diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 000000000000..d193e2e23923 Binary files /dev/null and b/.DS_Store differ diff --git a/.env.example b/.env.example new file mode 100644 index 000000000000..c7ad4290fcc6 --- /dev/null +++ b/.env.example @@ -0,0 +1,7 @@ +FUNCTIONS_WORKER_RUNTIME='powershell' +FUNCTIONS_WORKER_RUNTIME_VERSION='7.4' +AzureWebJobsStorage='DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNoBnZf6KgBVU4=;BlobEndpoint=http://azurite:10000/devstoreaccount1;QueueEndpoint=http://azurite:10001/devstoreaccount1;TableEndpoint=http://azurite:10002/devstoreaccount1;' +DEV_SKIP_BPA_TIMER='true' +DEV_SKIP_DOMAIN_TIMER='true' +FUNCTIONS_EXTENSION_VERSION='4' +NonLocalHostAzurite='true' diff --git a/.github/agents/CIPP-Alert-Agent.md b/.github/agents/CIPP-Alert-Agent.md new file mode 100644 index 000000000000..13416171c64f --- /dev/null +++ b/.github/agents/CIPP-Alert-Agent.md @@ -0,0 +1,113 @@ +--- +# Fill in the fields below to create a basic custom agent for your repository. +# The Copilot CLI can be used for local testing: https://gh.io/customagents/cli +# To make this agent available, merge this file into the default repository branch. +# For format details, see: https://gh.io/customagents/config + +name: CIPP Alert Engineer +description: > + Implements and maintains CIPP tenant alerts in PowerShell using existing CIPP + patterns, without touching API specs, avoiding CodeQL, and using + Test-CIPPStandardLicense for license/SKU checks. +--- + +# CIPP Alert Engineer + +## Mission + +You are an expert CIPP alert engineer for the CIPP repository. + +Your job is to implement, update, and review **alert-related functionality** in CIPP, following existing repository patterns and conventions. You primarily work on: + +- Creating new `Get-CIPPAlert*` PowerShell functions +- Adjusting existing alert logic when requested +- Ensuring alerts integrate cleanly with the existing scheduler and alerting framework +- Performing light validation and linting + +You **must follow all constraints in this file** exactly. + +--- + +## Scope of Work + +Use this agent when a task involves: + +- Adding a new alert (e.g. “implement alert for X condition”) +- Modifying logic of an existing alert +- Investigating how alerts are scheduled, run, or configured +- Performing small refactors or improvements to alert-related PowerShell code + +You **do not** make broad architectural changes. Keep changes focused and minimal. + +--- + +## Key Directories & Patterns + +When working on alerts, you should: + +1. **Discover existing alerts and patterns** + - Use shell commands to explore: + - `Modules/CIPPCore/Public/Alerts/` + - Inspect several existing alert files, e.g.: + - `Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNoCAConfig.ps1` + - Other `Get-CIPPAlert*.ps1` files + - Understand how alerts are **named, parameterized, and how they call Graph / Exo and helper functions**. + +2. **Follow the standard alert pattern** + - Alert functions live in: + `Modules/CIPPCore/Public/Alerts/` + - Alert functions are named: + `Get-CIPPAlert.ps1` + - Typical characteristics: + - Standard parameter set, including `TenantFilter` and similar common params. + - Uses CIPP helper functions like: + - `New-GraphGetRequest` / other Graph or Exo helpers + - `Write-AlertTrace` for emitting alert results + - Uses CIPP logging and error-handling patterns (try/catch, consistent message formatting). + +3. **Rely on existing module loading** + - The CIPP module auto-loads `Public` functions recursively. + - **Do not** modify module manifest or loader behavior just to pick up your new alert. + +--- + +## Critical Constraints + +You **must** respect all of these: + +### 1. Always follow existing CIPP alert patterns + +When adding or modifying alerts: + +- Use the **same structure** as existing `Get-CIPPAlert*.ps1` files: + - Similar function signatures + - Similar logging and error handling + - Same approach to returning alert data via `Write-AlertTrace` +- Reuse helper functions instead of inlining raw Graph calls or custom HTTP code, whenever possible. +- Keep alert behavior predictable and consistent with existing alerts. + +### 2. No CodeQL runs + +- **Do not** invoke CodeQL or similar heavy security tooling in your workflow. +- Rely on: + - PowerShell syntax checking + - `PSScriptAnalyzer` + - Manual/code-review style reasoning for security (no secrets, least privilege, etc.) + +### 3. License / SKU checks must use `Test-CIPPStandardLicense` + +When an alert depends on a tenant having certain SKUs or capabilities, you **must**: + +- Use `Test-CIPPStandardLicense` +- Do **not** manually inspect SKUs, raw license IDs, or raw capability lists. + +Example pattern (adapt to the specific feature): + +```powershell +$TestResult = Test-CIPPStandardLicense -StandardName 'AutopilotProfile' -TenantFilter $Tenant -RequiredCapabilities @( + 'INTUNE_A', + 'MDM_Services', + 'EMS', + 'SCCM', + 'MICROSOFTINTUNEPLAN1' +) diff --git a/.github/agents/CIPP-Standards-Agent.md b/.github/agents/CIPP-Standards-Agent.md new file mode 100644 index 000000000000..f12807cb00bf --- /dev/null +++ b/.github/agents/CIPP-Standards-Agent.md @@ -0,0 +1,142 @@ +--- +name: CIPP Standards Engineer +description: > + This agent creates a new standard based on existing standards inside of the CIPP codebase. + The agent must never modify any other file or perform any other change than creating a new standard. +--- + +# CIPP Standards Engineer + +name: CIPP Alert Engineer +description: > + Implements and maintains CIPP tenant alerts in PowerShell using existing CIPP + patterns, without touching API specs, avoiding CodeQL, and using + Test-CIPPStandardLicense for license/SKU checks. +--- + +# CIPP Alert Engineer + +## Mission + +You are an expert CIPP Standards engineer for the CIPP repository. + +Your job is to implement, update, and review **Standards-related functionality** in CIPP, following existing repository patterns and conventions. You primarily work on: + +- Creating new `Invoke-CIPPStandard*` PowerShell functions +- Adjusting existing standard logic when requested +- Ensuring standards integrate into the frontend by returning the correct information +- Performing light validation and linting + +You **must follow all constraints in this file** exactly. + +--- + +## Scope of Work + +Use this agent when a task involves: + +- Adding a new standard (e.g. “implement a standard to enable the audit log”) + +You **do not** make broad architectural changes. Keep changes focused and minimal. + +--- + +## Key Directories & Patterns + +When working on alerts, you should: + +1. **Discover existing alerts and patterns** + - Use shell commands to explore: + - `Modules/CIPPCore/Public/Standards/` + - Inspect several existing alert files, e.g.: + - `\Modules\CIPPCore\Public\Standards\Invoke-CIPPStandardAddDKIM.ps1` + - `\Modules\CIPPCore\Public\Standards\Invoke-CIPPStandardlaps.ps1` + - `\Modules\CIPPCore\Public\Standards\Invoke-CIPPStandardOutBoundSpamAlert.ps1` + - Other `Invoke-CIPPStandard*.ps1` files + - Understand how alerts are **named, parameterized, and how they call Graph / Exo and helper functions**. + +2. **Follow the standard alert pattern** + - Alert functions live in: + `Modules/CIPPCore/Public/Standardss/` + - Alert functions are named: + `Invoke-CIPPStandardAddDKIM.ps1` + - Typical characteristics: + - Standard parameter set, including `Tenant` and `Settings` which can be a complex object with subsettings, and similar common params. + - Uses CIPP helper functions like: + - `New-GraphGetRequest` for any graph requests + - `New-ExoReques` for creating exo requests + - Uses CIPP logging and error-handling patterns (try/catch, consistent message formatting). + - Each standard requires a Remediate, alert, and report section. + +3. **Rely on existing module loading** + - The CIPP module auto-loads `Public` functions recursively. + - **Do not** modify module manifest or loader behavior just to pick up your new standard. + +--- + +## Critical Constraints + +You **must** respect all of these: + +### 1. Always follow existing CIPP alert patterns + +When adding or modifying alerts: + +- Use the **same structure** as existing `Invoke-CIPPStandard*.ps1` files: + - Similar function signatures + - Similar logging and error handling +- Reuse helper functions instead of inlining raw Graph calls or custom HTTP code. +- Keep behaviour predictable. + +### 2. Return the code for the frontend. + +The frontend requires a section to be changed in standards.json. This is an example JSON payload: + +```json + { + "name": "standards.MailContacts", + "cat": "Global Standards", + "tag": [], + "helpText": "Defines the email address to receive general updates and information related to M365 subscriptions. Leave a contact field blank if you do not want to update the contact information.", + "docsDescription": "", + "executiveText": "Establishes designated contact email addresses for receiving important Microsoft 365 subscription updates and notifications. This ensures proper communication channels are maintained for general, security, marketing, and technical matters, improving organizational responsiveness to critical system updates.", + "addedComponent": [ + { + "type": "textField", + "name": "standards.MailContacts.GeneralContact", + "label": "General Contact", + "required": false + }, + { + "type": "textField", + "name": "standards.MailContacts.SecurityContact", + "label": "Security Contact", + "required": false + }, + { + "type": "textField", + "name": "standards.MailContacts.MarketingContact", + "label": "Marketing Contact", + "required": false + }, + { + "type": "textField", + "name": "standards.MailContacts.TechContact", + "label": "Technical Contact", + "required": false + } + ], + "label": "Set contact e-mails", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2022-03-13", + "powershellEquivalent": "Set-MsolCompanyContactInformation", + "recommendedBy": [] + }, +``` + +the name of the standard should be standards.. e.g. Invoke-CIPPStandardMailcontacts becomes standards.Mailcontacts. + +Added components might be required to populate the $settings variable. for example addedcomponent "standards.MailContacts.GeneralContact" becomes $Settings.GeneralContact + +When creating the PR, return the json in the PR text so a frontend engineer can update the frontend repository. diff --git a/.github/workflows/dev_api.yml b/.github/workflows/dev_api.yml index 47181a0b2f68..3d92bc00c7d3 100644 --- a/.github/workflows/dev_api.yml +++ b/.github/workflows/dev_api.yml @@ -1,31 +1,42 @@ -# Docs for the Azure Web Apps Deploy action: https://github.com/azure/functions-action -# More GitHub Actions for Azure: https://github.com/Azure/actions - -name: dev_api - -on: - push: - branches: - - dev - workflow_dispatch: - -env: - AZURE_FUNCTIONAPP_PACKAGE_PATH: '.' # set this to the path to your web app project, defaults to the repository root - -jobs: - deploy: - if: github.event.repository.fork == false && github.event_name == 'push' - runs-on: windows-latest - - steps: - - name: 'Checkout GitHub Action' - uses: actions/checkout@v4 - - - name: 'Run Azure Functions Action' - uses: Azure/functions-action@v1 - id: fa - with: - app-name: 'cippjta72' - slot-name: 'Production' - package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }} - publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_5B44448119C645C099EE192346D7433A }} +# Docs for the Azure Web Apps Deploy action: https://github.com/azure/functions-action +# More GitHub Actions for Azure: https://github.com/Azure/actions + +name: dev_api + +on: + push: + branches: + - dev + workflow_dispatch: + +env: + AZURE_FUNCTIONAPP_PACKAGE_PATH: "." # set this to the path to your web app project, defaults to the repository root + +jobs: + deploy: + permissions: + id-token: write #This is required for requesting the JWT + contents: read #This is required for actions/checkout + if: github.event.repository.fork == false && github.event_name == 'push' + runs-on: windows-latest + + steps: + - name: "Checkout GitHub Action" + uses: actions/checkout@v4 + with: + persist-credentials: false + + - name: Login to Azure + uses: azure/login@v2 + with: + client-id: ${{ secrets.DEV_CLIENTID }} + tenant-id: ${{ secrets.DEV_TENANTID }} + subscription-id: ${{ secrets.DEV_SUBSCRIPTIONID }} + + - name: "Run Azure Functions Action" + uses: Azure/functions-action@v1 + id: fa + with: + app-name: "cippjta72" + slot-name: "Production" + package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }} diff --git a/.github/workflows/dev_api_proc.yml b/.github/workflows/dev_api_proc.yml deleted file mode 100644 index 61591158e040..000000000000 --- a/.github/workflows/dev_api_proc.yml +++ /dev/null @@ -1,31 +0,0 @@ -# Docs for the Azure Web Apps Deploy action: https://github.com/azure/functions-action -# More GitHub Actions for Azure: https://github.com/Azure/actions - -name: dev_api_proc - -on: - push: - branches: - - dev - workflow_dispatch: - -env: - AZURE_FUNCTIONAPP_PACKAGE_PATH: '.' # set this to the path to your web app project, defaults to the repository root - -jobs: - deploy: - if: github.event.repository.fork == false && github.event_name == 'push' - runs-on: windows-latest - - steps: - - name: 'Checkout GitHub Action' - uses: actions/checkout@v4 - - - name: 'Run Azure Functions Action' - uses: Azure/functions-action@v1 - id: fa - with: - app-name: 'cippjta72-proc' - slot-name: 'Production' - package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }} - publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_A53AC5C52A55459DA0A3D8F1716638CB }} diff --git a/.github/workflows/dev_cippahmcc.yml b/.github/workflows/dev_cippahmcc.yml deleted file mode 100644 index 545a60fa955e..000000000000 --- a/.github/workflows/dev_cippahmcc.yml +++ /dev/null @@ -1,30 +0,0 @@ -# Docs for the Azure Web Apps Deploy action: https://github.com/azure/functions-action -# More GitHub Actions for Azure: https://github.com/Azure/actions - -name: Build and deploy Powershell project to Azure Function App - cippahmcc - -on: - push: - branches: - - dev - workflow_dispatch: - -env: - AZURE_FUNCTIONAPP_PACKAGE_PATH: '.' # set this to the path to your web app project, defaults to the repository root - -jobs: - deploy: - runs-on: windows-latest - - steps: - - name: 'Checkout GitHub Action' - uses: actions/checkout@v4 - - - name: 'Run Azure Functions Action' - uses: Azure/functions-action@v1 - id: fa - with: - app-name: 'cippahmcc' - slot-name: 'Production' - package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }} - publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_D6317AAB492A474D91B7A6CD29E53BA3 }} \ No newline at end of file diff --git a/.github/workflows/dev_cippmpiii.yml b/.github/workflows/dev_cippmpiii.yml deleted file mode 100644 index 6f9742a83d1d..000000000000 --- a/.github/workflows/dev_cippmpiii.yml +++ /dev/null @@ -1,30 +0,0 @@ -# Docs for the Azure Web Apps Deploy action: https://github.com/azure/functions-action -# More GitHub Actions for Azure: https://github.com/Azure/actions - -name: Build and deploy Powershell project to Azure Function App - cippmpiii - -on: - push: - branches: - - dev - workflow_dispatch: - -env: - AZURE_FUNCTIONAPP_PACKAGE_PATH: '.' # set this to the path to your web app project, defaults to the repository root - -jobs: - deploy: - runs-on: ubuntu-latest - - steps: - - name: 'Checkout GitHub Action' - uses: actions/checkout@v4 - - - name: 'Run Azure Functions Action' - uses: Azure/functions-action@v1 - id: fa - with: - app-name: 'cippmpiii' - slot-name: 'Production' - package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }} - publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_BC5F21E993034DF2A3793489CE4705E4 }} \ No newline at end of file diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index b1a2146b9fad..ed540c3ac714 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -17,7 +17,9 @@ jobs: steps: # Checkout the repository - name: Checkout Code - uses: actions/checkout@v3 + uses: actions/checkout@v4 + with: + persist-credentials: false # Read and Trim Version - name: Read and Trim Version @@ -46,11 +48,36 @@ jobs: echo "tag_exists=false" >> $GITHUB_ENV fi + # Get Previous Tag + - name: Get Previous Tag + id: previous_tag + if: env.tag_exists == 'false' + run: | + PREV_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "") + echo "previous_tag=$PREV_TAG" >> $GITHUB_OUTPUT + echo "Previous tag: $PREV_TAG" + # Generate Release Notes - name: Generate Release Notes id: changelog if: env.tag_exists == 'false' - uses: mikepenz/release-changelog-builder-action@v5.0.0 + uses: actions/github-script@v7 + with: + script: | + const params = { + owner: context.repo.owner, + repo: context.repo.repo, + tag_name: '${{ steps.get_version.outputs.version }}', + target_commitish: context.sha + }; + + const previousTag = '${{ steps.previous_tag.outputs.previous_tag }}'; + if (previousTag) { + params.previous_tag_name = previousTag; + } + + const { data } = await github.rest.repos.generateReleaseNotes(params); + core.setOutput('changelog', data.body); env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -73,10 +100,6 @@ jobs: if: env.tag_exists == 'false' run: | mkdir -p src/releases - zip -r src/releases/release_${{ steps.get_version.outputs.version }}.zip . \ - --exclude "./src/releases/*" \ - --exclude ".*" \ - --exclude ".*/**" zip -r src/releases/latest.zip . \ --exclude "./src/releases/*" \ --exclude ".*" \ @@ -91,4 +114,4 @@ jobs: container_name: cipp-api source_folder: src/releases/ destination_folder: / - delete_if_exists: true \ No newline at end of file + delete_if_exists: true diff --git a/.github/workflows/upload_dev.yml b/.github/workflows/upload_dev.yml index 4ed3159ff8cf..37ceb8fcd3fb 100644 --- a/.github/workflows/upload_dev.yml +++ b/.github/workflows/upload_dev.yml @@ -14,7 +14,9 @@ jobs: steps: # Checkout the repository - name: Checkout Code - uses: actions/checkout@v3 + uses: actions/checkout@v4 + with: + persist-credentials: false # Create ZIP File in a New Source Directory - name: Prepare and Zip Release Files diff --git a/.gitignore b/.gitignore index a807be8c00b6..073300712d7e 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,13 @@ Logs ExcludedTenants SendNotifications/config.json .env +Output/ +node_modules/.yarn-integrity +yarn.lock + +# Cursor IDE +.cursor/rules + +# Ignore all root PowerShell files except profile.ps1 +/*.ps1 +!/profile.ps1 diff --git a/AddChocoApp/Choco.App.xml b/AddChocoApp/Choco.App.xml index fb0aac775d73..40094d0f0d7b 100644 --- a/AddChocoApp/Choco.App.xml +++ b/AddChocoApp/Choco.App.xml @@ -1,15 +1,15 @@ - Install.ps1 - 28319 + install.ps1 + 1154 IntunePackage.intunewin - Install.ps1 + install.ps1 - bmoyHXFtIws7JrnXNDV4rjzap+Be+4ZJEDJkTfbVIL8= - xNh8ZUZ6TLsAtihUEAU/NHiRfutDzz+eSgEdpaXUo9Q= - 3aQFPhO8ywEC4Ojby1lR0w== - PXX+hj3DXEpzMEMYBDXmAIlSyDIGuAwmAHIQpZIt8hU= + v8i9okyqxp8xlw3/r2QXMNnXcuGwrBkD54QQ7F/UJbc= + XjT9kWc7gQRKRdEQ/PA/lbQDDH8kFjnuPFILxAldRTI= + iyAbM3kIYqA4AlWP89S5oA== + w+2KMctRWmJzYjKcMTAKCLz15K559SgZ3pnQuQD3P/I= ProfileVersion1 - fx41h3rGZYZO3Jux7JnPgatlmpMc2ZFIZS8ipF5VDDw= + tyjBbJZ+Zj9AqD7UjEfQfe/HojN/q1+zFPidXWbiVuE= SHA256 \ No newline at end of file diff --git a/AddChocoApp/IntunePackage.intunewin b/AddChocoApp/IntunePackage.intunewin index f388884134ed..67b9f50124d0 100644 Binary files a/AddChocoApp/IntunePackage.intunewin and b/AddChocoApp/IntunePackage.intunewin differ diff --git a/AddChocoApp/IntunePackage/Install.ps1 b/AddChocoApp/IntunePackage/Install.ps1 index fd5e86dfc71e..bb16f3504e14 100644 --- a/AddChocoApp/IntunePackage/Install.ps1 +++ b/AddChocoApp/IntunePackage/Install.ps1 @@ -12,6 +12,10 @@ param ( [string] $CustomRepo, + [Parameter()] + [string] + $CustomArguments, + [Parameter()] [switch] $Trace @@ -36,13 +40,23 @@ try { try { $localprograms = & "$chocoPath" list --localonly $CustomRepoString = if ($CustomRepo) { "--source $customrepo" } else { $null } + $CustomArgsArray = if ($CustomArguments) { $CustomArguments -split '\s+' } else { @() } + if ($localprograms -like "*$Packagename*" ) { Write-Host "Upgrading $packagename" - & "$chocoPath" upgrade $Packagename $CustomRepoString + if ($CustomArgsArray.Count -gt 0) { + & "$chocoPath" upgrade $Packagename $CustomRepoString $CustomArgsArray + } else { + & "$chocoPath" upgrade $Packagename $CustomRepoString + } } else { Write-Host "Installing $packagename" - & "$chocoPath" install $Packagename -y $CustomRepoString + if ($CustomArgsArray.Count -gt 0) { + & "$chocoPath" install $Packagename -y $CustomRepoString $CustomArgsArray + } else { + & "$chocoPath" install $Packagename -y $CustomRepoString + } } Write-Host 'Completed.' } diff --git a/AddMSPApp/datto.app.xml b/AddMSPApp/datto.app.xml index 145d910d8ef3..ca6f1636c64c 100644 --- a/AddMSPApp/datto.app.xml +++ b/AddMSPApp/datto.app.xml @@ -1,15 +1,15 @@ - - install.ps1 - 705 - datto.intunewin - install.ps1 - - sL/LP/JZ4F4cBSykm6usgJoV1PMoqd62C6JUwuo2z24= - PEpeqeoX7jAWxb0xHGfCkKFxh4/YRfoMTVXrP+uZWzM= - ulFPA+vYjaxX0pvq0BMAKQ== - 28ZFU4AT1OznwF8pfqO8i+WFUNSf9024H4Jw2H7UJWs= - ProfileVersion1 - YEb+QNQCko/uZyedA+JfcP/RDm+nZOIjFN04CfhwN4c= - SHA256 - + + install.ps1 + 693 + datto.intunewin + install.ps1 + + jobB9Ga7J3CbO6acWJyvBRE56nFXwqGfcnGfZRMsJC4= + 53SOzs0l6Po2btsGFSMZgkV8vwhH+PxTN8BZDUcfWfg= + VjM/osrvPElbu79J+mdXuw== + UZZXO53Np/tG6Ms+qvwLcNOeD1GRH6NRPFg/TuMz39M= + ProfileVersion1 + KtAWAl29064LG0eyDinbDs0JUbK+EK7GsJovu8obBM4= + SHA256 + \ No newline at end of file diff --git a/AddMSPApp/datto.intunewin b/AddMSPApp/datto.intunewin index 607b0725032b..96b3f27c3c62 100644 Binary files a/AddMSPApp/datto.intunewin and b/AddMSPApp/datto.intunewin differ diff --git a/CIPP-Permissions.json b/CIPP-Permissions.json deleted file mode 100644 index 95c4e7dea816..000000000000 --- a/CIPP-Permissions.json +++ /dev/null @@ -1,804 +0,0 @@ -[ - { - "AppId": "aeb86249-8ea3-49e2-900b-54cc8e308f85", - "DisplayName": "M365 License Manager", - "DelegatedPermissions": [ - { - "Id": "fc946a4f-bc4d-413b-a090-b2c86113ec4f", - "Name": "LicenseManager.AccessAsUser", - "Description": "Allows the application to impersonate the signed-in user when communicating with the M365 License Manager service." - } - ], - "ApplicationPermissions": [] - }, - { - "AppId": "00000003-0000-0000-c000-000000000000", - "DisplayName": "Microsoft Graph", - "DelegatedPermissions": [ - { - "Id": "bdfbf15f-ee85-4955-8675-146e8e5296b5", - "Name": "Application.ReadWrite.All", - "Description": "Allows the app to create, read, update and delete applications and service principals on your behalf. Does not allow management of consent grants." - }, - { - "Id": "84bccea3-f856-4a8a-967b-dbe0a3d53a64", - "Name": "AppRoleAssignment.ReadWrite.All", - "Description": "Allows the app to manage permission grants for application permissions to any API (including Microsoft Graph) and application assignments for any app, on your behalf." - }, - { - "Id": "e4c9e354-4dc5-45b8-9e7c-e1393b0b1a20", - "Name": "AuditLog.Read.All", - "Description": "Allows the app to read and query your audit log activities, on your behalf." - }, - { - "Id": "b27a61ec-b99c-4d6a-b126-c4375d08ae30", - "Name": "BitlockerKey.Read.All", - "Description": "Allows the app to read BitLocker keys for your owned devices. Allows read of the recovery key." - }, - { - "Id": "101147cf-4178-4455-9d58-02b5c164e759", - "Name": "Channel.Create", - "Description": "Create channels in any team, on your behalf." - }, - { - "Id": "cc83893a-e232-4723-b5af-bd0b01bcfe65", - "Name": "Channel.Delete.All", - "Description": "Delete channels in any team, on your behalf." - }, - { - "Id": "9d8982ae-4365-4f57-95e9-d6032a4c0b87", - "Name": "Channel.ReadBasic.All", - "Description": "Read channel names and channel descriptions, on your behalf." - }, - { - "Id": "2eadaff8-0bce-4198-a6b9-2cfc35a30075", - "Name": "ChannelMember.Read.All", - "Description": "Read the members of channels, on your behalf." - }, - { - "Id": "0c3e411a-ce45-4cd1-8f30-f99a3efa7b11", - "Name": "ChannelMember.ReadWrite.All", - "Description": "Add and remove members from channels, on your behalf. Also allows changing a member's role, for example from owner to non-owner." - }, - { - "Id": "2b61aa8a-6d36-4b2f-ac7b-f29867937c53", - "Name": "ChannelMessage.Edit", - "Description": "Allows the app to edit channel messages in Microsoft Teams, on your behalf." - }, - { - "Id": "767156cb-16ae-4d10-8f8b-41b657c8c8c8", - "Name": "ChannelMessage.Read.All", - "Description": "Allows the app to read a channel's messages in Microsoft Teams, on your behalf." - }, - { - "Id": "ebf0f66e-9fb1-49e4-a278-222f76911cf4", - "Name": "ChannelMessage.Send", - "Description": "Allows the app to send channel messages in Microsoft Teams, on your behalf." - }, - { - "Id": "233e0cf1-dd62-48bc-b65b-b38fe87fcf8e", - "Name": "ChannelSettings.Read.All", - "Description": "Read all channel names, channel descriptions, and channel settings, on your behalf." - }, - { - "Id": "d649fb7c-72b4-4eec-b2b4-b15acf79e378", - "Name": "ChannelSettings.ReadWrite.All", - "Description": "Read and write the names, descriptions, and settings of all channels, on your behalf." - }, - { - "Id": "f3bfad56-966e-4590-a536-82ecf548ac1e", - "Name": "ConsentRequest.Read.All", - "Description": "Allows the app to read consent requests and approvals, on your behalf." - }, - { - "Id": "885f682f-a990-4bad-a642-36736a74b0c7", - "Name": "DelegatedAdminRelationship.ReadWrite.All", - "Description": "Allows the app to manage (create-update-terminate) Delegated Admin relationships with customers and role assignments to security groups for active Delegated Admin relationships on your behalf." - }, - { - "Id": "41ce6ca6-6826-4807-84f1-1c82854f7ee5", - "Name": "DelegatedPermissionGrant.ReadWrite.All", - "Description": "Allows the app to manage permission grants for delegated permissions exposed by any API (including Microsoft Graph), on your behalf." - }, - { - "Id": "bac3b9c2-b516-4ef4-bd3b-c2ef73d8d804", - "Name": "Device.Command", - "Description": "Allows the app to launch another app or communicate with another app on a device that you own." - }, - { - "Id": "11d4cd79-5ba5-460f-803f-e22c8ab85ccd", - "Name": "Device.Read", - "Description": "Allows the app to see your list of devices." - }, - { - "Id": "951183d1-1a61-466f-a6d1-1fde911bfd95", - "Name": "Device.Read.All", - "Description": "Allows the app to read devices' configuration information on your behalf." - }, - { - "Id": "280b3b69-0437-44b1-bc20-3b2fca1ee3e9", - "Name": "DeviceLocalCredential.Read.All", - "Description": "Allows the app to read device local credential properties including passwords, on your behalf." - }, - { - "Id": "7b3f05d5-f68c-4b8d-8c59-a2ecd12f24af", - "Name": "DeviceManagementApps.ReadWrite.All", - "Description": "Allows the app to read and write the properties, group assignments and status of apps, app configurations and app protection policies managed by Microsoft Intune." - }, - { - "Id": "0883f392-0a7a-443d-8c76-16a6d39c7b63", - "Name": "DeviceManagementConfiguration.ReadWrite.All", - "Description": "Allows the app to read and write properties of Microsoft Intune-managed device configuration and device compliance policies and their assignment to groups." - }, - { - "Id": "3404d2bf-2b13-457e-a330-c24615765193", - "Name": "DeviceManagementManagedDevices.PrivilegedOperations.All", - "Description": "Allows the app to perform remote high impact actions such as wiping the device or resetting the passcode on devices managed by Microsoft Intune." - }, - { - "Id": "44642bfe-8385-4adc-8fc6-fe3cb2c375c3", - "Name": "DeviceManagementManagedDevices.ReadWrite.All", - "Description": "Allows the app to read and write the properties of devices managed by Microsoft Intune. Does not allow high impact operations such as remote wipe and password reset on the device’s owner." - }, - { - "Id": "0c5e8a55-87a6-4556-93ab-adc52c4d862d", - "Name": "DeviceManagementRBAC.ReadWrite.All", - "Description": "Allows the app to read and write the properties relating to the Microsoft Intune Role-Based Access Control (RBAC) settings." - }, - { - "Id": "662ed50a-ac44-4eef-ad86-62eed9be2a29", - "Name": "DeviceManagementServiceConfig.ReadWrite.All", - "Description": "Allows the app to read and write Microsoft Intune service properties including device enrollment and third party service connection configuration." - }, - { - "Id": "0e263e50-5827-48a4-b97c-d940288653c7", - "Name": "Directory.AccessAsUser.All", - "Description": "Allows the app to have the same access to information in your work or school directory as you do." - }, - { - "Id": "c5366453-9fb0-48a5-a156-24f0c49a4b84", - "Name": "Directory.ReadWrite.All", - "Description": "Allows the app to read and write data in your organization's directory, such as other users, groups. It does not allow the app to delete users or groups, or reset user passwords." - }, - { - "Id": "2f9ee017-59c1-4f1d-9472-bd5529a7b311", - "Name": "Domain.Read.All", - "Description": "Allows the app to read all domain properties on your behalf." - }, - { - "Id": "4e46008b-f24c-477d-8fff-7bb4ec7aafe0", - "Name": "Group.ReadWrite.All", - "Description": "Allows the app to create groups and read all group properties and memberships on your behalf. Additionally allows the app to manage your groups and to update group content for groups you are a member of." - }, - { - "Id": "f81125ac-d3b7-4573-a3b2-7099cc39df9e", - "Name": "GroupMember.ReadWrite.All", - "Description": "Allows the app to list groups, read basic properties, read and update the membership of your groups. Group properties and owners cannot be updated and groups cannot be deleted." - }, - { - "Id": "9e4862a5-b68f-479e-848a-4e07e25c9916", - "Name": "IdentityRiskEvent.ReadWrite.All", - "Description": "Allows the app to read and update identity risk event information for all users in your organization on your behalf. Update operations include confirming risk event detections. " - }, - { - "Id": "bb6f654c-d7fd-4ae3-85c3-fc380934f515", - "Name": "IdentityRiskyServicePrincipal.ReadWrite.All", - "Description": "Allows the app to read and update identity risky service principal information for all service principals in your organization, on your behalf. Update operations include dismissing risky service principals." - }, - { - "Id": "e0a7cdbb-08b0-4697-8264-0069786e9674", - "Name": "IdentityRiskyUser.ReadWrite.All", - "Description": "Allows the app to read and update identity risky user information for all users in your organization on your behalf. Update operations include dismissing risky users." - }, - { - "Id": "e383f46e-2787-4529-855e-0e479a3ffac0", - "Name": "Mail.Send", - "Description": "Allows the app to send mail as you." - }, - { - "Id": "a367ab51-6b49-43bf-a716-a1fb06d2a174", - "Name": "Mail.Send.Shared", - "Description": "Allows the app to send mail as you or on-behalf of someone else." - }, - { - "Id": "818c620a-27a9-40bd-a6a5-d96f7d610b4b", - "Name": "MailboxSettings.ReadWrite", - "Description": "Allows the app to read, update, create, and delete your mailbox settings." - }, - { - "Id": "f6a3db3e-f7e8-4ed2-a414-557c8c9830be", - "Name": "Member.Read.Hidden", - "Description": "Allows the app to read the memberships of hidden groups or administrative units on your behalf, for those hidden groups or adminstrative units that you have access to." - }, - { - "Id": "7427e0e9-2fba-42fe-b0c0-848c9e6a8182", - "Name": "offline_access", - "Description": "Allows the app to see and update the data you gave it access to, even when you are not currently using the app. This does not give the app any additional permissions." - }, - { - "Id": "37f7f235-527c-4136-accd-4a02d197296e", - "Name": "openid", - "Description": "Allows you to sign in to the app with your work or school account and allows the app to read your basic profile information." - }, - { - "Id": "46ca0847-7e6b-426e-9775-ea810a948356", - "Name": "Organization.ReadWrite.All", - "Description": "Allows the app to read and write the organization and related resources, on your behalf. Related resources include things like subscribed skus and tenant branding information." - }, - { - "Id": "346c19ff-3fb2-4e81-87a0-bac9e33990c1", - "Name": "OrgSettings-Forms.ReadWrite.All", - "Description": "Allows the app to read and write organization-wide Microsoft Forms settings on your behalf." - }, - { - "Id": "e67e6727-c080-415e-b521-e3f35d5248e9", - "Name": "PeopleSettings.ReadWrite.All", - "Description": "Allows the application to read and write tenant-wide people settings on your behalf." - }, - { - "Id": "4c06a06a-098a-4063-868e-5dfee3827264", - "Name": "Place.ReadWrite.All", - "Description": "Allows the app to manage organization places (conference rooms and room lists) for calendar events and other applications, on your behalf." - }, - { - "Id": "572fea84-0151-49b2-9301-11cb16974376", - "Name": "Policy.Read.All", - "Description": "Allows the app to read your organization's policies on your behalf." - }, - { - "Id": "b27add92-efb2-4f16-84f5-8108ba77985c", - "Name": "Policy.ReadWrite.ApplicationConfiguration", - "Description": "Allows the app to read and write your organization's application configuration policies on your behalf. This includes policies such as activityBasedTimeoutPolicy, claimsMappingPolicy, homeRealmDiscoveryPolicy, tokenIssuancePolicy and tokenLifetimePolicy." - }, - { - "Id": "edb72de9-4252-4d03-a925-451deef99db7", - "Name": "Policy.ReadWrite.AuthenticationFlows", - "Description": "Allows the app to read and write the authentication flow policies for your tenant, on your behalf." - }, - { - "Id": "7e823077-d88e-468f-a337-e18f1f0e6c7c", - "Name": "Policy.ReadWrite.AuthenticationMethod", - "Description": "Allows the app to read and write the authentication method policies for your tenant, on your behalf." - }, - { - "Id": "edd3c878-b384-41fd-95ad-e7407dd775be", - "Name": "Policy.ReadWrite.Authorization", - "Description": "Allows the app to read and write your organization's authorization policy on your behalf. For example, authorization policies can control some of the permissions that the out-of-the-box user role has by default." - }, - { - "Id": "ad902697-1014-4ef5-81ef-2b4301988e8c", - "Name": "Policy.ReadWrite.ConditionalAccess", - "Description": "Allows the app to read and write your organization's conditional access policies on your behalf." - }, - { - "Id": "4d135e65-66b8-41a8-9f8b-081452c91774", - "Name": "Policy.ReadWrite.ConsentRequest", - "Description": "Allows the app to read and write your organization's consent request policy on your behalf." - }, - { - "Id": "40b534c3-9552-4550-901b-23879c90bcf9", - "Name": "Policy.ReadWrite.DeviceConfiguration", - "Description": "Allows the app to read and write your organization's device configuration policies on your behalf. For example, device registration policy can limit initial provisioning controls using quota restrictions, additional authentication and authorization checks." - }, - { - "Id": "a8ead177-1889-4546-9387-f25e658e2a79", - "Name": "Policy.ReadWrite.MobilityManagement", - "Description": "Allows the app to read and write your organization's mobility management policies on your behalf. For example, a mobility management policy can set the enrollment scope for a given mobility management application." - }, - { - "Id": "1d89d70c-dcac-4248-b214-903c457af83a", - "Name": "PrivilegedAccess.Read.AzureResources", - "Description": "Allows the app to read time-based assignment and just-in-time elevation of Azure resources (like your subscriptions, resource groups, storage, compute) on your behalf." - }, - { - "Id": "a84a9652-ffd3-496e-a991-22ba5529156a", - "Name": "PrivilegedAccess.ReadWrite.AzureResources", - "Description": "Allows the app to request and manage time-based assignment and just-in-time elevation of user privileges to manage  your Azure resources (like your subscriptions, resource groups, storage, compute) on your behalf." - }, - { - "Id": "14dad69e-099b-42c9-810b-d002981feec1", - "Name": "profile", - "Description": "Allows the app to see your basic profile (e.g., name, picture, user name, email address)" - }, - { - "Id": "02e97553-ed7b-43d0-ab3c-f8bace0d040c", - "Name": "Reports.Read.All", - "Description": "Allows an app to read all service usage reports on your behalf. Services that provide usage reports include Office 365 and Azure Active Directory." - }, - { - "Id": "b955410e-7715-4a88-a940-dfd551018df3", - "Name": "ReportSettings.ReadWrite.All", - "Description": "Allows the app to read and update admin report settings, such as whether to display concealed information in reports, on your behalf." - }, - { - "Id": "d01b97e9-cbc0-49fe-810a-750afd5527a3", - "Name": "RoleManagement.ReadWrite.Directory", - "Description": "Allows the app to read and manage the role-based access control (RBAC) settings for your company's directory, on your behalf. This includes instantiating directory roles and managing directory role membership, and reading directory role templates, directory roles and memberships." - }, - { - "Id": "dc38509c-b87d-4da0-bd92-6bec988bac4a", - "Name": "SecurityActions.ReadWrite.All", - "Description": "Allows the app to read and update security actions, on your behalf." - }, - { - "Id": "6aedf524-7e1c-45a7-bd76-ded8cab8d0fc", - "Name": "SecurityEvents.ReadWrite.All", - "Description": "Allows the app to read your organization’s security events on your behalf. Also allows you to update editable properties in security events." - }, - { - "Id": "128ca929-1a19-45e6-a3b8-435ec44a36ba", - "Name": "SecurityIncident.ReadWrite.All", - "Description": "Allows the app to read and write to all security incidents that you have access to." - }, - { - "Id": "55896846-df78-47a7-aa94-8d3d4442ca7f", - "Name": "ServiceHealth.Read.All", - "Description": "Allows the app to read your tenant's service health information on your behalf.Health information may include service issues or service health overviews." - }, - { - "Id": "eda39fa6-f8cf-4c3c-a909-432c683e4c9b", - "Name": "ServiceMessage.Read.All", - "Description": "Allows the app to read your tenant's service announcement messages on your behalf. Messages may include information about new or changed features." - }, - { - "Id": "aa07f155-3612-49b8-a147-6c590df35536", - "Name": "SharePointTenantSettings.ReadWrite.All", - "Description": "Allows the application to read and change the tenant-level settings of SharePoint and OneDrive on your behalf." - }, - { - "Id": "89fe6a52-be36-487e-b7d8-d061c450a026", - "Name": "Sites.ReadWrite.All", - "Description": "Allow the application to edit or delete documents and list items in all site collections on your behalf." - }, - { - "Id": "7825d5d6-6049-4ce7-bdf6-3b8d53f4bcd0", - "Name": "Team.Create", - "Description": "Allows the app to create teams on your behalf. " - }, - { - "Id": "485be79e-c497-4b35-9400-0e3fa7f2a5d4", - "Name": "Team.ReadBasic.All", - "Description": "Read the names and descriptions of teams, on your behalf." - }, - { - "Id": "4a06efd2-f825-4e34-813e-82a57b03d1ee", - "Name": "TeamMember.ReadWrite.All", - "Description": "Add and remove members from teams, on your behalf. Also allows changing a member's role, for example from owner to non-owner." - }, - { - "Id": "2104a4db-3a2f-4ea0-9dba-143d457dc666", - "Name": "TeamMember.ReadWriteNonOwnerRole.All", - "Description": "Add and remove members from all teams, on your behalf. Does not allow adding or removing a member with the owner role. Additionally, does not allow the app to elevate an existing member to the owner role." - }, - { - "Id": "0e755559-83fb-4b44-91d0-4cc721b9323e", - "Name": "TeamsActivity.Read", - "Description": "Allows the app to read your teamwork activity feed." - }, - { - "Id": "48638b3c-ad68-4383-8ac4-e6880ee6ca57", - "Name": "TeamSettings.Read.All", - "Description": "Read all teams' settings, on your behalf." - }, - { - "Id": "39d65650-9d3e-4223-80db-a335590d027e", - "Name": "TeamSettings.ReadWrite.All", - "Description": "Read and change all teams' settings, on your behalf." - }, - { - "Id": "a9ff19c2-f369-4a95-9a25-ba9d460efc8e", - "Name": "TeamsTab.Create", - "Description": "Allows the app to create tabs in any team in Microsoft Teams, on your behalf. This does not grant the ability to read, modify or delete tabs after they are created, or give access to the content inside the tabs." - }, - { - "Id": "b98bfd41-87c6-45cc-b104-e2de4f0dafb9", - "Name": "TeamsTab.ReadWrite.All", - "Description": "Read and write tabs in any team in Microsoft Teams, on your behalf. This does not give access to the content inside the tabs." - }, - { - "Id": "cac97e40-6730-457d-ad8d-4852fddab7ad", - "Name": "ThreatAssessment.ReadWrite.All", - "Description": "Allows an app to read your organization's threat assessment requests on your behalf. Also allows the app to create new requests to assess threats received by your organization on your behalf." - }, - { - "Id": "73e75199-7c3e-41bb-9357-167164dbb415", - "Name": "UnifiedGroupMember.Read.AsGuest", - "Description": "Allows the app to read basic unified group properties, memberships and owners of the group you are a member of." - }, - { - "Id": "637d7bec-b31e-4deb-acc9-24275642a2c9", - "Name": "User.ManageIdentities.All", - "Description": "Allows the app to read, update and delete identities that are associated with a user's account that you have access to. This controls the identities users can sign-in with." - }, - { - "Id": "204e0828-b5ca-4ad8-b9f3-f32a958e7cc4", - "Name": "User.ReadWrite.All", - "Description": "Allows the app to read and write the full set of profile properties, reports, and managers of other users in your organization, on your behalf." - }, - { - "Id": "aec28ec7-4d02-4e8c-b864-50163aea77eb", - "Name": "UserAuthenticationMethod.Read.All", - "Description": "Allows the app to read authentication methods of all users you have access to in your organization. Authentication methods include things like a user’s phone numbers and Authenticator app settings. This does not allow the app to see secret information like passwords, or to sign-in or otherwise use the authentication methods." - }, - { - "Id": "48971fc1-70d7-4245-af77-0beb29b53ee2", - "Name": "UserAuthenticationMethod.ReadWrite", - "Description": "Allows the app to read and write your authentication methods, including phone numbers and Authenticator app settings.This does not allow the app to see secret information like your passwords, or to sign-in or otherwise use your authentication methods." - }, - { - "Id": "b7887744-6746-4312-813d-72daeaee7e2d", - "Name": "UserAuthenticationMethod.ReadWrite.All", - "Description": "Allows the app to read and write authentication methods of all users you have access to in your organization. Authentication methods include things like a user’s phone numbers and Authenticator app settings. This does not allow the app to see secret information like passwords, or to sign-in or otherwise use the authentication methods." - } - ], - "ApplicationPermissions": [ - { - "Id": "1bfefb4e-e0b5-418b-a88f-73c46d2cc8e9", - "Name": "Application.ReadWrite.All", - "Description": "Allows the app to create, read, update and delete applications and service principals without a signed-in user. Does not allow management of consent grants." - }, - { - "Id": "b0afded3-3588-46d8-8b3d-9842eff778da", - "Name": "AuditLog.Read.All", - "Description": "Allows the app to read and query your audit log activities, without a signed-in user." - }, - { - "Id": "5e1e9171-754d-478c-812c-f1755a9a4c2d", - "Name": "AuditLogsQuery.Read.All", - "Description": "Allows the app to read and query audit logs from all services." - }, - { - "Id": "f3a65bd4-b703-46df-8f7e-0174fea562aa", - "Name": "Channel.Create", - "Description": "Create channels in any team, without a signed-in user." - }, - { - "Id": "59a6b24b-4225-4393-8165-ebaec5f55d7a", - "Name": "Channel.ReadBasic.All", - "Description": "Read all channel names and channel descriptions, without a signed-in user." - }, - { - "Id": "3b55498e-47ec-484f-8136-9013221c06a9", - "Name": "ChannelMember.Read.All", - "Description": "Read the members of all channels, without a signed-in user." - }, - { - "Id": "35930dcf-aceb-4bd1-b99a-8ffed403c974", - "Name": "ChannelMember.ReadWrite.All", - "Description": "Add and remove members from all channels, without a signed-in user. Also allows changing a member's role, for example from owner to non-owner." - }, - { - "Id": "cac88765-0581-4025-9725-5ebc13f729ee", - "Name": "CrossTenantInformation.ReadBasic.All", - "Description": "Allows the application to obtain basic tenant information about another target tenant within the Azure AD ecosystem without a signed-in user." - }, - { - "Id": "1138cb37-bd11-4084-a2b7-9f71582aeddb", - "Name": "Device.ReadWrite.All", - "Description": "Allows the app to read and write all device properties without a signed in user. Does not allow device creation, device deletion or update of device alternative security identifiers." - }, - { - "Id": "78145de6-330d-4800-a6ce-494ff2d33d07", - "Name": "DeviceManagementApps.ReadWrite.All", - "Description": "Allows the app to read and write the properties, group assignments and status of apps, app configurations and app protection policies managed by Microsoft Intune, without a signed-in user." - }, - { - "Id": "9241abd9-d0e6-425a-bd4f-47ba86e767a4", - "Name": "DeviceManagementConfiguration.ReadWrite.All", - "Description": "Allows the app to read and write properties of Microsoft Intune-managed device configuration and device compliance policies and their assignment to groups, without a signed-in user." - }, - { - "Id": "5b07b0dd-2377-4e44-a38d-703f09a0dc3c", - "Name": "DeviceManagementManagedDevices.PrivilegedOperations.All", - "Description": "Allows the app to perform remote high impact actions such as wiping the device or resetting the passcode on devices managed by Microsoft Intune, without a signed-in user." - }, - { - "Id": "2f51be20-0bb4-4fed-bf7b-db946066c75e", - "Name": "DeviceManagementManagedDevices.Read.All", - "Description": "Allows the app to read the properties of devices managed by Microsoft Intune, without a signed-in user." - }, - { - "Id": "243333ab-4d21-40cb-a475-36241daa0842", - "Name": "DeviceManagementManagedDevices.ReadWrite.All", - "Description": "Allows the app to read and write the properties of devices managed by Microsoft Intune, without a signed-in user. Does not allow high impact operations such as remote wipe and password reset on the device’s owner" - }, - { - "Id": "58ca0d9a-1575-47e1-a3cb-007ef2e4583b", - "Name": "DeviceManagementRBAC.Read.All", - "Description": "Allows the app to read the properties relating to the Microsoft Intune Role-Based Access Control (RBAC) settings, without a signed-in user." - }, - { - "Id": "e330c4f0-4170-414e-a55a-2f022ec2b57b", - "Name": "DeviceManagementRBAC.ReadWrite.All", - "Description": "Allows the app to read and write the properties relating to the Microsoft Intune Role-Based Access Control (RBAC) settings, without a signed-in user." - }, - { - "Id": "9255e99d-faf5-445e-bbf7-cb71482737c4", - "Name": "DeviceManagementScripts.ReadWrite.All", - "Description": "Allows the app to read and write Microsoft Intune device compliance scripts, device management scripts, device shell scripts, device custom attribute shell scripts and device health scripts, without a signed-in user." - }, - { - "Id": "06a5fe6d-c49d-46a7-b082-56b1b14103c7", - "Name": "DeviceManagementServiceConfig.Read.All", - "Description": "Allows the app to read Microsoft Intune service properties including device enrollment and third party service connection configuration, without a signed-in user." - }, - { - "Id": "5ac13192-7ace-4fcf-b828-1a26f28068ee", - "Name": "DeviceManagementServiceConfig.ReadWrite.All", - "Description": "Allows the app to read and write Microsoft Intune service properties including device enrollment and third party service connection configuration, without a signed-in user." - }, - { - "Id": "7ab1d382-f21e-4acd-a863-ba3e13f7da61", - "Name": "Directory.Read.All", - "Description": "Allows the app to read data in your organization's directory, such as users, groups and apps, without a signed-in user." - }, - { - "Id": "19dbc75e-c2e2-444c-a770-ec69d8559fc7", - "Name": "Directory.ReadWrite.All", - "Description": "Allows the app to read and write data in your organization's directory, such as users, and groups, without a signed-in user. Does not allow user or group deletion." - }, - { - "Id": "dbb9058a-0e50-45d7-ae91-66909b5d4664", - "Name": "Domain.Read.All", - "Description": "Allows the app to read all domain properties without a signed-in user." - }, - { - "Id": "75359482-378d-4052-8f01-80520e7db3cd", - "Name": "Files.ReadWrite.All", - "Description": "Allows the app to read, create, update and delete all files in all site collections without a signed in user." - }, - { - "Id": "bf7b1a76-6e77-406b-b258-bf5c7720e98f", - "Name": "Group.Create", - "Description": "Allows the app to create groups without a signed-in user." - }, - { - "Id": "5b567255-7703-4780-807c-7be8301ae99b", - "Name": "Group.Read.All", - "Description": "Allows the app to read group properties and memberships, and read conversations for all groups, without a signed-in user." - }, - { - "Id": "62a82d76-70ea-41e2-9197-370581804d09", - "Name": "Group.ReadWrite.All", - "Description": "Allows the app to create groups, read all group properties and memberships, update group properties and memberships, and delete groups. Also allows the app to read and write conversations. All of these operations can be performed by the app without a signed-in user." - }, - { - "Id": "dbaae8cf-10b5-4b86-a4a1-f871c94c6695", - "Name": "GroupMember.ReadWrite.All", - "Description": "Allows the app to list groups, read basic properties, read and update the membership of the groups this app has access to without a signed-in user. Group properties and owners cannot be updated and groups cannot be deleted." - }, - { - "Id": "19da66cb-0fb0-4390-b071-ebc76a349482", - "Name": "InformationProtectionPolicy.Read.All", - "Description": "Allows an app to read published sensitivity labels and label policy settings for the entire organization or a specific user, without a signed in user." - }, - { - "Id": "6931bccd-447a-43d1-b442-00a195474933", - "Name": "MailboxSettings.ReadWrite", - "Description": "Allows the app to create, read, update, and delete user's mailbox settings without a signed-in user. Does not include permission to send mail." - }, - { - "Id": "292d869f-3427-49a8-9dab-8c70152b74e9", - "Name": "Organization.ReadWrite.All", - "Description": "Allows the app to read and write the organization and related resources, without a signed-in user. Related resources include things like subscribed skus and tenant branding information." - }, - { - "Id": "2cb92fee-97a3-4034-8702-24a6f5d0d1e9", - "Name": "OrgSettings-Forms.ReadWrite.All", - "Description": "Allows the app to read and write organization-wide Microsoft Forms settings, without a signed-in user." - }, - { - "Id": "b6890674-9dd5-4e42-bb15-5af07f541ae1", - "Name": "PeopleSettings.ReadWrite.All", - "Description": "Allows the application to read and write tenant-wide people settings without a signed-in user." - }, - { - "Id": "913b9306-0ce1-42b8-9137-6a7df690a760", - "Name": "Place.Read.All", - "Description": "Allows the app to read company places (conference rooms and room lists) for calendar events and other applications, without a signed-in user." - }, - { - "Id": "246dd0d5-5bd0-4def-940b-0421030a5b68", - "Name": "Policy.Read.All", - "Description": "Allows the app to read all your organization's policies without a signed in user." - }, - { - "Id": "be74164b-cff1-491c-8741-e671cb536e13", - "Name": "Policy.ReadWrite.ApplicationConfiguration", - "Description": "Allows the app to read and write your organization's application configuration policies, without a signed-in user. This includes policies such as activityBasedTimeoutPolicy, claimsMappingPolicy, homeRealmDiscoveryPolicy, tokenIssuancePolicy and tokenLifetimePolicy." - }, - { - "Id": "25f85f3c-f66c-4205-8cd5-de92dd7f0cec", - "Name": "Policy.ReadWrite.AuthenticationFlows", - "Description": "Allows the app to read and write all authentication flow policies for the tenant, without a signed-in user." - }, - { - "Id": "29c18626-4985-4dcd-85c0-193eef327366", - "Name": "Policy.ReadWrite.AuthenticationMethod", - "Description": "Allows the app to read and write all authentication method policies for the tenant, without a signed-in user. " - }, - { - "Id": "01c0a623-fc9b-48e9-b794-0756f8e8f067", - "Name": "Policy.ReadWrite.ConditionalAccess", - "Description": "Allows the app to read and write your organization's conditional access policies, without a signed-in user." - }, - { - "Id": "999f8c63-0a38-4f1b-91fd-ed1947bdd1a9", - "Name": "Policy.ReadWrite.ConsentRequest", - "Description": "Allows the app to read and write your organization's consent requests policy without a signed-in user." - }, - { - "Id": "338163d7-f101-4c92-94ba-ca46fe52447c", - "Name": "Policy.ReadWrite.CrossTenantAccess", - "Description": "Allows the app to read and write your organization's cross tenant access policies without a signed-in user." - }, - { - "Id": "2f6817f8-7b12-4f0f-bc18-eeaf60705a9e", - "Name": "PrivilegedAccess.ReadWrite.AzureADGroup", - "Description": "Allows the app to request and manage time-based assignment and just-in-time elevation (including scheduled elevation) of Azure AD groups in your organization, without a signed-in user." - }, - { - "Id": "230c1aed-a721-4c5d-9cb4-a90514e508ef", - "Name": "Reports.Read.All", - "Description": "Allows an app to read all service usage reports without a signed-in user. Services that provide usage reports include Office 365 and Azure Active Directory." - }, - { - "Id": "2a60023f-3219-47ad-baa4-40e17cd02a1d", - "Name": "ReportSettings.ReadWrite.All", - "Description": "Allows the app to read and update all admin report settings, such as whether to display concealed information in reports, without a signed-in user." - }, - { - "Id": "025d3225-3f02-4882-b4c0-cd5b541a4e80", - "Name": "RoleManagement.ReadWrite.Exchange", - "Description": "Allows the app to read and manage the role-based access control (RBAC) settings for your organization's Exchange Online service, without a signed-in user. This includes reading, creating, updating, and deleting Exchange management role definitions, role groups, role group membership, role assignments, management scopes, and role assignment policies." - }, - { - "Id": "04c55753-2244-4c25-87fc-704ab82a4f69", - "Name": "SecurityAnalyzedMessage.ReadWrite.All", - "Description": "Read email metadata and security detection details, and execute remediation actions like deleting an email, without a signed-in user." - }, - { - "Id": "bf394140-e372-4bf9-a898-299cfc7564e5", - "Name": "SecurityEvents.Read.All", - "Description": "Allows the app to read your organization’s security events without a signed-in user." - }, - { - "Id": "45cc0394-e837-488b-a098-1918f48d186c", - "Name": "SecurityIncident.Read.All", - "Description": "Allows the app to read all security incidents, without a signed-in user." - }, - { - "Id": "34bf0e97-1971-4929-b999-9e2442d941d7", - "Name": "SecurityIncident.ReadWrite.All", - "Description": "Allows the app to read and write to all security incidents, without a signed-in user." - }, - { - "Id": "19b94e34-907c-4f43-bde9-38b1909ed408", - "Name": "SharePointTenantSettings.ReadWrite.All", - "Description": "Allows the application to read and change the tenant-level settings of SharePoint and OneDrive, without a signed-in user." - }, - { - "Id": "a82116e5-55eb-4c41-a434-62fe8a61c773", - "Name": "Sites.FullControl.All", - "Description": "Allows the app to have full control of all site collections without a signed in user." - }, - { - "Id": "0121dc95-1b9f-4aed-8bac-58c5ac466691", - "Name": "TeamMember.ReadWrite.All", - "Description": "Add and remove members from all teams, without a signed-in user. Also allows changing a team member's role, for example from owner to non-owner." - }, - { - "Id": "4437522e-9a86-4a41-a7da-e380edd4a97d", - "Name": "TeamMember.ReadWriteNonOwnerRole.All", - "Description": "Add and remove members from all teams, without a signed-in user. Does not allow adding or removing a member with the owner role. Additionally, does not allow the app to elevate an existing member to the owner role." - }, - { - "Id": "741f803b-c850-494e-b5df-cde7c675a1ca", - "Name": "User.ReadWrite.All", - "Description": "Allows the app to read and update user profiles without a signed in user." - }, - { - "Id": "50483e42-d915-4231-9639-7fdb7fd190e5", - "Name": "UserAuthenticationMethod.ReadWrite.All", - "Description": "Allows the application to read and write authentication methods of all users in your organization, without a signed-in user. Authentication methods include things like a user’s phone numbers and Authenticator app settings. This does not allow the app to see secret information like passwords, or to sign-in or otherwise use the authentication methods" - } - ] - }, - { - "AppId": "fa3d9a0c-3fb0-42cc-9193-47c7ecd2edbd", - "DisplayName": "Microsoft Partner Center", - "DelegatedPermissions": [ - { - "Id": "1cebfa2a-fb4d-419e-b5f9-839b4383e05a", - "Name": "user_impersonation", - "Description": "Allow the application to access Partner Center on your behalf" - } - ], - "ApplicationPermissions": [] - }, - { - "AppId": "00000002-0000-0ff1-ce00-000000000000", - "DisplayName": "Office 365 Exchange Online", - "DelegatedPermissions": [ - { - "Id": "ab4f2b77-0b06-4fc1-a9de-02113fc2ab7c", - "Name": "Exchange.Manage", - "Description": "Allows the app to manage your organization's Exchange environment, such as mailboxes, groups, and other configuration objects. To enable management actions, an admin must assign you the appropriate roles." - }, - { - "Id": "bbd1ca91-75e0-4814-ad94-9c5dbbae3415", - "Name": "Calendars.ReadWrite.All", - "Description": "Allows the app to read, update, create and delete events in all calendars in your organization you have permissions to access. This includes delegate and shared calendars. " - }, - { - "Id": "2e83d72d-8895-4b66-9eea-abb43449ab8b", - "Name": "MailboxSettings.ReadWrite", - "Description": "Allows the app to read, update, create, and delete your mailbox settings." - } - ], - "ApplicationPermissions": [ - { - "Id": "dc50a0fb-09a3-484d-be87-e023b12c6440", - "Name": "Exchange.ManageAsApp", - "Description": "Allows the app to manage the organization's Exchange environment without any user interaction. This includes mailboxes, groups, and other configuration objects. To enable management actions, an admin must assign the appropriate roles directly to the app." - }, - { - "Id": "ef54d2bf-783f-4e0f-bca1-3210c0444d99", - "Name": "Calendars.ReadWrite.All", - "Description": "Allows the app to create, read, update, and delete events of all calendars without a signed-in user." - }, - { - "Id": "f9156939-25cd-4ba8-abfe-7fabcf003749", - "Name": "MailboxSettings.ReadWrite", - "Description": "Allows the app to create, read, update, and delete user's mailbox settings without a signed-in user. Does not include permission to send mail." - } - ] - }, - { - "AppId": "00000003-0000-0ff1-ce00-000000000000", - "DisplayName": "Office 365 SharePoint Online", - "DelegatedPermissions": [ - { - "Id": "56680e0d-d2a3-4ae1-80d8-3c4f2100e3d0", - "Name": "AllSites.FullControl", - "Description": "Allows the app to have full control of all site collections on your behalf." - }, - { - "Id": "AllProfiles.Manage", - "Name": "AllProfiles.Manage", - "Description": "Manually added" - } - ], - "ApplicationPermissions": [] - }, - { - "AppId": "48ac35b8-9aa8-4d74-927d-1f4a14a0b239", - "DisplayName": "Skype and Teams Tenant Admin API", - "DelegatedPermissions": [ - { - "Id": "e60370c1-e451-437e-aa6e-d76df38e5f15", - "Name": "user_impersonation", - "Description": "Access Microsoft Teams and Skype for Business data based on the user's role membership" - } - ], - "ApplicationPermissions": [] - }, - { - "AppId": "fc780465-2017-40d4-a0c5-307022471b92", - "DisplayName": "WindowsDefenderATP", - "DelegatedPermissions": [ - { - "Id": "63a677ce-818c-4409-9d12-5c6d2e2a6bfe", - "Name": "Vulnerability.Read", - "Description": "Allows the app to read Threat and Vulnerability Management vulnerability information on behalf of the signed-in user" - } - ], - "ApplicationPermissions": [ - { - "Id": "41269fc5-d04d-4bfd-bce7-43a51cea049a", - "Name": "Vulnerability.Read.All", - "Description": "Allows the app to read any Threat and Vulnerability Management vulnerability information" - } - ] - } -] diff --git a/CIPPHttpTrigger/function.json b/CIPPHttpTrigger/function.json index 5aa5c500a642..bfd835e6a6a8 100644 --- a/CIPPHttpTrigger/function.json +++ b/CIPPHttpTrigger/function.json @@ -7,50 +7,21 @@ "type": "httpTrigger", "direction": "in", "name": "Request", - "methods": ["get", "post"], - "route": "{CIPPEndpoint}" + "methods": [ + "get", + "post", + "patch", + "put", + "delete", + "options" + ], + "route": "{*CIPPEndpoint}" }, { "type": "http", "direction": "out", "name": "Response" }, - { - "type": "queue", - "direction": "out", - "name": "QueueItem", - "queueName": "CIPPGenericQueue" - }, - { - "type": "queue", - "direction": "out", - "name": "Subscription", - "queueName": "AlertSubscriptions" - }, - { - "type": "queue", - "direction": "out", - "name": "gradientqueue", - "queueName": "billqueue" - }, - { - "type": "queue", - "direction": "out", - "name": "alertqueue", - "queueName": "alertqueue" - }, - { - "type": "queue", - "direction": "out", - "name": "incidentqueue", - "queueName": "incidentqueue" - }, - { - "type": "queue", - "direction": "out", - "name": "offboardingmailbox", - "queueName": "offboardingmailbox" - }, { "name": "starter", "type": "durableClient", diff --git a/CommunityRepos.json b/CommunityRepos.json deleted file mode 100644 index e34aafb8c821..000000000000 --- a/CommunityRepos.json +++ /dev/null @@ -1,56 +0,0 @@ -[ - { - "Id": "930523724", - "Name": "CIPP-Templates", - "Description": "CIPP Community Templates", - "URL": "https://github.com/CyberDrain/CIPP-Templates", - "FullName": "CyberDrain/CIPP-Templates", - "Owner": "CyberDrain", - "Visibility": "public", - "WriteAccess": false, - "DefaultBranch": "main", - "RepoPermissions": { - "admin": false, - "maintain": false, - "push": false, - "triage": false, - "pull": true - } - }, - { - "Id": "784230225", - "Name": "ConditionalAccessBaseline", - "Description": "", - "URL": "https://github.com/j0eyv/ConditionalAccessBaseline", - "FullName": "j0eyv/ConditionalAccessBaseline", - "Owner": "j0eyv", - "Visibility": "public", - "WriteAccess": false, - "DefaultBranch": "main", - "RepoPermissions": { - "admin": false, - "maintain": false, - "push": false, - "triage": false, - "pull": true - } - }, - { - "Id": "493403016", - "Name": "OpenIntuneBaseline", - "Description": "Community-driven baseline to accelerate Intune adoption and learning.", - "URL": "https://github.com/SkipToTheEndpoint/OpenIntuneBaseline", - "FullName": "SkipToTheEndpoint/OpenIntuneBaseline", - "Owner": "SkipToTheEndpoint", - "Visibility": "public", - "WriteAccess": false, - "DefaultBranch": "main", - "RepoPermissions": { - "admin": false, - "maintain": false, - "push": false, - "triage": false, - "pull": true - } - } -] diff --git a/Config/ExcludeSkuList.JSON b/Config/ExcludeSkuList.JSON index e2c80e82a1e0..7409a30962dd 100644 --- a/Config/ExcludeSkuList.JSON +++ b/Config/ExcludeSkuList.JSON @@ -3,53 +3,17 @@ "GUID": "90d8b3f8-712e-4f7b-aa1e-62e7ae6cbe96", "Product_Display_Name": "Business Apps (free)" }, - { - "GUID": "90d8b3f8-712e-4f7b-aa1e-62e7ae6cbe96", - "Product_Display_Name": "Business Apps (free)" - }, - { - "GUID": "f30db892-07e9-47e9-837c-80727f46fd3d", - "Product_Display_Name": "MICROSOFT FLOW FREE" - }, { "GUID": "f30db892-07e9-47e9-837c-80727f46fd3d", - "Product_Display_Name": "MICROSOFT FLOW FREE" - }, - { - "GUID": "f30db892-07e9-47e9-837c-80727f46fd3d", - "Product_Display_Name": "MICROSOFT FLOW FREE" - }, - { - "GUID": "16ddbbfc-09ea-4de2-b1d7-312db6112d70", - "Product_Display_Name": "MICROSOFT TEAMS (FREE)" + "Product_Display_Name": "Microsoft Power Automate Free" }, { "GUID": "16ddbbfc-09ea-4de2-b1d7-312db6112d70", - "Product_Display_Name": "MICROSOFT TEAMS (FREE)" - }, - { - "GUID": "16ddbbfc-09ea-4de2-b1d7-312db6112d70", - "Product_Display_Name": "MICROSOFT TEAMS (FREE)" - }, - { - "GUID": "16ddbbfc-09ea-4de2-b1d7-312db6112d70", - "Product_Display_Name": "MICROSOFT TEAMS (FREE)" - }, - { - "GUID": "16ddbbfc-09ea-4de2-b1d7-312db6112d70", - "Product_Display_Name": "MICROSOFT TEAMS (FREE)" - }, - { - "GUID": "16ddbbfc-09ea-4de2-b1d7-312db6112d70", - "Product_Display_Name": "MICROSOFT TEAMS (FREE)" + "Product_Display_Name": "Microsoft Teams (Free)" }, { "GUID": "a403ebcc-fae0-4ca2-8c8c-7a907fd6c235", - "Product_Display_Name": "Power BI (free)" - }, - { - "GUID": "a403ebcc-fae0-4ca2-8c8c-7a907fd6c235", - "Product_Display_Name": "Power BI (free)" + "Product_Display_Name": "Microsoft Fabric (Free)" }, { "GUID": "61e6bd70-fbdb-4deb-82ea-912842f39431", @@ -59,33 +23,9 @@ "GUID": "bc946dac-7877-4271-b2f7-99d2db13cd2c", "Product_Display_Name": "Dynamics 365 Customer Voice Trial" }, - { - "GUID": "bc946dac-7877-4271-b2f7-99d2db13cd2c", - "Product_Display_Name": "Dynamics 365 Customer Voice Trial" - }, - { - "GUID": "bc946dac-7877-4271-b2f7-99d2db13cd2c", - "Product_Display_Name": "Dynamics 365 Customer Voice Trial" - }, - { - "GUID": "bc946dac-7877-4271-b2f7-99d2db13cd2c", - "Product_Display_Name": "Dynamics 365 Customer Voice Trial" - }, - { - "GUID": "bc946dac-7877-4271-b2f7-99d2db13cd2c", - "Product_Display_Name": "Dynamics 365 Customer Voice Trial" - }, - { - "GUID": "338148b6-1b11-4102-afb9-f92b6cdc0f8d", - "Product_Display_Name": "DYNAMICS 365 P1 TRIAL FOR INFORMATION WORKERS" - }, { "GUID": "338148b6-1b11-4102-afb9-f92b6cdc0f8d", - "Product_Display_Name": "DYNAMICS 365 P1 TRIAL FOR INFORMATION WORKERS" - }, - { - "GUID": "fcecd1f9-a91e-488d-a918-a96cdb6ce2b0", - "Product_Display_Name": "Microsoft Dynamics AX7 User Trial" + "Product_Display_Name": "Dynamics 365 P1 Tria for Information Workers" }, { "GUID": "fcecd1f9-a91e-488d-a918-a96cdb6ce2b0", @@ -95,92 +35,68 @@ "GUID": "dcb1a3ae-b33f-4487-846a-a640262fadf4", "Product_Display_Name": "Microsoft Power Apps Plan 2 Trial" }, - { - "GUID": "dcb1a3ae-b33f-4487-846a-a640262fadf4", - "Product_Display_Name": "Microsoft Power Apps Plan 2 Trial" - }, - { - "GUID": "dcb1a3ae-b33f-4487-846a-a640262fadf4", - "Product_Display_Name": "Microsoft Power Apps Plan 2 Trial" - }, - { - "GUID": "dcb1a3ae-b33f-4487-846a-a640262fadf4", - "Product_Display_Name": "Microsoft Power Apps Plan 2 Trial" - }, - { - "GUID": "dcb1a3ae-b33f-4487-846a-a640262fadf4", - "Product_Display_Name": "Microsoft Power Apps Plan 2 Trial" - }, - { - "GUID": "74fbf1bb-47c6-4796-9623-77dc7371723b", - "Product_Display_Name": "Microsoft Teams Trial" - }, - { - "GUID": "74fbf1bb-47c6-4796-9623-77dc7371723b", - "Product_Display_Name": "Microsoft Teams Trial" - }, { "GUID": "74fbf1bb-47c6-4796-9623-77dc7371723b", "Product_Display_Name": "Microsoft Teams Trial" }, { - "GUID": "74fbf1bb-47c6-4796-9623-77dc7371723b", - "Product_Display_Name": "Microsoft Teams Trial" + "GUID": "606b54a9-78d8-4298-ad8b-df6ef4481c80", + "Product_Display_Name": "Microsoft Copilot Studio Viral Trial" }, { - "GUID": "74fbf1bb-47c6-4796-9623-77dc7371723b", - "Product_Display_Name": "Microsoft Teams Trial" + "GUID": "1f2f344a-700d-42c9-9427-5cea1d5d7ba6", + "Product_Display_Name": "Microsoft Stream" }, { - "GUID": "74fbf1bb-47c6-4796-9623-77dc7371723b", - "Product_Display_Name": "Microsoft Teams Trial" + "GUID": "6470687e-a428-4b7a-bef2-8a291ad947c9", + "Product_Display_Name": "Windows Store for Business" }, { - "GUID": "74fbf1bb-47c6-4796-9623-77dc7371723b", - "Product_Display_Name": "Microsoft Teams Trial" + "GUID": "710779e8-3d4a-4c88-adb9-386c958d1fdf", + "Product_Display_Name": "Microsoft Teams Exploratory" }, { - "GUID": "74fbf1bb-47c6-4796-9623-77dc7371723b", - "Product_Display_Name": "Microsoft Teams Trial" + "GUID": "8c4ce438-32a7-4ac5-91a6-e22ae08d9c8b", + "Product_Display_Name": "Rights Management Adhoc" }, { - "GUID": "74fbf1bb-47c6-4796-9623-77dc7371723b", - "Product_Display_Name": "Microsoft Teams Trial" + "GUID": "5b631642-bd26-49fe-bd20-1daaa972ef80", + "Product_Display_Name": "Microsoft Power Apps for Developer" }, { - "GUID": "74fbf1bb-47c6-4796-9623-77dc7371723b", - "Product_Display_Name": "Microsoft Teams Trial" + "GUID": "6a4a1628-9b9a-424d-bed5-4118f0ede3fd", + "Product_Display_Name": "Dynamics 365 Business Central for IWs" }, { - "GUID": "606b54a9-78d8-4298-ad8b-df6ef4481c80", - "Product_Display_Name": "Power Virtual Agents Viral Trial" + "GUID": "6ec92958-3cc1-49db-95bd-bc6b3798df71", + "Product_Display_Name": "Dynamics 365 Sales Premium Viral Trial" }, { - "GUID": "606b54a9-78d8-4298-ad8b-df6ef4481c80", - "Product_Display_Name": "Power Virtual Agents Viral Trial" + "GUID": "3f9f06f5-3c31-472c-985f-62d9c10ec167", + "Product_Display_Name": "Power Pages vTrial for Makers" }, { - "GUID": "606b54a9-78d8-4298-ad8b-df6ef4481c80", - "Product_Display_Name": "Power Virtual Agents Viral Trial" + "GUID": "9c7bff7a-3715-4da7-88d3-07f57f8d0fb6", + "Product_Display_Name": "Dynamics 365 For Sales Professional Trial" }, { - "GUID": "1f2f344a-700d-42c9-9427-5cea1d5d7ba6", - "Product_Display_Name": "MICROSOFT STREAM" + "GUID": "8f0c5670-4e56-4892-b06d-91c085d7004f", + "Product_Display_Name": "App Connect IW" }, { - "GUID": "1f2f344a-700d-42c9-9427-5cea1d5d7ba6", - "Product_Display_Name": "MICROSOFT STREAM" + "GUID": "87bbbc60-4754-4998-8c88-227dca264858", + "Product_Display_Name": "Power Apps and Logic Flows" }, { - "GUID": "6470687e-a428-4b7a-bef2-8a291ad947c9", - "Product_Display_Name": "WINDOWS STORE FOR BUSINESS" + "GUID": "e5788282-6381-469f-84f0-3d7d4021d34d", + "Product_Display_Name": "Office 365 Extra File Storage for GCC" }, { - "GUID": "6470687e-a428-4b7a-bef2-8a291ad947c9", - "Product_Display_Name": "WINDOWS STORE FOR BUSINESS" + "GUID": "99049c9c-6011-4908-bf17-15f496e6519d", + "Product_Display_Name": "Office 365 Extra File Storage" }, { - "GUID": "710779e8-3d4a-4c88-adb9-386c958d1fdf", - "Product_Display_Name": "MICROSOFT TEAMS EXPLORATORY" + "GUID": "47794cd0-f0e5-45c5-9033-2eb6b5fc84e0", + "Product_Display_Name": "Communications Credits" } ] diff --git a/Config/SchedulerRateLimits.json b/Config/SchedulerRateLimits.json new file mode 100644 index 000000000000..3d2c65716af0 --- /dev/null +++ b/Config/SchedulerRateLimits.json @@ -0,0 +1,10 @@ +[ + { + "Command": "Sync-CIPPExtensionData", + "MaxRequests": 50 + }, + { + "Command": "Push-CIPPExtensionData", + "MaxRequests": 30 + } +] \ No newline at end of file diff --git a/Config/schemaDefinitions.json b/Config/schemaDefinitions.json index 8f820452ecfd..4c2d78d561b0 100644 --- a/Config/schemaDefinitions.json +++ b/Config/schemaDefinitions.json @@ -1,16 +1,48 @@ [ - { - "id": "cippUser", - "description": "CIPP User Schema", - "targetTypes": ["User"], - "properties": [ - { "name": "jitAdminEnabled", "type": "Boolean" }, - { "name": "jitAdminExpiration", "type": "DateTime" }, - { "name": "mailboxType", "type": "String" }, - { "name": "archiveEnabled", "type": "Boolean" }, - { "name": "autoExpandingArchiveEnabled", "type": "Boolean" }, - { "name": "perUserMfaState", "type": "String" } - ], - "status": "Available" - } + { + "id": "cippUser", + "description": "CIPP User Schema", + "targetTypes": [ + "User" + ], + "properties": [ + { + "name": "jitAdminEnabled", + "type": "Boolean" + }, + { + "name": "jitAdminExpiration", + "type": "DateTime" + }, + { + "name": "jitAdminReason", + "type": "String" + }, + { + "name": "jitAdminStartDate", + "type": "DateTime" + }, + { + "name": "jitAdminCreatedBy", + "type": "String" + }, + { + "name": "mailboxType", + "type": "String" + }, + { + "name": "archiveEnabled", + "type": "Boolean" + }, + { + "name": "autoExpandingArchiveEnabled", + "type": "Boolean" + }, + { + "name": "perUserMfaState", + "type": "String" + } + ], + "status": "Available" + } ] diff --git a/Config/standards.json b/Config/standards.json index dcc0335ddb71..3c40463ff676 100644 --- a/Config/standards.json +++ b/Config/standards.json @@ -5,6 +5,7 @@ "tag": [], "helpText": "Defines the email address to receive general updates and information related to M365 subscriptions. Leave a contact field blank if you do not want to update the contact information.", "docsDescription": "", + "executiveText": "Establishes designated contact email addresses for receiving important Microsoft 365 subscription updates and notifications. This ensures proper communication channels are maintained for general, security, marketing, and technical matters, improving organizational responsiveness to critical system updates.", "addedComponent": [ { "type": "textField", @@ -38,11 +39,86 @@ "powershellEquivalent": "Set-MsolCompanyContactInformation", "recommendedBy": [] }, + { + "name": "standards.DeployMailContact", + "cat": "Exchange Standards", + "tag": [], + "helpText": "Creates a new mail contact in Exchange Online across all selected tenants. The contact will be visible in the Global Address List.", + "docsDescription": "This standard creates a new mail contact in Exchange Online. Mail contacts are useful for adding external email addresses to your organization's address book. They can be used for distribution lists, shared mailboxes, and other collaboration scenarios.", + "executiveText": "Automatically creates external email contacts in the organization's address book, enabling seamless communication with external partners and vendors. This standardizes contact management across all company locations and improves collaboration efficiency.", + "addedComponent": [ + { + "type": "textField", + "name": "standards.DeployMailContact.ExternalEmailAddress", + "label": "External Email Address", + "required": true + }, + { + "type": "textField", + "name": "standards.DeployMailContact.DisplayName", + "label": "Display Name", + "required": true + }, + { + "type": "textField", + "name": "standards.DeployMailContact.FirstName", + "label": "First Name", + "required": false + }, + { + "type": "textField", + "name": "standards.DeployMailContact.LastName", + "label": "Last Name", + "required": false + } + ], + "label": "Deploy Mail Contact", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-03-19", + "powershellEquivalent": "New-MailContact", + "recommendedBy": ["CIPP"] + }, + { + "name": "standards.DeployContactTemplates", + "cat": "Exchange Standards", + "tag": [], + "helpText": "Creates new mail contacts in Exchange Online across all selected tenants based on the selected templates. The contact will be visible in the Global Address List unless hidden.", + "docsDescription": "This standard creates new mail contacts in Exchange Online based on the selected templates. Mail contacts are useful for adding external email addresses to your organization's address book. They can be used for distribution lists, shared mailboxes, and other collaboration scenarios.", + "executiveText": "Deploys standardized external contact templates across all company locations, ensuring consistent communication channels with key external partners, vendors, and stakeholders. This streamlines contact management and maintains uniform business relationships.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": true, + "creatable": false, + "label": "Select Mail Contact Templates", + "name": "standards.DeployContactTemplates.templateIds", + "api": { + "url": "/api/ListContactTemplates", + "labelField": "name", + "valueField": "GUID", + "queryKey": "Contact Templates" + } + } + ], + "label": "Deploy Mail Contact Template", + "disabledFeatures": { + "report": false, + "warn": false, + "remediate": false + }, + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2025-05-31", + "powershellEquivalent": "New-MailContact", + "recommendedBy": ["CIPP"] + }, { "name": "standards.AuditLog", "cat": "Global Standards", - "tag": ["CIS", "mip_search_auditlog"], + "tag": ["CIS M365 5.0 (3.1.1)", "mip_search_auditlog", "NIST CSF 2.0 (DE.CM-09)"], "helpText": "Enables the Unified Audit Log for tracking and auditing activities. Also runs Enable-OrganizationCustomization if necessary.", + "executiveText": "Activates comprehensive activity logging across Microsoft 365 services to track user actions, system changes, and security events. This provides essential audit trails for compliance requirements, security investigations, and regulatory reporting.", "addedComponent": [], "label": "Enable the Unified Audit Log", "impact": "Low Impact", @@ -51,12 +127,28 @@ "powershellEquivalent": "Enable-OrganizationCustomization", "recommendedBy": ["CIS", "CIPP"] }, + { + "name": "standards.RestrictThirdPartyStorageServices", + "cat": "Global Standards", + "tag": ["CIS M365 5.0 (1.3.7)"], + "helpText": "Restricts third-party storage services in Microsoft 365 on the web by managing the Microsoft 365 on the web service principal. This disables integrations with services like Dropbox, Google Drive, Box, and other third-party storage providers.", + "docsDescription": "Third-party storage can be enabled for users in Microsoft 365, allowing them to store and share documents using services such as Dropbox, alongside OneDrive and team sites. This standard ensures Microsoft 365 on the web third-party storage services are restricted by creating and disabling the Microsoft 365 on the web service principal (appId: c1f33bc0-bdb4-4248-ba9b-096807ddb43e). By using external storage services an organization may increase the risk of data breaches and unauthorized access to confidential information. Additionally, third-party services may not adhere to the same security standards as the organization, making it difficult to maintain data privacy and security. Impact is highly dependent upon current practices - if users do not use other storage providers, then minimal impact is likely. However, if users regularly utilize providers outside of the tenant this will affect their ability to continue to do so.", + "executiveText": "Prevents employees from using external cloud storage services like Dropbox, Google Drive, and Box within Microsoft 365, reducing data security risks and ensuring all company data remains within controlled corporate systems. This helps maintain data governance and prevents potential data leaks to unauthorized platforms.", + "addedComponent": [], + "label": "Restrict third-party storage services in Microsoft 365 on the web", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2025-06-06", + "powershellEquivalent": "New-MgServicePrincipal and Update-MgServicePrincipal", + "recommendedBy": ["CIS"] + }, { "name": "standards.ProfilePhotos", "cat": "Global Standards", "tag": [], "helpText": "Controls whether users can set their own profile photos in Microsoft 365.", "docsDescription": "Controls whether users can set their own profile photos in Microsoft 365. When disabled, only User and Global administrators can update profile photos for users.", + "executiveText": "Manages user profile photo permissions within Microsoft 365, allowing organizations to control whether employees can upload their own photos or require administrative approval. This helps maintain professional appearance standards and prevents inappropriate images in corporate directories.", "addedComponent": [ { "type": "autoComplete", @@ -88,6 +180,7 @@ "cat": "Global Standards", "tag": [], "helpText": "Adds branding to the logon page that only appears if the url is not login.microsoftonline.com. This potentially prevents AITM attacks via EvilNginx. This will also automatically generate alerts if a clone of your login page has been found when set to Remediate.", + "executiveText": "Implements advanced phishing protection by adding visual indicators to login pages that help users identify legitimate Microsoft login pages versus fraudulent copies. This security measure protects against sophisticated phishing attacks that attempt to steal employee credentials.", "addedComponent": [], "label": "Enable Phishing Protection system via branding CSS", "impact": "Low Impact", @@ -106,6 +199,7 @@ "cat": "Global Standards", "tag": [], "helpText": "Sets the branding for the tenant. This includes the login page, and the Office 365 portal.", + "executiveText": "Customizes Microsoft 365 login pages and portals with company branding, including logos, colors, and messaging. This creates a consistent corporate identity experience for employees and reinforces brand recognition while maintaining professional appearance across all Microsoft services.", "addedComponent": [ { "type": "textField", @@ -161,9 +255,10 @@ { "name": "standards.EnableCustomerLockbox", "cat": "Global Standards", - "tag": ["CIS", "CustomerLockBoxEnabled"], + "tag": ["CIS M365 5.0 (1.3.6)", "CustomerLockBoxEnabled"], "helpText": "Enables Customer Lockbox that offers an approval process for Microsoft support to access organization data", "docsDescription": "Customer Lockbox ensures that Microsoft can't access your content to do service operations without your explicit approval. Customer Lockbox ensures only authorized requests allow access to your organizations data.", + "executiveText": "Requires explicit organizational approval before Microsoft support staff can access company data for service operations. This provides an additional layer of data protection and ensures the organization maintains control over who can access sensitive business information, even during technical support scenarios.", "addedComponent": [], "label": "Enable Customer Lockbox", "impact": "Low Impact", @@ -177,6 +272,7 @@ "cat": "Global Standards", "tag": [], "helpText": "Enables the Pronouns feature for the tenant. This allows users to set their pronouns in their profile.", + "executiveText": "Allows employees to display their preferred pronouns in their Microsoft 365 profiles, supporting inclusive workplace practices and helping colleagues communicate respectfully. This feature enhances diversity and inclusion initiatives while fostering a more welcoming work environment.", "addedComponent": [], "label": "Enable Pronouns", "impact": "Low Impact", @@ -185,12 +281,27 @@ "powershellEquivalent": "Update-MgBetaAdminPeoplePronoun -IsEnabledInOrganization:$true", "recommendedBy": [] }, + { + "name": "standards.EnableNamePronunciation", + "cat": "Global Standards", + "tag": [], + "helpText": "Enables the Name Pronunciation feature for the tenant. This allows users to set their name pronunciation in their profile.", + "docsDescription": "Enables the Name Pronunciation feature for the tenant. This allows users to set their name pronunciation in their profile.", + "executiveText": "Enables employees to add pronunciation guides for their names in Microsoft 365 profiles, improving communication and respect in diverse workplaces. This feature helps colleagues pronounce names correctly, enhancing professional relationships and inclusive culture.", + "addedComponent": [], + "label": "Enable Name Pronunciation", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2025-06-06", + "recommendedBy": ["CIPP"] + }, { "name": "standards.AnonReportDisable", "cat": "Global Standards", "tag": [], "helpText": "Shows usernames instead of pseudo anonymised names in reports. This standard is required for reporting to work correctly.", "docsDescription": "Microsoft announced some APIs and reports no longer return names, to comply with compliance and legal requirements in specific countries. This proves an issue for a lot of MSPs because those reports are often helpful for engineers. This standard applies a setting that shows usernames in those API calls / reports.", + "executiveText": "Configures Microsoft 365 reports to display actual usernames instead of anonymized identifiers, enabling IT administrators to effectively troubleshoot issues and generate meaningful usage reports. This improves operational efficiency and system management capabilities.", "addedComponent": [], "label": "Enable Usernames instead of pseudo anonymised names in reports", "impact": "Low Impact", @@ -202,9 +313,17 @@ { "name": "standards.DisableGuestDirectory", "cat": "Global Standards", - "tag": [], + "tag": [ + "CIS M365 5.0 (5.1.6.2)", + "CISA (MS.AAD.5.1v1)", + "EIDSCA.AP14", + "EIDSCA.ST08", + "EIDSCA.ST09", + "NIST CSF 2.0 (PR.AA-05)" + ], "helpText": "Disables Guest access to enumerate directory objects. This prevents guest users from seeing other users or guests in the directory.", "docsDescription": "Sets it so guests can view only their own user profile. Permission to view other users isn't allowed. Also restricts guest users from seeing the membership of groups they're in. See exactly what get locked down in the [Microsoft documentation.](https://learn.microsoft.com/en-us/entra/fundamentals/users-default-permissions)", + "executiveText": "Restricts external guest users from viewing the company's employee directory and organizational structure, protecting sensitive information about staff and internal groups. This security measure prevents unauthorized access to corporate contact information while still allowing necessary collaboration.", "addedComponent": [], "label": "Restrict guest user access to directory objects", "impact": "Low Impact", @@ -216,9 +335,10 @@ { "name": "standards.DisableBasicAuthSMTP", "cat": "Global Standards", - "tag": [], + "tag": ["CIS M365 5.0 (6.5.4)", "NIST CSF 2.0 (PR.IR-01)"], "helpText": "Disables SMTP AUTH for the organization and all users. This is the default for new tenants.", "docsDescription": "Disables SMTP basic authentication for the tenant and all users with it explicitly enabled.", + "executiveText": "Disables outdated email authentication methods that are vulnerable to security attacks, forcing applications and devices to use modern, more secure authentication protocols. This reduces the risk of email-based security breaches and credential theft.", "addedComponent": [], "label": "Disable SMTP Basic Authentication", "impact": "Medium Impact", @@ -230,8 +350,9 @@ { "name": "standards.ActivityBasedTimeout", "cat": "Global Standards", - "tag": ["CIS", "spo_idle_session_timeout"], + "tag": ["CIS M365 5.0 (1.3.2)", "spo_idle_session_timeout", "NIST CSF 2.0 (PR.AA-03)"], "helpText": "Enables and sets Idle session timeout for Microsoft 365 to 1 hour. This policy affects most M365 web apps", + "executiveText": "Automatically logs out inactive users from Microsoft 365 applications after a specified time period to prevent unauthorized access to company data on unattended devices. This security measure protects against data breaches when employees leave workstations unlocked.", "addedComponent": [ { "type": "autoComplete", @@ -273,9 +394,10 @@ { "name": "standards.AuthMethodsSettings", "cat": "Entra (AAD) Standards", - "tag": [], + "tag": ["EIDSCA.AG01", "EIDSCA.AG02", "EIDSCA.AG03"], "helpText": "Configures the report suspicious activity settings and system credential preferences in the authentication methods policy.", "docsDescription": "Controls the authentication methods policy settings for reporting suspicious activity and system credential preferences. These settings help enhance the security of authentication in your organization.", + "executiveText": "Configures security settings that allow users to report suspicious login attempts and manages how the system handles authentication credentials. This enhances overall security by enabling early detection of potential security threats and optimizing authentication processes.", "addedComponent": [ { "type": "autoComplete", @@ -329,17 +451,76 @@ "powershellEquivalent": "Update-MgBetaPolicyAuthenticationMethodPolicy", "recommendedBy": [] }, + { + "name": "standards.AuthMethodsPolicyMigration", + "cat": "Entra (AAD) Standards", + "tag": [], + "helpText": "Completes the migration of authentication methods policy to the new format", + "docsDescription": "Sets the authentication methods policy migration state to complete. This is required when migrating from legacy authentication policies to the new unified authentication methods policy.", + "executiveText": "Completes the transition from legacy authentication policies to Microsoft's modern unified authentication methods policy, ensuring the organization benefits from the latest security features and management capabilities. This migration enables enhanced security controls and simplified policy management.", + "addedComponent": [], + "label": "Complete Authentication Methods Policy Migration", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2025-07-07", + "powershellEquivalent": "Update-MgBetaPolicyAuthenticationMethodPolicy", + "recommendedBy": ["CIPP"] + }, { "name": "standards.AppDeploy", "cat": "Entra (AAD) Standards", "tag": [], "helpText": "Deploys selected applications to the tenant. Use a comma separated list of application IDs to deploy multiple applications. Permissions will be copied from the source application.", "docsDescription": "Uses the CIPP functionality that deploys applications across an entire tenant base as a standard.", + "executiveText": "Automatically deploys approved business applications across all company locations and users, ensuring consistent access to essential tools and maintaining standardized software configurations. This streamlines application management and reduces IT deployment overhead.", "addedComponent": [ + { + "type": "select", + "multiple": false, + "creatable": false, + "label": "App Approval Mode", + "name": "standards.AppDeploy.mode", + "options": [ + { + "label": "Template", + "value": "template" + }, + { + "label": "Copy Permissions", + "value": "copy" + } + ] + }, + { + "type": "autoComplete", + "multiple": true, + "creatable": false, + "label": "Select Applications", + "name": "standards.AppDeploy.templateIds", + "api": { + "url": "/api/ListAppApprovalTemplates", + "labelField": "TemplateName", + "valueField": "TemplateId", + "queryKey": "StdAppApprovalTemplateList", + "addedField": { + "AppId": "AppId" + } + }, + "condition": { + "field": "standards.AppDeploy.mode", + "compareType": "is", + "compareValue": "template" + } + }, { "type": "textField", "name": "standards.AppDeploy.appids", - "label": "Application IDs, comma separated" + "label": "Application IDs, comma separated", + "condition": { + "field": "standards.AppDeploy.mode", + "compareType": "isNot", + "compareValue": "template" + } } ], "label": "Deploy Application", @@ -355,6 +536,7 @@ "tag": [], "helpText": "Enables the tenant to use LAPS. You must still create a policy for LAPS to be active on all devices. Use the template standards to deploy this by default.", "docsDescription": "Enables the LAPS functionality on the tenant. Prerequisite for using Windows LAPS via Azure AD.", + "executiveText": "Enables Local Administrator Password Solution (LAPS) capability, which automatically manages and rotates local administrator passwords on company computers. This significantly improves security by preventing the use of shared or static administrator passwords that could be exploited by attackers.", "addedComponent": [], "label": "Enable LAPS on the tenant", "impact": "Low Impact", @@ -366,9 +548,19 @@ { "name": "standards.PWdisplayAppInformationRequiredState", "cat": "Entra (AAD) Standards", - "tag": ["CIS"], + "tag": [ + "CIS M365 5.0 (2.3.1)", + "EIDSCA.AM03", + "EIDSCA.AM04", + "EIDSCA.AM06", + "EIDSCA.AM07", + "EIDSCA.AM09", + "EIDSCA.AM10", + "NIST CSF 2.0 (PR.AA-03)" + ], "helpText": "Enables the MS authenticator app to display information about the app that is requesting authentication. This displays the application name.", "docsDescription": "Allows users to use Passwordless with Number Matching and adds location information from the last request", + "executiveText": "Enhances authentication security by requiring users to match numbers and showing detailed information about login requests, including application names and location data. This helps employees verify legitimate login attempts and prevents unauthorized access through more secure authentication methods.", "addedComponent": [], "label": "Enable Passwordless with Location information and Number Matching", "impact": "Low Impact", @@ -380,9 +572,10 @@ { "name": "standards.allowOTPTokens", "cat": "Entra (AAD) Standards", - "tag": [], + "tag": ["EIDSCA.AM02"], "helpText": "Allows you to use MS authenticator OTP token generator", "docsDescription": "Allows you to use Microsoft Authenticator OTP token generator. Useful for using the NPS extension as MFA on VPN clients.", + "executiveText": "Enables one-time password generation through Microsoft Authenticator app, providing an additional secure authentication method for employees. This is particularly useful for secure VPN access and other systems requiring multi-factor authentication.", "addedComponent": [], "label": "Enable OTP via Authenticator", "impact": "Low Impact", @@ -394,9 +587,10 @@ { "name": "standards.PWcompanionAppAllowedState", "cat": "Entra (AAD) Standards", - "tag": [], + "tag": ["EIDSCA.AM01"], "helpText": "Sets the state of Authenticator Lite, Authenticator lite is a companion app for passwordless authentication.", "docsDescription": "Sets the Authenticator Lite state to enabled. This allows users to use the Authenticator Lite built into the Outlook app instead of the full Authenticator app.", + "executiveText": "Enables a simplified authentication experience by allowing users to authenticate directly through Outlook without requiring a separate authenticator app. This improves user convenience while maintaining security standards for passwordless authentication.", "addedComponent": [ { "type": "autoComplete", @@ -412,6 +606,10 @@ { "label": "Disabled", "value": "disabled" + }, + { + "label": "Microsoft managed", + "value": "default" } ] } @@ -426,9 +624,18 @@ { "name": "standards.EnableFIDO2", "cat": "Entra (AAD) Standards", - "tag": [], + "tag": [ + "EIDSCA.AF01", + "EIDSCA.AF02", + "EIDSCA.AF03", + "EIDSCA.AF04", + "EIDSCA.AF05", + "EIDSCA.AF06", + "NIST CSF 2.0 (PR.AA-03)" + ], "helpText": "Enables the FIDO2 authenticationMethod for the tenant", "docsDescription": "Enables FIDO2 capabilities for the tenant. This allows users to use FIDO2 keys like a Yubikey for authentication.", + "executiveText": "Enables support for hardware security keys (like YubiKey) that provide the highest level of authentication security. These physical devices prevent phishing attacks and credential theft, offering superior protection for high-value accounts and sensitive business operations.", "addedComponent": [], "label": "Enable FIDO2 capabilities", "impact": "Low Impact", @@ -443,6 +650,7 @@ "tag": [], "helpText": "Enables the HardwareOath authenticationMethod for the tenant. This allows you to use hardware tokens for generating 6 digit MFA codes.", "docsDescription": "Enables Hardware OAuth tokens for the tenant. This allows users to use hardware tokens like a Yubikey for authentication.", + "executiveText": "Enables physical hardware tokens that generate secure authentication codes, providing an alternative to smartphone-based authentication. This is particularly valuable for employees who cannot use mobile devices or require the highest security standards for accessing sensitive systems.", "addedComponent": [], "label": "Enable Hardware OAuth tokens", "impact": "Low Impact", @@ -454,9 +662,10 @@ { "name": "standards.allowOAuthTokens", "cat": "Entra (AAD) Standards", - "tag": [], + "tag": ["EIDSCA.AT01", "EIDSCA.AT02"], "helpText": "Allows you to use any software OAuth token generator", "docsDescription": "Enables OTP Software OAuth tokens for the tenant. This allows users to use OTP codes generated via software, like a password manager to be used as an authentication method.", + "executiveText": "Allows employees to use third-party authentication apps and password managers to generate secure login codes, providing flexibility in authentication methods while maintaining security standards. This accommodates diverse user preferences and existing security tools.", "addedComponent": [], "label": "Enable OTP Software OAuth tokens", "impact": "Low Impact", @@ -465,12 +674,28 @@ "powershellEquivalent": "Update-MgBetaPolicyAuthenticationMethodPolicyAuthenticationMethodConfiguration", "recommendedBy": [] }, + { + "name": "standards.FormsPhishingProtection", + "cat": "Global Standards", + "tag": ["CIS M365 5.0 (1.3.5)", "Security", "PhishingProtection"], + "helpText": "Enables internal phishing protection for Microsoft Forms to help prevent malicious forms from being created and shared within the organization. This feature scans forms created by internal users for potential phishing content and suspicious patterns.", + "docsDescription": "Enables internal phishing protection for Microsoft Forms by setting the isInOrgFormsPhishingScanEnabled property to true. This security feature helps protect organizations from internal phishing attacks through Microsoft Forms by automatically scanning forms created by internal users for potential malicious content, suspicious links, and phishing patterns. When enabled, Forms will analyze form content and block or flag potentially dangerous forms before they can be shared within the organization.", + "executiveText": "Automatically scans Microsoft Forms created by employees for malicious content and phishing attempts, preventing the creation and distribution of harmful forms within the organization. This protects against both internal threats and compromised accounts that might be used to distribute malicious content.", + "addedComponent": [], + "label": "Enable internal phishing protection for Forms", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2025-06-06", + "powershellEquivalent": "Graph API", + "recommendedBy": ["CIS", "CIPP"] + }, { "name": "standards.TAP", "cat": "Entra (AAD) Standards", "tag": [], "helpText": "Enables TAP and sets the default TAP lifetime to 1 hour. This configuration also allows you to select if a TAP is single use or multi-logon.", "docsDescription": "Enables Temporary Password generation for the tenant.", + "executiveText": "Enables temporary access passwords that IT administrators can generate for employees who are locked out or need emergency access to systems. These time-limited passwords provide a secure way to restore access without compromising long-term security policies.", "addedComponent": [ { "type": "autoComplete", @@ -500,9 +725,10 @@ { "name": "standards.PasswordExpireDisabled", "cat": "Entra (AAD) Standards", - "tag": ["CIS", "PWAgePolicyNew"], + "tag": ["CIS M365 5.0 (1.3.1)", "PWAgePolicyNew"], "helpText": "Disables the expiration of passwords for the tenant by setting the password expiration policy to never expire for any user.", "docsDescription": "Sets passwords to never expire for tenant, recommended to use in conjunction with secure password requirements.", + "executiveText": "Eliminates mandatory password expiration requirements, allowing employees to keep strong passwords indefinitely rather than forcing frequent changes that often lead to weaker passwords. This modern security approach reduces help desk calls and improves overall password security when combined with multi-factor authentication.", "addedComponent": [], "label": "Do not expire passwords", "impact": "Low Impact", @@ -511,11 +737,34 @@ "powershellEquivalent": "Update-MgDomain", "recommendedBy": ["CIS", "CIPP"] }, + { + "name": "standards.CustomBannedPasswordList", + "cat": "Entra (AAD) Standards", + "tag": ["CIS M365 5.0 (5.2.3.2)"], + "helpText": "**Requires Entra ID P1.** Updates and enables the Entra ID custom banned password list with the supplied words. Enter words separated by commas or semicolons. Each word must be 4-16 characters long. Maximum 1,000 words allowed.", + "docsDescription": "Updates and enables the Entra ID custom banned password list with the supplied words. This supplements the global banned password list maintained by Microsoft. The custom list is limited to 1,000 key base terms of 4-16 characters each. Entra ID will [block variations and common substitutions](https://learn.microsoft.com/en-us/entra/identity/authentication/tutorial-configure-custom-password-protection#configure-custom-banned-passwords) of these words in user passwords. [How are passwords evaluated?](https://learn.microsoft.com/en-us/entra/identity/authentication/concept-password-ban-bad#score-calculation)", + "addedComponent": [ + { + "type": "textField", + "name": "standards.CustomBannedPasswordList.BannedWords", + "label": "Banned Words", + "placeholder": "Banned words separated by commas or semicolons", + "required": true + } + ], + "label": "Set Entra ID Custom Banned Password List", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2025-06-28", + "powershellEquivalent": "Get-MgBetaDirectorySetting, New-MgBetaDirectorySetting, Update-MgBetaDirectorySetting", + "recommendedBy": ["CIS"] + }, { "name": "standards.ExternalMFATrusted", "cat": "Entra (AAD) Standards", "tag": [], "helpText": "Sets the state of the Cross-tenant access setting to trust external MFA. This allows guest users to use their home tenant MFA to access your tenant.", + "executiveText": "Allows external partners and vendors to use their own organization's multi-factor authentication when accessing company resources, streamlining collaboration while maintaining security standards. This reduces friction for external users while ensuring they still meet authentication requirements.", "addedComponent": [ { "type": "autoComplete", @@ -545,9 +794,10 @@ { "name": "standards.DisableTenantCreation", "cat": "Entra (AAD) Standards", - "tag": ["CIS"], + "tag": ["CIS M365 5.0 (1.2.3)", "CISA (MS.AAD.6.1v1)"], "helpText": "Restricts creation of M365 tenants to the Global Administrator or Tenant Creator roles.", "docsDescription": "Users by default are allowed to create M365 tenants. This disables that so only admins can create new M365 tenants.", + "executiveText": "Prevents regular employees from creating new Microsoft 365 organizations, ensuring all new tenants are properly managed and controlled by IT administrators. This prevents unauthorized shadow IT environments and maintains centralized governance over Microsoft 365 resources.", "addedComponent": [], "label": "Disable M365 Tenant creation by users", "impact": "Low Impact", @@ -559,9 +809,20 @@ { "name": "standards.EnableAppConsentRequests", "cat": "Entra (AAD) Standards", - "tag": ["CIS"], + "tag": [ + "CIS M365 5.0 (1.5.2)", + "CISA (MS.AAD.9.1v1)", + "EIDSCA.CP04", + "EIDSCA.CR01", + "EIDSCA.CR02", + "EIDSCA.CR03", + "EIDSCA.CR04", + "Essential 8 (1507)", + "NIST CSF 2.0 (PR.AA-05)" + ], "helpText": "Enables App consent admin requests for the tenant via the GA role. Does not overwrite existing reviewer settings", "docsDescription": "Enables the ability for users to request admin consent for applications. Should be used in conjunction with the \"Require admin consent for applications\" standards", + "executiveText": "Establishes a formal approval process where employees can request access to business applications that require administrative review. This balances security with productivity by allowing controlled access to necessary tools while preventing unauthorized application installations.", "addedComponent": [ { "type": "AdminRolesMultiSelect", @@ -582,6 +843,7 @@ "tag": [], "helpText": "Sets the state of the registration campaign for the tenant", "docsDescription": "Sets the state of the registration campaign for the tenant. If enabled nudges users to set up the Microsoft Authenticator during sign-in.", + "executiveText": "Prompts employees to set up multi-factor authentication during login, gradually improving the organization's security posture by encouraging adoption of stronger authentication methods. This helps achieve better security compliance without forcing immediate mandatory changes.", "addedComponent": [ { "type": "autoComplete", @@ -617,9 +879,10 @@ { "name": "standards.DisableM365GroupUsers", "cat": "Entra (AAD) Standards", - "tag": [], + "tag": ["CISA (MS.AAD.21.1v1)"], "helpText": "Restricts M365 group creation to certain admin roles. This disables the ability to create Teams, SharePoint sites, Planner, etc", "docsDescription": "Users by default are allowed to create M365 groups. This restricts M365 group creation to certain admin roles. This disables the ability to create Teams, SharePoint sites, Planner, etc", + "executiveText": "Restricts the creation of Microsoft 365 groups, Teams, and SharePoint sites to authorized administrators, preventing uncontrolled proliferation of collaboration spaces. This ensures proper governance, naming conventions, and resource management while maintaining oversight of all collaborative environments.", "addedComponent": [], "label": "Disable M365 Group creation by users", "impact": "Low Impact", @@ -631,9 +894,16 @@ { "name": "standards.DisableAppCreation", "cat": "Entra (AAD) Standards", - "tag": ["CIS"], + "tag": [ + "CIS M365 5.0 (1.2.2)", + "CISA (MS.AAD.4.1v1)", + "EIDSCA.AP10", + "Essential 8 (1175)", + "NIST CSF 2.0 (PR.AA-05)" + ], "helpText": "Disables the ability for users to create App registrations in the tenant.", "docsDescription": "Disables the ability for users to create applications in Entra. Done to prevent breached accounts from creating an app to maintain access to the tenant, even after the breached account has been secured.", + "executiveText": "Prevents regular employees from creating application registrations that could be used to maintain unauthorized access to company systems. This security measure ensures that only authorized IT personnel can create applications, reducing the risk of persistent security breaches through malicious applications.", "addedComponent": [], "label": "Disable App creation by users", "impact": "Low Impact", @@ -645,8 +915,9 @@ { "name": "standards.DisableSecurityGroupUsers", "cat": "Entra (AAD) Standards", - "tag": [], + "tag": ["CISA (MS.AAD.20.1v1)", "NIST CSF 2.0 (PR.AA-05)"], "helpText": "Completely disables the creation of security groups by users. This also breaks the ability to manage groups themselves, or create Teams", + "executiveText": "Restricts the creation of security groups to IT administrators only, preventing employees from creating unauthorized access groups that could bypass security controls. This ensures proper governance of access permissions and maintains centralized control over who can access what resources.", "addedComponent": [], "label": "Disable Security Group creation by users", "impact": "Medium Impact", @@ -660,6 +931,7 @@ "cat": "Entra (AAD) Standards", "tag": [], "helpText": "This standard currently does not function and can be safely disabled", + "executiveText": "This standard is currently non-functional and should be disabled. It was previously designed to remove outdated multi-factor authentication configurations in favor of modern security policies.", "addedComponent": [], "label": "Remove Legacy MFA if SD or CA is active", "impact": "Medium Impact", @@ -672,7 +944,8 @@ "name": "standards.DisableSelfServiceLicenses", "cat": "Entra (AAD) Standards", "tag": [], - "helpText": "This standard disables all self service licenses and enables all exclusions", + "helpText": "Note: requires 'Billing Administrator' GDAP role. This standard disables all self service licenses and enables all exclusions", + "executiveText": "Prevents employees from purchasing Microsoft 365 licenses independently, ensuring all software acquisitions go through proper procurement channels. This maintains budget control, prevents unauthorized spending, and ensures compliance with corporate licensing agreements.", "addedComponent": [ { "type": "textField", @@ -692,9 +965,18 @@ "name": "standards.DisableGuests", "cat": "Entra (AAD) Standards", "tag": [], - "helpText": "Blocks login for guest users that have not logged in for 90 days", - "addedComponent": [], - "label": "Disable Guest accounts that have not logged on for 90 days", + "helpText": "Blocks login for guest users that have not logged in for a number of days", + "executiveText": "Automatically disables external guest accounts that haven't been used for a number of days, reducing security risks from dormant accounts while maintaining access for active external collaborators. This helps maintain a clean user directory and reduces potential attack vectors.", + "addedComponent": [ + { + "type": "number", + "name": "standards.DisableGuests.days", + "required": true, + "defaultValue": 90, + "label": "Days of inactivity" + } + ], + "label": "Disable Guest accounts that have not logged on for a number of days", "impact": "Medium Impact", "impactColour": "warning", "addedDate": "2022-10-20", @@ -704,9 +986,17 @@ { "name": "standards.OauthConsent", "cat": "Entra (AAD) Standards", - "tag": ["CIS"], + "tag": [ + "CIS M365 5.0 (1.5.1)", + "CISA (MS.AAD.4.2v1)", + "EIDSCA.AP08", + "EIDSCA.AP09", + "Essential 8 (1175)", + "NIST CSF 2.0 (PR.AA-05)" + ], "helpText": "Disables users from being able to consent to applications, except for those specified in the field below", "docsDescription": "Requires users to get administrator consent before sharing data with applications. You can preapprove specific applications.", + "executiveText": "Requires administrative approval before employees can grant applications access to company data, preventing unauthorized data sharing and potential security breaches. This protects against malicious applications while allowing approved business tools to function normally.", "addedComponent": [ { "type": "textField", @@ -728,6 +1018,7 @@ "tag": ["IntegratedApps"], "helpText": "Sets the default oauth consent level so users can consent to applications that have low risks.", "docsDescription": "Allows users to consent to applications with low assigned risk.", + "executiveText": "Allows employees to approve low-risk applications without administrative intervention, balancing security with productivity. This provides a middle ground between complete restriction and open access, enabling business agility while maintaining protection against high-risk applications.", "label": "Allow users to consent to applications with low security risk (Prevent OAuth phishing. Lower impact, less secure)", "impact": "Medium Impact", "impactColour": "warning", @@ -738,8 +1029,9 @@ { "name": "standards.GuestInvite", "cat": "Entra (AAD) Standards", - "tag": [], + "tag": ["CISA (MS.AAD.18.1v1)", "EIDSCA.AP04", "EIDSCA.AP07"], "helpText": "This setting controls who can invite guests to your directory to collaborate on resources secured by your company, such as SharePoint sites or Azure resources.", + "executiveText": "Controls who within the organization can invite external partners and vendors to access company resources, ensuring proper oversight of external access while enabling necessary business collaboration. This helps maintain security while supporting partnership and vendor relationships.", "addedComponent": [ { "type": "autoComplete", @@ -778,9 +1070,10 @@ { "name": "standards.StaleEntraDevices", "cat": "Entra (AAD) Standards", - "tag": ["CIS"], - "helpText": "Cleans up Entra devices that have not connected/signed in for the specified number of days.", - "docsDescription": "Cleans up Entra devices that have not connected/signed in for the specified number of days. First disables and later deletes the devices. More info can be found in the [Microsoft documentation](https://learn.microsoft.com/en-us/entra/identity/devices/manage-stale-devices)", + "tag": ["Essential 8 (1501)", "NIST CSF 2.0 (ID.AM-08)", "NIST CSF 2.0 (PR.PS-03)"], + "helpText": "Remediate is currently not available. Cleans up Entra devices that have not connected/signed in for the specified number of days.", + "docsDescription": "Remediate is currently not available. Cleans up Entra devices that have not connected/signed in for the specified number of days. First disables and later deletes the devices. More info can be found in the [Microsoft documentation](https://learn.microsoft.com/en-us/entra/identity/devices/manage-stale-devices)", + "executiveText": "Automatically identifies and removes inactive devices that haven't connected to company systems for a specified period, reducing security risks from abandoned or lost devices. This maintains a clean device inventory and prevents potential unauthorized access through dormant device registrations.", "addedComponent": [ { "type": "number", @@ -791,7 +1084,7 @@ "disabledFeatures": { "report": false, "warn": false, - "remediate": true + "remediate": false }, "label": "Cleanup stale Entra devices", "impact": "High Impact", @@ -805,6 +1098,7 @@ "cat": "Entra (AAD) Standards", "tag": [], "helpText": "Disables App consent and set to Allow user consent for apps", + "executiveText": "Reverses application consent restrictions, allowing employees to approve applications independently without administrative oversight. This increases productivity and user autonomy but reduces security controls over data access permissions.", "addedComponent": [], "label": "Undo App Consent Standard", "impact": "High Impact", @@ -816,9 +1110,10 @@ { "name": "standards.SecurityDefaults", "cat": "Entra (AAD) Standards", - "tag": [], + "tag": ["CISA (MS.AAD.11.1v1)"], "helpText": "Enables security defaults for the tenant, for newer tenants this is enabled by default. Do not enable this feature if you use Conditional Access.", "docsDescription": "Enables SD for the tenant, which disables all forms of basic authentication and enforces users to configure MFA. Users are only prompted for MFA when a logon is considered 'suspect' by Microsoft.", + "executiveText": "Activates Microsoft's baseline security configuration that requires multi-factor authentication and blocks legacy authentication methods. This provides essential security protection for organizations without complex conditional access policies, significantly improving security posture with minimal configuration.", "addedComponent": [], "label": "Enable Security Defaults", "impact": "High Impact", @@ -830,9 +1125,10 @@ { "name": "standards.DisableSMS", "cat": "Entra (AAD) Standards", - "tag": [], + "tag": ["CIS M365 5.0 (2.3.5)", "EIDSCA.AS04", "NIST CSF 2.0 (PR.AA-03)"], "helpText": "This blocks users from using SMS as an MFA method. If a user only has SMS as a MFA method, they will be unable to log in.", "docsDescription": "Disables SMS as an MFA method for the tenant. If a user only has SMS as a MFA method, they will be unable to sign in.", + "executiveText": "Disables SMS text messages as a multi-factor authentication method due to security vulnerabilities like SIM swapping attacks. This forces users to adopt more secure authentication methods like authenticator apps or hardware tokens, significantly improving account security.", "addedComponent": [], "label": "Disables SMS as an MFA method", "impact": "High Impact", @@ -844,9 +1140,10 @@ { "name": "standards.DisableVoice", "cat": "Entra (AAD) Standards", - "tag": [], + "tag": ["CIS M365 5.0 (2.3.5)", "EIDSCA.AV01", "NIST CSF 2.0 (PR.AA-03)"], "helpText": "This blocks users from using Voice call as an MFA method. If a user only has Voice as a MFA method, they will be unable to log in.", "docsDescription": "Disables Voice call as an MFA method for the tenant. If a user only has Voice call as a MFA method, they will be unable to sign in.", + "executiveText": "Disables voice call authentication due to security vulnerabilities and social engineering risks. This forces users to adopt more secure authentication methods like authenticator apps, improving overall account security by eliminating phone-based attack vectors.", "addedComponent": [], "label": "Disables Voice call as an MFA method", "impact": "High Impact", @@ -858,8 +1155,9 @@ { "name": "standards.DisableEmail", "cat": "Entra (AAD) Standards", - "tag": [], + "tag": ["CIS M365 5.0 (2.3.5)", "NIST CSF 2.0 (PR.AA-03)"], "helpText": "This blocks users from using email as an MFA method. This disables the email OTP option for guest users, and instead prompts them to create a Microsoft account.", + "executiveText": "Disables email-based authentication codes due to security concerns with email interception and account compromise. This forces users to adopt more secure authentication methods, particularly affecting guest users who must use stronger verification methods.", "addedComponent": [], "label": "Disables Email as an MFA method", "impact": "High Impact", @@ -874,6 +1172,7 @@ "tag": [], "helpText": "This blocks users from using Certificates as an MFA method.", "docsDescription": "", + "executiveText": "Disables certificate-based authentication as a multi-factor authentication method, typically used when organizations want to standardize on other authentication methods or when certificate management becomes too complex for the security benefit provided.", "addedComponent": [], "label": "Disables Certificates as an MFA method", "impact": "High Impact", @@ -888,6 +1187,7 @@ "tag": [], "helpText": "This blocks users from using QR Code Pin as an MFA method. If a user only has QR Code Pin as a MFA method, they will be unable to log in.", "docsDescription": "Disables QR Code Pin as an MFA method for the tenant. If a user only has QR Code Pin as a MFA method, they will be unable to sign in.", + "executiveText": "Disables QR Code Pin authentication method due to security concerns, forcing users to adopt more secure authentication alternatives. This helps standardize authentication methods and reduces potential security vulnerabilities while ensuring employees use more robust multi-factor authentication options.", "addedComponent": [], "label": "Disables QR Code Pin as an MFA method", "impact": "High Impact", @@ -899,8 +1199,19 @@ { "name": "standards.PerUserMFA", "cat": "Entra (AAD) Standards", - "tag": [], + "tag": [ + "CIS M365 5.0 (1.2.1)", + "CIS M365 5.0 (1.1.1)", + "CIS M365 5.0 (1.1.2)", + "CISA (MS.AAD.1.1v1)", + "CISA (MS.AAD.1.2v1)", + "Essential 8 (1504)", + "Essential 8 (1173)", + "Essential 8 (1401)", + "NIST CSF 2.0 (PR.AA-03)" + ], "helpText": "Enables per user MFA for all users.", + "executiveText": "Requires all employees to use multi-factor authentication for enhanced account security, significantly reducing the risk of unauthorized access from compromised passwords. This fundamental security measure protects against the majority of account-based attacks and is essential for maintaining strong cybersecurity posture.", "addedComponent": [], "label": "Enables per user MFA for all users.", "impact": "High Impact", @@ -924,7 +1235,7 @@ "label": "Preferred Language", "api": { "url": "/languageList.json", - "labelField": "language", + "labelField": "tag", "valueField": "tag" } } @@ -939,7 +1250,7 @@ { "name": "standards.OutBoundSpamAlert", "cat": "Exchange Standards", - "tag": ["CIS"], + "tag": ["CIS M365 5.0 (2.1.6)"], "helpText": "Set the Outbound Spam Alert e-mail address", "docsDescription": "Sets the e-mail address to which outbound spam alerts are sent.", "addedComponent": [ @@ -1011,6 +1322,7 @@ "tag": [], "helpText": "Disables Transport Neutral Encapsulation Format (TNEF)/winmail.dat for the tenant. TNEF can cause issues if the recipient is not using a client supporting TNEF.", "docsDescription": "Disables Transport Neutral Encapsulation Format (TNEF)/winmail.dat for the tenant. TNEF can cause issues if the recipient is not using a client supporting TNEF. Cannot be overridden by the user. For more information, see [Microsoft's documentation.](https://learn.microsoft.com/en-us/exchange/mail-flow/content-conversion/tnef-conversion?view=exchserver-2019)", + "executiveText": "Prevents the creation of winmail.dat attachments that can cause compatibility issues when sending emails to external recipients using non-Outlook email clients. This improves email compatibility and reduces support issues with external partners and customers.", "addedComponent": [], "label": "Disable TNEF/winmail.dat", "impact": "Low Impact", @@ -1025,6 +1337,7 @@ "tag": [], "helpText": "Sets the default Focused Inbox state for the tenant. This can be overridden by the user.", "docsDescription": "Sets the default Focused Inbox state for the tenant. This can be overridden by the user in their Outlook settings. For more information, see [Microsoft's documentation.](https://support.microsoft.com/en-us/office/focused-inbox-for-outlook-f445ad7f-02f4-4294-a82e-71d8964e3978)", + "executiveText": "Configures the default setting for Outlook's Focused Inbox feature, which automatically sorts important emails into a focused view while placing less important emails in a separate section. This can improve employee productivity by reducing email clutter, though users can adjust this setting individually.", "addedComponent": [ { "type": "autoComplete", @@ -1056,6 +1369,7 @@ "tag": [], "helpText": "Sets the Cloud Message Recall state for the tenant. This allows users to recall messages from the cloud.", "docsDescription": "Sets the default state for Cloud Message Recall for the tenant. By default this is enabled. You can read more about the feature [here.](https://techcommunity.microsoft.com/t5/exchange-team-blog/cloud-based-message-recall-in-exchange-online/ba-p/3744714)", + "executiveText": "Enables employees to recall or retract emails they've sent, helping prevent embarrassing mistakes or accidental data sharing. This feature can reduce the impact of human errors in email communication and provides a safety net for sensitive information accidentally sent to wrong recipients.", "addedComponent": [ { "type": "autoComplete", @@ -1087,6 +1401,7 @@ "tag": [], "helpText": "Enables auto-expanding archives for the tenant", "docsDescription": "Enables auto-expanding archives for the tenant. Does not enable archives for users.", + "executiveText": "Enables automatic expansion of email archive storage when users approach their archive limits, ensuring continuous email retention without manual intervention. This prevents email storage issues and maintains compliance with data retention policies without requiring ongoing administrative management.", "addedComponent": [], "label": "Enable Auto-expanding archives", "impact": "Low Impact", @@ -1096,10 +1411,44 @@ "recommendedBy": [] }, { - "name": "standards.EnableOnlineArchiving", + "name": "standards.TwoClickEmailProtection", "cat": "Exchange Standards", "tag": [], + "helpText": "Configures the two-click confirmation requirement for viewing encrypted/protected emails in OWA and new Outlook. When enabled, users must click \"View message\" before accessing protected content, providing an additional layer of privacy protection.", + "docsDescription": "Configures the TwoClickMailPreviewEnabled setting in Exchange Online organization configuration. This security feature requires users to click \"View message\" before accessing encrypted or protected emails in Outlook on the web (OWA) and new Outlook for Windows. This provides additional privacy protection by preventing protected content from automatically displaying, giving users time to ensure their screen is not visible to others before viewing sensitive content. The feature helps protect against shoulder surfing and accidental disclosure of confidential information.", + "executiveText": "Requires employees to click twice before viewing encrypted or sensitive emails, preventing accidental exposure of confidential information when screens might be visible to others. This privacy protection helps prevent shoulder surfing and ensures employees are intentional about viewing sensitive content.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "creatable": false, + "label": "Select value", + "name": "standards.TwoClickEmailProtection.state", + "options": [ + { + "label": "Enabled", + "value": "enabled" + }, + { + "label": "Disabled", + "value": "disabled" + } + ] + } + ], + "label": "Set two-click confirmation for encrypted emails in New Outlook", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2025-06-13", + "powershellEquivalent": "Set-OrganizationConfig -TwoClickMailPreviewEnabled $true | $false", + "recommendedBy": [] + }, + { + "name": "standards.EnableOnlineArchiving", + "cat": "Exchange Standards", + "tag": ["Essential 8 (1511)", "NIST CSF 2.0 (PR.DS-11)"], "helpText": "Enables the In-Place Online Archive for all UserMailboxes with a valid license.", + "executiveText": "Automatically enables online email archiving for all licensed employees, providing additional storage for older emails while maintaining easy access. This helps manage mailbox sizes, improves email performance, and supports compliance with data retention requirements.", "addedComponent": [], "label": "Enable Online Archive for all users", "impact": "Low Impact", @@ -1113,6 +1462,7 @@ "cat": "Exchange Standards", "tag": [], "helpText": "Enables litigation hold for all UserMailboxes with a valid license.", + "executiveText": "Preserves all email content for legal and compliance purposes by preventing permanent deletion of emails, even when users attempt to delete them. This is essential for organizations subject to legal discovery requirements or regulatory compliance mandates.", "addedComponent": [ { "type": "textField", @@ -1131,9 +1481,10 @@ { "name": "standards.SpoofWarn", "cat": "Exchange Standards", - "tag": ["CIS"], + "tag": ["CIS M365 5.0 (6.2.3)"], "helpText": "Adds or removes indicators to e-mail messages received from external senders in Outlook. Works on all Outlook clients/OWA", "docsDescription": "Adds or removes indicators to e-mail messages received from external senders in Outlook. You can read more about this feature on [Microsoft's Exchange Team Blog.](https://techcommunity.microsoft.com/t5/exchange-team-blog/native-external-sender-callouts-on-email-in-outlook/ba-p/2250098)", + "executiveText": "Displays visual warnings in Outlook when emails come from external senders, helping employees identify potentially suspicious messages and reducing the risk of phishing attacks. This security feature makes it easier for staff to distinguish between internal and external communications.", "addedComponent": [ { "type": "autoComplete", @@ -1170,8 +1521,9 @@ { "name": "standards.EnableMailTips", "cat": "Exchange Standards", - "tag": ["CIS", "exo_mailtipsenabled"], + "tag": ["CIS M365 5.0 (6.5.2)", "exo_mailtipsenabled"], "helpText": "Enables all MailTips in Outlook. MailTips are the notifications Outlook and Outlook on the web shows when an email you create, meets some requirements", + "executiveText": "Enables helpful notifications in Outlook that warn users about potential email issues, such as sending to large groups, external recipients, or invalid addresses. This reduces email mistakes and improves communication efficiency by providing real-time guidance to employees.", "addedComponent": [ { "type": "number", @@ -1193,6 +1545,7 @@ "cat": "Exchange Standards", "tag": [], "helpText": "Sets the default state for automatically turning meetings into Teams meetings for the tenant. This can be overridden by the user in Outlook.", + "executiveText": "Automatically adds Microsoft Teams meeting links to calendar invitations by default, streamlining the process of creating virtual meetings. This improves collaboration efficiency and ensures consistent meeting experiences across the organization, though users can override this setting when needed.", "addedComponent": [ { "type": "autoComplete", @@ -1225,6 +1578,7 @@ "tag": [], "helpText": "Disables the daily viva reports for all users. This standard requires the CIPP-SAM application to have the Company Administrator (Global Admin) role in the tenant. Enable this using CIPP > Advanced > Super Admin > SAM App Roles. Activate the roles with a CPV refresh.", "docsDescription": "", + "executiveText": "Disables daily Microsoft Viva Insights reports that are automatically sent to employees, reducing email volume and allowing organizations to control when and how productivity insights are shared. This can help prevent information overload while maintaining the ability to access insights when needed.", "addedComponent": [], "label": "Disable daily Insight/Viva reports", "impact": "Low Impact", @@ -1236,8 +1590,9 @@ { "name": "standards.RotateDKIM", "cat": "Exchange Standards", - "tag": ["CIS"], + "tag": ["CIS M365 5.0 (2.1.9)"], "helpText": "Rotate DKIM keys that are 1024 bit to 2048 bit", + "executiveText": "Upgrades email security by replacing older 1024-bit encryption keys with stronger 2048-bit keys for email authentication. This improves the organization's email security posture and helps prevent email spoofing and tampering, maintaining trust with email recipients.", "addedComponent": [], "label": "Rotate DKIM keys that are 1024 bit to 2048 bit", "impact": "Low Impact", @@ -1249,8 +1604,9 @@ { "name": "standards.AddDKIM", "cat": "Exchange Standards", - "tag": ["CIS"], + "tag": ["CIS M365 5.0 (2.1.9)"], "helpText": "Enables DKIM for all domains that currently support it", + "executiveText": "Enables email authentication technology that digitally signs outgoing emails to verify they actually came from your organization. This prevents email spoofing, improves email deliverability, and protects the company's reputation by ensuring recipients can trust emails from your domains.", "addedComponent": [], "label": "Enables DKIM for all domains that currently support it", "impact": "Low Impact", @@ -1259,12 +1615,52 @@ "powershellEquivalent": "New-DkimSigningConfig and Set-DkimSigningConfig", "recommendedBy": ["CIS", "CIPP"] }, + { + "name": "standards.AddDMARCToMOERA", + "cat": "Global Standards", + "tag": ["CIS M365 5.0 (2.1.10)", "Security", "PhishingProtection"], + "helpText": "Note: requires 'Domain Name Administrator' GDAP role. This should be enabled even if the MOERA (onmicrosoft.com) domains is not used for sending. Enabling this prevents email spoofing. The default value is 'v=DMARC1; p=reject;' recommended because the domain is only used within M365 and reporting is not needed. Omitting pct tag default to 100%", + "docsDescription": "Note: requires 'Domain Name Administrator' GDAP role. Adds a DMARC record to MOERA (onmicrosoft.com) domains. This should be enabled even if the MOERA (onmicrosoft.com) domains is not used for sending. Enabling this prevents email spoofing. The default record is 'v=DMARC1; p=reject;' recommended because the domain is only used within M365 and reporting is not needed. Omitting pct tag default to 100%", + "executiveText": "Implements advanced email security for Microsoft's default domain names (onmicrosoft.com) to prevent criminals from impersonating your organization. This blocks fraudulent emails that could damage your company's reputation and protects partners and customers from phishing attacks using your domain names.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "creatable": true, + "required": false, + "placeholder": "v=DMARC1; p=reject; (recommended)", + "label": "Value", + "name": "standards.AddDMARCToMOERA.RecordValue", + "options": [ + { + "label": "v=DMARC1; p=reject; (recommended)", + "value": "v=DMARC1; p=reject;" + } + ] + } + ], + "label": "Enables DMARC on MOERA (onmicrosoft.com) domains", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2025-06-16", + "powershellEquivalent": "Portal only", + "recommendedBy": ["CIS", "Microsoft"] + }, { "name": "standards.EnableMailboxAuditing", "cat": "Exchange Standards", - "tag": ["CIS", "exo_mailboxaudit"], + "tag": [ + "CIS M365 5.0 (6.1.1)", + "CIS M365 5.0 (6.1.2)", + "CIS M365 5.0 (6.1.3)", + "exo_mailboxaudit", + "Essential 8 (1509)", + "Essential 8 (1683)", + "NIST CSF 2.0 (DE.CM-09)" + ], "helpText": "Enables Mailbox auditing for all mailboxes and on tenant level. Disables audit bypass on all mailboxes. Unified Audit Log needs to be enabled for this standard to function.", "docsDescription": "Enables mailbox auditing on tenant level and for all mailboxes. Disables audit bypass on all mailboxes. By default Microsoft does not enable mailbox auditing for Resource Mailboxes, Public Folder Mailboxes and DiscoverySearch Mailboxes. Unified Audit Log needs to be enabled for this standard to function.", + "executiveText": "Enables comprehensive logging of all email access and modifications across all employee mailboxes, providing detailed audit trails for security investigations and compliance requirements. This helps detect unauthorized access, data breaches, and supports regulatory compliance efforts.", "addedComponent": [], "label": "Enable Mailbox auditing", "impact": "Low Impact", @@ -1278,6 +1674,7 @@ "cat": "Exchange Standards", "tag": [], "helpText": "Sets the Send and Receive limits for new users. Valid values are 1MB to 150MB", + "executiveText": "Establishes standard email attachment size limits for all new employees, balancing functionality with system performance and security. This prevents email system overload from large attachments while ensuring employees can share necessary files through appropriate channels.", "addedComponent": [ { "type": "number", @@ -1305,6 +1702,7 @@ "tag": [], "helpText": "Sets the default sharing level for the default calendar, for all users", "docsDescription": "Sets the default sharing level for the default calendar for all users in the tenant. You can read about the different sharing levels [here.](https://learn.microsoft.com/en-us/powershell/module/exchange/set-mailboxfolderpermission?view=exchange-ps#-accessrights)", + "executiveText": "Configures how much calendar information employees share by default with colleagues, balancing collaboration needs with privacy. This setting determines whether others can see meeting details, free/busy times, or just availability, helping optimize scheduling while protecting sensitive meeting information.", "disabledFeatures": { "report": true, "warn": true, @@ -1371,12 +1769,68 @@ "powershellEquivalent": "Set-MailboxFolderPermission", "recommendedBy": [] }, + { + "name": "standards.EXOOutboundSpamLimits", + "cat": "Exchange Standards", + "tag": ["CIS M365 5.0 (2.1.6)"], + "helpText": "Configures the outbound spam recipient limits (external per hour, internal per hour, per day) and the action to take when a limit is reached. The 'Set Outbound Spam Alert e-mail' standard is recommended to configure together with this one. ", + "docsDescription": "Configures the Exchange Online outbound spam recipient limits for external per hour, internal per hour, and per day, along with the action to take (e.g., BlockUser, Alert) when these limits are exceeded. This helps prevent abuse and manage email flow. Microsoft's recommendations can be found [here.](https://learn.microsoft.com/en-us/defender-office-365/recommended-settings-for-eop-and-office365#eop-outbound-spam-policy-settings) The 'Set Outbound Spam Alert e-mail' standard is recommended to configure together with this one.", + "executiveText": "Sets limits on how many emails employees can send per hour and per day to prevent spam and protect the organization's email reputation. When limits are exceeded, the system can alert administrators or temporarily block the user, helping detect compromised accounts or prevent abuse.", + "addedComponent": [ + { + "type": "number", + "name": "standards.EXOOutboundSpamLimits.RecipientLimitExternalPerHour", + "label": "External Recipient Limit Per Hour", + "defaultValue": 400 + }, + { + "type": "number", + "name": "standards.EXOOutboundSpamLimits.RecipientLimitInternalPerHour", + "label": "Internal Recipient Limit Per Hour", + "defaultValue": 800 + }, + { + "type": "number", + "name": "standards.EXOOutboundSpamLimits.RecipientLimitPerDay", + "label": "Daily Recipient Limit", + "defaultValue": 800 + }, + { + "type": "autoComplete", + "multiple": false, + "creatable": false, + "name": "standards.EXOOutboundSpamLimits.ActionWhenThresholdReached", + "label": "Action When Threshold Reached", + "options": [ + { + "label": "Alert", + "value": "Alert" + }, + { + "label": "Block User", + "value": "BlockUser" + }, + { + "label": "Block user from sending mail for the rest of the day", + "value": "BlockUserForToday" + } + ] + } + ], + "label": "Set Exchange Outbound Spam Limits", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2025-05-13", + "powershellEquivalent": "Set-HostedOutboundSpamFilterPolicy", + "recommendedBy": ["CIPP", "CIS"] + }, { "name": "standards.DisableExternalCalendarSharing", "cat": "Exchange Standards", - "tag": ["CIS", "exo_individualsharing"], + "tag": ["CIS M365 5.0 (1.3.3)", "exo_individualsharing"], "helpText": "Disables the ability for users to share their calendar with external users. Only for the default policy, so exclusions can be made if needed.", "docsDescription": "Disables external calendar sharing for the entire tenant. This is not a widely used feature, and it's therefore unlikely that this will impact users. Only for the default policy, so exclusions can be made if needed by making a new policy and assigning it to users.", + "executiveText": "Prevents employees from sharing their calendars with external parties, protecting sensitive meeting information and internal schedules from unauthorized access. This security measure helps maintain confidentiality of business activities while still allowing internal collaboration.", "addedComponent": [], "label": "Disable external calendar sharing", "impact": "Low Impact", @@ -1388,9 +1842,10 @@ { "name": "standards.AutoAddProxy", "cat": "Exchange Standards", - "tag": ["CIS"], + "tag": [], "helpText": "Automatically adds all available domains as a proxy address.", "docsDescription": "Automatically finds all available domain names in the tenant, and tries to add proxy addresses based on the user's UPN to each of these.", + "executiveText": "Automatically creates email addresses for employees across all company domains, ensuring they can receive emails sent to any of the organization's domain names. This improves email delivery reliability and maintains consistent communication channels across different business units or brands.", "addedComponent": [], "label": "Automatically deploy proxy addresses", "impact": "Medium Impact", @@ -1407,9 +1862,10 @@ { "name": "standards.DisableAdditionalStorageProviders", "cat": "Exchange Standards", - "tag": ["CIS", "exo_storageproviderrestricted"], + "tag": ["CIS M365 5.0 (6.5.3)", "exo_storageproviderrestricted"], "helpText": "Disables the ability for users to open files in Outlook on the Web, from other providers such as Box, Dropbox, Facebook, Google Drive, OneDrive Personal, etc.", "docsDescription": "Disables additional storage providers in OWA. This is to prevent users from using personal storage providers like Dropbox, Google Drive, etc. Usually this has little user impact.", + "executiveText": "Prevents employees from accessing personal cloud storage services like Dropbox or Google Drive through Outlook on the web, reducing data security risks and ensuring company information stays within approved corporate systems. This helps maintain data governance and prevents accidental data leaks.", "addedComponent": [], "label": "Disable additional storage providers in OWA", "impact": "Low Impact", @@ -1421,9 +1877,10 @@ { "name": "standards.AntiSpamSafeList", "cat": "Defender Standards", - "tag": [], + "tag": ["CIS M365 5.0 (2.1.13)"], "helpText": "Sets the anti-spam connection filter policy option 'safe list' in Defender.", "docsDescription": "Sets [Microsoft's built-in 'safe list'](https://learn.microsoft.com/en-us/powershell/module/exchange/set-hostedconnectionfilterpolicy?view=exchange-ps#-enablesafelist) in the anti-spam connection filter policy, rather than setting a custom safe/block list of IPs.", + "executiveText": "Enables Microsoft's pre-approved list of trusted email servers to improve email delivery from legitimate sources while maintaining spam protection. This reduces false positives where legitimate emails might be blocked while still protecting against spam and malicious emails.", "addedComponent": [ { "type": "switch", @@ -1443,6 +1900,7 @@ "cat": "Exchange Standards", "tag": [], "helpText": "Sets the shorten meetings settings on a tenant level. This will shorten meetings by the selected amount of minutes. Valid values are 0 to 29. Short meetings are under 60 minutes, long meetings are over 60 minutes.", + "executiveText": "Automatically shortens calendar meetings by a specified number of minutes to provide buffer time between meetings, reducing back-to-back scheduling stress and allowing employees time to transition between meetings. This improves work-life balance and meeting effectiveness.", "addedComponent": [ { "type": "autoComplete", @@ -1490,6 +1948,7 @@ "tag": [], "helpText": "Sets the state of Bookings on the tenant. Bookings is a scheduling tool that allows users to book appointments with others both internal and external.", "docsDescription": "", + "executiveText": "Controls whether employees can use Microsoft Bookings to create online appointment scheduling pages for internal and external clients. This feature can improve customer service and streamline appointment management, but may need to be controlled for security or business process reasons.", "addedComponent": [ { "type": "autoComplete", @@ -1516,32 +1975,72 @@ "recommendedBy": [] }, { - "name": "standards.DisableOutlookAddins", - "cat": "Exchange Standards", - "tag": ["CIS", "exo_outlookaddins"], - "helpText": "Disables the ability for users to install add-ins in Outlook. This is to prevent users from installing malicious add-ins.", - "docsDescription": "Disables users from being able to install add-ins in Outlook. Only admins are able to approve add-ins for the users. This is done to reduce the threat surface for data exfiltration.", - "addedComponent": [], - "label": "Disable users from installing add-ins in Outlook", - "impact": "Medium Impact", - "impactColour": "warning", - "addedDate": "2024-02-05", - "powershellEquivalent": "Get-ManagementRoleAssignment | Remove-ManagementRoleAssignment", - "recommendedBy": ["CIS"] - }, - { - "name": "standards.SafeSendersDisable", + "name": "standards.EXODirectSend", "cat": "Exchange Standards", "tag": [], - "helpText": "Loops through all users and removes the Safe Senders list. This is to prevent SPF bypass attacks, as the Safe Senders list is not checked by SPF.", - "addedComponent": [], - "disabledFeatures": { - "report": true, - "warn": true, - "remediate": false - }, - "label": "Remove Safe Senders to prevent SPF bypass", - "impact": "Medium Impact", + "helpText": "Sets the state of Direct Send in Exchange Online. Direct Send allows applications to send emails directly to Exchange Online mailboxes as the tenants domains, without requiring authentication.", + "docsDescription": "Controls whether applications can use Direct Send to send emails directly to Exchange Online mailboxes as the tenants domains, without requiring authentication. A detailed explanation from Microsoft can be found [here.](https://learn.microsoft.com/en-us/exchange/mail-flow-best-practices/how-to-set-up-a-multifunction-device-or-application-to-send-email-using-microsoft-365-or-office-365)", + "executiveText": "Controls whether business applications and devices (like printers or scanners) can send emails through the company's email system without authentication. While this enables convenient features like scan-to-email, it may pose security risks and should be carefully managed.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "creatable": false, + "label": "Select value", + "name": "standards.EXODirectSend.state", + "options": [ + { + "label": "Enabled", + "value": "enabled" + }, + { + "label": "Disabled", + "value": "disabled" + } + ] + } + ], + "label": "Set Direct Send state", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2025-05-28", + "powershellEquivalent": "Set-OrganizationConfig -RejectDirectSend $true/$false", + "recommendedBy": [] + }, + { + "name": "standards.DisableOutlookAddins", + "cat": "Exchange Standards", + "tag": [ + "CIS M365 5.0 (6.3.1)", + "exo_outlookaddins", + "NIST CSF 2.0 (PR.AA-05)", + "NIST CSF 2.0 (PR.PS-05)" + ], + "helpText": "Disables the ability for users to install add-ins in Outlook. This is to prevent users from installing malicious add-ins.", + "docsDescription": "Disables users from being able to install add-ins in Outlook. Only admins are able to approve add-ins for the users. This is done to reduce the threat surface for data exfiltration.", + "executiveText": "Prevents employees from installing third-party add-ins in Outlook without administrative approval, reducing security risks from potentially malicious extensions. This ensures only vetted and approved tools can access company email data while maintaining centralized control over email functionality.", + "addedComponent": [], + "label": "Disable users from installing add-ins in Outlook", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2024-02-05", + "powershellEquivalent": "Get-ManagementRoleAssignment | Remove-ManagementRoleAssignment", + "recommendedBy": ["CIS"] + }, + { + "name": "standards.SafeSendersDisable", + "cat": "Exchange Standards", + "tag": [], + "helpText": "Loops through all users and removes the Safe Senders list. This is to prevent SPF bypass attacks, as the Safe Senders list is not checked by SPF.", + "executiveText": "Removes user-defined safe sender lists to prevent security bypasses where malicious emails could avoid spam filtering. This ensures all emails go through proper security screening, even if users have previously marked senders as 'safe', improving overall email security.", + "addedComponent": [], + "disabledFeatures": { + "report": true, + "warn": true, + "remediate": false + }, + "label": "Remove Safe Senders to prevent SPF bypass", + "impact": "Medium Impact", "impactColour": "warning", "addedDate": "2023-10-26", "powershellEquivalent": "Set-MailboxJunkEmailConfiguration", @@ -1553,6 +2052,7 @@ "tag": [], "helpText": "Sets emails sent as and on behalf of shared mailboxes to also be stored in the shared mailbox sent items folder", "docsDescription": "This makes sure that e-mails sent from shared mailboxes or delegate mailboxes, end up in the mailbox of the shared/delegate mailbox instead of the sender, allowing you to keep replies in the same mailbox as the original e-mail.", + "executiveText": "Ensures emails sent from shared mailboxes (like info@company.com) are stored in the shared mailbox rather than the individual sender's mailbox. This maintains complete email threads in one location, improving collaboration and ensuring all team members can see the full conversation history.", "addedComponent": [ { "type": "switch", @@ -1573,6 +2073,7 @@ "tag": [], "helpText": "Enables the ability for users to send from their alias addresses.", "docsDescription": "Allows users to change the 'from' address to any set in their Azure AD Profile.", + "executiveText": "Allows employees to send emails from their alternative email addresses (aliases) rather than just their primary address. This is useful for employees who manage multiple roles or departments, enabling them to send emails from the most appropriate address for the context.", "addedComponent": [], "label": "Allow users to send from their alias addresses", "impact": "Medium Impact", @@ -1587,6 +2088,7 @@ "tag": [], "helpText": "Set the state of the spam submission button in Outlook", "docsDescription": "Set the state of the built-in Report button in Outlook. This gives the users the ability to report emails as spam or phish.", + "executiveText": "Enables employees to easily report suspicious emails directly from Outlook, helping improve the organization's spam and phishing detection systems. This crowdsourced approach to security allows users to contribute to threat detection while providing valuable feedback to enhance email security filters.", "addedComponent": [ { "type": "autoComplete", @@ -1621,23 +2123,46 @@ { "name": "standards.DisableSharedMailbox", "cat": "Exchange Standards", - "tag": ["CIS"], + "tag": ["CIS M365 5.0 (1.2.2)", "CISA (MS.AAD.10.1v1)", "NIST CSF 2.0 (PR.AA-01)"], "helpText": "Blocks login for all accounts that are marked as a shared mailbox. This is Microsoft best practice to prevent direct logons to shared mailboxes.", "docsDescription": "Shared mailboxes can be directly logged into if the password is reset, this presents a security risk as do all shared login credentials. Microsoft's recommendation is to disable the user account for shared mailboxes. It would be a good idea to review the sign-in reports to establish potential impact.", + "executiveText": "Prevents direct login to shared mailbox accounts (like info@company.com), ensuring they can only be accessed through authorized users' accounts. This security measure eliminates the risk of shared passwords and unauthorized access while maintaining proper access control and audit trails.", "addedComponent": [], - "label": "Disable Shared Mailbox AAD accounts", + "label": "Disable Shared Mailbox Entra accounts", "impact": "Medium Impact", "impactColour": "warning", "addedDate": "2021-11-16", "powershellEquivalent": "Get-Mailbox & Update-MgUser", "recommendedBy": ["CIS", "CIPP"] }, + { + "name": "standards.DisableResourceMailbox", + "cat": "Exchange Standards", + "tag": ["NIST CSF 2.0 (PR.AA-01)"], + "helpText": "Blocks login for all accounts that are marked as a resource mailbox and does not have a license assigned. Accounts that are synced from on-premises AD are excluded, as account state is managed in the on-premises AD.", + "docsDescription": "Resource mailboxes can be directly logged into if the password is reset, this presents a security risk as do all shared login credentials. Microsoft's recommendation is to disable the user account for resource mailboxes. Accounts that are synced from on-premises AD are excluded, as account state is managed in the on-premises AD.", + "executiveText": "Prevents direct login to resource mailbox accounts (like conference rooms or equipment), ensuring they can only be managed through proper administrative channels. This security measure eliminates potential unauthorized access to resource scheduling systems while maintaining proper booking functionality.", + "addedComponent": [], + "label": "Disable Unlicensed Resource Mailbox Entra accounts", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2025-06-01", + "powershellEquivalent": "Get-Mailbox & Update-MgUser", + "recommendedBy": ["Microsoft", "CIPP"] + }, { "name": "standards.EXODisableAutoForwarding", "cat": "Exchange Standards", - "tag": ["CIS", "mdo_autoforwardingmode", "mdo_blockmailforward"], + "tag": [ + "CIS M365 5.0 (6.2.1)", + "mdo_autoforwardingmode", + "mdo_blockmailforward", + "CISA (MS.EXO.4.1v1)", + "NIST CSF 2.0 (PR.DS-02)" + ], "helpText": "Disables the ability for users to automatically forward e-mails to external recipients.", "docsDescription": "Disables the ability for users to automatically forward e-mails to external recipients. This is to prevent data exfiltration. Please check if there are any legitimate use cases for this feature before implementing, like forwarding invoices and such.", + "executiveText": "Prevents employees from automatically forwarding company emails to external addresses, protecting against data leaks and unauthorized information sharing. This security measure helps maintain control over sensitive business communications while preventing both accidental and intentional data exfiltration.", "addedComponent": [], "label": "Disable automatic forwarding to external recipients", "impact": "High Impact", @@ -1649,9 +2174,10 @@ { "name": "standards.RetentionPolicyTag", "cat": "Exchange Standards", - "tag": [], + "tag": ["CIS M365 5.0 (6.4.1)"], "helpText": "Creates a CIPP - Deleted Items retention policy tag that permanently deletes items in the Deleted Items folder after X days.", "docsDescription": "Creates a CIPP - Deleted Items retention policy tag that permanently deletes items in the Deleted Items folder after X days.", + "executiveText": "Automatically and permanently removes deleted emails after a specified number of days, helping manage storage costs and ensuring compliance with data retention policies. This prevents accumulation of unnecessary deleted items while maintaining a reasonable recovery window for accidentally deleted emails.", "addedComponent": [ { "type": "number", @@ -1673,6 +2199,7 @@ "tag": [], "helpText": "Sets a e-mail address to alert when a User requests to release a quarantined message.", "docsDescription": "Sets a e-mail address to alert when a User requests to release a quarantined message. This is useful for monitoring and ensuring that the correct messages are released.", + "executiveText": "Notifies IT administrators when employees request to release emails that were quarantined for security reasons, enabling oversight of potentially dangerous messages. This helps ensure that legitimate emails are released while maintaining security controls over suspicious content.", "addedComponent": [ { "type": "textField", @@ -1693,6 +2220,7 @@ "tag": [], "helpText": "Sets a e-mail address to alert when a User deletes more than 20 SharePoint files within 60 minutes. NB: Requires a Office 365 E5 subscription, Office 365 E3 with Threat Intelligence or Office 365 EquivioAnalytics add-on.", "docsDescription": "Sets a e-mail address to alert when a User deletes more than 20 SharePoint files within 60 minutes. This is useful for monitoring and ensuring that the correct SharePoint files are deleted. NB: Requires a Office 365 E5 subscription, Office 365 E3 with Threat Intelligence or Office 365 EquivioAnalytics add-on.", + "executiveText": "Alerts administrators when employees delete large numbers of SharePoint files in a short time period, helping detect potential data destruction attacks, ransomware, or accidental mass deletions. This early warning system enables rapid response to protect critical business documents and data.", "addedComponent": [ { "type": "number", @@ -1735,6 +2263,7 @@ "impact": "Medium Impact", "addedDate": "2025-04-29", "helpText": "Deploy and manage SafeLinks policy templates to protect against malicious URLs in emails and Office documents.", + "executiveText": "Deploys standardized URL protection policies that automatically scan and verify links in emails and documents before users click them. This template-based approach ensures consistent protection against malicious websites and phishing attacks across the organization.", "addedComponent": [ { "type": "autoComplete", @@ -1754,9 +2283,21 @@ { "name": "standards.SafeLinksPolicy", "cat": "Defender Standards", - "tag": ["CIS", "mdo_safelinksforemail", "mdo_safelinksforOfficeApps"], + "tag": [ + "CIS M365 5.0 (2.1.1)", + "mdo_safelinksforemail", + "mdo_safelinksforOfficeApps", + "NIST CSF 2.0 (DE.CM-09)" + ], "helpText": "This creates a Safe Links policy that automatically scans, tracks, and and enables safe links for Email, Office, and Teams for both external and internal senders", "addedComponent": [ + { + "type": "textField", + "name": "standards.SafeLinksPolicy.name", + "label": "Policy Name", + "required": true, + "defaultValue": "CIPP Default SafeLinks Policy" + }, { "type": "switch", "label": "AllowClickThrough", @@ -1792,17 +2333,25 @@ "name": "standards.AntiPhishPolicy", "cat": "Defender Standards", "tag": [ - "CIS", "mdo_safeattachments", "mdo_highconfidencespamaction", "mdo_highconfidencephishaction", "mdo_phisspamacation", "mdo_spam_notifications_only_for_admins", "mdo_antiphishingpolicies", - "mdo_phishthresholdlevel" + "mdo_phishthresholdlevel", + "CIS M365 5.0 (2.1.7)", + "NIST CSF 2.0 (DE.CM-09)" ], "helpText": "This creates a Anti-Phishing policy that automatically enables Mailbox Intelligence and spoofing, optional switches for Mail tips.", "addedComponent": [ + { + "type": "textField", + "name": "standards.AntiPhishPolicy.name", + "label": "Policy Name", + "required": true, + "defaultValue": "CIPP Default Anti-Phishing Policy" + }, { "type": "number", "label": "Phishing email threshold. (Default 1)", @@ -1852,6 +2401,7 @@ { "type": "select", "multiple": false, + "creatable": true, "label": "Quarantine policy for Spoof", "name": "standards.AntiPhishPolicy.SpoofQuarantineTag", "options": [ @@ -1892,6 +2442,7 @@ { "type": "select", "multiple": false, + "creatable": true, "label": "Quarantine policy for user impersonation", "name": "standards.AntiPhishPolicy.TargetedUserQuarantineTag", "options": [ @@ -1932,6 +2483,7 @@ { "type": "select", "multiple": false, + "creatable": true, "label": "Quarantine policy for domain impersonation", "name": "standards.AntiPhishPolicy.TargetedDomainQuarantineTag", "options": [ @@ -1972,6 +2524,7 @@ { "type": "select", "multiple": false, + "creatable": true, "label": "Apply quarantine policy", "name": "standards.AntiPhishPolicy.MailboxIntelligenceQuarantineTag", "options": [ @@ -2000,9 +2553,22 @@ { "name": "standards.SafeAttachmentPolicy", "cat": "Defender Standards", - "tag": ["CIS", "mdo_safedocuments", "mdo_commonattachmentsfilter", "mdo_safeattachmentpolicy"], + "tag": [ + "CIS M365 5.0 (2.1.4)", + "mdo_safedocuments", + "mdo_commonattachmentsfilter", + "mdo_safeattachmentpolicy", + "NIST CSF 2.0 (DE.CM-09)" + ], "helpText": "This creates a Safe Attachment policy", "addedComponent": [ + { + "type": "textField", + "name": "standards.SafeAttachmentPolicy.name", + "label": "Policy Name", + "required": true, + "defaultValue": "CIPP Default Safe Attachment Policy" + }, { "type": "select", "multiple": false, @@ -2026,6 +2592,7 @@ { "type": "select", "multiple": false, + "creatable": true, "label": "QuarantineTag", "name": "standards.SafeAttachmentPolicy.QuarantineTag", "options": [ @@ -2052,7 +2619,12 @@ "type": "textField", "name": "standards.SafeAttachmentPolicy.RedirectAddress", "label": "Redirect Address", - "required": false + "required": false, + "condition": { + "field": "standards.SafeAttachmentPolicy.Redirect", + "compareType": "is", + "compareValue": true + } } ], "label": "Default Safe Attachment Policy", @@ -2065,7 +2637,7 @@ { "name": "standards.AtpPolicyForO365", "cat": "Defender Standards", - "tag": ["CIS"], + "tag": ["CIS M365 5.0 (2.1.5)", "NIST CSF 2.0 (DE.CM-09)"], "helpText": "This creates a Atp policy that enables Defender for Office 365 for SharePoint, OneDrive and Microsoft Teams.", "addedComponent": [ { @@ -2112,6 +2684,13 @@ "required": false, "label": "Phishing Simulation Urls", "name": "standards.PhishingSimulations.PhishingSimUrls" + }, + { + "type": "switch", + "label": "Remove extra urls", + "name": "standards.PhishingSimulations.RemoveExtraUrls", + "defaultValue": false, + "required": false } ], "label": "Phishing Simulation Configuration", @@ -2124,9 +2703,23 @@ { "name": "standards.MalwareFilterPolicy", "cat": "Defender Standards", - "tag": ["CIS", "mdo_zapspam", "mdo_zapphish", "mdo_zapmalware"], + "tag": [ + "CIS M365 5.0 (2.1.2)", + "CIS M365 5.0 (2.1.3)", + "mdo_zapspam", + "mdo_zapphish", + "mdo_zapmalware", + "NIST CSF 2.0 (DE.CM-09)" + ], "helpText": "This creates a Malware filter policy that enables the default File filter and Zero-hour auto purge for malware.", "addedComponent": [ + { + "type": "textField", + "name": "standards.MalwareFilterPolicy.name", + "label": "Policy Name", + "required": true, + "defaultValue": "CIPP Default Malware Policy" + }, { "type": "select", "multiple": false, @@ -2152,6 +2745,7 @@ { "type": "select", "multiple": false, + "creatable": true, "label": "QuarantineTag", "name": "standards.MalwareFilterPolicy.QuarantineTag", "options": [ @@ -2179,7 +2773,12 @@ "type": "textField", "name": "standards.MalwareFilterPolicy.InternalSenderAdminAddress", "required": false, - "label": "Internal Sender Admin Address" + "label": "Internal Sender Admin Address", + "condition": { + "field": "standards.MalwareFilterPolicy.EnableInternalSenderAdminNotifications", + "compareType": "is", + "compareValue": true + } }, { "type": "switch", @@ -2191,7 +2790,12 @@ "type": "textField", "name": "standards.MalwareFilterPolicy.ExternalSenderAdminAddress", "required": false, - "label": "External Sender Admin Address" + "label": "External Sender Admin Address", + "condition": { + "field": "standards.MalwareFilterPolicy.EnableExternalSenderAdminNotifications", + "compareType": "is", + "compareValue": true + } } ], "label": "Default Malware Filter Policy", @@ -2207,6 +2811,13 @@ "tag": [], "helpText": "This adds allowed domains to the Spoof Intelligence Allow/Block List.", "addedComponent": [ + { + "type": "switch", + "label": "Remove extra domains from the allow list", + "name": "standards.PhishSimSpoofIntelligence.RemoveExtraDomains", + "defaultValue": false, + "required": false + }, { "type": "autoComplete", "multiple": true, @@ -2228,7 +2839,15 @@ "cat": "Defender Standards", "tag": [], "helpText": "This standard creates a Spam filter policy similar to the default strict policy.", + "docsDescription": "This standard creates a Spam filter policy similar to the default strict policy, the following settings are configured to on by default: IncreaseScoreWithNumericIps, IncreaseScoreWithRedirectToOtherPort, MarkAsSpamEmptyMessages, MarkAsSpamJavaScriptInHtml, MarkAsSpamSpfRecordHardFail, MarkAsSpamFromAddressAuthFail, MarkAsSpamNdrBackscatter, MarkAsSpamBulkMail, InlineSafetyTipsEnabled, PhishZapEnabled, SpamZapEnabled", "addedComponent": [ + { + "type": "textField", + "name": "standards.SpamFilterPolicy.name", + "label": "Policy Name", + "required": true, + "defaultValue": "CIPP Default Spam Filter Policy" + }, { "type": "number", "label": "Bulk email threshold (Default 7)", @@ -2257,7 +2876,7 @@ "type": "autoComplete", "required": true, "multiple": false, - "creatable": false, + "creatable": true, "label": "Spam Quarantine Tag", "name": "standards.SpamFilterPolicy.SpamQuarantineTag", "options": [ @@ -2297,7 +2916,7 @@ "type": "autoComplete", "required": true, "multiple": false, - "creatable": false, + "creatable": true, "label": "High Confidence Spam Quarantine Tag", "name": "standards.SpamFilterPolicy.HighConfidenceSpamQuarantineTag", "options": [ @@ -2337,7 +2956,7 @@ "type": "autoComplete", "required": true, "multiple": false, - "creatable": false, + "creatable": true, "label": "Bulk Quarantine Tag", "name": "standards.SpamFilterPolicy.BulkQuarantineTag", "options": [ @@ -2377,7 +2996,7 @@ "type": "autoComplete", "required": true, "multiple": false, - "creatable": false, + "creatable": true, "label": "Phish Quarantine Tag", "name": "standards.SpamFilterPolicy.PhishQuarantineTag", "options": [ @@ -2399,7 +3018,7 @@ "type": "autoComplete", "required": true, "multiple": false, - "creatable": false, + "creatable": true, "label": "High Confidence Phish Quarantine Tag", "name": "standards.SpamFilterPolicy.HighConfidencePhishQuarantineTag", "options": [ @@ -2477,7 +3096,12 @@ "creatable": true, "required": false, "name": "standards.SpamFilterPolicy.LanguageBlockList", - "label": "Languages to block (uppercase ISO 639-1 two-letter)" + "label": "Languages to block (uppercase ISO 639-1 two-letter)", + "condition": { + "field": "standards.SpamFilterPolicy.EnableLanguageBlockList", + "compareType": "is", + "compareValue": true + } }, { "type": "switch", @@ -2491,7 +3115,12 @@ "creatable": true, "required": false, "name": "standards.SpamFilterPolicy.RegionBlockList", - "label": "Regions to block (uppercase ISO 3166-1 two-letter)" + "label": "Regions to block (uppercase ISO 3166-1 two-letter)", + "condition": { + "field": "standards.SpamFilterPolicy.EnableRegionBlockList", + "compareType": "is", + "compareValue": true + } }, { "type": "autoComplete", @@ -2509,16 +3138,104 @@ "powershellEquivalent": "New-HostedContentFilterPolicy or Set-HostedContentFilterPolicy", "recommendedBy": [] }, + { + "name": "standards.QuarantineTemplate", + "cat": "Defender Standards", + "disabledFeatures": { + "report": false, + "warn": false, + "remediate": false + }, + "tag": [], + "helpText": "This standard creates a Custom Quarantine Policies that can be used in Anti-Spam and all MDO365 policies. Quarantine Policies can be used to specify recipients permissions, enable end-user spam notifications, and specify the release action preference", + "executiveText": "Creates standardized quarantine policies that define how employees can interact with quarantined emails, including permissions to release, delete, or preview suspicious messages. This ensures consistent security handling across the organization while providing appropriate user access to manage quarantined content.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "creatable": true, + "name": "displayName", + "label": "Quarantine Display Name", + "required": true + }, + { + "type": "switch", + "label": "Enable end-user spam notifications", + "name": "ESNEnabled", + "defaultValue": true, + "required": false + }, + { + "type": "select", + "multiple": false, + "label": "Select release action preference", + "name": "ReleaseAction", + "options": [ + { + "label": "Allow recipients to request a message to be released from quarantine", + "value": "PermissionToRequestRelease" + }, + { + "label": "Allow recipients to release a message from quarantine", + "value": "PermissionToRelease" + } + ] + }, + { + "type": "switch", + "label": "Include Messages From Blocked Sender Address", + "name": "IncludeMessagesFromBlockedSenderAddress", + "defaultValue": false, + "required": false + }, + { + "type": "switch", + "label": "Allow recipients to delete message", + "name": "PermissionToDelete", + "defaultValue": false, + "required": false + }, + { + "type": "switch", + "label": "Allow recipients to preview message", + "name": "PermissionToPreview", + "defaultValue": false, + "required": false + }, + { + "type": "switch", + "label": "Allow recipients to block Sender Address", + "name": "PermissionToBlockSender", + "defaultValue": false, + "required": false + }, + { + "type": "switch", + "label": "Allow recipients to whitelist Sender Address", + "name": "PermissionToAllowSender", + "defaultValue": false, + "required": false + } + ], + "label": "Custom Quarantine Policy", + "multiple": true, + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2025-05-16", + "powershellEquivalent": "Set-QuarantinePolicy or New-QuarantinePolicy", + "recommendedBy": [] + }, { "name": "standards.intuneDeviceRetirementDays", "cat": "Intune Standards", "tag": [], - "helpText": "A value between 0 and 270 is supported. A value of 0 disables retirement, retired devices are removed from Intune after the specified number of days.", + "helpText": "A value between 31 and 365 is supported. retired devices are removed from Intune after the specified number of days.", + "executiveText": "Automatically removes inactive devices from management after a specified period, helping maintain a clean device inventory and reducing security risks from abandoned or lost devices. This policy ensures that only actively used corporate devices remain in the management system.", "addedComponent": [ { "type": "number", "name": "standards.intuneDeviceRetirementDays.days", - "label": "Maximum days (0 equals disabled)" + "label": "Maximum days" } ], "label": "Set inactive device retirement days", @@ -2533,6 +3250,7 @@ "cat": "Intune Standards", "tag": [], "helpText": "Sets the branding profile for the Intune Company Portal app. This is a tenant wide setting and overrules any settings set on the app level.", + "executiveText": "Customizes the Intune Company Portal app with company branding, contact information, and support details, providing employees with a consistent corporate experience when managing their devices. This improves user experience and ensures employees know how to get IT support when needed.", "addedComponent": [ { "type": "textField", @@ -2606,6 +3324,7 @@ "cat": "Intune Standards", "tag": [], "helpText": "Sets the mark devices with no compliance policy assigned as compliance/non compliant and Compliance status validity period.", + "executiveText": "Configures how the system treats devices that don't have specific compliance policies and sets how often devices must check in to maintain their compliance status. This ensures proper security oversight of all corporate devices and maintains current compliance information.", "addedComponent": [ { "type": "autoComplete", @@ -2644,15 +3363,25 @@ "tag": [], "helpText": "Configures the MDM user scope. This also sets the terms of use, discovery and compliance URL to default URLs.", "docsDescription": "Configures the MDM user scope. This also sets the terms of use URL, discovery URL and compliance URL to default values.", + "executiveText": "Defines which users can enroll their devices in mobile device management, controlling access to corporate resources and applications. This setting determines the scope of device management coverage and ensures appropriate users have access to necessary business tools.", "addedComponent": [ { "name": "appliesTo", "label": "MDM User Scope?", "type": "radio", "options": [ - { "label": "All", "value": "all" }, - { "label": "None", "value": "none" }, - { "label": "Custom Group", "value": "selected" } + { + "label": "All", + "value": "all" + }, + { + "label": "None", + "value": "none" + }, + { + "label": "Custom Group", + "value": "selected" + } ] }, { @@ -2672,8 +3401,9 @@ { "name": "standards.DefaultPlatformRestrictions", "cat": "Intune Standards", - "tag": [], + "tag": ["CISA (MS.AAD.19.1v1)"], "helpText": "Sets the default platform restrictions for enrolling devices into Intune. Note: Do not block personally owned if platform is blocked.", + "executiveText": "Controls which types of devices (iOS, Android, Windows, macOS) and ownership models (corporate vs. personal) can be enrolled in the company's device management system. This helps maintain security standards while supporting necessary business device types and usage scenarios.", "addedComponent": [ { "type": "switch", @@ -2742,12 +3472,170 @@ "addedDate": "2025-04-01", "powershellEquivalent": "Graph API", "recommendedBy": [] + }, + { + "name": "standards.EnrollmentWindowsHelloForBusinessConfiguration", + "cat": "Intune Standards", + "tag": [], + "helpText": "Sets the Windows Hello for Business configuration during device enrollment.", + "executiveText": "Enables or disables Windows Hello for Business during device enrollment, enhancing security through biometric or PIN-based authentication methods. This ensures that devices meet corporate security standards while providing a user-friendly sign-in experience.", + "addedComponent": [ + { + "type": "autoComplete", + "name": "standards.EnrollmentWindowsHelloForBusinessConfiguration.state", + "label": "Configure Windows Hello for Business", + "multiple": false, + "options": [ + { + "label": "Not configured", + "value": "notConfigured" + }, + { + "label": "Enabled", + "value": "enabled" + }, + { + "label": "Disabled", + "value": "disabled" + } + ] + }, + { + "type": "switch", + "name": "standards.EnrollmentWindowsHelloForBusinessConfiguration.securityDeviceRequired", + "label": "Use a Trusted Platform Module (TPM)", + "default": true + }, + { + "type": "number", + "name": "standards.EnrollmentWindowsHelloForBusinessConfiguration.pinMinimumLength", + "label": "Minimum PIN length (4-127)", + "default": 4 + }, + { + "type": "number", + "name": "standards.EnrollmentWindowsHelloForBusinessConfiguration.pinMaximumLength", + "label": "Maximum PIN length (4-127)", + "default": 127 + }, + { + "type": "autoComplete", + "name": "standards.EnrollmentWindowsHelloForBusinessConfiguration.pinLowercaseCharactersUsage", + "label": "Lowercase letters in PIN", + "multiple": false, + "options": [ + { + "label": "Not allowed", + "value": "disallowed" + }, + { + "label": "Allowed", + "value": "allowed" + }, + { + "label": "Required", + "value": "required" + } + ] + }, + { + "type": "autoComplete", + "name": "standards.EnrollmentWindowsHelloForBusinessConfiguration.pinUppercaseCharactersUsage", + "label": "Uppercase letters in PIN", + "multiple": false, + "options": [ + { + "label": "Not allowed", + "value": "disallowed" + }, + { + "label": "Allowed", + "value": "allowed" + }, + { + "label": "Required", + "value": "required" + } + ] + }, + { + "type": "autoComplete", + "name": "standards.EnrollmentWindowsHelloForBusinessConfiguration.pinSpecialCharactersUsage", + "label": "Special characters in PIN", + "multiple": false, + "options": [ + { + "label": "Not allowed", + "value": "disallowed" + }, + { + "label": "Allowed", + "value": "allowed" + }, + { + "label": "Required", + "value": "required" + } + ] + }, + { + "type": "number", + "name": "standards.EnrollmentWindowsHelloForBusinessConfiguration.pinExpirationInDays", + "label": "PIN expiration (days) - 0 to disable", + "default": 0 + }, + { + "type": "number", + "name": "standards.EnrollmentWindowsHelloForBusinessConfiguration.pinPreviousBlockCount", + "label": "PIN history - 0 to disable", + "default": 0 + }, + { + "type": "switch", + "name": "standards.EnrollmentWindowsHelloForBusinessConfiguration.unlockWithBiometricsEnabled", + "label": "Allow biometric authentication", + "default": true + }, + { + "type": "autoComplete", + "name": "standards.EnrollmentWindowsHelloForBusinessConfiguration.enhancedBiometricsState", + "label": "Use enhanced anti-spoofing when available", + "multiple": false, + "options": [ + { + "label": "Not configured", + "value": "notConfigured" + }, + { + "label": "Enabled", + "value": "enabled" + }, + { + "label": "Disabled", + "value": "disabled" + } + ] + }, + { + "type": "switch", + "name": "standards.EnrollmentWindowsHelloForBusinessConfiguration.remotePassportEnabled", + "label": "Allow phone sign-in", + "default": true + } + ], + "label": "Windows Hello for Business enrollment configuration", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2025-09-25", + "powershellEquivalent": "Graph API", + "recommendedBy": [] }, { "name": "standards.intuneDeviceReg", "cat": "Intune Standards", - "tag": [], + "tag": ["CISA (MS.AAD.17.1v1)"], "helpText": "Sets the maximum number of devices that can be registered by a user. A value of 0 disables device registration by users", + "executiveText": "Limits how many devices each employee can register for corporate access, preventing excessive device proliferation while accommodating legitimate business needs. This helps maintain security oversight and prevents potential abuse of device registration privileges.", "addedComponent": [ { "type": "number", @@ -2768,6 +3656,7 @@ "cat": "Intune Standards", "tag": [], "helpText": "Requires MFA for all users to register devices with Intune. This is useful when not using Conditional Access.", + "executiveText": "Requires employees to use multi-factor authentication when registering devices for corporate access, adding an extra security layer to prevent unauthorized device enrollment. This helps ensure only legitimate users can connect their devices to company systems.", "label": "Require Multi-factor Authentication to register or join devices with Microsoft Entra", "impact": "Medium Impact", "impactColour": "warning", @@ -2781,6 +3670,7 @@ "tag": [], "helpText": "Sets the retention period for deleted users OneDrive to the specified period of time. The default is 30 days.", "docsDescription": "When a OneDrive user gets deleted, the personal SharePoint site is saved for selected amount of time that data can be retrieved from it.", + "executiveText": "Preserves departed employees' OneDrive files for a specified period, allowing time to recover important business documents before permanent deletion. This helps prevent data loss while managing storage costs and maintaining compliance with data retention policies.", "addedComponent": [ { "type": "autoComplete", @@ -2851,6 +3741,7 @@ "cat": "SharePoint Standards", "tag": [], "helpText": "Sets the default timezone for the tenant. This will be used for all new users and sites.", + "executiveText": "Standardizes the timezone setting across all SharePoint sites and new user accounts, ensuring consistent scheduling and time-based operations throughout the organization. This improves collaboration efficiency and reduces confusion in global or multi-timezone organizations.", "addedComponent": [ { "type": "TimezoneSelect", @@ -2868,8 +3759,9 @@ { "name": "standards.SPAzureB2B", "cat": "SharePoint Standards", - "tag": ["CIS"], + "tag": ["CIS M365 5.0 (7.2.2)"], "helpText": "Ensure SharePoint and OneDrive integration with Azure AD B2B is enabled", + "executiveText": "Enables secure collaboration with external partners through SharePoint and OneDrive by integrating with Azure B2B guest access. This allows controlled sharing with external organizations while maintaining security oversight and proper access management.", "addedComponent": [], "label": "Enable SharePoint and OneDrive integration with Azure AD B2B", "impact": "Low Impact", @@ -2881,8 +3773,9 @@ { "name": "standards.SPDisallowInfectedFiles", "cat": "SharePoint Standards", - "tag": ["CIS"], + "tag": ["CIS M365 5.0 (7.3.1)", "CISA (MS.SPO.3.1v1)", "NIST CSF 2.0 (DE.CM-09)"], "helpText": "Ensure Office 365 SharePoint infected files are disallowed for download", + "executiveText": "Prevents employees from downloading files that have been identified as containing malware or viruses from SharePoint and OneDrive. This security measure protects against malware distribution through file sharing while maintaining access to clean, safe documents.", "addedComponent": [], "label": "Disallow downloading infected files from SharePoint", "impact": "Low Impact", @@ -2896,6 +3789,7 @@ "cat": "SharePoint Standards", "tag": [], "helpText": "Disables the creation of new SharePoint 2010 and 2013 classic workflows and removes the 'Return to classic SharePoint' link on modern SharePoint list and library pages.", + "executiveText": "Disables outdated SharePoint workflow features and classic interface options, encouraging use of modern, more secure and efficient collaboration tools. This helps maintain security standards while guiding users toward current, supported functionality.", "addedComponent": [], "label": "Disable Legacy Workflows", "impact": "Low Impact", @@ -2907,8 +3801,9 @@ { "name": "standards.SPDirectSharing", "cat": "SharePoint Standards", - "tag": ["CIS"], - "helpText": "Ensure default link sharing is set to Direct in SharePoint and OneDrive", + "tag": [], + "helpText": "This standard has been deprecated in favor of the Default Sharing Link standard. ", + "executiveText": "Configures SharePoint and OneDrive to share files directly with specific people rather than creating anonymous links, improving security by ensuring only intended recipients can access shared documents. This reduces the risk of accidental data exposure through link sharing.", "addedComponent": [], "label": "Default sharing to Direct users", "impact": "Medium Impact", @@ -2920,8 +3815,9 @@ { "name": "standards.SPExternalUserExpiration", "cat": "SharePoint Standards", - "tag": ["CIS"], + "tag": ["CIS M365 5.0 (7.2.9)", "CISA (MS.SPO.1.5v1)"], "helpText": "Ensure guest access to a site or OneDrive will expire automatically", + "executiveText": "Automatically expires external user access to SharePoint sites and OneDrive after a specified period, reducing security risks from forgotten or unnecessary guest accounts. This ensures external access is regularly reviewed and maintained only when actively needed.", "addedComponent": [ { "type": "number", @@ -2939,8 +3835,9 @@ { "name": "standards.SPEmailAttestation", "cat": "SharePoint Standards", - "tag": ["CIS"], + "tag": ["CIS M365 5.0 (7.2.10)", "CISA (MS.SPO.1.6v1)"], "helpText": "Ensure re-authentication with verification code is restricted", + "executiveText": "Requires external users to periodically re-verify their identity through email verification codes when accessing SharePoint resources, adding an extra security layer for external collaboration. This helps ensure continued legitimacy of external access over time.", "addedComponent": [ { "type": "number", @@ -2955,11 +3852,46 @@ "powershellEquivalent": "Set-SPOTenant -EmailAttestationRequired $true -EmailAttestationReAuthDays 15", "recommendedBy": ["CIS", "CIPP"] }, + { + "name": "standards.DefaultSharingLink", + "cat": "SharePoint Standards", + "tag": ["CIS M365 5.0 (7.2.7)", "CIS M365 5.0 (7.2.11)", "CISA (MS.SPO.1.4v1)"], + "helpText": "Configure the SharePoint default sharing link type and permission. This setting controls both the type of sharing link created by default and the permission level assigned to those links.", + "docsDescription": "Sets the default sharing link type (Direct or Internal) and permission (View) in SharePoint and OneDrive. Direct sharing means links only work for specific people, while Internal sharing means links work for anyone in the organization. Setting the view permission as the default ensures that users must deliberately select the edit permission when sharing a link, reducing the risk of unintentionally granting edit privileges.", + "executiveText": "Configures SharePoint default sharing links to implement the principle of least privilege for document sharing. This security measure reduces the risk of accidental data modification while maintaining collaboration functionality, requiring users to explicitly select Edit permissions when necessary. The sharing type setting controls whether links are restricted to specific recipients or available to the entire organization. This reduces the risk of accidental data exposure through link sharing.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "creatable": false, + "required": true, + "label": "Default Sharing Link Type", + "name": "standards.DefaultSharingLink.SharingLinkType", + "options": [ + { + "label": "Direct - Only the people the user specifies", + "value": "Direct" + }, + { + "label": "Internal - Only people in your organization", + "value": "Internal" + } + ] + } + ], + "label": "Set Default Sharing Link Settings", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2025-06-13", + "powershellEquivalent": "Set-SPOTenant -DefaultSharingLinkType [Direct|Internal] -DefaultLinkPermission View", + "recommendedBy": ["CIS", "CIPP"] + }, { "name": "standards.DisableAddShortcutsToOneDrive", "cat": "SharePoint Standards", "tag": [], "helpText": "If disabled, the button Add shortcut to OneDrive will be removed and users in the tenant will no longer be able to add new shortcuts to their OneDrive. Existing shortcuts will remain functional", + "executiveText": "Controls whether employees can create shortcuts to SharePoint libraries in their OneDrive, managing how users organize and access shared content. This setting helps maintain organized file structures and can prevent confusion from excessive shortcuts while preserving existing workflows.", "addedComponent": [ { "type": "autoComplete", @@ -2991,6 +3923,7 @@ "cat": "SharePoint Standards", "tag": [], "helpText": "If disabled, users in the tenant will no longer be able to use the Sync button to sync SharePoint content on all sites. However, existing synced content will remain functional on the user's computer.", + "executiveText": "Controls whether employees can synchronize SharePoint files to their local devices, balancing productivity benefits with data security concerns. This setting helps manage data distribution while maintaining access to cloud-based collaboration when sync is disabled.", "addedComponent": [ { "type": "autoComplete", @@ -3020,9 +3953,16 @@ { "name": "standards.DisableSharePointLegacyAuth", "cat": "SharePoint Standards", - "tag": ["CIS", "spo_legacy_auth"], + "tag": [ + "CIS M365 5.0 (6.5.1)", + "CIS M365 5.0 (7.2.1)", + "spo_legacy_auth", + "CISA (MS.AAD.3.1v1)", + "NIST CSF 2.0 (PR.IR-01)" + ], "helpText": "Disables the ability to authenticate with SharePoint using legacy authentication methods. Any applications that use legacy authentication will need to be updated to use modern authentication.", "docsDescription": "Disables the ability for users and applications to access SharePoint via legacy basic authentication. This will likely not have any user impact, but will block systems/applications depending on basic auth or the SharePointOnlineCredentials class.", + "executiveText": "Disables outdated authentication methods for SharePoint access, forcing applications and users to use modern, more secure authentication protocols. This significantly improves security by eliminating vulnerable authentication pathways while requiring updates to older applications.", "addedComponent": [], "label": "Disable legacy basic authentication for SharePoint", "impact": "Medium Impact", @@ -3034,8 +3974,9 @@ { "name": "standards.sharingCapability", "cat": "SharePoint Standards", - "tag": ["CIS"], + "tag": ["CIS M365 5.0 (7.2.3)", "CISA (MS.AAD.14.1v1)", "CISA (MS.SPO.1.1v1)"], "helpText": "Sets the default sharing level for OneDrive and SharePoint. This is a tenant wide setting and overrules any settings set on the site level", + "executiveText": "Defines the organization's default policy for sharing files and folders in SharePoint and OneDrive, balancing collaboration needs with security requirements. This fundamental setting determines whether employees can share with external users, anonymous links, or only internal colleagues.", "addedComponent": [ { "type": "autoComplete", @@ -3072,9 +4013,10 @@ { "name": "standards.DisableReshare", "cat": "SharePoint Standards", - "tag": ["CIS"], + "tag": ["CIS M365 5.0 (7.2.5)", "CISA (MS.AAD.14.2v1)", "CISA (MS.SPO.1.2v1)"], "helpText": "Disables the ability for external users to share files they don't own. Sharing links can only be made for People with existing access", "docsDescription": "Disables the ability for external users to share files they don't own. Sharing links can only be made for People with existing access. This is a tenant wide setting and overrules any settings set on the site level", + "executiveText": "Prevents external users from sharing company documents with additional people, maintaining control over document distribution and preventing unauthorized access expansion. This security measure ensures that external sharing remains within intended boundaries set by internal employees.", "addedComponent": [], "label": "Disable Re-sharing by External Users", "impact": "High Impact", @@ -3089,6 +4031,7 @@ "tag": [], "helpText": "Disables users from creating new SharePoint sites", "docsDescription": "Disables standard users from creating SharePoint sites, also disables the ability to fully create teams", + "executiveText": "Restricts the creation of new SharePoint sites to authorized administrators, preventing uncontrolled proliferation of collaboration spaces and ensuring proper governance. This maintains organized information architecture while requiring approval for new collaborative environments.", "addedComponent": [], "label": "Disable site creation by standard users", "impact": "High Impact", @@ -3102,6 +4045,7 @@ "cat": "SharePoint Standards", "tag": [], "helpText": "Sets the file extensions that are excluded from syncing with OneDrive. These files will be blocked from upload. '*.' is automatically added to the extension and can be omitted.", + "executiveText": "Blocks specific file types from being uploaded or synchronized to OneDrive, helping prevent security risks from potentially dangerous file formats. This security measure protects against malware distribution while allowing legitimate business file types to be shared safely.", "addedComponent": [ { "type": "textField", @@ -3121,6 +4065,7 @@ "cat": "SharePoint Standards", "tag": [], "helpText": "Disables the ability for Mac devices to sync with OneDrive.", + "executiveText": "Prevents Mac computers from synchronizing files with OneDrive, typically implemented for security or compliance reasons in Windows-centric environments. This restriction helps maintain standardized device management while potentially limiting collaboration for Mac users.", "addedComponent": [], "label": "Do not allow Mac devices to sync using OneDrive", "impact": "High Impact", @@ -3132,21 +4077,43 @@ { "name": "standards.unmanagedSync", "cat": "SharePoint Standards", - "tag": [], - "helpText": "The unmanaged Sync standard has been temporarily disabled and does nothing.", - "addedComponent": [], - "label": "Only allow users to sync OneDrive from AAD joined devices", + "tag": ["CIS M365 5.0 (7.2.3)", "CISA (MS.SPO.2.1v1)", "NIST CSF 2.0 (PR.AA-05)"], + "helpText": "Entra P1 required. Block or limit access to SharePoint and OneDrive content from unmanaged devices (those not hybrid AD joined or compliant in Intune). These controls rely on Microsoft Entra Conditional Access policies and can take up to 24 hours to take effect.", + "docsDescription": "Entra P1 required. Block or limit access to SharePoint and OneDrive content from unmanaged devices (those not hybrid AD joined or compliant in Intune). These controls rely on Microsoft Entra Conditional Access policies and can take up to 24 hours to take effect. 0 = Allow Access, 1 = Allow limited, web-only access, 2 = Block access. All information about this can be found in Microsofts documentation [here.](https://learn.microsoft.com/en-us/sharepoint/control-access-from-unmanaged-devices)", + "executiveText": "Restricts access to company files from personal or unmanaged devices, ensuring corporate data can only be accessed from properly secured and monitored devices. This critical security control prevents data leaks while allowing controlled access through web browsers when necessary.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "creatable": false, + "name": "standards.unmanagedSync.state", + "label": "State", + "options": [ + { + "label": "Allow limited, web-only access", + "value": "1" + }, + { + "label": "Block access", + "value": "2" + } + ], + "required": false + } + ], + "label": "Restrict access to SharePoint and OneDrive from unmanaged devices", "impact": "High Impact", "impactColour": "danger", - "addedDate": "2022-06-15", - "powershellEquivalent": "Update-MgAdminSharePointSetting", - "recommendedBy": [] + "addedDate": "2025-06-13", + "powershellEquivalent": "Set-SPOTenant -ConditionalAccessPolicy AllowFullAccess | AllowLimitedAccess | BlockAccess", + "recommendedBy": ["CIS"] }, { "name": "standards.sharingDomainRestriction", "cat": "SharePoint Standards", - "tag": ["CIS"], + "tag": ["CIS M365 5.0 (7.2.6)", "CISA (MS.AAD.14.3v1)", "CISA (MS.SPO.1.3v1)"], "helpText": "Restricts sharing to only users with the specified domain. This is useful for organizations that only want to share with their own domain.", + "executiveText": "Controls which external domains employees can share files with, enabling secure collaboration with trusted partners while blocking sharing with unauthorized organizations. This targeted approach maintains necessary business relationships while preventing data exposure to unknown entities.", "addedComponent": [ { "type": "autoComplete", @@ -3185,8 +4152,16 @@ { "name": "standards.TeamsGlobalMeetingPolicy", "cat": "Teams Standards", - "tag": [], + "tag": [ + "CIS M365 5.0 (8.5.1)", + "CIS M365 5.0 (8.5.2)", + "CIS M365 5.0 (8.5.3)", + "CIS M365 5.0 (8.5.4)", + "CIS M365 5.0 (8.5.5)", + "CIS M365 5.0 (8.5.6)" + ], "helpText": "Defines the CIS recommended global meeting policy for Teams. This includes AllowAnonymousUsersToJoinMeeting, AllowAnonymousUsersToStartMeeting, AutoAdmittedUsers, AllowPSTNUsersToBypassLobby, MeetingChatEnabledType, DesignatedPresenterRoleMode, AllowExternalParticipantGiveRequestControl", + "executiveText": "Establishes security-focused default settings for Teams meetings, controlling who can join meetings, present content, and participate in chats. These policies balance collaboration needs with security requirements, ensuring meetings remain productive while protecting against unauthorized access and disruption.", "addedComponent": [ { "type": "autoComplete", @@ -3257,9 +4232,9 @@ { "name": "standards.TeamsEmailIntegration", "cat": "Teams Standards", - "tag": [], "helpText": "Should users be allowed to send emails directly to a channel email addresses?", "docsDescription": "Teams channel email addresses are an optional feature that allows users to email the Teams channel directly.", + "executiveText": "Controls whether Teams channels can receive emails directly, enabling integration between email and team collaboration. This feature can improve workflow efficiency by allowing external communications to flow into team discussions, though it may need management for security or organizational reasons.", "addedComponent": [ { "type": "switch", @@ -3272,13 +4247,69 @@ "impactColour": "info", "addedDate": "2024-07-30", "powershellEquivalent": "Set-CsTeamsClientConfiguration -AllowEmailIntoChannel $false", - "recommendedBy": ["CIS"] + "recommendedBy": ["CIS"], + "tag": ["CIS M365 5.0 (8.1.2)"] }, { - "name": "standards.TeamsExternalFileSharing", + "name": "standards.TeamsGuestAccess", "cat": "Teams Standards", "tag": [], + "helpText": "Allow guest users access to teams.", + "docsDescription": "Allow guest users access to teams. Guest users are users who are not part of your organization but have been invited to collaborate with your organization in Teams. This setting allows you to control whether guest users can access Teams.", + "executiveText": "Determines whether external partners, vendors, and collaborators can be invited to participate in Teams conversations and meetings. This fundamental setting enables external collaboration while requiring careful management to balance openness with security and information protection.", + "addedComponent": [ + { + "type": "switch", + "name": "standards.TeamsGuestAccess.AllowGuestUser", + "label": "Allow guest users" + } + ], + "label": "Allow guest users in Teams", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2025-06-03", + "powershellEquivalent": "Set-CsTeamsClientConfiguration -AllowGuestUser $true", + "recommendedBy": [] + }, + { + "name": "standards.TeamsMeetingVerification", + "cat": "Teams Standards", + "tag": [], + "helpText": "Configures CAPTCHA verification for external users joining Teams meetings. This helps prevent unauthorized AI notetakers and bots from joining meetings.", + "docsDescription": "Configures CAPTCHA verification for external users joining Teams meetings. This security feature requires external participants to complete a CAPTCHA challenge before joining, which helps prevent unauthorized AI notetakers, bots, and other automated systems from accessing meetings.", + "executiveText": "Requires external meeting participants to complete verification challenges before joining Teams meetings, preventing automated bots and unauthorized AI systems from accessing confidential discussions. This security measure protects against meeting infiltration while maintaining legitimate external collaboration.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "creatable": false, + "label": "CAPTCHA Verification Setting", + "name": "standards.TeamsMeetingVerification.CaptchaVerificationForMeetingJoin", + "options": [ + { + "label": "Not Required", + "value": "NotRequired" + }, + { + "label": "Anonymous Users and Untrusted Organizations", + "value": "AnonymousUsersAndUntrustedOrganizations" + } + ] + } + ], + "label": "Teams Meeting Verification (CAPTCHA)", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2025-06-14", + "powershellEquivalent": "Set-CsTeamsMeetingPolicy -CaptchaVerificationForMeetingJoin", + "recommendedBy": ["CIPP"] + }, + { + "name": "standards.TeamsExternalFileSharing", + "cat": "Teams Standards", + "tag": ["CIS M365 5.0 (8.4.1)"], "helpText": "Ensure external file sharing in Teams is enabled for only approved cloud storage services.", + "executiveText": "Controls which external cloud storage services (like Google Drive, Dropbox, Box) employees can access through Teams, ensuring file sharing occurs only through approved and secure platforms. This helps maintain data governance while supporting necessary business integrations.", "addedComponent": [ { "type": "switch", @@ -3319,6 +4350,7 @@ "tag": [], "helpText": "Controls whether users with this policy can set the voice profile capture and enrollment through the Recognition tab in their Teams client settings.", "docsDescription": "Controls whether users with this policy can set the voice profile capture and enrollment through the Recognition tab in their Teams client settings.", + "executiveText": "Determines whether employees can enroll their voice and face profiles for recognition features in Teams, enabling personalized experiences like voice identification. This setting balances convenience features with privacy considerations and organizational policies regarding biometric data collection.", "addedComponent": [ { "type": "autoComplete", @@ -3352,17 +4384,13 @@ "tag": [], "helpText": "Sets the properties of the Global external access policy.", "docsDescription": "Sets the properties of the Global external access policy. External access policies determine whether or not your users can: 1) communicate with users who have Session Initiation Protocol (SIP) accounts with a federated organization; 2) communicate with users who are using custom applications built with Azure Communication Services; 3) access Skype for Business Server over the Internet, without having to log on to your internal network; 4) communicate with users who have SIP accounts with a public instant messaging (IM) provider such as Skype; and, 5) communicate with people who are using Teams with an account that's not managed by an organization.", + "executiveText": "Defines the organization's policy for communicating with external users through Teams, including other organizations, Skype users, and unmanaged accounts. This fundamental setting determines the scope of external collaboration while maintaining security boundaries for business communications.", "addedComponent": [ { "type": "switch", "name": "standards.TeamsExternalAccessPolicy.EnableFederationAccess", "label": "Allow communication from trusted organizations" }, - { - "type": "switch", - "name": "standards.TeamsExternalAccessPolicy.EnablePublicCloudAccess", - "label": "Allow user to communicate with Skype users" - }, { "type": "switch", "name": "standards.TeamsExternalAccessPolicy.EnableTeamsConsumerAccess", @@ -3382,17 +4410,13 @@ "tag": [], "helpText": "Sets the properties of the Global federation configuration.", "docsDescription": "Sets the properties of the Global federation configuration. Federation configuration settings determine whether or not your users can communicate with users who have SIP accounts with a federated organization.", + "executiveText": "Configures how the organization federates with external organizations for Teams communication, controlling whether employees can communicate with specific external domains or all external organizations. This setting enables secure inter-organizational collaboration while maintaining control over external communications.", "addedComponent": [ { "type": "switch", "name": "standards.TeamsFederationConfiguration.AllowTeamsConsumer", "label": "Allow users to communicate with other organizations" }, - { - "type": "switch", - "name": "standards.TeamsFederationConfiguration.AllowPublicUsers", - "label": "Allow users to communicate with Skype Users" - }, { "type": "autoComplete", "required": true, @@ -3433,12 +4457,35 @@ "powershellEquivalent": "Set-CsTenantFederationConfiguration", "recommendedBy": [] }, + { + "name": "standards.TeamsMeetingRecordingExpiration", + "cat": "Teams Standards", + "tag": [], + "helpText": "Sets the default number of days after which Teams meeting recordings automatically expire. Valid values are -1 (Never Expire) or between 1 and 99999. The default value is 120 days.", + "docsDescription": "Allows administrators to configure a default expiration period (in days) for Teams meeting recordings. Recordings older than this period will be automatically moved to the recycle bin. This setting helps manage storage consumption and enforce data retention policies.", + "executiveText": "Automatically removes old Teams meeting recordings after a specified period to manage storage costs and comply with data retention policies. This helps organizations balance the need to preserve important meeting content with storage efficiency and regulatory compliance requirements.", + "addedComponent": [ + { + "type": "number", + "name": "standards.TeamsMeetingRecordingExpiration.ExpirationDays", + "label": "Recording Expiration Days (e.g., 365)", + "required": true + } + ], + "label": "Set Teams Meeting Recording Expiration", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2025-04-17", + "powershellEquivalent": "Set-CsTeamsMeetingPolicy -Identity Global -MeetingRecordingExpirationDays ", + "recommendedBy": [] + }, { "name": "standards.TeamsMessagingPolicy", "cat": "Teams Standards", "tag": [], "helpText": "Sets the properties of the Global messaging policy.", "docsDescription": "Sets the properties of the Global messaging policy. Messaging policies control which chat and channel messaging features are available to users in Teams.", + "executiveText": "Defines what messaging capabilities employees have in Teams, including the ability to edit or delete messages, create custom emojis, and report inappropriate content. These policies help maintain professional communication standards while enabling necessary collaboration features.", "addedComponent": [ { "type": "switch", @@ -3523,12 +4570,13 @@ "cat": "Device Management Standards", "tag": [], "disabledFeatures": { - "report": true, - "warn": true, + "report": false, + "warn": false, "remediate": false }, "helpText": "Deploy the Autopilot Status Page, which shows progress during device setup through Autopilot.", "docsDescription": "This standard allows configuration of the Autopilot Status Page, providing users with a visual representation of the progress during device setup. It includes options like timeout, logging, and retry settings.", + "executiveText": "Provides employees with a visual progress indicator during automated device setup, improving the user experience when receiving new computers. This reduces IT support calls and helps ensure successful device deployment by guiding users through the setup process.", "addedComponent": [ { "type": "number", @@ -3596,8 +4644,8 @@ "cat": "Device Management Standards", "tag": [], "disabledFeatures": { - "report": true, - "warn": true, + "report": false, + "warn": false, "remediate": false }, "helpText": "Assign the appropriate Autopilot profile to streamline device deployment.", @@ -3616,12 +4664,14 @@ { "type": "textField", "name": "standards.AutopilotProfile.DeviceNameTemplate", - "label": "Unique Device Name Template" + "label": "Unique Device Name Template", + "required": false }, { "type": "autoComplete", "multiple": false, "creatable": false, + "required": false, "name": "standards.AutopilotProfile.Languages", "label": "Languages", "api": { @@ -3704,6 +4754,7 @@ "impact": "High Impact", "addedDate": "2023-12-30", "helpText": "Deploy and manage Intune templates across devices.", + "executiveText": "Deploys standardized device management configurations across all corporate devices, ensuring consistent security policies, application settings, and compliance requirements. This template-based approach streamlines device management while maintaining uniform security standards across the organization.", "addedComponent": [ { "type": "autoComplete", @@ -3723,11 +4774,26 @@ "label": "Who should this template be assigned to?", "type": "radio", "options": [ - { "label": "Do not assign", "value": "On" }, - { "label": "Assign to all users", "value": "allLicensedUsers" }, - { "label": "Assign to all devices", "value": "AllDevices" }, - { "label": "Assign to all users and devices", "value": "AllDevicesAndUsers" }, - { "label": "Assign to Custom Group", "value": "customGroup" } + { + "label": "Do not assign", + "value": "On" + }, + { + "label": "Assign to all users", + "value": "allLicensedUsers" + }, + { + "label": "Assign to all devices", + "value": "AllDevices" + }, + { + "label": "Assign to all users and devices", + "value": "AllDevicesAndUsers" + }, + { + "label": "Assign to Custom Group", + "value": "customGroup" + } ] }, { @@ -3742,6 +4808,30 @@ "type": "textField", "required": false, "helpText": "Enter the group name to exclude from the assignment. Wildcards are allowed." + }, + { + "type": "textField", + "required": false, + "name": "assignmentFilter", + "label": "Assignment Filter Name (Optional)", + "helpText": "Enter the assignment filter name to apply to this policy assignment. Wildcards are allowed." + }, + { + "name": "assignmentFilterType", + "label": "Assignment Filter Mode (Optional)", + "type": "radio", + "required": false, + "helpText": "Choose whether to include or exclude devices matching the filter. Only applies if you specified a filter name above. Defaults to Include if not specified.", + "options": [ + { + "label": "Include - Assign to devices matching the filter", + "value": "include" + }, + { + "label": "Exclude - Assign to devices NOT matching the filter", + "value": "exclude" + } + ] } ] }, @@ -3757,6 +4847,7 @@ "impact": "Medium Impact", "addedDate": "2023-12-30", "helpText": "Deploy transport rules to manage email flow.", + "executiveText": "Deploys standardized email flow rules that automatically manage how emails are processed, filtered, and routed within the organization. These templates ensure consistent email security policies, compliance requirements, and business rules are applied across all email communications.", "addedComponent": [ { "type": "autoComplete", @@ -3784,6 +4875,7 @@ "impact": "High Impact", "addedDate": "2023-12-30", "helpText": "Manage conditional access policies for better security.", + "executiveText": "Deploys standardized conditional access policies that automatically enforce security requirements based on user location, device compliance, and risk factors. These templates ensure consistent security controls across the organization while enabling secure access to business resources.", "addedComponent": [ { "type": "autoComplete", @@ -3802,17 +4894,35 @@ "label": "What state should we deploy this template in?", "type": "radio", "options": [ - { "value": "donotchange", "label": "Do not change state" }, - { "value": "Enabled", "label": "Set to enabled" }, - { "value": "Disabled", "label": "Set to disabled" }, - { "value": "enabledForReportingButNotEnforced", "label": "Set to report only" } + { + "value": "donotchange", + "label": "Do not change state" + }, + { + "value": "Enabled", + "label": "Set to enabled" + }, + { + "value": "Disabled", + "label": "Set to disabled" + }, + { + "value": "enabledForReportingButNotEnforced", + "label": "Set to report only" + } ] + }, + { + "type": "switch", + "name": "DisableSD", + "label": "Disable Security Defaults when deploying policy" } ] }, { "name": "standards.ExchangeConnectorTemplate", "label": "Exchange Connector Template", + "cat": "Templates", "disabledFeatures": { "report": true, "warn": true, @@ -3821,6 +4931,7 @@ "impact": "Medium Impact", "addedDate": "2023-12-30", "helpText": "Deploy and manage Exchange connectors.", + "executiveText": "Configures standardized Exchange connectors that control how email flows between your organization and external systems. These templates ensure secure and reliable email delivery while maintaining proper routing and security policies for business communications.", "addedComponent": [ { "type": "autoComplete", @@ -3848,6 +4959,7 @@ "impact": "Medium Impact", "addedDate": "2023-12-30", "helpText": "Deploy and manage group templates.", + "executiveText": "Creates standardized groups with predefined settings, permissions, and membership rules. These templates ensure consistent group configurations across the organization, streamlining collaboration and access management while maintaining security standards.", "addedComponent": [ { "type": "autoComplete", @@ -3856,10 +4968,76 @@ "api": { "url": "/api/ListGroupTemplates", "labelField": "Displayname", + "altLabelField": "displayName", "valueField": "GUID", "queryKey": "ListGroupTemplates" } } ] + }, + { + "name": "standards.AssignmentFilterTemplate", + "label": "Assignment Filter Template", + "multi": true, + "cat": "Templates", + "disabledFeatures": { + "report": true, + "warn": true, + "remediate": false + }, + "impact": "Medium Impact", + "addedDate": "2025-10-04", + "helpText": "Deploy and manage assignment filter templates.", + "executiveText": "Creates standardized assignment filters with predefined settings. These templates ensure consistent assignment filter configurations across the organization, streamlining assignment management.", + "addedComponent": [ + { + "type": "autoComplete", + "name": "assignmentFilterTemplate", + "label": "Select Assignment Filter Template", + "api": { + "url": "/api/ListAssignmentFilterTemplates", + "labelField": "Displayname", + "altLabelField": "displayName", + "valueField": "GUID", + "queryKey": "ListAssignmentFilterTemplates" + } + } + ] + }, + { + "name": "standards.MailboxRecipientLimits", + "cat": "Exchange Standards", + "tag": [], + "helpText": "Sets the maximum number of recipients that can be specified in the To, Cc, and Bcc fields of a message for all mailboxes in the tenant.", + "docsDescription": "This standard configures the recipient limits for all mailboxes in the tenant. The recipient limit determines the maximum number of recipients that can be specified in the To, Cc, and Bcc fields of a message. This helps prevent spam and manage email flow.", + "executiveText": "Controls how many recipients employees can include in a single email, helping prevent spam distribution and managing email server load. This security measure protects against both accidental mass mailings and potential abuse while ensuring legitimate business communications can still reach necessary recipients.", + "addedComponent": [ + { + "type": "number", + "name": "standards.MailboxRecipientLimits.RecipientLimit", + "label": "Recipient Limit", + "defaultValue": 500 + } + ], + "label": "Set Mailbox Recipient Limits", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2025-05-28", + "powershellEquivalent": "Set-Mailbox -RecipientLimits", + "recommendedBy": ["CIPP"] + }, + { + "name": "standards.DisableExchangeOnlinePowerShell", + "cat": "Exchange Standards", + "tag": ["CIS M365 5.0 (6.1.1)", "Security", "NIST CSF 2.0 (PR.AA-05)"], + "helpText": "Disables Exchange Online PowerShell access for non-admin users by setting the RemotePowerShellEnabled property to false for each user. This helps prevent attackers from using PowerShell to run malicious commands, access file systems, registry, and distribute ransomware throughout networks. Users with admin roles are automatically excluded.", + "docsDescription": "Disables Exchange Online PowerShell access for non-admin users by setting the RemotePowerShellEnabled property to false for each user. This security measure follows a least privileged access approach, preventing potential attackers from using PowerShell to execute malicious commands, access sensitive systems, or distribute malware. Users with management roles containing 'Admin' are automatically excluded to ensure administrators retain PowerShell access to perform necessary management tasks.", + "executiveText": "Restricts PowerShell access to Exchange Online for regular employees while maintaining access for administrators, significantly reducing security risks from compromised accounts. This prevents attackers from using PowerShell to execute malicious commands or distribute ransomware while preserving necessary administrative capabilities.", + "label": "Disable Exchange Online PowerShell for non-admin users", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2025-06-19", + "powershellEquivalent": "Set-User -Identity $user -RemotePowerShellEnabled $false", + "recommendedBy": ["CIS", "CIPP"] } ] diff --git a/ConversionTable.csv b/ConversionTable.csv deleted file mode 100644 index 704f7c507d5f..000000000000 --- a/ConversionTable.csv +++ /dev/null @@ -1,5617 +0,0 @@ -Product_Display_Name,String_Id,GUID,Service_Plan_Name,Service_Plan_Id,Service_Plans_Included_Friendly_Names -10-Year Audit Log Retention Add On,10_ALR_ADDON,c2e41e49-e2a2-4c55-832a-cf13ffba1d6a,Auditing_10Year_ Retention_ Add_On,7d16094b-4db8-41ff-a182-372a90a85407,Auditing 10Year Retention Add On -Advanced Communications,ADV_COMMS,e4654015-5daf-4a48-9b37-4f309dddd88b,TEAMS_ADVCOMMS,604ec28a-ae18-4bc6-91b0-11da94504ba9,Microsoft 365 Advanced Communications -AI Builder Capacity add-on,CDSAICAPACITY,d2dea78b-507c-4e56-b400-39447f4738f8,CDSAICAPACITY,a7c70a41-5e02-4271-93e6-d9b4184d83f5,AI Builder capacity add-on -AI Builder Capacity add-on,CDSAICAPACITY,d2dea78b-507c-4e56-b400-39447f4738f8,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -App Connect IW,SPZA_IW,8f0c5670-4e56-4892-b06d-91c085d7004f,SPZA,0bfc98ed-1dbc-4a97-b246-701754e48b17,APP CONNECT -App Connect IW,SPZA_IW,8f0c5670-4e56-4892-b06d-91c085d7004f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -App governance add-on to Microsoft Defender for Cloud Apps,Microsoft_Cloud_App_Security_App_Governance_Add_On,9706eed9-966f-4f1b-94f6-bb2b4af99a5b,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform -App governance add-on to Microsoft Defender for Cloud Apps,Microsoft_Cloud_App_Security_App_Governance_Add_On,9706eed9-966f-4f1b-94f6-bb2b4af99a5b,MICROSOFT_APPLICATION_PROTECTION_AND_GOVERNANCE_A,5f3b1ded-75c0-4b31-8e6e-9b077eaadfd5,Microsoft Application Protection and Governance (A) -App governance add-on to Microsoft Defender for Cloud Apps,Microsoft_Cloud_App_Security_App_Governance_Add_On,9706eed9-966f-4f1b-94f6-bb2b4af99a5b,MICROSOFT_APPLICATION_PROTECTION_AND_GOVERNANCE_D,2e6ffd72-52d1-4541-8f6c-938f9a8d4cdc,Microsoft Application Protection and Governance (D) -Azure Information Protection Premium P1 for Government,RIGHTSMANAGEMENT_CE_GOV ,78362de1-6942-4bb8-83a1-a32aa67e6e2c,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Azure Information Protection Premium P1 for Government,RIGHTSMANAGEMENT_CE_GOV ,78362de1-6942-4bb8-83a1-a32aa67e6e2c,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC -Azure Information Protection Premium P1 for Government,RIGHTSMANAGEMENT_CE_GOV ,78362de1-6942-4bb8-83a1-a32aa67e6e2c,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management -Career Coach for faculty,CAREERCOACH_FACULTY,95de1760-7682-406d-98c9-52ef14e51e2b,CAREERCOACH_EDU,80f0ae31-0dfb-425c-b3fc-36f40170eb35,Career Coach -Career Coach for students,CAREERCOACH_STUDENTS,01c8007a-57d2-41e0-a3c3-0b46ead16cc4,CAREERCOACH_EDU,80f0ae31-0dfb-425c-b3fc-36f40170eb35,Career Coach -Clipchamp Premium,Clipchamp_Premium,0fe440c5-f2bf-442b-a4f4-9a7af77a200b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Clipchamp Premium,Clipchamp_Premium,0fe440c5-f2bf-442b-a4f4-9a7af77a200b,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Clipchamp Premium,Clipchamp_Premium,0fe440c5-f2bf-442b-a4f4-9a7af77a200b,CLIPCHAMP_PREMIUM,430b908f-78e1-4812-b045-cf83320e7d5d,Microsoft Clipchamp Premium -Clipchamp Premium,Clipchamp_Premium,0fe440c5-f2bf-442b-a4f4-9a7af77a200b,ONEDRIVECLIPCHAMP,f7e5b77d-f293-410a-bae8-f941f19fe680,OneDrive for Business (Clipchamp) -Clipchamp Standard,Clipchamp_Standard,481f3bc2-5756-4b28-9375-5c8c86b99e6b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Clipchamp Standard,Clipchamp_Standard,481f3bc2-5756-4b28-9375-5c8c86b99e6b,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Clipchamp Standard,Clipchamp_Standard,481f3bc2-5756-4b28-9375-5c8c86b99e6b,ONEDRIVECLIPCHAMP,f7e5b77d-f293-410a-bae8-f941f19fe680,OneDrive for Business (Clipchamp) -Microsoft 365 Audio Conferencing,MCOMEETADV,0c266dff-15dd-4b49-8397-2bb16070ed52,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft Entra ID Basic,AAD_BASIC,2b9c8e7c-319c-43a2-a2a0-48c5c6161de7,AAD_BASIC,c4da7f8a-5ee2-4c99-a7e1-87d2df57f6fe,Microsoft Entra BASIC -Microsoft Entra ID P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft Entra ID P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,CLOUD APP SECURITY DISCOVERY -Microsoft Entra ID P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Microsoft Entra ID P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION -Microsoft Entra ID P1 for Faculty,AAD_PREMIUM_FACULTY,30fc3c36-5a95-4956-ba57-c09c2a600bb9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Entra ID P1 for Faculty,AAD_PREMIUM_FACULTY,30fc3c36-5a95-4956-ba57-c09c2a600bb9,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft Entra ID P1 for Faculty,AAD_PREMIUM_FACULTY,30fc3c36-5a95-4956-ba57-c09c2a600bb9,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft Entra ID P1 for Faculty,AAD_PREMIUM_FACULTY,30fc3c36-5a95-4956-ba57-c09c2a600bb9,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft Entra ID P1_USGOV_GCCHIGH,AAD_PREMIUM_USGOV_GCCHIGH ,de597797-22fb-4d65-a9fe-b7dbe8893914,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Entra ID P1_USGOV_GCCHIGH,AAD_PREMIUM_USGOV_GCCHIGH ,de597797-22fb-4d65-a9fe-b7dbe8893914,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft Entra ID P1_USGOV_GCCHIGH,AAD_PREMIUM_USGOV_GCCHIGH ,de597797-22fb-4d65-a9fe-b7dbe8893914,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft Entra ID P1_USGOV_GCCHIGH,AAD_PREMIUM_USGOV_GCCHIGH ,de597797-22fb-4d65-a9fe-b7dbe8893914,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,CLOUD APP SECURITY DISCOVERY -Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION -Azure Information Protection Plan 1,RIGHTSMANAGEMENT,c52ea49f-fe5d-4e95-93ba-1de91d380f89,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,AZURE INFORMATION PROTECTION PREMIUM P1 -Azure Information Protection Plan 1,RIGHTSMANAGEMENT,c52ea49f-fe5d-4e95-93ba-1de91d380f89,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Microsoft Entra RIGHTS -Azure Information Protection Plan 1,RIGHTSMANAGEMENT_CE,a0e6a48f-b056-4037-af70-b9ac53504551,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Azure Information Protection Plan 1,RIGHTSMANAGEMENT_CE,a0e6a48f-b056-4037-af70-b9ac53504551,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Azure Information Protection Plan 1,RIGHTSMANAGEMENT_CE,a0e6a48f-b056-4037-af70-b9ac53504551,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Azure Information Protection Premium P1_USGOV_GCCHIGH,RIGHTSMANAGEMENT_CE_USGOV_GCCHIGH,c57afa2a-d468-46c4-9a90-f86cb1b3c54a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Azure Information Protection Premium P1_USGOV_GCCHIGH,RIGHTSMANAGEMENT_CE_USGOV_GCCHIGH,c57afa2a-d468-46c4-9a90-f86cb1b3c54a,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Azure Information Protection Premium P1_USGOV_GCCHIGH,RIGHTSMANAGEMENT_CE_USGOV_GCCHIGH,c57afa2a-d468-46c4-9a90-f86cb1b3c54a,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Basic Collaboration,OFFICEBASIC,4468c39a-28b2-42fb-9094-840bcf28771f,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Basic Collaboration,OFFICEBASIC,4468c39a-28b2-42fb-9094-840bcf28771f,ONEDRIVELITE_IW,b4ac11a0-32ff-4e78-982d-e039fa803dec,Office for the web with OneDrive for business -Basic Collaboration,OFFICEBASIC,4468c39a-28b2-42fb-9094-840bcf28771f,MCOBASIC,448898aa-3ae7-478c-b49a-1fac7a8a35cf,Skype Meetings -Basic Collaboration,OFFICEBASIC,4468c39a-28b2-42fb-9094-840bcf28771f,YAMMER_BASIC,6db7aeea-6c4a-475d-bbb0-7338bc73d646,Yammer -Business Apps (free),SMB_APPS,90d8b3f8-712e-4f7b-aa1e-62e7ae6cbe96,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing -Business Apps (free),SMB_APPS,90d8b3f8-712e-4f7b-aa1e-62e7ae6cbe96,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Common Data Service for Apps File Capacity,CDS_FILE_CAPACITY,631d5fb1-a668-4c2a-9427-8830665a742e,CDS_FILE_CAPACITY,dd12a3a8-caec-44f8-b4fb-2f1a864b51e3,Common Data Service for Apps File Capacity -Common Data Service for Apps File Capacity,CDS_FILE_CAPACITY,631d5fb1-a668-4c2a-9427-8830665a742e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Common Data Service Database Capacity,CDS_DB_CAPACITY,e612d426-6bc3-4181-9658-91aa906b0ac0,CDS_DB_CAPACITY,360bcc37-0c11-4264-8eed-9fa7a3297c9b,Common Data Service for Apps Database Capacity -Common Data Service Database Capacity,CDS_DB_CAPACITY,e612d426-6bc3-4181-9658-91aa906b0ac0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Common Data Service Database Capacity for Government,CDS_DB_CAPACITY_GOV,eddf428b-da0e-4115-accf-b29eb0b83965,CDS_DB_CAPACITY_GOV,1ddffef6-4f69-455e-89c7-d5d72105f915,Common Data Service for Apps Database Capacity for Government -Common Data Service Database Capacity for Government,CDS_DB_CAPACITY_GOV,eddf428b-da0e-4115-accf-b29eb0b83965,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Common Data Service Log Capacity,CDS_LOG_CAPACITY,448b063f-9cc6-42fc-a0e6-40e08724a395,CDS_LOG_CAPACITY,dc48f5c5-e87d-43d6-b884-7ac4a59e7ee9,Common Data Service for Apps Log Capacity -Common Data Service Log Capacity,CDS_LOG_CAPACITY,448b063f-9cc6-42fc-a0e6-40e08724a395,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Communications Credits,MCOPSTNC,47794cd0-f0e5-45c5-9033-2eb6b5fc84e0,MCOPSTNC,505e180f-f7e0-4b65-91d4-00d670bbd18c,COMMUNICATIONS CREDITS -Compliance Manager Premium Assessment Add-On,CMPA_addon,8a5fbbed-8b8c-41e5-907e-c50c471340fd,COMPLIANCE_MANAGER_PREMIUM_ASSESSMENT_ADDON,3a117d30-cfac-4f00-84ac-54f8b6a18d78,Compliance Manager Premium Assessment Add-On -Compliance Manager Premium Assessment Add-On for GCC,CMPA_addon_GCC,a9d7ef53-9bea-4a2a-9650-fa7df58fe094,COMPLIANCE_MANAGER_PREMIUM_ASSESSMENT_ADDON,3a117d30-cfac-4f00-84ac-54f8b6a18d78,Compliance Manager Premium Assessment Add-On -Defender Threat Intelligence,Defender_Threat_Intelligence,a9c51c15-ffad-4c66-88c0-8771455c832d,THREAT_INTELLIGENCE_APP,fbdb91e6-7bfd-4a1f-8f7a-d27f4ef39702,Defender Threat Intelligence -Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_CHAT_FPA_GOV,b9f7ce72-67ff-4695-a9d9-5ff620232024,Dynamics 365 Customer Service Chat Application Integration for Government -Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government -Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_MESSAGING_GOV,e304c3c3-f86c-4200-b174-1ade48805b22,Dynamics 365 Customer Service Digital Messaging application integration for Government -Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_CHAT_GOV,ffb878a5-3184-472b-800b-65eadc63d764,Dynamics 365 for Customer Service Chat for Government -Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,POWER_VIRTUAL_AGENTS_D365_CS_CHAT_GOV,9023fe69-f9e0-4c1e-bfde-654954469162,Power Virtual Agents for Chat for Gov -Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING_GOV,e501d49b-1176-4816-aece-2563c0d995db,Power Virtual Agents for Digital Messaging for Gov -Dynamics 365 - Additional Database Storage (Qualified Offer),CRMSTORAGE,328dc228-00bc-48c6-8b09-1fbc8bc3435d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 - Additional Database Storage (Qualified Offer),CRMSTORAGE,328dc228-00bc-48c6-8b09-1fbc8bc3435d,CRMSTORAGE,77866113-0f3e-4e6e-9666-b1e25c6f99b0,Microsoft Dynamics CRM Online Storage Add-On -Dynamics 365 - Additional Production Instance (Qualified Offer),CRMINSTANCE,9d776713-14cb-4697-a21d-9a52455c738a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 - Additional Production Instance (Qualified Offer),CRMINSTANCE,9d776713-14cb-4697-a21d-9a52455c738a,CRMINSTANCE,eeea837a-c885-4167-b3d5-ddde30cbd85f,Microsoft Dynamics CRM Online Instance -Dynamics 365 - Additional Non-Production Instance (Qualified Offer),CRMTESTINSTANCE,e06abcc2-7ec5-4a79-b08b-d9c282376f72,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 - Additional Non-Production Instance (Qualified Offer),CRMTESTINSTANCE,e06abcc2-7ec5-4a79-b08b-d9c282376f72,CRMTESTINSTANCE,a98b7619-66c7-4885-bdfc-1d9c8c3d279f,Microsoft Dynamics CRM Online Additional Test Instance -Dynamics 365 AI for Market Insights (Preview),SOCIAL_ENGAGEMENT_APP_USER,c6df1e30-1c9f-427f-907c-3d913474a1c7,SOCIAL_ENGAGEMENT_APP_USER,339f4def-5ad8-4430-8d12-da5fd4c769a7,Dynamics 365 AI for Market Insights - Free -Dynamics 365 AI for Market Insights (Preview),SOCIAL_ENGAGEMENT_APP_USER,c6df1e30-1c9f-427f-907c-3d913474a1c7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Asset Management Addl Assets,DYN365_ASSETMANAGEMENT,673afb9d-d85b-40c2-914e-7bf46cd5cd75,D365_AssetforSCM,90467813-5b40-40d4-835c-abd48009b1d9,Asset Maintenance Add-in -Dynamics 365 Asset Management Addl Assets,DYN365_ASSETMANAGEMENT,673afb9d-d85b-40c2-914e-7bf46cd5cd75,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Business Central Additional Environment Addon,DYN365_BUSCENTRAL_ADD_ENV_ADDON,a58f5506-b382-44d4-bfab-225b2fbf8390,DYN365_BUSCENTRAL_ENVIRONMENT,d397d6c6-9664-4502-b71c-66f39c400ca4,Dynamics 365 Business Central Additional Environment Addon -Dynamics 365 Business Central Database Capacity,DYN365_BUSCENTRAL_DB_CAPACITY,7d0d4f9a-2686-4cb8-814c-eff3fdab6d74,DYN365_BUSCENTRAL_DB_CAPACITY,ae6b27b3-fe31-4e77-ae06-ec5fabbc103a,Dynamics 365 Business Central Database Capacity -Dynamics 365 Business Central Database Capacity,DYN365_BUSCENTRAL_DB_CAPACITY,7d0d4f9a-2686-4cb8-814c-eff3fdab6d74,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Business Central Essentials,DYN365_BUSCENTRAL_ESSENTIAL,2880026b-2b0c-4251-8656-5d41ff11e3aa,DYN365_FINANCIALS_BUSINESS,920656a2-7dd8-4c83-97b6-a356414dbd36,Dynamics 365 for Business Central Essentials -Dynamics 365 Business Central Essentials,DYN365_BUSCENTRAL_ESSENTIAL,2880026b-2b0c-4251-8656-5d41ff11e3aa,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Business Central Essentials,DYN365_BUSCENTRAL_ESSENTIAL,2880026b-2b0c-4251-8656-5d41ff11e3aa,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Flow for Dynamics 365 -Dynamics 365 Business Central Essentials,DYN365_BUSCENTRAL_ESSENTIAL,2880026b-2b0c-4251-8656-5d41ff11e3aa,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,PowerApps for Dynamics 365 -Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,DYN365_BUSCENTRAL_ESSENTIALS_ATTACH,17ca446c-d7a4-4d29-8dec-8e241592164b,Dynamics 365 Business Central Essentials Attach -Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 Business Central External Accountant,DYN365_FINANCIALS_ACCOUNTANT_SKU,9a1e33ed-9697-43f3-b84c-1b0959dbb1d4,DYN365_FINANCIALS_ACCOUNTANT,170991d7-b98e-41c5-83d4-db2052e1795f,Dynamics 365 Business Central External Accountant -Dynamics 365 Business Central External Accountant,DYN365_FINANCIALS_ACCOUNTANT_SKU,9a1e33ed-9697-43f3-b84c-1b0959dbb1d4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Business Central External Accountant,DYN365_FINANCIALS_ACCOUNTANT_SKU,9a1e33ed-9697-43f3-b84c-1b0959dbb1d4,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Flow for Dynamics 365 -Dynamics 365 Business Central External Accountant,DYN365_FINANCIALS_ACCOUNTANT_SKU,9a1e33ed-9697-43f3-b84c-1b0959dbb1d4,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,PowerApps for Dynamics 365 -Dynamics 365 Business Central for IWs,PROJECT_MADEIRA_PREVIEW_IW_SKU,6a4a1628-9b9a-424d-bed5-4118f0ede3fd,PROJECT_MADEIRA_PREVIEW_IW,3f2afeed-6fb5-4bf9-998f-f2912133aead,Dynamics 365 Business Central for IWs -Dynamics 365 Business Central for IWs,PROJECT_MADEIRA_PREVIEW_IW_SKU,6a4a1628-9b9a-424d-bed5-4118f0ede3fd,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Business Central Premium,DYN365_BUSCENTRAL_PREMIUM,f991cecc-3f91-4cd0-a9a8-bf1c8167e029,DYN365_BUSCENTRAL_PREMIUM,8e9002c0-a1d8-4465-b952-817d2948e6e2,Dynamics 365 Business Central Premium -Dynamics 365 Business Central Premium,DYN365_BUSCENTRAL_PREMIUM,f991cecc-3f91-4cd0-a9a8-bf1c8167e029,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Business Central Premium,DYN365_BUSCENTRAL_PREMIUM,f991cecc-3f91-4cd0-a9a8-bf1c8167e029,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Flow for Dynamics 365 -Dynamics 365 Business Central Premium,DYN365_BUSCENTRAL_PREMIUM,f991cecc-3f91-4cd0-a9a8-bf1c8167e029,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,PowerApps for Dynamics 365 -Dynamics 365 Business Central Team Members,DYN365_BUSCENTRAL_TEAM_MEMBER,2e3c4023-80f6-4711-aa5d-29e0ecb46835,DYN365_FINANCIALS_TEAM_MEMBERS,d9a6391b-8970-4976-bd94-5f205007c8d8,Dynamics 365 for Team Members -Dynamics 365 Business Central Team Members,DYN365_BUSCENTRAL_TEAM_MEMBER,2e3c4023-80f6-4711-aa5d-29e0ecb46835,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Business Central Team Members,DYN365_BUSCENTRAL_TEAM_MEMBER,2e3c4023-80f6-4711-aa5d-29e0ecb46835,POWERAPPS_DYN_TEAM,52e619e2-2730-439a-b0d3-d09ab7e8b705,Power Apps for Dynamics 365 -Dynamics 365 Business Central Team Members,DYN365_BUSCENTRAL_TEAM_MEMBER,2e3c4023-80f6-4711-aa5d-29e0ecb46835,FLOW_DYN_TEAM,1ec58c70-f69c-486a-8109-4b87ce86e449,Power Automate for Dynamics 365 -Dynamics 365 Commerce Trial,DYN365_RETAIL_TRIAL,1508ad2d-5802-44e6-bfe8-6fb65de63d28,DYN365_RETAIL_TRIAL,874d6da5-2a67-45c1-8635-96e8b3e300ea,Dynamics 365 for Retail Trial -Dynamics 365 Commerce Trial,DYN365_RETAIL_TRIAL,1508ad2d-5802-44e6-bfe8-6fb65de63d28,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,DYN365_ENTERPRISE_P1,d56f3deb-50d8-465a-bedb-f079817ccac1,Dynamics 365 Customer Engagement Plan -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,D365_CSI_EMBED_CE,1412cdc1-d593-4ad1-9050-40c30ad0b023,Dynamics 365 Customer Service Insights for CE Plan -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,D365_ProjectOperationsCDS,18fa3aba-b085-4105-87d7-55617b8585e6,Dynamics 365 Project Operations CDS -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,Forms_Pro_CE,97f29a83-1a20-44ff-bf48-5e4ad11f3e51,Microsoft Dynamics 365 Customer Voice for Customer Engagement Plan -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,Retired - Microsoft Social Engagement -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,D365_ProjectOperations,69f07c66-bee4-4222-b051-195095efee5b,Dynamics 365 Project Operations -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,DYN365_CDS_GUIDES,1315ade1-0410-450d-b8e3-8050e6da320f,Common Data Service -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Dynamics 365 Remote Assist -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,PROJECT_FOR_PROJECT_OPERATIONS,0a05d977-a21a-45b2-91ce-61c240dbafa2,Project for Project Operations -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,Project Online Service -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,POWERAPPS_DYN_P2,0b03f40b-c404-40c3-8651-2aceb74365fa,Power Apps for Dynamics 365 -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,FLOW_DYN_P2,b650d915-9886-424b-a08d-633cede56f57,Power Automate for Dynamics 365 -Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,CDS_CUSTOMER_INSIGHTS_BASE,d04ca659-b119-4a92-b8fc-3ede584a9d65,Dataverse for Customer Insights BASE -Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,CDS_CUSTOMER_INSIGHTS,ca00cff5-2568-4d03-bb6c-a653a8f360ca,Common Data Service for Customer Insights -Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,DYN365_CUSTOMER_INSIGHTS_BASE,ee85d528-c4b4-4a99-9b07-fb9a1365dc93,Dynamics 365 Customer Insights -Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,Customer_Voice_Customer_Insights,46c5ea0a-2343-49d9-ae4f-1c268b232d53,Microsoft Dynamics 365 Customer Voice for Customer Insights App -Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Customer Service Digital Messaging add-on for Government,DYN365_CS_MESSAGING_GOV,336dfe1f-3b33-4ab4-b395-cba8f614976d,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government -Dynamics 365 for Customer Service Digital Messaging add-on for Government,DYN365_CS_MESSAGING_GOV,336dfe1f-3b33-4ab4-b395-cba8f614976d,DYN365_CS_MESSAGING_GOV,e304c3c3-f86c-4200-b174-1ade48805b22,Dynamics 365 Customer Service Digital Messaging application integration for Government -Dynamics 365 for Customer Service Digital Messaging add-on for Government,DYN365_CS_MESSAGING_GOV,336dfe1f-3b33-4ab4-b395-cba8f614976d,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING_GOV,e501d49b-1176-4816-aece-2563c0d995db,Power Virtual Agents for Digital Messaging for Gov -Dynamics 365 for Customer Service Digital Messaging add-on for Government,DYN365_CS_MESSAGING_GOV,336dfe1f-3b33-4ab4-b395-cba8f614976d,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government -Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,DYN365_CS_VOICE_GOV,411b0c93-8f89-455e-a663-c0a3effd12c3,Dynamics 365 for Customer Service Voice Add-in for Government -Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,POWER_VIRTUAL_AGENTS_D365_CS_VOICE_GOV,cad9c719-36e0-43c7-9506-6886f272d4f0,Power Virtual Agents for Customer Service Voice for Government -Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING_GOV,e501d49b-1176-4816-aece-2563c0d995db,Power Virtual Agents for Digital Messaging for Gov -Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government -Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,DYN365_CS_VOICE_GOV,411b0c93-8f89-455e-a663-c0a3effd12c3,Dynamics 365 for Customer Service Voice Add-in for Government -Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,POWER_VIRTUAL_AGENTS_D365_CS_VOICE_GOV,cad9c719-36e0-43c7-9506-6886f272d4f0,Power Virtual Agents for Customer Service Voice for Government -Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING_GOV,e501d49b-1176-4816-aece-2563c0d995db,Power Virtual Agents for Digital Messaging for Gov -Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Dynamics 365 for Customer Service Chat for Government,DYN365_CS_CHAT_GOV,1b399f66-be2a-479c-a79d-84a43a46f79e,DYN365_CS_CHAT_FPA_GOV,b9f7ce72-67ff-4695-a9d9-5ff620232024,Dynamics 365 Customer Service Chat Application Integration for Government -Dynamics 365 for Customer Service Chat for Government,DYN365_CS_CHAT_GOV,1b399f66-be2a-479c-a79d-84a43a46f79e,DYN365_CS_CHAT_GOV,ffb878a5-3184-472b-800b-65eadc63d764,Dynamics 365 for Customer Service Chat for Government -Dynamics 365 for Customer Service Chat for Government,DYN365_CS_CHAT_GOV,1b399f66-be2a-479c-a79d-84a43a46f79e,POWER_VIRTUAL_AGENTS_D365_CS_CHAT_GOV,9023fe69-f9e0-4c1e-bfde-654954469162,Power Virtual Agents for Chat for Gov -Dynamics 365 for Customer Service Chat for Government,DYN365_CS_CHAT_GOV,1b399f66-be2a-479c-a79d-84a43a46f79e,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial -Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on -Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,D365_CSI_EMBED_CSEnterprise,5b1e5982-0e88-47bb-a95e-ae6085eda612,Dynamics 365 Customer Service Insights for CS Enterprise -Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,DYN365_ENTERPRISE_CUSTOMER_SERVICE,99340b49-fb81-4b1e-976b-8f2ae8e9394f,Dynamics 365 for Customer Service -Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in -Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice -Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING,2d2f174c-c3cc-4abe-9ce8-4dd86f469ab1,Power Virtual Agents for Digital Messaging -Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 Customer Service Voice Channel Add-in,DYN365_CS_VOICE,dadd2312-b5b1-4fa0-8c15-0903de3e2303,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in -Dynamics 365 Customer Service Voice Channel Add-in,DYN365_CS_VOICE,dadd2312-b5b1-4fa0-8c15-0903de3e2303,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice -Dynamics 365 Customer Service Voice Channel Add-in,DYN365_CS_VOICE,dadd2312-b5b1-4fa0-8c15-0903de3e2303,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,CDS_CUSTOMER_INSIGHTS_BASE,d04ca659-b119-4a92-b8fc-3ede584a9d65,Dataverse for Cust Insights BASE -Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,CDS_CUSTOMER_INSIGHTS,ca00cff5-2568-4d03-bb6c-a653a8f360ca,Common Data Service for Customer Insights -Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,DYN365_CUSTOMER_INSIGHTS_BASE,ee85d528-c4b4-4a99-9b07-fb9a1365dc93,Dynamics 365 Customer Insights -Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,DYN365_CUSTOMER_INSIGHTS_ENGAGEMENT_INSIGHTS_BASE,b3c26516-3b8d-492f-a5a3-64d70ad3f8d0,Dynamics 365 Customer Insights Engagement Insights -Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,Customer_Voice_Customer_Insights,46c5ea0a-2343-49d9-ae4f-1c268b232d53,Microsoft Dynamics 365 Customer Voice for Customer Insights App -Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Customer Insights vTrial,DYN365_CUSTOMER_INSIGHTS_VIRAL,036c2481-aa8a-47cd-ab43-324f0c157c2d,CDS_CUSTOMER_INSIGHTS_TRIAL,94e5cbf6-d843-4ee8-a2ec-8b15eb52019e,Common Data Service for Customer Insights Trial -Dynamics 365 Customer Insights vTrial,DYN365_CUSTOMER_INSIGHTS_VIRAL,036c2481-aa8a-47cd-ab43-324f0c157c2d,DYN365_CUSTOMER_INSIGHTS_ENGAGEMENT_INSIGHTS_BASE_TRIAL,e2bdea63-235e-44c6-9f5e-5b0e783f07dd,Dynamics 365 Customer Insights Engagement Insights Viral -Dynamics 365 Customer Insights vTrial,DYN365_CUSTOMER_INSIGHTS_VIRAL,036c2481-aa8a-47cd-ab43-324f0c157c2d,DYN365_CUSTOMER_INSIGHTS_VIRAL,ed8e8769-94c5-4132-a3e7-7543b713d51f,Dynamics 365 Customer Insights Viral Plan -Dynamics 365 Customer Insights vTrial,DYN365_CUSTOMER_INSIGHTS_VIRAL,036c2481-aa8a-47cd-ab43-324f0c157c2d,Forms_Pro_Customer_Insights,fe581650-cf61-4a09-8814-4bd77eca9cb5,Microsoft Dynamics 365 Customer Voice for Customer Insights -Dynamics 365 for Customer Service Enterprise Attach to Qualifying Dynamics 365 Base Offer A,D365_CUSTOMER_SERVICE_ENT_ATTACH,eb18b715-ea9d-4290-9994-2ebf4b5042d2,D365_CUSTOMER_SERVICE_ENT_ATTACH,61a2665f-1873-488c-9199-c3d0bc213fdf,Dynamics 365 for Customer Service Enterprise Attach -Dynamics 365 for Customer Service Enterprise Attach to Qualifying Dynamics 365 Base Offer A,D365_CUSTOMER_SERVICE_ENT_ATTACH,eb18b715-ea9d-4290-9994-2ebf4b5042d2,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 for Customer Service Enterprise Attach to Qualifying Dynamics 365 Base Offer A,D365_CUSTOMER_SERVICE_ENT_ATTACH,eb18b715-ea9d-4290-9994-2ebf4b5042d2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,dc6643d9-1e72-4dce-9f64-1d6eac1f1c5a,Dynamics 365 for Customer Service for Government -Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,Forms_Pro_Service_GCC,bb681a9b-58f5-42ee-9926-674325be8aaa,Microsoft Dynamics 365 Customer Voice for Customer Service Enterprise for GCC -Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government -Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government -Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government -Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial -Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,CCIBOTS_PRIVPREV_VIRAL,ce312d15-8fdf-44c0-9974-a25a177125ee,Dynamics 365 AI for Customer Service Virtual Agents Viral -Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,DYN365_CS_MESSAGING_VIRAL_TRIAL,3bf52bdf-5226-4a97-829e-5cca9b3f3392,Dynamics 365 Customer Service Digital Messaging vTrial -Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,DYN365_CS_ENTERPRISE_VIRAL_TRIAL,94fb67d3-465f-4d1f-a50a-952da079a564,Dynamics 365 Customer Service Enterprise vTrial -Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,DYNB365_CSI_VIRAL_TRIAL,33f1466e-63a6-464c-bf6a-d1787928a56a,Dynamics 365 Customer Service Insights vTrial -Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,DYN365_CS_VOICE_VIRAL_TRIAL,3de81e39-4ce1-47f7-a77f-8473d4eb6d7c,Dynamics 365 Customer Service Voice vTrial -Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,POWER_APPS_DYN365_VIRAL_TRIAL,54b37829-818e-4e3c-a08a-3ea66ab9b45d,Power Apps for Dynamics 365 vTrial -Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,POWER_AUTOMATE_DYN365_VIRAL_TRIAL,81d4ecb8-0481-42fb-8868-51536c5aceeb,Power Automate for Dynamics 365 vTrial -Dynamics 365 Customer Service Insights Trial,DYN365_AI_SERVICE_INSIGHTS,61e6bd70-fbdb-4deb-82ea-912842f39431,DYN365_AI_SERVICE_INSIGHTS,4ade5aa6-5959-4d2c-bf0a-f4c9e2cc00f2,Dynamics 365 AI for Customer Service Trial -Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,DYN365_CDS_FORMS_PRO,363430d1-e3f7-43bc-b07b-767b6bb95e4b,Common Data Service -Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,FORMS_PRO,17efdd9f-c22c-4ad8-b48e-3b1f3ee1dc9a,Dynamics 365 Customer Voice -Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) -Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,FLOW_FORMS_PRO,57a0746c-87b8-4405-9397-df365a9db793,Power Automate for Dynamics 365 Customer Voice -Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,DYN365_CUSTOMER_SERVICE_PRO,6929f657-b31b-4947-b4ce-5066c3214f54,Dynamics 365 for Customer Service Pro -Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web -Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,POWERAPPS_CUSTOMER_SERVICE_PRO,c507b04c-a905-4940-ada6-918891e6d3ad,Power Apps for Customer Service Pro -Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,FLOW_CUSTOMER_SERVICE_PRO,0368fc9c-3721-437f-8b7d-3d0f888cdefc,Power Automate for Customer Service Pro -Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials -Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Dynamics 365 for Customer Service Professional Attach to Qualifying Dynamics 365 Base Offer,D365_CUSTOMER_SERVICE_PRO_ATTACH,19dec69d-d9f3-4792-8a39-d8ecdf51937b,D365_CUSTOMER_SERVICE_PRO_ATTACH,a9dd2dca-10ae-4da2-aaf0-d3fe8a825110,Dynamics 365 for Customer Service Pro Attach -Dynamics 365 for Customer Service Professional Attach to Qualifying Dynamics 365 Base Offer,D365_CUSTOMER_SERVICE_PRO_ATTACH,19dec69d-d9f3-4792-8a39-d8ecdf51937b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Customer Voice,DYN365_CUSTOMER_VOICE_BASE,359ea3e6-8130-4a57-9f8f-ad897a0342f1,Customer_Voice_Base,296820fe-dce5-40f4-a4f2-e14b8feef383,Dynamics 365 Customer Voice Base Plan -Dynamics 365 Customer Voice,DYN365_CUSTOMER_VOICE_BASE,359ea3e6-8130-4a57-9f8f-ad897a0342f1,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Customer Voice Additional Responses,Forms_Pro_AddOn,446a86f8-a0cb-4095-83b3-d100eb050e3d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Customer Voice Additional Responses,Forms_Pro_AddOn,446a86f8-a0cb-4095-83b3-d100eb050e3d,Forms_Pro_AddOn,90a816f6-de5f-49fd-963c-df490d73b7b5,Microsoft Dynamics 365 Customer Voice Add-on -Dynamics 365 Customer Voice Additional Responses,DYN365_CUSTOMER_VOICE_ADDON,65f71586-ade3-4ce1-afc0-1b452eaf3782,CUSTOMER_VOICE_ADDON,e6e35e2d-2e7f-4e71-bc6f-2f40ed062f5d,Dynamics Customer Voice Add-On -Dynamics 365 Customer Voice Additional Responses,DYN365_CUSTOMER_VOICE_ADDON,65f71586-ade3-4ce1-afc0-1b452eaf3782,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Customer Voice USL,Forms_Pro_USL,e2ae107b-a571-426f-9367-6d4c8f1390ba,CDS_FORM_PRO_USL,e9830cfd-e65d-49dc-84fb-7d56b9aa2c89,Common Data Service -Dynamics 365 Customer Voice USL,Forms_Pro_USL,e2ae107b-a571-426f-9367-6d4c8f1390ba,Forms_Pro_USL,3ca0766a-643e-4304-af20-37f02726339b,Microsoft Dynamics 365 Customer Voice USL -Dynamics 365 Customer Voice USL,Forms_Pro_USL,e2ae107b-a571-426f-9367-6d4c8f1390ba,FLOW_FORMS_PRO,57a0746c-87b8-4405-9397-df365a9db793,Power Automate for Dynamics 365 Customer Voice -Dynamics 365 Enterprise Edition - Additional Database Storage for Government,CRMSTORAGE_GCC,4aed5dd6-eb9c-4143-8f14-368d70287121,CRMSTORAGE_GCC,62edd427-6067-4274-93c4-29afdeb30707,Microsoft Dynamics CRM Online Storage Add-On -Dynamics 365 Enterprise Edition - Additional Database Storage for Government,CRMSTORAGE_GCC,4aed5dd6-eb9c-4143-8f14-368d70287121,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Enterprise Edition - Additional Portal for Government,CRM_ONLINE_PORTAL_GCC,cb9bc974-a47b-4123-998d-a383390168cc,CRM_ONLINE_PORTAL_GCC,eac6b45b-aa89-429f-a37b-c8ce00e8367e,Microsoft Dynamics CRM Online - Portal Add-On -Dynamics 365 Enterprise Edition - Additional Portal for Government,CRM_ONLINE_PORTAL_GCC,cb9bc974-a47b-4123-998d-a383390168cc,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Enterprise Edition - Additional Portal for Government,CRM_ONLINE_PORTAL_NOPREREQ,67f58b51-af53-4344-9663-9a2beb1d8a8e,CRM_ONLINE_PORTAL_GCC,eac6b45b-aa89-429f-a37b-c8ce00e8367e,Microsoft Dynamics CRM Online - Portal Add-On -Dynamics 365 Enterprise Edition - Additional Portal for Government,CRM_ONLINE_PORTAL_NOPREREQ,67f58b51-af53-4344-9663-9a2beb1d8a8e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Enterprise Edition - Additional Portal (Qualified Offer),CRM_ONLINE_PORTAL,a4bfb28e-becc-41b0-a454-ac680dc258d3,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Enterprise Edition - Additional Portal (Qualified Offer),CRM_ONLINE_PORTAL,a4bfb28e-becc-41b0-a454-ac680dc258d3,CRM_ONLINE_PORTAL,1d4e9cb1-708d-449c-9f71-943aa8ed1d6a,Microsoft Dynamics CRM Online - Portal Add-On -Dynamics 365 Enterprise Edition - Additional Non-Production Instance for Government,CRMTESTINSTANCE_GCC,1d2756cb-2147-4b05-b4d5-f013c022dcb9,CRMTESTINSTANCE_GCC,6d99eb83-7b5f-4947-8e99-cc12f1adb399,Microsoft Dynamics CRM Online Additional Non-production Instance -Dynamics 365 Enterprise Edition - Additional Non-Production Instance for Government,CRMTESTINSTANCE_GCC,1d2756cb-2147-4b05-b4d5-f013c022dcb9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 - Additional Non-Production Instance for Government,CRMTESTINSTANCE_NOPREREQ,2cf302fe-62db-4e20-b573-e0998b1208b5,CRMTESTINSTANCE_GCC,6d99eb83-7b5f-4947-8e99-cc12f1adb399,Microsoft Dynamics CRM Online Additional Non-production Instance -Dynamics 365 - Additional Non-Production Instance for Government,CRMTESTINSTANCE_NOPREREQ,2cf302fe-62db-4e20-b573-e0998b1208b5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Enterprise Edition - Additional Production Instance for Government,CRMINSTANCE_GCC,2bd3cb20-1bb6-446b-b4d0-089af3a05c52,CRMINSTANCE_GCC,483cc331-f4df-4a3b-b8ca-fe1a247569f6,Microsoft Dynamics CRM Online Instance -Dynamics 365 Enterprise Edition - Additional Production Instance for Government,CRMINSTANCE_GCC,2bd3cb20-1bb6-446b-b4d0-089af3a05c52,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -"Dynamics 365 Field Service, Enterprise Edition - Resource Scheduling Optimization",CRM_AUTO_ROUTING_ADDON,977464c4-bfaf-4b67-b761-a9bb735a2196,CRM_AUTO_ROUTING_ENGINE_ADDON,24435e4b-87d0-4d7d-8beb-63a9b1573022,Field Service – Automated Routing Engine Add-On -"Dynamics 365 Field Service, Enterprise Edition - Resource Scheduling Optimization",CRM_AUTO_ROUTING_ADDON,977464c4-bfaf-4b67-b761-a9bb735a2196,CRM_AUTO_ROUTING_ADDON,2ba394e0-6f18-4b77-b45f-a5663bbab540,RETIRED - Field Service – Automated Routing Engine Add-On -"Dynamics 365 Field Service, Enterprise Edition - Resource Scheduling Optimization",CRM_AUTO_ROUTING_ADDON,977464c4-bfaf-4b67-b761-a9bb735a2196,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Field Service Contractor for Government,D365_FIELD_SERVICE_CONTRACTOR_GOV,e7965e3a-1f49-4d67-a3de-ad1ce460bbcc,CDS_FIELD_SERVICE_CONTRACTOR_GCC,2457fe40-65be-48a1-935f-924ad6e62dba,Common Data Service Field service Part Time Contractors for Government -Dynamics 365 Field Service Contractor for Government,D365_FIELD_SERVICE_CONTRACTOR_GOV,e7965e3a-1f49-4d67-a3de-ad1ce460bbcc,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Dynamics 365 Field Service Contractor for Government,D365_FIELD_SERVICE_CONTRACTOR_GOV,e7965e3a-1f49-4d67-a3de-ad1ce460bbcc,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government -Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial -Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,DYN365_FS_ENTERPRISE_VIRAL_TRIAL,20d1455b-72b2-4725-8354-a177845ab77d,Dynamics 365 Field Service Enterprise vTrial -Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,POWER_APPS_DYN365_VIRAL_TRIAL,54b37829-818e-4e3c-a08a-3ea66ab9b45d,Power Apps for Dynamics 365 vTrial -Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,POWER_AUTOMATE_DYN365_VIRAL_TRIAL,81d4ecb8-0481-42fb-8868-51536c5aceeb,Power Automate for Dynamics 365 vTrial -Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,DYN365_CDS_FINANCE,e95d7060-d4d9-400a-a2bd-a244bf0b609e,Common Data Service for Dynamics 365 Finance -Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,Dynamics 365 for Finance and Operations Enterprise edition - Regulatory Service -Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,D365_Finance,9f0e1b4e-9b33-4300-b451-b2c662cd4ff7,Microsoft Dynamics 365 for Finance -Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,CDS_AI_Capacity_FI,5d85ec34-44e5-43b6-a9aa-d1b4c1d3aa3b,AI Builder Capacity Add-on -Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,DYN365_CDS_FINANCE,e95d7060-d4d9-400a-a2bd-a244bf0b609e,Common Data Service for Dynamics 365 Finance -Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" -Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,D365_Finance_Attach,223e33cb-eee0-462d-b1bd-e9a5febf8e85,Dynamics 365 for Finance Attach -Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,D365_ProjectOperationsCDSAttach,e564d403-7eaf-4c91-b92f-bb0dc62026e1,Dynamics 365 Project Operations CDS Attach -Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,CDS_AI_Capacity_FI,5d85ec34-44e5-43b6-a9aa-d1b4c1d3aa3b,AI Builder Capacity Add-on -Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,D365_Finance_Attach,223e33cb-eee0-462d-b1bd-e9a5febf8e85,Dynamics 365 for Finance Attach -Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,D365_ProjectOperationsAttach,fa7675bd-6717-40e7-8172-d0bbcbe1ab12,Dynamics 365 Project Operations Attach -Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,PROJECT_FOR_PROJECT_OPERATIONS_ATTACH,6d8e07c6-9613-484f-8cc1-a66c5c3979bb,Project for Project Operations Attach -Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) -Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,DYN365_ENTERPRISE_CASE_MANAGEMENT,2822a3a1-9b8f-4432-8989-e11669a60dc8,Dynamics 365 for Case Management -Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,Retired - Microsoft Social Engagement -Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials -Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,79bb0a8d-e686-4e16-ac59-2b3fd0014a61,Dynamics 365 for Case Management for Government -"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government -"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government -"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government -"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,79bb0a8d-e686-4e16-ac59-2b3fd0014a61,Dynamics 365 for Case Management for Government -"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government -"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government -"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government -Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_CDS_RETAIL,93cc200d-a47f-4c56-aec1-83f8b0d0425a,Common Data Service for Dynamics 365 Retail -Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,FLOW_FOR_IOM_USL,9e6d1620-dce9-4655-8933-af8fa5bccc9c,Data Integration for IOM with Power Automate USL -Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,CDS_FOR_IOM,2bb89402-51e9-4c5a-be33-e954a9dd1ba6,Dataverse for IOM -Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_RETAIL,117e3aa0-8d08-4a19-a6a5-90b7a96e2128,Dynamics 365 Commerce -Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" -Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_FP_ACC_PROTECTION,4c00c16c-0304-4421-b598-555c3e78edcb,Dynamics 365 Fraud Protection - Account Protection -Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_FP_LOSS_PREVENTION,ecc62904-fa88-4552-a62c-fe582fb31444,Dynamics 365 Fraud Protection - Loss Prevention -Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_FP_PURCH_PROTECTION,d703990f-006e-459b-b8dd-1267c4533a22,Dynamics 365 Fraud Protection - Purchase Protection -Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_IOM,616cf6e2-f52f-4738-b463-10003061fcd3,Dynamics 365 Intelligent Order Management -Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_IOM_USER,81375e2f-5ef7-4773-96aa-e3279f50bd21,Dynamics 365 Intelligent Order Management USL -Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,DYN365_CC,2a9d72b3-1714-440f-babf-bf92bf9683d8,Dynamics 365 Contact Center -Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on -Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in -Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice -Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,DYN365_CC,2a9d72b3-1714-440f-babf-bf92bf9683d8,Dynamics 365 Contact Center -Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on -Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in -Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice -Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,DYN365_CC_DIGITAL,0ef2b4e3-0a2b-450d-8c5f-a52203c40f50,Dynamics 365 Contact Center Digital -Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on -Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,DYN365_CS_MESSAGING,43b076f2-1123-45ba-a339-2e170ee58c53,Dynamics 365 Customer Service Digital Messaging Application Integration -Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,DYN365_CC_DIGITAL,0ef2b4e3-0a2b-450d-8c5f-a52203c40f50,Dynamics 365 Contact Center Digital -Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on -Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,DYN365_CS_MESSAGING,43b076f2-1123-45ba-a339-2e170ee58c53,Dynamics 365 Customer Service Digital Messaging Application Integration -Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,DYN365_CC_VOICE,57517633-b4ad-4db8-8c1a-65f443424490,Dynamics 365 Contact Center Voice -Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in -Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice -Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,DYN365_CC_VOICE,57517633-b4ad-4db8-8c1a-65f443424490,Dynamics 365 Contact Center Voice -Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in -Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice -Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,DYN365_CS_CHAT_FPA,426ec19c-d5b1-4548-b894-6fe75028c30d,Dynamics 365 Customer Service Chat Application Integration -Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,DYN365_CS_CHAT,f69129db-6dc1-4107-855e-0aaebbcd9dd4,Dynamics 365 for Customer Service Chat -Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,POWER_VIRTUAL_AGENTS_D365_CS_CHAT,19e4c3a8-3ebe-455f-a294-4f3479873ae3,Power Virtual Agents for Chat -Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,D365_CSI_EMBED_CSEnterprise,5b1e5982-0e88-47bb-a95e-ae6085eda612,Dynamics 365 Customer Service Insights for CS Enterprise -Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,DYN365_ENTERPRISE_CUSTOMER_SERVICE,99340b49-fb81-4b1e-976b-8f2ae8e9394f,MICROSOFT SOCIAL ENGAGEMENT - SERVICE DISCONTINUATION -Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,Forms_Pro_Service,67bf4812-f90b-4db9-97e7-c0bbbf7b2d09,Microsoft Dynamics 365 Customer Voice for Customer Service Enterprise -Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,PROJECT ONLINE ESSENTIALS -Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,SHAREPOINT ONLINE (PLAN 2) -Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,FLOW FOR DYNAMICS 365 -Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,POWERAPPS FOR DYNAMICS 365 -Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,DYNAMICS 365 FOR CUSTOMER SERVICE -Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,dc6643d9-1e72-4dce-9f64-1d6eac1f1c5a,Dynamics 365 for Customer Service for Government -"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,Forms_Pro_Service_GCC,bb681a9b-58f5-42ee-9926-674325be8aaa,Microsoft Dynamics 365 Customer Voice for Customer Service Enterprise for GCC -"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government -"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government -"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government -Dynamics 365 for Field Service Attach to Qualifying Dynamics 365 Base Offer,D365_FIELD_SERVICE_ATTACH,a36cdaa2-a806-4b6e-9ae0-28dbd993c20e,D365_FIELD_SERVICE_ATTACH,55c9148b-d5f0-4101-b5a0-b2727cfc0916,Dynamics 365 for Field Service Attach -Dynamics 365 for Field Service Attach to Qualifying Dynamics 365 Base Offer,D365_FIELD_SERVICE_ATTACH,a36cdaa2-a806-4b6e-9ae0-28dbd993c20e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service -Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,Forms_Pro_FS,9c439259-63b0-46cc-a258-72be4313a42d,Microsoft Dynamics 365 Customer Voice for Field Service -Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,Retired - Microsoft Social Engagement -Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials -Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,a9a5be2d-17dd-4d43-ba78-9391e11d20a7,Dynamics 365 for Field Service for Government -Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,Forms_Pro_FS_GCC,638862ef-afb3-46e4-b292-ed0aad759476,Microsoft Dynamics 365 Customer Voice for Field Service for GCC -Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government -Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government -Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government -Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,a9a5be2d-17dd-4d43-ba78-9391e11d20a7,Dynamics 365 for Field Service for Government -Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,Forms_Pro_FS_GCC,638862ef-afb3-46e4-b292-ed0aad759476,Microsoft Dynamics 365 Customer Voice for Field Service for GCC -Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government -Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government -Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government -Dynamics 365 for Financials Business Edition,DYN365_FINANCIALS_BUSINESS_SKU,cc13a803-544e-4464-b4e4-6d6169a138fa,DYN365_FINANCIALS_BUSINESS,920656a2-7dd8-4c83-97b6-a356414dbd36,FLOW FOR DYNAMICS 365 -Dynamics 365 for Financials Business Edition,DYN365_FINANCIALS_BUSINESS_SKU,cc13a803-544e-4464-b4e4-6d6169a138fa,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,POWERAPPS FOR DYNAMICS 365 -Dynamics 365 for Financials Business Edition,DYN365_FINANCIALS_BUSINESS_SKU,cc13a803-544e-4464-b4e4-6d6169a138fa,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,DYNAMICS 365 FOR FINANCIALS -Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,D365_GUIDES_VIRAL_TRIAL,fe986032-d840-4817-82d4-51fe4fbbe163,Dynamics 365 Guides vTrial -Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,Common Data Service -Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,POWER_APPS_DYN365_VIRAL_TRIAL_MIXED_REALITY,066e2fd1-ba15-40e7-aa96-d6636b1cdf71,Power Apps for Dynamics 365 Mixed Reality -Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,POWER_AUTOMATE_DYN365_VIRAL_TRIAL_MIXED_REALITY,26fa8a18-2812-4b3d-96b4-864818ce26be,Power Automate for Dynamics 365 Mixed Reality -Dynamics 365 Hybrid Connector,CRM_HYBRIDCONNECTOR,de176c31-616d-4eae-829a-718918d7ec23,CRM_HYBRIDCONNECTOR,0210d5c8-49d2-4dd1-a01b-a91c7c14e0bf,CRM Hybrid Connector -Dynamics 365 Hybrid Connector,CRM_HYBRIDCONNECTOR,de176c31-616d-4eae-829a-718918d7ec23,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Marketing Additional Application,DYN365_MARKETING_APPLICATION_ADDON,99c5688b-6c75-4496-876f-07f0fbd69add,DYN365_MARKETING_APPLICATION_ADDON,51cf0638-4861-40c0-8b20-1161ab2f80be,Dynamics 365 for Marketing Additional Application -Dynamics 365 for Marketing Additional Application,DYN365_MARKETING_APPLICATION_ADDON,99c5688b-6c75-4496-876f-07f0fbd69add,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Marketing Addnl Contacts Tier 3,DYN365_MARKETING_CONTACT_ADDON_T3,23053933-0fda-431f-9a5b-a00fd78444c1,DYN365_MARKETING_50K_CONTACT_ADDON,e626a4ec-1ba2-409e-bf75-9bc0bc30cca7,Dynamics 365 for Marketing 50K Addnl Contacts -Dynamics 365 for Marketing Addnl Contacts Tier 3,DYN365_MARKETING_CONTACT_ADDON_T3,23053933-0fda-431f-9a5b-a00fd78444c1,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Marketing Addnl Contacts Tier 5,DYN365_MARKETING_CONTACT_ADDON_T5,d8eec316-778c-4f14-a7d1-a0aca433b4e7,DYN365_MARKETING_50K_CONTACT_ADDON,e626a4ec-1ba2-409e-bf75-9bc0bc30cca7,Dynamics 365 for Marketing 50K Addnl Contacts -Dynamics 365 for Marketing Addnl Contacts Tier 5,DYN365_MARKETING_CONTACT_ADDON_T5,d8eec316-778c-4f14-a7d1-a0aca433b4e7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Marketing Additional Non-Prod Application,DYN365_MARKETING_SANDBOX_APPLICATION_ADDON,c393e9bd-2335-4b46-8b88-9e2a86a85ec1,DYN365_MARKETING_SANDBOX_APPLICATION_ADDON,1599de10-5250-4c95-acf2-491f74edce48,Dynamics 365 Marketing Sandbox Application AddOn -Dynamics 365 for Marketing Attach,DYN365_MARKETING_APP_ATTACH,85430fb9-02e8-48be-9d7e-328beb41fa29,DYN365_MARKETING_APP,a3a4fa10-5092-401a-af30-0462a95a7ac8,Dynamics 365 for Marketing -Dynamics 365 for Marketing Attach,DYN365_MARKETING_APP_ATTACH,85430fb9-02e8-48be-9d7e-328beb41fa29,Forms_Pro_Marketing_App,22b657cf-0a9e-467b-8a91-5e31f21bc570,Microsoft Dynamics 365 Customer Voice for Marketing Application -Dynamics 365 for Marketing Attach,DYN365_MARKETING_APP_ATTACH,85430fb9-02e8-48be-9d7e-328beb41fa29,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Marketing USL,D365_MARKETING_USER,4b32a493-9a67-4649-8eb9-9fc5a5f75c12,DYN365_MARKETING_MSE_USER,2824c69a-1ac5-4397-8592-eae51cb8b581,Dynamics 365 for Marketing MSE User -Dynamics 365 for Marketing USL,D365_MARKETING_USER,4b32a493-9a67-4649-8eb9-9fc5a5f75c12,DYN365_MARKETING_USER,5d7a6abc-eebd-46ab-96e1-e4a2f54a2248,Dynamics 365 for Marketing USL -Dynamics 365 for Marketing USL,D365_MARKETING_USER,4b32a493-9a67-4649-8eb9-9fc5a5f75c12,Forms_Pro_Marketing,76366ba0-d230-47aa-8087-b6d55dae454f,Microsoft Dynamics 365 Customer Voice for Marketing -Dynamics 365 for Marketing USL,D365_MARKETING_USER,4b32a493-9a67-4649-8eb9-9fc5a5f75c12,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,D365_CSI_EMBED_CSEnterprise,5b1e5982-0e88-47bb-a95e-ae6085eda612,Dynamics 365 Customer Service Insights for CS Enterprise -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_ENTERPRISE_CUSTOMER_SERVICE,99340b49-fb81-4b1e-976b-8f2ae8e9394f,Dynamics 365 for Customer Service -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_MARKETING_APP,a3a4fa10-5092-401a-af30-0462a95a7ac8,Dynamics 365 for Marketing -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_ENTERPRISE_SALES,2da8e897-7791-486b-b08f-cc63c8129df7,Dynamics 365 for Sales -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,Forms_Pro_FS,9c439259-63b0-46cc-a258-72be4313a42d,Microsoft Dynamics 365 Customer Voice for Field Service -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,Forms_Pro_SalesEnt,8839ef0e-91f1-4085-b485-62e06e7c7987,Microsoft Dynamics 365 Customer Voice for Sales Enterprise -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING,2d2f174c-c3cc-4abe-9ce8-4dd86f469ab1,Power Virtual Agents for Digital Messaging -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Dynamics 365 Remote Assist -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,DYN365_RETAIL_Activity,f06754ec-6d72-4bf6-991c-4cb5413d9932,Dynamics 365 for Retail Activity -Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,DYN365_Enterprise_Talent_Attract_Activity,aac5a56b-b02e-4608-8014-b076646d4011,Dynamics 365 for Talent - Attract Experience Activity -Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,DYN365_Enterprise_Talent_Onboard_Activity,db225597-e9c2-4d96-8ace-5424744c80f8,Dynamics 365 for Talent - Onboard Experience -Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,Dynamics_365_for_Talent_Activity,1f87ee90-5c3a-4cf9-b6fd-e3e8017c26ec,Dynamics 365 for Talent Activity -Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,Dynamics_365_for_Operations_Activity,6bddf93e-d6f4-4991-b9fc-30cfdf07ee7b,Dynamics365 for Operations Activity -Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,D365CDSforProjectOperations,7df1d500-ca5c-4229-8cea-815bc88798c9,Common Data Service for Dynamics 365 Project Operations -Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,D365_ProjectOperationsCDSAttach,e564d403-7eaf-4c91-b92f-bb0dc62026e1,Dynamics 365 Project Operations CDS Attach -Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,D365_ProjectOperations,69f07c66-bee4-4222-b051-195095efee5b,Dynamics 365 Project Operations -Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,D365_ProjectOperationsAttach,fa7675bd-6717-40e7-8172-d0bbcbe1ab12,Dynamics 365 Project Operations Attach -Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,PROJECT_FOR_PROJECT_OPERATIONS_ATTACH,6d8e07c6-9613-484f-8cc1-a66c5c3979bb,Project for Project Operations Attach -Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) -Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1d8c8e0e-4308-4db5-8a41-b129dbdaea20,Dynamics 365 for Project Service Automation for Government -Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,Forms_Pro_PS_GCC,e98256c5-17d0-4987-becc-e991c52d55c6,Microsoft Dynamics 365 Customer Voice for Project Service Automation for GCC -Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client -Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government -Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government -Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government -Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1d8c8e0e-4308-4db5-8a41-b129dbdaea20,Dynamics 365 for Project Service Automation for Government -Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,Forms_Pro_PS_GCC,e98256c5-17d0-4987-becc-e991c52d55c6,Microsoft Dynamics 365 Customer Voice for Project Service Automation for GCC -Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client -Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government -Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government -Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government -Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,DYN365_ENTERPRISE_P1,d56f3deb-50d8-465a-bedb-f079817ccac1,DYNAMICS 365 CUSTOMER ENGAGEMENT PLAN -Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 -Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,MICROSOFT SOCIAL ENGAGEMENT - SERVICE DISCONTINUATION -Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 -Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,PROJECT ONLINE ESSENTIALS -Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) -Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,DYN365_ENTERPRISE_SALES,2da8e897-7791-486b-b08f-cc63c8129df7,DYNAMICS 365 FOR SALES -Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 -Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,MICROSOFT SOCIAL ENGAGEMENT - SERVICE DISCONTINUATION -Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 -Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,PROJECT ONLINE ESSENTIALS -Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) -Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,DYN365_ENTERPRISE_SALES_GOV,213be507-d547-4f79-bc2c-6196bc54c4a3,Dynamics 365 for Sales for Government -"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government -"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government -"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government -Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,DYN365_ENTERPRISE_SALES_GOV,213be507-d547-4f79-bc2c-6196bc54c4a3,Dynamics 365 for Sales for Government -Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,Forms_Pro_SalesEnt_GCC,33850b82-0a37-4ebb-a0b2-ee163facd716,Microsoft Dynamics 365 Customer Voice for Sales Enterprise for GCC -Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,Microsoft_Viva_Sales_PremiumTrial,8ba1ff15-7bf6-4620-b65c-ecedb6942766,Microsoft Viva Sales Premium & Trial -Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,Microsoft_Viva_Sales_PowerAutomate,a933a62f-c3fb-48e5-a0b7-ac92b94b4420,Microsoft Viva Sales Premium with Power Automate -Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government -Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government -Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government -"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,DYN365_ENTERPRISE_P1,d56f3deb-50d8-465a-bedb-f079817ccac1,Dynamics 365 Customer Engagement Plan -"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,Forms_Pro_Service,67bf4812-f90b-4db9-97e7-c0bbbf7b2d09,Microsoft Dynamics 365 Customer Voice for Customer Service Enterprise -"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials -Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,DYN365_SALES_INSIGHTS,fedc185f-0711-4cc0-80ed-0a92da1a8384,Dynamics 365 AI for Sales (Embedded) -Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials -Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,Microsoft_Viva_Sales_PowerAutomate,a933a62f-c3fb-48e5-a0b7-ac92b94b4420,Microsoft Viva Sales Premium with Power Automate -Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,Microsoft_Viva_Sales_PremiumTrial,8ba1ff15-7bf6-4620-b65c-ecedb6942766,Microsoft Viva Sales Premium & Trial -Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,Forms_Pro_SalesEnt,8839ef0e-91f1-4085-b485-62e06e7c7987,Microsoft Dynamics 365 Customer Voice for Sales Enterprise -Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,DYN365_ENTERPRISE_SALES,2da8e897-7791-486b-b08f-cc63c8129df7,Dynamics 365 for Sales -Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,DYN365_CDS_SUPPLYCHAINMANAGEMENT,b6a8b974-2956-4e14-ae81-f0384c363528,Common Data Service for Dynamics 365 Supply Chain Management -Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,CDS_FOR_IOM,2bb89402-51e9-4c5a-be33-e954a9dd1ba6,Dataverse for IOM -Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" -Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,D365_SCM_Attach,b21c777f-c2d5-486e-88f6-fc0a3e474271,Dynamics 365 for Supply Chain Management Attach -Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Marketing Business Edition,DYN365_BUSINESS_MARKETING,238e2f8d-e429-4035-94db-6926be4ffe7b,DYN365_BUSINESS_Marketing,393a0c96-9ba1-4af0-8975-fa2f853a25ac,Dynamics 365 Marketing -Dynamics 365 for Marketing Business Edition,DYN365_BUSINESS_MARKETING,238e2f8d-e429-4035-94db-6926be4ffe7b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Regulatory Service - Enterprise Edition Trial,DYN365_REGULATORY_SERVICE,7ed4877c-0863-4f69-9187-245487128d4f,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,Dynamics 365 for Finance and Operations Enterprise edition - Regulatory Service -Dynamics 365 Regulatory Service - Enterprise Edition Trial,DYN365_REGULATORY_SERVICE,7ed4877c-0863-4f69-9187-245487128d4f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial -Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,DYN365_SALES_ENTERPRISE_VIRAL_TRIAL,7f636c80-0961-41b2-94da-9642ccf02de0,Dynamics 365 Sales Enterprise vTrial -Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,DYN365_SALES_INSIGHTS_VIRAL_TRIAL,456747c0-cf1e-4b0d-940f-703a01b964cc,Dynamics 365 Sales Insights vTrial -Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,POWER_APPS_DYN365_VIRAL_TRIAL,54b37829-818e-4e3c-a08a-3ea66ab9b45d,Power Apps for Dynamics 365 vTrial -Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,POWER_AUTOMATE_DYN365_VIRAL_TRIAL,81d4ecb8-0481-42fb-8868-51536c5aceeb,Power Automate for Dynamics 365 vTrial -Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,DYN365_SALES_PRO,88d83950-ff78-4e85-aa66-abfc787f8090,Dynamics 365 for Sales Professional -Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,POWERAPPS_SALES_PRO,6f9f70ce-138d-49f8-bb8b-2e701b7dde75,Power Apps for Sales Pro -Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,PROJECT_ESSENTIALS,f944d685-f762-4371-806d-a1f48e5bea13,Project Online Essentials -Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2)Dynamics 365 for Sales Pro Attach -Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,DYN365_SALES_PRO_GOV,dd89efa0-5a55-4892-ba30-82e3f8008339,Dynamics 365 for Sales Professional for Government -Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,POWERAPPS_SALES_PRO_GOV,12cf31f8-754f-4efe-87a8-167c19e30831,Power Apps for Sales Pro for Government -Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,FLOW_SALES_PRO_GOV,e62ffe5b-7612-441f-a72d-c11cf456d33a,Power Automate for Sales Pro for Government -Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government -Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Dynamics 365 For Sales Professional Trial,D365_SALES_PRO_IW,9c7bff7a-3715-4da7-88d3-07f57f8d0fb6,D365_SALES_PRO_IW,73f205fc-6b15-47a5-967e-9e64fdf72d0a,Dynamics 365 for Sales Professional Trial -Dynamics 365 For Sales Professional Trial,D365_SALES_PRO_IW,9c7bff7a-3715-4da7-88d3-07f57f8d0fb6,D365_SALES_PRO_IW_Trial,db39a47e-1f4f-462b-bf5b-2ec471fb7b88,Dynamics 365 for Sales Professional Trial -Dynamics 365 Sales Professional Attach to Qualifying Dynamics 365 Base Offer,D365_SALES_PRO_ATTACH,245e6bf9-411e-481e-8611-5c08595e2988,D365_SALES_PRO_ATTACH,065f3c64-0649-4ec7-9f47-ef5cf134c751,Dynamics 365 for Sales Pro Attach -Dynamics 365 Sales Professional Attach to Qualifying Dynamics 365 Base Offer,D365_SALES_PRO_ATTACH,245e6bf9-411e-481e-8611-5c08595e2988,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,DYN365_CDS_SUPPLYCHAINMANAGEMENT,b6a8b974-2956-4e14-ae81-f0384c363528,COMMON DATA SERVICE FOR DYNAMICS 365 SUPPLY CHAIN MANAGEMENT -Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,DYNAMICS 365 FOR FINANCE AND OPERATIONS ENTERPRISE EDITION - REGULATORY SERVICE -Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,D365_SCM,1224eae4-0d91-474a-8a52-27ec96a63fe7,DYNAMICS 365 FOR SUPPLY CHAIN MANAGEMENT -Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 -Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 -Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,DYN365_CDS_SUPPLYCHAINMANAGEMENT,b6a8b974-2956-4e14-ae81-f0384c363528,Common Data Service for Dynamics 365 Supply Chain Management -Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,FLOW_FOR_IOM_USL,9e6d1620-dce9-4655-8933-af8fa5bccc9c,Data Integration for IOM with Power Automate USL -Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,CDS_FOR_IOM,2bb89402-51e9-4c5a-be33-e954a9dd1ba6,Dataverse for IOM -Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,D365_DemandPlanning,e8b616eb-1a6d-42b4-84c7-b63870791349,DO NOT USE - Dynamics 365 Supply Chain Management Premium -Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" -Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,D365_SCM,1224eae4-0d91-474a-8a52-27ec96a63fe7,Dynamics 365 for Supply Chain Management -Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,DYN365_IOM,616cf6e2-f52f-4738-b463-10003061fcd3,Dynamics 365 Intelligent Order Management -Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,DYN365_IOM_USER,81375e2f-5ef7-4773-96aa-e3279f50bd21,Dynamics 365 Intelligent Order Management USL -Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,D365_SCM_Premium,0363c8e5-c30d-4d7c-a621-7b6cab5e0482,Dynamics 365 Supply Chain Management Premium -Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,DYN365_CDS_DYN_APPS,2d925ad8-2479-4bd8-bb76-5b80f1d48935,Common Data Service -Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,Dynamics_365_Hiring_Free_PLAN,f815ac79-c5dd-4bcc-9b78-d97f7b817d0d,Dynamics 365 for Talent: Attract -Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,Dynamics_365_Onboarding_Free_PLAN,300b8114-8555-4313-b861-0c115d820f50,Dynamics 365 for Talent: Onboard -Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,Dynamics_365_for_HCM_Trial,5ed38b64-c3b7-4d9f-b1cd-0de18c9c4331,Dynamics 365 for HCM Trial -Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Flow for Dynamics 365 -Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,PowerApps for Dynamics 365 -Dynamics 365 Talent: Attract,Dynamics_365_Hiring_SKU,e561871f-74fa-4f02-abee-5b0ef54dd36d,DYN365_CDS_DYN_APPS,2d925ad8-2479-4bd8-bb76-5b80f1d48935,Common Data Service -Dynamics 365 Talent: Attract,Dynamics_365_Hiring_SKU,e561871f-74fa-4f02-abee-5b0ef54dd36d,Dynamics_365_Hiring_Free_PLAN,f815ac79-c5dd-4bcc-9b78-d97f7b817d0d,Dynamics 365 for Talent: Attract -Dynamics 365 Talent: Attract,Dynamics_365_Hiring_SKU,e561871f-74fa-4f02-abee-5b0ef54dd36d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,Dynamics_365_for_Retail_Team_members,c0454a3d-32b5-4740-b090-78c32f48f0ad,Dynamics 365 for Retail Team members -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYN365_Enterprise_Talent_Attract_TeamMember,643d201a-9884-45be-962a-06ba97062e5e,Dynamics 365 for Talent - Attract Experience Team Member -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYN365_Enterprise_Talent_Onboard_TeamMember,f2f49eef-4b3f-4853-809a-a055c6103fe0,Dynamics 365 for Talent - Onboard Experience -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,Dynamics_365_for_Talent_Team_members,d5156635-0704-4f66-8803-93258f8b2678,Dynamics 365 for Talent Team members -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYN365_ENTERPRISE_TEAM_MEMBERS,6a54b05e-4fab-40e7-9828-428db3b336fa,Dynamics 365 for Team Members -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,Dynamics_365_for_Operations_Team_members,f5aa7b45-8a36-4cd1-bc37-5d06dea98645,Dynamics_365_for_Operations_Team_members -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Dynamics 365 Remote Assist -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,POWERAPPS_DYN_TEAM,52e619e2-2730-439a-b0d3-d09ab7e8b705,Power Apps for Dynamics 365 -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,FLOW_DYN_TEAM,1ec58c70-f69c-486a-8109-4b87ce86e449,Power Automate for Dynamics 365 -Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,5a94d0aa-ee95-455a-bb38-326e5f134478,Dynamics 365 for Team Members for Government -Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government -Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,FLOW_DYN_TEAM_GOV,47bdde6a-959f-4c7f-8d59-3243e34f1cb3,Power Automate for Dynamics 365 Team Members for Government -Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government -Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,POWERAPPS_DYN_TEAM_GOV,63efc247-5f28-43e3-a2f8-00c183e3f1db,PowerApps for Dynamics 365 Team Members for Government -Dynamics 365 Guides,GUIDES_USER,0a389a77-9850-4dc4-b600-bc66fdfefc60,DYN365_CDS_GUIDES,1315ade1-0410-450d-b8e3-8050e6da320f,Common Data Service -Dynamics 365 Guides,GUIDES_USER,0a389a77-9850-4dc4-b600-bc66fdfefc60,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides -Dynamics 365 Guides,GUIDES_USER,0a389a77-9850-4dc4-b600-bc66fdfefc60,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides -Dynamics 365 Operations - Device,Dynamics_365_for_Operations_Devices,3bbd44ed-8a70-4c07-9088-6232ddbd5ddd,DYN365_RETAIL_DEVICE,ceb28005-d758-4df7-bb97-87a617b93d6c,Dynamics 365 for Retail Device -Dynamics 365 Operations - Device,Dynamics_365_for_Operations_Devices,3bbd44ed-8a70-4c07-9088-6232ddbd5ddd,Dynamics_365_for_OperationsDevices,2c9fb43e-915a-4d61-b6ca-058ece89fd66,Dynamics 365 for Operations Devices -Dynamics 365 Operations - Device,Dynamics_365_for_Operations_Devices,3bbd44ed-8a70-4c07-9088-6232ddbd5ddd,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Operations - Sandbox Tier 2:Standard Acceptance Testing,Dynamics_365_for_Operations_Sandbox_Tier2_SKU,e485d696-4c87-4aac-bf4a-91b2fb6f0fa7,Dynamics_365_for_Operations_Sandbox_Tier2,d8ba6fb2-c6b1-4f07-b7c8-5f2745e36b54,Dynamics 365 for Operations non-production multi-box instance for standard acceptance testing (Tier 2) -Dynamics 365 Operations - Sandbox Tier 2:Standard Acceptance Testing,Dynamics_365_for_Operations_Sandbox_Tier2_SKU,e485d696-4c87-4aac-bf4a-91b2fb6f0fa7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Operations - Sandbox Tier 4:Standard Performance Testing,Dynamics_365_for_Operations_Sandbox_Tier4_SKU,f7ad4bca-7221-452c-bdb6-3e6089f25e06,Dynamics_365_for_Operations_Sandbox_Tier4,f6b5efb1-1813-426f-96d0-9b4f7438714f,Dynamics 365 for Operations Enterprise Edition - Sandbox Tier 4:Standard Performance Testing -Dynamics 365 Operations - Sandbox Tier 4:Standard Performance Testing,Dynamics_365_for_Operations_Sandbox_Tier4_SKU,f7ad4bca-7221-452c-bdb6-3e6089f25e06,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 P1 Tria for Information Workers,DYN365_ENTERPRISE_P1_IW,338148b6-1b11-4102-afb9-f92b6cdc0f8d,DYN365_ENTERPRISE_P1_IW,056a5f80-b4e0-4983-a8be-7ad254a113c9,DYNAMICS 365 P1 TRIAL FOR INFORMATION WORKERS -Dynamics 365 P1 Tria for Information Workers,DYN365_ENTERPRISE_P1_IW,338148b6-1b11-4102-afb9-f92b6cdc0f8d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,D365CDSforProjectOperations,7df1d500-ca5c-4229-8cea-815bc88798c9,Common Data Service for Dynamics 365 Project Operations -Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,D365_ProjectOperationsCDS,18fa3aba-b085-4105-87d7-55617b8585e6,Dynamics 365 Project Operations CDS -Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" -Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,D365_ProjectOperations,69f07c66-bee4-4222-b051-195095efee5b,Dynamics 365 Project Operations -Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,PROJECT_FOR_PROJECT_OPERATIONS,0a05d977-a21a-45b2-91ce-61c240dbafa2,Project for Project Operations -Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) -Dynamics 365 Remote Assist,MICROSOFT_REMOTE_ASSIST,7a551360-26c4-4f61-84e6-ef715673e083,CDS_REMOTE_ASSIST,0850ebb5-64ee-4d3a-a3e1-5a97213653b5,Common Data Service for Remote Assist -Dynamics 365 Remote Assist,MICROSOFT_REMOTE_ASSIST,7a551360-26c4-4f61-84e6-ef715673e083,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Microsoft Remote Assist -Dynamics 365 Remote Assist,MICROSOFT_REMOTE_ASSIST,7a551360-26c4-4f61-84e6-ef715673e083,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Dynamics 365 Remote Assist HoloLens,MICROSOFT_REMOTE_ASSIST_HOLOLENS,e48328a2-8e98-4484-a70f-a99f8ac9ec89,CDS_REMOTE_ASSIST,0850ebb5-64ee-4d3a-a3e1-5a97213653b5,Common Data Service for Remote Assist -Dynamics 365 Remote Assist HoloLens,MICROSOFT_REMOTE_ASSIST_HOLOLENS,e48328a2-8e98-4484-a70f-a99f8ac9ec89,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Microsoft Remote Assist -Dynamics 365 Remote Assist HoloLens,MICROSOFT_REMOTE_ASSIST_HOLOLENS,e48328a2-8e98-4484-a70f-a99f8ac9ec89,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Dynamics 365 Sales Enterprise Attach to Qualifying Dynamics 365 Base Offer,D365_SALES_ENT_ATTACH,5b22585d-1b71-4c6b-b6ec-160b1a9c2323,D365_SALES_ENT_ATTACH,3ae52229-572e-414f-937c-ff35a87d4f29,Dynamics 365 for Sales Enterprise Attach -Dynamics 365 Sales Enterprise Attach to Qualifying Dynamics 365 Base Offer,D365_SALES_ENT_ATTACH,5b22585d-1b71-4c6b-b6ec-160b1a9c2323,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Talent: Onboard,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,DYN365_CDS_DYN_APPS,2d925ad8-2479-4bd8-bb76-5b80f1d48935,COMMON DATA SERVICE -Dynamics 365 Talent: Onboard,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,Dynamics_365_Onboarding_Free_PLAN,300b8114-8555-4313-b861-0c115d820f50,DYNAMICS 365 FOR TALENT: ONBOARD -Dynamics 365 Talent: Onboard,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,Dynamics_365_Talent_Onboard,048a552e-c849-4027-b54c-4c7ead26150a,DYNAMICS 365 FOR TALENT: ONBOARD -Dynamics 365 Talent: Onboard,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,Dynamics_365_for_Retail_Team_members,c0454a3d-32b5-4740-b090-78c32f48f0ad,Dynamics 365 for Retail Team members -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYN365_Enterprise_Talent_Attract_TeamMember,643d201a-9884-45be-962a-06ba97062e5e,Dynamics 365 for Talent - Attract Experience Team Member -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYN365_Enterprise_Talent_Onboard_TeamMember,f2f49eef-4b3f-4853-809a-a055c6103fe0,Dynamics 365 for Talent - Onboard Experience -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,Dynamics_365_for_Talent_Team_members,d5156635-0704-4f66-8803-93258f8b2678,Dynamics 365 for Talent Team members -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYN365_TEAM_MEMBERS,4092fdb5-8d81-41d3-be76-aaba4074530b,Dynamics 365 Team Members -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,Dynamics_365_for_Operations_Team_members,f5aa7b45-8a36-4cd1-bc37-5d06dea98645,Dynamics_365_for_Operations_Team_members -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Dynamics 365 Remote Assist -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,POWERAPPS_DYN_TEAM,52e619e2-2730-439a-b0d3-d09ab7e8b705,Power Apps for Dynamics 365 -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,FLOW_DYN_TEAM,1ec58c70-f69c-486a-8109-4b87ce86e449,Power Automate for Dynamics 365 -Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,DDYN365_CDS_DYN_P2,d1142cfd-872e-4e77-b6ff-d98ec5a51f66,COMMON DATA SERVICE -Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,DYN365_TALENT_ENTERPRISE,65a1ebf4-6732-4f00-9dcb-3d115ffdeecd,DYNAMICS 365 FOR TALENT -Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,Dynamics_365_for_Operations,95d2cd7b-1007-484b-8595-5e97e63fe189,DYNAMICS 365 FOR_OPERATIONS -Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,Dynamics_365_for_Retail,a9e39199-8369-444b-89c1-5fe65ec45665,DYNAMICS 365 FOR RETAIL -Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,DYNAMICS_365_HIRING_FREE_PLAN,f815ac79-c5dd-4bcc-9b78-d97f7b817d0d,DYNAMICS 365 HIRING FREE PLAN -Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,Dynamics_365_Onboarding_Free_PLAN,300b8114-8555-4313-b861-0c115d820f50,DYNAMICS 365 FOR TALENT: ONBOARD -Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,FLOW_DYN_P2,b650d915-9886-424b-a08d-633cede56f57,FLOW FOR DYNAMICS 36 -Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,POWERAPPS_DYN_P2,0b03f40b-c404-40c3-8651-2aceb74365fa,POWERAPPS FOR DYNAMICS 365 -Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,AAD_EDU,3a3976ce-de18-4a87-a78e-5e9245e252df,Microsoft Entra ID for Education -Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education -Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,WINDOWS_STORE,a420f25f-a7b3-4ff5-a9d0-5d58f73b537d,Windows Store Service -Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,AZURE INFORMATION PROTECTION PREMIUM P1 -Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,CLOUD APP SECURITY DISCOVERY -Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra RIGHTS -Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION -Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE -Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,AZURE INFORMATION PROTECTION PREMIUM P1 -Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,AZURE INFORMATION PROTECTION PREMIUM P2 -Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra RIGHTS -Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION -Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,MICROSOFT CLOUD APP SECURITY -Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,MICROSOFT DEFENDER FOR IDENTITY -Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE -Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Cloud App Security Discovery -Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra Rights -Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,RMS_S_ENTERPRISE),bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra Rights -Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security -Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Exchange Enterprise CAL Services (EOP DLP),EOP_ENTERPRISE_PREMIUM,e8ecdf70-47a8-4d39-9d15-093624b7f640,EOP_ENTERPRISE_PREMIUM,75badc48-628e-4446-8460-41344d73abd6,Exchange Enterprise CAL Services (EOP DLP) -Exchange Enterprise CAL Services (EOP DLP),EOP_ENTERPRISE_PREMIUM,e8ecdf70-47a8-4d39-9d15-093624b7f640,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra Rights -Exchange Online (Plan 1),EXCHANGESTANDARD,4b9405b0-7788-4568-add1-99614e613b69,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Exchange Online (Plan 1),EXCHANGESTANDARD,4b9405b0-7788-4568-add1-99614e613b69,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Exchange Online (Plan 1),EXCHANGESTANDARD,4b9405b0-7788-4568-add1-99614e613b69,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Exchange Online (Plan 1) for Alumni with Yammer,EXCHANGESTANDARD_ALUMNI,aa0f9eb7-eff2-4943-8424-226fb137fcad,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Exchange Online (Plan 1) for Alumni with Yammer,EXCHANGESTANDARD_ALUMNI,aa0f9eb7-eff2-4943-8424-226fb137fcad,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Exchange Online (Plan 1) for Alumni with Yammer,EXCHANGESTANDARD_ALUMNI,aa0f9eb7-eff2-4943-8424-226fb137fcad,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Exchange Online (Plan 1) for Students,EXCHANGESTANDARD_STUDENT,ad2fe44a-915d-4e2b-ade1-6766d50a9d9c,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Exchange Online (Plan 1) for Students,EXCHANGESTANDARD_STUDENT,ad2fe44a-915d-4e2b-ade1-6766d50a9d9c,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Exchange Online (Plan 1) for Students,EXCHANGESTANDARD_STUDENT,ad2fe44a-915d-4e2b-ade1-6766d50a9d9c,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Exchange Online (Plan 1) for Students,EXCHANGESTANDARD_STUDENT,ad2fe44a-915d-4e2b-ade1-6766d50a9d9c,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service -Exchange Online (Plan 1) for GCC,EXCHANGESTANDARD_GOV,f37d5ebf-4bf1-4aa2-8fa3-50c51059e983,EXCHANGE_S_STANDARD_GOV,e9b4930a-925f-45e2-ac2a-3f7788ca6fdd,Exchange Online (Plan 1) for Government -Exchange Online (Plan 1) for GCC,EXCHANGESTANDARD_GOV,f37d5ebf-4bf1-4aa2-8fa3-50c51059e983,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Exchange Online (Plan 2) for GCC,EXCHANGEENTERPRISE_GOV,7be8dc28-4da4-4e6d-b9b9-c60f2806df8a,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government -Exchange Online (Plan 2) for GCC,EXCHANGEENTERPRISE_GOV,7be8dc28-4da4-4e6d-b9b9-c60f2806df8a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Exchange Online (Plan 2),EXCHANGEENTERPRISE,19ec0d23-8335-4cbd-94ac-6050e30712fa,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,EXCHANGE ONLINE (PLAN 2) -Exchange Online (Plan 2) for Faculty,EXCHANGEENTERPRISE_FACULTY,0b7b15a8-7fd2-4964-bb96-5a566d4e3c15,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Exchange Online (Plan 2) for Faculty,EXCHANGEENTERPRISE_FACULTY,0b7b15a8-7fd2-4964-bb96-5a566d4e3c15,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Exchange Online (Plan 2) for Faculty,EXCHANGEENTERPRISE_FACULTY,0b7b15a8-7fd2-4964-bb96-5a566d4e3c15,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Exchange Online (Plan 2) for Faculty,EXCHANGEENTERPRISE_FACULTY,0b7b15a8-7fd2-4964-bb96-5a566d4e3c15,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service -Exchange Online Archiving for Exchange Online,EXCHANGEARCHIVE_ADDON,ee02fd1b-340e-4a4b-b355-4a514e4c8943,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,EXCHANGE ONLINE ARCHIVING FOR EXCHANGE ONLINE -Exchange Online Archiving for Exchange Server,EXCHANGEARCHIVE,90b5e015-709a-4b8b-b08e-3200f994494c,EXCHANGE_S_ARCHIVE,da040e0a-b393-4bea-bb76-928b3fa1cf5a,EXCHANGE ONLINE ARCHIVING FOR EXCHANGE SERVER -Exchange Online Essentials (ExO P1 Based),EXCHANGEESSENTIALS,7fc0182e-d107-4556-8329-7caaa511197b,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) -Exchange Online Essentials,EXCHANGE_S_ESSENTIALS,e8f81a67-bd96-4074-b108-cf193eb9433b,EXCHANGE_S_ESSENTIALS,1126bef5-da20-4f07-b45e-ad25d2581aa8,EXCHANGE ESSENTIALS -Exchange Online Essentials,EXCHANGE_S_ESSENTIALS,e8f81a67-bd96-4074-b108-cf193eb9433b,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,TO-DO (PLAN 1) -Exchange Online Kiosk,EXCHANGEDESKLESS,80b2d799-d2ba-4d2a-8842-fb0d0f3a4b82,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,EXCHANGE ONLINE KIOSK -Exchange Online POP,EXCHANGETELCO,cb0a98a8-11bc-494c-83d9-c1b1ac65327e,EXCHANGE_B_STANDARD,90927877-dcff-4af6-b346-2332c0b15bb7,EXCHANGE ONLINE POP -Exchange Online Protection,EOP_ENTERPRISE,45a2423b-e884-448d-a831-d9e139c52d2f,EOP_ENTERPRISE,326e2b78-9d27-42c9-8509-46c827743a17,Exchange Online Protection -Flow Plan 1 for Government,FLOW_P1_GOV,2b3b0c87-36af-4d15-8124-04a691cc2546,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Flow Plan 1 for Government,FLOW_P1_GOV,2b3b0c87-36af-4d15-8124-04a691cc2546,DYN365_CDS_P1_GOV,ce361df2-f2a5-4713-953f-4050ba09aad8,Common Data Service for Government -Flow Plan 1 for Government,FLOW_P1_GOV,2b3b0c87-36af-4d15-8124-04a691cc2546,FLOW_P1_GOV,774da41c-a8b3-47c1-8322-b9c1ab68be9f,Power Automate (Plan 1) for Government -Intune,INTUNE_A,061f9ace-7d42-4136-88ac-31dc755f143f,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE -Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,AAD_EDU,3a3976ce-de18-4a87-a78e-5e9245e252df,Microsoft Entra ID for Education -Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education -Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,WINDOWS_STORE,a420f25f-a7b3-4ff5-a9d0-5d58f73b537d,Windows Store Service -Microsoft Dynamics AX7 User Trial,AX7_USER_TRIAL,fcecd1f9-a91e-488d-a918-a96cdb6ce2b0,ERP_TRIAL_INSTANCE,e2f705fd-2468-4090-8c58-fad6e6b1e724,Dynamics 365 Operations Trial Environment -Microsoft Dynamics AX7 User Trial,AX7_USER_TRIAL,fcecd1f9-a91e-488d-a918-a96cdb6ce2b0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Dynamics CRM Online Basic for Government,CRMPLAN2_GCC,3856cd1b-8033-458e-8d0f-9909ec6e6e6d,CRMPLAN2_GCC,3d53f6d9-d6e0-45c1-9575-6acd77692584,Microsoft Dynamics CRM Online Government Basic -Microsoft Dynamics CRM Online Basic for Government,CRMPLAN2_GCC,3856cd1b-8033-458e-8d0f-9909ec6e6e6d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Dynamics CRM Online Basic for Government,CRMPLAN2_GCC,3856cd1b-8033-458e-8d0f-9909ec6e6e6d,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government -Microsoft Dynamics CRM Online Basic for Government,CRMPLAN2_GCC,3856cd1b-8033-458e-8d0f-9909ec6e6e6d,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government -Microsoft Dynamics CRM Online for Government,CRMSTANDARD_GCC,ba051a1a-4c3d-4ccd-9890-6fa6a4e696e7,CRMSTANDARD_GCC,2b8c7c8c-9db5-44a5-a1dd-f4aa5b97b372,Microsoft Dynamics CRM Online Professional for Government -Microsoft Dynamics CRM Online for Government,CRMSTANDARD_GCC,ba051a1a-4c3d-4ccd-9890-6fa6a4e696e7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Dynamics CRM Online for Government,CRMSTANDARD_GCC,ba051a1a-4c3d-4ccd-9890-6fa6a4e696e7,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government -Microsoft Dynamics CRM Online for Government,CRMSTANDARD_GCC,ba051a1a-4c3d-4ccd-9890-6fa6a4e696e7,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government -Microsoft Azure Multi-Factor Authentication,MFA_STANDALONE,cb2020b1-d8f6-41c0-9acd-8ff3d6d7831b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Azure Multi-Factor Authentication,MFA_STANDALONE,cb2020b1-d8f6-41c0-9acd-8ff3d6d7831b,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft Defender for Office 365 (Plan 2),THREAT_INTELLIGENCE,3dd6cf57-d688-4eed-ba52-9e40b5468c3e,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft Defender for Office 365 (Plan 2),THREAT_INTELLIGENCE,3dd6cf57-d688-4eed-ba52-9e40b5468c3e,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft Defender for Office 365 (Plan 2),THREAT_INTELLIGENCE,3dd6cf57-d688-4eed-ba52-9e40b5468c3e,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 A1,M365EDU_A1,b17653a4-2443-4e8c-a550-18249dda78bb,AAD_EDU,3a3976ce-de18-4a87-a78e-5e9245e252df,Microsoft Entra ID for Education -Microsoft 365 A1,M365EDU_A1,b17653a4-2443-4e8c-a550-18249dda78bb,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Intune for Education -Microsoft 365 A1,M365EDU_A1,b17653a4-2443-4e8c-a550-18249dda78bb,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 A1,M365EDU_A1,b17653a4-2443-4e8c-a550-18249dda78bb,WINDOWS_STORE,a420f25f-a7b3-4ff5-a9d0-5d58f73b537d,Windows Store Service -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,UNIVERSAL_PRINT_NO_SEEDING,b67adbaf-a096-42c9-967e-5a84edbe0086,Universal Print Without Seeding -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Microsoft 365 A3 Suite features for faculty,Microsoft 365 A3 Suite features for faculty,32a0e471-8a27-4167-b24f-941559912425,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 -Microsoft 365 A3 Suite features for faculty,Microsoft 365 A3 Suite features for faculty,32a0e471-8a27-4167-b24f-941559912425,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune Plan 1 for Education -Microsoft 365 A3 Suite features for faculty,Microsoft 365 A3 Suite features for faculty,32a0e471-8a27-4167-b24f-941559912425,REMOTE_HELP,a4c6cf29-1168-4076-ba5c-e8fe0e62b17e,Remote help -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,OFFICESUBSCRIPTION_unattended,8d77e2d9-9e28-4450-8431-0def64078fc5,Microsoft 365 Apps for Enterprise (Unattended) -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,UNIVERSAL_PRINT_NO_SEEDING,b67adbaf-a096-42c9-967e-5a84edbe0086,Universal Print Without Seeding -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,Microsoft Communications Compliance -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,Microsoft Insider Risk Management -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,UNIVERSAL_PRINT_NO_SEEDING,b67adbaf-a096-42c9-967e-5a84edbe0086,Universal Print Without Seeding -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics – Premium -Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune Plan 1 for Education -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for EDU -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service - O365 P3 -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium) -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Intune for Education -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the web (Education) -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint Plan 2 for EDU -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,UNIVERSAL_PRINT_NO_SEEDING,b67adbaf-a096-42c9-967e-5a84edbe0086,Universal Print Without Seeding -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) -Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,OFFICE 365 BUSINESS -Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,ONEDRIVESTANDARD -Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) -Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,OFFICE 365 BUSINESS -Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,ONEDRIVESTANDARD -Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise -Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,OneDrive for Business (Plan 1) -Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Microsoft 365 Apps for enterprise (device),OFFICE_PROPLUS_DEVICE1,ea4c5ec8-50e3-4193-89b9-50da5bd4cdc7,OFFICE_PROPLUS_DEVICE,3c994f28-87d5-4273-b07a-eb6190852599,Microsoft 365 Apps for Enterprise (Device) -Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise -Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,OneDrive for Business (Plan 1) -Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service -Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise -Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service -Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,OneDrive for Business (Plan 1) -Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Microsoft 365 Audio Conferencing for faculty,MCOMEETADV_FACULTY,c2cda955-3359-44e5-989f-852ca0cfa02f,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft 365 Audio Conferencing for GCC,MCOMEETADV_GOV,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,EXCHANGE_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT -Microsoft 365 Audio Conferencing for GCC,MCOMEETADV_GOV,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,MICROSOFT 365 AUDIO CONFERENCING FOR GOVERNMENT -Microsoft 365 Audio Conferencing_USGOV_GCCHIGH,MCOMEETADV_USGOV_GCCHIGH,4dee1f32-0808-4fd2-a2ed-fdd575e3a45f,MCOMEETADV_AR_GCCHigh,f1e3613f-3818-4254-9b5e-f02d803384e0,Microsoft 365 Audio Conferencing for GCCHigh -Microsoft 365 Audio Conferencing - GCCHigh Tenant (AR)_USGOV_GCCHIGH,MCOACBYOT_AR_GCCHIGH_USGOV_GCCHIGH,170ba00c-38b2-468c-a756-24c05037160a,MCOACBYOT_GCCHigh,c85e4b03-254a-453b-af72-167a53f38530,Microsoft 365 Audio Conferencing - GCCHigh Tenant -Microsoft 365 Audio Conferencing Pay-Per-Minute - EA,MCOMEETACPEA,df9561a4-4969-4e6a-8e73-c601b68ec077,MCOMEETACPEA,bb038288-76ab-49d6-afc1-eaa6c222c65a,Microsoft 365 Audio Conferencing Pay-Per-Minute -Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) -Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 -Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) -Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) -Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,OFFICEMOBILE_SUBSCRIPTION -Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 -Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE -Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD -Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 -Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE -Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,TO-DO (PLAN 1) -Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) -Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 -Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) -Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) -Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,OFFICEMOBILE_SUBSCRIPTION -Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 -Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE -Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD -Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 -Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,YAMMER_MIDSIZE,41bf139a-4e60-409f-9346-a1361efc6dfb,YAMMER MIDSIZE -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for Business -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 -Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB -Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) -Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 -Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) -Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) -Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,MICROSOFTBOOKINGS -Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,OUTLOOK CUSTOMER MANAGER -Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,OFFICE 365 BUSINESS -Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 -Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE -Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD -Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 -Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,YAMMER_MIDSIZE,41bf139a-4e60-409f-9346-a1361efc6dfb,YAMMER_MIDSIZE -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,OFFICE_SHARED_COMPUTER_ACTIVATION,276d6e8a-f056-4f70-b7e8-4fc27f79f809,Office Shared Computer Activation -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,WINBIZ,8e229017-d77b-43d5-9305-903395523b99,Windows 10/11 Business -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Azure Active Directory -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,Microsoft Intune -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for Business -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,Microsoft Intune -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,OFFICE_SHARED_COMPUTER_ACTIVATION,276d6e8a-f056-4f70-b7e8-4fc27f79f809,Office Shared Computer Activation -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,WINBIZ,8e229017-d77b-43d5-9305-903395523b99,Windows 10/11 Business -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Azure Active Directory -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for Business -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,OFFICE_SHARED_COMPUTER_ACTIVATION,276d6e8a-f056-4f70-b7e8-4fc27f79f809,Office Shared Computer Activation -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,WINBIZ,8e229017-d77b-43d5-9305-903395523b99,Windows 10/11 Business -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Azure Active Directory -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,Microsoft Intune -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,OFFICE_SHARED_COMPUTER_ACTIVATION,276d6e8a-f056-4f70-b7e8-4fc27f79f809,Office Shared Computer Activation -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,WINBIZ,8e229017-d77b-43d5-9305-903395523b99,Windows 10/11 Business -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Azure Active Directory -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,Microsoft Intune -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 Business Voice (US),BUSINESS_VOICE_MED2_TELCO,08d7bce8-6e16-490e-89db-1d508e5e9609,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft 365 Business Voice (US),BUSINESS_VOICE_MED2_TELCO,08d7bce8-6e16-490e-89db-1d508e5e9609,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,Microsoft 365 Domestic Calling Plan -Microsoft 365 Business Voice (without Calling Plan),BUSINESS_VOICE_DIRECTROUTING,d52db95a-5ecb-46b6-beb0-190ab5cda4a8,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft 365 Business Voice (without Calling Plan),BUSINESS_VOICE_DIRECTROUTING,d52db95a-5ecb-46b6-beb0-190ab5cda4a8,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 Business Voice (UK,BUSINESS_VOICE,e5a17adf-8f0d-4b57-bc14-d331235f9307,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft 365 Business Voice (UK,BUSINESS_VOICE,e5a17adf-8f0d-4b57-bc14-d331235f9307,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,Microsoft 365 Domestic Calling Plan -Microsoft 365 Business Voice (UK,BUSINESS_VOICE,e5a17adf-8f0d-4b57-bc14-d331235f9307,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 Business Voice (without Calling Plan) for US,BUSINESS_VOICE_DIRECTROUTING_MED,8330dae3-d349-44f7-9cad-1b23c64baabe,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft 365 Business Voice (without Calling Plan) for US,BUSINESS_VOICE_DIRECTROUTING_MED,8330dae3-d349-44f7-9cad-1b23c64baabe,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 Business Voice (without Calling Plan),BUSINESS_VOICE_DIRECTROUTING,d52db95a-5ecb-46b6-beb0-190ab5cda4a8,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft 365 Business Voice (without Calling Plan),BUSINESS_VOICE_DIRECTROUTING,d52db95a-5ecb-46b6-beb0-190ab5cda4a8,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 Business Voice,BUSINESS_VOICE_MED2,a6051f20-9cbc-47d2-930d-419183bf6cf1,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft 365 Business Voice,BUSINESS_VOICE_MED2,a6051f20-9cbc-47d2-930d-419183bf6cf1,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,Microsoft 365 Domestic Calling Plan -Microsoft 365 Business Voice,BUSINESS_VOICE_MED2,a6051f20-9cbc-47d2-930d-419183bf6cf1,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,COPILOT_STUDIO_IN_COPILOT_FOR_M365,fe6c28b3-d468-44ea-bbd0-a10a5167435c,Copilot Studio in Copilot for M365 -Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot -Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search -Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_SHAREPOINT,0aedf20c-091d-420b-aadf-30c042609612,Microsoft 365 Copilot for SharePoint -Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams -Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps -Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft Copilot with Graph-grounded chat -Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,COPILOT_STUDIO_IN_COPILOT_FOR_M365,fe6c28b3-d468-44ea-bbd0-a10a5167435c,Copilot Studio in Copilot for M365 -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_SHAREPOINT,0aedf20c-091d-420b-aadf-30c042609612,Microsoft 365 Copilot for SharePoint -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,Microsoft_Copilot_for_Sales,a2194428-ead1-4fc1-bb81-ab8675125f42,Microsoft Copilot for Sales -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,Microsoft_Copilot_for_Sales_PowerAutomate,0c1c2af2-6c51-43c7-9c55-fa487ac147ff,Microsoft Copilot for Sales with Power Automate -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft Copilot with Graph-grounded chat -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,WORKPLACE_ANALYTICS_INSIGHTS_USER,b622badb-1b45-48d5-920f-4b27a2c0996c,Microsoft Viva Insights -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,WORKPLACE_ANALYTICS_INSIGHTS_BACKEND,ff7b261f-d98b-415b-827c-42a3fdf015af,Microsoft Viva Insights Backend -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot -Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot -Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search -Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams -Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps -Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft Copilot with Graph-grounded chat -Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot -Microsoft 365 Domestic Calling Plan (120 minutes) - US,MCOPSTN5_US,d13e9d1b-316a-4946-98c6-362c97a4fdfe,PSTN5_US,1346d5e6-15a6-4b88-9693-806ff7296a7a,Microsoft 365 Domestic Calling Plan - US (120 minutes) -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 -Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,OFFICESUBSCRIPTION_unattended,8d77e2d9-9e28-4450-8431-0def64078fc5,Microsoft 365 Apps for Enterprise (Unattended) -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,OFFICESUBSCRIPTION_unattended,8d77e2d9-9e28-4450-8431-0def64078fc5,Microsoft 365 Apps for Enterprise (Unattended) -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 -Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk -Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams -Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,ONEDRIVE_BASIC_P2,4495894f-534f-41ca-9d3b-0ebf1220a423,OneDrive for Business (Basic 2) -Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 -Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights -Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU -Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,TEAMS_AR_DOD,fd500458-c24c-478e-856c-a6067a8376cd,Microsoft Teams for DOD (AR) -Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Office 365 ProPlus -Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office Online -Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) -Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P -Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Cloud App Security Discovery -Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights -Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU -Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh (AR) -Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Office 365 ProPlus -Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office Online -Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) -Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MCOPSTN8,16935b20-87c0-4908-934a-22aa267d0d26,Microsoft 365 Domestic Calling Plan (120 min) at User Level -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,SHAREPOINTENTERPRISE_MIDMARKET,6b5b6a67-fc72-4a1f-a2b5-beecf05de761,SharePoint (Plan 1) -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MCOPSTN8,16935b20-87c0-4908-934a-22aa267d0d26,Microsoft 365 Domestic Calling Plan (120 min) at User Level -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MCOMEETADV_AR_GCCHigh,f1e3613f-3818-4254-9b5e-f02d803384e0,Microsoft 365 Audio Conferencing for GCCHigh -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,FORMS_PLAN_E5_AR_GCCHIGH,cf1b2895-e3fd-4b33-9594-2ab924104547,Microsoft Forms (Plan E5) for GCCHigh -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MICROSOFT_SEARCH_GCCH,fc9f7921-4ca5-42c6-8533-1b84c4ee496b,Microsoft Search for Arlington -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,POWERAPPS_O365_P3_GCCHIGH,b50a9096-5b07-4ded-a5e4-a492fb94b6ee,Power Apps for Office 365 for GCCHigh -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,FLOW_O365_P3_GCCHIGH,ee939cf0-7cd1-4262-9f72-9eaa45dbba69,Power Automate for Office 365 for GCCHigh -Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management -Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Cloud App Security Discovery -Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for O365 K SKU -Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Online Kiosk -Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) -Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,FORMS_PLAN_K,f07046bd-2a3c-4b96-b0be-dea79d7cbfb8,Microsoft Forms (Plan F1) -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,KAIZALA_O365_P1,73b2a583-6a59-42e3-8e83-54db46bc3278,Microsoft Kaizala Pro -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,PROJECT_O365_F3,7f6f28c2-34bb-4d4b-be36-48ca2e77e1ec,Project for Office (Plan F) -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,WIN10_ENT_LOC_F1,e041597c-9c7f-4ed9-99b0-2663301576f7,Windows 10 Enterprise E3 (Local Only) -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,POWERAPPS_O365_S1,e0287f9f-e222-4f98-9a83-f379e249159a,Power Apps for Office 365 F3 -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,FLOW_O365_S1,bd91b1a4-9f94-4ecf-b45b-3a65e5c8128a,Power Automate for Office 365 F3 -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,POWER_VIRTUAL_AGENTS_O365_F1,ba2fdb48-290b-4632-b46a-e4ecc58ac11a,Power Virtual Agents for Office 365 -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,FORMS_PLAN_K,f07046bd-2a3c-4b96-b0be-dea79d7cbfb8,Microsoft Forms (Plan F1) -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,KAIZALA_O365_P1,73b2a583-6a59-42e3-8e83-54db46bc3278,Microsoft Kaizala Pro -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,TEAMS_DESKLESS,a42de799-58ae-4e6a-aa1d-948e7abec726,Microsoft Teams Kiosk -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,PROJECT_O365_F3,7f6f28c2-34bb-4d4b-be36-48ca2e77e1ec,Project for Office (Plan F) -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,WIN10_ENT_LOC_F1,e041597c-9c7f-4ed9-99b0-2663301576f7,Windows 10 Enterprise E3 (Local Only) -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,POWERAPPS_O365_S1,e0287f9f-e222-4f98-9a83-f379e249159a,Power Apps for Office 365 F3 -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,FLOW_O365_S1,bd91b1a4-9f94-4ecf-b45b-3a65e5c8128a,Power Automate for Office 365 F3 -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,POWER_VIRTUAL_AGENTS_O365_F1,ba2fdb48-290b-4632-b46a-e4ecc58ac11a,Power Virtual Agents for Office 365 -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,DYN365_CDS_O365_F1_GCC,29007dd3-36c0-4cc2-935d-f5bca2c2c473,Common Data Service - O365 F1 -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,CDS_O365_F1_GCC,5e05331a-0aec-437e-87db-9ef5934b5771,Common Data Service for Teams_F1 GCC -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,EXCHANGE_S_DESKLESS_GOV,88f4d7ef-a73b-4246-8047-516022144c9f,Exchange Online (Kiosk) for Government -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,FORMS_GOV_F1,bfd4133a-bbf3-4212-972b-60412137c428,Forms for Government (Plan F1) -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,STREAM_O365_K_GOV,d65648f1-9504-46e4-8611-2658763f28b8,Microsoft Stream for O365 for Government (F1) -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,OFFICEMOBILE_SUBSCRIPTION_GOV,4ccb60ee-9523-48fd-8f63-4b090f1ad77a,Office Mobile Apps for Office 365 for GCC -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,POWERAPPS_O365_S1_GOV,49f06c3d-da7d-4fa0-bcce-1458fdd18a59,Power Apps for Office 365 F3 for Government -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,FLOW_O365_S1_GOV,5d32692e-5b24-4a59-a77e-b2a8650e25c1,Power Automate for Office 365 F3 for Government -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,SHAREPOINTDESKLESS_GOV,b1aeb897-3a19-46e2-8c27-a609413cf193,SharePoint KioskG -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,MCOIMP_GOV,8a9f17f1-5872-44e8-9b11-3caade9dc90f,Skype for Business Online (Plan 1) for Government -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,ADALLOM_S_STANDALONE_DOD,6ebdddb7-8e55-4af2-952b-69e77262f96c,Microsoft Defender for Cloud Apps for DOD -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,GRAPH_CONNECTORS_SEARCH_INDEX_TOPICEXP,b74d57b2-58e9-484a-9731-aeccbba954f0,Graph Connectors Search with Index (Microsoft Viva Topics) -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Azure Active Directory Premium P2 -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,RMS_S_PREMIUM2_GOV,5400a66d-eaa5-427d-80f2-0f26d59d8fce,Azure Information Protection Premium P2 for GCC -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Azure Active Directory Premium P2 -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,RMS_S_PREMIUM2_GOV,5400a66d-eaa5-427d-80f2-0f26d59d8fce,Azure Information Protection Premium P2 for GCC -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government -Microsoft 365 Audio Conferencing for GCC,MCOMEETADV_GOV,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT -Microsoft 365 Audio Conferencing for GCC,MCOMEETADV_GOV,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,MICROSOFT 365 AUDIO CONFERENCING FOR GOVERNMENT -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,AAD_PREMIUM -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,RMS_S_PREMIUM -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,ADALLOM_S_DISCOVERY -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,DYN365_CDS_O365_F1 -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,EXCHANGE_S_DESKLESS -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,RMS_S_ENTERPRISE -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MFA_PREMIUM -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,MICROSOFTBOOKINGS -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,INTUNE_A -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,PROJECTWORKMANAGEMENT -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,MICROSOFT_SEARCH -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,STREAM_O365_K -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,INTUNE_O365 -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SHAREPOINTDESKLESS -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,MCOIMP -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,CDS_O365_P2_GCC,a70bbf38-cdda-470d-adb8-5804b8770f41,Common Data Service for Teams -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,FORMS_GOV_E3,24af5f65-d0f3-467b-9f78-ea798c4aeffc,Microsoft Forms for Government (Plan E3) -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,PROJECT_O365_P2_GOV,e7d09ae4-099a-4c34-a2a2-3e166e95c44a,Project for Government (Plan E3) -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,STREAM_O365_E3_GOV,2c1ada27-dbaa-46f9-bda6-ecb94445f758,Stream for Office 365 for Government (E3) -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,DYN365_CDS_O365_P2_GCC,06162da2-ebf9-4954-99a0-00fee96f95cc,Common Data Service -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,CDS_O365_P2_GCC,a70bbf38-cdda-470d-adb8-5804b8770f41,Common Data Service for Teams -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,OFFICESUBSCRIPTION_unattended_GOV,18dfd9bd-5214-4184-8123-c9822d81a9bc,Microsoft 365 Apps for enterprise (unattended) for GCC -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,FORMS_GOV_E3,24af5f65-d0f3-467b-9f78-ea798c4aeffc,Microsoft Forms for Government (Plan E3) -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,PROJECT_O365_P2_GOV,e7d09ae4-099a-4c34-a2a2-3e166e95c44a,Project for Government (Plan E3) -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,STREAM_O365_E3_GOV,2c1ada27-dbaa-46f9-bda6-ecb94445f758,Stream for Office 365 for Government (E3) -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,DYN365_CDS_O365_P2_GCC,06162da2-ebf9-4954-99a0-00fee96f95cc,Common Data Service -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government -Microsoft 365 Lighthouse,Microsoft365_Lighthouse,9c0587f3-8665-4252-a8ad-b7a5ade57312,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 Lighthouse,Microsoft365_Lighthouse,9c0587f3-8665-4252-a8ad-b7a5ade57312,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Microsoft Sales Copilot,Microsoft_Viva_Sales,3227bcb2-8448-4f81-b3c2-8c2074e15a2a,Microsoft_Viva_Sales_PremiumTrial,8ba1ff15-7bf6-4620-b65c-ecedb6942766,Microsoft Sales Copilot Premium & Trial -Microsoft Sales Copilot,Microsoft_Viva_Sales,3227bcb2-8448-4f81-b3c2-8c2074e15a2a,Microsoft_Viva_Sales_PowerAutomate,a933a62f-c3fb-48e5-a0b7-ac92b94b4420,Microsoft Sales Copilot Premium with Power Automate -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving for Exchange Online -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics - Standard -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,M365 Communication Compliance -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender For Endpoint -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-based classification -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft Business Center,MICROSOFT_BUSINESS_CENTER,726a0894-2c77-4d65-99da-9775ef05aad1,MICROSOFT_BUSINESS_CENTER,cca845f9-fd51-4df6-b563-976a37c56ce0,MICROSOFT BUSINESS CENTER -Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot -Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search -Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft 365 Chat -Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams -Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps -Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,COPILOT_STUDIO_IN_COPILOT_FOR_M365,fe6c28b3-d468-44ea-bbd0-a10a5167435c,Copilot Studio in Copilot for M365 -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_SHAREPOINT,0aedf20c-091d-420b-aadf-30c042609612,Microsoft 365 Copilot for SharePoint -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,Microsoft_Copilot_for_Sales,a2194428-ead1-4fc1-bb81-ab8675125f42,Microsoft Copilot for Sales -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,Microsoft_Copilot_for_Sales_PowerAutomate,0c1c2af2-6c51-43c7-9c55-fa487ac147ff,Microsoft Copilot for Sales with Power Automate -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft Copilot with Graph-grounded chat -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,WORKPLACE_ANALYTICS_INSIGHTS_USER,b622badb-1b45-48d5-920f-4b27a2c0996c,Microsoft Viva Insights -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,WORKPLACE_ANALYTICS_INSIGHTS_BACKEND,ff7b261f-d98b-415b-827c-42a3fdf015af,Microsoft Viva Insights Backend -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot -Microsoft Copilot Studio,Power_Virtual_Agents,75564b9c-51e8-431c-b8fe-d472d5a545c8,CDS_VIRTUAL_AGENT_BASE_MESSAGES,5dd1819f-0de7-487f-985b-c450a4c9cc1d,Dataverse for Microsoft Copilot Studio -Microsoft Copilot Studio,Power_Virtual_Agents,75564b9c-51e8-431c-b8fe-d472d5a545c8,VIRTUAL_AGENT_BASE_MESSAGES,7b0640f1-63cc-4f83-b8c6-0a4d78b8b988,Microsoft Copilot Studio – Messages -Microsoft Copilot Studio,Power_Virtual_Agents,75564b9c-51e8-431c-b8fe-d472d5a545c8,FLOW_VIRTUAL_AGENT_BASE_MESSAGES,4b9ec373-ed29-4192-8a47-c9ab9048b079,Power Automate for Microsoft Copilot Studio -Microsoft Copilot Studio for GCC,Power_Virtual_Agents_for_GCC_GCC,d7974fa0-ddd7-4899-9589-1ea04273aa26,CDS_VIRTUAL_AGENT_BASE_MESSAGES,5dd1819f-0de7-487f-985b-c450a4c9cc1d,Dataverse for Microsoft Copilot Studio -Microsoft Copilot Studio for GCC,Power_Virtual_Agents_for_GCC_GCC,d7974fa0-ddd7-4899-9589-1ea04273aa26,VIRTUAL_AGENT_BASE_MESSAGES,7b0640f1-63cc-4f83-b8c6-0a4d78b8b988,Microsoft Copilot Studio – Messages -Microsoft Copilot Studio for GCC,Power_Virtual_Agents_for_GCC_GCC,d7974fa0-ddd7-4899-9589-1ea04273aa26,FLOW_VIRTUAL_AGENT_BASE_MESSAGES,4b9ec373-ed29-4192-8a47-c9ab9048b079,Power Automate for Microsoft Copilot Studio -Microsoft Copilot Studio_USGOV_GCCHIGH,Power_Virtual_Agents_USGOV_GCCHIGH,84ed7c30-3738-43a0-aa03-cf6c577d8dbb,CDS_VIRTUAL_AGENT_BASE_MESSAGES,5dd1819f-0de7-487f-985b-c450a4c9cc1d,CDS_VIRTUAL_AGENT_BASE_MESSAGES -Microsoft Copilot Studio_USGOV_GCCHIGH,Power_Virtual_Agents_USGOV_GCCHIGH,84ed7c30-3738-43a0-aa03-cf6c577d8dbb,VIRTUAL_AGENT_BASE_MESSAGES,7b0640f1-63cc-4f83-b8c6-0a4d78b8b988,VIRTUAL_AGENT_BASE_MESSAGES -Microsoft Copilot Studio_USGOV_GCCHIGH,Power_Virtual_Agents_USGOV_GCCHIGH,84ed7c30-3738-43a0-aa03-cf6c577d8dbb,FLOW_VIRTUAL_AGENT_BASE_MESSAGES,4b9ec373-ed29-4192-8a47-c9ab9048b079,FLOW_VIRTUAL_AGENT_BASE_MESSAGES -Microsoft Copilot Studio User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,CDS_VIRTUAL_AGENT_USL,cb867b3c-7f38-4d0d-99ce-e29cd69812c8,Common Data Service -Microsoft Copilot Studio User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,FLOW_VIRTUAL_AGENT_USL,82f141c9-2e87-4f43-8cb2-12d2701dc6b3,Power Automate for Virtual Agent -Microsoft Copilot Studio User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,VIRTUAL_AGENT_USL,1263586c-59a4-4ad0-85e1-d50bc7149501,Virtual Agent -Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,CDS_Virtual_Agent_Usl_Gov,bcc0702e-ba97-48d9-ae04-fa8689c53bba,Dataverse for Virtual Agent USL for GCC -Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Virtual_Agent_Usl_Gov,00b6f978-853b-4041-9de0-a233d18669aa,Virtual Agent for GCC -Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,CDS_Virtual_Agent_Usl_GCC,95df1203-fee7-4726-b7e1-8037a8e899eb,Dataverse for Virtual Agent USL for GCC -Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Flow_Virtual_Agent_Usl_Gov,0b939472-1861-45f1-ab6d-208f359c05cd,Flow for Virtual Agent for GCC -Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,FLOW_Virtual_Agent_Base_Gov,f9f6db16-ace6-4838-b11c-892ee75e810a,Power Automate for Virtual Agent for GCC -Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Power_Virtual_Agent_Usl_GCC,0bdd5466-65c3-470a-9fa6-f679b48286b0,Power Virtual Agent USL for GCC -Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,Virtual_Agent_Usl_Gov_High,7ffee552-ebe8-4725-8678-5c1775c05847,Virtual Agent for GCC High -Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,CDS_VIRTUAL_AGENT_USL,cb867b3c-7f38-4d0d-99ce-e29cd69812c8,Common Data Service -Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,FLOW_Virtual_Agent_Base_Gov_High,225e52e5-7bbf-4793-8fb1-4307a7a1ae8e,Flow for Virtual Agent for GCC High -Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,Flow_Virtual_Agent_Usl_Gov_High,aaae1744-dc7a-4811-9dd0-2bf926ff9d80,Flow for Virtual Agent for GCC High -Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,Power_Virtual_Agent_Usl_GCC_High,3fbe8cdf-c735-44bf-bbfa-646724af4bb4,Power Virtual Agent USL for GCC High -Microsoft Copilot Studio Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,DYN365_CDS_CCI_BOTS,cf7034ed-348f-42eb-8bbd-dddeea43ee81,DYN365_CDS_CCI_BOTS -Microsoft Copilot Studio Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,CCIBOTS_PRIVPREV_VIRAL,ce312d15-8fdf-44c0-9974-a25a177125ee,CCIBOTS_PRIVPREV_VIRAL -Microsoft Copilot Studio Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,FLOW_CCI_BOTS,5d798708-6473-48ad-9776-3acc301c40af,FLOW_CCI_BOTS -Microsoft Cloud App Security,ADALLOM_STANDALONE,df845ce7-05f9-4894-b5f2-11bbfbcfd2b6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Cloud App Security,ADALLOM_STANDALONE,df845ce7-05f9-4894-b5f2-11bbfbcfd2b6,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security -Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,MCS_BizApps_Cloud_for_Sustainability_vTrial,c1c902e3-a956-4273-abdb-c92afcd027ef,MCS - BizApps_Cloud for Sustainability_vTrial -Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,POWER_APPS_DYN365_VIRAL_TRIAL,54b37829-818e-4e3c-a08a-3ea66ab9b45d,Power Apps for Dynamics 365 vTrial -Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,POWER_AUTOMATE_DYN365_VIRAL_TRIAL,81d4ecb8-0481-42fb-8868-51536c5aceeb,Power Automate for Dynamics 365 vTrial -Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,Common Data Service -Microsoft Defender for Business,MDE_SMB,5e1e7702-a2b7-4360-8d07-2f515792896f,Intune_Defender,1689aade-3d6a-4bfc-b017-46d2672df5ad,MDE_SecurityManagement -Microsoft Defender for Business,MDE_SMB,5e1e7702-a2b7-4360-8d07-2f515792896f,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft Defender for Business,MDE_SMB,5e1e7702-a2b7-4360-8d07-2f515792896f,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Microsoft Defender for Business,MDE_SMB,5e1e7702-a2b7-4360-8d07-2f515792896f,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business -Microsoft Defender for Endpoint,WIN_DEF_ATP,111046dd-295b-4d6d-9724-d52ac90bd1f2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Defender for Endpoint,WIN_DEF_ATP,111046dd-295b-4d6d-9724-d52ac90bd1f2,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,MICROSOFT DEFENDER FOR ENDPOINT -Microsoft Defender for Endpoint F2,Microsoft_Defender_for_Endpoint_F2,e430a580-c37b-4d16-adba-d881d7cd0364,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft Defender for Endpoint P1,DEFENDER_ENDPOINT_P1,16a55f2f-ff35-4cd5-9146-fb784e3761a5,Intune_Defender,1689aade-3d6a-4bfc-b017-46d2672df5ad,MDE_SecurityManagement -Microsoft Defender for Endpoint P1,DEFENDER_ENDPOINT_P1,16a55f2f-ff35-4cd5-9146-fb784e3761a5,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 -Microsoft Defender for Endpoint P1 for EDU,DEFENDER_ENDPOINT_P1_EDU,bba890d4-7881-4584-8102-0c3fdfb739a7,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 -Microsoft Defender for Endpoint P2_XPLAT,MDATP_XPLAT,b126b073-72db-4a9d-87a4-b17afe41d4ab,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Defender for Endpoint P2_XPLAT,MDATP_XPLAT,b126b073-72db-4a9d-87a4-b17afe41d4ab,Intune_Defender,1689aade-3d6a-4bfc-b017-46d2672df5ad,MDE_SecurityManagement -Microsoft Defender for Endpoint P2_XPLAT,MDATP_XPLAT,b126b073-72db-4a9d-87a4-b17afe41d4ab,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft Defender for Endpoint Server,MDATP_Server,509e8ab6-0274-4cda-bcbd-bd164fd562c4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Defender for Endpoint Server,MDATP_Server,509e8ab6-0274-4cda-bcbd-bd164fd562c4,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft Dynamics CRM Online Basic,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Microsoft Dynamics CRM Online Basic,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 -Microsoft Dynamics CRM Online Basic,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,CRMPLAN2,bf36ca64-95c6-4918-9275-eb9f4ce2c04f,MICROSOFT DYNAMICS CRM ONLINE BASIC -Microsoft Dynamics CRM Online Basic,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 -Microsoft Defender for Identity,ATA,98defdf7-f6c1-44f5-a1f6-943b6764e7a5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Defender for Identity,ATA,98defdf7-f6c1-44f5-a1f6-943b6764e7a5,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft Defender for Identity,ATA,98defdf7-f6c1-44f5-a1f6-943b6764e7a5,ADALLOM_FOR_AATP,61d18b02-6889-479f-8f36-56e6e0fe5792,SecOps Investigation for MDI -Microsoft Defender for Office 365 (Plan 1) Faculty,ATP_ENTERPRISE_FACULTY,26ad4b5c-b686-462e-84b9-d7c22b46837f,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft Defender for Office 365 (Plan 1) GCC,ATP_ENTERPRISE_GOV,d0d1ca43-b81a-4f51-81e5-a5b1ad7bb005,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government -Microsoft Defender for Office 365 (Plan 1)_USGOV_GCCHIGH,ATP_ENTERPRISE_USGOV_GCCHIGH ,550f19ba-f323-4a7d-a8d2-8971b0d9ea85,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft Defender for Office 365 (Plan 1) Student,ATP_ENTERPRISE_STUDENT,917fb2b4-f71c-43a1-8edc-75532b554bb5,ATP_ENTERPRISE ,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft Defender for Office 365 (Plan 1) Student use benefit,ATP_ENTERPRISE_STUDENTS_USE_BENEFIT,a237b6d8-572e-4839-bffd-7786d32a5d0e,ATP_ENTERPRISE ,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft Defender for Office 365 (Plan 2) GCC,THREAT_INTELLIGENCE_GOV,56a59ffb-9df1-421b-9e61-8b568583474d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft Defender for Office 365 (Plan 2) GCC,THREAT_INTELLIGENCE_GOV,56a59ffb-9df1-421b-9e61-8b568583474d,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government -Microsoft Defender for Office 365 (Plan 2) GCC,THREAT_INTELLIGENCE_GOV,56a59ffb-9df1-421b-9e61-8b568583474d,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government -Microsoft Defender Vulnerability Management,TVM_Premium_Standalone,1925967e-8013-495f-9644-c99f8b463748,TVM_PREMIUM_1,36810a13-b903-490a-aa45-afbeb7540832,Microsoft Defender Vulnerability Management -Microsoft Defender Vulnerability Management Add-on,TVM_Premium_Add_on,ad7a56e0-6903-4d13-94f3-5ad491e78960,TVM_PREMIUM_1,36810a13-b903-490a-aa45-afbeb7540832,Microsoft Defender Vulnerability Management -Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,CRMSTANDARD,f9646fb2-e3b2-4309-95de-dc4833737456,MICROSOFT DYNAMICS CRM ONLINE PROFESSIONA -Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 -Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,MDM_SALES_COLLABORATION,3413916e-ee66-4071-be30-6f94d4adfeda,MICROSOFT DYNAMICS MARKETING SALES COLLABORATION - ELIGIBILITY CRITERIA APPLY -Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,NBPROFESSIONALFORCRM,3e58e97c-9abe-ebab-cd5f-d543d1529634,MICROSOFT SOCIAL ENGAGEMENT PROFESSIONAL - ELIGIBILITY CRITERIA APPLY -Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 -Microsoft Entra ID Governance,Microsoft_Entra_ID_Governance,cf6b0d46-4093-4546-a0ab-0b1546dcc10e,Entra_Identity_Governance,e866a266-3cff-43a3-acca-0c90a7e00c8b,Entra Identity Governance -Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,BI_AZURE_P0,2049e525-b859-401b-b2a0-e0a31c4b1fe4,Power BI (free) -Microsoft Fabric (Free) for faculty,POWER_BI_STANDARD_FACULTY,ade29b5f-397e-4eb9-a287-0344bd46c68d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE_S_FOUNDATION -Microsoft Fabric (Free) for faculty,POWER_BI_STANDARD_FACULTY,ade29b5f-397e-4eb9-a287-0344bd46c68d,BI_AZURE_P0,2049e525-b859-401b-b2a0-e0a31c4b1fe4,BI_AZURE_P0 -Microsoft Fabric (Free) for student,POWER_BI_STANDARD_STUDENT,bdcaf6aa-04c1-4b8f-b64e-6e3bd505ac64,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE_S_FOUNDATION -Microsoft Fabric (Free) for student,POWER_BI_STANDARD_STUDENT,bdcaf6aa-04c1-4b8f-b64e-6e3bd505ac64,BI_AZURE_P0,2049e525-b859-401b-b2a0-e0a31c4b1fe4,BI_AZURE_P0 -Microsoft Imagine Academy,IT_ACADEMY_AD,ba9a34de-4489-469d-879c-0f0f145321cd,IT_ACADEMY_AD,d736def0-1fde-43f0-a5be-e3f8b2de6e41,MS IMAGINE ACADEMY -Microsoft Intune Device,INTUNE_A_D,2b317a4a-77a6-4188-9437-b68a77b4e2c6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Intune Device,INTUNE_A_D,2b317a4a-77a6-4188-9437-b68a77b4e2c6,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft Intune Device for Government,INTUNE_A_D_GOV,2c21e77a-e0d6-4570-b38a-7ff2dc17d2ca,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Microsoft Intune Device for Government,INTUNE_A_D_GOV,2c21e77a-e0d6-4570-b38a-7ff2dc17d2ca,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft Intune Government,INTUNE_A_GOV,2b26f637-35a0-4dbc-b69e-ff674782be9d,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Microsoft Intune Government,INTUNE_A_GOV,2b26f637-35a0-4dbc-b69e-ff674782be9d,INTUNE_A_GOV,d216f254-796f-4dab-bbfa-710686e646b9,Microsoft Intune G -Microsoft Intune Plan 1 A VL_USGOV_GCCHIGH,INTUNE_A_VL_USGOV_GCCHIGH,b4288abe-01be-47d9-ad20-311d6e83fc24,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Intune Plan 1 A VL_USGOV_GCCHIGH,INTUNE_A_VL_USGOV_GCCHIGH,b4288abe-01be-47d9-ad20-311d6e83fc24,INTUNE_A_VL,3e170737-c728-4eae-bbb9-3f3360f7184c,Microsoft Intune Plan 1 -Microsoft Power Apps for Developer,POWERAPPS_DEV,5b631642-bd26-49fe-bd20-1daaa972ef80,DYN365_CDS_DEV_VIRAL,d8c638e2-9508-40e3-9877-feb87603837b,Common Data Service - DEV VIRAL -Microsoft Power Apps for Developer,POWERAPPS_DEV,5b631642-bd26-49fe-bd20-1daaa972ef80,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Power Apps for Developer,POWERAPPS_DEV,5b631642-bd26-49fe-bd20-1daaa972ef80,FLOW_DEV_VIRAL,c7ce3f26-564d-4d3a-878d-d8ab868c85fe,Flow for Developer -Microsoft Power Apps for Developer,POWERAPPS_DEV,5b631642-bd26-49fe-bd20-1daaa972ef80,POWERAPPS_DEV_VIRAL,a2729df7-25f8-4e63-984b-8a8484121554,PowerApps for Developer -Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,Common Data Service - VIRAL -Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,FLOW_P2_VIRAL,50e68c76-46c6-4674-81f9-75456511b170,Flow Free -Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,FLOW_P2_VIRAL_REAL,d20bfa21-e9ae-43fc-93c2-20783f0840c3,Flow P2 Viral -Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,POWERAPPS_P2_VIRAL,d5368ca3-357e-4acb-9c21-8495fb025d1f,PowerApps Trial -Microsoft Power Automate Free,FLOW_FREE,f30db892-07e9-47e9-837c-80727f46fd3d,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,COMMON DATA SERVICE -Microsoft Power Automate Free,FLOW_FREE,f30db892-07e9-47e9-837c-80727f46fd3d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Microsoft Power Automate Free,FLOW_FREE,f30db892-07e9-47e9-837c-80727f46fd3d,FLOW_P2_VIRAL,50e68c76-46c6-4674-81f9-75456511b170,FLOW FREE -Microsoft Power Automate Plan 2,FLOW_P2,4755df59-3f73-41ab-a249-596ad72b5504,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 -Microsoft Power Automate Plan 2,FLOW_P2,4755df59-3f73-41ab-a249-596ad72b5504,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Power Automate Plan 2,FLOW_P2,4755df59-3f73-41ab-a249-596ad72b5504,FLOW_P2,56be9436-e4b2-446c-bb7f-cc15d16cca4d,Power Automate (Plan 2) -Microsoft Intune SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Microsoft Entra ID -Microsoft Intune SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Microsoft Intune SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,MICROSOFT INTUNE -Microsoft Intune SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE -Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,Intune_AdvancedEA,2a4baa0e-5e99-4c38-b1f2-6864960f1bd1,Intune Advanced endpoint analytics -Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,Intune-EPM,bb73f429-78ef-4ff2-83c8-722b04c3e7d1,Intune Endpoint Privilege Management -Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,INTUNE_P2,d9923fe3-a2de-4d29-a5be-e3e83bb786be,Intune Plan 2 -Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,Intune-MAMTunnel,a6e407da-7411-4397-8a2e-d9b52780849e,Microsoft Tunnel for Mobile Application Management -Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,REMOTE_HELP,a4c6cf29-1168-4076-ba5c-e8fe0e62b17e,Remote help -Microsoft Power Apps Plan 2 (Qualified Offer),POWERFLOW_P2,ddfae3e3-fcb2-4174-8ebd-3023cb213c8b,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 -Microsoft Power Apps Plan 2 (Qualified Offer),POWERFLOW_P2,ddfae3e3-fcb2-4174-8ebd-3023cb213c8b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Power Apps Plan 2 (Qualified Offer),POWERFLOW_P2,ddfae3e3-fcb2-4174-8ebd-3023cb213c8b,POWERAPPS_P2,00527d7f-d5bc-4c2a-8d1e-6c0de2410c81,Power Apps (Plan 2) -Microsoft Power Apps Plan 2 (Qualified Offer),POWERFLOW_P2,ddfae3e3-fcb2-4174-8ebd-3023cb213c8b,FLOW_P2,56be9436-e4b2-446c-bb7f-cc15d16cca4d,Power Automate (Plan 2) -Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,Forms_Pro_Relationship_Sales,507172c0-6001-4f4f-80e7-f350507af3e5,Microsoft Dynamics 365 Customer Voice for Relationship Sales -Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,56e3d4ca-2e31-4c3f-8d57-89c1d363503b,Microsoft Relationship Sales solution -Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,Retired - Microsoft Social Engagement -Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,Microsoft_Viva_Sales_PremiumTrial,8ba1ff15-7bf6-4620-b65c-ecedb6942766,Microsoft Viva Sales Premium & Trial -Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,Microsoft_Viva_Sales_PowerAutomate,a933a62f-c3fb-48e5-a0b7-ac92b94b4420,Microsoft Viva Sales Premium with Power Automate -Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials -Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Microsoft Stream,STREAM,1f2f344a-700d-42c9-9427-5cea1d5d7ba6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Microsoft Stream,STREAM,1f2f344a-700d-42c9-9427-5cea1d5d7ba6,MICROSOFTSTREAM,acffdce6-c30f-4dc2-81c0-372e33c515ec,MICROSOFT STREAM -Microsoft Stream Plan 2,STREAM_P2,ec156933-b85b-4c50-84ec-c9e5603709ef,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Stream Plan 2,STREAM_P2,ec156933-b85b-4c50-84ec-c9e5603709ef,STREAM_P2,d3a458d0-f10d-48c2-9e44-86f3f684029e,Microsoft Stream Plan 2 -Microsoft Stream Storage Add-On (500 GB),STREAM_STORAGE,9bd7c846-9556-4453-a542-191d527209e8,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Stream Storage Add-On (500 GB),STREAM_STORAGE,9bd7c846-9556-4453-a542-191d527209e8,STREAM_STORAGE,83bced11-77ce-4071-95bd-240133796768,Microsoft Stream Storage Add-On -Microsoft Sustainability Manager Premium,Microsoft_Sustainability_Manager_Premium,aecb477b-2f56-4e38-b711-b752c24fc19b,CDS_CLOUD_FOR_SUSTAINABILITY_PLUS,ba80223c-e515-4642-a838-3e7d66f70cb6,Common Data Services for Cloud for Sustainability Plus -Microsoft Sustainability Manager Premium,Microsoft_Sustainability_Manager_Premium,aecb477b-2f56-4e38-b711-b752c24fc19b,MCS_BIZAPPS_CLOUD_FOR_SUSTAINABILITY_PLUS,ed29ae92-ff5f-4446-8460-83c54d0e7088,MCS - BizApps Cloud for Sustainability Plus -Microsoft Sustainability Manager Premium,Microsoft_Sustainability_Manager_Premium,aecb477b-2f56-4e38-b711-b752c24fc19b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,MCS_BizApps_Cloud_for_Sustainability_USL,c46c42af-d654-4385-8c85-29a84f3dfb22,MCS - BizApps - Cloud for Sustainability USL -Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,POWER_APPS_FOR_MCS_USL,5ffd371c-037a-41a2-98a3-6452f8c5de17,Power Apps for Cloud for Sustainability USL -Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,POWER_AUTOMATE_FOR_MCS_USL,ccbe468e-7973-442c-8ec4-5fbe16438711,Power Automate for Cloud for Sustainability USL -Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Teams Audio Conferencing with dial-out to USA/CAN,Microsoft_Teams_Audio_Conferencing_select_dial_out,1c27243e-fb4d-42b1-ae8c-fe25c9616588,MCOMEETBASIC,9974d6cf-cd24-4ba2-921c-e2aa687da846,Microsoft Teams Audio Conferencing with dial-out to select geographies -Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,MCOFREE,617d9209-3b90-4879-96e6-838c42b2701d,MCO FREE FOR MICROSOFT TEAMS (FREE) -Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,TEAMS_FREE,4fa4026d-ce74-4962-a151-8e96d57ea8e4,MICROSOFT TEAMS (FREE) -Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SHAREPOINT KIOSK -Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,TEAMS_FREE_SERVICE,bd6f2ac2-991a-49f9-b23c-18c96a02c228,TEAMS FREE SERVICE -Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,WHITEBOARD (FIRSTLINE) -Microsoft Teams Calling Plan pay-as-you-go (country zone 1 - US),Microsoft_Teams_Calling_Plan_pay_as_you_go_(country_zone_1_US),9b196e97-5830-4c2e-adc2-1e10ebf5dee5,MCOPSTN_PAYG_1,156a1efe-17cd-4b03-9f17-2eb512298fb3,Microsoft Teams Calling Plan pay-as-you-go - country zone 1 -Microsoft Teams Domestic Calling Plan (240 min),MCOPSTN_6,729dbb8f-8d56-4994-8e33-2f218f549544,MCOPSTN6,346d83bf-6fe6-42ca-b424-b9300d2e21bf,Microsoft 365 Domestic Calling Plan (240 min) -Microsoft Teams Domestic Calling Plan for GCC,MCOPSTN_1_GOV,923f58ab-fca1-46a1-92f9-89fda21238a8,MCOPSTN1_GOV,3c8a8792-7866-409b-bb61-1b20ace0368b,Domestic Calling Plan for Government -Microsoft Teams Domestic Calling Plan for GCC,MCOPSTN_1_GOV,923f58ab-fca1-46a1-92f9-89fda21238a8,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Microsoft Teams Essentials,Teams_Ess,fde42873-30b6-436b-b361-21af5a6b84ae,TeamsEss,f4f2f6de-6830-442b-a433-e92249faebe2,Microsoft Teams Essentials -Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk -Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,ONEDRIVE_BASIC_P2,4495894f-534f-41ca-9d3b-0ebf1220a423,OneDrive for Business (Basic 2) -Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,COMMON DATA SERVICE FOR TEAMS_P1 -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,INSIGHTS BY MYANALYTICS -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNER -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,MICROSOFT SEARCH -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,DESKLESS,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,MICROSOFT STREAM FOR O365 E1 SKU -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,MICROSOFT TEAMS -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,MCO_TEAMS_IW,42a3ec34-28ba-46b6-992f-db53a675ac5b,MICROSOFT TEAMS -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,MOBILE DEVICE MANAGEMENT FOR OFFICE 365 -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE FOR THE WEB -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,OFFICE MOBILE APPS FOR OFFICE 365 -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWER APPS FOR OFFICE 365 -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,POWER AUTOMATE FOR OFFICE 365 -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,POWER VIRTUAL AGENTS FOR OFFICE 365 P1 -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINT STANDARD -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,TO-DO (PLAN 1) -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,WHITEBOARD (PLAN 1) -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER ENTERPRIS -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MCO_TEAMS_IW,42a3ec34-28ba-46b6-992f-db53a675ac5b,Microsoft Teams -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 -Microsoft Teams Phone Standard,MCOEV,e43b5b99-8dfb-405f-9987-dc307f34bcbd,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM -Microsoft Teams Phone Standard for DOD,MCOEV_DOD,d01d9287-694b-44f3-bcc5-ada78c8d953e,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM -Microsoft Teams Phone Standard for Faculty,MCOEV_FACULTY,d979703c-028d-4de5-acbf-7955566b69b9,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTE -Microsoft Teams Phone Standard for GCC,MCOEV_GOV,a460366a-ade7-4791-b581-9fbff1bdaa85,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT -Microsoft Teams Phone Standard for GCC,MCOEV_GOV,a460366a-ade7-4791-b581-9fbff1bdaa85,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,MICROSOFT 365 PHONE SYSTEM FOR GOVERNMENT -Microsoft Teams Phone Standard for GCCHIGH,MCOEV_GCCHIGH,7035277a-5e49-4abc-a24f-0ec49c501bb5,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM -Microsoft Teams Phone Standard for Small and Medium Business,MCOEVSMB_1,aa6791d3-bb09-4bc2-afed-c30c3fe26032,MCOEVSMB,ed777b71-af04-42ca-9798-84344c66f7c6,SKYPE FOR BUSINESS CLOUD PBX FOR SMALL AND MEDIUM BUSINESS -Microsoft Teams Phone Standard for Students,MCOEV_STUDENT,1f338bbc-767e-4a1e-a2d4-b73207cc5b93,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM -Microsoft Teams Phone Standard for TELSTRA,MCOEV_TELSTRA,ffaf2d68-1c95-4eb3-9ddd-59b81fba0f61,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM -Microsoft Teams Phone Standard_USGOV_DOD,MCOEV_USGOV_DOD,b0e7de67-e503-4934-b729-53d595ba5cd1,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM -Microsoft Teams Phone Standard_USGOV_GCCHIGH,MCOEV_USGOV_GCCHIGH,985fcb26-7b94-475b-b512-89356697be71,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM -Microsoft Teams Phone Resource Account,PHONESYSTEM_VIRTUALUSER,440eaaa8-b3e0-484b-a8be-62870b9ba70a,MCOEV_VIRTUALUSER,f47330e9-c134-43b3-9993-e7f004506889,Microsoft 365 Phone Standard Resource Account -Microsoft Teams Phone Resource Account for Faculty,PHONESYSTEM_VIRTUALUSER_FACULTY,0e142028-345e-45da-8d92-8bfd4093bbb9,MCOEV_VIRTUALUSER,f47330e9-c134-43b3-9993-e7f004506889,Microsoft 365 Phone Standard Resource Account -Microsoft Teams Phone Resource Account for GCC,PHONESYSTEM_VIRTUALUSER_GOV,2cf22bcb-0c9e-4bc6-8daf-7e7654c0f285,MCOEV_VIRTUALUSER_GOV,0628a73f-3b4a-4989-bd7b-0f8823144313,Microsoft 365 Phone Standard Resource Account for Government -Microsoft Teams Phone Resource Account_USGOV_GCCHIGH,PHONESYSTEM_VIRTUALUSER_USGOV_GCCHIGH ,e3f0522e-ebb7-4561-9f90-b44516d65b77,MCOEV_VIRTUALUSER,f47330e9-c134-43b3-9993-e7f004506889,Microsoft 365 Phone Standard Resource Account -Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,MICROSOFT_ECDN,85704d55-2e73-47ee-93b4-4b8ea14db92b,Microsoft eCDN -Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_MGMT,0504111f-feb8-4a3c-992a-70280f9a2869,Microsoft Teams Premium Intelligent -Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_CUST,cc8c0802-a325-43df-8cba-995d0c6cb373,Microsoft Teams Premium Personalized -Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_PROTECTION,f8b44f54-18bb-46a3-9658-44ab58712968,Microsoft Teams Premium Secure -Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_VIRTUALAPPT,9104f592-f2a7-4f77-904c-ca5a5715883f,Microsoft Teams Premium Virtual Appointment -Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,MCO_VIRTUAL_APPT,711413d0-b36e-4cd4-93db-0a50a4ab7ea3,Microsoft Teams Premium Virtual Appointments -Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_WEBINAR,78b58230-ec7e-4309-913c-93a45cc4735b,Microsoft Teams Premium Webinar -Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,Teams_Rooms_Basic,c8529366-cffd-4415-ab8f-be0144a33ab1,Teams Rooms Basic -Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,Teams_Room_Basic,8081ca9c-188c-4b49-a8e5-c23b5e9463a8,Teams Rooms Test 1 -Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,Teams_Room_Pro,ec17f317-f4bc-451e-b2da-0167e5c260f9,Teams Rooms Test 2 -Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,Teams_Rooms_Basic,c8529366-cffd-4415-ab8f-be0144a33ab1,Teams Rooms Basic -Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,Teams_Room_Basic,8081ca9c-188c-4b49-a8e5-c23b5e9463a8,Teams Rooms Test 1 -Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,Teams_Room_Pro,ec17f317-f4bc-451e-b2da-0167e5c260f9,Teams Rooms Test 2 -Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft Teams Rooms Basic without Audio Conferencing,Microsoft_Teams_Rooms_Basic_without_Audio_Conferencing,50509a35-f0bd-4c5e-89ac-22f0e16a00f8,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft Teams Rooms Basic without Audio Conferencing,Microsoft_Teams_Rooms_Basic_without_Audio_Conferencing,50509a35-f0bd-4c5e-89ac-22f0e16a00f8,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MTRProManagement,ecc74eae-eeb7-4ad5-9c88-e8b2bfca75b8,Microsoft Teams Rooms Pro Management -Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,Teams_Room_Basic,8081ca9c-188c-4b49-a8e5-c23b5e9463a8,Teams Rooms Test 1 -Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,Teams_Room_Pro,ec17f317-f4bc-451e-b2da-0167e5c260f9,Teams Rooms Test 2 -Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government -Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government -Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government -Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government -Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,Teams_Room_Basic,8081ca9c-188c-4b49-a8e5-c23b5e9463a8,Teams Rooms Test 1 -Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,Teams_Room_Pro,ec17f317-f4bc-451e-b2da-0167e5c260f9,Teams Rooms Test 2 -Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 -Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,INTUNE_A_GOV,d216f254-796f-4dab-bbfa-710686e646b9,Microsoft Intune G -Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM -Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,MICROSOFT TEAMS -Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) -Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,SPECIALTY_DEVICES,cfce7ae3-4b41-4438-999c-c0e91f3b7fb9,Specialty devices -Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government -Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government -Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government -Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government -Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID Plan 1 -Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,Teams_Room_Standard,92c6b761-01de-457a-9dd9-793a975238f7,Teams Room Standard -Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium Plan 1 -Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government -Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government -Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government -Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government -Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,Teams_Room_Standard,92c6b761-01de-457a-9dd9-793a975238f7,Teams Room Standard -Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,INTUNE_A_GOV,d216f254-796f-4dab-bbfa-710686e646b9,Microsoft Intune G -Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium Plan 1 -Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government -Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government -Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government -Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,Teams_Room_Standard,92c6b761-01de-457a-9dd9-793a975238f7,Teams Room Standard -Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,INTUNE_A_GOV,d216f254-796f-4dab-bbfa-710686e646b9,Microsoft Intune G -Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,MCO_TEAMS_IW,42a3ec34-28ba-46b6-992f-db53a675ac5b,Microsoft Teams -Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 -Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 -Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk -Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft Threat Experts - Experts on Demand,EXPERTS_ON_DEMAND,9fa2f157-c8e4-4351-a3f2-ffa506da1406,EXPERTS_ON_DEMAND,b83a66d4-f05f-414d-ac0f-ea1c5239c42b,Microsoft Threat Experts - Experts on Demand -Microsoft Viva Goals,Microsoft_Viva_Goals,ba929637-f158-4dee-927c-eb7cdefcd955,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Viva Goals,Microsoft_Viva_Goals,ba929637-f158-4dee-927c-eb7cdefcd955,Viva_Goals_Premium,b44c6eaf-5c9f-478c-8f16-8cea26353bfb,Viva Goals -Microsoft Viva Glint,Viva_Glint_Standalone,3dc7332d-f0fa-40a3-81d3-dd6b84469b78,Viva_Glint,6b270342-093e-4015-8c5c-224561532fbf,Viva Glint -Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,GRAPH_CONNECTORS_SEARCH_INDEX_TOPICEXP,b74d57b2-58e9-484a-9731-aeccbba954f0,Graph Connectors Search with Index (Microsoft Viva Topics) -Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,WORKPLACE_ANALYTICS_INSIGHTS_USER,b622badb-1b45-48d5-920f-4b27a2c0996c,Microsoft Viva Insights -Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,WORKPLACE_ANALYTICS_INSIGHTS_BACKEND,ff7b261f-d98b-415b-827c-42a3fdf015af,Microsoft Viva Insights Backend -Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,CORTEX,c815c93d-0759-4bb8-b857-bc921a71be83,Microsoft Viva Topics -Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,VIVAENGAGE_COMMUNITIES_AND_COMMUNICATIONS,43304c6a-1d4e-4e0b-9b06-5b2a2ff58a90,Viva Engage Communities and Communications -Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,VIVAENGAGE_KNOWLEDGE,c244cc9e-622f-4576-92ea-82e233e44e36,Viva Engage Knowledge -Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,Viva_Goals_Premium,b44c6eaf-5c9f-478c-8f16-8cea26353bfb,Viva Goals -Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,VIVA_LEARNING_PREMIUM,7162bd38-edae-4022-83a7-c5837f951759,Viva Learning -Minecraft Education Student,MEE_STUDENT,533b8f26-f74b-4e9c-9c59-50fc4b393b63,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education -Minecraft Education Student,MEE_STUDENT,533b8f26-f74b-4e9c-9c59-50fc4b393b63,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Minecraft Education Faculty,MEE_FACULTY,984df360-9a74-4647-8cf8-696749f6247a,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education -Minecraft Education Faculty,MEE_FACULTY,984df360-9a74-4647-8cf8-696749f6247a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Office 365 Multi-Geo Capabilities,OFFICE365_MULTIGEO,84951599-62b7-46f3-9c9d-30551b2ad607,EXCHANGEONLINE_MULTIGEO,897d51f1-2cfa-4848-9b30-469149f5e68e,Exchange Online Multi-Geo -Office 365 Multi-Geo Capabilities,OFFICE365_MULTIGEO,84951599-62b7-46f3-9c9d-30551b2ad607,SHAREPOINTONLINE_MULTIGEO,735c1d98-dd3f-4818-b4ed-c8052e18e62d,SharePoint Multi-Geo -Office 365 Multi-Geo Capabilities,OFFICE365_MULTIGEO,84951599-62b7-46f3-9c9d-30551b2ad607,TEAMSMULTIGEO,41eda15d-6b52-453b-906f-bc4a5b25a26b,Teams Multi-Geo -Nonprofit Portal,NONPROFIT_PORTAL,aa2695c9-8d59-4800-9dc8-12e01f1735af,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Nonprofit Portal,NONPROFIT_PORTAL,aa2695c9-8d59-4800-9dc8-12e01f1735af,NONPROFIT_PORTAL,7dbc2d88-20e2-4eb6-b065-4510b38d6eb2,Nonprofit Portal -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service - O365 P1 -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro Plan 2 -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service - O365 P1 -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro Plan 2 -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service - O365 P1 -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro Plan 2 -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service - O365 P1 -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro Plan 2 -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for EDU -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service - O365 P2 -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams_P2 -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro Plan 3 -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the web (Education) -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 P2 -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint Plan 2 for EDU -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service - O365 P2 -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams_P2 -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro Plan 3 -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 P2 -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government -Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics -Premium -Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics - Standard -Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government -Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft Defender for Office 365 (Plan 1),ATP_ENTERPRISE,4ef96642-f096-40de-a3e9-d83fb2f90211,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Office 365 Extra File Storage for GCC,SHAREPOINTSTORAGE_GOV,e5788282-6381-469f-84f0-3d7d4021d34d,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE_S_FOUNDATION_GOV -Office 365 Extra File Storage for GCC,SHAREPOINTSTORAGE_GOV,e5788282-6381-469f-84f0-3d7d4021d34d,SHAREPOINTSTORAGE_GOV,e5bb877f-6ac9-4461-9e43-ca581543ab16,SHAREPOINTSTORAGE_GOV -Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams_P1 -Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for O365 E1 SKU -Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,MCO_TEAMS_IW,42a3ec34-28ba-46b6-992f-db53a675ac5b,Microsoft Teams -Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web -Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 -Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 -Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 P1 -Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk -Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Office 365 Cloud App Security,ADALLOM_O365,84d5f90f-cd0d-4864-b90b-1c7ba63b4808,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Office 365 Cloud App Security,ADALLOM_O365,84d5f90f-cd0d-4864-b90b-1c7ba63b4808,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management -Office 365 Extra File Storage,SHAREPOINTSTORAGE,99049c9c-6011-4908-bf17-15f496e6519d,SHAREPOINTSTORAGE,be5a7ed5-c598-4fcd-a061-5e6724c68a58,Office 365 Extra File Storage -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 -Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams -Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,FORMS_PLAN_E1_AR_GCCHIGH,9c37c053-dfe3-4421-b6d4-bac8b86d42bd,Microsoft Forms (Plan E1) for GCCHigh -Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,MICROSOFT_SEARCH_GCCH,fc9f7921-4ca5-42c6-8533-1b84c4ee496b,Microsoft Search for Arlington -Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh -Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 -Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) -Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service -Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 -Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,POWERAPPS_O365_P1_GCCHIGH,3913e44e-824e-490c-a182-82785d769b45,Power Apps for Office 365 for GCCHigh -Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,FLOW_O365_P1_GCCHIGH,e923bad8-588e-44d5-acd0-b226daa7b4de,Power Automate for Office 365 for GCCHigh -Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,BPOS_S_TODO_1 -Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB -Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) -Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 -Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) -Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) -Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 -Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE -Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD -Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,MICROSOFT STREAM FOR O365 E1 SKU -Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 -Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 -Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,BPOS_S_TODO_3 -Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,EXCHANGE ONLINE (PLAN 2) -Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,FLOW FOR OFFICE 365 -Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,MICROSOFT FORMS (PLAN E5) -Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) -Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,OFFICESUBSCRIPTION -Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,POWERAPPS FOR OFFICE 36 -Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE -Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,SHAREPOINT_S_DEVELOPER,a361d6e2-509e-4e25-a8ad-950060064ef4,SHAREPOINT FOR DEVELOPER -Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,SHAREPOINTWAC_DEVELOPER,527f7cdd-0e86-4c47-b879-f5fd357a3ac6,OFFICE ONLINE FOR DEVELOPER -Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,MICROSOFT STREAM FOR O365 E5 SKU -Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 -Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights -Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU -Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,TEAMS_AR_DOD,fd500458-c24c-478e-856c-a6067a8376cd,Microsoft Teams for DOD (AR) -Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Office 365 ProPlus -Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office Online -Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) -Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights -Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU -Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh (AR) -Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Office 365 ProPlus -Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office Online -Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) -Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,BPOS_S_TODO_2 -Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB -Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,EXCHANGE ONLINE (PLAN 2) -Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,FLOW FOR OFFICE 365 -Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,MICROSOFT FORMS (PLAN E3) -Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) -Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,MCOVOICECONF,27216c54-caf8-4d0d-97e2-517afb5c08f6,SKYPE FOR BUSINESS ONLINE (PLAN 3) -Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,OFFICESUBSCRIPTION -Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,POWERAPPS FOR OFFICE 36 -Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE -Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,MICROSOFT Microsoft Entra RIGHTS -Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) -Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,MICROSOFT STREAM FOR O365 E3 SKU -Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 -Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service - O365 P3 -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams_P3 -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics - Standard -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,M365 Communication Compliance -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for O365 E5 SKU -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 P3 -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,PowerApps for Office 365 Plan 3 -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,Microsoft Communications Compliance -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service - O365 F1 -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams_F1 -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,FORMS_PLAN_K,f07046bd-2a3c-4b96-b0be-dea79d7cbfb8,Microsoft Forms (Plan F1) -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,KAIZALA_O365_P1,73b2a583-6a59-42e3-8e83-54db46bc3278,Microsoft Kaizala Pro Plan 1 -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,POWERAPPS_O365_S1,e0287f9f-e222-4f98-9a83-f379e249159a,Power Apps for Office 365 F3 -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,FLOW_O365_S1,bd91b1a4-9f94-4ecf-b45b-3a65e5c8128a,Power Automate for Office 365 F3 -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,POWER_VIRTUAL_AGENTS_O365_F1,ba2fdb48-290b-4632-b46a-e4ecc58ac11a,Power Virtual Agents for Office 365 F1 -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,PROJECT_O365_F3,7f6f28c2-34bb-4d4b-be36-48ca2e77e1ec,Project for Office (Plan F) -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,FORMS_PLAN_K,f07046bd-2a3c-4b96-b0be-dea79d7cbfb8,Microsoft Forms (Plan F1) -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,KAIZALA_O365_P1,73b2a583-6a59-42e3-8e83-54db46bc3278,Microsoft Kaizala Pro -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,PROJECT_O365_F3,7f6f28c2-34bb-4d4b-be36-48ca2e77e1ec,Project for Office (Plan F) -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,POWERAPPS_O365_S1,e0287f9f-e222-4f98-9a83-f379e249159a,Power Apps for Office 365 F3 -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,FLOW_O365_S1,bd91b1a4-9f94-4ecf-b45b-3a65e5c8128a,Power Automate for Office 365 F3 -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,POWER_VIRTUAL_AGENTS_O365_F1,ba2fdb48-290b-4632-b46a-e4ecc58ac11a,Power Virtual Agents for Office 365 -Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams -Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk -Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,FORMS_PLAN_K_AR_GCCHIGH,59fb5884-fdec-40bf-aa7f-89e2bae79a7a,Microsoft Forms (Plan F1) for GCCHigh -Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,MICROSOFT_SEARCH_GCCH,fc9f7921-4ca5-42c6-8533-1b84c4ee496b,Microsoft Search for Arlington -Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh -Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 -Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk -Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) -Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service -Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 -Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,POWERAPPS_O365_S1_GCCHIGH,b9f1a92f-d4c7-477b-b64c-e23d7b4e8cf9,Power Apps for Office 365 F3 for GCCHigh -Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,FLOW_O365_S1_GCCHIGH,1db85bca-cd60-4bf5-ae54-641e0778a532,Power Automate for Office 365 F3 for GCCHigh -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,DYN365_CDS_O365_P1_GCC,8eb5e9bc-783f-4425-921a-c65f45dd72c6,Common Data Service - O365 P1 GCC -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,CDS_O365_P1_GCC,959e5dec-6522-4d44-8349-132c27c3795a,Common Data Service for Teams_P1 GCC -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,EXCHANGE_S_STANDARD_GOV,e9b4930a-925f-45e2-ac2a-3f7788ca6fdd,Exchange Online (Plan 1) for Government -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,FORMS_GOV_E1,f4cba850-4f34-4fd2-a341-0fddfdce1e8f,Forms for Government (Plan E1) -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,STREAM_O365_E1_GOV,15267263-5986-449d-ac5c-124f3b49b2d6,Microsoft Stream for O365 for Government (E1) -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,OFFICEMOBILE_SUBSCRIPTION_GOV,4ccb60ee-9523-48fd-8f63-4b090f1ad77a,Office Mobile Apps for Office 365 for GCC -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,POWERAPPS_O365_P1_GOV,c42aa49a-f357-45d5-9972-bc29df885fee,Power Apps for Office 365 for Government -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,FLOW_O365_P1_GOV,ad6c8870-6356-474c-901c-64d7da8cea48,Power Automate for Office 365 for Government -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,SharePoint Plan 1G,f9c43823-deb4-46a8-aa65-8b551f0c4f8a,SharePoint Plan 1G -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,CDS_O365_P2_GCC,a70bbf38-cdda-470d-adb8-5804b8770f41,Common Data Service for Teams -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,FORMS_GOV_E3,24af5f65-d0f3-467b-9f78-ea798c4aeffc,Microsoft Forms for Government (Plan E3) -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,PROJECT_O365_P2_GOV,e7d09ae4-099a-4c34-a2a2-3e166e95c44a,Project for Government (Plan E3) -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,STREAM_O365_E3_GOV,2c1ada27-dbaa-46f9-bda6-ecb94445f758,Stream for Office 365 for Government (E3) -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,DYN365_CDS_O365_P2_GCC,06162da2-ebf9-4954-99a0-00fee96f95cc,Common Data Service -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,CDS_O365_P2_GCC,a70bbf38-cdda-470d-adb8-5804b8770f41,Common Data Service for Teams -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,FORMS_GOV_E3,24af5f65-d0f3-467b-9f78-ea798c4aeffc,Microsoft Forms for Government (Plan E3) -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,OFFICEMOBILE_SUBSCRIPTION_GOV,4ccb60ee-9523-48fd-8f63-4b090f1ad77a,Office Mobile Apps for Office 365 for GCC -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,PROJECT_O365_P2_GOV,e7d09ae4-099a-4c34-a2a2-3e166e95c44a,Project for Government (Plan E3) -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,STREAM_O365_E3_GOV,2c1ada27-dbaa-46f9-bda6-ecb94445f758,Stream for Office 365 for Government (E3) -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,DYN365_CDS_O365_P2_GCC,06162da2-ebf9-4954-99a0-00fee96f95cc,Common Data Service -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government -Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,EXCHANGE_S_STANDARD_MIDMARKET,fc52cc4b-ed7d-472d-bbe7-b081c23ecc56,EXCHANGE ONLINE PLAN -Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,MCOSTANDARD_MIDMARKET,b2669e95-76ef-4e7e-a367-002f60a39f3e,SKYPE FOR BUSINESS ONLINE (PLAN 2) FOR MIDSIZ -Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,OFFICESUBSCRIPTION -Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,SHAREPOINTENTERPRISE_MIDMARKET,6b5b6a67-fc72-4a1f-a2b5-beecf05de761,SHAREPOINT PLAN 1 -Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,YAMMER_MIDSIZE,41bf139a-4e60-409f-9346-a1361efc6dfb,YAMMER_MIDSIZE -Office 365 Small Business,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,EXCHANGE_L_STANDARD,d42bdbd6-c335-4231-ab3d-c8f348d5aff5,EXCHANGE ONLINE (P1) -Office 365 Small Business,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,MCOLITE,70710b6b-3ab4-4a38-9f6d-9f169461650a,SKYPE FOR BUSINESS ONLINE (PLAN P1) -Office 365 Small Business,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,SHAREPOINTLITE,a1f3d0a8-84c0-4ae0-bae4-685917b8ab48,SHAREPOINTLITE -Office 365 Small Business,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,EXCHANGE_L_STANDARD,d42bdbd6-c335-4231-ab3d-c8f348d5aff5,EXCHANGE ONLINE (P1) -Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,MCOLITE,70710b6b-3ab4-4a38-9f6d-9f169461650a,SKYPE FOR BUSINESS ONLINE (PLAN P1) -Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,OFFICE_PRO_PLUS_SUBSCRIPTION_SMBIZ,8ca59559-e2ca-470b-b7dd-afd8c0dee963,OFFICE 365 SMALL BUSINESS SUBSCRIPTION -Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,SHAREPOINTLITE,a1f3d0a8-84c0-4ae0-bae4-685917b8ab48,SHAREPOINTLITE -Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC -Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,FLOW_FOR_PROJECT_GCC,7251de8f-ecfb-481e-bcff-4af4f1a4573c,Data integration for Project with Power Automate for GCC -Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,OFFICEMOBILE_SUBSCRIPTION_GOV,4ccb60ee-9523-48fd-8f63-4b090f1ad77a,Office Mobile Apps for Office 365 for GCC -Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client -Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,PROJECT_PROFESSIONAL_FOR_GOV,49c7bc16-7004-4df6-8cd5-4ec48b7e9ea0,Project P3 for GOV -Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC -OneDrive for Business (Plan 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) -OneDrive for Business (Plan 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,ONEDRIVESTANDARD -OneDrive for Business (Plan 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -OneDrive for Business (Plan 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -OneDrive for Business (Plan 2),WACONEDRIVEENTERPRISE,ed01faf2-1d88-4947-ae91-45ca18703a96,ONEDRIVEENTERPRISE,afcafa6a-d966-4462-918c-ec0b4e0fe642,ONEDRIVEENTERPRISE -OneDrive for Business (Plan 2),WACONEDRIVEENTERPRISE,ed01faf2-1d88-4947-ae91-45ca18703a96,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,CDSAICAPACITY_PERAPP,5d7a2e9a-4ee5-4f1c-bc9f-abc481bf39d8,AI Builder capacity Per App add-on -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,DYN365_CDS_P1_GOV,ce361df2-f2a5-4713-953f-4050ba09aad8,Common Data Service for Government -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,DYN365_CDS_P2_GOV,37396c73-2203-48e6-8be1-d882dae53275,Common Data Service for Government -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,DYN365_CDS_FOR_PROJECT_GCC_P5,684a2229-5c57-43ab-b69f-f86fe8997358,Common Data Service for Project P5 for GCC -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,CDSAICAPACITY_PERUSER,91f50f7b-2204-4803-acac-5cf5668b8b39,AI Builder capacity Per User add-on -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_O365_S1_GOV,49f06c3d-da7d-4fa0-bcce-1458fdd18a59,Power Apps for Office 365 F3 for Government -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_O365_P1_GOV,c42aa49a-f357-45d5-9972-bc29df885fee,Power Apps for Office 365 for Government -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_DYN_TEAM_GOV,47bdde6a-959f-4c7f-8d59-3243e34f1cb3,Power Automate for Dynamics 365 Team Members for Government -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_O365_S1_GOV,5d32692e-5b24-4a59-a77e-b2a8650e25c1,Power Automate for Office 365 F3 for Government -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_O365_P1_GOV,ad6c8870-6356-474c-901c-64d7da8cea48,Power Automate for Office 365 for Government -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_DYN_P2_GOV,06879193-37cc-4976-8991-f8165c994ce7,Power Automate P2 for Dynamics 365 for Government -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_DYN_TEAM_GOV,63efc247-5f28-43e3-a2f8-00c183e3f1db,PowerApps for Dynamics 365 Team Members for Government -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_DYN_P2_GOV,51729bb5-7564-4927-8df8-9f5b12279cf3,PowerApps Plan 2 for Dynamics 365 for Government -Power Apps and Logic Flows,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Power Apps and Logic Flows,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,POWERFLOWSFREE,0b4346bb-8dc3-4079-9dfc-513696f56039,LOGIC FLOWS -Power Apps and Logic Flows,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,POWERVIDEOSFREE,2c4ec2dc-c62d-4167-a966-52a3e6374015,MICROSOFT POWER VIDEOS BASIC -Power Apps and Logic Flows,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,POWERAPPSFREE,e61a2945-1d4e-4523-b6e7-30ba39d20f32,MICROSOFT POWERAPPS -PowerApps per app baseline access,POWERAPPS_PER_APP_IW,bf666882-9c9b-4b2e-aa2f-4789b0a52ba2,CDS_PER_APP_IWTRIAL,94a669d1-84d5-4e54-8462-53b0ae2c8be5,CDS Per app baseline access -PowerApps per app baseline access,POWERAPPS_PER_APP_IW,bf666882-9c9b-4b2e-aa2f-4789b0a52ba2,Flow_Per_APP_IWTRIAL,dd14867e-8d31-4779-a595-304405f5ad39,Flow per app baseline access -PowerApps per app baseline access,POWERAPPS_PER_APP_IW,bf666882-9c9b-4b2e-aa2f-4789b0a52ba2,POWERAPPS_PER_APP_IWTRIAL,35122886-cef5-44a3-ab36-97134eabd9ba,PowerApps per app baseline access -Power Apps Per App BD Only for GCC,POWERAPPS_PER_APP_BD_ONLY_GCC,cdc8d0fc-fd16-4954-aae6-ed89a99f5620,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Power Apps Per App BD Only for GCC,POWERAPPS_PER_APP_BD_ONLY_GCC,cdc8d0fc-fd16-4954-aae6-ed89a99f5620,CDS_ POWERAPPS_PER_APP_CUSTOM_GCC,ee493f70-a3b3-4204-9511-e3f6083b8df3,CDS Power Apps Per App Custom GCC -Power Apps Per App BD Only for GCC,POWERAPPS_PER_APP_BD_ONLY_GCC,cdc8d0fc-fd16-4954-aae6-ed89a99f5620,POWERAPPS_PER_APP_GCC,be6e5cba-3661-424c-b79a-6d95fa1d849a,Power Apps per App Plan for Government -Power Apps Per App BD Only for GCC,POWERAPPS_PER_APP_BD_ONLY_GCC,cdc8d0fc-fd16-4954-aae6-ed89a99f5620,Flow_Per_APP_GCC,8e2c2c3d-07f6-4da7-86a9-e78cc8c2c8b9,Power Automate for Power Apps per App Plan for Government -Power Apps per app plan,POWERAPPS_PER_APP,a8ad7d2b-b8cf-49d6-b25a-69094a0be206,CDS_PER_APP,9f2f00ad-21ae-4ceb-994b-d8bc7be90999,CDS PowerApps per app plan -Power Apps per app plan,POWERAPPS_PER_APP,a8ad7d2b-b8cf-49d6-b25a-69094a0be206,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power Apps per app plan,POWERAPPS_PER_APP,a8ad7d2b-b8cf-49d6-b25a-69094a0be206,POWERAPPS_PER_APP,b4f657ff-d83e-4053-909d-baa2b595ec97,Power Apps per App Plan -Power Apps per app plan,POWERAPPS_PER_APP,a8ad7d2b-b8cf-49d6-b25a-69094a0be206,Flow_Per_APP,c539fa36-a64e-479a-82e1-e40ff2aa83ee,Power Automate for Power Apps per App Plan -Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,CDSAICAPACITY_PERAPP,5d7a2e9a-4ee5-4f1c-bc9f-abc481bf39d8,AI Builder capacity Per App add-on -Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,DATAVERSE_POWERAPPS_PER_APP_NEW,6f0e9100-ff66-41ce-96fc-3d8b7ad26887,Dataverse for Power Apps per app -Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,POWERAPPS_PER_APP_NEW,14f8dac2-0784-4daa-9cb2-6d670b088d64,Power Apps per app -Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,Flow_Per_APP,c539fa36-a64e-479a-82e1-e40ff2aa83ee,Power Automate for Power Apps per App Plan -Power Apps per app plan (1 app or website) BD Only - GCC,Power_Apps_per_app_plan_(1_app_or_portal)_BD_Only_GCC,816ee058-f70c-42ad-b433-d6171984ea20,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power Apps per app plan (1 app or website) BD Only - GCC,Power_Apps_per_app_plan_(1_app_or_portal)_BD_Only_GCC,816ee058-f70c-42ad-b433-d6171984ea20,CDS_ POWERAPPS_PER_APP_CUSTOM_NEW,c2da6658-f89d-49f2-9508-40431dee115b,CDS Power Apps Per App Custom New -Power Apps per app plan (1 app or website) BD Only - GCC,Power_Apps_per_app_plan_(1_app_or_portal)_BD_Only_GCC,816ee058-f70c-42ad-b433-d6171984ea20,POWERAPPS_PER_APP_GCC_NEW,70091fc8-1836-470f-a386-f4e6639cb04e,Power Apps per app for GCC -Power Apps per app plan (1 app or website) BD Only - GCC,Power_Apps_per_app_plan_(1_app_or_portal)_BD_Only_GCC,816ee058-f70c-42ad-b433-d6171984ea20,Flow_Per_APP_GCC,8e2c2c3d-07f6-4da7-86a9-e78cc8c2c8b9,Power Automate for Power Apps per App Plan for Government -Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,CDSAICAPACITY_PERAPP,5d7a2e9a-4ee5-4f1c-bc9f-abc481bf39d8,AI Builder capacity Per App add-on -Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,DATAVERSE_POWERAPPS_PER_APP_NEW,6f0e9100-ff66-41ce-96fc-3d8b7ad26887,Dataverse for Power Apps per app -Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,POWERAPPS_PER_APP_GCC_NEW,70091fc8-1836-470f-a386-f4e6639cb04e,Power Apps per app for GCC -Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,Flow_Per_APP_GCC,8e2c2c3d-07f6-4da7-86a9-e78cc8c2c8b9,Power Automate for Power Apps per App Plan for Government -Power Apps per app plan for Government,POWERAPPS_PER_APP_GCC,8623b2d7-5e24-4281-b6b7-086a5f3b0b1c,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Power Apps per app plan for Government,POWERAPPS_PER_APP_GCC,8623b2d7-5e24-4281-b6b7-086a5f3b0b1c,CDS_PER_APP_GCC,d7f9c9bc-0a28-4da4-b5f1-731acb27a3e4,CDS PowerApps per app plan for GCC -Power Apps per app plan for Government,POWERAPPS_PER_APP_GCC,8623b2d7-5e24-4281-b6b7-086a5f3b0b1c,POWERAPPS_PER_APP_GCC,be6e5cba-3661-424c-b79a-6d95fa1d849a,Power Apps per App Plan for Government -Power Apps per app plan for Government,POWERAPPS_PER_APP_GCC,8623b2d7-5e24-4281-b6b7-086a5f3b0b1c,Flow_Per_APP_GCC,8e2c2c3d-07f6-4da7-86a9-e78cc8c2c8b9,Power Automate for Power Apps per App Plan for Government -Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,CDS_ POWERAPPS_PER_USER_CUSTOM,2e8dde43-6986-479d-b179-7dbe31c31f60,CDS Power Apps Per User Custom -Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,POWERAPPS_PER_USER,ea2cf03b-ac60-46ae-9c1d-eeaeb63cec86,Power Apps per User Plan -Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,Flow_PowerApps_PerUser,dc789ed8-0170-4b65-a415-eb77d5bb350a,Power Automate for Power Apps per User Plan -Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 -Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,POWERAPPS_PER_USER,ea2cf03b-ac60-46ae-9c1d-eeaeb63cec86,Power Apps per User Plan -Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,Flow_PowerApps_PerUser,dc789ed8-0170-4b65-a415-eb77d5bb350a,Power Automate for Power Apps per User Plan -Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,CDSAICAPACITY_PERUSER,91f50f7b-2204-4803-acac-5cf5668b8b39,AI Builder capacity Per User add-on -Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,CDSAICAPACITY_PERUSER_NEW,74d93933-6f22-436e-9441-66d205435abb,AI Builder capacity Per User add-on -Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,DYN365_CDS_P2_GOV,37396c73-2203-48e6-8be1-d882dae53275,Common Data Service for Government -Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,POWERAPPS_PER_USER_GCC,8f55b472-f8bf-40a9-be30-e29919d4ddfe,Power Apps per User Plan for Government -Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,Flow_PowerApps_PerUser_GCC,8e3eb3bd-bc99-4221-81b8-8b8bc882e128,Power Automate for Power Apps per User Plan for GCC -PowerApps Plan 1 for Government,POWERAPPS_P1_GOV,eca22b68-b31f-4e9c-a20c-4d40287bc5dd,DYN365_CDS_P1_GOV,ce361df2-f2a5-4713-953f-4050ba09aad8,Common Data Service for Government -PowerApps Plan 1 for Government,POWERAPPS_P1_GOV,eca22b68-b31f-4e9c-a20c-4d40287bc5dd,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -PowerApps Plan 1 for Government,POWERAPPS_P1_GOV,eca22b68-b31f-4e9c-a20c-4d40287bc5dd,FLOW_P1_GOV,774da41c-a8b3-47c1-8322-b9c1ab68be9f,Power Automate (Plan 1) for Government -PowerApps Plan 1 for Government,POWERAPPS_P1_GOV,eca22b68-b31f-4e9c-a20c-4d40287bc5dd,POWERAPPS_P1_GOV,5ce719f1-169f-4021-8a64-7d24dcaec15f,PowerApps Plan 1 for Government -Power Apps Portals login capacity add-on Tier 2 (10 unit min),POWERAPPS_PORTALS_LOGIN_T2,57f3babd-73ce-40de-bcb2-dadbfbfff9f7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power Apps Portals login capacity add-on Tier 2 (10 unit min),POWERAPPS_PORTALS_LOGIN_T2,57f3babd-73ce-40de-bcb2-dadbfbfff9f7,CDS_POWERAPPS_PORTALS_LOGIN,32ad3a4e-2272-43b4-88d0-80d284258208,Common Data Service Power Apps Portals Login Capacity -Power Apps Portals login capacity add-on Tier 2 (10 unit min),POWERAPPS_PORTALS_LOGIN_T2,57f3babd-73ce-40de-bcb2-dadbfbfff9f7,POWERAPPS_PORTALS_LOGIN,084747ad-b095-4a57-b41f-061d84d69f6f,Power Apps Portals Login Capacity Add-On -Power Apps Portals login capacity add-on Tier 2 (10 unit min) for Government,POWERAPPS_PORTALS_LOGIN_T2_GCC,26c903d5-d385-4cb1-b650-8d81a643b3c4,CDS_POWERAPPS_PORTALS_LOGIN_GCC,0f7b9a29-7990-44ff-9d05-a76be778f410,Common Data Service Power Apps Portals Login Capacity for GCC -Power Apps Portals login capacity add-on Tier 2 (10 unit min) for Government,POWERAPPS_PORTALS_LOGIN_T2_GCC,26c903d5-d385-4cb1-b650-8d81a643b3c4,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Power Apps Portals login capacity add-on Tier 2 (10 unit min) for Government,POWERAPPS_PORTALS_LOGIN_T2_GCC,26c903d5-d385-4cb1-b650-8d81a643b3c4,POWERAPPS_PORTALS_LOGIN_GCC,bea6aef1-f52d-4cce-ae09-bed96c4b1811,Power Apps Portals Login Capacity Add-On for Government -Power Apps Portals login capacity add-on Tier 3 (50 unit min),POWERAPPS_PORTALS_LOGIN_T3,927d8402-8d3b-40e8-b779-34e859f7b497,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power Apps Portals login capacity add-on Tier 3 (50 unit min),POWERAPPS_PORTALS_LOGIN_T3,927d8402-8d3b-40e8-b779-34e859f7b497,CDS_POWERAPPS_PORTALS_LOGIN,32ad3a4e-2272-43b4-88d0-80d284258208,Common Data Service Power Apps Portals Login Capacity -Power Apps Portals login capacity add-on Tier 3 (50 unit min),POWERAPPS_PORTALS_LOGIN_T3,927d8402-8d3b-40e8-b779-34e859f7b497,POWERAPPS_PORTALS_LOGIN,084747ad-b095-4a57-b41f-061d84d69f6f,Power Apps Portals Login Capacity Add-On -Power Apps Portals page view capacity add-on,POWERAPPS_PORTALS_PAGEVIEW,a0de5e3a-2500-4a19-b8f4-ec1c64692d22,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power Apps Portals page view capacity add-on,POWERAPPS_PORTALS_PAGEVIEW,a0de5e3a-2500-4a19-b8f4-ec1c64692d22,CDS_POWERAPPS_PORTALS_PAGEVIEW,72c30473-7845-460a-9feb-b58f216e8694,CDS PowerApps Portals page view capacity add-on -Power Apps Portals page view capacity add-on,POWERAPPS_PORTALS_PAGEVIEW,a0de5e3a-2500-4a19-b8f4-ec1c64692d22,POWERAPPS_PORTALS_PAGEVIEW,1c5a559a-ec06-4f76-be5b-6a315418495f,Power Apps Portals Page View Capacity Add-On -Power Apps Portals page view capacity add-on for Government,POWERAPPS_PORTALS_PAGEVIEW_GCC,15a64d3e-5b99-4c4b-ae8f-aa6da264bfe7,CDS_POWERAPPS_PORTALS_PAGEVIEW_GCC,352257a9-db78-4217-a29d-8b8d4705b014,CDS PowerApps Portals page view capacity add-on for GCC -Power Apps Portals page view capacity add-on for Government,POWERAPPS_PORTALS_PAGEVIEW_GCC,15a64d3e-5b99-4c4b-ae8f-aa6da264bfe7,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Power Apps Portals page view capacity add-on for Government,POWERAPPS_PORTALS_PAGEVIEW_GCC,15a64d3e-5b99-4c4b-ae8f-aa6da264bfe7,POWERAPPS_PORTALS_PAGEVIEW_GCC,483d5646-7724-46ac-ad71-c78b7f099d8d,Power Apps Portals Page View Capacity Add-On for Government -Power Automate per flow plan,FLOW_BUSINESS_PROCESS,b3a42176-0a8c-4c3f-ba4e-f2b37fe5be6b,CDS_Flow_Business_Process,c84e52ae-1906-4947-ac4d-6fb3e5bf7c2e,Common data service for Flow per business process plan -Power Automate per flow plan,FLOW_BUSINESS_PROCESS,b3a42176-0a8c-4c3f-ba4e-f2b37fe5be6b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power Automate per flow plan,FLOW_BUSINESS_PROCESS,b3a42176-0a8c-4c3f-ba4e-f2b37fe5be6b,FLOW_BUSINESS_PROCESS,7e017b61-a6e0-4bdc-861a-932846591f6e,Flow per business process plan -Power Automate per flow plan for Government,FLOW_BUSINESS_PROCESS_GCC,d9de51e5-d8cd-45bb-8da3-1d55e28c52e6,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Power Automate per flow plan for Government,FLOW_BUSINESS_PROCESS_GCC,d9de51e5-d8cd-45bb-8da3-1d55e28c52e6,CDS_Flow_Business_Process_GCC,54b61386-c818-4634-8400-61c9e8f6acd3,Common Data Service for Power Automate per Business Process Plan for GCC -Power Automate per flow plan for Government,FLOW_BUSINESS_PROCESS_GCC,d9de51e5-d8cd-45bb-8da3-1d55e28c52e6,FLOW_BUSINESS_PROCESS_GCC,cb83e771-a077-4a73-9201-d955585b29fa,Power Automate per Business Process Plan for Government -Power Automate per user plan,FLOW_PER_USER,4a51bf65-409c-4a91-b845-1121b571cc9d,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 -Power Automate per user plan,FLOW_PER_USER,4a51bf65-409c-4a91-b845-1121b571cc9d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power Automate per user plan,FLOW_PER_USER,4a51bf65-409c-4a91-b845-1121b571cc9d,FLOW_PER_USER,c5002c70-f725-4367-b409-f0eff4fee6c0,Flow per user plan -Power Automate per user plan dept,FLOW_PER_USER_DEPT,d80a4c5d-8f05-4b64-9926-6574b9e6aee4,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 -Power Automate per user plan dept,FLOW_PER_USER_DEPT,d80a4c5d-8f05-4b64-9926-6574b9e6aee4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power Automate per user plan dept,FLOW_PER_USER_DEPT,d80a4c5d-8f05-4b64-9926-6574b9e6aee4,FLOW_PER_USER,c5002c70-f725-4367-b409-f0eff4fee6c0,Flow per user plan -Power Automate per user plan for Government,FLOW_PER_USER_GCC,c8803586-c136-479a-8ff3-f5f32d23a68e,DYN365_CDS_P2_GOV,37396c73-2203-48e6-8be1-d882dae53275,Common Data Service for Government -Power Automate per user plan for Government,FLOW_PER_USER_GCC,c8803586-c136-479a-8ff3-f5f32d23a68e,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Power Automate per user plan for Government,FLOW_PER_USER_GCC,c8803586-c136-479a-8ff3-f5f32d23a68e,FLOW_PER_USER_GCC,769b8bee-2779-4c5a-9456-6f4f8629fd41,Power Automate per User Plan for Government -Power Automate Premium,POWERAUTOMATE_ATTENDED_RPA,eda1941c-3c4f-4995-b5eb-e85a42175ab9,CDS_ATTENDED_RPA,3da2fd4c-1bee-4b61-a17f-94c31e5cab93,Common Data Service Attended RPA -Power Automate Premium,POWERAUTOMATE_ATTENDED_RPA,eda1941c-3c4f-4995-b5eb-e85a42175ab9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power Automate Premium,POWERAUTOMATE_ATTENDED_RPA,eda1941c-3c4f-4995-b5eb-e85a42175ab9,POWER_AUTOMATE_ATTENDED_RPA,375cd0ad-c407-49fd-866a-0bff4f8a9a4d,Power Automate RPA Attended -Power Automate Premium for Government,POWERAUTOMATE_ATTENDED_RPA_GCC,d3987516-4b53-4dc0-8335-411260bf5626,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Power Automate Premium for Government,POWERAUTOMATE_ATTENDED_RPA_GCC,d3987516-4b53-4dc0-8335-411260bf5626,CDS_ATTENDED_RPA_GCC,4802707d-47e1-45dc-82c5-b6981f0fb38c,Common Data Service Attended RPA for Government -Power Automate Premium for Government,POWERAUTOMATE_ATTENDED_RPA_GCC,d3987516-4b53-4dc0-8335-411260bf5626,POWER_AUTOMATE_ATTENDED_RPA_GCC,fb613c67-1a58-4645-a8df-21e95a37d433,Power Automate Attended RPA for Government -Power Automate Process,Power_Automate_per_process,253ce8d3-6122-4240-8b04-f434a8fa831f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power Automate Process,Power_Automate_per_process,253ce8d3-6122-4240-8b04-f434a8fa831f,DATAVERSE_FOR_POWER_AUTOMATE_PER_PROCESS,d7c3df99-6f58-40b9-8940-cd3a51679d85,Dataverse for Power Automate Per Process -Power Automate unattended RPA add-on,POWERAUTOMATE_UNATTENDED_RPA,3539d28c-6e35-4a30-b3a9-cd43d5d3e0e2,CDS_UNATTENDED_RPA,b475952f-128a-4a44-b82a-0b98a45ca7fb,Common Data Service Unattended RPA -Power Automate unattended RPA add-on,POWERAUTOMATE_UNATTENDED_RPA,3539d28c-6e35-4a30-b3a9-cd43d5d3e0e2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power Automate unattended RPA add-on,POWERAUTOMATE_UNATTENDED_RPA,3539d28c-6e35-4a30-b3a9-cd43d5d3e0e2,POWER_AUTOMATE_UNATTENDED_RPA,0d373a98-a27a-426f-8993-f9a425ae99c5,Power Automate Unattended RPA add-on -Power Automate unattended RPA add-on for Government,POWERAUTOMATE_UNATTENDED_RPA_GCC,086e9b70-4720-4442-ab6d-3ef32bfb4721,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Power Automate unattended RPA add-on for Government,POWERAUTOMATE_UNATTENDED_RPA_GCC,086e9b70-4720-4442-ab6d-3ef32bfb4721,CDS_UNATTENDED_RPA_GCC,5141c408-df3d-456a-9878-a65119b0a750,Common Data Service Unattended RPA for Government -Power Automate unattended RPA add-on for Government,POWERAUTOMATE_UNATTENDED_RPA_GCC,086e9b70-4720-4442-ab6d-3ef32bfb4721,POWER_AUTOMATE_UNATTENDED_RPA_GCC,45e63e9f-6dd9-41fd-bd41-93bfa008c537,Power Automate Unattended RPA for Government -Power BI,POWER_BI_INDIVIDUAL_USER,e2767865-c3c9-4f09-9f99-6eee6eef861a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power BI,POWER_BI_INDIVIDUAL_USER,e2767865-c3c9-4f09-9f99-6eee6eef861a,SQL_IS_SSIM,fc0a60aa-feee-4746-a0e3-aecfe81a38dd,Microsoft Power BI Information Services Plan 1 -Power BI,POWER_BI_INDIVIDUAL_USER,e2767865-c3c9-4f09-9f99-6eee6eef861a,BI_AZURE_P1,2125cfd7-2110-4567-83c4-c1cd5275163d,Microsoft Power BI Reporting and Analytics Plan 1 -Power BI for Office 365 Add-On,POWER_BI_ADDON,45bc2c81-6072-436a-9b0b-3b12eefbc402,BI_AZURE_P1,2125cfd7-2110-4567-83c4-c1cd5275163d,MICROSOFT POWER BI REPORTING AND ANALYTICS PLAN 1 -Power BI for Office 365 Add-On,POWER_BI_ADDON,45bc2c81-6072-436a-9b0b-3b12eefbc402,SQL_IS_SSIM,fc0a60aa-feee-4746-a0e3-aecfe81a38dd,MICROSOFT POWER BI INFORMATION SERVICES PLAN -Power BI Premium P1,PBI_PREMIUM_P1_ADDON,7b26f5ab-a763-4c00-a1ac-f6c4b5506945,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power BI Premium P1,PBI_PREMIUM_P1_ADDON,7b26f5ab-a763-4c00-a1ac-f6c4b5506945,PBI_PREMIUM_P1_ADDON,9da49a6d-707a-48a1-b44a-53dcde5267f8,Power BI Premium P -Power BI Premium P1 GCC,PBI_PREMIUM_P1_ADDON_GCC,f59b22a0-9819-48bf-b01d-715ef2b31027,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Power BI Premium P1 GCC,PBI_PREMIUM_P1_ADDON_GCC,f59b22a0-9819-48bf-b01d-715ef2b31027,PBI_PREMIUM_P1_ADDON_GCC,30df3dbd-5bf6-4d74-9417-cccc096595e4,Power BI Premium P1 for GCC -Power BI Premium Per User,PBI_PREMIUM_PER_USER,c1d032e0-5619-4761-9b5c-75b6831e1711,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power BI Premium Per User,PBI_PREMIUM_PER_USER,c1d032e0-5619-4761-9b5c-75b6831e1711,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User -Power BI Premium Per User,PBI_PREMIUM_PER_USER,c1d032e0-5619-4761-9b5c-75b6831e1711,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Power BI Premium Per User Add-On,PBI_PREMIUM_PER_USER_ADDON,de376a03-6e5b-42ec-855f-093fb50b8ca5,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User -Power BI Premium Per User Add-On for GCC,PBI_PREMIUM_PER_USER_ADDON_CE_GCC,66024bbf-4cd4-4329-95c8-c932e2ae01a8,BI_AZURE_P3_GOV,32d15238-9a8c-46da-af3f-21fc5351d365,Power BI Premium Per User for Government -Power BI Premium Per User Add-On for GCC,PBI_PREMIUM_PER_USER_ADDON_GCC,1b572d5e-1bf8-4b19-9259-f9eda31a6972,BI_AZURE_P3_GOV,32d15238-9a8c-46da-af3f-21fc5351d365,Power BI Premium Per User for Government -Power BI Premium Per User Dept,PBI_PREMIUM_PER_USER_DEPT,f168a3fb-7bcf-4a27-98c3-c235ea4b78b4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power BI Premium Per User Dept,PBI_PREMIUM_PER_USER_DEPT,f168a3fb-7bcf-4a27-98c3-c235ea4b78b4,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User -Power BI Premium Per User Dept,PBI_PREMIUM_PER_USER_DEPT,f168a3fb-7bcf-4a27-98c3-c235ea4b78b4,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Power BI Premium Per User for Faculty,PBI_PREMIUM_PER_USER_FACULTY,060d8061-f606-4e69-a4e7-e8fff75ea1f5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power BI Premium Per User for Faculty,PBI_PREMIUM_PER_USER_FACULTY,060d8061-f606-4e69-a4e7-e8fff75ea1f5,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User -Power BI Premium Per User for Faculty,PBI_PREMIUM_PER_USER_FACULTY,060d8061-f606-4e69-a4e7-e8fff75ea1f5,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Power BI Premium Per User for Government,PBI_PREMIUM_PER_USER_GCC,e53d92fc-778b-4a8b-83de-791240ebf88d,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Power BI Premium Per User for Government,PBI_PREMIUM_PER_USER_GCC,e53d92fc-778b-4a8b-83de-791240ebf88d,BI_AZURE_P3_GOV,32d15238-9a8c-46da-af3f-21fc5351d365,Power BI Premium Per User for Government -Power BI Premium Per User for Government,PBI_PREMIUM_PER_USER_GCC,e53d92fc-778b-4a8b-83de-791240ebf88d,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government -Power BI Pro,POWER_BI_PRO,f8a1db68-be16-40ed-86d5-cb42ce701560,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power BI Pro,POWER_BI_PRO,f8a1db68-be16-40ed-86d5-cb42ce701560,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Power BI Pro CE,POWER_BI_PRO_CE,420af87e-8177-4146-a780-3786adaffbca,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power BI Pro CE,POWER_BI_PRO_CE,420af87e-8177-4146-a780-3786adaffbca,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Power BI Pro Dept,POWER_BI_PRO_DEPT,3a6a908c-09c5-406a-8170-8ebb63c42882,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power BI Pro Dept,POWER_BI_PRO_DEPT,3a6a908c-09c5-406a-8170-8ebb63c42882,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Power BI Pro for Faculty,POWER_BI_PRO_FACULTY,de5f128b-46d7-4cfc-b915-a89ba060ea56,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power BI Pro for Faculty,POWER_BI_PRO_FACULTY,de5f128b-46d7-4cfc-b915-a89ba060ea56,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Power BI Pro for GCC,POWERBI_PRO_GOV,f0612879-44ea-47fb-baf0-3d76d9235576,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Power BI Pro for GCC,POWERBI_PRO_GOV,f0612879-44ea-47fb-baf0-3d76d9235576,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government -Power BI Premium EM2,PBI_PREMIUM_EM2_ADDON,8ecbd3c1-b108-437c-a859-e3c125e3f83f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power BI Premium EM2,PBI_PREMIUM_EM2_ADDON,8ecbd3c1-b108-437c-a859-e3c125e3f83f,PBI_PREMIUM_EM2_ADDON,4e29abd1-ba96-44c0-8a72-e24e4fe9956e,Power BI Premium EM2 -Power BI Premium EM1,PBI_PREMIUM_EM1_ADDON,bc757c42-5622-4583-a483-a9e537fcb71c,EXCHANGE_S_FOUNDATION PBI_PREMIUM_EM1_ADDON,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power BI Premium EM1,PBI_PREMIUM_EM1_ADDON,bc757c42-5622-4583-a483-a9e537fcb71c,EXCHANGE_S_FOUNDATION PBI_PREMIUM_EM1_ADDON,a64b30ba-f310-4065-b444-2670ef146db0,Power BI Premium EM1 -Power Pages authenticated users T1 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack,debc9e58-f2d7-412c-a0b6-575608564228,PowerPages_Authenticated_User,0d3366f3-266e-4117-b422-7cabbc165e7c,Power Pages Authenticated Users per site monthly capacity -Power Pages authenticated users T1 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack,debc9e58-f2d7-412c-a0b6-575608564228,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH -Power Pages authenticated users T1 100 users/per site/month capacity pack CN_CN,Power Pages authenticated users T1_CN_CN,9a3c2a19-06c0-41b1-b2ea-13528d7b2e17,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site -Power Pages authenticated users T1 100 users/per site/month capacity pack CN_CN,Power Pages authenticated users T1_CN_CN,9a3c2a19-06c0-41b1-b2ea-13528d7b2e17,PowerPages_Authenticated_User_CN,967d9574-a076-4bb7-ab89-f41f64bc142e,Power Pages Authenticated Users per site monthly capacity China -Power Pages authenticated users T1 100 users/per site/month capacity pack_GCC,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_GCC,27cb5f12-2e3f-4997-a649-45298673e6a1,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site -Power Pages authenticated users T1 100 users/per site/month capacity pack_GCC,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_GCC,27cb5f12-2e3f-4997-a649-45298673e6a1,PowerPages_Authenticated_User_GCC,cdf787bd-1546-48d2-9e93-b21f9ea7067a,Power Pages Authenticated Users per site monthly capacity GCC -Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_DOD,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_DOD,b54f012e-69e1-43b1-87d0-666def064940,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site -Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_DOD,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_DOD,b54f012e-69e1-43b1-87d0-666def064940,PowerPages_Authenticated_User_DoD,03300fea-7a88-45a6-b5bd-29653803c591,Power Pages Authenticated Users per site monthly capacity DoD -Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,978ec396-f930-4ee1-85f3-e1d82e8f73a4,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site -Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,978ec396-f930-4ee1-85f3-e1d82e8f73a4,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH -Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,978ec396-f930-4ee1-85f3-e1d82e8f73a4,PowerPages_Authenticated_Users_GCCH,5410f688-68f2-47a5-9b8f-7466194a806a,Power Pages Authenticated Users per site mthly capacity GCCH New -Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack,6fe1e61a-91e5-40d7-a547-0d2dcc81bce8,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site -Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack,6fe1e61a-91e5-40d7-a547-0d2dcc81bce8,PowerPages_Authenticated_User,0d3366f3-266e-4117-b422-7cabbc165e7c,Power Pages Authenticated Users per site monthly capacity -Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack,6fe1e61a-91e5-40d7-a547-0d2dcc81bce8,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH -Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_GCC,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_GCC,5f43d48c-dd3d-4dd8-a059-70c2f040f979,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site -Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_GCC,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_GCC,5f43d48c-dd3d-4dd8-a059-70c2f040f979,PowerPages_Authenticated_User_GCC,cdf787bd-1546-48d2-9e93-b21f9ea7067a,Power Pages Authenticated Users per site monthly capacity GCC -Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_DOD,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_DOD,f3d55e2d-4367-44fa-952e-83d0b5dd53fc,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site -Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_DOD,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_DOD,f3d55e2d-4367-44fa-952e-83d0b5dd53fc,PowerPages_Authenticated_User_DoD,03300fea-7a88-45a6-b5bd-29653803c591,Power Pages Authenticated Users per site monthly capacity DoD -Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,7cae5432-61bb-48c3-b75c-831394ec13a0,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site -Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,7cae5432-61bb-48c3-b75c-831394ec13a0,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH -Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,7cae5432-61bb-48c3-b75c-831394ec13a0,PowerPages_Authenticated_Users_GCCH,5410f688-68f2-47a5-9b8f-7466194a806a,Power Pages Authenticated Users per site mthly capacity GCCH New -Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack CN_CN,Power Pages authenticated users T2_CN_CN,7d2bb54a-a870-41c2-98d1-1f3b5b523275,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site -Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack CN_CN,Power Pages authenticated users T2_CN_CN,7d2bb54a-a870-41c2-98d1-1f3b5b523275,PowerPages_Authenticated_User_CN,967d9574-a076-4bb7-ab89-f41f64bc142e,Power Pages Authenticated Users per site monthly capacity China -"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack CN_CN",Power Pages authenticated users T3_CN_CN,2cfd692f-a352-4fa8-b960-e3ad0c9b1178,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site -"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack CN_CN",Power Pages authenticated users T3_CN_CN,2cfd692f-a352-4fa8-b960-e3ad0c9b1178,PowerPages_Authenticated_User_CN,967d9574-a076-4bb7-ab89-f41f64bc142e,Power Pages Authenticated Users per site monthly capacity China -"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack",878b8bbd-3cd0-4b44-9a56-3406741e65e0,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site -"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack",878b8bbd-3cd0-4b44-9a56-3406741e65e0,PowerPages_Authenticated_User,0d3366f3-266e-4117-b422-7cabbc165e7c,Power Pages Authenticated Users per site monthly capacity -"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack",878b8bbd-3cd0-4b44-9a56-3406741e65e0,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH -"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_GCC","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_GCC",53265c61-c78c-4223-ab30-422da0c97fbb,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site -"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_GCC","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_GCC",53265c61-c78c-4223-ab30-422da0c97fbb,PowerPages_Authenticated_User_GCC,cdf787bd-1546-48d2-9e93-b21f9ea7067a,Power Pages Authenticated Users per site monthly capacity GCC -"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_DOD","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_DOD",398d37b5-8deb-48db-8f7f-703eb2fb7c72,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site -"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_DOD","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_DOD",398d37b5-8deb-48db-8f7f-703eb2fb7c72,PowerPages_Authenticated_User_DoD,03300fea-7a88-45a6-b5bd-29653803c591,Power Pages Authenticated Users per site monthly capacity DoD -"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH",01d46c34-3525-47d5-bd1a-5f19979938a0,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site -"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH",01d46c34-3525-47d5-bd1a-5f19979938a0,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH -"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH",01d46c34-3525-47d5-bd1a-5f19979938a0,PowerPages_Authenticated_Users_GCCH,5410f688-68f2-47a5-9b8f-7466194a806a,Power Pages Authenticated Users per site mthly capacity GCCH New -Power Pages vTrial for Makers,Power_Pages_vTrial_for_Makers,3f9f06f5-3c31-472c-985f-62d9c10ec167,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power Pages vTrial for Makers,Power_Pages_vTrial_for_Makers,3f9f06f5-3c31-472c-985f-62d9c10ec167,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,Common Data Service -Power Pages vTrial for Makers,Power_Pages_vTrial_for_Makers,3f9f06f5-3c31-472c-985f-62d9c10ec167,POWER_PAGES_VTRIAL,6817d093-2d30-4249-8bd6-774f01efa78c,Power Pages vTrial for Makers -Power Virtual Agent,VIRTUAL_AGENT_BASE,e4e55366-9635-46f4-a907-fc8c3b5ec81f,CDS_VIRTUAL_AGENT_BASE,0a0a23fa-fea1-4195-bb89-b4789cb12f7f,Common Data Service for Virtual Agent Base -Power Virtual Agent,VIRTUAL_AGENT_BASE,e4e55366-9635-46f4-a907-fc8c3b5ec81f,FLOW_VIRTUAL_AGENT_BASE,4b81a949-69a1-4409-ad34-9791a6ec88aa,Power Automate for Virtual Agent -Power Virtual Agent,VIRTUAL_AGENT_BASE,e4e55366-9635-46f4-a907-fc8c3b5ec81f,VIRTUAL_AGENT_BASE,f6934f16-83d3-4f3b-ad27-c6e9c187b260,Virtual Agent Base -Power Virtual Agent for GCC,VIRTUAL_AGENT_BASE_GCC,9900a3e2-6660-4c52-9074-60c949991389,CDS_Virtual_Agent_Base_Gov,e4d0b25d-e440-4ee9-aac4-1d5a5db9f3ef,Dataverse for Virtual Agent Base for GCC -Power Virtual Agent for GCC,VIRTUAL_AGENT_BASE_GCC,9900a3e2-6660-4c52-9074-60c949991389,FLOW_Virtual_Agent_Base_Gov,f9f6db16-ace6-4838-b11c-892ee75e810a,Power Automate for Virtual Agent for GCC -Power Virtual Agent for GCC,VIRTUAL_AGENT_BASE_GCC,9900a3e2-6660-4c52-9074-60c949991389,Virtual_Agent_Base_GCC,e425b9f6-1543-45a0-8efb-f8fdaf18cba1,Virtual Agent Base for GCC -Power Virtual Agent User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,CDS_VIRTUAL_AGENT_USL,cb867b3c-7f38-4d0d-99ce-e29cd69812c8,Common Data Service -Power Virtual Agent User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,FLOW_VIRTUAL_AGENT_USL,82f141c9-2e87-4f43-8cb2-12d2701dc6b3,Power Automate for Virtual Agent -Power Virtual Agent User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,VIRTUAL_AGENT_USL,1263586c-59a4-4ad0-85e1-d50bc7149501,Virtual Agent -Power Virtual Agent User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,CDS_Virtual_Agent_Usl_GCC,95df1203-fee7-4726-b7e1-8037a8e899eb,Dataverse for Virtual Agent USL for GCC -Power Virtual Agent User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Flow_Virtual_Agent_Usl_Gov,0b939472-1861-45f1-ab6d-208f359c05cd,Flow for Virtual Agent for GCC -Power Virtual Agent User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,FLOW_Virtual_Agent_Base_Gov,f9f6db16-ace6-4838-b11c-892ee75e810a,Power Automate for Virtual Agent for GCC -Power Virtual Agent User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Power_Virtual_Agent_Usl_GCC,0bdd5466-65c3-470a-9fa6-f679b48286b0,Power Virtual Agent USL for GCC -Power Virtual Agents Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,DYN365_CDS_CCI_BOTS,cf7034ed-348f-42eb-8bbd-dddeea43ee81,Common Data Service for CCI Bots -Power Virtual Agents Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,CCIBOTS_PRIVPREV_VIRAL,ce312d15-8fdf-44c0-9974-a25a177125ee,Dynamics 365 AI for Customer Service Virtual Agents Viral -Power Virtual Agents Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,FLOW_CCI_BOTS,5d798708-6473-48ad-9776-3acc301c40af,Flow for CCI Bots -Privacy Management – risk,PRIVACY_MANAGEMENT_RISK,e42bc969-759a-4820-9283-6b73085b68e6,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Privacy Management – risk,PRIVACY_MANAGEMENT_RISK,e42bc969-759a-4820-9283-6b73085b68e6,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk -Privacy Management – risk,PRIVACY_MANAGEMENT_RISK,e42bc969-759a-4820-9283-6b73085b68e6,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) -Privacy Management - risk for EDU,PRIVACY_MANAGEMENT_RISK_EDU,dcdbaae7-d8c9-40cb-8bb1-62737b9e5a86,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Privacy Management - risk for EDU,PRIVACY_MANAGEMENT_RISK_EDU,dcdbaae7-d8c9-40cb-8bb1-62737b9e5a86,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk -Privacy Management - risk for EDU,PRIVACY_MANAGEMENT_RISK_EDU,dcdbaae7-d8c9-40cb-8bb1-62737b9e5a86,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) -Privacy Management - risk GCC,PRIVACY_MANAGEMENT_RISK_GCC,046f7d3b-9595-4685-a2e8-a2832d2b26aa,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Privacy Management - risk GCC,PRIVACY_MANAGEMENT_RISK_GCC,046f7d3b-9595-4685-a2e8-a2832d2b26aa,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk -Privacy Management - risk GCC,PRIVACY_MANAGEMENT_RISK_GCC,046f7d3b-9595-4685-a2e8-a2832d2b26aa,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) -Privacy Management - risk_USGOV_DOD,PRIVACY_MANAGEMENT_RISK_USGOV_DOD,83b30692-0d09-435c-a455-2ab220d504b9,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Privacy Management - risk_USGOV_DOD,PRIVACY_MANAGEMENT_RISK_USGOV_DOD,83b30692-0d09-435c-a455-2ab220d504b9,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk -Privacy Management - risk_USGOV_DOD,PRIVACY_MANAGEMENT_RISK_USGOV_DOD,83b30692-0d09-435c-a455-2ab220d504b9,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) -Privacy Management - risk_USGOV_GCCHIGH,PRIVACY_MANAGEMENT_RISK_USGOV_GCCHIGH,787d7e75-29ca-4b90-a3a9-0b780b35367c,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Privacy Management - risk_USGOV_GCCHIGH,PRIVACY_MANAGEMENT_RISK_USGOV_GCCHIGH,787d7e75-29ca-4b90-a3a9-0b780b35367c,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk -Privacy Management - risk_USGOV_GCCHIGH,PRIVACY_MANAGEMENT_RISK_USGOV_GCCHIGH,787d7e75-29ca-4b90-a3a9-0b780b35367c,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) -Privacy Management - subject rights request (1),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2,d9020d1c-94ef-495a-b6de-818cbbcaa3b8,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (1),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2,d9020d1c-94ef-495a-b6de-818cbbcaa3b8,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1) -Privacy Management - subject rights request (1),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2,d9020d1c-94ef-495a-b6de-818cbbcaa3b8,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1 - Exchange) -Privacy Management - subject rights request (1) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_EDU_V2,475e3e81-3c75-4e07-95b6-2fed374536c8,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (1) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_EDU_V2,475e3e81-3c75-4e07-95b6-2fed374536c8,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1 - Exchange) -Privacy Management - subject rights request (1) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_EDU_V2,475e3e81-3c75-4e07-95b6-2fed374536c8,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1) -Privacy Management - subject rights request (1) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_GCC,017fb6f8-00dd-4025-be2b-4eff067cae72,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (1) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_GCC,017fb6f8-00dd-4025-be2b-4eff067cae72,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1 - Exchange) -Privacy Management - subject rights request (1) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_GCC,017fb6f8-00dd-4025-be2b-4eff067cae72,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1) -Privacy Management - subject rights request (1) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_DOD,d3c841f3-ea93-4da2-8040-6f2348d20954,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (1) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_DOD,d3c841f3-ea93-4da2-8040-6f2348d20954,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1 - Exchange) -Privacy Management - subject rights request (1) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_DOD,d3c841f3-ea93-4da2-8040-6f2348d20954,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1) -Privacy Management - subject rights request (1) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_GCCHIGH,706d2425-6170-4818-ba08-2ad8f1d2d078,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (1) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_GCCHIGH,706d2425-6170-4818-ba08-2ad8f1d2d078,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1 - Exchange) -Privacy Management - subject rights request (1) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_GCCHIGH,706d2425-6170-4818-ba08-2ad8f1d2d078,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1) -Privacy Management - subject rights request (10),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2,78ea43ac-9e5d-474f-8537-4abb82dafe27,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (10),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2,78ea43ac-9e5d-474f-8537-4abb82dafe27,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) -Privacy Management - subject rights request (10),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2,78ea43ac-9e5d-474f-8537-4abb82dafe27,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) -Privacy Management - subject rights request (10) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_EDU_V2,e001d9f1-5047-4ebf-8927-148530491f83,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (10) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_EDU_V2,e001d9f1-5047-4ebf-8927-148530491f83,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) -Privacy Management - subject rights request (10) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_EDU_V2,e001d9f1-5047-4ebf-8927-148530491f83,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) -Privacy Management - subject rights request (10) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_GCC,a056b037-1fa0-4133-a583-d05cff47d551,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (10) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_GCC,a056b037-1fa0-4133-a583-d05cff47d551,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) -Privacy Management - subject rights request (10) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_GCC,a056b037-1fa0-4133-a583-d05cff47d551,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) -Privacy Management - subject rights request (10) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_DOD,ab28dfa1-853a-4f54-9315-f5146975ac9a,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (10) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_DOD,ab28dfa1-853a-4f54-9315-f5146975ac9a,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) -Privacy Management - subject rights request (10) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_DOD,ab28dfa1-853a-4f54-9315-f5146975ac9a,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) -Privacy Management - subject rights request (10) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_GCCHIGH,f6aa3b3d-62f4-4c1d-a44f-0550f40f729c,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (10) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_GCCHIGH,f6aa3b3d-62f4-4c1d-a44f-0550f40f729c,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) -Privacy Management - subject rights request (10) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_GCCHIGH,f6aa3b3d-62f4-4c1d-a44f-0550f40f729c,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) -Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50,c416b349-a83c-48cb-9529-c420841dedd6,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50,c416b349-a83c-48cb-9529-c420841dedd6,PRIVACY_MANGEMENT_DSR,8bbd1fea-6dc6-4aef-8abc-79af22d746e4,Privacy Management - Subject Rights Request -Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50,c416b349-a83c-48cb-9529-c420841dedd6,PRIVACY_MANGEMENT_DSR_EXCHANGE,7ca7f875-98db-4458-ab1b-47503826dd73,Privacy Management - Subject Rights Request (Exchange) -Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_V2,f6c82f13-9554-4da1-bed3-c024cc906e02,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_V2,f6c82f13-9554-4da1-bed3-c024cc906e02,PRIVACY_MANGEMENT_DSR,8bbd1fea-6dc6-4aef-8abc-79af22d746e4,Privacy Management - Subject Rights Request -Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_V2,f6c82f13-9554-4da1-bed3-c024cc906e02,PRIVACY_MANGEMENT_DSR_EXCHANGE,7ca7f875-98db-4458-ab1b-47503826dd73,Privacy Management - Subject Rights Request (Exchange) -Privacy Management - subject rights request (50) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_EDU_V2,ed45d397-7d61-4110-acc0-95674917bb14,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (50) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_EDU_V2,ed45d397-7d61-4110-acc0-95674917bb14,PRIVACY_MANGEMENT_DSR,8bbd1fea-6dc6-4aef-8abc-79af22d746e4,Privacy Management - Subject Rights Request -Privacy Management - subject rights request (50) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_EDU_V2,ed45d397-7d61-4110-acc0-95674917bb14,PRIVACY_MANGEMENT_DSR_EXCHANGE,7ca7f875-98db-4458-ab1b-47503826dd73,Privacy Management - Subject Rights Request (Exchange) -Privacy Management - subject rights request (100),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2,cf4c6c3b-f863-4940-97e8-1d25e912f4c4,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (100),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2,cf4c6c3b-f863-4940-97e8-1d25e912f4c4,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) -Privacy Management - subject rights request (100),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2,cf4c6c3b-f863-4940-97e8-1d25e912f4c4,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) -Privacy Management - subject rights request (100) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_EDU_V2,9b85b4f0-92d9-4c3d-b230-041520cb1046,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (100) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_EDU_V2,9b85b4f0-92d9-4c3d-b230-041520cb1046,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) -Privacy Management - subject rights request (100) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_EDU_V2,9b85b4f0-92d9-4c3d-b230-041520cb1046,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) -Privacy Management - subject rights request (100) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_GCC,91bbc479-4c2c-4210-9c88-e5b468c35b83,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (100) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_GCC,91bbc479-4c2c-4210-9c88-e5b468c35b83,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) -Privacy Management - subject rights request (100) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_GCC,91bbc479-4c2c-4210-9c88-e5b468c35b83,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) -Privacy Management - subject rights request (100) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_DOD,ba6e69d5-ba2e-47a7-b081-66c1b8e7e7d4,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (100) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_DOD,ba6e69d5-ba2e-47a7-b081-66c1b8e7e7d4,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) -Privacy Management - subject rights request (100) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_DOD,ba6e69d5-ba2e-47a7-b081-66c1b8e7e7d4,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) -Privacy Management - subject rights request (100) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_GCCHIGH,cee36ce4-cc31-481f-8cab-02765d3e441f,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (100) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_GCCHIGH,cee36ce4-cc31-481f-8cab-02765d3e441f,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) -Privacy Management - subject rights request (100) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_GCCHIGH,cee36ce4-cc31-481f-8cab-02765d3e441f,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) -Project for Office 365,PROJECTCLIENT,a10d5e58-74da-4312-95c8-76be4e5b75a0,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,PROJECT ONLINE DESKTOP CLIENT -Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web -Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials -Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials -Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education -Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Project Online Essentials for GCC,PROJECTESSENTIALS_GOV,ca1a159a-f09e-42b8-bb82-cb6420f54c8e,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Project Online Essentials for GCC,PROJECTESSENTIALS_GOV,ca1a159a-f09e-42b8-bb82-cb6420f54c8e,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Project Online Essentials for GCC,PROJECTESSENTIALS_GOV,ca1a159a-f09e-42b8-bb82-cb6420f54c8e,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government -Project Online Essentials for GCC,PROJECTESSENTIALS_GOV,ca1a159a-f09e-42b8-bb82-cb6420f54c8e,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Project Online Premium,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,PROJECT ONLINE DESKTOP CLIENT -Project Online Premium,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,SHAREPOINT_PROJECT -Project Online Premium,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) -Project Online Premium,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) -Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,SHAREPOINT_PROJECT -Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) -Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) -Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,PROJECT ONLINE DESKTOP CLIENT -Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,SHAREPOINT_PROJECT -Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) -Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,DYN365_CDS_FOR_PROJECT_P1,a6f677b3-62a6-4644-93e7-2a85d240845e,COMMON DATA SERVICE FOR PROJECT P1 -Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,Power_Automate_For_Project_P1,00283e6b-2bd8-440f-a2d5-87358e4c89a1,POWER AUTOMATE FOR PROJECT P1 -Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,PROJECT ONLINE ESSENTIALS -Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,PROJECT_P1,4a12c688-56c6-461a-87b1-30d6f32136f9,PROJECT P1 -Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINT -Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,DYN365_CDS_FOR_PROJECT_P1,a6f677b3-62a6-4644-93e7-2a85d240845e,Common Data Service for Project P1 -Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,Power_Automate_For_Project_P1,00283e6b-2bd8-440f-a2d5-87358e4c89a1,Power Automate for Project P1 -Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials -Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,PROJECT_P1,4a12c688-56c6-461a-87b1-30d6f32136f9,Project P1 -Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINT STANDARD -Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project -Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,FLOW_FOR_PROJECT,fa200448-008c-4acb-abd4-ea106ed2199d,Flow for Project -Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web -Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client -Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,Project Online Service -Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,PROJECT_PROFESSIONAL,818523f5-016b-4355-9be8-ed6944946ea7,Project P3 -Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project -Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,FLOW_FOR_PROJECT,fa200448-008c-4acb-abd4-ea106ed2199d,Flow for Project -Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client -Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,Project Online Service -Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,PROJECT_PROFESSIONAL,818523f5-016b-4355-9be8-ed6944946ea7,Project P3 -Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client -Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,SHAREPOINT_PROJECT_EDU,664a2fed-6c7a-468e-af35-d61740f0ec90,Project Online Service for Education -Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,PROJECT_PROFESSIONAL_FACULTY,22572403-045f-432b-a660-af949c0a77b5,Project P3 for Faculty -Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education -Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project -Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,FLOW_FOR_PROJECT,fa200448-008c-4acb-abd4-ea106ed2199d,Power Automate for Project -Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC -Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client -Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government -Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,PROJECT_PROFESSIONAL_FOR_GOV,49c7bc16-7004-4df6-8cd5-4ec48b7e9ea0,Project P3 for GOV -Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC -Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC -Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,MCOMEETBASIC_GOV,986d454b-9027-4d9f-880b-f1b68f920cc4,Microsoft Teams Audio Conferencing with dial-out to select geographies for GCC -Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client -Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government -Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,PROJECT_PROFESSIONAL_FOR_GOV,49c7bc16-7004-4df6-8cd5-4ec48b7e9ea0,Project P3 for GOV -Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC -Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client -Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,Project Online Service -Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project -Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client -Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINT_PROJECT_EDU,664a2fed-6c7a-468e-af35-d61740f0ec90,Project Online Service for Education -Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,PROJECT_PROFESSIONAL_FACULTY,22572403-045f-432b-a660-af949c0a77b5,Project P3 for Faculty -Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education -Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office Online for Education -Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Client -Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,Project Online for Education,664a2fed-6c7a-468e-af35-d61740f0ec90,Project Online for Education -Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint Plan 2 for EDU -Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project -Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,FLOW_FOR_PROJECT,fa200448-008c-4acb-abd4-ea106ed2199d,Power Automate for Project -Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC -Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client -Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government -Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,PROJECT_PROFESSIONAL_FOR_GOV,49c7bc16-7004-4df6-8cd5-4ec48b7e9ea0,Project P3 for GOV -Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC -Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,SHAREPOINT_PROJECT_EDU,664a2fed-6c7a-468e-af35-d61740f0ec90,Project Online Service for Education -Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education -Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Rights Management Adhoc,RIGHTSMANAGEMENT_ADHOC,8c4ce438-32a7-4ac5-91a6-e22ae08d9c8b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Rights Management Adhoc,RIGHTSMANAGEMENT_ADHOC,8c4ce438-32a7-4ac5-91a6-e22ae08d9c8b,RMS_S_ADHOC,7a39d7dd-e456-4e09-842a-0204ee08187b,Rights Management Adhoc -Rights Management Service Basic Content Protection,RMSBASIC,093e8d14-a334-43d9-93e3-30589a8b47d0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Rights Management Service Basic Content Protection,RMSBASIC,093e8d14-a334-43d9-93e3-30589a8b47d0,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service -Sensor Data Intelligence Additional Machines Add-in for Dynamics 365 Supply Chain Management,DYN365_IOT_INTELLIGENCE_ADDL_MACHINES,08e18479-4483-4f70-8f17-6f92156d8ea9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Sensor Data Intelligence Additional Machines Add-in for Dynamics 365 Supply Chain Management,DYN365_IOT_INTELLIGENCE_ADDL_MACHINES,08e18479-4483-4f70-8f17-6f92156d8ea9,D365_IOTFORSCM_ADDITIONAL,a5f38206-2f48-4d83-9957-525f4e75e9c0,IoT Intelligence Add-in Additional Machines -Sensor Data Intelligence Scenario Add-in for Dynamics 365 Supply Chain Management,DYN365_IOT_INTELLIGENCE_SCENARIO,9ea4bdef-a20b-4668-b4a7-73e1f7696e0a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Sensor Data Intelligence Scenario Add-in for Dynamics 365 Supply Chain Management,DYN365_IOT_INTELLIGENCE_SCENARIO,9ea4bdef-a20b-4668-b4a7-73e1f7696e0a,D365_IOTFORSCM,83dd9619-c7d5-44da-9250-dc4ee79fff7e,Iot Intelligence Add-in for D365 Supply Chain Management -SharePoint Online (Plan 1),SHAREPOINTSTANDARD,1fc08a02-8b3d-43b9-831e-f76859e04e1a,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD -SharePoint Online (Plan 2),SHAREPOINTENTERPRISE,a9732ec9-17d9-494c-a51c-d6b45b384dcb,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) -SharePoint Syntex,Intelligent_Content_Services,f61d4aba-134f-44e9-a2a0-f81a5adb26e4,CDS_O365_E5_KM,3069d530-e41b-421c-ad59-fb1001a23e11,Common Data Service for SharePoint Syntex -SharePoint Syntex,Intelligent_Content_Services,f61d4aba-134f-44e9-a2a0-f81a5adb26e4,Intelligent_Content_Services,f00bd55e-1633-416e-97c0-03684e42bc42,SharePoint Syntex -SharePoint Syntex,Intelligent_Content_Services,f61d4aba-134f-44e9-a2a0-f81a5adb26e4,Intelligent_Content_Services_SPO_type,fd2e7f90-1010-487e-a11b-d2b1ae9651fc,SharePoint Syntex - SPO type -Skype for Business Online (Plan 1),MCOIMP,b8b749f8-a4ef-4887-9539-c95b1eaa5db7,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,SKYPE FOR BUSINESS ONLINE (PLAN 1) -Skype for Business Online (Plan 2),MCOSTANDARD,d42c793f-6c78-4f43-92ca-e8f6a02b035f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) -Skype for Business PSTN Calling Domestic Small,MCOPSTN5,d43177b5-475b-4880-92d4-d54c27b5efbd,Skype for Business PSTN Calling Domestic Small,9a0125a5-c8f8-4526-b231-49e2abe0ebce,Skype for Business PSTN Calling Domestic Small -Skype for Business PSTN Domestic and International Calling,MCOPSTN2,d3b4fe1f-9992-4930-8acb-ca6ec609365e,MCOPSTN2,5a10155d-f5c1-411a-a8ec-e99aae125390,DOMESTIC AND INTERNATIONAL CALLING PLAN -Skype for Business PSTN Domestic Calling,MCOPSTN1,0dab259f-bf13-4952-b7f8-7db8f131b28d,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,DOMESTIC CALLING PLAN -Skype for Business PSTN Domestic Calling (120 Minutes),MCOPSTN5,54a152dc-90de-4996-93d2-bc47e670fc06,MCOPSTN5,54a152dc-90de-4996-93d2-bc47e670fc06,DOMESTIC CALLING PLAN -Skype for Business PSTN Usage Calling Plan,MCOPSTNPP,06b48c5f-01d9-4b18-9015-03b52040f51a,MCOPSTN3,6b340437-d6f9-4dc5-8cc2-99163f7f83d6,MCOPSTN3 -Teams Phone Mobile,Operator_Connect_Mobile,b84d58c9-0a0d-46cf-8a4b-d9f23c1674d5,MCOFMC1,cb22fbd7-ed7d-4786-a27a-e4cd617b69c0,Teams Phone Mobile -Teams Phone with Calling Plan,MCOTEAMS_ESSENTIALS,ae2343d1-0999-43f6-ae18-d816516f6e78,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,Microsoft 365 Domestic Calling Plan -Teams Phone with Calling Plan,MCOTEAMS_ESSENTIALS,ae2343d1-0999-43f6-ae18-d816516f6e78,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,MICROSOFT_ECDN,85704d55-2e73-47ee-93b4-4b8ea14db92b,Microsoft eCDN -Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,MESH_IMMERSIVE,acbca54f-c771-423b-a476-6d7a98cbbcec,Microsoft Mesh -Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_MGMT,0504111f-feb8-4a3c-992a-70280f9a2869,Microsoft Teams Premium Intelligent -Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_CUST,cc8c0802-a325-43df-8cba-995d0c6cb373,Microsoft Teams Premium Personalized -Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_PROTECTION,f8b44f54-18bb-46a3-9658-44ab58712968,Microsoft Teams Premium Secure -Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_VIRTUALAPPT,9104f592-f2a7-4f77-904c-ca5a5715883f,Microsoft Teams Premium Virtual Appointment -Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,MCO_VIRTUAL_APPT,711413d0-b36e-4cd4-93db-0a50a4ab7ea3,Microsoft Teams Premium Virtual Appointments -Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_WEBINAR,78b58230-ec7e-4309-913c-93a45cc4735b,Microsoft Teams Premium Webinar -Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MMR_P1,bdaa59a3-74fd-4137-981a-31d4f84eb8a0,Meeting Room Managed Services -Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -TELSTRA Calling for O365,MCOPSTNEAU2,de3312e1-c7b0-46e6-a7c3-a515ff90bc86,MCOPSTNEAU,7861360b-dc3b-4eba-a3fc-0d323a035746,AUSTRALIA CALLING PLAN -Universal Print,UNIVERSAL_PRINT,9f3d9c1d-25a5-4aaa-8e59-23a1e6450a67,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Viva Learning,VIVA_LEARNING,c9d442fc-21fb-4bd7-89e0-a710d74987f6,VIVA_LEARNING_PREMIUM,7162bd38-edae-4022-83a7-c5837f951759,Viva Learning -Universal Print,UNIVERSAL_PRINT,9f3d9c1d-25a5-4aaa-8e59-23a1e6450a67,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Visio Plan 1,VISIO_PLAN1_DEPT,ca7f3140-d88c-455b-9a1c-7f0679e31a76,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Visio Plan 1,VISIO_PLAN1_DEPT,ca7f3140-d88c-455b-9a1c-7f0679e31a76,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,OneDrive for business Basic -Visio Plan 1,VISIO_PLAN1_DEPT,ca7f3140-d88c-455b-9a1c-7f0679e31a76,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,Visio web app -Visio Plan 2,VISIO_PLAN2_DEPT,38b434d2-a15e-4cde-9a98-e737c75623e1,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Visio Plan 2,VISIO_PLAN2_DEPT,38b434d2-a15e-4cde-9a98-e737c75623e1,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,OneDrive for Business (Basic) -Visio Plan 2,VISIO_PLAN2_DEPT,38b434d2-a15e-4cde-9a98-e737c75623e1,VISIO_CLIENT_SUBSCRIPTION,663a804f-1c30-4ff0-9915-9db84f0d1cea,Visio Desktop App -Visio Plan 2,VISIO_PLAN2_DEPT,38b434d2-a15e-4cde-9a98-e737c75623e1,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,Visio Web App -Visio Plan 2_USGOV_GCCHIGH,VISIOCLIENT_USGOV_GCCHIGH,80e52531-ad7f-44ea-abc3-28e389462f1b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Visio Plan 2_USGOV_GCCHIGH,VISIOCLIENT_USGOV_GCCHIGH,80e52531-ad7f-44ea-abc3-28e389462f1b,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,OneDrive for Business (Basic) -Visio Plan 2_USGOV_GCCHIGH,VISIOCLIENT_USGOV_GCCHIGH,80e52531-ad7f-44ea-abc3-28e389462f1b,VISIO_CLIENT_SUBSCRIPTION,663a804f-1c30-4ff0-9915-9db84f0d1cea,Visio Desktop App -Visio Plan 2_USGOV_GCCHIGH,VISIOCLIENT_USGOV_GCCHIGH,80e52531-ad7f-44ea-abc3-28e389462f1b,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,Visio Web App -Visio Plan 1,VISIOONLINE_PLAN1,4b244418-9658-4451-a2b8-b5e2b364e9bd,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Visio Plan 1,VISIOONLINE_PLAN1,4b244418-9658-4451-a2b8-b5e2b364e9bd,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,ONEDRIVE FOR BUSINESS BASIC -Visio Plan 1,VISIOONLINE_PLAN1,4b244418-9658-4451-a2b8-b5e2b364e9bd,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,VISIO WEB APP -Visio Plan 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Visio Plan 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,ONEDRIVE FOR BUSINESS BASIC -Visio Plan 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,VISIO_CLIENT_SUBSCRIPTION,663a804f-1c30-4ff0-9915-9db84f0d1cea,VISIO DESKTOP APP -Visio Plan 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,VISIO WEB APP -Visio Plan 2 for GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT -Visio Plan 2 for GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,ONEDRIVE_BASIC_GOV,98709c2e-96b5-4244-95f5-a0ebe139fb8a,ONEDRIVE FOR BUSINESS BASIC FOR GOVERNMENT -Visio Plan 2 for GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,VISIO_CLIENT_SUBSCRIPTION_GOV,f85945f4-7a55-4009-bc39-6a5f14a8eac1,VISIO DESKTOP APP FOR Government -Visio Plan 2 for GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,VISIOONLINE_GOV,8a9ecb07-cfc0-48ab-866c-f83c4d911576,VISIO WEB APP FOR GOVERNMENT -Visio Plan 2 for Faculty,VISIOCLIENT_FACULTY,bf95fd32-576a-4742-8d7a-6dc4940b9532,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Visio Plan 2 for Faculty,VISIOCLIENT_FACULTY,bf95fd32-576a-4742-8d7a-6dc4940b9532,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,OneDrive for Business (Basic) -Visio Plan 2 for Faculty,VISIOCLIENT_FACULTY,bf95fd32-576a-4742-8d7a-6dc4940b9532,VISIO_CLIENT_SUBSCRIPTION,663a804f-1c30-4ff0-9915-9db84f0d1cea,Visio Desktop App -Visio Plan 2 for Faculty,VISIOCLIENT_FACULTY,bf95fd32-576a-4742-8d7a-6dc4940b9532,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,Visio Web App -Viva Goals User-led,Viva_Goals_User_led,3a349c99-ffec-43d2-a2e8-6b97fcb71103,Viva_Goals_Premium,b44c6eaf-5c9f-478c-8f16-8cea26353bfb,Viva Goals -Viva Topics,TOPIC_EXPERIENCES,4016f256-b063-4864-816e-d818aad600c9,GRAPH_CONNECTORS_SEARCH_INDEX_TOPICEXP,b74d57b2-58e9-484a-9731-aeccbba954f0,Graph Connectors Search with Index (Viva Topics) -Viva Topics,TOPIC_EXPERIENCES,4016f256-b063-4864-816e-d818aad600c9,CORTEX,c815c93d-0759-4bb8-b857-bc921a71be83,Viva Topics -Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,DATAVERSE_FOR_POWERAUTOMATE_DESKTOP,59231cdf-b40d-4534-a93e-14d0cd31d27e,Dataverse for PAD -Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,POWERAUTOMATE_DESKTOP_FOR_WIN,2d589a15-b171-4e61-9b5f-31d15eeb2872,PAD for Windows -Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Windows 10/11 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 10/11 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Windows 10/11 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) -Windows 10/11 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Windows 10/11 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 10/11 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Windows 10/11 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) -Windows 10/11 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,Virtualization Rights for Windows 10,e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise -Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Windows 10/11 Enterprise E3,WIN10_PRO_ENT_SUB,cb10e6cd-9da4-4992-867b-67546b1db821,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,WINDOWS 10 ENTERPRISE -Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,UNIVERSAL PRINT -Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,WINDOWS 10 ENTERPRISE (NEW) -Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,WINDOWS UPDATE FOR BUSINESS DEPLOYMENT SERVICE -Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender For Endpoint -Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) -Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Windows 10/11 Enterprise E5 Commercial (GCC Compatible),WINE5_GCC_COMPAT,938fd547-d794-42a4-996c-1cc206619580,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Windows 10/11 Enterprise E5 Commercial (GCC Compatible),WINE5_GCC_COMPAT,938fd547-d794-42a4-996c-1cc206619580,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender For Endpoint -Windows 10/11 Enterprise E5 Commercial (GCC Compatible),WINE5_GCC_COMPAT,938fd547-d794-42a4-996c-1cc206619580,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) -Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise -Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,DATAVERSE_FOR_POWERAUTOMATE_DESKTOP,59231cdf-b40d-4534-a93e-14d0cd31d27e,Dataverse for PAD -Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,POWERAUTOMATE_DESKTOP_FOR_WIN,2d589a15-b171-4e61-9b5f-31d15eeb2872,PAD for Windows -Windows 365 Business 1 vCPU 2 GB 64 GB,CPC_B_1C_2RAM_64GB,816eacd3-e1e3-46b3-83c8-1ffd37e053d9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Business 1 vCPU 2 GB 64 GB,CPC_B_1C_2RAM_64GB,816eacd3-e1e3-46b3-83c8-1ffd37e053d9,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Windows 365 Business 1 vCPU 2 GB 64 GB,CPC_B_1C_2RAM_64GB,816eacd3-e1e3-46b3-83c8-1ffd37e053d9,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Windows 365 Business 1 vCPU 2 GB 64 GB,CPC_B_1C_2RAM_64GB,816eacd3-e1e3-46b3-83c8-1ffd37e053d9,CPC_B_1C_2RAM_64GB,3b98b912-1720-4a1e-9630-c9a41dbb61d8,Windows 365 Business 1 vCPU 2 GB 64 GB -Windows 365 Business 2 vCPU 4 GB 128 GB,CPC_B_2C_4RAM_128GB,135bee78-485b-4181-ad6e-40286e311850,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Business 2 vCPU 4 GB 128 GB,CPC_B_2C_4RAM_128GB,135bee78-485b-4181-ad6e-40286e311850,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Windows 365 Business 2 vCPU 4 GB 128 GB,CPC_B_2C_4RAM_128GB,135bee78-485b-4181-ad6e-40286e311850,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Windows 365 Business 2 vCPU 4 GB 128 GB,CPC_B_2C_4RAM_128GB,135bee78-485b-4181-ad6e-40286e311850,CPC_B_2C_4RAM_128GB,1a13832e-cd79-497d-be76-24186f55c8b0,Windows 365 Business 2 vCPU 4 GB 128 GB -Windows 365 Business 2 vCPU 4 GB 256 GB,CPC_B_2C_4RAM_256GB,805d57c3-a97d-4c12-a1d0-858ffe5015d0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Business 2 vCPU 4 GB 256 GB,CPC_B_2C_4RAM_256GB,805d57c3-a97d-4c12-a1d0-858ffe5015d0,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Windows 365 Business 2 vCPU 4 GB 256 GB,CPC_B_2C_4RAM_256GB,805d57c3-a97d-4c12-a1d0-858ffe5015d0,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Windows 365 Business 2 vCPU 4 GB 256 GB,CPC_B_2C_4RAM_256GB,805d57c3-a97d-4c12-a1d0-858ffe5015d0,CPC_B_2C_4RAM_256GB,a0b1c075-51c9-4a42-b34c-308f3993bb7e,Windows 365 Business 2 vCPU 4 GB 256 GB -Windows 365 Business 2 vCPU 4 GB 64 GB,CPC_B_2C_4RAM_64GB,42e6818f-8966-444b-b7ac-0027c83fa8b5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Business 2 vCPU 4 GB 64 GB,CPC_B_2C_4RAM_64GB,42e6818f-8966-444b-b7ac-0027c83fa8b5,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Windows 365 Business 2 vCPU 4 GB 64 GB,CPC_B_2C_4RAM_64GB,42e6818f-8966-444b-b7ac-0027c83fa8b5,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Windows 365 Business 2 vCPU 4 GB 64 GB,CPC_B_2C_4RAM_64GB,42e6818f-8966-444b-b7ac-0027c83fa8b5,CPC_B_2C_4RAM_64GB,a790cd6e-a153-4461-83c7-e127037830b6,Windows 365 Business 2 vCPU 4 GB 64 GB -Windows 365 Business 2 vCPU 8 GB 128 GB,CPC_B_2C_8RAM_128GB,71f21848-f89b-4aaa-a2dc-780c8e8aac5b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Business 2 vCPU 8 GB 128 GB,CPC_B_2C_8RAM_128GB,71f21848-f89b-4aaa-a2dc-780c8e8aac5b,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Windows 365 Business 2 vCPU 8 GB 128 GB,CPC_B_2C_8RAM_128GB,71f21848-f89b-4aaa-a2dc-780c8e8aac5b,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Windows 365 Business 2 vCPU 8 GB 128 GB,CPC_B_2C_8RAM_128GB,71f21848-f89b-4aaa-a2dc-780c8e8aac5b,CPC_SS_2,9d2eed2c-b0c0-4a89-940c-bc303444a41b,"Windows 365 Business 2 vCPU, 8 GB, 128 GB" -Windows 365 Business 2 vCPU 8 GB 256 GB,CPC_B_2C_8RAM_256GB,750d9542-a2f8-41c7-8c81-311352173432,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Business 2 vCPU 8 GB 256 GB,CPC_B_2C_8RAM_256GB,750d9542-a2f8-41c7-8c81-311352173432,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Windows 365 Business 2 vCPU 8 GB 256 GB,CPC_B_2C_8RAM_256GB,750d9542-a2f8-41c7-8c81-311352173432,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Windows 365 Business 2 vCPU 8 GB 256 GB,CPC_B_2C_8RAM_256GB,750d9542-a2f8-41c7-8c81-311352173432,CPC_B_2C_8RAM_256GB,1a3ef005-2ef6-434b-8be1-faa56c892854,Windows 365 Business 2 vCPU 8 GB 256 GB -Windows 365 Business 4 vCPU 16 GB 128 GB,CPC_B_4C_16RAM_128GB,ad83ac17-4a5a-4ebb-adb2-079fb277e8b9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Business 4 vCPU 16 GB 128 GB,CPC_B_4C_16RAM_128GB,ad83ac17-4a5a-4ebb-adb2-079fb277e8b9,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Windows 365 Business 4 vCPU 16 GB 128 GB,CPC_B_4C_16RAM_128GB,ad83ac17-4a5a-4ebb-adb2-079fb277e8b9,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Windows 365 Business 4 vCPU 16 GB 128 GB,CPC_B_4C_16RAM_128GB,ad83ac17-4a5a-4ebb-adb2-079fb277e8b9,CPC_B_4C_16RAM_128GB,1d4f75d3-a19b-49aa-88cb-f1ea1690b550,Windows 365 Business 4 vCPU 16 GB 128 GB -Windows 365 Business 4 vCPU 16 GB 128 GB (with Windows Hybrid Benefit),CPC_B_4C_16RAM_128GB_WHB,439ac253-bfbc-49c7-acc0-6b951407b5ef,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Business 4 vCPU 16 GB 128 GB (with Windows Hybrid Benefit),CPC_B_4C_16RAM_128GB_WHB,439ac253-bfbc-49c7-acc0-6b951407b5ef,CPC_B_4C_16RAM_128GB,1d4f75d3-a19b-49aa-88cb-f1ea1690b550,Windows 365 Business 4 vCPU 16 GB 128 GB -Windows 365 Business 4 vCPU 16 GB 256 GB,CPC_B_4C_16RAM_256GB,b3891a9f-c7d9-463c-a2ec-0b2321bda6f9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Business 4 vCPU 16 GB 256 GB,CPC_B_4C_16RAM_256GB,b3891a9f-c7d9-463c-a2ec-0b2321bda6f9,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Windows 365 Business 4 vCPU 16 GB 256 GB,CPC_B_4C_16RAM_256GB,b3891a9f-c7d9-463c-a2ec-0b2321bda6f9,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Windows 365 Business 4 vCPU 16 GB 256 GB,CPC_B_4C_16RAM_256GB,b3891a9f-c7d9-463c-a2ec-0b2321bda6f9,CPC_B_4C_16RAM_256GB,30f6e561-8805-41d0-80ce-f82698b72d7d,Windows 365 Business 4 vCPU 16 GB 256 GB -Windows 365 Business 4 vCPU 16 GB 512 GB,CPC_B_4C_16RAM_512GB,1b3043ad-dfc6-427e-a2c0-5ca7a6c94a2b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Business 4 vCPU 16 GB 512 GB,CPC_B_4C_16RAM_512GB,1b3043ad-dfc6-427e-a2c0-5ca7a6c94a2b,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Windows 365 Business 4 vCPU 16 GB 512 GB,CPC_B_4C_16RAM_512GB,1b3043ad-dfc6-427e-a2c0-5ca7a6c94a2b,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Windows 365 Business 4 vCPU 16 GB 512 GB,CPC_B_4C_16RAM_512GB,1b3043ad-dfc6-427e-a2c0-5ca7a6c94a2b,CPC_B_4C_16RAM_512GB,15499661-b229-4a1f-b0f9-bd5832ef7b3e,Windows 365 Business 4 vCPU 16 GB 512 GB -Windows 365 Business 8 vCPU 32 GB 128 GB,CPC_B_8C_32RAM_128GB,3cb45fab-ae53-4ff6-af40-24c1915ca07b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Business 8 vCPU 32 GB 128 GB,CPC_B_8C_32RAM_128GB,3cb45fab-ae53-4ff6-af40-24c1915ca07b,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Windows 365 Business 8 vCPU 32 GB 128 GB,CPC_B_8C_32RAM_128GB,3cb45fab-ae53-4ff6-af40-24c1915ca07b,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Windows 365 Business 8 vCPU 32 GB 128 GB,CPC_B_8C_32RAM_128GB,3cb45fab-ae53-4ff6-af40-24c1915ca07b,CPC_B_8C_32RAM_128GB,648005fc-b330-4bd9-8af6-771f28958ac0,Windows 365 Business 8 vCPU 32 GB 128 GB -Windows 365 Business 8 vCPU 32 GB 256 GB,CPC_B_8C_32RAM_256GB,fbc79df2-da01-4c17-8d88-17f8c9493d8f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Business 8 vCPU 32 GB 256 GB,CPC_B_8C_32RAM_256GB,fbc79df2-da01-4c17-8d88-17f8c9493d8f,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Windows 365 Business 8 vCPU 32 GB 256 GB,CPC_B_8C_32RAM_256GB,fbc79df2-da01-4c17-8d88-17f8c9493d8f,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Windows 365 Business 8 vCPU 32 GB 256 GB,CPC_B_8C_32RAM_256GB,fbc79df2-da01-4c17-8d88-17f8c9493d8f,CPC_B_8C_32RAM_256GB,d7a5113a-0276-4dc2-94f8-ca9f2c5ae078,Windows 365 Business 8 vCPU 32 GB 256 GB -Windows 365 Business 8 vCPU 32 GB 512 GB,CPC_B_8C_32RAM_512GB,8ee402cd-e6a8-4b67-a411-54d1f37a2049,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Business 8 vCPU 32 GB 512 GB,CPC_B_8C_32RAM_512GB,8ee402cd-e6a8-4b67-a411-54d1f37a2049,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Windows 365 Business 8 vCPU 32 GB 512 GB,CPC_B_8C_32RAM_512GB,8ee402cd-e6a8-4b67-a411-54d1f37a2049,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Windows 365 Business 8 vCPU 32 GB 512 GB,CPC_B_8C_32RAM_512GB,8ee402cd-e6a8-4b67-a411-54d1f37a2049,CPC_B_8C_32RAM_512GB,4229a0b4-7f34-4835-b068-6dc8d10be57c,Windows 365 Business 8 vCPU 32 GB 512 GB -"Windows 365 Business 16 vCPU, 64 GB, 512 GB","Windows_365_Business_16_vCPU,_64_GB,_512_GB",93d9955a-ec70-44d5-8faa-a194492390f7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -"Windows 365 Business 16 vCPU, 64 GB, 512 GB","Windows_365_Business_16_vCPU,_64_GB,_512_GB",93d9955a-ec70-44d5-8faa-a194492390f7,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -"Windows 365 Business 16 vCPU, 64 GB, 512 GB","Windows_365_Business_16_vCPU,_64_GB,_512_GB",93d9955a-ec70-44d5-8faa-a194492390f7,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -"Windows 365 Business 16 vCPU, 64 GB, 512 GB","Windows_365_Business_16_vCPU,_64_GB,_512_GB",93d9955a-ec70-44d5-8faa-a194492390f7,CPC_B_16C_64GB_512GB,cbbedc49-52d5-4fd6-82ac-a5bc51634dc3,"Windows 365 Business 16 vCPU, 64 GB, 512 GB" -"Windows 365 Business 16 vCPU, 64 GB, 1 TB","Windows_365_Business_16_vCPU,_64_GB,_1_TB",24be3cd7-82ca-41a5-94a7-4903373cdcae,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -"Windows 365 Business 16 vCPU, 64 GB, 1 TB","Windows_365_Business_16_vCPU,_64_GB,_1_TB",24be3cd7-82ca-41a5-94a7-4903373cdcae,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -"Windows 365 Business 16 vCPU, 64 GB, 1 TB","Windows_365_Business_16_vCPU,_64_GB,_1_TB",24be3cd7-82ca-41a5-94a7-4903373cdcae,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -"Windows 365 Business 16 vCPU, 64 GB, 1 TB","Windows_365_Business_16_vCPU,_64_GB,_1_TB",24be3cd7-82ca-41a5-94a7-4903373cdcae,CPC_B_16C_64GB_1TB,37c961db-2cfd-4e13-b81e-b0059ce10e34,"Windows 365 Business 16 vCPU, 64 GB, 1 TB" -Windows 365 Enterprise 1 vCPU 2 GB 64 GB,CPC_E_1C_2GB_64GB,0c278af4-c9c1-45de-9f4b-cd929e747a2c,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Enterprise 1 vCPU 2 GB 64 GB,CPC_E_1C_2GB_64GB,0c278af4-c9c1-45de-9f4b-cd929e747a2c,CPC_E_1C_2GB_64GB,86d70dbb-d4c6-4662-ba17-3014204cbb28,Windows 365 Enterprise 1 vCPU 2 GB 64 GB -Windows 365 Enterprise 2 vCPU 4 GB 64 GB,CPC_E_2C_4GB_64GB,7bb14422-3b90-4389-a7be-f1b745fc037f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Enterprise 2 vCPU 4 GB 64 GB,CPC_E_2C_4GB_64GB,7bb14422-3b90-4389-a7be-f1b745fc037f,CPC_E_2C_4GB_64GB,23a25099-1b2f-4e07-84bd-b84606109438,Windows 365 Enterprise 2 vCPU 4 GB 64 GB -Windows 365 Enterprise 2 vCPU 4 GB 128 GB,CPC_E_2C_4GB_128GB,226ca751-f0a4-4232-9be5-73c02a92555e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Enterprise 2 vCPU 4 GB 128 GB,CPC_E_2C_4GB_128GB,226ca751-f0a4-4232-9be5-73c02a92555e,CPC_1,545e3611-3af8-49a5-9a0a-b7867968f4b0,Windows 365 Enterprise 2 vCPU 4 GB 128 GB -Windows 365 Enterprise 2 vCPU 4 GB 128 GB (Preview),CPC_LVL_1,bce09f38-1800-4a51-8d50-5486380ba84a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Enterprise 2 vCPU 4 GB 128 GB (Preview),CPC_LVL_1,bce09f38-1800-4a51-8d50-5486380ba84a,CPC_1,545e3611-3af8-49a5-9a0a-b7867968f4b0,Windows 365 Enterprise 2 vCPU 4 GB 128 GB -Windows 365 Enterprise 2 vCPU 4 GB 256 GB,CPC_E_2C_4GB_256GB,5265a84e-8def-4fa2-ab4b-5dc278df5025,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Enterprise 2 vCPU 4 GB 256 GB,CPC_E_2C_4GB_256GB,5265a84e-8def-4fa2-ab4b-5dc278df5025,CPC_E_2C_4GB_256GB,0d143570-9b92-4f57-adb5-e4efcd23b3bb,Windows 365 Enterprise 2 vCPU 4 GB 256 GB -Windows 365 Enterprise 2 vCPU 8 GB 128 GB,CPC_E_2C_8GB_128GB,e2aebe6c-897d-480f-9d62-fff1381581f7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Enterprise 2 vCPU 8 GB 128 GB,CPC_E_2C_8GB_128GB,e2aebe6c-897d-480f-9d62-fff1381581f7,CPC_2,3efff3fe-528a-4fc5-b1ba-845802cc764f,Windows 365 Enterprise 2 vCPU 8 GB 128 GB -Windows 365 Enterprise 2 vCPU 8 GB 128 GB (Preview),CPC_LVL_2,461cb62c-6db7-41aa-bf3c-ce78236cdb9e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Enterprise 2 vCPU 8 GB 128 GB (Preview),CPC_LVL_2,461cb62c-6db7-41aa-bf3c-ce78236cdb9e,CPC_2,3efff3fe-528a-4fc5-b1ba-845802cc764f,Windows 365 Enterprise 2 vCPU 8 GB 128 GB -Windows 365 Enterprise 2 vCPU 8 GB 256 GB,CPC_E_2C_8GB_256GB,1c79494f-e170-431f-a409-428f6053fa35,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Enterprise 2 vCPU 8 GB 256 GB,CPC_E_2C_8GB_256GB,1c79494f-e170-431f-a409-428f6053fa35,CPC_E_2C_8GB_256GB,d3468c8c-3545-4f44-a32f-b465934d2498,Windows 365 Enterprise 2 vCPU 8 GB 256 GB -Windows 365 Enterprise 4 vCPU 16 GB 128 GB,CPC_E_4C_16GB_128GB,d201f153-d3b2-4057-be2f-fe25c8983e6f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Enterprise 4 vCPU 16 GB 128 GB,CPC_E_4C_16GB_128GB,d201f153-d3b2-4057-be2f-fe25c8983e6f,CPC_E_4C_16GB_128GB,2de9c682-ca3f-4f2b-b360-dfc4775db133,Windows 365 Enterprise 4 vCPU 16 GB 128 GB -Windows 365 Enterprise 4 vCPU 16 GB 256 GB,CPC_E_4C_16GB_256GB,96d2951e-cb42-4481-9d6d-cad3baac177e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Enterprise 4 vCPU 16 GB 256 GB,CPC_E_4C_16GB_256GB,96d2951e-cb42-4481-9d6d-cad3baac177e,CPC_E_4C_16GB_256GB,9ecf691d-8b82-46cb-b254-cd061b2c02fb,Windows 365 Enterprise 4 vCPU 16 GB 256 GB -Windows 365 Enterprise 4 vCPU 16 GB 256 GB (Preview),CPC_LVL_3,bbb4bf6e-3e12-4343-84a1-54d160c00f40,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Enterprise 4 vCPU 16 GB 256 GB (Preview),CPC_LVL_3,bbb4bf6e-3e12-4343-84a1-54d160c00f40,CPC_E_4C_16GB_256GB,9ecf691d-8b82-46cb-b254-cd061b2c02fb,Windows 365 Enterprise 4 vCPU 16 GB 256 GB -Windows 365 Enterprise 4 vCPU 16 GB 512 GB,CPC_E_4C_16GB_512GB,0da63026-e422-4390-89e8-b14520d7e699,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Enterprise 4 vCPU 16 GB 512 GB,CPC_E_4C_16GB_512GB,0da63026-e422-4390-89e8-b14520d7e699,CPC_E_4C_16GB_512GB,3bba9856-7cf2-4396-904a-00de74fba3a4,Windows 365 Enterprise 4 vCPU 16 GB 512 GB -Windows 365 Enterprise 8 vCPU 32 GB 128 GB,CPC_E_8C_32GB_128GB,c97d00e4-0c4c-4ec2-a016-9448c65de986,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Enterprise 8 vCPU 32 GB 128 GB,CPC_E_8C_32GB_128GB,c97d00e4-0c4c-4ec2-a016-9448c65de986,CPC_E_8C_32GB_128GB,2f3cdb12-bcde-4e37-8529-e9e09ec09e23,Windows 365 Enterprise 8 vCPU 32 GB 128 GB -Windows 365 Enterprise 8 vCPU 32 GB 256 GB,CPC_E_8C_32GB_256GB,7818ca3e-73c8-4e49-bc34-1276a2d27918,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Enterprise 8 vCPU 32 GB 256 GB,CPC_E_8C_32GB_256GB,7818ca3e-73c8-4e49-bc34-1276a2d27918,CPC_E_8C_32GB_256GB,69dc175c-dcff-4757-8389-d19e76acb45d,Windows 365 Enterprise 8 vCPU 32 GB 256 GB -Windows 365 Enterprise 8 vCPU 32 GB 512 GB,CPC_E_8C_32GB_512GB,9fb0ba5f-4825-4e84-b239-5167a3a5d4dc,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Enterprise 8 vCPU 32 GB 512 GB,CPC_E_8C_32GB_512GB,9fb0ba5f-4825-4e84-b239-5167a3a5d4dc,CPC_E_8C_32GB_512GB,0e837228-8250-4047-8a80-d4a34ba11658,Windows 365 Enterprise 8 vCPU 32 GB 512 GB -Windows 365 Shared Use 2 vCPU 4 GB 64 GB,Windows_365_S_2vCPU_4GB_64GB,1f9990ca-45d9-4c8d-8d04-a79241924ce1,CPC_S_2C_4GB_64GB,64981bdb-a5a6-4a22-869f-a9455366d5bc,Windows 365 Shared Use 2 vCPU 4 GB 64 GB -Windows 365 Shared Use 2 vCPU 4 GB 128 GB,Windows_365_S_2vCPU_4GB_128GB,90369797-7141-4e75-8f5e-d13f4b6092c1,CPC_S_2C_4GB_128GB,51855c77-4d2e-4736-be67-6dca605f2b57,Windows 365 Shared Use 2 vCPU 4 GB 128 GB -Windows 365 Shared Use 2 vCPU 4 GB 256 GB,Windows_365_S_2vCPU_4GB_256GB,8fe96593-34d3-49bb-aeee-fb794fed0800,CPC_S_2C_4GB_256GB,aa8fbe7b-695c-4c05-8d45-d1dddf6f7616,Windows 365 Shared Use 2 vCPU 4 GB 256 GB -Windows 365 Shared Use 2 vCPU 8 GB 128 GB,Windows_365_S_2vCPU_8GB_128GB,2d21fc84-b918-491e-ad84-e24d61ccec94,CPC_S_2C_8GB_128GB,057efbfe-a95d-4263-acb0-12b4a31fed8d,Windows 365 Shared Use 2 vCPU 8 GB 128 GB -Windows 365 Shared Use 2 vCPU 8 GB 256 GB,Windows_365_S_2vCPU_8GB_256GB,2eaa4058-403e-4434-9da9-ea693f5d96dc,CPC_S_2C_8GB_256GB,50ef7026-6174-40ba-bff7-f0e4fcddbf65,Windows 365 Shared Use 2 vCPU 8 GB 256 GB -Windows 365 Shared Use 4 vCPU 16 GB 128 GB,Windows_365_S_4vCPU_16GB_128GB,1bf40e76-4065-4530-ac37-f1513f362f50,CPC_S_4C_16GB_128GB,dd3801e2-4aa1-4b16-a44b-243e55497584,Windows 365 Shared Use 4 vCPU 16 GB 128 GB -Windows 365 Shared Use 4 vCPU 16 GB 256 GB,Windows_365_S_4vCPU_16GB_256GB,a9d1e0df-df6f-48df-9386-76a832119cca,CPC_S_4C_16GB_256GB,2d1d344e-d10c-41bb-953b-b3a47521dca0,Windows 365 Shared Use 4 vCPU 16 GB 256 GB -Windows 365 Shared Use 4 vCPU 16 GB 512 GB,Windows_365_S_4vCPU_16GB_512GB,469af4da-121c-4529-8c85-9467bbebaa4b,CPC_S_4C_16GB_512GB,48b82071-99a5-4214-b493-406a637bd68d,Windows 365 Shared Use 4 vCPU 16 GB 512 GB -Windows 365 Shared Use 8 vCPU 32 GB 128 GB,Windows_365_S_8vCPU_32GB_128GB,f319c63a-61a9-42b7-b786-5695bc7edbaf,CPC_S_8C_32GB_128GB,e4dee41f-a5c5-457d-b7d3-c309986fdbb2,Windows 365 Shared Use 8 vCPU 32 GB 128 GB -Windows 365 Shared Use 8 vCPU 32 GB 256 GB,Windows_365_S_8vCPU_32GB_256GB,fb019e88-26a0-4218-bd61-7767d109ac26,CPC_S_8C_32GB_256GB,1e2321a0-f81c-4d43-a0d5-9895125706b8,Windows 365 Shared Use 8 vCPU 32 GB 256 GB -Windows 365 Shared Use 8 vCPU 32 GB 512 GB,Windows_365_S_8vCPU_32GB_512GB,f4dc1de8-8c94-4d37-af8a-1fca6675590a,CPC_S_8C_32GB_512GB,fa0b4021-0f60-4d95-bf68-95036285282a,Windows 365 Shared Use 8 vCPU 32 GB 512 GB -Windows Store for Business,WINDOWS_STORE,6470687e-a428-4b7a-bef2-8a291ad947c9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Windows Store for Business,WINDOWS_STORE,6470687e-a428-4b7a-bef2-8a291ad947c9,WINDOWS_STORE,a420f25f-a7b3-4ff5-a9d0-5d58f73b537d,WINDOWS STORE SERVICE -Windows Store for Business EDU Faculty,WSFB_EDU_FACULTY,c7e9d9e6-1981-4bf3-bb50-a5bdfaa06fb2,Windows Store for Business EDU Store_faculty,aaa2cd24-5519-450f-a1a0-160750710ca1,Windows Store for Business EDU Store_faculty -Microsoft Workplace Analytics,WORKPLACE_ANALYTICS,3d957427-ecdc-4df2-aacd-01cc9d519da8,WORKPLACE_ANALYTICS,f477b0f0-3bb1-4890-940c-40fcee6ce05f,Microsoft Workplace Analytics -Microsoft Workplace Analytics,WORKPLACE_ANALYTICS,3d957427-ecdc-4df2-aacd-01cc9d519da8,WORKPLACE_ANALYTICS_INSIGHTS_BACKEND,ff7b261f-d98b-415b-827c-42a3fdf015af,Microsoft Workplace Analytics Insights Backend -Microsoft Workplace Analytics,WORKPLACE_ANALYTICS,3d957427-ecdc-4df2-aacd-01cc9d519da8,WORKPLACE_ANALYTICS_INSIGHTS_USER,b622badb-1b45-48d5-920f-4b27a2c0996c,Microsoft Workplace Analytics Insights User -Workload Identities Premium,Workload_Identities_Premium_CN,73fa80b5-689f-4db9-bbe4-bd414bc41e44,AAD_WRKLDID_P1,84c289f0-efcb-486f-8581-07f44fc9efad,Azure Active Directory workload identities P1 -Workload Identities Premium,Workload_Identities_Premium_CN,73fa80b5-689f-4db9-bbe4-bd414bc41e44,AAD_WRKLDID_P2,7dc0e92d-bf15-401d-907e-0884efe7c760,Azure Active Directory workload identities P2 diff --git a/Dockerfile b/Dockerfile index 3db270cc69a1..76c6b40f7828 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # To enable ssh & remote debugging on app service change the base image to the one below # FROM mcr.microsoft.com/azure-functions/powershell:4-powershell7.2-appservice -FROM mcr.microsoft.com/azure-functions/powershell:4-powershell7.2 +FROM mcr.microsoft.com/azure-functions/powershell:4-powershell7.4 ENV AzureWebJobsScriptRoot=/home/site/wwwroot \ AzureFunctionsJobHost__Logging__Console__IsEnabled=true -COPY . /home/site/wwwroot \ No newline at end of file +COPY . /home/site/wwwroot diff --git a/Modules/Az.Accounts/4.0.2/.signature.p7s b/Modules/Az.Accounts/4.0.2/.signature.p7s deleted file mode 100644 index 9be7f47f9af7..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/.signature.p7s and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Accounts.format.ps1xml b/Modules/Az.Accounts/4.0.2/Accounts.format.ps1xml deleted file mode 100644 index 1b64518e4625..000000000000 --- a/Modules/Az.Accounts/4.0.2/Accounts.format.ps1xml +++ /dev/null @@ -1,555 +0,0 @@ - - - - - AzureErrorRecords - - Microsoft.Azure.Commands.Profile.Errors.AzureErrorRecord - Microsoft.Azure.Commands.Profile.Errors.AzureExceptionRecord - Microsoft.Azure.Commands.Profile.Errors.AzureRestExceptionRecord - - - - - - Microsoft.Azure.Commands.Profile.Errors.AzureRestExceptionRecord - - AzureErrorRecords - - - $_.InvocationInfo.HistoryId - - - - - - - - ErrorCategory - - - ErrorDetail - - - - "{" + $_.InvocationInfo.MyCommand + "}" - - - - $_.InvocationInfo.Line - - - - $_.InvocationInfo.PositionMessage - - - - $_.InvocationInfo.BoundParameters - - - - $_.InvocationInfo.UnboundParameters - - - - $_.InvocationInfo.HistoryId - - - - - - - AzureErrorRecords - $_.GetType() -eq [Microsoft.Azure.Commands.Profile.Errors.AzureRestExceptionRecord] - - - - - RequestId - - - Message - - - ServerMessage - - - ServerResponse - - - RequestMessage - - - - "{" + $_.InvocationInfo.MyCommand + "}" - - - - $_.InvocationInfo.Line - - - - $_.InvocationInfo.PositionMessage - - - StackTrace - - - - $_.InvocationInfo.HistoryId - - - - - - - AzureErrorRecords - $_.GetType() -eq [Microsoft.Azure.Commands.Profile.Errors.AzureExceptionRecord] - - - - - Message - - - StackTrace - - - - $_.Exception.GetType() - - - - "{" + $_.InvocationInfo.MyCommand + "}" - - - - $_.InvocationInfo.Line - - - - $_.InvocationInfo.PositionMessage - - - - $_.InvocationInfo.HistoryId - - - - - - - - Microsoft.Azure.Commands.Profile.CommonModule.PSAzureServiceProfile - - Microsoft.Azure.Commands.Profile.CommonModule.PSAzureServiceProfile - - - - - Left - - - - Left - - - - - - - - Left - Name - - - Left - Description - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSAccessToken - - Microsoft.Azure.Commands.Profile.Models.PSAccessToken - - - - - - - Token - - - ExpiresOn - - - Type - - - TenantId - - - UserId - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSAzureSubscriptionPolicy - - Microsoft.Azure.Commands.Profile.Models.PSAzureSubscriptionPolicy - - - - - Left - - - - Left - - - - Left - - - - - - - - Left - locationPlacementId - - - Left - QuotaId - - - Left - SpendingLimit - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount - - Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount - - - - - - - Id - - - Type - - - Tenants - - - Credential - - - TenantMap - - - CertificateThumbprint - - - - $_.ExtendedProperties.GetEnumerator() - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSConfig - - Microsoft.Azure.Commands.Profile.Models.PSConfig - - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - - Left - Key - - - Left - Value - - - Left - AppliesTo - - - Left - Scope - - - Left - HelpMessage - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/Az.Accounts/4.0.2/Accounts.generated.format.ps1xml b/Modules/Az.Accounts/4.0.2/Accounts.generated.format.ps1xml deleted file mode 100644 index 1594465ce310..000000000000 --- a/Modules/Az.Accounts/4.0.2/Accounts.generated.format.ps1xml +++ /dev/null @@ -1,477 +0,0 @@ - - - - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile - - - - - Left - - - - Left - - - - - - - - Left - if($null -ne $_.Context.Subscription.Name){$_.Context.Subscription.Name}else{$_.Context.Subscription.Id} - - - Left - if($null -ne $_.Context.Tenant.Name){$_.Context.Tenant.Name}else{$_.Context.Tenant.Id} - - - - - - - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - - Left - $_.Subscription.Name - - - Left - $_.Subscription.Id - - - Left - Account - - - Left - Environment - - - - - - - if([System.String]::IsNullOrEmpty($_.Tenant.Name)){$_.Tenant.Id}else{"$($_.Tenant.Name) ($($_.Tenant.Id))"} - - - - - Microsoft.Azure.Commands.Profile.Models.PSAzureEnvironment - - Microsoft.Azure.Commands.Profile.Models.PSAzureEnvironment - - - - - Left - - - - Left - - - - Left - - - - - - - - Left - Name - - - Left - ResourceManagerUrl - - - Left - ActiveDirectoryAuthority - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription - - Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription - - - - - Left - - - - Left - - - - Left - - - - - - - - Left - Name - - - Left - Id - - - Left - State - - - - - - - TenantId - - - - - Microsoft.Azure.Commands.Profile.Models.PSAzureTenant - - Microsoft.Azure.Commands.Profile.Models.PSAzureTenant - - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - - Left - Name - - - Left - Id - - - Left - TenantCategory - - - Left - Domains - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSHttpResponse - - Microsoft.Azure.Commands.Profile.Models.PSHttpResponse - - - - - - - StatusCode - - - - Content - - - - [Microsoft.Rest.HttpExtensions]::ToJson($_.Headers).ToString() - - - - Method - - - - RequestUri - - - - Version - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/Az.Accounts/4.0.2/Accounts.types.ps1xml b/Modules/Az.Accounts/4.0.2/Accounts.types.ps1xml deleted file mode 100644 index b71f31d23490..000000000000 --- a/Modules/Az.Accounts/4.0.2/Accounts.types.ps1xml +++ /dev/null @@ -1,307 +0,0 @@ - - - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile - - - PSStandardMembers - - - SerializationDepth - 10 - - - - - - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - PSStandardMembers - - - SerializationDepth - 10 - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Core.AuthenticationStoreTokenCache - - - PSStandardMembers - - - SerializationMethod - SpecificProperties - - - PropertySerializationSet - - CacheData - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Core.ProtectedFileTokenCache - - - PSStandardMembers - - - SerializationMethod - SpecificProperties - - - PropertySerializationSet - - CacheData - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - PSStandardMembers - - - SerializationDepth - 10 - - - - - - Microsoft.Azure.Commands.Profile.Models.AzureContextConverter - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/Az.Accounts/4.0.2/Az.Accounts.psd1 b/Modules/Az.Accounts/4.0.2/Az.Accounts.psd1 deleted file mode 100644 index 2ab002de9a4d..000000000000 --- a/Modules/Az.Accounts/4.0.2/Az.Accounts.psd1 +++ /dev/null @@ -1,392 +0,0 @@ -# -# Module manifest for module 'Az.Accounts' -# -# Generated by: Microsoft Corporation -# -# Generated on: 1/15/2025 -# - -@{ - -# Script module or binary module file associated with this manifest. -RootModule = 'Az.Accounts.psm1' - -# Version number of this module. -ModuleVersion = '4.0.2' - -# Supported PSEditions -CompatiblePSEditions = 'Core', 'Desktop' - -# ID used to uniquely identify this module -GUID = '17a2feff-488b-47f9-8729-e2cec094624c' - -# Author of this module -Author = 'Microsoft Corporation' - -# Company or vendor of this module -CompanyName = 'Microsoft Corporation' - -# Copyright statement for this module -Copyright = 'Microsoft Corporation. All rights reserved.' - -# Description of the functionality provided by this module -Description = 'Microsoft Azure PowerShell - Accounts credential management cmdlets for Azure Resource Manager in Windows PowerShell and PowerShell Core. - -For more information on account credential management, please visit the following: https://learn.microsoft.com/powershell/azure/authenticate-azureps' - -# Minimum version of the PowerShell engine required by this module -PowerShellVersion = '5.1' - -# Name of the PowerShell host required by this module -# PowerShellHostName = '' - -# Minimum version of the PowerShell host required by this module -# PowerShellHostVersion = '' - -# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -DotNetFrameworkVersion = '4.7.2' - -# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -# ClrVersion = '' - -# Processor architecture (None, X86, Amd64) required by this module -# ProcessorArchitecture = '' - -# Modules that must be imported into the global environment prior to importing this module -# RequiredModules = @() - -# Assemblies that must be loaded prior to importing this module -RequiredAssemblies = 'Microsoft.Azure.PowerShell.AssemblyLoading.dll', - 'Microsoft.Azure.PowerShell.Authentication.Abstractions.dll', - 'Microsoft.Azure.PowerShell.Authentication.dll', - 'Microsoft.Azure.PowerShell.Authenticators.dll', - 'Microsoft.Azure.PowerShell.Authentication.ResourceManager.dll', - 'Microsoft.Azure.PowerShell.Clients.Authorization.dll', - 'Microsoft.Azure.PowerShell.Clients.Compute.dll', - 'Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll', - 'Microsoft.Azure.PowerShell.Clients.Monitor.dll', - 'Microsoft.Azure.PowerShell.Clients.Network.dll', - 'Microsoft.Azure.PowerShell.Clients.PolicyInsights.dll', - 'Microsoft.Azure.PowerShell.Clients.ResourceManager.dll', - 'Microsoft.Azure.PowerShell.Common.dll', - 'Microsoft.Azure.PowerShell.Storage.dll', - 'Microsoft.Azure.PowerShell.Clients.Storage.Management.dll', - 'Microsoft.Azure.PowerShell.Clients.KeyVault.dll', - 'Microsoft.Azure.PowerShell.Clients.Websites.dll', - 'Hyak.Common.dll', 'Microsoft.ApplicationInsights.dll', - 'Microsoft.Azure.Common.dll', 'Microsoft.Rest.ClientRuntime.dll', - 'Microsoft.Rest.ClientRuntime.Azure.dll', - 'Microsoft.WindowsAzure.Storage.dll', - 'Microsoft.Azure.PowerShell.Clients.Aks.dll', - 'Microsoft.Azure.PowerShell.Strategies.dll', - 'Microsoft.Azure.PowerShell.Common.Share.dll', 'FuzzySharp.dll' - -# Script files (.ps1) that are run in the caller's environment prior to importing this module. -# ScriptsToProcess = @() - -# Type files (.ps1xml) to be loaded when importing this module -# TypesToProcess = @() - -# Format files (.ps1xml) to be loaded when importing this module -FormatsToProcess = 'Accounts.format.ps1xml', 'Accounts.generated.format.ps1xml' - -# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess -NestedModules = @() - -# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. -FunctionsToExport = @() - -# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. -CmdletsToExport = 'Disable-AzDataCollection', 'Disable-AzContextAutosave', - 'Enable-AzDataCollection', 'Enable-AzContextAutosave', - 'Remove-AzEnvironment', 'Get-AzEnvironment', 'Set-AzEnvironment', - 'Add-AzEnvironment', 'Get-AzSubscription', 'Connect-AzAccount', - 'Get-AzContext', 'Set-AzContext', 'Import-AzContext', 'Save-AzContext', - 'Get-AzTenant', 'Send-Feedback', 'Resolve-AzError', 'Select-AzContext', - 'Rename-AzContext', 'Remove-AzContext', 'Clear-AzContext', - 'Disconnect-AzAccount', 'Get-AzContextAutosaveSetting', - 'Set-AzDefault', 'Get-AzDefault', 'Clear-AzDefault', - 'Register-AzModule', 'Enable-AzureRmAlias', 'Disable-AzureRmAlias', - 'Uninstall-AzureRm', 'Invoke-AzRestMethod', 'Get-AzAccessToken', - 'Open-AzSurveyLink', 'Get-AzConfig', 'Update-AzConfig', - 'Clear-AzConfig', 'Export-AzConfig', 'Import-AzConfig' - -# Variables to export from this module -# VariablesToExport = @() - -# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. -AliasesToExport = 'Add-AzAccount', 'Login-AzAccount', 'Remove-AzAccount', - 'Logout-AzAccount', 'Select-AzSubscription', 'Save-AzProfile', - 'Get-AzDomain', 'Invoke-AzRest', 'Set-AzConfig' - -# DSC resources to export from this module -# DscResourcesToExport = @() - -# List of all modules packaged with this module -ModuleList = @() - -# List of all files packaged with this module -# FileList = @() - -# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. -PrivateData = @{ - - PSData = @{ - - # Tags applied to this module. These help with module discovery in online galleries. - Tags = 'Azure','ResourceManager','ARM','Accounts','Authentication','Environment','Subscription' - - # A URL to the license for this module. - LicenseUri = 'https://aka.ms/azps-license' - - # A URL to the main website for this project. - ProjectUri = 'https://github.com/Azure/azure-powershell' - - # A URL to an icon representing this module. - # IconUri = '' - - # ReleaseNotes of this module - ReleaseNotes = '* Fixed unsigned dll: - - ''System.Buffers.dll'' - - ''System.Memory.dll''' - - # Prerelease string of this module - # Prerelease = '' - - # Flag to indicate whether the module requires explicit user acceptance for install/update/save - # RequireLicenseAcceptance = $false - - # External dependent modules of this module - # ExternalModuleDependencies = @() - - } # End of PSData hashtable - - } # End of PrivateData hashtable - -# HelpInfo URI of this module -# HelpInfoURI = '' - -# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. -# DefaultCommandPrefix = '' - -} - - -# SIG # Begin signature block -# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDK5mtKgkmMpDXq -# ldT4F01qzQRc+NEC2lnYYNG6at2a8aCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIE0A -# zdD96lAK1Vo8NAiCaLC0IqqKrc+f7RR+opf803wCMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAUrDzdpNCNElUTylcmOwPaynLh9fIYdC9VVm4 -# 9NNecnfDcN8iTiMf4wb+Z8STF/nOxmGmgpqz5Imsqci2TC5OvE+0cerww9nF0wz1 -# oBk/7HNqLC2w/8f5QK6O/dIkbtf559VtDN1999+m7E+W7rko2NlV+ooMVxBQGL8q -# Fjea1exAsvcevtBMaxhjI6zrOu6RzGL+XGBPS3/oZeHT4Fd5AcT+bzFU7/GfmiqY -# LtqFSnp96TeCnMA8LerHUMBgVelyHv5rkgAlT79j/5Q/2rBdo/7YKeGc1MKMwNm1 -# noFIejEeY8aCsHBBSGp3i4D4eNcM10VoFA12el0BQdgk0lUgnKGCF7AwghesBgor -# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCw+jAlIMAAKTlWFDcoIENvOSdmlWNeoWRJ -# cdxPsRwwuAIGZ2MAM/iyGBMyMDI1MDExNTA1Mzk0Ny45MjlaMASAAgH0oIHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo2NTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB9ZkJ -# lLzxxlCMAAEAAAH1MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzEwMVoXDTI1MTAyMjE4MzEwMVowgdMxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv -# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs -# ZCBUU1MgRVNOOjY1MUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA -# zO90cFQTWd/WP84IT7JMIW1fQL61sdfgmhlfT0nvYEb2kvkNF073ZwjveuSWot38 -# 7LjE0TCiG93e6I0HzIFQBnbxGP/WPBUirFq7WE5RAsuhNfYUL+PIb9jJq3CwWxIC -# fw5t/pTyIOHjKvo1lQOTWZypir/psZwEE7y2uWAPbZJTFrKen5R73x2Hbxy4eW1D -# cmXjym2wFWv10sBH40ajJfe+OkwcTdoYrY3KkpN/RQSjeycK0bhjo0CGYIYa+ZMA -# ao0SNR/R1J1Y6sLkiCJO3aQrbS1Sz7l+/qJgy8fyEZMND5Ms7C0sEaOvoBHiWSpT -# M4vc0xDLCmc6PGv03CtWu2KiyqrL8BAB1EYyOShI3IT79arDIDrL+de91FfjmSbB -# Y5j+HvS0l3dXkjP3Hon8b74lWwikF0rzErF0n3khVAusx7Sm1oGG+06hz9XAy3Wo -# u+T6Se6oa5LDiQgPTfWR/j9FNk8Ju06oSfTh6c03V0ulla0Iwy+HzUl+WmYxFLU0 -# PiaXsmgudNwVqn51zr+Bi3XPJ85wWuy6GGT7nBDmXNzTNkzK98DBQjTOabQXUZ88 -# 4Yb9DFNcigmeVTYkyUXZ6hscd8Nyq45A3D3bk+nXnsogK1Z7zZj6XbGft7xgOYvv -# eU6p0+frthbF7MXv+i5qcD9HfFmOq4VYHevVesYb6P0CAwEAAaOCAUkwggFFMB0G -# A1UdDgQWBBRV4Hxb9Uo0oHDwJZJe22ixe2B1ATAfBgNVHSMEGDAWgBSfpxVdAF5i -# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv -# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB -# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw -# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp -# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud -# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF -# AAOCAgEAcwxmVPaA9xHffuom0TOSp2hspuf1G0cHW/KXHAuhnpW8/Svlq5j9aKI/ -# 8/G6fGIQMr0zlpau8jy83I4zclGdJjl5S02SxDlUKawtWvgf7ida06PgjeQM1eX4 -# Lut4bbPfT0FEp77G76hhysXxTJNHv5y+fwThUeiiclihZwqcZMpa46m+oV6igTU6 -# I0EnneotMqFs0Q3zHgVVr4WXjnG2Bcnkip42edyg/9iXczqTBrEkvTz0UlltpFGa -# QnLzq+No8VEgq0UG7W1ELZGhmmxFmHABwTT6sPJFV68DfLoC0iB9Qbb9VZ8mvbTV -# 5JtISBklTuVAlEkzXi9LIjNmx+kndBfKP8dxG/xbRXptQDQDaCsS6ogLkwLgH6zS -# s+ul9WmzI0F8zImbhnZhUziIHheFo4H+ZoojPYcgTK6/3bkSbOabmQFf95B8B6e5 -# WqXbS5s9OdMdUlW1gTI1r5u+WAwH2KG7dxneoTbf/jYl3TUtP7AHpyck2c0nun/Q -# 0Cycpa9QUH/Dy01k6tQomNXGjivg2/BGcgZJ0Hw8C6KVelEJ31xLoE21m9+NEgSK -# CRoFE1Lkma31SyIaynbdYEb8sOlZynMdm8yPldDwuF54vJiEArjrcDNXe6BobZUi -# TWSKvv1DJadR1SUCO/Od21GgU+hZqu+dKgjKAYdeTIvi9R2rtLYwggdxMIIFWaAD -# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD -# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe -# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv -# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy -# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 -# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 -# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu -# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl -# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg -# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I -# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 -# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ -# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy -# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y -# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H -# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB -# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW -# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B -# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB -# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB -# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL -# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv -# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr -# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS -# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq -# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 -# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv -# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak -# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK -# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 -# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ -# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep -# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk -# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg -# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ -# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo2NTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAJsAKu48NbR5Y -# Rg3WSBQCyjzdkvaggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDANBgkqhkiG9w0BAQsFAAIFAOsxvo4wIhgPMjAyNTAxMTUwNDU2NDZaGA8yMDI1 -# MDExNjA0NTY0NlowdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA6zG+jgIBADAKAgEA -# AgIoogIB/zAHAgEAAgISHDAKAgUA6zMQDgIBADA2BgorBgEEAYRZCgQCMSgwJjAM -# BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB -# CwUAA4IBAQCVq0g+iWAmRm16BtbM2Sp4q6+PRBq3nCiusp6qte0xRnsTZb3Tlkyv -# 91TSfqNDFnVdm/BSvFWHRwZL74s3jxgELjkPsv7Ms6an5NvzApEfrBg0OFMGItTW -# 06gvvGNIuJgWy/8AEruIqVU4LtKpopccfNBaGcGbPBoU/uFDh3ziERqHzKECulPM -# 2wG1OaO4eqzGTLf2YId4WQhKgMvFiPWBpfcWcILB2s7sFukaqFCMAGyn5GbteXGs -# bV4StcmiNk4Xy0iXKDF4VvKuiuZjje8/3VkxxrLgUsiChsZ4KHLQwS3o0tHEY+gf -# kWWN5IjQ9JNcoQk78vSMdHHWGqusO0/PMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE -# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc -# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 -# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH1mQmUvPHGUIwAAQAAAfUwDQYJYIZI -# AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG -# 9w0BCQQxIgQgizqi6CmtxzVP9l8zL6yoUDgllwt9uwXkgMyBaqVB7gAwgfoGCyqG -# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCDB1vLSFwh09ISu4kdEv4/tg9eR1Yk8w5x7 -# j5GThqaPNTCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n -# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y -# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz -# AAAB9ZkJlLzxxlCMAAEAAAH1MCIEIEMLG08lG2xg9LnQKbkk+Sdc4Uk5rgPQtsKF -# qXpfJKEMMA0GCSqGSIb3DQEBCwUABIICABBitbDgwdV7wL7FhlODyhGhZaeYUsyT -# +9b2XxkD1UFJcSUmZADUKXW/ekuISVN+Ll8dy5B73Wcc8gDgZlS4WYdGrVBRRsiT -# MSMVYPhvAfEN5vRpxMNzyxEfLUNOzv1NvJVOxEAFvdnPH0VC09jzXsHGcJn2O4vz -# rieeNt3/TPQKIjL3vXGJhXJULnNKyFTKNXg7ufSOcrU8XDiT4MZttfKcbT26qkWq -# PqHQfXqKe1WoAsRp5EgTvJncxu51KhPCApQ0LE8Lm4AB1vgc2pjlaFs5PZs6A2dP -# 4jEyCLzkm9wBA9QVYTj9Xzmh3Aalit4Uja13YdbO+5e5FNnBZzsVugv6p3K/pJca -# TvM3ykY3poxXPSUtzomZ/9T4E4YkHfef/YXDn5uQFN7oRyntmZ6YeN6gbTVv5cNP -# jHenOmojF45YY+wmhUrw0UgAgKPTgAsUQCQK576aolo9OCugLKUlJNPIH8Bhoan+ -# kaTwRxGd9M3O7AYFmfqGQ4UJbOS+Vb/jkMR1x5UjvaFTuXnSWcUkatMnCg33ZWkK -# iekRiX0Wtme+RLiBtUUFChE9aTU/65Dxe5VEYi6vgn3x02JJNAzbQ5qdAr3i+H5z -# 5nzxyfPSgoAWmczsWiJo4T8PRZtc/FmrwmpA3TjYihPm8lA+Are5XG+WZiJQe9OY -# dFS1z/xdasRU -# SIG # End signature block diff --git a/Modules/Az.Accounts/4.0.2/Az.Accounts.psm1 b/Modules/Az.Accounts/4.0.2/Az.Accounts.psm1 deleted file mode 100644 index d241cbf09f01..000000000000 --- a/Modules/Az.Accounts/4.0.2/Az.Accounts.psm1 +++ /dev/null @@ -1,358 +0,0 @@ -# -# Script module for module 'Az.Accounts' that is executed when 'Az.Accounts' is imported in a PowerShell session. -# -# Generated by: Microsoft Corporation -# -# Generated on: 01/15/2025 04:43:49 -# - -$PSDefaultParameterValues.Clear() -Set-StrictMode -Version Latest - -function Test-DotNet -{ - try - { - if ((Get-PSDrive 'HKLM' -ErrorAction Ignore) -and (-not (Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\' -ErrorAction Stop | Get-ItemPropertyValue -ErrorAction Stop -Name Release | Where-Object { $_ -ge 461808 }))) - { - throw ".NET Framework versions lower than 4.7.2 are not supported in Az. Please upgrade to .NET Framework 4.7.2 or higher." - } - } - catch [System.Management.Automation.DriveNotFoundException] - { - Write-Verbose ".NET Framework version check failed." - } -} - -function Preload-Assembly { - param ( - [string] - $AssemblyDirectory - ) - if($PSEdition -eq 'Desktop' -and (Test-Path $AssemblyDirectory -ErrorAction Ignore)) - { - try - { - Get-ChildItem -ErrorAction Stop -Path $AssemblyDirectory -Filter "*.dll" | ForEach-Object { - try - { - Add-Type -Path $_.FullName -ErrorAction Ignore | Out-Null - } - catch { - Write-Verbose $_ - } - } - } - catch {} - } -} - -if ($true -and ($PSEdition -eq 'Desktop')) -{ - if ($PSVersionTable.PSVersion -lt [Version]'5.1') - { - throw "PowerShell versions lower than 5.1 are not supported in Az. Please upgrade to PowerShell 5.1 or higher." - } - - Test-DotNet -} - - - -if (Test-Path -Path "$PSScriptRoot\StartupScripts" -ErrorAction Ignore) -{ - Get-ChildItem "$PSScriptRoot\StartupScripts" -ErrorAction Stop | ForEach-Object { - . $_.FullName - } -} - -# [windows powershell] preload assemblies -if ($PSEdition -eq "Desktop") { - [Microsoft.Azure.PowerShell.AssemblyLoading.ConditionalAssemblyProvider]::GetAssemblies().Values | ForEach-Object { - $path = $_.Item1 - try { - Add-Type -Path $path -ErrorAction Ignore | Out-Null - } - catch { - Write-Verbose "Could not preload $path" - } - } -} - -# [windows powershell] preload module alc assemblies -$preloadPath = (Join-Path $PSScriptRoot -ChildPath "ModuleAlcAssemblies") -Preload-Assembly -AssemblyDirectory $preloadPath - -if (Get-Module AzureRM.profile -ErrorAction Ignore) -{ - Write-Warning ("AzureRM.Profile already loaded. Az and AzureRM modules cannot be imported in the same session or used in the same script or runbook. If you are running PowerShell in an environment you control you can use the 'Uninstall-AzureRm' cmdlet to remove all AzureRm modules from your machine. " + - "If you are running in Azure Automation, take care that none of your runbooks import both Az and AzureRM modules. More information can be found here: https://aka.ms/azps-migration-guide.") - throw ("AzureRM.Profile already loaded. Az and AzureRM modules cannot be imported in the same session or used in the same script or runbook. If you are running PowerShell in an environment you control you can use the 'Uninstall-AzureRm' cmdlet to remove all AzureRm modules from your machine. " + - "If you are running in Azure Automation, take care that none of your runbooks import both Az and AzureRM modules. More information can be found here: https://aka.ms/azps-migration-guide.") -} - -Import-Module (Join-Path -Path $PSScriptRoot -ChildPath Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll) - - -if (Test-Path -Path "$PSScriptRoot\PostImportScripts" -ErrorAction Ignore) -{ - Get-ChildItem "$PSScriptRoot\PostImportScripts" -ErrorAction Stop | ForEach-Object { - . $_.FullName - } -} - -$FilteredCommands = @() - -if ($Env:ACC_CLOUD -eq $null) -{ - $FilteredCommands | ForEach-Object { - - $existingDefault = $false - foreach ($key in $global:PSDefaultParameterValues.Keys) - { - if ($_ -like "$key") - { - $existingDefault = $true - } - } - - if (!$existingDefault) - { - $global:PSDefaultParameterValues.Add($_, - { - if ((Get-Command Get-AzContext -ErrorAction Ignore) -eq $null) - { - $context = Get-AzureRmContext - } - else - { - $context = Get-AzContext - } - if (($context -ne $null) -and $context.ExtendedProperties.ContainsKey("Default Resource Group")) { - $context.ExtendedProperties["Default Resource Group"] - } - }) - } - } -} - -[Microsoft.Azure.Commands.Profile.Utilities.CommandNotFoundHelper]::RegisterCommandNotFoundAction($ExecutionContext.InvokeCommand) - -# SIG # Begin signature block -# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBwt70oVUrtNYG0 -# GEoxxpfM/NAFTlcmfziPbVQ6V7MS36CCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEINKF -# x8cKgPvXJLmCJ6vZXGRyJR7bxtBQ1tf0rPIOIeecMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAYg4uCSbzwf0+3IAsz5ly4l2T+RFK2bNrly8s -# sQXcBxSMfJwCxpim8ar2ybus0JFc1vSyLvvP6S+51kjxoGEruZLna38EzofTpPQt -# J514atJIC87oqjf3PhEZ5UHZBZV6sxQqkAWerD/IxXIiUiR03WTaPcqihTzGueui -# xc9fRuNiSQSU/aAH3RYfgj1MRyzSKFM1QDfYwAU89EG9OKFhA1O4l//ROc0sIPsx -# Q6tkoDARigx6IrwfAR1KvanUE17Kc42dgte1RmduY3flItysACb0fWRdRan+ysLT -# kz7H3txI8RKXSQKLocmYIEsp5ULwSAWBIQpjTlSb7D7XCuDa2qGCF7AwghesBgor -# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCA07ntfPiYF0m5iI8ufTS426s5Op+n/EUos -# e8s3rQQMVAIGZ2L55w3rGBMyMDI1MDExNTA1MDYwMC4wMjVaMASAAgH0oIHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo1NTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAACAdFF -# WZgQzEJPAAEAAAIBMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzEyMloXDTI1MTAyMjE4MzEyMlowgdMxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv -# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs -# ZCBUU1MgRVNOOjU1MUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA -# tWrf+HzDu7sk50y5YHheCIJG0uxRSFFcHNek+Td9ZmyJj20EEjaU8JDJu5pWc4pP -# AsBI38NEAJ1b+KBnlStqU8uvXF4qnEShDdi8nPsZZQsTZDKWAgUM2iZTOiWIuZcF -# s5ZC8/+GlrVLM5h1Y9nfMh5B4DnUQOXMremAT9MkvUhg3uaYgmqLlmYyODmba4lX -# ZBu104SLAFsXOfl/TLhpToT46y7lI9sbI9uq3/Aerh3aPi2knHvEEazilXeooXNL -# Cwdu+Is6o8kQLouUn3KwUQm0b7aUtsv1X/OgPmsOJi6yN3LYWyHISvrNuIrJ4iYN -# gHdBBumQYK8LjZmQaTKFacxhmXJ0q2gzaIfxF2yIwM+V9sQqkHkg/Q+iSDNpMr6m -# r/OwknOEIjI0g6ZMOymivpChzDNoPz9hkK3gVHZKW7NV8+UBXN4G0aBX69fKUbxB -# BLyk2cC+PhOoUjkl6UC8/c0huqj5xX8m+YVIk81e7t6I+V/E4yXReeZgr0FhYqNp -# vTjGcaO2WrkP5XmsYS7IvMPIf4DCyIJUZaqoBMToAJJHGRe+DPqCHg6bmGPm97Mr -# OWv16/Co6S9cQDkXp9vMSSRQWXy4KtJhZfmuDz2vr1jw4NeixwuIDGw1mtV/TdSI -# +vpLJfUiLl/b9w/tJB92BALQT8e1YH8NphdOo1xCwkcCAwEAAaOCAUkwggFFMB0G -# A1UdDgQWBBSwcq9blqLoPPiVrym9mFmFWbyyUjAfBgNVHSMEGDAWgBSfpxVdAF5i -# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv -# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB -# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw -# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp -# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud -# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF -# AAOCAgEAOjQAyz0cVztTFGqXX5JLRxFK/O/oMe55uDqEC8Vd1gbcM28KBUPgvUIP -# Xm/vdDN2IVBkWHmwCp4AIcy4dZtkuUmd0fnu6aT9Mvo1ndsLp2YJcMoFLEt3Ttri -# LaO+i4Grv0ZULtWXUPAW/Mn5Scjgn0xZduGPBD/Xs3J7+get9+8ZvBipsg/N7poi -# mYOVsHxLcem7V5XdMNsytTm/uComhM/wgR5KlDYTVNAXBxcSKMeJaiD3V1+HhNkV -# liMl5VOP+nw5xWF55u9h6eF2G7eBPqT+qSFQ+rQCQdIrN0yG1QN9PJroguK+FJQJ -# dQzdfD3RWVsciBygbYaZlT1cGJI1IyQ74DQ0UBdTpfeGsyrEQ9PI8QyqVLqb2q7L -# tI6DJMNphYu+jr//0spr1UVvyDPtuRnbGQRNi1COwJcj9OYmlkFgKNeCfbDT7U3u -# EOvWomekX60Y/m5utRcUPVeAPdhkB+DxDaev3J1ywDNdyu911nAVPgRkyKgMK3US -# LG37EdlatDk8FyuCrx4tiHyqHO3wE6xPw32Q8e/vmuQPoBZuX3qUeoFIsyZEenHq -# 2ScMunhcqW32SUVAi5oZ4Z3nf7dAgNau21NEPwgW+2wkrNqDg7Hp8yHyoOKbgEBu -# 6REQbvSfZ5Kh4PV+S2gxf2uq6GoYDnlqABOMYwz309ISi0bPMh8wggdxMIIFWaAD -# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD -# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe -# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv -# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy -# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 -# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 -# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu -# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl -# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg -# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I -# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 -# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ -# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy -# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y -# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H -# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB -# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW -# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B -# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB -# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB -# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL -# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv -# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr -# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS -# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq -# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 -# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv -# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak -# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK -# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 -# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ -# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep -# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk -# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg -# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ -# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo1NTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUA1+26cR/yH100 -# DiNFGWhuAv2rYBqggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDANBgkqhkiG9w0BAQsFAAIFAOsxuEEwIhgPMjAyNTAxMTUwNDI5NTNaGA8yMDI1 -# MDExNjA0Mjk1M1owdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA6zG4QQIBADAKAgEA -# AgIHzQIB/zAHAgEAAgISnTAKAgUA6zMJwQIBADA2BgorBgEEAYRZCgQCMSgwJjAM -# BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB -# CwUAA4IBAQB87qItBy5QGJZwK9rvox2hiIJRJKuKzcMxT1ZFJzdVA+aldDmVQdWk -# /kpOMHDoHzXEbJcPIbCngaf2g6HKZfRzVh2XJSAwk7zXLR4acMaY1GO5yIQ2OesO -# HW36CskPz7m6Wq4JFO6K6EE534K4lTFU6TG4YFcpYfJKqdxlQbDmlBGwM0iaLOxM -# uFLcrt+/FUmdJll+hEBIJ4I3B7DMWVu9iw9ERWfAKmM6oP7Ikrjz3MGzaGzxC5/Q -# ADVueNzI7qhJ41VUoLCJ8TdsY3HPZG4oPWLy/gcqkSdULMIkVLRbqZMgUQU2t0re -# 5mVhIYaoNxb5VzUMtQfAAeQ9YktmP/OoMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE -# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc -# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 -# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAIB0UVZmBDMQk8AAQAAAgEwDQYJYIZI -# AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG -# 9w0BCQQxIgQgyASmzzAr0ZwZ55KQBu6yOCu9/CnGDyrh8t47/5g8/3kwgfoGCyqG -# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCBYa7I6TJQRcmx0HaSTWZdJgowdrl9+Zrr0 -# pIdqHtc4IzCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n -# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y -# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz -# AAACAdFFWZgQzEJPAAEAAAIBMCIEIMdlN3kdopMNiKrT6aHLNW+KZt96Yb72qdBD -# 6f1aGI67MA0GCSqGSIb3DQEBCwUABIICAJUpKwUXN/AKqRuhx3QqVr3w3qfmUSZ9 -# FXyw6l7L0xhOvXBsfPROZBnlSculduAbm9kqolWgiSWkID5B4sTp7/YRnmVtxEzT -# aHlt7u3H4sDoABa4MXbhmpDLlpqObc/KDa1LYufbn/gFimQgFaQY8oacgTFiILFR -# UpUq1I9pQ2xUZm0g8Plt1yil1SXi+FEYtirS5MV7vvCIsDha/UflwiQ0tW6YUoZG -# 2KjxBq1Y1jgZelNbDRiYXfQuc3tSIGMsjh9PL9Md/MSNM2qbpPrUQQu83SXkTTlj -# oA/cQICaoW4wIhs7QcEUa4KEzeClXIbdh6zsxlMhm4r8zvGxwGLTFs5UAjEHOKcX -# k1BtH3AfjAoStVkAtvAptiVu6IvF1eYEvmx35ebJom2yZr2tvdxUsoKjZQ9m1+Sw -# E9+AJOps3QCB6geJRO1dego+hw+UpOC4mMBE+/uhbTb1T9gJVXPJiIwKnZtMuY+I -# UqJ5sm2RpsGZ9vSo1PnVb56mIQXp4P8SJ8LwIIxkmCHw8gLs//qYoy9MXcBf8Aq9 -# v8rpIh7jet7BHE5zLZiY7pN7BdbGJZBp3hgiyRJTPrYQD9i4vwb6JNRISfMJgAwH -# 6Hl0BHoOF3wiqaBJ1R7T7mt49uNX/QsIli8jgDNVdtqULQwasDF6RfCfqN+y3SLZ -# T4PNlqoz3O6D -# SIG # End signature block diff --git a/Modules/Az.Accounts/4.0.2/FuzzySharp.dll b/Modules/Az.Accounts/4.0.2/FuzzySharp.dll deleted file mode 100644 index 701466a04d5e..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/FuzzySharp.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Hyak.Common.dll b/Modules/Az.Accounts/4.0.2/Hyak.Common.dll deleted file mode 100644 index 18a53248894f..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Hyak.Common.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.ApplicationInsights.dll b/Modules/Az.Accounts/4.0.2/Microsoft.ApplicationInsights.dll deleted file mode 100644 index 8ef5eef2989d..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.ApplicationInsights.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.Common.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.Common.dll deleted file mode 100644 index 1c9d8e2a0ef5..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.Common.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.AssemblyLoading.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.AssemblyLoading.dll deleted file mode 100644 index 619254b637cd..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.AssemblyLoading.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Authentication.Abstractions.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Authentication.Abstractions.dll deleted file mode 100644 index e40edefc86e3..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Authentication.Abstractions.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Authentication.ResourceManager.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Authentication.ResourceManager.dll deleted file mode 100644 index dd57fdc38ae0..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Authentication.ResourceManager.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Authentication.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Authentication.dll deleted file mode 100644 index 20b86e1ea990..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Authentication.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext.dll deleted file mode 100644 index 2396df000cc2..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Authenticators.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Authenticators.dll deleted file mode 100644 index e280f81e6722..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Authenticators.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Aks.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Aks.dll deleted file mode 100644 index e9dc594738ec..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Aks.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Authorization.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Authorization.dll deleted file mode 100644 index 7669ecfcddcf..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Authorization.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Compute.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Compute.dll deleted file mode 100644 index ce750e245544..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Compute.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll deleted file mode 100644 index 7060d4efbaac..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.KeyVault.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.KeyVault.dll deleted file mode 100644 index 0862ab671f22..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.KeyVault.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Monitor.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Monitor.dll deleted file mode 100644 index a66810241270..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Monitor.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Network.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Network.dll deleted file mode 100644 index 30d7293ef10e..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Network.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.PolicyInsights.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.PolicyInsights.dll deleted file mode 100644 index 7daf481f40b6..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.PolicyInsights.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.ResourceManager.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.ResourceManager.dll deleted file mode 100644 index 82ad5ee131a1..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.ResourceManager.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Storage.Management.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Storage.Management.dll deleted file mode 100644 index 48429f19a340..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Storage.Management.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Websites.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Websites.dll deleted file mode 100644 index 95f075434894..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Websites.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll deleted file mode 100644 index f98315f4fff3..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll-Help.xml b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll-Help.xml deleted file mode 100644 index b8018518d840..000000000000 --- a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll-Help.xml +++ /dev/null @@ -1,14218 +0,0 @@ - - - - - Add-AzEnvironment - Add - AzEnvironment - - Adds endpoints and metadata for an instance of Azure Resource Manager. - - - - The Add-AzEnvironment cmdlet adds endpoints and metadata to enable Azure Resource Manager cmdlets to connect with a new instance of Azure Resource Manager. The built-in environments AzureCloud and AzureChinaCloud target existing public instances of Azure Resource Manager. - - - - Add-AzEnvironment - - Name - - Specifies the name of the environment to add. - - System.String - - System.String - - - None - - - PublishSettingsFileUrl - - Specifies the URL from which .publishsettings files can be downloaded. - - System.String - - System.String - - - None - - - AzureKeyVaultDnsSuffix - - Dns suffix of Azure Key Vault service. Example is vault-int.azure-int.net - - System.String - - System.String - - - None - - - AzureKeyVaultServiceEndpointResourceId - - Resource identifier of Azure Key Vault data service that is the recipient of the requested token. - - System.String - - System.String - - - None - - - TrafficManagerDnsSuffix - - Specifies the domain-name suffix for Azure Traffic Manager services. - - System.String - - System.String - - - None - - - SqlDatabaseDnsSuffix - - Specifies the domain-name suffix for Azure SQL Database servers. - - System.String - - System.String - - - None - - - AzureDataLakeStoreFileSystemEndpointSuffix - - Dns Suffix of Azure Data Lake Store FileSystem. Example: azuredatalake.net - - System.String - - System.String - - - None - - - AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix - - Dns Suffix of Azure Data Lake Analytics job and catalog services - - System.String - - System.String - - - None - - - EnableAdfsAuthentication - - Indicates that Active Directory Federation Services (ADFS) on-premise authentication is allowed. - - - System.Management.Automation.SwitchParameter - - - False - - - AdTenant - - Specifies the default Active Directory tenant. - - System.String - - System.String - - - None - - - GraphAudience - - The audience for tokens authenticating with the AD Graph Endpoint. - - System.String - - System.String - - - None - - - DataLakeAudience - - The audience for tokens authenticating with the AD Data Lake services Endpoint. - - System.String - - System.String - - - None - - - ServiceEndpoint - - Specifies the endpoint for Service Management (RDFE) requests. - - System.String - - System.String - - - None - - - BatchEndpointResourceId - - The resource identifier of the Azure Batch service that is the recipient of the requested token - - System.String - - System.String - - - None - - - AzureOperationalInsightsEndpointResourceId - - The audience for tokens authenticating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - AzureOperationalInsightsEndpoint - - The endpoint to use when communicating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - ManagementPortalUrl - - Specifies the URL for the Management Portal. - - System.String - - System.String - - - None - - - StorageEndpoint - - Specifies the endpoint for storage (blob, table, queue, and file) access. - - System.String - - System.String - - - None - - - ActiveDirectoryEndpoint - - Specifies the base authority for Azure Active Directory authentication. - - System.String - - System.String - - - None - - - ResourceManagerEndpoint - - Specifies the URL for Azure Resource Manager requests. - - System.String - - System.String - - - None - - - GalleryEndpoint - - Specifies the endpoint for the Azure Resource Manager gallery of deployment templates. The parameter is to set the value to `GalleryUrl` of `PSAzureEnvironment`. As `GalleryUrl` is removed from ArmMetadata, Azure PowerShell will no longer provide for the value and so it is not recommended to set `GalleryEndpoint` anymore. - - System.String - - System.String - - - None - - - ActiveDirectoryServiceEndpointResourceId - - Specifies the audience for tokens that authenticate requests to Azure Resource Manager or Service Management (RDFE) endpoints. - - System.String - - System.String - - - None - - - GraphEndpoint - - Specifies the URL for Graph (Active Directory metadata) requests. - - System.String - - System.String - - - None - - - AzureAnalysisServicesEndpointResourceId - - The resource identifier of the Azure Analysis Services resource. - - System.String - - System.String - - - None - - - AzureAnalysisServicesEndpointSuffix - - The endpoint to use when communicating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - AzureAttestationServiceEndpointResourceId - - The resource identifier of the Azure Attestation service that is the recipient of the requested token. - - System.String - - System.String - - - None - - - AzureAttestationServiceEndpointSuffix - - Dns suffix of Azure Attestation service. - - System.String - - System.String - - - None - - - AzureSynapseAnalyticsEndpointResourceId - - The resource identifier of the Azure Synapse Analytics that is the recipient of the requested token. - - System.String - - System.String - - - None - - - AzureSynapseAnalyticsEndpointSuffix - - Dns suffix of Azure Synapse Analytics. - - System.String - - System.String - - - None - - - ContainerRegistryEndpointSuffix - - Suffix of Azure Container Registry. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - MicrosoftGraphEndpointResourceId - - The resource identifier of Microsoft Graph - - System.String - - System.String - - - None - - - MicrosoftGraphUrl - - Microsoft Graph Url - - System.String - - System.String - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzEnvironment - - Name - - Specifies the name of the environment to add. - - System.String - - System.String - - - None - - - ARMEndpoint - - The Azure Resource Manager endpoint - - System.String - - System.String - - - None - - - AzureKeyVaultDnsSuffix - - Dns suffix of Azure Key Vault service. Example is vault-int.azure-int.net - - System.String - - System.String - - - None - - - AzureKeyVaultServiceEndpointResourceId - - Resource identifier of Azure Key Vault data service that is the recipient of the requested token. - - System.String - - System.String - - - None - - - DataLakeAudience - - The audience for tokens authenticating with the AD Data Lake services Endpoint. - - System.String - - System.String - - - None - - - BatchEndpointResourceId - - The resource identifier of the Azure Batch service that is the recipient of the requested token - - System.String - - System.String - - - None - - - AzureOperationalInsightsEndpointResourceId - - The audience for tokens authenticating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - AzureOperationalInsightsEndpoint - - The endpoint to use when communicating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - StorageEndpoint - - Specifies the endpoint for storage (blob, table, queue, and file) access. - - System.String - - System.String - - - None - - - AzureAnalysisServicesEndpointResourceId - - The resource identifier of the Azure Analysis Services resource. - - System.String - - System.String - - - None - - - AzureAnalysisServicesEndpointSuffix - - The endpoint to use when communicating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - AzureAttestationServiceEndpointResourceId - - The resource identifier of the Azure Attestation service that is the recipient of the requested token. - - System.String - - System.String - - - None - - - AzureAttestationServiceEndpointSuffix - - Dns suffix of Azure Attestation service. - - System.String - - System.String - - - None - - - AzureSynapseAnalyticsEndpointResourceId - - The resource identifier of the Azure Synapse Analytics that is the recipient of the requested token. - - System.String - - System.String - - - None - - - AzureSynapseAnalyticsEndpointSuffix - - Dns suffix of Azure Synapse Analytics. - - System.String - - System.String - - - None - - - ContainerRegistryEndpointSuffix - - Suffix of Azure Container Registry. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzEnvironment - - AutoDiscover - - Discovers environments via default or configured endpoint. - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Uri - - Specifies URI of the internet resource to fetch environments. - - System.Uri - - System.Uri - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ActiveDirectoryEndpoint - - Specifies the base authority for Azure Active Directory authentication. - - System.String - - System.String - - - None - - - ActiveDirectoryServiceEndpointResourceId - - Specifies the audience for tokens that authenticate requests to Azure Resource Manager or Service Management (RDFE) endpoints. - - System.String - - System.String - - - None - - - AdTenant - - Specifies the default Active Directory tenant. - - System.String - - System.String - - - None - - - ARMEndpoint - - The Azure Resource Manager endpoint - - System.String - - System.String - - - None - - - AutoDiscover - - Discovers environments via default or configured endpoint. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - AzureAnalysisServicesEndpointResourceId - - The resource identifier of the Azure Analysis Services resource. - - System.String - - System.String - - - None - - - AzureAnalysisServicesEndpointSuffix - - The endpoint to use when communicating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - AzureAttestationServiceEndpointResourceId - - The resource identifier of the Azure Attestation service that is the recipient of the requested token. - - System.String - - System.String - - - None - - - AzureAttestationServiceEndpointSuffix - - Dns suffix of Azure Attestation service. - - System.String - - System.String - - - None - - - AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix - - Dns Suffix of Azure Data Lake Analytics job and catalog services - - System.String - - System.String - - - None - - - AzureDataLakeStoreFileSystemEndpointSuffix - - Dns Suffix of Azure Data Lake Store FileSystem. Example: azuredatalake.net - - System.String - - System.String - - - None - - - AzureKeyVaultDnsSuffix - - Dns suffix of Azure Key Vault service. Example is vault-int.azure-int.net - - System.String - - System.String - - - None - - - AzureKeyVaultServiceEndpointResourceId - - Resource identifier of Azure Key Vault data service that is the recipient of the requested token. - - System.String - - System.String - - - None - - - AzureOperationalInsightsEndpoint - - The endpoint to use when communicating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - AzureOperationalInsightsEndpointResourceId - - The audience for tokens authenticating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - AzureSynapseAnalyticsEndpointResourceId - - The resource identifier of the Azure Synapse Analytics that is the recipient of the requested token. - - System.String - - System.String - - - None - - - AzureSynapseAnalyticsEndpointSuffix - - Dns suffix of Azure Synapse Analytics. - - System.String - - System.String - - - None - - - BatchEndpointResourceId - - The resource identifier of the Azure Batch service that is the recipient of the requested token - - System.String - - System.String - - - None - - - ContainerRegistryEndpointSuffix - - Suffix of Azure Container Registry. - - System.String - - System.String - - - None - - - DataLakeAudience - - The audience for tokens authenticating with the AD Data Lake services Endpoint. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnableAdfsAuthentication - - Indicates that Active Directory Federation Services (ADFS) on-premise authentication is allowed. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - GalleryEndpoint - - Specifies the endpoint for the Azure Resource Manager gallery of deployment templates. The parameter is to set the value to `GalleryUrl` of `PSAzureEnvironment`. As `GalleryUrl` is removed from ArmMetadata, Azure PowerShell will no longer provide for the value and so it is not recommended to set `GalleryEndpoint` anymore. - - System.String - - System.String - - - None - - - GraphAudience - - The audience for tokens authenticating with the AD Graph Endpoint. - - System.String - - System.String - - - None - - - GraphEndpoint - - Specifies the URL for Graph (Active Directory metadata) requests. - - System.String - - System.String - - - None - - - ManagementPortalUrl - - Specifies the URL for the Management Portal. - - System.String - - System.String - - - None - - - MicrosoftGraphEndpointResourceId - - The resource identifier of Microsoft Graph - - System.String - - System.String - - - None - - - MicrosoftGraphUrl - - Microsoft Graph Url - - System.String - - System.String - - - None - - - Name - - Specifies the name of the environment to add. - - System.String - - System.String - - - None - - - PublishSettingsFileUrl - - Specifies the URL from which .publishsettings files can be downloaded. - - System.String - - System.String - - - None - - - ResourceManagerEndpoint - - Specifies the URL for Azure Resource Manager requests. - - System.String - - System.String - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - ServiceEndpoint - - Specifies the endpoint for Service Management (RDFE) requests. - - System.String - - System.String - - - None - - - SqlDatabaseDnsSuffix - - Specifies the domain-name suffix for Azure SQL Database servers. - - System.String - - System.String - - - None - - - StorageEndpoint - - Specifies the endpoint for storage (blob, table, queue, and file) access. - - System.String - - System.String - - - None - - - TrafficManagerDnsSuffix - - Specifies the domain-name suffix for Azure Traffic Manager services. - - System.String - - System.String - - - None - - - Uri - - Specifies URI of the internet resource to fetch environments. - - System.Uri - - System.Uri - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - System.Management.Automation.SwitchParameter - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSAzureEnvironment - - - - - - - - - - - - - - ----- Example 1: Creating and modifying a new environment ----- - Add-AzEnvironment -Name TestEnvironment ` - -ActiveDirectoryEndpoint TestADEndpoint ` - -ActiveDirectoryServiceEndpointResourceId TestADApplicationId ` - -ResourceManagerEndpoint TestRMEndpoint ` - -GalleryEndpoint TestGalleryEndpoint ` - -GraphEndpoint TestGraphEndpoint - -Name Resource Manager Url ActiveDirectory Authority ----- -------------------- ------------------------- -TestEnvironment TestRMEndpoint TestADEndpoint/ - -Set-AzEnvironment -Name TestEnvironment ` - -ActiveDirectoryEndpoint NewTestADEndpoint ` - -GraphEndpoint NewTestGraphEndpoint | Format-List - -Name : TestEnvironment -EnableAdfsAuthentication : False -OnPremise : False -ActiveDirectoryServiceEndpointResourceId : TestADApplicationId -AdTenant : -GalleryUrl : TestGalleryEndpoint -ManagementPortalUrl : -ServiceManagementUrl : -PublishSettingsFileUrl : -ResourceManagerUrl : TestRMEndpoint -SqlDatabaseDnsSuffix : -StorageEndpointSuffix : -ActiveDirectoryAuthority : NewTestADEndpoint -GraphUrl : NewTestGraphEndpoint -GraphEndpointResourceId : -TrafficManagerDnsSuffix : -AzureKeyVaultDnsSuffix : -DataLakeEndpointResourceId : -AzureDataLakeStoreFileSystemEndpointSuffix : -AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix : -AzureKeyVaultServiceEndpointResourceId : -AzureOperationalInsightsEndpointResourceId : -AzureOperationalInsightsEndpoint : -AzureAnalysisServicesEndpointSuffix : -AzureAttestationServiceEndpointSuffix : -AzureAttestationServiceEndpointResourceId : -AzureSynapseAnalyticsEndpointSuffix : -AzureSynapseAnalyticsEndpointResourceId : -VersionProfiles : {} -ExtendedProperties : {} -BatchEndpointResourceId : - - In this example we are creating a new Azure environment with sample endpoints using Add-AzEnvironment, and then we are changing the value of the ActiveDirectoryEndpoint and GraphEndpoint attributes of the created environment using the cmdlet Set-AzEnvironment. - - - - - - ------- Example 2: Discovering a new environment via Uri ------- - <# -Uri https://configuredmetadata.net returns an array of environment metadata. The following example contains a payload for the AzureCloud default environment. - -[ - { - "portal": "https://portal.azure.com", - "authentication": { - "loginEndpoint": "https://login.microsoftonline.com/", - "audiences": [ - "https://management.core.windows.net/" - ], - "tenant": "common", - "identityProvider": "AAD" - }, - "media": "https://rest.media.azure.net", - "graphAudience": "https://graph.windows.net/", - "graph": "https://graph.windows.net/", - "name": "AzureCloud", - "suffixes": { - "azureDataLakeStoreFileSystem": "azuredatalakestore.net", - "acrLoginServer": "azurecr.io", - "sqlServerHostname": ".database.windows.net", - "azureDataLakeAnalyticsCatalogAndJob": "azuredatalakeanalytics.net", - "keyVaultDns": "vault.azure.net", - "storage": "core.windows.net", - "azureFrontDoorEndpointSuffix": "azurefd.net" - }, - "batch": "https://batch.core.windows.net/", - "resourceManager": "https://management.azure.com/", - "vmImageAliasDoc": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/arm-compute/quickstart-templates/aliases.json", - "activeDirectoryDataLake": "https://datalake.azure.net/", - "sqlManagement": "https://management.core.windows.net:8443/", - "gallery": "https://gallery.azure.com/" - }, -…… -] -#> - -Add-AzEnvironment -AutoDiscover -Uri https://configuredmetadata.net - -Name Resource Manager Url ActiveDirectory Authority ----- -------------------- ------------------------- -TestEnvironment TestRMEndpoint TestADEndpoint/ - - In this example, we are discovering a new Azure environment from the `https://configuredmetadata.net` Uri. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/add-azenvironment - - - Get-AzEnvironment - - - - Remove-AzEnvironment - - - - Set-AzEnvironment - - - - - - - Clear-AzConfig - Clear - AzConfig - - Clears the values of configs that are set by the user. - - - - Clears the values of configs that are set by the user. By default all the configs will be cleared. You can also specify keys of configs to clear. - - - - Clear-AzConfig - - AppliesTo - - Specifies what part of Azure PowerShell the config applies to. Possible values are: - "Az": the config applies to all modules and cmdlets of Azure PowerShell. - - Module name: the config applies to a certain module of Azure PowerShell. - For example, "Az.Storage". - Cmdlet name: the config applies to a certain cmdlet of Azure PowerShell. For example, "Get-AzKeyVault". If not specified, when getting or clearing configs, it defaults to all the above; when updating, it defaults to "Az". - - System.String - - System.String - - - None - - - CheckForUpgrade - - When enabled, Azure PowerShell will check for updates automatically and display a hint message when an update is available. The default value is true. - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultSubscriptionForLogin - - Subscription name or GUID. Sets the default context for Azure PowerShell when logging in without specifying a subscription. - - - System.Management.Automation.SwitchParameter - - - False - - - DisableInstanceDiscovery - - Set it to true to disable both instance discovery and authority validation. This functionality is intended for use in scenarios where the metadata endpoint cannot be reached, such as in private clouds or Azure Stack. The process of instance discovery entails retrieving authority metadata from https://login.microsoft.com/ to validate the authority. By setting this to true, the validation of the authority is disabled. As a result, it is crucial to ensure that the configured authority host is valid and trustworthy. - - - System.Management.Automation.SwitchParameter - - - False - - - DisplayBreakingChangeWarning - - Controls if warning messages for breaking changes are displayed or suppressed. When enabled, a breaking change warning is displayed when executing cmdlets with breaking changes in a future release. - - - System.Management.Automation.SwitchParameter - - - False - - - DisplayRegionIdentified - - When enabled, Azure PowerShell displays recommendations on regions which may reduce your costs. - - - System.Management.Automation.SwitchParameter - - - False - - - DisplaySecretsWarning - - When enabled, a warning message will be displayed when the cmdlet output contains secrets. Learn more at https://go.microsoft.com/fwlink/?linkid=2258844 - - - System.Management.Automation.SwitchParameter - - - False - - - DisplaySurveyMessage - - When enabled, you are prompted infrequently to participate in user experience surveys for Azure PowerShell. - - - System.Management.Automation.SwitchParameter - - - False - - - EnableDataCollection - - When enabled, Azure PowerShell cmdlets send telemetry data to Microsoft to improve the customer experience. For more information, see our privacy statement: https://aka.ms/privacy - - - System.Management.Automation.SwitchParameter - - - False - - - EnableErrorRecordsPersistence - - When enabled, error records will be written to ~/.Azure/ErrorRecords. - - - System.Management.Automation.SwitchParameter - - - False - - - EnableLoginByWam - - [Preview] When enabled, Web Account Manager (WAM) will be the default interactive login experience. It will fall back to using the browser if the platform does not support WAM. Note that this feature is under preview. Microsoft Account (MSA) is currently not supported. Feel free to reach out to Azure PowerShell team if you have any feedbacks: https://aka.ms/azpsissue - - - System.Management.Automation.SwitchParameter - - - False - - - LoginExperienceV2 - - Only active when authenticating interactively, allows the user to choose the subscription and tenant used in subsequent commands. Possible values ad 'On' (Default) and 'Off'. 'On' requires user's input. 'Off' will use the first tenant and subscription returned by Azure, can change without notice and lead to command execution in an unwanted context (not recommended). - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Returns true if cmdlet executes correctly. - - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Determines the scope of config changes, for example, whether changes apply only to the current process, or to all sessions started by this user. By default it is CurrentUser. - - - CurrentUser - Process - Default - Environment - - Microsoft.Azure.PowerShell.Common.Config.ConfigScope - - Microsoft.Azure.PowerShell.Common.Config.ConfigScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Clear-AzConfig - - AppliesTo - - Specifies what part of Azure PowerShell the config applies to. Possible values are: - "Az": the config applies to all modules and cmdlets of Azure PowerShell. - - Module name: the config applies to a certain module of Azure PowerShell. - For example, "Az.Storage". - Cmdlet name: the config applies to a certain cmdlet of Azure PowerShell. For example, "Get-AzKeyVault". If not specified, when getting or clearing configs, it defaults to all the above; when updating, it defaults to "Az". - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Do not ask for confirmation when clearing all configs. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Returns true if cmdlet executes correctly. - - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Determines the scope of config changes, for example, whether changes apply only to the current process, or to all sessions started by this user. By default it is CurrentUser. - - - CurrentUser - Process - Default - Environment - - Microsoft.Azure.PowerShell.Common.Config.ConfigScope - - Microsoft.Azure.PowerShell.Common.Config.ConfigScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AppliesTo - - Specifies what part of Azure PowerShell the config applies to. Possible values are: - "Az": the config applies to all modules and cmdlets of Azure PowerShell. - - Module name: the config applies to a certain module of Azure PowerShell. - For example, "Az.Storage". - Cmdlet name: the config applies to a certain cmdlet of Azure PowerShell. For example, "Get-AzKeyVault". If not specified, when getting or clearing configs, it defaults to all the above; when updating, it defaults to "Az". - - System.String - - System.String - - - None - - - CheckForUpgrade - - When enabled, Azure PowerShell will check for updates automatically and display a hint message when an update is available. The default value is true. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultSubscriptionForLogin - - Subscription name or GUID. Sets the default context for Azure PowerShell when logging in without specifying a subscription. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DisableInstanceDiscovery - - Set it to true to disable both instance discovery and authority validation. This functionality is intended for use in scenarios where the metadata endpoint cannot be reached, such as in private clouds or Azure Stack. The process of instance discovery entails retrieving authority metadata from https://login.microsoft.com/ to validate the authority. By setting this to true, the validation of the authority is disabled. As a result, it is crucial to ensure that the configured authority host is valid and trustworthy. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DisplayBreakingChangeWarning - - Controls if warning messages for breaking changes are displayed or suppressed. When enabled, a breaking change warning is displayed when executing cmdlets with breaking changes in a future release. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DisplayRegionIdentified - - When enabled, Azure PowerShell displays recommendations on regions which may reduce your costs. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DisplaySecretsWarning - - When enabled, a warning message will be displayed when the cmdlet output contains secrets. Learn more at https://go.microsoft.com/fwlink/?linkid=2258844 - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DisplaySurveyMessage - - When enabled, you are prompted infrequently to participate in user experience surveys for Azure PowerShell. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnableDataCollection - - When enabled, Azure PowerShell cmdlets send telemetry data to Microsoft to improve the customer experience. For more information, see our privacy statement: https://aka.ms/privacy - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnableErrorRecordsPersistence - - When enabled, error records will be written to ~/.Azure/ErrorRecords. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnableLoginByWam - - [Preview] When enabled, Web Account Manager (WAM) will be the default interactive login experience. It will fall back to using the browser if the platform does not support WAM. Note that this feature is under preview. Microsoft Account (MSA) is currently not supported. Feel free to reach out to Azure PowerShell team if you have any feedbacks: https://aka.ms/azpsissue - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Force - - Do not ask for confirmation when clearing all configs. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - LoginExperienceV2 - - Only active when authenticating interactively, allows the user to choose the subscription and tenant used in subsequent commands. Possible values ad 'On' (Default) and 'Off'. 'On' requires user's input. 'Off' will use the first tenant and subscription returned by Azure, can change without notice and lead to command execution in an unwanted context (not recommended). - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Returns true if cmdlet executes correctly. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Determines the scope of config changes, for example, whether changes apply only to the current process, or to all sessions started by this user. By default it is CurrentUser. - - Microsoft.Azure.PowerShell.Common.Config.ConfigScope - - Microsoft.Azure.PowerShell.Common.Config.ConfigScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Clear-AzConfig -Force - - Clear all the configs. `-Force` suppresses the prompt for confirmation. - - - - - - -------------------------- Example 2 -------------------------- - Clear-AzConfig -EnableDataCollection - - Clear the "EnableDataCollection" config. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/clear-azconfig - - - - - - Clear-AzContext - Clear - AzContext - - Remove all Azure credentials, account, and subscription information. - - - - Remove all Azure Credentials, account, and subscription information. - - - - Clear-AzContext - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Delete all users and groups from the global scope without prompting - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Return a value indicating success or failure - - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Clear the context only for the current PowerShell session, or for all sessions. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Delete all users and groups from the global scope without prompting - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Return a value indicating success or failure - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Clear the context only for the current PowerShell session, or for all sessions. - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - --------------- Example 1: Clear global context --------------- - Clear-AzContext -Scope CurrentUser - - Remove all account, subscription, and credential information for any powershell session. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/clear-azcontext - - - - - - Clear-AzDefault - Clear - AzDefault - - Clears the defaults set by the user in the current context. - - - - The Clear-AzDefault cmdlet removes the defaults set by the user depending on the switch parameters specified by the user. - - - - Clear-AzDefault - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Remove all defaults if no default is specified - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - {{Fill PassThru Description}} - - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroup - - Clear Default Resource Group - - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Remove all defaults if no default is specified - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - {{Fill PassThru Description}} - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroup - - Clear Default Resource Group - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.Management.Automation.SwitchParameter - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Clear-AzDefault - - This command removes all the defaults set by the user in the current context. - - - - - - -------------------------- Example 2 -------------------------- - Clear-AzDefault -ResourceGroup - - This command removes the default resource group set by the user in the current context. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/clear-azdefault - - - - - - Connect-AzAccount - Connect - AzAccount - - Connect to Azure with an authenticated account for use with cmdlets from the Az PowerShell modules. - - - - The `Connect-AzAccount` cmdlet connects to Azure with an authenticated account for use with cmdlets from the Az PowerShell modules. You can use this authenticated account only with Azure Resource Manager requests. To add an authenticated account for use with Service Management, use the `Add-AzureAccount` cmdlet from the Azure PowerShell module. If no context is found for the current user, the user's context list is populated with a context for each of their first 25 subscriptions. The list of contexts created for the user can be found by running `Get-AzContext -ListAvailable`. To skip this context population, specify the SkipContextPopulation switch parameter. After executing this cmdlet, you can disconnect from an Azure account using `Disconnect-AzAccount`. - - - - Connect-AzAccount - - AccessToken - - Specifies an access token. - > [!CAUTION] > Access tokens are a type of credential. You should take the appropriate security precautions to > keep them confidential. Access tokens also timeout and may prevent long running tasks from > completing. - - System.String - - System.String - - - None - - - AccountId - - Id for Account, associated with your access token. In User authentication flows, the AccountId is user name / user id; In AccessToken flow, it is the AccountId for the access token; In ManagedService flow, it is the associated client Id of UserAssigned identity. To use the SystemAssigned identity, leave this field blank. - - System.String - - System.String - - - None - - - ContextName - - Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Environment - - Environment containing the Azure account. - - System.String - - System.String - - - None - - - Force - - Overwrite the existing context with the same name without prompting. - - - System.Management.Automation.SwitchParameter - - - False - - - GraphAccessToken - - AccessToken for Graph Service. - - System.String - - System.String - - - None - - - KeyVaultAccessToken - - AccessToken for KeyVault Service. - - System.String - - System.String - - - None - - - MaxContextPopulation - - Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. - - System.Int32 - - System.Int32 - - - None - - - MicrosoftGraphAccessToken - - Access token to Microsoft Graph - - System.String - - System.String - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - SkipContextPopulation - - Skips context population if no contexts are found. - - - System.Management.Automation.SwitchParameter - - - False - - - SkipValidation - - Skip validation for access token. - - - System.Management.Automation.SwitchParameter - - - False - - - Subscription - - Subscription Name or ID. - - System.String - - System.String - - - None - - - Tenant - - Optional tenant name or ID. - > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Connect-AzAccount - - AccountId - - Id for Account, associated with your access token. In User authentication flows, the AccountId is user name / user id; In AccessToken flow, it is the AccountId for the access token; In ManagedService flow, it is the associated client Id of UserAssigned identity. To use the SystemAssigned identity, leave this field blank. - - System.String - - System.String - - - None - - - AuthScope - - Optional OAuth scope for login, supported pre-defined values: AadGraph, AnalysisServices, Attestation, Batch, DataLake, KeyVault, OperationalInsights, Storage, Synapse. It also supports resource id like `https://storage.azure.com/`. - - System.String - - System.String - - - None - - - ContextName - - Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Environment - - Environment containing the Azure account. - - System.String - - System.String - - - None - - - Force - - Overwrite the existing context with the same name without prompting. - - - System.Management.Automation.SwitchParameter - - - False - - - MaxContextPopulation - - Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. - - System.Int32 - - System.Int32 - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - SkipContextPopulation - - Skips context population if no contexts are found. - - - System.Management.Automation.SwitchParameter - - - False - - - Subscription - - Subscription Name or ID. - - System.String - - System.String - - - None - - - Tenant - - Optional tenant name or ID. - > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. - - System.String - - System.String - - - None - - - UseDeviceAuthentication - - Use device code authentication instead of a browser control. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Connect-AzAccount - - AccountId - - Id for Account, associated with your access token. In User authentication flows, the AccountId is user name / user id; In AccessToken flow, it is the AccountId for the access token; In ManagedService flow, it is the associated client Id of UserAssigned identity. To use the SystemAssigned identity, leave this field blank. - - System.String - - System.String - - - None - - - AuthScope - - Optional OAuth scope for login, supported pre-defined values: AadGraph, AnalysisServices, Attestation, Batch, DataLake, KeyVault, OperationalInsights, Storage, Synapse. It also supports resource id like `https://storage.azure.com/`. - - System.String - - System.String - - - None - - - ContextName - - Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Environment - - Environment containing the Azure account. - - System.String - - System.String - - - None - - - Force - - Overwrite the existing context with the same name without prompting. - - - System.Management.Automation.SwitchParameter - - - False - - - Identity - - Login using a Managed Service Identity. - - - System.Management.Automation.SwitchParameter - - - False - - - MaxContextPopulation - - Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. - - System.Int32 - - System.Int32 - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - SkipContextPopulation - - Skips context population if no contexts are found. - - - System.Management.Automation.SwitchParameter - - - False - - - Subscription - - Subscription Name or ID. - - System.String - - System.String - - - None - - - Tenant - - Optional tenant name or ID. - > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Connect-AzAccount - - ApplicationId - - Application ID of the service principal. - - System.String - - System.String - - - None - - - AuthScope - - Optional OAuth scope for login, supported pre-defined values: AadGraph, AnalysisServices, Attestation, Batch, DataLake, KeyVault, OperationalInsights, Storage, Synapse. It also supports resource id like `https://storage.azure.com/`. - - System.String - - System.String - - - None - - - CertificateThumbprint - - Certificate Hash or Thumbprint. - - System.String - - System.String - - - None - - - ContextName - - Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Environment - - Environment containing the Azure account. - - System.String - - System.String - - - None - - - Force - - Overwrite the existing context with the same name without prompting. - - - System.Management.Automation.SwitchParameter - - - False - - - MaxContextPopulation - - Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. - - System.Int32 - - System.Int32 - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - SendCertificateChain - - Specifies if the x5c claim (public key of the certificate) should be sent to the STS to achieve easy certificate rollover in Azure AD. - - - System.Management.Automation.SwitchParameter - - - False - - - ServicePrincipal - - Indicates that this account authenticates by providing service principal credentials. - - - System.Management.Automation.SwitchParameter - - - False - - - SkipContextPopulation - - Skips context population if no contexts are found. - - - System.Management.Automation.SwitchParameter - - - False - - - Subscription - - Subscription Name or ID. - - System.String - - System.String - - - None - - - Tenant - - Optional tenant name or ID. - > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Connect-AzAccount - - ApplicationId - - Application ID of the service principal. - - System.String - - System.String - - - None - - - ContextName - - Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Environment - - Environment containing the Azure account. - - System.String - - System.String - - - None - - - FederatedToken - - Specifies a token provided by another identity provider. The issuer and subject in this token must be first configured to be trusted by the ApplicationId. - > [!CAUTION] > Federated tokens are a type of credential. You should take the appropriate security precautions to keep them confidential. Federated tokens also timeout and may prevent long running tasks from completing. - - System.String - - System.String - - - None - - - Force - - Overwrite the existing context with the same name without prompting. - - - System.Management.Automation.SwitchParameter - - - False - - - MaxContextPopulation - - Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. - - System.Int32 - - System.Int32 - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - ServicePrincipal - - Indicates that this account authenticates by providing service principal credentials. - - - System.Management.Automation.SwitchParameter - - - False - - - SkipContextPopulation - - Skips context population if no contexts are found. - - - System.Management.Automation.SwitchParameter - - - False - - - Subscription - - Subscription Name or ID. - - System.String - - System.String - - - None - - - Tenant - - Optional tenant name or ID. - > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Connect-AzAccount - - ApplicationId - - Application ID of the service principal. - - System.String - - System.String - - - None - - - CertificatePassword - - The password required to access the pkcs#12 certificate file. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - CertificatePath - - The path of certficate file in pkcs#12 format. - - System.String - - System.String - - - None - - - ContextName - - Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Environment - - Environment containing the Azure account. - - System.String - - System.String - - - None - - - Force - - Overwrite the existing context with the same name without prompting. - - - System.Management.Automation.SwitchParameter - - - False - - - MaxContextPopulation - - Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. - - System.Int32 - - System.Int32 - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - SendCertificateChain - - Specifies if the x5c claim (public key of the certificate) should be sent to the STS to achieve easy certificate rollover in Azure AD. - - - System.Management.Automation.SwitchParameter - - - False - - - ServicePrincipal - - Indicates that this account authenticates by providing service principal credentials. - - - System.Management.Automation.SwitchParameter - - - False - - - SkipContextPopulation - - Skips context population if no contexts are found. - - - System.Management.Automation.SwitchParameter - - - False - - - Subscription - - Subscription Name or ID. - - System.String - - System.String - - - None - - - Tenant - - Optional tenant name or ID. - > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Connect-AzAccount - - AuthScope - - Optional OAuth scope for login, supported pre-defined values: AadGraph, AnalysisServices, Attestation, Batch, DataLake, KeyVault, OperationalInsights, Storage, Synapse. It also supports resource id like `https://storage.azure.com/`. - - System.String - - System.String - - - None - - - ContextName - - Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). - - System.String - - System.String - - - None - - - Credential - - Specifies a PSCredential object. For more information about the PSCredential object, type `Get-Help Get-Credential`. The PSCredential object provides the user ID and password for organizational ID credentials, or the application ID and secret for service principal credentials. - - System.Management.Automation.PSCredential - - System.Management.Automation.PSCredential - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Environment - - Environment containing the Azure account. - - System.String - - System.String - - - None - - - Force - - Overwrite the existing context with the same name without prompting. - - - System.Management.Automation.SwitchParameter - - - False - - - MaxContextPopulation - - Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. - - System.Int32 - - System.Int32 - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - ServicePrincipal - - Indicates that this account authenticates by providing service principal credentials. - - - System.Management.Automation.SwitchParameter - - - False - - - SkipContextPopulation - - Skips context population if no contexts are found. - - - System.Management.Automation.SwitchParameter - - - False - - - Subscription - - Subscription Name or ID. - - System.String - - System.String - - - None - - - Tenant - - Optional tenant name or ID. - > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Connect-AzAccount - - AuthScope - - Optional OAuth scope for login, supported pre-defined values: AadGraph, AnalysisServices, Attestation, Batch, DataLake, KeyVault, OperationalInsights, Storage, Synapse. It also supports resource id like `https://storage.azure.com/`. - - System.String - - System.String - - - None - - - ContextName - - Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). - - System.String - - System.String - - - None - - - Credential - - Specifies a PSCredential object. For more information about the PSCredential object, type `Get-Help Get-Credential`. The PSCredential object provides the user ID and password for organizational ID credentials, or the application ID and secret for service principal credentials. - - System.Management.Automation.PSCredential - - System.Management.Automation.PSCredential - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Environment - - Environment containing the Azure account. - - System.String - - System.String - - - None - - - Force - - Overwrite the existing context with the same name without prompting. - - - System.Management.Automation.SwitchParameter - - - False - - - MaxContextPopulation - - Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. - - System.Int32 - - System.Int32 - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - SkipContextPopulation - - Skips context population if no contexts are found. - - - System.Management.Automation.SwitchParameter - - - False - - - Subscription - - Subscription Name or ID. - - System.String - - System.String - - - None - - - Tenant - - Optional tenant name or ID. - > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AccessToken - - Specifies an access token. - > [!CAUTION] > Access tokens are a type of credential. You should take the appropriate security precautions to > keep them confidential. Access tokens also timeout and may prevent long running tasks from > completing. - - System.String - - System.String - - - None - - - AccountId - - Id for Account, associated with your access token. In User authentication flows, the AccountId is user name / user id; In AccessToken flow, it is the AccountId for the access token; In ManagedService flow, it is the associated client Id of UserAssigned identity. To use the SystemAssigned identity, leave this field blank. - - System.String - - System.String - - - None - - - ApplicationId - - Application ID of the service principal. - - System.String - - System.String - - - None - - - AuthScope - - Optional OAuth scope for login, supported pre-defined values: AadGraph, AnalysisServices, Attestation, Batch, DataLake, KeyVault, OperationalInsights, Storage, Synapse. It also supports resource id like `https://storage.azure.com/`. - - System.String - - System.String - - - None - - - CertificatePassword - - The password required to access the pkcs#12 certificate file. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - CertificatePath - - The path of certficate file in pkcs#12 format. - - System.String - - System.String - - - None - - - CertificateThumbprint - - Certificate Hash or Thumbprint. - - System.String - - System.String - - - None - - - ContextName - - Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). - - System.String - - System.String - - - None - - - Credential - - Specifies a PSCredential object. For more information about the PSCredential object, type `Get-Help Get-Credential`. The PSCredential object provides the user ID and password for organizational ID credentials, or the application ID and secret for service principal credentials. - - System.Management.Automation.PSCredential - - System.Management.Automation.PSCredential - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Environment - - Environment containing the Azure account. - - System.String - - System.String - - - None - - - FederatedToken - - Specifies a token provided by another identity provider. The issuer and subject in this token must be first configured to be trusted by the ApplicationId. - > [!CAUTION] > Federated tokens are a type of credential. You should take the appropriate security precautions to keep them confidential. Federated tokens also timeout and may prevent long running tasks from completing. - - System.String - - System.String - - - None - - - Force - - Overwrite the existing context with the same name without prompting. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - GraphAccessToken - - AccessToken for Graph Service. - - System.String - - System.String - - - None - - - Identity - - Login using a Managed Service Identity. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - KeyVaultAccessToken - - AccessToken for KeyVault Service. - - System.String - - System.String - - - None - - - MaxContextPopulation - - Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. - - System.Int32 - - System.Int32 - - - None - - - MicrosoftGraphAccessToken - - Access token to Microsoft Graph - - System.String - - System.String - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - SendCertificateChain - - Specifies if the x5c claim (public key of the certificate) should be sent to the STS to achieve easy certificate rollover in Azure AD. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ServicePrincipal - - Indicates that this account authenticates by providing service principal credentials. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - SkipContextPopulation - - Skips context population if no contexts are found. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - SkipValidation - - Skip validation for access token. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Subscription - - Subscription Name or ID. - - System.String - - System.String - - - None - - - Tenant - - Optional tenant name or ID. - > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. - - System.String - - System.String - - - None - - - UseDeviceAuthentication - - Use device code authentication instead of a browser control. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile - - - - - - - - - - - - - - ------------ Example 1: Connect to an Azure account ------------ - Connect-AzAccount - -Please select the account you want to login with. - -Retrieving subscriptions for the selection... -[Tenant and subscription selection] - -No Subscription name Subscription ID Tenant domain name ----- ------------------------------------ ---------------------------------------- -------------------------- -[1] Subscription1 xxxx-xxxx-xxxx-xxxx xxxxxxxxx.xxxxxxxxxxx.com -[2] Subscription2 xxxx-xxxx-xxxx-xxxx xxxxxxxxx.xxxxxxxxxxx.com -... -[9] Subscription9 xxxx-xxxx-xxxx-xxxx xxxxxxxxx.xxxxxxxxxxx.com - -Select a tenant and subscription: 1 <requires user's input here> - -Subscription name Tenant domain name ------------------------------------- -------------------------- -Subscription1 xxxxxxxxx.xxxxxxxxxxx.com - -[Announcements] -Share your feedback regarding your experience with `Connect-AzAccount` at: https://aka.ms/azloginfeedback - -If you encounter any problem, please open an issue at: https://aka.ms/azpsissue - -SubscriptionName Tenant ------------------ ------ -Subscription1 xxxxxxxxx.xxxxxxxxxxx.com - - - - - - - - Example 2: Connect to Azure using organizational ID credentials - $Credential = Get-Credential -Connect-AzAccount -Credential $Credential - -Account SubscriptionName TenantId Environment -------- ---------------- -------- ----------- -azureuser@contoso.com Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud - - - - - - - - Example 3: Connect to Azure using a service principal account - $SecurePassword = Read-Host -Prompt 'Enter a Password' -AsSecureString -$TenantId = 'yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyy' -$ApplicationId = 'zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzz' -$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $ApplicationId, $SecurePassword -Connect-AzAccount -ServicePrincipal -TenantId $TenantId -Credential $Credential - -Account SubscriptionName TenantId Environment -------- ---------------- -------- ----------- -xxxx-xxxx-xxxx-xxxx Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud - - - - - - - - Example 4: Use an interactive login to connect to a specific tenant and subscription - Connect-AzAccount -Tenant 'xxxx-xxxx-xxxx-xxxx' -SubscriptionId 'yyyy-yyyy-yyyy-yyyy' - -Account SubscriptionName TenantId Environment -------- ---------------- -------- ----------- -azureuser@contoso.com Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud - - - - - - - - ----- Example 5: Connect using a Managed Service Identity ----- - Connect-AzAccount -Identity -Set-AzContext -Subscription Subscription1 - -Account SubscriptionName TenantId Environment -------- ---------------- -------- ----------- -MSI@50342 Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud - - - - - - - - Example 6: Connect using Managed Service Identity login and ClientId - $identity = Get-AzUserAssignedIdentity -ResourceGroupName 'myResourceGroup' -Name 'myUserAssignedIdentity' -Get-AzVM -ResourceGroupName contoso -Name testvm | Update-AzVM -IdentityType UserAssigned -IdentityId $identity.Id -Connect-AzAccount -Identity -AccountId $identity.ClientId # Run on the virtual machine - -Account SubscriptionName TenantId Environment -------- ---------------- -------- ----------- -yyyy-yyyy-yyyy-yyyy Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud - - - - - - - - ------------ Example 7: Connect using certificates ------------ - $Thumbprint = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' -$TenantId = 'yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyy' -$ApplicationId = '00000000-0000-0000-0000-00000000' -Connect-AzAccount -CertificateThumbprint $Thumbprint -ApplicationId $ApplicationId -Tenant $TenantId -ServicePrincipal - -Account SubscriptionName TenantId Environment -------- ---------------- -------- ----------- -xxxxxxxx-xxxx-xxxx-xxxxxxxxx Subscription1 yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyy AzureCloud - -Account : xxxxxxxx-xxxx-xxxx-xxxxxxxx -SubscriptionName : MyTestSubscription -SubscriptionId : zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzz -TenantId : yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyy -Environment : AzureCloud - - - - - - - - -------------- Example 8: Connect with AuthScope -------------- - Connect-AzAccount -AuthScope Storage - -Account SubscriptionName TenantId Environment -------- ---------------- -------- ----------- -yyyy-yyyy-yyyy-yyyy Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud - - - - - - - - ---------- Example 9: Connect using certificate file ---------- - $SecurePassword = ConvertTo-SecureString -String "****" -AsPlainText -Force -$TenantId = 'yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyy' -$ApplicationId = 'zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzz' -Connect-AzAccount -ServicePrincipal -ApplicationId $ApplicationId -TenantId $TenantId -CertificatePath './certificatefortest.pfx' -CertificatePassword $securePassword - -Account SubscriptionName TenantId Environment -------- ---------------- -------- ----------- -xxxxxxxx-xxxx-xxxx-xxxxxxxx Subscription1 yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyy AzureCloud - - - - - - - - --------- Example 10: Connect interactively using WAM --------- - Update-AzConfig -EnableLoginByWam $true -Connect-AzAccount - -Account SubscriptionName TenantId Environment -------- ---------------- -------- ----------- -xxxxxxxx-xxxx-xxxx-xxxxxxxx Subscription1 yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyy AzureCloud - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/connect-azaccount - - - - - - Disable-AzContextAutosave - Disable - AzContextAutosave - - Turn off autosaving Azure credentials. Your login information will be forgotten the next time you open a PowerShell window - - - - Turn off autosaving Azure credentials. Your login information will be forgotten the next time you open a PowerShell window - - - - Disable-AzContextAutosave - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.ContextAutosaveSettings - - - - - - - - - - - - - - ---------- Example 1: Disable autosaving the context ---------- - Disable-AzContextAutosave - - Disable autosave for the current user. - - - - - - -------------------------- Example 2 -------------------------- - Disable-AzContextAutosave -Scope Process - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/disable-azcontextautosave - - - - - - Disable-AzDataCollection - Disable - AzDataCollection - - Opts out of collecting data to improve the Azure PowerShell cmdlets. Data is collected by default unless you explicitly opt out. - - - - The `Disable-AzDataCollection` cmdlet is used to opt out of data collection. Azure PowerShell automatically collects telemetry data by default. To disable data collection, you must explicitly opt-out. Microsoft aggregates collected data to identify patterns of usage, to identify common issues, and to improve the experience of Azure PowerShell. Microsoft Azure PowerShell doesn't collect any private or personal data. If you've previously opted out, run the `Enable-AzDataCollection` cmdlet to re-enable data collection for the current user on the current machine. - - - - Disable-AzDataCollection - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Void - - - - - - - - - - - - - - -- Example 1: Disabling data collection for the current user -- - Disable-AzDataCollection - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/disable-azdatacollection - - - Enable-AzDataCollection - - - - - - - Disable-AzureRmAlias - Disable - AzureRmAlias - - Disables AzureRm prefix aliases for Az modules. - - - - Disables AzureRm prefix aliases for Az modules. If -Module is specified, only modules listed will have aliases disabled. Otherwise all AzureRm aliases are disabled. - - - - Disable-AzureRmAlias - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Module - - Indicates which modules to disable aliases for. If none are specified, default is all enabled modules. - - System.String[] - - System.String[] - - - None - - - PassThru - - If specified, cmdlet will return all disabled aliases - - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Indicates what scope aliases should be disabled for. Default is 'Process' - - - Process - CurrentUser - LocalMachine - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Module - - Indicates which modules to disable aliases for. If none are specified, default is all enabled modules. - - System.String[] - - System.String[] - - - None - - - PassThru - - If specified, cmdlet will return all disabled aliases - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Indicates what scope aliases should be disabled for. Default is 'Process' - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.String - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Disable-AzureRmAlias - - Disables all AzureRm prefixes for the current PowerShell session. - - - - - - -------------------------- Example 2 -------------------------- - Disable-AzureRmAlias -Module Az.Accounts -Scope CurrentUser - - Disables AzureRm aliases for the Az.Accounts module for both the current process and for the current user. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/disable-azurermalias - - - - - - Disconnect-AzAccount - Disconnect - AzAccount - - Disconnects a connected Azure account and removes all credentials and contexts associated with that account. - - - - The Disconnect-AzAccount cmdlet disconnects a connected Azure account and removes all credentials and contexts (subscription and tenant information) associated with that account. After executing this cmdlet, you will need to login again using Connect-AzAccount. - - - - Disconnect-AzAccount - - ApplicationId - - ServicePrincipal id (globally unique id) - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - TenantId - - Tenant id (globally unique id) - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not executed. - - - System.Management.Automation.SwitchParameter - - - False - - - - Disconnect-AzAccount - - AzureContext - - Context - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - None - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not executed. - - - System.Management.Automation.SwitchParameter - - - False - - - - Disconnect-AzAccount - - ContextName - - Name of the context to log out of - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not executed. - - - System.Management.Automation.SwitchParameter - - - False - - - - Disconnect-AzAccount - - InputObject - - The account object to remove - - Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount - - Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount - - - None - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not executed. - - - System.Management.Automation.SwitchParameter - - - False - - - - Disconnect-AzAccount - - Username - - User name of the form 'user@contoso.org' - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not executed. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ApplicationId - - ServicePrincipal id (globally unique id) - - System.String - - System.String - - - None - - - AzureContext - - Context - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - None - - - ContextName - - Name of the context to log out of - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - The account object to remove - - Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount - - Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - TenantId - - Tenant id (globally unique id) - - System.String - - System.String - - - None - - - Username - - User name of the form 'user@contoso.org' - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not executed. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount - - - - - - - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount - - - - - - - - - - - - - - ----------- Example 1: Logout of the current account ----------- - Disconnect-AzAccount - - Logs out of the Azure account associated with the current context. - - - - - - Example 2: Logout of the account associated with a particular context - Get-AzContext "Work" | Disconnect-AzAccount -Scope CurrentUser - - Logs out the account associated with the given context (named 'Work'). Because this uses the 'CurrentUser' scope, all credentials and contexts will be permanently deleted. - - - - - - ------------- Example 3: Log out a particular user ------------- - Disconnect-AzAccount -Username 'user1@contoso.org' - - Logs out the 'user1@contoso.org' user - all credentials and all contexts associated with this user will be removed. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/disconnect-azaccount - - - - - - Enable-AzContextAutosave - Enable - AzContextAutosave - - Azure contexts are PowerShell objects representing your active subscription to run commands against, and the authentication information needed to connect to an Azure cloud. With Azure contexts, Azure PowerShell doesn't need to reauthenticate your account each time you switch subscriptions. For more information, see Azure PowerShell context objects (https://learn.microsoft.com/powershell/azure/context-persistence). - This cmdlet allows the Azure context information to be saved and automatically loaded when you start a PowerShell process. For example, when opening a new window. - - - - Allows the Azure context information to be saved and automatically loaded when a PowerShell process starts. The context is saved at the end of the execution of any cmdlet that affects the context. For example, any profile cmdlet. If you're using user authentication, then tokens can be updated during the course of running any cmdlet. - - - - Enable-AzContextAutosave - - DefaultProfile - - The credentials, tenant, and subscription used for communication with Azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes. For example, whether changes apply only to the current process, or to all sessions started by this user. Changes made with the scope `CurrentUser` will affect all PowerShell sessions started by the user. If a particular session needs to have different settings, use the scope `Process`. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - CurrentUser - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet isn't run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, tenant, and subscription used for communication with Azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes. For example, whether changes apply only to the current process, or to all sessions started by this user. Changes made with the scope `CurrentUser` will affect all PowerShell sessions started by the user. If a particular session needs to have different settings, use the scope `Process`. - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - CurrentUser - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet isn't run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.ContextAutosaveSettings - - - - - - - - - - - - - - Example 1: Enable autosaving credentials for the current user - Enable-AzContextAutosave - - - - - - - - -------------------------- Example 2 -------------------------- - Enable-AzContextAutosave -Scope Process - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/enable-azcontextautosave - - - - - - Enable-AzDataCollection - Enable - AzDataCollection - - Enables Azure PowerShell to collect data to improve the user experience with the Azure PowerShell cmdlets. Executing this cmdlet opts in to data collection for the current user on the current machine. Data is collected by default unless you explicitly opt out. - - - - The `Enable-AzDataCollection` cmdlet is used to opt in to data collection. Azure PowerShell automatically collects telemetry data by default. Microsoft aggregates collected data to identify patterns of usage, to identify common issues, and to improve the experience of Azure PowerShell. Microsoft Azure PowerShell doesn't collect any private or personal data. To disable data collection, you must explicitly opt out by executing `Disable-AzDataCollection`. - - - - Enable-AzDataCollection - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Void - - - - - - - - - - - - - - --- Example 1: Enabling data collection for the current user --- - Enable-AzDataCollection - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/enable-azdatacollection - - - Disable-AzDataCollection - - - - - - - Enable-AzureRmAlias - Enable - AzureRmAlias - - Enables AzureRm prefix aliases for Az modules. - - - - Enables AzureRm prefix aliases for Az modules. If -Module is specified, only modules listed will have aliases enabled. Otherwise all AzureRm aliases are enabled. - - - - Enable-AzureRmAlias - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Module - - Indicates which modules to enable aliases for. If none are specified, default is all modules. - - System.String[] - - System.String[] - - - None - - - PassThru - - If specified, cmdlet will return all aliases enabled - - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Indicates what scope aliases should be enabled for. Default is 'Local' - - - Local - Process - CurrentUser - LocalMachine - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Module - - Indicates which modules to enable aliases for. If none are specified, default is all modules. - - System.String[] - - System.String[] - - - None - - - PassThru - - If specified, cmdlet will return all aliases enabled - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Indicates what scope aliases should be enabled for. Default is 'Local' - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.String - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Enable-AzureRmAlias - - Enables all AzureRm prefixes for the current PowerShell session. - - - - - - -------------------------- Example 2 -------------------------- - Enable-AzureRmAlias -Module Az.Accounts -Scope CurrentUser - - Enables AzureRm aliases for the Az.Accounts module for both the current process and for the current user. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/enable-azurermalias - - - - - - Export-AzConfig - Export - AzConfig - - Exports all the configs into a file so that it can be imported on another machine. - - - - The `Export-AzConfig` cmdlet exports all the configs that are set at the "CurrentUser" scope into a file at given path in JSON format. The file can then be imported by `Import-AzConfig` for example on another machine. - - - - Export-AzConfig - - Path - - Specifies the path of the file to which to save the configs. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Overwrites the given file if it exists. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Returns a boolean value indicating success or failure. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Overwrites the given file if it exists. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Returns a boolean value indicating success or failure. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Path - - Specifies the path of the file to which to save the configs. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Export-AzConfig -Path ./config.json - - This example exports the configs to `./config.json` file which can later be imported via `Import-AzConfig`. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/export-azconfig - - - Import-AzConfig - - - - - - - Get-AzAccessToken - Get - AzAccessToken - - Get secure raw access token. When using -ResourceUrl, please make sure the value does match current Azure environment. You may refer to the value of `(Get-AzContext).Environment`. > _NOTE:_ The current default output token type is going to be changed from plain text `String` to `SecureString` for security. Please use `-AsSecureString` to migrate to the secure behaviour before the breaking change takes effects. - - - - Get access token - - - - Get-AzAccessToken - - AsSecureString - - Specifiy to convert output token as a secure string. Please always use the parameter for security purpose and to avoid the upcoming breaking chang and refer to Frequently asked questions about Azure PowerShell (https://learn.microsoft.com/en-us/powershell/azure/faq)for how to convert from `SecureString` to plain text. - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ResourceTypeName - - Optional resource type name, supported values: AadGraph, AnalysisServices, AppConfiguration, Arm, Attestation, Batch, CommunicationEmail, DataLake, KeyVault, MSGraph, OperationalInsights, ResourceManager, Storage, Synapse. Default value is Arm if not specified. - - System.String - - System.String - - - None - - - TenantId - - Optional Tenant Id. Use tenant id of default context if not specified. - - System.String - - System.String - - - None - - - - Get-AzAccessToken - - AsSecureString - - Specifiy to convert output token as a secure string. Please always use the parameter for security purpose and to avoid the upcoming breaking chang and refer to Frequently asked questions about Azure PowerShell (https://learn.microsoft.com/en-us/powershell/azure/faq)for how to convert from `SecureString` to plain text. - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ResourceUrl - - Resource url for that you're requesting token, e.g. 'https://graph.microsoft.com/'. - - System.String - - System.String - - - None - - - TenantId - - Optional Tenant Id. Use tenant id of default context if not specified. - - System.String - - System.String - - - None - - - - - - AsSecureString - - Specifiy to convert output token as a secure string. Please always use the parameter for security purpose and to avoid the upcoming breaking chang and refer to Frequently asked questions about Azure PowerShell (https://learn.microsoft.com/en-us/powershell/azure/faq)for how to convert from `SecureString` to plain text. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ResourceTypeName - - Optional resource type name, supported values: AadGraph, AnalysisServices, AppConfiguration, Arm, Attestation, Batch, CommunicationEmail, DataLake, KeyVault, MSGraph, OperationalInsights, ResourceManager, Storage, Synapse. Default value is Arm if not specified. - - System.String - - System.String - - - None - - - ResourceUrl - - Resource url for that you're requesting token, e.g. 'https://graph.microsoft.com/'. - - System.String - - System.String - - - None - - - TenantId - - Optional Tenant Id. Use tenant id of default context if not specified. - - System.String - - System.String - - - None - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSAccessToken - - - The output type is going to be deprecate. - - - - - Microsoft.Azure.Commands.Profile.Models.PSSecureAccessToken - - - Use `-AsSecureString` to get the token as `SecureString`. - - - - - - - - - - - ------- Example 1 Get the access token for ARM endpoint ------- - Get-AzAccessToken -AsSecureString - - Get access token of current account for ResourceManager endpoint - - - - - - - Example 2 Get the access token for Microsoft Graph endpoint - - Get-AzAccessToken -AsSecureString -ResourceTypeName MSGraph - - Get access token of Microsoft Graph endpoint for current account - - - - - - - Example 3 Get the access token for Microsoft Graph endpoint - - Get-AzAccessToken -AsSecureString -ResourceUrl "https://graph.microsoft.com/" - - Get access token of Microsoft Graph endpoint for current account - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/get-azaccesstoken - - - - - - Get-AzConfig - Get - AzConfig - - Gets the configs of Azure PowerShell. - - - - Gets the configs of Azure PowerShell. By default it lists all the configs. You can filter the result using various parameters. - > [!NOTE] > Configs have priorities. Generally speaking, Process scope has higher priority than CurrentUser scope; a config that applies to a certain cmdlet has higher priority than that applies to a module, again higher than Az. > To reduce confusion, the result of `Get-AzConfig` shows those configs that are taking effect. It is a combination of all the configs, but not literally all the configs. However, you could always view them by applying different filter parameters, such as `-Scope`. - - - - Get-AzConfig - - AppliesTo - - Specifies what part of Azure PowerShell the config applies to. Possible values are: - "Az": the config applies to all modules and cmdlets of Azure PowerShell. - - Module name: the config applies to a certain module of Azure PowerShell. - For example, "Az.Storage". - Cmdlet name: the config applies to a certain cmdlet of Azure PowerShell. For example, "Get-AzKeyVault". If not specified, when getting or clearing configs, it defaults to all the above; when updating, it defaults to "Az". - - System.String - - System.String - - - None - - - CheckForUpgrade - - When enabled, Azure PowerShell will check for updates automatically and display a hint message when an update is available. The default value is true. - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultSubscriptionForLogin - - Subscription name or GUID. Sets the default context for Azure PowerShell when logging in without specifying a subscription. - - - System.Management.Automation.SwitchParameter - - - False - - - DisableInstanceDiscovery - - Set it to true to disable both instance discovery and authority validation. This functionality is intended for use in scenarios where the metadata endpoint cannot be reached, such as in private clouds or Azure Stack. The process of instance discovery entails retrieving authority metadata from https://login.microsoft.com/ to validate the authority. By setting this to true, the validation of the authority is disabled. As a result, it is crucial to ensure that the configured authority host is valid and trustworthy. - - - System.Management.Automation.SwitchParameter - - - False - - - DisplayBreakingChangeWarning - - Controls if warning messages for breaking changes are displayed or suppressed. When enabled, a breaking change warning is displayed when executing cmdlets with breaking changes in a future release. - - - System.Management.Automation.SwitchParameter - - - False - - - DisplayRegionIdentified - - When enabled, Azure PowerShell displays recommendations on regions which may reduce your costs. - - - System.Management.Automation.SwitchParameter - - - False - - - DisplaySecretsWarning - - When enabled, a warning message will be displayed when the cmdlet output contains secrets. Learn more at https://go.microsoft.com/fwlink/?linkid=2258844 - - - System.Management.Automation.SwitchParameter - - - False - - - DisplaySurveyMessage - - When enabled, you are prompted infrequently to participate in user experience surveys for Azure PowerShell. - - - System.Management.Automation.SwitchParameter - - - False - - - EnableDataCollection - - When enabled, Azure PowerShell cmdlets send telemetry data to Microsoft to improve the customer experience. For more information, see our privacy statement: https://aka.ms/privacy - - - System.Management.Automation.SwitchParameter - - - False - - - EnableErrorRecordsPersistence - - When enabled, error records will be written to ~/.Azure/ErrorRecords. - - - System.Management.Automation.SwitchParameter - - - False - - - EnableLoginByWam - - [Preview] When enabled, Web Account Manager (WAM) will be the default interactive login experience. It will fall back to using the browser if the platform does not support WAM. Note that this feature is under preview. Microsoft Account (MSA) is currently not supported. Feel free to reach out to Azure PowerShell team if you have any feedbacks: https://aka.ms/azpsissue - - - System.Management.Automation.SwitchParameter - - - False - - - LoginExperienceV2 - - Only active when authenticating interactively, allows the user to choose the subscription and tenant used in subsequent commands. Possible values ad 'On' (Default) and 'Off'. 'On' requires user's input. 'Off' will use the first tenant and subscription returned by Azure, can change without notice and lead to command execution in an unwanted context (not recommended). - - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Determines the scope of config changes, for example, whether changes apply only to the current process, or to all sessions started by this user. By default it is CurrentUser. - - - CurrentUser - Process - Default - Environment - - Microsoft.Azure.PowerShell.Common.Config.ConfigScope - - Microsoft.Azure.PowerShell.Common.Config.ConfigScope - - - None - - - - - - AppliesTo - - Specifies what part of Azure PowerShell the config applies to. Possible values are: - "Az": the config applies to all modules and cmdlets of Azure PowerShell. - - Module name: the config applies to a certain module of Azure PowerShell. - For example, "Az.Storage". - Cmdlet name: the config applies to a certain cmdlet of Azure PowerShell. For example, "Get-AzKeyVault". If not specified, when getting or clearing configs, it defaults to all the above; when updating, it defaults to "Az". - - System.String - - System.String - - - None - - - CheckForUpgrade - - When enabled, Azure PowerShell will check for updates automatically and display a hint message when an update is available. The default value is true. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultSubscriptionForLogin - - Subscription name or GUID. Sets the default context for Azure PowerShell when logging in without specifying a subscription. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DisableInstanceDiscovery - - Set it to true to disable both instance discovery and authority validation. This functionality is intended for use in scenarios where the metadata endpoint cannot be reached, such as in private clouds or Azure Stack. The process of instance discovery entails retrieving authority metadata from https://login.microsoft.com/ to validate the authority. By setting this to true, the validation of the authority is disabled. As a result, it is crucial to ensure that the configured authority host is valid and trustworthy. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DisplayBreakingChangeWarning - - Controls if warning messages for breaking changes are displayed or suppressed. When enabled, a breaking change warning is displayed when executing cmdlets with breaking changes in a future release. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DisplayRegionIdentified - - When enabled, Azure PowerShell displays recommendations on regions which may reduce your costs. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DisplaySecretsWarning - - When enabled, a warning message will be displayed when the cmdlet output contains secrets. Learn more at https://go.microsoft.com/fwlink/?linkid=2258844 - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DisplaySurveyMessage - - When enabled, you are prompted infrequently to participate in user experience surveys for Azure PowerShell. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnableDataCollection - - When enabled, Azure PowerShell cmdlets send telemetry data to Microsoft to improve the customer experience. For more information, see our privacy statement: https://aka.ms/privacy - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnableErrorRecordsPersistence - - When enabled, error records will be written to ~/.Azure/ErrorRecords. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnableLoginByWam - - [Preview] When enabled, Web Account Manager (WAM) will be the default interactive login experience. It will fall back to using the browser if the platform does not support WAM. Note that this feature is under preview. Microsoft Account (MSA) is currently not supported. Feel free to reach out to Azure PowerShell team if you have any feedbacks: https://aka.ms/azpsissue - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - LoginExperienceV2 - - Only active when authenticating interactively, allows the user to choose the subscription and tenant used in subsequent commands. Possible values ad 'On' (Default) and 'Off'. 'On' requires user's input. 'Off' will use the first tenant and subscription returned by Azure, can change without notice and lead to command execution in an unwanted context (not recommended). - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Determines the scope of config changes, for example, whether changes apply only to the current process, or to all sessions started by this user. By default it is CurrentUser. - - Microsoft.Azure.PowerShell.Common.Config.ConfigScope - - Microsoft.Azure.PowerShell.Common.Config.ConfigScope - - - None - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSConfig - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-AzConfig - -Key Value Applies To Scope Help Message ---- ----- ---------- ----- ------------ -EnableDataCollection False Az CurrentUser When enabled, Azure PowerShell cmdlets send telemetry data to Microsoft to improve the custom… -DefaultSubscriptionForLogin Az Default Subscription name or GUID. Sets the default context for Azure PowerShell when logging in with… -DisplayBreakingChangeWarning True Az Default Controls if warning messages for breaking changes are displayed or suppressed. When enabled, … - - Gets all the configs. - - - - - - -------------------------- Example 2 -------------------------- - Get-AzConfig -EnableDataCollection - -Key Value Applies To Scope Help Message ---- ----- ---------- ----- ------------ -EnableDataCollection False Az CurrentUser When enabled, Azure PowerShell cmdlets send telemetry data to Microsoft to improve the custom… - - Gets the "EnableDataCollection" config. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/get-azconfig - - - - - - Get-AzContext - Get - AzContext - - Gets the metadata used to authenticate Azure Resource Manager requests. - - - - The Get-AzContext cmdlet gets the current metadata used to authenticate Azure Resource Manager requests. This cmdlet gets the Active Directory account, Active Directory tenant, Azure subscription, and the targeted Azure environment. Azure Resource Manager cmdlets use these settings by default when making Azure Resource Manager requests. When the available amount of subscription exceeds the default limit of 25, some subscriptions may not show up in the results of `Get-AzContext -ListAvailable`. Please run `Connect-AzAccount -MaxContextPopulation <int>` to get more contexts. - - - - Get-AzContext - - DefaultProfile - - The credentials, account, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ListAvailable - - List all available contexts in the current session. - - - System.Management.Automation.SwitchParameter - - - False - - - RefreshContextFromTokenCache - - Refresh contexts from token cache - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzContext - - Name - - The name of the context - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - DefaultProfile - - The credentials, account, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ListAvailable - - List all available contexts in the current session. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - The name of the context - - System.String - - System.String - - - None - - - RefreshContextFromTokenCache - - Refresh contexts from token cache - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - - - - - - - - - - - - ------------ Example 1: Getting the current context ------------ - Connect-AzAccount -Get-AzContext - -Name Account SubscriptionName Environment TenantId ----- ------- ---------------- ----------- -------- -Subscription1 (xxxxxxxx-xxxx-xxxx-xxx... test@outlook.com Subscription1 AzureCloud xxxxxxxx-x... - - In this example we are logging into our account with an Azure subscription using Connect-AzAccount, and then we are getting the context of the current session by calling Get-AzContext. - - - - - - ---------- Example 2: Listing all available contexts ---------- - Get-AzContext -ListAvailable - -Name Account SubscriptionName Environment TenantId ----- ------- ---------------- ----------- -------- -Subscription1 (xxxxxxxx-xxxx-xxxx-xxx... test@outlook.com Subscription1 AzureCloud xxxxxxxx-x... -Subscription2 (xxxxxxxx-xxxx-xxxx-xxx... test@outlook.com Subscription2 AzureCloud xxxxxxxx-x... -Subscription3 (xxxxxxxx-xxxx-xxxx-xxx... test@outlook.com Subscription3 AzureCloud xxxxxxxx-x... - - In this example, all currently available contexts are displayed. The user may select one of these contexts using Select-AzContext. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/get-azcontext - - - Set-AzContext - - - - Connect-AzAccount - - - - - - - Get-AzContextAutosaveSetting - Get - AzContextAutosaveSetting - - Display metadata about the context autosave feature, including whether the context is automatically saved, and where saved context and credential information can be found. - - - - Display metadata about the context autosave feature, including whether the context is automatically saved, and where saved context and credential information can be found. - - - - Get-AzContextAutosaveSetting - - DefaultProfile - - The credentials, account, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - - - - DefaultProfile - - The credentials, account, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.ContextAutosaveSettings - - - - - - - - - - - - - - - Example 1: Get context save metadata for the current session - - Get-AzContextAutosaveSetting - -Mode : Process -ContextDirectory : None -ContextFile : None -CacheDirectory : None -CacheFile : None -Settings : {} - - Get details about whether and where the context is saved. In the above example, the autosave feature has been disabled. - - - - - - -- Example 2: Get context save metadata for the current user -- - Get-AzContextAutosaveSetting -Scope CurrentUser - -Mode : CurrentUser -ContextDirectory : C:\Users\contoso\AppData\Roaming\Windows Azure Powershell -ContextFile : AzureRmContext.json -CacheDirectory : C:\Users\contoso\AppData\Roaming\Windows Azure Powershell -CacheFile : TokenCache.dat -Settings : {} - - Get details about whether and where the context is saved by default for the current user. Note that this may be different than the settings that are active in the current session. In the above example, the autosave feature has been enabled, and data is saved to the default location. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/get-azcontextautosavesetting - - - - - - Get-AzDefault - Get - AzDefault - - Get the defaults set by the user in the current context. - - - - The Get-AzDefault cmdlet gets the Resource Group that the user has set as default in the current context. - - - - Get-AzDefault - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ResourceGroup - - Display Default Resource Group - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ResourceGroup - - Display Default Resource Group - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.Management.Automation.SwitchParameter - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSResourceGroup - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-AzDefault - -Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup -Name : myResourceGroup -Properties : Microsoft.Azure.Management.Internal.Resources.Models.ResourceGroupProperties -Location : eastus -ManagedBy : -Tags : - - This command returns the current defaults if there are defaults set, or returns nothing if no default is set. - - - - - - -------------------------- Example 2 -------------------------- - Get-AzDefault -ResourceGroup - -Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup -Name : myResourceGroup -Properties : Microsoft.Azure.Management.Internal.Resources.Models.ResourceGroupProperties -Location : eastus -ManagedBy : -Tags : - - This command returns the current default Resource Group if there is a default set, or returns nothing if no default is set. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/get-azdefault - - - - - - Get-AzEnvironment - Get - AzEnvironment - - Get endpoints and metadata for an instance of Azure services. `GalleryUrl` will be removed from ArmMetadata and so Azure PowerShell will no longer provide for its value in `PSAzureEnvironment`. Currently `GalleryUrl` is not used in Azure PowerShell products. Please do not reply on `GalleryUrl` anymore. - - - - The Get-AzEnvironment cmdlet gets endpoints and metadata for an instance of Azure services. - - - - Get-AzEnvironment - - Name - - Specifies the name of the Azure instance to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - DefaultProfile - - The credentials, account, tenant and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Specifies the name of the Azure instance to get. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSAzureEnvironment - - - - - - - - - - - - - - ---------- Example 1: Getting all Azure environments ---------- - Get-AzEnvironment - -Name Resource Manager Url ActiveDirectory Authority Type ----- -------------------- ------------------------- ---- -AzureUSGovernment https://management.usgovcloudapi.net/ https://login.microsoftonline.us/ Built-in -AzureCloud https://management.azure.com/ https://login.microsoftonline.com/ Built-in -AzureChinaCloud https://management.chinacloudapi.cn/ https://login.chinacloudapi.cn/ Built-in - - This example shows how to get the endpoints and metadata for the AzureCloud (default) environment. - - - - - - -------- Example 2: Getting the AzureCloud environment -------- - Get-AzEnvironment -Name AzureCloud - -Name Resource Manager Url ActiveDirectory Authority Type ----- -------------------- ------------------------- ---- -AzureCloud https://management.azure.com/ https://login.microsoftonline.com/ Built-in - - This example shows how to get the endpoints and metadata for the AzureCloud (default) environment. - - - - - - ------ Example 3: Getting the AzureChinaCloud environment ------ - Get-AzEnvironment -Name AzureChinaCloud | Format-List - -Name : AzureChinaCloud -Type : Built-in -EnableAdfsAuthentication : False -OnPremise : False -ActiveDirectoryServiceEndpointResourceId : https://management.core.chinacloudapi.cn/ -AdTenant : Common -GalleryUrl : https://gallery.azure.com/ -ManagementPortalUrl : https://go.microsoft.com/fwlink/?LinkId=301902 -ServiceManagementUrl : https://management.core.chinacloudapi.cn/ -PublishSettingsFileUrl : https://go.microsoft.com/fwlink/?LinkID=301776 -ResourceManagerUrl : https://management.chinacloudapi.cn/ -SqlDatabaseDnsSuffix : .database.chinacloudapi.cn -StorageEndpointSuffix : core.chinacloudapi.cn -ActiveDirectoryAuthority : https://login.chinacloudapi.cn/ -GraphUrl : https://graph.chinacloudapi.cn/ -GraphEndpointResourceId : https://graph.chinacloudapi.cn/ -TrafficManagerDnsSuffix : trafficmanager.cn -AzureKeyVaultDnsSuffix : vault.azure.cn -DataLakeEndpointResourceId : -AzureDataLakeStoreFileSystemEndpointSuffix : -AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix : -AzureKeyVaultServiceEndpointResourceId : https://vault.azure.cn -ContainerRegistryEndpointSuffix : azurecr.cn -AzureOperationalInsightsEndpointResourceId : -AzureOperationalInsightsEndpoint : -AzureAnalysisServicesEndpointSuffix : asazure.chinacloudapi.cn -AnalysisServicesEndpointResourceId : https://region.asazure.chinacloudapi.cn -AzureAttestationServiceEndpointSuffix : -AzureAttestationServiceEndpointResourceId : -AzureSynapseAnalyticsEndpointSuffix : dev.azuresynapse.azure.cn -AzureSynapseAnalyticsEndpointResourceId : https://dev.azuresynapse.azure.cn - - This example shows how to get the endpoints and metadata for the AzureChinaCloud environment. - - - - - - ----- Example 4: Getting the AzureUSGovernment environment ----- - Get-AzEnvironment -Name AzureUSGovernment - -Name Resource Manager Url ActiveDirectory Authority Type ----- -------------------- ------------------------- ---- -AzureUSGovernment https://management.usgovcloudapi.net/ https://login.microsoftonline.us/ Built-in - - This example shows how to get the endpoints and metadata for the AzureUSGovernment environment. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/get-azenvironment - - - Add-AzEnvironment - - - - Remove-AzEnvironment - - - - Set-AzEnvironment - - - - - - - Get-AzSubscription - Get - AzSubscription - - Get subscriptions that the current account can access. - - - - The Get-AzSubscription cmdlet gets the subscription ID, subscription name, and home tenant for subscriptions that the current account can access. - - - - Get-AzSubscription - - AsJob - - Run cmdlet in the background and return a Job to track progress. - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - SubscriptionId - - Specifies the ID of the subscription to get. - - System.String - - System.String - - - None - - - TenantId - - Specifies the ID of the tenant that contains subscriptions to get. - - System.String - - System.String - - - None - - - - Get-AzSubscription - - AsJob - - Run cmdlet in the background and return a Job to track progress. - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - SubscriptionName - - Specifies the name of the subscription to get. - - System.String - - System.String - - - None - - - TenantId - - Specifies the ID of the tenant that contains subscriptions to get. - - System.String - - System.String - - - None - - - - - - AsJob - - Run cmdlet in the background and return a Job to track progress. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - SubscriptionId - - Specifies the ID of the subscription to get. - - System.String - - System.String - - - None - - - SubscriptionName - - Specifies the name of the subscription to get. - - System.String - - System.String - - - None - - - TenantId - - Specifies the ID of the tenant that contains subscriptions to get. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription - - - - - - - - - - - - - - ------- Example 1: Get all subscriptions in all tenants ------- - Get-AzSubscription - -Name Id TenantId State ----- -- -------- ----- -Subscription1 yyyy-yyyy-yyyy-yyyy aaaa-aaaa-aaaa-aaaa Enabled -Subscription2 xxxx-xxxx-xxxx-xxxx aaaa-aaaa-aaaa-aaaa Enabled -Subscription3 zzzz-zzzz-zzzz-zzzz bbbb-bbbb-bbbb-bbbb Enabled - - This command gets all subscriptions in all tenants that are authorized for the current account. - - - - - - ---- Example 2: Get all subscriptions for a specific tenant ---- - Get-AzSubscription -TenantId "aaaa-aaaa-aaaa-aaaa" - -Name Id TenantId State ----- -- -------- ----- -Subscription1 yyyy-yyyy-yyyy-yyyy aaaa-aaaa-aaaa-aaaa Enabled -Subscription2 xxxx-xxxx-xxxx-xxxx aaaa-aaaa-aaaa-aaaa Enabled - - List all subscriptions in the given tenant that are authorized for the current account. - - - - - - ---- Example 3: Get all subscriptions in the current tenant ---- - Get-AzSubscription -TenantId (Get-AzContext).Tenant - -Name Id TenantId State ----- -- -------- ----- -Subscription1 yyyy-yyyy-yyyy-yyyy aaaa-aaaa-aaaa-aaaa Enabled -Subscription2 xxxx-xxxx-xxxx-xxxx aaaa-aaaa-aaaa-aaaa Enabled - - This command gets all subscriptions in the current tenant that are authorized for the current user. - - - - - - Example 4: Change the current context to use a specific subscription - Get-AzSubscription -SubscriptionId "xxxx-xxxx-xxxx-xxxx" -TenantId "yyyy-yyyy-yyyy-yyyy" | Set-AzContext - -Name Account SubscriptionName Environment TenantId ----- ------- ---------------- ----------- -------- -Subscription1 (xxxx-xxxx-xxxx-xxxx) azureuser@micros... Subscription1 AzureCloud yyyy-yyyy-yyyy-yyyy - - This command gets the specified subscription, and then sets the current context to use it. All subsequent cmdlets in this session use the new subscription (Contoso Subscription 1) by default. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/get-azsubscription - - - - - - Get-AzTenant - Get - AzTenant - - Gets tenants that are authorized for the current user. - - - - The Get-AzTenant cmdlet gets tenants authorized for the current user. - - - - Get-AzTenant - - TenantId - - Specifies the ID of the tenant that this cmdlet gets. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - TenantId - - Specifies the ID of the tenant that this cmdlet gets. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSAzureTenant - - - - - - - - - - - - - - ---------------- Example 1: Getting all tenants ---------------- - Connect-AzAccount -Get-AzTenant - -Id Name Category Domains --- ----------- -------- ------- -xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Microsoft Home {test0.com, test1.com, test2.microsoft.com, test3.microsoft.com...} -yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy Testhost Home testhost.onmicrosoft.com - - This example shows how to get all of the authorized tenants of an Azure account. - - - - - - ------------- Example 2: Getting a specific tenant ------------- - Connect-AzAccount -Get-AzTenant -TenantId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx - -Id Name Category Domains --- ----------- -------- ------- -xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Microsoft Home {test0.com, test1.com, test2.microsoft.com, test3.microsoft.com...} - - This example shows how to get a specific authorized tenant of an Azure account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/get-aztenant - - - - - - Import-AzConfig - Import - AzConfig - - Imports configs from a file that was previously exported by `Export-AzConfig`. - - - - The `Import-AzConfig` cmdlet imports all the configs from a file that was previously exported by `Export-AzConfig`. The imported configs will be set at the "CurrentUser" scope, so they are consistent across PowerShell sessions. - During importing, if a config that is to be imported has already been set, its value will be overwritten. - - - - Import-AzConfig - - Path - - Specifies the path to configuration saved by using Export-AzConfig. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns a boolean value indicating success or failure. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns a boolean value indicating success or failure. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Path - - Specifies the path to configuration saved by using Export-AzConfig. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Import-AzConfig -Path ./config.json - - This example imports configs from file `./config.json`. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/import-azconfig - - - Export-AzConfig - - - - - - - Import-AzContext - Import - AzContext - - Loads Azure authentication information from a file. - - - - The Import-AzContext cmdlet loads authentication information from a file to set the Azure environment and context. Cmdlets that you run in the current session use this information to authenticate requests to Azure Resource Manager. - - - - Import-AzContext - - AzureContext - - {{Fill AzureContext Description}} - - Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile - - Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile - - - None - - - DefaultProfile - - The credentials, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Import-AzContext - - Path - - Specifies the path to context information saved by using Save-AzContext. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AzureContext - - {{Fill AzureContext Description}} - - Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile - - Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile - - - None - - - DefaultProfile - - The credentials, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Path - - Specifies the path to context information saved by using Save-AzContext. - - System.String - - System.String - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile - - - - - - - - - - - - - - ----- Example 1: Importing a context from a AzureRmProfile ----- - Import-AzContext -AzContext (Connect-AzAccount) - -Account SubscriptionName TenantId Environment -------- ---------------- -------- ----------- -azureuser@contoso.com Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud - - This example imports a context from a PSAzureProfile that is passed through to the cmdlet. - - - - - - ------- Example 2: Importing a context from a JSON file ------- - Import-AzContext -Path C:\test.json - -Account SubscriptionName TenantId Environment -------- ---------------- -------- ----------- -azureuser@contoso.com Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud - - This example selects a context from a JSON file that is passed through to the cmdlet. This JSON file can be created from Save-AzContext. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/import-azcontext - - - - - - Invoke-AzRestMethod - Invoke - AzRestMethod - - Construct and perform HTTP request to Azure resource management endpoint only - - - - Construct and perform HTTP request to Azure resource management endpoint only - - - - Invoke-AzRestMethod - - ApiVersion - - Api Version - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - FinalResultFrom - - Specifies the header for final GET result after the long-running operation completes. - - - FinalStateVia - Location - OriginalUri - Operation-Location - - System.String - - System.String - - - None - - - Method - - Http Method - - - GET - POST - PUT - PATCH - DELETE - - System.String - - System.String - - - None - - - Name - - list of Target Resource Name - - System.String[] - - System.String[] - - - None - - - Payload - - JSON format payload - - System.String - - System.String - - - None - - - PollFrom - - Specifies the polling header (to fetch from) for long-running operation status. - - - AzureAsyncLocation - Location - OriginalUri - Operation-Location - - System.String - - System.String - - - None - - - ResourceGroupName - - Target Resource Group Name - - System.String - - System.String - - - None - - - ResourceProviderName - - Target Resource Provider Name - - System.String - - System.String - - - None - - - ResourceType - - List of Target Resource Type - - System.String[] - - System.String[] - - - None - - - SubscriptionId - - Target Subscription Id - - System.String - - System.String - - - None - - - WaitForCompletion - - Waits for the long-running operation to complete before returning the result. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Invoke-AzRestMethod - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - FinalResultFrom - - Specifies the header for final GET result after the long-running operation completes. - - - FinalStateVia - Location - OriginalUri - Operation-Location - - System.String - - System.String - - - None - - - Method - - Http Method - - - GET - POST - PUT - PATCH - DELETE - - System.String - - System.String - - - None - - - Path - - Path of target resource URL. Hostname of Resource Manager should not be added. - - System.String - - System.String - - - None - - - Payload - - JSON format payload - - System.String - - System.String - - - None - - - PollFrom - - Specifies the polling header (to fetch from) for long-running operation status. - - - AzureAsyncLocation - Location - OriginalUri - Operation-Location - - System.String - - System.String - - - None - - - WaitForCompletion - - Waits for the long-running operation to complete before returning the result. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Invoke-AzRestMethod - - Uri - - Uniform Resource Identifier of the Azure resources. The target resource needs to support Azure AD authentication and the access token is derived according to resource id. If resource id is not set, its value is derived according to built-in service suffixes in current Azure Environment. - - System.Uri - - System.Uri - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - FinalResultFrom - - Specifies the header for final GET result after the long-running operation completes. - - - FinalStateVia - Location - OriginalUri - Operation-Location - - System.String - - System.String - - - None - - - Method - - Http Method - - - GET - POST - PUT - PATCH - DELETE - - System.String - - System.String - - - None - - - Payload - - JSON format payload - - System.String - - System.String - - - None - - - PollFrom - - Specifies the polling header (to fetch from) for long-running operation status. - - - AzureAsyncLocation - Location - OriginalUri - Operation-Location - - System.String - - System.String - - - None - - - ResourceId - - Identifier URI specified by the REST API you are calling. It shouldn't be the resource id of Azure Resource Manager. - - System.Uri - - System.Uri - - - None - - - WaitForCompletion - - Waits for the long-running operation to complete before returning the result. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ApiVersion - - Api Version - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - FinalResultFrom - - Specifies the header for final GET result after the long-running operation completes. - - System.String - - System.String - - - None - - - Method - - Http Method - - System.String - - System.String - - - None - - - Name - - list of Target Resource Name - - System.String[] - - System.String[] - - - None - - - Path - - Path of target resource URL. Hostname of Resource Manager should not be added. - - System.String - - System.String - - - None - - - Payload - - JSON format payload - - System.String - - System.String - - - None - - - PollFrom - - Specifies the polling header (to fetch from) for long-running operation status. - - System.String - - System.String - - - None - - - ResourceGroupName - - Target Resource Group Name - - System.String - - System.String - - - None - - - ResourceId - - Identifier URI specified by the REST API you are calling. It shouldn't be the resource id of Azure Resource Manager. - - System.Uri - - System.Uri - - - None - - - ResourceProviderName - - Target Resource Provider Name - - System.String - - System.String - - - None - - - ResourceType - - List of Target Resource Type - - System.String[] - - System.String[] - - - None - - - SubscriptionId - - Target Subscription Id - - System.String - - System.String - - - None - - - Uri - - Uniform Resource Identifier of the Azure resources. The target resource needs to support Azure AD authentication and the access token is derived according to resource id. If resource id is not set, its value is derived according to built-in service suffixes in current Azure Environment. - - System.Uri - - System.Uri - - - None - - - WaitForCompletion - - Waits for the long-running operation to complete before returning the result. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.string - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSHttpResponse - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Invoke-AzRestMethod -Path "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{workspace}?api-version={API}" -Method GET - -Headers : {[Cache-Control, System.String[]], [Pragma, System.String[]], [x-ms-request-id, System.String[]], [Strict-Transport-Security, System.String[]]…} -Version : 1.1 -StatusCode : 200 -Method : GET -Content : { - "properties": { - "source": "Azure", - "customerId": "{customerId}", - "provisioningState": "Succeeded", - "sku": { - "name": "pergb2018", - "maxCapacityReservationLevel": 3000, - "lastSkuUpdate": "Mon, 25 May 2020 11:10:01 GMT" - }, - "retentionInDays": 30, - "features": { - "legacy": 0, - "searchVersion": 1, - "enableLogAccessUsingOnlyResourcePermissions": true - }, - "workspaceCapping": { - "dailyQuotaGb": -1.0, - "quotaNextResetTime": "Thu, 18 Jun 2020 05:00:00 GMT", - "dataIngestionStatus": "RespectQuota" - }, - "enableFailover": false, - "publicNetworkAccessForIngestion": "Enabled", - "publicNetworkAccessForQuery": "Enabled", - "createdDate": "Mon, 25 May 2020 11:10:01 GMT", - "modifiedDate": "Mon, 25 May 2020 11:10:02 GMT" - }, - "id": "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{workspace}", - "name": "{workspace}", - "type": "Microsoft.OperationalInsights/workspaces", - "location": "eastasia", - "tags": {} - } - - Get log analytics workspace by path. It only supports management plane API and Hostname of Azure Resource Manager is added according to Azure environment setting. - - - - - - - -------------------------- Example 2 -------------------------- - Invoke-AzRestMethod https://graph.microsoft.com/v1.0/me - -Headers : {[Date, System.String[]], [Cache-Control, System.String[]], [Transfer-Encoding, System.String[]], [Strict-Transport-Security, System.String[]]…} -Version : 1.1 -StatusCode : 200 -Method : GET -Content : {"@odata.context":"https://graph.microsoft.com/v1.0/$metadata#users/$entity","businessPhones":["......} - - Get current signed in user via MicrosoftGraph API. This example is equivalent to `Get-AzADUser -SignedIn`. - - - - - - -------------------------- Example 3 -------------------------- - $subscriptionId = (Get-AzContext).Subscription.ID -Invoke-AzRestMethod -SubscriptionId $subscriptionId -ResourceGroupName "test-group" -ResourceProviderName Microsoft.AppPlatform -ResourceType Spring,apps -Name "test-spring-service" -ApiVersion 2020-07-01 -Method GET - -Headers : {[Cache-Control, System.String[]], [Pragma, System.String[]], [Vary, System.String[]], [x-ms-request-id, - System.String[]]…} -Version : 1.1 -StatusCode : 200 -Method : GET -Content : {"value":[{"properties":{"public":true,"url":"https://test-spring-service-demo.azuremicroservices.io","provisioni - ngState":"Succeeded","activeDeploymentName":"default","fqdn":"test-spring-service.azuremicroservices.io","httpsOn - ly":false,"createdTime":"2022-06-22T02:57:13.272Z","temporaryDisk":{"sizeInGB":5,"mountPath":"/tmp"},"pers - istentDisk":{"sizeInGB":0,"mountPath":"/persistent"}},"type":"Microsoft.AppPlatform/Spring/apps","identity - ":null,"location":"eastus","id":"/subscriptions/$subscriptionId/resourceGroups/test-group/providers/Microsoft.AppPlatform/Spring/test-spring-service/apps/demo","name":"demo"},{"properties":{"publ - ic":false,"provisioningState":"Succeeded","activeDeploymentName":"deploy01","fqdn":"test-spring-service.azuremicr - oservices.io","httpsOnly":false,"createdTime":"2022-06-22T07:46:54.9Z","temporaryDisk":{"sizeInGB":5,"moun - tPath":"/tmp"},"persistentDisk":{"sizeInGB":0,"mountPath":"/persistent"}},"type":"Microsoft.AppPlatform/Sp - ring/apps","identity":null,"location":"eastus","id":"/subscriptions/$subscriptionId/r - esourceGroups/test-group/providers/Microsoft.AppPlatform/Spring/test-spring-service/apps/pwsh01","name":"pwsh0 - 1"}]} - - List apps under spring service "test-spring-service" - - - - - - -------------------------- Example 4 -------------------------- - $subscriptionId = (Get-AzContext).Subscription.ID -Invoke-AzRestMethod -SubscriptionId $subscriptionId -ResourceGroupName "test-group" -ResourceProviderName Microsoft.AppPlatform -ResourceType Spring -Name "test-spring-service","demo" -ApiVersion 2020-07-01 -Method GET - -Headers : {[Cache-Control, System.String[]], [Pragma, System.String[]], [Vary, System.String[]], [x-ms-request-id, - System.String[]]…} -Version : 1.1 -StatusCode : 200 -Method : GET -Content : {"properties":{"public":true,"url":"https://test-spring-service-demo.azuremicroservices.io","provisioningState":" - Succeeded","activeDeploymentName":"default","fqdn":"test-spring-service.azuremicroservices.io","httpsOnly":false, - "createdTime":"2022-06-22T02:57:13.272Z","temporaryDisk":{"sizeInGB":5,"mountPath":"/tmp"},"persistentDisk - ":{"sizeInGB":0,"mountPath":"/persistent"}},"type":"Microsoft.AppPlatform/Spring/apps","identity":null,"lo - cation":"eastus","id":"/subscriptions/$subscriptionId/resourceGroups/test-group/pr - oviders/Microsoft.AppPlatform/Spring/test-spring-service/apps/demo","name":"demo"} - - Get app "demo" under Spring cloud service "test-spring-service" - - - - - - -------------------------- Example 5 -------------------------- - # Replace *** with real values -$payload = @{principalId="***"; resourceId="***"; appRoleId="***"} | ConvertTo-Json -Depth 3 -Invoke-AzRestMethod -Method POST -Uri https://graph.microsoft.com/v1.0/servicePrincipals/***/appRoleAssignedTo -Payload $payload - - Call Microsoft Graph API to assign App Role by constructing a hashtable, converting to a JSON string, and passing the payload to `Invoke-AzRestMethod`. - - - - - - -------------------------- Example 5 -------------------------- - # This example demonstrates creating or updating a resource with a long-running PUT request. -Invoke-AzRestMethod -Method PUT -Uri "https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.KeyVault/managedHSMs/{hsm-name}?api-version=2023-07-01" ` - -Payload (@{ - location = "eastus"; - properties = @{ - softDeleteRetentionDays = 7; - tenantId = "{tenant-id}"; - initialAdminObjectIds = @("{admin-object-id}") - }; - sku = @{ - name = "Standard_B1"; - family = "B" - } - } | ConvertTo-Json -Depth 10) ` - -WaitForCompletion - -StatusCode : 200 -Content : { - "sku": { - "family": "B", - "name": "Standard_B1" - }, - "id": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.KeyVault/managedHSMs/{hsm-name}", - "name": "{hsm-name}", - "type": "Microsoft.KeyVault/managedHSMs", - "location": "{region}", - "tags": {}, - "systemData": { - "createdBy": "{user-email}", - "createdByType": "User", - "createdAt": "2024-10-29T05:05:49.229Z", - "lastModifiedBy": "{user-email}", - "lastModifiedByType": "User", - "lastModifiedAt": "2024-10-29T05:05:49.229Z" - }, - "properties": { - "tenantId": "{tenant-id}", - "hsmUri": "https://{hsm-name}.managedhsm.azure.net/", - "initialAdminObjectIds": [ - "{admin-object-id}" - ], - "enableSoftDelete": true, - "softDeleteRetentionInDays": 90, - "enablePurgeProtection": false, - "provisioningState": "Succeeded", - "statusMessage": "The Managed HSM is provisioned and ready to use.", - "networkAcls": { - "bypass": "AzureServices", - "defaultAction": "Allow", - "ipRules": [], - "virtualNetworkRules": [] - }, - "publicNetworkAccess": "Enabled", - "regions": [], - "securityDomainProperties": { - "activationStatus": "NotActivated", - "activationStatusMessage": "Your HSM has been provisioned, but cannot be used for cryptographic operations until it is activated. To activate the HSM, download the security domain." - } - } - } -Headers : { - "Cache-Control": "no-cache", - "Pragma": "no-cache", - "x-ms-client-request-id": "{client-request-id}", - "x-ms-keyvault-service-version": "1.5.1361.0", - "x-ms-request-id": "{request-id}", - "x-ms-ratelimit-remaining-subscription-reads": "249", - "x-ms-ratelimit-remaining-subscription-global-reads": "3749", - "x-ms-correlation-request-id": "{correlation-request-id}", - "x-ms-routing-request-id": "{routing-request-id}", - "Strict-Transport-Security": "max-age=31536000; includeSubDomains", - "Date": "Tue, 29 Oct 2024 05:18:44 GMT" - } -Method : GET -RequestUri : https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.KeyVault/managedHSMs/{hsm-name}?api-version=2023-07-01 -Version : 1.1 - - Sends a long-running PUT request to create or update a Managed HSM resource in Azure, polling until completion if the operation requires it. This example uses placeholders ({subscription-id}, {resource-group}, {hsm-name}, {tenant-id}, and {admin-object-id}) that the user should replace with their specific values. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/invoke-azrestmethod - - - - - - Open-AzSurveyLink - Open - AzSurveyLink - - Open survey link in default browser. - - - - Open survey link in default browser. - - - - Open-AzSurveyLink - - - - - - - None - - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Open-AzSurveyLink - -Opening the default browser to https://aka.ms/azpssurvey?Q_CHL=INTERCEPT - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/open-azsurveylink - - - - - - Register-AzModule - Register - AzModule - - FOR INTERNAL USE ONLY - Provide Runtime Support for AutoRest Generated cmdlets - - - - FOR INTERNAL USE ONLY - Provide Runtime Support for AutoRest Generated cmdlets - - - - Register-AzModule - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Register-AzModule - - Used Internally by AutoRest-generated cmdlets - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/register-azmodule - - - - - - Remove-AzContext - Remove - AzContext - - Remove a context from the set of available contexts - - - - Remove an azure context from the set of contexts - - - - Remove-AzContext - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Remove context even if it is the default - - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - A context object, normally passed through the pipeline. - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - None - - - PassThru - - Return the removed context - - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzContext - - Name - - The name of the context - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Remove context even if it is the default - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Return the removed context - - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Remove context even if it is the default - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - A context object, normally passed through the pipeline. - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - None - - - Name - - The name of the context - - System.String - - System.String - - - None - - - PassThru - - Return the removed context - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Remove-AzContext -Name Default - - Remove the context named default - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/remove-azcontext - - - - - - Remove-AzEnvironment - Remove - AzEnvironment - - Removes endpoints and metadata for connecting to a given Azure instance. - - - - The Remove-AzEnvironment cmdlet removes endpoints and metadata information for connecting to a given Azure instance. - - - - Remove-AzEnvironment - - Name - - Specifies the name of the environment to remove. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Specifies the name of the environment to remove. - - System.String - - System.String - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSAzureEnvironment - - - - - - - - - - - - - - ----- Example 1: Creating and removing a test environment ----- - Add-AzEnvironment -Name TestEnvironment ` - -ActiveDirectoryEndpoint TestADEndpoint ` - -ActiveDirectoryServiceEndpointResourceId TestADApplicationId ` - -ResourceManagerEndpoint TestRMEndpoint ` - -GalleryEndpoint TestGalleryEndpoint ` - -GraphEndpoint TestGraphEndpoint - -Name Resource Manager Url ActiveDirectory Authority ----- -------------------- ------------------------- -TestEnvironment TestRMEndpoint TestADEndpoint/ - -Remove-AzEnvironment -Name TestEnvironment - -Name Resource Manager Url ActiveDirectory Authority ----- -------------------- ------------------------- -TestEnvironment TestRMEndpoint TestADEndpoint/ - - This example shows how to create an environment using Add-AzEnvironment, and then how to delete the environment using Remove-AzEnvironment. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/remove-azenvironment - - - Add-AzEnvironment - - - - Get-AzEnvironment - - - - Set-AzEnvironment - - - - - - - Rename-AzContext - Rename - AzContext - - Rename an Azure context. By default contexts are named by user account and subscription. - - - - Rename an Azure context. By default contexts are named by user account and subscription. - - - - Rename-AzContext - - TargetName - - The new name of the context - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Rename the context even if the target context already exists - - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - A context object, normally passed through the pipeline. - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - None - - - PassThru - - Return the renamed context. - - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Rename-AzContext - - SourceName - - The name of the context - - System.String - - System.String - - - None - - - TargetName - - The new name of the context - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Rename the context even if the target context already exists - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Return the renamed context. - - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Rename the context even if the target context already exists - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - A context object, normally passed through the pipeline. - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - None - - - PassThru - - Return the renamed context. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - SourceName - - The name of the context - - System.String - - System.String - - - None - - - TargetName - - The new name of the context - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - - - - - - - - - - - - ------ Example 1: Rename a context using named parameters ------ - Rename-AzContext -SourceName "[user1@contoso.org; 12345-6789-2345-3567890]" -TargetName "Work" - - Rename the context for 'user1@contoso.org' with subscription '12345-6789-2345-3567890' to 'Work'. After this command, you will be able to target the context using 'Select-AzContext Work'. Note that you can tab through the values for 'SourceName' using tab completion. - - - - - - --- Example 2: Rename a context using positional parameters --- - Rename-AzContext "My context" "Work" - - Rename the context named "My context" to "Work". After this command, you will be able to target the context using Select-AzContext Work - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/rename-azcontext - - - - - - Resolve-AzError - Resolve - AzError - - Display detailed information about PowerShell errors, with extended details for Azure PowerShell errors. - - - - Resolves and displays detailed information about errors in the current PowerShell session, including where the error occurred in script, stack trace, and all inner and aggregate exceptions. For Azure PowerShell errors provides additional detail in debugging service issues, including complete detail about the request and server response that caused the error. - - - - Resolve-AzError - - Error - - One or more error records to resolve. If no parameters are specified, all errors in the session are resolved. - - System.Management.Automation.ErrorRecord[] - - System.Management.Automation.ErrorRecord[] - - - None - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Resolve-AzError - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Last - - Resolve only the last error that occurred in the session. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Error - - One or more error records to resolve. If no parameters are specified, all errors in the session are resolved. - - System.Management.Automation.ErrorRecord[] - - System.Management.Automation.ErrorRecord[] - - - None - - - Last - - Resolve only the last error that occurred in the session. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.Management.Automation.ErrorRecord[] - - - - - - - - - - Microsoft.Azure.Commands.Profile.Errors.AzureErrorRecord - - - - - - - - Microsoft.Azure.Commands.Profile.Errors.AzureExceptionRecord - - - - - - - - Microsoft.Azure.Commands.Profile.Errors.AzureRestExceptionRecord - - - - - - - - - - - - - - -------------- Example 1: Resolve the Last Error -------------- - Resolve-AzError -Last - -HistoryId: 3 - - -Message : Run Connect-AzAccount to login. -StackTrace : at Microsoft.Azure.Commands.ResourceManager.Common.AzureRMCmdlet.get_DefaultContext() in AzureRmCmdlet.cs:line 85 - at Microsoft.Azure.Commands.ResourceManager.Common.AzureRMCmdlet.LogCmdletStartInvocationInfo() in AzureRmCmdlet.cs:line 269 - at Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet.BeginProcessing() inAzurePSCmdlet.cs:line 299 - at Microsoft.Azure.Commands.ResourceManager.Common.AzureRMCmdlet.BeginProcessing() in AzureRmCmdlet.cs:line 320 - at Microsoft.Azure.Commands.Profile.GetAzureRMSubscriptionCommand.BeginProcessing() in GetAzureRMSubscription.cs:line 49 - at System.Management.Automation.Cmdlet.DoBeginProcessing() - at System.Management.Automation.CommandProcessorBase.DoBegin() -Exception : System.Management.Automation.PSInvalidOperationException -InvocationInfo : {Get-AzSubscription} -Line : Get-AzSubscription -Position : At line:1 char:1 - + Get-AzSubscription - + ~~~~~~~~~~~~~~~~~~~~~~~ -HistoryId : 3 - - Get details of the last error. - - - - - - --------- Example 2: Resolve all Errors in the Session --------- - Resolve-AzError - -HistoryId: 8 - - -RequestId : b61309e8-09c9-4f0d-ba56-08a6b28c731d -Message : Resource group 'contoso' could not be found. -ServerMessage : ResourceGroupNotFound: Resource group 'contoso' could not be found. - (System.Collections.Generic.List`1[Microsoft.Rest.Azure.CloudError]) -ServerResponse : {NotFound} -RequestMessage : {GET https://management.azure.com/subscriptions/00977cdb-163f-435f-9c32-39ec8ae61f4d/resourceGroups/co - ntoso/providers/Microsoft.Storage/storageAccounts/contoso?api-version=2016-12-01} -InvocationInfo : {Get-AzStorageAccount} -Line : Get-AzStorageAccount -ResourceGroupName contoso -Name contoso -Position : At line:1 char:1 - + Get-AzStorageAccount -ResourceGroupName contoso -Name contoso - + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -StackTrace : at Microsoft.Azure.Management.Storage.StorageAccountsOperations.<GetPropertiesWithHttpMessagesAsync - >d__8.MoveNext() - --- End of stack trace from previous location where exception was thrown --- - at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() - at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) - at Microsoft.Azure.Management.Storage.StorageAccountsOperationsExtensions.<GetPropertiesAsync>d__7. - MoveNext() - --- End of stack trace from previous location where exception was thrown --- - at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() - at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) - at Microsoft.Azure.Management.Storage.StorageAccountsOperationsExtensions.GetProperties(IStorageAcc - ountsOperations operations, String resourceGroupName, String accountName) - at Microsoft.Azure.Commands.Management.Storage.GetAzureStorageAccountCommand.ExecuteCmdlet() in C:\ - zd\azure-powershell\src\ResourceManager\Storage\Commands.Management.Storage\StorageAccount\GetAzureSto - rageAccount.cs:line 70 - at Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet.ProcessRecord() in - C:\zd\azure-powershell\src\Common\Commands.Common\AzurePSCmdlet.cs:line 642 -HistoryId : 8 - - - HistoryId: 5 - - -Message : Run Connect-AzAccount to login. -StackTrace : at Microsoft.Azure.Commands.ResourceManager.Common.AzureRMCmdlet.get_DefaultContext() in C:\zd\azur - e-powershell\src\ResourceManager\Common\Commands.ResourceManager.Common\AzureRmCmdlet.cs:line 85 - at Microsoft.Azure.Commands.ResourceManager.Common.AzureRMCmdlet.LogCmdletStartInvocationInfo() in - C:\zd\azure-powershell\src\ResourceManager\Common\Commands.ResourceManager.Common\AzureRmCmdlet.cs:lin - e 269 - at Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet.BeginProcessing() in - C:\zd\azure-powershell\src\Common\Commands.Common\AzurePSCmdlet.cs:line 299 - at Microsoft.Azure.Commands.ResourceManager.Common.AzureRMCmdlet.BeginProcessing() in C:\zd\azure-p - owershell\src\ResourceManager\Common\Commands.ResourceManager.Common\AzureRmCmdlet.cs:line 320 - at Microsoft.Azure.Commands.Profile.GetAzureRMSubscriptionCommand.BeginProcessing() in C:\zd\azure- - powershell\src\ResourceManager\Profile\Commands.Profile\Subscription\GetAzureRMSubscription.cs:line 49 - at System.Management.Automation.Cmdlet.DoBeginProcessing() - at System.Management.Automation.CommandProcessorBase.DoBegin() -Exception : System.Management.Automation.PSInvalidOperationException -InvocationInfo : {Get-AzSubscription} -Line : Get-AzSubscription -Position : At line:1 char:1 - + Get-AzSubscription - + ~~~~~~~~~~~~~~~~~~~~~~~ -HistoryId : 5 - - Get details of all errors that have occurred in the current session. - - - - - - ------------- Example 3: Resolve a Specific Error ------------- - Resolve-AzError $Error[0] - -HistoryId: 8 - - -RequestId : b61309e8-09c9-4f0d-ba56-08a6b28c731d -Message : Resource group 'contoso' could not be found. -ServerMessage : ResourceGroupNotFound: Resource group 'contoso' could not be found. - (System.Collections.Generic.List`1[Microsoft.Rest.Azure.CloudError]) -ServerResponse : {NotFound} -RequestMessage : {GET https://management.azure.com/subscriptions/00977cdb-163f-435f-9c32-39ec8ae61f4d/resourceGroups/co - ntoso/providers/Microsoft.Storage/storageAccounts/contoso?api-version=2016-12-01} -InvocationInfo : {Get-AzStorageAccount} -Line : Get-AzStorageAccount -ResourceGroupName contoso -Name contoso -Position : At line:1 char:1 - + Get-AzStorageAccount -ResourceGroupName contoso -Name contoso - + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -StackTrace : at Microsoft.Azure.Management.Storage.StorageAccountsOperations.<GetPropertiesWithHttpMessagesAsync - >d__8.MoveNext() - --- End of stack trace from previous location where exception was thrown --- - at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() - at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) - at Microsoft.Azure.Management.Storage.StorageAccountsOperationsExtensions.<GetPropertiesAsync>d__7. - MoveNext() - --- End of stack trace from previous location where exception was thrown --- - at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() - at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) - at Microsoft.Azure.Management.Storage.StorageAccountsOperationsExtensions.GetProperties(IStorageAcc - ountsOperations operations, String resourceGroupName, String accountName) - at Microsoft.Azure.Commands.Management.Storage.GetAzureStorageAccountCommand.ExecuteCmdlet() in C:\ - zd\azure-powershell\src\ResourceManager\Storage\Commands.Management.Storage\StorageAccount\GetAzureSto - rageAccount.cs:line 70 - at Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet.ProcessRecord() in - C:\zd\azure-powershell\src\Common\Commands.Common\AzurePSCmdlet.cs:line 642 -HistoryId : 8 - - Get details of the specified error. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/resolve-azerror - - - - - - Save-AzContext - Save - AzContext - - Saves the current authentication information for use in other PowerShell sessions. - - - - The Save-AzContext cmdlet saves the current authentication information for use in other PowerShell sessions. - - - - Save-AzContext - - Profile - - Specifies the Azure context from which this cmdlet reads. If you do not specify a context, this cmdlet reads from the local default context. - - Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile - - Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile - - - None - - - Path - - Specifies the path of the file to which to save authentication information. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Overwrite the given file if it exists - - - System.Management.Automation.SwitchParameter - - - False - - - WithCredential - - Export the credentials to the file - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Overwrite the given file if it exists - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Path - - Specifies the path of the file to which to save authentication information. - - System.String - - System.String - - - None - - - Profile - - Specifies the Azure context from which this cmdlet reads. If you do not specify a context, this cmdlet reads from the local default context. - - Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile - - Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile - - - None - - - WithCredential - - Export the credentials to the file - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile - - - - - - - - - - - - - - ------- Example 1: Saving the current session's context ------- - Connect-AzAccount -Save-AzContext -Path C:\test.json - - This example saves the current session's Azure context to the JSON file provided. - - - - - - -------------- Example 2: Saving a given context -------------- - Save-AzContext -Profile (Connect-AzAccount) -Path C:\test.json - - This example saves the Azure context that is passed through to the cmdlet to the JSON file provided. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/save-azcontext - - - - - - Select-AzContext - Select - AzContext - - Select a subscription and account to target in Azure PowerShell cmdlets - - - - Select a subscription to target (or account or tenant) in Azure PowerShell cmdlets. After this cmdlet, future cmdlets will target the selected context. - - - - Select-AzContext - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - A context object, normally passed through the pipeline. - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Select-AzContext - - Name - - The name of the context - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - A context object, normally passed through the pipeline. - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - None - - - Name - - The name of the context - - System.String - - System.String - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - - - - - - - - - - - - -------------- Example 1: Target a named context -------------- - Select-AzContext "Work" - -Name Account SubscriptionName Environment TenantId ----- ------- ---------------- ----------- -------- -Work test@outlook.com Subscription1 AzureCloud xxxxxxxx-x... - - Target future Azure PowerShell cmdlets at the account, tenant, and subscription in the 'Work' context. - - - - - - -------------------------- Example 2 -------------------------- - Select-AzContext -Name TestEnvironment -Scope Process - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/select-azcontext - - - - - - Send-Feedback - Send - Feedback - - Sends feedback to the Azure PowerShell team via a set of guided prompts. - - - - The Send-Feedback cmdlet sends feedback to the Azure PowerShell team. - - - - Send-Feedback - - DefaultProfile - - The credentials, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - DefaultProfile - - The credentials, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - None - - - - - - - - - - System.Void - - - - - - - - - - - - - - -------------------------- Example 1: -------------------------- - Send-Feedback - -With zero (0) being the least and ten (10) being the most, how likely are you to recommend Azure PowerShell to a friend or colleague? - -10 - -What does Azure PowerShell do well? - -Response. - -Upon what could Azure PowerShell improve? - -Response. - -Please enter your email if you are interested in providing follow up information: - -your@email.com - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/send-feedback - - - - - - Set-AzContext - Set - AzContext - - Sets the tenant, subscription, and environment for cmdlets to use in the current session. - - - - The Set-AzContext cmdlet sets authentication information for cmdlets that you run in the current session. The context includes tenant, subscription, and environment information. - - - - Set-AzContext - - Context - - Specifies the context for the current session. - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - None - - - DefaultProfile - - The credentials, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExtendedProperty - - Additional context properties - - System.Collections.Generic.IDictionary`2[System.String,System.String] - - System.Collections.Generic.IDictionary`2[System.String,System.String] - - - None - - - Force - - Overwrite the existing context with the same name, if any. - - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Name of the context - - System.String - - System.String - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzContext - - Subscription - - The name or id of the subscription that the context should be set to. This parameter has aliases to -SubscriptionName and -SubscriptionId, so, for clarity, either of these can be used instead of -Subscription when specifying name and id, respectively. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExtendedProperty - - Additional context properties - - System.Collections.Generic.IDictionary`2[System.String,System.String] - - System.Collections.Generic.IDictionary`2[System.String,System.String] - - - None - - - Force - - Overwrite the existing context with the same name, if any. - - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Name of the context - - System.String - - System.String - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Tenant - - Tenant domain name or ID - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzContext - - SubscriptionObject - - A subscription object - - Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription - - Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription - - - None - - - DefaultProfile - - The credentials, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExtendedProperty - - Additional context properties - - System.Collections.Generic.IDictionary`2[System.String,System.String] - - System.Collections.Generic.IDictionary`2[System.String,System.String] - - - None - - - Force - - Overwrite the existing context with the same name, if any. - - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Name of the context - - System.String - - System.String - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzContext - - DefaultProfile - - The credentials, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExtendedProperty - - Additional context properties - - System.Collections.Generic.IDictionary`2[System.String,System.String] - - System.Collections.Generic.IDictionary`2[System.String,System.String] - - - None - - - Force - - Overwrite the existing context with the same name, if any. - - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Name of the context - - System.String - - System.String - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Tenant - - Tenant domain name or ID - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzContext - - TenantObject - - A Tenant Object - - Microsoft.Azure.Commands.Profile.Models.PSAzureTenant - - Microsoft.Azure.Commands.Profile.Models.PSAzureTenant - - - None - - - DefaultProfile - - The credentials, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExtendedProperty - - Additional context properties - - System.Collections.Generic.IDictionary`2[System.String,System.String] - - System.Collections.Generic.IDictionary`2[System.String,System.String] - - - None - - - Force - - Overwrite the existing context with the same name, if any. - - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Name of the context - - System.String - - System.String - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Context - - Specifies the context for the current session. - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - None - - - DefaultProfile - - The credentials, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExtendedProperty - - Additional context properties - - System.Collections.Generic.IDictionary`2[System.String,System.String] - - System.Collections.Generic.IDictionary`2[System.String,System.String] - - - None - - - Force - - Overwrite the existing context with the same name, if any. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Name of the context - - System.String - - System.String - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Subscription - - The name or id of the subscription that the context should be set to. This parameter has aliases to -SubscriptionName and -SubscriptionId, so, for clarity, either of these can be used instead of -Subscription when specifying name and id, respectively. - - System.String - - System.String - - - None - - - SubscriptionObject - - A subscription object - - Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription - - Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription - - - None - - - Tenant - - Tenant domain name or ID - - System.String - - System.String - - - None - - - TenantObject - - A Tenant Object - - Microsoft.Azure.Commands.Profile.Models.PSAzureTenant - - Microsoft.Azure.Commands.Profile.Models.PSAzureTenant - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSAzureTenant - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - - - - - - - - - - - - ----------- Example 1: Set the subscription context ----------- - Set-AzContext -Subscription "xxxx-xxxx-xxxx-xxxx" - -Name Account SubscriptionName Environment TenantId ----- ------- ---------------- ----------- -------- -Work test@outlook.com Subscription1 AzureCloud xxxxxxxx-x... - - This command sets the context to use the specified subscription. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/set-azcontext - - - Get-AzContext - - - - - - - Set-AzDefault - Set - AzDefault - - Sets a default in the current context - - - - The Set-AzDefault cmdlet adds or changes the defaults in the current context. - - - - Set-AzDefault - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Create a new resource group if specified default does not exist - - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Name of the resource group being set as default - - System.String - - System.String - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Create a new resource group if specified default does not exist - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Name of the resource group being set as default - - System.String - - System.String - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSResourceGroup - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Set-AzDefault -ResourceGroupName myResourceGroup - -Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup -Name : myResourceGroup -Properties : Microsoft.Azure.Management.Internal.Resources.Models.ResourceGroupProperties -Location : eastus -ManagedBy : -Tags : - - This command sets the default resource group to the resource group specified by the user. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/set-azdefault - - - - - - Set-AzEnvironment - Set - AzEnvironment - - Sets properties for an Azure environment. - - - - The Set-AzEnvironment cmdlet sets endpoints and metadata for connecting to an instance of Azure. - - - - Set-AzEnvironment - - Name - - Specifies the name of the environment to modify. - - System.String - - System.String - - - None - - - PublishSettingsFileUrl - - Specifies the URL from which .publishsettings files can be downloaded. - - System.String - - System.String - - - None - - - AzureKeyVaultDnsSuffix - - Dns suffix of Azure Key Vault service. Example is vault-int.azure-int.net - - System.String - - System.String - - - None - - - AzureKeyVaultServiceEndpointResourceId - - Resource identifier of Azure Key Vault data service that is the recipient of the requested token. - - System.String - - System.String - - - None - - - TrafficManagerDnsSuffix - - Specifies the domain-name suffix for Azure Traffic Manager services. - - System.String - - System.String - - - None - - - SqlDatabaseDnsSuffix - - Specifies the domain-name suffix for Azure SQL Database servers. - - System.String - - System.String - - - None - - - AzureDataLakeStoreFileSystemEndpointSuffix - - Dns Suffix of Azure Data Lake Store FileSystem. Example: azuredatalake.net - - System.String - - System.String - - - None - - - AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix - - Dns Suffix of Azure Data Lake Analytics job and catalog services - - System.String - - System.String - - - None - - - EnableAdfsAuthentication - - Indicates that Active Directory Federation Services (ADFS) on-premise authentication is allowed. - - - System.Management.Automation.SwitchParameter - - - False - - - AdTenant - - Specifies the default Active Directory tenant. - - System.String - - System.String - - - None - - - GraphAudience - - The audience for tokens authenticating with the AD Graph Endpoint. - - System.String - - System.String - - - None - - - DataLakeAudience - - The audience for tokens authenticating with the AD Data Lake services Endpoint. - - System.String - - System.String - - - None - - - ServiceEndpoint - - Specifies the endpoint for Service Management (RDFE) requests. - - System.String - - System.String - - - None - - - BatchEndpointResourceId - - The resource identifier of the Azure Batch service that is the recipient of the requested token - - System.String - - System.String - - - None - - - AzureOperationalInsightsEndpointResourceId - - The audience for tokens authenticating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - AzureOperationalInsightsEndpoint - - The endpoint to use when communicating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - ManagementPortalUrl - - Specifies the URL for the Management Portal. - - System.String - - System.String - - - None - - - StorageEndpoint - - Specifies the endpoint for storage (blob, table, queue, and file) access. - - System.String - - System.String - - - None - - - ActiveDirectoryEndpoint - - Specifies the base authority for Azure Active Directory authentication. - - System.String - - System.String - - - None - - - ResourceManagerEndpoint - - Specifies the URL for Azure Resource Manager requests. - - System.String - - System.String - - - None - - - GalleryEndpoint - - Specifies the endpoint for the Azure Resource Manager gallery of deployment templates. The parameter is to set the value to `GalleryUrl` of `PSAzureEnvironment`. As `GalleryUrl` is removed from ArmMetadata, Azure PowerShell will no longer provide for the value and so it is not recommended to set `GalleryEndpoint` anymore. - - System.String - - System.String - - - None - - - ActiveDirectoryServiceEndpointResourceId - - Specifies the audience for tokens that authenticate requests to Azure Resource Manager or Service Management (RDFE) endpoints. - - System.String - - System.String - - - None - - - GraphEndpoint - - Specifies the URL for Graph (Active Directory metadata) requests. - - System.String - - System.String - - - None - - - AzureAnalysisServicesEndpointResourceId - - The resource identifier of the Azure Analysis Services resource. - - System.String - - System.String - - - None - - - AzureAnalysisServicesEndpointSuffix - - The endpoint to use when communicating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - AzureAttestationServiceEndpointResourceId - - The The resource identifier of the Azure Attestation service that is the recipient of the requested token. - - System.String - - System.String - - - None - - - AzureAttestationServiceEndpointSuffix - - Dns suffix of Azure Attestation service. - - System.String - - System.String - - - None - - - AzureSynapseAnalyticsEndpointResourceId - - The The resource identifier of the Azure Synapse Analytics that is the recipient of the requested token. - - System.String - - System.String - - - None - - - AzureSynapseAnalyticsEndpointSuffix - - Dns suffix of Azure Synapse Analytics. - - System.String - - System.String - - - None - - - ContainerRegistryEndpointSuffix - - Suffix of Azure Container Registry. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - MicrosoftGraphEndpointResourceId - - The resource identifier of Microsoft Graph - - System.String - - System.String - - - None - - - MicrosoftGraphUrl - - Microsoft Graph Url - - System.String - - System.String - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzEnvironment - - Name - - Specifies the name of the environment to modify. - - System.String - - System.String - - - None - - - ARMEndpoint - - The Azure Resource Manager endpoint. - - System.String - - System.String - - - None - - - AzureKeyVaultDnsSuffix - - Dns suffix of Azure Key Vault service. Example is vault-int.azure-int.net - - System.String - - System.String - - - None - - - AzureKeyVaultServiceEndpointResourceId - - Resource identifier of Azure Key Vault data service that is the recipient of the requested token. - - System.String - - System.String - - - None - - - DataLakeAudience - - The audience for tokens authenticating with the AD Data Lake services Endpoint. - - System.String - - System.String - - - None - - - BatchEndpointResourceId - - The resource identifier of the Azure Batch service that is the recipient of the requested token - - System.String - - System.String - - - None - - - AzureOperationalInsightsEndpointResourceId - - The audience for tokens authenticating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - AzureOperationalInsightsEndpoint - - The endpoint to use when communicating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - StorageEndpoint - - Specifies the endpoint for storage (blob, table, queue, and file) access. - - System.String - - System.String - - - None - - - AzureAnalysisServicesEndpointResourceId - - The resource identifier of the Azure Analysis Services resource. - - System.String - - System.String - - - None - - - AzureAnalysisServicesEndpointSuffix - - The endpoint to use when communicating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - AzureAttestationServiceEndpointResourceId - - The The resource identifier of the Azure Attestation service that is the recipient of the requested token. - - System.String - - System.String - - - None - - - AzureAttestationServiceEndpointSuffix - - Dns suffix of Azure Attestation service. - - System.String - - System.String - - - None - - - AzureSynapseAnalyticsEndpointResourceId - - The The resource identifier of the Azure Synapse Analytics that is the recipient of the requested token. - - System.String - - System.String - - - None - - - AzureSynapseAnalyticsEndpointSuffix - - Dns suffix of Azure Synapse Analytics. - - System.String - - System.String - - - None - - - ContainerRegistryEndpointSuffix - - Suffix of Azure Container Registry. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ActiveDirectoryEndpoint - - Specifies the base authority for Azure Active Directory authentication. - - System.String - - System.String - - - None - - - ActiveDirectoryServiceEndpointResourceId - - Specifies the audience for tokens that authenticate requests to Azure Resource Manager or Service Management (RDFE) endpoints. - - System.String - - System.String - - - None - - - AdTenant - - Specifies the default Active Directory tenant. - - System.String - - System.String - - - None - - - ARMEndpoint - - The Azure Resource Manager endpoint. - - System.String - - System.String - - - None - - - AzureAnalysisServicesEndpointResourceId - - The resource identifier of the Azure Analysis Services resource. - - System.String - - System.String - - - None - - - AzureAnalysisServicesEndpointSuffix - - The endpoint to use when communicating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - AzureAttestationServiceEndpointResourceId - - The The resource identifier of the Azure Attestation service that is the recipient of the requested token. - - System.String - - System.String - - - None - - - AzureAttestationServiceEndpointSuffix - - Dns suffix of Azure Attestation service. - - System.String - - System.String - - - None - - - AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix - - Dns Suffix of Azure Data Lake Analytics job and catalog services - - System.String - - System.String - - - None - - - AzureDataLakeStoreFileSystemEndpointSuffix - - Dns Suffix of Azure Data Lake Store FileSystem. Example: azuredatalake.net - - System.String - - System.String - - - None - - - AzureKeyVaultDnsSuffix - - Dns suffix of Azure Key Vault service. Example is vault-int.azure-int.net - - System.String - - System.String - - - None - - - AzureKeyVaultServiceEndpointResourceId - - Resource identifier of Azure Key Vault data service that is the recipient of the requested token. - - System.String - - System.String - - - None - - - AzureOperationalInsightsEndpoint - - The endpoint to use when communicating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - AzureOperationalInsightsEndpointResourceId - - The audience for tokens authenticating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - AzureSynapseAnalyticsEndpointResourceId - - The The resource identifier of the Azure Synapse Analytics that is the recipient of the requested token. - - System.String - - System.String - - - None - - - AzureSynapseAnalyticsEndpointSuffix - - Dns suffix of Azure Synapse Analytics. - - System.String - - System.String - - - None - - - BatchEndpointResourceId - - The resource identifier of the Azure Batch service that is the recipient of the requested token - - System.String - - System.String - - - None - - - ContainerRegistryEndpointSuffix - - Suffix of Azure Container Registry. - - System.String - - System.String - - - None - - - DataLakeAudience - - The audience for tokens authenticating with the AD Data Lake services Endpoint. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnableAdfsAuthentication - - Indicates that Active Directory Federation Services (ADFS) on-premise authentication is allowed. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - GalleryEndpoint - - Specifies the endpoint for the Azure Resource Manager gallery of deployment templates. The parameter is to set the value to `GalleryUrl` of `PSAzureEnvironment`. As `GalleryUrl` is removed from ArmMetadata, Azure PowerShell will no longer provide for the value and so it is not recommended to set `GalleryEndpoint` anymore. - - System.String - - System.String - - - None - - - GraphAudience - - The audience for tokens authenticating with the AD Graph Endpoint. - - System.String - - System.String - - - None - - - GraphEndpoint - - Specifies the URL for Graph (Active Directory metadata) requests. - - System.String - - System.String - - - None - - - ManagementPortalUrl - - Specifies the URL for the Management Portal. - - System.String - - System.String - - - None - - - MicrosoftGraphEndpointResourceId - - The resource identifier of Microsoft Graph - - System.String - - System.String - - - None - - - MicrosoftGraphUrl - - Microsoft Graph Url - - System.String - - System.String - - - None - - - Name - - Specifies the name of the environment to modify. - - System.String - - System.String - - - None - - - PublishSettingsFileUrl - - Specifies the URL from which .publishsettings files can be downloaded. - - System.String - - System.String - - - None - - - ResourceManagerEndpoint - - Specifies the URL for Azure Resource Manager requests. - - System.String - - System.String - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - ServiceEndpoint - - Specifies the endpoint for Service Management (RDFE) requests. - - System.String - - System.String - - - None - - - SqlDatabaseDnsSuffix - - Specifies the domain-name suffix for Azure SQL Database servers. - - System.String - - System.String - - - None - - - StorageEndpoint - - Specifies the endpoint for storage (blob, table, queue, and file) access. - - System.String - - System.String - - - None - - - TrafficManagerDnsSuffix - - Specifies the domain-name suffix for Azure Traffic Manager services. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - System.Management.Automation.SwitchParameter - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSAzureEnvironment - - - - - - - - - - - - - - ----- Example 1: Creating and modifying a new environment ----- - Add-AzEnvironment -Name TestEnvironment ` - -ActiveDirectoryEndpoint TestADEndpoint ` - -ActiveDirectoryServiceEndpointResourceId TestADApplicationId ` - -ResourceManagerEndpoint TestRMEndpoint ` - -GalleryEndpoint TestGalleryEndpoint ` - -GraphEndpoint TestGraphEndpoint - -Name Resource Manager Url ActiveDirectory Authority ----- -------------------- ------------------------- -TestEnvironment TestRMEndpoint TestADEndpoint/ - -Set-AzEnvironment -Name TestEnvironment ` - -ActiveDirectoryEndpoint NewTestADEndpoint ` - -GraphEndpoint NewTestGraphEndpoint | Format-List - -Name : TestEnvironment -EnableAdfsAuthentication : False -ActiveDirectoryServiceEndpointResourceId : TestADApplicationId -AdTenant : -GalleryUrl : TestGalleryEndpoint -ManagementPortalUrl : -ServiceManagementUrl : -PublishSettingsFileUrl : -ResourceManagerUrl : TestRMEndpoint -SqlDatabaseDnsSuffix : -StorageEndpointSuffix : -ActiveDirectoryAuthority : NewTestADEndpoint -GraphUrl : NewTestGraphEndpoint -GraphEndpointResourceId : -TrafficManagerDnsSuffix : -AzureKeyVaultDnsSuffix : -AzureDataLakeStoreFileSystemEndpointSuffix : -AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix : -AzureKeyVaultServiceEndpointResourceId : -BatchEndpointResourceId : -AzureOperationalInsightsEndpoint : -AzureOperationalInsightsEndpointResourceId : -AzureAttestationServiceEndpointSuffix : -AzureAttestationServiceEndpointResourceId : -AzureSynapseAnalyticsEndpointSuffix : -AzureSynapseAnalyticsEndpointResourceId : - - In this example we are creating a new Azure environment with sample endpoints using Add-AzEnvironment, and then we are changing the value of the ActiveDirectoryEndpoint and GraphEndpoint attributes of the created environment using the cmdlet Set-AzEnvironment. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/set-azenvironment - - - Add-AzEnvironment - - - - Get-AzEnvironment - - - - Remove-AzEnvironment - - - - - - - Uninstall-AzureRm - Uninstall - AzureRm - - Removes all AzureRm modules from a machine. - - - - Removes all AzureRm modules from a machine. - - - - Uninstall-AzureRm - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Return list of Modules removed if specified. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Return list of Modules removed if specified. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.String - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Uninstall-AzureRm - - Running this command will remove all AzureRm modules from the machine for the version of PowerShell in which the cmdlet is run. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/uninstall-azurerm - - - - - - Update-AzConfig - Update - AzConfig - - Updates the configs of Azure PowerShell. - - - - Updates the configs of Azure PowerShell. Depending on which config to update, you may specify the scope where the config is persisted and to which module or cmdlet it applies to. - > [!NOTE] > It is discouraged to update configs in multiple PowerShell processes. Either do it in one process, or make sure the updates are at Process scope (`-Scope Process`) to avoid unexpected side-effects. - - - - Update-AzConfig - - AppliesTo - - Specifies what part of Azure PowerShell the config applies to. Possible values are: - "Az": the config applies to all modules and cmdlets of Azure PowerShell. - - Module name: the config applies to a certain module of Azure PowerShell. - For example, "Az.Storage". - Cmdlet name: the config applies to a certain cmdlet of Azure PowerShell. For example, "Get-AzKeyVault". If not specified, when getting or clearing configs, it defaults to all the above; when updating, it defaults to "Az". - - System.String - - System.String - - - None - - - CheckForUpgrade - - When enabled, Azure PowerShell will check for updates automatically and display a hint message when an update is available. The default value is true. - - System.Boolean - - System.Boolean - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultSubscriptionForLogin - - Subscription name or GUID. Sets the default context for Azure PowerShell when logging in without specifying a subscription. - - System.String - - System.String - - - None - - - DisableInstanceDiscovery - - Set it to true to disable both instance discovery and authority validation. This functionality is intended for use in scenarios where the metadata endpoint cannot be reached, such as in private clouds or Azure Stack. The process of instance discovery entails retrieving authority metadata from https://login.microsoft.com/ to validate the authority. By setting this to true, the validation of the authority is disabled. As a result, it is crucial to ensure that the configured authority host is valid and trustworthy. - - System.Boolean - - System.Boolean - - - None - - - DisplayBreakingChangeWarning - - Controls if warning messages for breaking changes are displayed or suppressed. When enabled, a breaking change warning is displayed when executing cmdlets with breaking changes in a future release. - - System.Boolean - - System.Boolean - - - None - - - DisplayRegionIdentified - - When enabled, Azure PowerShell displays recommendations on regions which may reduce your costs. - - System.Boolean - - System.Boolean - - - None - - - DisplaySecretsWarning - - When enabled, a warning message will be displayed when the cmdlet output contains secrets. Learn more at https://go.microsoft.com/fwlink/?linkid=2258844 - - System.Boolean - - System.Boolean - - - None - - - DisplaySurveyMessage - - When enabled, you are prompted infrequently to participate in user experience surveys for Azure PowerShell. - - System.Boolean - - System.Boolean - - - None - - - EnableDataCollection - - When enabled, Azure PowerShell cmdlets send telemetry data to Microsoft to improve the customer experience. For more information, see our privacy statement: https://aka.ms/privacy - - System.Boolean - - System.Boolean - - - None - - - EnableErrorRecordsPersistence - - When enabled, error records will be written to ~/.Azure/ErrorRecords. - - System.Boolean - - System.Boolean - - - None - - - EnableLoginByWam - - [Preview] When enabled, Web Account Manager (WAM) will be the default interactive login experience. It will fall back to using the browser if the platform does not support WAM. Note that this feature is under preview. Microsoft Account (MSA) is currently not supported. Feel free to reach out to Azure PowerShell team if you have any feedbacks: https://aka.ms/azpsissue - - System.Boolean - - System.Boolean - - - None - - - LoginExperienceV2 - - Only active when authenticating interactively, allows the user to choose the subscription and tenant used in subsequent commands. Possible values ad 'On' (Default) and 'Off'. 'On' requires user's input. 'Off' will use the first tenant and subscription returned by Azure, can change without notice and lead to command execution in an unwanted context (not recommended). - - - On - Off - - Microsoft.Azure.Commands.Common.Authentication.Config.Models.LoginExperienceConfig - - Microsoft.Azure.Commands.Common.Authentication.Config.Models.LoginExperienceConfig - - - None - - - Scope - - Determines the scope of config changes, for example, whether changes apply only to the current process, or to all sessions started by this user. By default it is CurrentUser. - - - CurrentUser - Process - Default - Environment - - Microsoft.Azure.PowerShell.Common.Config.ConfigScope - - Microsoft.Azure.PowerShell.Common.Config.ConfigScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AppliesTo - - Specifies what part of Azure PowerShell the config applies to. Possible values are: - "Az": the config applies to all modules and cmdlets of Azure PowerShell. - - Module name: the config applies to a certain module of Azure PowerShell. - For example, "Az.Storage". - Cmdlet name: the config applies to a certain cmdlet of Azure PowerShell. For example, "Get-AzKeyVault". If not specified, when getting or clearing configs, it defaults to all the above; when updating, it defaults to "Az". - - System.String - - System.String - - - None - - - CheckForUpgrade - - When enabled, Azure PowerShell will check for updates automatically and display a hint message when an update is available. The default value is true. - - System.Boolean - - System.Boolean - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultSubscriptionForLogin - - Subscription name or GUID. Sets the default context for Azure PowerShell when logging in without specifying a subscription. - - System.String - - System.String - - - None - - - DisableInstanceDiscovery - - Set it to true to disable both instance discovery and authority validation. This functionality is intended for use in scenarios where the metadata endpoint cannot be reached, such as in private clouds or Azure Stack. The process of instance discovery entails retrieving authority metadata from https://login.microsoft.com/ to validate the authority. By setting this to true, the validation of the authority is disabled. As a result, it is crucial to ensure that the configured authority host is valid and trustworthy. - - System.Boolean - - System.Boolean - - - None - - - DisplayBreakingChangeWarning - - Controls if warning messages for breaking changes are displayed or suppressed. When enabled, a breaking change warning is displayed when executing cmdlets with breaking changes in a future release. - - System.Boolean - - System.Boolean - - - None - - - DisplayRegionIdentified - - When enabled, Azure PowerShell displays recommendations on regions which may reduce your costs. - - System.Boolean - - System.Boolean - - - None - - - DisplaySecretsWarning - - When enabled, a warning message will be displayed when the cmdlet output contains secrets. Learn more at https://go.microsoft.com/fwlink/?linkid=2258844 - - System.Boolean - - System.Boolean - - - None - - - DisplaySurveyMessage - - When enabled, you are prompted infrequently to participate in user experience surveys for Azure PowerShell. - - System.Boolean - - System.Boolean - - - None - - - EnableDataCollection - - When enabled, Azure PowerShell cmdlets send telemetry data to Microsoft to improve the customer experience. For more information, see our privacy statement: https://aka.ms/privacy - - System.Boolean - - System.Boolean - - - None - - - EnableErrorRecordsPersistence - - When enabled, error records will be written to ~/.Azure/ErrorRecords. - - System.Boolean - - System.Boolean - - - None - - - EnableLoginByWam - - [Preview] When enabled, Web Account Manager (WAM) will be the default interactive login experience. It will fall back to using the browser if the platform does not support WAM. Note that this feature is under preview. Microsoft Account (MSA) is currently not supported. Feel free to reach out to Azure PowerShell team if you have any feedbacks: https://aka.ms/azpsissue - - System.Boolean - - System.Boolean - - - None - - - LoginExperienceV2 - - Only active when authenticating interactively, allows the user to choose the subscription and tenant used in subsequent commands. Possible values ad 'On' (Default) and 'Off'. 'On' requires user's input. 'Off' will use the first tenant and subscription returned by Azure, can change without notice and lead to command execution in an unwanted context (not recommended). - - Microsoft.Azure.Commands.Common.Authentication.Config.Models.LoginExperienceConfig - - Microsoft.Azure.Commands.Common.Authentication.Config.Models.LoginExperienceConfig - - - None - - - Scope - - Determines the scope of config changes, for example, whether changes apply only to the current process, or to all sessions started by this user. By default it is CurrentUser. - - Microsoft.Azure.PowerShell.Common.Config.ConfigScope - - Microsoft.Azure.PowerShell.Common.Config.ConfigScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.Boolean - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSConfig - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Update-AzConfig -DefaultSubscriptionForLogin "Name of subscription" - -Key Value Applies To Scope Help Message ---- ----- ---------- ----- ------------ -DefaultSubscriptionForLogin Name of subscription Az CurrentUser Subscription name or GUID. Sets the default context for Azure PowerShell when lo… - - Sets the "DefaultSubscriptionForLogin" config as "Name of subscription". When `Connect-AzAccount` the specified subscription will be selected as the default subscription. - - - - - - -------------------------- Example 2 -------------------------- - Update-AzConfig -DisplayBreakingChangeWarning $false -AppliesTo "Az.KeyVault" - -Key Value Applies To Scope Help Message ---- ----- ---------- ----- ------------ -DisplayBreakingChangeWarning False Az.KeyVault CurrentUser Controls if warning messages for breaking changes are displayed or suppressed. When enabled,… - - Sets the "DisplayBreakingChangeWarnings" config as "$false" for "Az.KeyVault" module. This prevents all the warning messages for upcoming breaking changes in Az.KeyVault module from prompting. - - - - - - -------------------------- Example 3 -------------------------- - Update-AzConfig -EnableDataCollection $true - -Key Value Applies To Scope Help Message ---- ----- ---------- ----- ------------ -EnableDataCollection True Az CurrentUser When enabled, Azure PowerShell cmdlets send telemetry data to Microsoft to improve the customer experi… - - Sets the "EnableDataCollection" config as "$true". This enables sending the telemetry data. Setting this config is equivalent to `Enable-AzDataCollection` and `Disable-AzDataCollection`. - - - - - - -------------------------- Example 4 -------------------------- - Update-AzConfig -DisplaySecretsWarning $true - -Key Value Applies To Scope Help Message ---- ----- ---------- ----- ------------ -DisplaySecretsWarning True Az CurrentUser When enabled, a warning message for secrets redaction will be displ… - - Sets the "DisplaySecretsWarning" config as "$true". This enables the secrets detection during the cmdlet execution and displays a warning message if any secrets are found in the output. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/update-azconfig - - - - \ No newline at end of file diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Common.Share.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Common.Share.dll deleted file mode 100644 index 55185ba74cd7..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Common.Share.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Common.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Common.dll deleted file mode 100644 index d5609cf9109f..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Common.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Storage.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Storage.dll deleted file mode 100644 index 0363dbdf57d8..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Storage.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Strategies.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Strategies.dll deleted file mode 100644 index ffd2dd62cda8..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Strategies.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Rest.ClientRuntime.Azure.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Rest.ClientRuntime.Azure.dll deleted file mode 100644 index 1d99c7015912..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Rest.ClientRuntime.Azure.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Rest.ClientRuntime.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Rest.ClientRuntime.dll deleted file mode 100644 index a4fca7488baf..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Rest.ClientRuntime.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.WindowsAzure.Storage.dll b/Modules/Az.Accounts/4.0.2/Microsoft.WindowsAzure.Storage.dll deleted file mode 100644 index 70c5ed6806c6..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.WindowsAzure.Storage.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/PSGetModuleInfo.xml b/Modules/Az.Accounts/4.0.2/PSGetModuleInfo.xml deleted file mode 100644 index e5c37af624ce..000000000000 --- a/Modules/Az.Accounts/4.0.2/PSGetModuleInfo.xml +++ /dev/null @@ -1,204 +0,0 @@ - - - - Microsoft.PowerShell.Commands.PSRepositoryItemInfo - System.Management.Automation.PSCustomObject - System.Object - - - Az.Accounts - 4.0.2 - Module - Microsoft Azure PowerShell - Accounts credential management cmdlets for Azure Resource Manager in Windows PowerShell and PowerShell Core._x000D__x000A__x000D__x000A_For more information on account credential management, please visit the following: https://learn.microsoft.com/powershell/azure/authenticate-azureps - Microsoft Corporation - azure-sdk - Microsoft Corporation. All rights reserved. -
2025-01-15T06:24:11-05:00
- - - https://aka.ms/azps-license - https://github.com/Azure/azure-powershell - - - - System.Object[] - System.Array - System.Object - - - Azure - ResourceManager - ARM - Accounts - Authentication - Environment - Subscription - PSModule - PSEdition_Core - PSEdition_Desktop - - - - - System.Collections.Hashtable - System.Object - - - - RoleCapability - - - - - - - Function - - - - Cmdlet - - - - Disable-AzDataCollection - Disable-AzContextAutosave - Enable-AzDataCollection - Enable-AzContextAutosave - Remove-AzEnvironment - Get-AzEnvironment - Set-AzEnvironment - Add-AzEnvironment - Get-AzSubscription - Connect-AzAccount - Get-AzContext - Set-AzContext - Import-AzContext - Save-AzContext - Get-AzTenant - Send-Feedback - Resolve-AzError - Select-AzContext - Rename-AzContext - Remove-AzContext - Clear-AzContext - Disconnect-AzAccount - Get-AzContextAutosaveSetting - Set-AzDefault - Get-AzDefault - Clear-AzDefault - Register-AzModule - Enable-AzureRmAlias - Disable-AzureRmAlias - Uninstall-AzureRm - Invoke-AzRestMethod - Get-AzAccessToken - Open-AzSurveyLink - Get-AzConfig - Update-AzConfig - Clear-AzConfig - Export-AzConfig - Import-AzConfig - - - - - DscResource - - - - Workflow - - - - Command - - - - Disable-AzDataCollection - Disable-AzContextAutosave - Enable-AzDataCollection - Enable-AzContextAutosave - Remove-AzEnvironment - Get-AzEnvironment - Set-AzEnvironment - Add-AzEnvironment - Get-AzSubscription - Connect-AzAccount - Get-AzContext - Set-AzContext - Import-AzContext - Save-AzContext - Get-AzTenant - Send-Feedback - Resolve-AzError - Select-AzContext - Rename-AzContext - Remove-AzContext - Clear-AzContext - Disconnect-AzAccount - Get-AzContextAutosaveSetting - Set-AzDefault - Get-AzDefault - Clear-AzDefault - Register-AzModule - Enable-AzureRmAlias - Disable-AzureRmAlias - Uninstall-AzureRm - Invoke-AzRestMethod - Get-AzAccessToken - Open-AzSurveyLink - Get-AzConfig - Update-AzConfig - Clear-AzConfig - Export-AzConfig - Import-AzConfig - - - - - - - * Fixed unsigned dll:_x000D__x000A_ - 'System.Buffers.dll'_x000D__x000A_ - 'System.Memory.dll' - - - - - https://www.powershellgallery.com/api/v2 - PSGallery - NuGet - - - System.Management.Automation.PSCustomObject - System.Object - - - Microsoft Corporation. All rights reserved. - Microsoft Azure PowerShell - Accounts credential management cmdlets for Azure Resource Manager in Windows PowerShell and PowerShell Core._x000D__x000A__x000D__x000A_For more information on account credential management, please visit the following: https://learn.microsoft.com/powershell/azure/authenticate-azureps - True - * Fixed unsigned dll:_x000D__x000A_ - 'System.Buffers.dll'_x000D__x000A_ - 'System.Memory.dll' - True - True - 13034220 - 540474261 - 9958477 - 1/15/2025 6:24:11 AM -05:00 - 1/15/2025 6:24:11 AM -05:00 - 1/30/2025 5:40:00 PM -05:00 - Azure ResourceManager ARM Accounts Authentication Environment Subscription PSModule PSEdition_Core PSEdition_Desktop PSCmdlet_Disable-AzDataCollection PSCommand_Disable-AzDataCollection PSCmdlet_Disable-AzContextAutosave PSCommand_Disable-AzContextAutosave PSCmdlet_Enable-AzDataCollection PSCommand_Enable-AzDataCollection PSCmdlet_Enable-AzContextAutosave PSCommand_Enable-AzContextAutosave PSCmdlet_Remove-AzEnvironment PSCommand_Remove-AzEnvironment PSCmdlet_Get-AzEnvironment PSCommand_Get-AzEnvironment PSCmdlet_Set-AzEnvironment PSCommand_Set-AzEnvironment PSCmdlet_Add-AzEnvironment PSCommand_Add-AzEnvironment PSCmdlet_Get-AzSubscription PSCommand_Get-AzSubscription PSCmdlet_Connect-AzAccount PSCommand_Connect-AzAccount PSCmdlet_Get-AzContext PSCommand_Get-AzContext PSCmdlet_Set-AzContext PSCommand_Set-AzContext PSCmdlet_Import-AzContext PSCommand_Import-AzContext PSCmdlet_Save-AzContext PSCommand_Save-AzContext PSCmdlet_Get-AzTenant PSCommand_Get-AzTenant PSCmdlet_Send-Feedback PSCommand_Send-Feedback PSCmdlet_Resolve-AzError PSCommand_Resolve-AzError PSCmdlet_Select-AzContext PSCommand_Select-AzContext PSCmdlet_Rename-AzContext PSCommand_Rename-AzContext PSCmdlet_Remove-AzContext PSCommand_Remove-AzContext PSCmdlet_Clear-AzContext PSCommand_Clear-AzContext PSCmdlet_Disconnect-AzAccount PSCommand_Disconnect-AzAccount PSCmdlet_Get-AzContextAutosaveSetting PSCommand_Get-AzContextAutosaveSetting PSCmdlet_Set-AzDefault PSCommand_Set-AzDefault PSCmdlet_Get-AzDefault PSCommand_Get-AzDefault PSCmdlet_Clear-AzDefault PSCommand_Clear-AzDefault PSCmdlet_Register-AzModule PSCommand_Register-AzModule PSCmdlet_Enable-AzureRmAlias PSCommand_Enable-AzureRmAlias PSCmdlet_Disable-AzureRmAlias PSCommand_Disable-AzureRmAlias PSCmdlet_Uninstall-AzureRm PSCommand_Uninstall-AzureRm PSCmdlet_Invoke-AzRestMethod PSCommand_Invoke-AzRestMethod PSCmdlet_Get-AzAccessToken PSCommand_Get-AzAccessToken PSCmdlet_Open-AzSurveyLink PSCommand_Open-AzSurveyLink PSCmdlet_Get-AzConfig PSCommand_Get-AzConfig PSCmdlet_Update-AzConfig PSCommand_Update-AzConfig PSCmdlet_Clear-AzConfig PSCommand_Clear-AzConfig PSCmdlet_Export-AzConfig PSCommand_Export-AzConfig PSCmdlet_Import-AzConfig PSCommand_Import-AzConfig PSIncludes_Cmdlet - False - 2025-01-30T17:40:00Z - 4.0.2 - Microsoft Corporation - false - Module - Az.Accounts.nuspec|Accounts.format.ps1xml|Az.Accounts.psm1|Microsoft.Azure.PowerShell.AssemblyLoading.dll|Microsoft.Azure.PowerShell.Authenticators.dll|Microsoft.Azure.PowerShell.Clients.KeyVault.dll|Microsoft.Azure.PowerShell.Clients.Storage.Management.dll|Microsoft.Azure.PowerShell.Common.Share.dll|Microsoft.WindowsAzure.Storage.dll|lib\netfx\System.Reflection.DispatchProxy.dll|lib\netfx\System.Xml.ReaderWriter.dll|lib\netstandard2.0\Microsoft.Identity.Client.Broker.dll|lib\netstandard2.0\Microsoft.IdentityModel.Abstractions.dll|lib\netstandard2.0\System.Buffers.dll|lib\netstandard2.0\System.Net.Http.WinHttpHandler.dll|lib\netstandard2.0\System.Security.Principal.Windows.dll|PostImportScripts\LoadAuthenticators.ps1|Accounts.generated.format.ps1xml|FuzzySharp.dll|Microsoft.Azure.PowerShell.Authentication.Abstractions.dll|Microsoft.Azure.PowerShell.Clients.Aks.dll|Microsoft.Azure.PowerShell.Clients.Monitor.dll|Microsoft.Azure.PowerShell.Clients.Websites.dll|Microsoft.Azure.PowerShell.Storage.dll|en-US\about_az.help.txt|lib\netfx\System.Runtime.CompilerServices.Unsafe.dll|lib\netstandard2.0\Azure.Core.dll|lib\netstandard2.0\Microsoft.Identity.Client.dll|lib\netstandard2.0\msalruntime.dll|lib\netstandard2.0\System.ClientModel.dll|lib\netstandard2.0\System.Private.ServiceModel.dll|lib\netstandard2.0\System.ServiceModel.Primitives.dll|StartupScripts\AzError.ps1|Accounts.types.ps1xml|Hyak.Common.dll|Microsoft.Azure.PowerShell.Authentication.dll|Microsoft.Azure.PowerShell.Clients.Authorization.dll|Microsoft.Azure.PowerShell.Clients.Network.dll|Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll|Microsoft.Azure.PowerShell.Strategies.dll|lib\netfx\Newtonsoft.Json.dll|lib\netfx\System.Security.Cryptography.Cng.dll|lib\netstandard2.0\Azure.Identity.Broker.dll|lib\netstandard2.0\Microsoft.Identity.Client.Extensions.Msal.dll|lib\netstandard2.0\msalruntime_arm64.dll|lib\netstandard2.0\System.Memory.Data.dll|lib\netstandard2.0\System.Security.AccessControl.dll|lib\netstandard2.0\System.Text.Json.dll|StartupScripts\InitializeAssemblyResolver.ps1|Microsoft.ApplicationInsights.dll|Microsoft.Azure.PowerShell.Authentication.ResourceManager.dll|Microsoft.Azure.PowerShell.Clients.Compute.dll|Microsoft.Azure.PowerShell.Clients.PolicyInsights.dll|Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll-Help.xml|Microsoft.Rest.ClientRuntime.Azure.dll|lib\netfx\System.Diagnostics.DiagnosticSource.dll|lib\netfx\System.Security.Cryptography.ProtectedData.dll|lib\netstandard2.0\Azure.Identity.dll|lib\netstandard2.0\Microsoft.Identity.Client.NativeInterop.dll|lib\netstandard2.0\msalruntime_x005F_x86.dll|lib\netstandard2.0\System.Memory.dll|lib\netstandard2.0\System.Security.Permissions.dll|lib\netstandard2.0\System.Threading.Tasks.Extensions.dll|StartupScripts\InitializePSStyle.ps1|Az.Accounts.psd1|Microsoft.Azure.Common.dll|Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext.dll|Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll|Microsoft.Azure.PowerShell.Clients.ResourceManager.dll|Microsoft.Azure.PowerShell.Common.dll|Microsoft.Rest.ClientRuntime.dll|lib\netfx\System.Numerics.Vectors.dll|lib\netfx\System.Text.Encodings.Web.dll|lib\netstandard2.0\Microsoft.Bcl.AsyncInterfaces.dll|.signature.p7s - 17a2feff-488b-47f9-8729-e2cec094624c - 5.1 - 4.7.2 - Microsoft Corporation - - - C:\GitHub\CIPP Workspace\CIPP-API\Modules\Az.Accounts\4.0.2 -
-
-
diff --git a/Modules/Az.Accounts/4.0.2/PostImportScripts/LoadAuthenticators.ps1 b/Modules/Az.Accounts/4.0.2/PostImportScripts/LoadAuthenticators.ps1 deleted file mode 100644 index aca0ecfa3ec4..000000000000 --- a/Modules/Az.Accounts/4.0.2/PostImportScripts/LoadAuthenticators.ps1 +++ /dev/null @@ -1,223 +0,0 @@ -if ($PSEdition -eq 'Desktop') { - try { - [Microsoft.Azure.Commands.Profile.Utilities.CustomAssemblyResolver]::Initialize() - } catch {} -} -# SIG # Begin signature block -# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBn8ROze2QLH/c6 -# GtPhR/BPLgOtmjkNhcq+fFmu16VcrqCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIC8M -# Xy0xGn+XGeN5xhSUhsVdQGTLtuHOS5+U3UgQ1k53MEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEALdJPpqLqUR5rxbPsLwHlhGIE5IfE04bT0i6M -# A+JWd4onK2QnJhrnr3dWIqryYf+DHGsZm88BsGsR2aczO7tUEIK03pJjcFFkTw51 -# p0AavUC7elmI5U55yGDD0DgF/n67VHyb5l8cWEstR41MTBRjKoKME6IV+Y0k405p -# giIrtXCD5bujIOxYYFfLpWQg+6VWIPgib22ZTP5zkhIfHvUmREgucfdp4BSMSFWr -# T7oVonVUO602DGre3GTt1Plg3NDnLcrFwjKzGDaTEUKbVhWAiTyi0wkj3LHnJuzr -# eZJucsTggBXKiB1itOLwsk/a/1oYrVII5SlNQDJTTtna5KWFEaGCF7AwghesBgor -# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCDyw0ExQoodPuqNnPNw+koj8sF80eOVbC3S -# rg/bpUoMhQIGZ2K0lkXaGBMyMDI1MDExNTA1MDYwNC42MDVaMASAAgH0oIHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjozNjA1LTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB91gg -# dQTK+8L0AAEAAAH3MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzEwNloXDTI1MTAyMjE4MzEwNlowgdMxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv -# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs -# ZCBUU1MgRVNOOjM2MDUtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA -# 0OdHTBNom6/uXKaEKP9rPITkT6QxF11tjzB0Nk1byDpPrFTHha3hxwSdTcr8Y0a3 -# k6EQlwqy6ROz42e0R5eDW+dCoQapipDIFUOYp3oNuqwX/xepATEkY17MyXFx6rQW -# 2NcWUJW3Qo2AuJ0HOtblSpItQZPGmHnGqkt/DB45Fwxk6VoSvxNcQKhKETkuzrt8 -# U6DRccQm1FdhmPKgDzgcfDPM5o+GnzbiMu6y069A4EHmLMmkecSkVvBmcZ8VnzFH -# TDkGLdpnDV5FXjVObAgbSM0cnqYSGfRp7VGHBRqyoscvR4bcQ+CV9pDjbJ6S5rZn -# 1uA8hRhj09Hs33HRevt4oWAVYGItgEsG+BrCYbpgWMDEIVnAgPZEiPAaI8wBGemE -# 4feEkuz7TAwgkRBcUzLgQ4uvPqRD1A+Jkt26+pDqWYSn0MA8j0zacQk9q/AvciPX -# D9It2ez+mqEzgFRRsJGLtcf9HksvK8Jsd6I5zFShlqi5bpzf1Y4NOiNOh5QwW1pI -# vA5irlal7qFhkAeeeZqmop8+uNxZXxFCQG3R3s5pXW89FiCh9rmXrVqOCwgcXFIJ -# QAQkllKsI+UJqGq9rmRABJz5lHKTFYmFwcM52KWWjNx3z6odwz2h+sxaxewToe9G -# qtDx3/aU+yqNRcB8w0tSXUf+ylN4uk5xHEpLpx+ZNNsCAwEAAaOCAUkwggFFMB0G -# A1UdDgQWBBTfRqQzP3m9PZWuLf1p8/meFfkmmDAfBgNVHSMEGDAWgBSfpxVdAF5i -# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv -# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB -# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw -# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp -# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud -# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF -# AAOCAgEAN0ajafILeL6SQIMIMAXM1Qd6xaoci2mOrpR8vKWyyTsL3b83A7XGLiAb -# QxTrqnXvVWWeNst5YQD8saO+UTgOLJdTdfUADhLXoK+RlwjfndimIJT9MH9tUYXL -# zJXKhZM09ouPwNsrn8YOLIpdAi5TPyN8Cl11OGZSlP9r8JnvomW00AoJ4Pl9rlg0 -# G5lcQknAXqHa9nQdWp1ZxXqNd+0JsKmlR8tcANX33ClM9NnaClJExLQHiKeHUUWt -# qyLMl65TW6wRM7XlF7Y+PTnC8duNWn4uLng+ON/Z39GO6qBj7IEZxoq4o3avEh9b -# a43UU6TgzVZaBm8VaA0wSwUe/pqpTOYFWN62XL3gl/JC2pzfIPxP66XfRLIxafjB -# VXm8KVDn2cML9IvRK02s941Y5+RR4gSAOhLiQQ6A03VNRup+spMa0k+XTPAi+2aM -# H5xa1Zjb/K8u9f9M05U0/bUMJXJDP++ysWpJbVRDiHG7szaca+r3HiUPjQJyQl2N -# iOcYTGV/DcLrLCBK2zG503FGb04N5Kf10XgAwFaXlod5B9eKh95PnXKx2LNBgLwG -# 85anlhhGxxBQ5mFsJGkBn0PZPtAzZyfr96qxzpp2pH9DJJcjKCDrMmZziXazpa5V -# VN36CO1kDU4ABkSYTXOM8RmJXuQm7mUF3bWmj+hjAJb4pz6hT5UwggdxMIIFWaAD -# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD -# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe -# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv -# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy -# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 -# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 -# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu -# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl -# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg -# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I -# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 -# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ -# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy -# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y -# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H -# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB -# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW -# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B -# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB -# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB -# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL -# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv -# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr -# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS -# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq -# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 -# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv -# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak -# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK -# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 -# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ -# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep -# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk -# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg -# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ -# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjozNjA1LTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAb28KDG/xXbNB -# jmM7/nqw3bgrEOaggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDANBgkqhkiG9w0BAQsFAAIFAOsxcu8wIhgPMjAyNTAxMTQyMzM0MDdaGA8yMDI1 -# MDExNTIzMzQwN1owdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA6zFy7wIBADAKAgEA -# AgIH8QIB/zAHAgEAAgIT7DAKAgUA6zLEbwIBADA2BgorBgEEAYRZCgQCMSgwJjAM -# BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB -# CwUAA4IBAQANiVtBcR02aMUmrQOm3fZH5z8Kv3cXQxoQMsDBpAUwsfVnIo5zC8fy -# rLI89mJnl5XvsL1Xzau/AL+hchpOSxzwy59/m0NBf9+wB5PHlLoMRwoXCZPdhIBU -# 6oIzAYCDmqbnds4Z9vk/WfZb1DVtV8a/PONfWW5kkK9SFatAcytSE7iHqLmo7QKT -# voIFfTYp5yM1pBKfRf/G9MbIyl/LEFwk5nqzfS2UTrEGIJlCk8Gkhwj0egu9cBF7 -# pCZPRCzTsEdP8WEmF5lM2YfNsooIPOtbkPTdFazPjc/ZAM1o0+8+X0faslbPoDhi -# rMrYlB0AYzxfGUFRr3eZROEwath81snAMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE -# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc -# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 -# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH3WCB1BMr7wvQAAQAAAfcwDQYJYIZI -# AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG -# 9w0BCQQxIgQgYexMw3nQzZARnPLYDchCeFQuXV2+EcT09hIruqNkxQUwgfoGCyqG -# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCAh2pjaa3ca0ecYuhu60uYHP/IKnPbedbVQ -# J5SoIH5Z4jCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n -# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y -# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz -# AAAB91ggdQTK+8L0AAEAAAH3MCIEIET7apu/ZHmx5ty9r0375MwUGiEHq2YNLtup -# bYJ+SMbQMA0GCSqGSIb3DQEBCwUABIICAJugPMi3d/ycII+6n2Q+a0SS/gUuo0zK -# EJfPOjbMb7+m1lchhj1awpTusSEV/p+fFBfnGke99/NITz7mvyv5VIRWrbpoMiYw -# 48nqhuLPHSt1YuCC9saREHQXJC8OTj5MO6C+NmG3VtLQjmOZ2uFIO03pEQ+c7lbd -# tLACM3gLYYy1NyaAc1MBr7C0LEaQAxDDMihILQGHIMpN14eg9Cgg1cyuNLL79K7o -# Fpdczg3s59m5RFO9APrakN4m8gGBc7Byl69toDmlt1FsmCUneysmZBYiti4y2IjO -# KmRbQ9LuD6Vz2QvpqpRq8aME3m170sEpTuhCfcvpr8bsPAguzASjzswLtwJLTu3q -# peaoPUqUrw8IEzR4EZq6bhDhslTnhfyza1tYOUfSYxYc5m14CVclNFzDLf415h0C -# LMRHF+36JP2SSGz2XjZHejq1FP2dr0lqbkXpPtwrclkkmqye2PHiSpYUEqXcDH0H -# UIkfM+L0gDtgbk9xLqwK4Yu5VR1OXcguUWTCB/qaAVxCR3pJNQOmjRiVRgzmcEXL -# Go2XUnALayyiMs8rqaHZ6bPpgUnbxYB+F9YQHtEU/PjH4uaG1+bVt43tx2eeJLRA -# Wuq0FhKmRfQkVBur0FJ3J4KnJzGu+lqSZABPMYd87RwndX3cFc6IbN0Il+B0bnwr -# N9vCJpIVDC8/ -# SIG # End signature block diff --git a/Modules/Az.Accounts/4.0.2/StartupScripts/AzError.ps1 b/Modules/Az.Accounts/4.0.2/StartupScripts/AzError.ps1 deleted file mode 100644 index 234818bc266a..000000000000 --- a/Modules/Az.Accounts/4.0.2/StartupScripts/AzError.ps1 +++ /dev/null @@ -1,281 +0,0 @@ -function Write-InstallationCheckToFile -{ - Param($installationchecks) - if (Get-Module AzureRM.Profile -ListAvailable -ErrorAction Ignore) - { - Write-Warning ("Both Az and AzureRM modules were detected on this machine. Az and AzureRM modules cannot be imported in the same session or used in the same script or runbook. If you are running PowerShell in an environment you control you can use the 'Uninstall-AzureRm' cmdlet to remove all AzureRm modules from your machine. " + - "If you are running in Azure Automation, take care that none of your runbooks import both Az and AzureRM modules. More information can be found here: https://aka.ms/azps-migration-guide") - } - - $installationchecks.Add("AzSideBySideCheck","true") - try - { - if (Test-Path $pathToInstallationChecks -ErrorAction Ignore) - { - Remove-Item -Path $pathToInstallationChecks -ErrorAction Stop - } - - $pathToInstallDir = Split-Path -Path $pathToInstallationChecks -Parent -ErrorAction Stop - if (Test-Path $pathToInstallDir -ErrorAction Ignore) - { - New-Item -Path $pathToInstallationChecks -ErrorAction Stop -ItemType File -Value ($installationchecks | ConvertTo-Json -ErrorAction Stop) - } - } - catch - { - Write-Verbose "Installation checks failed to write to file." - } -} - -if (!($env:SkipAzInstallationChecks -eq "true")) -{ - $pathToInstallationChecks = Join-Path (Join-Path $HOME ".Azure") "AzInstallationChecks.json" - $installationchecks = @{} - if (!(Test-Path $pathToInstallationChecks -ErrorAction Ignore)) - { - Write-InstallationCheckToFile $installationchecks - } - else - { - try - { - ((Get-Content $pathToInstallationChecks -ErrorAction Stop) | ConvertFrom-Json -ErrorAction Stop).PSObject.Properties | Foreach { $installationchecks[$_.Name] = $_.Value } - } - catch - { - Write-InstallationCheckToFile $installationchecks - } - - if (!$installationchecks.ContainsKey("AzSideBySideCheck")) - { - Write-InstallationCheckToFile $installationchecks - } - } -} - -if (Get-Module AzureRM.profile -ErrorAction Ignore) -{ - Write-Warning ("AzureRM.Profile already loaded. Az and AzureRM modules cannot be imported in the same session or used in the same script or runbook. If you are running PowerShell in an environment you control you can use the 'Uninstall-AzureRm' cmdlet to remove all AzureRm modules from your machine. " + - "If you are running in Azure Automation, take care that none of your runbooks import both Az and AzureRM modules. More information can be found here: https://aka.ms/azps-migration-guide.") - throw ("AzureRM.Profile already loaded. Az and AzureRM modules cannot be imported in the same session or used in the same script or runbook. If you are running PowerShell in an environment you control you can use the 'Uninstall-AzureRm' cmdlet to remove all AzureRm modules from your machine. " + - "If you are running in Azure Automation, take care that none of your runbooks import both Az and AzureRM modules. More information can be found here: https://aka.ms/azps-migration-guide.") -} - -Update-TypeData -AppendPath (Join-Path (Get-Item $PSScriptRoot).Parent.FullName Accounts.types.ps1xml) -ErrorAction Ignore -# SIG # Begin signature block -# MIIoLQYJKoZIhvcNAQcCoIIoHjCCKBoCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDT3s8rOGw0kP8l -# AbYXJ7G9hr2fOKBRtW5xO6fWVEOZvqCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGg0wghoJAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIKR+w/DaLVp8ra2PXQQVXZI6 -# DyW6fyW+fzmibTR/vTxzMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAIkOneLbKAFEt6rSpWu0CknY3JQR45gu/3lZ8V7eK0/Y8ndM1yVDFcd2e -# rGcJMn2Wqt2M7u3V69hgPa73PkAmnNdiJDgFdbRmk2zKtuU9xXrmTahZsvuhYNWq -# BT8bmoH3N3YA1BmKXBbmWprdVV+dnplFNGwyoO0FYnMxN1WadM7n/M95gVduHSx5 -# YzKrmwAY/umW3GLxG9lcBoq7R6ZTfrDj56ubhNqb23V5icOvmz14QBmnBeF9aLVu -# vDtZ3SOxW9OpTc86leDahzD9reKp8IOB62xImCb0TLe0VjFOvrnFsR96tVXRwfFj -# DuA5NaICutwvLqJCOdcvOoCJD9p6K6GCF5cwgheTBgorBgEEAYI3AwMBMYIXgzCC -# F38GCSqGSIb3DQEHAqCCF3AwghdsAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCAiWcBQwhSp7tm0pyvq5/Kxi3N0cs5qdUxirFgR4T5ylgIGZ1reY9Z0 -# GBMyMDI1MDExNTA1MDYwNi4zOTVaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OEQwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHtMIIHIDCCBQigAwIBAgITMwAAAfPFCkOuA8wdMQABAAAB8zANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ2 -# MDJaFw0yNTAzMDUxODQ2MDJaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OEQwMC0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQD+n6ba4SuB9iSO5WMhbngqYAb+z3IfzNpZIWS/sgfX -# hlLYmGnsUtrGX3OVcg+8krJdixuNUMO7ZAOqCZsXUjOz8zcn1aUD5D2r2PhzVKjH -# tivWGgGj4x5wqWe1Qov3vMz8WHsKsfadIlWjfBMnVKVomOybQ7+2jc4afzj2XJQQ -# SmE9jQRoBogDwmqZakeYnIx0EmOuucPr674T6/YaTPiIYlGf+XV2u6oQHAkMG56x -# YPQikitQjjNWHADfBqbBEaqppastxpRNc4id2S1xVQxcQGXjnAgeeVbbPbAoELhb -# w+z3VetRwuEFJRzT6hbWEgvz9LMYPSbioHL8w+ZiWo3xuw3R7fJsqe7pqsnjwvni -# P7sfE1utfi7k0NQZMpviOs//239H6eA6IOVtF8w66ipE71EYrcSNrOGlTm5uqq+s -# yO1udZOeKM0xY728NcGDFqnjuFPbEEm6+etZKftU9jxLCSzqXOVOzdqA8O5Xa3E4 -# 1j3s7MlTF4Q7BYrQmbpxqhTvfuIlYwI2AzeO3OivcezJwBj2FQgTiVHacvMQDgSA -# 7E5vytak0+MLBm0AcW4IPer8A4gOGD9oSprmyAu1J6wFkBrf2Sjn+ieNq6Fx0tWj -# 8Ipg3uQvcug37jSadF6q1rUEaoPIajZCGVk+o5wn6rt+cwdJ39REU43aWCwn0C+X -# xwIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFMNkFfalEVEMjA3ApoUx9qDrDQokMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQDfxByP/NH+79vc3liO4c7nXM/UKFcAm5w6 -# 1FxRxPxCXRXliNjZ7sDqNP0DzUTBU9tS5DqkqRSiIV15j7q8e6elg8/cD3bv0sW4 -# Go9AML4lhA5MBg3wzKdihfJ0E/HIqcHX11mwtbpTiC2sgAUh7+OZnb9TwJE7pbEB -# PJQUxxuCiS5/r0s2QVipBmi/8MEW2eIi4mJ+vHI5DCaAGooT4A15/7oNj9zyzRAB -# TUICNNrS19KfryEN5dh5kqOG4Qgca9w6L7CL+SuuTZi0SZ8Zq65iK2hQ8IMAOVxe -# wCpD4lZL6NDsVNSwBNXOUlsxOAO3G0wNT+cBug/HD43B7E2odVfs6H2EYCZxUS1r -# gReGd2uqQxgQ2wrMuTb5ykO+qd+4nhaf/9SN3getomtQn5IzhfCkraT1KnZF8TI3 -# ye1Z3pner0Cn/p15H7wNwDkBAiZ+2iz9NUEeYLfMGm9vErDVBDRMjGsE/HqqY7QT -# STtDvU7+zZwRPGjiYYUFXT+VgkfdHiFpKw42Xsm0MfL5aOa31FyCM17/pPTIKTRi -# KsDF370SwIwZAjVziD/9QhEFBu9pojFULOZvzuL5iSEJIcqopVAwdbNdroZi2HN8 -# nfDjzJa8CMTkQeSfQsQpKr83OhBmE3MF2sz8gqe3loc05DW8JNvZ328Jps3LJCAL -# t0rQPJYnOzCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNQ -# MIICOAIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjhEMDAtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQBu -# +gYs2LRha5pFO79g3LkfwKRnKKCBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6zGFDTAiGA8yMDI1MDExNTAwNTEy -# NVoYDzIwMjUwMTE2MDA1MTI1WjB3MD0GCisGAQQBhFkKBAExLzAtMAoCBQDrMYUN -# AgEAMAoCAQACAgrMAgH/MAcCAQACAhMJMAoCBQDrMtaNAgEAMDYGCisGAQQBhFkK -# BAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJ -# KoZIhvcNAQELBQADggEBAAZjU3anvEfVORtCvkiaK66qTBCJqkISq3FowLVK6y+h -# QSso9H+Oycd5GS0IhpbNzbDu7ByROhQ/wsz7q8QuEUUS/mzhQQYNUEIwQy9riQao -# YKCraxfy9D4rKjHrDRYNmgsarMXvBw5nBMPcDYgncK902xs2zAvIgLv98wG3YyBb -# XwUEZ4agPJ462fd48Y1Reu10WtkI2OhFWPAVCjM+n8SVdC0C5AlLX+9qzxzId1s7 -# /7ZQn1myOynmO04kICpcJ0pnoGMhSrWe/hPKQby67pptEdzrdVyzmOrUMKA32+AE -# a3PDK5/LbJo0tvigQ7FjGczdh4iKGuGQQxIuRSZi6kwxggQNMIIECQIBATCBkzB8 -# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk -# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1N -# aWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAfPFCkOuA8wdMQABAAAB -# 8zANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEE -# MC8GCSqGSIb3DQEJBDEiBCBzbhj87V4/3v2CtNVbcDzOY/3P1VN5A79ASD464Cxp -# XjCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIBi82TSLtuG4Vkp8wBmJk/T+ -# RAh841sG/aDOwxg6O2LoMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB -# IDIwMTACEzMAAAHzxQpDrgPMHTEAAQAAAfMwIgQg7FOb0fJffGni3GNh+rtRxX3o -# mNES5vUb6EkxuC86BIkwDQYJKoZIhvcNAQELBQAEggIAYym812YaSD/sdVUrTcv7 -# bvYv+h29d3ZCjOm5u5V0xe8bfjcO1ri6wV3rsMOTlQwAyuf4o8HDxt2VTD2BwRUy -# Rbe20O3wi3GcRdJKN8Htjwd8ZfsQ3jLyfVRmLWQOPvl2oNNKvbAkS+9Qt5eoIkG7 -# DO1wDyVWDQLLVBqDoO8grw/RtqaHoBSWXUB9QAPYRhk90kcUZ1qaFhuQNbv3oWJN -# 4gAJNNHpBkMVUjcYAk8m7nLR412caM2TRPs2M5JmYFILI7QMW6qGjyk6u9/JgFdk -# 3nwqfGSuL1/Y3motaZQ+WplENhLKlrvp11mIwQoiaKjJCC5w0F6Bq+nfHwMq1x72 -# 8GU40A98UrzWyaogrI+K4wAwzC1oHIusSmWOtPf05ZvoKoJ0cD5/DUgtgAqyFDOA -# yP/kSMFu1I0d1aHxmvKYoQ+eTrv5pims4cq0VP1cGwqrTLvK1kWTHKHOe4oovoIX -# aarejH8c/6FsxvXm6EBA/bv2R/OF5rEY+pH5Ld3870waI0TiDbjD2lR1fYBEhChl -# DF4IahrmWA0ZbhrWM1HcnzCvsgUMvHg3GStGBzy0BE/kpblaVTf8ZOFJswLXxX9N -# g6Kdabo2o1WCKgP22nqDQm9fGLMThorgS96u5/xaLNkeCbBtH0yyG2pVklzxcM5R -# oSseM1VcqxmxwEIlGLWes0Y= -# SIG # End signature block diff --git a/Modules/Az.Accounts/4.0.2/StartupScripts/InitializeAssemblyResolver.ps1 b/Modules/Az.Accounts/4.0.2/StartupScripts/InitializeAssemblyResolver.ps1 deleted file mode 100644 index 96b2731d9d1f..000000000000 --- a/Modules/Az.Accounts/4.0.2/StartupScripts/InitializeAssemblyResolver.ps1 +++ /dev/null @@ -1,243 +0,0 @@ -$assemblyRootPath = [System.IO.Path]::Combine($PSScriptRoot, "..", "lib") -Write-Debug "Initializing ConditionalAssemblyContext. PSEdition is [$($PSVersionTable.PSEdition)]. PSVersion is [$($PSVersionTable.PSVersion)]." -$conditionalAssemblyContext = [Microsoft.Azure.PowerShell.AssemblyLoading.ConditionalAssemblyContext]::new($PSVersionTable.PSEdition, $PSVersionTable.PSVersion) -Write-Debug "Initializing ConditionalAssemblyProvider. AssemblyRootPath is [$assemblyRootPath]." -[Microsoft.Azure.PowerShell.AssemblyLoading.ConditionalAssemblyProvider]::Initialize($assemblyRootPath, $conditionalAssemblyContext) - -if ($PSEdition -eq 'Desktop') { - try { - [Microsoft.Azure.Commands.Profile.Utilities.CustomAssemblyResolver]::Initialize() - } - catch { - Write-Warning $_ - } -} -else { - try { - Add-Type -Path ([System.IO.Path]::Combine($PSScriptRoot, "..", "Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext.dll")) | Out-Null - Write-Debug "Registering Az shared AssemblyLoadContext." - [Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext.AzAssemblyLoadContextInitializer]::RegisterAzSharedAssemblyLoadContext() - Write-Debug "AssemblyLoadContext registered." - } - catch { - Write-Warning $_ - } -} -# SIG # Begin signature block -# MIIoUgYJKoZIhvcNAQcCoIIoQzCCKD8CAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCAe8RL2QVOwrz6 -# penupFKMe0U4FkbIX5RGfbRRPsEAcqCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIMHo -# fDlPBqmVqK1okjwWVgBBtT7fuKbvz/K2Z2tehrjfMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAmDyoVO02vslwhP88Cl/i4nCB6rCDOLX4Go8H -# xCopEhiPZ4qL1ST7vM27l2eq5wKiYSg0f95p7rTH1LPUWIwdgKwtRmPREQqHbbI3 -# 2XcFtOI/cMw8Nu9x0l/aiSm3ZSWEBzEQtmwRmzZz2UxSGH4lWK22vBcphbCGN6Da -# sIw1zZqZDr4paUt4VRWUDl5gExgtM5hkbpKP6A39d6Z7GbS+ROfZ5+j6bUs/HlHP -# uz2OZ+bvp80bhFNjjmGN7sKwhtwFsjpUid2x3t6Oa6Jw40xjy/vHxo7PgT4uMLWQ -# kNEuTphyMg8pw3JToDDUgJdExUPwbaSRms7Y6gVLSHdOjMSZgqGCF60wghepBgor -# BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCBZ2ikkxIYHsBxzkd4hVEbjTTkwlyvAkT53 -# HPAZdAIfMAIGZ2Lk7HhdGBMyMDI1MDExNTA1MDcwMC4wNDNaMASAAgH0oIHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo1MjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAACAAvX -# qn8bKhdWAAEAAAIAMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzEyMVoXDTI1MTAyMjE4MzEyMVowgdMxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv -# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs -# ZCBUU1MgRVNOOjUyMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA -# r1XaadKkP2TkunoTF573/tF7KJM9Doiv3ccv26mqnUhmv2DM59ikET4WnRfo5biF -# IHc6LqrIeqCgT9fT/Gks5VKO90ZQW2avh/PMHnl0kZfX/I5zdVooXHbdUUkPiZfN -# XszWswmL9UlWo8mzyv9Lp9TAtw/oXOYTAxdYSqOB5Uzz1Q3A8uCpNlumQNDJGDY6 -# cSn0MlYukXklArChq6l+KYrl6r/WnOqXSknABpggSsJ33oL3onmDiN9YUApZwjnN -# h9M6kDaneSz78/YtD/2pGpx9/LXELoazEUFxhyg4KdmoWGNYwdR7/id81geOER69 -# l5dJv71S/mH+Lxb6L692n8uEmAVw6fVvE+c8wjgYZblZCNPAynCnDduRLdk1jswC -# qjqNc3X/WIzA7GGs4HUS4YIrAUx8H2A94vDNiA8AWa7Z/HSwTCyIgeVbldXYM2Bt -# xMKq3kneRoT27NQ7Y7n8ZTaAje7Blfju83spGP/QWYNZ1wYzYVGRyOpdA8Wmxq5V -# 8f5r4HaG9zPcykOyJpRZy+V3RGighFmsCJXAcMziO76HinwCIjImnCFKGJ/IbLjH -# 6J7fJXqRPbg+H6rYLZ8XBpmXBFH4PTakZVYxB/P+EQbL5LNw0ZIM+eufxCljV4O+ -# nHkM+zgSx8+07BVZPBKslooebsmhIcBO0779kehciYMCAwEAAaOCAUkwggFFMB0G -# A1UdDgQWBBSAJSTavgkjKqge5xQOXn35fXd3OjAfBgNVHSMEGDAWgBSfpxVdAF5i -# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv -# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB -# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw -# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp -# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud -# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF -# AAOCAgEAKPCG9njRtIqQ+fuECgxzWMsQOI3HvW7sV9PmEWCCOWlTuGCIzNi3ibdL -# ZS0b2IDHg0yLrtdVuBi3FxVdesIXuzYyofIe/alTBdV4DhijLTXtB7NgOno7G12i -# O3t6jy1hPSquzGLry/2mEZBwIsSoS2D+H+3HCJxPDyhzMFqP+plltPACB/QNwZ7q -# +HGyZv3v8et+rQYg8sF3PTuWeDg3dR/zk1NawJ/dfFCDYlWNeCBCLvNPQBceMYXF -# RFKhcSUws7mFdIDDhZpxqyIKD2WDwFyNIGEezn+nd4kXRupeNEx+eSpJXylRD+1d -# 45hb6PzOIF7BkcPtRtFW2wXgkjLqtTWWlBkvzl2uNfYJ3CPZVaDyMDaaXgO+H6Di -# rsJ4IG9ikId941+mWDejkj5aYn9QN6ROfo/HNHg1timwpFoUivqAFu6irWZFw5V+ -# yLr8FLc7nbMa2lFSixzu96zdnDsPImz0c6StbYyhKSlM3uDRi9UWydSKqnEbtJ6M -# k+YuxvzprkuWQJYWfpPvug+wTnioykVwc0yRVcsd4xMznnnRtZDGMSUEl9tMVneb -# YRshwZIyJTsBgLZmHM7q2TFK/X9944SkIqyY22AcuLe0GqoNfASCIcZtzbZ/zP4l -# T2/N0pDbn2ffAzjZkhI+Qrqr983mQZWwZdr3Tk1MYElDThz2D0MwggdxMIIFWaAD -# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD -# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe -# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv -# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy -# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 -# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 -# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu -# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl -# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg -# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I -# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 -# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ -# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy -# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y -# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H -# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB -# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW -# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B -# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB -# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB -# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL -# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv -# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr -# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS -# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq -# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 -# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv -# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak -# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK -# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 -# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ -# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep -# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk -# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg -# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ -# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo1MjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAjJOfLZb3ivip -# L3sSLlWFbLrWjmSggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDANBgkqhkiG9w0BAQsFAAIFAOsxo0YwIhgPMjAyNTAxMTUwMzAwMjJaGA8yMDI1 -# MDExNjAzMDAyMlowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA6zGjRgIBADAHAgEA -# AgIFOjAHAgEAAgITQjAKAgUA6zL0xgIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor -# BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUA -# A4IBAQAhYJMb9FIZ7OeKocN8yka65cMD9bLiHmBAxOfBpIfr/zOeMxqpBOcrHdZg -# IuB308Ui/Zig1ZL/ffuX5XrGjCctRiuaqPq6xNmx3jiYhgwkv86tL9skdQZkka2L -# jfelJ5HH6OViGj1I1j4X5SQa2phJuhRVVOjYIZzCaBEBtqRswu2MsqR2h+Bg6BTE -# XVOlMdDOdausGU79t4sTzpHgAUDcEin4ZpNQes+5XxSUYRST7t9sMghbkhK0V0k/ -# Nsdlxv+KuglBaPJC1ylpeMaPdvx3Mbgx3xU7zGqwYC1lm2BaBizrsTkP07qKUAkD -# 4I5D9+t73hy+Y/h3YrQQXuzTUiFiMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTACEzMAAAIAC9eqfxsqF1YAAQAAAgAwDQYJYIZIAWUD -# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B -# CQQxIgQgTRTTwJ+LAzJ7l3gH/YeftywXIey6eUDG2AeoS5F4l+8wgfoGCyqGSIb3 -# DQEJEAIvMYHqMIHnMIHkMIG9BCDUyO3sNZ3burBNDGUCV4NfM2gH4aWuRudIk/9K -# Ak/ZJzCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAC -# AAvXqn8bKhdWAAEAAAIAMCIEIBHJJTpFdeGz4Ttmbufp6oDf1lOTIX6loOgqyXbB -# lab+MA0GCSqGSIb3DQEBCwUABIICADvVDzrogX3zxTbMxBMkvxeMpU+Mg4RPqnJc -# kqxTF9zqPtgES8CilMh05/mAPzSHdwBgMGVeK7Rzbf1G7se5mVbKc+m3pFVtv2Ic -# QYTY1/efjzmtwdDI6/puRJO5+08jT/2b43UxrdHacIN+rRqowOTbsvNTN1Rm9pVs -# CCNNPwEXVOkRbKgAKqYIWkimQT/5lvQBYQWe5eCC54Rmxu146mFSqQTELK84PNLR -# bU6YfUQ2+L4Lm3cmC+LF4DKPwC4QEWymrb0PR9B/w5KQNxCR70kdwSkwMc/kMtS0 -# Ae7PbDRraGjQCTQRBNE3Z/JHVADPSkIQIESa9lyq9ClyUvPNwM2B4844Xsb+KFtp -# +ae2jnk3sCnT35TDMYQbppiFSKkfnUe2zOsyEHDvK4khgafr6kKDQHgiPYQDluqt -# hMgc0R8Q3fAlyFPvFrZpClXz+qS/45kJX3SgTPr6Df86iPhGB7+W+XS/FQWN8fI4 -# /AY1vv3YIXEwvoQNyX5q7b8EFEHp5n4abT1QSfTZZYRDU7ecblF4+QL4S0Cq0ARu -# Dvj8MeAGjK8WRjyCQgAfiQKry4ZVUtA8HOKkQa12RnMzP2McOEalFKbY1redXszk -# zLC7Vo0StmN/WWxlZgIYIrTlgTqH9vaWmkjehMvOjMqYct6rTCcNkkKHqdmk01EW -# 2aBwXRx4 -# SIG # End signature block diff --git a/Modules/Az.Accounts/4.0.2/StartupScripts/InitializePSStyle.ps1 b/Modules/Az.Accounts/4.0.2/StartupScripts/InitializePSStyle.ps1 deleted file mode 100644 index 050c5e21c07e..000000000000 --- a/Modules/Az.Accounts/4.0.2/StartupScripts/InitializePSStyle.ps1 +++ /dev/null @@ -1,224 +0,0 @@ -try{ - Write-Debug "Initializing PSStyle." - [Microsoft.WindowsAzure.Commands.Common.PSStyle]::Initialize($Host) -} -catch{ - Write-Warning $_ -} -# SIG # Begin signature block -# MIIoPAYJKoZIhvcNAQcCoIIoLTCCKCkCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAicDUGs8kLtLeW -# rm0RVJ2esSWZX51RAgjtxZX5o7KQQ6CCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGg0wghoJAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIHAO -# kjEFx7XGawuy8pH5X1Wjm+ijTb94E2lDPwWd119jMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAHyJ8LUmMG+GkeJrz1d17ksKcnwl5La5OQnOQ -# SaI8V4Z6AaahfkuIHAQ18pHGpo7sjzECOM9givdD2g8xjIBn8nFkPYrraCqxtxJk -# gJt6FHmKkzb4F06w76zox9pNOSB/IGTD7N72T1Cyn7q1cuXHTuNea5pzn9EQcK9H -# ExCJ+mrCdCJL6RVHvEQM1pI6qNK9AmHM4EVBPn5OcrAfhfXK5B9SCw7D9XqjM+1u -# 3nxJ+dndloJ3GNLyQzH9zJxqAK6zGz5avuUjJFvwBWY3hNelS18c7sQ5oFkgMSRg -# lljYHkf38Lk1RlQAM7AQh2pzEllRV4vkz3gsyT/VeF9rvvRne6GCF5cwgheTBgor -# BgEEAYI3AwMBMYIXgzCCF38GCSqGSIb3DQEHAqCCF3AwghdsAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFSBgsqhkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCrs9UIVOa7lNZCGpik88VObDpWrqSGcGix -# Dd52oGglgwIGZ1sNnBnsGBMyMDI1MDExNTA1MDYwNy45ODJaMASAAgH0oIHRpIHO -# MIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQL -# ExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxk -# IFRTUyBFU046MzMwMy0wNUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1l -# LVN0YW1wIFNlcnZpY2WgghHtMIIHIDCCBQigAwIBAgITMwAAAebZQp7qAPh94QAB -# AAAB5jANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDAeFw0yMzEyMDYxODQ1MTVaFw0yNTAzMDUxODQ1MTVaMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046MzMwMy0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Uw -# ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9vph84tgluEzm/wpNKlAj -# cElGzflvKADZ1D+2d/ieYYEtF2HKMrKGFDOLpLWWG5DEyiKblYKrE2nt540OGu35 -# Zx0gXJBE0zWanZEAjCjt4eGBi+uakZsk70zHTQHHyfP+B3m2BSSNFPhgsVIPp6vo -# /9t6OeNezIwX5E5+VwEG37nZgEexQF2fQZYbxQ1AauqDvRdXsSpK1dh1UBt9EaMs -# zuucaR5nMwQN6sDjG99FzdK9Atzbn4SmlsoLUtRAh/768sKd0Y1hMmKVHwIX8/4J -# uURUBRZ0JWu0NYQBp8khku18Q8CAQ500tFB7VH3pD8zoA4lcA7JkxTGoPKrufm+l -# RZAA4iMgbcLZ2P/xSdnKFxU8vL31RoNlZJiGL5MqTXvvyBLz+MRP4En9Nye1N8x/ -# lJD1stdNo5wJG+mgXsE/zfzg2GaVqQczFHg0Nl8bpIqnNFUReQRq3C1jVYMCSceg -# NzHeYtw5OmZ/7eVnRmjXlCsLvdsxOzc1YVn6nZLkQD5y31HYrB9iIHuswhaMv2hJ -# NNjVndkpWy934PIZuWTMk360kjXPFwl2Wv1Tzm9tOrCq8+l408KIL6J+efoGNkR8 -# YB3M+u1tYeVDO/TcObGHxaGFB6QZxAUpnfB5N/MmBNxMOqzG1N8QiwW8gtjjMJiF -# Bf6iYYrCjtRwF7IPdQLFtQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFOUEMXntN54+ -# 11ZM+Qu7Q5rg3Fc9MB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8G -# A1UdHwRYMFYwVKBSoFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMv -# Y3JsL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBs -# BggrBgEFBQcBAQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0 -# LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUy -# MDIwMTAoMSkuY3J0MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUH -# AwgwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4ICAQBhbuogTapRsuwS -# kaFMQ6dyu8ZCYUpWQ8iIrbi40tU2hK6pHgu0hj0z/9zFRRx5DfhukjvbjA/dS5VY -# fxz1EIbPlt897MJ2sBGO2YLYwYelfJpDwbB0XS9Zkrqpzq6X/lmDQDn3G5vcYpYQ -# CJ55LLvyFlJ195AVo4Wy8UX5p7g9W3MgNHQMpM+EV64+cszj4Ho5aQmeKGtKy7w7 -# 2eRY/vWDuptrvzruFNmKCIt12UcA5BOsXp1Ptkjx2yRsCj77DSml0zVYjqW/ISWk -# rGjyeVJ+khzctxaLkklVwCxigokD6fkWby0hCEKTOTPMzhugPIAcxcHsR2sx01YR -# a9pH2zvddsuBEfSFG6Cj0QSvEZ/M9mJ+h4miaQSR7AEbVGDbyRKkYn80S+3AmRlh -# 3ZOe+BFqJ57OXdeIDSHbvHzJ7oTqG896l3eUhPsZg69fNgxTxlvRNmRE/+61Yj7Z -# 1uB0XYQP60rsMLdTlVYEyZUl5MLTL5LvqFozZlS2Xoji4BEP6ddVTzmHJ4odOZMW -# TTeQ0IwnWG98vWv/roPegCr1G61FVrdXLE3AXIft4ZN4ZkDTnoAhPw7DZNPRlSW4 -# TbVj/Lw0XvnLYNwMUA9ouY/wx9teTaJ8vTkbgYyaOYKFz6rNRXZ4af6e3IXwMCff -# CaspKUXC72YMu5W8L/zyTxsNUEgBbTCCB3EwggVZoAMCAQICEzMAAAAVxedrngKb -# SZkAAAAAABUwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQI -# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv -# ZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmlj -# YXRlIEF1dGhvcml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIy -# NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT -# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE -# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXI -# yjVX9gF/bErg4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjo -# YH1qUoNEt6aORmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1y -# aa8dq6z2Nr41JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v -# 3byNpOORj7I5LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pG -# ve2krnopN6zL64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viS -# kR4dPf0gz3N9QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYr -# bqgSUei/BQOj0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlM -# jgK8QmguEOqEUUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSL -# W6CmgyFdXzB0kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AF -# emzFER1y7435UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIu -# rQIDAQABo4IB3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIE -# FgQUKqdS/mTEmr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWn -# G1M1GelyMFwGA1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEW -# M2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5 -# Lmh0bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBi -# AEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV -# 9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3Js -# Lm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAx -# MC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2 -# LTIzLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv -# 6lwUtj5OR2R4sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZn -# OlNN3Zi6th542DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1 -# bSNU5HhTdSRXud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4 -# rPf5KYnDvBewVIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU -# 6ZGyqVvfSaN0DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDF -# NLB62FD+CljdQDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/ -# HltEAY5aGZFrDZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdU -# CbFpAUR+fKFhbHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKi -# excdFYmNcP7ntdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTm -# dHRbatGePu1+oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZq -# ELQdVTNYs6FwZvKhggNQMIICOAIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMx -# EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT -# FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJp -# Y2EgT3BlcmF0aW9uczEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjMzMDMtMDVF -# MC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMK -# AQEwBwYFKw4DAhoDFQDiWNBeFJ9jvaErN64D1G86eL0mu6CBgzCBgKR+MHwxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv -# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6zG0SzAi -# GA8yMDI1MDExNTA0MTI1OVoYDzIwMjUwMTE2MDQxMjU5WjB3MD0GCisGAQQBhFkK -# BAExLzAtMAoCBQDrMbRLAgEAMAoCAQACAhsGAgH/MAcCAQACAhJxMAoCBQDrMwXL -# AgEAMDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSCh -# CjAIAgEAAgMBhqAwDQYJKoZIhvcNAQELBQADggEBACYE/sS9Ti6hCoUlfEp1jxS+ -# AW1z2g0Lf3HL6XlE5SDWxvK4Is6pDp3dWzHRIuIVj8EQaY+LynNCM3ahzMe6dHdy -# gnYCsdKr0EH+OB0CEVaHaWEwqJiD+8cEgbFsJnffka5tmQl1k3AJEaGe4b1GZmiA -# QNeWFo5OiKG2UjTohpVURH0zbH83CLFOXjC8vWQGrZG9gB5RT6YWbbOmWAFCOPB4 -# To74HMzknMf/Ino2wr0mQJ/Nk+k72uZQzVN4KegGVZl5rCUcm9UBJ0EU+C7mp1xo -# leEPQh3q0eFjT4oElc3uuduo8PkPaM07qtsRDR58Yr7u9g3EHuidVYq9bmjU/pkx -# ggQNMIIECQIBATCBkzB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv -# bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0 -# aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAA -# AebZQp7qAPh94QABAAAB5jANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkD -# MQ0GCyqGSIb3DQEJEAEEMC8GCSqGSIb3DQEJBDEiBCBBjhM2q7E213WwtC/+lDyn -# XbXGdG00SUp0v8SJg6GKUzCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIM+7 -# o4aoHrMJaG8gnLO1q16hIYcRnoy6FnOCbnSD0sZZMIGYMIGApH4wfDELMAkGA1UE -# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc -# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 -# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAHm2UKe6gD4feEAAQAAAeYwIgQg7zn+ -# t1B0qSC0Bw0dakeHDJmV6DW+NmnpWc6kQvyYfmwwDQYJKoZIhvcNAQELBQAEggIA -# hM5vdmR7J4I9cOE51Qpmc9nQTWniChX6ZbJ2jKnfOyr7sDde9LEJZ6Og6qaMvJ9P -# xZo3ILpdSjGtiMjBQv5YHUvB+XqqXUd12VJMExzH8+ddbQ2m3+9nyNsT3tqx/NF5 -# onAwJjUmLjvstpNgQlodVfpTPFdCZomz/o4aFyf9AwtUoD0E1vnFydU5XZGNZz4m -# 8jK9NdvUG79GGYFomsfpPMPPq2zI+hqnDlVSRpjO2IRrW/AeeqJv/wdCVAhMMub2 -# HsfYjaw0VKy+4qcc2WsqSj2zEc1CN1pnPpBkSWIBpXQFAEhp+hAqAI9n6A+iXxWb -# YL48vrBluSYYAmGX1XXcB4n17qbU3IHGEGCxBaAvOGujCkBjgTepzVKiqSCjzM5T -# H/uE8C2e9pI0s63ujp2I4NXziPx/BvlNzGSbz0Tra5Zr5YDC7aEB8vCG12e6Ge6/ -# J/9X6mFWeXBx9CwvlVPeaOb4YOm/8G6xM2z0J48wUjfcAGRqa5l0s1aaQy9TYxOl -# jbcLRSXdE8ihX46XLbB0w7iXs+KbAXx9jp9L6g7QFuJWLemb0CCgXt2XEE327ZBW -# Qj0D22ZBGmZ5f0sNkttQt+VwXjj5mAJwh1lcY+Wzp+A3H65sS7UrW9eR8+JlxhUs -# d4KuCdsT1cpFFINgBMxqUTdwlsgoG6QmWZm7kUbc9YA= -# SIG # End signature block diff --git a/Modules/Az.Accounts/4.0.2/en-US/about_az.help.txt b/Modules/Az.Accounts/4.0.2/en-US/about_az.help.txt deleted file mode 100644 index fb4a5e9becd1..000000000000 --- a/Modules/Az.Accounts/4.0.2/en-US/about_az.help.txt +++ /dev/null @@ -1,50 +0,0 @@ -About topic for Azure PowerShell - about_az - -TOPIC - -about_Az - -SHORT DESCRIPTION - -The Azure Az PowerShell module is a set of cmdlets for managing Azure -resources directly from the PowerShell command line and in PowerShell -scripts. - -LONG DESCRIPTION - -Azure PowerShell provides cross-platform cmdlets for managing Azure -services. All Azure PowerShell cmdlets work on Windows PowerShell 5.1 and -supported versions of PowerShell 7. - -The Azure PowerShell cmdlets follow the naming convention {verb}-Az{noun}. - -- {verb} is an approved PowerShell verb reflecting the corresponding HTTP - operation. - -- {noun} matches or has a close equivalent to the name of the resource. - -The cmdlets produce .NET objects that can be piped between commands -simplifying the sequencing of commands making Azure PowerShell a powerful -solution for scripting and automation purposes. - -A PowerShell module is available for each Azure service. For convenience, -we provide a wrapper module named "Az" that comprises the stable modules. -Modules in preview must be installed independently or via the "AzPreview" -wrapper module. - -Azure PowerShell is frequently updated to include bug fixes and service -updates. It is recommended to plan to update to the most recent version -regularly (a minimum of twice a year). - -GETTING STARTED - -1. Connect to Azure using Connect-AzAccount - -2. Run your first command. For example, create a resource group in the - east US region. - - New-AzResourceGroup -Name "MyResoureGroup" -location "eastus" - -SEE ALSO - -Azure PowerShell documentation: https://learn.microsoft.com/powershell/azure diff --git a/Modules/Az.Accounts/4.0.2/lib/netfx/Newtonsoft.Json.dll b/Modules/Az.Accounts/4.0.2/lib/netfx/Newtonsoft.Json.dll deleted file mode 100644 index 10f270ffae96..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netfx/Newtonsoft.Json.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netfx/System.Diagnostics.DiagnosticSource.dll b/Modules/Az.Accounts/4.0.2/lib/netfx/System.Diagnostics.DiagnosticSource.dll deleted file mode 100644 index 92419a27e0c2..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netfx/System.Diagnostics.DiagnosticSource.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netfx/System.Numerics.Vectors.dll b/Modules/Az.Accounts/4.0.2/lib/netfx/System.Numerics.Vectors.dll deleted file mode 100644 index 08659724d4f8..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netfx/System.Numerics.Vectors.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netfx/System.Reflection.DispatchProxy.dll b/Modules/Az.Accounts/4.0.2/lib/netfx/System.Reflection.DispatchProxy.dll deleted file mode 100644 index 674ced0460de..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netfx/System.Reflection.DispatchProxy.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netfx/System.Runtime.CompilerServices.Unsafe.dll b/Modules/Az.Accounts/4.0.2/lib/netfx/System.Runtime.CompilerServices.Unsafe.dll deleted file mode 100644 index c5ba4e4047a1..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netfx/System.Runtime.CompilerServices.Unsafe.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netfx/System.Security.Cryptography.Cng.dll b/Modules/Az.Accounts/4.0.2/lib/netfx/System.Security.Cryptography.Cng.dll deleted file mode 100644 index 4f4c30e080bd..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netfx/System.Security.Cryptography.Cng.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netfx/System.Security.Cryptography.ProtectedData.dll b/Modules/Az.Accounts/4.0.2/lib/netfx/System.Security.Cryptography.ProtectedData.dll deleted file mode 100644 index a7029b32f95d..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netfx/System.Security.Cryptography.ProtectedData.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netfx/System.Text.Encodings.Web.dll b/Modules/Az.Accounts/4.0.2/lib/netfx/System.Text.Encodings.Web.dll deleted file mode 100644 index a85aa43cfef5..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netfx/System.Text.Encodings.Web.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netfx/System.Xml.ReaderWriter.dll b/Modules/Az.Accounts/4.0.2/lib/netfx/System.Xml.ReaderWriter.dll deleted file mode 100644 index 022e63a21a86..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netfx/System.Xml.ReaderWriter.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Azure.Identity.Broker.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Azure.Identity.Broker.dll deleted file mode 100644 index efdd237a2113..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Azure.Identity.Broker.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Azure.Identity.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Azure.Identity.dll deleted file mode 100644 index 23654ed1c021..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Azure.Identity.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll deleted file mode 100644 index 39fd1311f266..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.Identity.Client.Broker.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.Identity.Client.Broker.dll deleted file mode 100644 index 1741b8db681b..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.Identity.Client.Broker.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.Identity.Client.Extensions.Msal.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.Identity.Client.Extensions.Msal.dll deleted file mode 100644 index 8db4ae9570f6..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.Identity.Client.Extensions.Msal.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.Identity.Client.NativeInterop.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.Identity.Client.NativeInterop.dll deleted file mode 100644 index ff53bc8ebd08..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.Identity.Client.NativeInterop.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.Identity.Client.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.Identity.Client.dll deleted file mode 100644 index 880b889c5d98..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.Identity.Client.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.dll deleted file mode 100644 index 96db40f55703..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Buffers.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Buffers.dll deleted file mode 100644 index c0970c078522..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Buffers.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Memory.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Memory.dll deleted file mode 100644 index 1e6aef802063..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Memory.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Net.Http.WinHttpHandler.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Net.Http.WinHttpHandler.dll deleted file mode 100644 index 598cb6335808..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Net.Http.WinHttpHandler.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Private.ServiceModel.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Private.ServiceModel.dll deleted file mode 100644 index 3f9f84edf0ed..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Private.ServiceModel.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Security.AccessControl.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Security.AccessControl.dll deleted file mode 100644 index 36fb33af4590..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Security.AccessControl.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Security.Permissions.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Security.Permissions.dll deleted file mode 100644 index 2a353ee22eec..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Security.Permissions.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Security.Principal.Windows.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Security.Principal.Windows.dll deleted file mode 100644 index 19d0fc0e971c..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Security.Principal.Windows.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.ServiceModel.Primitives.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.ServiceModel.Primitives.dll deleted file mode 100644 index c1aa0a64f8f9..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.ServiceModel.Primitives.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Threading.Tasks.Extensions.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Threading.Tasks.Extensions.dll deleted file mode 100644 index dfab23478ab4..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Threading.Tasks.Extensions.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/msalruntime.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/msalruntime.dll deleted file mode 100644 index 723572aa3ad6..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/msalruntime.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/msalruntime_arm64.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/msalruntime_arm64.dll deleted file mode 100644 index 713a43e6612f..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/msalruntime_arm64.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/msalruntime_x86.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/msalruntime_x86.dll deleted file mode 100644 index 69cc22280f03..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/msalruntime_x86.dll and /dev/null differ diff --git a/Modules/Az.Functions/4.2.0/.signature.p7s b/Modules/Az.Functions/4.2.0/.signature.p7s deleted file mode 100644 index a74e3c921128..000000000000 Binary files a/Modules/Az.Functions/4.2.0/.signature.p7s and /dev/null differ diff --git a/Modules/Az.Functions/4.2.0/Az.Functions.psd1 b/Modules/Az.Functions/4.2.0/Az.Functions.psd1 deleted file mode 100644 index 2933edb4da3f..000000000000 --- a/Modules/Az.Functions/4.2.0/Az.Functions.psd1 +++ /dev/null @@ -1,360 +0,0 @@ -# -# Module manifest for module 'Az.Functions' -# -# Generated by: Microsoft Corporation -# -# Generated on: 1/9/2025 -# - -@{ - -# Script module or binary module file associated with this manifest. -RootModule = 'Az.Functions.psm1' - -# Version number of this module. -ModuleVersion = '4.2.0' - -# Supported PSEditions -CompatiblePSEditions = 'Core', 'Desktop' - -# ID used to uniquely identify this module -GUID = 'eafced71-8742-4a2c-5afd-13117428dd90' - -# Author of this module -Author = 'Microsoft Corporation' - -# Company or vendor of this module -CompanyName = 'Microsoft Corporation' - -# Copyright statement for this module -Copyright = 'Microsoft Corporation. All rights reserved.' - -# Description of the functionality provided by this module -Description = 'Microsoft Azure PowerShell - Azure Functions service cmdlets for Azure Resource Manager in Windows PowerShell and PowerShell Core. - -For information on Azure Functions, please visit the following: https://learn.microsoft.com/azure/azure-functions/' - -# Minimum version of the PowerShell engine required by this module -PowerShellVersion = '5.1' - -# Name of the PowerShell host required by this module -# PowerShellHostName = '' - -# Minimum version of the PowerShell host required by this module -# PowerShellHostVersion = '' - -# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -DotNetFrameworkVersion = '4.7.2' - -# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -# ClrVersion = '' - -# Processor architecture (None, X86, Amd64) required by this module -# ProcessorArchitecture = '' - -# Modules that must be imported into the global environment prior to importing this module -RequiredModules = @() - -# Assemblies that must be loaded prior to importing this module -RequiredAssemblies = 'Functions.Autorest/bin/Az.Functions.private.dll' - -# Script files (.ps1) that are run in the caller's environment prior to importing this module. -ScriptsToProcess = 'Functions.Autorest/custom/HelperFunctions.ps1' - -# Type files (.ps1xml) to be loaded when importing this module -TypesToProcess = 'Functions.Autorest/custom/Functions.types.ps1xml' - -# Format files (.ps1xml) to be loaded when importing this module -FormatsToProcess = 'Functions.Autorest/Az.Functions.format.ps1xml', - 'Functions.Autorest/custom/Functions.format.ps1xml' - -# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess -NestedModules = @('Functions.Autorest/Az.Functions.psm1') - -# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. -FunctionsToExport = 'Get-AzFunctionApp', 'Get-AzFunctionAppAvailableLocation', - 'Get-AzFunctionAppPlan', 'Get-AzFunctionAppSetting', - 'New-AzFunctionApp', 'New-AzFunctionAppPlan', 'Remove-AzFunctionApp', - 'Remove-AzFunctionAppPlan', 'Remove-AzFunctionAppSetting', - 'Restart-AzFunctionApp', 'Start-AzFunctionApp', 'Stop-AzFunctionApp', - 'Update-AzFunctionApp', 'Update-AzFunctionAppPlan', - 'Update-AzFunctionAppSetting' - -# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. -CmdletsToExport = @() - -# Variables to export from this module -# VariablesToExport = @() - -# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. -AliasesToExport = @() - -# DSC resources to export from this module -# DscResourcesToExport = @() - -# List of all modules packaged with this module -ModuleList = @(@{ModuleName = 'Az.Accounts'; ModuleVersion = '4.0.1'; }) - -# List of all files packaged with this module -# FileList = @() - -# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. -PrivateData = @{ - - PSData = @{ - - # Tags applied to this module. These help with module discovery in online galleries. - Tags = 'Azure','ResourceManager','ARM','PSModule','Functions' - - # A URL to the license for this module. - LicenseUri = 'https://aka.ms/azps-license' - - # A URL to the main website for this project. - ProjectUri = 'https://github.com/Azure/azure-powershell' - - # A URL to an icon representing this module. - # IconUri = '' - - # ReleaseNotes of this module - ReleaseNotes = '* Upgraded nuget package to signed package.' - - # Prerelease string of this module - # Prerelease = '' - - # Flag to indicate whether the module requires explicit user acceptance for install/update/save - # RequireLicenseAcceptance = $false - - # External dependent modules of this module - # ExternalModuleDependencies = @() - - } # End of PSData hashtable - - } # End of PrivateData hashtable - -# HelpInfo URI of this module -# HelpInfoURI = '' - -# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. -# DefaultCommandPrefix = '' - -} - - -# SIG # Begin signature block -# MIIoUgYJKoZIhvcNAQcCoIIoQzCCKD8CAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDoi7Rpy37ZlGHK -# QqLlAgdi837+b2M1IGWCU6KGY+lvCaCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIISr -# oP3oRBgVRA5fiLzsRLzlTV5n5MnfZVdnqnLKPkwCMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAc9usmM4HZ5jFViQMmm3x5WlmmgwSbp5sXSX7 -# YK+pYkSRUbxt1bZrKh6aQC/Jxh7/vReRpcsyEniqEScNF3tpl9FLCRQ0Ig56jwzz -# 1EnsLHAZa0U/Rdv21tCnsh6ca3kzHckEAB02l3+ZVXixvHLvpAhHY8kFfQuJwpnu -# YlyKK1vosdO9T/t4fUgdRpyr/Q5ejKLqDgLXF5BKvlAJt3LzRzCww3egnm5KYXcW -# f1koFJzqltr+H2PoAydhvruG/Bk3bAs/HyaQqJyqx4QtVkuN7yyQ1d5Y6orbo38k -# Y79B6j3meF04q++6a7RIjDgW0OOsE9xRrHK+QJ1ElQVSeW+kL6GCF60wghepBgor -# BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCB1G4vGhjZIuxd1t1xfg1ru2lr6JyAXN5Zj -# lWj6z1UwNgIGZ2L/yIZyGBMyMDI1MDEwOTA3MjE0Mi4xNTFaMASAAgH0oIHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo2NTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB9ZkJ -# lLzxxlCMAAEAAAH1MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzEwMVoXDTI1MTAyMjE4MzEwMVowgdMxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv -# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs -# ZCBUU1MgRVNOOjY1MUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA -# zO90cFQTWd/WP84IT7JMIW1fQL61sdfgmhlfT0nvYEb2kvkNF073ZwjveuSWot38 -# 7LjE0TCiG93e6I0HzIFQBnbxGP/WPBUirFq7WE5RAsuhNfYUL+PIb9jJq3CwWxIC -# fw5t/pTyIOHjKvo1lQOTWZypir/psZwEE7y2uWAPbZJTFrKen5R73x2Hbxy4eW1D -# cmXjym2wFWv10sBH40ajJfe+OkwcTdoYrY3KkpN/RQSjeycK0bhjo0CGYIYa+ZMA -# ao0SNR/R1J1Y6sLkiCJO3aQrbS1Sz7l+/qJgy8fyEZMND5Ms7C0sEaOvoBHiWSpT -# M4vc0xDLCmc6PGv03CtWu2KiyqrL8BAB1EYyOShI3IT79arDIDrL+de91FfjmSbB -# Y5j+HvS0l3dXkjP3Hon8b74lWwikF0rzErF0n3khVAusx7Sm1oGG+06hz9XAy3Wo -# u+T6Se6oa5LDiQgPTfWR/j9FNk8Ju06oSfTh6c03V0ulla0Iwy+HzUl+WmYxFLU0 -# PiaXsmgudNwVqn51zr+Bi3XPJ85wWuy6GGT7nBDmXNzTNkzK98DBQjTOabQXUZ88 -# 4Yb9DFNcigmeVTYkyUXZ6hscd8Nyq45A3D3bk+nXnsogK1Z7zZj6XbGft7xgOYvv -# eU6p0+frthbF7MXv+i5qcD9HfFmOq4VYHevVesYb6P0CAwEAAaOCAUkwggFFMB0G -# A1UdDgQWBBRV4Hxb9Uo0oHDwJZJe22ixe2B1ATAfBgNVHSMEGDAWgBSfpxVdAF5i -# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv -# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB -# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw -# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp -# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud -# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF -# AAOCAgEAcwxmVPaA9xHffuom0TOSp2hspuf1G0cHW/KXHAuhnpW8/Svlq5j9aKI/ -# 8/G6fGIQMr0zlpau8jy83I4zclGdJjl5S02SxDlUKawtWvgf7ida06PgjeQM1eX4 -# Lut4bbPfT0FEp77G76hhysXxTJNHv5y+fwThUeiiclihZwqcZMpa46m+oV6igTU6 -# I0EnneotMqFs0Q3zHgVVr4WXjnG2Bcnkip42edyg/9iXczqTBrEkvTz0UlltpFGa -# QnLzq+No8VEgq0UG7W1ELZGhmmxFmHABwTT6sPJFV68DfLoC0iB9Qbb9VZ8mvbTV -# 5JtISBklTuVAlEkzXi9LIjNmx+kndBfKP8dxG/xbRXptQDQDaCsS6ogLkwLgH6zS -# s+ul9WmzI0F8zImbhnZhUziIHheFo4H+ZoojPYcgTK6/3bkSbOabmQFf95B8B6e5 -# WqXbS5s9OdMdUlW1gTI1r5u+WAwH2KG7dxneoTbf/jYl3TUtP7AHpyck2c0nun/Q -# 0Cycpa9QUH/Dy01k6tQomNXGjivg2/BGcgZJ0Hw8C6KVelEJ31xLoE21m9+NEgSK -# CRoFE1Lkma31SyIaynbdYEb8sOlZynMdm8yPldDwuF54vJiEArjrcDNXe6BobZUi -# TWSKvv1DJadR1SUCO/Od21GgU+hZqu+dKgjKAYdeTIvi9R2rtLYwggdxMIIFWaAD -# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD -# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe -# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv -# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy -# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 -# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 -# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu -# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl -# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg -# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I -# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 -# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ -# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy -# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y -# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H -# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB -# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW -# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B -# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB -# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB -# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL -# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv -# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr -# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS -# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq -# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 -# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv -# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak -# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK -# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 -# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ -# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep -# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk -# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg -# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ -# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo2NTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAJsAKu48NbR5Y -# Rg3WSBQCyjzdkvaggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDANBgkqhkiG9w0BAQsFAAIFAOsp1Y4wIhgPMjAyNTAxMDkwNDU2NDZaGA8yMDI1 -# MDExMDA0NTY0NlowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA6ynVjgIBADAHAgEA -# AgIv2DAHAgEAAgITKTAKAgUA6ysnDgIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor -# BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUA -# A4IBAQBQZ+epogh9yozGUXovfC3VuYhp+q9eHXsbU/tJwdx7+bFn5T6uQT/6MJPW -# R7o6lYwustfEM0NLspeUimvngBIWtQbNrJpreDR9FiiwUn/Vyr0xLe9wulNHOPr+ -# bqXRWk6PpLXo0fjZ2pUScusPFs7wcRFLIaEdn7nuFhV62XsNsNm3V4OyAKEu6mkk -# IHx4X5Lrg80iKlN2BXYRGjRYP7Hb4TglhDJSPdDWxvhj+ndNbhc13Nm3zZd/DJqJ -# gi5TYRK6BmUDOfZRiO2UCHB5CKvilGCspEfnlyBFjlPuUQhra/zOX2uuSzrHTcfw -# J6b5vb7DmQVFde3aEtEMVk3Z8ACgMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTACEzMAAAH1mQmUvPHGUIwAAQAAAfUwDQYJYIZIAWUD -# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B -# CQQxIgQgq/CLp1rq5ttOs1IS5MH8k7s4sPPPQHgrfgWHMPKKipYwgfoGCyqGSIb3 -# DQEJEAIvMYHqMIHnMIHkMIG9BCDB1vLSFwh09ISu4kdEv4/tg9eR1Yk8w5x7j5GT -# hqaPNTCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB -# 9ZkJlLzxxlCMAAEAAAH1MCIEIILkTWtto6jyoOiQmqv3k12cmyPChV3pUGKZ5kYF -# /vZ0MA0GCSqGSIb3DQEBCwUABIICACHKZYI1HPB3pEmjnf8h7AiWfdac9mMCNFZT -# tHeO+g0HCbSOfHXAeHnySSnmmXQhZhXnJglvyaoTqGBgx1MjmrGaPKm1dYA9tHaT -# MAc6mhHanJ9XUMHGyRZk7az73tOVYLV7JLoVw6wh1nGbseikAOr3TBW6vfVXki03 -# N7QyfBqd/KOcV7wrqHtlsnKFeXQCrPoSbqNumQD3Vt0Q+KDJsyyBLPQG/50x3+H/ -# LevgBAhWh5rA3Cgtm5aL1mLBEZ3FyLmq6UxhelT0/bW56iK6BDafcJF07za9dOKP -# FcPPGxQ8vGfrlrESSyzUCUfxM+jAyfW5OuskBzNMBTd/uYll/eeUYXorBjMj/3rE -# OsX3jAyKssc8xS62wzHkP6VRJ+ryl6Rf0CeyUvrZ5iRSnwjIEw0D5xM2Tjg0nWUx -# 4Tx2TMBg8Oe8GBvS9mnRcXz7Syf62RTEgVMRcfobowIwsJeanLjvnJdjVlm0Szsi -# tHR/vkJ48V+kyxU3gHYLIVzxmMSUUMZMNJCMi8Y9ISNtTzqxtMqeAtcFIjSUf5ou -# BYNcc+uDtaOqZkqA1iDfa7iS2xWj7ukWMkTsoTbkGw/7rG0w6VjYrD3edtTEsr2/ -# aIkwPju8tmGG3ab5uDs1tzjcaPTCKwuiyhBW6VUFZFkVu6bMj4vqeyBIzPQmHZOq -# pJEw7iB5 -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Az.Functions.psm1 b/Modules/Az.Functions/4.2.0/Az.Functions.psm1 deleted file mode 100644 index 6bf1f7730127..000000000000 --- a/Modules/Az.Functions/4.2.0/Az.Functions.psm1 +++ /dev/null @@ -1,361 +0,0 @@ -# -# Script module for module 'Az.Functions' that is executed when 'Az.Functions' is imported in a PowerShell session. -# -# Generated by: Microsoft Corporation -# -# Generated on: 01/09/2025 06:20:57 -# - -$PSDefaultParameterValues.Clear() -Set-StrictMode -Version Latest - -function Test-DotNet -{ - try - { - if ((Get-PSDrive 'HKLM' -ErrorAction Ignore) -and (-not (Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\' -ErrorAction Stop | Get-ItemPropertyValue -ErrorAction Stop -Name Release | Where-Object { $_ -ge 461808 }))) - { - throw ".NET Framework versions lower than 4.7.2 are not supported in Az. Please upgrade to .NET Framework 4.7.2 or higher." - } - } - catch [System.Management.Automation.DriveNotFoundException] - { - Write-Verbose ".NET Framework version check failed." - } -} - -function Preload-Assembly { - param ( - [string] - $AssemblyDirectory - ) - if($PSEdition -eq 'Desktop' -and (Test-Path $AssemblyDirectory -ErrorAction Ignore)) - { - try - { - Get-ChildItem -ErrorAction Stop -Path $AssemblyDirectory -Filter "*.dll" | ForEach-Object { - try - { - Add-Type -Path $_.FullName -ErrorAction Ignore | Out-Null - } - catch { - Write-Verbose $_ - } - } - } - catch {} - } -} - -if ($true -and ($PSEdition -eq 'Desktop')) -{ - if ($PSVersionTable.PSVersion -lt [Version]'5.1') - { - throw "PowerShell versions lower than 5.1 are not supported in Az. Please upgrade to PowerShell 5.1 or higher." - } - - Test-DotNet -} - -if ($true -and ($PSEdition -eq 'Core')) -{ - if ($PSVersionTable.PSVersion -lt [Version]'6.2.4') - { - throw "Current Az version doesn't support PowerShell Core versions lower than 6.2.4. Please upgrade to PowerShell Core 6.2.4 or higher." - } -} - -if (Test-Path -Path "$PSScriptRoot\StartupScripts" -ErrorAction Ignore) -{ - Get-ChildItem "$PSScriptRoot\StartupScripts" -ErrorAction Stop | ForEach-Object { - . $_.FullName - } -} - -# [windows powershell] preload assemblies - - -# [windows powershell] preload module alc assemblies -$preloadPath = (Join-Path $PSScriptRoot -ChildPath "ModuleAlcAssemblies") -Preload-Assembly -AssemblyDirectory $preloadPath - -if (Get-Module AzureRM.profile -ErrorAction Ignore) -{ - Write-Warning ("AzureRM.Profile already loaded. Az and AzureRM modules cannot be imported in the same session or used in the same script or runbook. If you are running PowerShell in an environment you control you can use the 'Uninstall-AzureRm' cmdlet to remove all AzureRm modules from your machine. " + - "If you are running in Azure Automation, take care that none of your runbooks import both Az and AzureRM modules. More information can be found here: https://aka.ms/azps-migration-guide.") - throw ("AzureRM.Profile already loaded. Az and AzureRM modules cannot be imported in the same session or used in the same script or runbook. If you are running PowerShell in an environment you control you can use the 'Uninstall-AzureRm' cmdlet to remove all AzureRm modules from your machine. " + - "If you are running in Azure Automation, take care that none of your runbooks import both Az and AzureRM modules. More information can be found here: https://aka.ms/azps-migration-guide.") -} - -$module = Get-Module Az.Accounts - if ($module -ne $null -and $module.Version -lt [System.Version]"4.0.1") -{ - Write-Error "This module requires Az.Accounts version 4.0.1. An earlier version of Az.Accounts is imported in the current PowerShell session. Please open a new session before importing this module. This error could indicate that multiple incompatible versions of the Azure PowerShell cmdlets are installed on your system. Please see https://aka.ms/azps-version-error for troubleshooting information." -ErrorAction Stop -} -elseif ($module -eq $null) -{ - Import-Module Az.Accounts -MinimumVersion 4.0.1 -Scope Global -} - - -if (Test-Path -Path "$PSScriptRoot\PostImportScripts" -ErrorAction Ignore) -{ - Get-ChildItem "$PSScriptRoot\PostImportScripts" -ErrorAction Stop | ForEach-Object { - . $_.FullName - } -} - -$FilteredCommands = @() - -if ($Env:ACC_CLOUD -eq $null) -{ - $FilteredCommands | ForEach-Object { - - $existingDefault = $false - foreach ($key in $global:PSDefaultParameterValues.Keys) - { - if ($_ -like "$key") - { - $existingDefault = $true - } - } - - if (!$existingDefault) - { - $global:PSDefaultParameterValues.Add($_, - { - if ((Get-Command Get-AzContext -ErrorAction Ignore) -eq $null) - { - $context = Get-AzureRmContext - } - else - { - $context = Get-AzContext - } - if (($context -ne $null) -and $context.ExtendedProperties.ContainsKey("Default Resource Group")) { - $context.ExtendedProperties["Default Resource Group"] - } - }) - } - } -} - - - -# SIG # Begin signature block -# MIIoLQYJKoZIhvcNAQcCoIIoHjCCKBoCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBIT6Uy09qUeDeZ -# fR4mBJDAvDhicnzmyGeuRB+OjHwKqqCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGg0wghoJAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIJFxC6LGxp8iJzUihY0Hdfce -# hgl004K2mrUtQDu7WxyQMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEArO56WcyEwuT8vEKyf3AiV7OcBFqfVodqEsiw0b4jtFcn/r6wZuYKcHHF -# LN7AuIIZLQHq/JE2ijRT5feRaHo+tiUTD+wp8PYB1qbhg7NLfWBeKCbuV197TmQs -# wrkF9Z0AX2gutC2UgLZH5RPTUMQx5A9I0XSMUkKsie1iOFDVi+beMkUFr2GbE9u4 -# 5PQn3AYnVCglNNcwZxtwe1jIo4W2U49Duxq2KkP4SE3NO4Qj6u9wULugoO5epPjr -# AfgVxBwLJ6KBxt7Lp5YTOqkEjY+WT6KetKJPKQn3dk9Fy4BOwg/8zFWebx48ZEH0 -# jQX/3O5l6Q7aKZm9dTgx2ikCsM+WCKGCF5cwgheTBgorBgEEAYI3AwMBMYIXgzCC -# F38GCSqGSIb3DQEHAqCCF3AwghdsAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCCeeUxUYg5OFW1EvREjZk6oS8UtykKvBdBBv7VdtZXWNwIGZ1rjbLrD -# GBMyMDI1MDEwOTA2MzY0My45OTNaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046ODYwMy0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHtMIIHIDCCBQigAwIBAgITMwAAAfGzRfUn6MAW1gABAAAB8TANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# NTVaFw0yNTAzMDUxODQ1NTVaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046ODYwMy0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQCxulCZttIf8X97rW9/J+Q4Vg9PiugB1ya1/DRxxLW2 -# hwy4QgtU3j5fV75ZKa6XTTQhW5ClkGl6gp1nd5VBsx4Jb+oU4PsMA2foe8gP9bQN -# PVxIHMJu6TYcrrn39Hddet2xkdqUhzzySXaPFqFMk2VifEfj+HR6JheNs2LLzm8F -# DJm+pBddPDLag/R+APIWHyftq9itwM0WP5Z0dfQyI4WlVeUS+votsPbWm+RKsH4F -# QNhzb0t/D4iutcfCK3/LK+xLmS6dmAh7AMKuEUl8i2kdWBDRcc+JWa21SCefx5SP -# hJEFgYhdGPAop3G1l8T33cqrbLtcFJqww4TQiYiCkdysCcnIF0ZqSNAHcfI9SAv3 -# gfkyxqQNJJ3sTsg5GPRF95mqgbfQbkFnU17iYbRIPJqwgSLhyB833ZDgmzxbKmJm -# dDabbzS0yGhngHa6+gwVaOUqcHf9w6kwxMo+OqG3QZIcwd5wHECs5rAJZ6PIyFM7 -# Ad2hRUFHRTi353I7V4xEgYGuZb6qFx6Pf44i7AjXbptUolDcVzYEdgLQSWiuFajS -# 6Xg3k7Cy8TiM5HPUK9LZInloTxuULSxJmJ7nTjUjOj5xwRmC7x2S/mxql8nvHSCN -# 1OED2/wECOot6MEe9bL3nzoKwO8TNlEStq5scd25GA0gMQO+qNXV/xTDOBTJ8zBc -# GQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFLy2xe59sCE0SjycqE5Erb4YrS1gMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQDhSEjSBFSCbJyl3U/QmFMW2eLPBknnlsfI -# D/7gTMvANEnhq08I9HHbbqiwqDEHSvARvKtL7j0znICYBbMrVSmvgDxU8jAGqMyi -# LoM80788So3+T6IZV//UZRJqBl4oM3bCIQgFGo0VTeQ6RzYL+t1zCUXmmpPmM4xc -# ScVFATXj5Tx7By4ShWUC7Vhm7picDiU5igGjuivRhxPvbpflbh/bsiE5tx5cuOJE -# JSG+uWcqByR7TC4cGvuavHSjk1iRXT/QjaOEeJoOnfesbOdvJrJdbm+leYLRI67N -# 3cd8B/suU21tRdgwOnTk2hOuZKs/kLwaX6NsAbUy9pKsDmTyoWnGmyTWBPiTb2rp -# 5ogo8Y8hMU1YQs7rHR5hqilEq88jF+9H8Kccb/1ismJTGnBnRMv68Ud2l5LFhOZ4 -# nRtl4lHri+N1L8EBg7aE8EvPe8Ca9gz8sh2F4COTYd1PHce1ugLvvWW1+aOSpd8N -# nwEid4zgD79ZQxisJqyO4lMWMzAgEeFhUm40FshtzXudAsX5LoCil4rLbHfwYtGO -# pw9DVX3jXAV90tG9iRbcqjtt3vhW9T+L3fAZlMeraWfh7eUmPltMU8lEQOMelo/1 -# ehkIGO7YZOHxUqeKpmF9QaW8LXTT090AHZ4k6g+tdpZFfCMotyG+E4XqN6ZWtKEB -# QiE3xL27BDCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNQ -# MIICOAIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjg2MDMtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQD7 -# n7Bk4gsM2tbU/i+M3BtRnLj096CBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymhlzAiGA8yMDI1MDEwOTAxMTUw -# M1oYDzIwMjUwMTEwMDExNTAzWjB3MD0GCisGAQQBhFkKBAExLzAtMAoCBQDrKaGX -# AgEAMAoCAQACAgnWAgH/MAcCAQACAhLZMAoCBQDrKvMXAgEAMDYGCisGAQQBhFkK -# BAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJ -# KoZIhvcNAQELBQADggEBABWHux9xbYY4I0L4XVQj97eT2StJ8YAHfLn+PZEx9Hdg -# A8+ONymStatVt+SnyQ9nyV1lIGMKljTA95AUUN3xG9Eo2QioQUCRBmnqjp//gHsX -# Piv0u7m3VgnLsr/TnTo17aLOc0bOyYlS1BTthbz2XeyB646/F8ochBd1OqoCvluI -# Evv6Bx9hcodVtCm3pxAv4YDX8sXb0cFRNWz+Vq9JOKr4ankiYyp0INmV5C8cAHJb -# 4+PKlCzqdqx+GV4RdLaDvK7pcF6qcaO3J5Gl0I5OoeTF6KN1ifx90T0ps6q5LgV1 -# 6lzWULKJA/BVAnUF9Q+ybg+yEa3UGrkVPMsX8vGN7sQxggQNMIIECQIBATCBkzB8 -# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk -# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1N -# aWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAfGzRfUn6MAW1gABAAAB -# 8TANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEE -# MC8GCSqGSIb3DQEJBDEiBCCC0lGihVbTzSmHrTFF0t8ysEziC7nVoMCxmfyySo0V -# 3TCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EINV3/T5hS7ijwao466RosB7w -# wEibt0a1P5EqIwEj9hF4MIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB -# IDIwMTACEzMAAAHxs0X1J+jAFtYAAQAAAfEwIgQgZv4QEc5hgS9BsS74vtux+Rzx -# z6O0XI7Iv02NK7Hl7vIwDQYJKoZIhvcNAQELBQAEggIApMI7XhsoFso24RQdFuGh -# LYPdGtfZhawzTVTzyc2Zkoz1NSPXmYNOh5MsF8RG/sC9UP6KrA5SATei2WeGePG3 -# Lq13xBLlazKfBCfermIajkjSWgVr0oEfRJVwuJ40MXEPnc6XTvwDBupoLVFy7bac -# jriA4z4g09hjQKm188JYe6p7SxgGO/HYQvby7UnpZueoXlGOau2JZr0agBB2ht1T -# GAf/z5uk3NPK9MI2t3Y54RuSkureo3Mpc09rlvvMs543nQebfXrFRNr3NdYwq/+p -# CZETfgloYO/Dbx3nQtnFZdUyXgoTNs6taAeJeEDo41aeEEENg7APDTkO//IhI9f4 -# Gsr+rAVlVB5DH+DLeqyyX/7Q4QsTosFl7LU3QtNVDHEF55PBSQOpBhLTL3obBiWG -# H3L8valabbR9skrl7qvtrtOwTbWPHr6gsHAKbzid9+TEF2kqzEU+luuK4cOJZks9 -# 6W5yWF/07MPjsOCbeJBYSYw6wFrWS+V1bpq6d570S8GJbceOAlbcghasNo6yOG7q -# KFV4goJ8cOae1wDmJdKAVmK0P1wa0qo9Akh48jht4RJCXmT+kP0cUh8636kqy0Xb -# quKpRZ5PMuqkwD9L2pCMwAO8kZrUmS0jKVzXnZUWUURVdN7jAT0HcSRk0Waw/bNL -# iyNpg4SmMKnDkmuQzQxBbzA= -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/Az.Functions.format.ps1xml b/Modules/Az.Functions/4.2.0/Functions.Autorest/Az.Functions.format.ps1xml deleted file mode 100644 index af83b63eecd2..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/Az.Functions.format.ps1xml +++ /dev/null @@ -1,25710 +0,0 @@ - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.FunctionsIdentity - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.FunctionsIdentity - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AccountName - - - ActionName - - - AnalysisName - - - AppSettingKey - - - Authprovider - - - BackupId - - - BaseAddress - - - BasicAuthName - - - BlobServicesName - - - CertificateOrderName - - - ConnectionStringKey - - - ContainerName - - - DatabaseConnectionName - - - DeletedSiteId - - - DetectorName - - - DiagnosticCategory - - - DiagnosticsName - - - DomainName - - - DomainOwnershipIdentifierName - - - EntityName - - - EnvironmentName - - - FunctionAppName - - - FunctionName - - - GatewayName - - - HistoryName - - - HostName - - - HostingEnvironmentName - - - Id1 - - - ImmutabilityPolicyName - - - Instance - - - InstanceId - - - KeyId - - - KeyName - - - KeyType - - - LinkedBackendName - - - Location - - - ManagementPolicyName - - - Name - - - NamespaceName - - - OperationId - - - PremierAddOnName - - - PrivateEndpointConnectionName - - - ProcessId - - - PublicCertificateName - - - PurgeId - - - RelayName - - - RepetitionName - - - RequestHistoryName - - - ResourceGroupName - - - ResourceName - - - RouteName - - - RunName - - - Scope - - - SiteExtensionId - - - SiteName - - - Slot - - - SnapshotId - - - SourceControlType - - - SubscriptionId - - - TriggerName - - - Userid - - - VersionId - - - View - - - VnetName - - - WebJobName - - - WorkerName - - - WorkerPoolName - - - WorkflowName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.AccountSasParameters - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.AccountSasParameters - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IPAddressOrRange - - - KeyToSign - - - Permission - - - Protocol - - - ResourceType - - - Service - - - SharedAccessExpiryTime - - - SharedAccessStartTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ActiveDirectoryProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ActiveDirectoryProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - AzureStorageSid - - - DomainGuid - - - DomainName - - - DomainSid - - - ForestName - - - NetBiosDomainName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.AzureFilesIdentityBasedAuthentication - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.AzureFilesIdentityBasedAuthentication - - - - - - - - - - - - DirectoryServiceOption - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.BlobContainer - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.BlobContainer - - - - - - - - - - - - - - - Etag - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.BlobServiceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.BlobServiceProperties - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.BlobServicePropertiesAutoGenerated - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.BlobServicePropertiesAutoGenerated - - - - - - - - - - - - - - - AutomaticSnapshotPolicyEnabled - - - DefaultServiceVersion - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ChangeFeed - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ChangeFeed - - - - - - - - - - - - Enabled - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.CheckNameAvailabilityResult - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.CheckNameAvailabilityResult - - - - - - - - - - - - - - - - - - Message - - - NameAvailable - - - Reason - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ContainerProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ContainerProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - HasImmutabilityPolicy - - - HasLegalHold - - - LastModifiedTime - - - LeaseDuration - - - LeaseState - - - LeaseStatus - - - PublicAccess - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ContainerPropertiesMetadata - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ContainerPropertiesMetadata - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.CorsRule - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.CorsRule - - - - - - - - - - - - - - - - - - - - - - - - AllowedHeader - - - AllowedMethod - - - AllowedOrigin - - - ExposedHeader - - - MaxAgeInSecond - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.CustomDomain - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.CustomDomain - - - - - - - - - - - - - - - Name - - - UseSubDomainName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.DateAfterCreation - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.DateAfterCreation - - - - - - - - - - - - DaysAfterCreationGreaterThan - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.DateAfterModification - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.DateAfterModification - - - - - - - - - - - - DaysAfterModificationGreaterThan - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.DeleteRetentionPolicy - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.DeleteRetentionPolicy - - - - - - - - - - - - - - - Day - - - Enabled - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.DimensionAutoGenerated - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.DimensionAutoGenerated - - - - - - - - - - - - - - - DisplayName - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.Encryption - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.Encryption - - - - - - - - - - - - KeySource - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.EncryptionService - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.EncryptionService - - - - - - - - - - - - - - - Enabled - - - LastEnabledTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.Endpoints - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.Endpoints - - - - - - - - - - - - - - - - - - - - - - - - - - - Blob - - - Df - - - File - - - Queue - - - Table - - - Web - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.GeoReplicationStats - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.GeoReplicationStats - - - - - - - - - - - - - - - - - - CanFailover - - - LastSyncTime - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.Identity - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.Identity - - - - - - - - - - - - - - - PrincipalId - - - TenantId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ImmutabilityPolicy - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ImmutabilityPolicy - - - - - - - - - - - - - - - - - - Etag - - - Name - - - ETag - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ImmutabilityPolicyProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ImmutabilityPolicyProperties - - - - - - - - - - - - Etag - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ImmutabilityPolicyProperty - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ImmutabilityPolicyProperty - - - - - - - - - - - - - - - ImmutabilityPeriodSinceCreationInDay - - - State - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.IPRule - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.IPRule - - - - - - - - - - - - - - - Action - - - IPAddressOrRange - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.KeyVaultProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.KeyVaultProperties - - - - - - - - - - - - - - - - - - KeyName - - - KeyVaultUri - - - KeyVersion - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.LeaseContainerRequest - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.LeaseContainerRequest - - - - - - - - - - - - - - - - - - - - - - - - Action - - - BreakPeriod - - - LeaseDuration - - - LeaseId - - - ProposedLeaseId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.LeaseContainerResponse - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.LeaseContainerResponse - - - - - - - - - - - - - - - LeaseId - - - LeaseTimeSecond - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.LegalHold - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.LegalHold - - - - - - - - - - - - - - - HasLegalHold - - - Tag - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.LegalHoldProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.LegalHoldProperties - - - - - - - - - - - - HasLegalHold - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ListAccountSasResponse - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ListAccountSasResponse - - - - - - - - - - - - AccountSasToken - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ListContainerItem - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ListContainerItem - - - - - - - - - - - - - - - Etag - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ListContainerItems - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ListContainerItems - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ListServiceSasResponse - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ListServiceSasResponse - - - - - - - - - - - - ServiceSasToken - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ManagementPolicy - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ManagementPolicy - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ManagementPolicyFilter - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ManagementPolicyFilter - - - - - - - - - - - - - - - BlobType - - - PrefixMatch - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ManagementPolicyProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ManagementPolicyProperties - - - - - - - - - - - - LastModifiedTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ManagementPolicyRule - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ManagementPolicyRule - - - - - - - - - - - - - - - Enabled - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.MetricSpecificationAutoGenerated - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.MetricSpecificationAutoGenerated - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AggregationType - - - Category - - - DisplayDescription - - - DisplayName - - - FillGapWithZero - - - Name - - - ResourceIdDimensionNameOverride - - - Unit - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.NetworkRuleSet - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.NetworkRuleSet - - - - - - - - - - - - - - - Bypass - - - DefaultAction - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.OperationAutoGenerated - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.OperationAutoGenerated - - - - - - - - - - - - - - - Name - - - Origin - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.OperationDisplay - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.OperationDisplay - - - - - - - - - - - - - - - - - - - - - Description - - - Operation - - - Provider - - - Resource - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.Restriction - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.Restriction - - - - - - - - - - - - - - - ReasonCode - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ServiceSasParameters - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ServiceSasParameters - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CacheControl - - - CanonicalizedResource - - - ContentDisposition - - - ContentEncoding - - - ContentLanguage - - - ContentType - - - IPAddressOrRange - - - Identifier - - - KeyToSign - - - PartitionKeyEnd - - - PartitionKeyStart - - - Permission - - - Protocol - - - Resource - - - RowKeyEnd - - - RowKeyStart - - - SharedAccessExpiryTime - - - SharedAccessStartTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.Sku - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.Sku - - - - - - - - - - - - - - - - - - - - - - - - Kind - - - Location - - - Name - - - ResourceType - - - Tier - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.SkuCapability - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.SkuCapability - - - - - - - - - - - - - - - Name - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccount - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccount - - - - - - - - - - - - - - - - - - Location - - - Name - - - Kind - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountCheckNameAvailabilityParameters - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountCheckNameAvailabilityParameters - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountCreateParameters - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountCreateParameters - - - - - - - - - - - - - - - Kind - - - Location - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountCreateParametersTags - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountCreateParametersTags - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountKey - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountKey - - - - - - - - - - - - - - - - - - KeyName - - - Permission - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountListResult - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountListResult - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AccessTier - - - AllowBlobPublicAccess - - - AllowSharedKeyAccess - - - CreationTime - - - EnableHttpsTrafficOnly - - - FailoverInProgress - - - IsHnsEnabled - - - LargeFileSharesState - - - LastGeoFailoverTime - - - MinimumTlsVersion - - - PrimaryLocation - - - ProvisioningState - - - SecondaryLocation - - - StatusOfPrimary - - - StatusOfSecondary - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountPropertiesCreateParameters - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountPropertiesCreateParameters - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AccessTier - - - AllowBlobPublicAccess - - - AllowSharedKeyAccess - - - EnableHttpsTrafficOnly - - - IsHnsEnabled - - - LargeFileSharesState - - - MinimumTlsVersion - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountPropertiesUpdateParameters - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountPropertiesUpdateParameters - - - - - - - - - - - - - - - - - - - - - - - - - - - AccessTier - - - AllowBlobPublicAccess - - - AllowSharedKeyAccess - - - EnableHttpsTrafficOnly - - - LargeFileSharesState - - - MinimumTlsVersion - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountRegenerateKeyParameters - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountRegenerateKeyParameters - - - - - - - - - - - - KeyName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountUpdateParameters - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountUpdateParameters - - - - - - - - - - - - Kind - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountUpdateParametersTags - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountUpdateParametersTags - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.TagProperty - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.TagProperty - - - - - - - - - - - - - - - - - - - - - - - - ObjectIdentifier - - - Tag - - - TenantId - - - Timestamp - - - Upn - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.UpdateHistoryProperty - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.UpdateHistoryProperty - - - - - - - - - - - - - - - - - - - - - - - - - - - ImmutabilityPeriodSinceCreationInDay - - - ObjectIdentifier - - - TenantId - - - Timestamp - - - Update - - - Upn - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.UsageAutoGenerated - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.UsageAutoGenerated - - - - - - - - - - - - - - - - - - CurrentValue - - - Limit - - - Unit - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.UsageName - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.UsageName - - - - - - - - - - - - - - - LocalizedValue - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.VirtualNetworkRule - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.VirtualNetworkRule - - - - - - - - - - - - - - - - - - Action - - - State - - - VirtualNetworkResourceId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.CloudErrorBody - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.CloudErrorBody - - - - - - - - - - - - - - - - - - Code - - - Message - - - Target - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IdentityAutoGenerated - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IdentityAutoGenerated - - - - - - - - - - - - - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IdentityUpdate - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IdentityUpdate - - - - - - - - - - - - - - - Name - - - Location - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IdentityUpdateTags - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IdentityUpdateTags - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.OperationAutoGenerated2 - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.OperationAutoGenerated2 - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.OperationDisplayAutoGenerated - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.OperationDisplayAutoGenerated - - - - - - - - - - - - - - - - - - - - - Description - - - Operation - - - Provider - - - Resource - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.OperationListResultAutoGenerated - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.OperationListResultAutoGenerated - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.SystemAssignedIdentity - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.SystemAssignedIdentity - - - - - - - - - - - - - - - Name - - - Location - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.SystemAssignedIdentityProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.SystemAssignedIdentityProperties - - - - - - - - - - - - - - - - - - - - - ClientId - - - ClientSecretUrl - - - PrincipalId - - - TenantId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.SystemAssignedIdentityTags - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.SystemAssignedIdentityTags - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.UserAssignedIdentitiesListResult - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.UserAssignedIdentitiesListResult - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.UserAssignedIdentityProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.UserAssignedIdentityProperties - - - - - - - - - - - - - - - - - - ClientId - - - PrincipalId - - - TenantId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ApiKeyRequest - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ApiKeyRequest - - - - - - - - - - - - - - - - - - LinkedReadProperty - - - LinkedWriteProperty - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ApplicationInsightsComponent - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ApplicationInsightsComponent - - - - - - - - - - - - - - - - - - Location - - - Name - - - Kind - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ApplicationInsightsComponentApiKey - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ApplicationInsightsComponentApiKey - - - - - - - - - - - - - - - - - - - - - - - - ApiKey - - - CreatedDate - - - LinkedReadProperty - - - LinkedWriteProperty - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ApplicationInsightsComponentListResult - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ApplicationInsightsComponentListResult - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ApplicationInsightsComponentProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ApplicationInsightsComponentProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AppId - - - ApplicationId - - - ApplicationType - - - CreationDate - - - FlowType - - - HockeyAppId - - - HockeyAppToken - - - InstrumentationKey - - - ProvisioningState - - - RequestSource - - - SamplingPercentage - - - TenantId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ComponentPurgeBody - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ComponentPurgeBody - - - - - - - - - - - - Table - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ComponentPurgeBodyFilters - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ComponentPurgeBodyFilters - - - - - - - - - - - - - - - - - - Column - - - Key - - - Operator - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ComponentPurgeResponse - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ComponentPurgeResponse - - - - - - - - - - - - OperationId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ComponentPurgeStatusResponse - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ComponentPurgeStatusResponse - - - - - - - - - - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ComponentsResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ComponentsResource - - - - - - - - - - - - - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ComponentsResourceTags - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ComponentsResourceTags - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.TagsResourceTags - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.TagsResourceTags - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api10.AzureEntityResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api10.AzureEntityResource - - - - - - - - - - - - - - - Name - - - Etag - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api10.ProxyResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api10.ProxyResource - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api10.ResourceAutoGenerated - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api10.ResourceAutoGenerated - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api10.TrackedResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api10.TrackedResource - - - - - - - - - - - - - - - Name - - - Location - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api10.TrackedResourceTags - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api10.TrackedResourceTags - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AbnormalTimePeriod - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AbnormalTimePeriod - - - - - - - - - - - - - - - EndTime - - - StartTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Address - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Address - - - - - - - - - - - - - - - - - - - - - - - - - - - Address1 - - - Address2 - - - City - - - Country - - - PostalCode - - - State - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AddressResponse - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AddressResponse - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AddressResponseProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AddressResponseProperties - - - - - - - - - - - - - - - - - - InternalIPAddress - - - OutboundIPAddress - - - ServiceIPAddress - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AllowedAudiencesValidation - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AllowedAudiencesValidation - - - - - - - - - - - - AllowedAudience - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AllowedPrincipals - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AllowedPrincipals - - - - - - - - - - - - - - - Group - - - Identity - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AnalysisData - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AnalysisData - - - - - - - - - - - - Source - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AnalysisDefinition - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AnalysisDefinition - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AnalysisDefinitionProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AnalysisDefinitionProperties - - - - - - - - - - - - Description - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ApiDefinitionInfo - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ApiDefinitionInfo - - - - - - - - - - - - Url - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ApiKvReference - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ApiKvReference - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ApiKvReferenceCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ApiKvReferenceCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ApiKvReferenceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ApiKvReferenceProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ActiveVersion - - - Detail - - - Reference - - - SecretName - - - SecretVersion - - - Source - - - Status - - - VaultName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppInsightsWebAppStackSettings - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppInsightsWebAppStackSettings - - - - - - - - - - - - - - - IsDefaultOff - - - IsSupported - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Apple - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Apple - - - - - - - - - - - - Enabled - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppleRegistration - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppleRegistration - - - - - - - - - - - - - - - ClientId - - - ClientSecretSettingName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ApplicationStack - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ApplicationStack - - - - - - - - - - - - - - - - - - Dependency - - - Display - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ApplicationStackCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ApplicationStackCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ApplicationStackResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ApplicationStackResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppRegistration - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppRegistration - - - - - - - - - - - - - - - AppId - - - AppSecretSettingName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificate - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificate - - - - - - - - - - - - - - - - - - KeyVaultId - - - KeyVaultSecretName - - - ProvisioningState - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificateCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificateCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificateOrder - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificateOrder - - - - - - - - - - - - - - - - - - Kind - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificateOrderCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificateOrderCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificateOrderPatchResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificateOrderPatchResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificateOrderPatchResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificateOrderPatchResourceProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AppServiceCertificateNotRenewableReason - - - AutoRenew - - - Csr - - - DistinguishedName - - - DomainVerificationToken - - - ExpirationTime - - - IsPrivateKeyExternal - - - KeySize - - - LastCertificateIssuanceTime - - - NextAutoRenewalTimeStamp - - - ProductType - - - ProvisioningState - - - SerialNumber - - - Status - - - ValidityInYear - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificateOrderProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificateOrderProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AppServiceCertificateNotRenewableReason - - - AutoRenew - - - Csr - - - DistinguishedName - - - DomainVerificationToken - - - ExpirationTime - - - IsPrivateKeyExternal - - - KeySize - - - LastCertificateIssuanceTime - - - NextAutoRenewalTimeStamp - - - ProductType - - - ProvisioningState - - - SerialNumber - - - Status - - - ValidityInYear - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificatePatchResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificatePatchResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificateResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificateResource - - - - - - - - - - - - - - - - - - Kind - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceEnvironment - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceEnvironment - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DedicatedHostCount - - - DnsSuffix - - - FrontEndScaleFactor - - - HasLinuxWorker - - - InternalLoadBalancingMode - - - IpsslAddressCount - - - MaximumNumberOfMachine - - - MultiRoleCount - - - MultiSize - - - ProvisioningState - - - Status - - - Suspended - - - UpgradeAvailability - - - UpgradePreference - - - UserWhitelistedIPRange - - - ZoneRedundant - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceEnvironmentCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceEnvironmentCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceEnvironmentPatchResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceEnvironmentPatchResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceEnvironmentResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceEnvironmentResource - - - - - - - - - - - - - - - - - - Kind - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppserviceGithubToken - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppserviceGithubToken - - - - - - - - - - - - - - - - - - - - - - - - AccessToken - - - ErrorMessage - - - GotToken - - - Scope - - - TokenType - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppserviceGithubTokenRequest - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppserviceGithubTokenRequest - - - - - - - - - - - - - - - Code - - - State - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServicePlanCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServicePlanCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServicePlanPatchResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServicePlanPatchResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServicePlanPatchResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServicePlanPatchResourceProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ElasticScaleEnabled - - - FreeOfferExpirationTime - - - GeoRegion - - - HyperV - - - IsSpot - - - IsXenon - - - MaximumElasticWorkerCount - - - MaximumNumberOfWorker - - - NumberOfSite - - - NumberOfWorker - - - PerSiteScaling - - - ProvisioningState - - - Reserved - - - ResourceGroup - - - SpotExpirationTime - - - Status - - - Subscription - - - TargetWorkerCount - - - TargetWorkerSizeId - - - WorkerTierName - - - ZoneRedundant - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServicePlanProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServicePlanProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ElasticScaleEnabled - - - FreeOfferExpirationTime - - - GeoRegion - - - HyperV - - - IsSpot - - - IsXenon - - - MaximumElasticWorkerCount - - - MaximumNumberOfWorker - - - NumberOfSite - - - NumberOfWorker - - - PerSiteScaling - - - ProvisioningState - - - Reserved - - - ResourceGroup - - - SpotExpirationTime - - - Status - - - Subscription - - - TargetWorkerCount - - - TargetWorkerSizeId - - - WorkerTierName - - - ZoneRedundant - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ArmPlan - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ArmPlan - - - - - - - - - - - - - - - - - - - - - - - - Name - - - Product - - - PromotionCode - - - Publisher - - - Version - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AseRegion - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AseRegion - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AseRegionCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AseRegionCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AseRegionProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AseRegionProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - AvailableOS - - - AvailableSku - - - DedicatedHost - - - DisplayName - - - Standard - - - ZoneRedundant - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AseV3NetworkingConfiguration - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AseV3NetworkingConfiguration - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AseV3NetworkingConfigurationProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AseV3NetworkingConfigurationProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AllowNewPrivateEndpointConnection - - - ExternalInboundIPAddress - - - FtpEnabled - - - InboundIPAddressOverride - - - InternalInboundIPAddress - - - LinuxOutboundIPAddress - - - RemoteDebugEnabled - - - WindowsOutboundIPAddress - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AuthPlatform - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AuthPlatform - - - - - - - - - - - - - - - - - - ConfigFilePath - - - Enabled - - - RuntimeVersion - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AutoHealActions - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AutoHealActions - - - - - - - - - - - - - - - ActionType - - - MinProcessExecutionTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AutoHealCustomAction - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AutoHealCustomAction - - - - - - - - - - - - - - - Exe - - - Parameter - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AutoHealTriggers - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AutoHealTriggers - - - - - - - - - - - - PrivateBytesInKb - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureActiveDirectory - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureActiveDirectory - - - - - - - - - - - - - - - Enabled - - - IsAutoProvisioned - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureActiveDirectoryLogin - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureActiveDirectoryLogin - - - - - - - - - - - - - - - DisableWwwAuthenticate - - - LoginParameter - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureActiveDirectoryRegistration - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureActiveDirectoryRegistration - - - - - - - - - - - - - - - - - - - - - - - - - - - ClientId - - - ClientSecretCertificateIssuer - - - ClientSecretCertificateSubjectAlternativeName - - - ClientSecretCertificateThumbprint - - - ClientSecretSettingName - - - OpenIdIssuer - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureActiveDirectoryValidation - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureActiveDirectoryValidation - - - - - - - - - - - - AllowedAudience - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureBlobStorageApplicationLogsConfig - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureBlobStorageApplicationLogsConfig - - - - - - - - - - - - - - - - - - Level - - - RetentionInDay - - - SasUrl - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureBlobStorageHttpLogsConfig - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureBlobStorageHttpLogsConfig - - - - - - - - - - - - - - - - - - Enabled - - - RetentionInDay - - - SasUrl - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureResourceErrorInfo - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureResourceErrorInfo - - - - - - - - - - - - - - - Code - - - Message - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureStaticWebApps - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureStaticWebApps - - - - - - - - - - - - Enabled - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureStaticWebAppsRegistration - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureStaticWebAppsRegistration - - - - - - - - - - - - ClientId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureStorageInfoValue - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureStorageInfoValue - - - - - - - - - - - - - - - - - - - - - - - - - - - AccessKey - - - AccountName - - - MountPath - - - Protocol - - - ShareName - - - State - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureStoragePropertyDictionaryResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureStoragePropertyDictionaryResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureTableStorageApplicationLogsConfig - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureTableStorageApplicationLogsConfig - - - - - - - - - - - - - - - Level - - - SasUrl - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BackupItem - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BackupItem - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BackupItemCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BackupItemCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BackupItemProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BackupItemProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BackupId - - - BlobName - - - CorrelationId - - - Created - - - FinishedTimeStamp - - - LastRestoreTimeStamp - - - Log - - - Name - - - Scheduled - - - SizeInByte - - - Status - - - StorageAccountUrl - - - WebsiteSizeInByte - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BackupRequest - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BackupRequest - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BackupRequestProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BackupRequestProperties - - - - - - - - - - - - - - - - - - BackupName - - - Enabled - - - StorageAccountUrl - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BackupSchedule - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BackupSchedule - - - - - - - - - - - - - - - - - - - - - - - - - - - FrequencyInterval - - - FrequencyUnit - - - KeepAtLeastOneBackup - - - LastExecutionTime - - - RetentionPeriodInDay - - - StartTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BillingMeter - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BillingMeter - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BillingMeterCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BillingMeterCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BillingMeterProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BillingMeterProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BillingLocation - - - FriendlyName - - - MeterId - - - Multiplier - - - OSType - - - ResourceType - - - ShortName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BlobStorageTokenStore - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BlobStorageTokenStore - - - - - - - - - - - - SasUrlSettingName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Capability - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Capability - - - - - - - - - - - - - - - - - - Name - - - Reason - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Certificate - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Certificate - - - - - - - - - - - - - - - - - - Kind - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CertificateCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CertificateCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CertificateDetails - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CertificateDetails - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Issuer - - - NotAfter - - - NotBefore - - - RawData - - - SerialNumber - - - SignatureAlgorithm - - - Subject - - - Thumbprint - - - Version - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CertificateEmail - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CertificateEmail - - - - - - - - - - - - - - - EmailId - - - TimeStamp - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CertificateOrderAction - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CertificateOrderAction - - - - - - - - - - - - - - - ActionType - - - CreatedAt - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CertificateOrderContact - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CertificateOrderContact - - - - - - - - - - - - - - - - - - - - - Email - - - NameFirst - - - NameLast - - - Phone - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CertificatePatchResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CertificatePatchResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CertificatePatchResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CertificatePatchResourceProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CanonicalName - - - CerBlob - - - DomainValidationMethod - - - ExpirationDate - - - FriendlyName - - - HostName - - - IssueDate - - - Issuer - - - KeyVaultId - - - KeyVaultSecretName - - - KeyVaultSecretStatus - - - Password - - - PfxBlob - - - PublicKeyHash - - - SelfLink - - - ServerFarmId - - - SiteName - - - SubjectName - - - Thumbprint - - - Valid - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CertificateProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CertificateProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CanonicalName - - - CerBlob - - - DomainValidationMethod - - - ExpirationDate - - - FriendlyName - - - HostName - - - IssueDate - - - Issuer - - - KeyVaultId - - - KeyVaultSecretName - - - KeyVaultSecretStatus - - - Password - - - PfxBlob - - - PublicKeyHash - - - SelfLink - - - ServerFarmId - - - SiteName - - - SubjectName - - - Thumbprint - - - Valid - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ClientRegistration - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ClientRegistration - - - - - - - - - - - - - - - ClientId - - - ClientSecretSettingName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CloningInfo - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CloningInfo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CloneCustomHostName - - - CloneSourceControl - - - ConfigureLoadBalancing - - - CorrelationId - - - HostingEnvironment - - - Overwrite - - - SourceWebAppId - - - SourceWebAppLocation - - - TrafficManagerProfileId - - - TrafficManagerProfileName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CloningInfoAppSettingsOverrides - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CloningInfoAppSettingsOverrides - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ConnectionStringDictionary - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ConnectionStringDictionary - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ConnStringInfo - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ConnStringInfo - - - - - - - - - - - - - - - ConnectionString - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ConnStringValueTypePair - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ConnStringValueTypePair - - - - - - - - - - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Contact - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Contact - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Email - - - Fax - - - JobTitle - - - NameFirst - - - NameLast - - - NameMiddle - - - Organization - - - Phone - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Container - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Container - - - - - - - - - - - - - - - - - - - - - Arg - - - Command - - - Image - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContainerCpuStatistics - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContainerCpuStatistics - - - - - - - - - - - - - - - OnlineCpuCount - - - SystemCpuUsage - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContainerCpuUsage - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContainerCpuUsage - - - - - - - - - - - - - - - - - - - - - KernelModeUsage - - - PerCpuUsage - - - TotalUsage - - - UserModeUsage - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContainerInfo - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContainerInfo - - - - - - - - - - - - - - - - - - CurrentTimeStamp - - - Name - - - PreviousTimeStamp - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContainerMemoryStatistics - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContainerMemoryStatistics - - - - - - - - - - - - - - - - - - Limit - - - MaxUsage - - - Usage - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContainerNetworkInterfaceStatistics - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContainerNetworkInterfaceStatistics - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - RxByte - - - RxDropped - - - RxError - - - RxPacket - - - TxByte - - - TxDropped - - - TxError - - - TxPacket - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContainerResources - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContainerResources - - - - - - - - - - - - - - - Cpu - - - Memory - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContainerThrottlingData - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContainerThrottlingData - - - - - - - - - - - - - - - - - - Period - - - ThrottledPeriod - - - ThrottledTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContentHash - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContentHash - - - - - - - - - - - - - - - Algorithm - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContentLink - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContentLink - - - - - - - - - - - - - - - - - - ContentSize - - - ContentVersion - - - Uri - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContinuousWebJob - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContinuousWebJob - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContinuousWebJobCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContinuousWebJobCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContinuousWebJobProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContinuousWebJobProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DetailedStatus - - - Error - - - ExtraInfoUrl - - - LogUrl - - - RunCommand - - - Status - - - Url - - - UsingSdk - - - WebJobType - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CookieExpiration - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CookieExpiration - - - - - - - - - - - - - - - Convention - - - TimeToExpiration - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Correlation - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Correlation - - - - - - - - - - - - ClientTrackingId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CorsSettings - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CorsSettings - - - - - - - - - - - - - - - AllowedOrigin - - - SupportCredentials - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmDeploymentStatus - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmDeploymentStatus - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmDeploymentStatusCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmDeploymentStatusCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmDeploymentStatusProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmDeploymentStatusProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - DeploymentId - - - FailedInstancesLog - - - NumberOfInstancesFailed - - - NumberOfInstancesInProgress - - - NumberOfInstancesSuccessful - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmMoveResourceEnvelope - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmMoveResourceEnvelope - - - - - - - - - - - - - - - Resource - - - TargetResourceGroup - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmOperationCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmOperationCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmOperationDescription - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmOperationDescription - - - - - - - - - - - - - - - - - - IsDataAction - - - Name - - - Origin - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmOperationDisplay - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmOperationDisplay - - - - - - - - - - - - - - - - - - - - - Description - - - Operation - - - Provider - - - Resource - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmPublishingCredentialsPoliciesEntity - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmPublishingCredentialsPoliciesEntity - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmPublishingCredentialsPoliciesEntityProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmPublishingCredentialsPoliciesEntityProperties - - - - - - - - - - - - Allow - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmPublishingProfileOptions - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmPublishingProfileOptions - - - - - - - - - - - - - - - Format - - - IncludeDisasterRecoveryEndpoint - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmSlotEntity - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmSlotEntity - - - - - - - - - - - - - - - PreserveVnet - - - TargetSlot - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmUsageQuota - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmUsageQuota - - - - - - - - - - - - - - - - - - - - - CurrentValue - - - Limit - - - NextResetTime - - - Unit - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmUsageQuotaCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmUsageQuotaCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomDnsSuffixConfiguration - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomDnsSuffixConfiguration - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomDnsSuffixConfigurationProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomDnsSuffixConfigurationProperties - - - - - - - - - - - - - - - - - - - - - - - - CertificateUrl - - - DnsSuffix - - - KeyVaultReferenceIdentity - - - ProvisioningDetail - - - ProvisioningState - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomHostnameAnalysisResult - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomHostnameAnalysisResult - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomHostnameAnalysisResultProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomHostnameAnalysisResultProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARecord - - - AlternateCNameRecord - - - AlternateTxtRecord - - - CNameRecord - - - ConflictingAppResourceId - - - CustomDomainVerificationTest - - - HasConflictAcrossSubscription - - - HasConflictOnScaleUnit - - - IsHostnameAlreadyVerified - - - TxtRecord - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomHostnameSites - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomHostnameSites - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomHostnameSitesCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomHostnameSitesCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomHostnameSitesProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomHostnameSitesProperties - - - - - - - - - - - - - - - CustomHostname - - - Region - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomOpenIdConnectProvider - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomOpenIdConnectProvider - - - - - - - - - - - - Enabled - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomScaleRuleMetadata - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomScaleRuleMetadata - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Dapr - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Dapr - - - - - - - - - - - - - - - - - - AppId - - - AppPort - - - Enabled - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DaprComponent - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DaprComponent - - - - - - - - - - - - - - - Name - - - Version - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DaprConfig - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DaprConfig - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AppId - - - AppPort - - - EnableApiLogging - - - Enabled - - - HttpMaxRequestSize - - - HttpReadBufferSize - - - LogLevel - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DaprMetadata - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DaprMetadata - - - - - - - - - - - - - - - - - - Name - - - SecretRef - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DatabaseBackupSetting - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DatabaseBackupSetting - - - - - - - - - - - - - - - - - - - - - ConnectionString - - - ConnectionStringName - - - DatabaseType - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DatabaseConnection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DatabaseConnection - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DatabaseConnectionCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DatabaseConnectionCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DatabaseConnectionOverview - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DatabaseConnectionOverview - - - - - - - - - - - - - - - - - - - - - ConnectionIdentity - - - Name - - - Region - - - ResourceId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DatabaseConnectionPatchRequestProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DatabaseConnectionPatchRequestProperties - - - - - - - - - - - - - - - - - - - - - ConnectionIdentity - - - ConnectionString - - - Region - - - ResourceId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DatabaseConnectionProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DatabaseConnectionProperties - - - - - - - - - - - - - - - - - - - - - ConnectionIdentity - - - ConnectionString - - - Region - - - ResourceId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DataProviderMetadata - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DataProviderMetadata - - - - - - - - - - - - ProviderName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DataSource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DataSource - - - - - - - - - - - - Instruction - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DataTableResponseColumn - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DataTableResponseColumn - - - - - - - - - - - - - - - - - - ColumnName - - - ColumnType - - - DataType - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DataTableResponseObject - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DataTableResponseObject - - - - - - - - - - - - - - - Row - - - TableName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DefaultAuthorizationPolicy - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DefaultAuthorizationPolicy - - - - - - - - - - - - AllowedApplication - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DefaultErrorResponseError - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DefaultErrorResponseError - - - - - - - - - - - - - - - - - - - - - Code - - - Innererror - - - Message - - - Target - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DefaultErrorResponseErrorDetailsItem - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DefaultErrorResponseErrorDetailsItem - - - - - - - - - - - - - - - - - - Code - - - Message - - - Target - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DeletedAppRestoreRequest - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DeletedAppRestoreRequest - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DeletedAppRestoreRequestProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DeletedAppRestoreRequestProperties - - - - - - - - - - - - - - - - - - - - - DeletedSiteId - - - RecoverConfiguration - - - SnapshotTime - - - UseDrSecondary - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DeletedSite - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DeletedSite - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DeletedSiteProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DeletedSiteProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DeletedSiteId - - - DeletedSiteName - - - DeletedTimestamp - - - GeoRegionName - - - Kind - - - ResourceGroup - - - Slot - - - Subscription - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DeletedWebAppCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DeletedWebAppCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Deployment - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Deployment - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DeploymentCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DeploymentCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DeploymentProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DeploymentProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Active - - - Author - - - AuthorEmail - - - Deployer - - - Detail - - - EndTime - - - Message - - - StartTime - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DetectorAbnormalTimePeriod - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DetectorAbnormalTimePeriod - - - - - - - - - - - - - - - - - - - - - - - - EndTime - - - Message - - - Priority - - - Source - - - StartTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DetectorDefinition - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DetectorDefinition - - - - - - - - - - - - - - - - - - - - - Description - - - DisplayName - - - IsEnabled - - - Rank - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DetectorDefinitionResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DetectorDefinitionResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DetectorInfo - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DetectorInfo - - - - - - - - - - - - - - - - - - - - - - - - - - - AnalysisType - - - Author - - - Category - - - Description - - - Name - - - Score - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DetectorResponse - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DetectorResponse - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DetectorResponseCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DetectorResponseCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticAnalysis - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticAnalysis - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticAnalysisCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticAnalysisCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticAnalysisProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticAnalysisProperties - - - - - - - - - - - - - - - EndTime - - - StartTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticCategory - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticCategory - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticCategoryCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticCategoryCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticCategoryProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticCategoryProperties - - - - - - - - - - - - Description - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticDetectorCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticDetectorCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticDetectorResponse - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticDetectorResponse - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticDetectorResponseProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticDetectorResponseProperties - - - - - - - - - - - - - - - - - - EndTime - - - IssueDetected - - - StartTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticMetricSample - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticMetricSample - - - - - - - - - - - - - - - - - - - - - - - - - - - IsAggregated - - - Maximum - - - Minimum - - - RoleInstance - - - Timestamp - - - Total - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticMetricSet - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticMetricSet - - - - - - - - - - - - - - - - - - - - - - - - EndTime - - - Name - - - StartTime - - - TimeGrain - - - Unit - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Dimension - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Dimension - - - - - - - - - - - - - - - - - - - - - DisplayName - - - InternalName - - - Name - - - ToBeExportedForShoebox - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Domain - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Domain - - - - - - - - - - - - - - - - - - Kind - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainAvailabilityCheckResult - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainAvailabilityCheckResult - - - - - - - - - - - - - - - - - - Available - - - DomainType - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainControlCenterSsoRequest - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainControlCenterSsoRequest - - - - - - - - - - - - - - - - - - PostParameterKey - - - PostParameterValue - - - Url - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainOwnershipIdentifier - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainOwnershipIdentifier - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainOwnershipIdentifierCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainOwnershipIdentifierCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainOwnershipIdentifierProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainOwnershipIdentifierProperties - - - - - - - - - - - - OwnershipId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainPatchResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainPatchResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainPatchResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainPatchResourceProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AuthCode - - - AutoRenew - - - CreatedTime - - - DnsType - - - DnsZoneId - - - DomainNotRenewableReason - - - ExpirationTime - - - LastRenewedTime - - - NameServer - - - Privacy - - - ProvisioningState - - - ReadyForDnsRecordManagement - - - RegistrationStatus - - - TargetDnsType - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AuthCode - - - AutoRenew - - - CreatedTime - - - DnsType - - - DnsZoneId - - - DomainNotRenewableReason - - - ExpirationTime - - - LastRenewedTime - - - NameServer - - - Privacy - - - ProvisioningState - - - ReadyForDnsRecordManagement - - - RegistrationStatus - - - TargetDnsType - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainPurchaseConsent - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainPurchaseConsent - - - - - - - - - - - - - - - - - - AgreedAt - - - AgreedBy - - - AgreementKey - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainRecommendationSearchParameters - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainRecommendationSearchParameters - - - - - - - - - - - - - - - Keyword - - - MaxDomainRecommendation - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.EnabledConfig - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.EnabledConfig - - - - - - - - - - - - Enabled - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.EndpointDependency - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.EndpointDependency - - - - - - - - - - - - DomainName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.EndpointDetail - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.EndpointDetail - - - - - - - - - - - - - - - - - - - - - IPAddress - - - IsAccessible - - - Latency - - - Port - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.EnvironmentVar - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.EnvironmentVar - - - - - - - - - - - - - - - - - - Name - - - SecretRef - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.EnvironmentVariable - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.EnvironmentVariable - - - - - - - - - - - - - - - Name - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ErrorEntity - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ErrorEntity - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - ExtendedCode - - - Message - - - MessageTemplate - - - Parameter - - - Target - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ErrorInfo - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ErrorInfo - - - - - - - - - - - - Code - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ErrorProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ErrorProperties - - - - - - - - - - - - - - - Code - - - Message - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Expression - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Expression - - - - - - - - - - - - Text - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ExpressionRoot - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ExpressionRoot - - - - - - - - - - - - - - - - - - - - - Code - - - Message - - - Text - - - Path - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ExpressionTraces - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ExpressionTraces - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ExtendedLocation - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ExtendedLocation - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Facebook - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Facebook - - - - - - - - - - - - - - - Enabled - - - GraphApiVersion - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FileSystemApplicationLogsConfig - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FileSystemApplicationLogsConfig - - - - - - - - - - - - Level - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FileSystemHttpLogsConfig - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FileSystemHttpLogsConfig - - - - - - - - - - - - - - - - - - Enabled - - - RetentionInDay - - - RetentionInMb - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FileSystemTokenStore - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FileSystemTokenStore - - - - - - - - - - - - Directory - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ForwardProxy - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ForwardProxy - - - - - - - - - - - - - - - - - - Convention - - - CustomHostHeaderName - - - CustomProtoHeaderName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionAppMajorVersion - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionAppMajorVersion - - - - - - - - - - - - - - - DisplayText - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionAppMinorVersion - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionAppMinorVersion - - - - - - - - - - - - - - - DisplayText - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionAppRuntimeSettings - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionAppRuntimeSettings - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EndOfLifeDate - - - IsAutoUpdate - - - IsDefault - - - IsDeprecated - - - IsEarlyAccess - - - IsHidden - - - IsPreview - - - RemoteDebuggingSupported - - - RuntimeVersion - - - SupportedFunctionsExtensionVersion - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionAppRuntimeSettingsAppSettingsDictionary - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionAppRuntimeSettingsAppSettingsDictionary - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionAppStack - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionAppStack - - - - - - - - - - - - - - - - - - Kind - - - Name - - - Location - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionAppStackCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionAppStackCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionAppStackProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionAppStackProperties - - - - - - - - - - - - - - - - - - DisplayText - - - PreferredOS - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionEnvelope - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionEnvelope - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionEnvelopeCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionEnvelopeCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionEnvelopeProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionEnvelopeProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ConfigHref - - - FunctionAppId - - - Href - - - InvokeUrlTemplate - - - IsDisabled - - - Language - - - ScriptHref - - - ScriptRootPathHref - - - SecretsFileHref - - - TestData - - - TestDataHref - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionEnvelopePropertiesFiles - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionEnvelopePropertiesFiles - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionsAlwaysReadyConfig - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionsAlwaysReadyConfig - - - - - - - - - - - - - - - InstanceCount - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionsDeploymentStorage - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionsDeploymentStorage - - - - - - - - - - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionsDeploymentStorageAuthentication - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionsDeploymentStorageAuthentication - - - - - - - - - - - - - - - StorageAccountConnectionStringName - - - UserAssignedIdentityResourceId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionSecrets - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionSecrets - - - - - - - - - - - - - - - Key - - - TriggerUrl - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionsRuntime - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionsRuntime - - - - - - - - - - - - - - - Name - - - Version - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionsScaleAndConcurrency - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionsScaleAndConcurrency - - - - - - - - - - - - - - - InstanceMemoryMb - - - MaximumInstanceCount - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionsScaleAndConcurrencyTriggersHttp - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionsScaleAndConcurrencyTriggersHttp - - - - - - - - - - - - PerInstanceConcurrency - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GeoRegion - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GeoRegion - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GeoRegionCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GeoRegionCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GeoRegionProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GeoRegionProperties - - - - - - - - - - - - - - - - - - Description - - - DisplayName - - - OrgDomain - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GitHub - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GitHub - - - - - - - - - - - - Enabled - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GitHubActionCodeConfiguration - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GitHubActionCodeConfiguration - - - - - - - - - - - - - - - RuntimeStack - - - RuntimeVersion - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GitHubActionConfiguration - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GitHubActionConfiguration - - - - - - - - - - - - - - - GenerateWorkflowFile - - - IsLinux - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GitHubActionContainerConfiguration - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GitHubActionContainerConfiguration - - - - - - - - - - - - - - - - - - - - - ImageName - - - Password - - - ServerUrl - - - Username - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GitHubActionWebAppStackSettings - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GitHubActionWebAppStackSettings - - - - - - - - - - - - - - - IsSupported - - - SupportedVersion - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GlobalCsmSkuDescription - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GlobalCsmSkuDescription - - - - - - - - - - - - - - - - - - - - - - - - Family - - - Location - - - Name - - - Size - - - Tier - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GlobalValidation - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GlobalValidation - - - - - - - - - - - - - - - - - - - - - ExcludedPath - - - RedirectToProvider - - - RequireAuthentication - - - UnauthenticatedClientAction - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Google - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Google - - - - - - - - - - - - Enabled - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HandlerMapping - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HandlerMapping - - - - - - - - - - - - - - - - - - Argument - - - Extension - - - ScriptProcessor - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostingEnvironmentDeploymentInfo - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostingEnvironmentDeploymentInfo - - - - - - - - - - - - - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostingEnvironmentDiagnostics - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostingEnvironmentDiagnostics - - - - - - - - - - - - - - - DiagnosticsOutput - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostingEnvironmentProfile - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostingEnvironmentProfile - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostKeys - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostKeys - - - - - - - - - - - - MasterKey - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostKeysFunctionKeys - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostKeysFunctionKeys - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostKeysSystemKeys - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostKeysSystemKeys - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostName - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostName - - - - - - - - - - - - - - - - - - - - - - - - AzureResourceName - - - AzureResourceType - - - CustomHostNameDnsRecordType - - - Name - - - SiteName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostNameBinding - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostNameBinding - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostNameBindingCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostNameBindingCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostNameBindingProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostNameBindingProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AzureResourceName - - - AzureResourceType - - - CustomHostNameDnsRecordType - - - DomainId - - - HostNameType - - - SiteName - - - SslState - - - Thumbprint - - - VirtualIP - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostNameSslState - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostNameSslState - - - - - - - - - - - - - - - - - - - - - - - - - - - HostType - - - Name - - - SslState - - - Thumbprint - - - ToUpdate - - - VirtualIP - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HttpScaleRuleMetadata - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HttpScaleRuleMetadata - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HttpSettings - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HttpSettings - - - - - - - - - - - - RequireHttps - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HttpSettingsRoutes - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HttpSettingsRoutes - - - - - - - - - - - - ApiPrefix - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HybridConnection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HybridConnection - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HybridConnectionCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HybridConnectionCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HybridConnectionKey - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HybridConnectionKey - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HybridConnectionKeyProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HybridConnectionKeyProperties - - - - - - - - - - - - - - - SendKeyName - - - SendKeyValue - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HybridConnectionLimits - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HybridConnectionLimits - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HybridConnectionLimitsProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HybridConnectionLimitsProperties - - - - - - - - - - - - - - - Current - - - Maximum - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HybridConnectionProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HybridConnectionProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Hostname - - - Port - - - RelayArmUri - - - RelayName - - - SendKeyName - - - SendKeyValue - - - ServiceBusNamespace - - - ServiceBusSuffix - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Identifier - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Identifier - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IdentifierCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IdentifierCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IdentifierProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IdentifierProperties - - - - - - - - - - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.InboundEnvironmentEndpoint - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.InboundEnvironmentEndpoint - - - - - - - - - - - - - - - - - - Description - - - Endpoint - - - Port - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.InboundEnvironmentEndpointCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.InboundEnvironmentEndpointCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IPAddress - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IPAddress - - - - - - - - - - - - Address - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IPAddressRange - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IPAddressRange - - - - - - - - - - - - AddressRange - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IPSecurityRestriction - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IPSecurityRestriction - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Action - - - Description - - - IPAddress - - - Name - - - Priority - - - SubnetMask - - - SubnetTrafficTag - - - Tag - - - VnetSubnetResourceId - - - VnetTrafficTag - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IPSecurityRestrictionHeaders - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IPSecurityRestrictionHeaders - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.JsonSchema - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.JsonSchema - - - - - - - - - - - - - - - Content - - - Title - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.JwtClaimChecks - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.JwtClaimChecks - - - - - - - - - - - - - - - AllowedClientApplication - - - AllowedGroup - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.KeyInfo - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.KeyInfo - - - - - - - - - - - - - - - Name - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.KeyValuePairStringObject - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.KeyValuePairStringObject - - - - - - - - - - - - Key - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.KubeEnvironmentProfile - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.KubeEnvironmentProfile - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.LegacyMicrosoftAccount - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.LegacyMicrosoftAccount - - - - - - - - - - - - Enabled - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.LinuxJavaContainerSettings - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.LinuxJavaContainerSettings - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EndOfLifeDate - - - IsAutoUpdate - - - IsDeprecated - - - IsEarlyAccess - - - IsHidden - - - IsPreview - - - Java11Runtime - - - Java8Runtime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.LocalizableString - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.LocalizableString - - - - - - - - - - - - - - - LocalizedValue - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Login - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Login - - - - - - - - - - - - - - - AllowedExternalRedirectUrl - - - PreserveUrlFragmentsForLogin - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.LoginRoutes - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.LoginRoutes - - - - - - - - - - - - LogoutEndpoint - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.LoginScopes - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.LoginScopes - - - - - - - - - - - - Scope - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.LogSpecification - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.LogSpecification - - - - - - - - - - - - - - - - - - - - - BlobDuration - - - DisplayName - - - LogFilterPattern - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ManagedServiceIdentity - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ManagedServiceIdentity - - - - - - - - - - - - - - - PrincipalId - - - TenantId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MetricAvailability - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MetricAvailability - - - - - - - - - - - - - - - BlobDuration - - - TimeGrain - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MetricSpecification - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MetricSpecification - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AggregationType - - - Category - - - DisplayDescription - - - DisplayName - - - EnableRegionalMdmAccount - - - FillGapWithZero - - - IsInternal - - - MetricFilterPattern - - - Name - - - SourceMdmAccount - - - SourceMdmNamespace - - - SupportedAggregationType - - - SupportedTimeGrainType - - - SupportsInstanceLevelAggregation - - - Unit - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MigrateMySqlRequest - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MigrateMySqlRequest - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MigrateMySqlRequestProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MigrateMySqlRequestProperties - - - - - - - - - - - - - - - ConnectionString - - - MigrationType - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MigrateMySqlStatus - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MigrateMySqlStatus - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MigrateMySqlStatusProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MigrateMySqlStatusProperties - - - - - - - - - - - - - - - - - - LocalMySqlEnabled - - - MigrationOperationStatus - - - OperationId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MSDeploy - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MSDeploy - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MSDeployCore - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MSDeployCore - - - - - - - - - - - - - - - - - - - - - - - - - - - AppOffline - - - ConnectionString - - - DbType - - - PackageUri - - - SetParametersXmlFileUri - - - SkipAppData - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MSDeployCoreSetParameters - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MSDeployCoreSetParameters - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MSDeployLog - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MSDeployLog - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MSDeployLogEntry - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MSDeployLogEntry - - - - - - - - - - - - - - - Message - - - Time - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MSDeployStatus - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MSDeployStatus - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MSDeployStatusProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MSDeployStatusProperties - - - - - - - - - - - - - - - - - - - - - - - - Complete - - - Deployer - - - EndTime - - - ProvisioningState - - - StartTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.NameIdentifier - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.NameIdentifier - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.NameIdentifierCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.NameIdentifierCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.NameValuePair - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.NameValuePair - - - - - - - - - - - - - - - Name - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.NetworkFeatures - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.NetworkFeatures - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.NetworkFeaturesProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.NetworkFeaturesProperties - - - - - - - - - - - - VirtualNetworkName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.NetworkTrace - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.NetworkTrace - - - - - - - - - - - - - - - - - - Message - - - Path - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Nonce - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Nonce - - - - - - - - - - - - - - - ExpirationInterval - - - ValidateNonce - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OpenAuthenticationPolicyClaim - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OpenAuthenticationPolicyClaim - - - - - - - - - - - - - - - Name - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OpenIdConnectClientCredential - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OpenIdConnectClientCredential - - - - - - - - - - - - - - - ClientSecretSettingName - - - Method - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OpenIdConnectConfig - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OpenIdConnectConfig - - - - - - - - - - - - - - - - - - - - - - - - AuthorizationEndpoint - - - CertificationUri - - - Issuer - - - TokenEndpoint - - - WellKnownOpenIdConfiguration - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OpenIdConnectLogin - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OpenIdConnectLogin - - - - - - - - - - - - - - - NameClaimType - - - Scope - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OpenIdConnectRegistration - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OpenIdConnectRegistration - - - - - - - - - - - - ClientId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Operation - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Operation - - - - - - - - - - - - - - - - - - - - - - - - - - - CreatedTime - - - ExpirationTime - - - GeoMasterOperationId - - - ModifiedTime - - - Name - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OperationResult - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OperationResult - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - CorrelationActionTrackingId - - - CorrelationClientKeyword - - - CorrelationClientTrackingId - - - EndTime - - - StartTime - - - Status - - - IterationCount - - - TrackingId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OperationResultProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OperationResultProperties - - - - - - - - - - - - - - - - - - - - - Code - - - EndTime - - - StartTime - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OutboundEnvironmentEndpoint - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OutboundEnvironmentEndpoint - - - - - - - - - - - - Category - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OutboundEnvironmentEndpointCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OutboundEnvironmentEndpointCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PerfMonCounterCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PerfMonCounterCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PerfMonResponse - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PerfMonResponse - - - - - - - - - - - - - - - Code - - - Message - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PerfMonSample - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PerfMonSample - - - - - - - - - - - - - - - - - - InstanceName - - - Time - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PerfMonSet - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PerfMonSet - - - - - - - - - - - - - - - - - - - - - EndTime - - - Name - - - StartTime - - - TimeGrain - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PremierAddOn - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PremierAddOn - - - - - - - - - - - - - - - - - - Kind - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PremierAddOnOffer - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PremierAddOnOffer - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PremierAddOnOfferCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PremierAddOnOfferCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PremierAddOnOfferProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PremierAddOnOfferProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LegalTermsUrl - - - MarketplaceOffer - - - MarketplacePublisher - - - PrivacyPolicyUrl - - - Product - - - PromoCodeRequired - - - Quota - - - Sku - - - Vendor - - - WebHostingPlanRestriction - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PremierAddOnPatchResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PremierAddOnPatchResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PremierAddOnPatchResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PremierAddOnPatchResourceProperties - - - - - - - - - - - - - - - - - - - - - - - - MarketplaceOffer - - - MarketplacePublisher - - - Product - - - Sku - - - Vendor - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PremierAddOnProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PremierAddOnProperties - - - - - - - - - - - - - - - - - - - - - - - - MarketplaceOffer - - - MarketplacePublisher - - - Product - - - Sku - - - Vendor - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateAccess - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateAccess - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateAccessProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateAccessProperties - - - - - - - - - - - - Enabled - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateAccessSubnet - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateAccessSubnet - - - - - - - - - - - - - - - Key - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateAccessVirtualNetwork - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateAccessVirtualNetwork - - - - - - - - - - - - - - - - - - Key - - - Name - - - ResourceId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateEndpointConnectionCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateEndpointConnectionCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateLinkConnectionApprovalRequestResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateLinkConnectionApprovalRequestResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateLinkConnectionState - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateLinkConnectionState - - - - - - - - - - - - - - - - - - ActionsRequired - - - Description - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateLinkResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateLinkResource - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateLinkResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateLinkResourceProperties - - - - - - - - - - - - - - - - - - GroupId - - - RequiredMember - - - RequiredZoneName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessInfo - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessInfo - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessInfoCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessInfoCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessInfoProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessInfoProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Child - - - CommandLine - - - DeploymentName - - - Description - - - FileName - - - HandleCount - - - Href - - - Identifier - - - IisProfileTimeoutInSecond - - - IsIisProfileRunning - - - IsProfileRunning - - - IsScmSite - - - IsWebjob - - - Minidump - - - ModuleCount - - - NonPagedSystemMemory - - - OpenFileHandle - - - PagedMemory - - - PagedSystemMemory - - - Parent - - - PeakPagedMemory - - - PeakVirtualMemory - - - PeakWorkingSet - - - PrivateMemory - - - PrivilegedCpuTime - - - StartTime - - - ThreadCount - - - TimeStamp - - - TotalCpuTime - - - UserCpuTime - - - UserName - - - VirtualMemory - - - WorkingSet - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessInfoPropertiesEnvironmentVariables - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessInfoPropertiesEnvironmentVariables - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessModuleInfo - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessModuleInfo - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessModuleInfoCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessModuleInfoCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessModuleInfoProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessModuleInfoProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BaseAddress - - - FileDescription - - - FileName - - - FilePath - - - FileVersion - - - Href - - - IsDebug - - - Language - - - ModuleMemorySize - - - Product - - - ProductVersion - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessThreadInfo - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessThreadInfo - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessThreadInfoCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessThreadInfoCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessThreadInfoProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessThreadInfoProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BasePriority - - - CurrentPriority - - - Href - - - Identifier - - - PriorityLevel - - - Process - - - StartAddress - - - StartTime - - - State - - - TotalProcessorTime - - - UserProcessorTime - - - WaitReason - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProxyOnlyResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProxyOnlyResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PublicCertificate - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PublicCertificate - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PublicCertificateCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PublicCertificateCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PublicCertificateProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PublicCertificateProperties - - - - - - - - - - - - - - - - - - Blob - - - PublicCertificateLocation - - - Thumbprint - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PublishingCredentialsPoliciesCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PublishingCredentialsPoliciesCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PushSettings - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PushSettings - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PushSettingsProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PushSettingsProperties - - - - - - - - - - - - - - - - - - - - - DynamicTagsJson - - - IsPushEnabled - - - TagWhitelistJson - - - TagsRequiringAuth - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.QueryUtterancesResult - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.QueryUtterancesResult - - - - - - - - - - - - Score - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.QueryUtterancesResults - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.QueryUtterancesResults - - - - - - - - - - - - Query - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.QueueScaleRule - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.QueueScaleRule - - - - - - - - - - - - - - - QueueLength - - - QueueName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RampUpRule - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RampUpRule - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ActionHostName - - - ChangeDecisionCallbackUrl - - - ChangeIntervalInMinute - - - ChangeStep - - - MaxReroutePercentage - - - MinReroutePercentage - - - Name - - - ReroutePercentage - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Recommendation - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Recommendation - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RecommendationCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RecommendationCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RecommendationProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RecommendationProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ActionName - - - BladeName - - - CategoryTag - - - Channel - - - CreationTime - - - DisplayName - - - Enabled - - - EndTime - - - ExtensionName - - - ForwardLink - - - IsDynamic - - - Level - - - Message - - - NextNotificationTime - - - NotificationExpirationTime - - - NotifiedTime - - - RecommendationId - - - ResourceId - - - ResourceScope - - - RuleName - - - Score - - - StartTime - - - State - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RecommendationRule - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RecommendationRule - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RecommendationRuleProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RecommendationRuleProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ActionName - - - BladeName - - - CategoryTag - - - Channel - - - Description - - - DisplayName - - - ExtensionName - - - ForwardLink - - - IsDynamic - - - Level - - - Message - - - RecommendationId - - - RecommendationName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RecurrenceSchedule - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RecurrenceSchedule - - - - - - - - - - - - - - - - - - - - - Hour - - - Minute - - - MonthDay - - - WeekDay - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RecurrenceScheduleOccurrence - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RecurrenceScheduleOccurrence - - - - - - - - - - - - - - - Day - - - Occurrence - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RegenerateActionParameter - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RegenerateActionParameter - - - - - - - - - - - - KeyType - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ReissueCertificateOrderRequest - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ReissueCertificateOrderRequest - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ReissueCertificateOrderRequestProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ReissueCertificateOrderRequestProperties - - - - - - - - - - - - - - - - - - - - - Csr - - - DelayExistingRevokeInHour - - - IsPrivateKeyExternal - - - KeySize - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RelayServiceConnectionEntity - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RelayServiceConnectionEntity - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RelayServiceConnectionEntityProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RelayServiceConnectionEntityProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BiztalkUri - - - EntityConnectionString - - - EntityName - - - Hostname - - - Port - - - ResourceConnectionString - - - ResourceType - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RemotePrivateEndpointConnection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RemotePrivateEndpointConnection - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RemotePrivateEndpointConnectionArmResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RemotePrivateEndpointConnectionArmResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RemotePrivateEndpointConnectionArmResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RemotePrivateEndpointConnectionArmResourceProperties - - - - - - - - - - - - - - - IPAddress - - - ProvisioningState - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RemotePrivateEndpointConnectionProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RemotePrivateEndpointConnectionProperties - - - - - - - - - - - - - - - IPAddress - - - ProvisioningState - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Rendering - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Rendering - - - - - - - - - - - - - - - Description - - - Title - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RenewCertificateOrderRequest - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RenewCertificateOrderRequest - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RenewCertificateOrderRequestProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RenewCertificateOrderRequestProperties - - - - - - - - - - - - - - - - - - Csr - - - IsPrivateKeyExternal - - - KeySize - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RepetitionIndex - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RepetitionIndex - - - - - - - - - - - - - - - ItemIndex - - - ScopeName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Request - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Request - - - - - - - - - - - - - - - Method - - - Uri - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RequestHistory - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RequestHistory - - - - - - - - - - - - - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RequestHistoryListResult - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RequestHistoryListResult - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RequestHistoryProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RequestHistoryProperties - - - - - - - - - - - - - - - EndTime - - - StartTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RequestsBasedTrigger - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RequestsBasedTrigger - - - - - - - - - - - - - - - Count - - - TimeInterval - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Resource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Resource - - - - - - - - - - - - - - - - - - Kind - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceCollection - - - - - - - - - - - - - - - NextLink - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceConfig - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceConfig - - - - - - - - - - - - - - - Cpu - - - Memory - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceHealthMetadata - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceHealthMetadata - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceHealthMetadataCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceHealthMetadataCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceHealthMetadataProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceHealthMetadataProperties - - - - - - - - - - - - - - - Category - - - SignalAvailability - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceMetricAvailability - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceMetricAvailability - - - - - - - - - - - - - - - Retention - - - TimeGrain - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceMetricDefinition - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceMetricDefinition - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceMetricDefinitionCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceMetricDefinitionCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceMetricDefinitionProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceMetricDefinitionProperties - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceMetricDefinitionProperties1 - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceMetricDefinitionProperties1 - - - - - - - - - - - - - - - - - - PrimaryAggregationType - - - ResourceUri - - - Unit - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceNameAvailability - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceNameAvailability - - - - - - - - - - - - - - - - - - Message - - - NameAvailable - - - Reason - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceNameAvailabilityRequest - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceNameAvailabilityRequest - - - - - - - - - - - - - - - - - - EnvironmentId - - - IsFqdn - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceReference - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceReference - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceTags - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceTags - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Response - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Response - - - - - - - - - - - - StatusCode - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResponseMessageEnvelopeRemotePrivateEndpointConnection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResponseMessageEnvelopeRemotePrivateEndpointConnection - - - - - - - - - - - - - - - - - - - - - Location - - - Name - - - Status - - - Zone - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResponseMessageEnvelopeRemotePrivateEndpointConnectionTags - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResponseMessageEnvelopeRemotePrivateEndpointConnectionTags - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RestoreRequest - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RestoreRequest - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RestoreRequestProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RestoreRequestProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AdjustConnectionString - - - AppServicePlan - - - BlobName - - - HostingEnvironment - - - IgnoreConflictingHostName - - - IgnoreDatabase - - - OperationType - - - Overwrite - - - SiteName - - - StorageAccountUrl - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RetryHistory - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RetryHistory - - - - - - - - - - - - - - - - - - - - - - - - ClientRequestId - - - Code - - - EndTime - - - ServiceRequestId - - - StartTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RunActionCorrelation - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RunActionCorrelation - - - - - - - - - - - - - - - - - - ClientKeyword - - - ClientTrackingId - - - ActionTrackingId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RunCorrelation - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RunCorrelation - - - - - - - - - - - - - - - ClientKeyword - - - ClientTrackingId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SampleUtterance - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SampleUtterance - - - - - - - - - - - - - - - - - - Link - - - Qid - - - Text - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Scale - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Scale - - - - - - - - - - - - - - - MaxReplica - - - MinReplica - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ScaleRule - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ScaleRule - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ScaleRuleAuth - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ScaleRuleAuth - - - - - - - - - - - - - - - SecretRef - - - TriggerParameter - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteAuthSettings - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteAuthSettings - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteAuthSettingsProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteAuthSettingsProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AadClaimsAuthorization - - - AdditionalLoginParam - - - AllowedAudience - - - AllowedExternalRedirectUrl - - - AuthFilePath - - - ClientId - - - ClientSecret - - - ClientSecretCertificateThumbprint - - - ClientSecretSettingName - - - ConfigVersion - - - DefaultProvider - - - Enabled - - - FacebookAppId - - - FacebookAppSecret - - - FacebookAppSecretSettingName - - - FacebookOAuthScope - - - GitHubClientId - - - GitHubClientSecret - - - GitHubClientSecretSettingName - - - GitHubOAuthScope - - - GoogleClientId - - - GoogleClientSecret - - - GoogleClientSecretSettingName - - - GoogleOAuthScope - - - IsAuthFromFile - - - Issuer - - - MicrosoftAccountClientId - - - MicrosoftAccountClientSecret - - - MicrosoftAccountClientSecretSettingName - - - MicrosoftAccountOAuthScope - - - RuntimeVersion - - - TokenRefreshExtensionHour - - - TokenStoreEnabled - - - TwitterConsumerKey - - - TwitterConsumerSecret - - - TwitterConsumerSecretSettingName - - - UnauthenticatedClientAction - - - ValidateIssuer - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteAuthSettingsV2 - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteAuthSettingsV2 - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteCloneability - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteCloneability - - - - - - - - - - - - Result - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteCloneabilityCriterion - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteCloneabilityCriterion - - - - - - - - - - - - - - - Description - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteConfig - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteConfig - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AcrUseManagedIdentityCred - - - AcrUserManagedIdentityId - - - AlwaysOn - - - AppCommandLine - - - AutoHealEnabled - - - AutoSwapSlotName - - - DefaultDocument - - - DetailedErrorLoggingEnabled - - - DocumentRoot - - - ElasticWebAppScaleLimit - - - FtpsState - - - FunctionAppScaleLimit - - - FunctionsRuntimeScaleMonitoringEnabled - - - HealthCheckPath - - - Http20Enabled - - - HttpLoggingEnabled - - - IPSecurityRestrictionsDefaultAction - - - JavaContainer - - - JavaContainerVersion - - - JavaVersion - - - KeyVaultReferenceIdentity - - - LinuxFxVersion - - - LoadBalancing - - - LocalMySqlEnabled - - - LogsDirectorySizeLimit - - - ManagedPipelineMode - - - ManagedServiceIdentityId - - - MinTlsCipherSuite - - - MinTlsVersion - - - MinimumElasticInstanceCount - - - NetFrameworkVersion - - - NodeVersion - - - NumberOfWorker - - - PhpVersion - - - PowerShellVersion - - - PreWarmedInstanceCount - - - PublicNetworkAccess - - - PublishingUsername - - - PythonVersion - - - RemoteDebuggingEnabled - - - RemoteDebuggingVersion - - - RequestTracingEnabled - - - RequestTracingExpirationTime - - - ScmIPSecurityRestrictionsDefaultAction - - - ScmIPSecurityRestrictionsUseMain - - - ScmMinTlsVersion - - - ScmType - - - TracingOption - - - Use32BitWorkerProcess - - - VnetName - - - VnetPrivatePortsCount - - - VnetRouteAllEnabled - - - WebSocketsEnabled - - - WebsiteTimeZone - - - WindowsFxVersion - - - XManagedServiceIdentityId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteConfigPropertiesDictionary - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteConfigPropertiesDictionary - - - - - - - - - - - - - - - - - - - - - JavaVersion - - - LinuxFxVersion - - - PowerShellVersion - - - Use32BitWorkerProcess - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteConfigResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteConfigResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteConfigResourceCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteConfigResourceCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteConfigurationSnapshotInfo - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteConfigurationSnapshotInfo - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteConfigurationSnapshotInfoCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteConfigurationSnapshotInfoCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteConfigurationSnapshotInfoProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteConfigurationSnapshotInfoProperties - - - - - - - - - - - - - - - SnapshotId - - - Time - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteContainer - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteContainer - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteContainerCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteContainerCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteContainerProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteContainerProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AuthType - - - CreatedTime - - - Image - - - IsMain - - - LastModifiedTime - - - PasswordSecret - - - StartUpCommand - - - TargetPort - - - UserManagedIdentityClientId - - - UserName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteDnsConfig - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteDnsConfig - - - - - - - - - - - - - - - - - - - - - - - - - - - DnsAltServer - - - DnsLegacySortOrder - - - DnsMaxCacheTimeout - - - DnsRetryAttemptCount - - - DnsRetryAttemptTimeout - - - DnsServer - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteExtensionInfo - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteExtensionInfo - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteExtensionInfoCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteExtensionInfoCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteExtensionInfoProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteExtensionInfoProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Author - - - Comment - - - Description - - - DownloadCount - - - ExtensionId - - - ExtensionType - - - ExtensionUrl - - - FeedUrl - - - IconUrl - - - InstalledDateTime - - - InstallerCommandLineParam - - - LicenseUrl - - - LocalIsLatestVersion - - - LocalPath - - - ProjectUrl - - - ProvisioningState - - - PublishedDateTime - - - Summary - - - Title - - - Version - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteLimits - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteLimits - - - - - - - - - - - - - - - - - - MaxDiskSizeInMb - - - MaxMemoryInMb - - - MaxPercentageCpu - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteLogsConfig - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteLogsConfig - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteMachineKey - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteMachineKey - - - - - - - - - - - - - - - - - - - - - Decryption - - - DecryptionKey - - - Validation - - - ValidationKey - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SitePatchResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SitePatchResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SitePatchResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SitePatchResourceProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AvailabilityState - - - ClientAffinityEnabled - - - ClientCertEnabled - - - ClientCertExclusionPath - - - ClientCertMode - - - ContainerSize - - - CustomDomainVerificationId - - - DailyMemoryTimeQuota - - - DefaultHostName - - - Enabled - - - EnabledHostName - - - HostName - - - HostNamesDisabled - - - HttpsOnly - - - HyperV - - - InProgressOperationId - - - IsDefaultContainer - - - IsXenon - - - KeyVaultReferenceIdentity - - - LastModifiedTimeUtc - - - MaxNumberOfWorker - - - OutboundIPAddress - - - PossibleOutboundIPAddress - - - RedundancyMode - - - RepositorySiteName - - - Reserved - - - ResourceGroup - - - ScmSiteAlsoStopped - - - ServerFarmId - - - State - - - StorageAccountRequired - - - SuspendedTill - - - TargetSwapSlot - - - TrafficManagerHostName - - - UsageState - - - VirtualNetworkSubnetId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SitePhpErrorLogFlag - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SitePhpErrorLogFlag - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SitePhpErrorLogFlagProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SitePhpErrorLogFlagProperties - - - - - - - - - - - - - - - - - - - - - LocalLogError - - - LocalLogErrorsMaxLength - - - MasterLogError - - - MasterLogErrorsMaxLength - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AvailabilityState - - - ClientAffinityEnabled - - - ClientCertEnabled - - - ClientCertExclusionPath - - - ClientCertMode - - - ContainerSize - - - CustomDomainVerificationId - - - DailyMemoryTimeQuota - - - DefaultHostName - - - Enabled - - - EnabledHostName - - - HostName - - - HostNamesDisabled - - - HttpsOnly - - - HyperV - - - InProgressOperationId - - - IsDefaultContainer - - - IsXenon - - - KeyVaultReferenceIdentity - - - LastModifiedTimeUtc - - - ManagedEnvironmentId - - - MaxNumberOfWorker - - - OutboundIPAddress - - - PossibleOutboundIPAddress - - - PublicNetworkAccess - - - RedundancyMode - - - RepositorySiteName - - - Reserved - - - ResourceGroup - - - ScmSiteAlsoStopped - - - ServerFarmId - - - State - - - StorageAccountRequired - - - SuspendedTill - - - TargetSwapSlot - - - TrafficManagerHostName - - - UsageState - - - VirtualNetworkSubnetId - - - VnetBackupRestoreEnabled - - - VnetContentShareEnabled - - - VnetImagePullEnabled - - - VnetRouteAllEnabled - - - WorkloadProfileName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteSeal - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteSeal - - - - - - - - - - - - Html - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteSealRequest - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteSealRequest - - - - - - - - - - - - - - - LightTheme - - - Locale - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteSourceControl - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteSourceControl - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteSourceControlProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteSourceControlProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - Branch - - - DeploymentRollbackEnabled - - - IsGitHubAction - - - IsManualIntegration - - - IsMercurial - - - RepoUrl - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SkuCapacity - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SkuCapacity - - - - - - - - - - - - - - - - - - - - - - - - Default - - - ElasticMaximum - - - Maximum - - - Minimum - - - ScaleType - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SkuDescription - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SkuDescription - - - - - - - - - - - - - - - - - - - - - - - - - - - Capacity - - - Family - - - Location - - - Name - - - Size - - - Tier - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SkuInfo - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SkuInfo - - - - - - - - - - - - ResourceType - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SkuInfoCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SkuInfoCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SkuInfos - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SkuInfos - - - - - - - - - - - - ResourceType - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SlotConfigNames - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SlotConfigNames - - - - - - - - - - - - - - - - - - AppSettingName - - - AzureStorageConfigName - - - ConnectionStringName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SlotConfigNamesResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SlotConfigNamesResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SlotDifference - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SlotDifference - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SlotDifferenceCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SlotDifferenceCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SlotDifferenceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SlotDifferenceProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Description - - - DiffRule - - - Level - - - SettingName - - - SettingType - - - ValueInCurrentSlot - - - ValueInTargetSlot - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SlotSwapStatus - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SlotSwapStatus - - - - - - - - - - - - - - - - - - DestinationSlotName - - - SourceSlotName - - - TimestampUtc - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SlowRequestsBasedTrigger - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SlowRequestsBasedTrigger - - - - - - - - - - - - - - - - - - - - - Count - - - Path - - - TimeInterval - - - TimeTaken - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Snapshot - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Snapshot - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SnapshotCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SnapshotCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SnapshotProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SnapshotProperties - - - - - - - - - - - - Time - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SnapshotRecoverySource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SnapshotRecoverySource - - - - - - - - - - - - Location - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SnapshotRestoreRequest - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SnapshotRestoreRequest - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SnapshotRestoreRequestProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SnapshotRestoreRequestProperties - - - - - - - - - - - - - - - - - - - - - - - - IgnoreConflictingHostName - - - Overwrite - - - RecoverConfiguration - - - SnapshotTime - - - UseDrSecondary - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Solution - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Solution - - - - - - - - - - - - - - - - - - Description - - - DisplayName - - - Order - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SourceControl - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SourceControl - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SourceControlCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SourceControlCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SourceControlProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SourceControlProperties - - - - - - - - - - - - - - - - - - - - - ExpirationTime - - - RefreshToken - - - Token - - - TokenSecret - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StackMajorVersion - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StackMajorVersion - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ApplicationInsight - - - DisplayVersion - - - IsDefault - - - IsDeprecated - - - IsHidden - - - IsPreview - - - RuntimeVersion - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StackMinorVersion - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StackMinorVersion - - - - - - - - - - - - - - - - - - - - - DisplayVersion - - - IsDefault - - - IsRemoteDebuggingEnabled - - - RuntimeVersion - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StampCapacity - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StampCapacity - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AvailableCapacity - - - ComputeMode - - - ExcludeFromCapacityAllocation - - - IsApplicableForAllComputeMode - - - IsLinux - - - Name - - - SiteMode - - - TotalCapacity - - - Unit - - - WorkerSize - - - WorkerSizeId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StampCapacityCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StampCapacityCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSite - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSite - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AllowConfigFileUpdate - - - Branch - - - ContentDistributionEndpoint - - - CustomDomain - - - DefaultHostname - - - EnterpriseGradeCdnStatus - - - KeyVaultReferenceIdentity - - - Provider - - - PublicNetworkAccess - - - RepositoryToken - - - RepositoryUrl - - - StagingEnvironmentPolicy - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteArmResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteArmResource - - - - - - - - - - - - - - - - - - Kind - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteBasicAuthPropertiesArmResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteBasicAuthPropertiesArmResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteBasicAuthPropertiesArmResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteBasicAuthPropertiesArmResourceProperties - - - - - - - - - - - - - - - - - - - - - - - - ApplicableEnvironmentsMode - - - Environment - - - Password - - - SecretState - - - SecretUrl - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteBasicAuthPropertiesCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteBasicAuthPropertiesCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteBuildArmResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteBuildArmResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteBuildArmResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteBuildArmResourceProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BuildId - - - CreatedTimeUtc - - - Hostname - - - LastUpdatedOn - - - PullRequestTitle - - - SourceBranch - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteBuildCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteBuildCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteBuildProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteBuildProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ApiBuildCommand - - - ApiLocation - - - AppArtifactLocation - - - AppBuildCommand - - - AppLocation - - - GithubActionSecretNameOverride - - - OutputLocation - - - SkipGithubActionWorkflowGeneration - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteCustomDomainOverviewArmResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteCustomDomainOverviewArmResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteCustomDomainOverviewArmResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteCustomDomainOverviewArmResourceProperties - - - - - - - - - - - - - - - - - - - - - - - - CreatedOn - - - DomainName - - - ErrorMessage - - - Status - - - ValidationToken - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteCustomDomainOverviewCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteCustomDomainOverviewCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteCustomDomainRequestPropertiesArmResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteCustomDomainRequestPropertiesArmResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteCustomDomainRequestPropertiesArmResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteCustomDomainRequestPropertiesArmResourceProperties - - - - - - - - - - - - ValidationMethod - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteDatabaseConnectionConfigurationFileOverview - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteDatabaseConnectionConfigurationFileOverview - - - - - - - - - - - - - - - Content - - - FileName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteFunctionOverviewArmResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteFunctionOverviewArmResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteFunctionOverviewArmResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteFunctionOverviewArmResourceProperties - - - - - - - - - - - - - - - FunctionName - - - TriggerType - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteFunctionOverviewCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteFunctionOverviewCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteLinkedBackend - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteLinkedBackend - - - - - - - - - - - - - - - - - - - - - BackendResourceId - - - CreatedOn - - - ProvisioningState - - - Region - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteLinkedBackendArmResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteLinkedBackendArmResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteLinkedBackendArmResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteLinkedBackendArmResourceProperties - - - - - - - - - - - - - - - - - - - - - BackendResourceId - - - CreatedOn - - - ProvisioningState - - - Region - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteLinkedBackendsCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteLinkedBackendsCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSitePatchResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSitePatchResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteResetPropertiesArmResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteResetPropertiesArmResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteResetPropertiesArmResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteResetPropertiesArmResourceProperties - - - - - - - - - - - - - - - RepositoryToken - - - ShouldUpdateRepository - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSitesWorkflowPreview - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSitesWorkflowPreview - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSitesWorkflowPreviewProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSitesWorkflowPreviewProperties - - - - - - - - - - - - - - - Content - - - Path - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSitesWorkflowPreviewRequest - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSitesWorkflowPreviewRequest - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSitesWorkflowPreviewRequestProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSitesWorkflowPreviewRequestProperties - - - - - - - - - - - - - - - Branch - - - RepositoryUrl - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteTemplateOptions - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteTemplateOptions - - - - - - - - - - - - - - - - - - - - - - - - Description - - - IsPrivate - - - Owner - - - RepositoryName - - - TemplateRepositoryUrl - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserArmResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserArmResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserArmResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserArmResourceProperties - - - - - - - - - - - - - - - - - - - - - DisplayName - - - Provider - - - Role - - - UserId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserInvitationRequestResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserInvitationRequestResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserInvitationRequestResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserInvitationRequestResourceProperties - - - - - - - - - - - - - - - - - - - - - - - - Domain - - - NumHoursToExpiration - - - Provider - - - Role - - - UserDetail - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserInvitationResponseResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserInvitationResponseResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserInvitationResponseResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserInvitationResponseResourceProperties - - - - - - - - - - - - - - - ExpiresOn - - - InvitationUrl - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserProvidedFunctionApp - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserProvidedFunctionApp - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserProvidedFunctionAppArmResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserProvidedFunctionAppArmResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserProvidedFunctionAppArmResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserProvidedFunctionAppArmResourceProperties - - - - - - - - - - - - - - - - - - CreatedOn - - - FunctionAppRegion - - - FunctionAppResourceId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserProvidedFunctionAppProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserProvidedFunctionAppProperties - - - - - - - - - - - - - - - - - - CreatedOn - - - FunctionAppRegion - - - FunctionAppResourceId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserProvidedFunctionAppsCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserProvidedFunctionAppsCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteZipDeployment - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteZipDeployment - - - - - - - - - - - - - - - - - - - - - - - - ApiZipUrl - - - AppZipUrl - - - DeploymentTitle - - - FunctionLanguage - - - Provider - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteZipDeploymentArmResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteZipDeploymentArmResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Status - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Status - - - - - - - - - - - - Message - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StatusCodesBasedTrigger - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StatusCodesBasedTrigger - - - - - - - - - - - - - - - - - - - - - - - - - - - Count - - - Path - - - Status - - - SubStatus - - - TimeInterval - - - Win32Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StatusCodesRangeBasedTrigger - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StatusCodesRangeBasedTrigger - - - - - - - - - - - - - - - - - - - - - Count - - - Path - - - StatusCode - - - TimeInterval - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StorageMigrationOptions - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StorageMigrationOptions - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StorageMigrationOptionsProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StorageMigrationOptionsProperties - - - - - - - - - - - - - - - - - - - - - AzurefilesConnectionString - - - AzurefilesShare - - - BlockWriteAccessToSite - - - SwitchSiteAfterMigration - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StorageMigrationResponse - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StorageMigrationResponse - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StorageMigrationResponseProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StorageMigrationResponseProperties - - - - - - - - - - - - OperationId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StringDictionary - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StringDictionary - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StringDictionaryProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StringDictionaryProperties - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StringList - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StringList - - - - - - - - - - - - - - - - - - Kind - - - Name - - - Property - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SupportTopic - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SupportTopic - - - - - - - - - - - - PesId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SwiftVirtualNetwork - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SwiftVirtualNetwork - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SwiftVirtualNetworkProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SwiftVirtualNetworkProperties - - - - - - - - - - - - - - - SubnetResourceId - - - SwiftSupported - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Template - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Template - - - - - - - - - - - - RevisionSuffix - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TldLegalAgreement - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TldLegalAgreement - - - - - - - - - - - - - - - - - - - - - AgreementKey - - - Content - - - Title - - - Url - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TldLegalAgreementCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TldLegalAgreementCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TokenStore - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TokenStore - - - - - - - - - - - - - - - Enabled - - - TokenRefreshExtensionHour - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TopLevelDomain - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TopLevelDomain - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TopLevelDomainAgreementOption - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TopLevelDomainAgreementOption - - - - - - - - - - - - - - - ForTransfer - - - IncludePrivacy - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TopLevelDomainCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TopLevelDomainCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TopLevelDomainProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TopLevelDomainProperties - - - - - - - - - - - - Privacy - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TriggeredJobHistory - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TriggeredJobHistory - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TriggeredJobHistoryCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TriggeredJobHistoryCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TriggeredJobRun - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TriggeredJobRun - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Duration - - - EndTime - - - ErrorUrl - - - JobName - - - OutputUrl - - - StartTime - - - Status - - - Trigger - - - Url - - - WebJobId - - - WebJobName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TriggeredWebJob - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TriggeredWebJob - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TriggeredWebJobCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TriggeredWebJobCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TriggeredWebJobProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TriggeredWebJobProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Error - - - ExtraInfoUrl - - - HistoryUrl - - - PublicNetworkAccess - - - RunCommand - - - SchedulerLogsUrl - - - StorageAccountRequired - - - Url - - - UsingSdk - - - WebJobType - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Twitter - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Twitter - - - - - - - - - - - - Enabled - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TwitterRegistration - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TwitterRegistration - - - - - - - - - - - - - - - ConsumerKey - - - ConsumerSecretSettingName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Usage - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Usage - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.UsageCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.UsageCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.UsageProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.UsageProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ComputeMode - - - CurrentValue - - - DisplayName - - - Limit - - - NextResetTime - - - ResourceName - - - SiteMode - - - Unit - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.User - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.User - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.UserAssignedIdentity - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.UserAssignedIdentity - - - - - - - - - - - - - - - ClientId - - - PrincipalId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.UserProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.UserProperties - - - - - - - - - - - - - - - PublishingUserName - - - ScmUri - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ValidateProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ValidateProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Capacity - - - ContainerImagePlatform - - - ContainerImageRepository - - - ContainerImageTag - - - ContainerRegistryBaseUrl - - - ContainerRegistryPassword - - - ContainerRegistryUsername - - - HostingEnvironment - - - IsSpot - - - IsXenon - - - NeedLinuxWorker - - - ServerFarmId - - - SkuName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ValidateRequest - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ValidateRequest - - - - - - - - - - - - - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ValidateResponse - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ValidateResponse - - - - - - - - - - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ValidateResponseError - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ValidateResponseError - - - - - - - - - - - - - - - Code - - - Message - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VirtualApplication - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VirtualApplication - - - - - - - - - - - - - - - - - - PhysicalPath - - - PreloadEnabled - - - VirtualPath - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VirtualDirectory - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VirtualDirectory - - - - - - - - - - - - - - - PhysicalPath - - - VirtualPath - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VirtualIPMapping - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VirtualIPMapping - - - - - - - - - - - - - - - - - - - - - - - - InUse - - - InternalHttpPort - - - InternalHttpsPort - - - ServiceName - - - VirtualIP - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VirtualNetworkProfile - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VirtualNetworkProfile - - - - - - - - - - - - - - - Name - - - Subnet - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetGateway - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetGateway - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetGatewayProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetGatewayProperties - - - - - - - - - - - - - - - VnetName - - - VpnPackageUri - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetInfo - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetInfo - - - - - - - - - - - - - - - - - - - - - - - - - - - CertBlob - - - CertThumbprint - - - DnsServer - - - IsSwift - - - ResyncRequired - - - VnetResourceId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetInfoResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetInfoResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetParameters - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetParameters - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetParametersProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetParametersProperties - - - - - - - - - - - - - - - - - - - - - SubnetResourceId - - - VnetName - - - VnetResourceGroup - - - VnetSubnetName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetRoute - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetRoute - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetRouteProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetRouteProperties - - - - - - - - - - - - - - - - - - EndAddress - - - RouteType - - - StartAddress - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetValidationFailureDetails - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetValidationFailureDetails - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetValidationFailureDetailsProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetValidationFailureDetailsProperties - - - - - - - - - - - - - - - Failed - - - Message - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetValidationTestFailure - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetValidationTestFailure - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetValidationTestFailureProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetValidationTestFailureProperties - - - - - - - - - - - - - - - Detail - - - TestName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VolumeMount - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VolumeMount - - - - - - - - - - - - - - - - - - - - - ContainerMountPath - - - Data - - - ReadOnly - - - VolumeSubPath - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebAppCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebAppCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebAppInstanceStatusCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebAppInstanceStatusCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebAppMajorVersion - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebAppMajorVersion - - - - - - - - - - - - - - - DisplayText - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebAppMinorVersion - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebAppMinorVersion - - - - - - - - - - - - - - - DisplayText - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebAppRuntimeSettings - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebAppRuntimeSettings - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EndOfLifeDate - - - IsAutoUpdate - - - IsDeprecated - - - IsEarlyAccess - - - IsHidden - - - IsPreview - - - RemoteDebuggingSupported - - - RuntimeVersion - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebAppStack - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebAppStack - - - - - - - - - - - - - - - - - - Kind - - - Name - - - Location - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebAppStackCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebAppStackCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebAppStackProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebAppStackProperties - - - - - - - - - - - - - - - - - - DisplayText - - - PreferredOS - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebJob - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebJob - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebJobCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebJobCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebJobProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebJobProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - Error - - - ExtraInfoUrl - - - RunCommand - - - Url - - - UsingSdk - - - WebJobType - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebSiteInstanceStatus - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebSiteInstanceStatus - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebSiteInstanceStatusProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebSiteInstanceStatusProperties - - - - - - - - - - - - - - - - - - - - - - - - ConsoleUrl - - - DetectorUrl - - - HealthCheckUrl - - - State - - - StatusUrl - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WindowsJavaContainerSettings - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WindowsJavaContainerSettings - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EndOfLifeDate - - - IsAutoUpdate - - - IsDeprecated - - - IsEarlyAccess - - - IsHidden - - - IsPreview - - - JavaContainer - - - JavaContainerVersion - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkerPool - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkerPool - - - - - - - - - - - - - - - - - - - - - - - - ComputeMode - - - InstanceName - - - WorkerCount - - - WorkerSize - - - WorkerSizeId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkerPoolCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkerPoolCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkerPoolResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkerPoolResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Workflow - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Workflow - - - - - - - - - - - - - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowArtifacts - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowArtifacts - - - - - - - - - - - - FilesToDelete - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowEnvelope - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowEnvelope - - - - - - - - - - - - - - - - - - Kind - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowEnvelopeCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowEnvelopeCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowEnvelopeProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowEnvelopeProperties - - - - - - - - - - - - FlowState - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowFilter - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowFilter - - - - - - - - - - - - State - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowHealth - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowHealth - - - - - - - - - - - - State - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowListResult - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowListResult - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowOutputParameter - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowOutputParameter - - - - - - - - - - - - Description - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowParameter - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowParameter - - - - - - - - - - - - Description - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AccessEndpoint - - - ChangedTime - - - CreatedTime - - - Kind - - - ProvisioningState - - - State - - - Version - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowResource - - - - - - - - - - - - - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowResourceTags - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowResourceTags - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRun - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRun - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunAction - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunAction - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunActionFilter - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunActionFilter - - - - - - - - - - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunActionListResult - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunActionListResult - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunActionProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunActionProperties - - - - - - - - - - - - - - - - - - - - - - - - Code - - - EndTime - - - StartTime - - - Status - - - TrackingId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunActionRepetitionDefinition - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunActionRepetitionDefinition - - - - - - - - - - - - - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunActionRepetitionDefinitionCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunActionRepetitionDefinitionCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunActionRepetitionProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunActionRepetitionProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - CorrelationActionTrackingId - - - CorrelationClientKeyword - - - CorrelationClientTrackingId - - - EndTime - - - InputLinkContentSize - - - InputLinkContentVersion - - - InputLinkUri - - - InputsLinkContentHashAlgorithm - - - InputsLinkContentHashValue - - - IterationCount - - - OutputLinkContentSize - - - OutputLinkContentVersion - - - OutputLinkUri - - - OutputsLinkContentHashAlgorithm - - - OutputsLinkContentHashValue - - - StartTime - - - Status - - - TrackingId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunFilter - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunFilter - - - - - - - - - - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunListResult - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunListResult - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - CorrelationId - - - EndTime - - - StartTime - - - Status - - - WaitEndTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunTrigger - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunTrigger - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - EndTime - - - Name - - - ScheduledTime - - - StartTime - - - Status - - - TrackingId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowSku - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowSku - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTrigger - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTrigger - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerCallbackUrl - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerCallbackUrl - - - - - - - - - - - - - - - - - - - - - - - - BasePath - - - Method - - - RelativePath - - - RelativePathParameter - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerFilter - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerFilter - - - - - - - - - - - - State - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerHistory - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerHistory - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerHistoryFilter - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerHistoryFilter - - - - - - - - - - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerHistoryListResult - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerHistoryListResult - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerHistoryProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerHistoryProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - EndTime - - - Fired - - - ScheduledTime - - - StartTime - - - Status - - - TrackingId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerListCallbackUrlQueries - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerListCallbackUrlQueries - - - - - - - - - - - - - - - - - - - - - - - - ApiVersion - - - Se - - - Sig - - - Sp - - - Sv - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerListResult - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerListResult - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ChangedTime - - - CreatedTime - - - LastExecutionTime - - - NextExecutionTime - - - ProvisioningState - - - State - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerRecurrence - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerRecurrence - - - - - - - - - - - - - - - - - - - - - - - - EndTime - - - Frequency - - - Interval - - - StartTime - - - TimeZone - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowVersion - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowVersion - - - - - - - - - - - - - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowVersionListResult - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowVersionListResult - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowVersionProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowVersionProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - AccessEndpoint - - - ChangedTime - - - CreatedTime - - - ProvisioningState - - - State - - - Version - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/Az.Functions.psm1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/Az.Functions.psm1 deleted file mode 100644 index d5e3b4363b96..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/Az.Functions.psm1 +++ /dev/null @@ -1,337 +0,0 @@ -# region Generated - # ---------------------------------------------------------------------------------- - # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# http://www.apache.org/licenses/LICENSE-2.0 -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Code generated by Microsoft (R) AutoRest Code Generator.Changes may cause incorrect behavior and will be lost if the code -# is regenerated. - # ---------------------------------------------------------------------------------- - # Load required Az.Accounts module - $accountsName = 'Az.Accounts' - $accountsModule = Get-Module -Name $accountsName - if(-not $accountsModule) { - $localAccountsPath = Join-Path $PSScriptRoot 'generated\modules' - if(Test-Path -Path $localAccountsPath) { - $localAccounts = Get-ChildItem -Path $localAccountsPath -Recurse -Include 'Az.Accounts.psd1' | Select-Object -Last 1 - if($localAccounts) { - $accountsModule = Import-Module -Name ($localAccounts.FullName) -Scope Global -PassThru - } - } - if(-not $accountsModule) { - $hasAdequateVersion = (Get-Module -Name $accountsName -ListAvailable | Where-Object { $_.Version -ge [System.Version]'2.7.5' } | Measure-Object).Count -gt 0 - if($hasAdequateVersion) { - $accountsModule = Import-Module -Name $accountsName -MinimumVersion 2.7.5 -Scope Global -PassThru - } - } - } - - if(-not $accountsModule) { - Write-Error "`nThis module requires $accountsName version 2.7.5 or greater. For installation instructions, please see: https://learn.microsoft.com/powershell/azure/install-az-ps" -ErrorAction Stop - } elseif (($accountsModule.Version -lt [System.Version]'2.7.5') -and (-not $localAccounts)) { - Write-Error "`nThis module requires $accountsName version 2.7.5 or greater. An earlier version of Az.Accounts is imported in the current PowerShell session. If you are running test, please try to add the switch '-RegenerateSupportModule' when executing 'test-module.ps1'. Otherwise please open a new PowerShell session and import this module again.`nAdditionally, this error could indicate that multiple incompatible versions of Azure PowerShell modules are installed on your system. For troubleshooting information, please see: https://aka.ms/azps-version-error" -ErrorAction Stop - } - Write-Information "Loaded Module '$($accountsModule.Name)'" - - # Load the private module dll - $null = Import-Module -Name (Join-Path $PSScriptRoot './bin/Az.Functions.private.dll') - - # Get the private module's instance - $instance = [Microsoft.Azure.PowerShell.Cmdlets.Functions.Module]::Instance - - # Ask for the shared functionality table - $VTable = Register-AzModule - - # Tweaks the pipeline on module load - $instance.OnModuleLoad = $VTable.OnModuleLoad - - # Following two delegates are added for telemetry - $instance.GetTelemetryId = $VTable.GetTelemetryId - $instance.Telemetry = $VTable.Telemetry - - # Delegate to sanitize the output object - $instance.SanitizeOutput = $VTable.SanitizerHandler - - # Delegate to get the telemetry info - $instance.GetTelemetryInfo = $VTable.GetTelemetryInfo - - # Tweaks the pipeline per call - $instance.OnNewRequest = $VTable.OnNewRequest - - # Gets shared parameter values - $instance.GetParameterValue = $VTable.GetParameterValue - - # Allows shared module to listen to events from this module - $instance.EventListener = $VTable.EventListener - - # Gets shared argument completers - $instance.ArgumentCompleter = $VTable.ArgumentCompleter - - # The name of the currently selected Azure profile - $instance.ProfileName = $VTable.ProfileName - - # Load the custom module - $customModulePath = Join-Path $PSScriptRoot './custom/Az.Functions.custom.psm1' - if(Test-Path $customModulePath) { - $null = Import-Module -Name $customModulePath - } - - # Export nothing to clear implicit exports - Export-ModuleMember - - # Export proxy cmdlet scripts - $exportsPath = Join-Path $PSScriptRoot './exports' - $directories = Get-ChildItem -Directory -Path $exportsPath - $profileDirectory = $null - if($instance.ProfileName) { - if(($directories | ForEach-Object { $_.Name }) -contains $instance.ProfileName) { - $profileDirectory = $directories | Where-Object { $_.Name -eq $instance.ProfileName } - } else { - # Don't export anything if the profile doesn't exist for the module - $exportsPath = $null - Write-Warning "Selected Azure profile '$($instance.ProfileName)' does not exist for module '$($instance.Name)'. No cmdlets were loaded." - } - } elseif(($directories | Measure-Object).Count -gt 0) { - # Load the last folder if no profile is selected - $profileDirectory = $directories | Select-Object -Last 1 - } - - if($profileDirectory) { - Write-Information "Loaded Azure profile '$($profileDirectory.Name)' for module '$($instance.Name)'" - $exportsPath = $profileDirectory.FullName - } - - if($exportsPath) { - Get-ChildItem -Path $exportsPath -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } - $cmdletNames = Get-ScriptCmdlet -ScriptFolder $exportsPath - Export-ModuleMember -Function $cmdletNames -Alias (Get-ScriptCmdlet -ScriptFolder $exportsPath -AsAlias) - } - - # Finalize initialization of this module - $instance.Init(); - Write-Information "Loaded Module '$($instance.Name)'" -# endregion - -# SIG # Begin signature block -# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBIkG77Mivd8H5w -# UkvPP+E8qQCCeiXE7G1Yu6KXWtC+3aCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIDD2DxGt3YaYFLkuW0RVSApJ -# IXWk4mz3Kc6gVi15vOprMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAX8cLw0/aWCtBP1KcIFoGEOMiLLpVuyd4YpxoHzj5mxFXq9ObomD7kH7J -# jMFMLAsItmU9cw+86Wi0iz1ZmYPbVTH+Gq4JrReETREFcapr1Mp+jsMFKbwBmVQ1 -# ZbubzlVABC75uiU6PKvE9iHcQx47+Di3YXOLTGRrEm6kSt5dg6NPrsTjA2exYy7y -# i6FYwviz3XRUp2X1dKMq7x+4UbvWVuGUT+aKGlSTjZoZYuIWzvfu/ziP0PKPM+Yf -# mQEmOdqYorV2fs+NQwGbFcJsiK9s/6ZxywAbMcRVz80wTn+BvLTWBCxJiNnNAVxq -# IvW/dBlB4rf3S9RH0jpfTOSpACSzJqGCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC -# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCADMp2pKa4c8G5awuHA/b/+awZOjhqS/R+1MP4EGp05RAIGZ1rYDqNP -# GBMyMDI1MDEwOTA2MzY0My40NjlaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTAwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHqMIIHIDCCBQigAwIBAgITMwAAAevgGGy1tu847QABAAAB6zANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# MzRaFw0yNTAzMDUxODQ1MzRaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTAwMC0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDBFWgh2lbgV3eJp01oqiaFBuYbNc7hSKmktvJ15NrB -# /DBboUow8WPOTPxbn7gcmIOGmwJkd+TyFx7KOnzrxnoB3huvv91fZuUugIsKTnAv -# g2BU/nfN7Zzn9Kk1mpuJ27S6xUDH4odFiX51ICcKl6EG4cxKgcDAinihT8xroJWV -# ATL7p8bbfnwsc1pihZmcvIuYGnb1TY9tnpdChWr9EARuCo3TiRGjM2Lp4piT2lD5 -# hnd3VaGTepNqyakpkCGV0+cK8Vu/HkIZdvy+z5EL3ojTdFLL5vJ9IAogWf3XAu3d -# 7SpFaaoeix0e1q55AD94ZwDP+izqLadsBR3tzjq2RfrCNL+Tmi/jalRto/J6bh4f -# PhHETnDC78T1yfXUQdGtmJ/utI/ANxi7HV8gAPzid9TYjMPbYqG8y5xz+gI/SFyj -# +aKtHHWmKzEXPttXzAcexJ1EH7wbuiVk3sErPK9MLg1Xb6hM5HIWA0jEAZhKEyd5 -# hH2XMibzakbp2s2EJQWasQc4DMaF1EsQ1CzgClDYIYG6rUhudfI7k8L9KKCEufRb -# K5ldRYNAqddr/ySJfuZv3PS3+vtD6X6q1H4UOmjDKdjoW3qs7JRMZmH9fkFkMzb6 -# YSzr6eX1LoYm3PrO1Jea43SYzlB3Tz84OvuVSV7NcidVtNqiZeWWpVjfavR+Jj/J -# OQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFHSeBazWVcxu4qT9O5jT2B+qAerhMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQCDdN8voPd8C+VWZP3+W87c/QbdbWK0sOt9 -# Z4kEOWng7Kmh+WD2LnPJTJKIEaxniOct9wMgJ8yQywR8WHgDOvbwqdqsLUaM4Nre -# rtI6FI9rhjheaKxNNnBZzHZLDwlkL9vCEDe9Rc0dGSVd5Bg3CWknV3uvVau14F55 -# ESTWIBNaQS9Cpo2Opz3cRgAYVfaLFGbArNcRvSWvSUbeI2IDqRxC4xBbRiNQ+1qH -# XDCPn0hGsXfL+ynDZncCfszNrlgZT24XghvTzYMHcXioLVYo/2Hkyow6dI7uULJb -# KxLX8wHhsiwriXIDCnjLVsG0E5bR82QgcseEhxbU2d1RVHcQtkUE7W9zxZqZ6/jP -# maojZgXQO33XjxOHYYVa/BXcIuu8SMzPjjAAbujwTawpazLBv997LRB0ZObNckJY -# yQQpETSflN36jW+z7R/nGyJqRZ3HtZ1lXW1f6zECAeP+9dy6nmcCrVcOqbQHX7Zr -# 8WPcghHJAADlm5ExPh5xi1tNRk+i6F2a9SpTeQnZXP50w+JoTxISQq7vBij2nitA -# sSLaVeMqoPi+NXlTUNZ2NdtbFr6Iir9ZK9ufaz3FxfvDZo365vLOozmQOe/Z+pu4 -# vY5zPmtNiVIcQnFy7JZOiZVDI5bIdwQRai2quHKJ6ltUdsi3HjNnieuE72fT4eWh -# xtmnN5HYCDCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNN -# MIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOkEwMDAtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQCA -# Bol1u1wwwYgUtUowMnqYvbul3qCBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymWNTAiGA8yMDI1MDEwOTAwMjYy -# OVoYDzIwMjUwMTEwMDAyNjI5WjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDrKZY1 -# AgEAMAcCAQACAhUpMAcCAQACAhMJMAoCBQDrKue1AgEAMDYGCisGAQQBhFkKBAIx -# KDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZI -# hvcNAQELBQADggEBAIHAmhLTSl+tqfMPnHFg24foG1zMFnOXn0DIotbJRVZDtlhF -# nPqSqCYuWMG+vt5lcw61eK9qKCrEL1Z3DME2BYjzUw4pvqj9S4ij9UXBcY7EsuZF -# xKynfZfrdMCTOQx8920OBKrkMuEZQIyhTbNOGFKIbVqAF1ZuNWC3k3d938tCrz6k -# O5nVvlHq0eMKKt0dmLBFNI5t6CmeGfb0gGg5/DxT5b7DLoU2WO/iX3YhbPO8FNpc -# g+onP0f7LP1tI4/67GHNCchp1IYsV2KHZ7V50TN63bGfo1U4AWWahgpxKX44Wl5K -# RAfCFw4sMxpUmJCvGkkLX92WpRPfW0D8+81HOZQxggQNMIIECQIBATCBkzB8MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy -# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAevgGGy1tu847QABAAAB6zAN -# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G -# CSqGSIb3DQEJBDEiBCDMt2LscXBvZwgRd1ikORdAG8ha44i2AWWa9/bqUf9NcjCB -# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIM63a75faQPhf8SBDTtk2DSUgIbd -# izXsz76h1JdhLCz4MIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAHr4BhstbbvOO0AAQAAAeswIgQg3a/qZy5c5u5kLf4EWs4lzDywFVJR -# 2BigcuxSIs4sgoQwDQYJKoZIhvcNAQELBQAEggIAIHwmB3dlcL1hgE5jw1yfMJQK -# EIEaNUJxSIqZH83894fjY9lyjnSAjFtdzRU5Z0Mwh3RKF1MuPEXWfOTz/DB3uydX -# DGjzkVYgdkBNpJErQgJfX4QA9XRMPX0i/pZjZM/SFDUAkeJ6WlzEN1lb1tC3YFf+ -# JZMwk3uPMBOVGxm/1YrBaJbSZBqc+0OFHXxOVtlwfQ2hYYG7Jv3ShsK733ApTl7b -# GtKNrjrj7nNond9akh6KRsFTqBNjFpTLQa2Gvsoeaxc4zU9xlR9FdkVtmRmhDdwR -# I4oZD7EMihjUDccVaPAXgfAiOnhjlSE4+FMJlQE78qbADTnVLA69WEE53fatsczV -# hp4VocmBs6ukdE3IUqRQl+avw6d5iR87D54hP6fVJdGb4fG/5pEEQkwj8794iPiX -# cvKjVZqyOv8yqI5uM26eWjCHiFsosDL0aZp6o7Kt9/U4W346k9MO3oX8nnBoZC9r -# O8oxU1SwApRgBKHB74GQeowM+5lj8rBV3trTqKUn7SeWi3VpV8saAAyhpahfFWrj -# IPDrqruVhRHuh2sR30EAdlYArUU59TpYvPzg2IQLDnug5NA+Jh5Qxs/+N6X3i55E -# A/6F+B5JBLHye6mMDSa4dneRxpumosi+atPxdojkQ9Z8smEQvElLnBbEPuXUG2Rz -# zIEn39f8RQuqJyt+EzE= -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/bin/Az.Functions.private.dll b/Modules/Az.Functions/4.2.0/Functions.Autorest/bin/Az.Functions.private.dll deleted file mode 100644 index 6580d9029110..000000000000 Binary files a/Modules/Az.Functions/4.2.0/Functions.Autorest/bin/Az.Functions.private.dll and /dev/null differ diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Api20231201/AppServicePlan.cs b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Api20231201/AppServicePlan.cs deleted file mode 100644 index 1e527dc9efef..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Api20231201/AppServicePlan.cs +++ /dev/null @@ -1,12 +0,0 @@ -namespace Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201 -{ - public partial class AppServicePlan : - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan, - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlanInternal, - Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.IValidates - { - // This gets set via PowerShell. For more info, please see custom/HelperScripts/HelperFunctions.ps1 - /// The Service plan worker type. - public string WorkerType { get; set; } - } -} diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Api20231201/Site.cs b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Api20231201/Site.cs deleted file mode 100644 index 03f6f7a718f5..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Api20231201/Site.cs +++ /dev/null @@ -1,22 +0,0 @@ -namespace Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201 -{ - public partial class Site : - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite, - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteInternal, - Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.IValidates - { - - // Function app settings. These gets set via PowerShell. For more info, please see custom/HelperScripts/HelperFunctions.ps1 - - public System.Collections.Hashtable ApplicationSettings { get; set; } - - public System.Collections.Hashtable SiteConfig { get; set; } - - public string Runtime { get; set; } - - public string OSType { get; set; } - - public string AppServicePlan { get; set; } - - } -} diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Az.Functions.custom.psm1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Az.Functions.custom.psm1 deleted file mode 100644 index 314cfd221d34..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Az.Functions.custom.psm1 +++ /dev/null @@ -1,235 +0,0 @@ -# region Generated - # Load the private module dll - $null = Import-Module -PassThru -Name (Join-Path $PSScriptRoot '..\bin\Az.Functions.private.dll') - - # Load the internal module - $internalModulePath = Join-Path $PSScriptRoot '..\internal\Az.Functions.internal.psm1' - if(Test-Path $internalModulePath) { - $null = Import-Module -Name $internalModulePath - } - - # Export nothing to clear implicit exports - Export-ModuleMember - - # Export script cmdlets - Get-ChildItem -Path $PSScriptRoot -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } - Export-ModuleMember -Function (Get-ScriptCmdlet -ScriptFolder $PSScriptRoot) -Alias (Get-ScriptCmdlet -ScriptFolder $PSScriptRoot -AsAlias) -# endregion - -# SIG # Begin signature block -# MIIoKQYJKoZIhvcNAQcCoIIoGjCCKBYCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCC/ZwXlMNo/NO4b -# orjLo8kSlKIAg1cHes2N4DKjOSOdhaCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgkwghoFAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIH4/ImHkbdSWfASnTq1HBkVn -# S0Peht6aq6Hm0AHX52nZMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAlLxUTFESZNThwGSDLOSPj5X0+s5bt2NFPuNz5dpcijLajzGUTnj3RITB -# 3ydgowjRv97bNGHi7fG1XemvnwKZEv3kcvOHFXm+K5kSw8T4tUMZS39tPIJjLwv2 -# D75UbS4z7+0J1Is47Wiwv1PGlXHHQC5QHiykoqYvugDE5rcPS0lAPzFMA146uFxm -# ycdmCjlxI1V3bgm3ryh+kmYsZ4TPnspyUIBnDtLoi/qPhTEtfep2cbhAAOcJXBIF -# jCIDNqx9WCK5VW99yY2Ive+LAOG8aZEpAoz8/szyIHGB245BNTA2ST4wwChTnjlx -# Xz5gKfxlOxxOW7xREB1xt/7RvcGaI6GCF5MwghePBgorBgEEAYI3AwMBMYIXfzCC -# F3sGCSqGSIb3DQEHAqCCF2wwghdoAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFRBgsq -# hkiG9w0BCRABBKCCAUAEggE8MIIBOAIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCDpxRq+80oMBG3xZcr5+b+Z+JQtR1aLQXr8a47Z7yM1QwIGZ2f84IIG -# GBIyMDI1MDEwOTA2MzY0Ny44OVowBIACAfSggdGkgc4wgcsxCzAJBgNVBAYTAlVT -# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVy -# aWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjozNzAzLTA1 -# RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaCC -# EeowggcgMIIFCKADAgECAhMzAAAB6pokctVZP2FjAAEAAAHqMA0GCSqGSIb3DQEB -# CwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTIzMTIwNjE4NDUz -# MFoXDTI1MDMwNTE4NDUzMFowgcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMx -# JzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjozNzAzLTA1RTAtRDk0NzElMCMGA1UE -# AxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZTCCAiIwDQYJKoZIhvcNAQEB -# BQADggIPADCCAgoCggIBALULX/FIPyAH1fsu52ijatZvaSypoXrlC0mRtCmaxzob -# huDkw6/pY/+4nhc4m8pf9zW3R6PihYGp0YPpVuNdfhPQp/KVO6WvMq2DGfFmHurW -# 4PQPL/DkbQMkM9vqjFCvPq8xXZnfL1nGN9moGcN+oaif/hUMedmF1qzbay9ILkYf -# LCxDYn3Qwzsvh5xjxOcsjzmRddNURJvT23Eva0cxisH4ocLLTx2zfpqfshw4Z9Ga -# EdsWg9rmib1galUpLzF5PsQDBbtZtcv+Wjmn0pFEiMCWwEEcPVN0YG5ysYLdNBdJ -# On2zsOOS+80W5RrQEqzPpSIIvEkZBJmF3aI4lMR8nV/FiTadjpIIqxX5Wa1XlqI/ -# Nj+xagVjnjb7POsA+vh6Wu+v24HpyL8pyL/8Q4RFkRRME9cwT+Jr63yOtPbLe6DX -# kxIJW6E6w2ua5kXBpEKtEQPTLPhX3CUxMYcglbnmI0zcc9UknX285K+sI/2WwRwT -# BZkhDUULI86eQzV+zvzzR1qEBrlSY+oyTlYQrHMM9WnTzVflFDocZVTPpl2BDSNx -# Pn0Qb4IoM9EPqbHyi/MilL+v/AQc8q3mQ6FiuPJAddz0ocpNZ9ekBWPVLKq3lfie -# v4yl65u/438+NAQ+vSJgkONLMmuoguEGzmnK1vq/JHwdRUyn6YADiteM7Dja+Qd9 -# AgMBAAGjggFJMIIBRTAdBgNVHQ4EFgQUK4FFJaJR5ukXQFTUxMhyiwVuWV4wHwYD -# VR0jBBgwFoAUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXwYDVR0fBFgwVjBUoFKgUIZO -# aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIw -# VGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3JsMGwGCCsGAQUFBwEBBGAwXjBc -# BggrBgEFBQcwAoZQaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0 -# cy9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcnQwDAYD -# VR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAOBgNVHQ8BAf8EBAMC -# B4AwDQYJKoZIhvcNAQELBQADggIBACiDrVZeP37+fFVtfcbfsqC/Kg0Ce67bDceh -# ZmPcfRgJ5Ddv0pJlOFVOFbiIVwesqeEUwFtclfi5AjneQ5ZJpYJpXfELOelG3dzj -# +BKfd287/UY/cwmSkl+CjnoKBL3Ms6I/fWR+alR0+p6RlviK8xHoug9vkc2WrRZs -# GnMVu2xOM2tPJ+qpyoDBzqv30N/ZRBOoNrS/PCkDwLGICDYqVs/IzAE49yv2ElPy -# walf9mEsOHXV1lxtQDNcejVEmitJJ+1Vr2EtafPEbMQZp89TAuagROKE4YuohCUK -# m+v3geJqTQarTBjqV25RCOT+XFngTMDD9wYx6TwndB2I1Ly726NiHUHs0uvq3ciC -# V9JwNXdt1VZ63WK1NSgpVEsiK9EPABPt1EfXcKrfaPYkbkFi79eK1ETxx3NomYNU -# HNiGU+X1Be8L7qpHwjo0g3/33XhtOr9LiDoUXh/V2LFTETiqV9Q8yLEavQW3j9LQ -# /h/CaGz5YdGfrY8HiPfMIeLEokKxGf0hHcTEFApB0yLlq6KoHrFAEANR/4XuFIpl -# 9sDywVIWt4tKqG+P6pRAXzg1zG5rGlslZWmw7XwgvhBu3jkLP9AxrsSYwY2ftrww -# ze5NA6VDLS7pz+OrXXWLUmoyNrJNx5Bk0wEwzkQxzkOvmbdPhsOP1ZM0uA/xIV7c -# SpNpZUw5MIIHcTCCBVmgAwIBAgITMwAAABXF52ueAptJmQAAAAAAFTANBgkqhkiG -# 9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAO -# BgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEy -# MDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIw -# MTAwHhcNMjEwOTMwMTgyMjI1WhcNMzAwOTMwMTgzMjI1WjB8MQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBQQ0EgMjAxMDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB -# AOThpkzntHIhC3miy9ckeb0O1YLT/e6cBwfSqWxOdcjKNVf2AX9sSuDivbk+F2Az -# /1xPx2b3lVNxWuJ+Slr+uDZnhUYjDLWNE893MsAQGOhgfWpSg0S3po5GawcU88V2 -# 9YZQ3MFEyHFcUTE3oAo4bo3t1w/YJlN8OWECesSq/XJprx2rrPY2vjUmZNqYO7oa -# ezOtgFt+jBAcnVL+tuhiJdxqD89d9P6OU8/W7IVWTe/dvI2k45GPsjksUZzpcGkN -# yjYtcI4xyDUoveO0hyTD4MmPfrVUj9z6BVWYbWg7mka97aSueik3rMvrg0XnRm7K -# MtXAhjBcTyziYrLNueKNiOSWrAFKu75xqRdbZ2De+JKRHh09/SDPc31BmkZ1zcRf -# NN0Sidb9pSB9fvzZnkXftnIv231fgLrbqn427DZM9ituqBJR6L8FA6PRc6ZNN3SU -# HDSCD/AQ8rdHGO2n6Jl8P0zbr17C89XYcz1DTsEzOUyOArxCaC4Q6oRRRuLRvWoY -# WmEBc8pnol7XKHYC4jMYctenIPDC+hIK12NvDMk2ZItboKaDIV1fMHSRlJTYuVD5 -# C4lh8zYGNRiER9vcG9H9stQcxWv2XFJRXRLbJbqvUAV6bMURHXLvjflSxIUXk8A8 -# FdsaN8cIFRg/eKtFtvUeh17aj54WcmnGrnu3tz5q4i6tAgMBAAGjggHdMIIB2TAS -# BgkrBgEEAYI3FQEEBQIDAQABMCMGCSsGAQQBgjcVAgQWBBQqp1L+ZMSavoKRPEY1 -# Kc8Q/y8E7jAdBgNVHQ4EFgQUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXAYDVR0gBFUw -# UzBRBgwrBgEEAYI3TIN9AQEwQTA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNy -# b3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRtMBMGA1UdJQQMMAoG -# CCsGAQUFBwMIMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIB -# hjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP6KJcYmjRPZSQW9fO -# mhjEMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9w -# a2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNybDBaBggr -# BgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0LmNv -# bS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0MA0GCSqGSIb3 -# DQEBCwUAA4ICAQCdVX38Kq3hLB9nATEkW+Geckv8qW/qXBS2Pk5HZHixBpOXPTEz -# tTnXwnE2P9pkbHzQdTltuw8x5MKP+2zRoZQYIu7pZmc6U03dmLq2HnjYNi6cqYJW -# AAOwBb6J6Gngugnue99qb74py27YP0h1AdkY3m2CDPVtI1TkeFN1JFe53Z/zjj3G -# 82jfZfakVqr3lbYoVSfQJL1AoL8ZthISEV09J+BAljis9/kpicO8F7BUhUKz/Aye -# ixmJ5/ALaoHCgRlCGVJ1ijbCHcNhcy4sa3tuPywJeBTpkbKpW99Jo3QMvOyRgNI9 -# 5ko+ZjtPu4b6MhrZlvSP9pEB9s7GdP32THJvEKt1MMU0sHrYUP4KWN1APMdUbZ1j -# dEgssU5HLcEUBHG/ZPkkvnNtyo4JvbMBV0lUZNlz138eW0QBjloZkWsNn6Qo3GcZ -# KCS6OEuabvshVGtqRRFHqfG3rsjoiV5PndLQTHa1V1QJsWkBRH58oWFsc/4Ku+xB -# Zj1p/cvBQUl+fpO+y/g75LcVv7TOPqUxUYS8vwLBgqJ7Fx0ViY1w/ue10CgaiQuP -# Ntq6TPmb/wrpNPgkNWcr4A245oyZ1uEi6vAnQj0llOZ0dFtq0Z4+7X6gMTN9vMvp -# e784cETRkPHIqzqKOghif9lwY1NNje6CbaUFEMFxBmoQtB1VM1izoXBm8qGCA00w -# ggI1AgEBMIH5oYHRpIHOMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGlu -# Z3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv -# cmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScw -# JQYDVQQLEx5uU2hpZWxkIFRTUyBFU046MzcwMy0wNUUwLUQ5NDcxJTAjBgNVBAMT -# HE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiIwoBATAHBgUrDgMCGgMVAInb -# HtxB+OlGyQnxQYhy04KSYSSPoIGDMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# UENBIDIwMTAwDQYJKoZIhvcNAQELBQACBQDrKYy6MCIYDzIwMjUwMTA4MjM0NjAy -# WhgPMjAyNTAxMDkyMzQ2MDJaMHQwOgYKKwYBBAGEWQoEATEsMCowCgIFAOspjLoC -# AQAwBwIBAAICKWYwBwIBAAICE0wwCgIFAOsq3joCAQAwNgYKKwYBBAGEWQoEAjEo -# MCYwDAYKKwYBBAGEWQoDAqAKMAgCAQACAwehIKEKMAgCAQACAwGGoDANBgkqhkiG -# 9w0BAQsFAAOCAQEAPzYOqsYoF4vIH+qFoefmwvzgHqMi9mzhL5Ns4u1zJ5vY4ZS8 -# k9AtuzZuhZVjfXE27tgL5I7mje8xEQtw4RCWX8PQEEA52SGh442mh4wYnLrj7uSP -# yI7wdXwFkXkOJta8GQ7kP4jzoHDaM6ebP4znIqr8QUyo+OmL6bBhnFQt9Hu4INQ5 -# HDrGQJ3S1tsGrBHwMhYnZEwur4iJeBnp0J+1riv/IMUgSt2x6aw0dJjAqj34+PU9 -# dultTkWxQblIwUIKRDsqXV2+Y6eOdLsSeiLX5nSStkIgPUKlyuuycTVAqRv5y0PW -# Yg0NoxmLKmig0DruHImo12kfbim+rM3wijnknzGCBA0wggQJAgEBMIGTMHwxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv -# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB6pokctVZP2FjAAEAAAHqMA0G -# CWCGSAFlAwQCAQUAoIIBSjAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJ -# KoZIhvcNAQkEMSIEIOrDQ1sJehwwg8w6aAMkVvAWIowekevxNEIm+NRASlYsMIH6 -# BgsqhkiG9w0BCRACLzGB6jCB5zCB5DCBvQQgKY+h1eNkNHiLCDSW0sA1cGHkbW4q -# ooi+ryyMp6S4ZngwgZgwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MAITMwAAAeqaJHLVWT9hYwABAAAB6jAiBCDEuGX8o4H1v7nIXWx+VCpEdZPl9z0y -# pkMrr1Rv5i5OtTANBgkqhkiG9w0BAQsFAASCAgAEedAcGyMhTvHpo+9EkHIGBM+C -# QibUvkPJ/LIIa3J8cbO9lt/0Quv2ZsHkBa6I7JXNoET6yO7+jRNxGMnuqRT8JV2e -# ttTg6VTue4x3Quc62GQUJPutIZJhc9Uv44KRdGeM4Kg3Z/bfo1oeOg2ZNtOvEGBK -# bduaw0TZfU+bweaBt57yxTxYNCEqwx/zeI9OUuOxkuw8pRImpCz8MfOCb8YNEbql -# hxAFzqCf7tYn7FfAI7jrbOqxnR7oV4PCTYIDIow48sT4STUhUHok2AcxwZDN6CIX -# OuWsKvI7jsCLWpSkBSvA3QnhIIXOJb24fZ5GNPyAmJib8wC+hA6cVtqgwxSBCRly -# vkEJ4ipMvmo0cVlrmrL/xld1uEKVq9cYwjxXYgOJ5H+zYEvhAdAOi8khu0qQ6ZOm -# m5yuovNSiaW77SStsuzL06fVdDV7U21hLuYgEhYLnDmy8VwzDz8FvURqxP8EiUbN -# +DU9VJU/4+2HpJDTrbqfIg6ChTkVa3S/rHUSs26a6jXYOc4I6O0wg16wge/ud253 -# 9oZclGFiI0POuetXVqtmwP6zQP7tEPOLTZo/7J+YvTvFnnQDj/VCo6OmccTFbvZW -# a5nhr0pcwDBXDnraICdHx3dTy+KOxzluaLlujYaG9WRrAPvr9H8SK84v9Lb2Baki -# 6MFnvtzs3h7OBtpFEw== -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Functions.format.ps1xml b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Functions.format.ps1xml deleted file mode 100644 index 3de02d85c574..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Functions.format.ps1xml +++ /dev/null @@ -1,285 +0,0 @@ - - - - - FunctionApp - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Site - - - - - 7 - 8 - 13 - - - - - - - - - Name - Status - OSType - Runtime - Location - AppServicePlan - ResourceGroupName - SubscriptionId - - - - - - - FunctionAppPlan - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServicePlan - - - - - - - - - - - - - - - Name - WorkerType - SkuTier - SkuName - Location - ResourceGroupName - SubscriptionId - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Functions.types.ps1xml b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Functions.types.ps1xml deleted file mode 100644 index a6c656b9f198..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Functions.types.ps1xml +++ /dev/null @@ -1,260 +0,0 @@ - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Site - - - Status - State - - - ResourceGroupName - ResourceGroup - - - SubscriptionId - - if ($this.ManagedEnvironmentId) - { - ($this.ManagedEnvironmentId -split "/")[2] - } - else - { - ($this.ServerFarmId -split "/")[2] - } - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServicePlan - - - ResourceGroupName - ResourceGroup - - - SubscriptionId - ($this.Id -split "/")[2] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/FunctionsStack/functionAppStacks.json b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/FunctionsStack/functionAppStacks.json deleted file mode 100644 index c2447258d88e..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/FunctionsStack/functionAppStacks.json +++ /dev/null @@ -1,1745 +0,0 @@ -[ - { - "id": null, - "name": "dotnet", - "type": "Microsoft.Web/functionAppStacks?stackOsType=All", - "properties": { - "displayText": ".NET", - "value": "dotnet", - "preferredOs": "windows", - "majorVersions": [ - { - "displayText": ".NET 8 Isolated", - "value": "dotnet8isolated", - "minorVersions": [ - { - "displayText": ".NET 8 Isolated", - "value": "8 (LTS), isolated worker model", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "v8.0", - "isHidden": false, - "isDefault": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "8.0.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", - "WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED": "1" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "netFrameworkVersion": "v8.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Tue Nov 10 2026 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "DOTNET-ISOLATED|8.0", - "isHidden": false, - "isDefault": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "8.0.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", - "WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED": "1" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "DOTNET-ISOLATED|8.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Tue Nov 10 2026 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": ".NET 7 Isolated", - "value": "dotnet7isolated", - "minorVersions": [ - { - "displayText": ".NET 7 Isolated", - "value": "7 (STS), isolated worker model", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "v7.0", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "7.0.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", - "WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED": "1" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "netFrameworkVersion": "v7.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Tue May 14 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "DOTNET-ISOLATED|7.0", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "7.0.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", - "WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED": "1" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "DOTNET-ISOLATED|7.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Tue May 14 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": ".NET 6 Isolated", - "value": "dotnet6isolated", - "minorVersions": [ - { - "displayText": ".NET 6 (LTS) Isolated", - "value": "6 (LTS), isolated worker model", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "v6.0", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "6.0.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", - "WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED": "1" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Tue Nov 12 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "DOTNET-ISOLATED|6.0", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "6.0.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", - "WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED": "1" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "DOTNET-ISOLATED|6.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Tue Nov 12 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": ".NET Framework 4.8", - "value": "dotnetframework48", - "minorVersions": [ - { - "displayText": ".NET Framework 4.8", - "value": ".NET Framework 4.8, isolated worker model", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "v4.0", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "4.8.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "netFrameworkVersion": "v4.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ] - } - } - } - ] - }, - { - "displayText": ".NET 8 In-process", - "value": "dotnet8", - "minorVersions": [ - { - "displayText": ".NET 8 (LTS) In-process", - "value": "8 (LTS), in-process model", - "stackSettings": { - "windowsRuntimeSettings": { - "isHidden": true, - "runtimeVersion": "v8.0", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "8.0.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet", - "FUNCTIONS_INPROC_NET8_ENABLED": "1" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "netFrameworkVersion": "v8.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": false - } - ], - "endOfLifeDate": "Tue Nov 10 2026 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "isHidden": true, - "runtimeVersion": "DOTNET|8.0", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "8.0.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet", - "FUNCTIONS_INPROC_NET8_ENABLED": "1" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "linuxFxVersion": "DOTNET|8.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": false - } - ], - "endOfLifeDate": "Tue Nov 10 2026 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": ".NET 6 In-process", - "value": "dotnet6", - "minorVersions": [ - { - "displayText": ".NET 6 (LTS) In-process", - "value": "6 (LTS), in-process model", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "v6.0", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "6.0.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Tue Nov 12 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "DOTNET|6.0", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "6.0.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "linuxFxVersion": "DOTNET|6.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Tue Nov 12 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": ".NET Core 2", - "value": "dotnetcore2", - "minorVersions": [ - { - "displayText": ".NET Core 2.2", - "value": "2.2", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "2.2", - "appInsightsSettings": { - "isSupported": true - }, - "remoteDebuggingSupported": false, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "2.2.207" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true - }, - "supportedFunctionsExtensionVersions": [ - "~2" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~2", - "isDeprecated": true, - "isDefault": true - } - ] - }, - "linuxRuntimeSettings": { - "runtimeVersion": "dotnet|2.2", - "appInsightsSettings": { - "isSupported": true - }, - "remoteDebuggingSupported": false, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "2.2.207" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "dotnet|2.2" - }, - "supportedFunctionsExtensionVersions": [ - "~2" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~2", - "isDeprecated": true, - "isDefault": true - } - ] - } - } - } - ] - }, - { - "displayText": ".NET Framework 4", - "value": "dotnetframework4", - "minorVersions": [ - { - "displayText": ".NET Framework 4.7", - "value": "4.7", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "4.7", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": false - }, - "appSettingsDictionary": {}, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true - }, - "supportedFunctionsExtensionVersions": [ - "~1" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~1", - "isDeprecated": true, - "isDefault": true - } - ] - } - } - } - ] - } - ] - } - }, - { - "id": null, - "name": "node", - "type": "Microsoft.Web/functionAppStacks?stackOsType=All", - "properties": { - "displayText": "Node.js", - "value": "node", - "preferredOs": "windows", - "majorVersions": [ - { - "displayText": "Node.js 20", - "value": "20", - "minorVersions": [ - { - "displayText": "Node.js 20 LTS", - "value": "20 LTS", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "~20", - "isDefault": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "20.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "node", - "WEBSITE_NODE_DEFAULT_VERSION": "~20" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Sat May 30 2026 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "Node|20", - "isDefault": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "20.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "node" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Node|20" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Sat May 30 2026 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": "Node.js 18", - "value": "18", - "minorVersions": [ - { - "displayText": "Node.js 18 LTS", - "value": "18 LTS", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "~18", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "18.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "node", - "WEBSITE_NODE_DEFAULT_VERSION": "~18" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Wed Apr 30 2025 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "Node|18", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "18.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "node" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Node|18" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Wed Apr 30 2025 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": "Node.js 16", - "value": "16", - "minorVersions": [ - { - "displayText": "Node.js 16 LTS", - "value": "16 LTS", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "~16", - "isPreview": false, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "16.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "node", - "WEBSITE_NODE_DEFAULT_VERSION": "~16" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Sun Jun 30 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "Node|16", - "isPreview": false, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "16.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "node" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Node|16" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Sun Jun 30 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": "Node.js 14", - "value": "14", - "minorVersions": [ - { - "displayText": "Node.js 14 LTS", - "value": "14 LTS", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "~14", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "14.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "node", - "WEBSITE_NODE_DEFAULT_VERSION": "~14" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4", - "~3" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - } - ], - "endOfLifeDate": "Sun Apr 30 2023 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "Node|14", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "14.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "node" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Node|14" - }, - "supportedFunctionsExtensionVersions": [ - "~4", - "~3" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - } - ], - "endOfLifeDate": "Sun Apr 30 2023 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": "Node.js 8", - "value": "8", - "minorVersions": [ - { - "displayText": "Node.js 8 LTS", - "value": "8 LTS", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "~8", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "8.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "node", - "WEBSITE_NODE_DEFAULT_VERSION": "~8" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true - }, - "supportedFunctionsExtensionVersions": [ - "~2" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~2", - "isDeprecated": true, - "isDefault": true - } - ], - "endOfLifeDate": "Tue Dec 31 2019 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": "Node.js 6", - "value": "6", - "minorVersions": [ - { - "displayText": "Node.js 6 LTS", - "value": "6 LTS", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "~6", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": false - }, - "appSettingsDictionary": { - "WEBSITE_NODE_DEFAULT_VERSION": "~6" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true - }, - "supportedFunctionsExtensionVersions": [ - "~1" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~1", - "isDeprecated": true, - "isDefault": true - } - ], - "endOfLifeDate": "Tue Apr 30 2019 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - } - ] - } - }, - { - "id": null, - "name": "python", - "type": "Microsoft.Web/functionAppStacks?stackOsType=All", - "properties": { - "displayText": "Python", - "value": "python", - "preferredOs": "linux", - "majorVersions": [ - { - "displayText": "Python 3", - "value": "3", - "minorVersions": [ - { - "displayText": "Python 3.11", - "value": "3.11", - "stackSettings": { - "linuxRuntimeSettings": { - "runtimeVersion": "Python|3.11", - "remoteDebuggingSupported": false, - "isPreview": false, - "isDefault": true, - "isHidden": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "3.11" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "python" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Python|3.11" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Sun Oct 31 2027 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - }, - { - "displayText": "Python 3.10", - "value": "3.10", - "stackSettings": { - "linuxRuntimeSettings": { - "runtimeVersion": "Python|3.10", - "remoteDebuggingSupported": false, - "isPreview": false, - "isDefault": true, - "isHidden": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "3.10" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "python" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Python|3.10" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Sat Oct 31 2026 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - }, - { - "displayText": "Python 3.9", - "value": "3.9", - "stackSettings": { - "linuxRuntimeSettings": { - "runtimeVersion": "Python|3.9", - "remoteDebuggingSupported": false, - "isPreview": false, - "isDefault": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "3.9" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "python" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Python|3.9" - }, - "supportedFunctionsExtensionVersions": [ - "~4", - "~3" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - } - ], - "endOfLifeDate": "Fri Oct 31 2025 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - }, - { - "displayText": "Python 3.8", - "value": "3.8", - "stackSettings": { - "linuxRuntimeSettings": { - "runtimeVersion": "Python|3.8", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "3.8" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "python" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Python|3.8" - }, - "supportedFunctionsExtensionVersions": [ - "~4", - "~3" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - } - ], - "endOfLifeDate": "Thu Oct 31 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - }, - { - "displayText": "Python 3.7", - "value": "3.7", - "stackSettings": { - "linuxRuntimeSettings": { - "runtimeVersion": "Python|3.7", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "3.7" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "python" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Python|3.7" - }, - "supportedFunctionsExtensionVersions": [ - "~4", - "~3", - "~2" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - }, - { - "version": "~2", - "isDeprecated": true, - "isDefault": false - } - ], - "endOfLifeDate": "Fri Jun 30 2023 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - } - ] - } - }, - { - "id": null, - "name": "java", - "type": "Microsoft.Web/functionAppStacks?stackOsType=All", - "properties": { - "displayText": "Java", - "value": "java", - "preferredOs": "windows", - "majorVersions": [ - { - "displayText": "Java 21", - "value": "21", - "minorVersions": [ - { - "displayText": "Java 21", - "value": "21.0", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "21", - "isPreview": true, - "isHidden": true, - "isAutoUpdate": true, - "isDefault": false, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "21" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "java" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "javaVersion": "21", - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Mon Sep 01 2031 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "Java|21", - "isPreview": true, - "isHidden": false, - "isAutoUpdate": true, - "isDefault": false, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "21" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "java" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Java|21" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Mon Sep 01 2031 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": "Java 17", - "value": "17", - "minorVersions": [ - { - "displayText": "Java 17", - "value": "17.0", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "17", - "isPreview": false, - "isHidden": false, - "isAutoUpdate": true, - "isDefault": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "17" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "java" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "javaVersion": "17", - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Mon Sep 01 2031 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "Java|17", - "isPreview": false, - "isHidden": false, - "isAutoUpdate": true, - "isDefault": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "17" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "java" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Java|17" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Mon Sep 01 2031 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": "Java 11", - "value": "11", - "minorVersions": [ - { - "displayText": "Java 11", - "value": "11.0", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "11", - "isAutoUpdate": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "11" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "java" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "javaVersion": "11", - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4", - "~3" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - } - ], - "endOfLifeDate": "Tue Sep 01 2026 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "Java|11", - "isAutoUpdate": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "11" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "java" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Java|11" - }, - "supportedFunctionsExtensionVersions": [ - "~4", - "~3" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - } - ], - "endOfLifeDate": "Tue Sep 01 2026 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": "Java 8", - "value": "8", - "minorVersions": [ - { - "displayText": "Java 8", - "value": "8.0", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "1.8", - "isAutoUpdate": true, - "isDefault": false, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "8" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "java" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "javaVersion": "1.8", - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4", - "~3", - "~2" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - }, - { - "version": "~2", - "isDeprecated": true, - "isDefault": false - } - ], - "endOfLifeDate": "Sat Mar 01 2025 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "Java|8", - "isAutoUpdate": true, - "isDefault": false, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "8" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "java" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Java|8" - }, - "supportedFunctionsExtensionVersions": [ - "~4", - "~3" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - } - ], - "endOfLifeDate": "Sat Mar 01 2025 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - } - ] - } - }, - { - "id": null, - "name": "powershell", - "type": "Microsoft.Web/functionAppStacks?stackOsType=All", - "properties": { - "displayText": "PowerShell Core", - "value": "powershell", - "preferredOs": "windows", - "majorVersions": [ - { - "displayText": "PowerShell 7", - "value": "7", - "minorVersions": [ - { - "displayText": "PowerShell 7.4", - "value": "7.4", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "7.4", - "isDefault": false, - "isPreview": true, - "isHidden": false, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "powershell" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "powerShellVersion": "7.4", - "netFrameworkVersion": "v8.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Tue Nov 10 2026 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "PowerShell|7.4", - "isDefault": false, - "isPreview": true, - "isHidden": false, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "powershell" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "PowerShell|7.4" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Tue Nov 10 2026 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - }, - { - "displayText": "PowerShell 7.2", - "value": "7.2", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "7.2", - "isDefault": true, - "isPreview": false, - "isHidden": false, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "powershell" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "powerShellVersion": "7.2", - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Fri Nov 08 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "PowerShell|7.2", - "isDefault": true, - "isPreview": false, - "isHidden": false, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "powershell" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "PowerShell|7.2" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Fri Nov 08 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - } - ] - } - }, - { - "id": null, - "name": "custom", - "type": "Microsoft.Web/functionAppStacks?stackOsType=All", - "properties": { - "displayText": "Custom Handler", - "value": "custom", - "preferredOs": "windows", - "majorVersions": [ - { - "displayText": "Custom Handler", - "value": "custom", - "minorVersions": [ - { - "displayText": "Custom Handler", - "value": "custom", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "custom", - "appInsightsSettings": { - "isSupported": true - }, - "remoteDebuggingSupported": false, - "gitHubActionSettings": { - "isSupported": false - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "custom" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4", - "~3", - "~2" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - }, - { - "version": "~2", - "isDeprecated": true, - "isDefault": false - } - ] - }, - "linuxRuntimeSettings": { - "runtimeVersion": "", - "isPreview": false, - "appInsightsSettings": { - "isSupported": true - }, - "remoteDebuggingSupported": false, - "gitHubActionSettings": { - "isSupported": false - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "custom" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "" - }, - "supportedFunctionsExtensionVersions": [ - "~4", - "~3", - "~2" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - }, - { - "version": "~2", - "isDeprecated": true, - "isDefault": false - } - ] - } - } - } - ] - } - ] - } - } -] diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Get-AzFunctionApp.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Get-AzFunctionApp.ps1 deleted file mode 100644 index 0d0b21988d20..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Get-AzFunctionApp.ps1 +++ /dev/null @@ -1,330 +0,0 @@ -function Get-AzFunctionApp { - [OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Description('Gets function apps in a subscription.')] - [CmdletBinding(DefaultParametersetname="GetAll")] - param( - [Parameter(ParameterSetName="ByName", HelpMessage='The Azure subscription ID.')] - [Parameter(ParameterSetName="GetAll")] - [Parameter(ParameterSetName="ByResourceGroupName")] - [Parameter(ParameterSetName="ByLocation")] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [ValidateNotNullOrEmpty()] - [System.String[]] - ${SubscriptionId}, - - [Parameter(Mandatory=$true, ParameterSetName="ByResourceGroupName", HelpMessage='The name of the resource group.')] - [Parameter(Mandatory=$true, ParameterSetName="ByName")] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [ValidateNotNullOrEmpty()] - [System.String] - ${ResourceGroupName}, - - [Parameter(Mandatory=$true, ParameterSetName="ByName", HelpMessage='The name of the function app.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [ValidateNotNullOrEmpty()] - [System.String] - ${Name}, - - [Parameter(Mandatory=$true, ParameterSetName="ByLocation", HelpMessage='The location of the function app.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [ValidateNotNullOrEmpty()] - [System.String] - ${Location}, - - [Parameter(Mandatory=$false, ParameterSetName="ByResourceGroupName", HelpMessage='Use to specify whether to include deployment slots in results.')] - [System.Management.Automation.SwitchParameter] - ${IncludeSlot}, - - [Parameter(HelpMessage=' The credentials, account, tenant, and subscription used for communication with Azure.')] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} - ) - - process { - - RegisterFunctionsTabCompleters - - $apps = $null - $locationToUse = $null - $parameterSetName = $PsCmdlet.ParameterSetName - - if (($parameterSetName -eq "GetAll") -or ($parameterSetName -eq "ByLocation")) - { - if ($PSBoundParameters.ContainsKey("Location")) - { - $locationToUse = $Location - $PSBoundParameters.Remove("Location") | Out-Null - } - } - - $apps = @(Az.Functions.internal\Get-AzFunctionApp @PSBoundParameters) - - if ($apps.Count -gt 0) - { - $params = GetParameterKeyValues -PSBoundParametersDictionary $PSBoundParameters ` - -ParameterList @("SubscriptionId", "HttpPipelineAppend", "HttpPipelinePrepend") - GetFunctionApps -Apps $apps -Location $locationToUse @params - } - } -} - -# SIG # Begin signature block -# MIIoOwYJKoZIhvcNAQcCoIIoLDCCKCgCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDHr4TzAnqYA3lg -# YAFzBKIB9dEwnKH4ASKkLt84xaEym6CCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGgwwghoIAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIJEC -# +T9U8R/A7fmja09ZcPbAaLWxo+KF+5GvzaCUHnDhMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAMmbwbNyQ67YBwILUhn78ouxpXF5xuOotE5ch -# grxdfM6DyVEHVDm1YV8hlKIP8/dTu+jZOJgszUQwZspaqeMLDld5riKkz2o7G2qd -# +8cOgSY6nYNvlQM/nogRlJrETah53I4SzYU+lEiGH9UsMoOJS/uB96h7PlzhkU4U -# MBoTKaY0tnVT9MN/7z0Vs8PaukAnhy+cZZXtVBLK0HOFnitHzOrb8DoFopqF75rv -# ml2o881v8slwpYyjkTj83lSZK2qDl+ugsWJADR4Kro9mbYVUpeQyXu3RxN8ZezIL -# aFLOuN4Nqj5RyZFOHoNRYkJ8dVF+VbJWrGJFfYUDf8WPGCAxsKGCF5YwgheSBgor -# BgEEAYI3AwMBMYIXgjCCF34GCSqGSIb3DQEHAqCCF28wghdrAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFRBgsqhkiG9w0BCRABBKCCAUAEggE8MIIBOAIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCA41ZRtn/jhuNw8jFDwpktpXbW+kfgq3yzk -# 1+VoDAqN5gIGZ1sAySV0GBIyMDI1MDEwOTA2Mzc0Ni4zOFowBIACAfSggdGkgc4w -# gcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS -# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsT -# HE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQg -# VFNTIEVTTjpGMDAyLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUt -# U3RhbXAgU2VydmljZaCCEe0wggcgMIIFCKADAgECAhMzAAAB8j4y12SscJGUAAEA -# AAHyMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw -# MB4XDTIzMTIwNjE4NDU1OFoXDTI1MDMwNTE4NDU1OFowgcsxCzAJBgNVBAYTAlVT -# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVy -# aWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjpGMDAyLTA1 -# RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZTCC -# AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALzl88sXCmliDHBjGRIR5i9A -# G2dglO0oqPYUrHMfHR+BXpeAgiuYJaakqX0g7O858n+TqI/RGehGjkXz0B3b153M -# Z2VZsKPVDLHkdQc1jzK70SUk6Z2B6429MrhFbjC72IHn/PZJ4K5irJf+/zPo+m/b -# 2HW201axJz8o8566HNIBeqQDbrkFIVPmTKTG/MHQvGjFLqhahdYrrDHXvY1ElFhw -# g19cOFRG9R8PvSOKgT3atb86CNw4rFmR9DEuXBoVKtKcazteEyun1OxSCbCzJxMQ -# 4F0ZWZ/UcIPtY5rPkQRxDIhLYGlFhjCw8xsHre4eInXnyo2HVIle6gvnAYO79tlT -# M34HNwuP3qLELvAkZAwGLFYf1375XxuXXRFh1cNmWWNEC9LqIXA3OtqG7gOthvtv -# wzu+/CEQvTEI69vtYUyyy2xxd+R0TmD41JpymGAV9yh+1Dmo8PY81WasbfwOYcOh -# iGCP26o8s/u+ehd/uPr4tbxWifXnwPRauaTsK6a5xBOIdHJ6kRpUOecDYaSImh6H -# +vd9KEvoIeA+hMHuhhT93ok6dxGKgNiqpF9XbCWkpU7xv5VgcvyGfXUlEXHqnr2Y -# vwFG1Jnp0b8YURUT59WaDFh8gJSumCHJCURMk8hMQFLXkixpS5bQa9eUtKh8Z/a3 -# kMCgOS4oJsL7dV0+aVhVAgMBAAGjggFJMIIBRTAdBgNVHQ4EFgQUlVuHACbq0DEE -# zlwfwGDT5jrihnkwHwYDVR0jBBgwFoAUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXwYD -# VR0fBFgwVjBUoFKgUIZOaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9j -# cmwvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3JsMGwG -# CCsGAQUFBwEBBGAwXjBcBggrBgEFBQcwAoZQaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIw -# MjAxMCgxKS5jcnQwDAYDVR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcD -# CDAOBgNVHQ8BAf8EBAMCB4AwDQYJKoZIhvcNAQELBQADggIBAD1Lp47gex8HTRek -# 6A9ptw3dBl7KKmCKVxBINnyDpUK/0VUfN1Kr1ekCyWNlIo1ZIKWEkTPk6jdSb+1o -# +ehsX7wKQB2RwtCEt2RKF+v3WTPL28M+s6aUIDYVD2NWEVpq3ZAzffPWn4YI/m26 -# +KsVpRbNRZUMU6mj87nMOnOg9i1OvRwWDe5dpEtPnhRDdji49heqfrC6dm1RBEyI -# kzPGlSW919YZS0K+dbd4MGKQOSLHVcT3xVxgjPb7l91y+sdV5RqsZfLgtG3DObCm -# wK1SHu1HrCEKtViRvoW50F1YztNW+OLukaB+N6yCcBJoP8KEu7Hro8bBohoX7EvO -# TRs3GwCPS6F3pB1avpNPf2b9I1nX9RdTuTMSh3S8BjeYifxfkDgj7397WcE2lREn -# piIMpB3lhWDGy5kJa/hDBvSZeEch70K5t9KpmO8NrB/Yjbb03cuy0MlRKvW8YUHy -# JDlbxkszk/BPy+2woQHAcRibCy5aazGSKYgXkFBtLOD3DPU7qN1ZPEYbQ5S3VxdY -# 4wlQnPIQfhZIpkc7HnepwC8P2HRTqMQXZ+4GO0n9AOtZtvi6u8B+u+o2f2UfuBU+ -# mWo08Mi9DwORneW9tCxiqXPrXt7vqBrtJjTDvX5A/XrkI93NRjfp63ZKbim+ykQr -# yGWWrchhzJfS/z3v5f1h55wzU9vWMIIHcTCCBVmgAwIBAgITMwAAABXF52ueAptJ -# mQAAAAAAFTANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNh -# dGUgQXV0aG9yaXR5IDIwMTAwHhcNMjEwOTMwMTgyMjI1WhcNMzAwOTMwMTgzMjI1 -# WjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQD -# Ex1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCCAiIwDQYJKoZIhvcNAQEB -# BQADggIPADCCAgoCggIBAOThpkzntHIhC3miy9ckeb0O1YLT/e6cBwfSqWxOdcjK -# NVf2AX9sSuDivbk+F2Az/1xPx2b3lVNxWuJ+Slr+uDZnhUYjDLWNE893MsAQGOhg -# fWpSg0S3po5GawcU88V29YZQ3MFEyHFcUTE3oAo4bo3t1w/YJlN8OWECesSq/XJp -# rx2rrPY2vjUmZNqYO7oaezOtgFt+jBAcnVL+tuhiJdxqD89d9P6OU8/W7IVWTe/d -# vI2k45GPsjksUZzpcGkNyjYtcI4xyDUoveO0hyTD4MmPfrVUj9z6BVWYbWg7mka9 -# 7aSueik3rMvrg0XnRm7KMtXAhjBcTyziYrLNueKNiOSWrAFKu75xqRdbZ2De+JKR -# Hh09/SDPc31BmkZ1zcRfNN0Sidb9pSB9fvzZnkXftnIv231fgLrbqn427DZM9itu -# qBJR6L8FA6PRc6ZNN3SUHDSCD/AQ8rdHGO2n6Jl8P0zbr17C89XYcz1DTsEzOUyO -# ArxCaC4Q6oRRRuLRvWoYWmEBc8pnol7XKHYC4jMYctenIPDC+hIK12NvDMk2ZItb -# oKaDIV1fMHSRlJTYuVD5C4lh8zYGNRiER9vcG9H9stQcxWv2XFJRXRLbJbqvUAV6 -# bMURHXLvjflSxIUXk8A8FdsaN8cIFRg/eKtFtvUeh17aj54WcmnGrnu3tz5q4i6t -# AgMBAAGjggHdMIIB2TASBgkrBgEEAYI3FQEEBQIDAQABMCMGCSsGAQQBgjcVAgQW -# BBQqp1L+ZMSavoKRPEY1Kc8Q/y8E7jAdBgNVHQ4EFgQUn6cVXQBeYl2D9OXSZacb -# UzUZ6XIwXAYDVR0gBFUwUzBRBgwrBgEEAYI3TIN9AQEwQTA/BggrBgEFBQcCARYz -# aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnku -# aHRtMBMGA1UdJQQMMAoGCCsGAQUFBwMIMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIA -# QwBBMAsGA1UdDwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2 -# VsuP6KJcYmjRPZSQW9fOmhjEMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu -# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEw -# LTA2LTIzLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93 -# d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYt -# MjMuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCdVX38Kq3hLB9nATEkW+Geckv8qW/q -# XBS2Pk5HZHixBpOXPTEztTnXwnE2P9pkbHzQdTltuw8x5MKP+2zRoZQYIu7pZmc6 -# U03dmLq2HnjYNi6cqYJWAAOwBb6J6Gngugnue99qb74py27YP0h1AdkY3m2CDPVt -# I1TkeFN1JFe53Z/zjj3G82jfZfakVqr3lbYoVSfQJL1AoL8ZthISEV09J+BAljis -# 9/kpicO8F7BUhUKz/AyeixmJ5/ALaoHCgRlCGVJ1ijbCHcNhcy4sa3tuPywJeBTp -# kbKpW99Jo3QMvOyRgNI95ko+ZjtPu4b6MhrZlvSP9pEB9s7GdP32THJvEKt1MMU0 -# sHrYUP4KWN1APMdUbZ1jdEgssU5HLcEUBHG/ZPkkvnNtyo4JvbMBV0lUZNlz138e -# W0QBjloZkWsNn6Qo3GcZKCS6OEuabvshVGtqRRFHqfG3rsjoiV5PndLQTHa1V1QJ -# sWkBRH58oWFsc/4Ku+xBZj1p/cvBQUl+fpO+y/g75LcVv7TOPqUxUYS8vwLBgqJ7 -# Fx0ViY1w/ue10CgaiQuPNtq6TPmb/wrpNPgkNWcr4A245oyZ1uEi6vAnQj0llOZ0 -# dFtq0Z4+7X6gMTN9vMvpe784cETRkPHIqzqKOghif9lwY1NNje6CbaUFEMFxBmoQ -# tB1VM1izoXBm8qGCA1AwggI4AgEBMIH5oYHRpIHOMIHLMQswCQYDVQQGEwJVUzET -# MBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMV -# TWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmlj -# YSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046RjAwMi0wNUUw -# LUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiIwoB -# ATAHBgUrDgMCGgMVAGuL3jdwUsfZN9AR8HTlIsgKDvgIoIGDMIGApH4wfDELMAkG -# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx -# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwDQYJKoZIhvcNAQELBQACBQDrKb72MCIY -# DzIwMjUwMTA5MDMyMDIyWhgPMjAyNTAxMTAwMzIwMjJaMHcwPQYKKwYBBAGEWQoE -# ATEvMC0wCgIFAOspvvYCAQAwCgIBAAICG00CAf8wBwIBAAICE+MwCgIFAOsrEHYC -# AQAwNgYKKwYBBAGEWQoEAjEoMCYwDAYKKwYBBAGEWQoDAqAKMAgCAQACAwehIKEK -# MAgCAQACAwGGoDANBgkqhkiG9w0BAQsFAAOCAQEAiC0JBk9p6YdyVFQ4avHCUyNm -# PzRaKj8g9i/FPoLrej2uXIr2t2F5uklVVIDBIW/xUuLW/RucMODVhzr3Ea6tsXzI -# lACKNhjQVmYmAa4OEAsft9hao0CwEzBmmRnoKvGqMRlG5oJTxKkNb/7B9fEJ8j5V -# 5iq9nPjflIZtvnV94J7530TQLWN2KJMBsakmJ5mQkrcl594Ldt4Z+jRYTrRcHoZ6 -# x9TkghCkM5Yr+UxpgdP07+BTRVjJldSM3SoWkEa/uk8iOb2OkLtOPdT+QoDYN9AR -# OmdoM9axjP37XZaoZb44UhBd/yMOBsOtW6G1XXnNKLaJqq79dJywBztY2n26jjGC -# BA0wggQJAgEBMIGTMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB -# 8j4y12SscJGUAAEAAAHyMA0GCWCGSAFlAwQCAQUAoIIBSjAaBgkqhkiG9w0BCQMx -# DQYLKoZIhvcNAQkQAQQwLwYJKoZIhvcNAQkEMSIEIFaMq7fAJbS7gNcL+sgpV4cs -# Izu5Ive4PJLJ9ZJcBZsaMIH6BgsqhkiG9w0BCRACLzGB6jCB5zCB5DCBvQQg+No+ -# HS4xUlzTj5jhG7kFRRscTiy5nqdEdJS7RddKQ0QwgZgwgYCkfjB8MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQg -# VGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAfI+MtdkrHCRlAABAAAB8jAiBCBAbZbu -# D1lx85tT8OkVBiheFMuIPY4uO2xqiEEOL2O6oTANBgkqhkiG9w0BAQsFAASCAgAw -# AlEF5JfIfjhoTmQV9lwrGlZKtEuo9ziGioKCcNylsZX/lujpty6d/KLw3G70Ucja -# qbka6BKznBdgzFYmIJwZ42RQhKiIUOQ9Iilm8X61TBqR2GAbmmlF1FesvY/BsfzE -# cChrDDS7LyAq3ygXBWN6XumOKsMjhWzeDKKVcBiD5O4G15DrdYkK+Ukypcs7u2+F -# KPkwREZvHNmJqDGWcMjxSKBqLwyR6y9iwxrgYjbpKL7oQBkVA7Q/q/N+72Qv3pQN -# u9OvuhpLih7kdSVYZlMymtWzHR4cqAwxskl7Hr+xZhD0Du6KUeCGf/4Vsu+6s/Um -# NNYuS/WW1NuLOQPURM+dERaY8R3FP2CWqNaXbFZTeTa316Fsz3XlMXz99EGzIGye -# CZDUdAk/yPMnvy0ns1T2lgiUYRZ4FhNnYx3Wq34zO69+1bzcKxlzX8GunWD8mf7b -# HE+eMgYy3OgnjeQaAYqBTrR243BO+U5eXUJxHC75A0oyn5QnMDegUVp3LU0p40yW -# uICt5e0vX3x5auGPqo1D8fnihB/KAhL0I/FHK2qEEJ3FOC4CzTlLKLm3ONMcXpet -# Vg/7TXsB4nhtHKXRX1lo3bxqRYlfRJo2MqiLzUUW5uBqLNaJ+EMV3v6OqP4Epd6D -# SGyl0zQLN/CbEzfKSRWgYHN+kc8Bp2j1sZx2bGuuDg== -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Get-AzFunctionAppAvailableLocation.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Get-AzFunctionAppAvailableLocation.ps1 deleted file mode 100644 index 1fed4452fa11..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Get-AzFunctionAppAvailableLocation.ps1 +++ /dev/null @@ -1,344 +0,0 @@ -function Get-AzFunctionAppAvailableLocation { - [OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IGeoRegion])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Description('Gets the location where a function app for the given os and plan type is available.')] - [CmdletBinding()] - param( - [Parameter(HelpMessage='The Azure subscription ID.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [ValidateNotNullOrEmpty()] - [System.String[]] - ${SubscriptionId}, - - [Parameter(HelpMessage="The plan type. Valid inputs: Consumption or Premium")] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AvailablePlanType])] - [ValidateNotNullOrEmpty()] - [System.String] - # Plan type (Consumption or Premium) - ${PlanType}, - - [Parameter(HelpMessage='The OS type for the service plan.')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.WorkerType])] - [ValidateNotNullOrEmpty()] - [System.String] - # OS type (Linux or Windows) - ${OSType}, - - [Parameter(HelpMessage=' The credentials, account, tenant, and subscription used for communication with Azure.')] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} - ) - - process { - - RegisterFunctionsTabCompleters - - # Remove bound parameters from the dictionary that cannot be process by the intenal cmdlets - $paramsToRemove = @( - "OSType", - "PlanType" - ) - foreach ($paramName in $paramsToRemove) - { - if ($PSBoundParameters.ContainsKey($paramName)) - { - $PSBoundParameters.Remove($paramName) | Out-Null - } - } - - # Set default values for PlanType and OSType - if (-not $PlanType) - { - $PlanType = "Premium" - Write-Verbose "PlanType not specified. Setting default PlanType to '$PlanType'." -Verbose - } - - if (-not $OSType) - { - $OSType = "Windows" - Write-Verbose "OSType not specified. Setting default OSType to '$OSType'." -Verbose - } - - # Set Linux flag - if ($OSType -eq "Linux") - { - $PSBoundParameters.Add("LinuxWorkersEnabled", $true) | Out-Null - } - - # Set plan sku - if ($PlanType -eq "Premium") - { - $PSBoundParameters.Add("Sku", 'ElasticPremium') | Out-Null - } - elseif ($PlanType -eq "Consumption") - { - $PSBoundParameters.Add("Sku", 'Dynamic') | Out-Null - } - else - { - throw "Unknown PlanType '$PlanType'" - } - - Az.Functions.internal\Get-AzFunctionAppAvailableLocation @PSBoundParameters - } -} - -# SIG # Begin signature block -# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBsvfGxehMRmK4F -# EusJp6Lll7ZlCyN0+xp74Y8LhX559qCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIHbGsQ/FjTskGD7SHuzcgxam -# gAEj7vhjhGWyrxjbzBdoMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAG5Ndxl1fYB7DGjA0MCfIykeH0eDfLgAw/gdolrlP09EE7p+QlFEr5imn -# iBMB0FsePQF08Z/albR+WalScBe0/nYvRZyUU6X+IMiBhLU5XbrdHqjZkwh4sw2d -# PU9hLePRQ1hgirAxYRRx0a25y4/Me+PLUNwKdj/B5w1foSekJFYbKN+h6rJUgFZ0 -# S1tpfcD7LZOKUyp5LHQgb8K8b35J3LQEeklcgl+qHQuC4xVUzOHigeJZwfSHCC0b -# XXLVJVllJ1mohq9n8hR6+6BOhlmgt8+Y06+CcTwQzivgN9a8uewv58+NxOyaVDGi -# 18sSMSa0kDwB3BK6uyQNbtKfgA4twaGCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC -# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCAPHYkxj1iMHNN+nbez0NCp9dtBwJWB1LQ8cxctzipUNgIGZ1ruJObR -# GBMyMDI1MDEwOTA2Mzc0NC45OTdaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046N0YwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHqMIIHIDCCBQigAwIBAgITMwAAAfAqfB1ZO+YfrQABAAAB8DANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# NTFaFw0yNTAzMDUxODQ1NTFaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046N0YwMC0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQC1Hi1Tozh3O0czE8xfRnrymlJNCaGWommPy0eINf+4 -# EJr7rf8tSzlgE8Il4Zj48T5fTTOAh6nITRf2lK7+upcnZ/xg0AKoDYpBQOWrL9Ob -# FShylIHfr/DQ4PsRX8GRtInuJsMkwSg63bfB4Q2UikMEP/CtZHi8xW5XtAKp95cs -# 3mvUCMvIAA83Jr/UyADACJXVU4maYisczUz7J111eD1KrG9mQ+ITgnRR/X2xTDMC -# z+io8ZZFHGwEZg+c3vmPp87m4OqOKWyhcqMUupPveO/gQC9Rv4szLNGDaoePeK6I -# U0JqcGjXqxbcEoS/s1hCgPd7Ux6YWeWrUXaxbb+JosgOazUgUGs1aqpnLjz0YKfU -# qn8i5TbmR1dqElR4QA+OZfeVhpTonrM4sE/MlJ1JLpR2FwAIHUeMfotXNQiytYfR -# BUOJHFeJYEflZgVk0Xx/4kZBdzgFQPOWfVd2NozXlC2epGtUjaluA2osOvQHZzGO -# oKTvWUPX99MssGObO0xJHd0DygP/JAVp+bRGJqa2u7AqLm2+tAT26yI5veccDmNZ -# sg3vDh1HcpCJa9QpRW/MD3a+AF2ygV1sRnGVUVG3VODX3BhGT8TMU/GiUy3h7ClX -# OxmZ+weCuIOzCkTDbK5OlAS8qSPpgp+XGlOLEPaM31Mgf6YTppAaeP0ophx345oh -# twIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFNCCsqdXRy/MmjZGVTAvx7YFWpslMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQA4IvSbnr4jEPgo5W4xj3/+0dCGwsz863QG -# Z2mB9Z4SwtGGLMvwfsRUs3NIlPD/LsWAxdVYHklAzwLTwQ5M+PRdy92DGftyEOGM -# Hfut7Gq8L3RUcvrvr0AL/NNtfEpbAEkCFzseextY5s3hzj3rX2wvoBZm2ythwcLe -# ZmMgHQCmjZp/20fHWJgrjPYjse6RDJtUTlvUsjr+878/t+vrQEIqlmebCeEi+VQV -# xc7wF0LuMTw/gCWdcqHoqL52JotxKzY8jZSQ7ccNHhC4eHGFRpaKeiSQ0GXtlbGI -# bP4kW1O3JzlKjfwG62NCSvfmM1iPD90XYiFm7/8mgR16AmqefDsfjBCWwf3qheIM -# fgZzWqeEz8laFmM8DdkXjuOCQE/2L0TxhrjUtdMkATfXdZjYRlscBDyr8zGMlprF -# C7LcxqCXlhxhtd2CM+mpcTc8RB2D3Eor0UdoP36Q9r4XWCVV/2Kn0AXtvWxvIfyO -# Fm5aLl0eEzkhfv/XmUlBeOCElS7jdddWpBlQjJuHHUHjOVGXlrJT7X4hicF1o23x -# 5U+j7qPKBceryP2/1oxfmHc6uBXlXBKukV/QCZBVAiBMYJhnktakWHpo9uIeSnYT -# 6Qx7wf2RauYHIER8SLRmblMzPOs+JHQzrvh7xStx310LOp+0DaOXs8xjZvhpn+Wu -# Zij5RmZijDCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNN -# MIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjdGMDAtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQDC -# KAZKKv5lsdC2yoMGKYiQy79p/6CBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymsTjAiGA8yMDI1MDEwOTAyMDA0 -# NloYDzIwMjUwMTEwMDIwMDQ2WjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDrKaxO -# AgEAMAcCAQACAhAbMAcCAQACAhJlMAoCBQDrKv3OAgEAMDYGCisGAQQBhFkKBAIx -# KDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZI -# hvcNAQELBQADggEBAC1cdMDEbkRcY2RQqIzvaE4HZKAjEmimvnsiEBkklaFm6rly -# Zt9DvGP6qPI2o9uoDgj5p1lqIdL6mL4/N42GeRRMKldnSWngymbhkCX8RyiExho1 -# KZ5jhz57pWFxjKAotc0FnVhoE6DCsEUO9uOmhu7Ct9Dh3mxo0TTG0Y3PWRNXSkhT -# 1ZZ+X4g6PgHyalO5jpg2mBXVsyN3ECE7yjGGt6/9OHTXy4d0YqKqcPmIzxTyrZ5g -# sWJKwA+N2EAf7ePa2e4WVF4Wo3aLlCqa1205pOti3tP3R7g5EplvMU96xHXXaJCp -# DtSmz/cEC40EGtPwjuD5tCnadCT0X4FunUDS/FUxggQNMIIECQIBATCBkzB8MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy -# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAfAqfB1ZO+YfrQABAAAB8DAN -# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G -# CSqGSIb3DQEJBDEiBCAQRxUuTWkYvL10Sspzor1u3WpOr+wc/VltK0zc+EhBeDCB -# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIFwBmqOlcv3kU7mAB5sWR74QFAiS -# 6mb+CM6asnFAZUuLMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAHwKnwdWTvmH60AAQAAAfAwIgQgNav9MbTleN9i36swrfpwTySv7j07 -# igK/LBfrwEBJl3cwDQYJKoZIhvcNAQELBQAEggIATfCJXAai3oi0mzllNThlXT11 -# RcXtFEOfa6lZcHEJzCwUdNm1HCd46dt8qR+iUyOu1FxRs3hUl3/YIR/YpSLUX3Kh -# 25A5P4DQjqSmm5sU9kMrDMLd85STFM1YZ07hly1VVck0+cn8wBh8aTj5eX253wl/ -# F3WrG4K9KtqChGv4DHFSHPpzI1A6+m0KHl77inG/doB7Eq4llIleMBikV6XkR0Vv -# yg3IzLB7a1fH/8JXJRBb/yJzplhEOe4DppdA1DHo2E46xsNoV4z8BUEufrHYi43Z -# UknV8pD6SHz8ZwKhMi5B2hxHopMdg0k52OSt3KjbSz2lvlut/NKyg3uYJNA3CEsS -# UkZv6T/stET6u0OEpEEKNH6FMDh/qS81Q/Bz0xrXIJGfNi0UXURBXxSiK9cQM+D5 -# S2fgD82+jZ2imiZ+Qv2FKlr1LJzc+ePNvYKh5gJyIar5s2UmdGoXwLej+YwYz+P3 -# KoBwspF01J6jUw2c2gtGiSdhxJHJ5yWIueXxY+J57hSDbu916H5XwxX+25XfN38N -# kP0qfWbRa8u6+1PHO8M7zQ1fvzc0hemyst1etqhlQDx9r1k3J5Kso9lLFY5PBsm0 -# 8LVAWHcnHAS1jytPDb6w0iQ3VaXyxZ4jnhsQ+EVmPXSCfJHWI0BNmOSNVaA6Kjci -# 82B6Ekb0MLG52Va+bE0= -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Get-AzFunctionAppPlan.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Get-AzFunctionAppPlan.ps1 deleted file mode 100644 index 510a51f0ccae..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Get-AzFunctionAppPlan.ps1 +++ /dev/null @@ -1,326 +0,0 @@ -function Get-AzFunctionAppPlan { - [OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Description('Get function apps plans in a subscription.')] - [CmdletBinding(DefaultParameterSetName='GetAll')] - param( - [Parameter(ParameterSetName='ByName', Mandatory = $true, HelpMessage='The Azure subscription ID.')] - [Parameter(ParameterSetName="GetAll")] - [Parameter(ParameterSetName="ByResourceGroupName")] - [Parameter(ParameterSetName="ByLocation")] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [ValidateNotNullOrEmpty()] - [System.String[]] - ${SubscriptionId}, - - [Parameter(ParameterSetName='ByName', Mandatory = $true, HelpMessage='The name of the resource group.')] - [Parameter(ParameterSetName="ByResourceGroupName")] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [ValidateNotNullOrEmpty()] - [System.String] - ${ResourceGroupName}, - - [Parameter(ParameterSetName="ByName", Mandatory = $true, HelpMessage='The service plan name.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - [ValidateNotNullOrEmpty()] - ${Name}, - - [Parameter(Mandatory=$true, ParameterSetName="ByLocation", HelpMessage='The location of the function app plan.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - [ValidateNotNullOrEmpty()] - ${Location}, - - [Parameter(HelpMessage='The credentials, account, tenant, and subscription used for communication with Azure.')] - [Alias('AzureRMContext', 'AzureCredential')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - [ValidateNotNull()] - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} - ) - - process { - - RegisterFunctionsTabCompleters - - $plans = $null - $locationToUse = $null - $parameterSetName = $PsCmdlet.ParameterSetName - - if (($parameterSetName -eq "GetAll") -or ($parameterSetName -eq "ByLocation")) - { - if ($PSBoundParameters.ContainsKey("Location")) - { - $locationToUse = $Location - $PSBoundParameters.Remove("Location") | Out-Null - } - } - - $plans = @(Az.Functions.internal\Get-AzFunctionAppPlan @PSBoundParameters) - - if ($plans.Count -gt 0) - { - $params = GetParameterKeyValues -PSBoundParametersDictionary $PSBoundParameters ` - -ParameterList @("SubscriptionId", "HttpPipelineAppend", "HttpPipelinePrepend") - GetFunctionAppPlans -Plans $plans -Location $locationToUse @params - } - } -} - -# SIG # Begin signature block -# MIIoOQYJKoZIhvcNAQcCoIIoKjCCKCYCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAD4tr7CWuYJ8eY -# UM09fMoMN+58bgHCVpNIUPFE3V0XCqCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIJAk -# wzs4V8GOq9Ov039VGy1bnD9uVgPklAvkFPZib8PuMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAcI7WsV2qxfn4UctsIgfw0SyH8x3/+RV4S70K -# BranFXq3C6ngLbHpNbFvtr5F1HubdlfOfbpLSqyoDdCKfoqUs6M4rXk2M1h24vmY -# DlPNazj2GD6S/GkuEMZcz8XCvG1X4hCpB1oWtwVhVFUO4/yfmrYMyepQ7YZWwDoo -# QKgp6yaPOLsDG2nLnInWch3g1gxlJ9wUv89FJdngD/80YxzMT7H+Uc7DK7EM/Zw0 -# 85ZazLVfxOFezE7oYup1jnx0K1t4Tv0hl5pm4Lgv9QNXpcK5/lxCHAFb0Ya2k3rK -# se0MUTpz8FcUMwYbTFBhhD3xoBUe2sQz33eL8soIr5dtLUjhsaGCF5QwgheQBgor -# BgEEAYI3AwMBMYIXgDCCF3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFSBgsqhkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCDsnD5n1AuLeayE87RgObv5qsQARswHKSY3 -# VjMl1eb7AwIGZ1rou14PGBMyMDI1MDEwOTA2Mzc1MC40MTRaMASAAgH0oIHRpIHO -# MIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQL -# ExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxk -# IFRTUyBFU046REMwMC0wNUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1l -# LVN0YW1wIFNlcnZpY2WgghHqMIIHIDCCBQigAwIBAgITMwAAAehQsIDPK3KZTQAB -# AAAB6DANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDAeFw0yMzEyMDYxODQ1MjJaFw0yNTAzMDUxODQ1MjJaMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046REMwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Uw -# ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDhQXdE0WzXG7wzeC9SGdH6 -# eVwdGlF6YgpU7weOFBkpW9yuEmJSDE1ADBx/0DTuRBaplSD8CR1QqyQmxRDD/Cdv -# DyeZFAcZ6l2+nlMssmZyC8TPt1GTWAUt3GXUU6g0F0tIrFNLgofCjOvm3G0j482V -# utKS4wZT6bNVnBVsChr2AjmVbGDN/6Qs/EqakL5cwpGel1te7UO13dUwaPjOy0Wi -# 1qYNmR8i7T1luj2JdFdfZhMPyqyq/NDnZuONSbj8FM5xKBoar12ragC8/1CXaL1O -# MXBwGaRoJTYtksi9njuq4wDkcAwitCZ5BtQ2NqPZ0lLiQB7O10Bm9zpHWn9x1/Hm -# dAn4koMWKUDwH5sd/zDu4vi887FWxm54kkWNvk8FeQ7ZZ0Q5gqGKW4g6revV2IdA -# xBobWdorqwvzqL70WdsgDU/P5c0L8vYIskUJZedCGHM2hHIsNRyw9EFoSolDM+yC -# edkz69787s8nIp55icLfDoKw5hak5G6MWF6d71tcNzV9+v9RQKMa6Uwfyquredd5 -# sqXWCXv++hek4A15WybIc6ufT0ilazKYZvDvoaswgjP0SeLW7mvmcw0FELzF1/uW -# aXElLHOXIlieKF2i/YzQ6U50K9dbhnMaDcJSsG0hXLRTy/LQbsOD0hw7FuK0nmzo -# tSx/5fo9g7fCzoFjk3tDEwIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFPo5W8o980kM -# fRVQba6T34HwelLaMB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8G -# A1UdHwRYMFYwVKBSoFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMv -# Y3JsL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBs -# BggrBgEFBQcBAQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0 -# LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUy -# MDIwMTAoMSkuY3J0MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUH -# AwgwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4ICAQCWfcJm2rwXtPi7 -# 4km6PKAkni9+BWotq+QtDGgeT5F3ro7PsIUNKRkUytuGqI8thL3Jcrb03x6DOppY -# JEA+pb6o2qPjFddO1TLqvSXrYm+OgCLL+7+3FmRmfkRu8rHvprab0O19wDbukgO8 -# I5Oi1RegMJl8t5k/UtE0Wb3zAlOHnCjLGSzP/Do3ptwhXokk02IvD7SZEBbPboGb -# tw4LCHsT2pFakpGOBh+ISUMXBf835CuVNfddwxmyGvNSzyEyEk5h1Vh7tpwP7z7r -# J+HsiP4sdqBjj6Avopuf4rxUAfrEbV6aj8twFs7WVHNiIgrHNna/55kyrAG9Yt19 -# CPvkUwxYK0uZvPl2WC39nfc0jOTjivC7s/IUozE4tfy3JNkyQ1cNtvZftiX3j5Dt -# +eLOeuGDjvhJvYMIEkpkV68XLNH7+ZBfYa+PmfRYaoFFHCJKEoRSZ3PbDJPBiEhZ -# 9yuxMddoMMQ19Tkyftot6Ez0XhSmwjYBq39DvBFWhlyDGBhrU3GteDWiVd9YGSB2 -# WnxuFMy5fbAK6o8PWz8QRMiptXHK3HDBr2wWWEcrrgcTuHZIJTqepNoYlx9VRFvj -# /vCXaAFcmkW1nk7VE+owaXr5RJjryDq9ubkyDq1mdrF/geaRALXcNZbfNXIkhXzX -# A6a8CiamcQW/DgmLJpiVQNriZYCHIDCCB3EwggVZoAMCAQICEzMAAAAVxedrngKb -# SZkAAAAAABUwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQI -# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv -# ZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmlj -# YXRlIEF1dGhvcml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIy -# NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT -# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE -# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXI -# yjVX9gF/bErg4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjo -# YH1qUoNEt6aORmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1y -# aa8dq6z2Nr41JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v -# 3byNpOORj7I5LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pG -# ve2krnopN6zL64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viS -# kR4dPf0gz3N9QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYr -# bqgSUei/BQOj0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlM -# jgK8QmguEOqEUUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSL -# W6CmgyFdXzB0kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AF -# emzFER1y7435UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIu -# rQIDAQABo4IB3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIE -# FgQUKqdS/mTEmr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWn -# G1M1GelyMFwGA1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEW -# M2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5 -# Lmh0bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBi -# AEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV -# 9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3Js -# Lm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAx -# MC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2 -# LTIzLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv -# 6lwUtj5OR2R4sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZn -# OlNN3Zi6th542DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1 -# bSNU5HhTdSRXud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4 -# rPf5KYnDvBewVIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU -# 6ZGyqVvfSaN0DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDF -# NLB62FD+CljdQDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/ -# HltEAY5aGZFrDZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdU -# CbFpAUR+fKFhbHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKi -# excdFYmNcP7ntdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTm -# dHRbatGePu1+oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZq -# ELQdVTNYs6FwZvKhggNNMIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMx -# EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT -# FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJp -# Y2EgT3BlcmF0aW9uczEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOkRDMDAtMDVF -# MC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMK -# AQEwBwYFKw4DAhoDFQCMJG4vg0juMOVn2BuKACUvP80FuqCBgzCBgKR+MHwxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv -# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymm5TAi -# GA8yMDI1MDEwOTAxMzc0MVoYDzIwMjUwMTEwMDEzNzQxWjB0MDoGCisGAQQBhFkK -# BAExLDAqMAoCBQDrKablAgEAMAcCAQACAgkfMAcCAQACAhJBMAoCBQDrKvhlAgEA -# MDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAI -# AgEAAgMBhqAwDQYJKoZIhvcNAQELBQADggEBAEpuvqYAWimE3aR+q2KcX9oSBl2V -# bkx7buLha6IStST4ztD6i7OuKIKiHh2ybmm70omfWKv/4kYvcgElPrlgNhgzwyFX -# V7uRX1SkPMbH9B+5oj9ZWOKE81lgSX0UNsgWlL92N7nGQN3G+J/4ZP3sjZdcdC6j -# 7nqd82IucomvfqPBKX5UFFDRNzuxSI2vme97A73cqQ6aHzVw9h1pChOmLz62Cud0 -# nA3xAB6CZIi+Qa2hx2J1IoroWK7dSDndNOjk5ZCMQAhcmdbr4uqkC1ySFtNJbQfp -# 1GGE1vFiI3sNIKbe84XCu894GtoRsrGZuN1mOWMN3cTuM+1ec0q6je5corAxggQN -# MIIECQIBATCBkzB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ -# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u -# MSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAehQ -# sIDPK3KZTQABAAAB6DANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0G -# CyqGSIb3DQEJEAEEMC8GCSqGSIb3DQEJBDEiBCAILtosql71fHehdJ8vo1y001tv -# syu5TD4cE1bbMhxTNzCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EICrS2sTV -# AoQggkHR59pNqige0xfJT2J3U8W1Sc8H+OsdMIGYMIGApH4wfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTACEzMAAAHoULCAzytymU0AAQAAAegwIgQgQV0pW5tg -# GS+yeJmO/KxxySGk1pYFhPEuT2ZdSh5D128wDQYJKoZIhvcNAQELBQAEggIAi214 -# 4mHD5yfJQ1TQPbe1OlN4iZ4kaOx5DUDPOFcF9boh9UIQZpDH4bVC+qIrOy20kzHv -# 941CDDmWGkhWxfhsNhkta2/CyzrgLDiu57hBc8lr7nee1/YnlRqCDLvoFDieqimb -# Eb4HDcRBt20U1XbpoP2vkFthAybmcwNCN/zmCnpDhs8E5GGA3c8B5Iz1EOUHOIEC -# C962umG8jWA3DgmASO13GSdUzD2FbYkOJOWa0mqTNvOEhsWnY6frnu07n5FMQ3nq -# BLvLE+DDhUA0TKk5ip6mypXd4fmkoxgRwE269RkryV2QFjAs+McTwvNl8U5xhCEb -# UtFDCkVDsy8ubsdtPhGECuw6c26FEuN48KEmW6rjCfGQ1Ura94eFrcKHPmtkZf9D -# EDjC+qauW454nwvC+U+mwy/Io1gpap9IdWesaRwzxdkGbRMIOfNGwhgDx1oYBIft -# NNWxCmvyhIGGZUorj2CVValuR1J43Ch/RLYFHpctrm8k9abCpRoOfitoCq7Dk0q0 -# tuKFnwuEavpDKlmuIegbO4L9k7+SokZVPfVIpeIUaHgHDU43FFHDFmoAn7haRk5s -# pB/iCrX8tSckeTx3L3Zi8hoggRsQ93fMLzkxfQSErmJl1QZX4iBunjwJxXBwj/cS -# Ab40D80EH/VrL4Qffpq9ee4Pz4vLvW3P0bGFmko= -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Get-AzFunctionAppSetting.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Get-AzFunctionAppSetting.ps1 deleted file mode 100644 index 66351cc5b2d9..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Get-AzFunctionAppSetting.ps1 +++ /dev/null @@ -1,323 +0,0 @@ -function Get-AzFunctionAppSetting { - [OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Description('Gets app settings for a function app.')] - [CmdletBinding(DefaultParameterSetName='ByName', SupportsShouldProcess=$true, ConfirmImpact='Medium')] - param( - [Parameter(ParameterSetName='ByName', Mandatory=$true, HelpMessage='Name of the function app.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [ValidateNotNullOrEmpty()] - [System.String] - ${Name}, - - [Parameter(ParameterSetName='ByName', Mandatory=$true, HelpMessage='Name of the resource group to which the resource belongs.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [ValidateNotNullOrEmpty()] - [System.String] - ${ResourceGroupName}, - - [Parameter(ParameterSetName='ByName', HelpMessage='The Azure subscription ID.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [ValidateNotNullOrEmpty()] - [System.String[]] - ${SubscriptionId}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory=$true, ValueFromPipeline=$true)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - [ValidateNotNull()] - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The credentials, account, tenant, and subscription used for communication with Azure. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} - ) - - process { - - RegisterFunctionsTabCompleters - - if ($PsCmdlet.ParameterSetName -eq "ByObjectInput") - { - if ($PSBoundParameters.ContainsKey("InputObject")) - { - $PSBoundParameters.Remove("InputObject") | Out-Null - } - - $Name = $InputObject.Name - - $PSBoundParameters.Add("Name", $Name) | Out-Null - $PSBoundParameters.Add("ResourceGroupName", $InputObject.ResourceGroupName) | Out-Null - $PSBoundParameters.Add("SubscriptionId", $InputObject.SubscriptionId) | Out-Null - } - - if ($PsCmdlet.ShouldProcess($Name, "Get function app settings")) - { - $settings = Az.Functions.internal\Get-AzWebAppApplicationSetting @PSBoundParameters - if ($settings) - { - ConvertWebAppApplicationSettingToHashtable -ApplicationSetting $settings -ShowAllAppSettings - } - } - } -} - -# SIG # Begin signature block -# MIIoOQYJKoZIhvcNAQcCoIIoKjCCKCYCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBUOoWvP0qcTH49 -# YgrYSD9EYfPI37Jv3/YdIJlDCeDG8aCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIHD+ -# yk54kPh8m321th73xjz5WzctGIVVOcTsWgeR6TpLMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAVchd5zCvFcmJWSfm43kadPPaxqozaGp03d7C -# G6auaRMwB6eFj6e9izj1otAXEKLQ8oQNk3fFGMfztyefpq/qiSPBokjU7GyaK+HW -# rH38TvpWLJfB0d/wKojwdJJxpBZumQ2+cuta6meFVl5Qz3aoFpQ86pkhCAQc1KdK -# +I1tyqCywTAKANCy23mo/kITx6c0V++bkFgsB53eHrletZwvH5uhW9ZshlP//edl -# RnyTcJNSJ/VjSRCBcaERq5n77K5F77t89phwrb/XQYs15obbGtlw39ugvYyzkpra -# nWBYXm6CpMQXulYWIaBCE9Lwsi4SiCivhGR4v7dn4yecm6dUT6GCF5QwgheQBgor -# BgEEAYI3AwMBMYIXgDCCF3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFSBgsqhkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCAiPfOm5opaSpbyHKrm4WEB0atSN2c5U9g0 -# PCj8YHjIWwIGZ1ruJOdqGBMyMDI1MDEwOTA2Mzc1MS4zMDlaMASAAgH0oIHRpIHO -# MIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQL -# ExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxk -# IFRTUyBFU046N0YwMC0wNUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1l -# LVN0YW1wIFNlcnZpY2WgghHqMIIHIDCCBQigAwIBAgITMwAAAfAqfB1ZO+YfrQAB -# AAAB8DANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDAeFw0yMzEyMDYxODQ1NTFaFw0yNTAzMDUxODQ1NTFaMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046N0YwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Uw -# ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC1Hi1Tozh3O0czE8xfRnry -# mlJNCaGWommPy0eINf+4EJr7rf8tSzlgE8Il4Zj48T5fTTOAh6nITRf2lK7+upcn -# Z/xg0AKoDYpBQOWrL9ObFShylIHfr/DQ4PsRX8GRtInuJsMkwSg63bfB4Q2UikME -# P/CtZHi8xW5XtAKp95cs3mvUCMvIAA83Jr/UyADACJXVU4maYisczUz7J111eD1K -# rG9mQ+ITgnRR/X2xTDMCz+io8ZZFHGwEZg+c3vmPp87m4OqOKWyhcqMUupPveO/g -# QC9Rv4szLNGDaoePeK6IU0JqcGjXqxbcEoS/s1hCgPd7Ux6YWeWrUXaxbb+JosgO -# azUgUGs1aqpnLjz0YKfUqn8i5TbmR1dqElR4QA+OZfeVhpTonrM4sE/MlJ1JLpR2 -# FwAIHUeMfotXNQiytYfRBUOJHFeJYEflZgVk0Xx/4kZBdzgFQPOWfVd2NozXlC2e -# pGtUjaluA2osOvQHZzGOoKTvWUPX99MssGObO0xJHd0DygP/JAVp+bRGJqa2u7Aq -# Lm2+tAT26yI5veccDmNZsg3vDh1HcpCJa9QpRW/MD3a+AF2ygV1sRnGVUVG3VODX -# 3BhGT8TMU/GiUy3h7ClXOxmZ+weCuIOzCkTDbK5OlAS8qSPpgp+XGlOLEPaM31Mg -# f6YTppAaeP0ophx345ohtwIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFNCCsqdXRy/M -# mjZGVTAvx7YFWpslMB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8G -# A1UdHwRYMFYwVKBSoFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMv -# Y3JsL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBs -# BggrBgEFBQcBAQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0 -# LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUy -# MDIwMTAoMSkuY3J0MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUH -# AwgwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4ICAQA4IvSbnr4jEPgo -# 5W4xj3/+0dCGwsz863QGZ2mB9Z4SwtGGLMvwfsRUs3NIlPD/LsWAxdVYHklAzwLT -# wQ5M+PRdy92DGftyEOGMHfut7Gq8L3RUcvrvr0AL/NNtfEpbAEkCFzseextY5s3h -# zj3rX2wvoBZm2ythwcLeZmMgHQCmjZp/20fHWJgrjPYjse6RDJtUTlvUsjr+878/ -# t+vrQEIqlmebCeEi+VQVxc7wF0LuMTw/gCWdcqHoqL52JotxKzY8jZSQ7ccNHhC4 -# eHGFRpaKeiSQ0GXtlbGIbP4kW1O3JzlKjfwG62NCSvfmM1iPD90XYiFm7/8mgR16 -# AmqefDsfjBCWwf3qheIMfgZzWqeEz8laFmM8DdkXjuOCQE/2L0TxhrjUtdMkATfX -# dZjYRlscBDyr8zGMlprFC7LcxqCXlhxhtd2CM+mpcTc8RB2D3Eor0UdoP36Q9r4X -# WCVV/2Kn0AXtvWxvIfyOFm5aLl0eEzkhfv/XmUlBeOCElS7jdddWpBlQjJuHHUHj -# OVGXlrJT7X4hicF1o23x5U+j7qPKBceryP2/1oxfmHc6uBXlXBKukV/QCZBVAiBM -# YJhnktakWHpo9uIeSnYT6Qx7wf2RauYHIER8SLRmblMzPOs+JHQzrvh7xStx310L -# Op+0DaOXs8xjZvhpn+WuZij5RmZijDCCB3EwggVZoAMCAQICEzMAAAAVxedrngKb -# SZkAAAAAABUwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQI -# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv -# ZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmlj -# YXRlIEF1dGhvcml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIy -# NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT -# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE -# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXI -# yjVX9gF/bErg4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjo -# YH1qUoNEt6aORmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1y -# aa8dq6z2Nr41JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v -# 3byNpOORj7I5LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pG -# ve2krnopN6zL64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viS -# kR4dPf0gz3N9QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYr -# bqgSUei/BQOj0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlM -# jgK8QmguEOqEUUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSL -# W6CmgyFdXzB0kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AF -# emzFER1y7435UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIu -# rQIDAQABo4IB3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIE -# FgQUKqdS/mTEmr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWn -# G1M1GelyMFwGA1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEW -# M2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5 -# Lmh0bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBi -# AEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV -# 9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3Js -# Lm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAx -# MC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2 -# LTIzLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv -# 6lwUtj5OR2R4sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZn -# OlNN3Zi6th542DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1 -# bSNU5HhTdSRXud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4 -# rPf5KYnDvBewVIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU -# 6ZGyqVvfSaN0DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDF -# NLB62FD+CljdQDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/ -# HltEAY5aGZFrDZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdU -# CbFpAUR+fKFhbHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKi -# excdFYmNcP7ntdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTm -# dHRbatGePu1+oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZq -# ELQdVTNYs6FwZvKhggNNMIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMx -# EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT -# FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJp -# Y2EgT3BlcmF0aW9uczEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjdGMDAtMDVF -# MC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMK -# AQEwBwYFKw4DAhoDFQDCKAZKKv5lsdC2yoMGKYiQy79p/6CBgzCBgKR+MHwxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv -# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymsTjAi -# GA8yMDI1MDEwOTAyMDA0NloYDzIwMjUwMTEwMDIwMDQ2WjB0MDoGCisGAQQBhFkK -# BAExLDAqMAoCBQDrKaxOAgEAMAcCAQACAhAbMAcCAQACAhJlMAoCBQDrKv3OAgEA -# MDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAI -# AgEAAgMBhqAwDQYJKoZIhvcNAQELBQADggEBAC1cdMDEbkRcY2RQqIzvaE4HZKAj -# EmimvnsiEBkklaFm6rlyZt9DvGP6qPI2o9uoDgj5p1lqIdL6mL4/N42GeRRMKldn -# SWngymbhkCX8RyiExho1KZ5jhz57pWFxjKAotc0FnVhoE6DCsEUO9uOmhu7Ct9Dh -# 3mxo0TTG0Y3PWRNXSkhT1ZZ+X4g6PgHyalO5jpg2mBXVsyN3ECE7yjGGt6/9OHTX -# y4d0YqKqcPmIzxTyrZ5gsWJKwA+N2EAf7ePa2e4WVF4Wo3aLlCqa1205pOti3tP3 -# R7g5EplvMU96xHXXaJCpDtSmz/cEC40EGtPwjuD5tCnadCT0X4FunUDS/FUxggQN -# MIIECQIBATCBkzB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ -# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u -# MSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAfAq -# fB1ZO+YfrQABAAAB8DANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0G -# CyqGSIb3DQEJEAEEMC8GCSqGSIb3DQEJBDEiBCCrykWNWNbSP3qvRyZpLJU2a1tM -# qXCtoae34p4Ctk+WfzCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIFwBmqOl -# cv3kU7mAB5sWR74QFAiS6mb+CM6asnFAZUuLMIGYMIGApH4wfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTACEzMAAAHwKnwdWTvmH60AAQAAAfAwIgQgNav9MbTl -# eN9i36swrfpwTySv7j07igK/LBfrwEBJl3cwDQYJKoZIhvcNAQELBQAEggIAamWb -# fEXaRx6ihA0qi9pLJetA1z5x5x0CBmrQK/JWx0ex5Zb30u9/8IlDwr6RpmlBr5/d -# UdsNzoHAXQ6c1VW9fLRc4cYfXaOmF4WAy9WxVDpxE2f1Fg6y/jAMABAnnbaVLCAN -# DVuzajiDx3vHn5EdT/5Aj+XQUci1+xjx3BndfZC6FPXvnB5rVpgCw56dpnL0zxIf -# Lma2kNp04TRxj/bduDjWpvkZ4a5XV8y1jePGI6NkjB6qK+VAinJI8dVjWapVcYF+ -# tLRA+H+Vd2aXQjvjTSIzZJgyMWH56RSk8ijoTVRG477c1t/ojw6IfJSkb3kkW4JB -# pXte/DZmI3+ETD+A2yzDjcSsPpulUirwCKkvC+Z5CzEtFdcg44GHwZPbwlsmKeat -# VvQ/0uB/JRigIQG30nR9zzNCw012BQeYWsTSoG8Ok9HHhE8cFKUnO7K2mXm5TDy5 -# YNgWgqh7MXMgWgyWy4oAgfRrpxr1MR162uK/TppSjtdyLJBPtO9iCBb0+XFFOW6a -# N+ZYZ92VeRvuZYObSY/YQDbEuBsQsSru9sztqKNXCZQUaAQqx5lk7ygRKe3RB7S3 -# faCSA5adDVe+lsLiBNPwqEc8papG0wEZx0WqvBlRpJihbKSVSSUfdzCTrUFB8+ll -# LATaHM0kQ3UUVJctYX0Y+7oTvaGVKHg52lLhYYg= -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/HelperFunctions.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/HelperFunctions.ps1 deleted file mode 100644 index b8d18eb454ee..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/HelperFunctions.ps1 +++ /dev/null @@ -1,2606 +0,0 @@ -# Load Az.Functions module constants -$constants = @{} -$constants["AllowedStorageTypes"] = @('Standard_GRS', 'Standard_RAGRS', 'Standard_LRS', 'Standard_ZRS', 'Premium_LRS', 'Standard_GZRS') -$constants["RequiredStorageEndpoints"] = @('PrimaryEndpointFile', 'PrimaryEndpointQueue', 'PrimaryEndpointTable') -$constants["DefaultFunctionsVersion"] = '4' -$constants["RuntimeToFormattedName"] = @{ - 'dotnet' = 'DotNet' - 'dotnet-isolated' = 'DotNet-Isolated' - 'custom' = 'Custom' - 'node' = 'Node' - 'python' = 'Python' - 'java' = 'Java' - 'powershell' = 'PowerShell' -} -$constants["RuntimeToDefaultOSType"] = @{ - 'DotNet'= 'Windows' - 'DotNet-Isolated' = 'Windows' - 'Custom' = 'Windows' - 'Node' = 'Windows' - 'Java' = 'Windows' - 'PowerShell' = 'Windows' - 'Python' = 'Linux' -} -$constants["ReservedFunctionAppSettingNames"] = @( - 'FUNCTIONS_WORKER_RUNTIME' - 'DOCKER_CUSTOM_IMAGE_NAME' - 'FUNCTION_APP_EDIT_MODE' - 'WEBSITES_ENABLE_APP_SERVICE_STORAGE' - 'DOCKER_REGISTRY_SERVER_URL' - 'DOCKER_REGISTRY_SERVER_USERNAME' - 'DOCKER_REGISTRY_SERVER_PASSWORD' - 'WEBSITES_ENABLE_APP_SERVICE_STORAGE' - 'WEBSITE_NODE_DEFAULT_VERSION' - 'AzureWebJobsStorage' - 'AzureWebJobsDashboard' - 'FUNCTIONS_EXTENSION_VERSION' - 'WEBSITE_CONTENTAZUREFILECONNECTIONSTRING' - 'WEBSITE_CONTENTSHARE' - 'APPINSIGHTS_INSTRUMENTATIONKEY' -) -$constants["SetDefaultValueParameterWarningMessage"] = "This default value is subject to change over time. Please set this value explicitly to ensure the behavior is not accidentally impacted by future changes." -$constants["DEBUG_PREFIX"] = '[Stacks API] - ' -$constants["DefaultCentauriImage"] = 'mcr.microsoft.com/azure-functions/dotnet8-quickstart-demo:1.0' - -foreach ($variableName in $constants.Keys) -{ - if (-not (Get-Variable $variableName -ErrorAction SilentlyContinue)) - { - Set-Variable $variableName -value $constants[$variableName] -option ReadOnly - } -} - -# These are used to hold the types for the tab completers -$RuntimeToVersionLinux = @{} -$RuntimeToVersionWindows = @{} -$AllRuntimeVersions = @{} -$global:StacksAndTabCompletersInitialized = $false -$AllFunctionsExtensionVersions = New-Object System.Collections.Generic.List[[String]] - -function GetConnectionString -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $StorageAccountName, - - $SubscriptionId, - $HttpPipelineAppend, - $HttpPipelinePrepend - ) - - if ($PSBoundParameters.ContainsKey("StorageAccountName")) - { - $PSBoundParameters.Remove("StorageAccountName") | Out-Null - } - - $storageAccountInfo = GetStorageAccount -Name $StorageAccountName @PSBoundParameters - if (-not $storageAccountInfo) - { - $errorMessage = "Storage account '$StorageAccountName' does not exist." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "StorageAccountNotFound" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - if ($storageAccountInfo.ProvisioningState -ne "Succeeded") - { - $errorMessage = "Storage account '$StorageAccountName' is not ready. Please run 'Get-AzStorageAccount' and ensure that the ProvisioningState is 'Succeeded'" - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "StorageAccountNotFound" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - $skuName = $storageAccountInfo.SkuName - if (-not ($AllowedStorageTypes -contains $skuName)) - { - $storageOptions = $AllowedStorageTypes -join ", " - $errorMessage = "Storage type '$skuName' is not allowed'. Currently supported storage options: $storageOptions" - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "StorageTypeNotSupported" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - foreach ($endpoint in $RequiredStorageEndpoints) - { - if ([string]::IsNullOrEmpty($storageAccountInfo.$endpoint)) - { - $errorMessage = "Storage account '$StorageAccountName' has no '$endpoint' endpoint. It must have table, queue, and blob endpoints all enabled." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "StorageAccountRequiredEndpointNotAvailable" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - } - - $resourceGroupName = ($storageAccountInfo.Id -split "/")[4] - $keys = Az.Functions.internal\Get-AzStorageAccountKey -ResourceGroupName $resourceGroupName -Name $storageAccountInfo.Name @PSBoundParameters -ErrorAction SilentlyContinue - - if (-not $keys) - { - $errorMessage = "Failed to get key for storage account '$StorageAccountName'." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "FailedToGetStorageAccountKey" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - if ([string]::IsNullOrEmpty($keys[0].Value)) - { - $errorMessage = "Storage account '$StorageAccountName' has no key value." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "StorageAccountHasNoKeyValue" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - $suffix = GetEndpointSuffix - $accountKey = $keys[0].Value - - $connectionString = "DefaultEndpointsProtocol=https;AccountName=$StorageAccountName;AccountKey=$accountKey" + $suffix - - return $connectionString -} - -function GetEndpointSuffix -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param() - - $environmentName = (Get-AzContext).Environment.Name - - switch ($environmentName) - { - "AzureUSGovernment" { ';EndpointSuffix=core.usgovcloudapi.net' } - "AzureChinaCloud" { ';EndpointSuffix=core.chinacloudapi.cn' } - "AzureCloud" { ';EndpointSuffix=core.windows.net' } - default { '' } - } -} - -function NewAppSetting -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Name, - - [Parameter(Mandatory=$false)] - [System.String] - $Value - ) - - $setting = New-Object -TypeName Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.NameValuePair - $setting.Name = $Name - $setting.Value = $Value - - return $setting -} - -function GetServicePlan -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Name, - - $SubscriptionId, - $HttpPipelineAppend, - $HttpPipelinePrepend - ) - - if ($PSBoundParameters.ContainsKey("Name")) - { - $PSBoundParameters.Remove("Name") | Out-Null - } - - $plans = @(Az.Functions\Get-AzFunctionAppPlan @PSBoundParameters) - - foreach ($plan in $plans) - { - if ($plan.Name -eq $Name) - { - return $plan - } - } - - # The plan name was not found, error out - $errorMessage = "Service plan '$Name' does not exist." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "ServicePlanDoesNotExist" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception -} - -function GetStorageAccount -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Name, - - $SubscriptionId, - $HttpPipelineAppend, - $HttpPipelinePrepend - ) - - if ($PSBoundParameters.ContainsKey("Name")) - { - $PSBoundParameters.Remove("Name") | Out-Null - } - - $storageAccounts = @(Az.Functions.internal\Get-AzStorageAccount @PSBoundParameters -ErrorAction SilentlyContinue) - foreach ($account in $storageAccounts) - { - if ($account.Name -eq $Name) - { - return $account - } - } -} - -function GetApplicationInsightsProject -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Name, - - $SubscriptionId, - $HttpPipelineAppend, - $HttpPipelinePrepend - ) - - if ($PSBoundParameters.ContainsKey("Name")) - { - $PSBoundParameters.Remove("Name") | Out-Null - } - - $projects = @(Az.Functions.internal\Get-AzAppInsights @PSBoundParameters) - - foreach ($project in $projects) - { - if ($project.Name -eq $Name) - { - return $project - } - } -} - -function CreateApplicationInsightsProject -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $ResourceName, - - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $ResourceGroupName, - - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Location, - - $SubscriptionId, - $HttpPipelineAppend, - $HttpPipelinePrepend - ) - - $paramsToRemove = @( - "ResourceGroupName", - "ResourceName", - "Location" - ) - foreach ($paramName in $paramsToRemove) - { - if ($PSBoundParameters.ContainsKey($paramName)) - { - $PSBoundParameters.Remove($paramName) | Out-Null - } - } - - # Create a new ApplicationInsights - $maxNumberOfTries = 3 - $tries = 1 - - while ($true) - { - try - { - $newAppInsightsProject = Az.Functions.internal\New-AzAppInsights -ResourceGroupName $ResourceGroupName ` - -ResourceName $ResourceName ` - -Location $Location ` - -Kind web ` - -RequestSource "AzurePowerShell" ` - -ErrorAction Stop ` - @PSBoundParameters - if ($newAppInsightsProject) - { - return $newAppInsightsProject - } - } - catch - { - # Ignore the failure and continue - } - - if ($tries -ge $maxNumberOfTries) - { - break - } - - # Wait for 2^(tries-1) seconds between retries. In this case, it would be 1, 2, and 4 seconds, respectively. - $waitInSeconds = [Math]::Pow(2, $tries - 1) - Start-Sleep -Seconds $waitInSeconds - - $tries++ - } -} - -function ConvertWebAppApplicationSettingToHashtable -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [Object] - $ApplicationSetting, - - [System.Management.Automation.SwitchParameter] - $ShowAllAppSettings, - - [System.Management.Automation.SwitchParameter] - $RedactAppSettings, - - [System.Management.Automation.SwitchParameter] - $ShowOnlySpecificAppSettings, - - [Parameter(Mandatory=$false)] - [ValidateNotNullOrEmpty()] - [String[]] - $AppSettingsToShow - ) - - if ($RedactAppSettings.IsPresent) - { - Write-Warning "App settings have been redacted. Use the Get-AzFunctionAppSetting cmdlet to view them." - } - - # Create a key value pair to hold the function app settings - $applicationSettings = @{} - - foreach ($keyName in $ApplicationSetting.Property.Keys) - { - if($ShowAllAppSettings.IsPresent) - { - $applicationSettings[$keyName] = $ApplicationSetting.Property[$keyName] - } - elseif ($RedactAppSettings.IsPresent) - { - # When RedactAppSettings is present, all app settings are set to null - $applicationSettings[$keyName] = $null - } - elseif($ShowOnlySpecificAppSettings.IsPresent) - { - # When ShowOnlySpecificAppSettings is present, only show the app settings in this list AppSettingsToShow - if ($AppSettingsToShow.Contains($keyName)) - { - $applicationSettings[$keyName] = $ApplicationSetting.Property[$keyName] - } - } - } - - return $applicationSettings -} - -function GetRuntime -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [Object] - $Settings, - - [Parameter(Mandatory=$false)] - [String] - $AppKind - ) - - $appSettings = ConvertWebAppApplicationSettingToHashtable -ApplicationSetting $Settings -ShowAllAppSettings - $runtimeName = $appSettings["FUNCTIONS_WORKER_RUNTIME"] - - $runtime = "" - if (($null -ne $runtimeName) -and ($RuntimeToFormattedName.ContainsKey($runtimeName))) - { - $runtime = $RuntimeToFormattedName[$runtimeName] - } - elseif ($appSettings.ContainsKey("DOCKER_CUSTOM_IMAGE_NAME")) - { - if ($AppKind -match "azurecontainerapps") - { - $runtime = "Container App" - } - else - { - $runtime = "Custom Image" - } - } - - return $runtime -} - - -function AddFunctionAppSettings -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [Object] - $App, - - $SubscriptionId, - $HttpPipelineAppend, - $HttpPipelinePrepend - ) - - if ($PSBoundParameters.ContainsKey("App")) - { - $PSBoundParameters.Remove("App") | Out-Null - } - - if ($App.kind.ToString() -match "azurecontainerapps") - { - if ($App.ManagedEnvironmentId) - { - $App.AppServicePlan = ($App.ManagedEnvironmentId -split "/")[-1] - } - } - else - { - $App.AppServicePlan = ($App.ServerFarmId -split "/")[-1] - } - - $App.OSType = if ($App.kind.ToString() -match "linux"){ "Linux" } else { "Windows" } - - if ($App.Type -eq "Microsoft.Web/sites/slots") - { - return $App - } - - $currentSubscription = $null - $resetDefaultSubscription = $false - - try - { - $settings = Az.Functions.internal\Get-AzWebAppApplicationSetting -Name $App.Name ` - -ResourceGroupName $App.ResourceGroup ` - -ErrorAction SilentlyContinue ` - @PSBoundParameters - if ($null -eq $settings) - { - Write-Warning -Message "Failed to retrieve function app settings. 1st attempt" - Write-Warning -Message "Setting session context to subscription id '$($App.SubscriptionId)'" - - $resetDefaultSubscription = $true - $currentSubscription = (Get-AzContext).Subscription.Id - $null = Select-AzSubscription $App.SubscriptionId - - $settings = Az.Functions.internal\Get-AzWebAppApplicationSetting -Name $App.Name ` - -ResourceGroupName $App.ResourceGroup ` - -ErrorAction SilentlyContinue ` - @PSBoundParameters - if ($null -eq $settings) - { - # We are unable to get the app settings, return the app - Write-Warning -Message "Failed to retrieve function app settings. 2nd attempt." - return $App - } - } - } - finally - { - if ($resetDefaultSubscription) - { - Write-Warning -Message "Resetting session context to subscription id '$currentSubscription'" - $null = Select-AzSubscription $currentSubscription - } - } - - # Add application settings and runtime - $App.ApplicationSettings = ConvertWebAppApplicationSettingToHashtable -ApplicationSetting $settings -RedactAppSettings - $App.Runtime = GetRuntime -Settings $settings -AppKind $App.kind - - # Get the app site config - $config = GetAzWebAppConfig -Name $App.Name -ResourceGroupName $App.ResourceGroup @PSBoundParameters - # Add all site config properties as a hash table - $SiteConfig = @{} - foreach ($property in $config.PSObject.Properties) - { - if ($property.Name) - { - $SiteConfig.Add($property.Name, $property.Value) - } - } - - $App.SiteConfig = $SiteConfig - - return $App -} - -function GetFunctionApps -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [AllowEmptyCollection()] - [Object[]] - $Apps, - - [System.String] - $Location, - - $SubscriptionId, - $HttpPipelineAppend, - $HttpPipelinePrepend - ) - - $paramsToRemove = @( - "Apps", - "Location" - ) - foreach ($paramName in $paramsToRemove) - { - if ($PSBoundParameters.ContainsKey($paramName)) - { - $PSBoundParameters.Remove($paramName) | Out-Null - } - } - - if ($Apps.Count -eq 0) - { - return - } - - $activityName = "Getting function apps" - - for ($index = 0; $index -lt $Apps.Count; $index++) - { - $app = $Apps[$index] - - $percentageCompleted = [int]((100 * ($index + 1)) / $Apps.Count) - $status = "Complete: $($index + 1)/$($Apps.Count) function apps processed." - Write-Progress -Activity "Getting function apps" -Status $status -PercentComplete $percentageCompleted - - if ($app.kind -match "functionapp") - { - if ($Location) - { - if ($app.Location -eq $Location) - { - $app = AddFunctionAppSettings -App $app @PSBoundParameters - $app - } - } - else - { - $app = AddFunctionAppSettings -App $app @PSBoundParameters - $app - } - } - } - - Write-Progress -Activity $activityName -Status "Completed" -Completed -} - -function AddFunctionAppPlanWorkerType -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - $AppPlan, - - $SubscriptionId, - $HttpPipelineAppend, - $HttpPipelinePrepend - ) - - if ($PSBoundParameters.ContainsKey("AppPlan")) - { - $PSBoundParameters.Remove("AppPlan") | Out-Null - } - - # The GetList api for service plan that does not set the Reserved property, which is needed to figure out if the OSType is Linux. - # TODO: Remove this code once https://msazure.visualstudio.com/Antares/_workitems/edit/5623226 is fixed. - if ($null -eq $AppPlan.Reserved) - { - # Get the service plan by name does set the Reserved property - $planObject = Az.Functions.internal\Get-AzFunctionAppPlan -Name $AppPlan.Name ` - -ResourceGroupName $AppPlan.ResourceGroup ` - -ErrorAction SilentlyContinue ` - @PSBoundParameters - $AppPlan = $planObject - } - - $AppPlan.WorkerType = if ($AppPlan.Reserved){ "Linux" } else { "Windows" } - - return $AppPlan -} - -function GetFunctionAppPlans -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [AllowEmptyCollection()] - [Object[]] - $Plans, - - [System.String] - $Location, - - $SubscriptionId, - $HttpPipelineAppend, - $HttpPipelinePrepend - ) - - $paramsToRemove = @( - "Plans", - "Location" - ) - foreach ($paramName in $paramsToRemove) - { - if ($PSBoundParameters.ContainsKey($paramName)) - { - $PSBoundParameters.Remove($paramName) | Out-Null - } - } - - if ($Plans.Count -eq 0) - { - return - } - - $activityName = "Getting function app plans" - - for ($index = 0; $index -lt $Plans.Count; $index++) - { - $plan = $Plans[$index] - - $percentageCompleted = [int]((100 * ($index + 1)) / $Plans.Count) - $status = "Complete: $($index + 1)/$($Plans.Count) function apps plans processed." - Write-Progress -Activity $activityName -Status $status -PercentComplete $percentageCompleted - - try { - if ($Location) - { - if ($plan.Location -eq $Location) - { - $plan = AddFunctionAppPlanWorkerType -AppPlan $plan @PSBoundParameters - $plan - } - } - else - { - $plan = AddFunctionAppPlanWorkerType -AppPlan $plan @PSBoundParameters - $plan - } - } - catch { - continue; - } - } - - Write-Progress -Activity $activityName -Status "Completed" -Completed -} - -function ValidateFunctionName -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Name, - - $SubscriptionId, - $HttpPipelineAppend, - $HttpPipelinePrepend - ) - - $result = Az.Functions.internal\Test-AzNameAvailability -Type Site @PSBoundParameters - - if (-not $result.NameAvailable) - { - $errorMessage = "Function name '$Name' is not available. Please try a different name." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "FunctionAppNameIsNotAvailable" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } -} - -function NormalizeSku -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Sku - ) - if ($Sku -eq "SHARED") - { - return "D1" - } - return $Sku -} - -function CreateFunctionsIdentity -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - $InputObject - ) - - if (-not ($InputObject.Name -and $InputObject.ResourceGroupName -and $InputObject.SubscriptionId)) - { - $errorMessage = "Input object '$InputObject' is missing one or more of the following properties: Name, ResourceGroupName, SubscriptionId" - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "FailedToCreateFunctionsIdentity" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - $functionsIdentity = New-Object -TypeName Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.FunctionsIdentity - $functionsIdentity.Name = $InputObject.Name - $functionsIdentity.SubscriptionId = $InputObject.SubscriptionId - $functionsIdentity.ResourceGroupName = $InputObject.ResourceGroupName - - return $functionsIdentity -} - -function GetSkuName -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Sku - ) - - if (($Sku -eq "D1") -or ($Sku -eq "SHARED")) - { - return "SHARED" - } - elseif (($Sku -eq "B1") -or ($Sku -eq "B2") -or ($Sku -eq "B3") -or ($Sku -eq "BASIC")) - { - return "BASIC" - } - elseif (($Sku -eq "S1") -or ($Sku -eq "S2") -or ($Sku -eq "S3")) - { - return "STANDARD" - } - elseif (($Sku -eq "P1") -or ($Sku -eq "P2") -or ($Sku -eq "P3")) - { - return "PREMIUM" - } - elseif (($Sku -eq "P1V2") -or ($Sku -eq "P2V2") -or ($Sku -eq "P3V2")) - { - return "PREMIUMV2" - } - elseif (($Sku -eq "PC2") -or ($Sku -eq "PC3") -or ($Sku -eq "PC4")) - { - return "PremiumContainer" - } - elseif (($Sku -eq "EP1") -or ($Sku -eq "EP2") -or ($Sku -eq "EP3")) - { - return "ElasticPremium" - } - elseif (($Sku -eq "I1") -or ($Sku -eq "I2") -or ($Sku -eq "I3")) - { - return "Isolated" - } - - $guidanceUrl = 'https://learn.microsoft.com/azure/azure-functions/functions-premium-plan#plan-and-sku-settings' - - $errorMessage = "Invalid sku (pricing tier), please refer to '$guidanceUrl' for valid values." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "InvalidSkuPricingTier" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception -} - -function ThrowTerminatingError -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $ErrorId, - - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $ErrorMessage, - - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.Management.Automation.ErrorCategory] - $ErrorCategory, - - [Exception] - $Exception, - - [object] - $TargetObject - ) - - if (-not $Exception) - { - $Exception = New-Object -TypeName System.Exception -ArgumentList $ErrorMessage - } - - $errorRecord = New-Object -TypeName System.Management.Automation.ErrorRecord -ArgumentList ($Exception, $ErrorId, $ErrorCategory, $TargetObject) - #$PSCmdlet.ThrowTerminatingError($errorRecord) - throw $errorRecord -} - -function GetErrorMessage -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNull()] - $Response - ) - - if ($Response.Exception.ResponseBody) - { - try - { - $details = ConvertFrom-Json $Response.Exception.ResponseBody - if ($details.Message) - { - return $details.Message - } - } - catch - { - # Ignore the deserialization error - } - } -} - -function GetSupportedRuntimes -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $OSType - ) - - if ($OSType -eq "Linux") - { - return $RuntimeToVersionLinux - } - elseif ($OSType -eq "Windows") - { - return $RuntimeToVersionWindows - } - - throw "Unknown OS type '$OSType'" -} - -function ValidateFunctionsVersion -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $FunctionsVersion - ) - - # if ($SupportedFunctionsVersion -notcontains $FunctionsVersion) - if ($AllFunctionsExtensionVersions -notcontains $FunctionsVersion) - { - $currentlySupportedFunctionsVersions = $AllFunctionsExtensionVersions -join ' and ' - $errorMessage = "Functions version not supported. Currently supported version are: $($currentlySupportedFunctionsVersions)." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "FunctionsVersionNotSupported" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } -} - -function GetDefaultOSType -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Runtime - ) - - $defaultOSType = $RuntimeToDefaultOSType[$Runtime] - - if (-not $defaultOSType) - { - # The specified runtime did not match, error out - $runtimeOptions = FormatListToString -List @($RuntimeToDefaultOSType.Keys | Sort-Object) - $errorMessage = "Runtime '$Runtime' is not supported. Currently supported runtimes: " + $runtimeOptions + "." - ThrowRuntimeNotSupportedException -Message $errorMessage -ErrorId "RuntimeNotSupported" - } - - return $defaultOSType -} - -# Returns the stack definition for the given runtime name -# -function GetStackDefinitionForRuntime -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $FunctionsVersion, - - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Runtime, - - [Parameter(Mandatory=$false)] - [System.String] - $RuntimeVersion, - - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $OSType - ) - - $supportedRuntimes = GetSupportedRuntimes -OSType $OSType - $runtimeJsonDefinition = $null - - $functionsExtensionVersion = "~$FunctionsVersion" - if (-not $supportedRuntimes.ContainsKey($Runtime)) - { - $runtimeOptions = FormatListToString -List @($supportedRuntimes.Keys | Sort-Object) - $errorMessage = "Runtime '$Runtime' on '$OSType' is not supported. Currently supported runtimes: " + $runtimeOptions + "." - - ThrowRuntimeNotSupportedException -Message $errorMessage -ErrorId "RuntimeNotSupported" - } - - # If runtime version is not provided, iterate through the list to find the default version (if available) - if (($Runtime -ne 'Custom') -and (-not $RuntimeVersion)) - { - # Try to get the default version - $defaultVersionFound = $false - $RuntimeVersion = $supportedRuntimes[$Runtime] | - ForEach-Object { if ($_.IsDefault -and ($_.SupportedFunctionsExtensionVersions -contains $functionsExtensionVersion)) { $_.Version } } - - if ($RuntimeVersion) - { - $defaultVersionFound = $true - Write-Debug "$DEBUG_PREFIX Runtime '$Runtime' has a default version '$RuntimeVersion'" - } - else - { - Write-Debug "$DEBUG_PREFIX Runtime '$Runtime' does not have a default version. Finding the latest version." - - # Iterate through the list to find the latest non preview version - $latestVersion = $supportedRuntimes[$Runtime] | - Sort-Object -Property Version -Descending | - Where-Object { $_.SupportedFunctionsExtensionVersions -contains $functionsExtensionVersion -and (-not $_.IsPreview) } | - Select-Object -First 1 -ExpandProperty Version - - if ($latestVersion) - { - # Set the runtime version to the latest version - $RuntimeVersion = $latestVersion - } - } - - # Error out if we could not find a default or latest version for the given runtime (except for 'Custom'), functions extension version, and os type - if ((-not $latestVersion) -and (-not $defaultVersionFound) -and ($Runtime -ne 'Custom')) - { - $errorMessage = "Runtime '$Runtime' in Functions version '$FunctionsVersion' on '$OSType' is not supported." - ThrowRuntimeNotSupportedException -Message $errorMessage -ErrorId "RuntimeVersionNotSupported" - } - - Write-Warning "RuntimeVersion not specified. Setting default value to '$RuntimeVersion'. $SetDefaultValueParameterWarningMessage" - } - - if ($Runtime -eq 'Custom') - { - # Custom runtime does not have a version - $runtimeJsonDefinition = $supportedRuntimes[$Runtime] - } - else - { - $runtimeJsonDefinition = $supportedRuntimes[$Runtime] | Where-Object { $_.Version -eq $RuntimeVersion } - } - - if (-not $runtimeJsonDefinition) - { - $errorMessage = "Runtime '$Runtime' version '$RuntimeVersion' in Functions version '$FunctionsVersion' on '$OSType' is not supported." - - $supporedVersions = @($supportedRuntimes[$Runtime] | - Sort-Object -Property Version -Descending | - Where-Object { $_.SupportedFunctionsExtensionVersions -contains $functionsExtensionVersion } | - Select-Object -ExpandProperty Version) - - if ($supporedVersions.Count -gt 0) - { - $runtimeVersionOptions = $supporedVersions -join ", " - $errorMessage += " Currently supported runtime versions for '$($Runtime)' are: $runtimeVersionOptions." - } - - ThrowRuntimeNotSupportedException -Message $errorMessage -ErrorId "RuntimeVersionNotSupported" - } - - if ($runtimeJsonDefinition.IsPreview) - { - # Write a verbose message to the user if the current runtime is in Preview - Write-Verbose "Runtime '$Runtime' version '$RuntimeVersion' is in Preview for '$OSType'." -Verbose - } - - return $runtimeJsonDefinition -} - -function ThrowRuntimeNotSupportedException -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Message, - - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $ErrorId - ) - - $Message += [System.Environment]::NewLine - $Message += "For supported languages, please visit 'https://learn.microsoft.com/azure/azure-functions/functions-versions#languages'." - - $exception = [System.InvalidOperationException]::New($Message) - ThrowTerminatingError -ErrorId $ErrorId ` - -ErrorMessage $Message ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception -} - -function FormatListToString -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [System.String[]] - $List - ) - - if ($List.Count -eq 0) - { - return - } - - $result = "" - - if ($List.Count -eq 1) - { - $result = "'" + $List[0] + "'" - } - - else - { - for ($index = 0; $index -lt ($List.Count - 1); $index++) - { - $item = $List[$index] - $result += "'" + $item + "', " - } - - $result += "'" + $List[$List.Count - 1] + "'" - } - - return $result -} - -function ValidatePlanLocation -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Location, - - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - [ValidateSet("Dynamic", "ElasticPremium")] - $PlanType, - - [Parameter(Mandatory=$false)] - [System.Management.Automation.SwitchParameter] - $OSIsLinux, - - $SubscriptionId, - $HttpPipelineAppend, - $HttpPipelinePrepend - ) - - $paramsToRemove = @( - "PlanType", - "OSIsLinux", - "Location" - ) - foreach ($paramName in $paramsToRemove) - { - if ($PSBoundParameters.ContainsKey($paramName)) - { - $PSBoundParameters.Remove($paramName) | Out-Null - } - } - - $Location = $Location.Trim() - $locationContainsSpace = $Location.Contains(" ") - - $availableLocations = @(Az.Functions.internal\Get-AzFunctionAppAvailableLocation -Sku $PlanType ` - -LinuxWorkersEnabled:$OSIsLinux ` - @PSBoundParameters | ForEach-Object { $_.Name }) - - if (-not $locationContainsSpace) - { - $availableLocations = @($availableLocations | ForEach-Object { $_.Replace(" ", "") }) - } - - if (-not ($availableLocations -contains $Location)) - { - $errorMessage = "Location is invalid. Use 'Get-AzFunctionAppAvailableLocation' to see available locations for running function apps." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "LocationIsInvalid" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } -} - -function ValidatePremiumPlanLocation -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Location, - - [Parameter(Mandatory=$false)] - [System.Management.Automation.SwitchParameter] - $OSIsLinux, - - $SubscriptionId, - $HttpPipelineAppend, - $HttpPipelinePrepend - ) - - ValidatePlanLocation -PlanType ElasticPremium @PSBoundParameters -} - -function ValidateConsumptionPlanLocation -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Location, - - [Parameter(Mandatory=$false)] - [System.Management.Automation.SwitchParameter] - $OSIsLinux, - - $SubscriptionId, - $HttpPipelineAppend, - $HttpPipelinePrepend - ) - - ValidatePlanLocation -PlanType Dynamic @PSBoundParameters -} - -function GetParameterKeyValues -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [System.Collections.Generic.Dictionary[string, object]] - [ValidateNotNull()] - $PSBoundParametersDictionary, - - [Parameter(Mandatory=$true)] - [System.String[]] - [ValidateNotNull()] - $ParameterList - ) - - $params = @{} - if ($ParameterList.Count -gt 0) - { - foreach ($paramName in $ParameterList) - { - if ($PSBoundParametersDictionary.ContainsKey($paramName)) - { - $params[$paramName] = $PSBoundParametersDictionary[$paramName] - } - } - } - return $params -} - -function NewResourceTag -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [hashtable] - $Tag - ) - - $resourceTag = [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceTags]::new() - - foreach ($tagName in $Tag.Keys) - { - $resourceTag.Add($tagName, $Tag[$tagName]) - } - return $resourceTag -} - -function ParseDockerImage -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $DockerImageName - ) - - # Sample urls: - # myacr.azurecr.io/myimage:tag - # mcr.microsoft.com/azure-functions/powershell:2.0 - if ($DockerImageName.Contains("/")) - { - $index = $DockerImageName.LastIndexOf("/") - $value = $DockerImageName.Substring(0,$index) - if ($value.Contains(".") -or $value.Contains(":")) - { - return $value - } - } -} - -function GetFunctionAppServicePlanInfo -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $ServerFarmId, - - $SubscriptionId, - $HttpPipelineAppend, - $HttpPipelinePrepend - ) - - if ($PSBoundParameters.ContainsKey("ServerFarmId")) - { - $PSBoundParameters.Remove("ServerFarmId") | Out-Null - } - - $planInfo = $null - - if ($ServerFarmId.Contains("/")) - { - $parts = $ServerFarmId -split "/" - - $planName = $parts[-1] - $resourceGroupName = $parts[-5] - - $planInfo = Az.Functions\Get-AzFunctionAppPlan -Name $planName ` - -ResourceGroupName $resourceGroupName ` - @PSBoundParameters - } - - if (-not $planInfo) - { - $errorMessage = "Could not determine the current plan of the functionapp." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "CouldNotDetermineFunctionAppPlan" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - - } - - return $planInfo -} - -function ValidatePlanSwitchCompatibility -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - $CurrentServicePlan, - - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - $NewServicePlan - ) - - if (-not (($CurrentServicePlan.SkuTier -eq "ElasticPremium") -or ($CurrentServicePlan.SkuTier -eq "Dynamic") -or - ($NewServicePlan.SkuTier -eq "ElasticPremium") -or ($NewServicePlan.SkuTier -eq "Dynamic"))) - { - $errorMessage = "Currently the switch is only allowed between a Consumption or an Elastic Premium plan." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "InvalidFunctionAppPlanSwitch" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } -} - -function NewAppSettingObject -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [Hashtable] - $CurrentAppSetting - ) - - # Create StringDictionaryProperties (hash table) with the app settings - $properties = New-Object -TypeName Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StringDictionaryProperties - - foreach ($keyName in $currentAppSettings.Keys) - { - $properties.Add($keyName, $currentAppSettings[$keyName]) - } - - $appSettings = New-Object -TypeName Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StringDictionary - $appSettings.Property = $properties - - return $appSettings -} - -function ContainsReservedFunctionAppSettingName -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [String[]] - $AppSettingName - ) - - foreach ($name in $AppSettingName) - { - if ($ReservedFunctionAppSettingNames.Contains($name)) - { - return $true - } - } - - return $false -} - -function GetFunctionAppByName -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [String] - $Name, - - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [String] - $ResourceGroupName, - - $SubscriptionId, - $HttpPipelineAppend, - $HttpPipelinePrepend - ) - - $paramsToRemove = @( - "Name", - "ResourceGroupName" - ) - foreach ($paramName in $paramsToRemove) - { - if ($PSBoundParameters.ContainsKey($paramName)) - { - $PSBoundParameters.Remove($paramName) | Out-Null - } - } - - $existingFunctionApp = Az.Functions\Get-AzFunctionApp -ResourceGroupName $ResourceGroupName ` - -Name $Name ` - -ErrorAction SilentlyContinue ` - @PSBoundParameters - - if (-not $existingFunctionApp) - { - $errorMessage = "Function app name '$Name' in resource group name '$ResourceGroupName' does not exist." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "FunctionAppDoesNotExist" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - return $existingFunctionApp -} -function GetAzWebAppConfig -{ - - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [String] - $Name, - - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [String] - $ResourceGroupName, - - [Switch] - $ErrorIfResultIsNull, - - $SubscriptionId, - $HttpPipelineAppend, - $HttpPipelinePrepend - ) - - if ($PSBoundParameters.ContainsKey("ErrorIfResultIsNull")) - { - $PSBoundParameters.Remove("ErrorIfResultIsNull") | Out-Null - } - - $resetDefaultSubscription = $false - $webAppConfig = $null - $currentSubscription = $null - try - { - $webAppConfig = Az.Functions.internal\Get-AzWebAppConfiguration -ErrorAction SilentlyContinue ` - @PSBoundParameters - - if ($null -eq $webAppConfig) - { - Write-Warning -Message "Failed to retrieve function app site config. 1st attempt" - Write-Warning -Message "Setting session context to subscription id '$($SubscriptionId)'" - - $resetDefaultSubscription = $true - $currentSubscription = (Get-AzContext).Subscription.Id - $null = Select-AzSubscription $SubscriptionId - - $webAppConfig = Az.Functions.internal\Get-AzWebAppConfiguration -ResourceGroupName $ResourceGroupName ` - -Name $Name ` - -ErrorAction SilentlyContinue ` - @PSBoundParameters - if ($null -eq $webAppConfig) - { - Write-Warning -Message "Failed to retrieve function app site config. 2nd attempt." - } - } - } - finally - { - if ($resetDefaultSubscription) - { - Write-Warning -Message "Resetting session context to subscription id '$currentSubscription'" - $null = Select-AzSubscription $currentSubscription - } - } - - if ((-not $webAppConfig) -and $ErrorIfResultIsNull) - { - $errorMessage = "Falied to get config for function app name '$Name' in resource group name '$ResourceGroupName'." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "FaliedToGetFunctionAppConfig" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - return $webAppConfig -} - -function NewIdentityUserAssignedIdentity -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String[]] - $IdentityID - ) - - # If creating user assigned identities, only alphanumeric characters (0-9, a-z, A-Z), the underscore (_) and the hyphen (-) are supported. - $msiUserAssignedIdentities = New-Object -TypeName Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ManagedServiceIdentityUserAssignedIdentities - - foreach ($id in $IdentityID) - { - $functionAppUserAssignedIdentitiesValue = New-Object -TypeName Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ManagedServiceIdentityUserAssignedIdentities - $msiUserAssignedIdentities.Add($id, $functionAppUserAssignedIdentitiesValue) - } - - return $msiUserAssignedIdentities -} - -function GetShareSuffix -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Int] - $Length = 8 - ) - - # Create char array from 'a' to 'z' - $letters = 97..122 | ForEach-Object { [char]$_ } - $numbers = 0..9 - $alphanumericLowerCase = $letters + $numbers - - $suffix = [System.Text.StringBuilder]::new() - - for ($index = 0; $index -lt $Length; $index++) - { - $value = $alphanumericLowerCase | Get-Random - $suffix.Append($value) | Out-Null - } - - $suffix.ToString() -} - -function GetShareName -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $FunctionAppName - ) - - $FunctionAppName = $FunctionAppName.ToLower() - - if ($env:FunctionsTestMode) - { - # To support the tests' playback mode, we need to have the same values for each function app creation payload. - # Adding this test hook will allows us to have a constant share name when creation an app. - - return $FunctionAppName - } - - <# - Share name restrictions: - - A share name must be a valid DNS name. - - Share names must start with a letter or number, and can contain only letters, numbers, and the dash (-) character. - - Every dash (-) character must be immediately preceded and followed by a letter or number; consecutive dashes are not permitted in share names. - - All letters in a share name must be lowercase. - - Share names must be from 3 through 63 characters long. - - Docs: https://learn.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-shares--directories--files--and-metadata#share-names - #> - - # Share name will be function app name + 8 random char suffix with a max length of 60 - $MAXLENGTH = 60 - $SUFFIXLENGTH = 8 - if (($FunctionAppName.Length + $SUFFIXLENGTH) -lt $MAXLENGTH) - { - $name = $FunctionAppName - } - else - { - $endIndex = $MAXLENGTH - $SUFFIXLENGTH - 1 - $name = $FunctionAppName.Substring(0, $endIndex) - } - - $suffix = GetShareSuffix -Length $SUFFIXLENGTH - $shareName = $name + $suffix - - return $shareName -} - -Class Runtime -{ - [string]$Name - [string]$FullName - [string]$Version - [bool]$IsPreview - [string[]]$SupportedFunctionsExtensionVersions - [hashtable]$AppSettingsDictionary - [hashtable]$SiteConfigPropertiesDictionary - [bool]$IsHidden - [bool]$IsDefault - [string]$PreferredOs - [hashtable]$AppInsightsSettings -} - -function GetBuiltInFunctionAppStacksDefinition -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$false)] - [Switch] - $DoNotShowWarning - ) - - if (-not $DoNotShowWarning) - { - $warmingMessage = "Failed to get Function App Stack definitions from ARM API. " - $warmingMessage += "Please open an issue at https://github.com/Azure/azure-powershell/issues with the following title: " - $warmingMessage += "[Az.Functions] Failed to get Function App Stack definitions from ARM API." - Write-Warning $warmingMessage - } - - $filePath = "$PSScriptRoot/FunctionsStack/functionAppStacks.json" - $json = Get-Content -Path $filePath -Raw - - return $json -} - -# Get the Function App Stack definition from the ARM API using the current Azure session -# -function GetFunctionAppStackDefinition -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param () - - if ($env:FunctionsTestMode -or ($null -ne $env:SYSTEM_DEFINITIONID -or $null -ne $env:Release_DefinitionId -or $null -ne $env:AZUREPS_HOST_ENVIRONMENT)) - { - Write-Debug "$DEBUG_PREFIX Running on test mode. Using built in json file definition." - $json = GetBuiltInFunctionAppStacksDefinition -DoNotShowWarning - return $json - } - - # Make sure there is an active Azure session - $context = Get-AzContext -ErrorAction SilentlyContinue - if (-not $context) - { - $errorMessage = "There is no active Azure PowerShell session. Please run 'Connect-AzAccount'" - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "LoginToAzureViaConnectAzAccount" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - # Get the ResourceManagerUrl - $resourceManagerUrl = $context.Environment.ResourceManagerUrl - if ([string]::IsNullOrWhiteSpace($resourceManagerUrl)) - { - Write-Debug "$DEBUG_PREFIX context does not have a ResourceManagerUrl. Using built in json file definition." - $json = GetBuiltInFunctionAppStacksDefinition - return $json - } - - if (-not $resourceManagerUrl.EndsWith('/')) - { - $resourceManagerUrl += '/' - } - - Write-Debug "$DEBUG_PREFIX Get AccessToken." - $token = . "$PSScriptRoot/../utils/Unprotect-SecureString.ps1" (Get-AzAccessToken -AsSecureString).Token - $headers = @{ - Authorization="Bearer $token" - } - - $params = @{ - stackOsType = 'All' - removeDeprecatedStacks = 'true' - } - - $apiEndPoint = $resourceManagerUrl + "providers/Microsoft.Web/functionAppStacks?api-version=2020-10-01" - - $maxNumberOfTries = 3 - $currentCount = 1 - - Write-Debug "$DEBUG_PREFIX Set TLS 1.2" - [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 - - do - { - $result = $null - try - { - Write-Debug "$DEBUG_PREFIX Pull down Function App Stack definitions from ARM API. Attempt $currentCount of $maxNumberOfTries." - $result = Invoke-WebRequest -Uri $apiEndPoint -Method Get -Headers $headers -body $params -ErrorAction Stop - } - catch - { - $exception = $_ - Write-Debug "$DEBUG_PREFIX Failed to get Function App Stack definitions from ARM API. Attempt $currentCount of $maxNumberOfTries. Error: $($exception.Message)" - } - - if ($result) - { - # Unauthorized - if ($result.StatusCode -eq 401) - { - # Get a new access token, create new headers and retry - $token = . "$PSScriptRoot/../utils/Unprotect-SecureString.ps1" (Get-AzAccessToken -AsSecureString).Token - - $headers = @{ - Authorization = "Bearer $token" - } - } - - if ($result.StatusCode -eq 200) - { - $stackDefinition = $result.Content | ConvertFrom-Json - - return $stackDefinition.value | ConvertTo-Json -Depth 100 - } - } - - $currentCount++ - - } while ($currentCount -le $maxNumberOfTries) - - - # At this point, we failed to get the stack definition from the ARM API. - # Return the built in json file definition - $json = GetBuiltInFunctionAppStacksDefinition - return $json -} - -function ContainsProperty -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.Object] - $Object, - - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $PropertyName - ) - - $result = $Object | Get-Member -MemberType Properties | Where-Object { $_.Name -eq $PropertyName } - return ($null -ne $result) -} - -function ParseMinorVersion -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$false)] - [System.String] - $StackMinorVersion, - - [Parameter(Mandatory=$false)] - [System.String] - $PreferredOs, - - [Parameter(Mandatory=$true)] - [PSCustomObject] - $RuntimeSettings, - - [Parameter(Mandatory=$false)] - [System.String] - $RuntimeFullName, - - [Parameter(Mandatory=$false)] - [Bool] - $StackIsLinux - ) - - # If this FunctionsVersion is not supported, skip it - if ($RuntimeSettings.supportedFunctionsExtensionVersions -notcontains "~$DefaultFunctionsVersion") - { - $supportedFunctionsExtensionVersions = $RuntimeSettings.supportedFunctionsExtensionVersions -join ", " - Write-Debug "$DEBUG_PREFIX Minimium required Functions version '$DefaultFunctionsVersion' is not supported. Runtime supported Functions versions: $supportedFunctionsExtensionVersions. Skipping..." - return - } - else - { - Write-Debug "$DEBUG_PREFIX Minimium required Functions version '$DefaultFunctionsVersion' is supported." - } - - $runtimeName = GetRuntimeName -AppSettingsDictionary $RuntimeSettings.AppSettingsDictionary - - $version = $null - if ($RuntimeName -eq "Java" -and $RuntimeSettings.RuntimeVersion -eq "1.8") - { - # Java 8 is only supported in Windows. The display value is 8; however, the actual SiteConfig.JavaVersion is 1.8 - $version = $StackMinorVersion - } - else - { - $version = $RuntimeSettings.RuntimeVersion - } - - $runtimeVersion = GetRuntimeVersion -Version $version -StackIsLinux $StackIsLinux - - # For Java function app, the version from the Stacks API is 8.0, 11.0, and 17.0. However, this is a breaking change which cannot be supported in the current release. - # We will convert the version to 8, 11, and 17. This change will be reverted for the May 2024 breaking release. - if ($RuntimeName -eq "Java") - { - $runtimeVersion = [int]$runtimeVersion - Write-Debug "$DEBUG_PREFIX Runtime version for Java is modified to be compatible with the current release. Current version '$runtimeVersion'" - } - - # For DotNet function app, the version from the Stacks API is 6.0. 7.0, and 8.0. However, this is a breaking change which cannot be supported in the current release. - # We will convert the version to 6, 7, and 8. This change will be reverted for the May 2024 breaking release. - if ($RuntimeName -like "DotNet*") - { - if ($runtimeVersion.EndsWith(".0")) - { - $runtimeVersion = [int]$runtimeVersion - } - Write-Debug "$DEBUG_PREFIX Runtime version for $runtimeName is modified to be compatible with the current release. Current version '$runtimeVersion'" - } - - $runtime = [Runtime]::new() - $runtime.Name = $runtimeName - $runtime.AppSettingsDictionary = GetDictionary -SettingsDictionary $RuntimeSettings.AppSettingsDictionary - $runtime.SiteConfigPropertiesDictionary = GetDictionary -SettingsDictionary $RuntimeSettings.SiteConfigPropertiesDictionary - $runtime.AppInsightsSettings = GetDictionary -SettingsDictionary $RuntimeSettings.AppInsightsSettings - $runtime.SupportedFunctionsExtensionVersions = GetSupportedFunctionsExtensionVersion -SupportedFunctionsExtensionVersions $RuntimeSettings.SupportedFunctionsExtensionVersions - - foreach ($propertyName in @("isPreview", "isHidden", "isDefault")) - { - if (ContainsProperty -Object $RuntimeSettings -PropertyName $propertyName) - { - Write-Debug "$DEBUG_PREFIX Runtime setting contains '$propertyName'" - $runtime.$propertyName = $RuntimeSettings.$propertyName - } - } - - # When $env:FunctionsDisplayHiddenRuntimes is set to true, we will display all runtimes - if ($runtime.IsHidden -and (-not $env:FunctionsDisplayHiddenRuntimes)) - { - Write-Debug "$DEBUG_PREFIX Runtime $runtimeName is hidden. Skipping..." - return - } - - if ($runtimeVersion -and ($runtimeName -ne "custom")) - { - Write-Debug "$DEBUG_PREFIX Runtime version: $runtimeVersion" - $runtime.Version = $runtimeVersion - } - else - { - Write-Debug "$DEBUG_PREFIX Runtime $runtimeName does not have a version." - $runtime.Version = "" - } - - if ($RuntimeFullName) - { - $runtime.FullName = $RuntimeFullName - } - - if ($PreferredOs) - { - $runtime.PreferredOs = $PreferredOs - } - - $targetOs = if ($StackIsLinux) { 'Linux' } else { 'Windows' } - Write-Debug "$DEBUG_PREFIX Runtime '$runtimeName' for '$targetOs' parsed successfully." - - return $runtime -} - - -function GetRuntimeVersion -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$false)] - [System.String] - $Version, - - [Parameter(Mandatory=$false)] - [Bool] - $StackIsLinux - ) - - if (-not $Version) - { - # Some runtimes do not have a version like custom handler - return - } - - if ($StackIsLinux) - { - $Version = $Version.Split('|')[1] - } - else - { - $valuesToReplace = @('v', '~') - foreach ($value in $valuesToReplace) - { - if ($Version.Contains($value)) - { - $Version = $Version.Replace($value, '') - } - } - } - - $Version = $Version.Trim() - return $Version -} - -function GetDictionary -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [PSCustomObject] - $SettingsDictionary - ) - - $dictionary = @{} - foreach ($property in $SettingsDictionary.PSObject.Properties) - { - $dictionary.Add($property.Name, $property.Value) - } - - return $dictionary -} - -function GetRuntimeName -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [PSCustomObject] - $AppSettingsDictionary - ) - - $settingHashTable = GetDictionary -SettingsDictionary $AppSettingsDictionary - - $name = $settingHashTable['FUNCTIONS_WORKER_RUNTIME'] - - if ($RuntimeToFormattedName.ContainsKey($name)) - { - return $RuntimeToFormattedName[$name] - } - - return $name -} - -function GetSupportedFunctionsExtensionVersion -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String[]] - $SupportedFunctionsExtensionVersions - ) - - $supportedExtensionsVersions = @() - - foreach ($extensionVersion in $SupportedFunctionsExtensionVersions) - { - if ($extensionVersion -ge "~$DefaultFunctionsVersion") - { - $supportedExtensionsVersions += $extensionVersion - } - } - - return $supportedExtensionsVersions -} - -function AddRuntimeToDictionary -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - $Runtime, - - [Parameter(Mandatory=$true)] - [hashtable] - [Ref]$RuntimeToVersionDictionary - ) - - if ($RuntimeToVersionDictionary.ContainsKey($Runtime.Name)) - { - $list = $RuntimeToVersionDictionary[$Runtime.Name] - } - else - { - $list = New-Object System.Collections.Generic.List[[Runtime]] - } - - $list.Add($Runtime) - $RuntimeToVersionDictionary[$Runtime.Name] = $list - - # Add the runtime name and version to the all runtimes list. This is used for the tab completers - if ($AllRuntimeVersions.ContainsKey($runtime.Name)) - { - $allVersionsList = $AllRuntimeVersions[$Runtime.Name] - } - else - { - $allVersionsList = @() - } - - if (-not $allVersionsList.Contains($Runtime.Version)) - { - $allVersionsList += $Runtime.Version - $AllRuntimeVersions[$Runtime.name] = $allVersionsList - } - - # Add Functions extension version to AllFunctionsExtensionVersions. This is used for the tab completers - foreach ($extensionVersion in $Runtime.SupportedFunctionsExtensionVersions) - { - $version = $extensionVersion.Replace("~", "") - if (-not $AllFunctionsExtensionVersions.Contains($version)) - { - $AllFunctionsExtensionVersions.Add($version) - } - } -} - -function SetLinuxandWindowsSupportedRuntimes -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param () - - Write-Debug "$DEBUG_PREFIX Build function stack definitions." - - # Get Function App Runtime Definitions - $json = GetFunctionAppStackDefinition - $functionAppStackDefinition = $json | ConvertFrom-Json - - # Build a map of runtime -> runtime version -> runtime version properties - foreach ($stackDefinition in $functionAppStackDefinition) - { - $preferredOs = $stackDefinition.properties.preferredOs - - $stackName = $stackDefinition.properties.value - Write-Debug "$DEBUG_PREFIX Parsing stack name: $stackName" - - foreach ($majorVersion in $stackDefinition.properties.majorVersions) - { - foreach ($minorVersion in $majorVersion.minorVersions) - { - $runtimeFullName = $minorVersion.DisplayText - Write-Debug "$DEBUG_PREFIX runtime full name: $runtimeFullName" - - $stackMinorVersion = $minorVersion.value - Write-Debug "$DEBUG_PREFIX stack minor version: $stackMinorVersion" - $runtime = $null - - if (ContainsProperty -Object $minorVersion.stackSettings -PropertyName "windowsRuntimeSettings") - { - $runtime = ParseMinorVersion -RuntimeSettings $minorVersion.stackSettings.windowsRuntimeSettings ` - -RuntimeFullName $runtimeFullName ` - -PreferredOs $preferredOs ` - -StackMinorVersion $stackMinorVersion - - if ($runtime) - { - AddRuntimeToDictionary -Runtime $runtime -RuntimeToVersionDictionary ([Ref]$RuntimeToVersionWindows) - } - } - - if (ContainsProperty -Object $minorVersion.stackSettings -PropertyName "linuxRuntimeSettings") - { - $runtime = ParseMinorVersion -RuntimeSettings $minorVersion.stackSettings.linuxRuntimeSettings ` - -RuntimeFullName $runtimeFullName ` - -PreferredOs $preferredOs ` - -StackIsLinux $true - - if ($runtime) - { - AddRuntimeToDictionary -Runtime $runtime -RuntimeToVersionDictionary ([Ref]$RuntimeToVersionLinux) - } - } - } - } - } -} - -# This method pulls down the Functions stack definitions from the ARM API and builds a list of supported runtimes and runtime versions. -# This is used to build the tab completers for the New-AzFunctionApp cmdlet. -function RegisterFunctionsTabCompleters -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param () - - if (-not $global:StacksAndTabCompletersInitialized) - { - SetLinuxandWindowsSupportedRuntimes - - # New-AzFunction app ArgumentCompleter for the RuntimeVersion parameter - # The values of RuntimeVersion depend on the selection of the Runtime parameter - $GetRuntimeVersionCompleter = { - - param ($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameters) - - if ($fakeBoundParameters.ContainsKey('Runtime')) - { - # RuntimeVersions is defined in SetLinuxandWindowsSupportedRuntimes - $AllRuntimeVersions[$fakeBoundParameters.Runtime] | Where-Object { - $_ -like "$wordToComplete*" - } | ForEach-Object { [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_) } - } - } - - # New-AzFunction app ArgumentCompleter for the Runtime parameter - $GetAllRuntimesCompleter = { - - param ($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameters) - - $runtimeValues = $AllRuntimeVersions.Keys | Sort-Object | ForEach-Object { $_ } - - $runtimeValues | Where-Object { $_ -like "$wordToComplete*" } - } - - # New-AzFunction app ArgumentCompleter for the Runtime parameter - $GetAllFunctionsVersionsCompleter = { - - param ($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameters) - - $functionsVersions = $AllFunctionsExtensionVersions | Sort-Object | ForEach-Object { $_ } - - $functionsVersions | Where-Object { $_ -like "$wordToComplete*" } - } - - # Register tab completers - Register-ArgumentCompleter -CommandName New-AzFunctionApp -ParameterName FunctionsVersion -ScriptBlock $GetAllFunctionsVersionsCompleter - Register-ArgumentCompleter -CommandName New-AzFunctionApp -ParameterName Runtime -ScriptBlock $GetAllRuntimesCompleter - Register-ArgumentCompleter -CommandName New-AzFunctionApp -ParameterName RuntimeVersion -ScriptBlock $GetRuntimeVersionCompleter - - $global:StacksAndTabCompletersInitialized = $true - } -} - -function ValidateCpuAndMemory -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$false)] - [Double] - $ResourceCpu, - - [Parameter(Mandatory=$false)] - [System.String] - $ResourceMemory - ) - - if (-not $ResourceCpu -and -not $ResourceMemory) - { - return - } - - if ($ResourceCpu -and -not $ResourceMemory) - { - $errorMessage = "ResourceMemory must be specified when ResourceCpu is specified." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "ResourceMemoryNotSpecified" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - if ($ResourceMemory -and -not $ResourceCpu) - { - $errorMessage = "ResourceCpu must be specified when ResourceMemory is specified." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "ResourceCpuNotSpecified" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - try - { - if (-not $ResourceMemory.ToLower().EndsWith("gi")) - { - throw - } - - # Attempt to parse the numerical part of ResourceMemory to ensure it's a valid format. - [double]::Parse($ResourceMemory.Substring(0, $ResourceMemory.Length - 2)) | Out-Null - } - catch - { - $errorMessage = "ResourceMemory must be specified in Gi. Please provide a correct value. e.g., 4.0Gi." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "InvalidResourceMemory" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } -} - -function FormatFxVersion -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Image - ) - - $fxVersion = $Image - - # Normalize case and remove HTTP(s) prefixes if present. - $normalizedImage = $Image -replace '^(https?://)', '' -replace ' ', '' - - # Prepend "DOCKER|" if not already prefixed with "docker|" (case-insensitive). - if (-not $normalizedImage.StartsWith('docker|', [StringComparison]::OrdinalIgnoreCase)) - { - $fxVersion = "DOCKER|$Image" - } - - return $fxVersion -} - -function GetManagedEnvironment -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [String] - $Environment, - - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [String] - $ResourceGroupName - ) - - $azAppModuleName = "Az.App" - if (-not (Get-Module -ListAvailable -Name $azAppModuleName)) - { - $errorMessage = "The '$azAppModuleName' module is required when creating Function Apps ACA. Please install the module and try again." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "RequiredModuleNotAvailable" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - Import-Module -Name $azAppModuleName -Force -ErrorAction Stop - - $managedEnv = Get-AzContainerAppManagedEnv -Name $Environment ` - -ResourceGroupName $ResourceGroupName ` - -ErrorAction SilentlyContinue - - if (-not $managedEnv) - { - $errorMessage = "Failed to get the managed environment '$Environment' in resource group name '$ResourceGroupName'." - $errorMessage += " Please make sure the managed environment is valid." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "FailedToGetEnvironment" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - return $managedEnv -} - -# SIG # Begin signature block -# MIIoRgYJKoZIhvcNAQcCoIIoNzCCKDMCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAxovF+GzvG1LX9 -# J8FQIzCrdxqHNYqR30a/Ry2qK7JM8qCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEINlF24FfqZusT9+X47wkkdkb -# r7Bq2XifwZB7kkGkrNirMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAIndSVZzE0Ar56hDB7afy9Ut5HhEEaOUyOtJbFG5gFlHBWll0PTtBRKQg -# Z/qLVJ4cK9DhIgpFBj9D9ihd/6wk4cLPvFn0wSTcAqJVBk7IGA0GpC2aOCBcZBiR -# lOWCwG+T7W/8SE/J+VVUSZNSpXdeo8UEfnVhdrq1vs+o0hrdlJDjCThbPlWHOAc3 -# JKkk6o9XM8HMc9qobgmsUswlVjc63LsFoUFVSqX5UgAYSG1vSNc2iSh8jwb01Kfn -# bRBOTp8oPJQQ1kz0Yt91wR0h/kKIiG2kvm9dVXYG2PEn2JkjLMVJeXRQvI28iZ53 -# Da2BS4/cnLe6fAynqwirenMztdPdA6GCF7AwghesBgorBgEEAYI3AwMBMYIXnDCC -# F5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsq -# hkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCB2uw2bsYBAgMwai/TwLsSTACqQmQ8Ftpzlel3LuhlIegIGZ2LkgITK -# GBMyMDI1MDEwOTA2Mzc0OS4yNjVaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo1MjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAACAAvXqn8bKhdWAAEAAAIAMA0G -# CSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI0 -# MDcyNTE4MzEyMVoXDTI1MTAyMjE4MzEyMVowgdMxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9w -# ZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjUyMUEt -# MDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr1XaadKkP2TkunoTF573 -# /tF7KJM9Doiv3ccv26mqnUhmv2DM59ikET4WnRfo5biFIHc6LqrIeqCgT9fT/Gks -# 5VKO90ZQW2avh/PMHnl0kZfX/I5zdVooXHbdUUkPiZfNXszWswmL9UlWo8mzyv9L -# p9TAtw/oXOYTAxdYSqOB5Uzz1Q3A8uCpNlumQNDJGDY6cSn0MlYukXklArChq6l+ -# KYrl6r/WnOqXSknABpggSsJ33oL3onmDiN9YUApZwjnNh9M6kDaneSz78/YtD/2p -# Gpx9/LXELoazEUFxhyg4KdmoWGNYwdR7/id81geOER69l5dJv71S/mH+Lxb6L692 -# n8uEmAVw6fVvE+c8wjgYZblZCNPAynCnDduRLdk1jswCqjqNc3X/WIzA7GGs4HUS -# 4YIrAUx8H2A94vDNiA8AWa7Z/HSwTCyIgeVbldXYM2BtxMKq3kneRoT27NQ7Y7n8 -# ZTaAje7Blfju83spGP/QWYNZ1wYzYVGRyOpdA8Wmxq5V8f5r4HaG9zPcykOyJpRZ -# y+V3RGighFmsCJXAcMziO76HinwCIjImnCFKGJ/IbLjH6J7fJXqRPbg+H6rYLZ8X -# BpmXBFH4PTakZVYxB/P+EQbL5LNw0ZIM+eufxCljV4O+nHkM+zgSx8+07BVZPBKs -# looebsmhIcBO0779kehciYMCAwEAAaOCAUkwggFFMB0GA1UdDgQWBBSAJSTavgkj -# Kqge5xQOXn35fXd3OjAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBf -# BgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmww -# bAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29m -# dC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0El -# MjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUF -# BwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEAKPCG9njRtIqQ -# +fuECgxzWMsQOI3HvW7sV9PmEWCCOWlTuGCIzNi3ibdLZS0b2IDHg0yLrtdVuBi3 -# FxVdesIXuzYyofIe/alTBdV4DhijLTXtB7NgOno7G12iO3t6jy1hPSquzGLry/2m -# EZBwIsSoS2D+H+3HCJxPDyhzMFqP+plltPACB/QNwZ7q+HGyZv3v8et+rQYg8sF3 -# PTuWeDg3dR/zk1NawJ/dfFCDYlWNeCBCLvNPQBceMYXFRFKhcSUws7mFdIDDhZpx -# qyIKD2WDwFyNIGEezn+nd4kXRupeNEx+eSpJXylRD+1d45hb6PzOIF7BkcPtRtFW -# 2wXgkjLqtTWWlBkvzl2uNfYJ3CPZVaDyMDaaXgO+H6DirsJ4IG9ikId941+mWDej -# kj5aYn9QN6ROfo/HNHg1timwpFoUivqAFu6irWZFw5V+yLr8FLc7nbMa2lFSixzu -# 96zdnDsPImz0c6StbYyhKSlM3uDRi9UWydSKqnEbtJ6Mk+YuxvzprkuWQJYWfpPv -# ug+wTnioykVwc0yRVcsd4xMznnnRtZDGMSUEl9tMVnebYRshwZIyJTsBgLZmHM7q -# 2TFK/X9944SkIqyY22AcuLe0GqoNfASCIcZtzbZ/zP4lT2/N0pDbn2ffAzjZkhI+ -# Qrqr983mQZWwZdr3Tk1MYElDThz2D0MwggdxMIIFWaADAgECAhMzAAAAFcXna54C -# m0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp -# Y2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMy -# MjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0B -# AQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51 -# yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY -# 6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9 -# cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN -# 7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDua -# Rr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74 -# kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2 -# K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5 -# TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZk -# i1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9Q -# BXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3Pmri -# Lq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUC -# BBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJl -# pxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIB -# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9y -# eS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUA -# YgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU -# 1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2Ny -# bC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIw -# MTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0w -# Ni0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/yp -# b+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulm -# ZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM -# 9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECW -# OKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4 -# FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3Uw -# xTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPX -# fx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVX -# VAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGC -# onsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU -# 5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEG -# ahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo1MjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUAjJOfLZb3ivipL3sSLlWFbLrWjmSggYMw -# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsF -# AAIFAOspukYwIhgPMjAyNTAxMDkwMzAwMjJaGA8yMDI1MDExMDAzMDAyMlowdzA9 -# BgorBgEEAYRZCgQBMS8wLTAKAgUA6ym6RgIBADAKAgEAAgI9JQIB/zAHAgEAAgIT -# LDAKAgUA6ysLxgIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAow -# CAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQAnEt96NJ54 -# lVT057WZD76gmRUosNR+xLJryNUXSrET60YSG8sr4OwE26UByMg3tRkAtM4xSgr/ -# OHEvCcdURXey+JVvpN4A41YUj180gzfZJ1FJc/0qsNy5IYiFGIQYmUEuVH0NBcgv -# itG9Vn62Ti+esnCUfAMszoFnbscaHbdNp0Z2QnaUg2tLhleVhQSRW7XWTjwz2c1Z -# 44n9vVANNTW4ZxQIU8U54rNhSrWUMxppxQNMAp+s/va1B0c0ClM9VGEKpigkGngQ -# VmkepmGfAGyQe3e3HNkF5v2dmoakB8xA09E6G8+RLVymtg1rN3LbZKyLV2/Ej3B2 -# lOsREYqXk86UMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB -# IDIwMTACEzMAAAIAC9eqfxsqF1YAAQAAAgAwDQYJYIZIAWUDBAIBBQCgggFKMBoG -# CSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgNqcKz04P -# 9nBq+HTIouNHVF/yJLGCJqxJKGkhB3fP50kwgfoGCyqGSIb3DQEJEAIvMYHqMIHn -# MIHkMIG9BCDUyO3sNZ3burBNDGUCV4NfM2gH4aWuRudIk/9KAk/ZJzCBmDCBgKR+ -# MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS -# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMT -# HU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAACAAvXqn8bKhdWAAEA -# AAIAMCIEIND+XTKnIYjqk0RlSfUVIwr3rYK4PiW/wPx2N4l88Du4MA0GCSqGSIb3 -# DQEBCwUABIICADQfStbUUz8Qd/aM+qPsKoopFafALcGByaerfZOGhltfZc9ICviX -# tcZIDIpm0g79o7V5Y6+wjMGARlAEPJ7JypIOAf8Tf8OZHPZg3ek+zS+lLy3MuKFz -# k7F8lAZY9jsyp1Xv9loZRBZRex8CTDh/XIyeknx2LfC9KLn5SRFmsEwsbE6HYls7 -# +eZHreeROqBBxQJ8SS09a1yhmL6QghvE04vQYB8gM8Musjj8s9Y7MtfI3yqW+2V/ -# 6P6qAgzZBUwBVESZkbIF5JBnjRMS3yg0Y8sVSnZK6/x2NIMzXoassrDw76g7cZr2 -# U2hd+GKCaxI2U5deWwpDfIV1IUdRqxLA3JSa1zUOqJDnoVj0GtZGPSG5a/dD2jEH -# oy1ejVX+1Ux+74ZKzeCh/A/8mgiNAeLOqUJZ085ma4B37T/K3oKQCcxfAAI/GmgT -# Ata2ZU7+jp3Bar4/RmGP7fpa5lqEvcPBZ9kKYtjSfn93ix7y4gABAWNcxCdSTWBB -# 9NhRMHfywvDLLo3r5YCKfb1l4YLieEnle97FYzVqdjml3lUiyVwZEBpnjvJt0h1b -# aR9YEKGjoP+MWskZM0FLozcyOGeBL0c910YaSDLFwOOewM0Jf3p+jqouc0glW3xc -# tClGf0cUyHcnpRzMO2UeQjA/SLGQPmO665p483yGLH8w/zbqHJHyAWtB -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/New-AzFunctionApp.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/New-AzFunctionApp.ps1 deleted file mode 100644 index 4cc2e2158670..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/New-AzFunctionApp.ps1 +++ /dev/null @@ -1,888 +0,0 @@ - -function New-AzFunctionApp { - [OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Description('Creates a function app.')] - [CmdletBinding(SupportsShouldProcess=$true, DefaultParametersetname="Consumption")] - param( - [Parameter(ParameterSetName="Consumption", HelpMessage='The Azure subscription ID.')] - [Parameter(ParameterSetName="ByAppServicePlan")] - [Parameter(ParameterSetName="CustomDockerImage")] - [Parameter(ParameterSetName="EnvironmentForContainerApp")] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [ValidateNotNullOrEmpty()] - [System.String] - ${SubscriptionId}, - - [Parameter(Mandatory=$true, ParameterSetName="Consumption", HelpMessage='The name of the resource group.')] - [Parameter(Mandatory=$true, ParameterSetName="ByAppServicePlan")] - [Parameter(Mandatory=$true, ParameterSetName="CustomDockerImage")] - [Parameter(Mandatory=$true, ParameterSetName="EnvironmentForContainerApp")] - [ValidateNotNullOrEmpty()] - [System.String] - ${ResourceGroupName}, - - [Parameter(Mandatory=$true, ParameterSetName="Consumption", HelpMessage='The name of the function app.')] - [Parameter(Mandatory=$true, ParameterSetName="ByAppServicePlan")] - [Parameter(Mandatory=$true, ParameterSetName="CustomDockerImage")] - [Parameter(Mandatory=$true, ParameterSetName="EnvironmentForContainerApp")] - [ValidateNotNullOrEmpty()] - [System.String] - ${Name}, - - [Parameter(Mandatory=$true, ParameterSetName="Consumption", HelpMessage='The name of the storage account.')] - [Parameter(Mandatory=$true, ParameterSetName="ByAppServicePlan")] - [Parameter(Mandatory=$true, ParameterSetName="CustomDockerImage")] - [Parameter(Mandatory=$true, ParameterSetName="EnvironmentForContainerApp")] - [ValidateNotNullOrEmpty()] - [System.String] - ${StorageAccountName}, - - [Parameter(ParameterSetName="Consumption", HelpMessage='Name of the existing App Insights project to be added to the function app.')] - [Parameter(ParameterSetName="ByAppServicePlan")] - [Parameter(ParameterSetName="CustomDockerImage")] - [Parameter(ParameterSetName="EnvironmentForContainerApp")] - [ValidateNotNullOrEmpty()] - [System.String] - [Alias("AppInsightsName")] - ${ApplicationInsightsName}, - - [Parameter(ParameterSetName="Consumption", HelpMessage='Instrumentation key of App Insights to be added.')] - [Parameter(ParameterSetName="ByAppServicePlan")] - [Parameter(ParameterSetName="CustomDockerImage")] - [Parameter(ParameterSetName="EnvironmentForContainerApp")] - [ValidateNotNullOrEmpty()] - [System.String] - [System.String] - [Alias("AppInsightsKey")] - ${ApplicationInsightsKey}, - - [Parameter(Mandatory=$true, ParameterSetName="Consumption", HelpMessage='The location for the consumption plan.')] - [ValidateNotNullOrEmpty()] - [System.String] - ${Location}, - - [Parameter(Mandatory=$true, ParameterSetName="ByAppServicePlan", HelpMessage='The name of the service plan.')] - [Parameter(Mandatory=$true, ParameterSetName="CustomDockerImage")] - [ValidateNotNullOrEmpty()] - [System.String] - ${PlanName}, - - [Parameter(ParameterSetName="ByAppServicePlan", HelpMessage='The OS to host the function app.')] - [Parameter(ParameterSetName="Consumption")] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.WorkerType])] - [ValidateSet("Linux", "Windows")] - [ValidateNotNullOrEmpty()] - [System.String] - # OS type (Linux or Windows) - ${OSType}, - - [Parameter(Mandatory=$true, ParameterSetName="ByAppServicePlan", HelpMessage='The function runtime.')] - [Parameter(Mandatory=$true, ParameterSetName="Consumption")] - [ValidateNotNullOrEmpty()] - [System.String] - # Runtime types are defined in HelperFunctions.ps1 - ${Runtime}, - - [Parameter(ParameterSetName="ByAppServicePlan", HelpMessage='The function runtime.')] - [Parameter(ParameterSetName="Consumption")] - [ValidateNotNullOrEmpty()] - [System.String] - # RuntimeVersion types are defined in HelperFunctions.ps1 - ${RuntimeVersion}, - - [Parameter(ParameterSetName="ByAppServicePlan", HelpMessage='The Functions version.')] - [Parameter(ParameterSetName="Consumption")] - [ValidateNotNullOrEmpty()] - [System.String] - # FunctionsVersion types are defined in HelperFunctions.ps1 - ${FunctionsVersion}, - - [Parameter(ParameterSetName="ByAppServicePlan", HelpMessage='Disable creating application insights resource during the function app creation. No logs will be available.')] - [Parameter(ParameterSetName="Consumption")] - [Parameter(ParameterSetName="CustomDockerImage")] - [Parameter(ParameterSetName="EnvironmentForContainerApp")] - [System.Management.Automation.SwitchParameter] - [Alias("DisableAppInsights")] - ${DisableApplicationInsights}, - - [Parameter(Mandatory=$true, ParameterSetName="CustomDockerImage", HelpMessage='Container image name, e.g., publisher/image-name:tag.')] - [Parameter(ParameterSetName="EnvironmentForContainerApp")] - [ValidateNotNullOrEmpty()] - [System.String] - [Alias("DockerImageName")] - ${Image}, - - [Parameter(ParameterSetName="CustomDockerImage", HelpMessage='The container registry username and password. Required for private registries.')] - [Parameter(ParameterSetName="EnvironmentForContainerApp")] - [ValidateNotNullOrEmpty()] - [PSCredential] - [Alias("DockerRegistryCredential")] - ${RegistryCredential}, - - [Parameter(HelpMessage='Returns true when the command succeeds.')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(ParameterSetName="ByAppServicePlan", HelpMessage='Starts the operation and returns immediately, before the operation is completed. In order to determine if the operation has successfully been completed, use some other mechanism.')] - [Parameter(ParameterSetName="Consumption")] - [Parameter(ParameterSetName="CustomDockerImage")] - [Parameter(ParameterSetName="EnvironmentForContainerApp")] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${NoWait}, - - [Parameter(ParameterSetName="ByAppServicePlan", HelpMessage='Runs the cmdlet as a background job.')] - [Parameter(ParameterSetName="Consumption")] - [Parameter(ParameterSetName="CustomDockerImage")] - [Parameter(ParameterSetName="EnvironmentForContainerApp")] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${AsJob}, - - [Parameter(ParameterSetName="ByAppServicePlan", HelpMessage='Resource tags.')] - [Parameter(ParameterSetName="Consumption")] - [Parameter(ParameterSetName="CustomDockerImage")] - [Parameter(ParameterSetName="EnvironmentForContainerApp")] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IResourceTags]))] - [System.Collections.Hashtable] - [ValidateNotNull()] - ${Tag}, - - [Parameter(ParameterSetName="ByAppServicePlan", HelpMessage='Function app settings.')] - [Parameter(ParameterSetName="Consumption")] - [Parameter(ParameterSetName="CustomDockerImage")] - [Parameter(ParameterSetName="EnvironmentForContainerApp")] - [ValidateNotNullOrEmpty()] - [Hashtable] - ${AppSetting}, - - [Parameter(ParameterSetName="ByAppServicePlan", HelpMessage="Specifies the type of identity used for the function app. - The acceptable values for this parameter are: - - SystemAssigned - - UserAssigned - ")] - [Parameter(ParameterSetName="Consumption")] - [Parameter(ParameterSetName="CustomDockerImage")] - [Parameter(ParameterSetName="EnvironmentForContainerApp")] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FunctionAppManagedServiceIdentityCreateType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedServiceIdentityType] - ${IdentityType}, - - [Parameter(ParameterSetName="ByAppServicePlan", HelpMessage="Specifies the list of user identities associated with the function app. - The user identity references will be ARM resource ids in the form: - '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/identities/{identityName}'")] - [Parameter(ParameterSetName="Consumption")] - [Parameter(ParameterSetName="CustomDockerImage")] - [Parameter(ParameterSetName="EnvironmentForContainerApp")] - [ValidateNotNull()] - [System.String[]] - ${IdentityID}, - - [Parameter(Mandatory=$true, ParameterSetName="EnvironmentForContainerApp", HelpMessage='Name of the container app environment.')] - [ValidateNotNullOrEmpty()] - [System.String] - ${Environment}, - - [Parameter(Mandatory=$false, ParameterSetName="EnvironmentForContainerApp", HelpMessage='The workload profile name to run the container app on.')] - [ValidateNotNullOrEmpty()] - [System.String] - ${WorkloadProfileName}, - - [Parameter(Mandatory=$false, ParameterSetName="EnvironmentForContainerApp", HelpMessage='The CPU in cores of the container app. e.g., 0.75.')] - [ValidateNotNullOrEmpty()] - [Double] - ${ResourceCpu}, - - [Parameter(Mandatory=$false, ParameterSetName="EnvironmentForContainerApp", HelpMessage='The memory size of the container app. e.g., 1.0Gi.')] - [ValidateNotNullOrEmpty()] - [System.String] - ${ResourceMemory}, - - [Parameter(Mandatory=$false, ParameterSetName="EnvironmentForContainerApp", HelpMessage='The maximum number of replicas when creating a function app on container app.')] - [ValidateScript({$_ -gt 0})] - [Int] - ${ScaleMaxReplica}, - - [Parameter(Mandatory=$false, ParameterSetName="EnvironmentForContainerApp", HelpMessage='The minimum number of replicas when create function app on container app.')] - [ValidateScript({$_ -gt 0})] - [Int] - ${ScaleMinReplica}, - - [Parameter(Mandatory=$false, ParameterSetName="EnvironmentForContainerApp", HelpMessage='The container registry server hostname, e.g. myregistry.azurecr.io.')] - [ValidateNotNullOrEmpty()] - [System.String] - ${RegistryServer}, - - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} - ) - - process { - - RegisterFunctionsTabCompleters - - # Remove bound parameters from the dictionary that cannot be process by the intenal cmdlets. - $paramsToRemove = @( - "StorageAccountName", - "ApplicationInsightsName", - "ApplicationInsightsKey", - "Location", - "PlanName", - "OSType", - "Runtime", - "DisableApplicationInsights", - "Image", - "RegistryCredential", - "FunctionsVersion", - "RuntimeVersion", - "AppSetting", - "IdentityType", - "IdentityID", - "Tag", - "Environment", - "RegistryServer", - "WorkloadProfileName", - "ResourceCpu", - "ResourceMemory", - "ScaleMaxReplica", - "ScaleMinReplica" - ) - foreach ($paramName in $paramsToRemove) - { - if ($PSBoundParameters.ContainsKey($paramName)) - { - $PSBoundParameters.Remove($paramName) | Out-Null - } - } - - $functionAppIsCustomDockerImage = $PsCmdlet.ParameterSetName -eq "CustomDockerImage" - $environmentForContainerApp = $PsCmdlet.ParameterSetName -eq "EnvironmentForContainerApp" - - $appSettings = New-Object -TypeName System.Collections.Generic.List[System.Object] - $siteConfig = New-Object -TypeName Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteConfig - $functionAppDef = New-Object -TypeName Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Site - - $params = GetParameterKeyValues -PSBoundParametersDictionary $PSBoundParameters ` - -ParameterList @("SubscriptionId", "HttpPipelineAppend", "HttpPipelinePrepend") - - $runtimeJsonDefinition = $null - ValidateFunctionName -Name $Name @params - - if (-not ($functionAppIsCustomDockerImage -or $environmentForContainerApp)) - { - if (-not $FunctionsVersion) - { - $FunctionsVersion = $DefaultFunctionsVersion - Write-Warning "FunctionsVersion not specified. Setting default value to '$FunctionsVersion'. $SetDefaultValueParameterWarningMessage" - } - - ValidateFunctionsVersion -FunctionsVersion $FunctionsVersion - - if (-not $OSType) - { - $OSType = GetDefaultOSType -Runtime $Runtime - Write-Warning "OSType not specified. Setting default value to '$OSType'. $SetDefaultValueParameterWarningMessage" - } - - $runtimeJsonDefinition = GetStackDefinitionForRuntime -FunctionsVersion $FunctionsVersion -Runtime $Runtime -RuntimeVersion $RuntimeVersion -OSType $OSType - - if (-not $runtimeJsonDefinition) - { - $errorId = "FailedToGetRuntimeDefinition" - $message += "Failed to get runtime definition for '$Runtime' version '$RuntimeVersion' in Functions version '$FunctionsVersion' on '$OSType'." - $exception = [System.InvalidOperationException]::New($message) - ThrowTerminatingError -ErrorId $errorId ` - -ErrorMessage $message ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - - } - - # Add app settings - if ($runtimeJsonDefinition.AppSettingsDictionary.Count -gt 0) - { - foreach ($keyName in $runtimeJsonDefinition.AppSettingsDictionary.Keys) - { - $value = $runtimeJsonDefinition.AppSettingsDictionary[$keyName] - $appSettings.Add((NewAppSetting -Name $keyName -Value $value)) - } - } - - # Add site config properties - if ($runtimeJsonDefinition.SiteConfigPropertiesDictionary.Count -gt 0) - { - foreach ($PropertyName in $runtimeJsonDefinition.SiteConfigPropertiesDictionary.Keys) - { - $value = $runtimeJsonDefinition.SiteConfigPropertiesDictionary[$PropertyName] - $siteConfig.$PropertyName = $value - } - } - } - - $servicePlan = $null - $consumptionPlan = $PsCmdlet.ParameterSetName -eq "Consumption" - $OSIsLinux = $OSType -eq "Linux" - $dockerRegistryServerUrl = $null - - if ($consumptionPlan) - { - ValidateConsumptionPlanLocation -Location $Location -OSIsLinux:$OSIsLinux @params - $functionAppDef.Location = $Location - } - elseif ($environmentForContainerApp) - { - $OSIsLinux = $true - - if (-not $Image) - { - Write-Warning "Image not specified. Setting default value to '$DefaultCentauriImage'." - $Image = $DefaultCentauriImage - } - if ($RegistryServer) - { - $dockerRegistryServerUrl = $RegistryServer - } - - if ($Environment -and $RegistryCredential) - { - # Error out if the user has specified both Environment and RegistryCredential and not provided RegistryServer. - if (-not $RegistryServer) - { - $errorMessage = "RegistryServer is required when Environment and RegistryCredential is specified." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "RegistryServerRequired" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - } - } - elseif ($PlanName) - { - # Host function app in Elastic Premium or app service plan - $servicePlan = GetServicePlan $PlanName @params - - if ($null -ne $servicePlan.Location) - { - $Location = $servicePlan.Location - } - - if ($null -ne $servicePlan.Reserved) - { - $OSIsLinux = $servicePlan.Reserved - } - - $functionAppDef.ServerFarmId = $servicePlan.Id - $functionAppDef.Location = $Location - } - - if ($OSIsLinux) - { - # These are the scenarios we currently support when creating a Docker container: - # 1) In Consumption, we only support images created by Functions with a predefine runtime name and version, e.g., Python 3.7 - # 2) For App Service and Premium plans, a customer can specify a customer container image - - # Linux function app - $functionAppDef.Kind = 'functionapp,linux' - $functionAppDef.Reserved = $true - - # Bring your own container is only supported on App Service, Premium plans and Container App - if ($Image) - { - $functionAppDef.Kind = 'functionapp,linux,container' - - $appSettings.Add((NewAppSetting -Name 'DOCKER_CUSTOM_IMAGE_NAME' -Value $Image.Trim().ToLower())) - $appSettings.Add((NewAppSetting -Name 'FUNCTION_APP_EDIT_MODE' -Value 'readOnly')) - $appSettings.Add((NewAppSetting -Name 'WEBSITES_ENABLE_APP_SERVICE_STORAGE' -Value 'false')) - - $siteConfig.LinuxFxVersion = FormatFxVersion -Image $Image - - # Parse the docker registry url only for the custom image parameter set (otherwise it will be a breaking change for existing customers). - # For the container app environment, the registry url must me explicitly provided. - if (-not $dockerRegistryServerUrl -and -not $environmentForContainerApp) - { - $dockerRegistryServerUrl = ParseDockerImage -DockerImageName $Image - } - - if ($dockerRegistryServerUrl) - { - $appSettings.Add((NewAppSetting -Name 'DOCKER_REGISTRY_SERVER_URL' -Value $dockerRegistryServerUrl)) - - if ($RegistryCredential) - { - $appSettings.Add((NewAppSetting -Name 'DOCKER_REGISTRY_SERVER_USERNAME' -Value $RegistryCredential.GetNetworkCredential().UserName)) - $appSettings.Add((NewAppSetting -Name 'DOCKER_REGISTRY_SERVER_PASSWORD' -Value $RegistryCredential.GetNetworkCredential().Password)) - } - } - } - else - { - $appSettings.Add((NewAppSetting -Name 'WEBSITES_ENABLE_APP_SERVICE_STORAGE' -Value 'true')) - } - } - else - { - # Windows function app - $functionAppDef.Kind = 'functionapp' - } - - if ($environmentForContainerApp) - { - $functionAppDef.Kind = 'functionapp,linux,container,azurecontainerapps' - $functionAppDef.Reserved = $null - $functionAppDef.HttpsOnly = $null - $functionAppDef.ScmSiteAlsoStopped = $null - $functionAppDef.HttpsOnly = $null - - ValidateCpuAndMemory -ResourceCpu $ResourceCpu -ResourceMemory $ResourceMemory - if ($ResourceCpu -and $ResourceMemory) - { - $functionAppDef.ResourceConfigCpu = $ResourceCpu - $functionAppDef.ResourceConfigMemory = $ResourceMemory - } - - if ($WorkloadProfileName) - { - $functionAppDef.WorkloadProfileName = $WorkloadProfileName - } - - $siteConfig.netFrameworkVersion = $null - $siteConfig.JavaVersion = $null - $siteConfig.Use32BitWorkerProcess = $null - $siteConfig.PowerShellVersion = $null - $siteConfig.Http20Enabled = $null - $siteConfig.LocalMySqlEnabled = $null - - if ($ScaleMinReplica) - { - $siteConfig.MinimumElasticInstanceCount = $ScaleMinReplica - } - - if ($ScaleMaxReplica) - { - $siteConfig.FunctionAppScaleLimit = $ScaleMaxReplica - } - - $managedEnvironment = GetManagedEnvironment -Environment $Environment -ResourceGroupName $ResourceGroupName - $functionAppDef.Location = $managedEnvironment.Location - $functionAppDef.ManagedEnvironmentId = $managedEnvironment.Id - } - - # Validate storage account and get connection string - $connectionString = GetConnectionString -StorageAccountName $StorageAccountName @params - $appSettings.Add((NewAppSetting -Name 'AzureWebJobsStorage' -Value $connectionString)) - $appSettings.Add((NewAppSetting -Name 'AzureWebJobsDashboard' -Value $connectionString)) - - if (-not ($functionAppIsCustomDockerImage -or $environmentForContainerApp)) - { - $appSettings.Add((NewAppSetting -Name 'FUNCTIONS_EXTENSION_VERSION' -Value "~$FunctionsVersion")) - } - - # If plan is not consumption, elastic premium or a container app environment, set always on - $planIsElasticPremium = $servicePlan.SkuTier -eq 'ElasticPremium' - if ((-not $consumptionPlan) -and (-not $planIsElasticPremium) -and (-not $Environment)) - { - $siteConfig.AlwaysOn = $true - } - - # If plan is Elastic Premium or Consumption (Windows or Linux), we need these app settings - if ($planIsElasticPremium -or $consumptionPlan) - { - $appSettings.Add((NewAppSetting -Name 'WEBSITE_CONTENTAZUREFILECONNECTIONSTRING' -Value $connectionString)) - - $shareName = GetShareName -FunctionAppName $Name - $appSettings.Add((NewAppSetting -Name 'WEBSITE_CONTENTSHARE' -Value $shareName)) - } - - if (-not $DisableApplicationInsights) - { - if ($ApplicationInsightsKey) - { - $appSettings.Add((NewAppSetting -Name 'APPINSIGHTS_INSTRUMENTATIONKEY' -Value $ApplicationInsightsKey)) - } - elseif ($ApplicationInsightsName) - { - $appInsightsProject = GetApplicationInsightsProject -Name $ApplicationInsightsName @params - if (-not $appInsightsProject) - { - $errorMessage = "Failed to get application insights key for project name '$ApplicationInsightsName'. Please make sure the project exist." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "ApplicationInsightsProjectNotFound" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - $appSettings.Add((NewAppSetting -Name 'APPINSIGHTS_INSTRUMENTATIONKEY' -Value $appInsightsProject.InstrumentationKey)) - } - else - { - $newAppInsightsProject = CreateApplicationInsightsProject -ResourceGroupName $resourceGroupName ` - -ResourceName $Name ` - -Location $functionAppDef.Location ` - @params - if ($newAppInsightsProject) - { - $appSettings.Add((NewAppSetting -Name 'APPINSIGHTS_INSTRUMENTATIONKEY' -Value $newAppInsightsProject.InstrumentationKey)) - } - else - { - $warningMessage = "Unable to create the Application Insights for the function app. Creation of Application Insights will help you monitor and diagnose your function apps in the Azure Portal. `r`n" - $warningMessage += "Use the 'New-AzApplicationInsights' cmdlet or the Azure Portal to create a new Application Insights project. After that, use the 'Update-AzFunctionApp' cmdlet to update Application Insights for your function app." - Write-Warning $warningMessage - } - } - } - - if ($Tag.Count -gt 0) - { - $resourceTag = NewResourceTag -Tag $Tag - $functionAppDef.Tag = $resourceTag - } - - # Add user app settings - if ($appSetting.Count -gt 0) - { - foreach ($keyName in $appSetting.Keys) - { - $appSettings.Add((NewAppSetting -Name $keyName -Value $appSetting[$keyName])) - } - } - - # Set function app managed identity - if ($IdentityType) - { - $functionAppDef.IdentityType = $IdentityType - - if ($IdentityType -eq "UserAssigned") - { - # Set UserAssigned managed identiy - if (-not $IdentityID) - { - $errorMessage = "IdentityID is required for UserAssigned identity" - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "IdentityIDIsRequiredForUserAssignedIdentity" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - - } - - $identityUserAssignedIdentity = NewIdentityUserAssignedIdentity -IdentityID $IdentityID - $functionAppDef.IdentityUserAssignedIdentity = $identityUserAssignedIdentity - } - } - - # Set app settings and site configuration - $siteConfig.AppSetting = $appSettings - $functionAppDef.Config = $siteConfig - $PSBoundParameters.Add("SiteEnvelope", $functionAppDef) | Out-Null - - if ($PsCmdlet.ShouldProcess($Name, "Creating function app")) - { - # Save the ErrorActionPreference - $currentErrorActionPreference = $ErrorActionPreference - $ErrorActionPreference = 'Stop' - - $exceptionThrown = $false - - try - { - Az.Functions.internal\New-AzFunctionApp @PSBoundParameters - } - catch - { - $exceptionThrown = $true - - $errorMessage = GetErrorMessage -Response $_ - - if ($errorMessage) - { - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "FailedToCreateFunctionApp" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - throw $_ - } - finally - { - # Reset the ErrorActionPreference - $ErrorActionPreference = $currentErrorActionPreference - } - - if (-not $exceptionThrown) - { - if ($consumptionPlan -and $OSIsLinux) - { - $message = "Your Linux function app '$Name', that uses a consumption plan has been successfully created but is not active until content is published using Azure Portal or the Functions Core Tools." - Write-Verbose $message -Verbose - } - } - } - } -} - -# SIG # Begin signature block -# MIIoRgYJKoZIhvcNAQcCoIIoNzCCKDMCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAysI9JXbowLlbJ -# 4pzs4wTMJ4SfGJVLBz0GjLO89pKXU6CCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIM3LlgImWoUKlOZPNXb3+j+w -# ql9ZlcuZjZ1tj4rOW7fVMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAYsAotW1TTHHmupCv6ZeqkXoKWiiBXrVNYmyzIXoz40+7TTMzFv8riOsC -# pyRVpfFEJPVHbbzJjuRUArHidxuFZ2rNJd5HbqXBky6i6eJhslyEKE2PINY3+w7F -# vD88OR6iU1qhT7xSRIa8VH5FJsVye97WLl5hV9fEpYadOXxlKgR8LrtDOUNdWI25 -# PKwlMZXPIEtwJ2ve0R5iSDN7F1E5dNZrSlDic4LISqmquapi4obmmfC2zZy3oKJJ -# LiQLrEHgryx1rLxEVL/XgFf70Y3oEh4O/aIPx9BB8J4Gh36yP524Q8bCLUJIQ+zv -# 7ZhU7WGYMr0Tbni70IXEjKeyBB5x+6GCF7AwghesBgorBgEEAYI3AwMBMYIXnDCC -# F5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsq -# hkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCDEyFB7voa76TfpauhO6pUTtZdyO3Qr2CAin0D0IM8+UwIGZ2K77bwh -# GBMyMDI1MDEwOTA2Mzc0OC4zNzJaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# TjozMjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+KOhJgwMQEj+AAEAAAH4MA0G -# CSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI0 -# MDcyNTE4MzEwOFoXDTI1MTAyMjE4MzEwOFowgdMxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9w -# ZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjMyMUEt -# MDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxR23pXYnD2BuODdeXs2C -# u/T5kKI+bAw8cbtN50Cm/FArjXyL4RTqMe6laQ/CqeMTxgckvZr1JrW0Mi4F15rx -# /VveGhKBmob45DmOcV5xyx7h9Tk59NAl5PNMAWKAIWf270SWAAWxQbpVIhhPWCnV -# V3otVvahEad8pMmoSXrT5Z7Nk1RnB70A2bq9Hk8wIeC3vBuxEX2E8X50IgAHsyaR -# 9roFq3ErzUEHlS8YnSq33ui5uBcrFOcFOCZILuVFVTgEqSrX4UiX0etqi7jUtKyp -# gIflaZcV5cI5XI/eCxY8wDNmBprhYMNlYxdmQ9aLRDcTKWtddWpnJtyl5e3gHuYo -# j8xuDQ0XZNy7ESRwJIK03+rTZqfaYyM4XSK1s0aa+mO69vo/NmJ4R/f1+KucBPJ4 -# yUdbqJWM3xMvBwLYycvigI/WK4kgPog0UBNczaQwDVXpcU+TMcOvWP8HBWmWJQIm -# TZInAFivXqUaBbo3wAfPNbsQpvNNGu/12pg0F8O/CdRfgPHfOhIWQ0D8ALCY+Lsi -# wbzcejbrVl4N9fn2wOg2sDa8RfNoD614I0pFjy/lq1NsBo9V4GZBikzX7ZjWCRgd -# 1FCBXGpfpDikHjQ05YOkAakdWDT2bGSaUZJGVYtepIpPTAs1gd/vUogcdiL51o7s -# huHIlB6QSUiQ24XYhRbbQCECAwEAAaOCAUkwggFFMB0GA1UdDgQWBBS9zsZzz57Q -# lT5nrt/oitLv1OQ7tjAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBf -# BgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmww -# bAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29m -# dC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0El -# MjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUF -# BwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEAYfk8GzzpEVnG -# l7y6oXoytCb42Hx6TOA0+dkaBI36ftDE9tLubUa/xMbHB5rcNiRhFHZ93RefdPpc -# 4+FF0DAl5lP8xKAO+293RWPKDFOFIxgtZY08t8D9cSQpgGUzyw3lETZebNLEA17A -# /CTpA2F9uh8j84KygeEbj+bidWDiEfayoH2A5/5ywJJxIuLzFVHacvWxSCKoF9hl -# SrZSG5fXWS3namf4tt690UT6AGyWLFWe895coFPxm/m0UIMjjp9VRFH7nb3Ng2Q4 -# gPS9E5ZTMZ6nAlmUicDj0NXAs2wQuQrnYnbRAJ/DQW35qLo7Daw9AsItqjFhbMcG -# 68gDc4j74L2KYe/2goBHLwzSn5UDftS1HZI0ZRsqmNHI0TZvvUWX9ajm6SfLBTEt -# oTo6gLOX0UD/9rrhGjdkiCw4SwU5osClgqgiNMK5ndk2gxFlDXHCyLp5qB6BoPpc -# 82RhO0yCzoP9gv7zv2EocAWEsqE5+0Wmu5uarmfvcziLfU1SY240OZW8ld4sS8fn -# ybn/jDMmFAhazV1zH0QERWEsfLSpwkOXaImWNFJ5lmcnf1VTm6cmfasScYtElpjq -# Z9GooCmk1XFApORPs/PO43IcFmPRwagt00iQSw+rBeIH00KQq+FJT/62SB70g9g/ -# R8TS6k6b/wt2UWhqrW+Q8lw6Xzgex/YwggdxMIIFWaADAgECAhMzAAAAFcXna54C -# m0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp -# Y2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMy -# MjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0B -# AQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51 -# yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY -# 6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9 -# cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN -# 7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDua -# Rr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74 -# kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2 -# K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5 -# TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZk -# i1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9Q -# BXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3Pmri -# Lq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUC -# BBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJl -# pxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIB -# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9y -# eS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUA -# YgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU -# 1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2Ny -# bC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIw -# MTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0w -# Ni0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/yp -# b+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulm -# ZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM -# 9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECW -# OKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4 -# FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3Uw -# xTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPX -# fx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVX -# VAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGC -# onsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU -# 5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEG -# ahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# TjozMjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUAtkQt/ebWSQ5DnG+aKRzPELCFE9GggYMw -# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsF -# AAIFAOspkbIwIhgPMjAyNTAxMDkwMDA3MTRaGA8yMDI1MDExMDAwMDcxNFowdzA9 -# BgorBgEEAYRZCgQBMS8wLTAKAgUA6ymRsgIBADAKAgEAAgI4NAIB/zAHAgEAAgIS -# NjAKAgUA6yrjMgIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAow -# CAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQCjGHrWu30V -# S+qaHfvanyYyDmqqh6hS8P5IdktEfCKInL73NSc2gsWB/fPKwfPjKEofdwRRyvdX -# 8NDC4nzL7+kKr7S+oFtAlZl5e5iueeJLpVD5/73C43eTcpuRUC7o1Y+JHJ634L0I -# wwbPclEapYNWMzeTQolR4qe/RO6Qsa+PQ+RV/Om9lWMap4f16DgeyL80ClPEXUhd -# YUHZD5jVu/HI7zt33nJ6kphWurwD4hzxEl8ndMNtBAQDIVm5n1AoocnUOOaAWTVe -# tkFNK3JrW2tk3V5PK+ZSK8N1gW0PmjurnJP5u87pCYMSu+JNKZxQlEyWiiVscroQ -# vtM0sN1P4QOeMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB -# IDIwMTACEzMAAAH4o6EmDAxASP4AAQAAAfgwDQYJYIZIAWUDBAIBBQCgggFKMBoG -# CSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgJgzlmASw -# JUJmfC/fymrL+4X0pT98Y/ItWjvTpyPekwkwgfoGCyqGSIb3DQEJEAIvMYHqMIHn -# MIHkMIG9BCDvzDPyXw1UkAUFYt8bR4UdjM90Qv5xnVaiKD3I0Zz3WjCBmDCBgKR+ -# MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS -# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMT -# HU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB+KOhJgwMQEj+AAEA -# AAH4MCIEIIDqYkMBBSXNi5DSosKMktNwXGOG4bQj+zBd999wCCwEMA0GCSqGSIb3 -# DQEBCwUABIICADt9d4YQCqlauBTexYbeLvcpq4nsYUhX+PF2Z/fmYQ3tZo9l9oO9 -# FsO5PFwLqNQlhuMSKfr9lo7ig1/QwX6yqIrwocvmWB6FPwePV5BCy0suJCeSCuIu -# t5S9Ehz1KII5s3Tz+ZmmrFx3YU0AZgfmn0+z6/mbOFdFO1LLnA0gd+IBudqAbBpo -# mnyIJncxHtLX/iS71Asex4ySXx8XjadjcD4TTYR5oBda1NAmi+Ic/krGxQE8OrhH -# sBRIEztqDBwK8OSKcBsN2ftmUst/FMbzQECvnxFUqYntlQAmFuayhnexiwvtsrGe -# aQogpmoEELtvbvq1kdAcqhquhYqX0SCqJrvKdI7hNuLXoBQftFtzcpUkQbhg+Tdv -# 94ylW7hGn+eq8DXHRjXAL1GU7Kr/jC4TA814HJ354dkXLksyXrBplf4OOwqQQltd -# Ctv8lSgv06F6oLRZIsXGRyBssuuaV5CNFcZOxch//+eTirMo469A+/XWnaUCIstL -# kq78hdzohvt1sOaA82JDJGnJ0nwA4vBPh9y/akdyX1hvzn6vq2cKFL5U7Qm7TKCp -# yR8djwOdOQszabhRJV1VAkRpFddrFQ1k5LEDkC0V9YcGooH9uWvSpnKAj2vo6lMZ -# 6c1Knk4GVW614qfJxWWumdCq1Npl9H1k+6TzV7+PmQ3979mQpRiLPr2a -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/New-AzFunctionAppPlan.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/New-AzFunctionAppPlan.ps1 deleted file mode 100644 index 4fa721ff5392..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/New-AzFunctionAppPlan.ps1 +++ /dev/null @@ -1,442 +0,0 @@ -function New-AzFunctionAppPlan { - [OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Description('Creates a function app service plan.')] - [CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] - param( - [Parameter(Mandatory=$true, HelpMessage='Name of the App Service plan.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [ValidateNotNullOrEmpty()] - [System.String] - ${Name}, - - [Parameter(Mandatory=$true, HelpMessage='Name of the resource group to which the resource belongs.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [ValidateNotNullOrEmpty()] - [System.String] - ${ResourceGroupName}, - - [Parameter(HelpMessage='The Azure subscription ID.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [ValidateNotNullOrEmpty()] - [System.String] - ${SubscriptionId}, - - [Parameter(Mandatory=$true, HelpMessage='The plan sku. Valid inputs are: EP1, EP2, EP3')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SkuType])] - [ValidateNotNullOrEmpty()] - [System.String] - # Sku (EP1, EP2 or EP3) - ${Sku}, - - [Parameter(Mandatory=$true, HelpMessage='The worker type for the plan. Valid inputs are: Windows or Linux.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.WorkerType])] - [ValidateNotNullOrEmpty()] - [System.String] - # Worker type (Linux or Windows) - ${WorkerType}, - - [Parameter(Mandatory=$true, HelpMessage='The location for the consumption plan.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [ValidateNotNullOrEmpty()] - [System.String] - ${Location}, - - [Parameter(HelpMessage='The maximum number of workers for the app service plan.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - [ValidateRange(1,100)] - [Alias("MaxBurst")] - ${MaximumWorkerCount}, - - [Parameter(HelpMessage='The minimum number of workers for the app service plan.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - [Alias("MinInstances")] - [ValidateRange(1,20)] - ${MinimumWorkerCount}, - - [Parameter(HelpMessage='Resource tags.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IResourceTags]))] - [System.Collections.Hashtable] - [ValidateNotNull()] - ${Tag}, - - [Parameter(HelpMessage='Run the command asynchronously.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${NoWait}, - - [Parameter(HelpMessage='Run the command as a job.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${AsJob}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} - ) - process { - - RegisterFunctionsTabCompleters - - # Remove bound parameters from the dictionary that cannot be process by the intenal cmdlets. - foreach ($paramName in @("Sku", "WorkerType", "MaximumWorkerCount", "MinimumWorkerCount", "Location", "Tag")) - { - if ($PSBoundParameters.ContainsKey($paramName)) - { - $PSBoundParameters.Remove($paramName) | Out-Null - } - } - - $Sku = NormalizeSku -Sku $Sku - $tier = GetSkuName -Sku $Sku - - if (($MaximumWorkerCount -gt 0) -and ($tier -ne "ElasticPremium")) - { - $errorMessage = "MaximumWorkerCount is only supported for Elastic Premium (EP) plans." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "MaximumWorkerCountIsOnlySupportedForElasticPremiumPlan" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - if ($MaximumWorkerCount -lt $MinimumWorkerCount) - { - $errorMessage = "MinimumWorkerCount '$($MinimumWorkerCount)' cannot be less than '$($MaximumWorkerCount)'." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "MaximumWorkerCountIsOnlySupportedForElasticPremiumPlan" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - # Validate location for a Premium plan - $OSIsLinux = $WorkerType -eq "Linux" - $params = GetParameterKeyValues -PSBoundParametersDictionary $PSBoundParameters ` - -ParameterList @("SubscriptionId", "HttpPipelineAppend", "HttpPipelinePrepend") - ValidatePremiumPlanLocation -Location $Location -OSIsLinux:$OSIsLinux @params - - $servicePlan = New-Object -TypeName Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServicePlan - - # Plan settings - $servicePlan.SkuTier = $tier - $servicePlan.SkuName = $Sku - $servicePlan.Location = $Location - $servicePlan.Reserved = ($WorkerType -eq "Linux") - - if ($Tag.Count -gt 0) - { - $resourceTag = NewResourceTag -Tag $Tag - $servicePlan.Tag = $resourceTag - } - - if ($MinimumWorkerCount -gt 0) - { - $servicePlan.Capacity = $MinimumWorkerCount - } - - if ($MaximumWorkerCount -gt 0) - { - $servicePlan.MaximumElasticWorkerCount = $MaximumWorkerCount - } - - # Add the service plan definition - $PSBoundParameters.Add("AppServicePlan", $servicePlan) | Out-Null - - if ($PsCmdlet.ShouldProcess($Name, "Creating function app plan")) - { - # Save the ErrorActionPreference - $currentErrorActionPreference = $ErrorActionPreference - $ErrorActionPreference = 'Stop' - - try - { - Az.Functions.internal\New-AzFunctionAppPlan @PSBoundParameters - } - catch - { - $errorMessage = GetErrorMessage -Response $_ - if ($errorMessage) - { - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "FailedToCreateFunctionAppPlan" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - throw $_ - } - finally - { - # Reset the ErrorActionPreference - $ErrorActionPreference = $currentErrorActionPreference - } - } - } -} - -# SIG # Begin signature block -# MIIoQwYJKoZIhvcNAQcCoIIoNDCCKDACAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBQprQljMVVDnrR -# NNzT/Aejb0rcSLA84oU1be0VS0QUmKCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIHOA9hWdAAHaB9nQvNo+ZPgQ -# qcemqT2iVrxCtu6qWmODMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAjf91bXBzhCuqh21DVgVjG6KLWq+Fo+mosMpjPWZ8RLSedz3Rrh6H9v8J -# 0kCrZfITs2cAE2bIqMnHPNV86Lr8qE9qrAO/apAtyUMuvVOL2cZfAs/OfRehYqHy -# AnafiasDjYgDiLyNGDEsZCf1RNrgoe3GgIMJWHemn1Mm3XzBBv7jzifroHzRBK0+ -# nyQh9z8fRhX3oyrmi+DcqwBQ4JgtUQLHvDhPuNmNgsg6AkzOh142a+YmTIX3fs5x -# z3lCrl0UKJKmtgSgmUZt4wFNCCBBHLjuZERr5ZX0wJQMRApWtaqGpNTkf3MmsC4H -# gAsPp2UAqsjPOKbdK1Lie4l0OHbctKGCF60wghepBgorBgEEAYI3AwMBMYIXmTCC -# F5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsq -# hkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCAg9ge2t7LytHQcwsN3kRQ6J5nteGpm5jDEp+lGr91fbAIGZ2K0KsDd -# GBMyMDI1MDEwOTA2Mzc0OS42OThaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# TjozNjA1LTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB91ggdQTK+8L0AAEAAAH3MA0G -# CSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI0 -# MDcyNTE4MzEwNloXDTI1MTAyMjE4MzEwNlowgdMxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9w -# ZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjM2MDUt -# MDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0OdHTBNom6/uXKaEKP9r -# PITkT6QxF11tjzB0Nk1byDpPrFTHha3hxwSdTcr8Y0a3k6EQlwqy6ROz42e0R5eD -# W+dCoQapipDIFUOYp3oNuqwX/xepATEkY17MyXFx6rQW2NcWUJW3Qo2AuJ0HOtbl -# SpItQZPGmHnGqkt/DB45Fwxk6VoSvxNcQKhKETkuzrt8U6DRccQm1FdhmPKgDzgc -# fDPM5o+GnzbiMu6y069A4EHmLMmkecSkVvBmcZ8VnzFHTDkGLdpnDV5FXjVObAgb -# SM0cnqYSGfRp7VGHBRqyoscvR4bcQ+CV9pDjbJ6S5rZn1uA8hRhj09Hs33HRevt4 -# oWAVYGItgEsG+BrCYbpgWMDEIVnAgPZEiPAaI8wBGemE4feEkuz7TAwgkRBcUzLg -# Q4uvPqRD1A+Jkt26+pDqWYSn0MA8j0zacQk9q/AvciPXD9It2ez+mqEzgFRRsJGL -# tcf9HksvK8Jsd6I5zFShlqi5bpzf1Y4NOiNOh5QwW1pIvA5irlal7qFhkAeeeZqm -# op8+uNxZXxFCQG3R3s5pXW89FiCh9rmXrVqOCwgcXFIJQAQkllKsI+UJqGq9rmRA -# BJz5lHKTFYmFwcM52KWWjNx3z6odwz2h+sxaxewToe9GqtDx3/aU+yqNRcB8w0tS -# XUf+ylN4uk5xHEpLpx+ZNNsCAwEAAaOCAUkwggFFMB0GA1UdDgQWBBTfRqQzP3m9 -# PZWuLf1p8/meFfkmmDAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBf -# BgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmww -# bAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29m -# dC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0El -# MjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUF -# BwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEAN0ajafILeL6S -# QIMIMAXM1Qd6xaoci2mOrpR8vKWyyTsL3b83A7XGLiAbQxTrqnXvVWWeNst5YQD8 -# saO+UTgOLJdTdfUADhLXoK+RlwjfndimIJT9MH9tUYXLzJXKhZM09ouPwNsrn8YO -# LIpdAi5TPyN8Cl11OGZSlP9r8JnvomW00AoJ4Pl9rlg0G5lcQknAXqHa9nQdWp1Z -# xXqNd+0JsKmlR8tcANX33ClM9NnaClJExLQHiKeHUUWtqyLMl65TW6wRM7XlF7Y+ -# PTnC8duNWn4uLng+ON/Z39GO6qBj7IEZxoq4o3avEh9ba43UU6TgzVZaBm8VaA0w -# SwUe/pqpTOYFWN62XL3gl/JC2pzfIPxP66XfRLIxafjBVXm8KVDn2cML9IvRK02s -# 941Y5+RR4gSAOhLiQQ6A03VNRup+spMa0k+XTPAi+2aMH5xa1Zjb/K8u9f9M05U0 -# /bUMJXJDP++ysWpJbVRDiHG7szaca+r3HiUPjQJyQl2NiOcYTGV/DcLrLCBK2zG5 -# 03FGb04N5Kf10XgAwFaXlod5B9eKh95PnXKx2LNBgLwG85anlhhGxxBQ5mFsJGkB -# n0PZPtAzZyfr96qxzpp2pH9DJJcjKCDrMmZziXazpa5VVN36CO1kDU4ABkSYTXOM -# 8RmJXuQm7mUF3bWmj+hjAJb4pz6hT5UwggdxMIIFWaADAgECAhMzAAAAFcXna54C -# m0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp -# Y2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMy -# MjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0B -# AQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51 -# yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY -# 6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9 -# cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN -# 7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDua -# Rr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74 -# kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2 -# K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5 -# TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZk -# i1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9Q -# BXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3Pmri -# Lq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUC -# BBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJl -# pxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIB -# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9y -# eS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUA -# YgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU -# 1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2Ny -# bC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIw -# MTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0w -# Ni0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/yp -# b+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulm -# ZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM -# 9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECW -# OKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4 -# FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3Uw -# xTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPX -# fx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVX -# VAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGC -# onsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU -# 5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEG -# ahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# TjozNjA1LTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUAb28KDG/xXbNBjmM7/nqw3bgrEOaggYMw -# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsF -# AAIFAOspie8wIhgPMjAyNTAxMDgyMzM0MDdaGA8yMDI1MDEwOTIzMzQwN1owdDA6 -# BgorBgEEAYRZCgQBMSwwKjAKAgUA6ymJ7wIBADAHAgEAAgIKqTAHAgEAAgITgzAK -# AgUA6yrbbwIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIB -# AAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQCbodZ7Pb1mwCj2 -# G1IGl/lPyTWeJ47OgUaM6Y7Y3Es+K2O+I17IqpzE4zUAMOUxzgMG0xHLsX2MZ7zV -# HMK6k4hVdH5OX7bUjsOdNU+ICw4Gt0MWGgMDVoq7g8AnUwi2qunDmeVFvteJFBNU -# TlorzT4JvNINF4cOVQgoHG6VEPNlY3QWq6hLCf11Ru0npscdLNRP5jMZsQWv7pBu -# 4DsbgP2dI4//EF82C8I2T8G788bT3OyZM3vI792Jh9GgRHIiT0eyFcZdENMWBvo/ -# DJZvM9mk0S4asHG7ntVDongqzkN0V4JHmQQmxkLAbpp2opdVrXIsKF3WLSaCeZa5 -# rBC4N5WsMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAH3WCB1BMr7wvQAAQAAAfcwDQYJYIZIAWUDBAIBBQCgggFKMBoGCSqG -# SIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgx2RHYFDmSQah -# ytZltv+up2ppoNuXlkAAq6G0MKEFJUgwgfoGCyqGSIb3DQEJEAIvMYHqMIHnMIHk -# MIG9BCAh2pjaa3ca0ecYuhu60uYHP/IKnPbedbVQJ5SoIH5Z4jCBmDCBgKR+MHwx -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1p -# Y3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB91ggdQTK+8L0AAEAAAH3 -# MCIEINMNhHNRkvrylXUcZSz7su05uE4QHFSi+/6mPpJEEVX4MA0GCSqGSIb3DQEB -# CwUABIICAFUAblq6uviTCQVnfNtviRm17cVcMNrAaJggpUznDdHO1G8tKCCMxf/4 -# YZFtvD/gbo9jsVTdmDaCpFA8k54adcjco2U4wYlCRDtm0bPR4gcW6YAPa2i7xnCN -# sFlihqcbBRwUh2wqao7hO6YMWW8qYfnLdgcEbfaGp3yft31HgHHbNMRqWCGvHJiQ -# qo1Dwv+DRkfxnx8hVJNhYkFM6Y0L9BX7IFq9lsIwYnaZD89XUoZ/5oGR4owmYlzP -# N16NdY+kXXW6MFdfhMQhWUBDshERMoL4D+IO4JmyNfbuXCA2ZR2QExmWo40FFBrY -# dFjJ1/VKc44ooTbuaRK4VIGSwjclQj8IAiNRh3CAmD4cnB3hyAt49db8uUgvLOJ8 -# t+yF4Ag1YKBowPyMtRSqfhZd73mEZsdcoV/OectF5XGcYVfxR/UWIt/WyT1rkbZM -# LOufLqa1qSib9kGPeb1ChWncuT46JO9VRs50pyEHZ9bPw0bttblmHareQULNct/X -# RqRpn9fcc6exazTelxlPPhv+Aa49pYjXoNTdy0uHCJBUViVR43sJiSrINWcB/YS9 -# bkBgl/FWooMaeaxXix5HfsIbnWzT1GC1fdqKVjuAGbQcMknfSeNA2oewiiYnHYCi -# ft9VXYWOL/VjEpgcEZzt+6+JmSgdrsRwou+Nq506h1MP6Et8rsCi -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Remove-AzFunctionApp.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Remove-AzFunctionApp.ps1 deleted file mode 100644 index 42d1be143dd0..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Remove-AzFunctionApp.ps1 +++ /dev/null @@ -1,340 +0,0 @@ -function Remove-AzFunctionApp { - [OutputType([System.Boolean])] - [CmdletBinding(DefaultParameterSetName='ByName', SupportsShouldProcess=$true, ConfirmImpact='Medium')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Description('Deletes a function app.')] - param( - [Parameter(ParameterSetName='ByName', Mandatory=$true, HelpMessage='The name of function app.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - [ValidateNotNullOrEmpty()] - ${Name}, - - [Parameter(ParameterSetName='ByName', Mandatory=$true)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - [ValidateNotNullOrEmpty()] - ${ResourceGroupName}, - - [Parameter(ParameterSetName='ByName', HelpMessage='The Azure subscription ID.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - [ValidateNotNullOrEmpty()] - ${SubscriptionId}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory=$true, ValueFromPipeline=$true)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - [ValidateNotNull()] - ${InputObject}, - - [Parameter(HelpMessage='Returns true when the command succeeds.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(HelpMessage='Forces the cmdlet to remove the function app without prompting for confirmation.')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter(HelpMessage='The credentials, account, tenant, and subscription used for communication with Azure.')] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} - ) - process { - - RegisterFunctionsTabCompleters - - # The input object is an ISite. This needs to be transformed into a FunctionsIdentity - if ($PsCmdlet.ParameterSetName -eq "ByObjectInput") - { - if ($PSBoundParameters.ContainsKey("InputObject")) - { - $PSBoundParameters.Remove("InputObject") | Out-Null - } - - $functionsIdentity = CreateFunctionsIdentity -InputObject $InputObject - $PSBoundParameters.Add("InputObject", $functionsIdentity) | Out-Null - - # Set the name variable for the ShouldProcess and ShouldContinue calls - $Name = $InputObject.Name - } - - # Set the option to not delete an empty App Service plan - $PSBoundParameters.Add("DeleteEmptyServerFarm", $false) | Out-Null - - if ($PsCmdlet.ShouldProcess($Name, "Deleting function app")) - { - if ($Force.IsPresent -or $PsCmdlet.ShouldContinue("Delete function app '$Name'? This operation cannot be undone. Are you sure?", "Deleting function app")) - { - # Remove bound parameters from the dictionary that cannot be process by the intenal cmdlets - if ($PSBoundParameters.ContainsKey("Force")) - { - $PSBoundParameters.Remove("Force") | Out-Null - } - - Az.Functions.internal\Remove-AzFunctionApp @PSBoundParameters - } - } - } -} - -# SIG # Begin signature block -# MIIoUgYJKoZIhvcNAQcCoIIoQzCCKD8CAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAbX5TTAugETLqa -# zEArYTu7O4xvqPlmTXWJcvdFTi99TaCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIIeE -# Ex6RJmbnsZc1pZ0qmurpo1a9KjYxAT6K5XIsYItCMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEALkLB5nhMSPydlzPxf9arp7qQN5DX/aPyV+3x -# g7RnbEh4rtMNSJmgs9M/qMhzZuVqWnCkqnMk6qpxfTD1OujJsvML9QCYZTSfRRfG -# WU1a7Zy7s1wJOA/Y2kbOvPmRMYwP7JYXXXbwaXEjMCBCpQqjkNQ+Hk1MZoyl2PK7 -# SqThrcL8M/7q1PDPWFI7FCtKsTeJLSkOLtYrJRS2X/ihmRCBzr+PJxMc8AzQdN+G -# d9EvzINkMncpZ9nuHrrYkBwH624eMmpwJEIopDrgchhLYREaUpp6lARSKbNH2e4o -# 5Z4AXB1S5RWdA0omQuUSmA8j172TsjhjR8qU2IKaUQ7OVoaS46GCF60wghepBgor -# BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCDiRSvOvN0b6ewsqC3UDXdGS4+yZ2z7dRSb -# zAlZCKz/uAIGZ2K0KsDiGBMyMDI1MDEwOTA2Mzc0OS45NTZaMASAAgH0oIHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjozNjA1LTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB91gg -# dQTK+8L0AAEAAAH3MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzEwNloXDTI1MTAyMjE4MzEwNlowgdMxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv -# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs -# ZCBUU1MgRVNOOjM2MDUtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA -# 0OdHTBNom6/uXKaEKP9rPITkT6QxF11tjzB0Nk1byDpPrFTHha3hxwSdTcr8Y0a3 -# k6EQlwqy6ROz42e0R5eDW+dCoQapipDIFUOYp3oNuqwX/xepATEkY17MyXFx6rQW -# 2NcWUJW3Qo2AuJ0HOtblSpItQZPGmHnGqkt/DB45Fwxk6VoSvxNcQKhKETkuzrt8 -# U6DRccQm1FdhmPKgDzgcfDPM5o+GnzbiMu6y069A4EHmLMmkecSkVvBmcZ8VnzFH -# TDkGLdpnDV5FXjVObAgbSM0cnqYSGfRp7VGHBRqyoscvR4bcQ+CV9pDjbJ6S5rZn -# 1uA8hRhj09Hs33HRevt4oWAVYGItgEsG+BrCYbpgWMDEIVnAgPZEiPAaI8wBGemE -# 4feEkuz7TAwgkRBcUzLgQ4uvPqRD1A+Jkt26+pDqWYSn0MA8j0zacQk9q/AvciPX -# D9It2ez+mqEzgFRRsJGLtcf9HksvK8Jsd6I5zFShlqi5bpzf1Y4NOiNOh5QwW1pI -# vA5irlal7qFhkAeeeZqmop8+uNxZXxFCQG3R3s5pXW89FiCh9rmXrVqOCwgcXFIJ -# QAQkllKsI+UJqGq9rmRABJz5lHKTFYmFwcM52KWWjNx3z6odwz2h+sxaxewToe9G -# qtDx3/aU+yqNRcB8w0tSXUf+ylN4uk5xHEpLpx+ZNNsCAwEAAaOCAUkwggFFMB0G -# A1UdDgQWBBTfRqQzP3m9PZWuLf1p8/meFfkmmDAfBgNVHSMEGDAWgBSfpxVdAF5i -# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv -# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB -# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw -# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp -# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud -# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF -# AAOCAgEAN0ajafILeL6SQIMIMAXM1Qd6xaoci2mOrpR8vKWyyTsL3b83A7XGLiAb -# QxTrqnXvVWWeNst5YQD8saO+UTgOLJdTdfUADhLXoK+RlwjfndimIJT9MH9tUYXL -# zJXKhZM09ouPwNsrn8YOLIpdAi5TPyN8Cl11OGZSlP9r8JnvomW00AoJ4Pl9rlg0 -# G5lcQknAXqHa9nQdWp1ZxXqNd+0JsKmlR8tcANX33ClM9NnaClJExLQHiKeHUUWt -# qyLMl65TW6wRM7XlF7Y+PTnC8duNWn4uLng+ON/Z39GO6qBj7IEZxoq4o3avEh9b -# a43UU6TgzVZaBm8VaA0wSwUe/pqpTOYFWN62XL3gl/JC2pzfIPxP66XfRLIxafjB -# VXm8KVDn2cML9IvRK02s941Y5+RR4gSAOhLiQQ6A03VNRup+spMa0k+XTPAi+2aM -# H5xa1Zjb/K8u9f9M05U0/bUMJXJDP++ysWpJbVRDiHG7szaca+r3HiUPjQJyQl2N -# iOcYTGV/DcLrLCBK2zG503FGb04N5Kf10XgAwFaXlod5B9eKh95PnXKx2LNBgLwG -# 85anlhhGxxBQ5mFsJGkBn0PZPtAzZyfr96qxzpp2pH9DJJcjKCDrMmZziXazpa5V -# VN36CO1kDU4ABkSYTXOM8RmJXuQm7mUF3bWmj+hjAJb4pz6hT5UwggdxMIIFWaAD -# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD -# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe -# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv -# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy -# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 -# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 -# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu -# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl -# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg -# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I -# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 -# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ -# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy -# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y -# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H -# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB -# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW -# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B -# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB -# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB -# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL -# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv -# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr -# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS -# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq -# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 -# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv -# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak -# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK -# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 -# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ -# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep -# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk -# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg -# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ -# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjozNjA1LTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAb28KDG/xXbNB -# jmM7/nqw3bgrEOaggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDANBgkqhkiG9w0BAQsFAAIFAOspie8wIhgPMjAyNTAxMDgyMzM0MDdaGA8yMDI1 -# MDEwOTIzMzQwN1owdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA6ymJ7wIBADAHAgEA -# AgIKqTAHAgEAAgITgzAKAgUA6yrbbwIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor -# BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUA -# A4IBAQCbodZ7Pb1mwCj2G1IGl/lPyTWeJ47OgUaM6Y7Y3Es+K2O+I17IqpzE4zUA -# MOUxzgMG0xHLsX2MZ7zVHMK6k4hVdH5OX7bUjsOdNU+ICw4Gt0MWGgMDVoq7g8An -# Uwi2qunDmeVFvteJFBNUTlorzT4JvNINF4cOVQgoHG6VEPNlY3QWq6hLCf11Ru0n -# pscdLNRP5jMZsQWv7pBu4DsbgP2dI4//EF82C8I2T8G788bT3OyZM3vI792Jh9Gg -# RHIiT0eyFcZdENMWBvo/DJZvM9mk0S4asHG7ntVDongqzkN0V4JHmQQmxkLAbpp2 -# opdVrXIsKF3WLSaCeZa5rBC4N5WsMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTACEzMAAAH3WCB1BMr7wvQAAQAAAfcwDQYJYIZIAWUD -# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B -# CQQxIgQgkBoqJYpn/1QNNJE3kL5dDNs+z32q/SOj75V4pKYN97MwgfoGCyqGSIb3 -# DQEJEAIvMYHqMIHnMIHkMIG9BCAh2pjaa3ca0ecYuhu60uYHP/IKnPbedbVQJ5So -# IH5Z4jCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB -# 91ggdQTK+8L0AAEAAAH3MCIEINMNhHNRkvrylXUcZSz7su05uE4QHFSi+/6mPpJE -# EVX4MA0GCSqGSIb3DQEBCwUABIICALrSfejXUBYDmGy69oBaIphyBoKQE+cTXBb3 -# M8gmvw9LFqNUpfsS2BqsbceUPA+X9kZpNwHDgV75ccHoJYUO174wCnmSDHXXv2Tu -# WVhIoOYBY31McZEMI3IXjCOT+ngbyw8aPKQlxYV9xVHs28X8kblmHU8siXkcv+FJ -# wvpW6ENjHy2/PJNVcX3G1fCC+iMAs252fDdLMdIg8GEOE8uzEDGX4hRYFhEzVnIp -# kxOx/ofi3QEH7MRp5zFz+/ZvzC7L8ofNbnLNPBmVXJvQbaseNkjfoLeAyxEDWSfJ -# pCJrUh0tWHH4kOnaQNExSJrfDyiOi1Rgeu7cKdmwvwDKFoBD19DUurGyGO3v5532 -# PxXfUbcMMDzJ0h+bhzKdTB+mjXCEfdIJ0t6lZ2KUmusSzrMi1Lgdldvcrewr4a5B -# hQu+Q4lVypWh63kyfW/bXo35VVLfl4rf8BK7czDpqOhSuDujV+FzHZpP3vRHZ1sI -# rKDWxb1vHi4Lt0s7g/VpYEJksQtfo3bYpVV0+/+Y4KgKHfN3gvmPP4qtFAiNA9YD -# R09OmfPqynp7uNbGcWwoe5WC5hab9qaNnz/iY7SXMyhgp+84fR6jxGKQja1inIXj -# IIAZmKSc89G2F6qxtv0xw35GOoWM27lJipB737Pidvqvn6+5e/9ScdKYuF+OY13k -# 55JmDNzq -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Remove-AzFunctionAppPlan.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Remove-AzFunctionAppPlan.ps1 deleted file mode 100644 index 43a4fe4d63de..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Remove-AzFunctionAppPlan.ps1 +++ /dev/null @@ -1,336 +0,0 @@ -function Remove-AzFunctionAppPlan { - [OutputType([System.Boolean])] - [CmdletBinding(DefaultParameterSetName='ByName', SupportsShouldProcess=$true, ConfirmImpact='Medium')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Description('Deletes a function app plan.')] - param( - [Parameter(ParameterSetName='ByName', Mandatory=$true, HelpMessage='The name of function app.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - [ValidateNotNullOrEmpty()] - ${Name}, - - [Parameter(ParameterSetName='ByName', Mandatory=$true)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - [ValidateNotNullOrEmpty()] - ${ResourceGroupName}, - - [Parameter(ParameterSetName='ByName', HelpMessage='The Azure subscription ID.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - [ValidateNotNullOrEmpty()] - ${SubscriptionId}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory=$true, ValueFromPipeline=$true)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan] - [ValidateNotNull()] - ${InputObject}, - - [Parameter(HelpMessage='Returns true when the command succeeds.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(HelpMessage='Forces the cmdlet to remove the function app plan without prompting for confirmation.')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter(HelpMessage='The credentials, account, tenant, and subscription used for communication with Azure.')] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} - ) - - process { - - RegisterFunctionsTabCompleters - - if ($PsCmdlet.ParameterSetName -eq "ByObjectInput") - { - if ($PSBoundParameters.ContainsKey("InputObject")) - { - $PSBoundParameters.Remove("InputObject") | Out-Null - } - - $functionsIdentity = CreateFunctionsIdentity -InputObject $InputObject - $PSBoundParameters.Add("InputObject", $functionsIdentity) | Out-Null - - # Set the name variable for the ShouldProcess and ShouldContinue calls - $Name = $InputObject.Name - } - - if ($PsCmdlet.ShouldProcess($Name, "Deleting function app plan")) - { - if ($Force.IsPresent -or $PsCmdlet.ShouldContinue("Delete function app plan '$Name'? This operation cannot be undone. Are you sure?", "Deleting function app plan")) - { - # Remove bound parameters from the dictionary that cannot be process by the intenal cmdlets - if ($PSBoundParameters.ContainsKey("Force")) - { - $PSBoundParameters.Remove("Force") | Out-Null - } - - Az.Functions.internal\Remove-AzFunctionAppPlan @PSBoundParameters - } - } - } -} - -# SIG # Begin signature block -# MIIoRgYJKoZIhvcNAQcCoIIoNzCCKDMCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDlmP7U+CnsqG3N -# +viyid5z1UD9Q00f9kwHsxB7Zh4vyKCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEINdzTr1O4WAkPBl1Nk68yVXM -# qWUUTaDrqcgk6trJA0PGMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEADtEq+T7aR5MoJD8HTdZY+zfVndGINyY6vo7hLoQNIpyiMwt7H8fRCzQl -# s0j0gh/pCWWGLdTpoSztJV/ECJJJkL+udfeYTDxfSxgZlpZkE+uGEgdd/4eF9R9D -# /qlstrKnHqAJrdDKc/n9G7y4YQidLoWxcNjAPt9MjPfntVy8ZfiqLs8vPPwRtIB7 -# Q49j+Usedc50J3LNmWc/A3InzYO9spCDubCRodv73UMWYULlN4jxntzgvVOKimpH -# 0cF1iVEmptluwPgd7GuRQrcwxFn/6zPWBSM/53g1kBkCj+FkKudwQZpDPjb+T6Bo -# BRm2JXLspOlyuqod7Iuuq5dnS1XQN6GCF7AwghesBgorBgEEAYI3AwMBMYIXnDCC -# F5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsq -# hkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCCImJ9N8MBdMtq84RBCY+o8cP5WuxoNg1s/vadeqIeLLAIGZ2KyTuAd -# GBMyMDI1MDEwOTA2Mzc0OC4xMDVaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo2QjA1LTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB9oMvJmpUXSLBAAEAAAH2MA0G -# CSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI0 -# MDcyNTE4MzEwNFoXDTI1MTAyMjE4MzEwNFowgdMxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9w -# ZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjZCMDUt -# MDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0UJeLMR/N9WPBZhuKVFF -# +eWJZ68Wujdj4X6JR05cxO5CepNXo17rVazwWLkm5AjaVh19ZVjDChHzimxsoaXx -# Nu8IDggKwpXvpAAItv4Ux50e9S2uVwfKv57p9JKG+Q7VONShujl1NCMkcgSrPdmd -# /8zcsmhzcNobLomrCAIORZ8IwhYy4siVQlf1NKhlyAzmkWJD0N+60IiogFBzg3yI -# SsvroOx0x1xSi2PiRIQlTXE74MggZDIDKqH/hb9FT2kK/nV/aXjuo9LMrrRmn44o -# YYADe/rO95F+SG3uuuhf+H4IriXr0h9ptA6SwHJPS2VmbNWCjQWq5G4YkrcqbPMa -# x7vNXUwu7T65E8fFPd1IuE9RsG4TMAV7XkXBopmPNfvL0hjxg44kpQn384V46o+z -# dQqy5K9dDlWm/J6vZtp5yA1PyD3w+HbGubS0niEQ1L6wGOrPfzIm0FdOn+xFo48E -# Rl+Fxw/3OvXM5CY1EqnzEznPjzJc7OJwhJVR3VQDHjBcEFTOvS9E0diNu1eocw+Z -# Ckz4Pu/oQv+gqU+bfxL8e7PFktfRDlM6FyOzjP4zuI25gD8tO9zJg6g6fRpaZc43 -# 9mAbkl3zCVzTLDgchv6SxQajJtvvoQaZxQf0tRiPcbr2HWfMoqqd9uiQ0hTUEhG4 -# 4FBSTeUPZeEenRCWadCW4G8CAwEAAaOCAUkwggFFMB0GA1UdDgQWBBRIwZsJuOcJ -# fScPWcXZuBA4B89K8jAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBf -# BgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmww -# bAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29m -# dC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0El -# MjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUF -# BwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEA13kBirH1cHu1 -# WYR1ysj125omGtQ0PaQkEzwGb70xtqSoI+svQihsgdTYxaPfp2IVFdgjaMaBi81w -# B8/nu866FfFKKdhdp3wnMZ91PpP4Ooe7Ncf6qICkgSuwgdIdQvqE0h8VQ5QW5sDV -# 4Q0Jnj4f7KHYx4NiM8C4jTw8SQtsuxWiTH2Hikf3QYB71a7dB9zgHOkW0hgUEeWO -# 9mh2wWqYS/Q48ASjOqYw/ha54oVOff22WaoH+/Hxd9NTEU/4vlvsRIMWT0jsnNI7 -# 1jVArT4Q9Bt6VShWzyqraE6SKUoZrEwBpVsI0LMg2X3hOLblC1vxM3+wMyOh97aF -# Os7sFnuemtI2Mfj8qg16BZTJxXlpPurWrG+OBj4BoTDkC9AxXYB3yEtuwMs7pRWL -# yxIxw/wV9THKUGm+x+VE0POLwkrSMgjulSXkpfELHWWiCVslJbFIIB/4Alv+jQJS -# KAJuo9CErbm2qeDk/zjJYlYaVGMyKuYZ+uSRVKB2qkEPcEzG1dO9zIa1Mp32J+zz -# W3P7suJfjw62s3hDOLk+6lMQOR04x+2o17G3LceLkkxJm41ErdiTjAmdClen9yl6 -# HgMpGS4okjFCJX+CpOFX7gBA3PVxQWubisAQbL5HgTFBtQNEzcCdh1GYw/6nzzNN -# t+0GQnnobBddfOAiqkzvItqXjvGyK1QwggdxMIIFWaADAgECAhMzAAAAFcXna54C -# m0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp -# Y2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMy -# MjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0B -# AQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51 -# yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY -# 6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9 -# cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN -# 7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDua -# Rr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74 -# kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2 -# K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5 -# TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZk -# i1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9Q -# BXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3Pmri -# Lq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUC -# BBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJl -# pxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIB -# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9y -# eS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUA -# YgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU -# 1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2Ny -# bC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIw -# MTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0w -# Ni0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/yp -# b+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulm -# ZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM -# 9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECW -# OKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4 -# FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3Uw -# xTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPX -# fx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVX -# VAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGC -# onsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU -# 5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEG -# ahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo2QjA1LTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUAFU9eSpdxs0a06JFIuGFHIj/I+36ggYMw -# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsF -# AAIFAOspiBIwIhgPMjAyNTAxMDgyMzI2MTBaGA8yMDI1MDEwOTIzMjYxMFowdzA9 -# BgorBgEEAYRZCgQBMS8wLTAKAgUA6ymIEgIBADAKAgEAAgIOAwIB/zAHAgEAAgIS -# UzAKAgUA6yrZkgIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAow -# CAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQAdRwwAwjDA -# Wm10/TIJvIG7wBUH08MwBPz63PfhWXesZ/QIWGW4BTb5vyzaOISHORsM+oawsZFD -# ejqY4DgJLUiog9yUKtL9zfy7jLhMgzkG+rCQxFmLiTtQ3fnAOe17rmUPlx5dTlEb -# spLDPGNCjcd3mLurKGu0mv4+3olDoz3sFgc0koySfE2y3Qs1qeUAr05QmNTrkmh5 -# rrrwhHYY0BUBceZoS13mmu6oR58N+ucnp4YOqUoHVlxOeZ5NzFJIYhF/iclbPJgL -# ugQb96rZJ2TZUzlYyvvqmrIr7OPxPI+Muk9e8w5mkF5MP23DB163qH0FSwJqehMO -# Qq8Hd7eCIN1+MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB -# IDIwMTACEzMAAAH2gy8malRdIsEAAQAAAfYwDQYJYIZIAWUDBAIBBQCgggFKMBoG -# CSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgvELVDprc -# yLbGKEh+h0of/uvmaY6oziCvpNU7HBL2emMwgfoGCyqGSIb3DQEJEAIvMYHqMIHn -# MIHkMIG9BCArYUzxlF6m5USLS4f8NXL/8aoNEVdsCZRmF+LlQjG2ojCBmDCBgKR+ -# MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS -# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMT -# HU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB9oMvJmpUXSLBAAEA -# AAH2MCIEICKBijkDRDE8uRpIHw034QmoM2z8EETENJTotJr922hMMA0GCSqGSIb3 -# DQEBCwUABIICAEQRuyo67uLFWy0sbQxabndSYIOhrTRDKn4X9mZtyMlWglcL2yag -# N/guiomxkF53bxaZHkJ/P7EhmlQNMoqMvb1xcLz/V/bcwS+2h7AlfJZJ9yBDodfn -# rpb+1PvbBWXbfDtn/qNZc3BZ6n8IxQZ/lKJ8O66oZY/2QN3A8VIFosOBRxOi1pnE -# P+07fNvDz2U+4lTvUYuBNIFBj3eO2r725juiswiBl0vqc1Rocx3D6fEVcEivPrIm -# btT/ILzbQEgvzQXE7d/nkHWfA75zSAkJZwsLyaWtU16KcsAT2XPogNbZzI8pEA3c -# zD98QktMqiVLkN+Agazi7iRhvjGKYjeOYjsVA1psLzBP/pKpkp8Jd/uvv9Q/v6y5 -# hyCc1TqicQiTtE/hnCoWaIVB9yrRu6rsn+pAhWU42w5Temdhrb6U+tfN9k9rZoDn -# 6e2kCyNlXYCDksjK7VayuKNylVY5tTOpWthyZCYus8wzv6CMnXyB8o2hoaUSHFQg -# pnKWvemou6PqJKyDFkAfEB6SfINCcE+t4WLWmmb74ysqXs6LVyvw47xsPvDEqHsg -# SxSzGT9nykKtFJ0tl/OBGnqUg+ryv7NpvgkpTN0veziK6Sb7ZSxVy8IpumFeYVvH -# 7NKAPgyvclkOeGZm5IIdF/RHXahod223uvnYd/8+3aORV/lzYE7D7toT -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Remove-AzFunctionAppSetting.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Remove-AzFunctionAppSetting.ps1 deleted file mode 100644 index fca9827205d8..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Remove-AzFunctionAppSetting.ps1 +++ /dev/null @@ -1,387 +0,0 @@ -function Remove-AzFunctionAppSetting { - [OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Description('Removes app settings from a function app.')] - [CmdletBinding(DefaultParameterSetName='ByName', SupportsShouldProcess=$true, ConfirmImpact='Medium')] - param( - [Parameter(ParameterSetName='ByName', Mandatory=$true, HelpMessage='Name of the function app.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [ValidateNotNullOrEmpty()] - [System.String] - ${Name}, - - [Parameter(ParameterSetName='ByName', Mandatory=$true, HelpMessage='Name of the resource group to which the resource belongs.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [ValidateNotNullOrEmpty()] - [System.String] - ${ResourceGroupName}, - - [Parameter(ParameterSetName='ByName', HelpMessage='The Azure subscription ID.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [ValidateNotNullOrEmpty()] - [System.String] - ${SubscriptionId}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory=$true, ValueFromPipeline=$true)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - [ValidateNotNull()] - ${InputObject}, - - [Parameter(Mandatory=$true, HelpMessage='List of function app settings to be removed from the function app.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [ValidateNotNullOrEmpty()] - [String[]] - ${AppSettingName}, - - [Parameter(HelpMessage='Forces the cmdlet to remove function app setting without prompting for confirmation.')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The credentials, account, tenant, and subscription used for communication with Azure. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} - ) - process { - - RegisterFunctionsTabCompleters - - # Remove bound parameters from the dictionary that cannot be process by the intenal cmdlets - $paramsToRemove = @( - "AppSettingName" - "Force" - ) - foreach ($paramName in $paramsToRemove) - { - if ($PSBoundParameters.ContainsKey($paramName)) - { - $PSBoundParameters.Remove($paramName) | Out-Null - } - } - - if ($PsCmdlet.ParameterSetName -eq "ByObjectInput") - { - if ($PSBoundParameters.ContainsKey("InputObject")) - { - $PSBoundParameters.Remove("InputObject") | Out-Null - } - - $Name = $InputObject.Name - $ResourceGroupName = $InputObject.ResourceGroupName - - $PSBoundParameters.Add("Name", $Name) | Out-Null - $PSBoundParameters.Add("ResourceGroupName", $ResourceGroupName) | Out-Null - $PSBoundParameters.Add("SubscriptionId", $InputObject.SubscriptionId) | Out-Null - } - - if ($AppSettingName.Count -eq 0) - { - return - } - - $params = GetParameterKeyValues -PSBoundParametersDictionary $PSBoundParameters ` - -ParameterList @("SubscriptionId", "HttpPipelineAppend", "HttpPipelinePrepend") - $currentAppSettings = $null - $settings = $null - $settings = Az.Functions.internal\Get-AzWebAppApplicationSetting -Name $Name -ResourceGroupName $ResourceGroupName @params - if ($null -ne $settings) - { - $currentAppSettings = ConvertWebAppApplicationSettingToHashtable -ApplicationSetting $settings -ShowAllAppSettings - } - - foreach ($name in $AppSettingName) - { - if (-not $currentAppSettings.ContainsKey($name)) - { - Write-Warning "App setting name '$name' does not exist. Skipping..." - } - else - { - $currentAppSettings.Remove($name) - } - } - - $newAppSettings = NewAppSettingObject -CurrentAppSetting $currentAppSettings - $shouldPromptForConfirmation = ContainsReservedFunctionAppSettingName -AppSettingName $AppSettingName - - $PSBoundParameters.Add("AppSetting", $newAppSettings) | Out-Null - - if ($PsCmdlet.ShouldProcess($Name, "Deleting function app setting")) - { - if ($shouldPromptForConfirmation) - { - $message = "You are about to delete app settings that are used to configure your function app '$Name'. " - $message += "Doing this could leave your function app in an inconsistent state. Are you sure?" - - if ($Force.IsPresent -or $PsCmdlet.ShouldContinue($message, "Removing function app configuration settings")) - { - Az.Functions.internal\Set-AzWebAppApplicationSetting @PSBoundParameters | Out-Null - } - } - else - { - Az.Functions.internal\Set-AzWebAppApplicationSetting @PSBoundParameters | Out-Null - } - } - } -} - -# SIG # Begin signature block -# MIIoOwYJKoZIhvcNAQcCoIIoLDCCKCgCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDOjuE3Rj8ClWOR -# 7Yeat5Fa9Saku1neniCB+eqiy2U0IqCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGgwwghoIAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIFVt -# /yTcVnBXdRAMSxg3CqgN1KEFiJnIhn0fdo+7ocHqMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAcR54vbj+H2AH37A9qYrjJMBWHt41Mg8X0iub -# JqTIRv5h7IZdM2/Ui3cjZZdham7KBKYiHl0rk84UWqG6bdR2FmTVzYkFnIb3N7RL -# 3HHDMqTeVcr+p4tiGqxPZRe/ZodFW0eO2veDDke3wKDja0qPB0uDnk4tLKefO5Lz -# PYRsNRt0o3eGHwUndyZJT5wJw8r3+PjA8s9XXh071ZLiruv2NEn/f3GLZcleEFyS -# LvDCTEcEoPKKdhvUBwSXEHyXW9hXcJ7CWfm87jTi6mlp4R5yoJ1g8FA8LOUpa1em -# 41BctiQ7zICtV2TMALliO0/RSF/+UxbAxsngJusJR48skZ5mIaGCF5YwgheSBgor -# BgEEAYI3AwMBMYIXgjCCF34GCSqGSIb3DQEHAqCCF28wghdrAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFRBgsqhkiG9w0BCRABBKCCAUAEggE8MIIBOAIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCBk1girbUO+ZeOX8Nxo+0niwPv1TrlnAYza -# 67gpyFF4hQIGZ2mP/mdmGBIyMDI1MDEwOTA2Mzc0OS4xMVowBIACAfSggdGkgc4w -# gcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS -# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsT -# HE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQg -# VFNTIEVTTjpFMDAyLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUt -# U3RhbXAgU2VydmljZaCCEe0wggcgMIIFCKADAgECAhMzAAAB7gXTAjCymp2nAAEA -# AAHuMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw -# MB4XDTIzMTIwNjE4NDU0NFoXDTI1MDMwNTE4NDU0NFowgcsxCzAJBgNVBAYTAlVT -# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVy -# aWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjpFMDAyLTA1 -# RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZTCC -# AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL7xvKXXooSJrzEpLi9UvtEQ -# 45HsvNgItcS1aB6rI5WWvO4TP4CgJri0EYRKNsdNcQJ4w7A/1M94popqV9NTldIa -# OkmGkbHn1/EwmhNhY/PMPQ7ZECXIGY4EGaIsNdENAkvVG24CO8KIu6VVB6I8jxXv -# 4eFNHf3VNsLVt5LHBd90ompjWieMNrCoMkCa3CwD+CapeAfAX19lZzApK5eJkFNt -# Tl9ybduGGVE3Dl3Tgt3XllbNWX9UOn+JF6sajYiz/RbCf9rd4Y50eu9/Aht+TqVW -# rBs1ATXU552fa69GMpYTB6tcvvQ64Nny8vPGvLTIR29DyTL5V+ryZ8RdL3Ttjus3 -# 8dhfpwKwLayjJcbc7AK0sDujT/6Qolm46sPkdStLPeR+qAOWZbLrvPxlk+OSIMLV -# 1hbWM3vu3mJKXlanUcoGnslTxGJEj69jaLVxvlfZESTDdas1b+Nuh9cSz23huB37 -# JTyyAqf0y1WdDrmzpAbvYz/JpRkbYcwjfW2b2aigfb288E72MMw4i7QvDNROQhZ+ -# WB3+8RZ9M1w9YRCPt+xa5KhW4ne4GrA2ZFKmZAPNJ8xojO7KzSm9XWMVaq2rDAJx -# pj9Zexv9rGTEH/MJN0dIFQnxObeLg8z2ySK6ddj5xKofnyNaSkdtssDc5+yzt74l -# syMqZN1yOZKRvmg3ypTXAgMBAAGjggFJMIIBRTAdBgNVHQ4EFgQUEIjNPxrZ3CCe -# vfvF37a/X9x2pggwHwYDVR0jBBgwFoAUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXwYD -# VR0fBFgwVjBUoFKgUIZOaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9j -# cmwvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3JsMGwG -# CCsGAQUFBwEBBGAwXjBcBggrBgEFBQcwAoZQaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIw -# MjAxMCgxKS5jcnQwDAYDVR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcD -# CDAOBgNVHQ8BAf8EBAMCB4AwDQYJKoZIhvcNAQELBQADggIBAHdnIC9rYQo5ZJWk -# GdiTNfx/wZmNo6znvsX2jXgCeH2UrLq1LfjBeg9cTJCnW/WIjusnNlUbuulTOdrL -# af1yx+fenrLuRiQeq1K6AIaZOKIGTCEV9IHIo8jTwySWC8m8pNlvrvfIZ+kXA+ND -# Bl4joQ+P84C2liRPshReoySLUJEwkqB5jjBREJxwi6N1ZGShW/gner/zsoTSo9CY -# BH1+ow3GMjdkKVXEDjCIze01WVFsX1KCk6eNWjc/8jmnwl3jWE1JULH/yPeoztot -# Iq0PM4RQ2z5m2OHOeZmBR3v8BYcOHAEd0vntMj2HueJmR85k5edxiwrEbiCvJOyF -# TobqwBilup0wT/7+DW56vtUYgdS0urdbQCebyUB9L0+q2GyRm3ngkXbwId2wWr/t -# dUG0WXEv8qBxDKUk2eJr5qeLFQbrTJQO3cUwZIkjfjEb00ezPcGmpJa54a0mFDlk -# 3QryO7S81WAX4O/TmyKs+DR+1Ip/0VUQKn3ejyiAXjyOHwJP8HfaXPUPpOu6TgTN -# zDsTU6G04x/sMeA8xZ/pY51id/4dpInHtlNcImxbmg6QzSwuK3EGlKkZyPZiOc3O -# cKmwQ9lq3SH7p3u6VFpZHlEcBTIUVD2NFrspZo0Z0QtOz6cdKViNh5CkrlBJeOKB -# 0qUtA8GVf73M6gYAmGhl+umOridAMIIHcTCCBVmgAwIBAgITMwAAABXF52ueAptJ -# mQAAAAAAFTANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNh -# dGUgQXV0aG9yaXR5IDIwMTAwHhcNMjEwOTMwMTgyMjI1WhcNMzAwOTMwMTgzMjI1 -# WjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQD -# Ex1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCCAiIwDQYJKoZIhvcNAQEB -# BQADggIPADCCAgoCggIBAOThpkzntHIhC3miy9ckeb0O1YLT/e6cBwfSqWxOdcjK -# NVf2AX9sSuDivbk+F2Az/1xPx2b3lVNxWuJ+Slr+uDZnhUYjDLWNE893MsAQGOhg -# fWpSg0S3po5GawcU88V29YZQ3MFEyHFcUTE3oAo4bo3t1w/YJlN8OWECesSq/XJp -# rx2rrPY2vjUmZNqYO7oaezOtgFt+jBAcnVL+tuhiJdxqD89d9P6OU8/W7IVWTe/d -# vI2k45GPsjksUZzpcGkNyjYtcI4xyDUoveO0hyTD4MmPfrVUj9z6BVWYbWg7mka9 -# 7aSueik3rMvrg0XnRm7KMtXAhjBcTyziYrLNueKNiOSWrAFKu75xqRdbZ2De+JKR -# Hh09/SDPc31BmkZ1zcRfNN0Sidb9pSB9fvzZnkXftnIv231fgLrbqn427DZM9itu -# qBJR6L8FA6PRc6ZNN3SUHDSCD/AQ8rdHGO2n6Jl8P0zbr17C89XYcz1DTsEzOUyO -# ArxCaC4Q6oRRRuLRvWoYWmEBc8pnol7XKHYC4jMYctenIPDC+hIK12NvDMk2ZItb -# oKaDIV1fMHSRlJTYuVD5C4lh8zYGNRiER9vcG9H9stQcxWv2XFJRXRLbJbqvUAV6 -# bMURHXLvjflSxIUXk8A8FdsaN8cIFRg/eKtFtvUeh17aj54WcmnGrnu3tz5q4i6t -# AgMBAAGjggHdMIIB2TASBgkrBgEEAYI3FQEEBQIDAQABMCMGCSsGAQQBgjcVAgQW -# BBQqp1L+ZMSavoKRPEY1Kc8Q/y8E7jAdBgNVHQ4EFgQUn6cVXQBeYl2D9OXSZacb -# UzUZ6XIwXAYDVR0gBFUwUzBRBgwrBgEEAYI3TIN9AQEwQTA/BggrBgEFBQcCARYz -# aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnku -# aHRtMBMGA1UdJQQMMAoGCCsGAQUFBwMIMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIA -# QwBBMAsGA1UdDwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2 -# VsuP6KJcYmjRPZSQW9fOmhjEMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu -# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEw -# LTA2LTIzLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93 -# d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYt -# MjMuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCdVX38Kq3hLB9nATEkW+Geckv8qW/q -# XBS2Pk5HZHixBpOXPTEztTnXwnE2P9pkbHzQdTltuw8x5MKP+2zRoZQYIu7pZmc6 -# U03dmLq2HnjYNi6cqYJWAAOwBb6J6Gngugnue99qb74py27YP0h1AdkY3m2CDPVt -# I1TkeFN1JFe53Z/zjj3G82jfZfakVqr3lbYoVSfQJL1AoL8ZthISEV09J+BAljis -# 9/kpicO8F7BUhUKz/AyeixmJ5/ALaoHCgRlCGVJ1ijbCHcNhcy4sa3tuPywJeBTp -# kbKpW99Jo3QMvOyRgNI95ko+ZjtPu4b6MhrZlvSP9pEB9s7GdP32THJvEKt1MMU0 -# sHrYUP4KWN1APMdUbZ1jdEgssU5HLcEUBHG/ZPkkvnNtyo4JvbMBV0lUZNlz138e -# W0QBjloZkWsNn6Qo3GcZKCS6OEuabvshVGtqRRFHqfG3rsjoiV5PndLQTHa1V1QJ -# sWkBRH58oWFsc/4Ku+xBZj1p/cvBQUl+fpO+y/g75LcVv7TOPqUxUYS8vwLBgqJ7 -# Fx0ViY1w/ue10CgaiQuPNtq6TPmb/wrpNPgkNWcr4A245oyZ1uEi6vAnQj0llOZ0 -# dFtq0Z4+7X6gMTN9vMvpe784cETRkPHIqzqKOghif9lwY1NNje6CbaUFEMFxBmoQ -# tB1VM1izoXBm8qGCA1AwggI4AgEBMIH5oYHRpIHOMIHLMQswCQYDVQQGEwJVUzET -# MBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMV -# TWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmlj -# YSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046RTAwMi0wNUUw -# LUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiIwoB -# ATAHBgUrDgMCGgMVAIijptU29+UXFtRYINDdhgrLo76ToIGDMIGApH4wfDELMAkG -# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx -# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwDQYJKoZIhvcNAQELBQACBQDrKc5lMCIY -# DzIwMjUwMTA5MDQyNjEzWhgPMjAyNTAxMTAwNDI2MTNaMHcwPQYKKwYBBAGEWQoE -# ATEvMC0wCgIFAOspzmUCAQAwCgIBAAICDBYCAf8wBwIBAAICFPgwCgIFAOsrH+UC -# AQAwNgYKKwYBBAGEWQoEAjEoMCYwDAYKKwYBBAGEWQoDAqAKMAgCAQACAwehIKEK -# MAgCAQACAwGGoDANBgkqhkiG9w0BAQsFAAOCAQEAJhUpE+o5a4erPtuEIho6c48L -# /xS8FUnNO9+is/Q+9ijVZYVOc1tMdXJQQz1n5fJzd+53VVRnrYQK9DAXEL1/nTKe -# 5oncUtDv2FbvA6jO4PtFVc+I0AzdbiE8wIpu9dXQUdzpPh/NsjyH4Ql664+gtztR -# hjtF3WLYVzQLk9R1SJATcLrzz7QRjSNCpAQ7ptEHhQ3dEBWrzRtlhjpmEoMCjMDK -# 46AEEuah63DEN91EjorKmKYi6+H1pPvW0EGutm5knFAM6SQ1PtMJO3Sej/daGVKj -# ddkG4YhdnZ028xC5wTHMQRnSVpG71oKa5kMbNUWedSTGplVMU/40dCTbllqnFTGC -# BA0wggQJAgEBMIGTMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB -# 7gXTAjCymp2nAAEAAAHuMA0GCWCGSAFlAwQCAQUAoIIBSjAaBgkqhkiG9w0BCQMx -# DQYLKoZIhvcNAQkQAQQwLwYJKoZIhvcNAQkEMSIEIAXxttmLrsVpYoyOhp0zBUc+ -# K6Mtop3YgJdZh4CrS9JqMIH6BgsqhkiG9w0BCRACLzGB6jCB5zCB5DCBvQQgT1B3 -# FJWF+r5V1/4M+z7kQiQHP2gJL85B+UeRVGF+MCEwgZgwgYCkfjB8MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQg -# VGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAe4F0wIwspqdpwABAAAB7jAiBCCjSk50 -# HJud0ECORyJkNIuFQQgYuz2TfQsWj6CQziMdHTANBgkqhkiG9w0BAQsFAASCAgCz -# lX/y9ZQ8UPRnjbj/7UCjiSORVt8o0up3YXZ1Au7EaGtSlUYvxjk8W813BKPKhh1p -# umbv9I6o7/7FmomGRgY4vDRtADFk+czEd28Cgormo8Y+PZEYkOUG+L6btJ8ZVPCw -# nxVIpHuLp8X3H2orSKTcfq4trjfPbxEPHO0VitzDdg9KUfRsazhMTdq0TUH5jwYp -# Zc/A+tUK/FmH8TX7cya1EK6+4b5wrvPeE9HysVQpYelinzmWBvsMSCRrRYc89uDF -# zw34RSPl8s77s0c02hgRRZHnDOEctMYrJ5dD1ZEIF2s+GPOSfiPC3gZCdrfi0uq0 -# cT90hCUZZG63hLakU+JwyZx9L0jdu9cCz27MEJNXP3gVnm//OtYjdl8mIxy2SHhC -# 4zPddmDydZzSL0sVZWpii0Lb0top3hYXf9BMkmEYq7XyHFMpYvDsWv6HqRtdZmUi -# 3SyasVbUO1ddv5O81Sygf76qTnocFbcnj5YIriuJCDbLDuHG7nRnACwgiGym+TVV -# SYV/YabZLyzrk0zcgV56I226S7xBseEkKHXq14TAKtwUlHLACgIMlZ0MbyueOXHY -# KMcr8sAkuhCDiZWpDCe4bN4oRbdLU1lOHOGgJd/KiL4eR5seT9A3CsINKPnbGavM -# dsZ4GsuhU19K+0Z46I+op+aq5d15lFeSg/VN/3/kcQ== -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Restart-AzFunctionApp.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Restart-AzFunctionApp.ps1 deleted file mode 100644 index 4223099000c7..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Restart-AzFunctionApp.ps1 +++ /dev/null @@ -1,337 +0,0 @@ -function Restart-AzFunctionApp { - [OutputType([System.Boolean])] - [CmdletBinding(DefaultParameterSetName='RestartByName', SupportsShouldProcess=$true, ConfirmImpact='Medium')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Description('Restarts a function app.')] - param( - [Parameter(ParameterSetName='RestartByName', Mandatory=$true, HelpMessage='The name of function app.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - [ValidateNotNullOrEmpty()] - ${Name}, - - [Parameter(ParameterSetName='RestartByName', Mandatory=$true)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - [ValidateNotNullOrEmpty()] - ${ResourceGroupName}, - - [Parameter(ParameterSetName='RestartByName', HelpMessage='The Azure subscription ID.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - [ValidateNotNullOrEmpty()] - ${SubscriptionId}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory=$true, ValueFromPipeline=$true)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - [ValidateNotNull()] - ${InputObject}, - - [Parameter(HelpMessage='Returns true when the command succeeds.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(HelpMessage='Forces the cmdlet to restart the function app without prompting for confirmation.')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter(HelpMessage='The credentials, account, tenant, and subscription used for communication with Azure.')] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} - ) - - process { - - RegisterFunctionsTabCompleters - - # The input object is an ISite. This needs to be transformed into a FunctionsIdentity - if ($PsCmdlet.ParameterSetName -eq "ByObjectInput") - { - if ($PSBoundParameters.ContainsKey("InputObject")) - { - $PSBoundParameters.Remove("InputObject") | Out-Null - } - - $functionsIdentity = CreateFunctionsIdentity -InputObject $InputObject - $PSBoundParameters.Add("InputObject", $functionsIdentity) | Out-Null - - # Set the name of the function app for the ShouldProcess and ShouldContinue calls - $Name = $InputObject.Name - } - - if ($PsCmdlet.ShouldProcess($Name, "Restarting function app")) - { - if ($Force.IsPresent -or $PsCmdlet.ShouldContinue("Restart function app '$Name'?", "Restarting function app")) - { - # Remove bound parameters from the dictionary that cannot be process by the intenal cmdlets - if ($PSBoundParameters.ContainsKey("Force")) - { - $PSBoundParameters.Remove("Force") | Out-Null - } - - Az.Functions.internal\Restart-AzFunctionApp @PSBoundParameters - } - } - } -} - -# SIG # Begin signature block -# MIIoLQYJKoZIhvcNAQcCoIIoHjCCKBoCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDvTX/yrqveCY2f -# bNAaEIECO0cZHInU/oowmreihCwD4KCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGg0wghoJAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIBK3HaT8CInW2SWP8CU5qMWF -# U+OBpsQfph8KnI44sXc5MEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEABME6BfpZ5t9ELi6aQdWklc1AWjdJZwAafwAJeIWtSd77HNF75PJ2EROh -# wAawHiyb9XXP7EzBIY8fhG32iWz+MQINnTVNY9m1kgOGDHYsylxN3rns2E67Ffcl -# XyMZUn5JGG0/rW1cMdn+i4y5V1QhAc7Kg2JX0qPEKhDw9TEG95PD2TuyINRQKRtC -# Ax3FksobIQVvzkV8mEYzd6Skewo73t1IiXTNig6B6Osmu29gECam3dusSxVsglFE -# SK5OESjIXvRbFnga3pZKNYqdUyy0rPYiYn3jnaOVvRzhs46U2P00n5mt0bhnVQKj -# Jcly6BhoNJxdPaLDntyxK6x72Ok7VaGCF5cwgheTBgorBgEEAYI3AwMBMYIXgzCC -# F38GCSqGSIb3DQEHAqCCF3AwghdsAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCBIia4DkmSPY69LBfeiof2Jj1mO2KsjZRr3SYaqUBKE3AIGZ1rjbLqT -# GBMyMDI1MDEwOTA2MzY0Mi42OTNaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046ODYwMy0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHtMIIHIDCCBQigAwIBAgITMwAAAfGzRfUn6MAW1gABAAAB8TANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# NTVaFw0yNTAzMDUxODQ1NTVaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046ODYwMy0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQCxulCZttIf8X97rW9/J+Q4Vg9PiugB1ya1/DRxxLW2 -# hwy4QgtU3j5fV75ZKa6XTTQhW5ClkGl6gp1nd5VBsx4Jb+oU4PsMA2foe8gP9bQN -# PVxIHMJu6TYcrrn39Hddet2xkdqUhzzySXaPFqFMk2VifEfj+HR6JheNs2LLzm8F -# DJm+pBddPDLag/R+APIWHyftq9itwM0WP5Z0dfQyI4WlVeUS+votsPbWm+RKsH4F -# QNhzb0t/D4iutcfCK3/LK+xLmS6dmAh7AMKuEUl8i2kdWBDRcc+JWa21SCefx5SP -# hJEFgYhdGPAop3G1l8T33cqrbLtcFJqww4TQiYiCkdysCcnIF0ZqSNAHcfI9SAv3 -# gfkyxqQNJJ3sTsg5GPRF95mqgbfQbkFnU17iYbRIPJqwgSLhyB833ZDgmzxbKmJm -# dDabbzS0yGhngHa6+gwVaOUqcHf9w6kwxMo+OqG3QZIcwd5wHECs5rAJZ6PIyFM7 -# Ad2hRUFHRTi353I7V4xEgYGuZb6qFx6Pf44i7AjXbptUolDcVzYEdgLQSWiuFajS -# 6Xg3k7Cy8TiM5HPUK9LZInloTxuULSxJmJ7nTjUjOj5xwRmC7x2S/mxql8nvHSCN -# 1OED2/wECOot6MEe9bL3nzoKwO8TNlEStq5scd25GA0gMQO+qNXV/xTDOBTJ8zBc -# GQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFLy2xe59sCE0SjycqE5Erb4YrS1gMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQDhSEjSBFSCbJyl3U/QmFMW2eLPBknnlsfI -# D/7gTMvANEnhq08I9HHbbqiwqDEHSvARvKtL7j0znICYBbMrVSmvgDxU8jAGqMyi -# LoM80788So3+T6IZV//UZRJqBl4oM3bCIQgFGo0VTeQ6RzYL+t1zCUXmmpPmM4xc -# ScVFATXj5Tx7By4ShWUC7Vhm7picDiU5igGjuivRhxPvbpflbh/bsiE5tx5cuOJE -# JSG+uWcqByR7TC4cGvuavHSjk1iRXT/QjaOEeJoOnfesbOdvJrJdbm+leYLRI67N -# 3cd8B/suU21tRdgwOnTk2hOuZKs/kLwaX6NsAbUy9pKsDmTyoWnGmyTWBPiTb2rp -# 5ogo8Y8hMU1YQs7rHR5hqilEq88jF+9H8Kccb/1ismJTGnBnRMv68Ud2l5LFhOZ4 -# nRtl4lHri+N1L8EBg7aE8EvPe8Ca9gz8sh2F4COTYd1PHce1ugLvvWW1+aOSpd8N -# nwEid4zgD79ZQxisJqyO4lMWMzAgEeFhUm40FshtzXudAsX5LoCil4rLbHfwYtGO -# pw9DVX3jXAV90tG9iRbcqjtt3vhW9T+L3fAZlMeraWfh7eUmPltMU8lEQOMelo/1 -# ehkIGO7YZOHxUqeKpmF9QaW8LXTT090AHZ4k6g+tdpZFfCMotyG+E4XqN6ZWtKEB -# QiE3xL27BDCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNQ -# MIICOAIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjg2MDMtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQD7 -# n7Bk4gsM2tbU/i+M3BtRnLj096CBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymhlzAiGA8yMDI1MDEwOTAxMTUw -# M1oYDzIwMjUwMTEwMDExNTAzWjB3MD0GCisGAQQBhFkKBAExLzAtMAoCBQDrKaGX -# AgEAMAoCAQACAgnWAgH/MAcCAQACAhLZMAoCBQDrKvMXAgEAMDYGCisGAQQBhFkK -# BAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJ -# KoZIhvcNAQELBQADggEBABWHux9xbYY4I0L4XVQj97eT2StJ8YAHfLn+PZEx9Hdg -# A8+ONymStatVt+SnyQ9nyV1lIGMKljTA95AUUN3xG9Eo2QioQUCRBmnqjp//gHsX -# Piv0u7m3VgnLsr/TnTo17aLOc0bOyYlS1BTthbz2XeyB646/F8ochBd1OqoCvluI -# Evv6Bx9hcodVtCm3pxAv4YDX8sXb0cFRNWz+Vq9JOKr4ankiYyp0INmV5C8cAHJb -# 4+PKlCzqdqx+GV4RdLaDvK7pcF6qcaO3J5Gl0I5OoeTF6KN1ifx90T0ps6q5LgV1 -# 6lzWULKJA/BVAnUF9Q+ybg+yEa3UGrkVPMsX8vGN7sQxggQNMIIECQIBATCBkzB8 -# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk -# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1N -# aWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAfGzRfUn6MAW1gABAAAB -# 8TANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEE -# MC8GCSqGSIb3DQEJBDEiBCBxtCEaQ/+LobZoC35XKYgtaJsRRb0lQC+Xe/vXMZ0H -# czCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EINV3/T5hS7ijwao466RosB7w -# wEibt0a1P5EqIwEj9hF4MIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB -# IDIwMTACEzMAAAHxs0X1J+jAFtYAAQAAAfEwIgQgZv4QEc5hgS9BsS74vtux+Rzx -# z6O0XI7Iv02NK7Hl7vIwDQYJKoZIhvcNAQELBQAEggIAkOHhUutLkENpqUblq9dT -# 4uHs7gb6ycozgmwZSDNAIPbOwZGK4bhJMnuiOEPBropRHb5ganIHmhRdzW7qsoAI -# wRgL2LIErdmWT/Lp8UpgUVVvYuT85i63n179n+NNvrH2wMaM1KaeUkY01+7SsVMj -# jH4P06EXPLs1Si7iCgtKDALWY+gmecdXzFKQpRXVzkjmrgsYntGnNZvcd3v2Y01E -# Zmpo5NBUXOu6jTDoawmyqGE7SJY5jRJUQWadz5P1ZSkaYJJCUAJCYb+e/SVaDeJj -# Wlp2MzJ51rT96wpJXLhhQ7MtgJCddjJXxDbdxPfj5eySAt58zsbTrmwFAhPikz9a -# b9ZLzoH2gwMoQZXd5h897XKAlBiQg3Hh69TOZNmk7hPrKdXgBDCs+S6XnZXl/Bht -# dVFbMQXzYIQ7Q+iLsALqaHdf+CELPZkPzHAnJL4+MOshYOwRTzH8TZAEjRIKYdOf -# TlQP6ckdo+JY0qGpMcwKmcn87QxpawAeikbzGPEmKYI59fb9+3EJyV3yOFHxwIX8 -# 4FCRPMBmTh+5lbbcYBfMFeqQGuqMF9H9oyqlBB2wcF/LuGOslYutdanRk+1l4uRF -# vXkruHg6Yva2A/WTtxYEsGYxVFD4SlpROon9Cwn9Ou7YsYr5VhwkEn2QAthHlzUg -# izd6w9d7cb47OR7tThlOZ4Q= -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Start-AzFunctionApp.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Start-AzFunctionApp.ps1 deleted file mode 100644 index 0d8b14532304..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Start-AzFunctionApp.ps1 +++ /dev/null @@ -1,324 +0,0 @@ -function Start-AzFunctionApp { - [OutputType([System.Boolean])] - [CmdletBinding(DefaultParameterSetName='StartByName', SupportsShouldProcess=$true, ConfirmImpact='Medium')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Description('Starts a function app.')] - param( - [Parameter(ParameterSetName='StartByName', Mandatory=$true, HelpMessage='The name of function app.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - [ValidateNotNullOrEmpty()] - ${Name}, - - [Parameter(ParameterSetName='StartByName', Mandatory=$true)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - [ValidateNotNullOrEmpty()] - ${ResourceGroupName}, - - [Parameter(ParameterSetName='StartByName', HelpMessage='The Azure subscription ID.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - [ValidateNotNullOrEmpty()] - ${SubscriptionId}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory=$true, ValueFromPipeline=$true)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - [ValidateNotNull()] - ${InputObject}, - - [Parameter(HelpMessage='Returns true when the command succeeds.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(HelpMessage='The credentials, account, tenant, and subscription used for communication with Azure.')] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} - ) - - process { - - RegisterFunctionsTabCompleters - - # The input object is an ISite. This needs to be transformed into a FunctionsIdentity. - if ($PsCmdlet.ParameterSetName -eq "ByObjectInput") - { - if ($PSBoundParameters.ContainsKey("InputObject")) - { - $PSBoundParameters.Remove("InputObject") | Out-Null - } - - $functionsIdentity = CreateFunctionsIdentity -InputObject $InputObject - $PSBoundParameters.Add("InputObject", $functionsIdentity) | Out-Null - - # Set the name of the function app for the ShouldProcess call. - $Name = $InputObject.Name - } - - if ($PsCmdlet.ShouldProcess($Name, "Starting function app")) - { - Az.Functions.internal\Start-AzFunctionApp @PSBoundParameters - } - } -} - -# SIG # Begin signature block -# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCD7nGnI/UMlVtyC -# 99kumhIQhN6C0FwZdtTa5xjVSTvOr6CCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIK8PlDKbMSsLfr3bm5LuO3c0 -# jQV9hP+h3eshvPb8+43NMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAQJC53qzV2xwngdOlq7XQIymhlp/Dr8MFmUTUaUk6wjS0USUGH8L8DKld -# HxiFgLeQvep+McnrE44mothEpIeuqwxamfsWIqKeMNkz90Ayo1365rWlYvVBgLNx -# TTfaVtYCAShk+M/68so6GG2tlft+eAEn38cQvlJXzf38/RLeC4+b1+TYh6CSJ0zS -# ApT6KveK5kH0Xw2ABevdpB+E/Mq/btFJqAIbO8ubtt0m2bu3FdEZ/E3+F2ju8Qbl -# Z54p9zdqL7yyu2dmjcXp4isV0aXZ61K7GroxSTHRp47WQlwss0fopxbhKzJmXPPs -# j0EhbPYSiZ5nnvBsdE4ejER2WewHu6GCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC -# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCBgcQTcGutUjdz8Xnf63QTQvIp1jFnISHTsepXmTYBaRQIGZ1rRdmXf -# GBMyMDI1MDEwOTA2MzY0Ni4wMDVaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTIwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHqMIIHIDCCBQigAwIBAgITMwAAAecujy+TC08b6QABAAAB5zANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# MTlaFw0yNTAzMDUxODQ1MTlaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTIwMC0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDCV58v4IuQ659XPM1DtaWMv9/HRUC5kdiEF89YBP6/ -# Rn7kjqMkZ5ESemf5Eli4CLtQVSefRpF1j7S5LLKisMWOGRaLcaVbGTfcmI1vMRJ1 -# tzMwCNIoCq/vy8WH8QdV1B/Ab5sK+Q9yIvzGw47TfXPE8RlrauwK/e+nWnwMt060 -# akEZiJJz1Vh1LhSYKaiP9Z23EZmGETCWigkKbcuAnhvh3yrMa89uBfaeHQZEHGQq -# dskM48EBcWSWdpiSSBiAxyhHUkbknl9PPztB/SUxzRZjUzWHg9bf1mqZ0cIiAWC0 -# EjK7ONhlQfKSRHVLKLNPpl3/+UL4Xjc0Yvdqc88gOLUr/84T9/xK5r82ulvRp2A8 -# /ar9cG4W7650uKaAxRAmgL4hKgIX5/0aIAsbyqJOa6OIGSF9a+DfXl1LpQPNKR79 -# 2scF7tjD5WqwIuifS9YUiHMvRLjjKk0SSCV/mpXC0BoPkk5asfxrrJbCsJePHSOE -# blpJzRmzaP6OMXwRcrb7TXFQOsTkKuqkWvvYIPvVzC68UM+MskLPld1eqdOOMK7S -# bbf2tGSZf3+iOwWQMcWXB9gw5gK3AIYK08WkJJuyzPqfitgubdRCmYr9CVsNOuW+ -# wHDYGhciJDF2LkrjkFUjUcXSIJd9f2ssYitZ9CurGV74BQcfrxjvk1L8jvtN7mul -# IwIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFM/+4JiAnzY4dpEf/Zlrh1K73o9YMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQB0ofDbk+llWi1cC6nsfie5Jtp09o6b6ARC -# pvtDPq2KFP+hi+UNNP7LGciKuckqXCmBTFIhfBeGSxvk6ycokdQr3815pEOaYWTn -# HvQ0+8hKy86r1F4rfBu4oHB5cTy08T4ohrG/OYG/B/gNnz0Ol6v7u/qEjz48zXZ6 -# ZlxKGyZwKmKZWaBd2DYEwzKpdLkBxs6A6enWZR0jY+q5FdbV45ghGTKgSr5ECAOn -# LD4njJwfjIq0mRZWwDZQoXtJSaVHSu2lHQL3YHEFikunbUTJfNfBDLL7Gv+sTmRi -# DZky5OAxoLG2gaTfuiFbfpmSfPcgl5COUzfMQnzpKfX6+FkI0QQNvuPpWsDU8sR+ -# uni2VmDo7rmqJrom4ihgVNdLaMfNUqvBL5ZiSK1zmaELBJ9a+YOjE5pmSarW5sGb -# n7iVkF2W9JQIOH6tGWLFJS5Hs36zahkoHh8iD963LeGjZqkFusKaUW72yMj/yxTe -# GEDOoIr35kwXxr1Uu+zkur2y+FuNY0oZjppzp95AW1lehP0xaO+oBV1XfvaCur/B -# 5PVAp2xzrosMEUcAwpJpio+VYfIufGj7meXcGQYWA8Umr8K6Auo+Jlj8IeFS6lSv -# KhqQpmdBzAMGqPOQKt1Ow3ZXxehK7vAiim3ZiALlM0K546k0sZrxdZPgpmz7O8w9 -# gHLuyZAQezCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNN -# MIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjkyMDAtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQCz -# cgTnGasSwe/dru+cPe1NF/vwQ6CBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymPnzAiGA8yMDI1MDEwODIzNTgy -# M1oYDzIwMjUwMTA5MjM1ODIzWjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDrKY+f -# AgEAMAcCAQACAgqMMAcCAQACAhNMMAoCBQDrKuEfAgEAMDYGCisGAQQBhFkKBAIx -# KDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZI -# hvcNAQELBQADggEBAEZtHe+7A3SvgaoN66naRZpTnp73wRcRs8dMBT3/c8PYbwX6 -# vxGPyBv1qSfycPyf9PDPX/Typ8w+8P/annh29uNumbttljO38YGNwi3IUG9QAltD -# SvoglH7QcJm1KiuZLmAzFL2BMD7cA9wCHR78jZR4LHt6D1oOhUKwPLbYbdZWPkLx -# jtfTqqXmcMxoQFvztZBl2qyhuq59akIRrkd2wSsk73bLo2YlaSsElNMFTIyPrpL+ -# /PamnIX0XpSRdWwwiJxNJs0McQpR65/Tmfbv1Z7u0DMlHQWJOyXQl1bRAqOMtisp -# xf389cbnpY4LLkQC73n7bxQVm8Gm4uYVeOOdODMxggQNMIIECQIBATCBkzB8MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy -# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAecujy+TC08b6QABAAAB5zAN -# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G -# CSqGSIb3DQEJBDEiBCAzjbjVE1Xcxj5/2k/Sid7PtjOYdT90Y85XQGshKJt4MTCB -# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIOU2XQ12aob9DeDFXM9UFHeEX74F -# v0ABvQMG7qC51nOtMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAHnLo8vkwtPG+kAAQAAAecwIgQgRJvjJ1+gVGsNoaDt9U/FTkFEV0dZ -# g7U4j7s6WjWsakEwDQYJKoZIhvcNAQELBQAEggIAPsQYbcA+aneoC4t1ev1OvF1w -# PsX+ygiRFo3rmUuNBf8B9SIGN59+Bfnb6x9B3MZKFySeGshSs9+0pZVUmoL0uLcD -# WEkWQ8njQGhaGDtqugMSBFv+bj+KtkVGiWb/ZGHYVJhBQL75JUnP5tlPho6ui/Q0 -# Aswsq4RA8YBV0cu91IKrTC+n4T1cItQaUGy5rD+E1NgIHNyv/9IUxu7LMDxwEtXo -# tV+cyd4eWNQf0g1I/9grMr/SgBEOoGd379m60QF2e1j96Mog0nh9wN1xTKdGce5E -# HyFitCyu6byZHkzsEo6te5GUerC4JVaj/WHly5HiCDtKUFlNLUEfo3WnCs2a1tFs -# ZPxUJtMfYNsj3X7auTp2QfL0cOQKoFg7VJQkMys8zOJ4dxTveO3ezZgkJrL+l6J9 -# MBOuuHKKMxjB7grJmKZCzwX9dFzQgx/5oabFzSM2ixz/YMBOwE8/OnNhnECUw5Fk -# O3qwDuMItssgm/a0g9VKAdu1TyIx1brnnkuTbXEArlSYCjOqVkdXNKSyQTNzM2VO -# IRev7TAI4gAt8zvZehRV6ve99bsiWLi9y7b/kdTa/Ke+EPjCuSQUljpRaMBKsZs5 -# UKNs76zCv7vWc1aamKbxuQzEfmAcjXczU5G8aa+j/doRjU0g2aaaG7EIsvGzDY/6 -# CyXs/lZqABhczlYIkDY= -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Stop-AzFunctionApp.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Stop-AzFunctionApp.ps1 deleted file mode 100644 index a9d47272157d..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Stop-AzFunctionApp.ps1 +++ /dev/null @@ -1,337 +0,0 @@ -function Stop-AzFunctionApp { - [OutputType([System.Boolean])] - [CmdletBinding(DefaultParameterSetName='StopByName', SupportsShouldProcess=$true, ConfirmImpact='Medium')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Description('Stops a function app.')] - param( - [Parameter(ParameterSetName='StopByName', Mandatory=$true, HelpMessage='The name of function app.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - [ValidateNotNullOrEmpty()] - ${Name}, - - [Parameter(ParameterSetName='StopByName', Mandatory=$true)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - [ValidateNotNullOrEmpty()] - ${ResourceGroupName}, - - [Parameter(ParameterSetName='StopByName', HelpMessage='The Azure subscription ID.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - [ValidateNotNullOrEmpty()] - ${SubscriptionId}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory=$true, ValueFromPipeline=$true)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - [ValidateNotNullOrEmpty()] - ${InputObject}, - - [Parameter(HelpMessage='Returns true when the command succeeds.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(HelpMessage='Forces the cmdlet to stop the function app without prompting for confirmation.')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter(HelpMessage='The credentials, account, tenant, and subscription used for communication with Azure.')] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} - ) - - process { - - RegisterFunctionsTabCompleters - - # The input object is an ISite. This needs to be transformed into a FunctionsIdentity. - if ($PsCmdlet.ParameterSetName -eq "ByObjectInput") - { - if ($PSBoundParameters.ContainsKey("InputObject")) - { - $PSBoundParameters.Remove("InputObject") | Out-Null - } - - $functionsIdentity = CreateFunctionsIdentity -InputObject $InputObject - $PSBoundParameters.Add("InputObject", $functionsIdentity) | Out-Null - - # Set the name of the function app for the ShouldProcess and ShouldContinue calls. - $Name = $InputObject.Name - } - - if ($PsCmdlet.ShouldProcess($Name, "Stopping function app")) - { - if ($Force.IsPresent -or $PsCmdlet.ShouldContinue("Stop function app '$Name'?", "Stopping function app")) - { - # Remove bound parameters from the dictionary that cannot be process by the intenal cmdlets. - if ($PSBoundParameters.ContainsKey("Force")) - { - $PSBoundParameters.Remove("Force") | Out-Null - } - - Az.Functions.internal\Stop-AzFunctionApp @PSBoundParameters - } - } - } -} - -# SIG # Begin signature block -# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCplQQwwtyuWRaM -# p1Etye5gU238WMxizmxMbku665CQ3KCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIP6WeGvqKGKcAVTVE8C25+vo -# nEpDk2TLw4RUrQy7RHMoMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEANGqhpH02QpsQbqcL1YFFt3w0cQVtJKfmJOsvC67TT5MrqcthxWlxXB7q -# DyRlKVi934xE1TGes8A0UBPk6s/NwCagwCOhwFyf1y6wSW1GAhtVaJJ5Utak2KFw -# kSeZQNvhNx9dRIPGDQ+0Q2CUGSw07eU7wHTb8+NRB2QXCZQhyQY8+JjwACLSxPw7 -# YdgU/HP/9AB5XwVqAfvGjUTO/oXgSNKn4dnG3YtOFJFhC/dJAumv4NVyVm7noVfa -# W/MZAjZT3FQ0Wpj8vNy997IHTORHOztqEA/DFNBeleVFNrkesK8yWzX7sezxNAoC -# y6oeRGoD/05o0wasRz+RHIFpeF+wGqGCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC -# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCCQ97msjwuJZLGf0yLKnoC1ChqTnRyO/aM/eX3vUZ1uVgIGZ3gW1Ix3 -# GBMyMDI1MDEwOTA2MzY0My41NjFaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTQwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHqMIIHIDCCBQigAwIBAgITMwAAAezgK6SC0JFSgAABAAAB7DANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# MzhaFw0yNTAzMDUxODQ1MzhaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTQwMC0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQCwR/RuCTbgxUWVm/Vdul22uwdEZm0IoAFs6oIr39VK -# /ItP80cn+8TmtP67iabB4DmAKJ9GH6dJGhEPJpY4vTKRSOwrRNxVIKoPPeUF3f4V -# yHEco/u1QUadlwD132NuZCxbnh6Mi2lLG7pDvszZqMG7S3MCi2bk2nvtGKdeAIL+ -# H77gL4r01TSWb7rsE2Jb1P/N6Y/W1CqDi1/Ib3/zRqWXt4zxvdIGcPjS4ZKyQEF3 -# SEZAq4XIjiyowPHaqNbZxdf2kWO/ajdfTU85t934CXAinb0o+uQ9KtaKNLVVcNf5 -# QpS4f6/MsXOvIFuCYMRdKDjpmvowAeL+1j27bCxCBpDQHrWkfPzZp/X+bt9C7E5h -# PP6HVRoqBYR7u1gUf5GEq+5r1HA0jajn0Q6OvfYckE0HdOv6KWa+sAmJG7PDvTZa -# e77homzx6IPqggVpNZuCk79SfVmnKu9F58UAnU58TqDHEzGsQnMUQKstS3zjn6SU -# 0NLEFNCetluaKkqWDRVLEWbu329IEh3tqXPXfy6Rh/wCbwe9SCJIoqtBexBrPyQY -# A2Xaz1fK9ysTsx0kA9V1JwVV44Ia9c+MwtAR6sqKdAgRo/bs/Xu8gua8LDe6KWyu -# 974e9mGW7ZO8narDFrAT1EXGHDueygSKvv2K7wB8lAgMGJj73CQvr+jqoWwx6Xdy -# eQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFPRa0Edk/iv1whYQsV8UgEf4TIWGMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQCSvMSkMSrvjlDPag8ARb0OFrAQtSLMDpN0 -# UY3FjvPhwGKDrrixmnuMfjrmVjRq1u8IhkDvGF/bffbFTr+IAnDSeg8TB9zfG/4y -# bknuopklbeGjbt7MLxpfholCERyEc20PMZKJz9SvzfuO1n5xrrLOL8m0nmv5kBcv -# +y1AXJ5QcLicmhe2Ip3/D67Ed6oPqQI03mDjYaS1NQhBNtu57wPKXZ1EoNToBk8b -# A6839w119b+a9WToqIskdRGoP5xjDIv+mc0vBHhZGkJVvfIhm4Ap8zptC7xVAly0 -# jeOv5dUGMCYgZjvoTmgd45bqAwundmPlGur7eleWYedLQf7s3L5+qfaY/xEh/9uo -# 17SnM/gHVSGAzvnreGhOrB2LtdKoVSe5LbYpihXctDe76iYtL+mhxXPEpzda3bJl -# hPTOQ3KOEZApVERBo5yltWjPCWlXxyCpl5jj9nY0nfd071bemnou8A3rUZrdgKIa -# utsH7SHOiOebZGqNu+622vJta3eAYsCAaxAcB9BiJPla7Xad9qrTYdT45VlCYTtB -# SY4oVRsedSADv99jv/iYIAGy1bCytua0o/Qqv9erKmzQCTVMXaDc25DTLcMGJrRu -# a3K0xivdtnoBexzVJr6yXqM+Ba2whIVRvGcriBkKX0FJFeW7r29XX+k0e4DnG6iB -# HKQjec6VNzCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNN -# MIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOkE0MDAtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQCO -# HPtgVdz9EW0iPNL/BXqJoqVMf6CBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ynVPTAiGA8yMDI1MDEwOTA0NTUy -# NVoYDzIwMjUwMTEwMDQ1NTI1WjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDrKdU9 -# AgEAMAcCAQACAhryMAcCAQACAhP2MAoCBQDrKya9AgEAMDYGCisGAQQBhFkKBAIx -# KDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZI -# hvcNAQELBQADggEBAICWG8yWRgHoXz9JYFijAGjGixH4TfXR3oGebmc8GXuqmQgC -# NMsPKXnDkMH3to/GtrDQMQzCnFrp70UayuyqzQG/17bFYhIJWLSBh8ZkfI/59STE -# Ww8GB0bM1LwicEP5C5EYXiw8hSouGSifaCcW2vTYPgC2IV+5R/WP0YG8gIjmzDxS -# Mwj1cFsa8/oWoQ7W4l9DMBzfhqPKa9g/VDsFbk/lvzJeH45AH7MdS5K6SYHFyDrn -# cVJ31h++IxmNHGXMdea0ps6k3ZACOevC5nIGQXYUKVj3+qDhINa5jBK1Nt1CAb6A -# aCE9pT7Dbh2njkY/EIlRJr3YP5Jnpgfiav16KigxggQNMIIECQIBATCBkzB8MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy -# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAezgK6SC0JFSgAABAAAB7DAN -# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G -# CSqGSIb3DQEJBDEiBCBFh1q/4TvtZNObxNmKQC1qMytj6CJAC9K1M63UKsVt2jCB -# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EICcJ5vVqfTfIhx21QBBbKyo/xciQ -# IXaoMWULejAE1QqDMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAHs4CukgtCRUoAAAQAAAewwIgQgnJ2RIDHfm/1iC7okcNVUdgSDqfax -# zykqLmzdwjBiKIwwDQYJKoZIhvcNAQELBQAEggIAJZn6kvDcFI1m6+ApFIqZZkPD -# xGjpOwdEnRgLA2uBFLpgFMOPWtjSUu47K+0A9C2DW6mRXLPn5LujhEGkW2S5CIbe -# UC/1u2JlGUCdM7AR79wJlZiURz0xyIU/TC+D66terb097MwazfzAefBXatUMa/AU -# K32cpHNvaIDSWKoGRfq23ckPdlkI0WBLdaiCZCw6HatDh5Vxun4kq7QtRqGVNlna -# aUxFnUXPXvk0oOhbeYOUXrUAdRZyNQ0GXh+tOBT6tPZf9e5eZnYF3frt/X/JI9Jg -# zEXC5FbmO/eSK/zkGAabSPUi6Q/0EyZ1G5Lm7rqSNJjpRBugBj/twuCKEGAuQJOi -# HgciwR4O/7NxsYekfNCWteQVqTO7eojFqAIFNZ4jf2TB8EjZ6nXzBqyoe4h8ZyG3 -# 0bknAmZyRb+inXv2TX3SkdgzLRCfm9enNAW7uwGTAJBZVJHPFK48KevUTg5bI6e0 -# /QoqcZ0JhZilJQGl0xwKStfaMNAI7167g5vogAycODwee+Odu91ZGN6xoDFpeZqL -# WAP4YZeTgmzy/KwE798OLArQwlokzjI0k+++9ZEqSROkWReW2znpUF1q8Jvm7aW1 -# G+yjB80JfEHDtfRt+2MV9UweUD1e7C4q55CFdA2nIBFMdC0m4iVmWYIVxUc9mfDq -# Lq/tK8HRj0RtKRBxWfA= -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Update-AzFunctionApp.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Update-AzFunctionApp.ps1 deleted file mode 100644 index 4ce0c14f81a8..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Update-AzFunctionApp.ps1 +++ /dev/null @@ -1,585 +0,0 @@ - -function Update-AzFunctionApp { - [OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Description('Updates a function app.')] - [CmdletBinding(DefaultParameterSetName='ByName', SupportsShouldProcess=$true, ConfirmImpact='Medium')] - param( - [Parameter(ParameterSetName="ByName", HelpMessage='The Azure subscription ID.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [ValidateNotNullOrEmpty()] - [System.String] - ${SubscriptionId}, - - [Parameter(Mandatory=$true, ParameterSetName='ByName', HelpMessage='The name of the resource group.')] - [ValidateNotNullOrEmpty()] - [System.String] - ${ResourceGroupName}, - - [Parameter(Mandatory=$true, ParameterSetName="ByName", HelpMessage='The name of the function app.')] - [ValidateNotNullOrEmpty()] - [System.String] - ${Name}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory=$true, ValueFromPipeline=$true)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - [ValidateNotNull()] - ${InputObject}, - - [Parameter(HelpMessage='The name of the service plan.')] - [ValidateNotNullOrEmpty()] - [System.String] - ${PlanName}, - - [Parameter(HelpMessage='Forces the cmdlet to update the function app without prompting for confirmation.')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter(HelpMessage='Name of the existing App Insights project to be added to the function app.')] - [ValidateNotNullOrEmpty()] - [System.String] - [Alias("AppInsightsName")] - ${ApplicationInsightsName}, - - [Parameter(HelpMessage='Instrumentation key of App Insights to be added.')] - [ValidateNotNullOrEmpty()] - [System.String] - [System.String] - [Alias("AppInsightsKey")] - ${ApplicationInsightsKey}, - - [Parameter(HelpMessage='Resource tags.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IResourceTags]))] - [System.Collections.Hashtable] - [ValidateNotNull()] - ${Tag}, - - [Parameter(HelpMessage="Specifies the type of identity used for the function app. - The type 'None' will remove any identities from the function app. The acceptable values for this parameter are: - - SystemAssigned - - UserAssigned - - None - ")] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FunctionAppManagedServiceIdentityUpdateType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedServiceIdentityType] - ${IdentityType}, - - [Parameter(HelpMessage="Specifies the list of user identities associated with the function app. - The user identity references will be ARM resource ids in the form: - '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/identities/{identityName}'")] - [ValidateNotNullOrEmpty()] - [System.String[]] - ${IdentityID}, - - [Parameter(HelpMessage='Starts the operation and returns immediately, before the operation is completed. In order to determine if the operation has successfully been completed, use some other mechanism.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${NoWait}, - - [Parameter(HelpMessage='Runs the cmdlet as a background job.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${AsJob}, - - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} - ) - - process { - - RegisterFunctionsTabCompleters - - # Remove bound parameters from the dictionary that cannot be process by the intenal cmdlets. - $paramsToRemove = @( - "PlanName", - "ApplicationInsightsName", - "ApplicationInsightsKey" - "IdentityType", - "IdentityID", - "Tag" - ) - foreach ($paramName in $paramsToRemove) - { - if ($PSBoundParameters.ContainsKey($paramName)) - { - $PSBoundParameters.Remove($paramName) | Out-Null - } - } - - $useParams = $false - $params = GetParameterKeyValues -PSBoundParametersDictionary $PSBoundParameters ` - -ParameterList @("SubscriptionId", "HttpPipelineAppend", "HttpPipelinePrepend") - - $existingFunctionApp = $null - - if ($PsCmdlet.ParameterSetName -eq "ByObjectInput") - { - if ($PSBoundParameters.ContainsKey("InputObject")) - { - $PSBoundParameters.Remove("InputObject") | Out-Null - } - - $Name = $InputObject.Name - - $PSBoundParameters.Add("Name", $Name) | Out-Null - $PSBoundParameters.Add("ResourceGroupName", $InputObject.ResourceGroupName) | Out-Null - $PSBoundParameters.Add("SubscriptionId", $InputObject.SubscriptionId) | Out-Null - - $existingFunctionApp = $InputObject - } - else - { - $useParams = $true - $existingFunctionApp = GetFunctionAppByName -Name $Name -ResourceGroupName $ResourceGroupName @params - } - - $appSettings = New-Object -TypeName System.Collections.Generic.List[System.Object] - $siteCofig = New-Object -TypeName Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteConfig - $functionAppDef = New-Object -TypeName Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Site - - # Identity information - if ($IdentityType) - { - $functionAppDef.IdentityType = $IdentityType - - if ($IdentityType -eq "UserAssigned") - { - # Set UserAssigned managed identity - if (-not $IdentityID) - { - $errorMessage = "IdentityID is required for UserAssigned identity" - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "IdentityIDIsRequiredForUserAssignedIdentity" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - - } - - $identityUserAssignedIdentity = NewIdentityUserAssignedIdentity -IdentityID $IdentityID - $functionAppDef.IdentityUserAssignedIdentity = $identityUserAssignedIdentity - } - } - elseif ($existingFunctionApp.IdentityType) - { - if ($existingFunctionApp.IdentityType -eq "UserAssigned") - { - $functionAppDef.IdentityType = "UserAssigned" - - if ($existingFunctionApp.IdentityUserAssignedIdentity -and $existingFunctionApp.IdentityUserAssignedIdentity.Count -gt 0) - { - $identityUserAssignedIdentity = NewIdentityUserAssignedIdentity -IdentityID $existingFunctionApp.IdentityUserAssignedIdentity.Keys - $functionAppDef.IdentityUserAssignedIdentity = $identityUserAssignedIdentity - } - } - elseif ($existingFunctionApp.IdentityType -eq "SystemAssigned") - { - $functionAppDef.IdentityType = "SystemAssigned" - } - else - { - $errorMessage = "Unknown IdentityType '$($existingFunctionApp.IdentityType)'" - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "UnknownIdentityType" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - } - - # Update function app hosting plan - if ($PlanName) - { - # Validate that the new plan is exists - $newFunctionAppPlan = GetServicePlan $PlanName @params - - # Get the current plan in which the app is being hosted - $currentFunctionAppPlan = GetFunctionAppServicePlanInfo $existingFunctionApp.ServerFarmId @params - - ValidatePlanSwitchCompatibility -CurrentServicePlan $currentFunctionAppPlan -NewServicePlan $newFunctionAppPlan - - $functionAppDef.ServerFarmId = $newFunctionAppPlan.Id - $functionAppDef.Location = $newFunctionAppPlan.Location - $functionAppDef.Reserved = $newFunctionAppPlan.Reserved - } - else - { - # Copy the existing function app plan settings - $functionAppDef.ServerFarmId = $existingFunctionApp.ServerFarmId - $functionAppDef.Location = $existingFunctionApp.Location - $functionAppDef.Reserved = $existingFunctionApp.Reserved - } - - # Set Application Insights - $currentApplicationSettings = $null - $settings = if ($useParams) - { - Az.Functions.internal\Get-AzWebAppApplicationSetting -Name $existingFunctionApp.Name -ResourceGroupName $existingFunctionApp.ResourceGroupName @params - } else { - Az.Functions.internal\Get-AzWebAppApplicationSetting -Name $existingFunctionApp.Name -ResourceGroupName $existingFunctionApp.ResourceGroupName -SubscriptionId $existingFunctionApp.SubscriptionId - } - if ($null -ne $settings) - { - $currentApplicationSettings = ConvertWebAppApplicationSettingToHashtable -ApplicationSetting $settings -ShowAllAppSettings - } - - if ($ApplicationInsightsKey) - { - $currentApplicationSettings['APPINSIGHTS_INSTRUMENTATIONKEY'] = $ApplicationInsightsKey - } - elseif ($ApplicationInsightsName) - { - $params = GetParameterKeyValues -PSBoundParametersDictionary $PSBoundParameters ` - -ParameterList @("SubscriptionId", "HttpPipelineAppend", "HttpPipelinePrepend") - $appInsightsProject = GetApplicationInsightsProject -Name $ApplicationInsightsName @params - if (-not $appInsightsProject) - { - $errorMessage = "Failed to get application insights key for project name '$ApplicationInsightsName'. Please make sure the project exist." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "ApplicationInsightsProjectNotFound" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - $currentApplicationSettings['APPINSIGHTS_INSTRUMENTATIONKEY'] = $appInsightsProject.InstrumentationKey - } - - # Set app settings - foreach ($appSettingName in $currentApplicationSettings.Keys) - { - $appSettingValue = $currentApplicationSettings[$appSettingName] - $appSettings.Add((NewAppSetting -Name $appSettingName -Value $appSettingValue)) - } - - # Set Tag - if ($Tag -and ($Tag.Count -gt 0)) - { - $resourceTag = NewResourceTag -Tag $Tag - $functionAppDef.Tag = $resourceTag - } - elseif ($existingFunctionApp.Tag.AdditionalProperties -and ($existingFunctionApp.Tag.AdditionalProperties.Count -gt 0)) - { - $functionAppDef.Tag = $existingFunctionApp.Tag - } - - # Set siteConfig properties: AlwaysOn, LinuxFxVersion, JavaVersion, PowerShellVersion - $siteCofig.AlwaysOn = $existingFunctionApp.SiteConfig.AlwaysOn - $siteCofig.LinuxFxVersion = $existingFunctionApp.SiteConfig.LinuxFxVersion - $siteCofig.JavaVersion = $existingFunctionApp.SiteConfig.JavaVersion - $siteCofig.PowerShellVersion = $existingFunctionApp.SiteConfig.PowerShellVersion - - # Set the function app Kind - $functionAppDef.Kind = $existingFunctionApp.Kind - - # Set app settings and site configuration - $siteCofig.AppSetting = $appSettings - $functionAppDef.Config = $siteCofig - $PSBoundParameters.Add("SiteEnvelope", $functionAppDef) | Out-Null - - if ($PsCmdlet.ShouldProcess($Name, "Updating function app")) - { - # Save the ErrorActionPreference - $currentErrorActionPreference = $ErrorActionPreference - $ErrorActionPreference = 'Stop' - - try - { - if ($PsCmdlet.ShouldProcess($Name, "Updating function app")) - { - if ($Force.IsPresent -or $PsCmdlet.ShouldContinue("Update function app '$Name'?", "Updating function app")) - { - # Remove bound parameters from the dictionary that cannot be process by the intenal cmdlets - if ($PSBoundParameters.ContainsKey("Force")) - { - $PSBoundParameters.Remove("Force") | Out-Null - } - - Az.Functions.internal\Set-AzFunctionApp @PSBoundParameters - } - } - } - catch - { - $errorMessage = GetErrorMessage -Response $_ - - if ($errorMessage) - { - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "FailedToUdpateFunctionApp" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - throw $_ - } - finally - { - # Reset the ErrorActionPreference - $ErrorActionPreference = $currentErrorActionPreference - } - } - } -} - -# SIG # Begin signature block -# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCB+joQ4udqc4BI7 -# 4CdnFC52vGxe/sxBTqS/Ow8BDFqjZKCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIBNEjK/ov1Qo9b2FP7SLuHAo -# w/SmQZh3UT2OkTkrpD4YMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEArAhvC6mDoqQGZQwvhOw7zirMeOabvJcBqG1aZfZes3wtXrH64Eysv5KP -# 7qAeG19CnNsrU+jQKnnLbMyfp3NqgcmwMCM2x2gaEfnnGaRgo7A9jEuGKrWvSWVY -# P2JR9gLQmVBdzKHk3sXGYpPR5QRmq9KhxII+9rDEvjDCnOtF/ZSnRiTcEiXohmJC -# Pae6fphtk2fNDvC0b5HNW5iQdDUPhrfuluGEXJUtycd4IzweAOI6EiD7Byxnjn/r -# 7M6msadAY5REPchLaxosMoUNx2I22IGFwU2+PrmfwXeEqgEomjW7GMSzJHfrRDQ7 -# ynBkIngkagRhE7LWUGa3jiMl1tdux6GCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC -# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCAXL31C2RXYLyLC6ugYowMJlR9FbVwKiyxzAla5PsrniAIGZ1rLfdLi -# GBMyMDI1MDEwOTA2MzY0Mi44MDJaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTkzNS0w -# M0UwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHqMIIHIDCCBQigAwIBAgITMwAAAekPcTB+XfESNgABAAAB6TANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# MjZaFw0yNTAzMDUxODQ1MjZaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTkzNS0wM0UwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQCsmowxQRVgp4TSc3nTa6yrAPJnV6A7aZYnTw/yx90u -# 1DSH89nvfQNzb+5fmBK8ppH76TmJzjHUcImd845A/pvZY5O8PCBu7Gq+x5Xe6plQ -# t4xwVUUcQITxklOZ1Rm9fJ5nh8gnxOxaezFMM41sDI7LMpKwIKQMwXDctYKvCyQy -# 6kO2sVLB62kF892ZwcYpiIVx3LT1LPdMt1IeS35KY5MxylRdTS7E1Jocl30NgcBi -# JfqnMce05eEipIsTO4DIn//TtP1Rx57VXfvCO8NSCh9dxsyvng0lUVY+urq/G8QR -# FoOl/7oOI0Rf8Qg+3hyYayHsI9wtvDHGnT30Nr41xzTpw2I6ZWaIhPwMu5DvdkEG -# zV7vYT3tb9tTviY3psul1T5D938/AfNLqanVCJtP4yz0VJBSGV+h66ZcaUJOxpbS -# IjImaOLF18NOjmf1nwDatsBouXWXFK7E5S0VLRyoTqDCxHG4mW3mpNQopM/U1WJn -# jssWQluK8eb+MDKlk9E/hOBYKs2KfeQ4HG7dOcK+wMOamGfwvkIe7dkylzm8BeAU -# QC8LxrAQykhSHy+FaQ93DAlfQYowYDtzGXqE6wOATeKFI30u9YlxDTzAuLDK073c -# ndMV4qaD3euXA6xUNCozg7rihiHUaM43Amb9EGuRl022+yPwclmykssk30a4Rp3v -# 9QIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFJF+M4nFCHYjuIj0Wuv+jcjtB+xOMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQBWsSp+rmsxFLe61AE90Ken2XPgQHJDiS4S -# bLhvzfVjDPDmOdRE75uQohYhFMdGwHKbVmLK0lHV1Apz/HciZooyeoAvkHQaHmLh -# wBGkoyAAVxcaaUnHNIUS9LveL00PwmcSDLgN0V/Fyk20QpHDEukwKR8kfaBEX83A -# yvQzlf/boDNoWKEgpdAsL8SzCzXFLnDozzCJGq0RzwQgeEBr8E4K2wQ2WXI/ZJxZ -# S/+d3FdwG4ErBFzzUiSbV2m3xsMP3cqCRFDtJ1C3/JnjXMChnm9bLDD1waJ7TPp5 -# wYdv0Ol9+aN0t1BmOzCj8DmqKuUwzgCK9Tjtw5KUjaO6QjegHzndX/tZrY792dfR -# AXr5dGrKkpssIHq6rrWO4PlL3OS+4ciL/l8pm+oNJXWGXYJL5H6LNnKyXJVEw/1F -# bO4+Gz+U4fFFxs2S8UwvrBbYccVQ9O+Flj7xTAeITJsHptAvREqCc+/YxzhIKkA8 -# 8Q8QhJKUDtazatJH7ZOdi0LCKwgqQO4H81KZGDSLktFvNRhh8ZBAenn1pW+5UBGY -# z2GpgcxVXKT1CuUYdlHR9D6NrVhGqdhGTg7Og/d/8oMlPG3YjuqFxidiIsoAw2+M -# hI1zXrIi56t6JkJ75J69F+lkh9myJJpNkx41sSB1XK2jJWgq7VlBuP1BuXjZ3qgy -# m9r1wv0MtTCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNN -# MIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOkE5MzUtMDNFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQCr -# aYf1xDk2rMnU/VJo2GGK1nxo8aCBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymJpTAiGA8yMDI1MDEwODIzMzI1 -# M1oYDzIwMjUwMTA5MjMzMjUzWjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDrKYml -# AgEAMAcCAQACAiY0MAcCAQACAhO3MAoCBQDrKtslAgEAMDYGCisGAQQBhFkKBAIx -# KDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZI -# hvcNAQELBQADggEBAAQlwho/Cpc2tSYw1vt8Nusm/AJf/Yqg9evZ8PETElVrzhay -# zWqvq1NvLQUDBF/h2v4OUD3KLxjhCUKlA/o7mMBoFc7qpe/AyIaAE19CN0TkdcyL -# Ea/SMG0cUnkOoFF+Oo+eSKd3uznYnmYR9I06LuajHlThXy6N7GOr7J6gOB8vBmPs -# T7MG2CqyCfzRkz32sb2aUq0NAptBFpcJne91zFxwTUaXk5wQRyQe94HO9RW2NESk -# Z9EwvsW2ePzGIpcqLVg7IuOBlV/s89WyfkeoQqlWEdJ4LeuzNFzcn08O6mzom6HB -# rpKEVa7+cHp+6zz+CnEsBGgajWh5fn53NsRbIGoxggQNMIIECQIBATCBkzB8MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy -# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAekPcTB+XfESNgABAAAB6TAN -# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G -# CSqGSIb3DQEJBDEiBCAbayWVZBUbHiGjIw3WMEIplq6U976NaWknird+eEa9kDCB -# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIKSQkniXaTcmj1TKQWF+x2U4riVo -# rGD8TwmgVbN9qsQlMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAHpD3Ewfl3xEjYAAQAAAekwIgQgVsI9sjr04+BLBnuWLK2e0f0duiPI -# futB9xw9G6dDkcIwDQYJKoZIhvcNAQELBQAEggIAaEHRJ0rnEBCBaTt/Gfq+xryH -# r8BdEqXx9P08PiGKQSgcnrl8TzMCOSZvrEch3Ek01j2ePoKv7t4NoIE98JMfYc+/ -# 4Fqixnwow3kEfyGbMptq+s3+j8xxyzqyHVRgKZ0f8eWAqBsGiTCItHOOc/pDws9m -# LnS6u9unOHi1e+BXT//BqZ9JarINg+ziQVRbm4IiQktzpGD48pO8WoszlbUtx7HO -# ZNZOppQSDy4rj06iPL8SrWKRHND9ktaVWIgC0ZBYmToJiFLI+80dMMl01LL1f5Qh -# xZ7JFKA7jwUlSChkw+vukSC9L5DlLTGnuYodTJ9NKu0mnRHRM0AklQosv7KsS3aC -# vb8Z/PsNerxbGKWhhr/h0/7vPMDTNzIH+w1jAzDlC7QC5CnGsf0FDoSgwi+ZyRDg -# JhE9UTh0Hcd3oFIyfEql4QSHrWMnRaLtIOOThhHftzyAo0e+PBpy30dsFhOzpAqq -# II/fARPN7i358CN0lMCWJ9KMeAZq/1BDcF686QLBJLU460rIMtvJQq6yUHqagv97 -# 8a5H+nDe9d8A6kFlbWvC3W2defroZqywtW/ltYNIWILNQHMN9KebUC1FUQhbZ56M -# MIyOKvLgd/SzfZx7KBEz1IGPK/RO6KIPbVvlFKcQXaG6c0rcQaHBAwKzrfsTnT7D -# icS+gK4QxlE/ISyzwJI= -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Update-AzFunctionAppPlan.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Update-AzFunctionAppPlan.ps1 deleted file mode 100644 index 9a5391d93d4a..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Update-AzFunctionAppPlan.ps1 +++ /dev/null @@ -1,507 +0,0 @@ -function Update-AzFunctionAppPlan { - [OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Description('Updates a function app service plan.')] - [CmdletBinding(DefaultParameterSetName='ByName', SupportsShouldProcess=$true, ConfirmImpact='Medium')] - param( - [Parameter(ParameterSetName='ByName', HelpMessage='The Azure subscription ID.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [ValidateNotNullOrEmpty()] - [System.String] - ${SubscriptionId}, - - [Parameter(Mandatory=$true, ParameterSetName='ByName', HelpMessage='Name of the resource group to which the resource belongs.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [ValidateNotNullOrEmpty()] - [System.String] - ${ResourceGroupName}, - - [Parameter(Mandatory=$true, ParameterSetName='ByName', HelpMessage='Name of the App Service plan.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [ValidateNotNullOrEmpty()] - [System.String] - ${Name}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory=$true, ValueFromPipeline=$true)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan] - [ValidateNotNull()] - ${InputObject}, - - [Parameter(HelpMessage='The plan sku. Valid inputs are: EP1, EP2, EP3')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SkuType])] - [ValidateNotNullOrEmpty()] - [System.String] - # Sku (EP1, EP2 or EP3) - ${Sku}, - - [Parameter(HelpMessage='The maximum number of workers for the app service plan.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - [ValidateRange(1,100)] - [Alias("MaxBurst")] - ${MaximumWorkerCount}, - - [Parameter(HelpMessage='The minimum number of workers for the app service plan.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - [Alias("MinInstances")] - [ValidateRange(1,20)] - ${MinimumWorkerCount}, - - [Parameter(HelpMessage='Forces the cmdlet to update the function app plan without prompting for confirmation.')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter(HelpMessage='Resource tags.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IResourceTags]))] - [System.Collections.Hashtable] - [ValidateNotNull()] - ${Tag}, - - [Parameter(HelpMessage='Run the command asynchronously.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${NoWait}, - - [Parameter(HelpMessage='Run the command as a job.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${AsJob}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} - ) - process { - - RegisterFunctionsTabCompleters - - # Remove bound parameters from the dictionary that cannot be process by the intenal cmdlets. - foreach ($paramName in @("Sku", "MaximumWorkerCount", "MinimumWorkerCount", "Tag")) - { - if ($PSBoundParameters.ContainsKey($paramName)) - { - $PSBoundParameters.Remove($paramName) | Out-Null - } - } - - $existingPlan = $null - - if ($PsCmdlet.ParameterSetName -eq "ByObjectInput") - { - if ($PSBoundParameters.ContainsKey("InputObject")) - { - $PSBoundParameters.Remove("InputObject") | Out-Null - } - - $Name = $InputObject.Name - $ResourceGroupName = $InputObject.ResourceGroupName - - $PSBoundParameters.Add("Name", $Name) | Out-Null - $PSBoundParameters.Add("ResourceGroupName", $ResourceGroupName) | Out-Null - $PSBoundParameters.Add("SubscriptionId", $InputObject.SubscriptionId) | Out-Null - - $existingPlan = $InputObject - } - else - { - $params = GetParameterKeyValues -PSBoundParametersDictionary $PSBoundParameters ` - -ParameterList @("SubscriptionId", "HttpPipelineAppend", "HttpPipelinePrepend") - $existingPlan = Az.Functions.internal\Get-AzFunctionAppPlan -ResourceGroupName $ResourceGroupName ` - -Name $Name ` - -ErrorAction SilentlyContinue ` - @params - - if (-not $existingPlan) - { - $errorMessage = "Plan name '$Name' in resource group name '$ResourceGroupName' does not exist." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "PlanDoesNotExist" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - } - - # Make sure the plan is a 'ElasticPremium' - if ($existingPlan.SkuTier -ne "ElasticPremium") - { - $errorMessage = "Only ElasticPremium sku is suported when updating a function app plan. Current plan sku is: $($existingPlan.SkuTier)." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "InvalidPlanSku" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - if ($MaximumWorkerCount -lt $MinimumWorkerCount) - { - $errorMessage = "MinimumWorkerCount '$($MinimumWorkerCount)' cannot be less than '$($MaximumWorkerCount)'." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "MaximumWorkerCountIsOnlySupportedForElasticPremiumPlan" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - $shouldUpdateFunctionAppPlan = $false; - $servicePlan = New-Object -TypeName Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServicePlan - - # Plan settings - $servicePlan.Location = $existingPlan.Location - $servicePlan.SkuTier = $existingPlan.SkuTier - $servicePlan.SkuName = $existingPlan.SkuName - $servicePlan.Capacity = $existingPlan.Capacity - $servicePlan.Reserved = $existingPlan.Reserved - - if ($existingPlan.MaximumElasticWorkerCount) - { - $servicePlan.MaximumElasticWorkerCount = $existingPlan.MaximumElasticWorkerCount - } - - if ($Sku) - { - $Sku = NormalizeSku -Sku $Sku - $tier = GetSkuName -Sku $Sku - if ($existingPlan.SkuName -ne $SkuName) - { - $servicePlan.SkuTier = $tier - $servicePlan.SkuName = $Sku - $shouldUpdateFunctionAppPlan = $true - } - } - - if ($Tag -and ($Tag.Count -gt 0)) - { - $resourceTag = NewResourceTag -Tag $Tag - $servicePlan.Tag = $resourceTag - $shouldUpdateFunctionAppPlan = $true - } - - if ($MinimumWorkerCount -gt 0) - { - $servicePlan.Capacity = $MinimumWorkerCount - $shouldUpdateFunctionAppPlan = $true - } - - if ($MaximumWorkerCount -gt 0) - { - $servicePlan.MaximumElasticWorkerCount = $MaximumWorkerCount - $shouldUpdateFunctionAppPlan = $true - } - - # Add the service plan definition - $PSBoundParameters.Add("AppServicePlan", $servicePlan) | Out-Null - - if ($PsCmdlet.ShouldProcess($Name, "Updating function app plan")) - { - # Save the ErrorActionPreference - $currentErrorActionPreference = $ErrorActionPreference - $ErrorActionPreference = 'Stop' - - try - { - if (-not $shouldUpdateFunctionAppPlan) - { - # No changes for the current plan, return. - return - } - - if ($PsCmdlet.ShouldProcess($Name, "Updating function app plan")) - { - if ($Force.IsPresent -or $PsCmdlet.ShouldContinue("Update function app plan '$Name'?", "Updating function app plan")) - { - # Remove bound parameters from the dictionary that cannot be process by the intenal cmdlets - if ($PSBoundParameters.ContainsKey("Force")) - { - $PSBoundParameters.Remove("Force") | Out-Null - } - - Az.Functions.internal\Set-AzFunctionAppPlan @PSBoundParameters - } - } - } - catch - { - $errorMessage = GetErrorMessage -Response $_ - if ($errorMessage) - { - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "FailedToUpdateFunctionAppPlan" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - throw $_ - } - finally - { - # Reset the ErrorActionPreference - $ErrorActionPreference = $currentErrorActionPreference - } - } - } -} - -# SIG # Begin signature block -# MIIoLQYJKoZIhvcNAQcCoIIoHjCCKBoCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAl+y6s0M00na4y -# DS6Ej1lLyl5+Dk94c/AmGx+5SX21bqCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGg0wghoJAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIL/u2axFj9wKmOfTey3x4Q9U -# 7q6+kSlXEOMoaRpGY3ByMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAG9RvcUwdcjzFsu5YK/78t754pE1R2faB4LsA9UHHuNYx4ML4eRqmwxTf -# eeRsLuZi53wqePJ71JLhzf297Fc3EenfsobELNCisoMFvBhSYuQd5lFKiEt7prQi -# PUwL7EtgVbCnLE9MO9AeRcP1alTX2CINT1a8LMHDU7IRaas76gTZNmXbREmbgidD -# zNboSAlYJxguArPTgeT7nOohPhqI0AtQezB86Ln8PRNYlYpScJBI+q1CVhNkqS+L -# p85Y+TY+zVpBvCa9etBDbyzhPjMfpF2RE1yb7sOLx45nqlK8vD/F4ySNFmwr9024 -# FhugxaOJ+FXG4NSU2k52zgjh57Vc3qGCF5cwgheTBgorBgEEAYI3AwMBMYIXgzCC -# F38GCSqGSIb3DQEHAqCCF3AwghdsAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCBVmRlxHaYk9NDlSNKop6Pylwrmk8b2pjzkuV62X4tCggIGZ1rjbLqZ -# GBMyMDI1MDEwOTA2MzY0Mi44NTVaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046ODYwMy0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHtMIIHIDCCBQigAwIBAgITMwAAAfGzRfUn6MAW1gABAAAB8TANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# NTVaFw0yNTAzMDUxODQ1NTVaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046ODYwMy0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQCxulCZttIf8X97rW9/J+Q4Vg9PiugB1ya1/DRxxLW2 -# hwy4QgtU3j5fV75ZKa6XTTQhW5ClkGl6gp1nd5VBsx4Jb+oU4PsMA2foe8gP9bQN -# PVxIHMJu6TYcrrn39Hddet2xkdqUhzzySXaPFqFMk2VifEfj+HR6JheNs2LLzm8F -# DJm+pBddPDLag/R+APIWHyftq9itwM0WP5Z0dfQyI4WlVeUS+votsPbWm+RKsH4F -# QNhzb0t/D4iutcfCK3/LK+xLmS6dmAh7AMKuEUl8i2kdWBDRcc+JWa21SCefx5SP -# hJEFgYhdGPAop3G1l8T33cqrbLtcFJqww4TQiYiCkdysCcnIF0ZqSNAHcfI9SAv3 -# gfkyxqQNJJ3sTsg5GPRF95mqgbfQbkFnU17iYbRIPJqwgSLhyB833ZDgmzxbKmJm -# dDabbzS0yGhngHa6+gwVaOUqcHf9w6kwxMo+OqG3QZIcwd5wHECs5rAJZ6PIyFM7 -# Ad2hRUFHRTi353I7V4xEgYGuZb6qFx6Pf44i7AjXbptUolDcVzYEdgLQSWiuFajS -# 6Xg3k7Cy8TiM5HPUK9LZInloTxuULSxJmJ7nTjUjOj5xwRmC7x2S/mxql8nvHSCN -# 1OED2/wECOot6MEe9bL3nzoKwO8TNlEStq5scd25GA0gMQO+qNXV/xTDOBTJ8zBc -# GQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFLy2xe59sCE0SjycqE5Erb4YrS1gMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQDhSEjSBFSCbJyl3U/QmFMW2eLPBknnlsfI -# D/7gTMvANEnhq08I9HHbbqiwqDEHSvARvKtL7j0znICYBbMrVSmvgDxU8jAGqMyi -# LoM80788So3+T6IZV//UZRJqBl4oM3bCIQgFGo0VTeQ6RzYL+t1zCUXmmpPmM4xc -# ScVFATXj5Tx7By4ShWUC7Vhm7picDiU5igGjuivRhxPvbpflbh/bsiE5tx5cuOJE -# JSG+uWcqByR7TC4cGvuavHSjk1iRXT/QjaOEeJoOnfesbOdvJrJdbm+leYLRI67N -# 3cd8B/suU21tRdgwOnTk2hOuZKs/kLwaX6NsAbUy9pKsDmTyoWnGmyTWBPiTb2rp -# 5ogo8Y8hMU1YQs7rHR5hqilEq88jF+9H8Kccb/1ismJTGnBnRMv68Ud2l5LFhOZ4 -# nRtl4lHri+N1L8EBg7aE8EvPe8Ca9gz8sh2F4COTYd1PHce1ugLvvWW1+aOSpd8N -# nwEid4zgD79ZQxisJqyO4lMWMzAgEeFhUm40FshtzXudAsX5LoCil4rLbHfwYtGO -# pw9DVX3jXAV90tG9iRbcqjtt3vhW9T+L3fAZlMeraWfh7eUmPltMU8lEQOMelo/1 -# ehkIGO7YZOHxUqeKpmF9QaW8LXTT090AHZ4k6g+tdpZFfCMotyG+E4XqN6ZWtKEB -# QiE3xL27BDCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNQ -# MIICOAIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjg2MDMtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQD7 -# n7Bk4gsM2tbU/i+M3BtRnLj096CBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymhlzAiGA8yMDI1MDEwOTAxMTUw -# M1oYDzIwMjUwMTEwMDExNTAzWjB3MD0GCisGAQQBhFkKBAExLzAtMAoCBQDrKaGX -# AgEAMAoCAQACAgnWAgH/MAcCAQACAhLZMAoCBQDrKvMXAgEAMDYGCisGAQQBhFkK -# BAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJ -# KoZIhvcNAQELBQADggEBABWHux9xbYY4I0L4XVQj97eT2StJ8YAHfLn+PZEx9Hdg -# A8+ONymStatVt+SnyQ9nyV1lIGMKljTA95AUUN3xG9Eo2QioQUCRBmnqjp//gHsX -# Piv0u7m3VgnLsr/TnTo17aLOc0bOyYlS1BTthbz2XeyB646/F8ochBd1OqoCvluI -# Evv6Bx9hcodVtCm3pxAv4YDX8sXb0cFRNWz+Vq9JOKr4ankiYyp0INmV5C8cAHJb -# 4+PKlCzqdqx+GV4RdLaDvK7pcF6qcaO3J5Gl0I5OoeTF6KN1ifx90T0ps6q5LgV1 -# 6lzWULKJA/BVAnUF9Q+ybg+yEa3UGrkVPMsX8vGN7sQxggQNMIIECQIBATCBkzB8 -# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk -# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1N -# aWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAfGzRfUn6MAW1gABAAAB -# 8TANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEE -# MC8GCSqGSIb3DQEJBDEiBCCQZDkQkRIgt3aT+0t+MMyHx+ZIlXLYdXdncYq7w5sW -# 2zCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EINV3/T5hS7ijwao466RosB7w -# wEibt0a1P5EqIwEj9hF4MIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB -# IDIwMTACEzMAAAHxs0X1J+jAFtYAAQAAAfEwIgQgZv4QEc5hgS9BsS74vtux+Rzx -# z6O0XI7Iv02NK7Hl7vIwDQYJKoZIhvcNAQELBQAEggIAYwZ2uSXrs84tRlfKhMqx -# BpzC/bMrEcyUfi964sh71Fy75swULmKpmklV8std2EXydDIURy+GWs1Z7/XVbNiM -# QGB/1u+CNXt1wYchByOW+X7dRPmUFfND4PuVdXyu3NAZMWV7slepjJxnaNj2ooYN -# d2alnix83ED1PJEvpI7zdMszqNNXjSbnA1crySMkpfStAmjBVTF/YTBtrxINyAfL -# hq6SrXlxeGe8D9+MZ8c2J+9paBMwB3T4bU67ADGbAEQncyOox2eYXQj7EGNaQeRX -# mGJGHVE8SHxTCgsJMfviDpeMi6V9oo5+mzX+u+bzrpUjGTJ3fsyymBYYBYSdP8Vo -# Ls2Ub5HUZreGhE7MZhvsaYvKv23S6fwimNwm+izK7z5UM+X67yUZQAHPi02oaKku -# i2sATYp9dJU/PQA3M8DE9fXwfSJaHdnshkroxp0ACENigd2PqPkv0mJrb1YVwFrg -# OUxa8QLLN4v3k7B8cX3XCuermVLlpT5Log+rorDMOAurpTawnXNc3e5gp9MrL+R/ -# L7GyPH9tsFrFg013MVGM2N7M7MkXOAn7stJ98KQmUFB9Rp67BcIxhVhrNfKfYje/ -# QlWBtrD0Q7oi7egqzs1ZeU3qpbb4hA4M5ZQDkV1ncN1+FscFS0ZOpvjdP3mB06tj -# 0nC49vp5V/bkh6UOdzOYWiw= -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Update-AzFunctionAppSetting.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Update-AzFunctionAppSetting.ps1 deleted file mode 100644 index f512c48542af..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Update-AzFunctionAppSetting.ps1 +++ /dev/null @@ -1,391 +0,0 @@ -function Update-AzFunctionAppSetting { - [OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Description('Adds or updates app settings in a function app.')] - [CmdletBinding(DefaultParameterSetName='ByName', SupportsShouldProcess=$true, ConfirmImpact='Medium')] - param( - [Parameter(ParameterSetName='ByName', Mandatory=$true, HelpMessage='Name of the function app.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [ValidateNotNullOrEmpty()] - [System.String] - ${Name}, - - [Parameter(ParameterSetName='ByName', Mandatory=$true, HelpMessage='Name of the resource group to which the resource belongs.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [ValidateNotNullOrEmpty()] - [System.String] - ${ResourceGroupName}, - - [Parameter(ParameterSetName='ByName', HelpMessage='The Azure subscription ID.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [ValidateNotNullOrEmpty()] - [System.String] - ${SubscriptionId}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory=$true, ValueFromPipeline=$true)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - [ValidateNotNull()] - ${InputObject}, - - [Parameter(Mandatory=$true, HelpMessage='Hashtable with keys and values describe the app settings to be added or updated in the function app. For example: @{"myappsetting"="123"}')] - [Hashtable] - [ValidateNotNullOrEmpty()] - ${AppSetting}, - - [Parameter(HelpMessage='Forces the cmdlet to update function app setting without prompting for confirmation.')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The credentials, account, tenant, and subscription used for communication with Azure. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} - ) - process { - - RegisterFunctionsTabCompleters - - # Remove bound parameters from the dictionary that cannot be process by the intenal cmdlets - $paramsToRemove = @( - "AppSetting" - "Force" - ) - foreach ($paramName in $paramsToRemove) - { - if ($PSBoundParameters.ContainsKey($paramName)) - { - $PSBoundParameters.Remove($paramName) | Out-Null - } - } - - if ($PsCmdlet.ParameterSetName -eq "ByObjectInput") - { - if ($PSBoundParameters.ContainsKey("InputObject")) - { - $PSBoundParameters.Remove("InputObject") | Out-Null - - $Name = $InputObject.Name - $ResourceGroupName = $InputObject.ResourceGroupName - - $PSBoundParameters.Add("Name", $Name) | Out-Null - $PSBoundParameters.Add("ResourceGroupName", $ResourceGroupName) | Out-Null - $PSBoundParameters.Add("SubscriptionId", $InputObject.SubscriptionId) | Out-Null - } - } - - if ($AppSetting.Count -eq 0) - { - return - } - - $params = GetParameterKeyValues -PSBoundParametersDictionary $PSBoundParameters ` - -ParameterList @("SubscriptionId", "HttpPipelineAppend", "HttpPipelinePrepend") - - $currentAppSettings = $null - $settings = $null - $settings = Az.Functions.internal\Get-AzWebAppApplicationSetting -Name $Name -ResourceGroupName $ResourceGroupName @params - if ($null -ne $settings) - { - $currentAppSettings = ConvertWebAppApplicationSettingToHashtable -ApplicationSetting $settings -ShowAllAppSettings - } - - # Add new or replace any existing app settings - foreach ($keyName in $AppSetting.Keys) - { - $currentAppSettings[$keyName] = $AppSetting[$keyName] - } - - $newAppSettings = NewAppSettingObject -CurrentAppSetting $currentAppSettings - $shouldPromptForConfirmation = ContainsReservedFunctionAppSettingName -AppSettingName $AppSetting.Keys - - $PSBoundParameters.Add("AppSetting", $newAppSettings) | Out-Null - - if ($PsCmdlet.ShouldProcess($Name, "Updating function app setting")) - { - if ($shouldPromptForConfirmation) - { - $message = "You are about to modify app settings that are used to configure your function app '$Name'. " - $message += "Doing this could leave your function app in an inconsistent state. Are you sure?" - - if ($Force.IsPresent -or $PsCmdlet.ShouldContinue($message, "Updating function app settings")) - { - Az.Functions.internal\Set-AzWebAppApplicationSetting @PSBoundParameters | Out-Null - } - } - else - { - $null = Az.Functions.internal\Set-AzWebAppApplicationSetting @PSBoundParameters | Out-Null - } - - # The latest API version does not return the list of app settings. Make a second call to retrieve them. - $updatedSettings = Az.Functions.internal\Get-AzWebAppApplicationSetting -Name $Name -ResourceGroupName $ResourceGroupName @params - - if ($null -ne $updatedSettings) - { - ConvertWebAppApplicationSettingToHashtable -ApplicationSetting $updatedSettings ` - -AppSettingsToShow $AppSetting.Keys ` - -ShowOnlySpecificAppSettings - } - } - } -} - -# SIG # Begin signature block -# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCZKNI32ttjtAjl -# 9jSO+jeAc0VXrohc/IKOWRHZIlYkWKCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIAxDIyTsLZnnqYaSdNOKzxtx -# q1+WIZMazmZacnYmWb6cMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAGkYLXTrcjIY38t70mX66ZXbJuWQNcGROBPpVC+qUd8MslUJsiwsXzhOb -# OFWgeWZqRkePx/X2oULmaY2esLrdvc6GR55hFYJALutRCoXPpUtxonyh9dLsPj0Q -# 38XCYHvSUAEgU6jBHrABmUEhpjc7WjtU5D9uU41z0W6tg7y4HmasP8tMb+s2LUd4 -# z8Raezb8tZ2Y9BSH23wvz3WFb5t3wSzIVPL/BGoyvvWoet64A8gRroOzZIAaWImN -# NFcU82X4IcQxwQmXWNWDgARjGZabvfkgJJ4P0uN7Dcri30nEzrUblBArz8Nuxj0D -# WvzWFr0p+DNJXvponGcn+NDaCSlrw6GCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC -# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCAUlle1fJurdmOmIWrK4W/GGMoCw7ExolmJu2kN547+xwIGZ1r0VeQB -# GBMyMDI1MDEwOTA2MzY1MC4wMzdaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046ODkwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHqMIIHIDCCBQigAwIBAgITMwAAAe3hX8vV96VdcwABAAAB7TANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# NDFaFw0yNTAzMDUxODQ1NDFaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046ODkwMC0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQCoMMJskrrqapycLxPC1H7zD7g88NpbEaQ6SjcTIRbz -# CVyYQNsz8TaL1pqFTEAPL1X7ojL4/EaEW+UjNqZs/ayMyW4YIpFPZP2x4FBMVCdd -# seF2i+aMMjDHi0LcTQZxM2s3mFMrCZAWSfLYXYDIimFBz8j0oLWGy3VgLmBTKM4x -# Lqv7DZUz8B2SoAmbEtp62ngSl0hOoN73SFwE+Y24SvGQMWhykpG+vXDwcpWvwDe+ -# TgnrLR7ATRFXN5JS26dm2yy6SYFMRYnME3dMHCQ/UQIQQNC8nLmIvdKkAoWEMXtJ -# sGEo3QrM2S2SBv4PpHRzRukzTtP+UAceGxM9JyrwUQP5OCEmW6YchEyRDSwP4hU9 -# f7B0Ayh14Pw9vJo7jewNjeMPIkmneyLSi0ruv2ox/xRGtcJ9yBNC5BaRktjz7stP -# aojR+PDA2fuBtCo8xKlkt53mUb7AY+CZHHqhLm76pdMF6BHv2TvwlVBeQRN22Xja -# VVRwCgjgJnNewt7PejcrpUn0qHLgLq+1BN1DzYukWkTr7wT0zl0iXr+NtqUkWSOn -# WRfe8N21tB6uv3VkW8nFdChtbbZZz24peLtJEZuNrN8Xf9PTPMzZXDJBI1EciR/9 -# 1QcGoZFmVbFVb2rUIAs01+ZkewvbhmGVDefX9oZG4/K4gGUsTvTW+r1JZMxUT2Mw -# qQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFM4b8Oz33hAqBEfKlAZf0NKh4CIZMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQCd1gK2Rd+eGL0eHi+iE6/qDY8sbbsO4ema -# ncp6KPN+xq5ZAatiBR4jmRRhm+9Vik0Fo0DLWi/N28bFI7dXYw09p3vCipbjy4Eo -# ifm0Nud7/4U30i9+7RvW7XOQ3rx37+U7vq9lk6yYpGCNp0jlJ188/CuRPgqJnfq5 -# EdeafH2AoG46hKWTeB7DuXasGt6spJOenGedSre34MWZqeTIQ0raOItZnFuGDy4+ -# xoD1qRz2QW+u2gCHaG8AQjhYUM4uTi9t6kttj6c7Xamr2zrWuceDhz7sKLttLTJ7 -# ws5YrA2I8cTlbMAf2KW0GVjKbYGd+LZGduEK7/7fs4GUkMqc51FsNdG1n+zgc7zH -# u2oGGeCBg4s8ZR0ZFyx7jsgm9sSFCKQ5CsbAvlr/60Ndk5TeMR8Js2kNUicu2CqZ -# 03833TsvTgk7iD1KLgfS16HEvjN6m4VKJKgjJ7OJJzabtS4JQgUnJrIZfyosk4D1 -# 8rZni9pUwN03WgTmd10WTwiZOu4g8Un6iKcPMY/iFqTu4ntkzFUxBBpbFG6k1CIN -# ZmoirEWmCtG3lyZ2IddmjtIefTkIvGWb4Jxzz7l2m/E2kGOixDJHsahZVmwsoNvh -# y5ku/inU++dXHzw+hlvqTSFT89rIFVhcmsWPDJPNRSSpMhoJ33V2Za/lkKcbkUM0 -# SbQgS9qsdzCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNN -# MIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjg5MDAtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQDu -# HayKTCaYsYxJh+oWTx6uVPFw+aCBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymygDAiGA8yMDI1MDEwOTAyMjcx -# MloYDzIwMjUwMTEwMDIyNzEyWjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDrKbKA -# AgEAMAcCAQACAhbZMAcCAQACAhMSMAoCBQDrKwQAAgEAMDYGCisGAQQBhFkKBAIx -# KDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZI -# hvcNAQELBQADggEBACn1b5KnkJiAf9A6R/SjvtbOrGduJWnWonsXKPptDkaQJ/jq -# h8hZIma3W7JHrYr2Jyv4AXnt4l5fkmspdaMCoq6KGLhoCdhGggzU70J4s1ohAeSn -# auOqdS3yV5ddSglwd5dQi7wDyB7Vss6L9hZpZgoljHE+8LXELYRPEXTUNdh0t/Ta -# lsRYXondvormVffUkyXY6nqZlOnUZq26qmr8DCj6dmWccZ+NRtVCuFswqT17sqnw -# 5haDIuCA20MgcRAUAfBOufvyHjb8K/HM76Hm0dtK0j/qE0g6Mum/F0YyC9SyYuzJ -# k8mydlwOA4GkkW8gdhmrg7l7SYYRVzpIOeqXVFsxggQNMIIECQIBATCBkzB8MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy -# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAe3hX8vV96VdcwABAAAB7TAN -# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G -# CSqGSIb3DQEJBDEiBCCxStZwxWZLwGMqMjllCxddsorxH7MYOzrinkq/tmCiEjCB -# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EII0uDWg0CFseKxK3A16l1wrIwrsS -# DrXZ6xSf0F4xbMo5MIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAHt4V/L1felXXMAAQAAAe0wIgQgHZJuYFotPXySbWtoYQzcjhOI+Gdz -# M2vjq7x+59R0CtQwDQYJKoZIhvcNAQELBQAEggIAHh1EKG9j8jF/vjlw6+wl57cU -# ChbG3DdJJehULP4HgLQcKEKcx2vn7FBBOSm1XwaRMre5z/xO879gmgwhNj9JQKzz -# eD9PuCJeN44xe+FbbtQ6jyvaAq0f6UrMWN5B7tW7HIA4o497JLEyyPMJA/1h2nmZ -# dVJoNZf8yi8s/l1Uvyogg9J7BjFlRhL5Szqk/augOvbpgPsqujP94UJ+Xj1w+7O3 -# RHvAexRsl5a3GEBk0cCHlc9RNczdJfRG1j+Q0ICHVa1NEYfXO+F4LJpjQp7wx1zQ -# js/Q9i9aGS/Om4XO3Gg9kYGT9IiEsbmfnYnB7bYI/D6mknt/7Jpx4g73RiPEGyZR -# z/EsokEUr7oxMkn6DQrmbqr2fLS4jMcgbIDKdTsSwYQlyLRIgosEKywB4s4H+ExI -# PhH9t2mrJaaSiHGb4oIR56x5sj8dVgR3HY/1W6OUjz5FiOO/bWFDzoljWCnqjj7y -# zBafmxNbFt9sgz5M5cByCi+AIDMmQqGvHfccWkXQcC7gimtieNaK0+BOfARt5DPk -# lB8Qc0SxFQ7+/1hnm26FvI6Xv7G1rLIl81qoPXGigyH+xxeCdkpzfo66cxf9nJSv -# CAIN+jykDWijrifg/1LPYg0ITHUY4Bjrei10JtwwFEdMYTaUOBvr9QG6nRqdLdm0 -# MPGydTUQQTvZ7vfl8dI= -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/AvailablePlanType.cs b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/AvailablePlanType.cs deleted file mode 100644 index 89fcb576c4fa..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/AvailablePlanType.cs +++ /dev/null @@ -1,33 +0,0 @@ -namespace Microsoft.Azure.PowerShell.Cmdlets.Functions.Support -{ - /// Argument completer implementation for PlanTypeOptions. - [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AvailablePlanType))] - public partial struct AvailablePlanType : - System.Management.Automation.IArgumentCompleter - { - - /// - /// Implementations of this function are called by PowerShell to complete arguments. - /// - /// The name of the command that needs argument completion. - /// The name of the parameter that needs argument completion. - /// The (possibly empty) word being completed. - /// The command ast in case it is needed for completion. - /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot - /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. - /// - /// A collection of completion results, most like with ResultType set to ParameterValue. - /// - public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) - { - if (global::System.String.IsNullOrEmpty(wordToComplete) || "Consumption".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) - { - yield return new global::System.Management.Automation.CompletionResult("Consumption", "Consumption", global::System.Management.Automation.CompletionResultType.ParameterValue, "Consumption"); - } - if (global::System.String.IsNullOrEmpty(wordToComplete) || "Premium".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) - { - yield return new global::System.Management.Automation.CompletionResult("Premium", "Premium", global::System.Management.Automation.CompletionResultType.ParameterValue, "Premium"); - } - } - } -} diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/FunctionAppManagedServiceIdentityCreateType.cs b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/FunctionAppManagedServiceIdentityCreateType.cs deleted file mode 100644 index 848a2ba83ddc..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/FunctionAppManagedServiceIdentityCreateType.cs +++ /dev/null @@ -1,33 +0,0 @@ -namespace Microsoft.Azure.PowerShell.Cmdlets.Functions.Support -{ - /// Argument completer implementation for PlanTypeOptions. - [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FunctionAppManagedServiceIdentityCreateType))] - public partial struct FunctionAppManagedServiceIdentityCreateType : - System.Management.Automation.IArgumentCompleter - { - - /// - /// Implementations of this function are called by PowerShell to complete arguments. - /// - /// The name of the command that needs argument completion. - /// The name of the parameter that needs argument completion. - /// The (possibly empty) word being completed. - /// The command ast in case it is needed for completion. - /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot - /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. - /// - /// A collection of completion results, most like with ResultType set to ParameterValue. - /// - public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) - { - if (global::System.String.IsNullOrEmpty(wordToComplete) || "SystemAssigned".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) - { - yield return new global::System.Management.Automation.CompletionResult("SystemAssigned", "SystemAssigned", global::System.Management.Automation.CompletionResultType.ParameterValue, "SystemAssigned"); - } - if (global::System.String.IsNullOrEmpty(wordToComplete) || "UserAssigned".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) - { - yield return new global::System.Management.Automation.CompletionResult("UserAssigned", "UserAssigned", global::System.Management.Automation.CompletionResultType.ParameterValue, "UserAssigned"); - } - } - } -} diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/FunctionAppManagedServiceIdentityUpdateType.cs b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/FunctionAppManagedServiceIdentityUpdateType.cs deleted file mode 100644 index 75b1d58a4b60..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/FunctionAppManagedServiceIdentityUpdateType.cs +++ /dev/null @@ -1,37 +0,0 @@ -namespace Microsoft.Azure.PowerShell.Cmdlets.Functions.Support -{ - /// Argument completer implementation for PlanTypeOptions. - [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FunctionAppManagedServiceIdentityUpdateType))] - public partial struct FunctionAppManagedServiceIdentityUpdateType : - System.Management.Automation.IArgumentCompleter - { - - /// - /// Implementations of this function are called by PowerShell to complete arguments. - /// - /// The name of the command that needs argument completion. - /// The name of the parameter that needs argument completion. - /// The (possibly empty) word being completed. - /// The command ast in case it is needed for completion. - /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot - /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. - /// - /// A collection of completion results, most like with ResultType set to ParameterValue. - /// - public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) - { - if (global::System.String.IsNullOrEmpty(wordToComplete) || "SystemAssigned".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) - { - yield return new global::System.Management.Automation.CompletionResult("SystemAssigned", "SystemAssigned", global::System.Management.Automation.CompletionResultType.ParameterValue, "SystemAssigned"); - } - if (global::System.String.IsNullOrEmpty(wordToComplete) || "UserAssigned".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) - { - yield return new global::System.Management.Automation.CompletionResult("UserAssigned", "UserAssigned", global::System.Management.Automation.CompletionResultType.ParameterValue, "UserAssigned"); - } - if (global::System.String.IsNullOrEmpty(wordToComplete) || "None".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) - { - yield return new global::System.Management.Automation.CompletionResult("None", "None", global::System.Management.Automation.CompletionResultType.ParameterValue, "None"); - } - } - } -} diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/PlanType.cs b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/PlanType.cs deleted file mode 100644 index 81be45e3279a..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/PlanType.cs +++ /dev/null @@ -1,29 +0,0 @@ -namespace Microsoft.Azure.PowerShell.Cmdlets.Functions.Support -{ - /// Argument completer implementation for PlanTypeOptions. - [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.PlanType))] - public partial struct PlanType : - System.Management.Automation.IArgumentCompleter - { - - /// - /// Implementations of this function are called by PowerShell to complete arguments. - /// - /// The name of the command that needs argument completion. - /// The name of the parameter that needs argument completion. - /// The (possibly empty) word being completed. - /// The command ast in case it is needed for completion. - /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot - /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. - /// - /// A collection of completion results, most like with ResultType set to ParameterValue. - /// - public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) - { - if (global::System.String.IsNullOrEmpty(wordToComplete) || "Premium".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) - { - yield return new global::System.Management.Automation.CompletionResult("Premium", "Premium", global::System.Management.Automation.CompletionResultType.ParameterValue, "Premium"); - } - } - } -} diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/SkuType.cs b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/SkuType.cs deleted file mode 100644 index 3e638776246e..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/SkuType.cs +++ /dev/null @@ -1,37 +0,0 @@ -namespace Microsoft.Azure.PowerShell.Cmdlets.Functions.Support -{ - /// Argument completer implementation for SkuOptions. - [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SkuType))] - public partial struct SkuType : - System.Management.Automation.IArgumentCompleter - { - - /// - /// Implementations of this function are called by PowerShell to complete arguments. - /// - /// The name of the command that needs argument completion. - /// The name of the parameter that needs argument completion. - /// The (possibly empty) word being completed. - /// The command ast in case it is needed for completion. - /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot - /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. - /// - /// A collection of completion results, most like with ResultType set to ParameterValue. - /// - public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) - { - if (global::System.String.IsNullOrEmpty(wordToComplete) || "EP1".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) - { - yield return new global::System.Management.Automation.CompletionResult("EP1", "EP1", global::System.Management.Automation.CompletionResultType.ParameterValue, "EP1"); - } - if (global::System.String.IsNullOrEmpty(wordToComplete) || "EP2".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) - { - yield return new global::System.Management.Automation.CompletionResult("EP2", "EP2", global::System.Management.Automation.CompletionResultType.ParameterValue, "EP2"); - } - if (global::System.String.IsNullOrEmpty(wordToComplete) || "EP3".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) - { - yield return new global::System.Management.Automation.CompletionResult("EP3", "EP3", global::System.Management.Automation.CompletionResultType.ParameterValue, "EP3"); - } - } - } -} diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/WorkerType.cs b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/WorkerType.cs deleted file mode 100644 index 8c427ac2a14c..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/WorkerType.cs +++ /dev/null @@ -1,33 +0,0 @@ -namespace Microsoft.Azure.PowerShell.Cmdlets.Functions.Support -{ - /// Argument completer implementation for WorkerTypeOptions. - [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.WorkerType))] - public partial struct WorkerType : - System.Management.Automation.IArgumentCompleter - { - - /// - /// Implementations of this function are called by PowerShell to complete arguments. - /// - /// The name of the command that needs argument completion. - /// The name of the parameter that needs argument completion. - /// The (possibly empty) word being completed. - /// The command ast in case it is needed for completion. - /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot - /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. - /// - /// A collection of completion results, most like with ResultType set to ParameterValue. - /// - public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) - { - if (global::System.String.IsNullOrEmpty(wordToComplete) || "Linux".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) - { - yield return new global::System.Management.Automation.CompletionResult("Linux", "Linux", global::System.Management.Automation.CompletionResultType.ParameterValue, "Linux"); - } - if (global::System.String.IsNullOrEmpty(wordToComplete) || "Windows".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) - { - yield return new global::System.Management.Automation.CompletionResult("Windows", "Windows", global::System.Management.Automation.CompletionResultType.ParameterValue, "Windows"); - } - } - } -} diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/exports/ProxyCmdletDefinitions.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/exports/ProxyCmdletDefinitions.ps1 deleted file mode 100644 index 339debe01b69..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/exports/ProxyCmdletDefinitions.ps1 +++ /dev/null @@ -1,5265 +0,0 @@ - -# ---------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# http://www.apache.org/licenses/LICENSE-2.0 -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Code generated by Microsoft (R) AutoRest Code Generator.Changes may cause incorrect behavior and will be lost if the code -# is regenerated. -# ---------------------------------------------------------------------------------- - -<# -.Synopsis -Gets function apps in a subscription. -.Description -Gets function apps in a subscription. -.Example -Get-AzFunctionApp -.Example -Get-AzFunctionApp -ResourceGroupName Functions-West-Europe-Win -Name Functions1-Windows-DoNet -.Example -Get-AzFunctionApp -ResourceGroupName Functions-West-Europe-Win -.Example -Get-AzFunctionApp -SubscriptionId fe16564a-d943-4bf8-8c28-cf01708c3f8b -.Example -Get-AzFunctionApp -Location "Central US" - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azfunctionapp -#> -function Get-AzFunctionApp { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite])] -[CmdletBinding(DefaultParameterSetName='GetAll', PositionalBinding=$false)] -param( - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # The Azure subscription ID. - ${SubscriptionId}, - - [Parameter(ParameterSetName='ByLocation', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The location of the function app. - ${Location}, - - [Parameter(ParameterSetName='ByResourceGroupName', Mandatory)] - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the resource group. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the function app. - ${Name}, - - [Parameter(ParameterSetName='ByResourceGroupName')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Use to specify whether to include deployment slots in results. - ${IncludeSlot}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The credentials, account, tenant, and subscription used for communication with Azure. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - GetAll = 'Az.Functions.custom\Get-AzFunctionApp'; - ByLocation = 'Az.Functions.custom\Get-AzFunctionApp'; - ByResourceGroupName = 'Az.Functions.custom\Get-AzFunctionApp'; - ByName = 'Az.Functions.custom\Get-AzFunctionApp'; - } - if (('GetAll', 'ByLocation', 'ByResourceGroupName', 'ByName') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -Gets the location where a function app for the given os and plan type is available. -.Description -Gets the location where a function app for the given os and plan type is available. -.Example -Get-AzFunctionAppAvailableLocation -.Example -Get-AzFunctionAppAvailableLocation -PlanType Premium -OSType Linux -.Example -Get-AzFunctionAppAvailableLocation -PlanType Consumption -OSType Windows - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IGeoRegion -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azfunctionappavailablelocation -#> -function Get-AzFunctionAppAvailableLocation { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IGeoRegion])] -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=0)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # The Azure subscription ID. - ${SubscriptionId}, - - [Parameter(Position=1)] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AvailablePlanType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The plan type. - # Valid inputs: Consumption or Premium - ${PlanType}, - - [Parameter(Position=2)] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.WorkerType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The OS type for the service plan. - ${OSType}, - - [Parameter(Position=3)] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The credentials, account, tenant, and subscription used for communication with Azure. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${Break}, - - [Parameter(Position=4, DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelineAppend}, - - [Parameter(Position=5, DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(Position=6, DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - ${Proxy}, - - [Parameter(Position=7, DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - __AllParameterSets = 'Az.Functions.custom\Get-AzFunctionAppAvailableLocation'; - } - if (('__AllParameterSets') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -Get function apps plans in a subscription. -.Description -Get function apps plans in a subscription. -.Example -Get-AzFunctionAppPlan -.Example -Get-AzFunctionAppPlan -ResourceGroupName "West Europe" -.Example -Get-AzFunctionAppPlan -SubscriptionId fe16564a-d943-4bf8-8c28-cf01708c3f8z -.Example -Get-AzFunctionAppPlan -Location "Central US" - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azfunctionappplan -#> -function Get-AzFunctionAppPlan { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan])] -[CmdletBinding(DefaultParameterSetName='GetAll', PositionalBinding=$false)] -param( - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # The Azure subscription ID. - ${SubscriptionId}, - - [Parameter(ParameterSetName='ByLocation', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The location of the function app plan. - ${Location}, - - [Parameter(ParameterSetName='ByResourceGroupName')] - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the resource group. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The service plan name. - ${Name}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The credentials, account, tenant, and subscription used for communication with Azure. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - GetAll = 'Az.Functions.custom\Get-AzFunctionAppPlan'; - ByLocation = 'Az.Functions.custom\Get-AzFunctionAppPlan'; - ByResourceGroupName = 'Az.Functions.custom\Get-AzFunctionAppPlan'; - ByName = 'Az.Functions.custom\Get-AzFunctionAppPlan'; - } - if (('GetAll', 'ByLocation', 'ByResourceGroupName', 'ByName') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -Gets app settings for a function app. -.Description -Gets app settings for a function app. -.Example -Get-AzFunctionAppSetting -Name MyAppName -ResourceGroupName MyResourceGroupName - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : - Location : Resource Location. - [Kind ]: Kind of resource. - [Tag ]: Resource tags. - [(Any) ]: This indicates any property can be added to this object. - [AuthenticationStorageAccountConnectionStringName ]: Use this property for StorageAccountConnectionString. Set the name of the app setting that has the storage account connection string. Do not set a value for this property when using other authentication type. - [AuthenticationType ]: Property to select authentication type to access the selected storage account. Available options: SystemAssignedIdentity, UserAssignedIdentity, StorageAccountConnectionString. - [AuthenticationUserAssignedIdentityResourceId ]: Use this property for UserAssignedIdentity. Set the resource ID of the identity. Do not set a value for this property when using other authentication type. - [ClientAffinityEnabled ]: true to enable client affinity; false to stop sending session affinity cookies, which route client requests in the same session to the same instance. Default is true. - [ClientCertEnabled ]: true to enable client certificate authentication (TLS mutual authentication); otherwise, false. Default is false. - [ClientCertExclusionPath ]: client certificate authentication comma-separated exclusion paths - [ClientCertMode ]: This composes with ClientCertEnabled setting. - ClientCertEnabled: false means ClientCert is ignored. - ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required. - ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted. - [CloningInfoAppSettingsOverride ]: Application setting overrides for cloned app. If specified, these settings override the settings cloned from source app. Otherwise, application settings from source app are retained. - [(Any) ]: This indicates any property can be added to this object. - [CloningInfoCloneCustomHostName ]: true to clone custom hostnames from source app; otherwise, false. - [CloningInfoCloneSourceControl ]: true to clone source control from source app; otherwise, false. - [CloningInfoConfigureLoadBalancing ]: true to configure load balancing for source and destination app. - [CloningInfoCorrelationId ]: Correlation ID of cloning operation. This ID ties multiple cloning operations together to use the same snapshot. - [CloningInfoHostingEnvironment ]: App Service Environment. - [CloningInfoOverwrite ]: true to overwrite destination app; otherwise, false. - [CloningInfoSourceWebAppId ]: ARM resource ID of the source app. App resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots. - [CloningInfoSourceWebAppLocation ]: Location of source app ex: West US or North Europe - [CloningInfoTrafficManagerProfileId ]: ARM resource ID of the Traffic Manager profile to use, if it exists. Traffic Manager resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}. - [CloningInfoTrafficManagerProfileName ]: Name of Traffic Manager profile to create. This is only needed if Traffic Manager profile does not already exist. - [Config ]: Configuration of the app. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - [ContainerSize ]: Size of the function container. - [CustomDomainVerificationId ]: Unique identifier that verifies the custom domains assigned to the app. Customer will add this id to a txt record for verification. - [DailyMemoryTimeQuota ]: Maximum allowed daily memory-time quota (applicable on dynamic apps only). - [DaprConfigAppId ]: Dapr application identifier - [DaprConfigAppPort ]: Tells Dapr which port your application is listening on - [DaprConfigEnableApiLogging ]: Enables API logging for the Dapr sidecar - [DaprConfigEnabled ]: Boolean indicating if the Dapr side car is enabled - [DaprConfigHttpMaxRequestSize ]: Increasing max size of request body http servers parameter in MB to handle uploading of big files. Default is 4 MB. - [DaprConfigHttpReadBufferSize ]: Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. - [DaprConfigLogLevel ]: Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. - [DnsConfigurationDnsAltServer ]: Alternate DNS server to be used by apps. This property replicates the WEBSITE_DNS_ALT_SERVER app setting. - [DnsConfigurationDnsMaxCacheTimeout ]: Custom time for DNS to be cached in seconds. Allowed range: 0-60. Default is 30 seconds. 0 means caching disabled. - [DnsConfigurationDnsRetryAttemptCount ]: Total number of retries for dns lookup. Allowed range: 1-5. Default is 3. - [DnsConfigurationDnsRetryAttemptTimeout ]: Timeout for a single dns lookup in seconds. Allowed range: 1-30. Default is 3. - [DnsConfigurationDnsServer ]: List of custom DNS servers to be used by an app for lookups. Maximum 5 dns servers can be set. - [Enabled ]: true if the app is enabled; otherwise, false. Setting this value to false disables the app (takes the app offline). - [ExtendedLocationName ]: Name of extended location. - [HostNameSslState ]: Hostname SSL states are used to manage the SSL bindings for app's hostnames. - [HostType ]: Indicates whether the hostname is a standard or repository hostname. - [Name ]: Hostname. - [SslState ]: SSL type. - [Thumbprint ]: SSL certificate thumbprint. - [ToUpdate ]: Set to true to update existing hostname. - [VirtualIP ]: Virtual IP address assigned to the hostname if IP based SSL is enabled. - [HostNamesDisabled ]: true to disable the public hostnames of the app; otherwise, false. If true, the app is only accessible via API management process. - [HostingEnvironmentProfileId ]: Resource ID of the App Service Environment. - [HttpPerInstanceConcurrency ]: The maximum number of concurrent HTTP trigger invocations per instance. - [HttpsOnly ]: HttpsOnly: configures a web site to accept only https requests. Issues redirect for http requests - [HyperV ]: Hyper-V sandbox. - [IdentityType ]: Type of managed service identity. - [IdentityUserAssignedIdentity ]: The list of user assigned identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} - [(Any) ]: This indicates any property can be added to this object. - [IsXenon ]: Obsolete: Hyper-V sandbox. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [ManagedEnvironmentId ]: Azure Resource Manager ID of the customer's selected Managed Environment on which to host this app. This must be of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.App/managedEnvironments/{managedEnvironmentName} - [PublicNetworkAccess ]: Property to allow or block all public traffic. Allowed Values: 'Enabled', 'Disabled' or an empty string. - [RedundancyMode ]: Site redundancy mode - [Reserved ]: true if reserved; otherwise, false. - [ResourceConfigCpu ]: Required CPU in cores, e.g. 0.5 - [ResourceConfigMemory ]: Required memory, e.g. "1Gi" - [RuntimeName ]: Function app runtime name. Available options: dotnet-isolated, node, java, powershell, python, custom - [RuntimeVersion ]: Function app runtime version. Example: 8 (for dotnet-isolated) - [ScaleAndConcurrencyAlwaysReady ]: 'Always Ready' configuration for the function app. - [InstanceCount ]: Sets the number of 'Always Ready' instances for a given function group or a specific function. For additional information see https://aka.ms/flexconsumption/alwaysready. - [Name ]: Either a function group or a function name is required. For additional information see https://aka.ms/flexconsumption/alwaysready. - [ScaleAndConcurrencyInstanceMemoryMb ]: Set the amount of memory allocated to each instance of the function app in MB. CPU and network bandwidth are allocated proportionally. - [ScaleAndConcurrencyMaximumInstanceCount ]: The maximum number of instances for the function app. - [ScmSiteAlsoStopped ]: true to stop SCM (KUDU) site when the app is stopped; otherwise, false. The default is false. - [ServerFarmId ]: Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". - [StorageAccountRequired ]: Checks if Customer provided storage account is required - [StorageType ]: Property to select Azure Storage type. Available options: blobContainer. - [StorageValue ]: Property to set the URL for the selected Azure Storage type. Example: For blobContainer, the value could be https://.blob.core.windows.net/. - [VirtualNetworkSubnetId ]: Azure Resource Manager ID of the Virtual network and subnet to be joined by Regional VNET Integration. This must be of the form /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName} - [VnetBackupRestoreEnabled ]: To enable Backup and Restore operations over virtual network - [VnetContentShareEnabled ]: To enable accessing content over virtual network - [VnetImagePullEnabled ]: To enable pulling image over Virtual Network - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WorkloadProfileName ]: Workload profile name for function app to execute on. -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azfunctionappsetting -#> -function Get-AzFunctionAppSetting { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary])] -[CmdletBinding(DefaultParameterSetName='ByName', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the function app. - ${Name}, - - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='ByName')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # The Azure subscription ID. - ${SubscriptionId}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory, ValueFromPipeline)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - ByName = 'Az.Functions.custom\Get-AzFunctionAppSetting'; - ByObjectInput = 'Az.Functions.custom\Get-AzFunctionAppSetting'; - } - if (('ByName') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -Creates a function app. -.Description -Creates a function app. -.Example -New-AzFunctionApp -Name MyUniqueFunctionAppName ` - -ResourceGroupName MyResourceGroupName ` - -Location centralUS ` - -StorageAccountName MyStorageAccountName ` - -Runtime PowerShell -.Example -New-AzFunctionApp -Name MyUniqueFunctionAppName ` - -ResourceGroupName MyResourceGroupName ` - -PlanName MyPlanName ` - -StorageAccountName MyStorageAccountName ` - -Runtime PowerShell -.Example -New-AzFunctionApp -Name MyUniqueFunctionAppName ` - -ResourceGroupName MyResourceGroupName ` - -PlanName MyPlanName ` - -StorageAccountName MyStorageAccountName ` - -DockerImageName myacr.azurecr.io/myimage:tag -.Example -New-AzFunctionApp -Name MyUniqueFunctionAppName ` - -ResourceGroupName MyResourceGroupName ` - -StorageAccountName MyStorageAccountName ` - -Environment MyEnvironment ` - -WorkloadProfileName MyWorkloadProfileName - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite -.Link -https://learn.microsoft.com/powershell/module/az.functions/new-azfunctionapp -#> -function New-AzFunctionApp { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite])] -[CmdletBinding(DefaultParameterSetName='Consumption', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The name of the resource group. - ${ResourceGroupName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The name of the function app. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The name of the storage account. - ${StorageAccountName}, - - [Parameter(ParameterSetName='Consumption', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The location for the consumption plan. - ${Location}, - - [Parameter(ParameterSetName='Consumption', Mandatory)] - [Parameter(ParameterSetName='ByAppServicePlan', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The function runtime. - ${Runtime}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # The Azure subscription ID. - ${SubscriptionId}, - - [Parameter()] - [Alias('AppInsightsName')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Name of the existing App Insights project to be added to the function app. - ${ApplicationInsightsName}, - - [Parameter()] - [Alias('AppInsightsKey')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Instrumentation key of App Insights to be added. - ${ApplicationInsightsKey}, - - [Parameter(ParameterSetName='Consumption')] - [Parameter(ParameterSetName='ByAppServicePlan')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.WorkerType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The OS to host the function app. - ${OSType}, - - [Parameter(ParameterSetName='Consumption')] - [Parameter(ParameterSetName='ByAppServicePlan')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The function runtime. - ${RuntimeVersion}, - - [Parameter(ParameterSetName='Consumption')] - [Parameter(ParameterSetName='ByAppServicePlan')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The Functions version. - ${FunctionsVersion}, - - [Parameter()] - [Alias('DisableAppInsights')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Disable creating application insights resource during the function app creation. - # No logs will be available. - ${DisableApplicationInsights}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds. - ${PassThru}, - - [Parameter()] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IResourceTags]))] - [System.Collections.Hashtable] - # Resource tags. - ${Tag}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Collections.Hashtable] - # Function app settings. - ${AppSetting}, - - [Parameter()] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FunctionAppManagedServiceIdentityCreateType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedServiceIdentityType] - # Specifies the type of identity used for the function app. - # The acceptable values for this parameter are: - # - SystemAssigned - # - UserAssigned - ${IdentityType}, - - [Parameter()] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # Specifies the list of user identities associated with the function app. - # The user identity references will be ARM resource ids in the form: - # '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/identities/{identityName}' - ${IdentityID}, - - [Parameter(ParameterSetName='EnvironmentForContainerApp', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Name of the container app environment. - ${Environment}, - - [Parameter(ParameterSetName='EnvironmentForContainerApp')] - [Parameter(ParameterSetName='CustomDockerImage', Mandatory)] - [Alias('DockerImageName')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Container image name, e.g., publisher/image-name:tag. - ${Image}, - - [Parameter(ParameterSetName='EnvironmentForContainerApp')] - [Parameter(ParameterSetName='CustomDockerImage')] - [Alias('DockerRegistryCredential')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.PSCredential] - # The container registry username and password. - # Required for private registries. - ${RegistryCredential}, - - [Parameter(ParameterSetName='EnvironmentForContainerApp')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The workload profile name to run the container app on. - ${WorkloadProfileName}, - - [Parameter(ParameterSetName='EnvironmentForContainerApp')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Double] - # The CPU in cores of the container app. - # e.g., 0.75. - ${ResourceCpu}, - - [Parameter(ParameterSetName='EnvironmentForContainerApp')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The memory size of the container app. - # e.g., 1.0Gi. - ${ResourceMemory}, - - [Parameter(ParameterSetName='EnvironmentForContainerApp')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # The maximum number of replicas when creating a function app on container app. - ${ScaleMaxReplica}, - - [Parameter(ParameterSetName='EnvironmentForContainerApp')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # The minimum number of replicas when create function app on container app. - ${ScaleMinReplica}, - - [Parameter(ParameterSetName='EnvironmentForContainerApp')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The container registry server hostname, e.g. - # myregistry.azurecr.io. - ${RegistryServer}, - - [Parameter(ParameterSetName='CustomDockerImage', Mandatory)] - [Parameter(ParameterSetName='ByAppServicePlan', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The name of the service plan. - ${PlanName}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Starts the operation and returns immediately, before the operation is completed. - # In order to determine if the operation has successfully been completed, use some other mechanism. - ${NoWait}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Runs the cmdlet as a background job. - ${AsJob}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - Consumption = 'Az.Functions.custom\New-AzFunctionApp'; - EnvironmentForContainerApp = 'Az.Functions.custom\New-AzFunctionApp'; - CustomDockerImage = 'Az.Functions.custom\New-AzFunctionApp'; - ByAppServicePlan = 'Az.Functions.custom\New-AzFunctionApp'; - } - if (('Consumption', 'EnvironmentForContainerApp', 'CustomDockerImage', 'ByAppServicePlan') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -Creates a function app service plan. -.Description -Creates a function app service plan. -.Example -New-AzFunctionAppPlan -ResourceGroupName MyResourceGroupName ` - -Name MyPremiumPlan ` - -Location WestEurope ` - -MinimumWorkerCount 1 ` - -MaximumWorkerCount 10 ` - -Sku EP1 ` - -WorkerType Windows - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan -.Link -https://learn.microsoft.com/powershell/module/az.functions/new-azfunctionappplan -#> -function New-AzFunctionAppPlan { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan])] -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the App Service plan. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The location for the consumption plan. - ${Location}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # The Azure subscription ID. - ${SubscriptionId}, - - [Parameter(Mandatory)] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SkuType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The plan sku. - # Valid inputs are: EP1, EP2, EP3 - ${Sku}, - - [Parameter()] - [Alias('MaxBurst')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # The maximum number of workers for the app service plan. - ${MaximumWorkerCount}, - - [Parameter()] - [Alias('MinInstances')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # The minimum number of workers for the app service plan. - ${MinimumWorkerCount}, - - [Parameter()] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IResourceTags]))] - [System.Collections.Hashtable] - # Resource tags. - ${Tag}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter(Mandatory)] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.WorkerType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.String] - # The worker type for the plan. - # Valid inputs are: Windows or Linux. - ${WorkerType}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command asynchronously. - ${NoWait}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command as a job. - ${AsJob}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - __AllParameterSets = 'Az.Functions.custom\New-AzFunctionAppPlan'; - } - if (('__AllParameterSets') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -Deletes a function app. -.Description -Deletes a function app. -.Example -Get-AzFunctionApp -Name MyAppName -ResourceGroupName MyResourceGroupName | Remove-AzFunctionApp -Force -.Example -Remove-AzFunctionApp -Name MyAppName -ResourceGroupName MyResourceGroupName -Force - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : - Location : Resource Location. - [Kind ]: Kind of resource. - [Tag ]: Resource tags. - [(Any) ]: This indicates any property can be added to this object. - [AuthenticationStorageAccountConnectionStringName ]: Use this property for StorageAccountConnectionString. Set the name of the app setting that has the storage account connection string. Do not set a value for this property when using other authentication type. - [AuthenticationType ]: Property to select authentication type to access the selected storage account. Available options: SystemAssignedIdentity, UserAssignedIdentity, StorageAccountConnectionString. - [AuthenticationUserAssignedIdentityResourceId ]: Use this property for UserAssignedIdentity. Set the resource ID of the identity. Do not set a value for this property when using other authentication type. - [ClientAffinityEnabled ]: true to enable client affinity; false to stop sending session affinity cookies, which route client requests in the same session to the same instance. Default is true. - [ClientCertEnabled ]: true to enable client certificate authentication (TLS mutual authentication); otherwise, false. Default is false. - [ClientCertExclusionPath ]: client certificate authentication comma-separated exclusion paths - [ClientCertMode ]: This composes with ClientCertEnabled setting. - ClientCertEnabled: false means ClientCert is ignored. - ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required. - ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted. - [CloningInfoAppSettingsOverride ]: Application setting overrides for cloned app. If specified, these settings override the settings cloned from source app. Otherwise, application settings from source app are retained. - [(Any) ]: This indicates any property can be added to this object. - [CloningInfoCloneCustomHostName ]: true to clone custom hostnames from source app; otherwise, false. - [CloningInfoCloneSourceControl ]: true to clone source control from source app; otherwise, false. - [CloningInfoConfigureLoadBalancing ]: true to configure load balancing for source and destination app. - [CloningInfoCorrelationId ]: Correlation ID of cloning operation. This ID ties multiple cloning operations together to use the same snapshot. - [CloningInfoHostingEnvironment ]: App Service Environment. - [CloningInfoOverwrite ]: true to overwrite destination app; otherwise, false. - [CloningInfoSourceWebAppId ]: ARM resource ID of the source app. App resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots. - [CloningInfoSourceWebAppLocation ]: Location of source app ex: West US or North Europe - [CloningInfoTrafficManagerProfileId ]: ARM resource ID of the Traffic Manager profile to use, if it exists. Traffic Manager resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}. - [CloningInfoTrafficManagerProfileName ]: Name of Traffic Manager profile to create. This is only needed if Traffic Manager profile does not already exist. - [Config ]: Configuration of the app. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - [ContainerSize ]: Size of the function container. - [CustomDomainVerificationId ]: Unique identifier that verifies the custom domains assigned to the app. Customer will add this id to a txt record for verification. - [DailyMemoryTimeQuota ]: Maximum allowed daily memory-time quota (applicable on dynamic apps only). - [DaprConfigAppId ]: Dapr application identifier - [DaprConfigAppPort ]: Tells Dapr which port your application is listening on - [DaprConfigEnableApiLogging ]: Enables API logging for the Dapr sidecar - [DaprConfigEnabled ]: Boolean indicating if the Dapr side car is enabled - [DaprConfigHttpMaxRequestSize ]: Increasing max size of request body http servers parameter in MB to handle uploading of big files. Default is 4 MB. - [DaprConfigHttpReadBufferSize ]: Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. - [DaprConfigLogLevel ]: Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. - [DnsConfigurationDnsAltServer ]: Alternate DNS server to be used by apps. This property replicates the WEBSITE_DNS_ALT_SERVER app setting. - [DnsConfigurationDnsMaxCacheTimeout ]: Custom time for DNS to be cached in seconds. Allowed range: 0-60. Default is 30 seconds. 0 means caching disabled. - [DnsConfigurationDnsRetryAttemptCount ]: Total number of retries for dns lookup. Allowed range: 1-5. Default is 3. - [DnsConfigurationDnsRetryAttemptTimeout ]: Timeout for a single dns lookup in seconds. Allowed range: 1-30. Default is 3. - [DnsConfigurationDnsServer ]: List of custom DNS servers to be used by an app for lookups. Maximum 5 dns servers can be set. - [Enabled ]: true if the app is enabled; otherwise, false. Setting this value to false disables the app (takes the app offline). - [ExtendedLocationName ]: Name of extended location. - [HostNameSslState ]: Hostname SSL states are used to manage the SSL bindings for app's hostnames. - [HostType ]: Indicates whether the hostname is a standard or repository hostname. - [Name ]: Hostname. - [SslState ]: SSL type. - [Thumbprint ]: SSL certificate thumbprint. - [ToUpdate ]: Set to true to update existing hostname. - [VirtualIP ]: Virtual IP address assigned to the hostname if IP based SSL is enabled. - [HostNamesDisabled ]: true to disable the public hostnames of the app; otherwise, false. If true, the app is only accessible via API management process. - [HostingEnvironmentProfileId ]: Resource ID of the App Service Environment. - [HttpPerInstanceConcurrency ]: The maximum number of concurrent HTTP trigger invocations per instance. - [HttpsOnly ]: HttpsOnly: configures a web site to accept only https requests. Issues redirect for http requests - [HyperV ]: Hyper-V sandbox. - [IdentityType ]: Type of managed service identity. - [IdentityUserAssignedIdentity ]: The list of user assigned identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} - [(Any) ]: This indicates any property can be added to this object. - [IsXenon ]: Obsolete: Hyper-V sandbox. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [ManagedEnvironmentId ]: Azure Resource Manager ID of the customer's selected Managed Environment on which to host this app. This must be of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.App/managedEnvironments/{managedEnvironmentName} - [PublicNetworkAccess ]: Property to allow or block all public traffic. Allowed Values: 'Enabled', 'Disabled' or an empty string. - [RedundancyMode ]: Site redundancy mode - [Reserved ]: true if reserved; otherwise, false. - [ResourceConfigCpu ]: Required CPU in cores, e.g. 0.5 - [ResourceConfigMemory ]: Required memory, e.g. "1Gi" - [RuntimeName ]: Function app runtime name. Available options: dotnet-isolated, node, java, powershell, python, custom - [RuntimeVersion ]: Function app runtime version. Example: 8 (for dotnet-isolated) - [ScaleAndConcurrencyAlwaysReady ]: 'Always Ready' configuration for the function app. - [InstanceCount ]: Sets the number of 'Always Ready' instances for a given function group or a specific function. For additional information see https://aka.ms/flexconsumption/alwaysready. - [Name ]: Either a function group or a function name is required. For additional information see https://aka.ms/flexconsumption/alwaysready. - [ScaleAndConcurrencyInstanceMemoryMb ]: Set the amount of memory allocated to each instance of the function app in MB. CPU and network bandwidth are allocated proportionally. - [ScaleAndConcurrencyMaximumInstanceCount ]: The maximum number of instances for the function app. - [ScmSiteAlsoStopped ]: true to stop SCM (KUDU) site when the app is stopped; otherwise, false. The default is false. - [ServerFarmId ]: Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". - [StorageAccountRequired ]: Checks if Customer provided storage account is required - [StorageType ]: Property to select Azure Storage type. Available options: blobContainer. - [StorageValue ]: Property to set the URL for the selected Azure Storage type. Example: For blobContainer, the value could be https://.blob.core.windows.net/. - [VirtualNetworkSubnetId ]: Azure Resource Manager ID of the Virtual network and subnet to be joined by Regional VNET Integration. This must be of the form /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName} - [VnetBackupRestoreEnabled ]: To enable Backup and Restore operations over virtual network - [VnetContentShareEnabled ]: To enable accessing content over virtual network - [VnetImagePullEnabled ]: To enable pulling image over Virtual Network - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WorkloadProfileName ]: Workload profile name for function app to execute on. -.Link -https://learn.microsoft.com/powershell/module/az.functions/remove-azfunctionapp -#> -function Remove-AzFunctionApp { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='ByName', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of function app. - ${Name}, - - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - ${ResourceGroupName}, - - [Parameter(ParameterSetName='ByName')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # The Azure subscription ID. - ${SubscriptionId}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Forces the cmdlet to remove the function app without prompting for confirmation. - ${Force}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory, ValueFromPipeline)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The credentials, account, tenant, and subscription used for communication with Azure. - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds. - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - ByName = 'Az.Functions.custom\Remove-AzFunctionApp'; - ByObjectInput = 'Az.Functions.custom\Remove-AzFunctionApp'; - } - if (('ByName') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -Deletes a function app plan. -.Description -Deletes a function app plan. -.Example -Get-AzFunctionAppPlan -Name MyAppName -ResourceGroupName MyResourceGroupName | Remove-AzFunctionAppPlan -Force -.Example -Remove-AzFunctionAppPlan -Name MyAppName -ResourceGroupName MyResourceGroupName -Force - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : - Location : Resource Location. - [Kind ]: Kind of resource. - [Tag ]: Resource tags. - [(Any) ]: This indicates any property can be added to this object. - [Capacity ]: Current number of instances assigned to the resource. - [ElasticScaleEnabled ]: ServerFarm supports ElasticScale. Apps in this plan will scale as if the ServerFarm was ElasticPremium sku - [ExtendedLocationName ]: Name of extended location. - [FreeOfferExpirationTime ]: The time when the server farm free offer expires. - [HostingEnvironmentProfileId ]: Resource ID of the App Service Environment. - [HyperV ]: If Hyper-V container app service plan true, false otherwise. - [IsSpot ]: If true, this App Service Plan owns spot instances. - [IsXenon ]: Obsolete: If Hyper-V container app service plan true, false otherwise. - [KubeEnvironmentProfileId ]: Resource ID of the Kubernetes Environment. - [MaximumElasticWorkerCount ]: Maximum number of total workers allowed for this ElasticScaleEnabled App Service Plan - [PerSiteScaling ]: If true, apps assigned to this App Service plan can be scaled independently. If false, apps assigned to this App Service plan will scale to all instances of the plan. - [Reserved ]: If Linux app service plan true, false otherwise. - [SkuCapability ]: Capabilities of the SKU, e.g., is traffic manager enabled? - [Name ]: Name of the SKU capability. - [Reason ]: Reason of the SKU capability. - [Value ]: Value of the SKU capability. - [SkuCapacityDefault ]: Default number of workers for this App Service plan SKU. - [SkuCapacityElasticMaximum ]: Maximum number of Elastic workers for this App Service plan SKU. - [SkuCapacityMaximum ]: Maximum number of workers for this App Service plan SKU. - [SkuCapacityMinimum ]: Minimum number of workers for this App Service plan SKU. - [SkuCapacityScaleType ]: Available scale configurations for an App Service plan. - [SkuFamily ]: Family code of the resource SKU. - [SkuLocation ]: Locations of the SKU. - [SkuName ]: Name of the resource SKU. - [SkuSize ]: Size specifier of the resource SKU. - [SkuTier ]: Service tier of the resource SKU. - [SpotExpirationTime ]: The time when the server farm expires. Valid only if it is a spot server farm. - [TargetWorkerCount ]: Scaling worker count. - [TargetWorkerSizeId ]: Scaling worker size ID. - [WorkerTierName ]: Target worker tier assigned to the App Service plan. - [ZoneRedundant ]: If true, this App Service Plan will perform availability zone balancing. If false, this App Service Plan will not perform availability zone balancing. -.Link -https://learn.microsoft.com/powershell/module/az.functions/remove-azfunctionappplan -#> -function Remove-AzFunctionAppPlan { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='ByName', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of function app. - ${Name}, - - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - ${ResourceGroupName}, - - [Parameter(ParameterSetName='ByName')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # The Azure subscription ID. - ${SubscriptionId}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Forces the cmdlet to remove the function app plan without prompting for confirmation. - ${Force}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory, ValueFromPipeline)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan] - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The credentials, account, tenant, and subscription used for communication with Azure. - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds. - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${Break}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - ByName = 'Az.Functions.custom\Remove-AzFunctionAppPlan'; - ByObjectInput = 'Az.Functions.custom\Remove-AzFunctionAppPlan'; - } - if (('ByName') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -Removes app settings from a function app. -.Description -Removes app settings from a function app. -.Example -Remove-AzFunctionAppSetting -Name MyAppName -ResourceGroupName MyResourceGroupName -AppSettingName "MyAppSetting1", "MyAppSetting2" - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : - Location : Resource Location. - [Kind ]: Kind of resource. - [Tag ]: Resource tags. - [(Any) ]: This indicates any property can be added to this object. - [AuthenticationStorageAccountConnectionStringName ]: Use this property for StorageAccountConnectionString. Set the name of the app setting that has the storage account connection string. Do not set a value for this property when using other authentication type. - [AuthenticationType ]: Property to select authentication type to access the selected storage account. Available options: SystemAssignedIdentity, UserAssignedIdentity, StorageAccountConnectionString. - [AuthenticationUserAssignedIdentityResourceId ]: Use this property for UserAssignedIdentity. Set the resource ID of the identity. Do not set a value for this property when using other authentication type. - [ClientAffinityEnabled ]: true to enable client affinity; false to stop sending session affinity cookies, which route client requests in the same session to the same instance. Default is true. - [ClientCertEnabled ]: true to enable client certificate authentication (TLS mutual authentication); otherwise, false. Default is false. - [ClientCertExclusionPath ]: client certificate authentication comma-separated exclusion paths - [ClientCertMode ]: This composes with ClientCertEnabled setting. - ClientCertEnabled: false means ClientCert is ignored. - ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required. - ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted. - [CloningInfoAppSettingsOverride ]: Application setting overrides for cloned app. If specified, these settings override the settings cloned from source app. Otherwise, application settings from source app are retained. - [(Any) ]: This indicates any property can be added to this object. - [CloningInfoCloneCustomHostName ]: true to clone custom hostnames from source app; otherwise, false. - [CloningInfoCloneSourceControl ]: true to clone source control from source app; otherwise, false. - [CloningInfoConfigureLoadBalancing ]: true to configure load balancing for source and destination app. - [CloningInfoCorrelationId ]: Correlation ID of cloning operation. This ID ties multiple cloning operations together to use the same snapshot. - [CloningInfoHostingEnvironment ]: App Service Environment. - [CloningInfoOverwrite ]: true to overwrite destination app; otherwise, false. - [CloningInfoSourceWebAppId ]: ARM resource ID of the source app. App resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots. - [CloningInfoSourceWebAppLocation ]: Location of source app ex: West US or North Europe - [CloningInfoTrafficManagerProfileId ]: ARM resource ID of the Traffic Manager profile to use, if it exists. Traffic Manager resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}. - [CloningInfoTrafficManagerProfileName ]: Name of Traffic Manager profile to create. This is only needed if Traffic Manager profile does not already exist. - [Config ]: Configuration of the app. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - [ContainerSize ]: Size of the function container. - [CustomDomainVerificationId ]: Unique identifier that verifies the custom domains assigned to the app. Customer will add this id to a txt record for verification. - [DailyMemoryTimeQuota ]: Maximum allowed daily memory-time quota (applicable on dynamic apps only). - [DaprConfigAppId ]: Dapr application identifier - [DaprConfigAppPort ]: Tells Dapr which port your application is listening on - [DaprConfigEnableApiLogging ]: Enables API logging for the Dapr sidecar - [DaprConfigEnabled ]: Boolean indicating if the Dapr side car is enabled - [DaprConfigHttpMaxRequestSize ]: Increasing max size of request body http servers parameter in MB to handle uploading of big files. Default is 4 MB. - [DaprConfigHttpReadBufferSize ]: Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. - [DaprConfigLogLevel ]: Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. - [DnsConfigurationDnsAltServer ]: Alternate DNS server to be used by apps. This property replicates the WEBSITE_DNS_ALT_SERVER app setting. - [DnsConfigurationDnsMaxCacheTimeout ]: Custom time for DNS to be cached in seconds. Allowed range: 0-60. Default is 30 seconds. 0 means caching disabled. - [DnsConfigurationDnsRetryAttemptCount ]: Total number of retries for dns lookup. Allowed range: 1-5. Default is 3. - [DnsConfigurationDnsRetryAttemptTimeout ]: Timeout for a single dns lookup in seconds. Allowed range: 1-30. Default is 3. - [DnsConfigurationDnsServer ]: List of custom DNS servers to be used by an app for lookups. Maximum 5 dns servers can be set. - [Enabled ]: true if the app is enabled; otherwise, false. Setting this value to false disables the app (takes the app offline). - [ExtendedLocationName ]: Name of extended location. - [HostNameSslState ]: Hostname SSL states are used to manage the SSL bindings for app's hostnames. - [HostType ]: Indicates whether the hostname is a standard or repository hostname. - [Name ]: Hostname. - [SslState ]: SSL type. - [Thumbprint ]: SSL certificate thumbprint. - [ToUpdate ]: Set to true to update existing hostname. - [VirtualIP ]: Virtual IP address assigned to the hostname if IP based SSL is enabled. - [HostNamesDisabled ]: true to disable the public hostnames of the app; otherwise, false. If true, the app is only accessible via API management process. - [HostingEnvironmentProfileId ]: Resource ID of the App Service Environment. - [HttpPerInstanceConcurrency ]: The maximum number of concurrent HTTP trigger invocations per instance. - [HttpsOnly ]: HttpsOnly: configures a web site to accept only https requests. Issues redirect for http requests - [HyperV ]: Hyper-V sandbox. - [IdentityType ]: Type of managed service identity. - [IdentityUserAssignedIdentity ]: The list of user assigned identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} - [(Any) ]: This indicates any property can be added to this object. - [IsXenon ]: Obsolete: Hyper-V sandbox. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [ManagedEnvironmentId ]: Azure Resource Manager ID of the customer's selected Managed Environment on which to host this app. This must be of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.App/managedEnvironments/{managedEnvironmentName} - [PublicNetworkAccess ]: Property to allow or block all public traffic. Allowed Values: 'Enabled', 'Disabled' or an empty string. - [RedundancyMode ]: Site redundancy mode - [Reserved ]: true if reserved; otherwise, false. - [ResourceConfigCpu ]: Required CPU in cores, e.g. 0.5 - [ResourceConfigMemory ]: Required memory, e.g. "1Gi" - [RuntimeName ]: Function app runtime name. Available options: dotnet-isolated, node, java, powershell, python, custom - [RuntimeVersion ]: Function app runtime version. Example: 8 (for dotnet-isolated) - [ScaleAndConcurrencyAlwaysReady ]: 'Always Ready' configuration for the function app. - [InstanceCount ]: Sets the number of 'Always Ready' instances for a given function group or a specific function. For additional information see https://aka.ms/flexconsumption/alwaysready. - [Name ]: Either a function group or a function name is required. For additional information see https://aka.ms/flexconsumption/alwaysready. - [ScaleAndConcurrencyInstanceMemoryMb ]: Set the amount of memory allocated to each instance of the function app in MB. CPU and network bandwidth are allocated proportionally. - [ScaleAndConcurrencyMaximumInstanceCount ]: The maximum number of instances for the function app. - [ScmSiteAlsoStopped ]: true to stop SCM (KUDU) site when the app is stopped; otherwise, false. The default is false. - [ServerFarmId ]: Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". - [StorageAccountRequired ]: Checks if Customer provided storage account is required - [StorageType ]: Property to select Azure Storage type. Available options: blobContainer. - [StorageValue ]: Property to set the URL for the selected Azure Storage type. Example: For blobContainer, the value could be https://.blob.core.windows.net/. - [VirtualNetworkSubnetId ]: Azure Resource Manager ID of the Virtual network and subnet to be joined by Regional VNET Integration. This must be of the form /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName} - [VnetBackupRestoreEnabled ]: To enable Backup and Restore operations over virtual network - [VnetContentShareEnabled ]: To enable accessing content over virtual network - [VnetImagePullEnabled ]: To enable pulling image over Virtual Network - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WorkloadProfileName ]: Workload profile name for function app to execute on. -.Link -https://learn.microsoft.com/powershell/module/az.functions/remove-azfunctionappsetting -#> -function Remove-AzFunctionAppSetting { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary])] -[CmdletBinding(DefaultParameterSetName='ByName', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the function app. - ${Name}, - - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='ByName')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # The Azure subscription ID. - ${SubscriptionId}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # List of function app settings to be removed from the function app. - ${AppSettingName}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Forces the cmdlet to remove function app setting without prompting for confirmation. - ${Force}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory, ValueFromPipeline)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - ByName = 'Az.Functions.custom\Remove-AzFunctionAppSetting'; - ByObjectInput = 'Az.Functions.custom\Remove-AzFunctionAppSetting'; - } - if (('ByName') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -Restarts a function app. -.Description -Restarts a function app. -.Example -Get-AzFunctionApp -Name MyAppName -ResourceGroupName MyResourceGroupName | Restart-AzFunctionApp -Force -.Example -Restart-AzFunctionApp -Name MyAppName -ResourceGroupName MyResourceGroupName -Force - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : - Location : Resource Location. - [Kind ]: Kind of resource. - [Tag ]: Resource tags. - [(Any) ]: This indicates any property can be added to this object. - [AuthenticationStorageAccountConnectionStringName ]: Use this property for StorageAccountConnectionString. Set the name of the app setting that has the storage account connection string. Do not set a value for this property when using other authentication type. - [AuthenticationType ]: Property to select authentication type to access the selected storage account. Available options: SystemAssignedIdentity, UserAssignedIdentity, StorageAccountConnectionString. - [AuthenticationUserAssignedIdentityResourceId ]: Use this property for UserAssignedIdentity. Set the resource ID of the identity. Do not set a value for this property when using other authentication type. - [ClientAffinityEnabled ]: true to enable client affinity; false to stop sending session affinity cookies, which route client requests in the same session to the same instance. Default is true. - [ClientCertEnabled ]: true to enable client certificate authentication (TLS mutual authentication); otherwise, false. Default is false. - [ClientCertExclusionPath ]: client certificate authentication comma-separated exclusion paths - [ClientCertMode ]: This composes with ClientCertEnabled setting. - ClientCertEnabled: false means ClientCert is ignored. - ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required. - ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted. - [CloningInfoAppSettingsOverride ]: Application setting overrides for cloned app. If specified, these settings override the settings cloned from source app. Otherwise, application settings from source app are retained. - [(Any) ]: This indicates any property can be added to this object. - [CloningInfoCloneCustomHostName ]: true to clone custom hostnames from source app; otherwise, false. - [CloningInfoCloneSourceControl ]: true to clone source control from source app; otherwise, false. - [CloningInfoConfigureLoadBalancing ]: true to configure load balancing for source and destination app. - [CloningInfoCorrelationId ]: Correlation ID of cloning operation. This ID ties multiple cloning operations together to use the same snapshot. - [CloningInfoHostingEnvironment ]: App Service Environment. - [CloningInfoOverwrite ]: true to overwrite destination app; otherwise, false. - [CloningInfoSourceWebAppId ]: ARM resource ID of the source app. App resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots. - [CloningInfoSourceWebAppLocation ]: Location of source app ex: West US or North Europe - [CloningInfoTrafficManagerProfileId ]: ARM resource ID of the Traffic Manager profile to use, if it exists. Traffic Manager resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}. - [CloningInfoTrafficManagerProfileName ]: Name of Traffic Manager profile to create. This is only needed if Traffic Manager profile does not already exist. - [Config ]: Configuration of the app. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - [ContainerSize ]: Size of the function container. - [CustomDomainVerificationId ]: Unique identifier that verifies the custom domains assigned to the app. Customer will add this id to a txt record for verification. - [DailyMemoryTimeQuota ]: Maximum allowed daily memory-time quota (applicable on dynamic apps only). - [DaprConfigAppId ]: Dapr application identifier - [DaprConfigAppPort ]: Tells Dapr which port your application is listening on - [DaprConfigEnableApiLogging ]: Enables API logging for the Dapr sidecar - [DaprConfigEnabled ]: Boolean indicating if the Dapr side car is enabled - [DaprConfigHttpMaxRequestSize ]: Increasing max size of request body http servers parameter in MB to handle uploading of big files. Default is 4 MB. - [DaprConfigHttpReadBufferSize ]: Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. - [DaprConfigLogLevel ]: Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. - [DnsConfigurationDnsAltServer ]: Alternate DNS server to be used by apps. This property replicates the WEBSITE_DNS_ALT_SERVER app setting. - [DnsConfigurationDnsMaxCacheTimeout ]: Custom time for DNS to be cached in seconds. Allowed range: 0-60. Default is 30 seconds. 0 means caching disabled. - [DnsConfigurationDnsRetryAttemptCount ]: Total number of retries for dns lookup. Allowed range: 1-5. Default is 3. - [DnsConfigurationDnsRetryAttemptTimeout ]: Timeout for a single dns lookup in seconds. Allowed range: 1-30. Default is 3. - [DnsConfigurationDnsServer ]: List of custom DNS servers to be used by an app for lookups. Maximum 5 dns servers can be set. - [Enabled ]: true if the app is enabled; otherwise, false. Setting this value to false disables the app (takes the app offline). - [ExtendedLocationName ]: Name of extended location. - [HostNameSslState ]: Hostname SSL states are used to manage the SSL bindings for app's hostnames. - [HostType ]: Indicates whether the hostname is a standard or repository hostname. - [Name ]: Hostname. - [SslState ]: SSL type. - [Thumbprint ]: SSL certificate thumbprint. - [ToUpdate ]: Set to true to update existing hostname. - [VirtualIP ]: Virtual IP address assigned to the hostname if IP based SSL is enabled. - [HostNamesDisabled ]: true to disable the public hostnames of the app; otherwise, false. If true, the app is only accessible via API management process. - [HostingEnvironmentProfileId ]: Resource ID of the App Service Environment. - [HttpPerInstanceConcurrency ]: The maximum number of concurrent HTTP trigger invocations per instance. - [HttpsOnly ]: HttpsOnly: configures a web site to accept only https requests. Issues redirect for http requests - [HyperV ]: Hyper-V sandbox. - [IdentityType ]: Type of managed service identity. - [IdentityUserAssignedIdentity ]: The list of user assigned identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} - [(Any) ]: This indicates any property can be added to this object. - [IsXenon ]: Obsolete: Hyper-V sandbox. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [ManagedEnvironmentId ]: Azure Resource Manager ID of the customer's selected Managed Environment on which to host this app. This must be of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.App/managedEnvironments/{managedEnvironmentName} - [PublicNetworkAccess ]: Property to allow or block all public traffic. Allowed Values: 'Enabled', 'Disabled' or an empty string. - [RedundancyMode ]: Site redundancy mode - [Reserved ]: true if reserved; otherwise, false. - [ResourceConfigCpu ]: Required CPU in cores, e.g. 0.5 - [ResourceConfigMemory ]: Required memory, e.g. "1Gi" - [RuntimeName ]: Function app runtime name. Available options: dotnet-isolated, node, java, powershell, python, custom - [RuntimeVersion ]: Function app runtime version. Example: 8 (for dotnet-isolated) - [ScaleAndConcurrencyAlwaysReady ]: 'Always Ready' configuration for the function app. - [InstanceCount ]: Sets the number of 'Always Ready' instances for a given function group or a specific function. For additional information see https://aka.ms/flexconsumption/alwaysready. - [Name ]: Either a function group or a function name is required. For additional information see https://aka.ms/flexconsumption/alwaysready. - [ScaleAndConcurrencyInstanceMemoryMb ]: Set the amount of memory allocated to each instance of the function app in MB. CPU and network bandwidth are allocated proportionally. - [ScaleAndConcurrencyMaximumInstanceCount ]: The maximum number of instances for the function app. - [ScmSiteAlsoStopped ]: true to stop SCM (KUDU) site when the app is stopped; otherwise, false. The default is false. - [ServerFarmId ]: Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". - [StorageAccountRequired ]: Checks if Customer provided storage account is required - [StorageType ]: Property to select Azure Storage type. Available options: blobContainer. - [StorageValue ]: Property to set the URL for the selected Azure Storage type. Example: For blobContainer, the value could be https://.blob.core.windows.net/. - [VirtualNetworkSubnetId ]: Azure Resource Manager ID of the Virtual network and subnet to be joined by Regional VNET Integration. This must be of the form /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName} - [VnetBackupRestoreEnabled ]: To enable Backup and Restore operations over virtual network - [VnetContentShareEnabled ]: To enable accessing content over virtual network - [VnetImagePullEnabled ]: To enable pulling image over Virtual Network - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WorkloadProfileName ]: Workload profile name for function app to execute on. -.Link -https://learn.microsoft.com/powershell/module/az.functions/restart-azfunctionapp -#> -function Restart-AzFunctionApp { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='RestartByName', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='RestartByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of function app. - ${Name}, - - [Parameter(ParameterSetName='RestartByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - ${ResourceGroupName}, - - [Parameter(ParameterSetName='RestartByName')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # The Azure subscription ID. - ${SubscriptionId}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Forces the cmdlet to restart the function app without prompting for confirmation. - ${Force}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory, ValueFromPipeline)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The credentials, account, tenant, and subscription used for communication with Azure. - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds. - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - RestartByName = 'Az.Functions.custom\Restart-AzFunctionApp'; - ByObjectInput = 'Az.Functions.custom\Restart-AzFunctionApp'; - } - if (('RestartByName') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -Starts a function app. -.Description -Starts a function app. -.Example -Get-AzFunctionApp -Name MyAppName -ResourceGroupName MyResourceGroupName | Start-AzFunctionApp -.Example -Start-AzFunctionApp -Name MyAppName -ResourceGroupName MyResourceGroupName - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : - Location : Resource Location. - [Kind ]: Kind of resource. - [Tag ]: Resource tags. - [(Any) ]: This indicates any property can be added to this object. - [AuthenticationStorageAccountConnectionStringName ]: Use this property for StorageAccountConnectionString. Set the name of the app setting that has the storage account connection string. Do not set a value for this property when using other authentication type. - [AuthenticationType ]: Property to select authentication type to access the selected storage account. Available options: SystemAssignedIdentity, UserAssignedIdentity, StorageAccountConnectionString. - [AuthenticationUserAssignedIdentityResourceId ]: Use this property for UserAssignedIdentity. Set the resource ID of the identity. Do not set a value for this property when using other authentication type. - [ClientAffinityEnabled ]: true to enable client affinity; false to stop sending session affinity cookies, which route client requests in the same session to the same instance. Default is true. - [ClientCertEnabled ]: true to enable client certificate authentication (TLS mutual authentication); otherwise, false. Default is false. - [ClientCertExclusionPath ]: client certificate authentication comma-separated exclusion paths - [ClientCertMode ]: This composes with ClientCertEnabled setting. - ClientCertEnabled: false means ClientCert is ignored. - ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required. - ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted. - [CloningInfoAppSettingsOverride ]: Application setting overrides for cloned app. If specified, these settings override the settings cloned from source app. Otherwise, application settings from source app are retained. - [(Any) ]: This indicates any property can be added to this object. - [CloningInfoCloneCustomHostName ]: true to clone custom hostnames from source app; otherwise, false. - [CloningInfoCloneSourceControl ]: true to clone source control from source app; otherwise, false. - [CloningInfoConfigureLoadBalancing ]: true to configure load balancing for source and destination app. - [CloningInfoCorrelationId ]: Correlation ID of cloning operation. This ID ties multiple cloning operations together to use the same snapshot. - [CloningInfoHostingEnvironment ]: App Service Environment. - [CloningInfoOverwrite ]: true to overwrite destination app; otherwise, false. - [CloningInfoSourceWebAppId ]: ARM resource ID of the source app. App resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots. - [CloningInfoSourceWebAppLocation ]: Location of source app ex: West US or North Europe - [CloningInfoTrafficManagerProfileId ]: ARM resource ID of the Traffic Manager profile to use, if it exists. Traffic Manager resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}. - [CloningInfoTrafficManagerProfileName ]: Name of Traffic Manager profile to create. This is only needed if Traffic Manager profile does not already exist. - [Config ]: Configuration of the app. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - [ContainerSize ]: Size of the function container. - [CustomDomainVerificationId ]: Unique identifier that verifies the custom domains assigned to the app. Customer will add this id to a txt record for verification. - [DailyMemoryTimeQuota ]: Maximum allowed daily memory-time quota (applicable on dynamic apps only). - [DaprConfigAppId ]: Dapr application identifier - [DaprConfigAppPort ]: Tells Dapr which port your application is listening on - [DaprConfigEnableApiLogging ]: Enables API logging for the Dapr sidecar - [DaprConfigEnabled ]: Boolean indicating if the Dapr side car is enabled - [DaprConfigHttpMaxRequestSize ]: Increasing max size of request body http servers parameter in MB to handle uploading of big files. Default is 4 MB. - [DaprConfigHttpReadBufferSize ]: Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. - [DaprConfigLogLevel ]: Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. - [DnsConfigurationDnsAltServer ]: Alternate DNS server to be used by apps. This property replicates the WEBSITE_DNS_ALT_SERVER app setting. - [DnsConfigurationDnsMaxCacheTimeout ]: Custom time for DNS to be cached in seconds. Allowed range: 0-60. Default is 30 seconds. 0 means caching disabled. - [DnsConfigurationDnsRetryAttemptCount ]: Total number of retries for dns lookup. Allowed range: 1-5. Default is 3. - [DnsConfigurationDnsRetryAttemptTimeout ]: Timeout for a single dns lookup in seconds. Allowed range: 1-30. Default is 3. - [DnsConfigurationDnsServer ]: List of custom DNS servers to be used by an app for lookups. Maximum 5 dns servers can be set. - [Enabled ]: true if the app is enabled; otherwise, false. Setting this value to false disables the app (takes the app offline). - [ExtendedLocationName ]: Name of extended location. - [HostNameSslState ]: Hostname SSL states are used to manage the SSL bindings for app's hostnames. - [HostType ]: Indicates whether the hostname is a standard or repository hostname. - [Name ]: Hostname. - [SslState ]: SSL type. - [Thumbprint ]: SSL certificate thumbprint. - [ToUpdate ]: Set to true to update existing hostname. - [VirtualIP ]: Virtual IP address assigned to the hostname if IP based SSL is enabled. - [HostNamesDisabled ]: true to disable the public hostnames of the app; otherwise, false. If true, the app is only accessible via API management process. - [HostingEnvironmentProfileId ]: Resource ID of the App Service Environment. - [HttpPerInstanceConcurrency ]: The maximum number of concurrent HTTP trigger invocations per instance. - [HttpsOnly ]: HttpsOnly: configures a web site to accept only https requests. Issues redirect for http requests - [HyperV ]: Hyper-V sandbox. - [IdentityType ]: Type of managed service identity. - [IdentityUserAssignedIdentity ]: The list of user assigned identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} - [(Any) ]: This indicates any property can be added to this object. - [IsXenon ]: Obsolete: Hyper-V sandbox. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [ManagedEnvironmentId ]: Azure Resource Manager ID of the customer's selected Managed Environment on which to host this app. This must be of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.App/managedEnvironments/{managedEnvironmentName} - [PublicNetworkAccess ]: Property to allow or block all public traffic. Allowed Values: 'Enabled', 'Disabled' or an empty string. - [RedundancyMode ]: Site redundancy mode - [Reserved ]: true if reserved; otherwise, false. - [ResourceConfigCpu ]: Required CPU in cores, e.g. 0.5 - [ResourceConfigMemory ]: Required memory, e.g. "1Gi" - [RuntimeName ]: Function app runtime name. Available options: dotnet-isolated, node, java, powershell, python, custom - [RuntimeVersion ]: Function app runtime version. Example: 8 (for dotnet-isolated) - [ScaleAndConcurrencyAlwaysReady ]: 'Always Ready' configuration for the function app. - [InstanceCount ]: Sets the number of 'Always Ready' instances for a given function group or a specific function. For additional information see https://aka.ms/flexconsumption/alwaysready. - [Name ]: Either a function group or a function name is required. For additional information see https://aka.ms/flexconsumption/alwaysready. - [ScaleAndConcurrencyInstanceMemoryMb ]: Set the amount of memory allocated to each instance of the function app in MB. CPU and network bandwidth are allocated proportionally. - [ScaleAndConcurrencyMaximumInstanceCount ]: The maximum number of instances for the function app. - [ScmSiteAlsoStopped ]: true to stop SCM (KUDU) site when the app is stopped; otherwise, false. The default is false. - [ServerFarmId ]: Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". - [StorageAccountRequired ]: Checks if Customer provided storage account is required - [StorageType ]: Property to select Azure Storage type. Available options: blobContainer. - [StorageValue ]: Property to set the URL for the selected Azure Storage type. Example: For blobContainer, the value could be https://.blob.core.windows.net/. - [VirtualNetworkSubnetId ]: Azure Resource Manager ID of the Virtual network and subnet to be joined by Regional VNET Integration. This must be of the form /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName} - [VnetBackupRestoreEnabled ]: To enable Backup and Restore operations over virtual network - [VnetContentShareEnabled ]: To enable accessing content over virtual network - [VnetImagePullEnabled ]: To enable pulling image over Virtual Network - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WorkloadProfileName ]: Workload profile name for function app to execute on. -.Link -https://learn.microsoft.com/powershell/module/az.functions/start-azfunctionapp -#> -function Start-AzFunctionApp { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='StartByName', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='StartByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of function app. - ${Name}, - - [Parameter(ParameterSetName='StartByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - ${ResourceGroupName}, - - [Parameter(ParameterSetName='StartByName')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # The Azure subscription ID. - ${SubscriptionId}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory, ValueFromPipeline)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The credentials, account, tenant, and subscription used for communication with Azure. - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds. - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - StartByName = 'Az.Functions.custom\Start-AzFunctionApp'; - ByObjectInput = 'Az.Functions.custom\Start-AzFunctionApp'; - } - if (('StartByName') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -Stops a function app. -.Description -Stops a function app. -.Example -Get-AzFunctionApp -Name MyAppName -ResourceGroupName MyResourceGroupName | Stop-AzFunctionApp -Force -.Example -Stop-AzFunctionApp -Name MyAppName -ResourceGroupName MyResourceGroupName -Force - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : - Location : Resource Location. - [Kind ]: Kind of resource. - [Tag ]: Resource tags. - [(Any) ]: This indicates any property can be added to this object. - [AuthenticationStorageAccountConnectionStringName ]: Use this property for StorageAccountConnectionString. Set the name of the app setting that has the storage account connection string. Do not set a value for this property when using other authentication type. - [AuthenticationType ]: Property to select authentication type to access the selected storage account. Available options: SystemAssignedIdentity, UserAssignedIdentity, StorageAccountConnectionString. - [AuthenticationUserAssignedIdentityResourceId ]: Use this property for UserAssignedIdentity. Set the resource ID of the identity. Do not set a value for this property when using other authentication type. - [ClientAffinityEnabled ]: true to enable client affinity; false to stop sending session affinity cookies, which route client requests in the same session to the same instance. Default is true. - [ClientCertEnabled ]: true to enable client certificate authentication (TLS mutual authentication); otherwise, false. Default is false. - [ClientCertExclusionPath ]: client certificate authentication comma-separated exclusion paths - [ClientCertMode ]: This composes with ClientCertEnabled setting. - ClientCertEnabled: false means ClientCert is ignored. - ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required. - ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted. - [CloningInfoAppSettingsOverride ]: Application setting overrides for cloned app. If specified, these settings override the settings cloned from source app. Otherwise, application settings from source app are retained. - [(Any) ]: This indicates any property can be added to this object. - [CloningInfoCloneCustomHostName ]: true to clone custom hostnames from source app; otherwise, false. - [CloningInfoCloneSourceControl ]: true to clone source control from source app; otherwise, false. - [CloningInfoConfigureLoadBalancing ]: true to configure load balancing for source and destination app. - [CloningInfoCorrelationId ]: Correlation ID of cloning operation. This ID ties multiple cloning operations together to use the same snapshot. - [CloningInfoHostingEnvironment ]: App Service Environment. - [CloningInfoOverwrite ]: true to overwrite destination app; otherwise, false. - [CloningInfoSourceWebAppId ]: ARM resource ID of the source app. App resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots. - [CloningInfoSourceWebAppLocation ]: Location of source app ex: West US or North Europe - [CloningInfoTrafficManagerProfileId ]: ARM resource ID of the Traffic Manager profile to use, if it exists. Traffic Manager resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}. - [CloningInfoTrafficManagerProfileName ]: Name of Traffic Manager profile to create. This is only needed if Traffic Manager profile does not already exist. - [Config ]: Configuration of the app. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - [ContainerSize ]: Size of the function container. - [CustomDomainVerificationId ]: Unique identifier that verifies the custom domains assigned to the app. Customer will add this id to a txt record for verification. - [DailyMemoryTimeQuota ]: Maximum allowed daily memory-time quota (applicable on dynamic apps only). - [DaprConfigAppId ]: Dapr application identifier - [DaprConfigAppPort ]: Tells Dapr which port your application is listening on - [DaprConfigEnableApiLogging ]: Enables API logging for the Dapr sidecar - [DaprConfigEnabled ]: Boolean indicating if the Dapr side car is enabled - [DaprConfigHttpMaxRequestSize ]: Increasing max size of request body http servers parameter in MB to handle uploading of big files. Default is 4 MB. - [DaprConfigHttpReadBufferSize ]: Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. - [DaprConfigLogLevel ]: Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. - [DnsConfigurationDnsAltServer ]: Alternate DNS server to be used by apps. This property replicates the WEBSITE_DNS_ALT_SERVER app setting. - [DnsConfigurationDnsMaxCacheTimeout ]: Custom time for DNS to be cached in seconds. Allowed range: 0-60. Default is 30 seconds. 0 means caching disabled. - [DnsConfigurationDnsRetryAttemptCount ]: Total number of retries for dns lookup. Allowed range: 1-5. Default is 3. - [DnsConfigurationDnsRetryAttemptTimeout ]: Timeout for a single dns lookup in seconds. Allowed range: 1-30. Default is 3. - [DnsConfigurationDnsServer ]: List of custom DNS servers to be used by an app for lookups. Maximum 5 dns servers can be set. - [Enabled ]: true if the app is enabled; otherwise, false. Setting this value to false disables the app (takes the app offline). - [ExtendedLocationName ]: Name of extended location. - [HostNameSslState ]: Hostname SSL states are used to manage the SSL bindings for app's hostnames. - [HostType ]: Indicates whether the hostname is a standard or repository hostname. - [Name ]: Hostname. - [SslState ]: SSL type. - [Thumbprint ]: SSL certificate thumbprint. - [ToUpdate ]: Set to true to update existing hostname. - [VirtualIP ]: Virtual IP address assigned to the hostname if IP based SSL is enabled. - [HostNamesDisabled ]: true to disable the public hostnames of the app; otherwise, false. If true, the app is only accessible via API management process. - [HostingEnvironmentProfileId ]: Resource ID of the App Service Environment. - [HttpPerInstanceConcurrency ]: The maximum number of concurrent HTTP trigger invocations per instance. - [HttpsOnly ]: HttpsOnly: configures a web site to accept only https requests. Issues redirect for http requests - [HyperV ]: Hyper-V sandbox. - [IdentityType ]: Type of managed service identity. - [IdentityUserAssignedIdentity ]: The list of user assigned identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} - [(Any) ]: This indicates any property can be added to this object. - [IsXenon ]: Obsolete: Hyper-V sandbox. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [ManagedEnvironmentId ]: Azure Resource Manager ID of the customer's selected Managed Environment on which to host this app. This must be of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.App/managedEnvironments/{managedEnvironmentName} - [PublicNetworkAccess ]: Property to allow or block all public traffic. Allowed Values: 'Enabled', 'Disabled' or an empty string. - [RedundancyMode ]: Site redundancy mode - [Reserved ]: true if reserved; otherwise, false. - [ResourceConfigCpu ]: Required CPU in cores, e.g. 0.5 - [ResourceConfigMemory ]: Required memory, e.g. "1Gi" - [RuntimeName ]: Function app runtime name. Available options: dotnet-isolated, node, java, powershell, python, custom - [RuntimeVersion ]: Function app runtime version. Example: 8 (for dotnet-isolated) - [ScaleAndConcurrencyAlwaysReady ]: 'Always Ready' configuration for the function app. - [InstanceCount ]: Sets the number of 'Always Ready' instances for a given function group or a specific function. For additional information see https://aka.ms/flexconsumption/alwaysready. - [Name ]: Either a function group or a function name is required. For additional information see https://aka.ms/flexconsumption/alwaysready. - [ScaleAndConcurrencyInstanceMemoryMb ]: Set the amount of memory allocated to each instance of the function app in MB. CPU and network bandwidth are allocated proportionally. - [ScaleAndConcurrencyMaximumInstanceCount ]: The maximum number of instances for the function app. - [ScmSiteAlsoStopped ]: true to stop SCM (KUDU) site when the app is stopped; otherwise, false. The default is false. - [ServerFarmId ]: Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". - [StorageAccountRequired ]: Checks if Customer provided storage account is required - [StorageType ]: Property to select Azure Storage type. Available options: blobContainer. - [StorageValue ]: Property to set the URL for the selected Azure Storage type. Example: For blobContainer, the value could be https://.blob.core.windows.net/. - [VirtualNetworkSubnetId ]: Azure Resource Manager ID of the Virtual network and subnet to be joined by Regional VNET Integration. This must be of the form /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName} - [VnetBackupRestoreEnabled ]: To enable Backup and Restore operations over virtual network - [VnetContentShareEnabled ]: To enable accessing content over virtual network - [VnetImagePullEnabled ]: To enable pulling image over Virtual Network - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WorkloadProfileName ]: Workload profile name for function app to execute on. -.Link -https://learn.microsoft.com/powershell/module/az.functions/stop-azfunctionapp -#> -function Stop-AzFunctionApp { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='StopByName', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='StopByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of function app. - ${Name}, - - [Parameter(ParameterSetName='StopByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - ${ResourceGroupName}, - - [Parameter(ParameterSetName='StopByName')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # The Azure subscription ID. - ${SubscriptionId}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Forces the cmdlet to stop the function app without prompting for confirmation. - ${Force}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The credentials, account, tenant, and subscription used for communication with Azure. - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds. - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - StopByName = 'Az.Functions.custom\Stop-AzFunctionApp'; - ByObjectInput = 'Az.Functions.custom\Stop-AzFunctionApp'; - } - if (('StopByName') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -Updates a function app. -.Description -Updates a function app. -.Example -Update-AzFunctionApp -Name MyUniqueFunctionAppName -ResourceGroupName MyResourceGroupName -PlanName NewPlanName -Force -.Example -Update-AzFunctionApp -Name MyUniqueFunctionAppName -ResourceGroupName MyResourceGroupName -IdentityType SystemAssigned -Force -.Example -Update-AzFunctionApp -Name MyUniqueFunctionAppName -ResourceGroupName MyResourceGroupName -ApplicationInsightsName ApplicationInsightsProjectName -Force -.Example -Update-AzFunctionApp -Name MyUniqueFunctionAppName -ResourceGroupName MyResourceGroupName -IdentityType None -Force - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : - Location : Resource Location. - [Kind ]: Kind of resource. - [Tag ]: Resource tags. - [(Any) ]: This indicates any property can be added to this object. - [AuthenticationStorageAccountConnectionStringName ]: Use this property for StorageAccountConnectionString. Set the name of the app setting that has the storage account connection string. Do not set a value for this property when using other authentication type. - [AuthenticationType ]: Property to select authentication type to access the selected storage account. Available options: SystemAssignedIdentity, UserAssignedIdentity, StorageAccountConnectionString. - [AuthenticationUserAssignedIdentityResourceId ]: Use this property for UserAssignedIdentity. Set the resource ID of the identity. Do not set a value for this property when using other authentication type. - [ClientAffinityEnabled ]: true to enable client affinity; false to stop sending session affinity cookies, which route client requests in the same session to the same instance. Default is true. - [ClientCertEnabled ]: true to enable client certificate authentication (TLS mutual authentication); otherwise, false. Default is false. - [ClientCertExclusionPath ]: client certificate authentication comma-separated exclusion paths - [ClientCertMode ]: This composes with ClientCertEnabled setting. - ClientCertEnabled: false means ClientCert is ignored. - ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required. - ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted. - [CloningInfoAppSettingsOverride ]: Application setting overrides for cloned app. If specified, these settings override the settings cloned from source app. Otherwise, application settings from source app are retained. - [(Any) ]: This indicates any property can be added to this object. - [CloningInfoCloneCustomHostName ]: true to clone custom hostnames from source app; otherwise, false. - [CloningInfoCloneSourceControl ]: true to clone source control from source app; otherwise, false. - [CloningInfoConfigureLoadBalancing ]: true to configure load balancing for source and destination app. - [CloningInfoCorrelationId ]: Correlation ID of cloning operation. This ID ties multiple cloning operations together to use the same snapshot. - [CloningInfoHostingEnvironment ]: App Service Environment. - [CloningInfoOverwrite ]: true to overwrite destination app; otherwise, false. - [CloningInfoSourceWebAppId ]: ARM resource ID of the source app. App resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots. - [CloningInfoSourceWebAppLocation ]: Location of source app ex: West US or North Europe - [CloningInfoTrafficManagerProfileId ]: ARM resource ID of the Traffic Manager profile to use, if it exists. Traffic Manager resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}. - [CloningInfoTrafficManagerProfileName ]: Name of Traffic Manager profile to create. This is only needed if Traffic Manager profile does not already exist. - [Config ]: Configuration of the app. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - [ContainerSize ]: Size of the function container. - [CustomDomainVerificationId ]: Unique identifier that verifies the custom domains assigned to the app. Customer will add this id to a txt record for verification. - [DailyMemoryTimeQuota ]: Maximum allowed daily memory-time quota (applicable on dynamic apps only). - [DaprConfigAppId ]: Dapr application identifier - [DaprConfigAppPort ]: Tells Dapr which port your application is listening on - [DaprConfigEnableApiLogging ]: Enables API logging for the Dapr sidecar - [DaprConfigEnabled ]: Boolean indicating if the Dapr side car is enabled - [DaprConfigHttpMaxRequestSize ]: Increasing max size of request body http servers parameter in MB to handle uploading of big files. Default is 4 MB. - [DaprConfigHttpReadBufferSize ]: Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. - [DaprConfigLogLevel ]: Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. - [DnsConfigurationDnsAltServer ]: Alternate DNS server to be used by apps. This property replicates the WEBSITE_DNS_ALT_SERVER app setting. - [DnsConfigurationDnsMaxCacheTimeout ]: Custom time for DNS to be cached in seconds. Allowed range: 0-60. Default is 30 seconds. 0 means caching disabled. - [DnsConfigurationDnsRetryAttemptCount ]: Total number of retries for dns lookup. Allowed range: 1-5. Default is 3. - [DnsConfigurationDnsRetryAttemptTimeout ]: Timeout for a single dns lookup in seconds. Allowed range: 1-30. Default is 3. - [DnsConfigurationDnsServer ]: List of custom DNS servers to be used by an app for lookups. Maximum 5 dns servers can be set. - [Enabled ]: true if the app is enabled; otherwise, false. Setting this value to false disables the app (takes the app offline). - [ExtendedLocationName ]: Name of extended location. - [HostNameSslState ]: Hostname SSL states are used to manage the SSL bindings for app's hostnames. - [HostType ]: Indicates whether the hostname is a standard or repository hostname. - [Name ]: Hostname. - [SslState ]: SSL type. - [Thumbprint ]: SSL certificate thumbprint. - [ToUpdate ]: Set to true to update existing hostname. - [VirtualIP ]: Virtual IP address assigned to the hostname if IP based SSL is enabled. - [HostNamesDisabled ]: true to disable the public hostnames of the app; otherwise, false. If true, the app is only accessible via API management process. - [HostingEnvironmentProfileId ]: Resource ID of the App Service Environment. - [HttpPerInstanceConcurrency ]: The maximum number of concurrent HTTP trigger invocations per instance. - [HttpsOnly ]: HttpsOnly: configures a web site to accept only https requests. Issues redirect for http requests - [HyperV ]: Hyper-V sandbox. - [IdentityType ]: Type of managed service identity. - [IdentityUserAssignedIdentity ]: The list of user assigned identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} - [(Any) ]: This indicates any property can be added to this object. - [IsXenon ]: Obsolete: Hyper-V sandbox. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [ManagedEnvironmentId ]: Azure Resource Manager ID of the customer's selected Managed Environment on which to host this app. This must be of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.App/managedEnvironments/{managedEnvironmentName} - [PublicNetworkAccess ]: Property to allow or block all public traffic. Allowed Values: 'Enabled', 'Disabled' or an empty string. - [RedundancyMode ]: Site redundancy mode - [Reserved ]: true if reserved; otherwise, false. - [ResourceConfigCpu ]: Required CPU in cores, e.g. 0.5 - [ResourceConfigMemory ]: Required memory, e.g. "1Gi" - [RuntimeName ]: Function app runtime name. Available options: dotnet-isolated, node, java, powershell, python, custom - [RuntimeVersion ]: Function app runtime version. Example: 8 (for dotnet-isolated) - [ScaleAndConcurrencyAlwaysReady ]: 'Always Ready' configuration for the function app. - [InstanceCount ]: Sets the number of 'Always Ready' instances for a given function group or a specific function. For additional information see https://aka.ms/flexconsumption/alwaysready. - [Name ]: Either a function group or a function name is required. For additional information see https://aka.ms/flexconsumption/alwaysready. - [ScaleAndConcurrencyInstanceMemoryMb ]: Set the amount of memory allocated to each instance of the function app in MB. CPU and network bandwidth are allocated proportionally. - [ScaleAndConcurrencyMaximumInstanceCount ]: The maximum number of instances for the function app. - [ScmSiteAlsoStopped ]: true to stop SCM (KUDU) site when the app is stopped; otherwise, false. The default is false. - [ServerFarmId ]: Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". - [StorageAccountRequired ]: Checks if Customer provided storage account is required - [StorageType ]: Property to select Azure Storage type. Available options: blobContainer. - [StorageValue ]: Property to set the URL for the selected Azure Storage type. Example: For blobContainer, the value could be https://.blob.core.windows.net/. - [VirtualNetworkSubnetId ]: Azure Resource Manager ID of the Virtual network and subnet to be joined by Regional VNET Integration. This must be of the form /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName} - [VnetBackupRestoreEnabled ]: To enable Backup and Restore operations over virtual network - [VnetContentShareEnabled ]: To enable accessing content over virtual network - [VnetImagePullEnabled ]: To enable pulling image over Virtual Network - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WorkloadProfileName ]: Workload profile name for function app to execute on. -.Link -https://learn.microsoft.com/powershell/module/az.functions/update-azfunctionapp -#> -function Update-AzFunctionApp { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite])] -[CmdletBinding(DefaultParameterSetName='ByName', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The name of the resource group. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The name of the function app. - ${Name}, - - [Parameter(ParameterSetName='ByName')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # The Azure subscription ID. - ${SubscriptionId}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The name of the service plan. - ${PlanName}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Forces the cmdlet to update the function app without prompting for confirmation. - ${Force}, - - [Parameter()] - [Alias('AppInsightsName')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Name of the existing App Insights project to be added to the function app. - ${ApplicationInsightsName}, - - [Parameter()] - [Alias('AppInsightsKey')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Instrumentation key of App Insights to be added. - ${ApplicationInsightsKey}, - - [Parameter()] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IResourceTags]))] - [System.Collections.Hashtable] - # Resource tags. - ${Tag}, - - [Parameter()] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FunctionAppManagedServiceIdentityUpdateType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedServiceIdentityType] - # Specifies the type of identity used for the function app. - # The type 'None' will remove any identities from the function app. - # The acceptable values for this parameter are: - # - SystemAssigned - # - UserAssigned - # - None - ${IdentityType}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # Specifies the list of user identities associated with the function app. - # The user identity references will be ARM resource ids in the form: - # '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/identities/{identityName}' - ${IdentityID}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory, ValueFromPipeline)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Starts the operation and returns immediately, before the operation is completed. - # In order to determine if the operation has successfully been completed, use some other mechanism. - ${NoWait}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Runs the cmdlet as a background job. - ${AsJob}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - ByName = 'Az.Functions.custom\Update-AzFunctionApp'; - ByObjectInput = 'Az.Functions.custom\Update-AzFunctionApp'; - } - if (('ByName') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -Updates a function app service plan. -.Description -Updates a function app service plan. -.Example -Update-AzFunctionAppPlan -ResourceGroupName MyResourceGroupName ` - -Name MyPremiumPlan ` - -MaximumWorkerCount 20 ` - -Sku EP2 ` - -Force - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : - Location : Resource Location. - [Kind ]: Kind of resource. - [Tag ]: Resource tags. - [(Any) ]: This indicates any property can be added to this object. - [Capacity ]: Current number of instances assigned to the resource. - [ElasticScaleEnabled ]: ServerFarm supports ElasticScale. Apps in this plan will scale as if the ServerFarm was ElasticPremium sku - [ExtendedLocationName ]: Name of extended location. - [FreeOfferExpirationTime ]: The time when the server farm free offer expires. - [HostingEnvironmentProfileId ]: Resource ID of the App Service Environment. - [HyperV ]: If Hyper-V container app service plan true, false otherwise. - [IsSpot ]: If true, this App Service Plan owns spot instances. - [IsXenon ]: Obsolete: If Hyper-V container app service plan true, false otherwise. - [KubeEnvironmentProfileId ]: Resource ID of the Kubernetes Environment. - [MaximumElasticWorkerCount ]: Maximum number of total workers allowed for this ElasticScaleEnabled App Service Plan - [PerSiteScaling ]: If true, apps assigned to this App Service plan can be scaled independently. If false, apps assigned to this App Service plan will scale to all instances of the plan. - [Reserved ]: If Linux app service plan true, false otherwise. - [SkuCapability ]: Capabilities of the SKU, e.g., is traffic manager enabled? - [Name ]: Name of the SKU capability. - [Reason ]: Reason of the SKU capability. - [Value ]: Value of the SKU capability. - [SkuCapacityDefault ]: Default number of workers for this App Service plan SKU. - [SkuCapacityElasticMaximum ]: Maximum number of Elastic workers for this App Service plan SKU. - [SkuCapacityMaximum ]: Maximum number of workers for this App Service plan SKU. - [SkuCapacityMinimum ]: Minimum number of workers for this App Service plan SKU. - [SkuCapacityScaleType ]: Available scale configurations for an App Service plan. - [SkuFamily ]: Family code of the resource SKU. - [SkuLocation ]: Locations of the SKU. - [SkuName ]: Name of the resource SKU. - [SkuSize ]: Size specifier of the resource SKU. - [SkuTier ]: Service tier of the resource SKU. - [SpotExpirationTime ]: The time when the server farm expires. Valid only if it is a spot server farm. - [TargetWorkerCount ]: Scaling worker count. - [TargetWorkerSizeId ]: Scaling worker size ID. - [WorkerTierName ]: Target worker tier assigned to the App Service plan. - [ZoneRedundant ]: If true, this App Service Plan will perform availability zone balancing. If false, this App Service Plan will not perform availability zone balancing. -.Link -https://learn.microsoft.com/powershell/module/az.functions/update-azfunctionappplan -#> -function Update-AzFunctionAppPlan { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan])] -[CmdletBinding(DefaultParameterSetName='ByName', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the App Service plan. - ${Name}, - - [Parameter(ParameterSetName='ByName')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # The Azure subscription ID. - ${SubscriptionId}, - - [Parameter()] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SkuType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The plan sku. - # Valid inputs are: EP1, EP2, EP3 - ${Sku}, - - [Parameter()] - [Alias('MaxBurst')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # The maximum number of workers for the app service plan. - ${MaximumWorkerCount}, - - [Parameter()] - [Alias('MinInstances')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # The minimum number of workers for the app service plan. - ${MinimumWorkerCount}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Forces the cmdlet to update the function app plan without prompting for confirmation. - ${Force}, - - [Parameter()] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IResourceTags]))] - [System.Collections.Hashtable] - # Resource tags. - ${Tag}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory, ValueFromPipeline)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan] - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command asynchronously. - ${NoWait}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command as a job. - ${AsJob}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - ByName = 'Az.Functions.custom\Update-AzFunctionAppPlan'; - ByObjectInput = 'Az.Functions.custom\Update-AzFunctionAppPlan'; - } - if (('ByName') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -Adds or updates app settings in a function app. -.Description -Adds or updates app settings in a function app. -.Example -Update-AzFunctionAppSetting -Name MyAppName -ResourceGroupName MyResourceGroupName -AppSetting @{"Name1" = "Value1"} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : - Location : Resource Location. - [Kind ]: Kind of resource. - [Tag ]: Resource tags. - [(Any) ]: This indicates any property can be added to this object. - [AuthenticationStorageAccountConnectionStringName ]: Use this property for StorageAccountConnectionString. Set the name of the app setting that has the storage account connection string. Do not set a value for this property when using other authentication type. - [AuthenticationType ]: Property to select authentication type to access the selected storage account. Available options: SystemAssignedIdentity, UserAssignedIdentity, StorageAccountConnectionString. - [AuthenticationUserAssignedIdentityResourceId ]: Use this property for UserAssignedIdentity. Set the resource ID of the identity. Do not set a value for this property when using other authentication type. - [ClientAffinityEnabled ]: true to enable client affinity; false to stop sending session affinity cookies, which route client requests in the same session to the same instance. Default is true. - [ClientCertEnabled ]: true to enable client certificate authentication (TLS mutual authentication); otherwise, false. Default is false. - [ClientCertExclusionPath ]: client certificate authentication comma-separated exclusion paths - [ClientCertMode ]: This composes with ClientCertEnabled setting. - ClientCertEnabled: false means ClientCert is ignored. - ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required. - ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted. - [CloningInfoAppSettingsOverride ]: Application setting overrides for cloned app. If specified, these settings override the settings cloned from source app. Otherwise, application settings from source app are retained. - [(Any) ]: This indicates any property can be added to this object. - [CloningInfoCloneCustomHostName ]: true to clone custom hostnames from source app; otherwise, false. - [CloningInfoCloneSourceControl ]: true to clone source control from source app; otherwise, false. - [CloningInfoConfigureLoadBalancing ]: true to configure load balancing for source and destination app. - [CloningInfoCorrelationId ]: Correlation ID of cloning operation. This ID ties multiple cloning operations together to use the same snapshot. - [CloningInfoHostingEnvironment ]: App Service Environment. - [CloningInfoOverwrite ]: true to overwrite destination app; otherwise, false. - [CloningInfoSourceWebAppId ]: ARM resource ID of the source app. App resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots. - [CloningInfoSourceWebAppLocation ]: Location of source app ex: West US or North Europe - [CloningInfoTrafficManagerProfileId ]: ARM resource ID of the Traffic Manager profile to use, if it exists. Traffic Manager resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}. - [CloningInfoTrafficManagerProfileName ]: Name of Traffic Manager profile to create. This is only needed if Traffic Manager profile does not already exist. - [Config ]: Configuration of the app. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - [ContainerSize ]: Size of the function container. - [CustomDomainVerificationId ]: Unique identifier that verifies the custom domains assigned to the app. Customer will add this id to a txt record for verification. - [DailyMemoryTimeQuota ]: Maximum allowed daily memory-time quota (applicable on dynamic apps only). - [DaprConfigAppId ]: Dapr application identifier - [DaprConfigAppPort ]: Tells Dapr which port your application is listening on - [DaprConfigEnableApiLogging ]: Enables API logging for the Dapr sidecar - [DaprConfigEnabled ]: Boolean indicating if the Dapr side car is enabled - [DaprConfigHttpMaxRequestSize ]: Increasing max size of request body http servers parameter in MB to handle uploading of big files. Default is 4 MB. - [DaprConfigHttpReadBufferSize ]: Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. - [DaprConfigLogLevel ]: Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. - [DnsConfigurationDnsAltServer ]: Alternate DNS server to be used by apps. This property replicates the WEBSITE_DNS_ALT_SERVER app setting. - [DnsConfigurationDnsMaxCacheTimeout ]: Custom time for DNS to be cached in seconds. Allowed range: 0-60. Default is 30 seconds. 0 means caching disabled. - [DnsConfigurationDnsRetryAttemptCount ]: Total number of retries for dns lookup. Allowed range: 1-5. Default is 3. - [DnsConfigurationDnsRetryAttemptTimeout ]: Timeout for a single dns lookup in seconds. Allowed range: 1-30. Default is 3. - [DnsConfigurationDnsServer ]: List of custom DNS servers to be used by an app for lookups. Maximum 5 dns servers can be set. - [Enabled ]: true if the app is enabled; otherwise, false. Setting this value to false disables the app (takes the app offline). - [ExtendedLocationName ]: Name of extended location. - [HostNameSslState ]: Hostname SSL states are used to manage the SSL bindings for app's hostnames. - [HostType ]: Indicates whether the hostname is a standard or repository hostname. - [Name ]: Hostname. - [SslState ]: SSL type. - [Thumbprint ]: SSL certificate thumbprint. - [ToUpdate ]: Set to true to update existing hostname. - [VirtualIP ]: Virtual IP address assigned to the hostname if IP based SSL is enabled. - [HostNamesDisabled ]: true to disable the public hostnames of the app; otherwise, false. If true, the app is only accessible via API management process. - [HostingEnvironmentProfileId ]: Resource ID of the App Service Environment. - [HttpPerInstanceConcurrency ]: The maximum number of concurrent HTTP trigger invocations per instance. - [HttpsOnly ]: HttpsOnly: configures a web site to accept only https requests. Issues redirect for http requests - [HyperV ]: Hyper-V sandbox. - [IdentityType ]: Type of managed service identity. - [IdentityUserAssignedIdentity ]: The list of user assigned identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} - [(Any) ]: This indicates any property can be added to this object. - [IsXenon ]: Obsolete: Hyper-V sandbox. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [ManagedEnvironmentId ]: Azure Resource Manager ID of the customer's selected Managed Environment on which to host this app. This must be of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.App/managedEnvironments/{managedEnvironmentName} - [PublicNetworkAccess ]: Property to allow or block all public traffic. Allowed Values: 'Enabled', 'Disabled' or an empty string. - [RedundancyMode ]: Site redundancy mode - [Reserved ]: true if reserved; otherwise, false. - [ResourceConfigCpu ]: Required CPU in cores, e.g. 0.5 - [ResourceConfigMemory ]: Required memory, e.g. "1Gi" - [RuntimeName ]: Function app runtime name. Available options: dotnet-isolated, node, java, powershell, python, custom - [RuntimeVersion ]: Function app runtime version. Example: 8 (for dotnet-isolated) - [ScaleAndConcurrencyAlwaysReady ]: 'Always Ready' configuration for the function app. - [InstanceCount ]: Sets the number of 'Always Ready' instances for a given function group or a specific function. For additional information see https://aka.ms/flexconsumption/alwaysready. - [Name ]: Either a function group or a function name is required. For additional information see https://aka.ms/flexconsumption/alwaysready. - [ScaleAndConcurrencyInstanceMemoryMb ]: Set the amount of memory allocated to each instance of the function app in MB. CPU and network bandwidth are allocated proportionally. - [ScaleAndConcurrencyMaximumInstanceCount ]: The maximum number of instances for the function app. - [ScmSiteAlsoStopped ]: true to stop SCM (KUDU) site when the app is stopped; otherwise, false. The default is false. - [ServerFarmId ]: Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". - [StorageAccountRequired ]: Checks if Customer provided storage account is required - [StorageType ]: Property to select Azure Storage type. Available options: blobContainer. - [StorageValue ]: Property to set the URL for the selected Azure Storage type. Example: For blobContainer, the value could be https://.blob.core.windows.net/. - [VirtualNetworkSubnetId ]: Azure Resource Manager ID of the Virtual network and subnet to be joined by Regional VNET Integration. This must be of the form /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName} - [VnetBackupRestoreEnabled ]: To enable Backup and Restore operations over virtual network - [VnetContentShareEnabled ]: To enable accessing content over virtual network - [VnetImagePullEnabled ]: To enable pulling image over Virtual Network - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WorkloadProfileName ]: Workload profile name for function app to execute on. -.Link -https://learn.microsoft.com/powershell/module/az.functions/update-azfunctionappsetting -#> -function Update-AzFunctionAppSetting { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary])] -[CmdletBinding(DefaultParameterSetName='ByName', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the function app. - ${Name}, - - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='ByName')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # The Azure subscription ID. - ${SubscriptionId}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Collections.Hashtable] - # Hashtable with keys and values describe the app settings to be added or updated in the function app. - # For example: @{"myappsetting"="123"} - ${AppSetting}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Forces the cmdlet to update function app setting without prompting for confirmation. - ${Force}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory, ValueFromPipeline)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - ByName = 'Az.Functions.custom\Update-AzFunctionAppSetting'; - ByObjectInput = 'Az.Functions.custom\Update-AzFunctionAppSetting'; - } - if (('ByName') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -# SIG # Begin signature block -# MIIoKAYJKoZIhvcNAQcCoIIoGTCCKBUCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCD9xRZV1AfC/8dK -# Dq6vhVadfkBjd74xrIHN8ZC9Z8I8ZqCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGggwghoEAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIErcSbWeBiJIX//iz+ubhgWX -# Tqr4Yj3/lu9KqMJQtCf+MEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAsXKYwGyFIptqoXvcfEl7KlqbDgjjsUwnQhTN0tpitQKxSsV6RqRhZHu9 -# rWFEvdtC/QiTpz/HpkiLbIJnEkhBELh/JyhJoi54lQ7Qj0akSk9PS7ewcqlqnxx4 -# igyfwyCKel706e35LSOVcDWKMJyKUcpPEob5yZJJ5W8Sh7CWYfTp5od7ClpW/rii -# QVYRxRfghdPfnzHA/8XC1tW69ZRPBfCQ59klw+dFAQOll4QWOdr1JH8uaTugxg0j -# 8Z4TNieKAWgSbASuz93QPWMyNyBW7FCRS4nqM7ysQ7UEHNDrTsXHn2TyN9WOiJrv -# Z7+i5acyQISve3WK+B7+d0hvV75rf6GCF5IwgheOBgorBgEEAYI3AwMBMYIXfjCC -# F3oGCSqGSIb3DQEHAqCCF2swghdnAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFQBgsq -# hkiG9w0BCRABBKCCAT8EggE7MIIBNwIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCBJilvwcjTkNpnJNN2aViSfW33EeImjcQMH+4mZQArCzAIGZ1rd48j4 -# GBEyMDI1MDEwOTA2MzY0Ny4zWjAEgAIB9KCB0aSBzjCByzELMAkGA1UEBhMCVVMx -# EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT -# FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJp -# Y2EgT3BlcmF0aW9uczEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjhEMDAtMDVF -# MC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloIIR -# 6jCCByAwggUIoAMCAQICEzMAAAHzxQpDrgPMHTEAAQAAAfMwDQYJKoZIhvcNAQEL -# BQAwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT -# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE -# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwHhcNMjMxMjA2MTg0NjAy -# WhcNMjUwMzA1MTg0NjAyWjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjhEMDAtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEF -# AAOCAg8AMIICCgKCAgEA/p+m2uErgfYkjuVjIW54KmAG/s9yH8zaWSFkv7IH14ZS -# 2Jhp7FLaxl9zlXIPvJKyXYsbjVDDu2QDqgmbF1Izs/M3J9WlA+Q9q9j4c1Sox7Yr -# 1hoBo+MecKlntUKL97zM/Fh7CrH2nSJVo3wTJ1SlaJjsm0O/to3OGn849lyUEEph -# PY0EaAaIA8JqmWpHmJyMdBJjrrnD6+u+E+v2Gkz4iGJRn/l1druqEBwJDBuesWD0 -# IpIrUI4zVhwA3wamwRGqqaWrLcaUTXOIndktcVUMXEBl45wIHnlW2z2wKBC4W8Ps -# 91XrUcLhBSUc0+oW1hIL8/SzGD0m4qBy/MPmYlqN8bsN0e3ybKnu6arJ48L54j+7 -# HxNbrX4u5NDUGTKb4jrP/9t/R+ngOiDlbRfMOuoqRO9RGK3EjazhpU5ubqqvrMjt -# bnWTnijNMWO9vDXBgxap47hT2xBJuvnrWSn7VPY8Swks6lzlTs3agPDuV2txONY9 -# 7OzJUxeEOwWK0Jm6caoU737iJWMCNgM3jtzor3HsycAY9hUIE4lR2nLzEA4EgOxO -# b8rWpNPjCwZtAHFuCD3q/AOIDhg/aEqa5sgLtSesBZAa39ko5/onjauhcdLVo/CK -# YN7kL3LoN+40mnReqta1BGqDyGo2QhlZPqOcJ+q7fnMHSd/URFON2lgsJ9Avl8cC -# AwEAAaOCAUkwggFFMB0GA1UdDgQWBBTDZBX2pRFRDIwNwKaFMfag6w0KJDAfBgNV -# HSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5o -# dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBU -# aW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwG -# CCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRz -# L01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNV -# HRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIH -# gDANBgkqhkiG9w0BAQsFAAOCAgEA38Qcj/zR/u/b3N5YjuHO51zP1ChXAJucOtRc -# UcT8Ql0V5YjY2e7A6jT9A81EwVPbUuQ6pKkUoiFdeY+6vHunpYPP3A9279LFuBqP -# QDC+JYQOTAYN8MynYoXydBPxyKnB19dZsLW6U4gtrIAFIe/jmZ2/U8CRO6WxATyU -# FMcbgokuf69LNkFYqQZov/DBFtniIuJifrxyOQwmgBqKE+ANef+6DY/c8s0QAU1C -# AjTa0tfSn68hDeXYeZKjhuEIHGvcOi+wi/krrk2YtEmfGauuYitoUPCDADlcXsAq -# Q+JWS+jQ7FTUsATVzlJbMTgDtxtMDU/nAboPxw+NwexNqHVX7Oh9hGAmcVEta4EX -# hndrqkMYENsKzLk2+cpDvqnfuJ4Wn//Ujd4HraJrUJ+SM4XwpK2k9Sp2RfEyN8nt -# Wd6Z3q9Ap/6deR+8DcA5AQImftos/TVBHmC3zBpvbxKw1QQ0TIxrBPx6qmO0E0k7 -# Q71O/s2cETxo4mGFBV0/lYJH3R4haSsONl7JtDHy+Wjmt9RcgjNe/6T0yCk0YirA -# xd+9EsCMGQI1c4g//UIRBQbvaaIxVCzmb87i+YkhCSHKqKVQMHWzXa6GYthzfJ3w -# 48yWvAjE5EHkn0LEKSq/NzoQZhNzBdrM/IKnt5aHNOQ1vCTb2d9vCabNyyQgC7dK -# 0DyWJzswggdxMIIFWaADAgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3 -# DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G -# A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIw -# MAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAx -# MDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVT -# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1l -# LVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA -# 5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/ -# XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1 -# hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7 -# M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3K -# Ni1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy -# 1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF80 -# 3RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQc -# NIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahha -# YQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkL -# iWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV -# 2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIG -# CSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUp -# zxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBT -# MFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jv -# c29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYI -# KwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGG -# MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186a -# GMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3Br -# aS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsG -# AQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcN -# AQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1 -# OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYA -# A7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbz -# aN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6L -# GYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3m -# Sj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0 -# SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxko -# JLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFm -# PWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC482 -# 2rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7 -# vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDTTCC -# AjUCAQEwgfmhgdGkgc4wgcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n -# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y -# YXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMxJzAl -# BgNVBAsTHm5TaGllbGQgVFNTIEVTTjo4RDAwLTA1RTAtRDk0NzElMCMGA1UEAxMc -# TWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAbvoG -# LNi0YWuaRTu/YNy5H8CkZyiggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQ -# Q0EgMjAxMDANBgkqhkiG9w0BAQsFAAIFAOspnA0wIhgPMjAyNTAxMDkwMDUxMjVa -# GA8yMDI1MDExMDAwNTEyNVowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA6ymcDQIB -# ADAHAgEAAgIaGjAHAgEAAgIR8DAKAgUA6yrtjQIBADA2BgorBgEEAYRZCgQCMSgw -# JjAMBgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3 -# DQEBCwUAA4IBAQCIvMv6BEg8aqVR3y4BzcoMAfya7ZgiN0bEAnIFeVSuEeGU1z1w -# lU7LE/lAOobkOndO2NFVh+8Fwq4Fvw4+x5iaWA1uCnGeUme/rxGTf433FVTlR0pS -# 284bID3z3KsPysztOspWr+JJS4PdvmstrZbGQdj5SgBSNcy17D6w2cTU/wP/yrGn -# Z2z64lCg8Xgxsr1q/tLCjE+lWXhN/lCun4m1gQPXhWlCpJt47VxoTAx7VjZiPauh -# H1gITvyripRJxm5qrYRI1fUE7cQWjMOCkW9AWazlQRUk7oXT6sjEhNKteT8yeJyn -# MH1oInEX3mzF51NCswgA1rF6HCz4hZLqhgARMYIEDTCCBAkCAQEwgZMwfDELMAkG -# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx -# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAHzxQpDrgPMHTEAAQAAAfMwDQYJ -# YIZIAWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkq -# hkiG9w0BCQQxIgQgRxknCIs8/MZQa/GbPNN5VN2BvTgt7cBEahVVPfoqawQwgfoG -# CyqGSIb3DQEJEAIvMYHqMIHnMIHkMIG9BCAYvNk0i7bhuFZKfMAZiZP0/kQIfONb -# Bv2gzsMYOjti6DCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw -# AhMzAAAB88UKQ64DzB0xAAEAAAHzMCIEIBko1vDIytSKDkE8aWnbKqrgaLyQ1CUT -# xgpwAAUPa/dYMA0GCSqGSIb3DQEBCwUABIICABDsKj/63q27gZPqr/8/c9qVfu6O -# nY4GHWiYS8fmrBLo9VhrXPkDIZTqReg5hQqqoJdFjY5MUXhNEd9Ckyyl9AjNil8x -# 14IzUGp3e2zl9uPPLuE8xl5SJnMg4sqyZHLGT9ljKEcsCnU6hPa8bK6vuNZrYWsk -# zHx1ZKGM6Z6DdjWYz8noXH9GoX8gskSoo5pb2RLslgIVXbJEPCxijp7Accdbj1De -# h6hQjt9HIfPKXnEZDCsAsWDGRyb6rgJ1CAwbqBG1IqsUFoJYxfGb+U+IZUkjRHAu -# tja4JL/8qs+9uSvx6RSF6hTMKtmT7ACnB/Q005z3F07lHhoeN+mevttjVl1EKiog -# OVTHZOU1RwlxI4UfgsALbt6hp2a5Wbx2Lq/AyKxRPMNGKDXbSPFQlw1PHOWSMkKM -# YN28TPmrY8As/3j/FFD9gwYDwuxhXhMjspIqZE1D7fga8cDdHlxLcWQMSE8RkdN0 -# yHb7aG5mYCfDVVH4ynDDRRI/WX/tW+T5/qofjQtped9/BJqNxbPxxMbgW1p/zBZ3 -# Wskd1DN/2hdQ2z01qaEbWHA4k02uRutzVyg/203UvpnzlfWjdtzSU1blKXb2jnHm -# pWUWo8aSncnym1f6c4Xf6V+pqFidxR2vh1Bwe34gaPy8pld2yrpNmvsQK7xtPWWj -# uR2Tu8vcfoIE2+Xn -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/internal/Az.Functions.internal.psm1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/internal/Az.Functions.internal.psm1 deleted file mode 100644 index 490dfbbfc33a..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/internal/Az.Functions.internal.psm1 +++ /dev/null @@ -1,256 +0,0 @@ -# region Generated - # Load the private module dll - $null = Import-Module -PassThru -Name (Join-Path $PSScriptRoot '..\bin\Az.Functions.private.dll') - - # Get the private module's instance - $instance = [Microsoft.Azure.PowerShell.Cmdlets.Functions.Module]::Instance - - # Export nothing to clear implicit exports - Export-ModuleMember - - # Export proxy cmdlet scripts - $exportsPath = $PSScriptRoot - $directories = Get-ChildItem -Directory -Path $exportsPath - $profileDirectory = $null - if($instance.ProfileName) { - if(($directories | ForEach-Object { $_.Name }) -contains $instance.ProfileName) { - $profileDirectory = $directories | Where-Object { $_.Name -eq $instance.ProfileName } - } else { - # Don't export anything if the profile doesn't exist for the module - $exportsPath = $null - Write-Warning "Selected Azure profile '$($instance.ProfileName)' does not exist for module '$($instance.Name)'. No cmdlets were loaded." - } - } elseif(($directories | Measure-Object).Count -gt 0) { - # Load the last folder if no profile is selected - $profileDirectory = $directories | Select-Object -Last 1 - } - - if($profileDirectory) { - Write-Information "Loaded Azure profile '$($profileDirectory.Name)' for module '$($instance.Name)'" - $exportsPath = $profileDirectory.FullName - } - - if($exportsPath) { - Get-ChildItem -Path $exportsPath -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } - $cmdletNames = Get-ScriptCmdlet -ScriptFolder $exportsPath - Export-ModuleMember -Function $cmdletNames -Alias (Get-ScriptCmdlet -ScriptFolder $exportsPath -AsAlias) - } -# endregion - -# SIG # Begin signature block -# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCW8pSzs/LD3Np7 -# xk5xTtwXcyHIkknEaUUUyo4SpNgjn6CCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIGzmlAVDtDuJGgpkFds+A5YG -# OSuEe7r3U0cC+8jWxwkzMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAB1XwVCLiIreehXfZGrdx8IJYmke2DmkjNZOMptJhxTh2OvXD6qugZi6r -# UitWHEmH0+1sKcHdWXmGkq59/mH1AnOW/eH8JgmV2aA1AgYjpxAlKC9knKkjLX8R -# 4gaLoobGMARkj1B3oANb20EXx+suPrNVVptmwGnE3Jkt6zpQX8FlmTsCUtZQ5bZi -# rA2dbO9dmYCyI9Ut4abcMUq08EKejQCrKF7EKXGhjocrqkMuSRxs731bOSowVsqG -# 7bkAAw+tkKbK7vV6a8fPgYtVOcSiIA3lFXIO5enRFm9DYsdXLmTTGzm8R0l7SW5l -# e0EZLErfJFWMJZqlJwYtVQ/IMiH0aKGCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC -# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCCrHZB7coghxuBi0KxOmWPLDab5RgqI3hZVS8DwT8nCaQIGZ1rRdmth -# GBMyMDI1MDEwOTA2Mzc0Mi4zODVaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTIwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHqMIIHIDCCBQigAwIBAgITMwAAAecujy+TC08b6QABAAAB5zANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# MTlaFw0yNTAzMDUxODQ1MTlaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTIwMC0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDCV58v4IuQ659XPM1DtaWMv9/HRUC5kdiEF89YBP6/ -# Rn7kjqMkZ5ESemf5Eli4CLtQVSefRpF1j7S5LLKisMWOGRaLcaVbGTfcmI1vMRJ1 -# tzMwCNIoCq/vy8WH8QdV1B/Ab5sK+Q9yIvzGw47TfXPE8RlrauwK/e+nWnwMt060 -# akEZiJJz1Vh1LhSYKaiP9Z23EZmGETCWigkKbcuAnhvh3yrMa89uBfaeHQZEHGQq -# dskM48EBcWSWdpiSSBiAxyhHUkbknl9PPztB/SUxzRZjUzWHg9bf1mqZ0cIiAWC0 -# EjK7ONhlQfKSRHVLKLNPpl3/+UL4Xjc0Yvdqc88gOLUr/84T9/xK5r82ulvRp2A8 -# /ar9cG4W7650uKaAxRAmgL4hKgIX5/0aIAsbyqJOa6OIGSF9a+DfXl1LpQPNKR79 -# 2scF7tjD5WqwIuifS9YUiHMvRLjjKk0SSCV/mpXC0BoPkk5asfxrrJbCsJePHSOE -# blpJzRmzaP6OMXwRcrb7TXFQOsTkKuqkWvvYIPvVzC68UM+MskLPld1eqdOOMK7S -# bbf2tGSZf3+iOwWQMcWXB9gw5gK3AIYK08WkJJuyzPqfitgubdRCmYr9CVsNOuW+ -# wHDYGhciJDF2LkrjkFUjUcXSIJd9f2ssYitZ9CurGV74BQcfrxjvk1L8jvtN7mul -# IwIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFM/+4JiAnzY4dpEf/Zlrh1K73o9YMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQB0ofDbk+llWi1cC6nsfie5Jtp09o6b6ARC -# pvtDPq2KFP+hi+UNNP7LGciKuckqXCmBTFIhfBeGSxvk6ycokdQr3815pEOaYWTn -# HvQ0+8hKy86r1F4rfBu4oHB5cTy08T4ohrG/OYG/B/gNnz0Ol6v7u/qEjz48zXZ6 -# ZlxKGyZwKmKZWaBd2DYEwzKpdLkBxs6A6enWZR0jY+q5FdbV45ghGTKgSr5ECAOn -# LD4njJwfjIq0mRZWwDZQoXtJSaVHSu2lHQL3YHEFikunbUTJfNfBDLL7Gv+sTmRi -# DZky5OAxoLG2gaTfuiFbfpmSfPcgl5COUzfMQnzpKfX6+FkI0QQNvuPpWsDU8sR+ -# uni2VmDo7rmqJrom4ihgVNdLaMfNUqvBL5ZiSK1zmaELBJ9a+YOjE5pmSarW5sGb -# n7iVkF2W9JQIOH6tGWLFJS5Hs36zahkoHh8iD963LeGjZqkFusKaUW72yMj/yxTe -# GEDOoIr35kwXxr1Uu+zkur2y+FuNY0oZjppzp95AW1lehP0xaO+oBV1XfvaCur/B -# 5PVAp2xzrosMEUcAwpJpio+VYfIufGj7meXcGQYWA8Umr8K6Auo+Jlj8IeFS6lSv -# KhqQpmdBzAMGqPOQKt1Ow3ZXxehK7vAiim3ZiALlM0K546k0sZrxdZPgpmz7O8w9 -# gHLuyZAQezCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNN -# MIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjkyMDAtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQCz -# cgTnGasSwe/dru+cPe1NF/vwQ6CBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymPnzAiGA8yMDI1MDEwODIzNTgy -# M1oYDzIwMjUwMTA5MjM1ODIzWjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDrKY+f -# AgEAMAcCAQACAgqMMAcCAQACAhNMMAoCBQDrKuEfAgEAMDYGCisGAQQBhFkKBAIx -# KDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZI -# hvcNAQELBQADggEBAEZtHe+7A3SvgaoN66naRZpTnp73wRcRs8dMBT3/c8PYbwX6 -# vxGPyBv1qSfycPyf9PDPX/Typ8w+8P/annh29uNumbttljO38YGNwi3IUG9QAltD -# SvoglH7QcJm1KiuZLmAzFL2BMD7cA9wCHR78jZR4LHt6D1oOhUKwPLbYbdZWPkLx -# jtfTqqXmcMxoQFvztZBl2qyhuq59akIRrkd2wSsk73bLo2YlaSsElNMFTIyPrpL+ -# /PamnIX0XpSRdWwwiJxNJs0McQpR65/Tmfbv1Z7u0DMlHQWJOyXQl1bRAqOMtisp -# xf389cbnpY4LLkQC73n7bxQVm8Gm4uYVeOOdODMxggQNMIIECQIBATCBkzB8MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy -# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAecujy+TC08b6QABAAAB5zAN -# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G -# CSqGSIb3DQEJBDEiBCConQ811dtV+AKLFCRw8Rp9PzXs//w4zjuhpJKaddsXuTCB -# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIOU2XQ12aob9DeDFXM9UFHeEX74F -# v0ABvQMG7qC51nOtMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAHnLo8vkwtPG+kAAQAAAecwIgQgRJvjJ1+gVGsNoaDt9U/FTkFEV0dZ -# g7U4j7s6WjWsakEwDQYJKoZIhvcNAQELBQAEggIAUX/lwJso8bNBD+b8rm5/PPmm -# mCkElIedWVvT0+NT+g/iGHzVec4ho32dBvozBJtzYxqADWqES0l3qEK6STpUzl3d -# eS8KgeaWJ6op52l+tyH+q+GHSb8sKOyUrMq0YZcgvTaddcWYZnRKSqryV9Ka7cc8 -# Z696rEZtsyAxGgQfk+IjzKY1La3iNgSt5uxMy+OAuiD5KNM3/jAtDDjdQPjymo73 -# /uisBEOXOGfBHHXF77w8Q4MXGQ1Q08qAVg7Wmlsx36UvHQ7qAM9DDmqzxwr4kO+7 -# MM0kWtS2fAzocI95pe6RnbpHcqcFwiIo+OfE3QgBuigmPUF7wT5US6y1kwwHel9Z -# J4ta7Ex0H/+Y0mXfqOgiSjDuSgzvjUu0iKh7ZO+2H0MJ0VgnHC9MdMmwlzqpTe0o -# E4Q7TTkWFKifLmtovRedu5lJ5wj8kn+aq4+WpioHC+nQhygOlqtGHPHU+mLhMKp5 -# wyKIL7vRdURTLBGCQ/4qfZuvmuwuNfir/KpONpUq50zrkb+poXXoSzmxe3JqW8bI -# sZZWPH95kHzARlRJJaiykX1FuUCGSR6DGxH7pjsg/ML9DXsl2t2QsuxEq3s8IvYw -# 1j4cWJE47sUYdx5BfBN+NUTn+9K/oK2wg2bIrZ6k4IeH550TQYeFofDJKFxA29uL -# 0D7LnQpqjhivX5jZG5E= -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/internal/ProxyCmdletDefinitions.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/internal/ProxyCmdletDefinitions.ps1 deleted file mode 100644 index 407ef48d3915..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/internal/ProxyCmdletDefinitions.ps1 +++ /dev/null @@ -1,22614 +0,0 @@ - -# ---------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# http://www.apache.org/licenses/LICENSE-2.0 -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Code generated by Microsoft (R) AutoRest Code Generator.Changes may cause incorrect behavior and will be lost if the code -# is regenerated. -# ---------------------------------------------------------------------------------- - -<# -.Synopsis -Description for Creates a backup of an app. -.Description -Description for Creates a backup of an app. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IBackupRequest -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IBackupItem -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -DATABASE : Databases included in the backup. - DatabaseType : Database type (e.g. SqlAzure / MySql). - [ConnectionString ]: Contains a connection string to a database which is being backed up or restored. If the restore should happen to a new database, the database name inside is the new one. - [ConnectionStringName ]: Contains a connection string name that is linked to the SiteConfig.ConnectionStrings. This is used during restore with overwrite connection strings options. - [Name ]: - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. - -REQUEST : Description of a backup which will be performed. - [Kind ]: Kind of resource. - [BackupName ]: Name of the backup. - [BackupScheduleFrequencyInterval ]: How often the backup should be executed (e.g. for weekly backup, this should be set to 7 and FrequencyUnit should be set to Day) - [BackupScheduleFrequencyUnit ]: The unit of time for how often the backup should be executed (e.g. for weekly backup, this should be set to Day and FrequencyInterval should be set to 7) - [BackupScheduleKeepAtLeastOneBackup ]: True if the retention policy should always keep at least one backup in the storage account, regardless how old it is; false otherwise. - [BackupScheduleRetentionPeriodInDay ]: After how many days backups should be deleted. - [BackupScheduleStartTime ]: When the schedule should start working. - [Database ]: Databases included in the backup. - DatabaseType : Database type (e.g. SqlAzure / MySql). - [ConnectionString ]: Contains a connection string to a database which is being backed up or restored. If the restore should happen to a new database, the database name inside is the new one. - [ConnectionStringName ]: Contains a connection string name that is linked to the SiteConfig.ConnectionStrings. This is used during restore with overwrite connection strings options. - [Name ]: - [Enabled ]: True if the backup schedule is enabled (must be included in that case), false if the backup schedule should be disabled. - [StorageAccountUrl ]: SAS URL to the container. -.Link -https://learn.microsoft.com/powershell/module/az.functions/backup-azfunctionapp -#> -function Backup-AzFunctionApp { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IBackupItem])] -[CmdletBinding(DefaultParameterSetName='BackupExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Backup', Mandatory)] - [Parameter(ParameterSetName='BackupExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Backup', Mandatory)] - [Parameter(ParameterSetName='BackupExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Backup')] - [Parameter(ParameterSetName='BackupExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='BackupViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='BackupViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Backup', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='BackupViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IBackupRequest] - # Description of a backup which will be performed. - # To construct, see NOTES section for REQUEST properties and create a hash table. - ${Request}, - - [Parameter(ParameterSetName='BackupExpanded')] - [Parameter(ParameterSetName='BackupViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Name of the backup. - ${BackupName}, - - [Parameter(ParameterSetName='BackupExpanded')] - [Parameter(ParameterSetName='BackupViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # How often the backup should be executed (e.g. - # for weekly backup, this should be set to 7 and FrequencyUnit should be set to Day) - ${BackupScheduleFrequencyInterval}, - - [Parameter(ParameterSetName='BackupExpanded')] - [Parameter(ParameterSetName='BackupViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FrequencyUnit])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FrequencyUnit] - # The unit of time for how often the backup should be executed (e.g. - # for weekly backup, this should be set to Day and FrequencyInterval should be set to 7) - ${BackupScheduleFrequencyUnit}, - - [Parameter(ParameterSetName='BackupExpanded')] - [Parameter(ParameterSetName='BackupViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # True if the retention policy should always keep at least one backup in the storage account, regardless how old it is; false otherwise. - ${BackupScheduleKeepAtLeastOneBackup}, - - [Parameter(ParameterSetName='BackupExpanded')] - [Parameter(ParameterSetName='BackupViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # After how many days backups should be deleted. - ${BackupScheduleRetentionPeriodInDay}, - - [Parameter(ParameterSetName='BackupExpanded')] - [Parameter(ParameterSetName='BackupViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.DateTime] - # When the schedule should start working. - ${BackupScheduleStartTime}, - - [Parameter(ParameterSetName='BackupExpanded')] - [Parameter(ParameterSetName='BackupViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IDatabaseBackupSetting[]] - # Databases included in the backup. - # To construct, see NOTES section for DATABASE properties and create a hash table. - ${Database}, - - [Parameter(ParameterSetName='BackupExpanded')] - [Parameter(ParameterSetName='BackupViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # True if the backup schedule is enabled (must be included in that case), false if the backup schedule should be disabled. - ${Enabled}, - - [Parameter(ParameterSetName='BackupExpanded')] - [Parameter(ParameterSetName='BackupViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter(ParameterSetName='BackupExpanded')] - [Parameter(ParameterSetName='BackupViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # SAS URL to the container. - ${StorageAccountUrl}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Backup = 'Az.Functions.private\Backup-AzFunctionApp_Backup'; - BackupExpanded = 'Az.Functions.private\Backup-AzFunctionApp_BackupExpanded'; - BackupViaIdentity = 'Az.Functions.private\Backup-AzFunctionApp_BackupViaIdentity'; - BackupViaIdentityExpanded = 'Az.Functions.private\Backup-AzFunctionApp_BackupViaIdentityExpanded'; - } - if (('Backup', 'BackupExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Get the API Key for this key id. -.Description -Get the API Key for this key id. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.IApplicationInsightsComponentApiKey -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azappinsightsapikey -#> -function Get-AzAppInsightsApiKey { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.IApplicationInsightsComponentApiKey])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The API Key ID. - # This is unique within a Application Insights component. - ${KeyId}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='List', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the resource group. - # The name is case insensitive. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='List', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the Application Insights component resource. - ${ResourceName}, - - [Parameter(ParameterSetName='Get')] - [Parameter(ParameterSetName='List')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Az.Functions.private\Get-AzAppInsightsApiKey_Get'; - GetViaIdentity = 'Az.Functions.private\Get-AzAppInsightsApiKey_GetViaIdentity'; - List = 'Az.Functions.private\Get-AzAppInsightsApiKey_List'; - } - if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Returns an Application Insights component. -.Description -Returns an Application Insights component. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.IApplicationInsightsComponent -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azappinsights -#> -function Get-AzAppInsights { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.IApplicationInsightsComponent])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='List1', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the resource group. - # The name is case insensitive. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the Application Insights component resource. - ${ResourceName}, - - [Parameter(ParameterSetName='Get')] - [Parameter(ParameterSetName='List')] - [Parameter(ParameterSetName='List1')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Az.Functions.private\Get-AzAppInsights_Get'; - GetViaIdentity = 'Az.Functions.private\Get-AzAppInsights_GetViaIdentity'; - List = 'Az.Functions.private\Get-AzAppInsights_List'; - List1 = 'Az.Functions.private\Get-AzAppInsights_List1'; - } - if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Get a list of available geographical regions. -.Description -Description for Get a list of available geographical regions. -.Example -Get-AzFunctionAppAvailableLocation -.Example -Get-AzFunctionAppAvailableLocation -PlanType Premium -OSType Linux -.Example -Get-AzFunctionAppAvailableLocation -PlanType Consumption -OSType Windows - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IGeoRegion -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azfunctionappavailablelocation -#> -function Get-AzFunctionAppAvailableLocation { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IGeoRegion])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] -param( - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Query')] - [System.Management.Automation.SwitchParameter] - # Specify true if you want to filter to only regions that support Linux Consumption Workers. - ${LinuxDynamicWorkersEnabled}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Query')] - [System.Management.Automation.SwitchParameter] - # Specify true if you want to filter to only regions that support Linux workers. - ${LinuxWorkersEnabled}, - - [Parameter()] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SkuName])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Query')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SkuName] - # Name of SKU used to filter the regions. - ${Sku}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Query')] - [System.Management.Automation.SwitchParameter] - # Specify true if you want to filter to only regions that support Xenon workers. - ${XenonWorkersEnabled}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - List = 'Az.Functions.private\Get-AzFunctionAppAvailableLocation_List'; - } - if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Get an App Service plan. -.Description -Description for Get an App Service plan. -.Example -Get-AzFunctionAppPlan -.Example -Get-AzFunctionAppPlan -ResourceGroupName "West Europe" -.Example -Get-AzFunctionAppPlan -SubscriptionId fe16564a-d943-4bf8-8c28-cf01708c3f8z -.Example -Get-AzFunctionAppPlan -Location "Central US" - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azfunctionappplan -#> -function Get-AzFunctionAppPlan { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the App Service plan. - ${Name}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='List1', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Get')] - [Parameter(ParameterSetName='List')] - [Parameter(ParameterSetName='List1')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='List')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Query')] - [System.Management.Automation.SwitchParameter] - # Specify true to return all App Service plan properties. - # The default is false, which returns a subset of the properties. - # Retrieval of all properties may increase the API latency. - ${Detailed}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(ParameterSetName='Get')] - [Parameter(ParameterSetName='GetViaIdentity')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Az.Functions.private\Get-AzFunctionAppPlan_Get'; - GetViaIdentity = 'Az.Functions.private\Get-AzFunctionAppPlan_GetViaIdentity'; - List = 'Az.Functions.private\Get-AzFunctionAppPlan_List'; - List1 = 'Az.Functions.private\Get-AzFunctionAppPlan_List1'; - } - if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Gets the details of a web, mobile, or API app. -.Description -Description for Gets the details of a web, mobile, or API app. -.Example -Get-AzFunctionApp -.Example -Get-AzFunctionApp -ResourceGroupName Functions-West-Europe-Win -Name Functions1-Windows-DoNet -.Example -Get-AzFunctionApp -ResourceGroupName Functions-West-Europe-Win -.Example -Get-AzFunctionApp -SubscriptionId fe16564a-d943-4bf8-8c28-cf01708c3f8b -.Example -Get-AzFunctionApp -Location "Central US" - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azfunctionapp -#> -function Get-AzFunctionApp { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='List1', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Get')] - [Parameter(ParameterSetName='List')] - [Parameter(ParameterSetName='List1')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='List1')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Query')] - [System.Management.Automation.SwitchParameter] - # Specify true to include deployment slots in results. - # The default is false, which only gives you the production slot of all apps. - ${IncludeSlot}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(ParameterSetName='Get')] - [Parameter(ParameterSetName='GetViaIdentity')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Az.Functions.private\Get-AzFunctionApp_Get'; - GetViaIdentity = 'Az.Functions.private\Get-AzFunctionApp_GetViaIdentity'; - List = 'Az.Functions.private\Get-AzFunctionApp_List'; - List1 = 'Az.Functions.private\Get-AzFunctionApp_List1'; - } - if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Get function information by its ID for web site, or a deployment slot. -.Description -Description for Get function information by its ID for web site, or a deployment slot. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IFunctionEnvelope -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azfunction -#> -function Get-AzFunction { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IFunctionEnvelope])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='List', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Site name. - ${FunctionAppName}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Function name. - ${FunctionName}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='List', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Get')] - [Parameter(ParameterSetName='List')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Az.Functions.private\Get-AzFunction_Get'; - GetViaIdentity = 'Az.Functions.private\Get-AzFunction_GetViaIdentity'; - List = 'Az.Functions.private\Get-AzFunction_List'; - } - if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Lists the access keys or Kerberos keys (if active directory enabled) for the specified storage account. -.Description -Lists the access keys or Kerberos keys (if active directory enabled) for the specified storage account. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.IStorageAccountKey -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azstorageaccountkey -#> -function Get-AzStorageAccountKey { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.IStorageAccountKey])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the storage account within the specified resource group. - # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the resource group within the user's subscription. - # The name is case insensitive. - ${ResourceGroupName}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter()] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ListKeyExpand])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Query')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ListKeyExpand] - # Specifies type of the key to be listed. - # Possible value is kerb. - ${Expand}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - List = 'Az.Functions.private\Get-AzStorageAccountKey_List'; - } - if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Lists all the storage accounts available under the subscription. -Note that storage keys are not returned; use the ListKeys operation for this. -.Description -Lists all the storage accounts available under the subscription. -Note that storage keys are not returned; use the ListKeys operation for this. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.IStorageAccount -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azstorageaccount -#> -function Get-AzStorageAccount { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.IStorageAccount])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] -param( - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='List1', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the resource group within the user's subscription. - # The name is case insensitive. - ${ResourceGroupName}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - List = 'Az.Functions.private\Get-AzStorageAccount_List'; - List1 = 'Az.Functions.private\Get-AzStorageAccount_List1'; - } - if (('List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Gets the systemAssignedIdentity available under the specified RP scope. -.Description -Gets the systemAssignedIdentity available under the specified RP scope. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.ISystemAssignedIdentity -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azsystemassignedidentity -#> -function Get-AzSystemAssignedIdentity { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.ISystemAssignedIdentity])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The resource provider scope of the resource. - # Parent resource being extended by Managed Identities. - ${Scope}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Az.Functions.private\Get-AzSystemAssignedIdentity_Get'; - GetViaIdentity = 'Az.Functions.private\Get-AzSystemAssignedIdentity_GetViaIdentity'; - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Gets the identity. -.Description -Gets the identity. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IIdentityAutoGenerated -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azuserassignedidentity -#> -function Get-AzUserAssignedIdentity { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IIdentityAutoGenerated])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='List1', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the Resource Group to which the identity belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the identity resource. - ${ResourceName}, - - [Parameter(ParameterSetName='Get')] - [Parameter(ParameterSetName='List')] - [Parameter(ParameterSetName='List1')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Az.Functions.private\Get-AzUserAssignedIdentity_Get'; - GetViaIdentity = 'Az.Functions.private\Get-AzUserAssignedIdentity_GetViaIdentity'; - List = 'Az.Functions.private\Get-AzUserAssignedIdentity_List'; - List1 = 'Az.Functions.private\Get-AzUserAssignedIdentity_List1'; - } - if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Gets the application settings of an app. -.Description -Description for Gets the application settings of an app. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappapplicationsettingslot -#> -function Get-AzWebAppApplicationSettingSlot { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the deployment slot. - # If a slot is not specified, the API will get the application settings for the production slot. - ${Slot}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - List = 'Az.Functions.private\Get-AzWebAppApplicationSettingSlot_List'; - } - if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Gets the application settings of an app. -.Description -Description for Gets the application settings of an app. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappapplicationsetting -#> -function Get-AzWebAppApplicationSetting { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - List = 'Az.Functions.private\Get-AzWebAppApplicationSetting_List'; - } - if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Returns whether Scm basic auth is allowed and whether Ftp is allowed for a given site. -.Description -Description for Returns whether Scm basic auth is allowed and whether Ftp is allowed for a given site. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmPublishingCredentialsPoliciesEntity -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappbasicpublishingcredentialspolicyslot -#> -function Get-AzWebAppBasicPublishingCredentialsPolicySlot { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmPublishingCredentialsPoliciesEntity])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # . - ${Slot}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - List = 'Az.Functions.private\Get-AzWebAppBasicPublishingCredentialsPolicySlot_List'; - } - if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Returns whether Scm basic auth is allowed and whether Ftp is allowed for a given site. -.Description -Description for Returns whether Scm basic auth is allowed and whether Ftp is allowed for a given site. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmPublishingCredentialsPoliciesEntity -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappbasicpublishingcredentialspolicy -#> -function Get-AzWebAppBasicPublishingCredentialsPolicy { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmPublishingCredentialsPoliciesEntity])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - List = 'Az.Functions.private\Get-AzWebAppBasicPublishingCredentialsPolicy_List'; - } - if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Gets the configuration of an app, such as platform version and bitness, default documents, virtual applications, Always On, etc. -.Description -Description for Gets the configuration of an app, such as platform version and bitness, default documents, virtual applications, Always On, etc. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappconfigurationslot -#> -function Get-AzWebAppConfigurationSlot { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='List', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='List', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='List', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the deployment slot. - # If a slot is not specified, the API will return configuration for the production slot. - ${Slot}, - - [Parameter(ParameterSetName='Get')] - [Parameter(ParameterSetName='List')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Az.Functions.private\Get-AzWebAppConfigurationSlot_Get'; - GetViaIdentity = 'Az.Functions.private\Get-AzWebAppConfigurationSlot_GetViaIdentity'; - List = 'Az.Functions.private\Get-AzWebAppConfigurationSlot_List'; - } - if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Gets a list of web app configuration snapshots identifiers. -Each element of the list contains a timestamp and the ID of the snapshot. -.Description -Description for Gets a list of web app configuration snapshots identifiers. -Each element of the list contains a timestamp and the ID of the snapshot. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigurationSnapshotInfo -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappconfigurationsnapshotinfoslot -#> -function Get-AzWebAppConfigurationSnapshotInfoSlot { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigurationSnapshotInfo])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the deployment slot. - # If a slot is not specified, the API will return configuration for the production slot. - ${Slot}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - List = 'Az.Functions.private\Get-AzWebAppConfigurationSnapshotInfoSlot_List'; - } - if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Gets a list of web app configuration snapshots identifiers. -Each element of the list contains a timestamp and the ID of the snapshot. -.Description -Description for Gets a list of web app configuration snapshots identifiers. -Each element of the list contains a timestamp and the ID of the snapshot. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigurationSnapshotInfo -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappconfigurationsnapshotinfo -#> -function Get-AzWebAppConfigurationSnapshotInfo { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigurationSnapshotInfo])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - List = 'Az.Functions.private\Get-AzWebAppConfigurationSnapshotInfo_List'; - } - if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Gets a snapshot of the configuration of an app at a previous point in time. -.Description -Description for Gets a snapshot of the configuration of an app at a previous point in time. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappconfigurationsnapshotslot -#> -function Get-AzWebAppConfigurationSnapshotSlot { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the deployment slot. - # If a slot is not specified, the API will return configuration for the production slot. - ${Slot}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The ID of the snapshot to read. - ${SnapshotId}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Az.Functions.private\Get-AzWebAppConfigurationSnapshotSlot_Get'; - GetViaIdentity = 'Az.Functions.private\Get-AzWebAppConfigurationSnapshotSlot_GetViaIdentity'; - } - if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Gets a snapshot of the configuration of an app at a previous point in time. -.Description -Description for Gets a snapshot of the configuration of an app at a previous point in time. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappconfigurationsnapshot -#> -function Get-AzWebAppConfigurationSnapshot { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The ID of the snapshot to read. - ${SnapshotId}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Az.Functions.private\Get-AzWebAppConfigurationSnapshot_Get'; - GetViaIdentity = 'Az.Functions.private\Get-AzWebAppConfigurationSnapshot_GetViaIdentity'; - } - if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Gets the configuration of an app, such as platform version and bitness, default documents, virtual applications, Always On, etc. -.Description -Description for Gets the configuration of an app, such as platform version and bitness, default documents, virtual applications, Always On, etc. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappconfiguration -#> -function Get-AzWebAppConfiguration { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='List', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='List', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Get')] - [Parameter(ParameterSetName='List')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Az.Functions.private\Get-AzWebAppConfiguration_Get'; - GetViaIdentity = 'Az.Functions.private\Get-AzWebAppConfiguration_GetViaIdentity'; - List = 'Az.Functions.private\Get-AzWebAppConfiguration_List'; - } - if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Get function keys for a function in a web site, or a deployment slot. -.Description -Description for Get function keys for a function in a web site, or a deployment slot. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappfunctionkeyslot -#> -function Get-AzWebAppFunctionKeySlot { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Function name. - ${FunctionName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Site name. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the deployment slot. - ${Slot}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - List = 'Az.Functions.private\Get-AzWebAppFunctionKeySlot_List'; - } - if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Get function keys for a function in a web site, or a deployment slot. -.Description -Description for Get function keys for a function in a web site, or a deployment slot. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappfunctionkey -#> -function Get-AzWebAppFunctionKey { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Function name. - ${FunctionName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Site name. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - List = 'Az.Functions.private\Get-AzWebAppFunctionKey_List'; - } - if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Returns whether Scm basic auth is allowed on the site or not. -.Description -Description for Returns whether Scm basic auth is allowed on the site or not. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmPublishingCredentialsPoliciesEntity -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappscmallowedslot -#> -function Get-AzWebAppScmAllowedSlot { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmPublishingCredentialsPoliciesEntity])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # . - ${Slot}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Az.Functions.private\Get-AzWebAppScmAllowedSlot_Get'; - GetViaIdentity = 'Az.Functions.private\Get-AzWebAppScmAllowedSlot_GetViaIdentity'; - } - if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Returns whether Scm basic auth is allowed on the site or not. -.Description -Description for Returns whether Scm basic auth is allowed on the site or not. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmPublishingCredentialsPoliciesEntity -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappscmallowed -#> -function Get-AzWebAppScmAllowed { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmPublishingCredentialsPoliciesEntity])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Az.Functions.private\Get-AzWebAppScmAllowed_Get'; - GetViaIdentity = 'Az.Functions.private\Get-AzWebAppScmAllowed_GetViaIdentity'; - } - if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Gets the config reference app settings and status of an app -.Description -Description for Gets the config reference app settings and status of an app -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IApiKvReference -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappsettingkeyvaultreferenceslot -#> -function Get-AzWebAppSettingKeyVaultReferenceSlot { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IApiKvReference])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='Get1', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='Get1', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='Get1', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # . - ${Slot}, - - [Parameter(ParameterSetName='Get')] - [Parameter(ParameterSetName='Get1')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='Get1', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # App Setting key name. - ${AppSettingKey}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='GetViaIdentity1', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Az.Functions.private\Get-AzWebAppSettingKeyVaultReferenceSlot_Get'; - Get1 = 'Az.Functions.private\Get-AzWebAppSettingKeyVaultReferenceSlot_Get1'; - GetViaIdentity = 'Az.Functions.private\Get-AzWebAppSettingKeyVaultReferenceSlot_GetViaIdentity'; - GetViaIdentity1 = 'Az.Functions.private\Get-AzWebAppSettingKeyVaultReferenceSlot_GetViaIdentity1'; - } - if (('Get', 'Get1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Gets the config reference app settings and status of an app -.Description -Description for Gets the config reference app settings and status of an app -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IApiKvReference -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappsettingkeyvaultreference -#> -function Get-AzWebAppSettingKeyVaultReference { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IApiKvReference])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='Get1', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='Get1', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Get')] - [Parameter(ParameterSetName='Get1')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='Get1', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # App Setting key name. - ${AppSettingKey}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='GetViaIdentity1', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Az.Functions.private\Get-AzWebAppSettingKeyVaultReference_Get'; - Get1 = 'Az.Functions.private\Get-AzWebAppSettingKeyVaultReference_Get1'; - GetViaIdentity = 'Az.Functions.private\Get-AzWebAppSettingKeyVaultReference_GetViaIdentity'; - GetViaIdentity1 = 'Az.Functions.private\Get-AzWebAppSettingKeyVaultReference_GetViaIdentity1'; - } - if (('Get', 'Get1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for This is to allow calling via powershell and ARM template. -.Description -Description for This is to allow calling via powershell and ARM template. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -System.Boolean -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappsyncstatusslot -#> -function Get-AzWebAppSyncStatusSlot { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the deployment slot. - ${Slot}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - List = 'Az.Functions.private\Get-AzWebAppSyncStatusSlot_List'; - } - if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for This is to allow calling via powershell and ARM template. -.Description -Description for This is to allow calling via powershell and ARM template. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -System.Boolean -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappsyncstatus -#> -function Get-AzWebAppSyncStatus { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - List = 'Az.Functions.private\Get-AzWebAppSyncStatus_List'; - } - if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Move resources between resource groups. -.Description -Description for Move resources between resource groups. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmMoveResourceEnvelope -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. - -MOVERESOURCEENVELOPE : Object with a list of the resources that need to be moved and the resource group they should be moved to. - [Resource ]: - [TargetResourceGroup ]: -.Link -https://learn.microsoft.com/powershell/module/az.functions/move-az -#> -function Move-Az { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='MoveExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Move', Mandatory)] - [Parameter(ParameterSetName='MoveExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Move')] - [Parameter(ParameterSetName='MoveExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='MoveViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='MoveViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Move', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='MoveViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmMoveResourceEnvelope] - # Object with a list of the resources that need to be moved and the resource group they should be moved to. - # To construct, see NOTES section for MOVERESOURCEENVELOPE properties and create a hash table. - ${MoveResourceEnvelope}, - - [Parameter(ParameterSetName='MoveExpanded')] - [Parameter(ParameterSetName='MoveViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # . - ${Resource}, - - [Parameter(ParameterSetName='MoveExpanded')] - [Parameter(ParameterSetName='MoveViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # . - ${TargetResourceGroup}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Move = 'Az.Functions.private\Move-Az_Move'; - MoveExpanded = 'Az.Functions.private\Move-Az_MoveExpanded'; - MoveViaIdentity = 'Az.Functions.private\Move-Az_MoveViaIdentity'; - MoveViaIdentityExpanded = 'Az.Functions.private\Move-Az_MoveViaIdentityExpanded'; - } - if (('Move', 'MoveExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Creates (or updates) an Application Insights component. -Note: You cannot specify a different value for InstrumentationKey nor AppId in the Put operation. -.Description -Creates (or updates) an Application Insights component. -Note: You cannot specify a different value for InstrumentationKey nor AppId in the Put operation. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.IApplicationInsightsComponent -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.IApplicationInsightsComponent -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. - -INSIGHTPROPERTY : An Application Insights component definition. - Location : Resource location - Kind : The kind of application that this component refers to, used to customize UI. This value is a freeform string, values should typically be one of the following: web, ios, other, store, java, phone. - [Tag ]: Resource tags - [(Any) ]: This indicates any property can be added to this object. - [ApplicationType ]: Type of application being monitored. - [FlowType ]: Used by the Application Insights system to determine what kind of flow this component was created by. This is to be set to 'Bluefield' when creating/updating a component via the REST API. - [HockeyAppId ]: The unique application ID created when a new application is added to HockeyApp, used for communications with HockeyApp. - [RequestSource ]: Describes what tool created this Application Insights component. Customers using this API should set this to the default 'rest'. - [SamplingPercentage ]: Percentage of the data produced by the application being monitored that is being sampled for Application Insights telemetry. -.Link -https://learn.microsoft.com/powershell/module/az.functions/new-azappinsights -#> -function New-AzAppInsights { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.IApplicationInsightsComponent])] -[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Create', Mandatory)] - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the resource group. - # The name is case insensitive. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Create', Mandatory)] - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the Application Insights component resource. - ${ResourceName}, - - [Parameter(ParameterSetName='Create')] - [Parameter(ParameterSetName='CreateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.IApplicationInsightsComponent] - # An Application Insights component definition. - # To construct, see NOTES section for INSIGHTPROPERTY properties and create a hash table. - ${InsightProperty}, - - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The kind of application that this component refers to, used to customize UI. - # This value is a freeform string, values should typically be one of the following: web, ios, other, store, java, phone. - ${Kind}, - - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource location - ${Location}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ApplicationType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ApplicationType] - # Type of application being monitored. - ${ApplicationType}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FlowType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FlowType] - # Used by the Application Insights system to determine what kind of flow this component was created by. - # This is to be set to 'Bluefield' when creating/updating a component via the REST API. - ${FlowType}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The unique application ID created when a new application is added to HockeyApp, used for communications with HockeyApp. - ${HockeyAppId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.RequestSource])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.RequestSource] - # Describes what tool created this Application Insights component. - # Customers using this API should set this to the default 'rest'. - ${RequestSource}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Double] - # Percentage of the data produced by the application being monitored that is being sampled for Application Insights telemetry. - ${SamplingPercentage}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.IComponentsResourceTags]))] - [System.Collections.Hashtable] - # Resource tags - ${Tag}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Create = 'Az.Functions.private\New-AzAppInsights_Create'; - CreateExpanded = 'Az.Functions.private\New-AzAppInsights_CreateExpanded'; - CreateViaIdentity = 'Az.Functions.private\New-AzAppInsights_CreateViaIdentity'; - CreateViaIdentityExpanded = 'Az.Functions.private\New-AzAppInsights_CreateViaIdentityExpanded'; - } - if (('Create', 'CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Creates or updates an App Service Plan. -.Description -Description for Creates or updates an App Service Plan. -.Example -New-AzFunctionAppPlan -ResourceGroupName MyResourceGroupName ` - -Name MyPremiumPlan ` - -Location WestEurope ` - -MinimumWorkerCount 1 ` - -MaximumWorkerCount 10 ` - -Sku EP1 ` - -WorkerType Windows - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -APPSERVICEPLAN : App Service plan. - Location : Resource Location. - [Kind ]: Kind of resource. - [Tag ]: Resource tags. - [(Any) ]: This indicates any property can be added to this object. - [Capacity ]: Current number of instances assigned to the resource. - [ElasticScaleEnabled ]: ServerFarm supports ElasticScale. Apps in this plan will scale as if the ServerFarm was ElasticPremium sku - [ExtendedLocationName ]: Name of extended location. - [FreeOfferExpirationTime ]: The time when the server farm free offer expires. - [HostingEnvironmentProfileId ]: Resource ID of the App Service Environment. - [HyperV ]: If Hyper-V container app service plan true, false otherwise. - [IsSpot ]: If true, this App Service Plan owns spot instances. - [IsXenon ]: Obsolete: If Hyper-V container app service plan true, false otherwise. - [KubeEnvironmentProfileId ]: Resource ID of the Kubernetes Environment. - [MaximumElasticWorkerCount ]: Maximum number of total workers allowed for this ElasticScaleEnabled App Service Plan - [PerSiteScaling ]: If true, apps assigned to this App Service plan can be scaled independently. If false, apps assigned to this App Service plan will scale to all instances of the plan. - [Reserved ]: If Linux app service plan true, false otherwise. - [SkuCapability ]: Capabilities of the SKU, e.g., is traffic manager enabled? - [Name ]: Name of the SKU capability. - [Reason ]: Reason of the SKU capability. - [Value ]: Value of the SKU capability. - [SkuCapacityDefault ]: Default number of workers for this App Service plan SKU. - [SkuCapacityElasticMaximum ]: Maximum number of Elastic workers for this App Service plan SKU. - [SkuCapacityMaximum ]: Maximum number of workers for this App Service plan SKU. - [SkuCapacityMinimum ]: Minimum number of workers for this App Service plan SKU. - [SkuCapacityScaleType ]: Available scale configurations for an App Service plan. - [SkuFamily ]: Family code of the resource SKU. - [SkuLocation ]: Locations of the SKU. - [SkuName ]: Name of the resource SKU. - [SkuSize ]: Size specifier of the resource SKU. - [SkuTier ]: Service tier of the resource SKU. - [SpotExpirationTime ]: The time when the server farm expires. Valid only if it is a spot server farm. - [TargetWorkerCount ]: Scaling worker count. - [TargetWorkerSizeId ]: Scaling worker size ID. - [WorkerTierName ]: Target worker tier assigned to the App Service plan. - [ZoneRedundant ]: If true, this App Service Plan will perform availability zone balancing. If false, this App Service Plan will not perform availability zone balancing. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. - -SKUCAPABILITY : Capabilities of the SKU, e.g., is traffic manager enabled - [Name ]: Name of the SKU capability. - [Reason ]: Reason of the SKU capability. - [Value ]: Value of the SKU capability. -.Link -https://learn.microsoft.com/powershell/module/az.functions/new-azfunctionappplan -#> -function New-AzFunctionAppPlan { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan])] -[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Create', Mandatory)] - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the App Service plan. - ${Name}, - - [Parameter(ParameterSetName='Create', Mandatory)] - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Create')] - [Parameter(ParameterSetName='CreateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan] - # App Service plan. - # To construct, see NOTES section for APPSERVICEPLAN properties and create a hash table. - ${AppServicePlan}, - - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource Location. - ${Location}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Current number of instances assigned to the resource. - ${Capacity}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # ServerFarm supports ElasticScale. - # Apps in this plan will scale as if the ServerFarm was ElasticPremium sku - ${ElasticScaleEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Name of extended location. - ${ExtendedLocationName}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.DateTime] - # The time when the server farm free offer expires. - ${FreeOfferExpirationTime}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource ID of the App Service Environment. - ${HostingEnvironmentProfileId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # If Hyper-V container app service plan true, false otherwise. - ${HyperV}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # If true, this App Service Plan owns spot instances. - ${IsSpot}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Obsolete: If Hyper-V container app service plan true, false otherwise. - ${IsXenon}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource ID of the Kubernetes Environment. - ${KubeEnvironmentProfileId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of total workers allowed for this ElasticScaleEnabled App Service Plan - ${MaximumElasticWorkerCount}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # If true, apps assigned to this App Service plan can be scaled independently.If false, apps assigned to this App Service plan will scale to all instances of the plan. - ${PerSiteScaling}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # If Linux app service plan true, false otherwise. - ${Reserved}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICapability[]] - # Capabilities of the SKU, e.g., is traffic manager enabled - # To construct, see NOTES section for SKUCAPABILITY properties and create a hash table. - ${SkuCapability}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Default number of workers for this App Service plan SKU. - ${SkuCapacityDefault}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of Elastic workers for this App Service plan SKU. - ${SkuCapacityElasticMaximum}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of workers for this App Service plan SKU. - ${SkuCapacityMaximum}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Minimum number of workers for this App Service plan SKU. - ${SkuCapacityMinimum}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Available scale configurations for an App Service plan. - ${SkuCapacityScaleType}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Family code of the resource SKU. - ${SkuFamily}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # Locations of the SKU. - ${SkuLocation}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Name of the resource SKU. - ${SkuName}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Size specifier of the resource SKU. - ${SkuSize}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Service tier of the resource SKU. - ${SkuTier}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.DateTime] - # The time when the server farm expires. - # Valid only if it is a spot server farm. - ${SpotExpirationTime}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IResourceTags]))] - [System.Collections.Hashtable] - # Resource tags. - ${Tag}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Scaling worker count. - ${TargetWorkerCount}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Scaling worker size ID. - ${TargetWorkerSizeId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Target worker tier assigned to the App Service plan. - ${WorkerTierName}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # If true, this App Service Plan will perform availability zone balancing.If false, this App Service Plan will not perform availability zone balancing. - ${ZoneRedundant}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command as a job - ${AsJob}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command asynchronously - ${NoWait}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Create = 'Az.Functions.private\New-AzFunctionAppPlan_Create'; - CreateExpanded = 'Az.Functions.private\New-AzFunctionAppPlan_CreateExpanded'; - CreateViaIdentity = 'Az.Functions.private\New-AzFunctionAppPlan_CreateViaIdentity'; - CreateViaIdentityExpanded = 'Az.Functions.private\New-AzFunctionAppPlan_CreateViaIdentityExpanded'; - } - if (('Create', 'CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Creates a new web, mobile, or API app in an existing resource group, or updates an existing app. -.Description -Description for Creates a new web, mobile, or API app in an existing resource group, or updates an existing app. -.Example -New-AzFunctionApp -Name MyUniqueFunctionAppName ` - -ResourceGroupName MyResourceGroupName ` - -Location centralUS ` - -StorageAccountName MyStorageAccountName ` - -Runtime PowerShell -.Example -New-AzFunctionApp -Name MyUniqueFunctionAppName ` - -ResourceGroupName MyResourceGroupName ` - -PlanName MyPlanName ` - -StorageAccountName MyStorageAccountName ` - -Runtime PowerShell -.Example -New-AzFunctionApp -Name MyUniqueFunctionAppName ` - -ResourceGroupName MyResourceGroupName ` - -PlanName MyPlanName ` - -StorageAccountName MyStorageAccountName ` - -DockerImageName myacr.azurecr.io/myimage:tag -.Example -New-AzFunctionApp -Name MyUniqueFunctionAppName ` - -ResourceGroupName MyResourceGroupName ` - -StorageAccountName MyStorageAccountName ` - -Environment MyEnvironment ` - -WorkloadProfileName MyWorkloadProfileName - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -HOSTNAMESSLSTATE : Hostname SSL states are used to manage the SSL bindings for app's hostnames. - [HostType ]: Indicates whether the hostname is a standard or repository hostname. - [Name ]: Hostname. - [SslState ]: SSL type. - [Thumbprint ]: SSL certificate thumbprint. - [ToUpdate ]: Set to true to update existing hostname. - [VirtualIP ]: Virtual IP address assigned to the hostname if IP based SSL is enabled. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. - -SCALEANDCONCURRENCYALWAYSREADY : 'Always Ready' configuration for the function app. - [InstanceCount ]: Sets the number of 'Always Ready' instances for a given function group or a specific function. For additional information see https://aka.ms/flexconsumption/alwaysready. - [Name ]: Either a function group or a function name is required. For additional information see https://aka.ms/flexconsumption/alwaysready. - -SITECONFIG : Configuration of the app. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - -SITEENVELOPE : A web app, a mobile app backend, or an API app. - Location : Resource Location. - [Kind ]: Kind of resource. - [Tag ]: Resource tags. - [(Any) ]: This indicates any property can be added to this object. - [AuthenticationStorageAccountConnectionStringName ]: Use this property for StorageAccountConnectionString. Set the name of the app setting that has the storage account connection string. Do not set a value for this property when using other authentication type. - [AuthenticationType ]: Property to select authentication type to access the selected storage account. Available options: SystemAssignedIdentity, UserAssignedIdentity, StorageAccountConnectionString. - [AuthenticationUserAssignedIdentityResourceId ]: Use this property for UserAssignedIdentity. Set the resource ID of the identity. Do not set a value for this property when using other authentication type. - [ClientAffinityEnabled ]: true to enable client affinity; false to stop sending session affinity cookies, which route client requests in the same session to the same instance. Default is true. - [ClientCertEnabled ]: true to enable client certificate authentication (TLS mutual authentication); otherwise, false. Default is false. - [ClientCertExclusionPath ]: client certificate authentication comma-separated exclusion paths - [ClientCertMode ]: This composes with ClientCertEnabled setting. - ClientCertEnabled: false means ClientCert is ignored. - ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required. - ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted. - [CloningInfoAppSettingsOverride ]: Application setting overrides for cloned app. If specified, these settings override the settings cloned from source app. Otherwise, application settings from source app are retained. - [(Any) ]: This indicates any property can be added to this object. - [CloningInfoCloneCustomHostName ]: true to clone custom hostnames from source app; otherwise, false. - [CloningInfoCloneSourceControl ]: true to clone source control from source app; otherwise, false. - [CloningInfoConfigureLoadBalancing ]: true to configure load balancing for source and destination app. - [CloningInfoCorrelationId ]: Correlation ID of cloning operation. This ID ties multiple cloning operations together to use the same snapshot. - [CloningInfoHostingEnvironment ]: App Service Environment. - [CloningInfoOverwrite ]: true to overwrite destination app; otherwise, false. - [CloningInfoSourceWebAppId ]: ARM resource ID of the source app. App resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots. - [CloningInfoSourceWebAppLocation ]: Location of source app ex: West US or North Europe - [CloningInfoTrafficManagerProfileId ]: ARM resource ID of the Traffic Manager profile to use, if it exists. Traffic Manager resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}. - [CloningInfoTrafficManagerProfileName ]: Name of Traffic Manager profile to create. This is only needed if Traffic Manager profile does not already exist. - [Config ]: Configuration of the app. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - [ContainerSize ]: Size of the function container. - [CustomDomainVerificationId ]: Unique identifier that verifies the custom domains assigned to the app. Customer will add this id to a txt record for verification. - [DailyMemoryTimeQuota ]: Maximum allowed daily memory-time quota (applicable on dynamic apps only). - [DaprConfigAppId ]: Dapr application identifier - [DaprConfigAppPort ]: Tells Dapr which port your application is listening on - [DaprConfigEnableApiLogging ]: Enables API logging for the Dapr sidecar - [DaprConfigEnabled ]: Boolean indicating if the Dapr side car is enabled - [DaprConfigHttpMaxRequestSize ]: Increasing max size of request body http servers parameter in MB to handle uploading of big files. Default is 4 MB. - [DaprConfigHttpReadBufferSize ]: Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. - [DaprConfigLogLevel ]: Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. - [DnsConfigurationDnsAltServer ]: Alternate DNS server to be used by apps. This property replicates the WEBSITE_DNS_ALT_SERVER app setting. - [DnsConfigurationDnsMaxCacheTimeout ]: Custom time for DNS to be cached in seconds. Allowed range: 0-60. Default is 30 seconds. 0 means caching disabled. - [DnsConfigurationDnsRetryAttemptCount ]: Total number of retries for dns lookup. Allowed range: 1-5. Default is 3. - [DnsConfigurationDnsRetryAttemptTimeout ]: Timeout for a single dns lookup in seconds. Allowed range: 1-30. Default is 3. - [DnsConfigurationDnsServer ]: List of custom DNS servers to be used by an app for lookups. Maximum 5 dns servers can be set. - [Enabled ]: true if the app is enabled; otherwise, false. Setting this value to false disables the app (takes the app offline). - [ExtendedLocationName ]: Name of extended location. - [HostNameSslState ]: Hostname SSL states are used to manage the SSL bindings for app's hostnames. - [HostType ]: Indicates whether the hostname is a standard or repository hostname. - [Name ]: Hostname. - [SslState ]: SSL type. - [Thumbprint ]: SSL certificate thumbprint. - [ToUpdate ]: Set to true to update existing hostname. - [VirtualIP ]: Virtual IP address assigned to the hostname if IP based SSL is enabled. - [HostNamesDisabled ]: true to disable the public hostnames of the app; otherwise, false. If true, the app is only accessible via API management process. - [HostingEnvironmentProfileId ]: Resource ID of the App Service Environment. - [HttpPerInstanceConcurrency ]: The maximum number of concurrent HTTP trigger invocations per instance. - [HttpsOnly ]: HttpsOnly: configures a web site to accept only https requests. Issues redirect for http requests - [HyperV ]: Hyper-V sandbox. - [IdentityType ]: Type of managed service identity. - [IdentityUserAssignedIdentity ]: The list of user assigned identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} - [(Any) ]: This indicates any property can be added to this object. - [IsXenon ]: Obsolete: Hyper-V sandbox. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [ManagedEnvironmentId ]: Azure Resource Manager ID of the customer's selected Managed Environment on which to host this app. This must be of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.App/managedEnvironments/{managedEnvironmentName} - [PublicNetworkAccess ]: Property to allow or block all public traffic. Allowed Values: 'Enabled', 'Disabled' or an empty string. - [RedundancyMode ]: Site redundancy mode - [Reserved ]: true if reserved; otherwise, false. - [ResourceConfigCpu ]: Required CPU in cores, e.g. 0.5 - [ResourceConfigMemory ]: Required memory, e.g. "1Gi" - [RuntimeName ]: Function app runtime name. Available options: dotnet-isolated, node, java, powershell, python, custom - [RuntimeVersion ]: Function app runtime version. Example: 8 (for dotnet-isolated) - [ScaleAndConcurrencyAlwaysReady ]: 'Always Ready' configuration for the function app. - [InstanceCount ]: Sets the number of 'Always Ready' instances for a given function group or a specific function. For additional information see https://aka.ms/flexconsumption/alwaysready. - [Name ]: Either a function group or a function name is required. For additional information see https://aka.ms/flexconsumption/alwaysready. - [ScaleAndConcurrencyInstanceMemoryMb ]: Set the amount of memory allocated to each instance of the function app in MB. CPU and network bandwidth are allocated proportionally. - [ScaleAndConcurrencyMaximumInstanceCount ]: The maximum number of instances for the function app. - [ScmSiteAlsoStopped ]: true to stop SCM (KUDU) site when the app is stopped; otherwise, false. The default is false. - [ServerFarmId ]: Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". - [StorageAccountRequired ]: Checks if Customer provided storage account is required - [StorageType ]: Property to select Azure Storage type. Available options: blobContainer. - [StorageValue ]: Property to set the URL for the selected Azure Storage type. Example: For blobContainer, the value could be https://.blob.core.windows.net/. - [VirtualNetworkSubnetId ]: Azure Resource Manager ID of the Virtual network and subnet to be joined by Regional VNET Integration. This must be of the form /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName} - [VnetBackupRestoreEnabled ]: To enable Backup and Restore operations over virtual network - [VnetContentShareEnabled ]: To enable accessing content over virtual network - [VnetImagePullEnabled ]: To enable pulling image over Virtual Network - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WorkloadProfileName ]: Workload profile name for function app to execute on. -.Link -https://learn.microsoft.com/powershell/module/az.functions/new-azfunctionapp -#> -function New-AzFunctionApp { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite])] -[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Create', Mandatory)] - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Unique name of the app to create or update. - # To create or update a deployment slot, use the {slot} parameter. - ${Name}, - - [Parameter(ParameterSetName='Create', Mandatory)] - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Create')] - [Parameter(ParameterSetName='CreateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - # A web app, a mobile app backend, or an API app. - # To construct, see NOTES section for SITEENVELOPE properties and create a hash table. - ${SiteEnvelope}, - - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource Location. - ${Location}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Use this property for StorageAccountConnectionString. - # Set the name of the app setting that has the storage account connection string. - # Do not set a value for this property when using other authentication type. - ${AuthenticationStorageAccountConnectionStringName}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AuthenticationType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AuthenticationType] - # Property to select authentication type to access the selected storage account. - # Available options: SystemAssignedIdentity, UserAssignedIdentity, StorageAccountConnectionString. - ${AuthenticationType}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Use this property for UserAssignedIdentity. - # Set the resource ID of the identity. - # Do not set a value for this property when using other authentication type. - ${AuthenticationUserAssignedIdentityResourceId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to enable client affinity; false to stop sending session affinity cookies, which route client requests in the same session to the same instance. - # Default is true. - ${ClientAffinityEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to enable client certificate authentication (TLS mutual authentication); otherwise, false. - # Default is false. - ${ClientCertEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # client certificate authentication comma-separated exclusion paths - ${ClientCertExclusionPath}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ClientCertMode])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ClientCertMode] - # This composes with ClientCertEnabled setting.- ClientCertEnabled: false means ClientCert is ignored.- ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required.- ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted. - ${ClientCertMode}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICloningInfoAppSettingsOverrides]))] - [System.Collections.Hashtable] - # Application setting overrides for cloned app. - # If specified, these settings override the settings cloned from source app. - # Otherwise, application settings from source app are retained. - ${CloningInfoAppSettingsOverride}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to clone custom hostnames from source app; otherwise, false. - ${CloningInfoCloneCustomHostName}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to clone source control from source app; otherwise, false. - ${CloningInfoCloneSourceControl}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to configure load balancing for source and destination app. - ${CloningInfoConfigureLoadBalancing}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Correlation ID of cloning operation. - # This ID ties multiple cloning operationstogether to use the same snapshot. - ${CloningInfoCorrelationId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # App Service Environment. - ${CloningInfoHostingEnvironment}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to overwrite destination app; otherwise, false. - ${CloningInfoOverwrite}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # ARM resource ID of the source app. - # App resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots. - ${CloningInfoSourceWebAppId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Location of source app ex: West US or North Europe - ${CloningInfoSourceWebAppLocation}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # ARM resource ID of the Traffic Manager profile to use, if it exists. - # Traffic Manager resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}. - ${CloningInfoTrafficManagerProfileId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Name of Traffic Manager profile to create. - # This is only needed if Traffic Manager profile does not already exist. - ${CloningInfoTrafficManagerProfileName}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Size of the function container. - ${ContainerSize}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Unique identifier that verifies the custom domains assigned to the app. - # Customer will add this id to a txt record for verification. - ${CustomDomainVerificationId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum allowed daily memory-time quota (applicable on dynamic apps only). - ${DailyMemoryTimeQuota}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Dapr application identifier - ${DaprConfigAppId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Tells Dapr which port your application is listening on - ${DaprConfigAppPort}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Enables API logging for the Dapr sidecar - ${DaprConfigEnableApiLogging}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Boolean indicating if the Dapr side car is enabled - ${DaprConfigEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Increasing max size of request body http servers parameter in MB to handle uploading of big files. - # Default is 4 MB. - ${DaprConfigHttpMaxRequestSize}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. - # Default is 65KB. - ${DaprConfigHttpReadBufferSize}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DaprLogLevel])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DaprLogLevel] - # Sets the log level for the Dapr sidecar. - # Allowed values are debug, info, warn, error. - # Default is info. - ${DaprConfigLogLevel}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Alternate DNS server to be used by apps. - # This property replicates the WEBSITE_DNS_ALT_SERVER app setting. - ${DnsConfigurationDnsAltServer}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Custom time for DNS to be cached in seconds. - # Allowed range: 0-60. - # Default is 30 seconds. - # 0 means caching disabled. - ${DnsConfigurationDnsMaxCacheTimeout}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Total number of retries for dns lookup. - # Allowed range: 1-5. - # Default is 3. - ${DnsConfigurationDnsRetryAttemptCount}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Timeout for a single dns lookup in seconds. - # Allowed range: 1-30. - # Default is 3. - ${DnsConfigurationDnsRetryAttemptTimeout}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # List of custom DNS servers to be used by an app for lookups. - # Maximum 5 dns servers can be set. - ${DnsConfigurationDnsServer}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if the app is enabled; otherwise, false. - # Setting this value to false disables the app (takes the app offline). - ${Enabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Name of extended location. - ${ExtendedLocationName}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IHostNameSslState[]] - # Hostname SSL states are used to manage the SSL bindings for app's hostnames. - # To construct, see NOTES section for HOSTNAMESSLSTATE properties and create a hash table. - ${HostNameSslState}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to disable the public hostnames of the app; otherwise, false. - # If true, the app is only accessible via API management process. - ${HostNamesDisabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource ID of the App Service Environment. - ${HostingEnvironmentProfileId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Single] - # The maximum number of concurrent HTTP trigger invocations per instance. - ${HttpPerInstanceConcurrency}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # HttpsOnly: configures a web site to accept only https requests. - # Issues redirect forhttp requests - ${HttpsOnly}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Hyper-V sandbox. - ${HyperV}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedServiceIdentityType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedServiceIdentityType] - # Type of managed service identity. - ${IdentityType}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IManagedServiceIdentityUserAssignedIdentities]))] - [System.Collections.Hashtable] - # The list of user assigned identities associated with the resource. - # The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} - ${IdentityUserAssignedIdentity}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Obsolete: Hyper-V sandbox. - ${IsXenon}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Identity to use for Key Vault Reference authentication. - ${KeyVaultReferenceIdentity}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Azure Resource Manager ID of the customer's selected Managed Environment on which to host this app. - # This must be of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.App/managedEnvironments/{managedEnvironmentName} - ${ManagedEnvironmentId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Property to allow or block all public traffic. - # Allowed Values: 'Enabled', 'Disabled' or an empty string. - ${PublicNetworkAccess}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.RedundancyMode])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.RedundancyMode] - # Site redundancy mode - ${RedundancyMode}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if reserved; otherwise, false. - ${Reserved}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Double] - # Required CPU in cores, e.g. - # 0.5 - ${ResourceConfigCpu}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Required memory, e.g. - # "1Gi" - ${ResourceConfigMemory}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.RuntimeName])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.RuntimeName] - # Function app runtime name. - # Available options: dotnet-isolated, node, java, powershell, python, custom - ${RuntimeName}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Function app runtime version. - # Example: 8 (for dotnet-isolated) - ${RuntimeVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IFunctionsAlwaysReadyConfig[]] - # 'Always Ready' configuration for the function app. - # To construct, see NOTES section for SCALEANDCONCURRENCYALWAYSREADY properties and create a hash table. - ${ScaleAndConcurrencyAlwaysReady}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Single] - # Set the amount of memory allocated to each instance of the function app in MB. - # CPU and network bandwidth are allocated proportionally. - ${ScaleAndConcurrencyInstanceMemoryMb}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Single] - # The maximum number of instances for the function app. - ${ScaleAndConcurrencyMaximumInstanceCount}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to stop SCM (KUDU) site when the app is stopped; otherwise, false. - # The default is false. - ${ScmSiteAlsoStopped}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". - ${ServerFarmId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfig] - # Configuration of the app. - # To construct, see NOTES section for SITECONFIG properties and create a hash table. - ${SiteConfig}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Checks if Customer provided storage account is required - ${StorageAccountRequired}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FunctionsDeploymentStorageType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FunctionsDeploymentStorageType] - # Property to select Azure Storage type. - # Available options: blobContainer. - ${StorageType}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Property to set the URL for the selected Azure Storage type. - # Example: For blobContainer, the value could be https://.blob.core.windows.net/. - ${StorageValue}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IResourceTags]))] - [System.Collections.Hashtable] - # Resource tags. - ${Tag}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Azure Resource Manager ID of the Virtual network and subnet to be joined by Regional VNET Integration.This must be of the form /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName} - ${VirtualNetworkSubnetId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # To enable Backup and Restore operations over virtual network - ${VnetBackupRestoreEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # To enable accessing content over virtual network - ${VnetContentShareEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # To enable pulling image over Virtual Network - ${VnetImagePullEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Virtual Network Route All enabled. - # This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - ${VnetRouteAllEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Workload profile name for function app to execute on. - ${WorkloadProfileName}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command as a job - ${AsJob}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command asynchronously - ${NoWait}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Create = 'Az.Functions.private\New-AzFunctionApp_Create'; - CreateExpanded = 'Az.Functions.private\New-AzFunctionApp_CreateExpanded'; - CreateViaIdentity = 'Az.Functions.private\New-AzFunctionApp_CreateViaIdentity'; - CreateViaIdentityExpanded = 'Az.Functions.private\New-AzFunctionApp_CreateViaIdentityExpanded'; - } - if (('Create', 'CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Create function for web site, or a deployment slot. -.Description -Description for Create function for web site, or a deployment slot. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IFunctionEnvelope -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -FUNCTIONENVELOPE : Function information. - [Kind ]: Kind of resource. - [Config ]: Config information. - [ConfigHref ]: Config URI. - [File ]: File list. - [(Any) ]: This indicates any property can be added to this object. - [FunctionAppId ]: Function App ID. - [Href ]: Function URI. - [InvokeUrlTemplate ]: The invocation URL - [IsDisabled ]: Gets or sets a value indicating whether the function is disabled - [Language ]: The function language - [ScriptHref ]: Script URI. - [ScriptRootPathHref ]: Script root path URI. - [SecretsFileHref ]: Secrets file URI. - [TestData ]: Test data used when testing via the Azure Portal. - [TestDataHref ]: Test data URI. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/new-azfunction -#> -function New-AzFunction { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Create', Mandatory)] - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Site name. - ${FunctionAppName}, - - [Parameter(ParameterSetName='Create', Mandatory)] - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Function name. - ${FunctionName}, - - [Parameter(ParameterSetName='Create', Mandatory)] - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Create')] - [Parameter(ParameterSetName='CreateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IFunctionEnvelope] - # Function information. - # To construct, see NOTES section for FUNCTIONENVELOPE properties and create a hash table. - ${FunctionEnvelope}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IAny] - # Config information. - ${Config}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Config URI. - ${ConfigHref}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IFunctionEnvelopePropertiesFiles]))] - [System.Collections.Hashtable] - # File list. - ${File}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Function App ID. - ${FunctionAppId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Function URI. - ${Href}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The invocation URL - ${InvokeUrlTemplate}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether the function is disabled - ${IsDisabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The function language - ${Language}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Script URI. - ${ScriptHref}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Script root path URI. - ${ScriptRootPathHref}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Secrets file URI. - ${SecretsFileHref}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Test data used when testing via the Azure Portal. - ${TestData}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Test data URI. - ${TestDataHref}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command as a job - ${AsJob}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command asynchronously - ${NoWait}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Create = 'Az.Functions.private\New-AzFunction_Create'; - CreateExpanded = 'Az.Functions.private\New-AzFunction_CreateExpanded'; - CreateViaIdentity = 'Az.Functions.private\New-AzFunction_CreateViaIdentity'; - CreateViaIdentityExpanded = 'Az.Functions.private\New-AzFunction_CreateViaIdentityExpanded'; - } - if (('Create', 'CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Create or update an identity in the specified subscription and resource group. -.Description -Create or update an identity in the specified subscription and resource group. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IIdentityAutoGenerated -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IIdentityAutoGenerated -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. - -PARAMETER : Describes an identity resource. - Location : The geo-location where the resource lives - [Tag ]: Resource tags. - [(Any) ]: This indicates any property can be added to this object. -.Link -https://learn.microsoft.com/powershell/module/az.functions/new-azuserassignedidentity -#> -function New-AzUserAssignedIdentity { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IIdentityAutoGenerated])] -[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Create', Mandatory)] - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the Resource Group to which the identity belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Create', Mandatory)] - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the identity resource. - ${ResourceName}, - - [Parameter(ParameterSetName='Create')] - [Parameter(ParameterSetName='CreateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IIdentityAutoGenerated] - # Describes an identity resource. - # To construct, see NOTES section for PARAMETER properties and create a hash table. - ${Parameter}, - - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The geo-location where the resource lives - ${Location}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api10.ITrackedResourceTags]))] - [System.Collections.Hashtable] - # Resource tags. - ${Tag}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Create = 'Az.Functions.private\New-AzUserAssignedIdentity_Create'; - CreateExpanded = 'Az.Functions.private\New-AzUserAssignedIdentity_CreateExpanded'; - CreateViaIdentity = 'Az.Functions.private\New-AzUserAssignedIdentity_CreateViaIdentity'; - CreateViaIdentityExpanded = 'Az.Functions.private\New-AzUserAssignedIdentity_CreateViaIdentityExpanded'; - } - if (('Create', 'CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Updates the configuration of an app. -.Description -Description for Updates the configuration of an app. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -APPSETTING : Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - -CONNECTIONSTRING : Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - -EXPERIMENTRAMPUPRULE : List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - -HANDLERMAPPING : Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. - -IPSECURITYRESTRICTION : IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - -METADATA : Application metadata. This property cannot be retrieved, since it may contain secrets. - [Name ]: Pair name. - [Value ]: Pair value. - -SCMIPSECURITYRESTRICTION : IP security restrictions for scm. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - -SITECONFIG : Web app configuration ARM resource. - [Kind ]: Kind of resource. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - -TRIGGERSLOWREQUESTSWITHPATH : A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - -TRIGGERSTATUSCODE : A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - -TRIGGERSTATUSCODESRANGE : A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - -VIRTUALAPPLICATION : Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. -.Link -https://learn.microsoft.com/powershell/module/az.functions/new-azwebappconfigurationslot -#> -function New-AzWebAppConfigurationSlot { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource])] -[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Create', Mandatory)] - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Create', Mandatory)] - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Create', Mandatory)] - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the deployment slot. - # If a slot is not specified, the API will update configuration for the production slot. - ${Slot}, - - [Parameter(ParameterSetName='Create')] - [Parameter(ParameterSetName='CreateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource] - # Web app configuration ARM resource. - # To construct, see NOTES section for SITECONFIG properties and create a hash table. - ${SiteConfig}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Flag to use Managed Identity Creds for ACR pull - ${AcrUseManagedIdentityCred}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # If using user managed identity, the user managed identity ClientId - ${AcrUserManagedIdentityId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Minimum time the process must executebefore taking the action - ${ActionMinProcessExecutionTime}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AutoHealActionType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AutoHealActionType] - # Predefined action to be taken. - ${ActionType}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if Always On is enabled; otherwise, false. - ${AlwaysOn}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The URL of the API definition. - ${ApiDefinitionUrl}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # APIM-Api Identifier. - ${ApiManagementConfigId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # App command line to launch. - ${AppCommandLine}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.INameValuePair[]] - # Application settings. - # To construct, see NOTES section for APPSETTING properties and create a hash table. - ${AppSetting}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if Auto Heal is enabled; otherwise, false. - ${AutoHealEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Auto-swap slot name. - ${AutoSwapSlotName}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigAzureStorageAccounts]))] - [System.Collections.Hashtable] - # List of Azure Storage Accounts. - ${AzureStorageAccount}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IConnStringInfo[]] - # Connection strings. - # To construct, see NOTES section for CONNECTIONSTRING properties and create a hash table. - ${ConnectionString}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # Gets or sets the list of origins that should be allowed to make cross-origincalls (for example: http://example.com:12345). - # Use "*" to allow all. - ${CorAllowedOrigin}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets whether CORS requests with credentials are allowed. - # See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentialsfor more details. - ${CorSupportCredentials}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Executable to be run. - ${CustomActionExe}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Parameters for the executable. - ${CustomActionParameter}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # Default documents. - ${DefaultDocument}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if detailed error logging is enabled; otherwise, false. - ${DetailedErrorLoggingEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Document root. - ${DocumentRoot}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - ${DynamicTagsJson}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of workers that a site can scale out to.This setting only applies to apps in plans where ElasticScaleEnabled is true - ${ElasticWebAppScaleLimit}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IRampUpRule[]] - # List of ramp-up rules. - # To construct, see NOTES section for EXPERIMENTRAMPUPRULE properties and create a hash table. - ${ExperimentRampUpRule}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FtpsState])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FtpsState] - # State of FTP / FTPS service - ${FtpsState}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of workers that a site can scale out to.This setting only applies to the Consumption and Elastic Premium Plans - ${FunctionAppScaleLimit}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether functions runtime scale monitoring is enabled. - # When enabled,the ScaleController will not monitor event sources directly, but will instead call to theruntime to get scale status. - ${FunctionsRuntimeScaleMonitoringEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IHandlerMapping[]] - # Handler mappings. - # To construct, see NOTES section for HANDLERMAPPING properties and create a hash table. - ${HandlerMapping}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Health check path - ${HealthCheckPath}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Http20Enabled: configures a web site to allow clients to connect over http2.0 - ${Http20Enabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if HTTP logging is enabled; otherwise, false. - ${HttpLoggingEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IIPSecurityRestriction[]] - # IP security restrictions for main. - # To construct, see NOTES section for IPSECURITYRESTRICTION properties and create a hash table. - ${IPSecurityRestriction}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction] - # Default action for main access restriction if no rules are matched. - ${IPSecurityRestrictionsDefaultAction}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a flag indicating whether the Push endpoint is enabled. - ${IsPushEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java container. - ${JavaContainer}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java container version. - ${JavaContainerVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java version. - ${JavaVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Identity to use for Key Vault Reference authentication. - ${KeyVaultReferenceIdentity}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int64] - # Maximum allowed disk size usage in MB. - ${LimitMaxDiskSizeInMb}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int64] - # Maximum allowed memory usage in MB. - ${LimitMaxMemoryInMb}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Double] - # Maximum allowed CPU usage percentage. - ${LimitMaxPercentageCpu}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Linux App Framework and version - ${LinuxFxVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SiteLoadBalancing])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SiteLoadBalancing] - # Site load balancing. - ${LoadBalancing}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to enable local MySQL; otherwise, false. - ${LocalMySqlEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # HTTP logs directory size limit. - ${LogsDirectorySizeLimit}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedPipelineMode])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedPipelineMode] - # Managed pipeline mode. - ${ManagedPipelineMode}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Managed Service Identity Id - ${ManagedServiceIdentityId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.INameValuePair[]] - # Application metadata. - # This property cannot be retrieved, since it may contain secrets. - # To construct, see NOTES section for METADATA properties and create a hash table. - ${Metadata}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.TlsCipherSuites])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.TlsCipherSuites] - # The minimum strength TLS cipher suite allowed for an application - ${MinTlsCipherSuite}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions] - # MinTlsVersion: configures the minimum version of TLS required for SSL requests - ${MinTlsVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of minimum instance count for a siteThis setting only applies to the Elastic Plans - ${MinimumElasticInstanceCount}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # .NET Framework version. - ${NetFrameworkVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of Node.js. - ${NodeVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of workers. - ${NumberOfWorker}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of PHP. - ${PhpVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of PowerShell. - ${PowerShellVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of preWarmed instances.This setting only applies to the Consumption and Elastic Plans - ${PreWarmedInstanceCount}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Property to allow or block all public traffic. - ${PublicNetworkAccess}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Publishing user name. - ${PublishingUsername}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${PushKind}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of Python. - ${PythonVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if remote debugging is enabled; otherwise, false. - ${RemoteDebuggingEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Remote debugging version. - ${RemoteDebuggingVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Request Count. - ${RequestCount}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time interval. - ${RequestTimeInterval}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if request tracing is enabled; otherwise, false. - ${RequestTracingEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.DateTime] - # Request tracing expiration time. - ${RequestTracingExpirationTime}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IIPSecurityRestriction[]] - # IP security restrictions for scm. - # To construct, see NOTES section for SCMIPSECURITYRESTRICTION properties and create a hash table. - ${ScmIPSecurityRestriction}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction] - # Default action for scm access restriction if no rules are matched. - ${ScmIPSecurityRestrictionsDefaultAction}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # IP security restrictions for scm to use main. - ${ScmIPSecurityRestrictionsUseMain}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions] - # ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - ${ScmMinTlsVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ScmType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ScmType] - # SCM type. - ${ScmType}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Request Count. - ${SlowRequestCount}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Request Path. - ${SlowRequestPath}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time interval. - ${SlowRequestTimeInterval}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time taken. - ${SlowRequestTimeTaken}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - ${TagWhitelistJson}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint.Tags can consist of alphanumeric characters and the following:'_', '@', '#', '.', ':', '-'. - # Validation should be performed at the PushRequestHandler. - ${TagsRequiringAuth}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Tracing options. - ${TracingOption}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # A rule based on private bytes. - ${TriggerPrivateBytesInKb}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISlowRequestsBasedTrigger[]] - # A rule based on multiple Slow Requests Rule with path - # To construct, see NOTES section for TRIGGERSLOWREQUESTSWITHPATH properties and create a hash table. - ${TriggerSlowRequestsWithPath}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStatusCodesBasedTrigger[]] - # A rule based on status codes. - # To construct, see NOTES section for TRIGGERSTATUSCODE properties and create a hash table. - ${TriggerStatusCode}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStatusCodesRangeBasedTrigger[]] - # A rule based on status codes ranges. - # To construct, see NOTES section for TRIGGERSTATUSCODESRANGE properties and create a hash table. - ${TriggerStatusCodesRange}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to use 32-bit worker process; otherwise, false. - ${Use32BitWorkerProcess}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IVirtualApplication[]] - # Virtual applications. - # To construct, see NOTES section for VIRTUALAPPLICATION properties and create a hash table. - ${VirtualApplication}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Virtual Network name. - ${VnetName}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # The number of private ports assigned to this app. - # These will be assigned dynamically on runtime. - ${VnetPrivatePortsCount}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Virtual Network Route All enabled. - # This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - ${VnetRouteAllEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if WebSocket is enabled; otherwise, false. - ${WebSocketsEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Sets the time zone a site uses for generating timestamps. - # Compatible with Linux and Windows App Service. - # Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. - # For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). - # For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - ${WebsiteTimeZone}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Xenon App Framework and version - ${WindowsFxVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Explicit Managed Service Identity Id - ${XManagedServiceIdentityId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Create = 'Az.Functions.private\New-AzWebAppConfigurationSlot_Create'; - CreateExpanded = 'Az.Functions.private\New-AzWebAppConfigurationSlot_CreateExpanded'; - CreateViaIdentity = 'Az.Functions.private\New-AzWebAppConfigurationSlot_CreateViaIdentity'; - CreateViaIdentityExpanded = 'Az.Functions.private\New-AzWebAppConfigurationSlot_CreateViaIdentityExpanded'; - } - if (('Create', 'CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Updates the configuration of an app. -.Description -Description for Updates the configuration of an app. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -APPSETTING : Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - -CONNECTIONSTRING : Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - -EXPERIMENTRAMPUPRULE : List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - -HANDLERMAPPING : Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. - -IPSECURITYRESTRICTION : IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - -METADATA : Application metadata. This property cannot be retrieved, since it may contain secrets. - [Name ]: Pair name. - [Value ]: Pair value. - -SCMIPSECURITYRESTRICTION : IP security restrictions for scm. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - -SITECONFIG : Web app configuration ARM resource. - [Kind ]: Kind of resource. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - -TRIGGERSLOWREQUESTSWITHPATH : A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - -TRIGGERSTATUSCODE : A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - -TRIGGERSTATUSCODESRANGE : A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - -VIRTUALAPPLICATION : Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. -.Link -https://learn.microsoft.com/powershell/module/az.functions/new-azwebappconfiguration -#> -function New-AzWebAppConfiguration { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource])] -[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Create', Mandatory)] - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Create', Mandatory)] - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Create')] - [Parameter(ParameterSetName='CreateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource] - # Web app configuration ARM resource. - # To construct, see NOTES section for SITECONFIG properties and create a hash table. - ${SiteConfig}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Flag to use Managed Identity Creds for ACR pull - ${AcrUseManagedIdentityCred}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # If using user managed identity, the user managed identity ClientId - ${AcrUserManagedIdentityId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Minimum time the process must executebefore taking the action - ${ActionMinProcessExecutionTime}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AutoHealActionType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AutoHealActionType] - # Predefined action to be taken. - ${ActionType}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if Always On is enabled; otherwise, false. - ${AlwaysOn}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The URL of the API definition. - ${ApiDefinitionUrl}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # APIM-Api Identifier. - ${ApiManagementConfigId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # App command line to launch. - ${AppCommandLine}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.INameValuePair[]] - # Application settings. - # To construct, see NOTES section for APPSETTING properties and create a hash table. - ${AppSetting}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if Auto Heal is enabled; otherwise, false. - ${AutoHealEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Auto-swap slot name. - ${AutoSwapSlotName}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigAzureStorageAccounts]))] - [System.Collections.Hashtable] - # List of Azure Storage Accounts. - ${AzureStorageAccount}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IConnStringInfo[]] - # Connection strings. - # To construct, see NOTES section for CONNECTIONSTRING properties and create a hash table. - ${ConnectionString}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # Gets or sets the list of origins that should be allowed to make cross-origincalls (for example: http://example.com:12345). - # Use "*" to allow all. - ${CorAllowedOrigin}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets whether CORS requests with credentials are allowed. - # See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentialsfor more details. - ${CorSupportCredentials}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Executable to be run. - ${CustomActionExe}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Parameters for the executable. - ${CustomActionParameter}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # Default documents. - ${DefaultDocument}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if detailed error logging is enabled; otherwise, false. - ${DetailedErrorLoggingEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Document root. - ${DocumentRoot}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - ${DynamicTagsJson}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of workers that a site can scale out to.This setting only applies to apps in plans where ElasticScaleEnabled is true - ${ElasticWebAppScaleLimit}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IRampUpRule[]] - # List of ramp-up rules. - # To construct, see NOTES section for EXPERIMENTRAMPUPRULE properties and create a hash table. - ${ExperimentRampUpRule}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FtpsState])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FtpsState] - # State of FTP / FTPS service - ${FtpsState}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of workers that a site can scale out to.This setting only applies to the Consumption and Elastic Premium Plans - ${FunctionAppScaleLimit}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether functions runtime scale monitoring is enabled. - # When enabled,the ScaleController will not monitor event sources directly, but will instead call to theruntime to get scale status. - ${FunctionsRuntimeScaleMonitoringEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IHandlerMapping[]] - # Handler mappings. - # To construct, see NOTES section for HANDLERMAPPING properties and create a hash table. - ${HandlerMapping}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Health check path - ${HealthCheckPath}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Http20Enabled: configures a web site to allow clients to connect over http2.0 - ${Http20Enabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if HTTP logging is enabled; otherwise, false. - ${HttpLoggingEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IIPSecurityRestriction[]] - # IP security restrictions for main. - # To construct, see NOTES section for IPSECURITYRESTRICTION properties and create a hash table. - ${IPSecurityRestriction}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction] - # Default action for main access restriction if no rules are matched. - ${IPSecurityRestrictionsDefaultAction}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a flag indicating whether the Push endpoint is enabled. - ${IsPushEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java container. - ${JavaContainer}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java container version. - ${JavaContainerVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java version. - ${JavaVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Identity to use for Key Vault Reference authentication. - ${KeyVaultReferenceIdentity}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int64] - # Maximum allowed disk size usage in MB. - ${LimitMaxDiskSizeInMb}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int64] - # Maximum allowed memory usage in MB. - ${LimitMaxMemoryInMb}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Double] - # Maximum allowed CPU usage percentage. - ${LimitMaxPercentageCpu}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Linux App Framework and version - ${LinuxFxVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SiteLoadBalancing])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SiteLoadBalancing] - # Site load balancing. - ${LoadBalancing}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to enable local MySQL; otherwise, false. - ${LocalMySqlEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # HTTP logs directory size limit. - ${LogsDirectorySizeLimit}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedPipelineMode])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedPipelineMode] - # Managed pipeline mode. - ${ManagedPipelineMode}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Managed Service Identity Id - ${ManagedServiceIdentityId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.INameValuePair[]] - # Application metadata. - # This property cannot be retrieved, since it may contain secrets. - # To construct, see NOTES section for METADATA properties and create a hash table. - ${Metadata}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.TlsCipherSuites])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.TlsCipherSuites] - # The minimum strength TLS cipher suite allowed for an application - ${MinTlsCipherSuite}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions] - # MinTlsVersion: configures the minimum version of TLS required for SSL requests - ${MinTlsVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of minimum instance count for a siteThis setting only applies to the Elastic Plans - ${MinimumElasticInstanceCount}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # .NET Framework version. - ${NetFrameworkVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of Node.js. - ${NodeVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of workers. - ${NumberOfWorker}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of PHP. - ${PhpVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of PowerShell. - ${PowerShellVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of preWarmed instances.This setting only applies to the Consumption and Elastic Plans - ${PreWarmedInstanceCount}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Property to allow or block all public traffic. - ${PublicNetworkAccess}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Publishing user name. - ${PublishingUsername}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${PushKind}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of Python. - ${PythonVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if remote debugging is enabled; otherwise, false. - ${RemoteDebuggingEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Remote debugging version. - ${RemoteDebuggingVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Request Count. - ${RequestCount}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time interval. - ${RequestTimeInterval}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if request tracing is enabled; otherwise, false. - ${RequestTracingEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.DateTime] - # Request tracing expiration time. - ${RequestTracingExpirationTime}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IIPSecurityRestriction[]] - # IP security restrictions for scm. - # To construct, see NOTES section for SCMIPSECURITYRESTRICTION properties and create a hash table. - ${ScmIPSecurityRestriction}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction] - # Default action for scm access restriction if no rules are matched. - ${ScmIPSecurityRestrictionsDefaultAction}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # IP security restrictions for scm to use main. - ${ScmIPSecurityRestrictionsUseMain}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions] - # ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - ${ScmMinTlsVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ScmType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ScmType] - # SCM type. - ${ScmType}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Request Count. - ${SlowRequestCount}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Request Path. - ${SlowRequestPath}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time interval. - ${SlowRequestTimeInterval}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time taken. - ${SlowRequestTimeTaken}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - ${TagWhitelistJson}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint.Tags can consist of alphanumeric characters and the following:'_', '@', '#', '.', ':', '-'. - # Validation should be performed at the PushRequestHandler. - ${TagsRequiringAuth}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Tracing options. - ${TracingOption}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # A rule based on private bytes. - ${TriggerPrivateBytesInKb}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISlowRequestsBasedTrigger[]] - # A rule based on multiple Slow Requests Rule with path - # To construct, see NOTES section for TRIGGERSLOWREQUESTSWITHPATH properties and create a hash table. - ${TriggerSlowRequestsWithPath}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStatusCodesBasedTrigger[]] - # A rule based on status codes. - # To construct, see NOTES section for TRIGGERSTATUSCODE properties and create a hash table. - ${TriggerStatusCode}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStatusCodesRangeBasedTrigger[]] - # A rule based on status codes ranges. - # To construct, see NOTES section for TRIGGERSTATUSCODESRANGE properties and create a hash table. - ${TriggerStatusCodesRange}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to use 32-bit worker process; otherwise, false. - ${Use32BitWorkerProcess}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IVirtualApplication[]] - # Virtual applications. - # To construct, see NOTES section for VIRTUALAPPLICATION properties and create a hash table. - ${VirtualApplication}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Virtual Network name. - ${VnetName}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # The number of private ports assigned to this app. - # These will be assigned dynamically on runtime. - ${VnetPrivatePortsCount}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Virtual Network Route All enabled. - # This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - ${VnetRouteAllEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if WebSocket is enabled; otherwise, false. - ${WebSocketsEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Sets the time zone a site uses for generating timestamps. - # Compatible with Linux and Windows App Service. - # Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. - # For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). - # For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - ${WebsiteTimeZone}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Xenon App Framework and version - ${WindowsFxVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Explicit Managed Service Identity Id - ${XManagedServiceIdentityId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Create = 'Az.Functions.private\New-AzWebAppConfiguration_Create'; - CreateExpanded = 'Az.Functions.private\New-AzWebAppConfiguration_CreateExpanded'; - CreateViaIdentity = 'Az.Functions.private\New-AzWebAppConfiguration_CreateViaIdentity'; - CreateViaIdentityExpanded = 'Az.Functions.private\New-AzWebAppConfiguration_CreateViaIdentityExpanded'; - } - if (('Create', 'CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Delete an App Service plan. -.Description -Description for Delete an App Service plan. -.Example -Get-AzFunctionAppPlan -Name MyAppName -ResourceGroupName MyResourceGroupName | Remove-AzFunctionAppPlan -Force -.Example -Remove-AzFunctionAppPlan -Name MyAppName -ResourceGroupName MyResourceGroupName -Force - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/remove-azfunctionappplan -#> -function Remove-AzFunctionAppPlan { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Delete', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the App Service plan. - ${Name}, - - [Parameter(ParameterSetName='Delete', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Delete')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Delete = 'Az.Functions.private\Remove-AzFunctionAppPlan_Delete'; - DeleteViaIdentity = 'Az.Functions.private\Remove-AzFunctionAppPlan_DeleteViaIdentity'; - } - if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Deletes a web, mobile, or API app, or one of the deployment slots. -.Description -Description for Deletes a web, mobile, or API app, or one of the deployment slots. -.Example -Get-AzFunctionApp -Name MyAppName -ResourceGroupName MyResourceGroupName | Remove-AzFunctionApp -Force -.Example -Remove-AzFunctionApp -Name MyAppName -ResourceGroupName MyResourceGroupName -Force - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/remove-azfunctionapp -#> -function Remove-AzFunctionApp { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Delete', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app to delete. - ${Name}, - - [Parameter(ParameterSetName='Delete', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Delete')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Query')] - [System.Management.Automation.SwitchParameter] - # Specify false if you want to keep empty App Service plan. - # By default, empty App Service plan is deleted. - ${DeleteEmptyServerFarm}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Query')] - [System.Management.Automation.SwitchParameter] - # If true, web app metrics are also deleted. - ${DeleteMetric}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Delete = 'Az.Functions.private\Remove-AzFunctionApp_Delete'; - DeleteViaIdentity = 'Az.Functions.private\Remove-AzFunctionApp_DeleteViaIdentity'; - } - if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Delete a function for web site, or a deployment slot. -.Description -Description for Delete a function for web site, or a deployment slot. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/remove-azfunction -#> -function Remove-AzFunction { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Delete', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Site name. - ${FunctionAppName}, - - [Parameter(ParameterSetName='Delete', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Function name. - ${FunctionName}, - - [Parameter(ParameterSetName='Delete', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Delete')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Delete = 'Az.Functions.private\Remove-AzFunction_Delete'; - DeleteViaIdentity = 'Az.Functions.private\Remove-AzFunction_DeleteViaIdentity'; - } - if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Deletes the identity. -.Description -Deletes the identity. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/remove-azuserassignedidentity -#> -function Remove-AzUserAssignedIdentity { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Delete', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the Resource Group to which the identity belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Delete', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the identity resource. - ${ResourceName}, - - [Parameter(ParameterSetName='Delete')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Delete = 'Az.Functions.private\Remove-AzUserAssignedIdentity_Delete'; - DeleteViaIdentity = 'Az.Functions.private\Remove-AzUserAssignedIdentity_DeleteViaIdentity'; - } - if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Restarts an app (or deployment slot, if specified). -.Description -Description for Restarts an app (or deployment slot, if specified). -.Example -Get-AzFunctionApp -Name MyAppName -ResourceGroupName MyResourceGroupName | Restart-AzFunctionApp -Force -.Example -Restart-AzFunctionApp -Name MyAppName -ResourceGroupName MyResourceGroupName -Force - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/restart-azfunctionapp -#> -function Restart-AzFunctionApp { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Restart', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Restart', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Restart', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Restart')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='RestartViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Query')] - [System.Management.Automation.SwitchParameter] - # Specify true to apply the configuration settings and restarts the app only if necessary. - # By default, the API always restarts and reprovisions the app. - ${SoftRestart}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Query')] - [System.Management.Automation.SwitchParameter] - # Specify true to block until the app is restarted. - # By default, it is set to false, and the API responds immediately (asynchronous). - ${Synchronou}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Restart = 'Az.Functions.private\Restart-AzFunctionApp_Restart'; - RestartViaIdentity = 'Az.Functions.private\Restart-AzFunctionApp_RestartViaIdentity'; - } - if (('Restart') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Restores a specific backup to another app (or deployment slot, if specified). -.Description -Description for Restores a specific backup to another app (or deployment slot, if specified). -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IRestoreRequest -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -DATABASE : Collection of databases which should be restored. This list has to match the list of databases included in the backup. - DatabaseType : Database type (e.g. SqlAzure / MySql). - [ConnectionString ]: Contains a connection string to a database which is being backed up or restored. If the restore should happen to a new database, the database name inside is the new one. - [ConnectionStringName ]: Contains a connection string name that is linked to the SiteConfig.ConnectionStrings. This is used during restore with overwrite connection strings options. - [Name ]: - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. - -REQUEST : Description of a restore request. - [Kind ]: Kind of resource. - [AdjustConnectionString ]: true if SiteConfig.ConnectionStrings should be set in new app; otherwise, false. - [AppServicePlan ]: Specify app service plan that will own restored site. - [BlobName ]: Name of a blob which contains the backup. - [Database ]: Collection of databases which should be restored. This list has to match the list of databases included in the backup. - DatabaseType : Database type (e.g. SqlAzure / MySql). - [ConnectionString ]: Contains a connection string to a database which is being backed up or restored. If the restore should happen to a new database, the database name inside is the new one. - [ConnectionStringName ]: Contains a connection string name that is linked to the SiteConfig.ConnectionStrings. This is used during restore with overwrite connection strings options. - [Name ]: - [HostingEnvironment ]: App Service Environment name, if needed (only when restoring an app to an App Service Environment). - [IgnoreConflictingHostName ]: Changes a logic when restoring an app with custom domains. true to remove custom domains automatically. If false, custom domains are added to the app's object when it is being restored, but that might fail due to conflicts during the operation. - [IgnoreDatabase ]: Ignore the databases and only restore the site content - [OperationType ]: Operation type. - [Overwrite ]: true if the restore operation can overwrite target app; otherwise, false. true is needed if trying to restore over an existing app. - [SiteName ]: Name of an app. - [StorageAccountUrl ]: SAS URL to the container. -.Link -https://learn.microsoft.com/powershell/module/az.functions/restore-azfunctionapp -#> -function Restore-AzFunctionApp { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='RestoreExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Restore', Mandatory)] - [Parameter(ParameterSetName='RestoreExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # ID of the backup. - ${BackupId}, - - [Parameter(ParameterSetName='Restore', Mandatory)] - [Parameter(ParameterSetName='RestoreExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Restore', Mandatory)] - [Parameter(ParameterSetName='RestoreExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Restore')] - [Parameter(ParameterSetName='RestoreExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='RestoreViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='RestoreViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Restore', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='RestoreViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IRestoreRequest] - # Description of a restore request. - # To construct, see NOTES section for REQUEST properties and create a hash table. - ${Request}, - - [Parameter(ParameterSetName='RestoreExpanded')] - [Parameter(ParameterSetName='RestoreViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if SiteConfig.ConnectionStrings should be set in new app; otherwise, false. - ${AdjustConnectionString}, - - [Parameter(ParameterSetName='RestoreExpanded')] - [Parameter(ParameterSetName='RestoreViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Specify app service plan that will own restored site. - ${AppServicePlan}, - - [Parameter(ParameterSetName='RestoreExpanded')] - [Parameter(ParameterSetName='RestoreViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Name of a blob which contains the backup. - ${BlobName}, - - [Parameter(ParameterSetName='RestoreExpanded')] - [Parameter(ParameterSetName='RestoreViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IDatabaseBackupSetting[]] - # Collection of databases which should be restored. - # This list has to match the list of databases included in the backup. - # To construct, see NOTES section for DATABASE properties and create a hash table. - ${Database}, - - [Parameter(ParameterSetName='RestoreExpanded')] - [Parameter(ParameterSetName='RestoreViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # App Service Environment name, if needed (only when restoring an app to an App Service Environment). - ${HostingEnvironment}, - - [Parameter(ParameterSetName='RestoreExpanded')] - [Parameter(ParameterSetName='RestoreViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Changes a logic when restoring an app with custom domains. - # true to remove custom domains automatically. - # If false, custom domains are added to the app's object when it is being restored, but that might fail due to conflicts during the operation. - ${IgnoreConflictingHostName}, - - [Parameter(ParameterSetName='RestoreExpanded')] - [Parameter(ParameterSetName='RestoreViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Ignore the databases and only restore the site content - ${IgnoreDatabase}, - - [Parameter(ParameterSetName='RestoreExpanded')] - [Parameter(ParameterSetName='RestoreViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter(ParameterSetName='RestoreExpanded')] - [Parameter(ParameterSetName='RestoreViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.BackupRestoreOperationType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.BackupRestoreOperationType] - # Operation type. - ${OperationType}, - - [Parameter(ParameterSetName='RestoreExpanded')] - [Parameter(ParameterSetName='RestoreViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if the restore operation can overwrite target app; otherwise, false. - # true is needed if trying to restore over an existing app. - ${Overwrite}, - - [Parameter(ParameterSetName='RestoreExpanded')] - [Parameter(ParameterSetName='RestoreViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Name of an app. - ${SiteName}, - - [Parameter(ParameterSetName='RestoreExpanded')] - [Parameter(ParameterSetName='RestoreViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # SAS URL to the container. - ${StorageAccountUrl}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command as a job - ${AsJob}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command asynchronously - ${NoWait}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Restore = 'Az.Functions.private\Restore-AzFunctionApp_Restore'; - RestoreExpanded = 'Az.Functions.private\Restore-AzFunctionApp_RestoreExpanded'; - RestoreViaIdentity = 'Az.Functions.private\Restore-AzFunctionApp_RestoreViaIdentity'; - RestoreViaIdentityExpanded = 'Az.Functions.private\Restore-AzFunctionApp_RestoreViaIdentityExpanded'; - } - if (('Restore', 'RestoreExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Creates or updates an App Service Plan. -.Description -Description for Creates or updates an App Service Plan. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -APPSERVICEPLAN : App Service plan. - Location : Resource Location. - [Kind ]: Kind of resource. - [Tag ]: Resource tags. - [(Any) ]: This indicates any property can be added to this object. - [Capacity ]: Current number of instances assigned to the resource. - [ElasticScaleEnabled ]: ServerFarm supports ElasticScale. Apps in this plan will scale as if the ServerFarm was ElasticPremium sku - [ExtendedLocationName ]: Name of extended location. - [FreeOfferExpirationTime ]: The time when the server farm free offer expires. - [HostingEnvironmentProfileId ]: Resource ID of the App Service Environment. - [HyperV ]: If Hyper-V container app service plan true, false otherwise. - [IsSpot ]: If true, this App Service Plan owns spot instances. - [IsXenon ]: Obsolete: If Hyper-V container app service plan true, false otherwise. - [KubeEnvironmentProfileId ]: Resource ID of the Kubernetes Environment. - [MaximumElasticWorkerCount ]: Maximum number of total workers allowed for this ElasticScaleEnabled App Service Plan - [PerSiteScaling ]: If true, apps assigned to this App Service plan can be scaled independently. If false, apps assigned to this App Service plan will scale to all instances of the plan. - [Reserved ]: If Linux app service plan true, false otherwise. - [SkuCapability ]: Capabilities of the SKU, e.g., is traffic manager enabled? - [Name ]: Name of the SKU capability. - [Reason ]: Reason of the SKU capability. - [Value ]: Value of the SKU capability. - [SkuCapacityDefault ]: Default number of workers for this App Service plan SKU. - [SkuCapacityElasticMaximum ]: Maximum number of Elastic workers for this App Service plan SKU. - [SkuCapacityMaximum ]: Maximum number of workers for this App Service plan SKU. - [SkuCapacityMinimum ]: Minimum number of workers for this App Service plan SKU. - [SkuCapacityScaleType ]: Available scale configurations for an App Service plan. - [SkuFamily ]: Family code of the resource SKU. - [SkuLocation ]: Locations of the SKU. - [SkuName ]: Name of the resource SKU. - [SkuSize ]: Size specifier of the resource SKU. - [SkuTier ]: Service tier of the resource SKU. - [SpotExpirationTime ]: The time when the server farm expires. Valid only if it is a spot server farm. - [TargetWorkerCount ]: Scaling worker count. - [TargetWorkerSizeId ]: Scaling worker size ID. - [WorkerTierName ]: Target worker tier assigned to the App Service plan. - [ZoneRedundant ]: If true, this App Service Plan will perform availability zone balancing. If false, this App Service Plan will not perform availability zone balancing. - -SKUCAPABILITY : Capabilities of the SKU, e.g., is traffic manager enabled - [Name ]: Name of the SKU capability. - [Reason ]: Reason of the SKU capability. - [Value ]: Value of the SKU capability. -.Link -https://learn.microsoft.com/powershell/module/az.functions/set-azfunctionappplan -#> -function Set-AzFunctionAppPlan { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the App Service plan. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan] - # App Service plan. - # To construct, see NOTES section for APPSERVICEPLAN properties and create a hash table. - ${AppServicePlan}, - - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource Location. - ${Location}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Current number of instances assigned to the resource. - ${Capacity}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # ServerFarm supports ElasticScale. - # Apps in this plan will scale as if the ServerFarm was ElasticPremium sku - ${ElasticScaleEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Name of extended location. - ${ExtendedLocationName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.DateTime] - # The time when the server farm free offer expires. - ${FreeOfferExpirationTime}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource ID of the App Service Environment. - ${HostingEnvironmentProfileId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # If Hyper-V container app service plan true, false otherwise. - ${HyperV}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # If true, this App Service Plan owns spot instances. - ${IsSpot}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Obsolete: If Hyper-V container app service plan true, false otherwise. - ${IsXenon}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource ID of the Kubernetes Environment. - ${KubeEnvironmentProfileId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of total workers allowed for this ElasticScaleEnabled App Service Plan - ${MaximumElasticWorkerCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # If true, apps assigned to this App Service plan can be scaled independently.If false, apps assigned to this App Service plan will scale to all instances of the plan. - ${PerSiteScaling}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # If Linux app service plan true, false otherwise. - ${Reserved}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICapability[]] - # Capabilities of the SKU, e.g., is traffic manager enabled - # To construct, see NOTES section for SKUCAPABILITY properties and create a hash table. - ${SkuCapability}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Default number of workers for this App Service plan SKU. - ${SkuCapacityDefault}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of Elastic workers for this App Service plan SKU. - ${SkuCapacityElasticMaximum}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of workers for this App Service plan SKU. - ${SkuCapacityMaximum}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Minimum number of workers for this App Service plan SKU. - ${SkuCapacityMinimum}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Available scale configurations for an App Service plan. - ${SkuCapacityScaleType}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Family code of the resource SKU. - ${SkuFamily}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # Locations of the SKU. - ${SkuLocation}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Name of the resource SKU. - ${SkuName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Size specifier of the resource SKU. - ${SkuSize}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Service tier of the resource SKU. - ${SkuTier}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.DateTime] - # The time when the server farm expires. - # Valid only if it is a spot server farm. - ${SpotExpirationTime}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IResourceTags]))] - [System.Collections.Hashtable] - # Resource tags. - ${Tag}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Scaling worker count. - ${TargetWorkerCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Scaling worker size ID. - ${TargetWorkerSizeId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Target worker tier assigned to the App Service plan. - ${WorkerTierName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # If true, this App Service Plan will perform availability zone balancing.If false, this App Service Plan will not perform availability zone balancing. - ${ZoneRedundant}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command as a job - ${AsJob}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command asynchronously - ${NoWait}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Update = 'Az.Functions.private\Set-AzFunctionAppPlan_Update'; - UpdateExpanded = 'Az.Functions.private\Set-AzFunctionAppPlan_UpdateExpanded'; - } - if (('Update', 'UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Creates a new web, mobile, or API app in an existing resource group, or updates an existing app. -.Description -Description for Creates a new web, mobile, or API app in an existing resource group, or updates an existing app. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -HOSTNAMESSLSTATE : Hostname SSL states are used to manage the SSL bindings for app's hostnames. - [HostType ]: Indicates whether the hostname is a standard or repository hostname. - [Name ]: Hostname. - [SslState ]: SSL type. - [Thumbprint ]: SSL certificate thumbprint. - [ToUpdate ]: Set to true to update existing hostname. - [VirtualIP ]: Virtual IP address assigned to the hostname if IP based SSL is enabled. - -SCALEANDCONCURRENCYALWAYSREADY : 'Always Ready' configuration for the function app. - [InstanceCount ]: Sets the number of 'Always Ready' instances for a given function group or a specific function. For additional information see https://aka.ms/flexconsumption/alwaysready. - [Name ]: Either a function group or a function name is required. For additional information see https://aka.ms/flexconsumption/alwaysready. - -SITECONFIG : Configuration of the app. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - -SITEENVELOPE : A web app, a mobile app backend, or an API app. - Location : Resource Location. - [Kind ]: Kind of resource. - [Tag ]: Resource tags. - [(Any) ]: This indicates any property can be added to this object. - [AuthenticationStorageAccountConnectionStringName ]: Use this property for StorageAccountConnectionString. Set the name of the app setting that has the storage account connection string. Do not set a value for this property when using other authentication type. - [AuthenticationType ]: Property to select authentication type to access the selected storage account. Available options: SystemAssignedIdentity, UserAssignedIdentity, StorageAccountConnectionString. - [AuthenticationUserAssignedIdentityResourceId ]: Use this property for UserAssignedIdentity. Set the resource ID of the identity. Do not set a value for this property when using other authentication type. - [ClientAffinityEnabled ]: true to enable client affinity; false to stop sending session affinity cookies, which route client requests in the same session to the same instance. Default is true. - [ClientCertEnabled ]: true to enable client certificate authentication (TLS mutual authentication); otherwise, false. Default is false. - [ClientCertExclusionPath ]: client certificate authentication comma-separated exclusion paths - [ClientCertMode ]: This composes with ClientCertEnabled setting. - ClientCertEnabled: false means ClientCert is ignored. - ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required. - ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted. - [CloningInfoAppSettingsOverride ]: Application setting overrides for cloned app. If specified, these settings override the settings cloned from source app. Otherwise, application settings from source app are retained. - [(Any) ]: This indicates any property can be added to this object. - [CloningInfoCloneCustomHostName ]: true to clone custom hostnames from source app; otherwise, false. - [CloningInfoCloneSourceControl ]: true to clone source control from source app; otherwise, false. - [CloningInfoConfigureLoadBalancing ]: true to configure load balancing for source and destination app. - [CloningInfoCorrelationId ]: Correlation ID of cloning operation. This ID ties multiple cloning operations together to use the same snapshot. - [CloningInfoHostingEnvironment ]: App Service Environment. - [CloningInfoOverwrite ]: true to overwrite destination app; otherwise, false. - [CloningInfoSourceWebAppId ]: ARM resource ID of the source app. App resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots. - [CloningInfoSourceWebAppLocation ]: Location of source app ex: West US or North Europe - [CloningInfoTrafficManagerProfileId ]: ARM resource ID of the Traffic Manager profile to use, if it exists. Traffic Manager resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}. - [CloningInfoTrafficManagerProfileName ]: Name of Traffic Manager profile to create. This is only needed if Traffic Manager profile does not already exist. - [Config ]: Configuration of the app. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - [ContainerSize ]: Size of the function container. - [CustomDomainVerificationId ]: Unique identifier that verifies the custom domains assigned to the app. Customer will add this id to a txt record for verification. - [DailyMemoryTimeQuota ]: Maximum allowed daily memory-time quota (applicable on dynamic apps only). - [DaprConfigAppId ]: Dapr application identifier - [DaprConfigAppPort ]: Tells Dapr which port your application is listening on - [DaprConfigEnableApiLogging ]: Enables API logging for the Dapr sidecar - [DaprConfigEnabled ]: Boolean indicating if the Dapr side car is enabled - [DaprConfigHttpMaxRequestSize ]: Increasing max size of request body http servers parameter in MB to handle uploading of big files. Default is 4 MB. - [DaprConfigHttpReadBufferSize ]: Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. - [DaprConfigLogLevel ]: Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. - [DnsConfigurationDnsAltServer ]: Alternate DNS server to be used by apps. This property replicates the WEBSITE_DNS_ALT_SERVER app setting. - [DnsConfigurationDnsMaxCacheTimeout ]: Custom time for DNS to be cached in seconds. Allowed range: 0-60. Default is 30 seconds. 0 means caching disabled. - [DnsConfigurationDnsRetryAttemptCount ]: Total number of retries for dns lookup. Allowed range: 1-5. Default is 3. - [DnsConfigurationDnsRetryAttemptTimeout ]: Timeout for a single dns lookup in seconds. Allowed range: 1-30. Default is 3. - [DnsConfigurationDnsServer ]: List of custom DNS servers to be used by an app for lookups. Maximum 5 dns servers can be set. - [Enabled ]: true if the app is enabled; otherwise, false. Setting this value to false disables the app (takes the app offline). - [ExtendedLocationName ]: Name of extended location. - [HostNameSslState ]: Hostname SSL states are used to manage the SSL bindings for app's hostnames. - [HostType ]: Indicates whether the hostname is a standard or repository hostname. - [Name ]: Hostname. - [SslState ]: SSL type. - [Thumbprint ]: SSL certificate thumbprint. - [ToUpdate ]: Set to true to update existing hostname. - [VirtualIP ]: Virtual IP address assigned to the hostname if IP based SSL is enabled. - [HostNamesDisabled ]: true to disable the public hostnames of the app; otherwise, false. If true, the app is only accessible via API management process. - [HostingEnvironmentProfileId ]: Resource ID of the App Service Environment. - [HttpPerInstanceConcurrency ]: The maximum number of concurrent HTTP trigger invocations per instance. - [HttpsOnly ]: HttpsOnly: configures a web site to accept only https requests. Issues redirect for http requests - [HyperV ]: Hyper-V sandbox. - [IdentityType ]: Type of managed service identity. - [IdentityUserAssignedIdentity ]: The list of user assigned identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} - [(Any) ]: This indicates any property can be added to this object. - [IsXenon ]: Obsolete: Hyper-V sandbox. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [ManagedEnvironmentId ]: Azure Resource Manager ID of the customer's selected Managed Environment on which to host this app. This must be of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.App/managedEnvironments/{managedEnvironmentName} - [PublicNetworkAccess ]: Property to allow or block all public traffic. Allowed Values: 'Enabled', 'Disabled' or an empty string. - [RedundancyMode ]: Site redundancy mode - [Reserved ]: true if reserved; otherwise, false. - [ResourceConfigCpu ]: Required CPU in cores, e.g. 0.5 - [ResourceConfigMemory ]: Required memory, e.g. "1Gi" - [RuntimeName ]: Function app runtime name. Available options: dotnet-isolated, node, java, powershell, python, custom - [RuntimeVersion ]: Function app runtime version. Example: 8 (for dotnet-isolated) - [ScaleAndConcurrencyAlwaysReady ]: 'Always Ready' configuration for the function app. - [InstanceCount ]: Sets the number of 'Always Ready' instances for a given function group or a specific function. For additional information see https://aka.ms/flexconsumption/alwaysready. - [Name ]: Either a function group or a function name is required. For additional information see https://aka.ms/flexconsumption/alwaysready. - [ScaleAndConcurrencyInstanceMemoryMb ]: Set the amount of memory allocated to each instance of the function app in MB. CPU and network bandwidth are allocated proportionally. - [ScaleAndConcurrencyMaximumInstanceCount ]: The maximum number of instances for the function app. - [ScmSiteAlsoStopped ]: true to stop SCM (KUDU) site when the app is stopped; otherwise, false. The default is false. - [ServerFarmId ]: Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". - [StorageAccountRequired ]: Checks if Customer provided storage account is required - [StorageType ]: Property to select Azure Storage type. Available options: blobContainer. - [StorageValue ]: Property to set the URL for the selected Azure Storage type. Example: For blobContainer, the value could be https://.blob.core.windows.net/. - [VirtualNetworkSubnetId ]: Azure Resource Manager ID of the Virtual network and subnet to be joined by Regional VNET Integration. This must be of the form /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName} - [VnetBackupRestoreEnabled ]: To enable Backup and Restore operations over virtual network - [VnetContentShareEnabled ]: To enable accessing content over virtual network - [VnetImagePullEnabled ]: To enable pulling image over Virtual Network - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WorkloadProfileName ]: Workload profile name for function app to execute on. -.Link -https://learn.microsoft.com/powershell/module/az.functions/set-azfunctionapp -#> -function Set-AzFunctionApp { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Unique name of the app to create or update. - # To create or update a deployment slot, use the {slot} parameter. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - # A web app, a mobile app backend, or an API app. - # To construct, see NOTES section for SITEENVELOPE properties and create a hash table. - ${SiteEnvelope}, - - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource Location. - ${Location}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Use this property for StorageAccountConnectionString. - # Set the name of the app setting that has the storage account connection string. - # Do not set a value for this property when using other authentication type. - ${AuthenticationStorageAccountConnectionStringName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AuthenticationType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AuthenticationType] - # Property to select authentication type to access the selected storage account. - # Available options: SystemAssignedIdentity, UserAssignedIdentity, StorageAccountConnectionString. - ${AuthenticationType}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Use this property for UserAssignedIdentity. - # Set the resource ID of the identity. - # Do not set a value for this property when using other authentication type. - ${AuthenticationUserAssignedIdentityResourceId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to enable client affinity; false to stop sending session affinity cookies, which route client requests in the same session to the same instance. - # Default is true. - ${ClientAffinityEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to enable client certificate authentication (TLS mutual authentication); otherwise, false. - # Default is false. - ${ClientCertEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # client certificate authentication comma-separated exclusion paths - ${ClientCertExclusionPath}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ClientCertMode])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ClientCertMode] - # This composes with ClientCertEnabled setting.- ClientCertEnabled: false means ClientCert is ignored.- ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required.- ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted. - ${ClientCertMode}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICloningInfoAppSettingsOverrides]))] - [System.Collections.Hashtable] - # Application setting overrides for cloned app. - # If specified, these settings override the settings cloned from source app. - # Otherwise, application settings from source app are retained. - ${CloningInfoAppSettingsOverride}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to clone custom hostnames from source app; otherwise, false. - ${CloningInfoCloneCustomHostName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to clone source control from source app; otherwise, false. - ${CloningInfoCloneSourceControl}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to configure load balancing for source and destination app. - ${CloningInfoConfigureLoadBalancing}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Correlation ID of cloning operation. - # This ID ties multiple cloning operationstogether to use the same snapshot. - ${CloningInfoCorrelationId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # App Service Environment. - ${CloningInfoHostingEnvironment}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to overwrite destination app; otherwise, false. - ${CloningInfoOverwrite}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # ARM resource ID of the source app. - # App resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots. - ${CloningInfoSourceWebAppId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Location of source app ex: West US or North Europe - ${CloningInfoSourceWebAppLocation}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # ARM resource ID of the Traffic Manager profile to use, if it exists. - # Traffic Manager resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}. - ${CloningInfoTrafficManagerProfileId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Name of Traffic Manager profile to create. - # This is only needed if Traffic Manager profile does not already exist. - ${CloningInfoTrafficManagerProfileName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Size of the function container. - ${ContainerSize}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Unique identifier that verifies the custom domains assigned to the app. - # Customer will add this id to a txt record for verification. - ${CustomDomainVerificationId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum allowed daily memory-time quota (applicable on dynamic apps only). - ${DailyMemoryTimeQuota}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Dapr application identifier - ${DaprConfigAppId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Tells Dapr which port your application is listening on - ${DaprConfigAppPort}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Enables API logging for the Dapr sidecar - ${DaprConfigEnableApiLogging}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Boolean indicating if the Dapr side car is enabled - ${DaprConfigEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Increasing max size of request body http servers parameter in MB to handle uploading of big files. - # Default is 4 MB. - ${DaprConfigHttpMaxRequestSize}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. - # Default is 65KB. - ${DaprConfigHttpReadBufferSize}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DaprLogLevel])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DaprLogLevel] - # Sets the log level for the Dapr sidecar. - # Allowed values are debug, info, warn, error. - # Default is info. - ${DaprConfigLogLevel}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Alternate DNS server to be used by apps. - # This property replicates the WEBSITE_DNS_ALT_SERVER app setting. - ${DnsConfigurationDnsAltServer}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Custom time for DNS to be cached in seconds. - # Allowed range: 0-60. - # Default is 30 seconds. - # 0 means caching disabled. - ${DnsConfigurationDnsMaxCacheTimeout}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Total number of retries for dns lookup. - # Allowed range: 1-5. - # Default is 3. - ${DnsConfigurationDnsRetryAttemptCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Timeout for a single dns lookup in seconds. - # Allowed range: 1-30. - # Default is 3. - ${DnsConfigurationDnsRetryAttemptTimeout}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # List of custom DNS servers to be used by an app for lookups. - # Maximum 5 dns servers can be set. - ${DnsConfigurationDnsServer}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if the app is enabled; otherwise, false. - # Setting this value to false disables the app (takes the app offline). - ${Enabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Name of extended location. - ${ExtendedLocationName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IHostNameSslState[]] - # Hostname SSL states are used to manage the SSL bindings for app's hostnames. - # To construct, see NOTES section for HOSTNAMESSLSTATE properties and create a hash table. - ${HostNameSslState}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to disable the public hostnames of the app; otherwise, false. - # If true, the app is only accessible via API management process. - ${HostNamesDisabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource ID of the App Service Environment. - ${HostingEnvironmentProfileId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Single] - # The maximum number of concurrent HTTP trigger invocations per instance. - ${HttpPerInstanceConcurrency}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # HttpsOnly: configures a web site to accept only https requests. - # Issues redirect forhttp requests - ${HttpsOnly}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Hyper-V sandbox. - ${HyperV}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedServiceIdentityType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedServiceIdentityType] - # Type of managed service identity. - ${IdentityType}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IManagedServiceIdentityUserAssignedIdentities]))] - [System.Collections.Hashtable] - # The list of user assigned identities associated with the resource. - # The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} - ${IdentityUserAssignedIdentity}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Obsolete: Hyper-V sandbox. - ${IsXenon}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Identity to use for Key Vault Reference authentication. - ${KeyVaultReferenceIdentity}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Azure Resource Manager ID of the customer's selected Managed Environment on which to host this app. - # This must be of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.App/managedEnvironments/{managedEnvironmentName} - ${ManagedEnvironmentId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Property to allow or block all public traffic. - # Allowed Values: 'Enabled', 'Disabled' or an empty string. - ${PublicNetworkAccess}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.RedundancyMode])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.RedundancyMode] - # Site redundancy mode - ${RedundancyMode}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if reserved; otherwise, false. - ${Reserved}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Double] - # Required CPU in cores, e.g. - # 0.5 - ${ResourceConfigCpu}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Required memory, e.g. - # "1Gi" - ${ResourceConfigMemory}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.RuntimeName])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.RuntimeName] - # Function app runtime name. - # Available options: dotnet-isolated, node, java, powershell, python, custom - ${RuntimeName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Function app runtime version. - # Example: 8 (for dotnet-isolated) - ${RuntimeVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IFunctionsAlwaysReadyConfig[]] - # 'Always Ready' configuration for the function app. - # To construct, see NOTES section for SCALEANDCONCURRENCYALWAYSREADY properties and create a hash table. - ${ScaleAndConcurrencyAlwaysReady}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Single] - # Set the amount of memory allocated to each instance of the function app in MB. - # CPU and network bandwidth are allocated proportionally. - ${ScaleAndConcurrencyInstanceMemoryMb}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Single] - # The maximum number of instances for the function app. - ${ScaleAndConcurrencyMaximumInstanceCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to stop SCM (KUDU) site when the app is stopped; otherwise, false. - # The default is false. - ${ScmSiteAlsoStopped}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". - ${ServerFarmId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfig] - # Configuration of the app. - # To construct, see NOTES section for SITECONFIG properties and create a hash table. - ${SiteConfig}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Checks if Customer provided storage account is required - ${StorageAccountRequired}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FunctionsDeploymentStorageType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FunctionsDeploymentStorageType] - # Property to select Azure Storage type. - # Available options: blobContainer. - ${StorageType}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Property to set the URL for the selected Azure Storage type. - # Example: For blobContainer, the value could be https://.blob.core.windows.net/. - ${StorageValue}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IResourceTags]))] - [System.Collections.Hashtable] - # Resource tags. - ${Tag}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Azure Resource Manager ID of the Virtual network and subnet to be joined by Regional VNET Integration.This must be of the form /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName} - ${VirtualNetworkSubnetId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # To enable Backup and Restore operations over virtual network - ${VnetBackupRestoreEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # To enable accessing content over virtual network - ${VnetContentShareEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # To enable pulling image over Virtual Network - ${VnetImagePullEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Virtual Network Route All enabled. - # This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - ${VnetRouteAllEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Workload profile name for function app to execute on. - ${WorkloadProfileName}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command as a job - ${AsJob}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command asynchronously - ${NoWait}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Update = 'Az.Functions.private\Set-AzFunctionApp_Update'; - UpdateExpanded = 'Az.Functions.private\Set-AzFunctionApp_UpdateExpanded'; - } - if (('Update', 'UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Create or update an identity in the specified subscription and resource group. -.Description -Create or update an identity in the specified subscription and resource group. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IIdentityAutoGenerated -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IIdentityAutoGenerated -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -PARAMETER : Describes an identity resource. - Location : The geo-location where the resource lives - [Tag ]: Resource tags. - [(Any) ]: This indicates any property can be added to this object. -.Link -https://learn.microsoft.com/powershell/module/az.functions/set-azuserassignedidentity -#> -function Set-AzUserAssignedIdentity { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IIdentityAutoGenerated])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the Resource Group to which the identity belongs. - ${ResourceGroupName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the identity resource. - ${ResourceName}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IIdentityAutoGenerated] - # Describes an identity resource. - # To construct, see NOTES section for PARAMETER properties and create a hash table. - ${Parameter}, - - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The geo-location where the resource lives - ${Location}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api10.ITrackedResourceTags]))] - [System.Collections.Hashtable] - # Resource tags. - ${Tag}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Update = 'Az.Functions.private\Set-AzUserAssignedIdentity_Update'; - UpdateExpanded = 'Az.Functions.private\Set-AzUserAssignedIdentity_UpdateExpanded'; - } - if (('Update', 'UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Replaces the application settings of an app. -.Description -Description for Replaces the application settings of an app. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -APPSETTING : String dictionary resource. - [Kind ]: Kind of resource. - [Property ]: Settings. - [(Any) ]: This indicates any property can be added to this object. -.Link -https://learn.microsoft.com/powershell/module/az.functions/set-azwebappapplicationsettingslot -#> -function Set-AzWebAppApplicationSettingSlot { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the deployment slot. - # If a slot is not specified, the API will update the application settings for the production slot. - ${Slot}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary] - # String dictionary resource. - # To construct, see NOTES section for APPSETTING properties and create a hash table. - ${AppSetting}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionaryProperties]))] - [System.Collections.Hashtable] - # Settings. - ${Property}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Update = 'Az.Functions.private\Set-AzWebAppApplicationSettingSlot_Update'; - UpdateExpanded = 'Az.Functions.private\Set-AzWebAppApplicationSettingSlot_UpdateExpanded'; - } - if (('Update', 'UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Replaces the application settings of an app. -.Description -Description for Replaces the application settings of an app. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -APPSETTING : String dictionary resource. - [Kind ]: Kind of resource. - [Property ]: Settings. - [(Any) ]: This indicates any property can be added to this object. -.Link -https://learn.microsoft.com/powershell/module/az.functions/set-azwebappapplicationsetting -#> -function Set-AzWebAppApplicationSetting { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary] - # String dictionary resource. - # To construct, see NOTES section for APPSETTING properties and create a hash table. - ${AppSetting}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionaryProperties]))] - [System.Collections.Hashtable] - # Settings. - ${Property}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Update = 'Az.Functions.private\Set-AzWebAppApplicationSetting_Update'; - UpdateExpanded = 'Az.Functions.private\Set-AzWebAppApplicationSetting_UpdateExpanded'; - } - if (('Update', 'UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Updates the configuration of an app. -.Description -Description for Updates the configuration of an app. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -APPSETTING : Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - -CONNECTIONSTRING : Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - -EXPERIMENTRAMPUPRULE : List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - -HANDLERMAPPING : Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - -IPSECURITYRESTRICTION : IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - -METADATA : Application metadata. This property cannot be retrieved, since it may contain secrets. - [Name ]: Pair name. - [Value ]: Pair value. - -SCMIPSECURITYRESTRICTION : IP security restrictions for scm. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - -SITECONFIG : Web app configuration ARM resource. - [Kind ]: Kind of resource. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - -TRIGGERSLOWREQUESTSWITHPATH : A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - -TRIGGERSTATUSCODE : A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - -TRIGGERSTATUSCODESRANGE : A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - -VIRTUALAPPLICATION : Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. -.Link -https://learn.microsoft.com/powershell/module/az.functions/set-azwebappconfigurationslot -#> -function Set-AzWebAppConfigurationSlot { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the deployment slot. - # If a slot is not specified, the API will update configuration for the production slot. - ${Slot}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource] - # Web app configuration ARM resource. - # To construct, see NOTES section for SITECONFIG properties and create a hash table. - ${SiteConfig}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Flag to use Managed Identity Creds for ACR pull - ${AcrUseManagedIdentityCred}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # If using user managed identity, the user managed identity ClientId - ${AcrUserManagedIdentityId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Minimum time the process must executebefore taking the action - ${ActionMinProcessExecutionTime}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AutoHealActionType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AutoHealActionType] - # Predefined action to be taken. - ${ActionType}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if Always On is enabled; otherwise, false. - ${AlwaysOn}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The URL of the API definition. - ${ApiDefinitionUrl}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # APIM-Api Identifier. - ${ApiManagementConfigId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # App command line to launch. - ${AppCommandLine}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.INameValuePair[]] - # Application settings. - # To construct, see NOTES section for APPSETTING properties and create a hash table. - ${AppSetting}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if Auto Heal is enabled; otherwise, false. - ${AutoHealEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Auto-swap slot name. - ${AutoSwapSlotName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigAzureStorageAccounts]))] - [System.Collections.Hashtable] - # List of Azure Storage Accounts. - ${AzureStorageAccount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IConnStringInfo[]] - # Connection strings. - # To construct, see NOTES section for CONNECTIONSTRING properties and create a hash table. - ${ConnectionString}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # Gets or sets the list of origins that should be allowed to make cross-origincalls (for example: http://example.com:12345). - # Use "*" to allow all. - ${CorAllowedOrigin}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets whether CORS requests with credentials are allowed. - # See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentialsfor more details. - ${CorSupportCredentials}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Executable to be run. - ${CustomActionExe}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Parameters for the executable. - ${CustomActionParameter}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # Default documents. - ${DefaultDocument}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if detailed error logging is enabled; otherwise, false. - ${DetailedErrorLoggingEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Document root. - ${DocumentRoot}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - ${DynamicTagsJson}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of workers that a site can scale out to.This setting only applies to apps in plans where ElasticScaleEnabled is true - ${ElasticWebAppScaleLimit}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IRampUpRule[]] - # List of ramp-up rules. - # To construct, see NOTES section for EXPERIMENTRAMPUPRULE properties and create a hash table. - ${ExperimentRampUpRule}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FtpsState])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FtpsState] - # State of FTP / FTPS service - ${FtpsState}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of workers that a site can scale out to.This setting only applies to the Consumption and Elastic Premium Plans - ${FunctionAppScaleLimit}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether functions runtime scale monitoring is enabled. - # When enabled,the ScaleController will not monitor event sources directly, but will instead call to theruntime to get scale status. - ${FunctionsRuntimeScaleMonitoringEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IHandlerMapping[]] - # Handler mappings. - # To construct, see NOTES section for HANDLERMAPPING properties and create a hash table. - ${HandlerMapping}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Health check path - ${HealthCheckPath}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Http20Enabled: configures a web site to allow clients to connect over http2.0 - ${Http20Enabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if HTTP logging is enabled; otherwise, false. - ${HttpLoggingEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IIPSecurityRestriction[]] - # IP security restrictions for main. - # To construct, see NOTES section for IPSECURITYRESTRICTION properties and create a hash table. - ${IPSecurityRestriction}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction] - # Default action for main access restriction if no rules are matched. - ${IPSecurityRestrictionsDefaultAction}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a flag indicating whether the Push endpoint is enabled. - ${IsPushEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java container. - ${JavaContainer}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java container version. - ${JavaContainerVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java version. - ${JavaVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Identity to use for Key Vault Reference authentication. - ${KeyVaultReferenceIdentity}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int64] - # Maximum allowed disk size usage in MB. - ${LimitMaxDiskSizeInMb}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int64] - # Maximum allowed memory usage in MB. - ${LimitMaxMemoryInMb}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Double] - # Maximum allowed CPU usage percentage. - ${LimitMaxPercentageCpu}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Linux App Framework and version - ${LinuxFxVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SiteLoadBalancing])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SiteLoadBalancing] - # Site load balancing. - ${LoadBalancing}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to enable local MySQL; otherwise, false. - ${LocalMySqlEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # HTTP logs directory size limit. - ${LogsDirectorySizeLimit}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedPipelineMode])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedPipelineMode] - # Managed pipeline mode. - ${ManagedPipelineMode}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Managed Service Identity Id - ${ManagedServiceIdentityId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.INameValuePair[]] - # Application metadata. - # This property cannot be retrieved, since it may contain secrets. - # To construct, see NOTES section for METADATA properties and create a hash table. - ${Metadata}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.TlsCipherSuites])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.TlsCipherSuites] - # The minimum strength TLS cipher suite allowed for an application - ${MinTlsCipherSuite}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions] - # MinTlsVersion: configures the minimum version of TLS required for SSL requests - ${MinTlsVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of minimum instance count for a siteThis setting only applies to the Elastic Plans - ${MinimumElasticInstanceCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # .NET Framework version. - ${NetFrameworkVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of Node.js. - ${NodeVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of workers. - ${NumberOfWorker}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of PHP. - ${PhpVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of PowerShell. - ${PowerShellVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of preWarmed instances.This setting only applies to the Consumption and Elastic Plans - ${PreWarmedInstanceCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Property to allow or block all public traffic. - ${PublicNetworkAccess}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Publishing user name. - ${PublishingUsername}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${PushKind}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of Python. - ${PythonVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if remote debugging is enabled; otherwise, false. - ${RemoteDebuggingEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Remote debugging version. - ${RemoteDebuggingVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Request Count. - ${RequestCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time interval. - ${RequestTimeInterval}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if request tracing is enabled; otherwise, false. - ${RequestTracingEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.DateTime] - # Request tracing expiration time. - ${RequestTracingExpirationTime}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IIPSecurityRestriction[]] - # IP security restrictions for scm. - # To construct, see NOTES section for SCMIPSECURITYRESTRICTION properties and create a hash table. - ${ScmIPSecurityRestriction}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction] - # Default action for scm access restriction if no rules are matched. - ${ScmIPSecurityRestrictionsDefaultAction}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # IP security restrictions for scm to use main. - ${ScmIPSecurityRestrictionsUseMain}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions] - # ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - ${ScmMinTlsVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ScmType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ScmType] - # SCM type. - ${ScmType}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Request Count. - ${SlowRequestCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Request Path. - ${SlowRequestPath}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time interval. - ${SlowRequestTimeInterval}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time taken. - ${SlowRequestTimeTaken}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - ${TagWhitelistJson}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint.Tags can consist of alphanumeric characters and the following:'_', '@', '#', '.', ':', '-'. - # Validation should be performed at the PushRequestHandler. - ${TagsRequiringAuth}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Tracing options. - ${TracingOption}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # A rule based on private bytes. - ${TriggerPrivateBytesInKb}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISlowRequestsBasedTrigger[]] - # A rule based on multiple Slow Requests Rule with path - # To construct, see NOTES section for TRIGGERSLOWREQUESTSWITHPATH properties and create a hash table. - ${TriggerSlowRequestsWithPath}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStatusCodesBasedTrigger[]] - # A rule based on status codes. - # To construct, see NOTES section for TRIGGERSTATUSCODE properties and create a hash table. - ${TriggerStatusCode}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStatusCodesRangeBasedTrigger[]] - # A rule based on status codes ranges. - # To construct, see NOTES section for TRIGGERSTATUSCODESRANGE properties and create a hash table. - ${TriggerStatusCodesRange}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to use 32-bit worker process; otherwise, false. - ${Use32BitWorkerProcess}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IVirtualApplication[]] - # Virtual applications. - # To construct, see NOTES section for VIRTUALAPPLICATION properties and create a hash table. - ${VirtualApplication}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Virtual Network name. - ${VnetName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # The number of private ports assigned to this app. - # These will be assigned dynamically on runtime. - ${VnetPrivatePortsCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Virtual Network Route All enabled. - # This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - ${VnetRouteAllEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if WebSocket is enabled; otherwise, false. - ${WebSocketsEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Sets the time zone a site uses for generating timestamps. - # Compatible with Linux and Windows App Service. - # Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. - # For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). - # For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - ${WebsiteTimeZone}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Xenon App Framework and version - ${WindowsFxVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Explicit Managed Service Identity Id - ${XManagedServiceIdentityId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Update = 'Az.Functions.private\Set-AzWebAppConfigurationSlot_Update'; - UpdateExpanded = 'Az.Functions.private\Set-AzWebAppConfigurationSlot_UpdateExpanded'; - } - if (('Update', 'UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Updates the configuration of an app. -.Description -Description for Updates the configuration of an app. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -APPSETTING : Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - -CONNECTIONSTRING : Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - -EXPERIMENTRAMPUPRULE : List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - -HANDLERMAPPING : Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - -IPSECURITYRESTRICTION : IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - -METADATA : Application metadata. This property cannot be retrieved, since it may contain secrets. - [Name ]: Pair name. - [Value ]: Pair value. - -SCMIPSECURITYRESTRICTION : IP security restrictions for scm. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - -SITECONFIG : Web app configuration ARM resource. - [Kind ]: Kind of resource. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - -TRIGGERSLOWREQUESTSWITHPATH : A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - -TRIGGERSTATUSCODE : A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - -TRIGGERSTATUSCODESRANGE : A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - -VIRTUALAPPLICATION : Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. -.Link -https://learn.microsoft.com/powershell/module/az.functions/set-azwebappconfiguration -#> -function Set-AzWebAppConfiguration { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource] - # Web app configuration ARM resource. - # To construct, see NOTES section for SITECONFIG properties and create a hash table. - ${SiteConfig}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Flag to use Managed Identity Creds for ACR pull - ${AcrUseManagedIdentityCred}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # If using user managed identity, the user managed identity ClientId - ${AcrUserManagedIdentityId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Minimum time the process must executebefore taking the action - ${ActionMinProcessExecutionTime}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AutoHealActionType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AutoHealActionType] - # Predefined action to be taken. - ${ActionType}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if Always On is enabled; otherwise, false. - ${AlwaysOn}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The URL of the API definition. - ${ApiDefinitionUrl}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # APIM-Api Identifier. - ${ApiManagementConfigId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # App command line to launch. - ${AppCommandLine}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.INameValuePair[]] - # Application settings. - # To construct, see NOTES section for APPSETTING properties and create a hash table. - ${AppSetting}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if Auto Heal is enabled; otherwise, false. - ${AutoHealEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Auto-swap slot name. - ${AutoSwapSlotName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigAzureStorageAccounts]))] - [System.Collections.Hashtable] - # List of Azure Storage Accounts. - ${AzureStorageAccount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IConnStringInfo[]] - # Connection strings. - # To construct, see NOTES section for CONNECTIONSTRING properties and create a hash table. - ${ConnectionString}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # Gets or sets the list of origins that should be allowed to make cross-origincalls (for example: http://example.com:12345). - # Use "*" to allow all. - ${CorAllowedOrigin}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets whether CORS requests with credentials are allowed. - # See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentialsfor more details. - ${CorSupportCredentials}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Executable to be run. - ${CustomActionExe}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Parameters for the executable. - ${CustomActionParameter}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # Default documents. - ${DefaultDocument}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if detailed error logging is enabled; otherwise, false. - ${DetailedErrorLoggingEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Document root. - ${DocumentRoot}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - ${DynamicTagsJson}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of workers that a site can scale out to.This setting only applies to apps in plans where ElasticScaleEnabled is true - ${ElasticWebAppScaleLimit}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IRampUpRule[]] - # List of ramp-up rules. - # To construct, see NOTES section for EXPERIMENTRAMPUPRULE properties and create a hash table. - ${ExperimentRampUpRule}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FtpsState])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FtpsState] - # State of FTP / FTPS service - ${FtpsState}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of workers that a site can scale out to.This setting only applies to the Consumption and Elastic Premium Plans - ${FunctionAppScaleLimit}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether functions runtime scale monitoring is enabled. - # When enabled,the ScaleController will not monitor event sources directly, but will instead call to theruntime to get scale status. - ${FunctionsRuntimeScaleMonitoringEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IHandlerMapping[]] - # Handler mappings. - # To construct, see NOTES section for HANDLERMAPPING properties and create a hash table. - ${HandlerMapping}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Health check path - ${HealthCheckPath}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Http20Enabled: configures a web site to allow clients to connect over http2.0 - ${Http20Enabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if HTTP logging is enabled; otherwise, false. - ${HttpLoggingEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IIPSecurityRestriction[]] - # IP security restrictions for main. - # To construct, see NOTES section for IPSECURITYRESTRICTION properties and create a hash table. - ${IPSecurityRestriction}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction] - # Default action for main access restriction if no rules are matched. - ${IPSecurityRestrictionsDefaultAction}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a flag indicating whether the Push endpoint is enabled. - ${IsPushEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java container. - ${JavaContainer}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java container version. - ${JavaContainerVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java version. - ${JavaVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Identity to use for Key Vault Reference authentication. - ${KeyVaultReferenceIdentity}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int64] - # Maximum allowed disk size usage in MB. - ${LimitMaxDiskSizeInMb}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int64] - # Maximum allowed memory usage in MB. - ${LimitMaxMemoryInMb}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Double] - # Maximum allowed CPU usage percentage. - ${LimitMaxPercentageCpu}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Linux App Framework and version - ${LinuxFxVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SiteLoadBalancing])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SiteLoadBalancing] - # Site load balancing. - ${LoadBalancing}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to enable local MySQL; otherwise, false. - ${LocalMySqlEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # HTTP logs directory size limit. - ${LogsDirectorySizeLimit}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedPipelineMode])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedPipelineMode] - # Managed pipeline mode. - ${ManagedPipelineMode}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Managed Service Identity Id - ${ManagedServiceIdentityId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.INameValuePair[]] - # Application metadata. - # This property cannot be retrieved, since it may contain secrets. - # To construct, see NOTES section for METADATA properties and create a hash table. - ${Metadata}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.TlsCipherSuites])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.TlsCipherSuites] - # The minimum strength TLS cipher suite allowed for an application - ${MinTlsCipherSuite}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions] - # MinTlsVersion: configures the minimum version of TLS required for SSL requests - ${MinTlsVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of minimum instance count for a siteThis setting only applies to the Elastic Plans - ${MinimumElasticInstanceCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # .NET Framework version. - ${NetFrameworkVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of Node.js. - ${NodeVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of workers. - ${NumberOfWorker}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of PHP. - ${PhpVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of PowerShell. - ${PowerShellVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of preWarmed instances.This setting only applies to the Consumption and Elastic Plans - ${PreWarmedInstanceCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Property to allow or block all public traffic. - ${PublicNetworkAccess}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Publishing user name. - ${PublishingUsername}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${PushKind}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of Python. - ${PythonVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if remote debugging is enabled; otherwise, false. - ${RemoteDebuggingEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Remote debugging version. - ${RemoteDebuggingVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Request Count. - ${RequestCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time interval. - ${RequestTimeInterval}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if request tracing is enabled; otherwise, false. - ${RequestTracingEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.DateTime] - # Request tracing expiration time. - ${RequestTracingExpirationTime}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IIPSecurityRestriction[]] - # IP security restrictions for scm. - # To construct, see NOTES section for SCMIPSECURITYRESTRICTION properties and create a hash table. - ${ScmIPSecurityRestriction}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction] - # Default action for scm access restriction if no rules are matched. - ${ScmIPSecurityRestrictionsDefaultAction}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # IP security restrictions for scm to use main. - ${ScmIPSecurityRestrictionsUseMain}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions] - # ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - ${ScmMinTlsVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ScmType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ScmType] - # SCM type. - ${ScmType}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Request Count. - ${SlowRequestCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Request Path. - ${SlowRequestPath}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time interval. - ${SlowRequestTimeInterval}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time taken. - ${SlowRequestTimeTaken}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - ${TagWhitelistJson}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint.Tags can consist of alphanumeric characters and the following:'_', '@', '#', '.', ':', '-'. - # Validation should be performed at the PushRequestHandler. - ${TagsRequiringAuth}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Tracing options. - ${TracingOption}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # A rule based on private bytes. - ${TriggerPrivateBytesInKb}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISlowRequestsBasedTrigger[]] - # A rule based on multiple Slow Requests Rule with path - # To construct, see NOTES section for TRIGGERSLOWREQUESTSWITHPATH properties and create a hash table. - ${TriggerSlowRequestsWithPath}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStatusCodesBasedTrigger[]] - # A rule based on status codes. - # To construct, see NOTES section for TRIGGERSTATUSCODE properties and create a hash table. - ${TriggerStatusCode}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStatusCodesRangeBasedTrigger[]] - # A rule based on status codes ranges. - # To construct, see NOTES section for TRIGGERSTATUSCODESRANGE properties and create a hash table. - ${TriggerStatusCodesRange}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to use 32-bit worker process; otherwise, false. - ${Use32BitWorkerProcess}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IVirtualApplication[]] - # Virtual applications. - # To construct, see NOTES section for VIRTUALAPPLICATION properties and create a hash table. - ${VirtualApplication}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Virtual Network name. - ${VnetName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # The number of private ports assigned to this app. - # These will be assigned dynamically on runtime. - ${VnetPrivatePortsCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Virtual Network Route All enabled. - # This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - ${VnetRouteAllEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if WebSocket is enabled; otherwise, false. - ${WebSocketsEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Sets the time zone a site uses for generating timestamps. - # Compatible with Linux and Windows App Service. - # Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. - # For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). - # For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - ${WebsiteTimeZone}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Xenon App Framework and version - ${WindowsFxVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Explicit Managed Service Identity Id - ${XManagedServiceIdentityId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Update = 'Az.Functions.private\Set-AzWebAppConfiguration_Update'; - UpdateExpanded = 'Az.Functions.private\Set-AzWebAppConfiguration_UpdateExpanded'; - } - if (('Update', 'UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Updates whether user publishing credentials are allowed on the site or not. -.Description -Description for Updates whether user publishing credentials are allowed on the site or not. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmPublishingCredentialsPoliciesEntity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmPublishingCredentialsPoliciesEntity -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -CSMPUBLISHINGACCESSPOLICIESENTITY : Publishing Credentials Policies parameters. - [Kind ]: Kind of resource. - [Allow ]: true to allow access to a publishing method; otherwise, false. -.Link -https://learn.microsoft.com/powershell/module/az.functions/set-azwebappscmallowedslot -#> -function Set-AzWebAppScmAllowedSlot { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmPublishingCredentialsPoliciesEntity])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # . - ${Slot}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmPublishingCredentialsPoliciesEntity] - # Publishing Credentials Policies parameters. - # To construct, see NOTES section for CSMPUBLISHINGACCESSPOLICIESENTITY properties and create a hash table. - ${CsmPublishingAccessPoliciesEntity}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to allow access to a publishing method; otherwise, false. - ${Allow}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Update = 'Az.Functions.private\Set-AzWebAppScmAllowedSlot_Update'; - UpdateExpanded = 'Az.Functions.private\Set-AzWebAppScmAllowedSlot_UpdateExpanded'; - } - if (('Update', 'UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Updates whether user publishing credentials are allowed on the site or not. -.Description -Description for Updates whether user publishing credentials are allowed on the site or not. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmPublishingCredentialsPoliciesEntity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmPublishingCredentialsPoliciesEntity -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -CSMPUBLISHINGACCESSPOLICIESENTITY : Publishing Credentials Policies parameters. - [Kind ]: Kind of resource. - [Allow ]: true to allow access to a publishing method; otherwise, false. -.Link -https://learn.microsoft.com/powershell/module/az.functions/set-azwebappscmallowed -#> -function Set-AzWebAppScmAllowed { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmPublishingCredentialsPoliciesEntity])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmPublishingCredentialsPoliciesEntity] - # Publishing Credentials Policies parameters. - # To construct, see NOTES section for CSMPUBLISHINGACCESSPOLICIESENTITY properties and create a hash table. - ${CsmPublishingAccessPoliciesEntity}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to allow access to a publishing method; otherwise, false. - ${Allow}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Update = 'Az.Functions.private\Set-AzWebAppScmAllowed_Update'; - UpdateExpanded = 'Az.Functions.private\Set-AzWebAppScmAllowed_UpdateExpanded'; - } - if (('Update', 'UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Starts an app (or deployment slot, if specified). -.Description -Description for Starts an app (or deployment slot, if specified). -.Example -Get-AzFunctionApp -Name MyAppName -ResourceGroupName MyResourceGroupName | Start-AzFunctionApp -.Example -Start-AzFunctionApp -Name MyAppName -ResourceGroupName MyResourceGroupName - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/start-azfunctionapp -#> -function Start-AzFunctionApp { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Start', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Start', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Start', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Start')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='StartViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Start = 'Az.Functions.private\Start-AzFunctionApp_Start'; - StartViaIdentity = 'Az.Functions.private\Start-AzFunctionApp_StartViaIdentity'; - } - if (('Start') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Stops an app (or deployment slot, if specified). -.Description -Description for Stops an app (or deployment slot, if specified). -.Example -Get-AzFunctionApp -Name MyAppName -ResourceGroupName MyResourceGroupName | Stop-AzFunctionApp -Force -.Example -Stop-AzFunctionApp -Name MyAppName -ResourceGroupName MyResourceGroupName -Force - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/stop-azfunctionapp -#> -function Stop-AzFunctionApp { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Stop', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Stop', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Stop', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Stop')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='StopViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Stop = 'Az.Functions.private\Stop-AzFunctionApp_Stop'; - StopViaIdentity = 'Az.Functions.private\Stop-AzFunctionApp_StopViaIdentity'; - } - if (('Stop') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Syncs function trigger metadata to the management database -.Description -Description for Syncs function trigger metadata to the management database -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/sync-azfunction -#> -function Sync-AzFunction { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Sync', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Sync', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${FunctionAppName}, - - [Parameter(ParameterSetName='Sync', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Sync')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='SyncViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Sync = 'Az.Functions.private\Sync-AzFunction_Sync'; - SyncViaIdentity = 'Az.Functions.private\Sync-AzFunction_SyncViaIdentity'; - } - if (('Sync') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Syncs function trigger metadata to the management database -.Description -Description for Syncs function trigger metadata to the management database -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/sync-azwebappfunctionslot -#> -function Sync-AzWebAppFunctionSlot { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Sync', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Sync', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Sync', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Sync', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the deployment slot. - ${Slot}, - - [Parameter(ParameterSetName='Sync')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='SyncViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Sync = 'Az.Functions.private\Sync-AzWebAppFunctionSlot_Sync'; - SyncViaIdentity = 'Az.Functions.private\Sync-AzWebAppFunctionSlot_SyncViaIdentity'; - } - if (('Sync') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Check if a resource name is available. -.Description -Description for Check if a resource name is available. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IResourceNameAvailabilityRequest -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IResourceNameAvailability -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. - -REQUEST : Resource name availability request content. - Name : Resource name to verify. - Type : Resource type used for verification. - [EnvironmentId ]: Azure Resource Manager ID of the customer's selected Container Apps Environment on which to host the Function app. This must be of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.App/managedEnvironments/{managedEnvironmentName} - [IsFqdn ]: Is fully qualified domain name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/test-aznameavailability -#> -function Test-AzNameAvailability { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IResourceNameAvailability])] -[CmdletBinding(DefaultParameterSetName='CheckExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Check')] - [Parameter(ParameterSetName='CheckExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Check', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IResourceNameAvailabilityRequest] - # Resource name availability request content. - # To construct, see NOTES section for REQUEST properties and create a hash table. - ${Request}, - - [Parameter(ParameterSetName='CheckExpanded', Mandatory)] - [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource name to verify. - ${Name}, - - [Parameter(ParameterSetName='CheckExpanded', Mandatory)] - [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory)] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.CheckNameResourceTypes])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.CheckNameResourceTypes] - # Resource type used for verification. - ${Type}, - - [Parameter(ParameterSetName='CheckExpanded')] - [Parameter(ParameterSetName='CheckViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Azure Resource Manager ID of the customer's selected Container Apps Environment on which to host the Function app. - # This must be of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.App/managedEnvironments/{managedEnvironmentName} - ${EnvironmentId}, - - [Parameter(ParameterSetName='CheckExpanded')] - [Parameter(ParameterSetName='CheckViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Is fully qualified domain name. - ${IsFqdn}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Check = 'Az.Functions.private\Test-AzNameAvailability_Check'; - CheckExpanded = 'Az.Functions.private\Test-AzNameAvailability_CheckExpanded'; - CheckViaIdentity = 'Az.Functions.private\Test-AzNameAvailability_CheckViaIdentity'; - CheckViaIdentityExpanded = 'Az.Functions.private\Test-AzNameAvailability_CheckViaIdentityExpanded'; - } - if (('Check', 'CheckExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Validate if a resource can be created. -.Description -Description for Validate if a resource can be created. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IValidateRequest -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IValidateResponse -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -APPSERVICEENVIRONMENT : App Service Environment Properties - VirtualNetworkId : Resource id of the Virtual Network. - [AllowNewPrivateEndpointConnection ]: Property to enable and disable new private endpoint connection creation on ASE - [CertificateUrl ]: The URL referencing the Azure Key Vault certificate secret that should be used as the default SSL/TLS certificate for sites with the custom domain suffix. - [ClusterSetting ]: Custom settings for changing the behavior of the App Service Environment. - [Name ]: Pair name. - [Value ]: Pair value. - [CustomDnsSuffixConfigurationKind ]: Kind of resource. - [CustomDnsSuffixConfigurationPropertiesDnsSuffix ]: The default custom domain suffix to use for all sites deployed on the ASE. - [DedicatedHostCount ]: Dedicated Host Count - [DnsSuffix ]: DNS suffix of the App Service Environment. - [FrontEndScaleFactor ]: Scale factor for front-ends. - [FtpEnabled ]: Property to enable and disable FTP on ASEV3 - [InboundIPAddressOverride ]: Customer provided Inbound IP Address. Only able to be set on Ase create. - [InternalLoadBalancingMode ]: Specifies which endpoints to serve internally in the Virtual Network for the App Service Environment. - [IpsslAddressCount ]: Number of IP SSL addresses reserved for the App Service Environment. - [KeyVaultReferenceIdentity ]: The user-assigned identity to use for resolving the key vault certificate reference. If not specified, the system-assigned ASE identity will be used if available. - [MultiSize ]: Front-end VM size, e.g. "Medium", "Large". - [NetworkingConfigurationKind ]: Kind of resource. - [RemoteDebugEnabled ]: Property to enable and disable Remote Debug on ASEV3 - [UpgradePreference ]: Upgrade Preference - [UserWhitelistedIPRange ]: User added ip ranges to whitelist on ASE db - [VirtualNetworkSubnet ]: Subnet within the Virtual Network. - [ZoneRedundant ]: Whether or not this App Service Environment is zone-redundant. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. - -VALIDATEREQUEST : Resource validation request content. - Location : Expected location of the resource. - Name : Resource name to verify. - Type : Resource type used for verification. - [AppServiceEnvironment ]: App Service Environment Properties - VirtualNetworkId : Resource id of the Virtual Network. - [AllowNewPrivateEndpointConnection ]: Property to enable and disable new private endpoint connection creation on ASE - [CertificateUrl ]: The URL referencing the Azure Key Vault certificate secret that should be used as the default SSL/TLS certificate for sites with the custom domain suffix. - [ClusterSetting ]: Custom settings for changing the behavior of the App Service Environment. - [Name ]: Pair name. - [Value ]: Pair value. - [CustomDnsSuffixConfigurationKind ]: Kind of resource. - [CustomDnsSuffixConfigurationPropertiesDnsSuffix ]: The default custom domain suffix to use for all sites deployed on the ASE. - [DedicatedHostCount ]: Dedicated Host Count - [DnsSuffix ]: DNS suffix of the App Service Environment. - [FrontEndScaleFactor ]: Scale factor for front-ends. - [FtpEnabled ]: Property to enable and disable FTP on ASEV3 - [InboundIPAddressOverride ]: Customer provided Inbound IP Address. Only able to be set on Ase create. - [InternalLoadBalancingMode ]: Specifies which endpoints to serve internally in the Virtual Network for the App Service Environment. - [IpsslAddressCount ]: Number of IP SSL addresses reserved for the App Service Environment. - [KeyVaultReferenceIdentity ]: The user-assigned identity to use for resolving the key vault certificate reference. If not specified, the system-assigned ASE identity will be used if available. - [MultiSize ]: Front-end VM size, e.g. "Medium", "Large". - [NetworkingConfigurationKind ]: Kind of resource. - [RemoteDebugEnabled ]: Property to enable and disable Remote Debug on ASEV3 - [UpgradePreference ]: Upgrade Preference - [UserWhitelistedIPRange ]: User added ip ranges to whitelist on ASE db - [VirtualNetworkSubnet ]: Subnet within the Virtual Network. - [ZoneRedundant ]: Whether or not this App Service Environment is zone-redundant. - [Capacity ]: Target capacity of the App Service plan (number of VMs). - [ContainerImagePlatform ]: Platform (windows or linux) - [ContainerImageRepository ]: Repository name (image name) - [ContainerImageTag ]: Image tag - [ContainerRegistryBaseUrl ]: Base URL of the container registry - [ContainerRegistryPassword ]: Password for to access the container registry - [ContainerRegistryUsername ]: Username for to access the container registry - [HostingEnvironment ]: Name of App Service Environment where app or App Service plan should be created. - [IsSpot ]: true if App Service plan is for Spot instances; otherwise, false. - [IsXenon ]: true if App Service plan is running as a windows container - [NeedLinuxWorker ]: true if App Service plan is for Linux workers; otherwise, false. - [ServerFarmId ]: ARM resource ID of an App Service plan that would host the app. - [SkuName ]: Name of the target SKU for the App Service plan. -.Link -https://learn.microsoft.com/powershell/module/az.functions/test-az -#> -function Test-Az { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IValidateResponse])] -[CmdletBinding(DefaultParameterSetName='ValidateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Validate', Mandatory)] - [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Validate')] - [Parameter(ParameterSetName='ValidateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='ValidateViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Validate', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='ValidateViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IValidateRequest] - # Resource validation request content. - # To construct, see NOTES section for VALIDATEREQUEST properties and create a hash table. - ${ValidateRequest}, - - [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Expected location of the resource. - ${Location}, - - [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource name to verify. - ${Name}, - - [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded', Mandatory)] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ValidateResourceTypes])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ValidateResourceTypes] - # Resource type used for verification. - ${Type}, - - [Parameter(ParameterSetName='ValidateExpanded')] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServiceEnvironment] - # App Service Environment Properties - # To construct, see NOTES section for APPSERVICEENVIRONMENT properties and create a hash table. - ${AppServiceEnvironment}, - - [Parameter(ParameterSetName='ValidateExpanded')] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Target capacity of the App Service plan (number of VMs). - ${Capacity}, - - [Parameter(ParameterSetName='ValidateExpanded')] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Platform (windows or linux) - ${ContainerImagePlatform}, - - [Parameter(ParameterSetName='ValidateExpanded')] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Repository name (image name) - ${ContainerImageRepository}, - - [Parameter(ParameterSetName='ValidateExpanded')] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Image tag - ${ContainerImageTag}, - - [Parameter(ParameterSetName='ValidateExpanded')] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Base URL of the container registry - ${ContainerRegistryBaseUrl}, - - [Parameter(ParameterSetName='ValidateExpanded')] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Password for to access the container registry - ${ContainerRegistryPassword}, - - [Parameter(ParameterSetName='ValidateExpanded')] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Username for to access the container registry - ${ContainerRegistryUsername}, - - [Parameter(ParameterSetName='ValidateExpanded')] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Name of App Service Environment where app or App Service plan should be created. - ${HostingEnvironment}, - - [Parameter(ParameterSetName='ValidateExpanded')] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if App Service plan is for Spot instances; otherwise, false. - ${IsSpot}, - - [Parameter(ParameterSetName='ValidateExpanded')] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if App Service plan is running as a windows container - ${IsXenon}, - - [Parameter(ParameterSetName='ValidateExpanded')] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if App Service plan is for Linux workers; otherwise, false. - ${NeedLinuxWorker}, - - [Parameter(ParameterSetName='ValidateExpanded')] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # ARM resource ID of an App Service plan that would host the app. - ${ServerFarmId}, - - [Parameter(ParameterSetName='ValidateExpanded')] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Name of the target SKU for the App Service plan. - ${SkuName}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Validate = 'Az.Functions.private\Test-Az_Validate'; - ValidateExpanded = 'Az.Functions.private\Test-Az_ValidateExpanded'; - ValidateViaIdentity = 'Az.Functions.private\Test-Az_ValidateViaIdentity'; - ValidateViaIdentityExpanded = 'Az.Functions.private\Test-Az_ValidateViaIdentityExpanded'; - } - if (('Validate', 'ValidateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Creates or updates an App Service Plan. -.Description -Description for Creates or updates an App Service Plan. -.Example -Update-AzFunctionAppPlan -ResourceGroupName MyResourceGroupName ` - -Name MyPremiumPlan ` - -MaximumWorkerCount 20 ` - -Sku EP2 ` - -Force - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlanPatchResource -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -APPSERVICEPLAN : ARM resource for a app service plan. - [Kind ]: Kind of resource. - [ElasticScaleEnabled ]: ServerFarm supports ElasticScale. Apps in this plan will scale as if the ServerFarm was ElasticPremium sku - [FreeOfferExpirationTime ]: The time when the server farm free offer expires. - [HostingEnvironmentProfileId ]: Resource ID of the App Service Environment. - [HyperV ]: If Hyper-V container app service plan true, false otherwise. - [IsSpot ]: If true, this App Service Plan owns spot instances. - [IsXenon ]: Obsolete: If Hyper-V container app service plan true, false otherwise. - [KubeEnvironmentProfileId ]: Resource ID of the Kubernetes Environment. - [MaximumElasticWorkerCount ]: Maximum number of total workers allowed for this ElasticScaleEnabled App Service Plan - [PerSiteScaling ]: If true, apps assigned to this App Service plan can be scaled independently. If false, apps assigned to this App Service plan will scale to all instances of the plan. - [Reserved ]: If Linux app service plan true, false otherwise. - [SpotExpirationTime ]: The time when the server farm expires. Valid only if it is a spot server farm. - [TargetWorkerCount ]: Scaling worker count. - [TargetWorkerSizeId ]: Scaling worker size ID. - [WorkerTierName ]: Target worker tier assigned to the App Service plan. - [ZoneRedundant ]: If true, this App Service Plan will perform availability zone balancing. If false, this App Service Plan will not perform availability zone balancing. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/update-azfunctionappplan -#> -function Update-AzFunctionAppPlan { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the App Service plan. - ${Name}, - - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Update')] - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlanPatchResource] - # ARM resource for a app service plan. - # To construct, see NOTES section for APPSERVICEPLAN properties and create a hash table. - ${AppServicePlan}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # ServerFarm supports ElasticScale. - # Apps in this plan will scale as if the ServerFarm was ElasticPremium sku - ${ElasticScaleEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.DateTime] - # The time when the server farm free offer expires. - ${FreeOfferExpirationTime}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource ID of the App Service Environment. - ${HostingEnvironmentProfileId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # If Hyper-V container app service plan true, false otherwise. - ${HyperV}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # If true, this App Service Plan owns spot instances. - ${IsSpot}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Obsolete: If Hyper-V container app service plan true, false otherwise. - ${IsXenon}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource ID of the Kubernetes Environment. - ${KubeEnvironmentProfileId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of total workers allowed for this ElasticScaleEnabled App Service Plan - ${MaximumElasticWorkerCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # If true, apps assigned to this App Service plan can be scaled independently.If false, apps assigned to this App Service plan will scale to all instances of the plan. - ${PerSiteScaling}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # If Linux app service plan true, false otherwise. - ${Reserved}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.DateTime] - # The time when the server farm expires. - # Valid only if it is a spot server farm. - ${SpotExpirationTime}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Scaling worker count. - ${TargetWorkerCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Scaling worker size ID. - ${TargetWorkerSizeId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Target worker tier assigned to the App Service plan. - ${WorkerTierName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # If true, this App Service Plan will perform availability zone balancing.If false, this App Service Plan will not perform availability zone balancing. - ${ZoneRedundant}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Update = 'Az.Functions.private\Update-AzFunctionAppPlan_Update'; - UpdateExpanded = 'Az.Functions.private\Update-AzFunctionAppPlan_UpdateExpanded'; - UpdateViaIdentity = 'Az.Functions.private\Update-AzFunctionAppPlan_UpdateViaIdentity'; - UpdateViaIdentityExpanded = 'Az.Functions.private\Update-AzFunctionAppPlan_UpdateViaIdentityExpanded'; - } - if (('Update', 'UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Creates a new web, mobile, or API app in an existing resource group, or updates an existing app. -.Description -Description for Creates a new web, mobile, or API app in an existing resource group, or updates an existing app. -.Example -Update-AzFunctionApp -Name MyUniqueFunctionAppName -ResourceGroupName MyResourceGroupName -PlanName NewPlanName -Force -.Example -Update-AzFunctionApp -Name MyUniqueFunctionAppName -ResourceGroupName MyResourceGroupName -IdentityType SystemAssigned -Force -.Example -Update-AzFunctionApp -Name MyUniqueFunctionAppName -ResourceGroupName MyResourceGroupName -ApplicationInsightsName ApplicationInsightsProjectName -Force -.Example -Update-AzFunctionApp -Name MyUniqueFunctionAppName -ResourceGroupName MyResourceGroupName -IdentityType None -Force - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISitePatchResource -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -HOSTNAMESSLSTATE : Hostname SSL states are used to manage the SSL bindings for app's hostnames. - [HostType ]: Indicates whether the hostname is a standard or repository hostname. - [Name ]: Hostname. - [SslState ]: SSL type. - [Thumbprint ]: SSL certificate thumbprint. - [ToUpdate ]: Set to true to update existing hostname. - [VirtualIP ]: Virtual IP address assigned to the hostname if IP based SSL is enabled. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. - -SITECONFIG : Configuration of the app. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - -SITEENVELOPE : ARM resource for a site. - [Kind ]: Kind of resource. - [ClientAffinityEnabled ]: true to enable client affinity; false to stop sending session affinity cookies, which route client requests in the same session to the same instance. Default is true. - [ClientCertEnabled ]: true to enable client certificate authentication (TLS mutual authentication); otherwise, false. Default is false. - [ClientCertExclusionPath ]: client certificate authentication comma-separated exclusion paths - [ClientCertMode ]: This composes with ClientCertEnabled setting. - ClientCertEnabled: false means ClientCert is ignored. - ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required. - ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted. - [CloningInfoAppSettingsOverride ]: Application setting overrides for cloned app. If specified, these settings override the settings cloned from source app. Otherwise, application settings from source app are retained. - [(Any) ]: This indicates any property can be added to this object. - [CloningInfoCloneCustomHostName ]: true to clone custom hostnames from source app; otherwise, false. - [CloningInfoCloneSourceControl ]: true to clone source control from source app; otherwise, false. - [CloningInfoConfigureLoadBalancing ]: true to configure load balancing for source and destination app. - [CloningInfoCorrelationId ]: Correlation ID of cloning operation. This ID ties multiple cloning operations together to use the same snapshot. - [CloningInfoHostingEnvironment ]: App Service Environment. - [CloningInfoOverwrite ]: true to overwrite destination app; otherwise, false. - [CloningInfoSourceWebAppId ]: ARM resource ID of the source app. App resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots. - [CloningInfoSourceWebAppLocation ]: Location of source app ex: West US or North Europe - [CloningInfoTrafficManagerProfileId ]: ARM resource ID of the Traffic Manager profile to use, if it exists. Traffic Manager resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}. - [CloningInfoTrafficManagerProfileName ]: Name of Traffic Manager profile to create. This is only needed if Traffic Manager profile does not already exist. - [ContainerSize ]: Size of the function container. - [CustomDomainVerificationId ]: Unique identifier that verifies the custom domains assigned to the app. Customer will add this id to a txt record for verification. - [DailyMemoryTimeQuota ]: Maximum allowed daily memory-time quota (applicable on dynamic apps only). - [DnsConfigurationDnsAltServer ]: Alternate DNS server to be used by apps. This property replicates the WEBSITE_DNS_ALT_SERVER app setting. - [DnsConfigurationDnsMaxCacheTimeout ]: Custom time for DNS to be cached in seconds. Allowed range: 0-60. Default is 30 seconds. 0 means caching disabled. - [DnsConfigurationDnsRetryAttemptCount ]: Total number of retries for dns lookup. Allowed range: 1-5. Default is 3. - [DnsConfigurationDnsRetryAttemptTimeout ]: Timeout for a single dns lookup in seconds. Allowed range: 1-30. Default is 3. - [DnsConfigurationDnsServer ]: List of custom DNS servers to be used by an app for lookups. Maximum 5 dns servers can be set. - [Enabled ]: true if the app is enabled; otherwise, false. Setting this value to false disables the app (takes the app offline). - [HostNameSslState ]: Hostname SSL states are used to manage the SSL bindings for app's hostnames. - [HostType ]: Indicates whether the hostname is a standard or repository hostname. - [Name ]: Hostname. - [SslState ]: SSL type. - [Thumbprint ]: SSL certificate thumbprint. - [ToUpdate ]: Set to true to update existing hostname. - [VirtualIP ]: Virtual IP address assigned to the hostname if IP based SSL is enabled. - [HostNamesDisabled ]: true to disable the public hostnames of the app; otherwise, false. If true, the app is only accessible via API management process. - [HostingEnvironmentProfileId ]: Resource ID of the App Service Environment. - [HttpsOnly ]: HttpsOnly: configures a web site to accept only https requests. Issues redirect for http requests - [HyperV ]: Hyper-V sandbox. - [IdentityType ]: Type of managed service identity. - [IdentityUserAssignedIdentity ]: The list of user assigned identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} - [(Any) ]: This indicates any property can be added to this object. - [IsXenon ]: Obsolete: Hyper-V sandbox. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [RedundancyMode ]: Site redundancy mode - [Reserved ]: true if reserved; otherwise, false. - [ScmSiteAlsoStopped ]: true to stop SCM (KUDU) site when the app is stopped; otherwise, false. The default is false. - [ServerFarmId ]: Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". - [SiteConfig ]: Configuration of the app. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - [StorageAccountRequired ]: Checks if Customer provided storage account is required - [VirtualNetworkSubnetId ]: Azure Resource Manager ID of the Virtual network and subnet to be joined by Regional VNET Integration. This must be of the form /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName} -.Link -https://learn.microsoft.com/powershell/module/az.functions/update-azfunctionapp -#> -function Update-AzFunctionApp { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Unique name of the app to create or update. - # To create or update a deployment slot, use the {slot} parameter. - ${Name}, - - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Update')] - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISitePatchResource] - # ARM resource for a site. - # To construct, see NOTES section for SITEENVELOPE properties and create a hash table. - ${SiteEnvelope}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to enable client affinity; false to stop sending session affinity cookies, which route client requests in the same session to the same instance. - # Default is true. - ${ClientAffinityEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to enable client certificate authentication (TLS mutual authentication); otherwise, false. - # Default is false. - ${ClientCertEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # client certificate authentication comma-separated exclusion paths - ${ClientCertExclusionPath}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ClientCertMode])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ClientCertMode] - # This composes with ClientCertEnabled setting.- ClientCertEnabled: false means ClientCert is ignored.- ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required.- ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted. - ${ClientCertMode}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICloningInfoAppSettingsOverrides]))] - [System.Collections.Hashtable] - # Application setting overrides for cloned app. - # If specified, these settings override the settings cloned from source app. - # Otherwise, application settings from source app are retained. - ${CloningInfoAppSettingsOverride}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to clone custom hostnames from source app; otherwise, false. - ${CloningInfoCloneCustomHostName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to clone source control from source app; otherwise, false. - ${CloningInfoCloneSourceControl}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to configure load balancing for source and destination app. - ${CloningInfoConfigureLoadBalancing}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Correlation ID of cloning operation. - # This ID ties multiple cloning operationstogether to use the same snapshot. - ${CloningInfoCorrelationId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # App Service Environment. - ${CloningInfoHostingEnvironment}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to overwrite destination app; otherwise, false. - ${CloningInfoOverwrite}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # ARM resource ID of the source app. - # App resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots. - ${CloningInfoSourceWebAppId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Location of source app ex: West US or North Europe - ${CloningInfoSourceWebAppLocation}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # ARM resource ID of the Traffic Manager profile to use, if it exists. - # Traffic Manager resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}. - ${CloningInfoTrafficManagerProfileId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Name of Traffic Manager profile to create. - # This is only needed if Traffic Manager profile does not already exist. - ${CloningInfoTrafficManagerProfileName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Size of the function container. - ${ContainerSize}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Unique identifier that verifies the custom domains assigned to the app. - # Customer will add this id to a txt record for verification. - ${CustomDomainVerificationId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum allowed daily memory-time quota (applicable on dynamic apps only). - ${DailyMemoryTimeQuota}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Alternate DNS server to be used by apps. - # This property replicates the WEBSITE_DNS_ALT_SERVER app setting. - ${DnsConfigurationDnsAltServer}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Custom time for DNS to be cached in seconds. - # Allowed range: 0-60. - # Default is 30 seconds. - # 0 means caching disabled. - ${DnsConfigurationDnsMaxCacheTimeout}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Total number of retries for dns lookup. - # Allowed range: 1-5. - # Default is 3. - ${DnsConfigurationDnsRetryAttemptCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Timeout for a single dns lookup in seconds. - # Allowed range: 1-30. - # Default is 3. - ${DnsConfigurationDnsRetryAttemptTimeout}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # List of custom DNS servers to be used by an app for lookups. - # Maximum 5 dns servers can be set. - ${DnsConfigurationDnsServer}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if the app is enabled; otherwise, false. - # Setting this value to false disables the app (takes the app offline). - ${Enabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IHostNameSslState[]] - # Hostname SSL states are used to manage the SSL bindings for app's hostnames. - # To construct, see NOTES section for HOSTNAMESSLSTATE properties and create a hash table. - ${HostNameSslState}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to disable the public hostnames of the app; otherwise, false. - # If true, the app is only accessible via API management process. - ${HostNamesDisabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource ID of the App Service Environment. - ${HostingEnvironmentProfileId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # HttpsOnly: configures a web site to accept only https requests. - # Issues redirect forhttp requests - ${HttpsOnly}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Hyper-V sandbox. - ${HyperV}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedServiceIdentityType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedServiceIdentityType] - # Type of managed service identity. - ${IdentityType}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IManagedServiceIdentityUserAssignedIdentities]))] - [System.Collections.Hashtable] - # The list of user assigned identities associated with the resource. - # The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} - ${IdentityUserAssignedIdentity}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Obsolete: Hyper-V sandbox. - ${IsXenon}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Identity to use for Key Vault Reference authentication. - ${KeyVaultReferenceIdentity}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.RedundancyMode])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.RedundancyMode] - # Site redundancy mode - ${RedundancyMode}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if reserved; otherwise, false. - ${Reserved}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to stop SCM (KUDU) site when the app is stopped; otherwise, false. - # The default is false. - ${ScmSiteAlsoStopped}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". - ${ServerFarmId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfig] - # Configuration of the app. - # To construct, see NOTES section for SITECONFIG properties and create a hash table. - ${SiteConfig}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Checks if Customer provided storage account is required - ${StorageAccountRequired}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Azure Resource Manager ID of the Virtual network and subnet to be joined by Regional VNET Integration.This must be of the form /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName} - ${VirtualNetworkSubnetId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Update = 'Az.Functions.private\Update-AzFunctionApp_Update'; - UpdateExpanded = 'Az.Functions.private\Update-AzFunctionApp_UpdateExpanded'; - UpdateViaIdentity = 'Az.Functions.private\Update-AzFunctionApp_UpdateViaIdentity'; - UpdateViaIdentityExpanded = 'Az.Functions.private\Update-AzFunctionApp_UpdateViaIdentityExpanded'; - } - if (('Update', 'UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Update an identity in the specified subscription and resource group. -.Description -Update an identity in the specified subscription and resource group. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IIdentityUpdate -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IIdentityAutoGenerated -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. - -PARAMETER : Describes an identity resource. - [Location ]: The geo-location where the resource lives - [Tag ]: Resource tags - [(Any) ]: This indicates any property can be added to this object. -.Link -https://learn.microsoft.com/powershell/module/az.functions/update-azuserassignedidentity -#> -function Update-AzUserAssignedIdentity { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IIdentityAutoGenerated])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the Resource Group to which the identity belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the identity resource. - ${ResourceName}, - - [Parameter(ParameterSetName='Update')] - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IIdentityUpdate] - # Describes an identity resource. - # To construct, see NOTES section for PARAMETER properties and create a hash table. - ${Parameter}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The geo-location where the resource lives - ${Location}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IIdentityUpdateTags]))] - [System.Collections.Hashtable] - # Resource tags - ${Tag}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Update = 'Az.Functions.private\Update-AzUserAssignedIdentity_Update'; - UpdateExpanded = 'Az.Functions.private\Update-AzUserAssignedIdentity_UpdateExpanded'; - UpdateViaIdentity = 'Az.Functions.private\Update-AzUserAssignedIdentity_UpdateViaIdentity'; - UpdateViaIdentityExpanded = 'Az.Functions.private\Update-AzUserAssignedIdentity_UpdateViaIdentityExpanded'; - } - if (('Update', 'UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Updates the configuration of an app. -.Description -Description for Updates the configuration of an app. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -APPSETTING : Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - -CONNECTIONSTRING : Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - -EXPERIMENTRAMPUPRULE : List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - -HANDLERMAPPING : Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. - -IPSECURITYRESTRICTION : IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - -METADATA : Application metadata. This property cannot be retrieved, since it may contain secrets. - [Name ]: Pair name. - [Value ]: Pair value. - -SCMIPSECURITYRESTRICTION : IP security restrictions for scm. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - -SITECONFIG : Web app configuration ARM resource. - [Kind ]: Kind of resource. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - -TRIGGERSLOWREQUESTSWITHPATH : A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - -TRIGGERSTATUSCODE : A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - -TRIGGERSTATUSCODESRANGE : A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - -VIRTUALAPPLICATION : Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. -.Link -https://learn.microsoft.com/powershell/module/az.functions/update-azwebappconfigurationslot -#> -function Update-AzWebAppConfigurationSlot { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the deployment slot. - # If a slot is not specified, the API will update configuration for the production slot. - ${Slot}, - - [Parameter(ParameterSetName='Update')] - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource] - # Web app configuration ARM resource. - # To construct, see NOTES section for SITECONFIG properties and create a hash table. - ${SiteConfig}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Flag to use Managed Identity Creds for ACR pull - ${AcrUseManagedIdentityCred}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # If using user managed identity, the user managed identity ClientId - ${AcrUserManagedIdentityId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Minimum time the process must executebefore taking the action - ${ActionMinProcessExecutionTime}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AutoHealActionType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AutoHealActionType] - # Predefined action to be taken. - ${ActionType}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if Always On is enabled; otherwise, false. - ${AlwaysOn}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The URL of the API definition. - ${ApiDefinitionUrl}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # APIM-Api Identifier. - ${ApiManagementConfigId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # App command line to launch. - ${AppCommandLine}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.INameValuePair[]] - # Application settings. - # To construct, see NOTES section for APPSETTING properties and create a hash table. - ${AppSetting}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if Auto Heal is enabled; otherwise, false. - ${AutoHealEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Auto-swap slot name. - ${AutoSwapSlotName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigAzureStorageAccounts]))] - [System.Collections.Hashtable] - # List of Azure Storage Accounts. - ${AzureStorageAccount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IConnStringInfo[]] - # Connection strings. - # To construct, see NOTES section for CONNECTIONSTRING properties and create a hash table. - ${ConnectionString}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # Gets or sets the list of origins that should be allowed to make cross-origincalls (for example: http://example.com:12345). - # Use "*" to allow all. - ${CorAllowedOrigin}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets whether CORS requests with credentials are allowed. - # See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentialsfor more details. - ${CorSupportCredentials}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Executable to be run. - ${CustomActionExe}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Parameters for the executable. - ${CustomActionParameter}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # Default documents. - ${DefaultDocument}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if detailed error logging is enabled; otherwise, false. - ${DetailedErrorLoggingEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Document root. - ${DocumentRoot}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - ${DynamicTagsJson}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of workers that a site can scale out to.This setting only applies to apps in plans where ElasticScaleEnabled is true - ${ElasticWebAppScaleLimit}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IRampUpRule[]] - # List of ramp-up rules. - # To construct, see NOTES section for EXPERIMENTRAMPUPRULE properties and create a hash table. - ${ExperimentRampUpRule}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FtpsState])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FtpsState] - # State of FTP / FTPS service - ${FtpsState}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of workers that a site can scale out to.This setting only applies to the Consumption and Elastic Premium Plans - ${FunctionAppScaleLimit}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether functions runtime scale monitoring is enabled. - # When enabled,the ScaleController will not monitor event sources directly, but will instead call to theruntime to get scale status. - ${FunctionsRuntimeScaleMonitoringEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IHandlerMapping[]] - # Handler mappings. - # To construct, see NOTES section for HANDLERMAPPING properties and create a hash table. - ${HandlerMapping}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Health check path - ${HealthCheckPath}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Http20Enabled: configures a web site to allow clients to connect over http2.0 - ${Http20Enabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if HTTP logging is enabled; otherwise, false. - ${HttpLoggingEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IIPSecurityRestriction[]] - # IP security restrictions for main. - # To construct, see NOTES section for IPSECURITYRESTRICTION properties and create a hash table. - ${IPSecurityRestriction}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction] - # Default action for main access restriction if no rules are matched. - ${IPSecurityRestrictionsDefaultAction}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a flag indicating whether the Push endpoint is enabled. - ${IsPushEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java container. - ${JavaContainer}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java container version. - ${JavaContainerVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java version. - ${JavaVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Identity to use for Key Vault Reference authentication. - ${KeyVaultReferenceIdentity}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int64] - # Maximum allowed disk size usage in MB. - ${LimitMaxDiskSizeInMb}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int64] - # Maximum allowed memory usage in MB. - ${LimitMaxMemoryInMb}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Double] - # Maximum allowed CPU usage percentage. - ${LimitMaxPercentageCpu}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Linux App Framework and version - ${LinuxFxVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SiteLoadBalancing])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SiteLoadBalancing] - # Site load balancing. - ${LoadBalancing}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to enable local MySQL; otherwise, false. - ${LocalMySqlEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # HTTP logs directory size limit. - ${LogsDirectorySizeLimit}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedPipelineMode])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedPipelineMode] - # Managed pipeline mode. - ${ManagedPipelineMode}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Managed Service Identity Id - ${ManagedServiceIdentityId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.INameValuePair[]] - # Application metadata. - # This property cannot be retrieved, since it may contain secrets. - # To construct, see NOTES section for METADATA properties and create a hash table. - ${Metadata}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.TlsCipherSuites])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.TlsCipherSuites] - # The minimum strength TLS cipher suite allowed for an application - ${MinTlsCipherSuite}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions] - # MinTlsVersion: configures the minimum version of TLS required for SSL requests - ${MinTlsVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of minimum instance count for a siteThis setting only applies to the Elastic Plans - ${MinimumElasticInstanceCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # .NET Framework version. - ${NetFrameworkVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of Node.js. - ${NodeVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of workers. - ${NumberOfWorker}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of PHP. - ${PhpVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of PowerShell. - ${PowerShellVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of preWarmed instances.This setting only applies to the Consumption and Elastic Plans - ${PreWarmedInstanceCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Property to allow or block all public traffic. - ${PublicNetworkAccess}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Publishing user name. - ${PublishingUsername}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${PushKind}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of Python. - ${PythonVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if remote debugging is enabled; otherwise, false. - ${RemoteDebuggingEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Remote debugging version. - ${RemoteDebuggingVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Request Count. - ${RequestCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time interval. - ${RequestTimeInterval}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if request tracing is enabled; otherwise, false. - ${RequestTracingEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.DateTime] - # Request tracing expiration time. - ${RequestTracingExpirationTime}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IIPSecurityRestriction[]] - # IP security restrictions for scm. - # To construct, see NOTES section for SCMIPSECURITYRESTRICTION properties and create a hash table. - ${ScmIPSecurityRestriction}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction] - # Default action for scm access restriction if no rules are matched. - ${ScmIPSecurityRestrictionsDefaultAction}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # IP security restrictions for scm to use main. - ${ScmIPSecurityRestrictionsUseMain}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions] - # ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - ${ScmMinTlsVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ScmType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ScmType] - # SCM type. - ${ScmType}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Request Count. - ${SlowRequestCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Request Path. - ${SlowRequestPath}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time interval. - ${SlowRequestTimeInterval}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time taken. - ${SlowRequestTimeTaken}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - ${TagWhitelistJson}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint.Tags can consist of alphanumeric characters and the following:'_', '@', '#', '.', ':', '-'. - # Validation should be performed at the PushRequestHandler. - ${TagsRequiringAuth}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Tracing options. - ${TracingOption}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # A rule based on private bytes. - ${TriggerPrivateBytesInKb}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISlowRequestsBasedTrigger[]] - # A rule based on multiple Slow Requests Rule with path - # To construct, see NOTES section for TRIGGERSLOWREQUESTSWITHPATH properties and create a hash table. - ${TriggerSlowRequestsWithPath}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStatusCodesBasedTrigger[]] - # A rule based on status codes. - # To construct, see NOTES section for TRIGGERSTATUSCODE properties and create a hash table. - ${TriggerStatusCode}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStatusCodesRangeBasedTrigger[]] - # A rule based on status codes ranges. - # To construct, see NOTES section for TRIGGERSTATUSCODESRANGE properties and create a hash table. - ${TriggerStatusCodesRange}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to use 32-bit worker process; otherwise, false. - ${Use32BitWorkerProcess}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IVirtualApplication[]] - # Virtual applications. - # To construct, see NOTES section for VIRTUALAPPLICATION properties and create a hash table. - ${VirtualApplication}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Virtual Network name. - ${VnetName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # The number of private ports assigned to this app. - # These will be assigned dynamically on runtime. - ${VnetPrivatePortsCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Virtual Network Route All enabled. - # This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - ${VnetRouteAllEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if WebSocket is enabled; otherwise, false. - ${WebSocketsEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Sets the time zone a site uses for generating timestamps. - # Compatible with Linux and Windows App Service. - # Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. - # For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). - # For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - ${WebsiteTimeZone}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Xenon App Framework and version - ${WindowsFxVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Explicit Managed Service Identity Id - ${XManagedServiceIdentityId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Update = 'Az.Functions.private\Update-AzWebAppConfigurationSlot_Update'; - UpdateExpanded = 'Az.Functions.private\Update-AzWebAppConfigurationSlot_UpdateExpanded'; - UpdateViaIdentity = 'Az.Functions.private\Update-AzWebAppConfigurationSlot_UpdateViaIdentity'; - UpdateViaIdentityExpanded = 'Az.Functions.private\Update-AzWebAppConfigurationSlot_UpdateViaIdentityExpanded'; - } - if (('Update', 'UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Updates the configuration of an app. -.Description -Description for Updates the configuration of an app. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -APPSETTING : Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - -CONNECTIONSTRING : Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - -EXPERIMENTRAMPUPRULE : List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - -HANDLERMAPPING : Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. - -IPSECURITYRESTRICTION : IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - -METADATA : Application metadata. This property cannot be retrieved, since it may contain secrets. - [Name ]: Pair name. - [Value ]: Pair value. - -SCMIPSECURITYRESTRICTION : IP security restrictions for scm. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - -SITECONFIG : Web app configuration ARM resource. - [Kind ]: Kind of resource. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - -TRIGGERSLOWREQUESTSWITHPATH : A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - -TRIGGERSTATUSCODE : A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - -TRIGGERSTATUSCODESRANGE : A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - -VIRTUALAPPLICATION : Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. -.Link -https://learn.microsoft.com/powershell/module/az.functions/update-azwebappconfiguration -#> -function Update-AzWebAppConfiguration { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Update')] - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource] - # Web app configuration ARM resource. - # To construct, see NOTES section for SITECONFIG properties and create a hash table. - ${SiteConfig}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Flag to use Managed Identity Creds for ACR pull - ${AcrUseManagedIdentityCred}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # If using user managed identity, the user managed identity ClientId - ${AcrUserManagedIdentityId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Minimum time the process must executebefore taking the action - ${ActionMinProcessExecutionTime}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AutoHealActionType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AutoHealActionType] - # Predefined action to be taken. - ${ActionType}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if Always On is enabled; otherwise, false. - ${AlwaysOn}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The URL of the API definition. - ${ApiDefinitionUrl}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # APIM-Api Identifier. - ${ApiManagementConfigId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # App command line to launch. - ${AppCommandLine}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.INameValuePair[]] - # Application settings. - # To construct, see NOTES section for APPSETTING properties and create a hash table. - ${AppSetting}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if Auto Heal is enabled; otherwise, false. - ${AutoHealEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Auto-swap slot name. - ${AutoSwapSlotName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigAzureStorageAccounts]))] - [System.Collections.Hashtable] - # List of Azure Storage Accounts. - ${AzureStorageAccount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IConnStringInfo[]] - # Connection strings. - # To construct, see NOTES section for CONNECTIONSTRING properties and create a hash table. - ${ConnectionString}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # Gets or sets the list of origins that should be allowed to make cross-origincalls (for example: http://example.com:12345). - # Use "*" to allow all. - ${CorAllowedOrigin}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets whether CORS requests with credentials are allowed. - # See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentialsfor more details. - ${CorSupportCredentials}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Executable to be run. - ${CustomActionExe}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Parameters for the executable. - ${CustomActionParameter}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # Default documents. - ${DefaultDocument}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if detailed error logging is enabled; otherwise, false. - ${DetailedErrorLoggingEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Document root. - ${DocumentRoot}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - ${DynamicTagsJson}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of workers that a site can scale out to.This setting only applies to apps in plans where ElasticScaleEnabled is true - ${ElasticWebAppScaleLimit}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IRampUpRule[]] - # List of ramp-up rules. - # To construct, see NOTES section for EXPERIMENTRAMPUPRULE properties and create a hash table. - ${ExperimentRampUpRule}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FtpsState])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FtpsState] - # State of FTP / FTPS service - ${FtpsState}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of workers that a site can scale out to.This setting only applies to the Consumption and Elastic Premium Plans - ${FunctionAppScaleLimit}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether functions runtime scale monitoring is enabled. - # When enabled,the ScaleController will not monitor event sources directly, but will instead call to theruntime to get scale status. - ${FunctionsRuntimeScaleMonitoringEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IHandlerMapping[]] - # Handler mappings. - # To construct, see NOTES section for HANDLERMAPPING properties and create a hash table. - ${HandlerMapping}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Health check path - ${HealthCheckPath}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Http20Enabled: configures a web site to allow clients to connect over http2.0 - ${Http20Enabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if HTTP logging is enabled; otherwise, false. - ${HttpLoggingEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IIPSecurityRestriction[]] - # IP security restrictions for main. - # To construct, see NOTES section for IPSECURITYRESTRICTION properties and create a hash table. - ${IPSecurityRestriction}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction] - # Default action for main access restriction if no rules are matched. - ${IPSecurityRestrictionsDefaultAction}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a flag indicating whether the Push endpoint is enabled. - ${IsPushEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java container. - ${JavaContainer}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java container version. - ${JavaContainerVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java version. - ${JavaVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Identity to use for Key Vault Reference authentication. - ${KeyVaultReferenceIdentity}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int64] - # Maximum allowed disk size usage in MB. - ${LimitMaxDiskSizeInMb}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int64] - # Maximum allowed memory usage in MB. - ${LimitMaxMemoryInMb}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Double] - # Maximum allowed CPU usage percentage. - ${LimitMaxPercentageCpu}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Linux App Framework and version - ${LinuxFxVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SiteLoadBalancing])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SiteLoadBalancing] - # Site load balancing. - ${LoadBalancing}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to enable local MySQL; otherwise, false. - ${LocalMySqlEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # HTTP logs directory size limit. - ${LogsDirectorySizeLimit}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedPipelineMode])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedPipelineMode] - # Managed pipeline mode. - ${ManagedPipelineMode}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Managed Service Identity Id - ${ManagedServiceIdentityId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.INameValuePair[]] - # Application metadata. - # This property cannot be retrieved, since it may contain secrets. - # To construct, see NOTES section for METADATA properties and create a hash table. - ${Metadata}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.TlsCipherSuites])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.TlsCipherSuites] - # The minimum strength TLS cipher suite allowed for an application - ${MinTlsCipherSuite}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions] - # MinTlsVersion: configures the minimum version of TLS required for SSL requests - ${MinTlsVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of minimum instance count for a siteThis setting only applies to the Elastic Plans - ${MinimumElasticInstanceCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # .NET Framework version. - ${NetFrameworkVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of Node.js. - ${NodeVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of workers. - ${NumberOfWorker}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of PHP. - ${PhpVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of PowerShell. - ${PowerShellVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of preWarmed instances.This setting only applies to the Consumption and Elastic Plans - ${PreWarmedInstanceCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Property to allow or block all public traffic. - ${PublicNetworkAccess}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Publishing user name. - ${PublishingUsername}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${PushKind}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of Python. - ${PythonVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if remote debugging is enabled; otherwise, false. - ${RemoteDebuggingEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Remote debugging version. - ${RemoteDebuggingVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Request Count. - ${RequestCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time interval. - ${RequestTimeInterval}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if request tracing is enabled; otherwise, false. - ${RequestTracingEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.DateTime] - # Request tracing expiration time. - ${RequestTracingExpirationTime}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IIPSecurityRestriction[]] - # IP security restrictions for scm. - # To construct, see NOTES section for SCMIPSECURITYRESTRICTION properties and create a hash table. - ${ScmIPSecurityRestriction}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction] - # Default action for scm access restriction if no rules are matched. - ${ScmIPSecurityRestrictionsDefaultAction}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # IP security restrictions for scm to use main. - ${ScmIPSecurityRestrictionsUseMain}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions] - # ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - ${ScmMinTlsVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ScmType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ScmType] - # SCM type. - ${ScmType}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Request Count. - ${SlowRequestCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Request Path. - ${SlowRequestPath}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time interval. - ${SlowRequestTimeInterval}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time taken. - ${SlowRequestTimeTaken}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - ${TagWhitelistJson}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint.Tags can consist of alphanumeric characters and the following:'_', '@', '#', '.', ':', '-'. - # Validation should be performed at the PushRequestHandler. - ${TagsRequiringAuth}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Tracing options. - ${TracingOption}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # A rule based on private bytes. - ${TriggerPrivateBytesInKb}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISlowRequestsBasedTrigger[]] - # A rule based on multiple Slow Requests Rule with path - # To construct, see NOTES section for TRIGGERSLOWREQUESTSWITHPATH properties and create a hash table. - ${TriggerSlowRequestsWithPath}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStatusCodesBasedTrigger[]] - # A rule based on status codes. - # To construct, see NOTES section for TRIGGERSTATUSCODE properties and create a hash table. - ${TriggerStatusCode}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStatusCodesRangeBasedTrigger[]] - # A rule based on status codes ranges. - # To construct, see NOTES section for TRIGGERSTATUSCODESRANGE properties and create a hash table. - ${TriggerStatusCodesRange}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to use 32-bit worker process; otherwise, false. - ${Use32BitWorkerProcess}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IVirtualApplication[]] - # Virtual applications. - # To construct, see NOTES section for VIRTUALAPPLICATION properties and create a hash table. - ${VirtualApplication}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Virtual Network name. - ${VnetName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # The number of private ports assigned to this app. - # These will be assigned dynamically on runtime. - ${VnetPrivatePortsCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Virtual Network Route All enabled. - # This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - ${VnetRouteAllEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if WebSocket is enabled; otherwise, false. - ${WebSocketsEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Sets the time zone a site uses for generating timestamps. - # Compatible with Linux and Windows App Service. - # Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. - # For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). - # For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - ${WebsiteTimeZone}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Xenon App Framework and version - ${WindowsFxVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Explicit Managed Service Identity Id - ${XManagedServiceIdentityId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Update = 'Az.Functions.private\Update-AzWebAppConfiguration_Update'; - UpdateExpanded = 'Az.Functions.private\Update-AzWebAppConfiguration_UpdateExpanded'; - UpdateViaIdentity = 'Az.Functions.private\Update-AzWebAppConfiguration_UpdateViaIdentity'; - UpdateViaIdentityExpanded = 'Az.Functions.private\Update-AzWebAppConfiguration_UpdateViaIdentityExpanded'; - } - if (('Update', 'UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -# SIG # Begin signature block -# MIIoLQYJKoZIhvcNAQcCoIIoHjCCKBoCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBFGqs93FHrnLZ7 -# s08jKwgL9FU1uLaeSRrzxKN4odBeTaCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGg0wghoJAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEINVW5SbRDS9VVJB5+6226PZG -# sl0HacIucFe/9PTZgNTVMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAotRj2Pmh8xLGU0lKIoVH/duQOXrY71OE6bugtMZ+NusnkO7E5FzRA1dd -# mRzNpy3Qj5T3WFNnNSBXKgn2E0HJ/7IhceXxS327wF2pPM4xR7yH25Rn518mkRtJ -# JUQwBr8MvMcKWHB6ByFET83TFHk7sW5cOK5EYr7km2MUIGaUF9IwNACeGd/Ge5eS -# /AjPc78z00kKJYOQAS9qI+LBEXttIpcu/ZtBIzR1KwBpbCr+8+/caK+6eMnUrg8u -# Bihny3cG2LDAuDIBl0jAT+o5TaABUnnEB56gXviQCp+LKAeimYhK4fDZ5MbWcA6m -# qqvxajqLVuaynPeJ1sLAg1UO7fbjXaGCF5cwgheTBgorBgEEAYI3AwMBMYIXgzCC -# F38GCSqGSIb3DQEHAqCCF3AwghdsAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCBrbjSE/lj4hWoieXl7nu6cbQPg5V9jHOuG5VOazL+tKgIGZ1rjbLqd -# GBMyMDI1MDEwOTA2MzY0Mi45MzZaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046ODYwMy0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHtMIIHIDCCBQigAwIBAgITMwAAAfGzRfUn6MAW1gABAAAB8TANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# NTVaFw0yNTAzMDUxODQ1NTVaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046ODYwMy0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQCxulCZttIf8X97rW9/J+Q4Vg9PiugB1ya1/DRxxLW2 -# hwy4QgtU3j5fV75ZKa6XTTQhW5ClkGl6gp1nd5VBsx4Jb+oU4PsMA2foe8gP9bQN -# PVxIHMJu6TYcrrn39Hddet2xkdqUhzzySXaPFqFMk2VifEfj+HR6JheNs2LLzm8F -# DJm+pBddPDLag/R+APIWHyftq9itwM0WP5Z0dfQyI4WlVeUS+votsPbWm+RKsH4F -# QNhzb0t/D4iutcfCK3/LK+xLmS6dmAh7AMKuEUl8i2kdWBDRcc+JWa21SCefx5SP -# hJEFgYhdGPAop3G1l8T33cqrbLtcFJqww4TQiYiCkdysCcnIF0ZqSNAHcfI9SAv3 -# gfkyxqQNJJ3sTsg5GPRF95mqgbfQbkFnU17iYbRIPJqwgSLhyB833ZDgmzxbKmJm -# dDabbzS0yGhngHa6+gwVaOUqcHf9w6kwxMo+OqG3QZIcwd5wHECs5rAJZ6PIyFM7 -# Ad2hRUFHRTi353I7V4xEgYGuZb6qFx6Pf44i7AjXbptUolDcVzYEdgLQSWiuFajS -# 6Xg3k7Cy8TiM5HPUK9LZInloTxuULSxJmJ7nTjUjOj5xwRmC7x2S/mxql8nvHSCN -# 1OED2/wECOot6MEe9bL3nzoKwO8TNlEStq5scd25GA0gMQO+qNXV/xTDOBTJ8zBc -# GQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFLy2xe59sCE0SjycqE5Erb4YrS1gMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQDhSEjSBFSCbJyl3U/QmFMW2eLPBknnlsfI -# D/7gTMvANEnhq08I9HHbbqiwqDEHSvARvKtL7j0znICYBbMrVSmvgDxU8jAGqMyi -# LoM80788So3+T6IZV//UZRJqBl4oM3bCIQgFGo0VTeQ6RzYL+t1zCUXmmpPmM4xc -# ScVFATXj5Tx7By4ShWUC7Vhm7picDiU5igGjuivRhxPvbpflbh/bsiE5tx5cuOJE -# JSG+uWcqByR7TC4cGvuavHSjk1iRXT/QjaOEeJoOnfesbOdvJrJdbm+leYLRI67N -# 3cd8B/suU21tRdgwOnTk2hOuZKs/kLwaX6NsAbUy9pKsDmTyoWnGmyTWBPiTb2rp -# 5ogo8Y8hMU1YQs7rHR5hqilEq88jF+9H8Kccb/1ismJTGnBnRMv68Ud2l5LFhOZ4 -# nRtl4lHri+N1L8EBg7aE8EvPe8Ca9gz8sh2F4COTYd1PHce1ugLvvWW1+aOSpd8N -# nwEid4zgD79ZQxisJqyO4lMWMzAgEeFhUm40FshtzXudAsX5LoCil4rLbHfwYtGO -# pw9DVX3jXAV90tG9iRbcqjtt3vhW9T+L3fAZlMeraWfh7eUmPltMU8lEQOMelo/1 -# ehkIGO7YZOHxUqeKpmF9QaW8LXTT090AHZ4k6g+tdpZFfCMotyG+E4XqN6ZWtKEB -# QiE3xL27BDCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNQ -# MIICOAIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjg2MDMtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQD7 -# n7Bk4gsM2tbU/i+M3BtRnLj096CBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymhlzAiGA8yMDI1MDEwOTAxMTUw -# M1oYDzIwMjUwMTEwMDExNTAzWjB3MD0GCisGAQQBhFkKBAExLzAtMAoCBQDrKaGX -# AgEAMAoCAQACAgnWAgH/MAcCAQACAhLZMAoCBQDrKvMXAgEAMDYGCisGAQQBhFkK -# BAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJ -# KoZIhvcNAQELBQADggEBABWHux9xbYY4I0L4XVQj97eT2StJ8YAHfLn+PZEx9Hdg -# A8+ONymStatVt+SnyQ9nyV1lIGMKljTA95AUUN3xG9Eo2QioQUCRBmnqjp//gHsX -# Piv0u7m3VgnLsr/TnTo17aLOc0bOyYlS1BTthbz2XeyB646/F8ochBd1OqoCvluI -# Evv6Bx9hcodVtCm3pxAv4YDX8sXb0cFRNWz+Vq9JOKr4ankiYyp0INmV5C8cAHJb -# 4+PKlCzqdqx+GV4RdLaDvK7pcF6qcaO3J5Gl0I5OoeTF6KN1ifx90T0ps6q5LgV1 -# 6lzWULKJA/BVAnUF9Q+ybg+yEa3UGrkVPMsX8vGN7sQxggQNMIIECQIBATCBkzB8 -# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk -# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1N -# aWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAfGzRfUn6MAW1gABAAAB -# 8TANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEE -# MC8GCSqGSIb3DQEJBDEiBCAVbIm7+wSGPTiqAhZ3hvr5IYezhYeBihW1siaXKXs1 -# 2zCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EINV3/T5hS7ijwao466RosB7w -# wEibt0a1P5EqIwEj9hF4MIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB -# IDIwMTACEzMAAAHxs0X1J+jAFtYAAQAAAfEwIgQgZv4QEc5hgS9BsS74vtux+Rzx -# z6O0XI7Iv02NK7Hl7vIwDQYJKoZIhvcNAQELBQAEggIAQzBXThskmaqLsh0ipgRj -# EefsP6pgEkh24UY/+g48jhQ561Ptu1+hyXYnN8BEhZ26CRu/cMNaH6bNCuiVmDKw -# 2NPVtz6LPctmlWqGyH74HCoVtbUJCjKiNDQcJ/7Tf11eij0vgHK/QaTry48OXcsY -# Uj4MMl0UVpTczsw5hmeEefH/oDOUO3Ys4dUir/wNXPQD5teGzzycGsYEbVpSMPnC -# rqOgspWs2cPF/ojfI/YoQJEQ/BcJg3HdfpfkFurgj8zhRfb/ZCiTYvVV8PUWKXPL -# VR+qyqLnNIumwDghc7p9beykfLhmUabbxCO5uRWnVrppR9U9p7kY3MTkeqUQxciF -# 19OjmE8neEK20+fTqazi125MrnXhOLS6r23YMeu1X3t1vivaAATxoCNhq3vtlPKo -# 9XHnCdLPYF9CHuzIyxiobZQ8ckHSdLO4O6vu4cw4j8OWVgkf+A3gYTc3d0xpmEug -# 0piKirlOA2gyFto3EDLynBHQF4yAy56/HHhugnqWwmhHylUyMEdwt262q/O6DqtQ -# 9JCLrlNvNRnh/SG1DmNWO2Mfyl46kNeEBqZtdGEkZtvJPY1v+HY++dK/J5jKhkic -# gql5cGnOny/GZQ9ZVGVmWlKiJ+uHNa6/X163Vm7x0MOdeE3HAP45i6IdrdE71Jpc -# xdGb0jqbsqKULPcU2kHeVzI= -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/utils/Get-SubscriptionIdTestSafe.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/utils/Get-SubscriptionIdTestSafe.ps1 deleted file mode 100644 index 9213c3763627..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/utils/Get-SubscriptionIdTestSafe.ps1 +++ /dev/null @@ -1,224 +0,0 @@ -param() -if ($env:AzPSAutorestTestPlaybackMode) { - $loadEnvPath = Join-Path $PSScriptRoot '..' 'test' 'loadEnv.ps1' - . ($loadEnvPath) - return $env.SubscriptionId -} -return (Get-AzContext).Subscription.Id -# SIG # Begin signature block -# MIIoKQYJKoZIhvcNAQcCoIIoGjCCKBYCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCvmGT2RlJhp/rC -# DOiTnt/3S1Bv3biEMflyZwWMS2xRdKCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgkwghoFAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIPSNBc+wDke3rcRSTQbfFzLx -# ZjDqn60fWPPP7nkeXd5aMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAIOWv2gqibHDoAsgFKvajYtSyvigIY7LG6+yONh9HcUJdJnIgMxkf+7z/ -# qm0Q7C1aR8JJrAkY+3pKMvBOGYlXRDmicIYAN0EdUyMgxU488QsAjnGWjQXrM1UK -# aob9PRQrhtUBn4ZG5wAbJhh2Mkd1B6OfBaH39wIC9RoNJ82qC+omLBNtcSf1qxxD -# mcok7TsJipQyhezvmyZkp7mZZOCVRnQUzcv8EePP1Mb5XHJxcB9RvJZPdEnNOEor -# /+m5iJXS91Xf1av1uWJ4UtUxLh5wyLuabiujk3tdGllgFevRrW6DU7g19PbWUWFQ -# tDul12Jei/euUx0DggqFpAGcrIUSMKGCF5MwghePBgorBgEEAYI3AwMBMYIXfzCC -# F3sGCSqGSIb3DQEHAqCCF2wwghdoAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFRBgsq -# hkiG9w0BCRABBKCCAUAEggE8MIIBOAIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCDuMbkRPjAvxi4QeVb1DOEEpIfpSuM9f5eAc4Y7kh75MAIGZ1rRdmaw -# GBIyMDI1MDEwOTA2MzY1MS44OVowBIACAfSggdGkgc4wgcsxCzAJBgNVBAYTAlVT -# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVy -# aWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjo5MjAwLTA1 -# RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaCC -# EeowggcgMIIFCKADAgECAhMzAAAB5y6PL5MLTxvpAAEAAAHnMA0GCSqGSIb3DQEB -# CwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTIzMTIwNjE4NDUx -# OVoXDTI1MDMwNTE4NDUxOVowgcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMx -# JzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjo5MjAwLTA1RTAtRDk0NzElMCMGA1UE -# AxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZTCCAiIwDQYJKoZIhvcNAQEB -# BQADggIPADCCAgoCggIBAMJXny/gi5Drn1c8zUO1pYy/38dFQLmR2IQXz1gE/r9G -# fuSOoyRnkRJ6Z/kSWLgIu1BVJ59GkXWPtLkssqKwxY4ZFotxpVsZN9yYjW8xEnW3 -# MzAI0igKr+/LxYfxB1XUH8Bvmwr5D3Ii/MbDjtN9c8TxGWtq7Ar976dafAy3TrRq -# QRmIknPVWHUuFJgpqI/1nbcRmYYRMJaKCQpty4CeG+HfKsxrz24F9p4dBkQcZCp2 -# yQzjwQFxZJZ2mJJIGIDHKEdSRuSeX08/O0H9JTHNFmNTNYeD1t/WapnRwiIBYLQS -# Mrs42GVB8pJEdUsos0+mXf/5QvheNzRi92pzzyA4tSv/zhP3/Ermvza6W9GnYDz9 -# qv1wbhbvrnS4poDFECaAviEqAhfn/RogCxvKok5ro4gZIX1r4N9eXUulA80pHv3a -# xwXu2MPlarAi6J9L1hSIcy9EuOMqTRJIJX+alcLQGg+STlqx/GuslsKwl48dI4Ru -# WknNGbNo/o4xfBFytvtNcVA6xOQq6qRa+9gg+9XMLrxQz4yyQs+V3V6p044wrtJt -# t/a0ZJl/f6I7BZAxxZcH2DDmArcAhgrTxaQkm7LM+p+K2C5t1EKZiv0JWw065b7A -# cNgaFyIkMXYuSuOQVSNRxdIgl31/ayxiK1n0K6sZXvgFBx+vGO+TUvyO+03ua6Uj -# AgMBAAGjggFJMIIBRTAdBgNVHQ4EFgQUz/7gmICfNjh2kR/9mWuHUrvej1gwHwYD -# VR0jBBgwFoAUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXwYDVR0fBFgwVjBUoFKgUIZO -# aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIw -# VGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3JsMGwGCCsGAQUFBwEBBGAwXjBc -# BggrBgEFBQcwAoZQaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0 -# cy9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcnQwDAYD -# VR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAOBgNVHQ8BAf8EBAMC -# B4AwDQYJKoZIhvcNAQELBQADggIBAHSh8NuT6WVaLVwLqex+J7km2nT2jpvoBEKm -# +0M+rYoU/6GL5Q00/ssZyIq5ySpcKYFMUiF8F4ZLG+TrJyiR1CvfzXmkQ5phZOce -# 9DT7yErLzqvUXit8G7igcHlxPLTxPiiGsb85gb8H+A2fPQ6Xq/u7+oSPPjzNdnpm -# XEobJnAqYplZoF3YNgTDMql0uQHGzoDp6dZlHSNj6rkV1tXjmCEZMqBKvkQIA6cs -# PieMnB+MirSZFlbANlChe0lJpUdK7aUdAvdgcQWKS6dtRMl818EMsvsa/6xOZGIN -# mTLk4DGgsbaBpN+6IVt+mZJ89yCXkI5TN8xCfOkp9fr4WQjRBA2+4+lawNTyxH66 -# eLZWYOjuuaomuibiKGBU10tox81Sq8EvlmJIrXOZoQsEn1r5g6MTmmZJqtbmwZuf -# uJWQXZb0lAg4fq0ZYsUlLkezfrNqGSgeHyIP3rct4aNmqQW6wppRbvbIyP/LFN4Y -# QM6givfmTBfGvVS77OS6vbL4W41jShmOmnOn3kBbWV6E/TFo76gFXVd+9oK6v8Hk -# 9UCnbHOuiwwRRwDCkmmKj5Vh8i58aPuZ5dwZBhYDxSavwroC6j4mWPwh4VLqVK8q -# GpCmZ0HMAwao85Aq3U7DdlfF6Eru8CKKbdmIAuUzQrnjqTSxmvF1k+CmbPs7zD2A -# cu7JkBB7MIIHcTCCBVmgAwIBAgITMwAAABXF52ueAptJmQAAAAAAFTANBgkqhkiG -# 9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAO -# BgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEy -# MDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIw -# MTAwHhcNMjEwOTMwMTgyMjI1WhcNMzAwOTMwMTgzMjI1WjB8MQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBQQ0EgMjAxMDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB -# AOThpkzntHIhC3miy9ckeb0O1YLT/e6cBwfSqWxOdcjKNVf2AX9sSuDivbk+F2Az -# /1xPx2b3lVNxWuJ+Slr+uDZnhUYjDLWNE893MsAQGOhgfWpSg0S3po5GawcU88V2 -# 9YZQ3MFEyHFcUTE3oAo4bo3t1w/YJlN8OWECesSq/XJprx2rrPY2vjUmZNqYO7oa -# ezOtgFt+jBAcnVL+tuhiJdxqD89d9P6OU8/W7IVWTe/dvI2k45GPsjksUZzpcGkN -# yjYtcI4xyDUoveO0hyTD4MmPfrVUj9z6BVWYbWg7mka97aSueik3rMvrg0XnRm7K -# MtXAhjBcTyziYrLNueKNiOSWrAFKu75xqRdbZ2De+JKRHh09/SDPc31BmkZ1zcRf -# NN0Sidb9pSB9fvzZnkXftnIv231fgLrbqn427DZM9ituqBJR6L8FA6PRc6ZNN3SU -# HDSCD/AQ8rdHGO2n6Jl8P0zbr17C89XYcz1DTsEzOUyOArxCaC4Q6oRRRuLRvWoY -# WmEBc8pnol7XKHYC4jMYctenIPDC+hIK12NvDMk2ZItboKaDIV1fMHSRlJTYuVD5 -# C4lh8zYGNRiER9vcG9H9stQcxWv2XFJRXRLbJbqvUAV6bMURHXLvjflSxIUXk8A8 -# FdsaN8cIFRg/eKtFtvUeh17aj54WcmnGrnu3tz5q4i6tAgMBAAGjggHdMIIB2TAS -# BgkrBgEEAYI3FQEEBQIDAQABMCMGCSsGAQQBgjcVAgQWBBQqp1L+ZMSavoKRPEY1 -# Kc8Q/y8E7jAdBgNVHQ4EFgQUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXAYDVR0gBFUw -# UzBRBgwrBgEEAYI3TIN9AQEwQTA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNy -# b3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRtMBMGA1UdJQQMMAoG -# CCsGAQUFBwMIMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIB -# hjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP6KJcYmjRPZSQW9fO -# mhjEMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9w -# a2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNybDBaBggr -# BgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0LmNv -# bS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0MA0GCSqGSIb3 -# DQEBCwUAA4ICAQCdVX38Kq3hLB9nATEkW+Geckv8qW/qXBS2Pk5HZHixBpOXPTEz -# tTnXwnE2P9pkbHzQdTltuw8x5MKP+2zRoZQYIu7pZmc6U03dmLq2HnjYNi6cqYJW -# AAOwBb6J6Gngugnue99qb74py27YP0h1AdkY3m2CDPVtI1TkeFN1JFe53Z/zjj3G -# 82jfZfakVqr3lbYoVSfQJL1AoL8ZthISEV09J+BAljis9/kpicO8F7BUhUKz/Aye -# ixmJ5/ALaoHCgRlCGVJ1ijbCHcNhcy4sa3tuPywJeBTpkbKpW99Jo3QMvOyRgNI9 -# 5ko+ZjtPu4b6MhrZlvSP9pEB9s7GdP32THJvEKt1MMU0sHrYUP4KWN1APMdUbZ1j -# dEgssU5HLcEUBHG/ZPkkvnNtyo4JvbMBV0lUZNlz138eW0QBjloZkWsNn6Qo3GcZ -# KCS6OEuabvshVGtqRRFHqfG3rsjoiV5PndLQTHa1V1QJsWkBRH58oWFsc/4Ku+xB -# Zj1p/cvBQUl+fpO+y/g75LcVv7TOPqUxUYS8vwLBgqJ7Fx0ViY1w/ue10CgaiQuP -# Ntq6TPmb/wrpNPgkNWcr4A245oyZ1uEi6vAnQj0llOZ0dFtq0Z4+7X6gMTN9vMvp -# e784cETRkPHIqzqKOghif9lwY1NNje6CbaUFEMFxBmoQtB1VM1izoXBm8qGCA00w -# ggI1AgEBMIH5oYHRpIHOMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGlu -# Z3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv -# cmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScw -# JQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTIwMC0wNUUwLUQ5NDcxJTAjBgNVBAMT -# HE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiIwoBATAHBgUrDgMCGgMVALNy -# BOcZqxLB792u75w97U0X+/BDoIGDMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# UENBIDIwMTAwDQYJKoZIhvcNAQELBQACBQDrKY+fMCIYDzIwMjUwMTA4MjM1ODIz -# WhgPMjAyNTAxMDkyMzU4MjNaMHQwOgYKKwYBBAGEWQoEATEsMCowCgIFAOspj58C -# AQAwBwIBAAICCowwBwIBAAICE0wwCgIFAOsq4R8CAQAwNgYKKwYBBAGEWQoEAjEo -# MCYwDAYKKwYBBAGEWQoDAqAKMAgCAQACAwehIKEKMAgCAQACAwGGoDANBgkqhkiG -# 9w0BAQsFAAOCAQEARm0d77sDdK+Bqg3rqdpFmlOenvfBFxGzx0wFPf9zw9hvBfq/ -# EY/IG/WpJ/Jw/J/08M9f9PKnzD7w/9qeeHb2426Zu22WM7fxgY3CLchQb1ACW0NK -# +iCUftBwmbUqK5kuYDMUvYEwPtwD3AIdHvyNlHgse3oPWg6FQrA8ttht1lY+QvGO -# 19OqpeZwzGhAW/O1kGXarKG6rn1qQhGuR3bBKyTvdsujZiVpKwSU0wVMjI+ukv78 -# 9qachfRelJF1bDCInE0mzQxxClHrn9OZ9u/Vnu7QMyUdBYk7JdCXVtECo4y2KynF -# /fz1xueljgsuRALveftvFBWbwabi5hV44504MzGCBA0wggQJAgEBMIGTMHwxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv -# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB5y6PL5MLTxvpAAEAAAHnMA0G -# CWCGSAFlAwQCAQUAoIIBSjAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJ -# KoZIhvcNAQkEMSIEIIZX/FUvXiNbINs5u/kh0fqbsDchKF1hioi+bvU+HGFYMIH6 -# BgsqhkiG9w0BCRACLzGB6jCB5zCB5DCBvQQg5TZdDXZqhv0N4MVcz1QUd4RfvgW/ -# QAG9AwbuoLnWc60wgZgwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MAITMwAAAecujy+TC08b6QABAAAB5zAiBCBEm+MnX6BUaw2hoO31T8VOQURXR1mD -# tTiPuzpaNaxqQTANBgkqhkiG9w0BAQsFAASCAgBews9oufEPazqt0EzJChqw/s4w -# ydX6moKL9sZr979ineeCHC3pY//7oxmCLxcJg00KBmEGhRv3wvx5m9qYeKgVhyKw -# sW5Nm0pqmNfKwUcNq/6xUB86UWiHOp5XN3B78HkjrT7IEMc9OA2gbRwGZl9nwLyZ -# /5myqnfj3GTfM6OVW+/bZBxHLQVFEWWDKSLpyIoFMyiTUbipXnrQpkbHgmHtAYxJ -# JhGr6I65aoRJKzHZzCkeB9zX/OMIFTcs3k8h9gjNIdgyG3xmyTG9IzeXuGQhO/BV -# vk88pV/btLDG6HF9QSGI95pOCvyfoG/ySV64L5NascO5yRX6DiwN2QPm1XZzE2zI -# D3Ypm8CrMG5lLwqSYuY/jRrb+pUdre7u61nuasWUWV13iepOjy8dF/wMOucfd8m3 -# 5s93Zb0ThTo6RselEpQOd8Qnxjqoq4DO137VbhCxHzgnY23G/jS+pfCuYSX0jId9 -# RXWO59DknoV01R6u1a9bcNuUbwOXU8k6Iwt203tLmXLrFiTN1JqcDoA0zpB1qV2y -# XIhlV7jY/LMe0IZdwGkkMyAe93DSgNofTjTotiDLLcI3dn5yIepxjGF0P1fUNQuM -# eAVMPxi+ne47AJm4NixZWBP48Qi2Py6mFjs8FMYTL5gVwYWWMLB7JG1lUQqWKoDG -# rFnouitaw1wRQR0WhA== -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/utils/Unprotect-SecureString.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/utils/Unprotect-SecureString.ps1 deleted file mode 100644 index f186085d93b0..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/utils/Unprotect-SecureString.ps1 +++ /dev/null @@ -1,233 +0,0 @@ -#This script converts securestring to plaintext - -param( - [Parameter(Mandatory, ValueFromPipeline)] - [System.Security.SecureString] - ${SecureString} -) - -$ssPtr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($SecureString) -try { - $plaintext = [System.Runtime.InteropServices.Marshal]::PtrToStringBSTR($ssPtr) -} finally { - [System.Runtime.InteropServices.Marshal]::ZeroFreeBSTR($ssPtr) -} - -return $plaintext -# SIG # Begin signature block -# MIIoOQYJKoZIhvcNAQcCoIIoKjCCKCYCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDT7ZbNoY98P1cW -# CLQEXghewcRRqpuzw+uOgG2nbQ8aHaCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIAmR -# ZNAgxcDFKH97A6YERhvKrSJCqORTlbGk5c1WcUAXMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAfPtlhlRy2E3hutbUEkAOD+7dk7c/QftuRCG3 -# JtEcBxyGQG4SFKjdNfyGA9mU9bcQG7EDyKsTDGaeSxfO20CGY+ge345SXSbS20VD -# E66lqx8no+vYNPDTtYfEUOLzHeGWnWo0iAn0H4j7fwhbL/2eq4mpGdj94cSTUh3g -# ZaXTKsqAy8inZDZCoyX4TMHjuXX+SJU1PLHCt2x79KcDFqoOoUYWlA3GiajtQKS1 -# VP/3aezEpYq7aGFK5aHo/hUQSnEeY/Yr9Os3Rx9lz7ztyn7NVcTQK8JUAOuoR3/S -# mWmUoeRc3k0XBiHZppIi5m9oIevwf4WRMSZhcSx0GNbTicgIy6GCF5QwgheQBgor -# BgEEAYI3AwMBMYIXgDCCF3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFSBgsqhkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCDnI7XkFqZmx9eRquXRsqCafUn275vbpU6+ -# eoCsY2oCggIGZ1r0VelAGBMyMDI1MDEwOTA2Mzc0NC45MzVaMASAAgH0oIHRpIHO -# MIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQL -# ExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxk -# IFRTUyBFU046ODkwMC0wNUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1l -# LVN0YW1wIFNlcnZpY2WgghHqMIIHIDCCBQigAwIBAgITMwAAAe3hX8vV96VdcwAB -# AAAB7TANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDAeFw0yMzEyMDYxODQ1NDFaFw0yNTAzMDUxODQ1NDFaMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046ODkwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Uw -# ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCoMMJskrrqapycLxPC1H7z -# D7g88NpbEaQ6SjcTIRbzCVyYQNsz8TaL1pqFTEAPL1X7ojL4/EaEW+UjNqZs/ayM -# yW4YIpFPZP2x4FBMVCddseF2i+aMMjDHi0LcTQZxM2s3mFMrCZAWSfLYXYDIimFB -# z8j0oLWGy3VgLmBTKM4xLqv7DZUz8B2SoAmbEtp62ngSl0hOoN73SFwE+Y24SvGQ -# MWhykpG+vXDwcpWvwDe+TgnrLR7ATRFXN5JS26dm2yy6SYFMRYnME3dMHCQ/UQIQ -# QNC8nLmIvdKkAoWEMXtJsGEo3QrM2S2SBv4PpHRzRukzTtP+UAceGxM9JyrwUQP5 -# OCEmW6YchEyRDSwP4hU9f7B0Ayh14Pw9vJo7jewNjeMPIkmneyLSi0ruv2ox/xRG -# tcJ9yBNC5BaRktjz7stPaojR+PDA2fuBtCo8xKlkt53mUb7AY+CZHHqhLm76pdMF -# 6BHv2TvwlVBeQRN22XjaVVRwCgjgJnNewt7PejcrpUn0qHLgLq+1BN1DzYukWkTr -# 7wT0zl0iXr+NtqUkWSOnWRfe8N21tB6uv3VkW8nFdChtbbZZz24peLtJEZuNrN8X -# f9PTPMzZXDJBI1EciR/91QcGoZFmVbFVb2rUIAs01+ZkewvbhmGVDefX9oZG4/K4 -# gGUsTvTW+r1JZMxUT2MwqQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFM4b8Oz33hAq -# BEfKlAZf0NKh4CIZMB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8G -# A1UdHwRYMFYwVKBSoFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMv -# Y3JsL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBs -# BggrBgEFBQcBAQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0 -# LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUy -# MDIwMTAoMSkuY3J0MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUH -# AwgwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4ICAQCd1gK2Rd+eGL0e -# Hi+iE6/qDY8sbbsO4emancp6KPN+xq5ZAatiBR4jmRRhm+9Vik0Fo0DLWi/N28bF -# I7dXYw09p3vCipbjy4Eoifm0Nud7/4U30i9+7RvW7XOQ3rx37+U7vq9lk6yYpGCN -# p0jlJ188/CuRPgqJnfq5EdeafH2AoG46hKWTeB7DuXasGt6spJOenGedSre34MWZ -# qeTIQ0raOItZnFuGDy4+xoD1qRz2QW+u2gCHaG8AQjhYUM4uTi9t6kttj6c7Xamr -# 2zrWuceDhz7sKLttLTJ7ws5YrA2I8cTlbMAf2KW0GVjKbYGd+LZGduEK7/7fs4GU -# kMqc51FsNdG1n+zgc7zHu2oGGeCBg4s8ZR0ZFyx7jsgm9sSFCKQ5CsbAvlr/60Nd -# k5TeMR8Js2kNUicu2CqZ03833TsvTgk7iD1KLgfS16HEvjN6m4VKJKgjJ7OJJzab -# tS4JQgUnJrIZfyosk4D18rZni9pUwN03WgTmd10WTwiZOu4g8Un6iKcPMY/iFqTu -# 4ntkzFUxBBpbFG6k1CINZmoirEWmCtG3lyZ2IddmjtIefTkIvGWb4Jxzz7l2m/E2 -# kGOixDJHsahZVmwsoNvhy5ku/inU++dXHzw+hlvqTSFT89rIFVhcmsWPDJPNRSSp -# MhoJ33V2Za/lkKcbkUM0SbQgS9qsdzCCB3EwggVZoAMCAQICEzMAAAAVxedrngKb -# SZkAAAAAABUwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQI -# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv -# ZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmlj -# YXRlIEF1dGhvcml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIy -# NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT -# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE -# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXI -# yjVX9gF/bErg4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjo -# YH1qUoNEt6aORmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1y -# aa8dq6z2Nr41JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v -# 3byNpOORj7I5LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pG -# ve2krnopN6zL64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viS -# kR4dPf0gz3N9QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYr -# bqgSUei/BQOj0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlM -# jgK8QmguEOqEUUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSL -# W6CmgyFdXzB0kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AF -# emzFER1y7435UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIu -# rQIDAQABo4IB3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIE -# FgQUKqdS/mTEmr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWn -# G1M1GelyMFwGA1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEW -# M2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5 -# Lmh0bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBi -# AEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV -# 9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3Js -# Lm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAx -# MC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2 -# LTIzLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv -# 6lwUtj5OR2R4sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZn -# OlNN3Zi6th542DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1 -# bSNU5HhTdSRXud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4 -# rPf5KYnDvBewVIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU -# 6ZGyqVvfSaN0DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDF -# NLB62FD+CljdQDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/ -# HltEAY5aGZFrDZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdU -# CbFpAUR+fKFhbHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKi -# excdFYmNcP7ntdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTm -# dHRbatGePu1+oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZq -# ELQdVTNYs6FwZvKhggNNMIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMx -# EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT -# FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJp -# Y2EgT3BlcmF0aW9uczEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjg5MDAtMDVF -# MC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMK -# AQEwBwYFKw4DAhoDFQDuHayKTCaYsYxJh+oWTx6uVPFw+aCBgzCBgKR+MHwxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv -# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymygDAi -# GA8yMDI1MDEwOTAyMjcxMloYDzIwMjUwMTEwMDIyNzEyWjB0MDoGCisGAQQBhFkK -# BAExLDAqMAoCBQDrKbKAAgEAMAcCAQACAhbZMAcCAQACAhMSMAoCBQDrKwQAAgEA -# MDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAI -# AgEAAgMBhqAwDQYJKoZIhvcNAQELBQADggEBACn1b5KnkJiAf9A6R/SjvtbOrGdu -# JWnWonsXKPptDkaQJ/jqh8hZIma3W7JHrYr2Jyv4AXnt4l5fkmspdaMCoq6KGLho -# CdhGggzU70J4s1ohAeSnauOqdS3yV5ddSglwd5dQi7wDyB7Vss6L9hZpZgoljHE+ -# 8LXELYRPEXTUNdh0t/TalsRYXondvormVffUkyXY6nqZlOnUZq26qmr8DCj6dmWc -# cZ+NRtVCuFswqT17sqnw5haDIuCA20MgcRAUAfBOufvyHjb8K/HM76Hm0dtK0j/q -# E0g6Mum/F0YyC9SyYuzJk8mydlwOA4GkkW8gdhmrg7l7SYYRVzpIOeqXVFsxggQN -# MIIECQIBATCBkzB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ -# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u -# MSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAe3h -# X8vV96VdcwABAAAB7TANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0G -# CyqGSIb3DQEJEAEEMC8GCSqGSIb3DQEJBDEiBCAlDRlJWdI5GuiftyJi+gDtKruZ -# qEWEfY8tPHfV0pTRgjCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EII0uDWg0 -# CFseKxK3A16l1wrIwrsSDrXZ6xSf0F4xbMo5MIGYMIGApH4wfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTACEzMAAAHt4V/L1felXXMAAQAAAe0wIgQgHZJuYFot -# PXySbWtoYQzcjhOI+GdzM2vjq7x+59R0CtQwDQYJKoZIhvcNAQELBQAEggIAZIrQ -# Fu33o8czIck9WXTy7f+Oa+7CJTD7KtQfnM3YL3vgjBt7mopEGazCoqhoa0bWnzr0 -# YkF3ck/7sGUyROa1TQ0/5X+mCJ5yFhlUVdglcq+ARKZBTvXUYljFXfOdP+DqtPUg -# nFG8l6/JGSNYuCFQuQV6EJh0/Jcjt1jFkHH3PMNlzkryQA23TvJe/WOevn3LfGhv -# uwMJi27rNlvCmF63p3HNJZpJYY8ti/aKNgxnydU5SC87mtuhGotAuKAFYO7SNdjx -# fgTmZx+WfObfkvc9qWAP83Dm6nJQsLqUiYnockovlNDEL56XneV6LGQTy54fZ0t3 -# ETd6xpWXjE8+UAz2iASScHFOCBbkOnRgwLTzrByJPiNeTI4Kbh39Ctm1b6PUDGP9 -# iLDLeehaFAH7sbH0ccOk00pXdNCEL7eDmeXTtu6kMbw/L1/rT10n8X15VRa8Mshy -# 503Fd9hjmkcRvvs9MPL2Z3njc3xuQ7HOg7KblPOqBhngHhHs+dIeTrX9qP1gX1XX -# TcrVBzNqVO2C8Swur7/a2m4W8LuXCpqslYzBwWJgaykQ/tqOO13M9rnx4EXGrjSZ -# 4q4gvNI7FsJb0WsbIIBeF+jwktYBoEfUV9Pv5j0OKdcrcrwfCdJ5VJ2latZCoCaq -# TjHwobcIgvCSPH9GiXZgWG2uSWRinDsCc60jJkI= -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/PSGetModuleInfo.xml b/Modules/Az.Functions/4.2.0/PSGetModuleInfo.xml deleted file mode 100644 index 124241569526..000000000000 --- a/Modules/Az.Functions/4.2.0/PSGetModuleInfo.xml +++ /dev/null @@ -1,176 +0,0 @@ - - - - Microsoft.PowerShell.Commands.PSRepositoryItemInfo - System.Management.Automation.PSCustomObject - System.Object - - - Az.Functions - 4.2.0 - Module - Microsoft Azure PowerShell - Azure Functions service cmdlets for Azure Resource Manager in Windows PowerShell and PowerShell Core._x000D__x000A__x000D__x000A_For information on Azure Functions, please visit the following: https://learn.microsoft.com/azure/azure-functions/ - Microsoft Corporation - azure-sdk - Microsoft Corporation. All rights reserved. -
2025-01-14T03:15:04-05:00
- - - https://aka.ms/azps-license - https://github.com/Azure/azure-powershell - - - - System.Object[] - System.Array - System.Object - - - Azure - ResourceManager - ARM - PSModule - Functions - PSEdition_Core - PSEdition_Desktop - - - - - System.Collections.Hashtable - System.Object - - - - RoleCapability - - - - - - - Function - - - - Get-AzFunctionApp - Get-AzFunctionAppAvailableLocation - Get-AzFunctionAppPlan - Get-AzFunctionAppSetting - New-AzFunctionApp - New-AzFunctionAppPlan - Remove-AzFunctionApp - Remove-AzFunctionAppPlan - Remove-AzFunctionAppSetting - Restart-AzFunctionApp - Start-AzFunctionApp - Stop-AzFunctionApp - Update-AzFunctionApp - Update-AzFunctionAppPlan - Update-AzFunctionAppSetting - - - - - Cmdlet - - - - DscResource - - - - Workflow - - - - Command - - - - Get-AzFunctionApp - Get-AzFunctionAppAvailableLocation - Get-AzFunctionAppPlan - Get-AzFunctionAppSetting - New-AzFunctionApp - New-AzFunctionAppPlan - Remove-AzFunctionApp - Remove-AzFunctionAppPlan - Remove-AzFunctionAppSetting - Restart-AzFunctionApp - Start-AzFunctionApp - Stop-AzFunctionApp - Update-AzFunctionApp - Update-AzFunctionAppPlan - Update-AzFunctionAppSetting - - - - - - - * Upgraded nuget package to signed package. - - - - - - System.Collections.Specialized.OrderedDictionary - System.Object - - - - Name - Az.Accounts - - - MinimumVersion - 4.0.1 - - - CanonicalId - nuget:Az.Accounts/4.0.1 - - - - - - https://www.powershellgallery.com/api/v2 - PSGallery - NuGet - - - System.Management.Automation.PSCustomObject - System.Object - - - Microsoft Corporation. All rights reserved. - Microsoft Azure PowerShell - Azure Functions service cmdlets for Azure Resource Manager in Windows PowerShell and PowerShell Core._x000D__x000A__x000D__x000A_For information on Azure Functions, please visit the following: https://learn.microsoft.com/azure/azure-functions/ - True - * Upgraded nuget package to signed package. - True - True - 2362118 - 98196668 - 4036547 - 1/14/2025 3:15:04 AM -05:00 - 1/14/2025 3:15:04 AM -05:00 - 1/30/2025 5:20:00 PM -05:00 - Azure ResourceManager ARM PSModule Functions PSEdition_Core PSEdition_Desktop PSFunction_Get-AzFunctionApp PSCommand_Get-AzFunctionApp PSFunction_Get-AzFunctionAppAvailableLocation PSCommand_Get-AzFunctionAppAvailableLocation PSFunction_Get-AzFunctionAppPlan PSCommand_Get-AzFunctionAppPlan PSFunction_Get-AzFunctionAppSetting PSCommand_Get-AzFunctionAppSetting PSFunction_New-AzFunctionApp PSCommand_New-AzFunctionApp PSFunction_New-AzFunctionAppPlan PSCommand_New-AzFunctionAppPlan PSFunction_Remove-AzFunctionApp PSCommand_Remove-AzFunctionApp PSFunction_Remove-AzFunctionAppPlan PSCommand_Remove-AzFunctionAppPlan PSFunction_Remove-AzFunctionAppSetting PSCommand_Remove-AzFunctionAppSetting PSFunction_Restart-AzFunctionApp PSCommand_Restart-AzFunctionApp PSFunction_Start-AzFunctionApp PSCommand_Start-AzFunctionApp PSFunction_Stop-AzFunctionApp PSCommand_Stop-AzFunctionApp PSFunction_Update-AzFunctionApp PSCommand_Update-AzFunctionApp PSFunction_Update-AzFunctionAppPlan PSCommand_Update-AzFunctionAppPlan PSFunction_Update-AzFunctionAppSetting PSCommand_Update-AzFunctionAppSetting PSIncludes_Function - False - 2025-01-30T17:20:00Z - 4.2.0 - Microsoft Corporation - false - Module - Az.Functions.nuspec|Functions.Autorest\custom\Get-AzFunctionApp.ps1|Functions.Autorest\custom\Get-AzFunctionAppSetting.ps1|Functions.Autorest\custom\New-AzFunctionAppPlan.ps1|Functions.Autorest\custom\Remove-AzFunctionAppSetting.ps1|Functions.Autorest\custom\Stop-AzFunctionApp.ps1|Functions.Autorest\custom\Update-AzFunctionAppPlan.ps1|Functions.Autorest\custom\api\Support\AvailablePlanType.cs|Functions.Autorest\custom\api\Support\FunctionAppManagedServiceIdentityUpdateType.cs|Functions.Autorest\custom\api\Support\SkuType.cs|Functions.Autorest\custom\Api20231201\AppServicePlan.cs|Functions.Autorest\custom\FunctionsStack\functionAppStacks.json|Functions.Autorest\internal\Az.Functions.internal.psm1|Functions.Autorest\utils\Get-SubscriptionIdTestSafe.ps1|Functions.Autorest\Az.Functions.format.ps1xml|Functions.Autorest\custom\Az.Functions.custom.psm1|Functions.Autorest\custom\Get-AzFunctionAppAvailableLocation.ps1|Functions.Autorest\custom\HelperFunctions.ps1|Functions.Autorest\custom\Remove-AzFunctionApp.ps1|Functions.Autorest\custom\Restart-AzFunctionApp.ps1|Functions.Autorest\custom\Update-AzFunctionApp.ps1|Functions.Autorest\custom\Update-AzFunctionAppSetting.ps1|Functions.Autorest\custom\api\Support\FunctionAppManagedServiceIdentityCreateType.cs|Functions.Autorest\custom\api\Support\PlanType.cs|Functions.Autorest\custom\api\Support\WorkerType.cs|Functions.Autorest\custom\Api20231201\Site.cs|Functions.Autorest\exports\ProxyCmdletDefinitions.ps1|Functions.Autorest\internal\ProxyCmdletDefinitions.ps1|Functions.Autorest\utils\Unprotect-SecureString.ps1|Az.Functions.psd1|Functions.Autorest\Az.Functions.psm1|Functions.Autorest\custom\Functions.format.ps1xml|Functions.Autorest\custom\Get-AzFunctionAppPlan.ps1|Functions.Autorest\custom\New-AzFunctionApp.ps1|Functions.Autorest\custom\Remove-AzFunctionAppPlan.ps1|Functions.Autorest\custom\Start-AzFunctionApp.ps1|Az.Functions.psm1|Functions.Autorest\bin\Az.Functions.private.dll|Functions.Autorest\custom\Functions.types.ps1xml|.signature.p7s - eafced71-8742-4a2c-5afd-13117428dd90 - 5.1 - 4.7.2 - Microsoft Corporation - - - C:\GitHub\CIPP Workspace\CIPP-API\Modules\Az.Functions\4.2.0 -
-
-
diff --git a/Modules/Az.KeyVault/6.3.1/.signature.p7s b/Modules/Az.KeyVault/6.3.1/.signature.p7s deleted file mode 100644 index f8f2e4bab4c8..000000000000 Binary files a/Modules/Az.KeyVault/6.3.1/.signature.p7s and /dev/null differ diff --git a/Modules/Az.KeyVault/6.3.1/Az.KeyVault.Extension/Az.KeyVault.Extension.psd1 b/Modules/Az.KeyVault/6.3.1/Az.KeyVault.Extension/Az.KeyVault.Extension.psd1 deleted file mode 100644 index 3d998af727de..000000000000 --- a/Modules/Az.KeyVault/6.3.1/Az.KeyVault.Extension/Az.KeyVault.Extension.psd1 +++ /dev/null @@ -1,223 +0,0 @@ -@{ - ModuleVersion = '1.0' - RootModule = '.\Az.KeyVault.Extension.psm1' - FunctionsToExport = @('Set-Secret','Get-Secret','Remove-Secret','Get-SecretInfo','Test-SecretVault') -} - -# SIG # Begin signature block -# MIIoQwYJKoZIhvcNAQcCoIIoNDCCKDACAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBYCJ3nYSwEBxJk -# WHIXQdOalH/h5CcR4O3Y0nHU2vJr26CCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIFWrtf5Yo/NtHS0RAUWXnbgh -# ZQV3DmkpIe8jWInnNkaoMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAHlojNpUn8JVn+WRi0olKMZGmRlLTHfRz+Sg5YsFk/t+hnUZTEtAJFjrs -# mLx6hRyc/8Lh9A5UCjcFo6gAQXZNKxIsJcDMYn1Cq9EXkIuue1OLu/jHmja2ucqh -# N2nOomHf74P6ipqNXu5hTm+CRBQwJ0ueI80/7o+e+Iwh1nlQPYG3gGDy8UkpWip5 -# A4Jj4LNH/29CJFi8CEntaBXJhT++Z3m1LPDF/5oCr8ORm2+i0fohhPsfMmSyrjJf -# t3PcqvUbZ1ElwEJ+JhvXLMW1kriSCl6ycxP37JgRNUOg53xOfta4KrQGyaPjAUWM -# TsiidsGtHisefv0mqtBVtNccUxCnZ6GCF60wghepBgorBgEEAYI3AwMBMYIXmTCC -# F5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsq -# hkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCCeHkseZ4l3RiuAeTFarcYKVhXEHYUjoLbs2aj7+x4dfgIGZ2K0f1ac -# GBMyMDI1MDEwOTA3MjEzOS4wODhaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo2RjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB/Bigr8xpWoc6AAEAAAH8MA0G -# CSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI0 -# MDcyNTE4MzExNFoXDTI1MTAyMjE4MzExNFowgdMxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9w -# ZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjZGMUEt -# MDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp1DAKLxpbQcPVYPHlJHy -# W7W5lBZjJWWDjMfl5WyhuAylP/LDm2hb4ymUmSymV0EFRQcmM8BypwjhWP8F7x4i -# O88d+9GZ9MQmNh3jSDohhXXgf8rONEAyfCPVmJzM7ytsurZ9xocbuEL7+P7EkIwo -# OuMFlTF2G/zuqx1E+wANslpPqPpb8PC56BQxgJCI1LOF5lk3AePJ78OL3aw/Ndlk -# vdVl3VgBSPX4Nawt3UgUofuPn/cp9vwKKBwuIWQEFZ837GXXITshd2Mfs6oYfxXE -# tmj2SBGEhxVs7xERuWGb0cK6afy7naKkbZI2v1UqsxuZt94rn/ey2ynvunlx0R6/ -# b6nNkC1rOTAfWlpsAj/QlzyM6uYTSxYZC2YWzLbbRl0lRtSz+4TdpUU/oAZSB+Y+ -# s12Rqmgzi7RVxNcI2lm//sCEm6A63nCJCgYtM+LLe9pTshl/Wf8OOuPQRiA+stTs -# g89BOG9tblaz2kfeOkYf5hdH8phAbuOuDQfr6s5Ya6W+vZz6E0Zsenzi0OtMf5RC -# a2hADYVgUxD+grC8EptfWeVAWgYCaQFheNN/ZGNQMkk78V63yoPBffJEAu+B5xlT -# PYoijUdo9NXovJmoGXj6R8Tgso+QPaAGHKxCbHa1QL9ASMF3Os1jrogCHGiykfp1 -# dKGnmA5wJT6Nx7BedlSDsAkCAwEAAaOCAUkwggFFMB0GA1UdDgQWBBSY8aUrsUaz -# hxByH79dhiQCL/7QdjAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBf -# BgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmww -# bAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29m -# dC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0El -# MjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUF -# BwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEAT7ss/ZAZ0bTa -# FsrsiJYd//LQ6ImKb9JZSKiRw9xs8hwk5Y/7zign9gGtweRChC2lJ8GVRHgrFkBx -# ACjuuPprSz/UYX7n522JKcudnWuIeE1p30BZrqPTOnscD98DZi6WNTAymnaS7it5 -# qAgNInreAJbTU2cAosJoeXAHr50YgSGlmJM+cN6mYLAL6TTFMtFYJrpK9TM5Ryh5 -# eZmm6UTJnGg0jt1pF/2u8PSdz3dDy7DF7KDJad2qHxZORvM3k9V8Yn3JI5YLPuLs -# o2J5s3fpXyCVgR/hq86g5zjd9bRRyyiC8iLIm/N95q6HWVsCeySetrqfsDyYWStw -# L96hy7DIyLL5ih8YFMd0AdmvTRoylmADuKwE2TQCTvPnjnLk7ypJW29t17Yya4V+ -# Jlz54sBnPU7kIeYZsvUT+YKgykP1QB+p+uUdRH6e79Vaiz+iewWrIJZ4tXkDMmL2 -# 1nh0j+58E1ecAYDvT6B4yFIeonxA/6Gl9Xs7JLciPCIC6hGdliiEBpyYeUF0ohZF -# n7NKQu80IZ0jd511WA2bq6x9aUq/zFyf8Egw+dunUj1KtNoWpq7VuJqapckYsmvm -# mYHZXCjK1Eus7V1I+aXjrBYuqyM9QpeFZU4U01YG15uWwUCaj0uZlah/RGSYMd84 -# y9DCqOpfeKE6PLMk7hLnhvcOQrnxP6kwggdxMIIFWaADAgECAhMzAAAAFcXna54C -# m0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp -# Y2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMy -# MjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0B -# AQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51 -# yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY -# 6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9 -# cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN -# 7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDua -# Rr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74 -# kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2 -# K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5 -# TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZk -# i1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9Q -# BXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3Pmri -# Lq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUC -# BBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJl -# pxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIB -# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9y -# eS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUA -# YgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU -# 1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2Ny -# bC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIw -# MTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0w -# Ni0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/yp -# b+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulm -# ZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM -# 9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECW -# OKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4 -# FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3Uw -# xTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPX -# fx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVX -# VAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGC -# onsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU -# 5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEG -# ahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo2RjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUATkEpJXOaqI2wfqBsw4NLVwqYqqqggYMw -# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsF -# AAIFAOspikYwIhgPMjAyNTAxMDgyMzM1MzRaGA8yMDI1MDEwOTIzMzUzNFowdDA6 -# BgorBgEEAYRZCgQBMSwwKjAKAgUA6ymKRgIBADAHAgEAAgICnzAHAgEAAgIS5jAK -# AgUA6yrbxgIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIB -# AAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQB4d3GGMvHlPvhW -# VCiZO+Hxa6p9FoMWl6mdTziZ9ghePCOm5QE+r8hw5pPwYd2UqENBe6G+ZuCrugRQ -# HgCx1wMzfx4IdE64mxRdrohX1O51cI3/J5LWARM/yLemjIQkr81/w/cSUpR38KRr -# zmkzN7bSgdfjimliCqg6/sfLppW0VCMEQfsxpP5kK45VEi6NsxkUAQq0XRphg5tR -# 5WfVAWVmSuC4HbBM50dM/bluTJcBbA+2I/CGFWW6TjVWa5dHJYVyLaXrkTyjF3nT -# L4r8Dv4wfwZxB6xULOwyjVViIWolltMPK217+i+tHSKAqmTbm3I2Zluxuc/+ja2M -# kyhi0+F2MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAH8GKCvzGlahzoAAQAAAfwwDQYJYIZIAWUDBAIBBQCgggFKMBoGCSqG -# SIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgqIPFhY59OOby -# Pg3YS6pKkE126THsKAXel1qN40dPjWowgfoGCyqGSIb3DQEJEAIvMYHqMIHnMIHk -# MIG9BCCVQq+Qu+/h/BOVP4wweUwbHuCUhh+T7hq3d5MCaNEtYjCBmDCBgKR+MHwx -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1p -# Y3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB/Bigr8xpWoc6AAEAAAH8 -# MCIEIG/k+E7zlheViYpK6+4Lo/rwguKJFMT24+YxPKyKBtYKMA0GCSqGSIb3DQEB -# CwUABIICAF8WGT0VPFR5qsW6OAJSd4UAT2ly6PUbnFRfBKkHk3q6e9Li2tCRRWUK -# rRpWVWRWQ1InoA1kkd0bGTJZlYtk3OxC63Du3UAW8xfZmP3vOOo3dWK1DB01NTz5 -# QMBve9f8cQGxOSeuoc2A/WJgubfWuzYdlUZnuTekaUSljMZv1s/f90d3ivnvAnYm -# FQf8MxojsMh6rbrxpAp42F1i1Uhbw2RO1kTN73YdeVDWGzPnU14jB3rg9v8IB+9Z -# DVkYVDZ35UdyK6707sT46BaNlkqOEN5MWVv2nGezR7jysyGkcE+wOTnnLjfTk6br -# YWtYN2pYuKL3jrMJf1P+tp2SUeYSuzahWyp7wTwGPFdm7tk3ubkZxMorh+mEXBXj -# gT6W143+LnR9GeLdn/wlsNhs3ro3JwaUrE7P6XDmQ+3kJ/Xgk338DQzRNAIRGCHs -# 412wO3e7/Hzb+A+Vz49IYnavqloOFBzjN/UAroacKZEfmATrja4jDbL6aTuQ9qwD -# csyv83qwgM51r+93Xb0gl0lBY5ZLpc73LfI3WSE1WZLyQg+2OOafif6lGi/4aQTo -# 7DOnW+RTb8jwyKADclBq8bTHdHBjCYTZrrgx7C37AmtBP6dipD3/qb1+GGZOUSvA -# VApEHD7Gs/l7tGASxJKt/BPugY+HXbYUDhzfoVAudUNfzRNvqIrS -# SIG # End signature block diff --git a/Modules/Az.KeyVault/6.3.1/Az.KeyVault.Extension/Az.KeyVault.Extension.psm1 b/Modules/Az.KeyVault/6.3.1/Az.KeyVault.Extension/Az.KeyVault.Extension.psm1 deleted file mode 100644 index 6c9d012324e5..000000000000 --- a/Modules/Az.KeyVault/6.3.1/Az.KeyVault.Extension/Az.KeyVault.Extension.psm1 +++ /dev/null @@ -1,516 +0,0 @@ -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. - -function Check-SubscriptionLogIn -{ - param ( - [object] $SubscriptionId, - [object] $AzKVaultName - ) - - if("string" -ne $SubscriptionId.GetType().Name) - { - throw "The type of SubscriptionId should be string, current is " + $SubscriptionId.GetType().Name + ". Please check registration information by 'Get-SecretVault | fl'" - } - - if("string" -ne $AzKVaultName.GetType().Name) - { - throw "The type of AzKVaultName should be string, current is " + $AzKVaultName.GetType().Name + ". Please check registration information by 'Get-SecretVault | fl'" - } - - $azContext = Az.Accounts\Get-AzContext - if (($null -eq $azContext) -or ($azContext.Subscription.Id -ne $SubscriptionId)) - { - try - { - Set-AzContext -SubscriptionId ${SubscriptionId} -ErrorAction Stop - } - catch - { - throw $_.ToString() + "To use Azure vault named '${AzKVaultName}', please try 'Connect-AzAccount -SubscriptionId {SubscriptionId}' to log into Azure account subscription '${SubscriptionId}'." - } - } -} - -function Get-Secret -{ - param ( - [string] $Name, - [string] $VaultName, - [hashtable] $AdditionalParameters - ) - - $secret = Az.KeyVault\Get-AzKeyVaultSecret -Name $Name -VaultName $AdditionalParameters.AZKVaultName - if ($null -ne $secret) - { - switch ($secret.ContentType) { - 'ByteArray' - { - $SecretValue = Get-ByteArray $Secret - } - 'String' - { - $SecretValue = Get-String $Secret - } - 'PSCredential' - { - $SecretValue = Get-PSCredential $Secret - } - 'Hashtable' - { - $SecretValue = Get-Hashtable $Secret - } - Default - { - $SecretValue = Get-SecureString $Secret - } - } - return $SecretValue - } -} - -function Get-ByteArray -{ - param ( - [Parameter(Mandatory=$true, Position=0)] - [object] $Secret - ) - $secretValueText = Get-String $Secret - return [System.Text.Encoding]::ASCII.GetBytes($secretValueText) -} - -function Get-String -{ - param ( - [Parameter(Mandatory=$true, Position=0)] - [object] $Secret - ) - - $ssPtr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($Secret.SecretValue) - try { - $secretValueText = [System.Runtime.InteropServices.Marshal]::PtrToStringBSTR($ssPtr) - } finally { - [System.Runtime.InteropServices.Marshal]::ZeroFreeBSTR($ssPtr) - } - return $secretValueText -} - -function Get-SecureString -{ - param ( - [Parameter(Mandatory=$true, Position=0)] - [object] $Secret - ) - - return $Secret.SecretValue -} - -function Get-PSCredential -{ - param ( - [Parameter(Mandatory=$true, Position=0)] - [object] $Secret - ) - - $secretHashTable = Get-Hashtable $Secret - return [System.Management.Automation.PSCredential]::new($secretHashTable["UserName"], ($secretHashTable["Password"] | ConvertTo-SecureString -AsPlainText -Force)) -} - -function Get-Hashtable -{ - param ( - [Parameter(Mandatory=$true, Position=0)] - [object] $Secret - ) - - $jsonObject = Get-String $Secret | ConvertFrom-Json - $hashtable = @{} - $jsonObject.psobject.Properties | foreach { $hashtable[$_.Name] = $_.Value } - return $hashtable -} - -function Set-Secret -{ - param ( - [string] $Name, - [object] $Secret, - [string] $VaultName, - [hashtable] $AdditionalParameters - ) - - switch ($Secret.GetType().Name) { - 'Byte[]' - { - Set-ByteArray -Name $Name -Secret $Secret -AZKVaultName $AdditionalParameters.AZKVaultName -ContentType 'ByteArray' - } - 'String' - { - Set-String -Name $Name -Secret $Secret -AZKVaultName $AdditionalParameters.AZKVaultName -ContentType 'String' - } - 'SecureString' - { - Set-SecureString -Name $Name -Secret $Secret -AZKVaultName $AdditionalParameters.AZKVaultName -ContentType 'SecureString' - } - 'PSCredential' - { - Set-PSCredential -Name $Name -Secret $Secret -AZKVaultName $AdditionalParameters.AZKVaultName -ContentType 'PSCredential' - } - 'Hashtable' - { - Set-Hashtable -Name $Name -Secret $Secret -AZKVaultName $AdditionalParameters.AZKVaultName -ContentType 'Hashtable' - } - Default - { - throw "Invalid type. Types supported: byte[], string, SecureString, PSCredential, Hashtable"; - } - } - - return $? -} - -function Set-ByteArray -{ - param ( - [string] $Name, - [Byte[]] $Secret, - [string] $AZKVaultName, - [string] $ContentType - ) - - $SecretString = [System.Text.Encoding]::ASCII.GetString($Secret) - Set-String -Name $Name -Secret $SecretString -AZKVaultName $AZKVaultName -ContentType $ContentType -} - -function Set-String -{ - param ( - [string] $Name, - [string] $Secret, - [string] $AZKVaultName, - [string] $ContentType - ) - $SecureSecret = ConvertTo-SecureString -String $Secret -AsPlainText -Force - $null = Az.KeyVault\Set-AzKeyVaultSecret -Name $Name -SecretValue $SecureSecret -VaultName $AZKVaultName -ContentType $ContentType -} - -function Set-SecureString -{ - param ( - [string] $Name, - [SecureString] $Secret, - [string] $AZKVaultName, - [string] $ContentType - ) - - $null = Az.KeyVault\Set-AzKeyVaultSecret -Name $Name -SecretValue $Secret -VaultName $AZKVaultName -ContentType $ContentType -} - -function Set-PSCredential -{ - param ( - [string] $Name, - [PSCredential] $Secret, - [string] $AZKVaultName, - [string] $ContentType - ) - $secretHashTable = @{"UserName" = $Secret.UserName; "Password" = $Secret.GetNetworkCredential().Password} - $SecretString = ConvertTo-Json $secretHashTable - Set-String -Name $Name -Secret $SecretString -AZKVaultName $AZKVaultName -ContentType $ContentType -} - -function Set-Hashtable -{ - param ( - [string] $Name, - [Hashtable] $Secret, - [string] $AZKVaultName, - [string] $ContentType - ) - $SecretString = ConvertTo-Json $Secret - Set-String -Name $Name -Secret $SecretString -AZKVaultName $AZKVaultName -ContentType $ContentType -} - -function Remove-Secret -{ - param ( - [string] $Name, - [string] $VaultName, - [hashtable] $AdditionalParameters - ) - - $null = Az.KeyVault\Remove-AzKeyVaultSecret -Name $Name -VaultName $AdditionalParameters.AZKVaultName -Force - return $? -} - -function Get-SecretInfo -{ - param ( - [string] $Filter, - [string] $VaultName, - [hashtable] $AdditionalParameters - ) - - if ([string]::IsNullOrEmpty($Filter)) - { - $Filter = "*" - } - - $pattern = [WildcardPattern]::new($Filter) - - $vaultSecretInfos = Az.KeyVault\Get-AzKeyVaultSecret -VaultName $AdditionalParameters.AZKVaultName - - foreach ($vaultSecretInfo in $vaultSecretInfos) - { - if ($pattern.IsMatch($vaultSecretInfo.Name)) - { - [Microsoft.PowerShell.SecretManagement.SecretType]$secretType = New-Object Microsoft.PowerShell.SecretManagement.SecretType - if (![System.Enum]::TryParse($vaultSecretInfo.ContentType, $true, [ref]$secretType)) - { - $secretType = "Unknown" - } - Write-Output ( - [Microsoft.PowerShell.SecretManagement.SecretInformation]::new( - $vaultSecretInfo.Name, - $secretType, - $VaultName) - ) - } - } -} - -function Test-SecretVault -{ - param ( - [string] $VaultName, - [hashtable] $AdditionalParameters - ) - - try - { - Check-SubscriptionLogIn $AdditionalParameters.SubscriptionId $AdditionalParameters.AZKVaultName - } - catch - { - Write-Error $_ - return $false - } - - return $true -} -# SIG # Begin signature block -# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCyKy+DlRs3fTBA -# u5XhgR3udHDfTLCuiuI7TkzA4f8+cKCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIM34xkFm1fD1pKv4+nrAj2xv -# HhFVBQvPagnKrJ6UmKIaMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEATiVwtp6VP2X/tCBaKIpSRBq3Pv32LTrz711EuVrCrWG6oWx0uoNdfdsR -# JDsBAfSZtnyvwSlIGGYpl6ICMyTuxmgC7EXyIHE2ozC5reETFeO4BeYJLJfbuEUp -# xThB5St4iEDb9DFjhV+lzdIvTt9JvYF8T//WDAOk4f7ZqRg6GuQhkJ31h4Fe3Fep -# t1PvvQ1g5eRzgmu0bmFn41vVtjaCMGBY/dICsXwOUP1gUeCMyp3Vu3DoSUy4xEu8 -# 8nJs9xLwj+kvULFYSUzmunD14UyxDsRkkaUMW7TUIRXgxJG9xNG+wmzQ/425Zh0R -# pL20aceJirasLvGDuXFlH4KnoQBW5KGCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC -# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCChroqiyl8Uwo4CMTufNcEONiuXlZ2zA+YGKkcEesmiKwIGZ2f84IFi -# GBMyMDI1MDEwOTA2MzY0My4xNzJaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046MzcwMy0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHqMIIHIDCCBQigAwIBAgITMwAAAeqaJHLVWT9hYwABAAAB6jANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# MzBaFw0yNTAzMDUxODQ1MzBaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046MzcwMy0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQC1C1/xSD8gB9X7Ludoo2rWb2ksqaF65QtJkbQpmsc6 -# G4bg5MOv6WP/uJ4XOJvKX/c1t0ej4oWBqdGD6VbjXX4T0KfylTulrzKtgxnxZh7q -# 1uD0Dy/w5G0DJDPb6oxQrz6vMV2Z3y9ZxjfZqBnDfqGon/4VDHnZhdas22svSC5G -# HywsQ2J90MM7L4ecY8TnLI85kXXTVESb09txL2tHMYrB+KHCy08ds36an7IcOGfR -# mhHbFoPa5om9YGpVKS8xeT7EAwW7WbXL/lo5p9KRRIjAlsBBHD1TdGBucrGC3TQX -# STp9s7DjkvvNFuUa0BKsz6UiCLxJGQSZhd2iOJTEfJ1fxYk2nY6SCKsV+VmtV5ai -# PzY/sWoFY542+zzrAPr4elrvr9uB6ci/Kci//EOERZEUTBPXME/ia+t8jrT2y3ug -# 15MSCVuhOsNrmuZFwaRCrRED0yz4V9wlMTGHIJW55iNM3HPVJJ19vOSvrCP9lsEc -# EwWZIQ1FCyPOnkM1fs7880dahAa5UmPqMk5WEKxzDPVp081X5RQ6HGVUz6ZdgQ0j -# cT59EG+CKDPRD6mx8ovzIpS/r/wEHPKt5kOhYrjyQHXc9KHKTWfXpAVj1Syqt5X4 -# nr+Mpeubv+N/PjQEPr0iYJDjSzJrqILhBs5pytb6vyR8HUVMp+mAA4rXjOw42vkH -# fQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFCuBRSWiUebpF0BU1MTIcosFblleMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQAog61WXj9+/nxVbX3G37KgvyoNAnuu2w3H -# oWZj3H0YCeQ3b9KSZThVThW4iFcHrKnhFMBbXJX4uQI53kOWSaWCaV3xCznpRt3c -# 4/gSn3dvO/1GP3MJkpJfgo56CgS9zLOiP31kfmpUdPqekZb4ivMR6LoPb5HNlq0W -# bBpzFbtsTjNrTyfqqcqAwc6r99Df2UQTqDa0vzwpA8CxiAg2KlbPyMwBOPcr9hJT -# 8sGpX/ZhLDh11dZcbUAzXHo1RJorSSftVa9hLWnzxGzEGafPUwLmoETihOGLqIQl -# Cpvr94Hiak0Gq0wY6lduUQjk/lxZ4EzAw/cGMek8J3QdiNS8u9ujYh1B7NLr6t3I -# glfScDV3bdVWet1itTUoKVRLIivRDwAT7dRH13Cq32j2JG5BYu/XitRE8cdzaJmD -# VBzYhlPl9QXvC+6qR8I6NIN/9914bTq/S4g6FF4f1dixUxE4qlfUPMixGr0Ft4/S -# 0P4fwmhs+WHRn62PB4j3zCHixKJCsRn9IR3ExBQKQdMi5auiqB6xQBADUf+F7hSK -# ZfbA8sFSFreLSqhvj+qUQF84NcxuaxpbJWVpsO18IL4Qbt45Cz/QMa7EmMGNn7a8 -# MM3uTQOlQy0u6c/jq111i1JqMjayTceQZNMBMM5EMc5Dr5m3T4bDj9WTNLgP8SFe -# 3EqTaWVMOTCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNN -# MIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjM3MDMtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQCJ -# 2x7cQfjpRskJ8UGIctOCkmEkj6CBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymMujAiGA8yMDI1MDEwODIzNDYw -# MloYDzIwMjUwMTA5MjM0NjAyWjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDrKYy6 -# AgEAMAcCAQACAilmMAcCAQACAhNMMAoCBQDrKt46AgEAMDYGCisGAQQBhFkKBAIx -# KDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZI -# hvcNAQELBQADggEBAD82DqrGKBeLyB/qhaHn5sL84B6jIvZs4S+TbOLtcyeb2OGU -# vJPQLbs2boWVY31xNu7YC+SO5o3vMRELcOEQll/D0BBAOdkhoeONpoeMGJy64+7k -# j8iO8HV8BZF5DibWvBkO5D+I86Bw2jOnmz+M5yKq/EFMqPjpi+mwYZxULfR7uCDU -# ORw6xkCd0tbbBqwR8DIWJ2RMLq+IiXgZ6dCfta4r/yDFIErdsemsNHSYwKo9+Pj1 -# PXbpbU5FsUG5SMFCCkQ7Kl1dvmOnjnS7Enoi1+Z0krZCID1CpcrrsnE1QKkb+ctD -# 1mINDaMZiypooNA67hyJqNdpH24pvqzN8Io55J8xggQNMIIECQIBATCBkzB8MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy -# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAeqaJHLVWT9hYwABAAAB6jAN -# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G -# CSqGSIb3DQEJBDEiBCA3KeXPsRDuRIBib4/x9lm7pLtcgYX+1GBPKj4D92fylDCB -# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EICmPodXjZDR4iwg0ltLANXBh5G1u -# KqKIvq8sjKekuGZ4MIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAHqmiRy1Vk/YWMAAQAAAeowIgQgxLhl/KOB9b+5yF1sflQqRHWT5fc9 -# MqZDK69Ub+YuTrUwDQYJKoZIhvcNAQELBQAEggIACSQJ8pSJIRu+MYq7vA8C5GyU -# +GFgicNGY/2nrf2pq+Y/kXkAnwgSWOB3gyjr74QTPQv7cHoxKgReOwMhv+PA7KmX -# 82Uh28CzEM/FnhlNQWpCMp7qklKs2+7JlsapgvAaQ0C/ZAtAwNKLGFdwDVE3OWY6 -# JQjjwoE18z6G3QVe4I6SgATSr2QpeVqWqurPI+xt22AqH8bNvJ9RC9fOta8Oz/L6 -# UwIFICc4cmNmd1ak9k7a+G120b7TO+2h5FjkgiJn9A3+21bw1s2Eq63v6rffoySr -# aknzDarMOJ81RtT7sLV2qolTjpdjTykoGpuJSsvhdR7teBsUluBSP3NQC3v9Lw09 -# MQj0rCRK45/n6FAyts/yM09NnRPkQ89sMiqFOXoaUcvT/154U5Vpt17qJU7dhC98 -# 9CajcecVVWBW+e+YomGQKBR+qVihOmXEtHtKqeS5mOC2DNxbz31gNU3ghRK7u7jv -# TuhnN5ogBIsc6lH1o7UG9C2zc7DrvAcbx2bB+JqQWgM5Kidcn01/Ltv0g+Hym9RW -# KELOQrRjAP2s343gHx0FZDqvc5or75WQpxgdVYNCYbkblWpqwevmq8FdwKa9GyCB -# yC0YA17OwDY4dmG8eXZEsu9fcLmxaOBgw4TnArQxCwKq8DbclvZR7yvmETvSd/v1 -# AKTpDS1FylmOeu2z/oE= -# SIG # End signature block diff --git a/Modules/Az.KeyVault/6.3.1/Az.KeyVault.psd1 b/Modules/Az.KeyVault/6.3.1/Az.KeyVault.psd1 deleted file mode 100644 index 2758e0e44c7e..000000000000 --- a/Modules/Az.KeyVault/6.3.1/Az.KeyVault.psd1 +++ /dev/null @@ -1,417 +0,0 @@ -# -# Module manifest for module 'Az.KeyVault' -# -# Generated by: Microsoft Corporation -# -# Generated on: 1/9/2025 -# - -@{ - -# Script module or binary module file associated with this manifest. -RootModule = 'Az.KeyVault.psm1' - -# Version number of this module. -ModuleVersion = '6.3.1' - -# Supported PSEditions -CompatiblePSEditions = 'Core', 'Desktop' - -# ID used to uniquely identify this module -GUID = 'cd188042-f215-4657-adfe-c17ae28cf730' - -# Author of this module -Author = 'Microsoft Corporation' - -# Company or vendor of this module -CompanyName = 'Microsoft Corporation' - -# Copyright statement for this module -Copyright = 'Microsoft Corporation. All rights reserved.' - -# Description of the functionality provided by this module -Description = 'Microsoft Azure PowerShell - Key Vault service cmdlets for Azure Resource Manager in Windows PowerShell and PowerShell Core. - -For more information on Key Vault, please visit the following: https://learn.microsoft.com/azure/key-vault/' - -# Minimum version of the PowerShell engine required by this module -PowerShellVersion = '5.1' - -# Name of the PowerShell host required by this module -# PowerShellHostName = '' - -# Minimum version of the PowerShell host required by this module -# PowerShellHostVersion = '' - -# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -DotNetFrameworkVersion = '4.7.2' - -# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -# ClrVersion = '' - -# Processor architecture (None, X86, Amd64) required by this module -# ProcessorArchitecture = '' - -# Modules that must be imported into the global environment prior to importing this module -RequiredModules = @() - -# Assemblies that must be loaded prior to importing this module -RequiredAssemblies = 'Azure.Security.KeyVault.Administration.dll', - 'Azure.Security.KeyVault.Certificates.dll', - 'Azure.Security.KeyVault.Keys.dll', 'BouncyCastle.Crypto.dll', - 'KeyVault.Autorest/bin/Az.KeyVault.private.dll', - 'Microsoft.Azure.KeyVault.dll', - 'Microsoft.Azure.KeyVault.WebKey.dll', - 'Microsoft.Azure.PowerShell.KeyVault.Management.Sdk.dll' - -# Script files (.ps1) that are run in the caller's environment prior to importing this module. -# ScriptsToProcess = @() - -# Type files (.ps1xml) to be loaded when importing this module -# TypesToProcess = @() - -# Format files (.ps1xml) to be loaded when importing this module -FormatsToProcess = 'KeyVault.Autorest\Az.KeyVault.format.ps1xml', - 'KeyVault.format.ps1xml', 'keyvault.generated.format.ps1xml' - -# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess -NestedModules = @('./Az.KeyVault.Extension', 'KeyVault.Autorest/Az.KeyVault.psm1') - -# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. -FunctionsToExport = 'Add-AzKeyVaultManagedHsmRegion', 'Get-AzKeyVaultManagedHsmRegion', - 'Remove-AzKeyVaultManagedHsmRegion', - 'Test-AzKeyVaultManagedHsmNameAvailability', - 'Test-AzKeyVaultNameAvailability' - -# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. -CmdletsToExport = 'Add-AzKeyVaultCertificate', 'Add-AzKeyVaultCertificateContact', - 'Add-AzKeyVaultKey', 'Add-AzKeyVaultManagedStorageAccount', - 'Add-AzKeyVaultNetworkRule', 'Backup-AzKeyVault', - 'Backup-AzKeyVaultCertificate', 'Backup-AzKeyVaultKey', - 'Backup-AzKeyVaultManagedStorageAccount', 'Backup-AzKeyVaultSecret', - 'Export-AzKeyVaultSecurityDomain', 'Get-AzKeyVault', - 'Get-AzKeyVaultCertificate', 'Get-AzKeyVaultCertificateContact', - 'Get-AzKeyVaultCertificateIssuer', - 'Get-AzKeyVaultCertificateOperation', - 'Get-AzKeyVaultCertificatePolicy', 'Get-AzKeyVaultKey', - 'Get-AzKeyVaultKeyRotationPolicy', 'Get-AzKeyVaultManagedHsm', - 'Get-AzKeyVaultManagedStorageAccount', - 'Get-AzKeyVaultManagedStorageSasDefinition', - 'Get-AzKeyVaultRandomNumber', 'Get-AzKeyVaultRoleAssignment', - 'Get-AzKeyVaultRoleDefinition', 'Get-AzKeyVaultSecret', - 'Get-AzKeyVaultSetting', 'Import-AzKeyVaultCertificate', - 'Import-AzKeyVaultSecurityDomain', 'Invoke-AzKeyVaultKeyOperation', - 'Invoke-AzKeyVaultKeyRotation', 'New-AzKeyVault', - 'New-AzKeyVaultCertificateAdministratorDetail', - 'New-AzKeyVaultCertificateOrganizationDetail', - 'New-AzKeyVaultCertificatePolicy', 'New-AzKeyVaultManagedHsm', - 'New-AzKeyVaultNetworkRuleSetObject', - 'New-AzKeyVaultRoleAssignment', 'New-AzKeyVaultRoleDefinition', - 'Remove-AzKeyVault', 'Remove-AzKeyVaultAccessPolicy', - 'Remove-AzKeyVaultCertificate', - 'Remove-AzKeyVaultCertificateContact', - 'Remove-AzKeyVaultCertificateIssuer', - 'Remove-AzKeyVaultCertificateOperation', 'Remove-AzKeyVaultKey', - 'Remove-AzKeyVaultManagedHsm', - 'Remove-AzKeyVaultManagedStorageAccount', - 'Remove-AzKeyVaultManagedStorageSasDefinition', - 'Remove-AzKeyVaultNetworkRule', 'Remove-AzKeyVaultRoleAssignment', - 'Remove-AzKeyVaultRoleDefinition', 'Remove-AzKeyVaultSecret', - 'Restore-AzKeyVault', 'Restore-AzKeyVaultCertificate', - 'Restore-AzKeyVaultKey', 'Restore-AzKeyVaultManagedStorageAccount', - 'Restore-AzKeyVaultSecret', 'Set-AzKeyVaultAccessPolicy', - 'Set-AzKeyVaultCertificateIssuer', - 'Set-AzKeyVaultCertificatePolicy', - 'Set-AzKeyVaultKeyRotationPolicy', - 'Set-AzKeyVaultManagedStorageSasDefinition', 'Set-AzKeyVaultSecret', - 'Stop-AzKeyVaultCertificateOperation', - 'Undo-AzKeyVaultCertificateRemoval', 'Undo-AzKeyVaultKeyRemoval', - 'Undo-AzKeyVaultManagedHsmRemoval', - 'Undo-AzKeyVaultManagedStorageAccountRemoval', - 'Undo-AzKeyVaultManagedStorageSasDefinitionRemoval', - 'Undo-AzKeyVaultRemoval', 'Undo-AzKeyVaultSecretRemoval', - 'Update-AzKeyVault', 'Update-AzKeyVaultCertificate', - 'Update-AzKeyVaultKey', 'Update-AzKeyVaultManagedHsm', - 'Update-AzKeyVaultManagedStorageAccount', - 'Update-AzKeyVaultManagedStorageAccountKey', - 'Update-AzKeyVaultNetworkRuleSet', 'Update-AzKeyVaultSecret', - 'Update-AzKeyVaultSetting' - -# Variables to export from this module -# VariablesToExport = @() - -# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. -AliasesToExport = 'Set-AzKeyVaultCertificateAttribute', 'Set-AzKeyVaultKey', - 'Set-AzKeyVaultKeyAttribute', 'Set-AzKeyVaultRoleDefinition', - 'Set-AzKeyVaultSecretAttribute' - -# DSC resources to export from this module -# DscResourcesToExport = @() - -# List of all modules packaged with this module -ModuleList = @(@{ModuleName = 'Az.Accounts'; ModuleVersion = '4.0.1'; }) - -# List of all files packaged with this module -# FileList = @() - -# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. -PrivateData = @{ - - PSData = @{ - - # Tags applied to this module. These help with module discovery in online galleries. - Tags = 'Azure','ResourceManager','ARM','KeyVault','SecretManagement' - - # A URL to the license for this module. - LicenseUri = 'https://aka.ms/azps-license' - - # A URL to the main website for this project. - ProjectUri = 'https://github.com/Azure/azure-powershell' - - # A URL to an icon representing this module. - # IconUri = '' - - # ReleaseNotes of this module - ReleaseNotes = '* Upgraded nuget package to signed package. -* Upgraded Azure.Core to 1.44.1.' - - # Prerelease string of this module - # Prerelease = '' - - # Flag to indicate whether the module requires explicit user acceptance for install/update/save - # RequireLicenseAcceptance = $false - - # External dependent modules of this module - # ExternalModuleDependencies = @() - - } # End of PSData hashtable - - } # End of PrivateData hashtable - -# HelpInfo URI of this module -# HelpInfoURI = '' - -# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. -# DefaultCommandPrefix = '' - -} - - -# SIG # Begin signature block -# MIIoUgYJKoZIhvcNAQcCoIIoQzCCKD8CAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBcTf1BVUSiinW9 -# HZaxYslVD6Djz3MAudi8tWIHrRXp9KCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIDtl -# 9KqgS4A2C5aNKaJIl4ANYnu1kb9qUIMJAZJ9j+ylMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAReMf3Wi4DHgNsHtt3eNkV8Vjz4qjxktDYxgj -# 5zfT1pldK0VuQD2Gm0R6ZiVVzDP5slhFMPPvULi9RUI7C4qZvgTsxQGy70L0QLGN -# PMWzSfssnDKdvjRYkRm0OruSwInoWGBETcUm0TtbZl3Twzo45+AVmKkzYxnKzPhq -# rx0yV2Fe/fdC8ojZT1ON6bjpe1vXY/GLXerrgbiDR/+crszLqBinOw/Ln14S26lT -# CwScxocvKMcCw9sgWOC0uAQZ+Ld851+7Fh6dZAbMI3gk3WkkLDNDTvsVNlZE70x5 -# 8X+1PArxHowmd9Mc99K69AJh7cNXFTEUnN2ksUqZVy40ggpZ26GCF60wghepBgor -# BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCE3E55u4iW6tYqKD8LEG0bSaOLAB987QmZ -# uiDeuifLmwIGZ2LdpGMEGBMyMDI1MDEwOTA3MjE0MS40NTVaMASAAgH0oIHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo0MzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB+vs7 -# RNN3M8bTAAEAAAH6MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExMVoXDTI1MTAyMjE4MzExMVowgdMxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv -# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs -# ZCBUU1MgRVNOOjQzMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA -# yhZVBM3PZcBfEpAf7fIIhygwYVVP64USeZbSlRR3pvJebva0LQCDW45yOrtpwIpG -# yDGX+EbCbHhS5Td4J0Ylc83ztLEbbQD7M6kqR0Xj+n82cGse/QnMH0WRZLnwggJd -# enpQ6UciM4nMYZvdQjybA4qejOe9Y073JlXv3VIbdkQH2JGyT8oB/LsvPL/kAnJ4 -# 5oQIp7Sx57RPQ/0O6qayJ2SJrwcjA8auMdAnZKOixFlzoooh7SyycI7BENHTpkVK -# rRV5YelRvWNTg1pH4EC2KO2bxsBN23btMeTvZFieGIr+D8mf1lQQs0Ht/tMOVdah -# 14t7Yk+xl5P4Tw3xfAGgHsvsa6ugrxwmKTTX1kqXH5XCdw3TVeKCax6JV+ygM5i1 -# NroJKwBCW11Pwi0z/ki90ZeO6XfEE9mCnJm76Qcxi3tnW/Y/3ZumKQ6X/iVIJo7L -# k0Z/pATRwAINqwdvzpdtX2hOJib4GR8is2bpKks04GurfweWPn9z6jY7GBC+js8p -# SwGewrffwgAbNKm82ZDFvqBGQQVJwIHSXpjkS+G39eyYOG2rcILBIDlzUzMFFJbN -# h5tDv3GeJ3EKvC4vNSAxtGfaG/mQhK43YjevsB72LouU78rxtNhuMXSzaHq5fFiG -# 3zcsYHaa4+w+YmMrhTEzD4SAish35BjoXP1P1Ct4Va0CAwEAAaOCAUkwggFFMB0G -# A1UdDgQWBBRjjHKbL5WV6kd06KocQHphK9U/vzAfBgNVHSMEGDAWgBSfpxVdAF5i -# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv -# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB -# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw -# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp -# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud -# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF -# AAOCAgEAuFbCorFrvodG+ZNJH3Y+Nz5QpUytQVObOyYFrgcGrxq6MUa4yLmxN4xW -# dL1kygaW5BOZ3xBlPY7Vpuf5b5eaXP7qRq61xeOrX3f64kGiSWoRi9EJawJWCzJf -# UQRThDL4zxI2pYc1wnPp7Q695bHqwZ02eaOBudh/IfEkGe0Ofj6IS3oyZsJP1yat -# cm4kBqIH6db1+weM4q46NhAfAf070zF6F+IpUHyhtMbQg5+QHfOuyBzrt67CiMJS -# KcJ3nMVyfNlnv6yvttYzLK3wS+0QwJUibLYJMI6FGcSuRxKlq6RjOhK9L3QOjh0V -# CM11rHM11ZmN0euJbbBCVfQEufOLNkG88MFCUNE10SSbM/Og/CbTko0M5wbVvQJ6 -# CqLKjtHSoeoAGPeeX24f5cPYyTcKlbM6LoUdO2P5JSdI5s1JF/On6LiUT50adpRs -# tZajbYEeX/N7RvSbkn0djD3BvT2Of3Wf9gIeaQIHbv1J2O/P5QOPQiVo8+0AKm6M -# 0TKOduihhKxAt/6Yyk17Fv3RIdjT6wiL2qRIEsgOJp3fILw4mQRPu3spRfakSoQe -# 5N0e4HWFf8WW2ZL0+c83Qzh3VtEPI6Y2e2BO/eWhTYbIbHpqYDfAtAYtaYIde87Z -# ymXG3MO2wUjhL9HvSQzjoquq+OoUmvfBUcB2e5L6QCHO6qTO7WowggdxMIIFWaAD -# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD -# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe -# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv -# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy -# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 -# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 -# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu -# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl -# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg -# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I -# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 -# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ -# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy -# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y -# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H -# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB -# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW -# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B -# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB -# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB -# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL -# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv -# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr -# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS -# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq -# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 -# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv -# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak -# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK -# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 -# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ -# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep -# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk -# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg -# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ -# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo0MzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUA94Z+bUJn+nKw -# BvII6sg0Ny7aPDaggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDANBgkqhkiG9w0BAQsFAAIFAOsps2kwIhgPMjAyNTAxMDkwMjMxMDVaGA8yMDI1 -# MDExMDAyMzEwNVowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA6ymzaQIBADAHAgEA -# AgIX6DAHAgEAAgIT7zAKAgUA6ysE6QIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor -# BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUA -# A4IBAQBfpriYcRpFKMdJiKNk1xJYEkoh+gsgmOG6RUiM6szqMC1KwjVgtrR5fX4R -# 2oGR1rWTAnSJRe29FzSnErYZo7Ozduk7Kp8mJIWi3y+r+1igw2k+pBv8OJ8W98kG -# Ek9Xs4a9dMcZIOCfzAJaZh8eyaQ2bZPH0GrWzV5axBN2j6NcQuNHo7Uq0menMUbC -# sVqc+hHLPB1HpGqqvhhejNzQhg3lMgdgVVX1BgdEVfac3NvyVJtMJwG1vG1D7NWu -# ToAXNWhaZphJqzV1XFvI0KRtfarsaIpD7w7WdUcKhpCdKZ7T6PzGRG1Y1gQErSHA -# L9cil1FxjDyZhl4XDeqE9WCoQFIVMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTACEzMAAAH6+ztE03czxtMAAQAAAfowDQYJYIZIAWUD -# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B -# CQQxIgQgb6NHW3F//llwGGeD8qxqc1WejipqYhEwuRncBix6UL0wgfoGCyqGSIb3 -# DQEJEAIvMYHqMIHnMIHkMIG9BCB98n8tya8+B2jjU/dpJRIwHwHHpco5ogNStYoc -# bkOeVjCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB -# +vs7RNN3M8bTAAEAAAH6MCIEIA89pXoYouKT0ovNta5BVR3Qz8l5bdnbU3BRc+gQ -# huuDMA0GCSqGSIb3DQEBCwUABIICAFgCVC9AMc+8h+OwHu9Cyc1LxR1J1HNkORF5 -# nEDafkD5uWBBRzTOzIaK/RwcOTCxN7pTsEeV0GdF1PP2i9BPE5imOUHp28pB8u37 -# 4L6Sq13hmzh+z9HXVN1lx3NyUNMI2IDQnfSsINtLeTL10G5TAtoPEjqXUvNWfyKg -# JD00iiEOHvaumZNhU3bUxVHTs3xaiZ7SYu/Ffmbfwe5s5FauapUf2cjB2nUmA//N -# 3PVrr9oIZGpv14Wi1BaHr8UXUK69ViZjwBfJqStohBz12ylSQINU89dfAlp2lR3U -# DS4w4W5og4h/55OMauhEBk9/MNNq83it84ugFrJOOSa34ighZXrp+SV3rVfK5eje -# L0IYO6vbj+igeLYdoU0XvB/PEmHBJIeMrWCbAUjUurtQ5q1FCvyaxPT/yImNwH+n -# M05xV5UThrH4ocLXisad+qlwdPc4smOQnJjyKH6YNNJ6H8TKEQL2eCU0z4y1a7Dj -# JWoDXaL1PcdAtrF5mO0CBAQB0d+zUKo3zmhuG5pzyvP7U1sBqdiXalUFZ9kFHicS -# kpgr+HYlL6vzr8raEjQXSwKFEKZD1PeAax7QBRJI2EwwsX/3aLF2Y0K0OtMmCbme -# dW0gH9MVBNan/6m3nOw8NHU9uLt2CY7W0FGyg8Na0snEpkCpyrWMLJFUXSUMTMvR -# ru9/XjU2 -# SIG # End signature block diff --git a/Modules/Az.KeyVault/6.3.1/Az.KeyVault.psm1 b/Modules/Az.KeyVault/6.3.1/Az.KeyVault.psm1 deleted file mode 100644 index 1a7617da5881..000000000000 --- a/Modules/Az.KeyVault/6.3.1/Az.KeyVault.psm1 +++ /dev/null @@ -1,362 +0,0 @@ -# -# Script module for module 'Az.KeyVault' that is executed when 'Az.KeyVault' is imported in a PowerShell session. -# -# Generated by: Microsoft Corporation -# -# Generated on: 01/09/2025 06:20:57 -# - -$PSDefaultParameterValues.Clear() -Set-StrictMode -Version Latest - -function Test-DotNet -{ - try - { - if ((Get-PSDrive 'HKLM' -ErrorAction Ignore) -and (-not (Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\' -ErrorAction Stop | Get-ItemPropertyValue -ErrorAction Stop -Name Release | Where-Object { $_ -ge 461808 }))) - { - throw ".NET Framework versions lower than 4.7.2 are not supported in Az. Please upgrade to .NET Framework 4.7.2 or higher." - } - } - catch [System.Management.Automation.DriveNotFoundException] - { - Write-Verbose ".NET Framework version check failed." - } -} - -function Preload-Assembly { - param ( - [string] - $AssemblyDirectory - ) - if($PSEdition -eq 'Desktop' -and (Test-Path $AssemblyDirectory -ErrorAction Ignore)) - { - try - { - Get-ChildItem -ErrorAction Stop -Path $AssemblyDirectory -Filter "*.dll" | ForEach-Object { - try - { - Add-Type -Path $_.FullName -ErrorAction Ignore | Out-Null - } - catch { - Write-Verbose $_ - } - } - } - catch {} - } -} - -if ($true -and ($PSEdition -eq 'Desktop')) -{ - if ($PSVersionTable.PSVersion -lt [Version]'5.1') - { - throw "PowerShell versions lower than 5.1 are not supported in Az. Please upgrade to PowerShell 5.1 or higher." - } - - Test-DotNet -} - -if ($true -and ($PSEdition -eq 'Core')) -{ - if ($PSVersionTable.PSVersion -lt [Version]'6.2.4') - { - throw "Current Az version doesn't support PowerShell Core versions lower than 6.2.4. Please upgrade to PowerShell Core 6.2.4 or higher." - } -} - -if (Test-Path -Path "$PSScriptRoot\StartupScripts" -ErrorAction Ignore) -{ - Get-ChildItem "$PSScriptRoot\StartupScripts" -ErrorAction Stop | ForEach-Object { - . $_.FullName - } -} - -# [windows powershell] preload assemblies - - -# [windows powershell] preload module alc assemblies -$preloadPath = (Join-Path $PSScriptRoot -ChildPath "ModuleAlcAssemblies") -Preload-Assembly -AssemblyDirectory $preloadPath - -if (Get-Module AzureRM.profile -ErrorAction Ignore) -{ - Write-Warning ("AzureRM.Profile already loaded. Az and AzureRM modules cannot be imported in the same session or used in the same script or runbook. If you are running PowerShell in an environment you control you can use the 'Uninstall-AzureRm' cmdlet to remove all AzureRm modules from your machine. " + - "If you are running in Azure Automation, take care that none of your runbooks import both Az and AzureRM modules. More information can be found here: https://aka.ms/azps-migration-guide.") - throw ("AzureRM.Profile already loaded. Az and AzureRM modules cannot be imported in the same session or used in the same script or runbook. If you are running PowerShell in an environment you control you can use the 'Uninstall-AzureRm' cmdlet to remove all AzureRm modules from your machine. " + - "If you are running in Azure Automation, take care that none of your runbooks import both Az and AzureRM modules. More information can be found here: https://aka.ms/azps-migration-guide.") -} - -$module = Get-Module Az.Accounts - if ($module -ne $null -and $module.Version -lt [System.Version]"4.0.1") -{ - Write-Error "This module requires Az.Accounts version 4.0.1. An earlier version of Az.Accounts is imported in the current PowerShell session. Please open a new session before importing this module. This error could indicate that multiple incompatible versions of the Azure PowerShell cmdlets are installed on your system. Please see https://aka.ms/azps-version-error for troubleshooting information." -ErrorAction Stop -} -elseif ($module -eq $null) -{ - Import-Module Az.Accounts -MinimumVersion 4.0.1 -Scope Global -} -Import-Module (Join-Path -Path $PSScriptRoot -ChildPath Microsoft.Azure.PowerShell.Cmdlets.KeyVault.dll) - - -if (Test-Path -Path "$PSScriptRoot\PostImportScripts" -ErrorAction Ignore) -{ - Get-ChildItem "$PSScriptRoot\PostImportScripts" -ErrorAction Stop | ForEach-Object { - . $_.FullName - } -} - -$FilteredCommands = @('New-AzKeyVault:ResourceGroupName','New-AzKeyVaultManagedHsm:ResourceGroupName') - -if ($Env:ACC_CLOUD -eq $null) -{ - $FilteredCommands | ForEach-Object { - - $existingDefault = $false - foreach ($key in $global:PSDefaultParameterValues.Keys) - { - if ($_ -like "$key") - { - $existingDefault = $true - } - } - - if (!$existingDefault) - { - $global:PSDefaultParameterValues.Add($_, - { - if ((Get-Command Get-AzContext -ErrorAction Ignore) -eq $null) - { - $context = Get-AzureRmContext - } - else - { - $context = Get-AzContext - } - if (($context -ne $null) -and $context.ExtendedProperties.ContainsKey("Default Resource Group")) { - $context.ExtendedProperties["Default Resource Group"] - } - }) - } - } -} - - - -# SIG # Begin signature block -# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCD1HZck2yawQ4j7 -# o/p5+RkcqFGlt6WNxK8R/LgZob7ZCaCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIHTVSoaHEjd+QE07Oz323LpJ -# IosOR7XtNJCwDkIKfuXFMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAGKlz57rKkQQj9nZPUJxRxe6xDrw1zQakkluvKgsQSIa7W26ASy9y8WnC -# xLPeY4Z9cgu/1kqOVfhPXqMUesMSVxtqasAzy8XeyHnH0jwKLmYNe/W21Jm5tsOn -# gytu7Lq6e1nBQ7bWE1Hd8dHiuuo5CejHoNcQ39KzENPfl0sRYo2pvuAqvaas5d3h -# PjSrQsac3aAwv7YRD+dEYP4VDEW70w65xj15QWE0ciSjvDuSyYlC+vAG+A+6HUdP -# TVccp7hm8C+jEjUQ7zAHokm/kYx5pOJNEsW+PXXAE2Xw2/vYPWrozLuuUMRTWqaW -# 4w0pPy/KC4kMHke+C+PXnH49J+F1SKGCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC -# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCDmFhR7Te6qpCRpeXgBEZycWDKVFLEN4yin+0U5TB3MTAIGZ1rYDqXO -# GBMyMDI1MDEwOTA2MzcwMi42NTFaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTAwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHqMIIHIDCCBQigAwIBAgITMwAAAevgGGy1tu847QABAAAB6zANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# MzRaFw0yNTAzMDUxODQ1MzRaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTAwMC0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDBFWgh2lbgV3eJp01oqiaFBuYbNc7hSKmktvJ15NrB -# /DBboUow8WPOTPxbn7gcmIOGmwJkd+TyFx7KOnzrxnoB3huvv91fZuUugIsKTnAv -# g2BU/nfN7Zzn9Kk1mpuJ27S6xUDH4odFiX51ICcKl6EG4cxKgcDAinihT8xroJWV -# ATL7p8bbfnwsc1pihZmcvIuYGnb1TY9tnpdChWr9EARuCo3TiRGjM2Lp4piT2lD5 -# hnd3VaGTepNqyakpkCGV0+cK8Vu/HkIZdvy+z5EL3ojTdFLL5vJ9IAogWf3XAu3d -# 7SpFaaoeix0e1q55AD94ZwDP+izqLadsBR3tzjq2RfrCNL+Tmi/jalRto/J6bh4f -# PhHETnDC78T1yfXUQdGtmJ/utI/ANxi7HV8gAPzid9TYjMPbYqG8y5xz+gI/SFyj -# +aKtHHWmKzEXPttXzAcexJ1EH7wbuiVk3sErPK9MLg1Xb6hM5HIWA0jEAZhKEyd5 -# hH2XMibzakbp2s2EJQWasQc4DMaF1EsQ1CzgClDYIYG6rUhudfI7k8L9KKCEufRb -# K5ldRYNAqddr/ySJfuZv3PS3+vtD6X6q1H4UOmjDKdjoW3qs7JRMZmH9fkFkMzb6 -# YSzr6eX1LoYm3PrO1Jea43SYzlB3Tz84OvuVSV7NcidVtNqiZeWWpVjfavR+Jj/J -# OQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFHSeBazWVcxu4qT9O5jT2B+qAerhMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQCDdN8voPd8C+VWZP3+W87c/QbdbWK0sOt9 -# Z4kEOWng7Kmh+WD2LnPJTJKIEaxniOct9wMgJ8yQywR8WHgDOvbwqdqsLUaM4Nre -# rtI6FI9rhjheaKxNNnBZzHZLDwlkL9vCEDe9Rc0dGSVd5Bg3CWknV3uvVau14F55 -# ESTWIBNaQS9Cpo2Opz3cRgAYVfaLFGbArNcRvSWvSUbeI2IDqRxC4xBbRiNQ+1qH -# XDCPn0hGsXfL+ynDZncCfszNrlgZT24XghvTzYMHcXioLVYo/2Hkyow6dI7uULJb -# KxLX8wHhsiwriXIDCnjLVsG0E5bR82QgcseEhxbU2d1RVHcQtkUE7W9zxZqZ6/jP -# maojZgXQO33XjxOHYYVa/BXcIuu8SMzPjjAAbujwTawpazLBv997LRB0ZObNckJY -# yQQpETSflN36jW+z7R/nGyJqRZ3HtZ1lXW1f6zECAeP+9dy6nmcCrVcOqbQHX7Zr -# 8WPcghHJAADlm5ExPh5xi1tNRk+i6F2a9SpTeQnZXP50w+JoTxISQq7vBij2nitA -# sSLaVeMqoPi+NXlTUNZ2NdtbFr6Iir9ZK9ufaz3FxfvDZo365vLOozmQOe/Z+pu4 -# vY5zPmtNiVIcQnFy7JZOiZVDI5bIdwQRai2quHKJ6ltUdsi3HjNnieuE72fT4eWh -# xtmnN5HYCDCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNN -# MIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOkEwMDAtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQCA -# Bol1u1wwwYgUtUowMnqYvbul3qCBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymWNTAiGA8yMDI1MDEwOTAwMjYy -# OVoYDzIwMjUwMTEwMDAyNjI5WjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDrKZY1 -# AgEAMAcCAQACAhUpMAcCAQACAhMJMAoCBQDrKue1AgEAMDYGCisGAQQBhFkKBAIx -# KDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZI -# hvcNAQELBQADggEBAIHAmhLTSl+tqfMPnHFg24foG1zMFnOXn0DIotbJRVZDtlhF -# nPqSqCYuWMG+vt5lcw61eK9qKCrEL1Z3DME2BYjzUw4pvqj9S4ij9UXBcY7EsuZF -# xKynfZfrdMCTOQx8920OBKrkMuEZQIyhTbNOGFKIbVqAF1ZuNWC3k3d938tCrz6k -# O5nVvlHq0eMKKt0dmLBFNI5t6CmeGfb0gGg5/DxT5b7DLoU2WO/iX3YhbPO8FNpc -# g+onP0f7LP1tI4/67GHNCchp1IYsV2KHZ7V50TN63bGfo1U4AWWahgpxKX44Wl5K -# RAfCFw4sMxpUmJCvGkkLX92WpRPfW0D8+81HOZQxggQNMIIECQIBATCBkzB8MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy -# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAevgGGy1tu847QABAAAB6zAN -# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G -# CSqGSIb3DQEJBDEiBCAgM7Dl7BWieWe3ESWaOrGovQdmMGGz/zZyH3TwzC7hWjCB -# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIM63a75faQPhf8SBDTtk2DSUgIbd -# izXsz76h1JdhLCz4MIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAHr4BhstbbvOO0AAQAAAeswIgQg3a/qZy5c5u5kLf4EWs4lzDywFVJR -# 2BigcuxSIs4sgoQwDQYJKoZIhvcNAQELBQAEggIASer+Qri44BtB/WdWdiPgbQY2 -# TfFFKFo6m10K1Xa01hnrIwNxFYEcfkHIQ1IXMpsJtHS9qLFg+DqFc/KfoBTArEiN -# a6MaHjPB9+MHd/ZrdfIu8VeLfPQiCFRNi4wTvLFxZp4GKlz4YHTG5ZFLCnPyODmT -# VGGDqtVGINvVXD/7QRirAtGRleX9Wur2tx/5LOBLZDwht8qrPYWsww23hQHWDXUG -# bq+YH/0pX4OvPszxDOn3YzaULOnOoGDPUVOXxGAOssOQotlB62+GEaJRnwaGPbmv -# ZxObA+7SX6648d/v4UHmeXYlHGE57U6mL1bb+cz7peWzJ62RbRFgVpogzEYpxkrp -# IqKm3EtAdCksEy/QEU1P0wUJQzJOJ0eC0FIuAsIIlQThyQcVfrKAqsnm6p6c7qLP -# +pZ8HP6P8jLo2hbCHkIalxL4QksQm426uXxyAT456rkcH6H17Xm5NfdVcqzVyCVb -# le3alyfYUD9Ib8kyHYPxeTx5b6/OQNoXYZ16AXGl0AMNbbjRL5eT+N7Q++tQBXlh -# GQNlAtl6XRtWk4p44Ir8VLc8drvnP6kW6Fs1ask/NRjhIO7UnnqQnWbkQk3V804/ -# SOkxv1++du1odjMNCYuhWHk/KYtRC8m3SIyZ2XVn3VIR5VWIAtCzCmQqfh1CrRAE -# moxJDtu6D4jj9GTA0Ew= -# SIG # End signature block diff --git a/Modules/Az.KeyVault/6.3.1/Azure.Security.KeyVault.Administration.dll b/Modules/Az.KeyVault/6.3.1/Azure.Security.KeyVault.Administration.dll deleted file mode 100644 index 320daee46ac3..000000000000 Binary files a/Modules/Az.KeyVault/6.3.1/Azure.Security.KeyVault.Administration.dll and /dev/null differ diff --git a/Modules/Az.KeyVault/6.3.1/Azure.Security.KeyVault.Certificates.dll b/Modules/Az.KeyVault/6.3.1/Azure.Security.KeyVault.Certificates.dll deleted file mode 100644 index 0e9228800c57..000000000000 Binary files a/Modules/Az.KeyVault/6.3.1/Azure.Security.KeyVault.Certificates.dll and /dev/null differ diff --git a/Modules/Az.KeyVault/6.3.1/Azure.Security.KeyVault.Keys.dll b/Modules/Az.KeyVault/6.3.1/Azure.Security.KeyVault.Keys.dll deleted file mode 100644 index a34981ff6a9e..000000000000 Binary files a/Modules/Az.KeyVault/6.3.1/Azure.Security.KeyVault.Keys.dll and /dev/null differ diff --git a/Modules/Az.KeyVault/6.3.1/BouncyCastle.Crypto.dll b/Modules/Az.KeyVault/6.3.1/BouncyCastle.Crypto.dll deleted file mode 100644 index bee1e9a8522d..000000000000 Binary files a/Modules/Az.KeyVault/6.3.1/BouncyCastle.Crypto.dll and /dev/null differ diff --git a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/Az.KeyVault.format.ps1xml b/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/Az.KeyVault.format.ps1xml deleted file mode 100644 index f11a8fddeaa9..000000000000 --- a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/Az.KeyVault.format.ps1xml +++ /dev/null @@ -1,2182 +0,0 @@ - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ManagedHsm - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ManagedHsm#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Location - - - Name - - - SkuFamily - - - SkuName - - - SystemDataCreatedAt - - - SystemDataCreatedBy - - - SystemDataCreatedByType - - - SystemDataLastModifiedAt - - - SystemDataLastModifiedBy - - - SystemDataLastModifiedByType - - - ResourceGroupName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.AccessPolicyEntry - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.AccessPolicyEntry#Multiple - - - - - - - - - - - - - - - - - - ApplicationId - - - ObjectId - - - TenantId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.CheckMhsmNameAvailabilityParameters - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.CheckMhsmNameAvailabilityParameters#Multiple - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.CheckMhsmNameAvailabilityResult - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.CheckMhsmNameAvailabilityResult#Multiple - - - - - - - - - - - - - - - - - - Message - - - NameAvailable - - - Reason - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.CheckNameAvailabilityResult - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.CheckNameAvailabilityResult#Multiple - - - - - - - - - - - - - - - - - - Message - - - NameAvailable - - - Reason - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.CloudErrorBody - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.CloudErrorBody#Multiple - - - - - - - - - - - - - - - Code - - - Message - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.DeletedManagedHsm - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.DeletedManagedHsm#Multiple - - - - - - - - - - - - - - - Name - - - ResourceGroupName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.DeletedManagedHsmListResult - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.DeletedManagedHsmListResult#Multiple - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.DeletedManagedHsmProperties - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.DeletedManagedHsmProperties#Multiple - - - - - - - - - - - - - - - - - - - - - - - - DeletionDate - - - Location - - - MhsmId - - - PurgeProtectionEnabled - - - ScheduledPurgeDate - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.DeletedManagedHsmPropertiesTags - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.DeletedManagedHsmPropertiesTags#Multiple - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.DeletedVault - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.DeletedVault#Multiple - - - - - - - - - - - - - - - Name - - - ResourceGroupName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.DeletedVaultListResult - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.DeletedVaultListResult#Multiple - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.DeletedVaultProperties - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.DeletedVaultProperties#Multiple - - - - - - - - - - - - - - - - - - - - - - - - DeletionDate - - - Location - - - PurgeProtectionEnabled - - - ScheduledPurgeDate - - - VaultId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.DeletedVaultPropertiesTags - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.DeletedVaultPropertiesTags#Multiple - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.Error - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.Error#Multiple - - - - - - - - - - - - - - - Code - - - Message - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IPRule - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IPRule#Multiple - - - - - - - - - - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.KeyVaultIdentity - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.KeyVaultIdentity#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Location - - - Name - - - OperationKind - - - PrivateEndpointConnectionName - - - ResourceGroupName - - - SubscriptionId - - - VaultName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ManagedHsmListResult - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ManagedHsmListResult#Multiple - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ManagedHsmProperties - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ManagedHsmProperties#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CreateMode - - - EnablePurgeProtection - - - EnableSoftDelete - - - HsmUri - - - ProvisioningState - - - PublicNetworkAccess - - - ScheduledPurgeDate - - - SoftDeleteRetentionInDay - - - StatusMessage - - - TenantId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ManagedHsmResource - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ManagedHsmResource#Multiple - - - - - - - - - - - - - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ManagedHsmResourceTags - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ManagedHsmResourceTags#Multiple - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ManagedHsmSecurityDomainProperties - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ManagedHsmSecurityDomainProperties#Multiple - - - - - - - - - - - - - - - ActivationStatus - - - ActivationStatusMessage - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ManagedHsmSku - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ManagedHsmSku#Multiple - - - - - - - - - - - - - - - Family - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmGeoReplicatedRegion - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmGeoReplicatedRegion#Multiple - - - - - - - - - - - - - - - - - - IsPrimary - - - Name - - - ProvisioningState - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmipRule - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmipRule#Multiple - - - - - - - - - - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmNetworkRuleSet - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmNetworkRuleSet#Multiple - - - - - - - - - - - - - - - Bypass - - - DefaultAction - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmPrivateEndpointConnection - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmPrivateEndpointConnection#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Location - - - Name - - - SkuFamily - - - SkuName - - - SystemDataCreatedAt - - - SystemDataCreatedBy - - - SystemDataCreatedByType - - - SystemDataLastModifiedAt - - - SystemDataLastModifiedBy - - - SystemDataLastModifiedByType - - - AzureAsyncOperation - - - Etag - - - ResourceGroupName - - - RetryAfter - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmPrivateEndpointConnectionItem - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmPrivateEndpointConnectionItem#Multiple - - - - - - - - - - - - Etag - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmPrivateEndpointConnectionProperties - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmPrivateEndpointConnectionProperties#Multiple - - - - - - - - - - - - ProvisioningState - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmPrivateEndpointConnectionsListResult - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmPrivateEndpointConnectionsListResult#Multiple - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmPrivateLinkResource - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmPrivateLinkResource#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Location - - - Name - - - SkuFamily - - - SkuName - - - SystemDataCreatedAt - - - SystemDataCreatedBy - - - SystemDataCreatedByType - - - SystemDataLastModifiedAt - - - SystemDataLastModifiedBy - - - SystemDataLastModifiedByType - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmPrivateLinkResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmPrivateLinkResourceProperties#Multiple - - - - - - - - - - - - GroupId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmPrivateLinkServiceConnectionState - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmPrivateLinkServiceConnectionState#Multiple - - - - - - - - - - - - - - - - - - ActionsRequired - - - Description - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmRegionsListResult - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmRegionsListResult#Multiple - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.NetworkRuleSet - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.NetworkRuleSet#Multiple - - - - - - - - - - - - - - - Bypass - - - DefaultAction - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.PrivateEndpointConnection - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.PrivateEndpointConnection#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - Location - - - Name - - - AzureAsyncOperation - - - Etag - - - ResourceGroupName - - - RetryAfter - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.PrivateEndpointConnectionItem - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.PrivateEndpointConnectionItem#Multiple - - - - - - - - - - - - Etag - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.PrivateEndpointConnectionListResult - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.PrivateEndpointConnectionListResult#Multiple - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.PrivateEndpointConnectionProperties - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.PrivateEndpointConnectionProperties#Multiple - - - - - - - - - - - - ProvisioningState - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.PrivateLinkResource - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.PrivateLinkResource#Multiple - - - - - - - - - - - - - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.PrivateLinkResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.PrivateLinkResourceProperties#Multiple - - - - - - - - - - - - GroupId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.PrivateLinkServiceConnectionState - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.PrivateLinkServiceConnectionState#Multiple - - - - - - - - - - - - - - - - - - ActionsRequired - - - Description - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.Resource - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.Resource#Multiple - - - - - - - - - - - - - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ResourceListResult - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ResourceListResult#Multiple - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ResourceTags - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ResourceTags#Multiple - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.Sku - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.Sku#Multiple - - - - - - - - - - - - - - - Family - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.SystemData - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.SystemData#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - CreatedAt - - - CreatedBy - - - CreatedByType - - - LastModifiedAt - - - LastModifiedBy - - - LastModifiedByType - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.Vault - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.Vault#Multiple - - - - - - - - - - - - - - - - - - Location - - - Name - - - ResourceGroupName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultAccessPolicyParameters - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultAccessPolicyParameters#Multiple - - - - - - - - - - - - - - - - - - Location - - - Name - - - ResourceGroupName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultCheckNameAvailabilityParameters - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultCheckNameAvailabilityParameters#Multiple - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultCreateOrUpdateParameters - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultCreateOrUpdateParameters#Multiple - - - - - - - - - - - - Location - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultCreateOrUpdateParametersTags - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultCreateOrUpdateParametersTags#Multiple - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultListResult - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultListResult#Multiple - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultPatchParametersTags - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultPatchParametersTags#Multiple - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultPatchProperties - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultPatchProperties#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CreateMode - - - EnablePurgeProtection - - - EnableRbacAuthorization - - - EnableSoftDelete - - - EnabledForDeployment - - - EnabledForDiskEncryption - - - EnabledForTemplateDeployment - - - PublicNetworkAccess - - - SoftDeleteRetentionInDay - - - TenantId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultProperties - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultProperties#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CreateMode - - - EnablePurgeProtection - - - EnableRbacAuthorization - - - EnableSoftDelete - - - EnabledForDeployment - - - EnabledForDiskEncryption - - - EnabledForTemplateDeployment - - - HsmPoolResourceId - - - ProvisioningState - - - PublicNetworkAccess - - - SoftDeleteRetentionInDay - - - TenantId - - - VaultUri - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultTags - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultTags#Multiple - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VirtualNetworkRule - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VirtualNetworkRule#Multiple - - - - - - - - - - - - IgnoreMissingVnetServiceEndpoint - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/Az.KeyVault.psm1 b/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/Az.KeyVault.psm1 deleted file mode 100644 index 525f3247e100..000000000000 --- a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/Az.KeyVault.psm1 +++ /dev/null @@ -1,337 +0,0 @@ -# region Generated - # ---------------------------------------------------------------------------------- - # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# http://www.apache.org/licenses/LICENSE-2.0 -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Code generated by Microsoft (R) AutoRest Code Generator.Changes may cause incorrect behavior and will be lost if the code -# is regenerated. - # ---------------------------------------------------------------------------------- - # Load required Az.Accounts module - $accountsName = 'Az.Accounts' - $accountsModule = Get-Module -Name $accountsName - if(-not $accountsModule) { - $localAccountsPath = Join-Path $PSScriptRoot 'generated\modules' - if(Test-Path -Path $localAccountsPath) { - $localAccounts = Get-ChildItem -Path $localAccountsPath -Recurse -Include 'Az.Accounts.psd1' | Select-Object -Last 1 - if($localAccounts) { - $accountsModule = Import-Module -Name ($localAccounts.FullName) -Scope Global -PassThru - } - } - if(-not $accountsModule) { - $hasAdequateVersion = (Get-Module -Name $accountsName -ListAvailable | Where-Object { $_.Version -ge [System.Version]'2.7.5' } | Measure-Object).Count -gt 0 - if($hasAdequateVersion) { - $accountsModule = Import-Module -Name $accountsName -MinimumVersion 2.7.5 -Scope Global -PassThru - } - } - } - - if(-not $accountsModule) { - Write-Error "`nThis module requires $accountsName version 2.7.5 or greater. For installation instructions, please see: https://learn.microsoft.com/powershell/azure/install-az-ps" -ErrorAction Stop - } elseif (($accountsModule.Version -lt [System.Version]'2.7.5') -and (-not $localAccounts)) { - Write-Error "`nThis module requires $accountsName version 2.7.5 or greater. An earlier version of Az.Accounts is imported in the current PowerShell session. If you are running test, please try to add the switch '-RegenerateSupportModule' when executing 'test-module.ps1'. Otherwise please open a new PowerShell session and import this module again.`nAdditionally, this error could indicate that multiple incompatible versions of Azure PowerShell modules are installed on your system. For troubleshooting information, please see: https://aka.ms/azps-version-error" -ErrorAction Stop - } - Write-Information "Loaded Module '$($accountsModule.Name)'" - - # Load the private module dll - $null = Import-Module -Name (Join-Path $PSScriptRoot './bin/Az.KeyVault.private.dll') - - # Get the private module's instance - $instance = [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Module]::Instance - - # Ask for the shared functionality table - $VTable = Register-AzModule - - # Tweaks the pipeline on module load - $instance.OnModuleLoad = $VTable.OnModuleLoad - - # Following two delegates are added for telemetry - $instance.GetTelemetryId = $VTable.GetTelemetryId - $instance.Telemetry = $VTable.Telemetry - - # Delegate to sanitize the output object - $instance.SanitizeOutput = $VTable.SanitizerHandler - - # Delegate to get the telemetry info - $instance.GetTelemetryInfo = $VTable.GetTelemetryInfo - - # Tweaks the pipeline per call - $instance.OnNewRequest = $VTable.OnNewRequest - - # Gets shared parameter values - $instance.GetParameterValue = $VTable.GetParameterValue - - # Allows shared module to listen to events from this module - $instance.EventListener = $VTable.EventListener - - # Gets shared argument completers - $instance.ArgumentCompleter = $VTable.ArgumentCompleter - - # The name of the currently selected Azure profile - $instance.ProfileName = $VTable.ProfileName - - # Load the custom module - $customModulePath = Join-Path $PSScriptRoot './custom/Az.KeyVault.custom.psm1' - if(Test-Path $customModulePath) { - $null = Import-Module -Name $customModulePath - } - - # Export nothing to clear implicit exports - Export-ModuleMember - - # Export proxy cmdlet scripts - $exportsPath = Join-Path $PSScriptRoot './exports' - $directories = Get-ChildItem -Directory -Path $exportsPath - $profileDirectory = $null - if($instance.ProfileName) { - if(($directories | ForEach-Object { $_.Name }) -contains $instance.ProfileName) { - $profileDirectory = $directories | Where-Object { $_.Name -eq $instance.ProfileName } - } else { - # Don't export anything if the profile doesn't exist for the module - $exportsPath = $null - Write-Warning "Selected Azure profile '$($instance.ProfileName)' does not exist for module '$($instance.Name)'. No cmdlets were loaded." - } - } elseif(($directories | Measure-Object).Count -gt 0) { - # Load the last folder if no profile is selected - $profileDirectory = $directories | Select-Object -Last 1 - } - - if($profileDirectory) { - Write-Information "Loaded Azure profile '$($profileDirectory.Name)' for module '$($instance.Name)'" - $exportsPath = $profileDirectory.FullName - } - - if($exportsPath) { - Get-ChildItem -Path $exportsPath -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } - $cmdletNames = Get-ScriptCmdlet -ScriptFolder $exportsPath - Export-ModuleMember -Function $cmdletNames -Alias (Get-ScriptCmdlet -ScriptFolder $exportsPath -AsAlias) - } - - # Finalize initialization of this module - $instance.Init(); - Write-Information "Loaded Module '$($instance.Name)'" -# endregion - -# SIG # Begin signature block -# MIIoOAYJKoZIhvcNAQcCoIIoKTCCKCUCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCODWi+Ok14Kd34 -# YgjTy4JkgC+dw8Bc1siB/xsufQRtAqCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGgkwghoFAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIGKc -# RWx6JX3AqvsBvtXW01iyOvvGWuJWSiKng9C+mVEKMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAaelR+DhutyYplnL1G6zcmpogAB/0kTRZIgFL -# HU4H0z6o1o4hx0hbeLr4l8Ch2jYuP2i8tgeUg6+kr5mSSgPnatBjAOjYEFRarNDd -# WD3ayiElGxzOG06jM75WfLMfwHuNwGZbk+sPlS56n32WZebpyTNmJpU/aoAl9L8V -# yLf9Nu/g4Dio0Fs/KF39wxsaCa+e11uO8BvJo+q5Dax1x4kBX6Rc0Nk+RytK32F4 -# VyqSixdF/KWbQrMZpbQHrg3gx55N+0rTYLbCIX9m72Q2JqeoYUfq6qG0qNEDQ6qy -# RY9QEO5uHe6ECGpxcfOPi7Ra6hQ6c/gTi+T9MzPG+lbRAWUCSqGCF5MwghePBgor -# BgEEAYI3AwMBMYIXfzCCF3sGCSqGSIb3DQEHAqCCF2wwghdoAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFRBgsqhkiG9w0BCRABBKCCAUAEggE8MIIBOAIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCDWSfAnTXu29Qma/rjIKvPjRswL1nCqPmMv -# 4IxyDdUYCAIGZ1sNHIzRGBIyMDI1MDEwOTA2MzY0NS4zNFowBIACAfSggdGkgc4w -# gcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS -# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsT -# HE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQg -# VFNTIEVTTjozMzAzLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUt -# U3RhbXAgU2VydmljZaCCEeowggcgMIIFCKADAgECAhMzAAAB5tlCnuoA+H3hAAEA -# AAHmMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw -# MB4XDTIzMTIwNjE4NDUxNVoXDTI1MDMwNTE4NDUxNVowgcsxCzAJBgNVBAYTAlVT -# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVy -# aWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjozMzAzLTA1 -# RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZTCC -# AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL2+mHzi2CW4TOb/Ck0qUCNw -# SUbN+W8oANnUP7Z3+J5hgS0XYcoysoYUM4uktZYbkMTKIpuVgqsTae3njQ4a7fln -# HSBckETTNZqdkQCMKO3h4YGL65qRmyTvTMdNAcfJ8/4HebYFJI0U+GCxUg+nq+j/ -# 23o5417MjBfkTn5XAQbfudmAR7FAXZ9BlhvFDUBq6oO9F1exKkrV2HVQG30RoyzO -# 65xpHmczBA3qwOMb30XN0r0C3NufhKaWygtS1ECH/vrywp3RjWEyYpUfAhfz/gm5 -# RFQFFnQla7Q1hAGnySGS7XxDwIBDnTS0UHtUfekPzOgDiVwDsmTFMag8qu5+b6VF -# kADiIyBtwtnY//FJ2coXFTy8vfVGg2VkmIYvkypNe+/IEvP4xE/gSf03J7U3zH+U -# kPWy102jnAkb6aBewT/N/ODYZpWpBzMUeDQ2Xxukiqc0VRF5BGrcLWNVgwJJx6A3 -# Md5i3Dk6Zn/t5WdGaNeUKwu92zE7NzVhWfqdkuRAPnLfUdisH2Ige6zCFoy/aEk0 -# 2NWd2SlbL3fg8hm5ZMyTfrSSNc8XCXZa/VPOb206sKrz6XjTwogvon55+gY2RHxg -# Hcz67W1h5UM79Nw5sYfFoYUHpBnEBSmd8Hk38yYE3Ew6rMbU3xCLBbyC2OMwmIUF -# /qJhisKO1HAXsg91AsW1AgMBAAGjggFJMIIBRTAdBgNVHQ4EFgQU5QQxee03nj7X -# Vkz5C7tDmuDcVz0wHwYDVR0jBBgwFoAUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXwYD -# VR0fBFgwVjBUoFKgUIZOaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9j -# cmwvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3JsMGwG -# CCsGAQUFBwEBBGAwXjBcBggrBgEFBQcwAoZQaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIw -# MjAxMCgxKS5jcnQwDAYDVR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcD -# CDAOBgNVHQ8BAf8EBAMCB4AwDQYJKoZIhvcNAQELBQADggIBAGFu6iBNqlGy7BKR -# oUxDp3K7xkJhSlZDyIituLjS1TaErqkeC7SGPTP/3MVFHHkN+G6SO9uMD91LlVh/ -# HPUQhs+W3z3swnawEY7ZgtjBh6V8mkPBsHRdL1mSuqnOrpf+WYNAOfcbm9xilhAI -# nnksu/IWUnX3kBWjhbLxRfmnuD1bcyA0dAykz4RXrj5yzOPgejlpCZ4oa0rLvDvZ -# 5Fj+9YO6m2u/Ou4U2YoIi3XZRwDkE6xenU+2SPHbJGwKPvsNKaXTNViOpb8hJaSs -# aPJ5Un6SHNy3FouSSVXALGKCiQPp+RZvLSEIQpM5M8zOG6A8gBzFwexHazHTVhFr -# 2kfbO912y4ER9IUboKPRBK8Rn8z2Yn6HiaJpBJHsARtUYNvJEqRifzRL7cCZGWHd -# k574EWonns5d14gNIdu8fMnuhOobz3qXd5SE+xmDr182DFPGW9E2ZET/7rViPtnW -# 4HRdhA/rSuwwt1OVVgTJlSXkwtMvku+oWjNmVLZeiOLgEQ/p11VPOYcnih05kxZN -# N5DQjCdYb3y9a/+ug96AKvUbrUVWt1csTcBch+3hk3hmQNOegCE/DsNk09GVJbhN -# tWP8vDRe+ctg3AxQD2i5j/DH215Nony9ORuBjJo5goXPqs1Fdnhp/p7chfAwJ98J -# qykpRcLvZgy7lbwv/PJPGw1QSAFtMIIHcTCCBVmgAwIBAgITMwAAABXF52ueAptJ -# mQAAAAAAFTANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNh -# dGUgQXV0aG9yaXR5IDIwMTAwHhcNMjEwOTMwMTgyMjI1WhcNMzAwOTMwMTgzMjI1 -# WjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQD -# Ex1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCCAiIwDQYJKoZIhvcNAQEB -# BQADggIPADCCAgoCggIBAOThpkzntHIhC3miy9ckeb0O1YLT/e6cBwfSqWxOdcjK -# NVf2AX9sSuDivbk+F2Az/1xPx2b3lVNxWuJ+Slr+uDZnhUYjDLWNE893MsAQGOhg -# fWpSg0S3po5GawcU88V29YZQ3MFEyHFcUTE3oAo4bo3t1w/YJlN8OWECesSq/XJp -# rx2rrPY2vjUmZNqYO7oaezOtgFt+jBAcnVL+tuhiJdxqD89d9P6OU8/W7IVWTe/d -# vI2k45GPsjksUZzpcGkNyjYtcI4xyDUoveO0hyTD4MmPfrVUj9z6BVWYbWg7mka9 -# 7aSueik3rMvrg0XnRm7KMtXAhjBcTyziYrLNueKNiOSWrAFKu75xqRdbZ2De+JKR -# Hh09/SDPc31BmkZ1zcRfNN0Sidb9pSB9fvzZnkXftnIv231fgLrbqn427DZM9itu -# qBJR6L8FA6PRc6ZNN3SUHDSCD/AQ8rdHGO2n6Jl8P0zbr17C89XYcz1DTsEzOUyO -# ArxCaC4Q6oRRRuLRvWoYWmEBc8pnol7XKHYC4jMYctenIPDC+hIK12NvDMk2ZItb -# oKaDIV1fMHSRlJTYuVD5C4lh8zYGNRiER9vcG9H9stQcxWv2XFJRXRLbJbqvUAV6 -# bMURHXLvjflSxIUXk8A8FdsaN8cIFRg/eKtFtvUeh17aj54WcmnGrnu3tz5q4i6t -# AgMBAAGjggHdMIIB2TASBgkrBgEEAYI3FQEEBQIDAQABMCMGCSsGAQQBgjcVAgQW -# BBQqp1L+ZMSavoKRPEY1Kc8Q/y8E7jAdBgNVHQ4EFgQUn6cVXQBeYl2D9OXSZacb -# UzUZ6XIwXAYDVR0gBFUwUzBRBgwrBgEEAYI3TIN9AQEwQTA/BggrBgEFBQcCARYz -# aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnku -# aHRtMBMGA1UdJQQMMAoGCCsGAQUFBwMIMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIA -# QwBBMAsGA1UdDwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2 -# VsuP6KJcYmjRPZSQW9fOmhjEMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu -# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEw -# LTA2LTIzLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93 -# d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYt -# MjMuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCdVX38Kq3hLB9nATEkW+Geckv8qW/q -# XBS2Pk5HZHixBpOXPTEztTnXwnE2P9pkbHzQdTltuw8x5MKP+2zRoZQYIu7pZmc6 -# U03dmLq2HnjYNi6cqYJWAAOwBb6J6Gngugnue99qb74py27YP0h1AdkY3m2CDPVt -# I1TkeFN1JFe53Z/zjj3G82jfZfakVqr3lbYoVSfQJL1AoL8ZthISEV09J+BAljis -# 9/kpicO8F7BUhUKz/AyeixmJ5/ALaoHCgRlCGVJ1ijbCHcNhcy4sa3tuPywJeBTp -# kbKpW99Jo3QMvOyRgNI95ko+ZjtPu4b6MhrZlvSP9pEB9s7GdP32THJvEKt1MMU0 -# sHrYUP4KWN1APMdUbZ1jdEgssU5HLcEUBHG/ZPkkvnNtyo4JvbMBV0lUZNlz138e -# W0QBjloZkWsNn6Qo3GcZKCS6OEuabvshVGtqRRFHqfG3rsjoiV5PndLQTHa1V1QJ -# sWkBRH58oWFsc/4Ku+xBZj1p/cvBQUl+fpO+y/g75LcVv7TOPqUxUYS8vwLBgqJ7 -# Fx0ViY1w/ue10CgaiQuPNtq6TPmb/wrpNPgkNWcr4A245oyZ1uEi6vAnQj0llOZ0 -# dFtq0Z4+7X6gMTN9vMvpe784cETRkPHIqzqKOghif9lwY1NNje6CbaUFEMFxBmoQ -# tB1VM1izoXBm8qGCA00wggI1AgEBMIH5oYHRpIHOMIHLMQswCQYDVQQGEwJVUzET -# MBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMV -# TWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmlj -# YSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046MzMwMy0wNUUw -# LUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiIwoB -# ATAHBgUrDgMCGgMVAOJY0F4Un2O9oSs3rgPUbzp4vSa7oIGDMIGApH4wfDELMAkG -# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx -# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwDQYJKoZIhvcNAQELBQACBQDrKctLMCIY -# DzIwMjUwMTA5MDQxMjU5WhgPMjAyNTAxMTAwNDEyNTlaMHQwOgYKKwYBBAGEWQoE -# ATEsMCowCgIFAOspy0sCAQAwBwIBAAICDi4wBwIBAAICEwYwCgIFAOsrHMsCAQAw -# NgYKKwYBBAGEWQoEAjEoMCYwDAYKKwYBBAGEWQoDAqAKMAgCAQACAwehIKEKMAgC -# AQACAwGGoDANBgkqhkiG9w0BAQsFAAOCAQEADkiWamjSmviO9YqYfIiRX1Piao1P -# E9L7CHsHueatij1ZdDy4/dPPRHrPxAh2DkGmJms3NuBqYbB6bsBqdaDXBzx6wjYa -# zXHdf6X5WXGddq7+uqmvcIrpraVHU2QZ3K3cRwGFHNGMpLpCudyxgZCs3ZhdRRmE -# r1ZDCm3PkVbS0jnml2Lek8Y1tLGKvcIISfNTkiyig6yi73SbDM3vOO6ENnsfM0ru -# kwKHMdtiq/39igRo7QIjHs9MeLHMbHwXgjRGI3TLxSIjWccmSazsqhW7D5EA4QMu -# msUF8OtPaZEFcxDMrvXDnlmnrFKyduBeejPLYV/187uuYZbbISCOEZMs4TGCBA0w -# ggQJAgEBMIGTMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# JjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB5tlC -# nuoA+H3hAAEAAAHmMA0GCWCGSAFlAwQCAQUAoIIBSjAaBgkqhkiG9w0BCQMxDQYL -# KoZIhvcNAQkQAQQwLwYJKoZIhvcNAQkEMSIEIP/wNGklENvkuaBY+U1DsHoaXUmo -# 5WvTcBnE/Evx/2yzMIH6BgsqhkiG9w0BCRACLzGB6jCB5zCB5DCBvQQgz7ujhqge -# swlobyCcs7WrXqEhhxGejLoWc4JudIPSxlkwgZgwgYCkfjB8MQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBQQ0EgMjAxMAITMwAAAebZQp7qAPh94QABAAAB5jAiBCD8l+rOWChQ -# CRuAQRm+T3rSmz79Nr7VoQBmKySwz9QBqDANBgkqhkiG9w0BAQsFAASCAgC1GASh -# J5UvilJ3Ov+YAaMtjHeHXtWpgVRdGf9db3Yz1G2FVlINm8dZwVSlR+9ReQ2xM95A -# Xev0JWUidaNBw0oLeKxwFSpDiZgeybcmRfwIReJHwntI6FdsA+sxA946XhPOERK7 -# uOc+lsVj6+Zlpv/dymQoS/CBKZexg88nHZ9hKUb4ADPoLqioNsCTPUNbxUu7jzU7 -# HAbiHn1jlHrOabJRhtgHqOSziOS+VgwEihbt+NwSEpLdR1sgCyUQu8QQPV7md9BP -# HEcMgxjY03tj5/ZtyzhSIFCz6SoEOF3jF6DRvfgwZiyC8MStxL1LR6Xi51r741L1 -# idFgKIUVKLhSiutCz2jh0VrTYgce2JP8ZKhjJLbjGpTeJESaYAqobbDgKQtylBkx -# AfmC/AxxRpzDlubRQOLGKolu2ovwVy79d0uvuguuv2hiSxbdWwcNqCBtYyIAeNGJ -# 1GJnFYMqI0S3H3oOp8rCQ64OBFA2LRkPcnrXWX6Nzh9sNqIwivLlrYl+CtMt84jT -# 2XMxxItYdoKSyH1i4UjGoTX9iVzkDqTszOhXJNLCsz0sTu7kmgVqa8oCfcpbViVW -# srKWEReuigtPFwBbCIFuUh6+0oVHLpbFCM0Ttmf3iZAs/Y8Y6cgp0YWH4UyvamUa -# 2FmYmwdwVvk+Tn7zgeZwstjO2SJFS5hXzJTJqg== -# SIG # End signature block diff --git a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/bin/Az.KeyVault.private.dll b/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/bin/Az.KeyVault.private.dll deleted file mode 100644 index aa30b497aad5..000000000000 Binary files a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/bin/Az.KeyVault.private.dll and /dev/null differ diff --git a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/custom/Add-AzKeyVaultManagedHsmRegion.ps1 b/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/custom/Add-AzKeyVaultManagedHsmRegion.ps1 deleted file mode 100644 index ddaa8c556c99..000000000000 --- a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/custom/Add-AzKeyVaultManagedHsmRegion.ps1 +++ /dev/null @@ -1,351 +0,0 @@ - -# ---------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# http://www.apache.org/licenses/LICENSE-2.0 -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Code generated by Microsoft (R) AutoRest Code Generator.Changes may cause incorrect behavior and will be lost if the code -# is regenerated. -# ---------------------------------------------------------------------------------- - -<# -.Synopsis -The List operation gets information about the regions associated with the managed HSM Pool. -.Description -The List operation gets information about the regions associated with the managed HSM Pool. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IMhsmGeoReplicatedRegion -.Link -https://learn.microsoft.com/powershell/module/az.keyvault/add-azkeyvaultmanagedhsmregion -#> -function Add-AzKeyVaultManagedHsmRegion { - [OutputType([Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IMhsmGeoReplicatedRegion])] - [CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] - param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [System.String] - # Name of the managed HSM Pool - ${HsmName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [System.String] - # Name of the resource group that contains the managed HSM pool. - ${ResourceGroupName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String[]] - # List of regions to be added associated with the managed hsm pool. - # To construct, see NOTES section for REGION properties and create a hash table. - ${Region}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command as a job - ${AsJob}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Subscription credentials which uniquely identify Microsoft Azure subscription. - # The subscription ID forms part of the URI for every service call. - ${SubscriptionId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} - ) - process { - try { - $null = $PSBoundParameters.Remove('HsmName') - $null = $PSBoundParameters.Add('Name', $HsmName) - $null = $PSBoundParameters.Remove('Region') - $Parameter = Az.KeyVault.internal\Get-AzKeyVaultManagedHsm @PSBoundParameters - $Parameter = Az.KeyVault.private\Get-ParameterForRegion -Parameter $Parameter -Region $Region - $null = $PSBoundParameters.Add('Parameter', $Parameter) - $null = Az.KeyVault.internal\Update-AzKeyVaultManagedHsm @PSBoundParameters - $null = $PSBoundParameters.Remove('Parameter') - $null = $PSBoundParameters.Remove('Name') - $null = $PSBoundParameters.Add('HsmName', $HsmName) - Az.KeyVault\Get-AzKeyVaultManagedHsmRegion @PSBoundParameters - } catch { - throw - } - } -} -# SIG # Begin signature block -# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCD3sQD5TYPf5484 -# UHM/DnuOYou8y/jT9IbT+TqO6drQyaCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIEeJdQNWAlqcsqaz63VC1pyj -# 7VvqqfiSqxUZ/fe6HmLHMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEARUxEctsUJNPbnrYeCqhQZCAFk88cOL5uhGEXtezQ0OycvRuI3U6rL/OM -# sQhaiGHgrVYffO45wsdYVJgSIjzbkqY9QPJNoj9xCXS0zuQu0ajU3bG9ERO9Wpzn -# 1RNFDohjQBT70NdMpADBgoQDh34tZcHyMGnkuAJ96LeS2cxAYDLC5qN6zpcFacUb -# qgMdUQ4jrsjRwi4zn7K/ss34Hxl984eyoVklK/r9rylJB0TwR/nAR1AZ4VDC8Id0 -# 0bvGfNndd8Rk0cMCLVy7L8BFimJHRQDZpzhulTyxdRmqjSah7XtYuA24vHmPdlDG -# lUsBwDIkxxS0l0VaEYp5PXlnmq4iSaGCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC -# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCD+lYYIieUEv0cq8GOhNps07SA3yo1G+MO8+IKWjPZHFAIGZ1rLfdk1 -# GBMyMDI1MDEwOTA2Mzc0NS4wNjZaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTkzNS0w -# M0UwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHqMIIHIDCCBQigAwIBAgITMwAAAekPcTB+XfESNgABAAAB6TANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# MjZaFw0yNTAzMDUxODQ1MjZaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTkzNS0wM0UwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQCsmowxQRVgp4TSc3nTa6yrAPJnV6A7aZYnTw/yx90u -# 1DSH89nvfQNzb+5fmBK8ppH76TmJzjHUcImd845A/pvZY5O8PCBu7Gq+x5Xe6plQ -# t4xwVUUcQITxklOZ1Rm9fJ5nh8gnxOxaezFMM41sDI7LMpKwIKQMwXDctYKvCyQy -# 6kO2sVLB62kF892ZwcYpiIVx3LT1LPdMt1IeS35KY5MxylRdTS7E1Jocl30NgcBi -# JfqnMce05eEipIsTO4DIn//TtP1Rx57VXfvCO8NSCh9dxsyvng0lUVY+urq/G8QR -# FoOl/7oOI0Rf8Qg+3hyYayHsI9wtvDHGnT30Nr41xzTpw2I6ZWaIhPwMu5DvdkEG -# zV7vYT3tb9tTviY3psul1T5D938/AfNLqanVCJtP4yz0VJBSGV+h66ZcaUJOxpbS -# IjImaOLF18NOjmf1nwDatsBouXWXFK7E5S0VLRyoTqDCxHG4mW3mpNQopM/U1WJn -# jssWQluK8eb+MDKlk9E/hOBYKs2KfeQ4HG7dOcK+wMOamGfwvkIe7dkylzm8BeAU -# QC8LxrAQykhSHy+FaQ93DAlfQYowYDtzGXqE6wOATeKFI30u9YlxDTzAuLDK073c -# ndMV4qaD3euXA6xUNCozg7rihiHUaM43Amb9EGuRl022+yPwclmykssk30a4Rp3v -# 9QIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFJF+M4nFCHYjuIj0Wuv+jcjtB+xOMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQBWsSp+rmsxFLe61AE90Ken2XPgQHJDiS4S -# bLhvzfVjDPDmOdRE75uQohYhFMdGwHKbVmLK0lHV1Apz/HciZooyeoAvkHQaHmLh -# wBGkoyAAVxcaaUnHNIUS9LveL00PwmcSDLgN0V/Fyk20QpHDEukwKR8kfaBEX83A -# yvQzlf/boDNoWKEgpdAsL8SzCzXFLnDozzCJGq0RzwQgeEBr8E4K2wQ2WXI/ZJxZ -# S/+d3FdwG4ErBFzzUiSbV2m3xsMP3cqCRFDtJ1C3/JnjXMChnm9bLDD1waJ7TPp5 -# wYdv0Ol9+aN0t1BmOzCj8DmqKuUwzgCK9Tjtw5KUjaO6QjegHzndX/tZrY792dfR -# AXr5dGrKkpssIHq6rrWO4PlL3OS+4ciL/l8pm+oNJXWGXYJL5H6LNnKyXJVEw/1F -# bO4+Gz+U4fFFxs2S8UwvrBbYccVQ9O+Flj7xTAeITJsHptAvREqCc+/YxzhIKkA8 -# 8Q8QhJKUDtazatJH7ZOdi0LCKwgqQO4H81KZGDSLktFvNRhh8ZBAenn1pW+5UBGY -# z2GpgcxVXKT1CuUYdlHR9D6NrVhGqdhGTg7Og/d/8oMlPG3YjuqFxidiIsoAw2+M -# hI1zXrIi56t6JkJ75J69F+lkh9myJJpNkx41sSB1XK2jJWgq7VlBuP1BuXjZ3qgy -# m9r1wv0MtTCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNN -# MIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOkE5MzUtMDNFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQCr -# aYf1xDk2rMnU/VJo2GGK1nxo8aCBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymJpTAiGA8yMDI1MDEwODIzMzI1 -# M1oYDzIwMjUwMTA5MjMzMjUzWjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDrKYml -# AgEAMAcCAQACAiY0MAcCAQACAhO3MAoCBQDrKtslAgEAMDYGCisGAQQBhFkKBAIx -# KDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZI -# hvcNAQELBQADggEBAAQlwho/Cpc2tSYw1vt8Nusm/AJf/Yqg9evZ8PETElVrzhay -# zWqvq1NvLQUDBF/h2v4OUD3KLxjhCUKlA/o7mMBoFc7qpe/AyIaAE19CN0TkdcyL -# Ea/SMG0cUnkOoFF+Oo+eSKd3uznYnmYR9I06LuajHlThXy6N7GOr7J6gOB8vBmPs -# T7MG2CqyCfzRkz32sb2aUq0NAptBFpcJne91zFxwTUaXk5wQRyQe94HO9RW2NESk -# Z9EwvsW2ePzGIpcqLVg7IuOBlV/s89WyfkeoQqlWEdJ4LeuzNFzcn08O6mzom6HB -# rpKEVa7+cHp+6zz+CnEsBGgajWh5fn53NsRbIGoxggQNMIIECQIBATCBkzB8MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy -# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAekPcTB+XfESNgABAAAB6TAN -# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G -# CSqGSIb3DQEJBDEiBCBBY7aevTUzD/aRgRDDOvPkbXPN+ydIAM9HpqZb7LFOXjCB -# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIKSQkniXaTcmj1TKQWF+x2U4riVo -# rGD8TwmgVbN9qsQlMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAHpD3Ewfl3xEjYAAQAAAekwIgQgVsI9sjr04+BLBnuWLK2e0f0duiPI -# futB9xw9G6dDkcIwDQYJKoZIhvcNAQELBQAEggIARt1NV99PRUxoumMsasjjjAi6 -# gIAbqZ5n9irZpglpnFY6Ewlv9HXohKmoXjxYN+LDfnUY6302rTKbKsYeM7II4QOw -# Mw5jhJaVXcG7GIo2RkZTi9z7OitK51O4Hf+ohgfmn3A83khDVH2WrQHg8ISmL0Im -# Qj6OFhcGWSCr1W6MnwaPDxrH3FlP/boiIs2Qvb+WZpj9Me2k3kxz2lrMbn1tu8bn -# sWVUSLdqswIbzAGBy2XUPZTbaV3zAeJepPXnJ60yWs5PM9AMA5wvd+1sdYCxOOhB -# AgTB8JIt4LJw5pTDySNdQYpTJxL3XhuUPioowHOiLmjpVgU+5Cz5FAz9mZJ9zlDV -# Q605MOAFRCkF5fHzjK47KAD+7ibMcwNAcmmqAVXNTbH2R/Z3KAut7Xkz8pmsa4ep -# zNUChucmLU+ZIcuF6WKgC///5WDsIsc8Whn6yS/dX0wgHS/69fEH7jFh6bMCSq8C -# f+P+G75Dbsw/wxcpwiB1wfx7nNDiSTXjlonSKvs339SSPLUHAWbtEj7+IWoAOrEr -# 6DVEtThmnc/cOJPYWNxXNbEVmkGrk1GIkBbrulvKDsEpKmHKrDVuSLeZI0et/B0x -# ys3Vsu3NsUFtLv7vTmQbrzwFgOxKFQzUh09TI3sZ+U2JfZ6l9jCtUpl6KXxuyq4x -# ZjeDowXTUi46EczzyoY= -# SIG # End signature block diff --git a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/custom/Az.KeyVault.custom.psm1 b/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/custom/Az.KeyVault.custom.psm1 deleted file mode 100644 index 2e3ea2e80674..000000000000 --- a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/custom/Az.KeyVault.custom.psm1 +++ /dev/null @@ -1,235 +0,0 @@ -# region Generated - # Load the private module dll - $null = Import-Module -PassThru -Name (Join-Path $PSScriptRoot '..\bin\Az.KeyVault.private.dll') - - # Load the internal module - $internalModulePath = Join-Path $PSScriptRoot '..\internal\Az.KeyVault.internal.psm1' - if(Test-Path $internalModulePath) { - $null = Import-Module -Name $internalModulePath - } - - # Export nothing to clear implicit exports - Export-ModuleMember - - # Export script cmdlets - Get-ChildItem -Path $PSScriptRoot -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } - Export-ModuleMember -Function (Get-ScriptCmdlet -ScriptFolder $PSScriptRoot) -Alias (Get-ScriptCmdlet -ScriptFolder $PSScriptRoot -AsAlias) -# endregion - -# SIG # Begin signature block -# MIIoKQYJKoZIhvcNAQcCoIIoGjCCKBYCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAhgmpnLOCuADnf -# vtM33V/fWhhyLDhhtDpPciX9NEINkKCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgkwghoFAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIMGUxsaZz9mlQlu7cdXzs2qo -# UZjdck51ZeEZGNUGFzMAMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAnyDnnw3K/3cyMEzj3XJsG6q9CVIWRebD3n16/AqzbclncfBspPY6iRds -# rsqTAEOoChb+edbhZlQCHFY92+S9vuLGWUAWyRneiY85A8G6xhVhlIm/JHktt+6B -# BOhgOanunQD/sFF0oOshK3NFZChj2B3Nd58c8MREHYB3aNlyAeFXl7lJuRqYrhJZ -# b0DaZMr2fLIGwA8DfsuqJd903a2DKdRv/ZatTuwAzX48SuPU8rf8Y/zVyasCObp2 -# 4FtVJxLAbsiJgfv/VOp6W0CsNwmgN9YegQiEmYtFwn3p7zKuC7xxjSfA33+fiqTf -# 7cLbW7NRvIpKM73D4zxFwogzbaUMZqGCF5MwghePBgorBgEEAYI3AwMBMYIXfzCC -# F3sGCSqGSIb3DQEHAqCCF2wwghdoAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFRBgsq -# hkiG9w0BCRABBKCCAUAEggE8MIIBOAIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCCjXF1FlLA1H5ijbyz3lXgG4FjPNPL86HTZ4Xxxt6TwLgIGZ3gW1Ixn -# GBIyMDI1MDEwOTA2MzY0My4xM1owBIACAfSggdGkgc4wgcsxCzAJBgNVBAYTAlVT -# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVy -# aWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjpBNDAwLTA1 -# RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaCC -# EeowggcgMIIFCKADAgECAhMzAAAB7OArpILQkVKAAAEAAAHsMA0GCSqGSIb3DQEB -# CwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTIzMTIwNjE4NDUz -# OFoXDTI1MDMwNTE4NDUzOFowgcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMx -# JzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjpBNDAwLTA1RTAtRDk0NzElMCMGA1UE -# AxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZTCCAiIwDQYJKoZIhvcNAQEB -# BQADggIPADCCAgoCggIBALBH9G4JNuDFRZWb9V26Xba7B0RmbQigAWzqgivf1Ur8 -# i0/zRyf7xOa0/ruJpsHgOYAon0Yfp0kaEQ8mlji9MpFI7CtE3FUgqg895QXd/hXI -# cRyj+7VBRp2XAPXfY25kLFueHoyLaUsbukO+zNmowbtLcwKLZuTae+0Yp14Agv4f -# vuAvivTVNJZvuuwTYlvU/83pj9bUKoOLX8hvf/NGpZe3jPG90gZw+NLhkrJAQXdI -# RkCrhciOLKjA8dqo1tnF1/aRY79qN19NTzm33fgJcCKdvSj65D0q1oo0tVVw1/lC -# lLh/r8yxc68gW4JgxF0oOOma+jAB4v7WPbtsLEIGkNAetaR8/Nmn9f5u30LsTmE8 -# /odVGioFhHu7WBR/kYSr7mvUcDSNqOfRDo699hyQTQd06/opZr6wCYkbs8O9Nlp7 -# vuGibPHog+qCBWk1m4KTv1J9Wacq70XnxQCdTnxOoMcTMaxCcxRAqy1LfOOfpJTQ -# 0sQU0J62W5oqSpYNFUsRZu7fb0gSHe2pc9d/LpGH/AJvB71IIkiiq0F7EGs/JBgD -# ZdrPV8r3KxOzHSQD1XUnBVXjghr1z4zC0BHqyop0CBGj9uz9e7yC5rwsN7opbK73 -# vh72YZbtk7ydqsMWsBPURcYcO57KBIq+/YrvAHyUCAwYmPvcJC+v6OqhbDHpd3J5 -# AgMBAAGjggFJMIIBRTAdBgNVHQ4EFgQU9FrQR2T+K/XCFhCxXxSAR/hMhYYwHwYD -# VR0jBBgwFoAUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXwYDVR0fBFgwVjBUoFKgUIZO -# aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIw -# VGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3JsMGwGCCsGAQUFBwEBBGAwXjBc -# BggrBgEFBQcwAoZQaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0 -# cy9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcnQwDAYD -# VR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAOBgNVHQ8BAf8EBAMC -# B4AwDQYJKoZIhvcNAQELBQADggIBAJK8xKQxKu+OUM9qDwBFvQ4WsBC1IswOk3RR -# jcWO8+HAYoOuuLGae4x+OuZWNGrW7wiGQO8YX9t99sVOv4gCcNJ6DxMH3N8b/jJu -# Se6imSVt4aNu3swvGl+GiUIRHIRzbQ8xkonP1K/N+47WfnGuss4vybSea/mQFy/7 -# LUBcnlBwuJyaF7Yinf8PrsR3qg+pAjTeYONhpLU1CEE227nvA8pdnUSg1OgGTxsD -# rzf3DXX1v5r1ZOioiyR1Eag/nGMMi/6ZzS8EeFkaQlW98iGbgCnzOm0LvFUCXLSN -# 46/l1QYwJiBmO+hOaB3jluoDC6d2Y+Ua6vt6V5Zh50tB/uzcvn6p9pj/ESH/26jX -# tKcz+AdVIYDO+et4aE6sHYu10qhVJ7kttimKFdy0N7vqJi0v6aHFc8SnN1rdsmWE -# 9M5Dco4RkClUREGjnKW1aM8JaVfHIKmXmOP2djSd93TvVt6aei7wDetRmt2Aohq6 -# 2wftIc6I55tkao277rba8m1rd4BiwIBrEBwH0GIk+Vrtdp32qtNh1PjlWUJhO0FJ -# jihVGx51IAO/32O/+JggAbLVsLK25rSj9Cq/16sqbNAJNUxdoNzbkNMtwwYmtG5r -# crTGK922egF7HNUmvrJeoz4FrbCEhVG8ZyuIGQpfQUkV5buvb1df6TR7gOcbqIEc -# pCN5zpU3MIIHcTCCBVmgAwIBAgITMwAAABXF52ueAptJmQAAAAAAFTANBgkqhkiG -# 9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAO -# BgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEy -# MDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIw -# MTAwHhcNMjEwOTMwMTgyMjI1WhcNMzAwOTMwMTgzMjI1WjB8MQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBQQ0EgMjAxMDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB -# AOThpkzntHIhC3miy9ckeb0O1YLT/e6cBwfSqWxOdcjKNVf2AX9sSuDivbk+F2Az -# /1xPx2b3lVNxWuJ+Slr+uDZnhUYjDLWNE893MsAQGOhgfWpSg0S3po5GawcU88V2 -# 9YZQ3MFEyHFcUTE3oAo4bo3t1w/YJlN8OWECesSq/XJprx2rrPY2vjUmZNqYO7oa -# ezOtgFt+jBAcnVL+tuhiJdxqD89d9P6OU8/W7IVWTe/dvI2k45GPsjksUZzpcGkN -# yjYtcI4xyDUoveO0hyTD4MmPfrVUj9z6BVWYbWg7mka97aSueik3rMvrg0XnRm7K -# MtXAhjBcTyziYrLNueKNiOSWrAFKu75xqRdbZ2De+JKRHh09/SDPc31BmkZ1zcRf -# NN0Sidb9pSB9fvzZnkXftnIv231fgLrbqn427DZM9ituqBJR6L8FA6PRc6ZNN3SU -# HDSCD/AQ8rdHGO2n6Jl8P0zbr17C89XYcz1DTsEzOUyOArxCaC4Q6oRRRuLRvWoY -# WmEBc8pnol7XKHYC4jMYctenIPDC+hIK12NvDMk2ZItboKaDIV1fMHSRlJTYuVD5 -# C4lh8zYGNRiER9vcG9H9stQcxWv2XFJRXRLbJbqvUAV6bMURHXLvjflSxIUXk8A8 -# FdsaN8cIFRg/eKtFtvUeh17aj54WcmnGrnu3tz5q4i6tAgMBAAGjggHdMIIB2TAS -# BgkrBgEEAYI3FQEEBQIDAQABMCMGCSsGAQQBgjcVAgQWBBQqp1L+ZMSavoKRPEY1 -# Kc8Q/y8E7jAdBgNVHQ4EFgQUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXAYDVR0gBFUw -# UzBRBgwrBgEEAYI3TIN9AQEwQTA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNy -# b3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRtMBMGA1UdJQQMMAoG -# CCsGAQUFBwMIMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIB -# hjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP6KJcYmjRPZSQW9fO -# mhjEMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9w -# a2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNybDBaBggr -# BgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0LmNv -# bS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0MA0GCSqGSIb3 -# DQEBCwUAA4ICAQCdVX38Kq3hLB9nATEkW+Geckv8qW/qXBS2Pk5HZHixBpOXPTEz -# tTnXwnE2P9pkbHzQdTltuw8x5MKP+2zRoZQYIu7pZmc6U03dmLq2HnjYNi6cqYJW -# AAOwBb6J6Gngugnue99qb74py27YP0h1AdkY3m2CDPVtI1TkeFN1JFe53Z/zjj3G -# 82jfZfakVqr3lbYoVSfQJL1AoL8ZthISEV09J+BAljis9/kpicO8F7BUhUKz/Aye -# ixmJ5/ALaoHCgRlCGVJ1ijbCHcNhcy4sa3tuPywJeBTpkbKpW99Jo3QMvOyRgNI9 -# 5ko+ZjtPu4b6MhrZlvSP9pEB9s7GdP32THJvEKt1MMU0sHrYUP4KWN1APMdUbZ1j -# dEgssU5HLcEUBHG/ZPkkvnNtyo4JvbMBV0lUZNlz138eW0QBjloZkWsNn6Qo3GcZ -# KCS6OEuabvshVGtqRRFHqfG3rsjoiV5PndLQTHa1V1QJsWkBRH58oWFsc/4Ku+xB -# Zj1p/cvBQUl+fpO+y/g75LcVv7TOPqUxUYS8vwLBgqJ7Fx0ViY1w/ue10CgaiQuP -# Ntq6TPmb/wrpNPgkNWcr4A245oyZ1uEi6vAnQj0llOZ0dFtq0Z4+7X6gMTN9vMvp -# e784cETRkPHIqzqKOghif9lwY1NNje6CbaUFEMFxBmoQtB1VM1izoXBm8qGCA00w -# ggI1AgEBMIH5oYHRpIHOMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGlu -# Z3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv -# cmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScw -# JQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTQwMC0wNUUwLUQ5NDcxJTAjBgNVBAMT -# HE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiIwoBATAHBgUrDgMCGgMVAI4c -# +2BV3P0RbSI80v8FeomipUx/oIGDMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# UENBIDIwMTAwDQYJKoZIhvcNAQELBQACBQDrKdU9MCIYDzIwMjUwMTA5MDQ1NTI1 -# WhgPMjAyNTAxMTAwNDU1MjVaMHQwOgYKKwYBBAGEWQoEATEsMCowCgIFAOsp1T0C -# AQAwBwIBAAICGvIwBwIBAAICE/YwCgIFAOsrJr0CAQAwNgYKKwYBBAGEWQoEAjEo -# MCYwDAYKKwYBBAGEWQoDAqAKMAgCAQACAwehIKEKMAgCAQACAwGGoDANBgkqhkiG -# 9w0BAQsFAAOCAQEAgJYbzJZGAehfP0lgWKMAaMaLEfhN9dHegZ5uZzwZe6qZCAI0 -# yw8pecOQwfe2j8a2sNAxDMKcWunvRRrK7KrNAb/XtsViEglYtIGHxmR8j/n1JMRb -# DwYHRszUvCJwQ/kLkRheLDyFKi4ZKJ9oJxba9Ng+ALYhX7lH9Y/RgbyAiObMPFIz -# CPVwWxrz+hahDtbiX0MwHN+Go8pr2D9UOwVuT+W/Ml4fjkAfsx1LkrpJgcXIOudx -# UnfWH74jGY0cZcx15rSmzqTdkAI568LmcgZBdhQpWPf6oOEg1rmMErU23UIBvoBo -# IT2lPsNuHaeORj8QiVEmvdg/kmemB+Jq/XoqKDGCBA0wggQJAgEBMIGTMHwxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv -# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB7OArpILQkVKAAAEAAAHsMA0G -# CWCGSAFlAwQCAQUAoIIBSjAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJ -# KoZIhvcNAQkEMSIEIPFQrjIRHHDyWt0AeVpn0LZacvaWU/jRhVLCAwE1VuEUMIH6 -# BgsqhkiG9w0BCRACLzGB6jCB5zCB5DCBvQQgJwnm9Wp9N8iHHbVAEFsrKj/FyJAh -# dqgxZQt6MATVCoMwgZgwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MAITMwAAAezgK6SC0JFSgAABAAAB7DAiBCCcnZEgMd+b/WILuiRw1VR2BIOp9rHP -# KSoubN3CMGIojDANBgkqhkiG9w0BAQsFAASCAgBf7ZWuTG62T5oA+iCncoebbTG+ -# iVW9rvpPgEbdtuTW/pxqsT0Xu068S4fcvSZWCkNSiIu+4Z86N07hyZeh5VbE+tA0 -# GJpd2VmL89gzgSNfiG1ot4lrlFHqabhsWhQs/VH1igVbuSykt06/ss2Jgg8Cj2Jv -# szYJZFceI1msRP7hCp6a6AUb9YlFYBGUf7hw8XawDT9GkL2e9u90bnJODk79+Hkz -# hUEElQGWG2VnSyyoYluKLtQfluY76W+JXBn18aoz5w45WbI5CNSpAMGArnau5Whq -# rMPdA/e32N7/37JxVnvzQs+8f7AeBFiiIbf+ATVTQoeNbBmNlFScWuZW/Q7Epg56 -# KtyU5bQBr4Voh33p/oMgbObmDMy4QYx8VqE5SNR0hgEs0+EyegcrVlag8m2KkdgT -# na7DxEyvKRkRi5UWFBGG25WHOs6jnhJ3V+vO1rUihirAokirAygPaaCXESHpnXMa -# bCY90nQLn0F3qYXZ2AzrBPZJYzGTcODN2QfyTDkgUCzEzY5icYH7Fu9Pe3tdtE2n -# lRpvtNLVx8uCA5Uxex7Ex5PtMTmKl+Fg73bpfbyiWjQV1bM4RD1kzHjM80soQO4w -# 1xPn0GqGmtDjRlV/4VqaLaJZ7aRH4qOt1aGYsJGyp47LDi48FoN9Kis8UYQnVvAK -# gI9yieXK51YfKE28Fw== -# SIG # End signature block diff --git a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/custom/Get-ParameterForRegion.cs b/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/custom/Get-ParameterForRegion.cs deleted file mode 100644 index b2430e1588b9..000000000000 --- a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/custom/Get-ParameterForRegion.cs +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Cmdlets -{ - using static Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.Extensions; - using Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.PowerShell; - using Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.Cmdlets; - using System; - using System.Management.Automation; - using System.Collections; - using System.Collections.Generic; - using System.Linq; - - [global::Microsoft.Azure.PowerShell.Cmdlets.KeyVault.InternalExport] - [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"ParameterForRegion")] - [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IManagedHsm))] - [global::Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Description(@"Create an in-memory object for parameter region.")] - [global::Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Generated] - public partial class GetAzKeyVaultManagedHsmRegionObject : global::System.Management.Automation.PSCmdlet - { - /// Backing field for property. - private Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IManagedHsm _parameter; - - /// Resource information with extended details. - [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Resource information with extended details.", ValueFromPipeline = true)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.Info( - Required = true, - ReadOnly = false, - Description = @"Resource information with extended details.", - SerializedName = @"parameters", - PossibleTypes = new[] { typeof(Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IManagedHsm) })] - [global::Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category(global::Microsoft.Azure.PowerShell.Cmdlets.KeyVault.ParameterCategory.Body)] - public Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IManagedHsm Parameter { get => this._parameter; set => this._parameter = value; } - - /// Backing field for property. - private string[] _region; - - /// - /// List of all regions associated with the managed hsm pool. - /// - [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "List of all regions associated with the managed hsm pool.")] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.Info( - Required = true, - ReadOnly = false, - Description = @"List of all regions associated with the managed hsm pool.", - PossibleTypes = new[] { typeof(string) })] - [global::Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category(global::Microsoft.Azure.PowerShell.Cmdlets.KeyVault.ParameterCategory.Path)] - public string[] Region { get => this._region; set => this._region = value; } - - [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Specify if add or remove regions to existing regions")] - public SwitchParameter RemoveRegion; - - /// Performs execution of the command. - protected override void ProcessRecord() - { - if (RemoveRegion.IsPresent) - { - var remainingRegions = this.Parameter.Region?.Where(r => !this.Region.Contains(r.Name, StringComparer.OrdinalIgnoreCase)); - this.Parameter.Region = remainingRegions?.ToList(); - } - else - { - foreach (var r in this.Region) - { - this.Parameter.Region.Add(new Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmGeoReplicatedRegion(new Dictionary{{ "Name", r }})); - - } - } - WriteObject(this.Parameter); - } - - } -} \ No newline at end of file diff --git a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/custom/ManagedHsm.json.cs b/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/custom/ManagedHsm.json.cs deleted file mode 100644 index 1d48590cddaf..000000000000 --- a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/custom/ManagedHsm.json.cs +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models -{ - using static Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.Extensions; - - /// Resource information with extended details. - public partial class ManagedHsm - { - partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.Json.JsonObject container) - { - if (this.Tag != null && this.Tag.Count == 0) { - container.Add("tags", new Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.Json.JsonObject()); - } - } - } -} \ No newline at end of file diff --git a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/custom/Remove-AzKeyVaultManagedHsmRegion.ps1 b/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/custom/Remove-AzKeyVaultManagedHsmRegion.ps1 deleted file mode 100644 index 1b6467b17b5e..000000000000 --- a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/custom/Remove-AzKeyVaultManagedHsmRegion.ps1 +++ /dev/null @@ -1,359 +0,0 @@ - -# ---------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# http://www.apache.org/licenses/LICENSE-2.0 -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Code generated by Microsoft (R) AutoRest Code Generator.Changes may cause incorrect behavior and will be lost if the code -# is regenerated. -# ---------------------------------------------------------------------------------- - -<# -.Synopsis -The List operation gets information about the regions associated with the managed HSM Pool. -.Description -The List operation gets information about the regions associated with the managed HSM Pool. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IMhsmGeoReplicatedRegion -.Link -https://learn.microsoft.com/powershell/module/az.keyvault/remove-azkeyvaultmanagedhsmregion -#> -function Remove-AzKeyVaultManagedHsmRegion { - [OutputType([Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IMhsmGeoReplicatedRegion])] - [CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] - param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [System.String] - # Name of the managed HSM Pool - ${HsmName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [System.String] - # Name of the resource group that contains the managed HSM pool. - ${ResourceGroupName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String[]] - # List of regions to be removed associated with the managed hsm pool. - ${Region}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command as a job - ${AsJob}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Subscription credentials which uniquely identify Microsoft Azure subscription. - # The subscription ID forms part of the URI for every service call. - ${SubscriptionId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} - ) - process { - try { - $null = $PSBoundParameters.Remove('PassThru') - $null = $PSBoundParameters.Remove('HsmName') - $null = $PSBoundParameters.Add('Name', $HsmName) - $null = $PSBoundParameters.Remove('Region') - $Parameter = Az.KeyVault.internal\Get-AzKeyVaultManagedHsm @PSBoundParameters - $Parameter = Az.KeyVault.private\Get-ParameterForRegion -Parameter $Parameter -Region $Region -RemoveRegion - $null = $PSBoundParameters.Add('Parameter', $Parameter) - $null = Az.KeyVault.internal\Update-AzKeyVaultManagedHsm @PSBoundParameters - if($PassThru.IsPresent){ - $null = $PSBoundParameters.Remove('Parameter') - $null = $PSBoundParameters.Remove('Name') - $null = $PSBoundParameters.Add('HsmName', $HsmName) - Az.KeyVault\Get-AzKeyVaultManagedHsmRegion @PSBoundParameters - } - } catch { - throw - } - } -} -# SIG # Begin signature block -# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCB4v93oDmbZQQ2x -# tyZRN6JNLldXTy5N0cZWCzNavC4OQqCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEINOR86hYJwqZLsIlsS/vBWtR -# vlDyaDcDGdns8dizFXBRMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAU8QK33+FMdBw1d9ePaVyu6+yfIsT3z2M0PFvY+swzH+0i8ncYKBDSOHx -# k4ihXTQVyH6CjtPMFtOkdfZ1XRqU1NRGiPeK3XzKbV762ujMJMnNJaaVDs7TBDZB -# /GPFTGDsl1YKA9IygI61UlMpreeYe5dUyssk7tJbugFS8aR/fF+U5Myn8UzYXWax -# zjS4Xnb1Cmx6++Ja0ItZsqcbroh3YAsfqSI/zjvR/fWpUJveSXVGcnU6h3/CHVbU -# rkKevTTthdlClpCsKKAQvGZtBvwauvhuxhAqagUzBuejHkWP0tDAhr7ipxyyGhud -# cyQYG09SVq0+hbTdfPsSQJWWf/0XnaGCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC -# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCCRaLlAU2sEIxthqOzA3LMCMYJO8Ie/fFNg4mOXMJp39AIGZ1rYDqmf -# GBMyMDI1MDEwOTA2Mzc0NC45MTlaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTAwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHqMIIHIDCCBQigAwIBAgITMwAAAevgGGy1tu847QABAAAB6zANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# MzRaFw0yNTAzMDUxODQ1MzRaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTAwMC0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDBFWgh2lbgV3eJp01oqiaFBuYbNc7hSKmktvJ15NrB -# /DBboUow8WPOTPxbn7gcmIOGmwJkd+TyFx7KOnzrxnoB3huvv91fZuUugIsKTnAv -# g2BU/nfN7Zzn9Kk1mpuJ27S6xUDH4odFiX51ICcKl6EG4cxKgcDAinihT8xroJWV -# ATL7p8bbfnwsc1pihZmcvIuYGnb1TY9tnpdChWr9EARuCo3TiRGjM2Lp4piT2lD5 -# hnd3VaGTepNqyakpkCGV0+cK8Vu/HkIZdvy+z5EL3ojTdFLL5vJ9IAogWf3XAu3d -# 7SpFaaoeix0e1q55AD94ZwDP+izqLadsBR3tzjq2RfrCNL+Tmi/jalRto/J6bh4f -# PhHETnDC78T1yfXUQdGtmJ/utI/ANxi7HV8gAPzid9TYjMPbYqG8y5xz+gI/SFyj -# +aKtHHWmKzEXPttXzAcexJ1EH7wbuiVk3sErPK9MLg1Xb6hM5HIWA0jEAZhKEyd5 -# hH2XMibzakbp2s2EJQWasQc4DMaF1EsQ1CzgClDYIYG6rUhudfI7k8L9KKCEufRb -# K5ldRYNAqddr/ySJfuZv3PS3+vtD6X6q1H4UOmjDKdjoW3qs7JRMZmH9fkFkMzb6 -# YSzr6eX1LoYm3PrO1Jea43SYzlB3Tz84OvuVSV7NcidVtNqiZeWWpVjfavR+Jj/J -# OQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFHSeBazWVcxu4qT9O5jT2B+qAerhMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQCDdN8voPd8C+VWZP3+W87c/QbdbWK0sOt9 -# Z4kEOWng7Kmh+WD2LnPJTJKIEaxniOct9wMgJ8yQywR8WHgDOvbwqdqsLUaM4Nre -# rtI6FI9rhjheaKxNNnBZzHZLDwlkL9vCEDe9Rc0dGSVd5Bg3CWknV3uvVau14F55 -# ESTWIBNaQS9Cpo2Opz3cRgAYVfaLFGbArNcRvSWvSUbeI2IDqRxC4xBbRiNQ+1qH -# XDCPn0hGsXfL+ynDZncCfszNrlgZT24XghvTzYMHcXioLVYo/2Hkyow6dI7uULJb -# KxLX8wHhsiwriXIDCnjLVsG0E5bR82QgcseEhxbU2d1RVHcQtkUE7W9zxZqZ6/jP -# maojZgXQO33XjxOHYYVa/BXcIuu8SMzPjjAAbujwTawpazLBv997LRB0ZObNckJY -# yQQpETSflN36jW+z7R/nGyJqRZ3HtZ1lXW1f6zECAeP+9dy6nmcCrVcOqbQHX7Zr -# 8WPcghHJAADlm5ExPh5xi1tNRk+i6F2a9SpTeQnZXP50w+JoTxISQq7vBij2nitA -# sSLaVeMqoPi+NXlTUNZ2NdtbFr6Iir9ZK9ufaz3FxfvDZo365vLOozmQOe/Z+pu4 -# vY5zPmtNiVIcQnFy7JZOiZVDI5bIdwQRai2quHKJ6ltUdsi3HjNnieuE72fT4eWh -# xtmnN5HYCDCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNN -# MIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOkEwMDAtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQCA -# Bol1u1wwwYgUtUowMnqYvbul3qCBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymWNTAiGA8yMDI1MDEwOTAwMjYy -# OVoYDzIwMjUwMTEwMDAyNjI5WjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDrKZY1 -# AgEAMAcCAQACAhUpMAcCAQACAhMJMAoCBQDrKue1AgEAMDYGCisGAQQBhFkKBAIx -# KDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZI -# hvcNAQELBQADggEBAIHAmhLTSl+tqfMPnHFg24foG1zMFnOXn0DIotbJRVZDtlhF -# nPqSqCYuWMG+vt5lcw61eK9qKCrEL1Z3DME2BYjzUw4pvqj9S4ij9UXBcY7EsuZF -# xKynfZfrdMCTOQx8920OBKrkMuEZQIyhTbNOGFKIbVqAF1ZuNWC3k3d938tCrz6k -# O5nVvlHq0eMKKt0dmLBFNI5t6CmeGfb0gGg5/DxT5b7DLoU2WO/iX3YhbPO8FNpc -# g+onP0f7LP1tI4/67GHNCchp1IYsV2KHZ7V50TN63bGfo1U4AWWahgpxKX44Wl5K -# RAfCFw4sMxpUmJCvGkkLX92WpRPfW0D8+81HOZQxggQNMIIECQIBATCBkzB8MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy -# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAevgGGy1tu847QABAAAB6zAN -# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G -# CSqGSIb3DQEJBDEiBCAN2jDs4j19gYlRzgp6BG+pMwH2RtG7FDjhSwPAc5EDXjCB -# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIM63a75faQPhf8SBDTtk2DSUgIbd -# izXsz76h1JdhLCz4MIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAHr4BhstbbvOO0AAQAAAeswIgQg3a/qZy5c5u5kLf4EWs4lzDywFVJR -# 2BigcuxSIs4sgoQwDQYJKoZIhvcNAQELBQAEggIALKqssVNkQTZNxM/Uc3H7TN8V -# B5kisM2ZJlG6BYOHdZ5uIq3Xqvg1E35tdlv2bs2WP3j2183Htz+9HukVA8xq4gAH -# lTUpZ366ekFoPxPO6rGRIJQwZWylwqEi+1jpei+NuJcqxo7mUjH8C1ZIOM5fw7ZD -# Ye4MiOURTLgZhqB7TJkIVEGfq9uaxtUJCZUSlF39B2bUJTKVWw6vpv8ZjYfFIL7M -# VR05bnusb/qMdaQnSlpR9gm9CmNfqkmV9bvhoM92osqHG8ZoFK/KCeyIkezszMYY -# XgHXuuQbH6ZWNEQnFJ5He06Dy8oH9IIKxwQqZdOJCTb1D7dBXPbRk9Epd16rOxpS -# zxm1FtGlgoic6/9eREHlCn7tuSv6aFLCpoK9PPBNh9TtADCfsa8YQyaB+A3gA1eP -# MnG1F2f7yrRYoa2uSRTwV0/99Bf2hDaWtGa6B0f3s8TLpxZRnE/kwQ0iHJH3+ehP -# Xf1mm756jFOZ5NpRWPiTuMjWu0fgrvT0bovZz5O7E1qyIyUliUIzXBFuD83UEntC -# MTTbQzoIB+w7pXpVHyTHIAwhaJ0wn8Y6xEZnQkBYeQx8kr7KZ6T1nC8ALZCTcfXt -# 46ZJS/6sbxNtyeSo3sNsnL/Takyo3stzRfCxd9DkKfQkhLpDvLN1HtDDsKP/+f/K -# W7WL5jtXYXalIGZIVYY= -# SIG # End signature block diff --git a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/exports/ProxyCmdletDefinitions.ps1 b/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/exports/ProxyCmdletDefinitions.ps1 deleted file mode 100644 index c8490a12d86d..000000000000 --- a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/exports/ProxyCmdletDefinitions.ps1 +++ /dev/null @@ -1,1149 +0,0 @@ - -# ---------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# http://www.apache.org/licenses/LICENSE-2.0 -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Code generated by Microsoft (R) AutoRest Code Generator.Changes may cause incorrect behavior and will be lost if the code -# is regenerated. -# ---------------------------------------------------------------------------------- - -<# -.Synopsis -The List operation gets information about the regions associated with the managed HSM Pool. -.Description -The List operation gets information about the regions associated with the managed HSM Pool. -.Example -Get-AzKeyVaultManagedHsmRegion -HsmName testmhsm -ResourceGroupName test-rg - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IMhsmGeoReplicatedRegion -.Link -https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvaultmanagedhsmregion -#> -function Get-AzKeyVaultManagedHsmRegion { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IMhsmGeoReplicatedRegion])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [System.String] - # Name of the managed HSM Pool - ${HsmName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [System.String] - # Name of the resource group that contains the managed HSM pool. - ${ResourceGroupName}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Subscription credentials which uniquely identify Microsoft Azure subscription. - # The subscription ID forms part of the URI for every service call. - ${SubscriptionId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - List = 'Az.KeyVault.private\Get-AzKeyVaultManagedHsmRegion_List'; - } - if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId') ) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -Checks that the managed hsm name is valid and is not already in use. -.Description -Checks that the managed hsm name is valid and is not already in use. -.Example -Test-AzKeyVaultManagedHsmNameAvailability -Name testmhsm0818 -.Example -Test-AzKeyVaultNameAvailability -Name testmhsm - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ICheckMhsmNameAvailabilityResult -.Link -https://learn.microsoft.com/powershell/module/az.keyvault/test-azkeyvaultmanagedhsmnameavailability -#> -function Test-AzKeyVaultManagedHsmNameAvailability { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ICheckMhsmNameAvailabilityResult])] -[CmdletBinding(DefaultParameterSetName='CheckExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Subscription credentials which uniquely identify Microsoft Azure subscription. - # The subscription ID forms part of the URI for every service call. - ${SubscriptionId}, - - [Parameter(ParameterSetName='CheckExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String] - # The managed hsm name. - ${Name}, - - [Parameter(ParameterSetName='CheckViaJsonFilePath', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String] - # Path of Json file supplied to the Check operation - ${JsonFilePath}, - - [Parameter(ParameterSetName='CheckViaJsonString', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String] - # Json string supplied to the Check operation - ${JsonString}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - CheckExpanded = 'Az.KeyVault.private\Test-AzKeyVaultManagedHsmNameAvailability_CheckExpanded'; - CheckViaJsonFilePath = 'Az.KeyVault.private\Test-AzKeyVaultManagedHsmNameAvailability_CheckViaJsonFilePath'; - CheckViaJsonString = 'Az.KeyVault.private\Test-AzKeyVaultManagedHsmNameAvailability_CheckViaJsonString'; - } - if (('CheckExpanded', 'CheckViaJsonFilePath', 'CheckViaJsonString') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId') ) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -Checks that the vault name is valid and is not already in use. -.Description -Checks that the vault name is valid and is not already in use. -.Example -Test-AzKeyVaultNameAvailability -Name test-kv0818 -.Example -Test-AzKeyVaultNameAvailability -Name testkv - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ICheckNameAvailabilityResult -.Link -https://learn.microsoft.com/powershell/module/az.keyvault/test-azkeyvaultnameavailability -#> -function Test-AzKeyVaultNameAvailability { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ICheckNameAvailabilityResult])] -[CmdletBinding(DefaultParameterSetName='CheckExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Subscription credentials which uniquely identify Microsoft Azure subscription. - # The subscription ID forms part of the URI for every service call. - ${SubscriptionId}, - - [Parameter(ParameterSetName='CheckExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String] - # The vault name. - ${Name}, - - [Parameter(ParameterSetName='CheckViaJsonFilePath', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String] - # Path of Json file supplied to the Check operation - ${JsonFilePath}, - - [Parameter(ParameterSetName='CheckViaJsonString', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String] - # Json string supplied to the Check operation - ${JsonString}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - CheckExpanded = 'Az.KeyVault.private\Test-AzKeyVaultNameAvailability_CheckExpanded'; - CheckViaJsonFilePath = 'Az.KeyVault.private\Test-AzKeyVaultNameAvailability_CheckViaJsonFilePath'; - CheckViaJsonString = 'Az.KeyVault.private\Test-AzKeyVaultNameAvailability_CheckViaJsonString'; - } - if (('CheckExpanded', 'CheckViaJsonFilePath', 'CheckViaJsonString') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId') ) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -The List operation gets information about the regions associated with the managed HSM Pool. -.Description -The List operation gets information about the regions associated with the managed HSM Pool. -.Example -Add-AzKeyVaultManagedHsmRegion -HsmName testmhsm -ResourceGroupName test-rg -Region eastus2 - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IMhsmGeoReplicatedRegion -.Link -https://learn.microsoft.com/powershell/module/az.keyvault/add-azkeyvaultmanagedhsmregion -#> -function Add-AzKeyVaultManagedHsmRegion { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IMhsmGeoReplicatedRegion])] -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [System.String] - # Name of the managed HSM Pool - ${HsmName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [System.String] - # Name of the resource group that contains the managed HSM pool. - ${ResourceGroupName}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Subscription credentials which uniquely identify Microsoft Azure subscription. - # The subscription ID forms part of the URI for every service call. - ${SubscriptionId}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String[]] - # List of regions to be added associated with the managed hsm pool. - # To construct, see NOTES section for REGION properties and create a hash table. - ${Region}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command as a job - ${AsJob}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - __AllParameterSets = 'Az.KeyVault.custom\Add-AzKeyVaultManagedHsmRegion'; - } - if (('__AllParameterSets') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId') ) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -The List operation gets information about the regions associated with the managed HSM Pool. -.Description -The List operation gets information about the regions associated with the managed HSM Pool. -.Example -Remove-AzKeyVaultManagedHsmRegion -HsmName testmhsm -ResourceGroupName test-rg -Region eastus2 -PassThru - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IMhsmGeoReplicatedRegion -.Link -https://learn.microsoft.com/powershell/module/az.keyvault/remove-azkeyvaultmanagedhsmregion -#> -function Remove-AzKeyVaultManagedHsmRegion { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IMhsmGeoReplicatedRegion])] -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [System.String] - # Name of the managed HSM Pool - ${HsmName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [System.String] - # Name of the resource group that contains the managed HSM pool. - ${ResourceGroupName}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Subscription credentials which uniquely identify Microsoft Azure subscription. - # The subscription ID forms part of the URI for every service call. - ${SubscriptionId}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String[]] - # List of regions to be removed associated with the managed hsm pool. - ${Region}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command as a job - ${AsJob}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - __AllParameterSets = 'Az.KeyVault.custom\Remove-AzKeyVaultManagedHsmRegion'; - } - if (('__AllParameterSets') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId') ) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -# SIG # Begin signature block -# MIIoPAYJKoZIhvcNAQcCoIIoLTCCKCkCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCfsr6cTxId8hI0 -# To0z0O06fg2XfyeaXrmqY296l2MuwqCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGg0wghoJAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIIb+ -# qsAQhMkoxLmEJQkwkz61zGoKmMz/NGy2zDcuXQpsMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAOs6GiyaeIL87iJSduOjMI6tj1zwlhNnj5FrH -# tPVbjTuDvlKYTMN2mmH98Fl7jWtPKXswW1oXStSKlM7ZPqpbHvUuTxSwbXfxp6+b -# JGz/sXiujgrfB79NmgU1vkjDnba8K4zPjPeLdwcO5NbXhmpvHURNbjAqLGWJ9O8z -# +C9KCHGD2a00YVsg9Rw8pLYBaNTlsC+0VzKCoCsgOOL1gPeCHiPYYY6in5HuBXuq -# vOleQu44EPS4oju+owIs4tAxX5e+7xeKiAJejNFt6xBf/hO4yUcGAoufz6wygPQM -# OkpdAsVSgLkwcIrfujNZdeAZUJvxkrswQ+c5iL89Abu82gml8aGCF5cwgheTBgor -# BgEEAYI3AwMBMYIXgzCCF38GCSqGSIb3DQEHAqCCF3AwghdsAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFSBgsqhkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCDfTfwaJNGxMQuhN6R4zVmjk8XmGeR5r5V4 -# SOzx6QV26gIGZ1sAySWAGBMyMDI1MDEwOTA2Mzc0Ni43MTRaMASAAgH0oIHRpIHO -# MIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQL -# ExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxk -# IFRTUyBFU046RjAwMi0wNUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1l -# LVN0YW1wIFNlcnZpY2WgghHtMIIHIDCCBQigAwIBAgITMwAAAfI+MtdkrHCRlAAB -# AAAB8jANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDAeFw0yMzEyMDYxODQ1NThaFw0yNTAzMDUxODQ1NThaMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046RjAwMi0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Uw -# ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC85fPLFwppYgxwYxkSEeYv -# QBtnYJTtKKj2FKxzHx0fgV6XgIIrmCWmpKl9IOzvOfJ/k6iP0RnoRo5F89Ad29ed -# zGdlWbCj1Qyx5HUHNY8yu9ElJOmdgeuNvTK4RW4wu9iB5/z2SeCuYqyX/v8z6Ppv -# 29h1ttNWsSc/KPOeuhzSAXqkA265BSFT5kykxvzB0LxoxS6oWoXWK6wx172NRJRY -# cINfXDhURvUfD70jioE92rW/OgjcOKxZkfQxLlwaFSrSnGs7XhMrp9TsUgmwsycT -# EOBdGVmf1HCD7WOaz5EEcQyIS2BpRYYwsPMbB63uHiJ158qNh1SJXuoL5wGDu/bZ -# UzN+BzcLj96ixC7wJGQMBixWH9d++V8bl10RYdXDZlljRAvS6iFwNzrahu4DrYb7 -# b8M7vvwhEL0xCOvb7WFMsstscXfkdE5g+NSacphgFfcoftQ5qPD2PNVmrG38DmHD -# oYhgj9uqPLP7vnoXf7j6+LW8Von158D0Wrmk7CumucQTiHRyepEaVDnnA2GkiJoe -# h/r3fShL6CHgPoTB7oYU/d6JOncRioDYqqRfV2wlpKVO8b+VYHL8hn11JRFx6p69 -# mL8BRtSZ6dG/GFEVE+fVmgxYfICUrpghyQlETJPITEBS15IsaUuW0GvXlLSofGf2 -# t5DAoDkuKCbC+3VdPmlYVQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFJVbhwAm6tAx -# BM5cH8Bg0+Y64oZ5MB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8G -# A1UdHwRYMFYwVKBSoFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMv -# Y3JsL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBs -# BggrBgEFBQcBAQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0 -# LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUy -# MDIwMTAoMSkuY3J0MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUH -# AwgwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4ICAQA9S6eO4HsfB00X -# pOgPabcN3QZeyipgilcQSDZ8g6VCv9FVHzdSq9XpAsljZSKNWSClhJEz5Oo3Um/t -# aPnobF+8CkAdkcLQhLdkShfr91kzy9vDPrOmlCA2FQ9jVhFaat2QM33z1p+GCP5t -# uvirFaUWzUWVDFOpo/O5zDpzoPYtTr0cFg3uXaRLT54UQ3Y4uPYXqn6wunZtUQRM -# iJMzxpUlvdfWGUtCvnW3eDBikDkix1XE98VcYIz2+5fdcvrHVeUarGXy4LRtwzmw -# psCtUh7tR6whCrVYkb6FudBdWM7TVvji7pGgfjesgnASaD/ChLux66PGwaIaF+xL -# zk0bNxsAj0uhd6QdWr6TT39m/SNZ1/UXU7kzEod0vAY3mIn8X5A4I+9/e1nBNpUR -# J6YiDKQd5YVgxsuZCWv4Qwb0mXhHIe9CubfSqZjvDawf2I229N3LstDJUSr1vGFB -# 8iQ5W8ZLM5PwT8vtsKEBwHEYmwsuWmsxkimIF5BQbSzg9wz1O6jdWTxGG0OUt1cX -# WOMJUJzyEH4WSKZHOx53qcAvD9h0U6jEF2fuBjtJ/QDrWbb4urvAfrvqNn9lH7gV -# PplqNPDIvQ8DkZ3lvbQsYqlz617e76ga7SY0w71+QP165CPdzUY36et2Sm4pvspE -# K8hllq3IYcyX0v897+X9YeecM1Pb1jCCB3EwggVZoAMCAQICEzMAAAAVxedrngKb -# SZkAAAAAABUwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQI -# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv -# ZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmlj -# YXRlIEF1dGhvcml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIy -# NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT -# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE -# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXI -# yjVX9gF/bErg4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjo -# YH1qUoNEt6aORmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1y -# aa8dq6z2Nr41JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v -# 3byNpOORj7I5LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pG -# ve2krnopN6zL64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viS -# kR4dPf0gz3N9QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYr -# bqgSUei/BQOj0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlM -# jgK8QmguEOqEUUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSL -# W6CmgyFdXzB0kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AF -# emzFER1y7435UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIu -# rQIDAQABo4IB3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIE -# FgQUKqdS/mTEmr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWn -# G1M1GelyMFwGA1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEW -# M2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5 -# Lmh0bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBi -# AEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV -# 9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3Js -# Lm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAx -# MC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2 -# LTIzLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv -# 6lwUtj5OR2R4sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZn -# OlNN3Zi6th542DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1 -# bSNU5HhTdSRXud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4 -# rPf5KYnDvBewVIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU -# 6ZGyqVvfSaN0DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDF -# NLB62FD+CljdQDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/ -# HltEAY5aGZFrDZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdU -# CbFpAUR+fKFhbHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKi -# excdFYmNcP7ntdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTm -# dHRbatGePu1+oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZq -# ELQdVTNYs6FwZvKhggNQMIICOAIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMx -# EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT -# FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJp -# Y2EgT3BlcmF0aW9uczEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOkYwMDItMDVF -# MC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMK -# AQEwBwYFKw4DAhoDFQBri943cFLH2TfQEfB05SLICg74CKCBgzCBgKR+MHwxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv -# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ym+9jAi -# GA8yMDI1MDEwOTAzMjAyMloYDzIwMjUwMTEwMDMyMDIyWjB3MD0GCisGAQQBhFkK -# BAExLzAtMAoCBQDrKb72AgEAMAoCAQACAhtNAgH/MAcCAQACAhPjMAoCBQDrKxB2 -# AgEAMDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSCh -# CjAIAgEAAgMBhqAwDQYJKoZIhvcNAQELBQADggEBAIgtCQZPaemHclRUOGrxwlMj -# Zj80Wio/IPYvxT6C63o9rlyK9rdhebpJVVSAwSFv8VLi1v0bnDDg1Yc69xGurbF8 -# yJQAijYY0FZmJgGuDhALH7fYWqNAsBMwZpkZ6CrxqjEZRuaCU8SpDW/+wfXxCfI+ -# VeYqvZz435SGbb51feCe+d9E0C1jdiiTAbGpJieZkJK3JefeC3beGfo0WE60XB6G -# esfU5IIQpDOWK/lMaYHT9O/gU0VYyZXUjN0qFpBGv7pPIjm9jpC7Tj3U/kKA2DfQ -# ETpnaDPWsYz9+12WqGW+OFIQXf8jDgbDrVuhtV15zSi2iaqu/XScsAc7WNp9uo4x -# ggQNMIIECQIBATCBkzB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv -# bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0 -# aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAA -# AfI+MtdkrHCRlAABAAAB8jANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkD -# MQ0GCyqGSIb3DQEJEAEEMC8GCSqGSIb3DQEJBDEiBCBtjftYEYWKJVwKxHEKWIOB -# rIBrZhp6x3IquVMaR6GJZDCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIPja -# Ph0uMVJc04+Y4Ru5BUUbHE4suZ6nRHSUu0XXSkNEMIGYMIGApH4wfDELMAkGA1UE -# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc -# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 -# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAHyPjLXZKxwkZQAAQAAAfIwIgQgQG2W -# 7g9ZcfObU/DpFQYoXhTLiD2OLjtsaohBDi9juqEwDQYJKoZIhvcNAQELBQAEggIA -# jPHipmmJnmkKxl53wX/I4rAapwx0XrOzM/mdn181UpbDvNBPPPSObmk8SJ4YDlAP -# 4rVWOMV9ALIp0R3nQwOY3VTMSKbtqiyxXO6nkabUMMBN4YYCShrudOEflt4Pnie4 -# J+56BLLfnUTIuOp6ZkcCVP1DtDYulYFUX5uHB4JPBkYfs5E0IOR/YSGq/8FdKgLk -# jmcY3OnWC8CK6ZVfJ8N+/tXoyD4X9yZCFz92MxpFhYrkuFjN6j+qoLWaGfvSJqd4 -# oosA7UslIwL0oqPwbghKSJEIInlLjcY4wwA2DEUwmkBJ6tVvFSivOcKJfRbhikG5 -# lpSD5u4t8kxlxo7xhhMZPoQ7HYxjUnWkHpJtmLo5YuFD9XL8N942mUL3+6kxy5BH -# 5QIvyrtBwH7Kl+Gn86VGRf4uRb1z/25T1KRkfjuJfW1xQmlrEGH1RWT/RyfWaSRs -# i1Syn6QDF71jDMcogMF7NxkKYh2ORrKybILetz36Q8ClWXwe1s1/7+hA/pSGjLQm -# YN+ol7U5o+HP3T7NtzeqO3ZAieLkuOG+SVgnaCWw/MpdR3JMONYeKv0BoTtBt86j -# 2/TfZI9UCWaMNMVGfXDZLVMyWcUJo4C4JcPKhWvlGWCROI9IYAbz7wVRbdlIgQKa -# e+cZmNQC+5ZfSXk2lFJ4+tCBNWoKSOTNEfJQ3E3+nuc= -# SIG # End signature block diff --git a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/internal/Az.KeyVault.internal.psm1 b/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/internal/Az.KeyVault.internal.psm1 deleted file mode 100644 index 7012b7537a6b..000000000000 --- a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/internal/Az.KeyVault.internal.psm1 +++ /dev/null @@ -1,256 +0,0 @@ -# region Generated - # Load the private module dll - $null = Import-Module -PassThru -Name (Join-Path $PSScriptRoot '..\bin\Az.KeyVault.private.dll') - - # Get the private module's instance - $instance = [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Module]::Instance - - # Export nothing to clear implicit exports - Export-ModuleMember - - # Export proxy cmdlet scripts - $exportsPath = $PSScriptRoot - $directories = Get-ChildItem -Directory -Path $exportsPath - $profileDirectory = $null - if($instance.ProfileName) { - if(($directories | ForEach-Object { $_.Name }) -contains $instance.ProfileName) { - $profileDirectory = $directories | Where-Object { $_.Name -eq $instance.ProfileName } - } else { - # Don't export anything if the profile doesn't exist for the module - $exportsPath = $null - Write-Warning "Selected Azure profile '$($instance.ProfileName)' does not exist for module '$($instance.Name)'. No cmdlets were loaded." - } - } elseif(($directories | Measure-Object).Count -gt 0) { - # Load the last folder if no profile is selected - $profileDirectory = $directories | Select-Object -Last 1 - } - - if($profileDirectory) { - Write-Information "Loaded Azure profile '$($profileDirectory.Name)' for module '$($instance.Name)'" - $exportsPath = $profileDirectory.FullName - } - - if($exportsPath) { - Get-ChildItem -Path $exportsPath -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } - $cmdletNames = Get-ScriptCmdlet -ScriptFolder $exportsPath - Export-ModuleMember -Function $cmdletNames -Alias (Get-ScriptCmdlet -ScriptFolder $exportsPath -AsAlias) - } -# endregion - -# SIG # Begin signature block -# MIIoOAYJKoZIhvcNAQcCoIIoKTCCKCUCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBQp9oIDCEyXP2/ -# ri3I99pwl4x1uyvYAR/FtKl433JQaKCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGgkwghoFAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIJIh -# 2Tp+JPF+9bwoEx6l6gLD3l676mOBhF7LcgEPOBWtMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAHH7FuCAM4WwlmFfoJ4cI5c+fZDFrcATav5uj -# qydw8Dx0l0hVDIVuSphknxMQNHmXWI0HQL2+S2/SIAIKePbKe50RTIaX/Rag9Z/7 -# md7BhgaoOns5VtILyKi6vFshAVP0G7BGJfROnh1c7mPaEst04PhwM4opkuOqp1NR -# +e5ZmgZcyI1otmm5j4fhPMKdMJrbT6jF0194fACvf/myc8QLXr9PfR8XWrftwuIJ -# eve8x1mL0w+uvf8KxomvQy0D7VjRmrUdbz3CeEjCWi2vO3DEQBs4sV70jBBuTmJ5 -# 8qam/ujDFV5wyujBTIPFqX+O5UDNJ6Y6zaMkUfOaTYKjNG9GVKGCF5MwghePBgor -# BgEEAYI3AwMBMYIXfzCCF3sGCSqGSIb3DQEHAqCCF2wwghdoAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFRBgsqhkiG9w0BCRABBKCCAUAEggE8MIIBOAIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCB9POp35dQ6qLW0lK3+7LrS2ljiqMtvbHy+ -# wq3b8SVdrwIGZ2f84IGhGBIyMDI1MDEwOTA2MzY0NS4xNlowBIACAfSggdGkgc4w -# gcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS -# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsT -# HE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQg -# VFNTIEVTTjozNzAzLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUt -# U3RhbXAgU2VydmljZaCCEeowggcgMIIFCKADAgECAhMzAAAB6pokctVZP2FjAAEA -# AAHqMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw -# MB4XDTIzMTIwNjE4NDUzMFoXDTI1MDMwNTE4NDUzMFowgcsxCzAJBgNVBAYTAlVT -# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVy -# aWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjozNzAzLTA1 -# RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZTCC -# AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALULX/FIPyAH1fsu52ijatZv -# aSypoXrlC0mRtCmaxzobhuDkw6/pY/+4nhc4m8pf9zW3R6PihYGp0YPpVuNdfhPQ -# p/KVO6WvMq2DGfFmHurW4PQPL/DkbQMkM9vqjFCvPq8xXZnfL1nGN9moGcN+oaif -# /hUMedmF1qzbay9ILkYfLCxDYn3Qwzsvh5xjxOcsjzmRddNURJvT23Eva0cxisH4 -# ocLLTx2zfpqfshw4Z9GaEdsWg9rmib1galUpLzF5PsQDBbtZtcv+Wjmn0pFEiMCW -# wEEcPVN0YG5ysYLdNBdJOn2zsOOS+80W5RrQEqzPpSIIvEkZBJmF3aI4lMR8nV/F -# iTadjpIIqxX5Wa1XlqI/Nj+xagVjnjb7POsA+vh6Wu+v24HpyL8pyL/8Q4RFkRRM -# E9cwT+Jr63yOtPbLe6DXkxIJW6E6w2ua5kXBpEKtEQPTLPhX3CUxMYcglbnmI0zc -# c9UknX285K+sI/2WwRwTBZkhDUULI86eQzV+zvzzR1qEBrlSY+oyTlYQrHMM9WnT -# zVflFDocZVTPpl2BDSNxPn0Qb4IoM9EPqbHyi/MilL+v/AQc8q3mQ6FiuPJAddz0 -# ocpNZ9ekBWPVLKq3lfiev4yl65u/438+NAQ+vSJgkONLMmuoguEGzmnK1vq/JHwd -# RUyn6YADiteM7Dja+Qd9AgMBAAGjggFJMIIBRTAdBgNVHQ4EFgQUK4FFJaJR5ukX -# QFTUxMhyiwVuWV4wHwYDVR0jBBgwFoAUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXwYD -# VR0fBFgwVjBUoFKgUIZOaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9j -# cmwvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3JsMGwG -# CCsGAQUFBwEBBGAwXjBcBggrBgEFBQcwAoZQaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIw -# MjAxMCgxKS5jcnQwDAYDVR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcD -# CDAOBgNVHQ8BAf8EBAMCB4AwDQYJKoZIhvcNAQELBQADggIBACiDrVZeP37+fFVt -# fcbfsqC/Kg0Ce67bDcehZmPcfRgJ5Ddv0pJlOFVOFbiIVwesqeEUwFtclfi5Ajne -# Q5ZJpYJpXfELOelG3dzj+BKfd287/UY/cwmSkl+CjnoKBL3Ms6I/fWR+alR0+p6R -# lviK8xHoug9vkc2WrRZsGnMVu2xOM2tPJ+qpyoDBzqv30N/ZRBOoNrS/PCkDwLGI -# CDYqVs/IzAE49yv2ElPywalf9mEsOHXV1lxtQDNcejVEmitJJ+1Vr2EtafPEbMQZ -# p89TAuagROKE4YuohCUKm+v3geJqTQarTBjqV25RCOT+XFngTMDD9wYx6TwndB2I -# 1Ly726NiHUHs0uvq3ciCV9JwNXdt1VZ63WK1NSgpVEsiK9EPABPt1EfXcKrfaPYk -# bkFi79eK1ETxx3NomYNUHNiGU+X1Be8L7qpHwjo0g3/33XhtOr9LiDoUXh/V2LFT -# ETiqV9Q8yLEavQW3j9LQ/h/CaGz5YdGfrY8HiPfMIeLEokKxGf0hHcTEFApB0yLl -# q6KoHrFAEANR/4XuFIpl9sDywVIWt4tKqG+P6pRAXzg1zG5rGlslZWmw7XwgvhBu -# 3jkLP9AxrsSYwY2ftrwwze5NA6VDLS7pz+OrXXWLUmoyNrJNx5Bk0wEwzkQxzkOv -# mbdPhsOP1ZM0uA/xIV7cSpNpZUw5MIIHcTCCBVmgAwIBAgITMwAAABXF52ueAptJ -# mQAAAAAAFTANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNh -# dGUgQXV0aG9yaXR5IDIwMTAwHhcNMjEwOTMwMTgyMjI1WhcNMzAwOTMwMTgzMjI1 -# WjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQD -# Ex1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCCAiIwDQYJKoZIhvcNAQEB -# BQADggIPADCCAgoCggIBAOThpkzntHIhC3miy9ckeb0O1YLT/e6cBwfSqWxOdcjK -# NVf2AX9sSuDivbk+F2Az/1xPx2b3lVNxWuJ+Slr+uDZnhUYjDLWNE893MsAQGOhg -# fWpSg0S3po5GawcU88V29YZQ3MFEyHFcUTE3oAo4bo3t1w/YJlN8OWECesSq/XJp -# rx2rrPY2vjUmZNqYO7oaezOtgFt+jBAcnVL+tuhiJdxqD89d9P6OU8/W7IVWTe/d -# vI2k45GPsjksUZzpcGkNyjYtcI4xyDUoveO0hyTD4MmPfrVUj9z6BVWYbWg7mka9 -# 7aSueik3rMvrg0XnRm7KMtXAhjBcTyziYrLNueKNiOSWrAFKu75xqRdbZ2De+JKR -# Hh09/SDPc31BmkZ1zcRfNN0Sidb9pSB9fvzZnkXftnIv231fgLrbqn427DZM9itu -# qBJR6L8FA6PRc6ZNN3SUHDSCD/AQ8rdHGO2n6Jl8P0zbr17C89XYcz1DTsEzOUyO -# ArxCaC4Q6oRRRuLRvWoYWmEBc8pnol7XKHYC4jMYctenIPDC+hIK12NvDMk2ZItb -# oKaDIV1fMHSRlJTYuVD5C4lh8zYGNRiER9vcG9H9stQcxWv2XFJRXRLbJbqvUAV6 -# bMURHXLvjflSxIUXk8A8FdsaN8cIFRg/eKtFtvUeh17aj54WcmnGrnu3tz5q4i6t -# AgMBAAGjggHdMIIB2TASBgkrBgEEAYI3FQEEBQIDAQABMCMGCSsGAQQBgjcVAgQW -# BBQqp1L+ZMSavoKRPEY1Kc8Q/y8E7jAdBgNVHQ4EFgQUn6cVXQBeYl2D9OXSZacb -# UzUZ6XIwXAYDVR0gBFUwUzBRBgwrBgEEAYI3TIN9AQEwQTA/BggrBgEFBQcCARYz -# aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnku -# aHRtMBMGA1UdJQQMMAoGCCsGAQUFBwMIMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIA -# QwBBMAsGA1UdDwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2 -# VsuP6KJcYmjRPZSQW9fOmhjEMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu -# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEw -# LTA2LTIzLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93 -# d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYt -# MjMuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCdVX38Kq3hLB9nATEkW+Geckv8qW/q -# XBS2Pk5HZHixBpOXPTEztTnXwnE2P9pkbHzQdTltuw8x5MKP+2zRoZQYIu7pZmc6 -# U03dmLq2HnjYNi6cqYJWAAOwBb6J6Gngugnue99qb74py27YP0h1AdkY3m2CDPVt -# I1TkeFN1JFe53Z/zjj3G82jfZfakVqr3lbYoVSfQJL1AoL8ZthISEV09J+BAljis -# 9/kpicO8F7BUhUKz/AyeixmJ5/ALaoHCgRlCGVJ1ijbCHcNhcy4sa3tuPywJeBTp -# kbKpW99Jo3QMvOyRgNI95ko+ZjtPu4b6MhrZlvSP9pEB9s7GdP32THJvEKt1MMU0 -# sHrYUP4KWN1APMdUbZ1jdEgssU5HLcEUBHG/ZPkkvnNtyo4JvbMBV0lUZNlz138e -# W0QBjloZkWsNn6Qo3GcZKCS6OEuabvshVGtqRRFHqfG3rsjoiV5PndLQTHa1V1QJ -# sWkBRH58oWFsc/4Ku+xBZj1p/cvBQUl+fpO+y/g75LcVv7TOPqUxUYS8vwLBgqJ7 -# Fx0ViY1w/ue10CgaiQuPNtq6TPmb/wrpNPgkNWcr4A245oyZ1uEi6vAnQj0llOZ0 -# dFtq0Z4+7X6gMTN9vMvpe784cETRkPHIqzqKOghif9lwY1NNje6CbaUFEMFxBmoQ -# tB1VM1izoXBm8qGCA00wggI1AgEBMIH5oYHRpIHOMIHLMQswCQYDVQQGEwJVUzET -# MBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMV -# TWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmlj -# YSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046MzcwMy0wNUUw -# LUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiIwoB -# ATAHBgUrDgMCGgMVAInbHtxB+OlGyQnxQYhy04KSYSSPoIGDMIGApH4wfDELMAkG -# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx -# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwDQYJKoZIhvcNAQELBQACBQDrKYy6MCIY -# DzIwMjUwMTA4MjM0NjAyWhgPMjAyNTAxMDkyMzQ2MDJaMHQwOgYKKwYBBAGEWQoE -# ATEsMCowCgIFAOspjLoCAQAwBwIBAAICKWYwBwIBAAICE0wwCgIFAOsq3joCAQAw -# NgYKKwYBBAGEWQoEAjEoMCYwDAYKKwYBBAGEWQoDAqAKMAgCAQACAwehIKEKMAgC -# AQACAwGGoDANBgkqhkiG9w0BAQsFAAOCAQEAPzYOqsYoF4vIH+qFoefmwvzgHqMi -# 9mzhL5Ns4u1zJ5vY4ZS8k9AtuzZuhZVjfXE27tgL5I7mje8xEQtw4RCWX8PQEEA5 -# 2SGh442mh4wYnLrj7uSPyI7wdXwFkXkOJta8GQ7kP4jzoHDaM6ebP4znIqr8QUyo -# +OmL6bBhnFQt9Hu4INQ5HDrGQJ3S1tsGrBHwMhYnZEwur4iJeBnp0J+1riv/IMUg -# St2x6aw0dJjAqj34+PU9dultTkWxQblIwUIKRDsqXV2+Y6eOdLsSeiLX5nSStkIg -# PUKlyuuycTVAqRv5y0PWYg0NoxmLKmig0DruHImo12kfbim+rM3wijnknzGCBA0w -# ggQJAgEBMIGTMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# JjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB6pok -# ctVZP2FjAAEAAAHqMA0GCWCGSAFlAwQCAQUAoIIBSjAaBgkqhkiG9w0BCQMxDQYL -# KoZIhvcNAQkQAQQwLwYJKoZIhvcNAQkEMSIEIOUvPqCkaOH+fRtcEcpum2Ptn/gC -# m3uEM4EKs/FZ1qRDMIH6BgsqhkiG9w0BCRACLzGB6jCB5zCB5DCBvQQgKY+h1eNk -# NHiLCDSW0sA1cGHkbW4qooi+ryyMp6S4ZngwgZgwgYCkfjB8MQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBQQ0EgMjAxMAITMwAAAeqaJHLVWT9hYwABAAAB6jAiBCDEuGX8o4H1 -# v7nIXWx+VCpEdZPl9z0ypkMrr1Rv5i5OtTANBgkqhkiG9w0BAQsFAASCAgBx+QkV -# uRUP4+UYJfqEhO8Ayghga+aW3V24q10CSZ5rREnG3HPgDMCPsB9/vqvsVPRPAi88 -# b2INvWz0gY+fhCyk8mxQvYyL/IrKcsKfBY9M8Y/B26lHz+iJsqYFdGdZW6H+2zyJ -# Leb/6ZGDmEdRESK6DDXSs7kuzasl/R64Hrn1tXoZ4S3/o44yCUd3qlLQ4Cmu93cE -# 0yDWLJNjphiIwVSufdPE/PmU0lADUSYTnqjlMh76srkVWuoMnElrls4azukCYdKI -# Cyswb+L1Wif9YhMTyCjCLHYqFAEu+kORlxhgrvo2IgcRJI/BuGR+vxUdyOTf5EXF -# Yb485tQ0imbiUUwdwiowCWy4Clb4S0tKL8uf9399MQZbwCx6U/gegJBuOOYDAD3H -# /nhoMOWN+GWX8FmUfhxbjwLMZmcrQ6h1v+pI342Aox8yZYTpzb8/CPy6azuEuWQW -# zvpy3wRmsOQ7099uOKuSohhlPu6MGUWMjz3oH7HafptanwkL+TJa78/4LVEvCIgJ -# RFWSSyE5QAKkTuNtpgtTLqVsFC1nPvYx8QArdBf6uQvWSblbevFxQxm3pPgkrLq2 -# UumO4gFcEdgzheL+7NYDoQLeKh4+j7B38/GDgPdKR1slTUqHz/wXneY7Ibrbz47v -# nYplKm8LKJMfWPpwyHRRG7TzlqtBTKv3tXGj8A== -# SIG # End signature block diff --git a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/internal/ProxyCmdletDefinitions.ps1 b/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/internal/ProxyCmdletDefinitions.ps1 deleted file mode 100644 index 35740570efde..000000000000 --- a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/internal/ProxyCmdletDefinitions.ps1 +++ /dev/null @@ -1,879 +0,0 @@ - -# ---------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# http://www.apache.org/licenses/LICENSE-2.0 -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Code generated by Microsoft (R) AutoRest Code Generator.Changes may cause incorrect behavior and will be lost if the code -# is regenerated. -# ---------------------------------------------------------------------------------- - -<# -.Synopsis -Gets the specified managed HSM Pool. -.Description -Gets the specified managed HSM Pool. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IKeyVaultIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IManagedHsm -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [Id ]: Resource identity path - [Location ]: The location of the deleted vault. - [Name ]: Name of the managed HSM Pool - [OperationKind ]: Name of the operation - [PrivateEndpointConnectionName ]: Name of the private endpoint connection associated with the key vault. - [ResourceGroupName ]: The name of the Resource Group to which the server belongs. - [SubscriptionId ]: Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. - [VaultName ]: Name of the vault -.Link -https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvaultmanagedhsm -#> -function Get-AzKeyVaultManagedHsm { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IManagedHsm])] -[CmdletBinding(DefaultParameterSetName='List1', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [System.String] - # The name of the managed HSM Pool. - ${Name}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='List', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [System.String] - # Name of the resource group that contains the managed HSM pool. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Get')] - [Parameter(ParameterSetName='List')] - [Parameter(ParameterSetName='List1')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Subscription credentials which uniquely identify Microsoft Azure subscription. - # The subscription ID forms part of the URI for every service call. - ${SubscriptionId}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IKeyVaultIdentity] - # Identity Parameter - ${InputObject}, - - [Parameter(ParameterSetName='List')] - [Parameter(ParameterSetName='List1')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Query')] - [System.Int32] - # Maximum number of results to return. - ${Top}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(ParameterSetName='Get')] - [Parameter(ParameterSetName='GetViaIdentity')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Az.KeyVault.private\Get-AzKeyVaultManagedHsm_Get'; - GetViaIdentity = 'Az.KeyVault.private\Get-AzKeyVaultManagedHsm_GetViaIdentity'; - List = 'Az.KeyVault.private\Get-AzKeyVaultManagedHsm_List'; - List1 = 'Az.KeyVault.private\Get-AzKeyVaultManagedHsm_List1'; - } - if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId') ) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Create an in-memory object for parameter region. -.Description -Create an in-memory object for parameter region. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IManagedHsm -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IManagedHsm -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -PARAMETER : Resource information with extended details. - [Location ]: The supported Azure location where the managed HSM Pool should be created. - [SkuName ]: SKU of the managed HSM Pool - [Tag ]: Resource tags - [(Any) ]: This indicates any property can be added to this object. - [CreateMode ]: The create mode to indicate whether the resource is being created or is being recovered from a deleted resource. - [EnablePurgeProtection ]: Property specifying whether protection against purge is enabled for this managed HSM pool. Setting this property to true activates protection against purge for this managed HSM pool and its content - only the Managed HSM service may initiate a hard, irrecoverable deletion. Enabling this functionality is irreversible. - [EnableSoftDelete ]: Property to specify whether the 'soft delete' functionality is enabled for this managed HSM pool. Soft delete is enabled by default for all managed HSMs and is immutable. - [InitialAdminObjectId >]: Array of initial administrators object ids for this managed hsm pool. - [NetworkAclsBypass ]: Tells what traffic can bypass network rules. This can be 'AzureServices' or 'None'. If not specified the default is 'AzureServices'. - [NetworkAclsDefaultAction ]: The default action when no rule from ipRules and from virtualNetworkRules match. This is only used after the bypass property has been evaluated. - [NetworkAclsIPRule >]: The list of IP address rules. - Value : An IPv4 address range in CIDR notation, such as '124.56.78.91' (simple IP address) or '124.56.78.0/24' (all addresses that start with 124.56.78). - [NetworkAclsVirtualNetworkRule >]: The list of virtual network rules. - Id : Full resource id of a vnet subnet, such as '/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/subnet1'. - [PublicNetworkAccess ]: Control permission to the managed HSM from public networks. - [Region >]: List of all regions associated with the managed hsm pool. - [IsPrimary ]: A boolean value that indicates whether the region is the primary region or a secondary region. - [Name ]: Name of the geo replicated region. - [SoftDeleteRetentionInDay ]: Soft deleted data retention days. When you delete an HSM or a key, it will remain recoverable for the configured retention period or for a default period of 90 days. It accepts values between 7 and 90. - [TenantId ]: The Azure Active Directory tenant ID that should be used for authenticating requests to the managed HSM pool. -.Link -https://learn.microsoft.com/powershell/module/az.keyvault/get-parameterforregion -#> -function Get-ParameterForRegion { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IManagedHsm])] -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [System.String[]] - # List of all regions associated with the managed hsm pool. - ${Region}, - - [Parameter(Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IManagedHsm] - # Resource information with extended details. - ${Parameter}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Specify if add or remove regions to existing regions - ${RemoveRegion} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - __AllParameterSets = 'Az.KeyVault.private\Get-ParameterForRegion'; - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Update a managed HSM Pool in the specified subscription. -.Description -Update a managed HSM Pool in the specified subscription. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IKeyVaultIdentity -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IManagedHsm -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IManagedHsm -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [Id ]: Resource identity path - [Location ]: The location of the deleted vault. - [Name ]: Name of the managed HSM Pool - [OperationKind ]: Name of the operation - [PrivateEndpointConnectionName ]: Name of the private endpoint connection associated with the key vault. - [ResourceGroupName ]: The name of the Resource Group to which the server belongs. - [SubscriptionId ]: Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. - [VaultName ]: Name of the vault - -NETWORKACLSIPRULE : The list of IP address rules. - Value : An IPv4 address range in CIDR notation, such as '124.56.78.91' (simple IP address) or '124.56.78.0/24' (all addresses that start with 124.56.78). - -NETWORKACLSVIRTUALNETWORKRULE : The list of virtual network rules. - Id : Full resource id of a vnet subnet, such as '/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/subnet1'. - -PARAMETER : Resource information with extended details. - [Location ]: The supported Azure location where the managed HSM Pool should be created. - [SkuName ]: SKU of the managed HSM Pool - [Tag ]: Resource tags - [(Any) ]: This indicates any property can be added to this object. - [CreateMode ]: The create mode to indicate whether the resource is being created or is being recovered from a deleted resource. - [EnablePurgeProtection ]: Property specifying whether protection against purge is enabled for this managed HSM pool. Setting this property to true activates protection against purge for this managed HSM pool and its content - only the Managed HSM service may initiate a hard, irrecoverable deletion. Enabling this functionality is irreversible. - [EnableSoftDelete ]: Property to specify whether the 'soft delete' functionality is enabled for this managed HSM pool. Soft delete is enabled by default for all managed HSMs and is immutable. - [InitialAdminObjectId >]: Array of initial administrators object ids for this managed hsm pool. - [NetworkAclsBypass ]: Tells what traffic can bypass network rules. This can be 'AzureServices' or 'None'. If not specified the default is 'AzureServices'. - [NetworkAclsDefaultAction ]: The default action when no rule from ipRules and from virtualNetworkRules match. This is only used after the bypass property has been evaluated. - [NetworkAclsIPRule >]: The list of IP address rules. - Value : An IPv4 address range in CIDR notation, such as '124.56.78.91' (simple IP address) or '124.56.78.0/24' (all addresses that start with 124.56.78). - [NetworkAclsVirtualNetworkRule >]: The list of virtual network rules. - Id : Full resource id of a vnet subnet, such as '/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/subnet1'. - [PublicNetworkAccess ]: Control permission to the managed HSM from public networks. - [Region >]: List of all regions associated with the managed hsm pool. - [IsPrimary ]: A boolean value that indicates whether the region is the primary region or a secondary region. - [Name ]: Name of the geo replicated region. - [SoftDeleteRetentionInDay ]: Soft deleted data retention days. When you delete an HSM or a key, it will remain recoverable for the configured retention period or for a default period of 90 days. It accepts values between 7 and 90. - [TenantId ]: The Azure Active Directory tenant ID that should be used for authenticating requests to the managed HSM pool. - -REGION : List of all regions associated with the managed hsm pool. - [IsPrimary ]: A boolean value that indicates whether the region is the primary region or a secondary region. - [Name ]: Name of the geo replicated region. -.Link -https://learn.microsoft.com/powershell/module/az.keyvault/update-azkeyvaultmanagedhsm -#> -function Update-AzKeyVaultManagedHsm { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IManagedHsm])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Parameter(ParameterSetName='UpdateViaJsonFilePath', Mandatory)] - [Parameter(ParameterSetName='UpdateViaJsonString', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [System.String] - # Name of the managed HSM Pool - ${Name}, - - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Parameter(ParameterSetName='UpdateViaJsonFilePath', Mandatory)] - [Parameter(ParameterSetName='UpdateViaJsonString', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [System.String] - # Name of the resource group that contains the managed HSM pool. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Update')] - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaJsonFilePath')] - [Parameter(ParameterSetName='UpdateViaJsonString')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Subscription credentials which uniquely identify Microsoft Azure subscription. - # The subscription ID forms part of the URI for every service call. - ${SubscriptionId}, - - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IKeyVaultIdentity] - # Identity Parameter - ${InputObject}, - - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IManagedHsm] - # Resource information with extended details. - ${Parameter}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.PSArgumentCompleterAttribute("recover", "default")] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String] - # The create mode to indicate whether the resource is being created or is being recovered from a deleted resource. - ${CreateMode}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Property specifying whether protection against purge is enabled for this managed HSM pool. - # Setting this property to true activates protection against purge for this managed HSM pool and its content - only the Managed HSM service may initiate a hard, irrecoverable deletion. - # Enabling this functionality is irreversible. - ${EnablePurgeProtection}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Property to specify whether the 'soft delete' functionality is enabled for this managed HSM pool. - # Soft delete is enabled by default for all managed HSMs and is immutable. - ${EnableSoftDelete}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String[]] - # Array of initial administrators object ids for this managed hsm pool. - ${InitialAdminObjectId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.PSArgumentCompleterAttribute("AzureServices", "None")] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String] - # Tells what traffic can bypass network rules. - # This can be 'AzureServices' or 'None'. - # If not specified the default is 'AzureServices'. - ${NetworkAclsBypass}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.PSArgumentCompleterAttribute("Allow", "Deny")] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String] - # The default action when no rule from ipRules and from virtualNetworkRules match. - # This is only used after the bypass property has been evaluated. - ${NetworkAclsDefaultAction}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IMhsmipRule[]] - # The list of IP address rules. - ${NetworkAclsIPRule}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IMhsmVirtualNetworkRule[]] - # The list of virtual network rules. - ${NetworkAclsVirtualNetworkRule}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.PSArgumentCompleterAttribute("Enabled", "Disabled")] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String] - # Control permission to the managed HSM from public networks. - ${PublicNetworkAccess}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IMhsmGeoReplicatedRegion[]] - # List of all regions associated with the managed hsm pool. - ${Region}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.PSArgumentCompleterAttribute("Standard_B1", "Custom_B32", "Custom_B6")] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String] - # SKU of the managed HSM Pool - ${SkuName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.Int32] - # Soft deleted data retention days. - # When you delete an HSM or a key, it will remain recoverable for the configured retention period or for a default period of 90 days. - # It accepts values between 7 and 90. - ${SoftDeleteRetentionInDay}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IManagedHsmResourceTags]))] - [System.Collections.Hashtable] - # Resource tags - ${Tag}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String] - # The Azure Active Directory tenant ID that should be used for authenticating requests to the managed HSM pool. - ${TenantId}, - - [Parameter(ParameterSetName='UpdateViaJsonFilePath', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String] - # Path of Json file supplied to the Update operation - ${JsonFilePath}, - - [Parameter(ParameterSetName='UpdateViaJsonString', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String] - # Json string supplied to the Update operation - ${JsonString}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command as a job - ${AsJob}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command asynchronously - ${NoWait}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Update = 'Az.KeyVault.private\Update-AzKeyVaultManagedHsm_Update'; - UpdateExpanded = 'Az.KeyVault.private\Update-AzKeyVaultManagedHsm_UpdateExpanded'; - UpdateViaIdentity = 'Az.KeyVault.private\Update-AzKeyVaultManagedHsm_UpdateViaIdentity'; - UpdateViaIdentityExpanded = 'Az.KeyVault.private\Update-AzKeyVaultManagedHsm_UpdateViaIdentityExpanded'; - UpdateViaJsonFilePath = 'Az.KeyVault.private\Update-AzKeyVaultManagedHsm_UpdateViaJsonFilePath'; - UpdateViaJsonString = 'Az.KeyVault.private\Update-AzKeyVaultManagedHsm_UpdateViaJsonString'; - } - if (('Update', 'UpdateExpanded', 'UpdateViaJsonFilePath', 'UpdateViaJsonString') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId') ) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -# SIG # Begin signature block -# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAxHRrDH4wjBP8E -# bTpj2WFOEcRdTCC1185CnH8162ZA96CCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIASE2AafbDOCQsCiO4HpjAIY -# Alq2b7xR6XgYsscv63s7MEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAaRKGn+P2G0WbrMuTYRDwxOPx06hZZPRXVQZQqXEKZWaXdTWBjDPU5xDa -# FLSR2jMKeoPiFxjIhEh7szVxjaQI7kJny8ZO3gzFnD23byT6lmd3BFcVtkzcSOwB -# DzsYV4GqlJkWwPTJyKzWsv57MNRyJ1advC0TlNrUOtssLqDmsFf+Ex14YvvxUiO7 -# eXsOcEQtHreJ0880sL+18y+JjKJYSSBfD6WPpPl9Ftuy2pZVfoOHiMN+StCpJU7i -# 3X/l+WJbw/+RN7jK0ssXkjWJdgHZQPCfua60wsUOPjgdmd6AxrBh+D0zcnW1PkFW -# dTh+EIDy9DYF+rdKrjHtmRiVwUACa6GCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC -# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCDoHC/TIxem5u/MR4fW6oq0pfXVBKIUPvKdHwvf5KXvaAIGZ1sNHJKd -# GBMyMDI1MDEwOTA2Mzc0NS4yOTFaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046MzMwMy0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHqMIIHIDCCBQigAwIBAgITMwAAAebZQp7qAPh94QABAAAB5jANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# MTVaFw0yNTAzMDUxODQ1MTVaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046MzMwMy0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQC9vph84tgluEzm/wpNKlAjcElGzflvKADZ1D+2d/ie -# YYEtF2HKMrKGFDOLpLWWG5DEyiKblYKrE2nt540OGu35Zx0gXJBE0zWanZEAjCjt -# 4eGBi+uakZsk70zHTQHHyfP+B3m2BSSNFPhgsVIPp6vo/9t6OeNezIwX5E5+VwEG -# 37nZgEexQF2fQZYbxQ1AauqDvRdXsSpK1dh1UBt9EaMszuucaR5nMwQN6sDjG99F -# zdK9Atzbn4SmlsoLUtRAh/768sKd0Y1hMmKVHwIX8/4JuURUBRZ0JWu0NYQBp8kh -# ku18Q8CAQ500tFB7VH3pD8zoA4lcA7JkxTGoPKrufm+lRZAA4iMgbcLZ2P/xSdnK -# FxU8vL31RoNlZJiGL5MqTXvvyBLz+MRP4En9Nye1N8x/lJD1stdNo5wJG+mgXsE/ -# zfzg2GaVqQczFHg0Nl8bpIqnNFUReQRq3C1jVYMCScegNzHeYtw5OmZ/7eVnRmjX -# lCsLvdsxOzc1YVn6nZLkQD5y31HYrB9iIHuswhaMv2hJNNjVndkpWy934PIZuWTM -# k360kjXPFwl2Wv1Tzm9tOrCq8+l408KIL6J+efoGNkR8YB3M+u1tYeVDO/TcObGH -# xaGFB6QZxAUpnfB5N/MmBNxMOqzG1N8QiwW8gtjjMJiFBf6iYYrCjtRwF7IPdQLF -# tQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFOUEMXntN54+11ZM+Qu7Q5rg3Fc9MB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQBhbuogTapRsuwSkaFMQ6dyu8ZCYUpWQ8iI -# rbi40tU2hK6pHgu0hj0z/9zFRRx5DfhukjvbjA/dS5VYfxz1EIbPlt897MJ2sBGO -# 2YLYwYelfJpDwbB0XS9Zkrqpzq6X/lmDQDn3G5vcYpYQCJ55LLvyFlJ195AVo4Wy -# 8UX5p7g9W3MgNHQMpM+EV64+cszj4Ho5aQmeKGtKy7w72eRY/vWDuptrvzruFNmK -# CIt12UcA5BOsXp1Ptkjx2yRsCj77DSml0zVYjqW/ISWkrGjyeVJ+khzctxaLkklV -# wCxigokD6fkWby0hCEKTOTPMzhugPIAcxcHsR2sx01YRa9pH2zvddsuBEfSFG6Cj -# 0QSvEZ/M9mJ+h4miaQSR7AEbVGDbyRKkYn80S+3AmRlh3ZOe+BFqJ57OXdeIDSHb -# vHzJ7oTqG896l3eUhPsZg69fNgxTxlvRNmRE/+61Yj7Z1uB0XYQP60rsMLdTlVYE -# yZUl5MLTL5LvqFozZlS2Xoji4BEP6ddVTzmHJ4odOZMWTTeQ0IwnWG98vWv/roPe -# gCr1G61FVrdXLE3AXIft4ZN4ZkDTnoAhPw7DZNPRlSW4TbVj/Lw0XvnLYNwMUA9o -# uY/wx9teTaJ8vTkbgYyaOYKFz6rNRXZ4af6e3IXwMCffCaspKUXC72YMu5W8L/zy -# TxsNUEgBbTCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNN -# MIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjMzMDMtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQDi -# WNBeFJ9jvaErN64D1G86eL0mu6CBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ynLSzAiGA8yMDI1MDEwOTA0MTI1 -# OVoYDzIwMjUwMTEwMDQxMjU5WjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDrKctL -# AgEAMAcCAQACAg4uMAcCAQACAhMGMAoCBQDrKxzLAgEAMDYGCisGAQQBhFkKBAIx -# KDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZI -# hvcNAQELBQADggEBAA5Ilmpo0pr4jvWKmHyIkV9T4mqNTxPS+wh7B7nmrYo9WXQ8 -# uP3Tz0R6z8QIdg5BpiZrNzbgamGwem7AanWg1wc8esI2Gs1x3X+l+VlxnXau/rqp -# r3CK6a2lR1NkGdyt3EcBhRzRjKS6QrncsYGQrN2YXUUZhK9WQwptz5FW0tI55pdi -# 3pPGNbSxir3CCEnzU5IsooOsou90mwzN7zjuhDZ7HzNK7pMChzHbYqv9/YoEaO0C -# Ix7PTHixzGx8F4I0RiN0y8UiI1nHJkms7KoVuw+RAOEDLprFBfDrT2mRBXMQzK71 -# w55Zp6xSsnbgXnozy2Ff9fO7rmGW2yEgjhGTLOExggQNMIIECQIBATCBkzB8MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy -# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAebZQp7qAPh94QABAAAB5jAN -# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G -# CSqGSIb3DQEJBDEiBCBJquwYCPRBBTIEz/kIRK/X31VkkOyOYVvlX3q9ZZ5xuTCB -# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIM+7o4aoHrMJaG8gnLO1q16hIYcR -# noy6FnOCbnSD0sZZMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAHm2UKe6gD4feEAAQAAAeYwIgQg/JfqzlgoUAkbgEEZvk960ps+/Ta+ -# 1aEAZisksM/UAagwDQYJKoZIhvcNAQELBQAEggIAEe8RiFQRWAvymtIjN6ngcQox -# cbcG/NyypPaEJZ35nTuFSwW0rLqnuY+eRUEcQlO95Wp/1T8A+L6jXlHpfd2DBToS -# OfYaVlKjoisurWjp6FsLoIEubQKJF7JunvMWcoXulKo1MguBL52szFQvUKnzhy20 -# Ts2RnYUQ9S88xKzvfxvff2/sO1KcUbJ1I9q/xcUz0Uy13ydexGqqRfjb7gT+e4pY -# E2yHWo5IyMYl7+47QyAI5Sb1w0DYVbzSHAv3VyEzxbMjhPiQHdxBnhH6uMIa4RYM -# ysMi14ojxKDVfCCSTwsrL/IYNRT4YAwYo4O65nko6RqmIg7+yVv4Yt2hvSvSjmt4 -# qaCQ/fcZ/E2aRYWxLG0SiZI4cIJeF9Trni+5CJ641Hzaf9EfrpdoWCIN6mnz3QtT -# zj4l90L0w4UmAFS6uaQUmIdxBtOajjzTb98Rve4KWeytWHxrIVM1XFIA3yG0+gIw -# +nyZHitxTaR8O1sRNPJ1y9XR8FyP6y5pIwu0ZBKFQqRR9iTki5AYuNcRjL94/6sb -# JEZeFh0LywWDcdo8LqHHbPYv6cGfYaFY0w64/IKTapKjODrwAoKzU+gRyHT7bS99 -# BkdmQ9LliHMM1vlIL0M1p6vCqfrz61YVB5w80ZKwsePeo0NkP2VVsdQUBzRsECTd -# ut1Znfhh1/xOYSWlP9U= -# SIG # End signature block diff --git a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/utils/Get-SubscriptionIdTestSafe.ps1 b/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/utils/Get-SubscriptionIdTestSafe.ps1 deleted file mode 100644 index 9213c3763627..000000000000 --- a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/utils/Get-SubscriptionIdTestSafe.ps1 +++ /dev/null @@ -1,224 +0,0 @@ -param() -if ($env:AzPSAutorestTestPlaybackMode) { - $loadEnvPath = Join-Path $PSScriptRoot '..' 'test' 'loadEnv.ps1' - . ($loadEnvPath) - return $env.SubscriptionId -} -return (Get-AzContext).Subscription.Id -# SIG # Begin signature block -# MIIoKQYJKoZIhvcNAQcCoIIoGjCCKBYCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCvmGT2RlJhp/rC -# DOiTnt/3S1Bv3biEMflyZwWMS2xRdKCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgkwghoFAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIPSNBc+wDke3rcRSTQbfFzLx -# ZjDqn60fWPPP7nkeXd5aMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAIOWv2gqibHDoAsgFKvajYtSyvigIY7LG6+yONh9HcUJdJnIgMxkf+7z/ -# qm0Q7C1aR8JJrAkY+3pKMvBOGYlXRDmicIYAN0EdUyMgxU488QsAjnGWjQXrM1UK -# aob9PRQrhtUBn4ZG5wAbJhh2Mkd1B6OfBaH39wIC9RoNJ82qC+omLBNtcSf1qxxD -# mcok7TsJipQyhezvmyZkp7mZZOCVRnQUzcv8EePP1Mb5XHJxcB9RvJZPdEnNOEor -# /+m5iJXS91Xf1av1uWJ4UtUxLh5wyLuabiujk3tdGllgFevRrW6DU7g19PbWUWFQ -# tDul12Jei/euUx0DggqFpAGcrIUSMKGCF5MwghePBgorBgEEAYI3AwMBMYIXfzCC -# F3sGCSqGSIb3DQEHAqCCF2wwghdoAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFRBgsq -# hkiG9w0BCRABBKCCAUAEggE8MIIBOAIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCDuMbkRPjAvxi4QeVb1DOEEpIfpSuM9f5eAc4Y7kh75MAIGZ1rRdmaw -# GBIyMDI1MDEwOTA2MzY1MS44OVowBIACAfSggdGkgc4wgcsxCzAJBgNVBAYTAlVT -# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVy -# aWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjo5MjAwLTA1 -# RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaCC -# EeowggcgMIIFCKADAgECAhMzAAAB5y6PL5MLTxvpAAEAAAHnMA0GCSqGSIb3DQEB -# CwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTIzMTIwNjE4NDUx -# OVoXDTI1MDMwNTE4NDUxOVowgcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMx -# JzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjo5MjAwLTA1RTAtRDk0NzElMCMGA1UE -# AxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZTCCAiIwDQYJKoZIhvcNAQEB -# BQADggIPADCCAgoCggIBAMJXny/gi5Drn1c8zUO1pYy/38dFQLmR2IQXz1gE/r9G -# fuSOoyRnkRJ6Z/kSWLgIu1BVJ59GkXWPtLkssqKwxY4ZFotxpVsZN9yYjW8xEnW3 -# MzAI0igKr+/LxYfxB1XUH8Bvmwr5D3Ii/MbDjtN9c8TxGWtq7Ar976dafAy3TrRq -# QRmIknPVWHUuFJgpqI/1nbcRmYYRMJaKCQpty4CeG+HfKsxrz24F9p4dBkQcZCp2 -# yQzjwQFxZJZ2mJJIGIDHKEdSRuSeX08/O0H9JTHNFmNTNYeD1t/WapnRwiIBYLQS -# Mrs42GVB8pJEdUsos0+mXf/5QvheNzRi92pzzyA4tSv/zhP3/Ermvza6W9GnYDz9 -# qv1wbhbvrnS4poDFECaAviEqAhfn/RogCxvKok5ro4gZIX1r4N9eXUulA80pHv3a -# xwXu2MPlarAi6J9L1hSIcy9EuOMqTRJIJX+alcLQGg+STlqx/GuslsKwl48dI4Ru -# WknNGbNo/o4xfBFytvtNcVA6xOQq6qRa+9gg+9XMLrxQz4yyQs+V3V6p044wrtJt -# t/a0ZJl/f6I7BZAxxZcH2DDmArcAhgrTxaQkm7LM+p+K2C5t1EKZiv0JWw065b7A -# cNgaFyIkMXYuSuOQVSNRxdIgl31/ayxiK1n0K6sZXvgFBx+vGO+TUvyO+03ua6Uj -# AgMBAAGjggFJMIIBRTAdBgNVHQ4EFgQUz/7gmICfNjh2kR/9mWuHUrvej1gwHwYD -# VR0jBBgwFoAUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXwYDVR0fBFgwVjBUoFKgUIZO -# aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIw -# VGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3JsMGwGCCsGAQUFBwEBBGAwXjBc -# BggrBgEFBQcwAoZQaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0 -# cy9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcnQwDAYD -# VR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAOBgNVHQ8BAf8EBAMC -# B4AwDQYJKoZIhvcNAQELBQADggIBAHSh8NuT6WVaLVwLqex+J7km2nT2jpvoBEKm -# +0M+rYoU/6GL5Q00/ssZyIq5ySpcKYFMUiF8F4ZLG+TrJyiR1CvfzXmkQ5phZOce -# 9DT7yErLzqvUXit8G7igcHlxPLTxPiiGsb85gb8H+A2fPQ6Xq/u7+oSPPjzNdnpm -# XEobJnAqYplZoF3YNgTDMql0uQHGzoDp6dZlHSNj6rkV1tXjmCEZMqBKvkQIA6cs -# PieMnB+MirSZFlbANlChe0lJpUdK7aUdAvdgcQWKS6dtRMl818EMsvsa/6xOZGIN -# mTLk4DGgsbaBpN+6IVt+mZJ89yCXkI5TN8xCfOkp9fr4WQjRBA2+4+lawNTyxH66 -# eLZWYOjuuaomuibiKGBU10tox81Sq8EvlmJIrXOZoQsEn1r5g6MTmmZJqtbmwZuf -# uJWQXZb0lAg4fq0ZYsUlLkezfrNqGSgeHyIP3rct4aNmqQW6wppRbvbIyP/LFN4Y -# QM6givfmTBfGvVS77OS6vbL4W41jShmOmnOn3kBbWV6E/TFo76gFXVd+9oK6v8Hk -# 9UCnbHOuiwwRRwDCkmmKj5Vh8i58aPuZ5dwZBhYDxSavwroC6j4mWPwh4VLqVK8q -# GpCmZ0HMAwao85Aq3U7DdlfF6Eru8CKKbdmIAuUzQrnjqTSxmvF1k+CmbPs7zD2A -# cu7JkBB7MIIHcTCCBVmgAwIBAgITMwAAABXF52ueAptJmQAAAAAAFTANBgkqhkiG -# 9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAO -# BgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEy -# MDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIw -# MTAwHhcNMjEwOTMwMTgyMjI1WhcNMzAwOTMwMTgzMjI1WjB8MQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBQQ0EgMjAxMDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB -# AOThpkzntHIhC3miy9ckeb0O1YLT/e6cBwfSqWxOdcjKNVf2AX9sSuDivbk+F2Az -# /1xPx2b3lVNxWuJ+Slr+uDZnhUYjDLWNE893MsAQGOhgfWpSg0S3po5GawcU88V2 -# 9YZQ3MFEyHFcUTE3oAo4bo3t1w/YJlN8OWECesSq/XJprx2rrPY2vjUmZNqYO7oa -# ezOtgFt+jBAcnVL+tuhiJdxqD89d9P6OU8/W7IVWTe/dvI2k45GPsjksUZzpcGkN -# yjYtcI4xyDUoveO0hyTD4MmPfrVUj9z6BVWYbWg7mka97aSueik3rMvrg0XnRm7K -# MtXAhjBcTyziYrLNueKNiOSWrAFKu75xqRdbZ2De+JKRHh09/SDPc31BmkZ1zcRf -# NN0Sidb9pSB9fvzZnkXftnIv231fgLrbqn427DZM9ituqBJR6L8FA6PRc6ZNN3SU -# HDSCD/AQ8rdHGO2n6Jl8P0zbr17C89XYcz1DTsEzOUyOArxCaC4Q6oRRRuLRvWoY -# WmEBc8pnol7XKHYC4jMYctenIPDC+hIK12NvDMk2ZItboKaDIV1fMHSRlJTYuVD5 -# C4lh8zYGNRiER9vcG9H9stQcxWv2XFJRXRLbJbqvUAV6bMURHXLvjflSxIUXk8A8 -# FdsaN8cIFRg/eKtFtvUeh17aj54WcmnGrnu3tz5q4i6tAgMBAAGjggHdMIIB2TAS -# BgkrBgEEAYI3FQEEBQIDAQABMCMGCSsGAQQBgjcVAgQWBBQqp1L+ZMSavoKRPEY1 -# Kc8Q/y8E7jAdBgNVHQ4EFgQUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXAYDVR0gBFUw -# UzBRBgwrBgEEAYI3TIN9AQEwQTA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNy -# b3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRtMBMGA1UdJQQMMAoG -# CCsGAQUFBwMIMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIB -# hjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP6KJcYmjRPZSQW9fO -# mhjEMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9w -# a2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNybDBaBggr -# BgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0LmNv -# bS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0MA0GCSqGSIb3 -# DQEBCwUAA4ICAQCdVX38Kq3hLB9nATEkW+Geckv8qW/qXBS2Pk5HZHixBpOXPTEz -# tTnXwnE2P9pkbHzQdTltuw8x5MKP+2zRoZQYIu7pZmc6U03dmLq2HnjYNi6cqYJW -# AAOwBb6J6Gngugnue99qb74py27YP0h1AdkY3m2CDPVtI1TkeFN1JFe53Z/zjj3G -# 82jfZfakVqr3lbYoVSfQJL1AoL8ZthISEV09J+BAljis9/kpicO8F7BUhUKz/Aye -# ixmJ5/ALaoHCgRlCGVJ1ijbCHcNhcy4sa3tuPywJeBTpkbKpW99Jo3QMvOyRgNI9 -# 5ko+ZjtPu4b6MhrZlvSP9pEB9s7GdP32THJvEKt1MMU0sHrYUP4KWN1APMdUbZ1j -# dEgssU5HLcEUBHG/ZPkkvnNtyo4JvbMBV0lUZNlz138eW0QBjloZkWsNn6Qo3GcZ -# KCS6OEuabvshVGtqRRFHqfG3rsjoiV5PndLQTHa1V1QJsWkBRH58oWFsc/4Ku+xB -# Zj1p/cvBQUl+fpO+y/g75LcVv7TOPqUxUYS8vwLBgqJ7Fx0ViY1w/ue10CgaiQuP -# Ntq6TPmb/wrpNPgkNWcr4A245oyZ1uEi6vAnQj0llOZ0dFtq0Z4+7X6gMTN9vMvp -# e784cETRkPHIqzqKOghif9lwY1NNje6CbaUFEMFxBmoQtB1VM1izoXBm8qGCA00w -# ggI1AgEBMIH5oYHRpIHOMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGlu -# Z3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv -# cmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScw -# JQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTIwMC0wNUUwLUQ5NDcxJTAjBgNVBAMT -# HE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiIwoBATAHBgUrDgMCGgMVALNy -# BOcZqxLB792u75w97U0X+/BDoIGDMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# UENBIDIwMTAwDQYJKoZIhvcNAQELBQACBQDrKY+fMCIYDzIwMjUwMTA4MjM1ODIz -# WhgPMjAyNTAxMDkyMzU4MjNaMHQwOgYKKwYBBAGEWQoEATEsMCowCgIFAOspj58C -# AQAwBwIBAAICCowwBwIBAAICE0wwCgIFAOsq4R8CAQAwNgYKKwYBBAGEWQoEAjEo -# MCYwDAYKKwYBBAGEWQoDAqAKMAgCAQACAwehIKEKMAgCAQACAwGGoDANBgkqhkiG -# 9w0BAQsFAAOCAQEARm0d77sDdK+Bqg3rqdpFmlOenvfBFxGzx0wFPf9zw9hvBfq/ -# EY/IG/WpJ/Jw/J/08M9f9PKnzD7w/9qeeHb2426Zu22WM7fxgY3CLchQb1ACW0NK -# +iCUftBwmbUqK5kuYDMUvYEwPtwD3AIdHvyNlHgse3oPWg6FQrA8ttht1lY+QvGO -# 19OqpeZwzGhAW/O1kGXarKG6rn1qQhGuR3bBKyTvdsujZiVpKwSU0wVMjI+ukv78 -# 9qachfRelJF1bDCInE0mzQxxClHrn9OZ9u/Vnu7QMyUdBYk7JdCXVtECo4y2KynF -# /fz1xueljgsuRALveftvFBWbwabi5hV44504MzGCBA0wggQJAgEBMIGTMHwxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv -# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB5y6PL5MLTxvpAAEAAAHnMA0G -# CWCGSAFlAwQCAQUAoIIBSjAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJ -# KoZIhvcNAQkEMSIEIIZX/FUvXiNbINs5u/kh0fqbsDchKF1hioi+bvU+HGFYMIH6 -# BgsqhkiG9w0BCRACLzGB6jCB5zCB5DCBvQQg5TZdDXZqhv0N4MVcz1QUd4RfvgW/ -# QAG9AwbuoLnWc60wgZgwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MAITMwAAAecujy+TC08b6QABAAAB5zAiBCBEm+MnX6BUaw2hoO31T8VOQURXR1mD -# tTiPuzpaNaxqQTANBgkqhkiG9w0BAQsFAASCAgBews9oufEPazqt0EzJChqw/s4w -# ydX6moKL9sZr979ineeCHC3pY//7oxmCLxcJg00KBmEGhRv3wvx5m9qYeKgVhyKw -# sW5Nm0pqmNfKwUcNq/6xUB86UWiHOp5XN3B78HkjrT7IEMc9OA2gbRwGZl9nwLyZ -# /5myqnfj3GTfM6OVW+/bZBxHLQVFEWWDKSLpyIoFMyiTUbipXnrQpkbHgmHtAYxJ -# JhGr6I65aoRJKzHZzCkeB9zX/OMIFTcs3k8h9gjNIdgyG3xmyTG9IzeXuGQhO/BV -# vk88pV/btLDG6HF9QSGI95pOCvyfoG/ySV64L5NascO5yRX6DiwN2QPm1XZzE2zI -# D3Ypm8CrMG5lLwqSYuY/jRrb+pUdre7u61nuasWUWV13iepOjy8dF/wMOucfd8m3 -# 5s93Zb0ThTo6RselEpQOd8Qnxjqoq4DO137VbhCxHzgnY23G/jS+pfCuYSX0jId9 -# RXWO59DknoV01R6u1a9bcNuUbwOXU8k6Iwt203tLmXLrFiTN1JqcDoA0zpB1qV2y -# XIhlV7jY/LMe0IZdwGkkMyAe93DSgNofTjTotiDLLcI3dn5yIepxjGF0P1fUNQuM -# eAVMPxi+ne47AJm4NixZWBP48Qi2Py6mFjs8FMYTL5gVwYWWMLB7JG1lUQqWKoDG -# rFnouitaw1wRQR0WhA== -# SIG # End signature block diff --git a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/utils/Unprotect-SecureString.ps1 b/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/utils/Unprotect-SecureString.ps1 deleted file mode 100644 index f186085d93b0..000000000000 --- a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/utils/Unprotect-SecureString.ps1 +++ /dev/null @@ -1,233 +0,0 @@ -#This script converts securestring to plaintext - -param( - [Parameter(Mandatory, ValueFromPipeline)] - [System.Security.SecureString] - ${SecureString} -) - -$ssPtr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($SecureString) -try { - $plaintext = [System.Runtime.InteropServices.Marshal]::PtrToStringBSTR($ssPtr) -} finally { - [System.Runtime.InteropServices.Marshal]::ZeroFreeBSTR($ssPtr) -} - -return $plaintext -# SIG # Begin signature block -# MIIoOQYJKoZIhvcNAQcCoIIoKjCCKCYCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDT7ZbNoY98P1cW -# CLQEXghewcRRqpuzw+uOgG2nbQ8aHaCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIAmR -# ZNAgxcDFKH97A6YERhvKrSJCqORTlbGk5c1WcUAXMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAfPtlhlRy2E3hutbUEkAOD+7dk7c/QftuRCG3 -# JtEcBxyGQG4SFKjdNfyGA9mU9bcQG7EDyKsTDGaeSxfO20CGY+ge345SXSbS20VD -# E66lqx8no+vYNPDTtYfEUOLzHeGWnWo0iAn0H4j7fwhbL/2eq4mpGdj94cSTUh3g -# ZaXTKsqAy8inZDZCoyX4TMHjuXX+SJU1PLHCt2x79KcDFqoOoUYWlA3GiajtQKS1 -# VP/3aezEpYq7aGFK5aHo/hUQSnEeY/Yr9Os3Rx9lz7ztyn7NVcTQK8JUAOuoR3/S -# mWmUoeRc3k0XBiHZppIi5m9oIevwf4WRMSZhcSx0GNbTicgIy6GCF5QwgheQBgor -# BgEEAYI3AwMBMYIXgDCCF3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFSBgsqhkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCDnI7XkFqZmx9eRquXRsqCafUn275vbpU6+ -# eoCsY2oCggIGZ1r0VelAGBMyMDI1MDEwOTA2Mzc0NC45MzVaMASAAgH0oIHRpIHO -# MIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQL -# ExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxk -# IFRTUyBFU046ODkwMC0wNUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1l -# LVN0YW1wIFNlcnZpY2WgghHqMIIHIDCCBQigAwIBAgITMwAAAe3hX8vV96VdcwAB -# AAAB7TANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDAeFw0yMzEyMDYxODQ1NDFaFw0yNTAzMDUxODQ1NDFaMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046ODkwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Uw -# ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCoMMJskrrqapycLxPC1H7z -# D7g88NpbEaQ6SjcTIRbzCVyYQNsz8TaL1pqFTEAPL1X7ojL4/EaEW+UjNqZs/ayM -# yW4YIpFPZP2x4FBMVCddseF2i+aMMjDHi0LcTQZxM2s3mFMrCZAWSfLYXYDIimFB -# z8j0oLWGy3VgLmBTKM4xLqv7DZUz8B2SoAmbEtp62ngSl0hOoN73SFwE+Y24SvGQ -# MWhykpG+vXDwcpWvwDe+TgnrLR7ATRFXN5JS26dm2yy6SYFMRYnME3dMHCQ/UQIQ -# QNC8nLmIvdKkAoWEMXtJsGEo3QrM2S2SBv4PpHRzRukzTtP+UAceGxM9JyrwUQP5 -# OCEmW6YchEyRDSwP4hU9f7B0Ayh14Pw9vJo7jewNjeMPIkmneyLSi0ruv2ox/xRG -# tcJ9yBNC5BaRktjz7stPaojR+PDA2fuBtCo8xKlkt53mUb7AY+CZHHqhLm76pdMF -# 6BHv2TvwlVBeQRN22XjaVVRwCgjgJnNewt7PejcrpUn0qHLgLq+1BN1DzYukWkTr -# 7wT0zl0iXr+NtqUkWSOnWRfe8N21tB6uv3VkW8nFdChtbbZZz24peLtJEZuNrN8X -# f9PTPMzZXDJBI1EciR/91QcGoZFmVbFVb2rUIAs01+ZkewvbhmGVDefX9oZG4/K4 -# gGUsTvTW+r1JZMxUT2MwqQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFM4b8Oz33hAq -# BEfKlAZf0NKh4CIZMB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8G -# A1UdHwRYMFYwVKBSoFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMv -# Y3JsL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBs -# BggrBgEFBQcBAQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0 -# LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUy -# MDIwMTAoMSkuY3J0MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUH -# AwgwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4ICAQCd1gK2Rd+eGL0e -# Hi+iE6/qDY8sbbsO4emancp6KPN+xq5ZAatiBR4jmRRhm+9Vik0Fo0DLWi/N28bF -# I7dXYw09p3vCipbjy4Eoifm0Nud7/4U30i9+7RvW7XOQ3rx37+U7vq9lk6yYpGCN -# p0jlJ188/CuRPgqJnfq5EdeafH2AoG46hKWTeB7DuXasGt6spJOenGedSre34MWZ -# qeTIQ0raOItZnFuGDy4+xoD1qRz2QW+u2gCHaG8AQjhYUM4uTi9t6kttj6c7Xamr -# 2zrWuceDhz7sKLttLTJ7ws5YrA2I8cTlbMAf2KW0GVjKbYGd+LZGduEK7/7fs4GU -# kMqc51FsNdG1n+zgc7zHu2oGGeCBg4s8ZR0ZFyx7jsgm9sSFCKQ5CsbAvlr/60Nd -# k5TeMR8Js2kNUicu2CqZ03833TsvTgk7iD1KLgfS16HEvjN6m4VKJKgjJ7OJJzab -# tS4JQgUnJrIZfyosk4D18rZni9pUwN03WgTmd10WTwiZOu4g8Un6iKcPMY/iFqTu -# 4ntkzFUxBBpbFG6k1CINZmoirEWmCtG3lyZ2IddmjtIefTkIvGWb4Jxzz7l2m/E2 -# kGOixDJHsahZVmwsoNvhy5ku/inU++dXHzw+hlvqTSFT89rIFVhcmsWPDJPNRSSp -# MhoJ33V2Za/lkKcbkUM0SbQgS9qsdzCCB3EwggVZoAMCAQICEzMAAAAVxedrngKb -# SZkAAAAAABUwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQI -# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv -# ZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmlj -# YXRlIEF1dGhvcml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIy -# NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT -# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE -# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXI -# yjVX9gF/bErg4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjo -# YH1qUoNEt6aORmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1y -# aa8dq6z2Nr41JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v -# 3byNpOORj7I5LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pG -# ve2krnopN6zL64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viS -# kR4dPf0gz3N9QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYr -# bqgSUei/BQOj0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlM -# jgK8QmguEOqEUUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSL -# W6CmgyFdXzB0kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AF -# emzFER1y7435UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIu -# rQIDAQABo4IB3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIE -# FgQUKqdS/mTEmr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWn -# G1M1GelyMFwGA1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEW -# M2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5 -# Lmh0bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBi -# AEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV -# 9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3Js -# Lm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAx -# MC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2 -# LTIzLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv -# 6lwUtj5OR2R4sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZn -# OlNN3Zi6th542DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1 -# bSNU5HhTdSRXud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4 -# rPf5KYnDvBewVIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU -# 6ZGyqVvfSaN0DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDF -# NLB62FD+CljdQDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/ -# HltEAY5aGZFrDZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdU -# CbFpAUR+fKFhbHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKi -# excdFYmNcP7ntdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTm -# dHRbatGePu1+oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZq -# ELQdVTNYs6FwZvKhggNNMIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMx -# EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT -# FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJp -# Y2EgT3BlcmF0aW9uczEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjg5MDAtMDVF -# MC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMK -# AQEwBwYFKw4DAhoDFQDuHayKTCaYsYxJh+oWTx6uVPFw+aCBgzCBgKR+MHwxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv -# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymygDAi -# GA8yMDI1MDEwOTAyMjcxMloYDzIwMjUwMTEwMDIyNzEyWjB0MDoGCisGAQQBhFkK -# BAExLDAqMAoCBQDrKbKAAgEAMAcCAQACAhbZMAcCAQACAhMSMAoCBQDrKwQAAgEA -# MDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAI -# AgEAAgMBhqAwDQYJKoZIhvcNAQELBQADggEBACn1b5KnkJiAf9A6R/SjvtbOrGdu -# JWnWonsXKPptDkaQJ/jqh8hZIma3W7JHrYr2Jyv4AXnt4l5fkmspdaMCoq6KGLho -# CdhGggzU70J4s1ohAeSnauOqdS3yV5ddSglwd5dQi7wDyB7Vss6L9hZpZgoljHE+ -# 8LXELYRPEXTUNdh0t/TalsRYXondvormVffUkyXY6nqZlOnUZq26qmr8DCj6dmWc -# cZ+NRtVCuFswqT17sqnw5haDIuCA20MgcRAUAfBOufvyHjb8K/HM76Hm0dtK0j/q -# E0g6Mum/F0YyC9SyYuzJk8mydlwOA4GkkW8gdhmrg7l7SYYRVzpIOeqXVFsxggQN -# MIIECQIBATCBkzB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ -# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u -# MSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAe3h -# X8vV96VdcwABAAAB7TANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0G -# CyqGSIb3DQEJEAEEMC8GCSqGSIb3DQEJBDEiBCAlDRlJWdI5GuiftyJi+gDtKruZ -# qEWEfY8tPHfV0pTRgjCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EII0uDWg0 -# CFseKxK3A16l1wrIwrsSDrXZ6xSf0F4xbMo5MIGYMIGApH4wfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTACEzMAAAHt4V/L1felXXMAAQAAAe0wIgQgHZJuYFot -# PXySbWtoYQzcjhOI+GdzM2vjq7x+59R0CtQwDQYJKoZIhvcNAQELBQAEggIAZIrQ -# Fu33o8czIck9WXTy7f+Oa+7CJTD7KtQfnM3YL3vgjBt7mopEGazCoqhoa0bWnzr0 -# YkF3ck/7sGUyROa1TQ0/5X+mCJ5yFhlUVdglcq+ARKZBTvXUYljFXfOdP+DqtPUg -# nFG8l6/JGSNYuCFQuQV6EJh0/Jcjt1jFkHH3PMNlzkryQA23TvJe/WOevn3LfGhv -# uwMJi27rNlvCmF63p3HNJZpJYY8ti/aKNgxnydU5SC87mtuhGotAuKAFYO7SNdjx -# fgTmZx+WfObfkvc9qWAP83Dm6nJQsLqUiYnockovlNDEL56XneV6LGQTy54fZ0t3 -# ETd6xpWXjE8+UAz2iASScHFOCBbkOnRgwLTzrByJPiNeTI4Kbh39Ctm1b6PUDGP9 -# iLDLeehaFAH7sbH0ccOk00pXdNCEL7eDmeXTtu6kMbw/L1/rT10n8X15VRa8Mshy -# 503Fd9hjmkcRvvs9MPL2Z3njc3xuQ7HOg7KblPOqBhngHhHs+dIeTrX9qP1gX1XX -# TcrVBzNqVO2C8Swur7/a2m4W8LuXCpqslYzBwWJgaykQ/tqOO13M9rnx4EXGrjSZ -# 4q4gvNI7FsJb0WsbIIBeF+jwktYBoEfUV9Pv5j0OKdcrcrwfCdJ5VJ2latZCoCaq -# TjHwobcIgvCSPH9GiXZgWG2uSWRinDsCc60jJkI= -# SIG # End signature block diff --git a/Modules/Az.KeyVault/6.3.1/KeyVault.format.ps1xml b/Modules/Az.KeyVault/6.3.1/KeyVault.format.ps1xml deleted file mode 100644 index b23735c59fe8..000000000000 --- a/Modules/Az.KeyVault/6.3.1/KeyVault.format.ps1xml +++ /dev/null @@ -1,2240 +0,0 @@ - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - - - - - - VaultName - - - - Name - - - - Version - - - - Id - - - - Enabled - - - - Expires - - - - NotBefore - - - - Created - - - - Updated - - - - RecoveryLevel - - - - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - - Left - Name - - - Left - VaultName - - - Left - Enabled - - - Left - Created - - - Left - Expires - - - Left - Tags - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKey - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKey - - - - - - - - VaultName - - - - Name - - - - KeyType - - - - KeySize - - - - CurveName - - - - Version - - - - Id - - - - Enabled - - - - Expires - - - - NotBefore - - - - Created - - - - Updated - - - - RecoveryLevel - - - - ReleasePolicy - - - - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultKeyIdentityItem - - - - - - - - VaultName - - - - Name - - - - Id - - - - DeletedDate - - - - ScheduledPurgeDate - - - - Enabled - - - - Expires - - - - NotBefore - - - - Created - - - - Updated - - - - RecoveryLevel - - - - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultKey - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultKey - - - - - - - - VaultName - - - - Name - - - - KeyType - - - - KeySize - - - - CurveName - - - - Id - - - - DeletedDate - - - - ScheduledPurgeDate - - - - Enabled - - - - Expires - - - - NotBefore - - - - Created - - - - Updated - - - - RecoveryLevel - - - - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSecretIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSecretIdentityItem - - - - - - - - VaultName - - - - Name - - - - Version - - - - Id - - - - Enabled - - - - Expires - - - - NotBefore - - - - Created - - - - Updated - - - - ContentType - - - - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSecretIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSecretIdentityItem - - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - - Left - Name - - - Left - VaultName - - - Left - Created - - - Left - Expires - - - Left - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultSecretIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultSecretIdentityItem - - - - - - - - VaultName - - - - Name - - - - Id - - - - DeletedDate - - - - ScheduledPurgeDate - - - - Enabled - - - - Expires - - - - NotBefore - - - - Created - - - - Updated - - - - ContentType - - - - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - - - - - - - VaultName - - - - ResourceGroupName - - - - Location - - - - ResourceId - - - - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - - Left - VaultName - - - Left - ResourceGroupName - - - Left - Location - - - Left - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVault - - - - - - - - VaultName - - - - Location - - - - Id - - - - ResourceId - - - - DeletionDate - - - - ScheduledPurgeDate - - - - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - VaultName - - - - ResourceGroupName - - - - Location - - - - ResourceId - - - - VaultUri - - - - TenantName - - - - Sku - - - - EnabledForDeployment - - - - EnabledForTemplateDeployment - - - - EnabledForDiskEncryption - - - - EnableRbacAuthorization - - - - EnableSoftDelete - - - - SoftDeleteRetentionInDays - - - - EnablePurgeProtection - - - - PublicNetworkAccess - - - - AccessPoliciesText - - - - NetworkAclsText - - - - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - - Left - Name - - - Left - ResourceGroupName - - - Left - Location - - - Left - Sku - - - Left - ProvisioningState - - - Left - - if ($_.SecurityDomain -ne $null) - { - $_.SecurityDomain.ActivationStatus; - } - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - - - - - - Name - - - - VaultName - - - - Version - - - - Id - - - - Enabled - - - - Expires - - - - NotBefore - - - - Created - - - - Updated - - - - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - - Left - Name - - - Left - VaultName - - - Left - Enabled - - - Left - Created - - - Left - Expires - - - Left - Tags - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultCertificate - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultCertificate - - - - - - - - Name - - - - VaultName - - - - Version - - - - Id - - - - KeyId - - - - SecretId - - - - Certificate - - - - Thumbprint - - - - RecoveryLevel - - - - ScheduledPurgeDate - - - - DeletedDate - - - - Enabled - - - - Expires - - - - NotBefore - - - - Created - - - - Updated - - - - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificate - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificate - - - - - - - - Name - - - - VaultName - - - - Version - - - - Id - - - - KeyId - - - - SecretId - - - - Certificate - - - - Thumbprint - - - - Policy - - - - RecoveryLevel - - - - Enabled - - - - Expires - - - - NotBefore - - - - Created - - - - Updated - - - - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSetting - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSetting - - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - - Left - Name - - - Left - Value - - - Left - Type - - - Left - HsmName - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - - - - - - Name - - - - ResourceGroupName - - - - Location - - - - ResourceId - - - - HsmPoolUri - - - - TenantName - - - - InitialAdminObjectIds - - - - Sku - - - - EnableSoftDelete - - - - EnablePurgeProtection - - - - SoftDeleteRetentionInDays - - - - PublicNetworkAccess - - - - - if ($_.Identity -ne $null) - { - $_.Identity.Type; - } - - - - - - if ($_.Identity -ne $null) - { - $_.Identity.UserAssignedIdentities; - } - - - - - ProvisioningState - - - - StatusMessage - - - - - if ($_.SecurityDomain -ne $null) - { - $_.SecurityDomain.ActivationStatus; - } - - - - - - if ($_.SecurityDomain -ne $null) - { - $_.SecurityDomain.ActivationStatusMessage; - } - - - - - Regions - - - - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedManagedHsm - - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - - Left - Name - - - Left - Location - - - Left - DeletionDate - - - Left - ScheduledPurgeDate - - - Left - EnablePurgeProtection - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultAccessPolicy - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultAccessPolicy - - - - - - - - TenantName - - - - ObjectId - - - - ApplicationIdDisplayName - - - - DisplayName - - - - PermissionsToKeys - - - - PermissionsToSecrets - - - - PermissionsToCertificates - - - - PermissionsToStorage - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyReleasePolicy - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyReleasePolicy - - - - - - - - ContentType - - - - PolicyContent - - - - Immutable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSecret - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSecret - - - - - - - - VaultName - - - - Name - - - - Version - - - - Id - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Enabled; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Expires; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.NotBefore; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Created; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Updated; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.ContentType; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.TagsTable; - } - else - { - $_.Attributes; - } - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultSecret - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultSecret - - - - - - - - VaultName - - - - Name - - - - Version - - - - Id - - - - DeletedDate - - - - ScheduledPurgeDate - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Enabled; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Expires; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.NotBefore; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Created; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Updated; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.ContentType; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.TagsTable; - } - else - { - $_.Attributes; - } - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccount - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccount - - - - - - - - Id - - - - VaultName - - - - AccountName - - - - AccountResourceId - - - - ActiveKeyName - - - - AutoRegenerateKey - - - - RegenerationPeriod - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Enabled; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Created; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Updated; - } - else - { - $_.Attributes; - } - - - - - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - - - - - - Id - - - - VaultName - - - - AccountName - - - - AccountResourceId - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Enabled; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Created; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Updated; - } - else - { - $_.Attributes; - } - - - - - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageSasDefinitionIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageSasDefinitionIdentityItem - - - - - - - - Id - - - - VaultName - - - - AccountName - - - - Name - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Enabled; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Created; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Updated; - } - else - { - $_.Attributes; - } - - - - - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageSasDefinition - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageSasDefinition - - - - - - - - Id - - - - Sid - - - - VaultName - - - - AccountName - - - - Name - - - - ParameterTable - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Enabled; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Created; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Updated; - } - else - { - $_.Attributes; - } - - - - - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleDefinition - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleDefinition - - - - - - - - - - - - - - - - - - RoleName - - - Description - - - "$($_.Permissions.Length) permission(s)" - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultPermission - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultPermission - - - - - - - - - - - - - - - - - - - - - "$($_.Actions.Length) action(s)" - - - "$($_.NotActions.Length) action(s)" - - - "$($_.DataActions.Length) action(s)" - - - "$($_.NotDataActions.Length) action(s)" - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleAssignment - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleAssignment - - - - - - - RoleDefinitionName - - - DisplayName - - - ObjectType - - - Scope - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/Az.KeyVault/6.3.1/Microsoft.Azure.KeyVault.WebKey.dll b/Modules/Az.KeyVault/6.3.1/Microsoft.Azure.KeyVault.WebKey.dll deleted file mode 100644 index c6d9e3c7f7f0..000000000000 Binary files a/Modules/Az.KeyVault/6.3.1/Microsoft.Azure.KeyVault.WebKey.dll and /dev/null differ diff --git a/Modules/Az.KeyVault/6.3.1/Microsoft.Azure.KeyVault.dll b/Modules/Az.KeyVault/6.3.1/Microsoft.Azure.KeyVault.dll deleted file mode 100644 index 12ac8ebeb0fe..000000000000 Binary files a/Modules/Az.KeyVault/6.3.1/Microsoft.Azure.KeyVault.dll and /dev/null differ diff --git a/Modules/Az.KeyVault/6.3.1/Microsoft.Azure.PowerShell.Cmdlets.KeyVault.dll b/Modules/Az.KeyVault/6.3.1/Microsoft.Azure.PowerShell.Cmdlets.KeyVault.dll deleted file mode 100644 index 1ba2d1ac6ab3..000000000000 Binary files a/Modules/Az.KeyVault/6.3.1/Microsoft.Azure.PowerShell.Cmdlets.KeyVault.dll and /dev/null differ diff --git a/Modules/Az.KeyVault/6.3.1/Microsoft.Azure.PowerShell.Cmdlets.KeyVault.dll-Help.xml b/Modules/Az.KeyVault/6.3.1/Microsoft.Azure.PowerShell.Cmdlets.KeyVault.dll-Help.xml deleted file mode 100644 index a85dab6a476c..000000000000 --- a/Modules/Az.KeyVault/6.3.1/Microsoft.Azure.PowerShell.Cmdlets.KeyVault.dll-Help.xml +++ /dev/null @@ -1,46410 +0,0 @@ - - - - - Add-AzKeyVaultCertificate - Add - AzKeyVaultCertificate - - Adds a certificate to a key vault. - - - - The Add-AzKeyVaultCertificate cmdlet starts the process of enrolling for a certificate in a key vault in Azure Key Vault. - - - - Add-AzKeyVaultCertificate - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the certificate to add. - - System.String - - System.String - - - None - - - CertificatePolicy - - Specifies a KeyVaultCertificatePolicy object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzKeyVaultCertificate - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the certificate to add. - - System.String - - System.String - - - None - - - PolicyPath - - A file path to specify management policy for the certificate that contains JSON encoded policy definition. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - CertificatePolicy - - Specifies a KeyVaultCertificatePolicy object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Specifies the name of the certificate to add. - - System.String - - System.String - - - None - - - PolicyPath - - A file path to specify management policy for the certificate that contains JSON encoded policy definition. - - System.String - - System.String - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOperation - - - - - - - - - - - - - - ----------------- Example 1: Add a certificate ----------------- - $Policy = New-AzKeyVaultCertificatePolicy -SecretContentType "application/x-pkcs12" -SubjectName "CN=contoso.com" -IssuerName "Self" -ValidityInMonths 6 -ReuseKeyOnRenewal -Add-AzKeyVaultCertificate -VaultName "ContosoKV01" -Name "TestCert01" -CertificatePolicy $Policy - -Status : inProgress -CancellationRequested : False -CertificateSigningRequest : MIICpjCCAY4CAQAwFjEUMBIGA1UEAxMLY29udG9zby5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC73w3VRBOlgJ5Od1PjDh+2ytngNZp+ZP4fkuX8K1Ti5LA6Ih7eWx1fgAN/iTb6l - 5K6LvAIJvsTNVePMNxfSdaEIJ70Inm45wVU4A/kf+UxQWAYVMsBrLtDFWxnVhzf6n7RGYke6HLBj3j5ASb9g+olSs6eON25ibF0t+u6JC+sIR0LmVGar9Q0eZys1rdfzJBIKq+laOM7z2pJijb5ANqve9 - i7rH5mnhQk4V8WsRstOhYR9jgLqSSxokDoeaBClIOidSBYqVc1yNv4ASe1UWUCR7ZK6OQXiecNWSWPmgWEyawu6AR9eb1YotCr2ScheMOCxlm3103luitxrd8A7kMjAgMBAAGgSzBJBgkqhkiG9w0BCQ4 - xPDA6MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwCQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOCAQEAIHhsDJV37PKi8hor5eQf7+Tct1preIvSwqV0NF6Uo7O6 - YnC9Py7Wp7CHfKzuqeptUk2Tsu7B5dHB+o9Ypeeqw8fWhTN0GFGRKO7WjZQlDqL+lRNcjlFSaP022oIP0kmvVhBcmZqRQlALXccAaxEclFA/3y/aNj2gwWeKpH/pwAkZ39zMEzpQCaRfnQk7e3l4MV8cf - eC2HPYdRWkXxAeDcNPxBuVmKy49AzYvly+APNVDU3v66gxl3fIKrGRsKi2Cp/nO5rBxG2h8t+0Za4l/HJ7ZWR9wKbd/xg7JhdZZFVBxMHYzw8KQ0ys13x8HY+PXU92Y7yD3uC2Rcj+zbAf+Kg== -ErrorCode : -ErrorMessage : - -Get-AzKeyVaultCertificateOperation -VaultName "ContosoKV01" -Name "TestCert01" -Status : completed -CancellationRequested : False -CertificateSigningRequest : MIICpjCCAY4CAQAwFjEUMBIGA1UEAxMLY29udG9zby5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC73w3VRBOlgJ5Od1PjDh+2ytngNZp+ZP4fkuX8K1Ti5LA6Ih7eWx1fgAN/iTb6l - 5K6LvAIJvsTNVePMNxfSdaEIJ70Inm45wVU4A/kf+UxQWAYVMsBrLtDFWxnVhzf6n7RGYke6HLBj3j5ASb9g+olSs6eON25ibF0t+u6JC+sIR0LmVGar9Q0eZys1rdfzJBIKq+laOM7z2pJijb5ANqve9 - i7rH5mnhQk4V8WsRstOhYR9jgLqSSxokDoeaBClIOidSBYqVc1yNv4ASe1UWUCR7ZK6OQXiecNWSWPmgWEyawu6AR9eb1YotCr2ScheMOCxlm3103luitxrd8A7kMjAgMBAAGgSzBJBgkqhkiG9w0BCQ4 - xPDA6MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwCQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOCAQEAIHhsDJV37PKi8hor5eQf7+Tct1preIvSwqV0NF6Uo7O6 - YnC9Py7Wp7CHfKzuqeptUk2Tsu7B5dHB+o9Ypeeqw8fWhTN0GFGRKO7WjZQlDqL+lRNcjlFSaP022oIP0kmvVhBcmZqRQlALXccAaxEclFA/3y/aNj2gwWeKpH/pwAkZ39zMEzpQCaRfnQk7e3l4MV8cf - eC2HPYdRWkXxAeDcNPxBuVmKy49AzYvly+APNVDU3v66gxl3fIKrGRsKi2Cp/nO5rBxG2h8t+0Za4l/HJ7ZWR9wKbd/xg7JhdZZFVBxMHYzw8KQ0ys13x8HY+PXU92Y7yD3uC2Rcj+zbAf+Kg== -ErrorCode : -ErrorMessage : - -Get-AzKeyVaultCertificate -VaultName "ContosoKV01" -Name "TestCert01" - -Name : testCert01 -Certificate : [Subject] - CN=contoso.com - - [Issuer] - CN=contoso.com - - [Serial Number] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - - [Not Before] - 2/8/2016 3:11:45 PM - - [Not After] - 8/8/2016 4:21:45 PM - - [Thumbprint] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - -Thumbprint : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -Tags : -Enabled : True -Created : 2/8/2016 11:21:45 PM -Updated : 2/8/2016 11:21:45 PM - - The first command uses the New-AzKeyVaultCertificatePolicy cmdlet to create a certificate policy, and then stores it in the $Policy variable. The second command uses Add-AzKeyVaultCertificate to start the process to create a certificate. The third command uses the Get-AzKeyVaultCertificateOperation cmdlet to poll the operation to verify that it's complete. The final command uses the Get-AzKeyVaultCertificate cmdlet to get the certificate. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/add-azkeyvaultcertificate - - - Get-AzKeyVaultCertificate - - - - Import-AzKeyVaultCertificate - - - - Remove-AzKeyVaultCertificate - - - - - - - Add-AzKeyVaultCertificateContact - Add - AzKeyVaultCertificateContact - - Adds a contact for certificate notifications. - - - - The Add-AzKeyVaultCertificateContact cmdlet adds a contact for a key vault for certificate notifications in Azure Key Vault. The contact receives updates about events such as certificate close to expiry, certificate renewed, and so on. These events are determined by the certificate policy. - - - - Add-AzKeyVaultCertificateContact - - InputObject - - KeyVault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - EmailAddress - - Specifies the email address of the contact. - - System.String[] - - System.String[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzKeyVaultCertificateContact - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - EmailAddress - - Specifies the email address of the contact. - - System.String[] - - System.String[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzKeyVaultCertificateContact - - VaultName - - Specifies the name of the key vault. - - System.String - - System.String - - - None - - - EmailAddress - - Specifies the email address of the contact. - - System.String[] - - System.String[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EmailAddress - - Specifies the email address of the contact. - - System.String[] - - System.String[] - - - None - - - InputObject - - KeyVault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - VaultName - - Specifies the name of the key vault. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateContact - - - - - - - - - - - - - - -------- Example 1: Add a key vault certificate contact -------- - Add-AzKeyVaultCertificateContact -VaultName "ContosoKV01" -EmailAddress "patti.fuller@contoso.com" -PassThru - -Email VaultName ------ --------- -patti.fuller@contoso.com ContosoKV01 - - This command adds Patti Fuller as a certificate contact for the ContosoKV01 key vault and returns the list of contacts for the "ContosoKV01" vault. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/add-azkeyvaultcertificatecontact - - - Get-AzKeyVaultCertificateContact - - - - Remove-AzKeyVaultCertificateContact - - - - - - - Add-AzKeyVaultKey - Add - AzKeyVaultKey - - Creates a key in a key vault or imports a key into a key vault. - - - - The Add-AzKeyVaultKey cmdlet creates a key in a key vault in Azure Key Vault, or imports a key into a key vault. Use this cmdlet to add keys by using any of the following methods: - Create a key in a hardware security module (HSM) in the Key Vault service. - - Create a key in software in the Key Vault service. - - Import a key from your own hardware security module (HSM) to HSMs in the Key Vault service. - - Import a key from a .pfx file on your computer. - - Import a key from a .pfx file on your computer to hardware security modules (HSMs) in the Key Vault service. - For any of these operations, you can provide key attributes or accept default settings. If you create or import a key that has the same name as an existing key in your key vault, the original key is updated with the values that you specify for the new key. You can access the previous values by using the version-specific URI for that version of the key. To learn about key versions and the URI structure, see About Keys and Secrets (http://go.microsoft.com/fwlink/?linkid=518560)in the Key Vault REST API documentation. Note: To import a key from your own hardware security module, you must first generate a BYOK package (a file with a .byok file name extension) by using the Azure Key Vault BYOK toolset. For more information, see How to Generate and Transfer HSM-Protected Keys for Azure Key Vault (http://go.microsoft.com/fwlink/?LinkId=522252). As a best practice, back up your key after it is created or updated, by using the Backup-AzKeyVaultKey cmdlet. There is no undelete functionality, so if you accidentally delete your key or delete it and then change your mind, the key is not recoverable unless you have a backup of it that you can restore. - - - - Add-AzKeyVaultKey - - VaultName - - Specifies the name of the key vault to which this cmdlet adds the key. This cmdlet constructs the FQDN of a key vault based on the name that this parameter specifies and your current environment. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the key to add to the key vault. This cmdlet constructs the fully qualified domain name (FQDN) of a key based on the name that this parameter specifies, the name of the key vault, and your current environment. The name must be a string of 1 through 63 characters in length that contains only 0-9, a-z, A-Z, and - (the dash symbol). - - System.String - - System.String - - - None - - - CurveName - - Specifies the curve name of elliptic curve cryptography, this value is valid when KeyType is EC. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - Specifies whether to add the key as a software-protected key or an HSM-protected key in the Key Vault service. Valid values are: HSM and Software. Note: To use HSM as your destination, you must have a key vault that supports HSMs. For more information about the service tiers and capabilities for Azure Key Vault, see the Azure Key Vault Pricing website (http://go.microsoft.com/fwlink/?linkid=512521). This parameter is required when you create a new key. If you import a key by using the KeyFilePath parameter, this parameter is optional: - If you do not specify this parameter, and this cmdlet imports a key that has .byok file name extension, it imports that key as an HSM-protected key. The cmdlet cannot import that key as software-protected key. - If you do not specify this parameter, and this cmdlet imports a key that has a .pfx file name extension, it imports the key as a software-protected key. - - - HSM - Software - HSM - Software - - System.String - - System.String - - - None - - - Disable - - Indicates that the key you are adding is set to an initial state of disabled. Any attempt to use the key will fail. Use this parameter if you are preloading keys that you intend to enable later. - - - System.Management.Automation.SwitchParameter - - - False - - - Expires - - Specifies the expiration time of the key in UTC, as a DateTime object, for the key that this cmdlet adds. If not specified, key will not expire. To obtain a DateTime object, use the Get-Date cmdlet. For more information, type `Get-Help Get-Date`. Please notice that expirys is ignored for Key Exchange Key used in BYOK process. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Exportable - - Indicates if the private key can be exported. - - - System.Management.Automation.SwitchParameter - - - False - - - Immutable - - Sets the release policy as immutable state. Once marked immutable, this flag cannot be reset and the policy cannot be changed under any circumstances. - - - System.Management.Automation.SwitchParameter - - - False - - - KeyOps - - Specifies an array of operations that can be performed by using the key that this cmdlet adds. If you do not specify this parameter, all operations can be performed. The acceptable values for this parameter are a comma-separated list of key operations as defined by the JSON Web Key (JWK) specification (http://go.microsoft.com/fwlink/?LinkID=613300): - encrypt - - decrypt - - wrapKey - - unwrapKey - - sign - - verify - - import (for KEK only, see example 7) - - System.String[] - - System.String[] - - - None - - - KeyType - - Specifies the key type of this key. When importing BYOK keys, it defaults to 'RSA'. - - System.String - - System.String - - - None - - - NotBefore - - Specifies the time, as a DateTime object, before which the key cannot be used. This parameter uses UTC. To obtain a DateTime object, use the Get-Date cmdlet. If you do not specify this parameter, the key can be used immediately. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - ReleasePolicyPath - - A path to a file containing JSON policy definition. The policy rules under which a key can be exported. - - System.String - - System.String - - - None - - - Size - - RSA key size, in bits. If not specified, the service will provide a safe default. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UseDefaultCVMPolicy - - Specifies to use default policy under which the key can be exported for CVM disk encryption. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzKeyVaultKey - - VaultName - - Specifies the name of the key vault to which this cmdlet adds the key. This cmdlet constructs the FQDN of a key vault based on the name that this parameter specifies and your current environment. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the key to add to the key vault. This cmdlet constructs the fully qualified domain name (FQDN) of a key based on the name that this parameter specifies, the name of the key vault, and your current environment. The name must be a string of 1 through 63 characters in length that contains only 0-9, a-z, A-Z, and - (the dash symbol). - - System.String - - System.String - - - None - - - CurveName - - Specifies the curve name of elliptic curve cryptography, this value is valid when KeyType is EC. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - Specifies whether to add the key as a software-protected key or an HSM-protected key in the Key Vault service. Valid values are: HSM and Software. Note: To use HSM as your destination, you must have a key vault that supports HSMs. For more information about the service tiers and capabilities for Azure Key Vault, see the Azure Key Vault Pricing website (http://go.microsoft.com/fwlink/?linkid=512521). This parameter is required when you create a new key. If you import a key by using the KeyFilePath parameter, this parameter is optional: - If you do not specify this parameter, and this cmdlet imports a key that has .byok file name extension, it imports that key as an HSM-protected key. The cmdlet cannot import that key as software-protected key. - If you do not specify this parameter, and this cmdlet imports a key that has a .pfx file name extension, it imports the key as a software-protected key. - - - HSM - Software - HSM - Software - - System.String - - System.String - - - None - - - Disable - - Indicates that the key you are adding is set to an initial state of disabled. Any attempt to use the key will fail. Use this parameter if you are preloading keys that you intend to enable later. - - - System.Management.Automation.SwitchParameter - - - False - - - Expires - - Specifies the expiration time of the key in UTC, as a DateTime object, for the key that this cmdlet adds. If not specified, key will not expire. To obtain a DateTime object, use the Get-Date cmdlet. For more information, type `Get-Help Get-Date`. Please notice that expirys is ignored for Key Exchange Key used in BYOK process. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - KeyFilePassword - - Specifies a password for the imported file as a SecureString object. To obtain a SecureString object, use the ConvertTo-SecureString cmdlet. For more information, type `Get-Help ConvertTo-SecureString`. You must specify this password to import a file with a .pfx file name extension. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - KeyFilePath - - Specifies the path of a local file that contains key material that this cmdlet imports. The valid file name extensions are .byok and .pfx. - If the file is a .byok file, the key is automatically protected by HSMs after the import and you cannot override this default. - If the file is a .pfx file, the key is automatically protected by software after the import. To override this default, set the Destination parameter to HSM so that the key is HSM-protected. When you specify this parameter, the Destination parameter is optional. - - System.String - - System.String - - - None - - - KeyOps - - Specifies an array of operations that can be performed by using the key that this cmdlet adds. If you do not specify this parameter, all operations can be performed. The acceptable values for this parameter are a comma-separated list of key operations as defined by the JSON Web Key (JWK) specification (http://go.microsoft.com/fwlink/?LinkID=613300): - encrypt - - decrypt - - wrapKey - - unwrapKey - - sign - - verify - - import (for KEK only, see example 7) - - System.String[] - - System.String[] - - - None - - - KeyType - - Specifies the key type of this key. When importing BYOK keys, it defaults to 'RSA'. - - System.String - - System.String - - - None - - - NotBefore - - Specifies the time, as a DateTime object, before which the key cannot be used. This parameter uses UTC. To obtain a DateTime object, use the Get-Date cmdlet. If you do not specify this parameter, the key can be used immediately. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzKeyVaultKey - - Name - - Specifies the name of the key to add to the key vault. This cmdlet constructs the fully qualified domain name (FQDN) of a key based on the name that this parameter specifies, the name of the key vault, and your current environment. The name must be a string of 1 through 63 characters in length that contains only 0-9, a-z, A-Z, and - (the dash symbol). - - System.String - - System.String - - - None - - - CurveName - - Specifies the curve name of elliptic curve cryptography, this value is valid when KeyType is EC. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disable - - Indicates that the key you are adding is set to an initial state of disabled. Any attempt to use the key will fail. Use this parameter if you are preloading keys that you intend to enable later. - - - System.Management.Automation.SwitchParameter - - - False - - - Expires - - Specifies the expiration time of the key in UTC, as a DateTime object, for the key that this cmdlet adds. If not specified, key will not expire. To obtain a DateTime object, use the Get-Date cmdlet. For more information, type `Get-Help Get-Date`. Please notice that expirys is ignored for Key Exchange Key used in BYOK process. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Exportable - - Indicates if the private key can be exported. - - - System.Management.Automation.SwitchParameter - - - False - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Immutable - - Sets the release policy as immutable state. Once marked immutable, this flag cannot be reset and the policy cannot be changed under any circumstances. - - - System.Management.Automation.SwitchParameter - - - False - - - KeyOps - - Specifies an array of operations that can be performed by using the key that this cmdlet adds. If you do not specify this parameter, all operations can be performed. The acceptable values for this parameter are a comma-separated list of key operations as defined by the JSON Web Key (JWK) specification (http://go.microsoft.com/fwlink/?LinkID=613300): - encrypt - - decrypt - - wrapKey - - unwrapKey - - sign - - verify - - import (for KEK only, see example 7) - - System.String[] - - System.String[] - - - None - - - KeyType - - Specifies the key type of this key. When importing BYOK keys, it defaults to 'RSA'. - - System.String - - System.String - - - None - - - NotBefore - - Specifies the time, as a DateTime object, before which the key cannot be used. This parameter uses UTC. To obtain a DateTime object, use the Get-Date cmdlet. If you do not specify this parameter, the key can be used immediately. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - ReleasePolicyPath - - A path to a file containing JSON policy definition. The policy rules under which a key can be exported. - - System.String - - System.String - - - None - - - Size - - RSA key size, in bits. If not specified, the service will provide a safe default. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UseDefaultCVMPolicy - - Specifies to use default policy under which the key can be exported for CVM disk encryption. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzKeyVaultKey - - InputObject - - Vault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - Name - - Specifies the name of the key to add to the key vault. This cmdlet constructs the fully qualified domain name (FQDN) of a key based on the name that this parameter specifies, the name of the key vault, and your current environment. The name must be a string of 1 through 63 characters in length that contains only 0-9, a-z, A-Z, and - (the dash symbol). - - System.String - - System.String - - - None - - - CurveName - - Specifies the curve name of elliptic curve cryptography, this value is valid when KeyType is EC. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - Specifies whether to add the key as a software-protected key or an HSM-protected key in the Key Vault service. Valid values are: HSM and Software. Note: To use HSM as your destination, you must have a key vault that supports HSMs. For more information about the service tiers and capabilities for Azure Key Vault, see the Azure Key Vault Pricing website (http://go.microsoft.com/fwlink/?linkid=512521). This parameter is required when you create a new key. If you import a key by using the KeyFilePath parameter, this parameter is optional: - If you do not specify this parameter, and this cmdlet imports a key that has .byok file name extension, it imports that key as an HSM-protected key. The cmdlet cannot import that key as software-protected key. - If you do not specify this parameter, and this cmdlet imports a key that has a .pfx file name extension, it imports the key as a software-protected key. - - - HSM - Software - HSM - Software - - System.String - - System.String - - - None - - - Disable - - Indicates that the key you are adding is set to an initial state of disabled. Any attempt to use the key will fail. Use this parameter if you are preloading keys that you intend to enable later. - - - System.Management.Automation.SwitchParameter - - - False - - - Expires - - Specifies the expiration time of the key in UTC, as a DateTime object, for the key that this cmdlet adds. If not specified, key will not expire. To obtain a DateTime object, use the Get-Date cmdlet. For more information, type `Get-Help Get-Date`. Please notice that expirys is ignored for Key Exchange Key used in BYOK process. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Exportable - - Indicates if the private key can be exported. - - - System.Management.Automation.SwitchParameter - - - False - - - Immutable - - Sets the release policy as immutable state. Once marked immutable, this flag cannot be reset and the policy cannot be changed under any circumstances. - - - System.Management.Automation.SwitchParameter - - - False - - - KeyOps - - Specifies an array of operations that can be performed by using the key that this cmdlet adds. If you do not specify this parameter, all operations can be performed. The acceptable values for this parameter are a comma-separated list of key operations as defined by the JSON Web Key (JWK) specification (http://go.microsoft.com/fwlink/?LinkID=613300): - encrypt - - decrypt - - wrapKey - - unwrapKey - - sign - - verify - - import (for KEK only, see example 7) - - System.String[] - - System.String[] - - - None - - - KeyType - - Specifies the key type of this key. When importing BYOK keys, it defaults to 'RSA'. - - System.String - - System.String - - - None - - - NotBefore - - Specifies the time, as a DateTime object, before which the key cannot be used. This parameter uses UTC. To obtain a DateTime object, use the Get-Date cmdlet. If you do not specify this parameter, the key can be used immediately. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - ReleasePolicyPath - - A path to a file containing JSON policy definition. The policy rules under which a key can be exported. - - System.String - - System.String - - - None - - - Size - - RSA key size, in bits. If not specified, the service will provide a safe default. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UseDefaultCVMPolicy - - Specifies to use default policy under which the key can be exported for CVM disk encryption. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzKeyVaultKey - - InputObject - - Vault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - Name - - Specifies the name of the key to add to the key vault. This cmdlet constructs the fully qualified domain name (FQDN) of a key based on the name that this parameter specifies, the name of the key vault, and your current environment. The name must be a string of 1 through 63 characters in length that contains only 0-9, a-z, A-Z, and - (the dash symbol). - - System.String - - System.String - - - None - - - CurveName - - Specifies the curve name of elliptic curve cryptography, this value is valid when KeyType is EC. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - Specifies whether to add the key as a software-protected key or an HSM-protected key in the Key Vault service. Valid values are: HSM and Software. Note: To use HSM as your destination, you must have a key vault that supports HSMs. For more information about the service tiers and capabilities for Azure Key Vault, see the Azure Key Vault Pricing website (http://go.microsoft.com/fwlink/?linkid=512521). This parameter is required when you create a new key. If you import a key by using the KeyFilePath parameter, this parameter is optional: - If you do not specify this parameter, and this cmdlet imports a key that has .byok file name extension, it imports that key as an HSM-protected key. The cmdlet cannot import that key as software-protected key. - If you do not specify this parameter, and this cmdlet imports a key that has a .pfx file name extension, it imports the key as a software-protected key. - - - HSM - Software - HSM - Software - - System.String - - System.String - - - None - - - Disable - - Indicates that the key you are adding is set to an initial state of disabled. Any attempt to use the key will fail. Use this parameter if you are preloading keys that you intend to enable later. - - - System.Management.Automation.SwitchParameter - - - False - - - Expires - - Specifies the expiration time of the key in UTC, as a DateTime object, for the key that this cmdlet adds. If not specified, key will not expire. To obtain a DateTime object, use the Get-Date cmdlet. For more information, type `Get-Help Get-Date`. Please notice that expirys is ignored for Key Exchange Key used in BYOK process. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - KeyFilePassword - - Specifies a password for the imported file as a SecureString object. To obtain a SecureString object, use the ConvertTo-SecureString cmdlet. For more information, type `Get-Help ConvertTo-SecureString`. You must specify this password to import a file with a .pfx file name extension. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - KeyFilePath - - Specifies the path of a local file that contains key material that this cmdlet imports. The valid file name extensions are .byok and .pfx. - If the file is a .byok file, the key is automatically protected by HSMs after the import and you cannot override this default. - If the file is a .pfx file, the key is automatically protected by software after the import. To override this default, set the Destination parameter to HSM so that the key is HSM-protected. When you specify this parameter, the Destination parameter is optional. - - System.String - - System.String - - - None - - - KeyOps - - Specifies an array of operations that can be performed by using the key that this cmdlet adds. If you do not specify this parameter, all operations can be performed. The acceptable values for this parameter are a comma-separated list of key operations as defined by the JSON Web Key (JWK) specification (http://go.microsoft.com/fwlink/?LinkID=613300): - encrypt - - decrypt - - wrapKey - - unwrapKey - - sign - - verify - - import (for KEK only, see example 7) - - System.String[] - - System.String[] - - - None - - - KeyType - - Specifies the key type of this key. When importing BYOK keys, it defaults to 'RSA'. - - System.String - - System.String - - - None - - - NotBefore - - Specifies the time, as a DateTime object, before which the key cannot be used. This parameter uses UTC. To obtain a DateTime object, use the Get-Date cmdlet. If you do not specify this parameter, the key can be used immediately. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzKeyVaultKey - - HsmObject - - HSM object. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - Name - - Specifies the name of the key to add to the key vault. This cmdlet constructs the fully qualified domain name (FQDN) of a key based on the name that this parameter specifies, the name of the key vault, and your current environment. The name must be a string of 1 through 63 characters in length that contains only 0-9, a-z, A-Z, and - (the dash symbol). - - System.String - - System.String - - - None - - - CurveName - - Specifies the curve name of elliptic curve cryptography, this value is valid when KeyType is EC. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disable - - Indicates that the key you are adding is set to an initial state of disabled. Any attempt to use the key will fail. Use this parameter if you are preloading keys that you intend to enable later. - - - System.Management.Automation.SwitchParameter - - - False - - - Expires - - Specifies the expiration time of the key in UTC, as a DateTime object, for the key that this cmdlet adds. If not specified, key will not expire. To obtain a DateTime object, use the Get-Date cmdlet. For more information, type `Get-Help Get-Date`. Please notice that expirys is ignored for Key Exchange Key used in BYOK process. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Exportable - - Indicates if the private key can be exported. - - - System.Management.Automation.SwitchParameter - - - False - - - Immutable - - Sets the release policy as immutable state. Once marked immutable, this flag cannot be reset and the policy cannot be changed under any circumstances. - - - System.Management.Automation.SwitchParameter - - - False - - - KeyOps - - Specifies an array of operations that can be performed by using the key that this cmdlet adds. If you do not specify this parameter, all operations can be performed. The acceptable values for this parameter are a comma-separated list of key operations as defined by the JSON Web Key (JWK) specification (http://go.microsoft.com/fwlink/?LinkID=613300): - encrypt - - decrypt - - wrapKey - - unwrapKey - - sign - - verify - - import (for KEK only, see example 7) - - System.String[] - - System.String[] - - - None - - - KeyType - - Specifies the key type of this key. When importing BYOK keys, it defaults to 'RSA'. - - System.String - - System.String - - - None - - - NotBefore - - Specifies the time, as a DateTime object, before which the key cannot be used. This parameter uses UTC. To obtain a DateTime object, use the Get-Date cmdlet. If you do not specify this parameter, the key can be used immediately. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - ReleasePolicyPath - - A path to a file containing JSON policy definition. The policy rules under which a key can be exported. - - System.String - - System.String - - - None - - - Size - - RSA key size, in bits. If not specified, the service will provide a safe default. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UseDefaultCVMPolicy - - Specifies to use default policy under which the key can be exported for CVM disk encryption. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzKeyVaultKey - - ResourceId - - Vault Resource Id. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the key to add to the key vault. This cmdlet constructs the fully qualified domain name (FQDN) of a key based on the name that this parameter specifies, the name of the key vault, and your current environment. The name must be a string of 1 through 63 characters in length that contains only 0-9, a-z, A-Z, and - (the dash symbol). - - System.String - - System.String - - - None - - - CurveName - - Specifies the curve name of elliptic curve cryptography, this value is valid when KeyType is EC. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - Specifies whether to add the key as a software-protected key or an HSM-protected key in the Key Vault service. Valid values are: HSM and Software. Note: To use HSM as your destination, you must have a key vault that supports HSMs. For more information about the service tiers and capabilities for Azure Key Vault, see the Azure Key Vault Pricing website (http://go.microsoft.com/fwlink/?linkid=512521). This parameter is required when you create a new key. If you import a key by using the KeyFilePath parameter, this parameter is optional: - If you do not specify this parameter, and this cmdlet imports a key that has .byok file name extension, it imports that key as an HSM-protected key. The cmdlet cannot import that key as software-protected key. - If you do not specify this parameter, and this cmdlet imports a key that has a .pfx file name extension, it imports the key as a software-protected key. - - - HSM - Software - HSM - Software - - System.String - - System.String - - - None - - - Disable - - Indicates that the key you are adding is set to an initial state of disabled. Any attempt to use the key will fail. Use this parameter if you are preloading keys that you intend to enable later. - - - System.Management.Automation.SwitchParameter - - - False - - - Expires - - Specifies the expiration time of the key in UTC, as a DateTime object, for the key that this cmdlet adds. If not specified, key will not expire. To obtain a DateTime object, use the Get-Date cmdlet. For more information, type `Get-Help Get-Date`. Please notice that expirys is ignored for Key Exchange Key used in BYOK process. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Exportable - - Indicates if the private key can be exported. - - - System.Management.Automation.SwitchParameter - - - False - - - Immutable - - Sets the release policy as immutable state. Once marked immutable, this flag cannot be reset and the policy cannot be changed under any circumstances. - - - System.Management.Automation.SwitchParameter - - - False - - - KeyOps - - Specifies an array of operations that can be performed by using the key that this cmdlet adds. If you do not specify this parameter, all operations can be performed. The acceptable values for this parameter are a comma-separated list of key operations as defined by the JSON Web Key (JWK) specification (http://go.microsoft.com/fwlink/?LinkID=613300): - encrypt - - decrypt - - wrapKey - - unwrapKey - - sign - - verify - - import (for KEK only, see example 7) - - System.String[] - - System.String[] - - - None - - - KeyType - - Specifies the key type of this key. When importing BYOK keys, it defaults to 'RSA'. - - System.String - - System.String - - - None - - - NotBefore - - Specifies the time, as a DateTime object, before which the key cannot be used. This parameter uses UTC. To obtain a DateTime object, use the Get-Date cmdlet. If you do not specify this parameter, the key can be used immediately. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - ReleasePolicyPath - - A path to a file containing JSON policy definition. The policy rules under which a key can be exported. - - System.String - - System.String - - - None - - - Size - - RSA key size, in bits. If not specified, the service will provide a safe default. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UseDefaultCVMPolicy - - Specifies to use default policy under which the key can be exported for CVM disk encryption. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzKeyVaultKey - - ResourceId - - Vault Resource Id. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the key to add to the key vault. This cmdlet constructs the fully qualified domain name (FQDN) of a key based on the name that this parameter specifies, the name of the key vault, and your current environment. The name must be a string of 1 through 63 characters in length that contains only 0-9, a-z, A-Z, and - (the dash symbol). - - System.String - - System.String - - - None - - - CurveName - - Specifies the curve name of elliptic curve cryptography, this value is valid when KeyType is EC. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - Specifies whether to add the key as a software-protected key or an HSM-protected key in the Key Vault service. Valid values are: HSM and Software. Note: To use HSM as your destination, you must have a key vault that supports HSMs. For more information about the service tiers and capabilities for Azure Key Vault, see the Azure Key Vault Pricing website (http://go.microsoft.com/fwlink/?linkid=512521). This parameter is required when you create a new key. If you import a key by using the KeyFilePath parameter, this parameter is optional: - If you do not specify this parameter, and this cmdlet imports a key that has .byok file name extension, it imports that key as an HSM-protected key. The cmdlet cannot import that key as software-protected key. - If you do not specify this parameter, and this cmdlet imports a key that has a .pfx file name extension, it imports the key as a software-protected key. - - - HSM - Software - HSM - Software - - System.String - - System.String - - - None - - - Disable - - Indicates that the key you are adding is set to an initial state of disabled. Any attempt to use the key will fail. Use this parameter if you are preloading keys that you intend to enable later. - - - System.Management.Automation.SwitchParameter - - - False - - - Expires - - Specifies the expiration time of the key in UTC, as a DateTime object, for the key that this cmdlet adds. If not specified, key will not expire. To obtain a DateTime object, use the Get-Date cmdlet. For more information, type `Get-Help Get-Date`. Please notice that expirys is ignored for Key Exchange Key used in BYOK process. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - KeyFilePassword - - Specifies a password for the imported file as a SecureString object. To obtain a SecureString object, use the ConvertTo-SecureString cmdlet. For more information, type `Get-Help ConvertTo-SecureString`. You must specify this password to import a file with a .pfx file name extension. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - KeyFilePath - - Specifies the path of a local file that contains key material that this cmdlet imports. The valid file name extensions are .byok and .pfx. - If the file is a .byok file, the key is automatically protected by HSMs after the import and you cannot override this default. - If the file is a .pfx file, the key is automatically protected by software after the import. To override this default, set the Destination parameter to HSM so that the key is HSM-protected. When you specify this parameter, the Destination parameter is optional. - - System.String - - System.String - - - None - - - KeyOps - - Specifies an array of operations that can be performed by using the key that this cmdlet adds. If you do not specify this parameter, all operations can be performed. The acceptable values for this parameter are a comma-separated list of key operations as defined by the JSON Web Key (JWK) specification (http://go.microsoft.com/fwlink/?LinkID=613300): - encrypt - - decrypt - - wrapKey - - unwrapKey - - sign - - verify - - import (for KEK only, see example 7) - - System.String[] - - System.String[] - - - None - - - KeyType - - Specifies the key type of this key. When importing BYOK keys, it defaults to 'RSA'. - - System.String - - System.String - - - None - - - NotBefore - - Specifies the time, as a DateTime object, before which the key cannot be used. This parameter uses UTC. To obtain a DateTime object, use the Get-Date cmdlet. If you do not specify this parameter, the key can be used immediately. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzKeyVaultKey - - Name - - Specifies the name of the key to add to the key vault. This cmdlet constructs the fully qualified domain name (FQDN) of a key based on the name that this parameter specifies, the name of the key vault, and your current environment. The name must be a string of 1 through 63 characters in length that contains only 0-9, a-z, A-Z, and - (the dash symbol). - - System.String - - System.String - - - None - - - CurveName - - Specifies the curve name of elliptic curve cryptography, this value is valid when KeyType is EC. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disable - - Indicates that the key you are adding is set to an initial state of disabled. Any attempt to use the key will fail. Use this parameter if you are preloading keys that you intend to enable later. - - - System.Management.Automation.SwitchParameter - - - False - - - Expires - - Specifies the expiration time of the key in UTC, as a DateTime object, for the key that this cmdlet adds. If not specified, key will not expire. To obtain a DateTime object, use the Get-Date cmdlet. For more information, type `Get-Help Get-Date`. Please notice that expirys is ignored for Key Exchange Key used in BYOK process. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Exportable - - Indicates if the private key can be exported. - - - System.Management.Automation.SwitchParameter - - - False - - - HsmResourceId - - Resource ID of the HSM. - - System.String - - System.String - - - None - - - Immutable - - Sets the release policy as immutable state. Once marked immutable, this flag cannot be reset and the policy cannot be changed under any circumstances. - - - System.Management.Automation.SwitchParameter - - - False - - - KeyOps - - Specifies an array of operations that can be performed by using the key that this cmdlet adds. If you do not specify this parameter, all operations can be performed. The acceptable values for this parameter are a comma-separated list of key operations as defined by the JSON Web Key (JWK) specification (http://go.microsoft.com/fwlink/?LinkID=613300): - encrypt - - decrypt - - wrapKey - - unwrapKey - - sign - - verify - - import (for KEK only, see example 7) - - System.String[] - - System.String[] - - - None - - - KeyType - - Specifies the key type of this key. When importing BYOK keys, it defaults to 'RSA'. - - System.String - - System.String - - - None - - - NotBefore - - Specifies the time, as a DateTime object, before which the key cannot be used. This parameter uses UTC. To obtain a DateTime object, use the Get-Date cmdlet. If you do not specify this parameter, the key can be used immediately. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - ReleasePolicyPath - - A path to a file containing JSON policy definition. The policy rules under which a key can be exported. - - System.String - - System.String - - - None - - - Size - - RSA key size, in bits. If not specified, the service will provide a safe default. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UseDefaultCVMPolicy - - Specifies to use default policy under which the key can be exported for CVM disk encryption. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzKeyVaultKey - - Name - - Specifies the name of the key to add to the key vault. This cmdlet constructs the fully qualified domain name (FQDN) of a key based on the name that this parameter specifies, the name of the key vault, and your current environment. The name must be a string of 1 through 63 characters in length that contains only 0-9, a-z, A-Z, and - (the dash symbol). - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disable - - Indicates that the key you are adding is set to an initial state of disabled. Any attempt to use the key will fail. Use this parameter if you are preloading keys that you intend to enable later. - - - System.Management.Automation.SwitchParameter - - - False - - - Expires - - Specifies the expiration time of the key in UTC, as a DateTime object, for the key that this cmdlet adds. If not specified, key will not expire. To obtain a DateTime object, use the Get-Date cmdlet. For more information, type `Get-Help Get-Date`. Please notice that expirys is ignored for Key Exchange Key used in BYOK process. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - KeyFilePassword - - Specifies a password for the imported file as a SecureString object. To obtain a SecureString object, use the ConvertTo-SecureString cmdlet. For more information, type `Get-Help ConvertTo-SecureString`. You must specify this password to import a file with a .pfx file name extension. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - KeyFilePath - - Specifies the path of a local file that contains key material that this cmdlet imports. The valid file name extensions are .byok and .pfx. - If the file is a .byok file, the key is automatically protected by HSMs after the import and you cannot override this default. - If the file is a .pfx file, the key is automatically protected by software after the import. To override this default, set the Destination parameter to HSM so that the key is HSM-protected. When you specify this parameter, the Destination parameter is optional. - - System.String - - System.String - - - None - - - KeyOps - - Specifies an array of operations that can be performed by using the key that this cmdlet adds. If you do not specify this parameter, all operations can be performed. The acceptable values for this parameter are a comma-separated list of key operations as defined by the JSON Web Key (JWK) specification (http://go.microsoft.com/fwlink/?LinkID=613300): - encrypt - - decrypt - - wrapKey - - unwrapKey - - sign - - verify - - import (for KEK only, see example 7) - - System.String[] - - System.String[] - - - None - - - NotBefore - - Specifies the time, as a DateTime object, before which the key cannot be used. This parameter uses UTC. To obtain a DateTime object, use the Get-Date cmdlet. If you do not specify this parameter, the key can be used immediately. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzKeyVaultKey - - HsmObject - - HSM object. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - Name - - Specifies the name of the key to add to the key vault. This cmdlet constructs the fully qualified domain name (FQDN) of a key based on the name that this parameter specifies, the name of the key vault, and your current environment. The name must be a string of 1 through 63 characters in length that contains only 0-9, a-z, A-Z, and - (the dash symbol). - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disable - - Indicates that the key you are adding is set to an initial state of disabled. Any attempt to use the key will fail. Use this parameter if you are preloading keys that you intend to enable later. - - - System.Management.Automation.SwitchParameter - - - False - - - Expires - - Specifies the expiration time of the key in UTC, as a DateTime object, for the key that this cmdlet adds. If not specified, key will not expire. To obtain a DateTime object, use the Get-Date cmdlet. For more information, type `Get-Help Get-Date`. Please notice that expirys is ignored for Key Exchange Key used in BYOK process. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - KeyFilePassword - - Specifies a password for the imported file as a SecureString object. To obtain a SecureString object, use the ConvertTo-SecureString cmdlet. For more information, type `Get-Help ConvertTo-SecureString`. You must specify this password to import a file with a .pfx file name extension. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - KeyFilePath - - Specifies the path of a local file that contains key material that this cmdlet imports. The valid file name extensions are .byok and .pfx. - If the file is a .byok file, the key is automatically protected by HSMs after the import and you cannot override this default. - If the file is a .pfx file, the key is automatically protected by software after the import. To override this default, set the Destination parameter to HSM so that the key is HSM-protected. When you specify this parameter, the Destination parameter is optional. - - System.String - - System.String - - - None - - - KeyOps - - Specifies an array of operations that can be performed by using the key that this cmdlet adds. If you do not specify this parameter, all operations can be performed. The acceptable values for this parameter are a comma-separated list of key operations as defined by the JSON Web Key (JWK) specification (http://go.microsoft.com/fwlink/?LinkID=613300): - encrypt - - decrypt - - wrapKey - - unwrapKey - - sign - - verify - - import (for KEK only, see example 7) - - System.String[] - - System.String[] - - - None - - - NotBefore - - Specifies the time, as a DateTime object, before which the key cannot be used. This parameter uses UTC. To obtain a DateTime object, use the Get-Date cmdlet. If you do not specify this parameter, the key can be used immediately. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzKeyVaultKey - - Name - - Specifies the name of the key to add to the key vault. This cmdlet constructs the fully qualified domain name (FQDN) of a key based on the name that this parameter specifies, the name of the key vault, and your current environment. The name must be a string of 1 through 63 characters in length that contains only 0-9, a-z, A-Z, and - (the dash symbol). - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disable - - Indicates that the key you are adding is set to an initial state of disabled. Any attempt to use the key will fail. Use this parameter if you are preloading keys that you intend to enable later. - - - System.Management.Automation.SwitchParameter - - - False - - - Expires - - Specifies the expiration time of the key in UTC, as a DateTime object, for the key that this cmdlet adds. If not specified, key will not expire. To obtain a DateTime object, use the Get-Date cmdlet. For more information, type `Get-Help Get-Date`. Please notice that expirys is ignored for Key Exchange Key used in BYOK process. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - HsmResourceId - - Resource ID of the HSM. - - System.String - - System.String - - - None - - - KeyFilePassword - - Specifies a password for the imported file as a SecureString object. To obtain a SecureString object, use the ConvertTo-SecureString cmdlet. For more information, type `Get-Help ConvertTo-SecureString`. You must specify this password to import a file with a .pfx file name extension. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - KeyFilePath - - Specifies the path of a local file that contains key material that this cmdlet imports. The valid file name extensions are .byok and .pfx. - If the file is a .byok file, the key is automatically protected by HSMs after the import and you cannot override this default. - If the file is a .pfx file, the key is automatically protected by software after the import. To override this default, set the Destination parameter to HSM so that the key is HSM-protected. When you specify this parameter, the Destination parameter is optional. - - System.String - - System.String - - - None - - - KeyOps - - Specifies an array of operations that can be performed by using the key that this cmdlet adds. If you do not specify this parameter, all operations can be performed. The acceptable values for this parameter are a comma-separated list of key operations as defined by the JSON Web Key (JWK) specification (http://go.microsoft.com/fwlink/?LinkID=613300): - encrypt - - decrypt - - wrapKey - - unwrapKey - - sign - - verify - - import (for KEK only, see example 7) - - System.String[] - - System.String[] - - - None - - - NotBefore - - Specifies the time, as a DateTime object, before which the key cannot be used. This parameter uses UTC. To obtain a DateTime object, use the Get-Date cmdlet. If you do not specify this parameter, the key can be used immediately. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - CurveName - - Specifies the curve name of elliptic curve cryptography, this value is valid when KeyType is EC. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - Specifies whether to add the key as a software-protected key or an HSM-protected key in the Key Vault service. Valid values are: HSM and Software. Note: To use HSM as your destination, you must have a key vault that supports HSMs. For more information about the service tiers and capabilities for Azure Key Vault, see the Azure Key Vault Pricing website (http://go.microsoft.com/fwlink/?linkid=512521). This parameter is required when you create a new key. If you import a key by using the KeyFilePath parameter, this parameter is optional: - If you do not specify this parameter, and this cmdlet imports a key that has .byok file name extension, it imports that key as an HSM-protected key. The cmdlet cannot import that key as software-protected key. - If you do not specify this parameter, and this cmdlet imports a key that has a .pfx file name extension, it imports the key as a software-protected key. - - System.String - - System.String - - - None - - - Disable - - Indicates that the key you are adding is set to an initial state of disabled. Any attempt to use the key will fail. Use this parameter if you are preloading keys that you intend to enable later. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Expires - - Specifies the expiration time of the key in UTC, as a DateTime object, for the key that this cmdlet adds. If not specified, key will not expire. To obtain a DateTime object, use the Get-Date cmdlet. For more information, type `Get-Help Get-Date`. Please notice that expirys is ignored for Key Exchange Key used in BYOK process. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Exportable - - Indicates if the private key can be exported. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - HsmObject - - HSM object. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - HsmResourceId - - Resource ID of the HSM. - - System.String - - System.String - - - None - - - Immutable - - Sets the release policy as immutable state. Once marked immutable, this flag cannot be reset and the policy cannot be changed under any circumstances. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Vault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - KeyFilePassword - - Specifies a password for the imported file as a SecureString object. To obtain a SecureString object, use the ConvertTo-SecureString cmdlet. For more information, type `Get-Help ConvertTo-SecureString`. You must specify this password to import a file with a .pfx file name extension. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - KeyFilePath - - Specifies the path of a local file that contains key material that this cmdlet imports. The valid file name extensions are .byok and .pfx. - If the file is a .byok file, the key is automatically protected by HSMs after the import and you cannot override this default. - If the file is a .pfx file, the key is automatically protected by software after the import. To override this default, set the Destination parameter to HSM so that the key is HSM-protected. When you specify this parameter, the Destination parameter is optional. - - System.String - - System.String - - - None - - - KeyOps - - Specifies an array of operations that can be performed by using the key that this cmdlet adds. If you do not specify this parameter, all operations can be performed. The acceptable values for this parameter are a comma-separated list of key operations as defined by the JSON Web Key (JWK) specification (http://go.microsoft.com/fwlink/?LinkID=613300): - encrypt - - decrypt - - wrapKey - - unwrapKey - - sign - - verify - - import (for KEK only, see example 7) - - System.String[] - - System.String[] - - - None - - - KeyType - - Specifies the key type of this key. When importing BYOK keys, it defaults to 'RSA'. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the key to add to the key vault. This cmdlet constructs the fully qualified domain name (FQDN) of a key based on the name that this parameter specifies, the name of the key vault, and your current environment. The name must be a string of 1 through 63 characters in length that contains only 0-9, a-z, A-Z, and - (the dash symbol). - - System.String - - System.String - - - None - - - NotBefore - - Specifies the time, as a DateTime object, before which the key cannot be used. This parameter uses UTC. To obtain a DateTime object, use the Get-Date cmdlet. If you do not specify this parameter, the key can be used immediately. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - ReleasePolicyPath - - A path to a file containing JSON policy definition. The policy rules under which a key can be exported. - - System.String - - System.String - - - None - - - ResourceId - - Vault Resource Id. - - System.String - - System.String - - - None - - - Size - - RSA key size, in bits. If not specified, the service will provide a safe default. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UseDefaultCVMPolicy - - Specifies to use default policy under which the key can be exported for CVM disk encryption. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - VaultName - - Specifies the name of the key vault to which this cmdlet adds the key. This cmdlet constructs the FQDN of a key vault based on the name that this parameter specifies and your current environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKey - - - - - - - - - - - - - - ------------------- Example 1: Create a key ------------------- - Add-AzKeyVaultKey -VaultName 'contoso' -Name 'ITSoftware' -Destination 'Software' - -Vault/HSM Name : contoso -Name : ITSoftware -Key Type : RSA -Key Size : 2048 -Curve Name : -Version : 67da57e9cadf48a2ad8d366b115843ab -Id : https://contoso.vault.azure.net:443/keys/ITSoftware/67da57e9cadf48a2ad8d366b115843ab -Enabled : True -Expires : -Not Before : -Created : 5/21/2018 11:10:58 PM -Updated : 5/21/2018 11:10:58 PM -Purge Disabled : False -Tags : - - This command creates a software-protected key named ITSoftware in the key vault named Contoso. - - - - - - ----------------- Example 2: Create an EC key ----------------- - Add-AzKeyVaultKey -VaultName test-kv -Name test-key -Destination Software -KeyType EC - -Vault/HSM Name : test-kv -Name : test-key -Key Type : EC -Key Size : -Curve Name : P-256 -Version : 4da74af2b4fd47d6b1aa0b05c9a2ed13 -Id : https://test-kv.vault.azure.net:443/keys/test-key/4da74af2b4fd47d6b1aa0b05c9a2ed13 -Enabled : True -Expires : -Not Before : -Created : 8/24/2021 6:38:34 AM -Updated : 8/24/2021 6:38:34 AM -Recovery Level : Recoverable+Purgeable -Tags : - - This command creates a software-protected EC key named test-key in the key vault named test-kv. Its curve name is P-256 by default. - - - - - - ------------ Example 3: Create an HSM-protected key ------------ - Add-AzKeyVaultKey -VaultName 'contoso' -Name 'ITHsm' -Destination 'HSM' - -Vault Name : contoso -Name : ITHsm -Version : 67da57e9cadf48a2ad8d366b115843ab -Id : https://contoso.vault.azure.net:443/keys/ITSoftware/67da57e9cadf48a2ad8d366b115843ab -Enabled : True -Expires : -Not Before : -Created : 5/21/2018 11:10:58 PM -Updated : 5/21/2018 11:10:58 PM -Purge Disabled : False -Tags : - - This command creates an HSM-protected key in the key vault named Contoso. - - - - - - ------- Example 4: Create a key with non-default values ------- - $KeyOperations = 'decrypt', 'verify' -$Expires = (Get-Date).AddYears(2).ToUniversalTime() -$NotBefore = (Get-Date).ToUniversalTime() -$Tags = @{'Severity' = 'high'; 'Accounting' = "true"} -Add-AzKeyVaultKey -VaultName 'contoso' -Name 'ITHsmNonDefault' -Destination 'HSM' -Expires $Expires -NotBefore $NotBefore -KeyOps $KeyOperations -Disable -Tag $Tags - -Vault/HSM Name : contoso -Name : ITHsmNonDefault -Key Type : RSA -Key Size : 2048 -Version : 929bfc14db84439b823ffd1bedadaf5f -Id : https://contoso.vault.azure.net:443/keys/ITHsmNonDefault/929bfc14db84439b823ffd1bedadaf5f -Enabled : False -Expires : 5/21/2020 11:12:43 PM -Not Before : 5/21/2018 11:12:50 PM -Created : 5/21/2018 11:13:17 PM -Updated : 5/21/2018 11:13:17 PM -Purge Disabled : False -Tags : Name Value - Severity high - Accounting true - - The first command stores the values decrypt and verify in the $KeyOperations variable. The second command creates a DateTime object, defined in UTC, by using the Get-Date cmdlet. That object specifies a time two years in the future. The command stores that date in the $Expires variable. For more information, type `Get-Help Get-Date`. The third command creates a DateTime object by using the Get-Date cmdlet. That object specifies current UTC time. The command stores that date in the $NotBefore variable. The final command creates a key named ITHsmNonDefault that is an HSM-protected key. The command specifies values for allowed key operations stored $KeyOperations. The command specifies times for the Expires and NotBefore parameters created in the previous commands, and tags for high severity and IT. The new key is disabled. You can enable it by using the Set-AzKeyVaultKey cmdlet. - - - - - - ------------ Example 5: Import an HSM-protected key ------------ - Add-AzKeyVaultKey -VaultName 'contoso' -Name 'ITByok' -KeyFilePath 'C:\Contoso\ITByok.byok' -Destination 'HSM' - -Vault Name : contoso -Name : ITByok -Version : 67da57e9cadf48a2ad8d366b115843ab -Id : https://contoso.vault.azure.net:443/keys/ITByok/67da57e9cadf48a2ad8d366b115843ab -Enabled : True -Expires : -Not Before : -Created : 5/21/2018 11:10:58 PM -Updated : 5/21/2018 11:10:58 PM -Purge Disabled : False -Tags : - - This command imports the key named ITByok from the location that the KeyFilePath parameter specifies. The imported key is an HSM-protected key. To import a key from your own hardware security module, you must first generate a BYOK package (a file with a .byok file name extension) by using the Azure Key Vault BYOK toolset. For more information, see How to Generate and Transfer HSM-Protected Keys for Azure Key Vault (http://go.microsoft.com/fwlink/?LinkId=522252). - - - - - - ---------- Example 6: Import a software-protected key ---------- - $Password = ConvertTo-SecureString -String "****" -AsPlainText -Force -Add-AzKeyVaultKey -VaultName 'contoso' -Name 'ITPfx' -KeyFilePath 'C:\Contoso\ITPfx.pfx' -KeyFilePassword $Password - -Vault Name : contoso -Name : ITPfx -Version : 67da57e9cadf48a2ad8d366b115843ab -Id : https://contoso.vault.azure.net:443/keys/ITPfx/67da57e9cadf48a2ad8d366b115843ab -Enabled : True -Expires : -Not Before : -Created : 5/21/2018 11:10:58 PM -Updated : 5/21/2018 11:10:58 PM -Purge Disabled : False -Tags : - - The first command converts a string into a secure string by using the ConvertTo-SecureString cmdlet, and then stores that string in the $Password variable. For more information, type `Get-Help ConvertTo-SecureString`. The second command creates a software password in the Contoso key vault. The command specifies the location for the key and the password stored in $Password. - - - - - - -------- Example 7: Import a key and assign attributes -------- - $Password = ConvertTo-SecureString -String "****" -AsPlainText -Force -$Expires = (Get-Date).AddYears(2).ToUniversalTime() -$Tags = @{ 'Severity' = 'high'; 'Accounting' = "true" } -Add-AzKeyVaultKey -VaultName 'contoso' -Name 'ITPfxToHSM' -Destination 'HSM' -KeyFilePath 'C:\Contoso\ITPfx.pfx' -KeyFilePassword $Password -Expires $Expires -Tag $Tags - -Vault Name : contoso -Name : ITPfxToHSM -Version : 929bfc14db84439b823ffd1bedadaf5f -Id : https://contoso.vault.azure.net:443/keys/ITPfxToHSM/929bfc14db84439b823ffd1bedadaf5f -Enabled : True -Expires : 5/21/2020 11:12:43 PM -Not Before : -Created : 5/21/2018 11:13:17 PM -Updated : 5/21/2018 11:13:17 PM -Purge Disabled : False -Tags : Name Value - Severity high - Accounting true - - The first command converts a string into a secure string by using the ConvertTo-SecureString cmdlet, and then stores that string in the $Password variable. The second command creates a DateTime object by using the Get-Date cmdlet, and then stores that object in the $Expires variable. The third command creates the $tags variable to set tags for high severity and IT. The final command imports a key as an HSM key from the specified location. The command specifies the expiration time stored in $Expires and password stored in $Password, and applies the tags stored in $tags. - - - - - - Example 8: Generate a Key Exchange Key (KEK) for "bring your own key" (BYOK) feature - $key = Add-AzKeyVaultKey -VaultName $vaultName -Name $keyName -Destination HSM -Size 2048 -KeyOps "import" - - Generates a key (referred to as a Key Exchange Key (KEK)). The KEK must be an RSA-HSM key that has only the import key operation. Only Key Vault Premium SKU supports RSA-HSM keys. For more details please refer to https://learn.microsoft.com/azure/key-vault/keys/hsm-protected-keys - - - - - - -------- Example 9: Create a secure key in managed hsm -------- - <# release_policy_template.json -{ - "anyOf": [ - { - "allOf": [ - { - "claim": "<claim name>", - "equals": "<value to match>" - } - ], - "authority": "<issuer>" - } - ], - "version": "1.0.0" -} -#> -Add-AzKeyVaultKey -HsmName testmhsm -Name test-key -KeyType RSA -Exportable -ReleasePolicyPath release_policy.json - -Vault/HSM Name : testmhsm -Name : test-key -Key Type : RSA -Key Size : 2048 -Curve Name : -Version : ed6b026bf0a605042006635713d33ef6 -Id : https://testmhsm.managedhsm.azure.net:443/keys/test-key/ed6b026bf0a605042006635713d33ef6 -Enabled : True -Expires : -Not Before : -Created : 6/2/2022 7:14:37 AM -Updated : 6/2/2022 7:14:37 AM -Recovery Level : Recoverable+Purgeable -Release Policy : - Content Type : application/json; charset=utf-8 - Policy Content : {"anyOf":[{"allOf":[{"claim":"x-ms-sgx-is-debuggable","equals":"true"}],"authority":"htt - ps://sharedeus.eus.attest.azure.net/"}],"version":"1.0.0"} - Immutable : False - - -Tags : - - Create a secure key in managed hsm named testmhsm. Its name is test-key and type is RSA. - - - - - - - Example 10: Add a key for a Confidential VM to a key vault. - - New-AzKeyVault -Name $keyVaultName -Location $location -ResourceGroupName $resourceGroupName -Sku Premium -EnablePurgeProtection -EnabledForDiskEncryption; -$cvmAgent = Get-AzADServicePrincipal -ApplicationId '00001111-aaaa-2222-bbbb-3333cccc4444'; -Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -ResourceGroupName $resourceGroupName -ObjectId $cvmAgent.id -PermissionsToKeys get,release; - -$keySize = 3072; -Add-AzKeyVaultKey -VaultName $keyVaultName -Name $keyName -Size $keySize -KeyOps wrapKey,unwrapKey -KeyType RSA -Destination HSM -Exportable -UseDefaultCVMPolicy; - -Vault/HSM Name : <Vault Name> -Name : <Key Name> -Key Type : RSA -Key Size : 3072 -Curve Name : -Version : <Version> -Id : <Id> -Enabled : True -Expires : -Not Before : -Created : 9/9/2022 8:36:00 PM -Updated : 9/9/2022 8:36:00 PM -Recovery Level : Recoverable -Release Policy : - Content Type : application/json; charset=utf-8 - Policy Content : <Policy Content> - Immutable : False -Tags : - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/add-azkeyvaultkey - - - Backup-AzKeyVaultKey - - - - Get-AzKeyVaultKey - - - - Remove-AzKeyVaultKey - - - - - - - Add-AzKeyVaultManagedStorageAccount - Add - AzKeyVaultManagedStorageAccount - - Adds an existing Azure Storage Account to the specified key vault for its keys to be managed by the Key Vault service. - - - - Sets up an existing Azure Storage Account with Key Vault for Storage Account keys to be managed by Key Vault. The Storage Account must already exist. The Storage Keys are never exposed to caller. Key Vault auto regenerates and switches the active key based on the regeneration period. See Azure Key Vault managed storage account - PowerShell (https://learn.microsoft.com/azure/key-vault/key-vault-overview-storage-keys-powershell)for an overview of this feature. - - - - Add-AzKeyVaultManagedStorageAccount - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - AccountName - - Key Vault managed storage account name. Cmdlet constructs the FQDN of a managed storage account name from vault name, currently selected environment and manged storage account name. - - System.String - - System.String - - - None - - - AccountResourceId - - Azure resource id of the storage account. - - System.String - - System.String - - - None - - - ActiveKeyName - - Name of the storage account key that must be used for generating sas tokens. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disable - - Disables the use of managed storage account's key for generation of sas tokens. - - - System.Management.Automation.SwitchParameter - - - False - - - DisableAutoRegenerateKey - - Auto regenerate key. If true, then the managed storage account's inactive key gets auto regenerated and becomes the new active key after the regeneration period. If false, then the keys of managed storage account are not auto regenerated. - - - System.Management.Automation.SwitchParameter - - - False - - - RegenerationPeriod - - Regeneration period. If auto regenerate key is enabled, this value specifies the timespan after which managed storage account's inactive keygets auto regenerated and becomes the new active key. - - System.Nullable`1[System.TimeSpan] - - System.Nullable`1[System.TimeSpan] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AccountName - - Key Vault managed storage account name. Cmdlet constructs the FQDN of a managed storage account name from vault name, currently selected environment and manged storage account name. - - System.String - - System.String - - - None - - - AccountResourceId - - Azure resource id of the storage account. - - System.String - - System.String - - - None - - - ActiveKeyName - - Name of the storage account key that must be used for generating sas tokens. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disable - - Disables the use of managed storage account's key for generation of sas tokens. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DisableAutoRegenerateKey - - Auto regenerate key. If true, then the managed storage account's inactive key gets auto regenerated and becomes the new active key after the regeneration period. If false, then the keys of managed storage account are not auto regenerated. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - RegenerationPeriod - - Regeneration period. If auto regenerate key is enabled, this value specifies the timespan after which managed storage account's inactive keygets auto regenerated and becomes the new active key. - - System.Nullable`1[System.TimeSpan] - - System.Nullable`1[System.TimeSpan] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - System.Nullable`1[[System.TimeSpan, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]] - - - - - - - - System.Collections.Hashtable - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccount - - - - - - - - - - - - - - Example 1: Set an Azure Storage Account with Key Vault to manage its keys - $storage = Get-AzStorageAccount -ResourceGroupName "mystorageResourceGroup" -StorageAccountName "mystorage" -$servicePrincipal = Get-AzADServicePrincipal -ServicePrincipalName cfa8b339-82a2-471a-a3c9-0fc0be7a4093 -New-AzRoleAssignment -ObjectId $servicePrincipal.Id -RoleDefinitionName 'Storage Account Key Operator Service Role' -Scope $storage.Id -$userPrincipalId = $(Get-AzADUser -SearchString "developer@contoso.com").Id -Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -ObjectId $userPrincipalId -PermissionsToStorage get, set -$regenerationPeriod = [System.Timespan]::FromDays(90) -Add-AzKeyVaultManagedStorageAccount -VaultName 'myvault' -AccountName 'mystorageaccount' -AccountResourceId '/subscriptions/<subscription id>/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/mystorageaccount' -ActiveKeyName 'key1' -RegenerationPeriod $regenerationPeriod - -Id : https://myvault.vault.azure.net:443/storage/mystorageaccount -Vault Name : myvault -AccountName : mystorageaccount -Account Resource Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers/Microsoft.St - orage/storageAccounts/mystorageaccount -Active Key Name : key1 -Auto Regenerate Key : True -Regeneration Period : 90.00:00:00 -Enabled : True -Created : 5/21/2018 11:55:58 PM -Updated : 5/21/2018 11:55:58 PM -Tags : - - Sets a Storage Account with Key Vault for its keys to be managed by Key Vault. The active key set is 'key1'. This key will be used to generate sas tokens. Key Vault will regenerate 'key2' key after the regeneration period from the time of this command and set it as the active key. This auto regeneration process will continue between 'key1' and 'key2' with a gap of 90 days. - - - - - - Example 2: Set a Classic Azure Storage Account with Key Vault to manage its keys - $regenerationPeriod = [System.Timespan]::FromDays(90) -Add-AzKeyVaultManagedStorageAccount -VaultName 'myvault' -AccountName 'mystorageaccount' -AccountResourceId '/subscriptions/<subscription id>/resourceGroups/myresourcegroup/providers/Microsoft.ClassicStorage/storageAccounts/mystorageaccount' -ActiveKeyName 'Primary' -RegenerationPeriod $regenerationPeriod - -Id : https://myvault.vault.azure.net:443/storage/mystorageaccount -Vault Name : myvault -AccountName : mystorageaccount -Account Resource Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myvault/providers/Microsoft.Cl - assicStorage/storageAccounts/mystorageaccount -Active Key Name : Primary -Auto Regenerate Key : True -Regeneration Period : 90.00:00:00 -Enabled : True -Created : 5/21/2018 11:55:58 PM -Updated : 5/21/2018 11:55:58 PM -Tags : - - Sets a Classic Storage Account with Key Vault for its keys to be managed by Key Vault. The active key set is 'Primary'. This key will be used to generate sas tokens. Key Vault will regenerate 'Secondary' key after the regeneration period from the time of this command and set it as the active key. This auto regeneration process will continue between 'Primary' and 'Secondary' with a gap of 90 days. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/add-azkeyvaultmanagedstorageaccount - - - Az.KeyVault - - - - - - - Add-AzKeyVaultNetworkRule - Add - AzKeyVaultNetworkRule - - Adds a rule meant to restrict access to a key vault based on the client's internet address. - - - - The Add-AzKeyVaultNetworkRule cmdlet grants or restricts access to a key vault to a set of caller designated by their IP addresses or the virtual network to which they belong. The rule has the potential to restrict access for other users, applications, or security groups which have been granted permissions via the access policy. - Please note that any IP range inside `10.0.0.0-10.255.255.255` (private IP addresses) cannot be used to add network rules. - - - - Add-AzKeyVaultNetworkRule - - InputObject - - KeyVault object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IpAddressRange - - Specifies allowed network IP address range of network rule. - - System.String[] - - System.String[] - - - None - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns the updated key vault object. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - VirtualNetworkResourceId - - Specifies allowed virtual network resource identifier of network rule. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzKeyVaultNetworkRule - - VaultName - - Specifies the name of a key vault whose network rule is being modified. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the resource group associated with the key vault whose network rule is being modified. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IpAddressRange - - Specifies allowed network IP address range of network rule. - - System.String[] - - System.String[] - - - None - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns the updated key vault object. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - VirtualNetworkResourceId - - Specifies allowed virtual network resource identifier of network rule. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzKeyVaultNetworkRule - - ResourceId - - KeyVault Resource Id - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IpAddressRange - - Specifies allowed network IP address range of network rule. - - System.String[] - - System.String[] - - - None - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns the updated key vault object. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - VirtualNetworkResourceId - - Specifies allowed virtual network resource identifier of network rule. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - KeyVault object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - IpAddressRange - - Specifies allowed network IP address range of network rule. - - System.String[] - - System.String[] - - - None - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns the updated key vault object. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Specifies the name of the resource group associated with the key vault whose network rule is being modified. - - System.String - - System.String - - - None - - - ResourceId - - KeyVault Resource Id - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - VaultName - - Specifies the name of a key vault whose network rule is being modified. - - System.String - - System.String - - - None - - - VirtualNetworkResourceId - - Specifies allowed virtual network resource identifier of network rule. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - $frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix "10.0.1.0/24" -ServiceEndpoint Microsoft.KeyVault -$virtualNetwork = New-AzVirtualNetwork -Name myVNet -ResourceGroupName myRG -Location westus -AddressPrefix "10.0.0.0/16" -Subnet $frontendSubnet -$myNetworkResId = (Get-AzVirtualNetwork -Name myVNet -ResourceGroupName myRG).Subnets[0].Id -Add-AzKeyVaultNetworkRule -VaultName myvault -IpAddressRange "124.56.78.0/24" -VirtualNetworkResourceId $myNetworkResId -PassThru - -Vault Name : myvault -Resource Group Name : myRG -Location : westus -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myRG/providers - /Microsoft.KeyVault/vaults/myvault -Vault URI : https://myvault.vault.azure.net/ -Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx -SKU : Standard -Enabled For Deployment? : True -Enabled For Template Deployment? : True -Enabled For Disk Encryption? : False -Soft Delete Enabled? : True -Access Policies : - Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Object ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Application ID : - Display Name : User Name (username@microsoft.com) - Permissions to Keys : get, create, delete, list, update, - import, backup, restore, recover - Permissions to Secrets : get, list, set, delete, backup, - restore, recover - Permissions to Certificates : get, delete, list, create, import, - update, deleteissuers, getissuers, listissuers, managecontacts, manageissuers, - setissuers, recover - Permissions to (Key Vault Managed) Storage : delete, deletesas, get, getsas, list, - listsas, regeneratekey, set, setsas, update - - -Network Rule Set : - Default Action : Allow - Bypass : AzureServices - IP Rules : 124.56.78.0/24 - Virtual Network Rules : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx- - xxxxxxxxxxxxx/resourcegroups/myRG/providers/microsoft.network/virtualnetworks/myvn - et/subnets/frontendsubnet - -Tags : - - This command adds a network rule to the specified vault, allowing access to the specified IP address from the virtual network identified by $myNetworkResId. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/add-azkeyvaultnetworkrule - - - - - - Backup-AzKeyVault - Backup - AzKeyVault - - Fully backup a managed HSM. - - - - Fully backup a managed HSM to a storage account. Use `Restore-AzKeyVault` to restore the backup. - - - - Backup-AzKeyVault - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - SasToken - - The shared access signature (SAS) token to authenticate the storage account. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - StorageAccountName - - Name of the storage account where the backup is going to be stored. - - System.String - - System.String - - - None - - - StorageContainerName - - Name of the blob container where the backup is going to be stored. - - System.String - - System.String - - - None - - - UseUserManagedIdentity - - Specified to use User Managed Identity to authenticate the storage account. Only valid when SasToken is not set. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Backup-AzKeyVault - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - SasToken - - The shared access signature (SAS) token to authenticate the storage account. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - StorageContainerUri - - URI of the storage container where the backup is going to be stored. - - System.Uri - - System.Uri - - - None - - - UseUserManagedIdentity - - Specified to use User Managed Identity to authenticate the storage account. Only valid when SasToken is not set. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Backup-AzKeyVault - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmObject - - Managed HSM object - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - SasToken - - The shared access signature (SAS) token to authenticate the storage account. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - StorageContainerUri - - URI of the storage container where the backup is going to be stored. - - System.Uri - - System.Uri - - - None - - - UseUserManagedIdentity - - Specified to use User Managed Identity to authenticate the storage account. Only valid when SasToken is not set. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Backup-AzKeyVault - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmObject - - Managed HSM object - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - SasToken - - The shared access signature (SAS) token to authenticate the storage account. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - StorageAccountName - - Name of the storage account where the backup is going to be stored. - - System.String - - System.String - - - None - - - StorageContainerName - - Name of the blob container where the backup is going to be stored. - - System.String - - System.String - - - None - - - UseUserManagedIdentity - - Specified to use User Managed Identity to authenticate the storage account. Only valid when SasToken is not set. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - HsmObject - - Managed HSM object - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - SasToken - - The shared access signature (SAS) token to authenticate the storage account. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - StorageAccountName - - Name of the storage account where the backup is going to be stored. - - System.String - - System.String - - - None - - - StorageContainerName - - Name of the blob container where the backup is going to be stored. - - System.String - - System.String - - - None - - - StorageContainerUri - - URI of the storage container where the backup is going to be stored. - - System.Uri - - System.Uri - - - None - - - UseUserManagedIdentity - - Specified to use User Managed Identity to authenticate the storage account. Only valid when SasToken is not set. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.String - - - - - - - - - - - - - - - Example 1 Backup an HSM to Storage Container using SAS token - - $sasToken = ConvertTo-SecureString -AsPlainText -Force "?sv=2019-12-12&ss=bfqt&srt=sco&sp=rwdlacupx&se=2020-10-12T14:42:19Z&st=2020-10-12T06:42:19Z&spr=https&sig=******" - -Backup-AzKeyVault -HsmName myHsm -StorageContainerUri "https://{accountName}.blob.core.windows.net/{containerName}" -SasToken $sasToken - -https://{accountName}.blob.core.windows.net/{containerName}/{backupFolder} - - The cmdlet will create a folder (typically named `mhsm-{name}-{timestamp}`) in the storage container, store the backup in that folder and output the folder URI. - - - - - - Example 2 Backup an HSM to Storage Container via User Assigned Managed Identity Authentication - # Make sure an identity is assigend to the Hsm -Update-AzKeyVaultManagedHsm -UserAssignedIdentity "/subscriptions/{sub-id}/resourceGroups/{rg-name}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identity-name}" -Backup-AzKeyVault -HsmName myHsm -StorageContainerUri "https://{accountName}.blob.core.windows.net/{containerName}" -UseUserManagedIdentity - -https://{accountName}.blob.core.windows.net/{containerName}/{backupFolder} - - The cmdlet will backup the hsm in specific Storage Container and output the folder URI via User Assigned Managed Identity Authentication. The Managed Identity should be assigned access permission to the storage container. - - - - - - Example 3 Backup an HSM to Storage Container using Storage Account Name and Storage Container - Backup-AzKeyVault -HsmName myHsm -StorageAccountName "{accountName}" -StorageContainerName "{containerName}" -UseUserManagedIdentity - -https://{accountName}.blob.core.windows.net/{containerName}/{backupFolder} - - The cmdlet will create a folder (typically named `mhsm-{name}-{timestamp}`) in the storage container, store the backup in that folder and output the folder URI. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/backup-azkeyvault - - - - - - Backup-AzKeyVaultCertificate - Backup - AzKeyVaultCertificate - - Backs up a certificate in a key vault. - - - - The Backup-AzKeyVaultCertificate cmdlet backs up a specified certificate in a key vault by downloading it and storing it in a file. If the certificate has multiple versions, all its versions will be included in the backup. Because the downloaded content is encrypted, it cannot be used outside of Azure Key Vault. You can restore a backed-up certificate to any key vault in the subscription that it was backed up from, as long as the vault is in the same Azure geography. Typical reasons to use this cmdlet are: - You want to retain an offline copy of the certificate in case you accidentally delete the original from the vault. - - You created a certificate using Key Vault and now want to clone the object into a different Azure region, so that you can use it from all instances of your distributed application. Use the Backup-AzKeyVaultCertificate cmdlet to retrieve the certificate in encrypted format and then use the Restore-AzKeyVaultCertificate cmdlet and specify a key vault in the second region. - - - - Backup-AzKeyVaultCertificate - - InputObject - - Secret to be backed up, pipelined in from the output of a retrieval call. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - None - - - OutputFile - - Output file. The output file to store the backup of the certificate. If not specified, a default filename will be generated. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Overwrite the given file if it exists - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Backup-AzKeyVaultCertificate - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Name - - Secret name. Cmdlet constructs the FQDN of a secret from vault name, currently selected environment and secret name. - - System.String - - System.String - - - None - - - OutputFile - - Output file. The output file to store the backup of the certificate. If not specified, a default filename will be generated. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Overwrite the given file if it exists - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Overwrite the given file if it exists - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Secret to be backed up, pipelined in from the output of a retrieval call. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - None - - - Name - - Secret name. Cmdlet constructs the FQDN of a secret from vault name, currently selected environment and secret name. - - System.String - - System.String - - - None - - - OutputFile - - Output file. The output file to store the backup of the certificate. If not specified, a default filename will be generated. - - System.String - - System.String - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - - - - - - - - System.String - - - - - - - - - - - - - - Example 1: Back up a certificate with an automatically generated file name - Backup-AzKeyVaultCertificate -VaultName 'mykeyvault' -Name 'mycert' - -C:\Users\username\mykeyvault-mycert-1527029447.01191 - - This command retrieves the certificate named MyCert from the key vault named MyKeyVault and saves a backup of that certificate to a file that is automatically named for you, and displays the file name. - - - - - - -- Example 2: Back up a certificate to a specified file name -- - Backup-AzKeyVaultCertificate -VaultName 'MyKeyVault' -Name 'MyCert' -OutputFile 'C:\Backup.blob' - -C:\Backup.blob - - This command retrieves the certificate named MyCert from the key vault named MyKeyVault and saves a backup of that certificate to a file named Backup.blob. - - - - - - Example 3: Back up a previously retrieved certificate to a specified file name, overwriting the destination file without prompting. - $cert = Get-AzKeyVaultCertificate -VaultName 'MyKeyVault' -Name 'MyCert' -Backup-AzKeyVaultCertificate -Certificate $cert -OutputFile 'C:\Backup.blob' -Force - -C:\Backup.blob - - This command creates a backup of the certificate named $cert.Name in the vault named $cert.VaultName to a file named Backup.blob, silently overwriting the file if it exists already. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/backup-azkeyvaultcertificate - - - - - - Backup-AzKeyVaultKey - Backup - AzKeyVaultKey - - Backs up a key in a key vault. - - - - The Backup-AzKeyVaultKey cmdlet backs up a specified key in a key vault by downloading it and storing it in a file. If there are multiple versions of the key, all versions are included in the backup. Because the downloaded content is encrypted, it cannot be used outside of Azure Key Vault. You can restore a backed-up key to any key vault in the subscription that it was backed up from. Typical reasons to use this cmdlet are: - You want to escrow a copy of your key, so that you have an offline copy in case you accidentally delete your key in your key vault. - - You created a key using Key Vault and now want to clone the key into a different Azure region, so that you can use it from all instances of your distributed application. Use the Backup-AzKeyVaultKey cmdlet to retrieve the key in encrypted format and then use the Restore-AzKeyVaultKey cmdlet and specify a key vault in the second region. - - - - Backup-AzKeyVaultKey - - Name - - Specifies the name of the key to back up. - - System.String - - System.String - - - None - - - OutputFile - - Specifies the output file in which the backup blob is stored. If you do not specify this parameter, this cmdlet generates a file name for you. If you specify the name of an existing output file, the operation will not complete and returns an error message that the backup file already exists. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Overwrite the given file if it exists - - - System.Management.Automation.SwitchParameter - - - False - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Backup-AzKeyVaultKey - - InputObject - - Key bundle to back up, pipelined in from the output of a retrieval call. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - None - - - OutputFile - - Specifies the output file in which the backup blob is stored. If you do not specify this parameter, this cmdlet generates a file name for you. If you specify the name of an existing output file, the operation will not complete and returns an error message that the backup file already exists. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Overwrite the given file if it exists - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Backup-AzKeyVaultKey - - VaultName - - Specifies the name of the key vault that contains the key to back up. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the key to back up. - - System.String - - System.String - - - None - - - OutputFile - - Specifies the output file in which the backup blob is stored. If you do not specify this parameter, this cmdlet generates a file name for you. If you specify the name of an existing output file, the operation will not complete and returns an error message that the backup file already exists. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Overwrite the given file if it exists - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Overwrite the given file if it exists - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - InputObject - - Key bundle to back up, pipelined in from the output of a retrieval call. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - None - - - Name - - Specifies the name of the key to back up. - - System.String - - System.String - - - None - - - OutputFile - - Specifies the output file in which the backup blob is stored. If you do not specify this parameter, this cmdlet generates a file name for you. If you specify the name of an existing output file, the operation will not complete and returns an error message that the backup file already exists. - - System.String - - System.String - - - None - - - VaultName - - Specifies the name of the key vault that contains the key to back up. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - - - - - - - - System.String - - - - - - - - - - - - - - Example 1: Back up a key with an automatically generated file name - Backup-AzKeyVaultKey -VaultName 'MyKeyVault' -Name 'MyKey' - -C:\Users\username\mykeyvault-mykey-1527029447.01191 - - This command retrieves the key named MyKey from the key vault named MyKeyVault and saves a backup of that key to a file that is automatically named for you, and displays the file name. - - - - - - ------ Example 2: Back up a key to a specified file name ------ - Backup-AzKeyVaultKey -VaultName 'MyKeyVault' -Name 'MyKey' -OutputFile 'C:\Backup.blob' - -C:\Backup.blob - - This command retrieves the key named MyKey from the key vaultnamed MyKeyVault and saves a backup of that key to a file named Backup.blob. - - - - - - Example 3: Back up a previously retrieved key to a specified file name, overwriting the destination file without prompting. - $key = Get-AzKeyVaultKey -VaultName 'MyKeyVault' -Name 'MyKey' -Backup-AzKeyVaultKey -Key $key -OutputFile 'C:\Backup.blob' -Force - -C:\Backup.blob - - This command creates a backup of the key named $key.Name in the vault named $key.VaultName to a file named Backup.blob, silently overwriting the file if it exists already. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/backup-azkeyvaultkey - - - Add-AzKeyVaultKey - - - - Get-AzKeyVaultKey - - - - Remove-AzKeyVaultKey - - - - Restore-AzKeyVaultKey - - - - - - - Backup-AzKeyVaultManagedStorageAccount - Backup - AzKeyVaultManagedStorageAccount - - Backs up a KeyVault-managed storage account. - - - - The Backup-AzKeyVaultManagedStorageAccount cmdlet backs up a specified managed storage account in a key vault by downloading it and storing it in a file. Because the downloaded content is encrypted, it cannot be used outside of Azure Key Vault. You can restore a backed-up storage account to any key vault in the subscription that it was backed up from, as long as the vault is in the same Azure geography. Typical reasons to use this cmdlet are: - You want to retain an offline copy of the storage account in case you accidentally delete the original from the vault. - - You created a managed storage account using Key Vault and now want to clone the object into a different Azure region, so that you can use it from all instances of your distributed application. Use the Backup-AzKeyVaultManagedStorageAccount cmdlet to retrieve the managed storage account in encrypted format and then use the Restore-AzKeyVaultManagedStorageAccount cmdlet and specify a key vault in the second region. - - - - Backup-AzKeyVaultManagedStorageAccount - - InputObject - - Storage account bundle to be backed up, pipelined in from the output of a retrieval call. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - None - - - OutputFile - - Output file. The output file to store the storage account backup. If not specified, a default filename will be generated. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Overwrite the given file if it exists - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Backup-AzKeyVaultManagedStorageAccount - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Name - - Secret name. Cmdlet constructs the FQDN of a secret from vault name, currently selected environment and secret name. - - System.String - - System.String - - - None - - - OutputFile - - Output file. The output file to store the storage account backup. If not specified, a default filename will be generated. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Overwrite the given file if it exists - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Overwrite the given file if it exists - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Storage account bundle to be backed up, pipelined in from the output of a retrieval call. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - None - - - Name - - Secret name. Cmdlet constructs the FQDN of a secret from vault name, currently selected environment and secret name. - - System.String - - System.String - - - None - - - OutputFile - - Output file. The output file to store the storage account backup. If not specified, a default filename will be generated. - - System.String - - System.String - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - - - - - - - - System.String - - - - - - - - - - - - - - Example 1: Back up a managed storage account with an automatically generated file name - Backup-AzKeyVaultManagedStorageAccount -VaultName 'MyKeyVault' -Name 'MyMSAK' - -C:\Users\username\mykeyvault-mymsak-1527029447.01191 - - This command retrieves the managed storage account named MyMSAK from the key vault named MyKeyVault and saves a backup of that managed storage account to a file that is automatically named for you, and displays the file name. - - - - - - Example 2: Back up a managed storage account to a specified file name - Backup-AzKeyVaultKey -VaultName 'MyKeyVault' -Name 'MyMSAK' -OutputFile 'C:\Backup.blob' - -C:\Backup.blob - - This command retrieves the managed storage account named MyMSAK from the key vault named MyKeyVault and saves a backup of that managed storage account to a file named Backup.blob. - - - - - - Example 3: Back up a previously retrieved managed storage account to a specified file name, overwriting the destination file without prompting. - $msak = Get-AzKeyVaultManagedStorageAccount -VaultName 'MyKeyVault' -Name 'MyMSAK' -Backup-AzKeyVaultManagedStorageAccount -StorageAccount $msak -OutputFile 'C:\Backup.blob' -Force - -C:\Backup.blob - - This command creates a backup of the managed storage account named $msak.Name in the vault named $msak.VaultName to a file named Backup.blob, silently overwriting the file if it exists already. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/backup-azkeyvaultmanagedstorageaccount - - - - - - Backup-AzKeyVaultSecret - Backup - AzKeyVaultSecret - - Backs up a secret in a key vault. - - - - The Backup-AzKeyVaultSecret cmdlet backs up a specified secret in a key vault by downloading it and storing it in a file. If there are multiple versions of the secret, all versions are included in the backup. Because the downloaded content is encrypted, it cannot be used outside of Azure Key Vault. You can restore a backed-up secret to any key vault in the subscription that it was backed up from. Typical reasons to use this cmdlet are: - You want to escrow a copy of your secret, so that you have an offline copy in case you accidentally delete your secret in your key vault. - - You added a secret to a key vault and now want to clone the secret into a different Azure region, so that you can use it from all instances of your distributed application. Use the Backup-AzKeyVaultSecret cmdlet to retrieve the secret in encrypted format and then use the Restore-AzKeyVaultSecret cmdlet and specify a key vault in the second region. (Note that the regions must belong to the same geography.) - - - - Backup-AzKeyVaultSecret - - Id - - The URI of the KeyVault Secret. Please ensure it follows the format: `https://<vault-name>.vault.azure.net/secrets/<secret-name>/<version>` - - String - - String - - - None - - - OutputFile - - Specifies the output file in which the backup blob is stored. If you do not specify this parameter, this cmdlet generates a file name for you. If you specify the name of an existing output file, the operation will not complete and returns an error message that the backup file already exists. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Force - - Prompts you for confirmation before overwriting the output file, if that exists. - - - SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Backup-AzKeyVaultSecret - - InputObject - - Secret to be backed up, pipelined in from the output of a retrieval call. - - PSKeyVaultSecretIdentityItem - - PSKeyVaultSecretIdentityItem - - - None - - - OutputFile - - Specifies the output file in which the backup blob is stored. If you do not specify this parameter, this cmdlet generates a file name for you. If you specify the name of an existing output file, the operation will not complete and returns an error message that the backup file already exists. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Force - - Prompts you for confirmation before overwriting the output file, if that exists. - - - SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Backup-AzKeyVaultSecret - - VaultName - - Specifies the name of the key vault that contains the secret to back up. - - String - - String - - - None - - - Name - - Specifies the name of the secret to back up. - - String - - String - - - None - - - OutputFile - - Specifies the output file in which the backup blob is stored. If you do not specify this parameter, this cmdlet generates a file name for you. If you specify the name of an existing output file, the operation will not complete and returns an error message that the backup file already exists. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Force - - Prompts you for confirmation before overwriting the output file, if that exists. - - - SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Force - - Prompts you for confirmation before overwriting the output file, if that exists. - - SwitchParameter - - SwitchParameter - - - False - - - Id - - The URI of the KeyVault Secret. Please ensure it follows the format: `https://<vault-name>.vault.azure.net/secrets/<secret-name>/<version>` - - String - - String - - - None - - - InputObject - - Secret to be backed up, pipelined in from the output of a retrieval call. - - PSKeyVaultSecretIdentityItem - - PSKeyVaultSecretIdentityItem - - - None - - - Name - - Specifies the name of the secret to back up. - - String - - String - - - None - - - OutputFile - - Specifies the output file in which the backup blob is stored. If you do not specify this parameter, this cmdlet generates a file name for you. If you specify the name of an existing output file, the operation will not complete and returns an error message that the backup file already exists. - - String - - String - - - None - - - VaultName - - Specifies the name of the key vault that contains the secret to back up. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSecretIdentityItem - - - - - - - - - - System.String - - - - - - - - - - - - - - Example 1: Back up a secret with an automatically generated file name - Backup-AzKeyVaultSecret -VaultName 'MyKeyVault' -Name 'MySecret' - -C:\Users\username\mykeyvault-mysecret-1527029447.01191 - - This command retrieves the secret named MySecret from the key vault named MyKeyVault and saves a backup of that secret to a file that is automatically named for you, and displays the file name. - - - - - - Example 2: Back up a secret to a specified file name, overwriting the existing file without prompting - Backup-AzKeyVaultSecret -VaultName 'MyKeyVault' -Name 'MySecret' -OutputFile 'C:\Backup.blob' -Force - -C:\Backup.blob - - This command retrieves the secret named MySecret from the key vaultnamed MyKeyVault and saves a backup of that secret to a file named Backup.blob. - - - - - - Example 3: Back up a secret previously retrieved to a specified file name - $secret = Get-AzKeyVaultSecret -VaultName 'MyKeyVault' -Name 'MySecret' -Backup-AzKeyVaultSecret -Secret $secret -OutputFile 'C:\Backup.blob' - -C:\Backup.blob - - This command uses the $secret object's vault name and name to retrieves the secret and saves its backup to a file named Backup.blob. - - - - - - Example 4: Back up a secret with an automatically generated file name (using Uri) - Backup-AzKeyVaultSecret -Id 'https://MyKeyVault.vault.azure.net:443/secrets/MySecret' - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/backup-azkeyvaultsecret - - - Set-AzKeyVaultSecret - - - - Get-AzKeyVaultSecret - - - - Remove-AzKeyVaultSecret - - - - Restore-AzKeyVaultSecret - - - - - - - Export-AzKeyVaultSecurityDomain - Export - AzKeyVaultSecurityDomain - - Exports the security domain data of a managed HSM. - - - - Exports the security domain data of a managed HSM for importing on another HSM. - - - - Export-AzKeyVaultSecurityDomain - - Certificates - - Paths to the certificates that are used to encrypt the security domain data. - - System.String[] - - System.String[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Specify whether to overwrite existing file. - - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Object representing a managed HSM. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - - None - - - OutputPath - - Specify the path where security domain data will be downloaded to. - - System.String - - System.String - - - None - - - PassThru - - When specified, a boolean will be returned when cmdlet succeeds. - - - System.Management.Automation.SwitchParameter - - - False - - - Quorum - - The minimum number of shares required to decrypt the security domain for recovery. - - System.Int32 - - System.Int32 - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Export-AzKeyVaultSecurityDomain - - Certificates - - Paths to the certificates that are used to encrypt the security domain data. - - System.String[] - - System.String[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Specify whether to overwrite existing file. - - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Name of the managed HSM. - - System.String - - System.String - - - None - - - OutputPath - - Specify the path where security domain data will be downloaded to. - - System.String - - System.String - - - None - - - PassThru - - When specified, a boolean will be returned when cmdlet succeeds. - - - System.Management.Automation.SwitchParameter - - - False - - - Quorum - - The minimum number of shares required to decrypt the security domain for recovery. - - System.Int32 - - System.Int32 - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Certificates - - Paths to the certificates that are used to encrypt the security domain data. - - System.String[] - - System.String[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Specify whether to overwrite existing file. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Object representing a managed HSM. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - - None - - - Name - - Name of the managed HSM. - - System.String - - System.String - - - None - - - OutputPath - - Specify the path where security domain data will be downloaded to. - - System.String - - System.String - - - None - - - PassThru - - When specified, a boolean will be returned when cmdlet succeeds. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Quorum - - The minimum number of shares required to decrypt the security domain for recovery. - - System.Int32 - - System.Int32 - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Export-AzKeyVaultSecurityDomain -Name testmhsm -Certificates sd1.cer, sd2.cer, sd3.cer -OutputPath sd.ps.json -Quorum 2 - - This command retrieves the managed HSM named testmhsm and saves a backup of that managed HSM security domain to the specified output file. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/export-azkeyvaultsecuritydomain - - - - - - Get-AzKeyVault - Get - AzKeyVault - - Gets key vaults. - - - - The Get-AzKeyVault cmdlet gets information about the key vaults in a subscription. You can view all key vaults instances in a subscription, or filter your results by a resource group or a particular key vault. Note that although specifying the resource group is optional for this cmdlet when you get a single key vault, you should do so for better performance. - The cmdlet may call below Microsoft Graph API according to input parameters: - - GET /directoryObjects/{id} - - GET /users/{id} - - GET /servicePrincipals/{id} - - GET /groups/{id} - - - - Get-AzKeyVault - - VaultName - - Specifies the name of the key vault. - - System.String - - System.String - - - None - - - Location - - The location of the deleted vault. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted vaults in the output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - - Get-AzKeyVault - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted vaults in the output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - - Get-AzKeyVault - - VaultName - - Specifies the name of the key vault. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the resource group associated with the key vault or key vaults being queried. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted vaults in the output. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Location - - The location of the deleted vault. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the resource group associated with the key vault or key vaults being queried. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - VaultName - - Specifies the name of the key vault. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - System.Collections.Hashtable - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVault - - - - - - - - - - - - - - -- Example 1: Get all key vaults in your current subscription -- - Get-AzKeyVault - -Vault Name : myvault1 -Resource Group Name : myrg -Location : westus -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers/Microsoft.Ke - yVault/vaults/myvault1 -Tags : - - -Vault Name : myvault2 -Resource Group Name : myrg1 -Location : westus -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg1/providers/Microsoft.Ke - yVault/vaults/myvault2 -Tags : - -Vault Name : myvault3 -Resource Group Name : myrg1 -Location : westus -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg1/providers/Microsoft.Ke - yVault/vaults/myvault3 -Tags : - - This command gets all the key vaults in your current subscription. - - - - - - ------------- Example 2: Get a specific key vault ------------- - Get-AzKeyVault -VaultName 'myvault' - -Vault Name : myvault -Resource Group Name : myrg -Location : westus -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers - /Microsoft.KeyVault/vaults/myvault -Vault URI : https://myvault.vault.azure.net/ -Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx -SKU : Standard -Enabled For Deployment? : True -Enabled For Template Deployment? : True -Enabled For Disk Encryption? : False -Soft Delete Enabled? : True -Access Policies : - Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Object ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Application ID : - Display Name : User Name (username@microsoft.com) - Permissions to Keys : get, create, delete, list, update, - import, backup, restore, recover - Permissions to Secrets : get, list, set, delete, backup, - restore, recover - Permissions to Certificates : get, delete, list, create, import, - update, deleteissuers, getissuers, listissuers, managecontacts, manageissuers, - setissuers, recover - Permissions to (Key Vault Managed) Storage : delete, deletesas, get, getsas, list, - listsas, regeneratekey, set, setsas, update - -Tags : - - This command gets the key vault named myvault in your current subscription. - - - - - - -------- Example 3: Get key vaults in a resource group -------- - Get-AzKeyVault -ResourceGroupName 'myrg1' - -Vault Name : myvault2 -Resource Group Name : myrg1 -Location : westus -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg1/providers/Microsoft.Ke - yVault/vaults/myvault2 -Tags : - -Vault Name : myvault3 -Resource Group Name : myrg1 -Location : westus -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg1/providers/Microsoft.Ke - yVault/vaults/myvault3 -Tags : - - This command gets all the key vaults in the resource group named ContosoPayRollResourceGroup. - - - - - - Example 4: Get all deleted key vaults in your current subscription - Get-AzKeyVault -InRemovedState - -Vault Name : myvault4 -Location : westus -Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.KeyVault/locations/westu - s/deletedVaults/myvault4 -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers/Microsoft.K - eyVault/vaults/myvault4 -Deletion Date : 5/24/2018 9:33:24 PM -Scheduled Purge Date : 8/22/2018 9:33:24 PM -Tags : - - This command gets all the deleted key vaults in your current subscription. - - - - - - -------------- Example 5: Get a deleted key vault -------------- - Get-AzKeyVault -VaultName 'myvault4' -Location 'westus' -InRemovedState - -Vault Name : myvault4 -Location : westus -Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.KeyVault/locations/westu - s/deletedVaults/myvault4 -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers/Microsoft.K - eyVault/vaults/myvault4 -Deletion Date : 5/24/2018 9:33:24 PM -Scheduled Purge Date : 8/22/2018 9:33:24 PM -Tags : - - This command gets the deleted key vault information named myvault4 in your current subscription and in westus region. - - - - - - ---------- Example 6: Get key vaults using filtering ---------- - Get-AzKeyVault -VaultName 'myvault*' - -Vault Name : myvault2 -Resource Group Name : myrg1 -Location : westus -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg1/providers/Microsoft.Ke - yVault/vaults/myvault2 -Tags : - -Vault Name : myvault3 -Resource Group Name : myrg1 -Location : westus -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg1/providers/Microsoft.Ke - yVault/vaults/myvault3 -Tags : - - This command gets all the key vaults in the subscription that start with "myvault". - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvault - - - New-AzKeyVault - - - - Remove-AzKeyVault - - - - - - - Get-AzKeyVaultCertificate - Get - AzKeyVaultCertificate - - Gets a certificate from a key vault. - - - - The Get-AzKeyVaultCertificate cmdlet gets the specified certificate or the versions of a certificate from a key vault in Azure Key Vault. - - - - Get-AzKeyVaultCertificate - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the certificate to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludePending - - Specifies whether to include pending certificates in the output - - - System.Management.Automation.SwitchParameter - - - False - - - InRemovedState - - Specifies whether to include previously deleted certificates in the output - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzKeyVaultCertificate - - InputObject - - KeyVault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - Name - - Specifies the name of the certificate to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludePending - - Specifies whether to include pending certificates in the output - - - System.Management.Automation.SwitchParameter - - - False - - - InRemovedState - - Specifies whether to include previously deleted certificates in the output - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzKeyVaultCertificate - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the certificate to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludePending - - Specifies whether to include pending certificates in the output - - - System.Management.Automation.SwitchParameter - - - False - - - InRemovedState - - Specifies whether to include previously deleted certificates in the output - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzKeyVaultCertificate - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the certificate to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeVersions - - Indicates that this operation gets all versions of the certificate. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzKeyVaultCertificate - - InputObject - - KeyVault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - Name - - Specifies the name of the certificate to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeVersions - - Indicates that this operation gets all versions of the certificate. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzKeyVaultCertificate - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the certificate to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeVersions - - Indicates that this operation gets all versions of the certificate. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzKeyVaultCertificate - - InputObject - - KeyVault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - Name - - Specifies the name of the certificate to get. - - System.String - - System.String - - - None - - - Version - - Specifies the version of a certificate. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzKeyVaultCertificate - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the certificate to get. - - System.String - - System.String - - - None - - - Version - - Specifies the version of a certificate. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzKeyVaultCertificate - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the certificate to get. - - System.String - - System.String - - - None - - - Version - - Specifies the version of a certificate. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludePending - - Specifies whether to include pending certificates in the output - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IncludeVersions - - Indicates that this operation gets all versions of the certificate. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - KeyVault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - InRemovedState - - Specifies whether to include previously deleted certificates in the output - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Specifies the name of the certificate to get. - - System.String - - System.String - - - None - - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Version - - Specifies the version of a certificate. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificate - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultCertificate - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultCertificateIdentityItem - - - - - - - - - - - - - - ----------------- Example 1: Get a certificate ----------------- - Get-AzKeyVaultCertificate -VaultName "ContosoKV01" -Name "TestCert01" - -Name : testCert01 -Certificate : [Subject] - CN=contoso.com - - [Issuer] - CN=contoso.com - - [Serial Number] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - - [Not Before] - 2/8/2016 3:11:45 PM - - [Not After] - 8/8/2016 4:21:45 PM - - [Thumbprint] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - -KeyId : https://contoso.vault.azure.net:443/keys/TestCert01/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -SecretId : https://contoso.vault.azure.net:443/secrets/TestCert01/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -Thumbprint : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -Tags : -Enabled : True -Created : 2/8/2016 11:21:45 PM -Updated : 2/8/2016 11:21:45 PM - - This command gets the certificate named `TestCert01` from the key vault named `ContosoKV01` - - - - - - ------------ Example 2: Get cert and save it as pfx ------------ - $CertBase64 = Get-AzKeyVaultSecret -VaultName $vaultName -Name $certName -AsPlainText -$CertBytes = [Convert]::FromBase64String($CertBase64) -Set-Content -Path cert.pfx -Value $CertBytes -AsByteStream - - This command gets the certificate named `$certName` from the key vault named `$vaultName`. These commands access secret `$certName` and then save the content as a pfx file. - - - - - - Example 3: Get all the certificates that have been deleted but not purged for this key vault. - Get-AzKeyVaultCertificate -VaultName 'contoso' -InRemovedState - -DeletedDate : 5/24/2018 6:08:32 PM -Enabled : True -Expires : 11/24/2018 6:08:13 PM -NotBefore : 5/24/2018 5:58:13 PM -Created : 5/24/2018 6:08:13 PM -Updated : 5/24/2018 6:08:13 PM -Tags : -VaultName : contoso -Name : test1 -Version : -Id : https://contoso.vault.azure.net:443/certificates/test1 - -ScheduledPurgeDate : 8/22/2018 6:10:47 PM -DeletedDate : 5/24/2018 6:10:47 PM -Enabled : True -Expires : 11/24/2018 6:09:44 PM -NotBefore : 5/24/2018 5:59:44 PM -Created : 5/24/2018 6:09:44 PM -Updated : 5/24/2018 6:09:44 PM -Tags : -VaultName : contoso -Name : test2 -Version : -Id : https://contoso.vault.azure.net:443/certificates/test2 - - This command gets all the certificates that have been previously deleted, but not purged, in the key vault named Contoso. - - - - - - Example 4: Gets the certificate MyCert that has been deleted but not purged for this key vault. - Get-AzKeyVaultCertificate -VaultName 'contoso' -Name 'test1' -InRemovedState - -Certificate : [Subject] - CN=contoso.com - - [Issuer] - CN=contoso.com - - [Serial Number] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - - [Not Before] - 5/24/2018 10:58:13 AM - - [Not After] - 11/24/2018 10:08:13 AM - - [Thumbprint] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - -KeyId : https://contoso.vault.azure.net:443/keys/test1/7fe415d5518240c1a6fce89986b8d334 -SecretId : https://contoso.vault.azure.net:443/secrets/test1/7fe415d5518240c1a6fce89986b8d334 -Thumbprint : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -RecoveryLevel : Recoverable+Purgeable -ScheduledPurgeDate : 8/22/2018 6:08:32 PM -DeletedDate : 5/24/2018 6:08:32 PM -Enabled : True -Expires : 11/24/2018 6:08:13 PM -NotBefore : 5/24/2018 5:58:13 PM -Created : 5/24/2018 6:08:13 PM -Updated : 5/24/2018 6:08:13 PM -Tags : -VaultName : contoso -Name : test1 -Version : 7fe415d5518240c1a6fce89986b8d334 -Id : https://contoso.vault.azure.net:443/certificates/test1/7fe415d5518240c1a6fce89986b8d334 - - This command gets the certificate named 'MyCert' that has been previously deleted, but not purged, in the key vault named Contoso. This command will return metadata such as the deletion date, and the scheduled purging date of this deleted certificate. - - - - - - --------- Example 5: List certificates using filtering --------- - Get-AzKeyVaultCertificate -VaultName "ContosoKV01" -Name "test*" - -Enabled : True -Expires : 8/5/2019 2:39:25 AM -NotBefore : 2/5/2019 2:29:25 AM -Created : 2/5/2019 2:39:25 AM -Updated : 2/5/2019 2:39:25 AM -Tags : -VaultName : ContosoKV01 -Name : test1 -Version : -Id : https://ContosoKV01.vault.azure.net:443/certificates/test1 - -Enabled : True -Expires : 8/5/2019 2:39:25 AM -NotBefore : 2/5/2019 2:29:25 AM -Created : 2/5/2019 2:39:25 AM -Updated : 2/5/2019 2:39:25 AM -Tags : -VaultName : ContosoKV01 -Name : test2 -Version : -Id : https://ContosoKV01.vault.azure.net:443/certificates/test2 - - This command gets all certificates starting with "test" from the key vault named ContosoKV01. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvaultcertificate - - - Add-AzKeyVaultCertificate - - - - Import-AzKeyVaultCertificate - - - - Remove-AzKeyVaultCertificate - - - - - - - Get-AzKeyVaultCertificateContact - Get - AzKeyVaultCertificateContact - - Gets contacts that are registered for certificate notifications for a key vault. - - - - The Get-AzKeyVaultCertificateContact cmdlet gets contacts that are registered for certificate notifications for a key vault in Azure Key Vault. - - - - Get-AzKeyVaultCertificateContact - - InputObject - - KeyVault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzKeyVaultCertificateContact - - ResourceId - - KeyVault Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzKeyVaultCertificateContact - - VaultName - - Specifies the name of the key vault. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - KeyVault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - ResourceId - - KeyVault Id. - - System.String - - System.String - - - None - - - VaultName - - Specifies the name of the key vault. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateContact - - - - - - - - - - - - - - ----------- Example 1: Get all certificate contacts ----------- - $Contacts = Get-AzKeyVaultCertificateContact -VaultName "Contoso" - -Email VaultName ------ --------- -username@microsoft.com Contoso -username1@microsoft.com Contoso - - This command gets all of the contacts for the certificate objects in the Contoso key vault, and then stores them in the $Contacts variable. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvaultcertificatecontact - - - Add-AzKeyVaultCertificateContact - - - - Remove-AzKeyVaultCertificateContact - - - - - - - Get-AzKeyVaultCertificateIssuer - Get - AzKeyVaultCertificateIssuer - - Gets a certificate issuer for a key vault. - - - - The Get-AzKeyVaultCertificateIssuer cmdlet gets a specified certificate issuer or all certificate issuers for a key vault in Azure Key Vault. - - - - Get-AzKeyVaultCertificateIssuer - - InputObject - - KeyVault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - Name - - Specifies the name of the certificate issuer to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzKeyVaultCertificateIssuer - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the certificate issuer to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzKeyVaultCertificateIssuer - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the certificate issuer to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - KeyVault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - Name - - Specifies the name of the certificate issuer to get. - - System.String - - System.String - - - None - - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIssuerIdentityItem - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIssuer - - - - - - - - - - - - - - ------------- Example 1: Get a certificate issuer ------------- - Get-AzKeyVaultCertificateIssuer -VaultName "Contosokv01" -Name "TestIssuer01" - -AccountId : 555 -ApiKey : -OrganizationDetails : Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOrganizationDetails -Name : TestIssuer01 -IssuerProvider : Test -VaultName : Contosokv01 - - This command gets the certificate issuer named TestIssuer01. - - - - - - ----- Example 2: List certificate issuers using filtering ----- - Get-AzKeyVaultCertificateIssuer -VaultName "Contosokv01" -Name "test*" - -AccountId : 555 -ApiKey : -OrganizationDetails : Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOrganizationDetails -Name : TestIssuer01 -IssuerProvider : Test -VaultName : Contosokv01 - -AccountId : 555 -ApiKey : -OrganizationDetails : Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOrganizationDetails -Name : TestIssuer02 -IssuerProvider : Test -VaultName : Contosokv01 - - This command gets the certificate issuers that start with "test". - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvaultcertificateissuer - - - Remove-AzKeyVaultCertificateIssuer - - - - Set-AzKeyVaultCertificateIssuer - - - - - - - Get-AzKeyVaultCertificateOperation - Get - AzKeyVaultCertificateOperation - - Gets the status of a certificate operation. - - - - The Get-AzKeyVaultCertificateOperation cmdlet gets the status of a certificate operation. - - - - Get-AzKeyVaultCertificateOperation - - InputObject - - Certificate Object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzKeyVaultCertificateOperation - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Name - - Specifies the name of a certificate. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Certificate Object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - None - - - Name - - Specifies the name of a certificate. - - System.String - - System.String - - - None - - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOperation - - - - - - - - - - - - - - ----- Example 1: Get the status of a certificate operation ----- - Get-AzKeyVaultCertificateOperation -VaultName "contosoKV01" -Name "TestCert01" - -Id : https://contosoKV01.vault.azure.net/certificates/TestCert01/pending -Status : inProgress -StatusDetails : Pending certificate created. Certificate request is in progress. This may take some time - based on the issuer provider. Please check again later. -RequestId : 32a63e80568442a2892dafb9f7cf366t -Target : -Issuer : Self -CancellationRequested : False -CertificateSigningRequest : MIICpjCCAY4CAQAwFjEUMBIGA1UEAxMLY29udG9zby5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC73w3VRBOlgJ5Od1PjDh+2ytngNZp+ZP4fkuX8K1Ti5LA6Ih7eWx1fgAN/iTb6l - 5K6LvAIJvsTNVePMNxfSdaEIJ70Inm45wVU4A/kf+UxQWAYVMsBrLtDFWxnVhzf6n7RGYke6HLBj3j5ASb9g+olSs6eON25ibF0t+u6JC+sIR0LmVGar9Q0eZys1rdfzJBIKq+laOM7z2pJijb5ANqve9 - i7rH5mnhQk4V8WsRstOhYR9jgLqSSxokDoeaBClIOidSBYqVc1yNv4ASe1UWUCR7ZK6OQXiecNWSWPmgWEyawu6AR9eb1YotCr2ScheMOCxlm3103luitxrd8A7kMjAgMBAAGgSzBJBgkqhkiG9w0BCQ4 - xPDA6MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwCQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOCAQEAIHhsDJV37PKi8hor5eQf7+Tct1preIvSwqV0NF6Uo7O6 - YnC9Py7Wp7CHfKzuqeptUk2Tsu7B5dHB+o9Ypeeqw8fWhTN0GFGRKO7WjZQlDqL+lRNcjlFSaP022oIP0kmvVhBcmZqRQlALXccAaxEclFA/3y/aNj2gwWeKpH/pwAkZ39zMEzpQCaRfnQk7e3l4MV8cf - eC2HPYdRWkXxAeDcNPxBuVmKy49AzYvly+APNVDU3v66gxl3fIKrGRsKi2Cp/nO5rBxG2h8t+0Za4l/HJ7ZWR9wKbd/xg7JhdZZFVBxMHYzw8KQ0ys13x8HY+PXU92Y7yD3uC2Rcj+zbAf+Kg== -ErrorCode : -ErrorMessage : -Name : -VaultName : - - This command gets the status of the certificate operation for TestCert01 on the ContosoKV01 key vault. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvaultcertificateoperation - - - Remove-AzKeyVaultCertificateOperation - - - - Stop-AzKeyVaultCertificateOperation - - - - - - - Get-AzKeyVaultCertificatePolicy - Get - AzKeyVaultCertificatePolicy - - Gets the policy for a certificate in a key vault. - - - - The Get-AzKeyVaultCertificatePolicy cmdlet gets the policy for a certificate in a key vault in Azure Key Vault. - - - - Get-AzKeyVaultCertificatePolicy - - InputObject - - Certificate Object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzKeyVaultCertificatePolicy - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Name - - Specifies the name of a certificate. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Certificate Object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - None - - - Name - - Specifies the name of a certificate. - - System.String - - System.String - - - None - - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - - - - - - - - - - - - - ------------- Example 1: Get a certificate policy ------------- - Get-AzKeyVaultCertificatePolicy -VaultName "ContosoKV01" -Name "TestCert01" - -SecretContentType : application/x-pkcs12 -Kty : RSA -KeySize : 2048 -Exportable : True -ReuseKeyOnRenewal : True -SubjectName : CN=contoso.com -DnsNames : -Ekus : {1.3.6.1.5.5.7.3.1, 1.3.6.1.5.5.7.3.2} -ValidityInMonths : 6 -IssuerName : Self -CertificateType : -RenewAtNumberOfDaysBeforeExpiry : -RenewAtPercentageLifetime : 80 -EmailAtNumberOfDaysBeforeExpiry : -EmailAtPercentageLifetime : -Enabled : True -Created : 2/8/2016 11:10:29 PM -Updated : 2/8/2016 11:10:29 PM - - This command gets the certificate policy for TestCert01 certificate in the ContosoKV01 key vault. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvaultcertificatepolicy - - - New-AzKeyVaultCertificatePolicy - - - - Set-AzKeyVaultCertificatePolicy - - - - - - - Get-AzKeyVaultKey - Get - AzKeyVaultKey - - Gets Key Vault keys. Please notes that detailed information about a key, like key type or key size, only available when querying a specific key version. - - - - The Get-AzKeyVaultKey cmdlet gets Azure Key Vault keys. This cmdlet gets a specific Microsoft.Azure.Commands.KeyVault.Models.KeyBundle or a list of all KeyBundle objects in a key vault or by version. - - - - Get-AzKeyVaultKey - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - Version - - Specifies the key version. This cmdlet constructs the FQDN of a key based on the key vault name, your currently selected environment, the key name, and the key version. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultKey - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - InRemovedState - - Specifies whether to show the previously deleted keys in the output - - - System.Management.Automation.SwitchParameter - - - False - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultKey - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - IncludeVersions - - Indicates that this cmdlet gets all versions of a key. The current version of a key is the first one on the list. If you specify this parameter you must also specify the Name and VaultName parameters. If you do not specify the IncludeVersions parameter, this cmdlet gets the current version of the key with the specified Name . - - - System.Management.Automation.SwitchParameter - - - False - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultKey - - HsmObject - - HSM object. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted keys in the output - - - System.Management.Automation.SwitchParameter - - - False - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultKey - - HsmObject - - HSM object. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - Version - - Specifies the key version. This cmdlet constructs the FQDN of a key based on the key vault name, your currently selected environment, the key name, and the key version. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultKey - - HsmObject - - HSM object. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeVersions - - Indicates that this cmdlet gets all versions of a key. The current version of a key is the first one on the list. If you specify this parameter you must also specify the Name and VaultName parameters. If you do not specify the IncludeVersions parameter, this cmdlet gets the current version of the key with the specified Name . - - - System.Management.Automation.SwitchParameter - - - False - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultKey - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmResourceId - - HSM Resource Id. - - System.String - - System.String - - - None - - - InRemovedState - - Specifies whether to show the previously deleted keys in the output - - - System.Management.Automation.SwitchParameter - - - False - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultKey - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - Version - - Specifies the key version. This cmdlet constructs the FQDN of a key based on the key vault name, your currently selected environment, the key name, and the key version. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmResourceId - - HSM Resource Id. - - System.String - - System.String - - - None - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultKey - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmResourceId - - HSM Resource Id. - - System.String - - System.String - - - None - - - IncludeVersions - - Indicates that this cmdlet gets all versions of a key. The current version of a key is the first one on the list. If you specify this parameter you must also specify the Name and VaultName parameters. If you do not specify the IncludeVersions parameter, this cmdlet gets the current version of the key with the specified Name . - - - System.Management.Automation.SwitchParameter - - - False - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultKey - - VaultName - - Specifies the name of the key vault from which this cmdlet gets keys. This cmdlet constructs the fully qualified domain name (FQDN) of a key vault based on the name that this parameter specifies and your selected environment. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeVersions - - Indicates that this cmdlet gets all versions of a key. The current version of a key is the first one on the list. If you specify this parameter you must also specify the Name and VaultName parameters. If you do not specify the IncludeVersions parameter, this cmdlet gets the current version of the key with the specified Name . - - - System.Management.Automation.SwitchParameter - - - False - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultKey - - InputObject - - KeyVault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeVersions - - Indicates that this cmdlet gets all versions of a key. The current version of a key is the first one on the list. If you specify this parameter you must also specify the Name and VaultName parameters. If you do not specify the IncludeVersions parameter, this cmdlet gets the current version of the key with the specified Name . - - - System.Management.Automation.SwitchParameter - - - False - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultKey - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeVersions - - Indicates that this cmdlet gets all versions of a key. The current version of a key is the first one on the list. If you specify this parameter you must also specify the Name and VaultName parameters. If you do not specify the IncludeVersions parameter, this cmdlet gets the current version of the key with the specified Name . - - - System.Management.Automation.SwitchParameter - - - False - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultKey - - InputObject - - KeyVault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted keys in the output - - - System.Management.Automation.SwitchParameter - - - False - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultKey - - InputObject - - KeyVault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - Version - - Specifies the key version. This cmdlet constructs the FQDN of a key based on the key vault name, your currently selected environment, the key name, and the key version. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultKey - - VaultName - - Specifies the name of the key vault from which this cmdlet gets keys. This cmdlet constructs the fully qualified domain name (FQDN) of a key vault based on the name that this parameter specifies and your selected environment. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted keys in the output - - - System.Management.Automation.SwitchParameter - - - False - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultKey - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted keys in the output - - - System.Management.Automation.SwitchParameter - - - False - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultKey - - VaultName - - Specifies the name of the key vault from which this cmdlet gets keys. This cmdlet constructs the fully qualified domain name (FQDN) of a key vault based on the name that this parameter specifies and your selected environment. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - Version - - Specifies the key version. This cmdlet constructs the FQDN of a key based on the key vault name, your currently selected environment, the key name, and the key version. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultKey - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - Version - - Specifies the key version. This cmdlet constructs the FQDN of a key based on the key vault name, your currently selected environment, the key name, and the key version. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - HsmObject - - HSM object. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - HsmResourceId - - HSM Resource Id. - - System.String - - System.String - - - None - - - IncludeVersions - - Indicates that this cmdlet gets all versions of a key. The current version of a key is the first one on the list. If you specify this parameter you must also specify the Name and VaultName parameters. If you do not specify the IncludeVersions parameter, this cmdlet gets the current version of the key with the specified Name . - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - KeyVault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - InRemovedState - - Specifies whether to show the previously deleted keys in the output - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - VaultName - - Specifies the name of the key vault from which this cmdlet gets keys. This cmdlet constructs the fully qualified domain name (FQDN) of a key vault based on the name that this parameter specifies and your selected environment. - - System.String - - System.String - - - None - - - Version - - Specifies the key version. This cmdlet constructs the FQDN of a key based on the key vault name, your currently selected environment, the key name, and the key version. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKey - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultKeyIdentityItem - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultKey - - - - - - - - - - - - - - ---------- Example 1: Get all the keys in a key vault ---------- - Get-AzKeyVaultKey -VaultName 'contoso' - -Vault/HSM Name : contoso -Name : test1 -Version : -Id : https://contoso.vault.azure.net:443/keys/test1 -Enabled : True -Expires : 11/24/2018 6:08:13 PM -Not Before : 5/24/2018 5:58:13 PM -Created : 5/24/2018 6:08:13 PM -Updated : 5/24/2018 6:08:13 PM -Purge Disabled : False -Tags : - -Vault Name : contoso -Name : test2 -Version : -Id : https://contoso.vault.azure.net:443/keys/test2 -Enabled : True -Expires : 11/24/2018 6:09:44 PM -Not Before : 5/24/2018 5:59:44 PM -Created : 5/24/2018 6:09:44 PM -Updated : 5/24/2018 6:09:44 PM -Purge Disabled : False -Tags : - - This command gets all the keys in the key vault named Contoso. - - - - - - --------- Example 2: Get the current version of a key --------- - Get-AzKeyVaultKey -VaultName 'contoso' -KeyName 'test1' - -Vault/HSM Name : contoso -Name : test1 -Key Type : RSA -Key Size : 2048 -Version : 7fe415d5518240c1a6fce89986b8d334 -Id : https://contoso.vault.azure.net:443/keys/test1/7fe415d5518240c1a6fce89986b8d334 -Enabled : True -Expires : 11/24/2018 6:08:13 PM -Not Before : 5/24/2018 5:58:13 PM -Created : 5/24/2018 6:08:13 PM -Updated : 5/24/2018 6:08:13 PM -Purge Disabled : False -Tags : - - This command gets the current version of the key named test1 in the key vault named Contoso. - - - - - - ------------- Example 3: Get all versions of a key ------------- - Get-AzKeyVaultKey -VaultName 'contoso' -KeyName 'test1' -IncludeVersions - -Vault/HSM Name : contoso -Name : test1 -Version : 7fe415d5518240c1a6fce89986b8d334 -Id : https://contoso.vault.azure.net:443/keys/test1/7fe415d5518240c1a6fce89986b8d334 -Enabled : True -Expires : 11/24/2018 6:08:13 PM -Not Before : 5/24/2018 5:58:13 PM -Created : 5/24/2018 6:08:13 PM -Updated : 5/24/2018 6:08:13 PM -Purge Disabled : False -Tags : - -Vault/HSM Name : contoso -Name : test1 -Version : e4e95940e669407fbdb4298bc21a3e1d -Id : https://contoso.vault.azure.net:443/keys/test1/e4e95940e669407fbdb4298bc21a3e1d -Enabled : False -Expires : 11/24/2018 6:08:08 PM -Not Before : 5/24/2018 5:58:08 PM -Created : 5/24/2018 6:08:08 PM -Updated : 5/24/2018 6:08:08 PM -Purge Disabled : False -Tags : - - This command gets all versions the key named ITPfx in the key vault named Contoso. - - - - - - ---------- Example 4: Get a specific version of a key ---------- - Get-AzKeyVaultKey -VaultName 'contoso' -KeyName 'test1' -Version 'e4e95940e669407fbdb4298bc21a3e1d' - -Vault/HSM Name : contoso -Name : test1 -Key Type : RSA -Key Size : 2048 -Version : e4e95940e669407fbdb4298bc21a3e1d -Id : https://contoso.vault.azure.net:443/keys/test1/e4e95940e669407fbdb4298bc21a3e1d -Enabled : False -Expires : 11/24/2018 6:08:08 PM -Not Before : 5/24/2018 5:58:08 PM -Created : 5/24/2018 6:08:08 PM -Updated : 5/24/2018 6:08:08 PM -Purge Disabled : False -Tags : - - This command gets a specific version of the key named test1 in the key vault named Contoso. After running this command, you can inspect various properties of the key by navigating the $Key object. - - - - - - Example 5: Get all the keys that have been deleted but not purged for this key vault - Get-AzKeyVaultKey -VaultName 'contoso' -InRemovedState - -Vault/HSM Name : contoso -Name : test3 -Id : https://contoso.vault.azure.net:443/keys/test3 -Deleted Date : 5/24/2018 8:32:42 PM -Scheduled Purge Date : 8/22/2018 8:32:42 PM -Enabled : True -Expires : -Not Before : -Created : 5/24/2018 8:32:27 PM -Updated : 5/24/2018 8:32:27 PM -Purge Disabled : False -Tags : - - This command gets all the keys that have been previously deleted, but not purged, in the key vault named Contoso. - - - - - - Example 6: Gets the key ITPfx that has been deleted but not purged for this key vault. - Get-AzKeyVaultKey -VaultName 'contoso' -KeyName 'test3' -InRemovedState - -Vault/HSM Name : contoso -Name : test3 -Id : https://contoso.vault.azure.net:443/keys/test3/1af807cc331a49d0b52b7c75e1b2366e -Deleted Date : 5/24/2018 8:32:42 PM -Scheduled Purge Date : 8/22/2018 8:32:42 PM -Enabled : True -Expires : -Not Before : -Created : 5/24/2018 8:32:27 PM -Updated : 5/24/2018 8:32:27 PM -Purge Disabled : False -Tags : - - This command gets the key test3 that has been previously deleted, but not purged, in the key vault named Contoso. This command will return metadata such as the deletion date, and the scheduled purging date of this deleted key. - - - - - - -- Example 7: Get all the keys in a key vault using filtering -- - Get-AzKeyVaultKey -VaultName 'contoso' -KeyName "test*" - -Vault/HSM Name : contoso -Name : test1 -Version : -Id : https://contoso.vault.azure.net:443/keys/test1 -Enabled : True -Expires : 11/24/2018 6:08:13 PM -Not Before : 5/24/2018 5:58:13 PM -Created : 5/24/2018 6:08:13 PM -Updated : 5/24/2018 6:08:13 PM -Purge Disabled : False -Tags : - -Vault/HSM Name : contoso -Name : test2 -Version : -Id : https://contoso.vault.azure.net:443/keys/test2 -Enabled : True -Expires : 11/24/2018 6:09:44 PM -Not Before : 5/24/2018 5:59:44 PM -Created : 5/24/2018 6:09:44 PM -Updated : 5/24/2018 6:09:44 PM -Purge Disabled : False -Tags : - - This command gets all the keys in the key vault named Contoso that start with "test". - - - - - - ------- Example 8: Download a public key as a .pem file ------- - $path = "D:\public.pem" -Get-AzKeyVaultKey -VaultName $vaultName -KeyName $keyName -OutFile $path - - You can download the public key of a RSA key by specifying the `-OutFile` parameter. This is one step of importing HSM-protected keys to Azure Key Vault. See https://learn.microsoft.com/azure/key-vault/keys/hsm-protected-keys - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvaultkey - - - Add-AzKeyVaultKey - - - - Remove-AzKeyVaultKey - - - - Undo-AzKeyVaultKeyRemoval - - - - - - - Get-AzKeyVaultKeyRotationPolicy - Get - AzKeyVaultKeyRotationPolicy - - Gets the key rotation policy for the specified key in Key Vault. - - - - This cmdlet requires the keys/get permission. It returns key rotation policy for the specified key. - - - - Get-AzKeyVaultKeyRotationPolicy - - InputObject - - Key object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzKeyVaultKeyRotationPolicy - - VaultName - - Vault name. - - System.String - - System.String - - - None - - - Name - - Key name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Key object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - None - - - Name - - Key name. - - System.String - - System.String - - - None - - - VaultName - - Vault name. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyRotationPolicy - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-AzKeyVaultKeyRotationPolicy -VaultName test-kv -Name test-key - -Id : -VaultName : test-kv -KeyName : test-key -LifetimeActions : {[Action: Notify, TimeAfterCreate: , TimeBeforeExpiry: P30D]} -ExpiresIn : -CreatedOn : -UpdatedOn : - - This cmdlet gets the key rotation policy for test-kv. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvaultkeyrotationpolicy - - - Set-AzKeyVaultKeyRotationPolicy.md - - - - Invoke-AzKeyVaultKeyRotation.md - - - - - - - Get-AzKeyVaultManagedHsm - Get - AzKeyVaultManagedHsm - - Get managed HSMs. - - - - The Get-AzKeyVaultManagedHsm cmdlet gets information about the managed HSMs in a subscription. You can view all managed HSMs instances in a subscription, or filter your results by a resource group or a particular managed HSM. Note that although specifying the resource group is optional for this cmdlet when you get a single managed HSM, you should do so for better performance. - - - - Get-AzKeyVaultManagedHsm - - Name - - HSM name. Cmdlet constructs the FQDN of a HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Location - - The location of the deleted managed HSM pool. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted managed HSM pool in the output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - Specifies the key and optional value of the specified tag to filter the list of managed HSMs by. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - - Get-AzKeyVaultManagedHsm - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted managed HSM pool in the output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - Specifies the key and optional value of the specified tag to filter the list of managed HSMs by. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - - Get-AzKeyVaultManagedHsm - - Name - - HSM name. Cmdlet constructs the FQDN of a HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the resource group associated with the managed HSM being queried. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - Specifies the key and optional value of the specified tag to filter the list of managed HSMs by. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted managed HSM pool in the output. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Location - - The location of the deleted managed HSM pool. - - System.String - - System.String - - - None - - - Name - - HSM name. Cmdlet constructs the FQDN of a HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the resource group associated with the managed HSM being queried. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - Specifies the key and optional value of the specified tag to filter the list of managed HSMs by. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - - - - System.String - - - - - - - - System.Collections.Hashtable - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedManagedHsm - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - - - - - - - - - - - - - - Example 1: Get all managed HSMs in your current subscription - - Get-AzKeyVaultManagedHsm - -Name Resource Group Name Location SKU ProvisioningState Security Domain ActivationStatus ----- ------------------- -------- --- ----------------- -------------------------------- -myhsm test-rg eastus StandardB1 Succeeded Active - - This command gets all managed HSMs in your current subscription. - - - - - - ------------ Example 2: Get a specific managed HSM ------------ - Get-AzKeyVaultManagedHsm -Name 'myhsm' - -Name Resource Group Name Location SKU ProvisioningState Security Domain ActivationStatus ----- ------------------- -------- --- ----------------- -------------------------------- -myhsm test-rg eastus StandardB1 Succeeded Active - - This command gets the managed HSM named myhsm in your current subscription. - - - - - - ------- Example 3: Get managed HSMs in a resource group ------- - Get-AzKeyVaultManagedHsm -ResourceGroupName 'myrg1' - -Name Resource Group Name Location SKU ProvisioningState Security Domain ActivationStatus ----- ------------------- -------- --- ----------------- -------------------------------- -myhsm myrg1 eastus2euap StandardB1 Succeeded Active - - This command gets all managed HSMs in the resource group named myrg1. - - - - - - --------- Example 4: Get managed HSMs using filtering --------- - Get-AzKeyVaultManagedHsm -Name 'myhsm*' - -Name Resource Group Name Location SKU ProvisioningState Security Domain ActivationStatus ----- ------------------- -------- --- ----------------- -------------------------------- -myhsm myrg1 eastus2euap StandardB1 Succeeded Active - - This command gets all managed HSMs in the subscription that start with "myhsm". - - - - - - ------------- Example 5: List deleted managed HSMs ------------- - Get-AzKeyVaultManagedHsm -InRemovedState - -Name Location DeletionDate ScheduledPurgeDate Purge Protection Enabled? ----- -------- ------------ ------------------ ------------------------- -xxxxxxxx-mhsm-4op2n2g4xe eastus2 12/30/2021 2:29:00 AM 3/30/2022 2:29:00 AM True -xxxxxxx-mhsm-ertopo7tnxa westus 12/29/2021 11:48:42 PM 3/29/2022 11:48:42 PM True -xxxxxxx-mhsm-gg66fgctz67 westus 12/29/2021 11:48:42 PM 3/29/2022 11:48:42 PM False -xxxxxxx-mhsm-2m5jiop6mfo westcentralus 12/30/2021 12:26:14 AM 3/30/2022 12:26:14 AM True - - This command gets all deleted managed HSMs in current subscription. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvaultmanagedhsm - - - New-AzKeyVaultManagedHsm - - - - Remove-AzKeyVaultManagedHsm - - - - Update-AzKeyVaultManagedHsm - - - - Undo-AzKeyVaultManagedHsmRemoval - - - - - - - Get-AzKeyVaultManagedStorageAccount - Get - AzKeyVaultManagedStorageAccount - - Gets Key Vault managed Azure Storage Accounts. - - - - Gets a Key Vault managed Azure Storage Account if the name of the account is specified and the account keys are managed by the specified vault. If the account name is not specified, then all the accounts whose keys are managed by specified vault are listed. - - - - Get-AzKeyVaultManagedStorageAccount - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - AccountName - - Key Vault managed storage account name. Cmdlet constructs the FQDN of a managed storage account name from vault name, currently selected environment and manged storage account name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted storage accounts in the output. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzKeyVaultManagedStorageAccount - - InputObject - - Vault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted storage accounts in the output. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzKeyVaultManagedStorageAccount - - ResourceId - - Vault resource id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted storage accounts in the output. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AccountName - - Key Vault managed storage account name. Cmdlet constructs the FQDN of a managed storage account name from vault name, currently selected environment and manged storage account name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Vault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - InRemovedState - - Specifies whether to show the previously deleted storage accounts in the output. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceId - - Vault resource id. - - System.String - - System.String - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccount - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultManagedStorageAccountIdentityItem - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultManagedStorageAccount - - - - - - - - - - - - - - ---- Example 1: List all Key Vault managed Storage Accounts ---- - Get-AzKeyVaultManagedStorageAccount -VaultName 'myvault' - -Id : https://myvault.vault.azure.net:443/storage/mystorageaccount -Vault Name : myvault -AccountName : mystorageaccount -Account Resource Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers/Microsoft.St - orage/storageAccounts/mystorageaccount -Enabled : True -Created : 4/25/2018 1:50:32 AM -Updated : 4/25/2018 1:50:32 AM -Tags : - - Lists all the accounts whose keys are managed by vault 'myvault' - - - - - - ------ Example 2: Get a Key Vault managed Storage Account ------ - Get-AzKeyVaultManagedStorageAccount -VaultName 'myvault' -Name 'mystorageaccount' - -Id : https://myvault.vault.azure.net:443/storage/mystorageaccount -Vault Name : myvault -AccountName : mystorageaccount -Account Resource Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/maddie1/providers/Microsoft.St - orage/storageAccounts/mystorageaccount -Active Key Name : key2 -Auto Regenerate Key : False -Regeneration Period : 90.00:00:00 -Enabled : True -Created : 4/25/2018 1:50:32 AM -Updated : 4/25/2018 1:50:32 AM -Tags : - - Gets the details of Key Vault managed Storage Account of 'mystorageaccount' if its keys are managed by vault 'myvault' - - - - - - Example 3: List all Key Vault managed Storage Accounts using filtering - Get-AzKeyVaultManagedStorageAccount -VaultName 'myvault' -Name "test*" - -Id : https://myvault.vault.azure.net:443/storage/test1 -Vault Name : myvault -AccountName : test1 -Account Resource Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers/Microsoft.St - orage/storageAccounts/test1 -Enabled : True -Created : 4/25/2018 1:50:32 AM -Updated : 4/25/2018 1:50:32 AM -Tags : - -Id : https://myvault.vault.azure.net:443/storage/test2 -Vault Name : myvault -AccountName : test2 -Account Resource Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers/Microsoft.St - orage/storageAccounts/test2 -Enabled : True -Created : 4/25/2018 1:50:32 AM -Updated : 4/25/2018 1:50:32 AM -Tags : - - Lists all the accounts whose keys are managed by vault 'myvault' that start with "test" - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvaultmanagedstorageaccount - - - Azure PowerShell Key Vault cmdlets - - - - - - - Get-AzKeyVaultManagedStorageSasDefinition - Get - AzKeyVaultManagedStorageSasDefinition - - Gets Key Vault managed Storage SAS Definitions. - - - - Gets a Key Vault managed Storage SAS Definition if the name of the definition is specified. If the definition name is not specified, then all the SAS definitions associated with the specified Key Vault managed Storage Account in the vault are listed. - - - - Get-AzKeyVaultManagedStorageSasDefinition - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - AccountName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Name - - Storage sas definition name. Cmdlet constructs the FQDN of a storage sas definition from vault name, currently selected environment, storage account name and sas definition name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted storage sas definitions in the output. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzKeyVaultManagedStorageSasDefinition - - InputObject - - ManagedStorageAccount object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - None - - - Name - - Storage sas definition name. Cmdlet constructs the FQDN of a storage sas definition from vault name, currently selected environment, storage account name and sas definition name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted storage sas definitions in the output. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AccountName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - ManagedStorageAccount object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - None - - - InRemovedState - - Specifies whether to show the previously deleted storage sas definitions in the output. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Storage sas definition name. Cmdlet constructs the FQDN of a storage sas definition from vault name, currently selected environment, storage account name and sas definition name. - - System.String - - System.String - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageSasDefinitionIdentityItem - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageSasDefinition - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultManagedStorageSasDefinition - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultManagedStorageSasDefinitionIdentityItem - - - - - - - - - - - - - - Example 1: List all Key Vault managed Storage SAS Definitions - Get-AzKeyVaultManagedStorageSasDefinition -VaultName 'myvault' -AccountName 'mystorageaccount' - -Id : https://myvault.vault.azure.net:443/storage/mystorageaccount/sas/accountsas -Vault Name : myvault -AccountName : mystorageaccount -Name : accountsas -Enabled : True -Created : 5/24/2018 9:11:08 PM -Updated : 5/24/2018 9:11:08 PM -Tags : - - Lists all the SAS definitions associated with Key Vault managed Storage Account 'mystorageaccount' managed by vault 'myvault' - - - - - - ------ Example 2: Get a Key Vault managed Storage Account ------ - Get-AzKeyVaultManagedStorageSasDefinition -VaultName 'myvault' -AccountName 'mystorageaccount' -Name 'accountsas' - -Id : https://myvault.vault.azure.net:443/storage/mystorageaccount/sas/accountsas -Secret Id : https://myvault.vault.azure.net/secrets/mystorageaccount-accountsas -Vault Name : myvault -AccountName : mystorageaccount -Name : accountsas -Parameter : -Enabled : True -Created : 5/24/2018 9:11:08 PM -Updated : 5/24/2018 9:11:08 PM -Tags : - - Gets the details of SAS Definition 'accountsas' associated with Key Vault managed Storage Account 'mystorageaccount' managed by vault 'myvault'. - - - - - - Example 3: List all Key Vault managed Storage SAS Definitions using filtering - Get-AzKeyVaultManagedStorageSasDefinition -VaultName 'myvault' -AccountName 'mystorageaccount' -Name "account*" - -Id : https://myvault.vault.azure.net:443/storage/mystorageaccount/sas/accountsas1 -Vault Name : myvault -AccountName : mystorageaccount -Name : accountsas1 -Enabled : True -Created : 5/24/2018 9:11:08 PM -Updated : 5/24/2018 9:11:08 PM -Tags : - -Id : https://myvault.vault.azure.net:443/storage/mystorageaccount/sas/accountsas2 -Vault Name : myvault -AccountName : mystorageaccount -Name : accountsas2 -Enabled : True -Created : 5/24/2018 9:11:08 PM -Updated : 5/24/2018 9:11:08 PM -Tags : - - Lists all the SAS definitions associated with Key Vault managed Storage Account 'mystorageaccount' managed by vault 'myvault' that start with "account". - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvaultmanagedstoragesasdefinition - - - Remove-AzKeyVaultManagedStorageSasDefinition - - - - Set-AzKeyVaultManagedStorageSasDefinition - - - - Undo-AzKeyVaultManagedStorageSasDefinitionRemoval - - - - - - - Get-AzKeyVaultRandomNumber - Get - AzKeyVaultRandomNumber - - Get the requested number of bytes containing random values from a managed HSM. - - - - Get the requested number of bytes containing random values from a managed HSM. - - - - Get-AzKeyVaultRandomNumber - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - AsBase64String - - If specified, return random number as base-64 digit. By default, this command retruns random number as byte array. - - - System.Management.Automation.SwitchParameter - - - False - - - Count - - The requested number of random bytes. - - System.Int32 - - System.Int32 - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzKeyVaultRandomNumber - - InputObject - - HSM object. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - AsBase64String - - If specified, return random number as base-64 digit. By default, this command retruns random number as byte array. - - - System.Management.Automation.SwitchParameter - - - False - - - Count - - The requested number of random bytes. - - System.Int32 - - System.Int32 - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzKeyVaultRandomNumber - - ResourceId - - HSM resource id. - - System.String - - System.String - - - None - - - AsBase64String - - If specified, return random number as base-64 digit. By default, this command retruns random number as byte array. - - - System.Management.Automation.SwitchParameter - - - False - - - Count - - The requested number of random bytes. - - System.Int32 - - System.Int32 - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - AsBase64String - - If specified, return random number as base-64 digit. By default, this command retruns random number as byte array. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Count - - The requested number of random bytes. - - System.Int32 - - System.Int32 - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - InputObject - - HSM object. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - ResourceId - - HSM resource id. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - - - - - - - - System.String - - - - - - - - System.Byte - - - - - - - - - - - - - - Example 1: Get requested number of random bytes by managed HSM name - Get-AzKeyVaultRandomNumber -HsmName testmhsm -Count 10 - -158 -171 -96 -142 -109 -28 -1 -85 -178 -201 - - This command gets 10 random bytes from managed HSM "testmhsm" - - - - - - --- Example 2: Get random number as base64 string by piping --- - Get-AzKeyVaultManagedHsm -HsmName bezmhsm2022 | Get-AzKeyVaultRandomNumber -Count 10 -AsBase64String - -G1CsEqa9yUp/EA== - - This command gets 10 random bytes as base-64 string from managed HSM "testmhsm" - - - - - - --------- Example 3: Get random number by resource id --------- - Get-AzKeyVaultRandomNumber -ResourceId /subscriptions/0b1fxxxx-xxxx-xxxx-aec3-xxxx72f09590/resourceGroups/test-rg/provders/Microsoft.KeyVault/managedHSMs/testhsm -Count 10 - -158 -171 -96 -142 -109 -28 -1 -85 -178 -201 - - This command gets 10 random bytes from managed HSM with specified resource id - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvaultrandomnumber - - - - - - Get-AzKeyVaultRoleAssignment - Get - AzKeyVaultRoleAssignment - - Get or list role assignments of a managed HSM. Use respective parameters to list assignments to a specific user or a role definition. - - - - Use the `Get-AzKeyVaultRoleAssignment` command to list all role assignments that are effective on a scope. Without any parameters, this command returns all the role assignments made under the managed HSM. This list can be filtered using filtering parameters for principal, role and scope. The subject of the assignment must be specified. To specify a user, use SignInName or Microsoft Entra ObjectId parameters. To specify a security group, use Microsoft Entra ObjectId parameter. And to specify a Microsoft Entra application, use ApplicationId or ObjectId parameters. The role that is being assigned must be specified using the RoleDefinitionName or RoleDefinitionId parameter. The scope at which access is being granted may be specified. It defaults to "/". - The cmdlet may call below Microsoft Graph API according to input parameters: - - GET /directoryObjects/{id} - - GET /users/{id} - - GET /servicePrincipals/{id} - - GET /groups/{id} - - - - Get-AzKeyVaultRoleAssignment - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - ApplicationId - - The app SPN. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ObjectId - - The user or group object id. - - System.String - - System.String - - - None - - - RoleDefinitionId - - Role Id the principal is assigned to. - - System.String - - System.String - - - None - - - RoleDefinitionName - - Name of the RBAC role to assign the principal with. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - SignInName - - The user SignInName. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultRoleAssignment - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - RoleAssignmentName - - Name of the role assignment. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - - - - ApplicationId - - The app SPN. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - ObjectId - - The user or group object id. - - System.String - - System.String - - - None - - - RoleAssignmentName - - Name of the role assignment. - - System.String - - System.String - - - None - - - RoleDefinitionId - - Role Id the principal is assigned to. - - System.String - - System.String - - - None - - - RoleDefinitionName - - Name of the RBAC role to assign the principal with. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - SignInName - - The user SignInName. - - System.String - - System.String - - - None - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleAssignment - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-AzKeyVaultRoleAssignment -HsmName myHsm - -RoleDefinitionName DisplayName ObjectType Scope ------------------- ----------- ---------- ----- -Managed HSM Administrator User 1 (user1@microsoft.com) User / -Managed HSM Crypto Auditor User 2 (user2@microsoft.com) User /keys -Managed HSM Backup User 2 (user2@microsoft.com) User / -Managed HSM Administrator User 2 (user2@microsoft.com) User / - - This example lists all role assignments of "myHsm" on all the scope. - - - - - - -------------------------- Example 2 -------------------------- - Get-AzKeyVaultRoleAssignment -HsmName myHsm -SignInName user1@microsoft.com -Scope "/keys" - -RoleDefinitionName DisplayName ObjectType Scope ------------------- ----------- ---------- ----- -Managed HSM Crypto Auditor User 1 (user1@microsoft.com) User /keys -Managed HSM Backup User 1 (user1@microsoft.com) User /keys - - This example lists all role assignments of "myHsm" on "/keys" scope and filters the result by user sign-in name. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvaultroleassignment - - - - - - Get-AzKeyVaultRoleDefinition - Get - AzKeyVaultRoleDefinition - - List role definitions of a given managed HSM at a given scope. - - - - List role definitions of a given managed HSM at a given scope. - - - - Get-AzKeyVaultRoleDefinition - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - Custom - - If specified, only displays the custom created roles in the directory. - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultRoleDefinition - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - RoleDefinitionName - - Name of the role definition to get. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - - - - Custom - - If specified, only displays the custom created roles in the directory. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - RoleDefinitionName - - Name of the role definition to get. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleDefinition - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-AzKeyVaultRoleDefinition -HsmName myHsm -Scope "/keys" - -RoleName Description Permissions --------- ----------- ----------- -Managed HSM Administrator 1 permission(s) -Managed HSM Crypto Officer 1 permission(s) -Managed HSM Crypto User 1 permission(s) -Managed HSM Policy Administrator 1 permission(s) -Managed HSM Crypto Auditor 1 permission(s) -Managed HSM Crypto Service Encryption 1 permission(s) -Managed HSM Backup 1 permission(s) - - The example lists all the roles at "/keys" scope. - - - - - - -------------------------- Example 2 -------------------------- - $backupRole = Get-AzKeyVaultRoleDefinition -HsmName myHsm -RoleDefinitionName "Managed HSM Backup User" - -$backupRole.Permissions - -Actions NotActions DataActions NotDataActions -------- ---------- ----------- -------------- -0 action(s) 0 action(s) 3 action(s) 0 action(s) - -$backupRole.Permissions.DataActions - -Microsoft.KeyVault/managedHsm/backup/start/action -Microsoft.KeyVault/managedHsm/backup/status/action -Microsoft.KeyVault/managedHsm/keys/backup/action - - The example gets the "Managed HSM Backup" role and inspects its permissions. - - - - - - -------------------------- Example 3 -------------------------- - Get-AzKeyVaultRoleDefinition -HsmName myHsm -Custom - - This example lists all the custom role definitions belong to "myHsm". - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvaultroledefinition - - - - - - Get-AzKeyVaultSecret - Get - AzKeyVaultSecret - - Gets the secrets in a key vault. - - - - The Get-AzKeyVaultSecret cmdlet gets secrets in a key vault. This cmdlet gets a specific secret or all the secrets in a key vault. - - - - Get-AzKeyVaultSecret - - VaultName - - Specifies the name of the key vault to which the secret belongs. This cmdlet constructs the fully qualified domain name (FQDN) of a key vault based on the name that this parameter specifies and your current environment. - - String - - String - - - None - - - Name - - Specifies the name of the secret to get. - - String - - String - - - None - - - AsPlainText - - When set, the cmdlet will convert secret in secure string to the decrypted plaintext string as output. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted secrets in the output - - - SwitchParameter - - - False - - - - Get-AzKeyVaultSecret - - VaultName - - Specifies the name of the key vault to which the secret belongs. This cmdlet constructs the fully qualified domain name (FQDN) of a key vault based on the name that this parameter specifies and your current environment. - - String - - String - - - None - - - Name - - Specifies the name of the secret to get. - - String - - String - - - None - - - Version - - Specifies the secret version. This cmdlet constructs the FQDN of a secret based on the key vault name, your currently selected environment, the secret name, and the secret version. - - String - - String - - - None - - - AsPlainText - - When set, the cmdlet will convert secret in secure string to the decrypted plaintext string as output. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - - Get-AzKeyVaultSecret - - InputObject - - KeyVault Object. - - PSKeyVault - - PSKeyVault - - - None - - - Name - - Specifies the name of the secret to get. - - String - - String - - - None - - - AsPlainText - - When set, the cmdlet will convert secret in secure string to the decrypted plaintext string as output. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted secrets in the output - - - SwitchParameter - - - False - - - - Get-AzKeyVaultSecret - - InputObject - - KeyVault Object. - - PSKeyVault - - PSKeyVault - - - None - - - Name - - Specifies the name of the secret to get. - - String - - String - - - None - - - Version - - Specifies the secret version. This cmdlet constructs the FQDN of a secret based on the key vault name, your currently selected environment, the secret name, and the secret version. - - String - - String - - - None - - - AsPlainText - - When set, the cmdlet will convert secret in secure string to the decrypted plaintext string as output. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - - Get-AzKeyVaultSecret - - Id - - The URI of the KeyVault Secret. Please ensure it follows the format: `https://<vault-name>.vault.azure.net/secrets/<secret-name>/<version>` - - String - - String - - - None - - - AsPlainText - - When set, the cmdlet will convert secret in secure string to the decrypted plaintext string as output. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted secrets in the output - - - SwitchParameter - - - False - - - - Get-AzKeyVaultSecret - - ParentResourceId - - KeyVault Resource Id. - - String - - String - - - None - - - Name - - Specifies the name of the secret to get. - - String - - String - - - None - - - AsPlainText - - When set, the cmdlet will convert secret in secure string to the decrypted plaintext string as output. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted secrets in the output - - - SwitchParameter - - - False - - - - Get-AzKeyVaultSecret - - ParentResourceId - - KeyVault Resource Id. - - String - - String - - - None - - - Name - - Specifies the name of the secret to get. - - String - - String - - - None - - - Version - - Specifies the secret version. This cmdlet constructs the FQDN of a secret based on the key vault name, your currently selected environment, the secret name, and the secret version. - - String - - String - - - None - - - AsPlainText - - When set, the cmdlet will convert secret in secure string to the decrypted plaintext string as output. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - - Get-AzKeyVaultSecret - - VaultName - - Specifies the name of the key vault to which the secret belongs. This cmdlet constructs the fully qualified domain name (FQDN) of a key vault based on the name that this parameter specifies and your current environment. - - String - - String - - - None - - - Name - - Specifies the name of the secret to get. - - String - - String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - IncludeVersions - - Indicates that this cmdlet gets all versions of a secret. The current version of a secret is the first one on the list. If you specify this parameter you must also specify the Name and VaultName parameters. If you do not specify the IncludeVersions parameter, this cmdlet gets the current version of the secret with the specified Name . - - - SwitchParameter - - - False - - - - Get-AzKeyVaultSecret - - InputObject - - KeyVault Object. - - PSKeyVault - - PSKeyVault - - - None - - - Name - - Specifies the name of the secret to get. - - String - - String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - IncludeVersions - - Indicates that this cmdlet gets all versions of a secret. The current version of a secret is the first one on the list. If you specify this parameter you must also specify the Name and VaultName parameters. If you do not specify the IncludeVersions parameter, this cmdlet gets the current version of the secret with the specified Name . - - - SwitchParameter - - - False - - - - Get-AzKeyVaultSecret - - ParentResourceId - - KeyVault Resource Id. - - String - - String - - - None - - - Name - - Specifies the name of the secret to get. - - String - - String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - IncludeVersions - - Indicates that this cmdlet gets all versions of a secret. The current version of a secret is the first one on the list. If you specify this parameter you must also specify the Name and VaultName parameters. If you do not specify the IncludeVersions parameter, this cmdlet gets the current version of the secret with the specified Name . - - - SwitchParameter - - - False - - - - - - AsPlainText - - When set, the cmdlet will convert secret in secure string to the decrypted plaintext string as output. - - SwitchParameter - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Id - - The URI of the KeyVault Secret. Please ensure it follows the format: `https://<vault-name>.vault.azure.net/secrets/<secret-name>/<version>` - - String - - String - - - None - - - InRemovedState - - Specifies whether to show the previously deleted secrets in the output - - SwitchParameter - - SwitchParameter - - - False - - - IncludeVersions - - Indicates that this cmdlet gets all versions of a secret. The current version of a secret is the first one on the list. If you specify this parameter you must also specify the Name and VaultName parameters. If you do not specify the IncludeVersions parameter, this cmdlet gets the current version of the secret with the specified Name . - - SwitchParameter - - SwitchParameter - - - False - - - InputObject - - KeyVault Object. - - PSKeyVault - - PSKeyVault - - - None - - - Name - - Specifies the name of the secret to get. - - String - - String - - - None - - - ParentResourceId - - KeyVault Resource Id. - - String - - String - - - None - - - VaultName - - Specifies the name of the key vault to which the secret belongs. This cmdlet constructs the fully qualified domain name (FQDN) of a key vault based on the name that this parameter specifies and your current environment. - - String - - String - - - None - - - Version - - Specifies the secret version. This cmdlet constructs the FQDN of a secret based on the key vault name, your currently selected environment, the secret name, and the secret version. - - String - - String - - - None - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSecretIdentityItem - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSecret - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultSecretIdentityItem - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultSecret - - - - - - - - - - - - - - Example 1: Get all current versions of all secrets in a key vault - Get-AzKeyVaultSecret -VaultName 'Contoso' - -Vault Name : contoso -Name : secret1 -Version : -Id : https://contoso.vault.azure.net:443/secrets/secret1 -Enabled : True -Expires : 4/6/2018 3:59:43 PM -Not Before : -Created : 4/5/2018 11:46:28 PM -Updated : 4/6/2018 11:30:17 PM -Content Type : -Tags : - -Vault Name : contoso -Name : secret2 -Version : -Id : https://contoso.vault.azure.net:443/secrets/secret2 -Enabled : True -Expires : -Not Before : -Created : 4/11/2018 11:45:06 PM -Updated : 4/11/2018 11:45:06 PM -Content Type : -Tags : - - This command gets the current versions of all secrets in the key vault named Contoso. - - - - - - ------- Example 2: Get all versions of a specific secret ------- - Get-AzKeyVaultSecret -VaultName 'Contoso' -Name 'secret1' -IncludeVersions - -Vault Name : contoso -Name : secret1 -Version : 7128133570f84a71b48d7d0550deb74c -Id : https://contoso.vault.azure.net:443/secrets/secret1/7128133570f84a71b48d7d0550deb74c -Enabled : True -Expires : 4/6/2018 3:59:43 PM -Not Before : -Created : 4/5/2018 11:46:28 PM -Updated : 4/6/2018 11:30:17 PM -Content Type : -Tags : - -Vault Name : contoso -Name : secret1 -Version : 5d1a74ba2c454439886fb8509b6cab3c -Id : https://contoso.vault.azure.net:443/secrets/secret1/5d1a74ba2c454439886fb8509b6cab3c -Enabled : True -Expires : -Not Before : -Created : 4/5/2018 11:44:50 PM -Updated : 4/5/2018 11:44:50 PM -Content Type : -Tags : - - This command gets all versions of the secret named secret1 in the key vault named Contoso. - - - - - - --- Example 3: Get the current version of a specific secret --- - Get-AzKeyVaultSecret -VaultName 'Contoso' -Name 'secret1' - -Vault Name : contoso -Name : secret1 -Version : 7128133570f84a71b48d7d0550deb74c -Id : https://contoso.vault.azure.net:443/secrets/secret1/7128133570f84a71b48d7d0550deb74c -Enabled : True -Expires : 4/6/2018 3:59:43 PM -Not Before : -Created : 4/5/2018 11:46:28 PM -Updated : 4/6/2018 11:30:17 PM -Content Type : -Tags : - - This command gets the current version of the secret named secret1 in the key vault named Contoso. - - - - - - ---- Example 4: Get a specific version of a specific secret ---- - Get-AzKeyVaultSecret -VaultName 'Contoso' -Name 'secret1' -Version '5d1a74ba2c454439886fb8509b6cab3c' - -Vault Name : contoso -Name : secret1 -Version : 5d1a74ba2c454439886fb8509b6cab3c -Id : https://contoso.vault.azure.net:443/secrets/secret1/5d1a74ba2c454439886fb8509b6cab3c -Enabled : True -Expires : -Not Before : -Created : 4/5/2018 11:44:50 PM -Updated : 4/5/2018 11:44:50 PM -Content Type : -Tags : - - This command gets a specific version of the secret named secret1 in the key vault named Contoso. - - - - - - Example 5: Get the current version of a specific secret using Uri - Get-AzKeyVaultSecret -Id 'https://contoso.vault.azure.net/secrets/secret1/' - -Vault Name : contoso -Name : secret1 -Version : 7128133570f84a71b48d7d0550deb74c -Id : https://contoso.vault.azure.net:443/secrets/secret1/7128133570f84a71b48d7d0550deb74c -Enabled : True -Expires : 4/6/2018 3:59:43 PM -Not Before : -Created : 4/5/2018 11:46:28 PM -Updated : 4/6/2018 11:30:17 PM -Content Type : -Tags : - - This command gets the current version of the secret named secret1 in the key vault named Contoso. - - - - - - Example 6: Get a specific version of a specific secret using Uri - Get-AzKeyVaultSecret -Id 'https://contoso.vault.azure.net/secrets/secret1/7128133570f84a71b48d7d0550deb74c' - -Vault Name : contoso -Name : secret1 -Version : 7128133570f84a71b48d7d0550deb74c -Id : https://contoso.vault.azure.net:443/secrets/secret1/7128133570f84a71b48d7d0550deb74c -Enabled : True -Expires : 4/6/2018 3:59:43 PM -Not Before : -Created : 4/5/2018 11:46:28 PM -Updated : 4/6/2018 11:30:17 PM -Content Type : -Tags : - - This command gets a specific version of the secret named secret1 in the key vault named Contoso. - - - - - - Example 7: Get the current version of all the secrets using Uri - Get-AzKeyVaultSecret -Id 'https://contoso.vault.azure.net/secrets/' - -Vault Name : contoso -Name : secret1 -Version : 7128133570f84a71b48d7d0550deb74c -Id : https://contoso.vault.azure.net:443/secrets/secret1/7128133570f84a71b48d7d0550deb74c -Enabled : True -Expires : 4/6/2018 3:59:43 PM -Not Before : -Created : 4/5/2018 11:46:28 PM -Updated : 4/6/2018 11:30:17 PM -Content Type : -Tags : - -Vault Name : contoso -Name : secret2 -Version : 7128133570f84a71b48d7d0550deb74c -Id : https://contoso.vault.azure.net:443/secrets/secret2/7128133570f84a71b48d7d0550deb74c -Enabled : True -Expires : 4/6/2018 3:59:43 PM -Not Before : -Created : 4/5/2018 11:46:28 PM -Updated : 4/6/2018 11:30:17 PM -Content Type : -Tags : - - This command gets the current version of all the secrets in the key vault named Contoso. - - - - - - Example 8: Get the plain text value of the current version of a specific secret - $secretText = Get-AzKeyVaultSecret -VaultName 'Contoso' -Name 'ITSecret' -AsPlainText - - The cmdlet returns the secret as a string when `-AsPlainText` is applied. Note: When listing secrets, i.e. not providing `-Name`, the `-AsPlainText` is ignored. - - - - - - Example 9: Get all the secrets that have been deleted but not purged for this key vault. - Get-AzKeyVaultSecret -VaultName 'Contoso' -InRemovedState - -Vault Name : contoso -Name : secret1 -Id : https://contoso.vault.azure.net:443/secrets/secret1 -Deleted Date : 4/4/2018 8:51:58 PM -Scheduled Purge Date : 7/3/2018 8:51:58 PM -Enabled : True -Expires : -Not Before : -Created : 4/4/2018 8:51:03 PM -Updated : 4/4/2018 8:51:03 PM -Content Type : -Tags : - -Vault Name : contoso -Name : secret2 -Id : https://contoso.vault.azure.net:443/secrets/secret2 -Deleted Date : 5/7/2018 7:56:34 PM -Scheduled Purge Date : 8/5/2018 7:56:34 PM -Enabled : True -Expires : -Not Before : -Created : 4/6/2018 8:39:15 PM -Updated : 4/6/2018 10:11:24 PM -Content Type : -Tags : - - This command gets all the secrets that have been previously deleted, but not purged, in the key vault named Contoso. - - - - - - Example 10: Gets the secret ITSecret that has been deleted but not purged for this key vault. - Get-AzKeyVaultSecret -VaultName 'Contoso' -Name 'secret1' -InRemovedState - -Vault Name : contoso -Name : secret1 -Version : 689d23346e9c42a2a64f4e3d75094dcc -Id : https://contoso.vault.azure.net:443/secrets/secret1/689d23346e9c42a2a64f4e3d75094dcc -Deleted Date : 4/4/2018 8:51:58 PM -Scheduled Purge Date : 7/3/2018 8:51:58 PM -Enabled : True -Expires : -Not Before : -Created : 4/4/2018 8:51:03 PM -Updated : 4/4/2018 8:51:03 PM -Content Type : -Tags : - - This command gets the secret 'secret1' that has been previously deleted, but not purged, in the key vault named Contoso. This command will return metadata such as the deletion date, and the scheduled purging date of this deleted secret. - - - - - - Example 11: Get all current versions of all secrets in a key vault using filtering - Get-AzKeyVaultSecret -VaultName 'Contoso' -Name "secret*" - -Vault Name : contoso -Name : secret1 -Version : -Id : https://contoso.vault.azure.net:443/secrets/secret1 -Enabled : True -Expires : 4/6/2018 3:59:43 PM -Not Before : -Created : 4/5/2018 11:46:28 PM -Updated : 4/6/2018 11:30:17 PM -Content Type : -Tags : - -Vault Name : contoso -Name : secret2 -Version : -Id : https://contoso.vault.azure.net:443/secrets/secret2 -Enabled : True -Expires : -Not Before : -Created : 4/11/2018 11:45:06 PM -Updated : 4/11/2018 11:45:06 PM -Content Type : -Tags : - - This command gets the current versions of all secrets in the key vault named Contoso that start with "secret". - - - - - - Example 12: Get a secret in Azure Key Vault by command Get-Secret in module Microsoft.PowerShell.SecretManagement - # Install module Microsoft.PowerShell.SecretManagement -Install-Module Microsoft.PowerShell.SecretManagement -Repository PSGallery -AllowPrerelease -# Register vault for Secret Management -Register-SecretVault -Name AzKeyVault -ModuleName Az.KeyVault -VaultParameters @{ AZKVaultName = 'test-kv'; SubscriptionId = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' } -# Set secret for vault AzKeyVault -$secure = ConvertTo-SecureString -String "****" -AsPlainText -Force -Set-Secret -Vault AzKeyVault -Name secureSecret -SecureStringSecret $secure -Get-Secret -Vault AzKeyVault -Name secureSecret -AsPlainText - -Password - - This example Gets a secret named `secureSecret` in Azure Key Vault named `test-kv` by command `Get-Secret` in module `Microsoft.PowerShell.SecretManagement`. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvaultsecret - - - Remove-AzKeyVaultSecret - - - - Undo-AzKeyVaultSecretRemoval - - - - Set-AzKeyVaultSecret - - - - - - - Get-AzKeyVaultSetting - Get - AzKeyVaultSetting - - Retrieves a specified key vault account setting or all available key vault account settings that can be configured. - - - - The Get-AzKeyVaultSetting cmdlet gets key vault account settings. This cmdlet gets a specific key vault account setting or all key vault account settings. - - - - Get-AzKeyVaultSetting - - HsmId - - Hsm Resource Id. - - System.String - - System.String - - - None - - - Name - - Name of the setting. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzKeyVaultSetting - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - Name - - Name of the setting. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzKeyVaultSetting - - HsmObject - - Hsm Object. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - Name - - Name of the setting. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmId - - Hsm Resource Id. - - System.String - - System.String - - - None - - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - HsmObject - - Hsm Object. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - Name - - Name of the setting. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSetting - - - - - - - - - - - - - - ----- Example 1: Get all account settings in a Managed HSM ----- - Get-AzKeyVaultSetting -HsmName testmhsm - -Name Value Type HSM Name ----- ----- ---- -------- -AllowKeyManagementOperationsThroughARM false boolean testmhsm - - This cmdlet gets all account settings in a Managed HSM named `testmhsm`. - - - - - - Example 2: Get a specific key vault account setting in a Managed HSM - Get-AzKeyVaultSetting -HsmName testmhsm -Name AllowKeyManagementOperationsThroughARM - -Name Value Type HSM Name ----- ----- ---- -------- -AllowKeyManagementOperationsThroughARM false boolean testmhsm - - This cmdlet gets a specific key vault account setting named `AllowKeyManagementOperationsThroughARM` in a Managed HSM named `testmhsm`. - - - - - - Example 3: Get a specific key vault account setting in a Managed HSM via HsmObject - $hsmObject = Get-AzKeyVaultManagedHsm -Name testmhsm -Get-AzKeyVaultSetting -HsmObject $hsmObject -Name AllowKeyManagementOperationsThroughARM - -Name Value Type HSM Name ----- ----- ---- -------- -AllowKeyManagementOperationsThroughARM false boolean testmhsm - - This cmdlet gets a specific key vault account setting named `AllowKeyManagementOperationsThroughARM` in a Managed HSM named `testmhsm` via HsmObject. - - - - - - Example 4: Get a specific key vault account setting in a Managed HSM by piping HsmObject - Get-AzKeyVaultManagedHsm -Name testmhsm | Get-AzKeyVaultSetting -Name AllowKeyManagementOperationsThroughARM - -Name Value Type HSM Name ----- ----- ---- -------- -AllowKeyManagementOperationsThroughARM false boolean testmhsm - - This cmdlet gets a specific key vault account setting named `AllowKeyManagementOperationsThroughARM` in a Managed HSM named `testmhsm` via HsmObject. - - - - - - Example 4: Get a specific key vault account setting in a Managed HSM by piping HsmObject - Get-AzKeyVaultManagedHsm -Name testmhsm | Get-AzKeyVaultSetting -Name AllowKeyManagementOperationsThroughARM - -Name Value Type HSM Name ----- ----- ---- -------- -AllowKeyManagementOperationsThroughARM false boolean testmhsm - - This cmdlet gets a specific key vault account setting named `AllowKeyManagementOperationsThroughARM` in a Managed HSM named `testmhsm` by piping HsmObject. - - - - - - Example 5: Get a specific key vault account setting in a Managed HSM via HsmId - Get-AzKeyVaultSetting -HsmId /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/managedHSMs/testmhsm -Name AllowKeyManagementOperationsThroughARM - -Name Value Type HSM Name ----- ----- ---- -------- -AllowKeyManagementOperationsThroughARM false boolean testmhsm - - This cmdlet gets a specific key vault account setting named `AllowKeyManagementOperationsThroughARM` in a Managed HSM named `testmhsm` via HsmId. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvaultsetting - - - Update-AzKeyVaultSetting - - - - - - - Import-AzKeyVaultCertificate - Import - AzKeyVaultCertificate - - Imports a certificate to a key vault. - - - - The Import-AzKeyVaultCertificate cmdlet imports a certificate into a key vault. You can create the certificate to import by using one of the following methods: - Use `Add-AzKeyVaultCertificate` to create a certificate signing request and submit it to a certificate authority. See https://learn.microsoft.com/azure/key-vault/certificates/create-certificate-signing-request - - Use an existing certificate package file, such as a .pfx or .p12 file, which contains both the certificate and private key. - - - - Import-AzKeyVaultCertificate - - VaultName - - Specifies the key vault name into which this cmdlet imports certificates. This cmdlet constructs the fully qualified domain name (FQDN) of a key vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Name - - Specifies the certificate name. This cmdlet constructs the fully qualified domain name (FQDN) of a certificate from key vault name, currently selected environment, and certificate name. - - System.String - - System.String - - - None - - - CertificateCollection - - Specifies the certificate collection to add to a key vault. - - System.Security.Cryptography.X509Certificates.X509Certificate2Collection - - System.Security.Cryptography.X509Certificates.X509Certificate2Collection - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PolicyObject - - An in-memory object to specify management policy for the certificate. Mutual-exclusive to PolicyPath. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - - None - - - PolicyPath - - A file path to specify management policy for the certificate that contains JSON encoded policy definition. Mutual-exclusive to PolicyObject. - - System.String - - System.String - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Import-AzKeyVaultCertificate - - VaultName - - Specifies the key vault name into which this cmdlet imports certificates. This cmdlet constructs the fully qualified domain name (FQDN) of a key vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Name - - Specifies the certificate name. This cmdlet constructs the fully qualified domain name (FQDN) of a certificate from key vault name, currently selected environment, and certificate name. - - System.String - - System.String - - - None - - - CertificateString - - Base64 encoded representation of the certificate object to import. This certificate needs to contain the private key. - - System.String - - System.String - - - None - - - ContentType - - Specifies the type of the certificate to be imported. Regards certificate string as PFX format by default. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Password - - Specifies the password for a certificate file. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - PolicyObject - - An in-memory object to specify management policy for the certificate. Mutual-exclusive to PolicyPath. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - - None - - - PolicyPath - - A file path to specify management policy for the certificate that contains JSON encoded policy definition. Mutual-exclusive to PolicyObject. - - System.String - - System.String - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Import-AzKeyVaultCertificate - - VaultName - - Specifies the key vault name into which this cmdlet imports certificates. This cmdlet constructs the fully qualified domain name (FQDN) of a key vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Name - - Specifies the certificate name. This cmdlet constructs the fully qualified domain name (FQDN) of a certificate from key vault name, currently selected environment, and certificate name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - FilePath - - Specifies the path of the certificate file that this cmdlet imports. - - System.String - - System.String - - - None - - - Password - - Specifies the password for a certificate file. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - PolicyObject - - An in-memory object to specify management policy for the certificate. Mutual-exclusive to PolicyPath. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - - None - - - PolicyPath - - A file path to specify management policy for the certificate that contains JSON encoded policy definition. Mutual-exclusive to PolicyObject. - - System.String - - System.String - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - CertificateCollection - - Specifies the certificate collection to add to a key vault. - - System.Security.Cryptography.X509Certificates.X509Certificate2Collection - - System.Security.Cryptography.X509Certificates.X509Certificate2Collection - - - None - - - CertificateString - - Base64 encoded representation of the certificate object to import. This certificate needs to contain the private key. - - System.String - - System.String - - - None - - - ContentType - - Specifies the type of the certificate to be imported. Regards certificate string as PFX format by default. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - FilePath - - Specifies the path of the certificate file that this cmdlet imports. - - System.String - - System.String - - - None - - - Name - - Specifies the certificate name. This cmdlet constructs the fully qualified domain name (FQDN) of a certificate from key vault name, currently selected environment, and certificate name. - - System.String - - System.String - - - None - - - Password - - Specifies the password for a certificate file. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - PolicyObject - - An in-memory object to specify management policy for the certificate. Mutual-exclusive to PolicyPath. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - - None - - - PolicyPath - - A file path to specify management policy for the certificate that contains JSON encoded policy definition. Mutual-exclusive to PolicyObject. - - System.String - - System.String - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - VaultName - - Specifies the key vault name into which this cmdlet imports certificates. This cmdlet constructs the fully qualified domain name (FQDN) of a key vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - System.Security.Cryptography.X509Certificates.X509Certificate2Collection - - - - - - - - System.Collections.Hashtable - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificate - - - - - - - - - - - - - - ---------- Example 1: Import a key vault certificate ---------- - $Password = ConvertTo-SecureString -String "****" -AsPlainText -Force -Import-AzKeyVaultCertificate -VaultName "ContosoKV01" -Name "ImportCert01" -FilePath "C:\Users\contosoUser\Desktop\import.pfx" -Password $Password - -Name : importCert01 -Certificate : [Subject] - CN=contoso.com - - [Issuer] - CN=contoso.com - - [Serial Number] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - - [Not Before] - 2/8/2016 3:11:45 PM - - [Not After] - 8/8/2016 4:21:45 PM - - [Thumbprint] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - -Thumbprint : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -Tags : -Enabled : True -Created : 2/8/2016 11:50:43 PM -Updated : 2/8/2016 11:50:43 PM - - The first command uses the ConvertTo-SecureString cmdlet to create a secure password, and then stores it in the $Password variable. The second command imports the certificate named ImportCert01 into the CosotosoKV01 key vault. - - - - - - Example 2: Import a key vault certificate by CertificateString - $Password = ConvertTo-SecureString -String "****" -AsPlainText -Force -$Base64String = [System.Convert]::ToBase64String([System.IO.File]::ReadAllBytes("import.pfx")) -Import-AzKeyVaultCertificate -VaultName "ContosoKV01" -Name "ImportCert01" -CertificateString $Base64String -Password $Password - -Name : importCert01 -Certificate : [Subject] - CN=contoso.com - - [Issuer] - CN=contoso.com - - [Serial Number] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - - [Not Before] - 2/8/2016 3:11:45 PM - - [Not After] - 8/8/2016 4:21:45 PM - - [Thumbprint] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - -Thumbprint : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -Tags : -Enabled : True -Created : 2/8/2016 11:50:43 PM -Updated : 2/8/2016 11:50:43 PM - - The first command uses the ConvertTo-SecureString cmdlet to create a secure password, and then stores it in the $Password variable. The second command reads a certificate as a Base64 encoded representation. The third command imports the certificate named ImportCert01 into the CosotosoKV01 key vault. - - - - - - -- Example 3: Import a key vault certificate with PolicyFile -- - $Password = ConvertTo-SecureString -String "****" -AsPlainText -Force -Import-AzKeyVaultCertificate -VaultName "ContosoKV01" -Name "ImportCert01" -FilePath "C:\Users\contosoUser\Desktop\import.pfx" -Password $Password -PolicyPath "C:\Users\contosoUser\Desktop\policy.json" - -Name : importCert01 -Certificate : [Subject] - CN=contoso.com - - [Issuer] - CN=contoso.com - - [Serial Number] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - - [Not Before] - 2/8/2016 3:11:45 PM - - [Not After] - 8/8/2016 4:21:45 PM - - [Thumbprint] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - -KeyId : https://ContosoKV01.vault.azure.net/keys/ImportCert01/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -SecretId : https://ContosoKV01.vault.azure.net/secrets/ImportCert01/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -Thumbprint : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -Policy : - Secret Content Type: application/x-pkcs12 - Issuer Name : Unknown - Created On : 3/22/2023 6:00:52 AM - Updated On : 4/27/2023 9:52:53 AM - ... -RecoveryLevel : Recoverable+Purgeable -Enabled : True -Expires : 6/9/2023 6:20:26 AM -NotBefore : 3/11/2023 6:20:26 AM -Created : 4/24/2023 9:05:51 AM -Updated : 4/24/2023 9:05:51 AM -Tags : {} -VaultName : ContosoKV01 -Name : ImportCert01 -Version : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -Id : https://ContosoKV01.vault.azure.net/certificates/ImportCert01/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - - The first command uses the ConvertTo-SecureString cmdlet to create a secure password, and then stores it in the $Password variable. The second command imports the certificate named ImportCert01 into the CosotosoKV01 key vault with a policy defined by file. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/import-azkeyvaultcertificate - - - Remove-AzKeyVaultCertificate - - - - Creating and merging CSR in Key Vault - https://learn.microsoft.com/azure/key-vault/certificates/create-certificate-signing-request - - - - - - Import-AzKeyVaultSecurityDomain - Import - AzKeyVaultSecurityDomain - - Imports previously exported security domain data to a managed HSM. - - - - This cmdlet imports previously exported security domain data to a managed HSM. - - - - Import-AzKeyVaultSecurityDomain - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DownloadExchangeKey - - When specified, an exchange key will be downloaded to specified path. - - - System.Management.Automation.SwitchParameter - - - False - - - Force - - Specify whether to overwrite existing file. - - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Name of the managed HSM. - - System.String - - System.String - - - None - - - OutFile - - Local file path to store the security domain encrypted with the exchange key. - - System.String - - System.String - - - None - - - PassThru - - When specified, a boolean will be returned when cmdlet succeeds. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Import-AzKeyVaultSecurityDomain - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExchangeKeyPath - - Local path of exchange key used to encrypt the security domain data. Generated by running Import-AzKeyVaultSecurityDomain with -DownloadExchangeKey. - - System.String - - System.String - - - None - - - Force - - Specify whether to overwrite existing file. - - - System.Management.Automation.SwitchParameter - - - False - - - Keys - - Information about the keys that are used to decrypt the security domain data. See examples for how it is constructed. - - Microsoft.Azure.Commands.KeyVault.SecurityDomain.Models.KeyPath[] - - Microsoft.Azure.Commands.KeyVault.SecurityDomain.Models.KeyPath[] - - - None - - - OutFile - - Local file path to store the security domain encrypted with the exchange key. - - System.String - - System.String - - - None - - - PassThru - - When specified, a boolean will be returned when cmdlet succeeds. - - - System.Management.Automation.SwitchParameter - - - False - - - RestoreBlob - - When specified, the security domain data will be decrypted and encrypted using generated ExchangeKey locally. - - - System.Management.Automation.SwitchParameter - - - False - - - SecurityDomainPath - - Specify the path to the encrypted security domain data. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Import-AzKeyVaultSecurityDomain - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ImportRestoredBlob - - When specified, SecurityDomainPath should be encrypted security domain data generated by Restore-AzKeyVaultSecurityDomainBlob. - - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Name of the managed HSM. - - System.String - - System.String - - - None - - - PassThru - - When specified, a boolean will be returned when cmdlet succeeds. - - - System.Management.Automation.SwitchParameter - - - False - - - SecurityDomainPath - - Specify the path to the encrypted security domain data. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Import-AzKeyVaultSecurityDomain - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Object representing a managed HSM. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - - None - - - Keys - - Information about the keys that are used to decrypt the security domain data. See examples for how it is constructed. - - Microsoft.Azure.Commands.KeyVault.SecurityDomain.Models.KeyPath[] - - Microsoft.Azure.Commands.KeyVault.SecurityDomain.Models.KeyPath[] - - - None - - - PassThru - - When specified, a boolean will be returned when cmdlet succeeds. - - - System.Management.Automation.SwitchParameter - - - False - - - SecurityDomainPath - - Specify the path to the encrypted security domain data. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Import-AzKeyVaultSecurityDomain - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Keys - - Information about the keys that are used to decrypt the security domain data. See examples for how it is constructed. - - Microsoft.Azure.Commands.KeyVault.SecurityDomain.Models.KeyPath[] - - Microsoft.Azure.Commands.KeyVault.SecurityDomain.Models.KeyPath[] - - - None - - - Name - - Name of the managed HSM. - - System.String - - System.String - - - None - - - PassThru - - When specified, a boolean will be returned when cmdlet succeeds. - - - System.Management.Automation.SwitchParameter - - - False - - - SecurityDomainPath - - Specify the path to the encrypted security domain data. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DownloadExchangeKey - - When specified, an exchange key will be downloaded to specified path. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ExchangeKeyPath - - Local path of exchange key used to encrypt the security domain data. Generated by running Import-AzKeyVaultSecurityDomain with -DownloadExchangeKey. - - System.String - - System.String - - - None - - - Force - - Specify whether to overwrite existing file. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ImportRestoredBlob - - When specified, SecurityDomainPath should be encrypted security domain data generated by Restore-AzKeyVaultSecurityDomainBlob. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Object representing a managed HSM. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - - None - - - Keys - - Information about the keys that are used to decrypt the security domain data. See examples for how it is constructed. - - Microsoft.Azure.Commands.KeyVault.SecurityDomain.Models.KeyPath[] - - Microsoft.Azure.Commands.KeyVault.SecurityDomain.Models.KeyPath[] - - - None - - - Name - - Name of the managed HSM. - - System.String - - System.String - - - None - - - OutFile - - Local file path to store the security domain encrypted with the exchange key. - - System.String - - System.String - - - None - - - PassThru - - When specified, a boolean will be returned when cmdlet succeeds. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - RestoreBlob - - When specified, the security domain data will be decrypted and encrypted using generated ExchangeKey locally. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - SecurityDomainPath - - Specify the path to the encrypted security domain data. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - -------------- Example 1: Import Security domain -------------- - $keys = @{PublicKey = "sd1.cer"; PrivateKey = "sd1.key"}, @{PublicKey = "sd2.cer"; PrivateKey = "sd2.key"}, @{PublicKey = "sd3.cer"; PrivateKey = "sd3.key"} -Import-AzKeyVaultSecurityDomain -Name testmhsm -Keys $keys -SecurityDomainPath sd.ps.json - - First, the keys need be provided to decrypt the security domain data. Then, The Import-AzKeyVaultSecurityDomain command restores previous backed up security domain data to a managed HSM using these keys. - - - - - - ----- Example 2: Import Security domain by separate steps ----- - $exchangeKeyOutputPath = "ExchangeKey.cer" -$SecurityDomainRestoredBlob = "HsmRestoreBlob.json" -$keys = @{PublicKey = "sd1.cer"; PrivateKey = "sd1.key"}, @{PublicKey = "sd2.cer"; PrivateKey = "sd2.key"}, @{PublicKey = "sd3.cer"; PrivateKey = "sd3.key"} -Import-AzKeyVaultSecurityDomain -Name testmhsm -OutFile $exchangeKeyOutputPath -DownloadExchangeKey -Import-AzKeyVaultSecurityDomain -Keys $keys -ExchangeKeyPath $exchangeKeyPath -SecurityDomainPath sd.ps.json -OutFile sd_restored.ps.json -RestoreBlob -Import-AzKeyVaultSecurityDomain -Name testmhsm -SecurityDomainPath $SecurityDomainRestoredBlob -ImportRestoredBlob - - First, an exchange key should be downloaded by adding `-DownloadExchangeKey`. Then, the security domain data should be decrypted locally using key pairs and encrypted using generated exchange key by adding `-RestoreBlob`. Finally, the restored security domain data can be imported to a managed HSM using `-ImportRestoredBlob`. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/import-azkeyvaultsecuritydomain - - - - - - Invoke-AzKeyVaultKeyOperation - Invoke - AzKeyVaultKeyOperation - - Performs operation like "Encrypt", "Decrypt", "Wrap" or "Unwrap" using a specified key stored in a key vault or managed hsm. - - - - Invoke-AzKeyVaultKeyOperation cmdlet supports 1. Encrypting an arbitrary sequence of bytes using an encryption key. 2. Decrypting a single block of encrypted data. 3. Wrapping a symmetric key using a specified key. 4. Unwrapping a symmetric key using the specified key that was initially used for wrapping that key. - - - - Invoke-AzKeyVaultKeyOperation - - HsmName - - HSM name. - - System.String - - System.String - - - None - - - Name - - Key name. - - System.String - - System.String - - - None - - - Algorithm - - Algorithm identifier - - System.String - - System.String - - - None - - - ByteArrayValue - - The value to be operated in byte array format. - - System.Byte[] - - System.Byte[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Operation - - Algorithm identifier - - System.String - - System.String - - - None - - - Version - - Key version. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Invoke-AzKeyVaultKeyOperation - - InputObject - - Key object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - None - - - Algorithm - - Algorithm identifier - - System.String - - System.String - - - None - - - ByteArrayValue - - The value to be operated in byte array format. - - System.Byte[] - - System.Byte[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Operation - - Algorithm identifier - - System.String - - System.String - - - None - - - Version - - Key version. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Invoke-AzKeyVaultKeyOperation - - VaultName - - Vault name. - - System.String - - System.String - - - None - - - Name - - Key name. - - System.String - - System.String - - - None - - - Algorithm - - Algorithm identifier - - System.String - - System.String - - - None - - - ByteArrayValue - - The value to be operated in byte array format. - - System.Byte[] - - System.Byte[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Operation - - Algorithm identifier - - System.String - - System.String - - - None - - - Version - - Key version. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Algorithm - - Algorithm identifier - - System.String - - System.String - - - None - - - ByteArrayValue - - The value to be operated in byte array format. - - System.Byte[] - - System.Byte[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmName - - HSM name. - - System.String - - System.String - - - None - - - InputObject - - Key object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - None - - - Name - - Key name. - - System.String - - System.String - - - None - - - Operation - - Algorithm identifier - - System.String - - System.String - - - None - - - VaultName - - Vault name. - - System.String - - System.String - - - None - - - Version - - Key version. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyOperationResult - - - - - - - - - - - - - - ---- Example 1: Encrypts byte array using an encryption key ---- - $byteArray = [Byte[]]@(58, 219) -$encryptedData = Invoke-AzKeyVaultKeyOperation -Operation Encrypt -Algorithm RSA1_5 -VaultName test-kv -Name test-key -ByteArrayValue $byteArray -$encryptedData - -KeyId : https://bez-kv.vault.azure.net/keys/bez-key/c96ce0fb18de446c9f4b911b686988af -RawResult : {21, 39, 82, 56…} -Algorithm : RSA1_5 - - Encrypts `$byteArray` using test-key stored in test-kv. - - - - - - ---- Example 2: Decrypts byte array using an encryption key ---- - $decryptedData = Invoke-AzKeyVaultKeyOperation -Operation Decrypt -Algorithm RSA1_5 -VaultName test-kv -Name test-key -ByteArrayValue $encryptedData.RawResult -$decryptedData - -KeyId : https://bez-kv.vault.azure.net/keys/bez-key/c96ce0fb18de446c9f4b911b686988af -RawResult : {58, 219} -Algorithm : RSA1_5 - - Decrypts `$encryptedData.RawResult` using test-key stored in test-kv. The `$decryptedData.RawResult` is same with `$byteArray`, which is original data. - - - - - - ---- Example 3: Encrypts plain text using an encryption key ---- - $plainText = "test" -$byteArray = [system.Text.Encoding]::UTF8.GetBytes($plainText) -$encryptedData = Invoke-AzKeyVaultKeyOperation -Operation Encrypt -Algorithm RSA1_5 -VaultName test-kv -Name test-key -ByteArrayValue $byteArray -$encryptedData - -KeyId : https://test-kv.vault.azure.net/keys/test-key/bd8b77352a2443d4983bd70e9f660bc6 -RawResult : {58, 219, 6, 236…} -Algorithm : RSA1_5 - - Encrypts string "test" using test-key stored in test-kv. The `RawResult` is the encrypted result in byte array format. - - - - - - ------- Example 4: Decrypt encrypted data to plain text ------- - $decryptedData = Invoke-AzKeyVaultKeyOperation -Operation Decrypt -Algorithm RSA1_5 -VaultName test-kv -Name test-key -ByteArrayValue $encryptedData.RawResult -$plainText = [system.Text.Encoding]::UTF8.GetString($decryptedData.RawResult) -$plainText - -test - - Decrypts encrypted data that is encrypted using test-key stored in test-kv. The `RawResult` is the decrypted result in byte array format. - - - - - - ---- Example 5: Wraps a symmetric key using a specified key ---- - $key = "ovQIlbB0DgWhZA7sgkPxbg9H-Ly-VlNGPSgGrrZvlIo" -$byteArray = [system.Text.Encoding]::UTF8.GetBytes($key) -$wrappedResult = Invoke-AzKeyVaultKeyOperation -Operation Wrap -Algorithm RSA1_5 -VaultName test-kv -Name test-key -ByteArrayValue $byteArray -$wrappedResult | Format-List - -KeyId : https://test-kv.vault.azure.net/keys/test-key/375cdf20252043b79c8ca0c57b6c7679 -RawResult : {58, 219, 6, 236…} -Algorithm : RSA1_5 - - Wraps a symmetric key using key named test-key stored in test-kv. The `RawResult` is wrapped result in byte array format. - - - - - - --- Example 6: Unwraps a symmetric key using a specified key --- - $unwrappedResult = Invoke-AzKeyVaultKeyOperation -Operation Unwrap -Algorithm RSA1_5 -VaultName test-kv -Name test-key -ByteArrayValue $wrappedResult.RawResult -$key = [system.Text.Encoding]::UTF8.GetString($unwrappedResult.RawResult) -$key - -ovQIlbB0DgWhZA7sgkPxbg9H-Ly-VlNGPSgGrrZvlIo - - Unwraps a symmetric key using a specified key test-key stored in test-kv. The `RawResult` is unwrapped result in byte array format. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/invoke-azkeyvaultkeyoperation - - - - - - Invoke-AzKeyVaultKeyRotation - Invoke - AzKeyVaultKeyRotation - - Creates a new key version in Key Vault, stores it, then returns the new key. - - - - The cmdlet will rotate the key based on the key policy. It requires the keys/rotate permission. It will returns a new version of the rotate key. - - - - Invoke-AzKeyVaultKeyRotation - - InputObject - - Key object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Invoke-AzKeyVaultKeyRotation - - VaultName - - Vault name. - - System.String - - System.String - - - None - - - Name - - Key name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Key object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - None - - - Name - - Key name. - - System.String - - System.String - - - None - - - VaultName - - Vault name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKey - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Invoke-AzKeyVaultKeyRotation -VaultName test-kv -Name test-key - -Vault/HSM Name : test-kv -Name : test-key -Key Type : RSA -Key Size : 2048 -Curve Name : -Version : xxxxxxxxxxxxxx4939xxxxxxxxxxxxxxxx -Id : https://test-kv.vault.azure.net:443/keys/test-key/xxxxxxxxxxxxxx4939xxxxxxxxxxxxxxxx -Enabled : True -Expires : -Not Before : -Created : 12/10/2021 2:57:58 AM -Updated : 12/10/2021 2:57:58 AM -Recovery Level : Recoverable+Purgeable -Tags : - - This cmdlet creates a new key version for test-key. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/invoke-azkeyvaultkeyrotation - - - Get-AzKeyVaultKeyRotationPolicy.md - - - - Set-AzKeyVaultKeyRotationPolicy.md - - - - - - - New-AzKeyVault - New - AzKeyVault - - Creates a key vault. - - - - The New-AzKeyVault cmdlet creates a key vault in the specified resource group. This cmdlet also grants permissions to the currently logged on user to add, remove, or list keys and secrets in the key vault. Note: If you see the error **The subscription is not registered to use namespace 'Microsoft.KeyVault'** when you try to create your new key vault, run Register-AzResourceProvider -ProviderNamespace "Microsoft.KeyVault" and then rerun your New-AzKeyVault command. For more information, see Register-AzResourceProvider. - The cmdlet may call below Microsoft Graph API according to input parameters: - - GET /directoryObjects/{id} - - GET /users/{id} - - GET /servicePrincipals/{id} - - GET /groups/{id} - - GET /me - - - - New-AzKeyVault - - Name - - Specifies a name of the key vault to create. The name can be any combination of letters, digits, or hyphens. The name must start and end with a letter or digit. The name must be universally unique. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of an existing resource group in which to create the key vault. - - System.String - - System.String - - - None - - - Location - - Specifies the Azure region in which to create the key vault. Use the command Get-AzLocation (/powershell/module/az.resources/get-azlocation)to see your choices. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisableRbacAuthorization - - If specified, disables to authorize data actions by Role Based Access Control (RBAC), and then the access policies specified in vault properties will be honored. Note that management actions are always authorized with RBAC. - - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForDeployment - - Enables the Microsoft.Compute resource provider to retrieve secrets from this key vault when this key vault is referenced in resource creation, for example when creating a virtual machine. - - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForDiskEncryption - - Enables the Azure disk encryption service to get secrets and unwrap keys from this key vault. - - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForTemplateDeployment - - Enables Azure Resource Manager to get secrets from this key vault when this key vault is referenced in a template deployment. - - - System.Management.Automation.SwitchParameter - - - False - - - EnablePurgeProtection - - If specified, protection against immediate deletion is enabled for this vault; requires soft delete to be enabled as well. - - - System.Management.Automation.SwitchParameter - - - False - - - NetworkRuleSet - - Specifies the network rule set of the vault. It governs the accessibility of the key vault from specific network locations. Created by `New-AzKeyVaultNetworkRuleSetObject`. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleSet - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleSet - - - None - - - PublicNetworkAccess - - Specifies whether the vault will accept traffic from public internet. If set to 'disabled' all traffic except private endpoint traffic and that that originates from trusted services will be blocked. This will override the set firewall rules, meaning that even if the firewall rules are present we will not honor the rules. By default, we will enable public network access. - - System.String - - System.String - - - None - - - Sku - - Specifies the SKU of the key vault instance. For information about which features are available for each SKU, see the Azure Key Vault Pricing website (https://go.microsoft.com/fwlink/?linkid=512521). - - System.String - - System.String - - - None - - - SoftDeleteRetentionInDays - - Specifies how long deleted resources are retained, and how long until a vault or an object in the deleted state can be purged. The default is 90 days. - - System.Int32 - - System.Int32 - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisableRbacAuthorization - - If specified, disables to authorize data actions by Role Based Access Control (RBAC), and then the access policies specified in vault properties will be honored. Note that management actions are always authorized with RBAC. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForDeployment - - Enables the Microsoft.Compute resource provider to retrieve secrets from this key vault when this key vault is referenced in resource creation, for example when creating a virtual machine. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForDiskEncryption - - Enables the Azure disk encryption service to get secrets and unwrap keys from this key vault. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForTemplateDeployment - - Enables Azure Resource Manager to get secrets from this key vault when this key vault is referenced in a template deployment. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnablePurgeProtection - - If specified, protection against immediate deletion is enabled for this vault; requires soft delete to be enabled as well. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Location - - Specifies the Azure region in which to create the key vault. Use the command Get-AzLocation (/powershell/module/az.resources/get-azlocation)to see your choices. - - System.String - - System.String - - - None - - - Name - - Specifies a name of the key vault to create. The name can be any combination of letters, digits, or hyphens. The name must start and end with a letter or digit. The name must be universally unique. - - System.String - - System.String - - - None - - - NetworkRuleSet - - Specifies the network rule set of the vault. It governs the accessibility of the key vault from specific network locations. Created by `New-AzKeyVaultNetworkRuleSetObject`. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleSet - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleSet - - - None - - - PublicNetworkAccess - - Specifies whether the vault will accept traffic from public internet. If set to 'disabled' all traffic except private endpoint traffic and that that originates from trusted services will be blocked. This will override the set firewall rules, meaning that even if the firewall rules are present we will not honor the rules. By default, we will enable public network access. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of an existing resource group in which to create the key vault. - - System.String - - System.String - - - None - - - Sku - - Specifies the SKU of the key vault instance. For information about which features are available for each SKU, see the Azure Key Vault Pricing website (https://go.microsoft.com/fwlink/?linkid=512521). - - System.String - - System.String - - - None - - - SoftDeleteRetentionInDays - - Specifies how long deleted resources are retained, and how long until a vault or an object in the deleted state can be purged. The default is 90 days. - - System.Int32 - - System.Int32 - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - System.Management.Automation.SwitchParameter - - - - - - - - System.Collections.Hashtable - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - - - - - - - ------------ Example 1: Create a Standard key vault ------------ - New-AzKeyVault -VaultName 'Contoso03Vault' -ResourceGroupName 'Group14' -Location 'East US' - -Vault Name : contoso03vault -Resource Group Name : group14 -Location : East US -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/group14/providers - /Microsoft.KeyVault/vaults/contoso03vault -Vault URI : https://contoso03vault.vault.azure.net/ -Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx -SKU : Standard -Enabled For Deployment? : -Enabled For Template Deployment? : -Enabled For Disk Encryption? : -Soft Delete Enabled? : True -Access Policies : - Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Object ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Application ID : - Display Name : User Name (username@microsoft.com) - Permissions to Keys : all - Permissions to Secrets : all - Permissions to Certificates : all - Permissions to (Key Vault Managed) Storage : all - -Network Rule Set : - Default Action : Allow - Bypass : AzureServices - IP Rules : - Virtual Network Rules : - -Tags : - - This command creates a key vault named Contoso03Vault, in the Azure region East US. The command adds the key vault to the resource group named Group14. Because the command does not specify a value for the SKU parameter, it creates a Standard key vault. - - - - - - ------------ Example 2: Create a Premium key vault ------------ - New-AzKeyVault -VaultName 'Contoso03Vault' -ResourceGroupName 'Group14' -Location 'East US' -Sku 'Premium' - -Vault Name : contoso03vault -Resource Group Name : group14 -Location : East US -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/group14/providers - /Microsoft.KeyVault/vaults/contoso03vault -Vault URI : https://contoso03vault.vault.azure.net/ -Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx -SKU : Premium -Enabled For Deployment? : False -Enabled For Template Deployment? : False -Enabled For Disk Encryption? : False -Soft Delete Enabled? : -Access Policies : - Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Object ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Application ID : - Display Name : User Name (username@microsoft.com) - Permissions to Keys : all - Permissions to Secrets : all - Permissions to Certificates : all - Permissions to (Key Vault Managed) Storage : all - -Network Rule Set : - Default Action : Allow - Bypass : AzureServices - IP Rules : - Virtual Network Rules : - -Tags : - - This command creates a key vault, just like the previous example. However, it specifies a value of Premium for the SKU parameter to create a Premium key vault. - - - - - - -------------------------- Example 3 -------------------------- - $frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix "110.0.1.0/24" -ServiceEndpoint Microsoft.KeyVault -$virtualNetwork = New-AzVirtualNetwork -Name myVNet -ResourceGroupName myRG -Location westus -AddressPrefix "110.0.0.0/16" -Subnet $frontendSubnet -$myNetworkResId = (Get-AzVirtualNetwork -Name myVNet -ResourceGroupName myRG).Subnets[0].Id -$ruleSet = New-AzKeyVaultNetworkRuleSetObject -DefaultAction Allow -Bypass AzureServices -IpAddressRange "110.0.1.0/24" -VirtualNetworkResourceId $myNetworkResId -New-AzKeyVault -ResourceGroupName "myRg" -VaultName "myVault" -NetworkRuleSet $ruleSet -Location westus - -Vault Name : myVault -Resource Group Name : myRg -Location : East US -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myRg/providers - /Microsoft.KeyVault/vaults/myVault -Vault URI : https://myVault.vault.azure.net/ -Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx -SKU : Premium -Enabled For Deployment? : False -Enabled For Template Deployment? : False -Enabled For Disk Encryption? : False -Soft Delete Enabled? : -Access Policies : - Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Object ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Application ID : - Display Name : User Name (username@microsoft.com) - Permissions to Keys : all - Permissions to Secrets : all - Permissions to Certificates : all - Permissions to (Key Vault Managed) Storage : all - -Network Rule Set : - Default Action : Allow - Bypass : AzureServices - IP Rules : 110.0.1.0/24 - Virtual Network Rules : /subscriptions/0b1f6471-1bf0-4dda-ae - c3-cb9272f09590/resourcegroups/myRg/providers/microsoft.network/virtualnetworks - /myvnet/subnets/frontendsubnet - -Tags : - - Creating a key vault and specifies network rules to allow access to the specified IP address from the virtual network identified by $myNetworkResId. See `New-AzKeyVaultNetworkRuleSetObject` for more information. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/new-azkeyvault - - - Get-AzKeyVault - - - - Remove-AzKeyVault - - - - - - - New-AzKeyVaultCertificateAdministratorDetail - New - AzKeyVaultCertificateAdministratorDetail - - Creates an in-memory certificate administrator details object. - - - - The New-AzKeyVaultCertificateAdministratorDetail cmdlet creates an in-memory certificate administrator details object. - - - - New-AzKeyVaultCertificateAdministratorDetail - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EmailAddress - - Specifies the email address for the certificate administrator. - - System.String - - System.String - - - None - - - FirstName - - Specifies the first name of the certificate administrator. - - System.String - - System.String - - - None - - - LastName - - Specifies the last name of the certificate administrator. - - System.String - - System.String - - - None - - - PhoneNumber - - Specifies the phone number of the certificate administrator. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EmailAddress - - Specifies the email address for the certificate administrator. - - System.String - - System.String - - - None - - - FirstName - - Specifies the first name of the certificate administrator. - - System.String - - System.String - - - None - - - LastName - - Specifies the last name of the certificate administrator. - - System.String - - System.String - - - None - - - PhoneNumber - - Specifies the phone number of the certificate administrator. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateAdministratorDetails - - - - - - - - - - - - - - - Example 1: Create a certificate administrator details object - - $AdminDetails = New-AzKeyVaultCertificateAdministratorDetail -FirstName "Patti" -LastName "Fuller" -EmailAddress "patti.fuller@contoso.com" -PhoneNumber "5553334444" -$AdminDetails - -FirstName LastName EmailAddress PhoneNumber ---------- -------- ------------ ----------- -Patti Fuller patti.fuller@contoso.com 5553334444 - - This command creates an in-memory certificate administrator details object, and then stores it in the $AdminDetails variable. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/new-azkeyvaultcertificateadministratordetail - - - New-AzKeyVaultCertificateOrganizationDetail - - - - - - - New-AzKeyVaultCertificateOrganizationDetail - New - AzKeyVaultCertificateOrganizationDetail - - Creates an in-memory certificate organization details object. - - - - The New-AzKeyVaultCertificateOrganizationDetail cmdlet creates an in-memory certificate organization details object. - - - - New-AzKeyVaultCertificateOrganizationDetail - - AdministratorDetails - - Specifies the certificate organization administrators. - - System.Collections.Generic.List`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateAdministratorDetails] - - System.Collections.Generic.List`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateAdministratorDetails] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Id - - Specifies the identifier for the organization. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AdministratorDetails - - Specifies the certificate organization administrators. - - System.Collections.Generic.List`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateAdministratorDetails] - - System.Collections.Generic.List`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateAdministratorDetails] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Id - - Specifies the identifier for the organization. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - System.Collections.Generic.List`1[[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateAdministratorDetails, Microsoft.Azure.PowerShell.Cmdlets.KeyVault, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOrganizationDetails - - - - - - - - - - - - - - ------- Example 1: Create an organization details object ------- - $AdminDetails = New-AzKeyVaultCertificateAdministratorDetail -FirstName "Patti" -LastName "Fuller" -EmailAddress "Patti.Fuller@contoso.com" -PhoneNumber "1234567890" -New-AzKeyVaultCertificateOrganizationDetail -AdministratorDetails $AdminDetails - -Id AdministratorDetails --- -------------------- - {Patti} - - The first command creates a certificate administrator details object, and then stores it in the $AdminDetails variable. The second command creates a certificate organization details object, and then stores it in the $OrgDetails variable. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/new-azkeyvaultcertificateorganizationdetail - - - New-AzKeyVaultCertificateAdministratorDetail - - - - - - - New-AzKeyVaultCertificatePolicy - New - AzKeyVaultCertificatePolicy - - Creates an in-memory certificate policy object. - - - - The New-AzKeyVaultCertificatePolicy cmdlet creates an in-memory certificate policy object for Azure Key Vault. - - - - New-AzKeyVaultCertificatePolicy - - IssuerName - - Specifies the name of the issuer for the certificate. - - System.String - - System.String - - - None - - - DnsName - - Specifies the DNS names in the certificate. Subject Alternative Names (SANs) can be specified as DNS names. - - System.Collections.Generic.List`1[System.String] - - System.Collections.Generic.List`1[System.String] - - - None - - - SubjectName - - Specifies the subject name of the certificate. - > [!NOTE] > If you must use a comma (,) or a period (.) within a property in the `SubjectName` parameter, > you must enclose the property field in quotation marks. For example, you may use O="Contoso, Ltd." in the Organization Name field. - - System.String - - System.String - - - None - - - CertificateTransparency - - Indicates whether certificate transparency is enabled for this certificate/issuer; if not specified, the default is 'true' - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - CertificateType - - Specifies the type of certificate to the issuer. - - System.String - - System.String - - - None - - - Curve - - Specifies the elliptic curve name of the key of the certificate. The acceptable values for this parameter are: - P-256 - - P-384 - - P-521 - - P-256K - - SECP256K1 - - - P-256 - P-384 - P-521 - P-256K - SECP256K1 - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disabled - - Indicates that the certificate policy is disabled. - - - System.Management.Automation.SwitchParameter - - - False - - - Ekus - - Specifies the enhanced key usages (EKUs) in the certificate. - - System.Collections.Generic.List`1[System.String] - - System.Collections.Generic.List`1[System.String] - - - None - - - EmailAtNumberOfDaysBeforeExpiry - - Specifies how many days before expiry the automatic notification process begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - EmailAtPercentageLifetime - - Specifies the percentage of the lifetime after which the automatic process for the notification begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - KeyNotExportable - - Indicates that the key is not exportable. - - - System.Management.Automation.SwitchParameter - - - False - - - KeySize - - Specifies the key size of the certificate. The acceptable values for this parameter are: - 2048 - - 3072 - - 4096 - - 256 - - 384 - - 521 - - - 2048 - 3072 - 4096 - 256 - 384 - 521 - - System.Int32 - - System.Int32 - - - None - - - KeyType - - Specifies the key type of the key that backs the certificate. The acceptable values for this parameter are: - RSA - - RSA-HSM - - EC - - EC-HSM - - - RSA - RSA-HSM - EC - EC-HSM - - System.String - - System.String - - - RSA - - - KeyUsage - - Specifies the key usages in the certificate. - - - None - EncipherOnly - CrlSign - KeyCertSign - KeyAgreement - DataEncipherment - KeyEncipherment - NonRepudiation - DigitalSignature - DecipherOnly - - System.Collections.Generic.List`1[System.Security.Cryptography.X509Certificates.X509KeyUsageFlags] - - System.Collections.Generic.List`1[System.Security.Cryptography.X509Certificates.X509KeyUsageFlags] - - - None - - - RenewAtNumberOfDaysBeforeExpiry - - Specifies the number of days before expiry after which the automatic process for certificate renewal begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - RenewAtPercentageLifetime - - Specifies the percentage of the lifetime after which the automatic process for certificate renewal begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ReuseKeyOnRenewal - - Indicates that the certificate reuse the key during renewal. - - - System.Management.Automation.SwitchParameter - - - False - - - SecretContentType - - Specifies the content type of the new key vault secret. The acceptable values for this parameter are: - application/x-pkcs12 - - application/x-pem-file - - - application/x-pkcs12 - application/x-pem-file - - System.String - - System.String - - - None - - - ValidityInMonths - - Specifies the number of months the certificate is valid. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzKeyVaultCertificatePolicy - - IssuerName - - Specifies the name of the issuer for the certificate. - - System.String - - System.String - - - None - - - SubjectName - - Specifies the subject name of the certificate. - > [!NOTE] > If you must use a comma (,) or a period (.) within a property in the `SubjectName` parameter, > you must enclose the property field in quotation marks. For example, you may use O="Contoso, Ltd." in the Organization Name field. - - System.String - - System.String - - - None - - - CertificateTransparency - - Indicates whether certificate transparency is enabled for this certificate/issuer; if not specified, the default is 'true' - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - CertificateType - - Specifies the type of certificate to the issuer. - - System.String - - System.String - - - None - - - Curve - - Specifies the elliptic curve name of the key of the certificate. The acceptable values for this parameter are: - P-256 - - P-384 - - P-521 - - P-256K - - SECP256K1 - - - P-256 - P-384 - P-521 - P-256K - SECP256K1 - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disabled - - Indicates that the certificate policy is disabled. - - - System.Management.Automation.SwitchParameter - - - False - - - Ekus - - Specifies the enhanced key usages (EKUs) in the certificate. - - System.Collections.Generic.List`1[System.String] - - System.Collections.Generic.List`1[System.String] - - - None - - - EmailAtNumberOfDaysBeforeExpiry - - Specifies how many days before expiry the automatic notification process begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - EmailAtPercentageLifetime - - Specifies the percentage of the lifetime after which the automatic process for the notification begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - KeyNotExportable - - Indicates that the key is not exportable. - - - System.Management.Automation.SwitchParameter - - - False - - - KeySize - - Specifies the key size of the certificate. The acceptable values for this parameter are: - 2048 - - 3072 - - 4096 - - 256 - - 384 - - 521 - - - 2048 - 3072 - 4096 - 256 - 384 - 521 - - System.Int32 - - System.Int32 - - - None - - - KeyType - - Specifies the key type of the key that backs the certificate. The acceptable values for this parameter are: - RSA - - RSA-HSM - - EC - - EC-HSM - - - RSA - RSA-HSM - EC - EC-HSM - - System.String - - System.String - - - RSA - - - KeyUsage - - Specifies the key usages in the certificate. - - - None - EncipherOnly - CrlSign - KeyCertSign - KeyAgreement - DataEncipherment - KeyEncipherment - NonRepudiation - DigitalSignature - DecipherOnly - - System.Collections.Generic.List`1[System.Security.Cryptography.X509Certificates.X509KeyUsageFlags] - - System.Collections.Generic.List`1[System.Security.Cryptography.X509Certificates.X509KeyUsageFlags] - - - None - - - RenewAtNumberOfDaysBeforeExpiry - - Specifies the number of days before expiry after which the automatic process for certificate renewal begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - RenewAtPercentageLifetime - - Specifies the percentage of the lifetime after which the automatic process for certificate renewal begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ReuseKeyOnRenewal - - Indicates that the certificate reuse the key during renewal. - - - System.Management.Automation.SwitchParameter - - - False - - - SecretContentType - - Specifies the content type of the new key vault secret. The acceptable values for this parameter are: - application/x-pkcs12 - - application/x-pem-file - - - application/x-pkcs12 - application/x-pem-file - - System.String - - System.String - - - None - - - ValidityInMonths - - Specifies the number of months the certificate is valid. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - CertificateTransparency - - Indicates whether certificate transparency is enabled for this certificate/issuer; if not specified, the default is 'true' - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - CertificateType - - Specifies the type of certificate to the issuer. - - System.String - - System.String - - - None - - - Curve - - Specifies the elliptic curve name of the key of the certificate. The acceptable values for this parameter are: - P-256 - - P-384 - - P-521 - - P-256K - - SECP256K1 - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disabled - - Indicates that the certificate policy is disabled. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DnsName - - Specifies the DNS names in the certificate. Subject Alternative Names (SANs) can be specified as DNS names. - - System.Collections.Generic.List`1[System.String] - - System.Collections.Generic.List`1[System.String] - - - None - - - Ekus - - Specifies the enhanced key usages (EKUs) in the certificate. - - System.Collections.Generic.List`1[System.String] - - System.Collections.Generic.List`1[System.String] - - - None - - - EmailAtNumberOfDaysBeforeExpiry - - Specifies how many days before expiry the automatic notification process begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - EmailAtPercentageLifetime - - Specifies the percentage of the lifetime after which the automatic process for the notification begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - IssuerName - - Specifies the name of the issuer for the certificate. - - System.String - - System.String - - - None - - - KeyNotExportable - - Indicates that the key is not exportable. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - KeySize - - Specifies the key size of the certificate. The acceptable values for this parameter are: - 2048 - - 3072 - - 4096 - - 256 - - 384 - - 521 - - System.Int32 - - System.Int32 - - - None - - - KeyType - - Specifies the key type of the key that backs the certificate. The acceptable values for this parameter are: - RSA - - RSA-HSM - - EC - - EC-HSM - - System.String - - System.String - - - RSA - - - KeyUsage - - Specifies the key usages in the certificate. - - System.Collections.Generic.List`1[System.Security.Cryptography.X509Certificates.X509KeyUsageFlags] - - System.Collections.Generic.List`1[System.Security.Cryptography.X509Certificates.X509KeyUsageFlags] - - - None - - - RenewAtNumberOfDaysBeforeExpiry - - Specifies the number of days before expiry after which the automatic process for certificate renewal begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - RenewAtPercentageLifetime - - Specifies the percentage of the lifetime after which the automatic process for certificate renewal begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ReuseKeyOnRenewal - - Indicates that the certificate reuse the key during renewal. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - SecretContentType - - Specifies the content type of the new key vault secret. The acceptable values for this parameter are: - application/x-pkcs12 - - application/x-pem-file - - System.String - - System.String - - - None - - - SubjectName - - Specifies the subject name of the certificate. - > [!NOTE] > If you must use a comma (,) or a period (.) within a property in the `SubjectName` parameter, > you must enclose the property field in quotation marks. For example, you may use O="Contoso, Ltd." in the Organization Name field. - - System.String - - System.String - - - None - - - ValidityInMonths - - Specifies the number of months the certificate is valid. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - System.Collections.Generic.List`1[[System.String, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]] - - - - - - - - System.Nullable`1[[System.Int32, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]] - - - - - - - - System.Management.Automation.SwitchParameter - - - - - - - - System.Collections.Generic.List`1[[System.Security.Cryptography.X509Certificates.X509KeyUsageFlags, System.Security.Cryptography.X509Certificates, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]] - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - - - - - - - - - - - - - ------------ Example 1: Create a certificate policy ------------ - New-AzKeyVaultCertificatePolicy -SecretContentType "application/x-pkcs12" -SubjectName "CN=contoso.com" -IssuerName "Self" -ValidityInMonths 6 -ReuseKeyOnRenewal - -SecretContentType : application/x-pkcs12 -Kty : -KeySize : 2048 -Curve : -Exportable : -ReuseKeyOnRenewal : True -SubjectName : CN=contoso.com -DnsNames : -KeyUsage : -Ekus : -ValidityInMonths : 6 -IssuerName : Self -CertificateType : -RenewAtNumberOfDaysBeforeExpiry : -RenewAtPercentageLifetime : -EmailAtNumberOfDaysBeforeExpiry : -EmailAtPercentageLifetime : -CertificateTransparency : -Enabled : True -Created : -Updated : - - This command creates a certificate policy that is valid for six months and reuses the key to renew the certificate. - - - - - - -------------------------- Example 2 -------------------------- - New-AzKeyVaultCertificatePolicy -IssuerName 'Self' -KeyType RSA -RenewAtNumberOfDaysBeforeExpiry <Int32> -SecretContentType application/x-pkcs12 -SubjectName 'CN=contoso.com' -ValidityInMonths 6 - - - - - - - - Example 3: Create a Subject Alternate Name (or SAN) certificate - New-AzKeyVaultCertificatePolicy -SecretContentType "application/x-pkcs12" -SubjectName "CN=contoso.com" -DnsName "contoso.com","support.contoso.com","docs.contoso.com" -IssuerName "Self" - -SecretContentType : application/x-pkcs12 -Kty : RSA -KeySize : 2048 -Curve : -Exportable : -ReuseKeyOnRenewal : False -SubjectName : CN=contoso.com -DnsNames : {contoso.com, support.contoso.com, docs.contoso.com} -KeyUsage : -Ekus : -ValidityInMonths : -IssuerName : Self -CertificateType : -RenewAtNumberOfDaysBeforeExpiry : -RenewAtPercentageLifetime : -EmailAtNumberOfDaysBeforeExpiry : -EmailAtPercentageLifetime : -CertificateTransparency : -Enabled : True -Created : -Updated : - - This example creates a SAN certificate with 3 DNS names. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/new-azkeyvaultcertificatepolicy - - - Get-AzKeyVaultCertificatePolicy - - - - Set-AzKeyVaultCertificatePolicy - - - - - - - New-AzKeyVaultManagedHsm - New - AzKeyVaultManagedHsm - - Creates a managed HSM. - - - - The New-AzKeyVaultManagedHsm cmdlet creates a managed HSM in the specified resource group. To add, remove, or list keys in the managed HSM, user should: 1. grant permissions by adding user ID to Administrator; 2. add role assignment for user like "Managed HSM Crypto User" and so on; 3. back up security domain data of a managed HSM using `Export-AzKeyVaultSecurityDomain`. - - - - New-AzKeyVaultManagedHsm - - Name - - Specifies a name of the managed HSM to create. The name can be any combination of letters, digits, or hyphens. The name must start and end with a letter or digit. The name must be universally unique. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of an existing resource group in which to create the key vault. - - System.String - - System.String - - - None - - - Location - - Specifies the Azure region in which to create the key vault. Use the command Get-AzResourceProvider with the ProviderNamespace parameter to see your choices. - - System.String - - System.String - - - None - - - Administrator - - Initial administrator object id for this managed HSM pool. - - System.String[] - - System.String[] - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnablePurgeProtection - - specifying whether protection against purge is enabled for this managed HSM pool. The setting is effective only if soft delete is also enabled. Enabling this functionality is irreversible. - - - System.Management.Automation.SwitchParameter - - - False - - - PublicNetworkAccess - - Controls permission for data plane traffic coming from public networks while private endpoint is enabled. - - System.String - - System.String - - - None - - - Sku - - Specifies the SKU of the managed HSM instance. - - System.String - - System.String - - - None - - - SoftDeleteRetentionInDays - - Specifies how long the deleted managed hsm pool is retained, and how long until the managed hsm pool in the deleted state can be purged. - - System.Int32 - - System.Int32 - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - A hash table which represents resource tags. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UserAssignedIdentity - - The set of user assigned identities associated with the managed HSM. Its value will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Administrator - - Initial administrator object id for this managed HSM pool. - - System.String[] - - System.String[] - - - None - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnablePurgeProtection - - specifying whether protection against purge is enabled for this managed HSM pool. The setting is effective only if soft delete is also enabled. Enabling this functionality is irreversible. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Location - - Specifies the Azure region in which to create the key vault. Use the command Get-AzResourceProvider with the ProviderNamespace parameter to see your choices. - - System.String - - System.String - - - None - - - Name - - Specifies a name of the managed HSM to create. The name can be any combination of letters, digits, or hyphens. The name must start and end with a letter or digit. The name must be universally unique. - - System.String - - System.String - - - None - - - PublicNetworkAccess - - Controls permission for data plane traffic coming from public networks while private endpoint is enabled. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of an existing resource group in which to create the key vault. - - System.String - - System.String - - - None - - - Sku - - Specifies the SKU of the managed HSM instance. - - System.String - - System.String - - - None - - - SoftDeleteRetentionInDays - - Specifies how long the deleted managed hsm pool is retained, and how long until the managed hsm pool in the deleted state can be purged. - - System.Int32 - - System.Int32 - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - A hash table which represents resource tags. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UserAssignedIdentity - - The set of user assigned identities associated with the managed HSM. Its value will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - System.String[] - - - - - - - - System.Collections.Hashtable - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - - - - - - - - - - - - ---------- Example 1: Create a StandardB1 managed HSM ---------- - New-AzKeyVaultManagedHsm -Name 'myhsm' -ResourceGroupName 'myrg1' -Location 'eastus2euap' -Administrator "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -SoftDeleteRetentionInDays 70 - -Name Resource Group Name Location SKU ----- ------------------- -------- --- -myhsm myrg1 eastus2euap StandardB1 - - This command creates a managed HSM named myhsm in the location eastus2euap. The command adds the managed HSM to the resource group named myrg1. Because the command does not specify a value for the SKU parameter, it creates a Standard_B1 managed HSM. - - - - - - ---------- Example 2: Create a CustomB32 managed HSM ---------- - New-AzKeyVaultManagedHsm -Name 'myhsm' -ResourceGroupName 'myrg1' -Location 'eastus2euap' -Administrator "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -Sku 'CustomB32' -SoftDeleteRetentionInDays 70 - -Name Resource Group Name Location SKU - ----- ------------------- -------- --- -myhsm myrg1 eastus2euap CustomB32 - - This command creates a managed HSM, just like the previous example. However, it specifies a value of CustomB32 for the SKU parameter to create a CustomB32 managed HSM. - - - - - - Example 3: Create a managed HSM with an user assigned identity - New-AzKeyVaultManagedHsm -Name 'myhsm' -ResourceGroupName 'myrg1' -Location 'eastus2euap' -Administrator "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"-SoftDeleteRetentionInDays 70 -UserAssignedIdentity /subscriptions/xxxx/resourceGroups/xxxx/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identityName | Format-List - -Managed HSM Name : myhsm -Resource Group Name : myrg1 -Location : eastus2euap -Resource ID : /subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/resourceGroups/bez-rg/pro - viders/Microsoft.KeyVault/managedHSMs/bezmhsm -HSM Pool URI : -Tenant ID : 00001111-aaaa-2222-bbbb-3333cccc4444 -Initial Admin Object Ids : {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} -SKU : StandardB1 -Soft Delete Enabled? : True -Enabled Purge Protection? : False -Soft Delete Retention Period (days) : 70 -Public Network Access : Enabled -IdentityType : UserAssigned -UserAssignedIdentities : /subscriptions/xxxx/resourceGroups/xxxx/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identityName -Provisioning State : Succeeded -Status Message : The Managed HSM is provisioned and ready to use. -Security Domain ActivationStatus : Active -Security Domain ActivationStatusMessage : Your HSM has been activated and can be used for cryptographic operations. -Regions : -Tags - - This command creates a managed HSM with an user assigned identity. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/new-azkeyvaultmanagedhsm - - - Get-AzKeyVaultManagedHsm - - - - Remove-AzKeyVaultManagedHsm - - - - Update-AzKeyVaultManagedHsm - - - - Undo-AzKeyVaultManagedHsmRemoval - - - - - - - New-AzKeyVaultNetworkRuleSetObject - New - AzKeyVaultNetworkRuleSetObject - - Create an object representing the network rule settings. - - - - Create an object representing the network rule settings that can be used when creating a vault. - - - - New-AzKeyVaultNetworkRuleSetObject - - Bypass - - Specifies bypass of network rule. - - - None - AzureServices - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleBypassEnum - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleBypassEnum - - - None - - - DefaultAction - - Specifies default action of network rule. - - - Allow - Deny - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleDefaultActionEnum - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleDefaultActionEnum - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IpAddressRange - - Specifies allowed network IP address range of network rule. - - System.String[] - - System.String[] - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - VirtualNetworkResourceId - - Specifies allowed virtual network resource identifier of network rule. - - System.String[] - - System.String[] - - - None - - - - - - Bypass - - Specifies bypass of network rule. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleBypassEnum - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleBypassEnum - - - None - - - DefaultAction - - Specifies default action of network rule. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleDefaultActionEnum - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleDefaultActionEnum - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IpAddressRange - - Specifies allowed network IP address range of network rule. - - System.String[] - - System.String[] - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - VirtualNetworkResourceId - - Specifies allowed virtual network resource identifier of network rule. - - System.String[] - - System.String[] - - - None - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleSet - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - $frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix "110.0.1.0/24" -ServiceEndpoint Microsoft.KeyVault -$virtualNetwork = New-AzVirtualNetwork -Name myVNet -ResourceGroupName myRG -Location westus -AddressPrefix "110.0.0.0/16" -Subnet $frontendSubnet -$myNetworkResId = (Get-AzVirtualNetwork -Name myVNet -ResourceGroupName myRG).Subnets[0].Id -$ruleSet = New-AzKeyVaultNetworkRuleSetObject -DefaultAction Allow -Bypass AzureServices -IpAddressRange "110.0.1.0/24" -VirtualNetworkResourceId $myNetworkResId -New-AzKeyVault -ResourceGroupName "myRg" -VaultName "myVault" -NetworkRuleSet $ruleSet - - Creating a new vault and specifies network rules to allow access to the specified IP address from the virtual network identified by $myNetworkResId. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/new-azkeyvaultnetworkrulesetobject - - - - - - New-AzKeyVaultRoleAssignment - New - AzKeyVaultRoleAssignment - - Assigns the specified RBAC role to the specified principal, at the specified scope. - - - - Use the `New-AzKeyVaultRoleAssignment` command to grant access. Access is granted by assigning the appropriate RBAC role to them at the right scope. The subject of the assignment must be specified. To specify a user, use SignInName or Microsoft Entra ObjectId parameters. To specify a security group, use Microsoft Entra ObjectId parameter. And to specify a Microsoft Entra application, use ApplicationId or ObjectId parameters. The role that is being assigned must be specified using the RoleDefinitionName pr RoleDefinitionId parameter. The scope at which access is being granted may be specified. It defaults to the selected subscription. - The cmdlet may call below Microsoft Graph API according to input parameters: - - GET /directoryObjects/{id} - - GET /users/{id} - - GET /servicePrincipals/{id} - - GET /servicePrincipals - - GET /groups/{id} - - - - New-AzKeyVaultRoleAssignment - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - ApplicationId - - The app SPN. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - RoleDefinitionName - - Name of the RBAC role to assign the principal with. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzKeyVaultRoleAssignment - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - ApplicationId - - The app SPN. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - RoleDefinitionId - - Role Id the principal is assigned to. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzKeyVaultRoleAssignment - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ObjectId - - The user or group object id. - - System.String - - System.String - - - None - - - RoleDefinitionName - - Name of the RBAC role to assign the principal with. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzKeyVaultRoleAssignment - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ObjectId - - The user or group object id. - - System.String - - System.String - - - None - - - RoleDefinitionId - - Role Id the principal is assigned to. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzKeyVaultRoleAssignment - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - RoleDefinitionId - - Role Id the principal is assigned to. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - SignInName - - The user SignInName. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzKeyVaultRoleAssignment - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - RoleDefinitionName - - Name of the RBAC role to assign the principal with. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - SignInName - - The user SignInName. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ApplicationId - - The app SPN. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - ObjectId - - The user or group object id. - - System.String - - System.String - - - None - - - RoleDefinitionId - - Role Id the principal is assigned to. - - System.String - - System.String - - - None - - - RoleDefinitionName - - Name of the RBAC role to assign the principal with. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - SignInName - - The user SignInName. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleAssignment - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - New-AzKeyVaultRoleAssignment -HsmName bez-hsm -RoleDefinitionName "Managed Hsm Crypto User" -ObjectId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx - - This example assigns role "Managed Hsm Crypto User" to user "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" at top scope. If user wants to perform operations on keys. "Managed Hsm Crypto *" role is required for that user. - - - - - - -------------------------- Example 2 -------------------------- - New-AzKeyVaultRoleAssignment -HsmName myHsm -RoleDefinitionName "Managed HSM Policy Administrator" -SignInName user1@microsoft.com - -RoleDefinitionName DisplayName ObjectType Scope ------------------- ----------- ---------- ----- -Managed HSM Policy Administrator User 1 (user1@microsoft.com) User / - - This example assigns role "Managed HSM Policy Administrator" to user "user1@microsoft.com" at top scope. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/new-azkeyvaultroleassignment - - - - - - New-AzKeyVaultRoleDefinition - New - AzKeyVaultRoleDefinition - - Creates a custom role definition on an HSM. - - - - The `New-AzKeyVaultRoleDefinition` cmdlet creates a custom role in Azure Role-Based Access Control of an Azure KeyVault managed HSM. - Provide either a JSON role definition file or a `PSKeyVaultRoleDefinition` object as input. First, use the `Get-AzKeyVaultRoleDefinition` command to generate a baseline role definition object. Then, modify its properties as required. Finally, use this command to create a custom role using role definition. - - - - New-AzKeyVaultRoleDefinition - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - InputFile - - File name containing a single role definition. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzKeyVaultRoleDefinition - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - Role - - A role definition object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleDefinition - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleDefinition - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - InputFile - - File name containing a single role definition. - - System.String - - System.String - - - None - - - Role - - A role definition object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleDefinition - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleDefinition - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleDefinition - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - $role = Get-AzKeyVaultRoleDefinition -HsmName myHsm -RoleDefinitionName 'Managed HSM Crypto User' -$role.Name = $null -$role.RoleName = "my custom role" -$role.Description = "description for my role" -$role.Permissions[0].DataActions = @("Microsoft.KeyVault/managedHsm/roleAssignments/write/action", "Microsoft.KeyVault/managedHsm/roleAssignments/delete/action") # todo -New-AzKeyVaultRoleDefinition -HsmName myHsm -Role $role - - This example uses the predefined "Managed HSM Crypto User" role as a template to create a custom role. - - - - - - -------------------------- Example 2 -------------------------- - Get-AzKeyVaultRoleDefinition -HsmName myHsm -RoleDefinitionName 'Managed HSM Crypto User' | ConvertTo-Json -Depth 9 > C:\Temp\roleDefinition.json -# Edit roleDefinition.json. Make sure to clear "Name" so as not to overwrite an existing role. -New-AzKeyVaultRoleDefinition -HsmName myHsm -InputFile C:\Temp\roleDefinition.json - - This example uses a JSON file as the input of the custom role. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/new-azkeyvaultroledefinition - - - - - - Remove-AzKeyVault - Remove - AzKeyVault - - Deletes a key vault. - - - - The Remove-AzKeyVault cmdlet deletes the specified key vault. It also deletes all keys and secrets contained in that instance. Note that although specifying the resource group is optional for this cmdlet, you should so for better performance. - - - - Remove-AzKeyVault - - InputObject - - Key Vault object to be deleted. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Indicates that the cmdlet does not prompt you for confirmation. By default, this cmdlet prompts you to confirm that you want to delete the key vault. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns true if successful. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVault - - InputObject - - Key Vault object to be deleted. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Indicates that the cmdlet does not prompt you for confirmation. By default, this cmdlet prompts you to confirm that you want to delete the key vault. - - - System.Management.Automation.SwitchParameter - - - False - - - InRemovedState - - Remove the previously deleted vault permanently. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns true if successful. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVault - - VaultName - - Specifies the name of the key vault to remove. - - System.String - - System.String - - - None - - - Location - - The location of the deleted vault. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Indicates that the cmdlet does not prompt you for confirmation. By default, this cmdlet prompts you to confirm that you want to delete the key vault. - - - System.Management.Automation.SwitchParameter - - - False - - - InRemovedState - - Remove the previously deleted vault permanently. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns true if successful. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVault - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - Location - - The location of the deleted vault. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Indicates that the cmdlet does not prompt you for confirmation. By default, this cmdlet prompts you to confirm that you want to delete the key vault. - - - System.Management.Automation.SwitchParameter - - - False - - - InRemovedState - - Remove the previously deleted vault permanently. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns true if successful. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVault - - VaultName - - Specifies the name of the key vault to remove. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of a resource group. - - System.String - - System.String - - - None - - - Location - - The location of the deleted vault. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Indicates that the cmdlet does not prompt you for confirmation. By default, this cmdlet prompts you to confirm that you want to delete the key vault. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns true if successful. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVault - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - Location - - The location of the deleted vault. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Indicates that the cmdlet does not prompt you for confirmation. By default, this cmdlet prompts you to confirm that you want to delete the key vault. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns true if successful. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Indicates that the cmdlet does not prompt you for confirmation. By default, this cmdlet prompts you to confirm that you want to delete the key vault. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Key Vault object to be deleted. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - InRemovedState - - Remove the previously deleted vault permanently. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Location - - The location of the deleted vault. - - System.String - - System.String - - - None - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns true if successful. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Specifies the name of a resource group. - - System.String - - System.String - - - None - - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - VaultName - - Specifies the name of the key vault to remove. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - ---------------- Example 1: Remove a key vault ---------------- - Remove-AzKeyVault -VaultName "Contoso03Vault" -PassThru - -True - - This command removes the key vault named Contoso03Vault from your current subscription. - - - - - - Example 2: Remove a key vault from a specified resource group - Remove-AzKeyVault -Name "Contoso03Vault" -ResourceGroupName "Group14" -PassThru - -True - - This command removes the key vault named Contoso03Vault from the named resource group. If you do not specify the resource group name, the cmdlet searches for the named key vault to delete in your current subscription. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/remove-azkeyvault - - - Get-AzKeyVault - - - - New-AzKeyVault - - - - - - - Remove-AzKeyVaultAccessPolicy - Remove - AzKeyVaultAccessPolicy - - Removes all permissions for a user or application from a key vault. - - - - The Remove-AzKeyVaultAccessPolicy cmdlet removes all permissions for a user or application or for all users and applications from a key vault. Even if you remove all permissions, the owner of the Azure subscription that contains the key vault can add permissions to the key vault. Note that although specifying the resource group is optional for this cmdlet, you should do so for better performance. - The cmdlet may call below Microsoft Graph API according to input parameters: - - GET /directoryObjects/{id} - - GET /users/{id} - - GET /users - - GET /servicePrincipals/{id} - - GET /servicePrincipals - - GET /groups/{id} - - - - Remove-AzKeyVaultAccessPolicy - - VaultName - - Specifies the name of the key vault. This cmdlet removes permissions for the key vault that this parameter specifies. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the resource group associated with the key vault whose access policy is being modified. If not specified, this cmdlet searches for the key vault in the current subscription. - - System.String - - System.String - - - None - - - ApplicationId - - Specifies the ID of application whose permissions should be removed - - System.Nullable`1[System.Guid] - - System.Nullable`1[System.Guid] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ObjectId - - Specifies the object ID of the user or service principal in Microsoft Entra ID for which to remove permissions. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultAccessPolicy - - InputObject - - Key Vault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - ApplicationId - - Specifies the ID of application whose permissions should be removed - - System.Nullable`1[System.Guid] - - System.Nullable`1[System.Guid] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ObjectId - - Specifies the object ID of the user or service principal in Microsoft Entra ID for which to remove permissions. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultAccessPolicy - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - ApplicationId - - Specifies the ID of application whose permissions should be removed - - System.Nullable`1[System.Guid] - - System.Nullable`1[System.Guid] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ObjectId - - Specifies the object ID of the user or service principal in Microsoft Entra ID for which to remove permissions. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultAccessPolicy - - VaultName - - Specifies the name of the key vault. This cmdlet removes permissions for the key vault that this parameter specifies. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the resource group associated with the key vault whose access policy is being modified. If not specified, this cmdlet searches for the key vault in the current subscription. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EmailAddress - - Specifies the user email address of the user whose access you want to remove. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultAccessPolicy - - InputObject - - Key Vault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EmailAddress - - Specifies the user email address of the user whose access you want to remove. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultAccessPolicy - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EmailAddress - - Specifies the user email address of the user whose access you want to remove. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultAccessPolicy - - VaultName - - Specifies the name of the key vault. This cmdlet removes permissions for the key vault that this parameter specifies. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the resource group associated with the key vault whose access policy is being modified. If not specified, this cmdlet searches for the key vault in the current subscription. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnabledForDeployment - - If specified, disables the retrieval of secrets from this key vault by the Microsoft.Compute resource provider when referenced in resource creation. - - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForDiskEncryption - - If specified, disables the retrieval of secrets from this key vault by Azure Disk Encryption. - - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForTemplateDeployment - - If specified, disables the retrieval of secrets from this key vault by Azure Resource Manager when referenced in templates. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultAccessPolicy - - InputObject - - Key Vault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnabledForDeployment - - If specified, disables the retrieval of secrets from this key vault by the Microsoft.Compute resource provider when referenced in resource creation. - - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForDiskEncryption - - If specified, disables the retrieval of secrets from this key vault by Azure Disk Encryption. - - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForTemplateDeployment - - If specified, disables the retrieval of secrets from this key vault by Azure Resource Manager when referenced in templates. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultAccessPolicy - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnabledForDeployment - - If specified, disables the retrieval of secrets from this key vault by the Microsoft.Compute resource provider when referenced in resource creation. - - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForDiskEncryption - - If specified, disables the retrieval of secrets from this key vault by Azure Disk Encryption. - - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForTemplateDeployment - - If specified, disables the retrieval of secrets from this key vault by Azure Resource Manager when referenced in templates. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultAccessPolicy - - InputObject - - Key Vault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - ServicePrincipalName - - Specifies the service principal name of the application whose permissions you want to remove. Specify the application ID, also known as client ID, registered for the application in Microsoft Entra ID. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultAccessPolicy - - InputObject - - Key Vault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - UserPrincipalName - - Specifies the user principal name of the user whose access you want to remove. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultAccessPolicy - - VaultName - - Specifies the name of the key vault. This cmdlet removes permissions for the key vault that this parameter specifies. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the resource group associated with the key vault whose access policy is being modified. If not specified, this cmdlet searches for the key vault in the current subscription. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - UserPrincipalName - - Specifies the user principal name of the user whose access you want to remove. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultAccessPolicy - - VaultName - - Specifies the name of the key vault. This cmdlet removes permissions for the key vault that this parameter specifies. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the resource group associated with the key vault whose access policy is being modified. If not specified, this cmdlet searches for the key vault in the current subscription. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - ServicePrincipalName - - Specifies the service principal name of the application whose permissions you want to remove. Specify the application ID, also known as client ID, registered for the application in Microsoft Entra ID. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultAccessPolicy - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - ServicePrincipalName - - Specifies the service principal name of the application whose permissions you want to remove. Specify the application ID, also known as client ID, registered for the application in Microsoft Entra ID. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultAccessPolicy - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - UserPrincipalName - - Specifies the user principal name of the user whose access you want to remove. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ApplicationId - - Specifies the ID of application whose permissions should be removed - - System.Nullable`1[System.Guid] - - System.Nullable`1[System.Guid] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EmailAddress - - Specifies the user email address of the user whose access you want to remove. - - System.String - - System.String - - - None - - - EnabledForDeployment - - If specified, disables the retrieval of secrets from this key vault by the Microsoft.Compute resource provider when referenced in resource creation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForDiskEncryption - - If specified, disables the retrieval of secrets from this key vault by Azure Disk Encryption. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForTemplateDeployment - - If specified, disables the retrieval of secrets from this key vault by Azure Resource Manager when referenced in templates. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Key Vault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - ObjectId - - Specifies the object ID of the user or service principal in Microsoft Entra ID for which to remove permissions. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Specifies the name of the resource group associated with the key vault whose access policy is being modified. If not specified, this cmdlet searches for the key vault in the current subscription. - - System.String - - System.String - - - None - - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - ServicePrincipalName - - Specifies the service principal name of the application whose permissions you want to remove. Specify the application ID, also known as client ID, registered for the application in Microsoft Entra ID. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - UserPrincipalName - - Specifies the user principal name of the user whose access you want to remove. - - System.String - - System.String - - - None - - - VaultName - - Specifies the name of the key vault. This cmdlet removes permissions for the key vault that this parameter specifies. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - - - - - - - ----------- Example 1: Remove permissions for a user ----------- - Remove-AzKeyVaultAccessPolicy -VaultName 'Contoso03Vault' -UserPrincipalName 'PattiFuller@contoso.com' -PassThru - -Vault Name : Contoso03Vault -Resource Group Name : myrg -Location : westus -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers - /Microsoft.KeyVault/vaults/contoso03vault -Vault URI : https://contoso03vault.vault.azure.net/ -Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx -SKU : Standard -Enabled For Deployment? : False -Enabled For Template Deployment? : False -Enabled For Disk Encryption? : False -Soft Delete Enabled? : -Access Policies : - Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Object ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Application ID : - Display Name : User Name (username@microsoft.com) - Permissions to Keys : - Permissions to Secrets : - Permissions to Certificates : get, create - Permissions to (Key Vault Managed) Storage : - - -Network Rule Set : - Default Action : Allow - Bypass : AzureServices - IP Rules : - Virtual Network Rules : - -Tags : - - This command removes all the permissions that a user PattiFuller@contoso.com has on the key vault named Contoso03Vault. If -PassThru is specified, the KeyVault object is returned. - - - - - - ------- Example 2: Remove permissions for an application ------- - Remove-AzKeyVaultAccessPolicy -VaultName 'Contoso03Vault' -ServicePrincipalName 'http://payroll.contoso.com' - - This command removes all the permissions that an application has on the key vault named Contoso03Vault. This example identifies the application by using the service principal name registered in Microsoft Entra ID, `http://payroll.contoso.com`. - - - - - - Example 3: Remove permissions for an application by using its object ID - Remove-AzKeyVaultAccessPolicy -VaultName 'Contoso03Vault' -ObjectID 34595082-9346-41b6-8d6b-295a2808b8db - - This command removes all the permissions that an application has on the key vault named Contoso03Vault. This example identifies the application by the object ID of the service principal. - - - - - - Example 4: Remove permissions for the Microsoft.Compute resource provider - Remove-AzKeyVaultAccessPolicy -VaultName 'Contoso03Vault' -ResourceGroupName 'Group14' -EnabledForDeployment - - This command removes permission for the Microsoft.Compute resource provider to get secrets from the Contoso03Vault. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/remove-azkeyvaultaccesspolicy - - - Set-AzKeyVaultAccessPolicy - - - - - - - Remove-AzKeyVaultCertificate - Remove - AzKeyVaultCertificate - - Removes a certificate from a key vault. - - - - The Remove-AzKeyVaultCertificate cmdlet removes a certificate from a key vault. - - - - Remove-AzKeyVaultCertificate - - InputObject - - Certificate Object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - InRemovedState - - If present, removes the previously deleted certificate permanently - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultCertificate - - VaultName - - Specifies the name of the key vault from which this cmdlet removes a certificate. This cmdlet constructs the FQDN of a key vault based on the name that this parameter specifies and your current environment. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the certificate that this cmdlet removes from a key vault. This cmdlet constructs the fully qualified domain name (FQDN) of a certificate based on the name that this parameter specifies, the name of the key vault, and your current environment. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - InRemovedState - - If present, removes the previously deleted certificate permanently - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Certificate Object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - None - - - InRemovedState - - If present, removes the previously deleted certificate permanently - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Specifies the name of the certificate that this cmdlet removes from a key vault. This cmdlet constructs the fully qualified domain name (FQDN) of a certificate based on the name that this parameter specifies, the name of the key vault, and your current environment. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - VaultName - - Specifies the name of the key vault from which this cmdlet removes a certificate. This cmdlet constructs the FQDN of a key vault based on the name that this parameter specifies and your current environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultCertificate - - - - - - - - - - - - - - --------------- Example 1: Remove a certificate --------------- - Remove-AzKeyVaultCertificate -VaultName "ContosoKV01" -Name "SelfSigned01" -PassThru -Force - -Certificate : [Subject] - CN=contoso.com - - [Issuer] - CN=contoso.com - - [Serial Number] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - - [Not Before] - 4/11/2018 4:28:39 PM - - [Not After] - 10/11/2018 4:38:39 PM - - [Thumbprint] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - -KeyId : https://contosokv01.vault.azure.net:443/keys/selfsigned01/968c3920884a435abf8faea11f565456 -SecretId : https://contosokv01.vault.azure.net:443/secrets/selfsigned01/968c3920884a435abf8faea11f565456 -Thumbprint : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -RecoveryLevel : Purgeable -ScheduledPurgeDate : -DeletedDate : -Enabled : True -Expires : 10/11/2018 11:38:39 PM -NotBefore : 4/11/2018 11:28:39 PM -Created : 4/11/2018 11:38:39 PM -Updated : 4/11/2018 11:38:39 PM -Tags : -VaultName : ContosoKV01 -Name : SelfSigned01 -Version : 968c3920884a435abf8faea11f565456 -Id : https://contosokv01.vault.azure.net:443/certificates/selfsigned01/968c3920884a435abf8faea11f565456 - - This command removes the certificate named SelfSigned01 from the key vault named ContosoKV01. This command specifies the Force parameter. Therefore, the cmdlet does not prompt you for confirmation. - - - - - - Example 2: Purge the deleted certificate from the key vault permanently - Remove-AzKeyVaultCertificate -VaultName 'Contoso' -Name 'MyCert' -InRemovedState - - This command permanently removes the certificate named 'MyCert' from the key vault named 'Contoso'. Executing this cmdlet requires the 'purge' permission, which must have been previously and explicitly granted to the user on this key vault. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/remove-azkeyvaultcertificate - - - Add-AzKeyVaultCertificate - - - - Get-AzKeyVaultCertificate - - - - Import-AzKeyVaultCertificate - - - - Undo-AzKeyVaultCertificateRemoval - - - - - - - Remove-AzKeyVaultCertificateContact - Remove - AzKeyVaultCertificateContact - - Deletes a contact that is registered for certificate notifications from a key vault. - - - - The Remove-AzKeyVaultCertificateContact cmdlet deletes a contact that is registered for certificate notifications from a key vault. - - - - Remove-AzKeyVaultCertificateContact - - InputObject - - KeyVault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - EmailAddress - - Specifies the email address of the contact to remove. - - System.String[] - - System.String[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultCertificateContact - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - EmailAddress - - Specifies the email address of the contact to remove. - - System.String[] - - System.String[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultCertificateContact - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - EmailAddress - - Specifies the email address of the contact to remove. - - System.String[] - - System.String[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EmailAddress - - Specifies the email address of the contact to remove. - - System.String[] - - System.String[] - - - None - - - InputObject - - KeyVault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateContact - - - - - - - - - - - - - - ----------- Example 1: Remove a certificate contact ----------- - Remove-AzKeyVaultCertificateContact -VaultName "Contoso01" -EmailAddress "patti.fuller@contoso.com" -PassThru - -Email VaultName ------ --------- -user1@microsoft.com mvault2 -user2@microsoft.com mvault2 -user3@microsoft.com mvault2 -user4@microsoft.com mvault2 - - This command removes Patti Fuller as a certificate contact for the Contoso01 key vault. If PassThru is specified, the cmdlet returns the list of remaining certificate contacts. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/remove-azkeyvaultcertificatecontact - - - Add-AzKeyVaultCertificateContact - - - - Get-AzKeyVaultCertificateContact - - - - - - - Remove-AzKeyVaultCertificateIssuer - Remove - AzKeyVaultCertificateIssuer - - Deletes a certificate issuer from a key vault. - - - - The Remove-AzKeyVaultCertificateIssuer cmdlet deletes a certificate issuer from a key vault. - - - - Remove-AzKeyVaultCertificateIssuer - - InputObject - - Certificate Issuer Object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIssuerIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIssuerIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultCertificateIssuer - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the issuer to remove. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Certificate Issuer Object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIssuerIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIssuerIdentityItem - - - None - - - Name - - Specifies the name of the issuer to remove. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIssuerIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIssuer - - - - - - - - - - - - - - ------------ Example 1: Remove a certificate issuer ------------ - Remove-AzKeyVaultCertificateIssuer -VaultName "ContosoKV01" -Name "TestIssuer01" -Force - -AccountId : -ApiKey : -OrganizationDetails : -Name : TestIssuer01 -IssuerProvider : test -VaultName : ContosoKV01 - - This command removes the certificate issuer named TestIssuer01 from the ContosoKV01 key vault. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/remove-azkeyvaultcertificateissuer - - - Get-AzKeyVaultCertificateIssuer - - - - Set-AzKeyVaultCertificateIssuer - - - - - - - Remove-AzKeyVaultCertificateOperation - Remove - AzKeyVaultCertificateOperation - - Deletes a certificate operation from a key vault. - - - - The Remove-AzKeyVaultCertificateOperation cmdlet deletes a certificate operation from a key vault. - - - - Remove-AzKeyVaultCertificateOperation - - InputObject - - Operation object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOperation - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOperation - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultCertificateOperation - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Name - - Specifies the name of a certificate. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Operation object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOperation - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOperation - - - None - - - Name - - Specifies the name of a certificate. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOperation - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOperation - - - - - - - - - - - - - - ---------- Example 1: Remove a certificate operation ---------- - Remove-AzKeyVaultCertificateOperation -VaultName "ContosoKV01" -Name "TestCert01" -Force - -Id : https://contosokv01.vault.azure.net/certificates/testcert01/pending -Status : completed -StatusDetails : -RequestId : f5dfd2ae486149a594dc98e800dceaaa -Target : https://contosokv01.vault.azure.net/certificates/testcert01 -Issuer : Self -CancellationRequested : False -CertificateSigningRequest : MIICpjCCAY4CAQAwFjEUMBIGA1UEAxMLY29udG9zby5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC73w3VRBOlgJ5Od1PjDh+2ytngNZp+ZP4fkuX8K1Ti5LA6Ih7eWx1fgAN/iTb6l - 5K6LvAIJvsTNVePMNxfSdaEIJ70Inm45wVU4A/kf+UxQWAYVMsBrLtDFWxnVhzf6n7RGYke6HLBj3j5ASb9g+olSs6eON25ibF0t+u6JC+sIR0LmVGar9Q0eZys1rdfzJBIKq+laOM7z2pJijb5ANqve9 - i7rH5mnhQk4V8WsRstOhYR9jgLqSSxokDoeaBClIOidSBYqVc1yNv4ASe1UWUCR7ZK6OQXiecNWSWPmgWEyawu6AR9eb1YotCr2ScheMOCxlm3103luitxrd8A7kMjAgMBAAGgSzBJBgkqhkiG9w0BCQ4 - xPDA6MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwCQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOCAQEAIHhsDJV37PKi8hor5eQf7+Tct1preIvSwqV0NF6Uo7O6 - YnC9Py7Wp7CHfKzuqeptUk2Tsu7B5dHB+o9Ypeeqw8fWhTN0GFGRKO7WjZQlDqL+lRNcjlFSaP022oIP0kmvVhBcmZqRQlALXccAaxEclFA/3y/aNj2gwWeKpH/pwAkZ39zMEzpQCaRfnQk7e3l4MV8cf - eC2HPYdRWkXxAeDcNPxBuVmKy49AzYvly+APNVDU3v66gxl3fIKrGRsKi2Cp/nO5rBxG2h8t+0Za4l/HJ7ZWR9wKbd/xg7JhdZZFVBxMHYzw8KQ0ys13x8HY+PXU92Y7yD3uC2Rcj+zbAf+Kg== - == -ErrorCode : -ErrorMessage : -Name : -VaultName : - - This command removes the certificate operation named TestCert01 from the ContosoKV01 key vault without prompting for confirmation. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/remove-azkeyvaultcertificateoperation - - - Get-AzKeyVaultCertificateOperation - - - - Stop-AzKeyVaultCertificateOperation - - - - - - - Remove-AzKeyVaultKey - Remove - AzKeyVaultKey - - Deletes a key in a key vault. - - - - The Remove-AzKeyVaultKey cmdlet deletes a key in a key vault. If the key was accidentally deleted the key can be recovered using Undo-AzKeyVaultKeyRemoval by a user with special 'recover' permissions. This cmdlet has a value of high for the ConfirmImpact property. - - - - Remove-AzKeyVaultKey - - Name - - Specifies the name of the key to remove. This cmdlet constructs the fully qualified domain name (FQDN) of a key based on the name that this parameter specifies, the name of the key vault, and your current environment. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - InRemovedState - - Remove the previously deleted key permanently. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns a Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKey object. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultKey - - InputObject - - KeyBundle Object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - InRemovedState - - Remove the previously deleted key permanently. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns a Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKey object. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultKey - - VaultName - - Specifies the name of the key vault from which to remove the key. This cmdlet constructs the FQDN of a key vault based on the name that this parameter specifies and your current environment. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the key to remove. This cmdlet constructs the fully qualified domain name (FQDN) of a key based on the name that this parameter specifies, the name of the key vault, and your current environment. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - InRemovedState - - Remove the previously deleted key permanently. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns a Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKey object. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - InputObject - - KeyBundle Object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - None - - - InRemovedState - - Remove the previously deleted key permanently. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Specifies the name of the key to remove. This cmdlet constructs the fully qualified domain name (FQDN) of a key based on the name that this parameter specifies, the name of the key vault, and your current environment. - - System.String - - System.String - - - None - - - PassThru - - Indicates that this cmdlet returns a Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKey object. By default, this cmdlet does not generate any output. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - VaultName - - Specifies the name of the key vault from which to remove the key. This cmdlet constructs the FQDN of a key vault based on the name that this parameter specifies and your current environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultKey - - - - - - - - - - - - - - ----------- Example 1: Remove a key from a key vault ----------- - Remove-AzKeyVaultKey -VaultName 'Contoso' -Name 'ITSoftware' -PassThru - -Vault Name : contoso -Name : key2 -Id : https://contoso.vault.azure.net:443/keys/itsoftware/fdad15793ba0437e960497908ef9eb32 -Deleted Date : 5/24/2018 11:28:25 PM -Scheduled Purge Date : 8/22/2018 11:28:25 PM -Enabled : False -Expires : 10/11/2018 11:32:49 PM -Not Before : 4/11/2018 11:22:49 PM -Created : 4/12/2018 10:16:38 PM -Updated : 4/12/2018 10:16:38 PM -Purge Disabled : False -Tags : - - This command removes the key named ITSoftware from the key vault named Contoso. - - - - - - ------ Example 2: Remove a key without user confirmation ------ - Remove-AzKeyVaultKey -VaultName 'Contoso' -Name 'ITSoftware' -Force - - This command removes the key named ITSoftware from the key vault named Contoso. The command specifies the Force parameter, and, therefore, the cmdlet does not prompt you for confirmation. - - - - - - Example 3: Purge a deleted key from the key vault permanently - Remove-AzKeyVaultKey -VaultName 'Contoso' -Name 'ITSoftware' -InRemovedState - - This command removes the key named ITSoftware from the key vault named Contoso permanently. Executing this cmdlet requires the 'purge' permission, which must have been previously and explicitly granted to the user for this key vault. - - - - - - ---- Example 4: Remove keys by using the pipeline operator ---- - Get-AzKeyVaultKey -VaultName 'Contoso' | Where-Object {$_.Attributes.Enabled -eq $False} | Remove-AzKeyVaultKey - - This command gets all the keys in the key vault named Contoso, and passes them to the Where-Object cmdlet by using the pipeline operator. That cmdlet passes the keys that have a value of $False for the Enabled attribute to the current cmdlet. That cmdlet removes those keys. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/remove-azkeyvaultkey - - - Add-AzKeyVaultKey - - - - Get-AzKeyVaultKey - - - - Undo-AzKeyVaultKeyRemoval - - - - - - - Remove-AzKeyVaultManagedHsm - Remove - AzKeyVaultManagedHsm - - Deletes/Purges a managed HSM. - - - - The Remove-AzKeyVaultManagedHsm cmdlet deletes the specified managed HSM. It also deletes all keys contained in that instance. Note that although specifying the resource group is optional for this cmdlet, you should so for better performance. - - - - Remove-AzKeyVaultManagedHsm - - InputObject - - Managed HSM object to be deleted. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Indicates that the cmdlet does not prompt you for confirmation. By default, this cmdlet prompts you to confirm that you want to delete the managed HSM. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns true if successful. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultManagedHsm - - InputObject - - Managed HSM object to be deleted. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Indicates that the cmdlet does not prompt you for confirmation. By default, this cmdlet prompts you to confirm that you want to delete the managed HSM. - - - System.Management.Automation.SwitchParameter - - - False - - - InRemovedState - - Remove the previously deleted managed HSM pool permanently. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns true if successful. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultManagedHsm - - Name - - Specifies the name of the managed HSM to remove. - - System.String - - System.String - - - None - - - Location - - The location of the deleted managed HSM pool. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Indicates that the cmdlet does not prompt you for confirmation. By default, this cmdlet prompts you to confirm that you want to delete the managed HSM. - - - System.Management.Automation.SwitchParameter - - - False - - - InRemovedState - - Remove the previously deleted managed HSM pool permanently. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns true if successful. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultManagedHsm - - ResourceId - - ManagedHsm Resource Id. - - System.String - - System.String - - - None - - - Location - - The location of the deleted managed HSM pool. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Indicates that the cmdlet does not prompt you for confirmation. By default, this cmdlet prompts you to confirm that you want to delete the managed HSM. - - - System.Management.Automation.SwitchParameter - - - False - - - InRemovedState - - Remove the previously deleted managed HSM pool permanently. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns true if successful. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultManagedHsm - - Name - - Specifies the name of the managed HSM to remove. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of resource group for Azure managed HSM to remove. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Indicates that the cmdlet does not prompt you for confirmation. By default, this cmdlet prompts you to confirm that you want to delete the managed HSM. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns true if successful. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultManagedHsm - - ResourceId - - ManagedHsm Resource Id. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Indicates that the cmdlet does not prompt you for confirmation. By default, this cmdlet prompts you to confirm that you want to delete the managed HSM. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns true if successful. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Indicates that the cmdlet does not prompt you for confirmation. By default, this cmdlet prompts you to confirm that you want to delete the managed HSM. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Managed HSM object to be deleted. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - InRemovedState - - Remove the previously deleted managed HSM pool permanently. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Location - - The location of the deleted managed HSM pool. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the managed HSM to remove. - - System.String - - System.String - - - None - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns true if successful. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Specifies the name of resource group for Azure managed HSM to remove. - - System.String - - System.String - - - None - - - ResourceId - - ManagedHsm Resource Id. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - - - - - - System.String - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - --------------- Example 1: Remove a managed HSM --------------- - Remove-AzKeyVaultManagedHsm -HsmName 'myhsm' -Force - -True - - This command removes the managed HSM named myhsm from your current subscription. - - - - - - Example 2: Remove a managed hsm from a specified resource group - Remove-AzKeyVaultManagedHsm -HsmName 'myhsm' -ResourceGroupName "myrg1" -PassThru - -True - - This command removes the managed HSM named myhsm from the resource group named myrg1. If you do not specify the resource group name, the cmdlet searches for the named managed HSM to delete in your current subscription. - - - - - - ------------ Example 3: Purge a deleted managed hsm ------------ - Remove-AzKeyVaultManagedHsm -Name 'myhsm' -Location "eastus" -Force -PassThru - -True - - This command purges the managed HSM named myhsm located at eastus. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/remove-azkeyvaultmanagedhsm - - - Get-AzKeyVaultManagedHsm - - - - New-AzKeyVaultManagedHsm - - - - Update-AzKeyVaultManagedHsm - - - - Undo-AzKeyVaultManagedHsmRemoval - - - - - - - Remove-AzKeyVaultManagedStorageAccount - Remove - AzKeyVaultManagedStorageAccount - - Removes a Key Vault managed Azure Storage Account and all associated SAS definitions. - - - - Disassociates an Azure Storage Account from Key Vault. This does not remove an Azure Storage Account but removes the account keys from being managed by Azure Key Vault. All associated Key Vault managed Storage SAS definitions are also removed. - - - - Remove-AzKeyVaultManagedStorageAccount - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - AccountName - - Key Vault managed storage account name. Cmdlet constructs the FQDN of a managed storage account name from vault name, currently selected environment and manged storage account name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Do not ask for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - InRemovedState - - Permanently remove the previously deleted managed storage account. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Cmdlet does not return an object by default. If this switch is specified, cmdlet returns the managed storage account that was deleted. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultManagedStorageAccount - - InputObject - - ManagedStorageAccount object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Do not ask for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - InRemovedState - - Permanently remove the previously deleted managed storage account. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Cmdlet does not return an object by default. If this switch is specified, cmdlet returns the managed storage account that was deleted. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AccountName - - Key Vault managed storage account name. Cmdlet constructs the FQDN of a managed storage account name from vault name, currently selected environment and manged storage account name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Do not ask for confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - ManagedStorageAccount object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - None - - - InRemovedState - - Permanently remove the previously deleted managed storage account. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Cmdlet does not return an object by default. If this switch is specified, cmdlet returns the managed storage account that was deleted. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultManagedStorageAccount - - - - - - - - - - - - - - Example 1: Remove a Key Vault managed Azure Storage Account and all associated SAS definitions. - Remove-AzKeyVaultManagedStorageAccount -VaultName 'myvault' -AccountName 'mystorageaccount' -PassThru - -Id : https://myvault.vault.azure.net:443/storage/mystorageaccount -Vault Name : myvault -AccountName : mystorageaccount -Account Resource Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers/Microsoft.St - orage/storageAccounts/mystorageaccount -Enabled : True -Created : 4/25/2018 1:50:32 AM -Updated : 4/25/2018 1:50:32 AM -Tags : - - Disassociates Azure Storage Account 'mystorageaccount' from Key Vault 'myvault' and stops Key Vault from managing its keys. The account 'mystorageaccount' will not be removed. All Key Vault managed Storage SAS definitions associated with this account will be removed. - - - - - - Example 2: Remove a Key Vault managed Azure Storage Account and all associated SAS definitions without user confirmation. - Remove-AzKeyVaultManagedStorageAccount -VaultName 'myvault' -AccountName 'mystorageaccount' -PassThru -Force - -Id : https://myvault.vault.azure.net:443/storage/mystorageaccount -Vault Name : myvault -AccountName : mystorageaccount -Account Resource Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers/Microsoft.St - orage/storageAccounts/mystorageaccount -Enabled : True -Created : 4/25/2018 1:50:32 AM -Updated : 4/25/2018 1:50:32 AM -Tags : - - Disassociates Azure Storage Account 'mystorageaccount' from Key Vault 'myvault' and stops Key Vault from managing its keys. The account 'mystorageaccount' will not be removed. All Key Vault managed Storage SAS definitions associated with this account will be removed. - - - - - - Example 3: Permanently delete (purge) a Key Vault managed Azure Storage Account and all associated SAS definitions from a soft-delete-enabled vault. - Remove-AzKeyVaultManagedStorageAccount -VaultName 'myvault' -AccountName 'mystorageaccount' -Get-AzKeyVaultManagedStorageAccount -VaultName 'myvault' -AccountName 'mystorageaccount' -InRemovedState -Remove-AzKeyVaultManagedStorageAccount -VaultName 'myvault' -AccountName 'mystorageaccount' -InRemovedState - - The example assumes that soft-delete is enabled for this vault. Verify whether that is the case by examining the vault properties, or the RecoveryLevel attribute of an entity in the vault. The first cmdlet disassociates Azure Storage Account 'mystorageaccount' from Key Vault 'myvault' and stops Key Vault from managing its keys. The account 'mystorageaccount' will not be removed. All Key Vault managed Storage SAS definitions associated with this account will be removed. The second cmdlet verifies that the storage account is in a deleted, but recoverable state. Reaching this state may require some time, please allow ~30s before attempting. The third cmdlet permanently removes the storage account - recovery will no longer be possible. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/remove-azkeyvaultmanagedstorageaccount - - - Azure Key Vault PowerShell cmdlets - - - - - - - Remove-AzKeyVaultManagedStorageSasDefinition - Remove - AzKeyVaultManagedStorageSasDefinition - - Removes a Key Vault managed Azure Storage SAS definitions. - - - - Removes a Key Vault managed Azure Storage SAS definitions. This also removes the secret used to get the SAS token per this SAS definition. - - - - Remove-AzKeyVaultManagedStorageSasDefinition - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - AccountName - - Storage account name. Cmdlet constructs the FQDN of a managed storage account name from vault name, currently selected environment and storage account name. - - System.String - - System.String - - - None - - - Name - - Storage sas definition name. Cmdlet constructs the FQDN of a storage sas definition from vault name, currently selected environment, storage account name and sas definition name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Do not ask for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Cmdlet does not return an object by default. If this switch is specified, cmdlet returns the managed storage account that was deleted. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultManagedStorageSasDefinition - - InputObject - - ManagedStorageSasDefinition object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageSasDefinitionIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageSasDefinitionIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Do not ask for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Cmdlet does not return an object by default. If this switch is specified, cmdlet returns the managed storage account that was deleted. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AccountName - - Storage account name. Cmdlet constructs the FQDN of a managed storage account name from vault name, currently selected environment and storage account name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Do not ask for confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - ManagedStorageSasDefinition object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageSasDefinitionIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageSasDefinitionIdentityItem - - - None - - - Name - - Storage sas definition name. Cmdlet constructs the FQDN of a storage sas definition from vault name, currently selected environment, storage account name and sas definition name. - - System.String - - System.String - - - None - - - PassThru - - Cmdlet does not return an object by default. If this switch is specified, cmdlet returns the managed storage account that was deleted. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageSasDefinitionIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultManagedStorageSasDefinition - - - - - - - - - - - - - - Example 1: Remove a Key Vault managed Azure Storage SAS definition. - Remove-AzKeyVaultManagedStorageSasDefinition -VaultName 'myvault' -AccountName 'mystorageaccount' -Name 'mysasdef' -PassThru - -Id : https://myvault.vault.azure.net:443/storage/mystorageaccount/sas/mysasdef -Vault Name : myvault -AccountName : mystorageaccount -Name : mysasdef -Enabled : True -Created : 5/24/2018 9:11:08 PM -Updated : 5/24/2018 9:11:08 PM -Tags : - - Removes a Key Vault managed Storage SAS definition 'mysasdef' associated with the account 'mystorageaccount' in vault 'myvault'. - - - - - - Example 2: Remove a Key Vault managed Azure Storage SAS definition without user confirmation. - Remove-AzKeyVaultManagedStorageSasDefinition -VaultName 'myvault' -AccountName 'mystorageaccount' -Name 'mysasdef' -PassThru -Force - -Id : https://myvault.vault.azure.net:443/storage/mystorageaccount/sas/mysasdef -Vault Name : myvault -AccountName : mystorageaccount -Name : mysasdef -Enabled : True -Created : 5/24/2018 9:11:08 PM -Updated : 5/24/2018 9:11:08 PM -Tags : - - Removes a Key Vault managed Storage SAS definition 'mysasdef' associated with the account 'mystorageaccount' in vault 'myvault'. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/remove-azkeyvaultmanagedstoragesasdefinition - - - Get-AzKeyVaultManagedStorageSasDefinition - - - - Set-AzKeyVaultManagedStorageSasDefinition - - - - Undo-AzKeyVaultManagedStorageSasDefinitionRemoval - - - - - - - Remove-AzKeyVaultNetworkRule - Remove - AzKeyVaultNetworkRule - - Removes a network rule from a key vault. - - - - Removes a network rule from a key vault. - - - - Remove-AzKeyVaultNetworkRule - - InputObject - - KeyVault object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IpAddressRange - - Specifies allowed network IP address range of network rule. - - System.String[] - - System.String[] - - - None - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns the updated key vault object. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - VirtualNetworkResourceId - - Specifies allowed virtual network resource identifier of network rule. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultNetworkRule - - VaultName - - Specifies the name of a key vault whose network rule is being modified. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the resource group associated with the key vault whose network rule is being modified. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IpAddressRange - - Specifies allowed network IP address range of network rule. - - System.String[] - - System.String[] - - - None - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns the updated key vault object. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - VirtualNetworkResourceId - - Specifies allowed virtual network resource identifier of network rule. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultNetworkRule - - ResourceId - - KeyVault Resource Id - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IpAddressRange - - Specifies allowed network IP address range of network rule. - - System.String[] - - System.String[] - - - None - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns the updated key vault object. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - VirtualNetworkResourceId - - Specifies allowed virtual network resource identifier of network rule. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - KeyVault object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - IpAddressRange - - Specifies allowed network IP address range of network rule. - - System.String[] - - System.String[] - - - None - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns the updated key vault object. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Specifies the name of the resource group associated with the key vault whose network rule is being modified. - - System.String - - System.String - - - None - - - ResourceId - - KeyVault Resource Id - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - VaultName - - Specifies the name of a key vault whose network rule is being modified. - - System.String - - System.String - - - None - - - VirtualNetworkResourceId - - Specifies allowed virtual network resource identifier of network rule. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - $myNetworkResId = (Get-AzVirtualNetwork -Name myVNetName -ResourceGroupName myRG).Subnets[0].Id -Remove-AzKeyVaultNetworkRule -VaultName myVault -IpAddressRange "10.0.0.1/26" -VirtualNetworkResourceId $myNetworkResId -PassThru - -Vault Name : myVault -Resource Group Name : myrg -Location : West US -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers - /Microsoft.KeyVault/vaults/myvault -Vault URI : https://myvault.vault.azure.net/ -Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx -SKU : Standard -Enabled For Deployment? : False -Enabled For Template Deployment? : False -Enabled For Disk Encryption? : False -Soft Delete Enabled? : -Access Policies : - Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Object ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Application ID : - Display Name : User Name (username@microsoft.com) - Permissions to Keys : get, create, delete, list, update, - import, backup, restore, recover - Permissions to Secrets : get, list, set, delete, backup, - restore, recover - Permissions to Certificates : get, delete, list, create, import, - update, deleteissuers, getissuers, listissuers, managecontacts, manageissuers, - setissuers, recover, backup, restore - Permissions to (Key Vault Managed) Storage : delete, deletesas, get, getsas, list, - listsas, regeneratekey, set, setsas, update, recover, backup, restore - - -Network Rule Set : - Default Action : Allow - Bypass : AzureServices - IP Rules : - Virtual Network Rules : - -Tags : - - This command removes a network rule from the specified vault, provided a rule is found matching the specified IP address and the virtual network resource identifier. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/remove-azkeyvaultnetworkrule - - - - - - Remove-AzKeyVaultRoleAssignment - Remove - AzKeyVaultRoleAssignment - - Removes a role assignment to the specified principal who is assigned to a particular role at a particular scope. - - - - Use the `Remove-AzKeyVaultRoleAssignment` cmdlet to revoke access to any principal at given scope and given role. The object of the assignment i.e. the principal MUST be specified. The principal can be a user (use SignInName or ObjectId parameters to identify a user), security group (use ObjectId parameter to identify a group) or service principal (use ApplicationId or ObjectId parameters to identify a ServicePrincipal. The role that the principal is assigned to MUST be specified using the RoleDefinitionName or RoleDefinitionId parameter. - The cmdlet may call below Microsoft Graph API according to input parameters: - - GET /users/{id} - - GET /servicePrincipals - - - - Remove-AzKeyVaultRoleAssignment - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - ApplicationId - - The app SPN. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Return true when the HSM is restored. - - - System.Management.Automation.SwitchParameter - - - False - - - RoleDefinitionName - - Name of the RBAC role to assign the principal with. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultRoleAssignment - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - ApplicationId - - The app SPN. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Return true when the HSM is restored. - - - System.Management.Automation.SwitchParameter - - - False - - - RoleDefinitionId - - Role Id the principal is assigned to. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultRoleAssignment - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Return true when the HSM is restored. - - - System.Management.Automation.SwitchParameter - - - False - - - RoleDefinitionName - - Name of the RBAC role to assign the principal with. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - SignInName - - The user SignInName. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultRoleAssignment - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ObjectId - - The user or group object id. - - System.String - - System.String - - - None - - - PassThru - - Return true when the HSM is restored. - - - System.Management.Automation.SwitchParameter - - - False - - - RoleDefinitionName - - Name of the RBAC role to assign the principal with. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultRoleAssignment - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ObjectId - - The user or group object id. - - System.String - - System.String - - - None - - - PassThru - - Return true when the HSM is restored. - - - System.Management.Automation.SwitchParameter - - - False - - - RoleDefinitionId - - Role Id the principal is assigned to. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultRoleAssignment - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Return true when the HSM is restored. - - - System.Management.Automation.SwitchParameter - - - False - - - RoleDefinitionId - - Role Id the principal is assigned to. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - SignInName - - The user SignInName. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultRoleAssignment - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Return true when the HSM is restored. - - - System.Management.Automation.SwitchParameter - - - False - - - RoleAssignmentName - - Name of the role assignment. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultRoleAssignment - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Role assignment object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleAssignment - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleAssignment - - - None - - - PassThru - - Return true when the HSM is restored. - - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ApplicationId - - The app SPN. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - InputObject - - Role assignment object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleAssignment - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleAssignment - - - None - - - ObjectId - - The user or group object id. - - System.String - - System.String - - - None - - - PassThru - - Return true when the HSM is restored. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - RoleAssignmentName - - Name of the role assignment. - - System.String - - System.String - - - None - - - RoleDefinitionId - - Role Id the principal is assigned to. - - System.String - - System.String - - - None - - - RoleDefinitionName - - Name of the RBAC role to assign the principal with. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - SignInName - - The user SignInName. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleAssignment - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleAssignment - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Remove-AzKeyVaultRoleAssignment -HsmName myHsm -RoleDefinitionName "Managed HSM Policy Administrator" -SignInName user1@microsoft.com -Scope "/keys" - - This example revokes "Managed HSM Policy Administrator" role of "user1@microsoft.com" at "/keys" scope. - - - - - - -------------------------- Example 2 -------------------------- - Get-AzKeyVaultRoleAssignment -HsmName myHsm -SignInName user1@microsoft.com | Remove-AzKeyVaultRoleAssignment - - This example revokes all roles of "user1@microsoft.com" at all scopes. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/remove-azkeyvaultroleassignment - - - - - - Remove-AzKeyVaultRoleDefinition - Remove - AzKeyVaultRoleDefinition - - Removes a custom role definition from an HSM. - - - - The `Remove-AzKeyVaultRoleDefinition` cmdlet deletes a custom role in Azure Role-Based Access Control of Azure KeyVault managed HSM. Provide the `-RoleName` parameter of an existing custom role or a role object to delete that custom role. By default, `Remove-AzKeyVaultRoleDefinition` prompts you for confirmation. To suppress the prompt, use the `-Force` parameter. - - - - Remove-AzKeyVaultRoleDefinition - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Do not ask for confirm. - - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - The object representing the role definition to be removed. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleDefinition - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleDefinition - - - None - - - PassThru - - This cmdlet does not return an object by default. If this switch is specified, it returns true if successful. - - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultRoleDefinition - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Do not ask for confirm. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - This cmdlet does not return an object by default. If this switch is specified, it returns true if successful. - - - System.Management.Automation.SwitchParameter - - - False - - - RoleName - - Name of the role definition to get. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Do not ask for confirm. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - InputObject - - The object representing the role definition to be removed. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleDefinition - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleDefinition - - - None - - - PassThru - - This cmdlet does not return an object by default. If this switch is specified, it returns true if successful. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - RoleName - - Name of the role definition to get. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleDefinition - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Remove-AzKeyVaultRoleDefinition -HsmName myHsm -RoleName "my role" - - This example removes a custom role named "my role". - - - - - - -------------------------- Example 2 -------------------------- - $role = Get-AzKeyVaultRoleDefinition -HsmName myHsm -RoleName "my role" -$role | Remove-AzKeyVaultRoleDefinition -HsmName myHsm -Force - - This example removes a custom role named "my role" by piping the role object. It also suppress the prompt by `-Force`. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/remove-azkeyvaultroledefinition - - - - - - Remove-AzKeyVaultSecret - Remove - AzKeyVaultSecret - - Deletes a secret in a key vault. - - - - The Remove-AzKeyVaultSecret cmdlet deletes a secret in a key vault. If the secret was accidentally deleted the secret can be recovered using Undo-AzKeyVaultSecretRemoval by a user with special 'recover' permissions. This cmdlet has a value of high for the ConfirmImpact property. - - - - Remove-AzKeyVaultSecret - - Id - - The URI of the KeyVault Secret. Please ensure it follows the format: `https://<vault-name>.vault.azure.net/secrets/<secret-name>/<version>` - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - SwitchParameter - - - False - - - InRemovedState - - If present, removes the previously deleted secret permanently. - - - SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns a Microsoft.Azure.Commands.KeyVault.Models.Secret object. By default, this cmdlet does not generate any output. - - - SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Remove-AzKeyVaultSecret - - InputObject - - Key Vault Secret Object - - PSKeyVaultSecretIdentityItem - - PSKeyVaultSecretIdentityItem - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - SwitchParameter - - - False - - - InRemovedState - - If present, removes the previously deleted secret permanently. - - - SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns a Microsoft.Azure.Commands.KeyVault.Models.Secret object. By default, this cmdlet does not generate any output. - - - SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Remove-AzKeyVaultSecret - - VaultName - - Specifies the name of the key vault to which the secret belongs. This cmdlet constructs the FQDN of a key vault based on the name that this parameter specifies and your current environment. - - String - - String - - - None - - - Name - - Specifies the name of a secret. This cmdlet constructs the fully qualified domain name (FQDN) of a secret based on the name that this parameter specifies, the name of the key vault, and your current environment. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - SwitchParameter - - - False - - - InRemovedState - - If present, removes the previously deleted secret permanently. - - - SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns a Microsoft.Azure.Commands.KeyVault.Models.Secret object. By default, this cmdlet does not generate any output. - - - SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - SwitchParameter - - SwitchParameter - - - False - - - Id - - The URI of the KeyVault Secret. Please ensure it follows the format: `https://<vault-name>.vault.azure.net/secrets/<secret-name>/<version>` - - String - - String - - - None - - - InRemovedState - - If present, removes the previously deleted secret permanently. - - SwitchParameter - - SwitchParameter - - - False - - - InputObject - - Key Vault Secret Object - - PSKeyVaultSecretIdentityItem - - PSKeyVaultSecretIdentityItem - - - None - - - Name - - Specifies the name of a secret. This cmdlet constructs the fully qualified domain name (FQDN) of a secret based on the name that this parameter specifies, the name of the key vault, and your current environment. - - String - - String - - - None - - - PassThru - - Indicates that this cmdlet returns a Microsoft.Azure.Commands.KeyVault.Models.Secret object. By default, this cmdlet does not generate any output. - - SwitchParameter - - SwitchParameter - - - False - - - VaultName - - Specifies the name of the key vault to which the secret belongs. This cmdlet constructs the FQDN of a key vault based on the name that this parameter specifies and your current environment. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSecretIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultSecret - - - - - - - - - - - - - - --------- Example 1: Remove a secret from a key vault --------- - Remove-AzKeyVaultSecret -VaultName 'Contoso' -Name 'FinanceSecret' -PassThru - -Vault Name : Contoso -Name : FinanceSecret -Version : f622abc7b1394092812f1eb0f85dc91c -Id : https://contoso.vault.azure.net:443/secrets/financesecret/f622abc7b1394092812f1eb0f85dc91c -Deleted Date : 5/25/2018 4:45:34 PM -Scheduled Purge Date : 8/23/2018 4:45:34 PM -Enabled : True -Expires : -Not Before : -Created : 4/19/2018 5:56:02 PM -Updated : 4/26/2018 7:48:40 PM -Content Type : -Tags : - - This command removes the secret named FinanceSecret from the key vault named Contoso.' - - - - - - Example 2: Remove a secret from a key vault without user confirmation - Remove-AzKeyVaultSecret -VaultName 'Contoso' -Name 'FinanceSecret' -PassThru -Force - -Vault Name : Contoso -Name : FinanceSecret -Version : f622abc7b1394092812f1eb0f85dc91c -Id : https://contoso.vault.azure.net:443/secrets/financesecret/f622abc7b1394092812f1eb0f85dc91c -Deleted Date : 5/25/2018 4:45:34 PM -Scheduled Purge Date : 8/23/2018 4:45:34 PM -Enabled : True -Expires : -Not Before : -Created : 4/19/2018 5:56:02 PM -Updated : 4/26/2018 7:48:40 PM -Content Type : -Tags : - - This command removes the secret named FinanceSecret from the key vault named Contoso. The command specifies the Force and Confirm parameters, and, therefore, the cmdlet does not prompt you for confirmation. - - - - - - --- Example 3: Remove a secret from a key vault (using uri) --- - Remove-AzKeyVaultSecret -Id 'https://contoso.vault.azure.net:443/secrets/financesecret' -PassThru - -Vault Name : Contoso -Name : FinanceSecret -Version : f622abc7b1394092812f1eb0f85dc91c -Id : https://contoso.vault.azure.net:443/secrets/financesecret/f622abc7b1394092812f1eb0f85dc91c -Deleted Date : 5/25/2018 4:45:34 PM -Scheduled Purge Date : 8/23/2018 4:45:34 PM -Enabled : True -Expires : -Not Before : -Created : 4/19/2018 5:56:02 PM -Updated : 4/26/2018 7:48:40 PM -Content Type : -Tags : - - This command removes the secret named 'FinanceSecret' from the key vault named 'Contoso'. - - - - - - Example 4: Remove a secret in Azure Key Vault by command Remove-Secret in module Microsoft.PowerShell.SecretManagement - # Install module Microsoft.PowerShell.SecretManagement -Install-Module Microsoft.PowerShell.SecretManagement -Repository PSGallery -AllowPrerelease -# Register vault for Secret Management -Register-SecretVault -Name AzKeyVault -ModuleName Az.KeyVault -VaultParameters @{ AZKVaultName = 'test-kv'; SubscriptionId = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' } -# Set secret for vault AzKeyVault -$secure = ConvertTo-SecureString -String "****" -AsPlainText -Force -Set-Secret -Vault AzKeyVault -Name secureSecret -SecureStringSecret $secure -Remove-Secret -Vault AzKeyVault -Name secureSecret - -None - - This example removes a secret named `secureSecret` in Azure Key Vault `test-kv` by command `Remove-Secret` in module `Microsoft.PowerShell.SecretManagement`. - - - - - - Example 4: Purge deleted secret from the key vault permanently - Remove-AzKeyVaultSecret -VaultName 'Contoso' -Name 'FinanceSecret' -InRemovedState - - This command removes the secret named FinanceSecret from the key vault named Contoso permanently. Executing this cmdlet requires the 'purge' permission, which must have been previously and explicitly granted to the user for this key vault. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/remove-azkeyvaultsecret - - - Get-AzKeyVaultSecret - - - - Set-AzKeyVaultSecret - - - - Undo-AzKeyVaultSecretRemoval - - - - - - - Restore-AzKeyVault - Restore - AzKeyVault - - Fully restores a managed HSM from backup. - - - - Fully restores a managed HSM from a backup stored in a storage account. Use `Backup-AzKeyVault` to backup. - - - - Restore-AzKeyVault - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - BackupFolder - - Folder name of the backup, e.g. 'mhsm-*-2020101309020403'. It can also be nested such as 'backups/mhsm-*-2020101309020403'. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - KeyName - - Key name to restore. - - System.String - - System.String - - - None - - - PassThru - - Return true when the HSM is restored. - - - System.Management.Automation.SwitchParameter - - - False - - - SasToken - - The shared access signature (SAS) token to authenticate the storage account. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - StorageAccountName - - Name of the storage account where the backup is going to be stored. - - System.String - - System.String - - - None - - - StorageContainerName - - Name of the blob container where the backup is going to be stored. - - System.String - - System.String - - - None - - - UseUserManagedIdentity - - Specified to use User Managed Identity to authenticate the storage account. Only valid when SasToken is not set. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Restore-AzKeyVault - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - BackupFolder - - Folder name of the backup, e.g. 'mhsm-*-2020101309020403'. It can also be nested such as 'backups/mhsm-*-2020101309020403'. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - KeyName - - Key name to restore. - - System.String - - System.String - - - None - - - PassThru - - Return true when the HSM is restored. - - - System.Management.Automation.SwitchParameter - - - False - - - SasToken - - The shared access signature (SAS) token to authenticate the storage account. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - StorageContainerUri - - URI of the storage container where the backup is going to be stored. - - System.Uri - - System.Uri - - - None - - - UseUserManagedIdentity - - Specified to use User Managed Identity to authenticate the storage account. Only valid when SasToken is not set. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Restore-AzKeyVault - - BackupFolder - - Folder name of the backup, e.g. 'mhsm-*-2020101309020403'. It can also be nested such as 'backups/mhsm-*-2020101309020403'. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmObject - - Managed HSM object - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - KeyName - - Key name to restore. - - System.String - - System.String - - - None - - - PassThru - - Return true when the HSM is restored. - - - System.Management.Automation.SwitchParameter - - - False - - - SasToken - - The shared access signature (SAS) token to authenticate the storage account. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - StorageContainerUri - - URI of the storage container where the backup is going to be stored. - - System.Uri - - System.Uri - - - None - - - UseUserManagedIdentity - - Specified to use User Managed Identity to authenticate the storage account. Only valid when SasToken is not set. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Restore-AzKeyVault - - BackupFolder - - Folder name of the backup, e.g. 'mhsm-*-2020101309020403'. It can also be nested such as 'backups/mhsm-*-2020101309020403'. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmObject - - Managed HSM object - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - KeyName - - Key name to restore. - - System.String - - System.String - - - None - - - PassThru - - Return true when the HSM is restored. - - - System.Management.Automation.SwitchParameter - - - False - - - SasToken - - The shared access signature (SAS) token to authenticate the storage account. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - StorageAccountName - - Name of the storage account where the backup is going to be stored. - - System.String - - System.String - - - None - - - StorageContainerName - - Name of the blob container where the backup is going to be stored. - - System.String - - System.String - - - None - - - UseUserManagedIdentity - - Specified to use User Managed Identity to authenticate the storage account. Only valid when SasToken is not set. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - BackupFolder - - Folder name of the backup, e.g. 'mhsm-*-2020101309020403'. It can also be nested such as 'backups/mhsm-*-2020101309020403'. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - HsmObject - - Managed HSM object - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - KeyName - - Key name to restore. - - System.String - - System.String - - - None - - - PassThru - - Return true when the HSM is restored. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - SasToken - - The shared access signature (SAS) token to authenticate the storage account. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - StorageAccountName - - Name of the storage account where the backup is going to be stored. - - System.String - - System.String - - - None - - - StorageContainerName - - Name of the blob container where the backup is going to be stored. - - System.String - - System.String - - - None - - - StorageContainerUri - - URI of the storage container where the backup is going to be stored. - - System.Uri - - System.Uri - - - None - - - UseUserManagedIdentity - - Specified to use User Managed Identity to authenticate the storage account. Only valid when SasToken is not set. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - ---------------- Example 1 Restore a Key Vault ---------------- - $sasToken = ConvertTo-SecureString -AsPlainText -Force "?sv=2019-12-12&ss=bfqt&srt=sco&sp=rwdlacupx&se=2020-10-12T14:42:19Z&st=2020-10-12T06:42:19Z&spr=https&sig=******" -Restore-AzKeyVault -HsmName myHsm -StorageContainerUri "https://{accountName}.blob.core.windows.net/{containerName}" -BackupFolder "mhsm-myHsm-2020101308504935" -SasToken $sasToken - - The example restores a backup stored in a folder named "mhsm-myHsm-2020101308504935" of a storage container "https://{accountName}.blob.core.windows.net/{containerName}". - - - - - - Example 2 Restore a Key Vault via User Assigned Managed Identity Authentication - # Make sure an identity is assigend to the Hsm -Update-AzKeyVaultManagedHsm -UserAssignedIdentity "/subscriptions/{sub-id}/resourceGroups/{rg-name}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identity-name}" -Restore-AzKeyVault -HsmName myHsm -StorageContainerUri "https://{accountName}.blob.core.windows.net/{containerName}" -BackupFolder "mhsm-myHsm-2020101308504935" -UseUserManagedIdentity - - The example restores an HSM via User Assigned Managed Identity Authentication. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/restore-azkeyvault - - - - - - Restore-AzKeyVaultCertificate - Restore - AzKeyVaultCertificate - - Restores a certificate in a key vault from a backup file. - - - - The Restore-AzKeyVaultCertificate cmdlet creates a certificate in the specified key vault from a backup file. This certificate is a replica of the backed-up certificate in the input file and has the same name as the original certificate. If the key vault already contains a certificate by the same name, this cmdlet fails instead of overwriting the original certificate. If the backup contains multiple versions of a certificate, all versions are restored. The key vault that you restore the certificate into can be different from the key vault that you backed up the certificate from. However, the key vault must use the same subscription and be in an Azure region in the same geography (for example, North America). See the Microsoft Azure Trust Center (https://azure.microsoft.com/support/trust-center/) for the mapping of Azure regions to geographies. - - - - Restore-AzKeyVaultCertificate - - InputObject - - KeyVault object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - InputFile - - Input file. The input file containing the backed-up blob - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Restore-AzKeyVaultCertificate - - ResourceId - - KeyVault Resource Id - - System.String - - System.String - - - None - - - InputFile - - Input file. The input file containing the backed-up blob - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Restore-AzKeyVaultCertificate - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - InputFile - - Input file. The input file containing the backed-up blob - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputFile - - Input file. The input file containing the backed-up blob - - System.String - - System.String - - - None - - - InputObject - - KeyVault object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - ResourceId - - KeyVault Resource Id - - System.String - - System.String - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificate - - - - - - - - - - - - - - ---------- Example 1: Restore a backed-up certificate ---------- - Restore-AzKeyVaultCertificate -VaultName 'MyKeyVault' -InputFile "C:\Backup.blob" - -Certificate : [Subject] - CN=contoso.com - - [Issuer] - CN=contoso.com - - [Serial Number] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - - [Not Before] - 5/25/2018 3:47:41 AM - - [Not After] - 11/25/2018 2:57:41 AM - - [Thumbprint] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - -KeyId : https://mykeyvault.vault.azure.net:443/keys/cert1/bd406f6d6b3a41a1a1c633494d8c3c3a -SecretId : https://mykeyvault.vault.azure.net:443/secrets/cert1/bd406f6d6b3a41a1a1c633494d8c3c3a -Thumbprint : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -RecoveryLevel : Purgeable -Enabled : True -Expires : 11/25/2018 10:57:41 AM -NotBefore : 5/25/2018 10:47:41 AM -Created : 5/25/2018 10:57:41 AM -Updated : 5/25/2018 10:57:41 AM -Tags : -VaultName : MyKeyVault -Name : cert1 -Version : bd406f6d6b3a41a1a1c633494d8c3c3a -Id : https://mykeyvault.vault.azure.net:443/certificates/cert1/bd406f6d6b3a41a1a1c633494d8c3c3a - - This command restores a certificate, including all of its versions, from the backup file named Backup.blob into the key vault named MyKeyVault. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/restore-azkeyvaultcertificate - - - - - - Restore-AzKeyVaultKey - Restore - AzKeyVaultKey - - Creates a key in a key vault from a backed-up key. - - - - The Restore-AzKeyVaultKey cmdlet creates a key in the specified key vault. This key is a replica of the backed-up key in the input file and has the same name as the original key. If the key vault already has a key by the same name, this cmdlet fails instead of overwriting the original key. If the backup contains multiple versions of a key, all versions are restored. The key vault that you restore the key into can be different from the key vault that you backed up the key from. However, the key vault must use the same subscription and be in an Azure region in the same geography (for example, North America). See the Microsoft Azure Trust Center (https://azure.microsoft.com/support/trust-center/) for the mapping of Azure regions to geographies. - - - - Restore-AzKeyVaultKey - - InputFile - - Specifies the input file that contains the backup of the key to restore. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Restore-AzKeyVaultKey - - HsmObject - - HSM object - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - InputFile - - Specifies the input file that contains the backup of the key to restore. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Restore-AzKeyVaultKey - - InputFile - - Specifies the input file that contains the backup of the key to restore. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmResourceId - - Hsm Resource Id - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Restore-AzKeyVaultKey - - InputObject - - KeyVault object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - InputFile - - Specifies the input file that contains the backup of the key to restore. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Restore-AzKeyVaultKey - - ResourceId - - KeyVault Resource Id - - System.String - - System.String - - - None - - - InputFile - - Specifies the input file that contains the backup of the key to restore. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Restore-AzKeyVaultKey - - VaultName - - Specifies the name of the key vault into which to restore the key. - - System.String - - System.String - - - None - - - InputFile - - Specifies the input file that contains the backup of the key to restore. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - HsmObject - - HSM object - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - HsmResourceId - - Hsm Resource Id - - System.String - - System.String - - - None - - - InputFile - - Specifies the input file that contains the backup of the key to restore. - - System.String - - System.String - - - None - - - InputObject - - KeyVault object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - ResourceId - - KeyVault Resource Id - - System.String - - System.String - - - None - - - VaultName - - Specifies the name of the key vault into which to restore the key. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKey - - - - - - - - - - - - - - -------------- Example 1: Restore a backed-up key -------------- - Restore-AzKeyVaultKey -VaultName 'MyKeyVault' -InputFile "C:\Backup.blob" - -Vault Name : MyKeyVault -Name : key1 -Version : 394f9379a47a4e2086585468de6c7ae5 -Id : https://mykeyvault.vault.azure.net:443/keys/key1/394f9379a47a4e2086585468de6c7ae5 -Enabled : True -Expires : -Not Before : -Created : 4/6/2018 11:31:36 PM -Updated : 4/6/2018 11:35:04 PM -Purge Disabled : False -Tags : - - This command restores a key, including all of its versions, from the backup file named Backup.blob into the key vault named MyKeyVault. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/restore-azkeyvaultkey - - - Add-AzKeyVaultKey - - - - Backup-AzKeyVaultKey - - - - Get-AzKeyVaultKey - - - - Remove-AzKeyVaultKey - - - - - - - Restore-AzKeyVaultManagedStorageAccount - Restore - AzKeyVaultManagedStorageAccount - - Restores a managed storage account in a key vault from a backup file. - - - - The Restore-AzKeyVaultManagedStorageAccount cmdlet creates a managed storage account in the specified key vault from a backup file. This managed storage account is a replica of the backed-up managed storage account in the input file and has the same name as the original. If the key vault already contains a managed storage account by the same name, this cmdlet fails instead of overwriting the original. The key vault that you restore the managed storage account into can be different from the key vault that you backed up the managed storage account from. However, the key vault must use the same subscription and be in an Azure region in the same geography (for example, North America). See the Microsoft Azure Trust Center (https://azure.microsoft.com/support/trust-center/) for the mapping of Azure regions to geographies. - - - - Restore-AzKeyVaultManagedStorageAccount - - InputObject - - KeyVault object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - InputFile - - Input file. The input file containing the backed-up blob - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Restore-AzKeyVaultManagedStorageAccount - - ResourceId - - KeyVault Resource Id - - System.String - - System.String - - - None - - - InputFile - - Input file. The input file containing the backed-up blob - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Restore-AzKeyVaultManagedStorageAccount - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - InputFile - - Input file. The input file containing the backed-up blob - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputFile - - Input file. The input file containing the backed-up blob - - System.String - - System.String - - - None - - - InputObject - - KeyVault object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - ResourceId - - KeyVault Resource Id - - System.String - - System.String - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccount - - - - - - - - - - - - - - ---- Example 1: Restore a backed-up managed storage account ---- - Restore-AzKeyVaultManagedStorageAccount -VaultName 'MyKeyVault' -InputFile "C:\Backup.blob" - -Id : https://mykeyvault.vault.azure.net:443/storage/mystorageaccount -Vault Name : MyKeyVault -AccountName : mystorageaccount -Account Resource Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers/Microsoft.St - orage/storageAccounts/mystorageaccount -Active Key Name : key1 -Auto Regenerate Key : True -Regeneration Period : 90.00:00:00 -Enabled : True -Created : 5/21/2018 11:55:58 PM -Updated : 5/21/2018 11:55:58 PM -Tags : - - This command restores a managed storage account, including all of its versions, from the backup file named Backup.blob into the key vault named MyKeyVault. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/restore-azkeyvaultmanagedstorageaccount - - - - - - Restore-AzKeyVaultSecret - Restore - AzKeyVaultSecret - - Creates a secret in a key vault from a backed-up secret. - - - - The Restore-AzKeyVaultSecret cmdlet creates a secret in the specified key vault. This secret is a replica of the backed-up secret in the input file and has the same name as the original secret. If the key vault already has a secret by the same name, this cmdlet fails instead of overwriting the original secret. If the backup contains multiple versions of a secret, all versions are restored. The key vault that you restore the secret into can be different from the key vault that you backed up the secret from. However, the key vault must use the same subscription and be in an Azure region in the same geography (for example, North America). See the Microsoft Azure Trust Center (https://azure.microsoft.com/support/trust-center/) for the mapping of Azure regions to geographies. - - - - Restore-AzKeyVaultSecret - - Id - - The URI of the KeyVault Secret. Please ensure it follows the format: `https://<vault-name>.vault.azure.net/secrets/<secret-name>/<version>` - - String - - String - - - None - - - InputFile - - Specifies the input file that contains the backup of the secret to restore. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Restore-AzKeyVaultSecret - - InputObject - - KeyVault object - - PSKeyVault - - PSKeyVault - - - None - - - InputFile - - Specifies the input file that contains the backup of the secret to restore. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Restore-AzKeyVaultSecret - - ParentResourceId - - KeyVault Resource Id - - String - - String - - - None - - - InputFile - - Specifies the input file that contains the backup of the secret to restore. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Restore-AzKeyVaultSecret - - VaultName - - Specifies the name of the key vault into which to restore the secret. - - String - - String - - - None - - - InputFile - - Specifies the input file that contains the backup of the secret to restore. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Id - - The URI of the KeyVault Secret. Please ensure it follows the format: `https://<vault-name>.vault.azure.net/secrets/<secret-name>/<version>` - - String - - String - - - None - - - InputFile - - Specifies the input file that contains the backup of the secret to restore. - - String - - String - - - None - - - InputObject - - KeyVault object - - PSKeyVault - - PSKeyVault - - - None - - - ParentResourceId - - KeyVault Resource Id - - String - - String - - - None - - - VaultName - - Specifies the name of the key vault into which to restore the secret. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSecret - - - - - - - - - - - - - - ------------ Example 1: Restore a backed-up secret ------------ - Restore-AzKeyVaultSecret -VaultName 'contoso' -InputFile "C:\Backup.blob" - -Vault Name : contoso -Name : secret1 -Version : 7128133570f84a71b48d7d0550deb74c -Id : https://contoso.vault.azure.net:443/secrets/secret1/7128133570f84a71b48d7d0550deb74c -Enabled : True -Expires : 4/6/2018 3:59:43 PM -Not Before : -Created : 4/5/2018 11:46:28 PM -Updated : 4/6/2018 11:30:17 PM -Content Type : -Tags : - - This command restores a secret, including all of its versions, from the backup file named Backup.blob into the key vault named contoso. - - - - - - ------ Example 2: Restore a backed-up secret (using Uri) ------ - Restore-AzKeyVaultSecret -Id "https://contoso.vault.azure.net:443/secrets/" -InputFile "C:\Backup.blob" - -Vault Name : contoso -Name : secret1 -Version : 7128133570f84a71b48d7d0550deb74c -Id : https://contoso.vault.azure.net:443/secrets/secret1/7128133570f84a71b48d7d0550deb74c -Enabled : True -Expires : 4/6/2018 3:59:43 PM -Not Before : -Created : 4/5/2018 11:46:28 PM -Updated : 4/6/2018 11:30:17 PM -Content Type : -Tags : - - This command restores a secret, including all of its versions, from the backup file named Backup.blob into the key vault named contoso. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/restore-azkeyvaultsecret - - - Set-AzKeyVaultSecret - - - - Backup-AzKeyVaultSecret - - - - Get-AzKeyVaultSecret - - - - Remove-AzKeyVaultSecret - - - - - - - Set-AzKeyVaultAccessPolicy - Set - AzKeyVaultAccessPolicy - - Grants or modifies existing permissions for a user, application, or security group to perform operations with a key vault. - - - - The Set-AzKeyVaultAccessPolicy cmdlet grants or modifies existing permissions for a user, application, or security group to perform the specified operations with a key vault. It does not modify the permissions that other users, applications, or security groups have on the key vault. If you are setting permissions for a security group, this operation affects only users in that security group. The following directories must all be the same Azure directory: - The default directory of the Azure subscription in which the key vault resides. - - The Azure directory that contains the user or application group that you are granting permissions to. - Examples of scenarios when these conditions are not met and this cmdlet will not work are: - Authorizing a user from a different organization to manage your key vault. Each organization has its own directory. - Your Azure account has multiple directories. If you register an application in a directory other than the default directory, you cannot authorize that application to use your key vault. The application must be in the default directory. Note that although specifying the resource group is optional for this cmdlet, you should do so for better performance. - The cmdlet may call below Microsoft Graph API according to input parameters: - - GET /directoryObjects/{id} - - GET /users/{id} - - GET /users - - GET /servicePrincipals/{id} - - GET /servicePrincipals - - GET /groups/{id} - - > [!NOTE] > When using a service principal to grant access policy permissions, you must use the `-BypassObjectIdValidation` parameter. - - - - Set-AzKeyVaultAccessPolicy - - VaultName - - Specifies the name of a key vault. This cmdlet modifies the access policy for the key vault that this parameter specifies. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of a resource group. - - System.String - - System.String - - - None - - - ApplicationId - - For future use. - - System.Nullable`1[System.Guid] - - System.Nullable`1[System.Guid] - - - None - - - BypassObjectIdValidation - - Enables you to specify an object ID without validating that the object exists in Microsoft Entra ID. Use this parameter only if you want to grant access to your key vault to an object ID that refers to a delegated security group from another Azure tenant. - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ObjectId - - Specifies the object ID of the user or service principal in Microsoft Entra ID for which to grant permissions. Its value is in the format of GUID. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - PermissionsToCertificates - - Specifies an array of certificate permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Delete - - Create - - Import - - Update - - Managecontacts - - Getissuers - - Listissuers - - Setissuers - - Deleteissuers - - Manageissuers - - Recover - - Backup - - Restore - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToKeys - - Specifies an array of key operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Decrypt - - Encrypt - - UnwrapKey - - WrapKey - - Verify - - Sign - - Get - - List - - Update - - Create - - Import - - Delete - - Backup - - Restore - - Recover - - Purge - - Rotate - - System.String[] - - System.String[] - - - None - - - PermissionsToSecrets - - Specifies an array of secret operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Set - - Delete - - Backup - - Restore - - Recover - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToStorage - - Specifies managed storage account and SaS-definition operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - all - - get - - list - - delete - - set - - update - - regeneratekey - - getsas - - listsas - - deletesas - - setsas - - recover - - backup - - restore - - purge - - System.String[] - - System.String[] - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultAccessPolicy - - InputObject - - Key Vault Object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - - None - - - ApplicationId - - For future use. - - System.Nullable`1[System.Guid] - - System.Nullable`1[System.Guid] - - - None - - - BypassObjectIdValidation - - Enables you to specify an object ID without validating that the object exists in Microsoft Entra ID. Use this parameter only if you want to grant access to your key vault to an object ID that refers to a delegated security group from another Azure tenant. - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ObjectId - - Specifies the object ID of the user or service principal in Microsoft Entra ID for which to grant permissions. Its value is in the format of GUID. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - PermissionsToCertificates - - Specifies an array of certificate permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Delete - - Create - - Import - - Update - - Managecontacts - - Getissuers - - Listissuers - - Setissuers - - Deleteissuers - - Manageissuers - - Recover - - Backup - - Restore - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToKeys - - Specifies an array of key operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Decrypt - - Encrypt - - UnwrapKey - - WrapKey - - Verify - - Sign - - Get - - List - - Update - - Create - - Import - - Delete - - Backup - - Restore - - Recover - - Purge - - Rotate - - System.String[] - - System.String[] - - - None - - - PermissionsToSecrets - - Specifies an array of secret operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Set - - Delete - - Backup - - Restore - - Recover - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToStorage - - Specifies managed storage account and SaS-definition operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - all - - get - - list - - delete - - set - - update - - regeneratekey - - getsas - - listsas - - deletesas - - setsas - - recover - - backup - - restore - - purge - - System.String[] - - System.String[] - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultAccessPolicy - - ResourceId - - Key Vault Resource Id - - System.String - - System.String - - - None - - - ApplicationId - - For future use. - - System.Nullable`1[System.Guid] - - System.Nullable`1[System.Guid] - - - None - - - BypassObjectIdValidation - - Enables you to specify an object ID without validating that the object exists in Microsoft Entra ID. Use this parameter only if you want to grant access to your key vault to an object ID that refers to a delegated security group from another Azure tenant. - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ObjectId - - Specifies the object ID of the user or service principal in Microsoft Entra ID for which to grant permissions. Its value is in the format of GUID. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - PermissionsToCertificates - - Specifies an array of certificate permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Delete - - Create - - Import - - Update - - Managecontacts - - Getissuers - - Listissuers - - Setissuers - - Deleteissuers - - Manageissuers - - Recover - - Backup - - Restore - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToKeys - - Specifies an array of key operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Decrypt - - Encrypt - - UnwrapKey - - WrapKey - - Verify - - Sign - - Get - - List - - Update - - Create - - Import - - Delete - - Backup - - Restore - - Recover - - Purge - - Rotate - - System.String[] - - System.String[] - - - None - - - PermissionsToSecrets - - Specifies an array of secret operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Set - - Delete - - Backup - - Restore - - Recover - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToStorage - - Specifies managed storage account and SaS-definition operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - all - - get - - list - - delete - - set - - update - - regeneratekey - - getsas - - listsas - - deletesas - - setsas - - recover - - backup - - restore - - purge - - System.String[] - - System.String[] - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultAccessPolicy - - VaultName - - Specifies the name of a key vault. This cmdlet modifies the access policy for the key vault that this parameter specifies. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of a resource group. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EmailAddress - - Specifies the user email address of the user to whom to grant permissions. This email address must exist in the directory associated with the current subscription and be unique. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - PermissionsToCertificates - - Specifies an array of certificate permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Delete - - Create - - Import - - Update - - Managecontacts - - Getissuers - - Listissuers - - Setissuers - - Deleteissuers - - Manageissuers - - Recover - - Backup - - Restore - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToKeys - - Specifies an array of key operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Decrypt - - Encrypt - - UnwrapKey - - WrapKey - - Verify - - Sign - - Get - - List - - Update - - Create - - Import - - Delete - - Backup - - Restore - - Recover - - Purge - - Rotate - - System.String[] - - System.String[] - - - None - - - PermissionsToSecrets - - Specifies an array of secret operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Set - - Delete - - Backup - - Restore - - Recover - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToStorage - - Specifies managed storage account and SaS-definition operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - all - - get - - list - - delete - - set - - update - - regeneratekey - - getsas - - listsas - - deletesas - - setsas - - recover - - backup - - restore - - purge - - System.String[] - - System.String[] - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultAccessPolicy - - InputObject - - Key Vault Object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EmailAddress - - Specifies the user email address of the user to whom to grant permissions. This email address must exist in the directory associated with the current subscription and be unique. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - PermissionsToCertificates - - Specifies an array of certificate permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Delete - - Create - - Import - - Update - - Managecontacts - - Getissuers - - Listissuers - - Setissuers - - Deleteissuers - - Manageissuers - - Recover - - Backup - - Restore - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToKeys - - Specifies an array of key operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Decrypt - - Encrypt - - UnwrapKey - - WrapKey - - Verify - - Sign - - Get - - List - - Update - - Create - - Import - - Delete - - Backup - - Restore - - Recover - - Purge - - Rotate - - System.String[] - - System.String[] - - - None - - - PermissionsToSecrets - - Specifies an array of secret operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Set - - Delete - - Backup - - Restore - - Recover - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToStorage - - Specifies managed storage account and SaS-definition operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - all - - get - - list - - delete - - set - - update - - regeneratekey - - getsas - - listsas - - deletesas - - setsas - - recover - - backup - - restore - - purge - - System.String[] - - System.String[] - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultAccessPolicy - - ResourceId - - Key Vault Resource Id - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EmailAddress - - Specifies the user email address of the user to whom to grant permissions. This email address must exist in the directory associated with the current subscription and be unique. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - PermissionsToCertificates - - Specifies an array of certificate permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Delete - - Create - - Import - - Update - - Managecontacts - - Getissuers - - Listissuers - - Setissuers - - Deleteissuers - - Manageissuers - - Recover - - Backup - - Restore - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToKeys - - Specifies an array of key operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Decrypt - - Encrypt - - UnwrapKey - - WrapKey - - Verify - - Sign - - Get - - List - - Update - - Create - - Import - - Delete - - Backup - - Restore - - Recover - - Purge - - Rotate - - System.String[] - - System.String[] - - - None - - - PermissionsToSecrets - - Specifies an array of secret operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Set - - Delete - - Backup - - Restore - - Recover - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToStorage - - Specifies managed storage account and SaS-definition operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - all - - get - - list - - delete - - set - - update - - regeneratekey - - getsas - - listsas - - deletesas - - setsas - - recover - - backup - - restore - - purge - - System.String[] - - System.String[] - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultAccessPolicy - - VaultName - - Specifies the name of a key vault. This cmdlet modifies the access policy for the key vault that this parameter specifies. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of a resource group. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnabledForDeployment - - Enables the Microsoft.Compute resource provider to retrieve secrets from this key vault when this key vault is referenced in resource creation, for example when creating a virtual machine. - - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForDiskEncryption - - Enables the Azure disk encryption service to get secrets and unwrap keys from this key vault. - - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForTemplateDeployment - - Enables Azure Resource Manager to get secrets from this key vault when this key vault is referenced in a template deployment. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultAccessPolicy - - InputObject - - Key Vault Object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnabledForDeployment - - Enables the Microsoft.Compute resource provider to retrieve secrets from this key vault when this key vault is referenced in resource creation, for example when creating a virtual machine. - - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForDiskEncryption - - Enables the Azure disk encryption service to get secrets and unwrap keys from this key vault. - - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForTemplateDeployment - - Enables Azure Resource Manager to get secrets from this key vault when this key vault is referenced in a template deployment. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultAccessPolicy - - ResourceId - - Key Vault Resource Id - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnabledForDeployment - - Enables the Microsoft.Compute resource provider to retrieve secrets from this key vault when this key vault is referenced in resource creation, for example when creating a virtual machine. - - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForDiskEncryption - - Enables the Azure disk encryption service to get secrets and unwrap keys from this key vault. - - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForTemplateDeployment - - Enables Azure Resource Manager to get secrets from this key vault when this key vault is referenced in a template deployment. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultAccessPolicy - - InputObject - - Key Vault Object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - PermissionsToCertificates - - Specifies an array of certificate permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Delete - - Create - - Import - - Update - - Managecontacts - - Getissuers - - Listissuers - - Setissuers - - Deleteissuers - - Manageissuers - - Recover - - Backup - - Restore - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToKeys - - Specifies an array of key operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Decrypt - - Encrypt - - UnwrapKey - - WrapKey - - Verify - - Sign - - Get - - List - - Update - - Create - - Import - - Delete - - Backup - - Restore - - Recover - - Purge - - Rotate - - System.String[] - - System.String[] - - - None - - - PermissionsToSecrets - - Specifies an array of secret operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Set - - Delete - - Backup - - Restore - - Recover - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToStorage - - Specifies managed storage account and SaS-definition operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - all - - get - - list - - delete - - set - - update - - regeneratekey - - getsas - - listsas - - deletesas - - setsas - - recover - - backup - - restore - - purge - - System.String[] - - System.String[] - - - None - - - ServicePrincipalName - - Specifies the service principal name of the application to which to grant permissions. Specify the application ID, also known as client ID, registered for the application in Microsoft Entra ID. The application with the service principal name that this parameter specifies must be registered in the Azure directory that contains your current subscription. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultAccessPolicy - - InputObject - - Key Vault Object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - PermissionsToCertificates - - Specifies an array of certificate permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Delete - - Create - - Import - - Update - - Managecontacts - - Getissuers - - Listissuers - - Setissuers - - Deleteissuers - - Manageissuers - - Recover - - Backup - - Restore - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToKeys - - Specifies an array of key operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Decrypt - - Encrypt - - UnwrapKey - - WrapKey - - Verify - - Sign - - Get - - List - - Update - - Create - - Import - - Delete - - Backup - - Restore - - Recover - - Purge - - Rotate - - System.String[] - - System.String[] - - - None - - - PermissionsToSecrets - - Specifies an array of secret operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Set - - Delete - - Backup - - Restore - - Recover - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToStorage - - Specifies managed storage account and SaS-definition operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - all - - get - - list - - delete - - set - - update - - regeneratekey - - getsas - - listsas - - deletesas - - setsas - - recover - - backup - - restore - - purge - - System.String[] - - System.String[] - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - UserPrincipalName - - Specifies the user principal name of the user to whom to grant permissions. This user principal name must exist in the directory associated with the current subscription. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultAccessPolicy - - VaultName - - Specifies the name of a key vault. This cmdlet modifies the access policy for the key vault that this parameter specifies. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of a resource group. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - PermissionsToCertificates - - Specifies an array of certificate permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Delete - - Create - - Import - - Update - - Managecontacts - - Getissuers - - Listissuers - - Setissuers - - Deleteissuers - - Manageissuers - - Recover - - Backup - - Restore - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToKeys - - Specifies an array of key operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Decrypt - - Encrypt - - UnwrapKey - - WrapKey - - Verify - - Sign - - Get - - List - - Update - - Create - - Import - - Delete - - Backup - - Restore - - Recover - - Purge - - Rotate - - System.String[] - - System.String[] - - - None - - - PermissionsToSecrets - - Specifies an array of secret operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Set - - Delete - - Backup - - Restore - - Recover - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToStorage - - Specifies managed storage account and SaS-definition operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - all - - get - - list - - delete - - set - - update - - regeneratekey - - getsas - - listsas - - deletesas - - setsas - - recover - - backup - - restore - - purge - - System.String[] - - System.String[] - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - UserPrincipalName - - Specifies the user principal name of the user to whom to grant permissions. This user principal name must exist in the directory associated with the current subscription. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultAccessPolicy - - VaultName - - Specifies the name of a key vault. This cmdlet modifies the access policy for the key vault that this parameter specifies. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of a resource group. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - PermissionsToCertificates - - Specifies an array of certificate permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Delete - - Create - - Import - - Update - - Managecontacts - - Getissuers - - Listissuers - - Setissuers - - Deleteissuers - - Manageissuers - - Recover - - Backup - - Restore - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToKeys - - Specifies an array of key operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Decrypt - - Encrypt - - UnwrapKey - - WrapKey - - Verify - - Sign - - Get - - List - - Update - - Create - - Import - - Delete - - Backup - - Restore - - Recover - - Purge - - Rotate - - System.String[] - - System.String[] - - - None - - - PermissionsToSecrets - - Specifies an array of secret operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Set - - Delete - - Backup - - Restore - - Recover - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToStorage - - Specifies managed storage account and SaS-definition operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - all - - get - - list - - delete - - set - - update - - regeneratekey - - getsas - - listsas - - deletesas - - setsas - - recover - - backup - - restore - - purge - - System.String[] - - System.String[] - - - None - - - ServicePrincipalName - - Specifies the service principal name of the application to which to grant permissions. Specify the application ID, also known as client ID, registered for the application in Microsoft Entra ID. The application with the service principal name that this parameter specifies must be registered in the Azure directory that contains your current subscription. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultAccessPolicy - - ResourceId - - Key Vault Resource Id - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - PermissionsToCertificates - - Specifies an array of certificate permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Delete - - Create - - Import - - Update - - Managecontacts - - Getissuers - - Listissuers - - Setissuers - - Deleteissuers - - Manageissuers - - Recover - - Backup - - Restore - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToKeys - - Specifies an array of key operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Decrypt - - Encrypt - - UnwrapKey - - WrapKey - - Verify - - Sign - - Get - - List - - Update - - Create - - Import - - Delete - - Backup - - Restore - - Recover - - Purge - - Rotate - - System.String[] - - System.String[] - - - None - - - PermissionsToSecrets - - Specifies an array of secret operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Set - - Delete - - Backup - - Restore - - Recover - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToStorage - - Specifies managed storage account and SaS-definition operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - all - - get - - list - - delete - - set - - update - - regeneratekey - - getsas - - listsas - - deletesas - - setsas - - recover - - backup - - restore - - purge - - System.String[] - - System.String[] - - - None - - - ServicePrincipalName - - Specifies the service principal name of the application to which to grant permissions. Specify the application ID, also known as client ID, registered for the application in Microsoft Entra ID. The application with the service principal name that this parameter specifies must be registered in the Azure directory that contains your current subscription. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultAccessPolicy - - ResourceId - - Key Vault Resource Id - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - PermissionsToCertificates - - Specifies an array of certificate permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Delete - - Create - - Import - - Update - - Managecontacts - - Getissuers - - Listissuers - - Setissuers - - Deleteissuers - - Manageissuers - - Recover - - Backup - - Restore - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToKeys - - Specifies an array of key operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Decrypt - - Encrypt - - UnwrapKey - - WrapKey - - Verify - - Sign - - Get - - List - - Update - - Create - - Import - - Delete - - Backup - - Restore - - Recover - - Purge - - Rotate - - System.String[] - - System.String[] - - - None - - - PermissionsToSecrets - - Specifies an array of secret operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Set - - Delete - - Backup - - Restore - - Recover - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToStorage - - Specifies managed storage account and SaS-definition operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - all - - get - - list - - delete - - set - - update - - regeneratekey - - getsas - - listsas - - deletesas - - setsas - - recover - - backup - - restore - - purge - - System.String[] - - System.String[] - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - UserPrincipalName - - Specifies the user principal name of the user to whom to grant permissions. This user principal name must exist in the directory associated with the current subscription. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ApplicationId - - For future use. - - System.Nullable`1[System.Guid] - - System.Nullable`1[System.Guid] - - - None - - - BypassObjectIdValidation - - Enables you to specify an object ID without validating that the object exists in Microsoft Entra ID. Use this parameter only if you want to grant access to your key vault to an object ID that refers to a delegated security group from another Azure tenant. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EmailAddress - - Specifies the user email address of the user to whom to grant permissions. This email address must exist in the directory associated with the current subscription and be unique. - - System.String - - System.String - - - None - - - EnabledForDeployment - - Enables the Microsoft.Compute resource provider to retrieve secrets from this key vault when this key vault is referenced in resource creation, for example when creating a virtual machine. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForDiskEncryption - - Enables the Azure disk encryption service to get secrets and unwrap keys from this key vault. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForTemplateDeployment - - Enables Azure Resource Manager to get secrets from this key vault when this key vault is referenced in a template deployment. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Key Vault Object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - - None - - - ObjectId - - Specifies the object ID of the user or service principal in Microsoft Entra ID for which to grant permissions. Its value is in the format of GUID. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - PermissionsToCertificates - - Specifies an array of certificate permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Delete - - Create - - Import - - Update - - Managecontacts - - Getissuers - - Listissuers - - Setissuers - - Deleteissuers - - Manageissuers - - Recover - - Backup - - Restore - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToKeys - - Specifies an array of key operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Decrypt - - Encrypt - - UnwrapKey - - WrapKey - - Verify - - Sign - - Get - - List - - Update - - Create - - Import - - Delete - - Backup - - Restore - - Recover - - Purge - - Rotate - - System.String[] - - System.String[] - - - None - - - PermissionsToSecrets - - Specifies an array of secret operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Set - - Delete - - Backup - - Restore - - Recover - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToStorage - - Specifies managed storage account and SaS-definition operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - all - - get - - list - - delete - - set - - update - - regeneratekey - - getsas - - listsas - - deletesas - - setsas - - recover - - backup - - restore - - purge - - System.String[] - - System.String[] - - - None - - - ResourceGroupName - - Specifies the name of a resource group. - - System.String - - System.String - - - None - - - ResourceId - - Key Vault Resource Id - - System.String - - System.String - - - None - - - ServicePrincipalName - - Specifies the service principal name of the application to which to grant permissions. Specify the application ID, also known as client ID, registered for the application in Microsoft Entra ID. The application with the service principal name that this parameter specifies must be registered in the Azure directory that contains your current subscription. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - UserPrincipalName - - Specifies the user principal name of the user to whom to grant permissions. This user principal name must exist in the directory associated with the current subscription. - - System.String - - System.String - - - None - - - VaultName - - Specifies the name of a key vault. This cmdlet modifies the access policy for the key vault that this parameter specifies. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - - - - - - - Example 1: Grant permissions to a user for a key vault and modify the permissions - Set-AzKeyVaultAccessPolicy -VaultName 'Contoso03Vault' -UserPrincipalName 'PattiFuller@contoso.com' -PermissionsToKeys create,import,delete,list -PermissionsToSecrets set,delete -PassThru - -Vault Name : Contoso03Vault -Resource Group Name : myrg -Location : westus -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers - /Microsoft.KeyVault/vaults/contoso03vault -Vault URI : https://contoso03vault.vault.azure.net/ -Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx -SKU : Standard -Enabled For Deployment? : True -Enabled For Template Deployment? : False -Enabled For Disk Encryption? : False -Soft Delete Enabled? : True -Access Policies : - Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Object ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Application ID : - Display Name : User Name (username@microsoft.com) - Permissions to Keys : create, import, delete, list - Permissions to Secrets : set, delete - Permissions to Certificates : - Permissions to (Key Vault Managed) Storage : - -Tags : - -Set-AzKeyVaultAccessPolicy -VaultName 'Contoso03Vault' -UserPrincipalName 'PattiFuller@contoso.com' -PermissionsToSecrets set,delete,get -PassThru - -Vault Name : Contoso03Vault -Resource Group Name : myrg -Location : westus -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers - /Microsoft.KeyVault/vaults/contoso03vault -Vault URI : https://contoso03vault.vault.azure.net/ -Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx -SKU : Standard -Enabled For Deployment? : True -Enabled For Template Deployment? : False -Enabled For Disk Encryption? : False -Soft Delete Enabled? : True -Access Policies : - Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Object ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Application ID : - Display Name : User Name (username@microsoft.com) - Permissions to Keys : create, import, delete, list - Permissions to Secrets : set, delete, get - Permissions to Certificates : - Permissions to (Key Vault Managed) Storage : - -Tags : - -Set-AzKeyVaultAccessPolicy -VaultName 'Contoso03Vault' -UserPrincipalName 'PattiFuller@contoso.com' -PermissionsToKeys @() -PassThru - -Vault Name : Contoso03Vault -Resource Group Name : myrg -Location : westus -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers - /Microsoft.KeyVault/vaults/contoso03vault -Vault URI : https://contoso03vault.vault.azure.net/ -Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx -SKU : Standard -Enabled For Deployment? : True -Enabled For Template Deployment? : False -Enabled For Disk Encryption? : False -Soft Delete Enabled? : True -Access Policies : - Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Object ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Application ID : - Display Name : User Name (username@microsoft.com) - Permissions to Keys : - Permissions to Secrets : set, delete, get - Permissions to Certificates : - Permissions to (Key Vault Managed) Storage : - -Tags : - - The first command grants permissions for a user in your Microsoft Entra ID, PattiFuller@contoso.com, to perform operations on keys and secrets with a key vault named Contoso03Vault. The PassThru parameter results in the updated object being returned by the cmdlet. The second command modifies the permissions that were granted to PattiFuller@contoso.com in the first command, to now allow getting secrets in addition to setting and deleting them. The permissions to key operations remain unchanged after this command. The final command further modifies the existing permissions for PattiFuller@contoso.com to remove all permissions to key operations. The permissions to secret operations remain unchanged after this command. - - - - - - Example 2: Grant permissions for an application service principal to read and write secrets - Set-AzKeyVaultAccessPolicy -VaultName 'Contoso03Vault' -ServicePrincipalName 'http://payroll.contoso.com' -PermissionsToSecrets Get,Set - - This command grants permissions for an application for a key vault named Contoso03Vault. The ServicePrincipalName parameter specifies the application. The application must be registered in your Microsoft Entra ID. The value of the ServicePrincipalName parameter must be either the service principal name of the application or the application ID GUID. This example specifies the service principal name `http://payroll.contoso.com`, and the command grants the application permissions to read and write secrets. - - - - - - Example 3: Grant permissions for an application using its object ID - Set-AzKeyVaultAccessPolicy -VaultName 'Contoso03Vault' -ObjectId 34595082-9346-41b6-8d6b-295a2808b8db -PermissionsToSecrets Get,Set - - This command grants the application permissions to read and write secrets. This example specifies the application using the object ID of the service principal of the application. - - - - - - ---- Example 4: Grant permissions for a user principal name ---- - Set-AzKeyVaultAccessPolicy -VaultName 'Contoso03Vault' -UserPrincipalName 'PattiFuller@contoso.com' -PermissionsToSecrets Get,List,Set - - This command grants get, list, and set permissions for the specified user principal name for access to secrets. - - - - - - Example 5: Enable secrets to be retrieved from a key vault by the Microsoft.Compute resource provider - Set-AzKeyVaultAccessPolicy -VaultName 'Contoso03Vault' -ResourceGroupName 'Group14' -EnabledForDeployment - - This command grants the permissions for secrets to be retrieved from the Contoso03Vault key vault by the Microsoft.Compute resource provider. - - - - - - ------- Example 6: Grant permissions to a security group ------- - Get-AzADGroup -Set-AzKeyVaultAccessPolicy -VaultName 'myownvault' -ObjectId (Get-AzADGroup -SearchString 'group2')[0].Id -PermissionsToKeys get, set -PermissionsToSecrets get, set - - The first command uses the Get-AzADGroup cmdlet to get all Active Directory groups. From the output, you see 3 groups returned, named group1 , group2 , and group3 . Multiple groups can have the same name but always have a unique ObjectId. When more than one group that has the same name is returned, use the ObjectId in the output to identify the one you want to use. You then use the output of this command with Set-AzKeyVaultAccessPolicy to grant permissions to group2 for your key vault, named myownvault . This example enumerates the groups named 'group2' inline in the same command line. There may be multiple groups in the returned list that are named 'group2'. This example picks the first one, indicated by index [0] in the returned list. - - - - - - Example 7: Grant Azure Information Protection access to the customer-managed tenant key (BYOK) - Set-AzKeyVaultAccessPolicy -VaultName 'Contoso04Vault' -ServicePrincipalName 'MyServicePrincipal' -PermissionsToKeys decrypt,sign,get - - This command authorizes Azure Information Protection to use a customer-managed key (the bring your own key, or "BYOK" scenario) as the Azure Information Protection tenant key. When you run this command, specify your own key vault name but you must specify the ServicePrincipalName parameter and specify the permissions in the example. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/set-azkeyvaultaccesspolicy - - - Get-AzKeyVault - - - - Remove-AzKeyVaultAccessPolicy - - - - - - - Set-AzKeyVaultCertificateIssuer - Set - AzKeyVaultCertificateIssuer - - Sets a certificate issuer in a key vault. - - - - The Set-AzKeyVaultCertificateIssuer cmdlet sets a certificate issuer in a key vault. - - - - Set-AzKeyVaultCertificateIssuer - - VaultName - - Specifies the name of the key vault. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Issuer. - - System.String - - System.String - - - None - - - AccountId - - Specifies the account ID for the certificate issuer. - - System.String - - System.String - - - None - - - ApiKey - - Specifies the API key for the certificate issuer. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IssuerProvider - - Specifies the type of certificate issuer. - - System.String - - System.String - - - None - - - OrganizationDetails - - Organization details to be used with the issuer. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOrganizationDetails - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOrganizationDetails - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultCertificateIssuer - - VaultName - - Specifies the name of the key vault. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Issuer. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Specifies the certificate issuer to set. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIssuerIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIssuerIdentityItem - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AccountId - - Specifies the account ID for the certificate issuer. - - System.String - - System.String - - - None - - - ApiKey - - Specifies the API key for the certificate issuer. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Specifies the certificate issuer to set. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIssuerIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIssuerIdentityItem - - - None - - - IssuerProvider - - Specifies the type of certificate issuer. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Issuer. - - System.String - - System.String - - - None - - - OrganizationDetails - - Organization details to be used with the issuer. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOrganizationDetails - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOrganizationDetails - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - VaultName - - Specifies the name of the key vault. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOrganizationDetails - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIssuerIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - - - - - - - - - - - - - ------------- Example 1: Set a certificate issuer ------------- - $AdminDetails = New-AzKeyVaultCertificateAdministratorDetail -FirstName user -LastName name -EmailAddress username@microsoft.com -$OrgDetails = New-AzKeyVaultCertificateOrganizationDetail -AdministratorDetails $AdminDetails -$Password = ConvertTo-SecureString -String "****" -AsPlainText -Force -Set-AzKeyVaultCertificateIssuer -VaultName "Contosokv01" -Name "TestIssuer01" -IssuerProvider "Test" -AccountId "555" -ApiKey $Password -OrganizationDetails $OrgDetails -PassThru - -AccountId : 555 -ApiKey : -OrganizationDetails : Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOrganizationDetails -Name : TestIssuer01 -IssuerProvider : Test -VaultName : Contosokv01 - - This command sets the properties for a certificate issuer. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/set-azkeyvaultcertificateissuer - - - Get-AzKeyVaultCertificateIssuer - - - - Remove-AzKeyVaultCertificateIssuer - - - - - - - Set-AzKeyVaultCertificatePolicy - Set - AzKeyVaultCertificatePolicy - - Creates or updates the policy for a certificate in a key vault. - - - - The Set-AzKeyVaultCertificatePolicy cmdlet creates or updates the policy for a certificate in a key vault. - - - - Set-AzKeyVaultCertificatePolicy - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the certificate. - - System.String - - System.String - - - None - - - CertificateTransparency - - Indicates whether certificate transparency is enabled for this certificate/issuer; if not specified, the default is 'true'. `-IssuerName` needs to be specified when setting this property. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - CertificateType - - Specifies the type of certificate to the issuer. - - System.String - - System.String - - - None - - - Curve - - Specifies the elliptic curve name of the key of the certificate. The acceptable values for this parameter are: - P-256 - - P-384 - - P-521 - - P-256K - - SECP256K1 - - - P-256 - P-384 - P-521 - P-256K - SECP256K1 - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disabled - - Indicates that the certificate policy is disabled. - - - System.Management.Automation.SwitchParameter - - - False - - - DnsName - - Specifies the subject name of the certificate. - - System.Collections.Generic.List`1[System.String] - - System.Collections.Generic.List`1[System.String] - - - None - - - Ekus - - Specifies the enhanced key usages (EKUs) in the certificate. - - System.Collections.Generic.List`1[System.String] - - System.Collections.Generic.List`1[System.String] - - - None - - - EmailAtNumberOfDaysBeforeExpiry - - Specifies the number of days before expiration when automatic renewal should start. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - EmailAtPercentageLifetime - - Specifies the percentage of the lifetime after which the automatic process for the notification begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - IssuerName - - Specifies the name of the issuer for this certificate. - - System.String - - System.String - - - None - - - KeyNotExportable - - Indicates that the key is not exportable. - - - System.Management.Automation.SwitchParameter - - - False - - - KeySize - - Specifies the key size of the certificate. The acceptable values for this parameter are: - 2048 - - 3072 - - 4096 - - 256 - - 384 - - 521 - - - 2048 - 3072 - 4096 - 256 - 384 - 521 - - System.Int32 - - System.Int32 - - - 2048 - - - KeyType - - Specifies the key type of the key that backs the certificate. The acceptable values for this parameter are: - RSA - - RSA-HSM - - EC - - EC-HSM - - - RSA - RSA-HSM - EC - EC-HSM - - System.String - - System.String - - - RSA - - - KeyUsage - - Specifies the key usages in the certificate. - - - None - EncipherOnly - CrlSign - KeyCertSign - KeyAgreement - DataEncipherment - KeyEncipherment - NonRepudiation - DigitalSignature - DecipherOnly - - System.Collections.Generic.List`1[System.Security.Cryptography.X509Certificates.X509KeyUsageFlags] - - System.Collections.Generic.List`1[System.Security.Cryptography.X509Certificates.X509KeyUsageFlags] - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - RenewAtPercentageLifetime - - Specifies the percentage of the lifetime after which the automatic process for certificate renewal begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ReuseKeyOnRenewal - - Indicates that the certificate reuse the key during renewal. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - SecretContentType - - Specifies the content type of the new key vault secret. The acceptable values for this parameter are: - application/x-pkcs12 - - application/x-pem-file - - - application/x-pkcs12 - application/x-pem-file - - System.String - - System.String - - - None - - - SubjectName - - Specifies the subject name of the certificate. - - System.String - - System.String - - - None - - - ValidityInMonths - - Specifies the number of months the certificate is valid. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultCertificatePolicy - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the certificate. - - System.String - - System.String - - - None - - - CertificateTransparency - - Indicates whether certificate transparency is enabled for this certificate/issuer; if not specified, the default is 'true'. `-IssuerName` needs to be specified when setting this property. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - CertificateType - - Specifies the type of certificate to the issuer. - - System.String - - System.String - - - None - - - Curve - - Specifies the elliptic curve name of the key of the certificate. The acceptable values for this parameter are: - P-256 - - P-384 - - P-521 - - P-256K - - SECP256K1 - - - P-256 - P-384 - P-521 - P-256K - SECP256K1 - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disabled - - Indicates that the certificate policy is disabled. - - - System.Management.Automation.SwitchParameter - - - False - - - DnsName - - Specifies the subject name of the certificate. - - System.Collections.Generic.List`1[System.String] - - System.Collections.Generic.List`1[System.String] - - - None - - - Ekus - - Specifies the enhanced key usages (EKUs) in the certificate. - - System.Collections.Generic.List`1[System.String] - - System.Collections.Generic.List`1[System.String] - - - None - - - EmailAtNumberOfDaysBeforeExpiry - - Specifies the number of days before expiration when automatic renewal should start. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - EmailAtPercentageLifetime - - Specifies the percentage of the lifetime after which the automatic process for the notification begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - IssuerName - - Specifies the name of the issuer for this certificate. - - System.String - - System.String - - - None - - - KeyNotExportable - - Indicates that the key is not exportable. - - - System.Management.Automation.SwitchParameter - - - False - - - KeySize - - Specifies the key size of the certificate. The acceptable values for this parameter are: - 2048 - - 3072 - - 4096 - - 256 - - 384 - - 521 - - - 2048 - 3072 - 4096 - 256 - 384 - 521 - - System.Int32 - - System.Int32 - - - 2048 - - - KeyType - - Specifies the key type of the key that backs the certificate. The acceptable values for this parameter are: - RSA - - RSA-HSM - - EC - - EC-HSM - - - RSA - RSA-HSM - EC - EC-HSM - - System.String - - System.String - - - RSA - - - KeyUsage - - Specifies the key usages in the certificate. - - - None - EncipherOnly - CrlSign - KeyCertSign - KeyAgreement - DataEncipherment - KeyEncipherment - NonRepudiation - DigitalSignature - DecipherOnly - - System.Collections.Generic.List`1[System.Security.Cryptography.X509Certificates.X509KeyUsageFlags] - - System.Collections.Generic.List`1[System.Security.Cryptography.X509Certificates.X509KeyUsageFlags] - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - RenewAtNumberOfDaysBeforeExpiry - - Specifies the number of days before expiry after which the automatic process for certificate renewal begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ReuseKeyOnRenewal - - Indicates that the certificate reuse the key during renewal. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - SecretContentType - - Specifies the content type of the new key vault secret. The acceptable values for this parameter are: - application/x-pkcs12 - - application/x-pem-file - - - application/x-pkcs12 - application/x-pem-file - - System.String - - System.String - - - None - - - SubjectName - - Specifies the subject name of the certificate. - - System.String - - System.String - - - None - - - ValidityInMonths - - Specifies the number of months the certificate is valid. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultCertificatePolicy - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the certificate. - - System.String - - System.String - - - None - - - InputObject - - Specifies the certificate policy. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - - None - - - CertificateTransparency - - Indicates whether certificate transparency is enabled for this certificate/issuer; if not specified, the default is 'true'. `-IssuerName` needs to be specified when setting this property. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - Curve - - Specifies the elliptic curve name of the key of the certificate. The acceptable values for this parameter are: - P-256 - - P-384 - - P-521 - - P-256K - - SECP256K1 - - - P-256 - P-384 - P-521 - P-256K - SECP256K1 - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EmailAtNumberOfDaysBeforeExpiry - - Specifies the number of days before expiration when automatic renewal should start. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - EmailAtPercentageLifetime - - Specifies the percentage of the lifetime after which the automatic process for the notification begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - KeySize - - Specifies the key size of the certificate. The acceptable values for this parameter are: - 2048 - - 3072 - - 4096 - - 256 - - 384 - - 521 - - - 2048 - 3072 - 4096 - 256 - 384 - 521 - - System.Int32 - - System.Int32 - - - 2048 - - - KeyType - - Specifies the key type of the key that backs the certificate. The acceptable values for this parameter are: - RSA - - RSA-HSM - - EC - - EC-HSM - - - RSA - RSA-HSM - EC - EC-HSM - - System.String - - System.String - - - RSA - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - CertificateTransparency - - Indicates whether certificate transparency is enabled for this certificate/issuer; if not specified, the default is 'true'. `-IssuerName` needs to be specified when setting this property. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - CertificateType - - Specifies the type of certificate to the issuer. - - System.String - - System.String - - - None - - - Curve - - Specifies the elliptic curve name of the key of the certificate. The acceptable values for this parameter are: - P-256 - - P-384 - - P-521 - - P-256K - - SECP256K1 - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disabled - - Indicates that the certificate policy is disabled. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DnsName - - Specifies the subject name of the certificate. - - System.Collections.Generic.List`1[System.String] - - System.Collections.Generic.List`1[System.String] - - - None - - - Ekus - - Specifies the enhanced key usages (EKUs) in the certificate. - - System.Collections.Generic.List`1[System.String] - - System.Collections.Generic.List`1[System.String] - - - None - - - EmailAtNumberOfDaysBeforeExpiry - - Specifies the number of days before expiration when automatic renewal should start. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - EmailAtPercentageLifetime - - Specifies the percentage of the lifetime after which the automatic process for the notification begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - InputObject - - Specifies the certificate policy. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - - None - - - IssuerName - - Specifies the name of the issuer for this certificate. - - System.String - - System.String - - - None - - - KeyNotExportable - - Indicates that the key is not exportable. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - KeySize - - Specifies the key size of the certificate. The acceptable values for this parameter are: - 2048 - - 3072 - - 4096 - - 256 - - 384 - - 521 - - System.Int32 - - System.Int32 - - - 2048 - - - KeyType - - Specifies the key type of the key that backs the certificate. The acceptable values for this parameter are: - RSA - - RSA-HSM - - EC - - EC-HSM - - System.String - - System.String - - - RSA - - - KeyUsage - - Specifies the key usages in the certificate. - - System.Collections.Generic.List`1[System.Security.Cryptography.X509Certificates.X509KeyUsageFlags] - - System.Collections.Generic.List`1[System.Security.Cryptography.X509Certificates.X509KeyUsageFlags] - - - None - - - Name - - Specifies the name of the certificate. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - RenewAtNumberOfDaysBeforeExpiry - - Specifies the number of days before expiry after which the automatic process for certificate renewal begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - RenewAtPercentageLifetime - - Specifies the percentage of the lifetime after which the automatic process for certificate renewal begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ReuseKeyOnRenewal - - Indicates that the certificate reuse the key during renewal. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - SecretContentType - - Specifies the content type of the new key vault secret. The acceptable values for this parameter are: - application/x-pkcs12 - - application/x-pem-file - - System.String - - System.String - - - None - - - SubjectName - - Specifies the subject name of the certificate. - - System.String - - System.String - - - None - - - ValidityInMonths - - Specifies the number of months the certificate is valid. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - - - - - - - - - - - - - ------------- Example 1: Set a certificate policy ------------- - Set-AzKeyVaultCertificatePolicy -VaultName "ContosoKV01" -Name "TestCert01" -SecretContentType "application/x-pkcs12" -SubjectName "CN=contoso.com" -IssuerName "Self" -ValidityInMonths 6 -ReuseKeyOnRenewal $True -PassThru - -SecretContentType : application/x-pkcs12 -Kty : -KeySize : 2048 -Curve : -Exportable : -ReuseKeyOnRenewal : True -SubjectName : CN=contoso.com -DnsNames : -KeyUsage : -Ekus : -ValidityInMonths : 6 -IssuerName : Self -CertificateType : -RenewAtNumberOfDaysBeforeExpiry : -RenewAtPercentageLifetime : -EmailAtNumberOfDaysBeforeExpiry : -EmailAtPercentageLifetime : -CertificateTransparency : -Enabled : True -Created : -Updated : - - This command sets the policy for the TestCert01 certificate in the ContosoKV01 key vault. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/set-azkeyvaultcertificatepolicy - - - Get-AzKeyVaultCertificatePolicy - - - - New-AzKeyVaultCertificatePolicy - - - - - - - Set-AzKeyVaultKeyRotationPolicy - Set - AzKeyVaultKeyRotationPolicy - - Sets the key rotation policy for the specified key in Key Vault. - - - - This cmdlet requires the key update permission. It returns a key rotation policy for the specified key. - - - - Set-AzKeyVaultKeyRotationPolicy - - VaultName - - Vault name. - - System.String - - System.String - - - None - - - Name - - Key name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiresIn - - The expiryTime will be applied on the new key version. It should be at least 28 days. It will be in ISO 8601 Format. Examples: 90 days: P90D, 3 months: P3M, 48 hours: PT48H, 1 year and 10 days: P1Y10D. - - System.String - - System.String - - - None - - - KeyRotationLifetimeAction - - PSKeyRotationLifetimeAction object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyRotationLifetimeAction[] - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyRotationLifetimeAction[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultKeyRotationPolicy - - InputObject - - Key object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiresIn - - The expiryTime will be applied on the new key version. It should be at least 28 days. It will be in ISO 8601 Format. Examples: 90 days: P90D, 3 months: P3M, 48 hours: PT48H, 1 year and 10 days: P1Y10D. - - System.String - - System.String - - - None - - - KeyRotationLifetimeAction - - PSKeyRotationLifetimeAction object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyRotationLifetimeAction[] - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyRotationLifetimeAction[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultKeyRotationPolicy - - InputObject - - Key object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PolicyPath - - A path to the rotation policy file that contains JSON policy definition. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultKeyRotationPolicy - - KeyRotationPolicy - - PSKeyRotationPolicy object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyRotationPolicy - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyRotationPolicy - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultKeyRotationPolicy - - VaultName - - Vault name. - - System.String - - System.String - - - None - - - Name - - Key name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PolicyPath - - A path to the rotation policy file that contains JSON policy definition. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiresIn - - The expiryTime will be applied on the new key version. It should be at least 28 days. It will be in ISO 8601 Format. Examples: 90 days: P90D, 3 months: P3M, 48 hours: PT48H, 1 year and 10 days: P1Y10D. - - System.String - - System.String - - - None - - - InputObject - - Key object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - None - - - KeyRotationLifetimeAction - - PSKeyRotationLifetimeAction object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyRotationLifetimeAction[] - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyRotationLifetimeAction[] - - - None - - - KeyRotationPolicy - - PSKeyRotationPolicy object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyRotationPolicy - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyRotationPolicy - - - None - - - Name - - Key name. - - System.String - - System.String - - - None - - - PolicyPath - - A path to the rotation policy file that contains JSON policy definition. - - System.String - - System.String - - - None - - - VaultName - - Vault name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyRotationPolicy - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyRotationPolicy - - - - - - - - - - - - - - ------- Example 1: Sets key rotation policy by JSON file ------- - <# -rotation_policy.json -{ - "lifetimeActions": [ - { - "trigger": { - "timeAfterCreate": "P18M", - "timeBeforeExpiry": null - }, - "action": { - "type": "Rotate" - } - }, - { - "trigger": { - "timeBeforeExpiry": "P30D" - }, - "action": { - "type": "Notify" - } - } - ], - "attributes": { - "expiryTime": "P2Y" - } - } -#> -Set-AzKeyVaultKeyRotationPolicy -VaultName test-kv -Name test-key -PolicyPath rotation_policy.json - -Id : https://test-kv.vault.azure.net/keys/test-key/rotationpolicy -VaultName : test-kv -KeyName : test-keyAM +00:00 -LifetimeActions : {[Action: Notify, TimeAfterCreate: , TimeBeforeExpiry: P30D]} -ExpiresIn : P2Y -CreatedOn : 12/10/2021 3:21:51 AM +00:00 -UpdatedOn : 6/9/2022 7:43:27 - - These commands set the rotation policy of key `test-key` by JSON file. - - - - - - ------- Example 2: Sets key rotation policy expiry time ------- - Set-AzKeyVaultKeyRotationPolicy -VaultName test-kv -Name test-key -ExpiresIn P2Y - -Id : https://test-kv.vault.azure.net/keys/test-key/rotationpolicy -VaultName : test-kv -KeyName : test-keyAM +00:00 -LifetimeActions : {[Action: Notify, TimeAfterCreate: , TimeBeforeExpiry: P30D]} -ExpiresIn : P2Y -CreatedOn : 12/10/2021 3:21:51 AM +00:00 -UpdatedOn : 6/9/2022 7:43:27 - - These commands set the expiry time will be applied on the new key version of `test-key` as 2 years. - - - - - - -------- Example 3: Sets key rotation policy via piping -------- - Get-AzKeyVaultKey -VaultName test-kv -Name test-key | Set-AzKeyVaultKeyRotationPolicy -KeyRotationLifetimeAction @{Action = "Rotate"; TimeBeforeExpiry = "P18M"} - -Id : https://test-kv.vault.azure.net/keys/test-key/rotationpolicy -VaultName : test-kv -KeyName : test-key -LifetimeActions : {[Action: Rotate, TimeAfterCreate: , TimeBeforeExpiry: P18M], [Action: Notify, TimeAfterCreate: , - TimeBeforeExpiry: P30D]} -ExpiresIn : P2Y -CreatedOn : 12/10/2021 3:21:51 AM +00:00 -UpdatedOn : 6/9/2022 8:10:43 AM +00:00 - - These commands set the duration before expiry to attempt to rotate `test-key` as 18 months. - - - - - - Example 4: Copy key rotation policy to another key via PSKeyRotationPolicy object - $policy = Get-AzKeyVaultKeyRotationPolicy -VaultName test-kv -Name test-key1 -$policy.KeyName = "test-key2" -$policy | Set-AzKeyVaultKeyRotationPolicy - -Id : https://test-kv.vault.azure.net/keys/test-key2/rotationpolicy -VaultName : test-kv -KeyName : test-key2 -LifetimeActions : {[Action: Rotate, TimeAfterCreate: , TimeBeforeExpiry: P18M], [Action: Notify, TimeAfterCreate: , - TimeBeforeExpiry: P30D]} -ExpiresIn : P2Y -CreatedOn : 6/9/2022 8:26:35 AM +00:00 -UpdatedOn : 6/9/2022 8:26:35 AM +00:00 - - These commands copy the key rotation policy `test-key1` to key `test-key2`. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/set-azkeyvaultkeyrotationpolicy - - - Get-AzKeyVaultKeyRotationPolicy - - - - Invoke-AzKeyVaultKeyRotation - - - - - - - Set-AzKeyVaultManagedStorageSasDefinition - Set - AzKeyVaultManagedStorageSasDefinition - - Sets a Shared Access Signature (SAS) definition with Key Vault for a given Key Vault managed Azure Storage Account. - - - - Sets a Shared Access Signature (SAS) definition with a given Key Vault managed Azure Storage Account. This also sets a secret which can be used to get the SAS token per this SAS definition. SAS token is generated using these parameters and the active key of the Key Vault managed Azure Storage Account. - - - - Set-AzKeyVaultManagedStorageSasDefinition - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - AccountName - - Key Vault managed storage account name. Cmdlet constructs the FQDN of a managed storage account name from vault name, currently selected environment and manged storage account name. - - System.String - - System.String - - - None - - - Name - - Storage sas definition name. Cmdlet constructs the FQDN of a storage sas definition from vault name, currently selected environment, storage account name and sas definition name. - - System.String - - System.String - - - None - - - TemplateUri - - Storage SAS definition template uri. - - System.String - - System.String - - - None - - - SasType - - Storage SAS type. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disable - - Disables the use of sas definition for generation of sas token. - - - System.Management.Automation.SwitchParameter - - - False - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - ValidityPeriod - - Validity period that will get used to set the expiry time of sas token from the time it gets generated - - System.Nullable`1[System.TimeSpan] - - System.Nullable`1[System.TimeSpan] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultManagedStorageSasDefinition - - InputObject - - ManagedStorageAccount object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - None - - - Name - - Storage sas definition name. Cmdlet constructs the FQDN of a storage sas definition from vault name, currently selected environment, storage account name and sas definition name. - - System.String - - System.String - - - None - - - TemplateUri - - Storage SAS definition template uri. - - System.String - - System.String - - - None - - - SasType - - Storage SAS type. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disable - - Disables the use of sas definition for generation of sas token. - - - System.Management.Automation.SwitchParameter - - - False - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - ValidityPeriod - - Validity period that will get used to set the expiry time of sas token from the time it gets generated - - System.Nullable`1[System.TimeSpan] - - System.Nullable`1[System.TimeSpan] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AccountName - - Key Vault managed storage account name. Cmdlet constructs the FQDN of a managed storage account name from vault name, currently selected environment and manged storage account name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disable - - Disables the use of sas definition for generation of sas token. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - ManagedStorageAccount object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - None - - - Name - - Storage sas definition name. Cmdlet constructs the FQDN of a storage sas definition from vault name, currently selected environment, storage account name and sas definition name. - - System.String - - System.String - - - None - - - SasType - - Storage SAS type. - - System.String - - System.String - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - TemplateUri - - Storage SAS definition template uri. - - System.String - - System.String - - - None - - - ValidityPeriod - - Validity period that will get used to set the expiry time of sas token from the time it gets generated - - System.Nullable`1[System.TimeSpan] - - System.Nullable`1[System.TimeSpan] - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageSasDefinition - - - - - - - - - - - - - - Example 1: Set an account-type SAS definition, and obtain a current SAS token based on it - $sa = Get-AzStorageAccount -Name mysa -ResourceGroupName myrg -$kv = Get-AzKeyVault -VaultName mykv -Add-AzKeyVaultManagedStorageAccount -VaultName $kv.VaultName -AccountName $sa.StorageAccountName -AccountResourceId $sa.Id -ActiveKeyName key1 -RegenerationPeriod ([System.Timespan]::FromDays(180)) -$sctx = New-AzStorageContext -StorageAccountName $sa.StorageAccountName -Protocol Https -StorageAccountKey Key1 -$start = [System.DateTime]::Now.AddDays(-1) -$end = [System.DateTime]::Now.AddMonths(1) -$at = "sv=2018-03-28&ss=bfqt&srt=sco&sp=rw&spr=https" -$sas = Set-AzKeyVaultManagedStorageSasDefinition -AccountName $sa.StorageAccountName -VaultName $kv.VaultName -Name accountsas -TemplateUri $at -SasType 'account' -ValidityPeriod ([System.Timespan]::FromDays(30)) -Get-AzKeyVaultSecret -VaultName $kv.VaultName -Name $sas.Sid.Substring($sas.Sid.LastIndexOf('/')+1) - - Sets an account SAS definition 'accountsas' on a KeyVault-managed storage account 'mysa' in vault 'mykv'. Specifically, the sequence above performs the following: - gets a (pre-existing) storage account - gets a (pre-existing) key vault - adds a KeyVault-managed storage account to the vault, setting Key1 as the active key, and with a regeneration period of 180 days - sets a storage context for the specified storage account, with Key1 - creates an account SAS token for services Blob, File, Table and Queue, for resource types Service, Container and Object, with all permissions, over https and with the specified start and end dates - sets a KeyVault-managed storage SAS definition in the vault, with the template uri as the SAS token created above, of SAS type 'account' and valid for 30 days - retrieves the actual access token from the KeyVault secret corresponding to the SAS definition - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/set-azkeyvaultmanagedstoragesasdefinition - - - Get-AzKeyVaultManagedStorageSasDefinition - - - - Remove-AzKeyVaultManagedStorageSasDefinition - - - - Undo-AzKeyVaultManagedStorageSasDefinitionRemoval - - - - - - - Set-AzKeyVaultSecret - Set - AzKeyVaultSecret - - Creates or updates a secret in a key vault. - - - - The Set-AzKeyVaultSecret cmdlet creates or updates a secret in a key vault in Azure Key Vault. If the secret does not exist, this cmdlet creates it. If the secret already exists, this cmdlet creates a new version of that secret. - - - - Set-AzKeyVaultSecret - - Id - - The URI of the KeyVault Secret. Please ensure it follows the format: `https://<vault-name>.vault.azure.net/secrets/<secret-name>/<version>` - - String - - String - - - None - - - SecretValue - - Specifies the value for the secret as a SecureString object. To obtain a SecureString object, use the ConvertTo-SecureString cmdlet. For more information, type `Get-Help ConvertTo-SecureString`. - - SecureString - - SecureString - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - ContentType - - Specifies the content type of a secret. To delete the existing content type, specify an empty string. - - String - - String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Disable - - Indicates that this cmdlet disables a secret. - - - SwitchParameter - - - False - - - Expires - - Specifies the expiration time, as a DateTime object, for the secret that this cmdlet updates. This parameter uses Coordinated Universal Time (UTC). To obtain a DateTime object, use the Get-Date cmdlet. For more information, type `Get-Help Get-Date`. - - DateTime - - DateTime - - - None - - - NotBefore - - Specifies the time, as a DateTime object, before which the secret cannot be used. This parameter uses UTC. To obtain a DateTime object, use the Get-Date cmdlet. - - DateTime - - DateTime - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - Hashtable - - Hashtable - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Set-AzKeyVaultSecret - - InputObject - - Secret object - - PSKeyVaultSecretIdentityItem - - PSKeyVaultSecretIdentityItem - - - None - - - SecretValue - - Specifies the value for the secret as a SecureString object. To obtain a SecureString object, use the ConvertTo-SecureString cmdlet. For more information, type `Get-Help ConvertTo-SecureString`. - - SecureString - - SecureString - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - ContentType - - Specifies the content type of a secret. To delete the existing content type, specify an empty string. - - String - - String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Disable - - Indicates that this cmdlet disables a secret. - - - SwitchParameter - - - False - - - Expires - - Specifies the expiration time, as a DateTime object, for the secret that this cmdlet updates. This parameter uses Coordinated Universal Time (UTC). To obtain a DateTime object, use the Get-Date cmdlet. For more information, type `Get-Help Get-Date`. - - DateTime - - DateTime - - - None - - - NotBefore - - Specifies the time, as a DateTime object, before which the secret cannot be used. This parameter uses UTC. To obtain a DateTime object, use the Get-Date cmdlet. - - DateTime - - DateTime - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - Hashtable - - Hashtable - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Set-AzKeyVaultSecret - - VaultName - - Specifies the name of the key vault to which this secret belongs. This cmdlet constructs the FQDN of a key vault based on the name that this parameter specifies and your current environment. - - String - - String - - - None - - - Name - - Specifies the name of a secret to modify. This cmdlet constructs the fully qualified domain name (FQDN) of a secret based on the name that this parameter specifies, the name of the key vault, and your current environment. - - String - - String - - - None - - - SecretValue - - Specifies the value for the secret as a SecureString object. To obtain a SecureString object, use the ConvertTo-SecureString cmdlet. For more information, type `Get-Help ConvertTo-SecureString`. - - SecureString - - SecureString - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - ContentType - - Specifies the content type of a secret. To delete the existing content type, specify an empty string. - - String - - String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Disable - - Indicates that this cmdlet disables a secret. - - - SwitchParameter - - - False - - - Expires - - Specifies the expiration time, as a DateTime object, for the secret that this cmdlet updates. This parameter uses Coordinated Universal Time (UTC). To obtain a DateTime object, use the Get-Date cmdlet. For more information, type `Get-Help Get-Date`. - - DateTime - - DateTime - - - None - - - NotBefore - - Specifies the time, as a DateTime object, before which the secret cannot be used. This parameter uses UTC. To obtain a DateTime object, use the Get-Date cmdlet. - - DateTime - - DateTime - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - Hashtable - - Hashtable - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - ContentType - - Specifies the content type of a secret. To delete the existing content type, specify an empty string. - - String - - String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Disable - - Indicates that this cmdlet disables a secret. - - SwitchParameter - - SwitchParameter - - - False - - - Expires - - Specifies the expiration time, as a DateTime object, for the secret that this cmdlet updates. This parameter uses Coordinated Universal Time (UTC). To obtain a DateTime object, use the Get-Date cmdlet. For more information, type `Get-Help Get-Date`. - - DateTime - - DateTime - - - None - - - Id - - The URI of the KeyVault Secret. Please ensure it follows the format: `https://<vault-name>.vault.azure.net/secrets/<secret-name>/<version>` - - String - - String - - - None - - - InputObject - - Secret object - - PSKeyVaultSecretIdentityItem - - PSKeyVaultSecretIdentityItem - - - None - - - Name - - Specifies the name of a secret to modify. This cmdlet constructs the fully qualified domain name (FQDN) of a secret based on the name that this parameter specifies, the name of the key vault, and your current environment. - - String - - String - - - None - - - NotBefore - - Specifies the time, as a DateTime object, before which the secret cannot be used. This parameter uses UTC. To obtain a DateTime object, use the Get-Date cmdlet. - - DateTime - - DateTime - - - None - - - SecretValue - - Specifies the value for the secret as a SecureString object. To obtain a SecureString object, use the ConvertTo-SecureString cmdlet. For more information, type `Get-Help ConvertTo-SecureString`. - - SecureString - - SecureString - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - Hashtable - - Hashtable - - - None - - - VaultName - - Specifies the name of the key vault to which this secret belongs. This cmdlet constructs the FQDN of a key vault based on the name that this parameter specifies and your current environment. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSecretIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSecret - - - - - - - - - - - - - - Example 1: Modify the value of a secret using default attributes - $Secret = ConvertTo-SecureString -String "****" -AsPlainText -Force -Set-AzKeyVaultSecret -VaultName 'Contoso' -Name 'ITSecret' -SecretValue $Secret - -Vault Name : Contoso -Name : ITSecret -Version : 8b5c0cb0326e4350bd78200fac932b51 -Id : https://contoso.vault.azure.net:443/secrets/ITSecret/8b5c0cb0326e4350bd78200fac932b51 -Enabled : True -Expires : -Not Before : -Created : 5/25/2018 6:39:30 PM -Updated : 5/25/2018 6:39:30 PM -Content Type : -Tags : - - The first command converts a string into a secure string by using the ConvertTo-SecureString cmdlet, and then stores that string in the $Secret variable. For more information, type `Get-Help ConvertTo-SecureString`. The second command modifies value of the secret named ITSecret in the key vault named Contoso. The secret value becomes the value stored in $Secret. - - - - - - Example 2: Modify the value of a secret using custom attributes - $Secret = ConvertTo-SecureString -String "****" -AsPlainText -Force -$Expires = (Get-Date).AddYears(2).ToUniversalTime() -$NBF =(Get-Date).ToUniversalTime() -$Tags = @{ 'Severity' = 'medium'; 'IT' = 'true'} -$ContentType = 'txt' -Set-AzKeyVaultSecret -VaultName 'Contoso' -Name 'ITSecret' -SecretValue $Secret -Expires $Expires -NotBefore $NBF -ContentType $ContentType -Disable -Tags $Tags - -Vault Name : Contoso -Name : ITSecret -Version : a2c150be3ea24dd6b8286986e6364851 -Id : https://contoso.vault.azure.net:443/secrets/ITSecret/a2c150be3ea24dd6b8286986e6364851 -Enabled : False -Expires : 5/25/2020 6:40:00 PM -Not Before : 5/25/2018 6:40:05 PM -Created : 5/25/2018 6:41:22 PM -Updated : 5/25/2018 6:41:22 PM -Content Type : txt -Tags : Name Value - Severity medium - IT true - - The first command converts a string into a secure string by using the ConvertTo-SecureString cmdlet, and then stores that string in the $Secret variable. For more information, type `Get-Help ConvertTo-SecureString`. The next commands define custom attributes for the expiry date, tags, and context type, and store the attributes in variables. The final command modifies values of the secret named ITSecret in the key vault named Contoso, by using the values specified previously as variables. - - - - - - Example 3: Modify the value of a secret using default attributes (using Uri) - $Secret = ConvertTo-SecureString -String "****" -AsPlainText -Force -Set-AzKeyVaultSecret -Id 'https://contoso.vault.azure.net/secrets/ITSecret' -SecretValue $Secret - -Vault Name : Contoso -Name : ITSecret -Version : 8b5c0cb0326e4350bd78200fac932b51 -Id : https://contoso.vault.azure.net:443/secrets/ITSecret/8b5c0cb0326e4350bd78200fac932b51 -Enabled : True -Expires : -Not Before : -Created : 5/25/2018 6:39:30 PM -Updated : 5/25/2018 6:39:30 PM -Content Type : -Tags : - - This command sets or updates the value of the secret named secret1 in the Key Vault named Contoso using the secret’s URI. - - - - - - Example 4: Create a secret in azure key vault by command Set-Secret in module Microsoft.PowerShell.SecretManagement - # Install module Microsoft.PowerShell.SecretManagement -Install-Module Microsoft.PowerShell.SecretManagement -Repository PSGallery -AllowPrerelease -# Register vault for Secret Management -Register-SecretVault -Name AzKeyVault -ModuleName Az.KeyVault -VaultParameters @{ AZKVaultName = 'test-kv'; SubscriptionId = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' } -# Set secret for vault AzKeyVault -$secure = ConvertTo-SecureString -String "****" -AsPlainText -Force -Set-Secret -Name secureSecret -SecureStringSecret $secure -Vault AzKeyVault - -None - - This example sets a secret named `secureSecret` in azure key vault `test-kv` by command `Set-Secret` in module `Microsoft.PowerShell.SecretManagement`. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/set-azkeyvaultsecret - - - Get-AzKeyVaultSecret - - - - Remove-AzKeyVaultSecret - - - - - - - Stop-AzKeyVaultCertificateOperation - Stop - AzKeyVaultCertificateOperation - - Cancels a certificate operation in key vault. - - - - The Stop-AzKeyVaultCertificateOperation cmdlet cancels a certificate operation in the Azure Key Vault service. - - - - Stop-AzKeyVaultCertificateOperation - - InputObject - - Operation object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOperation - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOperation - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Stop-AzKeyVaultCertificateOperation - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Name - - Specifies the name of a certificate. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Operation object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOperation - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOperation - - - None - - - Name - - Specifies the name of a certificate. - - System.String - - System.String - - - None - - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOperation - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOperation - - - - - - - - - - - - - - ---------- Example 1: Cancel a certificate operation ---------- - Stop-AzKeyVaultCertificateOperation -VaultName "Contoso01" -Name "TestCert02" -Force - -Status : inProgress -CancellationRequested : True -CertificateSigningRequest : MIICpjCCAY4CAQAwFjEUMBIGA1UEAxMLY29udG9zby5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCVr6EVwsd48qDVORsF4V4w4N1aQCUirFW7b+kwoTvSOL4SfMiWcPmno0uxmQQoh - gz157bC3sKFLyBUsGCmS4i7uWkBOSEpCh8L3FKU4XMqRROlUM9AqswzB0e1sURCqevEJA80xFpfTgkeqpm44m4jr6p7gu+h1PBf9Dt7b43Gybde5DUlGrrOiTkOIAF0eU2iNVeHOapoj8m1XHmzO1BARs - oa0pSDxO/aMgeuq/QPkWG64Iiw55U20byKZ86u3Y4g192HsPwsrHkf9ZSYR2M9BYM3YGoT/dkCmAtP4LQAsOwf1+S0a/TwRtrnoOHbPFI6HYSY3TY1iqzZ9xItfgalAgMBAAGgSzBJBgkqhkiG9w0BCQ4 - xPDA6MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwCQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOCAQEAjxUX5PGhri9qJTxSleGEbMVkxhhn3nuPUgxujEzrcQVr - fZAACJHbOnga/QYwpxumKWnkX9YdWxb58PPn+nLV2gYP3eYEyJ4DR9XDcKpoQxZahUdqD3JZXhWPIcN05tw9Fuq8ziw94BjLZW3h3iDamqkBnysJYW58FBp1H8Ejqk0Iynbo0V223Innq/7QB2fVwe3ZJ - JecT8YxHJjVQ5psdDpEWgLUG/DFiAPHdwupI7JjvtvQmT3AotL0x5GNx2bWNH5hHIXsX4bnbxZgNQnTB2w3tQ3QeuKt8fUx2S0xtxPllaCUul6efa84TNqdMcMfyxCarIwDP6qdhS+CDU1uUA== -ErrorCode : -ErrorMessage : - - This command cancels the TestCert02 certificate operation. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/stop-azkeyvaultcertificateoperation - - - Get-AzKeyVaultCertificateOperation - - - - Remove-AzKeyVaultCertificateOperation - - - - - - - Undo-AzKeyVaultCertificateRemoval - Undo - AzKeyVaultCertificateRemoval - - Recovers a deleted certificate in a key vault into an active state. - - - - The Undo-AzKeyVaultCertificateRemoval cmdlet will recover a previously deleted certificate. The recovered certificate will be active and can be used for all operations. Caller needs to have 'recover' permission in order to perform this operation. - - - - Undo-AzKeyVaultCertificateRemoval - - InputObject - - Deleted Certificate object - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultCertificateIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultCertificateIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Undo-AzKeyVaultCertificateRemoval - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Name - - Certificate name. Cmdlet constructs the FQDN of a certificate from vault name, currently selected environment and certificate name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Deleted Certificate object - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultCertificateIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultCertificateIdentityItem - - - None - - - Name - - Certificate name. Cmdlet constructs the FQDN of a certificate from vault name, currently selected environment and certificate name. - - System.String - - System.String - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultCertificateIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificate - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Undo-AzKeyVaultCertificateRemoval -VaultName 'MyKeyVault' -Name 'MyCertificate' - -Certificate : [Subject] - CN=contoso.com - - [Issuer] - CN=contoso.com - - [Serial Number] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - - [Not Before] - 5/24/2018 10:58:13 AM - - [Not After] - 11/24/2018 10:08:13 AM - - [Thumbprint] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - -KeyId : https://mykeyvault.vault.azure.net:443/keys/mycertificate/7fe415d5518240c1a6fce89986b8d334 -SecretId : https://mykeyvault.vault.azure.net:443/secrets/mycertificate/7fe415d5518240c1a6fce89986b8d334 -Thumbprint : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -RecoveryLevel : Recoverable+Purgeable -Enabled : True -Expires : 11/24/2018 6:08:13 PM -NotBefore : 5/24/2018 5:58:13 PM -Created : 5/24/2018 6:08:13 PM -Updated : 5/24/2018 6:08:13 PM -Tags : -VaultName : MyKeyVault -Name : MyCertificate -Version : 7fe415d5518240c1a6fce89986b8d334 -Id : https://mykeyvault.vault.azure.net:443/certificates/mycertificate/7fe415d5518240c1a6fce89986b8d334 - - This command will recover the certificate 'MyCertificate' that was previously deleted, into an active and usable state. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/undo-azkeyvaultcertificateremoval - - - Remove-AzKeyVaultCertificate - - - - Get-AzKeyVaultCertificate - - - - - - - Undo-AzKeyVaultKeyRemoval - Undo - AzKeyVaultKeyRemoval - - Recovers a deleted key in a key vault into an active state. - - - - The Undo-AzKeyVaultKeyRemoval cmdlet will recover a previously deleted key. The recovered key will be active and can be used for all normal key operations. Caller needs to have 'recover' permission in order to perform this operation. - - - - Undo-AzKeyVaultKeyRemoval - - Name - - Key name. Cmdlet constructs the FQDN of a key from vault name, currently selected environment and key name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Undo-AzKeyVaultKeyRemoval - - InputObject - - Deleted key object - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultKeyIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Undo-AzKeyVaultKeyRemoval - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Name - - Key name. Cmdlet constructs the FQDN of a key from vault name, currently selected environment and key name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - InputObject - - Deleted key object - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultKeyIdentityItem - - - None - - - Name - - Key name. Cmdlet constructs the FQDN of a key from vault name, currently selected environment and key name. - - System.String - - System.String - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultKeyIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKey - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Undo-AzKeyVaultKeyRemoval -VaultName 'MyKeyVault' -Name 'MyKey' - -Vault Name : MyKeyVault -Name : MyKey -Version : 1af807cc331a49d0b52b7c75e1b2366e -Id : https://mykeybault.vault.azure.net:443/keys/mykey/1af807cc331a49d0b52b7c75e1b2366e -Enabled : True -Expires : -Not Before : -Created : 5/24/2018 8:32:27 PM -Updated : 5/24/2018 8:32:27 PM -Purge Disabled : False -Tags : - - This command will recover the key 'MyKey' that was previously deleted, into an active and usable state. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/undo-azkeyvaultkeyremoval - - - Remove-AzKeyVaultKey - - - - Add-AzKeyVaultKey - - - - Get-AzKeyVaultKey - - - - - - - Undo-AzKeyVaultManagedHsmRemoval - Undo - AzKeyVaultManagedHsmRemoval - - Recover a managed HSM. - - - - Recover a previously deleted HSM for which soft delete was enabled. - - - - Undo-AzKeyVaultManagedHsmRemoval - - InputObject - - Deleted HSM object - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedManagedHsm - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - SubscriptionId - - The ID of the subscription. - By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. - Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Undo-AzKeyVaultManagedHsmRemoval - - Name - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the deleted HSM resource group. - - System.String - - System.String - - - None - - - Location - - Specifies the deleted HSM original Azure region. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - SubscriptionId - - The ID of the subscription. - By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. - Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Deleted HSM object - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedManagedHsm - - - None - - - Location - - Specifies the deleted HSM original Azure region. - - System.String - - System.String - - - None - - - Name - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the deleted HSM resource group. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. - By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. - Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedManagedHsm - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - - - - - - - - - - - - --------------- Example 1: Recover a deleted HSM --------------- - Undo-AzKeyVaultManagedHsmRemoval -Name test001 -ResourceGroupName test-rg -Location westus - -Name Resource Group Name Location SKU ProvisioningState ----- ------------------- -------- --- ----------------- -test001 test-rg West US StandardB1 Succeeded - - This command recovers a managed HSM called `test001` from deleted state. - - - - - - ---------- Example 2: Recover a deleted HSM by piping ---------- - Get-AzKeyVaultManagedHsm -Name test001 -Location westus -InRemovedState | Undo-AzKeyVaultManagedHsmRemoval - -Name Resource Group Name Location SKU ProvisioningState ----- ------------------- -------- --- ----------------- -test001 test-rg West US StandardB1 Succeeded - - This command recovers a managed HSM called `test001` from deleted state by piping. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/undo-azkeyvaultmanagedhsmremoval - - - New-AzKeyVaultManagedHsm - - - - Get-AzKeyVaultManagedHsm - - - - Remove-AzKeyVaultManagedHsm - - - - Update-AzKeyVaultManagedHsm - - - - - - - Undo-AzKeyVaultManagedStorageAccountRemoval - Undo - AzKeyVaultManagedStorageAccountRemoval - - Recovers a previously deleted KeyVault-managed storage account. - - - - The Undo-AzKeyVaultManagedStorageAccountRemoval command recovers a previously deleted managed storage account, provided that soft delete is enabled for this vault, and that the attempt to recover occurs during the recovery interval. - - - - Undo-AzKeyVaultManagedStorageAccountRemoval - - InputObject - - Deleted Managed Storage Account object - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultManagedStorageAccountIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultManagedStorageAccountIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Undo-AzKeyVaultManagedStorageAccountRemoval - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Name - - Name of the KeyVault managed storage account. Cmdlet constructs the FQDN of the target from vault name, currently selected environment and the name of the managed storage account. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Deleted Managed Storage Account object - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultManagedStorageAccountIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultManagedStorageAccountIdentityItem - - - None - - - Name - - Name of the KeyVault managed storage account. Cmdlet constructs the FQDN of the target from vault name, currently selected environment and the name of the managed storage account. - - System.String - - System.String - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultManagedStorageAccountIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccount - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-AzKeyVaultManagedStorageAccount -VaultName myVault -Name myAccount -InRemovedState -Undo-AzKeyVaultManagedStorageAccountRemoval -VaultName myVault -Name myAccount - -Id : https://myvault.vault.azure.net:443/storage/myaccount -Vault Name : myVault -AccountName : myAccount -Account Resource Id : /subscriptions/8bc48661-1801-4b7a-8ca1-6a3cadfb4870/resourceGroups/myrg/providers/Microsoft.St - orage/storageAccounts/myaccount -Active Key Name : key2 -Auto Regenerate Key : False -Regeneration Period : 90.00:00:00 -Enabled : True -Created : 4/25/2018 1:50:32 AM -Updated : 4/25/2018 1:50:32 AM -Tags : - - This sequence of commands determines whether the specified storage account exists in the vault in a deleted state; the subsequent command recovers the deleted storage account, bringing it back into an active state. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/undo-azkeyvaultmanagedstorageaccountremoval - - - - - - Undo-AzKeyVaultManagedStorageSasDefinitionRemoval - Undo - AzKeyVaultManagedStorageSasDefinitionRemoval - - Recovers a previously deleted KeyVault-managed storage SAS definition. - - - - The Undo-AzKeyVaultManagedStorageSasDefinitionRemoval command recovers a previously deleted managed storage SAS definition, provided that soft delete is enabled for this vault, and that the attempt to recover occurs during the recovery interval. - - - - Undo-AzKeyVaultManagedStorageSasDefinitionRemoval - - InputObject - - Deleted managed storage SAS definition object - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultManagedStorageSasDefinitionIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultManagedStorageSasDefinitionIdentityItem - - - None - - - AccountName - - KeyVault-managed storage account name. Cmdlet constructs the FQDN of a managed storage SAS definition from vault name, currently-selected environment and managed storage account name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Undo-AzKeyVaultManagedStorageSasDefinitionRemoval - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - AccountName - - KeyVault-managed storage account name. Cmdlet constructs the FQDN of a managed storage SAS definition from vault name, currently-selected environment and managed storage account name. - - System.String - - System.String - - - None - - - Name - - Name of the KeyVault-managed storage SAS definition. Cmdlet constructs the FQDN of the target from vault name, currently-selected environment, the name of the managed storage account and the name of the SAS definition. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AccountName - - KeyVault-managed storage account name. Cmdlet constructs the FQDN of a managed storage SAS definition from vault name, currently-selected environment and managed storage account name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Deleted managed storage SAS definition object - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultManagedStorageSasDefinitionIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultManagedStorageSasDefinitionIdentityItem - - - None - - - Name - - Name of the KeyVault-managed storage SAS definition. Cmdlet constructs the FQDN of the target from vault name, currently-selected environment, the name of the managed storage account and the name of the SAS definition. - - System.String - - System.String - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultManagedStorageSasDefinitionIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageSasDefinition - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-AzKeyVaultManagedStorageSasDefinition -VaultName myVault -AccountName myAccount -Name mySasName -InRemovedState -Undo-AzKeyVaultManagedStorageSasDefinitionRemoval -VaultName myVault -AccountName myAccount -Name mySasName - -Id : https://myvault.vault.azure.net:443/storage/myaccount/sas/mysasname -Secret Id : https://myvault.vault.azure.net/secrets/myaccount-mysasname -Vault Name : myVault -AccountName : myAccount -Name : mySasName -Parameter : -Enabled : True -Created : 5/24/2018 9:11:08 PM -Updated : 5/24/2018 9:11:08 PM -Tags : - - This sequence of commands determines whether the specified storage SAS definition exists in the vault in a deleted state; the subsequent command recovers the deleted sas definition, bringing it back into an active state. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/undo-azkeyvaultmanagedstoragesasdefinitionremoval - - - Get-AzKeyVaultManagedStorageSasDefinition - - - - Remove-AzKeyVaultManagedStorageSasDefinition - - - - Set-AzKeyVaultManagedStorageSasDefinition - - - - - - - Undo-AzKeyVaultRemoval - Undo - AzKeyVaultRemoval - - Recovers a deleted key vault into an active state. - - - - The Undo-AzKeyVaultRemoval cmdlet will recover a previously deleted key vault. The recovered vault will be active after recovery - - - - Undo-AzKeyVaultRemoval - - InputObject - - Deleted vault object - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVault - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Undo-AzKeyVaultRemoval - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of an existing resource group in which to create the key vault. - - System.String - - System.String - - - None - - - Location - - Specifies the deleted vault original Azure region. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Deleted vault object - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVault - - - None - - - Location - - Specifies the deleted vault original Azure region. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of an existing resource group in which to create the key vault. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVault - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Undo-AzKeyVaultRemoval -VaultName 'MyKeyVault' -ResourceGroupName 'MyResourceGroup' -Location 'eastus2' -Tag @{"x"= "y"} - -Vault Name : MyKeyVault -Resource Group Name : MyResourceGroup -Location : eastus2 -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myresourcegroup/providers - /Microsoft.KeyVault/vaults/mykeyvault -Vault URI : https://mykeyvault.vault.azure.net/ -Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx -SKU : Standard -Enabled For Deployment? : True -Enabled For Template Deployment? : True -Enabled For Disk Encryption? : True -Soft Delete Enabled? : True -Access Policies : - Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Object ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Application ID : - Display Name : User Name (username@microsoft.com) - Permissions to Keys : get, create, delete, list, update, - import, backup, restore, recover - Permissions to Secrets : get, list, set, delete, backup, - restore, recover - Permissions to Certificates : get, delete, list, create, import, - update, deleteissuers, getissuers, listissuers, managecontacts, manageissuers, - setissuers, recover - Permissions to (Key Vault Managed) Storage : delete, deletesas, get, getsas, list, - listsas, regeneratekey, set, setsas, update - -Tags : - Name Value - ==== ===== - x y - - This command will recover the key vault 'MyKeyVault' that was previously deleted from eastus2 region and 'MyResourceGroup' resource group, into an active and usable state. It also replaces the tags with new tag. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/undo-azkeyvaultremoval - - - Remove-AzKeyVault - - - - New-AzKeyVault - - - - Get-AzKeyVault - - - - - - - Undo-AzKeyVaultSecretRemoval - Undo - AzKeyVaultSecretRemoval - - Recovers a deleted secret in a key vault into an active state. - - - - The Undo-AzKeyVaultSecretRemoval cmdlet will recover a previously deleted secret. The recovered secret will be active and can be used for all normal secret operations. Caller needs to have 'recover' permission in order to perform this operation. - - - - Undo-AzKeyVaultSecretRemoval - - Id - - The URI of the KeyVault Secret. Please ensure it follows the format: `https://<vault-name>.vault.azure.net/secrets/<secret-name>/<version>` - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Undo-AzKeyVaultSecretRemoval - - InputObject - - Deleted secret object - - PSDeletedKeyVaultSecretIdentityItem - - PSDeletedKeyVaultSecretIdentityItem - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Undo-AzKeyVaultSecretRemoval - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - String - - String - - - None - - - Name - - Secret name. Cmdlet constructs the FQDN of a secret from vault name, currently selected environment and secret name. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Id - - The URI of the KeyVault Secret. Please ensure it follows the format: `https://<vault-name>.vault.azure.net/secrets/<secret-name>/<version>` - - String - - String - - - None - - - InputObject - - Deleted secret object - - PSDeletedKeyVaultSecretIdentityItem - - PSDeletedKeyVaultSecretIdentityItem - - - None - - - Name - - Secret name. Cmdlet constructs the FQDN of a secret from vault name, currently selected environment and secret name. - - String - - String - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultSecretIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSecret - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Undo-AzKeyVaultSecretRemoval -VaultName 'MyKeyVault' -Name 'MySecret' - -Vault Name : MyKeyVault -Name : MySecret -Version : f622abc7b1394092812f1eb0f85dc91c -Id : https://mykeyvault.vault.azure.net:443/secrets/mysecret/f622abc7b1394092812f1eb0f85dc91c -Enabled : True -Expires : -Not Before : -Created : 4/19/2018 5:56:02 PM -Updated : 4/26/2018 7:48:40 PM -Content Type : -Tags : - - This command will recover the secret 'MySecret' that was previously deleted, into an active and usable state. - - - - - - -------------------------- Example 2 -------------------------- - Undo-AzKeyVaultSecretRemoval -Id "https://mykeyvault.vault.azure.net:443/secrets/mysecret/" - -Vault Name : MyKeyVault -Name : MySecret -Version : f622abc7b1394092812f1eb0f85dc91c -Id : https://mykeyvault.vault.azure.net:443/secrets/mysecret/f622abc7b1394092812f1eb0f85dc91c -Enabled : True -Expires : -Not Before : -Created : 4/19/2018 5:56:02 PM -Updated : 4/26/2018 7:48:40 PM -Content Type : -Tags : - - This command will recover the secret 'MySecret' that was previously deleted, into an active and usable state. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/undo-azkeyvaultsecretremoval - - - Remove-AzKeyVaultSecret - - - - Set-AzKeyVaultSecret - - - - Get-AzKeyVaultSecret - - - - - - - Update-AzKeyVault - Update - AzKeyVault - - Update the state of an Azure key vault. - - - - This cmdlet updates the state of an Azure key vault. - - - - Update-AzKeyVault - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisableRbacAuthorization - - Disable or enable this key vault to authorize data actions by Role Based Access Control (RBAC). - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - EnablePurgeProtection - - Enable the purge protection functionality for this key vault. Once enabled it cannot be disabled. It requires soft-delete to be turned on. - - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Key vault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - PublicNetworkAccess - - Specifies whether the vault will accept traffic from public internet. If set to 'disabled' all traffic except private endpoint traffic and that that originates from trusted services will be blocked. This will override the set firewall rules, meaning that even if the firewall rules are present we will not honor the rules. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - A hash table which represents resource tags. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzKeyVault - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisableRbacAuthorization - - Disable or enable this key vault to authorize data actions by Role Based Access Control (RBAC). - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - EnablePurgeProtection - - Enable the purge protection functionality for this key vault. Once enabled it cannot be disabled. It requires soft-delete to be turned on. - - - System.Management.Automation.SwitchParameter - - - False - - - PublicNetworkAccess - - Specifies whether the vault will accept traffic from public internet. If set to 'disabled' all traffic except private endpoint traffic and that that originates from trusted services will be blocked. This will override the set firewall rules, meaning that even if the firewall rules are present we will not honor the rules. - - System.String - - System.String - - - None - - - ResourceGroupName - - Name of the resource group. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - A hash table which represents resource tags. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - VaultName - - Name of the key vault. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzKeyVault - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisableRbacAuthorization - - Disable or enable this key vault to authorize data actions by Role Based Access Control (RBAC). - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - EnablePurgeProtection - - Enable the purge protection functionality for this key vault. Once enabled it cannot be disabled. It requires soft-delete to be turned on. - - - System.Management.Automation.SwitchParameter - - - False - - - PublicNetworkAccess - - Specifies whether the vault will accept traffic from public internet. If set to 'disabled' all traffic except private endpoint traffic and that that originates from trusted services will be blocked. This will override the set firewall rules, meaning that even if the firewall rules are present we will not honor the rules. - - System.String - - System.String - - - None - - - ResourceId - - Resource ID of the key vault. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - A hash table which represents resource tags. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisableRbacAuthorization - - Disable or enable this key vault to authorize data actions by Role Based Access Control (RBAC). - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - EnablePurgeProtection - - Enable the purge protection functionality for this key vault. Once enabled it cannot be disabled. It requires soft-delete to be turned on. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Key vault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - PublicNetworkAccess - - Specifies whether the vault will accept traffic from public internet. If set to 'disabled' all traffic except private endpoint traffic and that that originates from trusted services will be blocked. This will override the set firewall rules, meaning that even if the firewall rules are present we will not honor the rules. - - System.String - - System.String - - - None - - - ResourceGroupName - - Name of the resource group. - - System.String - - System.String - - - None - - - ResourceId - - Resource ID of the key vault. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - A hash table which represents resource tags. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - VaultName - - Name of the key vault. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - System.Collections.Hashtable - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - - - - - - - -------------- Example 1: Enable purge protection -------------- - Get-AzKeyVault -VaultName $keyVaultName -ResourceGroupName $resourceGroupName | Update-AzKeyVault -EnablePurgeProtection - - Enables purge protection using piping syntax. - - - - - - ------------- Example 2: Enable RBAC Authorization ------------- - Get-AzKeyVault -VaultName $keyVaultName -ResourceGroupName $resourceGroupName | Update-AzKeyVault -DisableRbacAuthorization $false - - Enables RBAC Authorization using piping syntax. - - - - - - --------------------- Example 3: Set tags --------------------- - Get-AzKeyVault -VaultName $keyVaultName | Update-AzKeyVault -Tags @{key = "value"} - - Sets the tags of a key vault named $keyVaultName. - - - - - - -------------------- Example 4: Clean tags -------------------- - Get-AzKeyVault -VaultName $keyVaultName | Update-AzKeyVault -Tags @{} - - Deletes all tags of a key vault named $keyVaultName. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/update-azkeyvault - - - - - - Update-AzKeyVaultCertificate - Update - AzKeyVaultCertificate - - Modifies editable attributes of a certificate. - - - - The Update-AzKeyVaultCertificate cmdlet modifies the editable attributes of a certificate. - - - - Update-AzKeyVaultCertificate - - InputObject - - Certificate object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - None - - - Version - - Certificate version. Cmdlet constructs the FQDN of a certificate from vault name, currently selected environment, certificate name and certificate version. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Enable - - If present, enable a certificate if value is true. Disable a certificate if value is false. If not specified, the existing value of the certificate's enabled/disabled state remains unchanged. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - PassThru - - Cmdlet does not return object by default. If this switch is specified, return certificate object. - - - System.Management.Automation.SwitchParameter - - - False - - - Tag - - A hashtable representing certificate tags. If not specified, the existing tags of the sertificate remain unchanged. Remove a tag by specifying an empty Hashtable. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzKeyVaultCertificate - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Name - - Certificate name. Cmdlet constructs the FQDN of a secret from vault name, currently selected environment and secret name. - - System.String - - System.String - - - None - - - Version - - Certificate version. Cmdlet constructs the FQDN of a certificate from vault name, currently selected environment, certificate name and certificate version. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Enable - - If present, enable a certificate if value is true. Disable a certificate if value is false. If not specified, the existing value of the certificate's enabled/disabled state remains unchanged. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - PassThru - - Cmdlet does not return object by default. If this switch is specified, return certificate object. - - - System.Management.Automation.SwitchParameter - - - False - - - Tag - - A hashtable representing certificate tags. If not specified, the existing tags of the sertificate remain unchanged. Remove a tag by specifying an empty Hashtable. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Enable - - If present, enable a certificate if value is true. Disable a certificate if value is false. If not specified, the existing value of the certificate's enabled/disabled state remains unchanged. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - InputObject - - Certificate object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - None - - - Name - - Certificate name. Cmdlet constructs the FQDN of a secret from vault name, currently selected environment and secret name. - - System.String - - System.String - - - None - - - PassThru - - Cmdlet does not return object by default. If this switch is specified, return certificate object. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Tag - - A hashtable representing certificate tags. If not specified, the existing tags of the sertificate remain unchanged. Remove a tag by specifying an empty Hashtable. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Version - - Certificate version. Cmdlet constructs the FQDN of a certificate from vault name, currently selected environment, certificate name and certificate version. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificate - - - - - - - - - - - - - - --- Example 1: Modify the tags associated with a certificate --- - $Tags = @{ "Team" = "Azure" ; "Role" = "Engg" } -Update-AzKeyVaultCertificate -VaultName "ContosoKV01" -Name "TestCert01" -Tag $Tags -PassThru - -Name : TestCert01 -Certificate : [Subject] - CN=AZURE - - [Issuer] - CN=AZURE - - [Serial Number] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - - [Not Before] - 7/27/2016 6:50:01 PM - - [Not After] - 7/27/2018 7:00:01 PM - - [Thumbprint] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - -Id : https://ContosoKV01.vault.azure.net:443/certificates/TestCert01 -KeyId : https://ContosoKV01.vault.azure.net:443/keys/TestCert01 -SecretId : https://ContosoKV01.vault.azure.net:443/secrets/TestCert01 -Thumbprint : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -Tags : {[Role, Engg], [Team, Azure]} -Enabled : True -Created : 7/28/2016 2:00:01 AM -Updated : 8/1/2016 5:37:48 PM - - The first command assigns an array of key/value pairs to the $Tags variable. The second command sets the tags value of the certificate named TestCert01 to be $Tags. - - - - - - -------------------------- Example 2 -------------------------- - Update-AzKeyVaultCertificate -Enable $true -Name 'TestCert01' -VaultName 'ContosoKV01' - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/update-azkeyvaultcertificate - - - - - - Update-AzKeyVaultKey - Update - AzKeyVaultKey - - Updates the attributes of a key in a key vault. - - - - The Update-AzKeyVaultKey cmdlet updates the editable attributes of a key in a key vault. - - - - Update-AzKeyVaultKey - - Name - - Key name. Cmdlet constructs the FQDN of a key from vault name, currently selected environment and key name. - - System.String - - System.String - - - None - - - Version - - Key version. Cmdlet constructs the FQDN of a key from vault name, currently selected environment, key name and key version. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Enable - - Value of true enables the key and a value of false disabless the key. If not specified, the existing enabled/disabled state remains unchanged. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - Expires - - The expiration time of a key in UTC time. If not specified, the existing expiration time of the key remains unchanged. Please notice that expirys is ignored for Key Exchange Key used in BYOK process. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Immutable - - Sets the release policy as immutable state. Once marked immutable, this flag cannot be reset and the policy cannot be changed under any circumstances. - - - System.Management.Automation.SwitchParameter - - - False - - - KeyOps - - The operations that can be performed with the key. If not specified, the existing key operations of the key remain unchanged. - - System.String[] - - System.String[] - - - None - - - NotBefore - - The UTC time before which key can't be used. If not specified, the existing NotBefore attribute of the key remains unchanged. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - PassThru - - Cmdlet does not return an object by default. If this switch is specified, returns the updated key bundle object. - - - System.Management.Automation.SwitchParameter - - - False - - - ReleasePolicyPath - - A path to a file containing JSON policy definition. The policy rules under which a key can be exported. - - System.String - - System.String - - - None - - - Tag - - A hashtable represents key tags. If not specified, the existings tags of the key remain unchanged. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzKeyVaultKey - - InputObject - - Key object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - None - - - Version - - Key version. Cmdlet constructs the FQDN of a key from vault name, currently selected environment, key name and key version. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Enable - - Value of true enables the key and a value of false disabless the key. If not specified, the existing enabled/disabled state remains unchanged. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - Expires - - The expiration time of a key in UTC time. If not specified, the existing expiration time of the key remains unchanged. Please notice that expirys is ignored for Key Exchange Key used in BYOK process. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - KeyOps - - The operations that can be performed with the key. If not specified, the existing key operations of the key remain unchanged. - - System.String[] - - System.String[] - - - None - - - NotBefore - - The UTC time before which key can't be used. If not specified, the existing NotBefore attribute of the key remains unchanged. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - PassThru - - Cmdlet does not return an object by default. If this switch is specified, returns the updated key bundle object. - - - System.Management.Automation.SwitchParameter - - - False - - - Tag - - A hashtable represents key tags. If not specified, the existings tags of the key remain unchanged. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzKeyVaultKey - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Name - - Key name. Cmdlet constructs the FQDN of a key from vault name, currently selected environment and key name. - - System.String - - System.String - - - None - - - Version - - Key version. Cmdlet constructs the FQDN of a key from vault name, currently selected environment, key name and key version. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Enable - - Value of true enables the key and a value of false disabless the key. If not specified, the existing enabled/disabled state remains unchanged. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - Expires - - The expiration time of a key in UTC time. If not specified, the existing expiration time of the key remains unchanged. Please notice that expirys is ignored for Key Exchange Key used in BYOK process. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - KeyOps - - The operations that can be performed with the key. If not specified, the existing key operations of the key remain unchanged. - - System.String[] - - System.String[] - - - None - - - NotBefore - - The UTC time before which key can't be used. If not specified, the existing NotBefore attribute of the key remains unchanged. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - PassThru - - Cmdlet does not return an object by default. If this switch is specified, returns the updated key bundle object. - - - System.Management.Automation.SwitchParameter - - - False - - - Tag - - A hashtable represents key tags. If not specified, the existings tags of the key remain unchanged. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Enable - - Value of true enables the key and a value of false disabless the key. If not specified, the existing enabled/disabled state remains unchanged. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - Expires - - The expiration time of a key in UTC time. If not specified, the existing expiration time of the key remains unchanged. Please notice that expirys is ignored for Key Exchange Key used in BYOK process. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Immutable - - Sets the release policy as immutable state. Once marked immutable, this flag cannot be reset and the policy cannot be changed under any circumstances. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Key object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - None - - - KeyOps - - The operations that can be performed with the key. If not specified, the existing key operations of the key remain unchanged. - - System.String[] - - System.String[] - - - None - - - Name - - Key name. Cmdlet constructs the FQDN of a key from vault name, currently selected environment and key name. - - System.String - - System.String - - - None - - - NotBefore - - The UTC time before which key can't be used. If not specified, the existing NotBefore attribute of the key remains unchanged. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - PassThru - - Cmdlet does not return an object by default. If this switch is specified, returns the updated key bundle object. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ReleasePolicyPath - - A path to a file containing JSON policy definition. The policy rules under which a key can be exported. - - System.String - - System.String - - - None - - - Tag - - A hashtable represents key tags. If not specified, the existings tags of the key remain unchanged. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Version - - Key version. Cmdlet constructs the FQDN of a key from vault name, currently selected environment, key name and key version. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKey - - - - - - - - - - - - - - Example 1: Modify a key to enable it, and set the expiration date and tags - $Expires = (Get-Date).AddYears(2).ToUniversalTime() -$Tags = @{'Severity' = 'high'; 'Accounting' = 'true'} -Update-AzKeyVaultKey -VaultName 'Contoso' -Name 'ITSoftware' -Expires $Expires -Enable $True -Tag $Tags -PassThru - -Vault Name : Contoso -Name : ITSoftware -Version : 394f9379a47a4e2086585468de6c7ae5 -Id : https://Contoso.vault.azure.net:443/keys/ITSoftware/394f9379a47a4e2086585468de6c7ae5 -Enabled : True -Expires : 5/25/2020 7:58:07 PM -Not Before : -Created : 4/6/2018 11:31:36 PM -Updated : 5/25/2018 7:59:02 PM -Purge Disabled : False -Tags : Name Value - Severity high - Accounting true - - The first command creates a DateTime object by using the Get-Date cmdlet. That object specifies a time two years in the future. The command stores that date in the $Expires variable. For more information, type `Get-Help Get-Date`. The second command creates a variable to store tag values of high severity and Accounting. The final command modifies a key named ITSoftware. The command enables the key, sets its expiration time to the time stored in $Expires, and sets the tags that are stored in $Tags. - - - - - - ---------- Example 2: Modify a key to delete all tags ---------- - Update-AzKeyVaultKey -VaultName 'Contoso' -Name 'ITSoftware' -Version '394f9379a47a4e2086585468de6c7ae5' -Tag @{} - -Vault Name : Contoso -Name : ITSoftware -Version : 394f9379a47a4e2086585468de6c7ae5 -Id : https://Contoso.vault.azure.net:443/keys/ITSoftware/394f9379a47a4e2086585468de6c7ae5 -Enabled : True -Expires : 5/25/2020 7:58:07 PM -Not Before : -Created : 4/6/2018 11:31:36 PM -Updated : 5/25/2018 8:00:08 PM -Purge Disabled : False -Tags : - - This commands deletes all tags for a specific version of a key named ITSoftware. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/update-azkeyvaultkey - - - - - - Update-AzKeyVaultManagedHsm - Update - AzKeyVaultManagedHsm - - Update the state of an Azure managed HSM. - - - - This cmdlet updates the state of an Azure managed HSM. - - - - Update-AzKeyVaultManagedHsm - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnablePurgeProtection - - specifying whether protection against purge is enabled for this managed HSM pool. The setting is effective only if soft delete is also enabled. Enabling this functionality is irreversible. - - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Managed HSM object. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - PublicNetworkAccess - - Controls permission for data plane traffic coming from public networks while private endpoint is enabled. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - A hash table which represents resource tags. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UserAssignedIdentity - - The set of user assigned identities associated with the managed HSM. Its value will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzKeyVaultManagedHsm - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnablePurgeProtection - - specifying whether protection against purge is enabled for this managed HSM pool. The setting is effective only if soft delete is also enabled. Enabling this functionality is irreversible. - - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Name of the managed HSM. - - System.String - - System.String - - - None - - - PublicNetworkAccess - - Controls permission for data plane traffic coming from public networks while private endpoint is enabled. - - System.String - - System.String - - - None - - - ResourceGroupName - - Name of the resource group. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - A hash table which represents resource tags. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UserAssignedIdentity - - The set of user assigned identities associated with the managed HSM. Its value will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzKeyVaultManagedHsm - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnablePurgeProtection - - specifying whether protection against purge is enabled for this managed HSM pool. The setting is effective only if soft delete is also enabled. Enabling this functionality is irreversible. - - - System.Management.Automation.SwitchParameter - - - False - - - PublicNetworkAccess - - Controls permission for data plane traffic coming from public networks while private endpoint is enabled. - - System.String - - System.String - - - None - - - ResourceId - - Resource ID of the managed HSM. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - A hash table which represents resource tags. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UserAssignedIdentity - - The set of user assigned identities associated with the managed HSM. Its value will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnablePurgeProtection - - specifying whether protection against purge is enabled for this managed HSM pool. The setting is effective only if soft delete is also enabled. Enabling this functionality is irreversible. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Managed HSM object. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - Name - - Name of the managed HSM. - - System.String - - System.String - - - None - - - PublicNetworkAccess - - Controls permission for data plane traffic coming from public networks while private endpoint is enabled. - - System.String - - System.String - - - None - - - ResourceGroupName - - Name of the resource group. - - System.String - - System.String - - - None - - - ResourceId - - Resource ID of the managed HSM. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - A hash table which represents resource tags. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UserAssignedIdentity - - The set of user assigned identities associated with the managed HSM. Its value will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - - - - - - System.String - - - - - - - - System.Collections.Hashtable - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - - - - - - - - - - - - ----------- Example 1: Update a managed Hsm directly ----------- - Update-AzKeyVaultManagedHsm -Name $hsmName -ResourceGroupName $resourceGroupName -Tag @{testKey="testValue"} | Format-List - -Managed HSM Name : testmhsm -Resource Group Name : testmhsm -Location : eastus2euap -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testmhsm/provid - ers/Microsoft.KeyVault/managedHSMs/testmhsm -HSM Pool URI : -Tenant ID : xxxxxx-xxxx-xxxx-xxxxxxxxxxxx -Initial Admin Object Ids : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -SKU : StandardB1 -Soft Delete Enabled? : True -Enabled Purge Protection? : False -Soft Delete Retention Period (days) : 90 -Provisioning State : Provisioning -Status Message : Resource creation in progress. Starting service... -Tags : - Name Value - ==== ===== - testKey testValued - - Updates tags for the managed Hsm named `$hsmName` in resource group `$resourceGroupName`. - - - - - - --------- Example 2: Update a managed Hsm using piping --------- - Get-AzKeyVaultManagedHsm -Name $hsmName -ResourceGroupName $resourceGroupName | Update-AzKeyVaultManagedHsm -Tag @{testKey="testValue"} - - Updates tags for the managed Hsm using piping syntax. - - - - - - ----- Example 3: Enable purge protection for a managed Hsm ----- - Update-AzKeyVaultManagedHsm -Name $hsmName -ResourceGroupName $resourceGroupName -EnablePurgeProtection | Format-List - -Managed HSM Name : testmhsm -Resource Group Name : test-rg -Location : eastus -Resource ID : /subscriptions/xxxxxx71-1bf0-4dda-aec3-xxxxxxxxxxxx/resourceGroups/test-rg/provide - rs/Microsoft.KeyVault/managedHSMs/testmhsm -HSM Pool URI : -Tenant ID : 54xxxxxx-38d6-4fb2-bad9-xxxxxxxxxxxx -Initial Admin Object Ids : {xxxxxx9e-5be9-4f43-abd2-xxxxxxxxxxxx} -SKU : StandardB1 -Soft Delete Enabled? : True -Enabled Purge Protection? : True -Soft Delete Retention Period (days) : 70 -Provisioning State : Succeeded -Status Message : The Managed HSM is provisioned and ready to use. -Tags : - - Enables purge protection for the managed Hsm named `$hsmName` in resource group `$resourceGroupName`. - - - - - - -- Example 4: Update user assigned identity for a managed Hsm -- - Update-AzKeyVaultManagedHsm -Name testmhsm -ResourceGroupName test-rg -UserAssignedIdentity /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/bez-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/bez-id02 | Format-List - -Managed HSM Name : testmshm -Resource Group Name : test-rg -Location : eastus2euap -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/test-rg/pro - viders/Microsoft.KeyVault/managedHSMs/testmhsm -HSM Pool URI : -Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -Initial Admin Object Ids : {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} -SKU : StandardB1 -Soft Delete Enabled? : True -Enabled Purge Protection? : False -Soft Delete Retention Period (days) : 70 -Public Network Access : Enabled -IdentityType : UserAssigned -UserAssignedIdentities : /subscriptions/xxxx/resourceGroups/xxxx/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identityName -Provisioning State : Succeeded -Status Message : The Managed HSM is provisioned and ready to use. -Security Domain ActivationStatus : Active -Security Domain ActivationStatusMessage : Your HSM has been activated and can be used for cryptographic operations. -Regions : -Tags - - This command adds an user assigned identity for the managed Hsm named `testmshm` in resource group `test-rg`. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/update-azkeyvaultmanagedhsm - - - New-AzKeyVaultManagedHsm - - - - Remove-AzKeyVaultManagedHsm - - - - Get-AzKeyVaultManagedHsm - - - - Undo-AzKeyVaultManagedHsmRemoval - - - - - - - Update-AzKeyVaultManagedStorageAccount - Update - AzKeyVaultManagedStorageAccount - - Update editable attributes of a Key Vault managed Azure Storage Account. - - - - Update the editable attributes of a Key Vault managed Azure Storage Account. - - - - Update-AzKeyVaultManagedStorageAccount - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - AccountName - - Key Vault managed storage account name. Cmdlet constructs the FQDN of a managed storage account name from vault name, currently selected environment and manged storage account name. - - System.String - - System.String - - - None - - - ActiveKeyName - - Active key name. If not specified, the existing value of managed storage account's active key name remains unchanged - - System.String - - System.String - - - None - - - AutoRegenerateKey - - Auto regenerate key. If not specified, the existing value of auto regenerate key of managed storage account remains unchanged - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Enable - - If present, enables a use of a managed storage account key for sas token generation if value is true. Disables use of a managed storage account key for sas token generation if value is false. If not specified, the existing value of the storage account's enabled/disabled state remains unchanged. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - PassThru - - Cmdlet does not return object by default. If this switch is specified, return managed storage account object. - - - System.Management.Automation.SwitchParameter - - - False - - - RegenerationPeriod - - Regeneration period. If auto regenerate key is enabled, this value specifies the timespan after which managed storage account's inactive keygets auto regenerated and becomes the active key. If not specified, the existing value of regeneration period of keys of managed storage account remains unchanged - - System.Nullable`1[System.TimeSpan] - - System.Nullable`1[System.TimeSpan] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzKeyVaultManagedStorageAccount - - InputObject - - ManagedStorageAccount object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - None - - - ActiveKeyName - - Active key name. If not specified, the existing value of managed storage account's active key name remains unchanged - - System.String - - System.String - - - None - - - AutoRegenerateKey - - Auto regenerate key. If not specified, the existing value of auto regenerate key of managed storage account remains unchanged - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Enable - - If present, enables a use of a managed storage account key for sas token generation if value is true. Disables use of a managed storage account key for sas token generation if value is false. If not specified, the existing value of the storage account's enabled/disabled state remains unchanged. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - PassThru - - Cmdlet does not return object by default. If this switch is specified, return managed storage account object. - - - System.Management.Automation.SwitchParameter - - - False - - - RegenerationPeriod - - Regeneration period. If auto regenerate key is enabled, this value specifies the timespan after which managed storage account's inactive keygets auto regenerated and becomes the active key. If not specified, the existing value of regeneration period of keys of managed storage account remains unchanged - - System.Nullable`1[System.TimeSpan] - - System.Nullable`1[System.TimeSpan] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AccountName - - Key Vault managed storage account name. Cmdlet constructs the FQDN of a managed storage account name from vault name, currently selected environment and manged storage account name. - - System.String - - System.String - - - None - - - ActiveKeyName - - Active key name. If not specified, the existing value of managed storage account's active key name remains unchanged - - System.String - - System.String - - - None - - - AutoRegenerateKey - - Auto regenerate key. If not specified, the existing value of auto regenerate key of managed storage account remains unchanged - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Enable - - If present, enables a use of a managed storage account key for sas token generation if value is true. Disables use of a managed storage account key for sas token generation if value is false. If not specified, the existing value of the storage account's enabled/disabled state remains unchanged. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - InputObject - - ManagedStorageAccount object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - None - - - PassThru - - Cmdlet does not return object by default. If this switch is specified, return managed storage account object. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - RegenerationPeriod - - Regeneration period. If auto regenerate key is enabled, this value specifies the timespan after which managed storage account's inactive keygets auto regenerated and becomes the active key. If not specified, the existing value of regeneration period of keys of managed storage account remains unchanged - - System.Nullable`1[System.TimeSpan] - - System.Nullable`1[System.TimeSpan] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccount - - - - - - - - - - - - - - Example 1: Update the active key to 'key2' on a Key Vault managed Azure Storage Account. - Update-AzKeyVaultManagedStorageAccount -VaultName 'myvault' -AccountName 'mystorageaccount' -ActiveKeyName 'key2' - -Id : https://myvault.vault.azure.net:443/storage/mystorageaccount -Vault Name : myvault -AccountName : mystorageaccount -Account Resource Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers/Microsoft.St - orage/storageAccounts/mystorageaccount -Active Key Name : key2 -Auto Regenerate Key : True -Regeneration Period : 90.00:00:00 -Enabled : True -Created : 5/21/2018 11:55:58 PM -Updated : 5/21/2018 11:55:58 PM -Tags : - - Updates the Key Vault managed Azure Storage Account active key to 'key2'. 'key2' will be used to generate SAS tokens after this update. - - - - - - -------------------------- Example 2 -------------------------- - Update-AzKeyVaultManagedStorageAccount -AccountName 'mystorageaccount' -AutoRegenerateKey $false -RegenerationPeriod $regenerationPeriod -VaultName 'myvault' - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/update-azkeyvaultmanagedstorageaccount - - - Az.KeyVault - - - - - - - Update-AzKeyVaultManagedStorageAccountKey - Update - AzKeyVaultManagedStorageAccountKey - - Regenerates the specified key of Key Vault managed Azure Storage Account. - - - - Regenerates the specified key of Key Vault managed Azure Storage Account and sets the key as the active key. Key Vault proxies the call to Azure Resource Manager to regenerate the key. The caller must posses permissions to regenerate keys on given Azure Storage Account. - - - - Update-AzKeyVaultManagedStorageAccountKey - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - AccountName - - Key Vault managed storage account name. Cmdlet constructs the FQDN of a managed storage account name from vault name, currently selected environment and manged storage account name. - - System.String - - System.String - - - None - - - KeyName - - Name of storage account key to regenerate and make active. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Do not ask for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Cmdlet does not return an object by default. If this switch is specified, cmdlet returns the managed storage account that was deleted. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzKeyVaultManagedStorageAccountKey - - InputObject - - ManagedStorageAccount object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - None - - - KeyName - - Name of storage account key to regenerate and make active. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Do not ask for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Cmdlet does not return an object by default. If this switch is specified, cmdlet returns the managed storage account that was deleted. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AccountName - - Key Vault managed storage account name. Cmdlet constructs the FQDN of a managed storage account name from vault name, currently selected environment and manged storage account name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Do not ask for confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - ManagedStorageAccount object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - None - - - KeyName - - Name of storage account key to regenerate and make active. - - System.String - - System.String - - - None - - - PassThru - - Cmdlet does not return an object by default. If this switch is specified, cmdlet returns the managed storage account that was deleted. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccount - - - - - - - - - - - - - - ----------------- Example 1: Regenerate a key ----------------- - Update-AzKeyVaultManagedStorageAccountKey -VaultName 'myvault' -AccountName 'mystorageaccount' -KeyName 'key1' - -Id : https://myvault.vault.azure.net:443/storage/mystorageaccount -Vault Name : myvault -AccountName : mystorageaccount -Account Resource Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers/Microsoft.St - orage/storageAccounts/mystorageaccount -Active Key Name : key1 -Auto Regenerate Key : True -Regeneration Period : 90.00:00:00 -Enabled : True -Created : 5/21/2018 11:55:58 PM -Updated : 5/21/2018 11:55:58 PM -Tags : - - Regenerates 'key1' of account 'mystorageaccount' and sets 'key1' as the active of the Key Vault managed Azure Storage Account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/update-azkeyvaultmanagedstorageaccountkey - - - Azure Key Vault PowerShell cmdlets - - - - - - - Update-AzKeyVaultNetworkRuleSet - Update - AzKeyVaultNetworkRuleSet - - Updates the network rule set on a key vault. - - - - The Update-AzKeyVaultNetworkRuleSet command updates the network rules in effect on the specified key vault. - - - - Update-AzKeyVaultNetworkRuleSet - - InputObject - - KeyVault object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - Bypass - - Specifies bypass of network rule. - - - None - AzureServices - - System.Nullable`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleBypassEnum] - - System.Nullable`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleBypassEnum] - - - None - - - DefaultAction - - Specifies default action of network rule. - - - Allow - Deny - - System.Nullable`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleDefaultActionEnum] - - System.Nullable`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleDefaultActionEnum] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IpAddressRange - - Specifies allowed network IP address range of network rule. - - System.String[] - - System.String[] - - - None - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns the updated key vault object. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - VirtualNetworkResourceId - - Specifies allowed virtual network resource identifier of network rule. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzKeyVaultNetworkRuleSet - - VaultName - - Specifies the name of a key vault whose network rule is being modified. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the resource group associated with the key vault whose network rule is being modified. - - System.String - - System.String - - - None - - - Bypass - - Specifies bypass of network rule. - - - None - AzureServices - - System.Nullable`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleBypassEnum] - - System.Nullable`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleBypassEnum] - - - None - - - DefaultAction - - Specifies default action of network rule. - - - Allow - Deny - - System.Nullable`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleDefaultActionEnum] - - System.Nullable`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleDefaultActionEnum] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IpAddressRange - - Specifies allowed network IP address range of network rule. - - System.String[] - - System.String[] - - - None - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns the updated key vault object. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - VirtualNetworkResourceId - - Specifies allowed virtual network resource identifier of network rule. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzKeyVaultNetworkRuleSet - - ResourceId - - KeyVault Resource Id - - System.String - - System.String - - - None - - - Bypass - - Specifies bypass of network rule. - - - None - AzureServices - - System.Nullable`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleBypassEnum] - - System.Nullable`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleBypassEnum] - - - None - - - DefaultAction - - Specifies default action of network rule. - - - Allow - Deny - - System.Nullable`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleDefaultActionEnum] - - System.Nullable`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleDefaultActionEnum] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IpAddressRange - - Specifies allowed network IP address range of network rule. - - System.String[] - - System.String[] - - - None - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns the updated key vault object. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - VirtualNetworkResourceId - - Specifies allowed virtual network resource identifier of network rule. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Bypass - - Specifies bypass of network rule. - - System.Nullable`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleBypassEnum] - - System.Nullable`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleBypassEnum] - - - None - - - DefaultAction - - Specifies default action of network rule. - - System.Nullable`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleDefaultActionEnum] - - System.Nullable`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleDefaultActionEnum] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - KeyVault object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - IpAddressRange - - Specifies allowed network IP address range of network rule. - - System.String[] - - System.String[] - - - None - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns the updated key vault object. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Specifies the name of the resource group associated with the key vault whose network rule is being modified. - - System.String - - System.String - - - None - - - ResourceId - - KeyVault Resource Id - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - VaultName - - Specifies the name of a key vault whose network rule is being modified. - - System.String - - System.String - - - None - - - VirtualNetworkResourceId - - Specifies allowed virtual network resource identifier of network rule. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - System.Nullable`1[[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleDefaultActionEnum, Microsoft.Azure.PowerShell.Cmdlets.KeyVault, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] - - - - - - - - System.Nullable`1[[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleBypassEnum, Microsoft.Azure.PowerShell.Cmdlets.KeyVault, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - $frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix "10.0.1.0/24" -ServiceEndpoint Microsoft.KeyVault -$virtualNetwork = New-AzVirtualNetwork -Name myVNet -ResourceGroupName myRG -Location westus -AddressPrefix "10.0.0.0/16" -Subnet $frontendSubnet -$myNetworkResId = (Get-AzVirtualNetwork -Name myVNet -ResourceGroupName myRG).Subnets[0].Id -Update-AzKeyVaultNetworkRuleSet -VaultName 'myVault' -ResourceGroupName myRG -Bypass AzureServices -IpAddressRange "10.0.1.0/24" -VirtualNetworkResourceId $myNetworkResId -PassThru - -Vault Name : myVault -Resource Group Name : myRG -Location : West US -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers - /Microsoft.KeyVault/vaults/myvault -Vault URI : https://myvault.vault.azure.net/ -Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx -SKU : Standard -Enabled For Deployment? : False -Enabled For Template Deployment? : False -Enabled For Disk Encryption? : False -Soft Delete Enabled? : -Access Policies : - Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Object ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Application ID : - Display Name : User Name (username@microsoft.com) - Permissions to Keys : get, create, delete, list, update, - import, backup, restore, recover - Permissions to Secrets : get, list, set, delete, backup, - restore, recover - Permissions to Certificates : get, delete, list, create, import, - update, deleteissuers, getissuers, listissuers, managecontacts, manageissuers, - setissuers, recover, backup, restore - Permissions to (Key Vault Managed) Storage : delete, deletesas, get, getsas, list, - listsas, regeneratekey, set, setsas, update, recover, backup, restore - - -Network Rule Set : - Default Action : Allow - Bypass : AzureServices - IP Rules : 10.0.1.0/24 - Virtual Network Rules : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx- - xxxxxxxxxxxxx/resourcegroups/myrg/providers/microsoft.network/virtualnetworks/myvn - et/subnets/frontendsubnet - -Tags : - - This command updates the network ruleset on the vault named 'myVault' for the specified IP range and the virtual network, allowing bypassing of the network rule for Azure services. - - - - - - -------------------------- Example 2 -------------------------- - Update-AzKeyVaultNetworkRuleSet -DefaultAction Allow -VaultName 'myVault' - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/update-azkeyvaultnetworkruleset - - - - - - Update-AzKeyVaultSecret - Update - AzKeyVaultSecret - - Updates attributes of a secret in a key vault. - - - - The Update-AzKeyVaultSecret cmdlet updates editable attributes of a secret in a key vault. - - - - Update-AzKeyVaultSecret - - Id - - The URI of the KeyVault Secret. Please ensure it follows the format: `https://<vault-name>.vault.azure.net/secrets/<secret-name>/<version>` - - String - - String - - - None - - - Version - - Secret version. Cmdlet constructs the FQDN of a secret from vault name, currently selected environment, secret name and secret version. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - ContentType - - Secret's content type. If not specified, the existing value of the secret's content type remains unchanged. Remove the existing content type value by specifying an empty string. - - String - - String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Enable - - If present, enable a secret if value is true. Disable a secret if value is false. If not specified, the existing value of the secret's enabled/disabled state remains unchanged. - - Boolean - - Boolean - - - None - - - Expires - - The expiration time of a secret in UTC time. If not specified, the existing value of the secret's expiration time remains unchanged. - - DateTime - - DateTime - - - None - - - NotBefore - - The UTC time before which secret can't be used. If not specified, the existing value of the secret's NotBefore attribute remains unchanged. - - DateTime - - DateTime - - - None - - - PassThru - - Cmdlet does not return object by default. If this switch is specified, return Secret object. - - - SwitchParameter - - - False - - - Tag - - A hashtable representing secret tags. If not specified, the existing tags of the secret remain unchanged. Remove a tag by specifying an empty Hashtable. - - Hashtable - - Hashtable - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Update-AzKeyVaultSecret - - InputObject - - Secret object - - PSKeyVaultSecretIdentityItem - - PSKeyVaultSecretIdentityItem - - - None - - - Version - - Secret version. Cmdlet constructs the FQDN of a secret from vault name, currently selected environment, secret name and secret version. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - ContentType - - Secret's content type. If not specified, the existing value of the secret's content type remains unchanged. Remove the existing content type value by specifying an empty string. - - String - - String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Enable - - If present, enable a secret if value is true. Disable a secret if value is false. If not specified, the existing value of the secret's enabled/disabled state remains unchanged. - - Boolean - - Boolean - - - None - - - Expires - - The expiration time of a secret in UTC time. If not specified, the existing value of the secret's expiration time remains unchanged. - - DateTime - - DateTime - - - None - - - NotBefore - - The UTC time before which secret can't be used. If not specified, the existing value of the secret's NotBefore attribute remains unchanged. - - DateTime - - DateTime - - - None - - - PassThru - - Cmdlet does not return object by default. If this switch is specified, return Secret object. - - - SwitchParameter - - - False - - - Tag - - A hashtable representing secret tags. If not specified, the existing tags of the secret remain unchanged. Remove a tag by specifying an empty Hashtable. - - Hashtable - - Hashtable - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Update-AzKeyVaultSecret - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - String - - String - - - None - - - Name - - Secret name. Cmdlet constructs the FQDN of a secret from vault name, currently selected environment and secret name. - - String - - String - - - None - - - Version - - Secret version. Cmdlet constructs the FQDN of a secret from vault name, currently selected environment, secret name and secret version. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - ContentType - - Secret's content type. If not specified, the existing value of the secret's content type remains unchanged. Remove the existing content type value by specifying an empty string. - - String - - String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Enable - - If present, enable a secret if value is true. Disable a secret if value is false. If not specified, the existing value of the secret's enabled/disabled state remains unchanged. - - Boolean - - Boolean - - - None - - - Expires - - The expiration time of a secret in UTC time. If not specified, the existing value of the secret's expiration time remains unchanged. - - DateTime - - DateTime - - - None - - - NotBefore - - The UTC time before which secret can't be used. If not specified, the existing value of the secret's NotBefore attribute remains unchanged. - - DateTime - - DateTime - - - None - - - PassThru - - Cmdlet does not return object by default. If this switch is specified, return Secret object. - - - SwitchParameter - - - False - - - Tag - - A hashtable representing secret tags. If not specified, the existing tags of the secret remain unchanged. Remove a tag by specifying an empty Hashtable. - - Hashtable - - Hashtable - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - ContentType - - Secret's content type. If not specified, the existing value of the secret's content type remains unchanged. Remove the existing content type value by specifying an empty string. - - String - - String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Enable - - If present, enable a secret if value is true. Disable a secret if value is false. If not specified, the existing value of the secret's enabled/disabled state remains unchanged. - - Boolean - - Boolean - - - None - - - Expires - - The expiration time of a secret in UTC time. If not specified, the existing value of the secret's expiration time remains unchanged. - - DateTime - - DateTime - - - None - - - Id - - The URI of the KeyVault Secret. Please ensure it follows the format: `https://<vault-name>.vault.azure.net/secrets/<secret-name>/<version>` - - String - - String - - - None - - - InputObject - - Secret object - - PSKeyVaultSecretIdentityItem - - PSKeyVaultSecretIdentityItem - - - None - - - Name - - Secret name. Cmdlet constructs the FQDN of a secret from vault name, currently selected environment and secret name. - - String - - String - - - None - - - NotBefore - - The UTC time before which secret can't be used. If not specified, the existing value of the secret's NotBefore attribute remains unchanged. - - DateTime - - DateTime - - - None - - - PassThru - - Cmdlet does not return object by default. If this switch is specified, return Secret object. - - SwitchParameter - - SwitchParameter - - - False - - - Tag - - A hashtable representing secret tags. If not specified, the existing tags of the secret remain unchanged. Remove a tag by specifying an empty Hashtable. - - Hashtable - - Hashtable - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - String - - String - - - None - - - Version - - Secret version. Cmdlet constructs the FQDN of a secret from vault name, currently selected environment, secret name and secret version. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSecretIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSecret - - - - - - - - - - - - - - --------- Example 1: Modify the attributes of a secret --------- - $Expires = (Get-Date).AddYears(2).ToUniversalTime() -$Nbf = (Get-Date).ToUniversalTime() -$Tags = @{ 'Severity' = 'medium'; 'HR' = 'true'} -$ContentType= 'xml' -Update-AzKeyVaultSecret -VaultName 'ContosoVault' -Name 'HR' -Expires $Expires -NotBefore $Nbf -ContentType $ContentType -Enable $True -Tag $Tags -PassThru - -Vault Name : ContosoVault -Name : HR -Version : d476edfcd3544017a03bc49c1f3abec0 -Id : https://ContosoVault.vault.azure.net:443/secrets/HR/d476edfcd3544017a03bc49c1f3abec0 -Enabled : True -Expires : 5/25/2020 8:01:58 PM -Not Before : 5/25/2018 8:02:02 PM -Created : 4/11/2018 11:45:06 PM -Updated : 5/25/2018 8:02:45 PM -Content Type : xml -Tags : Name Value - Severity medium - HR true - - The first four commands define attributes for the expiry date, the NotBefore date, tags, and context type, and store the attributes in variables. The final command modifies the attributes for the secret named HR in the key vault named ContosoVault, using the stored variables. - - - - - - --- Example 2: Delete the tags and content type for a secret --- - Update-AzKeyVaultSecret -VaultName 'ContosoVault' -Name 'HR' -Version '9EEA45C6EE50490B9C3176A80AC1A0DF' -ContentType '' -Tag @{} - - This command deletes the tags and the content type for the specified version of the secret named HR in the key vault named Contoso. - - - - - - Example 3: Disable the current version of secrets whose name begins with IT - $Vault = 'ContosoVault' -$Prefix = 'IT' -Get-AzKeyVaultSecret $Vault | Where-Object {$_.Name -like $Prefix + '*'} | Update-AzKeyVaultSecret -Enable $False - - The first command stores the string value Contoso in the $Vault variable. The second command stores the string value IT in the $Prefix variable. The third command uses the Get-AzKeyVaultSecret cmdlet to get the secrets in the specified key vault, and then passes those secrets to the Where-Object cmdlet. The Where-Object cmdlet filters the secrets for names that begin with the characters IT. The command pipes the secrets that match the filter to the Update-AzKeyVaultSecret cmdlet, which disables them. - - - - - - - Example 4: Set the ContentType for all versions of a secret - - $VaultName = 'ContosoVault' -$Name = 'HR' -$ContentType = 'xml' -Get-AzKeyVaultKey -VaultName $VaultName -Name $Name -IncludeVersions | Update-AzKeyVaultSecret -ContentType $ContentType - - The first three commands define string variables to use for the VaultName , Name , and ContentType parameters. The fourth command uses the Get-AzKeyVaultKey cmdlet to get the specified keys, and pipes the keys to the Update-AzKeyVaultSecret cmdlet to set their content type to XML. - - - - - - Example 5: Delete the tags and content type for a secret (using Uri) - Update-AzKeyVaultSecret -Id 'https://ContosoVault.vault.azure.net:443/secrets/HR/9EEA45C6EE50490B9C3176A80AC1A0DF' -ContentType '' -Tag @{} - - This command deletes the tags and the content type for the specified version of the secret named HR in the key vault named Contoso. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/update-azkeyvaultsecret - - - - - - Update-AzKeyVaultSetting - Update - AzKeyVaultSetting - - Update specific setting associated with the managed HSM. - - - - The Update-AzKeyVaultSetting cmdlet updates key vault account settings. This cmdlet updates a specific key vault account setting. - - - - Update-AzKeyVaultSetting - - HsmId - - Hsm Resource Id. - - System.String - - System.String - - - None - - - Name - - Name of the setting. - - System.String - - System.String - - - None - - - Value - - Value of the setting. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Cmdlet does not return object by default. If this switch is specified, return Secret object. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzKeyVaultSetting - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - Name - - Name of the setting. - - System.String - - System.String - - - None - - - Value - - Value of the setting. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Cmdlet does not return object by default. If this switch is specified, return Secret object. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzKeyVaultSetting - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - InputObject - - The location of the deleted vault. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSetting - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSetting - - - None - - - Value - - Value of the setting. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Cmdlet does not return object by default. If this switch is specified, return Secret object. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzKeyVaultSetting - - HsmObject - - Hsm Object. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - Name - - Name of the setting. - - System.String - - System.String - - - None - - - Value - - Value of the setting. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Cmdlet does not return object by default. If this switch is specified, return Secret object. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmId - - Hsm Resource Id. - - System.String - - System.String - - - None - - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - HsmObject - - Hsm Object. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - InputObject - - The location of the deleted vault. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSetting - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSetting - - - None - - - Name - - Name of the setting. - - System.String - - System.String - - - None - - - PassThru - - Cmdlet does not return object by default. If this switch is specified, return Secret object. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Value - - Value of the setting. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSetting - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSetting - - - - - - - - - - - - - - ---- Example 1: Update a specific key vault account setting ---- - Update-AzKeyVaultSetting -HsmName testmhsm -Name AllowKeyManagementOperationsThroughARM -Value true -PassThru - -Name Value Type HSM Name ----- ----- ---- -------- -AllowKeyManagementOperationsThroughARM true boolean testmhsm - - Update a specific key vault account setting named `AllowKeyManagementOperationsThroughARM` in a Managed Hsm named `testmhsm`. - - - - - - Example 2: Update a specific key vault account setting same as another account setting - $setting = Get-AzKeyVaultSetting -HsmName testmhsm1 -Name AllowKeyManagementOperationsThroughARM -$setting | Update-AzKeyVaultSetting -HsmName testmhsm2 -PassThru - -Name Value Type HSM Name ----- ----- ---- -------- -AllowKeyManagementOperationsThroughARM true boolean testmhsm2 - - Update a specific key vault account setting named `AllowKeyManagementOperationsThroughARM` in a Managed Hsm named `testmhsm2` same with `testmhsm1`. - - - - - - Example 3: Update a specific key vault account setting via HsmObject - $hsmObject = Get-AzKeyVaultManagedHsm -Name testmhsm -Update-AzKeyVaultSetting -HsmObject $hsmObject -Name AllowKeyManagementOperationsThroughARM -Value true -PassThru - -Name Value Type HSM Name ----- ----- ---- -------- -AllowKeyManagementOperationsThroughARM true boolean testmhsm - - Update a specific key vault account setting named `AllowKeyManagementOperationsThroughARM` in a Managed Hsm named `testmhsm` via HsmObject. - - - - - - Example 4: Update a specific key vault account setting via HsmId - $hsmObject = Get-AzKeyVaultManagedHsm -Name testmhsm -Update-AzKeyVaultSetting -HsmId /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/managedHSMs/testmhsm-Name AllowKeyManagementOperationsThroughARM -Value true -PassThru - -Name Value Type HSM Name ----- ----- ---- -------- -AllowKeyManagementOperationsThroughARM true boolean testmhsm - - Update a specific key vault account setting named `AllowKeyManagementOperationsThroughARM` in a Managed Hsm named `testmhsm` via HsmObject. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/update-azkeyvaultsetting - - - Get-AzKeyVaultSetting - - - - - \ No newline at end of file diff --git a/Modules/Az.KeyVault/6.3.1/Microsoft.Azure.PowerShell.KeyVault.Management.Sdk.dll b/Modules/Az.KeyVault/6.3.1/Microsoft.Azure.PowerShell.KeyVault.Management.Sdk.dll deleted file mode 100644 index d4a22992eb53..000000000000 Binary files a/Modules/Az.KeyVault/6.3.1/Microsoft.Azure.PowerShell.KeyVault.Management.Sdk.dll and /dev/null differ diff --git a/Modules/Az.KeyVault/6.3.1/PSGetModuleInfo.xml b/Modules/Az.KeyVault/6.3.1/PSGetModuleInfo.xml deleted file mode 100644 index 53382a82510c..000000000000 --- a/Modules/Az.KeyVault/6.3.1/PSGetModuleInfo.xml +++ /dev/null @@ -1,323 +0,0 @@ - - - - Microsoft.PowerShell.Commands.PSRepositoryItemInfo - System.Management.Automation.PSCustomObject - System.Object - - - Az.KeyVault - 6.3.1 - Module - Microsoft Azure PowerShell - Key Vault service cmdlets for Azure Resource Manager in Windows PowerShell and PowerShell Core._x000D__x000A__x000D__x000A_For more information on Key Vault, please visit the following: https://learn.microsoft.com/azure/key-vault/ - Microsoft Corporation - azure-sdk - Microsoft Corporation. All rights reserved. -
2025-01-14T03:15:54-05:00
- - - https://aka.ms/azps-license - https://github.com/Azure/azure-powershell - - - - System.Object[] - System.Array - System.Object - - - Azure - ResourceManager - ARM - KeyVault - SecretManagement - PSModule - PSEdition_Core - PSEdition_Desktop - - - - - System.Collections.Hashtable - System.Object - - - - RoleCapability - - - - - - - Function - - - - Add-AzKeyVaultManagedHsmRegion - Get-AzKeyVaultManagedHsmRegion - Remove-AzKeyVaultManagedHsmRegion - Test-AzKeyVaultManagedHsmNameAvailability - Test-AzKeyVaultNameAvailability - - - - - Cmdlet - - - - Add-AzKeyVaultCertificate - Add-AzKeyVaultCertificateContact - Add-AzKeyVaultKey - Add-AzKeyVaultManagedStorageAccount - Add-AzKeyVaultNetworkRule - Backup-AzKeyVault - Backup-AzKeyVaultCertificate - Backup-AzKeyVaultKey - Backup-AzKeyVaultManagedStorageAccount - Backup-AzKeyVaultSecret - Export-AzKeyVaultSecurityDomain - Get-AzKeyVault - Get-AzKeyVaultCertificate - Get-AzKeyVaultCertificateContact - Get-AzKeyVaultCertificateIssuer - Get-AzKeyVaultCertificateOperation - Get-AzKeyVaultCertificatePolicy - Get-AzKeyVaultKey - Get-AzKeyVaultKeyRotationPolicy - Get-AzKeyVaultManagedHsm - Get-AzKeyVaultManagedStorageAccount - Get-AzKeyVaultManagedStorageSasDefinition - Get-AzKeyVaultRandomNumber - Get-AzKeyVaultRoleAssignment - Get-AzKeyVaultRoleDefinition - Get-AzKeyVaultSecret - Get-AzKeyVaultSetting - Import-AzKeyVaultCertificate - Import-AzKeyVaultSecurityDomain - Invoke-AzKeyVaultKeyOperation - Invoke-AzKeyVaultKeyRotation - New-AzKeyVault - New-AzKeyVaultCertificateAdministratorDetail - New-AzKeyVaultCertificateOrganizationDetail - New-AzKeyVaultCertificatePolicy - New-AzKeyVaultManagedHsm - New-AzKeyVaultNetworkRuleSetObject - New-AzKeyVaultRoleAssignment - New-AzKeyVaultRoleDefinition - Remove-AzKeyVault - Remove-AzKeyVaultAccessPolicy - Remove-AzKeyVaultCertificate - Remove-AzKeyVaultCertificateContact - Remove-AzKeyVaultCertificateIssuer - Remove-AzKeyVaultCertificateOperation - Remove-AzKeyVaultKey - Remove-AzKeyVaultManagedHsm - Remove-AzKeyVaultManagedStorageAccount - Remove-AzKeyVaultManagedStorageSasDefinition - Remove-AzKeyVaultNetworkRule - Remove-AzKeyVaultRoleAssignment - Remove-AzKeyVaultRoleDefinition - Remove-AzKeyVaultSecret - Restore-AzKeyVault - Restore-AzKeyVaultCertificate - Restore-AzKeyVaultKey - Restore-AzKeyVaultManagedStorageAccount - Restore-AzKeyVaultSecret - Set-AzKeyVaultAccessPolicy - Set-AzKeyVaultCertificateIssuer - Set-AzKeyVaultCertificatePolicy - Set-AzKeyVaultKeyRotationPolicy - Set-AzKeyVaultManagedStorageSasDefinition - Set-AzKeyVaultSecret - Stop-AzKeyVaultCertificateOperation - Undo-AzKeyVaultCertificateRemoval - Undo-AzKeyVaultKeyRemoval - Undo-AzKeyVaultManagedHsmRemoval - Undo-AzKeyVaultManagedStorageAccountRemoval - Undo-AzKeyVaultManagedStorageSasDefinitionRemoval - Undo-AzKeyVaultRemoval - Undo-AzKeyVaultSecretRemoval - Update-AzKeyVault - Update-AzKeyVaultCertificate - Update-AzKeyVaultKey - Update-AzKeyVaultManagedHsm - Update-AzKeyVaultManagedStorageAccount - Update-AzKeyVaultManagedStorageAccountKey - Update-AzKeyVaultNetworkRuleSet - Update-AzKeyVaultSecret - Update-AzKeyVaultSetting - - - - - DscResource - - - - Workflow - - - - Command - - - - Add-AzKeyVaultCertificate - Add-AzKeyVaultCertificateContact - Add-AzKeyVaultKey - Add-AzKeyVaultManagedStorageAccount - Add-AzKeyVaultNetworkRule - Backup-AzKeyVault - Backup-AzKeyVaultCertificate - Backup-AzKeyVaultKey - Backup-AzKeyVaultManagedStorageAccount - Backup-AzKeyVaultSecret - Export-AzKeyVaultSecurityDomain - Get-AzKeyVault - Get-AzKeyVaultCertificate - Get-AzKeyVaultCertificateContact - Get-AzKeyVaultCertificateIssuer - Get-AzKeyVaultCertificateOperation - Get-AzKeyVaultCertificatePolicy - Get-AzKeyVaultKey - Get-AzKeyVaultKeyRotationPolicy - Get-AzKeyVaultManagedHsm - Get-AzKeyVaultManagedStorageAccount - Get-AzKeyVaultManagedStorageSasDefinition - Get-AzKeyVaultRandomNumber - Get-AzKeyVaultRoleAssignment - Get-AzKeyVaultRoleDefinition - Get-AzKeyVaultSecret - Get-AzKeyVaultSetting - Import-AzKeyVaultCertificate - Import-AzKeyVaultSecurityDomain - Invoke-AzKeyVaultKeyOperation - Invoke-AzKeyVaultKeyRotation - New-AzKeyVault - New-AzKeyVaultCertificateAdministratorDetail - New-AzKeyVaultCertificateOrganizationDetail - New-AzKeyVaultCertificatePolicy - New-AzKeyVaultManagedHsm - New-AzKeyVaultNetworkRuleSetObject - New-AzKeyVaultRoleAssignment - New-AzKeyVaultRoleDefinition - Remove-AzKeyVault - Remove-AzKeyVaultAccessPolicy - Remove-AzKeyVaultCertificate - Remove-AzKeyVaultCertificateContact - Remove-AzKeyVaultCertificateIssuer - Remove-AzKeyVaultCertificateOperation - Remove-AzKeyVaultKey - Remove-AzKeyVaultManagedHsm - Remove-AzKeyVaultManagedStorageAccount - Remove-AzKeyVaultManagedStorageSasDefinition - Remove-AzKeyVaultNetworkRule - Remove-AzKeyVaultRoleAssignment - Remove-AzKeyVaultRoleDefinition - Remove-AzKeyVaultSecret - Restore-AzKeyVault - Restore-AzKeyVaultCertificate - Restore-AzKeyVaultKey - Restore-AzKeyVaultManagedStorageAccount - Restore-AzKeyVaultSecret - Set-AzKeyVaultAccessPolicy - Set-AzKeyVaultCertificateIssuer - Set-AzKeyVaultCertificatePolicy - Set-AzKeyVaultKeyRotationPolicy - Set-AzKeyVaultManagedStorageSasDefinition - Set-AzKeyVaultSecret - Stop-AzKeyVaultCertificateOperation - Undo-AzKeyVaultCertificateRemoval - Undo-AzKeyVaultKeyRemoval - Undo-AzKeyVaultManagedHsmRemoval - Undo-AzKeyVaultManagedStorageAccountRemoval - Undo-AzKeyVaultManagedStorageSasDefinitionRemoval - Undo-AzKeyVaultRemoval - Undo-AzKeyVaultSecretRemoval - Update-AzKeyVault - Update-AzKeyVaultCertificate - Update-AzKeyVaultKey - Update-AzKeyVaultManagedHsm - Update-AzKeyVaultManagedStorageAccount - Update-AzKeyVaultManagedStorageAccountKey - Update-AzKeyVaultNetworkRuleSet - Update-AzKeyVaultSecret - Update-AzKeyVaultSetting - Add-AzKeyVaultManagedHsmRegion - Get-AzKeyVaultManagedHsmRegion - Remove-AzKeyVaultManagedHsmRegion - Test-AzKeyVaultManagedHsmNameAvailability - Test-AzKeyVaultNameAvailability - - - - - - - * Upgraded nuget package to signed package._x000D__x000A_* Upgraded Azure.Core to 1.44.1. - - - - - - System.Collections.Specialized.OrderedDictionary - System.Object - - - - Name - Az.Accounts - - - MinimumVersion - 4.0.1 - - - CanonicalId - nuget:Az.Accounts/4.0.1 - - - - - - https://www.powershellgallery.com/api/v2 - PSGallery - NuGet - - - System.Management.Automation.PSCustomObject - System.Object - - - Microsoft Corporation. All rights reserved. - Microsoft Azure PowerShell - Key Vault service cmdlets for Azure Resource Manager in Windows PowerShell and PowerShell Core._x000D__x000A__x000D__x000A_For more information on Key Vault, please visit the following: https://learn.microsoft.com/azure/key-vault/ - True - * Upgraded nuget package to signed package._x000D__x000A_* Upgraded Azure.Core to 1.44.1. - True - True - 3374973 - 143464978 - 2962648 - 1/14/2025 3:15:54 AM -05:00 - 1/14/2025 3:15:54 AM -05:00 - 1/30/2025 5:40:00 PM -05:00 - Azure ResourceManager ARM KeyVault SecretManagement PSModule PSEdition_Core PSEdition_Desktop PSCmdlet_Add-AzKeyVaultCertificate PSCommand_Add-AzKeyVaultCertificate PSCmdlet_Add-AzKeyVaultCertificateContact PSCommand_Add-AzKeyVaultCertificateContact PSCmdlet_Add-AzKeyVaultKey PSCommand_Add-AzKeyVaultKey PSCmdlet_Add-AzKeyVaultManagedStorageAccount PSCommand_Add-AzKeyVaultManagedStorageAccount PSCmdlet_Add-AzKeyVaultNetworkRule PSCommand_Add-AzKeyVaultNetworkRule PSCmdlet_Backup-AzKeyVault PSCommand_Backup-AzKeyVault PSCmdlet_Backup-AzKeyVaultCertificate PSCommand_Backup-AzKeyVaultCertificate PSCmdlet_Backup-AzKeyVaultKey PSCommand_Backup-AzKeyVaultKey PSCmdlet_Backup-AzKeyVaultManagedStorageAccount PSCommand_Backup-AzKeyVaultManagedStorageAccount PSCmdlet_Backup-AzKeyVaultSecret PSCommand_Backup-AzKeyVaultSecret PSCmdlet_Export-AzKeyVaultSecurityDomain PSCommand_Export-AzKeyVaultSecurityDomain PSCmdlet_Get-AzKeyVault PSCommand_Get-AzKeyVault PSCmdlet_Get-AzKeyVaultCertificate PSCommand_Get-AzKeyVaultCertificate PSCmdlet_Get-AzKeyVaultCertificateContact PSCommand_Get-AzKeyVaultCertificateContact PSCmdlet_Get-AzKeyVaultCertificateIssuer PSCommand_Get-AzKeyVaultCertificateIssuer PSCmdlet_Get-AzKeyVaultCertificateOperation PSCommand_Get-AzKeyVaultCertificateOperation PSCmdlet_Get-AzKeyVaultCertificatePolicy PSCommand_Get-AzKeyVaultCertificatePolicy PSCmdlet_Get-AzKeyVaultKey PSCommand_Get-AzKeyVaultKey PSCmdlet_Get-AzKeyVaultKeyRotationPolicy PSCommand_Get-AzKeyVaultKeyRotationPolicy PSCmdlet_Get-AzKeyVaultManagedHsm PSCommand_Get-AzKeyVaultManagedHsm PSCmdlet_Get-AzKeyVaultManagedStorageAccount PSCommand_Get-AzKeyVaultManagedStorageAccount PSCmdlet_Get-AzKeyVaultManagedStorageSasDefinition PSCommand_Get-AzKeyVaultManagedStorageSasDefinition PSCmdlet_Get-AzKeyVaultRandomNumber PSCommand_Get-AzKeyVaultRandomNumber PSCmdlet_Get-AzKeyVaultRoleAssignment PSCommand_Get-AzKeyVaultRoleAssignment PSCmdlet_Get-AzKeyVaultRoleDefinition PSCommand_Get-AzKeyVaultRoleDefinition PSCmdlet_Get-AzKeyVaultSecret PSCommand_Get-AzKeyVaultSecret PSCmdlet_Get-AzKeyVaultSetting PSCommand_Get-AzKeyVaultSetting PSCmdlet_Import-AzKeyVaultCertificate PSCommand_Import-AzKeyVaultCertificate PSCmdlet_Import-AzKeyVaultSecurityDomain PSCommand_Import-AzKeyVaultSecurityDomain PSCmdlet_Invoke-AzKeyVaultKeyOperation PSCommand_Invoke-AzKeyVaultKeyOperation PSCmdlet_Invoke-AzKeyVaultKeyRotation PSCommand_Invoke-AzKeyVaultKeyRotation PSCmdlet_New-AzKeyVault PSCommand_New-AzKeyVault PSCmdlet_New-AzKeyVaultCertificateAdministratorDetail PSCommand_New-AzKeyVaultCertificateAdministratorDetail PSCmdlet_New-AzKeyVaultCertificateOrganizationDetail PSCommand_New-AzKeyVaultCertificateOrganizationDetail PSCmdlet_New-AzKeyVaultCertificatePolicy PSCommand_New-AzKeyVaultCertificatePolicy PSCmdlet_New-AzKeyVaultManagedHsm PSCommand_New-AzKeyVaultManagedHsm PSCmdlet_New-AzKeyVaultNetworkRuleSetObject PSCommand_New-AzKeyVaultNetworkRuleSetObject PSCmdlet_New-AzKeyVaultRoleAssignment PSCommand_New-AzKeyVaultRoleAssignment PSCmdlet_New-AzKeyVaultRoleDefinition PSCommand_New-AzKeyVaultRoleDefinition PSCmdlet_Remove-AzKeyVault PSCommand_Remove-AzKeyVault PSCmdlet_Remove-AzKeyVaultAccessPolicy PSCommand_Remove-AzKeyVaultAccessPolicy PSCmdlet_Remove-AzKeyVaultCertificate PSCommand_Remove-AzKeyVaultCertificate PSCmdlet_Remove-AzKeyVaultCertificateContact PSCommand_Remove-AzKeyVaultCertificateContact PSCmdlet_Remove-AzKeyVaultCertificateIssuer PSCommand_Remove-AzKeyVaultCertificateIssuer PSCmdlet_Remove-AzKeyVaultCertificateOperation PSCommand_Remove-AzKeyVaultCertificateOperation PSCmdlet_Remove-AzKeyVaultKey PSCommand_Remove-AzKeyVaultKey PSCmdlet_Remove-AzKeyVaultManagedHsm PSCommand_Remove-AzKeyVaultManagedHsm PSCmdlet_Remove-AzKeyVaultManagedStorageAccount PSCommand_Remove-AzKeyVaultManagedStorageAccount PSCmdlet_Remove-AzKeyVaultManagedStorageSasDefinition PSCommand_Remove-AzKeyVaultManagedStorageSasDefinition PSCmdlet_Remove-AzKeyVaultNetworkRule PSCommand_Remove-AzKeyVaultNetworkRule PSCmdlet_Remove-AzKeyVaultRoleAssignment PSCommand_Remove-AzKeyVaultRoleAssignment PSCmdlet_Remove-AzKeyVaultRoleDefinition PSCommand_Remove-AzKeyVaultRoleDefinition PSCmdlet_Remove-AzKeyVaultSecret PSCommand_Remove-AzKeyVaultSecret PSCmdlet_Restore-AzKeyVault PSCommand_Restore-AzKeyVault PSCmdlet_Restore-AzKeyVaultCertificate PSCommand_Restore-AzKeyVaultCertificate PSCmdlet_Restore-AzKeyVaultKey PSCommand_Restore-AzKeyVaultKey PSCmdlet_Restore-AzKeyVaultManagedStorageAccount PSCommand_Restore-AzKeyVaultManagedStorageAccount PSCmdlet_Restore-AzKeyVaultSecret PSCommand_Restore-AzKeyVaultSecret PSCmdlet_Set-AzKeyVaultAccessPolicy PSCommand_Set-AzKeyVaultAccessPolicy PSCmdlet_Set-AzKeyVaultCertificateIssuer PSCommand_Set-AzKeyVaultCertificateIssuer PSCmdlet_Set-AzKeyVaultCertificatePolicy PSCommand_Set-AzKeyVaultCertificatePolicy PSCmdlet_Set-AzKeyVaultKeyRotationPolicy PSCommand_Set-AzKeyVaultKeyRotationPolicy PSCmdlet_Set-AzKeyVaultManagedStorageSasDefinition PSCommand_Set-AzKeyVaultManagedStorageSasDefinition PSCmdlet_Set-AzKeyVaultSecret PSCommand_Set-AzKeyVaultSecret PSCmdlet_Stop-AzKeyVaultCertificateOperation PSCommand_Stop-AzKeyVaultCertificateOperation PSCmdlet_Undo-AzKeyVaultCertificateRemoval PSCommand_Undo-AzKeyVaultCertificateRemoval PSCmdlet_Undo-AzKeyVaultKeyRemoval PSCommand_Undo-AzKeyVaultKeyRemoval PSCmdlet_Undo-AzKeyVaultManagedHsmRemoval PSCommand_Undo-AzKeyVaultManagedHsmRemoval PSCmdlet_Undo-AzKeyVaultManagedStorageAccountRemoval PSCommand_Undo-AzKeyVaultManagedStorageAccountRemoval PSCmdlet_Undo-AzKeyVaultManagedStorageSasDefinitionRemoval PSCommand_Undo-AzKeyVaultManagedStorageSasDefinitionRemoval PSCmdlet_Undo-AzKeyVaultRemoval PSCommand_Undo-AzKeyVaultRemoval PSCmdlet_Undo-AzKeyVaultSecretRemoval PSCommand_Undo-AzKeyVaultSecretRemoval PSCmdlet_Update-AzKeyVault PSCommand_Update-AzKeyVault PSCmdlet_Update-AzKeyVaultCertificate PSCommand_Update-AzKeyVaultCertificate PSCmdlet_Update-AzKeyVaultKey PSCommand_Update-AzKeyVaultKey PSCmdlet_Update-AzKeyVaultManagedHsm PSCommand_Update-AzKeyVaultManagedHsm PSCmdlet_Update-AzKeyVaultManagedStorageAccount PSCommand_Update-AzKeyVaultManagedStorageAccount PSCmdlet_Update-AzKeyVaultManagedStorageAccountKey PSCommand_Update-AzKeyVaultManagedStorageAccountKey PSCmdlet_Update-AzKeyVaultNetworkRuleSet PSCommand_Update-AzKeyVaultNetworkRuleSet PSCmdlet_Update-AzKeyVaultSecret PSCommand_Update-AzKeyVaultSecret PSCmdlet_Update-AzKeyVaultSetting PSCommand_Update-AzKeyVaultSetting PSIncludes_Cmdlet PSFunction_Add-AzKeyVaultManagedHsmRegion PSCommand_Add-AzKeyVaultManagedHsmRegion PSFunction_Get-AzKeyVaultManagedHsmRegion PSCommand_Get-AzKeyVaultManagedHsmRegion PSFunction_Remove-AzKeyVaultManagedHsmRegion PSCommand_Remove-AzKeyVaultManagedHsmRegion PSFunction_Test-AzKeyVaultManagedHsmNameAvailability PSCommand_Test-AzKeyVaultManagedHsmNameAvailability PSFunction_Test-AzKeyVaultNameAvailability PSCommand_Test-AzKeyVaultNameAvailability PSIncludes_Function - False - 2025-01-30T17:40:00Z - 6.3.1 - Microsoft Corporation - false - Module - Az.KeyVault.nuspec|KeyVault.Autorest\utils\Unprotect-SecureString.ps1|Az.KeyVault.psm1|Azure.Security.KeyVault.Certificates.dll|BouncyCastle.Crypto.dll|keyvault.generated.format.ps1xml|Microsoft.Azure.KeyVault.WebKey.dll|Microsoft.Azure.PowerShell.Cmdlets.KeyVault.dll-Help.xml|Az.KeyVault.Extension\Az.KeyVault.Extension.psd1|KeyVault.Autorest\Az.KeyVault.format.ps1xml|KeyVault.Autorest\bin\Az.KeyVault.private.dll|KeyVault.Autorest\custom\Az.KeyVault.custom.psm1|KeyVault.Autorest\custom\ManagedHsm.json.cs|KeyVault.Autorest\exports\ProxyCmdletDefinitions.ps1|KeyVault.Autorest\internal\ProxyCmdletDefinitions.ps1|KeyVault.Autorest\utils\Get-SubscriptionIdTestSafe.ps1|Az.KeyVault.psd1|Azure.Security.KeyVault.Administration.dll|Azure.Security.KeyVault.Keys.dll|KeyVault.format.ps1xml|Microsoft.Azure.KeyVault.dll|Microsoft.Azure.PowerShell.Cmdlets.KeyVault.dll|Microsoft.Azure.PowerShell.KeyVault.Management.Sdk.dll|Az.KeyVault.Extension\Az.KeyVault.Extension.psm1|KeyVault.Autorest\Az.KeyVault.psm1|KeyVault.Autorest\custom\Add-AzKeyVaultManagedHsmRegion.ps1|KeyVault.Autorest\custom\Get-ParameterForRegion.cs|KeyVault.Autorest\custom\Remove-AzKeyVaultManagedHsmRegion.ps1|KeyVault.Autorest\internal\Az.KeyVault.internal.psm1|.signature.p7s - cd188042-f215-4657-adfe-c17ae28cf730 - 5.1 - 4.7.2 - Microsoft Corporation - - - C:\GitHub\CIPP Workspace\CIPP-API\Modules\Az.KeyVault\6.3.1 -
-
-
diff --git a/Modules/Az.KeyVault/6.3.1/keyvault.generated.format.ps1xml b/Modules/Az.KeyVault/6.3.1/keyvault.generated.format.ps1xml deleted file mode 100644 index f586ecd1de60..000000000000 --- a/Modules/Az.KeyVault/6.3.1/keyvault.generated.format.ps1xml +++ /dev/null @@ -1,248 +0,0 @@ - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyOperationResult - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyOperationResult - - - - - - - KeyId - - - - RawResult - - - - Algorithm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/Az.Storage/8.1.0/.signature.p7s b/Modules/Az.Storage/8.1.0/.signature.p7s deleted file mode 100644 index 13dfbd7d7057..000000000000 Binary files a/Modules/Az.Storage/8.1.0/.signature.p7s and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Az.Storage.psd1 b/Modules/Az.Storage/8.1.0/Az.Storage.psd1 deleted file mode 100644 index 47a92893ca13..000000000000 --- a/Modules/Az.Storage/8.1.0/Az.Storage.psd1 +++ /dev/null @@ -1,495 +0,0 @@ -# -# Module manifest for module 'Az.Storage' -# -# Generated by: Microsoft Corporation -# -# Generated on: 1/9/2025 -# - -@{ - -# Script module or binary module file associated with this manifest. -RootModule = 'Az.Storage.psm1' - -# Version number of this module. -ModuleVersion = '8.1.0' - -# Supported PSEditions -CompatiblePSEditions = 'Core', 'Desktop' - -# ID used to uniquely identify this module -GUID = 'dfa9e4ea-1407-446d-9111-79122977ab20' - -# Author of this module -Author = 'Microsoft Corporation' - -# Company or vendor of this module -CompanyName = 'Microsoft Corporation' - -# Copyright statement for this module -Copyright = 'Microsoft Corporation. All rights reserved.' - -# Description of the functionality provided by this module -Description = 'Microsoft Azure PowerShell - Storage service data plane and management cmdlets for Azure Resource Manager in Windows PowerShell and PowerShell Core. Creates and manages storage accounts in Azure Resource Manager. - -For more information on Storage, please visit the following: https://learn.microsoft.com/azure/storage/' - -# Minimum version of the PowerShell engine required by this module -PowerShellVersion = '5.1' - -# Name of the PowerShell host required by this module -# PowerShellHostName = '' - -# Minimum version of the PowerShell host required by this module -# PowerShellHostVersion = '' - -# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -DotNetFrameworkVersion = '4.7.2' - -# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -# ClrVersion = '' - -# Processor architecture (None, X86, Amd64) required by this module -# ProcessorArchitecture = '' - -# Modules that must be imported into the global environment prior to importing this module -RequiredModules = @() - -# Assemblies that must be loaded prior to importing this module -RequiredAssemblies = 'Azure.Data.Tables.dll', 'Azure.Storage.Blobs.dll', - 'Azure.Storage.Common.dll', 'Azure.Storage.Files.DataLake.dll', - 'Azure.Storage.Files.Shares.dll', 'Azure.Storage.Queues.dll', - 'Microsoft.Azure.Cosmos.Table.dll', - 'Microsoft.Azure.DocumentDB.Core.dll', - 'Microsoft.Azure.KeyVault.Core.dll', - 'Microsoft.Azure.PowerShell.Storage.Common.dll', - 'Microsoft.Azure.PowerShell.Storage.Management.Sdk.dll', - 'Microsoft.Azure.Storage.Blob.dll', - 'Microsoft.Azure.Storage.Common.dll', - 'Microsoft.Azure.Storage.DataMovement.dll', - 'Microsoft.Azure.Storage.File.dll', - 'Microsoft.Azure.Storage.Queue.dll', 'Microsoft.OData.Core.dll', - 'Microsoft.OData.Edm.dll', 'Microsoft.Spatial.dll', - 'Storage.Autorest/bin/Az.Storage.private.dll', - 'System.IO.Hashing.dll' - -# Script files (.ps1) that are run in the caller's environment prior to importing this module. -# ScriptsToProcess = @() - -# Type files (.ps1xml) to be loaded when importing this module -# TypesToProcess = @() - -# Format files (.ps1xml) to be loaded when importing this module -FormatsToProcess = 'Storage.Autorest/Az.Storage.format.ps1xml', - 'Storage.format.ps1xml', 'Storage.generated.format.ps1xml', - 'Storage.Management.format.ps1xml' - -# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess -NestedModules = @('Storage.Autorest/Az.Storage.psm1') - -# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. -FunctionsToExport = 'Get-AzStorageAccountMigration', 'Start-AzStorageAccountMigration' - -# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. -CmdletsToExport = 'Add-AzRmStorageContainerLegalHold', - 'Add-AzStorageAccountManagementPolicyAction', - 'Add-AzStorageAccountNetworkRule', 'Close-AzStorageFileHandle', - 'Copy-AzStorageBlob', 'Disable-AzStorageBlobDeleteRetentionPolicy', - 'Disable-AzStorageBlobLastAccessTimeTracking', - 'Disable-AzStorageBlobRestorePolicy', - 'Disable-AzStorageContainerDeleteRetentionPolicy', - 'Disable-AzStorageDeleteRetentionPolicy', - 'Disable-AzStorageStaticWebsite', - 'Enable-AzStorageBlobDeleteRetentionPolicy', - 'Enable-AzStorageBlobLastAccessTimeTracking', - 'Enable-AzStorageBlobRestorePolicy', - 'Enable-AzStorageContainerDeleteRetentionPolicy', - 'Enable-AzStorageDeleteRetentionPolicy', - 'Enable-AzStorageStaticWebsite', 'Get-AzDataLakeGen2ChildItem', - 'Get-AzDataLakeGen2DeletedItem', 'Get-AzDataLakeGen2Item', - 'Get-AzDataLakeGen2ItemContent', 'Get-AzRmStorageContainer', - 'Get-AzRmStorageContainerImmutabilityPolicy', - 'Get-AzRmStorageShare', 'Get-AzStorageAccount', - 'Get-AzStorageAccountKey', 'Get-AzStorageAccountManagementPolicy', - 'Get-AzStorageAccountNameAvailability', - 'Get-AzStorageAccountNetworkRuleSet', 'Get-AzStorageBlob', - 'Get-AzStorageBlobByTag', 'Get-AzStorageBlobContent', - 'Get-AzStorageBlobCopyState', 'Get-AzStorageBlobInventoryPolicy', - 'Get-AzStorageBlobQueryResult', 'Get-AzStorageBlobServiceProperty', - 'Get-AzStorageBlobTag', 'Get-AzStorageContainer', - 'Get-AzStorageContainerStoredAccessPolicy', 'Get-AzStorageCORSRule', - 'Get-AzStorageEncryptionScope', 'Get-AzStorageFile', - 'Get-AzStorageFileContent', 'Get-AzStorageFileCopyState', - 'Get-AzStorageFileHandle', 'Get-AzStorageFileServiceProperty', - 'Get-AzStorageLocalUser', 'Get-AzStorageLocalUserKey', - 'Get-AzStorageObjectReplicationPolicy', 'Get-AzStorageQueue', - 'Get-AzStorageQueueStoredAccessPolicy', - 'Get-AzStorageServiceLoggingProperty', - 'Get-AzStorageServiceMetricsProperty', - 'Get-AzStorageServiceProperty', 'Get-AzStorageShare', - 'Get-AzStorageShareStoredAccessPolicy', 'Get-AzStorageTable', - 'Get-AzStorageTableStoredAccessPolicy', 'Get-AzStorageUsage', - 'Invoke-AzRmStorageContainerImmutableStorageWithVersioningMigration', - 'Invoke-AzStorageAccountFailover', - 'Invoke-AzStorageAccountHierarchicalNamespaceUpgrade', - 'Lock-AzRmStorageContainerImmutabilityPolicy', - 'Move-AzDataLakeGen2Item', 'New-AzDataLakeGen2Item', - 'New-AzDataLakeGen2SasToken', 'New-AzRmStorageContainer', - 'New-AzRmStorageShare', 'New-AzStorageAccount', - 'New-AzStorageAccountKey', - 'New-AzStorageAccountManagementPolicyBlobIndexMatchObject', - 'New-AzStorageAccountManagementPolicyFilter', - 'New-AzStorageAccountManagementPolicyRule', - 'New-AzStorageAccountSASToken', - 'New-AzStorageBlobInventoryPolicyRule', - 'New-AzStorageBlobQueryConfig', 'New-AzStorageBlobRangeToRestore', - 'New-AzStorageBlobSASToken', 'New-AzStorageContainer', - 'New-AzStorageContainerSASToken', - 'New-AzStorageContainerStoredAccessPolicy', 'New-AzStorageContext', - 'New-AzStorageDirectory', 'New-AzStorageEncryptionScope', - 'New-AzStorageFileSASToken', - 'New-AzStorageLocalUserPermissionScope', - 'New-AzStorageLocalUserSshPassword', - 'New-AzStorageLocalUserSshPublicKey', - 'New-AzStorageObjectReplicationPolicyRule', 'New-AzStorageQueue', - 'New-AzStorageQueueSASToken', - 'New-AzStorageQueueStoredAccessPolicy', 'New-AzStorageShare', - 'New-AzStorageShareSASToken', - 'New-AzStorageShareStoredAccessPolicy', 'New-AzStorageTable', - 'New-AzStorageTableSASToken', - 'New-AzStorageTableStoredAccessPolicy', - 'Remove-AzDataLakeGen2AclRecursive', 'Remove-AzDataLakeGen2Item', - 'Remove-AzRmStorageContainer', - 'Remove-AzRmStorageContainerImmutabilityPolicy', - 'Remove-AzRmStorageContainerLegalHold', 'Remove-AzRmStorageShare', - 'Remove-AzStorageAccount', - 'Remove-AzStorageAccountManagementPolicy', - 'Remove-AzStorageAccountNetworkRule', 'Remove-AzStorageBlob', - 'Remove-AzStorageBlobImmutabilityPolicy', - 'Remove-AzStorageBlobInventoryPolicy', 'Remove-AzStorageContainer', - 'Remove-AzStorageContainerStoredAccessPolicy', - 'Remove-AzStorageCORSRule', 'Remove-AzStorageDirectory', - 'Remove-AzStorageFile', 'Remove-AzStorageLocalUser', - 'Remove-AzStorageObjectReplicationPolicy', 'Remove-AzStorageQueue', - 'Remove-AzStorageQueueStoredAccessPolicy', 'Remove-AzStorageShare', - 'Remove-AzStorageShareStoredAccessPolicy', 'Remove-AzStorageTable', - 'Remove-AzStorageTableStoredAccessPolicy', - 'Rename-AzStorageDirectory', 'Rename-AzStorageFile', - 'Restore-AzDataLakeGen2DeletedItem', 'Restore-AzRmStorageShare', - 'Restore-AzStorageBlobRange', 'Restore-AzStorageContainer', - 'Revoke-AzStorageAccountUserDelegationKeys', - 'Set-AzCurrentStorageAccount', 'Set-AzDataLakeGen2AclRecursive', - 'Set-AzDataLakeGen2ItemAclObject', - 'Set-AzRmStorageContainerImmutabilityPolicy', - 'Set-AzStorageAccount', 'Set-AzStorageAccountManagementPolicy', - 'Set-AzStorageBlobContent', 'Set-AzStorageBlobImmutabilityPolicy', - 'Set-AzStorageBlobInventoryPolicy', 'Set-AzStorageBlobLegalHold', - 'Set-AzStorageBlobTag', 'Set-AzStorageContainerAcl', - 'Set-AzStorageContainerStoredAccessPolicy', 'Set-AzStorageCORSRule', - 'Set-AzStorageFileContent', 'Set-AzStorageLocalUser', - 'Set-AzStorageObjectReplicationPolicy', - 'Set-AzStorageQueueStoredAccessPolicy', - 'Set-AzStorageServiceLoggingProperty', - 'Set-AzStorageServiceMetricsProperty', 'Set-AzStorageShareQuota', - 'Set-AzStorageShareStoredAccessPolicy', - 'Set-AzStorageTableStoredAccessPolicy', 'Start-AzStorageBlobCopy', - 'Start-AzStorageBlobIncrementalCopy', 'Start-AzStorageFileCopy', - 'Stop-AzStorageAccountHierarchicalNamespaceUpgrade', - 'Stop-AzStorageBlobCopy', 'Stop-AzStorageFileCopy', - 'Update-AzDataLakeGen2AclRecursive', 'Update-AzDataLakeGen2Item', - 'Update-AzRmStorageContainer', 'Update-AzRmStorageShare', - 'Update-AzStorageAccountNetworkRuleSet', - 'Update-AzStorageBlobServiceProperty', - 'Update-AzStorageEncryptionScope', - 'Update-AzStorageFileServiceProperty', - 'Update-AzStorageServiceProperty' - -# Variables to export from this module -# VariablesToExport = @() - -# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. -AliasesToExport = 'Disable-AzStorageSoftDelete', 'Enable-AzStorageSoftDelete', - 'Get-AzDatalakeGen2FileSystem', 'Get-AzStorageContainerAcl', - 'New-AzDatalakeGen2FileSystem', 'New-AzDataLakeGen2ItemAclObject', - 'Remove-AzDatalakeGen2FileSystem', 'Start-CopyAzureStorageBlob', - 'Stop-CopyAzureStorageBlob' - -# DSC resources to export from this module -# DscResourcesToExport = @() - -# List of all modules packaged with this module -ModuleList = @(@{ModuleName = 'Az.Accounts'; ModuleVersion = '4.0.1'; }) - -# List of all files packaged with this module -# FileList = @() - -# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. -PrivateData = @{ - - PSData = @{ - - # Tags applied to this module. These help with module discovery in online galleries. - Tags = 'Azure','ResourceManager','ARM','Storage','StorageAccount' - - # A URL to the license for this module. - LicenseUri = 'https://aka.ms/azps-license' - - # A URL to the main website for this project. - ProjectUri = 'https://github.com/Azure/azure-powershell' - - # A URL to an icon representing this module. - # IconUri = '' - - # ReleaseNotes of this module - ReleaseNotes = '* Upgraded nuget package to signed package. -* Added warning message for account migration cmdlet. - - ''Start-AzStorageAccountMigration'' -* Fixed error message when creating OAuth based Storage context without first login with Connect-AzAccount. - - ''New-AzStorageContext'' -* Upgraded Azure.Storage.Blobs to 12.23.0 -* Upgraded Azure.Storage.Files.Shares to 12.21.0 -* Upgraded Azure.Storage.Files.DataLake to 12.21.0 -* Upgraded Azure.Storage.Queues to 12.21.0 -* Supported ClientName property when listing file handles - - ''Get-AzStorageFileHandle'' -* Upgraded Azure.Core to 1.44.1.' - - # Prerelease string of this module - # Prerelease = '' - - # Flag to indicate whether the module requires explicit user acceptance for install/update/save - # RequireLicenseAcceptance = $false - - # External dependent modules of this module - # ExternalModuleDependencies = @() - - } # End of PSData hashtable - - } # End of PrivateData hashtable - -# HelpInfo URI of this module -# HelpInfoURI = '' - -# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. -# DefaultCommandPrefix = '' - -} - - -# SIG # Begin signature block -# MIIoQwYJKoZIhvcNAQcCoIIoNDCCKDACAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCdvhDU+kBf4iej -# Xj/yr8wlkwJG4s1Ad2IchMhiIuTBsaCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIMK2cx6POWJ7dDjjDd9geRpW -# +gN57X0gJteoVBQz5BtGMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEASYRjZ6WGPg2lwUU8ne9mQTgtRjgtKkEStYAiXRuWA/JaRVjd0RRE8uoS -# fmRvqtUvGGRLUnR+nww5VN+BI6s36nNwZ61lFkfuCvhfgiwipShKC4sESDZ2aSrw -# x6pLANuj6Fn83i9doqSeocoAKjjKsUHb2QuhxttkTF/4bXaQ7m01DRh/JcN2b7+g -# NEiZ9ivuPdBBuZeCDbCKHdypz6uVYbAOB6vAsF5F/yvQLxW4ICJphhVS3YeDnC9P -# VAeGknY/YIo5BdsWxPKp6snZ85hGL11LshXywZol21KTLN5Y9nVscwXZeaapzyfl -# 0A0AN6hKCCaJa6egdaJJ9I2x86cAYaGCF60wghepBgorBgEEAYI3AwMBMYIXmTCC -# F5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsq -# hkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCAqhL2h/GNc9/7kSqanOcb/4PRPuiBDP1X6+WV650Gu2wIGZ2L/yIYd -# GBMyMDI1MDEwOTA3MjEzOS4yMzNaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo2NTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB9ZkJlLzxxlCMAAEAAAH1MA0G -# CSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI0 -# MDcyNTE4MzEwMVoXDTI1MTAyMjE4MzEwMVowgdMxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9w -# ZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjY1MUEt -# MDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAzO90cFQTWd/WP84IT7JM -# IW1fQL61sdfgmhlfT0nvYEb2kvkNF073ZwjveuSWot387LjE0TCiG93e6I0HzIFQ -# BnbxGP/WPBUirFq7WE5RAsuhNfYUL+PIb9jJq3CwWxICfw5t/pTyIOHjKvo1lQOT -# WZypir/psZwEE7y2uWAPbZJTFrKen5R73x2Hbxy4eW1DcmXjym2wFWv10sBH40aj -# Jfe+OkwcTdoYrY3KkpN/RQSjeycK0bhjo0CGYIYa+ZMAao0SNR/R1J1Y6sLkiCJO -# 3aQrbS1Sz7l+/qJgy8fyEZMND5Ms7C0sEaOvoBHiWSpTM4vc0xDLCmc6PGv03CtW -# u2KiyqrL8BAB1EYyOShI3IT79arDIDrL+de91FfjmSbBY5j+HvS0l3dXkjP3Hon8 -# b74lWwikF0rzErF0n3khVAusx7Sm1oGG+06hz9XAy3Wou+T6Se6oa5LDiQgPTfWR -# /j9FNk8Ju06oSfTh6c03V0ulla0Iwy+HzUl+WmYxFLU0PiaXsmgudNwVqn51zr+B -# i3XPJ85wWuy6GGT7nBDmXNzTNkzK98DBQjTOabQXUZ884Yb9DFNcigmeVTYkyUXZ -# 6hscd8Nyq45A3D3bk+nXnsogK1Z7zZj6XbGft7xgOYvveU6p0+frthbF7MXv+i5q -# cD9HfFmOq4VYHevVesYb6P0CAwEAAaOCAUkwggFFMB0GA1UdDgQWBBRV4Hxb9Uo0 -# oHDwJZJe22ixe2B1ATAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBf -# BgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmww -# bAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29m -# dC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0El -# MjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUF -# BwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEAcwxmVPaA9xHf -# fuom0TOSp2hspuf1G0cHW/KXHAuhnpW8/Svlq5j9aKI/8/G6fGIQMr0zlpau8jy8 -# 3I4zclGdJjl5S02SxDlUKawtWvgf7ida06PgjeQM1eX4Lut4bbPfT0FEp77G76hh -# ysXxTJNHv5y+fwThUeiiclihZwqcZMpa46m+oV6igTU6I0EnneotMqFs0Q3zHgVV -# r4WXjnG2Bcnkip42edyg/9iXczqTBrEkvTz0UlltpFGaQnLzq+No8VEgq0UG7W1E -# LZGhmmxFmHABwTT6sPJFV68DfLoC0iB9Qbb9VZ8mvbTV5JtISBklTuVAlEkzXi9L -# IjNmx+kndBfKP8dxG/xbRXptQDQDaCsS6ogLkwLgH6zSs+ul9WmzI0F8zImbhnZh -# UziIHheFo4H+ZoojPYcgTK6/3bkSbOabmQFf95B8B6e5WqXbS5s9OdMdUlW1gTI1 -# r5u+WAwH2KG7dxneoTbf/jYl3TUtP7AHpyck2c0nun/Q0Cycpa9QUH/Dy01k6tQo -# mNXGjivg2/BGcgZJ0Hw8C6KVelEJ31xLoE21m9+NEgSKCRoFE1Lkma31SyIaynbd -# YEb8sOlZynMdm8yPldDwuF54vJiEArjrcDNXe6BobZUiTWSKvv1DJadR1SUCO/Od -# 21GgU+hZqu+dKgjKAYdeTIvi9R2rtLYwggdxMIIFWaADAgECAhMzAAAAFcXna54C -# m0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp -# Y2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMy -# MjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0B -# AQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51 -# yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY -# 6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9 -# cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN -# 7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDua -# Rr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74 -# kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2 -# K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5 -# TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZk -# i1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9Q -# BXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3Pmri -# Lq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUC -# BBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJl -# pxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIB -# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9y -# eS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUA -# YgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU -# 1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2Ny -# bC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIw -# MTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0w -# Ni0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/yp -# b+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulm -# ZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM -# 9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECW -# OKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4 -# FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3Uw -# xTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPX -# fx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVX -# VAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGC -# onsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU -# 5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEG -# ahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo2NTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUAJsAKu48NbR5YRg3WSBQCyjzdkvaggYMw -# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsF -# AAIFAOsp1Y4wIhgPMjAyNTAxMDkwNDU2NDZaGA8yMDI1MDExMDA0NTY0NlowdDA6 -# BgorBgEEAYRZCgQBMSwwKjAKAgUA6ynVjgIBADAHAgEAAgIv2DAHAgEAAgITKTAK -# AgUA6ysnDgIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIB -# AAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQBQZ+epogh9yozG -# UXovfC3VuYhp+q9eHXsbU/tJwdx7+bFn5T6uQT/6MJPWR7o6lYwustfEM0NLspeU -# imvngBIWtQbNrJpreDR9FiiwUn/Vyr0xLe9wulNHOPr+bqXRWk6PpLXo0fjZ2pUS -# cusPFs7wcRFLIaEdn7nuFhV62XsNsNm3V4OyAKEu6mkkIHx4X5Lrg80iKlN2BXYR -# GjRYP7Hb4TglhDJSPdDWxvhj+ndNbhc13Nm3zZd/DJqJgi5TYRK6BmUDOfZRiO2U -# CHB5CKvilGCspEfnlyBFjlPuUQhra/zOX2uuSzrHTcfwJ6b5vb7DmQVFde3aEtEM -# Vk3Z8ACgMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAH1mQmUvPHGUIwAAQAAAfUwDQYJYIZIAWUDBAIBBQCgggFKMBoGCSqG -# SIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgHT4HjH8544mJ -# l9CzlW/M4iRtECX2OhuzyV3kl5adVwcwgfoGCyqGSIb3DQEJEAIvMYHqMIHnMIHk -# MIG9BCDB1vLSFwh09ISu4kdEv4/tg9eR1Yk8w5x7j5GThqaPNTCBmDCBgKR+MHwx -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1p -# Y3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB9ZkJlLzxxlCMAAEAAAH1 -# MCIEIILkTWtto6jyoOiQmqv3k12cmyPChV3pUGKZ5kYF/vZ0MA0GCSqGSIb3DQEB -# CwUABIICAC93dforzSO6PdcCUN+y3ukTVJ2MlcYffT3GNzq+m4U4wq4phe0qSCZi -# sZKdksakCgm5iy20sNG7LDNqZuEnZOlpQvUveQF1nouGeo0CfUCu+df0kmK2wF9D -# 2ZMM8y1rJ24Wfw9Hgj+utja6YURPSBI7dD11rolgR1AWm+MVYIXH7iIksQNZ7P1k -# Rah+uqWP4ZQ13jqWAZ2nMebVihvzM7/Ogut8iNXKoDoXw+Ya7MNWtwWV2k00jWgG -# n+GGfAOVQ5zgp4TUR5fhl1FPkWNoyhwMd4N2WX33W/dgSuiS8/oBtHXi8H6wPVPC -# uQ8YWSt9wsOsO8O0+DSrgWo8VWvIh109Fek5bPAy0SMD9NALoxd1mzzIqh95Rs4L -# MwcER0TerBPLVxmTAmvOrsxVY3sC0wiL/lBaD7pZNW+eKLuujbJvVa3SLcx0BO4k -# MYdHMhhvuWfiuEvcz90d8cLPM5/HQa3vbWIvxl7xw5XeUDr88VHepl8/X78e1bdA -# 4ZV6p2VYKzR3N5c6EQcDmqAxVJ7Bqh5xG48mgfYXPkr9lv39xzkWPwwx7ItriZfs -# gVRABGRq3OGV89hFu/myMuDsEyMc64eolprblbCeesaLL3NBBWu04mg9jwT4BN2O -# R+4h/dNplsEg3ZhXrQ0st9thbY2J71oimeRKOsYlqdcCJBCT1NnL -# SIG # End signature block diff --git a/Modules/Az.Storage/8.1.0/Az.Storage.psm1 b/Modules/Az.Storage/8.1.0/Az.Storage.psm1 deleted file mode 100644 index b2592fb4a8df..000000000000 --- a/Modules/Az.Storage/8.1.0/Az.Storage.psm1 +++ /dev/null @@ -1,363 +0,0 @@ -# -# Script module for module 'Az.Storage' that is executed when 'Az.Storage' is imported in a PowerShell session. -# -# Generated by: Microsoft Corporation -# -# Generated on: 01/09/2025 06:21:00 -# - -$PSDefaultParameterValues.Clear() -Set-StrictMode -Version Latest - -function Test-DotNet -{ - try - { - if ((Get-PSDrive 'HKLM' -ErrorAction Ignore) -and (-not (Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\' -ErrorAction Stop | Get-ItemPropertyValue -ErrorAction Stop -Name Release | Where-Object { $_ -ge 461808 }))) - { - throw ".NET Framework versions lower than 4.7.2 are not supported in Az. Please upgrade to .NET Framework 4.7.2 or higher." - } - } - catch [System.Management.Automation.DriveNotFoundException] - { - Write-Verbose ".NET Framework version check failed." - } -} - -function Preload-Assembly { - param ( - [string] - $AssemblyDirectory - ) - if($PSEdition -eq 'Desktop' -and (Test-Path $AssemblyDirectory -ErrorAction Ignore)) - { - try - { - Get-ChildItem -ErrorAction Stop -Path $AssemblyDirectory -Filter "*.dll" | ForEach-Object { - try - { - Add-Type -Path $_.FullName -ErrorAction Ignore | Out-Null - } - catch { - Write-Verbose $_ - } - } - } - catch {} - } -} - -if ($true -and ($PSEdition -eq 'Desktop')) -{ - if ($PSVersionTable.PSVersion -lt [Version]'5.1') - { - throw "PowerShell versions lower than 5.1 are not supported in Az. Please upgrade to PowerShell 5.1 or higher." - } - - Test-DotNet -} - -if ($true -and ($PSEdition -eq 'Core')) -{ - if ($PSVersionTable.PSVersion -lt [Version]'6.2.4') - { - throw "Current Az version doesn't support PowerShell Core versions lower than 6.2.4. Please upgrade to PowerShell Core 6.2.4 or higher." - } -} - -if (Test-Path -Path "$PSScriptRoot\StartupScripts" -ErrorAction Ignore) -{ - Get-ChildItem "$PSScriptRoot\StartupScripts" -ErrorAction Stop | ForEach-Object { - . $_.FullName - } -} - -# [windows powershell] preload assemblies - - -# [windows powershell] preload module alc assemblies -$preloadPath = (Join-Path $PSScriptRoot -ChildPath "ModuleAlcAssemblies") -Preload-Assembly -AssemblyDirectory $preloadPath - -if (Get-Module AzureRM.profile -ErrorAction Ignore) -{ - Write-Warning ("AzureRM.Profile already loaded. Az and AzureRM modules cannot be imported in the same session or used in the same script or runbook. If you are running PowerShell in an environment you control you can use the 'Uninstall-AzureRm' cmdlet to remove all AzureRm modules from your machine. " + - "If you are running in Azure Automation, take care that none of your runbooks import both Az and AzureRM modules. More information can be found here: https://aka.ms/azps-migration-guide.") - throw ("AzureRM.Profile already loaded. Az and AzureRM modules cannot be imported in the same session or used in the same script or runbook. If you are running PowerShell in an environment you control you can use the 'Uninstall-AzureRm' cmdlet to remove all AzureRm modules from your machine. " + - "If you are running in Azure Automation, take care that none of your runbooks import both Az and AzureRM modules. More information can be found here: https://aka.ms/azps-migration-guide.") -} - -$module = Get-Module Az.Accounts - if ($module -ne $null -and $module.Version -lt [System.Version]"4.0.1") -{ - Write-Error "This module requires Az.Accounts version 4.0.1. An earlier version of Az.Accounts is imported in the current PowerShell session. Please open a new session before importing this module. This error could indicate that multiple incompatible versions of the Azure PowerShell cmdlets are installed on your system. Please see https://aka.ms/azps-version-error for troubleshooting information." -ErrorAction Stop -} -elseif ($module -eq $null) -{ - Import-Module Az.Accounts -MinimumVersion 4.0.1 -Scope Global -} -Import-Module (Join-Path -Path $PSScriptRoot -ChildPath Microsoft.Azure.PowerShell.Cmdlets.Storage.dll) -Import-Module (Join-Path -Path $PSScriptRoot -ChildPath Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll) - - -if (Test-Path -Path "$PSScriptRoot\PostImportScripts" -ErrorAction Ignore) -{ - Get-ChildItem "$PSScriptRoot\PostImportScripts" -ErrorAction Stop | ForEach-Object { - . $_.FullName - } -} - -$FilteredCommands = @('Add-AzStorageAccountNetworkRule:ResourceGroupName','Get-AzStorageAccountKey:ResourceGroupName','Get-AzStorageAccountNetworkRuleSet:ResourceGroupName','New-AzStorageAccount:ResourceGroupName','New-AzStorageAccountKey:ResourceGroupName','Remove-AzStorageAccount:ResourceGroupName','Remove-AzStorageAccountNetworkRule:ResourceGroupName','Set-AzStorageAccount:ResourceGroupName','Update-AzStorageAccountNetworkRuleSet:ResourceGroupName') - -if ($Env:ACC_CLOUD -eq $null) -{ - $FilteredCommands | ForEach-Object { - - $existingDefault = $false - foreach ($key in $global:PSDefaultParameterValues.Keys) - { - if ($_ -like "$key") - { - $existingDefault = $true - } - } - - if (!$existingDefault) - { - $global:PSDefaultParameterValues.Add($_, - { - if ((Get-Command Get-AzContext -ErrorAction Ignore) -eq $null) - { - $context = Get-AzureRmContext - } - else - { - $context = Get-AzContext - } - if (($context -ne $null) -and $context.ExtendedProperties.ContainsKey("Default Resource Group")) { - $context.ExtendedProperties["Default Resource Group"] - } - }) - } - } -} - - - -# SIG # Begin signature block -# MIIoLQYJKoZIhvcNAQcCoIIoHjCCKBoCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCehGpcDhHdtJbf -# FDG3JkfI5VqzgqNJiZjwD6iDWXs59KCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGg0wghoJAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIKSrgJm7vHQHiqt974hRQDs7 -# BcyeGPXjXC6wPO0U8zEnMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAQVUZ7uzoDVRK2T+uUfiknaCuU7dsXwZghpIKsTBewPmMBQKhS3XfMDjc -# jy96Q5NjmfOAJcN+A5NbrmZOzdyFx/qQdabAP/BXtt3DTWnQeKY67QWYPaW1yxx9 -# rsDQwh6ZxEqFDITvFz7bqRnXy9m5cBSQ+kvbIjMPq/O3TNp3wklg0reZJRmLBpwm -# Q+wfoVzXRrbRRxlMKmti7dtLHIQnR8/oZPSNdwPa0Loey+rlx+TnTxtxtBczqv31 -# qf5EC/wn9YW1lTJ9BrJUZNa9Ml+C14NucCBkev+v5LI8pRAHKXa5x0My0gNNn6eg -# 8JlI+eSFPbG4GyfrOLPB/1fGsJVy3KGCF5cwgheTBgorBgEEAYI3AwMBMYIXgzCC -# F38GCSqGSIb3DQEHAqCCF3AwghdsAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCACCMhcNeUenNeK3xR+doF3IMl2WfaAPMXHB+a8/jOkEgIGZ1rLW6EL -# GBMyMDI1MDEwOTA2MzY0Ny4yMDdaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTYwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHtMIIHIDCCBQigAwIBAgITMwAAAe+JP1ahWMyo2gABAAAB7zANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# NDhaFw0yNTAzMDUxODQ1NDhaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTYwMC0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQCjC1jinwzgHwhOakZqy17oE4BIBKsm5kX4DUmCBWI0 -# lFVpEiK5mZ2Kh59soL4ns52phFMQYGG5kypCipungwP9Nob4VGVE6aoMo5hZ9Nyt -# XR5ZRgb9Z8NR6EmLKICRhD4sojPMg/RnGRTcdf7/TYvyM10jLjmLyKEegMHfvIwP -# mM+AP7hzQLfExDdqCJ2u64Gd5XlnrFOku5U9jLOKk1y70c+Twt04/RLqruv1fGP8 -# LmYmtHvrB4TcBsADXSmcFjh0VgQkX4zXFwqnIG8rgY+zDqJYQNZP8O1Yo4kSckHT -# 43XC0oM40ye2+9l/rTYiDFM3nlZe2jhtOkGCO6GqiTp50xI9ITpJXi0vEek8AejT -# 4PKMEO2bPxU63p63uZbjdN5L+lgIcCNMCNI0SIopS4gaVR4Sy/IoDv1vDWpe+I28 -# /Ky8jWTeed0O3HxPJMZqX4QB3I6DnwZrHiKn6oE38tgBTCCAKvEoYOTg7r2lF0Iu -# bt/3+VPvKtTCUbZPFOG8jZt9q6AFodlvQntiolYIYtqSrLyXAQIlXGhZ4gNcv4dv -# 1YAilnbWA9CsnYh+OKEFr/4w4M69lI+yaoZ3L/t/UfXpT/+yc7hS/FolcmrGFJTB -# YlS4nE1cuKblwZ/UOG26SLhDONWXGZDKMJKN53oOLSSk4ldR0HlsbT4heLlWlOEl -# JQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFO1MWqKFwrCbtrw9P8A63bAVSJzLMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQAYGZa3aCDudbk9EVdkP8xcQGZuIAIPRx9K -# 1CA7uRzBt80fC0aWkuYYhQMvHHJRHUobSM4Uw3zN7fHEN8hhaBDb9NRaGnFWdtHx -# mJ9eMz6Jpn6KiIyi9U5Og7QCTZMl17n2w4eddq5vtk4rRWOVvpiDBGJARKiXWB9u -# 2ix0WH2EMFGHqjIhjWUXhPgR4C6NKFNXHvWvXecJ2WXrJnvvQGXAfNJGETJZGpR4 -# 1nUN3ijfiCSjFDxamGPsy5iYu904Hv9uuSXYd5m0Jxf2WNJSXkPGlNhrO27pPxgT -# 111myAR61S3S2hc572zN9yoJEObE98Vy5KEM3ZX53cLefN81F1C9p/cAKkE6u9V6 -# ryyl/qSgxu1UqeOZCtG/iaHSKMoxM7Mq4SMFsPT/8ieOdwClYpcw0CjZe5KBx2xL -# a4B1neFib8J8/gSosjMdF3nHiyHx1YedZDtxSSgegeJsi0fbUgdzsVMJYvqVw52W -# qQNu0GRC79ZuVreUVKdCJmUMBHBpTp6VFopL0Jf4Srgg+zRD9iwbc9uZrn+89odp -# InbznYrnPKHiO26qe1ekNwl/d7ro2ItP/lghz0DoD7kEGeikKJWHdto7eVJoJhkr -# UcanTuUH08g+NYwG6S+PjBSB/NyNF6bHa/xR+ceAYhcjx0iBiv90Mn0JiGfnA2/h -# Lj5evhTcAjCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNQ -# MIICOAIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjk2MDAtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQBL -# cI81gxbea1Ex2mFbXx7ck+0g/6CBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymJiDAiGA8yMDI1MDEwODIzMzIy -# NFoYDzIwMjUwMTA5MjMzMjI0WjB3MD0GCisGAQQBhFkKBAExLzAtMAoCBQDrKYmI -# AgEAMAoCAQACAhBWAgH/MAcCAQACAhQIMAoCBQDrKtsIAgEAMDYGCisGAQQBhFkK -# BAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJ -# KoZIhvcNAQELBQADggEBAFF0rbTmMxkNPz1om4SHJYc5SM7SYKncb0JlkUfCGEYD -# gqofUSHhfk6mHDcJEWMr/8zYmBhRHgPuwpWmY/brBK7db/raMs35QQZbnW+zFh7k -# DWu9SsAIAmMsjCFCidwTPCwvp01uN2bL1Nniofh1TZXX4kibqoDs8lc3a4iBK5HH -# SiV//dtJgcZ3l28OnuUcPy6OMhl1vi1fVfHEsjO3l4dsN7c+KYGWxGrSDF5RT5iF -# 4xikv8W98I8aju/Y88HPZtIF2a/jyxMmXnOrlxQUEw8HECkQVRN4mijQjKMqE74z -# SIhjWxKaMbM94739pPKBb+o5mZFzKnBbaCA13R3zvNMxggQNMIIECQIBATCBkzB8 -# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk -# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1N -# aWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAe+JP1ahWMyo2gABAAAB -# 7zANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEE -# MC8GCSqGSIb3DQEJBDEiBCB9b62W0fGtRFo65gP8c7KeBQ4Smt1fOOibnEKdwOFu -# HzCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIPBhKEW4Fo3wUz09NQx2a0Db -# cdsX8jovM5LizHmnyX+jMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB -# IDIwMTACEzMAAAHviT9WoVjMqNoAAQAAAe8wIgQgk8GRw07evoBPTcHFRSwwzBm1 -# /c/LPJrR0eUDtfdYEUgwDQYJKoZIhvcNAQELBQAEggIAeGF2Gbta7gc4EP1gu52I -# mtRDvhc695ftE+f+CG2caBp+xUumZgGKY0Tdk5wyaVazkCR3gw+vy/LldVHAhOR2 -# +YTYQBaZ58spz1k+j/jUrPdIHOCRpyqmkZYxXiZYeebjvtWSmo+qPr7N/xUcu7zf -# Cu8VKZZ+vuS4rzohsGabrXGrG8EBQJof5ypNAbr9E6v7hNgnDU1TImw6wYC0ko69 -# euQSb4ODZB+hE8sS/IkAhCL90GucX6O6EpKICJuFcy5e6SOOGsutRz5OtHADLItN -# t75h1wr2bSnOHINR3NiFTWAWC1JeOxRIPyuJdxVN+ybR9noM55JGgNoNJHc+eC+j -# MEZyON+U3TBHmnslhx2oMyYs46pXj5zewcnAhjWDztv0/JjS+OM1mEiOuUB59ySV -# RowLJjcBbAXXxcrsmUqqBaa4S8jv9R3VH/yll39JovBN8XV6r9FJ8/5OYcmSIUUs -# 547f/0PS6ZSKt4H1tFiP8lIkUr76piaAKD8dOYWkw8QbSSoQLNqcJj2uPB4vXyaS -# AGdwM52HSmPywz65yc5EDC1S1uCJxjPYAMS3gT1Ct1vOHPeXlZTBloxTjflEMyHJ -# hNz8Hxu3s7fFhEKUiTdrFZ/8xzDbgOWSMpECRp4i3XPt5kSPojmuM9xDW4U7/gbA -# II6d1HZyF9q8XML9hQZaXUE= -# SIG # End signature block diff --git a/Modules/Az.Storage/8.1.0/Azure.Data.Tables.dll b/Modules/Az.Storage/8.1.0/Azure.Data.Tables.dll deleted file mode 100644 index 8073b79d2b68..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Azure.Data.Tables.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Azure.Storage.Blobs.dll b/Modules/Az.Storage/8.1.0/Azure.Storage.Blobs.dll deleted file mode 100644 index 31612396a04c..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Azure.Storage.Blobs.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Azure.Storage.Common.dll b/Modules/Az.Storage/8.1.0/Azure.Storage.Common.dll deleted file mode 100644 index fa3a764ff338..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Azure.Storage.Common.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Azure.Storage.Files.DataLake.dll b/Modules/Az.Storage/8.1.0/Azure.Storage.Files.DataLake.dll deleted file mode 100644 index 241b93b09a5d..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Azure.Storage.Files.DataLake.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Azure.Storage.Files.Shares.dll b/Modules/Az.Storage/8.1.0/Azure.Storage.Files.Shares.dll deleted file mode 100644 index 9f84c2d11287..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Azure.Storage.Files.Shares.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Azure.Storage.Queues.dll b/Modules/Az.Storage/8.1.0/Azure.Storage.Queues.dll deleted file mode 100644 index 29ad40b9cdb2..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Azure.Storage.Queues.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Microsoft.Azure.Cosmos.Table.dll b/Modules/Az.Storage/8.1.0/Microsoft.Azure.Cosmos.Table.dll deleted file mode 100644 index d2fc43049374..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Microsoft.Azure.Cosmos.Table.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Microsoft.Azure.DocumentDB.Core.dll b/Modules/Az.Storage/8.1.0/Microsoft.Azure.DocumentDB.Core.dll deleted file mode 100644 index 08ee37ff689f..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Microsoft.Azure.DocumentDB.Core.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Microsoft.Azure.KeyVault.Core.dll b/Modules/Az.Storage/8.1.0/Microsoft.Azure.KeyVault.Core.dll deleted file mode 100644 index 3e899b4f76d2..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Microsoft.Azure.KeyVault.Core.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll b/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll deleted file mode 100644 index 88b67a17e4b3..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll-Help.xml b/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll-Help.xml deleted file mode 100644 index 6da511f023e1..000000000000 --- a/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll-Help.xml +++ /dev/null @@ -1,35583 +0,0 @@ - - - - - Add-AzRmStorageContainerLegalHold - Add - AzRmStorageContainerLegalHold - - Adds legal hold tags to a Storage blob container - - - - The Add-AzRmStorageContainerLegalHold cmdlet adds legal hold tags to a Storage blob container - - - - Add-AzRmStorageContainerLegalHold - - AllowProtectedAppendWriteAll - - When enabled, new blocks can be written to both 'Appened and Block Blobs' while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. - - System.Boolean - - System.Boolean - - - None - - - Container - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Tag - - Container LegalHold Tags - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzRmStorageContainerLegalHold - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - AllowProtectedAppendWriteAll - - When enabled, new blocks can be written to both 'Appened and Block Blobs' while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. - - System.Boolean - - System.Boolean - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - Tag - - Container LegalHold Tags - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzRmStorageContainerLegalHold - - AllowProtectedAppendWriteAll - - When enabled, new blocks can be written to both 'Appened and Block Blobs' while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. - - System.Boolean - - System.Boolean - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Tag - - Container LegalHold Tags - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AllowProtectedAppendWriteAll - - When enabled, new blocks can be written to both 'Appened and Block Blobs' while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. - - System.Boolean - - System.Boolean - - - None - - - Container - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Tag - - Container LegalHold Tags - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSLegalHold - - - - - - - - - - - - - - Example 1: Add legal hold tags to a Storage blob container with Storage account name and container name - Add-AzRmStorageContainerLegalHold -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -ContainerName "myContainer" -Tag tag1,tag2 -AllowProtectedAppendWriteAll $true - - This command adds legal hold tags to a Storage blob container with Storage account name and container name, and set AllowProtectedAppendWriteAll as true to allow append new blocks to append or block blob. - - - - - - Example 2: Add legal hold tags to a Storage blob container with Storage account object and container name - $accountObject = Get-AzStorageAccount -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -Add-AzRmStorageContainerLegalHold -StorageAccount $accountObject -ContainerName "myContainer" -Tag tag1 - - This command adds legal hold tags to a Storage blob container with Storage account object and container name. - - - - - - Example 3: Add legal hold tags to all Storage blob containers in a Storage account with pipeline - Get-AzStorageAccount -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" | Add-AzRmStorageContainerLegalHold -Tag tag1,tag2,tag3 - - This command adds legal hold tags to all Storage blob containers in a Storage account with pipeline. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/add-azrmstoragecontainerlegalhold - - - - - - Add-AzStorageAccountManagementPolicyAction - Add - AzStorageAccountManagementPolicyAction - - Adds an action to the input ManagementPolicy Action Group object, or creates a ManagementPolicy Action Group object with the action. The object can be used in New-AzStorageAccountManagementPolicyRule. - - - - The Add-AzStorageAccountManagementPolicyAction cmdlet adds an action to the input ManagementPolicy Action Group object, or creates a ManagementPolicy Action Group object with the action. - - - - Add-AzStorageAccountManagementPolicyAction - - BaseBlobAction - - The management policy action for baseblob. - - - Delete - TierToArchive - TierToCool - TierToCold - TierToHot - - System.String - - System.String - - - None - - - DaysAfterLastTierChangeGreaterThan - - Integer value indicating the age in days after last blob tier change time. This property is only applicable for tierToArchive actions. It requires daysAfterModificationGreaterThan to be set for baseBlobs based actions, or daysAfterModificationGreaterThan to be set for snapshots and blob version based actions. - - System.Int32 - - System.Int32 - - - None - - - DaysAfterModificationGreaterThan - - Integer value indicating the age in days after last modification. - - System.Int32 - - System.Int32 - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - If input the ManagementPolicy Action object, will set the action to the input action object. If not input, will create a new action object. - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - - None - - - - Add-AzStorageAccountManagementPolicyAction - - BaseBlobAction - - The management policy action for baseblob. - - - Delete - TierToArchive - TierToCool - TierToCold - TierToHot - - System.String - - System.String - - - None - - - DaysAfterLastAccessTimeGreaterThan - - Integer value indicating the age in days after last blob access. This property can only be used in conjuction with last access time tracking policy. - - System.Int32 - - System.Int32 - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnableAutoTierToHotFromCool - - Enables auto tiering of a blob from cool to hot on a blob access. It only works with TierToCool action and DaysAfterLastAccessTimeGreaterThan. - - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - If input the ManagementPolicy Action object, will set the action to the input action object. If not input, will create a new action object. - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - - None - - - - Add-AzStorageAccountManagementPolicyAction - - BaseBlobAction - - The management policy action for baseblob. - - - Delete - TierToArchive - TierToCool - TierToCold - TierToHot - - System.String - - System.String - - - None - - - DaysAfterCreationGreaterThan - - Integer value indicating the age in days after creation. - - System.Int32 - - System.Int32 - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - If input the ManagementPolicy Action object, will set the action to the input action object. If not input, will create a new action object. - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - - None - - - - Add-AzStorageAccountManagementPolicyAction - - BlobVersionAction - - The management policy action for blob version. - - - Delete - TierToArchive - TierToCool - TierToCold - TierToHot - - System.String - - System.String - - - None - - - DaysAfterCreationGreaterThan - - Integer value indicating the age in days after creation. - - System.Int32 - - System.Int32 - - - None - - - DaysAfterLastTierChangeGreaterThan - - Integer value indicating the age in days after last blob tier change time. This property is only applicable for tierToArchive actions. It requires daysAfterModificationGreaterThan to be set for baseBlobs based actions, or daysAfterModificationGreaterThan to be set for snapshots and blob version based actions. - - System.Int32 - - System.Int32 - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - If input the ManagementPolicy Action object, will set the action to the input action object. If not input, will create a new action object. - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - - None - - - - Add-AzStorageAccountManagementPolicyAction - - DaysAfterCreationGreaterThan - - Integer value indicating the age in days after creation. - - System.Int32 - - System.Int32 - - - None - - - DaysAfterLastTierChangeGreaterThan - - Integer value indicating the age in days after last blob tier change time. This property is only applicable for tierToArchive actions. It requires daysAfterModificationGreaterThan to be set for baseBlobs based actions, or daysAfterModificationGreaterThan to be set for snapshots and blob version based actions. - - System.Int32 - - System.Int32 - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - If input the ManagementPolicy Action object, will set the action to the input action object. If not input, will create a new action object. - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - - None - - - SnapshotAction - - The management policy action for snapshot. - - - Delete - TierToArchive - TierToCool - TierToCold - TierToHot - - System.String - - System.String - - - None - - - - - - BaseBlobAction - - The management policy action for baseblob. - - System.String - - System.String - - - None - - - BlobVersionAction - - The management policy action for blob version. - - System.String - - System.String - - - None - - - DaysAfterCreationGreaterThan - - Integer value indicating the age in days after creation. - - System.Int32 - - System.Int32 - - - None - - - DaysAfterLastAccessTimeGreaterThan - - Integer value indicating the age in days after last blob access. This property can only be used in conjuction with last access time tracking policy. - - System.Int32 - - System.Int32 - - - None - - - DaysAfterLastTierChangeGreaterThan - - Integer value indicating the age in days after last blob tier change time. This property is only applicable for tierToArchive actions. It requires daysAfterModificationGreaterThan to be set for baseBlobs based actions, or daysAfterModificationGreaterThan to be set for snapshots and blob version based actions. - - System.Int32 - - System.Int32 - - - None - - - DaysAfterModificationGreaterThan - - Integer value indicating the age in days after last modification. - - System.Int32 - - System.Int32 - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnableAutoTierToHotFromCool - - Enables auto tiering of a blob from cool to hot on a blob access. It only works with TierToCool action and DaysAfterLastAccessTimeGreaterThan. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - If input the ManagementPolicy Action object, will set the action to the input action object. If not input, will create a new action object. - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - - None - - - SnapshotAction - - The management policy action for snapshot. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - - - - - - - - - - - - - Example 1: Creates a ManagementPolicy Action Group object with 4 actions, then add it to a management policy rule and set to a Storage account - $action = Add-AzStorageAccountManagementPolicyAction -BaseBlobAction Delete -DaysAfterCreationGreaterThan 100 -$action = Add-AzStorageAccountManagementPolicyAction -BaseBlobAction TierToArchive -daysAfterModificationGreaterThan 50 -DaysAfterLastTierChangeGreaterThan 40 -InputObject $action -$action = Add-AzStorageAccountManagementPolicyAction -BaseBlobAction TierToCool -DaysAfterLastAccessTimeGreaterThan 30 -EnableAutoTierToHotFromCool -InputObject $action -$action = Add-AzStorageAccountManagementPolicyAction -BaseBlobAction TierToHot -DaysAfterCreationGreaterThan 100 -InputObject $action -$action = Add-AzStorageAccountManagementPolicyAction -SnapshotAction Delete -daysAfterCreationGreaterThan 100 -InputObject $action -$action - -BaseBlob.TierToCool.DaysAfterModificationGreaterThan : -BaseBlob.TierToCool.DaysAfterLastAccessTimeGreaterThan : 30 -BaseBlob.TierToCool.DaysAfterCreationGreaterThan : -BaseBlob.EnableAutoTierToHotFromCool : True -BaseBlob.TierToArchive.DaysAfterModificationGreaterThan : 50 -BaseBlob.TierToArchive.DaysAfterLastAccessTimeGreaterThan : -BaseBlob.TierToArchive.DaysAfterCreationGreaterThan : -BaseBlob.TierToArchive.DaysAfterLastTierChangeGreaterThan : 40 -BaseBlob.Delete.DaysAfterModificationGreaterThan : -BaseBlob.Delete.DaysAfterLastAccessTimeGreaterThan : -BaseBlob.Delete.DaysAfterCreationGreaterThan : 100 -BaseBlob.TierToCold.DaysAfterModificationGreaterThan : -BaseBlob.TierToCold.DaysAfterLastAccessTimeGreaterThan : -BaseBlob.TierToCold.DaysAfterCreationGreaterThan : -BaseBlob.TierToHot.DaysAfterModificationGreaterThan : -BaseBlob.TierToHot.DaysAfterLastAccessTimeGreaterThan : -BaseBlob.TierToHot.DaysAfterCreationGreaterThan : 100 -Snapshot.TierToCool.DaysAfterCreationGreaterThan : -Snapshot.TierToArchive.DaysAfterCreationGreaterThan : -Snapshot.TierToArchive.DaysAfterLastTierChangeGreaterThan : -Snapshot.Delete.DaysAfterCreationGreaterThan : 100 -Snapshot.TierToCold.DaysAfterCreationGreaterThan : -Snapshot.TierToHot.DaysAfterCreationGreaterThan : -Version.TierToCool.DaysAfterCreationGreaterThan : -Version.TierToArchive.DaysAfterCreationGreaterThan : -Version.TierToArchive.DaysAfterLastTierChangeGreaterThan : -Version.Delete.DaysAfterCreationGreaterThan : -Version.TierToCold.DaysAfterCreationGreaterThan : -Version.TierToHot.DaysAfterCreationGreaterThan : - -$filter = New-AzStorageAccountManagementPolicyFilter -$rule = New-AzStorageAccountManagementPolicyRule -Name Test -Action $action -Filter $filter -$policy = Set-AzStorageAccountManagementPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -Rule $rule - - The first command create a ManagementPolicy Action Group object, the following 3 commands add 3 actions to the object. Then add it to a management policy rule and set to a Storage account. - - - - - - Example 2: Creates a ManagementPolicy Action Group object with 7 actions on snapshot and blob version, then add it to a management policy rule and set to a Storage account - $action = Add-AzStorageAccountManagementPolicyAction -SnapshotAction Delete -daysAfterCreationGreaterThan 40 -$action = Add-AzStorageAccountManagementPolicyAction -InputObject $action -SnapshotAction TierToArchive -daysAfterCreationGreaterThan 50 -$action = Add-AzStorageAccountManagementPolicyAction -InputObject $action -SnapshotAction TierToCool -daysAfterCreationGreaterThan 60 -$action = Add-AzStorageAccountManagementPolicyAction -InputObject $action -BlobVersionAction Delete -daysAfterCreationGreaterThan 70 -$action = Add-AzStorageAccountManagementPolicyAction -InputObject $action -BlobVersionAction TierToArchive -daysAfterCreationGreaterThan 80 -$action = Add-AzStorageAccountManagementPolicyAction -InputObject $action -BlobVersionAction TierToCool -daysAfterCreationGreaterThan 90 -$action = Add-AzStorageAccountManagementPolicyAction -InputObject $action -BlobVersionAction TierToCold -daysAfterCreationGreaterThan 100 -$action - -BaseBlob.TierToCool.DaysAfterModificationGreaterThan : -BaseBlob.TierToCool.DaysAfterLastAccessTimeGreaterThan : -BaseBlob.TierToCool.DaysAfterCreationGreaterThan : -BaseBlob.EnableAutoTierToHotFromCool : -BaseBlob.TierToArchive.DaysAfterModificationGreaterThan : -BaseBlob.TierToArchive.DaysAfterLastAccessTimeGreaterThan : -BaseBlob.TierToArchive.DaysAfterCreationGreaterThan : -BaseBlob.TierToArchive.DaysAfterLastTierChangeGreaterThan : -BaseBlob.Delete.DaysAfterModificationGreaterThan : -BaseBlob.Delete.DaysAfterLastAccessTimeGreaterThan : -BaseBlob.Delete.DaysAfterCreationGreaterThan : -BaseBlob.TierToCold.DaysAfterModificationGreaterThan : -BaseBlob.TierToCold.DaysAfterLastAccessTimeGreaterThan : -BaseBlob.TierToCold.DaysAfterCreationGreaterThan : -BaseBlob.TierToHot.DaysAfterModificationGreaterThan : -BaseBlob.TierToHot.DaysAfterLastAccessTimeGreaterThan : -BaseBlob.TierToHot.DaysAfterCreationGreaterThan : -Snapshot.TierToCool.DaysAfterCreationGreaterThan : 60 -Snapshot.TierToArchive.DaysAfterCreationGreaterThan : 50 -Snapshot.TierToArchive.DaysAfterLastTierChangeGreaterThan : -Snapshot.Delete.DaysAfterCreationGreaterThan : 40 -Snapshot.TierToCold.DaysAfterCreationGreaterThan : -Snapshot.TierToHot.DaysAfterCreationGreaterThan : -Version.TierToCool.DaysAfterCreationGreaterThan : 90 -Version.TierToArchive.DaysAfterCreationGreaterThan : 80 -Version.TierToArchive.DaysAfterLastTierChangeGreaterThan : -Version.Delete.DaysAfterCreationGreaterThan : 70 -Version.TierToCold.DaysAfterCreationGreaterThan : 100 -Version.TierToHot.DaysAfterCreationGreaterThan : - -$filter = New-AzStorageAccountManagementPolicyFilter -$rule = New-AzStorageAccountManagementPolicyRule -Name Test -Action $action -Filter $filter -$policy = Set-AzStorageAccountManagementPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -Rule $rule - - The first command create a ManagementPolicy Action Group object, the following 5 commands add 5 actions on snapshot and blob version to the object. Then add it to a management policy rule and set to a Storage account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/Az.storage/add-Azstorageaccountmanagementpolicyaction - - - - - - Add-AzStorageAccountNetworkRule - Add - AzStorageAccountNetworkRule - - Add IpRules or VirtualNetworkRules to the NetworkRule property of a Storage account - - - - The Add-AzStorageAccountNetworkRule cmdlet adds IpRules or VirtualNetworkRules to the NetworkRule property of a Storage account - - - - Add-AzStorageAccountNetworkRule - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IPAddressOrRange - - The Array of IpAddressOrRange, add IpRules with the input IpAddressOrRange and default Action Allow to NetworkRule Property. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzStorageAccountNetworkRule - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IPRule - - The Array of IpRule objects to add to the NetworkRule Property. - - Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzStorageAccountNetworkRule - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ResourceAccessRule - - Storage Account NetworkRule ResourceAccessRules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSResourceAccessRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSResourceAccessRule[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzStorageAccountNetworkRule - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ResourceId - - Storage Account ResourceAccessRule ResourceId in string. - - System.String - - System.String - - - None - - - TenantId - - Storage Account ResourceAccessRule TenantId in string. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzStorageAccountNetworkRule - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - VirtualNetworkResourceId - - The Array of VirtualNetworkResourceId, will add VirtualNetworkRule with input VirtualNetworkResourceId and default Action Allow to NetworkRule Property. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzStorageAccountNetworkRule - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - VirtualNetworkRule - - The Array of VirtualNetworkRule objects to add to the NetworkRule Property. - - Microsoft.Azure.Commands.Management.Storage.Models.PSVirtualNetworkRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSVirtualNetworkRule[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IPAddressOrRange - - The Array of IpAddressOrRange, add IpRules with the input IpAddressOrRange and default Action Allow to NetworkRule Property. - - System.String[] - - System.String[] - - - None - - - IPRule - - The Array of IpRule objects to add to the NetworkRule Property. - - Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule[] - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - ResourceAccessRule - - Storage Account NetworkRule ResourceAccessRules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSResourceAccessRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSResourceAccessRule[] - - - None - - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - ResourceId - - Storage Account ResourceAccessRule ResourceId in string. - - System.String - - System.String - - - None - - - TenantId - - Storage Account ResourceAccessRule TenantId in string. - - System.String - - System.String - - - None - - - VirtualNetworkResourceId - - The Array of VirtualNetworkResourceId, will add VirtualNetworkRule with input VirtualNetworkResourceId and default Action Allow to NetworkRule Property. - - System.String[] - - System.String[] - - - None - - - VirtualNetworkRule - - The Array of VirtualNetworkRule objects to add to the NetworkRule Property. - - Microsoft.Azure.Commands.Management.Storage.Models.PSVirtualNetworkRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSVirtualNetworkRule[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule[] - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSVirtualNetworkRule[] - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSVirtualNetworkRule - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule - - - - - - - - - - - - - - ----- Example 1: Add several IpRules with IPAddressOrRange ----- - Add-AzStorageAccountNetworkRule -ResourceGroupName "myResourceGroup" -Name "mystorageaccount" -IPAddressOrRange "10.0.0.0/7","28.2.0.0/16" - - This command add several IpRules with IPAddressOrRange. - - - - - - Example 2: Add a VirtualNetworkRule with VirtualNetworkResourceID - $subnet = Get-AzVirtualNetwork -ResourceGroupName "myResourceGroup" -Name "myvirtualnetwork" | Get-AzVirtualNetworkSubnetConfig -Add-AzStorageAccountNetworkRule -ResourceGroupName "myResourceGroup" -Name "mystorageaccount" -VirtualNetworkResourceId $subnet[0].Id - - This command add a VirtualNetworkRule with VirtualNetworkResourceID. - - - - - - Example 3: Add VirtualNetworkRules with VirtualNetworkRule Objects from another account - $networkrule = Get-AzStorageAccountNetworkRuleSet -ResourceGroupName "myResourceGroup" -Name "mystorageaccount1" -Add-AzStorageAccountNetworkRule -ResourceGroupName "myResourceGroup" -Name "mystorageaccount2" -VirtualNetworkRule $networkrule.VirtualNetworkRules - - This command add VirtualNetworkRules with VirtualNetworkRule Objects from another account. - - - - - - Example 4: Add several IpRule with IpRule objects, input with JSON - Add-AzStorageAccountNetworkRule -ResourceGroupName "myResourceGroup" -Name "mystorageaccount" -IPRule (@{IPAddressOrRange="10.0.0.0/7";Action="allow"},@{IPAddressOrRange="28.2.0.0/16";Action="allow"}) - - This command add several IpRule with IpRule objects, input with JSON. - - - - - - ------------ Example 5: Add a resource access rule ------------ - Add-AzStorageAccountNetworkRule -ResourceGroupName "myResourceGroup" -Name "mystorageaccount" -TenantId $tenantId -ResourceId $ResourceId - - This command adds a resource access rule with TenantId and ResourceId. - - - - - - Example 6: Add all resource access rules of one storage account to another storage account - (Get-AzStorageAccountNetworkRuleSet -ResourceGroupName "myResourceGroup" -Name "mystorageaccount1").ResourceAccessRules | Add-AzStorageAccountNetworkRule -ResourceGroupName "myResourceGroup" -Name "mystorageaccount2" - - This command gets all resource access rules from one storage account, and adds them to another storage account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/add-azstorageaccountnetworkrule - - - - - - Disable-AzStorageBlobDeleteRetentionPolicy - Disable - AzStorageBlobDeleteRetentionPolicy - - Disable delete retention policy for the Azure Storage Blob service. - - - - The Disable-AzStorageBlobDeleteRetentionPolicy cmdlet disables delete retention policy for the Azure Storage Blob service. - - - - Disable-AzStorageBlobDeleteRetentionPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Disable-AzStorageBlobDeleteRetentionPolicy - - ResourceId - - Input a Storage account Resource Id, or a Blob service properties Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Disable-AzStorageBlobDeleteRetentionPolicy - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - ResourceId - - Input a Storage account Resource Id, or a Blob service properties Resource Id. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSDeleteRetentionPolicy - - - - - - - - - - - - - - Example 1: Disable delete retention policy for the Blob services - Disable-AzStorageBlobDeleteRetentionPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -PassThru - -Enabled Days -------- ---- - False - - This command disables delete retention policy for the Blob service. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/disable-azstorageblobdeleteretentionpolicy - - - - - - Disable-AzStorageBlobLastAccessTimeTracking - Disable - AzStorageBlobLastAccessTimeTracking - - Disable last access time tracking for the Azure Storage Blob service. - - - - The Disable-AzStorageBlobDeleteRetentionPolicy cmdlet disables delete retention policy for the Azure Storage Blob service. - - - - Disable-AzStorageBlobLastAccessTimeTracking - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Disable-AzStorageBlobLastAccessTimeTracking - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSRestorePolicy - - - - - - - - - - - - - - Example 1: Disable last access time tracking for the Blob service - Disable-AzStorageBlobLastAccessTimeTracking -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" - - This command disables last access time tracking for the Blob service. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/disable-azstoragebloblastaccesstimetracking - - - - - - Disable-AzStorageBlobRestorePolicy - Disable - AzStorageBlobRestorePolicy - - Disables Blob Restore Policy on a Storage account. - - - - The Disable-AzStorageBlobRestorePolicy cmdlet disables Blob Restore Policy for the Azure Storage Blob service. - - - - Disable-AzStorageBlobRestorePolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Disable-AzStorageBlobRestorePolicy - - ResourceId - - Input a Storage account Resource Id, or a Blob service properties Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Disable-AzStorageBlobRestorePolicy - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - ResourceId - - Input a Storage account Resource Id, or a Blob service properties Resource Id. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSRestorePolicy - - - - - - - - - - - - - - Example 1: Disables Blob Restore Policy for the Azure Storage Blob service on a Storage account - Disable-AzStorageBlobRestorePolicy -ResourceGroupName "myresourcegoup" -StorageAccountName "mystorageaccount" - - This command Disables Blob Restore Policy for the Azure Storage Blob service on a Storage account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/disable-azstorageblobrestorepolicy - - - - - - Disable-AzStorageContainerDeleteRetentionPolicy - Disable - AzStorageContainerDeleteRetentionPolicy - - Disable delete retention policy for Azure Storage blob containers. - - - - The Disable-AzStorageContainerDeleteRetentionPolicy cmdlet disables delete retention policy for Azure Storage blob containers. - - - - Disable-AzStorageContainerDeleteRetentionPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Disable-AzStorageContainerDeleteRetentionPolicy - - ResourceId - - Input a Storage account Resource Id, or a Blob service properties Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Disable-AzStorageContainerDeleteRetentionPolicy - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - ResourceId - - Input a Storage account Resource Id, or a Blob service properties Resource Id. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSDeleteRetentionPolicy - - - - - - - - - - - - - - Example 1: Disable delete retention policy for blob containers - Disable-AzStorageContainerDeleteRetentionPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -PassThru - -Enabled Days -------- ---- - False - - This command disables delete retention policy for blob containers. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/disable-azstoragecontainerdeleteretentionpolicy - - - - - - Enable-AzStorageBlobDeleteRetentionPolicy - Enable - AzStorageBlobDeleteRetentionPolicy - - Enable delete retention policy for the Azure Storage Blob service. - - - - The Enable-AzStorageBlobDeleteRetentionPolicy cmdlet enables delete retention policy for the Azure Storage Blob service. - - - - Enable-AzStorageBlobDeleteRetentionPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - AllowPermanentDelete - - Allow deletion of the soft deleted blob versions and snapshots. - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - RetentionDays - - Sets the number of retention days for the DeleteRetentionPolicy. - - System.Int32 - - System.Int32 - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Enable-AzStorageBlobDeleteRetentionPolicy - - ResourceId - - Input a Storage account Resource Id, or a Blob service properties Resource Id. - - System.String - - System.String - - - None - - - AllowPermanentDelete - - Allow deletion of the soft deleted blob versions and snapshots. - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - RetentionDays - - Sets the number of retention days for the DeleteRetentionPolicy. - - System.Int32 - - System.Int32 - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Enable-AzStorageBlobDeleteRetentionPolicy - - AllowPermanentDelete - - Allow deletion of the soft deleted blob versions and snapshots. - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - RetentionDays - - Sets the number of retention days for the DeleteRetentionPolicy. - - System.Int32 - - System.Int32 - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AllowPermanentDelete - - Allow deletion of the soft deleted blob versions and snapshots. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - ResourceId - - Input a Storage account Resource Id, or a Blob service properties Resource Id. - - System.String - - System.String - - - None - - - RetentionDays - - Sets the number of retention days for the DeleteRetentionPolicy. - - System.Int32 - - System.Int32 - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobServiceProperties - - - - - - - - - - - - - - Example 1: Enable delete retention policy for the Blob service - Enable-AzStorageBlobDeleteRetentionPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -AllowPermanentDelete -PassThru -RetentionDays 4 - -Enabled Days AllowPermanentDelete -------- ---- -------------------- - True 4 True - - This command enables delete retention policy for the Blob service, and set deleted blob retention days to 4. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/enable-azstorageblobdeleteretentionpolicy - - - - - - Enable-AzStorageBlobLastAccessTimeTracking - Enable - AzStorageBlobLastAccessTimeTracking - - Enable last access time tracking for the Azure Storage Blob service. - - - - The Enable-AzStorageBlobLastAccessTimeTracking cmdlet enables last access time tracking for the Azure Storage Blob service. - - - - Enable-AzStorageBlobLastAccessTimeTracking - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Enable-AzStorageBlobLastAccessTimeTracking - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSRestorePolicy - - - - - - - - - - - - - - Example 1: Enable last access time tracking for the Blob service - Enable-AzStorageBlobLastAccessTimeTracking -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -PassThru - -Enable Name TrackingGranularityInDays BlobType ------- ---- ------------------------- -------- - True AccessTimeTracking 1 {blockBlob} - - This command enables last access time tracking for the Blob service, and show the last access time tracking policy properties. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/enable-azstoragebloblastaccesstimetracking - - - - - - Enable-AzStorageBlobRestorePolicy - Enable - AzStorageBlobRestorePolicy - - Enables Blob Restore Policy on a Storage account. - - - - The Enable-AzStorageBlobRestorePolicy cmdlet enables Blob Restore Policy for the Azure Storage Blob service. - - - - Enable-AzStorageBlobRestorePolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - RestoreDays - - Sets the number of days for the blob can be restored.. - - System.Int32 - - System.Int32 - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Enable-AzStorageBlobRestorePolicy - - ResourceId - - Input a Storage account Resource Id, or a Blob service properties Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - RestoreDays - - Sets the number of days for the blob can be restored.. - - System.Int32 - - System.Int32 - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Enable-AzStorageBlobRestorePolicy - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - RestoreDays - - Sets the number of days for the blob can be restored.. - - System.Int32 - - System.Int32 - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - ResourceId - - Input a Storage account Resource Id, or a Blob service properties Resource Id. - - System.String - - System.String - - - None - - - RestoreDays - - Sets the number of days for the blob can be restored.. - - System.Int32 - - System.Int32 - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSRestorePolicy - - - - - - - - - - - - - - Example 1: Enables Blob Restore Policy for the Azure Storage Blob service on a Storage account - Enable-AzStorageBlobDeleteRetentionPolicy -ResourceGroupName "myresourcegoup" -StorageAccountName "mystorageaccount" -RetentionDays 5 - -Update-AzStorageBlobServiceProperty -ResourceGroupName "myresourcegoup" -StorageAccountName "mystorageaccount" -EnableChangeFeed $true - -StorageAccountName : mystorageaccount -ResourceGroupName : myresourcegoup -DefaultServiceVersion : -DeleteRetentionPolicy.Enabled : True -DeleteRetentionPolicy.Days : 5 -RestorePolicy.Enabled : False -RestorePolicy.Days : -RestorePolicy.MinRestoreTime : -ChangeFeed : True -IsVersioningEnabled : True - -Enable-AzStorageBlobRestorePolicy -ResourceGroupName "myresourcegoup" -StorageAccountName "mystorageaccount" -RestoreDays 4 - -Get-AzStorageBlobServiceProperty -ResourceGroupName "myresourcegoup" -StorageAccountName "mystorageaccount" - -StorageAccountName : mystorageaccount -ResourceGroupName : myresourcegoup -DefaultServiceVersion : -DeleteRetentionPolicy.Enabled : True -DeleteRetentionPolicy.Days : 5 -RestorePolicy.Enabled : True -RestorePolicy.Days : 4 -RestorePolicy.MinRestoreTime : 8/28/2020 6:00:59 AM -ChangeFeed : True -IsVersioningEnabled : True - - This command first enable Blob softdelete and changefeed, then enables Blob Restore Policy, finally check the setting in Blob service properties. The Blob service RestorePolicy.Days must be smaller than DeleteRetentionPolicy.Days. Blob softdelete and ChangeFeed must be enabled before enable blob Restore Policy. If softdelete and Changefeed are just enabled, might need wait for some time for server to handle the setting, before enable Blob restore policy. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/enable-azstorageblobrestorepolicy - - - - - - Enable-AzStorageContainerDeleteRetentionPolicy - Enable - AzStorageContainerDeleteRetentionPolicy - - Enable delete retention policy for Azure Storage blob containers. - - - - The Enable-AzStorageContainerDeleteRetentionPolicy cmdlet enables delete retention policy for Azure Storage blob containers. - - - - Enable-AzStorageContainerDeleteRetentionPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - RetentionDays - - Sets the number of retention days for the DeleteRetentionPolicy. - - System.Int32 - - System.Int32 - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Enable-AzStorageContainerDeleteRetentionPolicy - - ResourceId - - Input a Storage account Resource Id, or a Blob service properties Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - RetentionDays - - Sets the number of retention days for the DeleteRetentionPolicy. - - System.Int32 - - System.Int32 - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Enable-AzStorageContainerDeleteRetentionPolicy - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - RetentionDays - - Sets the number of retention days for the DeleteRetentionPolicy. - - System.Int32 - - System.Int32 - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - ResourceId - - Input a Storage account Resource Id, or a Blob service properties Resource Id. - - System.String - - System.String - - - None - - - RetentionDays - - Sets the number of retention days for the DeleteRetentionPolicy. - - System.Int32 - - System.Int32 - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobServiceProperties - - - - - - - - - - - - - - Example 1: Enable delete retention policy for Blob containers - Enable-AzStorageContainerDeleteRetentionPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -PassThru -RetentionDays 3 - -Enabled Days -------- ---- - True 3 - - This command enables delete retention policy for Blob containers, and set deleted blob retention days to 3. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/enable-azstoragecontainerdeleteretentionpolicy - - - - - - Get-AzRmStorageContainer - Get - AzRmStorageContainer - - Gets or lists Storage blob containers - - - - The Get-AzRmStorageContainer cmdlet gets or lists Storage blob containers - - - - Get-AzRmStorageContainer - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeDeleted - - Include deleted containers, by default list containers won't include deleted containers - - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Container Name - - System.String - - System.String - - - None - - - - Get-AzRmStorageContainer - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeDeleted - - Include deleted containers, by default list containers won't include deleted containers - - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Container Name - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeDeleted - - Include deleted containers, by default list containers won't include deleted containers - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Container Name - - System.String - - System.String - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - - - - - - - - - - - - Example 1: Get a Storage blob container with Storage account name and container name - Get-AzRmStorageContainer -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -ContainerName "myContainer" - - This command gets a Storage blob container with Storage account name and container name. - - - - - - Example 2: List all Storage blob containers of a Storage account - Get-AzRmStorageContainer -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" - - This command lists all Storage blob containers of a Storage account with Storage account name. - - - - - - Example 3: Get a Storage blob container with Storage account object and container name. - $accountObject = Get-AzStorageAccount -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -Get-AzRmStorageContainer -StorageAccount $accountObject -ContainerName "myContainer" - - This command gets a Storage blob container with Storage account object and container name. - - - - - - Example 4: List Storage blob container of a Storage account, include deleted containers. - Get-AzRmStorageContainer -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -IncludeDeleted - -ResourceGroupName: myResourceGroup, StorageAccountName: myStorageAccount - -Name PublicAccess LastModified HasLegalHold HasImmutabilityPolicy Deleted VersionId ----- ------------ ------------ ------------ --------------------- ------- --------- -testcon None 2020-08-28 10:18:13Z False False False 01D685BC91A88F22 -testcon2 None 2020-09-04 12:52:37Z False False True 01D67D248986B6DA - - This example lists all containers of a storage account, include deleted containers. Deleted containers will only exist after enabled Container softdelete with Enable-AzStorageBlobDeleteRetentionPolicy. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azrmstoragecontainer - - - - - - Get-AzRmStorageContainerImmutabilityPolicy - Get - AzRmStorageContainerImmutabilityPolicy - - Gets ImmutabilityPolicy of a Storage blob containers - - - - The Get-AzRmStorageContainerImmutabilityPolicy cmdlet gets ImmutabilityPolicy of a Storage blob containers - - - - Get-AzRmStorageContainerImmutabilityPolicy - - Container - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. - - System.String - - System.String - - - None - - - - Get-AzRmStorageContainerImmutabilityPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - ContainerName - - Container Name - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. - - System.String - - System.String - - - None - - - - Get-AzRmStorageContainerImmutabilityPolicy - - ContainerName - - Container Name - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - - - - Container - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - ContainerName - - Container Name - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. - - System.String - - System.String - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - - - - - - - - - - - - - Example 1: Get ImmutabilityPolicy of a Storage blob container with Storage account name and container name - Get-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -ContainerName "myContainer" - - This command gets ImmutabilityPolicy of a Storage blob container with Storage account name and container name. - - - - - - Example 2: Get ImmutabilityPolicy of a Storage blob container with Storage account object and container name - $accountObject = Get-AzStorageAccount -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -Get-AzRmStorageContainerImmutabilityPolicy -StorageAccount $accountObject -ContainerName "myContainer" - - This command gets ImmutabilityPolicy of a Storage blob containers with Storage account object and container name. - - - - - - Example 3: Get ImmutabilityPolicy of a Storage blob container with Storage container object - $containerObject = Get-AzRmStorageContainer -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -Name "myContainer" -Get-AzRmStorageContainerImmutabilityPolicy -Container $containerObject - - This command gets ImmutabilityPolicy of a Storage blob container with Storage container object. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azrmstoragecontainerimmutabilitypolicy - - - - - - Get-AzRmStorageShare - Get - AzRmStorageShare - - Gets or lists Storage file shares. - - - - The Get-AzRmStorageShare cmdlet gets or lists Storage file shares. - - - - Get-AzRmStorageShare - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Filter - - The filter of share name. When specified, only share names starting with the filter will be listed. The filter must be in format: startswith(name, `<prefix>`) - - System.String - - System.String - - - None - - - IncludeDeleted - - Include deleted shares, by default list shares won't include deleted shares - - - System.Management.Automation.SwitchParameter - - - False - - - IncludeSnapshot - - Include share snapshots, by default list shares won't include share snapshots. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzRmStorageShare - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Filter - - The filter of share name. When specified, only share names starting with the filter will be listed. The filter must be in format: startswith(name, `<prefix>`) - - System.String - - System.String - - - None - - - IncludeDeleted - - Include deleted shares, by default list shares won't include deleted shares - - - System.Management.Automation.SwitchParameter - - - False - - - IncludeSnapshot - - Include share snapshots, by default list shares won't include share snapshots. - - - System.Management.Automation.SwitchParameter - - - False - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - - Get-AzRmStorageShare - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - GetShareUsage - - Specify this parameter to get the Share Usage in Bytes. - - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Share Name - - System.String - - System.String - - - None - - - SnapshotTime - - Share SnapshotTime - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - Get-AzRmStorageShare - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - GetShareUsage - - Specify this parameter to get the Share Usage in Bytes. - - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Share Name - - System.String - - System.String - - - None - - - SnapshotTime - - Share SnapshotTime - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - - Get-AzRmStorageShare - - ResourceId - - Input a File Share Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - GetShareUsage - - Specify this parameter to get the Share Usage in Bytes. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Filter - - The filter of share name. When specified, only share names starting with the filter will be listed. The filter must be in format: startswith(name, `<prefix>`) - - System.String - - System.String - - - None - - - GetShareUsage - - Specify this parameter to get the Share Usage in Bytes. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IncludeDeleted - - Include deleted shares, by default list shares won't include deleted shares - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IncludeSnapshot - - Include share snapshots, by default list shares won't include share snapshots. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Share Name - - System.String - - System.String - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - ResourceId - - Input a File Share Resource Id. - - System.String - - System.String - - - None - - - SnapshotTime - - Share SnapshotTime - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - - - - - - - - - - - - - Example 1: Get a Storage file share with Storage account name and share name - Get-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -Name "myshare" - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes ----- -------- ---------------- ---------- ------- ------- --------------- -myshare 5120 - - This command gets a Storage file share with Storage account name and share name. - - - - - - - Example 2: List all Storage file shares of a Storage account - - Get-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes ----- -------- ---------------- ---------- ------- ------- --------------- -share1 5120 TransactionOptimized -share2 5120 TransactionOptimized - - This command lists all Storage file shares of a Storage account with Storage account name. - - - - - - Example 3: Get a Storage blob container with Storage account object and container name. - Get-AzStorageAccount -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" | Get-AzRmStorageShare -Name "myshare" - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes ----- -------- ---------------- ---------- ------- ------- --------------- -myshare 5120 - - This command gets a Storage blob container with Storage account object and container name. - - - - - - Example 4: Get a Storage file share with the share usage in bytes - Get-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -Name "myshare" -GetShareUsage - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes ----- -------- ---------------- ---------- ------- ------- --------------- -myshare 5120 2097152 - - This command gets a Storage file share with Storage account name and share name, and include the share usage in bytes. - - - - - - Example 5: List all Storage file shares of a Storage account, include the deleted shares, include the share snapshots - Get-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -IncludeDeleted -IncludeSnapshot - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes snapshotTime ----- -------- ---------------- ---------- ------- ------- --------------- ------------ -testshare1 5120 TransactionOptimized 2021-05-10T08:04:08Z -testshare1 5120 TransactionOptimized -share1 100 TransactionOptimized True 01D61FD1FC5498B6 - - This command lists all Storage file shares include the deleted shares and share snapshots. - - - - - - ------------ Example 6: Get a single share snapshot ------------ - Get-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -Name "testshare1" -SnapshotTime "2021-05-10T08:04:08Z" - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes snapshotTime ----- -------- ---------------- ---------- ------- ------- --------------- ------------ -testshare1 5120 TransactionOptimized 2021-05-10T08:04:08Z - - This command gets a single file share snapshot with share name and snapshot time. - - - - - - Example 7: List Storage file shares of a Storage account with a filter - Get-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -Filter "startswith(name, test)" - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes snapshotTime ----- -------- ---------------- ---------- ------- ------- --------------- ------------ -testshare1 5120 SMB TransactionOptimized -testshare2 5120 SMB TransactionOptimized - - This command lists all Storage file shares with names that begin with "test". - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azrmstorageshare - - - - - - Get-AzStorageAccount - Get - AzStorageAccount - - Gets a Storage account. - - - - The Get-AzStorageAccount cmdlet gets a specified Storage account or all of the Storage accounts in a resource group or the subscription. - - - - Get-AzStorageAccount - - ResourceGroupName - - Specifies the name of the resource group that contains the Storage account to get. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account to get. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeBlobRestoreStatus - - Get the BlobRestoreStatus of the Storage account. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzStorageAccount - - ResourceGroupName - - Specifies the name of the resource group that contains the Storage account to get. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account to get. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeGeoReplicationStats - - Get the GeoReplicationStats of the Storage account. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzStorageAccount - - ResourceGroupName - - Specifies the name of the resource group that contains the Storage account to get. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeBlobRestoreStatus - - Get the BlobRestoreStatus of the Storage account. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IncludeGeoReplicationStats - - Get the GeoReplicationStats of the Storage account. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Specifies the name of the Storage account to get. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the resource group that contains the Storage account to get. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - - - - - ---------- Example 1: Get a specified Storage account ---------- - Get-AzStorageAccount -ResourceGroupName "RG01" -Name "mystorageaccount" - - This command gets the specified Storage account. - - - - - - --- Example 2: Get all Storage accounts in a resource group --- - Get-AzStorageAccount -ResourceGroupName "RG01" - - This command gets all of the Storage accounts in a resource group. - - - - - - --- Example 3: Get all Storage accounts in the subscription --- - Get-AzStorageAccount - - This command gets all of the Storage accounts in the subscription. - - - - - - Example 4: Get a Storage accounts with its blob restore status - $account = Get-AzStorageAccount -ResourceGroupName "myresourcegoup" -Name "mystorageaccount" -IncludeBlobRestoreStatus - -$account.BlobRestoreStatus - -Status RestoreId FailureReason Parameters.TimeToRestore Parameters.BlobRanges ------- --------- ------------- ------------------------ --------------------- -InProgress a70cd4a1-f223-4c86-959f-cc13eb4795a8 2020-02-10T13:45:04.7155962Z [container1/blob1 -> container2/blob2] - - This command gets a Storage accounts with its blob restore status, and show the blob restore status. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageaccount - - - New-AzStorageAccount - - - - Remove-AzStorageAccount - - - - Set-AzStorageAccount - - - - - - - Get-AzStorageAccountKey - Get - AzStorageAccountKey - - Gets the access keys for an Azure Storage account. - - - - The Get-AzStorageAccountKey cmdlet gets the access keys for an Azure Storage account. - - - - Get-AzStorageAccountKey - - ResourceGroupName - - Specifies the name of the resource group that contains the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account for which this cmdlet gets keys. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ListKerbKey - - Lists the Kerberos keys (if active directory enabled) for the specified storage account. Kerberos key is generated per storage account for Azure Files identity based authentication either with Microsoft Entra Domain Service (Microsoft Entra Domain Services) or Active Directory Domain Service (AD DS). It is used as the password of the identity registered in the domain service that represents the storage account. Kerberos key does not provide access permission to perform any control or data plane read or write operations against the storage account. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ListKerbKey - - Lists the Kerberos keys (if active directory enabled) for the specified storage account. Kerberos key is generated per storage account for Azure Files identity based authentication either with Microsoft Entra Domain Service (Microsoft Entra Domain Services) or Active Directory Domain Service (AD DS). It is used as the password of the identity registered in the domain service that represents the storage account. Kerberos key does not provide access permission to perform any control or data plane read or write operations against the storage account. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Specifies the name of the Storage account for which this cmdlet gets keys. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the resource group that contains the Storage account. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Management.Storage.Models.StorageAccountKey - - - - - - - - - - - - - - ----- Example 1: Get the access keys for a Storage account ----- - Get-AzStorageAccountKey -ResourceGroupName "RG01" -Name "mystorageaccount" - - This command gets the keys for the specified Azure Storage account. - - - - - - -- Example 2: Get a specific access key for a Storage account -- - This command gets a specific key for a Storage account. -(Get-AzStorageAccountKey -ResourceGroupName "RG01" -Name "mystorageaccount")| Where-Object {$_.KeyName -eq "key1"} - -KeyName Value Permissions CreationTime -------- ----- ----------- ------------ -key1 <KeyValue> Full - -This command gets a specific key value for a Storage account. -(Get-AzStorageAccountKey -ResourceGroupName "RG01" -Name "mystorageaccount")[0].Value - -<KeyValue> - - - - - - - - Example 3: Lists the access keys for a Storage account, include the Kerberos keys (if active directory enabled) - Get-AzStorageAccountKey -ResourceGroupName "RG01" -Name "mystorageaccount" -ListKerbKey - - This command gets the keys for the specified Azure Storage account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageaccountkey - - - New-AzStorageAccountKey - - - - - - - Get-AzStorageAccountManagementPolicy - Get - AzStorageAccountManagementPolicy - - Gets the management policy of an Azure Storage account. - - - - The Get-AzStorageAccountManagementPolicy cmdlet gets the management policy of an Azure Storage account. - - - - Get-AzStorageAccountManagementPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzStorageAccountManagementPolicy - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - - Get-AzStorageAccountManagementPolicy - - StorageAccountResourceId - - Storage Account Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - StorageAccountResourceId - - Storage Account Resource Id. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Management.Storage.Models.StorageAccountKey - - - - - - - - - - - - - - -- Example 1: Get the management policy of a Storage account. -- - Get-AzStorageAccountManagementPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" - -ResourceGroupName : myresourcegroup -StorageAccountName : mystorageaccount -Id : /subscriptions/{subscription-id}/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/mystorageaccount/managementPolicies/default -Type : Microsoft.Storage/storageAccounts/managementPolicies -LastModifiedTime : 3/12/2019 7:04:05 AM -Rules : [ - { - "Enabled": true, - "Name": "Test", - "Definition": { - "Actions": { - "BaseBlob": { - "TierToCool": { - "DaysAfterModificationGreaterThan": 30 - }, - "TierToArchive": { - "DaysAfterModificationGreaterThan": 50 - }, - "Delete": { - "DaysAfterModificationGreaterThan": 100 - } - }, - "Snapshot": { - "Delete": { - "DaysAfterCreationGreaterThan": 100 - } - } - }, - "Filters": { - "PrefixMatch": [ - "prefix1", - "prefix2" - ], - "BlobTypes": [ - "blockBlob" - ] - } - } - }, - { - "Enabled": true, - "Name": "Test2", - "Definition": { - "Actions": { - "BaseBlob": { - "TierToCool": null, - "TierToArchive": null, - "Delete": { - "DaysAfterModificationGreaterThan": 100 - } - }, - "Snapshot": null - }, - "Filters": { - "PrefixMatch": null, - "BlobTypes": [ - "blockBlob" - ] - } - } - } - ] - - This command gets the management policy of a Storage account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/Az.storage/get-Azstorageaccountmanagementpolicy - - - - - - Get-AzStorageAccountNameAvailability - Get - AzStorageAccountNameAvailability - - Checks the availability of a Storage account name. - - - - The Get-AzStorageAccountNameAvailability cmdlet checks whether the name of an Azure Storage account is valid and available to use. - - - - Get-AzStorageAccountNameAvailability - - Name - - Specifies the name of the Storage account that this cmdlet checks. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Specifies the name of the Storage account that this cmdlet checks. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Management.Storage.Models.CheckNameAvailabilityResult - - - - - - - - - - - - - - --- Example 1: Check availability of a Storage account name --- - Get-AzStorageAccountNameAvailability -Name 'contosostorage03' - - This command checks the availability of the name ContosoStorage03. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageaccountnameavailability - - - Azure Storage Manager Cmdlets - - - - - - - Get-AzStorageAccountNetworkRuleSet - Get - AzStorageAccountNetworkRuleSet - - Get the NetWorkRule property of a Storage account - - - - The Get-AzStorageAccountNetworkRuleSet cmdlet gets the NetworkRule property of a Storage account - - - - Get-AzStorageAccountNetworkRuleSet - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - - - - - - - - - - - - - Example 1: Get NetworkRule property of a specified Storage account - Get-AzStorageAccountNetworkRuleSet -ResourceGroupName "rg1" -Name "mystorageaccount" - - This command gets NetworkRule property of a specified Storage account - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageaccountnetworkruleset - - - - - - Get-AzStorageBlobInventoryPolicy - Get - AzStorageBlobInventoryPolicy - - Gets blob inventory policy from a Storage account. - - - - The Get-AzStorageBlobInventoryPolicy cmdlet gets blob inventory policy from a Storage account. - - - - Get-AzStorageBlobInventoryPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzStorageBlobInventoryPolicy - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - - Get-AzStorageBlobInventoryPolicy - - StorageAccountResourceId - - Storage Account Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - StorageAccountResourceId - - Storage Account Resource Id. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicy - - - - - - - - - - - - - - - Example 1: Get blob inventory policy from a Storage account - - $policy = Get-AzStorageBlobInventoryPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" - -$policy - -StorageAccountName : mystorageaccount -ResourceGroupName : myresourcegroup -Name : DefaultInventoryPolicy -Id : /subscriptions/{subscription-Id}/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/mystorageaccount/inventoryPolicies/default -Type : Microsoft.Storage/storageAccounts/inventoryPolicies -LastModifiedTime : 11/4/2020 9:18:30 AM -Enabled : True -Rules : {Test1, Test2} - -$policy.Rules - -Name Enabled Destination ObjectType Format Schedule IncludeSnapshots IncludeBlobVersions BlobTypes PrefixMatch SchemaFields ----- ------- ----------- ---------- ------ -------- ---------------- ------------------- --------- ----------- ------------ -Test1 False containername Container Csv Daily {aaa, bbb} {Name, Metadata, PublicAccess, Last-Modified...} -Test2 True containername Blob Parquet Weekly True True {blockBlob, appendBlob} {ccc, ddd} {Name, Creation-Time, Last-Modified, Content-Length...} - - This command gets blob inventory policy from a Storage account, and show its proeprties. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageblobinventorypolicy - - - - - - Get-AzStorageBlobServiceProperty - Get - AzStorageBlobServiceProperty - - Gets service properties for Azure Storage Blob services. - - - - The Get-AzStorageBlobServiceProperty cmdlet gets the service properties for Azure Storage Blob services. - - - - Get-AzStorageBlobServiceProperty - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzStorageBlobServiceProperty - - ResourceId - - Blob Service Properties Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzStorageBlobServiceProperty - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - ResourceId - - Blob Service Properties Resource Id. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobServiceProperties - - - - - - - - - - - - - - Example 1: Get Azure Storage Blob services property of a specified Storage Account - Get-AzStorageBlobServiceProperty -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" - -StorageAccountName : mystorageaccount -ResourceGroupName : myresourcegroup -DefaultServiceVersion : -DeleteRetentionPolicy.Enabled : False -DeleteRetentionPolicy.Days : -RestorePolicy.Enabled : -RestorePolicy.Days : -ChangeFeed : True -IsVersioningEnabled : True - - This command gets the Blob services property of a specified Storage Account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageblobserviceproperty - - - - - - Get-AzStorageEncryptionScope - Get - AzStorageEncryptionScope - - Get or list encryption scopes from a Storage account. - - - - The Get-AzStorageEncryptionScope cmdlet gets or lists encryption scopes from a Storage account. - - - - Get-AzStorageEncryptionScope - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScopeName - - Azure Storage EncryptionScope name - - System.String - - System.String - - - None - - - Filter - - The filter of encryption scope name. When specified, only encryption scope names starting with the filter will be listed. - - System.String - - System.String - - - None - - - Include - - The filter of encryption scope name. When specified, only encryption scope names starting with the filter will be listed. - - - All - Enabled - Disabled - - System.String - - System.String - - - None - - - MaxPageSize - - The maximum number of encryption scopes that will be included in the list response - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - Get-AzStorageEncryptionScope - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScopeName - - Azure Storage EncryptionScope name - - System.String - - System.String - - - None - - - Filter - - The filter of encryption scope name. When specified, only encryption scope names starting with the filter will be listed. - - System.String - - System.String - - - None - - - Include - - The filter of encryption scope name. When specified, only encryption scope names starting with the filter will be listed. - - - All - Enabled - Disabled - - System.String - - System.String - - - None - - - MaxPageSize - - The maximum number of encryption scopes that will be included in the list response - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScopeName - - Azure Storage EncryptionScope name - - System.String - - System.String - - - None - - - Filter - - The filter of encryption scope name. When specified, only encryption scope names starting with the filter will be listed. - - System.String - - System.String - - - None - - - Include - - The filter of encryption scope name. When specified, only encryption scope names starting with the filter will be listed. - - System.String - - System.String - - - None - - - MaxPageSize - - The maximum number of encryption scopes that will be included in the list response - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSEncryptionScope - - - - - - - - - - - - - - ----------- Example 1: Get a single encryption scope ----------- - Get-AzStorageEncryptionScope -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -EncryptionScopeName $scopename - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name State Source KeyVaultKeyUri ----- ----- ------ -------------- -testscope Disabled Microsoft.Keyvault https://keyvalutname.vault.azure.net:443/keys/keyname - - This command gets a single encryption scope. - - - - - - -- Example 2: List all encryption scopes of a Storage account -- - Get-AzStorageEncryptionScope -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" - - - ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name State Source KeyVaultKeyUri ----- ----- ------ -------------- -testscope Disabled Microsoft.Keyvault https://keyvalutname.vault.azure.net:443/keys/keyname -scope2 Enabled Microsoft.Storage - - This command lists all encryption scopes of a Storage account. - - - - - - Example 3: List all enabled encryption scopes of a Storage account with a max page size of 10 for each request - Get-AzStorageEncryptionScope -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -MaxPageSize 10 -Include Enabled - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name State Source KeyVaultKeyUri ----- ----- ------ -------------- -scope1 Enabled Microsoft.Keyvault https://keyvalutname.vault.azure.net:443/keys/keyname -scope2 Enabled Microsoft.Storage - - This command lists all enabled encryption scopes of a Storage account, with a max page size of 10 encryption scopes included in each list response. If there are more than 10 encryption scopes to be listed, the command will still list all the encryption scopes, but with multiple requests sent and responses received. - - - - - - Example 4: List all disabled encryption scopes with names starting with "test" of a Storage account - Get-AzStorageEncryptionScope -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -Include Disabled -Filter "startswith(name, test)" - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name State Source KeyVaultKeyUri ----- ----- ------ -------------- -testscope1 Disabled Microsoft.Keyvault https://keyvalutname.vault.azure.net:443/keys/keyname -testscope2 Disabled Microsoft.Storage - - This command lists all disabled encryption scopes with names starting with "test" of a Storage account. The parameter "Filter" specifies the prefix of the encryption scopes listed, and it should be in format of "startswith(name, {prefixValue})". - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageencryptionscope - - - - - - Get-AzStorageFileServiceProperty - Get - AzStorageFileServiceProperty - - Gets service properties for Azure Storage File services. - - - - The Get-AzStorageFileServiceProperty cmdlet gets the service properties for Azure Storage File services. - - - - Get-AzStorageFileServiceProperty - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzStorageFileServiceProperty - - ResourceId - - Input a Storage account Resource Id, or a File service properties Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzStorageFileServiceProperty - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - ResourceId - - Input a Storage account Resource Id, or a File service properties Resource Id. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSFileServiceProperties - - - - - - - - - - - - - - Example 1: Get Azure Storage File services property of a specified Storage Account - Get-AzStorageFileServiceProperty -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" - -StorageAccountName : mystorageaccount -ResourceGroupName : myresourcegroup -ShareDeleteRetentionPolicy.Enabled : True -ShareDeleteRetentionPolicy.Days : 3 -ProtocolSettings.Smb.Multichannel.Enabled : False -ProtocolSettings.Smb.Versions : {SMB2.1, SMB3.0, SMB3.1.1} -ProtocolSettings.Smb.AuthenticationMethods : {Kerberos, NTLMv2} -ProtocolSettings.Smb.KerberosTicketEncryption : {RC4-HMAC, AES-256} -ProtocolSettings.Smb.ChannelEncryption : {AES-128-CCM, AES-128-GCM, AES-256-GCM} - - This command gets the File services property of a specified Storage Account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstoragefileserviceproperty - - - - - - Get-AzStorageLocalUser - Get - AzStorageLocalUser - - Gets a specified local user or lists all local users in a storage account. - - - - The Get-AzStorageLocalUser cmdlet gets a specified local user or lists all local users in a storage account. - - - - Get-AzStorageLocalUser - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - UserName - - The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. - - System.String - - System.String - - - None - - - - Get-AzStorageLocalUser - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - UserName - - The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. - - System.String - - System.String - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - UserName - - The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUser - - - - - - - - - - - - - - ------------ Example 1: Get a specified local user ------------ - $localUser = Get-AzStorageLocalUser -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -UserName testuser1 - -$localUser - - ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name Sid HomeDirectory HasSharedKey HasSshKey HasSshPassword PermissionScopes ----- --- ------------- ------------ --------- -------------- ---------------- -testuser1 S-1-2-0-0000000000-000000000-0000000000-0000 / True True True [container1,...] - -$localUser.PermissionScopes - -Permissions Service ResourceName ------------ ------- ------------ -rw blob container1 -rw file share2 - - This command gets a specified local user, and show the properties of it. - - - - - - ----- Example 2: List all local users in a storage account ----- - Get-AzStorageLocalUser -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name Sid HomeDirectory HasSharedKey HasSshKey HasSshPassword PermissionScopes SshAuthorizedKeys ----- --- ------------- ------------ --------- -------------- ---------------- ----------------- -testuser1 S-1-2-0-0000000000-000000000-0000000000-0000 / True True True [container1,...] -testuser2 S-1-2-0-0000000000-000000000-0000000000-0002 /dir True True False - - This command lists all local users in a storage account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstoragelocaluser - - - - - - Get-AzStorageLocalUserKey - Get - AzStorageLocalUserKey - - Lists SSH authorized keys and shared key of a specified local user. - - - - The Get-AzStorageLocalUserKey cmdlet lists SSH authorized keys and shared key of a specified local user in a storage account. - - - - Get-AzStorageLocalUserKey - - InputObject - - Local User Object to get Keys. - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUser - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUser - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzStorageLocalUserKey - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - UserName - - The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzStorageLocalUserKey - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - UserName - - The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Local User Object to get Keys. - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUser - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUser - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - UserName - - The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUserKeys - - - - - - - - - - - - - - Example 1: List SSH authorized keys and shared key of a specified local user. - Get-AzStorageLocalUserKey -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -UserName testuser1 - -SshAuthorizedKeys SharedKey ------------------ --------- -{ssh-rsa keykeykeykeykew=, ssh-rsa keykeykeykeykew=} <hidden> - - This command lists SSH authorized keys and shared key of a specified local user. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstoragelocaluserkey - - - - - - Get-AzStorageObjectReplicationPolicy - Get - AzStorageObjectReplicationPolicy - - Gets or lists object replication policy of a Storage account. - - - - The Get-AzStorageObjectReplicationPolicy cmdlet gets or lists object replication policy of a Storage account. - - - - Get-AzStorageObjectReplicationPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PolicyId - - Object Replication Policy Id. - - System.String - - System.String - - - None - - - - Get-AzStorageObjectReplicationPolicy - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PolicyId - - Object Replication Policy Id. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PolicyId - - Object Replication Policy Id. - - System.String - - System.String - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy - - - - - - - - - - - - - - Example 1: Get an object replication policy with specific policy Id and show its rules. - $policy = Get-AzStorageObjectReplicationPolicy -ResourceGroupName "myresourcegroup" -AccountName "mydestaccount" -PolicyId 56bfa11c-81ef-4f8d-b307-5e5386e16fba - -$policy - -ResourceGroupName StorageAccountName PolicyId EnabledTime SourceAccount DestinationAccount Rules ------------------ ------------------ -------- ----------- ------------- ------------------ ----- -myresourcegroup mydestaccount 56bfa11c-81ef-4f8d-b307-5e5386e16fba mysourceaccount mydestaccount [5fa8b1d6-4985-4abd-a0b3-ec4d07295a43,...] - -$policy.Rules - -RuleId SourceContainer DestinationContainer Filters.PrefixMatch Filters.MinCreationTime ------- --------------- -------------------- ------------------- ----------------------- -d3d39a01-8d92-40e5-849f-e56209ae5cf5 src1 dest1 {} -2407de9a-3301-4656-858f-359d185565e0 src dest {a, abc, dd} 2019-01-01T16:00:00Z - - This command gets an object replication policy with specific policy Id and show its rules. - - - - - - Example 2:List object replication policy from a Storage account - $policies = Get-AzStorageObjectReplicationPolicy -ResourceGroupName "myresourcegroup" -AccountName "mydestaccount" - -$policies - -ResourceGroupName StorageAccountName PolicyId EnabledTime SourceAccount DestinationAccount Rules ------------------ ------------------ -------- ----------- ------------- ------------------ ----- -myresourcegroup mydestaccount 56bfa11c-81ef-4f8d-b307-5e5386e16fba mysrcaccount1 mydestaccount [5fa8b1d6-4985-4abd-a0b3-ec4d07295a43,...] -myresourcegroup mydestaccount 68434c7a-20d0-4282-b75c-43b5a243435e mysrcaccount2 mydestaccount [d3d39a01-8d92-40e5-849f-e56209ae5cf5,...] - - This command lists object replication policy from a Storage account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageobjectreplicationpolicy - - - - - - Get-AzStorageUsage - Get - AzStorageUsage - - Gets the Storage resource usage of the current subscription. - - - - The Get-AzStorageUsage cmdlet gets the resource usage for Azure Storage for the current subscription. - - - - Get-AzStorageUsage - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Location - - Indicate to get Storage resources usage on the specified location. If not specified, will get Storage resources usage on all locations under the subscription. - - System.String - - System.String - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Location - - Indicate to get Storage resources usage on the specified location. If not specified, will get Storage resources usage on all locations under the subscription. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSUsage - - - - - - - - - - - - - - Example 1: Get the storage resources usage of specified location - Get-AzStorageUsage -Location 'West US' - -LocalizedName : Storage Accounts -Name : StorageAccounts -Unit : Count -CurrentValue : 18 -Limit : 250 - - This command gets the Storage resources usage of specified location under the current subscription. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageusage - - - Azure Storage Manager Cmdlets - - - - - - - Invoke-AzRmStorageContainerImmutableStorageWithVersioningMigration - Invoke - AzRmStorageContainerImmutableStorageWithVersioningMigration - - Migrate an existing Storage blob containers to enable immutable Storage with versioning. - - - - The Invoke-AzRmStorageContainerImmutableStorageWithVersioningMigration cmdlet migrates an existing Storage blob containers to enable immutable Storage with versioning. The cmdlet only works when the Storage account has already enabled blob versioning, and the containers already has ImmutabilityPolicy. - - - - Invoke-AzRmStorageContainerImmutableStorageWithVersioningMigration - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Invoke-AzRmStorageContainerImmutableStorageWithVersioningMigration - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Invoke-AzRmStorageContainerImmutableStorageWithVersioningMigration - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - - - - - - - - - - - - Example 1: Migrates an existing Storage blob containers to enable immutable Storage with versioning. - $t = Invoke-AzRmStorageContainerImmutableStorageWithVersioningMigration -ResourceGroupName "myResourceGroup" -AccountName "mystorageaccount" -Name testcontainer -asjob - -$t | Wait-Job - - This command migrates an existing Storage blob containers to enable immutable Storage with versioning. The command only works when the Storage account has already enabled blob versioning, and the containers already has ImmutabilityPolicy. Since the command ussually will run for a long time, you can run it asynchronously with '-Asjob'. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/invoke-azrmstoragecontainerimmutablestoragewithversioningmigration - - - - - - Invoke-AzStorageAccountFailover - Invoke - AzStorageAccountFailover - - Invokes failover of a Storage account. - - - - Invokes failover of a Storage account. Failover request can be triggered for a storage account in case of availability issues. The failover occurs from the storage account's primary cluster to secondary cluster for RA-GRS accounts. The secondary cluster will become primary after failover. Please understand the following impact to your storage account before you initiate the failover: 1.1. Please check the Last Sync Time using GET Blob Service Stats (https://learn.microsoft.com/rest/api/storageservices/get-blob-service-stats), GET Table Service Stats (https://learn.microsoft.com/rest/api/storageservices/get-table-service-stats) and GET Queue Service Stats (https://learn.microsoft.com/rest/api/storageservices/get-queue-service-stats) for your account. This is the data you may lose if you initiate the failover. 2.After the failover, your storage account type will be converted to locally redundant storage(LRS). You can convert your account to use geo-redundant storage(GRS). 3.Once you re-enable GRS for your storage account, Microsoft will replicate data to your new secondary region. Replication time is dependent on the amount of data to replicate. Please note that there are bandwidth charges for the bootstrap. https://azure.microsoft.com/en-us/pricing/details/bandwidth/ - - - - Invoke-AzStorageAccountFailover - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to Failover the Account - - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Invoke-AzStorageAccountFailover - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - Name - - Storage Account Name. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to Failover the Account - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to Failover the Account - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Name - - Storage Account Name. - - System.String - - System.String - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - - - - - ------- Example 1: Invoke failover of a Storage account ------- - $account = Get-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -IncludeGeoReplicationStats -$account.GeoReplicationStats - -Status LastSyncTime ------- ------------ -Live 11/13/2018 2:44:22 AM - -$job = Invoke-AzStorageAccountFailover -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -Force -AsJob -$job | Wait-Job - - This command check the last sync time of a Storage account then invokes failover of it, the secondary cluster will become primary after failover. Since failover takes a long time, suggest to run it in the backend with -Asjob parameter, and then wait for the job complete. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/Az.storage/invoke-Azstorageaccountfailover - - - - - - Invoke-AzStorageAccountHierarchicalNamespaceUpgrade - Invoke - AzStorageAccountHierarchicalNamespaceUpgrade - - Validates if a storage account can be upgraded to enable HierarchicalNamespace, or upgrades a Storage account to enabled HierarchicalNamespace. - - - - The Invoke-AzStorageAccountHierarchicalNamespaceUpgrade cmdlet can validate if a storage account can be upgraded to enable HierarchicalNamespace, or upgrades a Storage account to enabled HierarchicalNamespace. - - - - Invoke-AzStorageAccountHierarchicalNamespaceUpgrade - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to Failover the Account - - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - RequestType - - The HierarchicalNamespaceUpgrade requestType to run: - Validation: Validate if the account can be upgrade to enable HierarchicalNamespace. - - Upgrade: Upgrade the storage account to enable HierarchicalNamespace. - - - Validation - Upgrade - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Invoke-AzStorageAccountHierarchicalNamespaceUpgrade - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - Name - - Storage Account Name. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to Failover the Account - - - System.Management.Automation.SwitchParameter - - - False - - - RequestType - - The HierarchicalNamespaceUpgrade requestType to run: - Validation: Validate if the account can be upgrade to enable HierarchicalNamespace. - - Upgrade: Upgrade the storage account to enable HierarchicalNamespace. - - - Validation - Upgrade - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to Failover the Account - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Name - - Storage Account Name. - - System.String - - System.String - - - None - - - RequestType - - The HierarchicalNamespaceUpgrade requestType to run: - Validation: Validate if the account can be upgrade to enable HierarchicalNamespace. - - Upgrade: Upgrade the storage account to enable HierarchicalNamespace. - - System.String - - System.String - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - - - - - Example 1: Validate a stroage account can be upgrade to enable HierarchicalNamespace, then upgrade it to enabled HierarchicalNamespace - Invoke-AzStorageAccountHierarchicalNamespaceUpgrade -ResourceGroupName $rgname -Name $accountName -RequestType Validation -True - -$task = Invoke-AzStorageAccountHierarchicalNamespaceUpgrade -ResourceGroupName $rgname -Name $accountName -RequestType Upgrade -Force -AsJob - -$task | Wait-Job - - The first command validates if a stroage account can be upgrade to enable HierarchicalNamespace. The second command upgrade the storage account to enable HierarchicalNamespace. Since the upgrade will take time, use '-Asjob' to run it in backend, and return a task. Then wait for the task finish. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/invoke-azstorageaccounthierarchicalnamespaceupgrade - - - - - - Lock-AzRmStorageContainerImmutabilityPolicy - Lock - AzRmStorageContainerImmutabilityPolicy - - Locks ImmutabilityPolicy of a Storage blob containers - - - - The Lock-AzRmStorageContainerImmutabilityPolicy cmdlet locks ImmutabilityPolicy of a Storage blob containers. - - - - Lock-AzRmStorageContainerImmutabilityPolicy - - Container - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. - - System.String - - System.String - - - None - - - Force - - Force to remove the ImmutabilityPolicy. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Lock-AzRmStorageContainerImmutabilityPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - ContainerName - - Container Name - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. - - System.String - - System.String - - - None - - - Force - - Force to remove the ImmutabilityPolicy. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Lock-AzRmStorageContainerImmutabilityPolicy - - ContainerName - - Container Name - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. - - System.String - - System.String - - - None - - - Force - - Force to remove the ImmutabilityPolicy. - - - System.Management.Automation.SwitchParameter - - - False - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Lock-AzRmStorageContainerImmutabilityPolicy - - InputObject - - ImmutabilityPolicy Object to Remove - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to remove the ImmutabilityPolicy. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Container - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - ContainerName - - Container Name - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. - - System.String - - System.String - - - None - - - Force - - Force to remove the ImmutabilityPolicy. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - ImmutabilityPolicy Object to Remove - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - - - - - - - - - - - - - Example 1: Lock ImmutabilityPolicy of a Storage blob container with Storage account name and container name - $policy = Get-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -ContainerName "myContainer" -Lock-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -ContainerName "myContainer" -Etag $policy.Etag - - This command Locks ImmutabilityPolicy of a Storage blob container with Storage account name and container name. - - - - - - Example 2: Lock ImmutabilityPolicy of a Storage blob container, with Storage account object - $accountObject = Get-AzStorageAccount -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -$policy = Get-AzRmStorageContainerImmutabilityPolicy -StorageAccount $accountObject -ContainerName "myContainer" -Lock-AzRmStorageContainerImmutabilityPolicy -StorageAccount $accountObject -ContainerName "myContainer" -Etag $policy.Etag -Force - - This command locks ImmutabilityPolicy of a Storage blob container, with Storage account object. - - - - - - Example 3: Lock ImmutabilityPolicyof a Storage blob container, with container object - $containerObject = Get-AzRmStorageContainer -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -Name "myContainer" -$policy = Get-AzRmStorageContainerImmutabilityPolicy -Container $containerObject -Lock-AzRmStorageContainerImmutabilityPolicy -Container $containerObject -Etag $policy.Etag -Force - - This command locks ImmutabilityPolicy of a Storage blob container with Storage container object. - - - - - - Example 4: Lock ImmutabilityPolicy of a Storage blob container, with ImmutabilityPolicy object - Get-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -ContainerName "myContainer" | Lock-AzRmStorageContainerImmutabilityPolicy -Force - - This command locks ImmutabilityPolicy of a Storage blob container, with ImmutabilityPolicy object. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/lock-azrmstoragecontainerimmutabilitypolicy - - - - - - New-AzRmStorageContainer - New - AzRmStorageContainer - - Creates a Storage blob container - - - - The New-AzRmStorageContainer cmdlet creates a Storage blob container - - - - New-AzRmStorageContainer - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultEncryptionScope - - Default the container to use specified encryption scope for all writes. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnableImmutableStorageWithVersioning - - Enable immutable Storage with versioning at the container level. - - - System.Management.Automation.SwitchParameter - - - False - - - Metadata - - Container Metadata - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - PreventEncryptionScopeOverride - - Block override of encryption scope from the container default. - - System.Boolean - - System.Boolean - - - None - - - PublicAccess - - Container PublicAccess - - - Container - Blob - None - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - - None - - - RootSquash - - Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' - - - NoRootSquash - RootSquash - AllSquash - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzRmStorageContainer - - DefaultEncryptionScope - - Default the container to use specified encryption scope for all writes. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnableImmutableStorageWithVersioning - - Enable immutable Storage with versioning at the container level. - - - System.Management.Automation.SwitchParameter - - - False - - - Metadata - - Container Metadata - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - PreventEncryptionScopeOverride - - Block override of encryption scope from the container default. - - System.Boolean - - System.Boolean - - - None - - - PublicAccess - - Container PublicAccess - - - Container - Blob - None - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - - None - - - RootSquash - - Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' - - - NoRootSquash - RootSquash - AllSquash - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzRmStorageContainer - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnableImmutableStorageWithVersioning - - Enable immutable Storage with versioning at the container level. - - - System.Management.Automation.SwitchParameter - - - False - - - Metadata - - Container Metadata - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - PublicAccess - - Container PublicAccess - - - Container - Blob - None - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - - None - - - RootSquash - - Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' - - - NoRootSquash - RootSquash - AllSquash - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzRmStorageContainer - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnableImmutableStorageWithVersioning - - Enable immutable Storage with versioning at the container level. - - - System.Management.Automation.SwitchParameter - - - False - - - Metadata - - Container Metadata - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - PublicAccess - - Container PublicAccess - - - Container - Blob - None - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - - None - - - RootSquash - - Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' - - - NoRootSquash - RootSquash - AllSquash - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultEncryptionScope - - Default the container to use specified encryption scope for all writes. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnableImmutableStorageWithVersioning - - Enable immutable Storage with versioning at the container level. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Metadata - - Container Metadata - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - PreventEncryptionScopeOverride - - Block override of encryption scope from the container default. - - System.Boolean - - System.Boolean - - - None - - - PublicAccess - - Container PublicAccess - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - RootSquash - - Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - - - - - - - - - - - - Example 1: Create a Storage blob container with Storage account name and container name, with metadata - New-AzRmStorageContainer -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -ContainerName "myContainer" -Metadata @{tag0="value0";tag1="value1";tag2="value2"} - - This command creates a Storage blob container with Storage account name and container name, with metadata. - - - - - - Example 2: Create a Storage blob container with Storage account object and container name, with public access as Blob - $accountObject = Get-AzStorageAccount -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -New-AzRmStorageContainer -StorageAccount $accountObject -ContainerName "myContainer" -PublicAccess Blob - - This command creates a Storage blob container with Storage account object and container name, with public access as Blob. - - - - - - Example 3: Create a storage container with EncryptionScope setting - $c = New-AzRmStorageContainer -ResourceGroupName "myResourceGroup" -AccountName "mystorageaccount" -Name testcontainer -DefaultEncryptionScope "testscope" -PreventEncryptionScopeOverride $true - -$c - - ResourceGroupName: myResourceGroup, StorageAccountName: mystorageaccount - -Name PublicAccess LastModified HasLegalHold HasImmutabilityPolicy ----- ------------ ------------ ------------ --------------------- -testcontainer False False - -$c.DefaultEncryptionScope -testscope - -$c.DenyEncryptionScopeOverride -True - - This command creates a storage container with a defalt encryptionScope, and blocks override of encryption scope from the container default. Then show the related container properties. - - - - - - - Example 4: Create an Azure storage container with RootSquash - - $container = New-AzRmStorageContainer -ResourceGroupName "myersourcegroup" -AccountName "mystorageaccount" -Name "mycontainer" -RootSquash AllSquash - -$container.EnableNfsV3AllSquash -True - -$container.EnableNfsV3RootSquash -False - - This command creates a storage container, with RootSquash property set as AllSquash. RootSquash only works on a storage account that enabled NfsV3. - - - - - - Example 5: Create a storage container and enable immutable Storage with versioning - $c = New-AzRmStorageContainer -ResourceGroupName "myResourceGroup" -AccountName "mystorageaccount" -Name testcontainer -EnableImmutableStorageWithVersioning - -$c - -ResourceGroupName: myResourceGroup, StorageAccountName: mystorageaccount - -Name PublicAccess LastModified HasLegalHold HasImmutabilityPolicy Deleted VersionId ImmutableStorageWithVersioning ----- ------------ ------------ ------------ --------------------- ------- --------- ------------------------------ -testcontainer None 2021-07-19 08:26:19Z False False False True - - This command creates a storage container and enable immutable Storage with versioning. The command only works when the Storage account has already enabled blob versioning. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azrmstoragecontainer - - - - - - New-AzRmStorageShare - New - AzRmStorageShare - - Creates a Storage file share. - - - - The New-AzRmStorageShare cmdlet creates a Storage file share. - - - - New-AzRmStorageShare - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - AccessTier - - Access tier for specific share. StorageV2 account can choose between TransactionOptimized (default), Hot, and Cool. FileStorage account can choose Premium. - - - TransactionOptimized - Premium - Hot - Cool - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnabledProtocol - - Sets protocols for file shares. It cannot be changed after file share creation. Possible values include: 'SMB', 'NFS' - - - NFS - SMB - - System.String - - System.String - - - None - - - Metadata - - Share Metadata - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Name - - Azure File share name - - System.String - - System.String - - - None - - - QuotaGiB - - Share Quota in Gibibyte. - - System.Int32 - - System.Int32 - - - None - - - RootSquash - - Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' - - - NoRootSquash - RootSquash - AllSquash - - System.String - - System.String - - - None - - - Snapshot - - Create a snapshot of existing share with same name. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzRmStorageShare - - AccessTier - - Access tier for specific share. StorageV2 account can choose between TransactionOptimized (default), Hot, and Cool. FileStorage account can choose Premium. - - - TransactionOptimized - Premium - Hot - Cool - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnabledProtocol - - Sets protocols for file shares. It cannot be changed after file share creation. Possible values include: 'SMB', 'NFS' - - - NFS - SMB - - System.String - - System.String - - - None - - - Metadata - - Share Metadata - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Name - - Azure File share name - - System.String - - System.String - - - None - - - QuotaGiB - - Share Quota in Gibibyte. - - System.Int32 - - System.Int32 - - - None - - - RootSquash - - Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' - - - NoRootSquash - RootSquash - AllSquash - - System.String - - System.String - - - None - - - Snapshot - - Create a snapshot of existing share with same name. - - - System.Management.Automation.SwitchParameter - - - False - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AccessTier - - Access tier for specific share. StorageV2 account can choose between TransactionOptimized (default), Hot, and Cool. FileStorage account can choose Premium. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnabledProtocol - - Sets protocols for file shares. It cannot be changed after file share creation. Possible values include: 'SMB', 'NFS' - - System.String - - System.String - - - None - - - Metadata - - Share Metadata - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Name - - Azure File share name - - System.String - - System.String - - - None - - - QuotaGiB - - Share Quota in Gibibyte. - - System.Int32 - - System.Int32 - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - RootSquash - - Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' - - System.String - - System.String - - - None - - - Snapshot - - Create a snapshot of existing share with same name. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - - - - - - - - - - - - - Example 1: Create a Storage file share with Storage account name and share name, with metadata and share quota as 100 GiB. - New-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -Name "myshare" -QuotaGiB 100 -Metadata @{"tag1" = "value1"; "tag2" = "value2" } - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocol AccessTier Deleted Version ShareUsageBytes ----- -------- --------------- ---------- ------- ------- --------------- -myshare - - This command creates a Storage file share with metadata and share quota as 100 GiB. - - - - - - Example 2: Create a Storage file share with Storage account object - Get-AzStorageAccount -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" | New-AzRmStorageShare -Name "myshare" - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocol AccessTier Deleted Version ShareUsageBytes ----- -------- --------------- ---------- ------- ------- --------------- -myshare - - This command creates a Storage file share with Storage account object and share name. - - - - - - Example 3: Create a Storage file share with accesstier as Hot - $share = New-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -Name "myshare" -AccessTier Hot - - ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes ----- -------- ---------------- ---------- ------- ------- --------------- -myshare Hot - - This command creates a Storage file share with accesstier as Hot. - - - - - - Example 4: Create a Storage file share snapshot of an existing share - $shareSnapshot = New-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -Name "myshare" -Snapshot - - ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes snapshotTime ----- -------- ---------------- ---------- ------- ------- --------------- ------------ -myshare 2021-05-10T08:04:08 - - This command creates a Storage file share snapshot of an existing base file share. - - - - - - Example 5: Create a Storage file share with EnabledProtocol proeprty as NFS, and RootSquash property as NoRootSquash - $share = New-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -Name "myshare" -EnabledProtocol NFS -RootSquash NoRootSquash - -$share - - ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes ----- -------- ---------------- ---------- ------- ------- --------------- -myshare NFS - -$share.RootSquash -NoRootSquash - - This command creates a Storage file share with EnabledProtocol proeprty as NFS, and RootSquash proeprty as NoRootSquash. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azrmstorageshare - - - - - - New-AzStorageAccount - New - AzStorageAccount - - Creates a Storage account. - - - - The New-AzStorageAccount cmdlet creates an Azure Storage account. - - - - New-AzStorageAccount - - ResourceGroupName - - Specifies the name of the resource group in which to add the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account to create. - - System.String - - System.String - - - None - - - SkuName - - Specifies the SKU name of the Storage account that this cmdlet creates. The acceptable values for this parameter are: - Standard_LRS. Locally-redundant storage. - - Standard_ZRS. Zone-redundant storage. - - Standard_GRS. Geo-redundant storage. - - Standard_RAGRS. Read access geo-redundant storage. - - Premium_LRS. Premium locally-redundant storage. - - Premium_ZRS. Premium zone-redundant storage. - - Standard_GZRS - Geo-redundant zone-redundant storage. - - Standard_RAGZRS - Read access geo-redundant zone-redundant storage. - - - Standard_LRS - Standard_ZRS - Standard_GRS - Standard_RAGRS - Premium_LRS - Premium_ZRS - Standard_GZRS - Standard_RAGZRS - - System.String - - System.String - - - None - - - Location - - Specifies the location of the Storage account to create. - - System.String - - System.String - - - None - - - AccessTier - - Specifies the access tier of the Storage account that this cmdlet creates. The acceptable values for this parameter are: Hot and Cool. If you specify a value of BlobStorage for the Kind parameter, you must specify a value for the AccessTier parameter. If you specify a value of Storage for this Kind parameter, do not specify the AccessTier parameter. - - - Hot - Cool - Cold - - System.String - - System.String - - - None - - - ActiveDirectoryAccountType - - Specifies the Active Directory account type for Azure Storage. Possible values include: 'User', 'Computer'. - - System.String - - System.String - - - None - - - ActiveDirectoryAzureStorageSid - - Specifies the security identifier (SID) for Azure Storage. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryDomainGuid - - Specifies the domain GUID. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryDomainName - - Specifies the primary domain that the AD DNS server is authoritative for. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryDomainSid - - Specifies the security identifier (SID). This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryForestName - - Specifies the Active Directory forest to get. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryNetBiosDomainName - - Specifies the NetBIOS domain name. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectorySamAccountName - - Specifies the Active Directory SAMAccountName for Azure Storage. - - System.String - - System.String - - - None - - - AllowBlobPublicAccess - - Allow anonymous access to all blobs or containers in the storage account. The default interpretation is false for this property. - - System.Boolean - - System.Boolean - - - None - - - AllowCrossTenantReplication - - Gets or sets allow or disallow cross Microsoft Entra tenant object replication. The default interpretation is false for this property. - - System.Boolean - - System.Boolean - - - None - - - AllowedCopyScope - - Set restrict copy to and from Storage Accounts within a Microsoft Entra tenant or with Private Links to the same VNet. Possible values include: 'PrivateLink', 'AAD' - - System.String - - System.String - - - None - - - AllowSharedKeyAccess - - Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Microsoft Entra ID. The default value is null, which is equivalent to true. - - System.Boolean - - System.Boolean - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - AssignIdentity - - Generate and assign a new Storage account Identity for this Storage account for use with key management services like Azure KeyVault. - - - System.Management.Automation.SwitchParameter - - - False - - - CustomDomainName - - Specifies the name of the custom domain of the Storage account. The default value is Storage. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultSharePermission - - Default share permission for users using Kerberos authentication if RBAC role is not assigned. - - - None - StorageFileDataSmbShareContributor - StorageFileDataSmbShareReader - StorageFileDataSmbShareElevatedContributor - - System.String - - System.String - - - None - - - DnsEndpointType - - Specify the type of endpoint. Set this to AzureDNSZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier. Possible values include: 'Standard', 'AzureDnsZone'. - - System.String - - System.String - - - None - - - EdgeZone - - Set the extended location name for EdgeZone. If not set, the storage account will be created in Azure main region. Otherwise it will be created in the specified extended location - - System.String - - System.String - - - None - - - EnableAccountLevelImmutability - - Enables account-level immutability, then all the containers under this account will have object-level immutability enabled by default. - - - System.Management.Automation.SwitchParameter - - - False - - - EnableActiveDirectoryDomainServicesForFile - - Enable Azure Files Active Directory Domain Service Authentication for the storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableHierarchicalNamespace - - Indicates whether or not the Storage account enables Hierarchical Namespace. - - System.Boolean - - System.Boolean - - - None - - - EnableHttpsTrafficOnly - - Indicates whether or not the Storage account only enables HTTPS traffic. - - System.Boolean - - System.Boolean - - - None - - - EnableLargeFileShare - - Indicates whether or not the storage account can support large file shares with more than 5 TiB capacity. Once the account is enabled, the feature cannot be disabled. Currently only supported for LRS and ZRS replication types, hence account conversions to geo-redundant accounts would not be possible. Learn more in https://go.microsoft.com/fwlink/?linkid=2086047 - - - System.Management.Automation.SwitchParameter - - - False - - - EnableLocalUser - - Enable local users feature for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableNfsV3 - - Enable NFS 3.0 protocol support if sets to true - - System.Boolean - - System.Boolean - - - None - - - EnableSftp - - Enable Secure File Transfer Protocol for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - EncryptionKeyTypeForQueue - - Set the Encryption KeyType for Queue. The default value is Service. -Account: Queue will be encrypted with account-scoped encryption key. -Service: Queue will always be encrypted with Service-Managed keys. - - - Service - Account - - System.String - - System.String - - - None - - - EncryptionKeyTypeForTable - - Set the Encryption KeyType for Table. The default value is Service. - Account: Table will be encrypted with account-scoped encryption key. - - Service: Table will always be encrypted with Service-Managed keys. - - - Service - Account - - System.String - - System.String - - - None - - - IdentityType - - Set the new Storage Account Identity type, the idenetity is for use with key management services like Azure KeyVault. - - - SystemAssigned - UserAssigned - SystemAssignedUserAssigned - None - - System.String - - System.String - - - None - - - ImmutabilityPeriod - - The immutability period for the blobs in the container since the policy creation in days. This property can only be only be specified with '-EnableAccountLevelImmutability'. - - System.Int32 - - System.Int32 - - - None - - - ImmutabilityPolicyState - - The mode of the policy. Possible values include: 'Unlocked', 'Disabled. Disabled state disablesthe policy. Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. This property can only be specified with '-EnableAccountLevelImmutability'. - - System.String - - System.String - - - None - - - KeyExpirationPeriodInDay - - The Key expiration period of this account, it is accurate to days. - - System.Int32 - - System.Int32 - - - None - - - KeyName - - Storage Account encryption keySource KeyVault KeyName - - System.String - - System.String - - - None - - - KeyVaultFederatedClientId - - Set ClientId of the multi-tenant application to be used in conjunction with the user-assigned identity for cross-tenant customer-managed-keys server-side encryption on the storage account. - - System.String - - System.String - - - None - - - KeyVaultUri - - Storage Account encryption keySource KeyVault KeyVaultUri - - System.String - - System.String - - - None - - - KeyVaultUserAssignedIdentityId - - Set resource id for user assigned Identity used to access Azure KeyVault of Storage Account Encryption, the id must in UserAssignIdentityId. - - System.String - - System.String - - - None - - - KeyVersion - - Storage Account encryption keySource KeyVault KeyVersion - - System.String - - System.String - - - None - - - Kind - - Specifies the kind of Storage account that this cmdlet creates. The acceptable values for this parameter are: - Storage. General purpose Storage account that supports storage of Blobs, Tables, Queues, Files and Disks. - - StorageV2. General Purpose Version 2 (GPv2) Storage account that supports Blobs, Tables, Queues, Files, and Disks, with advanced features like data tiering. - - BlobStorage. Blob Storage account which supports storage of Blobs only. - - BlockBlobStorage. Block Blob Storage account which supports storage of Block Blobs only. - - FileStorage. File Storage account which supports storage of Files only. - The default value is StorageV2. - - - Storage - StorageV2 - BlobStorage - BlockBlobStorage - FileStorage - - System.String - - System.String - - - StorageV2 - - - MinimumTlsVersion - - The minimum TLS version to be permitted on requests to storage. The default interpretation is TLS 1.0 for this property. - - - TLS1_0 - TLS1_1 - TLS1_2 - TLS1_3 - - System.String - - System.String - - - None - - - NetworkRuleSet - - NetworkRuleSet is used to define a set of configuration rules for firewalls and virtual networks, as well as to set values for network properties such as services allowed to bypass the rules and how to handle requests that don't match any of the defined rules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - - None - - - PublicNetworkAccess - - Allow or disallow public network access to Storage Account.Possible values include: 'Enabled', 'Disabled'. - - System.String - - System.String - - - None - - - PublishInternetEndpoint - - Indicates whether internet routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - PublishMicrosoftEndpoint - - Indicates whether microsoft routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - RequireInfrastructureEncryption - - The service will apply a secondary layer of encryption with platform managed keys for data at rest. - - - System.Management.Automation.SwitchParameter - - - False - - - RoutingChoice - - Routing Choice defines the kind of network routing opted by the user. Possible values include: 'MicrosoftRouting', 'InternetRouting' - - - MicrosoftRouting - InternetRouting - - System.String - - System.String - - - None - - - SasExpirationPeriod - - The SAS expiration period of this account, it is a timespan and accurate to seconds. - - System.TimeSpan - - System.TimeSpan - - - None - - - Tag - - Key-value pairs in the form of a hash table set as tags on the server. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UserAssignedIdentityId - - Set resource ids for the new Storage Account user assigned Identity, the identity will be used with key management services like Azure KeyVault. - - System.String - - System.String - - - None - - - UseSubDomain - - Indicates whether to enable indirect CName validation. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - - New-AzStorageAccount - - ResourceGroupName - - Specifies the name of the resource group in which to add the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account to create. - - System.String - - System.String - - - None - - - SkuName - - Specifies the SKU name of the Storage account that this cmdlet creates. The acceptable values for this parameter are: - Standard_LRS. Locally-redundant storage. - - Standard_ZRS. Zone-redundant storage. - - Standard_GRS. Geo-redundant storage. - - Standard_RAGRS. Read access geo-redundant storage. - - Premium_LRS. Premium locally-redundant storage. - - Premium_ZRS. Premium zone-redundant storage. - - Standard_GZRS - Geo-redundant zone-redundant storage. - - Standard_RAGZRS - Read access geo-redundant zone-redundant storage. - - - Standard_LRS - Standard_ZRS - Standard_GRS - Standard_RAGRS - Premium_LRS - Premium_ZRS - Standard_GZRS - Standard_RAGZRS - - System.String - - System.String - - - None - - - Location - - Specifies the location of the Storage account to create. - - System.String - - System.String - - - None - - - AccessTier - - Specifies the access tier of the Storage account that this cmdlet creates. The acceptable values for this parameter are: Hot and Cool. If you specify a value of BlobStorage for the Kind parameter, you must specify a value for the AccessTier parameter. If you specify a value of Storage for this Kind parameter, do not specify the AccessTier parameter. - - - Hot - Cool - Cold - - System.String - - System.String - - - None - - - ActiveDirectoryDomainGuid - - Specifies the domain GUID. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryDomainName - - Specifies the primary domain that the AD DNS server is authoritative for. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - AllowBlobPublicAccess - - Allow anonymous access to all blobs or containers in the storage account. The default interpretation is false for this property. - - System.Boolean - - System.Boolean - - - None - - - AllowCrossTenantReplication - - Gets or sets allow or disallow cross Microsoft Entra tenant object replication. The default interpretation is false for this property. - - System.Boolean - - System.Boolean - - - None - - - AllowedCopyScope - - Set restrict copy to and from Storage Accounts within a Microsoft Entra tenant or with Private Links to the same VNet. Possible values include: 'PrivateLink', 'AAD' - - System.String - - System.String - - - None - - - AllowSharedKeyAccess - - Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Microsoft Entra ID. The default value is null, which is equivalent to true. - - System.Boolean - - System.Boolean - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - AssignIdentity - - Generate and assign a new Storage account Identity for this Storage account for use with key management services like Azure KeyVault. - - - System.Management.Automation.SwitchParameter - - - False - - - CustomDomainName - - Specifies the name of the custom domain of the Storage account. The default value is Storage. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultSharePermission - - Default share permission for users using Kerberos authentication if RBAC role is not assigned. - - - None - StorageFileDataSmbShareContributor - StorageFileDataSmbShareReader - StorageFileDataSmbShareElevatedContributor - - System.String - - System.String - - - None - - - DnsEndpointType - - Specify the type of endpoint. Set this to AzureDNSZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier. Possible values include: 'Standard', 'AzureDnsZone'. - - System.String - - System.String - - - None - - - EdgeZone - - Set the extended location name for EdgeZone. If not set, the storage account will be created in Azure main region. Otherwise it will be created in the specified extended location - - System.String - - System.String - - - None - - - EnableAccountLevelImmutability - - Enables account-level immutability, then all the containers under this account will have object-level immutability enabled by default. - - - System.Management.Automation.SwitchParameter - - - False - - - EnableAzureActiveDirectoryKerberosForFile - - Enable Azure Files Active Directory Domain Service Kerberos Authentication for the storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableHierarchicalNamespace - - Indicates whether or not the Storage account enables Hierarchical Namespace. - - System.Boolean - - System.Boolean - - - None - - - EnableHttpsTrafficOnly - - Indicates whether or not the Storage account only enables HTTPS traffic. - - System.Boolean - - System.Boolean - - - None - - - EnableLargeFileShare - - Indicates whether or not the storage account can support large file shares with more than 5 TiB capacity. Once the account is enabled, the feature cannot be disabled. Currently only supported for LRS and ZRS replication types, hence account conversions to geo-redundant accounts would not be possible. Learn more in https://go.microsoft.com/fwlink/?linkid=2086047 - - - System.Management.Automation.SwitchParameter - - - False - - - EnableLocalUser - - Enable local users feature for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableNfsV3 - - Enable NFS 3.0 protocol support if sets to true - - System.Boolean - - System.Boolean - - - None - - - EnableSftp - - Enable Secure File Transfer Protocol for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - EncryptionKeyTypeForQueue - - Set the Encryption KeyType for Queue. The default value is Service. -Account: Queue will be encrypted with account-scoped encryption key. -Service: Queue will always be encrypted with Service-Managed keys. - - - Service - Account - - System.String - - System.String - - - None - - - EncryptionKeyTypeForTable - - Set the Encryption KeyType for Table. The default value is Service. - Account: Table will be encrypted with account-scoped encryption key. - - Service: Table will always be encrypted with Service-Managed keys. - - - Service - Account - - System.String - - System.String - - - None - - - IdentityType - - Set the new Storage Account Identity type, the idenetity is for use with key management services like Azure KeyVault. - - - SystemAssigned - UserAssigned - SystemAssignedUserAssigned - None - - System.String - - System.String - - - None - - - ImmutabilityPeriod - - The immutability period for the blobs in the container since the policy creation in days. This property can only be only be specified with '-EnableAccountLevelImmutability'. - - System.Int32 - - System.Int32 - - - None - - - ImmutabilityPolicyState - - The mode of the policy. Possible values include: 'Unlocked', 'Disabled. Disabled state disablesthe policy. Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. This property can only be specified with '-EnableAccountLevelImmutability'. - - System.String - - System.String - - - None - - - KeyExpirationPeriodInDay - - The Key expiration period of this account, it is accurate to days. - - System.Int32 - - System.Int32 - - - None - - - KeyName - - Storage Account encryption keySource KeyVault KeyName - - System.String - - System.String - - - None - - - KeyVaultFederatedClientId - - Set ClientId of the multi-tenant application to be used in conjunction with the user-assigned identity for cross-tenant customer-managed-keys server-side encryption on the storage account. - - System.String - - System.String - - - None - - - KeyVaultUri - - Storage Account encryption keySource KeyVault KeyVaultUri - - System.String - - System.String - - - None - - - KeyVaultUserAssignedIdentityId - - Set resource id for user assigned Identity used to access Azure KeyVault of Storage Account Encryption, the id must in UserAssignIdentityId. - - System.String - - System.String - - - None - - - KeyVersion - - Storage Account encryption keySource KeyVault KeyVersion - - System.String - - System.String - - - None - - - Kind - - Specifies the kind of Storage account that this cmdlet creates. The acceptable values for this parameter are: - Storage. General purpose Storage account that supports storage of Blobs, Tables, Queues, Files and Disks. - - StorageV2. General Purpose Version 2 (GPv2) Storage account that supports Blobs, Tables, Queues, Files, and Disks, with advanced features like data tiering. - - BlobStorage. Blob Storage account which supports storage of Blobs only. - - BlockBlobStorage. Block Blob Storage account which supports storage of Block Blobs only. - - FileStorage. File Storage account which supports storage of Files only. - The default value is StorageV2. - - - Storage - StorageV2 - BlobStorage - BlockBlobStorage - FileStorage - - System.String - - System.String - - - StorageV2 - - - MinimumTlsVersion - - The minimum TLS version to be permitted on requests to storage. The default interpretation is TLS 1.0 for this property. - - - TLS1_0 - TLS1_1 - TLS1_2 - TLS1_3 - - System.String - - System.String - - - None - - - NetworkRuleSet - - NetworkRuleSet is used to define a set of configuration rules for firewalls and virtual networks, as well as to set values for network properties such as services allowed to bypass the rules and how to handle requests that don't match any of the defined rules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - - None - - - PublicNetworkAccess - - Allow or disallow public network access to Storage Account.Possible values include: 'Enabled', 'Disabled'. - - System.String - - System.String - - - None - - - PublishInternetEndpoint - - Indicates whether internet routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - PublishMicrosoftEndpoint - - Indicates whether microsoft routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - RequireInfrastructureEncryption - - The service will apply a secondary layer of encryption with platform managed keys for data at rest. - - - System.Management.Automation.SwitchParameter - - - False - - - RoutingChoice - - Routing Choice defines the kind of network routing opted by the user. Possible values include: 'MicrosoftRouting', 'InternetRouting' - - - MicrosoftRouting - InternetRouting - - System.String - - System.String - - - None - - - SasExpirationPeriod - - The SAS expiration period of this account, it is a timespan and accurate to seconds. - - System.TimeSpan - - System.TimeSpan - - - None - - - Tag - - Key-value pairs in the form of a hash table set as tags on the server. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UserAssignedIdentityId - - Set resource ids for the new Storage Account user assigned Identity, the identity will be used with key management services like Azure KeyVault. - - System.String - - System.String - - - None - - - UseSubDomain - - Indicates whether to enable indirect CName validation. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - - New-AzStorageAccount - - ResourceGroupName - - Specifies the name of the resource group in which to add the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account to create. - - System.String - - System.String - - - None - - - SkuName - - Specifies the SKU name of the Storage account that this cmdlet creates. The acceptable values for this parameter are: - Standard_LRS. Locally-redundant storage. - - Standard_ZRS. Zone-redundant storage. - - Standard_GRS. Geo-redundant storage. - - Standard_RAGRS. Read access geo-redundant storage. - - Premium_LRS. Premium locally-redundant storage. - - Premium_ZRS. Premium zone-redundant storage. - - Standard_GZRS - Geo-redundant zone-redundant storage. - - Standard_RAGZRS - Read access geo-redundant zone-redundant storage. - - - Standard_LRS - Standard_ZRS - Standard_GRS - Standard_RAGRS - Premium_LRS - Premium_ZRS - Standard_GZRS - Standard_RAGZRS - - System.String - - System.String - - - None - - - Location - - Specifies the location of the Storage account to create. - - System.String - - System.String - - - None - - - AccessTier - - Specifies the access tier of the Storage account that this cmdlet creates. The acceptable values for this parameter are: Hot and Cool. If you specify a value of BlobStorage for the Kind parameter, you must specify a value for the AccessTier parameter. If you specify a value of Storage for this Kind parameter, do not specify the AccessTier parameter. - - - Hot - Cool - Cold - - System.String - - System.String - - - None - - - AllowBlobPublicAccess - - Allow anonymous access to all blobs or containers in the storage account. The default interpretation is false for this property. - - System.Boolean - - System.Boolean - - - None - - - AllowCrossTenantReplication - - Gets or sets allow or disallow cross Microsoft Entra tenant object replication. The default interpretation is false for this property. - - System.Boolean - - System.Boolean - - - None - - - AllowedCopyScope - - Set restrict copy to and from Storage Accounts within a Microsoft Entra tenant or with Private Links to the same VNet. Possible values include: 'PrivateLink', 'AAD' - - System.String - - System.String - - - None - - - AllowSharedKeyAccess - - Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Microsoft Entra ID. The default value is null, which is equivalent to true. - - System.Boolean - - System.Boolean - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - AssignIdentity - - Generate and assign a new Storage account Identity for this Storage account for use with key management services like Azure KeyVault. - - - System.Management.Automation.SwitchParameter - - - False - - - CustomDomainName - - Specifies the name of the custom domain of the Storage account. The default value is Storage. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultSharePermission - - Default share permission for users using Kerberos authentication if RBAC role is not assigned. - - - None - StorageFileDataSmbShareContributor - StorageFileDataSmbShareReader - StorageFileDataSmbShareElevatedContributor - - System.String - - System.String - - - None - - - DnsEndpointType - - Specify the type of endpoint. Set this to AzureDNSZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier. Possible values include: 'Standard', 'AzureDnsZone'. - - System.String - - System.String - - - None - - - EdgeZone - - Set the extended location name for EdgeZone. If not set, the storage account will be created in Azure main region. Otherwise it will be created in the specified extended location - - System.String - - System.String - - - None - - - EnableAccountLevelImmutability - - Enables account-level immutability, then all the containers under this account will have object-level immutability enabled by default. - - - System.Management.Automation.SwitchParameter - - - False - - - EnableAzureActiveDirectoryDomainServicesForFile - - Enable Azure Files Microsoft Entra Domain Service Authentication for the storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableHierarchicalNamespace - - Indicates whether or not the Storage account enables Hierarchical Namespace. - - System.Boolean - - System.Boolean - - - None - - - EnableHttpsTrafficOnly - - Indicates whether or not the Storage account only enables HTTPS traffic. - - System.Boolean - - System.Boolean - - - None - - - EnableLargeFileShare - - Indicates whether or not the storage account can support large file shares with more than 5 TiB capacity. Once the account is enabled, the feature cannot be disabled. Currently only supported for LRS and ZRS replication types, hence account conversions to geo-redundant accounts would not be possible. Learn more in https://go.microsoft.com/fwlink/?linkid=2086047 - - - System.Management.Automation.SwitchParameter - - - False - - - EnableLocalUser - - Enable local users feature for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableNfsV3 - - Enable NFS 3.0 protocol support if sets to true - - System.Boolean - - System.Boolean - - - None - - - EnableSftp - - Enable Secure File Transfer Protocol for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - EncryptionKeyTypeForQueue - - Set the Encryption KeyType for Queue. The default value is Service. -Account: Queue will be encrypted with account-scoped encryption key. -Service: Queue will always be encrypted with Service-Managed keys. - - - Service - Account - - System.String - - System.String - - - None - - - EncryptionKeyTypeForTable - - Set the Encryption KeyType for Table. The default value is Service. - Account: Table will be encrypted with account-scoped encryption key. - - Service: Table will always be encrypted with Service-Managed keys. - - - Service - Account - - System.String - - System.String - - - None - - - IdentityType - - Set the new Storage Account Identity type, the idenetity is for use with key management services like Azure KeyVault. - - - SystemAssigned - UserAssigned - SystemAssignedUserAssigned - None - - System.String - - System.String - - - None - - - ImmutabilityPeriod - - The immutability period for the blobs in the container since the policy creation in days. This property can only be only be specified with '-EnableAccountLevelImmutability'. - - System.Int32 - - System.Int32 - - - None - - - ImmutabilityPolicyState - - The mode of the policy. Possible values include: 'Unlocked', 'Disabled. Disabled state disablesthe policy. Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. This property can only be specified with '-EnableAccountLevelImmutability'. - - System.String - - System.String - - - None - - - KeyExpirationPeriodInDay - - The Key expiration period of this account, it is accurate to days. - - System.Int32 - - System.Int32 - - - None - - - KeyName - - Storage Account encryption keySource KeyVault KeyName - - System.String - - System.String - - - None - - - KeyVaultFederatedClientId - - Set ClientId of the multi-tenant application to be used in conjunction with the user-assigned identity for cross-tenant customer-managed-keys server-side encryption on the storage account. - - System.String - - System.String - - - None - - - KeyVaultUri - - Storage Account encryption keySource KeyVault KeyVaultUri - - System.String - - System.String - - - None - - - KeyVaultUserAssignedIdentityId - - Set resource id for user assigned Identity used to access Azure KeyVault of Storage Account Encryption, the id must in UserAssignIdentityId. - - System.String - - System.String - - - None - - - KeyVersion - - Storage Account encryption keySource KeyVault KeyVersion - - System.String - - System.String - - - None - - - Kind - - Specifies the kind of Storage account that this cmdlet creates. The acceptable values for this parameter are: - Storage. General purpose Storage account that supports storage of Blobs, Tables, Queues, Files and Disks. - - StorageV2. General Purpose Version 2 (GPv2) Storage account that supports Blobs, Tables, Queues, Files, and Disks, with advanced features like data tiering. - - BlobStorage. Blob Storage account which supports storage of Blobs only. - - BlockBlobStorage. Block Blob Storage account which supports storage of Block Blobs only. - - FileStorage. File Storage account which supports storage of Files only. - The default value is StorageV2. - - - Storage - StorageV2 - BlobStorage - BlockBlobStorage - FileStorage - - System.String - - System.String - - - StorageV2 - - - MinimumTlsVersion - - The minimum TLS version to be permitted on requests to storage. The default interpretation is TLS 1.0 for this property. - - - TLS1_0 - TLS1_1 - TLS1_2 - TLS1_3 - - System.String - - System.String - - - None - - - NetworkRuleSet - - NetworkRuleSet is used to define a set of configuration rules for firewalls and virtual networks, as well as to set values for network properties such as services allowed to bypass the rules and how to handle requests that don't match any of the defined rules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - - None - - - PublicNetworkAccess - - Allow or disallow public network access to Storage Account.Possible values include: 'Enabled', 'Disabled'. - - System.String - - System.String - - - None - - - PublishInternetEndpoint - - Indicates whether internet routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - PublishMicrosoftEndpoint - - Indicates whether microsoft routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - RequireInfrastructureEncryption - - The service will apply a secondary layer of encryption with platform managed keys for data at rest. - - - System.Management.Automation.SwitchParameter - - - False - - - RoutingChoice - - Routing Choice defines the kind of network routing opted by the user. Possible values include: 'MicrosoftRouting', 'InternetRouting' - - - MicrosoftRouting - InternetRouting - - System.String - - System.String - - - None - - - SasExpirationPeriod - - The SAS expiration period of this account, it is a timespan and accurate to seconds. - - System.TimeSpan - - System.TimeSpan - - - None - - - Tag - - Key-value pairs in the form of a hash table set as tags on the server. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UserAssignedIdentityId - - Set resource ids for the new Storage Account user assigned Identity, the identity will be used with key management services like Azure KeyVault. - - System.String - - System.String - - - None - - - UseSubDomain - - Indicates whether to enable indirect CName validation. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - - - - AccessTier - - Specifies the access tier of the Storage account that this cmdlet creates. The acceptable values for this parameter are: Hot and Cool. If you specify a value of BlobStorage for the Kind parameter, you must specify a value for the AccessTier parameter. If you specify a value of Storage for this Kind parameter, do not specify the AccessTier parameter. - - System.String - - System.String - - - None - - - ActiveDirectoryAccountType - - Specifies the Active Directory account type for Azure Storage. Possible values include: 'User', 'Computer'. - - System.String - - System.String - - - None - - - ActiveDirectoryAzureStorageSid - - Specifies the security identifier (SID) for Azure Storage. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryDomainGuid - - Specifies the domain GUID. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryDomainName - - Specifies the primary domain that the AD DNS server is authoritative for. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryDomainSid - - Specifies the security identifier (SID). This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryForestName - - Specifies the Active Directory forest to get. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryNetBiosDomainName - - Specifies the NetBIOS domain name. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectorySamAccountName - - Specifies the Active Directory SAMAccountName for Azure Storage. - - System.String - - System.String - - - None - - - AllowBlobPublicAccess - - Allow anonymous access to all blobs or containers in the storage account. The default interpretation is false for this property. - - System.Boolean - - System.Boolean - - - None - - - AllowCrossTenantReplication - - Gets or sets allow or disallow cross Microsoft Entra tenant object replication. The default interpretation is false for this property. - - System.Boolean - - System.Boolean - - - None - - - AllowedCopyScope - - Set restrict copy to and from Storage Accounts within a Microsoft Entra tenant or with Private Links to the same VNet. Possible values include: 'PrivateLink', 'AAD' - - System.String - - System.String - - - None - - - AllowSharedKeyAccess - - Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Microsoft Entra ID. The default value is null, which is equivalent to true. - - System.Boolean - - System.Boolean - - - None - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - AssignIdentity - - Generate and assign a new Storage account Identity for this Storage account for use with key management services like Azure KeyVault. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - CustomDomainName - - Specifies the name of the custom domain of the Storage account. The default value is Storage. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultSharePermission - - Default share permission for users using Kerberos authentication if RBAC role is not assigned. - - System.String - - System.String - - - None - - - DnsEndpointType - - Specify the type of endpoint. Set this to AzureDNSZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier. Possible values include: 'Standard', 'AzureDnsZone'. - - System.String - - System.String - - - None - - - EdgeZone - - Set the extended location name for EdgeZone. If not set, the storage account will be created in Azure main region. Otherwise it will be created in the specified extended location - - System.String - - System.String - - - None - - - EnableAccountLevelImmutability - - Enables account-level immutability, then all the containers under this account will have object-level immutability enabled by default. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnableActiveDirectoryDomainServicesForFile - - Enable Azure Files Active Directory Domain Service Authentication for the storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableAzureActiveDirectoryDomainServicesForFile - - Enable Azure Files Microsoft Entra Domain Service Authentication for the storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableAzureActiveDirectoryKerberosForFile - - Enable Azure Files Active Directory Domain Service Kerberos Authentication for the storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableHierarchicalNamespace - - Indicates whether or not the Storage account enables Hierarchical Namespace. - - System.Boolean - - System.Boolean - - - None - - - EnableHttpsTrafficOnly - - Indicates whether or not the Storage account only enables HTTPS traffic. - - System.Boolean - - System.Boolean - - - None - - - EnableLargeFileShare - - Indicates whether or not the storage account can support large file shares with more than 5 TiB capacity. Once the account is enabled, the feature cannot be disabled. Currently only supported for LRS and ZRS replication types, hence account conversions to geo-redundant accounts would not be possible. Learn more in https://go.microsoft.com/fwlink/?linkid=2086047 - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnableLocalUser - - Enable local users feature for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableNfsV3 - - Enable NFS 3.0 protocol support if sets to true - - System.Boolean - - System.Boolean - - - None - - - EnableSftp - - Enable Secure File Transfer Protocol for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - EncryptionKeyTypeForQueue - - Set the Encryption KeyType for Queue. The default value is Service. -Account: Queue will be encrypted with account-scoped encryption key. -Service: Queue will always be encrypted with Service-Managed keys. - - System.String - - System.String - - - None - - - EncryptionKeyTypeForTable - - Set the Encryption KeyType for Table. The default value is Service. - Account: Table will be encrypted with account-scoped encryption key. - - Service: Table will always be encrypted with Service-Managed keys. - - System.String - - System.String - - - None - - - IdentityType - - Set the new Storage Account Identity type, the idenetity is for use with key management services like Azure KeyVault. - - System.String - - System.String - - - None - - - ImmutabilityPeriod - - The immutability period for the blobs in the container since the policy creation in days. This property can only be only be specified with '-EnableAccountLevelImmutability'. - - System.Int32 - - System.Int32 - - - None - - - ImmutabilityPolicyState - - The mode of the policy. Possible values include: 'Unlocked', 'Disabled. Disabled state disablesthe policy. Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. This property can only be specified with '-EnableAccountLevelImmutability'. - - System.String - - System.String - - - None - - - KeyExpirationPeriodInDay - - The Key expiration period of this account, it is accurate to days. - - System.Int32 - - System.Int32 - - - None - - - KeyName - - Storage Account encryption keySource KeyVault KeyName - - System.String - - System.String - - - None - - - KeyVaultFederatedClientId - - Set ClientId of the multi-tenant application to be used in conjunction with the user-assigned identity for cross-tenant customer-managed-keys server-side encryption on the storage account. - - System.String - - System.String - - - None - - - KeyVaultUri - - Storage Account encryption keySource KeyVault KeyVaultUri - - System.String - - System.String - - - None - - - KeyVaultUserAssignedIdentityId - - Set resource id for user assigned Identity used to access Azure KeyVault of Storage Account Encryption, the id must in UserAssignIdentityId. - - System.String - - System.String - - - None - - - KeyVersion - - Storage Account encryption keySource KeyVault KeyVersion - - System.String - - System.String - - - None - - - Kind - - Specifies the kind of Storage account that this cmdlet creates. The acceptable values for this parameter are: - Storage. General purpose Storage account that supports storage of Blobs, Tables, Queues, Files and Disks. - - StorageV2. General Purpose Version 2 (GPv2) Storage account that supports Blobs, Tables, Queues, Files, and Disks, with advanced features like data tiering. - - BlobStorage. Blob Storage account which supports storage of Blobs only. - - BlockBlobStorage. Block Blob Storage account which supports storage of Block Blobs only. - - FileStorage. File Storage account which supports storage of Files only. - The default value is StorageV2. - - System.String - - System.String - - - StorageV2 - - - Location - - Specifies the location of the Storage account to create. - - System.String - - System.String - - - None - - - MinimumTlsVersion - - The minimum TLS version to be permitted on requests to storage. The default interpretation is TLS 1.0 for this property. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account to create. - - System.String - - System.String - - - None - - - NetworkRuleSet - - NetworkRuleSet is used to define a set of configuration rules for firewalls and virtual networks, as well as to set values for network properties such as services allowed to bypass the rules and how to handle requests that don't match any of the defined rules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - - None - - - PublicNetworkAccess - - Allow or disallow public network access to Storage Account.Possible values include: 'Enabled', 'Disabled'. - - System.String - - System.String - - - None - - - PublishInternetEndpoint - - Indicates whether internet routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - PublishMicrosoftEndpoint - - Indicates whether microsoft routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - RequireInfrastructureEncryption - - The service will apply a secondary layer of encryption with platform managed keys for data at rest. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Specifies the name of the resource group in which to add the Storage account. - - System.String - - System.String - - - None - - - RoutingChoice - - Routing Choice defines the kind of network routing opted by the user. Possible values include: 'MicrosoftRouting', 'InternetRouting' - - System.String - - System.String - - - None - - - SasExpirationPeriod - - The SAS expiration period of this account, it is a timespan and accurate to seconds. - - System.TimeSpan - - System.TimeSpan - - - None - - - SkuName - - Specifies the SKU name of the Storage account that this cmdlet creates. The acceptable values for this parameter are: - Standard_LRS. Locally-redundant storage. - - Standard_ZRS. Zone-redundant storage. - - Standard_GRS. Geo-redundant storage. - - Standard_RAGRS. Read access geo-redundant storage. - - Premium_LRS. Premium locally-redundant storage. - - Premium_ZRS. Premium zone-redundant storage. - - Standard_GZRS - Geo-redundant zone-redundant storage. - - Standard_RAGZRS - Read access geo-redundant zone-redundant storage. - - System.String - - System.String - - - None - - - Tag - - Key-value pairs in the form of a hash table set as tags on the server. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UserAssignedIdentityId - - Set resource ids for the new Storage Account user assigned Identity, the identity will be used with key management services like Azure KeyVault. - - System.String - - System.String - - - None - - - UseSubDomain - - Indicates whether to enable indirect CName validation. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - - - - - ------------- Example 1: Create a Storage account ------------- - New-AzStorageAccount -ResourceGroupName MyResourceGroup -Name mystorageaccount -Location westus -SkuName Standard_GRS -MinimumTlsVersion TLS1_2 - - This command creates a Storage account for the resource group name MyResourceGroup. - - - - - - Example 2: Create a Blob Storage account with BlobStorage Kind and hot AccessTier - New-AzStorageAccount -ResourceGroupName MyResourceGroup -Name mystorageaccount -Location westus -SkuName Standard_GRS -Kind BlobStorage -AccessTier Hot - - This command creates a Blob Storage account that with BlobStorage Kind and hot AccessTier - - - - - - Example 3: Create a Storage account with Kind StorageV2, and Generate and Assign an Identity for Azure KeyVault. - New-AzStorageAccount -ResourceGroupName MyResourceGroup -Name mystorageaccount -Location westus -SkuName Standard_GRS -Kind StorageV2 -AssignIdentity - - This command creates a Storage account with Kind StorageV2. It also generates and assigns an identity that can be used to manage account keys through Azure KeyVault. - - - - - - Example 4: Create a Storage account with NetworkRuleSet from JSON - New-AzStorageAccount -ResourceGroupName MyResourceGroup -Name mystorageaccount -Location westus -Type Standard_LRS -NetworkRuleSet (@{bypass="Logging,Metrics"; - ipRules=(@{IPAddressOrRange="20.11.0.0/16";Action="allow"}, - @{IPAddressOrRange="10.0.0.0/7";Action="allow"}); - virtualNetworkRules=(@{VirtualNetworkResourceId="/subscriptions/s1/resourceGroups/g1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1";Action="allow"}, - @{VirtualNetworkResourceId="/subscriptions/s1/resourceGroups/g1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/subnet2";Action="allow"}); - defaultAction="Deny"}) - - This command creates a Storage account that has NetworkRuleSet property from JSON - - - - - - Example 5: Create a Storage account with Hierarchical Namespace enabled, Sftp enabled, and localuser enabled. - New-AzStorageAccount -ResourceGroupName "MyResourceGroup" -AccountName "mystorageaccount" -Location "US West" -SkuName "Standard_GRS" -Kind StorageV2 -EnableHierarchicalNamespace $true -EnableSftp $true -EnableLocalUser $true - - This command creates a Storage account with Hierarchical Namespace enabled, Sftp enabled, and localuser enabled. - - - - - - Example 6: Create a Storage account with Azure Files Microsoft Entra Domain Services Authentication, and enable large file share. - New-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -Location "eastus2euap" -SkuName "Standard_LRS" -Kind StorageV2 -EnableAzureActiveDirectoryDomainServicesForFile $true -EnableLargeFileShare - - This command creates a Storage account with Azure Files Microsoft Entra Domain Services Authentication, and enable large file share. - - - - - - Example 7: Create a Storage account with enable Files Active Directory Domain Service Authentication and DefaultSharePermission. - New-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -Location "eastus2euap" -SkuName "Standard_LRS" -Kind StorageV2 -EnableActiveDirectoryDomainServicesForFile $true ` - -ActiveDirectoryDomainName "mydomain.com" ` - -ActiveDirectoryNetBiosDomainName "mydomain.com" ` - -ActiveDirectoryForestName "mydomain.com" ` - -ActiveDirectoryDomainGuid "12345678-1234-1234-1234-123456789012" ` - -ActiveDirectoryDomainSid "S-1-5-21-1234567890-1234567890-1234567890" ` - -ActiveDirectoryAzureStorageSid "S-1-5-21-1234567890-1234567890-1234567890-1234" ` - -ActiveDirectorySamAccountName "samaccountname" ` - -ActiveDirectoryAccountType User ` - -DefaultSharePermission StorageFileDataSmbShareElevatedContributor - - This command creates a Storage account withenable Files Active Directory Domain Service Authentication and DefaultSharePermission. - - - - - - Example 8: Create a Storage account with Queue and Table Service use account-scoped encryption key, and Require Infrastructure Encryption. - New-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -Location "eastus2euap" -SkuName "Standard_LRS" -Kind StorageV2 -EncryptionKeyTypeForTable Account -EncryptionKeyTypeForQueue Account -RequireInfrastructureEncryption - -$account = Get-AzStorageAccount -ResourceGroupName $rgname -Name $accountName - -$account.Encryption.Services.Queue - -Enabled LastEnabledTime KeyType -------- --------------- ------- - True 1/9/2020 6:09:11 AM Account - -$account.Encryption.Services.Table - -Enabled LastEnabledTime KeyType -------- --------------- ------- - True 1/9/2020 6:09:11 AM Account - -$account.Encryption.RequireInfrastructureEncryption -True - - This command creates a Storage account with Queue and Table Service use account-scoped encryption key and Require Infrastructure Encryption, so Queue and Table will use same encryption key with Blob and File service, and the service will apply a secondary layer of encryption with platform managed keys for data at rest. Then get the Storage account properties, and view the encryption keytype of Queue and Table Service, and RequireInfrastructureEncryption value. - - - - - - Example 9: Create account MinimumTlsVersion and AllowBlobPublicAccess, and disable SharedKey Access - $account = New-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -Location "eastus2euap" -SkuName "Standard_LRS" -Kind StorageV2 -MinimumTlsVersion TLS1_2 -AllowBlobPublicAccess $false -AllowSharedKeyAccess $false - -$account.MinimumTlsVersion -TLS1_2 - -$account.AllowBlobPublicAccess -False - -$a.AllowSharedKeyAccess -False - - The command create account with MinimumTlsVersion, AllowBlobPublicAccess, and disable SharedKey access to the account, and then show the 3 properties of the created account - - - - - - Example 10: Create a Storage account with RoutingPreference setting - $account = New-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -Location "eastus2euap" -SkuName "Standard_LRS" -PublishMicrosoftEndpoint $true -PublishInternetEndpoint $true -RoutingChoice MicrosoftRouting - -$account.RoutingPreference - -RoutingChoice PublishMicrosoftEndpoints PublishInternetEndpoints -------------- ------------------------- ------------------------ -MicrosoftRouting True True - -$account.PrimaryEndpoints - -Blob : https://mystorageaccount.blob.core.windows.net/ -Queue : https://mystorageaccount.queue.core.windows.net/ -Table : https://mystorageaccount.table.core.windows.net/ -File : https://mystorageaccount.file.core.windows.net/ -Web : https://mystorageaccount.z2.web.core.windows.net/ -Dfs : https://mystorageaccount.dfs.core.windows.net/ -MicrosoftEndpoints : {"Blob":"https://mystorageaccount-microsoftrouting.blob.core.windows.net/","Queue":"https://mystorageaccount-microsoftrouting.queue.core.windows.net/","Table":"https://mystorageaccount-microsoftrouting.table.core.windows.net/","File":"ht - tps://mystorageaccount-microsoftrouting.file.core.windows.net/","Web":"https://mystorageaccount-microsoftrouting.z2.web.core.windows.net/","Dfs":"https://mystorageaccount-microsoftrouting.dfs.core.windows.net/"} -InternetEndpoints : {"Blob":"https://mystorageaccount-internetrouting.blob.core.windows.net/","File":"https://mystorageaccount-internetrouting.file.core.windows.net/","Web":"https://mystorageaccount-internetrouting.z2.web.core.windows.net/","Dfs":"https://w - eirp3-internetrouting.dfs.core.windows.net/"} - - This command creates a Storage account with RoutingPreference setting: PublishMicrosoftEndpoint and PublishInternetEndpoint as true, and RoutingChoice as MicrosoftRouting. - - - - - - Example 11: Create a Storage account with EdgeZone and AllowCrossTenantReplication - $account = New-AzStorageAccount -ResourceGroupName "myresourcegroup" -Name "mystorageaccount" -SkuName Premium_LRS -Location westus -EdgeZone "microsoftlosangeles1" -AllowCrossTenantReplication $false - -$account.ExtendedLocation - -Name Type ----- ---- -microsoftlosangeles1 EdgeZone - -$account.AllowCrossTenantReplication -False - - This command creates a Storage account with EdgeZone as "microsoftlosangeles1" and AllowCrossTenantReplication as false, then show the created account related properties. - - - - - - Example 12: Create a Storage account with KeyExpirationPeriod and SasExpirationPeriod - $account = New-AzStorageAccount -ResourceGroupName "myresourcegroup" -Name "mystorageaccount" -SkuName Premium_LRS -Location eastus -KeyExpirationPeriodInDay 5 -SasExpirationPeriod "1.12:05:06" - -$account.KeyPolicy.KeyExpirationPeriodInDays -5 - -$account.SasPolicy.SasExpirationPeriod -1.12:05:06 - - This command creates a Storage account with KeyExpirationPeriod and SasExpirationPeriod, then show the created account related properties. - - - - - - Example 12: Create a Storage account with Keyvault encryption (access Keyvault with user assigned identity) - # Create KeyVault (no need if using exist keyvault) -$keyVault = New-AzKeyVault -VaultName $keyvaultName -ResourceGroupName $resourceGroupName -Location eastus2euap -EnablePurgeProtection -$key = Add-AzKeyVaultKey -VaultName $keyvaultName -Name $keyname -Destination 'Software' - -# create user assigned identity and grant access to keyvault (no need if using exist user assigned identity) -$userId = New-AzUserAssignedIdentity -ResourceGroupName $resourceGroupName -Name $userIdName -Set-AzKeyVaultAccessPolicy -VaultName $keyvaultName -ResourceGroupName $resourceGroupName -ObjectId $userId.PrincipalId -PermissionsToKeys get,wrapkey,unwrapkey -BypassObjectIdValidation -$useridentityId= $userId.Id - -# create Storage account with Keyvault encryption (access Keyvault with user assigned identity), then show properties -$account = New-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName -Kind StorageV2 -SkuName Standard_LRS -Location eastus2euap ` - -IdentityType SystemAssignedUserAssigned -UserAssignedIdentityId $useridentityId ` - -KeyVaultUri $keyVault.VaultUri -KeyName $keyname -KeyVaultUserAssignedIdentityId $useridentityId - -$account.Encryption.EncryptionIdentity - -EncryptionUserAssignedIdentity ------------------------------- -/subscriptions/{subscription-id}/resourceGroups/myresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myuserid - -$account.Encryption.KeyVaultProperties - -KeyName : wrappingKey -KeyVersion : -KeyVaultUri : https://mykeyvault.vault.azure.net:443 -CurrentVersionedKeyIdentifier : https://mykeyvault.vault.azure.net/keys/wrappingKey/8e74036e0d534e58b3bd84b319e31d8f -LastKeyRotationTimestamp : 4/12/2021 8:17:57 AM - - This command first create a keyvault and a user assigned identity, then create a storage account with keyvault encryption (the storage access access keyvault with the user assigned identity). - - - - - - --------- Example 13: Create account with EnableNfsV3 --------- - $account = New-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -SkuName Standard_LRS -Location centraluseuap -Kind StorageV2 -EnableNfsV3 $true -EnableHierarchicalNamespace $true -EnableHttpsTrafficOnly $false -NetworkRuleSet (@{bypass="Logging,Metrics"; - virtualNetworkRules=(@{VirtualNetworkResourceId="$vnet1";Action="allow"}); - defaultAction="deny"}) -$account.EnableNfsV3 - -True - - The command create account with EnableNfsV3 as true, and then show the EnableNfsV3 property of the created account - - - - - - - Example 14: Create account with disable PublicNetworkAccess - - $account = New-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -SkuName Standard_LRS -Location centraluseuap -Kind StorageV2 -PublicNetworkAccess Disabled - -$account.PublicNetworkAccess - -Disabled - - The command creates account with disable PublicNetworkAccess of the account. - - - - - - Example 15: Create account with account level Immutability policy - $account = New-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -SkuName Standard_LRS -Location centraluseuap -Kind StorageV2 -EnableAccountLevelImmutability -ImmutabilityPeriod 1 -ImmutabilityPolicyState Unlocked - -$account.ImmutableStorageWithVersioning.Enabled -True - -$account.ImmutableStorageWithVersioning.ImmutabilityPolicy - -ImmutabilityPeriodSinceCreationInDays State -------------------------------------- ----- - 1 Unlocked - - The command creates an account and enable account level immutability with versioning by '-EnableAccountLevelImmutability', then all the containers under this account will have object-level immutability enabled by default. The account is also created with a default account-level immutability policy which is inherited and applied to objects that do not possess an explicit immutability policy at the object level. - - - - - - Example 16: Create a Storage account with enable Azure Files Active Directory Domain Service Kerberos Authentication. - New-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -Location "eastus2euap" -SkuName "Standard_LRS" -Kind StorageV2 -EnableAzureActiveDirectoryKerberosForFile $true ` - -ActiveDirectoryDomainName "mydomain.com" ` - -ActiveDirectoryDomainGuid "12345678-1234-1234-1234-123456789012" - - This command creates a Storage account with enable Azure Files Active Directory Domain Service Kerberos Authentication. - - - - - - Example 17: Create a Storage account with Keyvault from another tenant (access Keyvault with FederatedClientId) - # create Storage account with Keyvault encryption (access Keyvault with FederatedClientId), then show properties -$account = New-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName -Kind StorageV2 -SkuName Standard_LRS -Location eastus2euap ` - -IdentityType SystemAssignedUserAssigned -UserAssignedIdentityId $useridentityId ` - -KeyVaultUri $keyVault.VaultUri -KeyName $keyname -KeyVaultUserAssignedIdentityId $useridentityId -KeyVaultFederatedClientId $federatedClientId - -$account.Encryption.EncryptionIdentity - -EncryptionUserAssignedIdentity EncryptionFederatedIdentityClientId ------------------------------- ----------------------------------- -/subscriptions/{subscription-id}/resourceGroups/myresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myuserid ********-****-****-****-************ - -$account.Encryption.KeyVaultProperties - -KeyName : wrappingKey -KeyVersion : -KeyVaultUri : https://mykeyvault.vault.azure.net:443 -CurrentVersionedKeyIdentifier : https://mykeyvault.vault.azure.net/keys/wrappingKey/8e74036e0d534e58b3bd84b319e31d8f -LastKeyRotationTimestamp : 3/3/2022 2:07:34 AM - - This command creates a storage account with Keyvault from another tenant (access Keyvault with FederatedClientId). - - - - - - Example 18: Create account with DnsEndpointType as AzureDnsZone - New-AzStorageAccount -ResourceGroupName "MyResourceGroup" -AccountName "mystorageaccount" -SkuName Standard_LRS -Location centraluseuap -Kind StorageV2 -DnsEndpointType AzureDnsZone - - The command creates a storage account with DnsEndpointType as AzureDnsZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstorageaccount - - - Get-AzStorageAccount - - - - Remove-AzStorageAccount - - - - Set-AzStorageAccount - - - - - - - New-AzStorageAccountKey - New - AzStorageAccountKey - - Regenerates a storage key for an Azure Storage account. - - - - The New-AzStorageAccountKey cmdlet regenerates a storage key for an Azure Storage account. - - - - New-AzStorageAccountKey - - ResourceGroupName - - Specifies the name of the resource group that contains the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account for which to regenerate a storage key. - - System.String - - System.String - - - None - - - KeyName - - Specifies which key to regenerate. The acceptable values for this parameter are: - key1 - - key2 - - kerb1 - - kerb2 - - - key1 - key2 - kerb1 - kerb2 - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - KeyName - - Specifies which key to regenerate. The acceptable values for this parameter are: - key1 - - key2 - - kerb1 - - kerb2 - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account for which to regenerate a storage key. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the resource group that contains the Storage account. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Management.Storage.Models.StorageAccountListKeysResult - - - - - - - - - - - - - - ------------- Example 1: Regenerate a storage key ------------- - New-AzStorageAccountKey -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -KeyName "key1" - - This command regenerates a storage key for the specified Storage account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstorageaccountkey - - - Get-AzStorageAccountKey - - - - - - - New-AzStorageAccountManagementPolicyBlobIndexMatchObject - New - AzStorageAccountManagementPolicyBlobIndexMatchObject - - Creates a ManagementPolicy BlobIndexMatch object, which can be used in New-AzStorageAccountManagementPolicyFilter. - - - - The New-AzStorageAccountManagementPolicyBlobIndexMatchObject cmdlet creates a ManagementPolicy BlobIndexMatch object, which can be used in New-AzStorageAccountManagementPolicyFilter. - - - - New-AzStorageAccountManagementPolicyBlobIndexMatchObject - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Gets or sets this is the filter tag name, it can have 1 - 128 characters - - System.String - - System.String - - - None - - - Value - - Gets or sets this is the filter tag value field used for tag based filtering, it can have 0 - 256 characters. - - System.String - - System.String - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Gets or sets this is the filter tag name, it can have 1 - 128 characters - - System.String - - System.String - - - None - - - Value - - Gets or sets this is the filter tag value field used for tag based filtering, it can have 0 - 256 characters. - - System.String - - System.String - - - None - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSTagFilter - - - - - - - - - - - - - - Example 1: Creates 2 ManagementPolicy BlobIndexMatch object3, then add them to a management policy rule filter - $blobindexmatch1 = New-AzStorageAccountManagementPolicyBlobIndexMatchObject -Name "tag1" -Value "value1" -$blobindexmatch1 - -Name Op Value ----- -- ----- -tag1 == value1 - -$blobindexmatch2 = New-AzStorageAccountManagementPolicyBlobIndexMatchObject -Name "tag2" -Value "value2" - -New-AzStorageAccountManagementPolicyFilter -PrefixMatch prefix1,prefix2 -BlobType blockBlob ` - -BlobIndexMatch $blobindexmatch1,$blobindexmatch2 - -PrefixMatch BlobTypes BlobIndexMatch ------------ --------- -------------- -{prefix1, prefix2} {blockBlob} {tag1, tag2} - - This command creates 2 ManagementPolicy BlobIndexMatch objects, then add themto a management policy rule filter. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/Az.storage/new-Azstorageaccountmanagementpolicyblobindexmatchobject - - - - - - New-AzStorageAccountManagementPolicyFilter - New - AzStorageAccountManagementPolicyFilter - - Creates a ManagementPolicy rule filter object, which can be used in New-AzStorageAccountManagementPolicyRule. - - - - The New-AzStorageAccountManagementPolicyFilter cmdlet creates a ManagementPolicy rule filter object, which can be used in New-AzStorageAccountManagementPolicyRule. - - - - New-AzStorageAccountManagementPolicyFilter - - BlobIndexMatch - - An array of blob index tag based filters, there can be at most 10 tag filters. - - Microsoft.Azure.Commands.Management.Storage.Models.PSTagFilter[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSTagFilter[] - - - None - - - BlobType - - An array of strings for blobtypes to be match. Currently blockBlob supports all tiering and delete actions. Only delete actions are supported for appendBlob. - - - blockBlob - appendBlob - - System.String[] - - System.String[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PrefixMatch - - An array of strings for prefixes to be match. A prefix string must start with a container name. - - System.String[] - - System.String[] - - - None - - - - - - BlobIndexMatch - - An array of blob index tag based filters, there can be at most 10 tag filters. - - Microsoft.Azure.Commands.Management.Storage.Models.PSTagFilter[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSTagFilter[] - - - None - - - BlobType - - An array of strings for blobtypes to be match. Currently blockBlob supports all tiering and delete actions. Only delete actions are supported for appendBlob. - - System.String[] - - System.String[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PrefixMatch - - An array of strings for prefixes to be match. A prefix string must start with a container name. - - System.String[] - - System.String[] - - - None - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyRuleFilter - - - - - - - - - - - - - - Example 1: Creates a ManagementPolicy rule filter object, then add it to a management policy rule and set to a Storage account - $blobindexmatch1 = New-AzStorageAccountManagementPolicyBlobIndexMatchObject -Name "tag1" -Value "value1" -$blobindexmatch2 = New-AzStorageAccountManagementPolicyBlobIndexMatchObject -Name "tag2" -Value "value2" -$filter = New-AzStorageAccountManagementPolicyFilter -PrefixMatch blobprefix1,blobprefix2 -BlobType appendBlob,blockBlob -BlobIndexMatch $blobindexmatch1,$blobindexmatch2 -$filter - -PrefixMatch BlobTypes BlobIndexMatch ------------ --------- -------------- -{blobprefix1, blobprefix2} {appendBlob, blockBlob} {tag1, tag2} - -$action = Add-AzStorageAccountManagementPolicyAction -BaseBlobAction Delete -daysAfterModificationGreaterThan 100 -$rule = New-AzStorageAccountManagementPolicyRule -Name Test -Action $action -Filter $filter -$policy = Set-AzStorageAccountManagementPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -Rule $rule - - This command create a ManagementPolicy rule filter object. Then add it to a management policy rule and set to a Storage account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/Az.storage/new-Azstorageaccountmanagementpolicyfilter - - - - - - New-AzStorageAccountManagementPolicyRule - New - AzStorageAccountManagementPolicyRule - - Creates a ManagementPolicy rule object, which can be used in Set-AzStorageAccountManagementPolicy. - - - - The New-AzStorageAccountManagementPolicyRule cmdlet creates a ManagementPolicy rule object, which can be used in Set-AzStorageAccountManagementPolicy. - - - - New-AzStorageAccountManagementPolicyRule - - Name - - A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy. - - System.String - - System.String - - - None - - - Action - - An object that defines the action set. Get the Object with cmdlet Add-AzureStorageAccountManagementPolicyAction - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disabled - - The rule is disabled if set it. - - - System.Management.Automation.SwitchParameter - - - False - - - Filter - - An object that defines the filter set. Get the Object with cmdlet New-AzureStorageAccountManagementPolicyFilter - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyRuleFilter - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyRuleFilter - - - None - - - - - - Action - - An object that defines the action set. Get the Object with cmdlet Add-AzureStorageAccountManagementPolicyAction - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disabled - - The rule is disabled if set it. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Filter - - An object that defines the filter set. Get the Object with cmdlet New-AzureStorageAccountManagementPolicyFilter - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyRuleFilter - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyRuleFilter - - - None - - - Name - - A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy. - - System.String - - System.String - - - None - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyRule - - - - - - - - - - - - - - Example 1: Creates a ManagementPolicy rule object, then set to a Storage Account - $action = Add-AzStorageAccountManagementPolicyAction -BaseBlobAction Delete -daysAfterModificationGreaterThan 100 -$action = Add-AzStorageAccountManagementPolicyAction -BaseBlobAction TierToArchive -daysAfterModificationGreaterThan 50 -InputObject $action -$action = Add-AzStorageAccountManagementPolicyAction -BaseBlobAction TierToCool -daysAfterModificationGreaterThan 30 -InputObject $action -$action = Add-AzStorageAccountManagementPolicyAction -SnapshotAction Delete -daysAfterCreationGreaterThan 100 -InputObject $action - -$filter = New-AzStorageAccountManagementPolicyFilter -PrefixMatch blobprefix1,blobprefix2 - -$rule = New-AzStorageAccountManagementPolicyRule -Name rule1 -Action $action -Filter $filter -$rule - -Enabled : True -Name : rule1 -Definition : { - "Actions": { - "BaseBlob": { - "TierToCool": { - "DaysAfterModificationGreaterThan": 30 - }, - "TierToArchive": { - "DaysAfterModificationGreaterThan": 50 - }, - "Delete": { - "DaysAfterModificationGreaterThan": 100 - } - }, - "Snapshot": { - "Delete": { - "DaysAfterCreationGreaterThan": 100 - } - } - }, - "Filters": { - "PrefixMatch": [ - "blobprefix1", - "blobprefix2" - ], - "BlobTypes": [ - "blockBlob" - ] - } - } - -$policy = Set-AzStorageAccountManagementPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -Rule $rule - - This command create a ManagementPolicy rule object, with a ManagementPolicy action group object contains 4 actions, a ManagementPolicy rule filter object, then set the rule to a Storage Account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/Az.storage/new-Azstorageaccountmanagementpolicyrule - - - - - - New-AzStorageBlobInventoryPolicyRule - New - AzStorageBlobInventoryPolicyRule - - Creates a blob inventory policy rule object, which can be used in Set-AzStorageBlobInventoryPolicy. - - - - The New-AzStorageBlobInventoryPolicyRule cmdlet creates a blob inventory policy rule object, which can be used in Set-AzStorageBlobInventoryPolicy. - - - - New-AzStorageBlobInventoryPolicyRule - - Name - - A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy. - - System.String - - System.String - - - None - - - BlobSchemaField - - Specifies the fields and properties of the Blob object to be included in the inventory. Valid values include: Name, Creation-Time, Last-Modified, Content-Length, Content-MD5, BlobType, AccessTier, AccessTierChangeTime, Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl, Metadata, LastAccessTime, AccessTierInferred, Tags. 'Name' is a required schemafield. Schema field values 'Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl' are valid only for HierarchicalNamespace enabled accounts.'Tags' field is only valid for non HierarchicalNamespace accounts. If specify '-IncludeSnapshot', will include 'Snapshot' in the inventory. If specify '-IncludeBlobVersion', will include 'VersionId, 'IsCurrentVersion' in the inventory. - - - Name - Creation-Time - Last-Modified - Content-Length - Content-MD5 - BlobType - AccessTier - AccessTierChangeTime - Expiry-Time - hdi_isfolder - Owner - Group - Permissions - Acl - Metadata - LastAccessTime - AccessTierInferred - Tags - Etag - Content-Type - Content-Encoding - Content-Language - Content-CRC64 - Cache-Control - Content-Disposition - LeaseStatus - LeaseState - LeaseDuration - ServerEncrypted - Deleted - RemainingRetentionDays - ImmutabilityPolicyUntilDate - ImmutabilityPolicyMode - LegalHold - CopyId - CopyStatus - CopySource - CopyProgress - CopyCompletionTime - CopyStatusDescription - CustomerProvidedKeySha256 - RehydratePriority - ArchiveStatus - x-ms-blob-sequence-number - EncryptionScope - IncrementalCopy - DeletionId - DeletedTime - TagCount - - System.String[] - - System.String[] - - - None - - - BlobType - - Sets the blob types for the blob inventory policy rule. Valid values include blockBlob, appendBlob, pageBlob. Hns accounts does not support pageBlobs. - - - blockBlob - pageBlob - appendBlob - - System.String[] - - System.String[] - - - None - - - CreationTimeLastNDay - - Filter the objects which has creation time in last N days. The valid value is between 1 to 36500. Inventory schema 'Creation-Time' is mandatory with this filter. - - System.Int32 - - System.Int32 - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - The container name where blob inventory files are stored. Must be pre-created. - - System.String - - System.String - - - None - - - Disabled - - The rule is disabled if set it. - - - System.Management.Automation.SwitchParameter - - - False - - - ExcludePrefix - - Sets an array of strings with maximum 10 blob prefixes to be excluded from the inventory. - - System.String[] - - System.String[] - - - None - - - Format - - Specifies the format for the inventory files. Possible values include: 'Csv', 'Parquet' - - - Csv - Parquet - - System.String - - System.String - - - None - - - IncludeBlobVersion - - The rule is disabled if set it. - - - System.Management.Automation.SwitchParameter - - - False - - - IncludeDeleted - - Includes deleted blob in blob inventory. When include delete blob, for ContainerSchemaFields, must include 'Deleted, Version, DeletedTime and RemainingRetentionDays'. For BlobSchemaFields, on HNS enabled storage accounts, must include 'DeletionId, Deleted, DeletedTime and RemainingRetentionDays', and on Hns disabled accounts must include 'Deleted and RemainingRetentionDays', else they must be excluded. - - - System.Management.Automation.SwitchParameter - - - False - - - IncludeSnapshot - - The rule is disabled if set it. - - - System.Management.Automation.SwitchParameter - - - False - - - PrefixMatch - - Sets an array of strings for blob prefixes to be matched.. - - System.String[] - - System.String[] - - - None - - - Schedule - - This field is used to schedule an inventory formation. Possible values include: 'Daily', 'Weekly' - - - Daily - Weekly - - System.String - - System.String - - - None - - - - New-AzStorageBlobInventoryPolicyRule - - Name - - A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy. - - System.String - - System.String - - - None - - - ContainerSchemaField - - Specifies the fields and properties of the container object to be included in the inventory. Valid values include: Name, Last-Modified, Metadata, LeaseStatus, LeaseState, LeaseDuration, PublicAccess, HasImmutabilityPolicy, HasLegalHold. 'Name' is a required schemafield. - - - Name - Last-Modified - Metadata - LeaseStatus - LeaseState - LeaseDuration - PublicAccess - HasImmutabilityPolicy - HasLegalHold - Etag - DefaultEncryptionScope - DenyEncryptionScopeOverride - ImmutableStorageWithVersioningEnabled - Deleted - Version - DeletedTime - RemainingRetentionDays - - System.String[] - - System.String[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - The container name where blob inventory files are stored. Must be pre-created. - - System.String - - System.String - - - None - - - Disabled - - The rule is disabled if set it. - - - System.Management.Automation.SwitchParameter - - - False - - - ExcludePrefix - - Sets an array of strings with maximum 10 blob prefixes to be excluded from the inventory. - - System.String[] - - System.String[] - - - None - - - Format - - Specifies the format for the inventory files. Possible values include: 'Csv', 'Parquet' - - - Csv - Parquet - - System.String - - System.String - - - None - - - PrefixMatch - - Sets an array of strings for blob prefixes to be matched.. - - System.String[] - - System.String[] - - - None - - - Schedule - - This field is used to schedule an inventory formation. Possible values include: 'Daily', 'Weekly' - - - Daily - Weekly - - System.String - - System.String - - - None - - - - - - BlobSchemaField - - Specifies the fields and properties of the Blob object to be included in the inventory. Valid values include: Name, Creation-Time, Last-Modified, Content-Length, Content-MD5, BlobType, AccessTier, AccessTierChangeTime, Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl, Metadata, LastAccessTime, AccessTierInferred, Tags. 'Name' is a required schemafield. Schema field values 'Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl' are valid only for HierarchicalNamespace enabled accounts.'Tags' field is only valid for non HierarchicalNamespace accounts. If specify '-IncludeSnapshot', will include 'Snapshot' in the inventory. If specify '-IncludeBlobVersion', will include 'VersionId, 'IsCurrentVersion' in the inventory. - - System.String[] - - System.String[] - - - None - - - BlobType - - Sets the blob types for the blob inventory policy rule. Valid values include blockBlob, appendBlob, pageBlob. Hns accounts does not support pageBlobs. - - System.String[] - - System.String[] - - - None - - - ContainerSchemaField - - Specifies the fields and properties of the container object to be included in the inventory. Valid values include: Name, Last-Modified, Metadata, LeaseStatus, LeaseState, LeaseDuration, PublicAccess, HasImmutabilityPolicy, HasLegalHold. 'Name' is a required schemafield. - - System.String[] - - System.String[] - - - None - - - CreationTimeLastNDay - - Filter the objects which has creation time in last N days. The valid value is between 1 to 36500. Inventory schema 'Creation-Time' is mandatory with this filter. - - System.Int32 - - System.Int32 - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - The container name where blob inventory files are stored. Must be pre-created. - - System.String - - System.String - - - None - - - Disabled - - The rule is disabled if set it. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ExcludePrefix - - Sets an array of strings with maximum 10 blob prefixes to be excluded from the inventory. - - System.String[] - - System.String[] - - - None - - - Format - - Specifies the format for the inventory files. Possible values include: 'Csv', 'Parquet' - - System.String - - System.String - - - None - - - IncludeBlobVersion - - The rule is disabled if set it. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IncludeDeleted - - Includes deleted blob in blob inventory. When include delete blob, for ContainerSchemaFields, must include 'Deleted, Version, DeletedTime and RemainingRetentionDays'. For BlobSchemaFields, on HNS enabled storage accounts, must include 'DeletionId, Deleted, DeletedTime and RemainingRetentionDays', and on Hns disabled accounts must include 'Deleted and RemainingRetentionDays', else they must be excluded. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IncludeSnapshot - - The rule is disabled if set it. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy. - - System.String - - System.String - - - None - - - PrefixMatch - - Sets an array of strings for blob prefixes to be matched.. - - System.String[] - - System.String[] - - - None - - - Schedule - - This field is used to schedule an inventory formation. Possible values include: 'Daily', 'Weekly' - - System.String - - System.String - - - None - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicyRule - - - - - - - - - - - - - - Example 1: Create blob inventory policy rule objects, then sets blob inventory policy with the rule objects. - $rule1 = New-AzStorageBlobInventoryPolicyRule -Name Test1 -Destination $containerName -Disabled -Format Csv -Schedule Daily -ContainerSchemaField Name,Metadata,PublicAccess,Last-mOdified,LeaseStatus,LeaseState,LeaseDuration,HasImmutabilityPolicy,HasLegalHold -PrefixMatch con1,con2 - -$rule2 = New-AzStorageBlobInventoryPolicyRule -Name Test2 -Destination $containerName -Format Parquet -Schedule Weekly -IncludeSnapshot -BlobType blockBlob,appendBlob -PrefixMatch aaa,bbb ` - -BlobSchemaField name,Creation-Time,Last-Modified,Content-Length,Content-MD5,BlobType,AccessTier,AccessTierChangeTime,Expiry-Time,hdi_isfolder,Owner,Group,Permissions,Acl,Metadata -CreationTimeLastNDay 30 -$rule3 = New-AzStorageBlobInventoryPolicyRule -Name Test3 -Destination $containerName -Format Parquet -Schedule Weekly -IncludeSnapshot -IncludeDeleted -BlobType blockBlob,appendBlob -PrefixMatch aaa,bbb ` - -ExcludePrefix ccc,ddd -BlobSchemaField name,Last-Modified,BlobType,AccessTier,AccessTierChangeTime,Content-Type,Content-CRC64,CopyId,DeletionId,Deleted,DeletedTime,RemainingRetentionDays - -$policy = Set-AzStorageBlobInventoryPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -Disabled -Rule $rule1,$rule2 - -$policy - -StorageAccountName : mystorageaccount -ResourceGroupName : myresourcegroup -Name : DefaultInventoryPolicy -Id : /subscriptions/{subscription-Id}/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/mystorageaccount/inventoryPolicies/default -Type : Microsoft.Storage/storageAccounts/inventoryPolicies -LastModifiedTime : 5/12/2021 8:53:38 AM -Enabled : False -Rules : {Test1, Test2, Test3} - -$policy.Rules - -Name Enabled Destination ObjectType Format Schedule IncludeSnapshots IncludeBlobVersions IncludeDeleted BlobTypes PrefixMatch ExcludePrefix SchemaFields CreationTime ----- ------- ----------- ---------- ------ -------- ---------------- ------------------- -------------- --------- ----------- ------------- ------------ ------------ -Test1 False containername Container Csv Daily {con1, con2} {Name, Metadata, PublicAccess, Last-Modified...} -Test2 True containername Blob Parquet Weekly True {blockBlob, appendBlob} {aaa, bbb} {Name, Creation-Time, Last-Modified, Content-Length...} LastNDays=30 -Test3 True containername Blob Parquet Weekly True True {blockBlob, appendBlob} {aaa, bbb} {ccc, ddd} {Name, Last-Modified, BlobType, AccessTier...} - - This first 3 commands create 3 BlobInventoryPolicy rule objects: rule "Test1" for contaienr inventory; rule "Test2" for blob inventory; rule "Test3" for blob inventory with more schema fields, excludePrefix specified, and IncludeDeleted enabled. The following command sets blob inventory policy to a Storage account with the 3 rule objects, then show the updated policy and rules properties. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstorageblobinventorypolicyrule - - - - - - New-AzStorageBlobRangeToRestore - New - AzStorageBlobRangeToRestore - - Creates a Blob Range object to restores a Storage account. - - - - The New-AzStorageBlobRangeToRestore cmdlet creates a Blob range object, which can be used in Restore-AzStorageBlobRange. - - - - New-AzStorageBlobRangeToRestore - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EndRange - - Specify the blob restore End range. End range will be excluded in restore blobs. Set it as empty strng to restore to the end. - - System.String - - System.String - - - None - - - StartRange - - Specify the blob restore start range. Start range will be included in restore blobs. Set it as empty string to restore from begining. - - System.String - - System.String - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EndRange - - Specify the blob restore End range. End range will be excluded in restore blobs. Set it as empty strng to restore to the end. - - System.String - - System.String - - - None - - - StartRange - - Specify the blob restore start range. Start range will be included in restore blobs. Set it as empty string to restore from begining. - - System.String - - System.String - - - None - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobRestoreRange - - - - - - - - - - - - - - ---------- Example 1: Creates a blob range to restore ---------- - $range = New-AzStorageBlobRangeToRestore -StartRange container1/blob1 -EndRange container2/blob2 - - This command creates a blob range to restore, which starts at container1/blob1 (include), and ends at container2/blob2 (exclude). - - - - - - Example 2: Creates a blob range which will restore from first blob in alphabetical order, to a specific blob (exclude) - $range = New-AzStorageBlobRangeToRestore -StartRange "" -EndRange container2/blob2 - - This command creates a blob range which will restore from first blob of alphabetical order, to a specific blob container2/blob2 (exclude) - - - - - - Example 3: Creates a blob range which will restore from a specific blob (include), to the last blob in alphabetical order - $range = New-AzStorageBlobRangeToRestore -StartRange container1/blob1 -EndRange "" - - This command creates a blob range which will restore from a specific blob container1/blob1 (include), to the last blob in alphabetical order. - - - - - - - Example 4: Creates a blob range which will restore all blobs - - $range = New-AzStorageBlobRangeToRestore -StartRange "" -EndRange "" - - This command creates a blob range which will restore all blobs. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstorageblobrangetorestore - - - - - - New-AzStorageEncryptionScope - New - AzStorageEncryptionScope - - Creates an encryption scope for a Storage account. - - - - The New-AzStorageEncryptionScope cmdlet creates an encryption scope for a Storage account. - - - - New-AzStorageEncryptionScope - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScopeName - - Azure Storage EncryptionScope name - - System.String - - System.String - - - None - - - KeyUri - - The key Uri - - System.String - - System.String - - - None - - - KeyvaultEncryption - - Create encryption scope with keySource as Microsoft.Keyvault - - - System.Management.Automation.SwitchParameter - - - False - - - RequireInfrastructureEncryption - - The encryption scope will apply a secondary layer of encryption with platform managed keys for data at rest. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzStorageEncryptionScope - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScopeName - - Azure Storage EncryptionScope name - - System.String - - System.String - - - None - - - KeyUri - - The key Uri - - System.String - - System.String - - - None - - - KeyvaultEncryption - - Create encryption scope with keySource as Microsoft.Keyvault - - - System.Management.Automation.SwitchParameter - - - False - - - RequireInfrastructureEncryption - - The encryption scope will apply a secondary layer of encryption with platform managed keys for data at rest. - - - System.Management.Automation.SwitchParameter - - - False - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzStorageEncryptionScope - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScopeName - - Azure Storage EncryptionScope name - - System.String - - System.String - - - None - - - RequireInfrastructureEncryption - - The encryption scope will apply a secondary layer of encryption with platform managed keys for data at rest. - - - System.Management.Automation.SwitchParameter - - - False - - - StorageEncryption - - Create encryption scope with keySource as Microsoft.Storage. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzStorageEncryptionScope - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScopeName - - Azure Storage EncryptionScope name - - System.String - - System.String - - - None - - - RequireInfrastructureEncryption - - The encryption scope will apply a secondary layer of encryption with platform managed keys for data at rest. - - - System.Management.Automation.SwitchParameter - - - False - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageEncryption - - Create encryption scope with keySource as Microsoft.Storage. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScopeName - - Azure Storage EncryptionScope name - - System.String - - System.String - - - None - - - KeyUri - - The key Uri - - System.String - - System.String - - - None - - - KeyvaultEncryption - - Create encryption scope with keySource as Microsoft.Keyvault - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - RequireInfrastructureEncryption - - The encryption scope will apply a secondary layer of encryption with platform managed keys for data at rest. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - StorageEncryption - - Create encryption scope with keySource as Microsoft.Storage. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSEncryptionScope - - - - - - - - - - - - - - Example 1: Create an encryption scope with Storage Encryption - New-AzStorageEncryptionScope -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -EncryptionScopeName testscope -StorageEncryption - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name State Source KeyVaultKeyUri RequireInfrastructureEncryption ----- ----- ------ -------------- ------------------------------- -testscope Enabled Microsoft.Storage - - This command creates an encryption scope with Storage Encryption. - - - - - - Example 2: Create an encryption scope with Keyvault Encryption, and RequireInfrastructureEncryption - New-AzStorageEncryptionScope -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" ` - -EncryptionScopeName testscope -KeyvaultEncryption -KeyUri "https://keyvalutname.vault.azure.net:443/keys/keyname/34a0ba563b4243d9a0ef2b1d3c0c7d57" ` - -RequireInfrastructureEncryption - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name State Source KeyVaultKeyUri RequireInfrastructureEncryption ----- ----- ------ -------------- ------------------------------- -testscope Enabled Microsoft.Keyvault https://keyvalutname.vault.azure.net:443/keys/keyname/34a0ba563b4243d9a0ef2b1d3c0c7d57 True - - This command creates an encryption scope with Keyvault Encryption and RequireInfrastructureEncryption. The Storage account Identity need have get,wrapkey,unwrapkey permissions to the keyvault key. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstorageencryptionscope - - - - - - New-AzStorageLocalUserPermissionScope - New - AzStorageLocalUserPermissionScope - - Creates a permission scope object, which can be used in Set-AzStorageLocalUser. - - - - The New-AzStorageLocalUserPermissionScope cmdlet creates a permission scope object, which can be used in Set-AzStorageLocalUser. - - - - New-AzStorageLocalUserPermissionScope - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Permission - - Specify the permissions for the local user. Possible values include: Read(r), Write (w), Delete (d), List (l), and Create (c). - - System.String - - System.String - - - None - - - ResourceName - - Specify the name of resource, normally the container name or the file share name, used by the local user. - - System.String - - System.String - - - None - - - Service - - Specify the service used by the local user, e.g. blob, file. - - System.String - - System.String - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Permission - - Specify the permissions for the local user. Possible values include: Read(r), Write (w), Delete (d), List (l), and Create (c). - - System.String - - System.String - - - None - - - ResourceName - - Specify the name of resource, normally the container name or the file share name, used by the local user. - - System.String - - System.String - - - None - - - Service - - Specify the service used by the local user, e.g. blob, file. - - System.String - - System.String - - - None - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSPermissionScope - - - - - - - - - - - - - - Example 1: Create permission scope objects, then create or update local user with the permission scope objects. - $permissionScope1 = New-AzStorageLocalUserPermissionScope -Permission rw -Service blob -ResourceName container1 - -$permissionScope2 = New-AzStorageLocalUserPermissionScope -Permission rwd -Service file -ResourceName share2 - -$localuser = Set-AzStorageLocalUser -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -UserName testuser1 -HomeDirectory "/" -PermissionScope $permissionScope1,$permissionScope2 - -$localuser - - ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name Sid HomeDirectory HasSharedKey HasSshKey HasSshPassword PermissionScopes SshAuthorizedKeys ----- --- ------------- ------------ --------- -------------- ---------------- ----------------- -testuser1 S-1-2-0-0000000000-000000000-0000000000-0000 / [container1,...] - -$localuser.PermissionScopes - -Permissions Service ResourceName ------------ ------- ------------ -rw blob container1 -rwd file share2 - - This first 2 commands create 2 permission scope objects. The following commands create or update a local user with the permission scope objects, then show the updated local user properties. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstoragelocaluserpermissionscope - - - - - - New-AzStorageLocalUserSshPassword - New - AzStorageLocalUserSshPassword - - Regenerate SSH password of a specified local user in a storage account. - - - - The New-AzStorageLocalUserSshPassword cmdlet regenerates SSH password of a specified local user in a storage account. - - - - New-AzStorageLocalUserSshPassword - - InputObject - - Local User Object to Regenerate Password Keys. - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUser - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUser - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzStorageLocalUserSshPassword - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - UserName - - The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzStorageLocalUserSshPassword - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - UserName - - The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Local User Object to Regenerate Password Keys. - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUser - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUser - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - UserName - - The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUserKeys - - - - - - - - - - - - - - - Example 1: Regenerate SSH password of a specified local user - - New-AzStorageLocalUserSshPassword -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -UserName testuser1 - -SshPassword ------------ -<hidden> - - This command regenerates SSH password of a specified local user. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstoragelocalusersshpassword - - - - - - New-AzStorageLocalUserSshPublicKey - New - AzStorageLocalUserSshPublicKey - - Creates a SSH public key object, which can be used in Set-AzStorageLocalUser. - - - - The New-AzStorageLocalUserSshPublicKey cmdlet creates a SSH public key object, which can be used in Set-AzStorageLocalUser. - - - - New-AzStorageLocalUserSshPublicKey - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Description - - The description of the key. It is used to store the function/usage of the key. - - System.String - - System.String - - - None - - - Key - - Specify ssh public key, the key data is base64 encoded. The format should be: '<keyType> <keyData>', e.g. ssh-rsa AAAABBBB - - System.String - - System.String - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Description - - The description of the key. It is used to store the function/usage of the key. - - System.String - - System.String - - - None - - - Key - - Specify ssh public key, the key data is base64 encoded. The format should be: '<keyType> <keyData>', e.g. ssh-rsa AAAABBBB - - System.String - - System.String - - - None - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSSshPublicKey - - - - - - - - - - - - - - Example 1: Create SSH public key objects, then create or update local user with the SSH public key objects. - $sshkey1 = New-AzStorageLocalUserSshPublicKey -Key "ssh-rsa keykeykeykeykey=" -Description "sshpulickey name1" - -$sshkey2 = New-AzStorageLocalUserSshPublicKey -Key "ssh-rsa keykeykeykeykew=" -Description "sshpulickey name2" - -$localuser = Set-AzStorageLocalUser -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -UserName testuser1 -HomeDirectory "/" -SshAuthorizedKey $sshkey1,$sshkey2 - -$localuser - - ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name Sid HomeDirectory HasSharedKey HasSshKey HasSshPassword PermissionScopes SshAuthorizedKeys ----- --- ------------- ------------ --------- -------------- ---------------- ----------------- -testuser1 S-1-2-0-0000000000-000000000-0000000000-0000 / [ssh-rsa keykeykeykeykey=,...] - -$localuser.SshAuthorizedKeys - -Description Key ------------ --- -sshpulickey name1 ssh-rsa keykeykeykeykey= -sshpulickey name2 ssh-rsa keykeykeykeykew= - - This first 2 commands create 2 SSH public key objects. The following commands create or update a local user with the SSH public key objects, then show the updated local user properties. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstoragelocalusersshpublickey - - - - - - New-AzStorageObjectReplicationPolicyRule - New - AzStorageObjectReplicationPolicyRule - - Creates an object replication policy rule. - - - - The Get-AzStorageObjectReplicationPolicy cmdlet creates an object replication policy rule, which will be used in Set-AzStorageObjectReplicationPolicy cmdlet. - - - - New-AzStorageObjectReplicationPolicyRule - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestinationContainer - - The Destination Container name to replicate to. - - System.String - - System.String - - - None - - - MinCreationTime - - Blobs created after the time will be replicated to the destination.. - - System.DateTime - - System.DateTime - - - None - - - PrefixMatch - - Filters the results to replicate only blobs whose names begin with the specified prefix. - - System.String[] - - System.String[] - - - None - - - RuleId - - Object Replication Rule Id. - - System.String - - System.String - - - None - - - SourceContainer - - The Source Container name to replicate from. - - System.String - - System.String - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestinationContainer - - The Destination Container name to replicate to. - - System.String - - System.String - - - None - - - MinCreationTime - - Blobs created after the time will be replicated to the destination.. - - System.DateTime - - System.DateTime - - - None - - - PrefixMatch - - Filters the results to replicate only blobs whose names begin with the specified prefix. - - System.String[] - - System.String[] - - - None - - - RuleId - - Object Replication Rule Id. - - System.String - - System.String - - - None - - - SourceContainer - - The Source Container name to replicate from. - - System.String - - System.String - - - None - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicyRule - - - - - - - - - - - - - - Example 1: Create an object replication policy rule with only source and destination account, and show its properties - $rule1 = New-AzStorageObjectReplicationPolicyRule -SourceContainer src1 -DestinationContainer dest1 - -$rule1 - -RuleId SourceContainer DestinationContainer Filters.PrefixMatch Filters.MinCreationTime ------- --------------- -------------------- ------------------- ----------------------- - src1 dest1 {} - - This command creates an object replication policy rule with only source and destination account, and show its properties. - - - - - - Example 2: Create an object replication policy rule with all properties, and show its properties - $rule2 = New-AzStorageObjectReplicationPolicyRule -SourceContainer src -DestinationContainer dest -MinCreationTime 2019-01-01T16:00:00Z -PrefixMatch a,abc,dd - -$rule2 - -RuleId SourceContainer DestinationContainer Filters.PrefixMatch Filters.MinCreationTime ------- --------------- -------------------- ------------------- ----------------------- - src dest {a, abc, dd} 2019-01-01T16:00:00Z - - This command an object replication policy rule with all properties, and show its properties. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/New-azstorageobjectreplicationpolicyrule - - - - - - Remove-AzRmStorageContainer - Remove - AzRmStorageContainer - - Removes a Storage blob container - - - - The Remove-AzRmStorageContainer cmdlet removes a Storage blob container - - - - Remove-AzRmStorageContainer - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to remove the container and all content in it - - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzRmStorageContainer - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to remove the container and all content in it - - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Container Name - - System.String - - System.String - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzRmStorageContainer - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to remove the container and all content in it - - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Container Name - - System.String - - System.String - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to remove the container and all content in it - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - Example 1: Remove a Storage blob container with Storage account name and container name - Remove-AzRmStorageContainer -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -ContainerName "myContainer" - - This command removes a Storage blob container with Storage account name and container name. - - - - - - Example 2: Remove a Storage blob container with Storage account object and container name - $accountObject = Get-AzStorageAccount -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -Remove-AzRmStorageContainer -StorageAccount $accountObject -ContainerName "myContainer" - - This command removes a Storage blob container with Storage account object and container name. - - - - - - Example 3: Remove all Storage blob containers in a Storage account with pipeline - Get-AzRmStorageContainer -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" | Remove-AzRmStorageContainer -Force - - This command removes all Storage blob containers in a Storage account with pipeline. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azrmstoragecontainer - - - - - - Remove-AzRmStorageContainerImmutabilityPolicy - Remove - AzRmStorageContainerImmutabilityPolicy - - Removes ImmutabilityPolicy of a Storage blob container with an unlocked policy - - - - The Remove-AzRmStorageContainerImmutabilityPolicy cmdlet removes ImmutabilityPolicy of a Storage blob container with an unlocked policy. - - - - Remove-AzRmStorageContainerImmutabilityPolicy - - Container - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzRmStorageContainerImmutabilityPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - ContainerName - - Container Name - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzRmStorageContainerImmutabilityPolicy - - ContainerName - - Container Name - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzRmStorageContainerImmutabilityPolicy - - InputObject - - Unlocked ImmutabilityPolicy Object to Remove - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Container - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - ContainerName - - Container Name - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. - - System.String - - System.String - - - None - - - InputObject - - Unlocked ImmutabilityPolicy Object to Remove - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - - - - - - - - - - - - - Example 1: Remove unlocked ImmutabilityPolicy of a Storage blob container with Storage account name and container name - $policy = Get-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -ContainerName "myContainer" -Remove-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -ContainerName "myContainer" -Etag $policy.Etag - - This command removes unlocked ImmutabilityPolicy of a Storage blob container with Storage account name and container name. - - - - - - Example 2: Remove unlocked ImmutabilityPolicy of a Storage blob container, with Storage account object - $accountObject = Get-AzStorageAccount -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -$policy = Get-AzRmStorageContainerImmutabilityPolicy -StorageAccount $accountObject -ContainerName "myContainer" -Remove-AzRmStorageContainerImmutabilityPolicy -StorageAccount $accountObject -ContainerName "myContainer" -Etag $policy.Etag - - This command removes unlocked ImmutabilityPolicy of a Storage blob container, with Storage account object. - - - - - - Example 3: Remove unlocked ImmutabilityPolicy of a Storage blob container, with container object - $containerObject = Get-AzRmStorageContainer -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -Name "myContainer" -$policy = Get-AzRmStorageContainerImmutabilityPolicy -Container $containerObject -Remove-AzRmStorageContainerImmutabilityPolicy -Container $containerObject -Etag $policy.Etag - - This command removes unlocked ImmutabilityPolicy of a Storage blob container with Storage container object. - - - - - - Example 4: Remove unlocked ImmutabilityPolicy of a Storage blob container, with ImmutabilityPolicy object - Get-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -ContainerName "myContainer" | Remove-AzRmStorageContainerImmutabilityPolicy - - This command removes unlocked ImmutabilityPolicy of a Storage blob container, with ImmutabilityPolicy object. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azrmstoragecontainerimmutabilitypolicy - - - - - - Remove-AzRmStorageContainerLegalHold - Remove - AzRmStorageContainerLegalHold - - Removes legal hold tags from a Storage blob container - - - - The Remove-AzRmStorageContainerLegalHold cmdlet removes legal hold tags from a Storage blob container - - - - Remove-AzRmStorageContainerLegalHold - - Container - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Tag - - Container LegalHold Tags - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzRmStorageContainerLegalHold - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - Tag - - Container LegalHold Tags - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzRmStorageContainerLegalHold - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Tag - - Container LegalHold Tags - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Container - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Tag - - Container LegalHold Tags - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSLegalHold - - - - - - - - - - - - - - Example 1: Remove legal hold tags from a Storage blob container with Storage account name and container name - Remove-AzRmStorageContainerLegalHold -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -ContainerName "myContainer" -Tag tag1 - - This command removes legal hold tags from a Storage blob container with Storage account name and container name. - - - - - - Example 2: Remove legal hold tags from a Storage blob container with Storage account object and container name - $accountObject = Get-AzStorageAccount -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -Remove-AzRmStorageContainerLegalHold -StorageAccount $accountObject -ContainerName "myContainer" -Tag tag1,tag2 - - This command removes legal hold tags from a Storage blob container with Storage account object and container name. - - - - - - Example 3: Remove legal hold tags from all Storage blob containers in a Storage account with pipeline - Get-AzRmStorageContainer -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" | Remove-AzRmStorageContainerLegalHold -Tag tag1 - - This command removes legal hold tags from all Storage blob containers in a Storage account with pipeline. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azrmstoragecontainerlegalhold - - - - - - Remove-AzRmStorageShare - Remove - AzRmStorageShare - - Removes a Storage file share. - - - - The New-AzRmStorageShare cmdlet removes a Storage file share. - - - - Remove-AzRmStorageShare - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to remove the Share(snapshot) and all content in it - - - System.Management.Automation.SwitchParameter - - - False - - - Include - - Valid values are: snapshots, leased-snapshots, none. The default value is none. For 'none', the file share is deleted if it has no share snapshots.If the file share contains any snapshots(leased or unleased), the deletion fails. For 'snapshots', the file share is deleted including all of its file share snapshots. If the file share contains leased snapshots, the deletion fails. For 'leased-snapshots', the file share is deleted included all of its file share snapshots (leased / unleased). - - - None - Snapshots - Leased-Snapshots - - System.String - - System.String - - - None - - - Name - - Share Name - - System.String - - System.String - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzRmStorageShare - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to remove the Share(snapshot) and all content in it - - - System.Management.Automation.SwitchParameter - - - False - - - Include - - Valid values are: snapshots, leased-snapshots, none. The default value is none. For 'none', the file share is deleted if it has no share snapshots.If the file share contains any snapshots(leased or unleased), the deletion fails. For 'snapshots', the file share is deleted including all of its file share snapshots. If the file share contains leased snapshots, the deletion fails. For 'leased-snapshots', the file share is deleted included all of its file share snapshots (leased / unleased). - - - None - Snapshots - Leased-Snapshots - - System.String - - System.String - - - None - - - Name - - Share Name - - System.String - - System.String - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzRmStorageShare - - ResourceId - - Input a File Share Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to remove the Share(snapshot) and all content in it - - - System.Management.Automation.SwitchParameter - - - False - - - Include - - Valid values are: snapshots, leased-snapshots, none. The default value is none. For 'none', the file share is deleted if it has no share snapshots.If the file share contains any snapshots(leased or unleased), the deletion fails. For 'snapshots', the file share is deleted including all of its file share snapshots. If the file share contains leased snapshots, the deletion fails. For 'leased-snapshots', the file share is deleted included all of its file share snapshots (leased / unleased). - - - None - Snapshots - Leased-Snapshots - - System.String - - System.String - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzRmStorageShare - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to remove the Share(snapshot) and all content in it - - - System.Management.Automation.SwitchParameter - - - False - - - Include - - Valid values are: snapshots, leased-snapshots, none. The default value is none. For 'none', the file share is deleted if it has no share snapshots.If the file share contains any snapshots(leased or unleased), the deletion fails. For 'snapshots', the file share is deleted including all of its file share snapshots. If the file share contains leased snapshots, the deletion fails. For 'leased-snapshots', the file share is deleted included all of its file share snapshots (leased / unleased). - - - None - Snapshots - Leased-Snapshots - - System.String - - System.String - - - None - - - InputObject - - Storage Share object - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzRmStorageShare - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to remove the Share(snapshot) and all content in it - - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Share Name - - System.String - - System.String - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - SnapshotTime - - Share SnapshotTime - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzRmStorageShare - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to remove the Share(snapshot) and all content in it - - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Share Name - - System.String - - System.String - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - SnapshotTime - - Share SnapshotTime - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to remove the Share(snapshot) and all content in it - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Include - - Valid values are: snapshots, leased-snapshots, none. The default value is none. For 'none', the file share is deleted if it has no share snapshots.If the file share contains any snapshots(leased or unleased), the deletion fails. For 'snapshots', the file share is deleted including all of its file share snapshots. If the file share contains leased snapshots, the deletion fails. For 'leased-snapshots', the file share is deleted included all of its file share snapshots (leased / unleased). - - System.String - - System.String - - - None - - - InputObject - - Storage Share object - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - - None - - - Name - - Share Name - - System.String - - System.String - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - ResourceId - - Input a File Share Resource Id. - - System.String - - System.String - - - None - - - SnapshotTime - - Share SnapshotTime - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - Example 1: Remove a Storage file share with Storage account name and share name - Remove-AzRmStorageShare -ResourceGroupName "myResourceGroup" -StorageAccountName "myStorageAccount" -Name "myshare" - - This command removes a Storage file share with Storage account name and share name. - - - - - - Example 2: Remove a Storage file share with Storage account object and share name - $accountObject = Get-AzStorageAccount -ResourceGroupName "myResourceGroup" -StorageAccountName "myStorageAccount" -Remove-AzRmStorageShare -StorageAccount $accountObject -Name "myshare" - - This command removes a Storage file share with Storage account object and share name. - - - - - - Example 3: Remove all Storage file shares in a Storage account with pipeline - Get-AzRmStorageShare -ResourceGroupName "myResourceGroup" -StorageAccountName "myStorageAccount" | Remove-AzRmStorageShare -Force - - This command removes all Storage file shares in a Storage account with pipeline. - - - - - - ---- Example 4: Remove a single Storage file share snapshot ---- - Remove-AzRmStorageShare -ResourceGroupName "myResourceGroup" -StorageAccountName "myStorageAccount" -Name "myshare" -SnapshotTime "2021-05-10T08:04:08Z" - - This command removes a single Storage file share snapshot with the specific share name and snapshot time - - - - - - -- Example 5: Remove a Storage file share and it's snapshots -- - Remove-AzRmStorageShare -ResourceGroupName "myResourceGroup" -StorageAccountName "myStorageAccount" -Name "myshare" -Include Snapshots - - This command removes a Storage file share and it's snapshots By default, the cmdlet will fail if the file share has snapshots without "-include" parameter. - - - - - - Example 6: Remove a Storage file share and all it's snapshots (include leased snapshots) - Remove-AzRmStorageShare -ResourceGroupName "myResourceGroup" -StorageAccountName "myStorageAccount" -Name "myshare" -Include Leased-Snapshots - - This command removes a Storage file share and all it's snapshots, include leased and not leased snapshots. By default, the cmdlet will fail if the file share has snapshots without "-include" parameter. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azrmstorageshare - - - - - - Remove-AzStorageAccount - Remove - AzStorageAccount - - Removes a Storage account from Azure. - - - - The Remove-AzStorageAccount cmdlet removes a Storage account from Azure. - - - - Remove-AzStorageAccount - - ResourceGroupName - - Specifies the name of the resource group that contains the Storage account to remove. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account to remove. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Specifies the name of the Storage account to remove. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the resource group that contains the Storage account to remove. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - - - System.Void - - - - - - - - - - - - - - ------------- Example 1: Remove a Storage account ------------- - Remove-AzStorageAccount -ResourceGroupName "RG01" -Name "mystorageaccount" - - This command removes the specified Storage account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstorageaccount - - - Get-AzStorageAccount - - - - New-AzStorageAccount - - - - Set-AzStorageAccount - - - - - - - Remove-AzStorageAccountManagementPolicy - Remove - AzStorageAccountManagementPolicy - - Removes the management policy of an Azure Storage account. - - - - The Remove-AzStorageAccountManagementPolicy cmdlet removes the management policy of an Azure Storage account. - - - - Remove-AzStorageAccountManagementPolicy - - InputObject - - Management Object to Remove - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicy - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageAccountManagementPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageAccountManagementPolicy - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageAccountManagementPolicy - - StorageAccountResourceId - - Storage Account Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Management Object to Remove - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicy - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - StorageAccountResourceId - - Storage Account Resource Id. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - Example 1: Remove the management policy of a Storage account. - Remove-AzStorageAccountManagementPolicy -ResourceGroupName "MyResourceGroup" -AccountName "mystorageaccount" - - This command removes the management policy of a Storage account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/Az.storage/remove-Azstorageaccountmanagementpolicy - - - - - - Remove-AzStorageAccountNetworkRule - Remove - AzStorageAccountNetworkRule - - Remove IpRules or VirtualNetworkRules from the NetWorkRule property of a Storage account - - - - The Remove-AzStorageAccountNetworkRule cmdlet removes IpRules or VirtualNetworkRules from the NetWorkRule property of a Storage account - - - - Remove-AzStorageAccountNetworkRule - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IPAddressOrRange - - The Array of IpAddressOrRange, will remove IpRule with same IpAddressOrRange from the NetWorkRule Property. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageAccountNetworkRule - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IPRule - - The Array of IpRule objects to remove from the NetWorkRule Property. - - Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageAccountNetworkRule - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ResourceAccessRule - - Storage Account NetworkRule ResourceAccessRules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSResourceAccessRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSResourceAccessRule[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageAccountNetworkRule - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ResourceId - - Storage Account ResourceAccessRule ResourceId in string. - - System.String - - System.String - - - None - - - TenantId - - Storage Account ResourceAccessRule TenantId in string. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageAccountNetworkRule - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - VirtualNetworkResourceId - - The Array of VirtualNetworkResourceId, will remove VirtualNetworkRule with same VirtualNetworkResourceId from the NetWorkRule Property. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageAccountNetworkRule - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - VirtualNetworkRule - - The Array of VirtualNetworkRule objects to remove from the NetWorkRule Property. - - Microsoft.Azure.Commands.Management.Storage.Models.PSVirtualNetworkRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSVirtualNetworkRule[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IPAddressOrRange - - The Array of IpAddressOrRange, will remove IpRule with same IpAddressOrRange from the NetWorkRule Property. - - System.String[] - - System.String[] - - - None - - - IPRule - - The Array of IpRule objects to remove from the NetWorkRule Property. - - Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule[] - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - ResourceAccessRule - - Storage Account NetworkRule ResourceAccessRules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSResourceAccessRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSResourceAccessRule[] - - - None - - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - ResourceId - - Storage Account ResourceAccessRule ResourceId in string. - - System.String - - System.String - - - None - - - TenantId - - Storage Account ResourceAccessRule TenantId in string. - - System.String - - System.String - - - None - - - VirtualNetworkResourceId - - The Array of VirtualNetworkResourceId, will remove VirtualNetworkRule with same VirtualNetworkResourceId from the NetWorkRule Property. - - System.String[] - - System.String[] - - - None - - - VirtualNetworkRule - - The Array of VirtualNetworkRule objects to remove from the NetWorkRule Property. - - Microsoft.Azure.Commands.Management.Storage.Models.PSVirtualNetworkRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSVirtualNetworkRule[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule[] - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSVirtualNetworkRule[] - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSVirtualNetworkRule - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule - - - - - - - - - - - - - - --- Example 1: Remove several IpRules with IPAddressOrRange --- - Remove-AzStorageAccountNetworkRule -ResourceGroupName "myResourceGroup" -Name "mystorageaccount" -IPAddressOrRange "10.0.0.0/7,28.1.0.0/16" - - This command remove several IpRules with IPAddressOrRange. - - - - - - Example 2: Remove a VirtualNetworkRule with VirtualNetworkRule Object input with JSON - Remove-AzStorageAccountNetworkRule -ResourceGroupName "myResourceGroup" -Name "mystorageaccount" -VirtualNetworkRule (@{VirtualNetworkResourceId="/subscriptions/s1/resourceGroups/g1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1";Action="allow"}) - - This command remove a VirtualNetworkRule with VirtualNetworkRule Object input with JSON. - - - - - - --------- Example 3: Remove first IpRule with pipeline --------- - (Get-AzStorageAccountNetworkRuleSet -ResourceGroupName "myResourceGroup" -Name "mystorageaccount").IpRules[0] | Remove-AzStorageAccountNetworkRule -ResourceGroupName "myResourceGroup" -Name "myStorageAccount" - - This command remove first IpRule with pipeline. - - - - - - Example 4: Remove several VirtualNetworkRules with VirtualNetworkResourceID - Remove-AzStorageAccountNetworkRule -ResourceGroupName "myResourceGroup" -Name "mystorageaccount" -VirtualNetworkResourceId "/subscriptions/s1/resourceGroups/g1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1","/subscriptions/s1/resourceGroups/g1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/subnet2" - - This command remove several VirtualNetworkRules with VirtualNetworkResourceID. - - - - - - Example 5: Remove a resource access rule with TenantId and ResourceId. - Remove-AzStorageAccountNetworkRule -ResourceGroupName "myResourceGroup" -Name "mystorageaccount" -TenantId $tenantId -ResourceId $ResourceId - - This command removes a resource access rule with TenantId and ResourceId. - - - - - - Example 6: Remove the first 3 resource access rules from a storage account - (Get-AzStorageAccountNetworkRuleSet -ResourceGroupName "myResourceGroup" -Name "mystorageaccount").ResourceAccessRules | Select-Object -First 3 | Remove-AzStorageAccountNetworkRule -ResourceGroupName "myResourceGroup" -Name "mystorageaccount" - - This command removes the first 3 resource access rules from a storage account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstorageaccountnetworkrule - - - - - - Remove-AzStorageBlobInventoryPolicy - Remove - AzStorageBlobInventoryPolicy - - Removes blob inventory policy from a Storage account. - - - - The Remove-AzStorageBlobInventoryPolicy cmdlet removes blob inventory policy from a Storage account. - - - - Remove-AzStorageBlobInventoryPolicy - - InputObject - - Management Object to Remove - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicy - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - {{Fill PassThru Description}} - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageBlobInventoryPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - {{Fill PassThru Description}} - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageBlobInventoryPolicy - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - {{Fill PassThru Description}} - - - System.Management.Automation.SwitchParameter - - - False - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageBlobInventoryPolicy - - StorageAccountResourceId - - Storage Account Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - {{Fill PassThru Description}} - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Management Object to Remove - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicy - - - None - - - PassThru - - {{Fill PassThru Description}} - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - StorageAccountResourceId - - Storage Account Resource Id. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicy - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - Example 1: Remove blob inventory policy from a Storage account - Remove-AzStorageBlobInventoryPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" - - This command removes blob inventory policy from a Storage account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstorageblobinventorypolicy - - - - - - Remove-AzStorageLocalUser - Remove - AzStorageLocalUser - - Removes a specified local user in a storage account. - - - - The Remove-AzStorageLocalUser cmdlet removes a specified local user from a storage account. - - - - Remove-AzStorageLocalUser - - InputObject - - Local User Object to Remove - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUser - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUser - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - {{ Fill PassThru Description }} - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageLocalUser - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - {{ Fill PassThru Description }} - - - System.Management.Automation.SwitchParameter - - - False - - - UserName - - The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageLocalUser - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - {{ Fill PassThru Description }} - - - System.Management.Automation.SwitchParameter - - - False - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - UserName - - The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Local User Object to Remove - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUser - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUser - - - None - - - PassThru - - {{ Fill PassThru Description }} - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - UserName - - The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - ----------- Example 1: Remove a specified local user ----------- - Remove-AzStorageLocalUser -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -UserName testuser1 - - This command removes a specified local user. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstoragelocaluser - - - - - - Remove-AzStorageObjectReplicationPolicy - Remove - AzStorageObjectReplicationPolicy - - Removes the specified object replication policy from a Storage account. - - - - The Remove-AzStorageObjectReplicationPolicy cmdlet removes the specified object replication policy from a Storage account. - - - - Remove-AzStorageObjectReplicationPolicy - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Object Replication Policy object to Delete. - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy - - - None - - - PassThru - - {{Fill PassThru Description}} - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageObjectReplicationPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - {{Fill PassThru Description}} - - - System.Management.Automation.SwitchParameter - - - False - - - PolicyId - - Object Replication Policy Id. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageObjectReplicationPolicy - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - {{Fill PassThru Description}} - - - System.Management.Automation.SwitchParameter - - - False - - - PolicyId - - Object Replication Policy Id. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Object Replication Policy object to Delete. - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy - - - None - - - PassThru - - {{Fill PassThru Description}} - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - PolicyId - - Object Replication Policy Id. - - System.String - - System.String - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - Example 1: Remove an object replication policy with specific policyId from a storage account. - Remove-AzStorageObjectReplicationPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -PolicyId $policyId - - This command removes an object replication policy with specific policyId from a storage account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstorageobjectreplicationpolicy - - - - - - Restore-AzRmStorageShare - Restore - AzRmStorageShare - - Restores a deleted file share. - - - - The Restore-AzRmStorageShare cmdlet restores a deleted file share within a valid retention days if share soft delete is enabled. - - - - Restore-AzRmStorageShare - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DeletedShareVersion - - Deleted Share Version, which will be restored from. - - System.String - - System.String - - - None - - - Name - - Deleted Share Name, which will be restored. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Restore-AzRmStorageShare - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DeletedShareVersion - - Deleted Share Version, which will be restored from. - - System.String - - System.String - - - None - - - Name - - Deleted Share Name, which will be restored. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Restore-AzRmStorageShare - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Deleted Share object - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DeletedShareVersion - - Deleted Share Version, which will be restored from. - - System.String - - System.String - - - None - - - InputObject - - Deleted Share object - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - - None - - - Name - - Deleted Share Name, which will be restored. - - System.String - - System.String - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - - - - - - - - - - - - - ------------ Example 1: Remove and restore a share ------------ - Remove-AzRmStorageShare -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -Name $shareName -Force - -Get-AzRmStorageShare -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -IncludeDeleted - - ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocol AccessTier Deleted Version ShareUsageBytes ----- -------- --------------- ---------- ------- ------- --------------- -test 100 TransactionOptimized -share1 100 TransactionOptimized True 01D61FD1FC5498B6 - -Restore-AzRmStorageShare -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -Name $shareName -DeletedShareVersion 01D61FD1FC5498B6 - - ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocol AccessTier Deleted Version ShareUsageBytes ----- -------- --------------- ---------- ------- ------- --------------- -share1 100 - - This command first delete a file share, and then list shares and see the deleted share version, finally restore it back to a normal share. Need enabled share soft delete with Update-AzStorageFileServiceProperty, before delete the share. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/restore-azrmstorageshare - - - - - - Restore-AzStorageBlobRange - Restore - AzStorageBlobRange - - Restores a Storage account for specific blob ranges. - - - - The Restore-AzStorageBlobRange cmdlet restores blobs in a Storage account for specific blob ranges. The start range is included, and the end range is excluded in blob restore. - - - - Restore-AzStorageBlobRange - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - BlobRestoreRange - - The blob range to Restore. If not specify this parameter, will restore all blobs. - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobRestoreRange[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobRestoreRange[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - TimeToRestore - - The Time to Restore Blob. - - System.DateTime - - System.DateTime - - - None - - - WaitForComplete - - Wait for Restore task complete - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Restore-AzStorageBlobRange - - ResourceId - - Storage Account Resource Id. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - BlobRestoreRange - - The blob range to Restore. If not specify this parameter, will restore all blobs. - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobRestoreRange[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobRestoreRange[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - TimeToRestore - - The Time to Restore Blob. - - System.DateTime - - System.DateTime - - - None - - - WaitForComplete - - Wait for Restore task complete - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Restore-AzStorageBlobRange - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - BlobRestoreRange - - The blob range to Restore. If not specify this parameter, will restore all blobs. - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobRestoreRange[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobRestoreRange[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - TimeToRestore - - The Time to Restore Blob. - - System.DateTime - - System.DateTime - - - None - - - WaitForComplete - - Wait for Restore task complete - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - BlobRestoreRange - - The blob range to Restore. If not specify this parameter, will restore all blobs. - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobRestoreRange[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobRestoreRange[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - ResourceId - - Storage Account Resource Id. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - TimeToRestore - - The Time to Restore Blob. - - System.DateTime - - System.DateTime - - - None - - - WaitForComplete - - Wait for Restore task complete - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobRestoreStatus - - - - - - - - - - - - - - Example 1: Start restores blobs in a Storage account with specific blob ranges - $range1 = New-AzStorageBlobRangeToRestore -StartRange container1/blob1 -EndRange container2/blob2 -$range2 = New-AzStorageBlobRangeToRestore -StartRange container3/blob3 -EndRange container4/blob4 -Restore-AzStorageBlobRange -ResourceGroupName "myresourcegoup" -StorageAccountName "mystorageaccount" -TimeToRestore (Get-Date).AddDays(-1) -BlobRestoreRange $range1,$range2 - -Status RestoreId FailureReason Parameters.TimeToRestore Parameters.BlobRanges ------- --------- ------------- ------------------------ --------------------- -InProgress 6ca55a8b-fca0-461a-8e4c-13927a9707e6 2020-02-10T13:58:44.6841810Z ["container1/blob1" -> "container2/blob2",...] - -(Get-AzStorageAccount -ResourceGroupName $rgname -StorageAccountName $accountName -IncludeBlobRestoreStatus).BlobRestoreStatus - -Status RestoreId FailureReason Parameters.TimeToRestore Parameters.BlobRanges ------- --------- ------------- ------------------------ --------------------- -Complete 6ca55a8b-fca0-461a-8e4c-13927a9707e6 2020-02-10T13:58:44.6841810Z ["container1/blob1" -> "container2/blob2",...] - - This command first creates 2 blob ranges, then start restores blobs in a Storage account with the 2 blob ranges from 1 day ago. User can use Get-AzStorageAccount to trace the restore status later. - - - - - - Example 2: Restores all blobs in a Storage account in the backend - $job = Restore-AzStorageBlobRange -ResourceGroupName "myresourcegoup" -StorageAccountName "mystorageaccount" -TimeToRestore (Get-Date).AddMinutes(-30) -WaitForComplete -asjob - -$job | Wait-Job - -$job.Output - -Status RestoreId FailureReason Parameters.TimeToRestore Parameters.BlobRanges ------- --------- ------------- ------------------------ --------------------- -Complete 0387953a-bbe6-4602-818d-e661581ee44b 2020-08-28T07:11:33.9843100Z ["" -> ""] - - This command restores all blobs in a Storage account from 30 minutes ago, and wait for the restore complete. Since restore blobs might take a long time, run it in the backend with -Asjob parameter, and then wait for the job complete and show the result. - - - - - - Example 3: Restores blobs by input blob ranges directly, and wait for complete - Restore-AzStorageBlobRange -ResourceGroupName "myresourcegoup" -StorageAccountName "mystorageaccount" -WaitForComplete ` - -TimeToRestore (Get-Date).AddSeconds(-1) ` - -BlobRestoreRange @{StartRange="aaa/abc";EndRange="bbb/abc"},@{StartRange="bbb/acc";EndRange=""} - -WARNING: Restore blob rang with Id 'd66d1d02-6e48-47ef-b516-0155dd8319c6' started. Restore blob ranges time to complete is dependent on the size of the restore. - -Status RestoreId FailureReason Parameters.TimeToRestore Parameters.BlobRanges ------- --------- ------------- ------------------------ --------------------- -Complete d66d1d02-6e48-47ef-b516-0155dd8319c6 2020-02-10T14:17:46.8189116Z ["aaa/abc" -> "bbb/abc",...] - - This command restores blobs in a Storage account from 1 day ago, by input 2 blob ranges directly to the Restore-AzStorageBlobRange cmdlet. This command will wait for the restore complete. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/restore-azstorageblobrange - - - - - - Revoke-AzStorageAccountUserDelegationKeys - Revoke - AzStorageAccountUserDelegationKeys - - Revoke all User Delegation keys of a Storage account. - - - - The Revoke-AzStorageAccountUserDelegationKeys cmdlet revokes all User Delegation keys of a Storage account, so all Identity SAS token of the Storage account will also be revoked. - - - - Revoke-AzStorageAccountUserDelegationKeys - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - A storage account object, returned by Get_AzStorageAccount, New-AzStorageAccount. - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - PassThru - - Normally this cmdlet returns no output on successful completion, this parameter forces the cmdlet to return a value ($true) on successful completion. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Revoke-AzStorageAccountUserDelegationKeys - - ResourceGroupName - - The resource group name containing the storage account resource. - - System.String - - System.String - - - None - - - StorageAccountName - - The name of the storage account resource. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Normally this cmdlet returns no output on successful completion, this parameter forces the cmdlet to return a value ($true) on successful completion. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Revoke-AzStorageAccountUserDelegationKeys - - ResourceId - - Storage Account Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Normally this cmdlet returns no output on successful completion, this parameter forces the cmdlet to return a value ($true) on successful completion. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - A storage account object, returned by Get_AzStorageAccount, New-AzStorageAccount. - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - PassThru - - Normally this cmdlet returns no output on successful completion, this parameter forces the cmdlet to return a value ($true) on successful completion. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - The resource group name containing the storage account resource. - - System.String - - System.String - - - None - - - ResourceId - - Storage Account Resource Id. - - System.String - - System.String - - - None - - - StorageAccountName - - The name of the storage account resource. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - System.String - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - Example 1: Revoke all User Delegation keys of a Storage account - Revoke-AzStorageAccountUserDelegationKeys -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" - - This example revokes all User Delegation keys of a Storage account, so all Identity SAS token generated from the User Delegation keys will also be revoked. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/revoke-azstorageaccountuserdelegationkeys - - - - - - Set-AzCurrentStorageAccount - Set - AzCurrentStorageAccount - - Modifies the current Storage account of the specified subscription. - - - - The Set-AzCurrentStorageAccount cmdlet modifies the current Azure Storage account of the specified Azure subscription in Azure PowerShell. The current Storage account is used as the default when you access Storage without specifying a Storage account name. - - - - Set-AzCurrentStorageAccount - - Context - - Specifies an AzureStorageContext object for the current Storage account. To obtain a storage context object, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Set-AzCurrentStorageAccount - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Specifies the name of the Storage account that this cmdlet modifies. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the resource group that contains the Storage account to modify. - - System.String - - System.String - - - None - - - - - - Context - - Specifies an AzureStorageContext object for the current Storage account. To obtain a storage context object, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Specifies the name of the Storage account that this cmdlet modifies. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the resource group that contains the Storage account to modify. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - System.String - - - - - - - - - - System.String - - - - - - - - - - - - - - ---------- Example 1: Set the current Storage account ---------- - Set-AzCurrentStorageAccount -ResourceGroupName "RG01" -Name "mystorageaccount" - - This command sets the default Storage account for the specified subscription. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azcurrentstorageaccount - - - Set-AzStorageAccount - - - - - - - Set-AzRmStorageContainerImmutabilityPolicy - Set - AzRmStorageContainerImmutabilityPolicy - - Creates or updates ImmutabilityPolicy of a Storage blob containers - - - - The Set-AzRmStorageContainerImmutabilityPolicy cmdlet creates or updates ImmutabilityPolicy of a Storage blob containers - - - - Set-AzRmStorageContainerImmutabilityPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - AllowProtectedAppendWrite - - This property can only be changed for unlocked time-based retention policies. With this property enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. '-AllowProtectedAppendWrites' and '-AllowProtectedAppendWritesAll' are mutually exclusive. - - System.Boolean - - System.Boolean - - - None - - - AllowProtectedAppendWriteAll - - This property can only be changed for unlocked policies. When enabled, new blocks can be written to both 'Appened and Block Blobs' while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. '-AllowProtectedAppendWrites' and '-AllowProtectedAppendWritesAll' are mutually exclusive. - - System.Boolean - - System.Boolean - - - None - - - ContainerName - - Container Name - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. If -ExtendPolicy is not specified, Etag is optional; else Etag is required. - - System.String - - System.String - - - None - - - ImmutabilityPeriod - - Immutability period since creation in days. - - System.Int32 - - System.Int32 - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzRmStorageContainerImmutabilityPolicy - - AllowProtectedAppendWrite - - This property can only be changed for unlocked time-based retention policies. With this property enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. '-AllowProtectedAppendWrites' and '-AllowProtectedAppendWritesAll' are mutually exclusive. - - System.Boolean - - System.Boolean - - - None - - - AllowProtectedAppendWriteAll - - This property can only be changed for unlocked policies. When enabled, new blocks can be written to both 'Appened and Block Blobs' while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. '-AllowProtectedAppendWrites' and '-AllowProtectedAppendWritesAll' are mutually exclusive. - - System.Boolean - - System.Boolean - - - None - - - ContainerName - - Container Name - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. If -ExtendPolicy is not specified, Etag is optional; else Etag is required. - - System.String - - System.String - - - None - - - ImmutabilityPeriod - - Immutability period since creation in days. - - System.Int32 - - System.Int32 - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzRmStorageContainerImmutabilityPolicy - - AllowProtectedAppendWrite - - This property can only be changed for unlocked time-based retention policies. With this property enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. '-AllowProtectedAppendWrites' and '-AllowProtectedAppendWritesAll' are mutually exclusive. - - System.Boolean - - System.Boolean - - - None - - - AllowProtectedAppendWriteAll - - This property can only be changed for unlocked policies. When enabled, new blocks can be written to both 'Appened and Block Blobs' while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. '-AllowProtectedAppendWrites' and '-AllowProtectedAppendWritesAll' are mutually exclusive. - - System.Boolean - - System.Boolean - - - None - - - Container - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. If -ExtendPolicy is not specified, Etag is optional; else Etag is required. - - System.String - - System.String - - - None - - - ImmutabilityPeriod - - Immutability period since creation in days. - - System.Int32 - - System.Int32 - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzRmStorageContainerImmutabilityPolicy - - InputObject - - Container Name - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - - None - - - AllowProtectedAppendWrite - - This property can only be changed for unlocked time-based retention policies. With this property enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. '-AllowProtectedAppendWrites' and '-AllowProtectedAppendWritesAll' are mutually exclusive. - - System.Boolean - - System.Boolean - - - None - - - AllowProtectedAppendWriteAll - - This property can only be changed for unlocked policies. When enabled, new blocks can be written to both 'Appened and Block Blobs' while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. '-AllowProtectedAppendWrites' and '-AllowProtectedAppendWritesAll' are mutually exclusive. - - System.Boolean - - System.Boolean - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ImmutabilityPeriod - - Immutability period since creation in days. - - System.Int32 - - System.Int32 - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzRmStorageContainerImmutabilityPolicy - - Container - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. If -ExtendPolicy is not specified, Etag is optional; else Etag is required. - - System.String - - System.String - - - None - - - ExtendPolicy - - Indicate ExtendPolicy to Extend an existing ImmutabilityPolicy. After ImmutabilityPolicy is locked, it can only be extend. - - - System.Management.Automation.SwitchParameter - - - False - - - ImmutabilityPeriod - - Immutability period since creation in days. - - System.Int32 - - System.Int32 - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzRmStorageContainerImmutabilityPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - ContainerName - - Container Name - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. If -ExtendPolicy is not specified, Etag is optional; else Etag is required. - - System.String - - System.String - - - None - - - ExtendPolicy - - Indicate ExtendPolicy to Extend an existing ImmutabilityPolicy. After ImmutabilityPolicy is locked, it can only be extend. - - - System.Management.Automation.SwitchParameter - - - False - - - ImmutabilityPeriod - - Immutability period since creation in days. - - System.Int32 - - System.Int32 - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzRmStorageContainerImmutabilityPolicy - - ContainerName - - Container Name - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. If -ExtendPolicy is not specified, Etag is optional; else Etag is required. - - System.String - - System.String - - - None - - - ExtendPolicy - - Indicate ExtendPolicy to Extend an existing ImmutabilityPolicy. After ImmutabilityPolicy is locked, it can only be extend. - - - System.Management.Automation.SwitchParameter - - - False - - - ImmutabilityPeriod - - Immutability period since creation in days. - - System.Int32 - - System.Int32 - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzRmStorageContainerImmutabilityPolicy - - InputObject - - Container Name - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExtendPolicy - - Indicate ExtendPolicy to Extend an existing ImmutabilityPolicy. After ImmutabilityPolicy is locked, it can only be extend. - - - System.Management.Automation.SwitchParameter - - - False - - - ImmutabilityPeriod - - Immutability period since creation in days. - - System.Int32 - - System.Int32 - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AllowProtectedAppendWrite - - This property can only be changed for unlocked time-based retention policies. With this property enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. '-AllowProtectedAppendWrites' and '-AllowProtectedAppendWritesAll' are mutually exclusive. - - System.Boolean - - System.Boolean - - - None - - - AllowProtectedAppendWriteAll - - This property can only be changed for unlocked policies. When enabled, new blocks can be written to both 'Appened and Block Blobs' while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. '-AllowProtectedAppendWrites' and '-AllowProtectedAppendWritesAll' are mutually exclusive. - - System.Boolean - - System.Boolean - - - None - - - Container - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - ContainerName - - Container Name - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. If -ExtendPolicy is not specified, Etag is optional; else Etag is required. - - System.String - - System.String - - - None - - - ExtendPolicy - - Indicate ExtendPolicy to Extend an existing ImmutabilityPolicy. After ImmutabilityPolicy is locked, it can only be extend. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ImmutabilityPeriod - - Immutability period since creation in days. - - System.Int32 - - System.Int32 - - - None - - - InputObject - - Container Name - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - - - - - - - - - - - - - Example 1: Create or update ImmutabilityPolicy of a Storage blob container with Storage account name and container name - Set-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -ContainerName "myContainer" -ImmutabilityPeriod 10 - - This command creates or updates ImmutabilityPolicy of a Storage blob container with Storage account name and container name. - - - - - - Example 2: Extend ImmutabilityPolicy of a Storage blob container, with Storage account object - $accountObject = Get-AzStorageAccount -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -$policy = Get-AzRmStorageContainerImmutabilityPolicy -StorageAccount $accountObject -ContainerName "myContainer" -Set-AzRmStorageContainerImmutabilityPolicy -StorageAccount $accountObject -ContainerName "myContainer" -ImmutabilityPeriod 20 -Etag $policy.Etag -ExtendPolicy - - This command extend ImmutabilityPolicy of a Storage blob container, with Storage account object. Extend ImmutabilityPolicy can only run after ImmutabilityPolicy is locked. - - - - - - Example 3: Update ImmutabilityPolicy of a Storage blob container - $containerObject = Get-AzRmStorageContainer -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -Name "myContainer" -$policy = Set-AzRmStorageContainerImmutabilityPolicy -Container $containerObject -ImmutabilityPeriod 12 -$policy = Set-AzRmStorageContainerImmutabilityPolicy -Container $containerObject -ImmutabilityPeriod 9 -Etag $policy.Etag -$policy = Set-AzRmStorageContainerImmutabilityPolicy -Container $containerObject -AllowProtectedAppendWrite $true -$policy = Set-AzRmStorageContainerImmutabilityPolicy -Container $containerObject -AllowProtectedAppendWrite $false -AllowProtectedAppendWriteAll $true - - This command updates ImmutabilityPolicy of a Storage blob container with Storage container object 3 times: First to ImmutabilityPeriod 12 days without etag, then to ImmutabilityPeriod 9 days with etag, then enabled AllowProtectedAppendWrite, finally enabled AllowProtectedAppendWriteAll. - - - - - - Example 4: Extend ImmutabilityPolicy of a Storage blob container, with ImmutabilityPolicy object - Get-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -ContainerName "myContainer" | Set-AzRmStorageContainerImmutabilityPolicy -ImmutabilityPeriod 15 -ExtendPolicy - - This command extend ImmutabilityPolicy of a Storage blob container, with ImmutabilityPolicy object. Extend ImmutabilityPolicy can only run after ImmutabilityPolicy is locked. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azrmstoragecontainerimmutabilitypolicy - - - - - - Set-AzStorageAccount - Set - AzStorageAccount - - Modifies a Storage account. - - - - The Set-AzStorageAccount cmdlet modifies an Azure Storage account. You can use this cmdlet to modify the account type, update a customer domain, or set tags on a Storage account. - - - - Set-AzStorageAccount - - ResourceGroupName - - Specifies the name of the resource group in which to modify the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account to modify. - - System.String - - System.String - - - None - - - AccessTier - - Specifies the access tier of the Storage account that this cmdlet modifies. The acceptable values for this parameter are: Hot and Cool. If you change the access tier, it may result in additional charges. For more information, see Azure Blob Storage: Hot and cool storage tiers (http://go.microsoft.com/fwlink/?LinkId=786482). If the Storage account has Kind as StorageV2 or BlobStorage, you can specify the AccessTier parameter. If the Storage account has Kind as Storage, do not specify the AccessTier parameter. - - - Hot - Cool - Cold - - System.String - - System.String - - - None - - - ActiveDirectoryAccountType - - Specifies the Active Directory account type for Azure Storage. Possible values include: 'User', 'Computer'. - - System.String - - System.String - - - None - - - ActiveDirectoryAzureStorageSid - - Specifies the security identifier (SID) for Azure Storage. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryDomainGuid - - Specifies the domain GUID. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryDomainName - - Specifies the primary domain that the AD DNS server is authoritative for. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryDomainSid - - Specifies the security identifier (SID). This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryForestName - - Specifies the Active Directory forest to get. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryNetBiosDomainName - - Specifies the NetBIOS domain name. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectorySamAccountName - - Specifies the Active Directory SAMAccountName for Azure Storage. - - System.String - - System.String - - - None - - - AllowBlobPublicAccess - - Allow or disallow anonymous access to all blobs or containers in the storage account. - - System.Boolean - - System.Boolean - - - None - - - AllowCrossTenantReplication - - Gets or sets allow or disallow cross Microsoft Entra tenant object replication. The default interpretation is true for this property. - - System.Boolean - - System.Boolean - - - None - - - AllowedCopyScope - - Set restrict copy to and from Storage Accounts within a Microsoft Entra tenant or with Private Links to the same VNet. Possible values include: 'PrivateLink', 'AAD' - - System.String - - System.String - - - None - - - AllowSharedKeyAccess - - Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Microsoft Entra ID. The default value is null, which is equivalent to true. - - System.Boolean - - System.Boolean - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - AssignIdentity - - Generate and assign a new Storage account Identity for this Storage account for use with key management services like Azure KeyVault. - - - System.Management.Automation.SwitchParameter - - - False - - - CustomDomainName - - Specifies the name of the custom domain. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultSharePermission - - Default share permission for users using Kerberos authentication if RBAC role is not assigned. - - - None - StorageFileDataSmbShareContributor - StorageFileDataSmbShareReader - StorageFileDataSmbShareElevatedContributor - - System.String - - System.String - - - None - - - EnableActiveDirectoryDomainServicesForFile - - Enable Azure Files Active Directory Domain Service Authentication for the storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableHttpsTrafficOnly - - Indicates whether or not the Storage account only enables HTTPS traffic. - - System.Boolean - - System.Boolean - - - None - - - EnableLargeFileShare - - Indicates whether or not the storage account can support large file shares with more than 5 TiB capacity. Once the account is enabled, the feature cannot be disabled. Currently only supported for LRS and ZRS replication types, hence account conversions to geo-redundant accounts would not be possible. Learn more in https://go.microsoft.com/fwlink/?linkid=2086047 - - - System.Management.Automation.SwitchParameter - - - False - - - EnableLocalUser - - Enable local users feature for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableSftp - - Enable Secure File Transfer Protocol for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - Force - - Forces the change to be written to the Storage account. - - - System.Management.Automation.SwitchParameter - - - False - - - IdentityType - - Set the new Storage Account Identity type, the idenetity is for use with key management services like Azure KeyVault. - - - SystemAssigned - UserAssigned - SystemAssignedUserAssigned - None - - System.String - - System.String - - - None - - - ImmutabilityPeriod - - The immutability period for the blobs in the container since the policy creation in days. This property can only be changed when account is created with '-EnableAccountLevelImmutability'. - - System.Int32 - - System.Int32 - - - None - - - ImmutabilityPolicyState - - The mode of the policy. Possible values include: 'Unlocked', 'Locked', 'Disabled. Disabled state disablesthe policy. Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property. Locked state only allows the increase of the immutability retention time. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. Only a policy in an Unlocked state can transition to a Locked state which cannot be reverted. This property can only be changed when account is created with '-EnableAccountLevelImmutability'. - - System.String - - System.String - - - None - - - KeyExpirationPeriodInDay - - The Key expiration period of this account, it is accurate to days. - - System.Int32 - - System.Int32 - - - None - - - KeyVaultFederatedClientId - - Set ClientId of the multi-tenant application to be used in conjunction with the user-assigned identity for cross-tenant customer-managed-keys server-side encryption on the storage account. - - System.String - - System.String - - - None - - - KeyVaultUserAssignedIdentityId - - Set resource id for user assigned Identity used to access Azure KeyVault of Storage Account Encryption, the id must in the storage account's UserAssignIdentityId. - - System.String - - System.String - - - None - - - MinimumTlsVersion - - The minimum TLS version to be permitted on requests to storage. - - - TLS1_0 - TLS1_1 - TLS1_2 - TLS1_3 - - System.String - - System.String - - - None - - - NetworkRuleSet - - NetworkRuleSet is used to define a set of configuration rules for firewalls and virtual networks, as well as to set values for network properties such as services allowed to bypass the rules and how to handle requests that don't match any of the defined rules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - - None - - - PublicNetworkAccess - - Allow or disallow public network access to Storage Account.Possible values include: 'Enabled', 'Disabled'. - - System.String - - System.String - - - None - - - PublishInternetEndpoint - - Indicates whether internet routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - PublishMicrosoftEndpoint - - Indicates whether microsoft routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - RoutingChoice - - Routing Choice defines the kind of network routing opted by the user. Possible values include: 'MicrosoftRouting', 'InternetRouting' - - - MicrosoftRouting - InternetRouting - - System.String - - System.String - - - None - - - SasExpirationPeriod - - The SAS expiration period of this account, it is a timespan and accurate to seconds. - - System.TimeSpan - - System.TimeSpan - - - None - - - SkuName - - Specifies the SKU name of the Storage account. The acceptable values for this parameter are: - Standard_LRS - Locally-redundant storage. - - Standard_ZRS - Zone-redundant storage. - - Standard_GRS - Geo-redundant storage. - - Standard_RAGRS - Read access geo-redundant storage. - - Premium_LRS - Premium locally-redundant storage. - - Standard_GZRS - Geo-redundant zone-redundant storage. - - Standard_RAGZRS - Read access geo-redundant zone-redundant storage. - You cannot change Standard_ZRS and Premium_LRS types to other account types. You cannot change other account types to Standard_ZRS or Premium_LRS. - - - Standard_LRS - Standard_ZRS - Standard_GRS - Standard_RAGRS - Premium_LRS - Standard_GZRS - Standard_RAGZRS - - System.String - - System.String - - - None - - - Tag - - Key-value pairs in the form of a hash table set as tags on the server. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UpgradeToStorageV2 - - Upgrade Storage account Kind from Storage or BlobStorage to StorageV2. - - - System.Management.Automation.SwitchParameter - - - False - - - UserAssignedIdentityId - - Set resource ids for the the new Storage Account user assignedd Identity, the identity will be used with key management services like Azure KeyVault. - - System.String - - System.String - - - None - - - UseSubDomain - - Indicates whether to enable indirect CName validation. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageAccount - - ResourceGroupName - - Specifies the name of the resource group in which to modify the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account to modify. - - System.String - - System.String - - - None - - - AccessTier - - Specifies the access tier of the Storage account that this cmdlet modifies. The acceptable values for this parameter are: Hot and Cool. If you change the access tier, it may result in additional charges. For more information, see Azure Blob Storage: Hot and cool storage tiers (http://go.microsoft.com/fwlink/?LinkId=786482). If the Storage account has Kind as StorageV2 or BlobStorage, you can specify the AccessTier parameter. If the Storage account has Kind as Storage, do not specify the AccessTier parameter. - - - Hot - Cool - Cold - - System.String - - System.String - - - None - - - ActiveDirectoryDomainGuid - - Specifies the domain GUID. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryDomainName - - Specifies the primary domain that the AD DNS server is authoritative for. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - AllowBlobPublicAccess - - Allow or disallow anonymous access to all blobs or containers in the storage account. - - System.Boolean - - System.Boolean - - - None - - - AllowCrossTenantReplication - - Gets or sets allow or disallow cross Microsoft Entra tenant object replication. The default interpretation is true for this property. - - System.Boolean - - System.Boolean - - - None - - - AllowedCopyScope - - Set restrict copy to and from Storage Accounts within a Microsoft Entra tenant or with Private Links to the same VNet. Possible values include: 'PrivateLink', 'AAD' - - System.String - - System.String - - - None - - - AllowSharedKeyAccess - - Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Microsoft Entra ID. The default value is null, which is equivalent to true. - - System.Boolean - - System.Boolean - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - AssignIdentity - - Generate and assign a new Storage account Identity for this Storage account for use with key management services like Azure KeyVault. - - - System.Management.Automation.SwitchParameter - - - False - - - CustomDomainName - - Specifies the name of the custom domain. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultSharePermission - - Default share permission for users using Kerberos authentication if RBAC role is not assigned. - - - None - StorageFileDataSmbShareContributor - StorageFileDataSmbShareReader - StorageFileDataSmbShareElevatedContributor - - System.String - - System.String - - - None - - - EnableAzureActiveDirectoryKerberosForFile - - Enable Azure Files Active Directory Domain Service Kerberos Authentication for the storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableHttpsTrafficOnly - - Indicates whether or not the Storage account only enables HTTPS traffic. - - System.Boolean - - System.Boolean - - - None - - - EnableLargeFileShare - - Indicates whether or not the storage account can support large file shares with more than 5 TiB capacity. Once the account is enabled, the feature cannot be disabled. Currently only supported for LRS and ZRS replication types, hence account conversions to geo-redundant accounts would not be possible. Learn more in https://go.microsoft.com/fwlink/?linkid=2086047 - - - System.Management.Automation.SwitchParameter - - - False - - - EnableLocalUser - - Enable local users feature for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableSftp - - Enable Secure File Transfer Protocol for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - Force - - Forces the change to be written to the Storage account. - - - System.Management.Automation.SwitchParameter - - - False - - - IdentityType - - Set the new Storage Account Identity type, the idenetity is for use with key management services like Azure KeyVault. - - - SystemAssigned - UserAssigned - SystemAssignedUserAssigned - None - - System.String - - System.String - - - None - - - ImmutabilityPeriod - - The immutability period for the blobs in the container since the policy creation in days. This property can only be changed when account is created with '-EnableAccountLevelImmutability'. - - System.Int32 - - System.Int32 - - - None - - - ImmutabilityPolicyState - - The mode of the policy. Possible values include: 'Unlocked', 'Locked', 'Disabled. Disabled state disablesthe policy. Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property. Locked state only allows the increase of the immutability retention time. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. Only a policy in an Unlocked state can transition to a Locked state which cannot be reverted. This property can only be changed when account is created with '-EnableAccountLevelImmutability'. - - System.String - - System.String - - - None - - - KeyExpirationPeriodInDay - - The Key expiration period of this account, it is accurate to days. - - System.Int32 - - System.Int32 - - - None - - - KeyVaultFederatedClientId - - Set ClientId of the multi-tenant application to be used in conjunction with the user-assigned identity for cross-tenant customer-managed-keys server-side encryption on the storage account. - - System.String - - System.String - - - None - - - KeyVaultUserAssignedIdentityId - - Set resource id for user assigned Identity used to access Azure KeyVault of Storage Account Encryption, the id must in the storage account's UserAssignIdentityId. - - System.String - - System.String - - - None - - - MinimumTlsVersion - - The minimum TLS version to be permitted on requests to storage. - - - TLS1_0 - TLS1_1 - TLS1_2 - TLS1_3 - - System.String - - System.String - - - None - - - NetworkRuleSet - - NetworkRuleSet is used to define a set of configuration rules for firewalls and virtual networks, as well as to set values for network properties such as services allowed to bypass the rules and how to handle requests that don't match any of the defined rules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - - None - - - PublicNetworkAccess - - Allow or disallow public network access to Storage Account.Possible values include: 'Enabled', 'Disabled'. - - System.String - - System.String - - - None - - - PublishInternetEndpoint - - Indicates whether internet routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - PublishMicrosoftEndpoint - - Indicates whether microsoft routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - RoutingChoice - - Routing Choice defines the kind of network routing opted by the user. Possible values include: 'MicrosoftRouting', 'InternetRouting' - - - MicrosoftRouting - InternetRouting - - System.String - - System.String - - - None - - - SasExpirationPeriod - - The SAS expiration period of this account, it is a timespan and accurate to seconds. - - System.TimeSpan - - System.TimeSpan - - - None - - - SkuName - - Specifies the SKU name of the Storage account. The acceptable values for this parameter are: - Standard_LRS - Locally-redundant storage. - - Standard_ZRS - Zone-redundant storage. - - Standard_GRS - Geo-redundant storage. - - Standard_RAGRS - Read access geo-redundant storage. - - Premium_LRS - Premium locally-redundant storage. - - Standard_GZRS - Geo-redundant zone-redundant storage. - - Standard_RAGZRS - Read access geo-redundant zone-redundant storage. - You cannot change Standard_ZRS and Premium_LRS types to other account types. You cannot change other account types to Standard_ZRS or Premium_LRS. - - - Standard_LRS - Standard_ZRS - Standard_GRS - Standard_RAGRS - Premium_LRS - Standard_GZRS - Standard_RAGZRS - - System.String - - System.String - - - None - - - Tag - - Key-value pairs in the form of a hash table set as tags on the server. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UpgradeToStorageV2 - - Upgrade Storage account Kind from Storage or BlobStorage to StorageV2. - - - System.Management.Automation.SwitchParameter - - - False - - - UserAssignedIdentityId - - Set resource ids for the the new Storage Account user assignedd Identity, the identity will be used with key management services like Azure KeyVault. - - System.String - - System.String - - - None - - - UseSubDomain - - Indicates whether to enable indirect CName validation. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageAccount - - ResourceGroupName - - Specifies the name of the resource group in which to modify the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account to modify. - - System.String - - System.String - - - None - - - AccessTier - - Specifies the access tier of the Storage account that this cmdlet modifies. The acceptable values for this parameter are: Hot and Cool. If you change the access tier, it may result in additional charges. For more information, see Azure Blob Storage: Hot and cool storage tiers (http://go.microsoft.com/fwlink/?LinkId=786482). If the Storage account has Kind as StorageV2 or BlobStorage, you can specify the AccessTier parameter. If the Storage account has Kind as Storage, do not specify the AccessTier parameter. - - - Hot - Cool - Cold - - System.String - - System.String - - - None - - - AllowBlobPublicAccess - - Allow or disallow anonymous access to all blobs or containers in the storage account. - - System.Boolean - - System.Boolean - - - None - - - AllowCrossTenantReplication - - Gets or sets allow or disallow cross Microsoft Entra tenant object replication. The default interpretation is true for this property. - - System.Boolean - - System.Boolean - - - None - - - AllowedCopyScope - - Set restrict copy to and from Storage Accounts within a Microsoft Entra tenant or with Private Links to the same VNet. Possible values include: 'PrivateLink', 'AAD' - - System.String - - System.String - - - None - - - AllowSharedKeyAccess - - Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Microsoft Entra ID. The default value is null, which is equivalent to true. - - System.Boolean - - System.Boolean - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - AssignIdentity - - Generate and assign a new Storage account Identity for this Storage account for use with key management services like Azure KeyVault. - - - System.Management.Automation.SwitchParameter - - - False - - - CustomDomainName - - Specifies the name of the custom domain. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultSharePermission - - Default share permission for users using Kerberos authentication if RBAC role is not assigned. - - - None - StorageFileDataSmbShareContributor - StorageFileDataSmbShareReader - StorageFileDataSmbShareElevatedContributor - - System.String - - System.String - - - None - - - EnableAzureActiveDirectoryDomainServicesForFile - - Enable Azure Files Active Directory Domain Service Authentication for the storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableHttpsTrafficOnly - - Indicates whether or not the Storage account only enables HTTPS traffic. - - System.Boolean - - System.Boolean - - - None - - - EnableLargeFileShare - - Indicates whether or not the storage account can support large file shares with more than 5 TiB capacity. Once the account is enabled, the feature cannot be disabled. Currently only supported for LRS and ZRS replication types, hence account conversions to geo-redundant accounts would not be possible. Learn more in https://go.microsoft.com/fwlink/?linkid=2086047 - - - System.Management.Automation.SwitchParameter - - - False - - - EnableLocalUser - - Enable local users feature for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableSftp - - Enable Secure File Transfer Protocol for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - Force - - Forces the change to be written to the Storage account. - - - System.Management.Automation.SwitchParameter - - - False - - - IdentityType - - Set the new Storage Account Identity type, the idenetity is for use with key management services like Azure KeyVault. - - - SystemAssigned - UserAssigned - SystemAssignedUserAssigned - None - - System.String - - System.String - - - None - - - ImmutabilityPeriod - - The immutability period for the blobs in the container since the policy creation in days. This property can only be changed when account is created with '-EnableAccountLevelImmutability'. - - System.Int32 - - System.Int32 - - - None - - - ImmutabilityPolicyState - - The mode of the policy. Possible values include: 'Unlocked', 'Locked', 'Disabled. Disabled state disablesthe policy. Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property. Locked state only allows the increase of the immutability retention time. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. Only a policy in an Unlocked state can transition to a Locked state which cannot be reverted. This property can only be changed when account is created with '-EnableAccountLevelImmutability'. - - System.String - - System.String - - - None - - - KeyExpirationPeriodInDay - - The Key expiration period of this account, it is accurate to days. - - System.Int32 - - System.Int32 - - - None - - - KeyVaultFederatedClientId - - Set ClientId of the multi-tenant application to be used in conjunction with the user-assigned identity for cross-tenant customer-managed-keys server-side encryption on the storage account. - - System.String - - System.String - - - None - - - KeyVaultUserAssignedIdentityId - - Set resource id for user assigned Identity used to access Azure KeyVault of Storage Account Encryption, the id must in the storage account's UserAssignIdentityId. - - System.String - - System.String - - - None - - - MinimumTlsVersion - - The minimum TLS version to be permitted on requests to storage. - - - TLS1_0 - TLS1_1 - TLS1_2 - TLS1_3 - - System.String - - System.String - - - None - - - NetworkRuleSet - - NetworkRuleSet is used to define a set of configuration rules for firewalls and virtual networks, as well as to set values for network properties such as services allowed to bypass the rules and how to handle requests that don't match any of the defined rules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - - None - - - PublicNetworkAccess - - Allow or disallow public network access to Storage Account.Possible values include: 'Enabled', 'Disabled'. - - System.String - - System.String - - - None - - - PublishInternetEndpoint - - Indicates whether internet routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - PublishMicrosoftEndpoint - - Indicates whether microsoft routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - RoutingChoice - - Routing Choice defines the kind of network routing opted by the user. Possible values include: 'MicrosoftRouting', 'InternetRouting' - - - MicrosoftRouting - InternetRouting - - System.String - - System.String - - - None - - - SasExpirationPeriod - - The SAS expiration period of this account, it is a timespan and accurate to seconds. - - System.TimeSpan - - System.TimeSpan - - - None - - - SkuName - - Specifies the SKU name of the Storage account. The acceptable values for this parameter are: - Standard_LRS - Locally-redundant storage. - - Standard_ZRS - Zone-redundant storage. - - Standard_GRS - Geo-redundant storage. - - Standard_RAGRS - Read access geo-redundant storage. - - Premium_LRS - Premium locally-redundant storage. - - Standard_GZRS - Geo-redundant zone-redundant storage. - - Standard_RAGZRS - Read access geo-redundant zone-redundant storage. - You cannot change Standard_ZRS and Premium_LRS types to other account types. You cannot change other account types to Standard_ZRS or Premium_LRS. - - - Standard_LRS - Standard_ZRS - Standard_GRS - Standard_RAGRS - Premium_LRS - Standard_GZRS - Standard_RAGZRS - - System.String - - System.String - - - None - - - StorageEncryption - - Indicates whether or not to set the Storage account encryption to use Microsoft-managed keys. - - - System.Management.Automation.SwitchParameter - - - False - - - Tag - - Key-value pairs in the form of a hash table set as tags on the server. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UpgradeToStorageV2 - - Upgrade Storage account Kind from Storage or BlobStorage to StorageV2. - - - System.Management.Automation.SwitchParameter - - - False - - - UserAssignedIdentityId - - Set resource ids for the the new Storage Account user assignedd Identity, the identity will be used with key management services like Azure KeyVault. - - System.String - - System.String - - - None - - - UseSubDomain - - Indicates whether to enable indirect CName validation. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageAccount - - ResourceGroupName - - Specifies the name of the resource group in which to modify the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account to modify. - - System.String - - System.String - - - None - - - AccessTier - - Specifies the access tier of the Storage account that this cmdlet modifies. The acceptable values for this parameter are: Hot and Cool. If you change the access tier, it may result in additional charges. For more information, see Azure Blob Storage: Hot and cool storage tiers (http://go.microsoft.com/fwlink/?LinkId=786482). If the Storage account has Kind as StorageV2 or BlobStorage, you can specify the AccessTier parameter. If the Storage account has Kind as Storage, do not specify the AccessTier parameter. - - - Hot - Cool - Cold - - System.String - - System.String - - - None - - - AllowBlobPublicAccess - - Allow or disallow anonymous access to all blobs or containers in the storage account. - - System.Boolean - - System.Boolean - - - None - - - AllowCrossTenantReplication - - Gets or sets allow or disallow cross Microsoft Entra tenant object replication. The default interpretation is true for this property. - - System.Boolean - - System.Boolean - - - None - - - AllowedCopyScope - - Set restrict copy to and from Storage Accounts within a Microsoft Entra tenant or with Private Links to the same VNet. Possible values include: 'PrivateLink', 'AAD' - - System.String - - System.String - - - None - - - AllowSharedKeyAccess - - Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Microsoft Entra ID. The default value is null, which is equivalent to true. - - System.Boolean - - System.Boolean - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - AssignIdentity - - Generate and assign a new Storage account Identity for this Storage account for use with key management services like Azure KeyVault. - - - System.Management.Automation.SwitchParameter - - - False - - - CustomDomainName - - Specifies the name of the custom domain. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultSharePermission - - Default share permission for users using Kerberos authentication if RBAC role is not assigned. - - - None - StorageFileDataSmbShareContributor - StorageFileDataSmbShareReader - StorageFileDataSmbShareElevatedContributor - - System.String - - System.String - - - None - - - EnableAzureActiveDirectoryDomainServicesForFile - - Enable Azure Files Active Directory Domain Service Authentication for the storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableHttpsTrafficOnly - - Indicates whether or not the Storage account only enables HTTPS traffic. - - System.Boolean - - System.Boolean - - - None - - - EnableLargeFileShare - - Indicates whether or not the storage account can support large file shares with more than 5 TiB capacity. Once the account is enabled, the feature cannot be disabled. Currently only supported for LRS and ZRS replication types, hence account conversions to geo-redundant accounts would not be possible. Learn more in https://go.microsoft.com/fwlink/?linkid=2086047 - - - System.Management.Automation.SwitchParameter - - - False - - - EnableLocalUser - - Enable local users feature for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableSftp - - Enable Secure File Transfer Protocol for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - Force - - Forces the change to be written to the Storage account. - - - System.Management.Automation.SwitchParameter - - - False - - - IdentityType - - Set the new Storage Account Identity type, the idenetity is for use with key management services like Azure KeyVault. - - - SystemAssigned - UserAssigned - SystemAssignedUserAssigned - None - - System.String - - System.String - - - None - - - ImmutabilityPeriod - - The immutability period for the blobs in the container since the policy creation in days. This property can only be changed when account is created with '-EnableAccountLevelImmutability'. - - System.Int32 - - System.Int32 - - - None - - - ImmutabilityPolicyState - - The mode of the policy. Possible values include: 'Unlocked', 'Locked', 'Disabled. Disabled state disablesthe policy. Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property. Locked state only allows the increase of the immutability retention time. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. Only a policy in an Unlocked state can transition to a Locked state which cannot be reverted. This property can only be changed when account is created with '-EnableAccountLevelImmutability'. - - System.String - - System.String - - - None - - - KeyExpirationPeriodInDay - - The Key expiration period of this account, it is accurate to days. - - System.Int32 - - System.Int32 - - - None - - - KeyName - - If using -KeyvaultEncryption to enable encryption with Key Vault, specify the Keyname property with this option. - - System.String - - System.String - - - None - - - KeyvaultEncryption - - Indicates whether or not to use Microsoft KeyVault for the encryption keys when using Storage Service Encryption. If KeyName, KeyVersion, and KeyVaultUri are all set, KeySource will be set to Microsoft.Keyvault whether this parameter is set or not. - - - System.Management.Automation.SwitchParameter - - - False - - - KeyVaultFederatedClientId - - Set ClientId of the multi-tenant application to be used in conjunction with the user-assigned identity for cross-tenant customer-managed-keys server-side encryption on the storage account. - - System.String - - System.String - - - None - - - KeyVaultUri - - When using Key Vault Encryption by specifying the -KeyvaultEncryption parameter, use this option to specify the URI to the Key Vault. - - System.String - - System.String - - - None - - - KeyVaultUserAssignedIdentityId - - Set resource id for user assigned Identity used to access Azure KeyVault of Storage Account Encryption, the id must in the storage account's UserAssignIdentityId. - - System.String - - System.String - - - None - - - KeyVersion - - When using Key Vault Encryption by specifying the -KeyvaultEncryption parameter, use this option to specify the URI to the Key Version. - - System.String - - System.String - - - None - - - MinimumTlsVersion - - The minimum TLS version to be permitted on requests to storage. - - - TLS1_0 - TLS1_1 - TLS1_2 - TLS1_3 - - System.String - - System.String - - - None - - - NetworkRuleSet - - NetworkRuleSet is used to define a set of configuration rules for firewalls and virtual networks, as well as to set values for network properties such as services allowed to bypass the rules and how to handle requests that don't match any of the defined rules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - - None - - - PublicNetworkAccess - - Allow or disallow public network access to Storage Account.Possible values include: 'Enabled', 'Disabled'. - - System.String - - System.String - - - None - - - PublishInternetEndpoint - - Indicates whether internet routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - PublishMicrosoftEndpoint - - Indicates whether microsoft routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - RoutingChoice - - Routing Choice defines the kind of network routing opted by the user. Possible values include: 'MicrosoftRouting', 'InternetRouting' - - - MicrosoftRouting - InternetRouting - - System.String - - System.String - - - None - - - SasExpirationPeriod - - The SAS expiration period of this account, it is a timespan and accurate to seconds. - - System.TimeSpan - - System.TimeSpan - - - None - - - SkuName - - Specifies the SKU name of the Storage account. The acceptable values for this parameter are: - Standard_LRS - Locally-redundant storage. - - Standard_ZRS - Zone-redundant storage. - - Standard_GRS - Geo-redundant storage. - - Standard_RAGRS - Read access geo-redundant storage. - - Premium_LRS - Premium locally-redundant storage. - - Standard_GZRS - Geo-redundant zone-redundant storage. - - Standard_RAGZRS - Read access geo-redundant zone-redundant storage. - You cannot change Standard_ZRS and Premium_LRS types to other account types. You cannot change other account types to Standard_ZRS or Premium_LRS. - - - Standard_LRS - Standard_ZRS - Standard_GRS - Standard_RAGRS - Premium_LRS - Standard_GZRS - Standard_RAGZRS - - System.String - - System.String - - - None - - - Tag - - Key-value pairs in the form of a hash table set as tags on the server. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UpgradeToStorageV2 - - Upgrade Storage account Kind from Storage or BlobStorage to StorageV2. - - - System.Management.Automation.SwitchParameter - - - False - - - UserAssignedIdentityId - - Set resource ids for the the new Storage Account user assignedd Identity, the identity will be used with key management services like Azure KeyVault. - - System.String - - System.String - - - None - - - UseSubDomain - - Indicates whether to enable indirect CName validation. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AccessTier - - Specifies the access tier of the Storage account that this cmdlet modifies. The acceptable values for this parameter are: Hot and Cool. If you change the access tier, it may result in additional charges. For more information, see Azure Blob Storage: Hot and cool storage tiers (http://go.microsoft.com/fwlink/?LinkId=786482). If the Storage account has Kind as StorageV2 or BlobStorage, you can specify the AccessTier parameter. If the Storage account has Kind as Storage, do not specify the AccessTier parameter. - - System.String - - System.String - - - None - - - ActiveDirectoryAccountType - - Specifies the Active Directory account type for Azure Storage. Possible values include: 'User', 'Computer'. - - System.String - - System.String - - - None - - - ActiveDirectoryAzureStorageSid - - Specifies the security identifier (SID) for Azure Storage. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryDomainGuid - - Specifies the domain GUID. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryDomainName - - Specifies the primary domain that the AD DNS server is authoritative for. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryDomainSid - - Specifies the security identifier (SID). This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryForestName - - Specifies the Active Directory forest to get. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryNetBiosDomainName - - Specifies the NetBIOS domain name. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectorySamAccountName - - Specifies the Active Directory SAMAccountName for Azure Storage. - - System.String - - System.String - - - None - - - AllowBlobPublicAccess - - Allow or disallow anonymous access to all blobs or containers in the storage account. - - System.Boolean - - System.Boolean - - - None - - - AllowCrossTenantReplication - - Gets or sets allow or disallow cross Microsoft Entra tenant object replication. The default interpretation is true for this property. - - System.Boolean - - System.Boolean - - - None - - - AllowedCopyScope - - Set restrict copy to and from Storage Accounts within a Microsoft Entra tenant or with Private Links to the same VNet. Possible values include: 'PrivateLink', 'AAD' - - System.String - - System.String - - - None - - - AllowSharedKeyAccess - - Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Microsoft Entra ID. The default value is null, which is equivalent to true. - - System.Boolean - - System.Boolean - - - None - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - AssignIdentity - - Generate and assign a new Storage account Identity for this Storage account for use with key management services like Azure KeyVault. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - CustomDomainName - - Specifies the name of the custom domain. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultSharePermission - - Default share permission for users using Kerberos authentication if RBAC role is not assigned. - - System.String - - System.String - - - None - - - EnableActiveDirectoryDomainServicesForFile - - Enable Azure Files Active Directory Domain Service Authentication for the storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableAzureActiveDirectoryDomainServicesForFile - - Enable Azure Files Active Directory Domain Service Authentication for the storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableAzureActiveDirectoryKerberosForFile - - Enable Azure Files Active Directory Domain Service Kerberos Authentication for the storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableHttpsTrafficOnly - - Indicates whether or not the Storage account only enables HTTPS traffic. - - System.Boolean - - System.Boolean - - - None - - - EnableLargeFileShare - - Indicates whether or not the storage account can support large file shares with more than 5 TiB capacity. Once the account is enabled, the feature cannot be disabled. Currently only supported for LRS and ZRS replication types, hence account conversions to geo-redundant accounts would not be possible. Learn more in https://go.microsoft.com/fwlink/?linkid=2086047 - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnableLocalUser - - Enable local users feature for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableSftp - - Enable Secure File Transfer Protocol for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - Force - - Forces the change to be written to the Storage account. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IdentityType - - Set the new Storage Account Identity type, the idenetity is for use with key management services like Azure KeyVault. - - System.String - - System.String - - - None - - - ImmutabilityPeriod - - The immutability period for the blobs in the container since the policy creation in days. This property can only be changed when account is created with '-EnableAccountLevelImmutability'. - - System.Int32 - - System.Int32 - - - None - - - ImmutabilityPolicyState - - The mode of the policy. Possible values include: 'Unlocked', 'Locked', 'Disabled. Disabled state disablesthe policy. Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property. Locked state only allows the increase of the immutability retention time. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. Only a policy in an Unlocked state can transition to a Locked state which cannot be reverted. This property can only be changed when account is created with '-EnableAccountLevelImmutability'. - - System.String - - System.String - - - None - - - KeyExpirationPeriodInDay - - The Key expiration period of this account, it is accurate to days. - - System.Int32 - - System.Int32 - - - None - - - KeyName - - If using -KeyvaultEncryption to enable encryption with Key Vault, specify the Keyname property with this option. - - System.String - - System.String - - - None - - - KeyvaultEncryption - - Indicates whether or not to use Microsoft KeyVault for the encryption keys when using Storage Service Encryption. If KeyName, KeyVersion, and KeyVaultUri are all set, KeySource will be set to Microsoft.Keyvault whether this parameter is set or not. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - KeyVaultFederatedClientId - - Set ClientId of the multi-tenant application to be used in conjunction with the user-assigned identity for cross-tenant customer-managed-keys server-side encryption on the storage account. - - System.String - - System.String - - - None - - - KeyVaultUri - - When using Key Vault Encryption by specifying the -KeyvaultEncryption parameter, use this option to specify the URI to the Key Vault. - - System.String - - System.String - - - None - - - KeyVaultUserAssignedIdentityId - - Set resource id for user assigned Identity used to access Azure KeyVault of Storage Account Encryption, the id must in the storage account's UserAssignIdentityId. - - System.String - - System.String - - - None - - - KeyVersion - - When using Key Vault Encryption by specifying the -KeyvaultEncryption parameter, use this option to specify the URI to the Key Version. - - System.String - - System.String - - - None - - - MinimumTlsVersion - - The minimum TLS version to be permitted on requests to storage. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account to modify. - - System.String - - System.String - - - None - - - NetworkRuleSet - - NetworkRuleSet is used to define a set of configuration rules for firewalls and virtual networks, as well as to set values for network properties such as services allowed to bypass the rules and how to handle requests that don't match any of the defined rules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - - None - - - PublicNetworkAccess - - Allow or disallow public network access to Storage Account.Possible values include: 'Enabled', 'Disabled'. - - System.String - - System.String - - - None - - - PublishInternetEndpoint - - Indicates whether internet routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - PublishMicrosoftEndpoint - - Indicates whether microsoft routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - ResourceGroupName - - Specifies the name of the resource group in which to modify the Storage account. - - System.String - - System.String - - - None - - - RoutingChoice - - Routing Choice defines the kind of network routing opted by the user. Possible values include: 'MicrosoftRouting', 'InternetRouting' - - System.String - - System.String - - - None - - - SasExpirationPeriod - - The SAS expiration period of this account, it is a timespan and accurate to seconds. - - System.TimeSpan - - System.TimeSpan - - - None - - - SkuName - - Specifies the SKU name of the Storage account. The acceptable values for this parameter are: - Standard_LRS - Locally-redundant storage. - - Standard_ZRS - Zone-redundant storage. - - Standard_GRS - Geo-redundant storage. - - Standard_RAGRS - Read access geo-redundant storage. - - Premium_LRS - Premium locally-redundant storage. - - Standard_GZRS - Geo-redundant zone-redundant storage. - - Standard_RAGZRS - Read access geo-redundant zone-redundant storage. - You cannot change Standard_ZRS and Premium_LRS types to other account types. You cannot change other account types to Standard_ZRS or Premium_LRS. - - System.String - - System.String - - - None - - - StorageEncryption - - Indicates whether or not to set the Storage account encryption to use Microsoft-managed keys. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Tag - - Key-value pairs in the form of a hash table set as tags on the server. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UpgradeToStorageV2 - - Upgrade Storage account Kind from Storage or BlobStorage to StorageV2. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - UserAssignedIdentityId - - Set resource ids for the the new Storage Account user assignedd Identity, the identity will be used with key management services like Azure KeyVault. - - System.String - - System.String - - - None - - - UseSubDomain - - Indicates whether to enable indirect CName validation. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - System.Collections.Hashtable - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - - - - - ----------- Example 1: Set the Storage account type ----------- - Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -SkuName "Standard_RAGRS" - - This command sets the Storage account type to Standard_RAGRS. - - - - - - ----- Example 2: Set a custom domain for a Storage account ----- - Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -CustomDomainName "www.contoso.com" -UseSubDomain $true - - This command sets a custom domain for a Storage account. - - - - - - ------------- Example 3: Set the access tier value ------------- - Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -AccessTier Cool - - The command sets the Access Tier value to be cool. - - - - - - ---------- Example 4: Set the custom domain and tags ---------- - Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -CustomDomainName "www.domainname.com" -UseSubDomain $true -Tag @{tag0="value0";tag1="value1";tag2="value2"} - - The command sets the custom domain and tags for a Storage account. - - - - - - ------- Example 5: Set Encryption KeySource to Keyvault ------- - Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -AssignIdentity -$account = Get-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" - -$keyVault = New-AzKeyVault -VaultName "MyKeyVault" -ResourceGroupName "MyResourceGroup" -Location "EastUS2" -$key = Add-AzKeyVaultKey -VaultName "MyKeyVault" -Name "MyKey" -Destination 'Software' -Set-AzKeyVaultAccessPolicy -VaultName "MyKeyVault" -ObjectId $account.Identity.PrincipalId -PermissionsToKeys wrapkey,unwrapkey,get - -# In case to enable key auto rotation, don't set KeyVersion -Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -KeyvaultEncryption -KeyName $key.Name -KeyVersion $key.Version -KeyVaultUri $keyVault.VaultUri - -# In case to enable key auto rotation after set keyvault proeprites with KeyVersion, can update account by set KeyVersion to empty -Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -KeyvaultEncryption -KeyName $key.Name -KeyVersion "" -KeyVaultUri $keyVault.VaultUri - - This command set Encryption KeySource with a new created Keyvault. If want to enable key auto rotation, don't set keyversion when set Keyvault properties for the first time, or clean up it by set keyvault properties again with keyversion as empty. - - - - - - -- Example 6: Set Encryption KeySource to "Microsoft.Storage" -- - Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -StorageEncryption - - This command set Encryption KeySource to "Microsoft.Storage" - - - - - - Example 7: Set NetworkRuleSet property of a Storage account with JSON - Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -NetworkRuleSet (@{bypass="Logging,Metrics"; - ipRules=(@{IPAddressOrRange="20.11.0.0/16";Action="allow"}, - @{IPAddressOrRange="10.0.0.0/7";Action="allow"}); - virtualNetworkRules=(@{VirtualNetworkResourceId="/subscriptions/s1/resourceGroups/g1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1";Action="allow"}, - @{VirtualNetworkResourceId="/subscriptions/s1/resourceGroups/g1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/subnet2";Action="allow"}); - defaultAction="allow"}) - - This command sets NetworkRuleSet property of a Storage account with JSON - - - - - - Example 8: Get NetworkRuleSet property from a Storage account, and set it to another Storage account - $networkRuleSet = (Get-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount").NetworkRuleSet -Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount2" -NetworkRuleSet $networkRuleSet - - This first command gets NetworkRuleSet property from a Storage account, and the second command sets it to another Storage account - - - - - - Example 9: Upgrade a Storage account with Kind "Storage" or "BlobStorage" to "StorageV2" kind Storage account - Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -UpgradeToStorageV2 - - The command upgrade a Storage account with Kind "Storage" or "BlobStorage" to "StorageV2" kind Storage account. - - - - - - Example 10: Update a Storage account by enable Azure Files Microsoft Entra Domain Services Authentication and set DefaultSharePermission. - $account = Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -EnableAzureActiveDirectoryDomainServicesForFile $true -DefaultSharePermission StorageFileDataSmbShareContributor - -$account.AzureFilesIdentityBasedAuth - -DirectoryServiceOptions ActiveDirectoryProperties DefaultSharePermission ------------------------ ------------------------- ---------------------- -AADDS Microsoft.Azure.Commands.Management.Storage.Models.PSActiveDirectoryProperties StorageFileDataSmbShareContributor - - The command update a Storage account by enable Azure Files Microsoft Entra Domain Services Authentication. - - - - - - Example 11: Update a Storage account by enable Files Active Directory Domain Service Authentication, and then show the File Identity Based authentication setting - $account = Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -EnableActiveDirectoryDomainServicesForFile $true ` - -ActiveDirectoryDomainName "mydomain.com" ` - -ActiveDirectoryNetBiosDomainName "mydomain.com" ` - -ActiveDirectoryForestName "mydomain.com" ` - -ActiveDirectoryDomainGuid "12345678-1234-1234-1234-123456789012" ` - -ActiveDirectoryDomainSid "S-1-5-21-1234567890-1234567890-1234567890" ` - -ActiveDirectoryAzureStorageSid "S-1-5-21-1234567890-1234567890-1234567890-1234" ` - -ActiveDirectorySamAccountName "samaccountname" ` - -ActiveDirectoryAccountType Computer - -$account.AzureFilesIdentityBasedAuth.DirectoryServiceOptions -AD - -$account.AzureFilesIdentityBasedAuth.ActiveDirectoryProperties - -DomainName : mydomain.com -NetBiosDomainName : mydomain.com -ForestName : mydomain.com -DomainGuid : 12345678-1234-1234-1234-123456789012 -DomainSid : S-1-5-21-1234567890-1234567890-1234567890 -AzureStorageSid : S-1-5-21-1234567890-1234567890-1234567890-1234 -SamAccountName : samaccountname -AccountType : Computer - - The command updates a Storage account by enable Azure Files Active Directory Domain Service Authentication, and then shows the File Identity Based authentication setting - - - - - - Example 12: Set MinimumTlsVersion, AllowBlobPublicAccess and AllowSharedKeyAccess - $account = Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -MinimumTlsVersion TLS1_1 -AllowBlobPublicAccess $false -AllowSharedKeyAccess $true - -$account.MinimumTlsVersion -TLS1_1 - -$account.AllowBlobPublicAccess -False - -$a.AllowSharedKeyAccess -True - - The command sets MinimumTlsVersion, AllowBlobPublicAccess and AllowSharedKeyAccess, and then show the the 3 properties of the account - - - - - - Example 13: Update a Storage account with RoutingPreference setting - $account = Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -PublishMicrosoftEndpoint $false -PublishInternetEndpoint $true -RoutingChoice InternetRouting - -$account.RoutingPreference - -RoutingChoice PublishMicrosoftEndpoints PublishInternetEndpoints -------------- ------------------------- ------------------------ -InternetRouting False True - -$account.PrimaryEndpoints - -Blob : https://mystorageaccount.blob.core.windows.net/ -Queue : https://mystorageaccount.queue.core.windows.net/ -Table : https://mystorageaccount.table.core.windows.net/ -File : https://mystorageaccount.file.core.windows.net/ -Web : https://mystorageaccount.z2.web.core.windows.net/ -Dfs : https://mystorageaccount.dfs.core.windows.net/ -MicrosoftEndpoints : -InternetEndpoints : {"Blob":"https://mystorageaccount-internetrouting.blob.core.windows.net/","File":"https://mystorageaccount-internetrouting.file.core.windows.net/","Web":"https://mystorageaccount-internetrouting.z2.web.core.windows.net/","Dfs":"https://w - eirp3-internetrouting.dfs.core.windows.net/"} - - This command updates a Storage account with RoutingPreference setting: PublishMicrosoftEndpoint as false, PublishInternetEndpoint as true, and RoutingChoice as MicrosoftRouting. - - - - - - Example 14: Update a Storage account with KeyExpirationPeriod and SasExpirationPeriod - $account = Set-AzStorageAccount -ResourceGroupName "myresourcegroup" -Name "mystorageaccount" -KeyExpirationPeriodInDay 5 -SasExpirationPeriod "1.12:05:06" -EnableHttpsTrafficOnly $true - -$account.KeyPolicy.KeyExpirationPeriodInDays -5 - -$account.SasPolicy.SasExpirationPeriod -1.12:05:06 - - This command updates a Storage account with KeyExpirationPeriod and SasExpirationPeriod, then show the updated account related properties. - - - - - - Example 15: Update a Storage account to Keyvault encryption, and access Keyvault with user assigned identity - # Create KeyVault (no need if using exist keyvault) -$keyVault = New-AzKeyVault -VaultName $keyvaultName -ResourceGroupName $resourceGroupName -Location eastus2euap -EnablePurgeProtection -$key = Add-AzKeyVaultKey -VaultName $keyvaultName -Name $keyname -Destination 'Software' - -# create user assigned identity and grant access to keyvault (no need if using exist user assigned identity) -$userId = New-AzUserAssignedIdentity -ResourceGroupName $resourceGroupName -Name $userIdName -Set-AzKeyVaultAccessPolicy -VaultName $keyvaultName -ResourceGroupName $resourceGroupName -ObjectId $userId.PrincipalId -PermissionsToKeys get,wrapkey,unwrapkey -BypassObjectIdValidation -$useridentityId= $userId.Id - -# Update Storage account with Keyvault encryption and access Keyvault with user assigned identity, then show properties -$account = Set-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName ` - -IdentityType UserAssigned -UserAssignedIdentityId $useridentityId ` - -KeyVaultUri $keyVault.VaultUri -KeyName $keyname -KeyVaultUserAssignedIdentityId $useridentityId - -$account.Encryption.EncryptionIdentity.EncryptionUserAssignedIdentity -/subscriptions/{subscription-id}/resourceGroups/myresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myuserid - -$account.Encryption.KeyVaultProperties - -KeyName : wrappingKey -KeyVersion : -KeyVaultUri : https://mykeyvault.vault.azure.net:443 -CurrentVersionedKeyIdentifier : https://mykeyvault.vault.azure.net/keys/wrappingKey/8e74036e0d534e58b3bd84b319e31d8f -LastKeyRotationTimestamp : 4/12/2021 8:17:57 AM - - This command first creates a keyvault and a user assigned identity, then updates a storage account with keyvault encryption, the storage access access keyvault with the user assigned identity. - - - - - - Example 16: Update a Keyvault encrypted Storage account, from access Keyvault with user assigned identity, to access Keyvault with system assigned identity - # Assign System identity to the account, and give the system assigned identity acces to the keyvault -$account = Set-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName -IdentityType SystemAssignedUserAssigned -Set-AzKeyVaultAccessPolicy -VaultName $keyvaultName -ResourceGroupName $resourceGroupName -ObjectId $account.Identity.PrincipalId -PermissionsToKeys get,wrapkey,unwrapkey -BypassObjectIdValidation - -# Update account from access Keyvault with user assigned identity to access Keyvault with system assigned identity -$account = Set-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName -IdentityType SystemAssignedUserAssigned -KeyName $keyname -KeyVaultUri $keyvaultUri -KeyVaultUserAssignedIdentityId "" - -# EncryptionUserAssignedIdentity is empty, so the account access keyvault with system assigned identity -$account.Encryption.EncryptionIdentity - -EncryptionUserAssignedIdentity ------------------------------- - -$account.Encryption.KeyVaultProperties - -KeyName : wrappingKey -KeyVersion : -KeyVaultUri : https://mykeyvault.vault.azure.net:443 -CurrentVersionedKeyIdentifier : https://mykeyvault.vault.azure.net/keys/wrappingKey/8e74036e0d534e58b3bd84b319e31d8f -LastKeyRotationTimestamp : 4/12/2021 8:17:57 AM - - This command first assigns System identity to the account, and give the system assigned identity access to the keyvault; then updates the Storage account to access Keyvault with system assigned identity. - - - - - - Example 17: Update both Keyvault and the user assigned identity to access keyvault - # Update to another user assigned identity -$account = Set-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName -IdentityType SystemAssignedUserAssigned -UserAssignedIdentityId $useridentity2 -KeyVaultUserAssignedIdentityId $useridentity2 - -# Update to encrypt with another keyvault -$account = Set-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName -KeyVaultUri $keyvaultUri2 -KeyName $keyname2 -KeyVersion $keyversion2 - - This command first update the user assigned identity to access keyvault, then update the keyvault for encryption. To update both both Keyvault and the user assigned identity, we need update with the above 2 steps. - - - - - - Example 18: Update a Storage account with AllowCrossTenantReplication - $account = Set-AzStorageAccount -ResourceGroupName "myresourcegroup" -Name "mystorageaccount" -AllowCrossTenantReplication $false -EnableHttpsTrafficOnly $true - -$account.AllowCrossTenantReplication - -False - - This command updates a Storage account by set AllowCrossTenantReplication to false, then show the updated account related properties. - - - - - - Example 18: Update a Storage account by enable PublicNetworkAccess - $account = Set-AzStorageAccount -ResourceGroupName "myresourcegroup" -Name "mystorageaccount" -PublicNetworkAccess Enabled - -$account.PublicNetworkAccess - -Enabled - - This command updates a Storage account by set PublicNetworkAccess as enabled. - - - - - - ----- Example 19: Update account level immutability policy ----- - $account = Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -ImmutabilityPeriod 2 -ImmutabilityPolicyState Unlocked - -$account.ImmutableStorageWithVersioning.Enabled -True - -$account.ImmutableStorageWithVersioning.ImmutabilityPolicy - -ImmutabilityPeriodSinceCreationInDays State -------------------------------------- ----- - 2 Unlocked - - The command updates account-level immutability policy properties on an existing storage account, and show the result. The storage account must be created with enable account level immutability with versioning. The account-level immutability policy will be inherited and applied to objects that do not possess an explicit immutability policy at the object level. - - - - - - Example 20: Update a Storage account by enable Sftp and localuser - $account = Set-AzStorageAccount -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -EnableSftp $true -EnableLocalUser $true - -$account.EnableSftp -True - -$account.EnableLocalUser -True - - This command updates a Storage account by enable Sftp and localuser. To run the command succssfully, the Storage account should already enable Hierarchical Namespace. - - - - - - Example 21: Update a Storage account with Keyvault from another tenant (access Keyvault with FederatedClientId) - # create Storage account with Keyvault encryption (access Keyvault with FederatedClientId), then show properties -$account = Set-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName ` - -KeyVaultUri $keyVault.VaultUri -KeyName $keyname -KeyVaultUserAssignedIdentityId $useridentityId -KeyVaultFederatedClientId $federatedClientId - -$account.Encryption.EncryptionIdentity - -EncryptionUserAssignedIdentity EncryptionFederatedIdentityClientId ------------------------------- ----------------------------------- -/subscriptions/{subscription-id}/resourceGroups/myresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myuserid ********-****-****-****-************ - -$account.Encryption.KeyVaultProperties - -KeyName : wrappingKey -KeyVersion : -KeyVaultUri : https://mykeyvault.vault.azure.net:443 -CurrentVersionedKeyIdentifier : https://mykeyvault.vault.azure.net/keys/wrappingKey/8e74036e0d534e58b3bd84b319e31d8f -LastKeyRotationTimestamp : 3/3/2022 2:07:34 AM - - This command updates a storage account with Keyvault from another tenant (access Keyvault with FederatedClientId). - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstorageaccount - - - Get-AzStorageAccount - - - - New-AzStorageAccount - - - - Remove-AzStorageAccount - - - - - - - Set-AzStorageAccountManagementPolicy - Set - AzStorageAccountManagementPolicy - - Creates or modifies the management policy of an Azure Storage account. - - - - The Set-AzStorageAccountManagementPolicy cmdlet creates or modifies the management policy of an Azure Storage account. - - - - Set-AzStorageAccountManagementPolicy - - - - - - - - - - - Example 1: Create or update the management policy of a Storage account with ManagementPolicy rule objects. - $action1 = Add-AzStorageAccountManagementPolicyAction -BaseBlobAction Delete -DaysAfterCreationGreaterThan 100 -$action1 = Add-AzStorageAccountManagementPolicyAction -InputObject $action1 -BaseBlobAction TierToArchive -daysAfterModificationGreaterThan 50 -DaysAfterLastTierChangeGreaterThan 30 -$action1 = Add-AzStorageAccountManagementPolicyAction -InputObject $action1 -BaseBlobAction TierToCool -DaysAfterLastAccessTimeGreaterThan 30 -EnableAutoTierToHotFromCool -$action1 = Add-AzStorageAccountManagementPolicyAction -InputObject $action1 -SnapshotAction Delete -daysAfterCreationGreaterThan 100 -$action1 = Add-AzStorageAccountManagementPolicyAction -InputObject $action1 -BlobVersionAction TierToArchive -daysAfterCreationGreaterThan 100 -DaysAfterLastTierChangeGreaterThan 14 -$filter1 = New-AzStorageAccountManagementPolicyFilter -PrefixMatch ab,cd -$rule1 = New-AzStorageAccountManagementPolicyRule -Name Test -Action $action1 -Filter $filter1 - -$action2 = Add-AzStorageAccountManagementPolicyAction -BaseBlobAction Delete -daysAfterCreationGreaterThan 100 -$blobindexmatch1 = New-AzStorageAccountManagementPolicyBlobIndexMatchObject -Name "tag1" -Value "value1" -$blobindexmatch2 = New-AzStorageAccountManagementPolicyBlobIndexMatchObject -Name "tag2" -Value "value2" -$filter2 = New-AzStorageAccountManagementPolicyFilter -BlobType appendBlob,blockBlob -BlobIndexMatch $blobindexmatch1,$blobindexmatch2 -$rule2 = New-AzStorageAccountManagementPolicyRule -Name Test2 -Action $action2 -Filter $filter2 - -Set-AzStorageAccountManagementPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -Rule $rule1,$rule2 - -ResourceGroupName : myresourcegroup -StorageAccountName : mystorageaccount -Id : /subscriptions/{subscription-id}/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/mystorageaccount/managementPolicies/default -Type : Microsoft.Storage/storageAccounts/managementPolicies -LastModifiedTime : 7/12/2022 8:32:09 AM -Rules : [ - { - "Enabled": true, - "Name": "Test", - "Definition": { - "Actions": { - "BaseBlob": { - "TierToCool": { - "DaysAfterModificationGreaterThan": null, - "DaysAfterLastAccessTimeGreaterThan": 30, - "DaysAfterCreationGreaterThan": null, - "DaysAfterLastTierChangeGreaterThan": null - }, - "TierToArchive": { - "DaysAfterModificationGreaterThan": 50, - "DaysAfterLastAccessTimeGreaterThan": null, - "DaysAfterCreationGreaterThan": null, - "DaysAfterLastTierChangeGreaterThan": 30 - }, - "Delete": { - "DaysAfterModificationGreaterThan": null, - "DaysAfterLastAccessTimeGreaterThan": null, - "DaysAfterCreationGreaterThan": 100, - "DaysAfterLastTierChangeGreaterThan": null - }, - "EnableAutoTierToHotFromCool": true - }, - "Snapshot": { - "Delete": { - "DaysAfterCreationGreaterThan": 100, - "DaysAfterLastTierChangeGreaterThan": null - }, - "TierToCool": null, - "TierToArchive": null - }, - "Version": { - "Delete": null, - "TierToCool": null, - "TierToArchive": { - "DaysAfterCreationGreaterThan": 100, - "DaysAfterLastTierChangeGreaterThan": 14 - } - } - }, - "Filters": { - "PrefixMatch": [ - "ab", - "cd" - ], - "BlobTypes": [ - "blockBlob" - ], - "BlobIndexMatch": null - } - } - }, - { - "Enabled": true, - "Name": "Test2", - "Definition": { - "Actions": { - "BaseBlob": { - "TierToCool": null, - "TierToArchive": null, - "Delete": { - "DaysAfterModificationGreaterThan": null, - "DaysAfterLastAccessTimeGreaterThan": null, - "DaysAfterCreationGreaterThan": 100, - "DaysAfterLastTierChangeGreaterThan": null - }, - "EnableAutoTierToHotFromCool": null - }, - "Snapshot": null, - "Version": null - }, - "Filters": { - "PrefixMatch": null, - "BlobTypes": [ - "appendBlob", - "blockBlob" - ], - "BlobIndexMatch": [ - { - "Name": "tag1", - "Op": "==", - "Value": "value1" - }, - { - "Name": "tag2", - "Op": "==", - "Value": "value2" - } - ] - } - } - } - ] - - This command first create 2 ManagementPolicy rule objects, then creates or updates the management policy of a Storage account with the 2 ManagementPolicy rule objects. - - - - - - Example 2: Create or update the management policy of a Storage account with a Json format policy. - Set-AzStorageAccountManagementPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -Policy (@{ - Rules=(@{ - Enabled=$true; - Name="Test"; - Definition=(@{ - Actions=(@{ - BaseBlob=(@{ - TierToCool=@{DaysAfterLastAccessTimeGreaterThan=30}; - TierToArchive=@{DaysAfterModificationGreaterThan=50;DaysAfterLastTierChangeGreaterThan=30}; - Delete=@{DaysAfterCreationGreaterThan=100}; - EnableAutoTierToHotFromCool="true"; - }); - Snapshot=(@{ - Delete=@{DaysAfterCreationGreaterThan=100} - TierToArchive=@{DaysAfterCreationGreaterThan=50}; - TierToCool=@{DaysAfterCreationGreaterThan=60}; - }); - Version=(@{ - Delete=@{DaysAfterCreationGreaterThan=100}; - TierToArchive=@{DaysAfterCreationGreaterThan=50;DaysAfterLastTierChangeGreaterThan=20}; - TierToCool=@{DaysAfterCreationGreaterThan=60}; - }); - }); - Filters=(@{ - BlobTypes=@("blockBlob"); - PrefixMatch=@("prefix1","prefix2"); - }) - }) - }, - @{ - Enabled=$false; - Name="Test2"; - Definition=(@{ - Actions=(@{ - BaseBlob=(@{ - Delete=@{DaysAfterCreationGreaterThan=100}; - }); - }); - Filters=(@{ - BlobTypes=@("blockBlob","appendBlob"); - BlobIndexMatch=(@{Name="tag1";Op="==";Value ="value1"},@{Name="tag2";Op="==";Value="value2"}) - }) - }) - }) -}) - - ```output ResourceGroupName : myresourcegroup StorageAccountName : mystorageaccount Id : /subscriptions/{subscription-id}/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/mystorageaccount/managementPolicies/default Type : Microsoft.Storage/storageAccounts/managementPolicies LastModifiedTime : 7/12/2022 8:34:05 AM Rules : [ { "Enabled": true, "Name": "Test", "Definition": { "Actions": { "BaseBlob": { "TierToCool": { "DaysAfterModificationGreaterThan": null, "DaysAfterLastAccessTimeGreaterThan": 30, "DaysAfterCreationGreaterThan": null, "DaysAfterLastTierChangeGreaterThan": null }, "TierToArchive": { "DaysAfterModificationGreaterThan": 50, "DaysAfterLastAccessTimeGreaterThan": null, "DaysAfterCreationGreaterThan": null, "DaysAfterLastTierChangeGreaterThan": 30 }, "Delete": { "DaysAfterModificationGreaterThan": null, "DaysAfterLastAccessTimeGreaterThan": null, "DaysAfterCreationGreaterThan": 100, "DaysAfterLastTierChangeGreaterThan": null }, "EnableAutoTierToHotFromCool": true }, "Snapshot": { "Delete": { "DaysAfterCreationGreaterThan": 100, "DaysAfterLastTierChangeGreaterThan": null }, "TierToCool": { "DaysAfterCreationGreaterThan": 60, "DaysAfterLastTierChangeGreaterThan": null }, "TierToArchive": { "DaysAfterCreationGreaterThan": 50, "DaysAfterLastTierChangeGreaterThan": null } }, "Version": { "Delete": { "DaysAfterCreationGreaterThan": 100, "DaysAfterLastTierChangeGreaterThan": null }, "TierToCool": { "DaysAfterCreationGreaterThan": 60, "DaysAfterLastTierChangeGreaterThan": null }, "TierToArchive": { "DaysAfterCreationGreaterThan": 50, "DaysAfterLastTierChangeGreaterThan": 20 } } }, "Filters": { "PrefixMatch": [ "prefix1", "prefix2" ], "BlobTypes": [ "blockBlob" ], "BlobIndexMatch": null } } }, { "Enabled": false, "Name": "Test2", "Definition": { "Actions": { "BaseBlob": { "TierToCool": null, "TierToArchive": null, "Delete": { "DaysAfterModificationGreaterThan": null, "DaysAfterLastAccessTimeGreaterThan": null, "DaysAfterCreationGreaterThan": 100, "DaysAfterLastTierChangeGreaterThan": null }, "EnableAutoTierToHotFromCool": null }, "Snapshot": null, "Version": null }, "Filters": { "PrefixMatch": null, "BlobTypes": [ "blockBlob", "appendBlob" ], "BlobIndexMatch": [ { "Name": "tag1", "Op": "==", "Value": "value1" }, { "Name": "tag2", "Op": "==", "Value": "value2" } ] } } } ] ``` - This command creates or updates the management policy of a Storage account with a json format policy. - ### Example 3: Get the management policy from a Storage account, then set it to another Storage account. ```powershell $outputPolicy = Get-AzStorageAccountManagementPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" | Set-AzStorageAccountManagementPolicy -ResourceGroupName "myresourcegroup2" -AccountName "mystorageaccount2" ``` - This command first gets the management policy from a Storage account, then set it to another Storage account. - ## PARAMETERS - ### -DefaultProfile The credentials, account, tenant, and subscription used for communication with Azure. - ```yaml Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer Parameter Sets: (All) Aliases: AzContext, AzureRmContext, AzureCredential - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -Policy Management Policy Object to Set - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicy Parameter Sets: AccountNamePolicyObject, AccountObjectPolicyObject, AccountResourceIdPolicyObject Aliases: ManagementPolicy - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -ResourceGroupName Resource Group Name. - ```yaml Type: System.String Parameter Sets: AccountNamePolicyRule, AccountNamePolicyObject Aliases: - Required: True Position: 0 Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -Rule The Management Policy rules. Get the object with New-AzStorageAccountManagementPolicyRule cmdlet. - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyRule[] Parameter Sets: AccountNamePolicyRule, AccountObjectPolicyRule, AccountResourceIdPolicyRule Aliases: - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -StorageAccount Storage account object - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount Parameter Sets: AccountObjectPolicyRule, AccountObjectPolicyObject Aliases: - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -StorageAccountName Storage Account Name. - ```yaml Type: System.String Parameter Sets: AccountNamePolicyRule, AccountNamePolicyObject Aliases: AccountName - Required: True Position: 1 Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -StorageAccountResourceId Storage Account Resource Id. - ```yaml Type: System.String Parameter Sets: AccountResourceIdPolicyRule, AccountResourceIdPolicyObject Aliases: - Required: True Position: 0 Default value: None Accept pipeline input: True (ByPropertyName) Accept wildcard characters: False ``` - ### -Confirm Prompts you for confirmation before running the cmdlet. - ```yaml Type: System.Management.Automation.SwitchParameter Parameter Sets: (All) Aliases: cf - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -WhatIf Shows what would happen if the cmdlet runs. The cmdlet is not run. - ```yaml Type: System.Management.Automation.SwitchParameter Parameter Sets: (All) Aliases: wi - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### CommonParameters This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216). - ## INPUTS - ### System.String - ## OUTPUTS - ### Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicy - ## NOTES - ## RELATED LINKS - - ## PARAMETERS - ### -DefaultProfile The credentials, account, tenant, and subscription used for communication with Azure. - ```yaml Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer Parameter Sets: (All) Aliases: AzContext, AzureRmContext, AzureCredential - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -Policy Management Policy Object to Set - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicy Parameter Sets: AccountNamePolicyObject, AccountObjectPolicyObject, AccountResourceIdPolicyObject Aliases: ManagementPolicy - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -ResourceGroupName Resource Group Name. - ```yaml Type: System.String Parameter Sets: AccountNamePolicyRule, AccountNamePolicyObject Aliases: - Required: True Position: 0 Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -Rule The Management Policy rules. Get the object with New-AzStorageAccountManagementPolicyRule cmdlet. - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyRule[] Parameter Sets: AccountNamePolicyRule, AccountObjectPolicyRule, AccountResourceIdPolicyRule Aliases: - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -StorageAccount Storage account object - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount Parameter Sets: AccountObjectPolicyRule, AccountObjectPolicyObject Aliases: - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -StorageAccountName Storage Account Name. - ```yaml Type: System.String Parameter Sets: AccountNamePolicyRule, AccountNamePolicyObject Aliases: AccountName - Required: True Position: 1 Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -StorageAccountResourceId Storage Account Resource Id. - ```yaml Type: System.String Parameter Sets: AccountResourceIdPolicyRule, AccountResourceIdPolicyObject Aliases: - Required: True Position: 0 Default value: None Accept pipeline input: True (ByPropertyName) Accept wildcard characters: False ``` - ### -Confirm Prompts you for confirmation before running the cmdlet. - ```yaml Type: System.Management.Automation.SwitchParameter Parameter Sets: (All) Aliases: cf - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -WhatIf Shows what would happen if the cmdlet runs. The cmdlet is not run. - ```yaml Type: System.Management.Automation.SwitchParameter Parameter Sets: (All) Aliases: wi - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### CommonParameters This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). - ## INPUTS - ## OUTPUTS - ## NOTES - ## RELATED LINKS - - ## PARAMETERS - ### -DefaultProfile The credentials, account, tenant, and subscription used for communication with Azure. - ```yaml Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer Parameter Sets: (All) Aliases: AzContext, AzureRmContext, AzureCredential - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -Policy Management Policy Object to Set - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicy Parameter Sets: AccountNamePolicyObject, AccountObjectPolicyObject, AccountResourceIdPolicyObject Aliases: ManagementPolicy - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -ResourceGroupName Resource Group Name. - ```yaml Type: System.String Parameter Sets: AccountNamePolicyRule, AccountNamePolicyObject Aliases: - Required: True Position: 0 Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -Rule The Management Policy rules. Get the object with New-AzStorageAccountManagementPolicyRule cmdlet. - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyRule[] Parameter Sets: AccountNamePolicyRule, AccountObjectPolicyRule, AccountResourceIdPolicyRule Aliases: - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -StorageAccount Storage account object - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount Parameter Sets: AccountObjectPolicyRule, AccountObjectPolicyObject Aliases: - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -StorageAccountName Storage Account Name. - ```yaml Type: System.String Parameter Sets: AccountNamePolicyRule, AccountNamePolicyObject Aliases: AccountName - Required: True Position: 1 Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -StorageAccountResourceId Storage Account Resource Id. - ```yaml Type: System.String Parameter Sets: AccountResourceIdPolicyRule, AccountResourceIdPolicyObject Aliases: - Required: True Position: 0 Default value: None Accept pipeline input: True (ByPropertyName) Accept wildcard characters: False ``` - ### -Confirm Prompts you for confirmation before running the cmdlet. - ```yaml Type: System.Management.Automation.SwitchParameter Parameter Sets: (All) Aliases: cf - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -WhatIf Shows what would happen if the cmdlet runs. The cmdlet is not run. - ```yaml Type: System.Management.Automation.SwitchParameter Parameter Sets: (All) Aliases: wi - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### CommonParameters This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). - ## INPUTS - ## OUTPUTS - ## NOTES - ## RELATED LINKS - - ## PARAMETERS - ### -DefaultProfile The credentials, account, tenant, and subscription used for communication with Azure. - ```yaml Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer Parameter Sets: (All) Aliases: AzContext, AzureRmContext, AzureCredential - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -Policy Management Policy Object to Set - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicy Parameter Sets: AccountNamePolicyObject, AccountObjectPolicyObject, AccountResourceIdPolicyObject Aliases: ManagementPolicy - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -ResourceGroupName Resource Group Name. - ```yaml Type: System.String Parameter Sets: AccountNamePolicyRule, AccountNamePolicyObject Aliases: - Required: True Position: 0 Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -Rule The Management Policy rules. Get the object with New-AzStorageAccountManagementPolicyRule cmdlet. - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyRule[] Parameter Sets: AccountNamePolicyRule, AccountObjectPolicyRule, AccountResourceIdPolicyRule Aliases: - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -StorageAccount Storage account object - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount Parameter Sets: AccountObjectPolicyRule, AccountObjectPolicyObject Aliases: - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -StorageAccountName Storage Account Name. - ```yaml Type: System.String Parameter Sets: AccountNamePolicyRule, AccountNamePolicyObject Aliases: AccountName - Required: True Position: 1 Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -StorageAccountResourceId Storage Account Resource Id. - ```yaml Type: System.String Parameter Sets: AccountResourceIdPolicyRule, AccountResourceIdPolicyObject Aliases: - Required: True Position: 0 Default value: None Accept pipeline input: True (ByPropertyName) Accept wildcard characters: False ``` - ### -Confirm Prompts you for confirmation before running the cmdlet. - ```yaml Type: System.Management.Automation.SwitchParameter Parameter Sets: (All) Aliases: cf - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -WhatIf Shows what would happen if the cmdlet runs. The cmdlet is not run. - ```yaml Type: System.Management.Automation.SwitchParameter Parameter Sets: (All) Aliases: wi - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### CommonParameters This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). - ## INPUTS - ## OUTPUTS - ## NOTES - ## RELATED LINKS - - ## PARAMETERS - ### -DefaultProfile The credentials, account, tenant, and subscription used for communication with Azure. - ```yaml Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer Parameter Sets: (All) Aliases: AzContext, AzureRmContext, AzureCredential - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -Policy Management Policy Object to Set - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicy Parameter Sets: AccountNamePolicyObject, AccountObjectPolicyObject, AccountResourceIdPolicyObject Aliases: ManagementPolicy - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -ResourceGroupName Resource Group Name. - ```yaml Type: System.String Parameter Sets: AccountNamePolicyRule, AccountNamePolicyObject Aliases: - Required: True Position: 0 Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -Rule The Management Policy rules. Get the object with New-AzStorageAccountManagementPolicyRule cmdlet. - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyRule[] Parameter Sets: AccountNamePolicyRule, AccountObjectPolicyRule, AccountResourceIdPolicyRule Aliases: - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -StorageAccount Storage account object - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount Parameter Sets: AccountObjectPolicyRule, AccountObjectPolicyObject Aliases: - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -StorageAccountName Storage Account Name. - ```yaml Type: System.String Parameter Sets: AccountNamePolicyRule, AccountNamePolicyObject Aliases: AccountName - Required: True Position: 1 Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -StorageAccountResourceId Storage Account Resource Id. - ```yaml Type: System.String Parameter Sets: AccountResourceIdPolicyRule, AccountResourceIdPolicyObject Aliases: - Required: True Position: 0 Default value: None Accept pipeline input: True (ByPropertyName) Accept wildcard characters: False ``` - ### -Confirm Prompts you for confirmation before running the cmdlet. - ```yaml Type: System.Management.Automation.SwitchParameter Parameter Sets: (All) Aliases: cf - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -WhatIf Shows what would happen if the cmdlet runs. The cmdlet is not run. - ```yaml Type: System.Management.Automation.SwitchParameter Parameter Sets: (All) Aliases: wi - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### CommonParameters This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). - ## INPUTS - ## OUTPUTS - ## NOTES - ## RELATED LINKS - - ## PARAMETERS - ### -DefaultProfile The credentials, account, tenant, and subscription used for communication with Azure. - ```yaml Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer Parameter Sets: (All) Aliases: AzContext, AzureRmContext, AzureCredential - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -Policy Management Policy Object to Set - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicy Parameter Sets: AccountNamePolicyObject, AccountObjectPolicyObject, AccountResourceIdPolicyObject Aliases: ManagementPolicy - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -ResourceGroupName Resource Group Name. - ```yaml Type: System.String Parameter Sets: AccountNamePolicyRule, AccountNamePolicyObject Aliases: - Required: True Position: 0 Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -Rule The Management Policy rules. Get the object with New-AzStorageAccountManagementPolicyRule cmdlet. - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyRule[] Parameter Sets: AccountNamePolicyRule, AccountObjectPolicyRule, AccountResourceIdPolicyRule Aliases: - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -StorageAccount Storage account object - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount Parameter Sets: AccountObjectPolicyRule, AccountObjectPolicyObject Aliases: - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -StorageAccountName Storage Account Name. - ```yaml Type: System.String Parameter Sets: AccountNamePolicyRule, AccountNamePolicyObject Aliases: AccountName - Required: True Position: 1 Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -StorageAccountResourceId Storage Account Resource Id. - ```yaml Type: System.String Parameter Sets: AccountResourceIdPolicyRule, AccountResourceIdPolicyObject Aliases: - Required: True Position: 0 Default value: None Accept pipeline input: True (ByPropertyName) Accept wildcard characters: False ``` - ### -Confirm Prompts you for confirmation before running the cmdlet. - ```yaml Type: System.Management.Automation.SwitchParameter Parameter Sets: (All) Aliases: cf - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -WhatIf Shows what would happen if the cmdlet runs. The cmdlet is not run. - ```yaml Type: System.Management.Automation.SwitchParameter Parameter Sets: (All) Aliases: wi - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### CommonParameters This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). - ## INPUTS - ## OUTPUTS - ## NOTES - ## RELATED LINKS - - ## PARAMETERS - ### -DefaultProfile The credentials, account, tenant, and subscription used for communication with Azure. - ```yaml Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer Parameter Sets: (All) Aliases: AzContext, AzureRmContext, AzureCredential - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -Policy Management Policy Object to Set - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicy Parameter Sets: AccountNamePolicyObject, AccountObjectPolicyObject, AccountResourceIdPolicyObject Aliases: ManagementPolicy - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -ResourceGroupName Resource Group Name. - ```yaml Type: System.String Parameter Sets: AccountNamePolicyRule, AccountNamePolicyObject Aliases: - Required: True Position: 0 Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -Rule The Management Policy rules. Get the object with New-AzStorageAccountManagementPolicyRule cmdlet. - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyRule[] Parameter Sets: AccountNamePolicyRule, AccountObjectPolicyRule, AccountResourceIdPolicyRule Aliases: - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -StorageAccount Storage account object - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount Parameter Sets: AccountObjectPolicyRule, AccountObjectPolicyObject Aliases: - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -StorageAccountName Storage Account Name. - ```yaml Type: System.String Parameter Sets: AccountNamePolicyRule, AccountNamePolicyObject Aliases: AccountName - Required: True Position: 1 Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -StorageAccountResourceId Storage Account Resource Id. - ```yaml Type: System.String Parameter Sets: AccountResourceIdPolicyRule, AccountResourceIdPolicyObject Aliases: - Required: True Position: 0 Default value: None Accept pipeline input: True (ByPropertyName) Accept wildcard characters: False ``` - ### -Confirm Prompts you for confirmation before running the cmdlet. - ```yaml Type: System.Management.Automation.SwitchParameter Parameter Sets: (All) Aliases: cf - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -WhatIf Shows what would happen if the cmdlet runs. The cmdlet is not run. - ```yaml Type: System.Management.Automation.SwitchParameter Parameter Sets: (All) Aliases: wi - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### CommonParameters This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). - ## INPUTS - ## OUTPUTS - ## NOTES - ## RELATED LINKS - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/Az.storage/set-Azstorageaccountmanagementpolicy - - - - - - Set-AzStorageBlobInventoryPolicy - Set - AzStorageBlobInventoryPolicy - - Creates or updates blob inventory policy in a Storage account. - - - - The Set-AzStorageBlobInventoryPolicy cmdlet creates or updates blob inventory policy in a Storage account. - - - - Set-AzStorageBlobInventoryPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disabled - - The Blob Inventory Policy is enabled by default, specify this parameter to disable it. - - - System.Management.Automation.SwitchParameter - - - False - - - Rule - - The Blob Inventory Policy rules. Get the object with New-AzStorageBlobInventoryPolicyRule cmdlet. - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicyRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicyRule[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageBlobInventoryPolicy - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disabled - - The Blob Inventory Policy is enabled by default, specify this parameter to disable it. - - - System.Management.Automation.SwitchParameter - - - False - - - Rule - - The Blob Inventory Policy rules. Get the object with New-AzStorageBlobInventoryPolicyRule cmdlet. - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicyRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicyRule[] - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageBlobInventoryPolicy - - StorageAccountResourceId - - Storage Account Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disabled - - The Blob Inventory Policy is enabled by default, specify this parameter to disable it. - - - System.Management.Automation.SwitchParameter - - - False - - - Rule - - The Blob Inventory Policy rules. Get the object with New-AzStorageBlobInventoryPolicyRule cmdlet. - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicyRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicyRule[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageBlobInventoryPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Policy - - Blob Inventory Policy Object to Set - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicy - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageBlobInventoryPolicy - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Policy - - Blob Inventory Policy Object to Set - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicy - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageBlobInventoryPolicy - - StorageAccountResourceId - - Storage Account Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Policy - - Blob Inventory Policy Object to Set - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicy - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disabled - - The Blob Inventory Policy is enabled by default, specify this parameter to disable it. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Policy - - Blob Inventory Policy Object to Set - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicy - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - Rule - - The Blob Inventory Policy rules. Get the object with New-AzStorageBlobInventoryPolicyRule cmdlet. - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicyRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicyRule[] - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - StorageAccountResourceId - - Storage Account Resource Id. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicyRule[] - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicySchema - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicy - - - - - - - - - - - - - - Example 1: Create or update the blob inventory policy with BlobInventoryPolicy rule objects. - $rule1 = New-AzStorageBlobInventoryPolicyRule -Name Test1 -Destination $containerName -Disabled -Format Csv -Schedule Daily -ContainerSchemaField Name,Metadata,PublicAccess,Last-mOdified,LeaseStatus,LeaseState,LeaseDuration,HasImmutabilityPolicy,HasLegalHold -PrefixMatch con1,con2 - -$rule2 = New-AzStorageBlobInventoryPolicyRule -Name Test2 -Destination $containerName -Format Parquet -Schedule Weekly -IncludeBlobVersion -IncludeSnapshot -BlobType blockBlob,appendBlob -PrefixMatch aaa,bbb ` - -BlobSchemaField name,Creation-Time,Last-Modified,Content-Length,Content-MD5,BlobType,AccessTier,AccessTierChangeTime,Expiry-Time,hdi_isfolder,Owner,Group,Permissions,Acl,Metadata - -$rule3 = New-AzStorageBlobInventoryPolicyRule -Name Test3 -Destination $containerName -Format Parquet -Schedule Weekly -IncludeBlobVersion -IncludeSnapshot -IncludeDeleted -BlobType blockBlob,appendBlob -PrefixMatch aaa,bbb ` - -ExcludePrefix ccc,ddd -BlobSchemaField name,Last-Modified,BlobType,AccessTier,AccessTierChangeTime,Content-Type,Content-CRC64,CopyId,x-ms-blob-sequence-number,TagCount - -$policy = Set-AzStorageBlobInventoryPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -Disabled -Rule $rule1,$rule2,$rule3 - -$policy - -StorageAccountName : mystorageaccount -ResourceGroupName : myresourcegroup -Name : DefaultInventoryPolicy -Id : /subscriptions/{subscription-Id}/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/mystorageaccount/inventoryPolicies/default -Type : Microsoft.Storage/storageAccounts/inventoryPolicies -LastModifiedTime : 5/12/2021 8:53:38 AM -Enabled : False -Rules : {Test1, Test2, Test3} - -$policy.Rules - -Name Enabled Destination ObjectType Format Schedule IncludeSnapshots IncludeBlobVersions IncludeDeleted BlobTypes PrefixMatch ExcludePrefix SchemaFields ----- ------- ----------- ---------- ------ -------- ---------------- ------------------- -------------- --------- ----------- ------------- ------------ -Test1 False containername Container Csv Daily {con1, con2} {Name, Metadata, PublicAccess, Last-Modified...} -Test2 True containername Blob Parquet Weekly True True {blockBlob, appendBlob} {aaa, bbb} {Name, Creation-Time, Last-Modified, Content-Length...} -Test3 True containername Blob Parquet Weekly True True True {blockBlob, appendBlob} {aaa, bbb} {ccc, ddd} {Name, Content-Type, Content-CRC64, Last-Modified...} - - This first 2 commands create 3 BlobInventoryPolicy rule objects: rule "Test1" for contaienr inventory; rule "Test2" and "Test3" for blob inventory. The following command sets blob inventory policy to a Storage account with the 2 rule objects, then show the updated policy and rules properties. - - - - - - Example 2: Create or update the blob inventory policy of a Storage account with a Json format policy. - $policy = Set-AzStorageBlobInventoryPolicy -ResourceGroupName $resourceGroupName -StorageAccountName $accountName -Policy (@{ - Enabled=$true; - Rules=(@{ - Enabled=$true; - Name="Test1"; - Destination=$containerName; - Definition=(@{ - ObjectType="Blob"; - Format="Csv"; - Schedule="Weekly"; - SchemaFields=@("name","Content-Length","BlobType","Snapshot","VersionId","IsCurrentVersion"); - Filters=(@{ - BlobTypes=@("blockBlob","appendBlob"); - PrefixMatch=@("prefix1","prefix2"); - IncludeSnapshots=$true; - IncludeBlobVersions=$true; - }) - }) - }, - @{ - Enabled=$false; - Name="Test2"; - Destination=$containerName; - Definition=(@{ - ObjectType="Container"; - Format="Parquet"; - Schedule="Daily"; - SchemaFields=@("name","Metadata","PublicAccess","DefaultEncryptionScope","DenyEncryptionScopeOverride"); - Filters=(@{ - PrefixMatch=@("conpre1","conpre2"); - }) - }) - }, - @{ - Enabled=$false; - Name="Test3"; - Destination=$containerName; - Definition=(@{ - ObjectType="Blob"; - Format="Csv"; - Schedule="Weekly"; - SchemaFields=@("name","Deleted","RemainingRetentionDays","Content-Type","Content-Language","Cache-Control","Content-Disposition"); - Filters=(@{ - BlobTypes=@("blockBlob","appendBlob"); - PrefixMatch=@("conpre1","conpre2"); - ExcludePrefix=@("expre1","expre2"); - IncludeDeleted=$true - }) - }) - }) - }) - - -$policy - -StorageAccountName : weiadlscanary1 -ResourceGroupName : weitry -Name : DefaultInventoryPolicy -Id : /subscriptions/{subscription-Id}/resourceGroups/weitry/providers/Microsoft.Storage/storageAccounts/weiadlscanary1/inventoryPolicies/default -Type : Microsoft.Storage/storageAccounts/inventoryPolicies -LastModifiedTime : 5/12/2021 9:02:21 AM -Enabled : True -Rules : {Test1, Test2, Test3} - -$policy.Rules - -Name Enabled Destination ObjectType Format Schedule IncludeSnapshots IncludeBlobVersions IncludeDeleted BlobTypes PrefixMatch ExcludePrefix SchemaFields ----- ------- ----------- ---------- ------ -------- ---------------- ------------------- -------------- --------- ----------- ------------- ------------ -Test1 True containername Blob Csv Weekly True True {blockBlob, appendBlob} {prefix1, prefix2} {Name, Content-Length, BlobType, Snapshot...} -Test2 False containername Container Parquet Daily {conpre1, conpre2} {Name, Metadata, PublicAccess} -Test3 False containername Blob Csv Weekly True {blockBlob, appendBlob} {conpre1, conpre2} {expre1, expre2} {Name, Content-Type, Content-Cache, Content-Language...} {name, Metadata, PublicAccess} - - This command creates or updates the blob inventory policy of a Storage account with a json format policy. - - - - - - Example 3: Get the blob inventory policy from a Storage account, then set it to another Storage account. - $policy = Get-AzStorageBlobInventoryPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" | Set-AzStorageBlobInventoryPolicy -ResourceGroupName "myresourcegroup2" -AccountName "mystorageaccount2" - - This command first gets the blob inventory policy from a Storage account, then set it to another Storage account. The proeprties: Destination, Enabled, and Rules of the policy will be set to the destination account. - - - - - - Example 4: Get the blob inventory policy rules from a Storage account, then set it to another Storage account. - $policy = ,((Get-AzStorageBlobInventoryPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount").Rules) | Set-AzStorageBlobInventoryPolicy -ResourceGroupName "myresourcegroup2" -AccountName "mystorageaccount2" -Disabled - - This command first gets the blob inventory policy from a Storage account, then set it's rules to another Storage account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstorageblobinventorypolicy - - - - - - Set-AzStorageLocalUser - Set - AzStorageLocalUser - - Creates or updates a specified local user in a storage account. - - - - The Set-AzStorageLocalUser cmdlet creates or updates a specified local user in a storage account. To run this cmdlet, the storage account must has already set EnableLocalUser as true. - - - - Set-AzStorageLocalUser - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HasSharedKey - - Whether shared key exists. Set it to false to remove existing shared key. - - System.Boolean - - System.Boolean - - - None - - - HasSshKey - - Whether SSH key exists. Set it to false to remove existing SSH key. - - System.Boolean - - System.Boolean - - - None - - - HasSshPassword - - Whether SSH password exists. Set it to false to remove existing SSH password. - - System.Boolean - - System.Boolean - - - None - - - HomeDirectory - - Local user home directory - - System.String - - System.String - - - None - - - PermissionScope - - The permission scopes of the local user. Get the object with New-AzStorageLocalUserPermissionScope cmdlet. - - Microsoft.Azure.Commands.Management.Storage.Models.PSPermissionScope[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSPermissionScope[] - - - None - - - SshAuthorizedKey - - Local user ssh authorized keys for SFTP. Get the object with New-AzStorageLocalUserSshPublicKey cmdlet. - - Microsoft.Azure.Commands.Management.Storage.Models.PSSshPublicKey[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSSshPublicKey[] - - - None - - - UserName - - The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageLocalUser - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HasSharedKey - - Whether shared key exists. Set it to false to remove existing shared key. - - System.Boolean - - System.Boolean - - - None - - - HasSshKey - - Whether SSH key exists. Set it to false to remove existing SSH key. - - System.Boolean - - System.Boolean - - - None - - - HasSshPassword - - Whether SSH password exists. Set it to false to remove existing SSH password. - - System.Boolean - - System.Boolean - - - None - - - HomeDirectory - - Local user home directory - - System.String - - System.String - - - None - - - PermissionScope - - The permission scopes of the local user. Get the object with New-AzStorageLocalUserPermissionScope cmdlet. - - Microsoft.Azure.Commands.Management.Storage.Models.PSPermissionScope[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSPermissionScope[] - - - None - - - SshAuthorizedKey - - Local user ssh authorized keys for SFTP. Get the object with New-AzStorageLocalUserSshPublicKey cmdlet. - - Microsoft.Azure.Commands.Management.Storage.Models.PSSshPublicKey[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSSshPublicKey[] - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - UserName - - The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HasSharedKey - - Whether shared key exists. Set it to false to remove existing shared key. - - System.Boolean - - System.Boolean - - - None - - - HasSshKey - - Whether SSH key exists. Set it to false to remove existing SSH key. - - System.Boolean - - System.Boolean - - - None - - - HasSshPassword - - Whether SSH password exists. Set it to false to remove existing SSH password. - - System.Boolean - - System.Boolean - - - None - - - HomeDirectory - - Local user home directory - - System.String - - System.String - - - None - - - PermissionScope - - The permission scopes of the local user. Get the object with New-AzStorageLocalUserPermissionScope cmdlet. - - Microsoft.Azure.Commands.Management.Storage.Models.PSPermissionScope[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSPermissionScope[] - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - SshAuthorizedKey - - Local user ssh authorized keys for SFTP. Get the object with New-AzStorageLocalUserSshPublicKey cmdlet. - - Microsoft.Azure.Commands.Management.Storage.Models.PSSshPublicKey[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSSshPublicKey[] - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - UserName - - The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUser - - - - - - - - - - - - - - ----------- Example 1: Create or update a local user ----------- - $sshkey1 = New-AzStorageLocalUserSshPublicKey -Key "ssh-rsa base64encodedkey=" -Description "sshpublickey name1" - -$permissionScope1 = New-AzStorageLocalUserPermissionScope -Permission rw -Service blob -ResourceName container1 - -$localuser = Set-AzStorageLocalUser -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -UserName testuser1 -HomeDirectory "/" -SshAuthorizedKey $sshkey1 -PermissionScope $permissionScope1 -HasSharedKey $true -HasSshKey $true -HasSshPassword $true - -$localuser - - ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name Sid HomeDirectory HasSharedKey HasSshKey HasSshPassword PermissionScopes ----- --- ------------- ------------ --------- -------------- ---------------- -testuser1 S-1-2-0-0000000000-000000000-0000000000-0000 / True True True [container1] - -$localuser.SshAuthorizedKeys - -Description Key ------------ --- -sshpublickey name1 ssh-rsa base64encodedkey= - -$localuser.PermissionScopes - -Permissions Service ResourceName ------------ ------- ------------ -rw blob container1 - - The first command creates a local SSH public key object. Note that the key follows the format of `<algorithm> <data>` where data is the base64 encoded contents of the public key. The second command creates a local permission scope object that defines the container level access for the local user. The third command creates or updates the local user, using the local objects from the first 2 commands. The final command shows the local user properties. - - - - - - Example 2: Create or update a local user by input permission scope and ssh key with json - Set-AzStorageLocalUser -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -UserName testuser1 -HomeDirectory "/" -HasSharedKey $true -HasSshKey $true -HasSshPassword $true ` - -SshAuthorizedKey (@{ - Description="sshpulickey name1"; - Key="ssh-rsa base64encodedkey="; - }, - @{ - Description="sshpulickey name2"; - Key="ssh-rsa otherbase64encodedkey="; - }) ` - -PermissionScope (@{ - Permissions="rw"; - Service="blob"; - ResourceName="container1"; - }, - @{ - Permissions="rwd"; - Service="share"; - ResourceName="share1"; - }) - -ResourceGroupName: weitry, StorageAccountName: weisftp3 - -Name Sid HomeDirectory HasSharedKey HasSshKey HasSshPassword PermissionScopes ----- --- ------------- ------------ --------- -------------- ---------------- -testuser1 S-1-2-0-0000000000-000000000-0000000000-0000 / True True True [container1,...] - - This command creates or updates a local user by input permission scope and ssh key with json. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstoragelocaluser - - - - - - Set-AzStorageObjectReplicationPolicy - Set - AzStorageObjectReplicationPolicy - - Creates or updates the specified object replication policy in a Storage account. - - - - The Set-AzStorageObjectReplicationPolicy cmdlet creates or updates the specified object replication policy in a Storage account. - - - - Set-AzStorageObjectReplicationPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestinationAccount - - Object Replication Policy DestinationAccount, if SourceAccount is account name it should be account name, else should be account resource id. Default value will be the input StorageAccountName, or the resouceID of the account. - - System.String - - System.String - - - None - - - PolicyId - - Object Replication Policy Id. It should be a GUID or 'default'. If not input the PolicyId, will use 'default', which means to create a new policy and the Id of the new policy will be returned in the created policy. - - System.String - - System.String - - - None - - - Rule - - Object Replication Policy Rules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicyRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicyRule[] - - - None - - - SourceAccount - - Object Replication Policy SourceAccount. It should be resource id if allowCrossTenantReplication is false.. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageObjectReplicationPolicy - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestinationAccount - - Object Replication Policy DestinationAccount, if SourceAccount is account name it should be account name, else should be account resource id. Default value will be the input StorageAccountName, or the resouceID of the account. - - System.String - - System.String - - - None - - - PolicyId - - Object Replication Policy Id. It should be a GUID or 'default'. If not input the PolicyId, will use 'default', which means to create a new policy and the Id of the new policy will be returned in the created policy. - - System.String - - System.String - - - None - - - Rule - - Object Replication Policy Rules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicyRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicyRule[] - - - None - - - SourceAccount - - Object Replication Policy SourceAccount. It should be resource id if allowCrossTenantReplication is false.. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageObjectReplicationPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Object Replication Policy Object to Set to the specified Account. - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestinationAccount - - Object Replication Policy DestinationAccount, if SourceAccount is account name it should be account name, else should be account resource id. Default value will be the input StorageAccountName, or the resouceID of the account. - - System.String - - System.String - - - None - - - InputObject - - Object Replication Policy Object to Set to the specified Account. - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy - - - None - - - PolicyId - - Object Replication Policy Id. It should be a GUID or 'default'. If not input the PolicyId, will use 'default', which means to create a new policy and the Id of the new policy will be returned in the created policy. - - System.String - - System.String - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - Rule - - Object Replication Policy Rules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicyRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicyRule[] - - - None - - - SourceAccount - - Object Replication Policy SourceAccount. It should be resource id if allowCrossTenantReplication is false.. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy - - - - - - - - - - - - - - Example 1: Set object replication policy to both destination and source account. - $rule1 = New-AzStorageObjectReplicationPolicyRule -SourceContainer src1 -DestinationContainer dest1 - -$rule2 = New-AzStorageObjectReplicationPolicyRule -SourceContainer src -DestinationContainer dest -MinCreationTime 2019-01-01T16:00:00Z -PrefixMatch a,abc,dd - -$srcAccount = Get-AzStorageAccount -ResourceGroupName "myresourcegroup" -AccountName "mysourceaccount" - -Set-AzStorageObjectReplicationPolicy -ResourceGroupName "myresourcegroup" -AccountName "mydestaccount" -PolicyId default -SourceAccount $srcAccount.Id -Rule $rule1,$rule2 - -ResourceGroupName StorageAccountName PolicyId EnabledTime SourceAccount DestinationAccount Rules ------------------ ------------------ -------- ----------- ------------- ------------------ ----- -myresourcegroup mydestaccount 56bfa11c-81ef-4f8d-b307-5e5386e16fba mysourceaccount mydestaccount [5fa8b1d6-4985-4abd-a0b3-ec4d07295a43,...] - -$destPolicy = Get-AzStorageObjectReplicationPolicy -ResourceGroupName "myresourcegroup" -AccountName "mydestaccount" - -Set-AzStorageObjectReplicationPolicy -ResourceGroupName "myresourcegroup" -AccountName "mysourceaccount" -InputObject $destPolicy - -ResourceGroupName StorageAccountName PolicyId EnabledTime SourceAccount DestinationAccount Rules ------------------ ------------------ -------- ----------- ------------- ------------------ ----- -myresourcegroup mysourceaccount 56bfa11c-81ef-4f8d-b307-5e5386e16fba mysourceaccount mydestaccount [5fa8b1d6-4985-4abd-a0b3-ec4d07295a43,...] - - This command sets object replication policy to both destination and source account. First create 2 object replication policy rules, and set policy to destination account with the 2 rules and source account resource Id. Then get the object replication policy from destination account and set to source account. Please note, when storage account has AllowCrossTenantReplication as false, SourceAccount and DestinationAccount should be account resource Id. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstorageobjectreplicationpolicy - - - - - - Stop-AzStorageAccountHierarchicalNamespaceUpgrade - Stop - AzStorageAccountHierarchicalNamespaceUpgrade - - Aborts an ongoing HierarchicalNamespace upgrade task on a storage account. - - - - The Stop-AzStorageAccountHierarchicalNamespaceUpgrade cmdlet can aborts an ongoing upgrade to enable HierarchicalNamespace task on a storage account. - - - - Stop-AzStorageAccountHierarchicalNamespaceUpgrade - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to Failover the Account - - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - PassThru - - Display the storage account. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Stop-AzStorageAccountHierarchicalNamespaceUpgrade - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - Name - - Storage Account Name. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to Failover the Account - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Display the storage account. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to Failover the Account - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Name - - Storage Account Name. - - System.String - - System.String - - - None - - - PassThru - - Display the storage account. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - Example 1: Abort HierarchicalNamespace upgrade task on a stroage account - Stop-AzStorageAccountHierarchicalNamespaceUpgrade -ResourceGroupName $rgname -Name $accountName -Force -PassThru - -True - - This command aborts an ongoing HierarchicalNamespace upgrade task on a storage account. The task can be invoke with cmdlet 'Invoke-AzStorageAccountHierarchicalNamespaceUpgrade' with '-RequestType Upgrade'. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/stop-azstorageaccounthierarchicalnamespaceupgrade - - - - - - Update-AzRmStorageContainer - Update - AzRmStorageContainer - - Modifies a Storage blob container - - - - The Update-AzRmStorageContainer cmdlet modifies a Storage blob container - - - - Update-AzRmStorageContainer - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - Metadata - - Container Metadata - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - PublicAccess - - Container PublicAccess - - - Container - Blob - None - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - - None - - - RootSquash - - Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' - - - NoRootSquash - RootSquash - AllSquash - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzRmStorageContainer - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Metadata - - Container Metadata - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - PublicAccess - - Container PublicAccess - - - Container - Blob - None - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - - None - - - RootSquash - - Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' - - - NoRootSquash - RootSquash - AllSquash - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzRmStorageContainer - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Metadata - - Container Metadata - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - PublicAccess - - Container PublicAccess - - - Container - Blob - None - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - - None - - - RootSquash - - Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' - - - NoRootSquash - RootSquash - AllSquash - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - Metadata - - Container Metadata - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - PublicAccess - - Container PublicAccess - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - RootSquash - - Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - - - - - - - - - - - - Example 1: Modifies a Storage blob container's metadata and public access with Storage account name and container name - Update-AzRmStorageContainer -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -ContainerName "myContainer" -PublicAccess Container -Metadata @{tag0="value0";tag1="value1"} - - This command modifies a Storage blob container's metadata and public access with Storage account name and container name. - - - - - - Example 2: Disable public access on a Storage blob container with Storage account object and container name - $accountObject = Get-AzStorageAccount -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -Update-AzRmStorageContainer -StorageAccount $accountObject -ContainerName "myContainer" -PublicAccess None - - This command disables public access on a Storage blob container with Storage account object and container name. - - - - - - Example 3: Set public access as Blob for all Storage blob containers in a Storage account with pipeline - Get-AzRmStorageContainer -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" | Update-AzRmStorageContainer -PublicAccess Blob - - This command set public access as Blob for all Storage blob containers in a Storage account with pipeline. - - - - - - - Example 4: Update an Azure storage container with RootSquash - - $container = Update-AzRmStorageContainer -ResourceGroupName "myersourcegroup" -AccountName "mystorageaccount" -Name "mycontainer" -RootSquash NoRootSquash - -$container.EnableNfsV3AllSquash -False - -$container.EnableNfsV3RootSquash -False - - This command updates a storage container, with RootSquash property set as NoRootSquash. RootSquash only works on a storage account that enabled NfsV3. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/update-azrmstoragecontainer - - - - - - Update-AzRmStorageShare - Update - AzRmStorageShare - - Modifies a Storage file share. - - - - The New-AzRmStorageShare cmdlet modifies a Storage file share. - - - - Update-AzRmStorageShare - - AccessTier - - Access tier for specific share. StorageV2 account can choose between TransactionOptimized (default), Hot, and Cool. FileStorage account can choose Premium. - - - TransactionOptimized - Premium - Hot - Cool - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Storage Share object - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - - None - - - Metadata - - Share Metadata - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - QuotaGiB - - Share Quota in Gibibyte. - - System.Int32 - - System.Int32 - - - None - - - RootSquash - - Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' - - - NoRootSquash - RootSquash - AllSquash - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzRmStorageShare - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - AccessTier - - Access tier for specific share. StorageV2 account can choose between TransactionOptimized (default), Hot, and Cool. FileStorage account can choose Premium. - - - TransactionOptimized - Premium - Hot - Cool - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Metadata - - Share Metadata - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Name - - Share Name - - System.String - - System.String - - - None - - - QuotaGiB - - Share Quota in Gibibyte. - - System.Int32 - - System.Int32 - - - None - - - RootSquash - - Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' - - - NoRootSquash - RootSquash - AllSquash - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzRmStorageShare - - AccessTier - - Access tier for specific share. StorageV2 account can choose between TransactionOptimized (default), Hot, and Cool. FileStorage account can choose Premium. - - - TransactionOptimized - Premium - Hot - Cool - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Metadata - - Share Metadata - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Name - - Share Name - - System.String - - System.String - - - None - - - QuotaGiB - - Share Quota in Gibibyte. - - System.Int32 - - System.Int32 - - - None - - - RootSquash - - Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' - - - NoRootSquash - RootSquash - AllSquash - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzRmStorageShare - - ResourceId - - Input a File Share Resource Id. - - System.String - - System.String - - - None - - - AccessTier - - Access tier for specific share. StorageV2 account can choose between TransactionOptimized (default), Hot, and Cool. FileStorage account can choose Premium. - - - TransactionOptimized - Premium - Hot - Cool - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Metadata - - Share Metadata - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - QuotaGiB - - Share Quota in Gibibyte. - - System.Int32 - - System.Int32 - - - None - - - RootSquash - - Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' - - - NoRootSquash - RootSquash - AllSquash - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AccessTier - - Access tier for specific share. StorageV2 account can choose between TransactionOptimized (default), Hot, and Cool. FileStorage account can choose Premium. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Storage Share object - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - - None - - - Metadata - - Share Metadata - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Name - - Share Name - - System.String - - System.String - - - None - - - QuotaGiB - - Share Quota in Gibibyte. - - System.Int32 - - System.Int32 - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - ResourceId - - Input a File Share Resource Id. - - System.String - - System.String - - - None - - - RootSquash - - Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - - - - - - - - - - - - - Example 1: Modifies a Storage file share's metadata and share quota with Storage account name and share name - $share = Update-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -Name "myshare" -QuotaGiB 200 -Metadata @{tag0="value0";tag1="value1"} - -$share - - ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes ----- -------- ---------------- ---------- ------- ------- --------------- -myshare 200 - -$share.Metadata - -Key Value ---- ----- -tag0 value0 -tag1 value1 - - This command modifies a Storage file share's metadata and share quota with Storage account name and share name, and show the modify result with the returned file share object. - - - - - - Example 2: Modifies metadata on a Storage file share with Storage account object and share name - $accountObject = Get-AzStorageAccount -ResourceGroupName "myResourceGroup" -StorageAccountName "myStorageAccount" -$share = Update-AzRmStorageShare -StorageAccount $accountObject -Name "myshare" -Metadata @{tag0="value0";tag1="value1"} - - This command modifies metadata on a Storage file share with Storage account object and share name. - - - - - - Example 3: Modifies share quota for all Storage file shares in a Storage account with pipeline - Get-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" | Update-AzRmStorageShare -QuotaGiB 5000 - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes ----- -------- ---------------- ---------- ------- ------- --------------- -share1 5000 -share2 5000 - - This command modifies share quota as 5000 GiB for all Storage file shares in a Storage account with pipeline. - - - - - - Example 4: Modify a Storage file share with accesstier as Cool - $share = Update-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -Name "myshare" -AccessTier Cool - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes ----- -------- ---------------- ---------- ------- ------- --------------- -myshare Cool - - This command modifies a Storage file share with accesstier as Cool. - - - - - - Example 5: Modifies rootsquash for a file shares in a Storage account - $share = Update-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -Name "myshare" -RootSquash NoRootSquash - -$share - - ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes ----- -------- ---------------- ---------- ------- ------- --------------- -myshare - -$share.RootSquash -NoRootSquash - - This command modifies share RootSquash property to NoRootSquash. RootSquash property is only avaialbe on share with EnabledProtocol as NFS. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/update-azrmstorageshare - - - - - - Update-AzStorageAccountNetworkRuleSet - Update - AzStorageAccountNetworkRuleSet - - Update the NetworkRule property of a Storage account - - - - The Update-AzStorageAccountNetworkRuleSet cmdlet updates the NetworkRule property of a Storage account - - - - Update-AzStorageAccountNetworkRuleSet - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - Bypass - - The Bypass value to update to the NetworkRule property of a Storage account. The allowed value are none or any combination of: • Logging • Metrics • Azureservices - - - None - Logging - Metrics - AzureServices - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetWorkRuleBypassEnum - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetWorkRuleBypassEnum - - - None - - - DefaultAction - - The DefaultAction value to update to the NetworkRule property of a Storage account. The allowed Options: • Allow • Deny - - - Allow - Deny - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetWorkRuleDefaultActionEnum - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetWorkRuleDefaultActionEnum - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IPRule - - The Array of IpRule objects to update to the NetworkRule Property of a Storage account. - - Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule[] - - - None - - - ResourceAccessRule - - Storage Account NetworkRule ResourceAccessRules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSResourceAccessRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSResourceAccessRule[] - - - None - - - VirtualNetworkRule - - The Array of VirtualNetworkRule objects to update to the NetworkRule Property of a Storage account. - - Microsoft.Azure.Commands.Management.Storage.Models.PSVirtualNetworkRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSVirtualNetworkRule[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Bypass - - The Bypass value to update to the NetworkRule property of a Storage account. The allowed value are none or any combination of: • Logging • Metrics • Azureservices - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetWorkRuleBypassEnum - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetWorkRuleBypassEnum - - - None - - - DefaultAction - - The DefaultAction value to update to the NetworkRule property of a Storage account. The allowed Options: • Allow • Deny - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetWorkRuleDefaultActionEnum - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetWorkRuleDefaultActionEnum - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IPRule - - The Array of IpRule objects to update to the NetworkRule Property of a Storage account. - - Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule[] - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - ResourceAccessRule - - Storage Account NetworkRule ResourceAccessRules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSResourceAccessRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSResourceAccessRule[] - - - None - - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - VirtualNetworkRule - - The Array of VirtualNetworkRule objects to update to the NetworkRule Property of a Storage account. - - Microsoft.Azure.Commands.Management.Storage.Models.PSVirtualNetworkRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSVirtualNetworkRule[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule[] - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSVirtualNetworkRule[] - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - - - - - - - - - - - - - Example 1: Update all properties of NetworkRule, input Rules with JSON - Update-AzStorageAccountNetworkRuleSet -ResourceGroupName "myResourceGroup" -Name "mystorageaccount" -Bypass Logging,Metrics -DefaultAction Allow -IpRule (@{IPAddressOrRange="10.0.0.0/7";Action="allow"},@{IPAddressOrRange="28.2.0.0/16";Action="allow"}) ` --VirtualNetworkRule (@{VirtualNetworkResourceId="/subscriptions/s1/resourceGroups/g1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1";Action="allow"}, -@{VirtualNetworkResourceId="/subscriptions/s1/resourceGroups/g1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/subnet2";Action="allow"}) -ResourceAccessRule (@{ResourceId=$ResourceId1;TenantId=$tenantId1},@{ResourceId=$ResourceId2;TenantId=$tenantId1}) - - This command update all properties of NetworkRule, input Rules with JSON. - - - - - - ------- Example 2: Update Bypass property of NetworkRule ------- - Update-AzStorageAccountNetworkRuleSet -ResourceGroupName "myResourceGroup" -Name "mystorageaccount" -Bypass AzureServices,Metrics - - This command update Bypass property of NetworkRule (other properties won't change). - - - - - - Example 3: Clean up rules of NetworkRule of a Storage account - Update-AzStorageAccountNetworkRuleSet -ResourceGroupName "myResourceGroup" -Name "mystorageaccount" -IpRule @() -VirtualNetworkRule @() -ResourceAccessRule @() - - This command clean up rules of NetworkRule of a Storage account (other properties not change). - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/update-azstorageaccountnetworkruleset - - - - - - Update-AzStorageBlobServiceProperty - Update - AzStorageBlobServiceProperty - - Modifies the service properties for the Azure Storage Blob service. - - - - The Update-AzStorageBlobServiceProperty cmdlet modifies the service properties for the Azure Storage Blob service. - - - - Update-AzStorageBlobServiceProperty - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - ChangeFeedRetentionInDays - - Indicates the duration of changeFeed retention in days. Minimum value is 1 day and maximum value is 146000 days (400 years). Never specify it when enabled changeFeed will get null value in service properties, indicates an infinite retention of the change feed. - - System.Int32 - - System.Int32 - - - None - - - CorsRule - - Specifies CORS rules for the Blob service. - - Microsoft.Azure.Commands.Management.Storage.Models.PSCorsRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSCorsRule[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultServiceVersion - - Default Service Version to Set - - System.String - - System.String - - - None - - - EnableChangeFeed - - Enable Change Feed logging for the storage account by set to $true, disable Change Feed logging by set to $false. - - System.Boolean - - System.Boolean - - - None - - - IsVersioningEnabled - - Gets or sets versioning is enabled if set to true. - - System.Boolean - - System.Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzStorageBlobServiceProperty - - ResourceId - - Input a Storage account Resource Id, or a Blob service properties Resource Id. - - System.String - - System.String - - - None - - - ChangeFeedRetentionInDays - - Indicates the duration of changeFeed retention in days. Minimum value is 1 day and maximum value is 146000 days (400 years). Never specify it when enabled changeFeed will get null value in service properties, indicates an infinite retention of the change feed. - - System.Int32 - - System.Int32 - - - None - - - CorsRule - - Specifies CORS rules for the Blob service. - - Microsoft.Azure.Commands.Management.Storage.Models.PSCorsRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSCorsRule[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultServiceVersion - - Default Service Version to Set - - System.String - - System.String - - - None - - - EnableChangeFeed - - Enable Change Feed logging for the storage account by set to $true, disable Change Feed logging by set to $false. - - System.Boolean - - System.Boolean - - - None - - - IsVersioningEnabled - - Gets or sets versioning is enabled if set to true. - - System.Boolean - - System.Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzStorageBlobServiceProperty - - ChangeFeedRetentionInDays - - Indicates the duration of changeFeed retention in days. Minimum value is 1 day and maximum value is 146000 days (400 years). Never specify it when enabled changeFeed will get null value in service properties, indicates an infinite retention of the change feed. - - System.Int32 - - System.Int32 - - - None - - - CorsRule - - Specifies CORS rules for the Blob service. - - Microsoft.Azure.Commands.Management.Storage.Models.PSCorsRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSCorsRule[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultServiceVersion - - Default Service Version to Set - - System.String - - System.String - - - None - - - EnableChangeFeed - - Enable Change Feed logging for the storage account by set to $true, disable Change Feed logging by set to $false. - - System.Boolean - - System.Boolean - - - None - - - IsVersioningEnabled - - Gets or sets versioning is enabled if set to true. - - System.Boolean - - System.Boolean - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ChangeFeedRetentionInDays - - Indicates the duration of changeFeed retention in days. Minimum value is 1 day and maximum value is 146000 days (400 years). Never specify it when enabled changeFeed will get null value in service properties, indicates an infinite retention of the change feed. - - System.Int32 - - System.Int32 - - - None - - - CorsRule - - Specifies CORS rules for the Blob service. - - Microsoft.Azure.Commands.Management.Storage.Models.PSCorsRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSCorsRule[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultServiceVersion - - Default Service Version to Set - - System.String - - System.String - - - None - - - EnableChangeFeed - - Enable Change Feed logging for the storage account by set to $true, disable Change Feed logging by set to $false. - - System.Boolean - - System.Boolean - - - None - - - IsVersioningEnabled - - Gets or sets versioning is enabled if set to true. - - System.Boolean - - System.Boolean - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - ResourceId - - Input a Storage account Resource Id, or a Blob service properties Resource Id. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobServiceProperties - - - - - - - - - - - - - - Example 1: Set Blob service DefaultServiceVersion to 2018-03-28 - Update-AzStorageBlobServiceProperty -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -DefaultServiceVersion 2018-03-28 - -StorageAccountName : mystorageaccount -ResourceGroupName : myresourcegroup -DefaultServiceVersion : 2018-03-28 -DeleteRetentionPolicy.Enabled : False -DeleteRetentionPolicy.Days : -RestorePolicy.Enabled : -RestorePolicy.Days : -ChangeFeed.Enabled : -ChangeFeed.RetentionInDays : -IsVersioningEnabled : - - This command sets the DefaultServiceVersion of Blob Service to 2018-03-28. - - - - - - Example 2: Enable Changefeed on Blob service of a Storage account with ChangeFeedRetentionInDays as 5 days - Update-AzStorageBlobServiceProperty -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -EnableChangeFeed $true -ChangeFeedRetentionInDays 5 - -StorageAccountName : mystorageaccount -ResourceGroupName : myresourcegroup -DefaultServiceVersion : -DeleteRetentionPolicy.Enabled : False -DeleteRetentionPolicy.Days : -RestorePolicy.Enabled : -RestorePolicy.Days : -ChangeFeed.Enabled : True -ChangeFeed.RetentionInDays : 5 -IsVersioningEnabled : - - This command enables Changefeed on Blob service of a Storage account with ChangeFeedRetentionInDays as 5 days. Change feed support in Azure Blob Storage works by listening to a GPv2 or Blob storage account for any blob level creation, modification, or deletion events. It then outputs an ordered log of events for the blobs stored in the $blobchangefeed container within the storage account. The serialized changes are persisted as an Apache Avro file and can be processed asynchronously and incrementally. If not specify ChangeFeedRetentionInDays, will get null value in service properties, indicates an infinite retention of the change feed. - - - - - - Example 3: Enable Versioning on Blob service of a Storage account - Update-AzStorageBlobServiceProperty -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -IsVersioningEnabled $true - -StorageAccountName : mystorageaccount -ResourceGroupName : myresourcegroup -DefaultServiceVersion : -DeleteRetentionPolicy.Enabled : False -DeleteRetentionPolicy.Days : -RestorePolicy.Enabled : -RestorePolicy.Days : -ChangeFeed : -ChangeFeed.RetentionInDays : -IsVersioningEnabled : True - - This command enables Versioning on Blob service of a Storage account - - - - - - ----------------- Example 4: Update CORS rules ----------------- - $CorsRules = (@{ - AllowedHeaders=@("x-ms-blob-content-type","x-ms-blob-content-disposition"); - ExposedHeaders=@(); - AllowedOrigins=@("*"); - AllowedMethods=@("TRACE","CONNECT")}, - @{ - AllowedOrigins=@("http://www.fabrikam.com","http://www.contoso.com"); - ExposedHeaders=@("x-ms-meta-data*","x-ms-meta-customheader"); - AllowedHeaders=@("x-ms-meta-target*","x-ms-meta-customheader"); - MaxAgeInSeconds=30; - AllowedMethods=@("PUT")}) - -$property = Update-AzStorageBlobServiceProperty -ResourceGroupName myresourcegroup -StorageAccountName mystorageaccount -CorsRule $CorsRules -$property.Cors.CorsRulesProperty - -AllowedOrigins : {*} -AllowedMethods : {TRACE, CONNECT} -MaxAgeInSeconds : 0 -ExposedHeaders : {} -AllowedHeaders : {x-ms-blob-content-type, x-ms-blob-content-disposition} - -AllowedOrigins : {http://www.fabrikam.com, http://www.contoso.com} -AllowedMethods : {PUT} -MaxAgeInSeconds : 30 -ExposedHeaders : {x-ms-meta-customheader, x-ms-meta-data*} -AllowedHeaders : {x-ms-meta-customheader, x-ms-meta-target*} - - The first command assigns an array of rules to the $CorsRules variable. This command uses standard extends over several lines in this code block. The second command sets the rules in $CorsRules to the Blob service of a Storage account. - - - - - - ---------------- Example 5: Clean up CORS rules ---------------- - Update-AzStorageBlobServiceProperty -ResourceGroupName myresourcegroup -StorageAccountName mystorageaccount -CorsRule @() - - This command cleans up the CORS rules of a Storage account by inputting @() to parameter CorsRule - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/update-azstorageblobserviceproperty - - - - - - Update-AzStorageEncryptionScope - Update - AzStorageEncryptionScope - - Modify an encryption scope for a Storage account. - - - - The Update-AzStorageEncryptionScope cmdlet modifies an encryption scope for a Storage account. - - - - Update-AzStorageEncryptionScope - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScopeName - - Azure Storage EncryptionScope name - - System.String - - System.String - - - None - - - State - - Update encryption scope State, Possible values include: 'Enabled', 'Disabled'. - - - Enabled - Disabled - - System.String - - System.String - - - None - - - StorageEncryption - - Create encryption scope with keySource as Microsoft.Storage. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzStorageEncryptionScope - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScopeName - - Azure Storage EncryptionScope name - - System.String - - System.String - - - None - - - KeyUri - - The key Uri - - System.String - - System.String - - - None - - - KeyvaultEncryption - - Create encryption scope with keySource as Microsoft.Keyvault - - - System.Management.Automation.SwitchParameter - - - False - - - State - - Update encryption scope State, Possible values include: 'Enabled', 'Disabled'. - - - Enabled - Disabled - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzStorageEncryptionScope - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScopeName - - Azure Storage EncryptionScope name - - System.String - - System.String - - - None - - - State - - Update encryption scope State, Possible values include: 'Enabled', 'Disabled'. - - - Enabled - Disabled - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageEncryption - - Create encryption scope with keySource as Microsoft.Storage. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzStorageEncryptionScope - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScopeName - - Azure Storage EncryptionScope name - - System.String - - System.String - - - None - - - KeyUri - - The key Uri - - System.String - - System.String - - - None - - - KeyvaultEncryption - - Create encryption scope with keySource as Microsoft.Keyvault - - - System.Management.Automation.SwitchParameter - - - False - - - State - - Update encryption scope State, Possible values include: 'Enabled', 'Disabled'. - - - Enabled - Disabled - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzStorageEncryptionScope - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - EncryptionScope object - - Microsoft.Azure.Commands.Management.Storage.Models.PSEncryptionScope - - Microsoft.Azure.Commands.Management.Storage.Models.PSEncryptionScope - - - None - - - State - - Update encryption scope State, Possible values include: 'Enabled', 'Disabled'. - - - Enabled - Disabled - - System.String - - System.String - - - None - - - StorageEncryption - - Create encryption scope with keySource as Microsoft.Storage. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzStorageEncryptionScope - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - EncryptionScope object - - Microsoft.Azure.Commands.Management.Storage.Models.PSEncryptionScope - - Microsoft.Azure.Commands.Management.Storage.Models.PSEncryptionScope - - - None - - - KeyUri - - The key Uri - - System.String - - System.String - - - None - - - KeyvaultEncryption - - Create encryption scope with keySource as Microsoft.Keyvault - - - System.Management.Automation.SwitchParameter - - - False - - - State - - Update encryption scope State, Possible values include: 'Enabled', 'Disabled'. - - - Enabled - Disabled - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScopeName - - Azure Storage EncryptionScope name - - System.String - - System.String - - - None - - - InputObject - - EncryptionScope object - - Microsoft.Azure.Commands.Management.Storage.Models.PSEncryptionScope - - Microsoft.Azure.Commands.Management.Storage.Models.PSEncryptionScope - - - None - - - KeyUri - - The key Uri - - System.String - - System.String - - - None - - - KeyvaultEncryption - - Create encryption scope with keySource as Microsoft.Keyvault - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - State - - Update encryption scope State, Possible values include: 'Enabled', 'Disabled'. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - StorageEncryption - - Create encryption scope with keySource as Microsoft.Storage. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSEncryptionScope - - - - - - - - - - - - - - ------------ Example 1: Disable an encryption scope ------------ - Update-AzStorageEncryptionScope -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -EncryptionScopeName testscope -State Disabled - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name State Source KeyVaultKeyUri RequireInfrastructureEncryption ----- ----- ------ -------------- ------------------------------- -testscope Disabled Microsoft.Storage - - This command disables an encryption scope. - - - - - - ------------ Example 2: Enable an encryption scope ------------ - Update-AzStorageEncryptionScope -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -EncryptionScopeName testscope -State Enabled - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name State Source KeyVaultKeyUri RequireInfrastructureEncryption ----- ----- ------ -------------- ------------------------------- -testscope Enabled Microsoft.Storage - - This command enables an encryption scope. - - - - - - Example 3: Update an encryption scope to use Storage Encryption - Update-AzStorageEncryptionScope -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -EncryptionScopeName testscope -StorageEncryption - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name State Source KeyVaultKeyUri RequireInfrastructureEncryption ----- ----- ------ -------------- ------------------------------- -testscope Enabled Microsoft.Storage - - This command updates an encryption scope to use Storage Encryption. - - - - - - Example 4: Update an encryption scope to use Keyvault Encryption - Update-AzStorageEncryptionScope -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -EncryptionScopeName testscope -KeyvaultEncryption -KeyUri "https://keyvalutname.vault.azure.net:443/keys/keyname/34a0ba563b4243d9a0ef2b1d3c0c7d57" - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name State Source KeyVaultKeyUri RequireInfrastructureEncryption ----- ----- ------ -------------- ------------------------------- -testscope Enabled Microsoft.Keyvault https://keyvalutname.vault.azure.net:443/keys/keyname/34a0ba563b4243d9a0ef2b1d3c0c7d57 - - This command updtaes an encryption scope to use Keyvault Encryption. The Storage account Identity need have get,wrapkey,unwrapkey permissions to the keyvault key. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/update-azstorageencryptionscope - - - - - - Update-AzStorageFileServiceProperty - Update - AzStorageFileServiceProperty - - Modifies the service properties for the Azure Storage File service. - - - - The Update-AzStorageFileServiceProperty cmdlet modifies the service properties for the Azure Storage File service. - - - - Update-AzStorageFileServiceProperty - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - CorsRule - - Specifies CORS rules for the File service. - - Microsoft.Azure.Commands.Management.Storage.Models.PSCorsRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSCorsRule[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnableShareDeleteRetentionPolicy - - Enable share Delete Retention Policy for the storage account by set to $true, disable share Delete Retention Policy by set to $false. - - System.Boolean - - System.Boolean - - - None - - - EnableSmbMultichannel - - Enable Multichannel by set to $true, disable Multichannel by set to $false. Applies to Premium FileStorage only. - - System.Boolean - - System.Boolean - - - None - - - ShareRetentionDays - - Sets the number of retention days for the share DeleteRetentionPolicy. The value should only be set when enable share Delete Retention Policy. - - System.Int32 - - System.Int32 - - - None - - - SmbAuthenticationMethod - - Gets or sets SMB authentication methods supported by server. Valid values are NTLMv2, Kerberos. - - - Kerberos - NTLMv2 - - System.String[] - - System.String[] - - - None - - - SmbChannelEncryption - - Gets or sets SMB channel encryption supported by server. Valid values are AES-128-CCM, AES-128-GCM, AES-256-GCM. - - - AES-128-CCM - AES-128-GCM - AES-256-GCM - - System.String[] - - System.String[] - - - None - - - SmbKerberosTicketEncryption - - Gets or sets kerberos ticket encryption supported by server. Valid values are RC4-HMAC, AES-256. - - - AES-256 - RC4-HMAC - - System.String[] - - System.String[] - - - None - - - SmbProtocolVersion - - Gets or sets SMB protocol versions supported by server. Valid values are SMB2.1, SMB3.0, SMB3.1.1. - - - SMB2.1 - SMB3.0 - SMB3.1.1 - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzStorageFileServiceProperty - - ResourceId - - Input a Storage account Resource Id, or a File service properties Resource Id. - - System.String - - System.String - - - None - - - CorsRule - - Specifies CORS rules for the File service. - - Microsoft.Azure.Commands.Management.Storage.Models.PSCorsRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSCorsRule[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnableShareDeleteRetentionPolicy - - Enable share Delete Retention Policy for the storage account by set to $true, disable share Delete Retention Policy by set to $false. - - System.Boolean - - System.Boolean - - - None - - - EnableSmbMultichannel - - Enable Multichannel by set to $true, disable Multichannel by set to $false. Applies to Premium FileStorage only. - - System.Boolean - - System.Boolean - - - None - - - ShareRetentionDays - - Sets the number of retention days for the share DeleteRetentionPolicy. The value should only be set when enable share Delete Retention Policy. - - System.Int32 - - System.Int32 - - - None - - - SmbAuthenticationMethod - - Gets or sets SMB authentication methods supported by server. Valid values are NTLMv2, Kerberos. - - - Kerberos - NTLMv2 - - System.String[] - - System.String[] - - - None - - - SmbChannelEncryption - - Gets or sets SMB channel encryption supported by server. Valid values are AES-128-CCM, AES-128-GCM, AES-256-GCM. - - - AES-128-CCM - AES-128-GCM - AES-256-GCM - - System.String[] - - System.String[] - - - None - - - SmbKerberosTicketEncryption - - Gets or sets kerberos ticket encryption supported by server. Valid values are RC4-HMAC, AES-256. - - - AES-256 - RC4-HMAC - - System.String[] - - System.String[] - - - None - - - SmbProtocolVersion - - Gets or sets SMB protocol versions supported by server. Valid values are SMB2.1, SMB3.0, SMB3.1.1. - - - SMB2.1 - SMB3.0 - SMB3.1.1 - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzStorageFileServiceProperty - - CorsRule - - Specifies CORS rules for the File service. - - Microsoft.Azure.Commands.Management.Storage.Models.PSCorsRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSCorsRule[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnableShareDeleteRetentionPolicy - - Enable share Delete Retention Policy for the storage account by set to $true, disable share Delete Retention Policy by set to $false. - - System.Boolean - - System.Boolean - - - None - - - EnableSmbMultichannel - - Enable Multichannel by set to $true, disable Multichannel by set to $false. Applies to Premium FileStorage only. - - System.Boolean - - System.Boolean - - - None - - - ShareRetentionDays - - Sets the number of retention days for the share DeleteRetentionPolicy. The value should only be set when enable share Delete Retention Policy. - - System.Int32 - - System.Int32 - - - None - - - SmbAuthenticationMethod - - Gets or sets SMB authentication methods supported by server. Valid values are NTLMv2, Kerberos. - - - Kerberos - NTLMv2 - - System.String[] - - System.String[] - - - None - - - SmbChannelEncryption - - Gets or sets SMB channel encryption supported by server. Valid values are AES-128-CCM, AES-128-GCM, AES-256-GCM. - - - AES-128-CCM - AES-128-GCM - AES-256-GCM - - System.String[] - - System.String[] - - - None - - - SmbKerberosTicketEncryption - - Gets or sets kerberos ticket encryption supported by server. Valid values are RC4-HMAC, AES-256. - - - AES-256 - RC4-HMAC - - System.String[] - - System.String[] - - - None - - - SmbProtocolVersion - - Gets or sets SMB protocol versions supported by server. Valid values are SMB2.1, SMB3.0, SMB3.1.1. - - - SMB2.1 - SMB3.0 - SMB3.1.1 - - System.String[] - - System.String[] - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - CorsRule - - Specifies CORS rules for the File service. - - Microsoft.Azure.Commands.Management.Storage.Models.PSCorsRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSCorsRule[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnableShareDeleteRetentionPolicy - - Enable share Delete Retention Policy for the storage account by set to $true, disable share Delete Retention Policy by set to $false. - - System.Boolean - - System.Boolean - - - None - - - EnableSmbMultichannel - - Enable Multichannel by set to $true, disable Multichannel by set to $false. Applies to Premium FileStorage only. - - System.Boolean - - System.Boolean - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - ResourceId - - Input a Storage account Resource Id, or a File service properties Resource Id. - - System.String - - System.String - - - None - - - ShareRetentionDays - - Sets the number of retention days for the share DeleteRetentionPolicy. The value should only be set when enable share Delete Retention Policy. - - System.Int32 - - System.Int32 - - - None - - - SmbAuthenticationMethod - - Gets or sets SMB authentication methods supported by server. Valid values are NTLMv2, Kerberos. - - System.String[] - - System.String[] - - - None - - - SmbChannelEncryption - - Gets or sets SMB channel encryption supported by server. Valid values are AES-128-CCM, AES-128-GCM, AES-256-GCM. - - System.String[] - - System.String[] - - - None - - - SmbKerberosTicketEncryption - - Gets or sets kerberos ticket encryption supported by server. Valid values are RC4-HMAC, AES-256. - - System.String[] - - System.String[] - - - None - - - SmbProtocolVersion - - Gets or sets SMB protocol versions supported by server. Valid values are SMB2.1, SMB3.0, SMB3.1.1. - - System.String[] - - System.String[] - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSFileServiceProperties - - - - - - - - - - - - - - ----------- Example 1: Enable File share softdelete ----------- - Update-AzStorageFileServiceProperty -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -EnableShareDeleteRetentionPolicy $true -ShareRetentionDays 5 - -StorageAccountName : mystorageaccount -ResourceGroupName : myresourcegroup -ShareDeleteRetentionPolicy.Enabled : True -ShareDeleteRetentionPolicy.Days : 5 -ProtocolSettings.Smb.Multichannel.Enabled : False -ProtocolSettings.Smb.Versions : -ProtocolSettings.Smb.AuthenticationMethods : -ProtocolSettings.Smb.KerberosTicketEncryption : -ProtocolSettings.Smb.ChannelEncryption : - - This command enables File share softdelete delete with retention days as 5 - - - - - - -------------- Example 2: Enable Smb Multichannel -------------- - Update-AzStorageFileServiceProperty -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -EnableSmbMultichannel $true - -StorageAccountName : mystorageaccount -ResourceGroupName : myresourcegroup -ShareDeleteRetentionPolicy.Enabled : True -ShareDeleteRetentionPolicy.Days : 5 -ProtocolSettings.Smb.Multichannel.Enabled : True -ProtocolSettings.Smb.Versions : -ProtocolSettings.Smb.AuthenticationMethods : -ProtocolSettings.Smb.KerberosTicketEncryption : -ProtocolSettings.Smb.ChannelEncryption : - - This command enables Smb Multichannel, only supported on Premium FileStorage account. - - - - - - ------------ Example 3: Updates secure smb settings ------------ - Update-AzStorageFileServiceProperty -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" ` - -SMBProtocolVersion SMB2.1,SMB3.0,SMB3.1.1 ` - -SMBAuthenticationMethod Kerberos,NTLMv2 ` - -SMBKerberosTicketEncryption RC4-HMAC,AES-256 ` - -SMBChannelEncryption AES-128-CCM,AES-128-GCM,AES-256-GCM - -StorageAccountName : mystorageaccount -ResourceGroupName : myresourcegroup -ShareDeleteRetentionPolicy.Enabled : True -ShareDeleteRetentionPolicy.Days : 5 -ProtocolSettings.Smb.Multichannel.Enabled : True -ProtocolSettings.Smb.Versions : {SMB2.1, SMB3.0, SMB3.1.1} -ProtocolSettings.Smb.AuthenticationMethods : {Kerberos, NTLMv2} -ProtocolSettings.Smb.KerberosTicketEncryption : {RC4-HMAC, AES-256} -ProtocolSettings.Smb.ChannelEncryption : {AES-128-CCM, AES-128-GCM, AES-256-GCM} - - This command updates secure smb settings. - - - - - - ------------- Example 4: Clear secure smb settings ------------- - Update-AzStorageFileServiceProperty -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" ` - -SMBProtocolVersion @() ` - -SMBAuthenticationMethod @() ` - -SMBKerberosTicketEncryption @() ` - -SMBChannelEncryption @() - -StorageAccountName : mystorageaccount -ResourceGroupName : myresourcegroup -ShareDeleteRetentionPolicy.Enabled : True -ShareDeleteRetentionPolicy.Days : 5 -ProtocolSettings.Smb.Multichannel.Enabled : True -ProtocolSettings.Smb.Versions : -ProtocolSettings.Smb.AuthenticationMethods : -ProtocolSettings.Smb.KerberosTicketEncryption : -ProtocolSettings.Smb.ChannelEncryption : - - This command clears secure smb settings. - - - - - - ----------------- Example 5: Update CORS rules ----------------- - $CorsRules = (@{ - AllowedHeaders=@("x-ms-blob-content-type","x-ms-blob-content-disposition"); - ExposedHeaders=@(); - AllowedOrigins=@("*"); - AllowedMethods=@("TRACE","CONNECT")}, - @{ - AllowedOrigins=@("http://www.fabrikam.com","http://www.contoso.com"); - ExposedHeaders=@("x-ms-meta-data*","x-ms-meta-customheader"); - AllowedHeaders=@("x-ms-meta-target*","x-ms-meta-customheader"); - MaxAgeInSeconds=30; - AllowedMethods=@("PUT")}) - -$property = Update-AzStorageFileServiceProperty -ResourceGroupName myresourcegroup -StorageAccountName mystorageaccount -CorsRule $CorsRules -$property.Cors.CorsRulesProperty - -AllowedOrigins : {*} -AllowedMethods : {TRACE, CONNECT} -MaxAgeInSeconds : 0 -ExposedHeaders : {} -AllowedHeaders : {x-ms-blob-content-type, x-ms-blob-content-disposition} - -AllowedOrigins : {http://www.fabrikam.com, http://www.contoso.com} -AllowedMethods : {PUT} -MaxAgeInSeconds : 30 -ExposedHeaders : {x-ms-meta-customheader, x-ms-meta-data*} -AllowedHeaders : {x-ms-meta-customheader, x-ms-meta-target*} - - The first command assigns an array of rules to the $CorsRules variable. This command uses standard extends over several lines in this code block. The second command sets the rules in $CorsRules to the File service of a Storage account. - - - - - - ---------------- Example 6: Clean up CORS rules ---------------- - Update-AzStorageFileServiceProperty -ResourceGroupName myresourcegroup -StorageAccountName mystorageaccount -CorsRule @() - - This command cleans up the CORS rules of a Storage account by inputting @() to parameter CorsRule. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/update-azstoragefileserviceproperty - - - - \ No newline at end of file diff --git a/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Cmdlets.Storage.dll b/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Cmdlets.Storage.dll deleted file mode 100644 index c3cfb0a3510e..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Cmdlets.Storage.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Cmdlets.Storage.dll-Help.xml b/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Cmdlets.Storage.dll-Help.xml deleted file mode 100644 index 60fa91553e53..000000000000 --- a/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Cmdlets.Storage.dll-Help.xml +++ /dev/null @@ -1,48111 +0,0 @@ - - - - - Close-AzStorageFileHandle - Close - AzStorageFileHandle - - Closes file handles of a file share, a file directory or a file. - - - - The Close-AzStorageFileHandle cmdlet closes file handles of a file share, or file directory or a file. - - - - Close-AzStorageFileHandle - - ShareName - - Name of the file share where the files/directories would be listed. - - System.String - - System.String - - - None - - - Path - - Path to an existing file/directory. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloseAll - - Force close all File handles. - - - System.Management.Automation.SwitchParameter - - - False - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Return the count of closed file handles. - - - System.Management.Automation.SwitchParameter - - - False - - - Recursive - - List handles Recursively. Only works on File Directory. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Close-AzStorageFileHandle - - ShareClient - - ShareClient object indicated the share which contains the files/directories to closed handle. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - Path - - Path to an existing file/directory. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloseAll - - Force close all File handles. - - - System.Management.Automation.SwitchParameter - - - False - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Return the count of closed file handles. - - - System.Management.Automation.SwitchParameter - - - False - - - Recursive - - List handles Recursively. Only works on File Directory. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Close-AzStorageFileHandle - - ShareDirectoryClient - - ShareDirectoryClient object indicated the base folder which contains the files/directories to closed handle. - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - Path - - Path to an existing file/directory. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloseAll - - Force close all File handles. - - - System.Management.Automation.SwitchParameter - - - False - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Return the count of closed file handles. - - - System.Management.Automation.SwitchParameter - - - False - - - Recursive - - List handles Recursively. Only works on File Directory. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Close-AzStorageFileHandle - - ShareFileClient - - ShareFileClient object indicated the file to close handle. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloseAll - - Force close all File handles. - - - System.Management.Automation.SwitchParameter - - - False - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Return the count of closed file handles. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Close-AzStorageFileHandle - - ShareName - - Name of the file share where the files/directories would be listed. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - - System.Management.Automation.SwitchParameter - - - False - - - FileHandle - - The File Handle to close. - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSFileHandle - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSFileHandle - - - None - - - PassThru - - Return the count of closed file handles. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Close-AzStorageFileHandle - - ShareClient - - ShareClient object indicated the share which contains the files/directories to closed handle. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - FileHandle - - The File Handle to close. - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSFileHandle - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSFileHandle - - - None - - - PassThru - - Return the count of closed file handles. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloseAll - - Force close all File handles. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - FileHandle - - The File Handle to close. - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSFileHandle - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSFileHandle - - - None - - - PassThru - - Return the count of closed file handles. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Path - - Path to an existing file/directory. - - System.String - - System.String - - - None - - - Recursive - - List handles Recursively. Only works on File Directory. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ShareClient - - ShareClient object indicated the share which contains the files/directories to closed handle. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - ShareDirectoryClient - - ShareDirectoryClient object indicated the base folder which contains the files/directories to closed handle. - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - ShareFileClient - - ShareFileClient object indicated the file to close handle. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - ShareName - - Name of the file share where the files/directories would be listed. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Azure.Storage.Files.Shares.ShareClient - - - - - - - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - - - - - - Azure.Storage.Files.Shares.ShareFileClient - - - - - - - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSFileHandle - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Int32 - - - - - - - - - - - - - - --------- Example 1: Close all file handles on a file --------- - Close-AzStorageFileHandle -ShareName "mysharename" -Path 'dir1/dir2/test.txt' -CloseAll - - This command closes all file handles on a file. - - - - - - Example 2: Close all file handles which is opened 1 day ago on a file directory - Get-AzStorageFileHandle -ShareName "mysharename" -Path 'dir1/dir2' -Recursive | Where-Object {$_.OpenTime.DateTime.AddDays(1) -lt (Get-Date)} | Close-AzStorageFileHandle -ShareName "mysharename" - - This command lists all file handles on a file directory recursively, filters out the handles which are opened 1 day ago, and then closes them. - - - - - - Example 3: Close all file handles on a file directory recursively and show the closed file handle count - Close-AzStorageFileHandle -ShareName "mysharename" -Path 'dir1/dir2' -Recursive -CloseAll -PassThru - -10 - - This command closes all file handles on a file directory and shows the closed file handle count. - - - - - - ------ Example 4: Close all file handles on a file share ------ - Close-AzStorageFileHandle -ShareName "mysharename" -CloseAll -Recursive - - This command closes all file handles on a specific file share recursively. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/close-azstoragefilehandle - - - - - - Copy-AzStorageBlob - Copy - AzStorageBlob - - Copy a blob synchronously. - - - - The Copy-AzStorageBlob cmdlet copies a blob synchronously, currently only support block blob. - - - - Copy-AzStorageBlob - - AbsoluteUri - - Source blob uri - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - Context - - Source Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Destination blob name - - System.String - - System.String - - - None - - - DestBlobType - - Destination blob type - - - Block - Page - Append - - System.String - - System.String - - - None - - - DestContainer - - Destination container name - - System.String - - System.String - - - None - - - DestContext - - Destination Storage context object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - EncryptionScope - - Encryption scope to be used when making requests to the dest blob. - - System.String - - System.String - - - None - - - Force - - Force to overwrite the existing blob or file - - - System.Management.Automation.SwitchParameter - - - False - - - RehydratePriority - - Block Blob RehydratePriority. Indicates the priority with which to rehydrate an archived blob. Valid values are High/Standard. - - - Standard - High - - Microsoft.Azure.Storage.Blob.RehydratePriority - - Microsoft.Azure.Storage.Blob.RehydratePriority - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Copy-AzStorageBlob - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - Context - - Source Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Destination blob name - - System.String - - System.String - - - None - - - DestBlobType - - Destination blob type - - - Block - Page - Append - - System.String - - System.String - - - None - - - DestContainer - - Destination container name - - System.String - - System.String - - - None - - - DestContext - - Destination Storage context object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - EncryptionScope - - Encryption scope to be used when making requests to the dest blob. - - System.String - - System.String - - - None - - - Force - - Force to overwrite the existing blob or file - - - System.Management.Automation.SwitchParameter - - - False - - - RehydratePriority - - Block Blob RehydratePriority. Indicates the priority with which to rehydrate an archived blob. Valid values are High/Standard. - - - Standard - High - - Microsoft.Azure.Storage.Blob.RehydratePriority - - Microsoft.Azure.Storage.Blob.RehydratePriority - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Copy-AzStorageBlob - - SrcBlob - - Blob name - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - Context - - Source Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Destination blob name - - System.String - - System.String - - - None - - - DestBlobType - - Destination blob type - - - Block - Page - Append - - System.String - - System.String - - - None - - - DestContainer - - Destination container name - - System.String - - System.String - - - None - - - DestContext - - Destination Storage context object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - EncryptionScope - - Encryption scope to be used when making requests to the dest blob. - - System.String - - System.String - - - None - - - Force - - Force to overwrite the existing blob or file - - - System.Management.Automation.SwitchParameter - - - False - - - RehydratePriority - - Block Blob RehydratePriority. Indicates the priority with which to rehydrate an archived blob. Valid values are High/Standard. - - - Standard - High - - Microsoft.Azure.Storage.Blob.RehydratePriority - - Microsoft.Azure.Storage.Blob.RehydratePriority - - - None - - - SrcContainer - - Source Container name - - System.String - - System.String - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AbsoluteUri - - Source blob uri - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - Context - - Source Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Destination blob name - - System.String - - System.String - - - None - - - DestBlobType - - Destination blob type - - System.String - - System.String - - - None - - - DestContainer - - Destination container name - - System.String - - System.String - - - None - - - DestContext - - Destination Storage context object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - EncryptionScope - - Encryption scope to be used when making requests to the dest blob. - - System.String - - System.String - - - None - - - Force - - Force to overwrite the existing blob or file - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - RehydratePriority - - Block Blob RehydratePriority. Indicates the priority with which to rehydrate an archived blob. Valid values are High/Standard. - - Microsoft.Azure.Storage.Blob.RehydratePriority - - Microsoft.Azure.Storage.Blob.RehydratePriority - - - None - - - SrcBlob - - Blob name - - System.String - - System.String - - - None - - - SrcContainer - - Source Container name - - System.String - - System.String - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageBlob - - - - - - - - - - - - - - ----------- Example 1: Copy a named blob to another ----------- - $destBlob = Copy-AzStorageBlob -SrcContainer "sourcecontainername" -SrcBlob "srcblobname" -DestContainer "destcontainername" -DestBlob "destblobname" - - This command copies a blob from source container to the destination container with a new blob name. - - - - - - ----------- Example 2: Copy blob from a blob object ----------- - $srcBlob = Get-AzStorageBlob -Container $containerName -Blob $blobName -Context $ctx -$destBlob = $srcBlob | Copy-AzStorageBlob -DestContainer "destcontainername" -DestBlob "destblobname" - - This command copies a blob from source blob object to the destination container with a new blob name. - - - - - - ------------- Example 3: Copy blob from a blob Uri ------------- - $srcBlobUri = New-AzStorageBlobSASToken -Container $srcContainerName -Blob $srcBlobName -Permission rt -ExpiryTime (Get-Date).AddDays(7) -FullUri -$destBlob = Copy-AzStorageBlob -AbsoluteUri $srcBlobUri -DestContainer "destcontainername" -DestBlob "destblobname" - - The first command creates a blob Uri of the source blob, with sas token of permission "rt". The second command copies from source blob Uri to the destination blob. - - - - - - ------- Example 4: Update a block blob encryption scope ------- - $blob = Copy-AzStorageBlob -SrcContainer $containerName -SrcBlob $blobname -DestContainer $containername -EncryptionScope $newScopeName -Force - - This command update a block blob encryption scope by copy it to itself with a new encryption scope. - - - - - - --------- Example 5: Copy a blob to a new append blob --------- - $srcBlob = Get-AzStorageBlob -Container $containerName -Blob $blobName -Context $ctx -$destBlob = Copy-AzStorageBlob -SrcContainer "sourcecontainername" -SrcBlob "srcblobname" -DestContainer "destcontainername" -DestBlob "destblobname" -DestBlobType "Append" -DestContext $destCtx - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/copy-azstorageblob - - - - - - Disable-AzStorageDeleteRetentionPolicy - Disable - AzStorageDeleteRetentionPolicy - - Disable delete retention policy for the Azure Storage Blob service. - - - - The Disable-AzStorageDeleteRetentionPolicy cmdlet disables delete retention policy for the Azure Storage Blob service. - - - - Disable-AzStorageDeleteRetentionPolicy - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display DeleteRetentionPolicyProperties - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display DeleteRetentionPolicyProperties - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSDeleteRetentionPolicy - - - - - - - - - - - - - - Example 1: Disable delete retention policy for the Blob service - Disable-AzStorageDeleteRetentionPolicy - - This command disables delete retention policy for the Blob service. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/disable-azstoragedeleteretentionpolicy - - - - - - Disable-AzStorageStaticWebsite - Disable - AzStorageStaticWebsite - - Disable static website for the Azure Storage account. - - - - The Disable-AzStorageStaticWebsite cmdlet disables static website for the Azure Storage account. - - - - Disable-AzStorageStaticWebsite - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - {{Fill PassThru Description}} - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - {{Fill PassThru Description}} - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSStaticWebsiteProperties - - - - - - - - - - - - - - Example 1: Disable static website for a Azure Storage account - Disable-AzStorageStaticWebsite - - This command disables static website for a Azure Storage account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/disable-azstoragestaticwebsite - - - - - - Enable-AzStorageDeleteRetentionPolicy - Enable - AzStorageDeleteRetentionPolicy - - Enable delete retention policy for the Azure Storage Blob service. - - - - The Enable-AzStorageDeleteRetentionPolicy cmdlet enables delete retention policy for the Azure Storage Blob service. - - - - Enable-AzStorageDeleteRetentionPolicy - - RetentionDays - - Sets the number of retention days for the DeleteRetentionPolicy. - - System.Int32 - - System.Int32 - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display DeleteRetentionPolicyProperties - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display DeleteRetentionPolicyProperties - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - RetentionDays - - Sets the number of retention days for the DeleteRetentionPolicy. - - System.Int32 - - System.Int32 - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSDeleteRetentionPolicy - - - - - - - - - - - - - - Example 1: Enable delete retention policy for the Blob service - Enable-AzStorageDeleteRetentionPolicy -RetentionDays 3 - - This command enables delete retention policy for the Blob service, and set deleted blob retention days to 3. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/enable-azstoragedeleteretentionpolicy - - - - - - Enable-AzStorageStaticWebsite - Enable - AzStorageStaticWebsite - - Enable static website for the Azure Storage account. - - - - The Enable-AzStorageStaticWebsite cmdlet enables static website for the Azure Storage account. - - - - Enable-AzStorageStaticWebsite - - IndexDocument - - The name of the index document in each directory. - - System.String - - System.String - - - None - - - ErrorDocument404Path - - The path to the error document that should be shown when a 404 is issued (meaning, when a browser requests a page that does not exist.) - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display Static Website setting in ServiceProperties. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ErrorDocument404Path - - The path to the error document that should be shown when a 404 is issued (meaning, when a browser requests a page that does not exist.) - - System.String - - System.String - - - None - - - IndexDocument - - The name of the index document in each directory. - - System.String - - System.String - - - None - - - PassThru - - Display Static Website setting in ServiceProperties. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSStaticWebsiteProperties - - - - - - - - - - - - - - Example 1: Enable static website for the Azure Storage account - Enable-AzStorageStaticWebsite -IndexDocument $indexdoc -ErrorDocument404Path $errordoc - - This command enables static website for the Azure Storage account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/enable-azstoragestaticwebsite - - - - - - Get-AzDataLakeGen2ChildItem - Get - AzDataLakeGen2ChildItem - - Lists sub directories and files from a directory or filesystem root. - - - - The Get-AzDataLakeGen2ChildItem cmdlet lists sub directorys and files in a directory or Filesystem in an Azure storage account. This cmdlet only works if Hierarchical Namespace is enabled for the Storage account. This kind of account can be created by run "New-AzStorageAccount" cmdlet with "-EnableHierarchicalNamespace $true". - - - - Get-AzDataLakeGen2ChildItem - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Path - - The path in the specified Filesystem that should be retrieved. Should be a directory, in the format 'directory1/directory2/'. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Continuation Token. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - FetchProperty - - Fetch the datalake item properties and ACL. - - - System.Management.Automation.SwitchParameter - - - False - - - MaxCount - - The max count of the blobs that can return. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - OutputUserPrincipalName - - If speicify this parameter, the user identity values returned in the owner and group fields of each list entry will be transformed from Microsoft Entra Object IDs to User Principal Names. If not speicify this parameter, the values will be returned as Microsoft Entra Object IDs. Note that group and application Object IDs are not translated because they do not have unique friendly names. - - - System.Management.Automation.SwitchParameter - - - False - - - Recurse - - Indicates if will recursively get the Child Item. The default is false. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Continuation Token. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - FetchProperty - - Fetch the datalake item properties and ACL. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - MaxCount - - The max count of the blobs that can return. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - OutputUserPrincipalName - - If speicify this parameter, the user identity values returned in the owner and group fields of each list entry will be transformed from Microsoft Entra Object IDs to User Principal Names. If not speicify this parameter, the values will be returned as Microsoft Entra Object IDs. Note that group and application Object IDs are not translated because they do not have unique friendly names. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Path - - The path in the specified Filesystem that should be retrieved. Should be a directory, in the format 'directory1/directory2/'. - - System.String - - System.String - - - None - - - Recurse - - Indicates if will recursively get the Child Item. The default is false. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - - - - - - - - - - - - ---- Example 1: List the direct sub items from a Filesystem ---- - Get-AzDataLakeGen2ChildItem -FileSystem "filesystem1" - -FileSystem Name: filesystem1 - -Path IsDirectory Length LastModified Permissions Owner Group ----- ----------- ------ ------------ ----------- ----- ----- -dir1 True 2020-03-13 13:07:34Z rwxr-x--- $superuser $superuser -dir2 True 2020-03-23 09:28:36Z rwxr-x--- $superuser $superuser - - This command lists the direct sub items from a Filesystem - - - - - - Example 2: List recursively from a directory, and fetch Properties/ACL - Get-AzDataLakeGen2ChildItem -FileSystem "filesystem1" -Path "dir1/" -Recurse -FetchProperty - -FileSystem Name: filesystem1 - -Path IsDirectory Length LastModified Permissions Owner Group ----- ----------- ------ ------------ ----------- ----- ----- -dir1/dir3 True 2020-03-23 09:34:31Z rwx---rwx $superuser $superuser -dir1/file1 False 1024 2020-03-23 09:29:18Z rwx---rwx $superuser $superuser -dir1/testfile_1K_0 False 1024 2020-03-23 09:29:21Z rw-r----- $superuser $superuser - - This command lists the direct sub items from a Filesystem - - - - - - Example 3: List items recursively from a Filesystem in multiple batches - $MaxReturn = 1000 -$FileSystemName = "filesystem1" -$Total = 0 -$Token = $Null -do - { - $items = Get-AzDataLakeGen2ChildItem -FileSystem $FileSystemName -Recurse -MaxCount $MaxReturn -ContinuationToken $Token - $Total += $items.Count - if($items.Length -le 0) { Break;} - $Token = $items[$items.Count -1].ContinuationToken; - } - While ($null -ne $Token) -Echo "Total $Total items in Filesystem $FileSystemName" - - This example uses the MaxCount and ContinuationToken parameters to list items recursively from a Filesystem in multiple batches. A small MaxCount can limit the items acount returned from single requst, may help on operation times out error, and limit the memory usage of Powershell. The first four commands assign values to variables to use in the example. The fifth command specifies a Do-While statement that uses the Get-AzDataLakeGen2ChildItem cmdlet to list items. The statement includes the continuation token stored in the $Token variable. $Token changes value as the loop runs. The final command uses the Echo command to display the total. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azdatalakegen2childitem - - - - - - Get-AzDataLakeGen2DeletedItem - Get - AzDataLakeGen2DeletedItem - - List all deleted files or directories from a directory or filesystem root. - - - - The Get-AzDataLakeGen2DeletedItem cmdlet lists all deleted files or directories from a directory or filesystem in an Azure storage account. This cmdlet only works if Hierarchical Namespace is enabled for the Storage account. This kind of account can be created by run "New-AzStorageAccount" cmdlet with "-EnableHierarchicalNamespace $true". - - - - Get-AzDataLakeGen2DeletedItem - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Path - - The path in the specified FileSystem that should be retrieved. Can be a directory In the format 'directory1/directory2/', Skip set this parameter to list items from root directory of the Filesystem. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Continuation Token. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - MaxCount - - The max count of the blobs that can return. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Continuation Token. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - MaxCount - - The max count of the blobs that can return. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Path - - The path in the specified FileSystem that should be retrieved. Can be a directory In the format 'directory1/directory2/', Skip set this parameter to list items from root directory of the Filesystem. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2DeletedItem - - - - - - - - - - - - - - Example 1: List all deleted files or directories from a Filesystem - Get-AzDataLakeGen2DeletedItem -FileSystem "filesystem1" - -FileSystem Name: filesystem1 - -Path DeletionId DeletedOn RemainingRetentionDays ----- ---------- --------- ---------------------- -dir0/dir1/file1 132658816156507617 2021-05-19 07:06:55Z 3 -dir0/dir2 132658834541610122 2021-05-19 07:37:34Z 3 -dir0/dir2/file3 132658834534174806 2021-05-19 07:37:33Z 3 - - This command lists all deleted files or directories from a Filesystem. - - - - - - Example 2: List all deleted files or directories from a directory - Get-AzDataLakeGen2DeletedItem -FileSystem "filesystem1" -Path dir0/dir2 - -FileSystem Name: filesystem1 - -Path DeletionId DeletedOn RemainingRetentionDays ----- ---------- --------- ---------------------- -dir0/dir2 132658834541610122 2021-05-19 07:37:34Z 3 -dir0/dir2/file3 132658834534174806 2021-05-19 07:37:33Z 3 - - This command lists all deleted files or directories from a directory. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azdatalakegen2deleteditem - - - - - - Get-AzDataLakeGen2Item - Get - AzDataLakeGen2Item - - Gets the details of a file or directory in a filesystem. - - - - The Get-AzDataLakeGen2Item cmdlet gets the details of a file or directory in a Filesystem in an Azure storage account. This cmdlet only works if Hierarchical Namespace is enabled for the Storage account. This kind of account can be created by run "New-AzStorageAccount" cmdlet with "-EnableHierarchicalNamespace $true". - - - - Get-AzDataLakeGen2Item - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Path - - The path in the specified Filesystem that should be retrieved. Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/'. Not specify this parameter to get the root directory of the Filesystem. - - System.String - - System.String - - - None - - - - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Path - - The path in the specified Filesystem that should be retrieved. Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/'. Not specify this parameter to get the root directory of the Filesystem. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - - - - - - - - - - - - Example 1: Get a directory from a Filesystem, and show the details - $dir1 = Get-AzDataLakeGen2Item -FileSystem "filesystem1" -Path "dir1/" -$dir1 - - FileSystem Name: filesystem1 - -Path IsDirectory Length LastModified Permissions Owner Group ----- ----------- ------ ------------ ----------- ----- ----- -dir1 True 2020-03-23 09:15:56Z rwx---rwx $superuser $superuser - -PS C:\WINDOWS\system32> $dir1.ACL - -DefaultScope AccessControlType EntityId Permissions ------------- ----------------- -------- ----------- -False User rwx -False Group --- -False Other rwx - -PS C:\WINDOWS\system32> $dir1.Permissions - -Owner : Execute, Write, Read -Group : None -Other : Execute, Write, Read -StickyBit : False -ExtendedAcls : False - -PS C:\WINDOWS\system32> $dir1.Properties.Metadata - -Key Value ---- ----- -hdi_isfolder true -tag1 value1 -tag2 value2 - -PS C:\WINDOWS\system32> $dir1.Properties - -LastModified : 3/23/2020 9:15:56 AM +00:00 -CreatedOn : 3/23/2020 9:15:56 AM +00:00 -Metadata : {[hdi_isfolder, true], [tag1, value1], [tag2, value2]} -CopyCompletedOn : 1/1/0001 12:00:00 AM +00:00 -CopyStatusDescription : -CopyId : -CopyProgress : -CopySource : -CopyStatus : Pending -IsIncrementalCopy : False -LeaseDuration : Infinite -LeaseState : Available -LeaseStatus : Unlocked -ContentLength : 0 -ContentType : application/octet-stream -ETag : "0x8D7CF0ACBA35FA8" -ContentHash : -ContentEncoding : UDF12 -ContentDisposition : -ContentLanguage : -CacheControl : READ -AcceptRanges : bytes -IsServerEncrypted : True -EncryptionKeySha256 : -AccessTier : Cool -ArchiveStatus : -AccessTierChangedOn : 1/1/0001 12:00:00 AM +00:00 - - This command gets a directory from a Filesystem, and show the details. - - - - - - ----------- Example 2: Get a file from a Filesystem ----------- - Get-AzDataLakeGen2Item -FileSystem "filesystem1" -Path "dir1/file1" - -FileSystem Name: filesystem1 - -Path IsDirectory Length LastModified Permissions Owner Group ----- ----------- ------ ------------ ----------- ----- ----- -dir1/file1 False 1024 2020-03-23 09:20:37Z rwx---rwx $superuser $superuser - - This command gets the details of a file from a Filesystem. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azdatalakegen2item - - - - - - Get-AzDataLakeGen2ItemContent - Get - AzDataLakeGen2ItemContent - - Download a file. - - - - The Get-AzDataLakeGen2ItemContent cmdlet download a file in a Filesystem in an Azure storage account. This cmdlet only works if Hierarchical Namespace is enabled for the Storage account. This kind of account can be created by run "New-AzStorageAccount" cmdlet with "-EnableHierarchicalNamespace $true". - - - - Get-AzDataLakeGen2ItemContent - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Path - - The path in the specified Filesystem that should be removed. Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/' - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - CheckMd5 - - check the md5sum - - - System.Management.Automation.SwitchParameter - - - False - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - Destination local file path. - - System.String - - System.String - - - None - - - Force - - Force to overwrite the existing blob or file - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzDataLakeGen2ItemContent - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - CheckMd5 - - check the md5sum - - - System.Management.Automation.SwitchParameter - - - False - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - Destination local file path. - - System.String - - System.String - - - None - - - Force - - Force to overwrite the existing blob or file - - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Azure Datalake Gen2 Item Object to download. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - CheckMd5 - - check the md5sum - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - Destination local file path. - - System.String - - System.String - - - None - - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Force - - Force to overwrite the existing blob or file - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Azure Datalake Gen2 Item Object to download. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - None - - - Path - - The path in the specified Filesystem that should be removed. Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/' - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - - - - - - - - - - - - ---------- Example 1: Download a file without prompt ---------- - Get-AzDataLakeGen2ItemContent -FileSystem "filesystem1" -Path "dir1/file1" -Destination $localDestFile -Force - -FileSystem Name: filesystem1 - -Path IsDirectory Length LastModified Permissions Owner Group ----- ----------- ------ ------------ ----------- ----- ----- -dir1/file1 False 1024 2020-03-23 09:29:18Z rwx---rwx $superuser $superuser - - This command downloads a file to a local file without prompt. - - - - - - Example 2: Get a file, then pipeline to download the file to a local file - Get-AzDataLakeGen2Item -FileSystem "filesystem1" -Path "dir1/file1" | Get-AzDataLakeGen2ItemContent -Destination $localDestFile - -FileSystem Name: filesystem1 - -Path IsDirectory Length LastModified Permissions Owner Group ----- ----------- ------ ------------ ----------- ----- ----- -dir1/file1 False 1024 2020-03-23 09:29:18Z rwx---rwx $superuser $superuser - - This command first gets a file, then pipeline to download the file to a local file. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azdatalakegen2itemcontent - - - - - - Get-AzStorageBlob - Get - AzStorageBlob - - Lists blobs in a container. - - - - The Get-AzStorageBlob cmdlet lists blobs in the specified container in an Azure storage account. - - - - Get-AzStorageBlob - - Blob - - Specifies a name or name pattern, which can be used for a wildcard search. If no blob name is specified, the cmdlet lists all the blobs in the specified container. If a value is specified for this parameter, the cmdlet lists all blobs with names that match this parameter. This parameter supports wildcards anywhere in the string. - - System.String - - System.String - - - None - - - Container - - Specifies the name of the container. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage account from which you want to get a list of blobs. You can use the New-AzStorageContext cmdlet to create a storage context. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Specifies a continuation token for the blob list. Use this parameter and the MaxCount parameter to list blobs in multiple batches. - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeDeleted - - Include Deleted Blob, by default get blob won't include deleted blob. - - - System.Management.Automation.SwitchParameter - - - False - - - IncludeTag - - Include blob tags, by default get blob won't include blob tags. - - - System.Management.Automation.SwitchParameter - - - False - - - MaxCount - - Specifies the maximum number of objects that this cmdlet returns. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - - Get-AzStorageBlob - - Blob - - Specifies a name or name pattern, which can be used for a wildcard search. If no blob name is specified, the cmdlet lists all the blobs in the specified container. If a value is specified for this parameter, the cmdlet lists all blobs with names that match this parameter. This parameter supports wildcards anywhere in the string. - - System.String - - System.String - - - None - - - Container - - Specifies the name of the container. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage account from which you want to get a list of blobs. You can use the New-AzStorageContext cmdlet to create a storage context. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Specifies a continuation token for the blob list. Use this parameter and the MaxCount parameter to list blobs in multiple batches. - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeDeleted - - Include Deleted Blob, by default get blob won't include deleted blob. - - - System.Management.Automation.SwitchParameter - - - False - - - IncludeTag - - Include blob tags, by default get blob won't include blob tags. - - - System.Management.Automation.SwitchParameter - - - False - - - MaxCount - - Specifies the maximum number of objects that this cmdlet returns. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SnapshotTime - - Blob SnapshotTime - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - - Get-AzStorageBlob - - Blob - - Specifies a name or name pattern, which can be used for a wildcard search. If no blob name is specified, the cmdlet lists all the blobs in the specified container. If a value is specified for this parameter, the cmdlet lists all blobs with names that match this parameter. This parameter supports wildcards anywhere in the string. - - System.String - - System.String - - - None - - - Container - - Specifies the name of the container. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage account from which you want to get a list of blobs. You can use the New-AzStorageContext cmdlet to create a storage context. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Specifies a continuation token for the blob list. Use this parameter and the MaxCount parameter to list blobs in multiple batches. - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeDeleted - - Include Deleted Blob, by default get blob won't include deleted blob. - - - System.Management.Automation.SwitchParameter - - - False - - - IncludeTag - - Include blob tags, by default get blob won't include blob tags. - - - System.Management.Automation.SwitchParameter - - - False - - - MaxCount - - Specifies the maximum number of objects that this cmdlet returns. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - VersionId - - Blob VersionId - - System.String - - System.String - - - None - - - - Get-AzStorageBlob - - Container - - Specifies the name of the container. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage account from which you want to get a list of blobs. You can use the New-AzStorageContext cmdlet to create a storage context. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Specifies a continuation token for the blob list. Use this parameter and the MaxCount parameter to list blobs in multiple batches. - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeDeleted - - Include Deleted Blob, by default get blob won't include deleted blob. - - - System.Management.Automation.SwitchParameter - - - False - - - IncludeTag - - Include blob tags, by default get blob won't include blob tags. - - - System.Management.Automation.SwitchParameter - - - False - - - IncludeVersion - - Blob versions will be listed only if this parameter is present, by default get blob won't include blob versions. - - - System.Management.Automation.SwitchParameter - - - False - - - MaxCount - - Specifies the maximum number of objects that this cmdlet returns. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Prefix - - Specifies a prefix for the blob names that you want to get. This parameter does not support using regular expressions or wildcard characters to search. This means that if the container has only blobs named "My", "MyBlob1", and "MyBlob2" and you specify "-Prefix My*", the cmdlet returns no blobs. However, if you specify "-Prefix My", the cmdlet returns "My", "MyBlob1", and "MyBlob2". - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - Blob - - Specifies a name or name pattern, which can be used for a wildcard search. If no blob name is specified, the cmdlet lists all the blobs in the specified container. If a value is specified for this parameter, the cmdlet lists all blobs with names that match this parameter. This parameter supports wildcards anywhere in the string. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Specifies the name of the container. - - System.String - - System.String - - - None - - - Context - - Specifies the Azure storage account from which you want to get a list of blobs. You can use the New-AzStorageContext cmdlet to create a storage context. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Specifies a continuation token for the blob list. Use this parameter and the MaxCount parameter to list blobs in multiple batches. - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeDeleted - - Include Deleted Blob, by default get blob won't include deleted blob. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IncludeTag - - Include blob tags, by default get blob won't include blob tags. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IncludeVersion - - Blob versions will be listed only if this parameter is present, by default get blob won't include blob versions. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - MaxCount - - Specifies the maximum number of objects that this cmdlet returns. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Prefix - - Specifies a prefix for the blob names that you want to get. This parameter does not support using regular expressions or wildcard characters to search. This means that if the container has only blobs named "My", "MyBlob1", and "MyBlob2" and you specify "-Prefix My*", the cmdlet returns no blobs. However, if you specify "-Prefix My", the cmdlet returns "My", "MyBlob1", and "MyBlob2". - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SnapshotTime - - Blob SnapshotTime - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - VersionId - - Blob VersionId - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageBlob - - - - - - - - - - - - - - -------------- Example 1: Get a blob by blob name -------------- - Get-AzStorageBlob -Container "ContainerName" -Blob blob* - - This command uses a blob name and wildcard to get a blob. - - - - - - -- Example 2: Get blobs in a container by using the pipeline -- - Get-AzStorageContainer -Name container* | Get-AzStorageBlob -IncludeDeleted - -Container Uri: https://storageaccountname.blob.core.windows.net/container1 - -Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted ----- -------- ------ ----------- ------------ ---------- ------------ --------- -test1 BlockBlob 403116 application/octet-stream 2017-11-08 07:53:19Z 2017-11-08 08:19:32Z True -test1 BlockBlob 403116 application/octet-stream 2017-11-08 09:00:29Z True -test2 BlockBlob 403116 application/octet-stream 2017-11-08 07:53:00Z False - - This command uses the pipeline to get all blobs (include blobs in Deleted status) in a container. - - - - - - ------------- Example 3: Get blobs by name prefix ------------- - Get-AzStorageBlob -Container "ContainerName" -Prefix "blob" - - This command uses a name prefix to get blobs. - - - - - - ---------- Example 4: List blobs in multiple batches ---------- - $MaxReturn = 10000 -$ContainerName = "abc" -$Total = 0 -$Token = $Null -do - { - $Blobs = Get-AzStorageBlob -Container $ContainerName -MaxCount $MaxReturn -ContinuationToken $Token - $Total += $Blobs.Count - if($Blobs.Length -le 0) { Break;} - $Token = $Blobs[$blobs.Count -1].ContinuationToken; - } - While ($null -ne $Token) -Echo "Total $Total blobs in container $ContainerName" - - This example uses the MaxCount and ContinuationToken parameters to list Azure Storage blobs in multiple batches. The first four commands assign values to variables to use in the example. The fifth command specifies a Do-While statement that uses the Get-AzStorageBlob cmdlet to get blobs. The statement includes the continuation token stored in the $Token variable. $Token changes value as the loop runs. For more information, type `Get-Help About_Do`. The final command uses the Echo command to display the total. - - - - - - - Example 5: Get all blobs in a container include blob version - - Get-AzStorageBlob -Container "containername" -IncludeVersion - -AccountName: storageaccountname, ContainerName: containername - -Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId ----- -------- ------ ----------- ------------ ---------- ------------ --------- --------- -blob1 BlockBlob 2097152 application/octet-stream 2020-07-06 06:56:06Z Hot False 2020-07-06T06:56:06.2432658Z -blob1 BlockBlob 2097152 application/octet-stream 2020-07-06 06:56:06Z Hot 2020-07-06T06:56:06.8588431Z False -blob1 BlockBlob 2097152 application/octet-stream 2020-07-06 06:56:06Z Hot False 2020-07-06T06:56:06.8598431Z * -blob2 BlockBlob 2097152 application/octet-stream 2020-07-03 16:19:16Z Hot False 2020-07-03T16:19:16.2883167Z -blob2 BlockBlob 2097152 application/octet-stream 2020-07-03 16:19:35Z Hot False 2020-07-03T16:19:35.2381110Z * - - This command gets all blobs in a container include blob version. - - - - - - ------------- Example 6: Get a single blob version ------------- - Get-AzStorageBlob -Container "containername" -Blob blob2 -VersionId "2020-07-03T16:19:16.2883167Z" - -AccountName: storageaccountname, ContainerName: containername - -Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId ----- -------- ------ ----------- ------------ ---------- ------------ --------- --------- -blob2 BlockBlob 2097152 application/octet-stream 2020-07-03 16:19:16Z Hot False 2020-07-03T16:19:16.2883167Z - - This command gets a single blobs verion with VersionId. - - - - - - ------------ Example 7: Get a single blob snapshot ------------ - Get-AzStorageBlob -Container "containername" -Blob blob1 -SnapshotTime "2020-07-06T06:56:06.8588431Z" - -AccountName: storageaccountname, ContainerName: containername - -Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId ----- -------- ------ ----------- ------------ ---------- ------------ --------- --------- -blob1 BlockBlob 2097152 application/octet-stream 2020-07-06 06:56:06Z Hot 2020-07-06T06:56:06.8588431Z False - - This command gets a single blobs snapshot with SnapshotTime. - - - - - - ------------ Example 8: Get blob include blob tags ------------ - $blobs = Get-AzStorageBlob -Container "containername" -IncludeTag - -$blobs - - AccountName: storageaccountname, ContainerName: containername - -Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId ----- -------- ------ ----------- ------------ ---------- ------------ --------- --------- -testblob BlockBlob 2097152 application/octet-stream 2020-07-23 09:35:02Z Hot False 2020-07-23T09:35:02.8527357Z * -testblob2 BlockBlob 2097152 application/octet-stream 2020-07-23 09:35:04Z Hot False 2020-07-23T09:35:04.0856187Z * - - -$blobs[0].Tags -Name Value ----- ----- -tag1 value1 -tag2 value2 - - This command lists blobs from a container with blob tags, and show the tags of the first blob. - - - - - - ----- Example 9: Get a single blob with blob tag condition ----- - Get-AzStorageBlob -Container "containername" -Blob testblob -TagCondition """tag1""='value1'" - -AccountName: storageaccountname, ContainerName: containername - -Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId ----- -------- ------ ----------- ------------ ---------- ------------ --------- --------- -testblob BlockBlob 2097152 application/octet-stream 2020-07-23 09:35:02Z Hot False 2020-07-23T09:35:02.8527357Z * - - This command gets a single blob with blob tag condition. The cmdlet will only success when the blob contains a tag with name "tag1" and value "value1", else the cmdlet will fail with error code 412. - - - - - - Example 10: Get blob properties (example: ImmutabilityPolicy) of a single blob - $blobProperties = (Get-AzStorageBlob -Container "ContainerName" -Blob "blob" -Context $ctx).BlobProperties -$blobProperties.ImmutabilityPolicy - -ExpiresOn PolicyMode ---------- ---------- -9/17/2024 2:49:32 AM +00:00 Unlocked - - This example command gets the immutability property of a single blob. You can get a detailed list of blob prTooperties from the BlobProperties property, including but not limited to: LastModified, ContentLength, ContentHash, BlobType, LeaseState, AccessTier, ETag, ImmutabilityPolicy, etc... To list multiple blobs (execute the cmdlet without blob name), use ListBlobProperties.Properties instead of BlobProperties for better performance. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageblob - - - Get-AzStorageBlobContent - - - - Remove-AzStorageBlob - - - - Set-AzStorageBlobContent - - - - - - - Get-AzStorageBlobByTag - Get - AzStorageBlobByTag - - Lists blobs in a storage account across containers, with a blob tag filter sql expression. - - - - The Get-AzStorageBlobByTag cmdlet lists blobs in a storage account across containers, with a blob tag filter sql expression. - - - - Get-AzStorageBlobByTag - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Container name, specify this parameter to only return all blobs whose tags match a search expression in the container. - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Continuation Token. - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - GetBlobProperty - - As the blobs get by tag don't contain blob proeprties, specify tis parameter to get blob properties with an additional request on each blob. - - - System.Management.Automation.SwitchParameter - - - False - - - MaxCount - - The max count of the blobs that can return. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagFilterSqlExpression - - Filters the result set to only include blobs whose tags match the specified expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/find-blobs-by-tags#remarks. - - System.String - - System.String - - - None - - - - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Container name, specify this parameter to only return all blobs whose tags match a search expression in the container. - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Continuation Token. - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - GetBlobProperty - - As the blobs get by tag don't contain blob proeprties, specify tis parameter to get blob properties with an additional request on each blob. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - MaxCount - - The max count of the blobs that can return. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagFilterSqlExpression - - Filters the result set to only include blobs whose tags match the specified expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/find-blobs-by-tags#remarks. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageBlob - - - - - - - - - - - - - - Example 1: List all blobs match a specific blob tag, across containers. - Get-AzStorageBlobByTag -TagFilterSqlExpression """tag1""='value1'" -Context $ctx - -AccountName: storageaccountname, ContainerName: containername1 - -Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId ----- -------- ------ ----------- ------------ ---------- ------------ --------- --------- -testblob False -testblob2 False - - AccountName: storageaccountname, ContainerName: containername2 - -Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId ----- -------- ------ ----------- ------------ ---------- ------------ --------- --------- -testblob3 False -testblob4 False - - This command lists all blobs in a storage account, which contains a tag with name "tag1" and value "value1". - - - - - - Example 2: List blobs in a specific container and match a specific blob tag - Get-AzStorageBlobByTag -Container 'containername' -TagFilterSqlExpression """tag1""='value1'" -Context $ctx - -AccountName: storageaccountname, ContainerName: containername - -Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId ----- -------- ------ ----------- ------------ ---------- ------------ --------- --------- -test1 False -test2 False - - This command lists blobs in a container and match a specific blob tag. - - - - - - Example 3: List all blobs match a specific blob tag, across containers, and get the blob properties. - Get-AzStorageBlobByTag -TagFilterSqlExpression """tag1""='value1'" -GetBlobProperty - -AccountName: storageaccountname, ContainerName: containername1 - -Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId ----- -------- ------ ----------- ------------ ---------- ------------ --------- --------- -testblob BlockBlob 2097152 application/octet-stream 2020-07-23 09:35:02Z Hot False 2020-07-23T09:35:02.8527357Z * -testblob2 BlockBlob 1048012 application/octet-stream 2020-07-23 09:35:05Z Hot False 2020-07-23T09:35:05.2504530Z * - - AccountName: storageaccountname, ContainerName: containername2 - -Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId ----- -------- ------ ----------- ------------ ---------- ------------ --------- --------- -testblob3 BlockBlob 100 application/octet-stream 2020-07-01 09:55:14Z Hot False 2020-07-01T09:55:14.6507341Z * -testblob4 BlockBlob 2024 application/octet-stream 2020-07-01 09:42:11Z Hot False 2020-07-01T09:42:11.4283807Z * - - This command lists all blobs in a storage account, which contains a tag with name "tag1" and value "value1", and get the blob properties. Please note, to get blob properties with parameter -GetBlobProperty, each blob will need an addtional request, so the cmdlet runs show when there are many blobs. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageblobbytag - - - - - - Get-AzStorageBlobContent - Get - AzStorageBlobContent - - Downloads a storage blob. - - - - The Get-AzStorageBlobContent cmdlet downloads the specified storage blob. If the blob name is not valid for the local computer, this cmdlet automatically resolves it if it is possible. - - - - Get-AzStorageBlobContent - - AbsoluteUri - - Blob uri to download from. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background. - - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - Specifies the location to store the downloaded file. - - System.String - - System.String - - - None - - - Force - - Overwrites an existing file without confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzStorageBlobContent - - Blob - - Specifies the name of the blob to be downloaded. - - System.String - - System.String - - - None - - - Container - - Specifies the name of container that has the blob you want to download. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background. - - - System.Management.Automation.SwitchParameter - - - False - - - CheckMd5 - - Specifies whether to check the Md5 sum for the downloaded file. - - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage account from which you want to download blob content. You can use the New-AzStorageContext cmdlet to create a storage context. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - Specifies the location to store the downloaded file. - - System.String - - System.String - - - None - - - Force - - Overwrites an existing file without confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzStorageBlobContent - - Blob - - Specifies the name of the blob to be downloaded. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background. - - - System.Management.Automation.SwitchParameter - - - False - - - CheckMd5 - - Specifies whether to check the Md5 sum for the downloaded file. - - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlobContainer - - Specifies a CloudBlobContainer object from the Azure storage client library. You can create it or use the Get-AzStorageContainer cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage account from which you want to download blob content. You can use the New-AzStorageContext cmdlet to create a storage context. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - Specifies the location to store the downloaded file. - - System.String - - System.String - - - None - - - Force - - Overwrites an existing file without confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzStorageBlobContent - - AsJob - - Run cmdlet in the background. - - - System.Management.Automation.SwitchParameter - - - False - - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - CheckMd5 - - Specifies whether to check the Md5 sum for the downloaded file. - - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlob - - Specifies a cloud blob. To obtain a CloudBlob object, use the Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage account from which you want to download blob content. You can use the New-AzStorageContext cmdlet to create a storage context. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - Specifies the location to store the downloaded file. - - System.String - - System.String - - - None - - - Force - - Overwrites an existing file without confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AbsoluteUri - - Blob uri to download from. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Blob - - Specifies the name of the blob to be downloaded. - - System.String - - System.String - - - None - - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - CheckMd5 - - Specifies whether to check the Md5 sum for the downloaded file. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlob - - Specifies a cloud blob. To obtain a CloudBlob object, use the Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - CloudBlobContainer - - Specifies a CloudBlobContainer object from the Azure storage client library. You can create it or use the Get-AzStorageContainer cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Specifies the name of container that has the blob you want to download. - - System.String - - System.String - - - None - - - Context - - Specifies the Azure storage account from which you want to download blob content. You can use the New-AzStorageContext cmdlet to create a storage context. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - Specifies the location to store the downloaded file. - - System.String - - System.String - - - None - - - Force - - Overwrites an existing file without confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Storage.Blob.CloudBlob - - - - - - - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageBlob - - - - - - - - - * If the blob name is invalid for local computer, this cmdlet autoresolves it, if it is possible. - - - - - ----------- Example 1: Download blob content by name ----------- - Get-AzStorageBlobContent -Container "ContainerName" -Blob "Blob" -Destination "C:\test\" - - This command downloads a blob by name. - - - - - - ----- Example 2: Download blob content using the pipeline ----- - Get-AzStorageBlob -Container containername -Blob blobname | Get-AzStorageBlobContent - - This command uses the pipeline to find and download blob content. - - - - - - Example 3: Download blob content using the pipeline and a wildcard character - Get-AzStorageContainer container* | Get-AzStorageBlobContent -Blob "cbox.exe" -Destination "C:\test" - - This example uses the asterisk wildcard character and the pipeline to find and download blob content. - - - - - - Example 4: Get a blob object and save it in a variable, then download blob content with the blob object - $blob = Get-AzStorageBlob -Container containername -Blob blobname -Get-AzStorageBlobContent -CloudBlob $blob.ICloudBlob -Destination "C:\test" - - This example first get a blob object and save it in a variable, then download blob content with the blob object. - - - - - - ------- Example 5: Download a blob content with blob Uri ------- - Get-AzStorageBlobContent -Uri $blobUri -Destination "C:\test" -Force - - This example will download a blob content with Uri, the Uri can be a Uri with Sas token. If the blob is on a managed disk account, and server requires a bearer token besides Sas Uri to download, the cmdlet will try to generate a bearer token with server returned audience and the login AAD user credentail, then download blob with both Sas Uri and bearer token. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageblobcontent - - - Set-AzStorageBlobContent - - - - Get-AzStorageBlob - - - - Remove-AzStorageBlob - - - - - - - Get-AzStorageBlobCopyState - Get - AzStorageBlobCopyState - - Gets the copy status of an Azure Storage blob. - - - - The Get-AzStorageBlobCopyState cmdlet gets the copy status of an Azure Storage blob. It should run on the copy destination blob. - - - - Get-AzStorageBlobCopyState - - Blob - - Specifies the name of a blob. This cmdlet gets the state of the blob copy operation for the Azure Storage blob that this parameter specifies. - - System.String - - System.String - - - None - - - Container - - Specifies the name of a container. This cmdlet gets the copy status for a blob in the container that this parameter specifies. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - WaitForComplete - - Indicates that this cmdlet waits for the copy to finish. If you do not specify this parameter, this cmdlet returns a result immediately. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzStorageBlobCopyState - - Blob - - Specifies the name of a blob. This cmdlet gets the state of the blob copy operation for the Azure Storage blob that this parameter specifies. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlobContainer - - Specifies a CloudBlobContainer object from the Azure Storage Client library. This cmdlet gets the copy status of a blob in the container that this parameter specifies. To obtain a CloudBlobContainer object, use the Get-AzStorageContainer cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - WaitForComplete - - Indicates that this cmdlet waits for the copy to finish. If you do not specify this parameter, this cmdlet returns a result immediately. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzStorageBlobCopyState - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlob - - Specifies a CloudBlob object from Azure Storage Client library. To obtain a CloudBlob object, use the Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - WaitForComplete - - Indicates that this cmdlet waits for the copy to finish. If you do not specify this parameter, this cmdlet returns a result immediately. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Blob - - Specifies the name of a blob. This cmdlet gets the state of the blob copy operation for the Azure Storage blob that this parameter specifies. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlob - - Specifies a CloudBlob object from Azure Storage Client library. To obtain a CloudBlob object, use the Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - CloudBlobContainer - - Specifies a CloudBlobContainer object from the Azure Storage Client library. This cmdlet gets the copy status of a blob in the container that this parameter specifies. To obtain a CloudBlobContainer object, use the Get-AzStorageContainer cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Specifies the name of a container. This cmdlet gets the copy status for a blob in the container that this parameter specifies. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - WaitForComplete - - Indicates that this cmdlet waits for the copy to finish. If you do not specify this parameter, this cmdlet returns a result immediately. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Storage.Blob.CloudBlob - - - - - - - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.Azure.Storage.Blob.CopyState - - - - - - - - - - - - - - ----------- Example 1: Get the copy status of a blob ----------- - Get-AzStorageBlobCopyState -Blob "ContosoPlanning2015" -Container "ContosoUploads" - - This command gets the copy status of the blob named ContosoPlanning2015 in the container ContosoUploads. - - - - - - Example 2: Get the copy status for of a blob by using the pipeline - Get-AzStorageBlob -Blob "ContosoPlanning2015" -Container "ContosoUploads" | Get-AzStorageBlobCopyState - - This command gets the blob named ContosoPlanning2015 in the container named ContosoUploads by using the Get-AzStorageBlob cmdlet, and then passes the result to the current cmdlet by using the pipeline operator. The Get-AzStorageBlobCopyState cmdlet gets the copy status for that blob. - - - - - - Example 3: Get the copy status for a blob in a container by using the pipeline - Get-AzStorageContainer -Name "ContosoUploads" | Get-AzStorageBlobCopyState -Blob "ContosoPlanning2015" - - This command gets the container named by using the Get-AzStorageBlob cmdlet, and then passes the result to the current cmdlet. The Get-AzStorageContainer cmdlet gets the copy status for the blob named ContosoPlanning2015 in that container. - - - - - - -- Example 4: Start Copy and pipeline to get the copy status -- - $destBlob = Start-AzStorageBlobCopy -SrcContainer "contosouploads" -SrcBlob "ContosoPlanning2015" -DestContainer "contosouploads2" -DestBlob "ContosoPlanning2015_copy" - -$destBlob | Get-AzStorageBlobCopyState - - The first command starts copy blob "ContosoPlanning2015" to "ContosoPlanning2015_copy", and output the destiantion blob object. The second command pipeline the destiantion blob object to Get-AzStorageBlobCopyState, to get blob copy state. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageblobcopystate - - - Start-AzStorageBlobCopy - - - - Stop-AzStorageBlobCopy - - - - - - - Get-AzStorageBlobQueryResult - Get - AzStorageBlobQueryResult - - Applies a simple Structured Query Language (SQL) statement on a blob's contents and save only the queried subset of the data to a local file. - - - - The Get-AzStorageBlobQueryResult cmdlet applies a simple Structured Query Language (SQL) statement on a blob's contents and save the queried subset of the data to a local file. - - - - Get-AzStorageBlobQueryResult - - Blob - - Blob name - - System.String - - System.String - - - None - - - Container - - Container name - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to overwrite the existing file. - - - System.Management.Automation.SwitchParameter - - - False - - - InputTextConfiguration - - The configuration used to handled the query input text. Create configuration object the with New-AzStorageBlobQueryConfig. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.PSBlobQueryTextConfiguration - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.PSBlobQueryTextConfiguration - - - None - - - OutputTextConfiguration - - The configuration used to handled the query output text. Create configuration object the with New-AzStorageBlobQueryConfig. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.PSBlobQueryTextConfiguration - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.PSBlobQueryTextConfiguration - - - None - - - PassThru - - Return whether the specified blob is successfully queried. - - - System.Management.Automation.SwitchParameter - - - False - - - QueryString - - Query string, see more details in: https://learn.microsoft.com/azure/storage/blobs/query-acceleration-sql-reference - - System.String - - System.String - - - None - - - ResultFile - - Local file path to save the query result. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SnapshotTime - - Blob SnapshotTime - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - VersionId - - Blob VersionId - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzStorageBlobQueryResult - - Blob - - Blob name - - System.String - - System.String - - - None - - - BlobContainerClient - - BlobContainerClient Object - - Azure.Storage.Blobs.BlobContainerClient - - Azure.Storage.Blobs.BlobContainerClient - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to overwrite the existing file. - - - System.Management.Automation.SwitchParameter - - - False - - - InputTextConfiguration - - The configuration used to handled the query input text. Create configuration object the with New-AzStorageBlobQueryConfig. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.PSBlobQueryTextConfiguration - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.PSBlobQueryTextConfiguration - - - None - - - OutputTextConfiguration - - The configuration used to handled the query output text. Create configuration object the with New-AzStorageBlobQueryConfig. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.PSBlobQueryTextConfiguration - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.PSBlobQueryTextConfiguration - - - None - - - PassThru - - Return whether the specified blob is successfully queried. - - - System.Management.Automation.SwitchParameter - - - False - - - QueryString - - Query string, see more details in: https://learn.microsoft.com/azure/storage/blobs/query-acceleration-sql-reference - - System.String - - System.String - - - None - - - ResultFile - - Local file path to save the query result. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SnapshotTime - - Blob SnapshotTime - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - VersionId - - Blob VersionId - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzStorageBlobQueryResult - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to overwrite the existing file. - - - System.Management.Automation.SwitchParameter - - - False - - - InputTextConfiguration - - The configuration used to handled the query input text. Create configuration object the with New-AzStorageBlobQueryConfig. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.PSBlobQueryTextConfiguration - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.PSBlobQueryTextConfiguration - - - None - - - OutputTextConfiguration - - The configuration used to handled the query output text. Create configuration object the with New-AzStorageBlobQueryConfig. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.PSBlobQueryTextConfiguration - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.PSBlobQueryTextConfiguration - - - None - - - PassThru - - Return whether the specified blob is successfully queried. - - - System.Management.Automation.SwitchParameter - - - False - - - QueryString - - Query string, see more details in: https://learn.microsoft.com/azure/storage/blobs/query-acceleration-sql-reference - - System.String - - System.String - - - None - - - ResultFile - - Local file path to save the query result. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Blob - - Blob name - - System.String - - System.String - - - None - - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - BlobContainerClient - - BlobContainerClient Object - - Azure.Storage.Blobs.BlobContainerClient - - Azure.Storage.Blobs.BlobContainerClient - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Container name - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to overwrite the existing file. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputTextConfiguration - - The configuration used to handled the query input text. Create configuration object the with New-AzStorageBlobQueryConfig. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.PSBlobQueryTextConfiguration - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.PSBlobQueryTextConfiguration - - - None - - - OutputTextConfiguration - - The configuration used to handled the query output text. Create configuration object the with New-AzStorageBlobQueryConfig. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.PSBlobQueryTextConfiguration - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.PSBlobQueryTextConfiguration - - - None - - - PassThru - - Return whether the specified blob is successfully queried. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - QueryString - - Query string, see more details in: https://learn.microsoft.com/azure/storage/blobs/query-acceleration-sql-reference - - System.String - - System.String - - - None - - - ResultFile - - Local file path to save the query result. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SnapshotTime - - Blob SnapshotTime - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - VersionId - - Blob VersionId - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - - - - - - Azure.Storage.Blobs.BlobContainerClient - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - ------------------- Example 1: Query a blob ------------------- - $inputconfig = New-AzStorageBlobQueryConfig -AsCsv -HasHeader - -$outputconfig = New-AzStorageBlobQueryConfig -AsJson - -$queryString = "SELECT * FROM BlobStorage WHERE Name = 'a'" - -$result = Get-AzStorageBlobQueryResult -Container $containerName -Blob $blobName -QueryString $queryString -ResultFile "c:\resultfile.json" -InputTextConfiguration $inputconfig -OutputTextConfiguration $outputconfig -Context $ctx - -$result - -BytesScanned FailureCount BlobQueryError ------------- ------------ -------------- - 449 0 - - This command querys a blob succsssfully with input config as csv, and output config as json, and save the output to local file "c:\resultfile.json". - - - - - - --------------- Example 2: Query a blob snapshot --------------- - $blob = Get-AzStorageBlob -Container $containerName -Blob $blobName -SnapshotTime "2020-07-29T11:08:21.1097874Z" -Context $ctx - -$inputconfig = New-AzStorageBlobQueryConfig -AsCsv -ColumnSeparator "," -QuotationCharacter """" -EscapeCharacter "\" -RecordSeparator "`n" -HasHeader - -$outputconfig = New-AzStorageBlobQueryConfig -AsJson -RecordSeparator "`n" - -$queryString = "SELECT * FROM BlobStorage WHERE _1 LIKE '1%%'" - -$result = $blob | Get-AzStorageBlobQueryResult -QueryString $queryString -ResultFile $localFilePath -InputTextConfiguration $inputconfig -OutputTextConfiguration $outputconfig - -$result - -BytesScanned FailureCount BlobQueryError ------------- ------------ -------------- - 187064971 1 {ParseError} - - - -$result.BlobQueryError - -Name Description IsFatal Position ----- ----------- ------- -------- -ParseError Unexpected token '1' at [byte: 3077737]. Expecting token ','. True 7270632 - - This command first gets a blob object for blob snapshot, then queries the blob snapshot and show the result include query error. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/Az.storage/get-azstorageblobqueryresult - - - - - - Get-AzStorageBlobTag - Get - AzStorageBlobTag - - Get blob tags of a specific blob. - - - - The Get-AzStorageBlobTag gets blob tags of a specific blob. - - - - Get-AzStorageBlobTag - - Blob - - Blob name - - System.String - - System.String - - - None - - - Container - - Container name - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzStorageBlobTag - - Blob - - Blob name - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlobContainer - - CloudBlobContainer Object - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzStorageBlobTag - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Blob - - Blob name - - System.String - - System.String - - - None - - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlobContainer - - CloudBlobContainer Object - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Container name - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - - - - - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Collections.Hashtable - - - - - - - - - - - - - - --------- Example 1: Get blob tags on a specific blob --------- - Get-AzStorageBlobTag -Container "containername" -Blob testblob - -Name Value ----- ----- -tag1 value1 -tag2 value2 - - This command gets blob tags on a specific blob. - - - - - - Example 2: Get blob tags on a specific blob with tag condition - Get-AzStorageBlobTag -Container "containername" -Blob testblob -TagCondition """tag1""='value1'" - -Name Value ----- ----- -tag1 value1 -tag2 value2 - - This command gets blob tags on a specific blob with tag condition. The cmdlet will only success when the blob contains a tag with name "tag1" and value "value1", else the cmdlet will fail with error code 412. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageblobtag - - - - - - Get-AzStorageContainer - Get - AzStorageContainer - - Lists the storage containers. - - - - The Get-AzStorageContainer cmdlet lists the storage containers associated with the storage account in Azure. - - - - Get-AzStorageContainer - - Name - - Specifies the container name. If container name is empty, the cmdlet lists all the containers. Otherwise, it lists all containers that match the specified name or the regular name pattern. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the storage context. To create it, you can use the New-AzStorageContext cmdlet. The container permissions won't be retrieved when you use a storage context created from SAS Token, because query container permissions requires Storage account key permission. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Specifies a continuation token for the blob list. - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeDeleted - - Include deleted containers, by default list containers won't include deleted containers - - - System.Management.Automation.SwitchParameter - - - False - - - MaxCount - - Specifies the maximum number of objects that this cmdlet returns. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - Get-AzStorageContainer - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the storage context. To create it, you can use the New-AzStorageContext cmdlet. The container permissions won't be retrieved when you use a storage context created from SAS Token, because query container permissions requires Storage account key permission. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Specifies a continuation token for the blob list. - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeDeleted - - Include deleted containers, by default list containers won't include deleted containers - - - System.Management.Automation.SwitchParameter - - - False - - - MaxCount - - Specifies the maximum number of objects that this cmdlet returns. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Prefix - - Specifies a prefix used in the name of the container or containers you want to get. You can use this to find all containers that start with the same string, such as "my" or "test". - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the storage context. To create it, you can use the New-AzStorageContext cmdlet. The container permissions won't be retrieved when you use a storage context created from SAS Token, because query container permissions requires Storage account key permission. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Specifies a continuation token for the blob list. - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeDeleted - - Include deleted containers, by default list containers won't include deleted containers - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - MaxCount - - Specifies the maximum number of objects that this cmdlet returns. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Name - - Specifies the container name. If container name is empty, the cmdlet lists all the containers. Otherwise, it lists all containers that match the specified name or the regular name pattern. - - System.String - - System.String - - - None - - - Prefix - - Specifies a prefix used in the name of the container or containers you want to get. You can use this to find all containers that start with the same string, such as "my" or "test". - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageContainer - - - - - - - - - - - - - - -------- Example 1: Get Azure Storage container by name -------- - Get-AzStorageContainer -Name container* - - This example uses a wildcard character to return a list of all containers with a name that starts with container. - - - - - - Example 2: Get Azure Storage container by container name prefix - Get-AzStorageContainer -Prefix "container" - - This example uses the Prefix parameter to return a list of all containers with a name that starts with container. - - - - - - Example 3: List Azure Storage container, include deleted containers - $containers = Get-AzStorageContainer -IncludeDeleted -Context $ctx - -$containers - - Storage Account Name: storageaccountname - -Name PublicAccess LastModified IsDeleted VersionId ----- ------------ ------------ --------- --------- -testcon Off 8/28/2020 10:18:13 AM +00:00 -testcon2 9/4/2020 12:52:37 PM +00:00 True 01D67D248986B6DA - -$c[1].BlobContainerProperties - -LastModified : 9/4/2020 12:52:37 PM +00:00 -LeaseStatus : Unlocked -LeaseState : Expired -LeaseDuration : -PublicAccess : -HasImmutabilityPolicy : False -HasLegalHold : False -DefaultEncryptionScope : $account-encryption-key -PreventEncryptionScopeOverride : False -DeletedOn : 9/8/2020 4:29:59 AM +00:00 -RemainingRetentionDays : 299 -ETag : "0x8D850D167059285" -Metadata : {} - - This example lists all containers of a storage account, include deleted containers. Then show the deleted container properties, include : DeletedOn, RemainingRetentionDays. Deleted containers will only exist after enabled Container softdelete with Enable-AzStorageBlobDeleteRetentionPolicy. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstoragecontainer - - - New-AzStorageContainer - - - - Remove-AzStorageContainer - - - - Set-AzStorageContainerAcl - - - - - - - Get-AzStorageContainerStoredAccessPolicy - Get - AzStorageContainerStoredAccessPolicy - - Gets the stored access policy or policies for an Azure storage container. - - - - The Get-AzStorageContainerStoredAccessPolicy cmdlet lists the stored access policy or policies for an Azure storage container. - - - - Get-AzStorageContainerStoredAccessPolicy - - Container - - Specifies the name of your Azure storage container. - - System.String - - System.String - - - None - - - Policy - - Specifies the Azure stored access policy. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage context. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Specifies the name of your Azure storage container. - - System.String - - System.String - - - None - - - Context - - Specifies the Azure storage context. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Policy - - Specifies the Azure stored access policy. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.Azure.Storage.Blob.SharedAccessBlobPolicy - - - - - - - - - - - - - - - Example 1: Get a stored access policy in a storage container - - Get-AzStorageContainerStoredAccessPolicy -Container "Container07" -Policy "Policy22" - - This command gets the access policy named Policy22 in the storage container named Container07. - - - - - - Example 2: Get all the stored access policies in a storage container - Get-AzStorageContainerStoredAccessPolicy -Container "Container07" - - This command gets all access policies in the storage container named Container07. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstoragecontainerstoredaccesspolicy - - - New-AzStorageContainerStoredAccessPolicy - - - - Remove-AzStorageContainerStoredAccessPolicy - - - - Set-AzStorageContainerStoredAccessPolicy - - - - - - - Get-AzStorageCORSRule - Get - AzStorageCORSRule - - Gets CORS rules for a Storage service type. - - - - The Get-AzStorageCORSRule cmdlet gets Cross-Origin Resource Sharing (CORS) rules for an Azure Storage service type. - - - - Get-AzStorageCORSRule - - ServiceType - - Specifies the Azure Storage service type for which this cmdlet gets CORS rules. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - - - Blob - Table - Queue - File - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ServiceType - - Specifies the Azure Storage service type for which this cmdlet gets CORS rules. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSCorsRule - - - - - - - - - - - - - - ---------- Example 1: Get CORS rules of blob service ---------- - Get-AzStorageCORSRule -ServiceType Blob - - This command gets the CORS rules for the Blob service type. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstoragecorsrule - - - Remove-AzStorageCORSRule - - - - Set-AzStorageCORSRule - - - - - - - Get-AzStorageFile - Get - AzStorageFile - - Lists directories and files for a path. - - - - The Get-AzStorageFile cmdlet lists directories and files for the share or directory that you specify. Specify the Path parameter to get an instance of a directory or file in the specified path. This cmdlet returns AzureStorageFile and AzureStorageDirectory objects. You can use the IsDirectory property to distinguish between folders and files. - - - - Get-AzStorageFile - - ShareName - - Specifies the name of the file share. This cmdlet gets a file or directory from the file share that this parameter specifies. - - System.String - - System.String - - - None - - - Path - - Specifies the path of a folder. If you omit the Path parameter, Get-AzStorageFile lists the directories and files in the specified file share or directory. If you include the Path parameter, Get-AzStorageFile returns an instance of a directory or file in the specified path. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client side time-out interval, in seconds, for one service request. If the previous call fails within the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help mitigate network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a Storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - - System.Management.Automation.SwitchParameter - - - False - - - ExcludeExtendedInfo - - Not include extended file info like timestamps, ETag, attributes, permissionKey in list file and Directory. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service-side timeout interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the Storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - Get-AzStorageFile - - ShareClient - - ShareClient object indicated the share where the files/directories would be listed. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - Path - - Specifies the path of a folder. If you omit the Path parameter, Get-AzStorageFile lists the directories and files in the specified file share or directory. If you include the Path parameter, Get-AzStorageFile returns an instance of a directory or file in the specified path. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client side time-out interval, in seconds, for one service request. If the previous call fails within the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help mitigate network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a Storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExcludeExtendedInfo - - Not include extended file info like timestamps, ETag, attributes, permissionKey in list file and Directory. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service-side timeout interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the Storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - Get-AzStorageFile - - ShareDirectoryClient - - ShareDirectoryClient object indicated the base folder where the files/directories would be listed. - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - Path - - Specifies the path of a folder. If you omit the Path parameter, Get-AzStorageFile lists the directories and files in the specified file share or directory. If you include the Path parameter, Get-AzStorageFile returns an instance of a directory or file in the specified path. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client side time-out interval, in seconds, for one service request. If the previous call fails within the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help mitigate network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a Storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExcludeExtendedInfo - - Not include extended file info like timestamps, ETag, attributes, permissionKey in list file and Directory. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service-side timeout interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the Storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - ClientTimeoutPerRequest - - Specifies the client side time-out interval, in seconds, for one service request. If the previous call fails within the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help mitigate network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a Storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ExcludeExtendedInfo - - Not include extended file info like timestamps, ETag, attributes, permissionKey in list file and Directory. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Path - - Specifies the path of a folder. If you omit the Path parameter, Get-AzStorageFile lists the directories and files in the specified file share or directory. If you include the Path parameter, Get-AzStorageFile returns an instance of a directory or file in the specified path. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the service-side timeout interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the Storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ShareClient - - ShareClient object indicated the share where the files/directories would be listed. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - ShareDirectoryClient - - ShareDirectoryClient object indicated the base folder where the files/directories would be listed. - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - ShareName - - Specifies the name of the file share. This cmdlet gets a file or directory from the file share that this parameter specifies. - - System.String - - System.String - - - None - - - - - - Azure.Storage.Files.Shares.ShareClient - - - - - - - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFile - - - - - - - - - - - - - - ------------ Example 1: List directories in a share ------------ - Get-AzStorageFile -ShareName "ContosoShare06" | Where-Object {$_.GetType().Name -eq "AzureStorageFileDirectory"} - - This command lists only the directories in the share ContosoShare06. It first retrieves both files and directories, passes them to the where operator by using the pipeline operator, then discards any objects whose type is not "AzureStorageFileDirectory". - - - - - - --------------- Example 2: List a File Directory --------------- - Get-AzStorageFile -ShareName "ContosoShare06" -Path "ContosoWorkingFolder" | Get-AzStorageFile - - This command lists the files and folders in the directory ContosoWorkingFolder under the share ContosoShare06. It first gets the directory instance, and then pipelines it to the Get-AzStorageFile cmdlet to list the directory. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstoragefile - - - Get-AzStorageFileContent - - - - New-AzStorageDirectory - - - - Remove-AzStorageDirectory - - - - Remove-AzStorageFile - - - - Set-AzStorageFileContent - - - - - - - Get-AzStorageFileContent - Get - AzStorageFileContent - - Downloads the contents of a file. - - - - The Get-AzStorageFileContent cmdlet downloads the contents of a file, and then saves it to a destination that you specify. This cmdlet does not return the contents of the file. - - - - Get-AzStorageFileContent - - ShareName - - Specifies the name of the file share. This cmdlet downloads the contents of the file in the share this parameter specifies. - - System.String - - System.String - - - None - - - Path - - Specifies the path of a file. This cmdlet gets the contents the file that this parameter specifies. If the file does not exist, this cmdlet returns an error. - - System.String - - System.String - - - None - - - Destination - - Specifies the destination path. This cmdlet downloads the file contents to the location that this parameter specifies. If you specify the path of a file that does not exist, this cmdlet creates that file, and saves the contents in the new file. If you specify a path of a file that already exists and you specify the Force parameter, the cmdlet overwrites the file. If you specify a path of an existing file and you do not specify Force , the cmdlet prompts you before it continues. If you specify the path of a folder, this cmdlet attempts to create a file that has the name of the Azure storage file. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background. - - - System.Management.Automation.SwitchParameter - - - False - - - CheckMd5 - - Specifies whether to check the Md5 sum for the downloaded file. - - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - - System.Management.Automation.SwitchParameter - - - False - - - Force - - If you specify the path of a file that does not exist, this cmdlet creates that file, and saves the contents in the new file. If you specify a path of a file that already exists and you specify the Force parameter, the cmdlet overwrites the file. If you specify a path of an existing file and you do not specify Force , the cmdlet prompts you before it continues. If you specify the path of a folder, this cmdlet attempts to create a file that has the name of the Azure storage file. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns the AzureStorageFile object that it downloads. - - - System.Management.Automation.SwitchParameter - - - False - - - PreserveSMBAttribute - - Keep the source File SMB properties (File Attributtes, File Creation Time, File Last Write Time) in destination File. This parameter is only available on Windows. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzStorageFileContent - - ShareClient - - ShareClient object indicated the share where the file would be downloaded. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - Path - - Specifies the path of a file. This cmdlet gets the contents the file that this parameter specifies. If the file does not exist, this cmdlet returns an error. - - System.String - - System.String - - - None - - - Destination - - Specifies the destination path. This cmdlet downloads the file contents to the location that this parameter specifies. If you specify the path of a file that does not exist, this cmdlet creates that file, and saves the contents in the new file. If you specify a path of a file that already exists and you specify the Force parameter, the cmdlet overwrites the file. If you specify a path of an existing file and you do not specify Force , the cmdlet prompts you before it continues. If you specify the path of a folder, this cmdlet attempts to create a file that has the name of the Azure storage file. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background. - - - System.Management.Automation.SwitchParameter - - - False - - - CheckMd5 - - Specifies whether to check the Md5 sum for the downloaded file. - - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - If you specify the path of a file that does not exist, this cmdlet creates that file, and saves the contents in the new file. If you specify a path of a file that already exists and you specify the Force parameter, the cmdlet overwrites the file. If you specify a path of an existing file and you do not specify Force , the cmdlet prompts you before it continues. If you specify the path of a folder, this cmdlet attempts to create a file that has the name of the Azure storage file. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns the AzureStorageFile object that it downloads. - - - System.Management.Automation.SwitchParameter - - - False - - - PreserveSMBAttribute - - Keep the source File SMB properties (File Attributtes, File Creation Time, File Last Write Time) in destination File. This parameter is only available on Windows. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzStorageFileContent - - ShareDirectoryClient - - ShareDirectoryClient object indicated the cloud directory where the file would be downloaded. - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - Path - - Specifies the path of a file. This cmdlet gets the contents the file that this parameter specifies. If the file does not exist, this cmdlet returns an error. - - System.String - - System.String - - - None - - - Destination - - Specifies the destination path. This cmdlet downloads the file contents to the location that this parameter specifies. If you specify the path of a file that does not exist, this cmdlet creates that file, and saves the contents in the new file. If you specify a path of a file that already exists and you specify the Force parameter, the cmdlet overwrites the file. If you specify a path of an existing file and you do not specify Force , the cmdlet prompts you before it continues. If you specify the path of a folder, this cmdlet attempts to create a file that has the name of the Azure storage file. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background. - - - System.Management.Automation.SwitchParameter - - - False - - - CheckMd5 - - Specifies whether to check the Md5 sum for the downloaded file. - - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - If you specify the path of a file that does not exist, this cmdlet creates that file, and saves the contents in the new file. If you specify a path of a file that already exists and you specify the Force parameter, the cmdlet overwrites the file. If you specify a path of an existing file and you do not specify Force , the cmdlet prompts you before it continues. If you specify the path of a folder, this cmdlet attempts to create a file that has the name of the Azure storage file. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns the AzureStorageFile object that it downloads. - - - System.Management.Automation.SwitchParameter - - - False - - - PreserveSMBAttribute - - Keep the source File SMB properties (File Attributtes, File Creation Time, File Last Write Time) in destination File. This parameter is only available on Windows. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzStorageFileContent - - ShareFileClient - - ShareFileClient object indicated the cloud file to be downloaded. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - Destination - - Specifies the destination path. This cmdlet downloads the file contents to the location that this parameter specifies. If you specify the path of a file that does not exist, this cmdlet creates that file, and saves the contents in the new file. If you specify a path of a file that already exists and you specify the Force parameter, the cmdlet overwrites the file. If you specify a path of an existing file and you do not specify Force , the cmdlet prompts you before it continues. If you specify the path of a folder, this cmdlet attempts to create a file that has the name of the Azure storage file. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background. - - - System.Management.Automation.SwitchParameter - - - False - - - CheckMd5 - - Specifies whether to check the Md5 sum for the downloaded file. - - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - If you specify the path of a file that does not exist, this cmdlet creates that file, and saves the contents in the new file. If you specify a path of a file that already exists and you specify the Force parameter, the cmdlet overwrites the file. If you specify a path of an existing file and you do not specify Force , the cmdlet prompts you before it continues. If you specify the path of a folder, this cmdlet attempts to create a file that has the name of the Azure storage file. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns the AzureStorageFile object that it downloads. - - - System.Management.Automation.SwitchParameter - - - False - - - PreserveSMBAttribute - - Keep the source File SMB properties (File Attributtes, File Creation Time, File Last Write Time) in destination File. This parameter is only available on Windows. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - CheckMd5 - - Specifies whether to check the Md5 sum for the downloaded file. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - Specifies the destination path. This cmdlet downloads the file contents to the location that this parameter specifies. If you specify the path of a file that does not exist, this cmdlet creates that file, and saves the contents in the new file. If you specify a path of a file that already exists and you specify the Force parameter, the cmdlet overwrites the file. If you specify a path of an existing file and you do not specify Force , the cmdlet prompts you before it continues. If you specify the path of a folder, this cmdlet attempts to create a file that has the name of the Azure storage file. - - System.String - - System.String - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Force - - If you specify the path of a file that does not exist, this cmdlet creates that file, and saves the contents in the new file. If you specify a path of a file that already exists and you specify the Force parameter, the cmdlet overwrites the file. If you specify a path of an existing file and you do not specify Force , the cmdlet prompts you before it continues. If you specify the path of a folder, this cmdlet attempts to create a file that has the name of the Azure storage file. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns the AzureStorageFile object that it downloads. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Path - - Specifies the path of a file. This cmdlet gets the contents the file that this parameter specifies. If the file does not exist, this cmdlet returns an error. - - System.String - - System.String - - - None - - - PreserveSMBAttribute - - Keep the source File SMB properties (File Attributtes, File Creation Time, File Last Write Time) in destination File. This parameter is only available on Windows. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ShareClient - - ShareClient object indicated the share where the file would be downloaded. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - ShareDirectoryClient - - ShareDirectoryClient object indicated the cloud directory where the file would be downloaded. - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - ShareFileClient - - ShareFileClient object indicated the cloud file to be downloaded. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - ShareName - - Specifies the name of the file share. This cmdlet downloads the contents of the file in the share this parameter specifies. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Azure.Storage.Files.Shares.ShareClient - - - - - - - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - - - - - - Azure.Storage.Files.Shares.ShareFileClient - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFile - - - - - - - - - - - - - - ----------- Example 1: Download a file from a folder ----------- - Get-AzStorageFileContent -ShareName "ContosoShare06" -Path "ContosoWorkingFolder/CurrentDataFile" - - This command downloads a file that is named CurrentDataFile in the folder ContosoWorkingFolder from the file share ContosoShare06 to current folder. - - - - - - ---- Example 2: Downloads the files under sample file share ---- - Get-AzStorageFile -ShareName sample | Where-Object {$_.GetType().Name -eq "AzureStorageFile"} | Get-AzStorageFileContent - - This example downloads the files under sample file share - - - - - - Example 3: Download an Azure file to a local file, and perserve the Azure File SMB properties (File Attributtes, File Creation Time, File Last Write Time) in the local file. - Get-AzStorageFileContent -ShareName sample -Path "dir1/file1" -Destination $localFilePath -PreserveSMBAttribute - - This example downloads an Azure file to a local file, and perserves the Azure File SMB properties (File Attributtes, File Creation Time, File Last Write Time) in the local file. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstoragefilecontent - - - Get-AzStorageFile - - - - Set-AzStorageFileContent - - - - - - - Get-AzStorageFileCopyState - Get - AzStorageFileCopyState - - Gets the state of a copy operation. - - - - The Get-AzStorageFileCopyState cmdlet gets the state of an Azure Storage file copy operation. It should run on the copy destination file. - - - - Get-AzStorageFileCopyState - - ShareName - - Specifies the name of a share. - - System.String - - System.String - - - None - - - FilePath - - Specifies the path of the file relative to an Azure Storage share. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - WaitForComplete - - Indicates that this cmdlet waits for the copy to finish. If you do not specify this parameter, this cmdlet returns a result immediately. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzStorageFileCopyState - - ShareFileClient - - ShareFileClient object indicated the file to get copy status. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - WaitForComplete - - Indicates that this cmdlet waits for the copy to finish. If you do not specify this parameter, this cmdlet returns a result immediately. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - FilePath - - Specifies the path of the file relative to an Azure Storage share. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ShareFileClient - - ShareFileClient object indicated the file to get copy status. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - ShareName - - Specifies the name of a share. - - System.String - - System.String - - - None - - - WaitForComplete - - Indicates that this cmdlet waits for the copy to finish. If you do not specify this parameter, this cmdlet returns a result immediately. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Azure.Storage.Files.Shares.ShareFileClient - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Storage.Common.PSCopyState - - - - - - - - - - - - - - ---------- Example 1: Get the copy state by file name ---------- - Get-AzStorageFileCopyState -ShareName "ContosoShare" -FilePath "ContosoFile" - - This command gets the state of the copy operation for a file that has the specified name. - - - - - - -- Example 2: Start Copy and pipeline to get the copy status -- - $destfile = Start-AzStorageFileCopy -SrcShareName "contososhare" -SrcFilePath "contosofile" -DestShareName "contososhare2" -destfilepath "contosofile_copy" - -$destfile | Get-AzStorageFileCopyState - - The first command starts copy file "contosofile" to "contosofile_copy", and output the destiantion file object. The second command pipeline the destiantion file object to Get-AzStorageFileCopyState, to get file copy state. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstoragefilecopystate - - - Get-AzStorageFile - - - - New-AzStorageContext - - - - Start-AzStorageFileCopy - - - - Stop-AzStorageFileCopy - - - - - - - Get-AzStorageFileHandle - Get - AzStorageFileHandle - - Lists file handles of a file share, a file directory or a file. - - - - The Get-AzStorageFileHandle cmdlet lists file handles of a file share, or file directory or a file. - - - - Get-AzStorageFileHandle - - ShareName - - Name of the file share where the files/directories would be listed. - - System.String - - System.String - - - None - - - Path - - Path to an existing file/directory. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - - System.Management.Automation.SwitchParameter - - - False - - - Recursive - - List handles Recursively. Only works on File Directory. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - IncludeTotalCount - - Reports the number of objects in the data set (an integer) followed by the objects. If the cmdlet cannot determine the total count, it returns 'Unknown total count'. Currently, this parameter does nothing. - - - System.Management.Automation.SwitchParameter - - - False - - - Skip - - Ignores the first 'n' objects and then gets the remaining objects. - - System.UInt64 - - System.UInt64 - - - None - - - First - - Gets only the first 'n' objects. - - System.UInt64 - - System.UInt64 - - - None - - - - Get-AzStorageFileHandle - - ShareClient - - ShareClient object indicated the share where the files/directories would list File Handles - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - Path - - Path to an existing file/directory. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Recursive - - List handles Recursively. Only works on File Directory. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - IncludeTotalCount - - Reports the number of objects in the data set (an integer) followed by the objects. If the cmdlet cannot determine the total count, it returns 'Unknown total count'. Currently, this parameter does nothing. - - - System.Management.Automation.SwitchParameter - - - False - - - Skip - - Ignores the first 'n' objects and then gets the remaining objects. - - System.UInt64 - - System.UInt64 - - - None - - - First - - Gets only the first 'n' objects. - - System.UInt64 - - System.UInt64 - - - None - - - - Get-AzStorageFileHandle - - ShareDirectoryClient - - ShareDirectoryClient object indicated the base folder where the files/directories would list File Handles - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - Path - - Path to an existing file/directory. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Recursive - - List handles Recursively. Only works on File Directory. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - IncludeTotalCount - - Reports the number of objects in the data set (an integer) followed by the objects. If the cmdlet cannot determine the total count, it returns 'Unknown total count'. Currently, this parameter does nothing. - - - System.Management.Automation.SwitchParameter - - - False - - - Skip - - Ignores the first 'n' objects and then gets the remaining objects. - - System.UInt64 - - System.UInt64 - - - None - - - First - - Gets only the first 'n' objects. - - System.UInt64 - - System.UInt64 - - - None - - - - Get-AzStorageFileHandle - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Recursive - - List handles Recursively. Only works on File Directory. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ShareFileClient - - ShareFileClient object indicated the file to list File Handles. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - IncludeTotalCount - - Reports the number of objects in the data set (an integer) followed by the objects. If the cmdlet cannot determine the total count, it returns 'Unknown total count'. Currently, this parameter does nothing. - - - System.Management.Automation.SwitchParameter - - - False - - - Skip - - Ignores the first 'n' objects and then gets the remaining objects. - - System.UInt64 - - System.UInt64 - - - None - - - First - - Gets only the first 'n' objects. - - System.UInt64 - - System.UInt64 - - - None - - - - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Path - - Path to an existing file/directory. - - System.String - - System.String - - - None - - - Recursive - - List handles Recursively. Only works on File Directory. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ShareClient - - ShareClient object indicated the share where the files/directories would list File Handles - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - ShareDirectoryClient - - ShareDirectoryClient object indicated the base folder where the files/directories would list File Handles - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - ShareFileClient - - ShareFileClient object indicated the file to list File Handles. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - ShareName - - Name of the file share where the files/directories would be listed. - - System.String - - System.String - - - None - - - IncludeTotalCount - - Reports the number of objects in the data set (an integer) followed by the objects. If the cmdlet cannot determine the total count, it returns 'Unknown total count'. Currently, this parameter does nothing. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Skip - - Ignores the first 'n' objects and then gets the remaining objects. - - System.UInt64 - - System.UInt64 - - - None - - - First - - Gets only the first 'n' objects. - - System.UInt64 - - System.UInt64 - - - None - - - - - - Azure.Storage.Files.Shares.ShareClient - - - - - - - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - - - - - - Azure.Storage.Files.Shares.ShareFileClient - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSFileHandle - - - - - - - - - - - - - - Example 1: List all file handles on a file share recursively, and sort by ClientIp and OpenTime - Get-AzStorageFileHandle -ShareName "mysharename" -Recursive | Sort-Object ClientIP,OpenTime - -HandleId Path ClientIp ClientPort OpenTime LastReconnectTime FileId ParentId SessionId ClientName --------- ---- -------- ---------- -------- ----------------- ------ -------- --------- ---------- -28506980357 104.46.105.229 49805 2019-07-29 08:37:36Z 0 0 9297571480349046273 myclientvm -28506980537 dir1 104.46.105.229 49805 2019-07-30 09:28:48Z 10376363910205800448 0 9297571480349046273 myclientvm -28506980538 dir1 104.46.105.229 49805 2019-07-30 09:28:48Z 10376363910205800448 0 9297571480349046273 myclientvm -28582543365 104.46.119.170 51675 2019-07-30 09:29:32Z 0 0 9477733061320772929 myclientvm -28582543375 dir1 104.46.119.170 51675 2019-07-30 09:29:38Z 10376363910205800448 0 9477733061320772929 myclientvm -28582543376 dir1 104.46.119.170 51675 2019-07-30 09:29:38Z 10376363910205800448 0 9477733061320772929 myclientvm - - This command lists file handles on a file share, and sort the output by ClientIp, then by OpenTime. - - - - - - Example 2: List first 2 file handles on a file directory recursively - Get-AzStorageFileHandle -ShareName "mysharename" -Path 'dir1/dir2' -Recursive -First 2 - -HandleId Path ClientIp ClientPort OpenTime LastReconnectTime FileId ParentId SessionId ClientName --------- ---- -------- ---------- -------- ----------------- ------ -------- --------- ---------- -24057151779 dir1/dir2 104.46.105.229 50861 2019-06-18 07:39:23Z 16140971433240035328 11529285414812647424 9549812641162070049 myclientvm -24057151780 dir1/dir2 104.46.105.229 50861 2019-06-18 07:39:23Z 16140971433240035328 11529285414812647424 9549812641162070049 myclientvm - - This command lists first 2 file handles on a file directory recursively . - - - - - - -- Example 3: List the 3rd to the 6th file handles on a file -- - Get-AzStorageFileHandle -ShareName "mysharename" -Path 'dir1/dir2/test.txt' -skip 2 -First 4 - -HandleId Path ClientIp ClientPort OpenTime LastReconnectTime FileId ParentId SessionId ClientName --------- ---- -------- ---------- -------- ----------------- ------ -------- --------- ---------- -24055513248 dir1/dir2/test.txt 104.46.105.229 49817 2019-06-18 08:21:59Z 9223407221226864640 16140971433240035328 9338416139169958321 myclientvm -24055513249 dir1/dir2/test.txt 104.46.105.229 49817 2019-06-18 08:21:59Z 9223407221226864640 16140971433240035328 9338416139169958321 myclientvm -24055513252 dir1/dir2/test.txt 104.46.105.229 49964 2019-06-18 08:22:54Z 9223407221226864640 16140971433240035328 9338416138431762125 myclientvm -24055513253 dir1/dir2/test.txt 104.46.105.229 49964 2019-06-18 08:22:54Z 9223407221226864640 16140971433240035328 9338416138431762125 myclientvm - - This command lists the 3rd to the 6th file handles on a file. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstoragefilehandle - - - - - - Get-AzStorageQueue - Get - AzStorageQueue - - Lists storage queues. - - - - The Get-AzStorageQueue cmdlet lists storage queues associated with an Azure Storage account. - - - - Get-AzStorageQueue - - Name - - Specifies a name. If no name is specified, the cmdlet gets a list of all the queues. If a full or partial name is specified, the cmdlet gets all queues that match the name pattern. - - System.String - - System.String - - - None - - - Context - - Specifies the Azure storage context. You can create it by using the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzStorageQueue - - Context - - Specifies the Azure storage context. You can create it by using the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Prefix - - Specifies a prefix used in the name of the queues you want to get. - - System.String - - System.String - - - None - - - - - - Context - - Specifies the Azure storage context. You can create it by using the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Specifies a name. If no name is specified, the cmdlet gets a list of all the queues. If a full or partial name is specified, the cmdlet gets all queues that match the name pattern. - - System.String - - System.String - - - None - - - Prefix - - Specifies a prefix used in the name of the queues you want to get. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageQueue - - - - - - - - - - - - - - ----------- Example 1: List all Azure Storage queues ----------- - Get-AzStorageQueue - - This command gets a list of all storage queues for the current Storage account. - - - - - - Example 2: List Azure Storage queues using a wildcard character - Get-AzStorageQueue -Name queue* - - This command uses a wildcard character to get a list of storage queues whose name starts with queue. - - - - - - - Example 3: List Azure Storage queues using queue name prefix - - Get-AzStorageQueue -Prefix "queue" - - This example uses the Prefix parameter to get a list of storage queues whose name starts with queue. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstoragequeue - - - New-AzStorageQueue - - - - Remove-AzStorageQueue - - - - - - - Get-AzStorageQueueStoredAccessPolicy - Get - AzStorageQueueStoredAccessPolicy - - Gets the stored access policy or policies for an Azure storage queue. - - - - The Get-AzStorageQueueStoredAccessPolicy cmdlet lists the stored access policy or policies for an Azure storage queue. - - - - Get-AzStorageQueueStoredAccessPolicy - - Queue - - Specifies the Azure storage queue name. - - System.String - - System.String - - - None - - - Policy - - Specifies a stored access policy, which includes the permissions for this Shared Access Signature (SAS) token. - - System.String - - System.String - - - None - - - Context - - Specifies the Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - Context - - Specifies the Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Policy - - Specifies a stored access policy, which includes the permissions for this Shared Access Signature (SAS) token. - - System.String - - System.String - - - None - - - Queue - - Specifies the Azure storage queue name. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Management.Automation.PSObject - - - - - - - - - - - - - - ------ Example 1: Get a stored access policy in the queue ------ - Get-AzStorageQueueStoredAccessPolicy -Queue "MyQueue" -Policy "Policy12" - - This command gets the access policy named Policy12 in the storage queue named MyQueue. - - - - - - ---- Example 2: Get all stored access policies in the queue ---- - Get-AzStorageQueueStoredAccessPolicy -Queue "MyQueue" - - This command gets all stored access policies in the queue named MyQueue. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstoragequeuestoredaccesspolicy - - - New-AzStorageQueueStoredAccessPolicy - - - - Remove-AzStorageQueueStoredAccessPolicy - - - - Set-AzStorageQueueStoredAccessPolicy - - - - New-AzStorageContext - - - - - - - Get-AzStorageServiceLoggingProperty - Get - AzStorageServiceLoggingProperty - - Gets logging properties for Azure Storage services. - - - - The Get-AzStorageServiceLoggingProperty cmdlet gets logging properties for Azure Storage services. - - - - Get-AzStorageServiceLoggingProperty - - ServiceType - - Specifies the storage service type. This cmdlet gets the logging properties for the service type that this parameter specifies. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - The value of File is not currently supported. - - - Blob - Table - Queue - File - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServiceType - - Specifies the storage service type. This cmdlet gets the logging properties for the service type that this parameter specifies. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - The value of File is not currently supported. - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.Azure.Storage.Shared.Protocol.LoggingProperties - - - - - - - - - - - - - - ---- Example 1: Get logging properties for the Blob service ---- - Get-AzStorageServiceLoggingProperty -ServiceType Blob - - This command gets logging properties for blob storage. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageserviceloggingproperty - - - New-AzStorageContext - - - - Set-AzStorageServiceLoggingProperty - - - - - - - Get-AzStorageServiceMetricsProperty - Get - AzStorageServiceMetricsProperty - - Gets metrics properties for the Azure Storage service. - - - - The Get-AzStorageServiceMetricsProperty cmdlet gets metrics properties for the Azure Storage service. - - - - Get-AzStorageServiceMetricsProperty - - ServiceType - - Specifies the storage service type. This cmdlet gets the metrics properties for the type that this parameter specifies. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - The value of File is not currently supported. - - - Blob - Table - Queue - File - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - MetricsType - - Specifies a metrics type. This cmdlet gets the Azure Storage service metrics properties for the metrics type that this parameter specifies. The acceptable values for this parameter are: Hour and Minute. - - - Hour - Minute - - Microsoft.WindowsAzure.Commands.Storage.Common.ServiceMetricsType - - Microsoft.WindowsAzure.Commands.Storage.Common.ServiceMetricsType - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - MetricsType - - Specifies a metrics type. This cmdlet gets the Azure Storage service metrics properties for the metrics type that this parameter specifies. The acceptable values for this parameter are: Hour and Minute. - - Microsoft.WindowsAzure.Commands.Storage.Common.ServiceMetricsType - - Microsoft.WindowsAzure.Commands.Storage.Common.ServiceMetricsType - - - None - - - ServiceType - - Specifies the storage service type. This cmdlet gets the metrics properties for the type that this parameter specifies. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - The value of File is not currently supported. - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.Azure.Storage.Shared.Protocol.MetricsProperties - - - - - - - - - - - - - - ---- Example 1: Get metrics properties for the Blob service ---- - Get-AzStorageServiceMetricsProperty -ServiceType Blob -MetricsType Hour - - This command gets metrics properties for blob storage for the Hour metrics type. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageservicemetricsproperty - - - New-AzStorageContext - - - - Set-AzStorageServiceMetricsProperty - - - - - - - Get-AzStorageServiceProperty - Get - AzStorageServiceProperty - - Gets properties for Azure Storage services. - - - - The Get-AzStorageServiceProperty cmdlet gets the properties for Azure Storage services. - - - - Get-AzStorageServiceProperty - - ServiceType - - Specifies the storage service type. This cmdlet gets the logging properties for the service type that this parameter specifies. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - - - Blob - Table - Queue - File - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServiceType - - Specifies the storage service type. This cmdlet gets the logging properties for the service type that this parameter specifies. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSSeriviceProperties - - - - - - - - - - - - - - Example 1: Get Azure Storage services property of the Blob service - Get-AzStorageServiceProperty -ServiceType Blob - -Logging.Version : 1.0 -Logging.LoggingOperations : None -Logging.RetentionDays : -HourMetrics.Version : 1.0 -HourMetrics.MetricsLevel : ServiceAndApi -HourMetrics.RetentionDays : 7 -MinuteMetrics.Version : 1.0 -MinuteMetrics.MetricsLevel : None -MinuteMetrics.RetentionDays : -DeleteRetentionPolicy.Enabled : True -DeleteRetentionPolicy.RetentionDays : 70 -Cors : -DefaultServiceVersion : 2017-07-29 - - This command gets DefaultServiceVersion property of the Blob service. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageserviceproperty - - - - - - Get-AzStorageShare - Get - AzStorageShare - - Gets a list of file shares. - - - - The Get-AzStorageShare cmdlet gets a list of file shares for a storage account. - - - - Get-AzStorageShare - - Prefix - - Specifies the prefix for file shares. This cmdlet gets file shares that match the prefix that this parameter specifies, or no file shares if no file shares match the specified prefix. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeDeleted - - Include deleted shares, by default get share won't include deleted shares - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - Get-AzStorageShare - - Name - - Specifies the name of the file share. This cmdlet gets the file share that this parameter specifies, or nothing if you specify the name of a file share that does not exist. - - System.String - - System.String - - - None - - - SnapshotTime - - SnapshotTime of the file share snapshot to be received. - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SkipGetProperty - - Specify this parameter to only generate a local share object, without get share properties from server. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeDeleted - - Include deleted shares, by default get share won't include deleted shares - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Specifies the name of the file share. This cmdlet gets the file share that this parameter specifies, or nothing if you specify the name of a file share that does not exist. - - System.String - - System.String - - - None - - - Prefix - - Specifies the prefix for file shares. This cmdlet gets file shares that match the prefix that this parameter specifies, or no file shares if no file shares match the specified prefix. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SkipGetProperty - - Specify this parameter to only generate a local share object, without get share properties from server. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - SnapshotTime - - SnapshotTime of the file share snapshot to be received. - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFileShare - - - - - - - - - - - - - - ----------------- Example 1: Get a file share ----------------- - Get-AzStorageShare -Name "ContosoShare06" - - This command gets the file share named ContosoShare06. - - - - - - --- Example 2: Get all file shares that begin with a string --- - Get-AzStorageShare -Prefix "Contoso" - - This command gets all file shares that have names that begin with Contoso. - - - - - - ---- Example 3: Get all file shares in a specified context ---- - $Context = New-AzStorageContext -Local -Get-AzStorageShare -Context $Context - - The first command uses the New-AzStorageContext cmdlet to create a context by using the Local parameter, and then stores that context object in the $Context variable. The second command gets the file shares for the context object stored in $Context. - - - - - - Example 4: Get a file share snapshot with specific share name and SnapshotTime - Get-AzStorageShare -Name "ContosoShare06" -SnapshotTime "6/16/2017 9:48:41 AM +00:00" - - This command gets a file share snapshot with specific share name and SnapshotTime. - - - - - - Example 5: Get a file share object without fetch share properties with OAuth authentication. - New-AzStorageContext -StorageAccountName "myaccountname" -UseConnectedAccount -EnableFileBackupRequestIntent -$share = Get-AzStorageShare -Name "ContosoShare06" -SkipGetProperty -Context $ctx - - This command gets a file share snapshot without get share properties with OAuth authentication. Get share properties with OAuth authentication will fail since the API not support OAuth. So to get share object with OAuth authentication must skip fetch share properties. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageshare - - - New-AzStorageShare - - - - Remove-AzStorageShare - - - - - - - Get-AzStorageShareStoredAccessPolicy - Get - AzStorageShareStoredAccessPolicy - - Gets stored access policies for a Storage share. - - - - The Get-AzStorageShareStoredAccessPolicy cmdlet gets stored access policies for an Azure Storage share. To get a particular policy, specify it by name. - - - - Get-AzStorageShareStoredAccessPolicy - - ShareName - - Specifies the Storage share name for which this cmdlet gets policies. - - System.String - - System.String - - - None - - - Policy - - Specifies the name of the stored access policy that this cmdlet gets. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Policy - - Specifies the name of the stored access policy that this cmdlet gets. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ShareName - - Specifies the Storage share name for which this cmdlet gets policies. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.Azure.Storage.File.SharedAccessFilePolicy - - - - - - - - - - - - - - ------- Example 1: Get a stored access policy in a share ------- - Get-AzStorageShareStoredAccessPolicy -ShareName "ContosoShare" -Policy "GeneralPolicy" - - This command gets a stored access policy named GeneralPolicy in ContosoShare. - - - - - - ---- Example 2: Get all the stored access policies in share ---- - Get-AzStorageShareStoredAccessPolicy -ShareName "ContosoShare" - - This command gets all stored access policies in ContosoShare. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstoragesharestoredaccesspolicy - - - New-AzStorageContext - - - - New-AzStorageShareStoredAccessPolicy - - - - Remove-AzStorageShareStoredAccessPolicy - - - - Set-AzStorageShareStoredAccessPolicy - - - - - - - Get-AzStorageTable - Get - AzStorageTable - - Lists the storage tables. - - - - The Get-AzStorageTable cmdlet lists the storage tables associated with the storage account in Azure. - - - - Get-AzStorageTable - - Name - - Specifies the table name. If the table name is empty, the cmdlet lists all the tables. Otherwise, it lists all tables that match the specified name or the regular name pattern. - - System.String - - System.String - - - None - - - Context - - Specifies the storage context. To create it, you can use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzStorageTable - - Context - - Specifies the storage context. To create it, you can use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Prefix - - Specifies a prefix used in the name of the table or tables you want to get. You can use this to find all tables that start with the same string, such as table. - - System.String - - System.String - - - None - - - - - - Context - - Specifies the storage context. To create it, you can use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Specifies the table name. If the table name is empty, the cmdlet lists all the tables. Otherwise, it lists all tables that match the specified name or the regular name pattern. - - System.String - - System.String - - - None - - - Prefix - - Specifies a prefix used in the name of the table or tables you want to get. You can use this to find all tables that start with the same string, such as table. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageTable - - - - - - - - - - - - - - ----------- Example 1: List all Azure Storage tables ----------- - Get-AzStorageTable - - This command gets all storage tables for a Storage account. - - - - - - Example 2: List Azure Storage tables using a wildcard character - Get-AzStorageTable -Name table* - - This command uses a wildcard character to get storage tables whose name starts with table. - - - - - - - Example 3: List Azure Storage tables using table name prefix - - Get-AzStorageTable -Prefix "table" - - This command uses the Prefix parameter to get storage tables whose name starts with table. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstoragetable - - - New-AzStorageTable - - - - Remove-AzStorageTable - - - - - - - Get-AzStorageTableStoredAccessPolicy - Get - AzStorageTableStoredAccessPolicy - - Gets the stored access policy or policies for an Azure storage table. - - - - The Get-AzStorageTableStoredAccessPolicy cmdlet lists the stored access policy or policies for an Azure storage table. - - - - Get-AzStorageTableStoredAccessPolicy - - Table - - Specifies the Azure storage table name. - - System.String - - System.String - - - None - - - Policy - - Specifies a stored access policy, which includes the permissions for this Shared Access Signature (SAS) token. - - System.String - - System.String - - - None - - - Context - - Specifies the Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - Context - - Specifies the Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Policy - - Specifies a stored access policy, which includes the permissions for this Shared Access Signature (SAS) token. - - System.String - - System.String - - - None - - - Table - - Specifies the Azure storage table name. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Storage.Table.SharedAccessTablePolicy - - - - - - - - - - - - - - --- Example 1: Get a stored access policy in a storage table --- - Get-AzStorageTableStoredAccessPolicy -Table "Table02" -Policy "Policy50" - - This command gets the access policy named Policy50 in the storage table named Table02. - - - - - - - Example 2: Get all stored access policies in a storage table - - Get-AzStorageTableStoredAccessPolicy -Table "Table02" - - This command gets all access policies in the table named Table02. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstoragetablestoredaccesspolicy - - - New-AzStorageTableStoredAccessPolicy - - - - Remove-AzStorageTableStoredAccessPolicy - - - - Set-AzStorageTableStoredAccessPolicy - - - - New-AzStorageContext - - - - - - - Move-AzDataLakeGen2Item - Move - AzDataLakeGen2Item - - Move a file or directory to another a file or directory in same Storage account. - - - - The Move-AzDataLakeGen2Item cmdlet moves a a file or directory to another a file or directory in same Storage account. This cmdlet only works if Hierarchical Namespace is enabled for the Storage account. This kind of account can be created by run "New-AzStorageAccount" cmdlet with "-EnableHierarchicalNamespace $true". - - - - Move-AzDataLakeGen2Item - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Path - - The path in the specified Filesystem that should be move from. Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/' - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestFileSystem - - Dest FileSystem name - - System.String - - System.String - - - None - - - DestPath - - Dest Blob path - - System.String - - System.String - - - None - - - Force - - Force to over write the destination. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Move-AzDataLakeGen2Item - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestFileSystem - - Dest FileSystem name - - System.String - - System.String - - - None - - - DestPath - - Dest Blob path - - System.String - - System.String - - - None - - - Force - - Force to over write the destination. - - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Azure Datalake Gen2 Item Object to move from. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestFileSystem - - Dest FileSystem name - - System.String - - System.String - - - None - - - DestPath - - Dest Blob path - - System.String - - System.String - - - None - - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Force - - Force to over write the destination. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Azure Datalake Gen2 Item Object to move from. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - None - - - Path - - The path in the specified Filesystem that should be move from. Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/' - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - - - - - - - - - - - - ---------- Example 1: Move a fold in same Filesystem ---------- - Move-AzDataLakeGen2Item -FileSystem "filesystem1" -Path "dir1/" -DestFileSystem "filesystem1" -DestPath "dir3/" - -FileSystem Name: filesystem1 - -Path IsDirectory Length LastModified Permissions Owner Group ----- ----------- ------ ------------ ----------- ----- ----- -dir3 True 2020-03-13 13:07:34Z rwxrw-rw- $superuser $superuser - - This command move directory 'dir1' to directory 'dir3' in the same Filesystem. - - - - - - Example 2: Move a file by pipeline, to another Filesystem in the same Storage account without prompt - Get-AzDataLakeGen2Item -FileSystem "filesystem1" -Path "dir1/file1" | Move-AzDataLakeGen2Item -DestFileSystem "filesystem2" -DestPath "dir2/file2" -Force - -FileSystem Name: filesystem2 - -Path IsDirectory Length LastModified Permissions Owner Group ----- ----------- ------ ------------ ----------- ----- ----- -dir2/file2 False 1024 2020-03-23 09:57:33Z rwxrw-rw- $superuser $superuser - - This command move file 'dir1/file1' in 'filesystem1' to file 'dir2/file2' in 'filesystem2' in the same Storage account without prompt. - - - - - - ------------ Example 3: Move an item with Sas token ------------ - $sas = New-AzStorageContainerSASToken -Name $filesystemName -Permission rdw -Context $ctx - -$sasctx = New-AzStorageContext -StorageAccountName $ctx.StorageAccountName -SasToken $sas - -Move-AzDataLakeGen2Item -FileSystem $filesystemName -Path $itempath1 -DestFileSystem $filesystemName -DestPath "$($itempath2)$($sas)" -Context $sasctx - -FileSystem Name: filesystem1 - -Path IsDirectory Length LastModified Permissions Owner Group ----- ----------- ------ ------------ ----------- ----- ----- -dir2/file1 False 1024 2021-03-23 09:57:33Z rwxrw-rw- $superuser $superuser - - This first command creates a Sas token with rdw permission, the second command creates a Storage context from the Sas token, the 3rd command moves an item with the Sas token. This example use same Sastoken with rdw permission on both source and destication, if use 2 SAS token for source and destication, source need permission rd, destication need permission w. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/move-azdatalakegen2item - - - - - - New-AzDataLakeGen2Item - New - AzDataLakeGen2Item - - Create a file or directory in a filesystem. - - - - The New-AzDataLakeGen2Item cmdlet creates a file or directory in a Filesystem in an Azure storage account. This cmdlet only works if Hierarchical Namespace is enabled for the Storage account. This kind of account can be created by run "New-AzStorageAccount" cmdlet with "-EnableHierarchicalNamespace $true". - - - - New-AzDataLakeGen2Item - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Path - - The path in the specified Filesystem that should be create. Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/' - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Directory - - Indicates that this new item is a directory and not a file. - - - System.Management.Automation.SwitchParameter - - - False - - - Force - - If passed then new item is created without any prompt - - - System.Management.Automation.SwitchParameter - - - False - - - Metadata - - Specifies metadata for the created directory or file. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Permission - - Sets POSIX access permissions for the file owner, the file owning group, and others. Each class may be granted read, write, or execute permission. Symbolic (rwxrw-rw-) is supported. The sticky bit is also supported and its represented either by the letter t or T in the final character-place depending on whether the execution bit for the others category is set or unset respectively, absence of t or T indicates sticky bit not set. - - System.String - - System.String - - - None - - - Property - - Specifies properties for the created directory or file. The supported properties for file are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage, ContentMD5, ContentType. The supported properties for directory are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Umask - - When creating New Item and the parent directory does not have a default ACL, the umask restricts the permissions of the file or directory to be created. The resulting permission is given by p & ^u, where p is the permission and u is the umask. Symbolic (rwxrw-rw-) is supported. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzDataLakeGen2Item - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Path - - The path in the specified Filesystem that should be create. Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/' - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionContext - - Encryption context of the file. Encryption context is metadata that is not encrypted when stored on the file. The primary application of this field is to store non-encrypted data that can be used to derive the customer-provided key for a file. Not applicable for directories. - - System.String - - System.String - - - None - - - Force - - If passed then new item is created without any prompt - - - System.Management.Automation.SwitchParameter - - - False - - - Metadata - - Specifies metadata for the created directory or file. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Permission - - Sets POSIX access permissions for the file owner, the file owning group, and others. Each class may be granted read, write, or execute permission. Symbolic (rwxrw-rw-) is supported. The sticky bit is also supported and its represented either by the letter t or T in the final character-place depending on whether the execution bit for the others category is set or unset respectively, absence of t or T indicates sticky bit not set. - - System.String - - System.String - - - None - - - Property - - Specifies properties for the created directory or file. The supported properties for file are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage, ContentMD5, ContentType. The supported properties for directory are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Source - - Specify the local source file path which will be upload to a Datalake Gen2 file. - - System.String - - System.String - - - None - - - Umask - - When creating New Item and the parent directory does not have a default ACL, the umask restricts the permissions of the file or directory to be created. The resulting permission is given by p & ^u, where p is the permission and u is the umask. Symbolic (rwxrw-rw-) is supported. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Directory - - Indicates that this new item is a directory and not a file. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EncryptionContext - - Encryption context of the file. Encryption context is metadata that is not encrypted when stored on the file. The primary application of this field is to store non-encrypted data that can be used to derive the customer-provided key for a file. Not applicable for directories. - - System.String - - System.String - - - None - - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Force - - If passed then new item is created without any prompt - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Metadata - - Specifies metadata for the created directory or file. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Path - - The path in the specified Filesystem that should be create. Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/' - - System.String - - System.String - - - None - - - Permission - - Sets POSIX access permissions for the file owner, the file owning group, and others. Each class may be granted read, write, or execute permission. Symbolic (rwxrw-rw-) is supported. The sticky bit is also supported and its represented either by the letter t or T in the final character-place depending on whether the execution bit for the others category is set or unset respectively, absence of t or T indicates sticky bit not set. - - System.String - - System.String - - - None - - - Property - - Specifies properties for the created directory or file. The supported properties for file are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage, ContentMD5, ContentType. The supported properties for directory are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Source - - Specify the local source file path which will be upload to a Datalake Gen2 file. - - System.String - - System.String - - - None - - - Umask - - When creating New Item and the parent directory does not have a default ACL, the umask restricts the permissions of the file or directory to be created. The resulting permission is given by p & ^u, where p is the permission and u is the umask. Symbolic (rwxrw-rw-) is supported. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - - - - - - - - - - - - Example 1: Create a directory with specified permission, Umask, properties, and metadata - New-AzDataLakeGen2Item -FileSystem "testfilesystem" -Path "dir1/dir2/" -Directory -Permission rwxrwxrwT -Umask ---rw---- -Property @{"CacheControl" = "READ"; "ContentDisposition" = "True"} -Metadata @{"tag1" = "value1"; "tag2" = "value2" } - -FileSystem Name: filesystem1 - -Path IsDirectory Length LastModified Permissions Owner Group ----- ----------- ------ ------------ ----------- ----- ----- -dir1/dir2 True 2020-03-23 09:15:56Z rwx---rwT $superuser $superuser - - This command creates a directory with specified Permission, Umask, properties, and metadata - - - - - - Example 2: Create(upload) a data lake file from a local source file, and the cmdlet runs in background - $task = New-AzDataLakeGen2Item -FileSystem "testfilesystem" -Path "dir1/dir2/file1" -Source "c:\sourcefile.txt" -Force -asjob -$task | Wait-Job -$task.Output - -FileSystem Name: filesystem1 - -Path IsDirectory Length LastModified Permissions Owner Group ----- ----------- ------ ------------ ----------- ----- ----- -dir1/dir2/file1 False 14400000 2020-03-23 09:19:13Z rw-r----- $superuser $superuser - - This command creates(upload) a data lake file from a local source file, and the cmdlet runs in background. - - - - - - Example 3: Create(upload) a data lake file from a local source file and set its encryption context - $file = New-AzDataLakeGen2Item -FileSystem "testfilesystem" -Path "dir1/dir2/file1" -Source "c:\sourcefile.txt" -EncryptionContext "encryptioncontext" -$file.Properties.EncryptionContext - -encryptioncontext - - This command creates(upload) a data lake file from a local source file and sets its encryption context value to "encryptioncontext". - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azdatalakegen2item - - - - - - New-AzDataLakeGen2SasToken - New - AzDataLakeGen2SasToken - - Generates a SAS token for Azure DatalakeGen2 item. - - - - The New-AzDataLakeGen2SasToken cmdlet generates a Shared Access Signature (SAS) token for an Azure DatalakeGen2 item. - - - - New-AzDataLakeGen2SasToken - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScope - - Encryption scope to use when sending requests authorized with this SAS URI. - - System.String - - System.String - - - None - - - ExpiryTime - - Expiry Time - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - FullUri - - Display full uri with sas token - - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - IP, or IP range ACL (access control list) that the request would be accepted by Azure Storage. - - System.String - - System.String - - - None - - - Path - - The path in the specified FileSystem that should be retrieved. Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/'. Skip set this parameter to get the root directory of the Filesystem. - - System.String - - System.String - - - None - - - Permission - - Permissions for a blob. Permissions can be any not-empty subset of "racwdlmeop". - - System.String - - System.String - - - None - - - Protocol - - Protocol can be used in the request with this SAS token. - - - None - HttpsAndHttp - Https - - System.Nullable`1[Azure.Storage.Sas.SasProtocol] - - System.Nullable`1[Azure.Storage.Sas.SasProtocol] - - - None - - - StartTime - - Start Time - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - - New-AzDataLakeGen2SasToken - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScope - - Encryption scope to use when sending requests authorized with this SAS URI. - - System.String - - System.String - - - None - - - ExpiryTime - - Expiry Time - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - FullUri - - Display full uri with sas token - - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Azure Datalake Gen2 Item Object to remove. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - None - - - IPAddressOrRange - - IP, or IP range ACL (access control list) that the request would be accepted by Azure Storage. - - System.String - - System.String - - - None - - - Permission - - Permissions for a blob. Permissions can be any not-empty subset of "racwdlmeop". - - System.String - - System.String - - - None - - - Protocol - - Protocol can be used in the request with this SAS token. - - - None - HttpsAndHttp - Https - - System.Nullable`1[Azure.Storage.Sas.SasProtocol] - - System.Nullable`1[Azure.Storage.Sas.SasProtocol] - - - None - - - StartTime - - Start Time - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScope - - Encryption scope to use when sending requests authorized with this SAS URI. - - System.String - - System.String - - - None - - - ExpiryTime - - Expiry Time - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - FullUri - - Display full uri with sas token - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Azure Datalake Gen2 Item Object to remove. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - None - - - IPAddressOrRange - - IP, or IP range ACL (access control list) that the request would be accepted by Azure Storage. - - System.String - - System.String - - - None - - - Path - - The path in the specified FileSystem that should be retrieved. Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/'. Skip set this parameter to get the root directory of the Filesystem. - - System.String - - System.String - - - None - - - Permission - - Permissions for a blob. Permissions can be any not-empty subset of "racwdlmeop". - - System.String - - System.String - - - None - - - Protocol - - Protocol can be used in the request with this SAS token. - - System.Nullable`1[Azure.Storage.Sas.SasProtocol] - - System.Nullable`1[Azure.Storage.Sas.SasProtocol] - - - None - - - StartTime - - Start Time - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - - - - System.String - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - - - - - - ----- Example 1: Generate a SAS token with full permission ----- - New-AzDataLakeGen2SasToken -FileSystem "filesystem1" -Path "dir1/dir2" -Permission racwdlmeop - - This example generates a DatalakeGen2 SAS token with full permission. - - - - - - Example 2: Generate a SAS token with specific StartTime, ExpireTime, Protocal, IPAddressOrRange, Encryption Scope, by pipeline a datalakegen2 item - Get-AzDataLakeGen2Item -FileSystem test -Path "testdir/dir2" | New-AzDataLakeGen2SasToken -Permission rw -Protocol Https -IPAddressOrRange 10.0.0.0-12.10.0.0 -StartTime (Get-Date) -ExpiryTime (Get-Date).AddDays(6) -EncryptionScope scopename - - This example generates a DatalakeGen2 SAS token by pipeline a datalake gen2 item, and with specific StartTime, ExpireTime, Protocal, IPAddressOrRange, Encryption Scope. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azdatalakegen2sastoken - - - - - - New-AzStorageAccountSASToken - New - AzStorageAccountSASToken - - Creates an account-level SAS token. - - - - The New-AzStorageAccountSASToken cmdlet creates an account-level shared access signature (SAS) token for an Azure Storage account. You can use the SAS token to delegate permissions for multiple services, or to delegate permissions for services not available with an object-level SAS token. An account SAS is secured using the storage account key. To create an account SAS, a client application must possess the account key. - - - - New-AzStorageAccountSASToken - - Context - - Specifies the Azure storage context. You can use the New-AzStorageContext cmdlet to get an AzureStorageContext object. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScope - - Encryption scope to use when sending requests authorized with this SAS URI. - - System.String - - System.String - - - None - - - ExpiryTime - - Specifies the time at which the shared access signature becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Permission - - Specifies the permissions for Storage account. Permissions are valid only if they match the specified resource type. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). For more information about acceptable permission values, see Constructing an Account SAS http://go.microsoft.com/fwlink/?LinkId=799514 - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request made with the account SAS. The acceptable values for this parameter are: - HttpsOnly - - HttpsOrHttp - The default value is HttpsOrHttp. - - - HttpsOnly - HttpsOrHttp - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - - None - - - ResourceType - - Specifies the resource types that are available with the SAS token. The acceptable values for this parameter are: - None - - Service - - Container - - Object - - - None - Service - Container - Object - - Microsoft.Azure.Storage.SharedAccessAccountResourceTypes - - Microsoft.Azure.Storage.SharedAccessAccountResourceTypes - - - None - - - Service - - Specifies the service. The acceptable values for this parameter are: - None - - Blob - - File - - Queue - - Table - - - None - Blob - File - Queue - Table - - Microsoft.Azure.Storage.SharedAccessAccountServices - - Microsoft.Azure.Storage.SharedAccessAccountServices - - - None - - - StartTime - - Specifies the time, as a DateTime object, at which the SAS becomes valid. To get a DateTime object, use the Get-Date cmdlet. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - - - Context - - Specifies the Azure storage context. You can use the New-AzStorageContext cmdlet to get an AzureStorageContext object. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScope - - Encryption scope to use when sending requests authorized with this SAS URI. - - System.String - - System.String - - - None - - - ExpiryTime - - Specifies the time at which the shared access signature becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Permission - - Specifies the permissions for Storage account. Permissions are valid only if they match the specified resource type. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). For more information about acceptable permission values, see Constructing an Account SAS http://go.microsoft.com/fwlink/?LinkId=799514 - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request made with the account SAS. The acceptable values for this parameter are: - HttpsOnly - - HttpsOrHttp - The default value is HttpsOrHttp. - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - - None - - - ResourceType - - Specifies the resource types that are available with the SAS token. The acceptable values for this parameter are: - None - - Service - - Container - - Object - - Microsoft.Azure.Storage.SharedAccessAccountResourceTypes - - Microsoft.Azure.Storage.SharedAccessAccountResourceTypes - - - None - - - Service - - Specifies the service. The acceptable values for this parameter are: - None - - Blob - - File - - Queue - - Table - - Microsoft.Azure.Storage.SharedAccessAccountServices - - Microsoft.Azure.Storage.SharedAccessAccountServices - - - None - - - StartTime - - Specifies the time, as a DateTime object, at which the SAS becomes valid. To get a DateTime object, use the Get-Date cmdlet. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - - - - - - Example 1: Create an account-level SAS token with full permission - New-AzStorageAccountSASToken -Service Blob,File,Table,Queue -ResourceType Service,Container,Object -Permission "racwdlup" - - This command creates an account-level SAS token with full permission. - - - - - - Example 2: Create an account-level SAS token for a range of IP addresses and EncryptionScope - New-AzStorageAccountSASToken -Service Blob,File,Table,Queue -ResourceType Service,Container,Object -Permission "racwdlup" -Protocol HttpsOnly -IPAddressOrRange 168.1.5.60-168.1.5.70 -EncryptionScope scopename - - This command creates an account-level SAS token for HTTPS-only requests from the specified range of IP addresses, with a specific EncryptionScope. - - - - - - Example 3: Create an account-level SAS token valid for 24 hours - New-AzStorageAccountSASToken -Service Blob -ResourceType Service,Container,Object -Permission "rl" -ExpiryTime (Get-Date).AddDays(1) - - This command creates an read-only account-level SAS token that is valid for 24 hours. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstorageaccountsastoken - - - New-AzStorageBlobSASToken - - - - New-AzStorageContainerSASToken - - - - New-AzStorageFileSASToken - - - - New-AzStorageQueueSASToken - - - - New-AzStorageShareSASToken - - - - New-AzStorageTableSASToken - - - - - - - New-AzStorageBlobQueryConfig - New - AzStorageBlobQueryConfig - - Creates a blob query configuration object, which can be used in Get-AzStorageBlobQueryResult. - - - - The New-AzStorageBlobQueryConfig cmdlet creates a blob query configuration object, which can be used in Get-AzStorageBlobQueryResult. - - - - New-AzStorageBlobQueryConfig - - AsCsv - - Indicate to create a Blob Query Configuration for CSV. - - - System.Management.Automation.SwitchParameter - - - False - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - ColumnSeparator - - Optional. The string used to separate columns. - - System.String - - System.String - - - None - - - EscapeCharacter - - Optional. The char used as an escape character. - - System.Nullable`1[System.Char] - - System.Nullable`1[System.Char] - - - None - - - HasHeader - - Optional. Indicate it represent the data has headers. - - - System.Management.Automation.SwitchParameter - - - False - - - QuotationCharacter - - Optional. The char used to quote a specific field. - - System.Char - - System.Char - - - None - - - RecordSeparator - - Optional. The string used to separate records. - - System.String - - System.String - - - None - - - - New-AzStorageBlobQueryConfig - - AsJson - - Indicate to create a Blob Query Configuration for Json. - - - System.Management.Automation.SwitchParameter - - - False - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - RecordSeparator - - Optional. The string used to separate records. - - System.String - - System.String - - - None - - - - - - AsCsv - - Indicate to create a Blob Query Configuration for CSV. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - AsJson - - Indicate to create a Blob Query Configuration for Json. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ColumnSeparator - - Optional. The string used to separate columns. - - System.String - - System.String - - - None - - - EscapeCharacter - - Optional. The char used as an escape character. - - System.Nullable`1[System.Char] - - System.Nullable`1[System.Char] - - - None - - - HasHeader - - Optional. Indicate it represent the data has headers. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - QuotationCharacter - - Optional. The char used to quote a specific field. - - System.Char - - System.Char - - - None - - - RecordSeparator - - Optional. The string used to separate records. - - System.String - - System.String - - - None - - - - - - None - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.PSBlobQueryTextConfiguration - - - - - - - - - - - - - - -- Example 1: Create blob query configures , and query a blob -- - $inputconfig = New-AzStorageBlobQueryConfig -AsCsv -ColumnSeparator "," -QuotationCharacter """" -EscapeCharacter "\" -RecordSeparator "`n" -HasHeader - -$outputconfig = New-AzStorageBlobQueryConfig -AsJson -RecordSeparator "`n" - -$queryString = "SELECT * FROM BlobStorage WHERE Name = 'a'" - -$result = Get-AzStorageBlobQueryResult -Container $containerName -Blob $blobName -QueryString $queryString -ResultFile "c:\resultfile.json" -InputTextConfiguration $inputconfig -OutputTextConfiguration $outputconfig -Context $ctx - -$result - -BytesScanned FailureCount BlobQueryError ------------- ------------ -------------- - 449 0 - - This command first create input configuration object as csv, and output configuration object as json, then use the 2 configurations to query blob. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/Az.storage/new-azstorageblobqueryconfig - - - - - - New-AzStorageBlobSASToken - New - AzStorageBlobSASToken - - Generates a SAS token for an Azure storage blob. - - - - The New-AzStorageBlobSASToken cmdlet generates a Shared Access Signature (SAS) token for an Azure storage blob. - - - - New-AzStorageBlobSASToken - - Container - - Specifies the storage container name. - - System.String - - System.String - - - None - - - Blob - - Specifies the storage blob name. - - System.String - - System.String - - - None - - - Context - - Specifies the storage context. When the storage context is based on OAuth authentication, will generates a User Identity blob SAS token. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScope - - Encryption scope to use when sending requests authorized with this SAS URI. - - System.String - - System.String - - - None - - - ExpiryTime - - Specifies when the shared access signature expires. When the storage context is based on OAuth authentication, the expire time must be in 7 days from current time, and must not be earlier than current time. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Permission - - Specifies the permissions for a storage blob. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - - HttpsOnly - HttpsOrHttp - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - - None - - - StartTime - - Specifies the time at which the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzStorageBlobSASToken - - Container - - Specifies the storage container name. - - System.String - - System.String - - - None - - - Blob - - Specifies the storage blob name. - - System.String - - System.String - - - None - - - Context - - Specifies the storage context. When the storage context is based on OAuth authentication, will generates a User Identity blob SAS token. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScope - - Encryption scope to use when sending requests authorized with this SAS URI. - - System.String - - System.String - - - None - - - ExpiryTime - - Specifies when the shared access signature expires. When the storage context is based on OAuth authentication, the expire time must be in 7 days from current time, and must not be earlier than current time. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Policy - - Specifies an Azure Stored Access Policy. - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - - HttpsOnly - HttpsOrHttp - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - - None - - - StartTime - - Specifies the time at which the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzStorageBlobSASToken - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - CloudBlob - - Specifies the CloudBlob object. To obtain a CloudBlob object, use the Get-AzStorageBlob (./Get-AzStorageBlob.md)cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - Context - - Specifies the storage context. When the storage context is based on OAuth authentication, will generates a User Identity blob SAS token. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScope - - Encryption scope to use when sending requests authorized with this SAS URI. - - System.String - - System.String - - - None - - - ExpiryTime - - Specifies when the shared access signature expires. When the storage context is based on OAuth authentication, the expire time must be in 7 days from current time, and must not be earlier than current time. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Policy - - Specifies an Azure Stored Access Policy. - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - - HttpsOnly - HttpsOrHttp - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - - None - - - StartTime - - Specifies the time at which the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzStorageBlobSASToken - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - CloudBlob - - Specifies the CloudBlob object. To obtain a CloudBlob object, use the Get-AzStorageBlob (./Get-AzStorageBlob.md)cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - Context - - Specifies the storage context. When the storage context is based on OAuth authentication, will generates a User Identity blob SAS token. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScope - - Encryption scope to use when sending requests authorized with this SAS URI. - - System.String - - System.String - - - None - - - ExpiryTime - - Specifies when the shared access signature expires. When the storage context is based on OAuth authentication, the expire time must be in 7 days from current time, and must not be earlier than current time. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Permission - - Specifies the permissions for a storage blob. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - - HttpsOnly - HttpsOrHttp - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - - None - - - StartTime - - Specifies the time at which the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Blob - - Specifies the storage blob name. - - System.String - - System.String - - - None - - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - CloudBlob - - Specifies the CloudBlob object. To obtain a CloudBlob object, use the Get-AzStorageBlob (./Get-AzStorageBlob.md)cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - Container - - Specifies the storage container name. - - System.String - - System.String - - - None - - - Context - - Specifies the storage context. When the storage context is based on OAuth authentication, will generates a User Identity blob SAS token. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScope - - Encryption scope to use when sending requests authorized with this SAS URI. - - System.String - - System.String - - - None - - - ExpiryTime - - Specifies when the shared access signature expires. When the storage context is based on OAuth authentication, the expire time must be in 7 days from current time, and must not be earlier than current time. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Permission - - Specifies the permissions for a storage blob. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - Policy - - Specifies an Azure Stored Access Policy. - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - - None - - - StartTime - - Specifies the time at which the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Storage.Blob.CloudBlob - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - - - - - - Example 1: Generate a blob SAS token with full blob permission - New-AzStorageBlobSASToken -Container "ContainerName" -Blob "BlobName" -Permission rwd - - This example generates a blob SAS token with full blob permission. - - - - - - ----- Example 2: Generate a blob SAS token with life time ----- - $StartTime = Get-Date -$EndTime = $startTime.AddHours(2.0) -New-AzStorageBlobSASToken -Container "ContainerName" -Blob "BlobName" -Permission rwd -StartTime $StartTime -ExpiryTime $EndTime - - This example generates a blob SAS token with life time. - - - - - - Example 3: Generate a User Identity SAS token with storage context based on OAuth authentication - $ctx = New-AzStorageContext -StorageAccountName $accountName -UseConnectedAccount -$StartTime = Get-Date -$EndTime = $startTime.AddDays(6) -New-AzStorageBlobSASToken -Container "ContainerName" -Blob "BlobName" -Permission rwd -StartTime $StartTime -ExpiryTime $EndTime -Context $ctx - - This example generates a User Identity blob SAS token with storage context based on OAuth authentication - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstorageblobsastoken - - - Get-AzStorageBlob - - - - New-AzStorageContainerSASToken - - - - - - - New-AzStorageContainer - New - AzStorageContainer - - Creates an Azure storage container. - - - - The New-AzStorageContainer cmdlet creates an Azure storage container. - - - - New-AzStorageContainer - - Name - - Specifies a name for the new container. - - System.String - - System.String - - - None - - - Permission - - Specifies the level of public access to this container. By default, the container and any blobs in it can be accessed only by the owner of the storage account. To grant anonymous users read permissions to a container and its blobs, you can set the container permissions to enable public access. Anonymous users can read blobs in a publicly available container without authenticating the request. The acceptable values for this parameter are: - Container. Provides full read access to a container and its blobs. Clients can enumerate blobs in the container through anonymous request, but cannot enumerate containers in the storage account. - Blob. Provides read access to blob data throughout a container through anonymous request, but does not provide access to container data. Clients cannot enumerate blobs in the container by using anonymous request. - Off. Which restricts access to only the storage account owner. - - - Off - Container - Blob - Unknown - - System.Nullable`1[Microsoft.Azure.Storage.Blob.BlobContainerPublicAccessType] - - System.Nullable`1[Microsoft.Azure.Storage.Blob.BlobContainerPublicAccessType] - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies a context for the new container. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultEncryptionScope - - Default the container to use specified encryption scope for all writes. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PreventEncryptionScopeOverride - - Block override of encryption scope from the container default. - - System.Boolean - - System.Boolean - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies a context for the new container. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultEncryptionScope - - Default the container to use specified encryption scope for all writes. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Specifies a name for the new container. - - System.String - - System.String - - - None - - - Permission - - Specifies the level of public access to this container. By default, the container and any blobs in it can be accessed only by the owner of the storage account. To grant anonymous users read permissions to a container and its blobs, you can set the container permissions to enable public access. Anonymous users can read blobs in a publicly available container without authenticating the request. The acceptable values for this parameter are: - Container. Provides full read access to a container and its blobs. Clients can enumerate blobs in the container through anonymous request, but cannot enumerate containers in the storage account. - Blob. Provides read access to blob data throughout a container through anonymous request, but does not provide access to container data. Clients cannot enumerate blobs in the container by using anonymous request. - Off. Which restricts access to only the storage account owner. - - System.Nullable`1[Microsoft.Azure.Storage.Blob.BlobContainerPublicAccessType] - - System.Nullable`1[Microsoft.Azure.Storage.Blob.BlobContainerPublicAccessType] - - - None - - - PreventEncryptionScopeOverride - - Block override of encryption scope from the container default. - - System.Boolean - - System.Boolean - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageContainer - - - - - - - - - - - - - - --------- Example 1: Create an Azure storage container --------- - New-AzStorageContainer -Name "ContainerName" -Permission Off - - This command creates a storage container. - - - - - - ----- Example 2: Create multiple Azure storage containers ----- - "container1 container2 container3".split() | New-AzStorageContainer -Permission Container - - This example creates multiple storage containers. It uses the Split method of the .NET String class and then passes the names on the pipeline. - - - - - - Example 3: Create an Azure storage container with Encryption Scope - $container = New-AzStorageContainer -Name "mycontainer" -DefaultEncryptionScope "myencryptscope" -PreventEncryptionScopeOverride $true - -$container.BlobContainerProperties.DefaultEncryptionScope -myencryptscope - -$container.BlobContainerProperties.PreventEncryptionScopeOverride -True - - This command creates a storage container, with default Encryption Scope as myencryptscope, and prevert blob upload with different Encryption Scope to this container. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstoragecontainer - - - Get-AzStorageContainer - - - - Remove-AzStorageContainer - - - - Set-AzStorageContainerAcl - - - - - - - New-AzStorageContainerSASToken - New - AzStorageContainerSASToken - - Generates an SAS token for an Azure storage container. - - - - The New-AzStorageContainerSASToken cmdlet generates a Shared Access Signature (SAS) token for an Azure storage container. - - - - New-AzStorageContainerSASToken - - Name - - Specifies an Azure storage container name. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure storage context. You can create it by using the New-AzStorageContext cmdlet. When the storage context is based on OAuth authentication, will generates a User Identity container SAS token. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScope - - Encryption scope to use when sending requests authorized with this SAS URI. - - System.String - - System.String - - - None - - - ExpiryTime - - Specifies the time at which the shared access signature becomes invalid. If the user sets the start time but not the expiry time, the expiry time is set to the start time plus one hour. If neither the start time nor the expiry time is specified, the expiry time is set to the current time plus one hour. When the storage context is based on OAuth authentication, the expire time must be in 7 days from current time, and must not be earlier than current time. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Permission - - Specifies permissions for a storage container. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). The permissions that are supported for container resource type are described here (https://learn.microsoft.com/rest/api/storageservices/create-service-sas#permissions-for-a-directory-container-or-blob). - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - - HttpsOnly - HttpsOrHttp - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - - None - - - StartTime - - Specifies the time at which the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzStorageContainerSASToken - - Name - - Specifies an Azure storage container name. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure storage context. You can create it by using the New-AzStorageContext cmdlet. When the storage context is based on OAuth authentication, will generates a User Identity container SAS token. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScope - - Encryption scope to use when sending requests authorized with this SAS URI. - - System.String - - System.String - - - None - - - ExpiryTime - - Specifies the time at which the shared access signature becomes invalid. If the user sets the start time but not the expiry time, the expiry time is set to the start time plus one hour. If neither the start time nor the expiry time is specified, the expiry time is set to the current time plus one hour. When the storage context is based on OAuth authentication, the expire time must be in 7 days from current time, and must not be earlier than current time. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Policy - - Specifies an Azure Stored Access Policy. - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - - HttpsOnly - HttpsOrHttp - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - - None - - - StartTime - - Specifies the time at which the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Context - - Specifies an Azure storage context. You can create it by using the New-AzStorageContext cmdlet. When the storage context is based on OAuth authentication, will generates a User Identity container SAS token. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScope - - Encryption scope to use when sending requests authorized with this SAS URI. - - System.String - - System.String - - - None - - - ExpiryTime - - Specifies the time at which the shared access signature becomes invalid. If the user sets the start time but not the expiry time, the expiry time is set to the start time plus one hour. If neither the start time nor the expiry time is specified, the expiry time is set to the current time plus one hour. When the storage context is based on OAuth authentication, the expire time must be in 7 days from current time, and must not be earlier than current time. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Name - - Specifies an Azure storage container name. - - System.String - - System.String - - - None - - - Permission - - Specifies permissions for a storage container. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). The permissions that are supported for container resource type are described here (https://learn.microsoft.com/rest/api/storageservices/create-service-sas#permissions-for-a-directory-container-or-blob). - - System.String - - System.String - - - None - - - Policy - - Specifies an Azure Stored Access Policy. - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - - None - - - StartTime - - Specifies the time at which the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - - - - - - Example 1: Generate a container SAS token with full container permission - New-AzStorageContainerSASToken -Name "Test" -Permission rwdl - - This example generates a container SAS token with full container permission. - - - - - - - Example 2: Generate multiple container SAS token by pipeline - - Get-AzStorageContainer -Container test* | New-AzStorageContainerSASToken -Permission rwdl - - This example generates multiple container SAS tokens by using the pipeline. - - - - - - Example 3: Generate container SAS token with shared access policy - New-AzStorageContainerSASToken -Name "Test" -Policy "PolicyName" - - This example generates a container SAS token with shared access policy. - - - - - - Example 3: Generate a User Identity container SAS token with storage context based on OAuth authentication - $ctx = New-AzStorageContext -StorageAccountName $accountName -UseConnectedAccount -$StartTime = Get-Date -$EndTime = $startTime.AddDays(6) -New-AzStorageContainerSASToken -Name "ContainerName" -Permission rwd -StartTime $StartTime -ExpiryTime $EndTime -context $ctx - - This example generates a User Identity container SAS token with storage context based on OAuth authentication - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstoragecontainersastoken - - - New-AzStorageBlobSASToken - - - - - - - New-AzStorageContainerStoredAccessPolicy - New - AzStorageContainerStoredAccessPolicy - - Creates a stored access policy for an Azure storage container. - - - - The New-AzStorageContainerStoredAccessPolicy cmdlet creates a stored access policy for an Azure storage container. - - - - New-AzStorageContainerStoredAccessPolicy - - Container - - Specifies the Azure storage container name. - - System.String - - System.String - - - None - - - Policy - - Specifies a stored access policy, which includes the permissions for this SAS token. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the stored access policy becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Permission - - Specifies permissions in the stored access policy to access the container. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - StartTime - - Specifies the time at which the stored access policy becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Specifies the Azure storage container name. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the stored access policy becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Permission - - Specifies permissions in the stored access policy to access the container. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - Policy - - Specifies a stored access policy, which includes the permissions for this SAS token. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - StartTime - - Specifies the time at which the stored access policy becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - - - - - - Example 1: Create a stored access policy in a storage container - New-AzStorageContainerStoredAccessPolicy -Container "MyContainer" -Policy "Policy01" - - This command creates an access policy named Policy01 in the storage container named MyContainer. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstoragecontainerstoredaccesspolicy - - - Get-AzStorageContainerStoredAccessPolicy - - - - New-AzStorageContext - - - - Remove-AzStorageContainerStoredAccessPolicy - - - - Set-AzStorageContainerStoredAccessPolicy - - - - - - - New-AzStorageContext - New - AzStorageContext - - Creates an Azure Storage context. - - - - The New-AzStorageContext cmdlet creates an Azure Storage context. The default Authentication of a Storage Context is OAuth (Microsoft Entra ID), if only input Storage account name. See details of authentication of the Storage Service in https://learn.microsoft.com/rest/api/storageservices/authorization-for-the-azure-storage-services. - - - - New-AzStorageContext - - StorageAccountName - - Specifies an Azure Storage account name. This cmdlet creates a context for the account that this parameter specifies. - - System.String - - System.String - - - None - - - Anonymous - - Indicates that this cmdlet creates an Azure Storage context for anonymous logon. - - - System.Management.Automation.SwitchParameter - - - False - - - Endpoint - - Specifies the endpoint for the Azure Storage context. - - System.String - - System.String - - - None - - - Protocol - - Transfer Protocol (https/http). - - - Http - Https - - System.String - - System.String - - - None - - - - New-AzStorageContext - - StorageAccountName - - Specifies an Azure Storage account name. This cmdlet creates a context for the account that this parameter specifies. - - System.String - - System.String - - - None - - - Anonymous - - Indicates that this cmdlet creates an Azure Storage context for anonymous logon. - - - System.Management.Automation.SwitchParameter - - - False - - - Environment - - Specifies the Azure environment. The acceptable values for this parameter are: AzureCloud and AzureChinaCloud. For more information, type `Get-Help Get-AzEnvironment`. - - System.String - - System.String - - - None - - - Protocol - - Transfer Protocol (https/http). - - - Http - Https - - System.String - - System.String - - - None - - - - New-AzStorageContext - - Anonymous - - Indicates that this cmdlet creates an Azure Storage context for anonymous logon. - - - System.Management.Automation.SwitchParameter - - - False - - - BlobEndpoint - - Azure storage blob service endpoint - - System.String - - System.String - - - None - - - FileEndpoint - - Azure storage file service endpoint - - System.String - - System.String - - - None - - - QueueEndpoint - - Azure storage queue service endpoint - - System.String - - System.String - - - None - - - TableEndpoint - - Azure storage table service endpoint - - System.String - - System.String - - - None - - - - New-AzStorageContext - - StorageAccountName - - Specifies an Azure Storage account name. This cmdlet creates a context for the account that this parameter specifies. - - System.String - - System.String - - - None - - - StorageAccountKey - - Specifies an Azure Storage account key. This cmdlet creates a context for the key that this parameter specifies. - - System.String - - System.String - - - None - - - BlobEndpoint - - Azure storage blob service endpoint - - System.String - - System.String - - - None - - - FileEndpoint - - Azure storage file service endpoint - - System.String - - System.String - - - None - - - QueueEndpoint - - Azure storage queue service endpoint - - System.String - - System.String - - - None - - - TableEndpoint - - Azure storage table service endpoint - - System.String - - System.String - - - None - - - - New-AzStorageContext - - BlobEndpoint - - Azure storage blob service endpoint - - System.String - - System.String - - - None - - - FileEndpoint - - Azure storage file service endpoint - - System.String - - System.String - - - None - - - QueueEndpoint - - Azure storage queue service endpoint - - System.String - - System.String - - - None - - - SasToken - - Specifies a Shared Access Signature (SAS) token for the context. - - System.String - - System.String - - - None - - - TableEndpoint - - Azure storage table service endpoint - - System.String - - System.String - - - None - - - - New-AzStorageContext - - BlobEndpoint - - Azure storage blob service endpoint - - System.String - - System.String - - - None - - - EnableFileBackupRequestIntent - - Required parameter to use with OAuth (Microsoft Entra ID) Authentication for Files. This will bypass any file/directory level permission checks and allow access, based on the allowed data actions, even if there are ACLs in place for those files/directories. - - - System.Management.Automation.SwitchParameter - - - False - - - FileEndpoint - - Azure storage file service endpoint - - System.String - - System.String - - - None - - - QueueEndpoint - - Azure storage queue service endpoint - - System.String - - System.String - - - None - - - TableEndpoint - - Azure storage table service endpoint - - System.String - - System.String - - - None - - - UseConnectedAccount - - Indicates that this cmdlet creates an Azure Storage context with OAuth (Microsoft Entra ID) Authentication. The cmdlet will use OAuth Authentication by default, when other authentication not specified. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzStorageContext - - ConnectionString - - Specifies a connection string for the Azure Storage context. - - System.String - - System.String - - - None - - - - New-AzStorageContext - - StorageAccountName - - Specifies an Azure Storage account name. This cmdlet creates a context for the account that this parameter specifies. - - System.String - - System.String - - - None - - - EnableFileBackupRequestIntent - - Required parameter to use with OAuth (Microsoft Entra ID) Authentication for Files. This will bypass any file/directory level permission checks and allow access, based on the allowed data actions, even if there are ACLs in place for those files/directories. - - - System.Management.Automation.SwitchParameter - - - False - - - Endpoint - - Specifies the endpoint for the Azure Storage context. - - System.String - - System.String - - - None - - - Protocol - - Transfer Protocol (https/http). - - - Http - Https - - System.String - - System.String - - - None - - - UseConnectedAccount - - Indicates that this cmdlet creates an Azure Storage context with OAuth (Microsoft Entra ID) Authentication. The cmdlet will use OAuth Authentication by default, when other authentication not specified. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzStorageContext - - StorageAccountName - - Specifies an Azure Storage account name. This cmdlet creates a context for the account that this parameter specifies. - - System.String - - System.String - - - None - - - EnableFileBackupRequestIntent - - Required parameter to use with OAuth (Microsoft Entra ID) Authentication for Files. This will bypass any file/directory level permission checks and allow access, based on the allowed data actions, even if there are ACLs in place for those files/directories. - - - System.Management.Automation.SwitchParameter - - - False - - - Environment - - Specifies the Azure environment. The acceptable values for this parameter are: AzureCloud and AzureChinaCloud. For more information, type `Get-Help Get-AzEnvironment`. - - System.String - - System.String - - - None - - - Protocol - - Transfer Protocol (https/http). - - - Http - Https - - System.String - - System.String - - - None - - - UseConnectedAccount - - Indicates that this cmdlet creates an Azure Storage context with OAuth (Microsoft Entra ID) Authentication. The cmdlet will use OAuth Authentication by default, when other authentication not specified. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzStorageContext - - StorageAccountName - - Specifies an Azure Storage account name. This cmdlet creates a context for the account that this parameter specifies. - - System.String - - System.String - - - None - - - StorageAccountKey - - Specifies an Azure Storage account key. This cmdlet creates a context for the key that this parameter specifies. - - System.String - - System.String - - - None - - - Endpoint - - Specifies the endpoint for the Azure Storage context. - - System.String - - System.String - - - None - - - Protocol - - Transfer Protocol (https/http). - - - Http - Https - - System.String - - System.String - - - None - - - - New-AzStorageContext - - StorageAccountName - - Specifies an Azure Storage account name. This cmdlet creates a context for the account that this parameter specifies. - - System.String - - System.String - - - None - - - Endpoint - - Specifies the endpoint for the Azure Storage context. - - System.String - - System.String - - - None - - - Protocol - - Transfer Protocol (https/http). - - - Http - Https - - System.String - - System.String - - - None - - - SasToken - - Specifies a Shared Access Signature (SAS) token for the context. - - System.String - - System.String - - - None - - - - New-AzStorageContext - - StorageAccountName - - Specifies an Azure Storage account name. This cmdlet creates a context for the account that this parameter specifies. - - System.String - - System.String - - - None - - - StorageAccountKey - - Specifies an Azure Storage account key. This cmdlet creates a context for the key that this parameter specifies. - - System.String - - System.String - - - None - - - Environment - - Specifies the Azure environment. The acceptable values for this parameter are: AzureCloud and AzureChinaCloud. For more information, type `Get-Help Get-AzEnvironment`. - - System.String - - System.String - - - None - - - Protocol - - Transfer Protocol (https/http). - - - Http - Https - - System.String - - System.String - - - None - - - - New-AzStorageContext - - StorageAccountName - - Specifies an Azure Storage account name. This cmdlet creates a context for the account that this parameter specifies. - - System.String - - System.String - - - None - - - Environment - - Specifies the Azure environment. The acceptable values for this parameter are: AzureCloud and AzureChinaCloud. For more information, type `Get-Help Get-AzEnvironment`. - - System.String - - System.String - - - None - - - SasToken - - Specifies a Shared Access Signature (SAS) token for the context. - - System.String - - System.String - - - None - - - - New-AzStorageContext - - Local - - Indicates that this cmdlet creates a context by using the local development storage account. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Anonymous - - Indicates that this cmdlet creates an Azure Storage context for anonymous logon. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - BlobEndpoint - - Azure storage blob service endpoint - - System.String - - System.String - - - None - - - ConnectionString - - Specifies a connection string for the Azure Storage context. - - System.String - - System.String - - - None - - - EnableFileBackupRequestIntent - - Required parameter to use with OAuth (Microsoft Entra ID) Authentication for Files. This will bypass any file/directory level permission checks and allow access, based on the allowed data actions, even if there are ACLs in place for those files/directories. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Endpoint - - Specifies the endpoint for the Azure Storage context. - - System.String - - System.String - - - None - - - Environment - - Specifies the Azure environment. The acceptable values for this parameter are: AzureCloud and AzureChinaCloud. For more information, type `Get-Help Get-AzEnvironment`. - - System.String - - System.String - - - None - - - FileEndpoint - - Azure storage file service endpoint - - System.String - - System.String - - - None - - - Local - - Indicates that this cmdlet creates a context by using the local development storage account. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Protocol - - Transfer Protocol (https/http). - - System.String - - System.String - - - None - - - QueueEndpoint - - Azure storage queue service endpoint - - System.String - - System.String - - - None - - - SasToken - - Specifies a Shared Access Signature (SAS) token for the context. - - System.String - - System.String - - - None - - - StorageAccountKey - - Specifies an Azure Storage account key. This cmdlet creates a context for the key that this parameter specifies. - - System.String - - System.String - - - None - - - StorageAccountName - - Specifies an Azure Storage account name. This cmdlet creates a context for the account that this parameter specifies. - - System.String - - System.String - - - None - - - TableEndpoint - - Azure storage table service endpoint - - System.String - - System.String - - - None - - - UseConnectedAccount - - Indicates that this cmdlet creates an Azure Storage context with OAuth (Microsoft Entra ID) Authentication. The cmdlet will use OAuth Authentication by default, when other authentication not specified. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - - - Microsoft.WindowsAzure.Commands.Storage.AzureStorageContext - - - - - - - - - - - - - - Example 1: Create a context by specifying a storage account name and key - New-AzStorageContext -StorageAccountName "ContosoGeneral" -StorageAccountKey "< Storage Key for ContosoGeneral ends with == >" - - This command creates a context for the account named ContosoGeneral that uses the specified key. - - - - - - Example 2: Create a context by specifying a connection string - New-AzStorageContext -ConnectionString "DefaultEndpointsProtocol=https;AccountName=ContosoGeneral;AccountKey=< Storage Key for ContosoGeneral ends with == >;" - - This command creates a context based on the specified connection string for the account ContosoGeneral. - - - - - - - Example 3: Create a context for an anonymous storage account - - New-AzStorageContext -StorageAccountName "ContosoGeneral" -Anonymous -Protocol "http" - - This command creates a context for anonymous use for the account named ContosoGeneral. The command specifies HTTP as a connection protocol. - - - - - - Example 4: Create a context by using the local development storage account - New-AzStorageContext -Local - - This command creates a context by using the local development storage account. The command specifies the Local parameter. - - - - - - Example 5: Get the container for the local developer storage account - New-AzStorageContext -Local | Get-AzStorageContainer - - This command creates a context by using the local development storage account, and then passes the new context to the Get-AzStorageContainer cmdlet by using the pipeline operator. The command gets the Azure Storage container for the local developer storage account. - - - - - - -------------- Example 6: Get multiple containers -------------- - $Context01 = New-AzStorageContext -Local -$Context02 = New-AzStorageContext -StorageAccountName "ContosoGeneral" -StorageAccountKey "< Storage Key for ContosoGeneral ends with == >" -($Context01, $Context02) | Get-AzStorageContainer - - The first command creates a context by using the local development storage account, and then stores that context in the $Context01 variable. The second command creates a context for the account named ContosoGeneral that uses the specified key, and then stores that context in the $Context02 variable. The final command gets the containers for the contexts stored in $Context01 and $Context02 by using Get-AzStorageContainer . - - - - - - --------- Example 7: Create a context with an endpoint --------- - New-AzStorageContext -StorageAccountName "ContosoGeneral" -StorageAccountKey "< Storage Key for ContosoGeneral ends with == >" -Endpoint "contosoaccount.core.windows.net" - - This command creates an Azure Storage context that has the specified storage endpoint. The command creates the context for the account named ContosoGeneral that uses the specified key. - - - - - - --- Example 8: Create a context with a specified environment --- - New-AzStorageContext -StorageAccountName "ContosoGeneral" -StorageAccountKey "< Storage Key for ContosoGeneral ends with == >" -Environment "AzureChinaCloud" - - This command creates an Azure storage context that has the specified Azure environment. The command creates the context for the account named ContosoGeneral that uses the specified key. - - - - - - ------ Example 9: Create a context by using an SAS token ------ - $SasToken = New-AzStorageContainerSASToken -Name "ContosoMain" -Permission "rad" -$Context = New-AzStorageContext -StorageAccountName "ContosoGeneral" -SasToken $SasToken -$Context | Get-AzStorageBlob -Container "ContosoMain" - - The first command generates an SAS token by using the New-AzStorageContainerSASToken cmdlet for the container named ContosoMain, and then stores that token in the $SasToken variable. That token is for read, add, update, and delete permissions. The second command creates a context for the account named ContosoGeneral that uses the SAS token stored in $SasToken, and then stores that context in the $Context variable. The final command lists all the blobs associated with the container named ContosoMain by using the context stored in $Context. - - - - - - Example 10: Create a context by using the OAuth Authentication - Connect-AzAccount -$Context = New-AzStorageContext -StorageAccountName "myaccountname" -UseConnectedAccount - - This command creates a context by using the OAuth (Microsoft Entra ID) Authentication. - - - - - - Example 11: Create a context by specifying a storage account name, storage account key and custom blob endpoint - New-AzStorageContext -StorageAccountName "myaccountname" -StorageAccountKey "< Storage Key for myaccountname ends with == >" -BlobEndpoint "https://myaccountname.blob.core.windows.net/" - - This command creates a context for the account named myaccountname with a key for the account, and specified blob endpoint. - - - - - - Example 12: Create a context for an anonymous storage account with specified blob endpoint - New-AzStorageContext -Anonymous -BlobEndpoint "https://myaccountname.blob.core.windows.net/" - - This command creates a context for anonymous use for the account named myaccountname, with specified blob enpoint. - - - - - - Example 13: Create a context by using an SAS token with specified endpoints - $SasToken = New-AzStorageContainerSASToken -Name "MyContainer" -Permission "rad" -New-AzStorageContext -SasToken $SasToken -BlobEndpoint "https://myaccountname.blob.core.windows.net/" -TableEndpoint "https://myaccountname.table.core.windows.net/" -FileEndpoint "https://myaccountname.file.core.windows.net/" -QueueEndpoint "https://myaccountname.queue.core.windows.net/" - - The first command generates an SAS token by using the New-AzStorageContainerSASToken cmdlet for the container named MyContainer, and then stores that token in the $SasToken variable. The second command creates a context that uses the SAS token and a specified blob endpoint, table endpoint, file endpoint, and queue endpoint. - - - - - - Example 14: Create a context by using the OAuth Authentication with a specified blob endpoint - New-AzStorageContext -UseConnectedAccount -BlobEndpoint "https://myaccountname.blob.core.windows.net/" - - This command creates a context by using the OAuth authentication with a specified blob endpoint. - - - - - - Example 15: Create a context by using the OAuth Authentication on File service - New-AzStorageContext -StorageAccountName "myaccountname" -UseConnectedAccount -EnableFileBackupRequestIntent - - This command creates a context to use the OAuth (Microsoft Entra ID) authentication on File service. Parameter '-EnableFileBackupRequestIntent' is required to use OAuth (Microsoft Entra ID) Authentication for File service. This will bypass any file/directory level permission checks and allow access, based on the allowed data actions, even if there are ACLs in place for those files/directories. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstoragecontext - - - Get-AzStorageBlob - - - - New-AzStorageContainerSASToken - - - - - - - New-AzStorageDirectory - New - AzStorageDirectory - - Creates a directory. - - - - The New-AzStorageDirectory cmdlet creates a directory. This cmdlet returns a AzureStorageFileDirectory object. - - - - New-AzStorageDirectory - - ShareName - - Specifies the name of the file share. This cmdlet creates a folder in the file share that this parameter specifies. - - System.String - - System.String - - - None - - - Path - - Specifies the path of a folder. This cmdlet creates a folder for the path that this cmdlet specifies. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - New-AzStorageDirectory - - ShareClient - - ShareClient object indicated the share where the files/directories would be listed. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - Path - - Specifies the path of a folder. This cmdlet creates a folder for the path that this cmdlet specifies. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - New-AzStorageDirectory - - ShareDirectoryClient - - ShareDirectoryClient object indicated the base folder where the files/directories would be listed. - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - Path - - Specifies the path of a folder. This cmdlet creates a folder for the path that this cmdlet specifies. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Path - - Specifies the path of a folder. This cmdlet creates a folder for the path that this cmdlet specifies. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ShareClient - - ShareClient object indicated the share where the files/directories would be listed. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - ShareDirectoryClient - - ShareDirectoryClient object indicated the base folder where the files/directories would be listed. - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - ShareName - - Specifies the name of the file share. This cmdlet creates a folder in the file share that this parameter specifies. - - System.String - - System.String - - - None - - - - - - Azure.Storage.Files.Shares.ShareClient - - - - - - - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFileDirectory - - - - - - - - - - - - - - ---------- Example 1: Create a folder in a file share ---------- - New-AzStorageDirectory -ShareName "ContosoShare06" -Path "ContosoWorkingFolder" - - This command creates a folder named ContosoWorkingFolder in the file share named ContosoShare06. - - - - - - Example 2: Create a folder in a file share specified in a file share object - Get-AzStorageShare -Name "ContosoShare06" | New-AzStorageDirectory -Path "ContosoWorkingFolder" - - This command uses the Get-AzStorageShare cmdlet to get the file share named ContosoShare06, and then passes it to the current cmdlet by using the pipeline operator. The current cmdlet creates the folder named ContosoWorkingFolder in ContosoShare06. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstoragedirectory - - - Get-AzStorageFile - - - - Get-AzStorageShare - - - - New-AzStorageContext - - - - New-AzStorageDirectory - - - - Remove-AzStorageDirectory - - - - - - - New-AzStorageFileSASToken - New - AzStorageFileSASToken - - Generates a shared access signature token for a Storage file. - - - - The New-AzStorageFileSASToken cmdlet generates a shared access signature token for an Azure Storage file. - - - - New-AzStorageFileSASToken - - ShareName - - Specifies the name of the Storage share. - - System.String - - System.String - - - None - - - Path - - Specifies the path of the file relative to a Storage share. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the shared access signature becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Permission - - Specifies the permissions for a Storage file. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - - HttpsOnly - HttpsOrHttp - - System.String - - System.String - - - None - - - StartTime - - Specifies the time at which the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - New-AzStorageFileSASToken - - ShareName - - Specifies the name of the Storage share. - - System.String - - System.String - - - None - - - Path - - Specifies the path of the file relative to a Storage share. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the shared access signature becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Policy - - Specifies the stored access policy for a file. - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - - HttpsOnly - HttpsOrHttp - - System.String - - System.String - - - None - - - StartTime - - Specifies the time at which the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - New-AzStorageFileSASToken - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the shared access signature becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Permission - - Specifies the permissions for a Storage file. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - - HttpsOnly - HttpsOrHttp - - System.String - - System.String - - - None - - - ShareFileClient - - ShareFileClient instance to represent the file to get SAS token against. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - StartTime - - Specifies the time at which the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - New-AzStorageFileSASToken - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the shared access signature becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Policy - - Specifies the stored access policy for a file. - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - - HttpsOnly - HttpsOrHttp - - System.String - - System.String - - - None - - - ShareFileClient - - ShareFileClient instance to represent the file to get SAS token against. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - StartTime - - Specifies the time at which the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the shared access signature becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Path - - Specifies the path of the file relative to a Storage share. - - System.String - - System.String - - - None - - - Permission - - Specifies the permissions for a Storage file. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - Policy - - Specifies the stored access policy for a file. - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - System.String - - System.String - - - None - - - ShareFileClient - - ShareFileClient instance to represent the file to get SAS token against. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - ShareName - - Specifies the name of the Storage share. - - System.String - - System.String - - - None - - - StartTime - - Specifies the time at which the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - - - System.String - - - - - - - - Azure.Storage.Files.Shares.ShareFileClient - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - - - - - - Example 1: Generate a shared access signature token that has full file permissions - New-AzStorageFileSASToken -ShareName "ContosoShare" -Path "FilePath" -Permission "rwd" - - This command generates a shared access signature token that has full permissions for the file that is named FilePath. - - - - - - Example 2: Generate a shared access signature token that has a time limit - $StartTime = Get-Date -$EndTime = $StartTime.AddHours(2.0) -New-AzStorageFileSASToken -ShareName "ContosoShare" -Path "FilePath" -Permission "rwd" -StartTime $StartTime -ExpiryTime $EndTime - - The first command creates a DateTime object by using the Get-Date cmdlet. The command stores the current time in the $StartTime variable. The second command adds two hours to the object in $StartTime, and then stores the result in the $EndTime variable. This object is a time two hours in the future. The third command generates a shared access signature token that has the specified permissions. This token becomes valid at the current time. The token remains valid until time stored in $EndTime. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstoragefilesastoken - - - New-AzStorageContext - - - - New-AzStorageShareSASToken - - - - - - - New-AzStorageQueue - New - AzStorageQueue - - Creates a storage queue. - - - - The New-AzStorageQueue cmdlet creates a storage queue in Azure. - - - - New-AzStorageQueue - - Name - - Specifies a name for the queue. - - System.String - - System.String - - - None - - - Context - - Specifies the Azure storage context. You can create it by using the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - Context - - Specifies the Azure storage context. You can create it by using the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Specifies a name for the queue. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageQueue - - - - - - - - - - - - - - ----------- Example 1: Create an Azure storage queue ----------- - New-AzStorageQueue -Name "queueabc" - - This example creates a storage queue named queueabc. - - - - - - ------- Example 2: Create multiple azure storage queues ------- - "queue1 queue2 queue3".split() | New-AzStorageQueue - - This example creates multiple storage queues. It uses the Split method of the .NET String class and then passes the names on the pipeline. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstoragequeue - - - Get-AzStorageQueue - - - - Remove-AzStorageQueue - - - - - - - New-AzStorageQueueSASToken - New - AzStorageQueueSASToken - - Generates a shared access signature token for an Azure storage queue. - - - - The New-AzStorageQueueSASToken cmdlet generates shared access signature token for an Azure storage queue. - - - - New-AzStorageQueueSASToken - - Name - - Specifies an Azure storage queue name. - - System.String - - System.String - - - None - - - Context - - Specifies the Azure storage context. You can create it by New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies when the shared access signature is no longer valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Permission - - Specifies permissions for a storage queue. It is important to note that this is a string, like `raup` (for Read, Add, Update and ProcessMessages). - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - - HttpsOnly - HttpsOrHttp - - System.String - - System.String - - - None - - - StartTime - - Specifies when the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - New-AzStorageQueueSASToken - - Name - - Specifies an Azure storage queue name. - - System.String - - System.String - - - None - - - Context - - Specifies the Azure storage context. You can create it by New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies when the shared access signature is no longer valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Policy - - Specifies an Azure stored access policy. - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - - HttpsOnly - HttpsOrHttp - - System.String - - System.String - - - None - - - StartTime - - Specifies when the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - - - Context - - Specifies the Azure storage context. You can create it by New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies when the shared access signature is no longer valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Name - - Specifies an Azure storage queue name. - - System.String - - System.String - - - None - - - Permission - - Specifies permissions for a storage queue. It is important to note that this is a string, like `raup` (for Read, Add, Update and ProcessMessages). - - System.String - - System.String - - - None - - - Policy - - Specifies an Azure stored access policy. - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - System.String - - System.String - - - None - - - StartTime - - Specifies when the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - - - - - - -- Example 1: Generate a queue SAS token with full permission -- - New-AzStorageQueueSASToken -Name "Test" -Permission raup - - This example generates a queue SAS token with full permission. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstoragequeuesastoken - - - - - - New-AzStorageQueueStoredAccessPolicy - New - AzStorageQueueStoredAccessPolicy - - Creates a stored access policy for an Azure storage queue. - - - - The New-AzStorageQueueStoredAccessPolicy cmdlet creates a stored access policy for an Azure storage queue. - - - - New-AzStorageQueueStoredAccessPolicy - - Queue - - Specifies the Azure storage queue name. - - System.String - - System.String - - - None - - - Policy - - Specifies a name for the stored access policy. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the stored access policy becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Permission - - Specifies permissions in the stored access policy to access the storage queue. It is important to note that this is a string, like `raup` (for Read, Add, Update, and ProcessMessages). - - System.String - - System.String - - - None - - - StartTime - - Specifies the time at which the stored access policy becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the stored access policy becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Permission - - Specifies permissions in the stored access policy to access the storage queue. It is important to note that this is a string, like `raup` (for Read, Add, Update, and ProcessMessages). - - System.String - - System.String - - - None - - - Policy - - Specifies a name for the stored access policy. - - System.String - - System.String - - - None - - - Queue - - Specifies the Azure storage queue name. - - System.String - - System.String - - - None - - - StartTime - - Specifies the time at which the stored access policy becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - - - - - - - Example 1: Create a stored access policy in a storage queue - - New-AzStorageQueueStoredAccessPolicy -Queue "MyQueue" -Policy "Policy01" - - This command creates an access policy named Policy01 in the storage queue named MyQueue. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstoragequeuestoredaccesspolicy - - - Get-AzStorageQueueStoredAccessPolicy - - - - New-AzStorageContext - - - - Remove-AzStorageQueueStoredAccessPolicy - - - - Set-AzStorageQueueStoredAccessPolicy - - - - - - - New-AzStorageShare - New - AzStorageShare - - Creates a file share. - - - - The New-AzStorageShare cmdlet creates a file share. - - - - New-AzStorageShare - - Name - - Specifies the name of a file share. This cmdlet creates a file share that has the name that this parameter specifies. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Specifies the name of a file share. This cmdlet creates a file share that has the name that this parameter specifies. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFileShare - - - - - - - - - - - - - - ---------------- Example 1: Create a file share ---------------- - New-AzStorageShare -Name "ContosoShare06" - - This command creates a file share named ContosoShare06. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstorageshare - - - Get-AzStorageShare - - - - New-AzStorageContext - - - - Remove-AzStorageShare - - - - - - - New-AzStorageShareSASToken - New - AzStorageShareSASToken - - Generate Shared Access Signature token for Azure Storage share. - - - - The New-AzStorageShareSASToken cmdlet generates a shared access signature token for an Azure Storage share. - - - - New-AzStorageShareSASToken - - ShareName - - Specifies the name of the Storage share. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the shared access signature becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Permission - - Specifies the permissions in the token to access the share and files under the share. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - - HttpsOnly - HttpsOrHttp - - System.String - - System.String - - - None - - - StartTime - - Specifies the time at which the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - New-AzStorageShareSASToken - - ShareName - - Specifies the name of the Storage share. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the shared access signature becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Policy - - Specifies the stored access policy for a share. - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - - HttpsOnly - HttpsOrHttp - - System.String - - System.String - - - None - - - StartTime - - Specifies the time at which the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the shared access signature becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Permission - - Specifies the permissions in the token to access the share and files under the share. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - Policy - - Specifies the stored access policy for a share. - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - System.String - - System.String - - - None - - - ShareName - - Specifies the name of the Storage share. - - System.String - - System.String - - - None - - - StartTime - - Specifies the time at which the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - * Keywords: common, azure, services, data, storage, blob, queue, table - - - - - Example 1: Generate a shared access signature token for a share - New-AzStorageShareSASToken -ShareName "ContosoShare" -Permission "rwdl" - - This command creates a shared access signature token for the share named ContosoShare. - - - - - - Example 2: Generate multiple shared access signature token by using the pipeline - Get-AzStorageShare -Prefix "test" | New-AzStorageShareSASToken -Permission "rwdl" - - This command gets all the Storage shares that match the prefix test. The command passes them to the current cmdlet by using the pipeline operator. The current cmdlet creates a shared access token for each Storage share that has the specified permissions. - - - - - - Example 3: Generate a shared access signature token that uses a shared access policy - New-AzStorageShareSASToken -ShareName "ContosoShare" -Policy "ContosoPolicy03" - - This command creates a shared access signature token for the Storage share named ContosoShare that has the policy named ContosoPolicy03. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstoragesharesastoken - - - Get-AzStorageShare - - - - New-AzStorageFileSASToken - - - - - - - New-AzStorageShareStoredAccessPolicy - New - AzStorageShareStoredAccessPolicy - - Creates a stored access policy on a Storage share. - - - - The New-AzStorageShareStoredAccessPolicy cmdlet creates a stored access policy on an Azure Storage share. - - - - New-AzStorageShareStoredAccessPolicy - - ShareName - - Specifies the name of the Storage share. - - System.String - - System.String - - - None - - - Policy - - Specifies a name for the stored access policy. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the stored access policy becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Permission - - Specifies permissions in the stored access policy to access the Storage share or files under it. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - StartTime - - Specifies the time at which the stored access policy becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the stored access policy becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Permission - - Specifies permissions in the stored access policy to access the Storage share or files under it. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - Policy - - Specifies a name for the stored access policy. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ShareName - - Specifies the name of the Storage share. - - System.String - - System.String - - - None - - - StartTime - - Specifies the time at which the stored access policy becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - - - - - - ----- Example 1: Create a stored access policy in a share ----- - New-AzStorageShareStoredAccessPolicy -ShareName "ContosoShare" -Policy "GeneralPolicy" -Permission "rwdl" - - This command creates a stored access policy that has full permission in a share. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstoragesharestoredaccesspolicy - - - Get-AzStorageShareStoredAccessPolicy - - - - New-AzStorageContext - - - - Remove-AzStorageShareStoredAccessPolicy - - - - Set-AzStorageShareStoredAccessPolicy - - - - - - - New-AzStorageTable - New - AzStorageTable - - Creates a storage table. - - - - The New-AzStorageTable cmdlet creates a storage table associated with the storage account in Azure. - - - - New-AzStorageTable - - Name - - Specifies a name for the new table. - - System.String - - System.String - - - None - - - Context - - Specifies the storage context. To create it, you can use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - Context - - Specifies the storage context. To create it, you can use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Specifies a name for the new table. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageTable - - - - - - - - - - - - - - ----------- Example 1: Create an azure storage table ----------- - New-AzStorageTable -Name "tableabc" - - This command creates a storage table with a name of tableabc. - - - - - - ------- Example 2: Create multiple azure storage tables ------- - "table1 table2 table3".split() | New-AzStorageTable - - This command creates multiple tables. It uses the Split method of the .NET String class and then passes the names on the pipeline. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstoragetable - - - Get-AzStorageTable - - - - Remove-AzStorageTable - - - - - - - New-AzStorageTableSASToken - New - AzStorageTableSASToken - - Generates an SAS token for an Azure Storage table. - - - - The New-AzStorageTableSASToken cmdlet generates a Shared Access Signature (SAS) token for an Azure Storage table. - - - - New-AzStorageTableSASToken - - Name - - Specifies the name of an Azure Storage table. This cmdlet creates an SAS token for the table that this parameter specifies. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EndPartitionKey - - Specifies the partition key of the end of the range for the token that this cmdlet creates. - - System.String - - System.String - - - None - - - EndRowKey - - Specifies the row key for the end of the range for the token that this cmdlet creates. - - System.String - - System.String - - - None - - - ExpiryTime - - Specifies when the SAS token expires. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet returns the full queue URI with the SAS token. - - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Permission - - Specifies permissions for an Azure Storage table. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - - HttpsOnly - HttpsOrHttp - - System.Nullable`1[Microsoft.Azure.Cosmos.Table.SharedAccessProtocol] - - System.Nullable`1[Microsoft.Azure.Cosmos.Table.SharedAccessProtocol] - - - None - - - StartPartitionKey - - Specifies the partition key of the start of the range for the token that this cmdlet creates. - - System.String - - System.String - - - None - - - StartRowKey - - Specifies the row key for the start of the range for the token that this cmdlet creates. - - System.String - - System.String - - - None - - - StartTime - - Specifies when the SAS token becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - New-AzStorageTableSASToken - - Name - - Specifies the name of an Azure Storage table. This cmdlet creates an SAS token for the table that this parameter specifies. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EndPartitionKey - - Specifies the partition key of the end of the range for the token that this cmdlet creates. - - System.String - - System.String - - - None - - - EndRowKey - - Specifies the row key for the end of the range for the token that this cmdlet creates. - - System.String - - System.String - - - None - - - ExpiryTime - - Specifies when the SAS token expires. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet returns the full queue URI with the SAS token. - - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Policy - - Specifies a stored access policy, which includes the permissions for this SAS token. - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - - HttpsOnly - HttpsOrHttp - - System.Nullable`1[Microsoft.Azure.Cosmos.Table.SharedAccessProtocol] - - System.Nullable`1[Microsoft.Azure.Cosmos.Table.SharedAccessProtocol] - - - None - - - StartPartitionKey - - Specifies the partition key of the start of the range for the token that this cmdlet creates. - - System.String - - System.String - - - None - - - StartRowKey - - Specifies the row key for the start of the range for the token that this cmdlet creates. - - System.String - - System.String - - - None - - - StartTime - - Specifies when the SAS token becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EndPartitionKey - - Specifies the partition key of the end of the range for the token that this cmdlet creates. - - System.String - - System.String - - - None - - - EndRowKey - - Specifies the row key for the end of the range for the token that this cmdlet creates. - - System.String - - System.String - - - None - - - ExpiryTime - - Specifies when the SAS token expires. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet returns the full queue URI with the SAS token. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Name - - Specifies the name of an Azure Storage table. This cmdlet creates an SAS token for the table that this parameter specifies. - - System.String - - System.String - - - None - - - Permission - - Specifies permissions for an Azure Storage table. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - Policy - - Specifies a stored access policy, which includes the permissions for this SAS token. - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - System.Nullable`1[Microsoft.Azure.Cosmos.Table.SharedAccessProtocol] - - System.Nullable`1[Microsoft.Azure.Cosmos.Table.SharedAccessProtocol] - - - None - - - StartPartitionKey - - Specifies the partition key of the start of the range for the token that this cmdlet creates. - - System.String - - System.String - - - None - - - StartRowKey - - Specifies the row key for the start of the range for the token that this cmdlet creates. - - System.String - - System.String - - - None - - - StartTime - - Specifies when the SAS token becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - - - - - - Example 1: Generate an SAS token that has full permissions for a table - New-AzStorageTableSASToken -Name "ContosoResources" -Permission "raud" - - This command generates an SAS token with full permissions for the table named ContosoResources. That token is for read, add, update, and delete permissions. - - - - - - -- Example 2: Generate an SAS token for a range of partitions -- - New-AzStorageTableSASToken -Name "ContosoResources" -Permission "raud" -StartPartitionKey "a" -EndPartitionKey "b" - - This command generates and SAS token with full permissions for the table named ContosoResources. The command limits the token to the range that the StartPartitionKey and EndPartitionKey parameters specify. - - - - - - Example 3: Generate an SAS token that has a stored access policy for a table - New-AzStorageTableSASToken -Name "ContosoResources" -Policy "ClientPolicy01" - - This command generates an SAS token for the table named ContosoResources. The command specifies the stored access policy named ClientPolicy01. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstoragetablesastoken - - - New-AzStorageContext - - - - - - - New-AzStorageTableStoredAccessPolicy - New - AzStorageTableStoredAccessPolicy - - Creates a stored access policy for an Azure storage table. - - - - The New-AzStorageTableStoredAccessPolicy cmdlet creates a stored access policy for an Azure storage table. - - - - New-AzStorageTableStoredAccessPolicy - - Table - - Specifies the Azure storage table name. - - System.String - - System.String - - - None - - - Policy - - Specifies a name for the stored access policy. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the stored access policy becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Permission - - Specifies permissions in the stored access policy to access the storage table. It is important to note that this is a string, like `raud` (for Read, Add, Update and Delete). - - System.String - - System.String - - - None - - - StartTime - - Specifies the time at which the stored access policy becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the stored access policy becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Permission - - Specifies permissions in the stored access policy to access the storage table. It is important to note that this is a string, like `raud` (for Read, Add, Update and Delete). - - System.String - - System.String - - - None - - - Policy - - Specifies a name for the stored access policy. - - System.String - - System.String - - - None - - - StartTime - - Specifies the time at which the stored access policy becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Table - - Specifies the Azure storage table name. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - - - - - - ----- Example 1: Create a stored access policy in a table ----- - New-AzStorageTableStoredAccessPolicy -Table "MyTable" -Policy "Policy02" - - This command creates an access policy named Policy02 in the storage table named MyTable. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstoragetablestoredaccesspolicy - - - Get-AzStorageTableStoredAccessPolicy - - - - New-AzStorageContext - - - - Remove-AzStorageTableStoredAccessPolicy - - - - Set-AzStorageTableStoredAccessPolicy - - - - - - - Remove-AzDataLakeGen2AclRecursive - Remove - AzDataLakeGen2AclRecursive - - Remove ACL recursively on the specified path. - - - - The Remove-AzDataLakeGen2AclRecursive cmdlet removes ACL recursively on the specified path. The ACL entries in original ACL, which has same AccessControlType, DefaultScope and EntityId with input ACL entries (even with different permission) wil lbe removed. - - - - Remove-AzDataLakeGen2AclRecursive - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Path - - The path in the specified FileSystem that to change Acl recursively. Can be a file or directory. In the format 'directory/file.txt' or 'directory1/directory2/'. Skip set this parameter to change Acl recursively from root directory of the Filesystem. - - System.String - - System.String - - - None - - - Acl - - The POSIX access control list to set recursively for the file or directory. - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - BatchSize - - If data set size exceeds batch size then operation will be split into multiple requests so that progress can be tracked. Batch size should be between 1 and 2000. Default is 2000. - - System.Int32 - - System.Int32 - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Continuation Token. - - System.String - - System.String - - - None - - - ContinueOnFailure - - Set this parameter to ignore failures and continue proceeing with the operation on other sub-entities of the directory. Default the operation will terminate quickly on encountering failures. - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - MaxBatchCount - - Maximum number of batches that single change Access Control operation can execute. If data set size exceeds MaxBatchCount multiply BatchSize, continuation token will be return. - - System.Int32 - - System.Int32 - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Acl - - The POSIX access control list to set recursively for the file or directory. - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - - None - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - BatchSize - - If data set size exceeds batch size then operation will be split into multiple requests so that progress can be tracked. Batch size should be between 1 and 2000. Default is 2000. - - System.Int32 - - System.Int32 - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Continuation Token. - - System.String - - System.String - - - None - - - ContinueOnFailure - - Set this parameter to ignore failures and continue proceeing with the operation on other sub-entities of the directory. Default the operation will terminate quickly on encountering failures. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - MaxBatchCount - - Maximum number of batches that single change Access Control operation can execute. If data set size exceeds MaxBatchCount multiply BatchSize, continuation token will be return. - - System.Int32 - - System.Int32 - - - None - - - Path - - The path in the specified FileSystem that to change Acl recursively. Can be a file or directory. In the format 'directory/file.txt' or 'directory1/directory2/'. Skip set this parameter to change Acl recursively from root directory of the Filesystem. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - - - - - - Example 1: Remove ACL recursively on a root directiry of filesystem - $acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -EntityId $id -Permission r-x -DefaultScope -$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -EntityId $id -Permission r-x -InputObject $acl -Remove-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Acl $acl -Context $ctx -WARNING: To find the ACL Entry to remove, will only compare AccessControlType, DefaultScope and EntityId, will omit Permission. - -FailedEntries : -TotalDirectoriesSuccessfulCount : 7 -TotalFilesSuccessfulCount : 5 -TotalFailureCount : 0 -ContinuationToken : - - This command first creates an ACL object with 2 acl entries, then removes ACL recursively on a root directory of a file system. - - - - - - ------- Example 2: Remove ACL recursively on a directory ------- - $result = Remove-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl -Context $ctx -WARNING: To find the ACL Entry to remove, will only compare AccessControlType, DefaultScope and EntityId, will omit Permission. - -$result - -FailedEntries : {dir1/dir2/file4} -TotalDirectoriesSuccessfulCount : 500 -TotalFilesSuccessfulCount : 2500 -TotalFailureCount : 1 -ContinuationToken : VBaHi5TfyO2ai1wYTRhIL2FjbGNibjA2c3RmATAxRDVEN0UzRENFQzZCRTAvYWRsc3Rlc3QyATAxRDY2M0ZCQTZBN0JGQTkvZGlyMC9kaXIxL2ZpbGUzFgAAAA== - -$result.FailedEntries - -Name IsDirectory ErrorMessage ----- ----------- ------------ -dir0/dir2/file4 False This request is not authorized to perform this operation using this permission. - -# user need fix the failed item , then can resume with ContinuationToken - -$result = Remove-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl -ContinuationToken $result.ContinuationToken -Context $ctx -WARNING: To find the ACL Entry to remove, will only compare AccessControlType, DefaultScope and EntityId, will omit Permission. - -$result - -FailedEntries : -TotalDirectoriesSuccessfulCount : 100 -TotalFilesSuccessfulCount : 1000 -TotalFailureCount : 0 -ContinuationToken : - - This command first removes ACL recursively on a directory and failed, then resume with ContinuationToken after user fix the failed file. - - - - - - ------- Example 3: Remove ACL recursively chunk by chunk ------- - $token = $null -$TotalDirectoriesSuccess = 0 -$TotalFilesSuccess = 0 -$totalFailure = 0 -$FailedEntries = New-Object System.Collections.Generic.List[System.Object] -do -{ - $result = Remove-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl -BatchSize 1000 -MaxBatchCount 50 -ContinuationToken $token -Context $ctx - - # echo $result - $TotalFilesSuccess += $result.TotalFilesSuccessfulCount - $TotalDirectoriesSuccess += $result.TotalDirectoriesSuccessfulCount - $totalFailure += $result.TotalFailureCount - $FailedEntries += $result.FailedEntries - $token = $result.ContinuationToken -}while (($token -ne $null) -and ($result.TotalFailureCount -eq 0)) -echo "" -echo "[Result Summary]" -echo "TotalDirectoriesSuccessfulCount: `t$($TotalDirectoriesSuccess)" -echo "TotalFilesSuccessfulCount: `t`t`t$($TotalFilesSuccess)" -echo "TotalFailureCount: `t`t`t`t`t$($totalFailure)" -echo "ContinuationToken: `t`t`t`t`t$($token)" -echo "FailedEntries:"$($FailedEntries | ft) - - This script will remove ACL rescursively on directory chunk by chunk, with chunk size as BatchSize * MaxBatchCount. Chunk size is 50000 in this script. - - - - - - Example 4: Remove ACL recursively on a directory and ContinueOnFailure, then resume from failures one by one - $result = Remove-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl -ContinueOnFailure -Context $ctx - -$result - -FailedEntries : {dir0/dir1/file1, dir0/dir2/file4} -TotalDirectoriesSuccessfulCount : 100 -TotalFilesSuccessfulCount : 500 -TotalFailureCount : 2 -ContinuationToken : VBaHi5TfyO2ai1wYTRhIL2FjbGNibjA2c3RmATAxRDVEN0UzRENFQzZCRTAvYWRsc3Rlc3QyATAxRDY2M0ZCQTZBN0JGQTkvZGlyMC9kaXIxL2ZpbGUzFgAAAA== - -$result.FailedEntries - -Name IsDirectory ErrorMessage ----- ----------- ------------ -dir0/dir1/file1 False This request is not authorized to perform this operation using this permission. -dir0/dir2/file4 False This request is not authorized to perform this operation using this permission. - -# user need fix the failed item , then can resume with ContinuationToken - -foreach ($path in $result.FailedEntries.Name) - { - # user code to fix failed entry in $path - - #set ACL again - Remove-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path $path -Acl $acl -Context $ctx - } - - This command first removes ACL recursively to a directory with ContinueOnFailure, and some items failed, then resume the failed items one by one. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azdatalakegen2aclrecursive - - - - - - Remove-AzDataLakeGen2Item - Remove - AzDataLakeGen2Item - - Remove a file or directory. - - - - The Remove-AzDataLakeGen2Item cmdlet removes a file or directory from a Storage account. This cmdlet only works if Hierarchical Namespace is enabled for the Storage account. This kind of account can be created by run "New-AzStorageAccount" cmdlet with "-EnableHierarchicalNamespace $true". - - - - Remove-AzDataLakeGen2Item - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Path - - The path in the specified Filesystem that should be removed. Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/' - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to remove the Filesystem and all content in it - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Return whether the specified Filesystem is successfully removed - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzDataLakeGen2Item - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to remove the Filesystem and all content in it - - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Azure Datalake Gen2 Item Object to remove. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - None - - - PassThru - - Return whether the specified Filesystem is successfully removed - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Force - - Force to remove the Filesystem and all content in it - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Azure Datalake Gen2 Item Object to remove. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - None - - - PassThru - - Return whether the specified Filesystem is successfully removed - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Path - - The path in the specified Filesystem that should be removed. Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/' - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - ---------------- Example 1: Removes a directory ---------------- - Remove-AzDataLakeGen2Item -FileSystem "filesystem1" -Path "dir1/" - - This command removes a directory from a Filesystem. - - - - - - ----------- Example 2: Removes a file without prompt ----------- - Remove-AzDataLakeGen2Item -FileSystem "filesystem1" -Path "dir1/file1" -Force - - This command removes a directory from a Filesystem, without prompt. - - - - - - -- Example 3: Remove all items in a Filesystem with pipeline -- - Get-AzDataLakeGen2ChildItem -FileSystem "filesystem1" | Remove-AzDataLakeGen2Item -Force - - This command removes all items in a Filesystem with pipeline. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azdatalakegen2item - - - - - - Remove-AzStorageBlob - Remove - AzStorageBlob - - Removes the specified storage blob. - - - - The Remove-AzStorageBlob cmdlet removes the specified blob from a storage account in Azure. - - - - Remove-AzStorageBlob - - Blob - - Specifies the name of the blob you want to remove. - - System.String - - System.String - - - None - - - Container - - Specifies the name of the container. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage context. You can use the New-AzStorageContext cmdlet to create it. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DeleteSnapshot - - Specifies that all snapshots be deleted, but not the base blob. If this parameter is not specified, the base blob and its snapshots are deleted together. The user is prompted to confirm the delete operation. - - - System.Management.Automation.SwitchParameter - - - False - - - Force - - Indicates that this cmdlet removes the blob and its snapshot without confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the Azure profile for the cmdlet to read. If not specified, the cmdlet reads from the default profile. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SnapshotTime - - Blob SnapshotTime - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - VersionId - - Blob VersionId - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageBlob - - Blob - - Specifies the name of the blob you want to remove. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlobContainer - - Specifies a CloudBlobContainer object from the Azure Storage Client library. You can use the Get-AzStorageContainer cmdlet to get it. - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage context. You can use the New-AzStorageContext cmdlet to create it. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DeleteSnapshot - - Specifies that all snapshots be deleted, but not the base blob. If this parameter is not specified, the base blob and its snapshots are deleted together. The user is prompted to confirm the delete operation. - - - System.Management.Automation.SwitchParameter - - - False - - - Force - - Indicates that this cmdlet removes the blob and its snapshot without confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the Azure profile for the cmdlet to read. If not specified, the cmdlet reads from the default profile. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SnapshotTime - - Blob SnapshotTime - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - VersionId - - Blob VersionId - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageBlob - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlob - - Specifies a cloud blob. To obtain a CloudBlob object, use the Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage context. You can use the New-AzStorageContext cmdlet to create it. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DeleteSnapshot - - Specifies that all snapshots be deleted, but not the base blob. If this parameter is not specified, the base blob and its snapshots are deleted together. The user is prompted to confirm the delete operation. - - - System.Management.Automation.SwitchParameter - - - False - - - Force - - Indicates that this cmdlet removes the blob and its snapshot without confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the Azure profile for the cmdlet to read. If not specified, the cmdlet reads from the default profile. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Blob - - Specifies the name of the blob you want to remove. - - System.String - - System.String - - - None - - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlob - - Specifies a cloud blob. To obtain a CloudBlob object, use the Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - CloudBlobContainer - - Specifies a CloudBlobContainer object from the Azure Storage Client library. You can use the Get-AzStorageContainer cmdlet to get it. - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Specifies the name of the container. - - System.String - - System.String - - - None - - - Context - - Specifies the Azure storage context. You can use the New-AzStorageContext cmdlet to create it. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DeleteSnapshot - - Specifies that all snapshots be deleted, but not the base blob. If this parameter is not specified, the base blob and its snapshots are deleted together. The user is prompted to confirm the delete operation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Force - - Indicates that this cmdlet removes the blob and its snapshot without confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the Azure profile for the cmdlet to read. If not specified, the cmdlet reads from the default profile. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SnapshotTime - - Blob SnapshotTime - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - VersionId - - Blob VersionId - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Storage.Blob.CloudBlob - - - - - - - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - ----------- Example 1: Remove a storage blob by name ----------- - Remove-AzStorageBlob -Container "ContainerName" -Blob "BlobName" - - This command removes a blob identified by its name. - - - - - - ----- Example 2: Remove a storage blob using the pipeline ----- - Get-AzStorageBlob -Container "ContainerName" -Blob "BlobName" | Remove-AzStorageBlob - - This command uses the pipeline. - - - - - - ------ Example 3: Remove storage blobs using the pipeline ------ - Get-AzStorageContainer -Container container* | Remove-AzStorageBlob -Blob "BlobName" - - This command uses the asterisk (*) wildcard character and the pipeline to retrieve the blob or blobs and then removes them. - - - - - - ----------- Example 4: Remove a single blob version ----------- - Remove-AzStorageBlob -Container "containername" -Blob blob2 -VersionId "2020-07-03T16:19:16.2883167Z" - - This command removes a single blobs verion with VersionId. - - - - - - ----------- Example 5: Remove a single blob snapshot ----------- - Remove-AzStorageBlob -Container "containername" -Blob blob1 -SnapshotTime "2020-07-06T06:56:06.8588431Z" - - This command removes a single blobs snapshot with SnapshotTime. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstorageblob - - - Get-AzStorageBlob - - - - Get-AzStorageBlobContent - - - - Set-AzStorageBlobContent - - - - - - - Remove-AzStorageBlobImmutabilityPolicy - Remove - AzStorageBlobImmutabilityPolicy - - Removes ImmutabilityPolicy of a Storage blob. - - - - The Remove-AzStorageBlobImmutabilityPolicy cmdlet removes immutability policy of a Storage blob. - - - - Remove-AzStorageBlobImmutabilityPolicy - - Blob - - Blob name - - System.String - - System.String - - - None - - - Container - - Container name - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageBlobImmutabilityPolicy - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Blob - - Blob name - - System.String - - System.String - - - None - - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Container name - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageBlob - - - - - - - - - - - - - - -- Example 1: Removes immutability policy of a Storage blob. -- - $blob = Remove-AzStorageBlobImmutabilityPolicy -Container $containerName -Blob $blobname - -$blob - - AccountName: mystorageaccount, ContainerName: mycontainer - -Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId ----- -------- ------ ----------- ------------ ---------- ------------ --------- --------- -testblob BlockBlob 10485760 application/octet-stream 2021-07-19 08:56:00Z Hot False 2021-07-19T08:56:01.8120788Z * - -$blob.BlobProperties.ImmutabilityPolicy - -ExpiresOn PolicyMode ---------- ---------- - - This command removes ImmutabilityPolicy of a Storage blob, then show the result. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstorageblobimmutabilitypolicy - - - - - - Remove-AzStorageContainer - Remove - AzStorageContainer - - Removes the specified storage container. - - - - The Remove-AzStorageContainer cmdlet removes the specified storage container in Azure. - - - - Remove-AzStorageContainer - - Name - - Specifies the name of the container to remove. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies a context for the container you want to remove. You can use the New-AzStorageContext cmdlet to create it. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies a context for the container you want to remove. You can use the New-AzStorageContext cmdlet to create it. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Specifies the name of the container to remove. - - System.String - - System.String - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - ---------------- Example 1: Remove a container ---------------- - Remove-AzStorageContainer -Name "MyTestContainer" - - This example removes a container named MyTestContainer. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstoragecontainer - - - Get-AzStorageContainer - - - - New-AzStorageContainer - - - - - - - Remove-AzStorageContainerStoredAccessPolicy - Remove - AzStorageContainerStoredAccessPolicy - - Removes a stored access policy from an Azure storage container. - - - - The Remove-AzStorageContainerStoredAccessPolicy cmdlet removes a stored access policy from an Azure storage container. - - - - Remove-AzStorageContainerStoredAccessPolicy - - Container - - Specifies the Azure storage container name. - - System.String - - System.String - - - None - - - Policy - - Specifies the name of the stored access policy that this cmdlet removes. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Specifies the Azure storage container name. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Policy - - Specifies the name of the stored access policy that this cmdlet removes. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - Example 1: Remove a stored access policy from a storage container - Remove-AzStorageContainerStoredAccessPolicy -Container "MyContainer" -Policy "Policy03" - - This command removes an access policy named Policy03 from the stored container named MyContainer. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstoragecontainerstoredaccesspolicy - - - Get-AzStorageContainerStoredAccessPolicy - - - - New-AzStorageContainerStoredAccessPolicy - - - - New-AzStorageContext - - - - Set-AzStorageContainerStoredAccessPolicy - - - - - - - Remove-AzStorageCORSRule - Remove - AzStorageCORSRule - - Removes CORS for a Storage service. - - - - The Remove-AzStorageCORSRule cmdlet removes Cross-Origin Resource Sharing (CORS) for an Azure Storage service. This cmdlet deletes all CORS rules in a Storage service type. The types of storage services for this cmdlet are Blob, Table, Queue, and File. - - - - Remove-AzStorageCORSRule - - ServiceType - - Specifies the Azure Storage service type for which this cmdlet removes rules. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - - - Blob - Table - Queue - File - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage context. To obtain the storage context, the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage context. To obtain the storage context, the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ServiceType - - Specifies the Azure Storage service type for which this cmdlet removes rules. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Void - - - - - - - - - - - - - - ------ Example 1: Remove CORS rules for the blob service ------ - Remove-AzStorageCORSRule -ServiceType Blob - - This command removes CORS rules for the Blob service type. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstoragecorsrule - - - Get-AzStorageCORSRule - - - - Set-AzStorageCORSRule - - - - - - - Remove-AzStorageDirectory - Remove - AzStorageDirectory - - Deletes a directory. - - - - The Remove-AzStorageDirectory cmdlet deletes a directory. - - - - Remove-AzStorageDirectory - - ShareName - - Specifies the name of the file share. This cmdlet removes a folder under the file share that this parameter specifies. - - System.String - - System.String - - - None - - - Path - - Specifies the path of a folder. If the folder that this parameter specifies is empty, this cmdlet deletes that folder. If the folder is not empty, this cmdlet makes no change, and returns an error. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that, if this cmdlet succeeds, it returns a value of $True. If you specify this parameter, and if the cmdlet is unsuccessful because of an inappropriate value for the Path parameter, the cmdlet returns an error. If you do not specify this parameter, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageDirectory - - ShareClient - - ShareClient object indicated the share where the directory would be removed. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - Path - - Specifies the path of a folder. If the folder that this parameter specifies is empty, this cmdlet deletes that folder. If the folder is not empty, this cmdlet makes no change, and returns an error. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that, if this cmdlet succeeds, it returns a value of $True. If you specify this parameter, and if the cmdlet is unsuccessful because of an inappropriate value for the Path parameter, the cmdlet returns an error. If you do not specify this parameter, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageDirectory - - ShareDirectoryClient - - ShareDirectoryClient object indicated the base folder where the directory would be removed. - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - Path - - Specifies the path of a folder. If the folder that this parameter specifies is empty, this cmdlet deletes that folder. If the folder is not empty, this cmdlet makes no change, and returns an error. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that, if this cmdlet succeeds, it returns a value of $True. If you specify this parameter, and if the cmdlet is unsuccessful because of an inappropriate value for the Path parameter, the cmdlet returns an error. If you do not specify this parameter, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that, if this cmdlet succeeds, it returns a value of $True. If you specify this parameter, and if the cmdlet is unsuccessful because of an inappropriate value for the Path parameter, the cmdlet returns an error. If you do not specify this parameter, this cmdlet does not return a value. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Path - - Specifies the path of a folder. If the folder that this parameter specifies is empty, this cmdlet deletes that folder. If the folder is not empty, this cmdlet makes no change, and returns an error. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ShareClient - - ShareClient object indicated the share where the directory would be removed. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - ShareDirectoryClient - - ShareDirectoryClient object indicated the base folder where the directory would be removed. - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - ShareName - - Specifies the name of the file share. This cmdlet removes a folder under the file share that this parameter specifies. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Azure.Storage.Files.Shares.ShareClient - - - - - - - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFileDirectory - - - - - - - - - - - - - - ------------------ Example 1: Delete a folder ------------------ - Remove-AzStorageDirectory -ShareName "ContosoShare06" -Path "ContosoWorkingFolder" - - This command deletes the folder named ContosoWorkingFolder from the file share named ContosoShare06. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstoragedirectory - - - Get-AzStorageShare - - - - New-AzStorageContext - - - - New-AzStorageDirectory - - - - - - - Remove-AzStorageFile - Remove - AzStorageFile - - Deletes a file. - - - - The Remove-AzStorageFile cmdlet deletes a file. - - - - Remove-AzStorageFile - - ShareName - - Specifies the name of the file share. This cmdlet removes the file in the share this parameter specifies. - - System.String - - System.String - - - None - - - Path - - Specifies the path of a file. This cmdlet deletes the file that this parameter specifies. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageFile - - ShareClient - - ShareClient object indicated the share where the file would be removed. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - Path - - Specifies the path of a file. This cmdlet deletes the file that this parameter specifies. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageFile - - ShareDirectoryClient - - ShareDirectoryClient object indicated the base folder where the file would be removed. - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - Path - - Specifies the path of a file. This cmdlet deletes the file that this parameter specifies. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageFile - - ShareFileClient - - ShareFileClient object indicated the file would be removed. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Path - - Specifies the path of a file. This cmdlet deletes the file that this parameter specifies. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ShareClient - - ShareClient object indicated the share where the file would be removed. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - ShareDirectoryClient - - ShareDirectoryClient object indicated the base folder where the file would be removed. - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - ShareFileClient - - ShareFileClient object indicated the file would be removed. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - ShareName - - Specifies the name of the file share. This cmdlet removes the file in the share this parameter specifies. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Azure.Storage.Files.Shares.ShareClient - - - - - - - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - - - - - - Azure.Storage.Files.Shares.ShareFileClient - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFile - - - - - - - - - - - - - - ---------- Example 1: Delete a file from a file share ---------- - Remove-AzStorageFile -ShareName "ContosoShare06" -Path "ContosoFile22" - - This command deletes the file that is named ContosoFile22 from the file share named ContosoShare06. - - - - - - Example 2: Get a file from a file share by using a file share object - Get-AzStorageShare -Name "ContosoShare06" | Remove-AzStorageFile -Path "ContosoFile22" - - This command uses the Get-AzStorageShare cmdlet to get the file share named ContosoShare06, and then passes that object to the current cmdlet by using the pipeline operator. The current command deletes the file that is named ContosoFile22 from ContosoShare06. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstoragefile - - - Get-AzStorageFile - - - - Get-AzStorageShare - - - - New-AzStorageContext - - - - - - - Remove-AzStorageQueue - Remove - AzStorageQueue - - Removes a storage queue. - - - - The Remove-AzStorageQueue cmdlet removes a storage queue. - - - - Remove-AzStorageQueue - - Name - - Specifies the name of the queue to remove. - - System.String - - System.String - - - None - - - Context - - Specifies the Azure storage context. To obtain the storage context, the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Context - - Specifies the Azure storage context. To obtain the storage context, the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Specifies the name of the queue to remove. - - System.String - - System.String - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - ---------- Example 1: Remove a storage queue by name ---------- - Remove-AzStorageQueue "ContosoQueue01" - - This command removes a queue named ContosoQueue01. - - - - - - ---------- Example 2: Remove multiple storage queues ---------- - Get-AzStorageQueue "Contoso*" | Remove-AzStorageQueue - - This command removes all queues with names that start with Contoso. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstoragequeue - - - Get-AzStorageQueue - - - - New-AzStorageQueue - - - - - - - Remove-AzStorageQueueStoredAccessPolicy - Remove - AzStorageQueueStoredAccessPolicy - - Removes a stored access policy from an Azure storage queue. - - - - The Remove-AzStorageQueueStoredAccessPolicy cmdlet removes a stored access policy from an Azure storage queue. - - - - Remove-AzStorageQueueStoredAccessPolicy - - Queue - - Specifies the Azure storage queue name. - - System.String - - System.String - - - None - - - Policy - - Specifies the name of the stored access policy that this cmdlet removes. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Policy - - Specifies the name of the stored access policy that this cmdlet removes. - - System.String - - System.String - - - None - - - Queue - - Specifies the Azure storage queue name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - Example 1: Remove a stored access policy from a storage queue - Remove-AzStorageQueueStoredAccessPolicy -Queue "MyQueue" -Policy "Policy04" - - This command removes an access policy named Policy04 from the storage queue named MyQueue. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstoragequeuestoredaccesspolicy - - - Get-AzStorageQueueStoredAccessPolicy - - - - New-AzStorageContext - - - - New-AzStorageQueueStoredAccessPolicy - - - - Set-AzStorageQueueStoredAccessPolicy - - - - - - - Remove-AzStorageShare - Remove - AzStorageShare - - Deletes a file share. - - - - The Remove-AzStorageShare cmdlet deletes a file share. - - - - Remove-AzStorageShare - - Name - - Specifies the name of the file share. This cmdlet deletes the file share that this parameter specifies. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to remove the share with all of its snapshots, and all content. - - - System.Management.Automation.SwitchParameter - - - False - - - IncludeAllSnapshot - - Remove File Share with all of its snapshots - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SnapshotTime - - SnapshotTime of the file share snapshot to be removed. - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageShare - - ShareClient - - File share Client to be removed. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to remove the share with all of its snapshots, and all content. - - - System.Management.Automation.SwitchParameter - - - False - - - IncludeAllSnapshot - - Remove File Share with all of its snapshots - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to remove the share with all of its snapshots, and all content. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IncludeAllSnapshot - - Remove File Share with all of its snapshots - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Specifies the name of the file share. This cmdlet deletes the file share that this parameter specifies. - - System.String - - System.String - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ShareClient - - File share Client to be removed. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - SnapshotTime - - SnapshotTime of the file share snapshot to be removed. - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Azure.Storage.Files.Shares.ShareClient - - - - - - - - System.Nullable`1[[System.DateTimeOffset, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]] - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFileShare - - - - - - - - - - - - - - ---------------- Example 1: Remove a file share ---------------- - Remove-AzStorageShare -Name "ContosoShare06" - - This command removes the file share named ContosoShare06. - - - - - - ----- Example 2: Remove a file share and all its snapshots ----- - Remove-AzStorageShare -Name "ContosoShare06" -IncludeAllSnapshot - - This command removes the file share named ContosoShare06 and all its snapshots. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstorageshare - - - Get-AzStorageShare - - - - New-AzStorageContext - - - - New-AzStorageShare - - - - - - - Remove-AzStorageShareStoredAccessPolicy - Remove - AzStorageShareStoredAccessPolicy - - Removes a stored access policy from a Storage share. - - - - The Remove-AzStorageShareStoredAccessPolicy cmdlet removes a stored access policy from an Azure Storage share. - - - - Remove-AzStorageShareStoredAccessPolicy - - ShareName - - Specifies the Storage share name for which this cmdlet removes a policy. - - System.String - - System.String - - - None - - - Policy - - Specifies the name of the stored access policy that this cmdlet removes. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Policy - - Specifies the name of the stored access policy that this cmdlet removes. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ShareName - - Specifies the Storage share name for which this cmdlet removes a policy. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - Example 1: Remove a stored access policy from an Azure Storage share - Remove-AzStorageShareStoredAccessPolicy -ShareName "ContosoShare" -Policy "GeneralPolicy" - - This command removes a stored access policy named GeneralPolicy from ContosoShare. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstoragesharestoredaccesspolicy - - - Get-AzStorageShareStoredAccessPolicy - - - - New-AzStorageShareStoredAccessPolicy - - - - New-AzStorageContext - - - - Set-AzStorageShareStoredAccessPolicy - - - - - - - Remove-AzStorageTable - Remove - AzStorageTable - - Removes a storage table. - - - - The Remove-AzStorageTable cmdlet removes one or more storage tables from a storage account in Azure. - - - - Remove-AzStorageTable - - Name - - Specifies the name of the table to remove. - - System.String - - System.String - - - None - - - Context - - Specifies the Azure storage context. You can create it by using the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Context - - Specifies the Azure storage context. You can create it by using the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Specifies the name of the table to remove. - - System.String - - System.String - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - ------------------ Example 1: Remove a table ------------------ - Remove-AzStorageTable -Name "TableABC" - - This command removes a table. - - - - - - --------------- Example 2: Remove several tables --------------- - Get-AzStorageTable table* | Remove-AzStorageTable - - This example uses a wildcard character with the Name parameter to get all tables that match the pattern table and then passes the result on the pipeline to remove the tables. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstoragetable - - - Get-AzStorageTable - - - - - - - Remove-AzStorageTableStoredAccessPolicy - Remove - AzStorageTableStoredAccessPolicy - - Removes a stored access policy from an Azure storage table. - - - - The Remove-AzStorageTableStoredAccessPolicy cmdlet removes a stored access policy from an Azure storage table. - - - - Remove-AzStorageTableStoredAccessPolicy - - Table - - Specifies the Azure table name. - - System.String - - System.String - - - None - - - Policy - - Specifies the name of the stored access policy that this cmdlet removes. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Policy - - Specifies the name of the stored access policy that this cmdlet removes. - - System.String - - System.String - - - None - - - Table - - Specifies the Azure table name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - Example 1: Remove a stored access policy from a storage table - Remove-AzStorageTableStoredAccessPolicy -Table "MyTable" -Policy "Policy05" - - This command removes policy named Policy05 from storage table named MyTable. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstoragetablestoredaccesspolicy - - - Get-AzStorageTableStoredAccessPolicy - - - - New-AzStorageContext - - - - New-AzStorageTableStoredAccessPolicy - - - - Set-AzStorageTableStoredAccessPolicy - - - - - - - Rename-AzStorageDirectory - Rename - AzStorageDirectory - - Renames a directory. - - - - The Rename-AzStorageDirectory cmdlet renames a directory from a file share. - - - - Rename-AzStorageDirectory - - ShareName - - Name of the file share where the directory would be listed. - - System.String - - System.String - - - None - - - SourcePath - - Path to an existing directory. - - System.String - - System.String - - - None - - - DestinationPath - - The destination path to rename the directory to. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowDestTrailingDot - - Disallow trailing dot (.) to suffix destination directory and destination file names. - - - System.Management.Automation.SwitchParameter - - - False - - - DisAllowSourceTrailingDot - - Disallow trailing dot (.) to suffix source directory and source file names. - - - System.Management.Automation.SwitchParameter - - - False - - - Force - - Force to overwrite the existing file. - - - System.Management.Automation.SwitchParameter - - - False - - - IgnoreReadonly - - Optional. Specifies whether the ReadOnly attribute on a preexisting destination file should be respected. If true, the rename will succeed, otherwise, a previous file at the destination with the ReadOnly attribute set will cause the rename to fail. - - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - If specified the permission (security descriptor) shall be set for the directory/file. Default value: Inherit. If SDDL is specified as input, it must have owner, group and dacl. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Rename-AzStorageDirectory - - ShareClient - - ShareClienr indicated the share where the directory would be listed. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - SourcePath - - Path to an existing directory. - - System.String - - System.String - - - None - - - DestinationPath - - The destination path to rename the directory to. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to overwrite the existing file. - - - System.Management.Automation.SwitchParameter - - - False - - - IgnoreReadonly - - Optional. Specifies whether the ReadOnly attribute on a preexisting destination file should be respected. If true, the rename will succeed, otherwise, a previous file at the destination with the ReadOnly attribute set will cause the rename to fail. - - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - If specified the permission (security descriptor) shall be set for the directory/file. Default value: Inherit. If SDDL is specified as input, it must have owner, group and dacl. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Rename-AzStorageDirectory - - ShareDirectoryClient - - Source directory instance - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - DestinationPath - - The destination path to rename the directory to. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to overwrite the existing file. - - - System.Management.Automation.SwitchParameter - - - False - - - IgnoreReadonly - - Optional. Specifies whether the ReadOnly attribute on a preexisting destination file should be respected. If true, the rename will succeed, otherwise, a previous file at the destination with the ReadOnly attribute set will cause the rename to fail. - - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - If specified the permission (security descriptor) shall be set for the directory/file. Default value: Inherit. If SDDL is specified as input, it must have owner, group and dacl. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestinationPath - - The destination path to rename the directory to. - - System.String - - System.String - - - None - - - DisAllowDestTrailingDot - - Disallow trailing dot (.) to suffix destination directory and destination file names. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DisAllowSourceTrailingDot - - Disallow trailing dot (.) to suffix source directory and source file names. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Force - - Force to overwrite the existing file. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IgnoreReadonly - - Optional. Specifies whether the ReadOnly attribute on a preexisting destination file should be respected. If true, the rename will succeed, otherwise, a previous file at the destination with the ReadOnly attribute set will cause the rename to fail. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - If specified the permission (security descriptor) shall be set for the directory/file. Default value: Inherit. If SDDL is specified as input, it must have owner, group and dacl. - - System.String - - System.String - - - None - - - ShareClient - - ShareClienr indicated the share where the directory would be listed. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - ShareDirectoryClient - - Source directory instance - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - ShareName - - Name of the file share where the directory would be listed. - - System.String - - System.String - - - None - - - SourcePath - - Path to an existing directory. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Azure.Storage.Files.Shares.ShareClient - - - - - - - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFileDirectory - - - - - - - - - - - - - - ---------------- Example 1 : Rename a directory ---------------- - Rename-AzStorageDirectory -ShareName myshare -SourcePath testdir1 -DestinationPath testdir2 - -AccountName: myaccount, ShareName: myshare - -Type Length Name ----- ------ ---- -Directory 1 testdir2 - - This command renames a directory from testdir1 to testdir2. - - - - - - -------- Example 2 : Rename a directory using pipeline -------- - Get-AzStorageFile -ShareName myshare -Path testdir1 | Rename-AzStorageDirectory -DestinationPath testdir2 - -AccountName: myaccount, ShareName: myshare - -Type Length Name ----- ------ ---- -Directory 1 testdir2 - - This command gets a directory from a file share first, and then rename the directory from testdir1 to testdir2 using pipeline. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/rename-azstoragedirectory - - - - - - Rename-AzStorageFile - Rename - AzStorageFile - - Renames a file. - - - - The Rename-AzStorageFile cmdlet renames a directory from a file share. - - - - Rename-AzStorageFile - - ShareName - - Name of the file share where the file would be listed. - - System.String - - System.String - - - None - - - DestinationPath - - The destination path to rename the file to. - - System.String - - System.String - - - None - - - SourcePath - - Path to an existing file. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - ContentType - - Sets the MIME content type of the file. The default type is 'application/octet-stream'. - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowDestTrailingDot - - Disallow trailing dot (.) to suffix destination directory and destination file names. - - - System.Management.Automation.SwitchParameter - - - False - - - DisAllowSourceTrailingDot - - Disallow trailing dot (.) to suffix source directory and source file names. - - - System.Management.Automation.SwitchParameter - - - False - - - Force - - Force to overwrite the existing file. - - - System.Management.Automation.SwitchParameter - - - False - - - IgnoreReadonly - - Optional. Specifies whether the ReadOnly attribute on a preexisting destination file should be respected. If true, the rename will succeed, otherwise, a previous file at the destination with the ReadOnly attribute set will cause the rename to fail. - - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - If specified the permission (security descriptor) shall be set for the directory/file. Default value: Inherit. If SDDL is specified as input, it must have owner, group and dacl. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Rename-AzStorageFile - - ShareClient - - ShareClient indicated the share where the file would be listed. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - DestinationPath - - The destination path to rename the file to. - - System.String - - System.String - - - None - - - SourcePath - - Path to an existing file. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - ContentType - - Sets the MIME content type of the file. The default type is 'application/octet-stream'. - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to overwrite the existing file. - - - System.Management.Automation.SwitchParameter - - - False - - - IgnoreReadonly - - Optional. Specifies whether the ReadOnly attribute on a preexisting destination file should be respected. If true, the rename will succeed, otherwise, a previous file at the destination with the ReadOnly attribute set will cause the rename to fail. - - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - If specified the permission (security descriptor) shall be set for the directory/file. Default value: Inherit. If SDDL is specified as input, it must have owner, group and dacl. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Rename-AzStorageFile - - ShareDirectoryClient - - ShareDirectoryClient indicated the share where the file would be listed. - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - DestinationPath - - The destination path to rename the file to. - - System.String - - System.String - - - None - - - SourcePath - - Path to an existing file. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - ContentType - - Sets the MIME content type of the file. The default type is 'application/octet-stream'. - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to overwrite the existing file. - - - System.Management.Automation.SwitchParameter - - - False - - - IgnoreReadonly - - Optional. Specifies whether the ReadOnly attribute on a preexisting destination file should be respected. If true, the rename will succeed, otherwise, a previous file at the destination with the ReadOnly attribute set will cause the rename to fail. - - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - If specified the permission (security descriptor) shall be set for the directory/file. Default value: Inherit. If SDDL is specified as input, it must have owner, group and dacl. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Rename-AzStorageFile - - ShareFileClient - - Source file instance - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - DestinationPath - - The destination path to rename the file to. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - ContentType - - Sets the MIME content type of the file. The default type is 'application/octet-stream'. - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to overwrite the existing file. - - - System.Management.Automation.SwitchParameter - - - False - - - IgnoreReadonly - - Optional. Specifies whether the ReadOnly attribute on a preexisting destination file should be respected. If true, the rename will succeed, otherwise, a previous file at the destination with the ReadOnly attribute set will cause the rename to fail. - - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - If specified the permission (security descriptor) shall be set for the directory/file. Default value: Inherit. If SDDL is specified as input, it must have owner, group and dacl. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ContentType - - Sets the MIME content type of the file. The default type is 'application/octet-stream'. - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestinationPath - - The destination path to rename the file to. - - System.String - - System.String - - - None - - - DisAllowDestTrailingDot - - Disallow trailing dot (.) to suffix destination directory and destination file names. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DisAllowSourceTrailingDot - - Disallow trailing dot (.) to suffix source directory and source file names. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Force - - Force to overwrite the existing file. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IgnoreReadonly - - Optional. Specifies whether the ReadOnly attribute on a preexisting destination file should be respected. If true, the rename will succeed, otherwise, a previous file at the destination with the ReadOnly attribute set will cause the rename to fail. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - If specified the permission (security descriptor) shall be set for the directory/file. Default value: Inherit. If SDDL is specified as input, it must have owner, group and dacl. - - System.String - - System.String - - - None - - - ShareClient - - ShareClient indicated the share where the file would be listed. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - ShareDirectoryClient - - ShareDirectoryClient indicated the share where the file would be listed. - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - ShareFileClient - - Source file instance - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - ShareName - - Name of the file share where the file would be listed. - - System.String - - System.String - - - None - - - SourcePath - - Path to an existing file. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Azure.Storage.Files.Shares.ShareFileClient - - - - - - - - Azure.Storage.Files.Shares.ShareClient - - - - - - - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFile - - - - - - - - - - - - - - --------- Example 1 : Rename a file from a file share --------- - Rename-AzStorageFile -SourcePath testfile1 -DestinationPath testfile2 -ShareName myshare - -AccountName: myaccount, ShareName: myshare - -Type Length Name ----- ------ ---- -File 512 testfile2 - - This command renames a file from testfile1 to testfile2 under file share myshare. - - - - - - -- Example 2 : Rename a file from a file share using pipeline -- - Get-AzStorageFile -ShareName myshare -Path testfile1 | Rename-AzStorageFile -DestinationPath testfile2 - -AccountName: myaccount, ShareName: myshare - -Type Length Name ----- ------ ---- -File 512 testfile2 - - This command gets a file client object first, and the rename the file from testfile1 to testfile2 using pipeline. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/rename-azstoragefile - - - - - - Restore-AzDataLakeGen2DeletedItem - Restore - AzDataLakeGen2DeletedItem - - Restores a deleted file or directory in a filesystem. - - - - The Restore-AzDataLakeGen2DeletedItem cmdlet restores a deleted file or directory in a filesystem in an Azure storage account. This cmdlet only works if Hierarchical Namespace is enabled for the Storage account. This kind of account can be created by run "New-AzStorageAccount" cmdlet with "-EnableHierarchicalNamespace $true". - - - - Restore-AzDataLakeGen2DeletedItem - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Path - - The deleted item path in the specified FileSystem that should be restore. In the format 'directory/file.txt' or 'directory1/directory2/' - - System.String - - System.String - - - None - - - DeletionId - - The deletion ID associated with the soft deleted path. You can get soft deleted paths and their assocaited deletion IDs with cmdlet 'Get-AzDataLakeGen2DeletedItem'. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Restore-AzDataLakeGen2DeletedItem - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Azure Datalake Gen2 Deleted Item Object to restore. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2DeletedItem - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2DeletedItem - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DeletionId - - The deletion ID associated with the soft deleted path. You can get soft deleted paths and their assocaited deletion IDs with cmdlet 'Get-AzDataLakeGen2DeletedItem'. - - System.String - - System.String - - - None - - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - InputObject - - Azure Datalake Gen2 Deleted Item Object to restore. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2DeletedItem - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2DeletedItem - - - None - - - Path - - The deleted item path in the specified FileSystem that should be restore. In the format 'directory/file.txt' or 'directory1/directory2/' - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2DeletedItem - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - - - - - - - - - - - - Example 1: List all deleted files or directories from a Filesystem, and restore them by pipeline - $items = Get-AzDataLakeGen2DeletedItem -FileSystem "filesystem1" -$items - - FileSystem Name: filesystem1 - -Path DeletionId DeletedOn RemainingRetentionDays ----- ---------- --------- ---------------------- -dir0/dir1/file1 132658816156507617 2021-05-19 07:06:55Z 3 -dir0/dir2 132658834541610122 2021-05-19 07:37:34Z 3 -dir0/dir2/file3 132658834534174806 2021-05-19 07:37:33Z 3 - -$items | Restore-AzDataLakeGen2DeletedItem - - FileSystem Name: filesystem1 - -Path IsDirectory Length LastModified Permissions Owner Group ----- ----------- ------ ------------ ----------- ----- ----- -dir0/dir1/file1 False 1024 2021-05-19 07:06:39Z rw-r----- $superuser $superuser -dir0/dir2 True 2021-05-19 07:06:37Z rwxr-x--- $superuser $superuser -dir0/dir2/file3 False 1024 2021-05-19 07:06:42Z rw-r----- $superuser $superuser - - This command lists all deleted files or directories from a Filesystem, the restore all of them by pipeline. - - - - - - -- Example 2: Restore an single file with path and DeletionId -- - Restore-AzDataLakeGen2DeletedItem -FileSystem "filesystem1" -Path dir0/dir1/file1 -DeletionId 132658838415219780 - -FileSystem Name: filesystem1 - -Path IsDirectory Length LastModified Permissions Owner Group ----- ----------- ------ ------------ ----------- ----- ----- -dir0/dir1/file1 False 1024 2021-05-19 07:06:39Z rw-r----- $superuser $superuser - - This command restores an single file with path and DeletionId. The DeletionId can be get with 'Get-AzDataLakeGen2DeletedItem' cmdlet. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/restore-azdatalakegen2deleteditem - - - - - - Restore-AzStorageContainer - Restore - AzStorageContainer - - Restores a previously deleted Azure storage blob container. - - - - The Restore-AzStorageContainer cmdlet restores a previously deleted Azure storage blob container. This cmdlet only works after enabled Container softdelete with Enable-AzStorageBlobDeleteRetentionPolicy. - - - - Restore-AzStorageContainer - - Name - - The name of the previously deleted container. - - System.String - - System.String - - - None - - - VersionId - - The version of the previously deleted container. - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - The name of the previously deleted container. - - System.String - - System.String - - - None - - - VersionId - - The version of the previously deleted container. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - Example 1: List containers include deleted containers, and restore all deleted containers with pipeline - Get-AzStorageContainer -IncludeDeleted -Context $ctx | Where-Object { $_.IsDeleted } | Restore-AzStorageContainer - -Storage Account Name: storageaccountname - -Name PublicAccess LastModified IsDeleted VersionId ----- ------------ ------------ --------- --------- -container1 Off -container2 Off - - This command lists all containers include deleted containers, filter out all the deleted containers, then restore all deleted container to the same container name with pipeline. - - - - - - -------- Example 2: Restore a single deleted container -------- - Get-AzStorageContainer -IncludeDeleted -Context $ctx | Where-Object { $_.IsDeleted } - - Storage Account Name: storageaccountname - -Name PublicAccess LastModified IsDeleted VersionId ----- ------------ ------------ --------- --------- -container1 8/28/2020 10:18:13 AM +00:00 True 01D685BC91A88F22 -container2 9/4/2020 12:52:37 PM +00:00 True 01D67D248986B6DA - -Restore-AzStorageContainer -Name container1 -VersionId 01D685BC91A88F22 -Context $ctx - - Storage Account Name: storageaccountname - -Name PublicAccess LastModified IsDeleted VersionId ----- ------------ ------------ --------- --------- -container1 Off - - This first command lists all containers and filter out deleted containers. The secondary command restores a deleted container by manually input the parameters. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/restore-azstoragecontainer - - - - - - Set-AzDataLakeGen2AclRecursive - Set - AzDataLakeGen2AclRecursive - - Set ACL recursively on the specified path. - - - - The Set-AzDataLakeGen2AclRecursive cmdlet sets ACL recursively on the specified path. The input ACL will replace original ACL completely. - - - - Set-AzDataLakeGen2AclRecursive - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Path - - The path in the specified FileSystem that to change Acl recursively. Can be a file or directory. In the format 'directory/file.txt' or 'directory1/directory2/'. Skip set this parameter to change Acl recursively from root directory of the Filesystem. - - System.String - - System.String - - - None - - - Acl - - The POSIX access control list to set recursively for the file or directory. - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - BatchSize - - If data set size exceeds batch size then operation will be split into multiple requests so that progress can be tracked. Batch size should be between 1 and 2000. Default is 2000. - - System.Int32 - - System.Int32 - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Continuation Token. - - System.String - - System.String - - - None - - - ContinueOnFailure - - Set this parameter to ignore failures and continue proceeing with the operation on other sub-entities of the directory. Default the operation will terminate quickly on encountering failures. - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - MaxBatchCount - - Maximum number of batches that single change Access Control operation can execute. If data set size exceeds MaxBatchCount multiply BatchSize, continuation token will be return. - - System.Int32 - - System.Int32 - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Acl - - The POSIX access control list to set recursively for the file or directory. - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - - None - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - BatchSize - - If data set size exceeds batch size then operation will be split into multiple requests so that progress can be tracked. Batch size should be between 1 and 2000. Default is 2000. - - System.Int32 - - System.Int32 - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Continuation Token. - - System.String - - System.String - - - None - - - ContinueOnFailure - - Set this parameter to ignore failures and continue proceeing with the operation on other sub-entities of the directory. Default the operation will terminate quickly on encountering failures. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - MaxBatchCount - - Maximum number of batches that single change Access Control operation can execute. If data set size exceeds MaxBatchCount multiply BatchSize, continuation token will be return. - - System.Int32 - - System.Int32 - - - None - - - Path - - The path in the specified FileSystem that to change Acl recursively. Can be a file or directory. In the format 'directory/file.txt' or 'directory1/directory2/'. Skip set this parameter to change Acl recursively from root directory of the Filesystem. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - - - - - - -------- Example 1: Set ACL recursively on a directory -------- - $acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -Permission rwx -$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType group -Permission rw- -InputObject $acl -$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType other -Permission "rw-" -InputObject $acl -Set-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl -Context $ctx - -FailedEntries : -TotalDirectoriesSuccessfulCount : 7 -TotalFilesSuccessfulCount : 5 -TotalFailureCount : 0 -ContinuationToken : - - This command first creates an ACL object with 3 acl entries, then sets ACL recursively on a directory. - - - - - - Example 2: Set ACL recursively on a root directory of filesystem - $result = Set-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Acl $acl -Context $ctx - -$result - -FailedEntries : {dir1/dir2/file4} -TotalDirectoriesSuccessfulCount : 500 -TotalFilesSuccessfulCount : 2500 -TotalFailureCount : 1 -ContinuationToken : VBaHi5TfyO2ai1wYTRhIL2FjbGNibjA2c3RmATAxRDVEN0UzRENFQzZCRTAvYWRsc3Rlc3QyATAxRDY2M0ZCQTZBN0JGQTkvZGlyMC9kaXIxL2ZpbGUzFgAAAA== - -$result.FailedEntries - -Name IsDirectory ErrorMessage ----- ----------- ------------ -dir0/dir2/file4 False This request is not authorized to perform this operation using this permission. - -# user need fix the failed item , then can resume with ContinuationToken - -$result = Set-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Acl $acl -ContinuationToken $result.ContinuationToken -Context $ctx - -$result - -FailedEntries : -TotalDirectoriesSuccessfulCount : 100 -TotalFilesSuccessfulCount : 1000 -TotalFailureCount : 0 -ContinuationToken : - - This command first sets ACL recursively to a root directory and failed, then resume with ContinuationToken after user fix the failed file. - - - - - - -------- Example 3: Set ACL recursively chunk by chunk -------- - $token = $null -$TotalDirectoriesSuccess = 0 -$TotalFilesSuccess = 0 -$totalFailure = 0 -$FailedEntries = New-Object System.Collections.Generic.List[System.Object] -do -{ - $result = Set-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl -BatchSize 100 -MaxBatchCount 2 -ContinuationToken $token -Context $ctx - - # echo $result - $TotalFilesSuccess += $result.TotalFilesSuccessfulCount - $TotalDirectoriesSuccess += $result.TotalDirectoriesSuccessfulCount - $totalFailure += $result.TotalFailureCount - $FailedEntries += $result.FailedEntries - $token = $result.ContinuationToken -}while (($token -ne $null) -and ($result.TotalFailureCount -eq 0)) -echo "" -echo "[Result Summary]" -echo "TotalDirectoriesSuccessfulCount: `t$($TotalDirectoriesSuccess)" -echo "TotalFilesSuccessfulCount: `t`t`t$($TotalFilesSuccess)" -echo "TotalFailureCount: `t`t`t`t`t$($totalFailure)" -echo "ContinuationToken: `t`t`t`t`t$($token)" -echo "FailedEntries:"$($FailedEntries | ft) - - This script sets ACL rescursively on directory chunk by chunk, with chunk size as BatchSize * MaxBatchCount. Chunk size is 200 in this script. - - - - - - Example 4: Set ACL recursively on a directory and ContinueOnFailure, then resume from failures one by one - $result = Set-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl -ContinueOnFailure -Context $ctx - -$result - -FailedEntries : {dir0/dir1/file1, dir0/dir2/file4} -TotalDirectoriesSuccessfulCount : 100 -TotalFilesSuccessfulCount : 500 -TotalFailureCount : 2 -ContinuationToken : VBaHi5TfyO2ai1wYTRhIL2FjbGNibjA2c3RmATAxRDVEN0UzRENFQzZCRTAvYWRsc3Rlc3QyATAxRDY2M0ZCQTZBN0JGQTkvZGlyMC9kaXIxL2ZpbGUzFgAAAA== - -$result.FailedEntries - -Name IsDirectory ErrorMessage ----- ----------- ------------ -dir0/dir1/file1 False This request is not authorized to perform this operation using this permission. -dir0/dir2/file4 False This request is not authorized to perform this operation using this permission. - -# user need fix the failed item , then can resume with ContinuationToken - -foreach ($path in $result.FailedEntries.Name) - { - # user code to fix failed entry in $path - - #set ACL again - Set-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path $path -Acl $acl -Context $ctx - } - - This command first sets ACL recursively to a directory with ContinueOnFailure, and some items failed, then resume the failed items one by one. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azdatalakegen2aclrecursive - - - - - - Set-AzDataLakeGen2ItemAclObject - Set - AzDataLakeGen2ItemAclObject - - Creates/Updates a DataLake gen2 item ACL object, which can be used in Update-AzDataLakeGen2Item cmdlet. - - - - The Set-AzDataLakeGen2ItemAclObject cmdlet creates/updates a DataLake gen2 item ACL object, which can be used in Update-AzDataLakeGen2Item cmdlet. If the new ACL entry with same AccessControlType/EntityId/DefaultScope not exist in the input ACL, will create a new ACL entry, else update permission of existing ACL entry. - - - - Set-AzDataLakeGen2ItemAclObject - - AccessControlType - - There are four types: "user" grants rights to the owner or a named user, "group" grants rights to the owning group or a named group, "mask" restricts rights granted to named users and the members of groups, and "other" grants rights to all users not found in any of the other entries. - - - User - Group - Mask - Other - - Azure.Storage.Files.DataLake.Models.AccessControlType - - Azure.Storage.Files.DataLake.Models.AccessControlType - - - None - - - DefaultScope - - Set this parameter to indicate the ACE belongs to the default ACL for a directory; otherwise scope is implicit and the ACE belongs to the access ACL. - - - System.Management.Automation.SwitchParameter - - - False - - - EntityId - - The user or group identifier. It is omitted for entries of AccessControlType "mask" and "other". The user or group identifier is also omitted for the owner and owning group. - - System.String - - System.String - - - None - - - InputObject - - If input the PSPathAccessControlEntry[] object, will add the new ACL as a new element of the input PSPathAccessControlEntry[] object. - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - - None - - - Permission - - The permission field is a 3-character sequence where the first character is 'r' to grant read access, the second character is 'w' to grant write access, and the third character is 'x' to grant execute permission. If access is not granted, the '-' character is used to denote that the permission is denied. The sticky bit is also supported and its represented either by the letter t or T in the final character-place depending on whether the execution bit for the others category is set or unset respectively, absence of t or T indicates sticky bit not set. - - System.String - - System.String - - - None - - - - - - AccessControlType - - There are four types: "user" grants rights to the owner or a named user, "group" grants rights to the owning group or a named group, "mask" restricts rights granted to named users and the members of groups, and "other" grants rights to all users not found in any of the other entries. - - Azure.Storage.Files.DataLake.Models.AccessControlType - - Azure.Storage.Files.DataLake.Models.AccessControlType - - - None - - - DefaultScope - - Set this parameter to indicate the ACE belongs to the default ACL for a directory; otherwise scope is implicit and the ACE belongs to the access ACL. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EntityId - - The user or group identifier. It is omitted for entries of AccessControlType "mask" and "other". The user or group identifier is also omitted for the owner and owning group. - - System.String - - System.String - - - None - - - InputObject - - If input the PSPathAccessControlEntry[] object, will add the new ACL as a new element of the input PSPathAccessControlEntry[] object. - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - - None - - - Permission - - The permission field is a 3-character sequence where the first character is 'r' to grant read access, the second character is 'w' to grant write access, and the third character is 'x' to grant execute permission. If access is not granted, the '-' character is used to denote that the permission is denied. The sticky bit is also supported and its represented either by the letter t or T in the final character-place depending on whether the execution bit for the others category is set or unset respectively, absence of t or T indicates sticky bit not set. - - System.String - - System.String - - - None - - - - - - None - - - - - - - - - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry - - - - - - - - - - - - - - Example 1: Create an ACL object with 3 ACL entry, and update ACL on a directory - $acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -Permission rwx -DefaultScope -$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType group -Permission rw- -InputObject $acl -$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType other -Permission "rw-" -InputObject $acl -Update-AzDataLakeGen2Item -FileSystem "filesystem1" -Path "dir1/dir3" -ACL $acl - -FileSystem Name: filesystem1 - -Path IsDirectory Length LastModified Permissions Owner Group ----- ----------- ------ ------------ ----------- ----- ----- -dir1/dir3 True 2020-03-23 09:34:31Z rwxrw-rw-+ $superuser $superuser - - This command creates an ACL object with 3 ACL entries (use -InputObject parameter to add acl entry to existing acl object), and updates ACL on a directory. - - - - - - Example 2: Create an ACL object with 4 ACL entries, and update permission of an existing ACL entry - $acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -Permission rwx -DefaultScope -$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType group -Permission rw- -InputObject $acl -$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType other -Permission "rwt" -InputObject $acl -$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -EntityId $id -Permission rwx -InputObject $acl -$acl - -DefaultScope AccessControlType EntityId Permissions ------------- ----------------- -------- ----------- -True User rwx -False Group rw- -False Other rwt -False User ********-****-****-****-************ rwx - -$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -EntityId $id -Permission r-x -InputObject $acl -$acl - -DefaultScope AccessControlType EntityId Permissions ------------- ----------------- -------- ----------- -True User rwx -False Group rw- -False Other rw- -False User ********-****-****-****-************ r-x - - This command first creates an ACL object with 4 ACL entries, then run the cmdlet again with different permission but same AccessControlType/EntityId/DefaultScope of an existing ACL entry. Then the permission of the ACL entry is updated, but no new ACL entry is added. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azdatalakegen2itemaclobject - - - - - - Set-AzStorageBlobContent - Set - AzStorageBlobContent - - Uploads a local file to an Azure Storage blob. - - - - The Set-AzStorageBlobContent cmdlet uploads a local file to an Azure Storage blob. - - - - Set-AzStorageBlobContent - - File - - Specifies a local file path for a file to upload as blob content. - - System.String - - System.String - - - None - - - Container - - Specifies the name of a container. This cmdlet uploads a file to a blob in the container that this parameter specifies. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background. - - - System.Management.Automation.SwitchParameter - - - False - - - Blob - - Specifies the name of a blob. This cmdlet uploads a file to the Azure Storage blob that this parameter specifies. - - System.String - - System.String - - - None - - - BlobType - - Specifies the type for the blob that this cmdlet uploads. The acceptable values for this parameter are: - Block - - Page - - Append - - The default value is Block. - - - Block - Page - Append - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. To use a storage context created from a SAS Token without read permission, need add -Force parameter to skip check blob existence. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScope - - Encryption scope to be used when making requests to the blob. - - System.String - - System.String - - - None - - - Force - - Indicates that this cmdlet overwrites an existing blob without prompting you for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - Metadata - - Specifies metadata for the uploaded blob. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - PremiumPageBlobTier - - Page Blob Tier - - - Unknown - P4 - P6 - P10 - P20 - P30 - P40 - P50 - P60 - P70 - P80 - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - - None - - - Properties - - Specifies properties for the uploaded blob. The supported properties are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage, ContentMD5, ContentType. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - Tag - - Blob Tags - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageBlobContent - - File - - Specifies a local file path for a file to upload as blob content. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background. - - - System.Management.Automation.SwitchParameter - - - False - - - Blob - - Specifies the name of a blob. This cmdlet uploads a file to the Azure Storage blob that this parameter specifies. - - System.String - - System.String - - - None - - - BlobType - - Specifies the type for the blob that this cmdlet uploads. The acceptable values for this parameter are: - Block - - Page - - Append - - The default value is Block. - - - Block - Page - Append - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlobContainer - - Specifies a CloudBlobContainer object from the Azure Storage Client library. This cmdlet uploads content to a blob in the container that this parameter specifies. To obtain a CloudBlobContainer object, use the Get-AzStorageContainer cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. To use a storage context created from a SAS Token without read permission, need add -Force parameter to skip check blob existence. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScope - - Encryption scope to be used when making requests to the blob. - - System.String - - System.String - - - None - - - Force - - Indicates that this cmdlet overwrites an existing blob without prompting you for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - Metadata - - Specifies metadata for the uploaded blob. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - PremiumPageBlobTier - - Page Blob Tier - - - Unknown - P4 - P6 - P10 - P20 - P30 - P40 - P50 - P60 - P70 - P80 - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - - None - - - Properties - - Specifies properties for the uploaded blob. The supported properties are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage, ContentMD5, ContentType. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - Tag - - Blob Tags - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageBlobContent - - File - - Specifies a local file path for a file to upload as blob content. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background. - - - System.Management.Automation.SwitchParameter - - - False - - - BlobType - - Specifies the type for the blob that this cmdlet uploads. The acceptable values for this parameter are: - Block - - Page - - Append - - The default value is Block. - - - Block - Page - Append - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlob - - Specifies a CloudBlob object. To obtain a CloudBlob object, use the Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. To use a storage context created from a SAS Token without read permission, need add -Force parameter to skip check blob existence. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScope - - Encryption scope to be used when making requests to the blob. - - System.String - - System.String - - - None - - - Force - - Indicates that this cmdlet overwrites an existing blob without prompting you for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - Metadata - - Specifies metadata for the uploaded blob. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - PremiumPageBlobTier - - Page Blob Tier - - - Unknown - P4 - P6 - P10 - P20 - P30 - P40 - P50 - P60 - P70 - P80 - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - - None - - - Properties - - Specifies properties for the uploaded blob. The supported properties are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage, ContentMD5, ContentType. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - Tag - - Blob Tags - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Blob - - Specifies the name of a blob. This cmdlet uploads a file to the Azure Storage blob that this parameter specifies. - - System.String - - System.String - - - None - - - BlobType - - Specifies the type for the blob that this cmdlet uploads. The acceptable values for this parameter are: - Block - - Page - - Append - - The default value is Block. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlob - - Specifies a CloudBlob object. To obtain a CloudBlob object, use the Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - CloudBlobContainer - - Specifies a CloudBlobContainer object from the Azure Storage Client library. This cmdlet uploads content to a blob in the container that this parameter specifies. To obtain a CloudBlobContainer object, use the Get-AzStorageContainer cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Specifies the name of a container. This cmdlet uploads a file to a blob in the container that this parameter specifies. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. To use a storage context created from a SAS Token without read permission, need add -Force parameter to skip check blob existence. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScope - - Encryption scope to be used when making requests to the blob. - - System.String - - System.String - - - None - - - File - - Specifies a local file path for a file to upload as blob content. - - System.String - - System.String - - - None - - - Force - - Indicates that this cmdlet overwrites an existing blob without prompting you for confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Metadata - - Specifies metadata for the uploaded blob. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - PremiumPageBlobTier - - Page Blob Tier - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - - None - - - Properties - - Specifies properties for the uploaded blob. The supported properties are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage, ContentMD5, ContentType. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - Tag - - Blob Tags - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - - - - - - Microsoft.Azure.Storage.Blob.CloudBlob - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageBlob - - - - - - - - - - - - - - ---------------- Example 1: Upload a named file ---------------- - Set-AzStorageBlobContent -Container "ContosoUpload" -File ".\PlanningData" -Blob "Planning2015" - - This command uploads the file that is named PlanningData to a blob named Planning2015. - - - - - - ----- Example 2: Upload all files under the current folder ----- - Get-ChildItem -File -Recurse | Set-AzStorageBlobContent -Container "ContosoUploads" - - This command uses the core Windows PowerShell cmdlet Get-ChildItem to get all the files in the current folder and in subfolders, and then passes them to the current cmdlet by using the pipeline operator. The Set-AzStorageBlobContent cmdlet uploads the files to the container named ContosoUploads. - - - - - - ------------ Example 3: Overwrite an existing blob ------------ - Get-AzStorageBlob -Container "ContosoUploads" -Blob "Planning2015" | Set-AzStorageBlobContent -File "ContosoPlanning" - - This command gets the blob named Planning2015 in the ContosoUploads container by using the Get-AzStorageBlob cmdlet, and then passes that blob to the current cmdlet. The command uploads the file that is named ContosoPlanning as Planning2015. This command does not specify the Force parameter. The command prompts you for confirmation. If you confirm the command, the cmdlet overwrites the existing blob. - - - - - - Example 4: Upload a file to a container by using the pipeline - Get-AzStorageContainer -Container "ContosoUpload*" | Set-AzStorageBlobContent -File "ContosoPlanning" -Blob "Planning2015" - - This command gets the container that starts with the string ContosoUpload by using the Get-AzStorageContainer cmdlet, and then passes that blob to the current cmdlet. The command uploads the file that is named ContosoPlanning as Planning2015. - - - - - - Example 5: Upload a file to page blob with metadata and PremiumPageBlobTier as P10 - $Metadata = @{"key" = "value"; "name" = "test"} -Set-AzStorageBlobContent -File "ContosoPlanning" -Container "ContosoUploads" -Metadata $Metadata -BlobType Page -PremiumPageBlobTier P10 - - The first command creates a hash table that contains metadata for a blob, and stores that hash table in the $Metadata variable. The second command uploads the file that is named ContosoPlanning to the container named ContosoUploads. The blob includes the metadata stored in $Metadata, and has PremiumPageBlobTier as P10. - - - - - - Example 6: Upload a file to blob with specified blob properties, and set StandardBlobTier as Cool - $filepath = "c:\temp\index.html" -Set-AzStorageBlobContent -File $filepath -Container "contosouploads" -Properties @{"ContentType" = [System.Web.MimeMapping]::GetMimeMapping($filepath); "ContentMD5" = "i727sP7HigloQDsqadNLHw=="} -StandardBlobTier Cool - -AccountName: storageaccountname, ContainerName: contosouploads - -Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId ----- -------- ------ ----------- ------------ ---------- ------------ --------- --------- -index.html BlockBlob 403116 text/html 2020-09-22 08:06:53Z Cool False - - This command uploads the file c:\temp\index.html to the container named contosouploads with specified blob properties, and set StandardBlobTier as Cool. This command gets ContentType value set to blob properties by [System.Web.MimeMapping]::GetMimeMapping() API. - - - - - - --- Example 7: Upload a file to a blob with Encryption Scope --- - $blob = Set-AzStorageBlobContent -File "mylocalfile" -Container "mycontainer" -Blob "myblob" -EncryptionScope "myencryptscope" - -$blob.BlobProperties.EncryptionScope - -myencryptscope - - This command uploads a file to a blob with Encryption Scope. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstorageblobcontent - - - Get-AzStorageBlobContent - - - - Get-AzStorageBlob - - - - Remove-AzStorageBlob - - - - - - - Set-AzStorageBlobImmutabilityPolicy - Set - AzStorageBlobImmutabilityPolicy - - Creates or updates ImmutabilityPolicy of a Storage blob. - - - - The Set-AzStorageBlobImmutabilityPolicy cmdlet creates or updates ImmutabilityPolicy of a Storage blob. The cmdlet only works when the blob container has already enabled immutable Storage with versioning. - - - - Set-AzStorageBlobImmutabilityPolicy - - Blob - - Blob name - - System.String - - System.String - - - None - - - Container - - Container name - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiresOn - - Blob ImmutabilityPolicy ExpiresOn - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - PolicyMode - - Blob ImmutabilityPolicy PolicyMode - - - Unlocked - Locked - Mutable - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageBlobImmutabilityPolicy - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiresOn - - Blob ImmutabilityPolicy ExpiresOn - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - PolicyMode - - Blob ImmutabilityPolicy PolicyMode - - - Unlocked - Locked - Mutable - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Blob - - Blob name - - System.String - - System.String - - - None - - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Container name - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiresOn - - Blob ImmutabilityPolicy ExpiresOn - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - PolicyMode - - Blob ImmutabilityPolicy PolicyMode - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageBlob - - - - - - - - - - - - - - Example 1: Create or update immutability policy of a Storage blob. - $blob = Set-AzStorageBlobImmutabilityPolicy -Container $containerName -Blob $blobname -ExpiresOn (Get-Date).AddDays(100) -PolicyMode Unlocked - -$blob - - AccountName: mystorageaccount, ContainerName: mycontainer - -Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId ----- -------- ------ ----------- ------------ ---------- ------------ --------- --------- -testblob BlockBlob 10485760 application/octet-stream 2021-07-19 08:56:00Z Hot False 2021-07-19T08:56:01.8120788Z * - -$blob.BlobProperties.ImmutabilityPolicy - -ExpiresOn PolicyMode ---------- ---------- -10/27/2021 8:56:32 AM +00:00 Unlocked - - This command creates or updates ImmutabilityPolicy of a Storage blob, then show the blob and its ImmutabilityPolicy. The command only works when the blob container has already enabled immutable Storage with versioning. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstorageblobimmutabilitypolicy - - - - - - Set-AzStorageBlobLegalHold - Set - AzStorageBlobLegalHold - - Enables or disables legal hold on a Storage blob. - - - - The Set-AzStorageBlobLegalHold cmdlet enables or disables legal hold on a Storage blob. The cmdlet only works when the blob container has already enabled immutable Storage with versioning. - - - - Set-AzStorageBlobLegalHold - - Blob - - Blob name - - System.String - - System.String - - - None - - - Container - - Container name - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnableLegalHold - - Enable LegalHold on the Blob. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageBlobLegalHold - - Blob - - Blob name - - System.String - - System.String - - - None - - - Container - - Container name - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisableLegalHold - - Disable LegalHold on the Blob. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageBlobLegalHold - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnableLegalHold - - Enable LegalHold on the Blob. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageBlobLegalHold - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisableLegalHold - - Disable LegalHold on the Blob. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Blob - - Blob name - - System.String - - System.String - - - None - - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Container name - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisableLegalHold - - Disable LegalHold on the Blob. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnableLegalHold - - Enable LegalHold on the Blob. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageBlob - - - - - - - - - - - - - - ------- Example 1: Enable legal hold on a Storage blob. ------- - $blob = Set-AzStorageBlobLegalHold -Container $containerName -Blob $blobname -EnableLegalHold - -$blob - - AccountName: mystorageaccount, ContainerName: mycontainer - -Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId ----- -------- ------ ----------- ------------ ---------- ------------ --------- --------- -testblob BlockBlob 10485760 application/octet-stream 2021-07-19 08:56:00Z Hot False 2021-07-19T08:56:01.8120788Z * - -$blob.BlobProperties.HasLegalHold -True - - This command enables legal hold on a Storage blob, then show the result. The command only works when the blob container has already enabled immutable Storage with versioning. - - - - - - Example 2: Disable legal hold on a Storage blob with pipeline. - $blob = Get-AzStorageBlob -Container $containerName -Blob $blobname | Set-AzStorageBlobLegalHold -DisableLegalHold - -$blob - - AccountName: mystorageaccount, ContainerName: mycontainer - -Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId ----- -------- ------ ----------- ------------ ---------- ------------ --------- --------- -testblob BlockBlob 10485760 application/octet-stream 2021-07-19 08:56:00Z Hot False 2021-07-19T08:56:01.8120788Z * - -$blob.BlobProperties.HasLegalHold -False - - This command disables legal hold on a Storage blob with pipeline, then show the result. The command only works when the blob container has already enabled immutable Storage with versioning. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstoragebloblegalhold - - - - - - Set-AzStorageBlobTag - Set - AzStorageBlobTag - - Set blob tags of a specific blob. - - - - The Set-AzStorageBlobTag sets blob tags of a specific blob. - - - - Set-AzStorageBlobTag - - Blob - - Blob name - - System.String - - System.String - - - None - - - Container - - Container name - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Tag - - Blob tags which will set to the blob. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageBlobTag - - Blob - - Blob name - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlobContainer - - CloudBlobContainer Object - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Tag - - Blob tags which will set to the blob. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageBlobTag - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Tag - - Blob tags which will set to the blob. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Blob - - Blob name - - System.String - - System.String - - - None - - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlobContainer - - CloudBlobContainer Object - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Container name - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Tag - - Blob tags which will set to the blob. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - - - - - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - --------- Example 1: Set blob tags on a specific blob --------- - Set-AzStorageBlobTag -Container "containername" -Blob testblob -Tag @{"tag1" = "value1"; "tag2" = "value2" } - -Name Value ----- ----- -tag2 value2 -tag1 value1 - - This command sets blob tags on a specific blob. - - - - - - Example 2: Set blob tags on a specific blob with tag condition - Set-AzStorageBlobTag -Container "containername" -Blob testblob -Tag @{"tag1" = "value1"; "tag2" = "value2" } -TagCondition """tag1""='value1'" - -Name Value ----- ----- -tag2 value2 -tag1 value1 - - This command sets blob tags on a specific blob with tag condition. The cmdlet will only success when the blob contains a tag with name "tag1" and value "value1", else the cmdlet will fail with error code 412. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstorageblobtag - - - - - - Set-AzStorageContainerAcl - Set - AzStorageContainerAcl - - Sets the public access permission to a storage container. - - - - The Set-AzStorageContainerAcl cmdlet sets the public access permission to the specified storage container in Azure. - - - - Set-AzStorageContainerAcl - - Name - - Specifies a container name. - - System.String - - System.String - - - None - - - Permission - - Specifies the level of public access to this container. By default, the container and any blobs in it can be accessed only by the owner of the storage account. To grant anonymous users read permissions to a container and its blobs, you can set the container permissions to enable public access. Anonymous users can read blobs in a publicly available container without authenticating the request. The acceptable values for this parameter are: --Container. Provides full read access to a container and its blobs. Clients can enumerate blobs in the container through anonymous request, but cannot enumerate containers in the storage account. --Blob. Provides read access to blob data in a container through anonymous request, but does not provide access to container data. Clients cannot enumerate blobs in the container by using anonymous request. --Off. Restricts access to only the storage account owner. - - - Off - Container - Blob - Unknown - - Microsoft.Azure.Storage.Blob.BlobContainerPublicAccessType - - Microsoft.Azure.Storage.Blob.BlobContainerPublicAccessType - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage context. You can create it by using the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. Server side time out for each request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage context. You can create it by using the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Specifies a container name. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - Specifies the level of public access to this container. By default, the container and any blobs in it can be accessed only by the owner of the storage account. To grant anonymous users read permissions to a container and its blobs, you can set the container permissions to enable public access. Anonymous users can read blobs in a publicly available container without authenticating the request. The acceptable values for this parameter are: --Container. Provides full read access to a container and its blobs. Clients can enumerate blobs in the container through anonymous request, but cannot enumerate containers in the storage account. --Blob. Provides read access to blob data in a container through anonymous request, but does not provide access to container data. Clients cannot enumerate blobs in the container by using anonymous request. --Off. Restricts access to only the storage account owner. - - Microsoft.Azure.Storage.Blob.BlobContainerPublicAccessType - - Microsoft.Azure.Storage.Blob.BlobContainerPublicAccessType - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. Server side time out for each request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageContainer - - - - - - - - - - - - - - ------ Example 1: Set azure storage container ACL by name ------ - Set-AzStorageContainerAcl -Container "Container01" -Permission Off -PassThru - - This command creates a container that has no public access. - - - - - - Example 2: Set azure storage container ACL by using the pipeline - Get-AzStorageContainer container* | Set-AzStorageContainerAcl -Permission Blob -PassThru - - This command gets all storage containers whose name starts with container and then passes the result on the pipeline to set the permission for them all to Blob access. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstoragecontaineracl - - - Get-AzStorageContainer - - - - New-AzStorageContainer - - - - Remove-AzStorageContainer - - - - - - - Set-AzStorageContainerStoredAccessPolicy - Set - AzStorageContainerStoredAccessPolicy - - Sets a stored access policy for an Azure storage container. - - - - The Set-AzStorageContainerStoredAccessPolicy cmdlet sets a stored access policy for an Azure storage container. - - - - Set-AzStorageContainerStoredAccessPolicy - - Container - - Specifies the Azure storage container name. - - System.String - - System.String - - - None - - - Policy - - Specifies the name for the stored access policy. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the stored access policy becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - NoExpiryTime - - Indicates that the access policy has no expiration date. - - - System.Management.Automation.SwitchParameter - - - False - - - NoStartTime - - Sets the start time to be $Null. - - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - Specifies permissions in the stored access policy to access the storage container. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - StartTime - - Specifies the time at which the stored access policy becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Specifies the Azure storage container name. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the stored access policy becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - NoExpiryTime - - Indicates that the access policy has no expiration date. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - NoStartTime - - Sets the start time to be $Null. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - Specifies permissions in the stored access policy to access the storage container. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - Policy - - Specifies the name for the stored access policy. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - StartTime - - Specifies the time at which the stored access policy becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - - - - - - Example 1: Set a stored access policy in a storage container with full permission - Set-AzStorageContainerStoredAccessPolicy -Container "MyContainer" -Policy "Policy06" -Permission rwdl - - This command sets an access policy named Policy06 for storage container named MyContainer. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstoragecontainerstoredaccesspolicy - - - Get-AzStorageContainerStoredAccessPolicy - - - - New-AzStorageContext - - - - New-AzStorageContainerStoredAccessPolicy - - - - Remove-AzStorageContainerStoredAccessPolicy - - - - - - - Set-AzStorageCORSRule - Set - AzStorageCORSRule - - Sets the CORS rules for a type of Storage service. - - - - The Set-AzStorageCORSRule cmdlet sets the Cross-Origin Resource Sharing (CORS) rules for a type of Azure Storage service. The types of storage services for this cmdlet are Blob, Table, Queue, and File. This cmdlet overwrites the existing rules. To see the current rules, use the Get-AzStorageCORSRule cmdlet. - - - - Set-AzStorageCORSRule - - ServiceType - - Specifies the Azure Storage service type for which this cmdlet assigns rules. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - - - Blob - Table - Queue - File - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - CorsRules - - Specifies an array of CORS rules. You can retrieve the existing rules using the Get-AzStorageCORSRule cmdlet. - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSCorsRule[] - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSCorsRule[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - CorsRules - - Specifies an array of CORS rules. You can retrieve the existing rules using the Get-AzStorageCORSRule cmdlet. - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSCorsRule[] - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSCorsRule[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ServiceType - - Specifies the Azure Storage service type for which this cmdlet assigns rules. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSCorsRule - - - - - - - - - - - - - - ------- Example 1: Assign CORS rules to the blob service ------- - $CorsRules = (@{ - AllowedHeaders=@("x-ms-blob-content-type","x-ms-blob-content-disposition"); - AllowedOrigins=@("*"); - MaxAgeInSeconds=30; - AllowedMethods=@("Get","Connect")}, - @{ - AllowedOrigins=@("http://www.fabrikam.com","http://www.contoso.com"); - ExposedHeaders=@("x-ms-meta-data*","x-ms-meta-customheader"); - AllowedHeaders=@("x-ms-meta-target*","x-ms-meta-customheader"); - MaxAgeInSeconds=30; - AllowedMethods=@("Put")}) - -Set-AzStorageCORSRule -ServiceType Blob -CorsRules $CorsRules - - The first command assigns an array of rules to the $CorsRules variable. This command uses standard extends over several lines in this code block. The second command assigns the rules in $CorsRules to the Blob service type. - - - - - - - Example 2: Change properties of a CORS rule for blob service - - $CorsRules = Get-AzStorageCORSRule -ServiceType Blob -$CorsRules[0].AllowedHeaders = @("x-ms-blob-content-type", "x-ms-blob-content-disposition") -$CorsRules[0].AllowedMethods = @("Get", "Connect", "Merge") -Set-AzStorageCORSRule -ServiceType Blob -CorsRules $CorsRules - - The first command gets the current CORS rules for the Blob type by using the Get-AzStorageCORSRule cmdlet. The command stores the rules in the $CorsRules array variable. The second and third commands modify the first rule in $CorsRules. The final command assigns the rules in $CorsRules to the Blob service type. The revised rules overwrite the current CORS rules. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstoragecorsrule - - - Get-AzStorageCORSRule - - - - New-AzStorageContext - - - - Remove-AzStorageCORSRule - - - - - - - Set-AzStorageFileContent - Set - AzStorageFileContent - - Uploads the contents of a file. - - - - The Set-AzStorageFileContent cmdlet uploads the contents of a file to a file on a specified share. - - - - Set-AzStorageFileContent - - ShareName - - Specifies the name of the file share. This cmdlet uploads to a file in the file share this parameter specifies. - - System.String - - System.String - - - None - - - Source - - Specifies the source file that this cmdlet uploads. If you specify a file that does not exist, this cmdlet returns an error. - - System.String - - System.String - - - None - - - Path - - Specifies the path of a file or folder. This cmdlet uploads contents to the file that this parameter specifies, or to a file in the folder that this parameter specifies. If you specify a folder, this cmdlet creates a file that has the same name as the source file. If you specify a path of a file that does not exist, this cmdlet creates that file and saves the contents to that file. If you specify a file that already exists, and you specify the Force parameter, this cmdlet overwrites the contents of the file. If you specify a file that already exists and you do not specify Force , this cmdlet makes no change, and returns an error. If you specify a path of a folder that does not exist, this cmdlet makes no change, and returns an error. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background. - - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - - System.Management.Automation.SwitchParameter - - - False - - - Force - - Indicates that this cmdlet overwrites an existing Azure storage file. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns the AzureStorageFile object that it creates or uploads. - - - System.Management.Automation.SwitchParameter - - - False - - - PreserveSMBAttribute - - Keep the source File SMB properties (File Attributtes, File Creation Time, File Last Write Time) in destination File. This parameter is only available on Windows. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageFileContent - - ShareClient - - ShareClient object indicated the share where the file would be uploaded to. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - Source - - Specifies the source file that this cmdlet uploads. If you specify a file that does not exist, this cmdlet returns an error. - - System.String - - System.String - - - None - - - Path - - Specifies the path of a file or folder. This cmdlet uploads contents to the file that this parameter specifies, or to a file in the folder that this parameter specifies. If you specify a folder, this cmdlet creates a file that has the same name as the source file. If you specify a path of a file that does not exist, this cmdlet creates that file and saves the contents to that file. If you specify a file that already exists, and you specify the Force parameter, this cmdlet overwrites the contents of the file. If you specify a file that already exists and you do not specify Force , this cmdlet makes no change, and returns an error. If you specify a path of a folder that does not exist, this cmdlet makes no change, and returns an error. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background. - - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Indicates that this cmdlet overwrites an existing Azure storage file. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns the AzureStorageFile object that it creates or uploads. - - - System.Management.Automation.SwitchParameter - - - False - - - PreserveSMBAttribute - - Keep the source File SMB properties (File Attributtes, File Creation Time, File Last Write Time) in destination File. This parameter is only available on Windows. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageFileContent - - ShareDirectoryClient - - ShareDirectoryClient object indicated the directory where the file would be uploaded. - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - Source - - Specifies the source file that this cmdlet uploads. If you specify a file that does not exist, this cmdlet returns an error. - - System.String - - System.String - - - None - - - Path - - Specifies the path of a file or folder. This cmdlet uploads contents to the file that this parameter specifies, or to a file in the folder that this parameter specifies. If you specify a folder, this cmdlet creates a file that has the same name as the source file. If you specify a path of a file that does not exist, this cmdlet creates that file and saves the contents to that file. If you specify a file that already exists, and you specify the Force parameter, this cmdlet overwrites the contents of the file. If you specify a file that already exists and you do not specify Force , this cmdlet makes no change, and returns an error. If you specify a path of a folder that does not exist, this cmdlet makes no change, and returns an error. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background. - - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Indicates that this cmdlet overwrites an existing Azure storage file. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns the AzureStorageFile object that it creates or uploads. - - - System.Management.Automation.SwitchParameter - - - False - - - PreserveSMBAttribute - - Keep the source File SMB properties (File Attributtes, File Creation Time, File Last Write Time) in destination File. This parameter is only available on Windows. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Force - - Indicates that this cmdlet overwrites an existing Azure storage file. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns the AzureStorageFile object that it creates or uploads. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Path - - Specifies the path of a file or folder. This cmdlet uploads contents to the file that this parameter specifies, or to a file in the folder that this parameter specifies. If you specify a folder, this cmdlet creates a file that has the same name as the source file. If you specify a path of a file that does not exist, this cmdlet creates that file and saves the contents to that file. If you specify a file that already exists, and you specify the Force parameter, this cmdlet overwrites the contents of the file. If you specify a file that already exists and you do not specify Force , this cmdlet makes no change, and returns an error. If you specify a path of a folder that does not exist, this cmdlet makes no change, and returns an error. - - System.String - - System.String - - - None - - - PreserveSMBAttribute - - Keep the source File SMB properties (File Attributtes, File Creation Time, File Last Write Time) in destination File. This parameter is only available on Windows. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ShareClient - - ShareClient object indicated the share where the file would be uploaded to. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - ShareDirectoryClient - - ShareDirectoryClient object indicated the directory where the file would be uploaded. - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - ShareName - - Specifies the name of the file share. This cmdlet uploads to a file in the file share this parameter specifies. - - System.String - - System.String - - - None - - - Source - - Specifies the source file that this cmdlet uploads. If you specify a file that does not exist, this cmdlet returns an error. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Azure.Storage.Files.Shares.ShareClient - - - - - - - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFile - - - - - - - - - - - - - - -------- Example 1: Upload a file in the current folder -------- - Set-AzStorageFileContent -ShareName "ContosoShare06" -Source "DataFile37" -Path "ContosoWorkingFolder/CurrentDataFile" - - This command uploads a file that is named DataFile37 in the current folder as a file that is named CurrentDataFile in the folder named ContosoWorkingFolder. - - - - - - ---- Example 2: Upload all the files in the current folder ---- - $CurrentFolder = (Get-Item .).FullName -$Container = Get-AzStorageShare -Name "ContosoShare06" -Get-ChildItem -Recurse | Where-Object { $_.GetType().Name -eq "FileInfo"} | ForEach-Object { - $path=$_.FullName.Substring($Currentfolder.Length+1).Replace("\","/") - Set-AzStorageFileContent -ShareClient $Container -Source $_.FullName -Path $path -Force -} - - This example uses several common Windows PowerShell cmdlets and the current cmdlet to upload all files from the current folder to the root folder of container ContosoShare06. The first command gets the name of the current folder and stores it in the $CurrentFolder variable. The second command uses the Get-AzStorageShare cmdlet to get the file share named ContosoShare06, and then stores it in the $Container variable. The final command gets the contents of the current folder and passes each one to the Where-Object cmdlet by using the pipeline operator. That cmdlet filters out objects that are not files, and then passes the files to the ForEach-Object cmdlet. That cmdlet runs a script block for each file that creates the appropriate path for it and then uses the current cmdlet to upload the file. The result has the same name and same relative position with regard to the other files that this example uploads. For more information about script blocks, type `Get-Help about_Script_Blocks`. - - - - - - Example 3: Upload a local file to an Azure file, and perserve the local File SMB properties (File Attributtes, File Creation Time, File Last Write Time) in the Azure file. - Set-AzStorageFileContent -Source $localFilePath -ShareName sample -Path "dir1/file1" -PreserveSMBAttribute - - This example uploads a local file to an Azure file, and perserves the local File SMB properties (File Attributtes, File Creation Time, File Last Write Time) in the Azure file. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstoragefilecontent - - - Remove-AzStorageDirectory - - - - New-AzStorageDirectory - - - - Get-AzStorageFileContent - - - - - - - Set-AzStorageQueueStoredAccessPolicy - Set - AzStorageQueueStoredAccessPolicy - - Sets a stored access policy for an Azure storage queue. - - - - The Set-AzStorageQueueStoredAccessPolicy cmdlet sets a stored access policy for an Azure storage queue. - - - - Set-AzStorageQueueStoredAccessPolicy - - Queue - - Specifies the Azure storage queue name. - - System.String - - System.String - - - None - - - Policy - - Specifies the name for the stored access policy. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the stored access policy becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - NoExpiryTime - - Indicates that the access policy has no expiration date. - - - System.Management.Automation.SwitchParameter - - - False - - - NoStartTime - - Indicates that this cmdlet sets the start time to be $Null. - - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - Specifies permissions in the stored access policy to access the storage queue. It is important to note that this is a string, like `raup` (for Read, Add, Update, and ProcessMessages). - - System.String - - System.String - - - None - - - StartTime - - Specifies the time at which the stored access policy becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the stored access policy becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - NoExpiryTime - - Indicates that the access policy has no expiration date. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - NoStartTime - - Indicates that this cmdlet sets the start time to be $Null. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - Specifies permissions in the stored access policy to access the storage queue. It is important to note that this is a string, like `raup` (for Read, Add, Update, and ProcessMessages). - - System.String - - System.String - - - None - - - Policy - - Specifies the name for the stored access policy. - - System.String - - System.String - - - None - - - Queue - - Specifies the Azure storage queue name. - - System.String - - System.String - - - None - - - StartTime - - Specifies the time at which the stored access policy becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - - - - - - Example 1: Set a stored access policy in the queue with full permission - Set-AzStorageQueueStoredAccessPolicy -Queue "MyQueue" -Policy "Policy07" -Permission arup - - This command sets an access policy named Policy07 for storage queue named MyQueue. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstoragequeuestoredaccesspolicy - - - Get-AzStorageQueueStoredAccessPolicy - - - - New-AzStorageQueueStoredAccessPolicy - - - - Remove-AzStorageQueueStoredAccessPolicy - - - - - - - Set-AzStorageServiceLoggingProperty - Set - AzStorageServiceLoggingProperty - - Modifies logging for Azure Storage services. - - - - The Set-AzStorageServiceLoggingProperty cmdlet modifies logging for Azure Storage services. - - - - Set-AzStorageServiceLoggingProperty - - ServiceType - - Specifies the storage service type. This cmdlet modifies the logging properties for the service type that this parameter specifies. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - The value of File is not currently supported. - - - Blob - Table - Queue - File - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - LoggingOperations - - Specifies an array of Azure Storage service operations. Azure Storage services logs the operations that this parameter specifies. The acceptable values for this parameter are: - None - - Read - - Write - - Delete - - All - - - None - Read - Write - Delete - All - - Microsoft.Azure.Storage.Shared.Protocol.LoggingOperations[] - - Microsoft.Azure.Storage.Shared.Protocol.LoggingOperations[] - - - None - - - PassThru - - Indicates that this cmdlet returns the updated logging properties. If you do not specify this parameter, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - RetentionDays - - Specifies the number of days that the Azure Storage service retains logged information. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Version - - Specifies the version of the Azure Storage service logging. The default value is 1.0. - - System.Nullable`1[System.Double] - - System.Nullable`1[System.Double] - - - None - - - - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - LoggingOperations - - Specifies an array of Azure Storage service operations. Azure Storage services logs the operations that this parameter specifies. The acceptable values for this parameter are: - None - - Read - - Write - - Delete - - All - - Microsoft.Azure.Storage.Shared.Protocol.LoggingOperations[] - - Microsoft.Azure.Storage.Shared.Protocol.LoggingOperations[] - - - None - - - PassThru - - Indicates that this cmdlet returns the updated logging properties. If you do not specify this parameter, this cmdlet does not return a value. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - RetentionDays - - Specifies the number of days that the Azure Storage service retains logged information. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ServiceType - - Specifies the storage service type. This cmdlet modifies the logging properties for the service type that this parameter specifies. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - The value of File is not currently supported. - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - Version - - Specifies the version of the Azure Storage service logging. The default value is 1.0. - - System.Nullable`1[System.Double] - - System.Nullable`1[System.Double] - - - None - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.Azure.Storage.Shared.Protocol.LoggingProperties - - - - - - - - - - - - - - -- Example 1: Modify logging properties for the Blob service -- - Set-AzStorageServiceLoggingProperty -ServiceType Blob -LoggingOperations Read,Write -PassThru -RetentionDays 10 -Version 1.0 - - This command modifies version 1.0 logging for blob storage to include read and write operations. Azure Storage service logging retains entries for 10 days. Because this command specifies the PassThru parameter, the command displays the modified logging properties. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstorageserviceloggingproperty - - - Get-AzStorageServiceLoggingProperty - - - - New-AzStorageContext - - - - - - - Set-AzStorageServiceMetricsProperty - Set - AzStorageServiceMetricsProperty - - Modifies metrics properties for the Azure Storage service. - - - - The Set-AzStorageServiceMetricsProperty cmdlet modifies metrics properties for the Azure Storage service. - - - - Set-AzStorageServiceMetricsProperty - - ServiceType - - Specifies the storage service type. This cmdlet modifies the metrics properties for the service type that this parameter specifies. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - The value of File is not currently supported. - - - Blob - Table - Queue - File - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - MetricsType - - Specifies a metrics type. This cmdlet sets the Azure Storage service metrics type to the value that this parameter specifies. The acceptable values for this parameter are: Hour and Minute. - - - Hour - Minute - - Microsoft.WindowsAzure.Commands.Storage.Common.ServiceMetricsType - - Microsoft.WindowsAzure.Commands.Storage.Common.ServiceMetricsType - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - MetricsLevel - - Specifies the metrics level that Azure Storage uses for the service. The acceptable values for this parameter are: - None - - Service - - ServiceAndApi - - - None - Service - ServiceAndApi - - System.Nullable`1[Microsoft.Azure.Storage.Shared.Protocol.MetricsLevel] - - System.Nullable`1[Microsoft.Azure.Storage.Shared.Protocol.MetricsLevel] - - - None - - - PassThru - - Indicates that this cmdlets returns the updated metrics properties. If you do not specify this parameter, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - RetentionDays - - Specifies the number of days that the Azure Storage service retains metrics information. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Version - - Specifies the version of the Azure Storage metrics. The default value is 1.0. - - System.Nullable`1[System.Double] - - System.Nullable`1[System.Double] - - - None - - - - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - MetricsLevel - - Specifies the metrics level that Azure Storage uses for the service. The acceptable values for this parameter are: - None - - Service - - ServiceAndApi - - System.Nullable`1[Microsoft.Azure.Storage.Shared.Protocol.MetricsLevel] - - System.Nullable`1[Microsoft.Azure.Storage.Shared.Protocol.MetricsLevel] - - - None - - - MetricsType - - Specifies a metrics type. This cmdlet sets the Azure Storage service metrics type to the value that this parameter specifies. The acceptable values for this parameter are: Hour and Minute. - - Microsoft.WindowsAzure.Commands.Storage.Common.ServiceMetricsType - - Microsoft.WindowsAzure.Commands.Storage.Common.ServiceMetricsType - - - None - - - PassThru - - Indicates that this cmdlets returns the updated metrics properties. If you do not specify this parameter, this cmdlet does not return a value. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - RetentionDays - - Specifies the number of days that the Azure Storage service retains metrics information. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ServiceType - - Specifies the storage service type. This cmdlet modifies the metrics properties for the service type that this parameter specifies. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - The value of File is not currently supported. - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - Version - - Specifies the version of the Azure Storage metrics. The default value is 1.0. - - System.Nullable`1[System.Double] - - System.Nullable`1[System.Double] - - - None - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.Azure.Storage.Shared.Protocol.MetricsProperties - - - - - - - - - - - - - - -- Example 1: Modify metrics properties for the Blob service -- - Set-AzStorageServiceMetricsProperty -ServiceType Blob -MetricsType Hour -MetricsLevel Service -PassThru -RetentionDays 10 -Version 1.0 - - This command modifies version 1.0 metrics for blob storage to a level of Service. Azure Storage service metrics retains entries for 10 days. Because this command specifies the PassThru parameter, the command displays the modified metrics properties. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstorageservicemetricsproperty - - - Get-AzStorageServiceMetricsProperty - - - - New-AzStorageContext - - - - - - - Set-AzStorageShareQuota - Set - AzStorageShareQuota - - Sets the storage capacity for a share. - - - - The Set-AzStorageShareQuota cmdlet sets the storage capacity for a specified share. - - - - Set-AzStorageShareQuota - - ShareClient - - ShareClient object indicated the share whose quota to set. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - Quota - - Specifies the quota value in gigabytes (GB). See the quota limitation in https://learn.microsoft.com/azure/azure-subscription-service-limits#azure-files-limits. - - System.Int32 - - System.Int32 - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - Set-AzStorageShareQuota - - ShareName - - Specifies the name of the file share for which to set a quota. - - System.String - - System.String - - - None - - - Quota - - Specifies the quota value in gigabytes (GB). See the quota limitation in https://learn.microsoft.com/azure/azure-subscription-service-limits#azure-files-limits. - - System.Int32 - - System.Int32 - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Quota - - Specifies the quota value in gigabytes (GB). See the quota limitation in https://learn.microsoft.com/azure/azure-subscription-service-limits#azure-files-limits. - - System.Int32 - - System.Int32 - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ShareClient - - ShareClient object indicated the share whose quota to set. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - ShareName - - Specifies the name of the file share for which to set a quota. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - Azure.Storage.Files.Shares.ShareClient - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFileShare - - - - - - - - - - - - - - -------- Example 1: Set the storage capacity of a share -------- - Set-AzStorageShareQuota -ShareName "ContosoShare01" -Quota 1024 - - This command sets the storage capacity for a share named ContosoShare01 to 1024 GB. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstoragesharequota - - - Get-AzStorageFileContent - - - - Get-AzStorageShare - - - - New-AzStorageContext - - - - - - - Set-AzStorageShareStoredAccessPolicy - Set - AzStorageShareStoredAccessPolicy - - Updates a stored access policy on a Storage share. - - - - The Set-AzStorageShareStoredAccessPolicy cmdlet updates stored access policy on an Azure Storage share. - - - - Set-AzStorageShareStoredAccessPolicy - - ShareName - - Specifies the name of the Storage share. - - System.String - - System.String - - - None - - - Policy - - Specifies a name for the stored access policy. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the stored access policy becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - NoExpiryTime - - Indicates that this cmdlet clears the ExpiryTime property in the stored access policy. - - - System.Management.Automation.SwitchParameter - - - False - - - NoStartTime - - Indicates that this cmdlet clears the StartTime property in the stored access policy. - - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - Specifies permissions in the stored access policy to access the share or files under it. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - StartTime - - Specifies the time at which the stored access policy becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the stored access policy becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - NoExpiryTime - - Indicates that this cmdlet clears the ExpiryTime property in the stored access policy. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - NoStartTime - - Indicates that this cmdlet clears the StartTime property in the stored access policy. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - Specifies permissions in the stored access policy to access the share or files under it. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - Policy - - Specifies a name for the stored access policy. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ShareName - - Specifies the name of the Storage share. - - System.String - - System.String - - - None - - - StartTime - - Specifies the time at which the stored access policy becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Management.Automation.PSObject - - - - - - - - - - - - - - -- Example 1: Update a stored access policy in Storage share -- - Set-AzStorageShareStoredAccessPolicy -ShareName "ContosoShare" -Policy "GeneralPolicy" -Permission "rwdl" - - This command updates a stored access policy that has full permission in a share. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstoragesharestoredaccesspolicy - - - Get-AzStorageShareStoredAccessPolicy - - - - New-AzStorageContext - - - - New-AzStorageShareStoredAccessPolicy - - - - Remove-AzStorageShareStoredAccessPolicy - - - - - - - Set-AzStorageTableStoredAccessPolicy - Set - AzStorageTableStoredAccessPolicy - - Sets the stored access policy for an Azure storage table. - - - - The Set-AzStorageTableStoredAccessPolicy cmdlet set the stored access policy for an Azure storage table. - - - - Set-AzStorageTableStoredAccessPolicy - - Table - - Specifies the Azure storage table name. - - System.String - - System.String - - - None - - - Policy - - Specifies the name for the stored access policy. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the stored access policy expires. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - NoExpiryTime - - Indicates that the access policy has no expiration date. - - - System.Management.Automation.SwitchParameter - - - False - - - NoStartTime - - Indicates that the start time is set to $Null. - - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - Specifies permissions in the stored access policy to access the storage table. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - StartTime - - Specifies the time at which the stored access policy becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the stored access policy expires. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - NoExpiryTime - - Indicates that the access policy has no expiration date. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - NoStartTime - - Indicates that the start time is set to $Null. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - Specifies permissions in the stored access policy to access the storage table. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - Policy - - Specifies the name for the stored access policy. - - System.String - - System.String - - - None - - - StartTime - - Specifies the time at which the stored access policy becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Table - - Specifies the Azure storage table name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - - - - - - Example 1: Set a stored access policy in table with full permission - Set-AzStorageTableStoredAccessPolicy -Table "MyTable" -Policy "Policy08" -Permission raud - - This command sets an access policy named Policy08 for storage table named MyTable. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstoragetablestoredaccesspolicy - - - Get-AzStorageTableStoredAccessPolicy - - - - New-AzStorageContext - - - - New-AzStorageTableStoredAccessPolicy - - - - Remove-AzStorageTableStoredAccessPolicy - - - - - - - Start-AzStorageBlobCopy - Start - AzStorageBlobCopy - - Starts to copy a blob. - - - - The Start-AzStorageBlobCopy cmdlet starts to copy a blob. - - - - Start-AzStorageBlobCopy - - AbsoluteUri - - Specifies the absolute URI of a file to copy to an Azure Storage blob. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Specifies the name of the destination blob. - - System.String - - System.String - - - None - - - DestContainer - - Specifies the name of the destination container. - - System.String - - System.String - - - None - - - DestContext - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestTagCondition - - Optional Tag expression statement to check match condition on the destination Blob. The blob request will fail when the destination blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Force - - Indicates that this cmdlet overwrites the destination blob without prompting you for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - RehydratePriority - - Block Blob RehydratePriority. Indicates the priority with which to rehydrate an archived blob. Valid values are High/Standard. - - - Standard - High - - Microsoft.Azure.Storage.Blob.RehydratePriority - - Microsoft.Azure.Storage.Blob.RehydratePriority - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - Tag - - Blob Tags - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - TagCondition - - Optional Tag expression statement to check match condition on the source blob. The blob request will fail when the source blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageBlobCopy - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlob - - Specifies a CloudBlob object from Azure Storage Client library. To obtain a CloudBlob object, use the Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Specifies the name of the destination blob. - - System.String - - System.String - - - None - - - DestContainer - - Specifies the name of the destination container. - - System.String - - System.String - - - None - - - DestContext - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestTagCondition - - Optional Tag expression statement to check match condition on the destination Blob. The blob request will fail when the destination blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Force - - Indicates that this cmdlet overwrites the destination blob without prompting you for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PremiumPageBlobTier - - Premium Page Blob Tier - - - Unknown - P4 - P6 - P10 - P20 - P30 - P40 - P50 - P60 - P70 - P80 - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - - None - - - RehydratePriority - - Block Blob RehydratePriority. Indicates the priority with which to rehydrate an archived blob. Valid values are High/Standard. - - - Standard - High - - Microsoft.Azure.Storage.Blob.RehydratePriority - - Microsoft.Azure.Storage.Blob.RehydratePriority - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - Tag - - Blob Tags - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - TagCondition - - Optional Tag expression statement to check match condition on the source blob. The blob request will fail when the source blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageBlobCopy - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlob - - Specifies a CloudBlob object from Azure Storage Client library. To obtain a CloudBlob object, use the Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestCloudBlob - - Specifies a destination CloudBlob object - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - DestContext - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestTagCondition - - Optional Tag expression statement to check match condition on the destination Blob. The blob request will fail when the destination blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Force - - Indicates that this cmdlet overwrites the destination blob without prompting you for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PremiumPageBlobTier - - Premium Page Blob Tier - - - Unknown - P4 - P6 - P10 - P20 - P30 - P40 - P50 - P60 - P70 - P80 - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - - None - - - RehydratePriority - - Block Blob RehydratePriority. Indicates the priority with which to rehydrate an archived blob. Valid values are High/Standard. - - - Standard - High - - Microsoft.Azure.Storage.Blob.RehydratePriority - - Microsoft.Azure.Storage.Blob.RehydratePriority - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - Tag - - Blob Tags - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - TagCondition - - Optional Tag expression statement to check match condition on the source blob. The blob request will fail when the source blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageBlobCopy - - SrcBlob - - Specifies the name of the source blob. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlobContainer - - Specifies a CloudBlobContainer object from the Azure Storage Client library. This cmdlet copies a blob from the container that this parameter specifies. To obtain a CloudBlobContainer object, use the Get-AzStorageContainer cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Specifies the name of the destination blob. - - System.String - - System.String - - - None - - - DestContainer - - Specifies the name of the destination container. - - System.String - - System.String - - - None - - - DestContext - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestTagCondition - - Optional Tag expression statement to check match condition on the destination Blob. The blob request will fail when the destination blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Force - - Indicates that this cmdlet overwrites the destination blob without prompting you for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PremiumPageBlobTier - - Premium Page Blob Tier - - - Unknown - P4 - P6 - P10 - P20 - P30 - P40 - P50 - P60 - P70 - P80 - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - - None - - - RehydratePriority - - Block Blob RehydratePriority. Indicates the priority with which to rehydrate an archived blob. Valid values are High/Standard. - - - Standard - High - - Microsoft.Azure.Storage.Blob.RehydratePriority - - Microsoft.Azure.Storage.Blob.RehydratePriority - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - Tag - - Blob Tags - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - TagCondition - - Optional Tag expression statement to check match condition on the source blob. The blob request will fail when the source blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageBlobCopy - - SrcBlob - - Specifies the name of the source blob. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Specifies the name of the destination blob. - - System.String - - System.String - - - None - - - DestContainer - - Specifies the name of the destination container. - - System.String - - System.String - - - None - - - DestContext - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestTagCondition - - Optional Tag expression statement to check match condition on the destination Blob. The blob request will fail when the destination blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Force - - Indicates that this cmdlet overwrites the destination blob without prompting you for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PremiumPageBlobTier - - Premium Page Blob Tier - - - Unknown - P4 - P6 - P10 - P20 - P30 - P40 - P50 - P60 - P70 - P80 - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - - None - - - RehydratePriority - - Block Blob RehydratePriority. Indicates the priority with which to rehydrate an archived blob. Valid values are High/Standard. - - - Standard - High - - Microsoft.Azure.Storage.Blob.RehydratePriority - - Microsoft.Azure.Storage.Blob.RehydratePriority - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcContainer - - Specifies the name of the source container. - - System.String - - System.String - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - Tag - - Blob Tags - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - TagCondition - - Optional Tag expression statement to check match condition on the source blob. The blob request will fail when the source blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageBlobCopy - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Specifies the name of the destination blob. - - System.String - - System.String - - - None - - - DestContainer - - Specifies the name of the destination container. - - System.String - - System.String - - - None - - - DestContext - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestTagCondition - - Optional Tag expression statement to check match condition on the destination Blob. The blob request will fail when the destination blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Force - - Indicates that this cmdlet overwrites the destination blob without prompting you for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - RehydratePriority - - Block Blob RehydratePriority. Indicates the priority with which to rehydrate an archived blob. Valid values are High/Standard. - - - Standard - High - - Microsoft.Azure.Storage.Blob.RehydratePriority - - Microsoft.Azure.Storage.Blob.RehydratePriority - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcFilePath - - Specifies the source file relative path of source directory or source share. - - System.String - - System.String - - - None - - - SrcShareName - - Specifies the source share name. - - System.String - - System.String - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - Tag - - Blob Tags - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageBlobCopy - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Specifies the name of the destination blob. - - System.String - - System.String - - - None - - - DestContainer - - Specifies the name of the destination container. - - System.String - - System.String - - - None - - - DestContext - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestTagCondition - - Optional Tag expression statement to check match condition on the destination Blob. The blob request will fail when the destination blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Force - - Indicates that this cmdlet overwrites the destination blob without prompting you for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - RehydratePriority - - Block Blob RehydratePriority. Indicates the priority with which to rehydrate an archived blob. Valid values are High/Standard. - - - Standard - High - - Microsoft.Azure.Storage.Blob.RehydratePriority - - Microsoft.Azure.Storage.Blob.RehydratePriority - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcFilePath - - Specifies the source file relative path of source directory or source share. - - System.String - - System.String - - - None - - - SrcShare - - Specifies a CloudFileShare object from Azure Storage Client library. You can create it or use Get-AzStorageShare cmdlet. - - Microsoft.Azure.Storage.File.CloudFileShare - - Microsoft.Azure.Storage.File.CloudFileShare - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - Tag - - Blob Tags - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageBlobCopy - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Specifies the name of the destination blob. - - System.String - - System.String - - - None - - - DestContainer - - Specifies the name of the destination container. - - System.String - - System.String - - - None - - - DestContext - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestTagCondition - - Optional Tag expression statement to check match condition on the destination Blob. The blob request will fail when the destination blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Force - - Indicates that this cmdlet overwrites the destination blob without prompting you for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - RehydratePriority - - Block Blob RehydratePriority. Indicates the priority with which to rehydrate an archived blob. Valid values are High/Standard. - - - Standard - High - - Microsoft.Azure.Storage.Blob.RehydratePriority - - Microsoft.Azure.Storage.Blob.RehydratePriority - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcDir - - Specifies a CloudFileDirectory object from Azure Storage Client library. - - Microsoft.Azure.Storage.File.CloudFileDirectory - - Microsoft.Azure.Storage.File.CloudFileDirectory - - - None - - - SrcFilePath - - Specifies the source file relative path of source directory or source share. - - System.String - - System.String - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - Tag - - Blob Tags - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageBlobCopy - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Specifies the name of the destination blob. - - System.String - - System.String - - - None - - - DestContainer - - Specifies the name of the destination container. - - System.String - - System.String - - - None - - - DestContext - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestTagCondition - - Optional Tag expression statement to check match condition on the destination Blob. The blob request will fail when the destination blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Force - - Indicates that this cmdlet overwrites the destination blob without prompting you for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - RehydratePriority - - Block Blob RehydratePriority. Indicates the priority with which to rehydrate an archived blob. Valid values are High/Standard. - - - Standard - High - - Microsoft.Azure.Storage.Blob.RehydratePriority - - Microsoft.Azure.Storage.Blob.RehydratePriority - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcFile - - Specifies a CloudFile object from Azure Storage Client library. You can create it or use Get-AzStorageFile cmdlet. - - Microsoft.Azure.Storage.File.CloudFile - - Microsoft.Azure.Storage.File.CloudFile - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - Tag - - Blob Tags - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageBlobCopy - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestCloudBlob - - Specifies a destination CloudBlob object - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - DestContext - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestTagCondition - - Optional Tag expression statement to check match condition on the destination Blob. The blob request will fail when the destination blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Force - - Indicates that this cmdlet overwrites the destination blob without prompting you for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - RehydratePriority - - Block Blob RehydratePriority. Indicates the priority with which to rehydrate an archived blob. Valid values are High/Standard. - - - Standard - High - - Microsoft.Azure.Storage.Blob.RehydratePriority - - Microsoft.Azure.Storage.Blob.RehydratePriority - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcFile - - Specifies a CloudFile object from Azure Storage Client library. You can create it or use Get-AzStorageFile cmdlet. - - Microsoft.Azure.Storage.File.CloudFile - - Microsoft.Azure.Storage.File.CloudFile - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - Tag - - Blob Tags - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AbsoluteUri - - Specifies the absolute URI of a file to copy to an Azure Storage blob. - - System.String - - System.String - - - None - - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlob - - Specifies a CloudBlob object from Azure Storage Client library. To obtain a CloudBlob object, use the Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - CloudBlobContainer - - Specifies a CloudBlobContainer object from the Azure Storage Client library. This cmdlet copies a blob from the container that this parameter specifies. To obtain a CloudBlobContainer object, use the Get-AzStorageContainer cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Specifies the name of the destination blob. - - System.String - - System.String - - - None - - - DestCloudBlob - - Specifies a destination CloudBlob object - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - DestContainer - - Specifies the name of the destination container. - - System.String - - System.String - - - None - - - DestContext - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestTagCondition - - Optional Tag expression statement to check match condition on the destination Blob. The blob request will fail when the destination blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Force - - Indicates that this cmdlet overwrites the destination blob without prompting you for confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - PremiumPageBlobTier - - Premium Page Blob Tier - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - - None - - - RehydratePriority - - Block Blob RehydratePriority. Indicates the priority with which to rehydrate an archived blob. Valid values are High/Standard. - - Microsoft.Azure.Storage.Blob.RehydratePriority - - Microsoft.Azure.Storage.Blob.RehydratePriority - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcBlob - - Specifies the name of the source blob. - - System.String - - System.String - - - None - - - SrcContainer - - Specifies the name of the source container. - - System.String - - System.String - - - None - - - SrcDir - - Specifies a CloudFileDirectory object from Azure Storage Client library. - - Microsoft.Azure.Storage.File.CloudFileDirectory - - Microsoft.Azure.Storage.File.CloudFileDirectory - - - None - - - SrcFile - - Specifies a CloudFile object from Azure Storage Client library. You can create it or use Get-AzStorageFile cmdlet. - - Microsoft.Azure.Storage.File.CloudFile - - Microsoft.Azure.Storage.File.CloudFile - - - None - - - SrcFilePath - - Specifies the source file relative path of source directory or source share. - - System.String - - System.String - - - None - - - SrcShare - - Specifies a CloudFileShare object from Azure Storage Client library. You can create it or use Get-AzStorageShare cmdlet. - - Microsoft.Azure.Storage.File.CloudFileShare - - Microsoft.Azure.Storage.File.CloudFileShare - - - None - - - SrcShareName - - Specifies the source share name. - - System.String - - System.String - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - Tag - - Blob Tags - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - TagCondition - - Optional Tag expression statement to check match condition on the source blob. The blob request will fail when the source blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Storage.Blob.CloudBlob - - - - - - - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - - - - - - Microsoft.Azure.Storage.File.CloudFile - - - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageBlob - - - - - - - - - - - - - - ----------------- Example 1: Copy a named blob ----------------- - Start-AzStorageBlobCopy -SrcBlob "ContosoPlanning2015" -DestContainer "ContosoArchives" -SrcContainer "ContosoUploads" - - This command starts the copy operation of the blob named ContosoPlanning2015 from the container named ContosoUploads to the container named ContosoArchives. - - - - - - ----- Example 2: Get a container to specify blobs to copy ----- - Get-AzStorageContainer -Name "ContosoUploads" | Start-AzStorageBlobCopy -SrcBlob "ContosoPlanning2015" -DestContainer "ContosoArchives" - - This command gets the container named ContosoUploads, by using the Get-AzStorageContainer cmdlet, and then passes the container to the current cmdlet by using the pipeline operator. That cmdlet starts the copy operation of the blob named ContosoPlanning2015. The previous cmdlet provides the source container. The DestContainer parameter specifies ContosoArchives as the destination container. - - - - - - ---- Example 3: Get all blobs in a container and copy them ---- - Get-AzStorageBlob -Container "ContosoUploads" | Start-AzStorageBlobCopy -DestContainer "ContosoArchives" - - This command gets the blobs in the container named ContosoUploads, by using the Get-AzStorageBlob cmdlet, and then passes the results to the current cmdlet by using the pipeline operator. That cmdlet starts the copy operation of the blobs to the container named ContosoArchives. - - - - - - -------- Example 4: Copy a blob specified as an object -------- - $SrcBlob = Get-AzStorageBlob -Container "ContosoUploads" -Blob "ContosoPlanning2015" -$DestBlob = Get-AzStorageBlob -Container "ContosoArchives" -Blob "ContosoPlanning2015Archived" -Start-AzStorageBlobCopy -ICloudBlob $SrcBlob.ICloudBlob -DestICloudBlob $DestBlob.ICloudBlob - - The first command gets the blob named ContosoPlanning2015 in the container named ContosoUploads. The command stores that object in the $SrcBlob variable. The second command gets the blob named ContosoPlanning2015Archived in the container named ContosoArchives. The command stores that object in the $DestBlob variable. The last command starts the copy operation from the source container to the destination container. The command uses standard dot notation to specify the ICloudBlob objects for the $SrcBlob and $DestBlob blobs. - - - - - - -------------- Example 5: Copy a blob from a URI -------------- - $Context = New-AzStorageContext -StorageAccountName "ContosoGeneral" -StorageAccountKey "< Storage Key for ContosoGeneral ends with == >" -Start-AzStorageBlobCopy -AbsoluteUri "http://www.contosointernal.com/planning" -DestContainer "ContosoArchive" -DestBlob "ContosoPlanning2015" -DestContext $Context - - This command creates a context for the account named ContosoGeneral that uses the specified key, and then stores that key in the $Context variable. The second command copies the file from the specified URI to the blob named ContosoPlanning in the container named ContosoArchive. The command starts the copy operation to the destination context stored in $Context. There are no source storage context, so the source Uri must have access to the source object. E.g: if the source is a none public Azure blob, the Uri should contain SAS token which has read access to the blob. - - - - - - Example 6: Copy a block blob to destination container with a new blob name, and set destination blob StandardBlobTier as Hot, RehydratePriority as High - Start-AzStorageBlobCopy -SrcContainer "ContosoUploads" -SrcBlob "BlockBlobName" -DestContainer "ContosoArchives" -DestBlob "NewBlockBlobName" -StandardBlobTier Hot -RehydratePriority High - - This command starts the copy operation of a block blob to destination container with a new blob name, and set destination blob StandardBlobTier as Hot, RehydratePriority as High - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/start-azstorageblobcopy - - - Get-AzStorageBlobCopyState - - - - Stop-AzStorageBlobCopy - - - - - - - Start-AzStorageBlobIncrementalCopy - Start - AzStorageBlobIncrementalCopy - - Start an Incremental copy operation from a Page blob snapshot to the specified destination Page blob. - - - - Start an Incremental copy operation from a Page blob snapshot to the specified destination Page blob. See more details of the feature in https://learn.microsoft.com/rest/api/storageservices/fileservices/incremental-copy-blob. - - - - Start-AzStorageBlobIncrementalCopy - - AbsoluteUri - - Absolute Uri to the source. Be noted that the credential should be provided in the Uri, if the source requires any. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Source Azure Storage Context. You can create it by New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Destination blob name - - System.String - - System.String - - - None - - - DestContainer - - Destination container name - - System.String - - System.String - - - None - - - DestContext - - Destination Azure Storage Context. You can create it by New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageBlobIncrementalCopy - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlob - - CloudBlob object from Azure Storage Client library. You can create it or use Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudPageBlob - - Microsoft.Azure.Storage.Blob.CloudPageBlob - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Source Azure Storage Context. You can create it by New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Destination blob name - - System.String - - System.String - - - None - - - DestContainer - - Destination container name - - System.String - - System.String - - - None - - - DestContext - - Destination Azure Storage Context. You can create it by New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageBlobIncrementalCopy - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlob - - CloudBlob object from Azure Storage Client library. You can create it or use Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudPageBlob - - Microsoft.Azure.Storage.Blob.CloudPageBlob - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Source Azure Storage Context. You can create it by New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestCloudBlob - - Destination CloudBlob object - - Microsoft.Azure.Storage.Blob.CloudPageBlob - - Microsoft.Azure.Storage.Blob.CloudPageBlob - - - None - - - DestContext - - Destination Azure Storage Context. You can create it by New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageBlobIncrementalCopy - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlobContainer - - CloudBlobContainer object from Azure Storage Client library. You can create it or use Get-AzStorageContainer cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Source Azure Storage Context. You can create it by New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Destination blob name - - System.String - - System.String - - - None - - - DestContainer - - Destination container name - - System.String - - System.String - - - None - - - DestContext - - Destination Azure Storage Context. You can create it by New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcBlob - - Source page blob name. - - System.String - - System.String - - - None - - - SrcBlobSnapshotTime - - Source page blob snapshot time. - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageBlobIncrementalCopy - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Source Azure Storage Context. You can create it by New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Destination blob name - - System.String - - System.String - - - None - - - DestContainer - - Destination container name - - System.String - - System.String - - - None - - - DestContext - - Destination Azure Storage Context. You can create it by New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcBlob - - Source page blob name. - - System.String - - System.String - - - None - - - SrcBlobSnapshotTime - - Source page blob snapshot time. - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - SrcContainer - - Source Container name - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AbsoluteUri - - Absolute Uri to the source. Be noted that the credential should be provided in the Uri, if the source requires any. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlob - - CloudBlob object from Azure Storage Client library. You can create it or use Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudPageBlob - - Microsoft.Azure.Storage.Blob.CloudPageBlob - - - None - - - CloudBlobContainer - - CloudBlobContainer object from Azure Storage Client library. You can create it or use Get-AzStorageContainer cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Source Azure Storage Context. You can create it by New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Destination blob name - - System.String - - System.String - - - None - - - DestCloudBlob - - Destination CloudBlob object - - Microsoft.Azure.Storage.Blob.CloudPageBlob - - Microsoft.Azure.Storage.Blob.CloudPageBlob - - - None - - - DestContainer - - Destination container name - - System.String - - System.String - - - None - - - DestContext - - Destination Azure Storage Context. You can create it by New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcBlob - - Source page blob name. - - System.String - - System.String - - - None - - - SrcBlobSnapshotTime - - Source page blob snapshot time. - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - SrcContainer - - Source Container name - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Storage.Blob.CloudPageBlob - - - - - - - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageBlob - - - - - - - - - - - - - - Example 1: Start Incremental Copy Operation by blob name and snapshot time - Start-AzStorageBlobIncrementalCopy -SrcContainer container1 -SrcBlob blob1 -SrcBlobSnapshotTime "04/07/2017 09:55:36.1190229 AM +00:00" -DestContainer container2 -DestBlob blob2 - - This command start Incremental Copy Operation by blob name and snapshot time - - - - - - - Example 2: Start Incremental copy operation using source uri - - Start-AzStorageBlobIncrementalCopy -AbsoluteUri "http://www.somesite.com/somefile?snapshot=2017-04-07T10:05:40.2126635Z" -DestContainer container -DestBlob blob -DestContext $context - - This command start Incremental Copy Operation using source uri - - - - - - Example 3: Start Incremental copy operation using container pipeline from GetAzureStorageContainer - Get-AzStorageContainer -Container container1 | Start-AzStorageBlobIncrementalCopy -SrcBlob blob -SrcBlobSnapshotTime "04/07/2017 09:55:36.1190229 AM +00:00" -DestContainer container2 - - This command start Incremental Copy Operation using container pipeline from GetAzureStorageContainer - - - - - - Example 4: start Incremental copy operation from CloudPageBlob object to destination blob with blob name - $srcBlobSnapshot = Get-AzStorageBlob -Container container1 -prefix blob1| Where-Object ({$_.ICloudBlob.IsSnapshot})[0] -Start-AzStorageBlobIncrementalCopy -CloudBlob $srcBlobSnapshot.ICloudBlob -DestContainer container2 -DestBlob blob2 - - This command start Incremental Copy Operation from CloudPageBlob object to destination blob with blob name - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/start-azstorageblobincrementalcopy - - - - - - Start-AzStorageFileCopy - Start - AzStorageFileCopy - - Starts to copy a source file. - - - - The Start-AzStorageFileCopy cmdlet starts to copy a source file to a destination file. This cmdlet will trigger asynchronous blob copy, the copy process is handled by server. If this is a cross account blob copy, there is no SLA for the blob copy. - - - - Start-AzStorageFileCopy - - AbsoluteUri - - Specifies the URI of the source file. If the source location requires a credential, you must provide one. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestContext - - Specifies the Azure Storage context of the destination. To obtain a context, use New-AzStorageContext . - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestFilePath - - Specifies the path of the destination file relative to the destination share. - - System.String - - System.String - - - None - - - DestShareName - - Specifies the name of the destination share. - - System.String - - System.String - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageFileCopy - - AbsoluteUri - - Specifies the URI of the source file. If the source location requires a credential, you must provide one. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestContext - - Specifies the Azure Storage context of the destination. To obtain a context, use New-AzStorageContext . - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestShareFileClient - - ShareFileClient object indicated the Dest file. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageFileCopy - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestContext - - Specifies the Azure Storage context of the destination. To obtain a context, use New-AzStorageContext . - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestFilePath - - Specifies the path of the destination file relative to the destination share. - - System.String - - System.String - - - None - - - DestShareName - - Specifies the name of the destination share. - - System.String - - System.String - - - None - - - DisAllowDestTrailingDot - - Disallow trailing dot (.) to suffix destination directory and destination file names. - - - System.Management.Automation.SwitchParameter - - - False - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcBlobName - - Specifies the name of the source blob. - - System.String - - System.String - - - None - - - SrcContainerName - - Specifies the name of the source container. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageFileCopy - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestContext - - Specifies the Azure Storage context of the destination. To obtain a context, use New-AzStorageContext . - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestFilePath - - Specifies the path of the destination file relative to the destination share. - - System.String - - System.String - - - None - - - DestShareName - - Specifies the name of the destination share. - - System.String - - System.String - - - None - - - DisAllowDestTrailingDot - - Disallow trailing dot (.) to suffix destination directory and destination file names. - - - System.Management.Automation.SwitchParameter - - - False - - - DisAllowSourceTrailingDot - - Disallow trailing dot (.) to suffix source directory and source file names. - - - System.Management.Automation.SwitchParameter - - - False - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcFilePath - - Specifies the path of the source file relative to the source directory or source share. - - System.String - - System.String - - - None - - - SrcShareName - - Specifies the name of the source share. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageFileCopy - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestContext - - Specifies the Azure Storage context of the destination. To obtain a context, use New-AzStorageContext . - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestFilePath - - Specifies the path of the destination file relative to the destination share. - - System.String - - System.String - - - None - - - DestShareName - - Specifies the name of the destination share. - - System.String - - System.String - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcBlobName - - Specifies the name of the source blob. - - System.String - - System.String - - - None - - - SrcContainer - - Specifies a cloud blob container object. You can create cloud blob container object or use the Get-AzStorageContainer cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageFileCopy - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestContext - - Specifies the Azure Storage context of the destination. To obtain a context, use New-AzStorageContext . - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestFilePath - - Specifies the path of the destination file relative to the destination share. - - System.String - - System.String - - - None - - - DestShareName - - Specifies the name of the destination share. - - System.String - - System.String - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcBlob - - Specifies a CloudBlob object. You can create a cloud blob or obtain one by using the Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageFileCopy - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestContext - - Specifies the Azure Storage context of the destination. To obtain a context, use New-AzStorageContext . - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestFilePath - - Specifies the path of the destination file relative to the destination share. - - System.String - - System.String - - - None - - - DestShareName - - Specifies the name of the destination share. - - System.String - - System.String - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcFilePath - - Specifies the path of the source file relative to the source directory or source share. - - System.String - - System.String - - - None - - - SrcShare - - Specifies a cloud file share object. You can create a cloud file share or obtain one by using the Get-AzStorageShare cmdlet. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageFileCopy - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestContext - - Specifies the Azure Storage context of the destination. To obtain a context, use New-AzStorageContext . - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestFilePath - - Specifies the path of the destination file relative to the destination share. - - System.String - - System.String - - - None - - - DestShareName - - Specifies the name of the destination share. - - System.String - - System.String - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcFile - - Specifies a ShareFileClient object. You can create a ShareFileClient or obtain one by using Get-AzStorageFile . - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageFileCopy - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestContext - - Specifies the Azure Storage context of the destination. To obtain a context, use New-AzStorageContext . - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestShareFileClient - - ShareFileClient object indicated the Dest file. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcBlob - - Specifies a CloudBlob object. You can create a cloud blob or obtain one by using the Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageFileCopy - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestContext - - Specifies the Azure Storage context of the destination. To obtain a context, use New-AzStorageContext . - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestShareFileClient - - ShareFileClient object indicated the Dest file. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcFile - - Specifies a ShareFileClient object. You can create a ShareFileClient or obtain one by using Get-AzStorageFile . - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AbsoluteUri - - Specifies the URI of the source file. If the source location requires a credential, you must provide one. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestContext - - Specifies the Azure Storage context of the destination. To obtain a context, use New-AzStorageContext . - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestFilePath - - Specifies the path of the destination file relative to the destination share. - - System.String - - System.String - - - None - - - DestShareFileClient - - ShareFileClient object indicated the Dest file. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - DestShareName - - Specifies the name of the destination share. - - System.String - - System.String - - - None - - - DisAllowDestTrailingDot - - Disallow trailing dot (.) to suffix destination directory and destination file names. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DisAllowSourceTrailingDot - - Disallow trailing dot (.) to suffix source directory and source file names. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Force - - Forces the command to run without asking for user confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcBlob - - Specifies a CloudBlob object. You can create a cloud blob or obtain one by using the Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - SrcBlobName - - Specifies the name of the source blob. - - System.String - - System.String - - - None - - - SrcContainer - - Specifies a cloud blob container object. You can create cloud blob container object or use the Get-AzStorageContainer cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - SrcContainerName - - Specifies the name of the source container. - - System.String - - System.String - - - None - - - SrcFile - - Specifies a ShareFileClient object. You can create a ShareFileClient or obtain one by using Get-AzStorageFile . - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - SrcFilePath - - Specifies the path of the source file relative to the source directory or source share. - - System.String - - System.String - - - None - - - SrcShare - - Specifies a cloud file share object. You can create a cloud file share or obtain one by using the Get-AzStorageShare cmdlet. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - SrcShareName - - Specifies the name of the source share. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Storage.Blob.CloudBlob - - - - - - - - Azure.Storage.Files.Shares.ShareFileClient - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFile - - - - - - - - - - - - - - Example 1: Start copy operation from file to file by using share name and file name - Start-AzStorageFileCopy -SrcShareName "ContosoShare01" -SrcFilePath "FilePath01" -DestShareName "ContosoShare02" -DestFilePath "FilePath02" - - This command starts a copy operation from file to file. The command specifies share name and file name - - - - - - Example 2: Start copy operation from blob to file by using container name and blob name - Start-AzStorageFileCopy -SrcContainerName "ContosoContainer01" -SrcBlobName "ContosoBlob01" -DestShareName "ContosoShare" -DestFilePath "FilePath02" - - This command starts a copy operation from blob to file. The command specifies container name and blob name - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/start-azstoragefilecopy - - - Get-AzStorageBlob - - - - Get-AzStorageContainer - - - - Get-AzStorageFile - - - - Get-AzStorageShare - - - - Get-AzStorageFileCopyState - - - - Stop-AzStorageFileCopy - - - - - - - Stop-AzStorageBlobCopy - Stop - AzStorageBlobCopy - - Stops a copy operation. - - - - The Stop-AzStorageBlobCopy cmdlet stops a copy operation to the specified destination blob. - - - - Stop-AzStorageBlobCopy - - Blob - - Specifies the name of the blob. - - System.String - - System.String - - - None - - - Container - - Specifies the name of the container. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage context. You can create the context by using the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - CopyId - - Specifies the copy ID. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Stops the current copy task on the specified blob without prompting for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Stop-AzStorageBlobCopy - - Blob - - Specifies the name of the blob. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlobContainer - - Specifies a CloudBlobContainer object from the Azure Storage Client library. You can create the object or use the Get-AzStorageContainer cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage context. You can create the context by using the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - CopyId - - Specifies the copy ID. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Stops the current copy task on the specified blob without prompting for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Stop-AzStorageBlobCopy - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlob - - Specifies a CloudBlob object from Azure Storage Client library. To obtain a CloudBlob object, use the Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage context. You can create the context by using the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - CopyId - - Specifies the copy ID. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Stops the current copy task on the specified blob without prompting for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Blob - - Specifies the name of the blob. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlob - - Specifies a CloudBlob object from Azure Storage Client library. To obtain a CloudBlob object, use the Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - CloudBlobContainer - - Specifies a CloudBlobContainer object from the Azure Storage Client library. You can create the object or use the Get-AzStorageContainer cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Specifies the name of the container. - - System.String - - System.String - - - None - - - Context - - Specifies the Azure storage context. You can create the context by using the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - CopyId - - Specifies the copy ID. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Stops the current copy task on the specified blob without prompting for confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Storage.Blob.CloudBlob - - - - - - - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageBlob - - - - - - - - - - - - - - ------------ Example 1: Stop copy operation by name ------------ - Stop-AzStorageBlobCopy -Container "ContainerName" -Blob "BlobName" -CopyId "CopyID" - - This command stops the copy operation by name. - - - - - - ----- Example 2: Stop copy operation by using the pipeline ----- - Get-AzStorageContainer container* | Stop-AzStorageBlobCopy -Blob "BlobName" - - This command stops the copy operation by passing the container on the pipeline from Get-AzStorageContainer . - - - - - - Example 3: Stop copy operation by using the pipeline and Get-AzStorageBlob - Get-AzStorageBlob -Container "ContainerName" | Stop-AzStorageBlobCopy -Force - - This example stops the copy operation by passing the container on the pipeline from the Get-AzStorageBlob cmdlet. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/stop-azstorageblobcopy - - - Get-AzStorageBlob - - - - Get-AzStorageContainer - - - - Start-AzStorageBlobCopy - - - - Get-AzStorageBlobCopyState - - - - - - - Stop-AzStorageFileCopy - Stop - AzStorageFileCopy - - Stops a copy operation to the specified destination file. - - - - The Stop-AzStorageFileCopy cmdlet stops copying a file to a destination file. - - - - Stop-AzStorageFileCopy - - ShareName - - Specifies the name of a share. - - System.String - - System.String - - - None - - - FilePath - - Specifies the path of a file. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - CopyId - - Specifies the ID of the copy operation. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - - System.Management.Automation.SwitchParameter - - - False - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Stop-AzStorageFileCopy - - ShareFileClient - - ShareFileClient object indicated the file to Stop Copy. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - CopyId - - Specifies the ID of the copy operation. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - CopyId - - Specifies the ID of the copy operation. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - FilePath - - Specifies the path of a file. - - System.String - - System.String - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ShareFileClient - - ShareFileClient object indicated the file to Stop Copy. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - ShareName - - Specifies the name of a share. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Azure.Storage.Files.Shares.ShareFileClient - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Void - - - - - - - - - - - - - - --------------- Example 1: Stop a copy operation --------------- - Stop-AzStorageFileCopy -ShareName "ContosoShare" -FilePath "FilePath" -CopyId "CopyId" - - This command stops copying a file that has the specified name. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/stop-azstoragefilecopy - - - Get-AzStorageFile - - - - Get-AzStorageFileCopyState - - - - New-AzStorageContext - - - - Start-AzStorageFileCopy - - - - - - - Update-AzDataLakeGen2AclRecursive - Update - AzDataLakeGen2AclRecursive - - Update ACL recursively on the specified path. - - - - The Update-AzDataLakeGen2AclRecursive cmdlet updates ACL recursively on the specified path. The input ACL will merge the the original ACL: If ACL entry with same AccessControlType/EntityId/DefaultScope exist, update permission; else add a new ACL entry. - - - - Update-AzDataLakeGen2AclRecursive - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Path - - The path in the specified FileSystem that to change Acl recursively. Can be a file or directory. In the format 'directory/file.txt' or 'directory1/directory2/'. Skip set this parameter to change Acl recursively from root directory of the Filesystem. - - System.String - - System.String - - - None - - - Acl - - The POSIX access control list to set recursively for the file or directory. - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - BatchSize - - If data set size exceeds batch size then operation will be split into multiple requests so that progress can be tracked. Batch size should be between 1 and 2000. Default is 2000. - - System.Int32 - - System.Int32 - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Continuation Token. - - System.String - - System.String - - - None - - - ContinueOnFailure - - Set this parameter to ignore failures and continue proceeing with the operation on other sub-entities of the directory. Default the operation will terminate quickly on encountering failures. - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - MaxBatchCount - - Maximum number of batches that single change Access Control operation can execute. If data set size exceeds MaxBatchCount multiply BatchSize, continuation token will be return. - - System.Int32 - - System.Int32 - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Acl - - The POSIX access control list to set recursively for the file or directory. - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - - None - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - BatchSize - - If data set size exceeds batch size then operation will be split into multiple requests so that progress can be tracked. Batch size should be between 1 and 2000. Default is 2000. - - System.Int32 - - System.Int32 - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Continuation Token. - - System.String - - System.String - - - None - - - ContinueOnFailure - - Set this parameter to ignore failures and continue proceeing with the operation on other sub-entities of the directory. Default the operation will terminate quickly on encountering failures. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - MaxBatchCount - - Maximum number of batches that single change Access Control operation can execute. If data set size exceeds MaxBatchCount multiply BatchSize, continuation token will be return. - - System.Int32 - - System.Int32 - - - None - - - Path - - The path in the specified FileSystem that to change Acl recursively. Can be a file or directory. In the format 'directory/file.txt' or 'directory1/directory2/'. Skip set this parameter to change Acl recursively from root directory of the Filesystem. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - - - - - - Example 1: Update ACL recursively on a root directiry of filesystem - $acl = New-AzDataLakeGen2ItemAclObject -AccessControlType user -Permission rwx -$acl = New-AzDataLakeGen2ItemAclObject -AccessControlType group -Permission rw- -InputObject $acl -$acl = New-AzDataLakeGen2ItemAclObject -AccessControlType other -Permission "rw-" -InputObject $acl -Update-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Acl $acl -Context $ctx - -FailedEntries : -TotalDirectoriesSuccessfulCount : 7 -TotalFilesSuccessfulCount : 5 -TotalFailureCount : 0 -ContinuationToken : - - This command first creates an ACL object with 3 acl entries, then updates ACL recursively on a root directory of a file system. - - - - - - Example 2: Update ACL recursively on a directory, and resume from failure with ContinuationToken - $result = Update-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl -Context $ctx - -$result - -FailedEntries : {dir1/dir2/file4} -TotalDirectoriesSuccessfulCount : 500 -TotalFilesSuccessfulCount : 2500 -TotalFailureCount : 1 -ContinuationToken : VBaHi5TfyO2ai1wYTRhIL2FjbGNibjA2c3RmATAxRDVEN0UzRENFQzZCRTAvYWRsc3Rlc3QyATAxRDY2M0ZCQTZBN0JGQTkvZGlyMC9kaXIxL2ZpbGUzFgAAAA== - -$result.FailedEntries - -Name IsDirectory ErrorMessage ----- ----------- ------------ -dir0/dir2/file4 False This request is not authorized to perform this operation using this permission. - -# user need fix the failed item , then can resume with ContinuationToken - -$result = Update-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl -ContinuationToken $result.ContinuationToken -Context $ctx - -$result - -FailedEntries : -TotalDirectoriesSuccessfulCount : 100 -TotalFilesSuccessfulCount : 1000 -TotalFailureCount : 0 -ContinuationToken : - - This command first updateds ACL recursively to a directory and failed, then resume with ContinuationToken after user fix the failed file. - - - - - - ------- Example 3: Update ACL recursively chunk by chunk ------- - $ContinueOnFailure = $true # Set it to $false if want to terminate the operation quickly on encountering failures -$token = $null -$TotalDirectoriesSuccess = 0 -$TotalFilesSuccess = 0 -$totalFailure = 0 -$FailedEntries = New-Object System.Collections.Generic.List[System.Object] -do -{ - - if ($ContinueOnFailure) - { - $result = Update-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl -BatchSize 100 -MaxBatchCount 50 -ContinuationToken $token -Context $ctx -ContinueOnFailure - } - else - { - $result = Update-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl -BatchSize 100 -MaxBatchCount 50 -ContinuationToken $token -Context $ctx - } - - # echo $result - $TotalFilesSuccess += $result.TotalFilesSuccessfulCount - $TotalDirectoriesSuccess += $result.TotalDirectoriesSuccessfulCount - $totalFailure += $result.TotalFailureCount - $FailedEntries += $result.FailedEntries - $token = $result.ContinuationToken -}while (($null -ne $token) -and (($ContinueOnFailure) -or ($result.TotalFailureCount -eq 0))) -echo "" -echo "[Result Summary]" -echo "TotalDirectoriesSuccessfulCount: `t$($TotalDirectoriesSuccess)" -echo "TotalFilesSuccessfulCount: `t`t`t$($TotalFilesSuccess)" -echo "TotalFailureCount: `t`t`t`t`t$($totalFailure)" -echo "ContinuationToken: `t`t`t`t`t$($token)" -echo "FailedEntries:"$($FailedEntries | ft) - - This script will update ACL rescursively on directory chunk by chunk, with chunk size as BatchSize * MaxBatchCount. Chunk size is 5000 in this script. - - - - - - Example 4: Update ACL recursively on a directory and ContinueOnFailure, then resume from failures one by one - $result = Update-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl -ContinueOnFailure -Context $ctx - -$result - -FailedEntries : {dir0/dir1/file1, dir0/dir2/file4} -TotalDirectoriesSuccessfulCount : 100 -TotalFilesSuccessfulCount : 500 -TotalFailureCount : 2 -ContinuationToken : VBaHi5TfyO2ai1wYTRhIL2FjbGNibjA2c3RmATAxRDVEN0UzRENFQzZCRTAvYWRsc3Rlc3QyATAxRDY2M0ZCQTZBN0JGQTkvZGlyMC9kaXIxL2ZpbGUzFgAAAA== - -$result.FailedEntries - -Name IsDirectory ErrorMessage ----- ----------- ------------ -dir0/dir1/file1 False This request is not authorized to perform this operation using this permission. -dir0/dir2/file4 False This request is not authorized to perform this operation using this permission. - -# user need fix the failed item , then can resume with ContinuationToken - -foreach ($path in $result.FailedEntries.Name) - { - # user code to fix failed entry in $path - - #set ACL again - Set-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path $path -Acl $acl -Context $ctx - } - - This command first updateds ACL recursively to a directory with ContinueOnFailure, and some items failed, then resume the failed items one by one. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/update-azdatalakegen2aclrecursive - - - - - - Update-AzDataLakeGen2Item - Update - AzDataLakeGen2Item - - Update a file or directory on properties, metadata, permission, ACL, and owner. - - - - The Update-AzDataLakeGen2Item cmdlet updates a file or directory on properties, metadata, permission, ACL, and owner. This cmdlet only works if Hierarchical Namespace is enabled for the Storage account. This kind of account can be created by run "New-AzStorageAccount" cmdlet with "-EnableHierarchicalNamespace $true". - - - - Update-AzDataLakeGen2Item - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Acl - - Sets POSIX access control rights on files and directories. Create this object with New-AzDataLakeGen2ItemAclObject. - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Group - - Sets the owning group of the blob. - - System.String - - System.String - - - None - - - Metadata - - Specifies metadata for the directory or file. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Owner - - Sets the owner of the blob. - - System.String - - System.String - - - None - - - Path - - The path in the specified Filesystem that should be updated. Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/'. Not specify this parameter will update the root directory of the Filesystem. - - System.String - - System.String - - - None - - - Permission - - Sets POSIX access permissions for the file owner, the file owning group, and others. Each class may be granted read, write, or execute permission. Symbolic (rwxrw-rw-) is supported. The sticky bit is also supported and its represented either by the letter t or T in the final character-place depending on whether the execution bit for the others category is set or unset respectively, absence of t or T indicates sticky bit not set.Invalid in conjunction with ACL. - - System.String - - System.String - - - None - - - Property - - Specifies properties for the directory or file. The supported properties for file are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage, ContentMD5, ContentType. The supported properties for directory are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzDataLakeGen2Item - - Acl - - Sets POSIX access control rights on files and directories. Create this object with New-AzDataLakeGen2ItemAclObject. - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Group - - Sets the owning group of the blob. - - System.String - - System.String - - - None - - - InputObject - - Azure Datalake Gen2 Item Object to update - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - None - - - Metadata - - Specifies metadata for the directory or file. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Owner - - Sets the owner of the blob. - - System.String - - System.String - - - None - - - Permission - - Sets POSIX access permissions for the file owner, the file owning group, and others. Each class may be granted read, write, or execute permission. Symbolic (rwxrw-rw-) is supported. The sticky bit is also supported and its represented either by the letter t or T in the final character-place depending on whether the execution bit for the others category is set or unset respectively, absence of t or T indicates sticky bit not set.Invalid in conjunction with ACL. - - System.String - - System.String - - - None - - - Property - - Specifies properties for the directory or file. The supported properties for file are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage, ContentMD5, ContentType. The supported properties for directory are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Acl - - Sets POSIX access control rights on files and directories. Create this object with New-AzDataLakeGen2ItemAclObject. - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Group - - Sets the owning group of the blob. - - System.String - - System.String - - - None - - - InputObject - - Azure Datalake Gen2 Item Object to update - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - None - - - Metadata - - Specifies metadata for the directory or file. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Owner - - Sets the owner of the blob. - - System.String - - System.String - - - None - - - Path - - The path in the specified Filesystem that should be updated. Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/'. Not specify this parameter will update the root directory of the Filesystem. - - System.String - - System.String - - - None - - - Permission - - Sets POSIX access permissions for the file owner, the file owning group, and others. Each class may be granted read, write, or execute permission. Symbolic (rwxrw-rw-) is supported. The sticky bit is also supported and its represented either by the letter t or T in the final character-place depending on whether the execution bit for the others category is set or unset respectively, absence of t or T indicates sticky bit not set.Invalid in conjunction with ACL. - - System.String - - System.String - - - None - - - Property - - Specifies properties for the directory or file. The supported properties for file are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage, ContentMD5, ContentType. The supported properties for directory are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - - - - - - - - - - - - Example 1: Create an ACL object with 3 ACL entry, and update ACL to all items in a Filesystem recursively - $acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -Permission rwx -$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType group -Permission rw- -InputObject $acl -$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType other -Permission "rwt" -InputObject $acl -Get-AzDataLakeGen2ChildItem -FileSystem "filesystem1" -Recurse | Update-AzDataLakeGen2Item -ACL $acl - -FileSystem Name: filesystem1 - -Path IsDirectory Length LastModified Permissions Owner Group ----- ----------- ------ ------------ ----------- ----- ----- -dir1 True 2020-03-13 13:07:34Z rwxrw-rwt $superuser $superuser -dir1/file1 False 1024 2020-03-23 09:29:18Z rwxrw-rwt $superuser $superuser -dir2 True 2020-03-23 09:28:36Z rwxrw-rwt $superuser $superuser - - This command first creates an ACL object with 3 acl entry (use -InputObject parameter to add acl entry to existing acl object), then get all items in a filesystem and update acl on the items. - - - - - - -- Example 2: Update all properties on a file, and show them -- - $file = Update-AzDataLakeGen2Item -FileSystem "filesystem1" -Path "dir1/file1" ` - -Acl $acl ` - -Property @{"ContentType" = "image/jpeg"; "ContentMD5" = "i727sP7HigloQDsqadNLHw=="; "ContentEncoding" = "UDF8"; "CacheControl" = "READ"; "ContentDisposition" = "True"; "ContentLanguage" = "EN-US"} ` - -Metadata @{"tag1" = "value1"; "tag2" = "value2" } ` - -Permission rw-rw-rwx ` - -Owner '$superuser' ` - -Group '$superuser' - -$file - - FileSystem Name: filesystem1 - -Path IsDirectory Length LastModified Permissions Owner Group ----- ----------- ------ ------------ ----------- ----- ----- -dir1/file1 False 1024 2020-03-23 09:57:33Z rwxrw-rw- $superuser $superuser - -$file.ACL - -DefaultScope AccessControlType EntityId Permissions ------------- ----------------- -------- ----------- -False User rwx -False Group rw- -False Other rw- - -$file.Permissions - -Owner : Execute, Write, Read -Group : Write, Read -Other : Write, Read -StickyBit : False -ExtendedAcls : False - -$file.Properties.Metadata - -Key Value ---- ----- -tag2 value2 -tag1 value1 - -$file.Properties - - -LastModified : 3/23/2020 9:57:33 AM +00:00 -CreatedOn : 3/23/2020 9:29:18 AM +00:00 -Metadata : {[tag2, value2], [tag1, value1]} -CopyCompletedOn : 1/1/0001 12:00:00 AM +00:00 -CopyStatusDescription : -CopyId : -CopyProgress : -CopySource : -CopyStatus : Pending -IsIncrementalCopy : False -LeaseDuration : Infinite -LeaseState : Available -LeaseStatus : Unlocked -ContentLength : 1024 -ContentType : image/jpeg -ETag : "0x8D7CF109B9878CC" -ContentHash : {139, 189, 187, 176...} -ContentEncoding : UDF8 -ContentDisposition : True -ContentLanguage : EN-US -CacheControl : READ -AcceptRanges : bytes -IsServerEncrypted : True -EncryptionKeySha256 : -AccessTier : Cool -ArchiveStatus : -AccessTierChangedOn : 1/1/0001 12:00:00 AM +00:00 - - This command updates all properties on a file (ACL, permission,owner, group, metadata, property can be updated with any conbination), and show them in Powershell console. - - - - - - ---------- Example 3: Add an ACL entry to a directory ---------- - ## Get the origin ACL -$acl = (Get-AzDataLakeGen2Item -FileSystem "filesystem1" -Path 'dir1/dir3/').ACL - -# Update permission of a new ACL entry (if ACL entry with same AccessControlType/EntityId/DefaultScope not exist, will add a new ACL entry, else update permission of existing ACL entry) -$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -EntityId $id -Permission rw- -InputObject $acl - -# set the new acl to the directory -Update-AzDataLakeGen2Item -FileSystem "filesystem1" -Path 'dir1/dir3/' -ACL $acl - -FileSystem Name: filesystem1 - -Path IsDirectory Length LastModified Permissions Owner Group ----- ----------- ------ ------------ ----------- ----- ----- -dir1/dir3 True 2020-03-23 09:34:31Z rwxrw-rw-+ $superuser $superuser - - This command gets ACL from a directory, updates/adds an ACL entry, and sets back to the directory. If ACL entry with same AccessControlType/EntityId/DefaultScope not exist, will add a new ACL entry, else update permission of existing ACL entry. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/update-azdatalakegen2item - - - - - - Update-AzStorageServiceProperty - Update - AzStorageServiceProperty - - Modifies the properties for the Azure Storage service. - - - - The Update-AzStorageServiceProperty cmdlet modifies the properties for the Azure Storage service. - - - - Update-AzStorageServiceProperty - - ServiceType - - Specifies the storage service type. This cmdlet gets the logging properties for the service type that this parameter specifies. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - - - Blob - Table - Queue - File - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultServiceVersion - - DefaultServiceVersion indicates the default version to use for requests to the Blob service if an incoming request's version is not specified. Possible values include version 2008-10-27 and all more recent versions. See more details in https://learn.microsoft.com/rest/api/storageservices/versioning-for-the-azure-storage-services - - System.String - - System.String - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultServiceVersion - - DefaultServiceVersion indicates the default version to use for requests to the Blob service if an incoming request's version is not specified. Possible values include version 2008-10-27 and all more recent versions. See more details in https://learn.microsoft.com/rest/api/storageservices/versioning-for-the-azure-storage-services - - System.String - - System.String - - - None - - - PassThru - - Display ServiceProperties - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ServiceType - - Specifies the storage service type. This cmdlet gets the logging properties for the service type that this parameter specifies. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSSeriviceProperties - - - - - - - - - - - - - - Example 1: Set Blob Service DefaultServiceVersion to 2017-04-17 - Update-AzStorageServiceProperty -ServiceType Blob -DefaultServiceVersion 2017-04-17 - - This command Set the DefaultServiceVersion of Blob Service to 2017-04-17 - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/update-azstorageserviceproperty - - - - \ No newline at end of file diff --git a/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Storage.Common.dll b/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Storage.Common.dll deleted file mode 100644 index 0f91a78c21be..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Storage.Common.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Storage.Management.Sdk.dll b/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Storage.Management.Sdk.dll deleted file mode 100644 index 511e202fd091..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Storage.Management.Sdk.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Microsoft.Azure.Storage.Blob.dll b/Modules/Az.Storage/8.1.0/Microsoft.Azure.Storage.Blob.dll deleted file mode 100644 index 48df07335288..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Microsoft.Azure.Storage.Blob.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Microsoft.Azure.Storage.Common.dll b/Modules/Az.Storage/8.1.0/Microsoft.Azure.Storage.Common.dll deleted file mode 100644 index d1046d78ca84..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Microsoft.Azure.Storage.Common.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Microsoft.Azure.Storage.DataMovement.dll b/Modules/Az.Storage/8.1.0/Microsoft.Azure.Storage.DataMovement.dll deleted file mode 100644 index ba9fb651d90f..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Microsoft.Azure.Storage.DataMovement.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Microsoft.Azure.Storage.File.dll b/Modules/Az.Storage/8.1.0/Microsoft.Azure.Storage.File.dll deleted file mode 100644 index 7a25af32b593..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Microsoft.Azure.Storage.File.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Microsoft.Azure.Storage.Queue.dll b/Modules/Az.Storage/8.1.0/Microsoft.Azure.Storage.Queue.dll deleted file mode 100644 index b1d0270d1cad..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Microsoft.Azure.Storage.Queue.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Microsoft.OData.Core.dll b/Modules/Az.Storage/8.1.0/Microsoft.OData.Core.dll deleted file mode 100644 index caf31559cc7c..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Microsoft.OData.Core.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Microsoft.OData.Edm.dll b/Modules/Az.Storage/8.1.0/Microsoft.OData.Edm.dll deleted file mode 100644 index 24b70c0727d3..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Microsoft.OData.Edm.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Microsoft.Spatial.dll b/Modules/Az.Storage/8.1.0/Microsoft.Spatial.dll deleted file mode 100644 index e1382163d88a..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Microsoft.Spatial.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/PSGetModuleInfo.xml b/Modules/Az.Storage/8.1.0/PSGetModuleInfo.xml deleted file mode 100644 index 7153aee3fd54..000000000000 --- a/Modules/Az.Storage/8.1.0/PSGetModuleInfo.xml +++ /dev/null @@ -1,493 +0,0 @@ - - - - Microsoft.PowerShell.Commands.PSRepositoryItemInfo - System.Management.Automation.PSCustomObject - System.Object - - - Az.Storage - 8.1.0 - Module - Microsoft Azure PowerShell - Storage service data plane and management cmdlets for Azure Resource Manager in Windows PowerShell and PowerShell Core. Creates and manages storage accounts in Azure Resource Manager._x000D__x000A__x000D__x000A_For more information on Storage, please visit the following: https://learn.microsoft.com/azure/storage/ - Microsoft Corporation - azure-sdk - Microsoft Corporation. All rights reserved. -
2025-01-14T03:10:24-05:00
- - - https://aka.ms/azps-license - https://github.com/Azure/azure-powershell - - - - System.Object[] - System.Array - System.Object - - - Azure - ResourceManager - ARM - Storage - StorageAccount - PSModule - PSEdition_Core - PSEdition_Desktop - - - - - System.Collections.Hashtable - System.Object - - - - RoleCapability - - - - - - - Function - - - - Get-AzStorageAccountMigration - Start-AzStorageAccountMigration - - - - - Cmdlet - - - - Add-AzRmStorageContainerLegalHold - Add-AzStorageAccountManagementPolicyAction - Add-AzStorageAccountNetworkRule - Close-AzStorageFileHandle - Copy-AzStorageBlob - Disable-AzStorageBlobDeleteRetentionPolicy - Disable-AzStorageBlobLastAccessTimeTracking - Disable-AzStorageBlobRestorePolicy - Disable-AzStorageContainerDeleteRetentionPolicy - Disable-AzStorageDeleteRetentionPolicy - Disable-AzStorageStaticWebsite - Enable-AzStorageBlobDeleteRetentionPolicy - Enable-AzStorageBlobLastAccessTimeTracking - Enable-AzStorageBlobRestorePolicy - Enable-AzStorageContainerDeleteRetentionPolicy - Enable-AzStorageDeleteRetentionPolicy - Enable-AzStorageStaticWebsite - Get-AzDataLakeGen2ChildItem - Get-AzDataLakeGen2DeletedItem - Get-AzDataLakeGen2Item - Get-AzDataLakeGen2ItemContent - Get-AzRmStorageContainer - Get-AzRmStorageContainerImmutabilityPolicy - Get-AzRmStorageShare - Get-AzStorageAccount - Get-AzStorageAccountKey - Get-AzStorageAccountManagementPolicy - Get-AzStorageAccountNameAvailability - Get-AzStorageAccountNetworkRuleSet - Get-AzStorageBlob - Get-AzStorageBlobByTag - Get-AzStorageBlobContent - Get-AzStorageBlobCopyState - Get-AzStorageBlobInventoryPolicy - Get-AzStorageBlobQueryResult - Get-AzStorageBlobServiceProperty - Get-AzStorageBlobTag - Get-AzStorageContainer - Get-AzStorageContainerStoredAccessPolicy - Get-AzStorageCORSRule - Get-AzStorageEncryptionScope - Get-AzStorageFile - Get-AzStorageFileContent - Get-AzStorageFileCopyState - Get-AzStorageFileHandle - Get-AzStorageFileServiceProperty - Get-AzStorageLocalUser - Get-AzStorageLocalUserKey - Get-AzStorageObjectReplicationPolicy - Get-AzStorageQueue - Get-AzStorageQueueStoredAccessPolicy - Get-AzStorageServiceLoggingProperty - Get-AzStorageServiceMetricsProperty - Get-AzStorageServiceProperty - Get-AzStorageShare - Get-AzStorageShareStoredAccessPolicy - Get-AzStorageTable - Get-AzStorageTableStoredAccessPolicy - Get-AzStorageUsage - Invoke-AzRmStorageContainerImmutableStorageWithVersioningMigration - Invoke-AzStorageAccountFailover - Invoke-AzStorageAccountHierarchicalNamespaceUpgrade - Lock-AzRmStorageContainerImmutabilityPolicy - Move-AzDataLakeGen2Item - New-AzDataLakeGen2Item - New-AzDataLakeGen2SasToken - New-AzRmStorageContainer - New-AzRmStorageShare - New-AzStorageAccount - New-AzStorageAccountKey - New-AzStorageAccountManagementPolicyBlobIndexMatchObject - New-AzStorageAccountManagementPolicyFilter - New-AzStorageAccountManagementPolicyRule - New-AzStorageAccountSASToken - New-AzStorageBlobInventoryPolicyRule - New-AzStorageBlobQueryConfig - New-AzStorageBlobRangeToRestore - New-AzStorageBlobSASToken - New-AzStorageContainer - New-AzStorageContainerSASToken - New-AzStorageContainerStoredAccessPolicy - New-AzStorageContext - New-AzStorageDirectory - New-AzStorageEncryptionScope - New-AzStorageFileSASToken - New-AzStorageLocalUserPermissionScope - New-AzStorageLocalUserSshPassword - New-AzStorageLocalUserSshPublicKey - New-AzStorageObjectReplicationPolicyRule - New-AzStorageQueue - New-AzStorageQueueSASToken - New-AzStorageQueueStoredAccessPolicy - New-AzStorageShare - New-AzStorageShareSASToken - New-AzStorageShareStoredAccessPolicy - New-AzStorageTable - New-AzStorageTableSASToken - New-AzStorageTableStoredAccessPolicy - Remove-AzDataLakeGen2AclRecursive - Remove-AzDataLakeGen2Item - Remove-AzRmStorageContainer - Remove-AzRmStorageContainerImmutabilityPolicy - Remove-AzRmStorageContainerLegalHold - Remove-AzRmStorageShare - Remove-AzStorageAccount - Remove-AzStorageAccountManagementPolicy - Remove-AzStorageAccountNetworkRule - Remove-AzStorageBlob - Remove-AzStorageBlobImmutabilityPolicy - Remove-AzStorageBlobInventoryPolicy - Remove-AzStorageContainer - Remove-AzStorageContainerStoredAccessPolicy - Remove-AzStorageCORSRule - Remove-AzStorageDirectory - Remove-AzStorageFile - Remove-AzStorageLocalUser - Remove-AzStorageObjectReplicationPolicy - Remove-AzStorageQueue - Remove-AzStorageQueueStoredAccessPolicy - Remove-AzStorageShare - Remove-AzStorageShareStoredAccessPolicy - Remove-AzStorageTable - Remove-AzStorageTableStoredAccessPolicy - Rename-AzStorageDirectory - Rename-AzStorageFile - Restore-AzDataLakeGen2DeletedItem - Restore-AzRmStorageShare - Restore-AzStorageBlobRange - Restore-AzStorageContainer - Revoke-AzStorageAccountUserDelegationKeys - Set-AzCurrentStorageAccount - Set-AzDataLakeGen2AclRecursive - Set-AzDataLakeGen2ItemAclObject - Set-AzRmStorageContainerImmutabilityPolicy - Set-AzStorageAccount - Set-AzStorageAccountManagementPolicy - Set-AzStorageBlobContent - Set-AzStorageBlobImmutabilityPolicy - Set-AzStorageBlobInventoryPolicy - Set-AzStorageBlobLegalHold - Set-AzStorageBlobTag - Set-AzStorageContainerAcl - Set-AzStorageContainerStoredAccessPolicy - Set-AzStorageCORSRule - Set-AzStorageFileContent - Set-AzStorageLocalUser - Set-AzStorageObjectReplicationPolicy - Set-AzStorageQueueStoredAccessPolicy - Set-AzStorageServiceLoggingProperty - Set-AzStorageServiceMetricsProperty - Set-AzStorageShareQuota - Set-AzStorageShareStoredAccessPolicy - Set-AzStorageTableStoredAccessPolicy - Start-AzStorageBlobCopy - Start-AzStorageBlobIncrementalCopy - Start-AzStorageFileCopy - Stop-AzStorageAccountHierarchicalNamespaceUpgrade - Stop-AzStorageBlobCopy - Stop-AzStorageFileCopy - Update-AzDataLakeGen2AclRecursive - Update-AzDataLakeGen2Item - Update-AzRmStorageContainer - Update-AzRmStorageShare - Update-AzStorageAccountNetworkRuleSet - Update-AzStorageBlobServiceProperty - Update-AzStorageEncryptionScope - Update-AzStorageFileServiceProperty - Update-AzStorageServiceProperty - - - - - DscResource - - - - Workflow - - - - Command - - - - Add-AzRmStorageContainerLegalHold - Add-AzStorageAccountManagementPolicyAction - Add-AzStorageAccountNetworkRule - Close-AzStorageFileHandle - Copy-AzStorageBlob - Disable-AzStorageBlobDeleteRetentionPolicy - Disable-AzStorageBlobLastAccessTimeTracking - Disable-AzStorageBlobRestorePolicy - Disable-AzStorageContainerDeleteRetentionPolicy - Disable-AzStorageDeleteRetentionPolicy - Disable-AzStorageStaticWebsite - Enable-AzStorageBlobDeleteRetentionPolicy - Enable-AzStorageBlobLastAccessTimeTracking - Enable-AzStorageBlobRestorePolicy - Enable-AzStorageContainerDeleteRetentionPolicy - Enable-AzStorageDeleteRetentionPolicy - Enable-AzStorageStaticWebsite - Get-AzDataLakeGen2ChildItem - Get-AzDataLakeGen2DeletedItem - Get-AzDataLakeGen2Item - Get-AzDataLakeGen2ItemContent - Get-AzRmStorageContainer - Get-AzRmStorageContainerImmutabilityPolicy - Get-AzRmStorageShare - Get-AzStorageAccount - Get-AzStorageAccountKey - Get-AzStorageAccountManagementPolicy - Get-AzStorageAccountNameAvailability - Get-AzStorageAccountNetworkRuleSet - Get-AzStorageBlob - Get-AzStorageBlobByTag - Get-AzStorageBlobContent - Get-AzStorageBlobCopyState - Get-AzStorageBlobInventoryPolicy - Get-AzStorageBlobQueryResult - Get-AzStorageBlobServiceProperty - Get-AzStorageBlobTag - Get-AzStorageContainer - Get-AzStorageContainerStoredAccessPolicy - Get-AzStorageCORSRule - Get-AzStorageEncryptionScope - Get-AzStorageFile - Get-AzStorageFileContent - Get-AzStorageFileCopyState - Get-AzStorageFileHandle - Get-AzStorageFileServiceProperty - Get-AzStorageLocalUser - Get-AzStorageLocalUserKey - Get-AzStorageObjectReplicationPolicy - Get-AzStorageQueue - Get-AzStorageQueueStoredAccessPolicy - Get-AzStorageServiceLoggingProperty - Get-AzStorageServiceMetricsProperty - Get-AzStorageServiceProperty - Get-AzStorageShare - Get-AzStorageShareStoredAccessPolicy - Get-AzStorageTable - Get-AzStorageTableStoredAccessPolicy - Get-AzStorageUsage - Invoke-AzRmStorageContainerImmutableStorageWithVersioningMigration - Invoke-AzStorageAccountFailover - Invoke-AzStorageAccountHierarchicalNamespaceUpgrade - Lock-AzRmStorageContainerImmutabilityPolicy - Move-AzDataLakeGen2Item - New-AzDataLakeGen2Item - New-AzDataLakeGen2SasToken - New-AzRmStorageContainer - New-AzRmStorageShare - New-AzStorageAccount - New-AzStorageAccountKey - New-AzStorageAccountManagementPolicyBlobIndexMatchObject - New-AzStorageAccountManagementPolicyFilter - New-AzStorageAccountManagementPolicyRule - New-AzStorageAccountSASToken - New-AzStorageBlobInventoryPolicyRule - New-AzStorageBlobQueryConfig - New-AzStorageBlobRangeToRestore - New-AzStorageBlobSASToken - New-AzStorageContainer - New-AzStorageContainerSASToken - New-AzStorageContainerStoredAccessPolicy - New-AzStorageContext - New-AzStorageDirectory - New-AzStorageEncryptionScope - New-AzStorageFileSASToken - New-AzStorageLocalUserPermissionScope - New-AzStorageLocalUserSshPassword - New-AzStorageLocalUserSshPublicKey - New-AzStorageObjectReplicationPolicyRule - New-AzStorageQueue - New-AzStorageQueueSASToken - New-AzStorageQueueStoredAccessPolicy - New-AzStorageShare - New-AzStorageShareSASToken - New-AzStorageShareStoredAccessPolicy - New-AzStorageTable - New-AzStorageTableSASToken - New-AzStorageTableStoredAccessPolicy - Remove-AzDataLakeGen2AclRecursive - Remove-AzDataLakeGen2Item - Remove-AzRmStorageContainer - Remove-AzRmStorageContainerImmutabilityPolicy - Remove-AzRmStorageContainerLegalHold - Remove-AzRmStorageShare - Remove-AzStorageAccount - Remove-AzStorageAccountManagementPolicy - Remove-AzStorageAccountNetworkRule - Remove-AzStorageBlob - Remove-AzStorageBlobImmutabilityPolicy - Remove-AzStorageBlobInventoryPolicy - Remove-AzStorageContainer - Remove-AzStorageContainerStoredAccessPolicy - Remove-AzStorageCORSRule - Remove-AzStorageDirectory - Remove-AzStorageFile - Remove-AzStorageLocalUser - Remove-AzStorageObjectReplicationPolicy - Remove-AzStorageQueue - Remove-AzStorageQueueStoredAccessPolicy - Remove-AzStorageShare - Remove-AzStorageShareStoredAccessPolicy - Remove-AzStorageTable - Remove-AzStorageTableStoredAccessPolicy - Rename-AzStorageDirectory - Rename-AzStorageFile - Restore-AzDataLakeGen2DeletedItem - Restore-AzRmStorageShare - Restore-AzStorageBlobRange - Restore-AzStorageContainer - Revoke-AzStorageAccountUserDelegationKeys - Set-AzCurrentStorageAccount - Set-AzDataLakeGen2AclRecursive - Set-AzDataLakeGen2ItemAclObject - Set-AzRmStorageContainerImmutabilityPolicy - Set-AzStorageAccount - Set-AzStorageAccountManagementPolicy - Set-AzStorageBlobContent - Set-AzStorageBlobImmutabilityPolicy - Set-AzStorageBlobInventoryPolicy - Set-AzStorageBlobLegalHold - Set-AzStorageBlobTag - Set-AzStorageContainerAcl - Set-AzStorageContainerStoredAccessPolicy - Set-AzStorageCORSRule - Set-AzStorageFileContent - Set-AzStorageLocalUser - Set-AzStorageObjectReplicationPolicy - Set-AzStorageQueueStoredAccessPolicy - Set-AzStorageServiceLoggingProperty - Set-AzStorageServiceMetricsProperty - Set-AzStorageShareQuota - Set-AzStorageShareStoredAccessPolicy - Set-AzStorageTableStoredAccessPolicy - Start-AzStorageBlobCopy - Start-AzStorageBlobIncrementalCopy - Start-AzStorageFileCopy - Stop-AzStorageAccountHierarchicalNamespaceUpgrade - Stop-AzStorageBlobCopy - Stop-AzStorageFileCopy - Update-AzDataLakeGen2AclRecursive - Update-AzDataLakeGen2Item - Update-AzRmStorageContainer - Update-AzRmStorageShare - Update-AzStorageAccountNetworkRuleSet - Update-AzStorageBlobServiceProperty - Update-AzStorageEncryptionScope - Update-AzStorageFileServiceProperty - Update-AzStorageServiceProperty - Get-AzStorageAccountMigration - Start-AzStorageAccountMigration - - - - - - - * Upgraded nuget package to signed package._x000D__x000A_* Added warning message for account migration cmdlet._x000D__x000A_ - 'Start-AzStorageAccountMigration'_x000D__x000A_* Fixed error message when creating OAuth based Storage context without first login with Connect-AzAccount._x000D__x000A_ - 'New-AzStorageContext'_x000D__x000A_* Upgraded Azure.Storage.Blobs to 12.23.0_x000D__x000A_* Upgraded Azure.Storage.Files.Shares to 12.21.0_x000D__x000A_* Upgraded Azure.Storage.Files.DataLake to 12.21.0_x000D__x000A_* Upgraded Azure.Storage.Queues to 12.21.0_x000D__x000A_* Supported ClientName property when listing file handles _x000D__x000A_ - 'Get-AzStorageFileHandle'_x000D__x000A_* Upgraded Azure.Core to 1.44.1. - - - - - - System.Collections.Specialized.OrderedDictionary - System.Object - - - - Name - Az.Accounts - - - MinimumVersion - 4.0.1 - - - CanonicalId - nuget:Az.Accounts/4.0.1 - - - - - - https://www.powershellgallery.com/api/v2 - PSGallery - NuGet - - - System.Management.Automation.PSCustomObject - System.Object - - - Microsoft Corporation. All rights reserved. - Microsoft Azure PowerShell - Storage service data plane and management cmdlets for Azure Resource Manager in Windows PowerShell and PowerShell Core. Creates and manages storage accounts in Azure Resource Manager._x000D__x000A__x000D__x000A_For more information on Storage, please visit the following: https://learn.microsoft.com/azure/storage/ - True - * Upgraded nuget package to signed package._x000D__x000A_* Added warning message for account migration cmdlet._x000D__x000A_ - 'Start-AzStorageAccountMigration'_x000D__x000A_* Fixed error message when creating OAuth based Storage context without first login with Connect-AzAccount._x000D__x000A_ - 'New-AzStorageContext'_x000D__x000A_* Upgraded Azure.Storage.Blobs to 12.23.0_x000D__x000A_* Upgraded Azure.Storage.Files.Shares to 12.21.0_x000D__x000A_* Upgraded Azure.Storage.Files.DataLake to 12.21.0_x000D__x000A_* Upgraded Azure.Storage.Queues to 12.21.0_x000D__x000A_* Supported ClientName property when listing file handles _x000D__x000A_ - 'Get-AzStorageFileHandle'_x000D__x000A_* Upgraded Azure.Core to 1.44.1. - True - True - 6713475 - 219543588 - 5381932 - 1/14/2025 3:10:24 AM -05:00 - 1/14/2025 3:10:24 AM -05:00 - 1/30/2025 5:40:00 PM -05:00 - Azure ResourceManager ARM Storage StorageAccount PSModule PSEdition_Core PSEdition_Desktop - False - 2025-01-30T17:40:00Z - 8.1.0 - Microsoft Corporation - false - Module - Az.Storage.nuspec|Azure.Storage.Files.DataLake.dll|Microsoft.Azure.Cosmos.Table.dll|Microsoft.Azure.PowerShell.Cmdlets.Storage.dll|Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll-Help.xml|Microsoft.Azure.Storage.Blob.dll|Microsoft.Azure.Storage.File.dll|Microsoft.OData.Edm.dll|Storage.format.ps1xml|Storage.Management.format.ps1xml|Storage.Autorest\Az.Storage.format.ps1xml|Storage.Autorest\bin\Az.Storage.private.dll|Storage.Autorest\custom\Start-AzStorageAccountMigration.ps1|Storage.Autorest\internal\Az.Storage.internal.psm1|Storage.Autorest\utils\Get-SubscriptionIdTestSafe.ps1|Azure.Data.Tables.dll|Azure.Storage.Files.Shares.dll|Microsoft.Azure.DocumentDB.Core.dll|Microsoft.Azure.PowerShell.Cmdlets.Storage.dll-Help.xml|Microsoft.Azure.PowerShell.Storage.Common.dll|Microsoft.Azure.Storage.Common.dll|Microsoft.Azure.Storage.Queue.dll|Microsoft.Spatial.dll|Storage.generated.format.ps1xml|System.IO.Hashing.dll|Storage.Autorest\Az.Storage.psm1|Storage.Autorest\custom\Az.Storage.custom.psm1|Storage.Autorest\exports\ProxyCmdletDefinitions.ps1|Storage.Autorest\internal\ProxyCmdletDefinitions.ps1|Storage.Autorest\utils\Unprotect-SecureString.ps1|Az.Storage.psd1|Azure.Storage.Blobs.dll|Azure.Storage.Queues.dll|Microsoft.Azure.KeyVault.Core.dll|Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll|Microsoft.Azure.PowerShell.Storage.Management.Sdk.dll|Microsoft.Azure.Storage.DataMovement.dll|Microsoft.OData.Core.dll|Az.Storage.psm1|Azure.Storage.Common.dll|.signature.p7s - Add-AzRmStorageContainerLegalHold Add-AzStorageAccountManagementPolicyAction Add-AzStorageAccountNetworkRule Close-AzStorageFileHandle Copy-AzStorageBlob Disable-AzStorageBlobDeleteRetentionPolicy Disable-AzStorageBlobLastAccessTimeTracking Disable-AzStorageBlobRestorePolicy Disable-AzStorageContainerDeleteRetentionPolicy Disable-AzStorageDeleteRetentionPolicy Disable-AzStorageStaticWebsite Enable-AzStorageBlobDeleteRetentionPolicy Enable-AzStorageBlobLastAccessTimeTracking Enable-AzStorageBlobRestorePolicy Enable-AzStorageContainerDeleteRetentionPolicy Enable-AzStorageDeleteRetentionPolicy Enable-AzStorageStaticWebsite Get-AzDataLakeGen2ChildItem Get-AzDataLakeGen2DeletedItem Get-AzDataLakeGen2Item Get-AzDataLakeGen2ItemContent Get-AzRmStorageContainer Get-AzRmStorageContainerImmutabilityPolicy Get-AzRmStorageShare Get-AzStorageAccount Get-AzStorageAccountKey Get-AzStorageAccountManagementPolicy Get-AzStorageAccountNameAvailability Get-AzStorageAccountNetworkRuleSet Get-AzStorageBlob Get-AzStorageBlobByTag Get-AzStorageBlobContent Get-AzStorageBlobCopyState Get-AzStorageBlobInventoryPolicy Get-AzStorageBlobQueryResult Get-AzStorageBlobServiceProperty Get-AzStorageBlobTag Get-AzStorageContainer Get-AzStorageContainerStoredAccessPolicy Get-AzStorageCORSRule Get-AzStorageEncryptionScope Get-AzStorageFile Get-AzStorageFileContent Get-AzStorageFileCopyState Get-AzStorageFileHandle Get-AzStorageFileServiceProperty Get-AzStorageLocalUser Get-AzStorageLocalUserKey Get-AzStorageObjectReplicationPolicy Get-AzStorageQueue Get-AzStorageQueueStoredAccessPolicy Get-AzStorageServiceLoggingProperty Get-AzStorageServiceMetricsProperty Get-AzStorageServiceProperty Get-AzStorageShare Get-AzStorageShareStoredAccessPolicy Get-AzStorageTable Get-AzStorageTableStoredAccessPolicy Get-AzStorageUsage Invoke-AzRmStorageContainerImmutableStorageWithVersioningMigration Invoke-AzStorageAccountFailover Invoke-AzStorageAccountHierarchicalNamespaceUpgrade Lock-AzRmStorageContainerImmutabilityPolicy Move-AzDataLakeGen2Item New-AzDataLakeGen2Item New-AzDataLakeGen2SasToken New-AzRmStorageContainer New-AzRmStorageShare New-AzStorageAccount New-AzStorageAccountKey New-AzStorageAccountManagementPolicyBlobIndexMatchObject New-AzStorageAccountManagementPolicyFilter New-AzStorageAccountManagementPolicyRule New-AzStorageAccountSASToken New-AzStorageBlobInventoryPolicyRule New-AzStorageBlobQueryConfig New-AzStorageBlobRangeToRestore New-AzStorageBlobSASToken New-AzStorageContainer New-AzStorageContainerSASToken New-AzStorageContainerStoredAccessPolicy New-AzStorageContext New-AzStorageDirectory New-AzStorageEncryptionScope New-AzStorageFileSASToken New-AzStorageLocalUserPermissionScope New-AzStorageLocalUserSshPassword New-AzStorageLocalUserSshPublicKey New-AzStorageObjectReplicationPolicyRule New-AzStorageQueue New-AzStorageQueueSASToken New-AzStorageQueueStoredAccessPolicy New-AzStorageShare New-AzStorageShareSASToken New-AzStorageShareStoredAccessPolicy New-AzStorageTable New-AzStorageTableSASToken New-AzStorageTableStoredAccessPolicy Remove-AzDataLakeGen2AclRecursive Remove-AzDataLakeGen2Item Remove-AzRmStorageContainer Remove-AzRmStorageContainerImmutabilityPolicy Remove-AzRmStorageContainerLegalHold Remove-AzRmStorageShare Remove-AzStorageAccount Remove-AzStorageAccountManagementPolicy Remove-AzStorageAccountNetworkRule Remove-AzStorageBlob Remove-AzStorageBlobImmutabilityPolicy Remove-AzStorageBlobInventoryPolicy Remove-AzStorageContainer Remove-AzStorageContainerStoredAccessPolicy Remove-AzStorageCORSRule Remove-AzStorageDirectory Remove-AzStorageFile Remove-AzStorageLocalUser Remove-AzStorageObjectReplicationPolicy Remove-AzStorageQueue Remove-AzStorageQueueStoredAccessPolicy Remove-AzStorageShare Remove-AzStorageShareStoredAccessPolicy Remove-AzStorageTable Remove-AzStorageTableStoredAccessPolicy Rename-AzStorageDirectory Rename-AzStorageFile Restore-AzDataLakeGen2DeletedItem Restore-AzRmStorageShare Restore-AzStorageBlobRange Restore-AzStorageContainer Revoke-AzStorageAccountUserDelegationKeys Set-AzCurrentStorageAccount Set-AzDataLakeGen2AclRecursive Set-AzDataLakeGen2ItemAclObject Set-AzRmStorageContainerImmutabilityPolicy Set-AzStorageAccount Set-AzStorageAccountManagementPolicy Set-AzStorageBlobContent Set-AzStorageBlobImmutabilityPolicy Set-AzStorageBlobInventoryPolicy Set-AzStorageBlobLegalHold Set-AzStorageBlobTag Set-AzStorageContainerAcl Set-AzStorageContainerStoredAccessPolicy Set-AzStorageCORSRule Set-AzStorageFileContent Set-AzStorageLocalUser Set-AzStorageObjectReplicationPolicy Set-AzStorageQueueStoredAccessPolicy Set-AzStorageServiceLoggingProperty Set-AzStorageServiceMetricsProperty Set-AzStorageShareQuota Set-AzStorageShareStoredAccessPolicy Set-AzStorageTableStoredAccessPolicy Start-AzStorageBlobCopy Start-AzStorageBlobIncrementalCopy Start-AzStorageFileCopy Stop-AzStorageAccountHierarchicalNamespaceUpgrade Stop-AzStorageBlobCopy Stop-AzStorageFileCopy Update-AzDataLakeGen2AclRecursive Update-AzDataLakeGen2Item Update-AzRmStorageContainer Update-AzRmStorageShare Update-AzStorageAccountNetworkRuleSet Update-AzStorageBlobServiceProperty Update-AzStorageEncryptionScope Update-AzStorageFileServiceProperty Update-AzStorageServiceProperty - Get-AzStorageAccountMigration Start-AzStorageAccountMigration - dfa9e4ea-1407-446d-9111-79122977ab20 - 5.1 - 4.7.2 - Microsoft Corporation - - - C:\GitHub\CIPP Workspace\CIPP-API\Modules\Az.Storage\8.1.0 -
-
-
diff --git a/Modules/Az.Storage/8.1.0/Storage.Autorest/Az.Storage.format.ps1xml b/Modules/Az.Storage/8.1.0/Storage.Autorest/Az.Storage.format.ps1xml deleted file mode 100644 index bffffc49f2fa..000000000000 --- a/Modules/Az.Storage/8.1.0/Storage.Autorest/Az.Storage.format.ps1xml +++ /dev/null @@ -1,3841 +0,0 @@ - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.AccountImmutabilityPolicyProperties - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.AccountImmutabilityPolicyProperties#Multiple - - - - - - - - - - - - - - - - - - AllowProtectedAppendWrite - - - ImmutabilityPeriodSinceCreationInDay - - - State - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.AccountSasParameters - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.AccountSasParameters#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IPAddressOrRange - - - KeyToSign - - - Permission - - - Protocol - - - ResourceType - - - Service - - - SharedAccessExpiryTime - - - SharedAccessStartTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ActiveDirectoryProperties - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ActiveDirectoryProperties#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AccountType - - - AzureStorageSid - - - DomainGuid - - - DomainName - - - DomainSid - - - ForestName - - - NetBiosDomainName - - - SamAccountName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.AzureFilesIdentityBasedAuthentication - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.AzureFilesIdentityBasedAuthentication#Multiple - - - - - - - - - - - - - - - DefaultSharePermission - - - DirectoryServiceOption - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobInventoryCreationTime - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobInventoryCreationTime#Multiple - - - - - - - - - - - - LastNDay - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobInventoryPolicy - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobInventoryPolicy#Multiple - - - - - - - - - - - - - - - Name - - - ResourceGroupName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobInventoryPolicyDefinition - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobInventoryPolicyDefinition#Multiple - - - - - - - - - - - - - - - - - - Format - - - ObjectType - - - Schedule - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobInventoryPolicyFilter - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobInventoryPolicyFilter#Multiple - - - - - - - - - - - - - - - - - - IncludeBlobVersion - - - IncludeDeleted - - - IncludeSnapshot - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobInventoryPolicyProperties - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobInventoryPolicyProperties#Multiple - - - - - - - - - - - - LastModifiedTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobInventoryPolicyRule - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobInventoryPolicyRule#Multiple - - - - - - - - - - - - - - - - - - Destination - - - Enabled - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobInventoryPolicySchema - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobInventoryPolicySchema#Multiple - - - - - - - - - - - - - - - Destination - - - Enabled - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobRestoreParameters - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobRestoreParameters#Multiple - - - - - - - - - - - - TimeToRestore - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobRestoreRange - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobRestoreRange#Multiple - - - - - - - - - - - - - - - EndRange - - - StartRange - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobRestoreStatus - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobRestoreStatus#Multiple - - - - - - - - - - - - - - - - - - FailureReason - - - RestoreId - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.CheckNameAvailabilityResult - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.CheckNameAvailabilityResult#Multiple - - - - - - - - - - - - - - - - - - Message - - - NameAvailable - - - Reason - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.CloudErrorBody - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.CloudErrorBody#Multiple - - - - - - - - - - - - - - - - - - Code - - - Message - - - Target - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.CustomDomain - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.CustomDomain#Multiple - - - - - - - - - - - - - - - Name - - - UseSubDomainName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.DateAfterCreation - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.DateAfterCreation#Multiple - - - - - - - - - - - - - - - DaysAfterCreationGreaterThan - - - DaysAfterLastTierChangeGreaterThan - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.DateAfterModification - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.DateAfterModification#Multiple - - - - - - - - - - - - - - - - - - - - - DaysAfterCreationGreaterThan - - - DaysAfterLastAccessTimeGreaterThan - - - DaysAfterLastTierChangeGreaterThan - - - DaysAfterModificationGreaterThan - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.DeletedAccount - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.DeletedAccount#Multiple - - - - - - - - - - - - - - - Name - - - ResourceGroupName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.DeletedAccountListResult - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.DeletedAccountListResult#Multiple - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.DeletedAccountProperties - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.DeletedAccountProperties#Multiple - - - - - - - - - - - - - - - - - - - - - - - - CreationTime - - - DeletionTime - - - Location - - - RestoreReference - - - StorageAccountResourceId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Dimension - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Dimension#Multiple - - - - - - - - - - - - - - - DisplayName - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Encryption - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Encryption#Multiple - - - - - - - - - - - - - - - KeySource - - - RequireInfrastructureEncryption - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.EncryptionIdentity - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.EncryptionIdentity#Multiple - - - - - - - - - - - - - - - EncryptionFederatedIdentityClientId - - - EncryptionUserAssignedIdentity - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.EncryptionScope - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.EncryptionScope#Multiple - - - - - - - - - - - - - - - Name - - - ResourceGroupName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.EncryptionScopeKeyVaultProperties - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.EncryptionScopeKeyVaultProperties#Multiple - - - - - - - - - - - - - - - - - - CurrentVersionedKeyIdentifier - - - KeyUri - - - LastKeyRotationTimestamp - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.EncryptionScopeListResult - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.EncryptionScopeListResult#Multiple - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.EncryptionScopeProperties - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.EncryptionScopeProperties#Multiple - - - - - - - - - - - - - - - - - - - - - - - - CreationTime - - - LastModifiedTime - - - RequireInfrastructureEncryption - - - Source - - - State - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.EncryptionService - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.EncryptionService#Multiple - - - - - - - - - - - - - - - - - - Enabled - - - KeyType - - - LastEnabledTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Endpoints - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Endpoints#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - Blob - - - Df - - - File - - - Queue - - - Table - - - Web - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ErrorDetail - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ErrorDetail#Multiple - - - - - - - - - - - - - - - - - - Code - - - Message - - - Target - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ErrorResponseBody - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ErrorResponseBody#Multiple - - - - - - - - - - - - - - - Code - - - Message - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ExtendedLocation - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ExtendedLocation#Multiple - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.GeoReplicationStats - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.GeoReplicationStats#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - CanFailover - - - CanPlannedFailover - - - LastSyncTime - - - PostFailoverRedundancy - - - PostPlannedFailoverRedundancy - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Identity - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Identity#Multiple - - - - - - - - - - - - - - - PrincipalId - - - TenantId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ImmutableStorageAccount - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ImmutableStorageAccount#Multiple - - - - - - - - - - - - Enabled - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IPRule - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IPRule#Multiple - - - - - - - - - - - - - - - Action - - - IPAddressOrRange - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.KeyCreationTime - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.KeyCreationTime#Multiple - - - - - - - - - - - - - - - Key1 - - - Key2 - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.KeyPolicy - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.KeyPolicy#Multiple - - - - - - - - - - - - KeyExpirationPeriodInDay - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.KeyVaultProperties - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.KeyVaultProperties#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - CurrentVersionedKeyExpirationTimestamp - - - CurrentVersionedKeyIdentifier - - - KeyName - - - KeyVaultUri - - - KeyVersion - - - LastKeyRotationTimestamp - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ListAccountSasResponse - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ListAccountSasResponse#Multiple - - - - - - - - - - - - AccountSasToken - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ListServiceSasResponse - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ListServiceSasResponse#Multiple - - - - - - - - - - - - ServiceSasToken - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.LocalUser - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.LocalUser#Multiple - - - - - - - - - - - - - - - Name - - - ResourceGroupName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.LocalUserKeys - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.LocalUserKeys#Multiple - - - - - - - - - - - - SharedKey - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.LocalUserProperties - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.LocalUserProperties#Multiple - - - - - - - - - - - - - - - - - - - - - - - - HasSharedKey - - - HasSshKey - - - HasSshPassword - - - HomeDirectory - - - Sid - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.LocalUserRegeneratePasswordResult - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.LocalUserRegeneratePasswordResult#Multiple - - - - - - - - - - - - SshPassword - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ManagementPolicy - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ManagementPolicy#Multiple - - - - - - - - - - - - - - - Name - - - ResourceGroupName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ManagementPolicyBaseBlob - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ManagementPolicyBaseBlob#Multiple - - - - - - - - - - - - EnableAutoTierToHotFromCool - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ManagementPolicyProperties - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ManagementPolicyProperties#Multiple - - - - - - - - - - - - LastModifiedTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ManagementPolicyRule - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ManagementPolicyRule#Multiple - - - - - - - - - - - - - - - Enabled - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.MetricSpecification - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.MetricSpecification#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AggregationType - - - Category - - - DisplayDescription - - - DisplayName - - - FillGapWithZero - - - Name - - - ResourceIdDimensionNameOverride - - - Unit - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.NetworkRuleSet - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.NetworkRuleSet#Multiple - - - - - - - - - - - - - - - Bypass - - - DefaultAction - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ObjectReplicationPolicy - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ObjectReplicationPolicy#Multiple - - - - - - - - - - - - - - - Name - - - ResourceGroupName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ObjectReplicationPolicyFilter - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ObjectReplicationPolicyFilter#Multiple - - - - - - - - - - - - MinCreationTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ObjectReplicationPolicyProperties - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ObjectReplicationPolicyProperties#Multiple - - - - - - - - - - - - - - - - - - - - - DestinationAccount - - - EnabledTime - - - PolicyId - - - SourceAccount - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ObjectReplicationPolicyRule - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ObjectReplicationPolicyRule#Multiple - - - - - - - - - - - - - - - - - - DestinationContainer - - - RuleId - - - SourceContainer - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Operation - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Operation#Multiple - - - - - - - - - - - - - - - Name - - - Origin - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.OperationDisplay - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.OperationDisplay#Multiple - - - - - - - - - - - - - - - - - - - - - Description - - - Operation - - - Provider - - - Resource - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.PermissionScope - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.PermissionScope#Multiple - - - - - - - - - - - - - - - - - - Permission - - - ResourceName - - - Service - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.PrivateEndpointConnection - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.PrivateEndpointConnection#Multiple - - - - - - - - - - - - - - - Name - - - ResourceGroupName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.PrivateEndpointConnectionProperties - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.PrivateEndpointConnectionProperties#Multiple - - - - - - - - - - - - ProvisioningState - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.PrivateLinkResource - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.PrivateLinkResource#Multiple - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.PrivateLinkResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.PrivateLinkResourceProperties#Multiple - - - - - - - - - - - - GroupId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.PrivateLinkServiceConnectionState - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.PrivateLinkServiceConnectionState#Multiple - - - - - - - - - - - - - - - - - - ActionRequired - - - Description - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ProxyResource - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ProxyResource#Multiple - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Resource - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Resource#Multiple - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ResourceAccessRule - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ResourceAccessRule#Multiple - - - - - - - - - - - - - - - ResourceId - - - TenantId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Restriction - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Restriction#Multiple - - - - - - - - - - - - ReasonCode - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.RoutingPreference - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.RoutingPreference#Multiple - - - - - - - - - - - - - - - - - - PublishInternetEndpoint - - - PublishMicrosoftEndpoint - - - RoutingChoice - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.SasPolicy - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.SasPolicy#Multiple - - - - - - - - - - - - - - - ExpirationAction - - - SasExpirationPeriod - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ServiceSasParameters - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ServiceSasParameters#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CacheControl - - - CanonicalizedResource - - - ContentDisposition - - - ContentEncoding - - - ContentLanguage - - - ContentType - - - IPAddressOrRange - - - Identifier - - - KeyToSign - - - PartitionKeyEnd - - - PartitionKeyStart - - - Permission - - - Protocol - - - Resource - - - RowKeyEnd - - - RowKeyStart - - - SharedAccessExpiryTime - - - SharedAccessStartTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Sku - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Sku#Multiple - - - - - - - - - - - - - - - Name - - - Tier - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.SkuCapability - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.SkuCapability#Multiple - - - - - - - - - - - - - - - Name - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.SkuInformation - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.SkuInformation#Multiple - - - - - - - - - - - - - - - - - - - - - Kind - - - Name - - - ResourceType - - - Tier - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.SshPublicKey - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.SshPublicKey#Multiple - - - - - - - - - - - - - - - Description - - - Key - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccount - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccount#Multiple - - - - - - - - - - - - - - - - - - - - - Location - - - Name - - - Kind - - - ResourceGroupName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountCheckNameAvailabilityParameters - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountCheckNameAvailabilityParameters#Multiple - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountCreateParameters - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountCreateParameters#Multiple - - - - - - - - - - - - - - - Kind - - - Location - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountCreateParametersTags - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountCreateParametersTags#Multiple - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountInternetEndpoints - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountInternetEndpoints#Multiple - - - - - - - - - - - - - - - - - - - - - Blob - - - Df - - - File - - - Web - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountKey - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountKey#Multiple - - - - - - - - - - - - - - - - - - - - - CreationTime - - - KeyName - - - Permission - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountListResult - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountListResult#Multiple - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountMicrosoftEndpoints - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountMicrosoftEndpoints#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - Blob - - - Df - - - File - - - Queue - - - Table - - - Web - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountMigration - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountMigration#Multiple - - - - - - - - - - - - - - - Name - - - ResourceGroupName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountMigrationProperties - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountMigrationProperties#Multiple - - - - - - - - - - - - - - - - - - - - - MigrationFailedDetailedReason - - - MigrationFailedReason - - - MigrationStatus - - - TargetSkuName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountProperties - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountProperties#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AccessTier - - - AccountMigrationInProgress - - - AllowBlobPublicAccess - - - AllowCrossTenantReplication - - - AllowSharedKeyAccess - - - AllowedCopyScope - - - CreationTime - - - DefaultToOAuthAuthentication - - - DnsEndpointType - - - EnableHttpsTrafficOnly - - - EnableNfsV3 - - - FailoverInProgress - - - IsHnsEnabled - - - IsLocalUserEnabled - - - IsSftpEnabled - - - IsSkuConversionBlocked - - - LargeFileSharesState - - - LastGeoFailoverTime - - - MinimumTlsVersion - - - PrimaryLocation - - - ProvisioningState - - - PublicNetworkAccess - - - SecondaryLocation - - - StatusOfPrimary - - - StatusOfSecondary - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountPropertiesCreateParameters - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountPropertiesCreateParameters#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AccessTier - - - AllowBlobPublicAccess - - - AllowCrossTenantReplication - - - AllowSharedKeyAccess - - - AllowedCopyScope - - - DefaultToOAuthAuthentication - - - DnsEndpointType - - - EnableHttpsTrafficOnly - - - EnableNfsV3 - - - IsHnsEnabled - - - IsLocalUserEnabled - - - IsSftpEnabled - - - LargeFileSharesState - - - MinimumTlsVersion - - - PublicNetworkAccess - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountPropertiesUpdateParameters - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountPropertiesUpdateParameters#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AccessTier - - - AllowBlobPublicAccess - - - AllowCrossTenantReplication - - - AllowSharedKeyAccess - - - AllowedCopyScope - - - DefaultToOAuthAuthentication - - - DnsEndpointType - - - EnableHttpsTrafficOnly - - - IsLocalUserEnabled - - - IsSftpEnabled - - - LargeFileSharesState - - - MinimumTlsVersion - - - PublicNetworkAccess - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountRegenerateKeyParameters - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountRegenerateKeyParameters#Multiple - - - - - - - - - - - - KeyName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountSkuConversionStatus - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountSkuConversionStatus#Multiple - - - - - - - - - - - - - - - - - - - - - EndTime - - - SkuConversionStatus - - - StartTime - - - TargetSkuName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountUpdateParameters - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountUpdateParameters#Multiple - - - - - - - - - - - - Kind - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountUpdateParametersTags - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountUpdateParametersTags#Multiple - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageIdentity - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageIdentity#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AccountName - - - BlobInventoryPolicyName - - - DeletedAccountName - - - EncryptionScopeName - - - Location - - - ManagementPolicyName - - - MigrationName - - - ObjectReplicationPolicyId - - - PrivateEndpointConnectionName - - - ResourceGroupName - - - SubscriptionId - - - Username - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.SystemData - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.SystemData#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - CreatedAt - - - CreatedBy - - - CreatedByType - - - LastModifiedAt - - - LastModifiedBy - - - LastModifiedByType - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.TagFilter - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.TagFilter#Multiple - - - - - - - - - - - - - - - - - - Name - - - Op - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.TrackedResource - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.TrackedResource#Multiple - - - - - - - - - - - - - - - Name - - - Location - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.TrackedResourceTags - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.TrackedResourceTags#Multiple - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Usage - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Usage#Multiple - - - - - - - - - - - - - - - - - - CurrentValue - - - Limit - - - Unit - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.UsageName - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.UsageName#Multiple - - - - - - - - - - - - - - - LocalizedValue - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.UserAssignedIdentity - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.UserAssignedIdentity#Multiple - - - - - - - - - - - - - - - ClientId - - - PrincipalId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.VirtualNetworkRule - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.VirtualNetworkRule#Multiple - - - - - - - - - - - - - - - - - - Action - - - State - - - VirtualNetworkResourceId - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/Az.Storage/8.1.0/Storage.Autorest/Az.Storage.psm1 b/Modules/Az.Storage/8.1.0/Storage.Autorest/Az.Storage.psm1 deleted file mode 100644 index 06cc98bd6220..000000000000 --- a/Modules/Az.Storage/8.1.0/Storage.Autorest/Az.Storage.psm1 +++ /dev/null @@ -1,337 +0,0 @@ -# region Generated - # ---------------------------------------------------------------------------------- - # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# http://www.apache.org/licenses/LICENSE-2.0 -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Code generated by Microsoft (R) AutoRest Code Generator.Changes may cause incorrect behavior and will be lost if the code -# is regenerated. - # ---------------------------------------------------------------------------------- - # Load required Az.Accounts module - $accountsName = 'Az.Accounts' - $accountsModule = Get-Module -Name $accountsName - if(-not $accountsModule) { - $localAccountsPath = Join-Path $PSScriptRoot 'generated\modules' - if(Test-Path -Path $localAccountsPath) { - $localAccounts = Get-ChildItem -Path $localAccountsPath -Recurse -Include 'Az.Accounts.psd1' | Select-Object -Last 1 - if($localAccounts) { - $accountsModule = Import-Module -Name ($localAccounts.FullName) -Scope Global -PassThru - } - } - if(-not $accountsModule) { - $hasAdequateVersion = (Get-Module -Name $accountsName -ListAvailable | Where-Object { $_.Version -ge [System.Version]'2.7.5' } | Measure-Object).Count -gt 0 - if($hasAdequateVersion) { - $accountsModule = Import-Module -Name $accountsName -MinimumVersion 2.7.5 -Scope Global -PassThru - } - } - } - - if(-not $accountsModule) { - Write-Error "`nThis module requires $accountsName version 2.7.5 or greater. For installation instructions, please see: https://learn.microsoft.com/powershell/azure/install-az-ps" -ErrorAction Stop - } elseif (($accountsModule.Version -lt [System.Version]'2.7.5') -and (-not $localAccounts)) { - Write-Error "`nThis module requires $accountsName version 2.7.5 or greater. An earlier version of Az.Accounts is imported in the current PowerShell session. If you are running test, please try to add the switch '-RegenerateSupportModule' when executing 'test-module.ps1'. Otherwise please open a new PowerShell session and import this module again.`nAdditionally, this error could indicate that multiple incompatible versions of Azure PowerShell modules are installed on your system. For troubleshooting information, please see: https://aka.ms/azps-version-error" -ErrorAction Stop - } - Write-Information "Loaded Module '$($accountsModule.Name)'" - - # Load the private module dll - $null = Import-Module -Name (Join-Path $PSScriptRoot './bin/Az.Storage.private.dll') - - # Get the private module's instance - $instance = [Microsoft.Azure.PowerShell.Cmdlets.Storage.Module]::Instance - - # Ask for the shared functionality table - $VTable = Register-AzModule - - # Tweaks the pipeline on module load - $instance.OnModuleLoad = $VTable.OnModuleLoad - - # Following two delegates are added for telemetry - $instance.GetTelemetryId = $VTable.GetTelemetryId - $instance.Telemetry = $VTable.Telemetry - - # Delegate to sanitize the output object - $instance.SanitizeOutput = $VTable.SanitizerHandler - - # Delegate to get the telemetry info - $instance.GetTelemetryInfo = $VTable.GetTelemetryInfo - - # Tweaks the pipeline per call - $instance.OnNewRequest = $VTable.OnNewRequest - - # Gets shared parameter values - $instance.GetParameterValue = $VTable.GetParameterValue - - # Allows shared module to listen to events from this module - $instance.EventListener = $VTable.EventListener - - # Gets shared argument completers - $instance.ArgumentCompleter = $VTable.ArgumentCompleter - - # The name of the currently selected Azure profile - $instance.ProfileName = $VTable.ProfileName - - # Load the custom module - $customModulePath = Join-Path $PSScriptRoot './custom/Az.Storage.custom.psm1' - if(Test-Path $customModulePath) { - $null = Import-Module -Name $customModulePath - } - - # Export nothing to clear implicit exports - Export-ModuleMember - - # Export proxy cmdlet scripts - $exportsPath = Join-Path $PSScriptRoot './exports' - $directories = Get-ChildItem -Directory -Path $exportsPath - $profileDirectory = $null - if($instance.ProfileName) { - if(($directories | ForEach-Object { $_.Name }) -contains $instance.ProfileName) { - $profileDirectory = $directories | Where-Object { $_.Name -eq $instance.ProfileName } - } else { - # Don't export anything if the profile doesn't exist for the module - $exportsPath = $null - Write-Warning "Selected Azure profile '$($instance.ProfileName)' does not exist for module '$($instance.Name)'. No cmdlets were loaded." - } - } elseif(($directories | Measure-Object).Count -gt 0) { - # Load the last folder if no profile is selected - $profileDirectory = $directories | Select-Object -Last 1 - } - - if($profileDirectory) { - Write-Information "Loaded Azure profile '$($profileDirectory.Name)' for module '$($instance.Name)'" - $exportsPath = $profileDirectory.FullName - } - - if($exportsPath) { - Get-ChildItem -Path $exportsPath -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } - $cmdletNames = Get-ScriptCmdlet -ScriptFolder $exportsPath - Export-ModuleMember -Function $cmdletNames -Alias (Get-ScriptCmdlet -ScriptFolder $exportsPath -AsAlias) - } - - # Finalize initialization of this module - $instance.Init(); - Write-Information "Loaded Module '$($instance.Name)'" -# endregion - -# SIG # Begin signature block -# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDBSpO4nLgVZZiE -# p1iRBhK5XCm0c7tXqZhhGj3VQypBsKCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEICoTnpEA1PO8Cs1iKc9nO9Gs -# JFGWx4hSxcUPmz7TINXaMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAaqsJawrU3jxq1i1ErqoZ1fxd1Yc5nrEU4pUuVjeakNLKoXmjSCF9xAsb -# wdMJUe1DvfZeboXvZekVEDskv82lussXdifheiOXXaWXZStaKYC1kNNtOtMLmsP8 -# tslWP2gM54l4BoQ48o6UaV3Y2tPq6JEGBnbP7ioxB5ViG6hoGzJVyfMve3utg5N6 -# cMI+MIWQ70wcJ88VZ7zIdZDRw3x66CvtlYGeCwVstoRaEb6FTjC7oPaZedg7uO+D -# LKPFw2PC1LqwstmbBvthtreO/aOy0qvBTkzvN+fIEDB0byQhPi5txksihIsRAO9p -# eUl0uOhcIZmk5SIimrO1+cIN6WlhmqGCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC -# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCCqr3NZtRxeX8H0qFP7T6ahe1ZeE8E+cvF57uqaMBuKSwIGZ1rLfdML -# GBMyMDI1MDEwOTA2MzY0My45MjNaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTkzNS0w -# M0UwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHqMIIHIDCCBQigAwIBAgITMwAAAekPcTB+XfESNgABAAAB6TANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# MjZaFw0yNTAzMDUxODQ1MjZaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTkzNS0wM0UwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQCsmowxQRVgp4TSc3nTa6yrAPJnV6A7aZYnTw/yx90u -# 1DSH89nvfQNzb+5fmBK8ppH76TmJzjHUcImd845A/pvZY5O8PCBu7Gq+x5Xe6plQ -# t4xwVUUcQITxklOZ1Rm9fJ5nh8gnxOxaezFMM41sDI7LMpKwIKQMwXDctYKvCyQy -# 6kO2sVLB62kF892ZwcYpiIVx3LT1LPdMt1IeS35KY5MxylRdTS7E1Jocl30NgcBi -# JfqnMce05eEipIsTO4DIn//TtP1Rx57VXfvCO8NSCh9dxsyvng0lUVY+urq/G8QR -# FoOl/7oOI0Rf8Qg+3hyYayHsI9wtvDHGnT30Nr41xzTpw2I6ZWaIhPwMu5DvdkEG -# zV7vYT3tb9tTviY3psul1T5D938/AfNLqanVCJtP4yz0VJBSGV+h66ZcaUJOxpbS -# IjImaOLF18NOjmf1nwDatsBouXWXFK7E5S0VLRyoTqDCxHG4mW3mpNQopM/U1WJn -# jssWQluK8eb+MDKlk9E/hOBYKs2KfeQ4HG7dOcK+wMOamGfwvkIe7dkylzm8BeAU -# QC8LxrAQykhSHy+FaQ93DAlfQYowYDtzGXqE6wOATeKFI30u9YlxDTzAuLDK073c -# ndMV4qaD3euXA6xUNCozg7rihiHUaM43Amb9EGuRl022+yPwclmykssk30a4Rp3v -# 9QIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFJF+M4nFCHYjuIj0Wuv+jcjtB+xOMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQBWsSp+rmsxFLe61AE90Ken2XPgQHJDiS4S -# bLhvzfVjDPDmOdRE75uQohYhFMdGwHKbVmLK0lHV1Apz/HciZooyeoAvkHQaHmLh -# wBGkoyAAVxcaaUnHNIUS9LveL00PwmcSDLgN0V/Fyk20QpHDEukwKR8kfaBEX83A -# yvQzlf/boDNoWKEgpdAsL8SzCzXFLnDozzCJGq0RzwQgeEBr8E4K2wQ2WXI/ZJxZ -# S/+d3FdwG4ErBFzzUiSbV2m3xsMP3cqCRFDtJ1C3/JnjXMChnm9bLDD1waJ7TPp5 -# wYdv0Ol9+aN0t1BmOzCj8DmqKuUwzgCK9Tjtw5KUjaO6QjegHzndX/tZrY792dfR -# AXr5dGrKkpssIHq6rrWO4PlL3OS+4ciL/l8pm+oNJXWGXYJL5H6LNnKyXJVEw/1F -# bO4+Gz+U4fFFxs2S8UwvrBbYccVQ9O+Flj7xTAeITJsHptAvREqCc+/YxzhIKkA8 -# 8Q8QhJKUDtazatJH7ZOdi0LCKwgqQO4H81KZGDSLktFvNRhh8ZBAenn1pW+5UBGY -# z2GpgcxVXKT1CuUYdlHR9D6NrVhGqdhGTg7Og/d/8oMlPG3YjuqFxidiIsoAw2+M -# hI1zXrIi56t6JkJ75J69F+lkh9myJJpNkx41sSB1XK2jJWgq7VlBuP1BuXjZ3qgy -# m9r1wv0MtTCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNN -# MIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOkE5MzUtMDNFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQCr -# aYf1xDk2rMnU/VJo2GGK1nxo8aCBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymJpTAiGA8yMDI1MDEwODIzMzI1 -# M1oYDzIwMjUwMTA5MjMzMjUzWjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDrKYml -# AgEAMAcCAQACAiY0MAcCAQACAhO3MAoCBQDrKtslAgEAMDYGCisGAQQBhFkKBAIx -# KDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZI -# hvcNAQELBQADggEBAAQlwho/Cpc2tSYw1vt8Nusm/AJf/Yqg9evZ8PETElVrzhay -# zWqvq1NvLQUDBF/h2v4OUD3KLxjhCUKlA/o7mMBoFc7qpe/AyIaAE19CN0TkdcyL -# Ea/SMG0cUnkOoFF+Oo+eSKd3uznYnmYR9I06LuajHlThXy6N7GOr7J6gOB8vBmPs -# T7MG2CqyCfzRkz32sb2aUq0NAptBFpcJne91zFxwTUaXk5wQRyQe94HO9RW2NESk -# Z9EwvsW2ePzGIpcqLVg7IuOBlV/s89WyfkeoQqlWEdJ4LeuzNFzcn08O6mzom6HB -# rpKEVa7+cHp+6zz+CnEsBGgajWh5fn53NsRbIGoxggQNMIIECQIBATCBkzB8MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy -# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAekPcTB+XfESNgABAAAB6TAN -# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G -# CSqGSIb3DQEJBDEiBCAaMt93KcZj+Zoae05nGYhygRB2Ozdf4Yti4p6AaAXXkDCB -# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIKSQkniXaTcmj1TKQWF+x2U4riVo -# rGD8TwmgVbN9qsQlMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAHpD3Ewfl3xEjYAAQAAAekwIgQgVsI9sjr04+BLBnuWLK2e0f0duiPI -# futB9xw9G6dDkcIwDQYJKoZIhvcNAQELBQAEggIAkVP/nl7XorhesXfOpeWJyD2p -# /eskPx8yHJdtSAWlKe/qNqj619rdNakVSSxnxjkSLDgv4vZyAva/xOLBcJmL3RMU -# lh8x9YUKTKOi6fR0og7hYfbHpIuZvv4lSPGrnikfRqaXTM7c+qmJoNU40Cw+czNK -# 5kpSKQdxzi1JKfnA5LsI3zS9T8EGuFpgpn5ivMV2CK//f4Fe+rjIvuHm8HWBPKbq -# LfT/GMqqF7l2HEn3ad7tZkyxksrgj5tyrhWiRzwPH5Ju0jb0b1GJFBBM86aXCABa -# HpWU2jVExEFr00n6EuVffmegt4Ygee1fA4W3L2ey4LXUSlR8fA1nKB1LNl9aILvC -# TS96U7/uSIGcrSplCRjD30EaSVrzFdk8os9RLjk6pZeSZY/pbWJGIwKOEfNQVdVc -# 8oduHrNMSnmmScFjrmPkg3heYtk1kvg5dH4ZXD6NM3ylDa2tN/FRvBRdKDQxEM7R -# LFum34rAhEQQyll0/3I09MCRK6vQ0tInvLwjzn6SxEHDJHAe2rYipEECh74h35AJ -# Jr/805QxcbSJIPk62sNXXYxi5xptRL4UxzFl7CLB1MAjzqzfb4F8PnKN46T6rgW2 -# kgeHrqm1ZyVqRYisovm6nPLBoQyRgfdTnHgVfFC9XAyaodJgOdrSBDiXYbjhc/0h -# ms+gtA6decjG9rHAbhY= -# SIG # End signature block diff --git a/Modules/Az.Storage/8.1.0/Storage.Autorest/bin/Az.Storage.private.dll b/Modules/Az.Storage/8.1.0/Storage.Autorest/bin/Az.Storage.private.dll deleted file mode 100644 index d173a782c043..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Storage.Autorest/bin/Az.Storage.private.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Storage.Autorest/custom/Az.Storage.custom.psm1 b/Modules/Az.Storage/8.1.0/Storage.Autorest/custom/Az.Storage.custom.psm1 deleted file mode 100644 index 305315b2e392..000000000000 --- a/Modules/Az.Storage/8.1.0/Storage.Autorest/custom/Az.Storage.custom.psm1 +++ /dev/null @@ -1,235 +0,0 @@ -# region Generated - # Load the private module dll - $null = Import-Module -PassThru -Name (Join-Path $PSScriptRoot '..\bin\Az.Storage.private.dll') - - # Load the internal module - $internalModulePath = Join-Path $PSScriptRoot '..\internal\Az.Storage.internal.psm1' - if(Test-Path $internalModulePath) { - $null = Import-Module -Name $internalModulePath - } - - # Export nothing to clear implicit exports - Export-ModuleMember - - # Export script cmdlets - Get-ChildItem -Path $PSScriptRoot -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } - Export-ModuleMember -Function (Get-ScriptCmdlet -ScriptFolder $PSScriptRoot) -Alias (Get-ScriptCmdlet -ScriptFolder $PSScriptRoot -AsAlias) -# endregion - -# SIG # Begin signature block -# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCA5y03H/4iWEUzs -# t4OdHhPLBv3R0cG86hsmM72gSRcR6aCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIOHSuBgUYxzLUsV0MV7ZWCny -# uNrsCjc7uJNDqt/jRYdhMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAEUgXVduLhk7X1cm7C9G3nNIRU1OI+V///Vlpn/U3ExCj/xr49J+uDtFo -# ycH74E+ZEQICg8zyjFUFITRw5H6jiK2gGwKzfgQoAh0DngVlTz3we4m+JIZ1KMxh -# 8xu5sKK/IHktIX2Wd4UVrOTKvUO+cr4+m+d2SpPGMpO0WsN1GKnmN4VrZgtdr1os -# WiMNZogIDOlYdnv6/fs0f2AL8O345LXpo99iXXk/fdshjl/4oRlePCDXXYyN0Fw8 -# QyYagFJAPJILlVosrynql0oD5DJdUqgIPsWt+CqWHhgHRVM6Xty7PpTd3dJSNoIs -# l91OvAwl+Fvck3lP/cQGnDfhUFS2XaGCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC -# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCAGQrI1wfmZTmcJHP/HFmFxHRYJsYIiCXP1I2TjYoPXogIGZ1rRdmVn -# GBMyMDI1MDEwOTA2MzY0Mi41MzJaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTIwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHqMIIHIDCCBQigAwIBAgITMwAAAecujy+TC08b6QABAAAB5zANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# MTlaFw0yNTAzMDUxODQ1MTlaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTIwMC0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDCV58v4IuQ659XPM1DtaWMv9/HRUC5kdiEF89YBP6/ -# Rn7kjqMkZ5ESemf5Eli4CLtQVSefRpF1j7S5LLKisMWOGRaLcaVbGTfcmI1vMRJ1 -# tzMwCNIoCq/vy8WH8QdV1B/Ab5sK+Q9yIvzGw47TfXPE8RlrauwK/e+nWnwMt060 -# akEZiJJz1Vh1LhSYKaiP9Z23EZmGETCWigkKbcuAnhvh3yrMa89uBfaeHQZEHGQq -# dskM48EBcWSWdpiSSBiAxyhHUkbknl9PPztB/SUxzRZjUzWHg9bf1mqZ0cIiAWC0 -# EjK7ONhlQfKSRHVLKLNPpl3/+UL4Xjc0Yvdqc88gOLUr/84T9/xK5r82ulvRp2A8 -# /ar9cG4W7650uKaAxRAmgL4hKgIX5/0aIAsbyqJOa6OIGSF9a+DfXl1LpQPNKR79 -# 2scF7tjD5WqwIuifS9YUiHMvRLjjKk0SSCV/mpXC0BoPkk5asfxrrJbCsJePHSOE -# blpJzRmzaP6OMXwRcrb7TXFQOsTkKuqkWvvYIPvVzC68UM+MskLPld1eqdOOMK7S -# bbf2tGSZf3+iOwWQMcWXB9gw5gK3AIYK08WkJJuyzPqfitgubdRCmYr9CVsNOuW+ -# wHDYGhciJDF2LkrjkFUjUcXSIJd9f2ssYitZ9CurGV74BQcfrxjvk1L8jvtN7mul -# IwIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFM/+4JiAnzY4dpEf/Zlrh1K73o9YMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQB0ofDbk+llWi1cC6nsfie5Jtp09o6b6ARC -# pvtDPq2KFP+hi+UNNP7LGciKuckqXCmBTFIhfBeGSxvk6ycokdQr3815pEOaYWTn -# HvQ0+8hKy86r1F4rfBu4oHB5cTy08T4ohrG/OYG/B/gNnz0Ol6v7u/qEjz48zXZ6 -# ZlxKGyZwKmKZWaBd2DYEwzKpdLkBxs6A6enWZR0jY+q5FdbV45ghGTKgSr5ECAOn -# LD4njJwfjIq0mRZWwDZQoXtJSaVHSu2lHQL3YHEFikunbUTJfNfBDLL7Gv+sTmRi -# DZky5OAxoLG2gaTfuiFbfpmSfPcgl5COUzfMQnzpKfX6+FkI0QQNvuPpWsDU8sR+ -# uni2VmDo7rmqJrom4ihgVNdLaMfNUqvBL5ZiSK1zmaELBJ9a+YOjE5pmSarW5sGb -# n7iVkF2W9JQIOH6tGWLFJS5Hs36zahkoHh8iD963LeGjZqkFusKaUW72yMj/yxTe -# GEDOoIr35kwXxr1Uu+zkur2y+FuNY0oZjppzp95AW1lehP0xaO+oBV1XfvaCur/B -# 5PVAp2xzrosMEUcAwpJpio+VYfIufGj7meXcGQYWA8Umr8K6Auo+Jlj8IeFS6lSv -# KhqQpmdBzAMGqPOQKt1Ow3ZXxehK7vAiim3ZiALlM0K546k0sZrxdZPgpmz7O8w9 -# gHLuyZAQezCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNN -# MIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjkyMDAtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQCz -# cgTnGasSwe/dru+cPe1NF/vwQ6CBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymPnzAiGA8yMDI1MDEwODIzNTgy -# M1oYDzIwMjUwMTA5MjM1ODIzWjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDrKY+f -# AgEAMAcCAQACAgqMMAcCAQACAhNMMAoCBQDrKuEfAgEAMDYGCisGAQQBhFkKBAIx -# KDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZI -# hvcNAQELBQADggEBAEZtHe+7A3SvgaoN66naRZpTnp73wRcRs8dMBT3/c8PYbwX6 -# vxGPyBv1qSfycPyf9PDPX/Typ8w+8P/annh29uNumbttljO38YGNwi3IUG9QAltD -# SvoglH7QcJm1KiuZLmAzFL2BMD7cA9wCHR78jZR4LHt6D1oOhUKwPLbYbdZWPkLx -# jtfTqqXmcMxoQFvztZBl2qyhuq59akIRrkd2wSsk73bLo2YlaSsElNMFTIyPrpL+ -# /PamnIX0XpSRdWwwiJxNJs0McQpR65/Tmfbv1Z7u0DMlHQWJOyXQl1bRAqOMtisp -# xf389cbnpY4LLkQC73n7bxQVm8Gm4uYVeOOdODMxggQNMIIECQIBATCBkzB8MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy -# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAecujy+TC08b6QABAAAB5zAN -# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G -# CSqGSIb3DQEJBDEiBCDHbxCxbewQjl9Q+rsaf0gXhB23MoSRJnrtZo0bl4UK5jCB -# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIOU2XQ12aob9DeDFXM9UFHeEX74F -# v0ABvQMG7qC51nOtMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAHnLo8vkwtPG+kAAQAAAecwIgQgRJvjJ1+gVGsNoaDt9U/FTkFEV0dZ -# g7U4j7s6WjWsakEwDQYJKoZIhvcNAQELBQAEggIAk6KVKKvrIRxXrMYjvjCstogf -# NcCDnOgHgOQNSTmzoQ6nqPXN+5WcJmylUKAeTRLapmM8P3F4hIcSxpB/t/wD5YUO -# KBStMggEYjj7gCTAY5rTWtqd+OJp1vSkZ/9aQHpm96DqMGsVthrK8BKiklUGjTVZ -# xuP0DKc//quSMV2KYGRqh/pToKvIzFyjjx+asl6EAb24IhuZajWOrX17ovA8I/Vm -# Bfn6S1zX7+Mq+v9EQEZJXJm5en0QPkfcUrzxXBI1rT2YtYzT139JXutpQD70YsRl -# rJzf9KcVN8xrDmNJrqB7yegVMkuhwEvJ5aUVTjp7Ca2lEmBgSTrRWMJQ+W1TMVU+ -# B6NnAr/wtRyc1/0ryyRhEhBFH/oNymUX/yOcAl0KL7a3AToc83VJpYo1WlQ97pPW -# A/5pkgGAmnrEALTEPc9eFScSGisaEHcBfTOXfbXFXe/LLj2+oSnvotCLot5GKsGM -# yqeNLZ17qCd/dVb/EsdRFVgxAxd6nt5aY82eBq6pZ30actWImo+e2SQ9t1LX2kXe -# EeUB+EBqsGz2t+8WDLfhvpUCLz3glBnSWsfpsY6UFG/2Xo7iheVLWSUbjEaAcdn/ -# k/ZnCotCNZcS00BJyeSJS7cfgRjNwjgxNW5Dc85KkDHPYVAjwxKsysw9XU5hrgtK -# oJIf2F6Q3xDpYv35BXY= -# SIG # End signature block diff --git a/Modules/Az.Storage/8.1.0/Storage.Autorest/custom/Start-AzStorageAccountMigration.ps1 b/Modules/Az.Storage/8.1.0/Storage.Autorest/custom/Start-AzStorageAccountMigration.ps1 deleted file mode 100644 index 2a6dc353a47f..000000000000 --- a/Modules/Az.Storage/8.1.0/Storage.Autorest/custom/Start-AzStorageAccountMigration.ps1 +++ /dev/null @@ -1,426 +0,0 @@ -# ---------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# http://www.apache.org/licenses/LICENSE-2.0 -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Code generated by Microsoft (R) AutoRest Code Generator.Changes may cause incorrect behavior and will be lost if the code -# is regenerated. -# ---------------------------------------------------------------------------------- - -<# -.Synopsis -Account Migration request can be triggered for a storage account to change its redundancy level. -The migration updates the non-zonal redundant storage account to a zonal redundant account or vice-versa in order to have better reliability and availability. -Zone-redundant storage (ZRS) replicates your storage account synchronously across three Azure availability zones in the primary region. -.Description -Account Migration request can be triggered for a storage account to change its redundancy level. -The migration updates the non-zonal redundant storage account to a zonal redundant account or vice-versa in order to have better reliability and availability. -Zone-redundant storage (ZRS) replicates your storage account synchronously across three Azure availability zones in the primary region. -.Example -Start-AzStorageAccountMigration -AccountName myaccount -ResourceGroupName myresourcegroup -TargetSku Standard_LRS -Name migration1 -AsJob -.Example -Get-AzStorageAccount -ResourceGroupName myresourcegroup -Name myaccount | Start-AzStorageAccountMigration -TargetSku Standard_LRS -AsJob -.Example -$properties = '{ - "properties": { - "targetSkuName": "Standard_ZRS" - } -}' - Start-AzStorageAccountMigration -ResourceGroupName myresourcegroup -AccountName myaccount -JsonString $properties -AsJob -.Example -# Before executing the cmdlet, make sure you have a json file that contains {"properties": {"targetSkuName": }} -Start-AzStorageAccountMigration -ResourceGroupName myresourcegroup -AccountName myaccount -JsonFilePath properties.json -AsJob - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [BlobInventoryPolicyName ]: The name of the storage account blob inventory policy. It should always be 'default' - [DeletedAccountName ]: Name of the deleted storage account. - [EncryptionScopeName ]: The name of the encryption scope within the specified storage account. Encryption scope names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number. - [Id ]: Resource identity path - [Location ]: The location of the deleted storage account. - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [MigrationName ]: The name of the Storage Account Migration. It should always be 'default' - [ObjectReplicationPolicyId ]: For the destination account, provide the value 'default'. Configure the policy on the destination account first. For the source account, provide the value of the policy ID that is returned when you download the policy that was defined on the destination account. The policy is downloaded as a JSON file. - [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource - [ResourceGroupName ]: The name of the resource group within the user's subscription. The name is case insensitive. - [SubscriptionId ]: The ID of the target subscription. - [Username ]: The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. -.Link -https://learn.microsoft.com/powershell/module/az.storage/start-azstorageaccountmigration -#> -function Start-AzStorageAccountMigration { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='CustomerExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='CustomerExpanded', Mandatory)] - [Parameter(ParameterSetName='CustomerViaJsonFilePath', Mandatory)] - [Parameter(ParameterSetName='CustomerViaJsonString', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')] - [System.String] - # The name of the storage account within the specified resource group. - # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - ${AccountName}, - - [Parameter(ParameterSetName='CustomerExpanded', Mandatory)] - [Parameter(ParameterSetName='CustomerViaJsonFilePath', Mandatory)] - [Parameter(ParameterSetName='CustomerViaJsonString', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')] - [System.String] - # The name of the resource group within the user's subscription. - # The name is case insensitive. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='CustomerExpanded')] - [Parameter(ParameterSetName='CustomerViaJsonFilePath')] - [Parameter(ParameterSetName='CustomerViaJsonString')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # The ID of the target subscription. - ${SubscriptionId}, - - [Parameter(ParameterSetName='CustomerViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity] - # Identity Parameter - ${InputObject}, - - [Parameter(ParameterSetName='CustomerExpanded', Mandatory)] - [Parameter(ParameterSetName='CustomerViaIdentityExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.PSArgumentCompleterAttribute("Standard_LRS", "Standard_GRS", "Standard_RAGRS", "Standard_ZRS", "Premium_LRS", "Premium_ZRS", "Standard_GZRS", "Standard_RAGZRS")] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')] - [System.String] - # Target sku name for the account - ${TargetSku}, - - [Parameter(ParameterSetName='CustomerExpanded')] - [Parameter(ParameterSetName='CustomerViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')] - [System.String] - # current value is 'default' for customer initiated migration - ${Name}, - - [Parameter(ParameterSetName='CustomerExpanded')] - [Parameter(ParameterSetName='CustomerViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')] - [System.String] - # SrpAccountMigrationType in ARM contract which is 'accountMigrations' - ${Type}, - - [Parameter(ParameterSetName='CustomerViaJsonFilePath', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')] - [System.String] - # Path of Json file supplied to the Customer operation - ${JsonFilePath}, - - [Parameter(ParameterSetName='CustomerViaJsonString', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')] - [System.String] - # Json string supplied to the Customer operation - ${JsonString}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command as a job - ${AsJob}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command asynchronously - ${NoWait}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - - process { - Write-Warning("After your request to convert the account's redundancy configuration is validated, the conversion will typically complete in a few days, but can take a few weeks depending on current resource demands in the region, account size, and other factors. The conversion can't be stopped after being initiated, and for accounts with geo redundancy a failover can't be initiated while conversion is in progress. The data within the storage account will continue to be accessible with no loss of durability or availability.") - Az.Storage.internal\Start-AzStorageAccountMigration @PSBoundParameters - } -} - -# SIG # Begin signature block -# MIIoLQYJKoZIhvcNAQcCoIIoHjCCKBoCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCC859puGL2l4nNN -# Dkq3fhgBG4unrW8AxFOXHW596OrkUKCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGg0wghoJAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIBy1zTT78S7FYAaM4Gd2a5SG -# 8bd6MBypgMurnsdD1uEwMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAGT5WG+NR9Sl1CpQpFZDmLKrIN7q1v+r9bBUmLHMgHpOPBmTGmS1QTSMx -# cmDZqHcVWJ3/IAyjWZ4kV6CeyxfDrw+/yHdJHH9dfi+spPYdpnGnFbrBsh1NGaYl -# JuuLLZ0tMV6QLBdY40p3NLwLj4hHiVQ8HIt7PLhlW0A1etp8SlWlwkfRDJNxmODt -# C7QVmRX0r60heTrdCrxzTRSzzJm/nIZE1s8i8lvNFybfOaFG1Vk51/rBrHMDIkKJ -# BFdVI5B55A573trxykc0X3GAKBvF8bOvhbGjZxP4Kj8GjOJpD2cE+mFdxu007eoJ -# nsEeQ20L3Io0TTtbisTg4gsMPWtgd6GCF5cwgheTBgorBgEEAYI3AwMBMYIXgzCC -# F38GCSqGSIb3DQEHAqCCF3AwghdsAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCBG8FIXeLbdA0kRtRQhTWAMH4lomo92loYY0hvT3Q6JeAIGZ1rLW6Cy -# GBMyMDI1MDEwOTA2MzY0NS4wMTRaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTYwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHtMIIHIDCCBQigAwIBAgITMwAAAe+JP1ahWMyo2gABAAAB7zANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# NDhaFw0yNTAzMDUxODQ1NDhaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTYwMC0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQCjC1jinwzgHwhOakZqy17oE4BIBKsm5kX4DUmCBWI0 -# lFVpEiK5mZ2Kh59soL4ns52phFMQYGG5kypCipungwP9Nob4VGVE6aoMo5hZ9Nyt -# XR5ZRgb9Z8NR6EmLKICRhD4sojPMg/RnGRTcdf7/TYvyM10jLjmLyKEegMHfvIwP -# mM+AP7hzQLfExDdqCJ2u64Gd5XlnrFOku5U9jLOKk1y70c+Twt04/RLqruv1fGP8 -# LmYmtHvrB4TcBsADXSmcFjh0VgQkX4zXFwqnIG8rgY+zDqJYQNZP8O1Yo4kSckHT -# 43XC0oM40ye2+9l/rTYiDFM3nlZe2jhtOkGCO6GqiTp50xI9ITpJXi0vEek8AejT -# 4PKMEO2bPxU63p63uZbjdN5L+lgIcCNMCNI0SIopS4gaVR4Sy/IoDv1vDWpe+I28 -# /Ky8jWTeed0O3HxPJMZqX4QB3I6DnwZrHiKn6oE38tgBTCCAKvEoYOTg7r2lF0Iu -# bt/3+VPvKtTCUbZPFOG8jZt9q6AFodlvQntiolYIYtqSrLyXAQIlXGhZ4gNcv4dv -# 1YAilnbWA9CsnYh+OKEFr/4w4M69lI+yaoZ3L/t/UfXpT/+yc7hS/FolcmrGFJTB -# YlS4nE1cuKblwZ/UOG26SLhDONWXGZDKMJKN53oOLSSk4ldR0HlsbT4heLlWlOEl -# JQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFO1MWqKFwrCbtrw9P8A63bAVSJzLMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQAYGZa3aCDudbk9EVdkP8xcQGZuIAIPRx9K -# 1CA7uRzBt80fC0aWkuYYhQMvHHJRHUobSM4Uw3zN7fHEN8hhaBDb9NRaGnFWdtHx -# mJ9eMz6Jpn6KiIyi9U5Og7QCTZMl17n2w4eddq5vtk4rRWOVvpiDBGJARKiXWB9u -# 2ix0WH2EMFGHqjIhjWUXhPgR4C6NKFNXHvWvXecJ2WXrJnvvQGXAfNJGETJZGpR4 -# 1nUN3ijfiCSjFDxamGPsy5iYu904Hv9uuSXYd5m0Jxf2WNJSXkPGlNhrO27pPxgT -# 111myAR61S3S2hc572zN9yoJEObE98Vy5KEM3ZX53cLefN81F1C9p/cAKkE6u9V6 -# ryyl/qSgxu1UqeOZCtG/iaHSKMoxM7Mq4SMFsPT/8ieOdwClYpcw0CjZe5KBx2xL -# a4B1neFib8J8/gSosjMdF3nHiyHx1YedZDtxSSgegeJsi0fbUgdzsVMJYvqVw52W -# qQNu0GRC79ZuVreUVKdCJmUMBHBpTp6VFopL0Jf4Srgg+zRD9iwbc9uZrn+89odp -# InbznYrnPKHiO26qe1ekNwl/d7ro2ItP/lghz0DoD7kEGeikKJWHdto7eVJoJhkr -# UcanTuUH08g+NYwG6S+PjBSB/NyNF6bHa/xR+ceAYhcjx0iBiv90Mn0JiGfnA2/h -# Lj5evhTcAjCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNQ -# MIICOAIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjk2MDAtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQBL -# cI81gxbea1Ex2mFbXx7ck+0g/6CBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymJiDAiGA8yMDI1MDEwODIzMzIy -# NFoYDzIwMjUwMTA5MjMzMjI0WjB3MD0GCisGAQQBhFkKBAExLzAtMAoCBQDrKYmI -# AgEAMAoCAQACAhBWAgH/MAcCAQACAhQIMAoCBQDrKtsIAgEAMDYGCisGAQQBhFkK -# BAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJ -# KoZIhvcNAQELBQADggEBAFF0rbTmMxkNPz1om4SHJYc5SM7SYKncb0JlkUfCGEYD -# gqofUSHhfk6mHDcJEWMr/8zYmBhRHgPuwpWmY/brBK7db/raMs35QQZbnW+zFh7k -# DWu9SsAIAmMsjCFCidwTPCwvp01uN2bL1Nniofh1TZXX4kibqoDs8lc3a4iBK5HH -# SiV//dtJgcZ3l28OnuUcPy6OMhl1vi1fVfHEsjO3l4dsN7c+KYGWxGrSDF5RT5iF -# 4xikv8W98I8aju/Y88HPZtIF2a/jyxMmXnOrlxQUEw8HECkQVRN4mijQjKMqE74z -# SIhjWxKaMbM94739pPKBb+o5mZFzKnBbaCA13R3zvNMxggQNMIIECQIBATCBkzB8 -# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk -# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1N -# aWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAe+JP1ahWMyo2gABAAAB -# 7zANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEE -# MC8GCSqGSIb3DQEJBDEiBCDZajNpLTtWVmoyqNgliimuaVEN/CJUKk/Zl6zz8JcQ -# NTCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIPBhKEW4Fo3wUz09NQx2a0Db -# cdsX8jovM5LizHmnyX+jMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB -# IDIwMTACEzMAAAHviT9WoVjMqNoAAQAAAe8wIgQgk8GRw07evoBPTcHFRSwwzBm1 -# /c/LPJrR0eUDtfdYEUgwDQYJKoZIhvcNAQELBQAEggIAZRHvJBG4uberm+XrHU96 -# m9WZlTJuxFT9R7b6lIcG0nnoVnog9dK8r67DhPyO7dzrhGSCGeo10lrCe7OS1xNj -# fdr9dL1IE25TXhl4LUbptVKG0IwyT+K9anOIXaSk1XDnrN1AgOinb3koJ1XNj6AL -# ZKM+xcWGa1sLZWN5QBCVjzL/b+BvNFaiPhi9iVblq9v4x1AC8tuDLCHuXg9nKAdy -# gzBfZszTVyI+PSKN7KgQe8vt6dazcsxT4THfpvESPSjEaFAHYUuuNxLXe3ff0Aji -# jMoSDb6xXlff2ZcsEs0BTXb6J2hK58izI99tx9LcJVyp8JpY0qJWdq5GyCybwoi6 -# K7tLte66hsckVSGoHUP5HFpn3oJWvwfBsSftpUEbxrvIHQyYiiNtRmZqdyOa9dol -# S7n+GFeLxVfkYwWaZ0aHOcCH8gwd0JtOuU3uAwQDM9GWwyInlLutn7rP1VK21jZu -# NYsd1VJVJj4XAEb1cMetWmV9EYY+YPcVGJjG/s11kXhD2b36T/fOVB8se8FHG2P2 -# Rb6Vvk5rV0aH6CUwpd343vx9u+FnoyCmVk1XsPNa0sOuh/w3xnf0+SOzFD29ZvS6 -# RumL8/g42W38uDPwTM3E3t4f6k7rl0idGK9jcdHdzd3P+ZukqfcGEKxv9XNIn5sG -# s9z7wsb00Vq/jt1nsLsiwvQ= -# SIG # End signature block diff --git a/Modules/Az.Storage/8.1.0/Storage.Autorest/exports/ProxyCmdletDefinitions.ps1 b/Modules/Az.Storage/8.1.0/Storage.Autorest/exports/ProxyCmdletDefinitions.ps1 deleted file mode 100644 index 1ae80bdebdd7..000000000000 --- a/Modules/Az.Storage/8.1.0/Storage.Autorest/exports/ProxyCmdletDefinitions.ps1 +++ /dev/null @@ -1,713 +0,0 @@ - -# ---------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# http://www.apache.org/licenses/LICENSE-2.0 -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Code generated by Microsoft (R) AutoRest Code Generator.Changes may cause incorrect behavior and will be lost if the code -# is regenerated. -# ---------------------------------------------------------------------------------- - -<# -.Synopsis -Gets the status of the ongoing migration for the specified storage account. -.Description -Gets the status of the ongoing migration for the specified storage account. -.Example -Get-AzStorageAccountMigration -AccountName myaccount -ResourceGroupName myresroucegroup - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageAccountMigration -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [BlobInventoryPolicyName ]: The name of the storage account blob inventory policy. It should always be 'default' - [DeletedAccountName ]: Name of the deleted storage account. - [EncryptionScopeName ]: The name of the encryption scope within the specified storage account. Encryption scope names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number. - [Id ]: Resource identity path - [Location ]: The location of the deleted storage account. - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [MigrationName ]: The name of the Storage Account Migration. It should always be 'default' - [ObjectReplicationPolicyId ]: For the destination account, provide the value 'default'. Configure the policy on the destination account first. For the source account, provide the value of the policy ID that is returned when you download the policy that was defined on the destination account. The policy is downloaded as a JSON file. - [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource - [ResourceGroupName ]: The name of the resource group within the user's subscription. The name is case insensitive. - [SubscriptionId ]: The ID of the target subscription. - [Username ]: The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. -.Link -https://learn.microsoft.com/powershell/module/az.storage/get-azstorageaccountmigration -#> -function Get-AzStorageAccountMigration { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageAccountMigration])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')] - [System.String] - # The name of the storage account within the specified resource group. - # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - ${AccountName}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')] - [System.String] - # The name of the resource group within the user's subscription. - # The name is case insensitive. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # The ID of the target subscription. - ${SubscriptionId}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity] - # Identity Parameter - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.Storage.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - Get = 'Az.Storage.private\Get-AzStorageAccountMigration_Get'; - GetViaIdentity = 'Az.Storage.private\Get-AzStorageAccountMigration_GetViaIdentity'; - } - if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId') ) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.Storage.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -Account Migration request can be triggered for a storage account to change its redundancy level. -The migration updates the non-zonal redundant storage account to a zonal redundant account or vice-versa in order to have better reliability and availability. -Zone-redundant storage (ZRS) replicates your storage account synchronously across three Azure availability zones in the primary region. -.Description -Account Migration request can be triggered for a storage account to change its redundancy level. -The migration updates the non-zonal redundant storage account to a zonal redundant account or vice-versa in order to have better reliability and availability. -Zone-redundant storage (ZRS) replicates your storage account synchronously across three Azure availability zones in the primary region. -.Example -Start-AzStorageAccountMigration -AccountName myaccount -ResourceGroupName myresourcegroup -TargetSku Standard_LRS -Name migration1 -AsJob -.Example -Get-AzStorageAccount -ResourceGroupName myresourcegroup -Name myaccount | Start-AzStorageAccountMigration -TargetSku Standard_LRS -AsJob -.Example -$properties = '{ - "properties": { - "targetSkuName": "Standard_ZRS" - } -}' - Start-AzStorageAccountMigration -ResourceGroupName myresourcegroup -AccountName myaccount -JsonString $properties -AsJob -.Example -# Before executing the cmdlet, make sure you have a json file that contains {"properties": {"targetSkuName": }} -Start-AzStorageAccountMigration -ResourceGroupName myresourcegroup -AccountName myaccount -JsonFilePath properties.json -AsJob - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [BlobInventoryPolicyName ]: The name of the storage account blob inventory policy. It should always be 'default' - [DeletedAccountName ]: Name of the deleted storage account. - [EncryptionScopeName ]: The name of the encryption scope within the specified storage account. Encryption scope names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number. - [Id ]: Resource identity path - [Location ]: The location of the deleted storage account. - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [MigrationName ]: The name of the Storage Account Migration. It should always be 'default' - [ObjectReplicationPolicyId ]: For the destination account, provide the value 'default'. Configure the policy on the destination account first. For the source account, provide the value of the policy ID that is returned when you download the policy that was defined on the destination account. The policy is downloaded as a JSON file. - [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource - [ResourceGroupName ]: The name of the resource group within the user's subscription. The name is case insensitive. - [SubscriptionId ]: The ID of the target subscription. - [Username ]: The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. -.Link -https://learn.microsoft.com/powershell/module/az.storage/start-azstorageaccountmigration -#> -function Start-AzStorageAccountMigration { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='CustomerExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='CustomerExpanded', Mandatory)] - [Parameter(ParameterSetName='CustomerViaJsonString', Mandatory)] - [Parameter(ParameterSetName='CustomerViaJsonFilePath', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')] - [System.String] - # The name of the storage account within the specified resource group. - # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - ${AccountName}, - - [Parameter(ParameterSetName='CustomerExpanded', Mandatory)] - [Parameter(ParameterSetName='CustomerViaJsonString', Mandatory)] - [Parameter(ParameterSetName='CustomerViaJsonFilePath', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')] - [System.String] - # The name of the resource group within the user's subscription. - # The name is case insensitive. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='CustomerExpanded')] - [Parameter(ParameterSetName='CustomerViaJsonString')] - [Parameter(ParameterSetName='CustomerViaJsonFilePath')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # The ID of the target subscription. - ${SubscriptionId}, - - [Parameter(ParameterSetName='CustomerViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity] - # Identity Parameter - ${InputObject}, - - [Parameter(ParameterSetName='CustomerExpanded', Mandatory)] - [Parameter(ParameterSetName='CustomerViaIdentityExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.PSArgumentCompleterAttribute("Standard_LRS", "Standard_GRS", "Standard_RAGRS", "Standard_ZRS", "Premium_LRS", "Premium_ZRS", "Standard_GZRS", "Standard_RAGZRS")] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')] - [System.String] - # Target sku name for the account - ${TargetSku}, - - [Parameter(ParameterSetName='CustomerExpanded')] - [Parameter(ParameterSetName='CustomerViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')] - [System.String] - # current value is 'default' for customer initiated migration - ${Name}, - - [Parameter(ParameterSetName='CustomerExpanded')] - [Parameter(ParameterSetName='CustomerViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')] - [System.String] - # SrpAccountMigrationType in ARM contract which is 'accountMigrations' - ${Type}, - - [Parameter(ParameterSetName='CustomerViaJsonString', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')] - [System.String] - # Json string supplied to the Customer operation - ${JsonString}, - - [Parameter(ParameterSetName='CustomerViaJsonFilePath', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')] - [System.String] - # Path of Json file supplied to the Customer operation - ${JsonFilePath}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command as a job - ${AsJob}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command asynchronously - ${NoWait}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.Storage.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - CustomerExpanded = 'Az.Storage.custom\Start-AzStorageAccountMigration'; - CustomerViaJsonString = 'Az.Storage.custom\Start-AzStorageAccountMigration'; - CustomerViaJsonFilePath = 'Az.Storage.custom\Start-AzStorageAccountMigration'; - CustomerViaIdentityExpanded = 'Az.Storage.custom\Start-AzStorageAccountMigration'; - } - if (('CustomerExpanded', 'CustomerViaJsonString', 'CustomerViaJsonFilePath') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId') ) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.Storage.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -# SIG # Begin signature block -# MIIoOQYJKoZIhvcNAQcCoIIoKjCCKCYCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDVXnh83FQRdKVL -# Fgzmv94Ihg/Em4x4IJkoeK/gRwHH4qCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIA0I -# oRgBZ5TmBKWt8UzqjqUHihXnmTUsML6qlGmMPxrCMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAPQ5a5YWmnjCs0tqdU62lnEkCg2z0rGtAvAVU -# xlDYKftSsM27SympHR0f+SquSDYhCxX2qu9r+UQx/bynNRr4YjbAxkWcj/nWfU2W -# z5S7LD4FNDnJpZmxkzdEBjPSsXQAZhzBGe8OOcPA8z/eiMPYwYNwefv5teebr1Tv -# RwgXzJvewAAyvuETPAPITFxp95vjQIBdCBm4CNQRS/r5sw2UU5dcI7VYYSWFsh65 -# 6DMty7tY+hQusN7Oyzo7WRHpwS84CLA/tIzTzVuTd2GiYU5L/M0pHDOSwrlSgnPA -# hgYNlx05rUtVEor6M6djEG5XGBAq8OOg7nK1GwaSFYLOfVXAYKGCF5QwgheQBgor -# BgEEAYI3AwMBMYIXgDCCF3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFSBgsqhkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCgAyfnYhexHoB+W19w0fbXzmDPDptpPypW -# HGCroHYrhwIGZ1rd48kXGBMyMDI1MDEwOTA2MzY0OC4xMDdaMASAAgH0oIHRpIHO -# MIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQL -# ExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxk -# IFRTUyBFU046OEQwMC0wNUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1l -# LVN0YW1wIFNlcnZpY2WgghHqMIIHIDCCBQigAwIBAgITMwAAAfPFCkOuA8wdMQAB -# AAAB8zANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDAeFw0yMzEyMDYxODQ2MDJaFw0yNTAzMDUxODQ2MDJaMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OEQwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Uw -# ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQD+n6ba4SuB9iSO5WMhbngq -# YAb+z3IfzNpZIWS/sgfXhlLYmGnsUtrGX3OVcg+8krJdixuNUMO7ZAOqCZsXUjOz -# 8zcn1aUD5D2r2PhzVKjHtivWGgGj4x5wqWe1Qov3vMz8WHsKsfadIlWjfBMnVKVo -# mOybQ7+2jc4afzj2XJQQSmE9jQRoBogDwmqZakeYnIx0EmOuucPr674T6/YaTPiI -# YlGf+XV2u6oQHAkMG56xYPQikitQjjNWHADfBqbBEaqppastxpRNc4id2S1xVQxc -# QGXjnAgeeVbbPbAoELhbw+z3VetRwuEFJRzT6hbWEgvz9LMYPSbioHL8w+ZiWo3x -# uw3R7fJsqe7pqsnjwvniP7sfE1utfi7k0NQZMpviOs//239H6eA6IOVtF8w66ipE -# 71EYrcSNrOGlTm5uqq+syO1udZOeKM0xY728NcGDFqnjuFPbEEm6+etZKftU9jxL -# CSzqXOVOzdqA8O5Xa3E41j3s7MlTF4Q7BYrQmbpxqhTvfuIlYwI2AzeO3OivcezJ -# wBj2FQgTiVHacvMQDgSA7E5vytak0+MLBm0AcW4IPer8A4gOGD9oSprmyAu1J6wF -# kBrf2Sjn+ieNq6Fx0tWj8Ipg3uQvcug37jSadF6q1rUEaoPIajZCGVk+o5wn6rt+ -# cwdJ39REU43aWCwn0C+XxwIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFMNkFfalEVEM -# jA3ApoUx9qDrDQokMB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8G -# A1UdHwRYMFYwVKBSoFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMv -# Y3JsL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBs -# BggrBgEFBQcBAQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0 -# LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUy -# MDIwMTAoMSkuY3J0MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUH -# AwgwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4ICAQDfxByP/NH+79vc -# 3liO4c7nXM/UKFcAm5w61FxRxPxCXRXliNjZ7sDqNP0DzUTBU9tS5DqkqRSiIV15 -# j7q8e6elg8/cD3bv0sW4Go9AML4lhA5MBg3wzKdihfJ0E/HIqcHX11mwtbpTiC2s -# gAUh7+OZnb9TwJE7pbEBPJQUxxuCiS5/r0s2QVipBmi/8MEW2eIi4mJ+vHI5DCaA -# GooT4A15/7oNj9zyzRABTUICNNrS19KfryEN5dh5kqOG4Qgca9w6L7CL+SuuTZi0 -# SZ8Zq65iK2hQ8IMAOVxewCpD4lZL6NDsVNSwBNXOUlsxOAO3G0wNT+cBug/HD43B -# 7E2odVfs6H2EYCZxUS1rgReGd2uqQxgQ2wrMuTb5ykO+qd+4nhaf/9SN3getomtQ -# n5IzhfCkraT1KnZF8TI3ye1Z3pner0Cn/p15H7wNwDkBAiZ+2iz9NUEeYLfMGm9v -# ErDVBDRMjGsE/HqqY7QTSTtDvU7+zZwRPGjiYYUFXT+VgkfdHiFpKw42Xsm0MfL5 -# aOa31FyCM17/pPTIKTRiKsDF370SwIwZAjVziD/9QhEFBu9pojFULOZvzuL5iSEJ -# IcqopVAwdbNdroZi2HN8nfDjzJa8CMTkQeSfQsQpKr83OhBmE3MF2sz8gqe3loc0 -# 5DW8JNvZ328Jps3LJCALt0rQPJYnOzCCB3EwggVZoAMCAQICEzMAAAAVxedrngKb -# SZkAAAAAABUwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQI -# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv -# ZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmlj -# YXRlIEF1dGhvcml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIy -# NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT -# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE -# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXI -# yjVX9gF/bErg4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjo -# YH1qUoNEt6aORmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1y -# aa8dq6z2Nr41JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v -# 3byNpOORj7I5LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pG -# ve2krnopN6zL64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viS -# kR4dPf0gz3N9QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYr -# bqgSUei/BQOj0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlM -# jgK8QmguEOqEUUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSL -# W6CmgyFdXzB0kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AF -# emzFER1y7435UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIu -# rQIDAQABo4IB3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIE -# FgQUKqdS/mTEmr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWn -# G1M1GelyMFwGA1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEW -# M2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5 -# Lmh0bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBi -# AEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV -# 9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3Js -# Lm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAx -# MC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2 -# LTIzLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv -# 6lwUtj5OR2R4sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZn -# OlNN3Zi6th542DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1 -# bSNU5HhTdSRXud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4 -# rPf5KYnDvBewVIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU -# 6ZGyqVvfSaN0DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDF -# NLB62FD+CljdQDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/ -# HltEAY5aGZFrDZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdU -# CbFpAUR+fKFhbHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKi -# excdFYmNcP7ntdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTm -# dHRbatGePu1+oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZq -# ELQdVTNYs6FwZvKhggNNMIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMx -# EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT -# FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJp -# Y2EgT3BlcmF0aW9uczEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjhEMDAtMDVF -# MC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMK -# AQEwBwYFKw4DAhoDFQBu+gYs2LRha5pFO79g3LkfwKRnKKCBgzCBgKR+MHwxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv -# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymcDTAi -# GA8yMDI1MDEwOTAwNTEyNVoYDzIwMjUwMTEwMDA1MTI1WjB0MDoGCisGAQQBhFkK -# BAExLDAqMAoCBQDrKZwNAgEAMAcCAQACAhoaMAcCAQACAhHwMAoCBQDrKu2NAgEA -# MDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAI -# AgEAAgMBhqAwDQYJKoZIhvcNAQELBQADggEBAIi8y/oESDxqpVHfLgHNygwB/Jrt -# mCI3RsQCcgV5VK4R4ZTXPXCVTssT+UA6huQ6d07Y0VWH7wXCrgW/Dj7HmJpYDW4K -# cZ5SZ7+vEZN/jfcVVOVHSlLbzhsgPfPcqw/KzO06ylav4klLg92+ay2tlsZB2PlK -# AFI1zLXsPrDZxNT/A//KsadnbPriUKDxeDGyvWr+0sKMT6VZeE3+UK6fibWBA9eF -# aUKkm3jtXGhMDHtWNmI9q6EfWAhO/KuKlEnGbmqthEjV9QTtxBaMw4KRb0BZrOVB -# FSTuhdPqyMSE0q15PzJ4nKcwfWgicRfebMXnU0KzCADWsXocLPiFkuqGABExggQN -# MIIECQIBATCBkzB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ -# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u -# MSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAfPF -# CkOuA8wdMQABAAAB8zANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0G -# CyqGSIb3DQEJEAEEMC8GCSqGSIb3DQEJBDEiBCBwO60rpIJvG4hTHMOQcCU/KcWt -# OIeL4DUp8ruLzW8SLzCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIBi82TSL -# tuG4Vkp8wBmJk/T+RAh841sG/aDOwxg6O2LoMIGYMIGApH4wfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTACEzMAAAHzxQpDrgPMHTEAAQAAAfMwIgQgGSjW8MjK -# 1IoOQTxpadsqquBovJDUJRPGCnAABQ9r91gwDQYJKoZIhvcNAQELBQAEggIAOOtu -# hQR9hUBzOQKDKV7wZWdNREmGgVeqbWatEnhu083bC2fcMqhYUxT1gjxjI9PhVixF -# kcAa5SNYV0ig6Ug1IDjYc9P1iJY25F2NlB/qljkDTN5W8d+RxXgzZ8XGzimX50Nk -# p6zCW//fI50CZ8etKxm4OxPFUlGl1WBtOjxaqcXxihWRkyoKb7IfN6ZFjcrZ+rHJ -# B79Kn35P0ErFxUJltXJOu+gQQPsE3xVUyxtWD66bKEK6CHx+EV2dTPj9E6YdK4mH -# ysQt4Aq0bAOqPZgBVQvh5kTCFjOEpf5pIpFm5Km3Dzjq8wgA0MJFc7uWcv/wnVSQ -# uTM+J2+FL06Zp6Z3xh5cREVfT169omNSKjEGbbnsEAp8kB4UXd2ysp4vlqWqCqKU -# 67qp1TbK8ct9IXolz1X+d073M3je2hFRsGj3q91c9io0oPFpsOVxX6VBSJttw7oB -# mg/dEZCfUdJTjJ8Kg3zTF5Z4AImWT/Da0djggvYgEeQ3ROdoElOUXiobLgJQ8b84 -# h9rh/L7Scxgoj0MJGH6TfJEByXHA8O0WlsBVODFucETR9enY01/ZrPly0cV/PS2o -# 9MDrssScH/seyOjpGS6mnyto07QzBKDkX6+o9SE/EhC/pU8qBlndQNc+4jsEQhNr -# qwfdj+bHVa+h0hPhMJPTDMRM+WFLnHWSU0JC8qI= -# SIG # End signature block diff --git a/Modules/Az.Storage/8.1.0/Storage.Autorest/internal/Az.Storage.internal.psm1 b/Modules/Az.Storage/8.1.0/Storage.Autorest/internal/Az.Storage.internal.psm1 deleted file mode 100644 index 57bd3e23c7e1..000000000000 --- a/Modules/Az.Storage/8.1.0/Storage.Autorest/internal/Az.Storage.internal.psm1 +++ /dev/null @@ -1,256 +0,0 @@ -# region Generated - # Load the private module dll - $null = Import-Module -PassThru -Name (Join-Path $PSScriptRoot '..\bin\Az.Storage.private.dll') - - # Get the private module's instance - $instance = [Microsoft.Azure.PowerShell.Cmdlets.Storage.Module]::Instance - - # Export nothing to clear implicit exports - Export-ModuleMember - - # Export proxy cmdlet scripts - $exportsPath = $PSScriptRoot - $directories = Get-ChildItem -Directory -Path $exportsPath - $profileDirectory = $null - if($instance.ProfileName) { - if(($directories | ForEach-Object { $_.Name }) -contains $instance.ProfileName) { - $profileDirectory = $directories | Where-Object { $_.Name -eq $instance.ProfileName } - } else { - # Don't export anything if the profile doesn't exist for the module - $exportsPath = $null - Write-Warning "Selected Azure profile '$($instance.ProfileName)' does not exist for module '$($instance.Name)'. No cmdlets were loaded." - } - } elseif(($directories | Measure-Object).Count -gt 0) { - # Load the last folder if no profile is selected - $profileDirectory = $directories | Select-Object -Last 1 - } - - if($profileDirectory) { - Write-Information "Loaded Azure profile '$($profileDirectory.Name)' for module '$($instance.Name)'" - $exportsPath = $profileDirectory.FullName - } - - if($exportsPath) { - Get-ChildItem -Path $exportsPath -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } - $cmdletNames = Get-ScriptCmdlet -ScriptFolder $exportsPath - Export-ModuleMember -Function $cmdletNames -Alias (Get-ScriptCmdlet -ScriptFolder $exportsPath -AsAlias) - } -# endregion - -# SIG # Begin signature block -# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCy7aZDAGSyfmFx -# cucI97RlwuRwihoeuqeEAnHkOPtxE6CCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIOZ6yYa7DB3+xmD8tDvpbqhN -# Ix970n4cBVEw+6C8mm8TMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAOoykFelKOUq23lgSSA+ITAKouhItqPViUUY/6yw4l6jyITTWWXIuQNCp -# oGzWHmc8gkcB+aKj+G+O2nmXyQN2LoSQ3MB61C+g8bI+Nbva1W3tvSM9nAolqVO5 -# URKB6WWalR0f8/D3A345qrPqe/kWAvutEf7t3nzdIe2DSZa/QcmXVrypw6mp13rV -# P6H8oksF54T/b2dV38M6MGrHlZxAs/okRjoSlswfCJb3UsgA/88iQOfPcpoc9gPY -# D3LsRaLQOONVzFXgReuxzJfJHU39YtTdvfXYlNqp3HYejayQx61FA412OT4fKdxJ -# B43GxiGi5WTcraahnPJo8neflMFahKGCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC -# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCDWDPGCO2FuNPxTAb4y7IXdeHAtknHosqRS2PcbW2s/UgIGZ1rou1b1 -# GBMyMDI1MDEwOTA2MzY0Mi44OTFaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046REMwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHqMIIHIDCCBQigAwIBAgITMwAAAehQsIDPK3KZTQABAAAB6DANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# MjJaFw0yNTAzMDUxODQ1MjJaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046REMwMC0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDhQXdE0WzXG7wzeC9SGdH6eVwdGlF6YgpU7weOFBkp -# W9yuEmJSDE1ADBx/0DTuRBaplSD8CR1QqyQmxRDD/CdvDyeZFAcZ6l2+nlMssmZy -# C8TPt1GTWAUt3GXUU6g0F0tIrFNLgofCjOvm3G0j482VutKS4wZT6bNVnBVsChr2 -# AjmVbGDN/6Qs/EqakL5cwpGel1te7UO13dUwaPjOy0Wi1qYNmR8i7T1luj2JdFdf -# ZhMPyqyq/NDnZuONSbj8FM5xKBoar12ragC8/1CXaL1OMXBwGaRoJTYtksi9njuq -# 4wDkcAwitCZ5BtQ2NqPZ0lLiQB7O10Bm9zpHWn9x1/HmdAn4koMWKUDwH5sd/zDu -# 4vi887FWxm54kkWNvk8FeQ7ZZ0Q5gqGKW4g6revV2IdAxBobWdorqwvzqL70Wdsg -# DU/P5c0L8vYIskUJZedCGHM2hHIsNRyw9EFoSolDM+yCedkz69787s8nIp55icLf -# DoKw5hak5G6MWF6d71tcNzV9+v9RQKMa6Uwfyquredd5sqXWCXv++hek4A15WybI -# c6ufT0ilazKYZvDvoaswgjP0SeLW7mvmcw0FELzF1/uWaXElLHOXIlieKF2i/YzQ -# 6U50K9dbhnMaDcJSsG0hXLRTy/LQbsOD0hw7FuK0nmzotSx/5fo9g7fCzoFjk3tD -# EwIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFPo5W8o980kMfRVQba6T34HwelLaMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQCWfcJm2rwXtPi74km6PKAkni9+BWotq+Qt -# DGgeT5F3ro7PsIUNKRkUytuGqI8thL3Jcrb03x6DOppYJEA+pb6o2qPjFddO1TLq -# vSXrYm+OgCLL+7+3FmRmfkRu8rHvprab0O19wDbukgO8I5Oi1RegMJl8t5k/UtE0 -# Wb3zAlOHnCjLGSzP/Do3ptwhXokk02IvD7SZEBbPboGbtw4LCHsT2pFakpGOBh+I -# SUMXBf835CuVNfddwxmyGvNSzyEyEk5h1Vh7tpwP7z7rJ+HsiP4sdqBjj6Avopuf -# 4rxUAfrEbV6aj8twFs7WVHNiIgrHNna/55kyrAG9Yt19CPvkUwxYK0uZvPl2WC39 -# nfc0jOTjivC7s/IUozE4tfy3JNkyQ1cNtvZftiX3j5Dt+eLOeuGDjvhJvYMIEkpk -# V68XLNH7+ZBfYa+PmfRYaoFFHCJKEoRSZ3PbDJPBiEhZ9yuxMddoMMQ19Tkyftot -# 6Ez0XhSmwjYBq39DvBFWhlyDGBhrU3GteDWiVd9YGSB2WnxuFMy5fbAK6o8PWz8Q -# RMiptXHK3HDBr2wWWEcrrgcTuHZIJTqepNoYlx9VRFvj/vCXaAFcmkW1nk7VE+ow -# aXr5RJjryDq9ubkyDq1mdrF/geaRALXcNZbfNXIkhXzXA6a8CiamcQW/DgmLJpiV -# QNriZYCHIDCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNN -# MIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOkRDMDAtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQCM -# JG4vg0juMOVn2BuKACUvP80FuqCBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymm5TAiGA8yMDI1MDEwOTAxMzc0 -# MVoYDzIwMjUwMTEwMDEzNzQxWjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDrKabl -# AgEAMAcCAQACAgkfMAcCAQACAhJBMAoCBQDrKvhlAgEAMDYGCisGAQQBhFkKBAIx -# KDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZI -# hvcNAQELBQADggEBAEpuvqYAWimE3aR+q2KcX9oSBl2Vbkx7buLha6IStST4ztD6 -# i7OuKIKiHh2ybmm70omfWKv/4kYvcgElPrlgNhgzwyFXV7uRX1SkPMbH9B+5oj9Z -# WOKE81lgSX0UNsgWlL92N7nGQN3G+J/4ZP3sjZdcdC6j7nqd82IucomvfqPBKX5U -# FFDRNzuxSI2vme97A73cqQ6aHzVw9h1pChOmLz62Cud0nA3xAB6CZIi+Qa2hx2J1 -# IoroWK7dSDndNOjk5ZCMQAhcmdbr4uqkC1ySFtNJbQfp1GGE1vFiI3sNIKbe84XC -# u894GtoRsrGZuN1mOWMN3cTuM+1ec0q6je5corAxggQNMIIECQIBATCBkzB8MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy -# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAehQsIDPK3KZTQABAAAB6DAN -# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G -# CSqGSIb3DQEJBDEiBCDpV1Ps7ZyHm+BrjHaDjcZlY/pTF8m377zuHDVCSBblIDCB -# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EICrS2sTVAoQggkHR59pNqige0xfJ -# T2J3U8W1Sc8H+OsdMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAHoULCAzytymU0AAQAAAegwIgQgQV0pW5tgGS+yeJmO/KxxySGk1pYF -# hPEuT2ZdSh5D128wDQYJKoZIhvcNAQELBQAEggIAKS6dWvswkHa8iPQyFP+n7yzI -# QzEAKeQmxVVUmaqCn6ZRNPp9J9U3j/DZw4oxkmKeFGynqozmqnfn0n/Az1+GAPC8 -# tOObDaUQbBzTsYMUPDYiEJ/zeqaYhB2dvRXLkHDHrK38Gc5RNG9L/e4R6G0pupfy -# vHLuI7wrIDNL5eiMiq/EY5G1U56N0KkE6tj4WOgOD0DShY6UkrOJQIENy5ZsSbLB -# AKlMsJbAI56pIxN3+2HEpcfbEOhd/yEwx8HMaGCH+/FQco7x7iVuOgJ5nZZObKBz -# o1u6RETNKqdqcvr1xGQoQhnWJdrZJqmkRbGBXeiv/oEBFwE+TFvrWW3HGYdb49WX -# qMuAAIoz4Q9iJU9O2p2+i9CevFV+oSKKlFxr1L/887q/e9RqZHLxpuBC3w04fnxO -# IeuTfORjXDx3IEq8Rx8BRX3gsTCE5NIk3YrX3mo58KMFSRTriTCqRR4w8cy10Gq8 -# WFmF4epAXgtIP0LtdE5cLPBDZttfpZ43FdlgXX7OAK/raWI7qq55pKBNoRSxAzhm -# sZeY7Wf6yJLiMSOuvwJOeOmSAh0h1FzX/WYf+5gZm7J+AMXh3t3FdyxwAroLb49+ -# 3UP9w++esRVpYTdrjzFS3nqmkHJd9E3VFQdk5CL9YR8RbscwZksChFcHzDWYmZTH -# VB74ayD4fvkS0dIM1lo= -# SIG # End signature block diff --git a/Modules/Az.Storage/8.1.0/Storage.Autorest/internal/ProxyCmdletDefinitions.ps1 b/Modules/Az.Storage/8.1.0/Storage.Autorest/internal/ProxyCmdletDefinitions.ps1 deleted file mode 100644 index af35fdb2f8f5..000000000000 --- a/Modules/Az.Storage/8.1.0/Storage.Autorest/internal/ProxyCmdletDefinitions.ps1 +++ /dev/null @@ -1,605 +0,0 @@ - -# ---------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# http://www.apache.org/licenses/LICENSE-2.0 -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Code generated by Microsoft (R) AutoRest Code Generator.Changes may cause incorrect behavior and will be lost if the code -# is regenerated. -# ---------------------------------------------------------------------------------- - -<# -.Synopsis -Lists all of the available Storage Rest API operations. -.Description -Lists all of the available Storage Rest API operations. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IOperation -.Link -https://learn.microsoft.com/powershell/module/az.storage/get-azstorageoperation -#> -function Get-AzStorageOperation { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IOperation])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] -param( - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - List = 'Az.Storage.private\Get-AzStorageOperation_List'; - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Account Migration request can be triggered for a storage account to change its redundancy level. -The migration start the non-zonal redundant storage account to a zonal redundant account or vice-versa in order to have better reliability and availability. -Zone-redundant storage (ZRS) replicates your storage account synchronously across three Azure availability zones in the primary region. -.Description -Account Migration request can be triggered for a storage account to change its redundancy level. -The migration start the non-zonal redundant storage account to a zonal redundant account or vice-versa in order to have better reliability and availability. -Zone-redundant storage (ZRS) replicates your storage account synchronously across three Azure availability zones in the primary region. -.Example -Start-AzStorageAccountMigration -AccountName myaccount -ResourceGroupName myresourcegroup -TargetSku Standard_LRS -Name migration1 -AsJob -.Example -Get-AzStorageAccount -ResourceGroupName myresourcegroup -Name myaccount | Start-AzStorageAccountMigration -TargetSku Standard_LRS -AsJob -.Example -$properties = '{ - "properties": { - "targetSkuName": "Standard_ZRS" - } -}' - Start-AzStorageAccountMigration -ResourceGroupName myresourcegroup -AccountName myaccount -JsonString $properties -AsJob -.Example -# Before executing the cmdlet, make sure you have a json file that contains {"properties": {"targetSkuName": }} -Start-AzStorageAccountMigration -ResourceGroupName myresourcegroup -AccountName myaccount -JsonFilePath properties.json -AsJob - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageAccountMigration -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [BlobInventoryPolicyName ]: The name of the storage account blob inventory policy. It should always be 'default' - [DeletedAccountName ]: Name of the deleted storage account. - [EncryptionScopeName ]: The name of the encryption scope within the specified storage account. Encryption scope names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number. - [Id ]: Resource identity path - [Location ]: The location of the deleted storage account. - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [MigrationName ]: The name of the Storage Account Migration. It should always be 'default' - [ObjectReplicationPolicyId ]: For the destination account, provide the value 'default'. Configure the policy on the destination account first. For the source account, provide the value of the policy ID that is returned when you download the policy that was defined on the destination account. The policy is downloaded as a JSON file. - [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource - [ResourceGroupName ]: The name of the resource group within the user's subscription. The name is case insensitive. - [SubscriptionId ]: The ID of the target subscription. - [Username ]: The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. - -PARAMETER : The parameters or status associated with an ongoing or enqueued storage account migration in order to update its current SKU or region. - DetailTargetSkuName : Target sku name for the account - [Name ]: current value is 'default' for customer initiated migration - [Type ]: SrpAccountMigrationType in ARM contract which is 'accountMigrations' -.Link -https://learn.microsoft.com/powershell/module/az.storage/start-azstorageaccountmigration -#> -function Start-AzStorageAccountMigration { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='StartExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Start', Mandatory)] - [Parameter(ParameterSetName='StartExpanded', Mandatory)] - [Parameter(ParameterSetName='StartViaJsonFilePath', Mandatory)] - [Parameter(ParameterSetName='StartViaJsonString', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')] - [System.String] - # The name of the storage account within the specified resource group. - # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - ${AccountName}, - - [Parameter(ParameterSetName='Start', Mandatory)] - [Parameter(ParameterSetName='StartExpanded', Mandatory)] - [Parameter(ParameterSetName='StartViaJsonFilePath', Mandatory)] - [Parameter(ParameterSetName='StartViaJsonString', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')] - [System.String] - # The name of the resource group within the user's subscription. - # The name is case insensitive. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Start')] - [Parameter(ParameterSetName='StartExpanded')] - [Parameter(ParameterSetName='StartViaJsonFilePath')] - [Parameter(ParameterSetName='StartViaJsonString')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # The ID of the target subscription. - ${SubscriptionId}, - - [Parameter(ParameterSetName='StartViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='StartViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity] - # Identity Parameter - ${InputObject}, - - [Parameter(ParameterSetName='Start', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='StartViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageAccountMigration] - # The parameters or status associated with an ongoing or enqueued storage account migration in order to update its current SKU or region. - ${Parameter}, - - [Parameter(ParameterSetName='StartExpanded', Mandatory)] - [Parameter(ParameterSetName='StartViaIdentityExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.PSArgumentCompleterAttribute("Standard_LRS", "Standard_GRS", "Standard_RAGRS", "Standard_ZRS", "Premium_LRS", "Premium_ZRS", "Standard_GZRS", "Standard_RAGZRS")] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')] - [System.String] - # Target sku name for the account - ${TargetSku}, - - [Parameter(ParameterSetName='StartExpanded')] - [Parameter(ParameterSetName='StartViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')] - [System.String] - # current value is 'default' for customer initiated migration - ${Name}, - - [Parameter(ParameterSetName='StartExpanded')] - [Parameter(ParameterSetName='StartViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')] - [System.String] - # SrpAccountMigrationType in ARM contract which is 'accountMigrations' - ${Type}, - - [Parameter(ParameterSetName='StartViaJsonFilePath', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')] - [System.String] - # Path of Json file supplied to the Start operation - ${JsonFilePath}, - - [Parameter(ParameterSetName='StartViaJsonString', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')] - [System.String] - # Json string supplied to the Start operation - ${JsonString}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command as a job - ${AsJob}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command asynchronously - ${NoWait}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Start = 'Az.Storage.private\Start-AzStorageAccountMigration_Start'; - StartExpanded = 'Az.Storage.private\Start-AzStorageAccountMigration_StartExpanded'; - StartViaIdentity = 'Az.Storage.private\Start-AzStorageAccountMigration_StartViaIdentity'; - StartViaIdentityExpanded = 'Az.Storage.private\Start-AzStorageAccountMigration_StartViaIdentityExpanded'; - StartViaJsonFilePath = 'Az.Storage.private\Start-AzStorageAccountMigration_StartViaJsonFilePath'; - StartViaJsonString = 'Az.Storage.private\Start-AzStorageAccountMigration_StartViaJsonString'; - } - if (('Start', 'StartExpanded', 'StartViaJsonFilePath', 'StartViaJsonString') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId') ) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -# SIG # Begin signature block -# MIIoLQYJKoZIhvcNAQcCoIIoHjCCKBoCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDG6lXJMpSTwoN6 -# QQU4ZtvepYPJ5w68AZjCvbnmSQlyfqCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGg0wghoJAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIEmB/JxAiOPRnhpcCfcc7IPt -# 4jOfCpxUgMd5p/FGa67sMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAbf2+GUJOj8y+xrQ0+Cec/dS+JJuIZTOYnoltAxZFc6RQlUG8rzmlI5j1 -# Ki6SU/UUT9moFUMZ7rUzYd9hjZlEEFbhJssysNoMb/RLzaFM2W3S3/4hghiS4BUV -# uZYqv6/bno5LfPxu7xbR7deG7m+Kdf2eVB2Vd5zTM+lAIHBcA4FdeJdBOYP16C7u -# ttNKnsklvB72Hl8PUU1m/sBc0z3pAjI1cH/hahlfZx3Qny/QcwKFU5JMXiwiME0i -# /ZJtC4hmNcKgM9qQNE76my90wUlh7cAak+thSGEk34CwcMCudW6KaGTc+quU3I4G -# MJtGnx7Hw+26IC8x4ymiz5XqY1luk6GCF5cwgheTBgorBgEEAYI3AwMBMYIXgzCC -# F38GCSqGSIb3DQEHAqCCF3AwghdsAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCANb62iu/9EK+hT8pc+pBpetcAAHBiA2wglOAmeC7CX8QIGZ1rLW6DO -# GBMyMDI1MDEwOTA2MzY0NS43MzFaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTYwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHtMIIHIDCCBQigAwIBAgITMwAAAe+JP1ahWMyo2gABAAAB7zANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# NDhaFw0yNTAzMDUxODQ1NDhaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTYwMC0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQCjC1jinwzgHwhOakZqy17oE4BIBKsm5kX4DUmCBWI0 -# lFVpEiK5mZ2Kh59soL4ns52phFMQYGG5kypCipungwP9Nob4VGVE6aoMo5hZ9Nyt -# XR5ZRgb9Z8NR6EmLKICRhD4sojPMg/RnGRTcdf7/TYvyM10jLjmLyKEegMHfvIwP -# mM+AP7hzQLfExDdqCJ2u64Gd5XlnrFOku5U9jLOKk1y70c+Twt04/RLqruv1fGP8 -# LmYmtHvrB4TcBsADXSmcFjh0VgQkX4zXFwqnIG8rgY+zDqJYQNZP8O1Yo4kSckHT -# 43XC0oM40ye2+9l/rTYiDFM3nlZe2jhtOkGCO6GqiTp50xI9ITpJXi0vEek8AejT -# 4PKMEO2bPxU63p63uZbjdN5L+lgIcCNMCNI0SIopS4gaVR4Sy/IoDv1vDWpe+I28 -# /Ky8jWTeed0O3HxPJMZqX4QB3I6DnwZrHiKn6oE38tgBTCCAKvEoYOTg7r2lF0Iu -# bt/3+VPvKtTCUbZPFOG8jZt9q6AFodlvQntiolYIYtqSrLyXAQIlXGhZ4gNcv4dv -# 1YAilnbWA9CsnYh+OKEFr/4w4M69lI+yaoZ3L/t/UfXpT/+yc7hS/FolcmrGFJTB -# YlS4nE1cuKblwZ/UOG26SLhDONWXGZDKMJKN53oOLSSk4ldR0HlsbT4heLlWlOEl -# JQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFO1MWqKFwrCbtrw9P8A63bAVSJzLMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQAYGZa3aCDudbk9EVdkP8xcQGZuIAIPRx9K -# 1CA7uRzBt80fC0aWkuYYhQMvHHJRHUobSM4Uw3zN7fHEN8hhaBDb9NRaGnFWdtHx -# mJ9eMz6Jpn6KiIyi9U5Og7QCTZMl17n2w4eddq5vtk4rRWOVvpiDBGJARKiXWB9u -# 2ix0WH2EMFGHqjIhjWUXhPgR4C6NKFNXHvWvXecJ2WXrJnvvQGXAfNJGETJZGpR4 -# 1nUN3ijfiCSjFDxamGPsy5iYu904Hv9uuSXYd5m0Jxf2WNJSXkPGlNhrO27pPxgT -# 111myAR61S3S2hc572zN9yoJEObE98Vy5KEM3ZX53cLefN81F1C9p/cAKkE6u9V6 -# ryyl/qSgxu1UqeOZCtG/iaHSKMoxM7Mq4SMFsPT/8ieOdwClYpcw0CjZe5KBx2xL -# a4B1neFib8J8/gSosjMdF3nHiyHx1YedZDtxSSgegeJsi0fbUgdzsVMJYvqVw52W -# qQNu0GRC79ZuVreUVKdCJmUMBHBpTp6VFopL0Jf4Srgg+zRD9iwbc9uZrn+89odp -# InbznYrnPKHiO26qe1ekNwl/d7ro2ItP/lghz0DoD7kEGeikKJWHdto7eVJoJhkr -# UcanTuUH08g+NYwG6S+PjBSB/NyNF6bHa/xR+ceAYhcjx0iBiv90Mn0JiGfnA2/h -# Lj5evhTcAjCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNQ -# MIICOAIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjk2MDAtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQBL -# cI81gxbea1Ex2mFbXx7ck+0g/6CBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymJiDAiGA8yMDI1MDEwODIzMzIy -# NFoYDzIwMjUwMTA5MjMzMjI0WjB3MD0GCisGAQQBhFkKBAExLzAtMAoCBQDrKYmI -# AgEAMAoCAQACAhBWAgH/MAcCAQACAhQIMAoCBQDrKtsIAgEAMDYGCisGAQQBhFkK -# BAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJ -# KoZIhvcNAQELBQADggEBAFF0rbTmMxkNPz1om4SHJYc5SM7SYKncb0JlkUfCGEYD -# gqofUSHhfk6mHDcJEWMr/8zYmBhRHgPuwpWmY/brBK7db/raMs35QQZbnW+zFh7k -# DWu9SsAIAmMsjCFCidwTPCwvp01uN2bL1Nniofh1TZXX4kibqoDs8lc3a4iBK5HH -# SiV//dtJgcZ3l28OnuUcPy6OMhl1vi1fVfHEsjO3l4dsN7c+KYGWxGrSDF5RT5iF -# 4xikv8W98I8aju/Y88HPZtIF2a/jyxMmXnOrlxQUEw8HECkQVRN4mijQjKMqE74z -# SIhjWxKaMbM94739pPKBb+o5mZFzKnBbaCA13R3zvNMxggQNMIIECQIBATCBkzB8 -# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk -# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1N -# aWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAe+JP1ahWMyo2gABAAAB -# 7zANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEE -# MC8GCSqGSIb3DQEJBDEiBCAT5SS5fvVdl/uF5WAtBQ579zaW0E3zF9OBTuwZEI9K -# jjCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIPBhKEW4Fo3wUz09NQx2a0Db -# cdsX8jovM5LizHmnyX+jMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB -# IDIwMTACEzMAAAHviT9WoVjMqNoAAQAAAe8wIgQgk8GRw07evoBPTcHFRSwwzBm1 -# /c/LPJrR0eUDtfdYEUgwDQYJKoZIhvcNAQELBQAEggIAXJ6Gogdg8Er3FlB88uFL -# J1IOpbawbpdHFCJJlmmJAZpKpH7I31HPIk7IXan68Cg/2Eg3/tR7G7sKs6yf7vv8 -# 7q6Z/lwscdxJdcPud8PzoNdEESFg4f0/4HBs/ai4a9a1H0GIhe1p5Hv6amas0Red -# R44SvkZmWwha6LkluwofMJIFV2pQihz5Xt2O7gFKKIxg2nI3Nn19EBtaSwsWBxCs -# f9cMeqnRvZWNOku9cldd4D1QLfVkGl6gCWg5xci70gVCh5HFtD43EUgBSklgT3z7 -# 9Lj3KeRSD2kAXAOJDSIn47g4Kx6WK2BtB7yG2i30fIUGix+rGojhJZ9dlaKkxa4U -# Qmo28i5mch46I/d3DF+jCMTEou8PyEyImVsbuK5VWcFEBKmuCY2FylN+ZOqSkGif -# UOJ90mQ1a/FTTyBuwzF1Yz+1p7FUs08Z6Q/x+CMhQ9CUUnDvtby6yrAhIaN4AzgH -# Ag1yOEjZiK6ukh1jllPDnhBRgnI3A1Y5DRZK4g2jLQm2xZzU10QSJmppGsIGWMVu -# diXWIbIrhouHertzqHw43LsXnKIPCYLzXixASlTCbzhmYtr8jsF+164cJqSb6KhK -# bz5JX6pq5gvDlEiXcv042RG/Cs6oV1NO/ieyeeeWmTwQG25LiBl7tn8gKUi9A1kl -# jrfF2VBOxPTCWurhypBwqNc= -# SIG # End signature block diff --git a/Modules/Az.Storage/8.1.0/Storage.Autorest/utils/Get-SubscriptionIdTestSafe.ps1 b/Modules/Az.Storage/8.1.0/Storage.Autorest/utils/Get-SubscriptionIdTestSafe.ps1 deleted file mode 100644 index 9213c3763627..000000000000 --- a/Modules/Az.Storage/8.1.0/Storage.Autorest/utils/Get-SubscriptionIdTestSafe.ps1 +++ /dev/null @@ -1,224 +0,0 @@ -param() -if ($env:AzPSAutorestTestPlaybackMode) { - $loadEnvPath = Join-Path $PSScriptRoot '..' 'test' 'loadEnv.ps1' - . ($loadEnvPath) - return $env.SubscriptionId -} -return (Get-AzContext).Subscription.Id -# SIG # Begin signature block -# MIIoKQYJKoZIhvcNAQcCoIIoGjCCKBYCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCvmGT2RlJhp/rC -# DOiTnt/3S1Bv3biEMflyZwWMS2xRdKCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgkwghoFAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIPSNBc+wDke3rcRSTQbfFzLx -# ZjDqn60fWPPP7nkeXd5aMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAIOWv2gqibHDoAsgFKvajYtSyvigIY7LG6+yONh9HcUJdJnIgMxkf+7z/ -# qm0Q7C1aR8JJrAkY+3pKMvBOGYlXRDmicIYAN0EdUyMgxU488QsAjnGWjQXrM1UK -# aob9PRQrhtUBn4ZG5wAbJhh2Mkd1B6OfBaH39wIC9RoNJ82qC+omLBNtcSf1qxxD -# mcok7TsJipQyhezvmyZkp7mZZOCVRnQUzcv8EePP1Mb5XHJxcB9RvJZPdEnNOEor -# /+m5iJXS91Xf1av1uWJ4UtUxLh5wyLuabiujk3tdGllgFevRrW6DU7g19PbWUWFQ -# tDul12Jei/euUx0DggqFpAGcrIUSMKGCF5MwghePBgorBgEEAYI3AwMBMYIXfzCC -# F3sGCSqGSIb3DQEHAqCCF2wwghdoAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFRBgsq -# hkiG9w0BCRABBKCCAUAEggE8MIIBOAIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCDuMbkRPjAvxi4QeVb1DOEEpIfpSuM9f5eAc4Y7kh75MAIGZ1rRdmaw -# GBIyMDI1MDEwOTA2MzY1MS44OVowBIACAfSggdGkgc4wgcsxCzAJBgNVBAYTAlVT -# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVy -# aWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjo5MjAwLTA1 -# RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaCC -# EeowggcgMIIFCKADAgECAhMzAAAB5y6PL5MLTxvpAAEAAAHnMA0GCSqGSIb3DQEB -# CwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTIzMTIwNjE4NDUx -# OVoXDTI1MDMwNTE4NDUxOVowgcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMx -# JzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjo5MjAwLTA1RTAtRDk0NzElMCMGA1UE -# AxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZTCCAiIwDQYJKoZIhvcNAQEB -# BQADggIPADCCAgoCggIBAMJXny/gi5Drn1c8zUO1pYy/38dFQLmR2IQXz1gE/r9G -# fuSOoyRnkRJ6Z/kSWLgIu1BVJ59GkXWPtLkssqKwxY4ZFotxpVsZN9yYjW8xEnW3 -# MzAI0igKr+/LxYfxB1XUH8Bvmwr5D3Ii/MbDjtN9c8TxGWtq7Ar976dafAy3TrRq -# QRmIknPVWHUuFJgpqI/1nbcRmYYRMJaKCQpty4CeG+HfKsxrz24F9p4dBkQcZCp2 -# yQzjwQFxZJZ2mJJIGIDHKEdSRuSeX08/O0H9JTHNFmNTNYeD1t/WapnRwiIBYLQS -# Mrs42GVB8pJEdUsos0+mXf/5QvheNzRi92pzzyA4tSv/zhP3/Ermvza6W9GnYDz9 -# qv1wbhbvrnS4poDFECaAviEqAhfn/RogCxvKok5ro4gZIX1r4N9eXUulA80pHv3a -# xwXu2MPlarAi6J9L1hSIcy9EuOMqTRJIJX+alcLQGg+STlqx/GuslsKwl48dI4Ru -# WknNGbNo/o4xfBFytvtNcVA6xOQq6qRa+9gg+9XMLrxQz4yyQs+V3V6p044wrtJt -# t/a0ZJl/f6I7BZAxxZcH2DDmArcAhgrTxaQkm7LM+p+K2C5t1EKZiv0JWw065b7A -# cNgaFyIkMXYuSuOQVSNRxdIgl31/ayxiK1n0K6sZXvgFBx+vGO+TUvyO+03ua6Uj -# AgMBAAGjggFJMIIBRTAdBgNVHQ4EFgQUz/7gmICfNjh2kR/9mWuHUrvej1gwHwYD -# VR0jBBgwFoAUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXwYDVR0fBFgwVjBUoFKgUIZO -# aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIw -# VGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3JsMGwGCCsGAQUFBwEBBGAwXjBc -# BggrBgEFBQcwAoZQaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0 -# cy9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcnQwDAYD -# VR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAOBgNVHQ8BAf8EBAMC -# B4AwDQYJKoZIhvcNAQELBQADggIBAHSh8NuT6WVaLVwLqex+J7km2nT2jpvoBEKm -# +0M+rYoU/6GL5Q00/ssZyIq5ySpcKYFMUiF8F4ZLG+TrJyiR1CvfzXmkQ5phZOce -# 9DT7yErLzqvUXit8G7igcHlxPLTxPiiGsb85gb8H+A2fPQ6Xq/u7+oSPPjzNdnpm -# XEobJnAqYplZoF3YNgTDMql0uQHGzoDp6dZlHSNj6rkV1tXjmCEZMqBKvkQIA6cs -# PieMnB+MirSZFlbANlChe0lJpUdK7aUdAvdgcQWKS6dtRMl818EMsvsa/6xOZGIN -# mTLk4DGgsbaBpN+6IVt+mZJ89yCXkI5TN8xCfOkp9fr4WQjRBA2+4+lawNTyxH66 -# eLZWYOjuuaomuibiKGBU10tox81Sq8EvlmJIrXOZoQsEn1r5g6MTmmZJqtbmwZuf -# uJWQXZb0lAg4fq0ZYsUlLkezfrNqGSgeHyIP3rct4aNmqQW6wppRbvbIyP/LFN4Y -# QM6givfmTBfGvVS77OS6vbL4W41jShmOmnOn3kBbWV6E/TFo76gFXVd+9oK6v8Hk -# 9UCnbHOuiwwRRwDCkmmKj5Vh8i58aPuZ5dwZBhYDxSavwroC6j4mWPwh4VLqVK8q -# GpCmZ0HMAwao85Aq3U7DdlfF6Eru8CKKbdmIAuUzQrnjqTSxmvF1k+CmbPs7zD2A -# cu7JkBB7MIIHcTCCBVmgAwIBAgITMwAAABXF52ueAptJmQAAAAAAFTANBgkqhkiG -# 9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAO -# BgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEy -# MDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIw -# MTAwHhcNMjEwOTMwMTgyMjI1WhcNMzAwOTMwMTgzMjI1WjB8MQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBQQ0EgMjAxMDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB -# AOThpkzntHIhC3miy9ckeb0O1YLT/e6cBwfSqWxOdcjKNVf2AX9sSuDivbk+F2Az -# /1xPx2b3lVNxWuJ+Slr+uDZnhUYjDLWNE893MsAQGOhgfWpSg0S3po5GawcU88V2 -# 9YZQ3MFEyHFcUTE3oAo4bo3t1w/YJlN8OWECesSq/XJprx2rrPY2vjUmZNqYO7oa -# ezOtgFt+jBAcnVL+tuhiJdxqD89d9P6OU8/W7IVWTe/dvI2k45GPsjksUZzpcGkN -# yjYtcI4xyDUoveO0hyTD4MmPfrVUj9z6BVWYbWg7mka97aSueik3rMvrg0XnRm7K -# MtXAhjBcTyziYrLNueKNiOSWrAFKu75xqRdbZ2De+JKRHh09/SDPc31BmkZ1zcRf -# NN0Sidb9pSB9fvzZnkXftnIv231fgLrbqn427DZM9ituqBJR6L8FA6PRc6ZNN3SU -# HDSCD/AQ8rdHGO2n6Jl8P0zbr17C89XYcz1DTsEzOUyOArxCaC4Q6oRRRuLRvWoY -# WmEBc8pnol7XKHYC4jMYctenIPDC+hIK12NvDMk2ZItboKaDIV1fMHSRlJTYuVD5 -# C4lh8zYGNRiER9vcG9H9stQcxWv2XFJRXRLbJbqvUAV6bMURHXLvjflSxIUXk8A8 -# FdsaN8cIFRg/eKtFtvUeh17aj54WcmnGrnu3tz5q4i6tAgMBAAGjggHdMIIB2TAS -# BgkrBgEEAYI3FQEEBQIDAQABMCMGCSsGAQQBgjcVAgQWBBQqp1L+ZMSavoKRPEY1 -# Kc8Q/y8E7jAdBgNVHQ4EFgQUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXAYDVR0gBFUw -# UzBRBgwrBgEEAYI3TIN9AQEwQTA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNy -# b3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRtMBMGA1UdJQQMMAoG -# CCsGAQUFBwMIMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIB -# hjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP6KJcYmjRPZSQW9fO -# mhjEMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9w -# a2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNybDBaBggr -# BgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0LmNv -# bS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0MA0GCSqGSIb3 -# DQEBCwUAA4ICAQCdVX38Kq3hLB9nATEkW+Geckv8qW/qXBS2Pk5HZHixBpOXPTEz -# tTnXwnE2P9pkbHzQdTltuw8x5MKP+2zRoZQYIu7pZmc6U03dmLq2HnjYNi6cqYJW -# AAOwBb6J6Gngugnue99qb74py27YP0h1AdkY3m2CDPVtI1TkeFN1JFe53Z/zjj3G -# 82jfZfakVqr3lbYoVSfQJL1AoL8ZthISEV09J+BAljis9/kpicO8F7BUhUKz/Aye -# ixmJ5/ALaoHCgRlCGVJ1ijbCHcNhcy4sa3tuPywJeBTpkbKpW99Jo3QMvOyRgNI9 -# 5ko+ZjtPu4b6MhrZlvSP9pEB9s7GdP32THJvEKt1MMU0sHrYUP4KWN1APMdUbZ1j -# dEgssU5HLcEUBHG/ZPkkvnNtyo4JvbMBV0lUZNlz138eW0QBjloZkWsNn6Qo3GcZ -# KCS6OEuabvshVGtqRRFHqfG3rsjoiV5PndLQTHa1V1QJsWkBRH58oWFsc/4Ku+xB -# Zj1p/cvBQUl+fpO+y/g75LcVv7TOPqUxUYS8vwLBgqJ7Fx0ViY1w/ue10CgaiQuP -# Ntq6TPmb/wrpNPgkNWcr4A245oyZ1uEi6vAnQj0llOZ0dFtq0Z4+7X6gMTN9vMvp -# e784cETRkPHIqzqKOghif9lwY1NNje6CbaUFEMFxBmoQtB1VM1izoXBm8qGCA00w -# ggI1AgEBMIH5oYHRpIHOMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGlu -# Z3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv -# cmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScw -# JQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTIwMC0wNUUwLUQ5NDcxJTAjBgNVBAMT -# HE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiIwoBATAHBgUrDgMCGgMVALNy -# BOcZqxLB792u75w97U0X+/BDoIGDMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# UENBIDIwMTAwDQYJKoZIhvcNAQELBQACBQDrKY+fMCIYDzIwMjUwMTA4MjM1ODIz -# WhgPMjAyNTAxMDkyMzU4MjNaMHQwOgYKKwYBBAGEWQoEATEsMCowCgIFAOspj58C -# AQAwBwIBAAICCowwBwIBAAICE0wwCgIFAOsq4R8CAQAwNgYKKwYBBAGEWQoEAjEo -# MCYwDAYKKwYBBAGEWQoDAqAKMAgCAQACAwehIKEKMAgCAQACAwGGoDANBgkqhkiG -# 9w0BAQsFAAOCAQEARm0d77sDdK+Bqg3rqdpFmlOenvfBFxGzx0wFPf9zw9hvBfq/ -# EY/IG/WpJ/Jw/J/08M9f9PKnzD7w/9qeeHb2426Zu22WM7fxgY3CLchQb1ACW0NK -# +iCUftBwmbUqK5kuYDMUvYEwPtwD3AIdHvyNlHgse3oPWg6FQrA8ttht1lY+QvGO -# 19OqpeZwzGhAW/O1kGXarKG6rn1qQhGuR3bBKyTvdsujZiVpKwSU0wVMjI+ukv78 -# 9qachfRelJF1bDCInE0mzQxxClHrn9OZ9u/Vnu7QMyUdBYk7JdCXVtECo4y2KynF -# /fz1xueljgsuRALveftvFBWbwabi5hV44504MzGCBA0wggQJAgEBMIGTMHwxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv -# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB5y6PL5MLTxvpAAEAAAHnMA0G -# CWCGSAFlAwQCAQUAoIIBSjAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJ -# KoZIhvcNAQkEMSIEIIZX/FUvXiNbINs5u/kh0fqbsDchKF1hioi+bvU+HGFYMIH6 -# BgsqhkiG9w0BCRACLzGB6jCB5zCB5DCBvQQg5TZdDXZqhv0N4MVcz1QUd4RfvgW/ -# QAG9AwbuoLnWc60wgZgwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MAITMwAAAecujy+TC08b6QABAAAB5zAiBCBEm+MnX6BUaw2hoO31T8VOQURXR1mD -# tTiPuzpaNaxqQTANBgkqhkiG9w0BAQsFAASCAgBews9oufEPazqt0EzJChqw/s4w -# ydX6moKL9sZr979ineeCHC3pY//7oxmCLxcJg00KBmEGhRv3wvx5m9qYeKgVhyKw -# sW5Nm0pqmNfKwUcNq/6xUB86UWiHOp5XN3B78HkjrT7IEMc9OA2gbRwGZl9nwLyZ -# /5myqnfj3GTfM6OVW+/bZBxHLQVFEWWDKSLpyIoFMyiTUbipXnrQpkbHgmHtAYxJ -# JhGr6I65aoRJKzHZzCkeB9zX/OMIFTcs3k8h9gjNIdgyG3xmyTG9IzeXuGQhO/BV -# vk88pV/btLDG6HF9QSGI95pOCvyfoG/ySV64L5NascO5yRX6DiwN2QPm1XZzE2zI -# D3Ypm8CrMG5lLwqSYuY/jRrb+pUdre7u61nuasWUWV13iepOjy8dF/wMOucfd8m3 -# 5s93Zb0ThTo6RselEpQOd8Qnxjqoq4DO137VbhCxHzgnY23G/jS+pfCuYSX0jId9 -# RXWO59DknoV01R6u1a9bcNuUbwOXU8k6Iwt203tLmXLrFiTN1JqcDoA0zpB1qV2y -# XIhlV7jY/LMe0IZdwGkkMyAe93DSgNofTjTotiDLLcI3dn5yIepxjGF0P1fUNQuM -# eAVMPxi+ne47AJm4NixZWBP48Qi2Py6mFjs8FMYTL5gVwYWWMLB7JG1lUQqWKoDG -# rFnouitaw1wRQR0WhA== -# SIG # End signature block diff --git a/Modules/Az.Storage/8.1.0/Storage.Autorest/utils/Unprotect-SecureString.ps1 b/Modules/Az.Storage/8.1.0/Storage.Autorest/utils/Unprotect-SecureString.ps1 deleted file mode 100644 index f186085d93b0..000000000000 --- a/Modules/Az.Storage/8.1.0/Storage.Autorest/utils/Unprotect-SecureString.ps1 +++ /dev/null @@ -1,233 +0,0 @@ -#This script converts securestring to plaintext - -param( - [Parameter(Mandatory, ValueFromPipeline)] - [System.Security.SecureString] - ${SecureString} -) - -$ssPtr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($SecureString) -try { - $plaintext = [System.Runtime.InteropServices.Marshal]::PtrToStringBSTR($ssPtr) -} finally { - [System.Runtime.InteropServices.Marshal]::ZeroFreeBSTR($ssPtr) -} - -return $plaintext -# SIG # Begin signature block -# MIIoOQYJKoZIhvcNAQcCoIIoKjCCKCYCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDT7ZbNoY98P1cW -# CLQEXghewcRRqpuzw+uOgG2nbQ8aHaCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIAmR -# ZNAgxcDFKH97A6YERhvKrSJCqORTlbGk5c1WcUAXMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAfPtlhlRy2E3hutbUEkAOD+7dk7c/QftuRCG3 -# JtEcBxyGQG4SFKjdNfyGA9mU9bcQG7EDyKsTDGaeSxfO20CGY+ge345SXSbS20VD -# E66lqx8no+vYNPDTtYfEUOLzHeGWnWo0iAn0H4j7fwhbL/2eq4mpGdj94cSTUh3g -# ZaXTKsqAy8inZDZCoyX4TMHjuXX+SJU1PLHCt2x79KcDFqoOoUYWlA3GiajtQKS1 -# VP/3aezEpYq7aGFK5aHo/hUQSnEeY/Yr9Os3Rx9lz7ztyn7NVcTQK8JUAOuoR3/S -# mWmUoeRc3k0XBiHZppIi5m9oIevwf4WRMSZhcSx0GNbTicgIy6GCF5QwgheQBgor -# BgEEAYI3AwMBMYIXgDCCF3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFSBgsqhkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCDnI7XkFqZmx9eRquXRsqCafUn275vbpU6+ -# eoCsY2oCggIGZ1r0VelAGBMyMDI1MDEwOTA2Mzc0NC45MzVaMASAAgH0oIHRpIHO -# MIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQL -# ExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxk -# IFRTUyBFU046ODkwMC0wNUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1l -# LVN0YW1wIFNlcnZpY2WgghHqMIIHIDCCBQigAwIBAgITMwAAAe3hX8vV96VdcwAB -# AAAB7TANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDAeFw0yMzEyMDYxODQ1NDFaFw0yNTAzMDUxODQ1NDFaMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046ODkwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Uw -# ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCoMMJskrrqapycLxPC1H7z -# D7g88NpbEaQ6SjcTIRbzCVyYQNsz8TaL1pqFTEAPL1X7ojL4/EaEW+UjNqZs/ayM -# yW4YIpFPZP2x4FBMVCddseF2i+aMMjDHi0LcTQZxM2s3mFMrCZAWSfLYXYDIimFB -# z8j0oLWGy3VgLmBTKM4xLqv7DZUz8B2SoAmbEtp62ngSl0hOoN73SFwE+Y24SvGQ -# MWhykpG+vXDwcpWvwDe+TgnrLR7ATRFXN5JS26dm2yy6SYFMRYnME3dMHCQ/UQIQ -# QNC8nLmIvdKkAoWEMXtJsGEo3QrM2S2SBv4PpHRzRukzTtP+UAceGxM9JyrwUQP5 -# OCEmW6YchEyRDSwP4hU9f7B0Ayh14Pw9vJo7jewNjeMPIkmneyLSi0ruv2ox/xRG -# tcJ9yBNC5BaRktjz7stPaojR+PDA2fuBtCo8xKlkt53mUb7AY+CZHHqhLm76pdMF -# 6BHv2TvwlVBeQRN22XjaVVRwCgjgJnNewt7PejcrpUn0qHLgLq+1BN1DzYukWkTr -# 7wT0zl0iXr+NtqUkWSOnWRfe8N21tB6uv3VkW8nFdChtbbZZz24peLtJEZuNrN8X -# f9PTPMzZXDJBI1EciR/91QcGoZFmVbFVb2rUIAs01+ZkewvbhmGVDefX9oZG4/K4 -# gGUsTvTW+r1JZMxUT2MwqQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFM4b8Oz33hAq -# BEfKlAZf0NKh4CIZMB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8G -# A1UdHwRYMFYwVKBSoFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMv -# Y3JsL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBs -# BggrBgEFBQcBAQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0 -# LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUy -# MDIwMTAoMSkuY3J0MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUH -# AwgwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4ICAQCd1gK2Rd+eGL0e -# Hi+iE6/qDY8sbbsO4emancp6KPN+xq5ZAatiBR4jmRRhm+9Vik0Fo0DLWi/N28bF -# I7dXYw09p3vCipbjy4Eoifm0Nud7/4U30i9+7RvW7XOQ3rx37+U7vq9lk6yYpGCN -# p0jlJ188/CuRPgqJnfq5EdeafH2AoG46hKWTeB7DuXasGt6spJOenGedSre34MWZ -# qeTIQ0raOItZnFuGDy4+xoD1qRz2QW+u2gCHaG8AQjhYUM4uTi9t6kttj6c7Xamr -# 2zrWuceDhz7sKLttLTJ7ws5YrA2I8cTlbMAf2KW0GVjKbYGd+LZGduEK7/7fs4GU -# kMqc51FsNdG1n+zgc7zHu2oGGeCBg4s8ZR0ZFyx7jsgm9sSFCKQ5CsbAvlr/60Nd -# k5TeMR8Js2kNUicu2CqZ03833TsvTgk7iD1KLgfS16HEvjN6m4VKJKgjJ7OJJzab -# tS4JQgUnJrIZfyosk4D18rZni9pUwN03WgTmd10WTwiZOu4g8Un6iKcPMY/iFqTu -# 4ntkzFUxBBpbFG6k1CINZmoirEWmCtG3lyZ2IddmjtIefTkIvGWb4Jxzz7l2m/E2 -# kGOixDJHsahZVmwsoNvhy5ku/inU++dXHzw+hlvqTSFT89rIFVhcmsWPDJPNRSSp -# MhoJ33V2Za/lkKcbkUM0SbQgS9qsdzCCB3EwggVZoAMCAQICEzMAAAAVxedrngKb -# SZkAAAAAABUwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQI -# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv -# ZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmlj -# YXRlIEF1dGhvcml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIy -# NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT -# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE -# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXI -# yjVX9gF/bErg4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjo -# YH1qUoNEt6aORmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1y -# aa8dq6z2Nr41JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v -# 3byNpOORj7I5LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pG -# ve2krnopN6zL64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viS -# kR4dPf0gz3N9QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYr -# bqgSUei/BQOj0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlM -# jgK8QmguEOqEUUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSL -# W6CmgyFdXzB0kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AF -# emzFER1y7435UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIu -# rQIDAQABo4IB3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIE -# FgQUKqdS/mTEmr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWn -# G1M1GelyMFwGA1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEW -# M2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5 -# Lmh0bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBi -# AEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV -# 9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3Js -# Lm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAx -# MC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2 -# LTIzLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv -# 6lwUtj5OR2R4sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZn -# OlNN3Zi6th542DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1 -# bSNU5HhTdSRXud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4 -# rPf5KYnDvBewVIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU -# 6ZGyqVvfSaN0DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDF -# NLB62FD+CljdQDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/ -# HltEAY5aGZFrDZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdU -# CbFpAUR+fKFhbHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKi -# excdFYmNcP7ntdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTm -# dHRbatGePu1+oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZq -# ELQdVTNYs6FwZvKhggNNMIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMx -# EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT -# FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJp -# Y2EgT3BlcmF0aW9uczEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjg5MDAtMDVF -# MC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMK -# AQEwBwYFKw4DAhoDFQDuHayKTCaYsYxJh+oWTx6uVPFw+aCBgzCBgKR+MHwxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv -# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymygDAi -# GA8yMDI1MDEwOTAyMjcxMloYDzIwMjUwMTEwMDIyNzEyWjB0MDoGCisGAQQBhFkK -# BAExLDAqMAoCBQDrKbKAAgEAMAcCAQACAhbZMAcCAQACAhMSMAoCBQDrKwQAAgEA -# MDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAI -# AgEAAgMBhqAwDQYJKoZIhvcNAQELBQADggEBACn1b5KnkJiAf9A6R/SjvtbOrGdu -# JWnWonsXKPptDkaQJ/jqh8hZIma3W7JHrYr2Jyv4AXnt4l5fkmspdaMCoq6KGLho -# CdhGggzU70J4s1ohAeSnauOqdS3yV5ddSglwd5dQi7wDyB7Vss6L9hZpZgoljHE+ -# 8LXELYRPEXTUNdh0t/TalsRYXondvormVffUkyXY6nqZlOnUZq26qmr8DCj6dmWc -# cZ+NRtVCuFswqT17sqnw5haDIuCA20MgcRAUAfBOufvyHjb8K/HM76Hm0dtK0j/q -# E0g6Mum/F0YyC9SyYuzJk8mydlwOA4GkkW8gdhmrg7l7SYYRVzpIOeqXVFsxggQN -# MIIECQIBATCBkzB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ -# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u -# MSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAe3h -# X8vV96VdcwABAAAB7TANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0G -# CyqGSIb3DQEJEAEEMC8GCSqGSIb3DQEJBDEiBCAlDRlJWdI5GuiftyJi+gDtKruZ -# qEWEfY8tPHfV0pTRgjCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EII0uDWg0 -# CFseKxK3A16l1wrIwrsSDrXZ6xSf0F4xbMo5MIGYMIGApH4wfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTACEzMAAAHt4V/L1felXXMAAQAAAe0wIgQgHZJuYFot -# PXySbWtoYQzcjhOI+GdzM2vjq7x+59R0CtQwDQYJKoZIhvcNAQELBQAEggIAZIrQ -# Fu33o8czIck9WXTy7f+Oa+7CJTD7KtQfnM3YL3vgjBt7mopEGazCoqhoa0bWnzr0 -# YkF3ck/7sGUyROa1TQ0/5X+mCJ5yFhlUVdglcq+ARKZBTvXUYljFXfOdP+DqtPUg -# nFG8l6/JGSNYuCFQuQV6EJh0/Jcjt1jFkHH3PMNlzkryQA23TvJe/WOevn3LfGhv -# uwMJi27rNlvCmF63p3HNJZpJYY8ti/aKNgxnydU5SC87mtuhGotAuKAFYO7SNdjx -# fgTmZx+WfObfkvc9qWAP83Dm6nJQsLqUiYnockovlNDEL56XneV6LGQTy54fZ0t3 -# ETd6xpWXjE8+UAz2iASScHFOCBbkOnRgwLTzrByJPiNeTI4Kbh39Ctm1b6PUDGP9 -# iLDLeehaFAH7sbH0ccOk00pXdNCEL7eDmeXTtu6kMbw/L1/rT10n8X15VRa8Mshy -# 503Fd9hjmkcRvvs9MPL2Z3njc3xuQ7HOg7KblPOqBhngHhHs+dIeTrX9qP1gX1XX -# TcrVBzNqVO2C8Swur7/a2m4W8LuXCpqslYzBwWJgaykQ/tqOO13M9rnx4EXGrjSZ -# 4q4gvNI7FsJb0WsbIIBeF+jwktYBoEfUV9Pv5j0OKdcrcrwfCdJ5VJ2latZCoCaq -# TjHwobcIgvCSPH9GiXZgWG2uSWRinDsCc60jJkI= -# SIG # End signature block diff --git a/Modules/Az.Storage/8.1.0/Storage.Management.format.ps1xml b/Modules/Az.Storage/8.1.0/Storage.Management.format.ps1xml deleted file mode 100644 index 1682493cf2a7..000000000000 --- a/Modules/Az.Storage/8.1.0/Storage.Management.format.ps1xml +++ /dev/null @@ -1,1420 +0,0 @@ - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - - Left - StorageAccountName - - - Left - ResourceGroupName - - - Left - PrimaryLocation - - - Left - $_.Sku.Name - - - Left - Kind - - - Left - AccessTier - - - Left - CreationTime - - - Left - ProvisioningState - - - Left - EnableHttpsTrafficOnly - - - Left - LargeFileSharesState - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - - - - - - Bypass - - - - DefaultAction - - - - if (($_.ipRules -ne $null) -and ($_.ipRules.Count -ne 0)) {"[" + $_.ipRules[0].IPAddressOrRange + ",...]"} else {$null} - - - - if ($_.virtualNetworkRules[0] -ne $null) {"[" + $_.virtualNetworkRules[0].VirtualNetworkResourceId + ",...]"} else {$null} - - - - if ($_.ResourceAccessRules[0] -ne $null) {"[(" + $_.ResourceAccessRules[0].TenantId + "," + $_.ResourceAccessRules[0].ResourceId + "),...]"} else {$null} - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - $_.ResourceGroupName + ", StorageAccountName: " + $_.StorageAccountName - - - - - - - Left - - - - Left - 20 - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - $_.Name - - - $_.PublicAccess - - - $_.LastModifiedTime.ToUniversalTime().ToString("u") - - - $_.HasLegalHold - - - $_.HasImmutabilityPolicy - - - $_.Deleted - - - $_.Version - - - $_.ImmutableStorageWithVersioning.Enabled - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicy - - - - - - - ResourceGroupName - - - - StorageAccountName - - - - Id - - - - Type - - - - LastModifiedTime - - - - ConvertTo-Json $_.Rules -Depth 10 - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - - - - - - $_.BaseBlob.TierToCool.DaysAfterModificationGreaterThan - - - - $_.BaseBlob.TierToCool.DaysAfterLastAccessTimeGreaterThan - - - - $_.BaseBlob.TierToCool.DaysAfterCreationGreaterThan - - - - $_.BaseBlob.EnableAutoTierToHotFromCool - - - - $_.BaseBlob.TierToArchive.DaysAfterModificationGreaterThan - - - - $_.BaseBlob.TierToArchive.DaysAfterLastAccessTimeGreaterThan - - - - $_.BaseBlob.TierToArchive.DaysAfterCreationGreaterThan - - - - $_.BaseBlob.TierToArchive.DaysAfterLastTierChangeGreaterThan - - - - $_.BaseBlob.Delete.DaysAfterModificationGreaterThan - - - - $_.BaseBlob.Delete.DaysAfterLastAccessTimeGreaterThan - - - - $_.BaseBlob.Delete.DaysAfterCreationGreaterThan - - - - $_.BaseBlob.TierToCold.DaysAfterModificationGreaterThan - - - - $_.BaseBlob.TierToCold.DaysAfterLastAccessTimeGreaterThan - - - - $_.BaseBlob.TierToCold.DaysAfterCreationGreaterThan - - - - $_.BaseBlob.TierToHot.DaysAfterModificationGreaterThan - - - - $_.BaseBlob.TierToHot.DaysAfterLastAccessTimeGreaterThan - - - - $_.BaseBlob.TierToHot.DaysAfterCreationGreaterThan - - - - $_.Snapshot.TierToCool.DaysAfterCreationGreaterThan - - - - $_.Snapshot.TierToArchive.DaysAfterCreationGreaterThan - - - - $_.Snapshot.TierToArchive.DaysAfterLastTierChangeGreaterThan - - - - $_.Snapshot.Delete.DaysAfterCreationGreaterThan - - - - $_.Snapshot.TierToCold.DaysAfterCreationGreaterThan - - - - $_.Snapshot.TierToHot.DaysAfterCreationGreaterThan - - - - $_.Version.TierToCool.DaysAfterCreationGreaterThan - - - - $_.Version.TierToArchive.DaysAfterCreationGreaterThan - - - - $_.Version.TierToArchive.DaysAfterLastTierChangeGreaterThan - - - - $_.Version.Delete.DaysAfterCreationGreaterThan - - - - $_.Version.TierToCold.DaysAfterCreationGreaterThan - - - - $_.Version.TierToHot.DaysAfterCreationGreaterThan - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyRule - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyRule - - - - - - - Enabled - - - - Name - - - - ConvertTo-Json $_.Definition -Depth 10 - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSFileServiceProperties - - Microsoft.Azure.Commands.Management.Storage.Models.PSFileServiceProperties - - - - - - - StorageAccountName - - - - ResourceGroupName - - - - - $_.ShareDeleteRetentionPolicy.Enabled - - - - $_.ShareDeleteRetentionPolicy.Days - - - - $_.ProtocolSettings.Smb.Multichannel.Enabled - - - - $_.ProtocolSettings.Smb.Versions - - - - $_.ProtocolSettings.Smb.AuthenticationMethods - - - - $_.ProtocolSettings.Smb.KerberosTicketEncryption - - - - $_.ProtocolSettings.Smb.ChannelEncryption - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobServiceProperties - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobServiceProperties - - - - - - - StorageAccountName - - - - ResourceGroupName - - - - DefaultServiceVersion - - - - - $_.DeleteRetentionPolicy.Enabled - - - - $_.DeleteRetentionPolicy.Days - - - - $_.DeleteRetentionPolicy.AllowPermanentDelete - - - - $_.ContainerDeleteRetentionPolicy.Enabled - - - - $_.ContainerDeleteRetentionPolicy.Days - - - - $_.RestorePolicy.Enabled - - - - $_.RestorePolicy.Days - - - - $_.RestorePolicy.MinRestoreTime - - - - $_.ChangeFeed.Enabled - - - - $_.ChangeFeed.RetentionInDays - - - IsVersioningEnabled - - - - - $_.LastAccessTimeTrackingPolicy.Enable - - - - $_.LastAccessTimeTrackingPolicy.Name - - - - $_.LastAccessTimeTrackingPolicy.TrackingGranularityInDays - - - - $_.LastAccessTimeTrackingPolicy.BlobType - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - - $_.ResourceGroupName + ", StorageAccountName: " + $_.StorageAccountName - - - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - - Left - Name - - - Left - QuotaGiB - - - Left - EnabledProtocols - - - Left - AccessTier - - - Left - Deleted - - - Left - Version - - - Left - ShareUsageBytes - - - Left - $_.SnapshotTime.ToUniversalTime().ToString("s")+"Z" - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy - - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - - Left - ResourceGroupName - - - Left - StorageAccountName - - - Left - PolicyId - - - Left - EnabledTime - - - Left - SourceAccount - - - Left - DestinationAccount - - - Left - if (($_.Rules -ne $null) -and ($_.Rules.Count -ne 0)) { if ($_.Rules.Count -eq 1) {'[' + $_.Rules[0].RuleId + ']'} else {'[' + $_.Rules[0].RuleId + ',...]'}} else {$null} - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicyRule - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicyRule - - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - - Left - RuleId - - - Left - SourceContainer - - - Left - DestinationContainer - - - Left - '{' + ($_.Filters.PrefixMatch -join ', ') + '}' - - - Left - $_.Filters.MinCreationTime.ToUniversalTime().ToString("s")+"Z" - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobRestoreStatus - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobRestoreStatus - - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - - Left - Status - - - Left - RestoreId - - - Left - FailureReason - - - Left - $_.Parameters.TimeToRestore.ToString("o") - - - Left - if ($_.Parameters.BlobRanges[0] -ne $null) {if ($_.Parameters.BlobRanges[1] -ne $null) {'["' + $_.Parameters.BlobRanges[0].StartRange + '" -> "' + $_.Parameters.BlobRanges[0].EndRange + '",...]'} else {'["' + $_.Parameters.BlobRanges[0].StartRange + '" -> "' + $_.Parameters.BlobRanges[0].EndRange + '"]'}} else {$null} - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSRestorePolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSRestorePolicy - - - - - Left - - - - Left - - - - Left - - - - - - - - Left - Enabled - - - Left - Days - - - Left - MinRestoreTime - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSEncryptionScope - - Microsoft.Azure.Commands.Management.Storage.Models.PSEncryptionScope - - - $_.ResourceGroupName + ", StorageAccountName: " + $_.StorageAccountName - - - - - - - Left - - - - Left - 20 - - - - Left - - - - Left - - - - Left - - - - - - - Name - - - State - - - Source - - - $_.KeyVaultProperties.keyUri - - - RequireInfrastructureEncryption - - - - - - - - Microsoft.Azure.Management.Storage.Models.Endpoints - - Microsoft.Azure.Management.Storage.Models.Endpoints - - - - - - - Blob - - - - Queue - - - - Table - - - - File - - - - Web - - - - Dfs - - - - ConvertTo-Json $_.MicrosoftEndpoints -Compress - - - - ConvertTo-Json $_.InternetEndpoints -Compress - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicyRule - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicyRule - - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - - Left - Name - - - Left - Enabled - - - Left - Destination - - - Left - $_.Definition.ObjectType - - - Left - $_.Definition.Format - - - Left - $_.Definition.Schedule - - - Left - $_.Definition.Filters.IncludeSnapshots - - - Left - $_.Definition.Filters.IncludeBlobVersions - - - Left - $_.Definition.Filters.IncludeDeleted - - - Left - $_.Definition.Filters.BlobTypes - - - Left - $_.Definition.Filters.PrefixMatch - - - Left - $_.Definition.Filters.ExcludePrefix - - - Left - $_.Definition.SchemaFields - - - Left - if ($_.Definition.Filters.CreationTime.LastNDays -ne $null) {"LastNDays=$($_.Definition.Filters.CreationTime.LastNDays)"} - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicy - - - - - - - StorageAccountName - - - - ResourceGroupName - - - - Name - - - - - Id - - - - Type - - - - LastModifiedTime - - - - $_.Enabled - - - - $_.Rules - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUser - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUser - - - $_.ResourceGroupName + ", StorageAccountName: " + $_.StorageAccountName - - - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - - Left - Name - - - Left - Sid - - - Left - HomeDirectory - - - Left - HasSharedKey - - - Left - HasSshKey - - - Left - HasSshPassword - - - Left - - if (($_.PermissionScopes -ne $null) -and ($_.PermissionScopes.Count -ne 0)) {if ($_.PermissionScopes.Count -eq 1) {"[" + $_.PermissionScopes[0].ResourceName + "]"} else {"[" + $_.PermissionScopes[0].ResourceName + ",...]"}} else {$null} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/Az.Storage/8.1.0/Storage.format.ps1xml b/Modules/Az.Storage/8.1.0/Storage.format.ps1xml deleted file mode 100644 index bee20e64b4a7..000000000000 --- a/Modules/Az.Storage/8.1.0/Storage.format.ps1xml +++ /dev/null @@ -1,837 +0,0 @@ - - - - - Microsoft.Azure.Storage.File.CloudFileShare - - Microsoft.Azure.Storage.File.CloudFileShare - - - $_.ServiceClient.BaseUri - - - - - - - 63 - Left - - - - Left - - - - Left - - - - Left - - - - - - - $_.Name - - - $_.Properties.LastModified - - - $_.IsSnapshot - - - $_.SnapshotTime - - - - - - - - Microsoft.Azure.Storage.File.CloudFileItems - - Microsoft.Azure.Storage.File.CloudFile - Microsoft.Azure.Storage.File.CloudFileDirectory - - - $_.Parent.SnapshotQualifiedUri - - - - - - - 10 - Left - - - - 15 - Right - - - - Left - - - - - - - $_.DirectoryTag - - - $_.Properties.Length - - - $_.Name - - - - - - - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - $_.ServiceClient.BaseUri - - - - - - - 20 - Left - - - - 60 - Left - - - - Left - - - - - - - $_.Name - - - $_.Uri - - - $_.Properties.LastModified.UtcDateTime.ToString("u") - - - - - - - - Microsoft.Azure.Storage.Blob.ICloudBlob - - Microsoft.Azure.Storage.Blob.ICloudBlob - Microsoft.Azure.Storage.Blob.CloudBlockBlob - Microsoft.Azure.Storage.Blob.CloudPageBlob - Microsoft.Azure.Storage.Blob.CloudAppendBlob - - - $_.Container.Uri - - - - - - - 20 - Left - - - - 15 - Left - - - - Left - 15 - - - - Left - 10 - - - - 10 - Left - - - - 30 - Left - - - - 20 - Left - - - - Left - 10 - - - - 20 - Left - - - - - - - $_.Name - - - $_.BlobType - - - $_.Properties.Length - - - $_.IsDeleted - - - $_.Properties.RemainingDaysBeforePermanentDelete - - - $_.Properties.ContentType - - - $_.Properties.LastModified.UtcDateTime.ToString("u") - - - $_.ICloudBlob.Properties.StandardBlobTier - - - $_.SnapshotTime.UtcDateTime.ToString("u") - - - - - - - - Microsoft.WindowsAzure.Storage.Table.CloudTable - - Microsoft.WindowsAzure.Storage.Table.CloudTable - - - $_.ServiceClient.BaseUri - - - - - - - 40 - Left - - - - 40 - Left - - - - - - - $_.Name - - - $_.Uri - - - - - - - - Azure.Storage.Queues.QueueClient - - Azure.Storage.Queues.QueueClient - - - $_.QueueClient.AccountName - - - - - - - 30 - Left - - - - 20 - Left - - - - 40 - Left - - - - - - - $_.Name - - - - if (!$_.ApproximateMessageCount) - { - ""; - } - else - { - $_.ApproximateMessageCount - } - - - - $_.Uri - - - - - - - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.AzureStorageContext - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.AzureStorageContext - - - - - - - - StorageAccountName - - - - BlobEndPoint - - - - TableEndPoint - - - - QueueEndPoint - - - - - - - - Microsoft.Azure.Storage.Shared.Protocol.ServiceProperties - - Microsoft.Azure.Storage.Shared.Protocol.ServiceProperties - - - - - - - - $_.Logging.Version - - - - $_.Logging.LoggingOperations - - - - $_.Logging.RetentionDays - - - - $_.HourMetrics.Version - - - - $_.HourMetrics.MetricsLevel - - - - $_.HourMetrics.RetentionDays - - - - $_.MinuteMetrics.Version - - - - $_.MinuteMetrics.MetricsLevel - - - - $_.MinuteMetrics.RetentionDays - - - - $_.DeleteRetentionPolicy.Enabled - - - - $_.DeleteRetentionPolicy.RetentionDays - - - - $_.StaticWebsite.Enabled - - - - $_.StaticWebsite.IndexDocument - - - - $_.StaticWebsite.ErrorDocument404Path - - - $_.Cors - - - - - DefaultServiceVersion - - - - - - - - Microsoft.Azure.Storage.Shared.Protocol.LoggingProperties - - Microsoft.Azure.Storage.Shared.Protocol.LoggingProperties - - - - - - Left - 20 - - - - Left - 30 - - - - Left - 20 - - - - - - - $_.Version - - - $_.LoggingOperations - - - $_.RetentionDays - - - - - - - - Microsoft.Azure.Storage.Shared.Protocol.MetricsProperties - - Microsoft.Azure.Storage.Shared.Protocol.MetricsProperties - - - - - - Left - 20 - - - - Left - 30 - - - - Left - 20 - - - - - - - $_.Version - - - $_.MetricsLevel - - - $_.RetentionDays - - - - - - - - Microsoft.Azure.Storage.Blob.CloudBlobDirectory - - Microsoft.Azure.Storage.Blob.CloudBlobDirectory - - - $_.Container.Uri - - - - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - $_.Prefix - - - $_.PathProperties.Owner - - - $_.PathProperties.Group - - - $_.PathProperties.Permissions.ToSymbolicString() - - - $_.Properties.LastModified.UtcDateTime.ToString("u") - - - - - - - - Microsoft.Azure.Storage.Blob.PathPermissions - - Microsoft.Azure.Storage.Blob.PathPermissions - - - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - $_.Owner.ToSymbolicString() - - - $_.Group.ToSymbolicString() - - - $_.Other.ToSymbolicString() - - - StickyBit - - - ExtendedInfoInAcl - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/Az.Storage/8.1.0/Storage.generated.format.ps1xml b/Modules/Az.Storage/8.1.0/Storage.generated.format.ps1xml deleted file mode 100644 index e2481638999e..000000000000 --- a/Modules/Az.Storage/8.1.0/Storage.generated.format.ps1xml +++ /dev/null @@ -1,921 +0,0 @@ - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageTable - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageTable - - - - - Left - - - - Left - - - - - - - - Left - $_.Name - - - Left - $_.Uri - - - - - - - $_.CloudTable.ServiceClient.BaseUri - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageQueue - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageQueue - - - - - Left - - - - Left - - - - Left - - - - - - - - Left - $_.Name - - - Left - $_.Uri - - - Left - $_.ApproximateMessageCount - - - - - - - $_.QueueClient.AccountName - - - - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSSeriviceProperties - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSSeriviceProperties - - - - - - - $_.Logging.Version - - - - $_.Logging.LoggingOperations - - - - $_.Logging.RetentionDays - - - - $_.HourMetrics.Version - - - - $_.HourMetrics.MetricsLevel - - - - $_.HourMetrics.RetentionDays - - - - $_.MinuteMetrics.Version - - - - $_.MinuteMetrics.MetricsLevel - - - - $_.MinuteMetrics.RetentionDays - - - - $_.DeleteRetentionPolicy.Enabled - - - - $_.DeleteRetentionPolicy.RetentionDays - - - - - $_.StaticWebsite.Enabled - - - - $_.StaticWebsite.IndexDocument - - - - $_.StaticWebsite.ErrorDocument404Path - - - $_.Cors - - - - DefaultServiceVersion - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageContainer - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageContainer - - - - - Left - - 20 - - - Left - - 20 - - - Left - - 30 - - - Left - - 10 - - - Left - - 17 - - - - - - - Left - $_.Name - - - Left - PublicAccess - - - Left - LastModified - - - Left - IsDeleted - - - Left - VersionId - - - - - - - $_.BlobContainerClient.AccountName - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageBlob - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageBlob - - - - - Left - - 20 - - - Left - - 9 - - - Left - - 15 - - - Left - - 30 - - - Left - - 20 - - - Left - - 10 - - - Left - - 28 - - - Left - - 10 - - - Left - - 30 - - - - - - - Left - $_.Name - - - Left - if ($_.BlobType -ne "Unspecified") {$_.BlobType} - - - Left - if (($_.BlobType -ne "Unspecified") -or ($_.Length -ne 0 )) {$_.Length} - - - Left - ContentType - - - Left - $_.LastModified.UtcDateTime.ToString("u") - - - Left - $_.AccessTier - - - Left - $_.SnapshotTime.UtcDateTime.ToString("o") - - - Left - IsDeleted - - - Left - if ($_.IsLatestVersion){$_.VersionId + " *"} else {$_.VersionId} - - - - - - - $_.BlobBaseClient.AccountName + ", ContainerName: " + $_.BlobBaseClient.BlobContainerName - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFile - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFile - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFileDirectory - - - if ($_.ShareDirectoryClient -eq $null) {$_.ShareFileClient.AccountName + ", ShareName: " + $_.ShareFileClient.ShareName} else {$_.ShareDirectoryClient.AccountName + ", ShareName: " + $_.ShareDirectoryClient.ShareName} - - - - - - - 10 - Left - - - - 15 - Right - - - - Left - - - - - - - if ($_.ShareFileClient -eq $null) {"Directory"} else {"File"} - - - $_.Length - - - $_.Name - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFileShare - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFileShare - - - $_.Context.FileEndPoint - - - - - - Left - - - - Left - - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - $_.Name - - - $_.Quota - - - $_.LastModified.UtcDateTime.ToString("o") - - - $_.IsSnapshot - - - $_.SnapshotTime.UtcDateTime.ToString("o") - - - $_.IsDeleted - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - - - Left - - 20 - - - Left - - 12 - - - Left - - 15 - - - Left - - 20 - - - - Left - 12 - - - Left - - 20 - - - Left - - 20 - - - - - - - Left - Path - - - Left - IsDirectory - - - Left - if ($_.IsDirectory -eq $false) {$_.Length} - - - Left - $_.LastModified.UtcDateTime.ToString("u") - - - Left - $_.Permissions.ToSymbolicPermissions() - - - Left - Owner - - - Left - Group - - - - - - - if ($_.IsDirectory) {$_.Directory.FileSystemName} else {$_.File.FileSystemName} - - - - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSFileHandle - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSFileHandle - - - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - HandleId - - - Path - - - ClientIp - - - ClientPort - - - $_.OpenTime.UtcDateTime.ToString("u") - - - $_.LastReconnectTime.UtcDateTime.ToString("u") - - - FileId - - - ParentId - - - SessionId - - - ClientName - - - - - - - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry - - - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - DefaultScope - - - AccessControlType - - - EntityId - - - $_.GetSymbolicRolePermissions() - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2DeletedItem - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2DeletedItem - - - - - Left - - 20 - - - Left - - 20 - - - Left - - 20 - - - Left - - 22 - - - - - - - Left - Path - - - Left - DeletionId - - - Left - $_.DeletedOn.UtcDateTime.ToString("u") - - - Left - RemainingRetentionDays - - - - - - - $_.FileSystemName - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/Az.Storage/8.1.0/System.IO.Hashing.dll b/Modules/Az.Storage/8.1.0/System.IO.Hashing.dll deleted file mode 100644 index 122d5973b18b..000000000000 Binary files a/Modules/Az.Storage/8.1.0/System.IO.Hashing.dll and /dev/null differ diff --git a/Modules/AzBobbyTables/3.3.1/AzBobbyTables.PS.dll b/Modules/AzBobbyTables/3.3.1/AzBobbyTables.PS.dll deleted file mode 100644 index 7d9b64a3818b..000000000000 Binary files a/Modules/AzBobbyTables/3.3.1/AzBobbyTables.PS.dll and /dev/null differ diff --git a/Modules/AzBobbyTables/3.3.1/AzBobbyTables.PS.pdb b/Modules/AzBobbyTables/3.3.1/AzBobbyTables.PS.pdb deleted file mode 100644 index cb1c42199263..000000000000 Binary files a/Modules/AzBobbyTables/3.3.1/AzBobbyTables.PS.pdb and /dev/null differ diff --git a/Modules/AzBobbyTables/3.3.1/CHANGELOG.md b/Modules/AzBobbyTables/3.3.1/CHANGELOG.md deleted file mode 100644 index 8b9681a286b1..000000000000 --- a/Modules/AzBobbyTables/3.3.1/CHANGELOG.md +++ /dev/null @@ -1,62 +0,0 @@ -# Changelog for the module - -The format is based on and uses the types of changes according to [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [Unreleased] - -### Added - -- Added `-OperationType` parameter to `Add-AzDataTableEntity` and `Update-AzDataTableEntity` to support merge or replace operations [#81](https://github.com/PalmEmanuel/AzBobbyTables/pull/81) - -## [3.3.0] - 2024-10-18 - -### Added - -- Added command `Get-AzDataTable` to get the names of tables in a storage account [#77](https://github.com/PalmEmanuel/AzBobbyTables/issues/77) - -### Changed - -- Implemented TableServiceClient to support operations on tables in the storage account. - -## [3.2.1] - 2024-07-09 - -### Fixed - -- Fixed bug where empty lines were written to console. - -## [3.2.0] - 2024-03-21 - -### Added - -- ETag validation for Update- & Remove-AzDataTableEntity ([#58](https://github.com/PalmEmanuel/AzBobbyTables/issues/58)) - -### Fixed - -- Missing examples of Remove-AzDataTableEntity ([#62](https://github.com/PalmEmanuel/AzBobbyTables/issues/62)) - -## [3.1.3] - 2024-01-20 - -### Added - -- Added Sampler ([#48](https://github.com/PalmEmanuel/AzBobbyTables/issues/48)). -- Added support for user-assigned managed identities ([#54](https://github.com/PalmEmanuel/AzBobbyTables/issues/54)). - -## [3.1.2] - 2024-01-05 - -### Added - -- Help documentation for a DateTime problem caused by the SDK (#43). - -## 3.1.1 - 2023-05-03 - -[Unreleased]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.3.0...HEAD - -[3.3.0]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.2.1...v3.3.0 - -[3.2.1]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.2.0...v3.2.1 - -[3.2.0]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.1.3...v3.2.0 - -[3.1.3]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.1.2...v3.1.3 - -[3.1.2]: https://github.com/PalmEmanuel/AzBobbyTables/compare/d854153aca6c5cce35a123deb86653a0d3289b07...v3.1.2 diff --git a/Modules/AzBobbyTables/3.3.1/PSGetModuleInfo.xml b/Modules/AzBobbyTables/3.3.1/PSGetModuleInfo.xml deleted file mode 100644 index 2559d56021b4..000000000000 --- a/Modules/AzBobbyTables/3.3.1/PSGetModuleInfo.xml +++ /dev/null @@ -1,143 +0,0 @@ - - - - Microsoft.PowerShell.Commands.PSRepositoryItemInfo - System.Management.Automation.PSCustomObject - System.Object - - - AzBobbyTables - 3.3.1 - Module - A module for handling Azure Table Storage operations by wrapping the Azure Data Tables SDK. - Emanuel Palm - PalmEmanuel - (c) Emanuel Palm. All rights reserved. -
2024-10-19T09:03:27-04:00
- - - https://github.com/PalmEmanuel/AzBobbyTables/blob/main/LICENSE - https://github.com/PalmEmanuel/AzBobbyTables - - - - System.Object[] - System.Array - System.Object - - - azure - storage - table - cosmos - cosmosdb - data - PSModule - PSEdition_Core - - - - - System.Collections.Hashtable - System.Object - - - - RoleCapability - - - - - - - Workflow - - - - Function - - - - Command - - - - Add-AzDataTableEntity - Clear-AzDataTable - Get-AzDataTable - Get-AzDataTableEntity - Remove-AzDataTableEntity - Update-AzDataTableEntity - New-AzDataTableContext - Remove-AzDataTable - New-AzDataTable - - - - - DscResource - - - - Cmdlet - - - - Add-AzDataTableEntity - Clear-AzDataTable - Get-AzDataTable - Get-AzDataTableEntity - Remove-AzDataTableEntity - Update-AzDataTableEntity - New-AzDataTableContext - Remove-AzDataTable - New-AzDataTable - - - - - - - ## [3.3.1] - 2024-10-19_x000A__x000A_### Added_x000A__x000A_- Added `-OperationType` parameter to `Add-AzDataTableEntity` and `Update-AzDataTableEntity` to support merge or replace operations [#81](https://github.com/PalmEmanuel/AzBobbyTables/pull/81) - - - - - https://www.powershellgallery.com/api/v2 - PSGallery - NuGet - - - System.Management.Automation.PSCustomObject - System.Object - - - (c) Emanuel Palm. All rights reserved. - A module for handling Azure Table Storage operations by wrapping the Azure Data Tables SDK. - False - ## [3.3.1] - 2024-10-19_x000A__x000A_### Added_x000A__x000A_- Added `-OperationType` parameter to `Add-AzDataTableEntity` and `Update-AzDataTableEntity` to support merge or replace operations [#81](https://github.com/PalmEmanuel/AzBobbyTables/pull/81) - True - True - 16 - 20865 - 1478233 - 10/19/2024 9:03:27 AM -04:00 - 10/19/2024 9:03:27 AM -04:00 - 10/19/2024 4:20:00 PM -04:00 - azure storage table cosmos cosmosdb data PSModule PSEdition_Core PSCmdlet_Add-AzDataTableEntity PSCommand_Add-AzDataTableEntity PSCmdlet_Clear-AzDataTable PSCommand_Clear-AzDataTable PSCmdlet_Get-AzDataTable PSCommand_Get-AzDataTable PSCmdlet_Get-AzDataTableEntity PSCommand_Get-AzDataTableEntity PSCmdlet_Remove-AzDataTableEntity PSCommand_Remove-AzDataTableEntity PSCmdlet_Update-AzDataTableEntity PSCommand_Update-AzDataTableEntity PSCmdlet_New-AzDataTableContext PSCommand_New-AzDataTableContext PSCmdlet_Remove-AzDataTable PSCommand_Remove-AzDataTable PSCmdlet_New-AzDataTable PSCommand_New-AzDataTable PSIncludes_Cmdlet - False - 2024-10-19T16:20:00Z - 3.3.1 - Emanuel Palm - false - Module - AzBobbyTables.nuspec|dependencies\Azure.Data.Tables.dll|dependencies\Microsoft.Bcl.AsyncInterfaces.dll|dependencies\System.Memory.Data.dll|AzBobbyTables.PS.dll|dependencies\System.Text.Encodings.Web.dll|dependencies\Azure.Core.dll|dependencies\AzBobbyTables.Core.dll|LICENSE|dependencies\System.Security.Principal.Windows.dll|dependencies\Microsoft.VisualStudio.Validation.dll|dependencies\System.Runtime.CompilerServices.Unsafe.dll|CHANGELOG.md|dependencies\AzBobbyTables.Core.pdb|dependencies\Microsoft.VisualStudio.Threading.dll|dependencies\System.Text.Json.dll|AzBobbyTables.PS.pdb|dependencies\System.ClientModel.dll|dependencies\System.Linq.Async.dll|dependencies\System.Threading.Tasks.Extensions.dll|AzBobbyTables.psd1|dependencies\Microsoft.Win32.Registry.dll|dependencies\System.Numerics.Vectors.dll|dependencies\System.Buffers.dll|en-US\AzBobbyTables.PS.dll-Help.xml|dependencies\System.Memory.dll|dependencies\System.Diagnostics.DiagnosticSource.dll|dependencies\System.Security.AccessControl.dll - eead4f42-5080-4f83-8901-340c529a5a11 - 7.0 - pipe.how - - - C:\GitHub\CIPP Workspace\CIPP-API\Modules\AzBobbyTables\3.3.1 -
-
-
diff --git a/Modules/AzBobbyTables/3.3.1/dependencies/AzBobbyTables.Core.dll b/Modules/AzBobbyTables/3.3.1/dependencies/AzBobbyTables.Core.dll deleted file mode 100644 index ed1ae67e4b44..000000000000 Binary files a/Modules/AzBobbyTables/3.3.1/dependencies/AzBobbyTables.Core.dll and /dev/null differ diff --git a/Modules/AzBobbyTables/3.3.1/dependencies/AzBobbyTables.Core.pdb b/Modules/AzBobbyTables/3.3.1/dependencies/AzBobbyTables.Core.pdb deleted file mode 100644 index 00c402d71f90..000000000000 Binary files a/Modules/AzBobbyTables/3.3.1/dependencies/AzBobbyTables.Core.pdb and /dev/null differ diff --git a/Modules/AzBobbyTables/3.3.1/dependencies/Azure.Core.dll b/Modules/AzBobbyTables/3.3.1/dependencies/Azure.Core.dll deleted file mode 100644 index fb5b1ba52966..000000000000 Binary files a/Modules/AzBobbyTables/3.3.1/dependencies/Azure.Core.dll and /dev/null differ diff --git a/Modules/AzBobbyTables/3.3.1/dependencies/Azure.Data.Tables.dll b/Modules/AzBobbyTables/3.3.1/dependencies/Azure.Data.Tables.dll deleted file mode 100644 index 9527e455da9d..000000000000 Binary files a/Modules/AzBobbyTables/3.3.1/dependencies/Azure.Data.Tables.dll and /dev/null differ diff --git a/Modules/AzBobbyTables/3.3.1/dependencies/Microsoft.Bcl.AsyncInterfaces.dll b/Modules/AzBobbyTables/3.3.1/dependencies/Microsoft.Bcl.AsyncInterfaces.dll deleted file mode 100644 index 39fd1311f266..000000000000 Binary files a/Modules/AzBobbyTables/3.3.1/dependencies/Microsoft.Bcl.AsyncInterfaces.dll and /dev/null differ diff --git a/Modules/AzBobbyTables/3.3.1/dependencies/Microsoft.VisualStudio.Threading.dll b/Modules/AzBobbyTables/3.3.1/dependencies/Microsoft.VisualStudio.Threading.dll deleted file mode 100644 index 62814912b2cf..000000000000 Binary files a/Modules/AzBobbyTables/3.3.1/dependencies/Microsoft.VisualStudio.Threading.dll and /dev/null differ diff --git a/Modules/AzBobbyTables/3.3.1/dependencies/System.Buffers.dll b/Modules/AzBobbyTables/3.3.1/dependencies/System.Buffers.dll deleted file mode 100644 index c0970c078522..000000000000 Binary files a/Modules/AzBobbyTables/3.3.1/dependencies/System.Buffers.dll and /dev/null differ diff --git a/Modules/AzBobbyTables/3.3.1/dependencies/System.ClientModel.dll b/Modules/AzBobbyTables/3.3.1/dependencies/System.ClientModel.dll deleted file mode 100644 index 1363faf66562..000000000000 Binary files a/Modules/AzBobbyTables/3.3.1/dependencies/System.ClientModel.dll and /dev/null differ diff --git a/Modules/AzBobbyTables/3.3.1/dependencies/System.Linq.Async.dll b/Modules/AzBobbyTables/3.3.1/dependencies/System.Linq.Async.dll deleted file mode 100644 index a328d9d3087e..000000000000 Binary files a/Modules/AzBobbyTables/3.3.1/dependencies/System.Linq.Async.dll and /dev/null differ diff --git a/Modules/AzBobbyTables/3.3.1/dependencies/System.Memory.Data.dll b/Modules/AzBobbyTables/3.3.1/dependencies/System.Memory.Data.dll deleted file mode 100644 index 6f2a3e0ad07f..000000000000 Binary files a/Modules/AzBobbyTables/3.3.1/dependencies/System.Memory.Data.dll and /dev/null differ diff --git a/Modules/AzBobbyTables/3.3.1/dependencies/System.Memory.dll b/Modules/AzBobbyTables/3.3.1/dependencies/System.Memory.dll deleted file mode 100644 index 1e6aef802063..000000000000 Binary files a/Modules/AzBobbyTables/3.3.1/dependencies/System.Memory.dll and /dev/null differ diff --git a/Modules/AzBobbyTables/3.3.1/dependencies/System.Numerics.Vectors.dll b/Modules/AzBobbyTables/3.3.1/dependencies/System.Numerics.Vectors.dll deleted file mode 100644 index 10205772c39d..000000000000 Binary files a/Modules/AzBobbyTables/3.3.1/dependencies/System.Numerics.Vectors.dll and /dev/null differ diff --git a/Modules/AzBobbyTables/3.3.1/dependencies/System.Runtime.CompilerServices.Unsafe.dll b/Modules/AzBobbyTables/3.3.1/dependencies/System.Runtime.CompilerServices.Unsafe.dll deleted file mode 100644 index 491a80a97880..000000000000 Binary files a/Modules/AzBobbyTables/3.3.1/dependencies/System.Runtime.CompilerServices.Unsafe.dll and /dev/null differ diff --git a/Modules/AzBobbyTables/3.3.1/dependencies/System.Text.Json.dll b/Modules/AzBobbyTables/3.3.1/dependencies/System.Text.Json.dll deleted file mode 100644 index 5417430f23c0..000000000000 Binary files a/Modules/AzBobbyTables/3.3.1/dependencies/System.Text.Json.dll and /dev/null differ diff --git a/Modules/AzBobbyTables/3.3.1/dependencies/System.Threading.Tasks.Extensions.dll b/Modules/AzBobbyTables/3.3.1/dependencies/System.Threading.Tasks.Extensions.dll deleted file mode 100644 index dfab23478ab4..000000000000 Binary files a/Modules/AzBobbyTables/3.3.1/dependencies/System.Threading.Tasks.Extensions.dll and /dev/null differ diff --git a/Modules/AzBobbyTables/3.4.0/AzBobbyTables.PS.dll b/Modules/AzBobbyTables/3.4.0/AzBobbyTables.PS.dll new file mode 100644 index 000000000000..e70586e52e2c Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/AzBobbyTables.PS.dll differ diff --git a/Modules/AzBobbyTables/3.3.1/AzBobbyTables.psd1 b/Modules/AzBobbyTables/3.4.0/AzBobbyTables.psd1 similarity index 87% rename from Modules/AzBobbyTables/3.3.1/AzBobbyTables.psd1 rename to Modules/AzBobbyTables/3.4.0/AzBobbyTables.psd1 index 0b1f9cc6a082..14215e7c8d1d 100644 --- a/Modules/AzBobbyTables/3.3.1/AzBobbyTables.psd1 +++ b/Modules/AzBobbyTables/3.4.0/AzBobbyTables.psd1 @@ -4,7 +4,7 @@ RootModule = 'AzBobbyTables.PS.dll' # Version number of this module. -ModuleVersion = '3.3.1' +ModuleVersion = '3.4.0' # Supported PSEditions CompatiblePSEditions = @('Core') @@ -69,6 +69,7 @@ CmdletsToExport = @( 'Clear-AzDataTable' 'Get-AzDataTable' 'Get-AzDataTableEntity' + 'Get-AzDataTableSupportedEntityType' 'Remove-AzDataTableEntity' 'Update-AzDataTableEntity' 'New-AzDataTableContext' @@ -109,11 +110,19 @@ PrivateData = @{ # IconUri = '' # ReleaseNotes of this module - ReleaseNotes = '## [3.3.1] - 2024-10-19 + ReleaseNotes = '## [3.4.0] - 2025-07-03 ### Added -- Added `-OperationType` parameter to `Add-AzDataTableEntity` and `Update-AzDataTableEntity` to support merge or replace operations [#81](https://github.com/PalmEmanuel/AzBobbyTables/pull/81) +- Added SortedList as valid type for -Entity parameter [#52](https://github.com/PalmEmanuel/AzBobbyTables/issues/52) +- New command `Get-AzDataTableSupportedEntityType` to get the supported data types for the module when using `-Entity` parameter + +### Changed + +- Dependency version bumps +- Rewrote core module logic to add a converter system which allows for flexible entity types +- Updated gitversion config for build and release +- Improved module tests for the new type converter system ' diff --git a/Modules/AzBobbyTables/3.4.0/CHANGELOG.md b/Modules/AzBobbyTables/3.4.0/CHANGELOG.md new file mode 100644 index 000000000000..3a3ec108efc8 --- /dev/null +++ b/Modules/AzBobbyTables/3.4.0/CHANGELOG.md @@ -0,0 +1,86 @@ +# Changelog for the module + +The format is based on and uses the types of changes according to [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +### Added + +- Added SortedList as valid type for -Entity parameter [#52](https://github.com/PalmEmanuel/AzBobbyTables/issues/52) +- New command `Get-AzDataTableSupportedEntityType` to get the supported data types for the module when using `-Entity` parameter + +### Changed + +- Dependency version bumps +- Rewrote core module logic to add a converter system which allows for flexible entity types +- Updated gitversion config for build and release +- Improved module tests for the new type converter system + +## [3.3.2] - 2025-02-26 + +### Fixed + +- Fixed bug where validation for Partition- and RowKey was not checking case sensitivity [#68](https://github.com/PalmEmanuel/AzBobbyTables/pull/81) + +## [3.3.1] - 2024-10-19 + +### Added + +- Added `-OperationType` parameter to `Add-AzDataTableEntity` and `Update-AzDataTableEntity` to support merge or replace operations [#81](https://github.com/PalmEmanuel/AzBobbyTables/pull/81) + +## [3.3.0] - 2024-10-18 + +### Added + +- Added command `Get-AzDataTable` to get the names of tables in a storage account [#77](https://github.com/PalmEmanuel/AzBobbyTables/issues/77) + +### Changed + +- Implemented TableServiceClient to support operations on tables in the storage account. + +## [3.2.1] - 2024-07-09 + +### Fixed + +- Fixed bug where empty lines were written to console. + +## [3.2.0] - 2024-03-21 + +### Added + +- ETag validation for Update- & Remove-AzDataTableEntity ([#58](https://github.com/PalmEmanuel/AzBobbyTables/issues/58)) + +### Fixed + +- Missing examples of Remove-AzDataTableEntity ([#62](https://github.com/PalmEmanuel/AzBobbyTables/issues/62)) + +## [3.1.3] - 2024-01-20 + +### Added + +- Added Sampler ([#48](https://github.com/PalmEmanuel/AzBobbyTables/issues/48)). +- Added support for user-assigned managed identities ([#54](https://github.com/PalmEmanuel/AzBobbyTables/issues/54)). + +## [3.1.2] - 2024-01-05 + +### Added + +- Help documentation for a DateTime problem caused by the SDK (#43). + +## 3.1.1 - 2023-05-03 + +[Unreleased]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.3.2...HEAD + +[3.3.2]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.3.1...v3.3.2 + +[3.3.1]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.3.0...v3.3.1 + +[3.3.0]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.2.1...v3.3.0 + +[3.2.1]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.2.0...v3.2.1 + +[3.2.0]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.1.3...v3.2.0 + +[3.1.3]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.1.2...v3.1.3 + +[3.1.2]: https://github.com/PalmEmanuel/AzBobbyTables/compare/d854153aca6c5cce35a123deb86653a0d3289b07...v3.1.2 diff --git a/Modules/AzBobbyTables/3.3.1/LICENSE b/Modules/AzBobbyTables/3.4.0/LICENSE similarity index 100% rename from Modules/AzBobbyTables/3.3.1/LICENSE rename to Modules/AzBobbyTables/3.4.0/LICENSE diff --git a/Modules/AzBobbyTables/3.4.0/PSGetModuleInfo.xml b/Modules/AzBobbyTables/3.4.0/PSGetModuleInfo.xml new file mode 100644 index 000000000000..64fa6faf50b2 --- /dev/null +++ b/Modules/AzBobbyTables/3.4.0/PSGetModuleInfo.xml @@ -0,0 +1,145 @@ + + + + Microsoft.PowerShell.Commands.PSRepositoryItemInfo + System.Management.Automation.PSCustomObject + System.Object + + + AzBobbyTables + 3.4.0 + Module + A module for handling Azure Table Storage operations by wrapping the Azure Data Tables SDK. + Emanuel Palm + PalmEmanuel + (c) Emanuel Palm. All rights reserved. +
2025-07-03T17:55:54-04:00
+ + + https://github.com/PalmEmanuel/AzBobbyTables/blob/main/LICENSE + https://github.com/PalmEmanuel/AzBobbyTables + + + + System.Object[] + System.Array + System.Object + + + azure + storage + table + cosmos + cosmosdb + data + PSModule + PSEdition_Core + + + + + System.Collections.Hashtable + System.Object + + + + Function + + + + + + + Command + + + + Add-AzDataTableEntity + Clear-AzDataTable + Get-AzDataTable + Get-AzDataTableEntity + Get-AzDataTableSupportedEntityType + Remove-AzDataTableEntity + Update-AzDataTableEntity + New-AzDataTableContext + Remove-AzDataTable + New-AzDataTable + + + + + DscResource + + + + Workflow + + + + RoleCapability + + + + Cmdlet + + + + Add-AzDataTableEntity + Clear-AzDataTable + Get-AzDataTable + Get-AzDataTableEntity + Get-AzDataTableSupportedEntityType + Remove-AzDataTableEntity + Update-AzDataTableEntity + New-AzDataTableContext + Remove-AzDataTable + New-AzDataTable + + + + + + + ## [3.4.0] - 2025-07-03_x000A__x000A_### Added_x000A__x000A_- Added SortedList as valid type for -Entity parameter [#52](https://github.com/PalmEmanuel/AzBobbyTables/issues/52)_x000A_- New command `Get-AzDataTableSupportedEntityType` to get the supported data types for the module when using `-Entity` parameter_x000A__x000A_### Changed_x000A__x000A_- Dependency version bumps_x000A_- Rewrote core module logic to add a converter system which allows for flexible entity types_x000A_- Updated gitversion config for build and release_x000A_- Improved module tests for the new type converter system + + + + + https://www.powershellgallery.com/api/v2 + PSGallery + NuGet + + + System.Management.Automation.PSCustomObject + System.Object + + + (c) Emanuel Palm. All rights reserved. + A module for handling Azure Table Storage operations by wrapping the Azure Data Tables SDK. + False + ## [3.4.0] - 2025-07-03_x000A__x000A_### Added_x000A__x000A_- Added SortedList as valid type for -Entity parameter [#52](https://github.com/PalmEmanuel/AzBobbyTables/issues/52)_x000A_- New command `Get-AzDataTableSupportedEntityType` to get the supported data types for the module when using `-Entity` parameter_x000A__x000A_### Changed_x000A__x000A_- Dependency version bumps_x000A_- Rewrote core module logic to add a converter system which allows for flexible entity types_x000A_- Updated gitversion config for build and release_x000A_- Improved module tests for the new type converter system + True + True + 3355 + 58167 + 1560682 + 7/3/2025 5:55:54 PM -04:00 + 7/3/2025 5:55:54 PM -04:00 + 10/18/2025 1:10:00 AM -04:00 + azure storage table cosmos cosmosdb data PSModule PSEdition_Core PSCmdlet_Add-AzDataTableEntity PSCommand_Add-AzDataTableEntity PSCmdlet_Clear-AzDataTable PSCommand_Clear-AzDataTable PSCmdlet_Get-AzDataTable PSCommand_Get-AzDataTable PSCmdlet_Get-AzDataTableEntity PSCommand_Get-AzDataTableEntity PSCmdlet_Get-AzDataTableSupportedEntityType PSCommand_Get-AzDataTableSupportedEntityType PSCmdlet_Remove-AzDataTableEntity PSCommand_Remove-AzDataTableEntity PSCmdlet_Update-AzDataTableEntity PSCommand_Update-AzDataTableEntity PSCmdlet_New-AzDataTableContext PSCommand_New-AzDataTableContext PSCmdlet_Remove-AzDataTable PSCommand_Remove-AzDataTable PSCmdlet_New-AzDataTable PSCommand_New-AzDataTable PSIncludes_Cmdlet + False + 2025-10-18T01:10:00Z + 3.4.0 + Emanuel Palm + false + Module + AzBobbyTables.nuspec|AzBobbyTables.psd1|dependencies\System.Numerics.Vectors.dll|dependencies\System.Buffers.dll|dependencies\System.Security.AccessControl.dll|LICENSE|dependencies\Azure.Core.dll|dependencies\AzBobbyTables.Core.dll|dependencies\Azure.Data.Tables.dll|AzBobbyTables.PS.dll|dependencies\Microsoft.VisualStudio.Threading.dll|dependencies\Microsoft.VisualStudio.Validation.dll|dependencies\System.Text.Encodings.Web.dll|dependencies\System.Diagnostics.DiagnosticSource.dll|dependencies\System.Memory.dll|dependencies\System.ClientModel.dll|CHANGELOG.md|dependencies\System.Text.Json.dll|dependencies\System.Memory.Data.dll|dependencies\System.Threading.Tasks.Extensions.dll|en-US\AzBobbyTables.PS.dll-Help.xml|dependencies\Microsoft.Bcl.AsyncInterfaces.dll|dependencies\System.Linq.Async.dll|dependencies\Microsoft.Win32.Registry.dll|dependencies\System.Runtime.CompilerServices.Unsafe.dll|dependencies\System.Security.Principal.Windows.dll + eead4f42-5080-4f83-8901-340c529a5a11 + 7.0 + pipe.how + + + C:\GitHub\CIPP Workspace\CIPP-API\Modules\AzBobbyTables\3.4.0 +
+
+
diff --git a/Modules/AzBobbyTables/3.4.0/dependencies/AzBobbyTables.Core.dll b/Modules/AzBobbyTables/3.4.0/dependencies/AzBobbyTables.Core.dll new file mode 100644 index 000000000000..01c63c259aad Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/dependencies/AzBobbyTables.Core.dll differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Azure.Core.dll b/Modules/AzBobbyTables/3.4.0/dependencies/Azure.Core.dll similarity index 100% rename from Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Azure.Core.dll rename to Modules/AzBobbyTables/3.4.0/dependencies/Azure.Core.dll diff --git a/Modules/AzBobbyTables/3.4.0/dependencies/Azure.Data.Tables.dll b/Modules/AzBobbyTables/3.4.0/dependencies/Azure.Data.Tables.dll new file mode 100644 index 000000000000..e1ca8eec36f2 Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/dependencies/Azure.Data.Tables.dll differ diff --git a/Modules/AzBobbyTables/3.4.0/dependencies/Microsoft.Bcl.AsyncInterfaces.dll b/Modules/AzBobbyTables/3.4.0/dependencies/Microsoft.Bcl.AsyncInterfaces.dll new file mode 100644 index 000000000000..ec2a3b9cfd57 Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/dependencies/Microsoft.Bcl.AsyncInterfaces.dll differ diff --git a/Modules/AzBobbyTables/3.4.0/dependencies/Microsoft.VisualStudio.Threading.dll b/Modules/AzBobbyTables/3.4.0/dependencies/Microsoft.VisualStudio.Threading.dll new file mode 100644 index 000000000000..eb30047dc714 Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/dependencies/Microsoft.VisualStudio.Threading.dll differ diff --git a/Modules/AzBobbyTables/3.3.1/dependencies/Microsoft.VisualStudio.Validation.dll b/Modules/AzBobbyTables/3.4.0/dependencies/Microsoft.VisualStudio.Validation.dll similarity index 100% rename from Modules/AzBobbyTables/3.3.1/dependencies/Microsoft.VisualStudio.Validation.dll rename to Modules/AzBobbyTables/3.4.0/dependencies/Microsoft.VisualStudio.Validation.dll diff --git a/Modules/AzBobbyTables/3.3.1/dependencies/Microsoft.Win32.Registry.dll b/Modules/AzBobbyTables/3.4.0/dependencies/Microsoft.Win32.Registry.dll similarity index 100% rename from Modules/AzBobbyTables/3.3.1/dependencies/Microsoft.Win32.Registry.dll rename to Modules/AzBobbyTables/3.4.0/dependencies/Microsoft.Win32.Registry.dll diff --git a/Modules/AzBobbyTables/3.4.0/dependencies/System.Buffers.dll b/Modules/AzBobbyTables/3.4.0/dependencies/System.Buffers.dll new file mode 100644 index 000000000000..85e0f73c836b Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/dependencies/System.Buffers.dll differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.ClientModel.dll b/Modules/AzBobbyTables/3.4.0/dependencies/System.ClientModel.dll similarity index 100% rename from Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.ClientModel.dll rename to Modules/AzBobbyTables/3.4.0/dependencies/System.ClientModel.dll diff --git a/Modules/AzBobbyTables/3.3.1/dependencies/System.Diagnostics.DiagnosticSource.dll b/Modules/AzBobbyTables/3.4.0/dependencies/System.Diagnostics.DiagnosticSource.dll similarity index 100% rename from Modules/AzBobbyTables/3.3.1/dependencies/System.Diagnostics.DiagnosticSource.dll rename to Modules/AzBobbyTables/3.4.0/dependencies/System.Diagnostics.DiagnosticSource.dll diff --git a/Modules/AzBobbyTables/3.4.0/dependencies/System.Linq.Async.dll b/Modules/AzBobbyTables/3.4.0/dependencies/System.Linq.Async.dll new file mode 100644 index 000000000000..3f589cf3e9d2 Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/dependencies/System.Linq.Async.dll differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Memory.Data.dll b/Modules/AzBobbyTables/3.4.0/dependencies/System.Memory.Data.dll similarity index 100% rename from Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Memory.Data.dll rename to Modules/AzBobbyTables/3.4.0/dependencies/System.Memory.Data.dll diff --git a/Modules/AzBobbyTables/3.4.0/dependencies/System.Memory.dll b/Modules/AzBobbyTables/3.4.0/dependencies/System.Memory.dll new file mode 100644 index 000000000000..a28ae5e0dd2c Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/dependencies/System.Memory.dll differ diff --git a/Modules/AzBobbyTables/3.4.0/dependencies/System.Numerics.Vectors.dll b/Modules/AzBobbyTables/3.4.0/dependencies/System.Numerics.Vectors.dll new file mode 100644 index 000000000000..f7e31b7df037 Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/dependencies/System.Numerics.Vectors.dll differ diff --git a/Modules/AzBobbyTables/3.4.0/dependencies/System.Runtime.CompilerServices.Unsafe.dll b/Modules/AzBobbyTables/3.4.0/dependencies/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 000000000000..4faa7050d984 Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/dependencies/System.Runtime.CompilerServices.Unsafe.dll differ diff --git a/Modules/AzBobbyTables/3.3.1/dependencies/System.Security.AccessControl.dll b/Modules/AzBobbyTables/3.4.0/dependencies/System.Security.AccessControl.dll similarity index 100% rename from Modules/AzBobbyTables/3.3.1/dependencies/System.Security.AccessControl.dll rename to Modules/AzBobbyTables/3.4.0/dependencies/System.Security.AccessControl.dll diff --git a/Modules/AzBobbyTables/3.3.1/dependencies/System.Security.Principal.Windows.dll b/Modules/AzBobbyTables/3.4.0/dependencies/System.Security.Principal.Windows.dll similarity index 100% rename from Modules/AzBobbyTables/3.3.1/dependencies/System.Security.Principal.Windows.dll rename to Modules/AzBobbyTables/3.4.0/dependencies/System.Security.Principal.Windows.dll diff --git a/Modules/AzBobbyTables/3.3.1/dependencies/System.Text.Encodings.Web.dll b/Modules/AzBobbyTables/3.4.0/dependencies/System.Text.Encodings.Web.dll similarity index 100% rename from Modules/AzBobbyTables/3.3.1/dependencies/System.Text.Encodings.Web.dll rename to Modules/AzBobbyTables/3.4.0/dependencies/System.Text.Encodings.Web.dll diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Text.Json.dll b/Modules/AzBobbyTables/3.4.0/dependencies/System.Text.Json.dll similarity index 100% rename from Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Text.Json.dll rename to Modules/AzBobbyTables/3.4.0/dependencies/System.Text.Json.dll diff --git a/Modules/AzBobbyTables/3.4.0/dependencies/System.Threading.Tasks.Extensions.dll b/Modules/AzBobbyTables/3.4.0/dependencies/System.Threading.Tasks.Extensions.dll new file mode 100644 index 000000000000..2f496fbbd4e3 Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/dependencies/System.Threading.Tasks.Extensions.dll differ diff --git a/Modules/AzBobbyTables/3.3.1/en-US/AzBobbyTables.PS.dll-Help.xml b/Modules/AzBobbyTables/3.4.0/en-US/AzBobbyTables.PS.dll-Help.xml similarity index 97% rename from Modules/AzBobbyTables/3.3.1/en-US/AzBobbyTables.PS.dll-Help.xml rename to Modules/AzBobbyTables/3.4.0/en-US/AzBobbyTables.PS.dll-Help.xml index 0261a5fa7941..691c321d29b9 100644 --- a/Modules/AzBobbyTables/3.3.1/en-US/AzBobbyTables.PS.dll-Help.xml +++ b/Modules/AzBobbyTables/3.4.0/en-US/AzBobbyTables.PS.dll-Help.xml @@ -711,6 +711,60 @@ PS C:\> $UserEntities = Get-AzDataTableEntity -Property 'FirstName','Age' -Co + + + Get-AzDataTableSupportedEntityType + Get + AzDataTableSupportedEntityType + + Gets the list of data types supported as input entities by the module for commands with the `-Entity` parameter. + + + + The cmdlet retrieves a list of data types that are supported as input entities by the module for commands with the `-Entity` parameter, such as Hashtable, PSObject and SortedList. + + + + Get-AzDataTableSupportedEntityType + + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-AzDataTableSupportedEntityType + + This command retrieves and displays the list of supported entity types that can be used with the module. + + + + + New-AzDataTable diff --git a/Modules/CIPPCore/CIPPCore.psd1 b/Modules/CIPPCore/CIPPCore.psd1 new file mode 100644 index 000000000000..92c03ecd3705 Binary files /dev/null and b/Modules/CIPPCore/CIPPCore.psd1 differ diff --git a/Modules/CIPPCore/CIPPCore.psm1 b/Modules/CIPPCore/CIPPCore.psm1 index 93ce138d723d..7cd3fd6ee225 100644 --- a/Modules/CIPPCore/CIPPCore.psm1 +++ b/Modules/CIPPCore/CIPPCore.psm1 @@ -1,12 +1,16 @@ -$Public = @(Get-ChildItem -Path (Join-Path $PSScriptRoot "Public\*.ps1") -Recurse -ErrorAction SilentlyContinue) -$Private = @(Get-ChildItem -Path (Join-Path $PSScriptRoot "Private\*.ps1") -Recurse -ErrorAction SilentlyContinue) -$Functions = $Public + $Private -foreach ($import in @($Functions)) { - try { - . $import.FullName - } catch { - Write-Error -Message "Failed to import function $($import.FullName): $_" +# ModuleBuilder will concatenate all function files into this module +# This block is only used when running from source (not built) +if (Test-Path (Join-Path $PSScriptRoot 'Public')) { + $Public = @(Get-ChildItem -Path (Join-Path $PSScriptRoot 'Public\*.ps1') -Recurse -ErrorAction SilentlyContinue) + $Private = @(Get-ChildItem -Path (Join-Path $PSScriptRoot 'Private\*.ps1') -Recurse -ErrorAction SilentlyContinue) + $Functions = $Public + $Private + foreach ($import in @($Functions)) { + try { + . $import.FullName + } catch { + Write-Error -Message "Failed to import function $($import.FullName): $_" + } } -} -Export-ModuleMember -Function $Public.BaseName -Alias * + Export-ModuleMember -Function $Public.BaseName +} diff --git a/Modules/CIPPCore/CippCore.psd1 b/Modules/CIPPCore/CippCore.psd1 deleted file mode 100644 index cfc565177729..000000000000 Binary files a/Modules/CIPPCore/CippCore.psd1 and /dev/null differ diff --git a/Modules/CIPPCore/Public/Add-CIPPAlias.ps1 b/Modules/CIPPCore/Public/Add-CIPPAlias.ps1 index f5579a06d493..6a0fc8615eb1 100644 --- a/Modules/CIPPCore/Public/Add-CIPPAlias.ps1 +++ b/Modules/CIPPCore/Public/Add-CIPPAlias.ps1 @@ -1,26 +1,27 @@ function Add-CIPPAlias { [CmdletBinding()] param ( - $user, + $User, $Aliases, - $UserprincipalName, + $UserPrincipalName, $TenantFilter, - $APIName = 'Set Manager', + $APIName = 'Add Alias', $Headers ) try { foreach ($Alias in $Aliases) { - Write-Host "Adding alias $Alias to $user" - New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$user" -tenantid $TenantFilter -type 'patch' -body "{`"mail`": `"$Alias`"}" -verbose + Write-Host "Adding alias $Alias to $User" + New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$User" -tenantid $TenantFilter -type 'patch' -body "{`"mail`": `"$Alias`"}" -verbose } Write-Host "Resetting primary alias to $User" - New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($user)" -tenantid $TenantFilter -type 'patch' -body "{`"mail`": `"$User`"}" -verbose - Write-LogMessage -headers $Headers -API $APINAME -tenant $($TenantFilter) -message "Added alias $($Alias) to $($UserprincipalName)" -Sev 'Info' + New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$User" -tenantid $TenantFilter -type 'patch' -body "{`"mail`": `"$User`"}" -verbose + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Added alias $($Alias) to $($UserPrincipalName)" -Sev 'Info' return ("Added Aliases: $($Aliases -join ',')") } catch { - Write-LogMessage -headers $Headers -API $APINAME -tenant $($TenantFilter) -message "Failed to set alias. Error:$($_.Exception.Message)" -Sev 'Error' - throw "Failed to set alias: $($_.Exception.Message)" + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Failed to set alias. Error:$($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + throw "Failed to set alias: $($ErrorMessage.NormalizedError)" } } diff --git a/Modules/CIPPCore/Public/Add-CIPPApplicationPermission.ps1 b/Modules/CIPPCore/Public/Add-CIPPApplicationPermission.ps1 index 80241c161acf..c7963cc5a196 100644 --- a/Modules/CIPPCore/Public/Add-CIPPApplicationPermission.ps1 +++ b/Modules/CIPPCore/Public/Add-CIPPApplicationPermission.ps1 @@ -4,15 +4,12 @@ function Add-CIPPApplicationPermission { $RequiredResourceAccess, $TemplateId, $ApplicationId, - $Tenantfilter + $TenantFilter ) - if ($ApplicationId -eq $env:ApplicationID -and $Tenantfilter -eq $env:TenantID) { - #return @('Cannot modify application permissions for CIPP-SAM on partner tenant') + if ($ApplicationId -eq $env:ApplicationID -and $TenantFilter -eq $env:TenantID) { $RequiredResourceAccess = 'CIPPDefaults' } - Set-Location (Get-Item $PSScriptRoot).FullName if ($RequiredResourceAccess -eq 'CIPPDefaults') { - #$RequiredResourceAccess = (Get-Content '.\SAMManifest.json' | ConvertFrom-Json).requiredResourceAccess $Permissions = Get-CippSamPermissions -NoDiff $RequiredResourceAccess = [System.Collections.Generic.List[object]]::new() @@ -59,33 +56,72 @@ function Add-CIPPApplicationPermission { } } + Write-Information "Adding application permissions to application $ApplicationId in tenant $TenantFilter" - $ServicePrincipalList = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/servicePrincipals?`$select=AppId,id,displayName&`$top=999" -skipTokenCache $true -tenantid $Tenantfilter -NoAuthCheck $true + $ServicePrincipalList = [System.Collections.Generic.List[object]]::new() + $SPList = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/servicePrincipals?`$select=AppId,id,displayName&`$top=999" -skipTokenCache $true -tenantid $TenantFilter -NoAuthCheck $true + foreach ($SP in $SPList) { $ServicePrincipalList.Add($SP) } $ourSVCPrincipal = $ServicePrincipalList | Where-Object -Property AppId -EQ $ApplicationId if (!$ourSVCPrincipal) { #Our Service Principal isn't available yet. We do a sleep and reexecute after 3 seconds. Start-Sleep -Seconds 5 - $ServicePrincipalList = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/servicePrincipals?`$select=AppId,id,displayName&`$top=999" -skipTokenCache $true -tenantid $Tenantfilter -NoAuthCheck $true + $ServicePrincipalList.Clear() + $SPList = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/servicePrincipals?`$select=AppId,id,displayName&`$top=999" -skipTokenCache $true -tenantid $TenantFilter -NoAuthCheck $true + foreach ($SP in $SPList) { $ServicePrincipalList.Add($SP) } $ourSVCPrincipal = $ServicePrincipalList | Where-Object -Property AppId -EQ $ApplicationId } $Results = [System.Collections.Generic.List[string]]::new() - $CurrentRoles = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/servicePrincipals/$($ourSVCPrincipal.id)/appRoleAssignments" -tenantid $Tenantfilter -skipTokenCache $true -NoAuthCheck $true + $CurrentRoles = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/servicePrincipals/$($ourSVCPrincipal.id)/appRoleAssignments" -tenantid $TenantFilter -skipTokenCache $true -NoAuthCheck $true - $Grants = foreach ($App in $RequiredResourceAccess) { + # Collect missing service principals and prepare bulk request + $MissingServicePrincipals = [System.Collections.Generic.List[object]]::new() + $AppIdToRequestId = @{} + $requestId = 1 + + foreach ($App in $RequiredResourceAccess) { $svcPrincipalId = $ServicePrincipalList | Where-Object -Property AppId -EQ $App.resourceAppId if (!$svcPrincipalId) { - try { - $Body = @{ - appId = $App.resourceAppId - } | ConvertTo-Json -Compress - $svcPrincipalId = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/servicePrincipals' -tenantid $Tenantfilter -body $Body -type POST - } catch { - $Results.add("Failed to create service principal for $($App.resourceAppId): $(Get-NormalizedError -message $_.Exception.Message)") - continue + $Body = @{ + appId = $App.resourceAppId + } + $MissingServicePrincipals.Add(@{ + id = $requestId.ToString() + method = 'POST' + url = '/servicePrincipals' + headers = @{ + 'Content-Type' = 'application/json' + } + body = $Body + }) + $AppIdToRequestId[$App.resourceAppId] = $requestId.ToString() + $requestId++ + } + } + + # Create missing service principals in bulk + if ($MissingServicePrincipals.Count -gt 0) { + try { + $BulkResults = New-GraphBulkRequest -Requests $MissingServicePrincipals -tenantid $TenantFilter -NoAuthCheck $true + foreach ($Result in $BulkResults) { + if ($Result.status -eq 201) { + $ServicePrincipalList.Add($Result.body) + } else { + $AppId = ($MissingServicePrincipals | Where-Object { $_.id -eq $Result.id }).body.appId + $Results.add("Failed to create service principal for $($AppId): $($Result.body.error.message)") + } } + } catch { + $Results.add("Failed to create service principals in bulk: $(Get-NormalizedError -message $_.Exception.Message)") } + } + + # Build grants list + $Grants = foreach ($App in $RequiredResourceAccess) { + $svcPrincipalId = $ServicePrincipalList | Where-Object -Property AppId -EQ $App.resourceAppId + if (!$svcPrincipalId) { continue } + foreach ($SingleResource in $App.ResourceAccess | Where-Object -Property Type -EQ 'Role') { if ($SingleResource.id -in $CurrentRoles.appRoleId) { continue } [pscustomobject]@{ @@ -95,14 +131,37 @@ function Add-CIPPApplicationPermission { } } } + + # Apply grants in bulk $counter = 0 - foreach ($Grant in $Grants) { + if ($Grants.Count -gt 0) { + $GrantRequests = [System.Collections.Generic.List[object]]::new() + $requestId = 1 + foreach ($Grant in $Grants) { + $GrantRequests.Add(@{ + id = $requestId.ToString() + method = 'POST' + url = "/servicePrincipals/$($ourSVCPrincipal.id)/appRoleAssignedTo" + headers = @{ + 'Content-Type' = 'application/json' + } + body = $Grant + }) + $requestId++ + } + try { - $SettingsRequest = New-GraphPOSTRequest -body (ConvertTo-Json -InputObject $Grant -Depth 5) -uri "https://graph.microsoft.com/beta/servicePrincipals/$($ourSVCPrincipal.id)/appRoleAssignedTo" -tenantid $Tenantfilter -type POST -NoAuthCheck $true - $counter++ + $BulkResults = New-GraphBulkRequest -Requests $GrantRequests -tenantid $TenantFilter -NoAuthCheck $true + foreach ($Result in $BulkResults) { + if ($Result.status -eq 201) { + $counter++ + } else { + $GrantRequest = $GrantRequests | Where-Object { $_.id -eq $Result.id } + $Results.add("Failed to grant $($GrantRequest.body.appRoleId) to $($GrantRequest.body.resourceId): $($Result.body.error.message)") + } + } } catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - $Results.add("Failed to grant $($Grant.appRoleId) to $($Grant.resourceId): $ErrorMessage") + $Results.add("Failed to grant permissions in bulk: $(Get-NormalizedError -message $_.Exception.Message)") } } "Added $counter Application permissions to $($ourSVCPrincipal.displayName)" diff --git a/Modules/CIPPCore/Public/Add-CIPPAzDataTableEntity.ps1 b/Modules/CIPPCore/Public/Add-CIPPAzDataTableEntity.ps1 index a67ab955d4bb..260f8691f0f1 100644 --- a/Modules/CIPPCore/Public/Add-CIPPAzDataTableEntity.ps1 +++ b/Modules/CIPPCore/Public/Add-CIPPAzDataTableEntity.ps1 @@ -1,4 +1,8 @@ function Add-CIPPAzDataTableEntity { + <# + .FUNCTIONALITY + Internal + #> [CmdletBinding(DefaultParameterSetName = 'OperationType')] param( $Context, @@ -13,6 +17,16 @@ function Add-CIPPAzDataTableEntity { [string]$OperationType = 'Add' ) + # Validate input parameters + if ($null -eq $Context) { + throw 'Context parameter cannot be null' + } + + if ($null -eq $Entity) { + Write-Warning 'Entity parameter is null - nothing to process' + return + } + $Parameters = @{ Context = $Context CreateTableIfNotExists = $CreateTableIfNotExists @@ -28,16 +42,55 @@ function Add-CIPPAzDataTableEntity { foreach ($SingleEnt in @($Entity)) { try { + # Skip null entities + if ($null -eq $SingleEnt) { + Write-Warning 'Skipping null entity' + continue + } + if ($null -eq $SingleEnt.PartitionKey -or $null -eq $SingleEnt.RowKey) { throw 'PartitionKey or RowKey is null' } + # Ensure entity is not empty + if ($SingleEnt -is [hashtable] -and $SingleEnt.Count -eq 0) { + Write-Warning 'Skipping empty hashtable entity' + continue + } elseif ($SingleEnt -is [PSCustomObject] -and ($SingleEnt.PSObject.Properties | Measure-Object).Count -eq 0) { + Write-Warning 'Skipping empty PSCustomObject entity' + continue + } + + # Additional validation for AzBobbyTables compatibility + try { + # Ensure all property values are not null for string properties + if ($SingleEnt -is [hashtable]) { + foreach ($key in @($SingleEnt.Keys)) { + if ($null -eq $SingleEnt[$key]) { + $SingleEnt.Remove($key) + } + } + } elseif ($SingleEnt -is [PSCustomObject]) { + $propsToRemove = [system.Collections.Generic.List[string]]::new() + foreach ($prop in $SingleEnt.PSObject.Properties) { + if ($null -eq $prop.Value) { + $propsToRemove.Add($prop.Name) + } + } + foreach ($propName in $propsToRemove) { + $SingleEnt.PSObject.Properties.Remove($propName) + } + } + } catch { + Write-Warning "Error during entity validation: $($_.Exception.Message)" + } + Add-AzDataTableEntity @Parameters -Entity $SingleEnt -ErrorAction Stop } catch [System.Exception] { if ($_.Exception.ErrorCode -in @('PropertyValueTooLarge', 'EntityTooLarge', 'RequestBodyTooLarge')) { try { - Write-Host 'Entity is too large. Splitting entity into multiple parts.' + Write-Information 'Entity is too large. Splitting entity into multiple parts.' $largePropertyNames = [System.Collections.Generic.List[string]]::new() $entitySize = 0 @@ -102,6 +155,7 @@ function Add-CIPPAzDataTableEntity { $propertiesToRemove = [System.Collections.Generic.List[object]]::new() foreach ($key in $SingleEnt.Keys) { + if ($key -in @('RowKey', 'PartitionKey')) { continue } $newEntitySize = [System.Text.Encoding]::UTF8.GetByteCount($($newEntity | ConvertTo-Json -Compress)) if ($newEntitySize -lt $MaxRowSize) { $propertySize = [System.Text.Encoding]::UTF8.GetByteCount($SingleEnt[$key].ToString()) @@ -172,11 +226,13 @@ function Add-CIPPAzDataTableEntity { } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message Write-Warning 'AzBobbyTables Error' - Write-Information ($SingleEnt | ConvertTo-Json) throw "Error processing entity: $ErrorMessage Linenumber: $($_.InvocationInfo.ScriptLineNumber)" } } else { + try { Write-Information ($_.Exception | ConvertTo-Json) } catch { Write-Information $_.Exception } Write-Information "THE ERROR IS $($_.Exception.message). The size of the entity is $entitySize." + Write-Information "Parameters are: $($Parameters | ConvertTo-Json -Compress)" + Write-Information $_.InvocationInfo.PositionMessage throw $_ } } diff --git a/Modules/CIPPCore/Public/Add-CIPPDbItem.ps1 b/Modules/CIPPCore/Public/Add-CIPPDbItem.ps1 new file mode 100644 index 000000000000..7b96b16bc4cb --- /dev/null +++ b/Modules/CIPPCore/Public/Add-CIPPDbItem.ps1 @@ -0,0 +1,205 @@ +function Add-CIPPDbItem { + <# + .SYNOPSIS + Add items to the CIPP Reporting database + + .DESCRIPTION + Adds items to the CippReportingDB table with support for bulk inserts, count mode, and pipeline streaming + + .PARAMETER TenantFilter + The tenant domain or GUID (used as partition key) + + .PARAMETER Type + The type of data being stored (used in row key) + + .PARAMETER InputObject + Items to add to the database. Accepts pipeline input for memory-efficient streaming. + Alias: Data (for backward compatibility) + + .PARAMETER Count + If specified, stores a single row with count of items processed + + .PARAMETER AddCount + If specified, automatically records the total count after processing all items + + .EXAMPLE + Add-CIPPDbItem -TenantFilter 'contoso.onmicrosoft.com' -Type 'Groups' -Data $GroupsData + + .EXAMPLE + New-GraphGetRequest -uri '...' | Add-CIPPDbItem -TenantFilter 'contoso.onmicrosoft.com' -Type 'Users' -AddCount + + .EXAMPLE + Add-CIPPDbItem -TenantFilter 'contoso.onmicrosoft.com' -Type 'Groups' -Data $GroupsData -Count + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + [Parameter(Mandatory = $true)] + [string]$Type, + + [Parameter(Mandatory = $true, ValueFromPipeline = $true)] + [Alias('Data')] + [AllowEmptyCollection()] + $InputObject, + + [Parameter(Mandatory = $false)] + [switch]$Count, + + [Parameter(Mandatory = $false)] + [switch]$AddCount + ) + + begin { + # Initialize pipeline processing with state hashtable for nested function access + $Table = Get-CippTable -tablename 'CippReportingDB' + $BatchAccumulator = [System.Collections.Generic.List[hashtable]]::new(500) + $State = @{ + TotalProcessed = 0 + BatchNumber = 0 + } + + # Helper function to format RowKey values by removing disallowed characters + function Format-RowKey { + param([string]$RowKey) + $sanitized = $RowKey -replace '[/\\#?]', '_' -replace '[\u0000-\u001F\u007F-\u009F]', '' + return $sanitized + } + + # Function to flush current batch + function Invoke-FlushBatch { + param($State) + if ($BatchAccumulator.Count -eq 0) { return } + + $State.BatchNumber++ + $batchSize = $BatchAccumulator.Count + $MemoryBeforeGC = [System.GC]::GetTotalMemory($false) + $flushStart = Get-Date + + try { + # Entities are already in the accumulator, just write them + $writeStart = Get-Date + Add-CIPPAzDataTableEntity @Table -Entity $BatchAccumulator.ToArray() -Force | Out-Null + $writeEnd = Get-Date + $writeDuration = [math]::Round(($writeEnd - $writeStart).TotalSeconds, 2) + $State.TotalProcessed += $batchSize + + } finally { + # Clear and GC + $gcStart = Get-Date + $BatchAccumulator.Clear() + + # Single GC pass is sufficient - aggressive GC was causing slowdown + [System.GC]::Collect() + + $flushEnd = Get-Date + $gcDuration = [math]::Round(($flushEnd - $gcStart).TotalSeconds, 2) + $flushDuration = [math]::Round(($flushEnd - $flushStart).TotalSeconds, 2) + $MemoryAfterGC = [System.GC]::GetTotalMemory($false) + $FreedMB = [math]::Round(($MemoryBeforeGC - $MemoryAfterGC) / 1MB, 2) + $CurrentMemoryMB = [math]::Round($MemoryAfterGC / 1MB, 2) + #Write-Debug "Batch $($State.BatchNumber): ${flushDuration}s total (write: ${writeDuration}s, gc: ${gcDuration}s) | Processed: $($State.TotalProcessed) | Memory: ${CurrentMemoryMB}MB | Freed: ${FreedMB}MB" + } + } + + if (-not $Count.IsPresent) { + # Delete existing entries for this type + $Filter = "PartitionKey eq '{0}' and RowKey ge '{1}-' and RowKey lt '{1}0'" -f $TenantFilter, $Type + $ExistingEntities = Get-CIPPAzDataTableEntity @Table -Filter $Filter -Property PartitionKey, RowKey, ETag + if ($ExistingEntities) { + Remove-AzDataTableEntity @Table -Entity $ExistingEntities -Force | Out-Null + } + $AllocatedMemoryMB = [math]::Round([System.GC]::GetTotalMemory($false) / 1MB, 2) + #Write-Debug "Starting $Type import for $TenantFilter | Allocated Memory: ${AllocatedMemoryMB}MB | Batch Size: 500" + } + } + + process { + # Process each item from pipeline + if ($null -eq $InputObject) { return } + + # If Count mode and InputObject is an integer, use it directly as count + if ($Count.IsPresent -and $InputObject -is [int]) { + $State.TotalProcessed = $InputObject + return + } + + # Handle both single items and arrays (for backward compatibility) + $ItemsToProcess = if ($InputObject -is [array]) { + $InputObject + } else { + @($InputObject) + } + + # If Count mode, just count items without processing + if ($Count.IsPresent) { + $itemCount = if ($ItemsToProcess -is [array]) { $ItemsToProcess.Count } else { 1 } + $State.TotalProcessed += $itemCount + return + } + + foreach ($Item in $ItemsToProcess) { + if ($null -eq $Item) { continue } + + # Convert to entity + $ItemId = $Item.ExternalDirectoryObjectId ?? $Item.id ?? $Item.Identity ?? $Item.skuId + $Entity = @{ + PartitionKey = $TenantFilter + RowKey = Format-RowKey "$Type-$ItemId" + Data = [string]($Item | ConvertTo-Json -Depth 10 -Compress) + Type = $Type + } + + $BatchAccumulator.Add($Entity) + + # Flush when batch reaches 500 items + if ($BatchAccumulator.Count -ge 500) { + Invoke-FlushBatch -State $State + } + } + } + + end { + try { + # Flush any remaining items in final partial batch + if ($BatchAccumulator.Count -gt 0) { + Invoke-FlushBatch -State $State + } + + if ($Count.IsPresent) { + # Store count record + $Entity = @{ + PartitionKey = $TenantFilter + RowKey = Format-RowKey "$Type-Count" + DataCount = [int]$State.TotalProcessed + } + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force | Out-Null + } + + Write-LogMessage -API 'CIPPDbItem' -tenant $TenantFilter ` + -message "Added $($State.TotalProcessed) items of type $Type$(if ($Count.IsPresent) { ' (count mode)' })" -sev Debug + + } catch { + Write-LogMessage -API 'CIPPDbItem' -tenant $TenantFilter ` + -message "Failed to add items of type $Type : $($_.Exception.Message)" -sev Error ` + -LogData (Get-CippException -Exception $_) + #Write-Debug "[Add-CIPPDbItem] $TenantFilter - $(Get-CippException -Exception $_ | ConvertTo-Json -Depth 5 -Compress)" + throw + } finally { + # Record count if AddCount was specified + if ($AddCount.IsPresent -and $State.TotalProcessed -gt 0) { + try { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type $Type -InputObject $State.TotalProcessed -Count + } catch { + Write-LogMessage -API 'CIPPDbItem' -tenant $TenantFilter ` + -message "Failed to record count for $Type : $($_.Exception.Message)" -sev Warning + } + } + + # Final cleanup + $BatchAccumulator = $null + [System.GC]::Collect() + } + } +} diff --git a/Modules/CIPPCore/Public/Add-CIPPDelegatedPermission.ps1 b/Modules/CIPPCore/Public/Add-CIPPDelegatedPermission.ps1 index d2a4f8cd19e1..26ece527aa48 100644 --- a/Modules/CIPPCore/Public/Add-CIPPDelegatedPermission.ps1 +++ b/Modules/CIPPCore/Public/Add-CIPPDelegatedPermission.ps1 @@ -5,12 +5,11 @@ function Add-CIPPDelegatedPermission { $TemplateId, $ApplicationId, $NoTranslateRequired, - $Tenantfilter + $TenantFilter ) Write-Host 'Adding Delegated Permissions' - Set-Location (Get-Item $PSScriptRoot).FullName - if ($ApplicationId -eq $env:ApplicationID -and $Tenantfilter -eq $env:TenantID) { + if ($ApplicationId -eq $env:ApplicationID -and $TenantFilter -eq $env:TenantID) { #return @('Cannot modify delgated permissions for CIPP-SAM on partner tenant') $RequiredResourceAccess = 'CIPPDefaults' } @@ -35,7 +34,7 @@ function Add-CIPPDelegatedPermission { $RequiredResourceAccess.Add($Resource) } - if ($Tenantfilter -eq $env:TenantID -or $Tenantfilter -eq 'PartnerTenant') { + if ($TenantFilter -eq $env:TenantID -or $TenantFilter -eq 'PartnerTenant') { $RequiredResourceAccess = $RequiredResourceAccess + ($AdditionalPermissions | Where-Object { $RequiredResourceAccess.resourceAppId -notcontains $_.resourceAppId }) } else { # remove the partner center permission if not pushing to partner tenant @@ -69,12 +68,13 @@ function Add-CIPPDelegatedPermission { } } - $Translator = Get-Content '.\PermissionsTranslator.json' | ConvertFrom-Json - $ServicePrincipalList = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/servicePrincipals?`$select=appId,id,displayName&`$top=999" -tenantid $Tenantfilter -skipTokenCache $true -NoAuthCheck $true + $ModuleBase = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase + $Translator = Get-Content (Join-Path $ModuleBase 'lib\data\PermissionsTranslator.json') | ConvertFrom-Json + $ServicePrincipalList = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/servicePrincipals?`$select=appId,id,displayName&`$top=999" -tenantid $TenantFilter -skipTokenCache $true -NoAuthCheck $true $ourSVCPrincipal = $ServicePrincipalList | Where-Object -Property appId -EQ $ApplicationId $Results = [System.Collections.Generic.List[string]]::new() - $CurrentDelegatedScopes = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/servicePrincipals/$($ourSVCPrincipal.id)/oauth2PermissionGrants" -skipTokenCache $true -tenantid $Tenantfilter -NoAuthCheck $true + $CurrentDelegatedScopes = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/servicePrincipals/$($ourSVCPrincipal.id)/oauth2PermissionGrants" -skipTokenCache $true -tenantid $TenantFilter -NoAuthCheck $true foreach ($App in $RequiredResourceAccess) { if (!$App) { @@ -86,7 +86,7 @@ function Add-CIPPDelegatedPermission { $Body = @{ appId = $App.resourceAppId } | ConvertTo-Json -Compress - $svcPrincipalId = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/v1.0/servicePrincipals' -tenantid $Tenantfilter -body $Body -type POST -NoAuthCheck $true + $svcPrincipalId = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/v1.0/servicePrincipals' -tenantid $TenantFilter -body $Body -type POST -NoAuthCheck $true } catch { $Results.add("Failed to create service principal for $($App.resourceAppId): $(Get-NormalizedError -message $_.Exception.Message)") continue @@ -125,7 +125,7 @@ function Add-CIPPDelegatedPermission { resourceId = $svcPrincipalId.id scope = $NewScope } | ConvertTo-Json -Compress - $CreateRequest = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/v1.0/oauth2PermissionGrants' -tenantid $Tenantfilter -body $Createbody -type POST -NoAuthCheck $true + $CreateRequest = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/v1.0/oauth2PermissionGrants' -tenantid $TenantFilter -body $Createbody -type POST -NoAuthCheck $true $Results.add("Successfully added permissions for $($svcPrincipalId.displayName)") } catch { $Results.add("Failed to add permissions for $($svcPrincipalId.displayName): $(Get-NormalizedError -message $_.Exception.Message)") @@ -138,7 +138,7 @@ function Add-CIPPDelegatedPermission { $OldScope.id | ForEach-Object { if ($_ -ne $OldScopeId) { try { - $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/v1.0/oauth2PermissionGrants/$_" -tenantid $Tenantfilter -type DELETE -NoAuthCheck $true + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/v1.0/oauth2PermissionGrants/$_" -tenantid $TenantFilter -type DELETE -NoAuthCheck $true } catch { } } @@ -162,7 +162,7 @@ function Add-CIPPDelegatedPermission { scope = "$NewScope" } | ConvertTo-Json -Compress try { - $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/v1.0/oauth2PermissionGrants/$($OldScopeId)" -tenantid $Tenantfilter -body $Patchbody -type PATCH -NoAuthCheck $true + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/v1.0/oauth2PermissionGrants/$($OldScopeId)" -tenantid $TenantFilter -body $Patchbody -type PATCH -NoAuthCheck $true } catch { $Results.add("Failed to update permissions for $($svcPrincipalId.displayName): $(Get-NormalizedError -message $_.Exception.Message)") continue diff --git a/Modules/CIPPCore/Public/Add-CIPPGroupMember.ps1 b/Modules/CIPPCore/Public/Add-CIPPGroupMember.ps1 index 1b6674d6e203..3a5ea194fe18 100644 --- a/Modules/CIPPCore/Public/Add-CIPPGroupMember.ps1 +++ b/Modules/CIPPCore/Public/Add-CIPPGroupMember.ps1 @@ -1,27 +1,115 @@ -function Add-CIPPGroupMember( - $Headers, - [string]$GroupType, - [string]$GroupId, - [string]$Member, - [string]$TenantFilter, - [string]$APIName = 'Add Group Member' -) { +function Add-CIPPGroupMember { + <# + .SYNOPSIS + Adds one or more members to a specified group in Microsoft Graph. + + .DESCRIPTION + This function adds one or more members to a specified group in Microsoft Graph, supporting different group types such as Distribution lists and Mail-Enabled Security groups. + + .PARAMETER Headers + The headers to include in the request, typically containing authentication tokens. This is supplied automatically by the API + + .PARAMETER GroupType + The type of group to which the member is being added, such as Security, Distribution list or Mail-Enabled Security. + + .PARAMETER GroupId + The unique identifier of the group to which the member will be added. + + .PARAMETER Member + An array of members to add to the group. + + .PARAMETER TenantFilter + The tenant identifier to filter the request. + + .PARAMETER APIName + The name of the API operation being performed. Defaults to 'Add Group Member'. + #> + [CmdletBinding()] + param( + $Headers, + [string]$GroupType, + [string]$GroupId, + [string[]]$Member, + [string]$TenantFilter, + [string]$APIName = 'Add Group Member' + ) try { if ($Member -like '*#EXT#*') { $Member = [System.Web.HttpUtility]::UrlEncode($Member) } - $MemberIDs = 'https://graph.microsoft.com/v1.0/directoryObjects/' + (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($Member)" -tenantid $TenantFilter).id - $AddMemberBody = "{ `"members@odata.bind`": $(ConvertTo-Json @($MemberIDs)) }" + $ODataBindString = 'https://graph.microsoft.com/v1.0/directoryObjects/{0}' + $Requests = foreach ($m in $Member) { + @{ + id = $m + url = "users/$($m)?`$select=id,userPrincipalName" + method = 'GET' + } + } + $Users = New-GraphBulkRequest -Requests @($Requests) -tenantid $TenantFilter + if ($GroupType -eq 'Distribution list' -or $GroupType -eq 'Mail-Enabled Security') { - $Params = @{ Identity = $GroupId; Member = $Member; BypassSecurityGroupManagerCheck = $true } - $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Add-DistributionGroupMember' -cmdParams $Params -UseSystemMailbox $true + $ExoBulkRequests = [System.Collections.Generic.List[object]]::new() + $ExoLogs = [System.Collections.Generic.List[object]]::new() + + foreach ($User in $Users) { + $Params = @{ Identity = $GroupId; Member = $User.body.userPrincipalName; BypassSecurityGroupManagerCheck = $true } + $ExoBulkRequests.Add(@{ + CmdletInput = @{ + CmdletName = 'Add-DistributionGroupMember' + Parameters = $Params + } + }) + $ExoLogs.Add(@{ + message = "Added member $($User.body.userPrincipalName) to $($GroupId) group" + target = $User.body.userPrincipalName + }) + } + + if ($ExoBulkRequests.Count -gt 0) { + $RawExoRequest = New-ExoBulkRequest -tenantid $TenantFilter -cmdletArray @($ExoBulkRequests) + $LastError = $RawExoRequest | Select-Object -Last 1 + + foreach ($ExoError in $LastError.error) { + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $ExoError -Sev 'Error' + throw $ExoError + } + + foreach ($ExoLog in $ExoLogs) { + $ExoError = $LastError | Where-Object { $ExoLog.target -in $_.target -and $_.error } + if (!$LastError -or ($LastError.error -and $LastError.target -notcontains $ExoLog.target)) { + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $ExoLog.message -Sev 'Info' + } + } + } } else { - $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/groups/$($GroupId)" -tenantid $TenantFilter -type patch -body $AddMemberBody -Verbose + # Build one bulk request list; New-GraphBulkRequest handles internal chunking + $AddRequests = foreach ($User in $Users) { + @{ + id = $User.body.id + method = 'POST' + url = "/groups/$($GroupId)/members/`$ref" + body = @{ '@odata.id' = ($ODataBindString -f $User.body.id) } + headers = @{ 'Content-Type' = 'application/json' } + } + } + $AddResults = New-GraphBulkRequest -tenantid $TenantFilter -Requests @($AddRequests) + $SuccessfulUsers = [system.collections.generic.list[string]]::new() + foreach ($Result in $AddResults) { + if ($Result.status -lt 200 -or $Result.status -gt 299) { + $FailedUsername = $Users | Where-Object { $_.body.id -eq $Result.id } | Select-Object -ExpandProperty body | Select-Object -ExpandProperty userPrincipalName + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Failed to add member $($FailedUsername): $($Result.body.error.message)" -Sev 'Error' + } else { + $UserPrincipalName = $Users | Where-Object { $_.body.id -eq $Result.id } | Select-Object -ExpandProperty body | Select-Object -ExpandProperty userPrincipalName + $SuccessfulUsers.Add($UserPrincipalName) + } + } } - $Results = "Successfully added user $($Member) to $($GroupId)." + $UserList = ($SuccessfulUsers -join ', ') + $Results = "Successfully added user $UserList to $($GroupId)." Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Results -Sev 'Info' return $Results } catch { $ErrorMessage = Get-CippException -Exception $_ - $Results = "Failed to add user $($Member) to $($GroupId) - $($ErrorMessage.NormalizedError)" + $UserList = if ($Users) { ($Users.body.userPrincipalName -join ', ') } else { ($Member -join ', ') } + $Results = "Failed to add user $UserList to $($GroupId) - $($ErrorMessage.NormalizedError)" Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Results -Sev 'error' -LogData $ErrorMessage throw $Results } diff --git a/Modules/CIPPCore/Public/Add-CIPPScheduledTask.ps1 b/Modules/CIPPCore/Public/Add-CIPPScheduledTask.ps1 index 4a8548e0a741..0981e4b361d3 100644 --- a/Modules/CIPPCore/Public/Add-CIPPScheduledTask.ps1 +++ b/Modules/CIPPCore/Public/Add-CIPPScheduledTask.ps1 @@ -19,111 +19,292 @@ function Add-CIPPScheduledTask { [Parameter(Mandatory = $true, ParameterSetName = 'RunNow')] [string]$RowKey, + [Parameter(Mandatory = $false, ParameterSetName = 'Default')] + [string]$DesiredStartTime = $null, + [Parameter(Mandatory = $false, ParameterSetName = 'Default')] [Parameter(Mandatory = $false, ParameterSetName = 'RunNow')] $Headers ) - $Table = Get-CIPPTable -TableName 'ScheduledTasks' - - if ($RunNow.IsPresent -and $RowKey) { - try { - $Filter = "PartitionKey eq 'ScheduledTask' and RowKey eq '$($RowKey)'" - $ExistingTask = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) - $ExistingTask.ScheduledTime = [int64](([datetime]::UtcNow) - (Get-Date '1/1/1970')).TotalSeconds - $ExistingTask.TaskState = 'Planned' - Add-CIPPAzDataTableEntity @Table -Entity $ExistingTask -Force - Write-LogMessage -headers $Headers -API 'RunNow' -message "Task $($ExistingTask.Name) scheduled to run now" -Sev 'Info' -Tenant $ExistingTask.Tenant - return "Task $($ExistingTask.Name) scheduled to run now" - } catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -headers $Headers -API 'RunNow' -message "Could not run task: $ErrorMessage" -Sev 'Error' - return "Could not run task: $ErrorMessage" - } - } else { - if ($DisallowDuplicateName) { - $Filter = "PartitionKey eq 'ScheduledTask' and Name eq '$($Task.Name)'" - $ExistingTask = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) - if ($ExistingTask) { - return "Task with name $($Task.Name) already exists" + try { + + $Table = Get-CIPPTable -TableName 'ScheduledTasks' + + if ($RunNow.IsPresent -and $RowKey) { + try { + $Filter = "PartitionKey eq 'ScheduledTask' and RowKey eq '$($RowKey)'" + $ExistingTask = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) + $ExistingTask.ScheduledTime = [int64](([datetime]::UtcNow) - (Get-Date '1/1/1970')).TotalSeconds + $ExistingTask.TaskState = 'Planned' + Add-CIPPAzDataTableEntity @Table -Entity $ExistingTask -Force + Write-LogMessage -headers $Headers -API 'RunNow' -message "Task $($ExistingTask.Name) scheduled to run now" -Sev 'Info' -Tenant $ExistingTask.Tenant + return "Task $($ExistingTask.Name) scheduled to run now" + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -headers $Headers -API 'RunNow' -message "Could not run task: $ErrorMessage" -Sev 'Error' + return "Could not run task: $ErrorMessage" + } + } else { + if (!$Task.RowKey) { + $RowKey = (New-Guid).Guid + } else { + $RowKey = $Task.RowKey } - } - $propertiesToCheck = @('Webhook', 'Email', 'PSA') - $PostExecutionObject = ($propertiesToCheck | Where-Object { $task.PostExecution.$_ -eq $true }) - $PostExecution = $PostExecutionObject ? ($PostExecutionObject -join ',') : ($Task.PostExecution.value -join ',') - $Parameters = [System.Collections.Hashtable]@{} - foreach ($Key in $task.Parameters.PSObject.Properties.Name) { - $Param = $task.Parameters.$Key + if ($DisallowDuplicateName) { + $Filter = "PartitionKey eq 'ScheduledTask' and Name eq '$($Task.Name)' and TaskState ne 'Completed' and TaskState ne 'Failed'" + $ExistingTask = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) + if ($ExistingTask) { + return "Task with name $($Task.Name) already exists" + } + } + + $propertiesToCheck = @('Webhook', 'Email', 'PSA') + $PostExecutionObject = ($propertiesToCheck | Where-Object { $task.PostExecution.$_ -eq $true }) + $PostExecution = $PostExecutionObject ? @($PostExecutionObject -join ',') : ($Task.PostExecution.value -join ',') + $Parameters = [System.Collections.Hashtable]@{} + foreach ($Key in $task.Parameters.PSObject.Properties.Name) { + $Param = $task.Parameters.$Key + + if ($null -eq $Param -or $Param -eq '' -or ($Param | Measure-Object).Count -eq 0) { + continue + } + + # handle different object types in params + if ($Param -is [System.Collections.IDictionary] -or $Param[0].Key) { + Write-Information "Parameter $Key is a hashtable" + $ht = @{} + foreach ($p in $Param.GetEnumerator()) { + $ht[$p.Key] = $p.Value + } + $Parameters[$Key] = [PSCustomObject]$ht + Write-Information "Converted $Key to PSObject $($Parameters[$Key] | ConvertTo-Json -Compress)" + } elseif ($Param -is [System.Object[]] -and -not ($Param -is [string])) { + Write-Information "Parameter $Key is an enumerable object" + $Param = $Param | ForEach-Object { + if ($null -eq $_) { + # Skip null entries + return + } + if ($_ -is [System.Collections.IDictionary]) { + [PSCustomObject]$_ + } elseif ($_ -is [PSCustomObject]) { + $_ + } else { + $_ + } + } | Where-Object { $null -ne $_ } + $Parameters[$Key] = $Param + } else { + Write-Information "Parameter $Key is a simple value" + $Parameters[$Key] = $Param + } + } - if ($null -eq $Param -or $Param -eq '' -or ($Param | Measure-Object).Count -eq 0) { - continue + if ($Headers) { + $Parameters.Headers = $Headers | Select-Object -Property 'x-forwarded-for', 'x-ms-client-principal', 'x-ms-client-principal-idp', 'x-ms-client-principal-name' } - if ($Param -is [System.Collections.IDictionary] -or $Param.Key) { - $ht = @{} - foreach ($p in $Param.GetEnumerator()) { - $ht[$p.Key] = $p.Value + + $Parameters = ($Parameters | ConvertTo-Json -Depth 10 -Compress) + $AdditionalProperties = [System.Collections.Hashtable]@{} + foreach ($Prop in $task.AdditionalProperties) { + if ($null -eq $Prop.Value -or $Prop.Value -eq '' -or ($Prop.Value | Measure-Object).Count -eq 0) { + continue } - $Parameters[$Key] = [PSCustomObject]$ht + $AdditionalProperties[$Prop.Key] = $Prop.Value + } + $AdditionalProperties = ([PSCustomObject]$AdditionalProperties | ConvertTo-Json -Compress) + if ($Parameters -eq 'null') { $Parameters = '' } + + + $Recurrence = if ([string]::IsNullOrEmpty($task.Recurrence.value)) { + $task.Recurrence } else { - $Parameters[$Key] = $Param + $task.Recurrence.value } - } - if ($Headers) { - $Parameters.Headers = $Headers | Select-Object -Property 'x-forwarded-for', 'x-ms-client-principal', 'x-ms-client-principal-idp', 'x-ms-client-principal-name' - } + if ($task.PSObject.Properties.Name -notcontains 'ScheduledTime') { + $task | Add-Member -MemberType NoteProperty -Name 'ScheduledTime' -Value 0 -Force + } - $Parameters = ($Parameters | ConvertTo-Json -Depth 10 -Compress) - $AdditionalProperties = [System.Collections.Hashtable]@{} - foreach ($Prop in $task.AdditionalProperties) { - $AdditionalProperties[$Prop.Key] = $Prop.Value - } - $AdditionalProperties = ([PSCustomObject]$AdditionalProperties | ConvertTo-Json -Compress) - if ($Parameters -eq 'null') { $Parameters = '' } - if (!$Task.RowKey) { - $RowKey = (New-Guid).Guid - } else { - $RowKey = $Task.RowKey - } + if ($DesiredStartTime) { + try { + # Parse the epoch time + $epochSeconds = [int64]$DesiredStartTime + # Set ScheduledTime to the desired time + $task.ScheduledTime = $epochSeconds + } catch { + Write-Warning "Failed to parse DesiredStartTime: $DesiredStartTime. Using provided ScheduledTime." + # Fall back to default + if ([int64]$task.ScheduledTime -eq 0 -or [string]::IsNullOrEmpty($task.ScheduledTime)) { + $task.ScheduledTime = [int64](([datetime]::UtcNow) - (Get-Date '1/1/1970')).TotalSeconds + } + } + } else { + # No DesiredStartTime - use current behavior (immediate execution) + if ([int64]$task.ScheduledTime -eq 0 -or [string]::IsNullOrEmpty($task.ScheduledTime)) { + $task.ScheduledTime = [int64](([datetime]::UtcNow) - (Get-Date '1/1/1970')).TotalSeconds + } + } + $excludedTenants = if ($task.excludedTenants.value) { + $task.excludedTenants.value -join ',' + } - $Recurrence = if ([string]::IsNullOrEmpty($task.Recurrence.value)) { - $task.Recurrence - } else { - $task.Recurrence.value - } + # Handle tenant filter - support both single tenant and tenant groups + $tenantFilter = $task.TenantFilter.value ? $task.TenantFilter.value : $task.TenantFilter + $originalTenantFilter = $task.TenantFilter - if ([int64]$task.ScheduledTime -eq 0 -or [string]::IsNullOrEmpty($task.ScheduledTime)) { - $task.ScheduledTime = [int64](([datetime]::UtcNow) - (Get-Date '1/1/1970')).TotalSeconds - } - $excludedTenants = if ($task.excludedTenants.value) { - $task.excludedTenants.value -join ',' - } - $entity = @{ - PartitionKey = [string]'ScheduledTask' - TaskState = [string]'Planned' - RowKey = [string]$RowKey - Tenant = $task.TenantFilter.value ? "$($task.TenantFilter.value)" : "$($task.TenantFilter)" - excludedTenants = [string]$excludedTenants - Name = [string]$task.Name - Command = [string]$task.Command.value - Parameters = [string]$Parameters - ScheduledTime = [string]$task.ScheduledTime - Recurrence = [string]$Recurrence - PostExecution = [string]$PostExecution - AdditionalProperties = [string]$AdditionalProperties - Hidden = [bool]$Hidden - Results = 'Planned' - } - if ($SyncType) { - $entity.SyncType = $SyncType - } - try { - Add-CIPPAzDataTableEntity @Table -Entity $entity -Force - } catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - return "Could not add task: $ErrorMessage" + # If tenant filter is a complex object (from form), extract the value + if ($tenantFilter -is [PSCustomObject] -and $tenantFilter.value) { + $originalTenantFilter = $tenantFilter + $tenantFilter = $tenantFilter.value + } + + # If tenant filter is a string but still seems to be JSON, try to parse it + if ($tenantFilter -is [string] -and $tenantFilter.StartsWith('{')) { + try { + $parsedTenantFilter = $tenantFilter | ConvertFrom-Json + if ($parsedTenantFilter.value) { + $originalTenantFilter = $parsedTenantFilter + $tenantFilter = $parsedTenantFilter.value + } + } catch { + # If parsing fails, use the string as is + Write-Warning "Could not parse tenant filter JSON: $tenantFilter" + } + } + + $entity = @{ + PartitionKey = [string]'ScheduledTask' + TaskState = [string]'Planned' + RowKey = [string]$RowKey + Tenant = [string]$tenantFilter + excludedTenants = [string]$excludedTenants + Name = [string]$task.Name + Command = [string]$task.Command.value + Parameters = [string]$Parameters + ScheduledTime = [string]$task.ScheduledTime + Recurrence = [string]$Recurrence + PostExecution = [string]$PostExecution + Reference = [string]$task.Reference + AdditionalProperties = [string]$AdditionalProperties + Hidden = [bool]$Hidden + Results = 'Planned' + AlertComment = [string]$task.AlertComment + } + + + # Always store DesiredStartTime if provided + if ($DesiredStartTime) { + $entity['DesiredStartTime'] = [string]$DesiredStartTime + } + + # Store the original tenant filter for group expansion during execution + if ($originalTenantFilter -is [PSCustomObject] -and $originalTenantFilter.type -eq 'Group') { + $entity['TenantGroup'] = [string]($originalTenantFilter | ConvertTo-Json -Compress) + } elseif ($originalTenantFilter -is [string] -and $originalTenantFilter.StartsWith('{')) { + # Check if it's a serialized group object + try { + $parsedOriginal = $originalTenantFilter | ConvertFrom-Json + if ($parsedOriginal.type -eq 'Group') { + $entity['TenantGroup'] = [string]$originalTenantFilter + } + } catch { + # Not a JSON object, ignore + } + } + + if ($task.Trigger) { + $entity.Trigger = [string]($task.Trigger | ConvertTo-Json -Compress) + $TriggerType = $task.Trigger.Type.value ?? $task.Trigger.Type + if ($TriggerType -eq 'DeltaQuery') { + $Parameters = @{} + if ($task.Trigger.WatchedAttributes -and ($task.Trigger.WatchedAttributes | Measure-Object).Count -gt 0) { + $Parameters.'$select' = $task.Trigger.WatchedAttributes | ForEach-Object { $_.value ?? $_ } -join ',' + } + if ($task.Trigger.ResourceFilter) { + $ResourceFilterValues = $task.Trigger.ResourceFilter | ForEach-Object { $_.value ?? $_ } + $Parameters.'$filter' = "id eq '" + ($ResourceFilterValues -join "' or id eq '") + "'" + } + $Resource = $task.Trigger.DeltaResource.value ?? $task.Trigger.DeltaResource + + if ($entity.TenantGroup) { + $tenantFilter = $entity.TenantGroup | ConvertFrom-Json + } + $DeltaQuery = @{ + TenantFilter = $tenantFilter + Resource = $Resource + Parameters = $Parameters + PartitionKey = $RowKey + } + + try { + $null = New-GraphDeltaQuery @DeltaQuery + Write-Information "Created delta query for resource $($Resource)" + } catch { + Write-Warning "Failed to create delta query for resource $($Resource): $($_.Exception.Message)" + } + } + } + + if ($SyncType) { + $entity.SyncType = $SyncType + } + try { + Add-CIPPAzDataTableEntity @Table -Entity $entity -Force + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-Information $_.InvocationInfo.PositionMessage + Write-Information ($entity | ConvertTo-Json) + return "Error - Could not add task: $ErrorMessage" + } + Write-LogMessage -headers $Headers -API 'ScheduledTask' -message "Added task $($entity.Name) with ID $($entity.RowKey)" -Sev 'Info' -Tenant $tenantFilter + + # Calculate relative time for next run + $scheduledEpoch = [int64]$entity.ScheduledTime + $currentTime = [datetime]::UtcNow + + if ($scheduledEpoch -eq 0 -or $scheduledEpoch -le ([int64](($currentTime) - (Get-Date '1/1/1970')).TotalSeconds)) { + # Task will run at next 15-minute interval - calculate efficiently + $minutesToAdd = 15 - ($currentTime.Minute % 15) + $nextRunTime = $currentTime.AddMinutes($minutesToAdd).AddSeconds(-$currentTime.Second).AddMilliseconds(-$currentTime.Millisecond) + $timeUntilRun = $nextRunTime - $currentTime + } else { + # Task is scheduled for a specific time in the future + $scheduledTime = [datetime]'1/1/1970' + [TimeSpan]::FromSeconds($scheduledEpoch) + $timeUntilRun = $scheduledTime - $currentTime + } + + # Format relative time + $relativeTime = switch ($timeUntilRun.TotalMinutes) { + { $_ -ge 1440 } { + $days = [Math]::Floor($timeUntilRun.TotalDays) + $hours = $timeUntilRun.Hours + $result = "$days day$(if ($days -ne 1) { 's' })" + if ($hours -gt 0) { $result += " and $hours hour$(if ($hours -ne 1) { 's' })" } + $result + break + } + { $_ -ge 60 } { + $hours = [Math]::Floor($timeUntilRun.TotalHours) + $minutes = $timeUntilRun.Minutes + $result = "$hours hour$(if ($hours -ne 1) { 's' })" + if ($minutes -gt 0) { $result += " and $minutes minute$(if ($minutes -ne 1) { 's' })" } + $result + break + } + { $_ -ge 2 } { "about $([Math]::Round($_)) minutes"; break } + { $_ -ge 1 } { 'about 1 minute'; break } + default { 'less than a minute' } + } + + return "Successfully added task: $($entity.Name). It will run in $relativeTime." } - return "Successfully added task: $($entity.Name)" + } catch { + Write-Warning "Failed to add scheduled task: $($_.Exception.Message)" + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + #Write-Information ($Task | ConvertTo-Json) + throw "Error - Could not add task: $ErrorMessage" } } diff --git a/Modules/CIPPCore/Public/Add-CippTestResult.ps1 b/Modules/CIPPCore/Public/Add-CippTestResult.ps1 new file mode 100644 index 000000000000..37007ff93508 --- /dev/null +++ b/Modules/CIPPCore/Public/Add-CippTestResult.ps1 @@ -0,0 +1,101 @@ +function Add-CippTestResult { + <# + .SYNOPSIS + Adds a test result to the CIPP test results database + + .DESCRIPTION + Stores test result data in the CippTestResults table with tenant and test ID as keys + + .PARAMETER TenantFilter + The tenant domain or GUID for the test result + + .PARAMETER TestId + Unique identifier for the test + + .PARAMETER Status + Test status (e.g., Pass, Fail, Skip) + + .PARAMETER ResultMarkdown + Markdown formatted result details + + .PARAMETER Risk + Risk level (e.g., High, Medium, Low) + + .PARAMETER Name + Display name of the test + + .PARAMETER Pillar + Security pillar category + + .PARAMETER UserImpact + Impact level on users + + .PARAMETER ImplementationEffort + Effort required for implementation + + .PARAMETER Category + Test category or classification + + .EXAMPLE + Add-CippTestResult -TenantFilter 'contoso.onmicrosoft.com' -TestId 'MFA-001' -Status 'Pass' -Name 'MFA Enabled' -Risk 'High' + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + [Parameter(Mandatory = $true)] + [string]$TestId, + + [Parameter(Mandatory = $false)] + [string]$TestType = 'Identity', + + [Parameter(Mandatory = $true)] + [string]$Status, + + [Parameter(Mandatory = $false)] + [string]$ResultMarkdown, + + [Parameter(Mandatory = $false)] + [string]$Risk, + + [Parameter(Mandatory = $false)] + [string]$Name, + + [Parameter(Mandatory = $false)] + [string]$Pillar, + + [Parameter(Mandatory = $false)] + [string]$UserImpact, + + [Parameter(Mandatory = $false)] + [string]$ImplementationEffort, + + [Parameter(Mandatory = $false)] + [string]$Category + ) + + try { + $Table = Get-CippTable -tablename 'CippTestResults' + + $Entity = @{ + PartitionKey = $TenantFilter + RowKey = $TestId + Status = $Status + ResultMarkdown = $ResultMarkdown ?? '' + Risk = $Risk ?? '' + Name = $Name ?? '' + Pillar = $Pillar ?? '' + UserImpact = $UserImpact ?? '' + ImplementationEffort = $ImplementationEffort ?? '' + Category = $Category ?? '' + TestType = $TestType + } + + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force + Write-LogMessage -API 'CIPPTestResults' -tenant $TenantFilter -message "Added test result: $TestId - $Status" -sev Debug + } catch { + Write-LogMessage -API 'CIPPTestResults' -tenant $TenantFilter -message "Failed to add test result: $($_.Exception.Message)" -sev Error + throw + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertAppSecretExpiry.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertAppSecretExpiry.ps1 index ac0a0026ae58..30097cd36268 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertAppSecretExpiry.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertAppSecretExpiry.ps1 @@ -31,6 +31,8 @@ function Get-CIPPAlertAppSecretExpiry { AppName = $App.displayName AppId = $App.appId Expires = $Credential.endDateTime + SecretName = $Credential.displayName + SecretID = $Credential.keyId Tenant = $TenantFilter } $AlertData.Add($Message) diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertAppleTerms.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertAppleTerms.ps1 index 3a1d0d6160c4..f5678cd95421 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertAppleTerms.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertAppleTerms.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertAppleTerms { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, @@ -18,13 +18,23 @@ function Get-CIPPAlertAppleTerms { # 4 = Warning try { - $appleterms = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/depOnboardingSettings" -tenantid $TenantFilter + Write-Host "Checking Apple Terms for $($TenantFilter)" + $AppleTerms = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/depOnboardingSettings' -tenantid $TenantFilter } catch { return } - if ($appleterms.lastSyncErrorCode -eq 3) { - $AlertData = "New Apple Business Manager terms are ready to accept." + if ($AppleTerms.lastSyncErrorCode -eq 3) { + $AlertData = [PSCustomObject]@{ + Message = 'New Apple Business Manager terms are ready to accept.' + AppleIdentifier = $AppleTerms.appleIdentifier + TokenName = $AppleTerms.tokenName + TokenExpirationDateTime = $AppleTerms.tokenExpirationDateTime + LastSyncErrorCode = $AppleTerms.lastSyncErrorCode + LastSuccessfulSyncDateTime = $AppleTerms.lastSuccessfulSyncDateTime + LastSyncTriggeredDateTime = $AppleTerms.lastSyncTriggeredDateTime + Tenant = $TenantFilter + } Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData } } diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertDefenderMalware.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertDefenderMalware.ps1 index ea4812c62548..252b5abe1b78 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertDefenderMalware.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertDefenderMalware.ps1 @@ -14,7 +14,18 @@ function Get-CIPPAlertDefenderMalware { try { $TenantId = (Get-Tenants | Where-Object -Property defaultDomainName -EQ $TenantFilter).customerId $AlertData = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/tenantRelationships/managedTenants/windowsDeviceMalwareStates?`$top=999&`$filter=tenantId eq '$($TenantId)'" | Where-Object { $_.malwareThreatState -eq 'Active' } | ForEach-Object { - "$($_.managedDeviceName): Malware found and active. Severity: $($_.MalwareSeverity). Malware name: $($_.MalwareDisplayName)" + [PSCustomObject]@{ + DeviceName = $_.managedDeviceName + MalwareName = $_.malwareDisplayName + MalwareSeverity = $_.malwareSeverity + ThreatState = $_.malwareThreatState + AdditionalInformationUrl = $_.additionalInformationUrl + InitialDetectionDateTime = $_.initialDetectionDateTime + LastStateChangeDateTime = $_.lastStateChangeDateTime + DetectionCount = $_.detectionCount + Tenant = $TenantFilter + TenantId = $_.tenantId + } } Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertDefenderStatus.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertDefenderStatus.ps1 index 8dca902b18a5..defef38677a1 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertDefenderStatus.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertDefenderStatus.ps1 @@ -13,7 +13,18 @@ function Get-CIPPAlertDefenderStatus { try { $TenantId = (Get-Tenants | Where-Object -Property defaultDomainName -EQ $TenantFilter).customerId $AlertData = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/tenantRelationships/managedTenants/windowsProtectionStates?`$top=999&`$filter=tenantId eq '$($TenantId)'" | Where-Object { $_.realTimeProtectionEnabled -eq $false -or $_.MalwareprotectionEnabled -eq $false } | ForEach-Object { - "$($_.managedDeviceName) - Real Time Protection: $($_.realTimeProtectionEnabled) & Malware Protection: $($_.MalwareprotectionEnabled)" + [PSCustomObject]@{ + ManagedDeviceName = $_.managedDeviceName + RealTimeProtectionEnabled = $_.realTimeProtectionEnabled + MalwareProtectionEnabled = $_.malwareProtectionEnabled + NetworkInspectionSystemEnabled = $_.networkInspectionSystemEnabled + ManagedDeviceHealthState = $_.managedDeviceHealthState + AttentionRequired = $_.attentionRequired + LastSyncDateTime = $_.lastSyncDateTime + OsVersion = $_.osVersion + Tenant = $TenantFilter + TenantId = $_.tenantId + } } Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertDepTokenExpiry.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertDepTokenExpiry.ps1 index ec55c10bb283..23004aa5c307 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertDepTokenExpiry.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertDepTokenExpiry.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertDepTokenExpiry { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, @@ -13,7 +13,7 @@ function Get-CIPPAlertDepTokenExpiry { try { try { - $DepTokens = (New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/depOnboardingSettings' -tenantid $TenantFilter).value + $DepTokens = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/depOnboardingSettings' -tenantid $TenantFilter $AlertData = foreach ($Dep in $DepTokens) { if ($Dep.tokenExpirationDateTime -lt (Get-Date).AddDays(30) -and $Dep.tokenExpirationDateTime -gt (Get-Date).AddDays(-7)) { $Message = 'Apple Device Enrollment Program token expiring on {0}' -f $Dep.tokenExpirationDateTime diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertEntraConnectSyncStatus.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertEntraConnectSyncStatus.ps1 index 3326efd47f3a..31ebb125ad83 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertEntraConnectSyncStatus.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertEntraConnectSyncStatus.ps1 @@ -20,14 +20,24 @@ function Get-CIPPAlertEntraConnectSyncStatus { $LastPasswordSync = $ConnectSyncStatus.onPremisesLastPasswordSyncDateTime $SyncDateTime = $ConnectSyncStatus.onPremisesLastSyncDateTime # Get the older of the two sync times - $LastSync = if ($SyncDateTime -lt $LastPasswordSync) { $SyncDateTime } else { $LastPasswordSync } + $LastSync = if ($SyncDateTime -lt $LastPasswordSync) { $SyncDateTime; $Cause = 'DirectorySync' } else { $LastPasswordSync; $Cause = 'PasswordSync' } if ($LastSync -lt (Get-Date).AddHours(-$Hours).ToUniversalTime()) { - $AlertData = "Entra Connect Sync for $($TenantFilter) has not run for over $Hours hours. Last sync was at $($LastSync.ToString('o'))" + + $AlertData = @{ + Message = "Entra Connect $Cause for $($TenantFilter) has not run for over $Hours hours. Last sync was at $($LastSync.ToString('o'))" + LastSync = $LastSync + Cause = $Cause + LastPasswordSync = $LastPasswordSync + LastDirectorySync = $SyncDateTime + Tenant = $TenantFilter + } Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData } } } catch { - Write-AlertMessage -tenant $($TenantFilter) -message "Could not get Entra Connect Sync Status for $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" + Write-AlertMessage -tenant $($TenantFilter) -message "Could not get Entra Connect Sync Status for $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" -LogData (Get-CippException -Exception $_) + Write-Information "Could not get Entra Connect Sync Status for $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" + Write-Information $_.PositionMessage } } diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertExpiringLicenses.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertExpiringLicenses.ps1 index 1c8046934429..a770812e9c7a 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertExpiringLicenses.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertExpiringLicenses.ps1 @@ -4,24 +4,59 @@ function Get-CIPPAlertExpiringLicenses { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, $TenantFilter ) try { + # Parse input parameters - default to 30 days if not specified + # Support both old format (direct value) and new format (object with properties) + if ($InputValue -is [hashtable] -or $InputValue -is [PSCustomObject]) { + $DaysThreshold = if ($InputValue.ExpiringLicensesDays) { [int]$InputValue.ExpiringLicensesDays } else { 30 } + $UnassignedOnly = if ($null -ne $InputValue.ExpiringLicensesUnassignedOnly) { [bool]$InputValue.ExpiringLicensesUnassignedOnly } else { $false } + } else { + # Backward compatibility: if InputValue is a simple value, treat it as days threshold + $DaysThreshold = if ($InputValue) { [int]$InputValue } else { 30 } + $UnassignedOnly = $false + } + $AlertData = Get-CIPPLicenseOverview -TenantFilter $TenantFilter | ForEach-Object { - $timeTorenew = [int64]$_.TimeUntilRenew - if ($timeTorenew -lt 30 -and $_.TimeUntilRenew -gt 0) { - Write-Host "$($_.License) will expire in $($_.TimeUntilRenew) days. The estimated term is $($_.EstTerm)" - "$($_.License) will expire in $($_.TimeUntilRenew) days. The estimated term is $($_.EstTerm)" + $UnassignedCount = [int]$_.CountAvailable + + # If unassigned only filter is enabled, skip licenses with no unassigned units + if ($UnassignedOnly -and $UnassignedCount -le 0) { + return } + foreach ($Term in $TermData) { + if ($Term.DaysUntilRenew -lt $DaysThreshold -and $Term.DaysUntilRenew -gt 0) { + $Message = if ($UnassignedOnly) { + "$($_.License) has $UnassignedCount unassigned license(s) expiring in $($Term.DaysUntilRenew) days. The estimated term is $($Term.Term)" + } else { + "$($_.License) will expire in $($Term.DaysUntilRenew) days. The estimated term is $($Term.Term)" + } + + Write-Host $Message + [PSCustomObject]@{ + Message = $Message + License = $_.License + SkuId = $_.skuId + DaysUntilRenew = $Term.DaysUntilRenew + Term = $Term.Term + Status = $Term.Status + TotalLicenses = $Term.TotalLicenses + CountUsed = $_.CountUsed + CountAvailable = $UnassignedCount + NextLifecycle = $Term.NextLifecycle + Tenant = $_.Tenant + } + } + } } Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData } catch { } } - diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertGlobalAdminAllowList.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertGlobalAdminAllowList.ps1 new file mode 100644 index 000000000000..82ae1ebc1cfb --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertGlobalAdminAllowList.ps1 @@ -0,0 +1,84 @@ +function Get-CIPPAlertGlobalAdminAllowList { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + try { + $AllowedAdmins = @() + $AlertEachAdmin = $false + if ($InputValue -is [hashtable] -or $InputValue -is [pscustomobject]) { + $AlertEachAdmin = [bool]($InputValue['AlertEachAdmin']) + $ApprovedValue = if ($InputValue.ContainsKey('ApprovedGlobalAdmins') -or ($InputValue.PSObject.Properties.Name -contains 'ApprovedGlobalAdmins')) { + $InputValue['ApprovedGlobalAdmins'] + } else { + $null + } + $InputValue = $ApprovedValue + } + if ($null -ne $InputValue) { + if ($InputValue -is [string]) { + $AllowedAdmins = $InputValue -split ',' | ForEach-Object { $_.Trim() } | Where-Object { $_ } + } elseif ($InputValue -is [System.Collections.IEnumerable]) { + $AllowedAdmins = $InputValue | ForEach-Object { $_.ToString().Trim() } | Where-Object { $_ } + } else { + $AllowedAdmins = @("$InputValue") + } + } + $AllowedLookup = $AllowedAdmins | ForEach-Object { $_.ToLowerInvariant() } | Select-Object -Unique + + if (-not $AllowedLookup -or $AllowedLookup.Count -eq 0) { + return + } + + $GlobalAdmins = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/directoryRoles/roleTemplateId=62e90394-69f5-4237-9190-012177145e10/members?`$select=id,displayName,userPrincipalName" -tenantid $TenantFilter -AsApp $true -ErrorAction Stop | Where-Object { + $_.'@odata.type' -eq '#microsoft.graph.user' -and $_.displayName -ne 'On-Premises Directory Synchronization Service Account' + } + + $UnapprovedAdmins = foreach ($admin in $GlobalAdmins) { + if ([string]::IsNullOrWhiteSpace($admin.userPrincipalName)) { continue } + $UpnPrefix = ($admin.userPrincipalName -split '@')[0].ToLowerInvariant() + if ($AllowedLookup -notcontains $UpnPrefix) { + [PSCustomObject]@{ + Admin = $admin + UpnPrefix = $UpnPrefix + } + } + } + + if ($UnapprovedAdmins) { + if ($AlertEachAdmin) { + $AlertData = foreach ($item in $UnapprovedAdmins) { + $admin = $item.Admin + $UpnPrefix = $item.UpnPrefix + [PSCustomObject]@{ + Message = "$($admin.userPrincipalName) has Global Administrator role but is not in the approved allow list (prefix '$UpnPrefix')." + DisplayName = $admin.displayName + UserPrincipalName = $admin.userPrincipalName + Id = $admin.id + AllowedList = if ($AllowedAdmins) { $AllowedAdmins -join ', ' } else { 'Not provided' } + Tenant = $TenantFilter + } + } + } else { + $NonCompliantUpns = @($UnapprovedAdmins.Admin.userPrincipalName) + $AlertData = @([PSCustomObject]@{ + Message = "Found $($NonCompliantUpns.Count) Global Administrator account(s) not in the approved allow list." + NonCompliantUsers = $NonCompliantUpns -join ', ' + ApprovedPrefixes = if ($AllowedAdmins) { $AllowedAdmins -join ', ' } else { 'Not provided' } + Tenant = $TenantFilter + }) + } + + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } + } catch { + Write-AlertMessage -tenant $TenantFilter -message "Failed to check approved Global Admins: $(Get-NormalizedError -message $_.Exception.Message)" + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertGlobalAdminNoAltEmail.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertGlobalAdminNoAltEmail.ps1 index 3d9805f1fa0a..3d3a7db653d9 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertGlobalAdminNoAltEmail.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertGlobalAdminNoAltEmail.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertGlobalAdminNoAltEmail { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, @@ -22,7 +22,14 @@ function Get-CIPPAlertGlobalAdminNoAltEmail { } if ($adminsWithoutAltEmail.Count -gt 0) { - $AlertData = "The following Global Admin accounts do not have an alternate email address set: $($adminsWithoutAltEmail.userPrincipalName -join ', ')" + $AlertData = foreach ($admin in $adminsWithoutAltEmail) { + [PSCustomObject]@{ + DisplayName = $admin.displayName + UserPrincipalName = $admin.userPrincipalName + Id = $admin.id + Tenant = $TenantFilter + } + } Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData } } catch { diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertHuntressRogueApps.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertHuntressRogueApps.ps1 index 8531738f452b..d43fed315a9a 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertHuntressRogueApps.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertHuntressRogueApps.ps1 @@ -10,7 +10,7 @@ function Get-CIPPAlertHuntressRogueApps { https://huntresslabs.github.io/rogueapps/ #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertInactiveLicensedUsers.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertInactiveLicensedUsers.ps1 index 2a0fb9ff869e..09288d3fee13 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertInactiveLicensedUsers.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertInactiveLicensedUsers.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertInactiveLicensedUsers { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, @@ -15,10 +15,26 @@ function Get-CIPPAlertInactiveLicensedUsers { try { try { - $Lookup = (Get-Date).AddDays(-90).ToUniversalTime() + $inactiveDays = 90 + $excludeDisabled = $false + if ($InputValue -is [hashtable] -or $InputValue -is [pscustomobject]) { + $excludeDisabled = [bool]$InputValue.ExcludeDisabled + if ($null -ne $InputValue.DaysSinceLastLogin -and $InputValue.DaysSinceLastLogin -ne '') { + $parsedDays = 0 + if ([int]::TryParse($InputValue.DaysSinceLastLogin.ToString(), [ref]$parsedDays) -and $parsedDays -gt 0) { + $inactiveDays = $parsedDays + } + } + } elseif ($InputValue -eq $true) { + # Backwards compatibility: legacy single-input boolean means exclude disabled users + $excludeDisabled = $true + } + + $Lookup = (Get-Date).AddDays(-$inactiveDays).ToUniversalTime() + Write-Host "Checking for users inactive since $Lookup (excluding disabled: $excludeDisabled)" # Build base filter - cannot filter assignedLicenses server-side - $BaseFilter = if ($InputValue -eq $true) { "accountEnabled eq true" } else { "" } + $BaseFilter = if ($excludeDisabled) { 'accountEnabled eq true' } else { '' } $Uri = if ($BaseFilter) { "https://graph.microsoft.com/beta/users?`$filter=$BaseFilter&`$select=id,UserPrincipalName,signInActivity,mail,userType,accountEnabled,assignedLicenses" @@ -56,7 +72,13 @@ function Get-CIPPAlertInactiveLicensedUsers { $Message = 'User {0} has been inactive for {1} days but still has a license assigned. Last sign-in: {2}' -f $user.UserPrincipalName, $daysSinceSignIn, $lastSignIn } - $user | Select-Object -Property UserPrincipalName, signInActivity, @{Name = 'Message'; Expression = { $Message } } + [PSCustomObject]@{ + UserPrincipalName = $user.UserPrincipalName + Id = $user.id + lastSignIn = $lastSignIn + Message = $Message + Tenant = $TenantFilter + } } } diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertIntunePolicyConflicts.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertIntunePolicyConflicts.ps1 new file mode 100644 index 000000000000..684f6bd0fc87 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertIntunePolicyConflicts.ps1 @@ -0,0 +1,144 @@ +function Get-CIPPAlertIntunePolicyConflicts { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + + # Normalize JSON/string input to object when possible + if ($InputValue -is [string]) { + try { + if ($InputValue.Trim().StartsWith('{')) { + $InputValue = $InputValue | ConvertFrom-Json -ErrorAction Stop + } + } catch { + # Leave as-is if parsing fails + } + } + + $Config = [ordered]@{ + AlertEachIssue = $false # align with AlertEachAdmin convention (false = aggregated) + IncludePolicies = $true + IncludeApplications = $true + AlertConflicts = $true + AlertErrors = $true + } + + if ($InputValue -is [hashtable] -or $InputValue -is [pscustomobject]) { + # Primary key follows AlertEach* convention; legacy Aggregate supported (true == aggregated) + if ($null -ne $InputValue.AlertEachIssue) { $Config.AlertEachIssue = [bool]$InputValue.AlertEachIssue } + if ($null -ne $InputValue.Aggregate) { $Config.AlertEachIssue = -not [bool]$InputValue.Aggregate } + + $Config.IncludePolicies = if ($null -ne $InputValue.IncludePolicies) { [bool]$InputValue.IncludePolicies } else { $Config.IncludePolicies } + $Config.IncludeApplications = if ($null -ne $InputValue.IncludeApplications) { [bool]$InputValue.IncludeApplications } else { $Config.IncludeApplications } + $Config.AlertConflicts = if ($null -ne $InputValue.AlertConflicts) { [bool]$InputValue.AlertConflicts } else { $Config.AlertConflicts } + $Config.AlertErrors = if ($null -ne $InputValue.AlertErrors) { [bool]$InputValue.AlertErrors } else { $Config.AlertErrors } + } elseif ($InputValue -is [bool]) { + # Back-compat for boolean toggle used as Aggregate previously + $Config.AlertEachIssue = -not [bool]$InputValue + } + + if (-not $Config.IncludePolicies -and -not $Config.IncludeApplications) { + return + } + + $AlertableStatuses = @() + if ($Config.AlertErrors) { $AlertableStatuses += 'error', 'failed' } + if ($Config.AlertConflicts) { $AlertableStatuses += 'conflict' } + + if (-not $AlertableStatuses) { + return + } + + $HasLicense = Test-CIPPStandardLicense -StandardName 'IntunePolicyStatus' -TenantFilter $TenantFilter -RequiredCapabilities @( + 'INTUNE_A', + 'MDM_Services', + 'EMS', + 'SCCM', + 'MICROSOFTINTUNEPLAN1' + ) + + if (-not $HasLicense) { + return + } + + $Issues = @() + + if ($Config.IncludePolicies) { + try { + $ManagedDevices = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/managedDevices?`$select=id,deviceName,userPrincipalName&`$expand=deviceConfigurationStates(`$select=displayName,state,settingStates)" -tenantid $TenantFilter + + foreach ($Device in $ManagedDevices) { + $PolicyStates = $Device.deviceConfigurationStates | Where-Object { $_.state -and ($AlertableStatuses -contains $_.state) } + foreach ($State in $PolicyStates) { + $Issues += [PSCustomObject]@{ + Message = "Policy '$($State.displayName)' is $($State.state) on device '$($Device.deviceName)' for $($Device.userPrincipalName)." + Tenant = $TenantFilter + Type = 'Policy' + PolicyName = $State.displayName + IssueStatus = $State.state + DeviceName = $Device.deviceName + UserPrincipalName = $Device.userPrincipalName + DeviceId = $Device.id + } + } + } + } catch { + Write-AlertMessage -tenant $TenantFilter -message "Failed to query Intune policy states: $(Get-NormalizedError -message $_.Exception.Message)" + } + } + + if ($Config.IncludeApplications) { + try { + $Applications = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps?`$select=id,displayName&`$expand=deviceStatuses(`$select=installState,deviceName,userPrincipalName,deviceId)" -tenantid $TenantFilter + + foreach ($App in $Applications) { + $BadStatuses = $App.deviceStatuses | Where-Object { + $_.installState -and ($AlertableStatuses -contains $_.installState.ToLowerInvariant()) + } + + foreach ($Status in $BadStatuses) { + $Issues += [PSCustomObject]@{ + Message = "App '$($App.displayName)' install is $($Status.installState) on device '$($Status.deviceName)' for $($Status.userPrincipalName)." + Tenant = $TenantFilter + Type = 'Application' + AppName = $App.displayName + IssueStatus = $Status.installState + DeviceName = $Status.deviceName + UserPrincipalName = $Status.userPrincipalName + DeviceId = $Status.deviceId + } + } + } + } catch { + Write-AlertMessage -tenant $TenantFilter -message "Failed to query Intune application states: $(Get-NormalizedError -message $_.Exception.Message)" + } + } + + if (-not $Issues) { + return + } + + if (-not $Config.AlertEachIssue) { + $PolicyCount = ($Issues | Where-Object { $_.Type -eq 'Policy' }).Count + $AppCount = ($Issues | Where-Object { $_.Type -eq 'Application' }).Count + + $AlertData = @([PSCustomObject]@{ + Message = "Found $PolicyCount policy issues and $AppCount application issues in Intune." + Tenant = $TenantFilter + PolicyIssues = $PolicyCount + AppIssues = $AppCount + Issues = $Issues + }) + } else { + $AlertData = $Issues + } + + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertLicenseAssignmentErrors.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertLicenseAssignmentErrors.ps1 new file mode 100644 index 000000000000..0c44125c4b03 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertLicenseAssignmentErrors.ps1 @@ -0,0 +1,101 @@ +function Get-CIPPAlertLicenseAssignmentErrors { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory)] + $TenantFilter, + [Alias('input')] + $InputValue + ) + + # Define error code translations for human-readable messages + $ErrorTranslations = @( + @{ + ErrorCode = 'CountViolation' + Description = 'Not enough licenses available - the organization has exceeded the number of available licenses for this SKU' + }, + @{ + ErrorCode = 'MutuallyExclusiveViolation' + Description = 'Conflicting licenses assigned - this license cannot be assigned alongside another license the user already has' + }, + @{ + ErrorCode = 'ProhibitedInUsageLocationViolation' + Description = "License not available in user's location - this license cannot be assigned to users in the user's current usage location" + }, + @{ + ErrorCode = 'UniquenessViolation' + Description = 'Duplicate license assignment - this license can only be assigned once per user' + }, + @{ + ErrorCode = 'Unknown' + Description = 'Unknown license assignment error - an unspecified error occurred during license assignment' + } + ) + + try { + # Get all users with license assignment states from Graph API + $Users = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$select=id,userPrincipalName,displayName,licenseAssignmentStates&`$top=999" -tenantid $TenantFilter + + # Filter users who have license assignment violations + $UsersWithViolations = $Users | Where-Object { + $_.licenseAssignmentStates -and + ($_.licenseAssignmentStates | Where-Object { + $_.error -and ( + $_.error -like '*CountViolation*' -or + $_.error -like '*MutuallyExclusiveViolation*' -or + $_.error -like '*ProhibitedInUsageLocationViolation*' -or + $_.error -like '*UniquenessViolation*' -or + $_.error -like '*Unknown*' + ) + }) + } + + # Build alert messages for users with violations + $LicenseAssignmentErrors = foreach ($User in $UsersWithViolations) { + $ViolationErrors = $User.licenseAssignmentStates | Where-Object { + $_.error -and ( + $_.error -like '*CountViolation*' -or + $_.error -like '*MutuallyExclusiveViolation*' -or + $_.error -like '*ProhibitedInUsageLocationViolation*' -or + $_.error -like '*UniquenessViolation*' -or + $_.error -like '*Unknown*' + ) + } + + foreach ($Violation in $ViolationErrors) { + # Find matching error translation + $ErrorTranslation = $ErrorTranslations | Where-Object { $Violation.error -like "*$($_.ErrorCode)*" } | Select-Object -First 1 + $HumanReadableError = if ($ErrorTranslation) { + $ErrorTranslation.Description + } else { + "Unknown license assignment error: $($Violation.error)" + } + + $PrettyName = Convert-SKUname -SkuID $Violation.skuId + + $Message = "$($User.userPrincipalName): $HumanReadableError (License: $PrettyName)" + [PSCustomObject]@{ + Message = $Message + UserPrincipalName = $User.userPrincipalName + Error = $HumanReadableError + LicenseName = $PrettyName + SkuId = $Violation.skuId + DisplayName = $User.displayName + Id = $User.id + Tenant = $TenantFilter + } + } + } + + # If errors are found, write alert + if ($LicenseAssignmentErrors) { + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $LicenseAssignmentErrors + } + + } catch { + Write-LogMessage -message "Failed to check license assignment errors: $($_.exception.message)" -API 'License Assignment Alerts' -tenant $TenantFilter -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertLicensedUsersWithRoles.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertLicensedUsersWithRoles.ps1 new file mode 100644 index 000000000000..d97625653c8e --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertLicensedUsersWithRoles.ps1 @@ -0,0 +1,36 @@ +function Get-CIPPAlertLicensedUsersWithRoles { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + + # Get all users with assigned licenses + $LicensedUsers = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$top=999&`$select=userPrincipalName,assignedLicenses,displayName" -tenantid $TenantFilter | Where-Object { $_.assignedLicenses -and $_.assignedLicenses.Count -gt 0 } + if (-not $LicensedUsers -or $LicensedUsers.Count -eq 0) { + Write-Information "No licensed users found for tenant $TenantFilter" + return $true + } + # Get all directory roles with their members + $DirectoryRoles = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/directoryRoles?`$expand=members" -tenantid $TenantFilter + if (-not $DirectoryRoles -or $DirectoryRoles.Count -eq 0) { + Write-Information "No directory roles found for tenant $TenantFilter" + return + } + $UsersToAlertOn = $LicensedUsers | Where-Object { $_.userPrincipalName -in $DirectoryRoles.members.userPrincipalName } + + + if ($UsersToAlertOn.Count -gt 0) { + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $UsersToAlertOn + } else { + Write-Information "No licensed users with roles found for tenant $TenantFilter" + } + + +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertLowDomainScore.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertLowDomainScore.ps1 index 5e2601a7bc36..e5284435bcdc 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertLowDomainScore.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertLowDomainScore.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertLowDomainScore { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory)] $TenantFilter, [Alias('input')] @@ -13,10 +13,14 @@ function Get-CIPPAlertLowDomainScore { ) $DomainData = Get-CIPPDomainAnalyser -TenantFilter $TenantFilter - $LowScoreDomains = $DomainData | Where-Object { - $_.ScorePercentage -lt $InputValue -and $_.ScorePercentage -ne '' - } | ForEach-Object { - "$($_.Domain): Domain security score is $($_.ScorePercentage)%, which is below the threshold of $InputValue%. Issues: $($_.ScoreExplanation)" + $LowScoreDomains = $DomainData | Where-Object { $_.ScorePercentage -lt $InputValue -and $_.ScorePercentage -ne '' } | ForEach-Object { + [PSCustomObject]@{ + Message = "$($_.Domain): Domain security score is $($_.ScorePercentage)%, which is below the threshold of $InputValue%. Issues: $($_.ScoreExplanation)" + Domain = $_.Domain + ScorePercentage = $_.ScorePercentage + ScoreExplanation = $_.ScoreExplanation + Tenant = $TenantFilter + } } if ($LowScoreDomains) { diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertLowTenantAlignment.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertLowTenantAlignment.ps1 new file mode 100644 index 000000000000..bc8c5a04672d --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertLowTenantAlignment.ps1 @@ -0,0 +1,52 @@ +function Get-CIPPAlertLowTenantAlignment { + <# + .SYNOPSIS + Alert for low tenant alignment percentage + .DESCRIPTION + This alert checks tenant alignment scores against standards templates and alerts when the alignment percentage falls below the specified threshold. + .PARAMETER TenantFilter + The tenant to check alignment for + .PARAMETER InputValue + The minimum alignment percentage threshold (0-100). Default is 80. + .FUNCTIONALITY + Entrypoint + .EXAMPLE + Get-CIPPAlertLowTenantAlignment -TenantFilter "contoso.onmicrosoft.com" -InputValue 75 + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory)] + $TenantFilter, + [Alias('input')] + [ValidateRange(0, 100)] + [int]$InputValue = 99 + ) + + try { + # Get tenant alignment data using the new function + $AlignmentData = Get-CIPPTenantAlignment -TenantFilter $TenantFilter + + if (-not $AlignmentData) { + Write-AlertMessage -tenant $TenantFilter -message "No alignment data found for tenant $TenantFilter. This may indicate no standards templates are configured or applied to this tenant." + return + } + + $LowAlignmentAlerts = $AlignmentData | Where-Object { $_.AlignmentScore -lt $InputValue } | ForEach-Object { + [PSCustomObject]@{ + TenantFilter = $_.TenantFilter + StandardName = $_.StandardName + StandardId = $_.StandardId + AlignmentScore = $_.AlignmentScore + LicenseMissingPercentage = $_.LicenseMissingPercentage + LatestDataCollection = $_.LatestDataCollection + } + } + + if ($LowAlignmentAlerts.Count -gt 0) { + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $LowAlignmentAlerts + } + + } catch { + Write-AlertMessage -tenant $TenantFilter -message "Could not get tenant alignment data for $TenantFilter`: $(Get-NormalizedError -message $_.Exception.message)" + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertMFAAdmins.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertMFAAdmins.ps1 index 6e5a304ad013..32170d84b9d0 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertMFAAdmins.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertMFAAdmins.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertMFAAdmins { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, @@ -18,9 +18,20 @@ function Get-CIPPAlertMFAAdmins { } } if (!$DuoActive) { - $users = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/reports/authenticationMethods/userRegistrationDetails?`$top=999&filter=IsAdmin eq true and isMfaRegistered eq false and userType eq 'member'&`$select=userDisplayName,userPrincipalName,lastUpdatedDateTime,isMfaRegistered,IsAdmin" -tenantid $($TenantFilter) -AsApp $true | Where-Object { $_.userDisplayName -ne 'On-Premises Directory Synchronization Service Account' } - if ($users.UserPrincipalName) { - $AlertData = "The following admins do not have MFA registered: $($users.UserPrincipalName -join ', ')" + $Users = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/reports/authenticationMethods/userRegistrationDetails?`$top=999&filter=IsAdmin eq true and isMfaRegistered eq false and userType eq 'member'&`$select=id,userDisplayName,userPrincipalName,lastUpdatedDateTime,isMfaRegistered,IsAdmin" -tenantid $($TenantFilter) -AsApp $true | + Where-Object { $_.userDisplayName -ne 'On-Premises Directory Synchronization Service Account' } + if ($Users.UserPrincipalName) { + $AlertData = foreach ($user in $Users) { + [PSCustomObject]@{ + Message = "Admin user $($user.userDisplayName) ($($user.userPrincipalName)) does not have MFA registered." + UserPrincipalName = $user.userPrincipalName + DisplayName = $user.userDisplayName + Id = $user.id + LastUpdated = $user.lastUpdatedDateTime + Tenant = $TenantFilter + } + } + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData } diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertMFAAlertUsers.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertMFAAlertUsers.ps1 index e56ce8fe2b04..32f14ddc1947 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertMFAAlertUsers.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertMFAAlertUsers.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertMFAAlertUsers { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, @@ -12,9 +12,16 @@ function Get-CIPPAlertMFAAlertUsers { ) try { - $users = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/reports/authenticationMethods/userRegistrationDetails?`$top=999&filter=IsAdmin eq false and isMfaRegistered eq false and userType eq 'member'&`$select=userDisplayName,userPrincipalName,lastUpdatedDateTime,isMfaRegistered,IsAdmin" -tenantid $($TenantFilter) -AsApp $true | Where-Object { $_.userDisplayName -ne 'On-Premises Directory Synchronization Service Account' } - if ($users.UserPrincipalName) { - $AlertData = "The following $($users.Count) users do not have MFA registered: $($users.UserPrincipalName -join ', ')" + $Users = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/reports/authenticationMethods/userRegistrationDetails?`$top=999&filter=IsAdmin eq false and isMfaRegistered eq false and userType eq 'member'&`$select=userDisplayName,userPrincipalName,lastUpdatedDateTime,isMfaRegistered,IsAdmin" -tenantid $($TenantFilter) -AsApp $true | + Where-Object { $_.userDisplayName -ne 'On-Premises Directory Synchronization Service Account' -and $_.userPrincipalName -notmatch '^package_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}@' } + if ($Users) { + $AlertData = foreach ($user in $Users) { + [PSCustomObject]@{ + UserPrincipalName = $user.userPrincipalName + DisplayName = $user.userDisplayName + LastUpdated = $user.lastUpdatedDateTime + } + } Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData } diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertMXRecordChanged.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertMXRecordChanged.ps1 new file mode 100644 index 000000000000..31811b78ed68 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertMXRecordChanged.ps1 @@ -0,0 +1,49 @@ +function Get-CIPPAlertMXRecordChanged { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory)] + $TenantFilter, + [Alias('input')] + $InputValue + ) + + try { + $DomainData = Get-CIPPDomainAnalyser -TenantFilter $TenantFilter + $CacheTable = Get-CippTable -tablename 'CacheMxRecords' + $PreviousResults = Get-CIPPAzDataTableEntity @CacheTable -Filter "PartitionKey eq '$TenantFilter'" + + $ChangedDomains = foreach ($Domain in $DomainData) { + $PreviousDomain = $PreviousResults | Where-Object { $_.Domain -eq $Domain.Domain } + $PreviousRecords = $PreviousDomain.ActualMXRecords -split ',' | Sort-Object + $CurrentRecords = $Domain.ActualMXRecords.Hostname | Sort-Object + if ($PreviousDomain -and $PreviousRecords -ne $CurrentRecords) { + "$($Domain.Domain): MX records changed from [$($PreviousRecords -join ', ')] to [$($CurrentRecords -join ', ')]" + } + } + # Update cache with current data + foreach ($Domain in $DomainData) { + $CurrentRecords = $Domain.ActualMXRecords.Hostname | Sort-Object + $CacheEntity = @{ + PartitionKey = [string]$TenantFilter + RowKey = [string]$Domain.Domain + Domain = [string]$Domain.Domain + ActualMXRecords = [string]($CurrentRecords -join ',') + LastRefresh = [string]$Domain.LastRefresh + MailProvider = [string]$Domain.MailProvider + } + Add-CIPPAzDataTableEntity @CacheTable -Entity $CacheEntity -Force + } + + if ($ChangedDomains) { + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $ChangedDomains + } + return $true + + } catch { + Write-LogMessage -message "Failed to check MX record changes: $($_.Exception.Message)" -API 'MX Record Alert' -tenant $TenantFilter -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewAppApproval.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewAppApproval.ps1 index 883413405345..d6899a8af1f4 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewAppApproval.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewAppApproval.ps1 @@ -12,12 +12,17 @@ function Get-CIPPAlertNewAppApproval { $TenantFilter, $Headers ) + try { - $Approvals = New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/identityGovernance/appConsent/appConsentRequests?`$filter=userConsentRequests/any (u:u/status eq 'InProgress')" -tenantid $TenantFilter + $Approvals = New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/identityGovernance/appConsent/appConsentRequests?`$top=100&`$filter=userConsentRequests/any (u:u/status eq 'InProgress')" -tenantid $TenantFilter + if ($Approvals.count -gt 0) { + $TenantGUID = (Get-Tenants -TenantFilter $TenantFilter -SkipDomains).customerId $AlertData = [System.Collections.Generic.List[PSCustomObject]]::new() + foreach ($App in $Approvals) { $userConsentRequests = New-GraphGetRequest -Uri "https://graph.microsoft.com/v1.0/identityGovernance/appConsent/appConsentRequests/$($App.id)/userConsentRequests" -tenantid $TenantFilter + $userConsentRequests | ForEach-Object { $consentUrl = if ($App.consentType -eq 'Static') { # if something is going wrong here you've probably stumbled on a fourth variation - rvdwegen @@ -29,17 +34,22 @@ function Get-CIPPAlertNewAppApproval { } $Message = [PSCustomObject]@{ + RequestId = $_.id AppName = $App.appDisplayName RequestUser = $_.createdBy.user.userPrincipalName Reason = $_.reason + RequestDate = $_.createdDateTime + Status = $_.status # Will always be InProgress as we filter to only get these but this will reduce confusion when an alert is generated AppId = $App.appId Scopes = ($App.pendingScopes.displayName -join ', ') ConsentURL = $consentUrl Tenant = $TenantFilter + TenantId = $TenantGUID } $AlertData.Add($Message) } } + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData } } catch { diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewRiskyUsers.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewRiskyUsers.ps1 index d8252ad12f65..c0691da7fe0d 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewRiskyUsers.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewRiskyUsers.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertNewRiskyUsers { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $TenantFilter @@ -13,17 +13,17 @@ function Get-CIPPAlertNewRiskyUsers { try { # Check if tenant has P2 capabilities $Capabilities = Get-CIPPTenantCapabilities -TenantFilter $TenantFilter - if (-not $Capabilities.AADPremiumService) { + if (-not ($Capabilities.AAD_PREMIUM_P2 -eq $true)) { Write-AlertMessage -tenant $($TenantFilter) -message 'Tenant does not have Azure AD Premium P2 licensing required for risky users detection' return } $Filter = "PartitionKey eq 'RiskyUsersDelta' and RowKey eq '{0}'" -f $TenantFilter $RiskyUsersDelta = (Get-CIPPAzDataTableEntity @Deltatable -Filter $Filter).delta | ConvertFrom-Json -ErrorAction SilentlyContinue - + # Get current risky users with more detailed information $NewDelta = (New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/identityProtection/riskyUsers' -tenantid $TenantFilter) | Select-Object userPrincipalName, riskLevel, riskState, riskDetail, riskLastUpdatedDateTime, isProcessing, history - + $NewDeltatoSave = $NewDelta | ConvertTo-Json -Depth 10 -Compress -ErrorAction SilentlyContinue | Out-String $DeltaEntity = @{ PartitionKey = 'RiskyUsersDelta' @@ -33,26 +33,23 @@ function Get-CIPPAlertNewRiskyUsers { Add-CIPPAzDataTableEntity @DeltaTable -Entity $DeltaEntity -Force if ($RiskyUsersDelta) { - $AlertData = $NewDelta | Where-Object { - $_.userPrincipalName -notin $RiskyUsersDelta.userPrincipalName - } | ForEach-Object { - $riskHistory = if ($_.history) { + $AlertData = $NewDelta | Where-Object { $_.userPrincipalName -notin $RiskyUsersDelta.userPrincipalName } | ForEach-Object { + $RiskHistory = if ($_.history) { $latestHistory = $_.history | Sort-Object -Property riskLastUpdatedDateTime -Descending | Select-Object -First 1 "Previous Risk Level: $($latestHistory.riskLevel), Last Updated: $($latestHistory.riskLastUpdatedDateTime)" - } - else { + } else { 'No previous risk history' } - + # Map risk level to severity - $severity = switch ($_.riskLevel) { + $Severity = switch ($_.riskLevel) { 'high' { 'Critical' } 'medium' { 'Warning' } 'low' { 'Info' } default { 'Info' } } - - @{ + + [PSCustomObject]@{ Message = "New risky user detected: $($_.userPrincipalName)" Details = @{ RiskLevel = $_.riskLevel @@ -60,18 +57,18 @@ function Get-CIPPAlertNewRiskyUsers { RiskDetail = $_.riskDetail LastUpdated = $_.riskLastUpdatedDateTime IsProcessing = $_.isProcessing - RiskHistory = $riskHistory - Severity = $severity + RiskHistory = $RiskHistory + Severity = $Severity } + Tenant = $TenantFilter } } - + if ($AlertData) { Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData } } - } - catch { + } catch { Write-AlertMessage -tenant $($TenantFilter) -message "Could not get risky users for $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" } } diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewRole.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewRole.ps1 index 04beb6a6d523..68167632b5b3 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewRole.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewRole.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertNewRole { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, @@ -14,9 +14,9 @@ function Get-CIPPAlertNewRole { try { $Filter = "PartitionKey eq 'AdminDelta' and RowKey eq '{0}'" -f $TenantFilter $AdminDelta = (Get-CIPPAzDataTableEntity @Deltatable -Filter $Filter).delta | ConvertFrom-Json -ErrorAction SilentlyContinue - $NewDelta = (New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/directoryRoles?`$expand=members" -tenantid $TenantFilter) | Select-Object displayname, Members | ForEach-Object { + $NewDelta = (New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/directoryRoles?`$expand=members" -tenantid $TenantFilter) | Select-Object displayName, Members | ForEach-Object { @{ - GroupName = $_.displayname + GroupName = $_.displayName Members = $_.Members.UserPrincipalName } } @@ -32,7 +32,12 @@ function Get-CIPPAlertNewRole { $AlertData = foreach ($Group in $NewDelta) { $OldDelta = $AdminDelta | Where-Object { $_.GroupName -eq $Group.GroupName } $Group.members | Where-Object { $_ -notin $OldDelta.members } | ForEach-Object { - "$_ has been added to the $($Group.GroupName) Role" + [PSCustomObject]@{ + Message = "$_ has been added to the $($Group.GroupName) Role" + User = $_ + Role = $Group.GroupName + Tenant = $TenantFilter + } } } Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNoCAConfig.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNoCAConfig.ps1 index 54f34db7ee17..48ae1dabff57 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNoCAConfig.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNoCAConfig.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertNoCAConfig { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, @@ -12,11 +12,20 @@ function Get-CIPPAlertNoCAConfig { ) try { - $CAAvailable = (New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/subscribedSkus' -tenantid $TenantFilter -ErrorAction Stop).serviceplans - if ('AAD_PREMIUM' -in $CAAvailable.servicePlanName) { + # Only consider CA available when a SKU that grants it has enabled seats (> 0) + $SubscribedSkus = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/subscribedSkus?`$select=prepaidUnits,servicePlans" -tenantid $TenantFilter -ErrorAction Stop + $CAAvailable = foreach ($sku in $SubscribedSkus) { + if ([int]$sku.prepaidUnits.enabled -gt 0) { $sku.servicePlans } + } + + if (('AAD_PREMIUM' -in $CAAvailable.servicePlanName) -or ('AAD_PREMIUM_P2' -in $CAAvailable.servicePlanName)) { $CAPolicies = (New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/identity/conditionalAccess/policies' -tenantid $TenantFilter) if (!$CAPolicies.id) { - $AlertData = 'Conditional Access is available, but no policies could be found.' + $AlertData = [PSCustomObject]@{ + Message = 'Conditional Access is available, but no policies could be found.' + Tenant = $TenantFilter + } + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData } } diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertOnedriveQuota.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertOnedriveQuota.ps1 index f0bff82aecfb..b39ea94d9a48 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertOnedriveQuota.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertOnedriveQuota.ps1 @@ -4,22 +4,20 @@ function Get-CIPPAlertOneDriveQuota { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory)] $TenantFilter, [Alias('input')] - [ValidateRange(0,100)] + [ValidateRange(0, 100)] [int]$InputValue = 90 ) try { $Usage = New-GraphGetRequest -tenantid $TenantFilter -uri "https://graph.microsoft.com/beta/reports/getOneDriveUsageAccountDetail(period='D7')?`$format=application/json&`$top=999" -AsApp $true if (!$Usage) { - Write-AlertMessage -tenant $($TenantFilter) -message "OneDrive quota Alert: Unable to get OneDrive usage: Error occurred: No data returned from API." return } - } - catch { + } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message Write-AlertMessage -tenant $($TenantFilter) -message "OneDrive quota Alert: Unable to get OneDrive usage: Error occurred: $ErrorMessage" return @@ -29,12 +27,20 @@ function Get-CIPPAlertOneDriveQuota { $OverQuota = $Usage | ForEach-Object { if ($_.StorageUsedInBytes -eq 0 -or $_.storageAllocatedInBytes -eq 0) { return } try { - $UsagePercent = [math]::Round(($_.storageUsedInBytes / $_.storageAllocatedInBytes) * 100) + $UsagePercent = [math]::Round(($_.storageUsedInBytes / $_.storageAllocatedInBytes) * 100) } catch { $UsagePercent = 100 } if ($UsagePercent -gt $InputValue) { $GBLeft = [math]::Round(($_.storageAllocatedInBytes - $_.storageUsedInBytes) / 1GB) - "$($_.ownerPrincipalName): OneDrive is $UsagePercent% full. OneDrive has $($GBLeft)GB storage left" + [PSCustomObject]@{ + Message = "$($_.ownerPrincipalName): OneDrive is $UsagePercent% full. OneDrive has $($GBLeft)GB storage left" + Owner = $_.ownerPrincipalName + UsagePercent = $UsagePercent + GBLeft = $GBLeft + StorageUsedInBytes = $_.storageUsedInBytes + StorageAllocatedInBytes = $_.storageAllocatedInBytes + Tenant = $TenantFilter + } } } diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertOverusedLicenses.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertOverusedLicenses.ps1 index b02a8bb00676..69e4f0254a84 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertOverusedLicenses.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertOverusedLicenses.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertOverusedLicenses { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, @@ -19,15 +19,24 @@ function Get-CIPPAlertOverusedLicenses { $skuid = $_ foreach ($sku in $skuid) { if ($sku.skuId -in $ExcludedSkuList.GUID) { continue } - $PrettyName = ($ConvertTable | Where-Object { $_.GUID -eq $sku.skuid }).'Product_Display_Name' | Select-Object -Last 1 + $PrettyName = Convert-SKUname -SkuID $sku.skuId if (!$PrettyName) { $PrettyName = $sku.skuPartNumber } if ($sku.prepaidUnits.enabled - $sku.consumedUnits -lt 0) { - "$PrettyName has Overused licenses. Using $($_.consumedUnits) of $($_.prepaidUnits.enabled)." + [PSCustomObject]@{ + Message = "$PrettyName has Overused licenses. Using $($sku.consumedUnits) of $($sku.prepaidUnits.enabled)." + LicenseName = $PrettyName + SkuId = $sku.skuId + SkuPartNumber = $sku.skuPartNumber + ConsumedUnits = $sku.consumedUnits + EnabledUnits = $sku.prepaidUnits.enabled + Tenant = $TenantFilter + } } } - } - Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + if ($AlertData) { + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } } catch { Write-AlertMessage -tenant $($TenantFilter) -message "Overused Licenses Alert Error occurred: $(Get-NormalizedError -message $_.Exception.message)" diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertQuarantineReleaseRequests.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertQuarantineReleaseRequests.ps1 new file mode 100644 index 000000000000..56182ece6f32 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertQuarantineReleaseRequests.ps1 @@ -0,0 +1,56 @@ +function Get-CIPPAlertQuarantineReleaseRequests { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + + $HasLicense = Test-CIPPStandardLicense -StandardName 'QuarantineReleaseRequests' -TenantFilter $TenantFilter -RequiredCapabilities @( + 'EXCHANGE_S_STANDARD', + 'EXCHANGE_S_ENTERPRISE', + 'EXCHANGE_S_STANDARD_GOV', + 'EXCHANGE_S_ENTERPRISE_GOV', + 'EXCHANGE_LITE' + ) + + if (-not $HasLicense) { + return + } + + try { + $RequestedReleases = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-QuarantineMessage' -cmdParams @{ PageSize = 1000; ReleaseStatus = 'Requested' } -ErrorAction Stop | Select-Object -ExcludeProperty *data.type* + + if ($RequestedReleases) { + # Get the CIPP URL for the Quarantine link + $CippConfigTable = Get-CippTable -tablename Config + $CippConfig = Get-CIPPAzDataTableEntity @CippConfigTable -Filter "PartitionKey eq 'InstanceProperties' and RowKey eq 'CIPPURL'" + $CIPPUrl = 'https://{0}' -f $CippConfig.Value + + $AlertData = foreach ($Message in $RequestedReleases) { + [PSCustomObject]@{ + Identity = $Message.Identity + MessageId = $Message.MessageId + Subject = $Message.Subject + SenderAddress = $Message.SenderAddress + RecipientAddress = $Message.RecipientAddress -join '; ' + Type = $Message.Type + PolicyName = $Message.PolicyName + ReleaseStatus = $Message.ReleaseStatus + ReceivedTime = $Message.ReceivedTime + QuarantineViewUrl = "$CIPPUrl/email/administration/quarantine?tenantFilter=$TenantFilter" + Tenant = $TenantFilter + } + } + + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } + } catch { + Write-AlertMessage -tenant $TenantFilter -message "QuarantineReleaseRequests: $(Get-NormalizedError -message $_.Exception.Message)" + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertQuotaUsed.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertQuotaUsed.ps1 index 1e61ffaa01b6..89d7600aded0 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertQuotaUsed.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertQuotaUsed.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertQuotaUsed { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, @@ -17,7 +17,7 @@ function Get-CIPPAlertQuotaUsed { return } $OverQuota = $AlertData | ForEach-Object { - if ($_.StorageUsedInBytes -eq 0 -or $_.prohibitSendReceiveQuotaInBytes -eq 0) { return } + if ([string]::IsNullOrEmpty($_.StorageUsedInBytes) -or [string]::IsNullOrEmpty($_.prohibitSendReceiveQuotaInBytes) -or $_.StorageUsedInBytes -eq 0 -or $_.prohibitSendReceiveQuotaInBytes -eq 0) { return } try { $PercentLeft = [math]::round(($_.storageUsedInBytes / $_.prohibitSendReceiveQuotaInBytes) * 100) } catch { $PercentLeft = 100 } @@ -31,9 +31,16 @@ function Get-CIPPAlertQuotaUsed { $Value = 90 } if ($PercentLeft -gt $Value) { - "$($_.userPrincipalName): Mailbox is more than $($value)% full. Mailbox is $PercentLeft% full" + [PSCustomObject]@{ + Message = "$($_.userPrincipalName): Mailbox is more than $($value)% full. Mailbox is $PercentLeft% full" + Owner = $_.userPrincipalName + RecipientType = $_.recipientType + UsagePercent = $PercentLeft + StorageUsedInBytes = $_.storageUsedInBytes + ProhibitSendReceiveQuotaInBytes = $_.prohibitSendReceiveQuotaInBytes + Tenant = $TenantFilter + } } - } Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $OverQuota } diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertReportOnlyCA.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertReportOnlyCA.ps1 new file mode 100644 index 000000000000..6205c9b6ac40 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertReportOnlyCA.ps1 @@ -0,0 +1,42 @@ +function Get-CIPPAlertReportOnlyCA { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + + try { + # Only consider CA available when a SKU that grants it has enabled seats (> 0) + $SubscribedSkus = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/subscribedSkus?`$select=prepaidUnits,servicePlans" -tenantid $TenantFilter -ErrorAction Stop + $CAAvailable = foreach ($sku in $SubscribedSkus) { + if ([int]$sku.prepaidUnits.enabled -gt 0) { $sku.servicePlans } + } + + if (('AAD_PREMIUM' -in $CAAvailable.servicePlanName) -or ('AAD_PREMIUM_P2' -in $CAAvailable.servicePlanName)) { + $CAPolicies = (New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/identity/conditionalAccess/policies?$top=999' -tenantid $TenantFilter -ErrorAction Stop) + + # Filter for policies in report-only mode + $ReportOnlyPolicies = $CAPolicies | Where-Object { $_.state -eq 'enabledForReportingButNotEnforced' } + + if ($ReportOnlyPolicies) { + $AlertData = foreach ($Policy in $ReportOnlyPolicies) { + [PSCustomObject]@{ + PolicyNames = $Policy.displayName + State = $Policy.state + Tenant = $TenantFilter + } + } + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } + } + } catch { + Write-AlertMessage -tenant $($TenantFilter) -message "Report-Only CA Alert: Error occurred: $(Get-NormalizedError -message $_.Exception.message)" + } + +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertRestrictedUsers.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertRestrictedUsers.ps1 new file mode 100644 index 000000000000..5e3992a1a14e --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertRestrictedUsers.ps1 @@ -0,0 +1,42 @@ +function Get-CIPPAlertRestrictedUsers { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + + try { + $BlockedUsers = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-BlockedSenderAddress' + + if ($BlockedUsers) { + $AlertData = foreach ($User in $BlockedUsers) { + # Parse the reason to make it more readable + $ReasonParts = $User.Reason -split ';' + $LimitType = ($ReasonParts | Where-Object { $_ -like 'ExceedingLimitType=*' }) -replace 'ExceedingLimitType=', '' + $InternalCount = ($ReasonParts | Where-Object { $_ -like 'InternalRecipientCountToday=*' }) -replace 'InternalRecipientCountToday=', '' + $ExternalCount = ($ReasonParts | Where-Object { $_ -like 'ExternalRecipientCountToday=*' }) -replace 'ExternalRecipientCountToday=', '' + + [PSCustomObject]@{ + SenderAddress = $User.SenderAddress + Message = "User $($User.SenderAddress) is restricted from sending email. Block type: $($LimitType ?? 'Unknown'). Created: $($User.CreatedDatetime)" + BlockType = if ($LimitType) { "$LimitType recipient limit exceeded" } else { 'Email sending limit exceeded' } + TemporaryBlock = $User.TemporaryBlock + InternalCount = $InternalCount + ExternalCount = $ExternalCount + CreatedDatetime = $User.CreatedDatetime + Reason = $User.Reason + Tenant = $TenantFilter + } + } + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } + } catch { + # Write-LogMessage -tenant $($TenantFilter) -message "Could not get restricted users for $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" -severity 'Error' -API 'Get-CIPPAlertRestrictedUsers' -LogData (Get-CippException -Exception $_) + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSecDefaultsDisabled.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSecDefaultsDisabled.ps1 new file mode 100644 index 000000000000..104cf17e03fa --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSecDefaultsDisabled.ps1 @@ -0,0 +1,35 @@ +function Get-CIPPAlertSecDefaultsDisabled { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + + try { + # Check if Security Defaults is disabled + $SecDefaults = (New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/identitySecurityDefaultsEnforcementPolicy' -tenantid $TenantFilter) + + if ($SecDefaults.isEnabled -eq $false) { + # Security Defaults is disabled, now check if there are any CA policies + $CAPolicies = (New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/identity/conditionalAccess/policies' -tenantid $TenantFilter) + + if (!$CAPolicies -or $CAPolicies.Count -eq 0) { + # Security Defaults is off AND no CA policies exist + $AlertData = [PSCustomObject]@{ + Message = 'Security Defaults is disabled and no Conditional Access policies are configured. This tenant has no baseline security protection.' + Tenant = $TenantFilter + } + + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } + } + } catch { + Write-AlertMessage -tenant $($TenantFilter) -message "Security Defaults Disabled Alert: Error occurred: $(Get-NormalizedError -message $_.Exception.message)" + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSecDefaultsUpsell.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSecDefaultsUpsell.ps1 index c560d47329cb..6832a61a216f 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSecDefaultsUpsell.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSecDefaultsUpsell.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertSecDefaultsUpsell { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, @@ -15,7 +15,12 @@ function Get-CIPPAlertSecDefaultsUpsell { try { $SecDefaults = (New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/identitySecurityDefaultsEnforcementPolicy' -tenantid $TenantFilter) if ($SecDefaults.isEnabled -eq $false -and $SecDefaults.securityDefaultsUpsell.action -in @('autoEnable', 'autoEnabledNotify')) { - $AlertData = 'Security Defaults will be automatically enabled on {0}' -f $SecDefaults.securityDefaultsUpsell.dueDateTime + $AlertData = [PSCustomObject]@{ + Message = ('Security Defaults will be automatically enabled on {0}' -f $SecDefaults.securityDefaultsUpsell.dueDateTime) + EnablementDate = $SecDefaults.securityDefaultsUpsell.dueDateTime + Action = $SecDefaults.securityDefaultsUpsell.action + Tenant = $TenantFilter + } Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData } diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSecureScore.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSecureScore.ps1 new file mode 100644 index 000000000000..4bf49b56bbc7 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSecureScore.ps1 @@ -0,0 +1,46 @@ + +function Get-CippAlertSecureScore { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + try { + $SecureScore = New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/security/secureScores?$top=1' -tenantid $TenantFilter -noPagination $true + if ($InputValue.ThresholdType.value -eq "absolute") { + if ($SecureScore.currentScore -lt $InputValue.InputValue) { + $SecureScoreResult = [PSCustomObject]@{ + Message = "Secure Score is below acceptable threshold" + Tenant = $TenantFilter + CurrentScore = $SecureScore.currentScore + MaxSecureScore = $SecureScore.maxScore + } + } else { + $SecureScoreResult = @() + } + } elseif ($InputValue.ThresholdType.value -eq "percent") { + $PercentageScore = [math]::Round((($SecureScore.currentScore / $SecureScore.maxScore) * 100),2) + if ($PercentageScore -lt $InputValue.InputValue) { + $SecureScoreResult = [PSCustomObject]@{ + Message = "Secure Score is below acceptable threshold" + Tenant = $TenantFilter + CurrentScore = $SecureScore.currentScore + MaxScore = $SecureScore.maxScore + CurrentScorePercentage = [math]::Round($PercentageScore,2) + ScoreThresholdPercentage = $InputValue.InputValue + } + } else { + $SecureScoreResult = @() + } + } + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $SecureScoreResult -PartitionKey SecureScore + } catch { + Write-AlertMessage -tenant $($TenantFilter) -message "Could not get Secure Score for $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSharepointQuota.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSharepointQuota.ps1 index 2de5890c7f85..9f969037d7b8 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSharepointQuota.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSharepointQuota.ps1 @@ -4,13 +4,13 @@ function Get-CIPPAlertSharepointQuota { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, $TenantFilter ) - Try { + try { $SharePointInfo = Get-SharePointAdminLink -Public $false -tenantFilter $TenantFilter $extraHeaders = @{ 'Accept' = 'application/json' @@ -27,7 +27,13 @@ function Get-CIPPAlertSharepointQuota { } $UsedStoragePercentage = [int](($sharepointQuota.GeoUsedStorageMB / $sharepointQuota.TenantStorageMB) * 100) if ($UsedStoragePercentage -gt $Value) { - $AlertData = "SharePoint Storage is at $($UsedStoragePercentage)% [$([math]::Round($sharepointQuota.GeoUsedStorageMB / 1024, 2)) GB/$([math]::Round($sharepointQuota.TenantStorageMB / 1024, 2)) GB]. Your alert threshold is $($Value)%" + $AlertData = [PSCustomObject]@{ + UsedStoragePercentage = $UsedStoragePercentage + StorageUsed = ([math]::Round($sharepointQuota.GeoUsedStorageMB / 1024, 2)) + StorageQuota = ([math]::Round($sharepointQuota.TenantStorageMB / 1024, 2)) + AlertQuotaThreshold = $Value + Tenant = $TenantFilter + } Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData } } diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSmtpAuthSuccess.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSmtpAuthSuccess.ps1 new file mode 100644 index 000000000000..8edc398ff3cc --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSmtpAuthSuccess.ps1 @@ -0,0 +1,32 @@ +function Get-CIPPAlertSmtpAuthSuccess { + <# + .FUNCTIONALITY + Entrypoint – Check sign-in logs for SMTP AUTH with success status + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + + try { + # Graph API endpoint for sign-ins + $uri = "https://graph.microsoft.com/v1.0/auditLogs/signIns?`$filter=clientAppUsed eq 'SMTP' and status/errorCode eq 0" + + # Call Graph API for the given tenant + $SignIns = New-GraphGetRequest -uri $uri -tenantid $TenantFilter + + # Select only the properties you care about + $AlertData = $SignIns.value | Select-Object userPrincipalName, createdDateTime, clientAppUsed, ipAddress, status, @{Name = 'Tenant'; Expression = { $TenantFilter } } + + # Write results into the alert pipeline + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + + } catch { + # Suppress errors if no data returned + # Uncomment if you want explicit error logging + # Write-AlertMessage -tenant $($TenantFilter) -message "Failed to query SMTP AUTH sign-ins for $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSoftDeletedMailboxes.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSoftDeletedMailboxes.ps1 index 68070c18497e..f446ec2e9161 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSoftDeletedMailboxes.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSoftDeletedMailboxes.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertSoftDeletedMailboxes { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, @@ -14,15 +14,16 @@ function Get-CIPPAlertSoftDeletedMailboxes { $Select = 'ExchangeGuid,ArchiveGuid,WhenSoftDeleted,UserPrincipalName,IsInactiveMailbox' try { - $SoftDeletedMailBoxes = New-ExoRequest -tenantid $TenantFilter -cmdlet 'get-mailbox' -cmdParams @{SoftDeletedMailbox = $true} -Select $Select | Select-Object ExchangeGuid, ArchiveGuid, WhenSoftDeleted, @{ Name = 'UPN'; Expression = { $_.'UserPrincipalName' } }, IsInactiveMailbox - + $SoftDeletedMailBoxes = New-ExoRequest -tenantid $TenantFilter -cmdlet 'get-mailbox' -cmdParams @{SoftDeletedMailbox = $true } -Select $Select | + Select-Object ExchangeGuid, ArchiveGuid, WhenSoftDeleted, @{ Name = 'UPN'; Expression = { $_.'UserPrincipalName' } }, IsInactiveMailbox, @{ Name = 'Tenant'; Expression = { $TenantFilter } } + # Filter out the mailboxes where IsInactiveMailbox is $true $AlertData = $SoftDeletedMailBoxes | Where-Object { $_.IsInactiveMailbox -ne $true } - + # Write the alert trace with the filtered data Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData } catch { Write-AlertMessage -tenant $($TenantFilter) -message "Failed to check for soft deleted mailboxes in $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" } -} \ No newline at end of file +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertTERRL.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertTERRL.ps1 index 4fa7a04e843c..163cfa782469 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertTERRL.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertTERRL.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertTERRL { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, @@ -29,11 +29,12 @@ function Get-CIPPAlertTERRL { EnforcementEnabled = $TerrlStatus.EnforcementEnabled Verdict = $TerrlStatus.Verdict Message = 'Tenant is at {0}% of their TERRL limit (using {1} of {2} messages). Tenant Enforcement Status: {3}' -f $UsagePercentage, $TerrlStatus.ObservedValue, $TerrlStatus.Threshold, $TerrlStatus.Verdict + Tenant = $TenantFilter } Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData } } } catch { - Write-AlertMessage -tenant $($TenantFilter) -message "Could not get TERRL status for $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" + Write-LogMessage -tenant $($TenantFilter) -message "Could not get TERRL status for $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" -severity 'Error' -API 'CIPPAlertTERRL' -LogData (Get-CippException -Exception $_) } } diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertUnusedLicenses.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertUnusedLicenses.ps1 index 0917ae0a6127..4db4e400eb1e 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertUnusedLicenses.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertUnusedLicenses.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertUnusedLicenses { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, @@ -15,13 +15,21 @@ function Get-CIPPAlertUnusedLicenses { $LicenseTable = Get-CIPPTable -TableName ExcludedLicenses $ExcludedSkuList = Get-CIPPAzDataTableEntity @LicenseTable $AlertData = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/subscribedSkus' -tenantid $TenantFilter | ForEach-Object { - $skuId = $_ - foreach ($sku in $skuId) { + $SkuId = $_ + foreach ($sku in $SkuId) { if ($sku.skuId -in $ExcludedSkuList.GUID) { continue } - $PrettyName = ($ConvertTable | Where-Object { $_.GUID -eq $sku.skuId }).'Product_Display_Name' | Select-Object -Last 1 + $PrettyName = Convert-SKUname -SkuID $sku.skuId if (!$PrettyName) { $PrettyName = $sku.skuPartNumber } if ($sku.prepaidUnits.enabled - $sku.consumedUnits -gt 0) { - "$PrettyName has unused licenses. Using $($_.consumedUnits) of $($_.prepaidUnits.enabled)." + [PSCustomObject]@{ + Message = "$PrettyName has unused licenses. Using $($sku.consumedUnits) of $($sku.prepaidUnits.enabled)." + LicenseName = $PrettyName + SkuId = $sku.skuId + SkuPartNumber = $sku.skuPartNumber + ConsumedUnits = $sku.consumedUnits + EnabledUnits = $sku.prepaidUnits.enabled + Tenant = $TenantFilter + } } } } diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertVppTokenExpiry.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertVppTokenExpiry.ps1 index 9767e24fd5c4..f645d9a03ec4 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertVppTokenExpiry.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertVppTokenExpiry.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertVppTokenExpiry { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, @@ -12,15 +12,14 @@ function Get-CIPPAlertVppTokenExpiry { ) try { try { - $VppTokens = (New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceAppManagement/vppTokens' -tenantid $TenantFilter).value + $VppTokens = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceAppManagement/vppTokens' -tenantid $TenantFilter $AlertData = foreach ($Vpp in $VppTokens) { if ($Vpp.state -ne 'valid') { $Message = 'Apple Volume Purchase Program Token is not valid, new token required' - $Vpp | Select-Object -Property organizationName, appleId, vppTokenAccountType, @{Name = 'Message'; Expression = { $Message } } - } - if ($Vpp.expirationDateTime -lt (Get-Date).AddDays(30) -and $Vpp.expirationDateTime -gt (Get-Date).AddDays(-7)) { + $Vpp | Select-Object -Property organizationName, appleId, vppTokenAccountType, @{Name = 'Message'; Expression = { $Message } }, @{Name = 'Tenant'; Expression = { $TenantFilter } } + } elseif ($Vpp.expirationDateTime -lt (Get-Date).AddDays(30).ToUniversalTime() -and $Vpp.expirationDateTime -gt (Get-Date).AddDays(-7).ToUniversalTime()) { $Message = 'Apple Volume Purchase Program token expiring on {0}' -f $Vpp.expirationDateTime - $Vpp | Select-Object -Property organizationName, appleId, vppTokenAccountType, @{Name = 'Message'; Expression = { $Message } } + $Vpp | Select-Object -Property organizationName, appleId, vppTokenAccountType, @{Name = 'Message'; Expression = { $Message } }, @{Name = 'Tenant'; Expression = { $TenantFilter } } } } Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertVulnerabilities.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertVulnerabilities.ps1 index ad1ff546b89c..068a039086ff 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertVulnerabilities.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertVulnerabilities.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertVulnerabilities { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, diff --git a/Modules/CIPPCore/Public/Alerts/Get-CippAlertBreachAlert.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CippAlertBreachAlert.ps1 index cd599c6b51d0..ce6f5a05c030 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CippAlertBreachAlert.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CippAlertBreachAlert.ps1 @@ -12,7 +12,7 @@ function Get-CippAlertBreachAlert { ) try { $Search = New-BreachTenantSearch -TenantFilter $TenantFilter - Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $Search + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $Search -PartitionKey BreachAlert } catch { Write-AlertMessage -tenant $($TenantFilter) -message "Could not get New Breaches for $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" } diff --git a/Modules/CIPPCore/Public/AuditLogs/Get-CippAuditLogSearchResults.ps1 b/Modules/CIPPCore/Public/AuditLogs/Get-CippAuditLogSearchResults.ps1 index 2ced11b10908..ecff809d72b2 100644 --- a/Modules/CIPPCore/Public/AuditLogs/Get-CippAuditLogSearchResults.ps1 +++ b/Modules/CIPPCore/Public/AuditLogs/Get-CippAuditLogSearchResults.ps1 @@ -28,6 +28,6 @@ function Get-CippAuditLogSearchResults { $GraphRequest.CountOnly = $true } - New-GraphGetRequest @GraphRequest -ErrorAction Stop + New-GraphGetRequest @GraphRequest -ErrorAction Stop | Sort-Object -Property createdDateTime -Descending } } diff --git a/Modules/CIPPCore/Public/AuditLogs/Get-CippAuditLogSearches.ps1 b/Modules/CIPPCore/Public/AuditLogs/Get-CippAuditLogSearches.ps1 index 693011c25aba..9301bb28aaba 100644 --- a/Modules/CIPPCore/Public/AuditLogs/Get-CippAuditLogSearches.ps1 +++ b/Modules/CIPPCore/Public/AuditLogs/Get-CippAuditLogSearches.ps1 @@ -13,27 +13,31 @@ function Get-CippAuditLogSearches { [Parameter()] [switch]$ReadyToProcess ) - + $AuditLogSearchesTable = Get-CippTable -TableName 'AuditLogSearches' if ($ReadyToProcess.IsPresent) { - $AuditLogSearchesTable = Get-CippTable -TableName 'AuditLogSearches' $15MinutesAgo = (Get-Date).AddMinutes(-15).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') $1DayAgo = (Get-Date).AddDays(-1).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') - $PendingQueries = Get-CIPPAzDataTableEntity @AuditLogSearchesTable -Filter "Tenant eq '$TenantFilter' and (CippStatus eq 'Pending' or (CippStatus eq 'Processing' and Timestamp le datetime'$15MinutesAgo')) and Timestamp ge datetime'$1DayAgo'" | Sort-Object Timestamp + $PendingQueries = Get-CIPPAzDataTableEntity @AuditLogSearchesTable -Filter "PartitionKey eq 'Search' and Tenant eq '$TenantFilter' and (CippStatus eq 'Pending' or (CippStatus eq 'Processing' and Timestamp le datetime'$15MinutesAgo')) and Timestamp ge datetime'$1DayAgo'" | Sort-Object Timestamp + } else { + $7DaysAgo = (Get-Date).AddDays(-7).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + $PendingQueries = Get-CIPPAzDataTableEntity @AuditLogSearchesTable -Filter "Tenant eq '$TenantFilter' and Timestamp ge datetime'$7DaysAgo'" + } - $BulkRequests = foreach ($PendingQuery in $PendingQueries) { - @{ - id = $PendingQuery.RowKey - url = 'security/auditLog/queries/' + $PendingQuery.RowKey - method = 'GET' - } + $BulkRequests = foreach ($PendingQuery in $PendingQueries) { + @{ + id = $PendingQuery.RowKey + url = 'security/auditLog/queries/' + $PendingQuery.RowKey + method = 'GET' } - if ($BulkRequests.Count -eq 0) { - return @() - } - $Queries = New-GraphBulkRequest -Requests @($BulkRequests) -AsApp $true -TenantId $TenantFilter | Select-Object -ExpandProperty body + } + if ($BulkRequests.Count -eq 0) { + return @() + } + $Queries = New-GraphBulkRequest -Requests @($BulkRequests) -AsApp $true -TenantId $TenantFilter | Select-Object -ExpandProperty body + + if ($ReadyToProcess.IsPresent) { $Queries = $Queries | Where-Object { $PendingQueries.RowKey -contains $_.id -and $_.status -eq 'succeeded' } - } else { - $Queries = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/security/auditLog/queries' -AsApp $true -tenantid $TenantFilter } + return $Queries } diff --git a/Modules/CIPPCore/Public/AuditLogs/New-CippAuditLogSearch.ps1 b/Modules/CIPPCore/Public/AuditLogs/New-CippAuditLogSearch.ps1 index 2bb80d31427f..7b07fcfe8c0f 100644 --- a/Modules/CIPPCore/Public/AuditLogs/New-CippAuditLogSearch.ps1 +++ b/Modules/CIPPCore/Public/AuditLogs/New-CippAuditLogSearch.ps1 @@ -125,7 +125,7 @@ function New-CippAuditLogSearch { ) $SearchParams = @{ - displayName = 'CIPP Audit Search - ' + (Get-Date).ToString('yyyy-MM-dd HH:mm:ss') + displayName = $DisplayName filterStartDateTime = $StartTime.ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ss') filterEndDateTime = $EndTime.AddHours(1).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ss') } @@ -147,7 +147,7 @@ function New-CippAuditLogSearch { if ($IPAddressFilters) { $SearchParams.ipAddressFilters = @($IPAddressFilters) } - if ($ObjectIdFilterss) { + if ($ObjectIdFilters) { $SearchParams.objectIdFilters = @($ObjectIdFilters) } if ($AdministrativeUnitFilters) { @@ -157,20 +157,26 @@ function New-CippAuditLogSearch { if ($PSCmdlet.ShouldProcess('Create a new audit log search for tenant ' + $TenantFilter)) { $Query = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/security/auditLog/queries' -body ($SearchParams | ConvertTo-Json -Compress) -tenantid $TenantFilter -AsApp $true + if ($ProcessLogs.IsPresent -and $Query.id) { - $Entity = [PSCustomObject]@{ - PartitionKey = [string]'Search' - RowKey = [string]$Query.id - Tenant = [string]$TenantFilter - DisplayName = [string]$DisplayName - StartTime = [datetime]$StartTime.ToUniversalTime() - EndTime = [datetime]$EndTime.ToUniversalTime() - Query = [string]($Query | ConvertTo-Json -Compress) - CippStatus = [string]'Pending' - } - $Table = Get-CIPPTable -TableName 'AuditLogSearches' - Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force | Out-Null + $CippStatus = 'Pending' + } else { + $CippStatus = 'N/A' + } + + $Entity = [PSCustomObject]@{ + PartitionKey = [string]'Search' + RowKey = [string]$Query.id + Tenant = [string]$TenantFilter + DisplayName = [string]$DisplayName + StartTime = [datetime]$StartTime.ToUniversalTime() + EndTime = [datetime]$EndTime.ToUniversalTime() + Query = [string]($Query | ConvertTo-Json -Compress) + CippStatus = [string]$CippStatus } + $Table = Get-CIPPTable -TableName 'AuditLogSearches' + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force | Out-Null + return $Query } } diff --git a/Modules/CIPPCore/Public/Authentication/Get-CIPPAzIdentityToken.ps1 b/Modules/CIPPCore/Public/Authentication/Get-CIPPAzIdentityToken.ps1 new file mode 100644 index 000000000000..94f8037d8477 --- /dev/null +++ b/Modules/CIPPCore/Public/Authentication/Get-CIPPAzIdentityToken.ps1 @@ -0,0 +1,78 @@ +function Get-CIPPAzIdentityToken { + <# + .SYNOPSIS + Get the Azure Identity token for Managed Identity + .DESCRIPTION + This function retrieves the Azure Identity token using the Managed Identity endpoint for the specified resource. + Tokens are cached per resource URL until expiration to reduce redundant API calls. + .PARAMETER ResourceUrl + The Azure resource URL to get a token for. Defaults to 'https://management.azure.com/' for Azure Resource Manager. + + Common resources: + - https://management.azure.com/ (Azure Resource Manager - default) + - https://vault.azure.net (Azure Key Vault) + - https://api.loganalytics.io (Log Analytics / Application Insights) + - https://storage.azure.com/ (Azure Storage) + .PARAMETER SkipCache + Force a new token to be fetched, bypassing the cache. + .EXAMPLE + Get-CIPPAzIdentityToken + Gets a token for Azure Resource Manager + .EXAMPLE + Get-CIPPAzIdentityToken -ResourceUrl 'https://vault.azure.net' + Gets a token for Azure Key Vault + .EXAMPLE + Get-CIPPAzIdentityToken -ResourceUrl 'https://api.loganalytics.io' + Gets a token for Log Analytics API + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false)] + [string]$ResourceUrl = 'https://management.azure.com/', + [switch]$SkipCache + ) + + $Endpoint = $env:IDENTITY_ENDPOINT + $Secret = $env:IDENTITY_HEADER + + if (-not $Endpoint -or -not $Secret) { + throw 'Managed Identity environment variables (IDENTITY_ENDPOINT/IDENTITY_HEADER) not found. Is Managed Identity enabled on the Function App?' + } + + # Build cache key from resource URL + $TokenKey = "ManagedIdentity-$ResourceUrl" + + try { + # Check if cached token exists and is still valid + if ($script:ManagedIdentityTokens.$TokenKey -and [int](Get-Date -UFormat %s -Millisecond 0) -lt $script:ManagedIdentityTokens.$TokenKey.expires_on -and $SkipCache -ne $true) { + return $script:ManagedIdentityTokens.$TokenKey.access_token + } + + # Get new token + $EncodedResource = [System.Uri]::EscapeDataString($ResourceUrl) + $TokenUri = "$($Endpoint)?resource=$EncodedResource&api-version=2019-08-01" + $Headers = @{ + 'X-IDENTITY-HEADER' = $Secret + } + + $TokenResponse = Invoke-RestMethod -Method Get -Headers $Headers -Uri $TokenUri -ErrorAction Stop + + # Calculate expiration time + $ExpiresOn = [int](Get-Date -UFormat %s -Millisecond 0) + $TokenResponse.expires_in + + # Store in cache (initialize synchronized hash table if needed) + if (-not $script:ManagedIdentityTokens) { + $script:ManagedIdentityTokens = [HashTable]::Synchronized(@{}) + } + + # Add expires_on to token response for tracking + Add-Member -InputObject $TokenResponse -NotePropertyName 'expires_on' -NotePropertyValue $ExpiresOn -Force + + # Cache the token + $script:ManagedIdentityTokens.$TokenKey = $TokenResponse + + return $TokenResponse.access_token + } catch { + throw "Failed to get managed identity token for resource '$ResourceUrl': $($_.Exception.Message)" + } +} diff --git a/Modules/CIPPCore/Public/Authentication/Get-CIPPHttpFunctions.ps1 b/Modules/CIPPCore/Public/Authentication/Get-CIPPHttpFunctions.ps1 index 6b2b0b626ba4..178ee74fb4ab 100644 --- a/Modules/CIPPCore/Public/Authentication/Get-CIPPHttpFunctions.ps1 +++ b/Modules/CIPPCore/Public/Authentication/Get-CIPPHttpFunctions.ps1 @@ -1,5 +1,5 @@ function Get-CIPPHttpFunctions { - Param( + param( [switch]$ByRole, [switch]$ByRoleGroup ) @@ -8,24 +8,24 @@ function Get-CIPPHttpFunctions { $Functions = Get-Command -Module CIPPCore | Where-Object { $_.Visibility -eq 'Public' -and $_.Name -match 'Invoke-*' } $Results = foreach ($Function in $Functions) { $Help = Get-Help $Function - if ($Help.Functionality -ne 'Entrypoint') { continue } + if ($Help.Functionality -notmatch 'Entrypoint') { continue } if ($Help.Role -eq 'Public') { continue } [PSCustomObject]@{ - Function = $Function.Name - Role = $Help.Role + Function = $Function.Name + Role = $Help.Role + Description = $Help.Description } } if ($ByRole.IsPresent -or $ByRoleGroup.IsPresent) { - $Results = $Results | Group-Object -Property Role | Select-Object -Property @{l = 'Permission'; e = { $_.Name -eq '' ? 'None' : $_.Name } }, Count, @{l = 'Functions'; e = { $_.Group.Function -replace 'Invoke-' } } | Sort-Object -Property Permission - + $Results = $Results | Group-Object -Property Role | Select-Object -Property @{l = 'Permission'; e = { $_.Name -eq '' ? 'None' : $_.Name } }, Count, @{l = 'Functions'; e = { $_.Group | Select-Object @{l = 'Name'; e = { $_.Function -replace 'Invoke-' } }, Description } } | Sort-Object -Property Permission if ($ByRoleGroup.IsPresent) { $RoleGroup = @{} foreach ($Permission in $Results) { $PermSplit = $Permission.Permission -split '\.' if ($PermSplit.Count -ne 3) { continue } - if ($RoleGroup[$PermSplit[0]] -eq $null) { $RoleGroup[$PermSplit[0]] = @{} } - if ($RoleGroup[$PermSplit[0]][$PermSplit[1]] -eq $null) { $RoleGroup[$PermSplit[0]][$PermSplit[1]] = @{} } + if ($null -eq $RoleGroup[$PermSplit[0]]) { $RoleGroup[$PermSplit[0]] = @{} } + if ($null -eq $RoleGroup[$PermSplit[0]][$PermSplit[1]]) { $RoleGroup[$PermSplit[0]][$PermSplit[1]] = @{} } $RoleGroup[$PermSplit[0]][$PermSplit[1]][$PermSplit[2]] = @($Permission.Functions) } $Results = $RoleGroup diff --git a/Modules/CIPPCore/Public/Authentication/Get-CIPPRoleIPRanges.ps1 b/Modules/CIPPCore/Public/Authentication/Get-CIPPRoleIPRanges.ps1 new file mode 100644 index 000000000000..cd4745d5c1b4 --- /dev/null +++ b/Modules/CIPPCore/Public/Authentication/Get-CIPPRoleIPRanges.ps1 @@ -0,0 +1,51 @@ +function Get-CIPPRoleIPRanges { + <# + .SYNOPSIS + Gets combined IP ranges from a list of roles + .DESCRIPTION + This function retrieves IP range restrictions from custom roles and returns a consolidated list. + Superadmin roles are excluded from IP restrictions. + .PARAMETER Roles + Array of role names to check for IP restrictions + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [array]$Roles + ) + + $CombinedIPRanges = [System.Collections.Generic.List[string]]::new() + + # Superadmin is never restricted by IP + if ($Roles -contains 'superadmin') { + return @('Any') + } + + $AccessIPRangeTable = Get-CippTable -tablename 'AccessIPRanges' + + foreach ($Role in $Roles) { + try { + $IPRangeEntity = Get-CIPPAzDataTableEntity @AccessIPRangeTable -Filter "RowKey eq '$($Role.ToLower())'" + if ($IPRangeEntity -and $IPRangeEntity.IPRanges) { + $IPRanges = @($IPRangeEntity.IPRanges | ConvertFrom-Json) + foreach ($IPRange in $IPRanges) { + if ($IPRange -and -not $CombinedIPRanges.Contains($IPRange)) { + $CombinedIPRanges.Add($IPRange) + } + } + } + } catch { + Write-Information "Failed to get IP ranges for role '$Role': $($_.Exception.Message)" + continue + } + } + + # If no IP ranges were found in any role, allow all + if ($CombinedIPRanges.Count -eq 0) { + return @('Any') + } + + return @($CombinedIPRanges) | Sort-Object -Unique +} diff --git a/Modules/CIPPCore/Public/Authentication/Get-CIPPRolePermissions.ps1 b/Modules/CIPPCore/Public/Authentication/Get-CIPPRolePermissions.ps1 index 8bac3674e677..4b89c560b759 100644 --- a/Modules/CIPPCore/Public/Authentication/Get-CIPPRolePermissions.ps1 +++ b/Modules/CIPPCore/Public/Authentication/Get-CIPPRolePermissions.ps1 @@ -20,11 +20,13 @@ function Get-CIPPRolePermissions { $Permissions = $Role.Permissions | ConvertFrom-Json $AllowedTenants = if ($Role.AllowedTenants) { $Role.AllowedTenants | ConvertFrom-Json } else { @() } $BlockedTenants = if ($Role.BlockedTenants) { $Role.BlockedTenants | ConvertFrom-Json } else { @() } + $BlockedEndpoints = if ($Role.BlockedEndpoints) { $Role.BlockedEndpoints | ConvertFrom-Json } else { @() } [PSCustomObject]@{ - Role = $Role.RowKey - Permissions = $Permissions.PSObject.Properties.Value - AllowedTenants = @($AllowedTenants) - BlockedTenants = @($BlockedTenants) + Role = $Role.RowKey + Permissions = $Permissions.PSObject.Properties.Value + AllowedTenants = @($AllowedTenants) + BlockedTenants = @($BlockedTenants) + BlockedEndpoints = @($BlockedEndpoints) } } else { throw "Role $RoleName not found." diff --git a/Modules/CIPPCore/Public/Authentication/Get-CippAllowedPermissions.ps1 b/Modules/CIPPCore/Public/Authentication/Get-CippAllowedPermissions.ps1 new file mode 100644 index 000000000000..27affd350b11 --- /dev/null +++ b/Modules/CIPPCore/Public/Authentication/Get-CippAllowedPermissions.ps1 @@ -0,0 +1,191 @@ +function Get-CippAllowedPermissions { + <# + .SYNOPSIS + Retrieves the allowed permissions for the current user. + + .DESCRIPTION + This function retrieves the allowed permissions for the current user based on their role and the configured permissions in the CIPP system. + For admin/superadmin users, permissions are computed from base role include/exclude rules. + For editor/readonly users, permissions start from base role and are restricted by custom roles. + + .PARAMETER UserRoles + Array of user roles to compute permissions for. + + .OUTPUTS + Returns a list of allowed permissions for the current user. + #> + + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string[]]$UserRoles + ) + + # Get all available permissions and base roles configuration + + $CIPPCoreModuleRoot = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase + $CIPPRoot = (Get-Item $CIPPCoreModuleRoot).Parent.Parent + $Version = (Get-Content -Path $CIPPRoot\version_latest.txt).trim() + $BaseRoles = Get-Content -Path $CIPPRoot\Config\cipp-roles.json | ConvertFrom-Json + $DefaultRoles = @('superadmin', 'admin', 'editor', 'readonly', 'anonymous', 'authenticated') + + $AllPermissionCacheTable = Get-CIPPTable -tablename 'cachehttppermissions' + $AllPermissionsRow = Get-CIPPAzDataTableEntity @AllPermissionCacheTable -Filter "PartitionKey eq 'HttpFunctions' and RowKey eq 'HttpFunctions' and Version eq '$($Version)'" + + if (-not $AllPermissionsRow.Permissions) { + $AllPermissions = Get-CIPPHttpFunctions -ByRole | Select-Object -ExpandProperty Permission + $Entity = @{ + PartitionKey = 'HttpFunctions' + RowKey = 'HttpFunctions' + Version = [string]$Version + Permissions = [string]($AllPermissions | ConvertTo-Json -Compress) + } + Add-CIPPAzDataTableEntity @AllPermissionCacheTable -Entity $Entity -Force + } else { + $AllPermissions = $AllPermissionsRow.Permissions | ConvertFrom-Json + } + + $AllowedPermissions = [System.Collections.Generic.List[string]]::new() + + # Determine user's primary base role (highest priority first) + $BaseRole = $null + $PrimaryRole = $null + + if ($UserRoles -contains 'superadmin') { + $PrimaryRole = 'superadmin' + } elseif ($UserRoles -contains 'admin') { + $PrimaryRole = 'admin' + } elseif ($UserRoles -contains 'editor') { + $PrimaryRole = 'editor' + } elseif ($UserRoles -contains 'readonly') { + $PrimaryRole = 'readonly' + } + + if ($PrimaryRole) { + $BaseRole = $BaseRoles.PSObject.Properties | Where-Object { $_.Name -eq $PrimaryRole } | Select-Object -First 1 + } + + # Get custom roles (non-default roles) + $CustomRoles = $UserRoles | Where-Object { $DefaultRoles -notcontains $_ } + + # For admin and superadmin: Compute permissions from base role include/exclude rules + if ($PrimaryRole -in @('admin', 'superadmin')) { + + if ($BaseRole) { + # Start with all permissions and apply include/exclude rules + $BasePermissions = [System.Collections.Generic.List[string]]::new() + + # Apply include rules + foreach ($Include in $BaseRole.Value.include) { + $MatchingPermissions = $AllPermissions | Where-Object { $_ -like $Include } + foreach ($Permission in $MatchingPermissions) { + if ($BasePermissions -notcontains $Permission) { + $BasePermissions.Add($Permission) + } + } + } + + # Apply exclude rules + foreach ($Exclude in $BaseRole.Value.exclude) { + $ExcludedPermissions = $BasePermissions | Where-Object { $_ -like $Exclude } + foreach ($Permission in $ExcludedPermissions) { + $BasePermissions.Remove($Permission) | Out-Null + } + } + + foreach ($Permission in $BasePermissions) { + $AllowedPermissions.Add($Permission) + } + } + } + # For editor and readonly: Start with base role permissions and restrict with custom roles + elseif ($PrimaryRole -in @('editor', 'readonly')) { + Write-Information "Computing permissions for $PrimaryRole with custom role restrictions" + + if ($BaseRole) { + # Get base role permissions first + $BasePermissions = [System.Collections.Generic.List[string]]::new() + + # Apply include rules from base role + foreach ($Include in $BaseRole.Value.include) { + $MatchingPermissions = $AllPermissions | Where-Object { $_ -like $Include } + foreach ($Permission in $MatchingPermissions) { + if ($BasePermissions -notcontains $Permission) { + $BasePermissions.Add($Permission) + } + } + } + + # Apply exclude rules from base role + foreach ($Exclude in $BaseRole.Value.exclude) { + $ExcludedPermissions = $BasePermissions | Where-Object { $_ -like $Exclude } + foreach ($Permission in $ExcludedPermissions) { + $BasePermissions.Remove($Permission) | Out-Null + } + } + + # If custom roles exist, intersect with custom role permissions (restriction) + if ($CustomRoles.Count -gt 0) { + $CustomRolePermissions = [System.Collections.Generic.List[string]]::new() + + foreach ($CustomRole in $CustomRoles) { + try { + $RolePermissions = Get-CIPPRolePermissions -RoleName $CustomRole + foreach ($Permission in $RolePermissions.Permissions) { + if ($null -ne $Permission -and $Permission -is [string] -and $CustomRolePermissions -notcontains $Permission) { + $CustomRolePermissions.Add($Permission) + } + } + } catch { + Write-Warning "Failed to get permissions for custom role '$CustomRole': $($_.Exception.Message)" + } + } + + # Restrict base permissions to only those allowed by custom roles + # Include Read permissions when ReadWrite permissions are present + $RestrictedPermissions = $BasePermissions | Where-Object { + $Permission = $_ + if ($CustomRolePermissions -contains $Permission) { + $true + } elseif ($Permission -match 'Read$') { + # Check if there's a corresponding ReadWrite permission + $ReadWritePermission = $Permission -replace 'Read', 'ReadWrite' + $CustomRolePermissions -contains $ReadWritePermission + } else { + $false + } + } + foreach ($Permission in $RestrictedPermissions) { + if ($null -ne $Permission -and $Permission -is [string]) { + $AllowedPermissions.Add($Permission) + } + } + } else { + # No custom roles, use base role permissions + foreach ($Permission in $BasePermissions) { + if ($null -ne $Permission -and $Permission -is [string]) { + $AllowedPermissions.Add($Permission) + } + } + } + } + } + # Handle users with only custom roles (no base role) + elseif ($CustomRoles.Count -gt 0) { + foreach ($CustomRole in $CustomRoles) { + try { + $RolePermissions = Get-CIPPRolePermissions -RoleName $CustomRole + foreach ($Permission in $RolePermissions.Permissions) { + if ($null -ne $Permission -and $Permission -is [string] -and $AllowedPermissions -notcontains $Permission) { + $AllowedPermissions.Add($Permission) + } + } + } catch { + Write-Warning "Failed to get permissions for custom role '$CustomRole': $($_.Exception.Message)" + } + } + } + + # Return sorted unique permissions + return ($AllowedPermissions | Where-Object { $_ -notmatch 'None$' } | Sort-Object -Unique) +} diff --git a/Modules/CIPPCore/Public/Authentication/Get-CippApiAuth.ps1 b/Modules/CIPPCore/Public/Authentication/Get-CippApiAuth.ps1 index 3056fdb0c8d9..1c5880fd8be1 100644 --- a/Modules/CIPPCore/Public/Authentication/Get-CippApiAuth.ps1 +++ b/Modules/CIPPCore/Public/Authentication/Get-CippApiAuth.ps1 @@ -4,25 +4,27 @@ function Get-CippApiAuth { [string]$FunctionAppName ) - if ($env:MSI_SECRET) { - Disable-AzContextAutosave -Scope Process | Out-Null - $null = Connect-AzAccount -Identity - $SubscriptionId = $env:WEBSITE_OWNER_NAME -split '\+' | Select-Object -First 1 - $Context = Set-AzContext -SubscriptionId $SubscriptionId - } else { - $Context = Get-AzContext - $SubscriptionId = $Context.Subscription.Id + $SubscriptionId = Get-CIPPAzFunctionAppSubId + + try { + # Get auth settings via REST + $uri = "https://management.azure.com/subscriptions/$SubscriptionId/resourceGroups/$RGName/providers/Microsoft.Web/sites/$($FunctionAppName)/config/authsettingsV2/list?api-version=2020-06-01" + $response = New-CIPPAzRestRequest -Uri $uri -Method POST -ErrorAction Stop + $AuthSettings = $response.properties + } catch { + Write-Warning "Failed to get auth settings via REST: $($_.Exception.Message)" } - # Get auth settings - $AuthSettings = Invoke-AzRestMethod -Uri "https://management.azure.com/subscriptions/$SubscriptionId/resourceGroups/$RGName/providers/Microsoft.Web/sites/$($FunctionAppName)/config/authsettingsV2/list?api-version=2020-06-01" -ErrorAction Stop | Select-Object -ExpandProperty Content | ConvertFrom-Json + if (!$AuthSettings -and $env:WEBSITE_AUTH_V2_CONFIG_JSON) { + $AuthSettings = $env:WEBSITE_AUTH_V2_CONFIG_JSON | ConvertFrom-Json -ErrorAction SilentlyContinue + } - if ($AuthSettings.properties) { + if ($AuthSettings) { [PSCustomObject]@{ - ApiUrl = "https://$($FunctionAppName).azurewebsites.net" - TenantID = $AuthSettings.properties.identityProviders.azureActiveDirectory.registration.openIdIssuer -replace 'https://sts.windows.net/', '' -replace '/v2.0', '' - ClientIDs = $AuthSettings.properties.identityProviders.azureActiveDirectory.validation.defaultAuthorizationPolicy.allowedApplications - Enabled = $AuthSettings.properties.identityProviders.azureActiveDirectory.enabled + ApiUrl = "https://$($env:WEBSITE_HOSTNAME)" + TenantID = $AuthSettings.identityProviders.azureActiveDirectory.registration.openIdIssuer -replace 'https://sts.windows.net/', '' -replace '/v2.0', '' + ClientIDs = $AuthSettings.identityProviders.azureActiveDirectory.validation.defaultAuthorizationPolicy.allowedApplications + Enabled = $AuthSettings.identityProviders.azureActiveDirectory.enabled } } else { throw 'No auth settings found' diff --git a/Modules/CIPPCore/Public/Authentication/New-CIPPAPIConfig.ps1 b/Modules/CIPPCore/Public/Authentication/New-CIPPAPIConfig.ps1 index 43bbee34f7a2..948d2a17f1fa 100644 --- a/Modules/CIPPCore/Public/Authentication/New-CIPPAPIConfig.ps1 +++ b/Modules/CIPPCore/Public/Authentication/New-CIPPAPIConfig.ps1 @@ -19,7 +19,8 @@ function New-CIPPAPIConfig { try { if ($AppId) { - $APIApp = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/applications(appid='$($AppId)')" -NoAuthCheck $true + $APIApp = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/applications(appid='$($AppId)')" -NoAuthCheck $true -AsApp $true + Write-Information "Found existing app with AppId $AppId" } else { $CreateBody = @{ api = @{ @@ -62,18 +63,23 @@ function New-CIPPAPIConfig { if ($PSCmdlet.ShouldProcess($AppName, 'Create API App')) { Write-Information 'Creating app' Write-Information $CreateBody + $Step = 'Creating Application' $APIApp = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/v1.0/applications' -AsApp $true -NoAuthCheck $true -type POST -body $CreateBody Write-Information 'Creating password' - $APIPassword = New-GraphPOSTRequest -uri "https://graph.microsoft.com/v1.0/applications/$($APIApp.id)/addPassword" -AsApp $true -NoAuthCheck $true -type POST -body "{`"passwordCredential`":{`"displayName`":`"Generated by API Setup`"}}" + $Step = 'Creating Application Password' + $APIPassword = New-GraphPOSTRequest -uri "https://graph.microsoft.com/v1.0/applications/$($APIApp.id)/addPassword" -AsApp $true -NoAuthCheck $true -type POST -body "{`"passwordCredential`":{`"displayName`":`"Generated by API Setup`"}}" -maxRetries 3 Write-Information 'Adding App URL' - $APIIdUrl = New-GraphPOSTRequest -uri "https://graph.microsoft.com/v1.0/applications/$($APIApp.id)" -AsApp $true -NoAuthCheck $true -type PATCH -body "{`"identifierUris`":[`"api://$($APIApp.appId)`"]}" + $Step = 'Adding Application Identifier URI' + $APIIdUrl = New-GraphPOSTRequest -uri "https://graph.microsoft.com/v1.0/applications/$($APIApp.id)" -AsApp $true -NoAuthCheck $true -type PATCH -body "{`"identifierUris`":[`"api://$($APIApp.appId)`"]}" -maxRetries 3 Write-Information 'Adding serviceprincipal' - $ServicePrincipal = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/v1.0/serviceprincipals' -AsApp $true -NoAuthCheck $true -type POST -body "{`"accountEnabled`":true,`"appId`":`"$($APIApp.appId)`",`"displayName`":`"$AppName`",`"tags`":[`"WindowsAzureActiveDirectoryIntegratedApp`",`"AppServiceIntegratedApp`"]}" + $Step = 'Creating Service Principal' + $ServicePrincipal = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/v1.0/serviceprincipals' -AsApp $true -NoAuthCheck $true -type POST -body "{`"accountEnabled`":true,`"appId`":`"$($APIApp.appId)`",`"displayName`":`"$AppName`",`"tags`":[`"WindowsAzureActiveDirectoryIntegratedApp`",`"AppServiceIntegratedApp`"]}" -maxRetries 3 Write-LogMessage -headers $Headers -API $APINAME -tenant 'None '-message "Created CIPP-API App with name '$($APIApp.displayName)'." -Sev 'info' } } if ($ResetSecret.IsPresent -and $APIApp) { if ($PSCmdlet.ShouldProcess($APIApp.displayName, 'Reset API Secret')) { + $Step = 'Resetting Application Password' Write-Information 'Removing all old passwords' $Requests = @( @{ @@ -118,7 +124,7 @@ function New-CIPPAPIConfig { } catch { $ErrorMessage = Get-CippException -Exception $_ Write-Information ($ErrorMessage | ConvertTo-Json -Depth 10) - Write-LogMessage -headers $Headers -API $APINAME -tenant 'None' -message "Failed to setup CIPP-API Access: $($ErrorMessage.NormalizedError) Linenumber: $($_.InvocationInfo.ScriptLineNumber)" -Sev 'Error' -LogData $ErrorMessage + Write-LogMessage -headers $Headers -API $APINAME -tenant 'None' -message "CIPP-API Setup failed at step ($Step): $($ErrorMessage.NormalizedError) Linenumber: $($_.InvocationInfo.ScriptLineNumber)" -Sev 'Error' -LogData $ErrorMessage throw "Failed to setup CIPP-API Access: $($ErrorMessage.NormalizedError)" } } diff --git a/Modules/CIPPCore/Public/Authentication/Set-CippApiAuth.ps1 b/Modules/CIPPCore/Public/Authentication/Set-CippApiAuth.ps1 index b6c9278c45a5..91e40acb6290 100644 --- a/Modules/CIPPCore/Public/Authentication/Set-CippApiAuth.ps1 +++ b/Modules/CIPPCore/Public/Authentication/Set-CippApiAuth.ps1 @@ -7,18 +7,15 @@ function Set-CippApiAuth { [string[]]$ClientIds ) - if ($env:MSI_SECRET) { - Disable-AzContextAutosave -Scope Process | Out-Null - $null = Connect-AzAccount -Identity - $SubscriptionId = $env:WEBSITE_OWNER_NAME -split '\+' | Select-Object -First 1 - $Context = Set-AzContext -SubscriptionId $SubscriptionId - } else { - $Context = Get-AzContext - $SubscriptionId = $Context.Subscription.Id - } + # Resolve subscription ID via helper (managed identity environment assumed for ARM). + $SubscriptionId = Get-CIPPAzFunctionAppSubId - # Get auth settings - $AuthSettings = Invoke-AzRestMethod -Uri "https://management.azure.com/subscriptions/$SubscriptionId/resourceGroups/$RGName/providers/Microsoft.Web/sites/$($FunctionAppName)/config/authsettingsV2/list?api-version=2020-06-01" | Select-Object -ExpandProperty Content | ConvertFrom-Json + # Get auth settings via ARM REST (managed identity) + $getUri = "https://management.azure.com/subscriptions/$SubscriptionId/resourceGroups/$RGName/providers/Microsoft.Web/sites/$($FunctionAppName)/config/authsettingsV2/list?api-version=2020-06-01" + $resp = New-CIPPAzRestRequest -Uri $getUri -Method 'GET' + $AuthSettings = $resp | Select-Object -ExpandProperty Content -ErrorAction SilentlyContinue + if ($AuthSettings -is [string]) { $AuthSettings = $AuthSettings | ConvertFrom-Json } + else { $AuthSettings = $resp } Write-Information "AuthSettings: $($AuthSettings | ConvertTo-Json -Depth 10)" @@ -65,11 +62,12 @@ function Set-CippApiAuth { } if ($PSCmdlet.ShouldProcess('Update auth settings')) { - # Update auth settings - $null = Invoke-AzRestMethod -Uri "https://management.azure.com/subscriptions/$SubscriptionId/resourceGroups/$RGName/providers/Microsoft.Web/sites/$($FunctionAppName)/config/authsettingsV2?api-version=2020-06-01" -Method PUT -Payload ($AuthSettings | ConvertTo-Json -Depth 10) + # Update auth settings via ARM REST + $putUri = "https://management.azure.com/subscriptions/$SubscriptionId/resourceGroups/$RGName/providers/Microsoft.Web/sites/$($FunctionAppName)/config/authsettingsV2?api-version=2020-06-01" + $null = New-CIPPAzRestRequest -Uri $putUri -Method 'PUT' -Body $AuthSettings -ContentType 'application/json' } if ($PSCmdlet.ShouldProcess('Update allowed tenants')) { - $null = Update-AzFunctionAppSetting -Name $FunctionAppName -ResourceGroupName $RGName -AppSetting @{ 'WEBSITE_AUTH_AAD_ALLOWED_TENANTS' = $TenantId } + $null = Update-CIPPAzFunctionAppSetting -Name $FunctionAppName -ResourceGroupName $RGName -AppSetting @{ 'WEBSITE_AUTH_AAD_ALLOWED_TENANTS' = $TenantId } } } diff --git a/Modules/CIPPCore/Public/Authentication/Test-CIPPAccess.ps1 b/Modules/CIPPCore/Public/Authentication/Test-CIPPAccess.ps1 index af8a7ff8dc2f..7def9e058199 100644 --- a/Modules/CIPPCore/Public/Authentication/Test-CIPPAccess.ps1 +++ b/Modules/CIPPCore/Public/Authentication/Test-CIPPAccess.ps1 @@ -1,50 +1,77 @@ function Test-CIPPAccess { param( $Request, - [switch]$TenantList + [switch]$TenantList, + [switch]$GroupList ) + # Initialize per-call profiling + $AccessTimings = @{} + $AccessTotalSw = [System.Diagnostics.Stopwatch]::StartNew() if ($Request.Params.CIPPEndpoint -eq 'ExecSAMSetup') { return $true } # Get function help $FunctionName = 'Invoke-{0}' -f $Request.Params.CIPPEndpoint - try { - $Help = Get-Help $FunctionName -ErrorAction Stop - } catch {} + $SwPermissions = [System.Diagnostics.Stopwatch]::StartNew() + if (-not $global:CIPPFunctionPermissions) { + $CIPPCoreModule = Get-Module -Name CIPPCore + if ($CIPPCoreModule) { + $PermissionsFileJson = Join-Path $CIPPCoreModule.ModuleBase 'lib' 'data' 'function-permissions.json' - # Check help for role - $APIRole = $Help.Role - - if ($APIRole -eq 'Public') { - return $true + if (Test-Path $PermissionsFileJson) { + try { + $jsonData = Get-Content -Path $PermissionsFileJson -Raw | ConvertFrom-Json -AsHashtable + $global:CIPPFunctionPermissions = [System.Collections.Hashtable]::new([StringComparer]::OrdinalIgnoreCase) + foreach ($key in $jsonData.Keys) { + $global:CIPPFunctionPermissions[$key] = $jsonData[$key] + } + Write-Debug "Loaded $($global:CIPPFunctionPermissions.Count) function permissions from JSON cache" + } catch { + Write-Warning "Failed to load function permissions from JSON: $($_.Exception.Message)" + } + } + } } + $SwPermissions.Stop() + $AccessTimings['FunctionPermissions'] = $SwPermissions.Elapsed.TotalMilliseconds - # Get default roles from config - $CIPPCoreModuleRoot = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase - $CIPPRoot = (Get-Item $CIPPCoreModuleRoot).Parent.Parent - $BaseRoles = Get-Content -Path $CIPPRoot\Config\cipp-roles.json | ConvertFrom-Json - - if ($APIRole -eq 'Public') { - return $true + if ($FunctionName -ne 'Invoke-me') { + $swHelp = [System.Diagnostics.Stopwatch]::StartNew() + if ($global:CIPPFunctionPermissions -and $global:CIPPFunctionPermissions.ContainsKey($FunctionName)) { + $PermissionData = $global:CIPPFunctionPermissions[$FunctionName] + $APIRole = $PermissionData['Role'] + $Functionality = $PermissionData['Functionality'] + Write-Debug "Loaded function permission data from cache for '$FunctionName': Role='$APIRole', Functionality='$Functionality'" + } else { + try { + $Help = Get-Help $FunctionName -ErrorAction Stop + $APIRole = $Help.Role + $Functionality = $Help.Functionality + Write-Debug "Loaded function permission data via Get-Help for '$FunctionName': Role='$APIRole', Functionality='$Functionality'" + } catch { + Write-Warning "Function '$FunctionName' not found" + } + } + $swHelp.Stop() + $AccessTimings['GetHelp'] = $swHelp.Elapsed.TotalMilliseconds } # Get default roles from config + $swRolesLoad = [System.Diagnostics.Stopwatch]::StartNew() $CIPPCoreModuleRoot = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase $CIPPRoot = (Get-Item $CIPPCoreModuleRoot).Parent.Parent $BaseRoles = Get-Content -Path $CIPPRoot\Config\cipp-roles.json | ConvertFrom-Json + $swRolesLoad.Stop() + $AccessTimings['LoadBaseRoles'] = $swRolesLoad.Elapsed.TotalMilliseconds $DefaultRoles = @('superadmin', 'admin', 'editor', 'readonly', 'anonymous', 'authenticated') if ($APIRole -eq 'Public') { return $true } - # Get default roles from config - $CIPPCoreModuleRoot = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase - $CIPPRoot = (Get-Item $CIPPCoreModuleRoot).Parent.Parent - $BaseRoles = Get-Content -Path $CIPPRoot\Config\cipp-roles.json | ConvertFrom-Json - if ($Request.Headers.'x-ms-client-principal-idp' -eq 'aad' -and $Request.Headers.'x-ms-client-principal-name' -match '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$') { $Type = 'APIClient' + $swApiClient = [System.Diagnostics.Stopwatch]::StartNew() # Direct API Access $ForwardedFor = $Request.Headers.'x-forwarded-for' -split ',' | Select-Object -First 1 $IPRegex = '^(?(?:\d{1,3}(?:\.\d{1,3}){3}|\[[0-9a-fA-F:]+\]|[0-9a-fA-F:]+))(?::\d+)?$' @@ -91,23 +118,102 @@ function Test-CIPPAccess { $CustomRoles = @('cipp-api') Write-Information "API Access: AppId=$($Request.Headers.'x-ms-client-principal-name'), IP=$IPAddress" } + if ($Request.Params.CIPPEndpoint -eq 'me') { + $Permissions = Get-CippAllowedPermissions -UserRoles $CustomRoles + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = ( + @{ + 'clientPrincipal' = @{ + appId = $Request.Headers.'x-ms-client-principal-name' + appRole = $CustomRoles + } + 'permissions' = $Permissions + } | ConvertTo-Json -Depth 5) + }) + } + $swApiClient.Stop() + $AccessTimings['ApiClientBranch'] = $swApiClient.Elapsed.TotalMilliseconds + } else { $Type = 'User' + $swUserBranch = [System.Diagnostics.Stopwatch]::StartNew() $User = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Request.Headers.'x-ms-client-principal')) | ConvertFrom-Json # Check for roles granted via group membership if (($User.userRoles | Measure-Object).Count -eq 2 -and $User.userRoles -contains 'authenticated' -and $User.userRoles -contains 'anonymous') { + $swResolveUserRoles = [System.Diagnostics.Stopwatch]::StartNew() $User = Test-CIPPAccessUserRole -User $User + $swResolveUserRoles.Stop() + $AccessTimings['ResolveUserRoles'] = $swResolveUserRoles.Elapsed.TotalMilliseconds + } + + $swIPCheck = [System.Diagnostics.Stopwatch]::StartNew() + $AllowedIPRanges = Get-CIPPRoleIPRanges -Roles $User.userRoles + + if ($AllowedIPRanges -notcontains 'Any') { + $ForwardedFor = $Request.Headers.'x-forwarded-for' -split ',' | Select-Object -First 1 + $IPRegex = '^(?(?:\d{1,3}(?:\.\d{1,3}){3}|\[[0-9a-fA-F:]+\]|[0-9a-fA-F:]+))(?::\d+)?$' + $IPAddress = $ForwardedFor -replace $IPRegex, '$1' -replace '[\[\]]', '' + if ($IPAddress) { + $IPAllowed = $false + foreach ($Range in $AllowedIPRanges) { + if ($IPAddress -eq $Range -or (Test-IpInRange -IPAddress $IPAddress -Range $Range)) { + $IPAllowed = $true + break + } + } + + if (-not $IPAllowed -and -not $Request.Params.CIPPEndpoint -eq 'me') { + throw "Access to this CIPP API endpoint is not allowed, your IP address ($IPAddress) is not in the allowed range for your role(s)" + } + } else { + $IPAllowed = $true + } + } else { + $IPAllowed = $true } - #Write-Information ($User | ConvertTo-Json -Depth 5) - # Return user permissions + $swIPCheck.Stop() + $AccessTimings['IPRangeCheck'] = $swIPCheck.Elapsed.TotalMilliseconds + if ($Request.Params.CIPPEndpoint -eq 'me') { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + + if (!$User.userRoles) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = ( + @{ + 'clientPrincipal' = $null + 'permissions' = @() + } | ConvertTo-Json -Depth 5) + }) + } + + if (!$IPAllowed) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = ( + @{ + 'clientPrincipal' = $null + 'permissions' = @() + 'message' = "Your IP address ($IPAddress) is not in the allowed range for your role(s)" + } | ConvertTo-Json -Depth 5) + }) + } + + $swPermsMe = [System.Diagnostics.Stopwatch]::StartNew() + $Permissions = Get-CippAllowedPermissions -UserRoles $User.userRoles + $swPermsMe.Stop() + $AccessTimings['GetPermissions(me)'] = $swPermsMe.Elapsed.TotalMilliseconds + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK - Body = (@{ 'clientPrincipal' = $User } | ConvertTo-Json -Depth 5) + Body = ( + @{ + 'clientPrincipal' = $User + 'permissions' = $Permissions + } | ConvertTo-Json -Depth 5) }) - return } if ($User.userRoles -contains 'admin' -or $User.userRoles -contains 'superadmin') { @@ -169,8 +275,12 @@ function Test-CIPPAccess { if (@('admin', 'superadmin') -contains $BaseRole.Name) { return $true } else { + $swTenantsLoad = [System.Diagnostics.Stopwatch]::StartNew() $Tenants = Get-Tenants -IncludeErrors + $swTenantsLoad.Stop() + $AccessTimings['LoadTenants'] = $swTenantsLoad.Elapsed.TotalMilliseconds $PermissionsFound = $false + $swRolePerms = [System.Diagnostics.Stopwatch]::StartNew() $PermissionSet = foreach ($CustomRole in $CustomRoles) { try { Get-CIPPRolePermissions -Role $CustomRole @@ -180,47 +290,137 @@ function Test-CIPPAccess { continue } } + $swRolePerms.Stop() + $AccessTimings['GetRolePermissions'] = $swRolePerms.Elapsed.TotalMilliseconds + if ($PermissionsFound) { if ($TenantList.IsPresent) { + $swTenantList = [System.Diagnostics.Stopwatch]::StartNew() $LimitedTenantList = foreach ($Permission in $PermissionSet) { if ((($Permission.AllowedTenants | Measure-Object).Count -eq 0 -or $Permission.AllowedTenants -contains 'AllTenants') -and (($Permission.BlockedTenants | Measure-Object).Count -eq 0)) { @('AllTenants') } else { - if ($Permission.AllowedTenants -contains 'AllTenants') { - $Permission.AllowedTenants = $Tenants.customerId + # Expand tenant groups to individual tenant IDs + $ExpandedAllowedTenants = foreach ($AllowedItem in $Permission.AllowedTenants) { + if ($AllowedItem -is [PSCustomObject] -and $AllowedItem.type -eq 'Group') { + try { + $GroupMembers = Expand-CIPPTenantGroups -TenantFilter @($AllowedItem) + $GroupMembers | ForEach-Object { $_.addedFields.customerId } + } catch { + Write-Warning "Failed to expand tenant group '$($AllowedItem.label)': $($_.Exception.Message)" + @() + } + } else { + $AllowedItem + } + } + + $ExpandedBlockedTenants = foreach ($BlockedItem in $Permission.BlockedTenants) { + if ($BlockedItem -is [PSCustomObject] -and $BlockedItem.type -eq 'Group') { + try { + $GroupMembers = Expand-CIPPTenantGroups -TenantFilter @($BlockedItem) + $GroupMembers | ForEach-Object { $_.addedFields.customerId } + } catch { + Write-Warning "Failed to expand blocked tenant group '$($BlockedItem.label)': $($_.Exception.Message)" + @() + } + } else { + $BlockedItem + } + } + + if ($ExpandedAllowedTenants -contains 'AllTenants') { + $ExpandedAllowedTenants = $Tenants.customerId + } + $ExpandedAllowedTenants | Where-Object { $ExpandedBlockedTenants -notcontains $_ } + } + } + $swTenantList.Stop() + $AccessTimings['BuildTenantList'] = $swTenantList.Elapsed.TotalMilliseconds + return @($LimitedTenantList | Sort-Object -Unique) + } elseif ($GroupList.IsPresent) { + $swGroupList = [System.Diagnostics.Stopwatch]::StartNew() + Write-Information "Getting allowed groups for roles: $($CustomRoles -join ', ')" + $LimitedGroupList = foreach ($Permission in $PermissionSet) { + if ((($Permission.AllowedTenants | Measure-Object).Count -eq 0 -or $Permission.AllowedTenants -contains 'AllTenants') -and (($Permission.BlockedTenants | Measure-Object).Count -eq 0)) { + @('AllGroups') + } else { + foreach ($AllowedItem in $Permission.AllowedTenants) { + if ($AllowedItem -is [PSCustomObject] -and $AllowedItem.type -eq 'Group') { + $AllowedItem.value + } } - $Permission.AllowedTenants | Where-Object { $Permission.BlockedTenants -notcontains $_ } } } - return $LimitedTenantList + $swGroupList.Stop() + $AccessTimings['BuildGroupList'] = $swGroupList.Elapsed.TotalMilliseconds + return @($LimitedGroupList | Sort-Object -Unique) } $TenantAllowed = $false $APIAllowed = $false + $swPermissionEval = [System.Diagnostics.Stopwatch]::StartNew() foreach ($Role in $PermissionSet) { foreach ($Perm in $Role.Permissions) { if ($Perm -match $APIRole) { + if ($Role.BlockedEndpoints -contains $Request.Params.CIPPEndpoint) { + throw "Access to this CIPP API endpoint is not allowed, the custom role '$($Role.Role)' has blocked this endpoint: $($Request.Params.CIPPEndpoint)" + } $APIAllowed = $true break } } if ($APIAllowed) { - $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter ?? $Request.Body.tenantFilter.value ?? $Request.Query.tenantId ?? $Request.Body.tenantId ?? $Request.Body.tenantId.value ?? $env:TenantID + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter.value ?? $Request.Body.tenantFilter ?? $Request.Query.tenantId ?? $Request.Body.tenantId.value ?? $Request.Body.tenantId ?? $env:TenantID # Check tenant level access if (($Role.BlockedTenants | Measure-Object).Count -eq 0 -and $Role.AllowedTenants -contains 'AllTenants') { $TenantAllowed = $true - } elseif ($TenantFilter -eq 'AllTenants') { + } elseif ($TenantFilter -eq 'AllTenants' -and $ApiRole -match 'Write$') { $TenantAllowed = $false + } elseif ($TenantFilter -eq 'AllTenants' -and $ApiRole -match 'Read$') { + $TenantAllowed = $true } else { $Tenant = ($Tenants | Where-Object { $TenantFilter -eq $_.customerId -or $TenantFilter -eq $_.defaultDomainName }).customerId - if ($Role.AllowedTenants -contains 'AllTenants') { + + # Expand allowed tenant groups to individual tenant IDs + $ExpandedAllowedTenants = foreach ($AllowedItem in $Role.AllowedTenants) { + if ($AllowedItem -is [PSCustomObject] -and $AllowedItem.type -eq 'Group') { + try { + $GroupMembers = Expand-CIPPTenantGroups -TenantFilter @($AllowedItem) + $GroupMembers | ForEach-Object { $_.addedFields.customerId } + } catch { + Write-Warning "Failed to expand allowed tenant group '$($AllowedItem.label)': $($_.Exception.Message)" + @() + } + } else { + $AllowedItem + } + } + + # Expand blocked tenant groups to individual tenant IDs + $ExpandedBlockedTenants = foreach ($BlockedItem in $Role.BlockedTenants) { + if ($BlockedItem -is [PSCustomObject] -and $BlockedItem.type -eq 'Group') { + try { + $GroupMembers = Expand-CIPPTenantGroups -TenantFilter @($BlockedItem) + $GroupMembers | ForEach-Object { $_.addedFields.customerId } + } catch { + Write-Warning "Failed to expand blocked tenant group '$($BlockedItem.label)': $($_.Exception.Message)" + @() + } + } else { + $BlockedItem + } + } + + if ($ExpandedAllowedTenants -contains 'AllTenants') { $AllowedTenants = $Tenants.customerId } else { - $AllowedTenants = $Role.AllowedTenants + $AllowedTenants = $ExpandedAllowedTenants } + if ($Tenant) { - $TenantAllowed = $AllowedTenants -contains $Tenant -and $Role.BlockedTenants -notcontains $Tenant + $TenantAllowed = $AllowedTenants -contains $Tenant -and $ExpandedBlockedTenants -notcontains $Tenant if (!$TenantAllowed) { continue } break } else { @@ -230,11 +430,13 @@ function Test-CIPPAccess { } } } + $swPermissionEval.Stop() + $AccessTimings['EvaluatePermissions'] = $swPermissionEval.Elapsed.TotalMilliseconds if (!$APIAllowed) { throw "Access to this CIPP API endpoint is not allowed, you do not have the required permission: $APIRole" } - if (!$TenantAllowed -and $Help.Functionality -notmatch 'AnyTenant') { + if (!$TenantAllowed -and $Functionality -notmatch 'AnyTenant') { throw 'Access to this tenant is not allowed' } else { return $true @@ -246,12 +448,11 @@ function Test-CIPPAccess { } return $true if ($APIAllowed) { - $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter ?? $Request.Query.tenantId ?? $Request.Body.tenantId ?? $env:TenantID + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter.value ?? $Request.Body.tenantFilter ?? $Request.Query.tenantId ?? $Request.Body.tenantId.value ?? $Request.Body.tenantId ?? $env:TenantID # Check tenant level access if (($Role.BlockedTenants | Measure-Object).Count -eq 0 -and $Role.AllowedTenants -contains 'AllTenants') { $TenantAllowed = $true } elseif ($TenantFilter -eq 'AllTenants') { - $TenantAllowed = $false } else { $Tenant = ($Tenants | Where-Object { $TenantFilter -eq $_.customerId -or $TenantFilter -eq $_.defaultDomainName }).customerId @@ -273,12 +474,12 @@ function Test-CIPPAccess { } } - if (!$TenantAllowed -and $Help.Functionality -notmatch 'AnyTenant') { + if (!$TenantAllowed -and $Functionality -notmatch 'AnyTenant') { if (!$APIAllowed) { throw "Access to this CIPP API endpoint is not allowed, you do not have the required permission: $APIRole" } - if (!$TenantAllowed -and $Help.Functionality -notmatch 'AnyTenant') { + if (!$TenantAllowed -and $Functionality -notmatch 'AnyTenant') { Write-Information "Tenant not allowed: $TenantFilter" throw 'Access to this tenant is not allowed' @@ -294,10 +495,22 @@ function Test-CIPPAccess { } return $true } + $swUserBranch.Stop() + $AccessTimings['UserBranch'] = $swUserBranch.Elapsed.TotalMilliseconds } if ($TenantList.IsPresent) { + $AccessTotalSw.Stop() + $AccessTimings['Total'] = $AccessTotalSw.Elapsed.TotalMilliseconds + $AccessTimingsRounded = [ordered]@{} + foreach ($Key in ($AccessTimings.Keys | Sort-Object)) { $AccessTimingsRounded[$Key] = [math]::Round($AccessTimings[$Key], 2) } + Write-Debug "#### Access Timings #### $($AccessTimingsRounded | ConvertTo-Json -Compress)" return @('AllTenants') } + $AccessTotalSw.Stop() + $AccessTimings['Total'] = $AccessTotalSw.Elapsed.TotalMilliseconds + $AccessTimingsRounded = [ordered]@{} + foreach ($Key in ($AccessTimings.Keys | Sort-Object)) { $AccessTimingsRounded[$Key] = [math]::Round($AccessTimings[$Key], 2) } + Write-Debug "#### Access Timings #### $($AccessTimingsRounded | ConvertTo-Json -Compress)" return $true } diff --git a/Modules/CIPPCore/Public/Authentication/Test-CIPPAccessUserRole.ps1 b/Modules/CIPPCore/Public/Authentication/Test-CIPPAccessUserRole.ps1 index d5293966cf77..82fc925e0687 100644 --- a/Modules/CIPPCore/Public/Authentication/Test-CIPPAccessUserRole.ps1 +++ b/Modules/CIPPCore/Public/Authentication/Test-CIPPAccessUserRole.ps1 @@ -19,48 +19,115 @@ function Test-CIPPAccessUserRole { param( $User ) + # Initialize per-call profiling + $UserRoleTimings = @{} + $UserRoleTotalSw = [System.Diagnostics.Stopwatch]::StartNew() $Roles = @() - $Table = Get-CippTable -TableName cacheAccessUserRoles - $Filter = "PartitionKey eq 'AccessRole' and RowKey eq '$($User.userDetails)' and Timestamp ge datetime'$((Get-Date).AddMinutes(-15).ToString('yyyy-MM-ddTHH:mm:ss'))'" - $UserRole = Get-CIPPAzDataTableEntity @Table -Filter $Filter - if ($UserRole) { - Write-Information "Found cached user role for $($User.userDetails)" - $Roles = $UserRole.Role | ConvertFrom-Json + + # Check AsyncLocal cache first (per-request cache) + if ($script:CippUserRolesStorage -and $script:CippUserRolesStorage.Value -and $script:CippUserRolesStorage.Value.ContainsKey($User.userDetails)) { + $Roles = $script:CippUserRolesStorage.Value[$User.userDetails] } else { + # Check table storage cache (persistent cache) try { - $uri = "https://graph.microsoft.com/beta/users/$($User.userDetails)/transitiveMemberOf" - $Memberships = New-GraphGetRequest -uri $uri -NoAuthCheck $true | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.group' } - if ($Memberships) { - Write-Information "Found user roles for $($User.userDetails)" - } else { - Write-Information "No user roles found for $($User.userDetails)" - } + $swTableLookup = [System.Diagnostics.Stopwatch]::StartNew() + $Table = Get-CippTable -TableName cacheAccessUserRoles + $Filter = "PartitionKey eq 'AccessUser' and RowKey eq '$($User.userDetails)' and Timestamp ge datetime'$((Get-Date).AddMinutes(-15).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ss.fffZ'))'" + $UserRole = Get-CIPPAzDataTableEntity @Table -Filter $Filter + $swTableLookup.Stop() + $UserRoleTimings['TableLookup'] = $swTableLookup.Elapsed.TotalMilliseconds } catch { - Write-Information "Could not get user roles for $($User.userDetails). $($_.Exception.Message)" - return $User + Write-Information "Could not access cached user roles table. $($_.Exception.Message)" + $UserRole = $null } + if ($UserRole) { + Write-Information "Found cached user role for $($User.userDetails)" + $Roles = $UserRole.Role | ConvertFrom-Json + + # Store in AsyncLocal cache for this request + if ($script:CippUserRolesStorage -and $script:CippUserRolesStorage.Value) { + $script:CippUserRolesStorage.Value[$User.userDetails] = $Roles + } + } else { + try { + $swGraphMemberships = [System.Diagnostics.Stopwatch]::StartNew() + $uri = "https://graph.microsoft.com/beta/users/$($User.userDetails)/transitiveMemberOf" + $Memberships = New-GraphGetRequest -uri $uri -NoAuthCheck $true -AsApp $true | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.group' } + $swGraphMemberships.Stop() + $UserRoleTimings['GraphMemberships'] = $swGraphMemberships.Elapsed.TotalMilliseconds + if ($Memberships) { + Write-Information "Found group memberships for $($User.userDetails)" + } else { + Write-Information "No group memberships found for $($User.userDetails)" + } + } catch { + Write-Information "Could not get user roles for $($User.userDetails). $($_.Exception.Message)" + $UserRoleTotalSw.Stop() + $UserRoleTimings['Total'] = $UserRoleTotalSw.Elapsed.TotalMilliseconds + $timingsRounded = [ordered]@{} + foreach ($Key in ($UserRoleTimings.Keys | Sort-Object)) { $timingsRounded[$Key] = [math]::Round($UserRoleTimings[$Key], 2) } + Write-Debug "#### UserRole Timings #### $($timingsRounded | ConvertTo-Json -Compress)" + return $User + } + + $swAccessGroups = [System.Diagnostics.Stopwatch]::StartNew() + $AccessGroupsTable = Get-CippTable -TableName AccessRoleGroups + $AccessGroups = Get-CIPPAzDataTableEntity @AccessGroupsTable -Filter "PartitionKey eq 'AccessRoleGroups'" + $swAccessGroups.Stop() + $UserRoleTimings['AccessGroupsFetch'] = $swAccessGroups.Elapsed.TotalMilliseconds - $AccessGroupsTable = Get-CippTable -TableName AccessRoleGroups - $AccessGroups = Get-CIPPAzDataTableEntity @AccessGroupsTable + $swCustomRoles = [System.Diagnostics.Stopwatch]::StartNew() + $CustomRolesTable = Get-CippTable -TableName CustomRoles + $CustomRoles = Get-CIPPAzDataTableEntity @CustomRolesTable -Filter "PartitionKey eq 'CustomRoles'" + $swCustomRoles.Stop() + $UserRoleTimings['CustomRolesFetch'] = $swCustomRoles.Elapsed.TotalMilliseconds + $BaseRoles = @('superadmin', 'admin', 'editor', 'readonly') - $Roles = foreach ($AccessGroup in $AccessGroups) { - if ($Memberships.id -contains $AccessGroup.GroupId) { - $AccessGroup.RowKey + $swDeriveRoles = [System.Diagnostics.Stopwatch]::StartNew() + $Roles = foreach ($AccessGroup in $AccessGroups) { + if ($Memberships.id -contains $AccessGroup.GroupId -and ($CustomRoles.RowKey -contains $AccessGroup.RowKey -or $BaseRoles -contains $AccessGroup.RowKey)) { + $AccessGroup.RowKey + } + } + $swDeriveRoles.Stop() + $UserRoleTimings['DeriveRoles'] = $swDeriveRoles.Elapsed.TotalMilliseconds + + $Roles = @($Roles) + @($User.userRoles) + + if ($Roles) { + Write-Information "Roles determined for $($User.userDetails): $($Roles -join ', ')" } - } - $Roles = @($Roles) + @($User.userRoles) + if (($Roles | Measure-Object).Count -gt 2) { + try { + $swCacheWrite = [System.Diagnostics.Stopwatch]::StartNew() + $UserRole = [PSCustomObject]@{ + PartitionKey = 'AccessUser' + RowKey = [string]$User.userDetails + Role = [string](ConvertTo-Json -Compress -InputObject $Roles) + } + Add-CIPPAzDataTableEntity @Table -Entity $UserRole -Force + $swCacheWrite.Stop() + $UserRoleTimings['TableWrite'] = $swCacheWrite.Elapsed.TotalMilliseconds + } catch { + Write-Information "Could not cache user roles for $($User.userDetails). $($_.Exception.Message)" + } + } - if (($Roles | Measure-Object).Count -gt 0) { - $UserRole = [PSCustomObject]@{ - PartitionKey = 'AccessUser' - RowKey = [string]$User.userDetails - Role = [string](ConvertTo-Json -Compress -InputObject $Roles) + # Store in AsyncLocal cache for this request + if ($script:CippUserRolesStorage -and $script:CippUserRolesStorage.Value) { + $script:CippUserRolesStorage.Value[$User.userDetails] = $Roles } - Add-CIPPAzDataTableEntity @Table -Entity $UserRole -Force } } $User.userRoles = $Roles + # Log timings summary + $UserRoleTotalSw.Stop() + $UserRoleTimings['Total'] = $UserRoleTotalSw.Elapsed.TotalMilliseconds + $timingsRounded = [ordered]@{} + foreach ($Key in ($UserRoleTimings.Keys | Sort-Object)) { $timingsRounded[$Key] = [math]::Round($UserRoleTimings[$Key], 2) } + Write-Debug "#### UserRole Timings #### $($timingsRounded | ConvertTo-Json -Compress)" + return $User } diff --git a/Modules/CIPPCore/Public/CippQueue/Invoke-ListCippQueue.ps1 b/Modules/CIPPCore/Public/CippQueue/Invoke-ListCippQueue.ps1 index f4f80f4cb5dc..b2413f38f526 100644 --- a/Modules/CIPPCore/Public/CippQueue/Invoke-ListCippQueue.ps1 +++ b/Modules/CIPPCore/Public/CippQueue/Invoke-ListCippQueue.ps1 @@ -1,24 +1,36 @@ function Invoke-ListCippQueue { <# .FUNCTIONALITY - Entrypoint + Entrypoint,AnyTenant .ROLE CIPP.Core.Read #> - param($Request = $null, $TriggerMetadata = $null) + param($Request = $null, $TriggerMetadata = $null, $Reference = $null, $QueueId = $null) if ($Request) { $APIName = $Request.Params.CIPPEndpoint Write-LogMessage -headers $Request.Headers -API $APINAME -message 'Accessed this API' -Sev 'Debug' } + $QueueId = $Request.Query.QueueId ?? $QueueId + $Reference = $Request.Query.Reference ?? $Reference + $CippQueue = Get-CippTable -TableName 'CippQueue' $CippQueueTasks = Get-CippTable -TableName 'CippQueueTasks' $3HoursAgo = (Get-Date).ToUniversalTime().AddHours(-3).ToString('yyyy-MM-ddTHH:mm:ssZ') - $CippQueueData = Get-CIPPAzDataTableEntity @CippQueue -Filter "Timestamp ge datetime'$3HoursAgo'" | Sort-Object -Property Timestamp -Descending + + if ($QueueId) { + $Filter = "PartitionKey eq 'CippQueue' and RowKey eq '$QueueId'" + } elseif ($Reference) { + $Filter = "PartitionKey eq 'CippQueue' and Reference eq '$Reference' and Timestamp ge datetime'$3HoursAgo'" + } else { + $Filter = "PartitionKey eq 'CippQueue' and Timestamp ge datetime'$3HoursAgo'" + } + + $CippQueueData = Get-CIPPAzDataTableEntity @CippQueue -Filter $Filter | Sort-Object -Property Timestamp -Descending $QueueData = foreach ($Queue in $CippQueueData) { - $Tasks = Get-CIPPAzDataTableEntity @CippQueueTasks -Filter "QueueId eq '$($Queue.RowKey)'" | Where-Object { $_.Name } | Select-Object @{n = 'Timestamp'; exp = { $_.Timestamp.DateTime.ToUniversalTime() } }, Name, Status + $Tasks = Get-CIPPAzDataTableEntity @CippQueueTasks -Filter "PartitionKey eq 'Task' and QueueId eq '$($Queue.RowKey)'" | Where-Object { $_.Name } | Select-Object @{n = 'Timestamp'; exp = { $_.Timestamp } }, Name, Status $TaskStatus = @{} $Tasks | Group-Object -Property Status | ForEach-Object { $TaskStatus.$($_.Name) = $_.Count @@ -54,15 +66,15 @@ function Invoke-ListCippQueue { PercentComplete = [math]::Round(((($TotalCompleted + $TotalFailed) / $Queue.TotalTasks) * 100), 1) PercentFailed = [math]::Round((($TotalFailed / $Queue.TotalTasks) * 100), 1) PercentRunning = [math]::Round((($TotalRunning / $Queue.TotalTasks) * 100), 1) - Tasks = @($Tasks) + Tasks = @($Tasks | Sort-Object -Descending Timestamp) Status = $Queue.Status - Timestamp = $Queue.Timestamp.DateTime.ToUniversalTime() + Timestamp = $Queue.Timestamp } } if ($request) { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($QueueData) }) diff --git a/Modules/CIPPCore/Public/CippQueue/Invoke-RemoveCippQueue.ps1 b/Modules/CIPPCore/Public/CippQueue/Invoke-RemoveCippQueue.ps1 index 54633f0fd9a8..8756a956725a 100644 --- a/Modules/CIPPCore/Public/CippQueue/Invoke-RemoveCippQueue.ps1 +++ b/Modules/CIPPCore/Public/CippQueue/Invoke-RemoveCippQueue.ps1 @@ -6,17 +6,12 @@ function Invoke-RemoveCippQueue { CIPP.Core.ReadWrite #> param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $CippQueue = Get-CippTable -TableName 'CippQueue' Clear-AzDataTable @CippQueue $CippQueueTasks = Get-CippTable -TableName 'CippQueueTasks' Clear-AzDataTable @CippQueueTasks - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @{Results = @('History cleared') } }) diff --git a/Modules/CIPPCore/Public/CippQueue/Set-CippQueueTask.ps1 b/Modules/CIPPCore/Public/CippQueue/Set-CippQueueTask.ps1 index 33c48d2adff4..928c6e06285d 100644 --- a/Modules/CIPPCore/Public/CippQueue/Set-CippQueueTask.ps1 +++ b/Modules/CIPPCore/Public/CippQueue/Set-CippQueueTask.ps1 @@ -8,7 +8,8 @@ function Set-CippQueueTask { [string]$TaskId = (New-Guid).Guid.ToString(), [string]$Name, [ValidateSet('Queued', 'Running', 'Completed', 'Failed')] - [string]$Status = 'Queued' + [string]$Status = 'Queued', + [string]$Message ) $CippQueueTasks = Get-CippTable -TableName CippQueueTasks @@ -20,8 +21,11 @@ function Set-CippQueueTask { Name = $Name Status = $Status } + if ($Message) { + $QueueTaskEntry.Message = $Message + } $CippQueueTasks.Entity = $QueueTaskEntry Add-CIPPAzDataTableEntity @CippQueueTasks -Force return $QueueTaskEntry -} \ No newline at end of file +} diff --git a/Modules/CIPPCore/Public/Clear-CIPPImmutableId.ps1 b/Modules/CIPPCore/Public/Clear-CIPPImmutableId.ps1 index ca9d60c172de..60255008687e 100644 --- a/Modules/CIPPCore/Public/Clear-CIPPImmutableId.ps1 +++ b/Modules/CIPPCore/Public/Clear-CIPPImmutableId.ps1 @@ -2,21 +2,33 @@ function Clear-CIPPImmutableId { [CmdletBinding()] param ( $TenantFilter, - $userid, + $UserID, $Headers, - $APIName + $APIName = 'Clear Immutable ID' ) try { + try { + $User = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$UserID" -tenantid $TenantFilter -ErrorAction SilentlyContinue + } catch { + $DeletedUser = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/directory/deletedItems/$UserID" -tenantid $TenantFilter + if ($DeletedUser.id) { + # Restore deleted user object + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/directory/deletedItems/$UserID/restore" -tenantid $TenantFilter -type POST + Write-LogMessage -headers $Headers -API $APIName -message "Restored deleted user $UserID to clear immutable ID" -sev Info -tenant $TenantFilter + } + } + $Body = [pscustomobject]@{ onPremisesImmutableId = $null } $Body = ConvertTo-Json -InputObject $Body -Depth 5 -Compress - $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$userid" -tenantid $TenantFilter -type PATCH -body $Body - Write-LogMessage -headers $Headers -API $APIName -message "Successfully cleared immutable ID for $userid" -sev Info - return 'Successfully cleared immutable ID for user.' + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$UserID" -tenantid $TenantFilter -type PATCH -body $Body + $Result = "Successfully cleared immutable ID for user $UserID" + Write-LogMessage -headers $Headers -API $APIName -message $Result -sev Info -tenant $TenantFilter + return $Result } catch { $ErrorMessage = Get-CippException -Exception $_ - $Message = "Could not clear immutable ID for $($userid): $($ErrorMessage.NormalizedError)" - Write-LogMessage -headers $Headers -API $APIName -message $Message -sev Error -LogData $ErrorMessage - return $Message + $Result = "Failed to clear immutable ID for $($UserID). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -sev Error -tenant $TenantFilter -LogData $ErrorMessage + throw $Result } } diff --git a/Modules/CIPPCore/Public/Clear-CippDurables.ps1 b/Modules/CIPPCore/Public/Clear-CippDurables.ps1 index 44c77f74e82c..972f3d8fc853 100644 --- a/Modules/CIPPCore/Public/Clear-CippDurables.ps1 +++ b/Modules/CIPPCore/Public/Clear-CippDurables.ps1 @@ -1,57 +1,36 @@ function Clear-CippDurables { [CmdletBinding(SupportsShouldProcess = $true)] - Param() + param() # Collect info - $StorageContext = New-AzStorageContext -ConnectionString $env:AzureWebJobsStorage $FunctionName = $env:WEBSITE_SITE_NAME -replace '-', '' # Get orchestrators $InstancesTable = Get-CippTable -TableName ('{0}Instances' -f $FunctionName) $HistoryTable = Get-CippTable -TableName ('{0}History' -f $FunctionName) + $QueueTable = Get-CippTable -TableName 'CippQueue' + $CippQueueTasks = Get-CippTable -TableName 'CippQueueTasks' + + Remove-AzDataTable @InstancesTable + Remove-AzDataTable @HistoryTable + Remove-AzDataTable @QueueTable + Remove-AzDataTable @CippQueueTasks - $Queues = Get-AzStorageQueue -Context $StorageContext -Name ('{0}*' -f $FunctionName) | Select-Object -Property Name, ApproximateMessageCount, QueueClient + $Queues = Get-CIPPAzStorageQueue -Name ('{0}*' -f $FunctionName) $RunningQueues = $Queues | Where-Object { $_.ApproximateMessageCount -gt 0 } foreach ($Queue in $RunningQueues) { Write-Information "- Removing queue: $($Queue.Name), message count: $($Queue.ApproximateMessageCount)" if ($PSCmdlet.ShouldProcess($Queue.Name, 'Clear Queue')) { - $Queue.QueueClient.ClearMessagesAsync() + $null = Clear-CIPPAzStorageQueue -Name $Queue.Name } } - Remove-AzDataTable @InstancesTable - Remove-AzDataTable @HistoryTable $BlobContainer = '{0}-largemessages' -f $FunctionName - if (Get-AzStorageContainer -Name $BlobContainer -Context $StorageContext -ErrorAction SilentlyContinue) { + $containerMatch = Get-CIPPAzStorageContainer -Name $BlobContainer | Where-Object { $_.Name -eq $BlobContainer } + if ($containerMatch) { Write-Information "- Removing blob container: $BlobContainer" if ($PSCmdlet.ShouldProcess($BlobContainer, 'Remove Blob Container')) { - Remove-AzStorageContainer -Name $BlobContainer -Context $StorageContext -Confirm:$false -Force - } - } - - $QueueTable = Get-CippTable -TableName 'CippQueue' - $CippQueue = Invoke-ListCippQueue - $QueueEntities = foreach ($Queue in $CippQueue) { - if ($Queue.Status -eq 'Running') { - $Queue.TotalTasks = $Queue.CompletedTasks - $Queue | Select-Object -Property PartitionKey, RowKey, TotalTasks - } - } - if (($QueueEntities | Measure-Object).Count -gt 0) { - if ($PSCmdlet.ShouldProcess('Queues', 'Mark Failed')) { - Update-AzDataTableEntity -Force @QueueTable -Entity $QueueEntities - } - } - - $CippQueueTasks = Get-CippTable -TableName 'CippQueueTasks' - $RunningTasks = Get-CIPPAzDataTableEntity @CippQueueTasks -Filter "PartitionKey eq 'Task' and Status eq 'Running'" -Property RowKey, PartitionKey, Status - if (($RunningTasks | Measure-Object).Count -gt 0) { - if ($PSCmdlet.ShouldProcess('Tasks', 'Mark Failed')) { - $UpdatedTasks = foreach ($Task in $RunningTasks) { - $Task.Status = 'Failed' - $Task - } - Update-AzDataTableEntity -Force @CippQueueTasks -Entity $UpdatedTasks + $null = Remove-CIPPAzStorageContainer -Name $BlobContainer } } diff --git a/Modules/CIPPCore/Public/Compare-CIPPIntuneObject.ps1 b/Modules/CIPPCore/Public/Compare-CIPPIntuneObject.ps1 index 579fdcd913f6..616f0ef600a9 100644 --- a/Modules/CIPPCore/Public/Compare-CIPPIntuneObject.ps1 +++ b/Modules/CIPPCore/Public/Compare-CIPPIntuneObject.ps1 @@ -28,6 +28,9 @@ function Compare-CIPPIntuneObject { 'qualityUpdatesWillBeRolledBack', 'qualityUpdatesPauseStartDate', 'featureUpdatesPauseStartDate' + 'wslDistributions', + 'lastSuccessfulSyncDateTime', + 'tenantFilter' ) $excludeProps = $defaultExcludeProperties + $ExcludeProperties @@ -88,7 +91,7 @@ function Compare-CIPPIntuneObject { } # Short-circuit recursion for primitive types - $primitiveTypes = @([double], [decimal], [datetime], [timespan], [guid] ) + $primitiveTypes = @([string], [int], [long], [bool], [double], [decimal], [datetime], [timespan], [guid] ) foreach ($type in $primitiveTypes) { if ($Object1 -is $type -and $Object2 -is $type) { if ($Object1 -ne $Object2) { @@ -151,34 +154,78 @@ function Compare-CIPPIntuneObject { } } } elseif ($Object1 -is [PSCustomObject] -or $Object1.PSObject.Properties.Count -gt 0) { - $allPropertyNames = @( - $Object1.PSObject.Properties | Select-Object -ExpandProperty Name - $Object2.PSObject.Properties | Select-Object -ExpandProperty Name - ) | Select-Object -Unique + # Skip comparison if either object is an array - arrays can't have custom properties set + $isObj1Array = $Object1 -is [Array] -or $Object1 -is [System.Collections.IList] + $isObj2Array = $Object2 -is [Array] -or $Object2 -is [System.Collections.IList] + if ($isObj1Array -or $isObj2Array) { + return + } + + # Safely get property names - ensure objects are not arrays before accessing PSObject.Properties + $allPropertyNames = @() + try { + if (-not ($Object1 -is [Array] -or $Object1 -is [System.Collections.IList])) { + $allPropertyNames += $Object1.PSObject.Properties | Select-Object -ExpandProperty Name + } + if (-not ($Object2 -is [Array] -or $Object2 -is [System.Collections.IList])) { + $allPropertyNames += $Object2.PSObject.Properties | Select-Object -ExpandProperty Name + } + $allPropertyNames = $allPropertyNames | Select-Object -Unique + } catch { + return + } foreach ($propName in $allPropertyNames) { if (ShouldSkipProperty -PropertyName $propName) { continue } $newPath = if ($PropertyPath) { "$PropertyPath.$propName" } else { $propName } - $prop1Exists = $Object1.PSObject.Properties.Name -contains $propName - $prop2Exists = $Object2.PSObject.Properties.Name -contains $propName + # Safely check if properties exist - ensure objects are not arrays + $prop1Exists = $false + $prop2Exists = $false + try { + if (-not ($Object1 -is [Array] -or $Object1 -is [System.Collections.IList])) { + $prop1Exists = $Object1.PSObject.Properties.Name -contains $propName + } + if (-not ($Object2 -is [Array] -or $Object2 -is [System.Collections.IList])) { + $prop2Exists = $Object2.PSObject.Properties.Name -contains $propName + } + } catch { + continue + } if ($prop1Exists -and $prop2Exists) { - if ($Object1.$propName -and $Object2.$propName) { - Compare-ObjectsRecursively -Object1 $Object1.$propName -Object2 $Object2.$propName -PropertyPath $newPath -Depth ($Depth + 1) -MaxDepth $MaxDepth + try { + # Double-check arrays before accessing properties + if (($Object1 -is [Array] -or $Object1 -is [System.Collections.IList]) -or + ($Object2 -is [Array] -or $Object2 -is [System.Collections.IList])) { + continue + } + if ($Object1.$propName -and $Object2.$propName) { + Compare-ObjectsRecursively -Object1 $Object1.$propName -Object2 $Object2.$propName -PropertyPath $newPath -Depth ($Depth + 1) -MaxDepth $MaxDepth + } + } catch { + throw } } elseif ($prop1Exists) { - $result.Add([PSCustomObject]@{ - Property = $newPath - ExpectedValue = $Object1.$propName - ReceivedValue = '' - }) + try { + $result.Add([PSCustomObject]@{ + Property = $newPath + ExpectedValue = $Object1.$propName + ReceivedValue = '' + }) + } catch { + throw + } } else { - $result.Add([PSCustomObject]@{ - Property = $newPath - ExpectedValue = '' - ReceivedValue = $Object2.$propName - }) + try { + $result.Add([PSCustomObject]@{ + Property = $newPath + ExpectedValue = '' + ReceivedValue = $Object2.$propName + }) + } catch { + throw + } } } } else { @@ -217,6 +264,126 @@ function Compare-CIPPIntuneObject { } else { $intuneCollection = Get-Content .\intuneCollection.json | ConvertFrom-Json -ErrorAction SilentlyContinue + # Recursive function to process group setting collections at any depth + function Process-GroupSettingChildren { + param( + [Parameter(Mandatory = $true)] + $Children, + [Parameter(Mandatory = $true)] + [string]$Source, + [Parameter(Mandatory = $true)] + $IntuneCollection + ) + + $results = [System.Collections.Generic.List[PSCustomObject]]::new() + + foreach ($child in $Children) { + $childIntuneObj = $IntuneCollection | Where-Object { $_.id -eq $child.settingDefinitionId } + $childLabel = if ($childIntuneObj?.displayName) { + $childIntuneObj.displayName + } else { + $child.settingDefinitionId + } + + switch ($child.'@odata.type') { + '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstance' { + if ($child.groupSettingCollectionValue) { + foreach ($groupValue in $child.groupSettingCollectionValue) { + if ($groupValue.children) { + $nestedResults = Process-GroupSettingChildren -Children $groupValue.children -Source $Source -IntuneCollection $IntuneCollection + $results.AddRange($nestedResults) + } + } + } + } + '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' { + $childValue = $null + if ($child.choiceSettingValue?.value) { + $option = $childIntuneObj.options | Where-Object { + $_.id -eq $child.choiceSettingValue.value + } + $childValue = if ($option?.displayName) { + $option.displayName + } else { + $child.choiceSettingValue.value + } + } + + $results.Add([PSCustomObject]@{ + Key = "GroupChild-$($child.settingDefinitionId)" + Label = $childLabel + Value = $childValue + Source = $Source + }) + } + '#microsoft.graph.deviceManagementConfigurationSimpleSettingInstance' { + $childValue = $null + if ($null -ne $child.simpleSettingValue -and $null -ne $child.simpleSettingValue.value) { + $childValue = $child.simpleSettingValue.value + } + + $results.Add([PSCustomObject]@{ + Key = "GroupChild-$($child.settingDefinitionId)" + Label = $childLabel + Value = $childValue + Source = $Source + }) + } + '#microsoft.graph.deviceManagementConfigurationChoiceSettingCollectionInstance' { + if ($child.choiceSettingCollectionValue) { + $values = [System.Collections.Generic.List[string]]::new() + foreach ($choiceValue in $child.choiceSettingCollectionValue) { + $option = $childIntuneObj.options | Where-Object { + $_.id -eq $choiceValue.value + } + $displayValue = if ($option?.displayName) { + $option.displayName + } else { + $choiceValue.value + } + $values.Add($displayValue) + } + $childValue = $values -join ', ' + + $results.Add([PSCustomObject]@{ + Key = "GroupChild-$($child.settingDefinitionId)" + Label = $childLabel + Value = $childValue + Source = $Source + }) + } + } + '#microsoft.graph.deviceManagementConfigurationSimpleSettingCollectionInstance' { + if ($child.simpleSettingCollectionValue) { + $values = [System.Collections.Generic.List[object]]::new() + foreach ($simpleValue in $child.simpleSettingCollectionValue) { + $values.Add($simpleValue.value) + } + $childValue = $values -join ', ' + + $results.Add([PSCustomObject]@{ + Key = "GroupChild-$($child.settingDefinitionId)" + Label = $childLabel + Value = $childValue + Source = $Source + }) + } + } + default { + # Unknown setting type - could add logging here if needed + } + } + + # Also process any children within choice setting values + if ($child.choiceSettingValue?.children) { + $nestedResults = Process-GroupSettingChildren -Children $child.choiceSettingValue.children -Source $Source -IntuneCollection $IntuneCollection + $results.AddRange($nestedResults) + } + } + + return $results + } + # Process reference object settings $referenceItems = $ReferenceObject.settings | ForEach-Object { $settingInstance = $_.settingInstance @@ -224,40 +391,18 @@ function Compare-CIPPIntuneObject { $tempOutput = switch ($settingInstance.'@odata.type') { '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstance' { if ($null -ne $settingInstance.groupSettingCollectionValue) { + $groupResults = [System.Collections.Generic.List[PSCustomObject]]::new() foreach ($groupValue in $settingInstance.groupSettingCollectionValue) { if ($groupValue.children -is [System.Array]) { - foreach ($child in $groupValue.children) { - $childIntuneObj = $intuneCollection | Where-Object { $_.id -eq $child.settingDefinitionId } - $childLabel = if ($childIntuneObj?.displayName) { - $childIntuneObj.displayName - } else { - $child.settingDefinitionId - } - $childValue = $null - if ($child.choiceSettingValue?.value) { - $option = $childIntuneObj.options | Where-Object { - $_.id -eq $child.choiceSettingValue.value - } - $childValue = if ($option?.displayName) { - $option.displayName - } else { - $child.choiceSettingValue.value - } - } - - # Add object to our temporary list - [PSCustomObject]@{ - Key = "GroupChild-$($child.settingDefinitionId)" - Label = $childLabel - Value = $childValue - Source = 'Reference' - } - } + $childResults = Process-GroupSettingChildren -Children $groupValue.children -Source 'Reference' -IntuneCollection $intuneCollection + $groupResults.AddRange($childResults) } } + # Return the results from the recursive processing + $groupResults } } - Default { + default { if ($settingInstance.simpleSettingValue?.value) { $label = if ($intuneObj?.displayName) { $intuneObj.displayName @@ -318,40 +463,18 @@ function Compare-CIPPIntuneObject { $tempOutput = switch ($settingInstance.'@odata.type') { '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstance' { if ($null -ne $settingInstance.groupSettingCollectionValue) { + $groupResults = [System.Collections.Generic.List[PSCustomObject]]::new() foreach ($groupValue in $settingInstance.groupSettingCollectionValue) { if ($groupValue.children -is [System.Array]) { - foreach ($child in $groupValue.children) { - $childIntuneObj = $intuneCollection | Where-Object { $_.id -eq $child.settingDefinitionId } - $childLabel = if ($childIntuneObj?.displayName) { - $childIntuneObj.displayName - } else { - $child.settingDefinitionId - } - $childValue = $null - if ($child.choiceSettingValue?.value) { - $option = $childIntuneObj.options | Where-Object { - $_.id -eq $child.choiceSettingValue.value - } - $childValue = if ($option?.displayName) { - $option.displayName - } else { - $child.choiceSettingValue.value - } - } - - # Add object to our temporary list - [PSCustomObject]@{ - Key = "GroupChild-$($child.settingDefinitionId)" - Label = $childLabel - Value = $childValue - Source = 'Difference' - } - } + $childResults = Process-GroupSettingChildren -Children $groupValue.children -Source 'Difference' -IntuneCollection $intuneCollection + $groupResults.AddRange($childResults) } } + # Return the results from the recursive processing + $groupResults } } - Default { + default { if ($settingInstance.simpleSettingValue?.value) { $label = if ($intuneObj?.displayName) { $intuneObj.displayName diff --git a/Modules/CIPPCore/Public/ConversionTable.csv b/Modules/CIPPCore/Public/ConversionTable.csv deleted file mode 100644 index 704f7c507d5f..000000000000 --- a/Modules/CIPPCore/Public/ConversionTable.csv +++ /dev/null @@ -1,5617 +0,0 @@ -Product_Display_Name,String_Id,GUID,Service_Plan_Name,Service_Plan_Id,Service_Plans_Included_Friendly_Names -10-Year Audit Log Retention Add On,10_ALR_ADDON,c2e41e49-e2a2-4c55-832a-cf13ffba1d6a,Auditing_10Year_ Retention_ Add_On,7d16094b-4db8-41ff-a182-372a90a85407,Auditing 10Year Retention Add On -Advanced Communications,ADV_COMMS,e4654015-5daf-4a48-9b37-4f309dddd88b,TEAMS_ADVCOMMS,604ec28a-ae18-4bc6-91b0-11da94504ba9,Microsoft 365 Advanced Communications -AI Builder Capacity add-on,CDSAICAPACITY,d2dea78b-507c-4e56-b400-39447f4738f8,CDSAICAPACITY,a7c70a41-5e02-4271-93e6-d9b4184d83f5,AI Builder capacity add-on -AI Builder Capacity add-on,CDSAICAPACITY,d2dea78b-507c-4e56-b400-39447f4738f8,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -App Connect IW,SPZA_IW,8f0c5670-4e56-4892-b06d-91c085d7004f,SPZA,0bfc98ed-1dbc-4a97-b246-701754e48b17,APP CONNECT -App Connect IW,SPZA_IW,8f0c5670-4e56-4892-b06d-91c085d7004f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -App governance add-on to Microsoft Defender for Cloud Apps,Microsoft_Cloud_App_Security_App_Governance_Add_On,9706eed9-966f-4f1b-94f6-bb2b4af99a5b,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform -App governance add-on to Microsoft Defender for Cloud Apps,Microsoft_Cloud_App_Security_App_Governance_Add_On,9706eed9-966f-4f1b-94f6-bb2b4af99a5b,MICROSOFT_APPLICATION_PROTECTION_AND_GOVERNANCE_A,5f3b1ded-75c0-4b31-8e6e-9b077eaadfd5,Microsoft Application Protection and Governance (A) -App governance add-on to Microsoft Defender for Cloud Apps,Microsoft_Cloud_App_Security_App_Governance_Add_On,9706eed9-966f-4f1b-94f6-bb2b4af99a5b,MICROSOFT_APPLICATION_PROTECTION_AND_GOVERNANCE_D,2e6ffd72-52d1-4541-8f6c-938f9a8d4cdc,Microsoft Application Protection and Governance (D) -Azure Information Protection Premium P1 for Government,RIGHTSMANAGEMENT_CE_GOV ,78362de1-6942-4bb8-83a1-a32aa67e6e2c,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Azure Information Protection Premium P1 for Government,RIGHTSMANAGEMENT_CE_GOV ,78362de1-6942-4bb8-83a1-a32aa67e6e2c,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC -Azure Information Protection Premium P1 for Government,RIGHTSMANAGEMENT_CE_GOV ,78362de1-6942-4bb8-83a1-a32aa67e6e2c,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management -Career Coach for faculty,CAREERCOACH_FACULTY,95de1760-7682-406d-98c9-52ef14e51e2b,CAREERCOACH_EDU,80f0ae31-0dfb-425c-b3fc-36f40170eb35,Career Coach -Career Coach for students,CAREERCOACH_STUDENTS,01c8007a-57d2-41e0-a3c3-0b46ead16cc4,CAREERCOACH_EDU,80f0ae31-0dfb-425c-b3fc-36f40170eb35,Career Coach -Clipchamp Premium,Clipchamp_Premium,0fe440c5-f2bf-442b-a4f4-9a7af77a200b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Clipchamp Premium,Clipchamp_Premium,0fe440c5-f2bf-442b-a4f4-9a7af77a200b,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Clipchamp Premium,Clipchamp_Premium,0fe440c5-f2bf-442b-a4f4-9a7af77a200b,CLIPCHAMP_PREMIUM,430b908f-78e1-4812-b045-cf83320e7d5d,Microsoft Clipchamp Premium -Clipchamp Premium,Clipchamp_Premium,0fe440c5-f2bf-442b-a4f4-9a7af77a200b,ONEDRIVECLIPCHAMP,f7e5b77d-f293-410a-bae8-f941f19fe680,OneDrive for Business (Clipchamp) -Clipchamp Standard,Clipchamp_Standard,481f3bc2-5756-4b28-9375-5c8c86b99e6b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Clipchamp Standard,Clipchamp_Standard,481f3bc2-5756-4b28-9375-5c8c86b99e6b,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Clipchamp Standard,Clipchamp_Standard,481f3bc2-5756-4b28-9375-5c8c86b99e6b,ONEDRIVECLIPCHAMP,f7e5b77d-f293-410a-bae8-f941f19fe680,OneDrive for Business (Clipchamp) -Microsoft 365 Audio Conferencing,MCOMEETADV,0c266dff-15dd-4b49-8397-2bb16070ed52,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft Entra ID Basic,AAD_BASIC,2b9c8e7c-319c-43a2-a2a0-48c5c6161de7,AAD_BASIC,c4da7f8a-5ee2-4c99-a7e1-87d2df57f6fe,Microsoft Entra BASIC -Microsoft Entra ID P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft Entra ID P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,CLOUD APP SECURITY DISCOVERY -Microsoft Entra ID P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Microsoft Entra ID P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION -Microsoft Entra ID P1 for Faculty,AAD_PREMIUM_FACULTY,30fc3c36-5a95-4956-ba57-c09c2a600bb9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Entra ID P1 for Faculty,AAD_PREMIUM_FACULTY,30fc3c36-5a95-4956-ba57-c09c2a600bb9,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft Entra ID P1 for Faculty,AAD_PREMIUM_FACULTY,30fc3c36-5a95-4956-ba57-c09c2a600bb9,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft Entra ID P1 for Faculty,AAD_PREMIUM_FACULTY,30fc3c36-5a95-4956-ba57-c09c2a600bb9,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft Entra ID P1_USGOV_GCCHIGH,AAD_PREMIUM_USGOV_GCCHIGH ,de597797-22fb-4d65-a9fe-b7dbe8893914,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Entra ID P1_USGOV_GCCHIGH,AAD_PREMIUM_USGOV_GCCHIGH ,de597797-22fb-4d65-a9fe-b7dbe8893914,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft Entra ID P1_USGOV_GCCHIGH,AAD_PREMIUM_USGOV_GCCHIGH ,de597797-22fb-4d65-a9fe-b7dbe8893914,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft Entra ID P1_USGOV_GCCHIGH,AAD_PREMIUM_USGOV_GCCHIGH ,de597797-22fb-4d65-a9fe-b7dbe8893914,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,CLOUD APP SECURITY DISCOVERY -Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION -Azure Information Protection Plan 1,RIGHTSMANAGEMENT,c52ea49f-fe5d-4e95-93ba-1de91d380f89,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,AZURE INFORMATION PROTECTION PREMIUM P1 -Azure Information Protection Plan 1,RIGHTSMANAGEMENT,c52ea49f-fe5d-4e95-93ba-1de91d380f89,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Microsoft Entra RIGHTS -Azure Information Protection Plan 1,RIGHTSMANAGEMENT_CE,a0e6a48f-b056-4037-af70-b9ac53504551,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Azure Information Protection Plan 1,RIGHTSMANAGEMENT_CE,a0e6a48f-b056-4037-af70-b9ac53504551,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Azure Information Protection Plan 1,RIGHTSMANAGEMENT_CE,a0e6a48f-b056-4037-af70-b9ac53504551,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Azure Information Protection Premium P1_USGOV_GCCHIGH,RIGHTSMANAGEMENT_CE_USGOV_GCCHIGH,c57afa2a-d468-46c4-9a90-f86cb1b3c54a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Azure Information Protection Premium P1_USGOV_GCCHIGH,RIGHTSMANAGEMENT_CE_USGOV_GCCHIGH,c57afa2a-d468-46c4-9a90-f86cb1b3c54a,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Azure Information Protection Premium P1_USGOV_GCCHIGH,RIGHTSMANAGEMENT_CE_USGOV_GCCHIGH,c57afa2a-d468-46c4-9a90-f86cb1b3c54a,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Basic Collaboration,OFFICEBASIC,4468c39a-28b2-42fb-9094-840bcf28771f,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Basic Collaboration,OFFICEBASIC,4468c39a-28b2-42fb-9094-840bcf28771f,ONEDRIVELITE_IW,b4ac11a0-32ff-4e78-982d-e039fa803dec,Office for the web with OneDrive for business -Basic Collaboration,OFFICEBASIC,4468c39a-28b2-42fb-9094-840bcf28771f,MCOBASIC,448898aa-3ae7-478c-b49a-1fac7a8a35cf,Skype Meetings -Basic Collaboration,OFFICEBASIC,4468c39a-28b2-42fb-9094-840bcf28771f,YAMMER_BASIC,6db7aeea-6c4a-475d-bbb0-7338bc73d646,Yammer -Business Apps (free),SMB_APPS,90d8b3f8-712e-4f7b-aa1e-62e7ae6cbe96,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing -Business Apps (free),SMB_APPS,90d8b3f8-712e-4f7b-aa1e-62e7ae6cbe96,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Common Data Service for Apps File Capacity,CDS_FILE_CAPACITY,631d5fb1-a668-4c2a-9427-8830665a742e,CDS_FILE_CAPACITY,dd12a3a8-caec-44f8-b4fb-2f1a864b51e3,Common Data Service for Apps File Capacity -Common Data Service for Apps File Capacity,CDS_FILE_CAPACITY,631d5fb1-a668-4c2a-9427-8830665a742e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Common Data Service Database Capacity,CDS_DB_CAPACITY,e612d426-6bc3-4181-9658-91aa906b0ac0,CDS_DB_CAPACITY,360bcc37-0c11-4264-8eed-9fa7a3297c9b,Common Data Service for Apps Database Capacity -Common Data Service Database Capacity,CDS_DB_CAPACITY,e612d426-6bc3-4181-9658-91aa906b0ac0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Common Data Service Database Capacity for Government,CDS_DB_CAPACITY_GOV,eddf428b-da0e-4115-accf-b29eb0b83965,CDS_DB_CAPACITY_GOV,1ddffef6-4f69-455e-89c7-d5d72105f915,Common Data Service for Apps Database Capacity for Government -Common Data Service Database Capacity for Government,CDS_DB_CAPACITY_GOV,eddf428b-da0e-4115-accf-b29eb0b83965,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Common Data Service Log Capacity,CDS_LOG_CAPACITY,448b063f-9cc6-42fc-a0e6-40e08724a395,CDS_LOG_CAPACITY,dc48f5c5-e87d-43d6-b884-7ac4a59e7ee9,Common Data Service for Apps Log Capacity -Common Data Service Log Capacity,CDS_LOG_CAPACITY,448b063f-9cc6-42fc-a0e6-40e08724a395,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Communications Credits,MCOPSTNC,47794cd0-f0e5-45c5-9033-2eb6b5fc84e0,MCOPSTNC,505e180f-f7e0-4b65-91d4-00d670bbd18c,COMMUNICATIONS CREDITS -Compliance Manager Premium Assessment Add-On,CMPA_addon,8a5fbbed-8b8c-41e5-907e-c50c471340fd,COMPLIANCE_MANAGER_PREMIUM_ASSESSMENT_ADDON,3a117d30-cfac-4f00-84ac-54f8b6a18d78,Compliance Manager Premium Assessment Add-On -Compliance Manager Premium Assessment Add-On for GCC,CMPA_addon_GCC,a9d7ef53-9bea-4a2a-9650-fa7df58fe094,COMPLIANCE_MANAGER_PREMIUM_ASSESSMENT_ADDON,3a117d30-cfac-4f00-84ac-54f8b6a18d78,Compliance Manager Premium Assessment Add-On -Defender Threat Intelligence,Defender_Threat_Intelligence,a9c51c15-ffad-4c66-88c0-8771455c832d,THREAT_INTELLIGENCE_APP,fbdb91e6-7bfd-4a1f-8f7a-d27f4ef39702,Defender Threat Intelligence -Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_CHAT_FPA_GOV,b9f7ce72-67ff-4695-a9d9-5ff620232024,Dynamics 365 Customer Service Chat Application Integration for Government -Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government -Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_MESSAGING_GOV,e304c3c3-f86c-4200-b174-1ade48805b22,Dynamics 365 Customer Service Digital Messaging application integration for Government -Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_CHAT_GOV,ffb878a5-3184-472b-800b-65eadc63d764,Dynamics 365 for Customer Service Chat for Government -Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,POWER_VIRTUAL_AGENTS_D365_CS_CHAT_GOV,9023fe69-f9e0-4c1e-bfde-654954469162,Power Virtual Agents for Chat for Gov -Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING_GOV,e501d49b-1176-4816-aece-2563c0d995db,Power Virtual Agents for Digital Messaging for Gov -Dynamics 365 - Additional Database Storage (Qualified Offer),CRMSTORAGE,328dc228-00bc-48c6-8b09-1fbc8bc3435d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 - Additional Database Storage (Qualified Offer),CRMSTORAGE,328dc228-00bc-48c6-8b09-1fbc8bc3435d,CRMSTORAGE,77866113-0f3e-4e6e-9666-b1e25c6f99b0,Microsoft Dynamics CRM Online Storage Add-On -Dynamics 365 - Additional Production Instance (Qualified Offer),CRMINSTANCE,9d776713-14cb-4697-a21d-9a52455c738a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 - Additional Production Instance (Qualified Offer),CRMINSTANCE,9d776713-14cb-4697-a21d-9a52455c738a,CRMINSTANCE,eeea837a-c885-4167-b3d5-ddde30cbd85f,Microsoft Dynamics CRM Online Instance -Dynamics 365 - Additional Non-Production Instance (Qualified Offer),CRMTESTINSTANCE,e06abcc2-7ec5-4a79-b08b-d9c282376f72,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 - Additional Non-Production Instance (Qualified Offer),CRMTESTINSTANCE,e06abcc2-7ec5-4a79-b08b-d9c282376f72,CRMTESTINSTANCE,a98b7619-66c7-4885-bdfc-1d9c8c3d279f,Microsoft Dynamics CRM Online Additional Test Instance -Dynamics 365 AI for Market Insights (Preview),SOCIAL_ENGAGEMENT_APP_USER,c6df1e30-1c9f-427f-907c-3d913474a1c7,SOCIAL_ENGAGEMENT_APP_USER,339f4def-5ad8-4430-8d12-da5fd4c769a7,Dynamics 365 AI for Market Insights - Free -Dynamics 365 AI for Market Insights (Preview),SOCIAL_ENGAGEMENT_APP_USER,c6df1e30-1c9f-427f-907c-3d913474a1c7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Asset Management Addl Assets,DYN365_ASSETMANAGEMENT,673afb9d-d85b-40c2-914e-7bf46cd5cd75,D365_AssetforSCM,90467813-5b40-40d4-835c-abd48009b1d9,Asset Maintenance Add-in -Dynamics 365 Asset Management Addl Assets,DYN365_ASSETMANAGEMENT,673afb9d-d85b-40c2-914e-7bf46cd5cd75,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Business Central Additional Environment Addon,DYN365_BUSCENTRAL_ADD_ENV_ADDON,a58f5506-b382-44d4-bfab-225b2fbf8390,DYN365_BUSCENTRAL_ENVIRONMENT,d397d6c6-9664-4502-b71c-66f39c400ca4,Dynamics 365 Business Central Additional Environment Addon -Dynamics 365 Business Central Database Capacity,DYN365_BUSCENTRAL_DB_CAPACITY,7d0d4f9a-2686-4cb8-814c-eff3fdab6d74,DYN365_BUSCENTRAL_DB_CAPACITY,ae6b27b3-fe31-4e77-ae06-ec5fabbc103a,Dynamics 365 Business Central Database Capacity -Dynamics 365 Business Central Database Capacity,DYN365_BUSCENTRAL_DB_CAPACITY,7d0d4f9a-2686-4cb8-814c-eff3fdab6d74,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Business Central Essentials,DYN365_BUSCENTRAL_ESSENTIAL,2880026b-2b0c-4251-8656-5d41ff11e3aa,DYN365_FINANCIALS_BUSINESS,920656a2-7dd8-4c83-97b6-a356414dbd36,Dynamics 365 for Business Central Essentials -Dynamics 365 Business Central Essentials,DYN365_BUSCENTRAL_ESSENTIAL,2880026b-2b0c-4251-8656-5d41ff11e3aa,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Business Central Essentials,DYN365_BUSCENTRAL_ESSENTIAL,2880026b-2b0c-4251-8656-5d41ff11e3aa,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Flow for Dynamics 365 -Dynamics 365 Business Central Essentials,DYN365_BUSCENTRAL_ESSENTIAL,2880026b-2b0c-4251-8656-5d41ff11e3aa,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,PowerApps for Dynamics 365 -Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,DYN365_BUSCENTRAL_ESSENTIALS_ATTACH,17ca446c-d7a4-4d29-8dec-8e241592164b,Dynamics 365 Business Central Essentials Attach -Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 Business Central External Accountant,DYN365_FINANCIALS_ACCOUNTANT_SKU,9a1e33ed-9697-43f3-b84c-1b0959dbb1d4,DYN365_FINANCIALS_ACCOUNTANT,170991d7-b98e-41c5-83d4-db2052e1795f,Dynamics 365 Business Central External Accountant -Dynamics 365 Business Central External Accountant,DYN365_FINANCIALS_ACCOUNTANT_SKU,9a1e33ed-9697-43f3-b84c-1b0959dbb1d4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Business Central External Accountant,DYN365_FINANCIALS_ACCOUNTANT_SKU,9a1e33ed-9697-43f3-b84c-1b0959dbb1d4,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Flow for Dynamics 365 -Dynamics 365 Business Central External Accountant,DYN365_FINANCIALS_ACCOUNTANT_SKU,9a1e33ed-9697-43f3-b84c-1b0959dbb1d4,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,PowerApps for Dynamics 365 -Dynamics 365 Business Central for IWs,PROJECT_MADEIRA_PREVIEW_IW_SKU,6a4a1628-9b9a-424d-bed5-4118f0ede3fd,PROJECT_MADEIRA_PREVIEW_IW,3f2afeed-6fb5-4bf9-998f-f2912133aead,Dynamics 365 Business Central for IWs -Dynamics 365 Business Central for IWs,PROJECT_MADEIRA_PREVIEW_IW_SKU,6a4a1628-9b9a-424d-bed5-4118f0ede3fd,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Business Central Premium,DYN365_BUSCENTRAL_PREMIUM,f991cecc-3f91-4cd0-a9a8-bf1c8167e029,DYN365_BUSCENTRAL_PREMIUM,8e9002c0-a1d8-4465-b952-817d2948e6e2,Dynamics 365 Business Central Premium -Dynamics 365 Business Central Premium,DYN365_BUSCENTRAL_PREMIUM,f991cecc-3f91-4cd0-a9a8-bf1c8167e029,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Business Central Premium,DYN365_BUSCENTRAL_PREMIUM,f991cecc-3f91-4cd0-a9a8-bf1c8167e029,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Flow for Dynamics 365 -Dynamics 365 Business Central Premium,DYN365_BUSCENTRAL_PREMIUM,f991cecc-3f91-4cd0-a9a8-bf1c8167e029,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,PowerApps for Dynamics 365 -Dynamics 365 Business Central Team Members,DYN365_BUSCENTRAL_TEAM_MEMBER,2e3c4023-80f6-4711-aa5d-29e0ecb46835,DYN365_FINANCIALS_TEAM_MEMBERS,d9a6391b-8970-4976-bd94-5f205007c8d8,Dynamics 365 for Team Members -Dynamics 365 Business Central Team Members,DYN365_BUSCENTRAL_TEAM_MEMBER,2e3c4023-80f6-4711-aa5d-29e0ecb46835,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Business Central Team Members,DYN365_BUSCENTRAL_TEAM_MEMBER,2e3c4023-80f6-4711-aa5d-29e0ecb46835,POWERAPPS_DYN_TEAM,52e619e2-2730-439a-b0d3-d09ab7e8b705,Power Apps for Dynamics 365 -Dynamics 365 Business Central Team Members,DYN365_BUSCENTRAL_TEAM_MEMBER,2e3c4023-80f6-4711-aa5d-29e0ecb46835,FLOW_DYN_TEAM,1ec58c70-f69c-486a-8109-4b87ce86e449,Power Automate for Dynamics 365 -Dynamics 365 Commerce Trial,DYN365_RETAIL_TRIAL,1508ad2d-5802-44e6-bfe8-6fb65de63d28,DYN365_RETAIL_TRIAL,874d6da5-2a67-45c1-8635-96e8b3e300ea,Dynamics 365 for Retail Trial -Dynamics 365 Commerce Trial,DYN365_RETAIL_TRIAL,1508ad2d-5802-44e6-bfe8-6fb65de63d28,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,DYN365_ENTERPRISE_P1,d56f3deb-50d8-465a-bedb-f079817ccac1,Dynamics 365 Customer Engagement Plan -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,D365_CSI_EMBED_CE,1412cdc1-d593-4ad1-9050-40c30ad0b023,Dynamics 365 Customer Service Insights for CE Plan -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,D365_ProjectOperationsCDS,18fa3aba-b085-4105-87d7-55617b8585e6,Dynamics 365 Project Operations CDS -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,Forms_Pro_CE,97f29a83-1a20-44ff-bf48-5e4ad11f3e51,Microsoft Dynamics 365 Customer Voice for Customer Engagement Plan -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,Retired - Microsoft Social Engagement -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,D365_ProjectOperations,69f07c66-bee4-4222-b051-195095efee5b,Dynamics 365 Project Operations -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,DYN365_CDS_GUIDES,1315ade1-0410-450d-b8e3-8050e6da320f,Common Data Service -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Dynamics 365 Remote Assist -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,PROJECT_FOR_PROJECT_OPERATIONS,0a05d977-a21a-45b2-91ce-61c240dbafa2,Project for Project Operations -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,Project Online Service -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,POWERAPPS_DYN_P2,0b03f40b-c404-40c3-8651-2aceb74365fa,Power Apps for Dynamics 365 -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,FLOW_DYN_P2,b650d915-9886-424b-a08d-633cede56f57,Power Automate for Dynamics 365 -Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,CDS_CUSTOMER_INSIGHTS_BASE,d04ca659-b119-4a92-b8fc-3ede584a9d65,Dataverse for Customer Insights BASE -Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,CDS_CUSTOMER_INSIGHTS,ca00cff5-2568-4d03-bb6c-a653a8f360ca,Common Data Service for Customer Insights -Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,DYN365_CUSTOMER_INSIGHTS_BASE,ee85d528-c4b4-4a99-9b07-fb9a1365dc93,Dynamics 365 Customer Insights -Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,Customer_Voice_Customer_Insights,46c5ea0a-2343-49d9-ae4f-1c268b232d53,Microsoft Dynamics 365 Customer Voice for Customer Insights App -Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Customer Service Digital Messaging add-on for Government,DYN365_CS_MESSAGING_GOV,336dfe1f-3b33-4ab4-b395-cba8f614976d,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government -Dynamics 365 for Customer Service Digital Messaging add-on for Government,DYN365_CS_MESSAGING_GOV,336dfe1f-3b33-4ab4-b395-cba8f614976d,DYN365_CS_MESSAGING_GOV,e304c3c3-f86c-4200-b174-1ade48805b22,Dynamics 365 Customer Service Digital Messaging application integration for Government -Dynamics 365 for Customer Service Digital Messaging add-on for Government,DYN365_CS_MESSAGING_GOV,336dfe1f-3b33-4ab4-b395-cba8f614976d,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING_GOV,e501d49b-1176-4816-aece-2563c0d995db,Power Virtual Agents for Digital Messaging for Gov -Dynamics 365 for Customer Service Digital Messaging add-on for Government,DYN365_CS_MESSAGING_GOV,336dfe1f-3b33-4ab4-b395-cba8f614976d,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government -Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,DYN365_CS_VOICE_GOV,411b0c93-8f89-455e-a663-c0a3effd12c3,Dynamics 365 for Customer Service Voice Add-in for Government -Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,POWER_VIRTUAL_AGENTS_D365_CS_VOICE_GOV,cad9c719-36e0-43c7-9506-6886f272d4f0,Power Virtual Agents for Customer Service Voice for Government -Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING_GOV,e501d49b-1176-4816-aece-2563c0d995db,Power Virtual Agents for Digital Messaging for Gov -Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government -Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,DYN365_CS_VOICE_GOV,411b0c93-8f89-455e-a663-c0a3effd12c3,Dynamics 365 for Customer Service Voice Add-in for Government -Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,POWER_VIRTUAL_AGENTS_D365_CS_VOICE_GOV,cad9c719-36e0-43c7-9506-6886f272d4f0,Power Virtual Agents for Customer Service Voice for Government -Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING_GOV,e501d49b-1176-4816-aece-2563c0d995db,Power Virtual Agents for Digital Messaging for Gov -Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Dynamics 365 for Customer Service Chat for Government,DYN365_CS_CHAT_GOV,1b399f66-be2a-479c-a79d-84a43a46f79e,DYN365_CS_CHAT_FPA_GOV,b9f7ce72-67ff-4695-a9d9-5ff620232024,Dynamics 365 Customer Service Chat Application Integration for Government -Dynamics 365 for Customer Service Chat for Government,DYN365_CS_CHAT_GOV,1b399f66-be2a-479c-a79d-84a43a46f79e,DYN365_CS_CHAT_GOV,ffb878a5-3184-472b-800b-65eadc63d764,Dynamics 365 for Customer Service Chat for Government -Dynamics 365 for Customer Service Chat for Government,DYN365_CS_CHAT_GOV,1b399f66-be2a-479c-a79d-84a43a46f79e,POWER_VIRTUAL_AGENTS_D365_CS_CHAT_GOV,9023fe69-f9e0-4c1e-bfde-654954469162,Power Virtual Agents for Chat for Gov -Dynamics 365 for Customer Service Chat for Government,DYN365_CS_CHAT_GOV,1b399f66-be2a-479c-a79d-84a43a46f79e,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial -Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on -Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,D365_CSI_EMBED_CSEnterprise,5b1e5982-0e88-47bb-a95e-ae6085eda612,Dynamics 365 Customer Service Insights for CS Enterprise -Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,DYN365_ENTERPRISE_CUSTOMER_SERVICE,99340b49-fb81-4b1e-976b-8f2ae8e9394f,Dynamics 365 for Customer Service -Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in -Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice -Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING,2d2f174c-c3cc-4abe-9ce8-4dd86f469ab1,Power Virtual Agents for Digital Messaging -Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 Customer Service Voice Channel Add-in,DYN365_CS_VOICE,dadd2312-b5b1-4fa0-8c15-0903de3e2303,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in -Dynamics 365 Customer Service Voice Channel Add-in,DYN365_CS_VOICE,dadd2312-b5b1-4fa0-8c15-0903de3e2303,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice -Dynamics 365 Customer Service Voice Channel Add-in,DYN365_CS_VOICE,dadd2312-b5b1-4fa0-8c15-0903de3e2303,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,CDS_CUSTOMER_INSIGHTS_BASE,d04ca659-b119-4a92-b8fc-3ede584a9d65,Dataverse for Cust Insights BASE -Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,CDS_CUSTOMER_INSIGHTS,ca00cff5-2568-4d03-bb6c-a653a8f360ca,Common Data Service for Customer Insights -Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,DYN365_CUSTOMER_INSIGHTS_BASE,ee85d528-c4b4-4a99-9b07-fb9a1365dc93,Dynamics 365 Customer Insights -Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,DYN365_CUSTOMER_INSIGHTS_ENGAGEMENT_INSIGHTS_BASE,b3c26516-3b8d-492f-a5a3-64d70ad3f8d0,Dynamics 365 Customer Insights Engagement Insights -Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,Customer_Voice_Customer_Insights,46c5ea0a-2343-49d9-ae4f-1c268b232d53,Microsoft Dynamics 365 Customer Voice for Customer Insights App -Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Customer Insights vTrial,DYN365_CUSTOMER_INSIGHTS_VIRAL,036c2481-aa8a-47cd-ab43-324f0c157c2d,CDS_CUSTOMER_INSIGHTS_TRIAL,94e5cbf6-d843-4ee8-a2ec-8b15eb52019e,Common Data Service for Customer Insights Trial -Dynamics 365 Customer Insights vTrial,DYN365_CUSTOMER_INSIGHTS_VIRAL,036c2481-aa8a-47cd-ab43-324f0c157c2d,DYN365_CUSTOMER_INSIGHTS_ENGAGEMENT_INSIGHTS_BASE_TRIAL,e2bdea63-235e-44c6-9f5e-5b0e783f07dd,Dynamics 365 Customer Insights Engagement Insights Viral -Dynamics 365 Customer Insights vTrial,DYN365_CUSTOMER_INSIGHTS_VIRAL,036c2481-aa8a-47cd-ab43-324f0c157c2d,DYN365_CUSTOMER_INSIGHTS_VIRAL,ed8e8769-94c5-4132-a3e7-7543b713d51f,Dynamics 365 Customer Insights Viral Plan -Dynamics 365 Customer Insights vTrial,DYN365_CUSTOMER_INSIGHTS_VIRAL,036c2481-aa8a-47cd-ab43-324f0c157c2d,Forms_Pro_Customer_Insights,fe581650-cf61-4a09-8814-4bd77eca9cb5,Microsoft Dynamics 365 Customer Voice for Customer Insights -Dynamics 365 for Customer Service Enterprise Attach to Qualifying Dynamics 365 Base Offer A,D365_CUSTOMER_SERVICE_ENT_ATTACH,eb18b715-ea9d-4290-9994-2ebf4b5042d2,D365_CUSTOMER_SERVICE_ENT_ATTACH,61a2665f-1873-488c-9199-c3d0bc213fdf,Dynamics 365 for Customer Service Enterprise Attach -Dynamics 365 for Customer Service Enterprise Attach to Qualifying Dynamics 365 Base Offer A,D365_CUSTOMER_SERVICE_ENT_ATTACH,eb18b715-ea9d-4290-9994-2ebf4b5042d2,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 for Customer Service Enterprise Attach to Qualifying Dynamics 365 Base Offer A,D365_CUSTOMER_SERVICE_ENT_ATTACH,eb18b715-ea9d-4290-9994-2ebf4b5042d2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,dc6643d9-1e72-4dce-9f64-1d6eac1f1c5a,Dynamics 365 for Customer Service for Government -Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,Forms_Pro_Service_GCC,bb681a9b-58f5-42ee-9926-674325be8aaa,Microsoft Dynamics 365 Customer Voice for Customer Service Enterprise for GCC -Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government -Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government -Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government -Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial -Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,CCIBOTS_PRIVPREV_VIRAL,ce312d15-8fdf-44c0-9974-a25a177125ee,Dynamics 365 AI for Customer Service Virtual Agents Viral -Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,DYN365_CS_MESSAGING_VIRAL_TRIAL,3bf52bdf-5226-4a97-829e-5cca9b3f3392,Dynamics 365 Customer Service Digital Messaging vTrial -Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,DYN365_CS_ENTERPRISE_VIRAL_TRIAL,94fb67d3-465f-4d1f-a50a-952da079a564,Dynamics 365 Customer Service Enterprise vTrial -Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,DYNB365_CSI_VIRAL_TRIAL,33f1466e-63a6-464c-bf6a-d1787928a56a,Dynamics 365 Customer Service Insights vTrial -Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,DYN365_CS_VOICE_VIRAL_TRIAL,3de81e39-4ce1-47f7-a77f-8473d4eb6d7c,Dynamics 365 Customer Service Voice vTrial -Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,POWER_APPS_DYN365_VIRAL_TRIAL,54b37829-818e-4e3c-a08a-3ea66ab9b45d,Power Apps for Dynamics 365 vTrial -Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,POWER_AUTOMATE_DYN365_VIRAL_TRIAL,81d4ecb8-0481-42fb-8868-51536c5aceeb,Power Automate for Dynamics 365 vTrial -Dynamics 365 Customer Service Insights Trial,DYN365_AI_SERVICE_INSIGHTS,61e6bd70-fbdb-4deb-82ea-912842f39431,DYN365_AI_SERVICE_INSIGHTS,4ade5aa6-5959-4d2c-bf0a-f4c9e2cc00f2,Dynamics 365 AI for Customer Service Trial -Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,DYN365_CDS_FORMS_PRO,363430d1-e3f7-43bc-b07b-767b6bb95e4b,Common Data Service -Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,FORMS_PRO,17efdd9f-c22c-4ad8-b48e-3b1f3ee1dc9a,Dynamics 365 Customer Voice -Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) -Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,FLOW_FORMS_PRO,57a0746c-87b8-4405-9397-df365a9db793,Power Automate for Dynamics 365 Customer Voice -Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,DYN365_CUSTOMER_SERVICE_PRO,6929f657-b31b-4947-b4ce-5066c3214f54,Dynamics 365 for Customer Service Pro -Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web -Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,POWERAPPS_CUSTOMER_SERVICE_PRO,c507b04c-a905-4940-ada6-918891e6d3ad,Power Apps for Customer Service Pro -Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,FLOW_CUSTOMER_SERVICE_PRO,0368fc9c-3721-437f-8b7d-3d0f888cdefc,Power Automate for Customer Service Pro -Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials -Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Dynamics 365 for Customer Service Professional Attach to Qualifying Dynamics 365 Base Offer,D365_CUSTOMER_SERVICE_PRO_ATTACH,19dec69d-d9f3-4792-8a39-d8ecdf51937b,D365_CUSTOMER_SERVICE_PRO_ATTACH,a9dd2dca-10ae-4da2-aaf0-d3fe8a825110,Dynamics 365 for Customer Service Pro Attach -Dynamics 365 for Customer Service Professional Attach to Qualifying Dynamics 365 Base Offer,D365_CUSTOMER_SERVICE_PRO_ATTACH,19dec69d-d9f3-4792-8a39-d8ecdf51937b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Customer Voice,DYN365_CUSTOMER_VOICE_BASE,359ea3e6-8130-4a57-9f8f-ad897a0342f1,Customer_Voice_Base,296820fe-dce5-40f4-a4f2-e14b8feef383,Dynamics 365 Customer Voice Base Plan -Dynamics 365 Customer Voice,DYN365_CUSTOMER_VOICE_BASE,359ea3e6-8130-4a57-9f8f-ad897a0342f1,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Customer Voice Additional Responses,Forms_Pro_AddOn,446a86f8-a0cb-4095-83b3-d100eb050e3d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Customer Voice Additional Responses,Forms_Pro_AddOn,446a86f8-a0cb-4095-83b3-d100eb050e3d,Forms_Pro_AddOn,90a816f6-de5f-49fd-963c-df490d73b7b5,Microsoft Dynamics 365 Customer Voice Add-on -Dynamics 365 Customer Voice Additional Responses,DYN365_CUSTOMER_VOICE_ADDON,65f71586-ade3-4ce1-afc0-1b452eaf3782,CUSTOMER_VOICE_ADDON,e6e35e2d-2e7f-4e71-bc6f-2f40ed062f5d,Dynamics Customer Voice Add-On -Dynamics 365 Customer Voice Additional Responses,DYN365_CUSTOMER_VOICE_ADDON,65f71586-ade3-4ce1-afc0-1b452eaf3782,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Customer Voice USL,Forms_Pro_USL,e2ae107b-a571-426f-9367-6d4c8f1390ba,CDS_FORM_PRO_USL,e9830cfd-e65d-49dc-84fb-7d56b9aa2c89,Common Data Service -Dynamics 365 Customer Voice USL,Forms_Pro_USL,e2ae107b-a571-426f-9367-6d4c8f1390ba,Forms_Pro_USL,3ca0766a-643e-4304-af20-37f02726339b,Microsoft Dynamics 365 Customer Voice USL -Dynamics 365 Customer Voice USL,Forms_Pro_USL,e2ae107b-a571-426f-9367-6d4c8f1390ba,FLOW_FORMS_PRO,57a0746c-87b8-4405-9397-df365a9db793,Power Automate for Dynamics 365 Customer Voice -Dynamics 365 Enterprise Edition - Additional Database Storage for Government,CRMSTORAGE_GCC,4aed5dd6-eb9c-4143-8f14-368d70287121,CRMSTORAGE_GCC,62edd427-6067-4274-93c4-29afdeb30707,Microsoft Dynamics CRM Online Storage Add-On -Dynamics 365 Enterprise Edition - Additional Database Storage for Government,CRMSTORAGE_GCC,4aed5dd6-eb9c-4143-8f14-368d70287121,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Enterprise Edition - Additional Portal for Government,CRM_ONLINE_PORTAL_GCC,cb9bc974-a47b-4123-998d-a383390168cc,CRM_ONLINE_PORTAL_GCC,eac6b45b-aa89-429f-a37b-c8ce00e8367e,Microsoft Dynamics CRM Online - Portal Add-On -Dynamics 365 Enterprise Edition - Additional Portal for Government,CRM_ONLINE_PORTAL_GCC,cb9bc974-a47b-4123-998d-a383390168cc,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Enterprise Edition - Additional Portal for Government,CRM_ONLINE_PORTAL_NOPREREQ,67f58b51-af53-4344-9663-9a2beb1d8a8e,CRM_ONLINE_PORTAL_GCC,eac6b45b-aa89-429f-a37b-c8ce00e8367e,Microsoft Dynamics CRM Online - Portal Add-On -Dynamics 365 Enterprise Edition - Additional Portal for Government,CRM_ONLINE_PORTAL_NOPREREQ,67f58b51-af53-4344-9663-9a2beb1d8a8e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Enterprise Edition - Additional Portal (Qualified Offer),CRM_ONLINE_PORTAL,a4bfb28e-becc-41b0-a454-ac680dc258d3,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Enterprise Edition - Additional Portal (Qualified Offer),CRM_ONLINE_PORTAL,a4bfb28e-becc-41b0-a454-ac680dc258d3,CRM_ONLINE_PORTAL,1d4e9cb1-708d-449c-9f71-943aa8ed1d6a,Microsoft Dynamics CRM Online - Portal Add-On -Dynamics 365 Enterprise Edition - Additional Non-Production Instance for Government,CRMTESTINSTANCE_GCC,1d2756cb-2147-4b05-b4d5-f013c022dcb9,CRMTESTINSTANCE_GCC,6d99eb83-7b5f-4947-8e99-cc12f1adb399,Microsoft Dynamics CRM Online Additional Non-production Instance -Dynamics 365 Enterprise Edition - Additional Non-Production Instance for Government,CRMTESTINSTANCE_GCC,1d2756cb-2147-4b05-b4d5-f013c022dcb9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 - Additional Non-Production Instance for Government,CRMTESTINSTANCE_NOPREREQ,2cf302fe-62db-4e20-b573-e0998b1208b5,CRMTESTINSTANCE_GCC,6d99eb83-7b5f-4947-8e99-cc12f1adb399,Microsoft Dynamics CRM Online Additional Non-production Instance -Dynamics 365 - Additional Non-Production Instance for Government,CRMTESTINSTANCE_NOPREREQ,2cf302fe-62db-4e20-b573-e0998b1208b5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Enterprise Edition - Additional Production Instance for Government,CRMINSTANCE_GCC,2bd3cb20-1bb6-446b-b4d0-089af3a05c52,CRMINSTANCE_GCC,483cc331-f4df-4a3b-b8ca-fe1a247569f6,Microsoft Dynamics CRM Online Instance -Dynamics 365 Enterprise Edition - Additional Production Instance for Government,CRMINSTANCE_GCC,2bd3cb20-1bb6-446b-b4d0-089af3a05c52,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -"Dynamics 365 Field Service, Enterprise Edition - Resource Scheduling Optimization",CRM_AUTO_ROUTING_ADDON,977464c4-bfaf-4b67-b761-a9bb735a2196,CRM_AUTO_ROUTING_ENGINE_ADDON,24435e4b-87d0-4d7d-8beb-63a9b1573022,Field Service – Automated Routing Engine Add-On -"Dynamics 365 Field Service, Enterprise Edition - Resource Scheduling Optimization",CRM_AUTO_ROUTING_ADDON,977464c4-bfaf-4b67-b761-a9bb735a2196,CRM_AUTO_ROUTING_ADDON,2ba394e0-6f18-4b77-b45f-a5663bbab540,RETIRED - Field Service – Automated Routing Engine Add-On -"Dynamics 365 Field Service, Enterprise Edition - Resource Scheduling Optimization",CRM_AUTO_ROUTING_ADDON,977464c4-bfaf-4b67-b761-a9bb735a2196,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Field Service Contractor for Government,D365_FIELD_SERVICE_CONTRACTOR_GOV,e7965e3a-1f49-4d67-a3de-ad1ce460bbcc,CDS_FIELD_SERVICE_CONTRACTOR_GCC,2457fe40-65be-48a1-935f-924ad6e62dba,Common Data Service Field service Part Time Contractors for Government -Dynamics 365 Field Service Contractor for Government,D365_FIELD_SERVICE_CONTRACTOR_GOV,e7965e3a-1f49-4d67-a3de-ad1ce460bbcc,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Dynamics 365 Field Service Contractor for Government,D365_FIELD_SERVICE_CONTRACTOR_GOV,e7965e3a-1f49-4d67-a3de-ad1ce460bbcc,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government -Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial -Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,DYN365_FS_ENTERPRISE_VIRAL_TRIAL,20d1455b-72b2-4725-8354-a177845ab77d,Dynamics 365 Field Service Enterprise vTrial -Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,POWER_APPS_DYN365_VIRAL_TRIAL,54b37829-818e-4e3c-a08a-3ea66ab9b45d,Power Apps for Dynamics 365 vTrial -Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,POWER_AUTOMATE_DYN365_VIRAL_TRIAL,81d4ecb8-0481-42fb-8868-51536c5aceeb,Power Automate for Dynamics 365 vTrial -Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,DYN365_CDS_FINANCE,e95d7060-d4d9-400a-a2bd-a244bf0b609e,Common Data Service for Dynamics 365 Finance -Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,Dynamics 365 for Finance and Operations Enterprise edition - Regulatory Service -Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,D365_Finance,9f0e1b4e-9b33-4300-b451-b2c662cd4ff7,Microsoft Dynamics 365 for Finance -Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,CDS_AI_Capacity_FI,5d85ec34-44e5-43b6-a9aa-d1b4c1d3aa3b,AI Builder Capacity Add-on -Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,DYN365_CDS_FINANCE,e95d7060-d4d9-400a-a2bd-a244bf0b609e,Common Data Service for Dynamics 365 Finance -Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" -Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,D365_Finance_Attach,223e33cb-eee0-462d-b1bd-e9a5febf8e85,Dynamics 365 for Finance Attach -Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,D365_ProjectOperationsCDSAttach,e564d403-7eaf-4c91-b92f-bb0dc62026e1,Dynamics 365 Project Operations CDS Attach -Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,CDS_AI_Capacity_FI,5d85ec34-44e5-43b6-a9aa-d1b4c1d3aa3b,AI Builder Capacity Add-on -Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,D365_Finance_Attach,223e33cb-eee0-462d-b1bd-e9a5febf8e85,Dynamics 365 for Finance Attach -Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,D365_ProjectOperationsAttach,fa7675bd-6717-40e7-8172-d0bbcbe1ab12,Dynamics 365 Project Operations Attach -Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,PROJECT_FOR_PROJECT_OPERATIONS_ATTACH,6d8e07c6-9613-484f-8cc1-a66c5c3979bb,Project for Project Operations Attach -Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) -Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,DYN365_ENTERPRISE_CASE_MANAGEMENT,2822a3a1-9b8f-4432-8989-e11669a60dc8,Dynamics 365 for Case Management -Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,Retired - Microsoft Social Engagement -Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials -Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,79bb0a8d-e686-4e16-ac59-2b3fd0014a61,Dynamics 365 for Case Management for Government -"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government -"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government -"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government -"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,79bb0a8d-e686-4e16-ac59-2b3fd0014a61,Dynamics 365 for Case Management for Government -"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government -"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government -"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government -Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_CDS_RETAIL,93cc200d-a47f-4c56-aec1-83f8b0d0425a,Common Data Service for Dynamics 365 Retail -Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,FLOW_FOR_IOM_USL,9e6d1620-dce9-4655-8933-af8fa5bccc9c,Data Integration for IOM with Power Automate USL -Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,CDS_FOR_IOM,2bb89402-51e9-4c5a-be33-e954a9dd1ba6,Dataverse for IOM -Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_RETAIL,117e3aa0-8d08-4a19-a6a5-90b7a96e2128,Dynamics 365 Commerce -Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" -Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_FP_ACC_PROTECTION,4c00c16c-0304-4421-b598-555c3e78edcb,Dynamics 365 Fraud Protection - Account Protection -Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_FP_LOSS_PREVENTION,ecc62904-fa88-4552-a62c-fe582fb31444,Dynamics 365 Fraud Protection - Loss Prevention -Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_FP_PURCH_PROTECTION,d703990f-006e-459b-b8dd-1267c4533a22,Dynamics 365 Fraud Protection - Purchase Protection -Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_IOM,616cf6e2-f52f-4738-b463-10003061fcd3,Dynamics 365 Intelligent Order Management -Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_IOM_USER,81375e2f-5ef7-4773-96aa-e3279f50bd21,Dynamics 365 Intelligent Order Management USL -Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,DYN365_CC,2a9d72b3-1714-440f-babf-bf92bf9683d8,Dynamics 365 Contact Center -Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on -Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in -Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice -Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,DYN365_CC,2a9d72b3-1714-440f-babf-bf92bf9683d8,Dynamics 365 Contact Center -Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on -Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in -Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice -Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,DYN365_CC_DIGITAL,0ef2b4e3-0a2b-450d-8c5f-a52203c40f50,Dynamics 365 Contact Center Digital -Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on -Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,DYN365_CS_MESSAGING,43b076f2-1123-45ba-a339-2e170ee58c53,Dynamics 365 Customer Service Digital Messaging Application Integration -Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,DYN365_CC_DIGITAL,0ef2b4e3-0a2b-450d-8c5f-a52203c40f50,Dynamics 365 Contact Center Digital -Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on -Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,DYN365_CS_MESSAGING,43b076f2-1123-45ba-a339-2e170ee58c53,Dynamics 365 Customer Service Digital Messaging Application Integration -Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,DYN365_CC_VOICE,57517633-b4ad-4db8-8c1a-65f443424490,Dynamics 365 Contact Center Voice -Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in -Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice -Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,DYN365_CC_VOICE,57517633-b4ad-4db8-8c1a-65f443424490,Dynamics 365 Contact Center Voice -Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in -Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice -Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,DYN365_CS_CHAT_FPA,426ec19c-d5b1-4548-b894-6fe75028c30d,Dynamics 365 Customer Service Chat Application Integration -Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,DYN365_CS_CHAT,f69129db-6dc1-4107-855e-0aaebbcd9dd4,Dynamics 365 for Customer Service Chat -Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,POWER_VIRTUAL_AGENTS_D365_CS_CHAT,19e4c3a8-3ebe-455f-a294-4f3479873ae3,Power Virtual Agents for Chat -Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,D365_CSI_EMBED_CSEnterprise,5b1e5982-0e88-47bb-a95e-ae6085eda612,Dynamics 365 Customer Service Insights for CS Enterprise -Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,DYN365_ENTERPRISE_CUSTOMER_SERVICE,99340b49-fb81-4b1e-976b-8f2ae8e9394f,MICROSOFT SOCIAL ENGAGEMENT - SERVICE DISCONTINUATION -Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,Forms_Pro_Service,67bf4812-f90b-4db9-97e7-c0bbbf7b2d09,Microsoft Dynamics 365 Customer Voice for Customer Service Enterprise -Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,PROJECT ONLINE ESSENTIALS -Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,SHAREPOINT ONLINE (PLAN 2) -Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,FLOW FOR DYNAMICS 365 -Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,POWERAPPS FOR DYNAMICS 365 -Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,DYNAMICS 365 FOR CUSTOMER SERVICE -Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,dc6643d9-1e72-4dce-9f64-1d6eac1f1c5a,Dynamics 365 for Customer Service for Government -"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,Forms_Pro_Service_GCC,bb681a9b-58f5-42ee-9926-674325be8aaa,Microsoft Dynamics 365 Customer Voice for Customer Service Enterprise for GCC -"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government -"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government -"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government -Dynamics 365 for Field Service Attach to Qualifying Dynamics 365 Base Offer,D365_FIELD_SERVICE_ATTACH,a36cdaa2-a806-4b6e-9ae0-28dbd993c20e,D365_FIELD_SERVICE_ATTACH,55c9148b-d5f0-4101-b5a0-b2727cfc0916,Dynamics 365 for Field Service Attach -Dynamics 365 for Field Service Attach to Qualifying Dynamics 365 Base Offer,D365_FIELD_SERVICE_ATTACH,a36cdaa2-a806-4b6e-9ae0-28dbd993c20e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service -Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,Forms_Pro_FS,9c439259-63b0-46cc-a258-72be4313a42d,Microsoft Dynamics 365 Customer Voice for Field Service -Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,Retired - Microsoft Social Engagement -Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials -Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,a9a5be2d-17dd-4d43-ba78-9391e11d20a7,Dynamics 365 for Field Service for Government -Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,Forms_Pro_FS_GCC,638862ef-afb3-46e4-b292-ed0aad759476,Microsoft Dynamics 365 Customer Voice for Field Service for GCC -Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government -Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government -Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government -Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,a9a5be2d-17dd-4d43-ba78-9391e11d20a7,Dynamics 365 for Field Service for Government -Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,Forms_Pro_FS_GCC,638862ef-afb3-46e4-b292-ed0aad759476,Microsoft Dynamics 365 Customer Voice for Field Service for GCC -Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government -Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government -Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government -Dynamics 365 for Financials Business Edition,DYN365_FINANCIALS_BUSINESS_SKU,cc13a803-544e-4464-b4e4-6d6169a138fa,DYN365_FINANCIALS_BUSINESS,920656a2-7dd8-4c83-97b6-a356414dbd36,FLOW FOR DYNAMICS 365 -Dynamics 365 for Financials Business Edition,DYN365_FINANCIALS_BUSINESS_SKU,cc13a803-544e-4464-b4e4-6d6169a138fa,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,POWERAPPS FOR DYNAMICS 365 -Dynamics 365 for Financials Business Edition,DYN365_FINANCIALS_BUSINESS_SKU,cc13a803-544e-4464-b4e4-6d6169a138fa,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,DYNAMICS 365 FOR FINANCIALS -Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,D365_GUIDES_VIRAL_TRIAL,fe986032-d840-4817-82d4-51fe4fbbe163,Dynamics 365 Guides vTrial -Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,Common Data Service -Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,POWER_APPS_DYN365_VIRAL_TRIAL_MIXED_REALITY,066e2fd1-ba15-40e7-aa96-d6636b1cdf71,Power Apps for Dynamics 365 Mixed Reality -Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,POWER_AUTOMATE_DYN365_VIRAL_TRIAL_MIXED_REALITY,26fa8a18-2812-4b3d-96b4-864818ce26be,Power Automate for Dynamics 365 Mixed Reality -Dynamics 365 Hybrid Connector,CRM_HYBRIDCONNECTOR,de176c31-616d-4eae-829a-718918d7ec23,CRM_HYBRIDCONNECTOR,0210d5c8-49d2-4dd1-a01b-a91c7c14e0bf,CRM Hybrid Connector -Dynamics 365 Hybrid Connector,CRM_HYBRIDCONNECTOR,de176c31-616d-4eae-829a-718918d7ec23,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Marketing Additional Application,DYN365_MARKETING_APPLICATION_ADDON,99c5688b-6c75-4496-876f-07f0fbd69add,DYN365_MARKETING_APPLICATION_ADDON,51cf0638-4861-40c0-8b20-1161ab2f80be,Dynamics 365 for Marketing Additional Application -Dynamics 365 for Marketing Additional Application,DYN365_MARKETING_APPLICATION_ADDON,99c5688b-6c75-4496-876f-07f0fbd69add,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Marketing Addnl Contacts Tier 3,DYN365_MARKETING_CONTACT_ADDON_T3,23053933-0fda-431f-9a5b-a00fd78444c1,DYN365_MARKETING_50K_CONTACT_ADDON,e626a4ec-1ba2-409e-bf75-9bc0bc30cca7,Dynamics 365 for Marketing 50K Addnl Contacts -Dynamics 365 for Marketing Addnl Contacts Tier 3,DYN365_MARKETING_CONTACT_ADDON_T3,23053933-0fda-431f-9a5b-a00fd78444c1,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Marketing Addnl Contacts Tier 5,DYN365_MARKETING_CONTACT_ADDON_T5,d8eec316-778c-4f14-a7d1-a0aca433b4e7,DYN365_MARKETING_50K_CONTACT_ADDON,e626a4ec-1ba2-409e-bf75-9bc0bc30cca7,Dynamics 365 for Marketing 50K Addnl Contacts -Dynamics 365 for Marketing Addnl Contacts Tier 5,DYN365_MARKETING_CONTACT_ADDON_T5,d8eec316-778c-4f14-a7d1-a0aca433b4e7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Marketing Additional Non-Prod Application,DYN365_MARKETING_SANDBOX_APPLICATION_ADDON,c393e9bd-2335-4b46-8b88-9e2a86a85ec1,DYN365_MARKETING_SANDBOX_APPLICATION_ADDON,1599de10-5250-4c95-acf2-491f74edce48,Dynamics 365 Marketing Sandbox Application AddOn -Dynamics 365 for Marketing Attach,DYN365_MARKETING_APP_ATTACH,85430fb9-02e8-48be-9d7e-328beb41fa29,DYN365_MARKETING_APP,a3a4fa10-5092-401a-af30-0462a95a7ac8,Dynamics 365 for Marketing -Dynamics 365 for Marketing Attach,DYN365_MARKETING_APP_ATTACH,85430fb9-02e8-48be-9d7e-328beb41fa29,Forms_Pro_Marketing_App,22b657cf-0a9e-467b-8a91-5e31f21bc570,Microsoft Dynamics 365 Customer Voice for Marketing Application -Dynamics 365 for Marketing Attach,DYN365_MARKETING_APP_ATTACH,85430fb9-02e8-48be-9d7e-328beb41fa29,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Marketing USL,D365_MARKETING_USER,4b32a493-9a67-4649-8eb9-9fc5a5f75c12,DYN365_MARKETING_MSE_USER,2824c69a-1ac5-4397-8592-eae51cb8b581,Dynamics 365 for Marketing MSE User -Dynamics 365 for Marketing USL,D365_MARKETING_USER,4b32a493-9a67-4649-8eb9-9fc5a5f75c12,DYN365_MARKETING_USER,5d7a6abc-eebd-46ab-96e1-e4a2f54a2248,Dynamics 365 for Marketing USL -Dynamics 365 for Marketing USL,D365_MARKETING_USER,4b32a493-9a67-4649-8eb9-9fc5a5f75c12,Forms_Pro_Marketing,76366ba0-d230-47aa-8087-b6d55dae454f,Microsoft Dynamics 365 Customer Voice for Marketing -Dynamics 365 for Marketing USL,D365_MARKETING_USER,4b32a493-9a67-4649-8eb9-9fc5a5f75c12,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,D365_CSI_EMBED_CSEnterprise,5b1e5982-0e88-47bb-a95e-ae6085eda612,Dynamics 365 Customer Service Insights for CS Enterprise -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_ENTERPRISE_CUSTOMER_SERVICE,99340b49-fb81-4b1e-976b-8f2ae8e9394f,Dynamics 365 for Customer Service -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_MARKETING_APP,a3a4fa10-5092-401a-af30-0462a95a7ac8,Dynamics 365 for Marketing -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_ENTERPRISE_SALES,2da8e897-7791-486b-b08f-cc63c8129df7,Dynamics 365 for Sales -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,Forms_Pro_FS,9c439259-63b0-46cc-a258-72be4313a42d,Microsoft Dynamics 365 Customer Voice for Field Service -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,Forms_Pro_SalesEnt,8839ef0e-91f1-4085-b485-62e06e7c7987,Microsoft Dynamics 365 Customer Voice for Sales Enterprise -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING,2d2f174c-c3cc-4abe-9ce8-4dd86f469ab1,Power Virtual Agents for Digital Messaging -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Dynamics 365 Remote Assist -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials -Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,DYN365_RETAIL_Activity,f06754ec-6d72-4bf6-991c-4cb5413d9932,Dynamics 365 for Retail Activity -Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,DYN365_Enterprise_Talent_Attract_Activity,aac5a56b-b02e-4608-8014-b076646d4011,Dynamics 365 for Talent - Attract Experience Activity -Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,DYN365_Enterprise_Talent_Onboard_Activity,db225597-e9c2-4d96-8ace-5424744c80f8,Dynamics 365 for Talent - Onboard Experience -Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,Dynamics_365_for_Talent_Activity,1f87ee90-5c3a-4cf9-b6fd-e3e8017c26ec,Dynamics 365 for Talent Activity -Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,Dynamics_365_for_Operations_Activity,6bddf93e-d6f4-4991-b9fc-30cfdf07ee7b,Dynamics365 for Operations Activity -Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,D365CDSforProjectOperations,7df1d500-ca5c-4229-8cea-815bc88798c9,Common Data Service for Dynamics 365 Project Operations -Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,D365_ProjectOperationsCDSAttach,e564d403-7eaf-4c91-b92f-bb0dc62026e1,Dynamics 365 Project Operations CDS Attach -Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,D365_ProjectOperations,69f07c66-bee4-4222-b051-195095efee5b,Dynamics 365 Project Operations -Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,D365_ProjectOperationsAttach,fa7675bd-6717-40e7-8172-d0bbcbe1ab12,Dynamics 365 Project Operations Attach -Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,PROJECT_FOR_PROJECT_OPERATIONS_ATTACH,6d8e07c6-9613-484f-8cc1-a66c5c3979bb,Project for Project Operations Attach -Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) -Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1d8c8e0e-4308-4db5-8a41-b129dbdaea20,Dynamics 365 for Project Service Automation for Government -Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,Forms_Pro_PS_GCC,e98256c5-17d0-4987-becc-e991c52d55c6,Microsoft Dynamics 365 Customer Voice for Project Service Automation for GCC -Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client -Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government -Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government -Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government -Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1d8c8e0e-4308-4db5-8a41-b129dbdaea20,Dynamics 365 for Project Service Automation for Government -Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,Forms_Pro_PS_GCC,e98256c5-17d0-4987-becc-e991c52d55c6,Microsoft Dynamics 365 Customer Voice for Project Service Automation for GCC -Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client -Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government -Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government -Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government -Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,DYN365_ENTERPRISE_P1,d56f3deb-50d8-465a-bedb-f079817ccac1,DYNAMICS 365 CUSTOMER ENGAGEMENT PLAN -Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 -Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,MICROSOFT SOCIAL ENGAGEMENT - SERVICE DISCONTINUATION -Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 -Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,PROJECT ONLINE ESSENTIALS -Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) -Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,DYN365_ENTERPRISE_SALES,2da8e897-7791-486b-b08f-cc63c8129df7,DYNAMICS 365 FOR SALES -Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 -Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,MICROSOFT SOCIAL ENGAGEMENT - SERVICE DISCONTINUATION -Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 -Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,PROJECT ONLINE ESSENTIALS -Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) -Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,DYN365_ENTERPRISE_SALES_GOV,213be507-d547-4f79-bc2c-6196bc54c4a3,Dynamics 365 for Sales for Government -"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government -"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government -"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government -Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,DYN365_ENTERPRISE_SALES_GOV,213be507-d547-4f79-bc2c-6196bc54c4a3,Dynamics 365 for Sales for Government -Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,Forms_Pro_SalesEnt_GCC,33850b82-0a37-4ebb-a0b2-ee163facd716,Microsoft Dynamics 365 Customer Voice for Sales Enterprise for GCC -Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,Microsoft_Viva_Sales_PremiumTrial,8ba1ff15-7bf6-4620-b65c-ecedb6942766,Microsoft Viva Sales Premium & Trial -Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,Microsoft_Viva_Sales_PowerAutomate,a933a62f-c3fb-48e5-a0b7-ac92b94b4420,Microsoft Viva Sales Premium with Power Automate -Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government -Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government -Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government -"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,DYN365_ENTERPRISE_P1,d56f3deb-50d8-465a-bedb-f079817ccac1,Dynamics 365 Customer Engagement Plan -"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,Forms_Pro_Service,67bf4812-f90b-4db9-97e7-c0bbbf7b2d09,Microsoft Dynamics 365 Customer Voice for Customer Service Enterprise -"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials -Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,DYN365_SALES_INSIGHTS,fedc185f-0711-4cc0-80ed-0a92da1a8384,Dynamics 365 AI for Sales (Embedded) -Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials -Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,Microsoft_Viva_Sales_PowerAutomate,a933a62f-c3fb-48e5-a0b7-ac92b94b4420,Microsoft Viva Sales Premium with Power Automate -Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,Microsoft_Viva_Sales_PremiumTrial,8ba1ff15-7bf6-4620-b65c-ecedb6942766,Microsoft Viva Sales Premium & Trial -Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,Forms_Pro_SalesEnt,8839ef0e-91f1-4085-b485-62e06e7c7987,Microsoft Dynamics 365 Customer Voice for Sales Enterprise -Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,DYN365_ENTERPRISE_SALES,2da8e897-7791-486b-b08f-cc63c8129df7,Dynamics 365 for Sales -Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,DYN365_CDS_SUPPLYCHAINMANAGEMENT,b6a8b974-2956-4e14-ae81-f0384c363528,Common Data Service for Dynamics 365 Supply Chain Management -Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,CDS_FOR_IOM,2bb89402-51e9-4c5a-be33-e954a9dd1ba6,Dataverse for IOM -Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" -Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,D365_SCM_Attach,b21c777f-c2d5-486e-88f6-fc0a3e474271,Dynamics 365 for Supply Chain Management Attach -Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Marketing Business Edition,DYN365_BUSINESS_MARKETING,238e2f8d-e429-4035-94db-6926be4ffe7b,DYN365_BUSINESS_Marketing,393a0c96-9ba1-4af0-8975-fa2f853a25ac,Dynamics 365 Marketing -Dynamics 365 for Marketing Business Edition,DYN365_BUSINESS_MARKETING,238e2f8d-e429-4035-94db-6926be4ffe7b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Regulatory Service - Enterprise Edition Trial,DYN365_REGULATORY_SERVICE,7ed4877c-0863-4f69-9187-245487128d4f,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,Dynamics 365 for Finance and Operations Enterprise edition - Regulatory Service -Dynamics 365 Regulatory Service - Enterprise Edition Trial,DYN365_REGULATORY_SERVICE,7ed4877c-0863-4f69-9187-245487128d4f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial -Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,DYN365_SALES_ENTERPRISE_VIRAL_TRIAL,7f636c80-0961-41b2-94da-9642ccf02de0,Dynamics 365 Sales Enterprise vTrial -Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,DYN365_SALES_INSIGHTS_VIRAL_TRIAL,456747c0-cf1e-4b0d-940f-703a01b964cc,Dynamics 365 Sales Insights vTrial -Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,POWER_APPS_DYN365_VIRAL_TRIAL,54b37829-818e-4e3c-a08a-3ea66ab9b45d,Power Apps for Dynamics 365 vTrial -Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,POWER_AUTOMATE_DYN365_VIRAL_TRIAL,81d4ecb8-0481-42fb-8868-51536c5aceeb,Power Automate for Dynamics 365 vTrial -Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,DYN365_SALES_PRO,88d83950-ff78-4e85-aa66-abfc787f8090,Dynamics 365 for Sales Professional -Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,POWERAPPS_SALES_PRO,6f9f70ce-138d-49f8-bb8b-2e701b7dde75,Power Apps for Sales Pro -Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,PROJECT_ESSENTIALS,f944d685-f762-4371-806d-a1f48e5bea13,Project Online Essentials -Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2)Dynamics 365 for Sales Pro Attach -Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,DYN365_SALES_PRO_GOV,dd89efa0-5a55-4892-ba30-82e3f8008339,Dynamics 365 for Sales Professional for Government -Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,POWERAPPS_SALES_PRO_GOV,12cf31f8-754f-4efe-87a8-167c19e30831,Power Apps for Sales Pro for Government -Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,FLOW_SALES_PRO_GOV,e62ffe5b-7612-441f-a72d-c11cf456d33a,Power Automate for Sales Pro for Government -Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government -Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Dynamics 365 For Sales Professional Trial,D365_SALES_PRO_IW,9c7bff7a-3715-4da7-88d3-07f57f8d0fb6,D365_SALES_PRO_IW,73f205fc-6b15-47a5-967e-9e64fdf72d0a,Dynamics 365 for Sales Professional Trial -Dynamics 365 For Sales Professional Trial,D365_SALES_PRO_IW,9c7bff7a-3715-4da7-88d3-07f57f8d0fb6,D365_SALES_PRO_IW_Trial,db39a47e-1f4f-462b-bf5b-2ec471fb7b88,Dynamics 365 for Sales Professional Trial -Dynamics 365 Sales Professional Attach to Qualifying Dynamics 365 Base Offer,D365_SALES_PRO_ATTACH,245e6bf9-411e-481e-8611-5c08595e2988,D365_SALES_PRO_ATTACH,065f3c64-0649-4ec7-9f47-ef5cf134c751,Dynamics 365 for Sales Pro Attach -Dynamics 365 Sales Professional Attach to Qualifying Dynamics 365 Base Offer,D365_SALES_PRO_ATTACH,245e6bf9-411e-481e-8611-5c08595e2988,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,DYN365_CDS_SUPPLYCHAINMANAGEMENT,b6a8b974-2956-4e14-ae81-f0384c363528,COMMON DATA SERVICE FOR DYNAMICS 365 SUPPLY CHAIN MANAGEMENT -Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,DYNAMICS 365 FOR FINANCE AND OPERATIONS ENTERPRISE EDITION - REGULATORY SERVICE -Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,D365_SCM,1224eae4-0d91-474a-8a52-27ec96a63fe7,DYNAMICS 365 FOR SUPPLY CHAIN MANAGEMENT -Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 -Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 -Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,DYN365_CDS_SUPPLYCHAINMANAGEMENT,b6a8b974-2956-4e14-ae81-f0384c363528,Common Data Service for Dynamics 365 Supply Chain Management -Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,FLOW_FOR_IOM_USL,9e6d1620-dce9-4655-8933-af8fa5bccc9c,Data Integration for IOM with Power Automate USL -Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,CDS_FOR_IOM,2bb89402-51e9-4c5a-be33-e954a9dd1ba6,Dataverse for IOM -Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,D365_DemandPlanning,e8b616eb-1a6d-42b4-84c7-b63870791349,DO NOT USE - Dynamics 365 Supply Chain Management Premium -Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" -Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,D365_SCM,1224eae4-0d91-474a-8a52-27ec96a63fe7,Dynamics 365 for Supply Chain Management -Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,DYN365_IOM,616cf6e2-f52f-4738-b463-10003061fcd3,Dynamics 365 Intelligent Order Management -Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,DYN365_IOM_USER,81375e2f-5ef7-4773-96aa-e3279f50bd21,Dynamics 365 Intelligent Order Management USL -Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,D365_SCM_Premium,0363c8e5-c30d-4d7c-a621-7b6cab5e0482,Dynamics 365 Supply Chain Management Premium -Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,DYN365_CDS_DYN_APPS,2d925ad8-2479-4bd8-bb76-5b80f1d48935,Common Data Service -Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,Dynamics_365_Hiring_Free_PLAN,f815ac79-c5dd-4bcc-9b78-d97f7b817d0d,Dynamics 365 for Talent: Attract -Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,Dynamics_365_Onboarding_Free_PLAN,300b8114-8555-4313-b861-0c115d820f50,Dynamics 365 for Talent: Onboard -Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,Dynamics_365_for_HCM_Trial,5ed38b64-c3b7-4d9f-b1cd-0de18c9c4331,Dynamics 365 for HCM Trial -Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Flow for Dynamics 365 -Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,PowerApps for Dynamics 365 -Dynamics 365 Talent: Attract,Dynamics_365_Hiring_SKU,e561871f-74fa-4f02-abee-5b0ef54dd36d,DYN365_CDS_DYN_APPS,2d925ad8-2479-4bd8-bb76-5b80f1d48935,Common Data Service -Dynamics 365 Talent: Attract,Dynamics_365_Hiring_SKU,e561871f-74fa-4f02-abee-5b0ef54dd36d,Dynamics_365_Hiring_Free_PLAN,f815ac79-c5dd-4bcc-9b78-d97f7b817d0d,Dynamics 365 for Talent: Attract -Dynamics 365 Talent: Attract,Dynamics_365_Hiring_SKU,e561871f-74fa-4f02-abee-5b0ef54dd36d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,Dynamics_365_for_Retail_Team_members,c0454a3d-32b5-4740-b090-78c32f48f0ad,Dynamics 365 for Retail Team members -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYN365_Enterprise_Talent_Attract_TeamMember,643d201a-9884-45be-962a-06ba97062e5e,Dynamics 365 for Talent - Attract Experience Team Member -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYN365_Enterprise_Talent_Onboard_TeamMember,f2f49eef-4b3f-4853-809a-a055c6103fe0,Dynamics 365 for Talent - Onboard Experience -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,Dynamics_365_for_Talent_Team_members,d5156635-0704-4f66-8803-93258f8b2678,Dynamics 365 for Talent Team members -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYN365_ENTERPRISE_TEAM_MEMBERS,6a54b05e-4fab-40e7-9828-428db3b336fa,Dynamics 365 for Team Members -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,Dynamics_365_for_Operations_Team_members,f5aa7b45-8a36-4cd1-bc37-5d06dea98645,Dynamics_365_for_Operations_Team_members -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Dynamics 365 Remote Assist -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,POWERAPPS_DYN_TEAM,52e619e2-2730-439a-b0d3-d09ab7e8b705,Power Apps for Dynamics 365 -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,FLOW_DYN_TEAM,1ec58c70-f69c-486a-8109-4b87ce86e449,Power Automate for Dynamics 365 -Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,5a94d0aa-ee95-455a-bb38-326e5f134478,Dynamics 365 for Team Members for Government -Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government -Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,FLOW_DYN_TEAM_GOV,47bdde6a-959f-4c7f-8d59-3243e34f1cb3,Power Automate for Dynamics 365 Team Members for Government -Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government -Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,POWERAPPS_DYN_TEAM_GOV,63efc247-5f28-43e3-a2f8-00c183e3f1db,PowerApps for Dynamics 365 Team Members for Government -Dynamics 365 Guides,GUIDES_USER,0a389a77-9850-4dc4-b600-bc66fdfefc60,DYN365_CDS_GUIDES,1315ade1-0410-450d-b8e3-8050e6da320f,Common Data Service -Dynamics 365 Guides,GUIDES_USER,0a389a77-9850-4dc4-b600-bc66fdfefc60,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides -Dynamics 365 Guides,GUIDES_USER,0a389a77-9850-4dc4-b600-bc66fdfefc60,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides -Dynamics 365 Operations - Device,Dynamics_365_for_Operations_Devices,3bbd44ed-8a70-4c07-9088-6232ddbd5ddd,DYN365_RETAIL_DEVICE,ceb28005-d758-4df7-bb97-87a617b93d6c,Dynamics 365 for Retail Device -Dynamics 365 Operations - Device,Dynamics_365_for_Operations_Devices,3bbd44ed-8a70-4c07-9088-6232ddbd5ddd,Dynamics_365_for_OperationsDevices,2c9fb43e-915a-4d61-b6ca-058ece89fd66,Dynamics 365 for Operations Devices -Dynamics 365 Operations - Device,Dynamics_365_for_Operations_Devices,3bbd44ed-8a70-4c07-9088-6232ddbd5ddd,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Operations - Sandbox Tier 2:Standard Acceptance Testing,Dynamics_365_for_Operations_Sandbox_Tier2_SKU,e485d696-4c87-4aac-bf4a-91b2fb6f0fa7,Dynamics_365_for_Operations_Sandbox_Tier2,d8ba6fb2-c6b1-4f07-b7c8-5f2745e36b54,Dynamics 365 for Operations non-production multi-box instance for standard acceptance testing (Tier 2) -Dynamics 365 Operations - Sandbox Tier 2:Standard Acceptance Testing,Dynamics_365_for_Operations_Sandbox_Tier2_SKU,e485d696-4c87-4aac-bf4a-91b2fb6f0fa7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Operations - Sandbox Tier 4:Standard Performance Testing,Dynamics_365_for_Operations_Sandbox_Tier4_SKU,f7ad4bca-7221-452c-bdb6-3e6089f25e06,Dynamics_365_for_Operations_Sandbox_Tier4,f6b5efb1-1813-426f-96d0-9b4f7438714f,Dynamics 365 for Operations Enterprise Edition - Sandbox Tier 4:Standard Performance Testing -Dynamics 365 Operations - Sandbox Tier 4:Standard Performance Testing,Dynamics_365_for_Operations_Sandbox_Tier4_SKU,f7ad4bca-7221-452c-bdb6-3e6089f25e06,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 P1 Tria for Information Workers,DYN365_ENTERPRISE_P1_IW,338148b6-1b11-4102-afb9-f92b6cdc0f8d,DYN365_ENTERPRISE_P1_IW,056a5f80-b4e0-4983-a8be-7ad254a113c9,DYNAMICS 365 P1 TRIAL FOR INFORMATION WORKERS -Dynamics 365 P1 Tria for Information Workers,DYN365_ENTERPRISE_P1_IW,338148b6-1b11-4102-afb9-f92b6cdc0f8d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,D365CDSforProjectOperations,7df1d500-ca5c-4229-8cea-815bc88798c9,Common Data Service for Dynamics 365 Project Operations -Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,D365_ProjectOperationsCDS,18fa3aba-b085-4105-87d7-55617b8585e6,Dynamics 365 Project Operations CDS -Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" -Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,D365_ProjectOperations,69f07c66-bee4-4222-b051-195095efee5b,Dynamics 365 Project Operations -Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,PROJECT_FOR_PROJECT_OPERATIONS,0a05d977-a21a-45b2-91ce-61c240dbafa2,Project for Project Operations -Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) -Dynamics 365 Remote Assist,MICROSOFT_REMOTE_ASSIST,7a551360-26c4-4f61-84e6-ef715673e083,CDS_REMOTE_ASSIST,0850ebb5-64ee-4d3a-a3e1-5a97213653b5,Common Data Service for Remote Assist -Dynamics 365 Remote Assist,MICROSOFT_REMOTE_ASSIST,7a551360-26c4-4f61-84e6-ef715673e083,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Microsoft Remote Assist -Dynamics 365 Remote Assist,MICROSOFT_REMOTE_ASSIST,7a551360-26c4-4f61-84e6-ef715673e083,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Dynamics 365 Remote Assist HoloLens,MICROSOFT_REMOTE_ASSIST_HOLOLENS,e48328a2-8e98-4484-a70f-a99f8ac9ec89,CDS_REMOTE_ASSIST,0850ebb5-64ee-4d3a-a3e1-5a97213653b5,Common Data Service for Remote Assist -Dynamics 365 Remote Assist HoloLens,MICROSOFT_REMOTE_ASSIST_HOLOLENS,e48328a2-8e98-4484-a70f-a99f8ac9ec89,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Microsoft Remote Assist -Dynamics 365 Remote Assist HoloLens,MICROSOFT_REMOTE_ASSIST_HOLOLENS,e48328a2-8e98-4484-a70f-a99f8ac9ec89,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Dynamics 365 Sales Enterprise Attach to Qualifying Dynamics 365 Base Offer,D365_SALES_ENT_ATTACH,5b22585d-1b71-4c6b-b6ec-160b1a9c2323,D365_SALES_ENT_ATTACH,3ae52229-572e-414f-937c-ff35a87d4f29,Dynamics 365 for Sales Enterprise Attach -Dynamics 365 Sales Enterprise Attach to Qualifying Dynamics 365 Base Offer,D365_SALES_ENT_ATTACH,5b22585d-1b71-4c6b-b6ec-160b1a9c2323,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Talent: Onboard,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,DYN365_CDS_DYN_APPS,2d925ad8-2479-4bd8-bb76-5b80f1d48935,COMMON DATA SERVICE -Dynamics 365 Talent: Onboard,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,Dynamics_365_Onboarding_Free_PLAN,300b8114-8555-4313-b861-0c115d820f50,DYNAMICS 365 FOR TALENT: ONBOARD -Dynamics 365 Talent: Onboard,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,Dynamics_365_Talent_Onboard,048a552e-c849-4027-b54c-4c7ead26150a,DYNAMICS 365 FOR TALENT: ONBOARD -Dynamics 365 Talent: Onboard,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,Dynamics_365_for_Retail_Team_members,c0454a3d-32b5-4740-b090-78c32f48f0ad,Dynamics 365 for Retail Team members -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYN365_Enterprise_Talent_Attract_TeamMember,643d201a-9884-45be-962a-06ba97062e5e,Dynamics 365 for Talent - Attract Experience Team Member -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYN365_Enterprise_Talent_Onboard_TeamMember,f2f49eef-4b3f-4853-809a-a055c6103fe0,Dynamics 365 for Talent - Onboard Experience -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,Dynamics_365_for_Talent_Team_members,d5156635-0704-4f66-8803-93258f8b2678,Dynamics 365 for Talent Team members -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYN365_TEAM_MEMBERS,4092fdb5-8d81-41d3-be76-aaba4074530b,Dynamics 365 Team Members -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,Dynamics_365_for_Operations_Team_members,f5aa7b45-8a36-4cd1-bc37-5d06dea98645,Dynamics_365_for_Operations_Team_members -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Dynamics 365 Remote Assist -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,POWERAPPS_DYN_TEAM,52e619e2-2730-439a-b0d3-d09ab7e8b705,Power Apps for Dynamics 365 -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,FLOW_DYN_TEAM,1ec58c70-f69c-486a-8109-4b87ce86e449,Power Automate for Dynamics 365 -Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,DDYN365_CDS_DYN_P2,d1142cfd-872e-4e77-b6ff-d98ec5a51f66,COMMON DATA SERVICE -Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,DYN365_TALENT_ENTERPRISE,65a1ebf4-6732-4f00-9dcb-3d115ffdeecd,DYNAMICS 365 FOR TALENT -Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,Dynamics_365_for_Operations,95d2cd7b-1007-484b-8595-5e97e63fe189,DYNAMICS 365 FOR_OPERATIONS -Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,Dynamics_365_for_Retail,a9e39199-8369-444b-89c1-5fe65ec45665,DYNAMICS 365 FOR RETAIL -Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,DYNAMICS_365_HIRING_FREE_PLAN,f815ac79-c5dd-4bcc-9b78-d97f7b817d0d,DYNAMICS 365 HIRING FREE PLAN -Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,Dynamics_365_Onboarding_Free_PLAN,300b8114-8555-4313-b861-0c115d820f50,DYNAMICS 365 FOR TALENT: ONBOARD -Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,FLOW_DYN_P2,b650d915-9886-424b-a08d-633cede56f57,FLOW FOR DYNAMICS 36 -Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,POWERAPPS_DYN_P2,0b03f40b-c404-40c3-8651-2aceb74365fa,POWERAPPS FOR DYNAMICS 365 -Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,AAD_EDU,3a3976ce-de18-4a87-a78e-5e9245e252df,Microsoft Entra ID for Education -Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education -Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,WINDOWS_STORE,a420f25f-a7b3-4ff5-a9d0-5d58f73b537d,Windows Store Service -Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,AZURE INFORMATION PROTECTION PREMIUM P1 -Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,CLOUD APP SECURITY DISCOVERY -Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra RIGHTS -Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION -Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE -Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,AZURE INFORMATION PROTECTION PREMIUM P1 -Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,AZURE INFORMATION PROTECTION PREMIUM P2 -Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra RIGHTS -Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION -Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,MICROSOFT CLOUD APP SECURITY -Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,MICROSOFT DEFENDER FOR IDENTITY -Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE -Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Cloud App Security Discovery -Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra Rights -Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,RMS_S_ENTERPRISE),bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra Rights -Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security -Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Exchange Enterprise CAL Services (EOP DLP),EOP_ENTERPRISE_PREMIUM,e8ecdf70-47a8-4d39-9d15-093624b7f640,EOP_ENTERPRISE_PREMIUM,75badc48-628e-4446-8460-41344d73abd6,Exchange Enterprise CAL Services (EOP DLP) -Exchange Enterprise CAL Services (EOP DLP),EOP_ENTERPRISE_PREMIUM,e8ecdf70-47a8-4d39-9d15-093624b7f640,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra Rights -Exchange Online (Plan 1),EXCHANGESTANDARD,4b9405b0-7788-4568-add1-99614e613b69,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Exchange Online (Plan 1),EXCHANGESTANDARD,4b9405b0-7788-4568-add1-99614e613b69,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Exchange Online (Plan 1),EXCHANGESTANDARD,4b9405b0-7788-4568-add1-99614e613b69,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Exchange Online (Plan 1) for Alumni with Yammer,EXCHANGESTANDARD_ALUMNI,aa0f9eb7-eff2-4943-8424-226fb137fcad,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Exchange Online (Plan 1) for Alumni with Yammer,EXCHANGESTANDARD_ALUMNI,aa0f9eb7-eff2-4943-8424-226fb137fcad,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Exchange Online (Plan 1) for Alumni with Yammer,EXCHANGESTANDARD_ALUMNI,aa0f9eb7-eff2-4943-8424-226fb137fcad,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Exchange Online (Plan 1) for Students,EXCHANGESTANDARD_STUDENT,ad2fe44a-915d-4e2b-ade1-6766d50a9d9c,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Exchange Online (Plan 1) for Students,EXCHANGESTANDARD_STUDENT,ad2fe44a-915d-4e2b-ade1-6766d50a9d9c,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Exchange Online (Plan 1) for Students,EXCHANGESTANDARD_STUDENT,ad2fe44a-915d-4e2b-ade1-6766d50a9d9c,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Exchange Online (Plan 1) for Students,EXCHANGESTANDARD_STUDENT,ad2fe44a-915d-4e2b-ade1-6766d50a9d9c,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service -Exchange Online (Plan 1) for GCC,EXCHANGESTANDARD_GOV,f37d5ebf-4bf1-4aa2-8fa3-50c51059e983,EXCHANGE_S_STANDARD_GOV,e9b4930a-925f-45e2-ac2a-3f7788ca6fdd,Exchange Online (Plan 1) for Government -Exchange Online (Plan 1) for GCC,EXCHANGESTANDARD_GOV,f37d5ebf-4bf1-4aa2-8fa3-50c51059e983,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Exchange Online (Plan 2) for GCC,EXCHANGEENTERPRISE_GOV,7be8dc28-4da4-4e6d-b9b9-c60f2806df8a,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government -Exchange Online (Plan 2) for GCC,EXCHANGEENTERPRISE_GOV,7be8dc28-4da4-4e6d-b9b9-c60f2806df8a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Exchange Online (Plan 2),EXCHANGEENTERPRISE,19ec0d23-8335-4cbd-94ac-6050e30712fa,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,EXCHANGE ONLINE (PLAN 2) -Exchange Online (Plan 2) for Faculty,EXCHANGEENTERPRISE_FACULTY,0b7b15a8-7fd2-4964-bb96-5a566d4e3c15,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Exchange Online (Plan 2) for Faculty,EXCHANGEENTERPRISE_FACULTY,0b7b15a8-7fd2-4964-bb96-5a566d4e3c15,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Exchange Online (Plan 2) for Faculty,EXCHANGEENTERPRISE_FACULTY,0b7b15a8-7fd2-4964-bb96-5a566d4e3c15,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Exchange Online (Plan 2) for Faculty,EXCHANGEENTERPRISE_FACULTY,0b7b15a8-7fd2-4964-bb96-5a566d4e3c15,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service -Exchange Online Archiving for Exchange Online,EXCHANGEARCHIVE_ADDON,ee02fd1b-340e-4a4b-b355-4a514e4c8943,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,EXCHANGE ONLINE ARCHIVING FOR EXCHANGE ONLINE -Exchange Online Archiving for Exchange Server,EXCHANGEARCHIVE,90b5e015-709a-4b8b-b08e-3200f994494c,EXCHANGE_S_ARCHIVE,da040e0a-b393-4bea-bb76-928b3fa1cf5a,EXCHANGE ONLINE ARCHIVING FOR EXCHANGE SERVER -Exchange Online Essentials (ExO P1 Based),EXCHANGEESSENTIALS,7fc0182e-d107-4556-8329-7caaa511197b,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) -Exchange Online Essentials,EXCHANGE_S_ESSENTIALS,e8f81a67-bd96-4074-b108-cf193eb9433b,EXCHANGE_S_ESSENTIALS,1126bef5-da20-4f07-b45e-ad25d2581aa8,EXCHANGE ESSENTIALS -Exchange Online Essentials,EXCHANGE_S_ESSENTIALS,e8f81a67-bd96-4074-b108-cf193eb9433b,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,TO-DO (PLAN 1) -Exchange Online Kiosk,EXCHANGEDESKLESS,80b2d799-d2ba-4d2a-8842-fb0d0f3a4b82,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,EXCHANGE ONLINE KIOSK -Exchange Online POP,EXCHANGETELCO,cb0a98a8-11bc-494c-83d9-c1b1ac65327e,EXCHANGE_B_STANDARD,90927877-dcff-4af6-b346-2332c0b15bb7,EXCHANGE ONLINE POP -Exchange Online Protection,EOP_ENTERPRISE,45a2423b-e884-448d-a831-d9e139c52d2f,EOP_ENTERPRISE,326e2b78-9d27-42c9-8509-46c827743a17,Exchange Online Protection -Flow Plan 1 for Government,FLOW_P1_GOV,2b3b0c87-36af-4d15-8124-04a691cc2546,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Flow Plan 1 for Government,FLOW_P1_GOV,2b3b0c87-36af-4d15-8124-04a691cc2546,DYN365_CDS_P1_GOV,ce361df2-f2a5-4713-953f-4050ba09aad8,Common Data Service for Government -Flow Plan 1 for Government,FLOW_P1_GOV,2b3b0c87-36af-4d15-8124-04a691cc2546,FLOW_P1_GOV,774da41c-a8b3-47c1-8322-b9c1ab68be9f,Power Automate (Plan 1) for Government -Intune,INTUNE_A,061f9ace-7d42-4136-88ac-31dc755f143f,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE -Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,AAD_EDU,3a3976ce-de18-4a87-a78e-5e9245e252df,Microsoft Entra ID for Education -Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education -Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,WINDOWS_STORE,a420f25f-a7b3-4ff5-a9d0-5d58f73b537d,Windows Store Service -Microsoft Dynamics AX7 User Trial,AX7_USER_TRIAL,fcecd1f9-a91e-488d-a918-a96cdb6ce2b0,ERP_TRIAL_INSTANCE,e2f705fd-2468-4090-8c58-fad6e6b1e724,Dynamics 365 Operations Trial Environment -Microsoft Dynamics AX7 User Trial,AX7_USER_TRIAL,fcecd1f9-a91e-488d-a918-a96cdb6ce2b0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Dynamics CRM Online Basic for Government,CRMPLAN2_GCC,3856cd1b-8033-458e-8d0f-9909ec6e6e6d,CRMPLAN2_GCC,3d53f6d9-d6e0-45c1-9575-6acd77692584,Microsoft Dynamics CRM Online Government Basic -Microsoft Dynamics CRM Online Basic for Government,CRMPLAN2_GCC,3856cd1b-8033-458e-8d0f-9909ec6e6e6d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Dynamics CRM Online Basic for Government,CRMPLAN2_GCC,3856cd1b-8033-458e-8d0f-9909ec6e6e6d,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government -Microsoft Dynamics CRM Online Basic for Government,CRMPLAN2_GCC,3856cd1b-8033-458e-8d0f-9909ec6e6e6d,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government -Microsoft Dynamics CRM Online for Government,CRMSTANDARD_GCC,ba051a1a-4c3d-4ccd-9890-6fa6a4e696e7,CRMSTANDARD_GCC,2b8c7c8c-9db5-44a5-a1dd-f4aa5b97b372,Microsoft Dynamics CRM Online Professional for Government -Microsoft Dynamics CRM Online for Government,CRMSTANDARD_GCC,ba051a1a-4c3d-4ccd-9890-6fa6a4e696e7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Dynamics CRM Online for Government,CRMSTANDARD_GCC,ba051a1a-4c3d-4ccd-9890-6fa6a4e696e7,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government -Microsoft Dynamics CRM Online for Government,CRMSTANDARD_GCC,ba051a1a-4c3d-4ccd-9890-6fa6a4e696e7,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government -Microsoft Azure Multi-Factor Authentication,MFA_STANDALONE,cb2020b1-d8f6-41c0-9acd-8ff3d6d7831b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Azure Multi-Factor Authentication,MFA_STANDALONE,cb2020b1-d8f6-41c0-9acd-8ff3d6d7831b,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft Defender for Office 365 (Plan 2),THREAT_INTELLIGENCE,3dd6cf57-d688-4eed-ba52-9e40b5468c3e,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft Defender for Office 365 (Plan 2),THREAT_INTELLIGENCE,3dd6cf57-d688-4eed-ba52-9e40b5468c3e,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft Defender for Office 365 (Plan 2),THREAT_INTELLIGENCE,3dd6cf57-d688-4eed-ba52-9e40b5468c3e,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 A1,M365EDU_A1,b17653a4-2443-4e8c-a550-18249dda78bb,AAD_EDU,3a3976ce-de18-4a87-a78e-5e9245e252df,Microsoft Entra ID for Education -Microsoft 365 A1,M365EDU_A1,b17653a4-2443-4e8c-a550-18249dda78bb,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Intune for Education -Microsoft 365 A1,M365EDU_A1,b17653a4-2443-4e8c-a550-18249dda78bb,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 A1,M365EDU_A1,b17653a4-2443-4e8c-a550-18249dda78bb,WINDOWS_STORE,a420f25f-a7b3-4ff5-a9d0-5d58f73b537d,Windows Store Service -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,UNIVERSAL_PRINT_NO_SEEDING,b67adbaf-a096-42c9-967e-5a84edbe0086,Universal Print Without Seeding -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Microsoft 365 A3 Suite features for faculty,Microsoft 365 A3 Suite features for faculty,32a0e471-8a27-4167-b24f-941559912425,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 -Microsoft 365 A3 Suite features for faculty,Microsoft 365 A3 Suite features for faculty,32a0e471-8a27-4167-b24f-941559912425,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune Plan 1 for Education -Microsoft 365 A3 Suite features for faculty,Microsoft 365 A3 Suite features for faculty,32a0e471-8a27-4167-b24f-941559912425,REMOTE_HELP,a4c6cf29-1168-4076-ba5c-e8fe0e62b17e,Remote help -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,OFFICESUBSCRIPTION_unattended,8d77e2d9-9e28-4450-8431-0def64078fc5,Microsoft 365 Apps for Enterprise (Unattended) -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,UNIVERSAL_PRINT_NO_SEEDING,b67adbaf-a096-42c9-967e-5a84edbe0086,Universal Print Without Seeding -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,Microsoft Communications Compliance -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,Microsoft Insider Risk Management -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,UNIVERSAL_PRINT_NO_SEEDING,b67adbaf-a096-42c9-967e-5a84edbe0086,Universal Print Without Seeding -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics – Premium -Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune Plan 1 for Education -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for EDU -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service - O365 P3 -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium) -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Intune for Education -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the web (Education) -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint Plan 2 for EDU -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,UNIVERSAL_PRINT_NO_SEEDING,b67adbaf-a096-42c9-967e-5a84edbe0086,Universal Print Without Seeding -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) -Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,OFFICE 365 BUSINESS -Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,ONEDRIVESTANDARD -Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) -Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,OFFICE 365 BUSINESS -Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,ONEDRIVESTANDARD -Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise -Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,OneDrive for Business (Plan 1) -Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Microsoft 365 Apps for enterprise (device),OFFICE_PROPLUS_DEVICE1,ea4c5ec8-50e3-4193-89b9-50da5bd4cdc7,OFFICE_PROPLUS_DEVICE,3c994f28-87d5-4273-b07a-eb6190852599,Microsoft 365 Apps for Enterprise (Device) -Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise -Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,OneDrive for Business (Plan 1) -Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service -Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise -Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service -Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,OneDrive for Business (Plan 1) -Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Microsoft 365 Audio Conferencing for faculty,MCOMEETADV_FACULTY,c2cda955-3359-44e5-989f-852ca0cfa02f,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft 365 Audio Conferencing for GCC,MCOMEETADV_GOV,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,EXCHANGE_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT -Microsoft 365 Audio Conferencing for GCC,MCOMEETADV_GOV,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,MICROSOFT 365 AUDIO CONFERENCING FOR GOVERNMENT -Microsoft 365 Audio Conferencing_USGOV_GCCHIGH,MCOMEETADV_USGOV_GCCHIGH,4dee1f32-0808-4fd2-a2ed-fdd575e3a45f,MCOMEETADV_AR_GCCHigh,f1e3613f-3818-4254-9b5e-f02d803384e0,Microsoft 365 Audio Conferencing for GCCHigh -Microsoft 365 Audio Conferencing - GCCHigh Tenant (AR)_USGOV_GCCHIGH,MCOACBYOT_AR_GCCHIGH_USGOV_GCCHIGH,170ba00c-38b2-468c-a756-24c05037160a,MCOACBYOT_GCCHigh,c85e4b03-254a-453b-af72-167a53f38530,Microsoft 365 Audio Conferencing - GCCHigh Tenant -Microsoft 365 Audio Conferencing Pay-Per-Minute - EA,MCOMEETACPEA,df9561a4-4969-4e6a-8e73-c601b68ec077,MCOMEETACPEA,bb038288-76ab-49d6-afc1-eaa6c222c65a,Microsoft 365 Audio Conferencing Pay-Per-Minute -Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) -Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 -Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) -Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) -Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,OFFICEMOBILE_SUBSCRIPTION -Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 -Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE -Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD -Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 -Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE -Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,TO-DO (PLAN 1) -Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) -Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 -Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) -Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) -Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,OFFICEMOBILE_SUBSCRIPTION -Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 -Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE -Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD -Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 -Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,YAMMER_MIDSIZE,41bf139a-4e60-409f-9346-a1361efc6dfb,YAMMER MIDSIZE -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 -Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 -Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 -Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for Business -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 -Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 -Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 -Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 -Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB -Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) -Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 -Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) -Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) -Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,MICROSOFTBOOKINGS -Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,OUTLOOK CUSTOMER MANAGER -Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,OFFICE 365 BUSINESS -Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 -Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE -Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD -Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 -Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,YAMMER_MIDSIZE,41bf139a-4e60-409f-9346-a1361efc6dfb,YAMMER_MIDSIZE -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,OFFICE_SHARED_COMPUTER_ACTIVATION,276d6e8a-f056-4f70-b7e8-4fc27f79f809,Office Shared Computer Activation -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,WINBIZ,8e229017-d77b-43d5-9305-903395523b99,Windows 10/11 Business -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Azure Active Directory -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,Microsoft Intune -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 -Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for Business -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,Microsoft Intune -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,OFFICE_SHARED_COMPUTER_ACTIVATION,276d6e8a-f056-4f70-b7e8-4fc27f79f809,Office Shared Computer Activation -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,WINBIZ,8e229017-d77b-43d5-9305-903395523b99,Windows 10/11 Business -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Azure Active Directory -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 -Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for Business -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,OFFICE_SHARED_COMPUTER_ACTIVATION,276d6e8a-f056-4f70-b7e8-4fc27f79f809,Office Shared Computer Activation -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,WINBIZ,8e229017-d77b-43d5-9305-903395523b99,Windows 10/11 Business -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Azure Active Directory -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,Microsoft Intune -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 -Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,OFFICE_SHARED_COMPUTER_ACTIVATION,276d6e8a-f056-4f70-b7e8-4fc27f79f809,Office Shared Computer Activation -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,WINBIZ,8e229017-d77b-43d5-9305-903395523b99,Windows 10/11 Business -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Azure Active Directory -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,Microsoft Intune -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 -Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 Business Voice (US),BUSINESS_VOICE_MED2_TELCO,08d7bce8-6e16-490e-89db-1d508e5e9609,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft 365 Business Voice (US),BUSINESS_VOICE_MED2_TELCO,08d7bce8-6e16-490e-89db-1d508e5e9609,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,Microsoft 365 Domestic Calling Plan -Microsoft 365 Business Voice (without Calling Plan),BUSINESS_VOICE_DIRECTROUTING,d52db95a-5ecb-46b6-beb0-190ab5cda4a8,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft 365 Business Voice (without Calling Plan),BUSINESS_VOICE_DIRECTROUTING,d52db95a-5ecb-46b6-beb0-190ab5cda4a8,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 Business Voice (UK,BUSINESS_VOICE,e5a17adf-8f0d-4b57-bc14-d331235f9307,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft 365 Business Voice (UK,BUSINESS_VOICE,e5a17adf-8f0d-4b57-bc14-d331235f9307,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,Microsoft 365 Domestic Calling Plan -Microsoft 365 Business Voice (UK,BUSINESS_VOICE,e5a17adf-8f0d-4b57-bc14-d331235f9307,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 Business Voice (without Calling Plan) for US,BUSINESS_VOICE_DIRECTROUTING_MED,8330dae3-d349-44f7-9cad-1b23c64baabe,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft 365 Business Voice (without Calling Plan) for US,BUSINESS_VOICE_DIRECTROUTING_MED,8330dae3-d349-44f7-9cad-1b23c64baabe,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 Business Voice (without Calling Plan),BUSINESS_VOICE_DIRECTROUTING,d52db95a-5ecb-46b6-beb0-190ab5cda4a8,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft 365 Business Voice (without Calling Plan),BUSINESS_VOICE_DIRECTROUTING,d52db95a-5ecb-46b6-beb0-190ab5cda4a8,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 Business Voice,BUSINESS_VOICE_MED2,a6051f20-9cbc-47d2-930d-419183bf6cf1,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft 365 Business Voice,BUSINESS_VOICE_MED2,a6051f20-9cbc-47d2-930d-419183bf6cf1,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,Microsoft 365 Domestic Calling Plan -Microsoft 365 Business Voice,BUSINESS_VOICE_MED2,a6051f20-9cbc-47d2-930d-419183bf6cf1,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,COPILOT_STUDIO_IN_COPILOT_FOR_M365,fe6c28b3-d468-44ea-bbd0-a10a5167435c,Copilot Studio in Copilot for M365 -Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot -Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search -Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_SHAREPOINT,0aedf20c-091d-420b-aadf-30c042609612,Microsoft 365 Copilot for SharePoint -Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams -Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps -Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft Copilot with Graph-grounded chat -Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,COPILOT_STUDIO_IN_COPILOT_FOR_M365,fe6c28b3-d468-44ea-bbd0-a10a5167435c,Copilot Studio in Copilot for M365 -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_SHAREPOINT,0aedf20c-091d-420b-aadf-30c042609612,Microsoft 365 Copilot for SharePoint -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,Microsoft_Copilot_for_Sales,a2194428-ead1-4fc1-bb81-ab8675125f42,Microsoft Copilot for Sales -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,Microsoft_Copilot_for_Sales_PowerAutomate,0c1c2af2-6c51-43c7-9c55-fa487ac147ff,Microsoft Copilot for Sales with Power Automate -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft Copilot with Graph-grounded chat -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,WORKPLACE_ANALYTICS_INSIGHTS_USER,b622badb-1b45-48d5-920f-4b27a2c0996c,Microsoft Viva Insights -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,WORKPLACE_ANALYTICS_INSIGHTS_BACKEND,ff7b261f-d98b-415b-827c-42a3fdf015af,Microsoft Viva Insights Backend -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot -Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot -Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search -Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams -Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps -Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft Copilot with Graph-grounded chat -Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot -Microsoft 365 Domestic Calling Plan (120 minutes) - US,MCOPSTN5_US,d13e9d1b-316a-4946-98c6-362c97a4fdfe,PSTN5_US,1346d5e6-15a6-4b88-9693-806ff7296a7a,Microsoft 365 Domestic Calling Plan - US (120 minutes) -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 -Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,OFFICESUBSCRIPTION_unattended,8d77e2d9-9e28-4450-8431-0def64078fc5,Microsoft 365 Apps for Enterprise (Unattended) -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,OFFICESUBSCRIPTION_unattended,8d77e2d9-9e28-4450-8431-0def64078fc5,Microsoft 365 Apps for Enterprise (Unattended) -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 -Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk -Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams -Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,ONEDRIVE_BASIC_P2,4495894f-534f-41ca-9d3b-0ebf1220a423,OneDrive for Business (Basic 2) -Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 -Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights -Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU -Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,TEAMS_AR_DOD,fd500458-c24c-478e-856c-a6067a8376cd,Microsoft Teams for DOD (AR) -Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Office 365 ProPlus -Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office Online -Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) -Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P -Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Cloud App Security Discovery -Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights -Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU -Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh (AR) -Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Office 365 ProPlus -Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office Online -Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) -Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MCOPSTN8,16935b20-87c0-4908-934a-22aa267d0d26,Microsoft 365 Domestic Calling Plan (120 min) at User Level -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,SHAREPOINTENTERPRISE_MIDMARKET,6b5b6a67-fc72-4a1f-a2b5-beecf05de761,SharePoint (Plan 1) -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 -Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MCOPSTN8,16935b20-87c0-4908-934a-22aa267d0d26,Microsoft 365 Domestic Calling Plan (120 min) at User Level -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 -Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MCOMEETADV_AR_GCCHigh,f1e3613f-3818-4254-9b5e-f02d803384e0,Microsoft 365 Audio Conferencing for GCCHigh -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,FORMS_PLAN_E5_AR_GCCHIGH,cf1b2895-e3fd-4b33-9594-2ab924104547,Microsoft Forms (Plan E5) for GCCHigh -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MICROSOFT_SEARCH_GCCH,fc9f7921-4ca5-42c6-8533-1b84c4ee496b,Microsoft Search for Arlington -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,POWERAPPS_O365_P3_GCCHIGH,b50a9096-5b07-4ded-a5e4-a492fb94b6ee,Power Apps for Office 365 for GCCHigh -Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,FLOW_O365_P3_GCCHIGH,ee939cf0-7cd1-4262-9f72-9eaa45dbba69,Power Automate for Office 365 for GCCHigh -Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management -Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Cloud App Security Discovery -Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for O365 K SKU -Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Online Kiosk -Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) -Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,FORMS_PLAN_K,f07046bd-2a3c-4b96-b0be-dea79d7cbfb8,Microsoft Forms (Plan F1) -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,KAIZALA_O365_P1,73b2a583-6a59-42e3-8e83-54db46bc3278,Microsoft Kaizala Pro -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,PROJECT_O365_F3,7f6f28c2-34bb-4d4b-be36-48ca2e77e1ec,Project for Office (Plan F) -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,WIN10_ENT_LOC_F1,e041597c-9c7f-4ed9-99b0-2663301576f7,Windows 10 Enterprise E3 (Local Only) -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,POWERAPPS_O365_S1,e0287f9f-e222-4f98-9a83-f379e249159a,Power Apps for Office 365 F3 -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,FLOW_O365_S1,bd91b1a4-9f94-4ecf-b45b-3a65e5c8128a,Power Automate for Office 365 F3 -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,POWER_VIRTUAL_AGENTS_O365_F1,ba2fdb48-290b-4632-b46a-e4ecc58ac11a,Power Virtual Agents for Office 365 -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,FORMS_PLAN_K,f07046bd-2a3c-4b96-b0be-dea79d7cbfb8,Microsoft Forms (Plan F1) -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,KAIZALA_O365_P1,73b2a583-6a59-42e3-8e83-54db46bc3278,Microsoft Kaizala Pro -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,TEAMS_DESKLESS,a42de799-58ae-4e6a-aa1d-948e7abec726,Microsoft Teams Kiosk -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,PROJECT_O365_F3,7f6f28c2-34bb-4d4b-be36-48ca2e77e1ec,Project for Office (Plan F) -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,WIN10_ENT_LOC_F1,e041597c-9c7f-4ed9-99b0-2663301576f7,Windows 10 Enterprise E3 (Local Only) -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,POWERAPPS_O365_S1,e0287f9f-e222-4f98-9a83-f379e249159a,Power Apps for Office 365 F3 -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,FLOW_O365_S1,bd91b1a4-9f94-4ecf-b45b-3a65e5c8128a,Power Automate for Office 365 F3 -Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,POWER_VIRTUAL_AGENTS_O365_F1,ba2fdb48-290b-4632-b46a-e4ecc58ac11a,Power Virtual Agents for Office 365 -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,DYN365_CDS_O365_F1_GCC,29007dd3-36c0-4cc2-935d-f5bca2c2c473,Common Data Service - O365 F1 -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,CDS_O365_F1_GCC,5e05331a-0aec-437e-87db-9ef5934b5771,Common Data Service for Teams_F1 GCC -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,EXCHANGE_S_DESKLESS_GOV,88f4d7ef-a73b-4246-8047-516022144c9f,Exchange Online (Kiosk) for Government -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,FORMS_GOV_F1,bfd4133a-bbf3-4212-972b-60412137c428,Forms for Government (Plan F1) -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,STREAM_O365_K_GOV,d65648f1-9504-46e4-8611-2658763f28b8,Microsoft Stream for O365 for Government (F1) -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,OFFICEMOBILE_SUBSCRIPTION_GOV,4ccb60ee-9523-48fd-8f63-4b090f1ad77a,Office Mobile Apps for Office 365 for GCC -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,POWERAPPS_O365_S1_GOV,49f06c3d-da7d-4fa0-bcce-1458fdd18a59,Power Apps for Office 365 F3 for Government -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,FLOW_O365_S1_GOV,5d32692e-5b24-4a59-a77e-b2a8650e25c1,Power Automate for Office 365 F3 for Government -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,SHAREPOINTDESKLESS_GOV,b1aeb897-3a19-46e2-8c27-a609413cf193,SharePoint KioskG -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,MCOIMP_GOV,8a9f17f1-5872-44e8-9b11-3caade9dc90f,Skype for Business Online (Plan 1) for Government -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) -Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,ADALLOM_S_STANDALONE_DOD,6ebdddb7-8e55-4af2-952b-69e77262f96c,Microsoft Defender for Cloud Apps for DOD -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,GRAPH_CONNECTORS_SEARCH_INDEX_TOPICEXP,b74d57b2-58e9-484a-9731-aeccbba954f0,Graph Connectors Search with Index (Microsoft Viva Topics) -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Azure Active Directory Premium P2 -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,RMS_S_PREMIUM2_GOV,5400a66d-eaa5-427d-80f2-0f26d59d8fce,Azure Information Protection Premium P2 for GCC -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government -Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Azure Active Directory Premium P2 -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,RMS_S_PREMIUM2_GOV,5400a66d-eaa5-427d-80f2-0f26d59d8fce,Azure Information Protection Premium P2 for GCC -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government -Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government -Microsoft 365 Audio Conferencing for GCC,MCOMEETADV_GOV,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT -Microsoft 365 Audio Conferencing for GCC,MCOMEETADV_GOV,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,MICROSOFT 365 AUDIO CONFERENCING FOR GOVERNMENT -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,AAD_PREMIUM -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,RMS_S_PREMIUM -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,ADALLOM_S_DISCOVERY -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,DYN365_CDS_O365_F1 -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,EXCHANGE_S_DESKLESS -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,RMS_S_ENTERPRISE -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MFA_PREMIUM -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,MICROSOFTBOOKINGS -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,INTUNE_A -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,PROJECTWORKMANAGEMENT -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,MICROSOFT_SEARCH -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,STREAM_O365_K -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,INTUNE_O365 -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SHAREPOINTDESKLESS -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,MCOIMP -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,CDS_O365_P2_GCC,a70bbf38-cdda-470d-adb8-5804b8770f41,Common Data Service for Teams -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,FORMS_GOV_E3,24af5f65-d0f3-467b-9f78-ea798c4aeffc,Microsoft Forms for Government (Plan E3) -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,PROJECT_O365_P2_GOV,e7d09ae4-099a-4c34-a2a2-3e166e95c44a,Project for Government (Plan E3) -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,STREAM_O365_E3_GOV,2c1ada27-dbaa-46f9-bda6-ecb94445f758,Stream for Office 365 for Government (E3) -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,DYN365_CDS_O365_P2_GCC,06162da2-ebf9-4954-99a0-00fee96f95cc,Common Data Service -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government -Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,CDS_O365_P2_GCC,a70bbf38-cdda-470d-adb8-5804b8770f41,Common Data Service for Teams -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,OFFICESUBSCRIPTION_unattended_GOV,18dfd9bd-5214-4184-8123-c9822d81a9bc,Microsoft 365 Apps for enterprise (unattended) for GCC -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,FORMS_GOV_E3,24af5f65-d0f3-467b-9f78-ea798c4aeffc,Microsoft Forms for Government (Plan E3) -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,PROJECT_O365_P2_GOV,e7d09ae4-099a-4c34-a2a2-3e166e95c44a,Project for Government (Plan E3) -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,STREAM_O365_E3_GOV,2c1ada27-dbaa-46f9-bda6-ecb94445f758,Stream for Office 365 for Government (E3) -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,DYN365_CDS_O365_P2_GCC,06162da2-ebf9-4954-99a0-00fee96f95cc,Common Data Service -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government -Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government -Microsoft 365 Lighthouse,Microsoft365_Lighthouse,9c0587f3-8665-4252-a8ad-b7a5ade57312,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft 365 Lighthouse,Microsoft365_Lighthouse,9c0587f3-8665-4252-a8ad-b7a5ade57312,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Microsoft Sales Copilot,Microsoft_Viva_Sales,3227bcb2-8448-4f81-b3c2-8c2074e15a2a,Microsoft_Viva_Sales_PremiumTrial,8ba1ff15-7bf6-4620-b65c-ecedb6942766,Microsoft Sales Copilot Premium & Trial -Microsoft Sales Copilot,Microsoft_Viva_Sales,3227bcb2-8448-4f81-b3c2-8c2074e15a2a,Microsoft_Viva_Sales_PowerAutomate,a933a62f-c3fb-48e5-a0b7-ac92b94b4420,Microsoft Sales Copilot Premium with Power Automate -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving for Exchange Online -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics - Standard -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,M365 Communication Compliance -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender For Endpoint -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-based classification -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft Business Center,MICROSOFT_BUSINESS_CENTER,726a0894-2c77-4d65-99da-9775ef05aad1,MICROSOFT_BUSINESS_CENTER,cca845f9-fd51-4df6-b563-976a37c56ce0,MICROSOFT BUSINESS CENTER -Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot -Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search -Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft 365 Chat -Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams -Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps -Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,COPILOT_STUDIO_IN_COPILOT_FOR_M365,fe6c28b3-d468-44ea-bbd0-a10a5167435c,Copilot Studio in Copilot for M365 -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_SHAREPOINT,0aedf20c-091d-420b-aadf-30c042609612,Microsoft 365 Copilot for SharePoint -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,Microsoft_Copilot_for_Sales,a2194428-ead1-4fc1-bb81-ab8675125f42,Microsoft Copilot for Sales -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,Microsoft_Copilot_for_Sales_PowerAutomate,0c1c2af2-6c51-43c7-9c55-fa487ac147ff,Microsoft Copilot for Sales with Power Automate -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft Copilot with Graph-grounded chat -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,WORKPLACE_ANALYTICS_INSIGHTS_USER,b622badb-1b45-48d5-920f-4b27a2c0996c,Microsoft Viva Insights -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,WORKPLACE_ANALYTICS_INSIGHTS_BACKEND,ff7b261f-d98b-415b-827c-42a3fdf015af,Microsoft Viva Insights Backend -Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot -Microsoft Copilot Studio,Power_Virtual_Agents,75564b9c-51e8-431c-b8fe-d472d5a545c8,CDS_VIRTUAL_AGENT_BASE_MESSAGES,5dd1819f-0de7-487f-985b-c450a4c9cc1d,Dataverse for Microsoft Copilot Studio -Microsoft Copilot Studio,Power_Virtual_Agents,75564b9c-51e8-431c-b8fe-d472d5a545c8,VIRTUAL_AGENT_BASE_MESSAGES,7b0640f1-63cc-4f83-b8c6-0a4d78b8b988,Microsoft Copilot Studio – Messages -Microsoft Copilot Studio,Power_Virtual_Agents,75564b9c-51e8-431c-b8fe-d472d5a545c8,FLOW_VIRTUAL_AGENT_BASE_MESSAGES,4b9ec373-ed29-4192-8a47-c9ab9048b079,Power Automate for Microsoft Copilot Studio -Microsoft Copilot Studio for GCC,Power_Virtual_Agents_for_GCC_GCC,d7974fa0-ddd7-4899-9589-1ea04273aa26,CDS_VIRTUAL_AGENT_BASE_MESSAGES,5dd1819f-0de7-487f-985b-c450a4c9cc1d,Dataverse for Microsoft Copilot Studio -Microsoft Copilot Studio for GCC,Power_Virtual_Agents_for_GCC_GCC,d7974fa0-ddd7-4899-9589-1ea04273aa26,VIRTUAL_AGENT_BASE_MESSAGES,7b0640f1-63cc-4f83-b8c6-0a4d78b8b988,Microsoft Copilot Studio – Messages -Microsoft Copilot Studio for GCC,Power_Virtual_Agents_for_GCC_GCC,d7974fa0-ddd7-4899-9589-1ea04273aa26,FLOW_VIRTUAL_AGENT_BASE_MESSAGES,4b9ec373-ed29-4192-8a47-c9ab9048b079,Power Automate for Microsoft Copilot Studio -Microsoft Copilot Studio_USGOV_GCCHIGH,Power_Virtual_Agents_USGOV_GCCHIGH,84ed7c30-3738-43a0-aa03-cf6c577d8dbb,CDS_VIRTUAL_AGENT_BASE_MESSAGES,5dd1819f-0de7-487f-985b-c450a4c9cc1d,CDS_VIRTUAL_AGENT_BASE_MESSAGES -Microsoft Copilot Studio_USGOV_GCCHIGH,Power_Virtual_Agents_USGOV_GCCHIGH,84ed7c30-3738-43a0-aa03-cf6c577d8dbb,VIRTUAL_AGENT_BASE_MESSAGES,7b0640f1-63cc-4f83-b8c6-0a4d78b8b988,VIRTUAL_AGENT_BASE_MESSAGES -Microsoft Copilot Studio_USGOV_GCCHIGH,Power_Virtual_Agents_USGOV_GCCHIGH,84ed7c30-3738-43a0-aa03-cf6c577d8dbb,FLOW_VIRTUAL_AGENT_BASE_MESSAGES,4b9ec373-ed29-4192-8a47-c9ab9048b079,FLOW_VIRTUAL_AGENT_BASE_MESSAGES -Microsoft Copilot Studio User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,CDS_VIRTUAL_AGENT_USL,cb867b3c-7f38-4d0d-99ce-e29cd69812c8,Common Data Service -Microsoft Copilot Studio User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,FLOW_VIRTUAL_AGENT_USL,82f141c9-2e87-4f43-8cb2-12d2701dc6b3,Power Automate for Virtual Agent -Microsoft Copilot Studio User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,VIRTUAL_AGENT_USL,1263586c-59a4-4ad0-85e1-d50bc7149501,Virtual Agent -Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,CDS_Virtual_Agent_Usl_Gov,bcc0702e-ba97-48d9-ae04-fa8689c53bba,Dataverse for Virtual Agent USL for GCC -Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Virtual_Agent_Usl_Gov,00b6f978-853b-4041-9de0-a233d18669aa,Virtual Agent for GCC -Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,CDS_Virtual_Agent_Usl_GCC,95df1203-fee7-4726-b7e1-8037a8e899eb,Dataverse for Virtual Agent USL for GCC -Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Flow_Virtual_Agent_Usl_Gov,0b939472-1861-45f1-ab6d-208f359c05cd,Flow for Virtual Agent for GCC -Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,FLOW_Virtual_Agent_Base_Gov,f9f6db16-ace6-4838-b11c-892ee75e810a,Power Automate for Virtual Agent for GCC -Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Power_Virtual_Agent_Usl_GCC,0bdd5466-65c3-470a-9fa6-f679b48286b0,Power Virtual Agent USL for GCC -Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,Virtual_Agent_Usl_Gov_High,7ffee552-ebe8-4725-8678-5c1775c05847,Virtual Agent for GCC High -Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,CDS_VIRTUAL_AGENT_USL,cb867b3c-7f38-4d0d-99ce-e29cd69812c8,Common Data Service -Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,FLOW_Virtual_Agent_Base_Gov_High,225e52e5-7bbf-4793-8fb1-4307a7a1ae8e,Flow for Virtual Agent for GCC High -Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,Flow_Virtual_Agent_Usl_Gov_High,aaae1744-dc7a-4811-9dd0-2bf926ff9d80,Flow for Virtual Agent for GCC High -Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,Power_Virtual_Agent_Usl_GCC_High,3fbe8cdf-c735-44bf-bbfa-646724af4bb4,Power Virtual Agent USL for GCC High -Microsoft Copilot Studio Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,DYN365_CDS_CCI_BOTS,cf7034ed-348f-42eb-8bbd-dddeea43ee81,DYN365_CDS_CCI_BOTS -Microsoft Copilot Studio Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,CCIBOTS_PRIVPREV_VIRAL,ce312d15-8fdf-44c0-9974-a25a177125ee,CCIBOTS_PRIVPREV_VIRAL -Microsoft Copilot Studio Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,FLOW_CCI_BOTS,5d798708-6473-48ad-9776-3acc301c40af,FLOW_CCI_BOTS -Microsoft Cloud App Security,ADALLOM_STANDALONE,df845ce7-05f9-4894-b5f2-11bbfbcfd2b6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Cloud App Security,ADALLOM_STANDALONE,df845ce7-05f9-4894-b5f2-11bbfbcfd2b6,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security -Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,MCS_BizApps_Cloud_for_Sustainability_vTrial,c1c902e3-a956-4273-abdb-c92afcd027ef,MCS - BizApps_Cloud for Sustainability_vTrial -Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,POWER_APPS_DYN365_VIRAL_TRIAL,54b37829-818e-4e3c-a08a-3ea66ab9b45d,Power Apps for Dynamics 365 vTrial -Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,POWER_AUTOMATE_DYN365_VIRAL_TRIAL,81d4ecb8-0481-42fb-8868-51536c5aceeb,Power Automate for Dynamics 365 vTrial -Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,Common Data Service -Microsoft Defender for Business,MDE_SMB,5e1e7702-a2b7-4360-8d07-2f515792896f,Intune_Defender,1689aade-3d6a-4bfc-b017-46d2672df5ad,MDE_SecurityManagement -Microsoft Defender for Business,MDE_SMB,5e1e7702-a2b7-4360-8d07-2f515792896f,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Microsoft Defender for Business,MDE_SMB,5e1e7702-a2b7-4360-8d07-2f515792896f,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Microsoft Defender for Business,MDE_SMB,5e1e7702-a2b7-4360-8d07-2f515792896f,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business -Microsoft Defender for Endpoint,WIN_DEF_ATP,111046dd-295b-4d6d-9724-d52ac90bd1f2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Defender for Endpoint,WIN_DEF_ATP,111046dd-295b-4d6d-9724-d52ac90bd1f2,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,MICROSOFT DEFENDER FOR ENDPOINT -Microsoft Defender for Endpoint F2,Microsoft_Defender_for_Endpoint_F2,e430a580-c37b-4d16-adba-d881d7cd0364,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft Defender for Endpoint P1,DEFENDER_ENDPOINT_P1,16a55f2f-ff35-4cd5-9146-fb784e3761a5,Intune_Defender,1689aade-3d6a-4bfc-b017-46d2672df5ad,MDE_SecurityManagement -Microsoft Defender for Endpoint P1,DEFENDER_ENDPOINT_P1,16a55f2f-ff35-4cd5-9146-fb784e3761a5,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 -Microsoft Defender for Endpoint P1 for EDU,DEFENDER_ENDPOINT_P1_EDU,bba890d4-7881-4584-8102-0c3fdfb739a7,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 -Microsoft Defender for Endpoint P2_XPLAT,MDATP_XPLAT,b126b073-72db-4a9d-87a4-b17afe41d4ab,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Defender for Endpoint P2_XPLAT,MDATP_XPLAT,b126b073-72db-4a9d-87a4-b17afe41d4ab,Intune_Defender,1689aade-3d6a-4bfc-b017-46d2672df5ad,MDE_SecurityManagement -Microsoft Defender for Endpoint P2_XPLAT,MDATP_XPLAT,b126b073-72db-4a9d-87a4-b17afe41d4ab,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft Defender for Endpoint Server,MDATP_Server,509e8ab6-0274-4cda-bcbd-bd164fd562c4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Defender for Endpoint Server,MDATP_Server,509e8ab6-0274-4cda-bcbd-bd164fd562c4,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft Dynamics CRM Online Basic,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Microsoft Dynamics CRM Online Basic,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 -Microsoft Dynamics CRM Online Basic,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,CRMPLAN2,bf36ca64-95c6-4918-9275-eb9f4ce2c04f,MICROSOFT DYNAMICS CRM ONLINE BASIC -Microsoft Dynamics CRM Online Basic,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 -Microsoft Defender for Identity,ATA,98defdf7-f6c1-44f5-a1f6-943b6764e7a5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Defender for Identity,ATA,98defdf7-f6c1-44f5-a1f6-943b6764e7a5,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft Defender for Identity,ATA,98defdf7-f6c1-44f5-a1f6-943b6764e7a5,ADALLOM_FOR_AATP,61d18b02-6889-479f-8f36-56e6e0fe5792,SecOps Investigation for MDI -Microsoft Defender for Office 365 (Plan 1) Faculty,ATP_ENTERPRISE_FACULTY,26ad4b5c-b686-462e-84b9-d7c22b46837f,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft Defender for Office 365 (Plan 1) GCC,ATP_ENTERPRISE_GOV,d0d1ca43-b81a-4f51-81e5-a5b1ad7bb005,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government -Microsoft Defender for Office 365 (Plan 1)_USGOV_GCCHIGH,ATP_ENTERPRISE_USGOV_GCCHIGH ,550f19ba-f323-4a7d-a8d2-8971b0d9ea85,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft Defender for Office 365 (Plan 1) Student,ATP_ENTERPRISE_STUDENT,917fb2b4-f71c-43a1-8edc-75532b554bb5,ATP_ENTERPRISE ,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft Defender for Office 365 (Plan 1) Student use benefit,ATP_ENTERPRISE_STUDENTS_USE_BENEFIT,a237b6d8-572e-4839-bffd-7786d32a5d0e,ATP_ENTERPRISE ,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft Defender for Office 365 (Plan 2) GCC,THREAT_INTELLIGENCE_GOV,56a59ffb-9df1-421b-9e61-8b568583474d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft Defender for Office 365 (Plan 2) GCC,THREAT_INTELLIGENCE_GOV,56a59ffb-9df1-421b-9e61-8b568583474d,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government -Microsoft Defender for Office 365 (Plan 2) GCC,THREAT_INTELLIGENCE_GOV,56a59ffb-9df1-421b-9e61-8b568583474d,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government -Microsoft Defender Vulnerability Management,TVM_Premium_Standalone,1925967e-8013-495f-9644-c99f8b463748,TVM_PREMIUM_1,36810a13-b903-490a-aa45-afbeb7540832,Microsoft Defender Vulnerability Management -Microsoft Defender Vulnerability Management Add-on,TVM_Premium_Add_on,ad7a56e0-6903-4d13-94f3-5ad491e78960,TVM_PREMIUM_1,36810a13-b903-490a-aa45-afbeb7540832,Microsoft Defender Vulnerability Management -Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,CRMSTANDARD,f9646fb2-e3b2-4309-95de-dc4833737456,MICROSOFT DYNAMICS CRM ONLINE PROFESSIONA -Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 -Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,MDM_SALES_COLLABORATION,3413916e-ee66-4071-be30-6f94d4adfeda,MICROSOFT DYNAMICS MARKETING SALES COLLABORATION - ELIGIBILITY CRITERIA APPLY -Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,NBPROFESSIONALFORCRM,3e58e97c-9abe-ebab-cd5f-d543d1529634,MICROSOFT SOCIAL ENGAGEMENT PROFESSIONAL - ELIGIBILITY CRITERIA APPLY -Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 -Microsoft Entra ID Governance,Microsoft_Entra_ID_Governance,cf6b0d46-4093-4546-a0ab-0b1546dcc10e,Entra_Identity_Governance,e866a266-3cff-43a3-acca-0c90a7e00c8b,Entra Identity Governance -Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,BI_AZURE_P0,2049e525-b859-401b-b2a0-e0a31c4b1fe4,Power BI (free) -Microsoft Fabric (Free) for faculty,POWER_BI_STANDARD_FACULTY,ade29b5f-397e-4eb9-a287-0344bd46c68d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE_S_FOUNDATION -Microsoft Fabric (Free) for faculty,POWER_BI_STANDARD_FACULTY,ade29b5f-397e-4eb9-a287-0344bd46c68d,BI_AZURE_P0,2049e525-b859-401b-b2a0-e0a31c4b1fe4,BI_AZURE_P0 -Microsoft Fabric (Free) for student,POWER_BI_STANDARD_STUDENT,bdcaf6aa-04c1-4b8f-b64e-6e3bd505ac64,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE_S_FOUNDATION -Microsoft Fabric (Free) for student,POWER_BI_STANDARD_STUDENT,bdcaf6aa-04c1-4b8f-b64e-6e3bd505ac64,BI_AZURE_P0,2049e525-b859-401b-b2a0-e0a31c4b1fe4,BI_AZURE_P0 -Microsoft Imagine Academy,IT_ACADEMY_AD,ba9a34de-4489-469d-879c-0f0f145321cd,IT_ACADEMY_AD,d736def0-1fde-43f0-a5be-e3f8b2de6e41,MS IMAGINE ACADEMY -Microsoft Intune Device,INTUNE_A_D,2b317a4a-77a6-4188-9437-b68a77b4e2c6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Intune Device,INTUNE_A_D,2b317a4a-77a6-4188-9437-b68a77b4e2c6,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft Intune Device for Government,INTUNE_A_D_GOV,2c21e77a-e0d6-4570-b38a-7ff2dc17d2ca,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Microsoft Intune Device for Government,INTUNE_A_D_GOV,2c21e77a-e0d6-4570-b38a-7ff2dc17d2ca,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft Intune Government,INTUNE_A_GOV,2b26f637-35a0-4dbc-b69e-ff674782be9d,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Microsoft Intune Government,INTUNE_A_GOV,2b26f637-35a0-4dbc-b69e-ff674782be9d,INTUNE_A_GOV,d216f254-796f-4dab-bbfa-710686e646b9,Microsoft Intune G -Microsoft Intune Plan 1 A VL_USGOV_GCCHIGH,INTUNE_A_VL_USGOV_GCCHIGH,b4288abe-01be-47d9-ad20-311d6e83fc24,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Intune Plan 1 A VL_USGOV_GCCHIGH,INTUNE_A_VL_USGOV_GCCHIGH,b4288abe-01be-47d9-ad20-311d6e83fc24,INTUNE_A_VL,3e170737-c728-4eae-bbb9-3f3360f7184c,Microsoft Intune Plan 1 -Microsoft Power Apps for Developer,POWERAPPS_DEV,5b631642-bd26-49fe-bd20-1daaa972ef80,DYN365_CDS_DEV_VIRAL,d8c638e2-9508-40e3-9877-feb87603837b,Common Data Service - DEV VIRAL -Microsoft Power Apps for Developer,POWERAPPS_DEV,5b631642-bd26-49fe-bd20-1daaa972ef80,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Power Apps for Developer,POWERAPPS_DEV,5b631642-bd26-49fe-bd20-1daaa972ef80,FLOW_DEV_VIRAL,c7ce3f26-564d-4d3a-878d-d8ab868c85fe,Flow for Developer -Microsoft Power Apps for Developer,POWERAPPS_DEV,5b631642-bd26-49fe-bd20-1daaa972ef80,POWERAPPS_DEV_VIRAL,a2729df7-25f8-4e63-984b-8a8484121554,PowerApps for Developer -Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,Common Data Service - VIRAL -Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,FLOW_P2_VIRAL,50e68c76-46c6-4674-81f9-75456511b170,Flow Free -Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,FLOW_P2_VIRAL_REAL,d20bfa21-e9ae-43fc-93c2-20783f0840c3,Flow P2 Viral -Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,POWERAPPS_P2_VIRAL,d5368ca3-357e-4acb-9c21-8495fb025d1f,PowerApps Trial -Microsoft Power Automate Free,FLOW_FREE,f30db892-07e9-47e9-837c-80727f46fd3d,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,COMMON DATA SERVICE -Microsoft Power Automate Free,FLOW_FREE,f30db892-07e9-47e9-837c-80727f46fd3d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Microsoft Power Automate Free,FLOW_FREE,f30db892-07e9-47e9-837c-80727f46fd3d,FLOW_P2_VIRAL,50e68c76-46c6-4674-81f9-75456511b170,FLOW FREE -Microsoft Power Automate Plan 2,FLOW_P2,4755df59-3f73-41ab-a249-596ad72b5504,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 -Microsoft Power Automate Plan 2,FLOW_P2,4755df59-3f73-41ab-a249-596ad72b5504,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Power Automate Plan 2,FLOW_P2,4755df59-3f73-41ab-a249-596ad72b5504,FLOW_P2,56be9436-e4b2-446c-bb7f-cc15d16cca4d,Power Automate (Plan 2) -Microsoft Intune SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Microsoft Entra ID -Microsoft Intune SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Microsoft Intune SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,MICROSOFT INTUNE -Microsoft Intune SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE -Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,Intune_AdvancedEA,2a4baa0e-5e99-4c38-b1f2-6864960f1bd1,Intune Advanced endpoint analytics -Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,Intune-EPM,bb73f429-78ef-4ff2-83c8-722b04c3e7d1,Intune Endpoint Privilege Management -Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,INTUNE_P2,d9923fe3-a2de-4d29-a5be-e3e83bb786be,Intune Plan 2 -Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,Intune-MAMTunnel,a6e407da-7411-4397-8a2e-d9b52780849e,Microsoft Tunnel for Mobile Application Management -Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,REMOTE_HELP,a4c6cf29-1168-4076-ba5c-e8fe0e62b17e,Remote help -Microsoft Power Apps Plan 2 (Qualified Offer),POWERFLOW_P2,ddfae3e3-fcb2-4174-8ebd-3023cb213c8b,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 -Microsoft Power Apps Plan 2 (Qualified Offer),POWERFLOW_P2,ddfae3e3-fcb2-4174-8ebd-3023cb213c8b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Power Apps Plan 2 (Qualified Offer),POWERFLOW_P2,ddfae3e3-fcb2-4174-8ebd-3023cb213c8b,POWERAPPS_P2,00527d7f-d5bc-4c2a-8d1e-6c0de2410c81,Power Apps (Plan 2) -Microsoft Power Apps Plan 2 (Qualified Offer),POWERFLOW_P2,ddfae3e3-fcb2-4174-8ebd-3023cb213c8b,FLOW_P2,56be9436-e4b2-446c-bb7f-cc15d16cca4d,Power Automate (Plan 2) -Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,Forms_Pro_Relationship_Sales,507172c0-6001-4f4f-80e7-f350507af3e5,Microsoft Dynamics 365 Customer Voice for Relationship Sales -Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,56e3d4ca-2e31-4c3f-8d57-89c1d363503b,Microsoft Relationship Sales solution -Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,Retired - Microsoft Social Engagement -Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,Microsoft_Viva_Sales_PremiumTrial,8ba1ff15-7bf6-4620-b65c-ecedb6942766,Microsoft Viva Sales Premium & Trial -Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,Microsoft_Viva_Sales_PowerAutomate,a933a62f-c3fb-48e5-a0b7-ac92b94b4420,Microsoft Viva Sales Premium with Power Automate -Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials -Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 -Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -Microsoft Stream,STREAM,1f2f344a-700d-42c9-9427-5cea1d5d7ba6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Microsoft Stream,STREAM,1f2f344a-700d-42c9-9427-5cea1d5d7ba6,MICROSOFTSTREAM,acffdce6-c30f-4dc2-81c0-372e33c515ec,MICROSOFT STREAM -Microsoft Stream Plan 2,STREAM_P2,ec156933-b85b-4c50-84ec-c9e5603709ef,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Stream Plan 2,STREAM_P2,ec156933-b85b-4c50-84ec-c9e5603709ef,STREAM_P2,d3a458d0-f10d-48c2-9e44-86f3f684029e,Microsoft Stream Plan 2 -Microsoft Stream Storage Add-On (500 GB),STREAM_STORAGE,9bd7c846-9556-4453-a542-191d527209e8,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Stream Storage Add-On (500 GB),STREAM_STORAGE,9bd7c846-9556-4453-a542-191d527209e8,STREAM_STORAGE,83bced11-77ce-4071-95bd-240133796768,Microsoft Stream Storage Add-On -Microsoft Sustainability Manager Premium,Microsoft_Sustainability_Manager_Premium,aecb477b-2f56-4e38-b711-b752c24fc19b,CDS_CLOUD_FOR_SUSTAINABILITY_PLUS,ba80223c-e515-4642-a838-3e7d66f70cb6,Common Data Services for Cloud for Sustainability Plus -Microsoft Sustainability Manager Premium,Microsoft_Sustainability_Manager_Premium,aecb477b-2f56-4e38-b711-b752c24fc19b,MCS_BIZAPPS_CLOUD_FOR_SUSTAINABILITY_PLUS,ed29ae92-ff5f-4446-8460-83c54d0e7088,MCS - BizApps Cloud for Sustainability Plus -Microsoft Sustainability Manager Premium,Microsoft_Sustainability_Manager_Premium,aecb477b-2f56-4e38-b711-b752c24fc19b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,MCS_BizApps_Cloud_for_Sustainability_USL,c46c42af-d654-4385-8c85-29a84f3dfb22,MCS - BizApps - Cloud for Sustainability USL -Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,POWER_APPS_FOR_MCS_USL,5ffd371c-037a-41a2-98a3-6452f8c5de17,Power Apps for Cloud for Sustainability USL -Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,POWER_AUTOMATE_FOR_MCS_USL,ccbe468e-7973-442c-8ec4-5fbe16438711,Power Automate for Cloud for Sustainability USL -Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Teams Audio Conferencing with dial-out to USA/CAN,Microsoft_Teams_Audio_Conferencing_select_dial_out,1c27243e-fb4d-42b1-ae8c-fe25c9616588,MCOMEETBASIC,9974d6cf-cd24-4ba2-921c-e2aa687da846,Microsoft Teams Audio Conferencing with dial-out to select geographies -Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,MCOFREE,617d9209-3b90-4879-96e6-838c42b2701d,MCO FREE FOR MICROSOFT TEAMS (FREE) -Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,TEAMS_FREE,4fa4026d-ce74-4962-a151-8e96d57ea8e4,MICROSOFT TEAMS (FREE) -Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SHAREPOINT KIOSK -Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,TEAMS_FREE_SERVICE,bd6f2ac2-991a-49f9-b23c-18c96a02c228,TEAMS FREE SERVICE -Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,WHITEBOARD (FIRSTLINE) -Microsoft Teams Calling Plan pay-as-you-go (country zone 1 - US),Microsoft_Teams_Calling_Plan_pay_as_you_go_(country_zone_1_US),9b196e97-5830-4c2e-adc2-1e10ebf5dee5,MCOPSTN_PAYG_1,156a1efe-17cd-4b03-9f17-2eb512298fb3,Microsoft Teams Calling Plan pay-as-you-go - country zone 1 -Microsoft Teams Domestic Calling Plan (240 min),MCOPSTN_6,729dbb8f-8d56-4994-8e33-2f218f549544,MCOPSTN6,346d83bf-6fe6-42ca-b424-b9300d2e21bf,Microsoft 365 Domestic Calling Plan (240 min) -Microsoft Teams Domestic Calling Plan for GCC,MCOPSTN_1_GOV,923f58ab-fca1-46a1-92f9-89fda21238a8,MCOPSTN1_GOV,3c8a8792-7866-409b-bb61-1b20ace0368b,Domestic Calling Plan for Government -Microsoft Teams Domestic Calling Plan for GCC,MCOPSTN_1_GOV,923f58ab-fca1-46a1-92f9-89fda21238a8,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Microsoft Teams Essentials,Teams_Ess,fde42873-30b6-436b-b361-21af5a6b84ae,TeamsEss,f4f2f6de-6830-442b-a433-e92249faebe2,Microsoft Teams Essentials -Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk -Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,ONEDRIVE_BASIC_P2,4495894f-534f-41ca-9d3b-0ebf1220a423,OneDrive for Business (Basic 2) -Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,COMMON DATA SERVICE FOR TEAMS_P1 -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,INSIGHTS BY MYANALYTICS -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNER -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,MICROSOFT SEARCH -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,DESKLESS,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,MICROSOFT STREAM FOR O365 E1 SKU -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,MICROSOFT TEAMS -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,MCO_TEAMS_IW,42a3ec34-28ba-46b6-992f-db53a675ac5b,MICROSOFT TEAMS -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,MOBILE DEVICE MANAGEMENT FOR OFFICE 365 -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE FOR THE WEB -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,OFFICE MOBILE APPS FOR OFFICE 365 -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWER APPS FOR OFFICE 365 -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,POWER AUTOMATE FOR OFFICE 365 -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,POWER VIRTUAL AGENTS FOR OFFICE 365 P1 -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINT STANDARD -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,TO-DO (PLAN 1) -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,WHITEBOARD (PLAN 1) -Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER ENTERPRIS -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MCO_TEAMS_IW,42a3ec34-28ba-46b6-992f-db53a675ac5b,Microsoft Teams -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 -Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 -Microsoft Teams Phone Standard,MCOEV,e43b5b99-8dfb-405f-9987-dc307f34bcbd,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM -Microsoft Teams Phone Standard for DOD,MCOEV_DOD,d01d9287-694b-44f3-bcc5-ada78c8d953e,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM -Microsoft Teams Phone Standard for Faculty,MCOEV_FACULTY,d979703c-028d-4de5-acbf-7955566b69b9,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTE -Microsoft Teams Phone Standard for GCC,MCOEV_GOV,a460366a-ade7-4791-b581-9fbff1bdaa85,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT -Microsoft Teams Phone Standard for GCC,MCOEV_GOV,a460366a-ade7-4791-b581-9fbff1bdaa85,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,MICROSOFT 365 PHONE SYSTEM FOR GOVERNMENT -Microsoft Teams Phone Standard for GCCHIGH,MCOEV_GCCHIGH,7035277a-5e49-4abc-a24f-0ec49c501bb5,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM -Microsoft Teams Phone Standard for Small and Medium Business,MCOEVSMB_1,aa6791d3-bb09-4bc2-afed-c30c3fe26032,MCOEVSMB,ed777b71-af04-42ca-9798-84344c66f7c6,SKYPE FOR BUSINESS CLOUD PBX FOR SMALL AND MEDIUM BUSINESS -Microsoft Teams Phone Standard for Students,MCOEV_STUDENT,1f338bbc-767e-4a1e-a2d4-b73207cc5b93,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM -Microsoft Teams Phone Standard for TELSTRA,MCOEV_TELSTRA,ffaf2d68-1c95-4eb3-9ddd-59b81fba0f61,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM -Microsoft Teams Phone Standard_USGOV_DOD,MCOEV_USGOV_DOD,b0e7de67-e503-4934-b729-53d595ba5cd1,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM -Microsoft Teams Phone Standard_USGOV_GCCHIGH,MCOEV_USGOV_GCCHIGH,985fcb26-7b94-475b-b512-89356697be71,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM -Microsoft Teams Phone Resource Account,PHONESYSTEM_VIRTUALUSER,440eaaa8-b3e0-484b-a8be-62870b9ba70a,MCOEV_VIRTUALUSER,f47330e9-c134-43b3-9993-e7f004506889,Microsoft 365 Phone Standard Resource Account -Microsoft Teams Phone Resource Account for Faculty,PHONESYSTEM_VIRTUALUSER_FACULTY,0e142028-345e-45da-8d92-8bfd4093bbb9,MCOEV_VIRTUALUSER,f47330e9-c134-43b3-9993-e7f004506889,Microsoft 365 Phone Standard Resource Account -Microsoft Teams Phone Resource Account for GCC,PHONESYSTEM_VIRTUALUSER_GOV,2cf22bcb-0c9e-4bc6-8daf-7e7654c0f285,MCOEV_VIRTUALUSER_GOV,0628a73f-3b4a-4989-bd7b-0f8823144313,Microsoft 365 Phone Standard Resource Account for Government -Microsoft Teams Phone Resource Account_USGOV_GCCHIGH,PHONESYSTEM_VIRTUALUSER_USGOV_GCCHIGH ,e3f0522e-ebb7-4561-9f90-b44516d65b77,MCOEV_VIRTUALUSER,f47330e9-c134-43b3-9993-e7f004506889,Microsoft 365 Phone Standard Resource Account -Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,MICROSOFT_ECDN,85704d55-2e73-47ee-93b4-4b8ea14db92b,Microsoft eCDN -Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_MGMT,0504111f-feb8-4a3c-992a-70280f9a2869,Microsoft Teams Premium Intelligent -Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_CUST,cc8c0802-a325-43df-8cba-995d0c6cb373,Microsoft Teams Premium Personalized -Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_PROTECTION,f8b44f54-18bb-46a3-9658-44ab58712968,Microsoft Teams Premium Secure -Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_VIRTUALAPPT,9104f592-f2a7-4f77-904c-ca5a5715883f,Microsoft Teams Premium Virtual Appointment -Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,MCO_VIRTUAL_APPT,711413d0-b36e-4cd4-93db-0a50a4ab7ea3,Microsoft Teams Premium Virtual Appointments -Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_WEBINAR,78b58230-ec7e-4309-913c-93a45cc4735b,Microsoft Teams Premium Webinar -Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,Teams_Rooms_Basic,c8529366-cffd-4415-ab8f-be0144a33ab1,Teams Rooms Basic -Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,Teams_Room_Basic,8081ca9c-188c-4b49-a8e5-c23b5e9463a8,Teams Rooms Test 1 -Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,Teams_Room_Pro,ec17f317-f4bc-451e-b2da-0167e5c260f9,Teams Rooms Test 2 -Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,Teams_Rooms_Basic,c8529366-cffd-4415-ab8f-be0144a33ab1,Teams Rooms Basic -Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,Teams_Room_Basic,8081ca9c-188c-4b49-a8e5-c23b5e9463a8,Teams Rooms Test 1 -Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,Teams_Room_Pro,ec17f317-f4bc-451e-b2da-0167e5c260f9,Teams Rooms Test 2 -Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft Teams Rooms Basic without Audio Conferencing,Microsoft_Teams_Rooms_Basic_without_Audio_Conferencing,50509a35-f0bd-4c5e-89ac-22f0e16a00f8,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft Teams Rooms Basic without Audio Conferencing,Microsoft_Teams_Rooms_Basic_without_Audio_Conferencing,50509a35-f0bd-4c5e-89ac-22f0e16a00f8,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MTRProManagement,ecc74eae-eeb7-4ad5-9c88-e8b2bfca75b8,Microsoft Teams Rooms Pro Management -Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,Teams_Room_Basic,8081ca9c-188c-4b49-a8e5-c23b5e9463a8,Teams Rooms Test 1 -Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,Teams_Room_Pro,ec17f317-f4bc-451e-b2da-0167e5c260f9,Teams Rooms Test 2 -Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government -Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government -Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government -Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government -Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,Teams_Room_Basic,8081ca9c-188c-4b49-a8e5-c23b5e9463a8,Teams Rooms Test 1 -Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,Teams_Room_Pro,ec17f317-f4bc-451e-b2da-0167e5c260f9,Teams Rooms Test 2 -Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 -Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,INTUNE_A_GOV,d216f254-796f-4dab-bbfa-710686e646b9,Microsoft Intune G -Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM -Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,MICROSOFT TEAMS -Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) -Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 -Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,SPECIALTY_DEVICES,cfce7ae3-4b41-4438-999c-c0e91f3b7fb9,Specialty devices -Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government -Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government -Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government -Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government -Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID Plan 1 -Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,Teams_Room_Standard,92c6b761-01de-457a-9dd9-793a975238f7,Teams Room Standard -Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium Plan 1 -Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government -Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government -Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government -Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government -Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,Teams_Room_Standard,92c6b761-01de-457a-9dd9-793a975238f7,Teams Room Standard -Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,INTUNE_A_GOV,d216f254-796f-4dab-bbfa-710686e646b9,Microsoft Intune G -Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium Plan 1 -Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government -Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government -Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government -Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,Teams_Room_Standard,92c6b761-01de-457a-9dd9-793a975238f7,Teams Room Standard -Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,INTUNE_A_GOV,d216f254-796f-4dab-bbfa-710686e646b9,Microsoft Intune G -Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,MCO_TEAMS_IW,42a3ec34-28ba-46b6-992f-db53a675ac5b,Microsoft Teams -Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 -Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 -Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk -Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft Threat Experts - Experts on Demand,EXPERTS_ON_DEMAND,9fa2f157-c8e4-4351-a3f2-ffa506da1406,EXPERTS_ON_DEMAND,b83a66d4-f05f-414d-ac0f-ea1c5239c42b,Microsoft Threat Experts - Experts on Demand -Microsoft Viva Goals,Microsoft_Viva_Goals,ba929637-f158-4dee-927c-eb7cdefcd955,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Viva Goals,Microsoft_Viva_Goals,ba929637-f158-4dee-927c-eb7cdefcd955,Viva_Goals_Premium,b44c6eaf-5c9f-478c-8f16-8cea26353bfb,Viva Goals -Microsoft Viva Glint,Viva_Glint_Standalone,3dc7332d-f0fa-40a3-81d3-dd6b84469b78,Viva_Glint,6b270342-093e-4015-8c5c-224561532fbf,Viva Glint -Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,GRAPH_CONNECTORS_SEARCH_INDEX_TOPICEXP,b74d57b2-58e9-484a-9731-aeccbba954f0,Graph Connectors Search with Index (Microsoft Viva Topics) -Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,WORKPLACE_ANALYTICS_INSIGHTS_USER,b622badb-1b45-48d5-920f-4b27a2c0996c,Microsoft Viva Insights -Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,WORKPLACE_ANALYTICS_INSIGHTS_BACKEND,ff7b261f-d98b-415b-827c-42a3fdf015af,Microsoft Viva Insights Backend -Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,CORTEX,c815c93d-0759-4bb8-b857-bc921a71be83,Microsoft Viva Topics -Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,VIVAENGAGE_COMMUNITIES_AND_COMMUNICATIONS,43304c6a-1d4e-4e0b-9b06-5b2a2ff58a90,Viva Engage Communities and Communications -Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,VIVAENGAGE_KNOWLEDGE,c244cc9e-622f-4576-92ea-82e233e44e36,Viva Engage Knowledge -Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,Viva_Goals_Premium,b44c6eaf-5c9f-478c-8f16-8cea26353bfb,Viva Goals -Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,VIVA_LEARNING_PREMIUM,7162bd38-edae-4022-83a7-c5837f951759,Viva Learning -Minecraft Education Student,MEE_STUDENT,533b8f26-f74b-4e9c-9c59-50fc4b393b63,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education -Minecraft Education Student,MEE_STUDENT,533b8f26-f74b-4e9c-9c59-50fc4b393b63,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Minecraft Education Faculty,MEE_FACULTY,984df360-9a74-4647-8cf8-696749f6247a,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education -Minecraft Education Faculty,MEE_FACULTY,984df360-9a74-4647-8cf8-696749f6247a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Office 365 Multi-Geo Capabilities,OFFICE365_MULTIGEO,84951599-62b7-46f3-9c9d-30551b2ad607,EXCHANGEONLINE_MULTIGEO,897d51f1-2cfa-4848-9b30-469149f5e68e,Exchange Online Multi-Geo -Office 365 Multi-Geo Capabilities,OFFICE365_MULTIGEO,84951599-62b7-46f3-9c9d-30551b2ad607,SHAREPOINTONLINE_MULTIGEO,735c1d98-dd3f-4818-b4ed-c8052e18e62d,SharePoint Multi-Geo -Office 365 Multi-Geo Capabilities,OFFICE365_MULTIGEO,84951599-62b7-46f3-9c9d-30551b2ad607,TEAMSMULTIGEO,41eda15d-6b52-453b-906f-bc4a5b25a26b,Teams Multi-Geo -Nonprofit Portal,NONPROFIT_PORTAL,aa2695c9-8d59-4800-9dc8-12e01f1735af,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Nonprofit Portal,NONPROFIT_PORTAL,aa2695c9-8d59-4800-9dc8-12e01f1735af,NONPROFIT_PORTAL,7dbc2d88-20e2-4eb6-b065-4510b38d6eb2,Nonprofit Portal -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service - O365 P1 -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro Plan 2 -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service - O365 P1 -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro Plan 2 -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service - O365 P1 -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro Plan 2 -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service - O365 P1 -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro Plan 2 -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for EDU -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service - O365 P2 -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams_P2 -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro Plan 3 -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the web (Education) -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 P2 -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint Plan 2 for EDU -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service - O365 P2 -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams_P2 -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro Plan 3 -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 P2 -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government -Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics -Premium -Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics - Standard -Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government -Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft Defender for Office 365 (Plan 1),ATP_ENTERPRISE,4ef96642-f096-40de-a3e9-d83fb2f90211,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Office 365 Extra File Storage for GCC,SHAREPOINTSTORAGE_GOV,e5788282-6381-469f-84f0-3d7d4021d34d,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE_S_FOUNDATION_GOV -Office 365 Extra File Storage for GCC,SHAREPOINTSTORAGE_GOV,e5788282-6381-469f-84f0-3d7d4021d34d,SHAREPOINTSTORAGE_GOV,e5bb877f-6ac9-4461-9e43-ca581543ab16,SHAREPOINTSTORAGE_GOV -Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams_P1 -Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for O365 E1 SKU -Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,MCO_TEAMS_IW,42a3ec34-28ba-46b6-992f-db53a675ac5b,Microsoft Teams -Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web -Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 -Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 -Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 P1 -Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk -Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Office 365 Cloud App Security,ADALLOM_O365,84d5f90f-cd0d-4864-b90b-1c7ba63b4808,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Office 365 Cloud App Security,ADALLOM_O365,84d5f90f-cd0d-4864-b90b-1c7ba63b4808,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management -Office 365 Extra File Storage,SHAREPOINTSTORAGE,99049c9c-6011-4908-bf17-15f496e6519d,SHAREPOINTSTORAGE,be5a7ed5-c598-4fcd-a061-5e6724c68a58,Office 365 Extra File Storage -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 -Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 -Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 -Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams -Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) -Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,FORMS_PLAN_E1_AR_GCCHIGH,9c37c053-dfe3-4421-b6d4-bac8b86d42bd,Microsoft Forms (Plan E1) for GCCHigh -Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,MICROSOFT_SEARCH_GCCH,fc9f7921-4ca5-42c6-8533-1b84c4ee496b,Microsoft Search for Arlington -Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh -Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 -Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) -Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service -Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 -Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,POWERAPPS_O365_P1_GCCHIGH,3913e44e-824e-490c-a182-82785d769b45,Power Apps for Office 365 for GCCHigh -Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,FLOW_O365_P1_GCCHIGH,e923bad8-588e-44d5-acd0-b226daa7b4de,Power Automate for Office 365 for GCCHigh -Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,BPOS_S_TODO_1 -Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB -Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) -Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 -Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) -Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) -Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 -Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE -Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD -Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,MICROSOFT STREAM FOR O365 E1 SKU -Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 -Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 -Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,BPOS_S_TODO_3 -Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,EXCHANGE ONLINE (PLAN 2) -Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,FLOW FOR OFFICE 365 -Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,MICROSOFT FORMS (PLAN E5) -Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) -Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,OFFICESUBSCRIPTION -Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,POWERAPPS FOR OFFICE 36 -Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE -Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,SHAREPOINT_S_DEVELOPER,a361d6e2-509e-4e25-a8ad-950060064ef4,SHAREPOINT FOR DEVELOPER -Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,SHAREPOINTWAC_DEVELOPER,527f7cdd-0e86-4c47-b879-f5fd357a3ac6,OFFICE ONLINE FOR DEVELOPER -Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,MICROSOFT STREAM FOR O365 E5 SKU -Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 -Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights -Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU -Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,TEAMS_AR_DOD,fd500458-c24c-478e-856c-a6067a8376cd,Microsoft Teams for DOD (AR) -Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Office 365 ProPlus -Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office Online -Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) -Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights -Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU -Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh (AR) -Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Office 365 ProPlus -Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office Online -Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) -Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,BPOS_S_TODO_2 -Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB -Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,EXCHANGE ONLINE (PLAN 2) -Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,FLOW FOR OFFICE 365 -Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,MICROSOFT FORMS (PLAN E3) -Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) -Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,MCOVOICECONF,27216c54-caf8-4d0d-97e2-517afb5c08f6,SKYPE FOR BUSINESS ONLINE (PLAN 3) -Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,OFFICESUBSCRIPTION -Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,POWERAPPS FOR OFFICE 36 -Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE -Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,MICROSOFT Microsoft Entra RIGHTS -Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) -Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,MICROSOFT STREAM FOR O365 E3 SKU -Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 -Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service - O365 P3 -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams_P3 -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics - Standard -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,M365 Communication Compliance -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for O365 E5 SKU -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 P3 -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,PowerApps for Office 365 Plan 3 -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,Microsoft Communications Compliance -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service - O365 F1 -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams_F1 -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,FORMS_PLAN_K,f07046bd-2a3c-4b96-b0be-dea79d7cbfb8,Microsoft Forms (Plan F1) -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,KAIZALA_O365_P1,73b2a583-6a59-42e3-8e83-54db46bc3278,Microsoft Kaizala Pro Plan 1 -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,POWERAPPS_O365_S1,e0287f9f-e222-4f98-9a83-f379e249159a,Power Apps for Office 365 F3 -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,FLOW_O365_S1,bd91b1a4-9f94-4ecf-b45b-3a65e5c8128a,Power Automate for Office 365 F3 -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,POWER_VIRTUAL_AGENTS_O365_F1,ba2fdb48-290b-4632-b46a-e4ecc58ac11a,Power Virtual Agents for Office 365 F1 -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,PROJECT_O365_F3,7f6f28c2-34bb-4d4b-be36-48ca2e77e1ec,Project for Office (Plan F) -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) -Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,FORMS_PLAN_K,f07046bd-2a3c-4b96-b0be-dea79d7cbfb8,Microsoft Forms (Plan F1) -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,KAIZALA_O365_P1,73b2a583-6a59-42e3-8e83-54db46bc3278,Microsoft Kaizala Pro -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,PROJECT_O365_F3,7f6f28c2-34bb-4d4b-be36-48ca2e77e1ec,Project for Office (Plan F) -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,POWERAPPS_O365_S1,e0287f9f-e222-4f98-9a83-f379e249159a,Power Apps for Office 365 F3 -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,FLOW_O365_S1,bd91b1a4-9f94-4ecf-b45b-3a65e5c8128a,Power Automate for Office 365 F3 -Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,POWER_VIRTUAL_AGENTS_O365_F1,ba2fdb48-290b-4632-b46a-e4ecc58ac11a,Power Virtual Agents for Office 365 -Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams -Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk -Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,FORMS_PLAN_K_AR_GCCHIGH,59fb5884-fdec-40bf-aa7f-89e2bae79a7a,Microsoft Forms (Plan F1) for GCCHigh -Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,MICROSOFT_SEARCH_GCCH,fc9f7921-4ca5-42c6-8533-1b84c4ee496b,Microsoft Search for Arlington -Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh -Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 -Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk -Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) -Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service -Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 -Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,POWERAPPS_O365_S1_GCCHIGH,b9f1a92f-d4c7-477b-b64c-e23d7b4e8cf9,Power Apps for Office 365 F3 for GCCHigh -Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,FLOW_O365_S1_GCCHIGH,1db85bca-cd60-4bf5-ae54-641e0778a532,Power Automate for Office 365 F3 for GCCHigh -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,DYN365_CDS_O365_P1_GCC,8eb5e9bc-783f-4425-921a-c65f45dd72c6,Common Data Service - O365 P1 GCC -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,CDS_O365_P1_GCC,959e5dec-6522-4d44-8349-132c27c3795a,Common Data Service for Teams_P1 GCC -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,EXCHANGE_S_STANDARD_GOV,e9b4930a-925f-45e2-ac2a-3f7788ca6fdd,Exchange Online (Plan 1) for Government -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,FORMS_GOV_E1,f4cba850-4f34-4fd2-a341-0fddfdce1e8f,Forms for Government (Plan E1) -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,STREAM_O365_E1_GOV,15267263-5986-449d-ac5c-124f3b49b2d6,Microsoft Stream for O365 for Government (E1) -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,OFFICEMOBILE_SUBSCRIPTION_GOV,4ccb60ee-9523-48fd-8f63-4b090f1ad77a,Office Mobile Apps for Office 365 for GCC -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,POWERAPPS_O365_P1_GOV,c42aa49a-f357-45d5-9972-bc29df885fee,Power Apps for Office 365 for Government -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,FLOW_O365_P1_GOV,ad6c8870-6356-474c-901c-64d7da8cea48,Power Automate for Office 365 for Government -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,SharePoint Plan 1G,f9c43823-deb4-46a8-aa65-8b551f0c4f8a,SharePoint Plan 1G -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,CDS_O365_P2_GCC,a70bbf38-cdda-470d-adb8-5804b8770f41,Common Data Service for Teams -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,FORMS_GOV_E3,24af5f65-d0f3-467b-9f78-ea798c4aeffc,Microsoft Forms for Government (Plan E3) -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,PROJECT_O365_P2_GOV,e7d09ae4-099a-4c34-a2a2-3e166e95c44a,Project for Government (Plan E3) -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,STREAM_O365_E3_GOV,2c1ada27-dbaa-46f9-bda6-ecb94445f758,Stream for Office 365 for Government (E3) -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,DYN365_CDS_O365_P2_GCC,06162da2-ebf9-4954-99a0-00fee96f95cc,Common Data Service -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government -Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,CDS_O365_P2_GCC,a70bbf38-cdda-470d-adb8-5804b8770f41,Common Data Service for Teams -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,FORMS_GOV_E3,24af5f65-d0f3-467b-9f78-ea798c4aeffc,Microsoft Forms for Government (Plan E3) -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,OFFICEMOBILE_SUBSCRIPTION_GOV,4ccb60ee-9523-48fd-8f63-4b090f1ad77a,Office Mobile Apps for Office 365 for GCC -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,PROJECT_O365_P2_GOV,e7d09ae4-099a-4c34-a2a2-3e166e95c44a,Project for Government (Plan E3) -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,STREAM_O365_E3_GOV,2c1ada27-dbaa-46f9-bda6-ecb94445f758,Stream for Office 365 for Government (E3) -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,DYN365_CDS_O365_P2_GCC,06162da2-ebf9-4954-99a0-00fee96f95cc,Common Data Service -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government -Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government -Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government -Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government -Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,EXCHANGE_S_STANDARD_MIDMARKET,fc52cc4b-ed7d-472d-bbe7-b081c23ecc56,EXCHANGE ONLINE PLAN -Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,MCOSTANDARD_MIDMARKET,b2669e95-76ef-4e7e-a367-002f60a39f3e,SKYPE FOR BUSINESS ONLINE (PLAN 2) FOR MIDSIZ -Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,OFFICESUBSCRIPTION -Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,SHAREPOINTENTERPRISE_MIDMARKET,6b5b6a67-fc72-4a1f-a2b5-beecf05de761,SHAREPOINT PLAN 1 -Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,YAMMER_MIDSIZE,41bf139a-4e60-409f-9346-a1361efc6dfb,YAMMER_MIDSIZE -Office 365 Small Business,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,EXCHANGE_L_STANDARD,d42bdbd6-c335-4231-ab3d-c8f348d5aff5,EXCHANGE ONLINE (P1) -Office 365 Small Business,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,MCOLITE,70710b6b-3ab4-4a38-9f6d-9f169461650a,SKYPE FOR BUSINESS ONLINE (PLAN P1) -Office 365 Small Business,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,SHAREPOINTLITE,a1f3d0a8-84c0-4ae0-bae4-685917b8ab48,SHAREPOINTLITE -Office 365 Small Business,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,EXCHANGE_L_STANDARD,d42bdbd6-c335-4231-ab3d-c8f348d5aff5,EXCHANGE ONLINE (P1) -Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,MCOLITE,70710b6b-3ab4-4a38-9f6d-9f169461650a,SKYPE FOR BUSINESS ONLINE (PLAN P1) -Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,OFFICE_PRO_PLUS_SUBSCRIPTION_SMBIZ,8ca59559-e2ca-470b-b7dd-afd8c0dee963,OFFICE 365 SMALL BUSINESS SUBSCRIPTION -Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,SHAREPOINTLITE,a1f3d0a8-84c0-4ae0-bae4-685917b8ab48,SHAREPOINTLITE -Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC -Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,FLOW_FOR_PROJECT_GCC,7251de8f-ecfb-481e-bcff-4af4f1a4573c,Data integration for Project with Power Automate for GCC -Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,OFFICEMOBILE_SUBSCRIPTION_GOV,4ccb60ee-9523-48fd-8f63-4b090f1ad77a,Office Mobile Apps for Office 365 for GCC -Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client -Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,PROJECT_PROFESSIONAL_FOR_GOV,49c7bc16-7004-4df6-8cd5-4ec48b7e9ea0,Project P3 for GOV -Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC -OneDrive for Business (Plan 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) -OneDrive for Business (Plan 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,ONEDRIVESTANDARD -OneDrive for Business (Plan 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -OneDrive for Business (Plan 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -OneDrive for Business (Plan 2),WACONEDRIVEENTERPRISE,ed01faf2-1d88-4947-ae91-45ca18703a96,ONEDRIVEENTERPRISE,afcafa6a-d966-4462-918c-ec0b4e0fe642,ONEDRIVEENTERPRISE -OneDrive for Business (Plan 2),WACONEDRIVEENTERPRISE,ed01faf2-1d88-4947-ae91-45ca18703a96,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,CDSAICAPACITY_PERAPP,5d7a2e9a-4ee5-4f1c-bc9f-abc481bf39d8,AI Builder capacity Per App add-on -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,DYN365_CDS_P1_GOV,ce361df2-f2a5-4713-953f-4050ba09aad8,Common Data Service for Government -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,DYN365_CDS_P2_GOV,37396c73-2203-48e6-8be1-d882dae53275,Common Data Service for Government -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,DYN365_CDS_FOR_PROJECT_GCC_P5,684a2229-5c57-43ab-b69f-f86fe8997358,Common Data Service for Project P5 for GCC -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,CDSAICAPACITY_PERUSER,91f50f7b-2204-4803-acac-5cf5668b8b39,AI Builder capacity Per User add-on -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_O365_S1_GOV,49f06c3d-da7d-4fa0-bcce-1458fdd18a59,Power Apps for Office 365 F3 for Government -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_O365_P1_GOV,c42aa49a-f357-45d5-9972-bc29df885fee,Power Apps for Office 365 for Government -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_DYN_TEAM_GOV,47bdde6a-959f-4c7f-8d59-3243e34f1cb3,Power Automate for Dynamics 365 Team Members for Government -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_O365_S1_GOV,5d32692e-5b24-4a59-a77e-b2a8650e25c1,Power Automate for Office 365 F3 for Government -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_O365_P1_GOV,ad6c8870-6356-474c-901c-64d7da8cea48,Power Automate for Office 365 for Government -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_DYN_P2_GOV,06879193-37cc-4976-8991-f8165c994ce7,Power Automate P2 for Dynamics 365 for Government -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_DYN_TEAM_GOV,63efc247-5f28-43e3-a2f8-00c183e3f1db,PowerApps for Dynamics 365 Team Members for Government -PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_DYN_P2_GOV,51729bb5-7564-4927-8df8-9f5b12279cf3,PowerApps Plan 2 for Dynamics 365 for Government -Power Apps and Logic Flows,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Power Apps and Logic Flows,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,POWERFLOWSFREE,0b4346bb-8dc3-4079-9dfc-513696f56039,LOGIC FLOWS -Power Apps and Logic Flows,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,POWERVIDEOSFREE,2c4ec2dc-c62d-4167-a966-52a3e6374015,MICROSOFT POWER VIDEOS BASIC -Power Apps and Logic Flows,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,POWERAPPSFREE,e61a2945-1d4e-4523-b6e7-30ba39d20f32,MICROSOFT POWERAPPS -PowerApps per app baseline access,POWERAPPS_PER_APP_IW,bf666882-9c9b-4b2e-aa2f-4789b0a52ba2,CDS_PER_APP_IWTRIAL,94a669d1-84d5-4e54-8462-53b0ae2c8be5,CDS Per app baseline access -PowerApps per app baseline access,POWERAPPS_PER_APP_IW,bf666882-9c9b-4b2e-aa2f-4789b0a52ba2,Flow_Per_APP_IWTRIAL,dd14867e-8d31-4779-a595-304405f5ad39,Flow per app baseline access -PowerApps per app baseline access,POWERAPPS_PER_APP_IW,bf666882-9c9b-4b2e-aa2f-4789b0a52ba2,POWERAPPS_PER_APP_IWTRIAL,35122886-cef5-44a3-ab36-97134eabd9ba,PowerApps per app baseline access -Power Apps Per App BD Only for GCC,POWERAPPS_PER_APP_BD_ONLY_GCC,cdc8d0fc-fd16-4954-aae6-ed89a99f5620,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Power Apps Per App BD Only for GCC,POWERAPPS_PER_APP_BD_ONLY_GCC,cdc8d0fc-fd16-4954-aae6-ed89a99f5620,CDS_ POWERAPPS_PER_APP_CUSTOM_GCC,ee493f70-a3b3-4204-9511-e3f6083b8df3,CDS Power Apps Per App Custom GCC -Power Apps Per App BD Only for GCC,POWERAPPS_PER_APP_BD_ONLY_GCC,cdc8d0fc-fd16-4954-aae6-ed89a99f5620,POWERAPPS_PER_APP_GCC,be6e5cba-3661-424c-b79a-6d95fa1d849a,Power Apps per App Plan for Government -Power Apps Per App BD Only for GCC,POWERAPPS_PER_APP_BD_ONLY_GCC,cdc8d0fc-fd16-4954-aae6-ed89a99f5620,Flow_Per_APP_GCC,8e2c2c3d-07f6-4da7-86a9-e78cc8c2c8b9,Power Automate for Power Apps per App Plan for Government -Power Apps per app plan,POWERAPPS_PER_APP,a8ad7d2b-b8cf-49d6-b25a-69094a0be206,CDS_PER_APP,9f2f00ad-21ae-4ceb-994b-d8bc7be90999,CDS PowerApps per app plan -Power Apps per app plan,POWERAPPS_PER_APP,a8ad7d2b-b8cf-49d6-b25a-69094a0be206,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power Apps per app plan,POWERAPPS_PER_APP,a8ad7d2b-b8cf-49d6-b25a-69094a0be206,POWERAPPS_PER_APP,b4f657ff-d83e-4053-909d-baa2b595ec97,Power Apps per App Plan -Power Apps per app plan,POWERAPPS_PER_APP,a8ad7d2b-b8cf-49d6-b25a-69094a0be206,Flow_Per_APP,c539fa36-a64e-479a-82e1-e40ff2aa83ee,Power Automate for Power Apps per App Plan -Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,CDSAICAPACITY_PERAPP,5d7a2e9a-4ee5-4f1c-bc9f-abc481bf39d8,AI Builder capacity Per App add-on -Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,DATAVERSE_POWERAPPS_PER_APP_NEW,6f0e9100-ff66-41ce-96fc-3d8b7ad26887,Dataverse for Power Apps per app -Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,POWERAPPS_PER_APP_NEW,14f8dac2-0784-4daa-9cb2-6d670b088d64,Power Apps per app -Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,Flow_Per_APP,c539fa36-a64e-479a-82e1-e40ff2aa83ee,Power Automate for Power Apps per App Plan -Power Apps per app plan (1 app or website) BD Only - GCC,Power_Apps_per_app_plan_(1_app_or_portal)_BD_Only_GCC,816ee058-f70c-42ad-b433-d6171984ea20,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power Apps per app plan (1 app or website) BD Only - GCC,Power_Apps_per_app_plan_(1_app_or_portal)_BD_Only_GCC,816ee058-f70c-42ad-b433-d6171984ea20,CDS_ POWERAPPS_PER_APP_CUSTOM_NEW,c2da6658-f89d-49f2-9508-40431dee115b,CDS Power Apps Per App Custom New -Power Apps per app plan (1 app or website) BD Only - GCC,Power_Apps_per_app_plan_(1_app_or_portal)_BD_Only_GCC,816ee058-f70c-42ad-b433-d6171984ea20,POWERAPPS_PER_APP_GCC_NEW,70091fc8-1836-470f-a386-f4e6639cb04e,Power Apps per app for GCC -Power Apps per app plan (1 app or website) BD Only - GCC,Power_Apps_per_app_plan_(1_app_or_portal)_BD_Only_GCC,816ee058-f70c-42ad-b433-d6171984ea20,Flow_Per_APP_GCC,8e2c2c3d-07f6-4da7-86a9-e78cc8c2c8b9,Power Automate for Power Apps per App Plan for Government -Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,CDSAICAPACITY_PERAPP,5d7a2e9a-4ee5-4f1c-bc9f-abc481bf39d8,AI Builder capacity Per App add-on -Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,DATAVERSE_POWERAPPS_PER_APP_NEW,6f0e9100-ff66-41ce-96fc-3d8b7ad26887,Dataverse for Power Apps per app -Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,POWERAPPS_PER_APP_GCC_NEW,70091fc8-1836-470f-a386-f4e6639cb04e,Power Apps per app for GCC -Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,Flow_Per_APP_GCC,8e2c2c3d-07f6-4da7-86a9-e78cc8c2c8b9,Power Automate for Power Apps per App Plan for Government -Power Apps per app plan for Government,POWERAPPS_PER_APP_GCC,8623b2d7-5e24-4281-b6b7-086a5f3b0b1c,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Power Apps per app plan for Government,POWERAPPS_PER_APP_GCC,8623b2d7-5e24-4281-b6b7-086a5f3b0b1c,CDS_PER_APP_GCC,d7f9c9bc-0a28-4da4-b5f1-731acb27a3e4,CDS PowerApps per app plan for GCC -Power Apps per app plan for Government,POWERAPPS_PER_APP_GCC,8623b2d7-5e24-4281-b6b7-086a5f3b0b1c,POWERAPPS_PER_APP_GCC,be6e5cba-3661-424c-b79a-6d95fa1d849a,Power Apps per App Plan for Government -Power Apps per app plan for Government,POWERAPPS_PER_APP_GCC,8623b2d7-5e24-4281-b6b7-086a5f3b0b1c,Flow_Per_APP_GCC,8e2c2c3d-07f6-4da7-86a9-e78cc8c2c8b9,Power Automate for Power Apps per App Plan for Government -Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User -Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,CDS_ POWERAPPS_PER_USER_CUSTOM,2e8dde43-6986-479d-b179-7dbe31c31f60,CDS Power Apps Per User Custom -Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,POWERAPPS_PER_USER,ea2cf03b-ac60-46ae-9c1d-eeaeb63cec86,Power Apps per User Plan -Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,Flow_PowerApps_PerUser,dc789ed8-0170-4b65-a415-eb77d5bb350a,Power Automate for Power Apps per User Plan -Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 -Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,POWERAPPS_PER_USER,ea2cf03b-ac60-46ae-9c1d-eeaeb63cec86,Power Apps per User Plan -Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,Flow_PowerApps_PerUser,dc789ed8-0170-4b65-a415-eb77d5bb350a,Power Automate for Power Apps per User Plan -Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,CDSAICAPACITY_PERUSER,91f50f7b-2204-4803-acac-5cf5668b8b39,AI Builder capacity Per User add-on -Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,CDSAICAPACITY_PERUSER_NEW,74d93933-6f22-436e-9441-66d205435abb,AI Builder capacity Per User add-on -Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,DYN365_CDS_P2_GOV,37396c73-2203-48e6-8be1-d882dae53275,Common Data Service for Government -Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,POWERAPPS_PER_USER_GCC,8f55b472-f8bf-40a9-be30-e29919d4ddfe,Power Apps per User Plan for Government -Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,Flow_PowerApps_PerUser_GCC,8e3eb3bd-bc99-4221-81b8-8b8bc882e128,Power Automate for Power Apps per User Plan for GCC -PowerApps Plan 1 for Government,POWERAPPS_P1_GOV,eca22b68-b31f-4e9c-a20c-4d40287bc5dd,DYN365_CDS_P1_GOV,ce361df2-f2a5-4713-953f-4050ba09aad8,Common Data Service for Government -PowerApps Plan 1 for Government,POWERAPPS_P1_GOV,eca22b68-b31f-4e9c-a20c-4d40287bc5dd,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -PowerApps Plan 1 for Government,POWERAPPS_P1_GOV,eca22b68-b31f-4e9c-a20c-4d40287bc5dd,FLOW_P1_GOV,774da41c-a8b3-47c1-8322-b9c1ab68be9f,Power Automate (Plan 1) for Government -PowerApps Plan 1 for Government,POWERAPPS_P1_GOV,eca22b68-b31f-4e9c-a20c-4d40287bc5dd,POWERAPPS_P1_GOV,5ce719f1-169f-4021-8a64-7d24dcaec15f,PowerApps Plan 1 for Government -Power Apps Portals login capacity add-on Tier 2 (10 unit min),POWERAPPS_PORTALS_LOGIN_T2,57f3babd-73ce-40de-bcb2-dadbfbfff9f7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power Apps Portals login capacity add-on Tier 2 (10 unit min),POWERAPPS_PORTALS_LOGIN_T2,57f3babd-73ce-40de-bcb2-dadbfbfff9f7,CDS_POWERAPPS_PORTALS_LOGIN,32ad3a4e-2272-43b4-88d0-80d284258208,Common Data Service Power Apps Portals Login Capacity -Power Apps Portals login capacity add-on Tier 2 (10 unit min),POWERAPPS_PORTALS_LOGIN_T2,57f3babd-73ce-40de-bcb2-dadbfbfff9f7,POWERAPPS_PORTALS_LOGIN,084747ad-b095-4a57-b41f-061d84d69f6f,Power Apps Portals Login Capacity Add-On -Power Apps Portals login capacity add-on Tier 2 (10 unit min) for Government,POWERAPPS_PORTALS_LOGIN_T2_GCC,26c903d5-d385-4cb1-b650-8d81a643b3c4,CDS_POWERAPPS_PORTALS_LOGIN_GCC,0f7b9a29-7990-44ff-9d05-a76be778f410,Common Data Service Power Apps Portals Login Capacity for GCC -Power Apps Portals login capacity add-on Tier 2 (10 unit min) for Government,POWERAPPS_PORTALS_LOGIN_T2_GCC,26c903d5-d385-4cb1-b650-8d81a643b3c4,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Power Apps Portals login capacity add-on Tier 2 (10 unit min) for Government,POWERAPPS_PORTALS_LOGIN_T2_GCC,26c903d5-d385-4cb1-b650-8d81a643b3c4,POWERAPPS_PORTALS_LOGIN_GCC,bea6aef1-f52d-4cce-ae09-bed96c4b1811,Power Apps Portals Login Capacity Add-On for Government -Power Apps Portals login capacity add-on Tier 3 (50 unit min),POWERAPPS_PORTALS_LOGIN_T3,927d8402-8d3b-40e8-b779-34e859f7b497,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power Apps Portals login capacity add-on Tier 3 (50 unit min),POWERAPPS_PORTALS_LOGIN_T3,927d8402-8d3b-40e8-b779-34e859f7b497,CDS_POWERAPPS_PORTALS_LOGIN,32ad3a4e-2272-43b4-88d0-80d284258208,Common Data Service Power Apps Portals Login Capacity -Power Apps Portals login capacity add-on Tier 3 (50 unit min),POWERAPPS_PORTALS_LOGIN_T3,927d8402-8d3b-40e8-b779-34e859f7b497,POWERAPPS_PORTALS_LOGIN,084747ad-b095-4a57-b41f-061d84d69f6f,Power Apps Portals Login Capacity Add-On -Power Apps Portals page view capacity add-on,POWERAPPS_PORTALS_PAGEVIEW,a0de5e3a-2500-4a19-b8f4-ec1c64692d22,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power Apps Portals page view capacity add-on,POWERAPPS_PORTALS_PAGEVIEW,a0de5e3a-2500-4a19-b8f4-ec1c64692d22,CDS_POWERAPPS_PORTALS_PAGEVIEW,72c30473-7845-460a-9feb-b58f216e8694,CDS PowerApps Portals page view capacity add-on -Power Apps Portals page view capacity add-on,POWERAPPS_PORTALS_PAGEVIEW,a0de5e3a-2500-4a19-b8f4-ec1c64692d22,POWERAPPS_PORTALS_PAGEVIEW,1c5a559a-ec06-4f76-be5b-6a315418495f,Power Apps Portals Page View Capacity Add-On -Power Apps Portals page view capacity add-on for Government,POWERAPPS_PORTALS_PAGEVIEW_GCC,15a64d3e-5b99-4c4b-ae8f-aa6da264bfe7,CDS_POWERAPPS_PORTALS_PAGEVIEW_GCC,352257a9-db78-4217-a29d-8b8d4705b014,CDS PowerApps Portals page view capacity add-on for GCC -Power Apps Portals page view capacity add-on for Government,POWERAPPS_PORTALS_PAGEVIEW_GCC,15a64d3e-5b99-4c4b-ae8f-aa6da264bfe7,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Power Apps Portals page view capacity add-on for Government,POWERAPPS_PORTALS_PAGEVIEW_GCC,15a64d3e-5b99-4c4b-ae8f-aa6da264bfe7,POWERAPPS_PORTALS_PAGEVIEW_GCC,483d5646-7724-46ac-ad71-c78b7f099d8d,Power Apps Portals Page View Capacity Add-On for Government -Power Automate per flow plan,FLOW_BUSINESS_PROCESS,b3a42176-0a8c-4c3f-ba4e-f2b37fe5be6b,CDS_Flow_Business_Process,c84e52ae-1906-4947-ac4d-6fb3e5bf7c2e,Common data service for Flow per business process plan -Power Automate per flow plan,FLOW_BUSINESS_PROCESS,b3a42176-0a8c-4c3f-ba4e-f2b37fe5be6b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power Automate per flow plan,FLOW_BUSINESS_PROCESS,b3a42176-0a8c-4c3f-ba4e-f2b37fe5be6b,FLOW_BUSINESS_PROCESS,7e017b61-a6e0-4bdc-861a-932846591f6e,Flow per business process plan -Power Automate per flow plan for Government,FLOW_BUSINESS_PROCESS_GCC,d9de51e5-d8cd-45bb-8da3-1d55e28c52e6,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Power Automate per flow plan for Government,FLOW_BUSINESS_PROCESS_GCC,d9de51e5-d8cd-45bb-8da3-1d55e28c52e6,CDS_Flow_Business_Process_GCC,54b61386-c818-4634-8400-61c9e8f6acd3,Common Data Service for Power Automate per Business Process Plan for GCC -Power Automate per flow plan for Government,FLOW_BUSINESS_PROCESS_GCC,d9de51e5-d8cd-45bb-8da3-1d55e28c52e6,FLOW_BUSINESS_PROCESS_GCC,cb83e771-a077-4a73-9201-d955585b29fa,Power Automate per Business Process Plan for Government -Power Automate per user plan,FLOW_PER_USER,4a51bf65-409c-4a91-b845-1121b571cc9d,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 -Power Automate per user plan,FLOW_PER_USER,4a51bf65-409c-4a91-b845-1121b571cc9d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power Automate per user plan,FLOW_PER_USER,4a51bf65-409c-4a91-b845-1121b571cc9d,FLOW_PER_USER,c5002c70-f725-4367-b409-f0eff4fee6c0,Flow per user plan -Power Automate per user plan dept,FLOW_PER_USER_DEPT,d80a4c5d-8f05-4b64-9926-6574b9e6aee4,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 -Power Automate per user plan dept,FLOW_PER_USER_DEPT,d80a4c5d-8f05-4b64-9926-6574b9e6aee4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power Automate per user plan dept,FLOW_PER_USER_DEPT,d80a4c5d-8f05-4b64-9926-6574b9e6aee4,FLOW_PER_USER,c5002c70-f725-4367-b409-f0eff4fee6c0,Flow per user plan -Power Automate per user plan for Government,FLOW_PER_USER_GCC,c8803586-c136-479a-8ff3-f5f32d23a68e,DYN365_CDS_P2_GOV,37396c73-2203-48e6-8be1-d882dae53275,Common Data Service for Government -Power Automate per user plan for Government,FLOW_PER_USER_GCC,c8803586-c136-479a-8ff3-f5f32d23a68e,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Power Automate per user plan for Government,FLOW_PER_USER_GCC,c8803586-c136-479a-8ff3-f5f32d23a68e,FLOW_PER_USER_GCC,769b8bee-2779-4c5a-9456-6f4f8629fd41,Power Automate per User Plan for Government -Power Automate Premium,POWERAUTOMATE_ATTENDED_RPA,eda1941c-3c4f-4995-b5eb-e85a42175ab9,CDS_ATTENDED_RPA,3da2fd4c-1bee-4b61-a17f-94c31e5cab93,Common Data Service Attended RPA -Power Automate Premium,POWERAUTOMATE_ATTENDED_RPA,eda1941c-3c4f-4995-b5eb-e85a42175ab9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power Automate Premium,POWERAUTOMATE_ATTENDED_RPA,eda1941c-3c4f-4995-b5eb-e85a42175ab9,POWER_AUTOMATE_ATTENDED_RPA,375cd0ad-c407-49fd-866a-0bff4f8a9a4d,Power Automate RPA Attended -Power Automate Premium for Government,POWERAUTOMATE_ATTENDED_RPA_GCC,d3987516-4b53-4dc0-8335-411260bf5626,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Power Automate Premium for Government,POWERAUTOMATE_ATTENDED_RPA_GCC,d3987516-4b53-4dc0-8335-411260bf5626,CDS_ATTENDED_RPA_GCC,4802707d-47e1-45dc-82c5-b6981f0fb38c,Common Data Service Attended RPA for Government -Power Automate Premium for Government,POWERAUTOMATE_ATTENDED_RPA_GCC,d3987516-4b53-4dc0-8335-411260bf5626,POWER_AUTOMATE_ATTENDED_RPA_GCC,fb613c67-1a58-4645-a8df-21e95a37d433,Power Automate Attended RPA for Government -Power Automate Process,Power_Automate_per_process,253ce8d3-6122-4240-8b04-f434a8fa831f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power Automate Process,Power_Automate_per_process,253ce8d3-6122-4240-8b04-f434a8fa831f,DATAVERSE_FOR_POWER_AUTOMATE_PER_PROCESS,d7c3df99-6f58-40b9-8940-cd3a51679d85,Dataverse for Power Automate Per Process -Power Automate unattended RPA add-on,POWERAUTOMATE_UNATTENDED_RPA,3539d28c-6e35-4a30-b3a9-cd43d5d3e0e2,CDS_UNATTENDED_RPA,b475952f-128a-4a44-b82a-0b98a45ca7fb,Common Data Service Unattended RPA -Power Automate unattended RPA add-on,POWERAUTOMATE_UNATTENDED_RPA,3539d28c-6e35-4a30-b3a9-cd43d5d3e0e2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power Automate unattended RPA add-on,POWERAUTOMATE_UNATTENDED_RPA,3539d28c-6e35-4a30-b3a9-cd43d5d3e0e2,POWER_AUTOMATE_UNATTENDED_RPA,0d373a98-a27a-426f-8993-f9a425ae99c5,Power Automate Unattended RPA add-on -Power Automate unattended RPA add-on for Government,POWERAUTOMATE_UNATTENDED_RPA_GCC,086e9b70-4720-4442-ab6d-3ef32bfb4721,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Power Automate unattended RPA add-on for Government,POWERAUTOMATE_UNATTENDED_RPA_GCC,086e9b70-4720-4442-ab6d-3ef32bfb4721,CDS_UNATTENDED_RPA_GCC,5141c408-df3d-456a-9878-a65119b0a750,Common Data Service Unattended RPA for Government -Power Automate unattended RPA add-on for Government,POWERAUTOMATE_UNATTENDED_RPA_GCC,086e9b70-4720-4442-ab6d-3ef32bfb4721,POWER_AUTOMATE_UNATTENDED_RPA_GCC,45e63e9f-6dd9-41fd-bd41-93bfa008c537,Power Automate Unattended RPA for Government -Power BI,POWER_BI_INDIVIDUAL_USER,e2767865-c3c9-4f09-9f99-6eee6eef861a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power BI,POWER_BI_INDIVIDUAL_USER,e2767865-c3c9-4f09-9f99-6eee6eef861a,SQL_IS_SSIM,fc0a60aa-feee-4746-a0e3-aecfe81a38dd,Microsoft Power BI Information Services Plan 1 -Power BI,POWER_BI_INDIVIDUAL_USER,e2767865-c3c9-4f09-9f99-6eee6eef861a,BI_AZURE_P1,2125cfd7-2110-4567-83c4-c1cd5275163d,Microsoft Power BI Reporting and Analytics Plan 1 -Power BI for Office 365 Add-On,POWER_BI_ADDON,45bc2c81-6072-436a-9b0b-3b12eefbc402,BI_AZURE_P1,2125cfd7-2110-4567-83c4-c1cd5275163d,MICROSOFT POWER BI REPORTING AND ANALYTICS PLAN 1 -Power BI for Office 365 Add-On,POWER_BI_ADDON,45bc2c81-6072-436a-9b0b-3b12eefbc402,SQL_IS_SSIM,fc0a60aa-feee-4746-a0e3-aecfe81a38dd,MICROSOFT POWER BI INFORMATION SERVICES PLAN -Power BI Premium P1,PBI_PREMIUM_P1_ADDON,7b26f5ab-a763-4c00-a1ac-f6c4b5506945,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power BI Premium P1,PBI_PREMIUM_P1_ADDON,7b26f5ab-a763-4c00-a1ac-f6c4b5506945,PBI_PREMIUM_P1_ADDON,9da49a6d-707a-48a1-b44a-53dcde5267f8,Power BI Premium P -Power BI Premium P1 GCC,PBI_PREMIUM_P1_ADDON_GCC,f59b22a0-9819-48bf-b01d-715ef2b31027,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Power BI Premium P1 GCC,PBI_PREMIUM_P1_ADDON_GCC,f59b22a0-9819-48bf-b01d-715ef2b31027,PBI_PREMIUM_P1_ADDON_GCC,30df3dbd-5bf6-4d74-9417-cccc096595e4,Power BI Premium P1 for GCC -Power BI Premium Per User,PBI_PREMIUM_PER_USER,c1d032e0-5619-4761-9b5c-75b6831e1711,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power BI Premium Per User,PBI_PREMIUM_PER_USER,c1d032e0-5619-4761-9b5c-75b6831e1711,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User -Power BI Premium Per User,PBI_PREMIUM_PER_USER,c1d032e0-5619-4761-9b5c-75b6831e1711,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Power BI Premium Per User Add-On,PBI_PREMIUM_PER_USER_ADDON,de376a03-6e5b-42ec-855f-093fb50b8ca5,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User -Power BI Premium Per User Add-On for GCC,PBI_PREMIUM_PER_USER_ADDON_CE_GCC,66024bbf-4cd4-4329-95c8-c932e2ae01a8,BI_AZURE_P3_GOV,32d15238-9a8c-46da-af3f-21fc5351d365,Power BI Premium Per User for Government -Power BI Premium Per User Add-On for GCC,PBI_PREMIUM_PER_USER_ADDON_GCC,1b572d5e-1bf8-4b19-9259-f9eda31a6972,BI_AZURE_P3_GOV,32d15238-9a8c-46da-af3f-21fc5351d365,Power BI Premium Per User for Government -Power BI Premium Per User Dept,PBI_PREMIUM_PER_USER_DEPT,f168a3fb-7bcf-4a27-98c3-c235ea4b78b4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power BI Premium Per User Dept,PBI_PREMIUM_PER_USER_DEPT,f168a3fb-7bcf-4a27-98c3-c235ea4b78b4,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User -Power BI Premium Per User Dept,PBI_PREMIUM_PER_USER_DEPT,f168a3fb-7bcf-4a27-98c3-c235ea4b78b4,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Power BI Premium Per User for Faculty,PBI_PREMIUM_PER_USER_FACULTY,060d8061-f606-4e69-a4e7-e8fff75ea1f5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power BI Premium Per User for Faculty,PBI_PREMIUM_PER_USER_FACULTY,060d8061-f606-4e69-a4e7-e8fff75ea1f5,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User -Power BI Premium Per User for Faculty,PBI_PREMIUM_PER_USER_FACULTY,060d8061-f606-4e69-a4e7-e8fff75ea1f5,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Power BI Premium Per User for Government,PBI_PREMIUM_PER_USER_GCC,e53d92fc-778b-4a8b-83de-791240ebf88d,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Power BI Premium Per User for Government,PBI_PREMIUM_PER_USER_GCC,e53d92fc-778b-4a8b-83de-791240ebf88d,BI_AZURE_P3_GOV,32d15238-9a8c-46da-af3f-21fc5351d365,Power BI Premium Per User for Government -Power BI Premium Per User for Government,PBI_PREMIUM_PER_USER_GCC,e53d92fc-778b-4a8b-83de-791240ebf88d,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government -Power BI Pro,POWER_BI_PRO,f8a1db68-be16-40ed-86d5-cb42ce701560,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power BI Pro,POWER_BI_PRO,f8a1db68-be16-40ed-86d5-cb42ce701560,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Power BI Pro CE,POWER_BI_PRO_CE,420af87e-8177-4146-a780-3786adaffbca,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power BI Pro CE,POWER_BI_PRO_CE,420af87e-8177-4146-a780-3786adaffbca,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Power BI Pro Dept,POWER_BI_PRO_DEPT,3a6a908c-09c5-406a-8170-8ebb63c42882,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power BI Pro Dept,POWER_BI_PRO_DEPT,3a6a908c-09c5-406a-8170-8ebb63c42882,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Power BI Pro for Faculty,POWER_BI_PRO_FACULTY,de5f128b-46d7-4cfc-b915-a89ba060ea56,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power BI Pro for Faculty,POWER_BI_PRO_FACULTY,de5f128b-46d7-4cfc-b915-a89ba060ea56,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Power BI Pro for GCC,POWERBI_PRO_GOV,f0612879-44ea-47fb-baf0-3d76d9235576,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Power BI Pro for GCC,POWERBI_PRO_GOV,f0612879-44ea-47fb-baf0-3d76d9235576,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government -Power BI Premium EM2,PBI_PREMIUM_EM2_ADDON,8ecbd3c1-b108-437c-a859-e3c125e3f83f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power BI Premium EM2,PBI_PREMIUM_EM2_ADDON,8ecbd3c1-b108-437c-a859-e3c125e3f83f,PBI_PREMIUM_EM2_ADDON,4e29abd1-ba96-44c0-8a72-e24e4fe9956e,Power BI Premium EM2 -Power BI Premium EM1,PBI_PREMIUM_EM1_ADDON,bc757c42-5622-4583-a483-a9e537fcb71c,EXCHANGE_S_FOUNDATION PBI_PREMIUM_EM1_ADDON,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power BI Premium EM1,PBI_PREMIUM_EM1_ADDON,bc757c42-5622-4583-a483-a9e537fcb71c,EXCHANGE_S_FOUNDATION PBI_PREMIUM_EM1_ADDON,a64b30ba-f310-4065-b444-2670ef146db0,Power BI Premium EM1 -Power Pages authenticated users T1 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack,debc9e58-f2d7-412c-a0b6-575608564228,PowerPages_Authenticated_User,0d3366f3-266e-4117-b422-7cabbc165e7c,Power Pages Authenticated Users per site monthly capacity -Power Pages authenticated users T1 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack,debc9e58-f2d7-412c-a0b6-575608564228,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH -Power Pages authenticated users T1 100 users/per site/month capacity pack CN_CN,Power Pages authenticated users T1_CN_CN,9a3c2a19-06c0-41b1-b2ea-13528d7b2e17,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site -Power Pages authenticated users T1 100 users/per site/month capacity pack CN_CN,Power Pages authenticated users T1_CN_CN,9a3c2a19-06c0-41b1-b2ea-13528d7b2e17,PowerPages_Authenticated_User_CN,967d9574-a076-4bb7-ab89-f41f64bc142e,Power Pages Authenticated Users per site monthly capacity China -Power Pages authenticated users T1 100 users/per site/month capacity pack_GCC,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_GCC,27cb5f12-2e3f-4997-a649-45298673e6a1,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site -Power Pages authenticated users T1 100 users/per site/month capacity pack_GCC,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_GCC,27cb5f12-2e3f-4997-a649-45298673e6a1,PowerPages_Authenticated_User_GCC,cdf787bd-1546-48d2-9e93-b21f9ea7067a,Power Pages Authenticated Users per site monthly capacity GCC -Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_DOD,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_DOD,b54f012e-69e1-43b1-87d0-666def064940,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site -Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_DOD,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_DOD,b54f012e-69e1-43b1-87d0-666def064940,PowerPages_Authenticated_User_DoD,03300fea-7a88-45a6-b5bd-29653803c591,Power Pages Authenticated Users per site monthly capacity DoD -Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,978ec396-f930-4ee1-85f3-e1d82e8f73a4,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site -Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,978ec396-f930-4ee1-85f3-e1d82e8f73a4,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH -Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,978ec396-f930-4ee1-85f3-e1d82e8f73a4,PowerPages_Authenticated_Users_GCCH,5410f688-68f2-47a5-9b8f-7466194a806a,Power Pages Authenticated Users per site mthly capacity GCCH New -Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack,6fe1e61a-91e5-40d7-a547-0d2dcc81bce8,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site -Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack,6fe1e61a-91e5-40d7-a547-0d2dcc81bce8,PowerPages_Authenticated_User,0d3366f3-266e-4117-b422-7cabbc165e7c,Power Pages Authenticated Users per site monthly capacity -Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack,6fe1e61a-91e5-40d7-a547-0d2dcc81bce8,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH -Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_GCC,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_GCC,5f43d48c-dd3d-4dd8-a059-70c2f040f979,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site -Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_GCC,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_GCC,5f43d48c-dd3d-4dd8-a059-70c2f040f979,PowerPages_Authenticated_User_GCC,cdf787bd-1546-48d2-9e93-b21f9ea7067a,Power Pages Authenticated Users per site monthly capacity GCC -Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_DOD,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_DOD,f3d55e2d-4367-44fa-952e-83d0b5dd53fc,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site -Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_DOD,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_DOD,f3d55e2d-4367-44fa-952e-83d0b5dd53fc,PowerPages_Authenticated_User_DoD,03300fea-7a88-45a6-b5bd-29653803c591,Power Pages Authenticated Users per site monthly capacity DoD -Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,7cae5432-61bb-48c3-b75c-831394ec13a0,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site -Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,7cae5432-61bb-48c3-b75c-831394ec13a0,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH -Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,7cae5432-61bb-48c3-b75c-831394ec13a0,PowerPages_Authenticated_Users_GCCH,5410f688-68f2-47a5-9b8f-7466194a806a,Power Pages Authenticated Users per site mthly capacity GCCH New -Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack CN_CN,Power Pages authenticated users T2_CN_CN,7d2bb54a-a870-41c2-98d1-1f3b5b523275,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site -Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack CN_CN,Power Pages authenticated users T2_CN_CN,7d2bb54a-a870-41c2-98d1-1f3b5b523275,PowerPages_Authenticated_User_CN,967d9574-a076-4bb7-ab89-f41f64bc142e,Power Pages Authenticated Users per site monthly capacity China -"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack CN_CN",Power Pages authenticated users T3_CN_CN,2cfd692f-a352-4fa8-b960-e3ad0c9b1178,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site -"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack CN_CN",Power Pages authenticated users T3_CN_CN,2cfd692f-a352-4fa8-b960-e3ad0c9b1178,PowerPages_Authenticated_User_CN,967d9574-a076-4bb7-ab89-f41f64bc142e,Power Pages Authenticated Users per site monthly capacity China -"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack",878b8bbd-3cd0-4b44-9a56-3406741e65e0,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site -"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack",878b8bbd-3cd0-4b44-9a56-3406741e65e0,PowerPages_Authenticated_User,0d3366f3-266e-4117-b422-7cabbc165e7c,Power Pages Authenticated Users per site monthly capacity -"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack",878b8bbd-3cd0-4b44-9a56-3406741e65e0,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH -"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_GCC","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_GCC",53265c61-c78c-4223-ab30-422da0c97fbb,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site -"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_GCC","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_GCC",53265c61-c78c-4223-ab30-422da0c97fbb,PowerPages_Authenticated_User_GCC,cdf787bd-1546-48d2-9e93-b21f9ea7067a,Power Pages Authenticated Users per site monthly capacity GCC -"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_DOD","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_DOD",398d37b5-8deb-48db-8f7f-703eb2fb7c72,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site -"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_DOD","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_DOD",398d37b5-8deb-48db-8f7f-703eb2fb7c72,PowerPages_Authenticated_User_DoD,03300fea-7a88-45a6-b5bd-29653803c591,Power Pages Authenticated Users per site monthly capacity DoD -"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH",01d46c34-3525-47d5-bd1a-5f19979938a0,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site -"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH",01d46c34-3525-47d5-bd1a-5f19979938a0,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH -"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH",01d46c34-3525-47d5-bd1a-5f19979938a0,PowerPages_Authenticated_Users_GCCH,5410f688-68f2-47a5-9b8f-7466194a806a,Power Pages Authenticated Users per site mthly capacity GCCH New -Power Pages vTrial for Makers,Power_Pages_vTrial_for_Makers,3f9f06f5-3c31-472c-985f-62d9c10ec167,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power Pages vTrial for Makers,Power_Pages_vTrial_for_Makers,3f9f06f5-3c31-472c-985f-62d9c10ec167,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,Common Data Service -Power Pages vTrial for Makers,Power_Pages_vTrial_for_Makers,3f9f06f5-3c31-472c-985f-62d9c10ec167,POWER_PAGES_VTRIAL,6817d093-2d30-4249-8bd6-774f01efa78c,Power Pages vTrial for Makers -Power Virtual Agent,VIRTUAL_AGENT_BASE,e4e55366-9635-46f4-a907-fc8c3b5ec81f,CDS_VIRTUAL_AGENT_BASE,0a0a23fa-fea1-4195-bb89-b4789cb12f7f,Common Data Service for Virtual Agent Base -Power Virtual Agent,VIRTUAL_AGENT_BASE,e4e55366-9635-46f4-a907-fc8c3b5ec81f,FLOW_VIRTUAL_AGENT_BASE,4b81a949-69a1-4409-ad34-9791a6ec88aa,Power Automate for Virtual Agent -Power Virtual Agent,VIRTUAL_AGENT_BASE,e4e55366-9635-46f4-a907-fc8c3b5ec81f,VIRTUAL_AGENT_BASE,f6934f16-83d3-4f3b-ad27-c6e9c187b260,Virtual Agent Base -Power Virtual Agent for GCC,VIRTUAL_AGENT_BASE_GCC,9900a3e2-6660-4c52-9074-60c949991389,CDS_Virtual_Agent_Base_Gov,e4d0b25d-e440-4ee9-aac4-1d5a5db9f3ef,Dataverse for Virtual Agent Base for GCC -Power Virtual Agent for GCC,VIRTUAL_AGENT_BASE_GCC,9900a3e2-6660-4c52-9074-60c949991389,FLOW_Virtual_Agent_Base_Gov,f9f6db16-ace6-4838-b11c-892ee75e810a,Power Automate for Virtual Agent for GCC -Power Virtual Agent for GCC,VIRTUAL_AGENT_BASE_GCC,9900a3e2-6660-4c52-9074-60c949991389,Virtual_Agent_Base_GCC,e425b9f6-1543-45a0-8efb-f8fdaf18cba1,Virtual Agent Base for GCC -Power Virtual Agent User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,CDS_VIRTUAL_AGENT_USL,cb867b3c-7f38-4d0d-99ce-e29cd69812c8,Common Data Service -Power Virtual Agent User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,FLOW_VIRTUAL_AGENT_USL,82f141c9-2e87-4f43-8cb2-12d2701dc6b3,Power Automate for Virtual Agent -Power Virtual Agent User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,VIRTUAL_AGENT_USL,1263586c-59a4-4ad0-85e1-d50bc7149501,Virtual Agent -Power Virtual Agent User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,CDS_Virtual_Agent_Usl_GCC,95df1203-fee7-4726-b7e1-8037a8e899eb,Dataverse for Virtual Agent USL for GCC -Power Virtual Agent User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Flow_Virtual_Agent_Usl_Gov,0b939472-1861-45f1-ab6d-208f359c05cd,Flow for Virtual Agent for GCC -Power Virtual Agent User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,FLOW_Virtual_Agent_Base_Gov,f9f6db16-ace6-4838-b11c-892ee75e810a,Power Automate for Virtual Agent for GCC -Power Virtual Agent User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Power_Virtual_Agent_Usl_GCC,0bdd5466-65c3-470a-9fa6-f679b48286b0,Power Virtual Agent USL for GCC -Power Virtual Agents Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,DYN365_CDS_CCI_BOTS,cf7034ed-348f-42eb-8bbd-dddeea43ee81,Common Data Service for CCI Bots -Power Virtual Agents Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,CCIBOTS_PRIVPREV_VIRAL,ce312d15-8fdf-44c0-9974-a25a177125ee,Dynamics 365 AI for Customer Service Virtual Agents Viral -Power Virtual Agents Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,FLOW_CCI_BOTS,5d798708-6473-48ad-9776-3acc301c40af,Flow for CCI Bots -Privacy Management – risk,PRIVACY_MANAGEMENT_RISK,e42bc969-759a-4820-9283-6b73085b68e6,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Privacy Management – risk,PRIVACY_MANAGEMENT_RISK,e42bc969-759a-4820-9283-6b73085b68e6,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk -Privacy Management – risk,PRIVACY_MANAGEMENT_RISK,e42bc969-759a-4820-9283-6b73085b68e6,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) -Privacy Management - risk for EDU,PRIVACY_MANAGEMENT_RISK_EDU,dcdbaae7-d8c9-40cb-8bb1-62737b9e5a86,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Privacy Management - risk for EDU,PRIVACY_MANAGEMENT_RISK_EDU,dcdbaae7-d8c9-40cb-8bb1-62737b9e5a86,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk -Privacy Management - risk for EDU,PRIVACY_MANAGEMENT_RISK_EDU,dcdbaae7-d8c9-40cb-8bb1-62737b9e5a86,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) -Privacy Management - risk GCC,PRIVACY_MANAGEMENT_RISK_GCC,046f7d3b-9595-4685-a2e8-a2832d2b26aa,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Privacy Management - risk GCC,PRIVACY_MANAGEMENT_RISK_GCC,046f7d3b-9595-4685-a2e8-a2832d2b26aa,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk -Privacy Management - risk GCC,PRIVACY_MANAGEMENT_RISK_GCC,046f7d3b-9595-4685-a2e8-a2832d2b26aa,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) -Privacy Management - risk_USGOV_DOD,PRIVACY_MANAGEMENT_RISK_USGOV_DOD,83b30692-0d09-435c-a455-2ab220d504b9,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Privacy Management - risk_USGOV_DOD,PRIVACY_MANAGEMENT_RISK_USGOV_DOD,83b30692-0d09-435c-a455-2ab220d504b9,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk -Privacy Management - risk_USGOV_DOD,PRIVACY_MANAGEMENT_RISK_USGOV_DOD,83b30692-0d09-435c-a455-2ab220d504b9,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) -Privacy Management - risk_USGOV_GCCHIGH,PRIVACY_MANAGEMENT_RISK_USGOV_GCCHIGH,787d7e75-29ca-4b90-a3a9-0b780b35367c,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Privacy Management - risk_USGOV_GCCHIGH,PRIVACY_MANAGEMENT_RISK_USGOV_GCCHIGH,787d7e75-29ca-4b90-a3a9-0b780b35367c,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk -Privacy Management - risk_USGOV_GCCHIGH,PRIVACY_MANAGEMENT_RISK_USGOV_GCCHIGH,787d7e75-29ca-4b90-a3a9-0b780b35367c,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) -Privacy Management - subject rights request (1),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2,d9020d1c-94ef-495a-b6de-818cbbcaa3b8,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (1),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2,d9020d1c-94ef-495a-b6de-818cbbcaa3b8,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1) -Privacy Management - subject rights request (1),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2,d9020d1c-94ef-495a-b6de-818cbbcaa3b8,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1 - Exchange) -Privacy Management - subject rights request (1) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_EDU_V2,475e3e81-3c75-4e07-95b6-2fed374536c8,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (1) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_EDU_V2,475e3e81-3c75-4e07-95b6-2fed374536c8,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1 - Exchange) -Privacy Management - subject rights request (1) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_EDU_V2,475e3e81-3c75-4e07-95b6-2fed374536c8,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1) -Privacy Management - subject rights request (1) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_GCC,017fb6f8-00dd-4025-be2b-4eff067cae72,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (1) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_GCC,017fb6f8-00dd-4025-be2b-4eff067cae72,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1 - Exchange) -Privacy Management - subject rights request (1) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_GCC,017fb6f8-00dd-4025-be2b-4eff067cae72,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1) -Privacy Management - subject rights request (1) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_DOD,d3c841f3-ea93-4da2-8040-6f2348d20954,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (1) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_DOD,d3c841f3-ea93-4da2-8040-6f2348d20954,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1 - Exchange) -Privacy Management - subject rights request (1) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_DOD,d3c841f3-ea93-4da2-8040-6f2348d20954,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1) -Privacy Management - subject rights request (1) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_GCCHIGH,706d2425-6170-4818-ba08-2ad8f1d2d078,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (1) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_GCCHIGH,706d2425-6170-4818-ba08-2ad8f1d2d078,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1 - Exchange) -Privacy Management - subject rights request (1) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_GCCHIGH,706d2425-6170-4818-ba08-2ad8f1d2d078,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1) -Privacy Management - subject rights request (10),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2,78ea43ac-9e5d-474f-8537-4abb82dafe27,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (10),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2,78ea43ac-9e5d-474f-8537-4abb82dafe27,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) -Privacy Management - subject rights request (10),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2,78ea43ac-9e5d-474f-8537-4abb82dafe27,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) -Privacy Management - subject rights request (10) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_EDU_V2,e001d9f1-5047-4ebf-8927-148530491f83,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (10) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_EDU_V2,e001d9f1-5047-4ebf-8927-148530491f83,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) -Privacy Management - subject rights request (10) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_EDU_V2,e001d9f1-5047-4ebf-8927-148530491f83,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) -Privacy Management - subject rights request (10) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_GCC,a056b037-1fa0-4133-a583-d05cff47d551,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (10) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_GCC,a056b037-1fa0-4133-a583-d05cff47d551,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) -Privacy Management - subject rights request (10) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_GCC,a056b037-1fa0-4133-a583-d05cff47d551,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) -Privacy Management - subject rights request (10) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_DOD,ab28dfa1-853a-4f54-9315-f5146975ac9a,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (10) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_DOD,ab28dfa1-853a-4f54-9315-f5146975ac9a,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) -Privacy Management - subject rights request (10) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_DOD,ab28dfa1-853a-4f54-9315-f5146975ac9a,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) -Privacy Management - subject rights request (10) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_GCCHIGH,f6aa3b3d-62f4-4c1d-a44f-0550f40f729c,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (10) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_GCCHIGH,f6aa3b3d-62f4-4c1d-a44f-0550f40f729c,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) -Privacy Management - subject rights request (10) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_GCCHIGH,f6aa3b3d-62f4-4c1d-a44f-0550f40f729c,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) -Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50,c416b349-a83c-48cb-9529-c420841dedd6,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50,c416b349-a83c-48cb-9529-c420841dedd6,PRIVACY_MANGEMENT_DSR,8bbd1fea-6dc6-4aef-8abc-79af22d746e4,Privacy Management - Subject Rights Request -Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50,c416b349-a83c-48cb-9529-c420841dedd6,PRIVACY_MANGEMENT_DSR_EXCHANGE,7ca7f875-98db-4458-ab1b-47503826dd73,Privacy Management - Subject Rights Request (Exchange) -Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_V2,f6c82f13-9554-4da1-bed3-c024cc906e02,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_V2,f6c82f13-9554-4da1-bed3-c024cc906e02,PRIVACY_MANGEMENT_DSR,8bbd1fea-6dc6-4aef-8abc-79af22d746e4,Privacy Management - Subject Rights Request -Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_V2,f6c82f13-9554-4da1-bed3-c024cc906e02,PRIVACY_MANGEMENT_DSR_EXCHANGE,7ca7f875-98db-4458-ab1b-47503826dd73,Privacy Management - Subject Rights Request (Exchange) -Privacy Management - subject rights request (50) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_EDU_V2,ed45d397-7d61-4110-acc0-95674917bb14,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (50) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_EDU_V2,ed45d397-7d61-4110-acc0-95674917bb14,PRIVACY_MANGEMENT_DSR,8bbd1fea-6dc6-4aef-8abc-79af22d746e4,Privacy Management - Subject Rights Request -Privacy Management - subject rights request (50) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_EDU_V2,ed45d397-7d61-4110-acc0-95674917bb14,PRIVACY_MANGEMENT_DSR_EXCHANGE,7ca7f875-98db-4458-ab1b-47503826dd73,Privacy Management - Subject Rights Request (Exchange) -Privacy Management - subject rights request (100),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2,cf4c6c3b-f863-4940-97e8-1d25e912f4c4,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (100),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2,cf4c6c3b-f863-4940-97e8-1d25e912f4c4,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) -Privacy Management - subject rights request (100),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2,cf4c6c3b-f863-4940-97e8-1d25e912f4c4,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) -Privacy Management - subject rights request (100) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_EDU_V2,9b85b4f0-92d9-4c3d-b230-041520cb1046,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (100) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_EDU_V2,9b85b4f0-92d9-4c3d-b230-041520cb1046,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) -Privacy Management - subject rights request (100) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_EDU_V2,9b85b4f0-92d9-4c3d-b230-041520cb1046,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) -Privacy Management - subject rights request (100) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_GCC,91bbc479-4c2c-4210-9c88-e5b468c35b83,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (100) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_GCC,91bbc479-4c2c-4210-9c88-e5b468c35b83,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) -Privacy Management - subject rights request (100) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_GCC,91bbc479-4c2c-4210-9c88-e5b468c35b83,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) -Privacy Management - subject rights request (100) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_DOD,ba6e69d5-ba2e-47a7-b081-66c1b8e7e7d4,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (100) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_DOD,ba6e69d5-ba2e-47a7-b081-66c1b8e7e7d4,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) -Privacy Management - subject rights request (100) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_DOD,ba6e69d5-ba2e-47a7-b081-66c1b8e7e7d4,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) -Privacy Management - subject rights request (100) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_GCCHIGH,cee36ce4-cc31-481f-8cab-02765d3e441f,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level -Privacy Management - subject rights request (100) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_GCCHIGH,cee36ce4-cc31-481f-8cab-02765d3e441f,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) -Privacy Management - subject rights request (100) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_GCCHIGH,cee36ce4-cc31-481f-8cab-02765d3e441f,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) -Project for Office 365,PROJECTCLIENT,a10d5e58-74da-4312-95c8-76be4e5b75a0,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,PROJECT ONLINE DESKTOP CLIENT -Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) -Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web -Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials -Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials -Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education -Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Project Online Essentials for GCC,PROJECTESSENTIALS_GOV,ca1a159a-f09e-42b8-bb82-cb6420f54c8e,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Project Online Essentials for GCC,PROJECTESSENTIALS_GOV,ca1a159a-f09e-42b8-bb82-cb6420f54c8e,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Project Online Essentials for GCC,PROJECTESSENTIALS_GOV,ca1a159a-f09e-42b8-bb82-cb6420f54c8e,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government -Project Online Essentials for GCC,PROJECTESSENTIALS_GOV,ca1a159a-f09e-42b8-bb82-cb6420f54c8e,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Project Online Premium,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,PROJECT ONLINE DESKTOP CLIENT -Project Online Premium,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,SHAREPOINT_PROJECT -Project Online Premium,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) -Project Online Premium,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) -Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,SHAREPOINT_PROJECT -Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) -Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) -Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,PROJECT ONLINE DESKTOP CLIENT -Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,SHAREPOINT_PROJECT -Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) -Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,DYN365_CDS_FOR_PROJECT_P1,a6f677b3-62a6-4644-93e7-2a85d240845e,COMMON DATA SERVICE FOR PROJECT P1 -Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,Power_Automate_For_Project_P1,00283e6b-2bd8-440f-a2d5-87358e4c89a1,POWER AUTOMATE FOR PROJECT P1 -Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,PROJECT ONLINE ESSENTIALS -Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,PROJECT_P1,4a12c688-56c6-461a-87b1-30d6f32136f9,PROJECT P1 -Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINT -Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,DYN365_CDS_FOR_PROJECT_P1,a6f677b3-62a6-4644-93e7-2a85d240845e,Common Data Service for Project P1 -Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,Power_Automate_For_Project_P1,00283e6b-2bd8-440f-a2d5-87358e4c89a1,Power Automate for Project P1 -Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials -Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,PROJECT_P1,4a12c688-56c6-461a-87b1-30d6f32136f9,Project P1 -Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINT STANDARD -Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project -Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,FLOW_FOR_PROJECT,fa200448-008c-4acb-abd4-ea106ed2199d,Flow for Project -Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web -Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client -Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,Project Online Service -Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,PROJECT_PROFESSIONAL,818523f5-016b-4355-9be8-ed6944946ea7,Project P3 -Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project -Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,FLOW_FOR_PROJECT,fa200448-008c-4acb-abd4-ea106ed2199d,Flow for Project -Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client -Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,Project Online Service -Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,PROJECT_PROFESSIONAL,818523f5-016b-4355-9be8-ed6944946ea7,Project P3 -Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client -Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,SHAREPOINT_PROJECT_EDU,664a2fed-6c7a-468e-af35-d61740f0ec90,Project Online Service for Education -Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,PROJECT_PROFESSIONAL_FACULTY,22572403-045f-432b-a660-af949c0a77b5,Project P3 for Faculty -Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education -Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project -Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,FLOW_FOR_PROJECT,fa200448-008c-4acb-abd4-ea106ed2199d,Power Automate for Project -Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC -Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client -Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government -Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,PROJECT_PROFESSIONAL_FOR_GOV,49c7bc16-7004-4df6-8cd5-4ec48b7e9ea0,Project P3 for GOV -Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC -Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC -Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,MCOMEETBASIC_GOV,986d454b-9027-4d9f-880b-f1b68f920cc4,Microsoft Teams Audio Conferencing with dial-out to select geographies for GCC -Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client -Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government -Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,PROJECT_PROFESSIONAL_FOR_GOV,49c7bc16-7004-4df6-8cd5-4ec48b7e9ea0,Project P3 for GOV -Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC -Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client -Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,Project Online Service -Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project -Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client -Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINT_PROJECT_EDU,664a2fed-6c7a-468e-af35-d61740f0ec90,Project Online Service for Education -Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,PROJECT_PROFESSIONAL_FACULTY,22572403-045f-432b-a660-af949c0a77b5,Project P3 for Faculty -Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education -Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office Online for Education -Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Client -Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,Project Online for Education,664a2fed-6c7a-468e-af35-d61740f0ec90,Project Online for Education -Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint Plan 2 for EDU -Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project -Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,FLOW_FOR_PROJECT,fa200448-008c-4acb-abd4-ea106ed2199d,Power Automate for Project -Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC -Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government -Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client -Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government -Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,PROJECT_PROFESSIONAL_FOR_GOV,49c7bc16-7004-4df6-8cd5-4ec48b7e9ea0,Project P3 for GOV -Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G -Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC -Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,SHAREPOINT_PROJECT_EDU,664a2fed-6c7a-468e-af35-d61740f0ec90,Project Online Service for Education -Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education -Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Rights Management Adhoc,RIGHTSMANAGEMENT_ADHOC,8c4ce438-32a7-4ac5-91a6-e22ae08d9c8b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Rights Management Adhoc,RIGHTSMANAGEMENT_ADHOC,8c4ce438-32a7-4ac5-91a6-e22ae08d9c8b,RMS_S_ADHOC,7a39d7dd-e456-4e09-842a-0204ee08187b,Rights Management Adhoc -Rights Management Service Basic Content Protection,RMSBASIC,093e8d14-a334-43d9-93e3-30589a8b47d0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Rights Management Service Basic Content Protection,RMSBASIC,093e8d14-a334-43d9-93e3-30589a8b47d0,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service -Sensor Data Intelligence Additional Machines Add-in for Dynamics 365 Supply Chain Management,DYN365_IOT_INTELLIGENCE_ADDL_MACHINES,08e18479-4483-4f70-8f17-6f92156d8ea9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Sensor Data Intelligence Additional Machines Add-in for Dynamics 365 Supply Chain Management,DYN365_IOT_INTELLIGENCE_ADDL_MACHINES,08e18479-4483-4f70-8f17-6f92156d8ea9,D365_IOTFORSCM_ADDITIONAL,a5f38206-2f48-4d83-9957-525f4e75e9c0,IoT Intelligence Add-in Additional Machines -Sensor Data Intelligence Scenario Add-in for Dynamics 365 Supply Chain Management,DYN365_IOT_INTELLIGENCE_SCENARIO,9ea4bdef-a20b-4668-b4a7-73e1f7696e0a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Sensor Data Intelligence Scenario Add-in for Dynamics 365 Supply Chain Management,DYN365_IOT_INTELLIGENCE_SCENARIO,9ea4bdef-a20b-4668-b4a7-73e1f7696e0a,D365_IOTFORSCM,83dd9619-c7d5-44da-9250-dc4ee79fff7e,Iot Intelligence Add-in for D365 Supply Chain Management -SharePoint Online (Plan 1),SHAREPOINTSTANDARD,1fc08a02-8b3d-43b9-831e-f76859e04e1a,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD -SharePoint Online (Plan 2),SHAREPOINTENTERPRISE,a9732ec9-17d9-494c-a51c-d6b45b384dcb,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) -SharePoint Syntex,Intelligent_Content_Services,f61d4aba-134f-44e9-a2a0-f81a5adb26e4,CDS_O365_E5_KM,3069d530-e41b-421c-ad59-fb1001a23e11,Common Data Service for SharePoint Syntex -SharePoint Syntex,Intelligent_Content_Services,f61d4aba-134f-44e9-a2a0-f81a5adb26e4,Intelligent_Content_Services,f00bd55e-1633-416e-97c0-03684e42bc42,SharePoint Syntex -SharePoint Syntex,Intelligent_Content_Services,f61d4aba-134f-44e9-a2a0-f81a5adb26e4,Intelligent_Content_Services_SPO_type,fd2e7f90-1010-487e-a11b-d2b1ae9651fc,SharePoint Syntex - SPO type -Skype for Business Online (Plan 1),MCOIMP,b8b749f8-a4ef-4887-9539-c95b1eaa5db7,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,SKYPE FOR BUSINESS ONLINE (PLAN 1) -Skype for Business Online (Plan 2),MCOSTANDARD,d42c793f-6c78-4f43-92ca-e8f6a02b035f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) -Skype for Business PSTN Calling Domestic Small,MCOPSTN5,d43177b5-475b-4880-92d4-d54c27b5efbd,Skype for Business PSTN Calling Domestic Small,9a0125a5-c8f8-4526-b231-49e2abe0ebce,Skype for Business PSTN Calling Domestic Small -Skype for Business PSTN Domestic and International Calling,MCOPSTN2,d3b4fe1f-9992-4930-8acb-ca6ec609365e,MCOPSTN2,5a10155d-f5c1-411a-a8ec-e99aae125390,DOMESTIC AND INTERNATIONAL CALLING PLAN -Skype for Business PSTN Domestic Calling,MCOPSTN1,0dab259f-bf13-4952-b7f8-7db8f131b28d,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,DOMESTIC CALLING PLAN -Skype for Business PSTN Domestic Calling (120 Minutes),MCOPSTN5,54a152dc-90de-4996-93d2-bc47e670fc06,MCOPSTN5,54a152dc-90de-4996-93d2-bc47e670fc06,DOMESTIC CALLING PLAN -Skype for Business PSTN Usage Calling Plan,MCOPSTNPP,06b48c5f-01d9-4b18-9015-03b52040f51a,MCOPSTN3,6b340437-d6f9-4dc5-8cc2-99163f7f83d6,MCOPSTN3 -Teams Phone Mobile,Operator_Connect_Mobile,b84d58c9-0a0d-46cf-8a4b-d9f23c1674d5,MCOFMC1,cb22fbd7-ed7d-4786-a27a-e4cd617b69c0,Teams Phone Mobile -Teams Phone with Calling Plan,MCOTEAMS_ESSENTIALS,ae2343d1-0999-43f6-ae18-d816516f6e78,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,Microsoft 365 Domestic Calling Plan -Teams Phone with Calling Plan,MCOTEAMS_ESSENTIALS,ae2343d1-0999-43f6-ae18-d816516f6e78,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,MICROSOFT_ECDN,85704d55-2e73-47ee-93b4-4b8ea14db92b,Microsoft eCDN -Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,MESH_IMMERSIVE,acbca54f-c771-423b-a476-6d7a98cbbcec,Microsoft Mesh -Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_MGMT,0504111f-feb8-4a3c-992a-70280f9a2869,Microsoft Teams Premium Intelligent -Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_CUST,cc8c0802-a325-43df-8cba-995d0c6cb373,Microsoft Teams Premium Personalized -Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_PROTECTION,f8b44f54-18bb-46a3-9658-44ab58712968,Microsoft Teams Premium Secure -Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_VIRTUALAPPT,9104f592-f2a7-4f77-904c-ca5a5715883f,Microsoft Teams Premium Virtual Appointment -Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,MCO_VIRTUAL_APPT,711413d0-b36e-4cd4-93db-0a50a4ab7ea3,Microsoft Teams Premium Virtual Appointments -Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_WEBINAR,78b58230-ec7e-4309-913c-93a45cc4735b,Microsoft Teams Premium Webinar -Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MMR_P1,bdaa59a3-74fd-4137-981a-31d4f84eb8a0,Meeting Room Managed Services -Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -TELSTRA Calling for O365,MCOPSTNEAU2,de3312e1-c7b0-46e6-a7c3-a515ff90bc86,MCOPSTNEAU,7861360b-dc3b-4eba-a3fc-0d323a035746,AUSTRALIA CALLING PLAN -Universal Print,UNIVERSAL_PRINT,9f3d9c1d-25a5-4aaa-8e59-23a1e6450a67,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Viva Learning,VIVA_LEARNING,c9d442fc-21fb-4bd7-89e0-a710d74987f6,VIVA_LEARNING_PREMIUM,7162bd38-edae-4022-83a7-c5837f951759,Viva Learning -Universal Print,UNIVERSAL_PRINT,9f3d9c1d-25a5-4aaa-8e59-23a1e6450a67,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Visio Plan 1,VISIO_PLAN1_DEPT,ca7f3140-d88c-455b-9a1c-7f0679e31a76,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Visio Plan 1,VISIO_PLAN1_DEPT,ca7f3140-d88c-455b-9a1c-7f0679e31a76,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,OneDrive for business Basic -Visio Plan 1,VISIO_PLAN1_DEPT,ca7f3140-d88c-455b-9a1c-7f0679e31a76,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,Visio web app -Visio Plan 2,VISIO_PLAN2_DEPT,38b434d2-a15e-4cde-9a98-e737c75623e1,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Visio Plan 2,VISIO_PLAN2_DEPT,38b434d2-a15e-4cde-9a98-e737c75623e1,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,OneDrive for Business (Basic) -Visio Plan 2,VISIO_PLAN2_DEPT,38b434d2-a15e-4cde-9a98-e737c75623e1,VISIO_CLIENT_SUBSCRIPTION,663a804f-1c30-4ff0-9915-9db84f0d1cea,Visio Desktop App -Visio Plan 2,VISIO_PLAN2_DEPT,38b434d2-a15e-4cde-9a98-e737c75623e1,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,Visio Web App -Visio Plan 2_USGOV_GCCHIGH,VISIOCLIENT_USGOV_GCCHIGH,80e52531-ad7f-44ea-abc3-28e389462f1b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Visio Plan 2_USGOV_GCCHIGH,VISIOCLIENT_USGOV_GCCHIGH,80e52531-ad7f-44ea-abc3-28e389462f1b,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,OneDrive for Business (Basic) -Visio Plan 2_USGOV_GCCHIGH,VISIOCLIENT_USGOV_GCCHIGH,80e52531-ad7f-44ea-abc3-28e389462f1b,VISIO_CLIENT_SUBSCRIPTION,663a804f-1c30-4ff0-9915-9db84f0d1cea,Visio Desktop App -Visio Plan 2_USGOV_GCCHIGH,VISIOCLIENT_USGOV_GCCHIGH,80e52531-ad7f-44ea-abc3-28e389462f1b,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,Visio Web App -Visio Plan 1,VISIOONLINE_PLAN1,4b244418-9658-4451-a2b8-b5e2b364e9bd,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Visio Plan 1,VISIOONLINE_PLAN1,4b244418-9658-4451-a2b8-b5e2b364e9bd,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,ONEDRIVE FOR BUSINESS BASIC -Visio Plan 1,VISIOONLINE_PLAN1,4b244418-9658-4451-a2b8-b5e2b364e9bd,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,VISIO WEB APP -Visio Plan 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Visio Plan 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,ONEDRIVE FOR BUSINESS BASIC -Visio Plan 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,VISIO_CLIENT_SUBSCRIPTION,663a804f-1c30-4ff0-9915-9db84f0d1cea,VISIO DESKTOP APP -Visio Plan 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,VISIO WEB APP -Visio Plan 2 for GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT -Visio Plan 2 for GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,ONEDRIVE_BASIC_GOV,98709c2e-96b5-4244-95f5-a0ebe139fb8a,ONEDRIVE FOR BUSINESS BASIC FOR GOVERNMENT -Visio Plan 2 for GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,VISIO_CLIENT_SUBSCRIPTION_GOV,f85945f4-7a55-4009-bc39-6a5f14a8eac1,VISIO DESKTOP APP FOR Government -Visio Plan 2 for GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,VISIOONLINE_GOV,8a9ecb07-cfc0-48ab-866c-f83c4d911576,VISIO WEB APP FOR GOVERNMENT -Visio Plan 2 for Faculty,VISIOCLIENT_FACULTY,bf95fd32-576a-4742-8d7a-6dc4940b9532,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Visio Plan 2 for Faculty,VISIOCLIENT_FACULTY,bf95fd32-576a-4742-8d7a-6dc4940b9532,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,OneDrive for Business (Basic) -Visio Plan 2 for Faculty,VISIOCLIENT_FACULTY,bf95fd32-576a-4742-8d7a-6dc4940b9532,VISIO_CLIENT_SUBSCRIPTION,663a804f-1c30-4ff0-9915-9db84f0d1cea,Visio Desktop App -Visio Plan 2 for Faculty,VISIOCLIENT_FACULTY,bf95fd32-576a-4742-8d7a-6dc4940b9532,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,Visio Web App -Viva Goals User-led,Viva_Goals_User_led,3a349c99-ffec-43d2-a2e8-6b97fcb71103,Viva_Goals_Premium,b44c6eaf-5c9f-478c-8f16-8cea26353bfb,Viva Goals -Viva Topics,TOPIC_EXPERIENCES,4016f256-b063-4864-816e-d818aad600c9,GRAPH_CONNECTORS_SEARCH_INDEX_TOPICEXP,b74d57b2-58e9-484a-9731-aeccbba954f0,Graph Connectors Search with Index (Viva Topics) -Viva Topics,TOPIC_EXPERIENCES,4016f256-b063-4864-816e-d818aad600c9,CORTEX,c815c93d-0759-4bb8-b857-bc921a71be83,Viva Topics -Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,DATAVERSE_FOR_POWERAUTOMATE_DESKTOP,59231cdf-b40d-4534-a93e-14d0cd31d27e,Dataverse for PAD -Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,POWERAUTOMATE_DESKTOP_FOR_WIN,2d589a15-b171-4e61-9b5f-31d15eeb2872,PAD for Windows -Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) -Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Windows 10/11 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 10/11 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Windows 10/11 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) -Windows 10/11 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Windows 10/11 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 10/11 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Windows 10/11 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) -Windows 10/11 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,Virtualization Rights for Windows 10,e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise -Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Windows 10/11 Enterprise E3,WIN10_PRO_ENT_SUB,cb10e6cd-9da4-4992-867b-67546b1db821,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,WINDOWS 10 ENTERPRISE -Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,UNIVERSAL PRINT -Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,WINDOWS 10 ENTERPRISE (NEW) -Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,WINDOWS UPDATE FOR BUSINESS DEPLOYMENT SERVICE -Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender For Endpoint -Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) -Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Windows 10/11 Enterprise E5 Commercial (GCC Compatible),WINE5_GCC_COMPAT,938fd547-d794-42a4-996c-1cc206619580,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Windows 10/11 Enterprise E5 Commercial (GCC Compatible),WINE5_GCC_COMPAT,938fd547-d794-42a4-996c-1cc206619580,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender For Endpoint -Windows 10/11 Enterprise E5 Commercial (GCC Compatible),WINE5_GCC_COMPAT,938fd547-d794-42a4-996c-1cc206619580,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) -Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise -Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch -Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,DATAVERSE_FOR_POWERAUTOMATE_DESKTOP,59231cdf-b40d-4534-a93e-14d0cd31d27e,Dataverse for PAD -Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,POWERAUTOMATE_DESKTOP_FOR_WIN,2d589a15-b171-4e61-9b5f-31d15eeb2872,PAD for Windows -Windows 365 Business 1 vCPU 2 GB 64 GB,CPC_B_1C_2RAM_64GB,816eacd3-e1e3-46b3-83c8-1ffd37e053d9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Business 1 vCPU 2 GB 64 GB,CPC_B_1C_2RAM_64GB,816eacd3-e1e3-46b3-83c8-1ffd37e053d9,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Windows 365 Business 1 vCPU 2 GB 64 GB,CPC_B_1C_2RAM_64GB,816eacd3-e1e3-46b3-83c8-1ffd37e053d9,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Windows 365 Business 1 vCPU 2 GB 64 GB,CPC_B_1C_2RAM_64GB,816eacd3-e1e3-46b3-83c8-1ffd37e053d9,CPC_B_1C_2RAM_64GB,3b98b912-1720-4a1e-9630-c9a41dbb61d8,Windows 365 Business 1 vCPU 2 GB 64 GB -Windows 365 Business 2 vCPU 4 GB 128 GB,CPC_B_2C_4RAM_128GB,135bee78-485b-4181-ad6e-40286e311850,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Business 2 vCPU 4 GB 128 GB,CPC_B_2C_4RAM_128GB,135bee78-485b-4181-ad6e-40286e311850,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Windows 365 Business 2 vCPU 4 GB 128 GB,CPC_B_2C_4RAM_128GB,135bee78-485b-4181-ad6e-40286e311850,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Windows 365 Business 2 vCPU 4 GB 128 GB,CPC_B_2C_4RAM_128GB,135bee78-485b-4181-ad6e-40286e311850,CPC_B_2C_4RAM_128GB,1a13832e-cd79-497d-be76-24186f55c8b0,Windows 365 Business 2 vCPU 4 GB 128 GB -Windows 365 Business 2 vCPU 4 GB 256 GB,CPC_B_2C_4RAM_256GB,805d57c3-a97d-4c12-a1d0-858ffe5015d0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Business 2 vCPU 4 GB 256 GB,CPC_B_2C_4RAM_256GB,805d57c3-a97d-4c12-a1d0-858ffe5015d0,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Windows 365 Business 2 vCPU 4 GB 256 GB,CPC_B_2C_4RAM_256GB,805d57c3-a97d-4c12-a1d0-858ffe5015d0,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Windows 365 Business 2 vCPU 4 GB 256 GB,CPC_B_2C_4RAM_256GB,805d57c3-a97d-4c12-a1d0-858ffe5015d0,CPC_B_2C_4RAM_256GB,a0b1c075-51c9-4a42-b34c-308f3993bb7e,Windows 365 Business 2 vCPU 4 GB 256 GB -Windows 365 Business 2 vCPU 4 GB 64 GB,CPC_B_2C_4RAM_64GB,42e6818f-8966-444b-b7ac-0027c83fa8b5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Business 2 vCPU 4 GB 64 GB,CPC_B_2C_4RAM_64GB,42e6818f-8966-444b-b7ac-0027c83fa8b5,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Windows 365 Business 2 vCPU 4 GB 64 GB,CPC_B_2C_4RAM_64GB,42e6818f-8966-444b-b7ac-0027c83fa8b5,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Windows 365 Business 2 vCPU 4 GB 64 GB,CPC_B_2C_4RAM_64GB,42e6818f-8966-444b-b7ac-0027c83fa8b5,CPC_B_2C_4RAM_64GB,a790cd6e-a153-4461-83c7-e127037830b6,Windows 365 Business 2 vCPU 4 GB 64 GB -Windows 365 Business 2 vCPU 8 GB 128 GB,CPC_B_2C_8RAM_128GB,71f21848-f89b-4aaa-a2dc-780c8e8aac5b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Business 2 vCPU 8 GB 128 GB,CPC_B_2C_8RAM_128GB,71f21848-f89b-4aaa-a2dc-780c8e8aac5b,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Windows 365 Business 2 vCPU 8 GB 128 GB,CPC_B_2C_8RAM_128GB,71f21848-f89b-4aaa-a2dc-780c8e8aac5b,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Windows 365 Business 2 vCPU 8 GB 128 GB,CPC_B_2C_8RAM_128GB,71f21848-f89b-4aaa-a2dc-780c8e8aac5b,CPC_SS_2,9d2eed2c-b0c0-4a89-940c-bc303444a41b,"Windows 365 Business 2 vCPU, 8 GB, 128 GB" -Windows 365 Business 2 vCPU 8 GB 256 GB,CPC_B_2C_8RAM_256GB,750d9542-a2f8-41c7-8c81-311352173432,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Business 2 vCPU 8 GB 256 GB,CPC_B_2C_8RAM_256GB,750d9542-a2f8-41c7-8c81-311352173432,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Windows 365 Business 2 vCPU 8 GB 256 GB,CPC_B_2C_8RAM_256GB,750d9542-a2f8-41c7-8c81-311352173432,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Windows 365 Business 2 vCPU 8 GB 256 GB,CPC_B_2C_8RAM_256GB,750d9542-a2f8-41c7-8c81-311352173432,CPC_B_2C_8RAM_256GB,1a3ef005-2ef6-434b-8be1-faa56c892854,Windows 365 Business 2 vCPU 8 GB 256 GB -Windows 365 Business 4 vCPU 16 GB 128 GB,CPC_B_4C_16RAM_128GB,ad83ac17-4a5a-4ebb-adb2-079fb277e8b9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Business 4 vCPU 16 GB 128 GB,CPC_B_4C_16RAM_128GB,ad83ac17-4a5a-4ebb-adb2-079fb277e8b9,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Windows 365 Business 4 vCPU 16 GB 128 GB,CPC_B_4C_16RAM_128GB,ad83ac17-4a5a-4ebb-adb2-079fb277e8b9,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Windows 365 Business 4 vCPU 16 GB 128 GB,CPC_B_4C_16RAM_128GB,ad83ac17-4a5a-4ebb-adb2-079fb277e8b9,CPC_B_4C_16RAM_128GB,1d4f75d3-a19b-49aa-88cb-f1ea1690b550,Windows 365 Business 4 vCPU 16 GB 128 GB -Windows 365 Business 4 vCPU 16 GB 128 GB (with Windows Hybrid Benefit),CPC_B_4C_16RAM_128GB_WHB,439ac253-bfbc-49c7-acc0-6b951407b5ef,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Business 4 vCPU 16 GB 128 GB (with Windows Hybrid Benefit),CPC_B_4C_16RAM_128GB_WHB,439ac253-bfbc-49c7-acc0-6b951407b5ef,CPC_B_4C_16RAM_128GB,1d4f75d3-a19b-49aa-88cb-f1ea1690b550,Windows 365 Business 4 vCPU 16 GB 128 GB -Windows 365 Business 4 vCPU 16 GB 256 GB,CPC_B_4C_16RAM_256GB,b3891a9f-c7d9-463c-a2ec-0b2321bda6f9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Business 4 vCPU 16 GB 256 GB,CPC_B_4C_16RAM_256GB,b3891a9f-c7d9-463c-a2ec-0b2321bda6f9,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Windows 365 Business 4 vCPU 16 GB 256 GB,CPC_B_4C_16RAM_256GB,b3891a9f-c7d9-463c-a2ec-0b2321bda6f9,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Windows 365 Business 4 vCPU 16 GB 256 GB,CPC_B_4C_16RAM_256GB,b3891a9f-c7d9-463c-a2ec-0b2321bda6f9,CPC_B_4C_16RAM_256GB,30f6e561-8805-41d0-80ce-f82698b72d7d,Windows 365 Business 4 vCPU 16 GB 256 GB -Windows 365 Business 4 vCPU 16 GB 512 GB,CPC_B_4C_16RAM_512GB,1b3043ad-dfc6-427e-a2c0-5ca7a6c94a2b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Business 4 vCPU 16 GB 512 GB,CPC_B_4C_16RAM_512GB,1b3043ad-dfc6-427e-a2c0-5ca7a6c94a2b,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Windows 365 Business 4 vCPU 16 GB 512 GB,CPC_B_4C_16RAM_512GB,1b3043ad-dfc6-427e-a2c0-5ca7a6c94a2b,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Windows 365 Business 4 vCPU 16 GB 512 GB,CPC_B_4C_16RAM_512GB,1b3043ad-dfc6-427e-a2c0-5ca7a6c94a2b,CPC_B_4C_16RAM_512GB,15499661-b229-4a1f-b0f9-bd5832ef7b3e,Windows 365 Business 4 vCPU 16 GB 512 GB -Windows 365 Business 8 vCPU 32 GB 128 GB,CPC_B_8C_32RAM_128GB,3cb45fab-ae53-4ff6-af40-24c1915ca07b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Business 8 vCPU 32 GB 128 GB,CPC_B_8C_32RAM_128GB,3cb45fab-ae53-4ff6-af40-24c1915ca07b,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Windows 365 Business 8 vCPU 32 GB 128 GB,CPC_B_8C_32RAM_128GB,3cb45fab-ae53-4ff6-af40-24c1915ca07b,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Windows 365 Business 8 vCPU 32 GB 128 GB,CPC_B_8C_32RAM_128GB,3cb45fab-ae53-4ff6-af40-24c1915ca07b,CPC_B_8C_32RAM_128GB,648005fc-b330-4bd9-8af6-771f28958ac0,Windows 365 Business 8 vCPU 32 GB 128 GB -Windows 365 Business 8 vCPU 32 GB 256 GB,CPC_B_8C_32RAM_256GB,fbc79df2-da01-4c17-8d88-17f8c9493d8f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Business 8 vCPU 32 GB 256 GB,CPC_B_8C_32RAM_256GB,fbc79df2-da01-4c17-8d88-17f8c9493d8f,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Windows 365 Business 8 vCPU 32 GB 256 GB,CPC_B_8C_32RAM_256GB,fbc79df2-da01-4c17-8d88-17f8c9493d8f,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Windows 365 Business 8 vCPU 32 GB 256 GB,CPC_B_8C_32RAM_256GB,fbc79df2-da01-4c17-8d88-17f8c9493d8f,CPC_B_8C_32RAM_256GB,d7a5113a-0276-4dc2-94f8-ca9f2c5ae078,Windows 365 Business 8 vCPU 32 GB 256 GB -Windows 365 Business 8 vCPU 32 GB 512 GB,CPC_B_8C_32RAM_512GB,8ee402cd-e6a8-4b67-a411-54d1f37a2049,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Business 8 vCPU 32 GB 512 GB,CPC_B_8C_32RAM_512GB,8ee402cd-e6a8-4b67-a411-54d1f37a2049,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -Windows 365 Business 8 vCPU 32 GB 512 GB,CPC_B_8C_32RAM_512GB,8ee402cd-e6a8-4b67-a411-54d1f37a2049,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Windows 365 Business 8 vCPU 32 GB 512 GB,CPC_B_8C_32RAM_512GB,8ee402cd-e6a8-4b67-a411-54d1f37a2049,CPC_B_8C_32RAM_512GB,4229a0b4-7f34-4835-b068-6dc8d10be57c,Windows 365 Business 8 vCPU 32 GB 512 GB -"Windows 365 Business 16 vCPU, 64 GB, 512 GB","Windows_365_Business_16_vCPU,_64_GB,_512_GB",93d9955a-ec70-44d5-8faa-a194492390f7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -"Windows 365 Business 16 vCPU, 64 GB, 512 GB","Windows_365_Business_16_vCPU,_64_GB,_512_GB",93d9955a-ec70-44d5-8faa-a194492390f7,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -"Windows 365 Business 16 vCPU, 64 GB, 512 GB","Windows_365_Business_16_vCPU,_64_GB,_512_GB",93d9955a-ec70-44d5-8faa-a194492390f7,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -"Windows 365 Business 16 vCPU, 64 GB, 512 GB","Windows_365_Business_16_vCPU,_64_GB,_512_GB",93d9955a-ec70-44d5-8faa-a194492390f7,CPC_B_16C_64GB_512GB,cbbedc49-52d5-4fd6-82ac-a5bc51634dc3,"Windows 365 Business 16 vCPU, 64 GB, 512 GB" -"Windows 365 Business 16 vCPU, 64 GB, 1 TB","Windows_365_Business_16_vCPU,_64_GB,_1_TB",24be3cd7-82ca-41a5-94a7-4903373cdcae,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -"Windows 365 Business 16 vCPU, 64 GB, 1 TB","Windows_365_Business_16_vCPU,_64_GB,_1_TB",24be3cd7-82ca-41a5-94a7-4903373cdcae,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) -"Windows 365 Business 16 vCPU, 64 GB, 1 TB","Windows_365_Business_16_vCPU,_64_GB,_1_TB",24be3cd7-82ca-41a5-94a7-4903373cdcae,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -"Windows 365 Business 16 vCPU, 64 GB, 1 TB","Windows_365_Business_16_vCPU,_64_GB,_1_TB",24be3cd7-82ca-41a5-94a7-4903373cdcae,CPC_B_16C_64GB_1TB,37c961db-2cfd-4e13-b81e-b0059ce10e34,"Windows 365 Business 16 vCPU, 64 GB, 1 TB" -Windows 365 Enterprise 1 vCPU 2 GB 64 GB,CPC_E_1C_2GB_64GB,0c278af4-c9c1-45de-9f4b-cd929e747a2c,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Enterprise 1 vCPU 2 GB 64 GB,CPC_E_1C_2GB_64GB,0c278af4-c9c1-45de-9f4b-cd929e747a2c,CPC_E_1C_2GB_64GB,86d70dbb-d4c6-4662-ba17-3014204cbb28,Windows 365 Enterprise 1 vCPU 2 GB 64 GB -Windows 365 Enterprise 2 vCPU 4 GB 64 GB,CPC_E_2C_4GB_64GB,7bb14422-3b90-4389-a7be-f1b745fc037f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Enterprise 2 vCPU 4 GB 64 GB,CPC_E_2C_4GB_64GB,7bb14422-3b90-4389-a7be-f1b745fc037f,CPC_E_2C_4GB_64GB,23a25099-1b2f-4e07-84bd-b84606109438,Windows 365 Enterprise 2 vCPU 4 GB 64 GB -Windows 365 Enterprise 2 vCPU 4 GB 128 GB,CPC_E_2C_4GB_128GB,226ca751-f0a4-4232-9be5-73c02a92555e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Enterprise 2 vCPU 4 GB 128 GB,CPC_E_2C_4GB_128GB,226ca751-f0a4-4232-9be5-73c02a92555e,CPC_1,545e3611-3af8-49a5-9a0a-b7867968f4b0,Windows 365 Enterprise 2 vCPU 4 GB 128 GB -Windows 365 Enterprise 2 vCPU 4 GB 128 GB (Preview),CPC_LVL_1,bce09f38-1800-4a51-8d50-5486380ba84a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Enterprise 2 vCPU 4 GB 128 GB (Preview),CPC_LVL_1,bce09f38-1800-4a51-8d50-5486380ba84a,CPC_1,545e3611-3af8-49a5-9a0a-b7867968f4b0,Windows 365 Enterprise 2 vCPU 4 GB 128 GB -Windows 365 Enterprise 2 vCPU 4 GB 256 GB,CPC_E_2C_4GB_256GB,5265a84e-8def-4fa2-ab4b-5dc278df5025,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Enterprise 2 vCPU 4 GB 256 GB,CPC_E_2C_4GB_256GB,5265a84e-8def-4fa2-ab4b-5dc278df5025,CPC_E_2C_4GB_256GB,0d143570-9b92-4f57-adb5-e4efcd23b3bb,Windows 365 Enterprise 2 vCPU 4 GB 256 GB -Windows 365 Enterprise 2 vCPU 8 GB 128 GB,CPC_E_2C_8GB_128GB,e2aebe6c-897d-480f-9d62-fff1381581f7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Enterprise 2 vCPU 8 GB 128 GB,CPC_E_2C_8GB_128GB,e2aebe6c-897d-480f-9d62-fff1381581f7,CPC_2,3efff3fe-528a-4fc5-b1ba-845802cc764f,Windows 365 Enterprise 2 vCPU 8 GB 128 GB -Windows 365 Enterprise 2 vCPU 8 GB 128 GB (Preview),CPC_LVL_2,461cb62c-6db7-41aa-bf3c-ce78236cdb9e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Enterprise 2 vCPU 8 GB 128 GB (Preview),CPC_LVL_2,461cb62c-6db7-41aa-bf3c-ce78236cdb9e,CPC_2,3efff3fe-528a-4fc5-b1ba-845802cc764f,Windows 365 Enterprise 2 vCPU 8 GB 128 GB -Windows 365 Enterprise 2 vCPU 8 GB 256 GB,CPC_E_2C_8GB_256GB,1c79494f-e170-431f-a409-428f6053fa35,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Enterprise 2 vCPU 8 GB 256 GB,CPC_E_2C_8GB_256GB,1c79494f-e170-431f-a409-428f6053fa35,CPC_E_2C_8GB_256GB,d3468c8c-3545-4f44-a32f-b465934d2498,Windows 365 Enterprise 2 vCPU 8 GB 256 GB -Windows 365 Enterprise 4 vCPU 16 GB 128 GB,CPC_E_4C_16GB_128GB,d201f153-d3b2-4057-be2f-fe25c8983e6f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Enterprise 4 vCPU 16 GB 128 GB,CPC_E_4C_16GB_128GB,d201f153-d3b2-4057-be2f-fe25c8983e6f,CPC_E_4C_16GB_128GB,2de9c682-ca3f-4f2b-b360-dfc4775db133,Windows 365 Enterprise 4 vCPU 16 GB 128 GB -Windows 365 Enterprise 4 vCPU 16 GB 256 GB,CPC_E_4C_16GB_256GB,96d2951e-cb42-4481-9d6d-cad3baac177e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Enterprise 4 vCPU 16 GB 256 GB,CPC_E_4C_16GB_256GB,96d2951e-cb42-4481-9d6d-cad3baac177e,CPC_E_4C_16GB_256GB,9ecf691d-8b82-46cb-b254-cd061b2c02fb,Windows 365 Enterprise 4 vCPU 16 GB 256 GB -Windows 365 Enterprise 4 vCPU 16 GB 256 GB (Preview),CPC_LVL_3,bbb4bf6e-3e12-4343-84a1-54d160c00f40,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Enterprise 4 vCPU 16 GB 256 GB (Preview),CPC_LVL_3,bbb4bf6e-3e12-4343-84a1-54d160c00f40,CPC_E_4C_16GB_256GB,9ecf691d-8b82-46cb-b254-cd061b2c02fb,Windows 365 Enterprise 4 vCPU 16 GB 256 GB -Windows 365 Enterprise 4 vCPU 16 GB 512 GB,CPC_E_4C_16GB_512GB,0da63026-e422-4390-89e8-b14520d7e699,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Enterprise 4 vCPU 16 GB 512 GB,CPC_E_4C_16GB_512GB,0da63026-e422-4390-89e8-b14520d7e699,CPC_E_4C_16GB_512GB,3bba9856-7cf2-4396-904a-00de74fba3a4,Windows 365 Enterprise 4 vCPU 16 GB 512 GB -Windows 365 Enterprise 8 vCPU 32 GB 128 GB,CPC_E_8C_32GB_128GB,c97d00e4-0c4c-4ec2-a016-9448c65de986,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Enterprise 8 vCPU 32 GB 128 GB,CPC_E_8C_32GB_128GB,c97d00e4-0c4c-4ec2-a016-9448c65de986,CPC_E_8C_32GB_128GB,2f3cdb12-bcde-4e37-8529-e9e09ec09e23,Windows 365 Enterprise 8 vCPU 32 GB 128 GB -Windows 365 Enterprise 8 vCPU 32 GB 256 GB,CPC_E_8C_32GB_256GB,7818ca3e-73c8-4e49-bc34-1276a2d27918,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Enterprise 8 vCPU 32 GB 256 GB,CPC_E_8C_32GB_256GB,7818ca3e-73c8-4e49-bc34-1276a2d27918,CPC_E_8C_32GB_256GB,69dc175c-dcff-4757-8389-d19e76acb45d,Windows 365 Enterprise 8 vCPU 32 GB 256 GB -Windows 365 Enterprise 8 vCPU 32 GB 512 GB,CPC_E_8C_32GB_512GB,9fb0ba5f-4825-4e84-b239-5167a3a5d4dc,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 365 Enterprise 8 vCPU 32 GB 512 GB,CPC_E_8C_32GB_512GB,9fb0ba5f-4825-4e84-b239-5167a3a5d4dc,CPC_E_8C_32GB_512GB,0e837228-8250-4047-8a80-d4a34ba11658,Windows 365 Enterprise 8 vCPU 32 GB 512 GB -Windows 365 Shared Use 2 vCPU 4 GB 64 GB,Windows_365_S_2vCPU_4GB_64GB,1f9990ca-45d9-4c8d-8d04-a79241924ce1,CPC_S_2C_4GB_64GB,64981bdb-a5a6-4a22-869f-a9455366d5bc,Windows 365 Shared Use 2 vCPU 4 GB 64 GB -Windows 365 Shared Use 2 vCPU 4 GB 128 GB,Windows_365_S_2vCPU_4GB_128GB,90369797-7141-4e75-8f5e-d13f4b6092c1,CPC_S_2C_4GB_128GB,51855c77-4d2e-4736-be67-6dca605f2b57,Windows 365 Shared Use 2 vCPU 4 GB 128 GB -Windows 365 Shared Use 2 vCPU 4 GB 256 GB,Windows_365_S_2vCPU_4GB_256GB,8fe96593-34d3-49bb-aeee-fb794fed0800,CPC_S_2C_4GB_256GB,aa8fbe7b-695c-4c05-8d45-d1dddf6f7616,Windows 365 Shared Use 2 vCPU 4 GB 256 GB -Windows 365 Shared Use 2 vCPU 8 GB 128 GB,Windows_365_S_2vCPU_8GB_128GB,2d21fc84-b918-491e-ad84-e24d61ccec94,CPC_S_2C_8GB_128GB,057efbfe-a95d-4263-acb0-12b4a31fed8d,Windows 365 Shared Use 2 vCPU 8 GB 128 GB -Windows 365 Shared Use 2 vCPU 8 GB 256 GB,Windows_365_S_2vCPU_8GB_256GB,2eaa4058-403e-4434-9da9-ea693f5d96dc,CPC_S_2C_8GB_256GB,50ef7026-6174-40ba-bff7-f0e4fcddbf65,Windows 365 Shared Use 2 vCPU 8 GB 256 GB -Windows 365 Shared Use 4 vCPU 16 GB 128 GB,Windows_365_S_4vCPU_16GB_128GB,1bf40e76-4065-4530-ac37-f1513f362f50,CPC_S_4C_16GB_128GB,dd3801e2-4aa1-4b16-a44b-243e55497584,Windows 365 Shared Use 4 vCPU 16 GB 128 GB -Windows 365 Shared Use 4 vCPU 16 GB 256 GB,Windows_365_S_4vCPU_16GB_256GB,a9d1e0df-df6f-48df-9386-76a832119cca,CPC_S_4C_16GB_256GB,2d1d344e-d10c-41bb-953b-b3a47521dca0,Windows 365 Shared Use 4 vCPU 16 GB 256 GB -Windows 365 Shared Use 4 vCPU 16 GB 512 GB,Windows_365_S_4vCPU_16GB_512GB,469af4da-121c-4529-8c85-9467bbebaa4b,CPC_S_4C_16GB_512GB,48b82071-99a5-4214-b493-406a637bd68d,Windows 365 Shared Use 4 vCPU 16 GB 512 GB -Windows 365 Shared Use 8 vCPU 32 GB 128 GB,Windows_365_S_8vCPU_32GB_128GB,f319c63a-61a9-42b7-b786-5695bc7edbaf,CPC_S_8C_32GB_128GB,e4dee41f-a5c5-457d-b7d3-c309986fdbb2,Windows 365 Shared Use 8 vCPU 32 GB 128 GB -Windows 365 Shared Use 8 vCPU 32 GB 256 GB,Windows_365_S_8vCPU_32GB_256GB,fb019e88-26a0-4218-bd61-7767d109ac26,CPC_S_8C_32GB_256GB,1e2321a0-f81c-4d43-a0d5-9895125706b8,Windows 365 Shared Use 8 vCPU 32 GB 256 GB -Windows 365 Shared Use 8 vCPU 32 GB 512 GB,Windows_365_S_8vCPU_32GB_512GB,f4dc1de8-8c94-4d37-af8a-1fca6675590a,CPC_S_8C_32GB_512GB,fa0b4021-0f60-4d95-bf68-95036285282a,Windows 365 Shared Use 8 vCPU 32 GB 512 GB -Windows Store for Business,WINDOWS_STORE,6470687e-a428-4b7a-bef2-8a291ad947c9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -Windows Store for Business,WINDOWS_STORE,6470687e-a428-4b7a-bef2-8a291ad947c9,WINDOWS_STORE,a420f25f-a7b3-4ff5-a9d0-5d58f73b537d,WINDOWS STORE SERVICE -Windows Store for Business EDU Faculty,WSFB_EDU_FACULTY,c7e9d9e6-1981-4bf3-bb50-a5bdfaa06fb2,Windows Store for Business EDU Store_faculty,aaa2cd24-5519-450f-a1a0-160750710ca1,Windows Store for Business EDU Store_faculty -Microsoft Workplace Analytics,WORKPLACE_ANALYTICS,3d957427-ecdc-4df2-aacd-01cc9d519da8,WORKPLACE_ANALYTICS,f477b0f0-3bb1-4890-940c-40fcee6ce05f,Microsoft Workplace Analytics -Microsoft Workplace Analytics,WORKPLACE_ANALYTICS,3d957427-ecdc-4df2-aacd-01cc9d519da8,WORKPLACE_ANALYTICS_INSIGHTS_BACKEND,ff7b261f-d98b-415b-827c-42a3fdf015af,Microsoft Workplace Analytics Insights Backend -Microsoft Workplace Analytics,WORKPLACE_ANALYTICS,3d957427-ecdc-4df2-aacd-01cc9d519da8,WORKPLACE_ANALYTICS_INSIGHTS_USER,b622badb-1b45-48d5-920f-4b27a2c0996c,Microsoft Workplace Analytics Insights User -Workload Identities Premium,Workload_Identities_Premium_CN,73fa80b5-689f-4db9-bbe4-bd414bc41e44,AAD_WRKLDID_P1,84c289f0-efcb-486f-8581-07f44fc9efad,Azure Active Directory workload identities P1 -Workload Identities Premium,Workload_Identities_Premium_CN,73fa80b5-689f-4db9-bbe4-bd414bc41e44,AAD_WRKLDID_P2,7dc0e92d-bf15-401d-907e-0884efe7c760,Azure Active Directory workload identities P2 diff --git a/Modules/CIPPCore/Public/CustomData/Invoke-CustomDataSync.ps1 b/Modules/CIPPCore/Public/CustomData/Invoke-CustomDataSync.ps1 index 27d77acb5c87..f49792e6b003 100644 --- a/Modules/CIPPCore/Public/CustomData/Invoke-CustomDataSync.ps1 +++ b/Modules/CIPPCore/Public/CustomData/Invoke-CustomDataSync.ps1 @@ -12,7 +12,7 @@ function Invoke-CustomDataSync { } Write-Information "Found $($Mappings.Count) Custom Data mappings" - $Mappings = $Mappings | Where-Object { $_.sourceType.value -eq 'extensionSync' -and $_.tenantFilter.value -contains $TenantFilter -or $_.tenantFilter.value -contains 'AllTenants' } + $Mappings = $Mappings | Where-Object { ($_.sourceType.value -eq 'reportingDb' -or $_.sourceType.value -eq 'extensionSync') -and ($_.tenantFilter.value -contains $TenantFilter -or $_.tenantFilter.value -contains 'AllTenants') } if ($Mappings.Count -eq 0) { Write-Warning "No Custom Data mappings found for tenant $TenantFilter" @@ -20,7 +20,7 @@ function Invoke-CustomDataSync { } Write-Information "Getting cached data for tenant $TenantFilter" - $Cache = Get-ExtensionCacheData -TenantFilter $TenantFilter + $Cache = Get-CippExtensionReportingData -TenantFilter $TenantFilter -IncludeMailboxes $BulkRequests = [System.Collections.Generic.List[object]]::new() $DirectoryObjectQueries = [System.Collections.Generic.List[object]]::new() $SyncConfigs = foreach ($Mapping in $Mappings) { @@ -67,7 +67,7 @@ function Invoke-CustomDataSync { continue } $SourceMatchProperty = $SyncConfig.DatasetConfig.sourceMatchProperty - $DestinationMatchProperty = $SyncConfigs.DatasetConfig.destinationMatchProperty + $DestinationMatchProperty = $SyncConfig.DatasetConfig.destinationMatchProperty $CustomDataAttribute = $SyncConfig.CustomDataAttribute $ExtensionSyncProperty = $SyncConfig.ExtensionSyncProperty $DatasetConfig = $SyncConfig.DatasetConfig diff --git a/Modules/CIPPCore/Public/DeltaQueries/Get-DeltaQueryResults.ps1 b/Modules/CIPPCore/Public/DeltaQueries/Get-DeltaQueryResults.ps1 new file mode 100644 index 000000000000..0b76e0f51165 --- /dev/null +++ b/Modules/CIPPCore/Public/DeltaQueries/Get-DeltaQueryResults.ps1 @@ -0,0 +1,30 @@ +function Get-DeltaQueryResults { + <# + .SYNOPSIS + Retrieves results for Delta Queries + .DESCRIPTION + This helper function modifies the results from Delta Query triggers based on specified properties. + .PARAMETER Data + The data containing Delta Query results. Use %triggerdata% from the scheduler to pass in the data. + .PARAMETER Properties + A comma-separated list of properties to include in the output. If not specified, all properties are returned. + #> + + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + $Data, + [string]$Properties, + [string]$TenantFilter, + $Headers + ) + + $Properties = $Properties -split ',' | ForEach-Object { $_.Trim() } + if (!$Properties -or $Properties.Count -eq 0) { + Write-Information 'No specific properties requested, returning all data.' + Write-Information ($Data | ConvertTo-Json -Depth 10) + return $Data + } + + $Data = $Data | Select-Object -Property $Properties +} diff --git a/Modules/CIPPCore/Public/DeltaQueries/Get-DeltaQueryUrl.ps1 b/Modules/CIPPCore/Public/DeltaQueries/Get-DeltaQueryUrl.ps1 new file mode 100644 index 000000000000..84acde036209 --- /dev/null +++ b/Modules/CIPPCore/Public/DeltaQueries/Get-DeltaQueryUrl.ps1 @@ -0,0 +1,29 @@ +function Get-DeltaQueryUrl { + <# + .SYNOPSIS + Retrieves the URL for Delta Queries + .DESCRIPTION + This helper function constructs the URL for Delta Query requests based on the resource and parameters. + .PARAMETER TenantFilter + The tenant to filter the query on. + .PARAMETER PartitionKey + The partition key for the delta query. + #> + + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + $TenantFilter, + [Parameter(Mandatory = $true)] + $PartitionKey + ) + + $Table = Get-CIPPTable -TableName 'DeltaQueries' + $DeltaQueryEntity = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$PartitionKey' and RowKey eq '$TenantFilter'" + + if ($DeltaQueryEntity) { + return $DeltaQueryEntity.DeltaUrl + } else { + throw "Delta Query not found for Tenant '$TenantFilter' and PartitionKey '$PartitionKey'." + } +} \ No newline at end of file diff --git a/Modules/CIPPCore/Public/DeltaQueries/New-GraphDeltaQuery.ps1 b/Modules/CIPPCore/Public/DeltaQueries/New-GraphDeltaQuery.ps1 new file mode 100644 index 000000000000..3ff6452739af --- /dev/null +++ b/Modules/CIPPCore/Public/DeltaQueries/New-GraphDeltaQuery.ps1 @@ -0,0 +1,170 @@ +function New-GraphDeltaQuery { + <# + .SYNOPSIS + Creates a new Graph Delta Query. + .DESCRIPTION + This function creates a new Graph Delta Query to track changes in a specified resource. + Always returns the full response including the deltaLink for future incremental queries. + .PARAMETER Resource + The resource to track changes for (e.g., 'users', 'groups'). + .PARAMETER TenantFilter + The tenant to filter the query on. + .PARAMETER Parameters + Additional query parameters (e.g., $select, $filter, $top). + .PARAMETER DeltaUrl + Use this parameter to continue a delta query with a specific delta or next link. + .FUNCTIONALITY + Internal + #> + [CmdletBinding(DefaultParameterSetName = 'NewDeltaQuery')] + param( + [Parameter(Mandatory = $true, ParameterSetName = 'NewDeltaQuery')] + [Parameter(Mandatory = $true, ParameterSetName = 'DeltaUrl')] + $TenantFilter, + + [Parameter(ParameterSetName = 'NewDeltaQuery', Mandatory = $true)] + [ValidateSet('users', 'groups', 'contacts', 'orgContact', 'devices', 'applications', 'servicePrincipals', 'directoryObjects', 'directoryRole', 'administrativeUnits', 'oAuth2PermissionGrant')] + [string]$Resource, + + [Parameter(ParameterSetName = 'NewDeltaQuery', Mandatory = $false)] + [hashtable]$Parameters = @{}, + + [Parameter(ParameterSetName = 'DeltaUrl', Mandatory = $true)] + [string]$DeltaUrl, + + [Parameter(Mandatory = $false, ParameterSetName = 'NewDeltaQuery')] + [Parameter(Mandatory = $true, ParameterSetName = 'DeltaUrl')] + [string]$PartitionKey + ) + + if ($TenantFilter -eq 'AllTenants' -or $TenantFilter.type -eq 'Group') { + Write-Information 'Creating delta query for all tenants or tenant group.' + if ($TenantFilter.type -eq 'group') { + $Tenants = Expand-CIPPTenantGroups -TenantFilter $TenantFilter + } else { + $Tenants = Get-Tenants -IncludeErrors + } + + if (!$PartitionKey) { + $ParamJson = $Parameters | ConvertTo-Json -Depth 5 -Compress + $PartitionKey = Get-StringHash -String ($Resource + $ParamJson) + } + # Prepare batch processing for all tenants + $TenantBatch = $Tenants | ForEach-Object { + [PSCustomObject]@{ + FunctionName = 'GraphDeltaQuery' + TenantFilter = $_.defaultDomainName ?? $_.value + Resource = $Resource + Parameters = $Parameters + PartitionKey = $PartitionKey + } + } + + $InputObject = @{ + Batch = @($TenantBatch) + OrchestratorName = 'ProcessDeltaQueries' + SkipLog = $true + } + Write-Information "Starting delta query orchestration for $($Tenants.Count) tenants." + Write-Information "Orchestration Input: $($InputObject | ConvertTo-Json -Compress -Depth 5)" + $Orchestration = Start-NewOrchestration -FunctionName CIPPOrchestrator -InputObject ($InputObject | ConvertTo-Json -Compress -Depth 5) + + } else { + $Table = Get-CIPPTable -TableName 'DeltaQueries' + + if ($Parameters -and $Resource) { + $ParamJson = $Parameters | ConvertTo-Json -Depth 5 + $ResourceHash = Get-StringHash -String ($Resource + $ParamJson) + + $DeltaQuery = @{ + PartitionKey = $PartitionKey ?? $ResourceHash + RowKey = $TenantFilter + Resource = $Resource + Parameters = [string]($Parameters | ConvertTo-Json -Depth 5 -Compress) + DeltaUrl = $DeltaUrl + } + } elseif ($PartitionKey) { + $DeltaQuery = Get-AzDataTableEntity @Table -Filter "PartitionKey eq '$PartitionKey' and RowKey eq '$TenantFilter'" + } + + try { + if ($DeltaUrl) { + $GraphQuery = [System.UriBuilder]$DeltaUrl + } else { + $GraphQuery = [System.UriBuilder]('https://graph.microsoft.com/beta/{0}/delta' -f $Resource) + $QueryParams = @{ + '$deltaToken' = 'latest' + } + $ParamCollection = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) + + foreach ($key in $QueryParams.Keys) { + if ($QueryParams[$key]) { + $ParamCollection.Add($key, $QueryParams[$key]) + } + } + + foreach ($Item in ($Parameters.GetEnumerator() | Sort-Object -CaseSensitive -Property Key)) { + if ($Item.Value -is [System.Boolean]) { + $Item.Value = $Item.Value.ToString().ToLower() + } + if ($Item.Value) { + $ParamCollection.Add($Item.Key, $Item.Value) + } + } + $GraphQuery.Query = $ParamCollection.ToString() + } + + $allResults = [System.Collections.ArrayList]::new() + $nextUrl = $GraphQuery.ToString() + $deltaLink = $null + + $DeltaError = $false + do { + try { + $response = New-GraphGetRequest -tenantid $TenantFilter -uri $nextUrl -ReturnRawResponse -extraHeaders @{ Prefer = 'return=minimal' } -ErrorAction Stop + if ($response.Content) { + $content = $response.Content + if ($content -is [string]) { + $content = $content | ConvertFrom-Json + } + + # Add results from this page + if ($content.value) { + $allResults.AddRange($content.value) + } + + # Check for next page or delta link + $nextUrl = $content.'@odata.nextLink' + $deltaLink = $content.'@odata.deltaLink' + } + } catch { + Write-Error "Error during Graph Delta Query request for tenant '$TenantFilter': $(Get-NormalizedError -Message $_.Exception.message)" + $DeltaError = $true + } + } while ($nextUrl -and -not $deltaLink -and -not $DeltaError) + + if ($DeltaError) { + throw "Delta Query failed for tenant '$TenantFilter'." + } + $DeltaQuery.RowKey = $TenantFilter + $DeltaQuery.DeltaUrl = $deltaLink + + # Return results with delta link for future queries + $result = @{ + value = $allResults.ToArray() + '@odata.deltaLink' = $deltaLink + PartitionKey = $PartitionKey + } + # Save link to table + Add-CIPPAzDataTableEntity @Table -Entity $DeltaQuery -Force + + Write-Information "Delta Query created for $($DeltaQuery.Resource). Total items: $($allResults.Count)" + + # Always return full response with deltaLink + return $result + } catch { + Write-Error "Failed to create Delta Query: $(Get-NormalizedError -Message $_.Exception.message)" + Write-Warning $_.InvocationInfo.PositionMessage + } + } +} diff --git a/Modules/CIPPCore/Public/DeltaQueries/Push-GraphDeltaQuery.ps1 b/Modules/CIPPCore/Public/DeltaQueries/Push-GraphDeltaQuery.ps1 new file mode 100644 index 000000000000..67e503543e7f --- /dev/null +++ b/Modules/CIPPCore/Public/DeltaQueries/Push-GraphDeltaQuery.ps1 @@ -0,0 +1,19 @@ +function Push-GraphDeltaQuery { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + $Item + ) + + $Item = $Item | Select-Object -ExcludeProperty FunctionName | ConvertTo-Json -Depth 5 | ConvertFrom-Json -AsHashtable + try { + New-GraphDeltaQuery @Item + } catch { + Write-Error "Failed to create Delta Query: $(Get-NormalizedError -Message $_.Exception.message)" + Write-Warning $_.InvocationInfo.PositionMessage + } + +} \ No newline at end of file diff --git a/Modules/CIPPCore/Public/DeltaQueries/Test-DeltaQueryConditions.ps1 b/Modules/CIPPCore/Public/DeltaQueries/Test-DeltaQueryConditions.ps1 new file mode 100644 index 000000000000..a510320b160a --- /dev/null +++ b/Modules/CIPPCore/Public/DeltaQueries/Test-DeltaQueryConditions.ps1 @@ -0,0 +1,173 @@ +function Test-DeltaQueryConditions { + <# + .SYNOPSIS + Tests if the conditions for a Delta Query trigger are met. + .DESCRIPTION + This function evaluates whether the specified conditions for a Delta Query trigger are satisfied based on the provided data. + .PARAMETER Query + The result of the delta query to evaluate. + .PARAMETER Trigger + The trigger configuration containing conditions to test against. + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + $Query, + [Parameter(Mandatory = $true)] + $Trigger, + [Parameter(Mandatory = $true)] + $TenantFilter, + [Parameter(Mandatory = $true)] + $LastTrigger + ) + + $ConditionsMet = $false + $MatchedData = @() + + $Data = $Query.value + $EventType = $Trigger.EventType.value ?? $Trigger.EventType + + # Filter data based on delta query change type according to Microsoft Graph specification + switch ($EventType) { + 'deleted' { + Write-Information "data to process for deleted: $($Data | ConvertTo-Json -Depth 5)" + # Removed instances are represented by their id and an @removed object + $Data = $Data | Where-Object { + $_.PSObject.Properties.Name -contains '@removed' -and $_.'@removed'.reason -eq 'changed' + } + + # For directory objects, fetch full details of deleted items + Write-Information 'Fetching full details for deleted directory objects.' + + $Requests = foreach ($item in $Data) { + [PSCustomObject]@{ + 'id' = $item.id + 'url' = "directory/deletedItems/$($item.id)" + 'method' = 'GET' + } + } + try { + $DeletedItems = New-GraphBulkRequest -Requests @($Requests) -tenantid $TenantFilter + if ($DeletedItems.status -eq 200) { + Write-Information 'Retrieved full details for deleted items.' + Write-Information "Deleted items response: $($DeletedItems | ConvertTo-Json -Depth 5)" + $EnrichedData = [System.Collections.Generic.List[object]]::new() + foreach ($Row in $Data) { + $fullItem = ($DeletedItems | Where-Object { $_.id -eq $Row.id -and $_.status -eq 200 }).body + if ($fullItem) { + $EnrichedData.Add($fullItem) + } else { + $EnrichedData.Add($Row) + } + } + $Data = $EnrichedData + } + } catch { + Write-Warning "Failed to retrieve full details for deleted items: $($_.Exception.Message)" + } + + Write-Information "Found $($Data.Count) deleted items." + } + 'created' { + # Newly created instances use standard representation without @removed + # These will have their full standard representation, not minimal response + $Data = $Data | Where-Object { $_.createdDateTime -ge $LastTrigger } + Write-Information "Found $($Data.Count) created items." + } + 'updated' { + # Updated instances have at least updated properties but no @removed object + $Data = $Data | Where-Object { + $_.PSObject.Properties.Name -notcontains '@removed' -and + (!$_.createdDateTime -or $_.createdDateTime -lt $LastTrigger) + } + Write-Information "Found $($Data.Count) updated items." + } + } + + # Check if we have any data after event type filtering + if (($Data | Measure-Object).Count -eq 0) { + Write-Information "No data matches the event type filter '$EventType'. Conditions not met." + return @{ + ConditionsMet = $false + MatchedData = @() + TotalItems = ($Query.value | Measure-Object).Count + FilteredItems = 0 + MatchedItems = 0 + EventTypeFilter = $EventType + ChangeTypeSummary = @() + } + } + + if ($Trigger.UseConditions -eq $true -and $Trigger.Conditions) { + try { + # Parse conditions from JSON (similar to audit log processing) + $conditions = $Trigger.Conditions | ConvertFrom-Json | Where-Object { $_.Input.value -ne '' -and $_.Input.value -ne $null } + + if ($conditions) { + # Initialize collections for condition strings + $conditionStrings = [System.Collections.Generic.List[string]]::new() + $CIPPClause = [System.Collections.Generic.List[string]]::new() + + foreach ($condition in $conditions) { + # Handle array vs single values + $value = if ($condition.Input.value -is [array]) { + $arrayAsString = $condition.Input.value | ForEach-Object { + "'$_'" + } + "@($($arrayAsString -join ', '))" + } else { + "'$($condition.Input.value)'" + } + + # Build PowerShell condition string + $conditionStrings.Add("`$(`$_.$($condition.Property.label)) -$($condition.Operator.value) $value") + $CIPPClause.Add("$($condition.Property.label) is $($condition.Operator.label) $value") + } + + # Join all conditions with AND + $finalCondition = $conditionStrings -join ' -AND ' + + Write-Information "Testing delta query conditions: $finalCondition" + Write-Information "Human readable: $($CIPPClause -join ' and ')" + + # Apply conditions to filter the data using a script block instead of Invoke-Expression + $scriptBlock = [scriptblock]::Create("param(`$_) $finalCondition") + $MatchedData = $Data | Where-Object $scriptBlock + } else { + Write-Information 'No valid conditions found in trigger configuration.' + $MatchedData = $Data + } + } catch { + Write-Warning "Error processing delta query conditions: $($_.Exception.Message)" + Write-Information $_.InvocationInfo.PositionMessage + $MatchedData = @() + } + } else { + # No conditions specified, consider all data as matching + $MatchedData = $Data + } + + # Determine if conditions are met based on final matched data count + $ConditionsMet = ($MatchedData | Measure-Object).Count -gt 0 + + # Return results with matched data and change type summary + $changeTypeSummary = $MatchedData | Group-Object CIPPChangeType | ForEach-Object { + @{ + ChangeType = $_.Name + Count = $_.Count + } + } + + return @{ + ConditionsMet = $ConditionsMet + MatchedData = $MatchedData + TotalItems = ($Query.value | Measure-Object).Count + FilteredItems = ($Data | Measure-Object).Count + MatchedItems = ($MatchedData | Measure-Object).Count + EventTypeFilter = $EventType + ChangeTypeSummary = $changeTypeSummary + } + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Applications/Push-UploadApplication.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Applications/Push-UploadApplication.ps1 index 9abeee5a440e..5aae136f1ba4 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Applications/Push-UploadApplication.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Applications/Push-UploadApplication.ps1 @@ -64,7 +64,7 @@ function Push-UploadApplication { foreach ($tenant in $tenants) { try { - $ApplicationList = (New-GraphGetRequest -Uri $baseuri -tenantid $tenant) | Where-Object { $_.DisplayName -eq $ChocoApp.Applicationname } + $ApplicationList = New-GraphGetRequest -Uri $baseuri -tenantid $tenant | Where-Object { $_.DisplayName -eq $ChocoApp.Applicationname -and ($_.'@odata.type' -eq '#microsoft.graph.win32LobApp' -or $_.'@odata.type' -eq '#microsoft.graph.winGetApp') } if ($ApplicationList.displayname.count -ge 1) { Write-LogMessage -api 'AppUpload' -tenant $tenant -message "$($ChocoApp.Applicationname) exists. Skipping this application" -Sev 'Info' continue diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/BEC/Push-BECRun.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/BEC/Push-BECRun.ps1 index b23079f413bb..f4cc20ab450b 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/BEC/Push-BECRun.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/BEC/Push-BECRun.ps1 @@ -50,7 +50,7 @@ function Push-BECRun { $ExtractResult = 'Successfully extracted logs from auditlog' } Write-Information 'Getting last sign-in' - Try { + try { $URI = "https://graph.microsoft.com/beta/auditLogs/signIns?`$filter=(userId eq '$SuspectUser')&`$top=1&`$orderby=createdDateTime desc" $LastSignIn = New-GraphGetRequest -uri $URI -tenantid $TenantFilter -noPagination $true -verbose | Select-Object @{ Name = 'CreatedDateTime'; Expression = { $(($_.createdDateTime | Out-String) -replace '\r\n') } }, id, @@ -69,7 +69,7 @@ function Push-BECRun { #List all users devices $Bytes = [System.Text.Encoding]::UTF8.GetBytes($SuspectUser) $base64IdentityParam = [Convert]::ToBase64String($Bytes) - Try { + try { $Devices = New-GraphGetRequest -uri "https://outlook.office365.com:443/adminapi/beta/$($TenantFilter)/mailbox('$($base64IdentityParam)')/MobileDevice/Exchange.GetMobileDeviceStatistics()/?IsEncoded=True" -Tenantid $TenantFilter -scope ExchangeOnline } catch { $Devices = $null @@ -143,10 +143,10 @@ function Push-BECRun { Write-Information 'Getting bulk requests' $GraphResults = New-GraphBulkRequest -Requests $Requests -tenantid $TenantFilter -asapp $true - $PasswordChanges = ($GraphResults | Where-Object { $_.id -eq 'Users' }).body.value | Where-Object { $_.lastPasswordChangeDateTime -ge $startDate } - $NewUsers = ($GraphResults | Where-Object { $_.id -eq 'Users' }).body.value | Where-Object { $_.createdDateTime -ge $startDate } - $MFADevices = ($GraphResults | Where-Object { $_.id -eq 'MFADevices' }).body.value - $NewSPs = ($GraphResults | Where-Object { $_.id -eq 'NewSPs' }).body.value + $PasswordChanges = (($GraphResults | Where-Object { $_.id -eq 'Users' }).body.value | Where-Object { $_.lastPasswordChangeDateTime -ge $startDate }) ?? @() + $NewUsers = (($GraphResults | Where-Object { $_.id -eq 'Users' }).body.value | Where-Object { $_.createdDateTime -ge $startDate }) ?? @() + $MFADevices = ($GraphResults | Where-Object { $_.id -eq 'MFADevices' }).body.value ?? @() + $NewSPs = ($GraphResults | Where-Object { $_.id -eq 'NewSPs' }).body.value ?? @() $Results = [PSCustomObject]@{ @@ -157,9 +157,9 @@ function Push-BECRun { NewRules = @($RulesLog) MailboxPermissionChanges = @($PermissionsLog) NewUsers = @($NewUsers) - MFADevices = @($MFADevices) + MFADevices = @($MFADevices | Where-Object { $_.'@odata.type' -ne '#microsoft.graph.passwordAuthenticationMethod' }) ChangedPasswords = @($PasswordChanges) - ExtractedAt = (Get-Date).ToString('s') + ExtractedAt = (Get-Date) ExtractResult = $ExtractResult } diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/BPA/Push-BPACollectData.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/BPA/Push-BPACollectData.ps1 index 8834f1619550..0cc163058e14 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/BPA/Push-BPACollectData.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/BPA/Push-BPACollectData.ps1 @@ -45,9 +45,9 @@ function Push-BPACollectData { uri = $field.URL tenantid = $TenantName.defaultDomainName } - if ($Field.parameters.psobject.properties.name) { + if ($Field.Parameters.PSObject.properties.name) { $field.Parameters | ForEach-Object { - $paramsField[$_.psobject.properties.name] = $_.psobject.properties.value + $paramsField[$_.PSObject.properties.name] = $_.PSObject.properties.value } } $FieldInfo = New-GraphGetRequest @paramsField | Where-Object $filterscript | Select-Object $field.ExtractFields @@ -55,28 +55,28 @@ function Push-BPACollectData { 'Exchange' { Write-Host "Trying to execute $($field.Command) for $($TenantName.displayName) with GUID $($TenantName.customerId)" if ($field.Command -notlike 'get-*') { - Write-LogMessage -API 'BPA' -tenant $tenant -message 'The BPA only supports get- exchange commands. A set or update command was used.' -sev Error + Write-LogMessage -API 'BPA' -tenant $TenantName.defaultDomainName -message 'The BPA only supports get- exchange commands. A set or update command was used.' -sev Error break } else { $paramsField = @{ tenantid = $TenantName.defaultDomainName cmdlet = $field.Command } - if ($Field.Parameters) { $paramsfield.'cmdparams' = $field.parameters } + if ($Field.Parameters) { $paramsField.'cmdParams' = $field.parameters } $FieldInfo = New-ExoRequest @paramsField | Where-Object $filterscript | Select-Object $field.ExtractFields } } 'CIPPFunction' { if ($field.Command -notlike 'get-CIPP*') { - Write-LogMessage -API 'BPA' -tenant $tenant -message 'The BPA only supports get-CIPP commands. A set or update command was used, or a command that is not allowed.' -sev Error + Write-LogMessage -API 'BPA' -tenant $TenantName.defaultDomainName -message 'The BPA only supports get-CIPP commands. A set or update command was used, or a command that is not allowed.' -sev Error break } $paramsField = @{ TenantFilter = $TenantName.defaultDomainName } - if ($field.parameters.psobject.properties.name) { + if ($field.Parameters.PSObject.properties.name) { $field.Parameters | ForEach-Object { - $paramsField[$_.psobject.properties.name] = $_.psobject.properties.value + $paramsField[$_.PSObject.properties.name] = $_.PSObject.properties.value } } $FieldInfo = & $field.Command @paramsField | Where-Object $filterscript | Select-Object $field.ExtractFields @@ -84,15 +84,15 @@ function Push-BPACollectData { } } catch { Write-Information "Error getting $($field.Name) in $($field.api) for $($TenantName.displayName) with GUID $($TenantName.customerId). Error: $($_.Exception.Message)" - Write-LogMessage -API 'BPA' -tenant $tenant -message "Error getting $($field.Name) for $($TenantName.displayName) with GUID $($TenantName.customerId). Error: $($_.Exception.Message)" -sev Error - $fieldinfo = 'FAILED' + Write-LogMessage -API 'BPA' -tenant $TenantName.defaultDomainName -message "Error getting $($field.Name) for $($TenantName.displayName) with GUID $($TenantName.customerId). Error: $($_.Exception.Message)" -sev Error -LogData (Get-CippException -Exception $_) + $FieldInfo = 'FAILED' $field.StoreAs = 'string' } try { switch -Wildcard ($field.StoreAs) { '*bool' { if ($field.ExtractFields.Count -gt 1) { - Write-LogMessage -API 'BPA' -tenant $tenant -message "The BPA only supports 1 field for a bool. $($field.ExtractFields.Count) fields were specified." -sev Error + Write-LogMessage -API 'BPA' -tenant $TenantName.defaultDomainName -message "The BPA only supports 1 field for a bool. $($field.ExtractFields.Count) fields were specified." -sev Error break } if ($null -eq $FieldInfo.$($field.ExtractFields)) { $FieldInfo = $false } @@ -100,7 +100,7 @@ function Push-BPACollectData { $Result.Add($field.Name, [bool]$FieldInfo.$($field.ExtractFields)) } 'JSON' { - if ($FieldInfo -eq $null) { $JsonString = '{}' } else { $JsonString = (ConvertTo-Json -Depth 15 -InputObject $FieldInfo -Compress) } + if ($null -eq $FieldInfo) { $JsonString = '{}' } else { $JsonString = (ConvertTo-Json -Depth 15 -InputObject $FieldInfo -Compress) } Write-Host "Adding $($field.Name) to table with value $JsonString" $Result.Add($field.Name, $JSONString) } @@ -112,7 +112,7 @@ function Push-BPACollectData { } } } catch { - Write-LogMessage -API 'BPA' -tenant $tenant -message "Error storing $($field.Name) for $($TenantName.displayName) with GUID $($TenantName.customerId). Error: $($_.Exception.Message)" -sev Error + Write-LogMessage -API 'BPA' -tenant $TenantName.defaultDomainName -message "Error storing $($field.Name) for $($TenantName.displayName) with GUID $($TenantName.customerId). Error: $($_.Exception.Message)" -sev Error -LogData (Get-CippException -Exception $_) $Result.Add($field.Name, 'FAILED') } @@ -122,7 +122,7 @@ function Push-BPACollectData { try { Add-CIPPAzDataTableEntity @Table -Entity $Result -Force } catch { - Write-LogMessage -API 'BPA' -tenant $tenant -message "Error getting saving data for $($template.Name) - $($TenantName.customerId). Error: $($_.Exception.Message)" -LogData (Get-CippException -Exception $_) -sev Error + Write-LogMessage -API 'BPA' -tenant $TenantName.defaultDomainName -message "Error getting saving data for $($template.Name) - $($TenantName.customerId). Error: $($_.Exception.Message)" -LogData (Get-CippException -Exception $_) -sev Error } } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/CIPPDBCache/Push-ExecCIPPDBCache.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/CIPPDBCache/Push-ExecCIPPDBCache.ps1 new file mode 100644 index 000000000000..a6a68cfc8510 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/CIPPDBCache/Push-ExecCIPPDBCache.ps1 @@ -0,0 +1,41 @@ +function Push-ExecCIPPDBCache { + <# + .SYNOPSIS + Generic wrapper to execute CIPP DB cache functions + + .DESCRIPTION + Executes the specified Set-CIPPDBCache* function with the provided parameters + + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param($Item) + + $Name = $Item.Name + $TenantFilter = $Item.TenantFilter + + try { + Write-Information "Collecting $Name for tenant $TenantFilter" + + # Build the full function name + $FullFunctionName = "Set-CIPPDBCache$Name" + + # Check if function exists + $Function = Get-Command -Name $FullFunctionName -ErrorAction SilentlyContinue + if (-not $Function) { + throw "Function $FullFunctionName does not exist" + } + + # Execute the cache function + & $FullFunctionName -TenantFilter $TenantFilter + + Write-Information "Completed $Name for tenant $TenantFilter" + return "Successfully executed $Name for tenant $TenantFilter" + + } catch { + $ErrorMsg = "Failed to execute $Name for tenant $TenantFilter : $($_.Exception.Message)" + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message $ErrorMsg -sev Error + throw $ErrorMsg + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Domain Analyser/Push-DomainAnalyserDomain.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Domain Analyser/Push-DomainAnalyserDomain.ps1 index 168342bd7701..ed24471113d9 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Domain Analyser/Push-DomainAnalyserDomain.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Domain Analyser/Push-DomainAnalyserDomain.ps1 @@ -83,7 +83,7 @@ function Push-DomainAnalyserDomain { # Setup Score Explanation $ScoreExplanation = [System.Collections.Generic.List[string]]::new() - # Check MX Record + #Region MX Check $MXRecord = Read-MXRecord -Domain $Domain -ErrorAction Stop $Result.ExpectedSPFRecord = $MXRecord.ExpectedInclude @@ -106,8 +106,9 @@ function Push-DomainAnalyserDomain { } else { $Result.MailProvider = $MXRecord.MailProvider.Name } + #EndRegion MX Check - # Get SPF Record + #Region SPF Check try { $SPFRecord = Read-SpfRecord -Domain $Domain -ErrorAction Stop if ($SPFRecord.RecordCount -gt 0) { @@ -126,12 +127,11 @@ function Push-DomainAnalyserDomain { Write-LogMessage -API 'DomainAnalyser' -tenant $DomainObject.TenantId -message $Message -LogData (Get-CippException -Exception $_) -sev Error } - # Check SPF Record - $Result.SPFPassAll = $false # Check warning + fail counts to ensure all tests pass #$SPFWarnCount = $SPFRecord.ValidationWarns | Measure-Object | Select-Object -ExpandProperty Count $SPFFailCount = $SPFRecord.ValidationFails | Measure-Object | Select-Object -ExpandProperty Count + $Result.SPFPassAll = $false if ($SPFFailCount -eq 0) { $ScoreDomain += $Scores.SPFCorrectAll @@ -139,12 +139,13 @@ function Push-DomainAnalyserDomain { } else { $ScoreExplanation.Add('SPF record did not pass validation') | Out-Null } + #EndRegion SPF Check - # Get DMARC Record + #Region DMARC Check try { $DMARCPolicy = Read-DmarcPolicy -Domain $Domain -ErrorAction Stop - If ([string]::IsNullOrEmpty($DMARCPolicy.Record)) { + if ([string]::IsNullOrEmpty($DMARCPolicy.Record)) { $Result.DMARCPresent = $false $ScoreExplanation.Add('No DMARC Records Found') | Out-Null } else { @@ -188,8 +189,9 @@ function Push-DomainAnalyserDomain { Write-LogMessage -API 'DomainAnalyser' -tenant $DomainObject.TenantId -message $Message -LogData (Get-CippException -Exception $_) -sev Error #return $Message } + #EndRegion DMARC Check - # DNS Sec Check + #Region DNS Sec Check try { $DNSSECResult = Test-DNSSEC -Domain $Domain -ErrorAction Stop $DNSSECFailCount = $DNSSECResult.ValidationFails | Measure-Object | Select-Object -ExpandProperty Count @@ -206,8 +208,9 @@ function Push-DomainAnalyserDomain { Write-LogMessage -API 'DomainAnalyser' -tenant $DomainObject.TenantId -message $Message -LogData (Get-CippException -Exception $_) -sev Error #return $Message } + #EndRegion DNS Sec Check - # DKIM Check + #Region DKIM Check try { $DkimParams = @{ Domain = $Domain @@ -241,7 +244,9 @@ function Push-DomainAnalyserDomain { Write-LogMessage -API 'DomainAnalyser' -tenant $DomainObject.TenantId -message $Message -LogData (Get-CippException -Exception $_) -sev Error #return $Message } + #EndRegion DKIM Check + #Region MSCNAME DKIM Records # Get Microsoft DKIM CNAME selector Records # Ugly, but i needed to create a scope/loop i could break out of without breaking the rest of the function foreach ($d in $Domain) { @@ -250,7 +255,7 @@ function Push-DomainAnalyserDomain { if ($Result.DKIMEnabled -eq $true) { continue } - # Test if its a onmicrosft.com domain, skip domain if it is + # Test if its a onmicrosoft.com domain, skip domain if it is if ($Domain -match 'onmicrosoft.com') { continue } @@ -264,28 +269,21 @@ function Push-DomainAnalyserDomain { } } + # Get the DKIM record from EXO. This is the only way to get the correct values for the MSCNAME records since the new format was introduced in May 2025. + $DKIM = (New-ExoRequest -tenantid $Tenant.Tenant -cmdlet 'Get-DkimSigningConfig' -Select 'Domain,Selector1CNAME,Selector2CNAME') | Where-Object { $_.Domain -eq $Domain } - # Compute the DKIM CNAME records from $Tenant.InitialDomainName according to this logic: https://learn.microsoft.com/en-us/defender-office-365/email-authentication-dkim-configure#syntax-for-dkim-cname-records - # Test if it has a - in the domain name - if ($Domain -like '*-*') { - Write-Information 'Domain has a - in it. Got to query EXO for the right values' - $DKIM = (New-ExoRequest -tenantid $Tenant.Tenant -cmdlet 'Get-DkimSigningConfig') | Where-Object { $_.Domain -eq $Domain } | Select-Object Domain, Selector1CNAME, Selector2CNAME - - # If no DKIM signing record is found, create a new disabled one - if ($null -eq $DKIM) { - Write-Information 'No DKIM record found in EXO - Creating new signing' - $NewDKIMSigningRequest = New-ExoRequest -tenantid $Tenant.Tenant -cmdlet 'New-DkimSigningConfig' -cmdParams @{ KeySize = 2048; DomainName = $Domain; Enabled = $false } - $Selector1Value = $NewDKIMSigningRequest.Selector1CNAME - $Selector2Value = $NewDKIMSigningRequest.Selector2CNAME - } else { - $Selector1Value = $DKIM.Selector1CNAME - $Selector2Value = $DKIM.Selector2CNAME - } + # If no DKIM signing record is found, create a new disabled one + if ($null -eq $DKIM) { + Write-Information 'No DKIM record found in EXO - Creating new signing' + $NewDKIMSigningRequest = New-ExoRequest -tenantid $Tenant.Tenant -cmdlet 'New-DkimSigningConfig' -cmdParams @{ KeySize = 2048; DomainName = $Domain; Enabled = $false } + $Selector1Value = $NewDKIMSigningRequest.Selector1CNAME + $Selector2Value = $NewDKIMSigningRequest.Selector2CNAME } else { - $Selector1Value = "selector1-$($Domain -replace '\.', '-' )._domainkey.$($Tenant.InitialDomainName)" - $Selector2Value = "selector2-$($Domain -replace '\.', '-' )._domainkey.$($Tenant.InitialDomainName)" + $Selector1Value = $DKIM.Selector1CNAME + $Selector2Value = $DKIM.Selector2CNAME } + # Create the MSCNAME object $MSCNAMERecords = [PSCustomObject]@{ Domain = $Domain @@ -304,7 +302,7 @@ function Push-DomainAnalyserDomain { Write-LogMessage -API 'DomainAnalyser' -tenant $DomainObject.TenantId -message "MS CNAME DKIM error: $($ErrorMessage.NormalizedError)" -LogData $ErrorMessage -sev Error } } - + #EndRegion MSCNAME DKIM Records # Final Score $Result.Score = $ScoreDomain $Result.ScorePercentage = [int](($Result.Score / $Result.MaximumScore) * 100) @@ -322,11 +320,8 @@ function Push-DomainAnalyserDomain { $DomainTable.Entity = $DomainObject $DomainTable.Force = $true Add-CIPPAzDataTableEntity @DomainTable -Entity $DomainObject -Force - - # Final Write to Output - Write-LogMessage -API 'DomainAnalyser' -tenant $DomainObject.TenantId -message "DNS Analyser Finished For $Domain" -sev Info } catch { Write-LogMessage -API 'DomainAnalyser' -tenant $DomainObject.TenantId -message "Error saving domain $Domain to table " -sev Error -LogData (Get-CippException -Exception $_) } - return $null + return $Result } diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Domain Analyser/Push-DomainAnalyserTenant.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Domain Analyser/Push-DomainAnalyserTenant.ps1 index 96b434147f30..43444b4a4101 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Domain Analyser/Push-DomainAnalyserTenant.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Domain Analyser/Push-DomainAnalyserTenant.ps1 @@ -1,8 +1,8 @@ function Push-DomainAnalyserTenant { <# - .FUNCTIONALITY - Entrypoint - #> + .FUNCTIONALITY + Entrypoint + #> param($Item) $Tenant = Get-Tenants -IncludeAll | Where-Object { $_.customerId -eq $Item.customerId } | Select-Object -First 1 @@ -13,7 +13,7 @@ function Push-DomainAnalyserTenant { $CleanupRows = Get-CIPPAzDataTableEntity @DomainTable -Filter $Filter $CleanupCount = ($CleanupRows | Measure-Object).Count if ($CleanupCount -gt 0) { - Write-LogMessage -API 'DomainAnalyser' -tenant $Tenant.defaultDomainName -message "Cleaning up $CleanupCount domain(s) for excluded tenant" -sev Info + Write-LogMessage -API 'DomainAnalyser' -tenant $Tenant.defaultDomainName -tenantid $Tenant.customerId -message "Cleaning up $CleanupCount domain(s) for excluded tenant" -sev Info Remove-AzDataTableEntity -Force @DomainTable -Entity $CleanupRows } } elseif ($Tenant.GraphErrorCount -gt 50) { @@ -23,6 +23,7 @@ function Push-DomainAnalyserTenant { # Remove domains that are not wanted, and used for cloud signature services. Same exclusions also found in Invoke-CIPPStandardAddDKIM $ExclusionDomains = @( '*.microsoftonline.com' + '*.mail.onmicrosoft.com' '*.exclaimer.cloud' '*.excl.cloud' '*.codetwo.online' @@ -32,6 +33,7 @@ function Push-DomainAnalyserTenant { '*.teams.dstny.com' '*.msteams.8x8.com' '*.ucconnect.co.uk' + '*.teams-sbc.dk' ) $Domains = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/domains' -tenantid $Tenant.customerId | Where-Object { $_.isVerified -eq $true } | ForEach-Object { $Domain = $_ @@ -59,8 +61,6 @@ function Push-DomainAnalyserTenant { } } - Write-Information ($TenantDomains | ConvertTo-Json -Depth 10) - $DomainCount = ($TenantDomains | Measure-Object).Count if ($DomainCount -gt 0) { Write-Host "############# $DomainCount tenant Domains" @@ -100,6 +100,9 @@ function Push-DomainAnalyserTenant { $Domain.DkimSelectors = $OldDomain.DkimSelectors $Domain.MailProviders = $OldDomain.MailProviders } + # Fix tenant info in the event of a default domain name change in a tenant + $Domain | Add-Member -MemberType NoteProperty -Name 'TenantId' -Value $TenantDomain.Tenant -Force + $Domain | Add-Member -MemberType NoteProperty -Name 'TenantGUID' -Value $TenantDomain.TenantGUID -Force } # Return domain object to list $TenantDomainObjects.Add($Domain) @@ -114,21 +117,26 @@ function Push-DomainAnalyserTenant { TenantGUID = $Tenant.customerId } OrchestratorName = "DomainAnalyser_$($Tenant.defaultDomainName)" - SkipLog = $true + PostExecution = @{ + FunctionName = 'GetDomainAnalyserResults' + Parameters = @{ + Tenant = $Tenant + } + } } Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Compress -Depth 5) Write-Host "Started analysis for $DomainCount tenant domains in $($Tenant.defaultDomainName)" - Write-LogMessage -API 'DomainAnalyser' -tenant $Tenant.defaultDomainName -message "Started analysis for $DomainCount tenant domains" -sev Info + Write-LogMessage -Tenant $Tenant.defaultDomainName -TenantId $Tenant.customerId -API 'DomainAnalyser' -message "Started analysis for $DomainCount tenant domains" -sev Info } catch { - Write-LogMessage -API 'DomainAnalyser' -message 'Domain Analyser GetTenantDomains error' -sev 'Error' -LogData (Get-CippException -Exception $_) + Write-LogMessage -Tenant $Tenant.defaultDomainName -TenantId $Tenant.customerId -API 'DomainAnalyser' -message 'Domain Analyser GetTenantDomains error' -sev 'Error' -LogData (Get-CippException -Exception $_) } } catch { - Write-LogMessage -API 'DomainAnalyser' -message 'GetTenantDomains loop error' -sev 'Error' -LogData (Get-CippException -Exception $_) + Write-LogMessage -Tenant $Tenant.defaultDomainName -TenantId $Tenant.customerId -API 'DomainAnalyser' -message 'GetTenantDomains loop error' -sev 'Error' -LogData (Get-CippException -Exception $_) } } } catch { #Write-Host (Get-CippException -Exception $_ | ConvertTo-Json) - Write-LogMessage -API 'DomainAnalyser' -tenant $tenant.defaultDomainName -message 'DNS Analyser GraphGetRequest' -LogData (Get-CippException -Exception $_) -sev Error + Write-LogMessage -Tenant $Tenant.defaultDomainName -TenantId $Tenant.customerId -API 'DomainAnalyser' -message 'DNS Analyser GraphGetRequest' -LogData (Get-CippException -Exception $_) -sev Error } } return $null diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Domain Analyser/Push-GetDomainAnalyserResults.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Domain Analyser/Push-GetDomainAnalyserResults.ps1 new file mode 100644 index 000000000000..9a98b49ceb06 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Domain Analyser/Push-GetDomainAnalyserResults.ps1 @@ -0,0 +1,10 @@ +function Push-GetDomainAnalyserResults { + [CmdletBinding()] + param ( + $Item + ) + + $Tenant = $Item.Parameters.Tenant + Write-LogMessage -API 'DomainAnalyser' -Tenant $Tenant.defaultDomainName -TenantId $Tenant.customerId -message "Domain Analyser completed for tenant $($Tenant.defaultDomainName)" -sev Info -LogData ($Item.Results | Select-Object Domain, @{Name = 'Score'; Expression = { "$($_.Score)/$($_.MaximumScore)" } }) + return +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Graph Requests/Push-ListGraphRequestQueue.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Graph Requests/Push-ListGraphRequestQueue.ps1 index dc7c33e94bd5..9c838711e42c 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Graph Requests/Push-ListGraphRequestQueue.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Graph Requests/Push-ListGraphRequestQueue.ps1 @@ -35,6 +35,7 @@ function Push-ListGraphRequestQueue { ReverseTenantLookupProperty = $Item.ReverseTenantLookupProperty ReverseTenantLookup = $Item.ReverseTenantLookup AsApp = $Item.AsApp ?? $false + Caller = 'Push-ListGraphRequestQueue' SkipCache = $true } diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Mailbox Permissions/Push-GetCalendarPermissionsBatch.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Mailbox Permissions/Push-GetCalendarPermissionsBatch.ps1 new file mode 100644 index 000000000000..5c98bacd6aec --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Mailbox Permissions/Push-GetCalendarPermissionsBatch.ps1 @@ -0,0 +1,68 @@ +function Push-GetCalendarPermissionsBatch { + <# + .SYNOPSIS + Process a batch of calendar permission queries + + .DESCRIPTION + Queries calendar permissions for a batch of mailboxes + + .FUNCTIONALITY + Entrypoint + #> + param($Item) + + $TenantFilter = $Item.TenantFilter + $Mailboxes = $Item.Mailboxes + $BatchNumber = $Item.BatchNumber + $TotalBatches = $Item.TotalBatches + + try { + Write-Information "Processing calendar permissions batch $BatchNumber of $TotalBatches for tenant $TenantFilter with $($Mailboxes.Count) mailboxes" + + $AllCalendarPermissions = [System.Collections.Generic.List[object]]::new() + + foreach ($MailboxUPN in $Mailboxes) { + try { + # Step 1: Get the calendar folder name (locale-specific) + $GetCalParam = @{Identity = $MailboxUPN; FolderScope = 'Calendar' } + $CalendarFolder = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-MailboxFolderStatistics' -anchor $MailboxUPN -cmdParams $GetCalParam | Select-Object -First 1 + + if ($CalendarFolder -and $CalendarFolder.name) { + # Step 2: Get calendar permissions using the folder name + $CalParam = @{Identity = "$($MailboxUPN):\$($CalendarFolder.name)" } + $CalendarPermissions = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-MailboxFolderPermission' -anchor $MailboxUPN -cmdParams $CalParam -UseSystemMailbox $true + + # Normalize the results + foreach ($Perm in $CalendarPermissions) { + $AllCalendarPermissions.Add([PSCustomObject]@{ + id = [guid]::NewGuid().ToString() + Identity = $Perm.Identity + User = $Perm.User + AccessRights = $Perm.AccessRights + FolderName = $Perm.FolderName + }) + } + } else { + Write-Information "No calendar folder found for mailbox $MailboxUPN" + } + } catch { + Write-Information "Failed to get calendar permissions for $MailboxUPN : $($_.Exception.Message)" + # Continue processing other mailboxes + } + } + + Write-Information "Completed calendar permissions batch $BatchNumber of $TotalBatches - processed $($Mailboxes.Count) mailboxes: $($AllCalendarPermissions.Count) calendar permissions" + + # Return results grouped by command type for consistency with mailbox permissions + return @{ + 'Get-MailboxFolderPermission' = $AllCalendarPermissions + } + + } catch { + $ErrorMsg = "Failed to process calendar permissions batch $BatchNumber of $TotalBatches for tenant $TenantFilter : $($_.Exception.Message)" + Write-Information "ERROR in Push-GetCalendarPermissionsBatch: $ErrorMsg" + Write-Information "Stack trace: $($_.ScriptStackTrace)" + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message $ErrorMsg -sev Error + throw $ErrorMsg + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Mailbox Permissions/Push-GetMailboxPermissionsBatch.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Mailbox Permissions/Push-GetMailboxPermissionsBatch.ps1 new file mode 100644 index 000000000000..d86c51cd10a6 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Mailbox Permissions/Push-GetMailboxPermissionsBatch.ps1 @@ -0,0 +1,103 @@ +function Push-GetMailboxPermissionsBatch { + <# + .SYNOPSIS + Process a batch of mailbox permission queries + + .DESCRIPTION + Queries mailbox permissions for a batch of mailboxes and stores in the reporting database + + .FUNCTIONALITY + Entrypoint + #> + param($Item) + + $TenantFilter = $Item.TenantFilter + $Mailboxes = $Item.Mailboxes + $BatchNumber = $Item.BatchNumber + $TotalBatches = $Item.TotalBatches + + try { + Write-Information "Processing batch $BatchNumber of $TotalBatches for tenant $TenantFilter with $($Mailboxes.Count) mailboxes" + Write-Information "Mailbox UPNs in batch: $($Mailboxes -join ', ')" + + # Build bulk requests for this batch (2 queries per mailbox: MailboxPermission + RecipientPermission) + # Calendar permissions require locale-specific folder names and will be collected separately if needed + $ExoBulkRequests = foreach ($MailboxUPN in $Mailboxes) { + @{ + CmdletInput = @{ + CmdletName = 'Get-MailboxPermission' + Parameters = @{ Identity = $MailboxUPN } + } + } + @{ + CmdletInput = @{ + CmdletName = 'Get-RecipientPermission' + Parameters = @{ Identity = $MailboxUPN } + } + } + } + + Write-Information "Built $($ExoBulkRequests.Count) bulk requests for batch $BatchNumber" + + # Execute bulk request for this batch with ReturnWithCommand to separate permission types + $MailboxPermissions = New-ExoBulkRequest -cmdletArray @($ExoBulkRequests) -tenantid $TenantFilter -ReturnWithCommand $true + + Write-Information "Bulk request completed. Result type: $($MailboxPermissions.GetType().Name)" + if ($MailboxPermissions -is [hashtable]) { + Write-Information "Result keys: $($MailboxPermissions.Keys -join ', ')" + if ($MailboxPermissions['Get-MailboxPermission']) { + Write-Information "Sample MailboxPermission: $($MailboxPermissions['Get-MailboxPermission'][0] | ConvertTo-Json -Depth 2 -Compress)" + } + if ($MailboxPermissions['Get-RecipientPermission']) { + Write-Information "Sample RecipientPermission: $($MailboxPermissions['Get-RecipientPermission'][0] | ConvertTo-Json -Depth 2 -Compress)" + } + } + + # Normalize MailboxPermission results + if ($MailboxPermissions['Get-MailboxPermission']) { + $NormalizedMailboxPerms = foreach ($Perm in $MailboxPermissions['Get-MailboxPermission']) { + # Create normalized object with consistent property names and unique ID + [PSCustomObject]@{ + id = [guid]::NewGuid().ToString() + Identity = $Perm.Identity + User = $Perm.User + AccessRights = $Perm.AccessRights + IsInherited = $Perm.IsInherited + Deny = $Perm.Deny + } + } + $MailboxPermissions['Get-MailboxPermission'] = $NormalizedMailboxPerms + } + + # Normalize the results - RecipientPermission uses 'Trustee' instead of 'User' + if ($MailboxPermissions['Get-RecipientPermission']) { + $NormalizedRecipientPerms = foreach ($Perm in $MailboxPermissions['Get-RecipientPermission']) { + # Create normalized object with consistent property names and unique ID + [PSCustomObject]@{ + id = [guid]::NewGuid().ToString() + Identity = $Perm.Identity + User = if ($Perm.Trustee) { $Perm.Trustee } else { $Perm.User } + AccessRights = $Perm.AccessRights + IsInherited = $Perm.IsInherited + Deny = $Perm.Deny + } + } + $MailboxPermissions['Get-RecipientPermission'] = $NormalizedRecipientPerms + } + + $MailboxPermCount = if ($MailboxPermissions['Get-MailboxPermission']) { $MailboxPermissions['Get-MailboxPermission'].Count } else { 0 } + $RecipientPermCount = if ($MailboxPermissions['Get-RecipientPermission']) { $MailboxPermissions['Get-RecipientPermission'].Count } else { 0 } + + Write-Information "Completed batch $BatchNumber of $TotalBatches - processed $($Mailboxes.Count) mailboxes: $MailboxPermCount mailbox permissions, $RecipientPermCount recipient permissions" + + # Return results to be aggregated by post-execution function + return $MailboxPermissions + + } catch { + $ErrorMsg = "Failed to process batch $BatchNumber of $TotalBatches for tenant $TenantFilter : $($_.Exception.Message)" + Write-Information "ERROR in Push-GetMailboxPermissionsBatch: $ErrorMsg" + Write-Information "Stack trace: $($_.ScriptStackTrace)" + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message $ErrorMsg -sev Error + throw $ErrorMsg + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Mailbox Permissions/Push-StoreMailboxPermissions.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Mailbox Permissions/Push-StoreMailboxPermissions.ps1 new file mode 100644 index 000000000000..42a4f93d60dc --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Mailbox Permissions/Push-StoreMailboxPermissions.ps1 @@ -0,0 +1,93 @@ +function Push-StoreMailboxPermissions { + <# + .SYNOPSIS + Post-execution function to aggregate and store all mailbox and calendar permissions + + .DESCRIPTION + Collects results from all batches and stores them in the reporting database + + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param($Item) + + $TenantFilter = $Item.Parameters.TenantFilter + $Results = $Item.Results + + try { + Write-Information "Storing mailbox and calendar permissions for tenant $TenantFilter" + Write-Information "Received $($Results.Count) batch results" + + # Log each result for debugging + for ($i = 0; $i -lt $Results.Count; $i++) { + $result = $Results[$i] + Write-Information "Result $i type: $($result.GetType().Name), value: $($result | ConvertTo-Json -Depth 2 -Compress)" + } + + # Aggregate results by command type from all batches + $AllMailboxPermissions = [System.Collections.Generic.List[object]]::new() + $AllRecipientPermissions = [System.Collections.Generic.List[object]]::new() + $AllCalendarPermissions = [System.Collections.Generic.List[object]]::new() + + foreach ($BatchResult in $Results) { + # Activity functions may return an array [hashtable, "status message"] + # Extract the actual hashtable if result is an array + $ActualResult = $BatchResult + if ($BatchResult -is [array] -and $BatchResult.Count -gt 0) { + Write-Information "Result is array with $($BatchResult.Count) elements, extracting first element" + $ActualResult = $BatchResult[0] + } + + if ($ActualResult -and $ActualResult -is [hashtable]) { + Write-Information "Processing hashtable result with keys: $($ActualResult.Keys -join ', ')" + # Results are grouped by cmdlet name due to ReturnWithCommand + if ($ActualResult['Get-MailboxPermission']) { + Write-Information "Adding $($ActualResult['Get-MailboxPermission'].Count) mailbox permissions" + $AllMailboxPermissions.AddRange($ActualResult['Get-MailboxPermission']) + } + if ($ActualResult['Get-RecipientPermission']) { + Write-Information "Adding $($ActualResult['Get-RecipientPermission'].Count) recipient permissions" + $AllRecipientPermissions.AddRange($ActualResult['Get-RecipientPermission']) + } + if ($ActualResult['Get-MailboxFolderPermission']) { + Write-Information "Adding $($ActualResult['Get-MailboxFolderPermission'].Count) calendar permissions" + $AllCalendarPermissions.AddRange($ActualResult['Get-MailboxFolderPermission']) + } + } else { + Write-Information "Skipping non-hashtable result: $($ActualResult.GetType().Name)" + } + } + + # Combine all permissions (mailbox and recipient) into a single collection + $AllPermissions = [System.Collections.Generic.List[object]]::new() + $AllPermissions.AddRange($AllMailboxPermissions) + $AllPermissions.AddRange($AllRecipientPermissions) + + Write-Information "Aggregated $($AllPermissions.Count) total permissions ($($AllMailboxPermissions.Count) mailbox + $($AllRecipientPermissions.Count) recipient)" + Write-Information "Aggregated $($AllCalendarPermissions.Count) calendar permissions" + + # Store all permissions together as MailboxPermissions + if ($AllPermissions.Count -gt 0) { + $AllPermissions | Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'MailboxPermissions' -AddCount + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($AllPermissions.Count) mailbox permission records" -sev Info + } else { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'No mailbox permissions found to cache' -sev Info + } + + # Store calendar permissions separately + if ($AllCalendarPermissions.Count -gt 0) { + $AllCalendarPermissions | Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'CalendarPermissions' -AddCount + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($AllCalendarPermissions.Count) calendar permission records" -sev Info + } else { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'No calendar permissions found to cache' -sev Info + } + + return + + } catch { + $ErrorMsg = "Failed to store mailbox permissions for tenant $TenantFilter : $($_.Exception.Message)" + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message $ErrorMsg -sev Error + throw $ErrorMsg + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Maintenance/Push-TableCleanupTask.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Maintenance/Push-TableCleanupTask.ps1 index 180c7c06fda9..3f7ceb6009e5 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Maintenance/Push-TableCleanupTask.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Maintenance/Push-TableCleanupTask.ps1 @@ -25,6 +25,7 @@ function Push-TableCleanupTask { Write-Information "Table $Table not found" } } + Write-Information "#### $($Type) task complete for $($Item.TableName)" } elseif ($Type -eq 'CleanupRule') { if ($Item.Where) { $Where = [scriptblock]::Create($Item.Where) @@ -35,6 +36,8 @@ function Push-TableCleanupTask { $DataTableProps = $Item.DataTableProps | ConvertTo-Json | ConvertFrom-Json -AsHashtable $Table = Get-CIPPTable -tablename $Item.TableName $CleanupCompleted = $false + + $RowsRemoved = 0 do { Write-Information "Fetching entities from $($Item.TableName) with filter: $($DataTableProps.Filter)" try { @@ -43,6 +46,7 @@ function Push-TableCleanupTask { Write-Information "Removing $($Entities.Count) entities from $($Item.TableName)" try { Remove-AzDataTableEntity @Table -Entity $Entities -Force + $RowsRemoved += $Entities.Count if ($DataTableProps.First -and $Entities.Count -lt $DataTableProps.First) { $CleanupCompleted = $true } @@ -59,9 +63,10 @@ function Push-TableCleanupTask { $CleanupCompleted = $true } } while (!$CleanupCompleted) + Write-Information "#### $($Type) task complete for $($Item.TableName). Rows removed: $RowsRemoved" } else { Write-Warning "Unknown task type: $Type" } } - Write-Information "#### $($Type) task complete" + } diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-CIPPDBCacheData.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-CIPPDBCacheData.ps1 new file mode 100644 index 000000000000..6bdf8f889ddf --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-CIPPDBCacheData.ps1 @@ -0,0 +1,208 @@ +function Push-CIPPDBCacheData { + <# + .SYNOPSIS + Orchestrator function to collect and cache all data for a single tenant + + .DESCRIPTION + Builds a dynamic batch of cache collection tasks based on tenant license capabilities + + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param($Item) + Write-Host "Starting cache collection orchestration for tenant: $($Item.TenantFilter) - Queue: $($Item.QueueName) (ID: $($Item.QueueId))" + $TenantFilter = $Item.TenantFilter + $QueueId = $Item.QueueId + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Starting database cache orchestration for tenant' -sev Info + + # Check tenant capabilities for license-specific features + $IntuneCapable = Test-CIPPStandardLicense -StandardName 'IntuneLicenseCheck' -TenantFilter $TenantFilter -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') -SkipLog + $ConditionalAccessCapable = Test-CIPPStandardLicense -StandardName 'ConditionalAccessLicenseCheck' -TenantFilter $TenantFilter -RequiredCapabilities @('AAD_PREMIUM', 'AAD_PREMIUM_P2') -SkipLog + $AzureADPremiumP2Capable = Test-CIPPStandardLicense -StandardName 'AzureADPremiumP2LicenseCheck' -TenantFilter $TenantFilter -RequiredCapabilities @('AAD_PREMIUM_P2') -SkipLog + $ExchangeCapable = Test-CIPPStandardLicense -StandardName 'ExchangeLicenseCheck' -TenantFilter $TenantFilter -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') -SkipLog + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "License capabilities - Intune: $IntuneCapable, Conditional Access: $ConditionalAccessCapable, Azure AD Premium P2: $AzureADPremiumP2Capable, Exchange: $ExchangeCapable" -sev Info + + # Build dynamic batch of cache collection tasks based on license capabilities + $Batch = [System.Collections.Generic.List[object]]::new() + + #region All Licenses - Basic tenant data collection + $BasicCacheFunctions = @( + 'Users' + 'Groups' + 'Guests' + 'ServicePrincipals' + 'Apps' + 'Devices' + 'Organization' + 'Roles' + 'AdminConsentRequestPolicy' + 'AuthorizationPolicy' + 'AuthenticationMethodsPolicy' + 'DeviceSettings' + 'DirectoryRecommendations' + 'CrossTenantAccessPolicy' + 'DefaultAppManagementPolicy' + 'Settings' + 'SecureScore' + 'PIMSettings' + 'Domains' + 'RoleEligibilitySchedules' + 'RoleManagementPolicies' + 'RoleAssignmentScheduleInstances' + 'B2BManagementPolicy' + 'AuthenticationFlowsPolicy' + 'DeviceRegistrationPolicy' + 'CredentialUserRegistrationDetails' + 'UserRegistrationDetails' + 'OAuth2PermissionGrants' + 'AppRoleAssignments' + 'LicenseOverview' + 'MFAState' + ) + + foreach ($CacheFunction in $BasicCacheFunctions) { + $Batch.Add(@{ + FunctionName = 'ExecCIPPDBCache' + Name = $CacheFunction + TenantFilter = $TenantFilter + QueueId = $QueueId + }) + } + #endregion All Licenses + + #region Exchange Licensed - Exchange Online features + if ($ExchangeCapable) { + $ExchangeCacheFunctions = @( + 'ExoAntiPhishPolicies' + 'ExoMalwareFilterPolicies' + 'ExoSafeLinksPolicies' + 'ExoSafeAttachmentPolicies' + 'ExoTransportRules' + 'ExoDkimSigningConfig' + 'ExoOrganizationConfig' + 'ExoAcceptedDomains' + 'ExoHostedContentFilterPolicy' + 'ExoHostedOutboundSpamFilterPolicy' + 'ExoAntiPhishPolicy' + 'ExoSafeLinksPolicy' + 'ExoSafeAttachmentPolicy' + 'ExoMalwareFilterPolicy' + 'ExoAtpPolicyForO365' + 'ExoQuarantinePolicy' + 'ExoRemoteDomain' + 'ExoSharingPolicy' + 'ExoAdminAuditLogConfig' + 'ExoPresetSecurityPolicy' + 'ExoTenantAllowBlockList' + 'Mailboxes' + 'CASMailboxes' + 'MailboxUsage' + 'OneDriveUsage' + ) + + foreach ($CacheFunction in $ExchangeCacheFunctions) { + $Batch.Add(@{ + FunctionName = 'ExecCIPPDBCache' + Name = $CacheFunction + TenantFilter = $TenantFilter + QueueId = $QueueId + }) + } + } else { + Write-Host 'Skipping Exchange Online data collection - tenant does not have required license' + } + #endregion Exchange Licensed + + #region Conditional Access Licensed - Azure AD Premium features + if ($ConditionalAccessCapable) { + $Batch.Add(@{ + FunctionName = 'ExecCIPPDBCache' + Name = 'ConditionalAccessPolicies' + TenantFilter = $TenantFilter + QueueId = $QueueId + }) + } else { + Write-Host 'Skipping Conditional Access data collection - tenant does not have required license' + } + #endregion Conditional Access Licensed + + #region Azure AD Premium P2 - Identity Protection features + if ($AzureADPremiumP2Capable) { + $P2CacheFunctions = @( + 'RiskyUsers' + 'RiskyServicePrincipals' + 'ServicePrincipalRiskDetections' + 'RiskDetections' + ) + foreach ($CacheFunction in $P2CacheFunctions) { + $Batch.Add(@{ + FunctionName = 'ExecCIPPDBCache' + Name = $CacheFunction + TenantFilter = $TenantFilter + QueueId = $QueueId + }) + } + } else { + Write-Host 'Skipping Azure AD Premium P2 Identity Protection data collection - tenant does not have required license' + } + #endregion Azure AD Premium P2 + + #region Intune Licensed - Intune management features + if ($IntuneCapable) { + $IntuneCacheFunctions = @( + 'ManagedDevices' + 'IntunePolicies' + 'ManagedDeviceEncryptionStates' + 'IntuneAppProtectionPolicies' + ) + foreach ($CacheFunction in $IntuneCacheFunctions) { + $Batch.Add(@{ + FunctionName = 'ExecCIPPDBCache' + Name = $CacheFunction + TenantFilter = $TenantFilter + QueueId = $QueueId + }) + } + } else { + Write-Host 'Skipping Intune data collection - tenant does not have required license' + } + #endregion Intune Licensed + + Write-Information "Built batch of $($Batch.Count) cache collection activities for tenant $TenantFilter" + + # Start orchestration for this tenant's cache collection + $InputObject = [PSCustomObject]@{ + OrchestratorName = "CIPPDBCacheTenant_$TenantFilter" + Batch = @($Batch) + SkipLog = $true + } + + if ($Item.TestRun -eq $true) { + $InputObject | Add-Member -NotePropertyName PostExecution -NotePropertyValue @{ + FunctionName = 'CIPPDBTestsRun' + Parameters = @{ + TenantFilter = $TenantFilter + } + } + } + + $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + Write-Information "Started cache collection orchestration for $TenantFilter with ID = '$InstanceId'" + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Started cache collection orchestration with $($Batch.Count) activities. Instance ID: $InstanceId" -sev Info + + return @{ + InstanceId = $InstanceId + BatchCount = $Batch.Count + Message = "Cache collection orchestration started for $TenantFilter" + } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to start cache collection orchestration: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + throw $ErrorMessage + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecAppApprovalTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecAppApprovalTemplate.ps1 index 5c55136cccaf..e6eec613a662 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecAppApprovalTemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecAppApprovalTemplate.ps1 @@ -10,19 +10,150 @@ function Push-ExecAppApprovalTemplate { $TemplateId = $Item.templateId if (!$TemplateId) { Write-LogMessage -message 'No template specified' -tenant $Item.Tenant -API 'Add Multitenant App' -sev Error - return + return $false } - $ServicePrincipalList = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/servicePrincipals?`$select=AppId,id,displayName&`$top=999" -tenantid $Item.Tenant - if ($Item.AppId -notin $ServicePrincipalList.appId) { - Write-Information "Adding $($Item.AppId) to tenant $($Item.Tenant)." - $PostResults = New-GraphPostRequest 'https://graph.microsoft.com/beta/servicePrincipals' -type POST -tenantid $Item.tenant -body "{ `"appId`": `"$($Item.appId)`" }" - Write-LogMessage -message "Added $($Item.AppId) to tenant $($Item.Tenant)" -tenant $Item.Tenant -API 'Add Multitenant App' -sev Info + # Get the template data to determine if it's a Gallery Template or Enterprise App + $Table = Get-CIPPTable -TableName 'templates' + $Template = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'AppApprovalTemplate' and RowKey eq '$TemplateId'" + + if (!$Template) { + Write-LogMessage -message "Template $TemplateId not found" -tenant $Item.Tenant -API 'Add Multitenant App' -sev Error + return $false + } + + $TemplateData = $Template.JSON | ConvertFrom-Json + # Default to EnterpriseApp for backward compatibility with older templates + $AppType = $TemplateData.AppType + if (-not $AppType) { + $AppType = 'EnterpriseApp' + } + + # Handle Gallery Templates + if ($AppType -eq 'GalleryTemplate') { + Write-Information "Deploying Gallery Template $($TemplateData.AppName) to tenant $($Item.Tenant)." + + # Use the Gallery Template instantiation API + $GalleryTemplateId = $TemplateData.GalleryTemplateId + if (!$GalleryTemplateId) { + Write-LogMessage -message 'Gallery Template ID not found in template data' -tenant $Item.Tenant -API 'Add Multitenant App' -sev Error + return $false + } + + # Check if the app already exists in the tenant + $ServicePrincipalList = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/servicePrincipals?`$select=AppId,id,displayName&`$top=999" -tenantid $Item.Tenant + if ($TemplateData.GalleryTemplateId -in $ServicePrincipalList.applicationTemplateId) { + Write-LogMessage -message "Gallery Template app $($TemplateData.AppName) already exists in tenant $($Item.Tenant)" -tenant $Item.Tenant -API 'Add Gallery App' -sev Info + return $true + } + + # Instantiate the gallery template + $InstantiateBody = @{ + displayName = $TemplateData.AppName + } | ConvertTo-Json -Depth 10 + + $InstantiateResult = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/applicationTemplates/$GalleryTemplateId/instantiate" -type POST -tenantid $Item.tenant -body $InstantiateBody + + if ($InstantiateResult.application.appId) { + Write-LogMessage -message "Successfully deployed Gallery Template $($TemplateData.AppName) to tenant $($Item.Tenant). Application ID: $($InstantiateResult.application.appId)" -tenant $Item.Tenant -API 'Add Gallery App' -sev Info + # Get application registration + $App = $InstantiateResult.application.appId + $Application = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/applications(appId='$App')" -tenantid $Item.tenant -AsApp $true + if ($Application.requiredResourceAccess) { + Add-CIPPDelegatedPermission -RequiredResourceAccess $Application.requiredResourceAccess -ApplicationId $App -Tenantfilter $Item.Tenant + Add-CIPPApplicationPermission -RequiredResourceAccess $Application.requiredResourceAccess -ApplicationId $App -Tenantfilter $Item.Tenant + } + } else { + Write-LogMessage -message "Gallery Template deployment completed but application ID not returned for $($TemplateData.AppName) in tenant $($Item.Tenant)" -tenant $Item.Tenant -API 'Add Gallery App' -sev Warning + } + + } elseif ($AppType -eq 'ApplicationManifest') { + Write-Information "Deploying Application Manifest $($TemplateData.AppName) to tenant $($Item.Tenant)." + + # Get the application manifest from template data + $ApplicationManifest = $TemplateData.ApplicationManifest + if (!$ApplicationManifest) { + Write-LogMessage -message 'Application Manifest not found in template data' -tenant $Item.Tenant -API 'Add Multitenant App' -sev Error + return $false + } + + # Check for existing application by display name + $ServicePrincipalList = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/servicePrincipals?`$select=AppId,id,displayName&`$top=999" -tenantid $Item.Tenant + $ExistingApp = $ServicePrincipalList | Where-Object { $_.displayName -eq $TemplateData.AppName } + if ($ExistingApp) { + Write-LogMessage -message "Application with name '$($TemplateData.AppName)' already exists in tenant $($Item.Tenant)" -tenant $Item.Tenant -API 'Add App Manifest' -sev Info + + # get existing application + $App = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/applications(appId='$($ExistingApp.appId)')" -tenantid $Item.Tenant + + # compare permissions + $ExistingPermissions = $App.requiredResourceAccess | ConvertTo-Json -Depth 10 + $NewPermissions = $ApplicationManifest.requiredResourceAccess | ConvertTo-Json -Depth 10 + if ($ExistingPermissions -ne $NewPermissions) { + Write-LogMessage -message "Updating permissions for existing application '$($TemplateData.AppName)' in tenant $($Item.Tenant)" -tenant $Item.Tenant -API 'Add App Manifest' -sev Info + + # Update permissions for existing application + $UpdateBody = @{ + requiredResourceAccess = $ApplicationManifest.requiredResourceAccess + } | ConvertTo-Json -Depth 10 + $null = New-GraphPostRequest -type PATCH -uri "https://graph.microsoft.com/beta/applications(appId='$($ExistingApp.appId)')" -tenantid $Item.Tenant -body $UpdateBody + + # consent new permissions + Add-CIPPDelegatedPermission -RequiredResourceAccess $ApplicationManifest.requiredResourceAccess -ApplicationId $ExistingApp.appId -Tenantfilter $Item.Tenant + Add-CIPPApplicationPermission -RequiredResourceAccess $ApplicationManifest.requiredResourceAccess -ApplicationId $ExistingApp.appId -Tenantfilter $Item.Tenant + } + + return $true + } + + $PropertiesToRemove = @('appId', 'id', 'createdDateTime', 'publisherDomain', 'servicePrincipalLockConfiguration', 'identifierUris', 'applicationIdUris') + + # Strip tenant-specific data that might cause conflicts + $CleanManifest = $ApplicationManifest | ConvertTo-Json -Depth 10 | ConvertFrom-Json + foreach ($Property in $PropertiesToRemove) { + $CleanManifest.PSObject.Properties.Remove($Property) + } + + # Create the application from manifest + try { + $CreateBody = $CleanManifest | ConvertTo-Json -Depth 10 + $CreatedApp = New-GraphPostRequest -uri 'https://graph.microsoft.com/beta/applications' -type POST -tenantid $Item.tenant -body $CreateBody + + if ($CreatedApp.appId) { + # Create service principal for the application + $ServicePrincipalBody = @{ + appId = $CreatedApp.appId + } | ConvertTo-Json + + $null = New-GraphPostRequest -uri 'https://graph.microsoft.com/beta/servicePrincipals' -type POST -tenantid $Item.tenant -body $ServicePrincipalBody + + Write-LogMessage -message "Successfully deployed Application Manifest $($TemplateData.AppName) to tenant $($Item.Tenant). Application ID: $($CreatedApp.appId)" -tenant $Item.Tenant -API 'Add App Manifest' -sev Info + + if ($CreatedApp.requiredResourceAccess) { + Add-CIPPDelegatedPermission -RequiredResourceAccess $CreatedApp.requiredResourceAccess -ApplicationId $CreatedApp.appId -Tenantfilter $Item.Tenant + Add-CIPPApplicationPermission -RequiredResourceAccess $CreatedApp.requiredResourceAccess -ApplicationId $CreatedApp.appId -Tenantfilter $Item.Tenant + } + } else { + Write-LogMessage -message "Application Manifest deployment failed - no application ID returned for $($TemplateData.AppName) in tenant $($Item.Tenant)" -tenant $Item.Tenant -API 'Add App Manifest' -sev Error + } + } catch { + Write-LogMessage -message "Error creating application from manifest in tenant $($Item.Tenant) - $($_.Exception.Message)" -tenant $Item.Tenant -API 'Add App Manifest' -sev Error + throw $_.Exception.Message + } + } else { - Write-LogMessage -message "This app already exists in tenant $($Item.Tenant). We're adding the required permissions." -tenant $Item.Tenant -API 'Add Multitenant App' -sev Info + # Handle Enterprise Apps (existing logic) + $ServicePrincipalList = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/servicePrincipals?`$select=AppId,id,displayName&`$top=999" -tenantid $Item.Tenant + if ($Item.AppId -notin $ServicePrincipalList.appId) { + Write-Information "Adding $($Item.AppId) to tenant $($Item.Tenant)." + $PostResults = New-GraphPostRequest 'https://graph.microsoft.com/beta/servicePrincipals' -type POST -tenantid $Item.tenant -body "{ `"appId`": `"$($Item.appId)`" }" + Write-LogMessage -message "Added $($Item.AppId) to tenant $($Item.Tenant)" -tenant $Item.Tenant -API 'Add Multitenant App' -sev Info + } else { + Write-LogMessage -message "This app already exists in tenant $($Item.Tenant). We're adding the required permissions." -tenant $Item.Tenant -API 'Add Multitenant App' -sev Info + } + Add-CIPPApplicationPermission -TemplateId $TemplateId -Tenantfilter $Item.Tenant + Add-CIPPDelegatedPermission -TemplateId $TemplateId -Tenantfilter $Item.Tenant } - Add-CIPPApplicationPermission -TemplateId $TemplateId -Tenantfilter $Item.Tenant - Add-CIPPDelegatedPermission -TemplateId $TemplateId -Tenantfilter $Item.Tenant } catch { Write-LogMessage -message "Error adding application to tenant $($Item.Tenant) - $($_.Exception.Message)" -tenant $Item.Tenant -API 'Add Multitenant App' -sev Error Write-Error $_.Exception.Message diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecMdoAlertsListAllTenants.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecMdoAlertsListAllTenants.ps1 new file mode 100644 index 000000000000..15cab5352f97 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecMdoAlertsListAllTenants.ps1 @@ -0,0 +1,48 @@ +function Push-ExecMdoAlertsListAllTenants { + <# + .FUNCTIONALITY + Entrypoint + #> + param($Item) + + $Tenant = Get-Tenants -TenantFilter $Item.customerId + $domainName = $Tenant.defaultDomainName + $Table = Get-CIPPTable -TableName 'cachealertsandincidents' + + try { + # Get MDO alerts using the specific endpoint and filter + $Alerts = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/security/alerts_v2?`$filter=serviceSource eq 'microsoftDefenderForOffice365'" -tenantid $domainName + + foreach ($Alert in $Alerts) { + $GUID = (New-Guid).Guid + $GraphRequest = @{ + MdoAlert = [string]($Alert | ConvertTo-Json -Depth 10) + RowKey = [string]$GUID + PartitionKey = 'MdoAlert' + Tenant = [string]$domainName + } + Add-CIPPAzDataTableEntity @Table -Entity $GraphRequest -Force | Out-Null + } + + } catch { + $GUID = (New-Guid).Guid + $AlertText = ConvertTo-Json -InputObject @{ + Tenant = $domainName + displayName = "Could not connect to Tenant: $($_.Exception.Message)" + id = '' + severity = 'CIPP' + status = 'Failed' + createdDateTime = (Get-Date).ToString('s') + category = 'Unknown' + description = 'Could not connect' + serviceSource = 'microsoftDefenderForOffice365' + } + $GraphRequest = @{ + MdoAlert = [string]$AlertText + RowKey = [string]$GUID + PartitionKey = 'MdoAlert' + Tenant = [string]$domainName + } + Add-CIPPAzDataTableEntity @Table -Entity $GraphRequest -Force | Out-Null + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecOnboardTenantQueue.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecOnboardTenantQueue.ps1 index 5473c27351ca..23ca76c1adeb 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecOnboardTenantQueue.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecOnboardTenantQueue.ps1 @@ -316,8 +316,8 @@ function Push-ExecOnboardTenantQueue { $LastCPVError = '' do { try { - Add-CIPPApplicationPermission -RequiredResourceAccess 'CIPPDefaults' -ApplicationId $env:ApplicationID -tenantfilter $Relationship.customer.tenantId - Add-CIPPDelegatedPermission -RequiredResourceAccess 'CIPPDefaults' -ApplicationId $env:ApplicationID -tenantfilter $Relationship.customer.tenantId + Add-CIPPApplicationPermission -RequiredResourceAccess 'CIPPDefaults' -ApplicationId $env:ApplicationID -TenantFilter $Relationship.customer.tenantId + Add-CIPPDelegatedPermission -RequiredResourceAccess 'CIPPDefaults' -ApplicationId $env:ApplicationID -TenantFilter $Relationship.customer.tenantId $CPVSuccess = $true $Refreshing = $false } catch { @@ -361,16 +361,16 @@ function Push-ExecOnboardTenantQueue { defaultDomainName = $Tenant.defaultDomainName } } - $Table = Get-CippTable -tablename 'templates' - $ExistingTemplates = Get-CippazDataTableEntity @Table -Filter "PartitionKey eq 'StandardsTemplateV2'" | Where-Object { $_.JSON -match 'AllTenants' } + $Table = Get-CIPPTable -tablename 'templates' + $ExistingTemplates = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'StandardsTemplateV2'" | Where-Object { $_.JSON -match 'AllTenants' } foreach ($AllTenantsTemplate in $ExistingTemplates) { - $object = $AllTenantesTemplate.JSON | ConvertFrom-Json - $NewExcludedTenants = [system.collections.generic.list[object]]::new() + $object = $AllTenantsTemplate.JSON | ConvertFrom-Json + $NewExcludedTenants = [System.Collections.Generic.List[object]]::new() if (!$object.excludedTenants) { $object | Add-Member -MemberType NoteProperty -Name 'excludedTenants' -Value @() -Force } - foreach ($Tenant in $object.excludedTenants) { - $NewExcludedTenants.Add($Tenant) + foreach ($ExcludedStandardsTenant in $object.excludedTenants) { + $NewExcludedTenants.Add($ExcludedStandardsTenant) } $NewExcludedTenants.Add($AddExclusionObj) $object.excludedTenants = $NewExcludedTenants @@ -412,6 +412,7 @@ function Push-ExecOnboardTenantQueue { $TenantOnboarding.Logs = [string](ConvertTo-Json -InputObject @($Logs) -Compress) Add-CIPPAzDataTableEntity @OnboardTable -Entity $TenantOnboarding -Force -ErrorAction Stop Write-LogMessage -API 'Onboarding' -message "Tenant onboarding succeeded for $($Relationship.customer.displayName)" -Sev 'Info' + Write-LogMessage -API 'NewTenant' -message "New tenant onboarded: $($Relationship.customer.displayName) ($($Relationship.customer.id))" -Sev 'Info' } else { $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = 'API Test failed: {0}' -f $ApiError }) $OnboardingSteps.Step5.Status = 'failed' diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecScheduledCommand.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecScheduledCommand.ps1 index bafe1e39fa59..ccc7249ed798 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecScheduledCommand.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecScheduledCommand.ps1 @@ -5,14 +5,131 @@ function Push-ExecScheduledCommand { #> param($Item) $item = $Item | ConvertTo-Json -Depth 100 | ConvertFrom-Json - Write-Host "We are going to be running a scheduled task: $($Item.TaskInfo | ConvertTo-Json -Depth 10)" + Write-Information "We are going to be running a scheduled task: $($Item.TaskInfo | ConvertTo-Json -Depth 10)" + + # Initialize AsyncLocal storage for thread-safe per-invocation context + if (-not $script:CippScheduledTaskIdStorage) { + $script:CippScheduledTaskIdStorage = [System.Threading.AsyncLocal[string]]::new() + } + $script:CippScheduledTaskIdStorage.Value = $Item.TaskInfo.RowKey $Table = Get-CippTable -tablename 'ScheduledTasks' $task = $Item.TaskInfo $commandParameters = $Item.Parameters | ConvertTo-Json -Depth 10 | ConvertFrom-Json -AsHashtable + + # Handle tenant resolution - support both direct tenant and group-expanded tenants $Tenant = $Item.Parameters.TenantFilter ?? $Item.TaskInfo.Tenant + + # Detect if this is a multi-tenant task that should store results per-tenant + $IsMultiTenantTask = ($task.Tenant -eq 'AllTenants' -or $task.TenantGroup) + + # For tenant group tasks, the tenant will be the expanded tenant from the orchestrator + # We don't need to expand groups here as that's handled in the orchestrator $TenantInfo = Get-Tenants -TenantFilter $Tenant + $CurrentTask = Get-AzDataTableEntity @Table -Filter "PartitionKey eq '$($task.PartitionKey)' and RowKey eq '$($task.RowKey)'" + if (!$CurrentTask) { + Write-Information "The task $($task.Name) for tenant $($task.Tenant) does not exist in the ScheduledTasks table. Exiting." + Remove-Variable -Name ScheduledTaskId -Scope Script -ErrorAction SilentlyContinue + return + } + if ($CurrentTask.TaskState -eq 'Completed' -and !$IsMultiTenantTask) { + Write-Information "The task $($task.Name) for tenant $($task.Tenant) is already completed. Skipping execution." + Remove-Variable -Name ScheduledTaskId -Scope Script -ErrorAction SilentlyContinue + return + } + # Task should be 'Pending' (queued by orchestrator) or 'Running' (retry/recovery) + # We accept both to handle edge cases + + # Check for rerun protection - prevent duplicate executions within the recurrence interval + if ($task.Recurrence -and $task.Recurrence -ne '0') { + # Calculate interval in seconds from recurrence string + $IntervalSeconds = switch -Regex ($task.Recurrence) { + '^(\d+)$' { [int64]$matches[1] * 86400 } # Plain number = days + '(\d+)m$' { [int64]$matches[1] * 60 } + '(\d+)h$' { [int64]$matches[1] * 3600 } + '(\d+)d$' { [int64]$matches[1] * 86400 } + default { 0 } + } + + if ($IntervalSeconds -gt 0) { + # Round down to nearest 15-minute interval (900 seconds) since that's when orchestrator runs + # This prevents rerun blocking issues due to slight timing variations + $FifteenMinutes = 900 + $AdjustedInterval = [Math]::Floor($IntervalSeconds / $FifteenMinutes) * $FifteenMinutes + + # Ensure we have at least one 15-minute interval + if ($AdjustedInterval -lt $FifteenMinutes) { + $AdjustedInterval = $FifteenMinutes + } + # Use task RowKey as API identifier for rerun cache + $RerunParams = @{ + TenantFilter = $Tenant + Type = 'ScheduledTask' + API = $task.RowKey + Interval = $AdjustedInterval + BaseTime = [int64]$task.ScheduledTime + Headers = $Headers + } + + $IsRerun = Test-CIPPRerun @RerunParams + if ($IsRerun) { + Write-Information "Scheduled task $($task.Name) for tenant $Tenant was recently executed. Skipping to prevent duplicate execution." + Remove-Variable -Name ScheduledTaskId -Scope Script -ErrorAction SilentlyContinue + return + } + } + } + + if ($task.Trigger) { + # Extract trigger data from the task and process + $Trigger = if (Test-Json -Json $task.Trigger) { $task.Trigger | ConvertFrom-Json } else { $task.Trigger } + $TriggerType = $Trigger.Type.value ?? $Trigger.Type + if ($TriggerType -eq 'DeltaQuery') { + $IsTriggerTask = $true + $DeltaUrl = Get-DeltaQueryUrl -TenantFilter $Tenant -PartitionKey $task.RowKey + $DeltaQuery = @{ + DeltaUrl = $DeltaUrl + TenantFilter = $Tenant + PartitionKey = $task.RowKey + } + $Query = New-GraphDeltaQuery @DeltaQuery + + $secondsToAdd = switch -Regex ($task.Recurrence) { + '(\d+)m$' { [int64]$matches[1] * 60 } + '(\d+)h$' { [int64]$matches[1] * 3600 } + '(\d+)d$' { [int64]$matches[1] * 86400 } + default { 0 } + } + + $Minutes = [int]($secondsToAdd / 60) + + $DeltaQueryConditions = @{ + Query = $Query + Trigger = $Trigger + TenantFilter = $Tenant + LastTrigger = [datetime]::UtcNow.AddMinutes(-$Minutes) + } + $DeltaResults = Test-DeltaQueryConditions @DeltaQueryConditions + + if (-not $DeltaResults.ConditionsMet) { + Write-Information "Delta query conditions not met for tenant $Tenant. Skipping execution." + # update interval + $nextRunUnixTime = [int64]$task.ScheduledTime + [int64]$secondsToAdd + $null = Update-AzDataTableEntity -Force @Table -Entity @{ + PartitionKey = $task.PartitionKey + RowKey = $task.RowKey + TaskState = 'Planned' + ScheduledTime = [string]$nextRunUnixTime + } + Remove-Variable -Name ScheduledTaskId -Scope Script -ErrorAction SilentlyContinue + return + } + } + } else { + $IsTriggerTask = $false + } + $null = Update-AzDataTableEntity -Force @Table -Entity @{ PartitionKey = $task.PartitionKey RowKey = $task.RowKey @@ -31,6 +148,7 @@ function Push-ExecScheduledCommand { } Write-LogMessage -API 'Scheduler_UserTasks' -tenant $Tenant -tenantid $TenantInfo.customerId -message "Failed to execute task $($task.Name): The command $($Item.Command) does not exist." -sev Error + Remove-Variable -Name ScheduledTaskId -Scope Script -ErrorAction SilentlyContinue return } @@ -46,33 +164,99 @@ function Push-ExecScheduledCommand { $commandParameters.Remove($key) } } catch { - Write-Host "Failed to remove parameters: $($_.Exception.Message)" + Write-Information "Failed to remove parameters: $($_.Exception.Message)" } - Write-Host "Started Task: $($Item.Command) for tenant: $Tenant" - try { - + if ($IsTriggerTask -eq $true -and $Trigger.ExecutePerResource -ne $true) { + # iterate through paramters looking for %variables% and replace them with matched data from the delta query + # examples would be %id% to be the id of the result + # if %triggerdata% is found, pass the entire matched data object try { - Write-Host "Starting task: $($Item.Command) with parameters: $($commandParameters | ConvertTo-Json)" - $results = & $Item.Command @commandParameters + foreach ($key in $commandParameters.Keys) { + if ($commandParameters[$key] -is [string]) { + if ($commandParameters[$key] -match '^%(.*)%$') { + $variableName = $matches[1] + if ($variableName -eq 'triggerdata') { + Write-Information "Replacing parameter $key with full matched data object." + $commandParameters[$key] = $DeltaResults.MatchedData + } else { + # Replace with array of matched property values + Write-Information "Replacing parameter $key with matched data property '$variableName'." + $commandParameters[$key] = $DeltaResults.MatchedData | Select-Object -ExpandProperty $variableName + } + } + } + } } catch { - $results = "Task Failed: $($_.Exception.Message)" + Write-Information "Failed to process trigger data parameters: $($_.Exception.Message)" + } + } elseif ($IsTriggerTask -eq $true -and $Trigger.ExecutePerResource -eq $true) { + Write-Information 'This is a trigger task with ExecutePerResource set to true. Iterating through matched data to execute command per resource.' + $results = foreach ($dataItem in $DeltaResults.MatchedData) { + $individualCommandParameters = $commandParameters.Clone() + try { + foreach ($key in $individualCommandParameters.Keys) { + if ($individualCommandParameters[$key] -is [string]) { + if ($individualCommandParameters[$key] -match '^%(.*)%$') { + if ($matches[1] -eq 'triggerdata') { + Write-Information "Replacing parameter $key with full matched data object for individual execution." + $individualCommandParameters[$key] = $dataItem + } else { + $variableName = $matches[1] + Write-Information "Replacing parameter $key with matched data property '$variableName' for individual execution." + $individualCommandParameters[$key] = $dataItem.$variableName + } + } + } + } + } catch { + Write-Information "Failed to process trigger data parameters for individual execution: $($_.Exception.Message)" + } + try { + Write-Information "Executing command $($Item.Command) for individual matched data item with parameters: $($individualCommandParameters | ConvertTo-Json -Depth 10)" + & $Item.Command @individualCommandParameters + Write-Information "Results for individual execution: $($results | ConvertTo-Json -Depth 10)" + } catch { + Write-Information "Failed to execute command for individual matched data item: $($_.Exception.Message)" + } } + } - Write-Host 'ran the command. Processing results' + try { + if (-not $Trigger.ExecutePerResource) { + try { + Write-Information "Starting task: $($Item.Command) for tenant: $Tenant with parameters: $($commandParameters | ConvertTo-Json)" + $results = & $Item.Command @commandParameters + } catch { + $results = "Task Failed: $($_.Exception.Message)" + $State = 'Failed' + } + Write-Information 'Ran the command. Processing results' + } + Write-Information "Results: $($results | ConvertTo-Json -Depth 10)" if ($item.command -like 'Get-CIPPAlert*') { + Write-Information 'This is an alert task. Processing results as alerts.' $results = @($results) $TaskType = 'Alert' } else { + Write-Information 'This is a scheduled task. Processing results as scheduled task.' $TaskType = 'Scheduled Task' + + if (!$results) { + $results = 'Task completed successfully' + } + if ($results -is [String]) { $results = @{ Results = $results } + } elseif ($results -is [array] -and $results[0] -is [string] -or $results[0].resultText -is [string]) { + $results = $results | Where-Object { $_ -is [string] -or $_.resultText -is [string] } + $results = $results | ForEach-Object { + $Message = $_.resultText ?? $_ + @{ Results = $Message } + } } - if ($results -is [array] -and $results[0] -is [string]) { - $results = $results | Where-Object { $_ -is [string] } - $results = $results | ForEach-Object { @{ Results = $_ } } - } - + Write-Information "Results after processing: $($results | ConvertTo-Json -Depth 10)" + Write-Information 'Moving onto storing results' if ($results -is [string]) { $StoredResults = $results } else { @@ -80,56 +264,90 @@ function Push-ExecScheduledCommand { $StoredResults = $results | ConvertTo-Json -Compress -Depth 20 | Out-String } } - - if ($StoredResults.Length -gt 64000 -or $task.Tenant -eq 'AllTenants') { + Write-Information "Results: $($results | ConvertTo-Json -Depth 10)" + if ($StoredResults.Length -gt 64000 -or $IsMultiTenantTask) { $TaskResultsTable = Get-CippTable -tablename 'ScheduledTaskResults' $TaskResults = @{ PartitionKey = $task.RowKey RowKey = $Tenant Results = [string](ConvertTo-Json -Compress -Depth 20 $results) } - $null = Add-AzDataTableEntity @TaskResultsTable -Entity $TaskResults -Force + $null = Add-CIPPAzDataTableEntity @TaskResultsTable -Entity $TaskResults -Force $StoredResults = @{ Results = 'Completed, details are available in the More Info pane' } | ConvertTo-Json -Compress } } catch { + Write-Information "Failed to run task: $($_.Exception.Message)" $errorMessage = $_.Exception.Message + #if recurrence is just a number, add it in days. + if ($task.Recurrence -match '^\d+$') { + $task.Recurrence = $task.Recurrence + 'd' + } + $secondsToAdd = switch -Regex ($task.Recurrence) { + '(\d+)m$' { [int64]$matches[1] * 60 } + '(\d+)h$' { [int64]$matches[1] * 3600 } + '(\d+)d$' { [int64]$matches[1] * 86400 } + default { 0 } + } + + if ($secondsToAdd -gt 0) { + $unixtimeNow = [int64](([datetime]::UtcNow) - (Get-Date '1/1/1970')).TotalSeconds + if ([int64]$task.ScheduledTime -lt ($unixtimeNow - $secondsToAdd)) { + $task.ScheduledTime = $unixtimeNow + } + } + + $nextRunUnixTime = [int64]$task.ScheduledTime + [int64]$secondsToAdd if ($task.Recurrence -ne 0) { $State = 'Failed - Planned' } else { $State = 'Failed' } + Write-Information "The job is recurring, but failed. It was scheduled for $($task.ScheduledTime). The next runtime should be $nextRunUnixTime" Update-AzDataTableEntity -Force @Table -Entity @{ - PartitionKey = $task.PartitionKey - RowKey = $task.RowKey - Results = "$errorMessage" - TaskState = $State + PartitionKey = $task.PartitionKey + RowKey = $task.RowKey + Results = "$errorMessage" + ScheduledTime = "$nextRunUnixTime" + TaskState = $State } Write-LogMessage -API 'Scheduler_UserTasks' -tenant $Tenant -tenantid $TenantInfo.customerId -message "Failed to execute task $($task.Name): $errorMessage" -sev Error -LogData (Get-CippExceptionData -Exception $_.Exception) } - Write-Host 'Sending task results to target. Updating the task state.' + Write-Information 'Sending task results to target. Updating the task state.' if ($Results) { - $TableDesign = '' + $TableDesign = '' $FinalResults = if ($results -is [array] -and $results[0] -is [string]) { $Results | ConvertTo-Html -Fragment -Property @{ l = 'Text'; e = { $_ } } } else { $Results | ConvertTo-Html -Fragment } - $HTML = $FinalResults -replace '', "This alert is for tenant $Tenant.

$TableDesign
" | Out-String - $title = "$TaskType - $Tenant - $($task.Name)" - Write-Host 'Scheduler: Sending the results to the target.' - Write-Host "The content of results is: $Results" + $HTML = $FinalResults -replace '
', "This alert is for tenant $Tenant.

$TableDesign
" | Out-String + + # Add alert comment if available + if ($task.AlertComment) { + if ($task.AlertComment -match '%resultcount%') { + $resultCount = if ($Results -is [array]) { $Results.Count } else { 1 } + $task.AlertComment = $task.AlertComment -replace '%resultcount%', "$resultCount" + } + $task.AlertComment = Get-CIPPTextReplacement -Text $task.AlertComment -TenantFilter $Tenant + $HTML += "

Alert Information

$($task.AlertComment)

" + } + + $title = "$TaskType - $Tenant - $($task.Name)$(if ($task.Reference) { " - Reference: $($task.Reference)" })" + Write-Information 'Scheduler: Sending the results to the target.' + Write-Information "The content of results is: $Results" switch -wildcard ($task.PostExecution) { '*psa*' { Send-CIPPAlert -Type 'psa' -Title $title -HTMLContent $HTML -TenantFilter $Tenant } '*email*' { Send-CIPPAlert -Type 'email' -Title $title -HTMLContent $HTML -TenantFilter $Tenant } '*webhook*' { $Webhook = [PSCustomObject]@{ - 'tenantId' = $TenantInfo.customerId - 'Tenant' = $Tenant - 'TaskInfo' = $Item.TaskInfo - 'Results' = $Results + 'tenantId' = $TenantInfo.customerId + 'Tenant' = $Tenant + 'TaskInfo' = $Item.TaskInfo + 'Results' = $Results + 'AlertComment' = $task.AlertComment } Send-CIPPAlert -Type 'webhook' -Title $title -TenantFilter $Tenant -JSONContent $($Webhook | ConvertTo-Json -Depth 20) } } } - Write-Host 'Sent the results to the target. Updating the task state.' + Write-Information 'Sent the results to the target. Updating the task state.' try { - if ($task.Recurrence -eq '0' -or [string]::IsNullOrEmpty($task.Recurrence)) { - Write-Host 'Recurrence empty or 0. Task is not recurring. Setting task state to completed.' + if ($task.Recurrence -eq '0' -or [string]::IsNullOrEmpty($task.Recurrence) -or $Trigger.ExecutionMode.value -eq 'once' -or $Trigger.ExecutionMode -eq 'once') { + Write-Information 'Recurrence empty or 0. Task is not recurring. Setting task state to completed.' Update-AzDataTableEntity -Force @Table -Entity @{ PartitionKey = $task.PartitionKey RowKey = $task.RowKey @@ -156,7 +374,7 @@ function Push-ExecScheduledCommand { } $nextRunUnixTime = [int64]$task.ScheduledTime + [int64]$secondsToAdd - Write-Host "The job is recurring. It was scheduled for $($task.ScheduledTime). The next runtime should be $nextRunUnixTime" + Write-Information "The job is recurring. It was scheduled for $($task.ScheduledTime). The next runtime should be $nextRunUnixTime" Update-AzDataTableEntity -Force @Table -Entity @{ PartitionKey = $task.PartitionKey RowKey = $task.RowKey @@ -172,4 +390,6 @@ function Push-ExecScheduledCommand { if ($TaskType -ne 'Alert') { Write-LogMessage -API 'Scheduler_UserTasks' -tenant $Tenant -tenantid $TenantInfo.customerId -message "Successfully executed task: $($task.Name)" -sev Info } + Remove-Variable -Name ScheduledTaskId -Scope Script -ErrorAction SilentlyContinue + return 'Task Completed Successfully.' } diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListConditionalAccessPoliciesAllTenants.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListConditionalAccessPoliciesAllTenants.ps1 new file mode 100644 index 000000000000..6654ae719c80 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListConditionalAccessPoliciesAllTenants.ps1 @@ -0,0 +1,165 @@ +function Push-ListConditionalAccessPoliciesAllTenants { + <# + .FUNCTIONALITY + Entrypoint + #> + param($Item) + + #Region Helper functions + function Get-LocationNameFromId { + param ($ID, $Locations) + if ($id -eq 'All') { return 'All' } + $DisplayName = $Locations | Where-Object { $_.id -eq $ID } | Select-Object -ExpandProperty DisplayName + if ([string]::IsNullOrEmpty($displayName)) { return $ID } else { return $DisplayName } + } + + function Get-RoleNameFromId { + param ($ID, $RoleDefinitions) + if ($id -eq 'All') { return 'All' } + $DisplayName = $RoleDefinitions | Where-Object { $_.id -eq $ID } | Select-Object -ExpandProperty DisplayName + if ([string]::IsNullOrEmpty($displayName)) { return $ID } else { return $DisplayName } + } + + function Get-UserNameFromId { + param ($ID, $Users) + if ($id -eq 'All') { return 'All' } + $DisplayName = $Users | Where-Object { $_.id -eq $ID } | Select-Object -ExpandProperty DisplayName + if ([string]::IsNullOrEmpty($displayName)) { return $ID } else { return $DisplayName } + } + + function Get-GroupNameFromId { + param ($ID, $Groups) + if ($id -eq 'All') { return 'All' } + $DisplayName = $Groups | Where-Object { $_.id -eq $ID } | Select-Object -ExpandProperty DisplayName + if ([string]::IsNullOrEmpty($displayName)) { return 'No Data' } else { return $DisplayName } + } + + function Get-ApplicationNameFromId { + param ($ID, $Applications, $ServicePrincipals) + if ($id -eq 'All') { return 'All' } + $return = $ServicePrincipals | Where-Object { $_.appId -eq $ID } | Select-Object -ExpandProperty DisplayName + if ([string]::IsNullOrEmpty($return)) { + $return = $Applications | Where-Object { $_.Appid -eq $ID } | Select-Object -ExpandProperty DisplayName + } + if ([string]::IsNullOrEmpty($return)) { + $return = $Applications | Where-Object { $_.ID -eq $ID } | Select-Object -ExpandProperty DisplayName + } + if ([string]::IsNullOrEmpty($return)) { $return = '' } + return $return + } + #EndRegion Helper functions + + $Tenant = Get-Tenants -TenantFilter $Item.customerId + $domainName = $Tenant.defaultDomainName + $Table = Get-CIPPTable -TableName 'cacheCAPolicies' + + try { + $Requests = @( + @{ + id = 'policies' + url = 'identity/conditionalAccess/policies' + method = 'GET' + } + @{ + id = 'namedLocations' + url = 'identity/conditionalAccess/namedLocations' + method = 'GET' + } + @{ + id = 'applications' + url = 'applications?$top=999&$select=appId,displayName' + method = 'GET' + } + @{ + id = 'roleDefinitions' + url = 'roleManagement/directory/roleDefinitions?$select=id,displayName' + method = 'GET' + } + @{ + id = 'groups' + url = 'groups?$top=999&$select=id,displayName' + method = 'GET' + } + @{ + id = 'users' + url = 'users?$top=999&$select=id,displayName,userPrincipalName' + method = 'GET' + } + @{ + id = 'servicePrincipals' + url = 'servicePrincipals?$top=999&$select=appId,displayName' + method = 'GET' + } + ) + + $BulkResults = New-GraphBulkRequest -Requests $Requests -tenantid $domainName -asapp $true + + $ConditionalAccessPolicyOutput = ($BulkResults | Where-Object { $_.id -eq 'policies' }).body.value + $AllNamedLocations = ($BulkResults | Where-Object { $_.id -eq 'namedLocations' }).body.value + $AllApplications = ($BulkResults | Where-Object { $_.id -eq 'applications' } ).body.value + $AllRoleDefinitions = ($BulkResults | Where-Object { $_.id -eq 'roleDefinitions' }).body.value + $GroupListOutput = ($BulkResults | Where-Object { $_.id -eq 'groups' }).body.value + $UserListOutput = ($BulkResults | Where-Object { $_.id -eq 'users' }).body.value + $AllServicePrincipals = ($BulkResults | Where-Object { $_.id -eq 'servicePrincipals' }).body.value + + foreach ($cap in $ConditionalAccessPolicyOutput) { + $GUID = (New-Guid).Guid + $PolicyData = @{ + id = $cap.id + displayName = $cap.displayName + customer = $cap.Customer + Tenant = $domainName + createdDateTime = $(if (![string]::IsNullOrEmpty($cap.createdDateTime)) { [datetime]$cap.createdDateTime } else { '' }) + modifiedDateTime = $(if (![string]::IsNullOrEmpty($cap.modifiedDateTime)) { [datetime]$cap.modifiedDateTime } else { '' }) + state = $cap.state + clientAppTypes = ($cap.conditions.clientAppTypes) -join ',' + includePlatforms = ($cap.conditions.platforms.includePlatforms) -join ',' + excludePlatforms = ($cap.conditions.platforms.excludePlatforms) -join ',' + includeLocations = (Get-LocationNameFromId -Locations $AllNamedLocations -id $cap.conditions.locations.includeLocations) -join ',' + excludeLocations = (Get-LocationNameFromId -Locations $AllNamedLocations -id $cap.conditions.locations.excludeLocations) -join ',' + includeApplications = ($cap.conditions.applications.includeApplications | ForEach-Object { Get-ApplicationNameFromId -Applications $AllApplications -ServicePrincipals $AllServicePrincipals -id $_ }) -join ',' + excludeApplications = ($cap.conditions.applications.excludeApplications | ForEach-Object { Get-ApplicationNameFromId -Applications $AllApplications -ServicePrincipals $AllServicePrincipals -id $_ }) -join ',' + includeUserActions = ($cap.conditions.applications.includeUserActions | Out-String) + includeAuthenticationContextClassReferences = ($cap.conditions.applications.includeAuthenticationContextClassReferences | Out-String) + includeUsers = ($cap.conditions.users.includeUsers | ForEach-Object { Get-UserNameFromId -Users $UserListOutput -id $_ }) | Out-String + excludeUsers = ($cap.conditions.users.excludeUsers | ForEach-Object { Get-UserNameFromId -Users $UserListOutput -id $_ }) | Out-String + includeGroups = ($cap.conditions.users.includeGroups | ForEach-Object { Get-GroupNameFromId -Groups $GroupListOutput -id $_ }) | Out-String + excludeGroups = ($cap.conditions.users.excludeGroups | ForEach-Object { Get-GroupNameFromId -Groups $GroupListOutput -id $_ }) | Out-String + includeRoles = ($cap.conditions.users.includeRoles | ForEach-Object { Get-RoleNameFromId -RoleDefinitions $AllRoleDefinitions -id $_ }) | Out-String + excludeRoles = ($cap.conditions.users.excludeRoles | ForEach-Object { Get-RoleNameFromId -RoleDefinitions $AllRoleDefinitions -id $_ }) | Out-String + grantControlsOperator = ($cap.grantControls.operator) -join ',' + builtInControls = ($cap.grantControls.builtInControls) -join ',' + customAuthenticationFactors = ($cap.grantControls.customAuthenticationFactors) -join ',' + termsOfUse = ($cap.grantControls.termsOfUse) -join ',' + rawjson = ($cap | ConvertTo-Json -Depth 100) + } + + $Entity = @{ + Policy = [string]($PolicyData | ConvertTo-Json -Depth 10 -Compress) + RowKey = [string]$GUID + PartitionKey = 'CAPolicy' + Tenant = [string]$domainName + } + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force | Out-Null + } + + } catch { + $GUID = (New-Guid).Guid + $ErrorPolicy = ConvertTo-Json -InputObject @{ + Tenant = $domainName + displayName = "Could not connect to Tenant: $($_.Exception.Message)" + state = 'Error' + createdDateTime = (Get-Date).ToString('s') + modifiedDateTime = (Get-Date).ToString('s') + id = 'Error' + clientAppTypes = 'CIPP' + } -Compress + $Entity = @{ + Policy = [string]$ErrorPolicy + RowKey = [string]$GUID + PartitionKey = 'CAPolicy' + Tenant = [string]$domainName + } + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force | Out-Null + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListLicensesQueue.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListLicensesQueue.ps1 index 562834b46c99..2a9c65d73acb 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListLicensesQueue.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListLicensesQueue.ps1 @@ -11,16 +11,22 @@ function Push-ListLicensesQueue { $domainName = $Item.defaultDomainName try { Write-Host "Processing $domainName" - $Overview = Get-CIPPLicenseOverview -TenantFilter $domainName + $Licenses = Get-CIPPLicenseOverview -TenantFilter $domainName } catch { - $Overview = [pscustomobject]@{ + $Licenses = [pscustomobject]@{ Tenant = [string]$domainName License = "Could not connect to client: $($_.Exception.Message)" 'PartitionKey' = 'License' - 'RowKey' = "$($domainName)-$((New-Guid).Guid)" + 'RowKey' = "$($domainName)" } } finally { $Table = Get-CIPPTable -TableName cachelicenses + $JSON = ConvertTo-Json -Depth 10 -Compress -InputObject @($Licenses) + $Overview = [pscustomobject]@{ + License = [string]$JSON + 'PartitionKey' = 'License' + 'RowKey' = "$($domainName)" + } Add-CIPPAzDataTableEntity @Table -Entity $Overview -Force | Out-Null } -} \ No newline at end of file +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListMailQuarantineAllTenants.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListMailQuarantineAllTenants.ps1 index 0f46c617dd0d..34398c9567bd 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListMailQuarantineAllTenants.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListMailQuarantineAllTenants.ps1 @@ -12,7 +12,7 @@ try { $quarantineMessages = New-ExoRequest -tenantid $domainName -cmdlet 'Get-QuarantineMessage' -cmdParams @{ 'PageSize' = 1000 } | Select-Object -ExcludeProperty *data.type* - $GraphRequest = foreach ($message in $quarantineMessages) { + foreach ($message in $quarantineMessages) { $messageData = @{ QuarantineMessage = [string]($message | ConvertTo-Json -Depth 10 -Compress) RowKey = [string](New-Guid).Guid diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListMailboxRulesQueue.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListMailboxRulesQueue.ps1 index 1c826fbfa0cb..b26603bd13e0 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListMailboxRulesQueue.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListMailboxRulesQueue.ps1 @@ -12,14 +12,20 @@ function Push-ListMailboxRulesQueue { $Table = Get-CIPPTable -TableName cachembxrules try { - $Rules = New-ExoRequest -tenantid $domainName -cmdlet 'Get-Mailbox' -Select 'userPrincipalName,GUID' | ForEach-Object -Parallel { - Import-Module CIPPCore - $MbxRules = New-ExoRequest -Anchor $_.UserPrincipalName -tenantid $using:domainName -cmdlet 'Get-InboxRule' -cmdParams @{Mailbox = $_.GUID; IncludeHidden = $true } | Where-Object { $_.Name -ne 'Junk E-Mail Rule' -and $_.Name -notlike 'Microsoft.Exchange.OOF.*' } - foreach ($Rule in $MbxRules) { - $Rule | Add-Member -NotePropertyName 'UserPrincipalName' -NotePropertyValue $_.userPrincipalName - $Rule + $Mailboxes = New-ExoRequest -tenantid $domainName -cmdlet 'Get-Mailbox' -Select 'userPrincipalName,GUID' + $Request = $Mailboxes | ForEach-Object { + @{ + OperationGuid = $_.UserPrincipalName + CmdletInput = @{ + CmdletName = 'Get-InboxRule' + Parameters = @{ + Mailbox = $_.UserPrincipalName + } + } } } + + $Rules = New-ExoBulkRequest -tenantid $domainName -cmdletArray @($Request) | Where-Object { $_.Identity } if (($Rules | Measure-Object).Count -gt 0) { $GraphRequest = foreach ($Rule in $Rules) { [PSCustomObject]@{ diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListTenantAllowBlockListAllTenants.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListTenantAllowBlockListAllTenants.ps1 new file mode 100644 index 000000000000..e249acc59c92 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListTenantAllowBlockListAllTenants.ps1 @@ -0,0 +1,46 @@ +function Push-ListTenantAllowBlockListAllTenants { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param($Item) + + $Tenant = Get-Tenants -TenantFilter $Item.customerId + $domainName = $Tenant.defaultDomainName + $Table = Get-CIPPTable -TableName 'cacheTenantAllowBlockList' + $ListTypes = 'Sender', 'Url', 'FileHash', 'IP' + + try { + foreach ($ListType in $ListTypes) { + $Entries = New-ExoRequest -tenantid $domainName -cmdlet 'Get-TenantAllowBlockListItems' -cmdParams @{ ListType = $ListType } + foreach ($Entry in $Entries) { + $CleanEntry = $Entry | Select-Object -ExcludeProperty *'@data.type'*, *'(DateTime])'* + $CleanEntry | Add-Member -MemberType NoteProperty -Name Tenant -Value $domainName -Force + $CleanEntry | Add-Member -MemberType NoteProperty -Name ListType -Value $ListType -Force + $Entity = @{ + Entry = [string]($CleanEntry | ConvertTo-Json -Depth 10 -Compress) + RowKey = [string](New-Guid).Guid + PartitionKey = 'TenantAllowBlockList' + Tenant = [string]$domainName + } + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force | Out-Null + } + } + } catch { + $ErrorEntry = [pscustomobject]@{ + Tenant = $domainName + ListType = 'Error' + Identity = 'Error' + DisplayName = "Could not retrieve tenant allow/block list: $($_.Exception.Message)" + Timestamp = (Get-Date).ToString('s') + } + $Entity = @{ + Entry = [string]($ErrorEntry | ConvertTo-Json -Depth 10 -Compress) + RowKey = [string](New-Guid).Guid + PartitionKey = 'TenantAllowBlockList' + Tenant = [string]$domainName + } + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force | Out-Null + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-SchedulerCIPPNotifications.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-SchedulerCIPPNotifications.ps1 index 23e199078efc..bc1d438f1a99 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-SchedulerCIPPNotifications.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-SchedulerCIPPNotifications.ps1 @@ -106,7 +106,7 @@ function Push-SchedulerCIPPNotifications { try { Write-Information $($config | ConvertTo-Json) Write-Information $config.webhook - if ($Config.webhook -ne '' -and $null) { + if (![string]::IsNullOrEmpty($config.webhook)) { if ($Currentlog) { $JSONContent = $Currentlog | ConvertTo-Json -Compress Send-CIPPAlert -Type 'webhook' -JSONContent $JSONContent -TenantFilter $Tenant -APIName 'Alerts' @@ -115,6 +115,7 @@ function Push-SchedulerCIPPNotifications { } if ($CurrentStandardsLogs) { + $Data = $CurrentStandardsLogs $JSONContent = New-CIPPAlertTemplate -Data $Data -Format 'json' -InputObject 'table' -CIPPURL $CIPPURL $CurrentStandardsLogs | ConvertTo-Json -Compress Send-CIPPAlert -Type 'webhook' -JSONContent $JSONContent -TenantFilter $Tenant -APIName 'Alerts' diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-UpdateTenants.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-UpdateTenants.ps1 index d3ef1e2711c8..d4674c69038b 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-UpdateTenants.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-UpdateTenants.ps1 @@ -5,7 +5,7 @@ function Push-UpdateTenants { #> Param($Item) $QueueReference = 'UpdateTenants' - $RunningQueue = Invoke-ListCippQueue | Where-Object { $_.Reference -eq $QueueReference -and $_.Status -ne 'Completed' -and $_.Status -ne 'Failed' } + $RunningQueue = Invoke-ListCippQueue -Reference $QueueReference | Where-Object { $_.Status -ne 'Completed' -and $_.Status -ne 'Failed' } $Queue = New-CippQueueEntry -Name 'Update Tenants' -Reference $QueueReference -TotalTasks 1 try { diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPDriftManagement.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPDriftManagement.ps1 new file mode 100644 index 000000000000..bdd3d2d2bf81 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPDriftManagement.ps1 @@ -0,0 +1,91 @@ +function Push-CippDriftManagement { + <# + .FUNCTIONALITY + Entrypoint + #> + param ( + $Item + ) + + Write-Information "Received drift standard item for $($Item.Tenant)" + + try { + $Drift = Get-CIPPDrift -TenantFilter $Item.Tenant + if ($Drift.newDeviationsCount -gt 0) { + $Settings = $Drift.driftSettings + $email = $Settings.driftAlertEmail + $webhook = $Settings.driftAlertWebhook + $CippConfigTable = Get-CippTable -tablename Config + $CippConfig = Get-CIPPAzDataTableEntity @CippConfigTable -Filter "PartitionKey eq 'InstanceProperties' and RowKey eq 'CIPPURL'" + $CIPPURL = 'https://{0}' -f $CippConfig.Value + + # Process deviations more efficiently with foreach instead of ForEach-Object + $Data = foreach ($deviation in $Drift.currentDeviations) { + $currentValue = if ($deviation.receivedValue -and $deviation.receivedValue.Length -gt 200) { + $deviation.receivedValue.Substring(0, 200) + '...' + } else { + $deviation.receivedValue + } + [PSCustomObject]@{ + Standard = $deviation.standardDisplayName ? $deviation.standardDisplayName : $deviation.standardName + 'Expected Value' = $deviation.expectedValue + 'Current Value' = $currentValue + Status = $deviation.status + } + } + + $GenerateEmail = New-CIPPAlertTemplate -format 'html' -data $Data -CIPPURL $CIPPURL -Tenant $Item.Tenant -InputObject 'driftStandard' -AuditLogLink $drift.standardId + + # Check if notifications are disabled (default to false if not set) + if (-not $Settings.driftAlertDisableEmail) { + # Send email alert if configured + $CIPPAlert = @{ + Type = 'email' + Title = $GenerateEmail.title + HTMLContent = $GenerateEmail.htmlcontent + TenantFilter = $Item.Tenant + } + Write-Information "Sending email alert for tenant $($Item.Tenant)" + Send-CIPPAlert @CIPPAlert -altEmail $email + + # Send webhook alert if configured + $WebhookData = @{ + Title = $GenerateEmail.title + ActionUrl = $GenerateEmail.ButtonUrl + ActionText = $GenerateEmail.ButtonText + AlertData = $Data + Tenant = $Item.Tenant + } | ConvertTo-Json -Depth 5 -Compress + $CippAlert = @{ + Type = 'webhook' + Title = $GenerateEmail.title + JSONContent = $WebhookData + TenantFilter = $Item.Tenant + } + Write-Information "Sending webhook alert for tenant $($Item.Tenant)" + Send-CIPPAlert @CippAlert -altWebhook $webhook + + # Send PSA alert + $CIPPAlert = @{ + Type = 'psa' + Title = $GenerateEmail.title + HTMLContent = $GenerateEmail.htmlcontent + TenantFilter = $Item.Tenant + } + Send-CIPPAlert @CIPPAlert + } else { + Write-Information "All notifications disabled for tenant $($Item.Tenant)" + } + return $true + } else { + Write-LogMessage -API 'DriftStandards' -tenant $Item.Tenant -message "No new drift deviations found for tenant $($Item.Tenant)" -sev Info + return $true + } + Write-Information "Drift management completed for tenant $($Item.Tenant)" + } catch { + Write-LogMessage -API 'DriftStandards' -tenant $Item.Tenant -message "Error running Drift Check for tenant $($Item.Tenant) - $($_.Exception.Message)" -sev Error -LogData (Get-CippException -Exception $_) + Write-Warning "Error running drift standards for tenant $($Item.Tenant) - $($_.Exception.Message)" + Write-Information $_.InvocationInfo.PositionMessage + throw $_.Exception.Message + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandard.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandard.ps1 index 04402cf8662f..996c224490d9 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandard.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandard.ps1 @@ -8,24 +8,126 @@ function Push-CIPPStandard { ) Write-Information "Received queue item for $($Item.Tenant) and standard $($Item.Standard)." + $Tenant = $Item.Tenant $Standard = $Item.Standard $FunctionName = 'Invoke-CIPPStandard{0}' -f $Standard + Write-Information "We'll be running $FunctionName" - $Rerun = Test-CIPPRerun -Type Standard -Tenant $Tenant -API "$($Standard)_$($Item.templateId)" + + if ($Standard -in @('IntuneTemplate', 'ConditionalAccessTemplate')) { + $API = "$($Standard)_$($Item.TemplateId)_$($Item.Settings.TemplateList.value)" + } else { + $API = "$($Standard)_$($Item.TemplateId)" + } + + $Rerun = Test-CIPPRerun -Type Standard -Tenant $Tenant -API $API if ($Rerun) { Write-Information 'Detected rerun. Exiting cleanly' exit 0 } else { Write-Information "Rerun is set to false. We'll be running $FunctionName" } + + $StandardInfo = @{ + Standard = $Standard + StandardTemplateId = $Item.TemplateId + } + if ($Standard -eq 'IntuneTemplate') { + $StandardInfo.IntuneTemplateId = $Item.Settings.TemplateList.value + } + if ($Standard -eq 'ConditionalAccessTemplate') { + $StandardInfo.ConditionalAccessTemplateId = $Item.Settings.TemplateList.value + } + + # Initialize AsyncLocal storage for thread-safe per-invocation context + if (-not $script:CippStandardInfoStorage) { + $script:CippStandardInfoStorage = [System.Threading.AsyncLocal[object]]::new() + } + $script:CippStandardInfoStorage.Value = $StandardInfo + + # ---- Standard execution telemetry ---- + $runId = [guid]::NewGuid().ToString() + $invocationId = if ($ExecutionContext -and $ExecutionContext.InvocationId) { + "$($ExecutionContext.InvocationId)" + } else { + $null + } + + $sw = [System.Diagnostics.Stopwatch]::StartNew() + $result = 'Unknown' + $err = $null + + Write-Information -Tag 'CIPPStandardStart' -MessageData (@{ + Kind = 'CIPPStandardStart' + RunId = $runId + InvocationId = $invocationId + Tenant = $Tenant + Standard = $Standard + TemplateId = $Item.TemplateId + API = $API + FunctionName = $FunctionName + } | ConvertTo-Json -Compress) + # ------------------------------------- + try { - & $FunctionName -Tenant $Item.Tenant -Settings $Item.Settings -ErrorAction Stop + # Convert settings to JSON, replace %variables%, then convert back to object + $SettingsJSON = $Item.Settings | ConvertTo-Json -Depth 10 -Compress + if ($SettingsJSON -match '%') { + $Settings = Get-CIPPTextReplacement -TenantFilter $Item.Tenant -Text $SettingsJSON | ConvertFrom-Json + } else { + $Settings = $Item.Settings + } + + # Prepare telemetry metadata for standard execution + $metadata = @{ + Standard = $Standard + Tenant = $Tenant + TemplateId = $Item.TemplateId + FunctionName = $FunctionName + TriggerType = 'Standard' + } + + if ($Standard -eq 'IntuneTemplate' -and $Item.Settings.TemplateList.value) { + $metadata['IntuneTemplateId'] = $Item.Settings.TemplateList.value + } + if ($Standard -eq 'ConditionalAccessTemplate' -and $Item.Settings.TemplateList.value) { + $metadata['CATemplateId'] = $Item.Settings.TemplateList.value + } + + Measure-CippTask -TaskName $Standard -EventName 'CIPP.StandardCompleted' -Metadata $metadata -Script { + & $FunctionName -Tenant $Item.Tenant -Settings $Settings -ErrorAction Stop + } + + $result = 'Success' Write-Information "Standard $($Standard) completed for tenant $($Tenant)" } catch { + $result = 'Failed' + $err = $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Error running standard $($Standard) for tenant $($Tenant) - $($_.Exception.Message)" -sev Error -LogData (Get-CippException -Exception $_) Write-Warning "Error running standard $($Standard) for tenant $($Tenant) - $($_.Exception.Message)" Write-Information $_.InvocationInfo.PositionMessage throw $_.Exception.Message + } finally { + $sw.Stop() + + Write-Information -Tag 'CIPPStandardEnd' -MessageData (@{ + Kind = 'CIPPStandardEnd' + RunId = $runId + InvocationId = $invocationId + Tenant = $Tenant + Standard = $Standard + TemplateId = $Item.TemplateId + API = $API + FunctionName = $FunctionName + Result = $result + ElapsedMs = $sw.ElapsedMilliseconds + Error = $err + } | ConvertTo-Json -Compress) + + if ($script:CippStandardInfoStorage) { + $script:CippStandardInfoStorage.Value = $null + } } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandardsApplyBatch.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandardsApplyBatch.ps1 new file mode 100644 index 000000000000..da334d1686a2 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandardsApplyBatch.ps1 @@ -0,0 +1,41 @@ +function Push-CIPPStandardsApplyBatch { + <# + .FUNCTIONALITY + Entrypoint + #> + param($Item) + + try { + # Aggregate all standards from all tenants + $AllStandards = $Item.Results | ForEach-Object { + foreach ($Standard in $_) { + if ($Standard -and $Standard.FunctionName -eq 'CIPPStandard') { + $Standard + } + } + } + + if ($AllStandards.Count -eq 0) { + Write-Information 'No standards to apply across all tenants' + return + } + + Write-Information "Aggregated $($AllStandards.Count) standards from all tenants: $($AllStandards | ConvertTo-Json -Depth 5 -Compress)" + + # Start orchestrator to apply standards + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'StandardsApply' + Batch = @($AllStandards) + SkipLog = $true + } | ConvertTo-Json -Depth 25 -Compress + Write-Host "Standards InputObject: $InputObject" + $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject $InputObject + Write-Information "Started standards apply orchestrator with ID = '$InstanceId'" + + } catch { + Write-Warning "Error in standards apply batch aggregation: $($_.Exception.Message)" + } + return @{ + Success = $true + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandardsList.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandardsList.ps1 new file mode 100644 index 000000000000..9cd477e3b68a --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandardsList.ps1 @@ -0,0 +1,200 @@ +function Push-CIPPStandardsList { + <# + .FUNCTIONALITY + Entrypoint + #> + param($Item) + + $TenantFilter = $Item.TenantFilter + $runManually = $Item.runManually + $TemplateId = $Item.TemplateId + + try { + # Get standards for this tenant + $GetStandardParams = @{ + TenantFilter = $TenantFilter + runManually = $runManually + } + if ($TemplateId) { + $GetStandardParams['TemplateId'] = $TemplateId + } + + $AllStandards = Get-CIPPStandards @GetStandardParams + + if ($AllStandards.Count -eq 0) { + Write-Information "No standards found for tenant $TenantFilter" + return @() + } + Write-Host "Retrieved $($AllStandards.Count) standards for tenant $TenantFilter before filtering." + # Build hashtable for efficient lookup + $ComputedStandards = @{} + foreach ($Standard in $AllStandards) { + $Key = "$($Standard.Standard)|$($Standard.Settings.TemplateList.value)" + $ComputedStandards[$Key] = $Standard + } + + # Check if IntuneTemplate standards are present + $IntuneTemplateFound = ($ComputedStandards.Keys.Where({ $_ -like '*IntuneTemplate*' }, 'First').Count -gt 0) + + if ($IntuneTemplateFound) { + # Perform license check + $TestResult = Test-CIPPStandardLicense -StandardName 'IntuneTemplate_general' -TenantFilter $TenantFilter -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') + + if (-not $TestResult) { + # Remove IntuneTemplate standards and set compare fields + $IntuneKeys = @($ComputedStandards.Keys | Where-Object { $_ -like '*IntuneTemplate*' }) + $BulkFields = [System.Collections.Generic.List[object]]::new() + + foreach ($Key in $IntuneKeys) { + $TemplateKey = ($Key -split '\|', 2)[1] + if ($TemplateKey) { + $BulkFields.Add([PSCustomObject]@{ + FieldName = "standards.IntuneTemplate.$TemplateKey" + FieldValue = 'This tenant does not have the required license for this standard.' + }) + } + [void]$ComputedStandards.Remove($Key) + } + + if ($BulkFields.Count -gt 0) { + Set-CIPPStandardsCompareField -TenantFilter $TenantFilter -BulkFields $BulkFields + } + + Write-Information "Removed IntuneTemplate standards for $TenantFilter - missing required license" + } else { + # License valid - check policy timestamps to filter unchanged templates + $TypeMap = @{ + Device = 'deviceManagement/deviceConfigurations' + Catalog = 'deviceManagement/configurationPolicies' + Admin = 'deviceManagement/groupPolicyConfigurations' + deviceCompliancePolicies = 'deviceManagement/deviceCompliancePolicies' + AppProtection_Android = 'deviceAppManagement/androidManagedAppProtections' + AppProtection_iOS = 'deviceAppManagement/iosManagedAppProtections' + } + + $BulkRequests = $TypeMap.GetEnumerator() | ForEach-Object { + @{ + id = $_.Key + url = "$($_.Value)?`$orderby=lastModifiedDateTime desc&`$select=id,lastModifiedDateTime&`$top=999" + method = 'GET' + } + } + + try { + $TrackingTable = Get-CippTable -tablename 'IntunePolicyTypeTracking' + $BulkResults = New-GraphBulkRequest -Requests $BulkRequests -tenantid $TenantFilter -NoPaginateIds @($BulkRequests.id) + $PolicyTimestamps = @{} + + foreach ($Result in $BulkResults) { + $GraphTime = $Result.body.value[0].lastModifiedDateTime + $GraphId = $Result.body.value[0].id + $GraphCount = ($Result.body.value | Measure-Object).Count + $Cached = Get-CIPPAzDataTableEntity @TrackingTable -Filter "PartitionKey eq '$TenantFilter' and RowKey eq '$($Result.id)'" + + $CountChanged = $false + if ($Cached -and $Cached.PolicyCount -ne $null) { + $CountChanged = ($GraphCount -ne $Cached.PolicyCount) + } + + $IdChanged = $false + if ($GraphId -and $Cached -and $Cached.LatestPolicyId) { + $IdChanged = ($GraphId -ne $Cached.LatestPolicyId) + } + + if ($GraphTime) { + $GraphTimeUtc = ([DateTime]$GraphTime).ToUniversalTime() + if ($Cached -and $Cached.LatestPolicyModified -and -not $IdChanged -and -not $CountChanged) { + $CachedTimeUtc = ([DateTimeOffset]$Cached.LatestPolicyModified).UtcDateTime + $TimeDiff = [Math]::Abs(($GraphTimeUtc - $CachedTimeUtc).TotalSeconds) + $Changed = ($TimeDiff -gt 60) + } else { + $Changed = $true + } + Add-CIPPAzDataTableEntity @TrackingTable -Entity @{ + PartitionKey = $TenantFilter + RowKey = $Result.id + LatestPolicyModified = $GraphTime + LatestPolicyId = $GraphId + PolicyCount = $GraphCount + } -Force | Out-Null + } else { + $Changed = $true + } + + $PolicyTimestamps[$Result.id] = $Changed + } + + # Filter unchanged templates + $TemplateTable = Get-CippTable -tablename 'templates' + $StandardTemplateTable = Get-CippTable -tablename 'templates' + $IntuneKeys = @($ComputedStandards.Keys | Where-Object { $_ -like '*IntuneTemplate*' }) + + foreach ($Key in $IntuneKeys) { + $Template = $ComputedStandards[$Key] + $TemplateEntity = Get-CIPPAzDataTableEntity @TemplateTable -Filter "PartitionKey eq 'IntuneTemplate' and RowKey eq '$($Template.Settings.TemplateList.value)'" + + if (-not $TemplateEntity) { continue } + + $ParsedTemplate = $TemplateEntity.JSON | ConvertFrom-Json + if (-not $ParsedTemplate.Type) { continue } + + $PolicyType = $ParsedTemplate.Type + $PolicyChanged = if ($PolicyType -eq 'AppProtection') { + [bool]($PolicyTimestamps['AppProtection_Android'] -or $PolicyTimestamps['AppProtection_iOS']) + } else { + [bool]$PolicyTimestamps[$PolicyType] + } + + # Check StandardTemplate changes + $StandardTemplate = Get-CIPPAzDataTableEntity @StandardTemplateTable -Filter "PartitionKey eq 'StandardsTemplateV2' and RowKey eq '$($Template.TemplateId)'" + $StandardTemplateChanged = $false + + if ($StandardTemplate) { + $StandardTimeUtc = ([DateTimeOffset]$StandardTemplate.Timestamp).UtcDateTime + $CachedStandardTemplate = Get-CIPPAzDataTableEntity @TrackingTable -Filter "PartitionKey eq '$TenantFilter' and RowKey eq 'StandardTemplate_$($Template.TemplateId)'" + + if ($CachedStandardTemplate -and $CachedStandardTemplate.CachedTimestamp) { + $CachedStandardTimeUtc = ([DateTimeOffset]$CachedStandardTemplate.CachedTimestamp).UtcDateTime + $TimeDiff = [Math]::Abs(($StandardTimeUtc - $CachedStandardTimeUtc).TotalSeconds) + $StandardTemplateChanged = ($TimeDiff -gt 60) + } else { + $StandardTemplateChanged = $true + } + + Add-CIPPAzDataTableEntity @TrackingTable -Entity @{ + PartitionKey = $TenantFilter + RowKey = "StandardTemplate_$($Template.TemplateId)" + CachedTimestamp = $StandardTemplate.Timestamp + } -Force | Out-Null + } + + # Remove if both unchanged + if (-not $PolicyChanged -and -not $StandardTemplateChanged) { +x [void]$ComputedStandards.Remove($Key) + } + } + } catch { + Write-Warning "Timestamp check failed for $TenantFilter : $($_.Exception.Message)" + } + } + } + + Write-Host "Returning $($ComputedStandards.Count) standards for tenant $TenantFilter after filtering." + # Return filtered standards + $FilteredStandards = $ComputedStandards.Values | ForEach-Object { + [PSCustomObject]@{ + Tenant = $_.Tenant + Standard = $_.Standard + Settings = $_.Settings + TemplateId = $_.TemplateId + FunctionName = 'CIPPStandard' + } + } + Write-Host "Sending back $($FilteredStandards.Count) standards: $($FilteredStandards | ConvertTo-Json -Depth 5 -Compress)" + return $FilteredStandards + + } catch { + Write-Warning "Error listing standards for $TenantFilter : $($_.Exception.Message)" + return @() + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tenant Groups/Push-UpdateDynamicTenantGroup.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tenant Groups/Push-UpdateDynamicTenantGroup.ps1 new file mode 100644 index 000000000000..4a3af5c2a6bf --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tenant Groups/Push-UpdateDynamicTenantGroup.ps1 @@ -0,0 +1,14 @@ +function Push-UpdateDynamicTenantGroup { + <# + .SYNOPSIS + Push an update to a Dynamic Tenant Group + .FUNCTIONALITY + Entrypoint + #> + + [CmdletBinding()] + param ($Item) + + Write-Information "Pushing update to Dynamic Tenant Group: $($Item.Name) (ID: $($Item.Id))" + Update-CIPPDynamicTenantGroups -GroupId $Item.Id +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tests/Invoke-CIPPDBTestsRun.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tests/Invoke-CIPPDBTestsRun.ps1 new file mode 100644 index 000000000000..e4ecb119bdcb --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tests/Invoke-CIPPDBTestsRun.ps1 @@ -0,0 +1,79 @@ +function Invoke-CIPPDBTestsRun { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Tests.Read + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false)] + [string]$TenantFilter = 'allTenants' + ) + + Write-Information "Starting tests run for tenant: $TenantFilter" + + Write-Host 'Checking rerun protection' + $RerunParams = @{ + TenantFilter = $TenantFilter + Type = 'CippTests' + API = 'CippTests' + } + $Rerun = Test-CIPPRerun @RerunParams + if ($Rerun -eq $true) { + Write-Host "rerun is true for $($TenantFilter)" + return $true + } + try { + $AllTenantsList = if ($TenantFilter -eq 'allTenants') { + $DbCounts = Get-CIPPDbItem -CountsOnly -TenantFilter 'allTenants' + $TenantsWithData = $DbCounts | Where-Object { $_.Count -gt 0 } | Select-Object -ExpandProperty PartitionKey -Unique + Write-Information "Found $($TenantsWithData.Count) tenants with data in database" + $TenantsWithData + } else { + $DbCounts = Get-CIPPDbItem -TenantFilter $TenantFilter -CountsOnly + if (($DbCounts | Measure-Object -Property DataCount -Sum).Sum -gt 0) { + @($TenantFilter) + } else { + Write-LogMessage -API 'Tests' -tenant $TenantFilter -message 'Tenant has no data in database. Skipping tests.' -sev Info + @() + } + } + + if ($AllTenantsList.Count -eq 0) { + Write-LogMessage -API 'Tests' -message 'No tenants with data found. Exiting.' -sev Info + return + } + + # Build batch of per-tenant list activities + # Each activity will start its own orchestrator for that tenant's tests + $Batch = foreach ($Tenant in $AllTenantsList) { + @{ + FunctionName = 'CIPPTestsList' + TenantFilter = $Tenant + } + } + + Write-Information "Built batch of $($Batch.Count) tenant test list activities" + + # Start orchestrator to dispatch per-tenant test orchestrators + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'TestsList' + Batch = @($Batch) + SkipLog = $true + } + + Write-Information "InputObject: $($InputObject | ConvertTo-Json -Depth 5 -Compress)" + $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + Write-Information "Started tests list orchestration with ID = '$InstanceId'" + + return @{ + InstanceId = $InstanceId + Message = "Tests orchestration started: $($AllTenantsList.Count) tenant orchestrators will be created" + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -message "Failed to start tests orchestration: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + throw $ErrorMessage + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tests/Push-CIPPTest.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tests/Push-CIPPTest.ps1 new file mode 100644 index 000000000000..5b2124a4dea0 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tests/Push-CIPPTest.ps1 @@ -0,0 +1,33 @@ +function Push-CIPPTest { + <# + .FUNCTIONALITY + Entrypoint + #> + param( + $Item + ) + + $TenantFilter = $Item.TenantFilter + $TestId = $Item.TestId + + Write-Information "Running test $TestId for tenant $TenantFilter" + + try { + $FunctionName = "Invoke-CippTest$TestId" + + if (-not (Get-Command $FunctionName -ErrorAction SilentlyContinue)) { + Write-LogMessage -API 'Tests' -tenant $TenantFilter -message "Test function not found: $FunctionName" -sev Error + return @{ testRun = $false } + } + + Write-Information "Executing $FunctionName for $TenantFilter" + & $FunctionName -Tenant $TenantFilter + Write-Host "Returning true, test has run for $tenantFilter" + return @{ testRun = $true } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $TenantFilter -message "Failed to run test $TestId $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + return @{ testRun = $false } + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tests/Push-CIPPTestsList.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tests/Push-CIPPTestsList.ps1 new file mode 100644 index 000000000000..dc5f57c87f4a --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tests/Push-CIPPTestsList.ps1 @@ -0,0 +1,67 @@ +function Push-CIPPTestsList { + <# + .FUNCTIONALITY + Entrypoint + #> + param($Item) + + $TenantFilter = $Item.TenantFilter + + try { + Write-Information "Building test list for tenant: $TenantFilter" + + # Get all test functions + $AllTests = Get-Command -Name 'Invoke-CippTest*' -Module CIPPCore | Select-Object -ExpandProperty Name | ForEach-Object { + $_ -replace '^Invoke-CippTest', '' + } + + if ($AllTests.Count -eq 0) { + Write-Information 'No test functions found' + return @() + } + + # Check if tenant has data + $DbCounts = Get-CIPPDbItem -TenantFilter $TenantFilter -CountsOnly + if (($DbCounts | Measure-Object -Property DataCount -Sum).Sum -eq 0) { + Write-Information "Tenant $TenantFilter has no data in database. Skipping tests." + return @() + } + + # Build test batch for this tenant + $TestBatch = foreach ($Test in $AllTests) { + [PSCustomObject]@{ + FunctionName = 'CIPPTest' + TenantFilter = $TenantFilter + TestId = $Test + } + } + + Write-Information "Built $($TestBatch.Count) test activities for tenant $TenantFilter" + + # Start orchestrator for this tenant's tests + $InputObject = [PSCustomObject]@{ + OrchestratorName = "TestsRun_$TenantFilter" + Batch = @($TestBatch) + SkipLog = $true + } + + $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + Write-Information "Started tests orchestrator for tenant $TenantFilter with ID = '$InstanceId'" + + return @{ + Success = $true + Tenant = $TenantFilter + InstanceId = $InstanceId + TestCount = $TestBatch.Count + } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $TenantFilter -message "Failed to start tests for tenant: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + return @{ + Success = $false + Tenant = $TenantFilter + Error = $ErrorMessage.NormalizedError + } + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tests/Push-CIPPTestsRun.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tests/Push-CIPPTestsRun.ps1 new file mode 100644 index 000000000000..c9f43f7211da --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tests/Push-CIPPTestsRun.ps1 @@ -0,0 +1,36 @@ +function Push-CIPPDBTestsRun { + <# + .SYNOPSIS + PostExecution function to run tests after data collection completes + .FUNCTIONALITY + Entrypoint + #> + param($Item) + + try { + $TenantFilter = $Item.Parameters.TenantFilter + Write-Information "PostExecution: Starting tests for tenant: $TenantFilter after data collection completed" + Write-LogMessage -API 'Tests' -tenant $TenantFilter -message 'Starting test run after data collection' -sev Info + + # Call the test run function + $Result = Invoke-CIPPDBTestsRun -TenantFilter $TenantFilter + + Write-LogMessage -API 'Tests' -tenant $TenantFilter -message "Test run started. Instance ID: $($Result.InstanceId)" -sev Info + Write-Information "PostExecution: Tests started with Instance ID: $($Result.InstanceId)" + + return @{ + Success = $true + InstanceId = $Result.InstanceId + Message = $Result.Message + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $TenantFilter -message "Failed to start test run: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Write-Warning "PostExecution: Error starting tests - $($ErrorMessage.NormalizedError)" + + return @{ + Success = $false + Error = $ErrorMessage.NormalizedError + } + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-AuditLogBundleProcessing.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-AuditLogBundleProcessing.ps1 deleted file mode 100644 index 20744662daa8..000000000000 --- a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-AuditLogBundleProcessing.ps1 +++ /dev/null @@ -1,42 +0,0 @@ -function Push-AuditLogBundleProcessing { - Param($Item) - - #return # Disabled for now, as it's not used - exit 0 - try { - $AuditBundleTable = Get-CippTable -tablename 'AuditLogBundles' - $AuditLogBundle = Get-CIPPAzDataTableEntity @AuditBundleTable -Filter "PartitionKey eq '$($Item.TenantFilter)' and RowKey eq '$($Item.ContentId)'" - if ($AuditLogBundle.ProcessingStatus -ne 'Pending') { - Write-Information 'Audit log bundle already processed' - return - } - try { - $AuditLogTest = Test-CIPPAuditLogRules -TenantFilter $Item.TenantFilter -LogType $AuditLogBundle.ContentType -ContentUri $AuditLogBundle.ContentUri - $AuditLogBundle.ProcessingStatus = 'Completed' - $AuditLogBundle.MatchedRules = [string](ConvertTo-Json -Compress -Depth 10 -InputObject $AuditLogTest.MatchedRules) - $AuditLogBundle.MatchedLogs = $AuditLogTest.MatchedLogs - } catch { - $AuditLogBundle.ProcessingStatus = 'Failed' - $AuditLogBundle | Add-Member -NotePropertyName Error -NotePropertyValue $_.InvocationInfo.PositionMessage -TypeName string - } - try { - Add-CIPPAzDataTableEntity @AuditBundleTable -Entity $AuditLogBundle -Force - } catch { - Write-Host ( 'Error logging audit bundle: {0} line {1} - {2}' -f $_.InvocationInfo.ScriptName, $_.InvocationInfo.ScriptLineNumber, $_.Exception.Message) - } - - $DataToProcess = ($AuditLogTest).DataToProcess - Write-Information "Webhook: Data to process found: $($DataToProcess.count) items" - foreach ($AuditLog in $DataToProcess) { - Write-Information "Processing $($AuditLog.operation)" - $Webhook = @{ - Data = $AuditLog - CIPPURL = [string]$AuditLogBundle.CIPPURL - TenantFilter = $Item.TenantFilter - } - Invoke-CippWebhookProcessing @Webhook - } - } catch { - Write-Host ( 'Audit log error {0} line {1} - {2}' -f $_.InvocationInfo.ScriptName, $_.InvocationInfo.ScriptLineNumber, $_.Exception.Message) - } -} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-AuditLogSearchCreation.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-AuditLogSearchCreation.ps1 new file mode 100644 index 000000000000..03f139511f6d --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-AuditLogSearchCreation.ps1 @@ -0,0 +1,72 @@ +function Push-AuditLogSearchCreation { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param($Item) + + # Get params from batch item + $Tenant = $Item.Tenant + $StartTime = $Item.StartTime + $EndTime = $Item.EndTime + $ServiceFilters = @($Item.ServiceFilters) + + try { + $LogSearch = @{ + StartTime = $StartTime + EndTime = $EndTime + ServiceFilters = $ServiceFilters + TenantFilter = $Tenant.defaultDomainName + ProcessLogs = $true + RecordTypeFilters = @( + 'exchangeAdmin', 'azureActiveDirectory', 'azureActiveDirectoryAccountLogon', 'dataCenterSecurityCmdlet', + 'complianceDLPSharePoint', 'complianceDLPExchange', 'azureActiveDirectoryStsLogon', 'skypeForBusinessPSTNUsage', + 'skypeForBusinessUsersBlocked', 'securityComplianceCenterEOPCmdlet', 'microsoftFlow', 'aeD', 'microsoftStream', + 'threatFinder', 'project', 'dataGovernance', 'securityComplianceAlerts', 'threatIntelligenceUrl', + 'securityComplianceInsights', 'mipLabel', 'workplaceAnalytics', 'powerAppsApp', 'powerAppsPlan', + 'threatIntelligenceAtpContent', 'labelContentExplorer', 'hygieneEvent', + 'dataInsightsRestApiAudit', 'informationBarrierPolicyApplication', 'microsoftTeamsAdmin', 'hrSignal', + 'informationWorkerProtection', 'campaign', 'dlpEndpoint', 'airInvestigation', 'quarantine', 'microsoftForms', + 'applicationAudit', 'complianceSupervisionExchange', 'customerKeyServiceEncryption', 'officeNative', + 'mipAutoLabelSharePointItem', 'mipAutoLabelSharePointPolicyLocation', 'secureScore', + 'mipAutoLabelExchangeItem', 'cortanaBriefing', 'search', 'wdatpAlerts', 'powerPlatformAdminDlp', + 'powerPlatformAdminEnvironment', 'mdatpAudit', 'sensitivityLabelPolicyMatch', 'sensitivityLabelAction', + 'sensitivityLabeledFileAction', 'attackSim', 'airManualInvestigation', 'securityComplianceRBAC', 'userTraining', + 'airAdminActionInvestigation', 'mstic', 'physicalBadgingSignal', 'aipDiscover', 'aipSensitivityLabelAction', + 'aipProtectionAction', 'aipFileDeleted', 'aipHeartBeat', 'mcasAlerts', 'onPremisesFileShareScannerDlp', + 'onPremisesSharePointScannerDlp', 'exchangeSearch', 'privacyDataMinimization', 'labelAnalyticsAggregate', + 'myAnalyticsSettings', 'securityComplianceUserChange', 'complianceDLPExchangeClassification', + 'complianceDLPEndpoint', 'mipExactDataMatch', 'msdeResponseActions', 'msdeGeneralSettings', 'msdeIndicatorsSettings', + 'ms365DCustomDetection', 'msdeRolesSettings', 'mapgAlerts', 'mapgPolicy', 'mapgRemediation', + 'privacyRemediationAction', 'privacyDigestEmail', 'mipAutoLabelSimulationProgress', 'mipAutoLabelSimulationCompletion', + 'mipAutoLabelProgressFeedback', 'dlpSensitiveInformationType', 'mipAutoLabelSimulationStatistics', + 'largeContentMetadata', 'microsoft365Group', 'cdpMlInferencingResult', 'filteringMailMetadata', + 'cdpClassificationMailItem', 'cdpClassificationDocument', 'officeScriptsRunAction', 'filteringPostMailDeliveryAction', + 'cdpUnifiedFeedback', 'tenantAllowBlockList', 'consumptionResource', 'healthcareSignal', 'dlpImportResult', + 'cdpCompliancePolicyExecution', 'multiStageDisposition', 'privacyDataMatch', 'filteringDocMetadata', + 'filteringEmailFeatures', 'powerBIDlp', 'filteringUrlInfo', 'filteringAttachmentInfo', 'coreReportingSettings', + 'complianceConnector', 'powerPlatformLockboxResourceAccessRequest', 'powerPlatformLockboxResourceCommand', + 'cdpPredictiveCodingLabel', 'cdpCompliancePolicyUserFeedback', 'webpageActivityEndpoint', 'omePortal', + 'cmImprovementActionChange', 'filteringUrlClick', 'mipLabelAnalyticsAuditRecord', 'filteringEntityEvent', + 'filteringRuleHits', 'filteringMailSubmission', 'labelExplorer', 'microsoftManagedServicePlatform', + 'powerPlatformServiceActivity', 'scorePlatformGenericAuditRecord', 'filteringTimeTravelDocMetadata', 'alert', + 'alertStatus', 'alertIncident', 'incidentStatus', 'case', 'caseInvestigation', 'recordsManagement', + 'privacyRemediation', 'dataShareOperation', 'cdpDlpSensitive', 'ehrConnector', 'filteringMailGradingResult', + 'microsoftTodoAudit', 'timeTravelFilteringDocMetadata', 'microsoftDefenderForIdentityAudit', + 'supervisoryReviewDayXInsight', 'defenderExpertsforXDRAdmin', 'cdpEdgeBlockedMessage', 'hostedRpa', + 'cdpContentExplorerAggregateRecord', 'cdpHygieneAttachmentInfo', 'cdpHygieneSummary', 'cdpPostMailDeliveryAction', + 'cdpEmailFeatures', 'cdpHygieneUrlInfo', 'cdpUrlClick', 'cdpPackageManagerHygieneEvent', 'filteringDocScan', + 'timeTravelFilteringDocScan', 'mapgOnboard' + ) + } + if ($PSCmdlet.ShouldProcess('Push-AuditLogSearchCreation', 'Creating Audit Log Search')) { + $NewSearch = New-CippAuditLogSearch @LogSearch + Write-Information "Created audit log search $($Tenant.defaultDomainName) - $($NewSearch.displayName)" + } + } catch { + Write-Information "Error creating audit log search $($Tenant.defaultDomainName) - $($_.Exception.Message)" + Write-Information $_.InvocationInfo.PositionMessage + } + return $true +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-AuditLogTenantDownload.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-AuditLogTenantDownload.ps1 index 88ae358c98a2..f7171d1cdac2 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-AuditLogTenantDownload.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-AuditLogTenantDownload.ps1 @@ -1,6 +1,5 @@ function Push-AuditLogTenantDownload { - Param($Item) - $ConfigTable = Get-CippTable -TableName 'WebhookRules' + param($Item) $TenantFilter = $Item.TenantFilter try { @@ -37,47 +36,43 @@ function Push-AuditLogTenantDownload { } else { $CIPPURL = 'https://{0}' -f $CippConfig.Value } } - # Get webhook rules - $ConfigEntries = Get-CIPPAzDataTableEntity @ConfigTable $LogSearchesTable = Get-CippTable -TableName 'AuditLogSearches' - $Configuration = $ConfigEntries | Where-Object { ($_.Tenants -match $TenantFilter -or $_.Tenants -match 'AllTenants') } - if ($Configuration) { - try { - $LogSearches = Get-CippAuditLogSearches -TenantFilter $TenantFilter -ReadyToProcess | Select-Object -First 10 - Write-Information ('Audit Logs: Found {0} searches, begin downloading' -f $LogSearches.Count) - foreach ($Search in $LogSearches) { - $SearchEntity = Get-CIPPAzDataTableEntity @LogSearchesTable -Filter "Tenant eq '$($TenantFilter)' and RowKey eq '$($Search.id)'" - $SearchEntity.CippStatus = 'Processing' - Add-CIPPAzDataTableEntity @LogSearchesTable -Entity $SearchEntity -Force - try { - Write-Information "Audit Log search: Processing search ID: $($Search.id) for tenant: $TenantFilter" - $Downloads = New-CIPPAuditLogSearchResultsCache -TenantFilter $TenantFilter -searchId $Search.id - $SearchEntity.CippStatus = 'Downloaded' - } catch { - if ($_.Exception.Message -match 'Request rate is large. More Request Units may be needed, so no changes were made. Please retry this request later.') { - $SearchEntity.CippStatus = 'Pending' - Write-Information "Audit Log search: Rate limit hit for $($SearchEntity.RowKey)." - if ($SearchEntity.PSObject.Properties.Name -contains 'RetryCount') { - $SearchEntity.RetryCount++ - } else { - $SearchEntity | Add-Member -MemberType NoteProperty -Name RetryCount -Value 1 - } + try { + $LogSearches = Get-CippAuditLogSearches -TenantFilter $TenantFilter -ReadyToProcess | Select-Object -First 10 + Write-Information ('Audit Logs: Found {0} searches, begin downloading' -f $LogSearches.Count) + foreach ($Search in $LogSearches) { + $SearchEntity = Get-CIPPAzDataTableEntity @LogSearchesTable -Filter "Tenant eq '$($TenantFilter)' and RowKey eq '$($Search.id)'" + $SearchEntity.CippStatus = 'Processing' + Add-CIPPAzDataTableEntity @LogSearchesTable -Entity $SearchEntity -Force + try { + Write-Information "Audit Log search: Processing search ID: $($Search.id) for tenant: $TenantFilter" + $Downloads = New-CIPPAuditLogSearchResultsCache -TenantFilter $TenantFilter -searchId $Search.id + $SearchEntity.CippStatus = 'Downloaded' + } catch { + if ($_.Exception.Message -match 'Request rate is large. More Request Units may be needed, so no changes were made. Please retry this request later.') { + $SearchEntity.CippStatus = 'Pending' + Write-Information "Audit Log search: Rate limit hit for $($SearchEntity.RowKey)." + if ($SearchEntity.PSObject.Properties.Name -contains 'RetryCount') { + $SearchEntity.RetryCount++ } else { - $Exception = [string](ConvertTo-Json -Compress -InputObject (Get-CippException -Exception $_)) - $SearchEntity | Add-Member -MemberType NoteProperty -Name Error -Value $Exception - $SearchEntity.CippStatus = 'Failed' - Write-Information "Error processing audit log rules: $($_.Exception.Message)" + $SearchEntity | Add-Member -MemberType NoteProperty -Name RetryCount -Value 1 } - + } else { + $Exception = [string](ConvertTo-Json -Compress -InputObject (Get-CippException -Exception $_)) + $SearchEntity | Add-Member -MemberType NoteProperty -Name Error -Value $Exception + $SearchEntity.CippStatus = 'Failed' + Write-Information "Error processing audit log rules: $($_.Exception.Message)" } - Add-CIPPAzDataTableEntity @LogSearchesTable -Entity $SearchEntity -Force + } - } catch { - Write-Information ('Audit Log search: Error {0} line {1} - {2}' -f $_.InvocationInfo.ScriptName, $_.InvocationInfo.ScriptLineNumber, $_.Exception.Message) - exit 0 + Add-CIPPAzDataTableEntity @LogSearchesTable -Entity $SearchEntity -Force } + } catch { + Write-Information ('Audit Log search: Error {0} line {1} - {2}' -f $_.InvocationInfo.ScriptName, $_.InvocationInfo.ScriptLineNumber, $_.Exception.Message) + exit 0 } + } catch { Write-Information ('Push-AuditLogTenant: Error {0} line {1} - {2}' -f $_.InvocationInfo.ScriptName, $_.InvocationInfo.ScriptLineNumber, $_.Exception.Message) exit 0 diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-AuditLogTenantProcess.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-AuditLogTenantProcess.ps1 index 086adcaf37dc..f52eef63271f 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-AuditLogTenantProcess.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-AuditLogTenantProcess.ps1 @@ -1,5 +1,5 @@ function Push-AuditLogTenantProcess { - Param($Item) + param($Item) $TenantFilter = $Item.TenantFilter $RowIds = $Item.RowIds @@ -20,12 +20,13 @@ function Push-AuditLogTenantProcess { if ($Rows.Count -gt 0) { Write-Information "Retrieved $($Rows.Count) rows from cache for processing" Test-CIPPAuditLogRules -TenantFilter $TenantFilter -Rows $Rows - exit 0 + return $true } else { Write-Information 'No rows found in cache for the provided row IDs' - exit 0 + return $false } } catch { Write-Information ('Push-AuditLogTenant: Error {0} line {1} - {2}' -f $_.InvocationInfo.ScriptName, $_.InvocationInfo.ScriptLineNumber, $_.Exception.Message) + return $false } } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecAddAlert.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecAddAlert.ps1 index 13d70f847619..10d24e146044 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecAddAlert.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecAddAlert.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ExecAddAlert { <# .FUNCTIONALITY @@ -9,10 +7,8 @@ function Invoke-ExecAddAlert { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $Severity = 'Alert' @@ -70,7 +66,7 @@ function Invoke-ExecAddAlert { Write-LogMessage -headers $Headers -API 'Alerts' -message $Request.Body.text -Sev $Severity 'Successfully generated alert.' } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Result }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecAppInsightsQuery.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecAppInsightsQuery.ps1 new file mode 100644 index 000000000000..298d948ba283 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecAppInsightsQuery.ps1 @@ -0,0 +1,50 @@ +function Invoke-ExecAppInsightsQuery { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.SuperAdmin.Read + #> + [CmdletBinding()] + param ( + $Request, + $TriggerMetadata + ) + + $Query = $Request.Body.query ?? $Request.Query.query + if (-not $Query) { + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{ + Results = 'No query provided in request body.' + } + } + } + + try { + $LogData = Get-ApplicationInsightsQuery -Query $Query + + $Body = ConvertTo-Json -Depth 10 -Compress -InputObject @{ + Results = @($LogData) + Metadata = @{ + Query = $Query + } + } + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + } + + } catch { + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = @{ + Results = "$($_.Exception.Message)" + Metadata = @{ + Query = $Query + Exception = Get-CippException -Exception $_ + } + } + } + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecAzBobbyTables.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecAzBobbyTables.ps1 index e084fb01c499..c9e1da70bc2a 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecAzBobbyTables.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecAzBobbyTables.ps1 @@ -12,11 +12,6 @@ function Invoke-ExecAzBobbyTables { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $AllowList = @( 'Add-AzDataTableEntity' 'Add-CIPPAzDataTableEntity' @@ -57,7 +52,7 @@ function Invoke-ExecAzBobbyTables { $StatusCode = [HttpStatusCode]::NotFound } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @($Results) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecCIPPDBCache.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecCIPPDBCache.ps1 new file mode 100644 index 000000000000..92e4249af55b --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecCIPPDBCache.ps1 @@ -0,0 +1,92 @@ +function Invoke-ExecCIPPDBCache { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Core.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $TenantFilter = $Request.Query.TenantFilter + $Name = $Request.Query.Name + + Write-Information "ExecCIPPDBCache called with Name: '$Name', TenantFilter: '$TenantFilter'" + + try { + if ([string]::IsNullOrEmpty($Name)) { + throw 'Name parameter is required' + } + + if ([string]::IsNullOrEmpty($TenantFilter)) { + throw 'TenantFilter parameter is required' + } + + # Validate the function exists + $FunctionName = "Set-CIPPDBCache$Name" + $Function = Get-Command -Name $FunctionName -ErrorAction SilentlyContinue + if (-not $Function) { + throw "Cache function '$FunctionName' not found" + } + + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Starting CIPP DB cache for $Name" -sev Info + + # Handle AllTenants - create a batch for each tenant + if ($TenantFilter -eq 'AllTenants') { + $TenantList = Get-Tenants -IncludeErrors + $Batch = $TenantList | ForEach-Object { + [PSCustomObject]@{ + FunctionName = 'ExecCIPPDBCache' + Name = $Name + TenantFilter = $_.defaultDomainName + } + } + + $InputObject = [PSCustomObject]@{ + Batch = @($Batch) + OrchestratorName = "CIPPDBCache_${Name}_AllTenants" + SkipLog = $false + } + + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Starting CIPP DB cache for $Name across $($TenantList.Count) tenants" -sev Info + } else { + # Single tenant + $InputObject = [PSCustomObject]@{ + Batch = @([PSCustomObject]@{ + FunctionName = 'ExecCIPPDBCache' + Name = $Name + TenantFilter = $TenantFilter + }) + OrchestratorName = "CIPPDBCache_${Name}_$TenantFilter" + SkipLog = $false + } + } + + $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Compress -Depth 5) + + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Started CIPP DB cache orchestrator for $Name with instance ID: $InstanceId" -sev Info + + $Body = [PSCustomObject]@{ + Results = "Successfully started cache operation for $Name$(if ($TenantFilter -eq 'AllTenants') { ' for all tenants' } else { " on tenant $TenantFilter" })" + Metadata = @{ + Name = $Name + Tenant = $TenantFilter + InstanceId = $InstanceId + } + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Failed to start CIPP DB cache for $Name : $ErrorMessage" -sev Error + $Body = [PSCustomObject]@{ + Results = "Failed to start cache operation: $ErrorMessage" + } + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecCPVRefresh.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecCPVRefresh.ps1 index 972d03b87485..f8d2f9355c10 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecCPVRefresh.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecCPVRefresh.ps1 @@ -11,18 +11,15 @@ function Invoke-ExecCPVRefresh { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $InstanceId = Start-UpdatePermissionsOrchestrator - Push-OutputBinding -Name Response -Value @{ + return @{ StatusCode = [System.Net.HttpStatusCode]::OK Body = @{ - Results = 'CPV Refresh has been triggered' - InstanceId = $InstanceId + Results = 'CPV Refresh has been triggered' + Metadata = @{ + InstanceId = $InstanceId + } } } } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecCippFunction.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecCippFunction.ps1 index 5ed10829e631..222e7abed29d 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecCippFunction.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecCippFunction.ps1 @@ -11,11 +11,6 @@ function Invoke-ExecCippFunction { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $BlockList = @( 'Get-GraphToken' 'Get-GraphTokenFromCert' @@ -45,7 +40,7 @@ function Invoke-ExecCippFunction { $StatusCode = [HttpStatusCode]::NotFound } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $Results }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecCloneTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecCloneTemplate.ps1 new file mode 100644 index 000000000000..ccd902350988 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecCloneTemplate.ps1 @@ -0,0 +1,67 @@ +function Invoke-ExecCloneTemplate { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.Core.ReadWrite + #> + param( + $Request, + $TriggerMetadata + ) + + $GUID = $Request.Query.GUID ?? $Request.Body.GUID + $Type = $Request.Query.Type ?? $Request.Body.Type + + if ($GUID -and $Type) { + $Table = Get-CIPPTable -tablename templates + $Template = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$Type' and RowKey eq '$GUID'" + + if ($Template) { + $NewGuid = [guid]::NewGuid().ToString() + $Template.RowKey = $NewGuid + $Template.JSON = $Template.JSON -replace $GUID, $NewGuid + if ($Template.Package) { + $Template.Package = $null + } + if ($Template.SHA) { + $Template.SHA = $null + } + try { + Add-CIPPAzDataTableEntity @Table -Entity $Template + $body = @{ + Results = @{ + state = 'success' + resultText = 'Template cloned successfully' + } + } + } catch { + $body = @{ + Results = @{ + state = 'error' + resultText = 'Failed to clone template' + details = Get-CIPPException -Exception $_ + } + } + } + } else { + $body = @{ + Results = @{ + state = 'error' + resultText = 'Template not found' + } + } + } + } else { + $body = @{ + Results = @{ + state = 'error' + resultText = 'GUID or Type not provided' + } + } + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecDiagnosticsPresets.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecDiagnosticsPresets.ps1 new file mode 100644 index 000000000000..9cab483eba99 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecDiagnosticsPresets.ps1 @@ -0,0 +1,89 @@ +function Invoke-ExecDiagnosticsPresets { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.SuperAdmin.ReadWrite + #> + [CmdletBinding()] + param ( + $Request, + $TriggerMetadata + ) + + try { + $Table = Get-CIPPTable -TableName 'DiagnosticsPresets' + $Action = $Request.Body.action + $GUID = $Request.Body.GUID + + if ($Action -eq 'delete') { + if (-not $GUID) { + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{ + Results = 'GUID is required for delete action' + } + } + } + + Remove-AzDataTableEntity @Table -Entity @{ + PartitionKey = 'Preset' + RowKey = $GUID + } + + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ + Results = 'Preset deleted successfully' + } + } + } else { + # Save or update preset + $Name = $Request.Body.name + $Query = $Request.Body.query + + if (-not $Name -or -not $Query) { + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{ + Results = 'Name and query are required' + } + } + } + + # Use provided GUID or generate new one + if (-not $GUID) { + $GUID = (New-Guid).Guid + } + + # Convert query to compressed JSON for storage + $QueryJson = ConvertTo-Json -InputObject @{ query = $Query } -Compress + + $Entity = @{ + PartitionKey = 'Preset' + RowKey = [string]$GUID + name = [string]$Name + data = [string]$QueryJson + } + + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force + + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ + Results = 'Preset saved successfully' + Metadata = @{ + GUID = $GUID + } + } + } + } + } catch { + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = @{ + Error = "Failed to manage diagnostics preset: $($_.Exception.Message)" + } + } + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecDurableFunctions.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecDurableFunctions.ps1 index 2e0a928b2db2..c46814ae598e 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecDurableFunctions.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecDurableFunctions.ps1 @@ -7,11 +7,6 @@ function Invoke-ExecDurableFunctions { #> [CmdletBinding(SupportsShouldProcess = $true)] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Collect info $StorageContext = New-AzStorageContext -ConnectionString $env:AzureWebJobsStorage $FunctionName = $env:WEBSITE_SITE_NAME @@ -170,7 +165,7 @@ function Invoke-ExecDurableFunctions { } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecEditTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecEditTemplate.ps1 index b1367d6c8076..5b47b16aceeb 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecEditTemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecEditTemplate.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ExecEditTemplate { +function Invoke-ExecEditTemplate { <# .FUNCTIONALITY Entrypoint,AnyTenant @@ -11,31 +9,50 @@ Function Invoke-ExecEditTemplate { param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - try { $Table = Get-CippTable -tablename 'templates' - $guid = $request.body.guid - $JSON = ConvertTo-Json -Compress -Depth 100 -InputObject ($request.body | Select-Object * -ExcludeProperty GUID) - $Type = $request.Body.Type + $guid = $request.Body.id ? $request.Body.id : $request.Body.GUID + $JSON = ConvertTo-Json -Compress -Depth 100 -InputObject ($request.Body | Select-Object * -ExcludeProperty GUID) + $Type = $request.Query.Type ?? $Request.Body.Type if ($Type -eq 'IntuneTemplate') { Write-Host 'Intune Template' - $OriginalTemplate = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'IntuneTemplate' and RowKey eq '$GUID'" - $OriginalTemplate = ($OriginalTemplate.JSON | ConvertFrom-Json -Depth 100) - $RawJSON = $OriginalTemplate.RAWJson - Set-CIPPIntuneTemplate -RawJSON $RawJSON -GUID $GUID -DisplayName $Request.body.displayName -Description $Request.body.description -templateType $OriginalTemplate.Type -Headers $Request.Headers + $Template = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'IntuneTemplate' and RowKey eq '$GUID'" + $OriginalJSON = $Template.JSON + + $TemplateData = $Template.JSON | ConvertFrom-Json + $TemplateType = $TemplateData.Type + + if ($Template.SHA) { + $NewGuid = [guid]::NewGuid().ToString() + } else { + $NewGuid = $GUID + } + if ($Request.Body.parsedRAWJson) { + $RawJSON = ConvertTo-Json -Compress -Depth 100 -InputObject $Request.Body.parsedRAWJson + } else { + $RawJSON = $OriginalJSON + } + + $IntuneTemplate = @{ + GUID = $NewGuid + RawJson = $RawJSON + DisplayName = $Request.Body.displayName + Description = $Request.Body.description + templateType = $TemplateType + Package = $Template.Package + Headers = $Request.Headers + } + Set-CIPPIntuneTemplate @IntuneTemplate } else { $Table.Force = $true - Add-CIPPAzDataTableEntity @Table -Entity @{ JSON = "$JSON" RowKey = "$GUID" PartitionKey = "$Type" GUID = "$GUID" } - Write-LogMessage -headers $Request.Headers -API $APINAME -message "Edited template $($Request.body.name) with GUID $GUID" -Sev 'Debug' + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Edited template $($Request.Body.name) with GUID $GUID" -Sev 'Debug' } $body = [pscustomobject]@{ 'Results' = 'Successfully saved the template' } @@ -45,8 +62,7 @@ Function Invoke-ExecEditTemplate { } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecGeoIPLookup.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecGeoIPLookup.ps1 index 9bacddbf0e3d..9af10e0b3e73 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecGeoIPLookup.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecGeoIPLookup.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecGeoIPLookup { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ Function Invoke-ExecGeoIPLookup { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $IP = $Request.Query.IP ?? $Request.Body.IP if (-not $IP) { @@ -23,8 +16,7 @@ Function Invoke-ExecGeoIPLookup { $locationInfo = Get-CIPPGeoIPLocation -IP $IP } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $LocationInfo }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecGraphRequest.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecGraphRequest.ps1 deleted file mode 100644 index d06367943d64..000000000000 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecGraphRequest.ps1 +++ /dev/null @@ -1,112 +0,0 @@ -using namespace System.Net - -Function Invoke-ExecGraphRequest { - <# - .FUNCTIONALITY - Entrypoint - #> - [CmdletBinding()] - param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - Function ConvertTo-FlatObject { - # https://evotec.xyz/powershell-converting-advanced-object-to-flat-object/ - MIT License - [CmdletBinding()] - Param ( - [Parameter(ValueFromPipeLine)][Object[]]$Objects, - [String]$Separator = '.', - [ValidateSet('', 0, 1)]$Base = 1, - [int]$Depth = 5, - [Parameter(DontShow)][String[]]$Path, - [Parameter(DontShow)][System.Collections.IDictionary] $OutputObject - ) - Begin { - $InputObjects = [System.Collections.Generic.List[Object]]::new() - } - Process { - foreach ($O in $Objects) { - $InputObjects.Add($O) - } - } - End { - If ($PSBoundParameters.ContainsKey('OutputObject')) { - $Object = $InputObjects[0] - $Iterate = [ordered] @{} - if ($null -eq $Object) { - #Write-Verbose -Message "ConvertTo-FlatObject - Object is null" - } elseif ($Object.GetType().Name -in 'String', 'DateTime', 'TimeSpan', 'Version', 'Enum') { - $Object = $Object.ToString() - } elseif ($Depth) { - $Depth-- - If ($Object -is [System.Collections.IDictionary]) { - $Iterate = $Object - } elseif ($Object -is [Array] -or $Object -is [System.Collections.IEnumerable]) { - $i = $Base - foreach ($Item in $Object.GetEnumerator()) { - $Iterate["$i"] = $Item - $i += 1 - } - } else { - foreach ($Prop in $Object.PSObject.Properties) { - if ($Prop.IsGettable) { - $Iterate["$($Prop.Name)"] = $Object.$($Prop.Name) - } - } - } - } - If ($Iterate.Keys.Count) { - foreach ($Key in $Iterate.Keys) { - ConvertTo-FlatObject -Objects @(, $Iterate["$Key"]) -Separator $Separator -Base $Base -Depth $Depth -Path ($Path + $Key) -OutputObject $OutputObject - } - } else { - $Property = $Path -Join $Separator - $OutputObject[$Property] = $Object - } - } elseif ($InputObjects.Count -gt 0) { - foreach ($ItemObject in $InputObjects) { - $OutputObject = [ordered]@{} - ConvertTo-FlatObject -Objects @(, $ItemObject) -Separator $Separator -Base $Base -Depth $Depth -Path $Path -OutputObject $OutputObject - [PSCustomObject] $OutputObject - } - } - } - } - $TenantFilter = $Request.Query.TenantFilter - try { - if ($TenantFilter -ne 'AllTenants') { - $RawGraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/$($Request.Query.Endpoint)" -tenantid $TenantFilter -NoPagination [boolean]$Request.query.DisablePagination -ComplexFilter - } else { - $RawGraphRequest = Get-Tenants | ForEach-Object -Parallel { - Import-Module '.\Modules\AzBobbyTables' - Import-Module '.\Modules\CIPPCore' - try { - $DefaultDomainName = $_.defaultDomainName - $TenantName = $_.displayName - New-GraphGetRequest -uri "https://graph.microsoft.com/beta/$($using:Request.Query.Endpoint)" -tenantid $DefaultDomainName -NoPagination [boolean]$using:Request.query.DisablePagination -ComplexFilter | Select-Object @{ - label = 'Tenant' - expression = { $TenantName } - }, * - } catch { - continue - } - } - - } - $GraphRequest = $RawGraphRequest | Where-Object -Property '@odata.context' -EQ $null | ConvertTo-FlatObject - $StatusCode = [HttpStatusCode]::OK - } catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - $StatusCode = [HttpStatusCode]::Forbidden - $GraphRequest = $ErrorMessage - } - - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = @($GraphRequest) - }) - -} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecListBackup.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecListBackup.ps1 index fe9fa4b02aae..0142225044e0 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecListBackup.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecListBackup.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ExecListBackup { +function Invoke-ExecListBackup { <# .FUNCTIONALITY Entrypoint @@ -9,40 +7,52 @@ Function Invoke-ExecListBackup { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $Type = $Request.Query.Type $TenantFilter = $Request.Query.tenantFilter $NameOnly = $Request.Query.NameOnly $BackupName = $Request.Query.BackupName $CippBackupParams = @{} - if ($Type) { - $CippBackupParams.Type = $Type - } - if ($TenantFilter) { - $CippBackupParams.TenantFilter = $TenantFilter - } - if ($NameOnly) { - $CippBackupParams.NameOnly = $true - } - if ($BackupName) { - $CippBackupParams.Name = $BackupName - } + if ($Type) { $CippBackupParams.Type = $Type } + if ($TenantFilter) { $CippBackupParams.TenantFilter = $TenantFilter } + if ($BackupName) { $CippBackupParams.Name = $BackupName } $Result = Get-CIPPBackup @CippBackupParams if ($NameOnly) { - $Result = $Result | Select-Object @{Name = 'BackupName'; exp = { $_.RowKey } }, Timestamp | Sort-Object Timestamp -Descending + $Processed = foreach ($item in $Result) { + $properties = $item.PSObject.Properties | Where-Object { $_.Name -notin @('TenantFilter', 'ETag', 'PartitionKey', 'RowKey', 'Timestamp', 'OriginalEntityId', 'SplitOverProps', 'PartIndex') -and $_.Value } + + if ($Type -eq 'Scheduled') { + [PSCustomObject]@{ + TenantFilter = $item.RowKey -match '^(.*?)_' | ForEach-Object { $matches[1] } + BackupName = $item.RowKey + Timestamp = $item.Timestamp + Items = $properties.Name + } + } else { + # Prefer stored indicator (BackupIsBlob) to avoid reading Backup field + $isBlob = $false + if ($null -ne $item.PSObject.Properties['BackupIsBlob']) { + try { $isBlob = [bool]$item.BackupIsBlob } catch { $isBlob = $false } + } else { + # Fallback heuristic for legacy rows if property missing + if ($null -ne $item.PSObject.Properties['Backup']) { + $b = $item.Backup + if ($b -is [string] -and ($b -like 'https://*' -or $b -like 'http://*')) { $isBlob = $true } + } + } + [PSCustomObject]@{ + BackupName = $item.RowKey + Timestamp = $item.Timestamp + Source = if ($isBlob) { 'blob' } else { 'table' } + } + } + } + $Result = $Processed | Sort-Object Timestamp -Descending } - - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($Result) }) - } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecPartnerWebhook.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecPartnerWebhook.ps1 index 1e548d669016..4799774c2025 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecPartnerWebhook.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecPartnerWebhook.ps1 @@ -5,12 +5,7 @@ function Invoke-ExecPartnerWebhook { .ROLE CIPP.AppSettings.ReadWrite #> - Param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - + param($Request, $TriggerMetadata) switch ($Request.Query.Action) { 'ListEventTypes' { $Uri = 'https://api.partnercenter.microsoft.com/webhooks/v1/registration/events' @@ -23,8 +18,13 @@ function Invoke-ExecPartnerWebhook { $ConfigTable = Get-CIPPTable -TableName Config $WebhookConfig = Get-CIPPAzDataTableEntity @ConfigTable -Filter "RowKey eq 'PartnerWebhookOnboarding'" - if ($WebhookConfig.StandardsExcludeAllTenants -eq $true) { - $Results | Add-Member -MemberType NoteProperty -Name 'standardsExcludeAllTenants' -Value $true -Force + if ($WebhookConfig) { + $Results | Add-Member -MemberType NoteProperty -Name 'enabled' -Value ([bool]$WebhookConfig.Enabled) -Force + if ($WebhookConfig.StandardsExcludeAllTenants -eq $true) { + $Results | Add-Member -MemberType NoteProperty -Name 'standardsExcludeAllTenants' -Value $true -Force + } + } else { + $Results | Add-Member -MemberType NoteProperty -Name 'enabled' -Value $false -Force } } catch {} if (!$Results) { @@ -32,6 +32,7 @@ function Invoke-ExecPartnerWebhook { webhoookUrl = 'None' lastModifiedTimestamp = 'Never' webhookEvents = @() + enabled = $false } } } @@ -55,6 +56,7 @@ function Invoke-ExecPartnerWebhook { $PartnerWebhookOnboarding = [PSCustomObject]@{ PartitionKey = 'Config' RowKey = 'PartnerWebhookOnboarding' + Enabled = [bool]$Request.Body.enabled StandardsExcludeAllTenants = $Request.Body.standardsExcludeAllTenants } Add-CIPPAzDataTableEntity @ConfigTable -Entity $PartnerWebhookOnboarding -Force | Out-Null @@ -77,7 +79,7 @@ function Invoke-ExecPartnerWebhook { } } - Push-OutputBinding -Name Response -Value @{ + return [HttpResponseContext]@{ StatusCode = [System.Net.HttpStatusCode]::OK Body = $Body } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecServicePrincipals.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecServicePrincipals.ps1 index c0f7873d34ac..1c3fd744bf4c 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecServicePrincipals.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecServicePrincipals.ps1 @@ -3,15 +3,10 @@ function Invoke-ExecServicePrincipals { .FUNCTIONALITY Entrypoint,AnyTenant .ROLE - CIPP.Core.ReadWrite + Tenant.Application.ReadWrite #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $TenantFilter = $env:TenantID $Success = $true @@ -61,7 +56,12 @@ function Invoke-ExecServicePrincipals { $Results = New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/servicePrincipals/$($Request.Query.Id)" -tenantid $TenantFilter -NoAuthCheck $true } else { $Action = 'List' - $Results = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/servicePrincipals?$top=999&$orderby=displayName&$count=true' -ComplexFilter -tenantid $TenantFilter -NoAuthCheck $true + $Uri = 'https://graph.microsoft.com/beta/servicePrincipals?$top=999&$orderby=displayName&$count=true' + if ($Request.Query.Select) { + $Uri = '{0}&$select={1}' -f $Uri, $Request.Query.Select + } + + $Results = New-GraphGetRequest -Uri $Uri -ComplexFilter -tenantid $TenantFilter -NoAuthCheck $true } } } @@ -89,7 +89,7 @@ function Invoke-ExecServicePrincipals { } $Json = $Body | ConvertTo-Json -Depth 10 -Compress - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Json }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecSetCIPPAutoBackup.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecSetCIPPAutoBackup.ps1 index c264c87ea898..a492cba9d733 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecSetCIPPAutoBackup.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecSetCIPPAutoBackup.ps1 @@ -1,19 +1,12 @@ -using namespace System.Net - -Function Invoke-ExecSetCIPPAutoBackup { +function Invoke-ExecSetCIPPAutoBackup { <# .FUNCTIONALITY Entrypoint .ROLE - CIPP.Backup.Read + CIPP.Backup.ReadWrite #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $unixtime = [int64](([datetime]::UtcNow) - (Get-Date '1/1/1970')).TotalSeconds if ($Request.Body.Enabled -eq $true) { $Table = Get-CIPPTable -TableName 'ScheduledTasks' @@ -39,8 +32,7 @@ Function Invoke-ExecSetCIPPAutoBackup { $Result = @{ 'Results' = 'Scheduled Task Successfully created' } } Write-LogMessage -headers $Request.Headers -API $Request.Params.CIPPEndpoint -message 'Scheduled automatic CIPP backups' -Sev 'Info' - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Result }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecSetPackageTag.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecSetPackageTag.ps1 new file mode 100644 index 000000000000..e0cc80a3bc9a --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecSetPackageTag.ps1 @@ -0,0 +1,71 @@ +function Invoke-ExecSetPackageTag { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.Core.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + $Table = Get-CippTable -tablename 'templates' + + try { + $GUIDS = $Request.body.GUID + $Remove = $Request.body.Remove + + if ($Remove -eq $true) { + # Remove package tag by setting it to null/empty + $PackageValue = $null + $LogMessage = 'Successfully removed package tag from template with GUID' + $SuccessMessage = 'Successfully removed package tag from template(s)' + } else { + # Add package tag (existing logic) + $PackageValue = [string]($Request.body.Package | Select-Object -First 1) + $LogMessage = 'Successfully updated template with GUID' + $SuccessMessage = "Successfully updated template(s) with package tag: $PackageValue" + } + + foreach ($GUID in $GUIDS) { + $Filter = "RowKey eq '$GUID'" + $Template = Get-CIPPAzDataTableEntity @Table -Filter $Filter + $Entity = @{ + JSON = $Template.JSON + RowKey = "$GUID" + PartitionKey = $Template.PartitionKey + GUID = "$GUID" + Package = $PackageValue + SHA = $Template.SHA ?? $null + Source = $Template.Source ?? $null + } + + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force + + if ($Remove -eq $true) { + Write-LogMessage -headers $Headers -API $APIName -message "$LogMessage $GUID" -Sev 'Info' + } else { + Write-LogMessage -headers $Headers -API $APIName -message "$LogMessage $GUID with package tag: $PackageValue" -Sev 'Info' + } + } + + $body = [pscustomobject]@{ 'Results' = $SuccessMessage } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + if ($Remove -eq $true) { + Write-LogMessage -headers $Headers -API $APIName -message "Failed to remove package tag: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + $body = [pscustomobject]@{'Results' = "Failed to remove package tag: $($ErrorMessage.NormalizedError)" } + } else { + Write-LogMessage -headers $Headers -API $APIName -message "Failed to set package tag: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + $body = [pscustomobject]@{'Results' = "Failed to set package tag: $($ErrorMessage.NormalizedError)" } + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-GetCippAlerts.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-GetCippAlerts.ps1 index cfdb1ffcd885..6a50e28c547d 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-GetCippAlerts.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-GetCippAlerts.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-GetCippAlerts { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ function Invoke-GetCippAlerts { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $Alerts = [System.Collections.Generic.List[object]]::new() $Table = Get-CippTable -tablename CippAlerts $PartitionKey = Get-Date -UFormat '%Y%m%d' @@ -60,7 +53,7 @@ function Invoke-GetCippAlerts { type = 'error' }) } - if ((!$env:WEBSITE_RUN_FROM_PACKAGE -or [string]::IsNullOrEmpty($env:WEBSITE_RUN_FROM_PACKAGE)) -and $env:AzureWebJobsStorage -ne 'UseDevelopmentStorage=true') { + if (!(![string]::IsNullOrEmpty($env:WEBSITE_RUN_FROM_PACKAGE) -or ![string]::IsNullOrEmpty($env:DEPLOYMENT_STORAGE_CONNECTION_STRING)) -and $env:AzureWebJobsStorage -ne 'UseDevelopmentStorage=true' -and $env:NonLocalHostAzurite -ne 'true') { $Alerts.Add( @{ title = 'Function App in Write Mode' @@ -72,8 +65,7 @@ function Invoke-GetCippAlerts { if ($Rows) { $Rows | ForEach-Object { $Alerts.Add($_) } } $Alerts = @($Alerts) - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Alerts }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-GetVersion.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-GetVersion.ps1 index 29b2e4b9433d..61a8266714f3 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-GetVersion.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-GetVersion.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-GetVersion { <# .FUNCTIONALITY @@ -9,17 +7,11 @@ Function Invoke-GetVersion { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $CIPPVersion = $request.query.LocalVersion $Version = Assert-CippVersion -CIPPVersion $CIPPVersion - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Version }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListAdminPortalLicenses.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListAdminPortalLicenses.ps1 index d194984ff027..dc1ae4139972 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListAdminPortalLicenses.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListAdminPortalLicenses.ps1 @@ -17,7 +17,7 @@ function Invoke-ListAdminPortalLicenses { $AdminPortalLicenses = @() } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($AdminPortalLicenses) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListApiTest.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListApiTest.ps1 index b1c579c09c42..56784611a481 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListApiTest.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListApiTest.ps1 @@ -8,13 +8,28 @@ function Invoke-ListApiTest { [CmdletBinding()] param($Request, $TriggerMetadata) - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $Response = @{} + $Response.Request = $Request + $Response.TriggerMetadata = $TriggerMetadata + if ($env:DEBUG_ENV_VARS -eq 'true') { + $BlockedKeys = @('ApplicationSecret', 'RefreshToken', 'AzureWebJobsStorage', 'DEPLOYMENT_STORAGE_CONNECTION_STRING') + $EnvironmentVariables = [PSCustomObject]@{} + Get-ChildItem env: | Where-Object { $BlockedKeys -notcontains $_.Name } | ForEach-Object { + $EnvironmentVariables | Add-Member -NotePropertyName $_.Name -NotePropertyValue $_.Value + } + $Response.EnvironmentVariables = $EnvironmentVariables - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + # test New-CIPPAzRestRequest KQL for resource graph + $Query = 'Resources | project name, type' + $Json = ConvertTo-Json -Depth 10 -Compress -InputObject @{ query = $Query } + $Request = New-CIPPAzRestRequest -Method POST -Resource 'https://management.azure.com/' -Uri 'https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2022-10-01' -Body $Json + $Response.ResourceGraphTest = $Request + } + $Response.AllowedTenants = $script:CippAllowedTenantsStorage.Value + $Response.AllowedGroups = $script:CippAllowedGroupsStorage.Value + + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK - Body = ($Request | ConvertTo-Json -Depth 5) + Body = $Response }) } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListCustomDataMappings.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListCustomDataMappings.ps1 new file mode 100644 index 000000000000..87f6a88e7429 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListCustomDataMappings.ps1 @@ -0,0 +1,71 @@ +function Invoke-ListCustomDataMappings { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $CustomDataMappingsTable = Get-CippTable -TableName 'CustomDataMappings' + $TenantFilter = $Request.Query.tenantFilter + $SourceTypeFilter = $Request.Query.sourceType + $DirectoryObjectFilter = $Request.Query.directoryObject + + Write-Information "Listing custom data mappings with filters - sourceType: $SourceTypeFilter, directoryObject: $DirectoryObjectFilter, tenant: $TenantFilter" + + try { + $Mappings = Get-CIPPAzDataTableEntity @CustomDataMappingsTable | ForEach-Object { + $Mapping = $_.JSON | ConvertFrom-Json -AsHashtable + + # Filter by tenant + $TenantList = Expand-CIPPTenantGroups -TenantFilter $Mapping.tenantFilter + if ($TenantFilter -and ($TenantList -contains $TenantFilter -or $TenantList -eq 'AllTenants')) { + return + } + + $MappingObject = [PSCustomObject]@{ + id = $_.RowKey + tenant = $Mapping.tenantFilter.label + dataset = $Mapping.extensionSyncDataset.label + sourceType = $Mapping.sourceType.label + directoryObject = $Mapping.directoryObjectType.label + syncProperty = $Mapping.extensionSyncProperty.label ?? @($Mapping.extensionSyncDataset.addedFields.select -split ',') + customDataAttribute = $Mapping.customDataAttribute + manualEntryFieldLabel = $Mapping.manualEntryFieldLabel + } + + # Apply safe filtering + $Include = $true + if ($SourceTypeFilter -and $MappingObject.sourceType -ne $SourceTypeFilter) { + $Include = $false + } + if ($DirectoryObjectFilter -and $MappingObject.directoryObject -ne $DirectoryObjectFilter) { + $Include = $false + } + + if ($Include) { + return $MappingObject + } + } | Where-Object { $_ -ne $null } + + $Body = @{ + Results = @($Mappings) + } + } catch { + $Body = @{ + Results = @( + @{ + state = 'error' + resultText = "Failed to retrieve mappings: $($_.Exception.Message)" + } + ) + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListDiagnosticsPresets.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListDiagnosticsPresets.ps1 new file mode 100644 index 000000000000..a52b7c6e0982 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListDiagnosticsPresets.ps1 @@ -0,0 +1,37 @@ +function Invoke-ListDiagnosticsPresets { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.SuperAdmin.Read + #> + [CmdletBinding()] + param ( + $Request, + $TriggerMetadata + ) + + try { + $Table = Get-CIPPTable -TableName 'DiagnosticsPresets' + $Presets = Get-CIPPAzDataTableEntity @Table | ForEach-Object { + $Data = $_.data | ConvertFrom-Json + [PSCustomObject]@{ + GUID = $_.RowKey + name = $_.name + query = $Data.query + } + } + + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($Presets) + } + } catch { + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = @{ + Error = "Failed to list diagnostics presets: $($_.Exception.Message)" + } + } + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListDirectoryObjects.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListDirectoryObjects.ps1 index 42d4da8b8085..9d9201b17e1c 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListDirectoryObjects.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListDirectoryObjects.ps1 @@ -1,18 +1,13 @@ function Invoke-ListDirectoryObjects { <# .FUNCTIONALITY - Entrypoint + Entrypoint,AnyTenant .ROLE CIPP.Core.Read #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - $TenantFilter = $Request.Body.tenantFilter + $TenantFilter = $Request.Body.partnerLookup ? $env:TenantID : $Request.Body.tenantFilter $AsApp = $Request.Body.asApp $Ids = $Request.Body.ids @@ -28,7 +23,7 @@ function Invoke-ListDirectoryObjects { } | ConvertTo-Json -Depth 10 try { - $Results = New-GraphPOSTRequest -tenantid $TenantFilter -uri $Uri -body $Body -AsApp $AsApp + $Results = New-GraphPOSTRequest -tenantid $TenantFilter -uri $Uri -body $Body -AsApp $AsApp -NoAuthCheck $true $StatusCode = [System.Net.HttpStatusCode]::OK } catch { $StatusCode = [System.Net.HttpStatusCode]::BadRequest @@ -37,7 +32,7 @@ function Invoke-ListDirectoryObjects { Write-Information $_.InvocationInfo.PositionMessage } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $Results }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListExtensionCacheData.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListExtensionCacheData.ps1 index 5249150ab8c5..155d8e7059e2 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListExtensionCacheData.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListExtensionCacheData.ps1 @@ -11,11 +11,6 @@ function Invoke-ListExtensionCacheData { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter $DataTypes = $Request.Query.dataTypes -split ',' ?? $Request.Body.dataTypes ?? 'All' @@ -35,7 +30,7 @@ function Invoke-ListExtensionCacheData { $StatusCode = [HttpStatusCode]::OK - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $Body | ConvertTo-Json -Compress -Depth 100 Headers = @{ diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListGraphBulkRequest.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListGraphBulkRequest.ps1 index bd36ddb9462c..deef9107d572 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListGraphBulkRequest.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListGraphBulkRequest.ps1 @@ -7,19 +7,14 @@ function Invoke-ListGraphBulkRequest { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $TenantFilter = $Request.Body.tenantFilter $AsApp = $Request.Body.asApp $Requests = $Request.Body.requests $NoPaginateIds = $Request.Body.noPaginateIds $GraphRequestParams = @{ - tenantid = $TenantFilter - Requests = @() + tenantid = $TenantFilter + Requests = @() NoPaginateIds = $NoPaginateIds ?? @() } @@ -58,5 +53,5 @@ function Invoke-ListGraphBulkRequest { } } - Push-OutputBinding -Name Response -Value $Results + return [HttpResponseContext]$Results } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListGraphRequest.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListGraphRequest.ps1 index 1ad77fdc3ac7..4e5fa69d626f 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListGraphRequest.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListGraphRequest.ps1 @@ -33,6 +33,10 @@ function Invoke-ListGraphRequest { $Parameters.'$expand' = $Request.Query.'$expand' } + if ($Request.Query.expand) { + $Parameters.'expand' = $Request.Query.expand + } + if ($Request.Query.'$top') { $Parameters.'$top' = $Request.Query.'$top' } @@ -77,7 +81,7 @@ function Invoke-ListGraphRequest { } if ($Request.Query.manualPagination) { - $GraphRequestParams.NoPagination = [System.Boolean]$Request.Query.manualPagination + $GraphRequestParams.ManualPagination = [System.Boolean]$Request.Query.manualPagination } if ($Request.Query.nextLink) { @@ -120,13 +124,18 @@ function Invoke-ListGraphRequest { try { $Results = Get-GraphRequestList @GraphRequestParams - if ($Results.nextLink) { - Write-Host "NextLink: $($Results.nextLink | Select-Object -Last 1)" - if ($Request.Query.TenantFilter -ne 'AllTenants') { - $Metadata['nextLink'] = $Results.nextLink | Select-Object -Last 1 + + if ($script:LastGraphResponseHeaders) { + $Metadata.GraphHeaders = $script:LastGraphResponseHeaders + } + + if ($Results | Where-Object { $_.PSObject.Properties.Name -contains 'nextLink' }) { + if (![string]::IsNullOrEmpty($Results.nextLink) -and $Request.Query.TenantFilter -ne 'AllTenants') { + Write-Host "NextLink: $($Results.nextLink | Where-Object { $_ } | Select-Object -Last 1)" + $Metadata['nextLink'] = $Results.nextLink | Where-Object { $_ } | Select-Object -Last 1 } - #Results is an array of objects, so we need to remove the last object before returning - $Results = $Results | Select-Object -First ($Results.Count - 1) + # Remove nextLink trailing object only if it’s the last item + $Results = $Results | Where-Object { $_.PSObject.Properties.Name -notcontains 'nextLink' } } if ($Request.Query.ListProperties) { $Columns = ($Results | Select-Object -First 1).PSObject.Properties.Name @@ -135,7 +144,7 @@ function Invoke-ListGraphRequest { if ($Results.Queued -eq $true) { $Metadata.Queued = $Results.Queued $Metadata.QueueMessage = $Results.QueueMessage - $Metadata.QueuedId = $Results.QueueId + $Metadata.QueueId = $Results.QueueId $Results = @() } } @@ -158,10 +167,9 @@ function Invoke-ListGraphRequest { if ($request.Query.Sort) { $GraphRequestData.Results = $GraphRequestData.Results | Sort-Object -Property $request.Query.Sort } - $Outputdata = $GraphRequestData | ConvertTo-Json -Depth 20 -Compress - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode - Body = $Outputdata + Body = $GraphRequestData }) } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-PublicPing.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-PublicPing.ps1 index cc019f3c7714..d92ecc641795 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-PublicPing.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-PublicPing.ps1 @@ -49,7 +49,7 @@ function Invoke-PublicPing { } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = ($Body | ConvertTo-Json -Depth 5) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/invoke-ListEmptyResults.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/invoke-ListEmptyResults.ps1 index 0624adb57b90..a086b28cd4ae 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/invoke-ListEmptyResults.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/invoke-ListEmptyResults.ps1 @@ -11,13 +11,7 @@ Function invoke-ListEmptyResults { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @() }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ExecExtensionMapping.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ExecExtensionMapping.ps1 index d400e7dc6437..f9b0927b2841 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ExecExtensionMapping.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ExecExtensionMapping.ps1 @@ -1,121 +1,124 @@ -using namespace System.Net - Function Invoke-ExecExtensionMapping { - <# + <# .FUNCTIONALITY Entrypoint .ROLE CIPP.Extension.ReadWrite #> - [CmdletBinding()] - param($Request, $TriggerMetadata) + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $Table = Get-CIPPTable -TableName CippMapping + $Table = Get-CIPPTable -TableName CippMapping - if ($Request.Query.List) { - switch ($Request.Query.List) { - 'HaloPSA' { - $Result = Get-HaloMapping -CIPPMapping $Table - } - 'NinjaOne' { - $Result = Get-NinjaOneOrgMapping -CIPPMapping $Table - } - 'NinjaOneFields' { - $Result = Get-NinjaOneFieldMapping -CIPPMapping $Table - } - 'Hudu' { - $Result = Get-HuduMapping -CIPPMapping $Table - } - 'HuduFields' { - $Result = Get-HuduFieldMapping -CIPPMapping $Table - } - 'Sherweb' { - $Result = Get-SherwebMapping -CIPPMapping $Table - } - 'HaloPSAFields' { - $TicketTypes = Get-HaloTicketType - $Result = @{'TicketTypes' = $TicketTypes } - } - 'PWPushFields' { - $Accounts = Get-PwPushAccount - $Result = @{ - 'Accounts' = $Accounts - } - } + if ($Request.Query.List) { + switch ($Request.Query.List) { + 'HaloPSA' { + $Result = Get-HaloMapping -CIPPMapping $Table + } + 'NinjaOne' { + $Result = Get-NinjaOneOrgMapping -CIPPMapping $Table + } + 'NinjaOneFields' { + $Result = Get-NinjaOneFieldMapping -CIPPMapping $Table + } + 'Hudu' { + $Result = Get-HuduMapping -CIPPMapping $Table + } + 'HuduFields' { + $Result = Get-HuduFieldMapping -CIPPMapping $Table + } + 'Sherweb' { + $Result = Get-SherwebMapping -CIPPMapping $Table + } + 'HaloPSAFields' { + $TicketTypes = Get-HaloTicketType + $Outcomes = Get-HaloTicketOutcome + $Result = @{ + 'TicketTypes' = $TicketTypes + 'Outcomes' = $Outcomes + } + } + 'PWPushFields' { + $Accounts = Get-PwPushAccount + $Result = @{ + 'Accounts' = $Accounts } + } } + } - try { - if ($Request.Query.AddMapping) { - switch ($Request.Query.AddMapping) { - 'Sherweb' { - $Result = Set-SherwebMapping -CIPPMapping $Table -APIName $APIName -Request $Request - } - 'HaloPSA' { - $Result = Set-HaloMapping -CIPPMapping $Table -APIName $APIName -Request $Request - } - 'NinjaOne' { - $Result = Set-NinjaOneOrgMapping -CIPPMapping $Table -APIName $APIName -Request $Request - Register-CIPPExtensionScheduledTasks - } - 'NinjaOneFields' { - $Result = Set-NinjaOneFieldMapping -CIPPMapping $Table -APIName $APIName -Request $Request -TriggerMetadata $TriggerMetadata - Register-CIPPExtensionScheduledTasks - } - 'Hudu' { - $Result = Set-HuduMapping -CIPPMapping $Table -APIName $APIName -Request $Request - Register-CIPPExtensionScheduledTasks - } - 'HuduFields' { - $Result = Set-ExtensionFieldMapping -CIPPMapping $Table -APIName $APIName -Request $Request -Extension 'Hudu' - Register-CIPPExtensionScheduledTasks - } - } + try { + if ($Request.Query.AddMapping) { + switch ($Request.Query.AddMapping) { + 'Sherweb' { + $Result = Set-SherwebMapping -CIPPMapping $Table -APIName $APIName -Request $Request + } + 'HaloPSA' { + $Result = Set-HaloMapping -CIPPMapping $Table -APIName $APIName -Request $Request + } + 'NinjaOne' { + $Result = Set-NinjaOneOrgMapping -CIPPMapping $Table -APIName $APIName -Request $Request + Register-CIPPExtensionScheduledTasks } - $StatusCode = [HttpStatusCode]::OK - } catch { - $ErrorMessage = Get-CippException -Exception $_ - $Result = "Mapping API failed. $($ErrorMessage.NormalizedError)" - Write-LogMessage -API $APIName -headers $Headers -message $Result -Sev 'Error' -LogData $ErrorMessage - $StatusCode = [HttpStatusCode]::InternalServerError + 'NinjaOneFields' { + $Result = Set-NinjaOneFieldMapping -CIPPMapping $Table -APIName $APIName -Request $Request -TriggerMetadata $TriggerMetadata + Register-CIPPExtensionScheduledTasks + } + 'Hudu' { + $Result = Set-HuduMapping -CIPPMapping $Table -APIName $APIName -Request $Request + Register-CIPPExtensionScheduledTasks + } + 'HuduFields' { + $Result = Set-ExtensionFieldMapping -CIPPMapping $Table -APIName $APIName -Request $Request -Extension 'Hudu' + Register-CIPPExtensionScheduledTasks + } + } } + $StatusCode = [HttpStatusCode]::OK + } + catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Mapping API failed. $($ErrorMessage.NormalizedError)" + Write-LogMessage -API $APIName -headers $Headers -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } - try { - if ($Request.Query.AutoMapping) { - switch ($Request.Query.AutoMapping) { - 'NinjaOne' { - $Batch = [PSCustomObject]@{ - 'NinjaAction' = 'StartAutoMapping' - 'FunctionName' = 'NinjaOneQueue' - } - $InputObject = [PSCustomObject]@{ - OrchestratorName = 'NinjaOneOrchestrator' - Batch = @($Batch) - } - #Write-Host ($InputObject | ConvertTo-Json) - $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) - Write-Host "Started permissions orchestration with ID = '$InstanceId'" - $Result = 'AutoMapping Request has been queued. Exact name matches will appear first and matches on device names and serials will take longer. Please check the CIPP Logbook and refresh the page once complete.' - } - - } + try { + if ($Request.Query.AutoMapping) { + switch ($Request.Query.AutoMapping) { + 'NinjaOne' { + $Batch = [PSCustomObject]@{ + 'NinjaAction' = 'StartAutoMapping' + 'FunctionName' = 'NinjaOneQueue' + } + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'NinjaOneOrchestrator' + Batch = @($Batch) + } + #Write-Host ($InputObject | ConvertTo-Json) + $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + Write-Host "Started permissions orchestration with ID = '$InstanceId'" + $Result = 'AutoMapping Request has been queued. Exact name matches will appear first and matches on device names and serials will take longer. Please check the CIPP Logbook and refresh the page once complete.' } - $StatusCode = [HttpStatusCode]::OK - } catch { - $ErrorMessage = Get-CippException -Exception $_ - $Result = "Mapping API failed. $($ErrorMessage.NormalizedError)" - Write-LogMessage -API $APIName -headers $Headers -message $Result -Sev 'Error' -LogData $ErrorMessage - $StatusCode = [HttpStatusCode]::InternalServerError + + } } + $StatusCode = [HttpStatusCode]::OK + } + catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Mapping API failed. $($ErrorMessage.NormalizedError)" + Write-LogMessage -API $APIName -headers $Headers -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = $Result - }) + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Result + }) } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ExecExtensionSync.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ExecExtensionSync.ps1 index 71848a9ca755..a268c3075aae 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ExecExtensionSync.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ExecExtensionSync.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecExtensionSync { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ Function Invoke-ExecExtensionSync { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - switch ($Request.Query.Extension) { 'Gradient' { try { @@ -93,14 +86,14 @@ Function Invoke-ExecExtensionSync { } } 'Hudu' { - Register-CIPPExtensionScheduledTasks -Reschedule + Register-CIPPExtensionScheduledTasks -Reschedule -Extensions 'Hudu' $Results = [pscustomobject]@{'Results' = 'Extension sync tasks have been rescheduled and will start within 15 minutes' } } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Results }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ExecExtensionTest.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ExecExtensionTest.ps1 index ede6e1d88ab0..d89da3624338 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ExecExtensionTest.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ExecExtensionTest.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecExtensionTest { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ Function Invoke-ExecExtensionTest { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $Table = Get-CIPPTable -TableName Extensionsconfig $Configuration = ((Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json) # Interact with query parameters or the body of the request. @@ -101,8 +94,7 @@ Function Invoke-ExecExtensionTest { $Results = [pscustomobject]@{'Results' = "Failed to connect: $($_.Exception.Message). Line $($_.InvocationInfo.ScriptLineNumber)" } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Results }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ExecExtensionsConfig.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ExecExtensionsConfig.ps1 index b9ae61285dc4..79529e5b5291 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ExecExtensionsConfig.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ExecExtensionsConfig.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ExecExtensionsConfig { +function Invoke-ExecExtensionsConfig { <# .FUNCTIONALITY Entrypoint @@ -9,10 +7,8 @@ Function Invoke-ExecExtensionsConfig { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $Body = [PSCustomObject]$Request.Body $Results = try { @@ -31,6 +27,14 @@ Function Invoke-ExecExtensionsConfig { } } + if ($Body.Hudu.NextSync) { + #parse unixtime for addedtext + $Timestamp = [datetime]::UnixEpoch.AddSeconds([int]$Body.Hudu.NextSync).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ") + Register-CIPPExtensionScheduledTasks -Reschedule -NextSync $Body.Hudu.NextSync -Extensions 'Hudu' + $AddedText = " Next sync will be at $Timestamp." + $Body.Hudu.NextSync = '' + } + $Table = Get-CIPPTable -TableName Extensionsconfig foreach ($APIKey in $Body.PSObject.Properties.Name) { Write-Information "Working on $apikey" @@ -77,8 +81,7 @@ Function Invoke-ExecExtensionsConfig { - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @{'Results' = $Results } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ListExtensionSync.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ListExtensionSync.ps1 index fe7d04cb8bcb..f9b6ae869289 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ListExtensionSync.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ListExtensionSync.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListExtensionSync { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ Function Invoke-ListExtensionSync { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $ScheduledTasksTable = Get-CIPPTable -TableName 'ScheduledTasks' $ScheduledTasks = Get-CIPPAzDataTableEntity @ScheduledTasksTable -Filter 'Hidden eq true' | Where-Object { $_.Command -match 'CippExtension' } @@ -50,7 +43,7 @@ Function Invoke-ListExtensionSync { } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = (ConvertTo-Json -Depth 5 -InputObject @($AllTasksArrayList)) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-AddScheduledItem.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-AddScheduledItem.ps1 index 1ec5a2d2c70d..18aecda3ab90 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-AddScheduledItem.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-AddScheduledItem.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-AddScheduledItem { <# .FUNCTIONALITY @@ -15,6 +13,8 @@ function Invoke-AddScheduledItem { $hidden = $true } + $DisallowDuplicateName = $Request.Query.DisallowDuplicateName ?? $Request.Body.DisallowDuplicateName + if ($Request.Body.RunNow -eq $true) { try { $Table = Get-CIPPTable -TableName 'ScheduledTasks' @@ -31,10 +31,16 @@ function Invoke-AddScheduledItem { $Result = "Error scheduling task: $($_.Exception.Message)" } } else { - $Result = Add-CIPPScheduledTask -Task $Request.Body -Headers $Request.Headers -hidden $hidden -DisallowDuplicateName $Request.Query.DisallowDuplicateName - Write-LogMessage -headers $Request.Headers -API $APINAME -message $Result -Sev 'Info' + $ScheduledTask = @{ + Task = $Request.Body + Headers = $Request.Headers + Hidden = $hidden + DisallowDuplicateName = $DisallowDuplicateName + DesiredStartTime = $Request.Body.DesiredStartTime + } + $Result = Add-CIPPScheduledTask @ScheduledTask } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @{ Results = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-ListScheduledItemDetails.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-ListScheduledItemDetails.ps1 index b9dd162b974e..be60e04ec9b2 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-ListScheduledItemDetails.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-ListScheduledItemDetails.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ListScheduledItemDetails { <# .FUNCTIONALITY @@ -11,15 +9,12 @@ function Invoke-ListScheduledItemDetails { param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Get parameters from the request $RowKey = $Request.Query.RowKey ?? $Request.Body.RowKey # Validate required parameters if (-not $RowKey) { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::BadRequest Body = "Required parameter 'RowKey' is missing" }) @@ -28,10 +23,10 @@ function Invoke-ListScheduledItemDetails { # Retrieve the task information $TaskTable = Get-CIPPTable -TableName 'ScheduledTasks' - $Task = Get-CIPPAzDataTableEntity @TaskTable -Filter "RowKey eq '$RowKey' and PartitionKey eq 'ScheduledTask'" | Select-Object Name, TaskState, Command, Parameters, Recurrence, ExecutedTime, ScheduledTime, PostExecution, Tenant, Hidden, Results, Timestamp + $Task = Get-CIPPAzDataTableEntity @TaskTable -Filter "RowKey eq '$RowKey' and PartitionKey eq 'ScheduledTask'" | Select-Object RowKey, Name, TaskState, Command, Parameters, Recurrence, ExecutedTime, ScheduledTime, PostExecution, Tenant, TenantGroup, Hidden, Results, Timestamp, Trigger if (-not $Task) { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::NotFound Body = "Task with RowKey '$RowKey' not found" }) @@ -57,6 +52,47 @@ function Invoke-ListScheduledItemDetails { $Task.ScheduledTime = [DateTimeOffset]::FromUnixTimeSeconds($Task.ScheduledTime).UtcDateTime } catch {} + # Handle tenant group display information (similar to Invoke-ListScheduledItems) + if ($Task.TenantGroup) { + try { + $TenantGroupObject = $Task.TenantGroup | ConvertFrom-Json -ErrorAction SilentlyContinue + if ($TenantGroupObject) { + # Create a tenant group object for the frontend formatting + $TenantGroupForDisplay = [PSCustomObject]@{ + label = $TenantGroupObject.label + value = $TenantGroupObject.value + type = 'Group' + } + $Task | Add-Member -NotePropertyName TenantGroupInfo -NotePropertyValue $TenantGroupForDisplay -Force + # Update the tenant to show the group object for proper formatting + $Task.Tenant = $TenantGroupForDisplay + } + } catch { + Write-Warning "Failed to parse tenant group information for task $($Task.RowKey): $($_.Exception.Message)" + # Fall back to keeping original tenant value + } + } else { + # For regular tenants, create a tenant object for consistent formatting + $TenantForDisplay = [PSCustomObject]@{ + label = $Task.Tenant + value = $Task.Tenant + type = 'Tenant' + } + $Task.Tenant = $TenantForDisplay + } + + if ($Task.Trigger) { + try { + $TriggerObject = $Task.Trigger | ConvertFrom-Json -ErrorAction SilentlyContinue + if ($TriggerObject) { + $Task | Add-Member -NotePropertyName Trigger -NotePropertyValue $TriggerObject -Force + } + } catch { + Write-Warning "Failed to parse trigger information for task $($Task.RowKey): $($_.Exception.Message)" + # Fall back to keeping original trigger value + } + } + # Get the results if available $ResultsTable = Get-CIPPTable -TableName 'ScheduledTaskResults' $ResultsFilter = "PartitionKey eq '$RowKey'" @@ -164,7 +200,7 @@ function Invoke-ListScheduledItemDetails { } # Return the response - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Response }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-ListScheduledItems.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-ListScheduledItems.ps1 index ceadb14858a8..37ae04aa3a21 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-ListScheduledItems.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-ListScheduledItems.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ListScheduledItems { <# .FUNCTIONALITY @@ -9,28 +7,30 @@ function Invoke-ListScheduledItems { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - - # Interact with query parameters or the body of the request. - $ShowHidden = $Request.Query.ShowHidden ?? $Request.Body.ShowHidden - $Name = $Request.Query.Name ?? $Request.Body.Name - $Type = $Request.Query.Type ?? $Request.Body.Type - $ScheduledItemFilter = [System.Collections.Generic.List[string]]::new() $ScheduledItemFilter.Add("PartitionKey eq 'ScheduledTask'") - if ($ShowHidden -eq $true) { - $ScheduledItemFilter.Add('Hidden eq true') + $Id = $Request.Query.Id ?? $Request.Body.Id + if ($Id) { + # Interact with query parameters. + $ScheduledItemFilter.Add("RowKey eq '$($Id)'") } else { - $ScheduledItemFilter.Add('Hidden eq false') - } + # Interact with query parameters or the body of the request. + $ShowHidden = $Request.Query.ShowHidden ?? $Request.Body.ShowHidden + $Name = $Request.Query.Name ?? $Request.Body.Name + $Type = $Request.Query.Type ?? $Request.Body.Type + $SearchTitle = $Request.query.SearchTitle ?? $Request.body.SearchTitle + + if ($ShowHidden -eq $true) { + $ScheduledItemFilter.Add("(Hidden eq true or Hidden eq 'True')") + } else { + $ScheduledItemFilter.Add("(Hidden eq false or Hidden eq 'False')") + } + + if ($Name) { + $ScheduledItemFilter.Add("Name eq '$($Name)'") + } - if ($Name) { - $ScheduledItemFilter.Add("Name eq '$($Name)'") } $Filter = $ScheduledItemFilter -join ' and ' @@ -42,11 +42,16 @@ function Invoke-ListScheduledItems { } else { $HiddenTasks = $true } - $Tasks = Get-CIPPAzDataTableEntity @Table -Filter $Filter | Where-Object { $_.Hidden -ne $HiddenTasks } + $Tasks = Get-CIPPAzDataTableEntity @Table -Filter $Filter + Write-Information "Retrieved $($Tasks.Count) scheduled tasks from storage." if ($Type) { $Tasks = $Tasks | Where-Object { $_.command -eq $Type } } + if ($SearchTitle) { + $Tasks = $Tasks | Where-Object { $_.Name -like $SearchTitle } + } + $AllowedTenants = Test-CIPPAccess -Request $Request -TenantList if ($AllowedTenants -notcontains 'AllTenants') { @@ -54,13 +59,23 @@ function Invoke-ListScheduledItems { $AllowedTenantDomains = $TenantList | Where-Object -Property customerId -In $AllowedTenants | Select-Object -ExpandProperty defaultDomainName $Tasks = $Tasks | Where-Object -Property Tenant -In $AllowedTenantDomains } - $ScheduledTasks = foreach ($Task in $tasks) { + + Write-Information "Found $($Tasks.Count) scheduled tasks after filtering and access check." + + $ScheduledTasks = foreach ($Task in $Tasks) { + if (!$Task.Tenant -or !$Task.Command) { + Write-Information "Skipping invalid scheduled task entry: $($Task.RowKey)" + continue + } + if ($Task.Parameters) { $Task.Parameters = $Task.Parameters | ConvertFrom-Json -ErrorAction SilentlyContinue } else { $Task | Add-Member -NotePropertyName Parameters -NotePropertyValue @{} } - if ($Task.Recurrence -eq 0 -or [string]::IsNullOrEmpty($Task.Recurrence)) { + if (!$Task.Recurrence) { + $Task | Add-Member -NotePropertyName Recurrence -NotePropertyValue 'Once' -Force + } elseif ($Task.Recurrence -eq 0 -or [string]::IsNullOrEmpty($Task.Recurrence)) { $Task.Recurrence = 'Once' } try { @@ -69,13 +84,51 @@ function Invoke-ListScheduledItems { try { $Task.ScheduledTime = [DateTimeOffset]::FromUnixTimeSeconds($Task.ScheduledTime).UtcDateTime } catch {} + + # Handle tenant group display information + if ($Task.TenantGroup) { + try { + $TenantGroupObject = $Task.TenantGroup | ConvertFrom-Json -ErrorAction SilentlyContinue + if ($TenantGroupObject) { + # Create a tenant group object for the frontend formatting + $TenantGroupForDisplay = [PSCustomObject]@{ + label = $TenantGroupObject.label + value = $TenantGroupObject.value + type = 'Group' + } + $Task | Add-Member -NotePropertyName TenantGroupInfo -NotePropertyValue $TenantGroupForDisplay -Force + # Update the tenant to show the group object for proper formatting + $Task.Tenant = $TenantGroupForDisplay + } + } catch { + Write-Warning "Failed to parse tenant group information for task $($Task.RowKey): $($_.Exception.Message)" + # Fall back to keeping original tenant value + } + } else { + $Task.Tenant = [PSCustomObject]@{ + label = $Task.Tenant + value = $Task.Tenant + type = 'Tenant' + } + } + if ($Task.Trigger) { + try { + $TriggerObject = $Task.Trigger | ConvertFrom-Json -ErrorAction SilentlyContinue + if ($TriggerObject) { + $Task | Add-Member -NotePropertyName Trigger -NotePropertyValue $TriggerObject -Force + } + } catch { + Write-Warning "Failed to parse trigger information for task $($Task.RowKey): $($_.Exception.Message)" + # Fall back to keeping original trigger value + } + } + $Task } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK - Body = @($ScheduledTasks | Sort-Object -Property ExecutedTime -Descending) + Body = @($ScheduledTasks | Sort-Object -Property ScheduledTime, ExecutedTime -Descending) }) } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-RemoveScheduledItem.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-RemoveScheduledItem.ps1 index 11a0a23f8716..331490026b95 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-RemoveScheduledItem.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-RemoveScheduledItem.ps1 @@ -1,39 +1,45 @@ -using namespace System.Net - function Invoke-RemoveScheduledItem { <# .FUNCTIONALITY Entrypoint,AnyTenant .ROLE CIPP.Scheduler.ReadWrite + .DESCRIPTION + Removes a scheduled item from CIPP's scheduler. #> [CmdletBinding()] param($Request, $TriggerMetadata) - $APIName = 'RemoveScheduledItem' - $User = $Request.Headers + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers $RowKey = $Request.Query.id ? $Request.Query.id : $Request.Body.id $task = @{ RowKey = $RowKey PartitionKey = 'ScheduledTask' } - $Table = Get-CIPPTable -TableName 'ScheduledTasks' - Remove-AzDataTableEntity -Force @Table -Entity $task - - $DetailTable = Get-CIPPTable -TableName 'ScheduledTaskDetails' - $Details = Get-CIPPAzDataTableEntity @DetailTable -Filter "PartitionKey eq '$($RowKey)'" -Property RowKey, PartitionKey, ETag - - if ($Details) { - Remove-AzDataTableEntity -Force @DetailTable -Entity $Details + try { + $Table = Get-CIPPTable -TableName 'ScheduledTasks' + Remove-AzDataTableEntity -Force @Table -Entity $task + + $DetailTable = Get-CIPPTable -TableName 'ScheduledTaskDetails' + $Details = Get-CIPPAzDataTableEntity @DetailTable -Filter "PartitionKey eq '$($RowKey)'" -Property RowKey, PartitionKey, ETag + + if ($Details) { + Remove-AzDataTableEntity -Force @DetailTable -Entity $Details + } + + Write-LogMessage -Headers $Headers -API $APIName -message "Task removed: $($task.RowKey)" -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -Headers $Headers -API $APIName -message "Failed to remove task: $($task.RowKey). $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::BadRequest } - Write-LogMessage -Headers $User -API $APINAME -message "Task removed: $($task.RowKey)" -Sev 'Info' - - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK + return ([HttpResponseContext]@{ + StatusCode = $StatusCode Body = @{ Results = 'Task removed successfully.' } }) - } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecAPIPermissionList.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecAPIPermissionList.ps1 index a877e4b829d2..13138a817e96 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecAPIPermissionList.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecAPIPermissionList.ps1 @@ -10,7 +10,7 @@ function Invoke-ExecAPIPermissionList { $Roles = Get-CIPPHttpFunctions -ByRoleGroup | ConvertTo-Json -Depth 10 - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Roles }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecAccessChecks.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecAccessChecks.ps1 index e584f92092a9..25f2b35400cf 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecAccessChecks.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecAccessChecks.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ExecAccessChecks { <# .FUNCTIONALITY @@ -11,9 +9,6 @@ function Invoke-ExecAccessChecks { param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $Table = Get-CIPPTable -tablename 'AccessChecks' $LastRun = (Get-Date).ToUniversalTime() $4HoursAgo = (Get-Date).AddHours(-1).ToUniversalTime() @@ -141,8 +136,7 @@ function Invoke-ExecAccessChecks { 'Metadata' = $Metadata } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecAddTrustedIP.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecAddTrustedIP.ps1 index 41a0ae5a2854..9dc2f6bc543c 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecAddTrustedIP.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecAddTrustedIP.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ExecAddTrustedIP { +function Invoke-ExecAddTrustedIP { <# .FUNCTIONALITY Entrypoint @@ -11,13 +9,14 @@ Function Invoke-ExecAddTrustedIP { param($Request, $TriggerMetadata) $Table = Get-CippTable -tablename 'trustedIps' - Add-CIPPAzDataTableEntity @Table -Entity @{ - PartitionKey = $Request.Body.tenantfilter - RowKey = $Request.Body.IP - state = $Request.Body.State - } -Force - - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + foreach ($IP in $Request.body.IP) { + Add-CIPPAzDataTableEntity @Table -Entity @{ + PartitionKey = $Request.Body.tenantfilter + RowKey = $IP + state = $Request.Body.State + } -Force + } + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @{ results = "Added $($Request.Body.IP) to database with state $($Request.Body.State) for $($Request.Body.tenantfilter)" } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecApiClient.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecApiClient.ps1 index 3be1844d5811..c38ece6e144c 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecApiClient.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecApiClient.ps1 @@ -101,7 +101,7 @@ function Invoke-ExecApiClient { 'GetAzureConfiguration' { $Owner = $env:WEBSITE_OWNER_NAME Write-Information "Owner: $Owner" - if ($Owner -match '^(?[^+]+)\+(?[^-]+(?:-[^-]+)*?)(?:-[^-]+webspace(?:-Linux)?)?$') { + if ($env:WEBSITE_SKU -ne 'FlexConsumption' -and $Owner -match '^(?[^+]+)\+(?[^-]+(?:-[^-]+)*?)(?:-[^-]+webspace(?:-Linux)?)?$') { $RGName = $Matches.RGName } else { $RGName = $env:WEBSITE_RESOURCE_GROUP @@ -123,7 +123,7 @@ function Invoke-ExecApiClient { 'SaveToAzure' { $TenantId = $env:TenantID $Owner = $env:WEBSITE_OWNER_NAME - if ($Owner -match '^(?[^+]+)\+(?[^-]+(?:-[^-]+)*?)(?:-[^-]+webspace(?:-Linux)?)?$') { + if ($env:WEBSITE_SKU -ne 'FlexConsumption' -and $Owner -match '^(?[^+]+)\+(?[^-]+(?:-[^-]+)*?)(?:-[^-]+webspace(?:-Linux)?)?$') { $RGName = $Matches.RGName } else { $RGName = $env:WEBSITE_RESOURCE_GROUP @@ -148,7 +148,7 @@ function Invoke-ExecApiClient { if (!$Client) { $Results = @{ resultText = 'API client not found' - severity = 'error' + state = 'error' } } else { $ApiConfig = New-CIPPAPIConfig -ResetSecret -AppId $Request.Body.ClientId -Headers $Request.Headers @@ -200,7 +200,7 @@ function Invoke-ExecApiClient { } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecBackendURLs.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecBackendURLs.ps1 index 011fb2739387..699550f4cf69 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecBackendURLs.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecBackendURLs.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ExecBackendURLs { +function Invoke-ExecBackendURLs { <# .FUNCTIONALITY Entrypoint @@ -9,43 +7,43 @@ Function Invoke-ExecBackendURLs { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - $Subscription = ($env:WEBSITE_OWNER_NAME).split('+') | Select-Object -First 1 + $Subscription = Get-CIPPAzFunctionAppSubId $SWAName = $env:WEBSITE_SITE_NAME -replace 'cipp', 'CIPP-SWA-' # Write to the Azure Functions log stream. Write-Host 'PowerShell HTTP trigger function processed a request.' $Owner = $env:WEBSITE_OWNER_NAME - if ($Owner -match '^(?[^+]+)\+(?[^-]+(?:-[^-]+)*?)(?:-[^-]+webspace(?:-Linux)?)?$') { + if ($env:WEBSITE_SKU -ne 'FlexConsumption' -and $Owner -match '^(?[^+]+)\+(?[^-]+(?:-[^-]+)*?)(?:-[^-]+webspace(?:-Linux)?)?$') { $RGName = $Matches.RGName } else { $RGName = $env:WEBSITE_RESOURCE_GROUP } $results = [PSCustomObject]@{ - ResourceGroup = "https://portal.azure.com/#@Go/resource/subscriptions/$Subscription/resourceGroups/$RGName/overview" - KeyVault = "https://portal.azure.com/#@Go/resource/subscriptions/$Subscription/resourceGroups/$RGName/providers/Microsoft.KeyVault/vaults/$($env:WEBSITE_SITE_NAME)/secrets" - FunctionApp = "https://portal.azure.com/#@Go/resource/subscriptions/$Subscription/resourceGroups/$RGName/providers/Microsoft.Web/sites/$($env:WEBSITE_SITE_NAME)/appServices" - FunctionConfig = "https://portal.azure.com/#@Go/resource/subscriptions/$Subscription/resourceGroups/$RGName/providers/Microsoft.Web/sites/$($env:WEBSITE_SITE_NAME)/configuration" - FunctionDeployment = "https://portal.azure.com/#@Go/resource/subscriptions/$Subscription/resourceGroups/$RGName/providers/Microsoft.Web/sites/$($env:WEBSITE_SITE_NAME)/vstscd" - SWADomains = "https://portal.azure.com/#@Go/resource/subscriptions/$Subscription/resourceGroups/$RGName/providers/Microsoft.Web/staticSites/$SWAName/customDomains" - SWARoles = "https://portal.azure.com/#@Go/resource/subscriptions/$Subscription/resourceGroups/$RGName/providers/Microsoft.Web/staticSites/$SWAName/roleManagement" + ResourceGroup = "https://portal.azure.com/#@/resource/subscriptions/$Subscription/resourceGroups/$RGName/overview" + KeyVault = "https://portal.azure.com/#@/resource/subscriptions/$Subscription/resourceGroups/$RGName/providers/Microsoft.KeyVault/vaults/$($env:WEBSITE_SITE_NAME)/secrets" + FunctionApp = "https://portal.azure.com/#@/resource/subscriptions/$Subscription/resourceGroups/$RGName/providers/Microsoft.Web/sites/$($env:WEBSITE_SITE_NAME)/appServices" + FunctionConfig = "https://portal.azure.com/#@/resource/subscriptions/$Subscription/resourceGroups/$RGName/providers/Microsoft.Web/sites/$($env:WEBSITE_SITE_NAME)/configuration" + FunctionDeployment = "https://portal.azure.com/#@/resource/subscriptions/$Subscription/resourceGroups/$RGName/providers/Microsoft.Web/sites/$($env:WEBSITE_SITE_NAME)/vstscd" + SWADomains = "https://portal.azure.com/#@/resource/subscriptions/$Subscription/resourceGroups/$RGName/providers/Microsoft.Web/staticSites/$SWAName/customDomains" + SWARoles = "https://portal.azure.com/#@/resource/subscriptions/$Subscription/resourceGroups/$RGName/providers/Microsoft.Web/staticSites/$SWAName/roleManagement" Subscription = $Subscription RGName = $RGName FunctionName = $env:WEBSITE_SITE_NAME SWAName = $SWAName + Hosted = $env:CIPP_HOSTED -eq 'true' ?? $false + OS = $IsLinux ? 'Linux' : 'Windows' + SKU = $env:WEBSITE_SKU + Timezone = $env:WEBSITE_TIME_ZONE ?? 'UTC' + BusinessHoursStart = $env:CIPP_BUSINESS_HOURS_START ?? '09:00' + BusinessHoursEnd = $env:CIPP_BUSINESS_HOURS_END ?? '17:00' } $body = @{Results = $Results } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [httpstatusCode]::OK Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecBackupRetentionConfig.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecBackupRetentionConfig.ps1 new file mode 100644 index 000000000000..064784c49851 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecBackupRetentionConfig.ps1 @@ -0,0 +1,56 @@ +function Invoke-ExecBackupRetentionConfig { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.AppSettings.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Table = Get-CIPPTable -TableName Config + $Filter = "PartitionKey eq 'BackupRetention' and RowKey eq 'Settings'" + + $results = try { + if ($Request.Query.List) { + $RetentionSettings = Get-CIPPAzDataTableEntity @Table -Filter $Filter + if (!$RetentionSettings) { + # Return default values if not set + @{ + RetentionDays = 30 + } + } else { + @{ + RetentionDays = [int]$RetentionSettings.RetentionDays + } + } + } else { + $RetentionDays = [int]$Request.Body.RetentionDays + + # Validate minimum value + if ($RetentionDays -lt 7) { + throw 'Retention days must be at least 7 days' + } + + $RetentionConfig = @{ + 'RetentionDays' = $RetentionDays + 'PartitionKey' = 'BackupRetention' + 'RowKey' = 'Settings' + } + + Add-CIPPAzDataTableEntity @Table -Entity $RetentionConfig -Force | Out-Null + Write-LogMessage -headers $Request.Headers -API $Request.Params.CIPPEndpoint -message "Set backup retention to $RetentionDays days" -Sev 'Info' + "Successfully set backup retention to $RetentionDays days" + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Request.Headers -API $Request.Params.CIPPEndpoint -message "Failed to set backup retention configuration: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + "Failed to set configuration: $($ErrorMessage.NormalizedError)" + } + + $body = [pscustomobject]@{'Results' = $Results } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecBrandingSettings.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecBrandingSettings.ps1 index ab721161c8c1..ddc4ac991934 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecBrandingSettings.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecBrandingSettings.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecBrandingSettings { <# .FUNCTIONALITY @@ -11,9 +9,6 @@ Function Invoke-ExecBrandingSettings { param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $StatusCode = [HttpStatusCode]::OK @{} @@ -115,8 +110,7 @@ Function Invoke-ExecBrandingSettings { $body = [pscustomobject]@{'Results' = $Results } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCPVPermissions.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCPVPermissions.ps1 index 26e3b8414471..29dfed35e4d0 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCPVPermissions.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCPVPermissions.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ExecCPVPermissions { <# .FUNCTIONALITY @@ -9,10 +7,6 @@ function Invoke-ExecCPVPermissions { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' $TenantFilter = $Request.Body.tenantFilter $Tenant = Get-Tenants -TenantFilter $TenantFilter -IncludeErrors @@ -54,8 +48,7 @@ function Invoke-ExecCPVPermissions { $GraphRequest = 'Tenant not found' $Success = $false } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @{ Results = $GraphRequest diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCippReplacemap.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCippReplacemap.ps1 index e8cfe001d518..54d11633e42f 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCippReplacemap.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCippReplacemap.ps1 @@ -10,10 +10,17 @@ function Invoke-ExecCippReplacemap { $Table = Get-CippTable -tablename 'CippReplacemap' $Action = $Request.Query.Action ?? $Request.Body.Action - $customerId = $Request.Query.tenantId ?? $Request.Body.tenantId + $TenantId = $Request.Query.tenantId ?? $Request.Body.tenantId + if ($TenantId -eq 'AllTenants') { + $customerId = $TenantId + } else { + # ensure we use a consistent id for the table storage + $Tenant = Get-Tenants -TenantFilter $TenantId + $customerId = $Tenant.customerId + } if (!$customerId) { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::BadRequest Body = 'customerId is required' }) @@ -31,11 +38,13 @@ function Invoke-ExecCippReplacemap { 'AddEdit' { $VariableName = $Request.Body.RowKey $VariableValue = $Request.Body.Value + $VariableDescription = $Request.Body.Description $VariableEntity = @{ PartitionKey = $customerId RowKey = $VariableName Value = $VariableValue + Description = $VariableDescription } Add-CIPPAzDataTableEntity @Table -Entity $VariableEntity -Force @@ -57,7 +66,7 @@ function Invoke-ExecCippReplacemap { } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCreateDefaultGroups.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCreateDefaultGroups.ps1 new file mode 100644 index 000000000000..bd2a682429ac --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCreateDefaultGroups.ps1 @@ -0,0 +1,66 @@ +function Invoke-ExecCreateDefaultGroups { + <# + .SYNOPSIS + Create default tenant groups + .DESCRIPTION + This function creates a set of default tenant groups that are commonly used + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.Groups.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + try { + $Table = Get-CippTable -tablename 'TenantGroups' + $Results = [System.Collections.Generic.List[object]]::new() + $ExistingGroups = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'TenantGroup' and Type eq 'dynamic'" + $DefaultGroups = '[{"PartitionKey":"TenantGroup","RowKey":"369d985e-0fba-48f9-844f-9f793b10a12c","Description":"This group does not have a license for intune, nor a license for Entra ID Premium","Description@type":null,"DynamicRules":"[{\"property\":\"availableServicePlan\",\"operator\":\"notIn\",\"value\":[{\"label\":\"Microsoft Intune\",\"value\":\"INTUNE_A\",\"id\":\"c1ec4a95-1f05-45b3-a911-aa3fa01094f5\"}]},{\"property\":\"availableServicePlan\",\"operator\":\"notIn\",\"value\":[{\"label\":\"Microsoft Entra ID P1\",\"value\":\"AAD_PREMIUM\",\"id\":\"41781fb2-bc02-4b7c-bd55-b576c07bb09d\"}]}]","DynamicRules@type":null,"GroupType":"dynamic","GroupType@type":null,"RuleLogic":"and","RuleLogic@type":null,"Name":"Not Intune and Entra Premium Capable","Name@type":null},{"PartitionKey":"TenantGroup","RowKey":"4dbca08b-7dc5-4e0f-bc25-14a90c8e0941","Description":"This group has atleast one Business Premium License available","Description@type":null,"DynamicRules":"[{\"property\":\"availableLicense\",\"operator\":\"in\",\"value\":[{\"label\":\"Microsoft 365 Business Premium\",\"value\":\"SPB\"}]},{\"property\":\"availableLicense\",\"operator\":\"in\",\"value\":[{\"label\":\"Microsoft 365 Business Premium (no Teams)\",\"value\":\"Microsoft_365_ Business_ Premium_(no Teams)\"}]},{\"property\":\"availableLicense\",\"operator\":\"in\",\"value\":[{\"label\":\"Microsoft 365 Business Premium Donation\",\"value\":\"Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing)\"}]},{\"property\":\"availableLicense\",\"operator\":\"in\",\"value\":[{\"label\":\"Microsoft 365 Business Premium EEA (no Teams)\",\"value\":\"Office_365_w\/o_Teams_Bundle_Business_Premium\"}]}]","DynamicRules@type":null,"GroupType":"dynamic","GroupType@type":null,"RuleLogic":"or","RuleLogic@type":null,"Name":"Business Premium License available","Name@type":null},{"PartitionKey":"TenantGroup","RowKey":"703c0e69-84a8-4dcf-a1c2-4986d2ccc850","Description":"This group does have a license for Entra Premium but does not have a license for Intune","Description@type":null,"DynamicRules":"[{\"property\":\"availableServicePlan\",\"operator\":\"in\",\"value\":[{\"label\":\"Microsoft Entra ID P1\",\"value\":\"AAD_PREMIUM\",\"id\":\"41781fb2-bc02-4b7c-bd55-b576c07bb09d\"}]},{\"property\":\"availableServicePlan\",\"operator\":\"notIn\",\"value\":[{\"label\":\"Microsoft Intune\",\"value\":\"INTUNE_A\",\"id\":\"c1ec4a95-1f05-45b3-a911-aa3fa01094f5\"}]}]","DynamicRules@type":null,"GroupType":"dynamic","GroupType@type":null,"RuleLogic":"and","RuleLogic@type":null,"Name":"Entra Premium Capable, Not Intune Capable","Name@type":null},{"PartitionKey":"TenantGroup","RowKey":"c1dadbc0-f0b4-448c-a2e6-e1938ba102e0","Description":"This group has Intune and Entra ID Premium available","Description@type":null,"DynamicRules":"{\"property\":\"availableServicePlan\",\"operator\":\"in\",\"value\":[{\"label\":\"Microsoft Intune\",\"value\":\"INTUNE_A\"},{\"label\":\"Microsoft Entra ID P1\",\"value\":\"AAD_PREMIUM\"}]}","DynamicRules@type":null,"GroupType":"dynamic","GroupType@type":null,"RuleLogic":"and","RuleLogic@type":null,"Name":"Entra ID Premium and Intune Capable","Name@type":null}]' | ConvertFrom-Json + + + foreach ($Group in $DefaultGroups) { + # Check if group with same name already exists + $ExistingGroup = $ExistingGroups | Where-Object -Property Name -EQ $group.Name + if ($ExistingGroup) { + $Results.Add(@{ + resultText = "Group '$($Group.Name)' already exists, skipping" + state = 'warning' + }) + continue + } + $GroupEntity = @{ + PartitionKey = 'TenantGroup' + RowKey = $group.RowKey + Name = $Group.Name + Description = $Group.Description + GroupType = $Group.GroupType + DynamicRules = $Group.DynamicRules + RuleLogic = $Group.RuleLogic + } + Add-CIPPAzDataTableEntity @Table -Entity $GroupEntity -Force + + $Results.Add(@{ + resultText = "Created default group: '$($Group.Name)'" + state = 'success' + }) + + Write-LogMessage -API 'TenantGroups' -message "Created default tenant group: $($Group.Name)" -sev Info + } + + $Body = @{ Results = $Results } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'TenantGroups' -message "Failed to create default groups: $ErrorMessage" -sev Error + $Body = @{ Results = "Failed to create default groups: $ErrorMessage" } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = $Body + }) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCustomData.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCustomData.ps1 index 739360e5f5e9..61c8fac9ad44 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCustomData.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCustomData.ps1 @@ -365,10 +365,10 @@ function Invoke-ExecCustomData { [PSCustomObject]@{ id = $_.RowKey tenant = $Mapping.tenantFilter.label - dataset = $Mapping.extensionSyncDataset.label + dataset = $Mapping.extensionSyncDataset.label ?? 'N/A' sourceType = $Mapping.sourceType.label directoryObject = $Mapping.directoryObjectType.label - syncProperty = $Mapping.extensionSyncProperty.label ?? @($Mapping.extensionSyncDataset.addedFields.select -split ',') + syncProperty = $Mapping.extensionSyncProperty.label ?? ($Mapping.extensionSyncDataset ? @($Mapping.extensionSyncDataset.addedFields.select -split ',') : 'N/A') customDataAttribute = $Mapping.customDataAttribute.label } } @@ -493,7 +493,7 @@ function Invoke-ExecCustomData { } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCustomRole.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCustomRole.ps1 index 738aacfd7183..b4d91f8bffa6 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCustomRole.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCustomRole.ps1 @@ -10,9 +10,19 @@ function Invoke-ExecCustomRole { $Table = Get-CippTable -tablename 'CustomRoles' $AccessRoleGroupTable = Get-CippTable -tablename 'AccessRoleGroups' + $AccessIPRangeTable = Get-CippTable -tablename 'AccessIPRanges' $Action = $Request.Query.Action ?? $Request.Body.Action - $DefaultRoles = @('readonly', 'editor', 'admin', 'superadmin') + $CIPPCore = (Get-Module -Name CIPPCore).ModuleBase + $CIPPRoot = (Get-Item -Path $CIPPCore).Parent.Parent.FullName + + $CippRolesJson = Join-Path -Path $CIPPRoot -ChildPath 'Config\cipp-roles.json' + if (Test-Path $CippRolesJson) { + $DefaultRoles = Get-Content -Path $CippRolesJson | ConvertFrom-Json + } else { + throw "Could not find $CippRolesJson" + } + $BlockedRoles = @('anonymous', 'authenticated') if ($Request.Body.RoleName -in $BlockedRoles) { @@ -24,17 +34,54 @@ function Invoke-ExecCustomRole { try { $Results = [System.Collections.Generic.List[string]]::new() Write-LogMessage -headers $Request.Headers -API 'ExecCustomRole' -message "Saved custom role $($Request.Body.RoleName)" -Sev 'Info' - if ($Request.Body.RoleName -notin $DefaultRoles) { + + # Process IP Range if provided (but not for superadmin to prevent lockout) + if ($Request.Body.IpRange -and $Request.Body.RoleName -ne 'superadmin') { + $IpRange = [System.Collections.Generic.List[string]]::new() + $regexPattern = '^(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3}(?:/\d{1,2})?|(?:[0-9A-Fa-f]{1,4}:){1,7}[0-9A-Fa-f]{1,4}(?:/\d{1,3})?)$' + foreach ($IP in @($Request.Body.IpRange)) { + if ($IP -match $regexPattern) { + $IpRange.Add($IP) + } + } + } else { + $IpRange = @() + } + + if ($Request.Body.RoleName -notin $DefaultRoles.PSObject.Properties.Name) { $Role = @{ - 'PartitionKey' = 'CustomRoles' - 'RowKey' = "$($Request.Body.RoleName.ToLower())" - 'Permissions' = "$($Request.Body.Permissions | ConvertTo-Json -Compress)" - 'AllowedTenants' = "$($Request.Body.AllowedTenants | ConvertTo-Json -Compress)" - 'BlockedTenants' = "$($Request.Body.BlockedTenants | ConvertTo-Json -Compress)" + 'PartitionKey' = 'CustomRoles' + 'RowKey' = "$($Request.Body.RoleName.ToLower())" + 'Permissions' = "$($Request.Body.Permissions | ConvertTo-Json -Compress)" + 'AllowedTenants' = "$($Request.Body.AllowedTenants | ConvertTo-Json -Compress)" + 'BlockedTenants' = "$($Request.Body.BlockedTenants | ConvertTo-Json -Compress)" + 'BlockedEndpoints' = "$($Request.Body.BlockedEndpoints | ConvertTo-Json -Compress)" } Add-CIPPAzDataTableEntity @Table -Entity $Role -Force | Out-Null $Results.Add("Custom role $($Request.Body.RoleName) saved") } + if ($Request.Body.RoleName -eq 'superadmin' -and $Request.Body.IpRange) { + $Results.Add('Note: IP restrictions are not allowed on the superadmin role to prevent lockout issues.') + } + # Store IP ranges in separate table (works for both custom and default roles) + if ($IpRange.Count -gt 0 -and $Request.Body.RoleName -ne 'superadmin') { + $IPRangeEntity = @{ + 'PartitionKey' = 'AccessIPRanges' + 'RowKey' = "$($Request.Body.RoleName.ToLower())" + 'IPRanges' = "$(@($IpRange) | ConvertTo-Json -Compress)" + } + Add-CIPPAzDataTableEntity @AccessIPRangeTable -Entity $IPRangeEntity -Force | Out-Null + $Results.Add("IP ranges configured for '$($Request.Body.RoleName)' role.") + } else { + # Remove IP ranges if none provided or role is superadmin + $ExistingIPRange = Get-CIPPAzDataTableEntity @AccessIPRangeTable -Filter "RowKey eq '$($Request.Body.RoleName.ToLower())'" + if ($ExistingIPRange) { + Remove-AzDataTableEntity -Force @AccessIPRangeTable -Entity $ExistingIPRange + if ($Request.Body.RoleName -ne 'superadmin') { + $Results.Add("IP ranges removed from '$($Request.Body.RoleName)' role.") + } + } + } if ($Request.Body.EntraGroup) { $RoleGroup = @{ 'PartitionKey' = 'AccessRoleGroups' @@ -60,10 +107,64 @@ function Invoke-ExecCustomRole { $Body = @{Results = "Failed to save custom role $($Request.Body.RoleName)" } } } + 'Clone' { + try { + if ($Request.Body.NewRoleName -in $DefaultRoles.PSObject.Properties.Name) { + throw "Role name $($Request.Body.NewRoleName) cannot be used" + } + $ExistingRole = Get-CIPPAzDataTableEntity @Table -Filter "RowKey eq '$($Request.Body.RoleName.ToLower())'" + if (!$ExistingRole) { + throw "Role $($Request.Body.RoleName) not found" + } + + if ($ExistingRole.RowKey -eq $Request.Body.NewRoleName.ToLower()) { + throw 'New role name cannot be the same as the existing role name' + } + + $NewRoleTest = Get-CIPPAzDataTableEntity @Table -Filter "RowKey eq '$($Request.Body.NewRoleName.ToLower())'" + if ($NewRoleTest) { + throw "Role name $($Request.Body.NewRoleName) already exists" + } + + $NewRole = @{ + 'PartitionKey' = 'CustomRoles' + 'RowKey' = "$($Request.Body.NewRoleName.ToLower())" + 'Permissions' = $ExistingRole.Permissions + 'AllowedTenants' = $ExistingRole.AllowedTenants + 'BlockedTenants' = $ExistingRole.BlockedTenants + 'BlockedEndpoints' = $ExistingRole.BlockedEndpoints + } + Add-CIPPAzDataTableEntity @Table -Entity $NewRole -Force | Out-Null + # Clone IP ranges if they exist + $ExistingIPRange = Get-CIPPAzDataTableEntity @AccessIPRangeTable -Filter "RowKey eq '$($Request.Body.RoleName.ToLower())'" + if ($ExistingIPRange) { + $NewIPRangeEntity = @{ + 'PartitionKey' = 'AccessIPRanges' + 'RowKey' = "$($Request.Body.NewRoleName.ToLower())" + 'IPRanges' = $ExistingIPRange.IPRanges + } + Add-CIPPAzDataTableEntity @AccessIPRangeTable -Entity $NewIPRangeEntity -Force | Out-Null + } + $Body = @{Results = "Custom role '$($Request.Body.NewRoleName)' cloned from '$($Request.Body.RoleName)'" } + Write-LogMessage -headers $Request.Headers -API 'ExecCustomRole' -message "Cloned custom role $($Request.Body.RoleName) to $($Request.Body.NewRoleName)" -Sev 'Info' + } catch { + Write-Warning "Failed to clone custom role $($Request.Body.RoleName): $($_.Exception.Message)" + Write-Warning $_.InvocationInfo.PositionMessage + $Body = @{Results = "Failed to clone custom role $($Request.Body.RoleName)" } + } + } 'Delete' { Write-Information "Deleting custom role $($Request.Body.RoleName)" $Role = Get-CIPPAzDataTableEntity @Table -Filter "RowKey eq '$($Request.Body.RoleName)'" -Property RowKey, PartitionKey Remove-AzDataTableEntity -Force @Table -Entity $Role + $AccessRoleGroup = Get-CIPPAzDataTableEntity @AccessRoleGroupTable -Filter "PartitionKey eq 'AccessRoleGroups' and RowKey eq '$($Request.Body.RoleName)'" + if ($AccessRoleGroup) { + Remove-AzDataTableEntity -Force @AccessRoleGroupTable -Entity $AccessRoleGroup + } + $AccessIPRange = Get-CIPPAzDataTableEntity @AccessIPRangeTable -Filter "PartitionKey eq 'AccessIPRanges' and RowKey eq '$($Request.Body.RoleName)'" + if ($AccessIPRange) { + Remove-AzDataTableEntity -Force @AccessIPRangeTable -Entity $AccessIPRange + } $Body = @{Results = 'Custom role deleted' } Write-LogMessage -headers $Request.Headers -API 'ExecCustomRole' -message "Deleted custom role $($Request.Body.RoleName)" -Sev 'Info' } @@ -77,8 +178,9 @@ function Invoke-ExecCustomRole { } } default { - $Body = Get-CIPPAzDataTableEntity @Table + $Body = Get-CIPPAzDataTableEntity @Table | Sort-Object -Property RowKey $EntraRoleGroups = Get-CIPPAzDataTableEntity @AccessRoleGroupTable + $AccessIPRanges = Get-CIPPAzDataTableEntity @AccessIPRangeTable if (!$Body) { $Body = @( @{ @@ -90,13 +192,13 @@ function Invoke-ExecCustomRole { try { $Role.Permissions = $Role.Permissions | ConvertFrom-Json } catch { - $Role.Permissions = '' + $Role.Permissions = @() } if ($Role.AllowedTenants) { try { $Role.AllowedTenants = @($Role.AllowedTenants | ConvertFrom-Json) } catch { - $Role.AllowedTenants = '' + $Role.AllowedTenants = @() } } else { $Role | Add-Member -NotePropertyName AllowedTenants -NotePropertyValue @() -Force @@ -105,30 +207,64 @@ function Invoke-ExecCustomRole { try { $Role.BlockedTenants = @($Role.BlockedTenants | ConvertFrom-Json) } catch { - $Role.BlockedTenants = '' + $Role.BlockedTenants = @() } } else { $Role | Add-Member -NotePropertyName BlockedTenants -NotePropertyValue @() -Force } + if ($Role.BlockedEndpoints) { + try { + $Role.BlockedEndpoints = @($Role.BlockedEndpoints | ConvertFrom-Json) + } catch { + $Role.BlockedEndpoints = @() + } + } else { + $Role | Add-Member -NotePropertyName BlockedEndpoints -NotePropertyValue @() -Force + } $EntraRoleGroup = $EntraRoleGroups | Where-Object -Property RowKey -EQ $Role.RowKey if ($EntraRoleGroup) { $EntraGroup = $EntraRoleGroups | Where-Object -Property RowKey -EQ $Role.RowKey | Select-Object @{Name = 'label'; Expression = { $_.GroupName } }, @{Name = 'value'; Expression = { $_.GroupId } } $Role | Add-Member -NotePropertyName EntraGroup -NotePropertyValue $EntraGroup -Force } + # Load IP ranges from separate table + $IPRangeEntity = $AccessIPRanges | Where-Object -Property RowKey -EQ $Role.RowKey + if ($IPRangeEntity) { + try { + $IPRanges = @($IPRangeEntity.IPRanges | ConvertFrom-Json) + } catch { + $IPRanges = @() + } + $Role | Add-Member -NotePropertyName IPRange -NotePropertyValue $IPRanges -Force + } else { + $Role | Add-Member -NotePropertyName IPRange -NotePropertyValue @() -Force + } $Role } - $DefaultRoles = foreach ($DefaultRole in $DefaultRoles) { + $DefaultRoles = foreach ($DefaultRole in $DefaultRoles.PSObject.Properties.Name) { $Role = @{ - RowKey = $DefaultRole - Permissions = '' - AllowedTenants = @('AllTenants') - BlockedTenants = @('') + RowKey = $DefaultRole + Permissions = $DefaultRoles.$DefaultRole + AllowedTenants = @('AllTenants') + BlockedTenants = @() + BlockedEndpoints = @() } $EntraRoleGroup = $EntraRoleGroups | Where-Object -Property RowKey -EQ $Role.RowKey if ($EntraRoleGroup) { $Role.EntraGroup = $EntraRoleGroups | Where-Object -Property RowKey -EQ $Role.RowKey | Select-Object @{Name = 'label'; Expression = { $_.GroupName } }, @{Name = 'value'; Expression = { $_.GroupId } } } + # Load IP ranges from separate table + $IPRangeEntity = $AccessIPRanges | Where-Object -Property RowKey -EQ $DefaultRole + if ($IPRangeEntity) { + try { + $IPRanges = @($IPRangeEntity.IPRanges | ConvertFrom-Json) + } catch { + $IPRanges = @() + } + $Role.IPRange = $IPRanges + } else { + $Role.IPRange = @() + } $Role } $Body = @($DefaultRoles + $CustomRoles) @@ -136,7 +272,7 @@ function Invoke-ExecCustomRole { } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecDnsConfig.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecDnsConfig.ps1 index e87e84033249..46d80f061f29 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecDnsConfig.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecDnsConfig.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecDnsConfig { <# .FUNCTIONALITY @@ -11,9 +9,6 @@ Function Invoke-ExecDnsConfig { param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # List of supported resolvers $ValidResolvers = @( 'Google' @@ -106,8 +101,7 @@ Function Invoke-ExecDnsConfig { $StatusCode = [HttpStatusCode]::BadRequest } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecExchangeRoleRepair.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecExchangeRoleRepair.ps1 index 76cea5d8a031..af8f95f2edc7 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecExchangeRoleRepair.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecExchangeRoleRepair.ps1 @@ -15,14 +15,14 @@ function Invoke-ExecExchangeRoleRepair { try { Write-Information "Starting Exchange Organization Management role repair for tenant: $($Tenant.defaultDomainName)" - $OrgManagementRoles = New-ExoRequest -tenantid $Tenant.customerId -cmdlet 'Get-ManagementRoleAssignment' -cmdParams @{ RoleAssignee = 'Organization Management'; Delegating = $false } | Select-Object -Property Role, Guid + $OrgManagementRoles = New-ExoRequest -tenantid $Tenant.customerId -cmdlet 'Get-ManagementRoleAssignment' -cmdParams @{ Delegating = $false } | Where-Object { $_.RoleAssigneeName -eq 'Organization Management' } | Select-Object -Property Role, Guid Write-Information "Found $($OrgManagementRoles.Count) Organization Management roles in Exchange" $RoleDefinitions = New-GraphGetRequest -tenantid $Tenant.customerId -uri 'https://graph.microsoft.com/beta/roleManagement/exchange/roleDefinitions' Write-Information "Found $($RoleDefinitions.Count) Exchange role definitions" $BasePath = Get-Module -Name 'CIPPCore' | Select-Object -ExpandProperty ModuleBase - $AllOrgManagementRoles = Get-Content -Path "$BasePath\Public\OrganizationManagementRoles.json" -ErrorAction Stop | ConvertFrom-Json + $AllOrgManagementRoles = Get-Content -Path "$BasePath\lib\data\OrganizationManagementRoles.json" -ErrorAction Stop | ConvertFrom-Json $AvailableRoles = $RoleDefinitions | Where-Object -Property displayName -In $AllOrgManagementRoles | Select-Object -Property displayName, id, description Write-Information "Found $($AvailableRoles.Count) available Organization Management roles in Exchange" @@ -53,7 +53,7 @@ function Invoke-ExecExchangeRoleRepair { state = 'success' resultText = "Successfully repaired the missing Organization Management roles: $($MissingOrgMgmtRoles.displayName -join ', ')" } - Write-LogMessage -headers $Headers -tenant $Tenant.defaultDomainName -tenantid $Tenant.customerId -Message "Successfully repaired the missing Organization Management roles: $($MissingOrgMgmtRoles.displayName -join ', '). Run another Tenant Access check after waiting a bit for replication." -sev 'Info' + Write-LogMessage -API 'ExecExchangeRoleRepair' -headers $Headers -tenant $Tenant.defaultDomainName -tenantid $Tenant.customerId -Message "Successfully repaired the missing Organization Management roles: $($MissingOrgMgmtRoles.displayName -join ', '). Run another Tenant Access check after waiting a bit for replication." -sev 'Info' } else { # Get roles that failed to repair $FailedRoles = $RepairResults | Where-Object { $_.status -ne 201 } | ForEach-Object { @@ -65,11 +65,13 @@ function Invoke-ExecExchangeRoleRepair { if ($RepairResults.status -in (401, 403, 500)) { $PermissionError = $true } + $LogData = $RepairResults | Select-Object -Property id, status, body $Results = @{ state = 'error' resultText = "Failed to repair the missing Organization Management roles: $($FailedRoles -join ', ').$(if ($PermissionError) { " This may be due to insufficient permissions. The required Graph Permission is 'Application - RoleManagement.ReadWrite.Exchange'" })" } - Write-LogMessage -headers $Headers -tenant $Tenant.defaultDomainName -tenantid $Tenant.customerId -Message "Failed to repair the missing Organization Management roles: $($FailedRoles -join ', ')" -sev 'Error' + Write-LogMessage -API 'ExecExchangeRoleRepair' -headers $Headers -tenant $Tenant.defaultDomainName -tenantid $Tenant.customerId -Message "Failed to repair the missing Organization Management roles: $($FailedRoles -join ', ')" -sev 'Error' -LogData $LogData + Write-Warning 'Exchange role repair failed' } } else { $Results = @{ @@ -80,14 +82,14 @@ function Invoke-ExecExchangeRoleRepair { } catch { $ErrorMessage = Get-CippException -Exception $_ Write-Warning "Exception during Exchange Organization Management role repair: $($ErrorMessage.NormalizedError)" - Write-LogMessage -headers $Headers -tenant $Tenant.defaultDomainName -tenantid $Tenant.customerId -Message "Exchange Organization Management role repair failed: $($ErrorMessage.NormalizedError)" -sev 'Error' -LogData $ErrorMessage + Write-LogMessage -API 'ExecExchangeRoleRepair' -headers $Headers -tenant $Tenant.defaultDomainName -tenantid $Tenant.customerId -Message "Exchange Organization Management role repair failed: $($ErrorMessage.NormalizedError)" -sev 'Error' -LogData $ErrorMessage $Results = @{ state = 'error' resultText = "Exchange Organization Management role repair failed: $($ErrorMessage.NormalizedError)" } } - Push-OutputBinding -Name 'Response' -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [System.Net.HttpStatusCode]::OK Body = $Results }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecExcludeLicenses.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecExcludeLicenses.ps1 index 936659310732..0c44628dbac1 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecExcludeLicenses.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecExcludeLicenses.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ExecExcludeLicenses { +function Invoke-ExecExcludeLicenses { <# .FUNCTIONALITY Entrypoint @@ -12,62 +10,60 @@ Function Invoke-ExecExcludeLicenses { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - - $Table = Get-CIPPTable -TableName ExcludedLicenses - try { - if ($Request.Query.List) { - $Rows = Get-CIPPAzDataTableEntity @Table - if ($Rows.Count -lt 1) { - $TableBaseData = '[{"GUID":"16ddbbfc-09ea-4de2-b1d7-312db6112d70","Product_Display_Name":"MICROSOFT TEAMS (FREE)"},{"GUID":"1f2f344a-700d-42c9-9427-5cea1d5d7ba6","Product_Display_Name":"MICROSOFT STREAM"},{"GUID":"338148b6-1b11-4102-afb9-f92b6cdc0f8d","Product_Display_Name":"DYNAMICS 365 P1 TRIAL FOR INFORMATION WORKERS"},{"GUID":"606b54a9-78d8-4298-ad8b-df6ef4481c80","Product_Display_Name":"Power Virtual Agents Viral Trial"},{"GUID":"61e6bd70-fbdb-4deb-82ea-912842f39431","Product_Display_Name":"Dynamics 365 Customer Service Insights Trial"},{"GUID":"6470687e-a428-4b7a-bef2-8a291ad947c9","Product_Display_Name":"WINDOWS STORE FOR BUSINESS"},{"GUID":"710779e8-3d4a-4c88-adb9-386c958d1fdf","Product_Display_Name":"MICROSOFT TEAMS EXPLORATORY"},{"GUID":"74fbf1bb-47c6-4796-9623-77dc7371723b","Product_Display_Name":"Microsoft Teams Trial"},{"GUID":"90d8b3f8-712e-4f7b-aa1e-62e7ae6cbe96","Product_Display_Name":"Business Apps (free)"},{"GUID":"a403ebcc-fae0-4ca2-8c8c-7a907fd6c235","Product_Display_Name":"Power BI (free)"},{"GUID":"bc946dac-7877-4271-b2f7-99d2db13cd2c","Product_Display_Name":"Dynamics 365 Customer Voice Trial"},{"GUID":"dcb1a3ae-b33f-4487-846a-a640262fadf4","Product_Display_Name":"Microsoft Power Apps Plan 2 Trial"},{"GUID":"f30db892-07e9-47e9-837c-80727f46fd3d","Product_Display_Name":"MICROSOFT FLOW FREE"},{"GUID":"fcecd1f9-a91e-488d-a918-a96cdb6ce2b0","Product_Display_Name":"Microsoft Dynamics AX7 User Trial"}]' | ConvertFrom-Json -AsHashtable -Depth 10 - $TableRows = foreach ($Row in $TableBaseData) { - $Row.PartitionKey = 'License' - $Row.RowKey = $Row.GUID + # Interact with query parameters or the body of the request. + try { + $Action = $Request.Body.Action + $GUID = $Request.Body.GUID + $DisplayName = $Request.Body.SKUName - Add-CIPPAzDataTableEntity @Table -Entity ([pscustomobject]$Row) -Force | Out-Null + switch ($Action) { + 'AddExclusion' { + $AddObject = @{ + PartitionKey = 'License' + RowKey = $GUID + 'GUID' = $GUID + 'Product_Display_Name' = $DisplayName } + Add-CIPPAzDataTableEntity @Table -Entity $AddObject -Force + $Result = "Success. Added $DisplayName($GUID) to the excluded licenses list." + Write-LogMessage -API $APIName -headers $Headers -message $Result -Sev 'Info' - $Rows = Get-CIPPAzDataTableEntity @Table - - Write-LogMessage -API $APINAME -headers $Request.Headers -message 'got excluded licenses list' -Sev 'Info' } - $body = @($Rows) - } + 'RemoveExclusion' { + $Filter = "RowKey eq '{0}' and PartitionKey eq 'License'" -f $GUID + $Entity = Get-CIPPAzDataTableEntity @Table -Filter $Filter -Property PartitionKey, RowKey + Remove-AzDataTableEntity -Force @Table -Entity $Entity + $Result = "Success. Removed $DisplayName($GUID) from the excluded licenses list." + Write-LogMessage -API $APIName -headers $Headers -message $Result -Sev 'Info' - # Interact with query parameters or the body of the request. - $name = $Request.Query.TenantFilter - if ($Request.Query.AddExclusion) { - $AddObject = @{ - PartitionKey = 'License' - RowKey = $Request.body.GUID - 'GUID' = $Request.body.GUID - 'Product_Display_Name' = $request.body.SKUName } - Add-CIPPAzDataTableEntity @Table -Entity $AddObject -Force + 'RestoreDefaults' { + $FullReset = [bool]$Request.Body.FullReset + if ($FullReset) { + $InitResult = Initialize-CIPPExcludedLicenses -Force -Headers $Headers -APIName $APIName + } else { + $InitResult = Initialize-CIPPExcludedLicenses -Headers $Headers -APIName $APIName + } + $Result = $InitResult.Message - Write-LogMessage -API $APINAME -headers $Request.Headers -message "Added exclusion $($request.body.SKUName)" -Sev 'Info' - $body = [pscustomobject]@{'Results' = "Success. We've added $($request.body.SKUName) to the excluded list." } + } + default { + $StatusCode = [HttpStatusCode]::BadRequest + $Result = "Invalid action specified: $Action" + } } - if ($Request.Query.RemoveExclusion) { - $Filter = "RowKey eq '{0}' and PartitionKey eq 'License'" -f $Request.Body.GUID - $Entity = Get-CIPPAzDataTableEntity @Table -Filter $Filter -Property PartitionKey, RowKey - Remove-AzDataTableEntity -Force @Table -Entity $Entity - Write-LogMessage -API $APINAME -headers $Request.Headers -message "Removed exclusion $($Request.Query.GUID)" -Sev 'Info' - $body = [pscustomobject]@{'Results' = "Success. We've removed $($Request.query.guid) from the excluded list." } - } } catch { - Write-LogMessage -API $APINAME -headers $Request.Headers -message "Exclusion API failed. $($_.Exception.Message)" -Sev 'Error' - $body = [pscustomobject]@{'Results' = "Failed. $($_.Exception.Message)" } + $ErrorMessage = Get-CippException -Exception $_ + $StatusCode = [HttpStatusCode]::InternalServerError + $Result = "Failed to process exclusion request. $($ErrorMessage.NormalizedError)" + Write-LogMessage -API $APIName -headers $Headers -message $Result -Sev 'Error' -LogData $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $body + return ([HttpResponseContext]@{ + StatusCode = $StatusCode ?? [HttpStatusCode]::OK + Body = [pscustomobject]@{ 'Results' = $Result } }) - } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecExcludeTenant.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecExcludeTenant.ps1 index 03dde3c8ebcb..1f9202ef62b9 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecExcludeTenant.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecExcludeTenant.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecExcludeTenant { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-ExecExcludeTenant { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # $username = $Request.Headers.'x-ms-client-principal-name' $Username = $Headers.'x-ms-client-principal-name' ?? ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json).userDetails @@ -65,8 +63,7 @@ Function Invoke-ExecExcludeTenant { } if (!$body) { $body = @() } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecJITAdminSettings.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecJITAdminSettings.ps1 new file mode 100644 index 000000000000..416c118bd238 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecJITAdminSettings.ps1 @@ -0,0 +1,94 @@ +function Invoke-ExecJITAdminSettings { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.AppSettings.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + $StatusCode = [HttpStatusCode]::OK + + try { + $Table = Get-CIPPTable -TableName Config + $Filter = "PartitionKey eq 'JITAdminSettings' and RowKey eq 'JITAdminSettings'" + $JITAdminConfig = Get-CIPPAzDataTableEntity @Table -Filter $Filter + + if (-not $JITAdminConfig) { + $JITAdminConfig = @{ + PartitionKey = 'JITAdminSettings' + RowKey = 'JITAdminSettings' + MaxDuration = $null # null means no limit + } + } + + $Action = if ($Request.Body.Action) { $Request.Body.Action } else { $Request.Query.Action } + + $Results = switch ($Action) { + 'Get' { + @{ + MaxDuration = $JITAdminConfig.MaxDuration + } + } + 'Set' { + $MaxDuration = $Request.Body.MaxDuration.value + Write-Host "MAx dur: $($MaxDuration)" + # Validate ISO 8601 duration format if provided + if (![string]::IsNullOrWhiteSpace($MaxDuration)) { + try { + # Test if it's a valid ISO 8601 duration + $null = [System.Xml.XmlConvert]::ToTimeSpan($MaxDuration) + $JITAdminConfig | Add-Member -NotePropertyName MaxDuration -NotePropertyValue $MaxDuration -Force + } catch { + $StatusCode = [HttpStatusCode]::BadRequest + @{ + Results = 'Error: Invalid ISO 8601 duration format. Expected format like PT4H, P1D, P4W, etc.' + } + break + } + } else { + # Empty or null means no limit + $JITAdminConfig.MaxDuration = $null + } + + $JITAdminConfig.PartitionKey = 'JITAdminSettings' + $JITAdminConfig.RowKey = 'JITAdminSettings' + + Add-CIPPAzDataTableEntity @Table -Entity $JITAdminConfig -Force | Out-Null + + $Message = if ($JITAdminConfig.MaxDuration) { + "Successfully set JIT Admin maximum duration to $($JITAdminConfig.MaxDuration)" + } else { + 'Successfully removed JIT Admin maximum duration limit' + } + + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Info' + + @{ + Results = $Message + } + } + default { + $StatusCode = [HttpStatusCode]::BadRequest + @{ + Results = 'Error: Invalid action. Use Get or Set.' + } + } + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $StatusCode = [HttpStatusCode]::InternalServerError + $Results = @{ + Results = "Error: $($ErrorMessage.NormalizedError)" + } + Write-LogMessage -headers $Headers -API $APIName -message "Failed to process JIT Admin settings: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Results + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecMaintenanceScripts.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecMaintenanceScripts.ps1 index 42eeded7c863..d543ce5a2770 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecMaintenanceScripts.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecMaintenanceScripts.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecMaintenanceScripts { <# .FUNCTIONALITY @@ -11,8 +9,6 @@ Function Invoke-ExecMaintenanceScripts { param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' try { $GraphToken = Get-GraphToken -returnRefresh $true $AccessTokenDetails = Read-JwtAccessDetails -Token $GraphToken.access_token @@ -21,7 +17,7 @@ Function Invoke-ExecMaintenanceScripts { '##TENANTID##' = $env:TenantID '##RESOURCEGROUP##' = $env:WEBSITE_RESOURCE_GROUP '##FUNCTIONAPP##' = $env:WEBSITE_SITE_NAME - '##SUBSCRIPTION##' = (($env:WEBSITE_OWNER_NAME).split('+') | Select-Object -First 1) + '##SUBSCRIPTION##' = Get-CIPPAzFunctionAppSubId '##TOKENIP##' = $AccessTokenDetails.IPAddress } } catch { Write-Host $_.Exception.Message } @@ -72,8 +68,7 @@ Function Invoke-ExecMaintenanceScripts { $Body = @{Status = "Failed to retrieve maintenance scripts $($_.Exception.Message)" } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecNotificationConfig.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecNotificationConfig.ps1 index c05eb0e58b01..feafd5eae3f0 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecNotificationConfig.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecNotificationConfig.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecNotificationConfig { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ Function Invoke-ExecNotificationConfig { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $sev = ([pscustomobject]$Request.body.Severity).value -join (',') $config = @{ email = $Request.body.email @@ -26,8 +19,7 @@ Function Invoke-ExecNotificationConfig { $Results = Set-cippNotificationConfig @Config $body = [pscustomobject]@{'Results' = $Results } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecOffloadFunctions.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecOffloadFunctions.ps1 index 369ec7196b8c..f3ff7fd425fb 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecOffloadFunctions.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecOffloadFunctions.ps1 @@ -52,7 +52,7 @@ function Invoke-ExecOffloadFunctions { CanEnable = $CanEnable } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $CurrentState }) @@ -68,7 +68,7 @@ function Invoke-ExecOffloadFunctions { } else { $Results = 'Disabled Offload Functions' } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @{ results = $Results } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecPartnerMode.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecPartnerMode.ps1 index 947c4ac50ef0..3703b4c278c3 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecPartnerMode.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecPartnerMode.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ExecPartnerMode { <# .FUNCTIONALITY @@ -41,7 +39,7 @@ function Invoke-ExecPartnerMode { Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Compress -Depth 5) } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @{ results = @( @@ -67,7 +65,7 @@ function Invoke-ExecPartnerMode { } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $CurrentState }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecPasswordConfig.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecPasswordConfig.ps1 index cfe09ce96841..11d16e39a503 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecPasswordConfig.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecPasswordConfig.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecPasswordConfig { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ Function Invoke-ExecPasswordConfig { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $Table = Get-CIPPTable -TableName Settings $PasswordType = (Get-CIPPAzDataTableEntity @Table) @@ -39,8 +32,7 @@ Function Invoke-ExecPasswordConfig { $body = [pscustomobject]@{'Results' = $Results } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecPermissionRepair.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecPermissionRepair.ps1 index 499d31a60a22..513e0bd5aca0 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecPermissionRepair.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecPermissionRepair.ps1 @@ -13,76 +13,16 @@ function Invoke-ExecPermissionRepair { param($Request, $TriggerMetadata) try { - $Table = Get-CippTable -tablename 'AppPermissions' $User = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Request.Headers.'x-ms-client-principal')) | ConvertFrom-Json - - $CurrentPermissions = Get-CippSamPermissions - if (($CurrentPermissions.MissingPermissions | Measure-Object).Count -gt 0) { - Write-Information 'Missing permissions found' - $MissingPermissions = $CurrentPermissions.MissingPermissions - $Permissions = $CurrentPermissions.Permissions - - $AppIds = @($Permissions.PSObject.Properties.Name + $MissingPermissions.PSObject.Properties.Name) - - $NewPermissions = @{} - foreach ($AppId in $AppIds) { - $ApplicationPermissions = [system.collections.generic.list[object]]::new() - $DelegatedPermissions = [system.collections.generic.list[object]]::new() - - # App permissions - foreach ($Permission in $Permissions.$AppId.applicationPermissions) { - $ApplicationPermissions.Add($Permission) - } - if (($MissingPermissions.$AppId.applicationPermissions | Measure-Object).Count -gt 0) { - foreach ($MissingPermission in $MissingPermissions.$AppId.applicationPermissions) { - Write-Host "Adding missing permission: $MissingPermission" - $ApplicationPermissions.Add($MissingPermission) - } - } - - # Delegated permissions - foreach ($Permission in $Permissions.$AppId.delegatedPermissions) { - $DelegatedPermissions.Add($Permission) - } - if (($MissingPermissions.$AppId.delegatedPermissions | Measure-Object).Count -gt 0) { - foreach ($MissingPermission in $MissingPermissions.$AppId.delegatedPermissions) { - Write-Host "Adding missing permission: $MissingPermission" - $DelegatedPermissions.Add($MissingPermission) - } - } - # New permission object - $NewPermissions.$AppId = @{ - applicationPermissions = @($ApplicationPermissions | Sort-Object -Property label) - delegatedPermissions = @($DelegatedPermissions | Sort-Object -Property label) - } - } - - - $Entity = @{ - 'PartitionKey' = 'CIPP-SAM' - 'RowKey' = 'CIPP-SAM' - 'Permissions' = [string]([PSCustomObject]$NewPermissions | ConvertTo-Json -Depth 10 -Compress) - 'UpdatedBy' = $User.UserDetails ?? 'CIPP-API' - } - $Table = Get-CIPPTable -TableName 'AppPermissions' - $null = Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force - - $Body = @{ - 'Results' = 'Permissions Updated' - } - Write-LogMessage -headers $Request.Headers -API 'ExecPermissionRepair' -message 'CIPP-SAM Permissions Updated' -Sev 'Info' -LogData $Permissions - } else { - $Body = @{ - 'Results' = 'No permissions to update' - } - } + $Result = Update-CippSamPermissions -UpdatedBy ($User.UserDetails ?? 'CIPP-API') + $Body = @{'Results' = $Result } } catch { $Body = @{ 'Results' = "$($_.Exception.Message) - at line $($_.InvocationInfo.ScriptLineNumber)" } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecRemoveTenant.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecRemoveTenant.ps1 index 72f227659de1..52381ad80053 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecRemoveTenant.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecRemoveTenant.ps1 @@ -29,7 +29,7 @@ function Invoke-ExecRemoveTenant { } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecRestoreBackup.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecRestoreBackup.ps1 index 9a12d734adce..61a133046e41 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecRestoreBackup.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecRestoreBackup.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ExecRestoreBackup { +function Invoke-ExecRestoreBackup { <# .FUNCTIONALITY Entrypoint @@ -11,23 +9,34 @@ Function Invoke-ExecRestoreBackup { param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' try { if ($Request.Body.BackupName -like 'CippBackup_*') { - $Table = Get-CippTable -tablename 'CIPPBackup' - $Backup = Get-CippAzDataTableEntity @Table -Filter "RowKey eq '$($Request.Body.BackupName)'" + # Use Get-CIPPBackup which already handles fetching from blob storage + $Backup = Get-CIPPBackup -Type 'CIPP' -Name $Request.Body.BackupName if ($Backup) { - $BackupData = $Backup.Backup | ConvertFrom-Json -ErrorAction SilentlyContinue | Select-Object * -ExcludeProperty ETag, Timestamp + $raw = $Backup.Backup + $BackupData = $null + + # Get-CIPPBackup already fetches blob content, so raw should be JSON string + try { + if ($raw -is [string]) { + $BackupData = $raw | ConvertFrom-Json -ErrorAction Stop + } else { + $BackupData = $raw | Select-Object * -ExcludeProperty ETag, Timestamp + } + } catch { + throw "Failed to parse backup JSON: $($_.Exception.Message)" + } + $BackupData | ForEach-Object { $Table = Get-CippTable -tablename $_.table - $ht2 = @{ } + $ht2 = @{} $_.psobject.properties | ForEach-Object { $ht2[$_.Name] = [string]$_.Value } $Table.Entity = $ht2 Add-CIPPAzDataTableEntity @Table -Force } - Write-LogMessage -headers $Request.Headers -API $APINAME -message 'Created backup' -Sev 'Debug' + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Restored backup $($Request.Body.BackupName)" -Sev 'Info' $body = [pscustomobject]@{ 'Results' = 'Successfully restored backup.' } @@ -44,7 +53,7 @@ Function Invoke-ExecRestoreBackup { $Table.Entity = $ht2 Add-AzDataTableEntity @Table -Force } - Write-LogMessage -headers $Request.Headers -API $APINAME -message 'Created backup' -Sev 'Debug' + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Restored backup $($Request.Body.BackupName)" -Sev 'Info' $body = [pscustomobject]@{ 'Results' = 'Successfully restored backup.' @@ -56,8 +65,7 @@ Function Invoke-ExecRestoreBackup { } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecRunBackup.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecRunBackup.ps1 index 7edbd5cbc7aa..de1d11c38b6b 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecRunBackup.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecRunBackup.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecRunBackup { <# .FUNCTIONALITY @@ -35,8 +33,7 @@ Function Invoke-ExecRunBackup { } | ConvertTo-Json -Depth 5 -Compress Write-LogMessage -headers $Request.Headers -API $APINAME -message 'Failed to create CIPP backup' -Sev 'Error' -LogData (Get-CippException -Exception $_) } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecRunTenantGroupRule.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecRunTenantGroupRule.ps1 new file mode 100644 index 000000000000..31aaec5c4d31 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecRunTenantGroupRule.ps1 @@ -0,0 +1,40 @@ +function Invoke-ExecRunTenantGroupRule { + <# + .SYNOPSIS + Execute tenant group dynamic rules immediately + .DESCRIPTION + This function executes dynamic tenant group rules for immediate membership updates + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.Groups.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $GroupId = $Request.Body.groupId ?? $Request.Query.groupId + + try { + $GroupTable = Get-CippTable -tablename 'TenantGroups' + $Group = Get-CIPPAzDataTableEntity @GroupTable -Filter "PartitionKey eq 'TenantGroup' and RowKey eq '$GroupId'" + + if (-not $Group) { $Body = @{ Results = 'Group not found' } } + + $null = Start-TenantDynamicGroupOrchestrator -GroupId $GroupId + + $Body = @{ Results = "Dynamic rules executed successfully for group '$($Group.Name)'. Processing will continue in the background. Check the logbook for details." } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'TenantGroups' -message "Failed to execute tenant group rules: $ErrorMessage" -sev Error + $Body = @{ Results = "Failed to execute dynamic rules: $ErrorMessage" } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = $Body + }) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecSAMAppPermissions.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecSAMAppPermissions.ps1 index 9b9ac162784a..1421a7260301 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecSAMAppPermissions.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecSAMAppPermissions.ps1 @@ -38,7 +38,7 @@ function Invoke-ExecSAMAppPermissions { } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = ConvertTo-Json -Depth 10 -InputObject $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecSAMRoles.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecSAMRoles.ps1 index b001693e4cef..9c5ad86db193 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecSAMRoles.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecSAMRoles.ps1 @@ -35,7 +35,7 @@ function Invoke-ExecSAMRoles { } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecTenantGroup.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecTenantGroup.ps1 index 029f21fe25be..73b1a1bce23b 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecTenantGroup.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecTenantGroup.ps1 @@ -7,7 +7,7 @@ function Invoke-ExecTenantGroup { .FUNCTIONALITY Entrypoint,AnyTenant .ROLE - TenantGroups.Config.ReadWrite + Tenant.Groups.ReadWrite #> [CmdletBinding()] param($Request, $TriggerMetadata) @@ -19,6 +19,17 @@ function Invoke-ExecTenantGroup { $groupName = $Request.Body.groupName $groupDescription = $Request.Body.groupDescription $members = $Request.Body.members + $groupType = $Request.Body.groupType ?? 'static' + $dynamicRules = $Request.Body.dynamicRules + $ruleLogic = $Request.Body.ruleLogic ?? 'and' + + $AllowedGroups = Test-CippAccess -Request $Request -GroupList + if ($AllowedGroups -notcontains 'AllGroups') { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::Forbidden + Body = @{ Results = 'You do not have permission to manage tenant groups.' } + }) + } switch ($Action) { 'AddEdit' { @@ -32,6 +43,13 @@ function Invoke-ExecTenantGroup { if ($groupDescription) { $GroupEntity.Description = $groupDescription } + $GroupEntity | Add-Member -NotePropertyName 'GroupType' -NotePropertyValue $groupType -Force + if ($groupType -eq 'dynamic' -and $dynamicRules) { + $GroupEntity | Add-Member -NotePropertyName 'DynamicRules' -NotePropertyValue "$($dynamicRules | ConvertTo-Json -Depth 100 -Compress)" -Force + $GroupEntity | Add-Member -NotePropertyName 'RuleLogic' -NotePropertyValue $ruleLogic -Force + } else { + $GroupEntity | Add-Member -NotePropertyName 'RuleLogic' -NotePropertyValue $null -Force + } Add-CIPPAzDataTableEntity @Table -Entity $GroupEntity -Force } else { $GroupEntity = @{ @@ -39,39 +57,51 @@ function Invoke-ExecTenantGroup { RowKey = $groupId Name = $groupName Description = $groupDescription + GroupType = $groupType + } + if ($groupType -eq 'dynamic' -and $dynamicRules) { + $GroupEntity.DynamicRules = "$($dynamicRules | ConvertTo-Json -Depth 100 -Compress)" + $GroupEntity.RuleLogic = $ruleLogic } Add-CIPPAzDataTableEntity @Table -Entity $GroupEntity -Force } - $CurrentMembers = Get-CIPPAzDataTableEntity @MembersTable -Filter "GroupId eq '$groupId'" - + # Handle members based on group type $Adds = [System.Collections.Generic.List[string]]::new() $Removes = [System.Collections.Generic.List[string]]::new() - # Add members - foreach ($member in $members) { - if ($CurrentMembers) { - $CurrentMember = $CurrentMembers | Where-Object { $_.customerId -eq $member.value } - if ($CurrentMember) { - continue + + if ($groupType -eq 'static') { + # Static group - manage members manually + $CurrentMembers = Get-CIPPAzDataTableEntity @MembersTable -Filter "PartitionKey eq 'Member' and GroupId eq '$groupId'" + + # Add members + foreach ($member in $members) { + if ($CurrentMembers) { + $CurrentMember = $CurrentMembers | Where-Object { $_.customerId -eq $member.value } + if ($CurrentMember) { + continue + } } + $MemberEntity = @{ + PartitionKey = 'Member' + RowKey = '{0}-{1}' -f $groupId, $member.value + GroupId = $groupId + customerId = $member.value + } + Add-CIPPAzDataTableEntity @MembersTable -Entity $MemberEntity -Force + $Adds.Add('Added member {0}' -f $member.label) } - $MemberEntity = @{ - PartitionKey = 'Member' - RowKey = '{0}-{1}' -f $groupId, $member.value - GroupId = $groupId - customerId = $member.value - } - Add-CIPPAzDataTableEntity @MembersTable -Entity $MemberEntity -Force - $Adds.Add('Added member {0}' -f $member.label) - } - if ($CurrentMembers) { - foreach ($CurrentMember in $CurrentMembers) { - if ($members.value -notcontains $CurrentMember.customerId) { - Remove-AzDataTableEntity @MembersTable -Entity $CurrentMember -Force - $Removes.Add('Removed member {0}' -f $CurrentMember.customerId) + if ($CurrentMembers) { + foreach ($CurrentMember in $CurrentMembers) { + if ($members.value -notcontains $CurrentMember.customerId) { + Remove-AzDataTableEntity @MembersTable -Entity $CurrentMember -Force + $Removes.Add('Removed member {0}' -f $CurrentMember.customerId) + } } } + } elseif ($groupType -eq 'dynamic') { + $Adds.Add('Dynamic group updated. Rules will be processed on next scheduled run.') } $Results.Add(@{ resultText = "Group '$groupName' saved successfully" @@ -107,7 +137,7 @@ function Invoke-ExecTenantGroup { } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecTimeSettings.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecTimeSettings.ps1 new file mode 100644 index 000000000000..ef058b8a94b2 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecTimeSettings.ps1 @@ -0,0 +1,97 @@ +function Invoke-ExecTimeSettings { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.SuperAdmin.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + try { + $Subscription = Get-CIPPAzFunctionAppSubId + $Owner = $env:WEBSITE_OWNER_NAME + + if ($env:WEBSITE_SKU -ne 'FlexConsumption' -and $Owner -match '^(?[^+]+)\+(?[^-]+(?:-[^-]+)*?)(?:-[^-]+webspace(?:-Linux)?)?$') { + $RGName = $Matches.RGName + } else { + $RGName = $env:WEBSITE_RESOURCE_GROUP + } + + $FunctionName = $env:WEBSITE_SITE_NAME + $Timezone = $Request.Body.Timezone.value ?? $Request.Body.Timezone + $BusinessHoursStart = $Request.Body.BusinessHoursStart.value ?? $Request.Body.BusinessHoursStart + + # Validate timezone format + if (-not $Timezone) { + throw 'Timezone is required' + } + + if (!$IsLinux) { + # Get Timezone standard name for Windows + $Timezone = Get-TimeZone -Id $Timezone | Select-Object -ExpandProperty StandardName + } + + # Calculate business hours end time (10 hours after start) + $BusinessHoursEnd = $null + if ($env:WEBSITE_SKU -eq 'FlexConsumption') { + if (-not $BusinessHoursStart) { + throw 'Business hours start time is required for Flex Consumption plans' + } + + # Validate time format (HH:mm) + if ($BusinessHoursStart -notmatch '^\d{2}:\d{2}$') { + throw 'Business hours start time must be in HH:mm format' + } + + # Calculate end time (start + 10 hours) + $StartTime = [DateTime]::ParseExact($BusinessHoursStart, 'HH:mm', $null) + $EndTime = $StartTime.AddHours(10) + $BusinessHoursEnd = $EndTime.ToString('HH:mm') + } + + Write-Information "Updating function app time settings: Timezone=$Timezone, BusinessHoursStart=$BusinessHoursStart, BusinessHoursEnd=$BusinessHoursEnd" + + # Build app settings hashtable + $AppSettings = @{ + 'WEBSITE_TIME_ZONE' = $Timezone + } + + if ($env:WEBSITE_SKU -eq 'FlexConsumption') { + $AppSettings['CIPP_BUSINESS_HOURS_START'] = $BusinessHoursStart + $AppSettings['CIPP_BUSINESS_HOURS_END'] = $BusinessHoursEnd + } + + # Update app settings using ARM REST via managed identity + Update-CIPPAzFunctionAppSetting -Name $FunctionName -ResourceGroupName $RGName -AppSetting $AppSettings | Out-Null + + Write-LogMessage -API 'ExecTimeSettings' -headers $Request.Headers -message "Updated time settings: Timezone=$Timezone, BusinessHours=$BusinessHoursStart-$BusinessHoursEnd" -Sev 'Info' + + $Results = @{ + Results = 'Time settings updated successfully. Please note that timezone changes may require a function app restart to take effect.' + Timezone = $Timezone + SKU = $env:WEBSITE_SKU + } + + if ($env:WEBSITE_SKU -eq 'FlexConsumption') { + $Results.BusinessHoursStart = $BusinessHoursStart + $Results.BusinessHoursEnd = $BusinessHoursEnd + } + + return ([HttpResponseContext]@{ + StatusCode = [httpstatusCode]::OK + Body = $Results + }) + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'ExecTimeSettings' -headers $Request.Headers -message "Failed to update time settings: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + + return ([HttpResponseContext]@{ + StatusCode = [httpstatusCode]::BadRequest + Body = @{ + Results = "Failed to update time settings: $($ErrorMessage.NormalizedError)" + } + }) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecWebhookSubscriptions.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecWebhookSubscriptions.ps1 index c5cf687c5fc9..9bdea4f141dd 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecWebhookSubscriptions.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecWebhookSubscriptions.ps1 @@ -15,12 +15,12 @@ function Invoke-ExecWebhookSubscriptions { if ($Webhook) { Remove-CIPPGraphSubscription -TenantFilter $Webhook.PartitionKey -CIPPID $Webhook.RowKey Remove-AzDataTableEntity -Force @Table -Entity $Webhook - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @{ Results = "Deleted subscription $($Webhook.RowKey) for $($Webhook.PartitionKey)" } }) } else { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @{ Results = "Subscription $($Request.Query.WebhookID) not found" } }) @@ -41,7 +41,7 @@ function Invoke-ExecWebhookSubscriptions { $Unsubscribe.EventType = $Webhook.EventType } if ($Webhook.Resource -match 'PartnerCenter') { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::BadRequest Body = 'PartnerCenter subscriptions cannot be unsubscribed' }) @@ -49,12 +49,12 @@ function Invoke-ExecWebhookSubscriptions { } Remove-CIPPGraphSubscription @Unsubscribe Remove-AzDataTableEntity -Force @Table -Entity $Webhook - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @{ Results = "Unsubscribed from $($Webhook.Resource) for $($Webhook.PartitionKey)" } }) } else { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @{ Results = "Subscription $($Request.Query.WebhookID) not found" } }) @@ -75,7 +75,7 @@ function Invoke-ExecWebhookSubscriptions { } } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @{ Results = $Results } }) @@ -101,7 +101,7 @@ function Invoke-ExecWebhookSubscriptions { } catch { Write-Host $_.Exception.Message } - Push-OutputBinding -name Response -value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @{ Results = $NewSub.message } }) @@ -110,7 +110,7 @@ function Invoke-ExecWebhookSubscriptions { default { $Table = Get-CIPPTable -TableName webhookTable $Subscriptions = Get-AzDataTableEntity @Table - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Subscriptions }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListCustomRole.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListCustomRole.ps1 index a3c89065b371..08e84177482a 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListCustomRole.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListCustomRole.ps1 @@ -7,11 +7,6 @@ function Invoke-ListCustomRole { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $DefaultRoles = @('readonly', 'editor', 'admin', 'superadmin') $Table = Get-CippTable -tablename 'CustomRoles' $CustomRoles = Get-CIPPAzDataTableEntity @Table @@ -19,12 +14,26 @@ function Invoke-ListCustomRole { $AccessRoleGroupTable = Get-CippTable -tablename 'AccessRoleGroups' $RoleGroups = Get-CIPPAzDataTableEntity @AccessRoleGroupTable + $AccessIPRangeTable = Get-CippTable -tablename 'AccessIPRanges' + $AccessIPRanges = Get-CIPPAzDataTableEntity @AccessIPRangeTable + $TenantList = Get-Tenants -IncludeErrors $RoleList = [System.Collections.Generic.List[pscustomobject]]::new() foreach ($Role in $DefaultRoles) { $RoleGroup = $RoleGroups | Where-Object -Property RowKey -EQ $Role + $IPRangeEntity = $AccessIPRanges | Where-Object -Property RowKey -EQ $Role + if ($IPRangeEntity) { + try { + $IPRanges = @($IPRangeEntity.IPRanges | ConvertFrom-Json) + } catch { + $IPRanges = @() + } + } else { + $IPRanges = @() + } + $RoleList.Add([pscustomobject]@{ RoleName = $Role Type = 'Built-In' @@ -33,6 +42,7 @@ function Invoke-ListCustomRole { BlockedTenants = @() EntraGroup = $RoleGroup.GroupName ?? $null EntraGroupId = $RoleGroup.GroupId ?? $null + IPRange = $IPRanges }) } foreach ($Role in $CustomRoles) { @@ -49,9 +59,31 @@ function Invoke-ListCustomRole { if ($Role.AllowedTenants) { try { $AllowedTenants = $Role.AllowedTenants | ConvertFrom-Json -ErrorAction Stop | ForEach-Object { - $TenantId = $_ - $TenantList | Where-Object { $_.customerId -eq $TenantId } | Select-Object -ExpandProperty defaultDomainName - } + if ($_ -is [PSCustomObject] -and $_.type -eq 'Group') { + # Return group objects as-is for frontend display + [PSCustomObject]@{ + type = 'Group' + value = $_.value + label = $_.label + } + } else { + # Convert tenant customer ID to domain name object for frontend + $TenantId = $_ + $TenantInfo = $TenantList | Where-Object { $_.customerId -eq $TenantId } + if ($TenantInfo) { + [PSCustomObject]@{ + type = 'Tenant' + value = $TenantInfo.defaultDomainName + label = "$($TenantInfo.displayName) ($($TenantInfo.defaultDomainName))" + addedFields = @{ + defaultDomainName = $TenantInfo.defaultDomainName + displayName = $TenantInfo.displayName + customerId = $TenantInfo.customerId + } + } + } + } + } | Where-Object { $_ -ne $null } $AllowedTenants = $AllowedTenants ?? @('AllTenants') $Role.AllowedTenants = @($AllowedTenants) } catch { @@ -63,9 +95,31 @@ function Invoke-ListCustomRole { if ($Role.BlockedTenants) { try { $BlockedTenants = $Role.BlockedTenants | ConvertFrom-Json -ErrorAction Stop | ForEach-Object { - $TenantId = $_ - $TenantList | Where-Object { $_.customerId -eq $TenantId } | Select-Object -ExpandProperty defaultDomainName - } + if ($_ -is [PSCustomObject] -and $_.type -eq 'Group') { + # Return group objects as-is for frontend display + [PSCustomObject]@{ + type = 'Group' + value = $_.value + label = $_.label + } + } else { + # Convert tenant customer ID to domain name object for frontend + $TenantId = $_ + $TenantInfo = $TenantList | Where-Object { $_.customerId -eq $TenantId } + if ($TenantInfo) { + [PSCustomObject]@{ + type = 'Tenant' + value = $TenantInfo.defaultDomainName + label = "$($TenantInfo.displayName) ($($TenantInfo.defaultDomainName))" + addedFields = @{ + defaultDomainName = $TenantInfo.defaultDomainName + displayName = $TenantInfo.displayName + customerId = $TenantInfo.customerId + } + } + } + } + } | Where-Object { $_ -ne $null } $BlockedTenants = $BlockedTenants ?? @() $Role.BlockedTenants = @($BlockedTenants) } catch { @@ -85,8 +139,9 @@ function Invoke-ListCustomRole { } $Body = @($RoleList) - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = ConvertTo-Json -InputObject $Body -Depth 5 }) } + diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListCustomVariables.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListCustomVariables.ps1 new file mode 100644 index 000000000000..d512c090da28 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListCustomVariables.ps1 @@ -0,0 +1,287 @@ +function Invoke-ListCustomVariables { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + + $HttpResponse = [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{} + } + + try { + # Define reserved variables (matching Get-CIPPTextReplacement) + $ReservedVariables = @( + @{ + Name = 'tenantid' + Variable = '%tenantid%' + Description = 'The tenant customer ID' + Type = 'reserved' + Category = 'tenant' + }, + @{ + Name = 'organizationid' + Variable = '%organizationid%' + Description = 'The tenant customer ID' + Type = 'reserved' + Category = 'tenant' + }, + @{ + Name = 'tenantfilter' + Variable = '%tenantfilter%' + Description = 'The tenant default domain name' + Type = 'reserved' + Category = 'tenant' + }, + @{ + Name = 'tenantname' + Variable = '%tenantname%' + Description = 'The tenant display name' + Type = 'reserved' + Category = 'tenant' + }, + @{ + Name = 'defaultdomain' + Variable = '%defaultdomain%' + Description = 'The tenant default domain name' + Type = 'reserved' + Category = 'tenant' + }, + @{ + Name = 'initialdomain' + Variable = '%initialdomain%' + Description = 'The tenant initial domain name' + Type = 'reserved' + Category = 'tenant' + }, + @{ + Name = 'partnertenantid' + Variable = '%partnertenantid%' + Description = 'The partner tenant ID' + Type = 'reserved' + Category = 'partner' + }, + @{ + Name = 'samappid' + Variable = '%samappid%' + Description = 'The SAM application ID' + Type = 'reserved' + Category = 'partner' + }, + @{ + Name = 'cippuserschema' + Variable = '%cippuserschema%' + Description = 'The CIPP user schema extension ID' + Type = 'reserved' + Category = 'cipp' + }, + @{ + Name = 'cippurl' + Variable = '%cippurl%' + Description = 'The CIPP instance URL' + Type = 'reserved' + Category = 'cipp' + }, + @{ + Name = 'serial' + Variable = '%serial%' + Description = 'System serial number' + Type = 'reserved' + Category = 'system' + }, + @{ + Name = 'systemroot' + Variable = '%systemroot%' + Description = 'System root directory' + Type = 'reserved' + Category = 'system' + }, + @{ + Name = 'systemdrive' + Variable = '%systemdrive%' + Description = 'System drive letter' + Type = 'reserved' + Category = 'system' + }, + @{ + Name = 'temp' + Variable = '%temp%' + Description = 'Temporary directory path' + Type = 'reserved' + Category = 'system' + }, + @{ + Name = 'userprofile' + Variable = '%userprofile%' + Description = 'User profile directory' + Type = 'reserved' + Category = 'system' + }, + @{ + Name = 'username' + Variable = '%username%' + Description = 'Current username' + Type = 'reserved' + Category = 'system' + }, + @{ + Name = 'userdomain' + Variable = '%userdomain%' + Description = 'User domain' + Type = 'reserved' + Category = 'system' + }, + @{ + Name = 'windir' + Variable = '%windir%' + Description = 'Windows directory' + Type = 'reserved' + Category = 'system' + }, + @{ + Name = 'programfiles' + Variable = '%programfiles%' + Description = 'Program Files directory' + Type = 'reserved' + Category = 'system' + }, + @{ + Name = 'programfiles(x86)' + Variable = '%programfiles(x86)%' + Description = 'Program Files (x86) directory' + Type = 'reserved' + Category = 'system' + }, + @{ + Name = 'programdata' + Variable = '%programdata%' + Description = 'Program Data directory' + Type = 'reserved' + Category = 'system' + } + ) + + # Use a hashtable to track variables by name to handle overrides + $VariableMap = @{} + + if ($Request.Query.includeSystem -and $Request.Query.includeSystem -ne 'true') { + $ReservedVariables = $ReservedVariables | Where-Object { $_.Category -ne 'system' } + } + + # Filter out global reserved variables if requested (for tenant group rules) + # These variables are the same for all tenants so they're not useful for grouping + if ($Request.Query.excludeGlobalReserved -eq 'true') { + $ReservedVariables = $ReservedVariables | Where-Object { + $_.Category -notin @('partner', 'cipp', 'system') + } + } + + # Add reserved variables first + foreach ($Variable in $ReservedVariables) { + $VariableMap[$Variable.Name] = $Variable + } + + # Get custom variables from the replace map table + $ReplaceTable = Get-CIPPTable -tablename 'CippReplacemap' + + # Get global variables (AllTenants) - these can be overridden by tenant-specific ones + $GlobalVariables = Get-CIPPAzDataTableEntity @ReplaceTable -Filter "PartitionKey eq 'AllTenants'" + if ($GlobalVariables) { + foreach ($Variable in $GlobalVariables) { + if ($Variable.RowKey -and $Variable.Value) { + $VariableMap[$Variable.RowKey] = @{ + Name = $Variable.RowKey + Variable = "%$($Variable.RowKey)%" + Description = 'Global custom variable' + Value = $Variable.Value + Type = 'custom' + Category = 'global' + Scope = 'AllTenants' + } + } + } + } + + # Get tenant-specific variables if tenantFilter is provided + # These override any global variables with the same name + $TenantFilter = $Request.Query.tenantFilter + if ($TenantFilter -and $TenantFilter -ne 'AllTenants') { + # Try to get tenant to find customerId + try { + $Tenant = Get-Tenants -TenantFilter $TenantFilter + $CustomerId = $Tenant.customerId + + # Get variables by customerId + $TenantVariables = Get-CIPPAzDataTableEntity @ReplaceTable -Filter "PartitionKey eq '$CustomerId'" + + # If no results found by customerId, try by defaultDomainName + if (-not $TenantVariables) { + $TenantVariables = Get-CIPPAzDataTableEntity @ReplaceTable -Filter "PartitionKey eq '$($Tenant.defaultDomainName)'" + } + + if ($TenantVariables) { + foreach ($Variable in $TenantVariables) { + if ($Variable.RowKey -and $Variable.Value) { + # Tenant variables override global ones with the same name + $VariableMap[$Variable.RowKey] = @{ + Name = $Variable.RowKey + Variable = "%$($Variable.RowKey)%" + Description = 'Tenant-specific custom variable' + Value = $Variable.Value + Type = 'custom' + Category = 'tenant-custom' + Scope = $TenantFilter + } + } + } + } + } catch { + Write-LogMessage -API $APIName -message "Could not retrieve tenant-specific variables for $TenantFilter : $($_.Exception.Message)" -Sev 'Warning' + } + } + + # Convert hashtable values to array and sort + $AllVariables = $VariableMap.Values + $SortedVariables = $AllVariables | Sort-Object @{ + Expression = { + switch ($_.Type) { + 'reserved' { 1 } + 'custom' { + switch ($_.Category) { + 'global' { 2 } + 'tenant-custom' { 3 } + default { 4 } + } + } + default { 5 } + } + } + }, Name + + $HttpResponse.Body = @{ + Results = @($SortedVariables) + Metadata = @{ + TenantFilter = $TenantFilter + TotalCount = $SortedVariables.Count + ReservedCount = @($SortedVariables | Where-Object { $_.Type -eq 'reserved' }).Count + CustomCount = @($SortedVariables | Where-Object { $_.Type -eq 'custom' }).Count + } + } + + } catch { + $HttpResponse.StatusCode = [HttpStatusCode]::InternalServerError + $HttpResponse.Body = @{ + Results = @() + Error = $_.Exception.Message + } + Write-LogMessage -API $APIName -message "Failed to retrieve custom variables: $($_.Exception.Message)" -Sev 'Error' + } + + return $HttpResponse +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListExcludedLicenses.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListExcludedLicenses.ps1 new file mode 100644 index 000000000000..764cbdc2ce79 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListExcludedLicenses.ps1 @@ -0,0 +1,37 @@ +function Invoke-ListExcludedLicenses { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.AppSettings.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + try { + $Table = Get-CIPPTable -TableName ExcludedLicenses + $Rows = Get-CIPPAzDataTableEntity @Table + + # If no excluded licenses exist, initialize them + if ($Rows.Count -lt 1) { + Write-Information 'Excluded licenses table is empty. Initializing from config file.' + $null = Initialize-CIPPExcludedLicenses -Headers $Headers -APIName $APIName + $Rows = Get-CIPPAzDataTableEntity @Table + } + + $Results = @($Rows) + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $StatusCode = [HttpStatusCode]::InternalServerError + $Results = "Failed to list excluded licenses. $($ErrorMessage.NormalizedError)" + Write-LogMessage -API $APIName -headers $Headers -message $Results -Sev 'Error' -LogData $ErrorMessage + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode ?? [HttpStatusCode]::OK + Body = [pscustomobject]@{ 'Results' = $Results } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListTenantGroups.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListTenantGroups.ps1 index 790ccae6ff2c..4aae7a0858df 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListTenantGroups.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListTenantGroups.ps1 @@ -11,10 +11,10 @@ function Invoke-ListTenantGroups { param($Request, $TriggerMetadata) $groupFilter = $Request.Query.groupId ?? $Request.Body.groupId - $TenantGroups = (Get-TenantGroups -GroupId $groupFilter) ?? @() + $TenantGroups = (Get-TenantGroups -GroupId $groupFilter -SkipCache) ?? @() $Body = @{ Results = @($TenantGroups) } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecAddTenant.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecAddTenant.ps1 index be1c4131ea69..f1345a069ea6 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecAddTenant.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecAddTenant.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ExecAddTenant { <# .FUNCTIONALITY @@ -33,13 +31,35 @@ function Invoke-ExecAddTenant { } else { # Create new tenant entry try { - # Get tenant information from Microsoft Graph + # Get tenant information from Microsoft Graph using bulk request $headers = @{ Authorization = "Bearer $($request.body.accessToken)" } - $Organization = (Invoke-RestMethod -Uri 'https://graph.microsoft.com/v1.0/organization' -Headers $headers -Method GET -ContentType 'application/json' -ErrorAction Stop).value - $displayName = $Organization.displayName - $Domains = (Invoke-RestMethod -Uri 'https://graph.microsoft.com/v1.0/domains?$top=999' -Headers $headers -Method GET -ContentType 'application/json' -ErrorAction Stop).value - $defaultDomainName = ($Domains | Where-Object { $_.isDefault -eq $true }).id - $initialDomainName = ($Domains | Where-Object { $_.isInitial -eq $true }).id + + $BulkRequests = @( + @{ + id = 'organization' + method = 'GET' + url = '/organization?$select=id,displayName' + } + @{ + id = 'domains' + method = 'GET' + url = '/domains?$top=999' + } + ) + + $BulkBody = @{ + requests = $BulkRequests + } | ConvertTo-Json -Depth 10 + + $BulkResponse = Invoke-RestMethod -Uri 'https://graph.microsoft.com/v1.0/$batch' -Headers $headers -Method POST -Body $BulkBody -ContentType 'application/json' -ErrorAction Stop + + # Parse bulk response + $OrgResponse = ($BulkResponse.responses | Where-Object { $_.id -eq 'organization' }).body.value + $DomainsResponse = ($BulkResponse.responses | Where-Object { $_.id -eq 'domains' }).body.value + + $displayName = $OrgResponse.displayName + $defaultDomainName = ($DomainsResponse | Where-Object { $_.isDefault -eq $true }).id + $initialDomainName = ($DomainsResponse | Where-Object { $_.isInitial -eq $true }).id } catch { Write-LogMessage -API 'Add-Tenant' -message "Failed to get information for tenant $tenantId - $($_.Exception.Message)" -Sev 'Critical' throw "Failed to get information for tenant $tenantId. Make sure the tenant is properly authenticated." @@ -66,15 +86,35 @@ function Invoke-ExecAddTenant { # Add tenant to table Add-CIPPAzDataTableEntity @TenantsTable -Entity $NewTenant -Force | Out-Null - $Results = @{'message' = "Successfully added tenant $displayName ($defaultDomainName) to the tenant list with Direct Tenant status."; 'severity' = 'success' } - Write-LogMessage -tenant $defaultDomainName -tenantid $tenantId -API 'Add-Tenant' -message "Added tenant $displayName ($defaultDomainName) with Direct Tenant status." -Sev 'Info' + $Results = @{'message' = "Successfully added tenant $displayName ($defaultDomainName) to the tenant list with Direct Tenant status. Permission refresh queued, the tenant will be available shortly."; 'severity' = 'success' } + Write-LogMessage -tenant $defaultDomainName -tenantid $tenantId -API 'NewTenant' -message "Added tenant $displayName ($defaultDomainName) with Direct Tenant status." -Sev 'Info' + + # Trigger CPV refresh to push remaining permissions to this specific tenant + try { + $Queue = New-CippQueueEntry -Name "Update Permissions - $displayName" -TotalTasks 1 + $TenantBatch = @([PSCustomObject]@{ + defaultDomainName = $defaultDomainName + customerId = $tenantId + displayName = $displayName + FunctionName = 'UpdatePermissionsQueue' + QueueId = $Queue.RowKey + }) + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'UpdatePermissionsOrchestrator' + Batch = @($TenantBatch) + } + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + Write-Information "Started permissions update orchestrator for $displayName" + } catch { + Write-Warning "Failed to start permissions orchestrator: $($_.Exception.Message)" + } + } } catch { $Results = @{'message' = "Failed to add tenant: $($_.Exception.Message)"; 'state' = 'error'; 'severity' = 'error' } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Results }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecCombinedSetup.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecCombinedSetup.ps1 index 3fa7ac8df368..154edd7c73af 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecCombinedSetup.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecCombinedSetup.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ExecCombinedSetup { <# .FUNCTIONALITY @@ -13,13 +11,6 @@ function Invoke-ExecCombinedSetup { #Make arraylist of Results $Results = [System.Collections.ArrayList]::new() try { - # Set up Azure context if needed for Key Vault access - if ($env:AzureWebJobsStorage -ne 'UseDevelopmentStorage=true' -and $env:MSI_SECRET) { - Disable-AzContextAutosave -Scope Process | Out-Null - $null = Connect-AzAccount -Identity - $SubscriptionId = $env:WEBSITE_OWNER_NAME -split '\+' | Select-Object -First 1 - $null = Set-AzContext -SubscriptionId $SubscriptionId - } if ($request.body.selectedBaselines -and $request.body.baselineOption -eq 'downloadBaselines') { #do a single download of the selected baselines. foreach ($template in $request.body.selectedBaselines) { @@ -67,7 +58,7 @@ function Invoke-ExecCombinedSetup { if ($Request.Body.selectedOption -eq 'Manual') { $KV = $env:WEBSITE_DEPLOYMENT_ID - if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true') { + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { $DevSecretsTable = Get-CIPPTable -tablename 'DevSecrets' $Secret = Get-CIPPAzDataTableEntity @DevSecretsTable -Filter "PartitionKey eq 'Secret' and RowKey eq 'Secret'" if (!$Secret) { @@ -85,21 +76,26 @@ function Invoke-ExecCombinedSetup { if ($Request.Body.tenantId) { $Secret.TenantId = $Request.Body.tenantid } if ($Request.Body.applicationId) { $Secret.ApplicationId = $Request.Body.applicationId } if ($Request.Body.ApplicationSecret) { $Secret.ApplicationSecret = $Request.Body.ApplicationSecret } + if ($Request.Body.RefreshToken) { $Secret.RefreshToken = $Request.Body.RefreshToken } Add-CIPPAzDataTableEntity @DevSecretsTable -Entity $Secret -Force $Results.add('Manual credentials have been set in the DevSecrets table.') } else { if ($Request.Body.tenantId) { - Set-AzKeyVaultSecret -VaultName $kv -Name 'tenantid' -SecretValue (ConvertTo-SecureString -String $Request.Body.tenantId -AsPlainText -Force) + Set-CippKeyVaultSecret -VaultName $kv -Name 'tenantid' -SecretValue (ConvertTo-SecureString -String $Request.Body.tenantId -AsPlainText -Force) $Results.add('Set tenant ID in Key Vault.') } if ($Request.Body.applicationId) { - Set-AzKeyVaultSecret -VaultName $kv -Name 'applicationid' -SecretValue (ConvertTo-SecureString -String $Request.Body.applicationId -AsPlainText -Force) + Set-CippKeyVaultSecret -VaultName $kv -Name 'applicationid' -SecretValue (ConvertTo-SecureString -String $Request.Body.applicationId -AsPlainText -Force) $Results.add('Set application ID in Key Vault.') } if ($Request.Body.applicationSecret) { - Set-AzKeyVaultSecret -VaultName $kv -Name 'applicationsecret' -SecretValue (ConvertTo-SecureString -String $Request.Body.applicationSecret -AsPlainText -Force) + Set-CippKeyVaultSecret -VaultName $kv -Name 'applicationsecret' -SecretValue (ConvertTo-SecureString -String $Request.Body.applicationSecret -AsPlainText -Force) $Results.add('Set application secret in Key Vault.') } + if ($Request.Body.RefreshToken) { + Set-CippKeyVaultSecret -VaultName $kv -Name 'refreshtoken' -SecretValue (ConvertTo-SecureString -String $Request.Body.RefreshToken -AsPlainText -Force) + $Results.add('Set refresh token in Key Vault.') + } } $Results.add('Manual credentials setup has been completed.') @@ -112,8 +108,7 @@ function Invoke-ExecCombinedSetup { $Results = [pscustomobject]@{'Results' = "Failed. $($_.InvocationInfo.ScriptLineNumber): $($_.Exception.message)"; severity = 'failed' } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Results }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecCreateSAMApp.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecCreateSAMApp.ps1 index c2ff4d5c89db..3e00555ce247 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecCreateSAMApp.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecCreateSAMApp.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ExecCreateSAMApp { <# .FUNCTIONALITY @@ -26,7 +24,7 @@ function Invoke-ExecCreateSAMApp { $state = 'updated' #remove the entire web object from the app registration $ModuleBase = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase - $SamManifestFile = Get-Item (Join-Path $ModuleBase 'Public\SAMManifest.json') + $SamManifestFile = Get-Item (Join-Path $ModuleBase 'lib\data\SAMManifest.json') $app = Get-Content $SamManifestFile.FullName | ConvertFrom-Json $app.web.redirectUris = @("$($url)/authredirect") $app = ConvertTo-Json -Depth 15 -Compress -InputObject $app @@ -34,7 +32,7 @@ function Invoke-ExecCreateSAMApp { } else { $state = 'created' $ModuleBase = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase - $SamManifestFile = Get-Item (Join-Path $ModuleBase 'Public\SAMManifest.json') + $SamManifestFile = Get-Item (Join-Path $ModuleBase 'lib\data\SAMManifest.json') $app = Get-Content $SamManifestFile.FullName | ConvertFrom-Json $app.web.redirectUris = @("$($url)/authredirect") $app = $app | ConvertTo-Json -Depth 15 @@ -72,7 +70,7 @@ function Invoke-ExecCreateSAMApp { } $AppPassword = (Invoke-RestMethod "https://graph.microsoft.com/v1.0/applications/$($AppId.id)/addPassword" -Headers @{ authorization = "Bearer $($Token.access_token)" } -Method POST -Body '{"passwordCredential":{"displayName":"CIPPInstall"}}' -ContentType 'application/json').secretText - if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true') { + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { $DevSecretsTable = Get-CIPPTable -tablename 'DevSecrets' $Secret = Get-CIPPAzDataTableEntity @DevSecretsTable -Filter "PartitionKey eq 'Secret' and RowKey eq 'Secret'" if (!$Secret) { $Secret = New-Object -TypeName PSObject } @@ -85,9 +83,9 @@ function Invoke-ExecCreateSAMApp { Add-CIPPAzDataTableEntity @DevSecretsTable -Entity $Secret -Force } else { - Set-AzKeyVaultSecret -VaultName $kv -Name 'tenantid' -SecretValue (ConvertTo-SecureString -String $TenantId -AsPlainText -Force) - Set-AzKeyVaultSecret -VaultName $kv -Name 'applicationid' -SecretValue (ConvertTo-SecureString -String $Appid.appId -AsPlainText -Force) - Set-AzKeyVaultSecret -VaultName $kv -Name 'applicationsecret' -SecretValue (ConvertTo-SecureString -String $AppPassword -AsPlainText -Force) + Set-CippKeyVaultSecret -VaultName $kv -Name 'tenantid' -SecretValue (ConvertTo-SecureString -String $TenantId -AsPlainText -Force) + Set-CippKeyVaultSecret -VaultName $kv -Name 'applicationid' -SecretValue (ConvertTo-SecureString -String $Appid.appId -AsPlainText -Force) + Set-CippKeyVaultSecret -VaultName $kv -Name 'applicationsecret' -SecretValue (ConvertTo-SecureString -String $AppPassword -AsPlainText -Force) } $ConfigTable = Get-CippTable -tablename 'Config' #update the ConfigTable with the latest appId, for caching compare. @@ -104,8 +102,7 @@ function Invoke-ExecCreateSAMApp { $Results = [pscustomobject]@{'Results' = "Failed. $($_.InvocationInfo.ScriptLineNumber): $($_.Exception.message)"; severity = 'failed' } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Results }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecDeviceCodeLogon.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecDeviceCodeLogon.ps1 index fa88684ca0f6..69b1659238d5 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecDeviceCodeLogon.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecDeviceCodeLogon.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ExecDeviceCodeLogon { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ function Invoke-ExecDeviceCodeLogon { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - try { $clientId = $Request.Query.clientId $scope = $Request.Query.scope @@ -60,8 +53,7 @@ function Invoke-ExecDeviceCodeLogon { } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Results | ConvertTo-Json Headers = @{'Content-Type' = 'application/json' } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecSAMSetup.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecSAMSetup.ps1 index 35c010ee5731..92de081e10e4 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecSAMSetup.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecSAMSetup.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ExecSAMSetup { <# .FUNCTIONALITY @@ -16,19 +14,14 @@ function Invoke-ExecSAMSetup { if ($Request.Query.error) { Add-Type -AssemblyName System.Web - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ ContentType = 'text/html' StatusCode = [HttpStatusCode]::Forbidden Body = Get-normalizedError -Message [System.Web.HttpUtility]::UrlDecode($Request.Query.error_description) }) exit } - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true') { + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { $DevSecretsTable = Get-CIPPTable -tablename 'DevSecrets' $Secret = Get-CIPPAzDataTableEntity @DevSecretsTable -Filter "PartitionKey eq 'Secret' and RowKey eq 'Secret'" if (!$Secret) { @@ -42,13 +35,6 @@ function Invoke-ExecSAMSetup { } Add-CIPPAzDataTableEntity @DevSecretsTable -Entity $Secret -Force } - } else { - if ($env:MSI_SECRET) { - Disable-AzContextAutosave -Scope Process | Out-Null - $null = Connect-AzAccount -Identity - $SubscriptionId = $env:WEBSITE_OWNER_NAME -split '\+' | Select-Object -First 1 - $null = Set-AzContext -SubscriptionId $SubscriptionId - } } if (!$env:SetFromProfile) { Write-Information "We're reloading from KV" @@ -63,17 +49,17 @@ function Invoke-ExecSAMSetup { if ($Request.Query.count -lt 1 ) { $Results = 'No authentication code found. Please go back to the wizard.' } if ($Request.Body.setkeys) { - if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true') { + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { if ($Request.Body.TenantId) { $Secret.TenantId = $Request.Body.tenantid } if ($Request.Body.RefreshToken) { $Secret.RefreshToken = $Request.Body.RefreshToken } if ($Request.Body.applicationid) { $Secret.ApplicationId = $Request.Body.ApplicationId } if ($Request.Body.ApplicationSecret) { $Secret.ApplicationSecret = $Request.Body.ApplicationSecret } Add-CIPPAzDataTableEntity @DevSecretsTable -Entity $Secret -Force } else { - if ($Request.Body.tenantid) { Set-AzKeyVaultSecret -VaultName $kv -Name 'tenantid' -SecretValue (ConvertTo-SecureString -String $Request.Body.tenantid -AsPlainText -Force) } - if ($Request.Body.RefreshToken) { Set-AzKeyVaultSecret -VaultName $kv -Name 'RefreshToken' -SecretValue (ConvertTo-SecureString -String $Request.Body.RefreshToken -AsPlainText -Force) } - if ($Request.Body.applicationid) { Set-AzKeyVaultSecret -VaultName $kv -Name 'applicationid' -SecretValue (ConvertTo-SecureString -String $Request.Body.applicationid -AsPlainText -Force) } - if ($Request.Body.applicationsecret) { Set-AzKeyVaultSecret -VaultName $kv -Name 'applicationsecret' -SecretValue (ConvertTo-SecureString -String $Request.Body.applicationsecret -AsPlainText -Force) } + if ($Request.Body.tenantid) { Set-CippKeyVaultSecret -VaultName $kv -Name 'tenantid' -SecretValue (ConvertTo-SecureString -String $Request.Body.tenantid -AsPlainText -Force) } + if ($Request.Body.RefreshToken) { Set-CippKeyVaultSecret -VaultName $kv -Name 'RefreshToken' -SecretValue (ConvertTo-SecureString -String $Request.Body.RefreshToken -AsPlainText -Force) } + if ($Request.Body.applicationid) { Set-CippKeyVaultSecret -VaultName $kv -Name 'applicationid' -SecretValue (ConvertTo-SecureString -String $Request.Body.applicationid -AsPlainText -Force) } + if ($Request.Body.applicationsecret) { Set-CippKeyVaultSecret -VaultName $kv -Name 'applicationsecret' -SecretValue (ConvertTo-SecureString -String $Request.Body.applicationsecret -AsPlainText -Force) } } $Results = @{ Results = 'The keys have been replaced. Please perform a permissions check.' } @@ -86,20 +72,20 @@ function Invoke-ExecSAMSetup { $AppID = $Rows.appid if (!$AppID -or $AppID -eq 'NotStarted') { $appid = $env:ApplicationID } $URL = ($Request.headers.'x-ms-original-url').split('?') | Select-Object -First 1 - if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true') { + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { $clientsecret = $Secret.ApplicationSecret } else { - $clientsecret = Get-AzKeyVaultSecret -VaultName $kv -Name 'ApplicationSecret' -AsPlainText + $clientsecret = Get-CippKeyVaultSecret -VaultName $kv -Name 'ApplicationSecret' -AsPlainText } if (!$clientsecret) { $clientsecret = $env:ApplicationSecret } Write-Information "client_id=$appid&scope=https://graph.microsoft.com/.default+offline_access+openid+profile&code=$($Request.Query.code)&grant_type=authorization_code&redirect_uri=$($url)&client_secret=$clientsecret" #-Uri "https://login.microsoftonline.com/$TenantId/oauth2/v2.0/token" $RefreshToken = Invoke-RestMethod -Method POST -Body "client_id=$appid&scope=https://graph.microsoft.com/.default+offline_access+openid+profile&code=$($Request.Query.code)&grant_type=authorization_code&redirect_uri=$($url)&client_secret=$clientsecret" -Uri "https://login.microsoftonline.com/$TenantId/oauth2/v2.0/token" -ContentType 'application/x-www-form-urlencoded' - if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true') { + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { $Secret.RefreshToken = $RefreshToken.refresh_token Add-CIPPAzDataTableEntity @DevSecretsTable -Entity $Secret -Force } else { - Set-AzKeyVaultSecret -VaultName $kv -Name 'RefreshToken' -SecretValue (ConvertTo-SecureString -String $RefreshToken.refresh_token -AsPlainText -Force) + Set-CippKeyVaultSecret -VaultName $kv -Name 'RefreshToken' -SecretValue (ConvertTo-SecureString -String $RefreshToken.refresh_token -AsPlainText -Force) } $Results = 'Authentication is now complete. You may now close this window.' @@ -152,7 +138,7 @@ function Invoke-ExecSAMSetup { if ($PartnerSetup) { #$app = Get-Content '.\Cache_SAMSetup\SAMManifest.json' | ConvertFrom-Json $ModuleBase = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase - $SamManifestFile = Get-Item (Join-Path $ModuleBase 'Public\SAMManifest.json') + $SamManifestFile = Get-Item (Join-Path $ModuleBase 'lib\data\SAMManifest.json') $app = Get-Content $SamManifestFile.FullName | ConvertFrom-Json $App.web.redirectUris = @($App.web.redirectUris + $URL) @@ -192,16 +178,16 @@ function Invoke-ExecSAMSetup { } until ($attempt -gt 5) } $AppPassword = (Invoke-RestMethod "https://graph.microsoft.com/v1.0/applications/$($AppId.id)/addPassword" -Headers @{ authorization = "Bearer $($Token.access_token)" } -Method POST -Body '{"passwordCredential":{"displayName":"CIPPInstall"}}' -ContentType 'application/json').secretText - if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true') { + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { $Secret.TenantId = $TenantId $Secret.ApplicationId = $AppId.appId $Secret.ApplicationSecret = $AppPassword Add-CIPPAzDataTableEntity @DevSecretsTable -Entity $Secret -Force Write-Information ($Secret | ConvertTo-Json -Depth 5) } else { - Set-AzKeyVaultSecret -VaultName $kv -Name 'tenantid' -SecretValue (ConvertTo-SecureString -String $TenantId -AsPlainText -Force) - Set-AzKeyVaultSecret -VaultName $kv -Name 'applicationid' -SecretValue (ConvertTo-SecureString -String $Appid.appId -AsPlainText -Force) - Set-AzKeyVaultSecret -VaultName $kv -Name 'applicationsecret' -SecretValue (ConvertTo-SecureString -String $AppPassword -AsPlainText -Force) + Set-CippKeyVaultSecret -VaultName $kv -Name 'tenantid' -SecretValue (ConvertTo-SecureString -String $TenantId -AsPlainText -Force) + Set-CippKeyVaultSecret -VaultName $kv -Name 'applicationid' -SecretValue (ConvertTo-SecureString -String $Appid.appId -AsPlainText -Force) + Set-CippKeyVaultSecret -VaultName $kv -Name 'applicationsecret' -SecretValue (ConvertTo-SecureString -String $AppPassword -AsPlainText -Force) } $Results = @{'message' = 'Created application. Waiting 30 seconds for Azure propagation'; step = $step } } else { @@ -239,8 +225,7 @@ function Invoke-ExecSAMSetup { $Results = [pscustomobject]@{'Results' = "Failed. $($_.InvocationInfo.ScriptLineNumber): $($_.Exception.message)" ; step = $step } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Results }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecTokenExchange.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecTokenExchange.ps1 index 42e793a5e0f1..c53b7f1690b7 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecTokenExchange.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecTokenExchange.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ExecTokenExchange { +function Invoke-ExecTokenExchange { <# .FUNCTIONALITY Entrypoint,AnyTenant @@ -34,24 +32,29 @@ Function Invoke-ExecTokenExchange { # Make sure we get the latest authentication $auth = Get-CIPPAuthentication - if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true') { + # Check if environment variable is already set and not the placeholder value + if ($auth -and $env:ApplicationSecret -and $env:ApplicationSecret -ne 'AppSecret') { + $ClientSecret = $env:ApplicationSecret + Write-LogMessage -API $APIName -message 'Using client secret from environment variable' -Sev 'Debug' + } elseif ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { $DevSecretsTable = Get-CIPPTable -tablename 'DevSecrets' $Secret = Get-CIPPAzDataTableEntity @DevSecretsTable -Filter "PartitionKey eq 'Secret' and RowKey eq 'Secret'" $ClientSecret = $Secret.applicationsecret - Write-LogMessage -API $APIName -message 'Retrieved client secret from development secrets' -Sev 'Info' + Write-LogMessage -API $APIName -message 'Retrieved client secret from development secrets' -Sev 'Debug' } else { try { - $ClientSecret = (Get-AzKeyVaultSecret -VaultName $kv -Name 'applicationsecret' -AsPlainText) - Write-LogMessage -API $APIName -message 'Retrieved client secret from key vault' -Sev 'Info' + $ClientSecret = (Get-CippKeyVaultSecret -VaultName $kv -Name 'applicationsecret' -AsPlainText) + Write-LogMessage -API $APIName -message 'Retrieved client secret from key vault' -Sev 'Debug' } catch { Write-LogMessage -API $APIName -message "Failed to retrieve client secret: $($_.Exception.Message)" -Sev 'Error' throw "Failed to retrieve client secret: $($_.Exception.Message)" } } - if (!$ClientSecret) { - Write-LogMessage -API $APIName -message 'Client secret is empty or null' -Sev 'Error' - throw 'Client secret is empty or null' + # Check if client secret is still the default placeholder value from ARM template + if (!$ClientSecret -or $ClientSecret -eq 'AppSecret') { + Write-LogMessage -API $APIName -message 'Client secret is not configured' -Sev 'Error' + throw 'Application secret has not been configured. Please complete the setup process first.' } # Convert token request to form data and add client secret @@ -75,13 +78,13 @@ Function Invoke-ExecTokenExchange { } } if ($Results.error) { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::BadRequest Body = $Results Headers = @{'Content-Type' = 'application/json' } }) } else { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Results Headers = @{'Content-Type' = 'application/json' } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecUpdateRefreshToken.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecUpdateRefreshToken.ps1 index 7afce7c01f65..8725c2c87de1 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecUpdateRefreshToken.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecUpdateRefreshToken.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ExecUpdateRefreshToken { +function Invoke-ExecUpdateRefreshToken { <# .FUNCTIONALITY Entrypoint,AnyTenant @@ -17,33 +15,60 @@ Function Invoke-ExecUpdateRefreshToken { # Handle refresh token update #make sure we get the latest authentication: $auth = Get-CIPPAuthentication - if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true') { + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { $DevSecretsTable = Get-CIPPTable -tablename 'DevSecrets' $Secret = Get-CIPPAzDataTableEntity @DevSecretsTable -Filter "PartitionKey eq 'Secret' and RowKey eq 'Secret'" if ($env:TenantID -eq $Request.body.tenantId) { $Secret | Add-Member -MemberType NoteProperty -Name 'RefreshToken' -Value $Request.body.refreshtoken -Force + # Set environment variable to make it immediately available + Set-Item -Path env:RefreshToken -Value $Request.body.refreshtoken -Force } else { Write-Host "$($env:TenantID) does not match $($Request.body.tenantId)" $name = $Request.body.tenantId -replace '-', '_' $secret | Add-Member -MemberType NoteProperty -Name $name -Value $Request.body.refreshtoken -Force + # Set environment variable to make it immediately available + Set-Item -Path env:$name -Value $Request.body.refreshtoken -Force } Add-CIPPAzDataTableEntity @DevSecretsTable -Entity $Secret -Force } else { if ($env:TenantID -eq $Request.body.tenantId) { - Set-AzKeyVaultSecret -VaultName $kv -Name 'RefreshToken' -SecretValue (ConvertTo-SecureString -String $Request.body.refreshtoken -AsPlainText -Force) + Set-CippKeyVaultSecret -VaultName $kv -Name 'RefreshToken' -SecretValue (ConvertTo-SecureString -String $Request.body.refreshtoken -AsPlainText -Force) + # Set environment variable to make it immediately available + Set-Item -Path env:RefreshToken -Value $Request.body.refreshtoken -Force + + # Trigger CPV refresh for partner tenant only + try { + $Queue = New-CippQueueEntry -Name 'Update Permissions - Partner Tenant' -TotalTasks 1 + $TenantBatch = @([PSCustomObject]@{ + defaultDomainName = 'PartnerTenant' + customerId = $env:TenantID + displayName = '*Partner Tenant' + FunctionName = 'UpdatePermissionsQueue' + QueueId = $Queue.RowKey + }) + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'UpdatePermissionsOrchestrator' + Batch = @($TenantBatch) + } + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + Write-Information 'Started permissions update orchestrator for Partner Tenant' + } catch { + Write-Warning "Failed to start permissions orchestrator: $($_.Exception.Message)" + } } else { Write-Host "$($env:TenantID) does not match $($Request.body.tenantId) - we're adding a new secret for the tenant." $name = $Request.body.tenantId try { - Set-AzKeyVaultSecret -VaultName $kv -Name $name -SecretValue (ConvertTo-SecureString -String $Request.body.refreshtoken -AsPlainText -Force) + Set-CippKeyVaultSecret -VaultName $kv -Name $name -SecretValue (ConvertTo-SecureString -String $Request.body.refreshtoken -AsPlainText -Force) + # Set environment variable to make it immediately available + Set-Item -Path env:$name -Value $Request.body.refreshtoken -Force } catch { Write-Host "Failed to set secret $name in KeyVault. $($_.Exception.Message)" throw $_ } } } - $InstanceId = Start-UpdatePermissionsOrchestrator #start the CPV refresh immediately while wizard still runs. if ($request.body.tenantId -eq $env:TenantID) { $TenantName = 'your partner tenant' @@ -51,17 +76,21 @@ Function Invoke-ExecUpdateRefreshToken { $TenantName = $request.body.tenantId } $Results = @{ - 'message' = "Successfully updated the credentials for $($TenantName). You may continue to the next step, or add additional tenants if required." - 'severity' = 'success' + 'resultText' = "Successfully updated the credentials for $($TenantName). You may continue to the next step, or add additional tenants if required." + 'state' = 'success' } } catch { - $Results = [pscustomobject]@{'Results' = "Failed. $($_.InvocationInfo.ScriptLineNumber): $($_.Exception.message)"; severity = 'failed' } - } + $Results = [pscustomobject]@{ + 'Results' = @{ + resultText = "Failed. $($_.InvocationInfo.ScriptLineNumber): $($_.Exception.message)" + state = 'failed' + } + } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $Results - }) + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Results + }) + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-AddContact.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-AddContact.ps1 index 2568ccebe9e5..7b21aa0e5131 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-AddContact.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-AddContact.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-AddContact { +function Invoke-AddContact { <# .FUNCTIONALITY Entrypoint @@ -12,7 +10,7 @@ Function Invoke-AddContact { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $ContactObject = $Request.Body $TenantId = $ContactObject.tenantid @@ -90,8 +88,7 @@ Function Invoke-AddContact { $Result = "Successfully created contact $($ContactObject.displayName) with email address $($ContactObject.email)" Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message $Result -Sev 'Info' $StatusCode = [HttpStatusCode]::OK - } - catch { + } catch { $ErrorMessage = Get-CippException -Exception $_ $Result = "Failed to create contact. $($ErrorMessage.NormalizedError)" Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message $Result -Sev 'Error' -LogData $ErrorMessage @@ -99,9 +96,8 @@ Function Invoke-AddContact { } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = @{Results = $Result } - }) + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{Results = $Result } + }) } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-AddContactTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-AddContactTemplates.ps1 index 0537e503e980..af9b208dded7 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-AddContactTemplates.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-AddContactTemplates.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-AddContactTemplates { <# .FUNCTIONALITY @@ -60,8 +58,7 @@ Function Invoke-AddContactTemplates { $StatusCode = [HttpStatusCode]::Forbidden } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-DeployContactTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-DeployContactTemplates.ps1 index 14fa69806c3f..84b79cff13be 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-DeployContactTemplates.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-DeployContactTemplates.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-DeployContactTemplates { <# .FUNCTIONALITY @@ -14,7 +12,7 @@ Function Invoke-DeployContactTemplates { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + try { $RequestBody = $Request.Body @@ -176,8 +174,7 @@ Function Invoke-DeployContactTemplates { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{Results = $Results} }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-EditContact.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-EditContact.ps1 index 3b3d458bcba2..4559c8ed8558 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-EditContact.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-EditContact.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-EditContact { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-EditContact { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $TenantID = $Request.Body.tenantID @@ -86,8 +84,7 @@ Function Invoke-EditContact { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{Results = $Results } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-EditContactTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-EditContactTemplates.ps1 index de2770151466..8edcaf294af2 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-EditContactTemplates.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-EditContactTemplates.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-EditContactTemplates { <# .FUNCTIONALITY @@ -76,8 +74,7 @@ Function Invoke-EditContactTemplates { $StatusCode = [HttpStatusCode]::Forbidden } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-ListContactTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-ListContactTemplates.ps1 index 7bd3bb63ef74..9abe8a741a25 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-ListContactTemplates.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-ListContactTemplates.ps1 @@ -1,4 +1,3 @@ -using namespace System.Net Function Invoke-ListContactTemplates { <# .FUNCTIONALITY @@ -10,7 +9,7 @@ Function Invoke-ListContactTemplates { param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $Table = Get-CippTable -tablename 'templates' $Templates = Get-ChildItem 'Config\*.ContactTemplate.json' | ForEach-Object { @@ -39,7 +38,7 @@ Function Invoke-ListContactTemplates { if (-not $Templates) { Write-LogMessage -headers $Headers -API $APIName -message "Template with ID $RequestedID not found" -Sev 'Warning' - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::NotFound Body = @{ Error = "Template with ID $RequestedID not found" } }) @@ -58,8 +57,7 @@ Function Invoke-ListContactTemplates { } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($Templates) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-ListContacts.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-ListContacts.ps1 index 02b9e60c623c..1a8b64a3c3a9 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-ListContacts.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-ListContacts.ps1 @@ -1,8 +1,7 @@ -using namespace System.Net using namespace System.Collections.Generic using namespace System.Text.RegularExpressions -Function Invoke-ListContacts { +function Invoke-ListContacts { <# .FUNCTIONALITY Entrypoint @@ -18,11 +17,10 @@ Function Invoke-ListContacts { # Early validation and exit if (-not $TenantFilter) { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::BadRequest - Body = 'tenantFilter is required' - }) - return + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = 'tenantFilter is required' + }) } # Pre-compiled regex for MailTip cleaning @@ -53,35 +51,35 @@ Function Invoke-ListContacts { $phones = if ($phoneCapacity -gt 0) { $phoneList = [List[hashtable]]::new($phoneCapacity) if ($Contact.Phone) { - $phoneList.Add(@{ type = "business"; number = $Contact.Phone }) + $phoneList.Add(@{ type = 'business'; number = $Contact.Phone }) } if ($Contact.MobilePhone) { - $phoneList.Add(@{ type = "mobile"; number = $Contact.MobilePhone }) + $phoneList.Add(@{ type = 'mobile'; number = $Contact.MobilePhone }) } $phoneList.ToArray() } else { @() } return @{ - id = $Contact.Id - displayName = $Contact.DisplayName - givenName = $Contact.FirstName - surname = $Contact.LastName - mail = $mailAddress - companyName = $Contact.Company - jobTitle = $Contact.Title - website = $Contact.WebPage - notes = $Contact.Notes - hidefromGAL = $MailContact.HiddenFromAddressListsEnabled - mailTip = $cleanMailTip + id = $Contact.Id + displayName = $Contact.DisplayName + givenName = $Contact.FirstName + surname = $Contact.LastName + mail = $mailAddress + companyName = $Contact.Company + jobTitle = $Contact.Title + website = $Contact.WebPage + notes = $Contact.Notes + hidefromGAL = $MailContact.HiddenFromAddressListsEnabled + mailTip = $cleanMailTip onPremisesSyncEnabled = $Contact.IsDirSynced - addresses = @(@{ - street = $Contact.StreetAddress - city = $Contact.City - state = $Contact.StateOrProvince - countryOrRegion = $Contact.CountryOrRegion - postalCode = $Contact.PostalCode - }) - phones = $phones + addresses = @(@{ + street = $Contact.StreetAddress + city = $Contact.City + state = $Contact.StateOrProvince + countryOrRegion = $Contact.CountryOrRegion + postalCode = $Contact.PostalCode + }) + phones = $phones } } @@ -99,20 +97,29 @@ Function Invoke-ListContacts { } if (!$Contact -or !$MailContact) { - throw "Contact not found or insufficient permissions" + throw 'Contact not found or insufficient permissions' } $ContactResponse = ConvertTo-ContactObject -Contact $Contact -MailContact $MailContact } else { # Get all contacts - simplified approach - Write-Host "Getting all contacts" + Write-Host 'Getting all contacts' $ContactResponse = New-EXORequest -tenantid $TenantFilter -cmdlet 'Get-Contact' -cmdParams @{ - Filter = "RecipientTypeDetails -eq 'MailContact'" + Filter = "RecipientTypeDetails -eq 'MailContact'" ResultSize = 'Unlimited' } | Select-Object -Property City, Company, Department, DisplayName, FirstName, LastName, IsDirSynced, Guid, WindowsEmailAddress + # Add Graph ID to each contact based on email match + $GraphContacts = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/contacts' -tenantid $TenantFilter + foreach ($contact in $ContactResponse) { + $GraphMatch = $GraphContacts | Where-Object { $_.mail -eq $contact.WindowsEmailAddress } + if ($GraphMatch) { + $contact | Add-Member -MemberType NoteProperty -Name 'graphId' -Value $GraphMatch.id -Force + } + } + # Return empty array if no contacts found if (!$ContactResponse) { $ContactResponse = @() @@ -128,8 +135,8 @@ Function Invoke-ListContacts { Write-Host "Error in ListContacts: $ErrorMessage" } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = $ContactResponse - }) + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $ContactResponse + }) } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-RemoveContact.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-RemoveContact.ps1 index 104428fae8de..9407a92f8fc9 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-RemoveContact.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-RemoveContact.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-RemoveContact { <# .FUNCTIONALITY @@ -34,8 +32,7 @@ Function Invoke-RemoveContact { } $Results = [pscustomobject]@{'Results' = $Result } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $Results }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-RemoveContactTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-RemoveContactTemplates.ps1 index 137b03e18a9b..de4e79bf2b70 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-RemoveContactTemplates.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-RemoveContactTemplates.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-RemoveContactTemplates { +function Invoke-RemoveContactTemplates { <# .FUNCTIONALITY Entrypoint,AnyTenant @@ -10,10 +8,10 @@ Function Invoke-RemoveContactTemplates { [CmdletBinding()] param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint - $User = $Request.Headers + $Headers = $Request.Headers - Write-LogMessage -Headers $User -API $APINAME -message 'Accessed this API' -Sev 'Debug' - $ID = $request.query.ID ?? $request.body.ID + Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $ID = $Request.Query.ID ?? $Request.Body.ID try { $Table = Get-CippTable -tablename 'templates' @@ -21,16 +19,15 @@ Function Invoke-RemoveContactTemplates { $ClearRow = Get-CIPPAzDataTableEntity @Table -Filter $Filter -Property PartitionKey, RowKey Remove-AzDataTableEntity -Force @Table -Entity $ClearRow $Result = "Removed Contact Template with ID $ID." - Write-LogMessage -Headers $User -API $APINAME -message $Result -Sev 'Info' + Write-LogMessage -Headers $Headers -API $APIName -message $Result -Sev 'Info' $StatusCode = [HttpStatusCode]::OK } catch { $ErrorMessage = Get-CippException -Exception $_ $Result = "Failed to remove Contact template with ID $ID. Error: $($ErrorMessage.NormalizedError)" - Write-LogMessage -Headers $User -API $APINAME -message $Result -Sev 'Error' -LogData $ErrorMessage + Write-LogMessage -Headers $Headers -API $APIName -message $Result -Sev 'Error' -LogData $ErrorMessage $StatusCode = [HttpStatusCode]::Forbidden } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ Results = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-AddSharedMailbox.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-AddSharedMailbox.ps1 index 4ad094971c5d..e0ca3dba57dd 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-AddSharedMailbox.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-AddSharedMailbox.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-AddSharedMailbox { +function Invoke-AddSharedMailbox { <# .FUNCTIONALITY Entrypoint @@ -12,12 +10,12 @@ Function Invoke-AddSharedMailbox { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $Results = [System.Collections.ArrayList]@() + + $Results = [System.Collections.Generic.List[string]]::new() $MailboxObject = $Request.Body $Tenant = $MailboxObject.tenantID - $Aliases = $MailboxObject.addedAliases -Split '\n' + $Aliases = $MailboxObject.addedAliases -split '\n' try { @@ -29,18 +27,18 @@ Function Invoke-AddSharedMailbox { Shared = $true } $AddSharedRequest = New-ExoRequest -tenantid $Tenant -cmdlet 'New-Mailbox' -cmdParams $BodyToShip - $Body = $Results.Add("Successfully created shared mailbox: $Email") + $Results.Add("Successfully created shared mailbox: $Email.") Write-LogMessage -Headers $Headers -API $APIName -tenant $Tenant -message "Created shared mailbox $($MailboxObject.displayName) with email $Email" -Sev 'Info' # Block sign-in for the mailbox try { $null = Set-CIPPSignInState -userid $AddSharedRequest.ExternalDirectoryObjectId -TenantFilter $Tenant -APIName $APIName -Headers $Headers -AccountEnabled $false - $Body = $Results.Add("Blocked sign-in for shared mailbox $Email") + $Results.Add("Blocked sign-in for shared mailbox $Email") } catch { $ErrorMessage = Get-CippException -Exception $_ $Message = "Failed to block sign-in for shared mailbox $Email Error: $($ErrorMessage.NormalizedError)" Write-LogMessage -Headers $Headers -API $APIName -tenant $Tenant -message $Message -Sev 'Error' -LogData $ErrorMessage - $Body = $Results.Add($Message) + $Results.Add($Message) } # Add aliases to the mailbox if any are provided @@ -54,13 +52,13 @@ Function Invoke-AddSharedMailbox { $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-Mailbox' -cmdParams $AliasBodyToShip -UseSystemMailbox $true $Message = "Added aliases to $Email : $($Aliases -join ',')" Write-LogMessage -Headers $Headers -API $APIName -tenant $Tenant -message $Message -Sev 'Info' - $Body = $Results.Add($Message) + $Results.Add($Message) } catch { $ErrorMessage = Get-CippException -Exception $_ $Message = "Failed to add aliases to $Email : $($ErrorMessage.NormalizedError)" Write-LogMessage -Headers $Headers -API $APIName -tenant $Tenant -message $Message -Sev 'Error' -LogData $ErrorMessage - $Body = $Results.Add($Message) + $Results.Add($Message) } } $StatusCode = [HttpStatusCode]::OK @@ -68,16 +66,14 @@ Function Invoke-AddSharedMailbox { $ErrorMessage = Get-CippException -Exception $_ $Message = "Failed to create shared mailbox. $($ErrorMessage.NormalizedError)" Write-LogMessage -Headers $Headers -API $APIName -tenant $Tenant -message $Message -Sev 'Error' -LogData $ErrorMessage - $Body = $Results.Add($Message) + $Results.Add($Message) $StatusCode = [HttpStatusCode]::Forbidden } - $Body = [pscustomobject] @{ Results = @($Results) } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode - Body = $Body + Body = @{ Results = @($Results) } }) } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecConvertMailbox.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecConvertMailbox.ps1 index b8bd40c0915a..aebb4fc6f1f9 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecConvertMailbox.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecConvertMailbox.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecConvertMailbox { <# .FUNCTIONALITY @@ -11,27 +9,24 @@ Function Invoke-ExecConvertMailbox { param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint - $TenantFilter = $Request.Body.tenantFilter - Write-LogMessage -Headers $Request.Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $Headers = $Request.Headers + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Body.tenantFilter $UserID = $Request.Body.ID $MailboxType = $Request.Body.MailboxType try { - $ConvertedMailbox = Set-CIPPMailboxType -UserID $UserID -TenantFilter $TenantFilter -APIName $APIName -Headers $Request.Headers -MailboxType $MailboxType - if ($ConvertedMailbox -like 'Could not convert*') { throw $ConvertedMailbox } - $Results = [pscustomobject]@{'Results' = "$ConvertedMailbox" } + $Results = Set-CIPPMailboxType -UserID $UserID -TenantFilter $TenantFilter -APIName $APIName -Headers $Headers -MailboxType $MailboxType $StatusCode = [HttpStatusCode]::OK } catch { - $ErrorMessage = $_.Exception.Message - $Results = [pscustomobject]@{'Results' = "$ErrorMessage" } + $Results = $_.Exception.Message $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode - Body = $Results + Body = @{'Results' = $Results } }) } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecCopyForSent.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecCopyForSent.ps1 index 4d0707ac66f9..e676500b27bd 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecCopyForSent.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecCopyForSent.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ExecCopyForSent { +function Invoke-ExecCopyForSent { <# .FUNCTIONALITY Entrypoint @@ -12,24 +10,31 @@ Function Invoke-ExecCopyForSent { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APINAME -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. - $TenantFilter = $Request.Query.TenantFilter ?? $Request.Body.TenantFilter + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter $UserID = $Request.Query.ID ?? $Request.Body.ID - $MessageCopyForSentAsEnabled = $Request.Query.MessageCopyForSentAsEnabled ?? $Request.Body.MessageCopyForSentAsEnabled - $MessageCopyForSentAsEnabled = [System.Convert]::ToBoolean($MessageCopyForSentAsEnabled) + $MessageCopyState = $Request.Query.messageCopyState ?? $Request.Body.messageCopyState + $MessageCopyState = [System.Convert]::ToBoolean($MessageCopyState) - Try { - $Result = Set-CIPPMessageCopy -userid $UserID -tenantFilter $TenantFilter -APIName $APIName -Headers $Headers -MessageCopyForSentAsEnabled $MessageCopyForSentAsEnabled + try { + $params = @{ + UserId = $UserID + TenantFilter = $TenantFilter + APIName = $APIName + Headers = $Headers + MessageCopyForSentAsEnabled = $MessageCopyState + MessageCopyForSendOnBehalfEnabled = $MessageCopyState + } + $Result = Set-CIPPMessageCopy @params $StatusCode = [HttpStatusCode]::OK } catch { $Result = "$($_.Exception.Message)" $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ 'Results' = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEditCalendarPermissions.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEditCalendarPermissions.ps1 index 279374c781c1..e5e28ebe9bb9 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEditCalendarPermissions.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEditCalendarPermissions.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ExecEditCalendarPermissions { <# .FUNCTIONALITY @@ -9,10 +7,8 @@ function Invoke-ExecEditCalendarPermissions { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Extract parameters from query or body $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter @@ -37,8 +33,7 @@ function Invoke-ExecEditCalendarPermissions { Write-Information $_.InvocationInfo.PositionMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{Results = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEditMailboxPermissions.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEditMailboxPermissions.ps1 index 4743382dd6c9..ee36d68eb6b2 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEditMailboxPermissions.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEditMailboxPermissions.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecEditMailboxPermissions { <# .FUNCTIONALITY @@ -11,7 +9,8 @@ Function Invoke-ExecEditMailboxPermissions { param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint - Write-LogMessage -headers $Request.Headers -API $APINAME-message 'Accessed this API' -Sev 'Debug' + $Headers = $Request.Headers + Write-LogMessage -headers $Headers -API $APINAME-message 'Accessed this API' -Sev 'Debug' $Username = $request.body.userID $Tenantfilter = $request.body.tenantfilter if ($username -eq $null) { exit } @@ -109,8 +108,7 @@ Function Invoke-ExecEditMailboxPermissions { $body = [pscustomobject]@{'Results' = @($results) } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEmailForward.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEmailForward.ps1 index c9839dd12cf3..7d53a46cc1d3 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEmailForward.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEmailForward.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecEmailForward { <# .FUNCTIONALITY @@ -10,66 +8,60 @@ Function Invoke-ExecEmailForward { [CmdletBinding()] param($Request, $TriggerMetadata) - $Tenantfilter = $request.body.tenantfilter - $username = $request.body.userid - if ($request.body.ForwardInternal -is [string]) { - $ForwardingAddress = $request.body.ForwardInternal - } else {($request.body.ForwardInternal.value) - $ForwardingAddress = $request.body.ForwardInternal.value - } - $ForwardingSMTPAddress = $request.body.ForwardExternal - $ForwardOption = $request.body.forwardOption + $APIName = $Request.Params.CIPPEndpoint - [bool]$KeepCopy = if ($request.body.KeepCopy -eq 'true') { $true } else { $false } + $Headers = $Request.Headers + Write-LogMessage -headers $Headers -API $APINAME-message 'Accessed this API' -Sev 'Debug' - if ($ForwardOption -eq 'internalAddress') { - try { - Set-CIPPForwarding -userid $username -tenantFilter $TenantFilter -APIName $APINAME -Headers $Request.Headers -Forward $ForwardingAddress -KeepCopy $KeepCopy - if (-not $request.body.KeepCopy) { - $results = "Forwarding all email for $($username) to $($ForwardingAddress) and not keeping a copy" - } else { - $results = "Forwarding all email for $($username) to $($ForwardingAddress) and keeping a copy" - } - } catch { - Write-LogMessage -headers $Request.Headers -API $APINAME -message "Could not add forwarding for $($username)" -Sev 'Error' -tenant $TenantFilter - $results = "Could not add forwarding for $($username). Error: $($_.Exception.Message)" - } + $TenantFilter = $Request.Body.tenantFilter + $Username = $Request.Body.userID + if ($Request.Body.ForwardInternal -is [string]) { + $ForwardingAddress = $Request.Body.ForwardInternal + } else { + $ForwardingAddress = $Request.Body.ForwardInternal.value } + $ForwardingSMTPAddress = $Request.Body.ForwardExternal + $ForwardOption = $Request.Body.forwardOption + [bool]$KeepCopy = if ($Request.Body.KeepCopy -eq 'true') { $true } else { $false } - if ($ForwardOption -eq 'ExternalAddress') { - try { - Set-CIPPForwarding -userid $username -tenantFilter $TenantFilter -APIName $APINAME -Headers $Request.Headers -forwardingSMTPAddress $ForwardingSMTPAddress -KeepCopy $KeepCopy - if (-not $request.body.KeepCopy) { - $results = "Forwarding all email for $($username) to $($ForwardingSMTPAddress) and not keeping a copy" - } else { - $results = "Forwarding all email for $($username) to $($ForwardingSMTPAddress) and keeping a copy" + # Process the forwarding option based on the type selected + switch ($ForwardOption) { + 'internalAddress' { + # Set up internal forwarding to another mailbox within the organization + try { + $Results = Set-CIPPForwarding -UserID $Username -TenantFilter $TenantFilter -APIName $APIName -Headers $Headers -Forward $ForwardingAddress -KeepCopy $KeepCopy + $StatusCode = [HttpStatusCode]::OK + } catch { + $Results = $_.Exception.Message + $StatusCode = [HttpStatusCode]::InternalServerError } - } catch { - Write-LogMessage -headers $Request.Headers -API $APINAME -message "Could not add forwarding for $($username)" -Sev 'Error' -tenant $TenantFilter - $results = "Could not add forwarding for $($username). Error: $($_.Exception.Message)" - } - - } - - if ($ForwardOption -eq 'disabled') { - try { - Set-CIPPForwarding -userid $username -username $username -tenantFilter $Tenantfilter -Headers $Request.Headers -APIName $APIName -Disable $true - $results = "Disabled Email Forwarding for $($username)" - } catch { - Write-LogMessage -headers $Request.Headers -API $APINAME -message "Could not disable Email forwarding for $($username)" -Sev 'Error' -tenant $TenantFilter - $results = "Could not disable Email forwarding for $($username). Error: $($_.Exception.Message)" - + 'ExternalAddress' { + # Set up external forwarding to an SMTP address outside the organization + try { + $Results = Set-CIPPForwarding -UserID $Username -TenantFilter $TenantFilter -APIName $APIName -Headers $Headers -ForwardingSMTPAddress $ForwardingSMTPAddress -KeepCopy $KeepCopy + $StatusCode = [HttpStatusCode]::OK + } catch { + $Results = $_.Exception.Message + $StatusCode = [HttpStatusCode]::InternalServerError + } + } + 'disabled' { + # Disable email forwarding for the specified user + try { + $Results = Set-CIPPForwarding -UserID $Username -Username $Username -TenantFilter $TenantFilter -Headers $Headers -APIName $APIName -Disable $true + $StatusCode = [HttpStatusCode]::OK + } catch { + $Results = $_.Exception.Message + $StatusCode = [HttpStatusCode]::InternalServerError + } } } - $Body = @{'Results' = @($results) } - - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $Body + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = @($Results) } }) } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEnableArchive.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEnableArchive.ps1 index bfb8cc74ad62..56300ffe0593 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEnableArchive.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEnableArchive.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecEnableArchive { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-ExecEnableArchive { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter @@ -28,8 +26,7 @@ Function Invoke-ExecEnableArchive { $StatusCode = [HttpStatusCode]::InternalServerError } $Results = [pscustomobject]@{'Results' = "$ResultsArch" } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $Results }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEnableAutoExpandingArchive.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEnableAutoExpandingArchive.ps1 index 47eae36f8e60..2b4ddcafb517 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEnableAutoExpandingArchive.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEnableAutoExpandingArchive.ps1 @@ -1,4 +1,4 @@ -function Invoke-ExecEnableAutoExpandingArchive { +function Invoke-ExecEnableAutoExpandingArchive { <# .FUNCTIONALITY Entrypoint @@ -7,10 +7,8 @@ #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $ID = $Request.Body.ID @@ -25,7 +23,7 @@ $StatusCode = [HttpStatusCode]::InternalServerError } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{Results = "$Result" } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecGroupsDelete.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecGroupsDelete.ps1 index b7c6519c353f..fd968c80557a 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecGroupsDelete.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecGroupsDelete.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecGroupsDelete { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-ExecGroupsDelete { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter @@ -27,8 +25,7 @@ Function Invoke-ExecGroupsDelete { $Result = "$($_.Exception.Message)" $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{Results = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecGroupsDeliveryManagement.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecGroupsDeliveryManagement.ps1 index 79ed6e9d4474..2427fce99406 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecGroupsDeliveryManagement.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecGroupsDeliveryManagement.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecGroupsDeliveryManagement { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-ExecGroupsDeliveryManagement { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APINAME -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter @@ -27,8 +25,7 @@ Function Invoke-ExecGroupsDeliveryManagement { $Result = "$($_.Exception.Message)" $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ Results = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecGroupsHideFromGAL.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecGroupsHideFromGAL.ps1 index d12ed019b26c..147474eb4097 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecGroupsHideFromGAL.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecGroupsHideFromGAL.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecGroupsHideFromGAL { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-ExecGroupsHideFromGAL { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter @@ -27,8 +25,7 @@ Function Invoke-ExecGroupsHideFromGAL { $Result = "$($_.Exception.Message)" $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{'Results' = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecHVEUser.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecHVEUser.ps1 new file mode 100644 index 000000000000..bdb783995d9b --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecHVEUser.ps1 @@ -0,0 +1,105 @@ +function Invoke-ExecHVEUser { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $Results = [System.Collections.Generic.List[string]]::new() + $HVEUserObject = $Request.Body + $Tenant = $HVEUserObject.TenantFilter + + try { + # Check if Security Defaults are enabled + try { + $SecurityDefaults = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/identitySecurityDefaultsEnforcementPolicy' -tenantid $Tenant + if ($SecurityDefaults.isEnabled -eq $true) { + $Results.Add('WARNING: Security Defaults are enabled for this tenant. HVE might not function.') + } + } catch { + $Results.Add('WARNING: Could not check Security Defaults status. Please verify authentication policies manually.') + } + + # Create the HVE user using New-MailUser + $BodyToShip = [pscustomobject] @{ + Name = $HVEUserObject.displayName + DisplayName = $HVEUserObject.displayName + PrimarySmtpAddress = $HVEUserObject.primarySMTPAddress + Password = $HVEUserObject.password + HVEAccount = $true + } + + $CreateHVERequest = New-ExoRequest -tenantid $Tenant -cmdlet 'New-MailUser' -cmdParams $BodyToShip + $Results.Add("Successfully created HVE user: $($HVEUserObject.primarySMTPAddress)") + Write-LogMessage -Headers $Headers -API $APIName -tenant $Tenant -message "Created HVE user $($HVEUserObject.displayName) with email $($HVEUserObject.primarySMTPAddress)" -Sev 'Info' + + # Try to exclude from Conditional Access policies that block basic authentication + try { + # Get all Conditional Access policies + $CAPolicies = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/policies' -tenantid $Tenant + + $BasicAuthPolicies = $CAPolicies | Where-Object { + $_.conditions.clientAppTypes -contains 'exchangeActiveSync' -or + $_.conditions.clientAppTypes -contains 'other' -or + $_.conditions.applications.includeApplications -contains 'All' -and + $_.grantControls.builtInControls -contains 'block' + } + + if ($BasicAuthPolicies) { + foreach ($Policy in $BasicAuthPolicies) { + try { + # Add the HVE user to the exclusions + $ExcludedUsers = @($Policy.conditions.users.excludeUsers) + if ($CreateHVERequest.ExternalDirectoryObjectId -notin $ExcludedUsers) { + + $ExcludeUsers = @($ExcludedUsers + $CreateHVERequest.ExternalDirectoryObjectId) + $UpdateBody = @{ + conditions = @{ + users = @{ + excludeUsers = @($ExcludeUsers | Sort-Object -Unique) + } + } + } + + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies/$($Policy.id)" -type PATCH -body (ConvertTo-Json -InputObject $UpdateBody -Depth 10) -tenantid $Tenant + $Results.Add("Excluded HVE user from Conditional Access policy: $($Policy.displayName)") + Write-LogMessage -Headers $Headers -API $APIName -tenant $Tenant -message "Excluded HVE user from CA policy: $($Policy.displayName)" -Sev 'Info' + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to exclude from CA policy '$($Policy.displayName)': $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -tenant $Tenant -message $Message -Sev 'Warning' -LogData $ErrorMessage + $Results.Add($Message) + } + } + } else { + $Results.Add('No Conditional Access policies blocking basic authentication found.') + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to check/update Conditional Access policies: $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -tenant $Tenant -message $Message -Sev 'Warning' -LogData $ErrorMessage + $Results.Add($Message) + } + + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to create HVE user: $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -tenant $Tenant -message $Message -Sev 'Error' -LogData $ErrorMessage + $Results.Add($Message) + $StatusCode = [HttpStatusCode]::Forbidden + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ Results = @($Results) } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecHideFromGAL.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecHideFromGAL.ps1 index ebd8ee39f7a6..06810da8a385 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecHideFromGAL.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecHideFromGAL.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecHideFromGAL { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-ExecHideFromGAL { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APINAME -message 'Accessed this API' -Sev 'Debug' + # Support if the request is a POST or a GET. So to support legacy(GET) and new(POST) requests @@ -29,8 +27,7 @@ Function Invoke-ExecHideFromGAL { $Result = $_.Exception.Message $StatusCode = [HttpStatusCode]::Forbidden } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ 'Results' = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecMailboxMobileDevices.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecMailboxMobileDevices.ps1 index 378ff2d92529..559b47142f3b 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecMailboxMobileDevices.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecMailboxMobileDevices.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecMailboxMobileDevices { <# .FUNCTIONALITY @@ -11,10 +9,6 @@ Function Invoke-ExecMailboxMobileDevices { param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - # Interact with query parameters or the body of the request. Try { $MobileResults = Set-CIPPMobileDevice -UserId $request.query.Userid -Guid $request.query.guid -DeviceId $request.query.deviceid -Quarantine $request.query.Quarantine -tenantFilter $request.query.tenantfilter -APIName $APINAME -Delete $Request.query.Delete -Headers $Request.Headers @@ -23,8 +17,7 @@ Function Invoke-ExecMailboxMobileDevices { $Results = [pscustomobject]@{'Results' = "Failed $($request.query.Userid): $($_.Exception.Message)" } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Results }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecModifyCalPerms.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecModifyCalPerms.ps1 index 957b0acb0dad..562fb1dd2f92 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecModifyCalPerms.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecModifyCalPerms.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ExecModifyCalPerms { +function Invoke-ExecModifyCalPerms { <# .FUNCTIONALITY Entrypoint @@ -12,33 +10,38 @@ Function Invoke-ExecModifyCalPerms { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # UPN of the mailbox to modify calendar permissions for $Username = $Request.Body.userID + $TenantFilter = $Request.Body.tenantFilter $Permissions = $Request.Body.permissions Write-LogMessage -headers $Headers -API $APIName -message "Processing request for user: $Username, tenant: $TenantFilter" -Sev 'Debug' - if ($null -eq $Username) { - Write-LogMessage -headers $Headers -API $APIName -message 'Username is null' -Sev 'Error' - $body = [pscustomobject]@{'Results' = @('Username is required') } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + if ([string]::IsNullOrWhiteSpace($Username)) { + Write-LogMessage -headers $Headers -API $APIName -message 'Username is null or whitespace' -Sev 'Error' + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::BadRequest - Body = $Body + Body = @{'Results' = @('Username is required') } }) return } try { - $UserId = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($Username)" -tenantid $TenantFilter).id - Write-LogMessage -headers $Headers -API $APIName -message "Retrieved user ID: $UserId" -Sev 'Debug' + try { + $UserId = [guid]$Username + } catch { + # If not a GUID, assume it's a UPN and look up the ID via Graph + $UserId = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($Username)" -tenantid $TenantFilter).id + Write-LogMessage -headers $Headers -API $APIName -message "Retrieved user ID: $UserId" -Sev 'Debug' + } } catch { - Write-LogMessage -headers $Headers -API $APIName -message "Failed to get user ID: $($_.Exception.Message)" -Sev 'Error' - $body = [pscustomobject]@{'Results' = @("Failed to get user ID: $($_.Exception.Message)") } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -message "Failed to get user ID: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::NotFound - Body = $Body + Body = @{'Results' = @("Failed to get user ID: $($ErrorMessage.NormalizedError)") } }) return } @@ -64,6 +67,7 @@ Function Invoke-ExecModifyCalPerms { $Modification = $Permission.Modification $CanViewPrivateItems = $Permission.CanViewPrivateItems ?? $false $FolderName = $Permission.FolderName ?? 'Calendar' + $SendNotificationToUser = $Permission.SendNotificationToUser ?? $false Write-LogMessage -headers $Headers -API $APIName -message "Permission Level: $PermissionLevel, Modification: $Modification, CanViewPrivateItems: $CanViewPrivateItems, FolderName: $FolderName" -Sev 'Debug' @@ -76,40 +80,38 @@ Function Invoke-ExecModifyCalPerms { try { Write-LogMessage -headers $Headers -API $APIName -message "Processing target user: $TargetUser" -Sev 'Debug' $Params = @{ - APIName = $APIName - Headers = $Headers - RemoveAccess = if ($Modification -eq 'Remove') { $TargetUser } else { $null } - TenantFilter = $TenantFilter - UserID = $UserId - folderName = $FolderName - UserToGetPermissions = $TargetUser - LoggingName = $TargetUser - Permissions = $PermissionLevel - CanViewPrivateItems = $CanViewPrivateItems + APIName = $APIName + Headers = $Headers + RemoveAccess = if ($Modification -eq 'Remove') { $TargetUser } else { $null } + TenantFilter = $TenantFilter + UserID = $UserId + folderName = $FolderName + UserToGetPermissions = $TargetUser + LoggingName = $TargetUser + Permissions = $PermissionLevel + CanViewPrivateItems = $CanViewPrivateItems + SendNotificationToUser = $SendNotificationToUser } # Write-Host "Request params: $($Params | ConvertTo-Json)" $Result = Set-CIPPCalendarPermission @Params - $null = $Results.Add($Result) + $Results.Add($Result) } catch { $HasErrors = $true - $null = $Results.Add("$($_.Exception.Message)") + $Results.Add("$($_.Exception.Message)") } } } if ($Results.Count -eq 0) { Write-LogMessage -headers $Headers -API $APIName -message 'No results were generated from the operation' -Sev 'Warning' - $null = $Results.Add('No results were generated from the operation. Please check the logs for more details.') + $Results.Add('No results were generated from the operation. Please check the logs for more details.') $HasErrors = $true } - $Body = [pscustomobject]@{'Results' = @($Results) } - - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = if ($HasErrors) { [HttpStatusCode]::InternalServerError } else { [HttpStatusCode]::OK } - Body = $Body + Body = @{'Results' = @($Results) } }) } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecModifyContactPerms.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecModifyContactPerms.ps1 new file mode 100644 index 000000000000..75877cbbdb9c --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecModifyContactPerms.ps1 @@ -0,0 +1,117 @@ +function Invoke-ExecModifyContactPerms { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + # UPN of the mailbox to modify contact permissions for + $Username = $Request.Body.userID + + $TenantFilter = $Request.Body.tenantFilter + $Permissions = $Request.Body.permissions + + Write-LogMessage -headers $Headers -API $APIName -message "Processing request for user: $Username, tenant: $TenantFilter" -Sev 'Debug' + + if ([string]::IsNullOrWhiteSpace($Username)) { + Write-LogMessage -headers $Headers -API $APIName -message 'Username is null or whitespace' -Sev 'Error' + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{'Results' = @('Username is required') } + }) + return + } + + try { + try { + $UserId = [guid]$Username + } catch { + # If not a GUID, assume it's a UPN and look up the ID via Graph + $UserId = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($Username)" -tenantid $TenantFilter).id + Write-LogMessage -headers $Headers -API $APIName -message "Retrieved user ID: $UserId" -Sev 'Debug' + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -message "Failed to get user ID: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::NotFound + Body = @{'Results' = @("Failed to get user ID: $($ErrorMessage.NormalizedError)") } + }) + return + } + + $Results = [System.Collections.Generic.List[string]]::new() + $HasErrors = $false + + # Convert permissions to array format if it's an object with numeric keys + if ($Permissions -is [PSCustomObject]) { + if ($Permissions.PSObject.Properties.Name -match '^\d+$') { + $Permissions = $Permissions.PSObject.Properties.Value + } else { + $Permissions = @($Permissions) + } + } + + Write-LogMessage -headers $Headers -API $APIName -message "Processing $($Permissions.Count) permission entries" -Sev 'Debug' + + foreach ($Permission in $Permissions) { + Write-LogMessage -headers $Headers -API $APIName -message "Processing permission: $($Permission | ConvertTo-Json)" -Sev 'Debug' + + $PermissionLevel = $Permission.PermissionLevel.value ?? $Permission.PermissionLevel + $Modification = $Permission.Modification + $CanViewPrivateItems = $Permission.CanViewPrivateItems ?? $false + $FolderName = $Permission.FolderName ?? 'Contact' + $SendNotificationToUser = $Permission.SendNotificationToUser ?? $false + + Write-LogMessage -headers $Headers -API $APIName -message "Permission Level: $PermissionLevel, Modification: $Modification, CanViewPrivateItems: $CanViewPrivateItems, FolderName: $FolderName" -Sev 'Debug' + + # Handle UserID as array or single value + $TargetUsers = @($Permission.UserID | ForEach-Object { $_.value ?? $_ }) + + Write-LogMessage -headers $Headers -API $APIName -message "Target Users: $($TargetUsers -join ', ')" -Sev 'Debug' + + foreach ($TargetUser in $TargetUsers) { + try { + Write-LogMessage -headers $Headers -API $APIName -message "Processing target user: $TargetUser" -Sev 'Debug' + $Params = @{ + APIName = $APIName + Headers = $Headers + RemoveAccess = if ($Modification -eq 'Remove') { $TargetUser } else { $null } + TenantFilter = $TenantFilter + UserID = $UserId + folderName = $FolderName + UserToGetPermissions = $TargetUser + LoggingName = $TargetUser + Permissions = $PermissionLevel + SendNotificationToUser = $SendNotificationToUser + } + + # Write-Host "Request params: $($Params | ConvertTo-Json)" + $Result = Set-CIPPContactPermission @Params + + $Results.Add($Result) + } catch { + $HasErrors = $true + $Results.Add("$($_.Exception.Message)") + } + } + } + + if ($Results.Count -eq 0) { + Write-LogMessage -headers $Headers -API $APIName -message 'No results were generated from the operation' -Sev 'Warning' + $Results.Add('No results were generated from the operation. Please check the logs for more details.') + $HasErrors = $true + } + + + return ([HttpResponseContext]@{ + StatusCode = if ($HasErrors) { [HttpStatusCode]::InternalServerError } else { [HttpStatusCode]::OK } + Body = @{'Results' = @($Results) } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecModifyMBPerms.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecModifyMBPerms.ps1 index cddc705a3556..4d768e96cc1a 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecModifyMBPerms.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecModifyMBPerms.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecModifyMBPerms { <# .FUNCTIONALITY @@ -11,188 +9,382 @@ Function Invoke-ExecModifyMBPerms { param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint - Write-LogMessage -headers $Request.Headers -API $APINAME-message 'Accessed this API' -Sev 'Debug' - - $Username = $request.body.userID - $Tenantfilter = $request.body.tenantfilter - $Permissions = $request.body.permissions - - if ($username -eq $null) { exit } + Write-LogMessage -headers $Request.Headers -API $APINAME -message 'Accessed this API' -Sev 'Debug' - $userid = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($username)" -tenantid $Tenantfilter).id + # Extract mailbox requests - handle all three formats + $MailboxRequests = $null $Results = [System.Collections.ArrayList]::new() - # Convert permissions to array format if it's an object with numeric keys - if ($Permissions -is [PSCustomObject]) { - if ($Permissions.PSObject.Properties.Name -match '^\d+$') { - $Permissions = $Permissions.PSObject.Properties.Value - } - else { - $Permissions = @($Permissions) - } + # Direct array format + if ($request.body -is [array]) { + $MailboxRequests = $request.body + } + # Bulk format with mailboxRequests property + elseif ($request.body.mailboxRequests) { + $MailboxRequests = $request.body.mailboxRequests + } + # Legacy single mailbox format + elseif ($request.body.userID -and $request.body.permissions) { + $MailboxRequests = @([PSCustomObject]@{ + userID = $request.body.userID + tenantFilter = $request.body.tenantFilter + permissions = $request.body.permissions + }) + } + + if (-not $MailboxRequests -or $MailboxRequests.Count -eq 0) { + Write-LogMessage -headers $Request.Headers -API $APINAME -message 'No mailbox requests provided' -Sev 'Error' + $body = [pscustomobject]@{'Results' = @("No mailbox requests provided") } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = $Body + }) + return } - foreach ($Permission in $Permissions) { - $PermissionLevels = $Permission.PermissionLevel - $Modification = $Permission.Modification - $AutoMap = if ($Permission.PSObject.Properties.Name -contains 'AutoMap') { $Permission.AutoMap } else { $true } + $TenantFilter = $Request.body.tenantFilter + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Processing permission changes for $($MailboxRequests.Count) mailboxes" -Sev 'Info' -tenant $TenantFilter - # Handle multiple permission levels separated by commas - if ($PermissionLevels -like "*,*") { - $PermissionLevelArray = $PermissionLevels -split ',' | ForEach-Object { $_.Trim() } - } - else { - $PermissionLevelArray = @($PermissionLevels.Trim()) + # Build cmdlet array for processing + $CmdletArray = [System.Collections.ArrayList]::new() + $CmdletMetadataArray = [System.Collections.ArrayList]::new() + $GuidToMetadataMap = @{} # Map GUIDs to our metadata + $UserLookupCache = @{} + + foreach ($MailboxRequest in $MailboxRequests) { + $Username = $MailboxRequest.userID + $Permissions = $MailboxRequest.permissions + + if ([string]::IsNullOrEmpty($Username)) { + $null = $Results.Add("Skipped mailbox with missing userID") + continue } - # Handle UserID as array of objects or single value - $TargetUsers = if ($Permission.UserID -is [array]) { - $Permission.UserID | ForEach-Object { $_.value } + # User lookup with caching for bulk operations + if (-not $UserLookupCache.ContainsKey($Username)) { + try { + $UserObject = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($Username)" -tenantid $TenantFilter + $UserLookupCache[$Username] = $UserObject.userPrincipalName + } + catch { + try { + $UserObject = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$filter=userPrincipalName eq '$Username'" -tenantid $TenantFilter + if ($UserObject.value -and $UserObject.value.Count -gt 0) { + $UserLookupCache[$Username] = $UserObject.value[0].userPrincipalName + } else { + throw "User not found" + } + } + catch { + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Could not find user $($Username)" -Sev 'Error' -tenant $TenantFilter + $null = $Results.Add("Could not find user $($Username)") + continue + } + } } - else { - @($Permission.UserID) + $UserId = $UserLookupCache[$Username] + + # Convert permissions to array if needed + if ($Permissions -is [PSCustomObject]) { + if ($Permissions.PSObject.Properties.Name -match '^\d+$') { + $Permissions = $Permissions.PSObject.Properties.Value + } else { + $Permissions = @($Permissions) + } } - foreach ($TargetUser in $TargetUsers) { - foreach ($PermissionLevel in $PermissionLevelArray) { - try { + foreach ($Permission in $Permissions) { + $PermissionLevels = $Permission.PermissionLevel + $Modification = $Permission.Modification + $AutoMap = if ($Permission.PSObject.Properties.Name -contains 'AutoMap') { $Permission.AutoMap } else { $true } + + # Handle multiple permission levels + $PermissionLevelArray = if ($PermissionLevels -like "*,*") { + $PermissionLevels -split ',' | ForEach-Object { $_.Trim() } + } else { + @($PermissionLevels.Trim()) + } + + # Extract target users from UserID (handle array of objects or single values) + $TargetUsers = if ($Permission.UserID -is [array]) { + $Permission.UserID | ForEach-Object { + if ($_ -is [PSCustomObject] -and $_.value) { + $_.value + } else { + $_.ToString() + } + } + } else { + if ($Permission.UserID -is [PSCustomObject] -and $Permission.UserID.value) { + @($Permission.UserID.value) + } else { + @($Permission.UserID.ToString()) + } + } + + foreach ($TargetUser in $TargetUsers) { + foreach ($PermissionLevel in $PermissionLevelArray) { + + # Create cmdlet parameters based on permission type and action + $CmdletParams = @{} + $CmdletName = "" + $ExpectedResult = "" + switch ($PermissionLevel) { 'FullAccess' { if ($Modification -eq 'Remove') { - $MailboxPerms = New-ExoRequest -Anchor $username -tenantid $Tenantfilter -cmdlet 'Remove-mailboxpermission' -cmdParams @{ - Identity = $userid + $CmdletName = 'Remove-MailboxPermission' + $CmdletParams = @{ + Identity = $UserId user = $TargetUser accessRights = @('FullAccess') Confirm = $false } - $null = $results.Add("Removed $($TargetUser) from $($username) Shared Mailbox permissions (FullAccess)") - } - else { - $MailboxPerms = New-ExoRequest -Anchor $username -tenantid $Tenantfilter -cmdlet 'Add-MailboxPermission' -cmdParams @{ - Identity = $userid + $ExpectedResult = "Removed $($TargetUser) from $($Username) FullAccess permissions" + } else { + $CmdletName = 'Add-MailboxPermission' + $CmdletParams = @{ + Identity = $UserId user = $TargetUser accessRights = @('FullAccess') automapping = $AutoMap Confirm = $false } - $null = $results.Add("Granted $($TargetUser) access to $($username) Mailbox (FullAccess) with automapping set to $($AutoMap)") + $ExpectedResult = "Granted $($TargetUser) FullAccess to $($Username) with automapping $($AutoMap)" } } 'SendAs' { if ($Modification -eq 'Remove') { - $MailboxPerms = New-ExoRequest -Anchor $username -tenantid $Tenantfilter -cmdlet 'Remove-RecipientPermission' -cmdParams @{ - Identity = $userid + $CmdletName = 'Remove-RecipientPermission' + $CmdletParams = @{ + Identity = $UserId Trustee = $TargetUser accessRights = @('SendAs') Confirm = $false } - $null = $results.Add("Removed $($TargetUser) from $($username) with Send As permissions") - } - else { - $MailboxPerms = New-ExoRequest -Anchor $username -tenantid $Tenantfilter -cmdlet 'Add-RecipientPermission' -cmdParams @{ - Identity = $userid + $ExpectedResult = "Removed $($TargetUser) SendAs permissions from $($Username)" + } else { + $CmdletName = 'Add-RecipientPermission' + $CmdletParams = @{ + Identity = $UserId Trustee = $TargetUser accessRights = @('SendAs') Confirm = $false } - $null = $results.Add("Granted $($TargetUser) access to $($username) with Send As permissions") + $ExpectedResult = "Granted $($TargetUser) SendAs permissions to $($Username)" } } 'SendOnBehalf' { + $CmdletName = 'Set-Mailbox' if ($Modification -eq 'Remove') { - $MailboxPerms = New-ExoRequest -Anchor $username -tenantid $Tenantfilter -cmdlet 'Set-Mailbox' -cmdParams @{ - Identity = $userid + $CmdletParams = @{ + Identity = $UserId GrantSendonBehalfTo = @{ '@odata.type' = '#Exchange.GenericHashTable' remove = $TargetUser } Confirm = $false } - $null = $results.Add("Removed $($TargetUser) from $($username) Send on Behalf Permissions") - } - else { - $MailboxPerms = New-ExoRequest -Anchor $username -tenantid $Tenantfilter -cmdlet 'Set-Mailbox' -cmdParams @{ - Identity = $userid + $ExpectedResult = "Removed $($TargetUser) SendOnBehalf permissions from $($Username)" + } else { + $CmdletParams = @{ + Identity = $UserId GrantSendonBehalfTo = @{ '@odata.type' = '#Exchange.GenericHashTable' add = $TargetUser } Confirm = $false } - $null = $results.Add("Granted $($TargetUser) access to $($username) with Send On Behalf Permissions") + $ExpectedResult = "Granted $($TargetUser) SendOnBehalf permissions to $($Username)" } } 'ReadPermission' { if ($Modification -eq 'Remove') { - $MailboxPerms = New-ExoRequest -Anchor $username -tenantid $Tenantfilter -cmdlet 'Remove-MailboxPermission' -cmdParams @{ - Identity = $userid + $CmdletName = 'Remove-MailboxPermission' + $CmdletParams = @{ + Identity = $UserId user = $TargetUser accessRights = @('ReadPermission') Confirm = $false } - $null = $results.Add("Removed $($TargetUser) from $($username) Read Permissions") + $ExpectedResult = "Removed $($TargetUser) ReadPermission from $($Username)" } } 'ExternalAccount' { if ($Modification -eq 'Remove') { - $MailboxPerms = New-ExoRequest -Anchor $username -tenantid $Tenantfilter -cmdlet 'Remove-MailboxPermission' -cmdParams @{ - Identity = $userid + $CmdletName = 'Remove-MailboxPermission' + $CmdletParams = @{ + Identity = $UserId user = $TargetUser accessRights = @('ExternalAccount') Confirm = $false } - $null = $results.Add("Removed $($TargetUser) from $($username) Read Permissions") + $ExpectedResult = "Removed $($TargetUser) ExternalAccount permissions from $($Username)" } } 'DeleteItem' { if ($Modification -eq 'Remove') { - $MailboxPerms = New-ExoRequest -Anchor $username -tenantid $Tenantfilter -cmdlet 'Remove-MailboxPermission' -cmdParams @{ - Identity = $userid + $CmdletName = 'Remove-MailboxPermission' + $CmdletParams = @{ + Identity = $UserId user = $TargetUser accessRights = @('DeleteItem') Confirm = $false } - $null = $results.Add("Removed $($TargetUser) from $($username) Read Permissions") + $ExpectedResult = "Removed $($TargetUser) DeleteItem permissions from $($Username)" } } 'ChangePermission' { if ($Modification -eq 'Remove') { - $MailboxPerms = New-ExoRequest -Anchor $username -tenantid $Tenantfilter -cmdlet 'Remove-MailboxPermission' -cmdParams @{ - Identity = $userid + $CmdletName = 'Remove-MailboxPermission' + $CmdletParams = @{ + Identity = $UserId user = $TargetUser accessRights = @('ChangePermission') Confirm = $false } - $null = $results.Add("Removed $($TargetUser) from $($username) Read Permissions") + $ExpectedResult = "Removed $($TargetUser) ChangePermission from $($Username)" } } 'ChangeOwner' { if ($Modification -eq 'Remove') { - $MailboxPerms = New-ExoRequest -Anchor $username -tenantid $Tenantfilter -cmdlet 'Remove-MailboxPermission' -cmdParams @{ - Identity = $userid + $CmdletName = 'Remove-MailboxPermission' + $CmdletParams = @{ + Identity = $UserId user = $TargetUser accessRights = @('ChangeOwner') Confirm = $false } - $null = $results.Add("Removed $($TargetUser) from $($username) Read Permissions") + $ExpectedResult = "Removed $($TargetUser) ChangeOwner permissions from $($Username)" } } } - Write-LogMessage -headers $Request.Headers -API $APINAME-message "Executed $($PermissionLevel) permission modification for $($TargetUser) on $($username)" -Sev 'Info' -tenant $TenantFilter - } - catch { - Write-LogMessage -headers $Request.Headers -API $APINAME-message "Could not execute $($PermissionLevel) permission modification for $($TargetUser) on $($username)" -Sev 'Error' -tenant $TenantFilter - $null = $results.Add("Could not execute $($PermissionLevel) permission modification for $($TargetUser) on $($username). Error: $($_.Exception.Message)") + + if ($CmdletName) { + # Generate unique GUID for this operation + $OperationGuid = [Guid]::NewGuid().ToString() + + $CmdletObj = @{ + CmdletInput = @{ + CmdletName = $CmdletName + Parameters = $CmdletParams + } + OperationGuid = $OperationGuid # Add GUID to cmdlet object + } + + $CmdletMetadata = [PSCustomObject]@{ + ExpectedResult = $ExpectedResult + Mailbox = $Username + TargetUser = $TargetUser + Permission = $PermissionLevel + Action = $Modification + OperationGuid = $OperationGuid + } + + $null = $CmdletArray.Add($CmdletObj) + $null = $CmdletMetadataArray.Add($CmdletMetadata) + + # Map GUID to metadata for precise result mapping + $GuidToMetadataMap[$OperationGuid] = $CmdletMetadata + } } } } } - $body = [pscustomobject]@{'Results' = @($results) } - - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + if ($CmdletArray.Count -eq 0) { + Write-LogMessage -headers $Request.Headers -API $APINAME -message 'No valid cmdlets to process' -Sev 'Warning' -tenant $TenantFilter + $body = [pscustomobject]@{'Results' = @("No valid permission changes to process") } + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Body }) + return + } + + # Execute requests - use enhanced bulk processing with GUID mapping + if ($CmdletArray.Count -gt 1) { + # Use bulk processing with GUID tracking + try { + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Executing bulk request with $($CmdletArray.Count) cmdlets" -Sev 'Info' -tenant $TenantFilter + $BulkResults = New-ExoBulkRequest -tenantid $TenantFilter -cmdletArray @($CmdletArray) -ReturnWithCommand $true + + # Process bulk results using GUID mapping + if ($BulkResults -is [hashtable] -and $BulkResults.Keys.Count -gt 0) { + foreach ($cmdletName in $BulkResults.Keys) { + foreach ($result in $BulkResults[$cmdletName]) { + $operationGuid = $result.OperationGuid + + if ($operationGuid -and $GuidToMetadataMap.ContainsKey($operationGuid)) { + $metadata = $GuidToMetadataMap[$operationGuid] + + if ($result.error) { + $ErrorMessage = try { (Get-CippException -Exception $result.error).NormalizedError } catch { $result.error } + $null = $Results.Add("Error processing $($metadata.Permission) for $($metadata.TargetUser) on $($metadata.Mailbox): $ErrorMessage") + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Error for operation $operationGuid`: $ErrorMessage" -Sev 'Error' -tenant $TenantFilter + } else { + $null = $Results.Add($metadata.ExpectedResult) + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Success for operation $operationGuid`: $($metadata.ExpectedResult)" -Sev 'Info' -tenant $TenantFilter + } + } else { + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Could not map result to operation. GUID: $operationGuid, Available GUIDs: $($GuidToMetadataMap.Keys -join ', ')" -Sev 'Warning' -tenant $TenantFilter + + # Fallback for unmapped results + if ($result.error) { + $ErrorMessage = try { (Get-CippException -Exception $result.error).NormalizedError } catch { $result.error } + $null = $Results.Add("Error in $cmdletName`: $ErrorMessage") + } else { + $null = $Results.Add("Completed $cmdletName operation") + } + } + } + } + } else { + # If no results returned but no error thrown, assume all succeeded + foreach ($CmdletMetadata in $CmdletMetadataArray) { + if ($CmdletMetadata.ExpectedResult) { + $null = $Results.Add($CmdletMetadata.ExpectedResult) + } + } + } + + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Bulk request completed successfully" -Sev 'Info' -tenant $TenantFilter + } + catch { + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Bulk request failed, using fallback: $($_.Exception.Message)" -Sev 'Error' -tenant $TenantFilter + + # Fallback to individual processing + for ($i = 0; $i -lt $CmdletArray.Count; $i++) { + $CmdletObj = $CmdletArray[$i] + $CmdletMetadata = $CmdletMetadataArray[$i] + try { + $null = New-ExoRequest -Anchor $CmdletMetadata.Mailbox -tenantid $TenantFilter -cmdlet $CmdletObj.CmdletInput.CmdletName -cmdParams $CmdletObj.CmdletInput.Parameters + $null = $Results.Add($CmdletMetadata.ExpectedResult) + } + catch { + $null = $Results.Add("Error processing $($CmdletMetadata.Permission) for $($CmdletMetadata.TargetUser) on $($CmdletMetadata.Mailbox): $($_.Exception.Message)") + } + } + } + } + else { + # Use individual processing for single operation + $CmdletObj = $CmdletArray[0] + $CmdletMetadata = $CmdletMetadataArray[0] + try { + $null = New-ExoRequest -Anchor $CmdletMetadata.Mailbox -tenantid $TenantFilter -cmdlet $CmdletObj.CmdletInput.CmdletName -cmdParams $CmdletObj.CmdletInput.Parameters + $null = $Results.Add($CmdletMetadata.ExpectedResult) + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Executed $($CmdletMetadata.Permission) permission modification" -Sev 'Info' -tenant $TenantFilter + } + catch { + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Permission modification failed: $($_.Exception.Message)" -Sev 'Error' -tenant $TenantFilter + $null = $Results.Add("Error processing $($CmdletMetadata.Permission) for $($CmdletMetadata.TargetUser) on $($CmdletMetadata.Mailbox): $($_.Exception.Message)") + } + } + + $body = [pscustomobject]@{'Results' = @($Results) } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecRemoveMailboxRule.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecRemoveMailboxRule.ps1 index 4693975d05a9..ff03bde0c1e0 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecRemoveMailboxRule.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecRemoveMailboxRule.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecRemoveMailboxRule { <# .FUNCTIONALITY @@ -20,19 +18,18 @@ Function Invoke-ExecRemoveMailboxRule { $RuleId = $Request.Query.ruleId ?? $Request.Body.ruleId $Username = $Request.Query.userPrincipalName ?? $Request.Body.userPrincipalName - # Remove the rule - $Results = Remove-CIPPMailboxRule -username $Username -TenantFilter $TenantFilter -APIName $APIName -Headers $Headers -RuleId $RuleId -RuleName $RuleName - - if ($Results -like '*Could not delete*') { - $StatusCode = [HttpStatusCode]::InternalServerError - } else { + try { + # Remove the rule + $Results = Remove-CIPPMailboxRule -username $Username -TenantFilter $TenantFilter -APIName $APIName -Headers $Headers -RuleId $RuleId -RuleName $RuleName $StatusCode = [HttpStatusCode]::OK + } catch { + $Results = $_.Exception.Message + $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode - Body = @{ Results = $Results } + Body = @{ 'Results' = $Results } }) } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecRemoveRestrictedUser.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecRemoveRestrictedUser.ps1 new file mode 100644 index 000000000000..df0557e220cb --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecRemoveRestrictedUser.ps1 @@ -0,0 +1,43 @@ +function Invoke-ExecRemoveRestrictedUser { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.ReadWrite + .DESCRIPTION + Removes a user from the restricted senders list in Exchange Online. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Body.tenantFilter + $SenderAddress = $Request.Body.SenderAddress + + try { + if ([string]::IsNullOrEmpty($SenderAddress)) { throw 'SenderAddress parameter is required' } + if ([string]::IsNullOrEmpty($TenantFilter)) { throw 'tenantFilter parameter is required' } + + # Remove the user from the restricted list + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Remove-BlockedSenderAddress' -cmdParams @{SenderAddress = $SenderAddress } + $Results = "Successfully removed $SenderAddress from the restricted users list." + + + Write-LogMessage -headers $Headers -API $APIName -message $Results -Sev 'Info' -tenant $TenantFilter + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Results = "Failed to remove $SenderAddress from restricted list: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Results -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{Results = $Results } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetCalendarProcessing.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetCalendarProcessing.ps1 index 5853374618ac..f307d100de95 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetCalendarProcessing.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetCalendarProcessing.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ExecSetCalendarProcessing { <# .FUNCTIONALITY @@ -47,7 +45,7 @@ function Invoke-ExecSetCalendarProcessing { } $null = New-ExoRequest -tenantid $Request.Body.tenantFilter -cmdlet 'Set-CalendarProcessing' -cmdParams $cmdParams - + $Results = "Calendar processing settings for $($Request.Body.UPN) have been updated successfully" Write-LogMessage -API $APIName -tenant $Request.Body.tenantFilter -message $Results -sev Info $StatusCode = [HttpStatusCode]::OK @@ -59,8 +57,8 @@ function Invoke-ExecSetCalendarProcessing { $StatusCode = [HttpStatusCode]::InternalServerError } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ Results = $Results } }) -} \ No newline at end of file +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetLitigationHold.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetLitigationHold.ps1 index de8c459fe1fd..6f8e0d3c9a63 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetLitigationHold.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetLitigationHold.ps1 @@ -1,4 +1,4 @@ -function Invoke-ExecSetLitigationHold { +function Invoke-ExecSetLitigationHold { <# .FUNCTIONALITY Entrypoint @@ -50,8 +50,7 @@ $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ Results = $Results } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetMailboxEmailSize.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetMailboxEmailSize.ps1 index ec36ffbea20d..af7c793389a8 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetMailboxEmailSize.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetMailboxEmailSize.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecSetMailboxEmailSize { <# .FUNCTIONALITY @@ -40,8 +38,7 @@ Function Invoke-ExecSetMailboxEmailSize { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ Results = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetMailboxLocale.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetMailboxLocale.ps1 index 5d7d9e1c2392..d9889ee7c849 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetMailboxLocale.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetMailboxLocale.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecSetMailboxLocale { <# .FUNCTIONALITY @@ -27,8 +25,7 @@ Function Invoke-ExecSetMailboxLocale { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ Results = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetMailboxQuota.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetMailboxQuota.ps1 index f5ced965516b..ecfc9a60dee3 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetMailboxQuota.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetMailboxQuota.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecSetMailboxQuota { <# .FUNCTIONALITY @@ -41,8 +39,7 @@ Function Invoke-ExecSetMailboxQuota { $body = [pscustomobject]@{'Results' = @("Could not adjust mailbox quota: $($_.Exception.message)") } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetMailboxRule.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetMailboxRule.ps1 index 1a747f8c6f81..729b0c6d6314 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetMailboxRule.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetMailboxRule.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecSetMailboxRule { <# .FUNCTIONALITY @@ -49,8 +47,7 @@ Function Invoke-ExecSetMailboxRule { $StatusCode = [HttpStatusCode]::OK } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ Results = $Results } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetOoO.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetOoO.ps1 index c262bfb5ce5d..07fc25199911 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetOoO.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetOoO.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ExecSetOoO { +function Invoke-ExecSetOoO { <# .FUNCTIONALITY Entrypoint @@ -12,13 +10,12 @@ Function Invoke-ExecSetOoO { try { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $Username = $Request.Body.userId $TenantFilter = $Request.Body.tenantFilter - $State = $Request.Body.AutoReplyState.value - + $State = $Request.Body.AutoReplyState.value ?? $Request.Body.AutoReplyState $SplatParams = @{ userid = $Username tenantFilter = $TenantFilter @@ -65,8 +62,7 @@ Function Invoke-ExecSetOoO { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{'Results' = $($Results) } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetRecipientLimits.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetRecipientLimits.ps1 index ecc94c1da21c..924a4f95e21f 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetRecipientLimits.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetRecipientLimits.ps1 @@ -32,7 +32,7 @@ function Invoke-ExecSetRecipientLimits { try { $null = New-ExoRequest @ExoRequest $Results = "Recipient limit for $UserPrincipalName has been set to $recipientLimit" - + Write-LogMessage -API $APIName -tenant $TenantFilter -message $Results -sev Info $StatusCode = [HttpStatusCode]::OK } catch { @@ -42,8 +42,7 @@ function Invoke-ExecSetRecipientLimits { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ Results = $Results } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetRetentionHold.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetRetentionHold.ps1 index 68ba966fa9bf..86d1af8b30d8 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetRetentionHold.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetRetentionHold.ps1 @@ -32,7 +32,7 @@ function Invoke-ExecSetRetentionHold { try { $null = New-ExoRequest @ExoRequest $Results = "Retention hold for $UserPrincipalName with Id $Identity has been set to $RetentionHoldState" - + Write-LogMessage -API $APIName -tenant $TenantFilter -message $Results -sev Info $StatusCode = [HttpStatusCode]::OK } catch { @@ -42,8 +42,7 @@ function Invoke-ExecSetRetentionHold { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ Results = $Results } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecStartManagedFolderAssistant.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecStartManagedFolderAssistant.ps1 index 86c26f5daf33..af5acf187d68 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecStartManagedFolderAssistant.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecStartManagedFolderAssistant.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecStartManagedFolderAssistant { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-ExecStartManagedFolderAssistant { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $Tenant = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter @@ -42,8 +40,7 @@ Function Invoke-ExecStartManagedFolderAssistant { } $Body = [pscustomobject] @{ 'Results' = $Result } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListCalendarPermissions.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListCalendarPermissions.ps1 index 98fe5a707993..902909f7cd64 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListCalendarPermissions.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListCalendarPermissions.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListCalendarPermissions { <# .FUNCTIONALITY @@ -11,13 +9,37 @@ Function Invoke-ListCalendarPermissions { param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $UserID = $Request.Query.UserID $TenantFilter = $Request.Query.tenantFilter + $UseReportDB = $Request.Query.UseReportDB + $ByUser = $Request.Query.ByUser try { + # If UseReportDB is specified and no specific UserID, retrieve from report database + if ($UseReportDB -eq 'true' -and -not $UserID) { + + # Call the report function with proper parameters + $ReportParams = @{ + TenantFilter = $TenantFilter + } + if ($ByUser -eq 'true') { + $ReportParams.ByUser = $true + } + try { + $GraphRequest = Get-CIPPCalendarPermissionReport @ReportParams + $StatusCode = [HttpStatusCode]::OK + } catch { + $StatusCode = [HttpStatusCode]::InternalServerError + $GraphRequest = $_.Exception.Message + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + }) + } + + # Original live query logic for specific user $GetCalParam = @{Identity = $UserID; FolderScope = 'Calendar' } $CalendarFolder = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-MailboxFolderStatistics' -anchor $UserID -cmdParams $GetCalParam | Select-Object -First 1 -ExcludeProperty *data.type* $CalParam = @{Identity = "$($UserID):\$($CalendarFolder.name)" } @@ -32,8 +54,7 @@ Function Invoke-ListCalendarPermissions { $GraphRequest = $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @($GraphRequest) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListContactPermissions.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListContactPermissions.ps1 new file mode 100644 index 000000000000..1b06863c1fb7 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListContactPermissions.ps1 @@ -0,0 +1,35 @@ +Function Invoke-ListContactPermissions { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $UserID = $Request.Query.UserID + $TenantFilter = $Request.Query.tenantFilter + + try { + $GetContactParam = @{Identity = $UserID; FolderScope = 'Contacts' } + $ContactFolder = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-MailboxFolderStatistics' -anchor $UserID -cmdParams $GetContactParam | Select-Object -First 1 -ExcludeProperty *data.type* + $ContactParam = @{Identity = "$($UserID):\$($ContactFolder.name)" } + $Mailbox = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-Mailbox' -cmdParams @{Identity = $UserID } + $GraphRequest = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-MailboxFolderPermission' -anchor $UserID -cmdParams $ContactParam -UseSystemMailbox $true | Select-Object Identity, User, AccessRights, FolderName, @{ Name = 'MailboxInfo'; Expression = { $Mailbox } } + + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Contact permissions listed for $($TenantFilter)" -sev Debug + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListMailboxMobileDevices.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListMailboxMobileDevices.ps1 index 9a4aff412881..daf056a0297c 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListMailboxMobileDevices.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListMailboxMobileDevices.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListMailboxMobileDevices { <# .FUNCTIONALITY @@ -9,12 +7,6 @@ Function Invoke-ListMailboxMobileDevices { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter $Mailbox = $Request.Query.Mailbox @@ -46,8 +38,7 @@ Function Invoke-ListMailboxMobileDevices { $StatusCode = [HttpStatusCode]::Forbidden $GraphRequest = $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @($GraphRequest) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListMailboxRules.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListMailboxRules.ps1 index 0c0b1c954322..648d7251deee 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListMailboxRules.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListMailboxRules.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ListMailboxRules { +function Invoke-ListMailboxRules { <# .FUNCTIONALITY Entrypoint @@ -9,38 +7,32 @@ Function Invoke-ListMailboxRules { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter $Table = Get-CIPPTable -TableName cachembxrules if ($TenantFilter -ne 'AllTenants') { - $Table.Filter = "Tenant eq '$TenantFilter'" + $Table.Filter = "PartitionKey eq 'MailboxRules' and Tenant eq '$TenantFilter'" + } else { + $Table.Filter = "PartitionKey eq 'MailboxRules'" } + + Write-Information 'Getting cached mailbox rules' $Rows = Get-CIPPAzDataTableEntity @Table | Where-Object -Property Timestamp -GT (Get-Date).AddHours(-1) $PartitionKey = 'MailboxRules' $QueueReference = '{0}-{1}' -f $TenantFilter, $PartitionKey - $RunningQueue = Invoke-ListCippQueue | Where-Object { $_.Reference -eq $QueueReference -and $_.Status -notmatch 'Completed' -and $_.Status -notmatch 'Failed' } + $RunningQueue = Invoke-ListCippQueue -Reference $QueueReference | Where-Object { $_.Status -notmatch 'Completed' -and $_.Status -notmatch 'Failed' } $Metadata = @{} # If a queue is running, we will not start a new one - if ($RunningQueue) { + if ($RunningQueue -and !$Rows) { + Write-Information "Queue is already running for $TenantFilter" $Metadata = [PSCustomObject]@{ QueueMessage = "Still loading data for $TenantFilter. Please check back in a few more minutes" - } - [PSCustomObject]@{ - Waiting = $true + QueueId = $RunningQueue.RowKey } } elseif ((!$Rows -and !$RunningQueue) -or ($TenantFilter -eq 'AllTenants' -and ($Rows | Measure-Object).Count -eq 1)) { - # If no rows are found and no queue is running, we will start a new one - $Metadata = [PSCustomObject]@{ - QueueMessage = "Loading data for $TenantFilter. Please check back in 1 minute" - } - + Write-Information "No cached mailbox rules found for $TenantFilter, starting new orchestration" if ($TenantFilter -eq 'AllTenants') { $Tenants = Get-Tenants -IncludeErrors | Select-Object defaultDomainName $Type = 'All Tenants' @@ -49,6 +41,12 @@ Function Invoke-ListMailboxRules { $Type = $TenantFilter } $Queue = New-CippQueueEntry -Name "Mailbox Rules ($Type)" -Reference $QueueReference -TotalTasks ($Tenants | Measure-Object).Count + # If no rows are found and no queue is running, we will start a new one + $Metadata = [PSCustomObject]@{ + QueueMessage = "Loading data for $TenantFilter. Please check back in 1 minute" + QueueId = $Queue.RowKey + } + $Batch = $Tenants | Select-Object defaultDomainName, @{Name = 'FunctionName'; Expression = { 'ListMailboxRulesQueue' } }, @{Name = 'QueueName'; Expression = { $_.defaultDomainName } }, @{Name = 'QueueId'; Expression = { $Queue.RowKey } } if (($Batch | Measure-Object).Count -gt 0) { $InputObject = [PSCustomObject]@{ @@ -57,14 +55,13 @@ Function Invoke-ListMailboxRules { SkipLog = $true } #Write-Host ($InputObject | ConvertTo-Json) - $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) Write-Host "Started mailbox rules orchestration with ID = '$InstanceId'" } } else { - if ($TenantFilter -ne 'AllTenants') { - $Rows = $Rows | Where-Object -Property Tenant -EQ $TenantFilter - $Rows = $Rows + $Metadata = [PSCustomObject]@{ + QueueId = $RunningQueue.RowKey ?? $null } $GraphRequest = $Rows | ForEach-Object { $NewObj = $_.Rules | ConvertFrom-Json -ErrorAction SilentlyContinue @@ -80,7 +77,7 @@ Function Invoke-ListMailboxRules { Metadata = $Metadata } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListMailboxes.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListMailboxes.ps1 index b22280ba01b3..353c6e3fe395 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListMailboxes.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListMailboxes.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ListMailboxes { +function Invoke-ListMailboxes { <# .FUNCTIONALITY Entrypoint @@ -9,15 +7,10 @@ Function Invoke-ListMailboxes { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter try { - $Select = 'id,ExchangeGuid,ArchiveGuid,UserPrincipalName,DisplayName,PrimarySMTPAddress,RecipientType,RecipientTypeDetails,EmailAddresses,WhenSoftDeleted,IsInactiveMailbox,ForwardingSmtpAddress,DeliverToMailboxAndForward,ForwardingAddress,HiddenFromAddressListsEnabled,ExternalDirectoryObjectId,MessageCopyForSendOnBehalfEnabled,MessageCopyForSentAsEnabled,PersistedCapabilities,LitigationHoldEnabled,LitigationHoldDate,LitigationHoldDuration,ComplianceTagHoldApplied,RetentionHoldEnabled,InPlaceHolds' + $Select = 'id,ExchangeGuid,ArchiveGuid,UserPrincipalName,DisplayName,PrimarySMTPAddress,RecipientType,RecipientTypeDetails,EmailAddresses,WhenSoftDeleted,IsInactiveMailbox,ForwardingSmtpAddress,DeliverToMailboxAndForward,ForwardingAddress,HiddenFromAddressListsEnabled,ExternalDirectoryObjectId,MessageCopyForSendOnBehalfEnabled,MessageCopyForSentAsEnabled,PersistedCapabilities,LitigationHoldEnabled,LitigationHoldDate,LitigationHoldDuration,ComplianceTagHoldApplied,RetentionHoldEnabled,InPlaceHolds,RetentionPolicy' $ExoRequest = @{ tenantid = $TenantFilter cmdlet = 'Get-Mailbox' @@ -73,10 +66,11 @@ Function Invoke-ListMailboxes { LitigationHoldEnabled, LitigationHoldDate, LitigationHoldDuration, - @{ Name = 'LicensedForLitigationHold'; Expression = { ($_.PersistedCapabilities -contains 'BPOS_S_DlpAddOn' -or $_.PersistedCapabilities -contains 'BPOS_S_Enterprise') } }, + @{ Name = 'LicensedForLitigationHold'; Expression = { ($_.PersistedCapabilities -contains 'EXCHANGE_S_ARCHIVE_ADDON' -or $_.PersistedCapabilities -contains 'EXCHANGE_S_ENTERPRISE') } }, ComplianceTagHoldApplied, RetentionHoldEnabled, - InPlaceHolds + InPlaceHolds, + RetentionPolicy # This select also exists in ListUserMailboxDetails and should be updated if this is changed here @@ -86,8 +80,7 @@ Function Invoke-ListMailboxes { $StatusCode = [HttpStatusCode]::Forbidden $GraphRequest = $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @($GraphRequest) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListOoO.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListOoO.ps1 index 3bc1e1b42701..e014458f2c9f 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListOoO.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListOoO.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListOoO { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-ListOoO { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $TenantFilter = $Request.Query.tenantFilter $UserID = $Request.Query.userid @@ -24,8 +22,7 @@ Function Invoke-ListOoO { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $Results }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListRestrictedUsers.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListRestrictedUsers.ps1 new file mode 100644 index 000000000000..6ba507d77a1a --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListRestrictedUsers.ps1 @@ -0,0 +1,52 @@ +function Invoke-ListRestrictedUsers { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.Read + .DESCRIPTION + Lists users from the restricted senders list in Exchange Online. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + + try { + $BlockedUsers = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-BlockedSenderAddress' + + if ($BlockedUsers) { + $GraphRequest = foreach ($User in $BlockedUsers) { + # Parse the reason to make it more readable + $ReasonParts = $User.Reason -split ';' + $LimitType = ($ReasonParts | Where-Object { $_ -like 'ExceedingLimitType=*' }) -replace 'ExceedingLimitType=', '' + $InternalCount = ($ReasonParts | Where-Object { $_ -like 'InternalRecipientCountToday=*' }) -replace 'InternalRecipientCountToday=', '' + $ExternalCount = ($ReasonParts | Where-Object { $_ -like 'ExternalRecipientCountToday=*' }) -replace 'ExternalRecipientCountToday=', '' + + [PSCustomObject]@{ + SenderAddress = $User.SenderAddress + Reason = $User.Reason + BlockType = if ($LimitType) { "$LimitType recipient limit exceeded" } else { 'Email sending limit exceeded' } + CreatedDatetime = $User.CreatedDatetime + ChangedDatetime = $User.ChangedDatetime + TemporaryBlock = $User.TemporaryBlock + InternalCount = $InternalCount + ExternalCount = $ExternalCount + } + } + } else { + $GraphRequest = @() + } + + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListSharedMailboxStatistics.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListSharedMailboxStatistics.ps1 index 2e7f2041209c..75c3eeddfec5 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListSharedMailboxStatistics.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListSharedMailboxStatistics.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListSharedMailboxStatistics { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ Function Invoke-ListSharedMailboxStatistics { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # XXX Seems like an unused endpoint? -Bobby # Interact with query parameters or the body of the request. @@ -32,8 +25,7 @@ Function Invoke-ListSharedMailboxStatistics { $StatusCode = [HttpStatusCode]::Forbidden $GraphRequest = $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @($GraphRequest) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListmailboxPermissions.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListmailboxPermissions.ps1 index 9b1c4f03cf0b..a569ed418d5e 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListmailboxPermissions.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListmailboxPermissions.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ListmailboxPermissions { +function Invoke-ListmailboxPermissions { <# .FUNCTIONALITY Entrypoint @@ -9,16 +7,38 @@ Function Invoke-ListmailboxPermissions { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter $UserID = $Request.Query.userId + $UseReportDB = $Request.Query.UseReportDB + $ByUser = $Request.Query.ByUser try { + # If UseReportDB is specified and no specific UserID, retrieve from report database + if ($UseReportDB -eq 'true' -and -not $UserID) { + + # Call the report function with proper parameters + $ReportParams = @{ + TenantFilter = $TenantFilter + } + if ($ByUser -eq 'true') { + $ReportParams.ByUser = $true + } + try { + $GraphRequest = Get-CIPPMailboxPermissionReport @ReportParams + $StatusCode = [HttpStatusCode]::OK + } catch { + $StatusCode = [HttpStatusCode]::InternalServerError + $GraphRequest = $_.Exception.Message + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + }) + } + + # Original live query logic for specific user $Requests = @( @{ CmdletInput = @{ @@ -70,8 +90,7 @@ Function Invoke-ListmailboxPermissions { $StatusCode = [HttpStatusCode]::Forbidden $GraphRequest = $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @($GraphRequest) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Mailbox Retention/Invoke-ExecManageRetentionPolicies.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Mailbox Retention/Invoke-ExecManageRetentionPolicies.ps1 new file mode 100644 index 000000000000..84d209052bb6 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Mailbox Retention/Invoke-ExecManageRetentionPolicies.ps1 @@ -0,0 +1,251 @@ +Function Invoke-ExecManageRetentionPolicies { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.RetentionPolicies.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Results = [System.Collections.Generic.List[string]]::new() + $TenantFilter = $Request.Query.tenantFilter ?? $Request.body.tenantFilter + $CmdletArray = [System.Collections.ArrayList]::new() + $CmdletMetadataArray = [System.Collections.ArrayList]::new() + $GuidToMetadataMap = @{} + + if ([string]::IsNullOrEmpty($TenantFilter)) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = "Tenant filter is required" + }) + return + } + + try { + # Helper function to add cmdlet to bulk array + function Add-BulkCmdlet { + param($CmdletName, $Parameters, $ExpectedResult, $Operation, $Identity = "") + + $OperationGuid = [Guid]::NewGuid().ToString() + + $CmdletObj = @{ + CmdletInput = @{ + CmdletName = $CmdletName + Parameters = $Parameters + } + OperationGuid = $OperationGuid + } + + $CmdletMetadata = [PSCustomObject]@{ + ExpectedResult = $ExpectedResult + Operation = $Operation + Identity = $Identity + OperationGuid = $OperationGuid + } + + $null = $CmdletArray.Add($CmdletObj) + $null = $CmdletMetadataArray.Add($CmdletMetadata) + $GuidToMetadataMap[$OperationGuid] = $CmdletMetadata + } + + # Create Retention Policies + $CreatePolicies = $Request.body.CreatePolicies + if ($CreatePolicies) { + foreach ($Policy in $CreatePolicies) { + if ([string]::IsNullOrEmpty($Policy.Name)) { + $Results.Add("Failed to create policy - Name is required") + continue + } + + $cmdParams = @{ + Name = $Policy.Name + } + + if ($Policy.RetentionPolicyTagLinks) { + $cmdParams.RetentionPolicyTagLinks = $Policy.RetentionPolicyTagLinks + } + + Add-BulkCmdlet -CmdletName 'New-RetentionPolicy' -Parameters $cmdParams -ExpectedResult "Successfully created retention policy: $($Policy.Name)" -Operation 'Create' -Identity $Policy.Name + } + } + + # Modify Retention Policies + $ModifyPolicies = $Request.body.ModifyPolicies + if ($ModifyPolicies) { + foreach ($Policy in $ModifyPolicies) { + if ([string]::IsNullOrEmpty($Policy.Identity)) { + $Results.Add("Failed to modify policy - Identity is required") + continue + } + + $cmdParams = @{ + Identity = $Policy.Identity + } + + if ($Policy.Name) { + $cmdParams.Name = $Policy.Name + } + + # Handle tag modifications - need to get current policy first for add/remove operations + if ($Policy.AddTags -or $Policy.RemoveTags) { + try { + $currentPolicy = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-RetentionPolicy' -cmdParams @{Identity = $Policy.Identity} + $currentTags = $currentPolicy.RetentionPolicyTagLinks + } catch { + $Results.Add("Failed to modify policy $($Policy.Identity) - Could not retrieve current policy") + continue + } + + if ($Policy.AddTags) { + $newTagsList = [System.Collections.ArrayList]::new() + if ($currentTags) { + foreach ($tag in $currentTags) { $null = $newTagsList.Add($tag) } + } + foreach ($tag in $Policy.AddTags) { + if ($tag -notin $newTagsList) { $null = $newTagsList.Add($tag) } + } + $cmdParams.RetentionPolicyTagLinks = @($newTagsList) + } + + if ($Policy.RemoveTags) { + $newTagsList = [System.Collections.ArrayList]::new() + if ($currentTags) { + foreach ($tag in $currentTags) { + if ($tag -notin $Policy.RemoveTags) { $null = $newTagsList.Add($tag) } + } + } + $cmdParams.RetentionPolicyTagLinks = @($newTagsList) + } + } elseif ($Policy.RetentionPolicyTagLinks) { + $cmdParams.RetentionPolicyTagLinks = $Policy.RetentionPolicyTagLinks + } + + Add-BulkCmdlet -CmdletName 'Set-RetentionPolicy' -Parameters $cmdParams -ExpectedResult "Successfully modified retention policy: $($Policy.Identity)" -Operation 'Modify' -Identity $Policy.Identity + } + } + + # Delete Retention Policies + $DeletePolicies = $Request.body.DeletePolicies + if ($DeletePolicies) { + foreach ($PolicyIdentity in $DeletePolicies) { + if ([string]::IsNullOrEmpty($PolicyIdentity)) { + $Results.Add("Failed to delete policy - Identity is required") + continue + } + + # Check if policy is assigned to mailboxes (do this before bulk processing) + $assignedMailboxes = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-Mailbox' -cmdParams @{ + Filter = "RetentionPolicy -eq '$PolicyIdentity'" + ResultSize = 1 + } -ErrorAction SilentlyContinue + + if ($assignedMailboxes) { + $Results.Add("Cannot delete retention policy $PolicyIdentity - still assigned to mailboxes") + continue + } + + Add-BulkCmdlet -CmdletName 'Remove-RetentionPolicy' -Parameters @{Identity = $PolicyIdentity; Confirm = $false} -ExpectedResult "Successfully deleted retention policy: $PolicyIdentity" -Operation 'Delete' -Identity $PolicyIdentity + } + } + + # Execute bulk operations + if ($CmdletArray.Count -gt 0) { + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Executing $($CmdletArray.Count) retention policy operations" -Sev 'Info' -tenant $TenantFilter + + if ($CmdletArray.Count -gt 1) { + # Use bulk processing + $BulkResults = New-ExoBulkRequest -tenantid $TenantFilter -cmdletArray @($CmdletArray) -ReturnWithCommand $true + + # Process bulk results using GUID mapping + if ($BulkResults -is [hashtable] -and $BulkResults.Keys.Count -gt 0) { + foreach ($cmdletName in $BulkResults.Keys) { + foreach ($result in $BulkResults[$cmdletName]) { + $operationGuid = $result.OperationGuid + + if ($operationGuid -and $GuidToMetadataMap.ContainsKey($operationGuid)) { + $metadata = $GuidToMetadataMap[$operationGuid] + + if ($result.error) { + $ErrorMessage = try { (Get-CippException -Exception $result.error).NormalizedError } catch { $result.error } + $Message = "Failed to $($metadata.Operation.ToLower()) retention policy $($metadata.Identity): $ErrorMessage" + Write-LogMessage -headers $Request.Headers -API $APINAME -message $Message -Sev 'Error' -tenant $TenantFilter + $Results.Add($Message) + } else { + Write-LogMessage -headers $Request.Headers -API $APINAME -message $metadata.ExpectedResult -Sev 'Info' -tenant $TenantFilter + $Results.Add($metadata.ExpectedResult) + } + } + } + } + } + } else { + # Single operation + $CmdletObj = $CmdletArray[0] + $CmdletMetadata = $CmdletMetadataArray[0] + + try { + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet $CmdletObj.CmdletInput.CmdletName -cmdParams $CmdletObj.CmdletInput.Parameters + Write-LogMessage -headers $Request.Headers -API $APINAME -message $CmdletMetadata.ExpectedResult -Sev 'Info' -tenant $TenantFilter + $Results.Add($CmdletMetadata.ExpectedResult) + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $Message = "Failed to $($CmdletMetadata.Operation.ToLower()) retention policy $($CmdletMetadata.Identity): $ErrorMessage" + Write-LogMessage -headers $Request.Headers -API $APINAME -message $Message -Sev 'Error' -tenant $TenantFilter + $Results.Add($Message) + } + } + } + + $StatusCode = [HttpStatusCode]::OK + + # Simple response logic + if ($CreatePolicies -or $ModifyPolicies -or $DeletePolicies) { + # For any operations, return the results messages + $GraphRequest = @($Results) + } else { + # For listing, return all policies or specific policy - wrapped in try-catch + try { + $SpecificName = $Request.Query.name + if ($SpecificName) { + # Get specific policy by name + $GraphRequest = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-RetentionPolicy' -cmdParams @{Identity = $SpecificName} + } else { + # Get all policies + $GraphRequest = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-RetentionPolicy' + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $Message = if ($Request.Query.name) { + "Failed to retrieve retention policy '$($Request.Query.name)': $ErrorMessage" + } else { + "Failed to retrieve retention policies: $ErrorMessage" + } + Write-LogMessage -headers $Request.Headers -API $APINAME -message $Message -Sev 'Error' -tenant $TenantFilter + $Results.Add($Message) + $StatusCode = [HttpStatusCode]::InternalServerError + $GraphRequest = @($Results) + } + } + + # If no results are found, we will return an empty message to prevent null reference errors in the frontend + $GraphRequest = $GraphRequest ?? @() + + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $Message = "Failed to manage retention policies: $ErrorMessage" + Write-LogMessage -headers $Request.Headers -API $APINAME -message $Message -Sev 'Error' -tenant $TenantFilter + $Results.Add($Message) + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = @($Results) + } + + # If no results are found, we will return an empty message to prevent null reference errors in the frontend + $GraphRequest = $GraphRequest ?? @() + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $GraphRequest + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Mailbox Retention/Invoke-ExecManageRetentionTags.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Mailbox Retention/Invoke-ExecManageRetentionTags.ps1 new file mode 100644 index 000000000000..af30f574842b --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Mailbox Retention/Invoke-ExecManageRetentionTags.ps1 @@ -0,0 +1,352 @@ +Function Invoke-ExecManageRetentionTags { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.RetentionPolicies.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Results = [System.Collections.Generic.List[string]]::new() + $TenantFilter = $Request.Query.tenantFilter ?? $Request.body.tenantFilter + $CmdletArray = [System.Collections.ArrayList]::new() + $CmdletMetadataArray = [System.Collections.ArrayList]::new() + $GuidToMetadataMap = @{} + + if ([string]::IsNullOrEmpty($TenantFilter)) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = "Tenant filter is required" + }) + return + } + + try { + # Helper function to add cmdlet to bulk array + function Add-BulkCmdlet { + param($CmdletName, $Parameters, $ExpectedResult, $Operation, $Identity = "") + + $OperationGuid = [Guid]::NewGuid().ToString() + + $CmdletObj = @{ + CmdletInput = @{ + CmdletName = $CmdletName + Parameters = $Parameters + } + OperationGuid = $OperationGuid + } + + $CmdletMetadata = [PSCustomObject]@{ + ExpectedResult = $ExpectedResult + Operation = $Operation + Identity = $Identity + OperationGuid = $OperationGuid + } + + $null = $CmdletArray.Add($CmdletObj) + $null = $CmdletMetadataArray.Add($CmdletMetadata) + $GuidToMetadataMap[$OperationGuid] = $CmdletMetadata + } + + # Validation function for retention tag parameters + function Test-RetentionTagParams { + param($Tag, $IsModification = $false) + + if (-not $IsModification) { + if ([string]::IsNullOrEmpty($Tag.Name)) { + return "Tag Name is required" + } + + if ([string]::IsNullOrEmpty($Tag.Type)) { + return "Tag Type is required" + } + + # Valid tag types + $validTypes = @('All', 'Inbox', 'SentItems', 'DeletedItems', 'Drafts', 'Outbox', 'JunkEmail', 'Journal', 'SyncIssues', 'ConversationHistory', 'Personal', 'RecoverableItems', 'NonIpmRoot', 'LegacyArchiveJournals', 'Clutter', 'Calendar', 'Notes', 'Tasks', 'Contacts', 'RssSubscriptions', 'ManagedCustomFolder') + if ($Tag.Type -notin $validTypes) { + return "Invalid Type '$($Tag.Type)'. Valid types: $($validTypes -join ', ')" + } + + # Validate RetentionAction compatibility with Type (only for creation) + if ($Tag.RetentionAction) { + switch ($Tag.RetentionAction) { + 'MoveToArchive' { + $allowedTypesForArchive = @('All', 'Personal', 'RecoverableItems') + if ($Tag.Type -notin $allowedTypesForArchive) { + return "RetentionAction 'MoveToArchive' can only be used with tag types: $($allowedTypesForArchive -join ', '). Current type: '$($Tag.Type)'" + } + } + 'DeleteAndAllowRecovery' { + $excludedTypesForDelete = @('RecoverableItems') + if ($Tag.Type -in $excludedTypesForDelete) { + return "RetentionAction 'DeleteAndAllowRecovery' cannot be used with tag type '$($Tag.Type)'" + } + } + 'PermanentlyDelete' { + $excludedTypesForPermanentDelete = @('RecoverableItems') + if ($Tag.Type -in $excludedTypesForPermanentDelete) { + return "RetentionAction 'PermanentlyDelete' cannot be used with tag type '$($Tag.Type)'" + } + } + } + } + + # Validate RetentionEnabled and RetentionAction relationship (only for creation) + if ($Tag.RetentionEnabled -eq $true -and [string]::IsNullOrEmpty($Tag.RetentionAction)) { + return "RetentionAction is required when RetentionEnabled is set to true" + } + } + + # Common validations for both create and modify + if ($Tag.Name) { + if ($Tag.Name -match '[\\/:*?\"<>|]') { + return "Tag name contains invalid characters. Avoid using: \ / : * ? `" < > |" + } + + if ($Tag.Name.Length -gt 64) { + return "Tag name cannot exceed 64 characters" + } + } + + if ($Tag.RetentionAction) { + $validActions = @('DeleteAndAllowRecovery', 'PermanentlyDelete', 'MoveToArchive', 'MarkAsPastRetentionLimit') + if ($Tag.RetentionAction -notin $validActions) { + return "Invalid RetentionAction '$($Tag.RetentionAction)'. Valid actions: $($validActions -join ', ')" + } + } + + if ($Tag.AgeLimitForRetention -and ($Tag.AgeLimitForRetention -lt 0 -or $Tag.AgeLimitForRetention -gt 24855)) { + return "AgeLimitForRetention must be between 0 and 24855 days" + } + + return $null + } + + # Create Retention Tags + $CreateTags = $Request.body.CreateTags + if ($CreateTags) { + foreach ($Tag in $CreateTags) { + $validationError = Test-RetentionTagParams -Tag $Tag -IsModification $false + if ($validationError) { + $Results.Add("Failed to create tag '$($Tag.Name)': $validationError") + continue + } + + $cmdParams = @{ + Name = $Tag.Name + Type = $Tag.Type + } + + if ($Tag.AgeLimitForRetention) { + $cmdParams.AgeLimitForRetention = $Tag.AgeLimitForRetention + } + + if ($Tag.RetentionAction) { + $cmdParams.RetentionAction = $Tag.RetentionAction + } + + if ($Tag.Comment) { + $cmdParams.Comment = $Tag.Comment + } + + if ($Tag.RetentionEnabled -ne $null) { + $cmdParams.RetentionEnabled = $Tag.RetentionEnabled + } + + if ($Tag.LocalizedComment) { + $cmdParams.LocalizedComment = $Tag.LocalizedComment + } + + if ($Tag.LocalizedRetentionPolicyTagName) { + $cmdParams.LocalizedRetentionPolicyTagName = $Tag.LocalizedRetentionPolicyTagName + } + + $resultParts = [System.Collections.ArrayList]::new() + $null = $resultParts.Add("Successfully created retention tag: $($Tag.Name) (Type: $($Tag.Type)") + if ($Tag.RetentionAction) { $null = $resultParts.Add(", Action: $($Tag.RetentionAction)") } + if ($Tag.AgeLimitForRetention) { $null = $resultParts.Add(", Age: $($Tag.AgeLimitForRetention) days") } + $null = $resultParts.Add(")") + $expectedResult = $resultParts -join "" + + Add-BulkCmdlet -CmdletName 'New-RetentionPolicyTag' -Parameters $cmdParams -ExpectedResult $expectedResult -Operation 'Create' -Identity $Tag.Name + } + } + + # Modify Retention Tags + $ModifyTags = $Request.body.ModifyTags + if ($ModifyTags) { + foreach ($Tag in $ModifyTags) { + if ([string]::IsNullOrEmpty($Tag.Identity)) { + $Results.Add("Failed to modify tag - Identity is required") + continue + } + + # Use basic validation for modifications + $validationError = Test-RetentionTagParams -Tag $Tag -IsModification $true + if ($validationError) { + $Results.Add("Failed to modify tag '$($Tag.Identity)': $validationError") + continue + } + + $cmdParams = @{ + Identity = $Tag.Identity + } + + if ($Tag.Name) { + $cmdParams.Name = $Tag.Name + } + + if ($Tag.AgeLimitForRetention) { + $cmdParams.AgeLimitForRetention = $Tag.AgeLimitForRetention + } + + if ($Tag.RetentionAction) { + $cmdParams.RetentionAction = $Tag.RetentionAction + } + + if ($Tag.Comment) { + $cmdParams.Comment = $Tag.Comment + } + + if ($Tag.RetentionEnabled -ne $null) { + $cmdParams.RetentionEnabled = $Tag.RetentionEnabled + } + + if ($Tag.LocalizedComment) { + $cmdParams.LocalizedComment = $Tag.LocalizedComment + } + + if ($Tag.LocalizedRetentionPolicyTagName) { + $cmdParams.LocalizedRetentionPolicyTagName = $Tag.LocalizedRetentionPolicyTagName + } + + Add-BulkCmdlet -CmdletName 'Set-RetentionPolicyTag' -Parameters $cmdParams -ExpectedResult "Successfully modified retention tag: $($Tag.Identity)" -Operation 'Modify' -Identity $Tag.Identity + } + } + + # Delete Retention Tags + $DeleteTags = $Request.body.DeleteTags + if ($DeleteTags) { + foreach ($TagIdentity in $DeleteTags) { + if ([string]::IsNullOrEmpty($TagIdentity)) { + $Results.Add("Failed to delete tag - Identity is required") + continue + } + + # Check if tag is used in any retention policies + $AllPolicies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-RetentionPolicy' -ErrorAction SilentlyContinue + $policiesUsingTag = $AllPolicies | Where-Object { + $_.RetentionPolicyTagLinks -contains $TagIdentity + } + + if ($policiesUsingTag) { + $policyNames = ($policiesUsingTag | ForEach-Object { $_.Name }) -join ', ' + $Results.Add("Cannot delete retention tag '$TagIdentity' - still used in policies: $policyNames") + continue + } + + Add-BulkCmdlet -CmdletName 'Remove-RetentionPolicyTag' -Parameters @{Identity = $TagIdentity; Confirm = $false} -ExpectedResult "Successfully deleted retention tag: $TagIdentity" -Operation 'Delete' -Identity $TagIdentity + } + } + + # Execute bulk operations + if ($CmdletArray.Count -gt 0) { + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Executing $($CmdletArray.Count) retention tag operations" -Sev 'Info' -tenant $TenantFilter + + if ($CmdletArray.Count -gt 1) { + # Use bulk processing + $BulkResults = New-ExoBulkRequest -tenantid $TenantFilter -cmdletArray @($CmdletArray) -ReturnWithCommand $true + + # Process bulk results using GUID mapping + if ($BulkResults -is [hashtable] -and $BulkResults.Keys.Count -gt 0) { + foreach ($cmdletName in $BulkResults.Keys) { + foreach ($result in $BulkResults[$cmdletName]) { + $operationGuid = $result.OperationGuid + + if ($operationGuid -and $GuidToMetadataMap.ContainsKey($operationGuid)) { + $metadata = $GuidToMetadataMap[$operationGuid] + + if ($result.error) { + $ErrorMessage = try { (Get-CippException -Exception $result.error).NormalizedError } catch { $result.error } + $Message = "Failed to $($metadata.Operation.ToLower()) retention tag $($metadata.Identity): $ErrorMessage" + Write-LogMessage -headers $Request.Headers -API $APINAME -message $Message -Sev 'Error' -tenant $TenantFilter + $Results.Add($Message) + } else { + Write-LogMessage -headers $Request.Headers -API $APINAME -message $metadata.ExpectedResult -Sev 'Info' -tenant $TenantFilter + $Results.Add($metadata.ExpectedResult) + } + } + } + } + } + } else { + # Single operation + $CmdletObj = $CmdletArray[0] + $CmdletMetadata = $CmdletMetadataArray[0] + + try { + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet $CmdletObj.CmdletInput.CmdletName -cmdParams $CmdletObj.CmdletInput.Parameters + Write-LogMessage -headers $Request.Headers -API $APINAME -message $CmdletMetadata.ExpectedResult -Sev 'Info' -tenant $TenantFilter + $Results.Add($CmdletMetadata.ExpectedResult) + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $Message = "Failed to $($CmdletMetadata.Operation.ToLower()) retention tag $($CmdletMetadata.Identity): $ErrorMessage" + Write-LogMessage -headers $Request.Headers -API $APINAME -message $Message -Sev 'Error' -tenant $TenantFilter + $Results.Add($Message) + } + } + } + + $StatusCode = [HttpStatusCode]::OK + + # Simple response logic + if ($CreateTags -or $ModifyTags -or $DeleteTags) { + # For any operations, return the results messages + $GraphRequest = @($Results) + } else { + # For listing, return all tags or specific tag - wrapped in try-catch + try { + $SpecificName = $Request.Query.name + if ($SpecificName) { + # Get specific tag by name + $GraphRequest = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-RetentionPolicyTag' -cmdParams @{Identity = $SpecificName} + } else { + # Get all tags + $GraphRequest = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-RetentionPolicyTag' + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $Message = if ($Request.Query.name) { + "Failed to retrieve retention tag '$($Request.Query.name)': $ErrorMessage" + } else { + "Failed to retrieve retention tags: $ErrorMessage" + } + Write-LogMessage -headers $Request.Headers -API $APINAME -message $Message -Sev 'Error' -tenant $TenantFilter + $Results.Add($Message) + $StatusCode = [HttpStatusCode]::InternalServerError + $GraphRequest = @($Results) + } + } + + # If no results are found, we will return an empty message to prevent null reference errors in the frontend + $GraphRequest = $GraphRequest ?? @() + + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $Message = "Failed to manage retention tags: $ErrorMessage" + Write-LogMessage -headers $Request.Headers -API $APINAME -message $Message -Sev 'Error' -tenant $TenantFilter + $Results.Add($Message) + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = @($Results) + } + + # If no results are found, we will return an empty message to prevent null reference errors in the frontend + $GraphRequest = $GraphRequest ?? @() + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $GraphRequest + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Mailbox Retention/Invoke-ExecSetMailboxRetentionPolicies.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Mailbox Retention/Invoke-ExecSetMailboxRetentionPolicies.ps1 new file mode 100644 index 000000000000..c88b7de0774b --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Mailbox Retention/Invoke-ExecSetMailboxRetentionPolicies.ps1 @@ -0,0 +1,145 @@ +Function Invoke-ExecSetMailboxRetentionPolicies { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Results = [System.Collections.Generic.List[string]]::new() + $TenantFilter = $Request.Query.tenantFilter ?? $Request.body.tenantFilter + $CmdletArray = [System.Collections.ArrayList]::new() + $CmdletMetadataArray = [System.Collections.ArrayList]::new() + $GuidToMetadataMap = @{} + + if ([string]::IsNullOrEmpty($TenantFilter)) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = "Tenant filter is required" + }) + return + } + + try { + $PolicyName = $Request.body.PolicyName + $Mailboxes = $Request.body.Mailboxes + + # Validate required parameters + if ([string]::IsNullOrEmpty($PolicyName)) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = "PolicyName is required" + }) + return + } + + if (-not $Mailboxes -or $Mailboxes.Count -eq 0) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = "Mailboxes array is required" + }) + return + } + + # Helper function to add cmdlet to bulk array + function Add-BulkCmdlet { + param($CmdletName, $Parameters, $MailboxIdentity) + + $OperationGuid = [Guid]::NewGuid().ToString() + + $CmdletObj = @{ + CmdletInput = @{ + CmdletName = $CmdletName + Parameters = $Parameters + } + OperationGuid = $OperationGuid + } + + $CmdletMetadata = [PSCustomObject]@{ + MailboxIdentity = $MailboxIdentity + OperationGuid = $OperationGuid + } + + $null = $CmdletArray.Add($CmdletObj) + $null = $CmdletMetadataArray.Add($CmdletMetadata) + $GuidToMetadataMap[$OperationGuid] = $CmdletMetadata + } + + # Process each mailbox + foreach ($MailboxIdentity in $Mailboxes) { + if ([string]::IsNullOrEmpty($MailboxIdentity)) { + $Results.Add("Failed to apply retention policy to empty mailbox identity") + continue + } + + Add-BulkCmdlet -CmdletName 'Set-Mailbox' -Parameters @{Identity = $MailboxIdentity; RetentionPolicy = $PolicyName} -MailboxIdentity $MailboxIdentity + } + + # Execute bulk operations + if ($CmdletArray.Count -gt 0) { + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Applying retention policy '$PolicyName' to $($CmdletArray.Count) mailboxes" -Sev 'Info' -tenant $TenantFilter + + if ($CmdletArray.Count -gt 1) { + # Use bulk processing + $BulkResults = New-ExoBulkRequest -tenantid $TenantFilter -cmdletArray @($CmdletArray) -ReturnWithCommand $true + + # Process bulk results using GUID mapping + if ($BulkResults -is [hashtable] -and $BulkResults.Keys.Count -gt 0) { + foreach ($cmdletName in $BulkResults.Keys) { + foreach ($result in $BulkResults[$cmdletName]) { + $operationGuid = $result.OperationGuid + + if ($operationGuid -and $GuidToMetadataMap.ContainsKey($operationGuid)) { + $metadata = $GuidToMetadataMap[$operationGuid] + + if ($result.error) { + $ErrorMessage = try { (Get-CippException -Exception $result.error).NormalizedError } catch { $result.error } + $Message = "Failed to apply retention policy '$PolicyName' to $($metadata.MailboxIdentity): $ErrorMessage" + Write-LogMessage -headers $Request.Headers -API $APINAME -message $Message -Sev 'Error' -tenant $TenantFilter + $Results.Add($Message) + } else { + $Message = "Successfully applied retention policy '$PolicyName' to $($metadata.MailboxIdentity)" + Write-LogMessage -headers $Request.Headers -API $APINAME -message $Message -Sev 'Info' -tenant $TenantFilter + $Results.Add($Message) + } + } + } + } + } + } else { + # Single operation + $CmdletObj = $CmdletArray[0] + $CmdletMetadata = $CmdletMetadataArray[0] + + try { + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet $CmdletObj.CmdletInput.CmdletName -cmdParams $CmdletObj.CmdletInput.Parameters + $Message = "Successfully applied retention policy '$PolicyName' to $($CmdletMetadata.MailboxIdentity)" + Write-LogMessage -headers $Request.Headers -API $APINAME -message $Message -Sev 'Info' -tenant $TenantFilter + $Results.Add($Message) + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $Message = "Failed to apply retention policy '$PolicyName' to $($CmdletMetadata.MailboxIdentity): $ErrorMessage" + Write-LogMessage -headers $Request.Headers -API $APINAME -message $Message -Sev 'Error' -tenant $TenantFilter + $Results.Add($Message) + } + } + } + + $StatusCode = [HttpStatusCode]::OK + + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $Message = "Failed to set mailbox retention policies: $ErrorMessage" + Write-LogMessage -headers $Request.Headers -API $APINAME -message $Message -Sev 'Error' -tenant $TenantFilter + $Results.Add($Message) + $StatusCode = [HttpStatusCode]::Forbidden + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ Results = @($Results) } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListAntiPhishingFilters.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListAntiPhishingFilters.ps1 index 3325c114db4f..e5f77dbe1893 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListAntiPhishingFilters.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListAntiPhishingFilters.ps1 @@ -7,12 +7,6 @@ function Invoke-ListAntiPhishingFilters { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.TenantFilter $Policies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-AntiPhishPolicy' | Select-Object -Property * @@ -24,8 +18,7 @@ function Invoke-ListAntiPhishingFilters { @{ Name = 'RecipientDomainIs'; Expression = { foreach ($item in $Rules) { if ($item.AntiPhishPolicy -eq $_.Name) { $item.RecipientDomainIs } } } }, @{ Name = 'State'; Expression = { foreach ($item in $Rules) { if ($item.AntiPhishPolicy -eq $_.Name) { $item.State } } } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Output }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListGlobalAddressList.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListGlobalAddressList.ps1 index 2801bb8e3a1c..c54aca7cd798 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListGlobalAddressList.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListGlobalAddressList.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListGlobalAddressList { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ Function Invoke-ListGlobalAddressList { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $TenantFilter = $Request.Query.tenantFilter try { @@ -27,8 +20,7 @@ Function Invoke-ListGlobalAddressList { $GAL = $ErrorMessage.NormalizedError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @($GAL) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListMailboxCAS.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListMailboxCAS.ps1 index 7ba5b3ec7c47..2e66a472ddab 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListMailboxCAS.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListMailboxCAS.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ListMailboxCAS { +function Invoke-ListMailboxCAS { <# .FUNCTIONALITY Entrypoint @@ -9,16 +7,10 @@ Function Invoke-ListMailboxCAS { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.TenantFilter try { - $GraphRequest = New-GraphGetRequest -uri "https://outlook.office365.com/adminapi/beta/$($tenantfilter)/CasMailbox" -Tenantid $tenantfilter -scope ExchangeOnline | Select-Object @{ Name = 'displayName'; Expression = { $_.'DisplayName' } }, + $GraphRequest = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-CasMailbox' | Select-Object @{ Name = 'displayName'; Expression = { $_.'DisplayName' } }, @{ Name = 'primarySmtpAddress'; Expression = { $_.'PrimarySMTPAddress' } }, @{ Name = 'ecpenabled'; Expression = { $_.'ECPEnabled' } }, @{ Name = 'owaenabled'; Expression = { $_.'OWAEnabled' } }, @@ -33,8 +25,7 @@ Function Invoke-ListMailboxCAS { $StatusCode = [HttpStatusCode]::Forbidden $GraphRequest = $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @($GraphRequest) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListMalwareFilters.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListMalwareFilters.ps1 index 98a4e77be2b9..05a1152b65b2 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListMalwareFilters.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListMalwareFilters.ps1 @@ -7,11 +7,6 @@ function Invoke-ListMalwareFilters { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter $Policies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-MalwareFilterPolicy' | Select-Object -Property * @@ -23,8 +18,7 @@ function Invoke-ListMalwareFilters { @{ Name = 'RecipientDomainIs'; Expression = { foreach ($item in $Rules) { if ($item.MalwareFilterPolicy -eq $_.Name) { $item.RecipientDomainIs } } } }, @{ Name = 'State'; Expression = { foreach ($item in $Rules) { if ($item.MalwareFilterPolicy -eq $_.Name) { $item.State } } } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Output }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListSafeAttachmentsFilters.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListSafeAttachmentsFilters.ps1 index 6df0401229fc..1e0d39b2ea83 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListSafeAttachmentsFilters.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListSafeAttachmentsFilters.ps1 @@ -7,11 +7,6 @@ function Invoke-ListSafeAttachmentsFilters { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.TenantFilter $Policies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-SafeAttachmentPolicy' | Select-Object -Property * @@ -23,8 +18,7 @@ function Invoke-ListSafeAttachmentsFilters { @{ Name = 'RecipientDomainIs'; Expression = { foreach ($item in $Rules) { if ($item.SafeAttachmentPolicy -eq $_.Name) { $item.RecipientDomainIs } } } }, @{ Name = 'State'; Expression = { foreach ($item in $Rules) { if ($item.SafeAttachmentPolicy -eq $_.Name) { $item.State } } } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Output }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListSharedMailboxAccountEnabled.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListSharedMailboxAccountEnabled.ps1 index 3b51959fa9d1..a0e307c1cba8 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListSharedMailboxAccountEnabled.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListSharedMailboxAccountEnabled.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ListSharedMailboxAccountEnabled { +function Invoke-ListSharedMailboxAccountEnabled { <# .FUNCTIONALITY Entrypoint @@ -11,10 +9,6 @@ Function Invoke-ListSharedMailboxAccountEnabled { param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - $TenantFilter = $Request.Query.tenantFilter # Get Shared Mailbox Stuff @@ -25,27 +19,28 @@ Function Invoke-ListSharedMailboxAccountEnabled { # Match the User $User = $AllUsersInfo | Where-Object { $_.userPrincipalName -eq $SharedMailbox.userPrincipalName } | Select-Object -First 1 - if ($User) { + if ($User.accountEnabled) { # Return all shared mailboxes with license information [PSCustomObject]@{ - UserPrincipalName = $User.userPrincipalName - displayName = $User.displayName - givenName = $User.givenName - surname = $User.surname - accountEnabled = $User.accountEnabled - assignedLicenses = $User.assignedLicenses - id = $User.id + UserPrincipalName = $User.userPrincipalName + displayName = $User.displayName + givenName = $User.givenName + surname = $User.surname + accountEnabled = $User.accountEnabled + assignedLicenses = $User.assignedLicenses + id = $User.id onPremisesSyncEnabled = $User.onPremisesSyncEnabled } } } + $StatusCode = [HttpStatusCode]::OK } catch { - Write-LogMessage -API 'Tenant' -tenant $TenantFilter -message "Shared Mailbox List on $($TenantFilter). Error: $($_.exception.message)" -sev 'Error' + $StatusCode = [HttpStatusCode]::InternalServerError + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Shared Mailbox List on $($TenantFilter). Error: $($_.exception.message)" -sev 'Error' } $GraphRequest = $SharedMailboxDetails - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK + return ([HttpResponseContext]@{ + StatusCode = $StatusCode Body = @($GraphRequest) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-AddEquipmentMailbox.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-AddEquipmentMailbox.ps1 index 93497681a93a..fb7b9190cab9 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-AddEquipmentMailbox.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-AddEquipmentMailbox.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-AddEquipmentMailbox { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-AddEquipmentMailbox { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $Tenant = $Request.Body.tenantID @@ -34,12 +32,11 @@ Function Invoke-AddEquipmentMailbox { # Block sign-in for the mailbox try { - $BlockSignInRequest = Set-CIPPSignInState -userid $AddEquipmentRequest.ExternalDirectoryObjectId -TenantFilter $Tenant -APIName $APINAME -Headers $Headers -AccountEnabled $false - if ($BlockSignInRequest -like 'Could not disable*') { throw $BlockSignInRequest } - $Results.Add("Blocked sign-in for Equipment mailbox; $($MailboxObject.userPrincipalName)") + $null = Set-CIPPSignInState -userid $AddEquipmentRequest.ExternalDirectoryObjectId -TenantFilter $Tenant -APIName $APINAME -Headers $Headers -AccountEnabled $false + $Results.Add("Successfully blocked sign-in for Equipment mailbox $($MailboxObject.userPrincipalName)") } catch { - $ErrorMessage = Get-CippException -Exception $_ - $Results.Add("Failed to block sign-in for Equipment mailbox: $($MailboxObject.userPrincipalName). Error: $($ErrorMessage.NormalizedError)") + $ErrorMessage = $_.Exception.Message + $Results.Add("Failed to block sign-in for Equipment mailbox: $($MailboxObject.userPrincipalName). Error: $ErrorMessage") } Write-LogMessage -headers $Headers -API $APIName -tenant $Tenant -message "Created equipment mailbox $($MailboxObject.displayName)" -Sev 'Info' $StatusCode = [HttpStatusCode]::OK @@ -54,8 +51,7 @@ Function Invoke-AddEquipmentMailbox { $Body = [pscustomobject]@{ 'Results' = @($Results) } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-AddRoomList.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-AddRoomList.ps1 new file mode 100644 index 000000000000..f8ed1bd373f9 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-AddRoomList.ps1 @@ -0,0 +1,54 @@ +Function Invoke-AddRoomList { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Room.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $Tenant = $Request.Body.tenantFilter ?? $Request.Body.tenantid + + $Results = [System.Collections.Generic.List[Object]]::new() + $RoomListObject = $Request.Body + + # Construct email address from username and domain + $EmailAddress = if ($RoomListObject.primDomain.value) { + "$($RoomListObject.username)@$($RoomListObject.primDomain.value)" + } else { + "$($RoomListObject.username)@$($Tenant)" + } + + # Parameters for New-DistributionGroup with RoomList + $AddRoomListParams = @{ + Name = $RoomListObject.username + DisplayName = $RoomListObject.displayName + RoomList = $true + PrimarySMTPAddress = $EmailAddress + } + + try { + $AddRoomListRequest = New-ExoRequest -tenantid $Tenant -cmdlet 'New-DistributionGroup' -cmdParams $AddRoomListParams + $Results.Add("Successfully created room list: $($RoomListObject.displayName).") + Write-LogMessage -Headers $Headers -API $APINAME -tenant $Tenant -message "Created room list $($RoomListObject.displayName) with id $($AddRoomListRequest.identity)" -Sev 'Info' + + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to create room list: $($RoomListObject.displayName). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -tenant $Tenant -message $Message -Sev 'Error' -LogData $ErrorMessage + $Results.Add($Message) + $StatusCode = [HttpStatusCode]::InternalServerError + } + + $Body = [pscustomobject] @{ 'Results' = @($Results) } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-AddRoomMailbox.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-AddRoomMailbox.ps1 index d174b644ab39..446ea831c80a 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-AddRoomMailbox.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-AddRoomMailbox.ps1 @@ -10,7 +10,7 @@ Function Invoke-AddRoomMailbox { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $Tenant = $Request.Body.tenantid @@ -32,12 +32,11 @@ Function Invoke-AddRoomMailbox { # Block sign-in for the mailbox try { - $BlockSignInRequest = Set-CIPPSignInState -userid $AddRoomRequest.ExternalDirectoryObjectId -TenantFilter $Tenant -APIName $APINAME -Headers $Headers -AccountEnabled $false - if ($BlockSignInRequest -like 'Could not disable*') { throw $BlockSignInRequest } - $Results.Add("Blocked sign-in for Room mailbox; $($MailboxObject.userPrincipalName)") + $null = Set-CIPPSignInState -userid $AddRoomRequest.ExternalDirectoryObjectId -TenantFilter $Tenant -APIName $APINAME -Headers $Headers -AccountEnabled $false + $Results.Add("Successfully blocked sign-in for Room mailbox $($MailboxObject.userPrincipalName)") } catch { - $ErrorMessage = Get-CippException -Exception $_ - $Results.Add("Failed to block sign-in for Room mailbox: $($MailboxObject.userPrincipalName). Error: $($ErrorMessage.NormalizedError)") + $ErrorMessage = $_.Exception.Message + $Results.Add("Failed to block sign-in for Room mailbox: $($MailboxObject.userPrincipalName). Error: $ErrorMessage") } $StatusCode = [HttpStatusCode]::OK } catch { @@ -49,8 +48,7 @@ Function Invoke-AddRoomMailbox { } $Body = [pscustomobject] @{ 'Results' = @($Results) } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-EditEquipmentMailbox.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-EditEquipmentMailbox.ps1 index ec80257aa684..f1396c842abd 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-EditEquipmentMailbox.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-EditEquipmentMailbox.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-EditEquipmentMailbox { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-EditEquipmentMailbox { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $Tenant = $Request.Body.tenantID $Results = [System.Collections.Generic.List[Object]]::new() @@ -107,8 +105,7 @@ Function Invoke-EditEquipmentMailbox { $Body = [pscustomobject]@{ 'Results' = @($Results) } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-EditRoomList.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-EditRoomList.ps1 new file mode 100644 index 000000000000..8d6f3e819ab2 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-EditRoomList.ps1 @@ -0,0 +1,174 @@ +Function Invoke-EditRoomList { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Room.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $Results = [System.Collections.Generic.List[string]]::new() + $RoomListObj = $Request.Body + $GroupId = $RoomListObj.groupId + $TenantId = $RoomListObj.tenantFilter + + try { + # Edit basic room list properties + if ($RoomListObj.displayName -or $RoomListObj.description -or $RoomListObj.mailNickname) { + $SetRoomListParams = @{ + Identity = $GroupId + } + + if ($RoomListObj.displayName) { + $SetRoomListParams.DisplayName = $RoomListObj.displayName + } + + if ($RoomListObj.description) { + $SetRoomListParams.Description = $RoomListObj.description + } + + if ($RoomListObj.mailNickname) { + $SetRoomListParams.Name = $RoomListObj.mailNickname + } + + try { + $null = New-ExoRequest -tenantid $TenantId -cmdlet 'Set-DistributionGroup' -cmdParams $SetRoomListParams -useSystemMailbox $true + $Results.Add("Successfully updated room list properties for $($RoomListObj.displayName)") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message "Updated room list properties for $($RoomListObj.displayName)" -Sev 'Info' + } catch { + $Results.Add("Failed to update room list properties: $($_.Exception.Message)") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message "Failed to update room list properties: $($_.Exception.Message)" -Sev 'Error' + } + } + + # Add room members + if ($RoomListObj.AddMember) { + foreach ($Member in $RoomListObj.AddMember) { + try { + $MemberEmail = if ($Member.value) { $Member.value } else { $Member } + $AddMemberParams = @{ + Identity = $GroupId + Member = $MemberEmail + BypassSecurityGroupManagerCheck = $true + } + + $null = New-ExoRequest -tenantid $TenantId -cmdlet 'Add-DistributionGroupMember' -cmdParams $AddMemberParams -useSystemMailbox $true + $Results.Add("Successfully added room $MemberEmail to room list") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message "Added room $MemberEmail to room list $GroupId" -Sev 'Info' + } catch { + $Results.Add("Failed to add room $MemberEmail : $($_.Exception.Message)") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message "Failed to add room $MemberEmail : $($_.Exception.Message)" -Sev 'Error' + } + } + } + + # Remove room members + if ($RoomListObj.RemoveMember) { + foreach ($Member in $RoomListObj.RemoveMember) { + try { + $MemberEmail = if ($Member.value) { $Member.value } else { $Member } + $RemoveMemberParams = @{ + Identity = $GroupId + Member = $MemberEmail + BypassSecurityGroupManagerCheck = $true + } + + $null = New-ExoRequest -tenantid $TenantId -cmdlet 'Remove-DistributionGroupMember' -cmdParams $RemoveMemberParams -useSystemMailbox $true + $Results.Add("Successfully removed room $MemberEmail from room list") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message "Removed room $MemberEmail from room list $GroupId" -Sev 'Info' + } catch { + $Results.Add("Failed to remove room $MemberEmail from room list: $($_.Exception.Message)") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message "Failed to remove room $MemberEmail from room list: $($_.Exception.Message)" -Sev 'Error' + } + } + } + + # Handle owners (ManagedBy property) + if ($RoomListObj.AddOwner -or $RoomListObj.RemoveOwner) { + try { + # Get current owners + $CurrentGroup = New-ExoRequest -tenantid $TenantId -cmdlet 'Get-DistributionGroup' -cmdParams @{ Identity = $GroupId } -useSystemMailbox $true + $CurrentOwners = [System.Collections.Generic.List[string]]::new() + + if ($CurrentGroup.ManagedBy) { + # Convert ManagedBy objects to strings explicitly + foreach ($ManagedByItem in $CurrentGroup.ManagedBy) { + $StringValue = [string]$ManagedByItem + $CurrentOwners.Add($StringValue) + } + } + + # Remove owners + if ($RoomListObj.RemoveOwner) { + foreach ($Owner in $RoomListObj.RemoveOwner) { + $OwnerToRemove = if ($Owner.addedFields.id) { $Owner.addedFields.id } else { $Owner.value } + if ($CurrentOwners -contains $OwnerToRemove) { + $CurrentOwners.Remove($OwnerToRemove) + $Results.Add("Removed owner $(if ($Owner.label) { $Owner.label } else { $OwnerToRemove }) from room list") + } + } + } + + # Add owners + if ($RoomListObj.AddOwner) { + foreach ($Owner in $RoomListObj.AddOwner) { + $OwnerToAdd = if ($Owner.addedFields.id) { $Owner.addedFields.id } else { $Owner.value } + if ($CurrentOwners -notcontains $OwnerToAdd) { + $CurrentOwners.Add($OwnerToAdd) + $Results.Add("Added owner $(if ($Owner.label) { $Owner.label } else { $OwnerToAdd }) to room list") + } + } + } + + # Update ManagedBy with new owners list + $SetOwnersParams = @{ + Identity = $GroupId + ManagedBy = $CurrentOwners.ToArray() + } + + $null = New-ExoRequest -tenantid $TenantId -cmdlet 'Set-DistributionGroup' -cmdParams $SetOwnersParams -useSystemMailbox $true + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message "Updated owners for room list $GroupId" -Sev 'Info' + } catch { + $Results.Add("Failed to update room list owners: $($_.Exception.Message)") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message "Failed to update room list owners: $($_.Exception.Message)" -Sev 'Error' + } + } + + # Handle external email settings + if ($null -ne $RoomListObj.allowExternal) { + try { + $SetExternalParams = @{ + Identity = $GroupId + RequireSenderAuthenticationEnabled = !$RoomListObj.allowExternal + } + + $null = New-ExoRequest -tenantid $TenantId -cmdlet 'Set-DistributionGroup' -cmdParams $SetExternalParams -useSystemMailbox $true + + if ($RoomListObj.allowExternal) { + $Results.Add('Enabled external email access for room list') + } else { + $Results.Add('Disabled external email access for room list') + } + + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message "Updated external email settings for room list $GroupId" -Sev 'Info' + } catch { + $Results.Add("Failed to update external email settings: $($_.Exception.Message)") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message "Failed to update external email settings: $($_.Exception.Message)" -Sev 'Error' + } + } + + } catch { + $Results.Add("An error occurred while editing the room list: $($_.Exception.Message)") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message "Failed to edit room list: $($_.Exception.Message)" -Sev 'Error' + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{'Results' = @($Results) } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-EditRoomMailbox.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-EditRoomMailbox.ps1 index 2b3f42107b80..652ca7868e3b 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-EditRoomMailbox.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-EditRoomMailbox.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-EditRoomMailbox { <# .FUNCTIONALITY @@ -11,9 +9,6 @@ Function Invoke-EditRoomMailbox { param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $Tenant = $Request.Body.tenantID @@ -64,7 +59,8 @@ Function Invoke-EditRoomMailbox { $CalendarProperties = @( 'AllowConflicts', 'AllowRecurringMeetings', 'BookingWindowInDays', 'MaximumDurationInMinutes', 'ProcessExternalMeetingMessages', 'EnforceCapacity', - 'ForwardRequestsToDelegates', 'ScheduleOnlyDuringWorkHours ', 'AutomateProcessing' + 'ForwardRequestsToDelegates', 'ScheduleOnlyDuringWorkHours ', 'AutomateProcessing', + 'AddOrganizerToSubject', 'DeleteSubject', 'RemoveCanceledMeetings' ) foreach ($prop in $CalendarProperties) { @@ -117,8 +113,7 @@ Function Invoke-EditRoomMailbox { $Body = [pscustomobject]@{ 'Results' = @($Results) } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-ListEquipment.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-ListEquipment.ps1 index fe890424f3ed..df15735141a3 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-ListEquipment.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-ListEquipment.ps1 @@ -1,19 +1,12 @@ -using namespace System.Net - -Function Invoke-ListEquipment { +function Invoke-ListEquipment { <# .FUNCTIONALITY Entrypoint .ROLE - Exchange.Equipment.ReadWrite + Exchange.Equipment.Read #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $EquipmentId = $Request.Query.EquipmentId $Tenant = $Request.Query.TenantFilter @@ -91,8 +84,7 @@ Function Invoke-ListEquipment { } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @($Results | Sort-Object displayName) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-ListRoomLists.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-ListRoomLists.ps1 index be10ef655ae7..a21b783ea50b 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-ListRoomLists.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-ListRoomLists.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListRoomLists { <# .FUNCTIONALITY @@ -9,32 +7,103 @@ Function Invoke-ListRoomLists { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter + $GroupID = $Request.Query.groupID + $Members = $Request.Query.members + $Owners = $Request.Query.owners try { - $params = @{ - uri = 'https://graph.microsoft.com/beta/places/microsoft.graph.roomlist' - tenantid = $TenantFilter - AsApp = $true - } - $GraphRequest = New-GraphGetRequest @params + if ($GroupID) { + # Get specific room list with detailed information + $GroupInfo = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-DistributionGroup' -cmdParams @{Identity = $GroupID } -useSystemMailbox $true | + Select-Object -ExcludeProperty *data.type* + + $Result = [PSCustomObject]@{ + groupInfo = $GroupInfo | Select-Object *, @{ Name = 'primDomain'; Expression = { $_.PrimarySmtpAddress -split '@' | Select-Object -Last 1 } } + members = @{} + owners = @{} + allowExternal = (!$GroupInfo.RequireSenderAuthenticationEnabled) + } + + # Get members if requested + if ($Members -eq 'true') { + $RoomListMembers = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-DistributionGroupMember' -cmdParams @{Identity = $GroupID } | Select-Object -ExcludeProperty *data.type* -Property @{Name = 'id'; Expression = { $_.ExternalDirectoryObjectId } }, + @{Name = 'displayName'; Expression = { $_.DisplayName } }, + @{Name = 'mail'; Expression = { $_.PrimarySmtpAddress } }, + @{Name = 'mailNickname'; Expression = { $_.Alias } }, + @{Name = 'userPrincipalName'; Expression = { $_.PrimarySmtpAddress } } + $Result.members = @($RoomListMembers) + } + + # Get owners if requested + if ($Owners -eq 'true' -and $GroupInfo.ManagedBy) { + try { + # Separate valid and invalid GUIDs + $ValidOwnerIds = [System.Collections.Generic.List[string]]::new() + $InvalidOwnerIds = [System.Collections.Generic.List[string]]::new() + + foreach ($OwnerId in $GroupInfo.ManagedBy) { + $OwnerIdString = [string]$OwnerId + # Check if it's a valid GUID format + if ($OwnerIdString -match '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$') { + $ValidOwnerIds.Add($OwnerIdString) + } else { + $InvalidOwnerIds.Add($OwnerIdString) + Write-Warning "Found invalid GUID for owner: $OwnerIdString" + } + } + + $AllOwners = [System.Collections.Generic.List[PSCustomObject]]::new() - $StatusCode = [HttpStatusCode]::OK + # Get valid owners from Graph API + if ($ValidOwnerIds.Count -gt 0) { + $body = ConvertTo-Json -InputObject @{ids = @($ValidOwnerIds) } -Compress + $OwnersData = New-GraphPOSTRequest -tenantid $TenantFilter -uri 'https://graph.microsoft.com/beta/directoryObjects/getByIds' -body $body + foreach ($Owner in $OwnersData.value) { + $AllOwners.Add($Owner) + } + } + + # Add invalid GUIDs as placeholder objects so they can be removed + foreach ($InvalidId in $InvalidOwnerIds) { + $PlaceholderOwner = [PSCustomObject]@{ + id = $InvalidId + displayName = "Invalid Owner ID: $InvalidId" + userPrincipalName = "invalid-$InvalidId" + '@odata.type' = '#microsoft.graph.user' + } + $AllOwners.Add($PlaceholderOwner) + } + + $Result.owners = @($AllOwners) + + } catch { + Write-Warning "Failed to get owners: $($_.Exception.Message)" + $Result.owners = @() + } + } + + + + $StatusCode = [HttpStatusCode]::OK + $ResponseBody = $Result + } else { + # Get all room lists (original functionality) + $RoomLists = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-DistributionGroup' -cmdParams @{RecipientTypeDetails = 'RoomList'; ResultSize = 'Unlimited' } | + Select-Object Guid, DisplayName, PrimarySmtpAddress, Alias, Phone, Identity, Notes, Description, Id -ExcludeProperty *data.type* + $StatusCode = [HttpStatusCode]::OK + $ResponseBody = @{ Results = @($RoomLists | Sort-Object DisplayName) } + } } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - $StatusCode = [HttpStatusCode]::Forbidden - $GraphRequest = $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + $ResponseBody = $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + + return ([HttpResponseContext]@{ StatusCode = $StatusCode - Body = @($GraphRequest | Sort-Object displayName) + Body = $ResponseBody }) } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-ListRooms.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-ListRooms.ps1 index fc58bfe47db8..d8756f9b6a6e 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-ListRooms.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-ListRooms.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListRooms { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ Function Invoke-ListRooms { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter $RoomId = $Request.Query.roomId @@ -91,6 +84,9 @@ Function Invoke-ListRooms { ForwardRequestsToDelegates = $CalendarProperties.ForwardRequestsToDelegates ScheduleOnlyDuringWorkHours = $CalendarProperties.ScheduleOnlyDuringWorkHours AutomateProcessing = $CalendarProperties.AutomateProcessing + AddOrganizerToSubject = $CalendarProperties.AddOrganizerToSubject + DeleteSubject = $CalendarProperties.DeleteSubject + RemoveCanceledMeetings = $CalendarProperties.RemoveCanceledMeetings # Calendar Configuration Properties WorkDays = if ([string]::IsNullOrWhiteSpace($CalendarConfigurationProperties.WorkDays)) { $null } else { $CalendarConfigurationProperties.WorkDays } @@ -173,8 +169,7 @@ Function Invoke-ListRooms { $GraphRequest = $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @($GraphRequest | Sort-Object displayName) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-AddQuarantinePolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-AddQuarantinePolicy.ps1 index 28503f12c001..248de4d06c77 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-AddQuarantinePolicy.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-AddQuarantinePolicy.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-AddQuarantinePolicy { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-AddQuarantinePolicy { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $Tenants = ($Request.body.selectedTenants).value @@ -58,8 +56,7 @@ Function Invoke-AddQuarantinePolicy { } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @{Results = @($Result) } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-AddSpamFilter.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-AddSpamFilter.ps1 index 10d902c7a9cb..c01f5d98d6d3 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-AddSpamFilter.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-AddSpamFilter.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-AddSpamFilter { <# .FUNCTIONALITY @@ -13,7 +11,7 @@ Function Invoke-AddSpamFilter { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $RequestParams = $Request.Body.PowerShellCommand | ConvertFrom-Json | Select-Object -Property * -ExcludeProperty GUID, comments $RequestPriority = $Request.Body.Priority @@ -40,8 +38,7 @@ Function Invoke-AddSpamFilter { } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @{Results = @($Result) } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-AddSpamFilterTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-AddSpamFilterTemplate.ps1 index 721caee1e338..d371af5d956f 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-AddSpamFilterTemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-AddSpamFilterTemplate.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-AddSpamFilterTemplate { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-AddSpamFilterTemplate { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + try { $GUID = (New-Guid).GUID @@ -44,8 +42,7 @@ Function Invoke-AddSpamFilterTemplate { } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{Results = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-AddTenantAllowBlockList.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-AddTenantAllowBlockList.ps1 index e04e28394375..1d8e0d727b05 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-AddTenantAllowBlockList.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-AddTenantAllowBlockList.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-AddTenantAllowBlockList { +function Invoke-AddTenantAllowBlockList { <# .FUNCTIONALITY Entrypoint @@ -12,16 +10,23 @@ Function Invoke-AddTenantAllowBlockList { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' $BlockListObject = $Request.Body - if ($Request.Body.tenantId -eq 'AllTenants') { $Tenants = (Get-Tenants).defaultDomainName } else { $Tenants = @($Request.body.tenantId) } + $TenantID = $Request.Body.tenantID.value ?? $Request.Body.tenantID + + if ($TenantID -eq 'AllTenants') { + $Tenants = (Get-Tenants).defaultDomainName + } elseif ($TenantID -is [array]) { + $Tenants = $TenantID + } else { + $Tenants = @($TenantID) + } $Results = [System.Collections.Generic.List[string]]::new() $Entries = @() if ($BlockListObject.entries -is [array]) { $Entries = $BlockListObject.entries } else { - $Entries = @($BlockListObject.entries -split "[,;]" | Where-Object { $_ -ne "" } | ForEach-Object { $_.Trim() }) + $Entries = @($BlockListObject.entries -split '[,;]' | Where-Object { -not [string]::IsNullOrWhiteSpace($_) } | ForEach-Object { $_.Trim() }) } foreach ($Tenant in $Tenants) { try { @@ -43,20 +48,20 @@ Function Invoke-AddTenantAllowBlockList { } New-ExoRequest @ExoRequest - - $results.add("Successfully added $($BlockListObject.Entries) as type $($BlockListObject.ListType) to the $($BlockListObject.listMethod) list for $tenant") - Write-LogMessage -headers $Request.Headers -API $APIName -tenant $Tenant -message $result -Sev 'Info' + $Result = "Successfully added $($BlockListObject.Entries) as type $($BlockListObject.ListType) to the $($BlockListObject.listMethod) list for $tenant" + $Results.Add($Result) + Write-LogMessage -headers $Headers -API $APIName -tenant $Tenant -message $Result -Sev 'Info' } catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - $results.add("Failed to create blocklist. Error: $ErrorMessage") - Write-LogMessage -headers $Request.Headers -API $APIName -tenant $Tenant -message $result -Sev 'Error' + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to create blocklist. Error: $($ErrorMessage.NormalizedError)" + $Results.Add($Result) + Write-LogMessage -headers $Headers -API $APIName -tenant $Tenant -message $Result -Sev 'Error' -LogData $ErrorMessage } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @{ - 'Results' = $results + 'Results' = $Results 'Request' = $ExoRequest } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-EditAntiPhishingFilter.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-EditAntiPhishingFilter.ps1 index 002f78839f1b..f8fe23dadea5 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-EditAntiPhishingFilter.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-EditAntiPhishingFilter.ps1 @@ -3,14 +3,14 @@ function Invoke-EditAntiPhishingFilter { .FUNCTIONALITY Entrypoint .ROLE - Exchange.SpamFilter.Read + Exchange.SpamFilter.ReadWrite #> [CmdletBinding()] param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APINAME -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter @@ -33,7 +33,7 @@ function Invoke-EditAntiPhishingFilter { 'Disable' { $ExoRequestParam.Add('cmdlet', 'Disable-AntiPhishRule') } - Default { + default { throw 'Invalid state' } } @@ -49,8 +49,7 @@ function Invoke-EditAntiPhishingFilter { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{Results = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-EditMalwareFilter.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-EditMalwareFilter.ps1 index bb599a80f6f3..abb210506e71 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-EditMalwareFilter.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-EditMalwareFilter.ps1 @@ -3,14 +3,14 @@ function Invoke-EditMalwareFilter { .FUNCTIONALITY Entrypoint .ROLE - Exchange.SpamFilter.Read + Exchange.SpamFilter.ReadWrite #> [CmdletBinding()] param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APINAME -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter @@ -33,7 +33,7 @@ function Invoke-EditMalwareFilter { 'Disable' { $ExoRequestParam.Add('cmdlet', 'Disable-MalwareFilterRule') } - Default { + default { throw 'Invalid state' } } @@ -49,8 +49,7 @@ function Invoke-EditMalwareFilter { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{Results = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-EditQuarantinePolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-EditQuarantinePolicy.ps1 index a71d3700efae..78fd2caad2d6 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-EditQuarantinePolicy.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-EditQuarantinePolicy.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-EditQuarantinePolicy { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-EditQuarantinePolicy { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $TenantFilter = $Request.Query.TenantFilter ?? $Request.Body.TenantFilter @@ -70,8 +68,7 @@ Function Invoke-EditQuarantinePolicy { Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev Error -LogData $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{Results = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-EditSafeAttachmentsFilter.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-EditSafeAttachmentsFilter.ps1 index 1adb00b34010..9f34e4b143a3 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-EditSafeAttachmentsFilter.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-EditSafeAttachmentsFilter.ps1 @@ -3,14 +3,14 @@ function Invoke-EditSafeAttachmentsFilter { .FUNCTIONALITY Entrypoint .ROLE - Exchange.SpamFilter.Read + Exchange.SpamFilter.ReadWrite #> [CmdletBinding()] param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter @@ -33,7 +33,7 @@ function Invoke-EditSafeAttachmentsFilter { 'Disable' { $ExoRequestParam.Add('cmdlet', 'Disable-SafeAttachmentRule') } - Default { + default { throw 'Invalid state' } } @@ -49,8 +49,7 @@ function Invoke-EditSafeAttachmentsFilter { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{Results = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-EditSpamFilter.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-EditSpamFilter.ps1 index c240cd6db65b..76cd97f27b90 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-EditSpamFilter.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-EditSpamFilter.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-EditSpamFilter { <# .FUNCTIONALITY @@ -11,9 +9,6 @@ Function Invoke-EditSpamFilter { param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $TenantFilter = $request.Query.tenantFilter $Name = $Request.Query.name ?? $Request.Body.name $State = $State ?? $Request.Body.state @@ -33,8 +28,7 @@ Function Invoke-EditSpamFilter { Write-LogMessage -headers $Request.Headers -API $APIName -tenant $TenantFilter -message $Result -Sev 'Error' -LogData $ErrorMessage $StatusCode = [HttpStatusCode]::Forbidden } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{Results = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ExecQuarantineManagement.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ExecQuarantineManagement.ps1 index 3f2dc78cafa3..575cd3a03806 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ExecQuarantineManagement.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ExecQuarantineManagement.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ExecQuarantineManagement { +function Invoke-ExecQuarantineManagement { <# .FUNCTIONALITY Entrypoint @@ -11,15 +9,8 @@ Function Invoke-ExecQuarantineManagement { param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - - - - # Interact with query parameters or the body of the request. - Try { + try { $TenantFilter = $Request.Body.tenantFilter | Select-Object -First 1 $params = @{ AllowSender = [boolean]$Request.Body.AllowSender @@ -38,8 +29,7 @@ Function Invoke-ExecQuarantineManagement { Write-LogMessage -headers $Request.Headers -API $APINAME -tenant $TenantFilter -message "Quarantine Management failed: $($_.Exception.Message)" -Sev 'Error' -LogData $_ $Results = [pscustomobject]@{'Results' = "Failed. $($_.Exception.Message)" } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Results }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListConnectionFilter.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListConnectionFilter.ps1 index 82d6a7919596..20b531f56a56 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListConnectionFilter.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListConnectionFilter.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ListConnectionFilter { +function Invoke-ListConnectionFilter { <# .FUNCTIONALITY Entrypoint @@ -9,14 +7,10 @@ Function Invoke-ListConnectionFilter { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $Tenantfilter = $request.Query.tenantfilter + $TenantFilter = $request.Query.tenantFilter try { - $Policies = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-HostedConnectionFilterPolicy' | Select-Object * -ExcludeProperty *odata*, *data.type* + $Policies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-HostedConnectionFilterPolicy' | Select-Object * -ExcludeProperty *odata*, *data.type* $StatusCode = [HttpStatusCode]::OK } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message @@ -24,8 +18,7 @@ Function Invoke-ListConnectionFilter { $Policies = $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @($Policies) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListConnectionFilterTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListConnectionFilterTemplates.ps1 index ddca12e5b200..6ae0ccc0e18e 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListConnectionFilterTemplates.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListConnectionFilterTemplates.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListConnectionFilterTemplates { <# .FUNCTIONALITY @@ -9,10 +7,6 @@ Function Invoke-ListConnectionFilterTemplates { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' $Table = Get-CippTable -tablename 'templates' #List new policies @@ -28,8 +22,7 @@ Function Invoke-ListConnectionFilterTemplates { if ($Request.query.ID) { $Templates = $Templates | Where-Object -Property RowKey -EQ $Request.query.id } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($Templates) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListMailQuarantine.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListMailQuarantine.ps1 index a3d2f2629e95..d785b015f940 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListMailQuarantine.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListMailQuarantine.ps1 @@ -3,15 +3,10 @@ function Invoke-ListMailQuarantine { .FUNCTIONALITY Entrypoint .ROLE - Exchange.SpamFilter.ReadWrite + Exchange.SpamFilter.Read #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter @@ -24,14 +19,12 @@ function Invoke-ListMailQuarantine { $Filter = "PartitionKey eq '$PartitionKey'" $Rows = Get-CIPPAzDataTableEntity @Table -filter $Filter | Where-Object -Property Timestamp -GT (Get-Date).AddMinutes(-30) $QueueReference = '{0}-{1}' -f $TenantFilter, $PartitionKey - $RunningQueue = Invoke-ListCippQueue | Where-Object { $_.Reference -eq $QueueReference -and $_.Status -notmatch 'Completed' -and $_.Status -notmatch 'Failed' } + $RunningQueue = Invoke-ListCippQueue -Reference $QueueReference | Where-Object { $_.Status -notmatch 'Completed' -and $_.Status -notmatch 'Failed' } # If a queue is running, we will not start a new one if ($RunningQueue) { $Metadata = [PSCustomObject]@{ QueueMessage = 'Still loading data for all tenants. Please check back in a few more minutes' - } - [PSCustomObject]@{ - Waiting = $true + QueueId = $RunningQueue.RowKey } } elseif (!$Rows -and !$RunningQueue) { # If no rows are found and no queue is running, we will start a new one @@ -39,6 +32,7 @@ function Invoke-ListMailQuarantine { $Queue = New-CippQueueEntry -Name 'Mail Quarantine - All Tenants' -Reference $QueueReference -TotalTasks ($TenantList | Measure-Object).Count $Metadata = [PSCustomObject]@{ QueueMessage = 'Loading data for all tenants. Please check back in a few minutes' + QueueId = $Queue.RowKey } $InputObject = [PSCustomObject]@{ OrchestratorName = 'MailQuarantineOrchestrator' @@ -52,13 +46,13 @@ function Invoke-ListMailQuarantine { } SkipLog = $true } - Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) - [PSCustomObject]@{ - Waiting = $true - } + $null = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) } else { - $messages = $Rows - foreach ($message in $messages) { + $Metadata = [PSCustomObject]@{ + QueueId = $RunningQueue.RowKey ?? $null + } + $Messages = $Rows + foreach ($message in $Messages) { $messageObj = $message.QuarantineMessage | ConvertFrom-Json $messageObj | Add-Member -NotePropertyName 'Tenant' -NotePropertyValue $message.Tenant -Force $messageObj @@ -80,8 +74,7 @@ function Invoke-ListMailQuarantine { } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListMailQuarantineMessage.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListMailQuarantineMessage.ps1 index efbb5ee9bc38..d83c59360755 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListMailQuarantineMessage.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListMailQuarantineMessage.ps1 @@ -3,15 +3,10 @@ function Invoke-ListMailQuarantineMessage { .FUNCTIONALITY Entrypoint .ROLE - Exchange.SpamFilter.ReadWrite + Exchange.SpamFilter.Read #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter $Identity = $Request.Query.Identity @@ -31,8 +26,7 @@ function Invoke-ListMailQuarantineMessage { $Body = $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListQuarantinePolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListQuarantinePolicy.ps1 index 7cc4ed4204d5..79ef6d2c172f 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListQuarantinePolicy.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListQuarantinePolicy.ps1 @@ -7,11 +7,6 @@ function Invoke-ListQuarantinePolicy { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.TenantFilter ?? $Request.body.TenantFilter $QuarantinePolicyType = $Request.Query.Type ?? 'QuarantinePolicy' @@ -35,8 +30,7 @@ function Invoke-ListQuarantinePolicy { } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($Policies) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListSpamFilterTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListSpamFilterTemplates.ps1 index f31053b3a991..2c2ec2be3037 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListSpamFilterTemplates.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListSpamFilterTemplates.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListSpamFilterTemplates { <# .FUNCTIONALITY @@ -9,10 +7,6 @@ Function Invoke-ListSpamFilterTemplates { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' $Table = Get-CippTable -tablename 'templates' #List new policies @@ -28,8 +22,7 @@ Function Invoke-ListSpamFilterTemplates { if ($Request.query.ID) { $Templates = $Templates | Where-Object -Property RowKey -EQ $Request.query.id } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($Templates) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListSpamfilter.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListSpamfilter.ps1 index d73d6ec45066..34ac01d062bc 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListSpamfilter.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListSpamfilter.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListSpamfilter { <# .FUNCTIONALITY @@ -9,10 +7,6 @@ Function Invoke-ListSpamfilter { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' $Tenantfilter = $request.Query.tenantfilter try { @@ -26,8 +20,7 @@ Function Invoke-ListSpamfilter { $GraphRequest = $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @($GraphRequest) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-RemoveConnectionfilterTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-RemoveConnectionfilterTemplate.ps1 index c472b44a4382..0d2ce06f4561 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-RemoveConnectionfilterTemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-RemoveConnectionfilterTemplate.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-RemoveConnectionfilterTemplate { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-RemoveConnectionfilterTemplate { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $ID = $Request.body.ID try { @@ -31,8 +29,7 @@ Function Invoke-RemoveConnectionfilterTemplate { } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{'Results' = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-RemoveQuarantinePolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-RemoveQuarantinePolicy.ps1 index 986112ecd543..816ef2401e89 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-RemoveQuarantinePolicy.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-RemoveQuarantinePolicy.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-RemoveQuarantinePolicy { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-RemoveQuarantinePolicy { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $TenantFilter = $Request.Query.TenantFilter ?? $Request.Body.TenantFilter $PolicyName = $Request.Query.Name ?? $Request.Body.Name $Identity = $Request.Query.Identity ?? $Request.Body.Identity @@ -36,8 +34,7 @@ Function Invoke-RemoveQuarantinePolicy { $StatusCode = [HttpStatusCode]::OK - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{Results = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-RemoveSpamfilter.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-RemoveSpamfilter.ps1 index 802139a386d7..1c5e5e019b1a 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-RemoveSpamfilter.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-RemoveSpamfilter.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-RemoveSpamfilter { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-RemoveSpamfilter { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Query.tenantFilter $Name = $Request.Query.name ?? $Request.Body.name @@ -34,8 +32,7 @@ Function Invoke-RemoveSpamfilter { Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev Error -LogData $ErrorMessage $StatusCode = [HttpStatusCode]::Forbidden } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{Results = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-RemoveSpamfilterTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-RemoveSpamfilterTemplate.ps1 index e21d916ec5ee..4db800aeb494 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-RemoveSpamfilterTemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-RemoveSpamfilterTemplate.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-RemoveSpamfilterTemplate { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-RemoveSpamfilterTemplate { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $ID = $Request.Body.ID try { @@ -31,8 +29,7 @@ Function Invoke-RemoveSpamfilterTemplate { } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{'Results' = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ExecMailTest.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ExecMailTest.ps1 index eb12dae07b53..b4d8e390b585 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ExecMailTest.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ExecMailTest.ps1 @@ -1,4 +1,3 @@ -using namespace System.Net Function Invoke-ExecMailTest { <# .FUNCTIONALITY @@ -8,11 +7,6 @@ Function Invoke-ExecMailTest { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - try { switch ($Request.Query.Action) { 'CheckConfig' { @@ -82,8 +76,7 @@ Function Invoke-ExecMailTest { Results = @($ErrorMessage) } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ExecMailboxRestore.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ExecMailboxRestore.ps1 index 8e46b2d163bb..eebb3e554d11 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ExecMailboxRestore.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ExecMailboxRestore.ps1 @@ -6,45 +6,43 @@ function Invoke-ExecMailboxRestore { Exchange.Mailbox.ReadWrite #> Param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - try { - switch ($Request.Query.Action) { + $Action = $Request.Query.Action ?? $Request.Body.Action + $Identity = $Request.Query.Identity ?? $Request.Body.Identity + $TenantFilter = $Request.Query.TenantFilter ?? $Request.Body.TenantFilter + + switch ($Action) { 'Remove' { $ExoRequest = @{ - tenantid = $Request.Query.TenantFilter + tenantid = $TenantFilter cmdlet = 'Remove-MailboxRestoreRequest' cmdParams = @{ - Identity = $Request.Query.Identity + Identity = $Identity } } $SuccessMessage = 'Mailbox restore request removed successfully' } 'Resume' { $ExoRequest = @{ - tenantid = $Request.Query.TenantFilter + tenantid = $TenantFilter cmdlet = 'Resume-MailboxRestoreRequest' cmdParams = @{ - Identity = $Request.Query.Identity + Identity = $Identity } } $SuccessMessage = 'Mailbox restore request resumed successfully' } 'Suspend' { $ExoRequest = @{ - tenantid = $Request.Query.TenantFilter + tenantid = $TenantFilter cmdlet = 'Suspend-MailboxRestoreRequest' cmdParams = @{ - Identity = $Request.Query.Identity + Identity = $Identity } } $SuccessMessage = 'Mailbox restore request suspended successfully' } default { - $TenantFilter = $Request.Body.TenantFilter $RequestName = $Request.Body.RequestName $SourceMailbox = $Request.Body.SourceMailbox.value ?? $Request.Body.SourceMailbox $TargetMailbox = $Request.Body.TargetMailbox.value ?? $Request.Body.TargetMailbox @@ -123,8 +121,7 @@ function Invoke-ExecMailboxRestore { colour = 'danger' } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ListExoRequest.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ListExoRequest.ps1 index c64c99a7ee92..e0ec0e5407d0 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ListExoRequest.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ListExoRequest.ps1 @@ -1,10 +1,11 @@ function Invoke-ListExoRequest { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Core.Read + #> param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - try { $AllowedVerbs = @( 'Get' @@ -44,7 +45,7 @@ function Invoke-ListExoRequest { $Body = [pscustomobject]@{ Results = "Invalid cmdlet: $Cmdlet" } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::BadRequest Body = $Body }) @@ -96,7 +97,7 @@ function Invoke-ListExoRequest { } catch { Write-Information "ExoRequest Error: $($_.Exception.Message)" } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = ConvertTo-Json -InputObject $Body -Compress }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ListMailboxRestores.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ListMailboxRestores.ps1 index 60b496ac2128..bb1dff0b0cfb 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ListMailboxRestores.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ListMailboxRestores.ps1 @@ -6,11 +6,6 @@ function Invoke-ListMailboxRestores { Exchange.Mailbox.Read #> param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.TenantFilter try { @@ -42,8 +37,7 @@ function Invoke-ListMailboxRestores { $StatusCode = [HttpStatusCode]::Forbidden $GraphRequest = $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @($GraphRequest) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ListMessageTrace.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ListMessageTrace.ps1 index 13f1f68a5fde..2822893a97ac 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ListMessageTrace.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ListMessageTrace.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ListMessageTrace { +function Invoke-ListMessageTrace { <# .FUNCTIONALITY Entrypoint @@ -11,9 +9,6 @@ Function Invoke-ListMessageTrace { param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - try { $TenantFilter = $Request.Body.tenantFilter @@ -65,11 +60,11 @@ Function Invoke-ListMessageTrace { MessageTraceId = $Request.Body.ID RecipientAddress = $Request.Body.recipient } - New-ExoRequest -TenantId $TenantFilter -Cmdlet 'Get-MessageTraceDetail' -CmdParams $CmdParams | Select-Object @{ Name = 'Date'; Expression = { $_.Date.ToString('u') } }, Event, Action, Detail + New-ExoRequest -TenantId $TenantFilter -Cmdlet 'Get-MessageTraceDetailV2' -CmdParams $CmdParams | Select-Object @{ Name = 'Date'; Expression = { $_.Date.ToString('u') } }, Event, Action, Detail } else { Write-Information ($SearchParams | ConvertTo-Json) - New-ExoRequest -TenantId $TenantFilter -Cmdlet 'Get-MessageTrace' -CmdParams $SearchParams | Select-Object MessageTraceId, Status, Subject, RecipientAddress, SenderAddress, @{ Name = 'Received'; Expression = { $_.Received.ToString('u') } }, FromIP, ToIP + New-ExoRequest -TenantId $TenantFilter -Cmdlet 'Get-MessageTraceV2' -CmdParams $SearchParams | Select-Object MessageTraceId, Status, Subject, RecipientAddress, SenderAddress, @{ Name = 'Received'; Expression = { $_.Received.ToString('u') } }, FromIP, ToIP Write-LogMessage -headers $Request.Headers -API $APIName -tenant $($TenantFilter) -message 'Executed message trace' -Sev 'Info' } @@ -78,8 +73,7 @@ Function Invoke-ListMessageTrace { $trace = @{Status = "Failed to retrieve message trace $($_.Exception.Message)" } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($trace) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddConnectionFilter.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddConnectionFilter.ps1 index c5443c3f5010..831d2de8801f 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddConnectionFilter.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddConnectionFilter.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-AddConnectionFilter { <# .FUNCTIONALITY @@ -13,7 +11,7 @@ Function Invoke-AddConnectionFilter { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $RequestParams = $Request.Body.PowerShellCommand | ConvertFrom-Json | @@ -32,8 +30,7 @@ Function Invoke-AddConnectionFilter { } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @{Results = @($Result) } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddConnectionFilterTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddConnectionFilterTemplate.ps1 index e01c896abf06..7b7709391e2e 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddConnectionFilterTemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddConnectionFilterTemplate.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-AddConnectionFilterTemplate { +function Invoke-AddConnectionFilterTemplate { <# .FUNCTIONALITY Entrypoint,AnyTenant @@ -12,7 +10,7 @@ Function Invoke-AddConnectionFilterTemplate { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + Write-Host ($request | ConvertTo-Json -Compress) @@ -23,7 +21,7 @@ Function Invoke-AddConnectionFilterTemplate { $request.body.PowerShellCommand | ConvertFrom-Json } else { $GUID = (New-Guid).GUID - ([pscustomobject]$Request.body | Select-Object Name, EnableSafeList, IPAllowList , IPBlockList ) | ForEach-Object { + ([pscustomobject]$Request.body | Select-Object Name, EnableSafeList, IPAllowList , IPBlockList ) | ForEach-Object { $NonEmptyProperties = $_.psobject.Properties | Where-Object { $null -ne $_.Value } | Select-Object -ExpandProperty Name $_ | Select-Object -Property $NonEmptyProperties } @@ -47,8 +45,7 @@ Function Invoke-AddConnectionFilterTemplate { } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{Results = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddEditTransportRule.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddEditTransportRule.ps1 new file mode 100644 index 000000000000..6d0cae8a4d61 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddEditTransportRule.ps1 @@ -0,0 +1,632 @@ +function Invoke-AddEditTransportRule { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.TransportRule.ReadWrite + .DESCRIPTION + This function creates a new transport rule or edits an existing one (mail flow rule). + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Body.tenantFilter + + if (!$TenantFilter) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = 'TenantFilter is required' + }) + return + } + + # Extract basic rule settings from body + $Identity = $Request.Body.ruleId + $Name = $Request.Body.Name + $Priority = $Request.Body.Priority + $Comments = $Request.Body.Comments + $Mode = $Request.Body.Mode + $SetAuditSeverity = $Request.Body.SetAuditSeverity + $State = $Request.Body.State + $CmdletState = $Request.Body.State ?? $Request.Body.Enabled + $Enabled = $Request.Body.Enabled + $StopRuleProcessing = $Request.Body.StopRuleProcessing + $SenderAddressLocation = $Request.Body.SenderAddressLocation + $ActivationDate = $Request.Body.ActivationDate + $ExpiryDate = $Request.Body.ExpiryDate + + # Extract condition fields + $From = $Request.Body.From + $FromScope = $Request.Body.FromScope + $FromMemberOf = $Request.Body.FromMemberOf + $SentTo = $Request.Body.SentTo + $SentToScope = $Request.Body.SentToScope + $SentToMemberOf = $Request.Body.SentToMemberOf + $SubjectContainsWords = $Request.Body.SubjectContainsWords + $SubjectMatchesPatterns = $Request.Body.SubjectMatchesPatterns + $SubjectOrBodyContainsWords = $Request.Body.SubjectOrBodyContainsWords + $SubjectOrBodyMatchesPatterns = $Request.Body.SubjectOrBodyMatchesPatterns + $FromAddressContainsWords = $Request.Body.FromAddressContainsWords + $FromAddressMatchesPatterns = $Request.Body.FromAddressMatchesPatterns + $AttachmentContainsWords = $Request.Body.AttachmentContainsWords + $AttachmentMatchesPatterns = $Request.Body.AttachmentMatchesPatterns + $AttachmentExtensionMatchesWords = $Request.Body.AttachmentExtensionMatchesWords + $AttachmentSizeOver = $Request.Body.AttachmentSizeOver + $MessageSizeOver = $Request.Body.MessageSizeOver + $SCLOver = $Request.Body.SCLOver + $WithImportance = $Request.Body.WithImportance + $MessageTypeMatches = $Request.Body.MessageTypeMatches + $SenderDomainIs = $Request.Body.SenderDomainIs + $RecipientDomainIs = $Request.Body.RecipientDomainIs + $RecipientAddressContainsWords = $Request.Body.RecipientAddressContainsWords + $RecipientAddressMatchesPatterns = $Request.Body.RecipientAddressMatchesPatterns + $AnyOfRecipientAddressContainsWords = $Request.Body.AnyOfRecipientAddressContainsWords + $AnyOfRecipientAddressMatchesPatterns = $Request.Body.AnyOfRecipientAddressMatchesPatterns + $AnyOfToHeader = $Request.Body.AnyOfToHeader + $AnyOfToHeaderMemberOf = $Request.Body.AnyOfToHeaderMemberOf + $AnyOfCcHeader = $Request.Body.AnyOfCcHeader + $AnyOfCcHeaderMemberOf = $Request.Body.AnyOfCcHeaderMemberOf + $AnyOfToCcHeader = $Request.Body.AnyOfToCcHeader + $AnyOfToCcHeaderMemberOf = $Request.Body.AnyOfToCcHeaderMemberOf + $HeaderContainsWords = $Request.Body.HeaderContainsWords + $HeaderContainsWordsMessageHeader = $Request.Body.HeaderContainsWordsMessageHeader + $HeaderMatchesPatterns = $Request.Body.HeaderMatchesPatterns + $HeaderMatchesPatternsMessageHeader = $Request.Body.HeaderMatchesPatternsMessageHeader + $SenderIpRanges = $Request.Body.SenderIpRanges + + # Extract action fields + $DeleteMessage = $Request.Body.DeleteMessage + $Quarantine = $Request.Body.Quarantine + $RedirectMessageTo = $Request.Body.RedirectMessageTo + $BlindCopyTo = $Request.Body.BlindCopyTo + $CopyTo = $Request.Body.CopyTo + $ModerateMessageByUser = $Request.Body.ModerateMessageByUser + $ModerateMessageByManager = $Request.Body.ModerateMessageByManager + $RejectMessageReasonText = $Request.Body.RejectMessageReasonText + $RejectMessageEnhancedStatusCode = $Request.Body.RejectMessageEnhancedStatusCode + $PrependSubject = $Request.Body.PrependSubject + $SetSCL = $Request.Body.SetSCL + $SetHeaderName = $Request.Body.SetHeaderName + $SetHeaderValue = $Request.Body.SetHeaderValue + $RemoveHeader = $Request.Body.RemoveHeader + $ApplyClassification = $Request.Body.ApplyClassification + $ApplyHtmlDisclaimerText = $Request.Body.ApplyHtmlDisclaimerText + $ApplyHtmlDisclaimerLocation = $Request.Body.ApplyHtmlDisclaimerLocation + $ApplyHtmlDisclaimerFallbackAction = $Request.Body.ApplyHtmlDisclaimerFallbackAction + $GenerateIncidentReport = $Request.Body.GenerateIncidentReport + $GenerateNotification = $Request.Body.GenerateNotification + $ApplyOME = $Request.Body.ApplyOME + + # Extract exception fields (ExceptIf versions) + $ExceptIfFrom = $Request.Body.ExceptIfFrom + $ExceptIfFromScope = $Request.Body.ExceptIfFromScope + $ExceptIfFromMemberOf = $Request.Body.ExceptIfFromMemberOf + $ExceptIfSentTo = $Request.Body.ExceptIfSentTo + $ExceptIfSentToScope = $Request.Body.ExceptIfSentToScope + $ExceptIfSentToMemberOf = $Request.Body.ExceptIfSentToMemberOf + $ExceptIfSubjectContainsWords = $Request.Body.ExceptIfSubjectContainsWords + $ExceptIfSubjectMatchesPatterns = $Request.Body.ExceptIfSubjectMatchesPatterns + $ExceptIfSubjectOrBodyContainsWords = $Request.Body.ExceptIfSubjectOrBodyContainsWords + $ExceptIfSubjectOrBodyMatchesPatterns = $Request.Body.ExceptIfSubjectOrBodyMatchesPatterns + $ExceptIfFromAddressContainsWords = $Request.Body.ExceptIfFromAddressContainsWords + $ExceptIfFromAddressMatchesPatterns = $Request.Body.ExceptIfFromAddressMatchesPatterns + $ExceptIfAttachmentContainsWords = $Request.Body.ExceptIfAttachmentContainsWords + $ExceptIfAttachmentMatchesPatterns = $Request.Body.ExceptIfAttachmentMatchesPatterns + $ExceptIfAttachmentExtensionMatchesWords = $Request.Body.ExceptIfAttachmentExtensionMatchesWords + $ExceptIfAttachmentSizeOver = $Request.Body.ExceptIfAttachmentSizeOver + $ExceptIfMessageSizeOver = $Request.Body.ExceptIfMessageSizeOver + $ExceptIfSCLOver = $Request.Body.ExceptIfSCLOver + $ExceptIfWithImportance = $Request.Body.ExceptIfWithImportance + $ExceptIfMessageTypeMatches = $Request.Body.ExceptIfMessageTypeMatches + $ExceptIfSenderDomainIs = $Request.Body.ExceptIfSenderDomainIs + $ExceptIfRecipientDomainIs = $Request.Body.ExceptIfRecipientDomainIs + $ExceptIfRecipientAddressContainsWords = $Request.Body.ExceptIfRecipientAddressContainsWords + $ExceptIfRecipientAddressMatchesPatterns = $Request.Body.ExceptIfRecipientAddressMatchesPatterns + $ExceptIfAnyOfRecipientAddressContainsWords = $Request.Body.ExceptIfAnyOfRecipientAddressContainsWords + $ExceptIfAnyOfRecipientAddressMatchesPatterns = $Request.Body.ExceptIfAnyOfRecipientAddressMatchesPatterns + $ExceptIfAnyOfToHeader = $Request.Body.ExceptIfAnyOfToHeader + $ExceptIfAnyOfToHeaderMemberOf = $Request.Body.ExceptIfAnyOfToHeaderMemberOf + $ExceptIfAnyOfCcHeader = $Request.Body.ExceptIfAnyOfCcHeader + $ExceptIfAnyOfCcHeaderMemberOf = $Request.Body.ExceptIfAnyOfCcHeaderMemberOf + $ExceptIfAnyOfToCcHeader = $Request.Body.ExceptIfAnyOfToCcHeader + $ExceptIfAnyOfToCcHeaderMemberOf = $Request.Body.ExceptIfAnyOfToCcHeaderMemberOf + $ExceptIfHeaderContainsWords = $Request.Body.ExceptIfHeaderContainsWords + $ExceptIfHeaderContainsWordsMessageHeader = $Request.Body.ExceptIfHeaderContainsWordsMessageHeader + $ExceptIfHeaderMatchesPatterns = $Request.Body.ExceptIfHeaderMatchesPatterns + $ExceptIfHeaderMatchesPatternsMessageHeader = $Request.Body.ExceptIfHeaderMatchesPatternsMessageHeader + $ExceptIfSenderIpRanges = $Request.Body.ExceptIfSenderIpRanges + + # Helper function to process array fields + function Process-ArrayField { + param ( + [Parameter(Mandatory = $false)] + $Field + ) + + if ($null -eq $Field) { return @() } + + # If already an array, process each item + if ($Field -is [array]) { + $result = [System.Collections.ArrayList]@() + foreach ($item in $Field) { + if ($item -is [string]) { + $result.Add($item) | Out-Null + } elseif ($item -is [hashtable] -or $item -is [PSCustomObject]) { + # Extract value from object + if ($null -ne $item.value) { + $result.Add($item.value) | Out-Null + } elseif ($null -ne $item.userPrincipalName) { + $result.Add($item.userPrincipalName) | Out-Null + } elseif ($null -ne $item.id) { + $result.Add($item.id) | Out-Null + } else { + $result.Add($item.ToString()) | Out-Null + } + } else { + $result.Add($item.ToString()) | Out-Null + } + } + return $result.ToArray() + } + + # If it's a single object + if ($Field -is [hashtable] -or $Field -is [PSCustomObject]) { + if ($null -ne $Field.value) { return @($Field.value) } + if ($null -ne $Field.userPrincipalName) { return @($Field.userPrincipalName) } + if ($null -ne $Field.id) { return @($Field.id) } + } + + # If it's a string, return as an array with one item + if ($Field -is [string]) { + return @($Field) + } + + return @($Field) + } + + # Helper function to process comma-separated text fields into arrays + function Process-TextArrayField { + param ( + [Parameter(Mandatory = $false)] + $Field + ) + + if ($null -eq $Field -or $Field -eq '') { return @() } + + if ($Field -is [array]) { + return $Field + } + + if ($Field -is [string]) { + # Split by comma and trim whitespace + return ($Field -split ',' | ForEach-Object { $_.Trim() } | Where-Object { $_ -ne '' }) + } + + return @($Field) + } + + # Convert state to bool when creating new rule + if ($State -eq "Disabled") { + $State = $false + } + + if ($State -eq "Enabled") { + $State = $true + } + + if ($Enabled -eq "Disabled") { + $State = $false + } + + if ($Enabled -eq "Enabled") { + $State = $true + } + + # Process array fields for recipients/users + $From = Process-ArrayField -Field $From + $FromMemberOf = Process-ArrayField -Field $FromMemberOf + $SentTo = Process-ArrayField -Field $SentTo + $SentToMemberOf = Process-ArrayField -Field $SentToMemberOf + $AnyOfToHeader = Process-ArrayField -Field $AnyOfToHeader + $AnyOfToHeaderMemberOf = Process-ArrayField -Field $AnyOfToHeaderMemberOf + $AnyOfCcHeader = Process-ArrayField -Field $AnyOfCcHeader + $AnyOfCcHeaderMemberOf = Process-ArrayField -Field $AnyOfCcHeaderMemberOf + $AnyOfToCcHeader = Process-ArrayField -Field $AnyOfToCcHeader + $AnyOfToCcHeaderMemberOf = Process-ArrayField -Field $AnyOfToCcHeaderMemberOf + $RedirectMessageTo = Process-ArrayField -Field $RedirectMessageTo + $BlindCopyTo = Process-ArrayField -Field $BlindCopyTo + $CopyTo = Process-ArrayField -Field $CopyTo + $ModerateMessageByUser = Process-ArrayField -Field $ModerateMessageByUser + $ExceptIfFrom = Process-ArrayField -Field $ExceptIfFrom + $ExceptIfFromMemberOf = Process-ArrayField -Field $ExceptIfFromMemberOf + $ExceptIfSentTo = Process-ArrayField -Field $ExceptIfSentTo + $ExceptIfSentToMemberOf = Process-ArrayField -Field $ExceptIfSentToMemberOf + $ExceptIfAnyOfToHeader = Process-ArrayField -Field $ExceptIfAnyOfToHeader + $ExceptIfAnyOfToHeaderMemberOf = Process-ArrayField -Field $ExceptIfAnyOfToHeaderMemberOf + $ExceptIfAnyOfCcHeader = Process-ArrayField -Field $ExceptIfAnyOfCcHeader + $ExceptIfAnyOfCcHeaderMemberOf = Process-ArrayField -Field $ExceptIfAnyOfCcHeaderMemberOf + $ExceptIfAnyOfToCcHeader = Process-ArrayField -Field $ExceptIfAnyOfToCcHeader + $ExceptIfAnyOfToCcHeaderMemberOf = Process-ArrayField -Field $ExceptIfAnyOfToCcHeaderMemberOf + $SenderDomainIs = Process-ArrayField -Field $SenderDomainIs + $RecipientDomainIs = Process-ArrayField -Field $RecipientDomainIs + $ExceptIfSenderDomainIs = Process-ArrayField -Field $ExceptIfSenderDomainIs + $ExceptIfRecipientDomainIs = Process-ArrayField -Field $ExceptIfRecipientDomainIs + + # Process text array fields (comma-separated strings) + $SubjectContainsWords = Process-TextArrayField -Field $SubjectContainsWords + $SubjectMatchesPatterns = Process-TextArrayField -Field $SubjectMatchesPatterns + $SubjectOrBodyContainsWords = Process-TextArrayField -Field $SubjectOrBodyContainsWords + $SubjectOrBodyMatchesPatterns = Process-TextArrayField -Field $SubjectOrBodyMatchesPatterns + $FromAddressContainsWords = Process-TextArrayField -Field $FromAddressContainsWords + $FromAddressMatchesPatterns = Process-TextArrayField -Field $FromAddressMatchesPatterns + $AttachmentContainsWords = Process-TextArrayField -Field $AttachmentContainsWords + $AttachmentMatchesPatterns = Process-TextArrayField -Field $AttachmentMatchesPatterns + $AttachmentExtensionMatchesWords = Process-TextArrayField -Field $AttachmentExtensionMatchesWords + $RecipientAddressContainsWords = Process-TextArrayField -Field $RecipientAddressContainsWords + $RecipientAddressMatchesPatterns = Process-TextArrayField -Field $RecipientAddressMatchesPatterns + $AnyOfRecipientAddressContainsWords = Process-TextArrayField -Field $AnyOfRecipientAddressContainsWords + $AnyOfRecipientAddressMatchesPatterns = Process-TextArrayField -Field $AnyOfRecipientAddressMatchesPatterns + $HeaderContainsWords = Process-TextArrayField -Field $HeaderContainsWords + $HeaderMatchesPatterns = Process-TextArrayField -Field $HeaderMatchesPatterns + + # Process exception text array fields + $ExceptIfSubjectContainsWords = Process-TextArrayField -Field $ExceptIfSubjectContainsWords + $ExceptIfSubjectMatchesPatterns = Process-TextArrayField -Field $ExceptIfSubjectMatchesPatterns + $ExceptIfSubjectOrBodyContainsWords = Process-TextArrayField -Field $ExceptIfSubjectOrBodyContainsWords + $ExceptIfSubjectOrBodyMatchesPatterns = Process-TextArrayField -Field $ExceptIfSubjectOrBodyMatchesPatterns + $ExceptIfFromAddressContainsWords = Process-TextArrayField -Field $ExceptIfFromAddressContainsWords + $ExceptIfFromAddressMatchesPatterns = Process-TextArrayField -Field $ExceptIfFromAddressMatchesPatterns + $ExceptIfAttachmentContainsWords = Process-TextArrayField -Field $ExceptIfAttachmentContainsWords + $ExceptIfAttachmentMatchesPatterns = Process-TextArrayField -Field $ExceptIfAttachmentMatchesPatterns + $ExceptIfAttachmentExtensionMatchesWords = Process-TextArrayField -Field $ExceptIfAttachmentExtensionMatchesWords + $ExceptIfRecipientAddressContainsWords = Process-TextArrayField -Field $ExceptIfRecipientAddressContainsWords + $ExceptIfRecipientAddressMatchesPatterns = Process-TextArrayField -Field $ExceptIfRecipientAddressMatchesPatterns + $ExceptIfAnyOfRecipientAddressContainsWords = Process-TextArrayField -Field $ExceptIfAnyOfRecipientAddressContainsWords + $ExceptIfAnyOfRecipientAddressMatchesPatterns = Process-TextArrayField -Field $ExceptIfAnyOfRecipientAddressMatchesPatterns + $ExceptIfHeaderContainsWords = Process-TextArrayField -Field $ExceptIfHeaderContainsWords + $ExceptIfHeaderMatchesPatterns = Process-TextArrayField -Field $ExceptIfHeaderMatchesPatterns + + # Process IP range fields + $SenderIpRanges = Process-TextArrayField -Field $SenderIpRanges + $ExceptIfSenderIpRanges = Process-TextArrayField -Field $ExceptIfSenderIpRanges + + try { + # Build command parameters for transport rule + $ruleParams = @{ + Name = $Name + } + + # If editing existing rule add Identity + if ($null -ne $Identity) { $ruleParams.Add('Identity', $Identity) } + + # State uses a different cmdlet for updating an existing rule so extract the required data to enable or disable it + $CmdletState = if ($CmdletState -eq 'Enabled') { 'Enable-TransportRule' } else { 'Disable-TransportRule' } + + # Basic parameters + if (($null -ne $State) -and (!$Identity)) { $ruleParams.Add('Enabled', $State) } + if ($null -ne $Priority) { $ruleParams.Add('Priority', $Priority) } + if ($null -ne $Comments) { $ruleParams.Add('Comments', $Comments) } + if ($null -ne $Mode) { + $modeValue = if ($Mode.value) { $Mode.value } else { $Mode } + $ruleParams.Add('Mode', $modeValue) + } + if ($null -ne $SetAuditSeverity) { + $severityValue = if ($SetAuditSeverity.value) { $SetAuditSeverity.value } else { $SetAuditSeverity } + if ($severityValue -ne '') { + $ruleParams.Add('SetAuditSeverity', $severityValue) + } + } + if ($null -ne $StopRuleProcessing) { $ruleParams.Add('StopRuleProcessing', $StopRuleProcessing) } + if ($null -ne $SenderAddressLocation) { + $locationValue = if ($SenderAddressLocation.value) { $SenderAddressLocation.value } else { $SenderAddressLocation } + $ruleParams.Add('SenderAddressLocation', $locationValue) + } + if ($null -ne $ActivationDate -and $ActivationDate -ne '') { $ruleParams.Add('ActivationDate', $ActivationDate) } + if ($null -ne $ExpiryDate -and $ExpiryDate -ne '') { $ruleParams.Add('ExpiryDate', $ExpiryDate) } + + # Condition parameters + if ($null -ne $From -and $From.Count -gt 0) { $ruleParams.Add('From', $From) } + if ($null -ne $FromScope) { + $fromScopeValue = if ($FromScope.value) { $FromScope.value } else { $FromScope } + $ruleParams.Add('FromScope', $fromScopeValue) + } + if ($null -ne $FromMemberOf -and $FromMemberOf.Count -gt 0) { $ruleParams.Add('FromMemberOf', $FromMemberOf) } + if ($null -ne $SentTo -and $SentTo.Count -gt 0) { $ruleParams.Add('SentTo', $SentTo) } + if ($null -ne $SentToScope) { + $sentToScopeValue = if ($SentToScope.value) { $SentToScope.value } else { $SentToScope } + $ruleParams.Add('SentToScope', $sentToScopeValue) + } + if ($null -ne $SentToMemberOf -and $SentToMemberOf.Count -gt 0) { $ruleParams.Add('SentToMemberOf', $SentToMemberOf) } + if ($null -ne $SubjectContainsWords -and $SubjectContainsWords.Count -gt 0) { + $ruleParams.Add('SubjectContainsWords', $SubjectContainsWords) + } + if ($null -ne $SubjectMatchesPatterns -and $SubjectMatchesPatterns.Count -gt 0) { + $ruleParams.Add('SubjectMatchesPatterns', $SubjectMatchesPatterns) + } + if ($null -ne $SubjectOrBodyContainsWords -and $SubjectOrBodyContainsWords.Count -gt 0) { + $ruleParams.Add('SubjectOrBodyContainsWords', $SubjectOrBodyContainsWords) + } + if ($null -ne $SubjectOrBodyMatchesPatterns -and $SubjectOrBodyMatchesPatterns.Count -gt 0) { + $ruleParams.Add('SubjectOrBodyMatchesPatterns', $SubjectOrBodyMatchesPatterns) + } + if ($null -ne $FromAddressContainsWords -and $FromAddressContainsWords.Count -gt 0) { + $ruleParams.Add('FromAddressContainsWords', $FromAddressContainsWords) + } + if ($null -ne $FromAddressMatchesPatterns -and $FromAddressMatchesPatterns.Count -gt 0) { + $ruleParams.Add('FromAddressMatchesPatterns', $FromAddressMatchesPatterns) + } + if ($null -ne $AttachmentContainsWords -and $AttachmentContainsWords.Count -gt 0) { + $ruleParams.Add('AttachmentContainsWords', $AttachmentContainsWords) + } + if ($null -ne $AttachmentMatchesPatterns -and $AttachmentMatchesPatterns.Count -gt 0) { + $ruleParams.Add('AttachmentMatchesPatterns', $AttachmentMatchesPatterns) + } + if ($null -ne $AttachmentExtensionMatchesWords -and $AttachmentExtensionMatchesWords.Count -gt 0) { + $ruleParams.Add('AttachmentExtensionMatchesWords', $AttachmentExtensionMatchesWords) + } + if ($null -ne $AttachmentSizeOver) { $ruleParams.Add('AttachmentSizeOver', $AttachmentSizeOver) } + if ($null -ne $MessageSizeOver) { $ruleParams.Add('MessageSizeOver', $MessageSizeOver) } + if ($null -ne $SCLOver) { + $sclValue = if ($SCLOver.value) { $SCLOver.value } else { $SCLOver } + $ruleParams.Add('SCLOver', $sclValue) + } + if ($null -ne $WithImportance) { + $importanceValue = if ($WithImportance.value) { $WithImportance.value } else { $WithImportance } + $ruleParams.Add('WithImportance', $importanceValue) + } + if ($null -ne $MessageTypeMatches) { + $messageTypeValue = if ($MessageTypeMatches.value) { $MessageTypeMatches.value } else { $MessageTypeMatches } + $ruleParams.Add('MessageTypeMatches', $messageTypeValue) + } + if ($null -ne $SenderDomainIs -and $SenderDomainIs.Count -gt 0) { + $ruleParams.Add('SenderDomainIs', $SenderDomainIs) + } + if ($null -ne $RecipientDomainIs -and $RecipientDomainIs.Count -gt 0) { + $ruleParams.Add('RecipientDomainIs', $RecipientDomainIs) + } + if ($null -ne $RecipientAddressContainsWords -and $RecipientAddressContainsWords.Count -gt 0) { + $ruleParams.Add('RecipientAddressContainsWords', $RecipientAddressContainsWords) + } + if ($null -ne $RecipientAddressMatchesPatterns -and $RecipientAddressMatchesPatterns.Count -gt 0) { + $ruleParams.Add('RecipientAddressMatchesPatterns', $RecipientAddressMatchesPatterns) + } + if ($null -ne $AnyOfRecipientAddressContainsWords -and $AnyOfRecipientAddressContainsWords.Count -gt 0) { + $ruleParams.Add('AnyOfRecipientAddressContainsWords', $AnyOfRecipientAddressContainsWords) + } + if ($null -ne $AnyOfRecipientAddressMatchesPatterns -and $AnyOfRecipientAddressMatchesPatterns.Count -gt 0) { + $ruleParams.Add('AnyOfRecipientAddressMatchesPatterns', $AnyOfRecipientAddressMatchesPatterns) + } + if ($null -ne $AnyOfToHeader -and $AnyOfToHeader.Count -gt 0) { + $ruleParams.Add('AnyOfToHeader', $AnyOfToHeader) + } + if ($null -ne $AnyOfToHeaderMemberOf -and $AnyOfToHeaderMemberOf.Count -gt 0) { + $ruleParams.Add('AnyOfToHeaderMemberOf', $AnyOfToHeaderMemberOf) + } + if ($null -ne $AnyOfCcHeader -and $AnyOfCcHeader.Count -gt 0) { + $ruleParams.Add('AnyOfCcHeader', $AnyOfCcHeader) + } + if ($null -ne $AnyOfCcHeaderMemberOf -and $AnyOfCcHeaderMemberOf.Count -gt 0) { + $ruleParams.Add('AnyOfCcHeaderMemberOf', $AnyOfCcHeaderMemberOf) + } + if ($null -ne $AnyOfToCcHeader -and $AnyOfToCcHeader.Count -gt 0) { + $ruleParams.Add('AnyOfToCcHeader', $AnyOfToCcHeader) + } + if ($null -ne $AnyOfToCcHeaderMemberOf -and $AnyOfToCcHeaderMemberOf.Count -gt 0) { + $ruleParams.Add('AnyOfToCcHeaderMemberOf', $AnyOfToCcHeaderMemberOf) + } + if ($null -ne $HeaderContainsWords -and $HeaderContainsWords.Count -gt 0 -and $null -ne $HeaderContainsWordsMessageHeader) { + $ruleParams.Add('HeaderContainsMessageHeader', $HeaderContainsWordsMessageHeader) + $ruleParams.Add('HeaderContainsWords', $HeaderContainsWords) + } + if ($null -ne $HeaderMatchesPatterns -and $HeaderMatchesPatterns.Count -gt 0 -and $null -ne $HeaderMatchesPatternsMessageHeader) { + $ruleParams.Add('HeaderMatchesMessageHeader', $HeaderMatchesPatternsMessageHeader) + $ruleParams.Add('HeaderMatchesPatterns', $HeaderMatchesPatterns) + } + if ($null -ne $SenderIpRanges -and $SenderIpRanges.Count -gt 0) { + $ruleParams.Add('SenderIpRanges', $SenderIpRanges) + } + + # Action parameters + if ($null -ne $DeleteMessage) { $ruleParams.Add('DeleteMessage', $DeleteMessage) } + if ($null -ne $Quarantine) { $ruleParams.Add('Quarantine', $Quarantine) } + if ($null -ne $RedirectMessageTo -and $RedirectMessageTo.Count -gt 0) { + $ruleParams.Add('RedirectMessageTo', $RedirectMessageTo) + } + if ($null -ne $BlindCopyTo -and $BlindCopyTo.Count -gt 0) { $ruleParams.Add('BlindCopyTo', $BlindCopyTo) } + if ($null -ne $CopyTo -and $CopyTo.Count -gt 0) { $ruleParams.Add('CopyTo', $CopyTo) } + if ($null -ne $ModerateMessageByUser -and $ModerateMessageByUser.Count -gt 0) { + $ruleParams.Add('ModerateMessageByUser', $ModerateMessageByUser) + } + if ($null -ne $ModerateMessageByManager) { $ruleParams.Add('ModerateMessageByManager', $ModerateMessageByManager) } + if ($null -ne $RejectMessageReasonText -and $RejectMessageReasonText -ne '') { + $ruleParams.Add('RejectMessageReasonText', $RejectMessageReasonText) + } + if ($null -ne $RejectMessageEnhancedStatusCode -and $RejectMessageEnhancedStatusCode -ne '') { + $ruleParams.Add('RejectMessageEnhancedStatusCode', $RejectMessageEnhancedStatusCode) + } + if ($null -ne $PrependSubject -and $PrependSubject -ne '') { $ruleParams.Add('PrependSubject', $PrependSubject) } + if ($null -ne $SetSCL) { + $setSclValue = if ($SetSCL.value) { $SetSCL.value } else { $SetSCL } + $ruleParams.Add('SetSCL', $setSclValue) + } + if ($null -ne $SetHeaderName -and $SetHeaderName -ne '' -and $null -ne $SetHeaderValue) { + $ruleParams.Add('SetHeaderName', $SetHeaderName) + $ruleParams.Add('SetHeaderValue', $SetHeaderValue) + } + if ($null -ne $RemoveHeader -and $RemoveHeader -ne '') { $ruleParams.Add('RemoveHeader', $RemoveHeader) } + if ($null -ne $ApplyClassification -and $ApplyClassification -ne '') { + $ruleParams.Add('ApplyClassification', $ApplyClassification) + } + if ($null -ne $ApplyHtmlDisclaimerText -and $ApplyHtmlDisclaimerText -ne '') { + $ruleParams.Add('ApplyHtmlDisclaimerText', $ApplyHtmlDisclaimerText) + if ($null -ne $ApplyHtmlDisclaimerLocation) { + $disclaimerLocationValue = if ($ApplyHtmlDisclaimerLocation.value) { $ApplyHtmlDisclaimerLocation.value } else { $ApplyHtmlDisclaimerLocation } + $ruleParams.Add('ApplyHtmlDisclaimerLocation', $disclaimerLocationValue) + } + if ($null -ne $ApplyHtmlDisclaimerFallbackAction) { + $disclaimerFallbackValue = if ($ApplyHtmlDisclaimerFallbackAction.value) { $ApplyHtmlDisclaimerFallbackAction.value } else { $ApplyHtmlDisclaimerFallbackAction } + $ruleParams.Add('ApplyHtmlDisclaimerFallbackAction', $disclaimerFallbackValue) + } + } + if ($null -ne $GenerateIncidentReport -and $GenerateIncidentReport.Count -gt 0) { + $ruleParams.Add('GenerateIncidentReport', $GenerateIncidentReport) + } + if ($null -ne $GenerateNotification -and $GenerateNotification -ne '') { + $ruleParams.Add('GenerateNotification', $GenerateNotification) + } + if ($null -ne $ApplyOME) { $ruleParams.Add('ApplyOME', $ApplyOME) } + + # Exception parameters (ExceptIf versions) + if ($null -ne $ExceptIfFrom -and $ExceptIfFrom.Count -gt 0) { $ruleParams.Add('ExceptIfFrom', $ExceptIfFrom) } + if ($null -ne $ExceptIfFromScope) { + $exceptFromScopeValue = if ($ExceptIfFromScope.value) { $ExceptIfFromScope.value } else { $ExceptIfFromScope } + $ruleParams.Add('ExceptIfFromScope', $exceptFromScopeValue) + } + if ($null -ne $ExceptIfFromMemberOf -and $ExceptIfFromMemberOf.Count -gt 0) { $ruleParams.Add('ExceptIfFromMemberOf', $ExceptIfFromMemberOf) } + if ($null -ne $ExceptIfSentTo -and $ExceptIfSentTo.Count -gt 0) { $ruleParams.Add('ExceptIfSentTo', $ExceptIfSentTo) } + if ($null -ne $ExceptIfSentToScope) { + $exceptSentToScopeValue = if ($ExceptIfSentToScope.value) { $ExceptIfSentToScope.value } else { $ExceptIfSentToScope } + $ruleParams.Add('ExceptIfSentToScope', $exceptSentToScopeValue) + } + if ($null -ne $ExceptIfSentToMemberOf -and $ExceptIfSentToMemberOf.Count -gt 0) { $ruleParams.Add('ExceptIfSentToMemberOf', $ExceptIfSentToMemberOf) } + if ($null -ne $ExceptIfSubjectContainsWords -and $ExceptIfSubjectContainsWords.Count -gt 0) { + $ruleParams.Add('ExceptIfSubjectContainsWords', $ExceptIfSubjectContainsWords) + } + if ($null -ne $ExceptIfSubjectMatchesPatterns -and $ExceptIfSubjectMatchesPatterns.Count -gt 0) { + $ruleParams.Add('ExceptIfSubjectMatchesPatterns', $ExceptIfSubjectMatchesPatterns) + } + if ($null -ne $ExceptIfSubjectOrBodyContainsWords -and $ExceptIfSubjectOrBodyContainsWords.Count -gt 0) { + $ruleParams.Add('ExceptIfSubjectOrBodyContainsWords', $ExceptIfSubjectOrBodyContainsWords) + } + if ($null -ne $ExceptIfSubjectOrBodyMatchesPatterns -and $ExceptIfSubjectOrBodyMatchesPatterns.Count -gt 0) { + $ruleParams.Add('ExceptIfSubjectOrBodyMatchesPatterns', $ExceptIfSubjectOrBodyMatchesPatterns) + } + if ($null -ne $ExceptIfFromAddressContainsWords -and $ExceptIfFromAddressContainsWords.Count -gt 0) { + $ruleParams.Add('ExceptIfFromAddressContainsWords', $ExceptIfFromAddressContainsWords) + } + if ($null -ne $ExceptIfFromAddressMatchesPatterns -and $ExceptIfFromAddressMatchesPatterns.Count -gt 0) { + $ruleParams.Add('ExceptIfFromAddressMatchesPatterns', $ExceptIfFromAddressMatchesPatterns) + } + if ($null -ne $ExceptIfAttachmentContainsWords -and $ExceptIfAttachmentContainsWords.Count -gt 0) { + $ruleParams.Add('ExceptIfAttachmentContainsWords', $ExceptIfAttachmentContainsWords) + } + if ($null -ne $ExceptIfAttachmentMatchesPatterns -and $ExceptIfAttachmentMatchesPatterns.Count -gt 0) { + $ruleParams.Add('ExceptIfAttachmentMatchesPatterns', $ExceptIfAttachmentMatchesPatterns) + } + if ($null -ne $ExceptIfAttachmentExtensionMatchesWords -and $ExceptIfAttachmentExtensionMatchesWords.Count -gt 0) { + $ruleParams.Add('ExceptIfAttachmentExtensionMatchesWords', $ExceptIfAttachmentExtensionMatchesWords) + } + if ($null -ne $ExceptIfAttachmentSizeOver) { + $ruleParams.Add('ExceptIfAttachmentSizeOver', $ExceptIfAttachmentSizeOver) + } + if ($null -ne $ExceptIfMessageSizeOver) { $ruleParams.Add('ExceptIfMessageSizeOver', $ExceptIfMessageSizeOver) } + if ($null -ne $ExceptIfSCLOver) { + $exceptSclValue = if ($ExceptIfSCLOver.value) { $ExceptIfSCLOver.value } else { $ExceptIfSCLOver } + $ruleParams.Add('ExceptIfSCLOver', $exceptSclValue) + } + if ($null -ne $ExceptIfWithImportance) { + $exceptImportanceValue = if ($ExceptIfWithImportance.value) { $ExceptIfWithImportance.value } else { $ExceptIfWithImportance } + $ruleParams.Add('ExceptIfWithImportance', $exceptImportanceValue) + } + if ($null -ne $ExceptIfMessageTypeMatches) { + $exceptMessageTypeValue = if ($ExceptIfMessageTypeMatches.value) { $ExceptIfMessageTypeMatches.value } else { $ExceptIfMessageTypeMatches } + $ruleParams.Add('ExceptIfMessageTypeMatches', $exceptMessageTypeValue) + } + if ($null -ne $ExceptIfSenderDomainIs -and $ExceptIfSenderDomainIs.Count -gt 0) { + $ruleParams.Add('ExceptIfSenderDomainIs', $ExceptIfSenderDomainIs) + } + if ($null -ne $ExceptIfRecipientDomainIs -and $ExceptIfRecipientDomainIs.Count -gt 0) { + $ruleParams.Add('ExceptIfRecipientDomainIs', $ExceptIfRecipientDomainIs) + } + if ($null -ne $ExceptIfRecipientAddressContainsWords -and $ExceptIfRecipientAddressContainsWords.Count -gt 0) { + $ruleParams.Add('ExceptIfRecipientAddressContainsWords', $ExceptIfRecipientAddressContainsWords) + } + if ($null -ne $ExceptIfRecipientAddressMatchesPatterns -and $ExceptIfRecipientAddressMatchesPatterns.Count -gt 0) { + $ruleParams.Add('ExceptIfRecipientAddressMatchesPatterns', $ExceptIfRecipientAddressMatchesPatterns) + } + if ($null -ne $ExceptIfAnyOfRecipientAddressContainsWords -and $ExceptIfAnyOfRecipientAddressContainsWords.Count -gt 0) { + $ruleParams.Add('ExceptIfAnyOfRecipientAddressContainsWords', $ExceptIfAnyOfRecipientAddressContainsWords) + } + if ($null -ne $ExceptIfAnyOfRecipientAddressMatchesPatterns -and $ExceptIfAnyOfRecipientAddressMatchesPatterns.Count -gt 0) { + $ruleParams.Add('ExceptIfAnyOfRecipientAddressMatchesPatterns', $ExceptIfAnyOfRecipientAddressMatchesPatterns) + } + if ($null -ne $ExceptIfAnyOfToHeader -and $ExceptIfAnyOfToHeader.Count -gt 0) { + $ruleParams.Add('ExceptIfAnyOfToHeader', $ExceptIfAnyOfToHeader) + } + if ($null -ne $ExceptIfAnyOfToHeaderMemberOf -and $ExceptIfAnyOfToHeaderMemberOf.Count -gt 0) { + $ruleParams.Add('ExceptIfAnyOfToHeaderMemberOf', $ExceptIfAnyOfToHeaderMemberOf) + } + if ($null -ne $ExceptIfAnyOfCcHeader -and $ExceptIfAnyOfCcHeader.Count -gt 0) { + $ruleParams.Add('ExceptIfAnyOfCcHeader', $ExceptIfAnyOfCcHeader) + } + if ($null -ne $ExceptIfAnyOfCcHeaderMemberOf -and $ExceptIfAnyOfCcHeaderMemberOf.Count -gt 0) { + $ruleParams.Add('ExceptIfAnyOfCcHeaderMemberOf', $ExceptIfAnyOfCcHeaderMemberOf) + } + if ($null -ne $ExceptIfAnyOfToCcHeader -and $ExceptIfAnyOfToCcHeader.Count -gt 0) { + $ruleParams.Add('ExceptIfAnyOfToCcHeader', $ExceptIfAnyOfToCcHeader) + } + if ($null -ne $ExceptIfAnyOfToCcHeaderMemberOf -and $ExceptIfAnyOfToCcHeaderMemberOf.Count -gt 0) { + $ruleParams.Add('ExceptIfAnyOfToCcHeaderMemberOf', $ExceptIfAnyOfToCcHeaderMemberOf) + } + if ($null -ne $ExceptIfHeaderContainsWords -and $ExceptIfHeaderContainsWords.Count -gt 0 -and $null -ne $ExceptIfHeaderContainsWordsMessageHeader) { + $ruleParams.Add('ExceptIfHeaderContainsMessageHeader', $ExceptIfHeaderContainsWordsMessageHeader) + $ruleParams.Add('ExceptIfHeaderContainsWords', $ExceptIfHeaderContainsWords) + } + if ($null -ne $ExceptIfHeaderMatchesPatterns -and $ExceptIfHeaderMatchesPatterns.Count -gt 0 -and $null -ne $ExceptIfHeaderMatchesPatternsMessageHeader) { + $ruleParams.Add('ExceptIfHeaderMatchesMessageHeader', $ExceptIfHeaderMatchesPatternsMessageHeader) + $ruleParams.Add('ExceptIfHeaderMatchesPatterns', $ExceptIfHeaderMatchesPatterns) + } + if ($null -ne $ExceptIfSenderIpRanges -and $ExceptIfSenderIpRanges.Count -gt 0) { + $ruleParams.Add('ExceptIfSenderIpRanges', $ExceptIfSenderIpRanges) + } + + if (!$Identity) { + $ExoRequestParam = @{ + tenantid = $TenantFilter + cmdlet = 'New-TransportRule' + cmdParams = $ruleParams + useSystemMailbox = $true + } + $null = New-ExoRequest @ExoRequestParam + $Results = "Successfully created transport rule '$Name'" + } + else { + $ExoRequestParam = @{ + tenantid = $TenantFilter + cmdlet = 'Set-TransportRule' + cmdParams = $ruleParams + useSystemMailbox = $true + } + $ExoRequestState = @{ + tenantid = $TenantFilter + cmdlet = $CmdletState + cmdParams = @{ Identity = $Identity } + useSystemMailbox = $true + } + if ($Enabled) { + $null = New-ExoRequest @ExoRequestState + $Results = "Successfully $($Enabled) transport rule $($Name)" + } else { + $null = New-ExoRequest @ExoRequestParam + $null = New-ExoRequest @ExoRequestState + $Results = "Successfully configured transport rule '$Name'" + } + } + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Results -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Results = "Failed to configure transport rule '$Name'. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Results -Sev 'Error' + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{Results = $Results } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddExConnector.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddExConnector.ps1 index 5a3c95a0867a..5e3ca2d26e8d 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddExConnector.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddExConnector.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-AddExConnector { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ function Invoke-AddExConnector { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $ConnectorType = ($Request.Body.PowerShellCommand | ConvertFrom-Json).cippConnectorType @@ -40,8 +38,7 @@ function Invoke-AddExConnector { } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @{Results = @($Result) } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddExConnectorTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddExConnectorTemplate.ps1 index 58b00ecdcaf9..1b5b965a5f84 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddExConnectorTemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddExConnectorTemplate.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-AddExConnectorTemplate { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-AddExConnectorTemplate { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + Write-Host ($Request | ConvertTo-Json -Compress) @@ -52,8 +50,7 @@ Function Invoke-AddExConnectorTemplate { } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{Results = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddTransportRule.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddTransportRule.ps1 index 6224bc13ebb6..074642de5a8f 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddTransportRule.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddTransportRule.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-AddTransportRule { <# .FUNCTIONALITY @@ -16,6 +14,9 @@ function Invoke-AddTransportRule { $RequestParams = $Request.Body.PowerShellCommand | ConvertFrom-Json | Select-Object -Property * -ExcludeProperty GUID, HasSenderOverride, ExceptIfHasSenderOverride, ExceptIfMessageContainsDataClassifications, MessageContainsDataClassifications + # Remove null properties from payload + $RequestParams.PSObject.Properties | Where-Object { $_.Value -eq $null } | ForEach-Object { $RequestParams.PSObject.Properties.Remove($_.Name) } + $Tenants = ($Request.body.selectedTenants).value $AllowedTenants = Test-CippAccess -Request $Request -TenantList @@ -48,8 +49,7 @@ function Invoke-AddTransportRule { } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @{Results = @($Result) } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddTransportTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddTransportTemplate.ps1 index 5667db9d1062..bbf830c0a691 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddTransportTemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddTransportTemplate.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-AddTransportTemplate { <# .FUNCTIONALITY @@ -46,8 +44,7 @@ Function Invoke-AddTransportTemplate { } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-EditExConnector.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-EditExConnector.ps1 index 904f9d2c826e..7fbf704e72f5 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-EditExConnector.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-EditExConnector.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-EditExConnector { +function Invoke-EditExConnector { <# .FUNCTIONALITY Entrypoint @@ -12,7 +10,7 @@ Function Invoke-EditExConnector { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APINAME -message 'Accessed this API' -Sev 'Debug' + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter try { $ConnectorState = $Request.Query.State ?? $Request.Body.State @@ -34,8 +32,7 @@ Function Invoke-EditExConnector { $StatusCode = [HttpStatusCode]::Forbidden } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{Results = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-EditTransportRule.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-EditTransportRule.ps1 index 87ec4164e9d8..4413fdb33d97 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-EditTransportRule.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-EditTransportRule.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-EditTransportRule { +function Invoke-EditTransportRule { <# .FUNCTIONALITY Entrypoint @@ -12,7 +10,7 @@ Function Invoke-EditTransportRule { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APINAME -message 'Accessed this API' -Sev 'Debug' + $TenantFilter = $Request.Query.tenantFilter ?? $Request.body.tenantFilter $Identity = $Request.Query.guid ?? $Request.body.guid @@ -35,8 +33,7 @@ Function Invoke-EditTransportRule { $StatusCode = [HttpStatusCode]::Forbidden } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{Results = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-ListExConnectorTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-ListExConnectorTemplates.ps1 index 6e879be76193..daadbbc868e4 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-ListExConnectorTemplates.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-ListExConnectorTemplates.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ListExConnectorTemplates { +function Invoke-ListExConnectorTemplates { <# .FUNCTIONALITY Entrypoint,AnyTenant @@ -9,29 +7,34 @@ Function Invoke-ListExConnectorTemplates { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' $Table = Get-CippTable -tablename 'templates' #List new policies $Table = Get-CippTable -tablename 'templates' $Filter = "PartitionKey eq 'ExConnectorTemplate'" - $Templates = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) | ForEach-Object { - $GUID = $_.RowKey - $Direction = $_.direction - $data = $_.JSON | ConvertFrom-Json - $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $GUID -Force - $data | Add-Member -NotePropertyName 'cippconnectortype' -NotePropertyValue $Direction -Force - $data - } | Sort-Object -Property displayName + if ($Request.Query.ID) { + $Filter += " and RowKey eq '$($Request.Query.ID)'" + } + + $TemplateRows = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) + + if ($TemplateRows) { + $Templates = $TemplateRows | ForEach-Object { + $GUID = $_.RowKey + $Direction = $_.direction + $data = $_.JSON | ConvertFrom-Json + $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $GUID -Force + $data | Add-Member -NotePropertyName 'cippconnectortype' -NotePropertyValue $Direction -Force + $data + } | Sort-Object -Property displayName + } else { + $Templates = @() + } if ($Request.query.ID) { $Templates = $Templates | Where-Object -Property RowKey -EQ $Request.query.id } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($Templates) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-ListExchangeConnectors.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-ListExchangeConnectors.ps1 index 9fa161d38f72..a0455bfb6137 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-ListExchangeConnectors.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-ListExchangeConnectors.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ListExchangeConnectors { +function Invoke-ListExchangeConnectors { <# .FUNCTIONALITY Entrypoint @@ -9,10 +7,6 @@ Function Invoke-ListExchangeConnectors { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APINAME -message 'Accessed this API' -Sev 'Debug' $TenantFilter = $request.Query.tenantFilter $Results = try { @@ -25,8 +19,7 @@ Function Invoke-ListExchangeConnectors { $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @($Results) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-ListTransportRules.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-ListTransportRules.ps1 index 3f4b5c65e019..ce444bd46cf2 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-ListTransportRules.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-ListTransportRules.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ListTransportRules { +function Invoke-ListTransportRules { <# .FUNCTIONALITY Entrypoint @@ -9,59 +7,66 @@ Function Invoke-ListTransportRules { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter + $RuleId = $Request.Query.id try { - $Results = if ($TenantFilter -ne 'AllTenants') { - # Single tenant functionality - New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-TransportRule' - } else { - # AllTenants functionality - $Table = Get-CIPPTable -TableName CacheTransportRules - $PartitionKey = 'TransportRule' - $Filter = "PartitionKey eq '$PartitionKey'" - $Rows = Get-CIPPAzDataTableEntity @Table -filter $Filter | Where-Object -Property Timestamp -GT (Get-Date).AddMinutes(-60) - $QueueReference = '{0}-{1}' -f $TenantFilter, $PartitionKey - $RunningQueue = Invoke-ListCippQueue | Where-Object { $_.Reference -eq $QueueReference -and $_.Status -notmatch 'Completed' -and $_.Status -notmatch 'Failed' } - - # If a queue is running, we will not start a new one - if ($RunningQueue) { - $Metadata = [PSCustomObject]@{ - QueueMessage = 'Still loading transport rules for all tenants. Please check back in a few more minutes' - } - } elseif (!$Rows -and !$RunningQueue) { - # If no rows are found and no queue is running, we will start a new one - $TenantList = Get-Tenants -IncludeErrors - $Queue = New-CippQueueEntry -Name 'Transport Rules - All Tenants' -Link '/email/transport/list-rules?tenantFilter=AllTenants' -Reference $QueueReference -TotalTasks ($TenantList | Measure-Object).Count - $Metadata = [PSCustomObject]@{ - QueueMessage = 'Loading transport rules for all tenants. Please check back in a few minutes' - } - $InputObject = [PSCustomObject]@{ - OrchestratorName = 'TransportRuleOrchestrator' - QueueFunction = @{ - FunctionName = 'GetTenants' + # If an ID is provided, fetch the specific rule + if ($RuleId) { + $Results = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-TransportRule' -cmdParams @{Identity = $RuleId} + } + # Otherwise, use existing logic + else { + $Results = if ($TenantFilter -ne 'AllTenants') { + # Single tenant functionality + New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-TransportRule' + } else { + # AllTenants functionality + $Table = Get-CIPPTable -TableName CacheTransportRules + $PartitionKey = 'TransportRule' + $Filter = "PartitionKey eq '$PartitionKey'" + $Rows = Get-CIPPAzDataTableEntity @Table -filter $Filter | Where-Object -Property Timestamp -GT (Get-Date).AddMinutes(-60) + $QueueReference = '{0}-{1}' -f $TenantFilter, $PartitionKey + $RunningQueue = Invoke-ListCippQueue -Reference $QueueReference | Where-Object { $_.Status -notmatch 'Completed' -and $_.Status -notmatch 'Failed' } + # If a queue is running, we will not start a new one + if ($RunningQueue) { + $Metadata = [PSCustomObject]@{ + QueueMessage = 'Still loading transport rules for all tenants. Please check back in a few more minutes' + QueueId = $RunningQueue.RowKey + } + } elseif (!$Rows -and !$RunningQueue) { + # If no rows are found and no queue is running, we will start a new one + $TenantList = Get-Tenants -IncludeErrors + $Queue = New-CippQueueEntry -Name 'Transport Rules - All Tenants' -Link '/email/transport/list-rules?tenantFilter=AllTenants' -Reference $QueueReference -TotalTasks ($TenantList | Measure-Object).Count + $Metadata = [PSCustomObject]@{ + QueueMessage = 'Loading transport rules for all tenants. Please check back in a few minutes' QueueId = $Queue.RowKey - TenantParams = @{ - IncludeErrors = $true + } + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'TransportRuleOrchestrator' + QueueFunction = @{ + FunctionName = 'GetTenants' + QueueId = $Queue.RowKey + TenantParams = @{ + IncludeErrors = $true + } + DurableName = 'ListTransportRulesAllTenants' } - DurableName = 'ListTransportRulesAllTenants' + SkipLog = $true + } + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) | Out-Null + } else { + # Return cached data + $Metadata = [PSCustomObject]@{ + QueueId = $RunningQueue.RowKey ?? $null + } + $Rules = $Rows + foreach ($rule in $Rules) { + $RuleObj = $rule.TransportRule | ConvertFrom-Json + $RuleObj | Add-Member -MemberType NoteProperty -Name Tenant -Value $rule.Tenant -Force + $RuleObj } - SkipLog = $true - } - Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) | Out-Null - } else { - # Return cached data - $Rules = $Rows - foreach ($rule in $Rules) { - $RuleObj = $rule.TransportRule | ConvertFrom-Json - $RuleObj | Add-Member -MemberType NoteProperty -Name Tenant -Value $rule.Tenant -Force - $RuleObj } } } @@ -80,8 +85,7 @@ Function Invoke-ListTransportRules { } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-ListTransportRulesTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-ListTransportRulesTemplates.ps1 index d9cd3b00eb61..1f8f567e5ea1 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-ListTransportRulesTemplates.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-ListTransportRulesTemplates.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListTransportRulesTemplates { <# .FUNCTIONALITY @@ -9,10 +7,6 @@ Function Invoke-ListTransportRulesTemplates { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' $Table = Get-CippTable -tablename 'templates' $Templates = Get-ChildItem 'Config\*.TransportRuleTemplate.json' | ForEach-Object { @@ -40,8 +34,7 @@ Function Invoke-ListTransportRulesTemplates { if ($Request.query.ID) { $Templates = $Templates | Where-Object -Property RowKey -EQ $Request.query.id } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($Templates) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-RemoveExConnector.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-RemoveExConnector.ps1 index 10327d3e50b0..61bb16ae5c3c 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-RemoveExConnector.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-RemoveExConnector.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-RemoveExConnector { <# .FUNCTIONALITY @@ -13,7 +11,7 @@ Function Invoke-RemoveExConnector { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers $TenantFilter = $request.Query.tenantFilter ?? $Request.Body.tenantFilter - Write-LogMessage -headers $Headers -API $APINAME -message 'Accessed this API' -Sev 'Debug' + try { $Type = $Request.Query.Type ?? $Request.Body.Type @@ -30,8 +28,7 @@ Function Invoke-RemoveExConnector { $Result = $ErrorMessage.NormalizedError $StatusCode = [HttpStatusCode]::Forbidden } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{Results = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-RemoveExConnectorTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-RemoveExConnectorTemplate.ps1 index bb62e8847cf3..089f1eaa4e88 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-RemoveExConnectorTemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-RemoveExConnectorTemplate.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-RemoveExConnectorTemplate { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-RemoveExConnectorTemplate { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $ID = $Request.Query.ID ?? $Request.Body.ID try { @@ -31,8 +29,7 @@ Function Invoke-RemoveExConnectorTemplate { } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{'Results' = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-RemoveTransportRule.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-RemoveTransportRule.ps1 index 12af2322485a..c23a158f7848 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-RemoveTransportRule.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-RemoveTransportRule.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-RemoveTransportRule { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-RemoveTransportRule { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $TenantFilter = $Request.Query.tenantFilter ?? $Request.body.tenantFilter $Identity = $Request.Query.guid ?? $Request.body.guid @@ -34,8 +32,7 @@ Function Invoke-RemoveTransportRule { $StatusCode = [HttpStatusCode]::Forbidden } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ Results = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-RemoveTransportRuleTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-RemoveTransportRuleTemplate.ps1 index ad159bb42498..d4f93a07bb9f 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-RemoveTransportRuleTemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-RemoveTransportRuleTemplate.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-RemoveTransportRuleTemplate { <# .FUNCTIONALITY @@ -31,8 +29,7 @@ Function Invoke-RemoveTransportRuleTemplate { } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ Results = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddChocoApp.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddChocoApp.ps1 index 8037b40239f5..246ee7071f45 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddChocoApp.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddChocoApp.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-AddChocoApp { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-AddChocoApp { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $ChocoApp = $Request.Body $intuneBody = Get-Content 'AddChocoApp\Choco.app.json' | ConvertFrom-Json @@ -25,6 +23,9 @@ Function Invoke-AddChocoApp { if ($ChocoApp.customrepo) { $intuneBody.installCommandLine = $intuneBody.installCommandLine + " -CustomRepo $($ChocoApp.CustomRepo)" } + if ($ChocoApp.customArguments) { + $intuneBody.installCommandLine = $intuneBody.installCommandLine + " -CustomArguments '$($ChocoApp.customArguments)'" + } $intuneBody.UninstallCommandLine = "powershell.exe -ExecutionPolicy Bypass .\Uninstall.ps1 -Packagename $($ChocoApp.PackageName)" $intuneBody.detectionRules[0].path = "$($ENV:SystemDrive)\programdata\chocolatey\lib" $intuneBody.detectionRules[0].fileOrFolderName = "$($ChocoApp.PackageName)" @@ -32,12 +33,18 @@ Function Invoke-AddChocoApp { $Tenants = $Request.Body.selectedTenants.defaultDomainName $Results = foreach ($Tenant in $Tenants) { try { + # Apply CIPP text replacement for tenant-specific variables + $TenantIntuneBody = $intuneBody | ConvertTo-Json -Depth 15 | ConvertFrom-Json + if ($TenantIntuneBody.installCommandLine -match '%') { + $TenantIntuneBody.installCommandLine = Get-CIPPTextReplacement -TenantFilter $Tenant -Text $TenantIntuneBody.installCommandLine + } + $CompleteObject = [PSCustomObject]@{ tenant = $Tenant ApplicationName = $ChocoApp.ApplicationName assignTo = $AssignTo InstallationIntent = $Request.Body.InstallationIntent - IntuneBody = $intuneBody + IntuneBody = $TenantIntuneBody } | ConvertTo-Json -Depth 15 $Table = Get-CippTable -tablename 'apps' $Table.Force = $true @@ -56,8 +63,7 @@ Function Invoke-AddChocoApp { $body = [PSCustomObject]@{'Results' = $Results } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddMSPApp.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddMSPApp.ps1 index c7b3b8803d61..bdbc7f7dba1f 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddMSPApp.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddMSPApp.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-AddMSPApp { <# .FUNCTIONALITY @@ -12,10 +10,10 @@ function Invoke-AddMSPApp { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $RMMApp = $Request.Body - $AssignTo = $Request.Body.AssignTo + $AssignTo = $Request.Body.AssignTo -eq 'customGroup' ? $Request.Body.CustomGroup : $Request.Body.AssignTo $intuneBody = Get-Content "AddMSPApp\$($RMMApp.RMMName.value).app.json" | ConvertFrom-Json $intuneBody.displayName = $RMMApp.DisplayName @@ -87,8 +85,7 @@ function Invoke-AddMSPApp { $body = [PSCustomObject]@{'Results' = $Results } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddOfficeApp.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddOfficeApp.ps1 index 51a30d74f9bf..97d65b678542 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddOfficeApp.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddOfficeApp.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-AddOfficeApp { +function Invoke-AddOfficeApp { <# .FUNCTIONALITY Entrypoint @@ -10,91 +8,108 @@ Function Invoke-AddOfficeApp { [CmdletBinding()] param($Request, $TriggerMetadata) - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - # Input bindings are passed in via param block. - $Tenants = $Request.body.selectedTenants.defaultDomainName + $Tenants = $Request.Body.selectedTenants.defaultDomainName + $Headers = $Request.Headers + $APIName = $Request.Params.CIPPEndpoint if ('AllTenants' -in $Tenants) { $Tenants = (Get-Tenants).defaultDomainName } - $AssignTo = if ($request.body.Assignto -ne 'on') { $request.body.Assignto } + $AssignTo = $Request.Body.AssignTo -eq 'customGroup' ? $Request.Body.CustomGroup : $Request.Body.AssignTo - $results = foreach ($Tenant in $tenants) { + $Results = foreach ($Tenant in $Tenants) { try { - $ExistingO365 = New-graphGetRequest -Uri 'https://graph.microsoft.com/beta/deviceAppManagement/mobileApps' -tenantid $tenant | Where-Object { $_.displayname -eq 'Microsoft 365 Apps for Windows 10 and later' } + $ExistingO365 = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/deviceAppManagement/mobileApps' -tenantid $Tenant | Where-Object { $_.displayName -eq 'Microsoft 365 Apps for Windows 10 and later' } if (!$ExistingO365) { - $Arch = if ($request.body.arch) { 'x64' } else { 'x86' } - $products = @('o365ProPlusRetail') - $ExcludedApps = [pscustomobject]@{ - infoPath = $true - sharePointDesigner = $true - excel = $false - lync = $false - oneNote = $false - outlook = $false - powerPoint = $false - publisher = $false - teams = $false - word = $false - access = $false - bing = $false - } - foreach ($ExcludedApp in $request.body.excludedApps.value) { - $ExcludedApps.$excludedapp = $true - } - $ObjBody = [pscustomobject]@{ - '@odata.type' = '#microsoft.graph.officeSuiteApp' - 'displayName' = 'Microsoft 365 Apps for Windows 10 and later' - 'description' = 'Microsoft 365 Apps for Windows 10 and later' - 'informationUrl' = 'https://products.office.com/en-us/explore-office-for-home' - 'isFeatured' = $true - 'publisher' = 'Microsoft' - 'notes' = '' - 'owner' = 'Microsoft' - 'autoAcceptEula' = [bool]$request.body.AcceptLicense - 'excludedApps' = $ExcludedApps - 'officePlatformArchitecture' = $Arch - 'officeSuiteAppDefaultFileFormat' = 'OfficeOpenXMLFormat' - 'localesToInstall' = @($request.body.languages.value) - 'shouldUninstallOlderVersionsOfOffice' = [bool]$request.body.RemoveVersions - 'updateChannel' = $request.body.updateChannel.value - 'useSharedComputerActivation' = [bool]$request.body.SharedComputerActivation - 'productIds' = $products - 'largeIcon' = @{ - 'type' = 'image/png' - 'value' = 'iVBORw0KGgoAAAANSUhEUgAAAF0AAAAeCAMAAAEOZNKlAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJhUExURf////7z7/i9qfF1S/KCW/i+qv3q5P/9/PrQwfOMae1RG+s8AOxGDfBtQPWhhPvUx/759/zg1vWgg+9fLu5WIvKFX/rSxP728/nCr/FyR+tBBvOMaO1UH+1RHOs+AvSScP3u6f/+/v3s5vzg1+xFDO9kNPOOa/i7pvzj2/vWyes9Af76+Pzh2PrTxf/6+f7y7vOGYexHDv3t5+1SHfi8qPOIZPvb0O1NFuxDCe9hMPSVdPnFs/3q4/vaz/STcu5VIe5YJPWcfv718v/9/e1MFfF4T/F4TvF2TP3o4exECvF0SexIEPONavzn3/vZze1QGvF3Te5dK+5cKvrPwPrQwvKAWe1OGPexmexKEveulfezm/BxRfamiuxLE/apj/zf1e5YJfSXd/OHYv3r5feznPakiPze1P7x7f739f3w6+xJEfnEsvWdf/Wfge1LFPe1nu9iMvnDsfBqPOs/BPOIY/WZevJ/V/zl3fnIt/vTxuxHD+xEC+9mN+5ZJv749vBpO/KBWvBwRP/8+/SUc/etlPjArP/7+vOLZ/F7UvWae/708e1OF/aihvSWdvi8p+tABfSZefvVyPWihfSVde9lNvami+9jM/zi2fKEXvBuQvOKZvalifF5UPJ/WPSPbe9eLfrKuvvd0uxBB/7w7Pzj2vrRw/rOv+1PGfi/q/eymu5bKf3n4PnJuPBrPf3t6PWfgvWegOxCCO9nOO9oOfaskvSYePi5pPi2oPnGtO5eLPevlvKDXfrNvv739Pzd0/708O9gL+9lNfJ9VfrLu/OPbPnDsPBrPus+A/nArfarkQAAAGr5HKgAAADLdFJOU/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AvuakogAAAAlwSFlzAAAOwwAADsMBx2+oZAAAAz5JREFUOE+tVTtu4zAQHQjppmWzwIJbEVCzpTpjbxD3grQHSOXKRXgCAT6EC7UBVAmp3KwBnmvfzNCyZTmxgeTZJsXx43B+HBHRE34ZkXgkerXFTheeiCkRrbB4UXmp4wSWz5raaQEMTM5TZwuiXoaKgV+6FsmkZQcSy0kA71yMTMGHanX+AzMMGLAQCxU1F/ZwjULPugazl82GM0NEKm/U8EqFwEkO3/EAT4grgl0nucwlk9pcpTTJ4VPA4g/Rb3yIRhhp507e9nTQmZ1OS5RO4sS7nIRPEeHXCHdkw9ZEW2yVE5oIS7peD58Avs7CN+PVCmHh21oOqBdjDzIs+FldPJ74TFESUSJEfVzy9U/dhu+AuOT6eBp6gGKyXEx8euO450ZE4CMfstMFT44broWw/itkYErWXRx+fFArt9Ca9os78TFed0LVIUsmIHrwbwaw3BEOnOk94qVpQ6Ka2HjxewJnfyd6jUtGDQLdWlzmYNYLeKbbGOucJsNabCq1Yub0o92rtR+i30V2dapxYVEePXcOjeCKPnYyit7BtKeNlZqHbr+gt7i+AChWA9RsRs03pxTQc67ouWpxyESvjK5Vs3DVSy3IpkxPm5X+wZoBi+MFHWW69/w8FRhc7VBe6HAhMB2b8Q0XqDzTNZtXUMnKMjwKVaCrB/CSUL7WSx/HsdJC86lFGXwnioTeOMPjV+szlFvrZLA5VMVK4y+41l4e1xfx7Z88o4hkilRUH/qKqwNVlgDgpvYCpH3XwAy5eMCRnezIUxffVXoDql2rTHFDO+pjWnTWzAfrYXn6BFECblUpWGrvPZvBipETjS5ydM7tdXpH41ZCEbBNy/+wFZu71QO2t9pgT+iZEf657Q1vpN94PQNDxUHeKR103LV9nPVOtDikcNKO+2naCw7yKBhOe9Hm79pe8C4/CfC2wDjXnqC94kEeBU3WwN7dt/2UScXas7zDl5GpkY+M8WKv2J7fd4Ib2rGTk+jsC2cleEM7jI9veF7B0MBJrsZqfKd/81q9pR2NZfwJK2JzsmIT1Ns8jUH0UusQBpU8d2JzsHiXg1zXGLqxfitUNTDT/nUUeqDBp2HZVr+Ocqi/Ty3Rf4Jn82xxfSNtAAAAAElFTkSuQmCC' + # Check if custom XML is provided + if ($Request.Body.useCustomXml -and $Request.Body.customXml) { + # Use custom XML configuration + $ObjBody = [pscustomobject]@{ + '@odata.type' = '#microsoft.graph.officeSuiteApp' + 'displayName' = 'Microsoft 365 Apps for Windows 10 and later' + 'description' = 'Microsoft 365 Apps for Windows 10 and later' + 'informationUrl' = 'https://products.office.com/en-us/explore-office-for-home' + 'privacyInformationUrl' = 'https://privacy.microsoft.com/en-us/privacystatement' + 'isFeatured' = $true + 'publisher' = 'Microsoft' + 'notes' = '' + 'owner' = 'Microsoft' + 'officeConfigurationXml' = [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($request.body.customXml)) + 'largeIcon' = @{ + '@odata.type' = 'microsoft.graph.mimeContent' + 'type' = 'image/png' + 'value' = 'iVBORw0KGgoAAAANSUhEUgAAAF0AAAAeCAMAAAEOZNKlAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJhUExURf////7z7/i9qfF1S/KCW/i+qv3q5P/9/PrQwfOMae1RG+s8AOxGDfBtQPWhhPvUx/759/zg1vWgg+9fLu5WIvKFX/rSxP728/nCr/FyR+tBBvOMaO1UH+1RHOs+AvSScP3u6f/+/v3s5vzg1+xFDO9kNPOOa/i7pvzj2/vWyes9Af76+Pzh2PrTxf/6+f7y7vOGYexHDv3t5+1SHfi8qPOIZPvb0O1NFuxDCe9hMPSVdPnFs/3q4/vaz/STcu5VIe5YJPWcfv718v/9/e1MFfF4T/F4TvF2TP3o4exECvF0SexIEPONavzn3/vZze1QGvF3Te5dK+5cKvrPwPrQwvKAWe1OGPexmexKEveulfezm/BxRfamiuxLE/apj/zf1e5YJfSXd/OHYv3r5feznPakiPze1P7x7f739f3w6+xJEfnEsvWdf/Wfge1LFPe1nu9iMvnDsfBqPOs/BPOIY/WZevJ/V/zl3fnIt/vTxuxHD+xEC+9mN+5ZJv749vBpO/KBWvBwRP/8+/SUc/etlPjArP/7+vOLZ/F7UvWae/708e1OF/aihvSWdvi8p+tABfSZefvVyPWihfSVde9lNvami+9jM/zi2fKEXvBuQvOKZvalifF5UPJ/WPSPbe9eLfrKuvvd0uxBB/7w7Pzj2vrRw/rOv+1PGfi/q/eymu5bKf3n4PnJuPBrPf3t6PWfgvWegOxCCO9nOO9oOfaskvSYePi5pPi2oPnGtO5eLPevlvKDXfrNvv739Pzd0/708O9gL+9lNfJ9VfrLu/OPbPnDsPBrPus+A/nArfarkQAAAGr5HKgAAADLdFJOU/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AvuakogAAAAlwSFlzAAAOwwAADsMBx2+oZAAAAz5JREFUOE+tVTtu4zAQHQjppmWzwIJbEVCzpTpjbxD3grQHSOXKRXgCAT6EC7UBVAmp3KwBnmvfzNCyZTmxgeTZJsXx43B+HBHRE34ZkXgkerXFTheeiCkRrbB4UXmp4wSWz5raaQEMTM5TZwuiXoaKgV+6FsmkZQcSy0kA71yMTMGHanX+AzMMGLAQCxU1F/ZwjULPugazl82GM0NEKm/U8EqFwEkO3/EAT4grgl0nucwlk9pcpTTJ4VPA4g/Rb3yIRhhp507e9nTQmZ1OS5RO4sS7nIRPEeHXCHdkw9ZEW2yVE5oIS7peD58Avs7CN+PVCmHh21oOqBdjDzIs+FldPJ74TFESUSJEfVzy9U/dhu+AuOT6eBp6gGKyXEx8euO450ZE4CMfstMFT44broWw/itkYErWXRx+fFArt9Ca9os78TFed0LVIUsmIHrwbwaw3BEOnOk94qVpQ6Ka2HjxewJnfyd6jUtGDQLdWlzmYNYLeKbbGOucJsNabCq1Yub0o92rtR+i30V2dapxYVEePXcOjeCKPnYyit7BtKeNlZqHbr+gt7i+AChWA9RsRs03pxTQc67ouWpxyESvjK5Vs3DVSy3IpkxPm5X+wZoBi+MFHWW69/w8FRhc7VBe6HAhMB2b8Q0XqDzTNZtXUMnKMjwKVaCrB/CSUL7WSx/HsdJC86lFGXwnioTeOMPjV+szlFvrZLA5VMVK4y+41l4e1xfx7Z88o4hkilRUH/qKqwNVlgDgpvYCpH3XwAy5eMCRnezIUxffVXoDql2rTHFDO+pjWnTWzAfrYXn6BFECblUpWGrvPZvBipETjS5ydM7tdXpH41ZCEbBNy/+wFZu71QO2t9pgT+iZEf657Q1vpN94PQNDxUHeKR103LV9nPVOtDikcNKO+2naCw7yKBhOe9Hm79pe8C4/CfC2wDjXnqC94kEeBU3WwN7dt/2UScXas7zDl5GpkY+M8WKv2J7fd4Ib2rGTk+jsC2cleEM7jI9veF7B0MBJrsZqfKd/81q9pR2NZfwJK2JzsmIT1Ns8jUH0UusQBpU8d2JzsHiXg1zXGLqxfitUNTDT/nUUeqDBp2HZVr+Ocqi/Ty3Rf4Jn82xxfSNtAAAAAElFTkSuQmCC' + } + } + } else { + # Use standard configuration + $Arch = if ($Request.Body.arch) { 'x64' } else { 'x86' } + $products = @('o365ProPlusRetail') + $ExcludedApps = [pscustomobject]@{ + infoPath = $true + sharePointDesigner = $true + excel = $false + lync = $false + oneNote = $false + outlook = $false + powerPoint = $false + publisher = $false + teams = $false + word = $false + access = $false + bing = $false + } + foreach ($ExcludedApp in $Request.Body.excludedApps.value) { + $ExcludedApps.$ExcludedApp = $true + } + $ObjBody = [pscustomobject]@{ + '@odata.type' = '#microsoft.graph.officeSuiteApp' + 'displayName' = 'Microsoft 365 Apps for Windows 10 and later' + 'description' = 'Microsoft 365 Apps for Windows 10 and later' + 'informationUrl' = 'https://products.office.com/en-us/explore-office-for-home' + 'privacyInformationUrl' = 'https://privacy.microsoft.com/en-us/privacystatement' + 'isFeatured' = $true + 'publisher' = 'Microsoft' + 'notes' = '' + 'owner' = 'Microsoft' + 'autoAcceptEula' = [bool]$Request.Body.AcceptLicense + 'excludedApps' = $ExcludedApps + 'officePlatformArchitecture' = $Arch + 'officeSuiteAppDefaultFileFormat' = 'OfficeOpenXMLFormat' + 'localesToInstall' = @($Request.Body.languages.value) + 'shouldUninstallOlderVersionsOfOffice' = [bool]$Request.Body.RemoveVersions + 'updateChannel' = $Request.Body.updateChannel.value + 'useSharedComputerActivation' = [bool]$Request.Body.SharedComputerActivation + 'productIds' = $products + 'largeIcon' = @{ + '@odata.type' = 'microsoft.graph.mimeContent' + 'type' = 'image/png' + 'value' = 'iVBORw0KGgoAAAANSUhEUgAAAF0AAAAeCAMAAAEOZNKlAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJhUExURf////7z7/i9qfF1S/KCW/i+qv3q5P/9/PrQwfOMae1RG+s8AOxGDfBtQPWhhPvUx/759/zg1vWgg+9fLu5WIvKFX/rSxP728/nCr/FyR+tBBvOMaO1UH+1RHOs+AvSScP3u6f/+/v3s5vzg1+xFDO9kNPOOa/i7pvzj2/vWyes9Af76+Pzh2PrTxf/6+f7y7vOGYexHDv3t5+1SHfi8qPOIZPvb0O1NFuxDCe9hMPSVdPnFs/3q4/vaz/STcu5VIe5YJPWcfv718v/9/e1MFfF4T/F4TvF2TP3o4exECvF0SexIEPONavzn3/vZze1QGvF3Te5dK+5cKvrPwPrQwvKAWe1OGPexmexKEveulfezm/BxRfamiuxLE/apj/zf1e5YJfSXd/OHYv3r5feznPakiPze1P7x7f739f3w6+xJEfnEsvWdf/Wfge1LFPe1nu9iMvnDsfBqPOs/BPOIY/WZevJ/V/zl3fnIt/vTxuxHD+xEC+9mN+5ZJv749vBpO/KBWvBwRP/8+/SUc/etlPjArP/7+vOLZ/F7UvWae/708e1OF/aihvSWdvi8p+tABfSZefvVyPWihfSVde9lNvami+9jM/zi2fKEXvBuQvOKZvalifF5UPJ/WPSPbe9eLfrKuvvd0uxBB/7w7Pzj2vrRw/rOv+1PGfi/q/eymu5bKf3n4PnJuPBrPf3t6PWfgvWegOxCCO9nOO9oOfaskvSYePi5pPi2oPnGtO5eLPevlvKDXfrNvv739Pzd0/708O9gL+9lNfJ9VfrLu/OPbPnDsPBrPus+A/nArfarkQAAAGr5HKgAAADLdFJOU/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AvuakogAAAAlwSFlzAAAOwwAADsMBx2+oZAAAAz5JREFUOE+tVTtu4zAQHQjppmWzwIJbEVCzpTpjbxD3grQHSOXKRXgCAT6EC7UBVAmp3KwBnmvfzNCyZTmxgeTZJsXx43B+HBHRE34ZkXgkerXFTheeiCkRrbB4UXmp4wSWz5raaQEMTM5TZwuiXoaKgV+6FsmkZQcSy0kA71yMTMGHanX+AzMMGLAQCxU1F/ZwjULPugazl82GM0NEKm/U8EqFwEkO3/EAT4grgl0nucwlk9pcpTTJ4VPA4g/Rb3yIRhhp507e9nTQmZ1OS5RO4sS7nIRPEeHXCHdkw9ZEW2yVE5oIS7peD58Avs7CN+PVCmHh21oOqBdjDzIs+FldPJ74TFESUSJEfVzy9U/dhu+AuOT6eBp6gGKyXEx8euO450ZE4CMfstMFT44broWw/itkYErWXRx+fFArt9Ca9os78TFed0LVIUsmIHrwbwaw3BEOnOk94qVpQ6Ka2HjxewJnfyd6jUtGDQLdWlzmYNYLeKbbGOucJsNabCq1Yub0o92rtR+i30V2dapxYVEePXcOjeCKPnYyit7BtKeNlZqHbr+gt7i+AChWA9RsRs03pxTQc67ouWpxyESvjK5Vs3DVSy3IpkxPm5X+wZoBi+MFHWW69/w8FRhc7VBe6HAhMB2b8Q0XqDzTNZtXUMnKMjwKVaCrB/CSUL7WSx/HsdJC86lFGXwnioTeOMPjV+szlFvrZLA5VMVK4y+41l4e1xfx7Z88o4hkilRUH/qKqwNVlgDgpvYCpH3XwAy5eMCRnezIUxffVXoDql2rTHFDO+pjWnTWzAfrYXn6BFECblUpWGrvPZvBipETjS5ydM7tdXpH41ZCEbBNy/+wFZu71QO2t9pgT+iZEf657Q1vpN94PQNDxUHeKR103LV9nPVOtDikcNKO+2naCw7yKBhOe9Hm79pe8C4/CfC2wDjXnqC94kEeBU3WwN7dt/2UScXas7zDl5GpkY+M8WKv2J7fd4Ib2rGTk+jsC2cleEM7jI9veF7B0MBJrsZqfKd/81q9pR2NZfwJK2JzsmIT1Ns8jUH0UusQBpU8d2JzsHiXg1zXGLqxfitUNTDT/nUUeqDBp2HZVr+Ocqi/Ty3Rf4Jn82xxfSNtAAAAAElFTkSuQmCC' + } } } Write-Host ($ObjBody | ConvertTo-Json -Compress) $OfficeAppID = New-graphPostRequest -Uri 'https://graph.microsoft.com/beta/deviceAppManagement/mobileApps' -tenantid $tenant -Body (ConvertTo-Json -InputObject $ObjBody -Depth 10) -type POST } else { "Office deployment already exists for $($Tenant)" - Continue + continue } - Write-LogMessage -headers $Request.Headers -API $APIName -tenant $($tenant) -message "Added Office profile to $($tenant)" -Sev 'Info' + Write-LogMessage -headers $Headers -API $APIName -tenant $($Tenant) -message "Added Office profile to $($Tenant)" -Sev 'Info' if ($AssignTo) { $AssignO365 = if ($AssignTo -ne 'AllDevicesAndUsers') { '{"mobileAppAssignments":[{"@odata.type":"#microsoft.graph.mobileAppAssignment","target":{"@odata.type":"#microsoft.graph.' + $($AssignTo) + 'AssignmentTarget"},"intent":"Required"}]}' } else { '{"mobileAppAssignments":[{"@odata.type":"#microsoft.graph.mobileAppAssignment","target":{"@odata.type":"#microsoft.graph.allDevicesAssignmentTarget"},"intent":"Required"},{"@odata.type":"#microsoft.graph.mobileAppAssignment","target":{"@odata.type":"#microsoft.graph.allLicensedUsersAssignmentTarget"},"intent":"Required"}]}' } Write-Host ($AssignO365) - New-graphPostRequest -Uri "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps/$($OfficeAppID.id)/assign" -tenantid $tenant -Body $AssignO365 -type POST - Write-LogMessage -headers $Request.Headers -API $APIName -tenant $($tenant) -message "Assigned Office to $AssignTo" -Sev 'Info' + New-GraphPOSTRequest -Uri "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps/$($OfficeAppID.id)/assign" -tenantid $Tenant -Body $AssignO365 -type POST + Write-LogMessage -headers $Headers -API $APIName -tenant $($Tenant) -message "Assigned Office to $AssignTo" -Sev 'Info' } "Successfully added Office App for $($Tenant)" } catch { - "Failed to add Office App for $($Tenant): $($_.Exception.Message)" - Write-LogMessage -headers $Request.Headers -API $APIName -tenant $($tenant) -message "Failed to add Office App. Error: $($_.Exception.Message)" -Sev 'Error' + $ErrorMessage = Get-CippException -Exception $_ + "Failed to add Office App for $($Tenant): $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $($Tenant) -message "Failed to add Office App. Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -Logdata $ErrorMessage continue } } - $body = [pscustomobject]@{'Results' = $results } - - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK - Body = $body + Body = @{'Results' = $Results } }) - - - } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddStoreApp.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddStoreApp.ps1 index e8e069a5dd40..af6eb44c1be7 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddStoreApp.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddStoreApp.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-AddStoreApp { +function Invoke-AddStoreApp { <# .FUNCTIONALITY Entrypoint @@ -12,10 +10,10 @@ Function Invoke-AddStoreApp { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $WinGetApp = $Request.Body - $assignTo = $Request.body.AssignTo + $assignTo = $Request.Body.AssignTo -eq 'customGroup' ? $Request.Body.CustomGroup : $Request.Body.AssignTo if ($ChocoApp.InstallAsSystem) { 'system' } else { 'user' } $WinGetData = [ordered]@{ @@ -58,8 +56,7 @@ Function Invoke-AddStoreApp { $body = [pscustomobject]@{'Results' = $Results } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ExecAppUpload.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ExecAppUpload.ps1 index 49dd04da6a61..a1dcb247e382 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ExecAppUpload.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ExecAppUpload.ps1 @@ -31,7 +31,7 @@ function Invoke-ExecAppUpload { } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Results }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ExecAssignApp.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ExecAssignApp.ps1 index 8f7e77dbe5f4..6733e150366f 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ExecAssignApp.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ExecAssignApp.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ExecAssignApp { +function Invoke-ExecAssignApp { <# .FUNCTIONALITY Entrypoint @@ -12,48 +10,101 @@ Function Invoke-ExecAssignApp { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter $appFilter = $Request.Query.ID ?? $Request.Body.ID $AssignTo = $Request.Query.AssignTo ?? $Request.Body.AssignTo - $AssignBody = switch ($AssignTo) { + $Intent = $Request.Query.Intent ?? $Request.Body.Intent + $AppType = $Request.Query.AppType ?? $Request.Body.AppType + $GroupNamesRaw = $Request.Query.GroupNames ?? $Request.Body.GroupNames + $GroupIdsRaw = $Request.Query.GroupIds ?? $Request.Body.GroupIds + $AssignmentMode = $Request.Body.assignmentMode + + $Intent = if ([string]::IsNullOrWhiteSpace($Intent)) { 'Required' } else { $Intent } - 'AllUsers' { - @' -{"mobileAppAssignments":[{"@odata.type":"#microsoft.graph.mobileAppAssignment","target":{"@odata.type":"#microsoft.graph.allLicensedUsersAssignmentTarget"},"intent":"Required","settings":null}]} -'@ + if ([string]::IsNullOrWhiteSpace($AssignmentMode)) { + $AssignmentMode = 'replace' + } else { + $AssignmentMode = $AssignmentMode.ToLower() + if ($AssignmentMode -notin @('replace', 'append')) { + throw "Unsupported AssignmentMode value '$AssignmentMode'. Valid options are 'replace' or 'append'." } + } + + function Get-StandardizedAssignmentList { + param($InputObject) - 'AllDevices' { - @' -{"mobileAppAssignments":[{"@odata.type":"#microsoft.graph.mobileAppAssignment","target":{"@odata.type":"#microsoft.graph.allDevicesAssignmentTarget"},"intent":"Required","settings":null}]} -'@ + if ($null -eq $InputObject -or ($InputObject -is [string] -and [string]::IsNullOrWhiteSpace($InputObject))) { + return @() } + if ($InputObject -is [string]) { + return ($InputObject -split ',') | ForEach-Object { $_.Trim() } | Where-Object { $_ } + } + if ($InputObject -is [System.Collections.IEnumerable]) { + return @($InputObject | Where-Object { $_ }) + } + return @($InputObject) + } + + $GroupNames = Get-StandardizedAssignmentList -InputObject $GroupNamesRaw + $GroupIds = Get-StandardizedAssignmentList -InputObject $GroupIdsRaw + + if (-not $AssignTo -and $GroupIds.Count -eq 0 -and $GroupNames.Count -eq 0) { + throw 'No assignment target provided. Supply AssignTo, GroupNames, or GroupIds.' + } - 'Both' { - @' -{"mobileAppAssignments":[{"@odata.type":"#microsoft.graph.mobileAppAssignment","target":{"@odata.type":"#microsoft.graph.allLicensedUsersAssignmentTarget"},"intent":"Required","settings":null},{"@odata.type":"#microsoft.graph.mobileAppAssignment","target":{"@odata.type":"#microsoft.graph.allDevicesAssignmentTarget"},"intent":"Required","settings":null}]} -'@ + # Try to get the application type if not provided. Mostly just useful for ppl using the API that dont know the application type. + if (-not $AppType) { + try { + $AppMetadata = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps/$appFilter" -tenantid $TenantFilter + $odataType = $AppMetadata.'@odata.type' + if ($odataType) { + $AppType = ($odataType -replace '#microsoft.graph.', '') -replace 'App$' + } + } catch { + Write-Warning "Unable to resolve application type for $appFilter. Continuing without assignment settings." } + } + + $targetLabel = if ($AssignTo) { + $AssignTo + } elseif ($GroupNames.Count -gt 0) { + ($GroupNames -join ', ') + } elseif ($GroupIds.Count -gt 0) { + "GroupIds: $($GroupIds -join ',')" + } else { + 'CustomGroupAssignment' + } + + $setParams = @{ + ApplicationId = $appFilter + TenantFilter = $TenantFilter + Intent = $Intent + APIName = $APIName + Headers = $Headers + GroupName = ($AssignTo ? $AssignTo : $targetLabel) + AssignmentMode = $AssignmentMode + } + + if ($AppType) { + $setParams.AppType = $AppType + } + if ($GroupIds.Count -gt 0) { + $setParams.GroupIds = $GroupIds } + try { - $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps/$appFilter/assign" -tenantid $TenantFilter -body $AssignBody - $Result = "Successfully assigned app $($appFilter) to $($AssignTo)" - Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message $Result -Sev Info + $Result = Set-CIPPAssignedApplication @setParams $StatusCode = [HttpStatusCode]::OK - } catch { - $ErrorMessage = Get-CippException -Exception $_ - $Result = "Failed to assign app $($appFilter) to $($AssignTo). Error: $($ErrorMessage.NormalizedError)" - Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev 'Error' -LogData $ErrorMessage + $Result = $_.Exception.Message $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ Results = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ExecSyncVPP.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ExecSyncVPP.ps1 new file mode 100644 index 000000000000..2dc3f4ed534a --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ExecSyncVPP.ps1 @@ -0,0 +1,44 @@ +function Invoke-ExecSyncVPP { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.Application.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev Debug + + $TenantFilter = $Request.Body.tenantFilter ?? $Request.Query.tenantFilter + try { + # Get all VPP tokens and sync them + $VppTokens = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceAppManagement/vppTokens' -tenantid $TenantFilter | Where-Object { $_.state -eq 'valid' } + + if ($null -eq $VppTokens -or $VppTokens.Count -eq 0) { + $Result = 'No VPP tokens found' + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev Info + } else { + $SyncCount = 0 + foreach ($Token in $VppTokens) { + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceAppManagement/vppTokens/$($Token.id)/syncLicenses" -tenantid $TenantFilter + $SyncCount++ + } + $Result = "Successfully started VPP sync for $SyncCount tokens" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev Info + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = 'Failed to start VPP sync' + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::Forbidden + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ Results = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ListApplicationQueue.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ListApplicationQueue.ps1 index a1109f79386a..aa9b53145eb4 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ListApplicationQueue.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ListApplicationQueue.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListApplicationQueue { <# .FUNCTIONALITY @@ -9,12 +7,6 @@ Function Invoke-ListApplicationQueue { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - $Table = Get-CippTable -tablename 'apps' $QueuedApps = (Get-CIPPAzDataTableEntity @Table) @@ -32,8 +24,7 @@ Function Invoke-ListApplicationQueue { } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($CurrentApps) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ListApps.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ListApps.ps1 index 6fb8e46dc801..d7376956e5c6 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ListApps.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ListApps.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ListApps { +function Invoke-ListApps { <# .FUNCTIONALITY Entrypoint @@ -9,18 +7,60 @@ Function Invoke-ListApps { #> [CmdletBinding()] param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.TenantFilter + try { + # Use bulk requests to get groups and apps with assignments + $BulkRequests = @( + @{ + id = 'Groups' + method = 'GET' + url = '/groups?$top=999&$select=id,displayName' + } + @{ + id = 'Apps' + method = 'GET' + url = "/deviceAppManagement/mobileApps?`$top=999&`$expand=assignments&`$filter=(microsoft.graph.managedApp/appAvailability%20eq%20null%20or%20microsoft.graph.managedApp/appAvailability%20eq%20%27lineOfBusiness%27%20or%20isAssigned%20eq%20true)&`$orderby=displayName" + } + ) - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $BulkResults = New-GraphBulkRequest -Requests $BulkRequests -tenantid $TenantFilter + # Extract groups for resolving assignment names + $Groups = ($BulkResults | Where-Object { $_.id -eq 'Groups' }).body.value + $Apps = ($BulkResults | Where-Object { $_.id -eq 'Apps' }).body.value + $GraphRequest = foreach ($App in $Apps) { + # Process assignments + $AppAssignment = [System.Collections.Generic.List[string]]::new() + $AppExclude = [System.Collections.Generic.List[string]]::new() + if ($App.assignments) { + foreach ($Assignment in $App.assignments) { + $target = $Assignment.target + $intent = $Assignment.intent + $intentSuffix = if ($intent) { " ($intent)" } else { '' } + + switch ($target.'@odata.type') { + '#microsoft.graph.allDevicesAssignmentTarget' { $AppAssignment.Add("All Devices$intentSuffix") } + '#microsoft.graph.allLicensedUsersAssignmentTarget' { $AppAssignment.Add("All Licensed Users$intentSuffix") } + '#microsoft.graph.groupAssignmentTarget' { + $groupName = ($Groups | Where-Object { $_.id -eq $target.groupId }).displayName + if ($groupName) { $AppAssignment.Add("$groupName$intentSuffix") } + } + '#microsoft.graph.exclusionGroupAssignmentTarget' { + $groupName = ($Groups | Where-Object { $_.id -eq $target.groupId }).displayName + if ($groupName) { $AppExclude.Add($groupName) } + } + } + } + } + + $App | Add-Member -NotePropertyName 'AppAssignment' -NotePropertyValue ($AppAssignment -join ', ') -Force + $App | Add-Member -NotePropertyName 'AppExclude' -NotePropertyValue ($AppExclude -join ', ') -Force + $App + } - # Interact with query parameters or the body of the request. - $TenantFilter = $Request.Query.TenantFilter - try { - $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps?`$top=999&`$filter=(microsoft.graph.managedApp/appAvailability%20eq%20null%20or%20microsoft.graph.managedApp/appAvailability%20eq%20%27lineOfBusiness%27%20or%20isAssigned%20eq%20true)&`$orderby=displayName&" -tenantid $TenantFilter $StatusCode = [HttpStatusCode]::OK } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message @@ -28,8 +68,7 @@ Function Invoke-ListApps { $GraphRequest = $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @($GraphRequest) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ListAppsRepository.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ListAppsRepository.ps1 index 59f20040b031..c79b99f2550e 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ListAppsRepository.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ListAppsRepository.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListAppsRepository { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ Function Invoke-ListAppsRepository { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $Search = $Request.Body.Search $Repository = $Request.Body.Repository $Packages = @() @@ -64,7 +57,7 @@ Function Invoke-ListAppsRepository { IsError = $IsError } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $PackageSearch }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-RemoveApp.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-RemoveApp.ps1 index 3f9f1b3596f4..16f5f4444160 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-RemoveApp.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-RemoveApp.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-RemoveApp { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-RemoveApp { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter @@ -32,8 +30,7 @@ Function Invoke-RemoveApp { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{'Results' = "$Result" } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-RemoveQueuedApp.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-RemoveQueuedApp.ps1 new file mode 100644 index 000000000000..f54ceb7c2cac --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-RemoveQueuedApp.ps1 @@ -0,0 +1,37 @@ +using namespace System.Net + +function Invoke-RemoveQueuedApp { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.Application.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $ID = $request.body.ID + try { + $Table = Get-CippTable -tablename 'apps' + $Filter = "PartitionKey eq 'apps' and RowKey eq '$ID'" + $ClearRow = Get-CIPPAzDataTableEntity @Table -Filter $Filter -Property PartitionKey, RowKey + Remove-AzDataTableEntity -Force @Table -Entity $ClearRow + $Message = "Removed application queue for $ID." + Write-LogMessage -Headers $Request.Headers -API $APIName -message $Message -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to remove application queue for $ID. $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Request.Headers -API $APIName -message $Message -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::Forbidden + } + + $body = [pscustomobject]@{'Results' = $Message } + return [HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $body + } + + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-AddAPDevice.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-AddAPDevice.ps1 index b63f3ae3f6b4..fc54f6a3bc74 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-AddAPDevice.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-AddAPDevice.ps1 @@ -1,31 +1,29 @@ -using namespace System.Net - -Function Invoke-AddAPDevice { +function Invoke-AddAPDevice { <# .FUNCTIONALITY Entrypoint .ROLE Endpoint.Autopilot.ReadWrite + .DESCRIPTION + Adds Autopilot devices to a tenant via Partner Center API #> [CmdletBinding()] param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - - $TenantFilter = (Get-Tenants | Where-Object { $_.defaultDomainName -eq $Request.body.TenantFilter.value }).customerId - $GroupName = if ($Request.body.Groupname) { $Request.body.Groupname } else { (New-Guid).GUID } + $TenantFilter = (Get-Tenants | Where-Object { $_.defaultDomainName -eq $Request.Body.TenantFilter.value }).customerId + $GroupName = if ($Request.Body.Groupname) { $Request.Body.Groupname } else { (New-Guid).GUID } Write-Host $GroupName - $rawDevices = $request.body.autopilotData + + $rawDevices = $Request.Body.autopilotData $Devices = ConvertTo-Json @($rawDevices) $Result = try { - $CurrentStatus = (New-GraphgetRequest -uri "https://api.partnercenter.microsoft.com/v1/customers/$tenantfilter/DeviceBatches" -scope 'https://api.partnercenter.microsoft.com/user_impersonation') - if ($groupname -in $CurrentStatus.items.id) { + $CurrentStatus = (New-GraphGetRequest -uri "https://api.partnercenter.microsoft.com/v1/customers/$TenantFilter/DeviceBatches" -scope 'https://api.partnercenter.microsoft.com/user_impersonation') + if ($GroupName -in $CurrentStatus.items.id) { Write-Host 'Gonna do an update!' - $body = $request.body.autopilotData | ForEach-Object { + $Body = $Request.Body.autopilotData | ForEach-Object { $Device = $_ [pscustomobject]@{ deviceBatchId = $GroupName @@ -36,20 +34,20 @@ Function Invoke-AddAPDevice { modelName = $Device.modelName } } - $body = ConvertTo-Json -Depth 10 -Compress -InputObject @($body) - Write-Host $body - $GraphRequest = (New-GraphPostRequest -returnHeaders $true -uri "https://api.partnercenter.microsoft.com/v1/customers/$TenantFilter/deviceBatches/$groupname/devices" -body $body -scope 'https://api.partnercenter.microsoft.com/user_impersonation') + $Body = ConvertTo-Json -Depth 10 -Compress -InputObject @($Body) + Write-Host $Body + $GraphRequest = (New-GraphPOSTRequest -returnHeaders $true -uri "https://api.partnercenter.microsoft.com/v1/customers/$TenantFilter/deviceBatches/$GroupName/devices" -body $Body -scope 'https://api.partnercenter.microsoft.com/user_impersonation') } else { - $body = '{"batchId":"' + $($GroupName) + '","devices":' + $Devices + '}' - $GraphRequest = (New-GraphPostRequest -returnHeaders $true -uri "https://api.partnercenter.microsoft.com/v1/customers/$TenantFilter/DeviceBatches" -body $body -scope 'https://api.partnercenter.microsoft.com/user_impersonation') + $Body = '{"batchId":"' + $($GroupName) + '","devices":' + $Devices + '}' + $GraphRequest = (New-GraphPOSTRequest -returnHeaders $true -uri "https://api.partnercenter.microsoft.com/v1/customers/$TenantFilter/DeviceBatches" -body $Body -scope 'https://api.partnercenter.microsoft.com/user_impersonation') } $Amount = 0 do { Write-Host "Checking status of import job for $GroupName" - $amount ++ + $Amount++ Start-Sleep 1 - $NewStatus = New-GraphgetRequest -uri "https://api.partnercenter.microsoft.com/v1/$($GraphRequest.Location)" -scope 'https://api.partnercenter.microsoft.com/user_impersonation' - } until ($Newstatus.status -eq 'finished' -or $amount -eq 4) + $NewStatus = New-GraphGetRequest -uri "https://api.partnercenter.microsoft.com/v1/$($GraphRequest.Location)" -scope 'https://api.partnercenter.microsoft.com/user_impersonation' + } until ($NewStatus.status -eq 'finished' -or $Amount -eq 4) if ($NewStatus.status -ne 'finished') { throw 'Could not retrieve status of import - This job might still be running. Check the autopilot device list in 10 minutes for the latest status.' } Write-LogMessage -headers $Request.Headers -API $APIName -tenant $($Request.body.TenantFilter.value) -message "Created Autopilot devices group. Group ID is $GroupName" -Sev 'Info' @@ -57,21 +55,19 @@ Function Invoke-AddAPDevice { Status = 'Import Job Completed' Devices = @($NewStatus.devicesStatus) } + $StatusCode = [HttpStatusCode]::OK } catch { + $ErrorMessage = Get-CippException -Exception $_ + $StatusCode = [HttpStatusCode]::InternalServerError [PSCustomObject]@{ - Status = "$($Request.body.TenantFilter.value): Failed to create autopilot devices. $($_.Exception.Message)" + Status = "$($Request.Body.TenantFilter.value): Failed to create autopilot devices. $($ErrorMessage.NormalizedError)" Devices = @() } - Write-LogMessage -headers $Request.Headers -API $APIName -tenant $($Request.body.TenantFilter.value) -message "Failed to create autopilot devices. $($_.Exception.Message)" -Sev 'Error' + Write-LogMessage -headers $Headers -API $APIName -tenant $($Request.Body.TenantFilter.value) -message "Failed to create autopilot devices. $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage } - $body = [pscustomobject]@{'Results' = $Result } - Write-Host $body - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $body - + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } }) - } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-AddAutopilotConfig.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-AddAutopilotConfig.ps1 index 5112dc52d091..ce2435d59f9f 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-AddAutopilotConfig.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-AddAutopilotConfig.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-AddAutopilotConfig { +function Invoke-AddAutopilotConfig { <# .FUNCTIONALITY Entrypoint @@ -9,47 +7,37 @@ Function Invoke-AddAutopilotConfig { #> [CmdletBinding()] param($Request, $TriggerMetadata) + # Input bindings are passed in via param block. + $Tenants = $Request.Body.selectedTenants.value + $Profbod = [pscustomobject]$Request.Body + $UserType = if ($Profbod.NotLocalAdmin -eq 'true') { 'standard' } else { 'administrator' } + $DeploymentMode = if ($Profbod.DeploymentMode -eq 'true') { 'shared' } else { 'singleUser' } - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - - + # If deployment mode is shared, disable white glove (pre-provisioning) as it's not supported + $AllowWhiteGlove = if ($DeploymentMode -eq 'shared') { $false } else { $Profbod.allowWhiteGlove } - # Input bindings are passed in via param block. - $Tenants = $Request.body.selectedTenants.value - $AssignTo = if ($request.body.Assignto -ne 'on') { $request.body.Assignto } - $Profbod = [pscustomobject]$Request.body - $usertype = if ($Profbod.NotLocalAdmin -eq 'true') { 'standard' } else { 'administrator' } - $DeploymentMode = if ($profbod.DeploymentMode -eq 'true') { 'shared' } else { 'singleUser' } $profileParams = @{ - displayname = $request.body.Displayname - description = $request.body.Description - usertype = $usertype + DisplayName = $Request.Body.DisplayName + Description = $Request.Body.Description + UserType = $UserType DeploymentMode = $DeploymentMode - assignto = $AssignTo - devicenameTemplate = $Profbod.deviceNameTemplate - allowWhiteGlove = $Profbod.allowWhiteGlove - CollectHash = $Profbod.collectHash - hideChangeAccount = $Profbod.hideChangeAccount - hidePrivacy = $Profbod.hidePrivacy - hideTerms = $Profbod.hideTerms + AssignTo = $Request.Body.Assignto + DeviceNameTemplate = $Profbod.DeviceNameTemplate + AllowWhiteGlove = $AllowWhiteGlove + CollectHash = $Profbod.CollectHash + HideChangeAccount = $Profbod.HideChangeAccount + HidePrivacy = $Profbod.HidePrivacy + HideTerms = $Profbod.HideTerms Autokeyboard = $Profbod.Autokeyboard Language = $ProfBod.languages.value } - $results = foreach ($Tenant in $tenants) { - $profileParams['tenantFilter'] = $Tenant + $Results = foreach ($tenant in $Tenants) { + $profileParams['tenantFilter'] = $tenant Set-CIPPDefaultAPDeploymentProfile @profileParams } - $body = [pscustomobject]@{'Results' = $results } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK - Body = $body + Body = @{'Results' = $Results } }) - - - } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-AddEnrollment.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-AddEnrollment.ps1 index b8f8a4c34fe2..9e183ea6be7c 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-AddEnrollment.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-AddEnrollment.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-AddEnrollment { +function Invoke-AddEnrollment { <# .FUNCTIONALITY Entrypoint @@ -9,27 +7,28 @@ Function Invoke-AddEnrollment { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - - - # Input bindings are passed in via param block. - $Tenants = $Request.body.selectedTenants.value - $Profbod = $Request.body - $results = foreach ($Tenant in $tenants) { - Set-CIPPDefaultAPEnrollment -TenantFilter $Tenant -ShowProgress $Profbod.ShowProgress -BlockDevice $Profbod.blockDevice -AllowReset $Profbod.AllowReset -EnableLog $Profbod.EnableLog -ErrorMessage $Profbod.ErrorMessage -TimeOutInMinutes $Profbod.TimeOutInMinutes -AllowFail $Profbod.AllowFail -OBEEOnly $Profbod.OBEEOnly + $Tenants = $Request.Body.selectedTenants.value + $Profbod = $Request.Body + $Results = foreach ($Tenant in $Tenants) { + $ParamSplat = @{ + TenantFilter = $Tenant + ShowProgress = $Profbod.ShowProgress + BlockDevice = $Profbod.blockDevice + AllowReset = $Profbod.AllowReset + EnableLog = $Profbod.EnableLog + ErrorMessage = $Profbod.ErrorMessage + TimeOutInMinutes = $Profbod.TimeOutInMinutes + AllowFail = $Profbod.AllowFail + OBEEOnly = $Profbod.OBEEOnly + InstallWindowsUpdates = $Profbod.InstallWindowsUpdates + } + Set-CIPPDefaultAPEnrollment @ParamSplat } - $body = [pscustomobject]@{'Results' = $results } - - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK - Body = $body + Body = @{'Results' = $Results } }) } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ExecAssignAPDevice.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ExecAssignAPDevice.ps1 index 2318ec44da7c..16cb73c15e5e 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ExecAssignAPDevice.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ExecAssignAPDevice.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecAssignAPDevice { <# .FUNCTIONALITY @@ -36,8 +34,7 @@ Function Invoke-ExecAssignAPDevice { $Results = [pscustomobject]@{'Results' = "$results" } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $Results }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ExecRenameAPDevice.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ExecRenameAPDevice.ps1 index 8bf8228949f3..b545a48fca38 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ExecRenameAPDevice.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ExecRenameAPDevice.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecRenameAPDevice { <# .FUNCTIONALITY @@ -10,8 +8,6 @@ Function Invoke-ExecRenameAPDevice { [CmdletBinding()] param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' $TenantFilter = $Request.Body.tenantFilter @@ -52,8 +48,7 @@ Function Invoke-ExecRenameAPDevice { } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ Results = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ExecSetAPDeviceGroupTag.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ExecSetAPDeviceGroupTag.ps1 index d4f44ee9a618..28fa75a659d2 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ExecSetAPDeviceGroupTag.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ExecSetAPDeviceGroupTag.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecSetAPDeviceGroupTag { <# .FUNCTIONALITY @@ -11,7 +9,7 @@ Function Invoke-ExecSetAPDeviceGroupTag { param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $TenantFilter = $Request.Body.tenantFilter try { @@ -45,8 +43,7 @@ Function Invoke-ExecSetAPDeviceGroupTag { $StatusCode = [HttpStatusCode]::BadRequest } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ Results = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ExecSyncAPDevices.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ExecSyncAPDevices.ps1 index d29c24ce8bc6..81139053e039 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ExecSyncAPDevices.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ExecSyncAPDevices.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecSyncAPDevices { <# .FUNCTIONALITY @@ -28,8 +26,7 @@ Function Invoke-ExecSyncAPDevices { $Results = [pscustomobject]@{'Results' = "$Results" } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $Results }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ListAPDevices.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ListAPDevices.ps1 index acf5d9574a53..929fc774db76 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ListAPDevices.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ListAPDevices.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListAPDevices { <# .FUNCTIONALITY @@ -9,14 +7,6 @@ Function Invoke-ListAPDevices { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - - - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.TenantFilter try { @@ -28,8 +18,7 @@ Function Invoke-ListAPDevices { $GraphRequest = $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @($GraphRequest) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ListAutopilotconfig.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ListAutopilotconfig.ps1 index a9a7bfdc0717..458782d1215d 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ListAutopilotconfig.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ListAutopilotconfig.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ListAutopilotconfig { +function Invoke-ListAutopilotconfig { <# .FUNCTIONALITY Entrypoint @@ -9,24 +7,16 @@ Function Invoke-ListAutopilotconfig { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - - - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.TenantFilter - $userid = $Request.Query.UserID try { - if ($request.query.type -eq 'ApProfile') { + if ($Request.Query.type -eq 'ApProfile') { $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles?`$expand=assignments" -tenantid $TenantFilter } - if ($request.query.type -eq 'ESP') { - $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/deviceEnrollmentConfigurations?`$expand=assignments" -tenantid $TenantFilter | Where-Object -Property '@odata.type' -EQ '#microsoft.graph.windows10EnrollmentCompletionPageConfiguration' + if ($Request.Query.type -eq 'ESP') { + $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/deviceEnrollmentConfigurations?`$expand=assignments" -tenantid $TenantFilter | + Where-Object -Property '@odata.type' -EQ '#microsoft.graph.windows10EnrollmentCompletionPageConfiguration' } $StatusCode = [HttpStatusCode]::OK } catch { @@ -35,8 +25,7 @@ Function Invoke-ListAutopilotconfig { $GraphRequest = $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @($GraphRequest) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-RemoveAPDevice.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-RemoveAPDevice.ps1 index 172f7d8eb9f2..466801ea9e9c 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-RemoveAPDevice.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-RemoveAPDevice.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-RemoveAPDevice { <# .FUNCTIONALITY @@ -11,9 +9,6 @@ Function Invoke-RemoveAPDevice { param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter ?? $Request.body.tenantFilter $Deviceid = $Request.Query.ID ?? $Request.body.ID @@ -37,8 +32,7 @@ Function Invoke-RemoveAPDevice { $null = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotSettings/sync' -tenantid $TenantFilter -type POST -body '{}' $Body = [pscustomobject]@{'Results' = "$Result" } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-RemoveAutopilotConfig.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-RemoveAutopilotConfig.ps1 new file mode 100644 index 000000000000..ae9e4516eb38 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-RemoveAutopilotConfig.ps1 @@ -0,0 +1,53 @@ +function Invoke-RemoveAutopilotConfig { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.Autopilot.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Body.tenantFilter + $ProfileId = $Request.Body.ID + $DisplayName = $Request.Body.displayName + $Assignments = $Request.Body.assignments + + try { + # Validate required parameters + if ([string]::IsNullOrEmpty($ProfileId)) { + throw 'Profile ID is required' + } + + if ([string]::IsNullOrEmpty($TenantFilter)) { + throw 'Tenant filter is required' + } + + # Call the helper function to delete the autopilot profile + $params = @{ + ProfileId = $ProfileId + DisplayName = $DisplayName + TenantFilter = $TenantFilter + Assignments = $Assignments + Headers = $Headers + APIName = $APIName + } + $Result = Remove-CIPPAutopilotProfile @params + $StatusCode = [HttpStatusCode]::OK + + } catch { + $ErrorMessage = $_.Exception.Message + $Result = $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = "$Result" } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddAssignmentFilter.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddAssignmentFilter.ps1 new file mode 100644 index 000000000000..2ca6a2f6ac72 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddAssignmentFilter.ps1 @@ -0,0 +1,41 @@ +function Invoke-AddAssignmentFilter { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.MEM.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + $SelectedTenants = if ('AllTenants' -in $Request.body.tenantFilter) { (Get-Tenants).defaultDomainName } else { $Request.body.tenantFilter.value ? $Request.body.tenantFilter.value : $Request.body.tenantFilter } + + $FilterObject = $Request.body + + $Results = foreach ($tenant in $SelectedTenants) { + try { + # Use the centralized New-CIPPAssignmentFilter function + $Result = New-CIPPAssignmentFilter -FilterObject $FilterObject -TenantFilter $tenant -APIName $APIName -ExecutingUser $Headers.'x-ms-client-principal-name' + + if ($Result.Success) { + "Successfully created assignment filter $($FilterObject.displayName) for $($tenant)" + $StatusCode = [HttpStatusCode]::OK + } else { + throw $Result.Message + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -tenant $tenant -message "Assignment filter creation API failed. $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + "Failed to create assignment filter $($FilterObject.displayName) for $($tenant): $($ErrorMessage.NormalizedError)" + $StatusCode = [HttpStatusCode]::InternalServerError + } + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = @($Results) } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddAssignmentFilterTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddAssignmentFilterTemplate.ps1 new file mode 100644 index 000000000000..1c1acccfdad2 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddAssignmentFilterTemplate.ps1 @@ -0,0 +1,65 @@ +function Invoke-AddAssignmentFilterTemplate { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Endpoint.MEM.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $GUID = $Request.Body.GUID ?? (New-Guid).GUID + try { + if (!$Request.Body.displayName) { + throw 'You must enter a displayname' + } + + if (!$Request.Body.rule) { + throw 'You must enter a filter rule' + } + + if (!$Request.Body.platform) { + throw 'You must select a platform' + } + + # Normalize field names to handle different casing from various forms + $displayName = $Request.Body.displayName ?? $Request.Body.Displayname ?? $Request.Body.displayname + $description = $Request.Body.description ?? $Request.Body.Description + $platform = $Request.Body.platform + $rule = $Request.Body.rule + $assignmentFilterManagementType = $Request.Body.assignmentFilterManagementType ?? 'devices' + + $object = [PSCustomObject]@{ + displayName = $displayName + description = $description + platform = $platform + rule = $rule + assignmentFilterManagementType = $assignmentFilterManagementType + GUID = $GUID + } | ConvertTo-Json + $Table = Get-CippTable -tablename 'templates' + $Table.Force = $true + Add-CIPPAzDataTableEntity @Table -Force -Entity @{ + JSON = "$object" + RowKey = "$GUID" + PartitionKey = 'AssignmentFilterTemplate' + } + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Created Assignment Filter template named $displayName with GUID $GUID" -Sev 'Debug' + + $body = [pscustomobject]@{'Results' = 'Successfully added template' } + } catch { + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Assignment Filter Template Creation failed: $($_.Exception.Message)" -Sev 'Error' + $body = [pscustomobject]@{'Results' = "Assignment Filter Template Creation failed: $($_.Exception.Message)" } + } + + + # Associate values to output bindings by calling 'Push-OutputBinding'. + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddDefenderDeployment.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddDefenderDeployment.ps1 index f7e20a67660a..efa9cddcd24b 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddDefenderDeployment.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddDefenderDeployment.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-AddDefenderDeployment { +function Invoke-AddDefenderDeployment { <# .FUNCTIONALITY Entrypoint @@ -12,51 +10,54 @@ Function Invoke-AddDefenderDeployment { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $Tenants = ($Request.Body.selectedTenants).value if ('AllTenants' -in $Tenants) { $Tenants = (Get-Tenants -IncludeErrors).defaultDomainName } $Compliance = $Request.Body.Compliance $PolicySettings = $Request.Body.Policy + $DefenderExclusions = $Request.Body.Exclusion $ASR = $Request.Body.ASR $EDR = $Request.Body.EDR - $results = foreach ($tenant in $Tenants) { + $Results = foreach ($tenant in $Tenants) { try { - $SettingsObject = @{ - id = 'fc780465-2017-40d4-a0c5-307022471b92' - androidEnabled = [bool]$Compliance.ConnectAndroid - iosEnabled = [bool]$Compliance.ConnectIos - windowsEnabled = [bool]$Compliance.Connectwindows - macEnabled = [bool]$Compliance.ConnectMac - partnerUnsupportedOsVersionBlocked = [bool]$Compliance.BlockunsupportedOS - partnerUnresponsivenessThresholdInDays = 7 - allowPartnerToCollectIOSApplicationMetadata = [bool]$Compliance.ConnectIosCompliance - allowPartnerToCollectIOSPersonalApplicationMetadata = [bool]$Compliance.ConnectIosCompliance - androidMobileApplicationManagementEnabled = [bool]$Compliance.ConnectAndroidCompliance - iosMobileApplicationManagementEnabled = [bool]$Compliance.appSync - microsoftDefenderForEndpointAttachEnabled = [bool]$true - } - $SettingsObj = $SettingsObject | ConvertTo-Json -Compress - try { - $ExistingSettings = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/mobileThreatDefenseConnectors/fc780465-2017-40d4-a0c5-307022471b92' -tenantid $tenant + if ($Compliance) { + $SettingsObject = @{ + id = 'fc780465-2017-40d4-a0c5-307022471b92' + androidEnabled = [bool]$Compliance.ConnectAndroid + iosEnabled = [bool]$Compliance.ConnectIos + windowsEnabled = [bool]$Compliance.Connectwindows + macEnabled = [bool]$Compliance.ConnectMac + partnerUnsupportedOsVersionBlocked = [bool]$Compliance.BlockunsupportedOS + partnerUnresponsivenessThresholdInDays = 7 + allowPartnerToCollectIOSApplicationMetadata = [bool]$Compliance.ConnectIosCompliance + allowPartnerToCollectIOSPersonalApplicationMetadata = [bool]$Compliance.ConnectIosCompliance + androidMobileApplicationManagementEnabled = [bool]$Compliance.ConnectAndroidCompliance + iosMobileApplicationManagementEnabled = [bool]$Compliance.appSync + microsoftDefenderForEndpointAttachEnabled = [bool]$true + } + $SettingsObj = $SettingsObject | ConvertTo-Json -Compress + try { + $ExistingSettings = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/mobileThreatDefenseConnectors/fc780465-2017-40d4-a0c5-307022471b92' -tenantid $tenant - # Check if any setting doesn't match - foreach ($key in $SettingsObject.Keys) { - if ($ExistingSettings.$key -ne $SettingsObject[$key]) { - $ExistingSettings = $false - break + # Check if any setting doesn't match + foreach ($key in $SettingsObject.Keys) { + if ($ExistingSettings.$key -ne $SettingsObject[$key]) { + $ExistingSettings = $false + break + } } + } catch { + $ExistingSettings = $false + } + if ($ExistingSettings) { + "Defender Intune Configuration already correct and active for $($tenant). Skipping" + } else { + $null = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/mobileThreatDefenseConnectors/' -tenantid $tenant -type POST -body $SettingsObj -AsApp $true + "$($tenant): Successfully set Defender Compliance and Reporting settings. Please remember to enable the Intune Connector in the Defender portal." } - } catch { - $ExistingSettings = $false } - if ($ExistingSettings) { - "Defender Intune Configuration already correct and active for $($tenant). Skipping" - } else { - $null = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/mobileThreatDefenseConnectors/' -tenantid $tenant -type POST -body $SettingsObj -AsApp $true - "$($tenant): Successfully set Defender Compliance and Reporting settings. Please remember to enable the Intune Connector in the Defender portal." - } if ($PolicySettings) { $Settings = switch ($PolicySettings) { @@ -72,8 +73,6 @@ Function Invoke-AddDefenderDeployment { @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting'; settingInstance = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' ; settingDefinitionId = 'device_vendor_msft_policy_config_defender_allowfullscanonmappednetworkdrives' ; choiceSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue' ; value = 'device_vendor_msft_policy_config_defender_allowfullscanonmappednetworkdrives_1' ; settingValueTemplateReference = @{settingValueTemplateId = '3e920b10-3773-4ac5-957e-e5573aec6d04' } } ; settingInstanceTemplateReference = @{settingInstanceTemplateId = 'dac47505-f072-48d6-9f23-8d93262d58ed' } } } } { $_.AllowFullScanRemovable } { @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting'; settingInstance = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' ; settingDefinitionId = 'device_vendor_msft_policy_config_defender_allowfullscanremovabledrivescanning' ; choiceSettingValue = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue'; value = 'device_vendor_msft_policy_config_defender_allowfullscanremovabledrivescanning_1' ; settingValueTemplateReference = @{settingValueTemplateId = '366c5727-629b-4a81-b50b-52f90282fa2c' } } ; settingInstanceTemplateReference = @{settingInstanceTemplateId = 'fb36e70b-5bc9-488a-a949-8ea3ac1634d5' } } } - } { $_.AllowIPS } { - @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting'; settingInstance = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' ; settingDefinitionId = 'device_vendor_msft_policy_config_defender_allowintrusionpreventionsystem' ; choiceSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue' ; value = 'device_vendor_msft_policy_config_defender_allowintrusionpreventionsystem_1'; settingValueTemplateReference = @{settingValueTemplateId = '03738a99-7065-44cb-ba1e-93530ed906a7' } } ; settingInstanceTemplateReference = @{settingInstanceTemplateId = 'd47f06e2-5378-43f2-adbc-e924538f1512' } } } } { $_.AllowDownloadable } { @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting'; settingInstance = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' ; settingDefinitionId = 'device_vendor_msft_policy_config_defender_allowioavprotection' ; choiceSettingValue = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue' ; value = 'device_vendor_msft_policy_config_defender_allowioavprotection_1'; settingValueTemplateReference = @{settingValueTemplateId = 'df4e6cbd-f7ff-41c8-88cd-fa25264a237e' } }; settingInstanceTemplateReference = @{settingInstanceTemplateId = 'fa06231d-aed4-4601-b631-3a37e85b62a0' } } } } { $_.AllowRealTime } { @@ -90,11 +89,42 @@ Function Invoke-AddDefenderDeployment { @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting' ; settingInstance = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' ; settingDefinitionId = 'device_vendor_msft_policy_config_defender_disablecatchupfullscan'; choiceSettingValue = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue'; value = 'device_vendor_msft_policy_config_defender_disablecatchupfullscan_1' ; settingValueTemplateReference = @{settingValueTemplateId = '1b26092f-48c4-447b-99d4-e9c501542f1c' } } ; settingInstanceTemplateReference = @{settingInstanceTemplateId = 'f881b08c-f047-40d2-b7d9-3dde7ce9ef64' } } } } { $_.DisableCatchupQuickScan } { @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting'; settingInstance = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' ; settingDefinitionId = 'device_vendor_msft_policy_config_defender_disablecatchupquickscan' ; choiceSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue' ; value = 'device_vendor_msft_policy_config_defender_disablecatchupquickscan_1' ; settingValueTemplateReference = @{settingValueTemplateId = 'd263ced7-0d23-4095-9326-99c8b3f5d35b' } } ; settingInstanceTemplateReference = @{settingInstanceTemplateId = 'dabf6781-9d5d-42da-822a-d4327aa2bdd1' } } } - } { $_.NetworkProtectionBlock } { - @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting'; settingInstance = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance'; settingDefinitionId = 'device_vendor_msft_policy_config_defender_enablenetworkprotection' ; choiceSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue' ; value = 'device_vendor_msft_policy_config_defender_enablenetworkprotection_1' ; settingValueTemplateReference = @{settingValueTemplateId = 'ee58fb51-9ae5-408b-9406-b92b643f388a' } } ; settingInstanceTemplateReference = @{settingInstanceTemplateId = 'f53ab20e-8af6-48f5-9fa1-46863e1e517e' } } } + } { $_.EnableNetworkProtection } { + @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting'; settingInstance = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance'; settingDefinitionId = 'device_vendor_msft_policy_config_defender_enablenetworkprotection' ; choiceSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue' ; value = "device_vendor_msft_policy_config_defender_enablenetworkprotection_$($_.EnableNetworkProtection.value)" ; settingValueTemplateReference = @{settingValueTemplateId = 'ee58fb51-9ae5-408b-9406-b92b643f388a' } } ; settingInstanceTemplateReference = @{settingInstanceTemplateId = 'f53ab20e-8af6-48f5-9fa1-46863e1e517e' } } } } { $_.LowCPU } { @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting' ; settingInstance = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' ; settingDefinitionId = 'device_vendor_msft_policy_config_defender_enablelowcpupriority' ; choiceSettingValue = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue'; value = 'device_vendor_msft_policy_config_defender_enablelowcpupriority_1' ; settingValueTemplateReference = @{settingValueTemplateId = '045a4a13-deee-4e24-9fe4-985c9357680d' } } ; settingInstanceTemplateReference = @{settingInstanceTemplateId = 'cdeb96cf-18f5-4477-a710-0ea9ecc618af' } } } + } { $_.CloudBlockLevel } { + @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting' ; settingInstance = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance'; settingDefinitionId = 'device_vendor_msft_policy_config_defender_cloudblocklevel'; settingInstanceTemplateReference = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingInstanceTemplateReference'; settingInstanceTemplateId = 'c7a37009-c16e-4145-84c8-89a8c121fb15' }; choiceSettingValue = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue'; value = "device_vendor_msft_policy_config_defender_cloudblocklevel_$($_.CloudBlockLevel.value ?? '0')"; settingValueTemplateReference = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingValueTemplateReference'; settingValueTemplateId = '517b4e84-e933-42b9-b92f-00e640b1a82d' } } } } + } { $_.AvgCPULoadFactor } { + @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting' ; settingInstance = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingInstance' ; settingDefinitionId = 'device_vendor_msft_policy_config_defender_avgcpuloadfactor' ; settingInstanceTemplateReference = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingInstanceTemplateReference' ; settingInstanceTemplateId = '816cc03e-8f96-4cba-b14f-2658d031a79a' } ; simpleSettingValue = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationIntegerSettingValue'; value = ($_.AvgCPULoadFactor ?? 50); settingValueTemplateReference = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingValueTemplateReference'; settingValueTemplateId = '37195fb1-3743-4c8e-a0ce-b6fae6fa3acd' } } } } + } { $_.CloudExtendedTimeout } { + @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting' ; settingInstance = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingInstance'; settingDefinitionId = 'device_vendor_msft_policy_config_defender_cloudextendedtimeout'; settingInstanceTemplateReference = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingInstanceTemplateReference'; settingInstanceTemplateId = 'f61c2788-14e4-4e80-a5a7-bf2ff5052f63' }; simpleSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationIntegerSettingValue'; value = ($_.CloudExtendedTimeout ?? 50); settingValueTemplateReference = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingValueTemplateReference'; settingValueTemplateId = '608f1561-b603-46bd-bf5f-0b9872002f75' } } } } + } { $_.SignatureUpdateInterval } { + @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting'; settingInstance = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingInstance'; settingDefinitionId = 'device_vendor_msft_policy_config_defender_signatureupdateinterval'; settingInstanceTemplateReference = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingInstanceTemplateReference'; settingInstanceTemplateId = '89879f27-6b7d-44d4-a08e-0a0de3e9663d' }; simpleSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationIntegerSettingValue'; value = ($_.SignatureUpdateInterval ?? 8); settingValueTemplateReference = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingValueTemplateReference'; settingValueTemplateId = '0af6bbed-a74a-4d08-8587-b16b10b774cb' } } } } + } { $_.MeteredConnectionUpdates } { + @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting'; settingInstance = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance'; settingDefinitionId = 'device_vendor_msft_defender_configuration_meteredconnectionupdates'; settingInstanceTemplateReference = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingInstanceTemplateReference'; settingInstanceTemplateId = '7e3aaffb-309f-46de-8cd7-25c1a3b19e5b' }; choiceSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue'; value = 'device_vendor_msft_defender_configuration_meteredconnectionupdates_1'; settingValueTemplateReference = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingValueTemplateReference'; settingValueTemplateId = '20cf972c-be3f-4bc1-93d3-781829d55233' } } } } + } { $_.AllowOnAccessProtection } { + @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting'; settingInstance = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance'; settingDefinitionId = 'device_vendor_msft_policy_config_defender_allowonaccessprotection'; settingInstanceTemplateReference = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingInstanceTemplateReference'; settingInstanceTemplateId = 'afbc322b-083c-4281-8242-ebbb91398b41' }; choiceSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue'; value = "device_vendor_msft_policy_config_defender_allowonaccessprotection_$($_.AllowOnAccessProtection.value ?? '1')"; settingValueTemplateReference = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingValueTemplateReference'; settingValueTemplateId = 'ed077fee-9803-44f3-b045-aab34d8e6d52' } } } } + } { $_.DisableLocalAdminMerge } { + @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting'; settingInstance = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance'; settingDefinitionId = 'device_vendor_msft_defender_configuration_disablelocaladminmerge'; settingInstanceTemplateReference = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingInstanceTemplateReference'; settingInstanceTemplateId = '5f9a9c65-dea7-4987-a5f5-b28cfd9762ba' }; choiceSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue'; value = 'device_vendor_msft_defender_configuration_disablelocaladminmerge_1'; settingValueTemplateReference = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingValueTemplateReference'; settingValueTemplateId = '3a9774b2-3143-47eb-bbca-d73c0ace2b7e' } } } } + } { $_.SubmitSamplesConsent } { + @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting'; settingInstance = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance'; settingDefinitionId = 'device_vendor_msft_policy_config_defender_submitsamplesconsent'; settingInstanceTemplateReference = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingInstanceTemplateReference'; settingInstanceTemplateId = 'bc47ce7d-a251-4cae-a8a2-6e8384904ab7' }; choiceSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue'; value = "device_vendor_msft_policy_config_defender_submitsamplesconsent_$($_.SubmitSamplesConsent.value ?? '2')"; settingValueTemplateReference = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingValueTemplateReference'; settingValueTemplateId = '826ed4b6-e04f-4975-9d23-6f0904b0d87e' } } } } + } { $_.Remediation } { + @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting'; settingInstance = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstance'; settingDefinitionId = 'device_vendor_msft_policy_config_defender_threatseveritydefaultaction'; settingInstanceTemplateReference = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingInstanceTemplateReference'; settingInstanceTemplateId = 'f6394bc5-6486-4728-b510-555f5c161f2b' } + groupSettingCollectionValue = @(@{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationGroupSettingValue' + children = @( + if ($_.Remediation.Low) { @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance'; settingDefinitionId = 'device_vendor_msft_policy_config_defender_threatseveritydefaultaction_lowseveritythreats'; choiceSettingValue = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue'; value = "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_lowseveritythreats_$($_.Remediation.Low.value)" } } } + if ($_.Remediation.Moderate) { @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance'; settingDefinitionId = 'device_vendor_msft_policy_config_defender_threatseveritydefaultaction_moderateseveritythreats'; choiceSettingValue = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue'; value = "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_moderateseveritythreats_$($_.Remediation.Moderate.value)" } } } + if ($_.Remediation.High) { @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance'; settingDefinitionId = 'device_vendor_msft_policy_config_defender_threatseveritydefaultaction_highseveritythreats'; choiceSettingValue = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue'; value = "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_highseveritythreats_$($_.Remediation.High.value)" } } } + if ($_.Remediation.Severe) { @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance'; settingDefinitionId = 'device_vendor_msft_policy_config_defender_threatseveritydefaultaction_severethreats'; choiceSettingValue = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue'; value = "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_severethreats_$($_.Remediation.Severe.value)" } } } + ) + } + ) + } + } } + } $CheckExisting = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/configurationPolicies' -tenantid $tenant Write-Host ($CheckExisting | ConvertTo-Json) @@ -117,7 +147,7 @@ Function Invoke-AddDefenderDeployment { if ($PolicySettings.AssignTo -ne 'None') { $AssignBody = if ($PolicySettings.AssignTo -ne 'AllDevicesAndUsers') { '{"assignments":[{"id":"","target":{"@odata.type":"#microsoft.graph.' + $($PolicySettings.AssignTo) + 'AssignmentTarget"}}]}' } else { '{"assignments":[{"id":"","target":{"@odata.type":"#microsoft.graph.allDevicesAssignmentTarget"}},{"id":"","target":{"@odata.type":"#microsoft.graph.allLicensedUsersAssignmentTarget"}}]}' } $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/configurationPolicies('$($PolicyRequest.id)')/assign" -tenantid $tenant -type POST -body $AssignBody - Write-LogMessage -headers $Request.Headers -API $APINAME -tenant $($tenant) -message "Assigned policy $($DisplayName) to $($PolicySettings.AssignTo)" -Sev 'Info' + Write-LogMessage -headers $Headers -API $APINAME -tenant $($tenant) -message "Assigned policy $($DisplayName) to $($PolicySettings.AssignTo)" -Sev 'Info' } "$($tenant): Successfully set Default AV Policy settings" } @@ -175,7 +205,7 @@ Function Invoke-AddDefenderDeployment { if ($ASR.AssignTo -and $ASR.AssignTo -ne 'none') { $AssignBody = if ($ASR.AssignTo -ne 'AllDevicesAndUsers') { '{"assignments":[{"id":"","target":{"@odata.type":"#microsoft.graph.' + $($asr.AssignTo) + 'AssignmentTarget"}}]}' } else { '{"assignments":[{"id":"","target":{"@odata.type":"#microsoft.graph.allDevicesAssignmentTarget"}},{"id":"","target":{"@odata.type":"#microsoft.graph.allLicensedUsersAssignmentTarget"}}]}' } $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/configurationPolicies('$($ASRRequest.id)')/assign" -tenantid $tenant -type POST -body $AssignBody - Write-LogMessage -headers $Request.Headers -API $APINAME -tenant $($tenant) -message "Assigned policy $($DisplayName) to $($ASR.AssignTo)" -Sev 'Info' + Write-LogMessage -headers $Headers -API $APINAME -tenant $($tenant) -message "Assigned policy $($DisplayName) to $($ASR.AssignTo)" -Sev 'Info' } "$($tenant): Successfully added ASR Settings" } @@ -198,22 +228,7 @@ Function Invoke-AddDefenderDeployment { } } } - { $_.Telemetry } { - @{ - '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting' - settingInstance = @{ - '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' - settingDefinitionId = 'device_vendor_msft_windowsadvancedthreatprotection_configuration_telemetryreportingfrequency' - choiceSettingValue = @{ - settingValueTemplateReference = @{settingValueTemplateId = '350b0bea-b67b-43d4-9a04-c796edb961fd' } - '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue' - 'value' = 'device_vendor_msft_windowsadvancedthreatprotection_configuration_telemetryreportingfrequency_2' - } - settingInstanceTemplateReference = @{settingInstanceTemplateId = '03de6095-07c4-4f35-be38-c1cd3bae4484' } - } - } - } { $_.Config } { @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting' @@ -249,29 +264,108 @@ Function Invoke-AddDefenderDeployment { "$($tenant): EDR Policy already exists. Skipping" } else { $EDRRequest = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/configurationPolicies' -tenantid $tenant -type POST -body $EDRbody - if ($ASR -and $ASR.AssignTo -ne 'none') { - $AssignBody = if ($ASR.AssignTo -ne 'AllDevicesAndUsers') { '{"assignments":[{"id":"","target":{"@odata.type":"#microsoft.graph.' + $($asr.AssignTo) + 'AssignmentTarget"}}]}' } else { '{"assignments":[{"id":"","target":{"@odata.type":"#microsoft.graph.allDevicesAssignmentTarget"}},{"id":"","target":{"@odata.type":"#microsoft.graph.allLicensedUsersAssignmentTarget"}}]}' } + # Assign if needed + if ($EDR.AssignTo -and $EDR.AssignTo -ne 'none') { + $AssignBody = if ($EDR.AssignTo -ne 'AllDevicesAndUsers') { '{"assignments":[{"id":"","target":{"@odata.type":"#microsoft.graph.' + $($EDR.AssignTo) + 'AssignmentTarget"}}]}' } else { '{"assignments":[{"id":"","target":{"@odata.type":"#microsoft.graph.allDevicesAssignmentTarget"}},{"id":"","target":{"@odata.type":"#microsoft.graph.allLicensedUsersAssignmentTarget"}}]}' } $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/configurationPolicies('$($EDRRequest.id)')/assign" -tenantid $tenant -type POST -body $AssignBody - Write-LogMessage -headers $Request.Headers -API $APINAME -tenant $($tenant) -message "Assigned EDR policy $($DisplayName) to $($ASR.AssignTo)" -Sev 'Info' + Write-LogMessage -headers $Headers -API $APIName -tenant $($tenant) -message "Assigned EDR policy $($DisplayName) to $($EDR.AssignTo)" -Sev 'Info' } "$($tenant): Successfully added EDR Settings" } } } + # Exclusion Policy Section + if ($DefenderExclusions) { + $ExclusionAssignTo = $DefenderExclusions.AssignTo + if ($DefenderExclusions.excludedExtensions) { + $ExcludedExtensions = $DefenderExclusions.excludedExtensions | Where-Object { $_ -and $_.Trim() } | ForEach-Object { + @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationStringSettingValue'; value = $_ } + } + } + if ($DefenderExclusions.excludedPaths) { + $ExcludedPaths = $DefenderExclusions.excludedPaths | Where-Object { $_ -and $_.Trim() } | ForEach-Object { + @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationStringSettingValue'; value = $_ } + } + } + if ($DefenderExclusions.excludedProcesses) { + $ExcludedProcesses = $DefenderExclusions.excludedProcesses | Where-Object { $_ -and $_.Trim() } | ForEach-Object { + @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationStringSettingValue'; value = $_ } + } + } + $ExclusionSettings = [System.Collections.Generic.List[System.Object]]::new() + if ($ExcludedExtensions.Count -gt 0) { + $ExclusionSettings.Add(@{ + id = '2' + settingInstance = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingCollectionInstance' + settingDefinitionId = 'device_vendor_msft_policy_config_defender_excludedextensions' + settingInstanceTemplateReference = @{ settingInstanceTemplateId = 'c203725b-17dc-427b-9470-673a2ce9cd5e' } + simpleSettingCollectionValue = @($ExcludedExtensions) + } + }) + } + if ($ExcludedPaths.Count -gt 0) { + $ExclusionSettings.Add(@{ + id = '1' + settingInstance = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingCollectionInstance' + settingDefinitionId = 'device_vendor_msft_policy_config_defender_excludedpaths' + settingInstanceTemplateReference = @{ settingInstanceTemplateId = 'aaf04adc-c639-464f-b4a7-152e784092e8' } + simpleSettingCollectionValue = @($ExcludedPaths) + } + }) + } + if ($ExcludedProcesses.Count -gt 0) { + $ExclusionSettings.Add(@{ + id = '0' + settingInstance = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingCollectionInstance' + settingDefinitionId = 'device_vendor_msft_policy_config_defender_excludedprocesses' + settingInstanceTemplateReference = @{ settingInstanceTemplateId = '96b046ed-f138-4250-9ae0-b0772a93d16f' } + simpleSettingCollectionValue = @($ExcludedProcesses) + } + }) + } + if ($ExclusionSettings.Count -gt 0) { + $ExclusionBody = ConvertTo-Json -Depth 15 -Compress -InputObject @{ + name = 'Default AV Exclusion Policy' + displayName = 'Default AV Exclusion Policy' + settings = @($ExclusionSettings) + platforms = 'windows10' + technologies = 'mdm,microsoftSense' + templateReference = @{ + templateId = '45fea5e9-280d-4da1-9792-fb5736da0ca9_1' + templateFamily = 'endpointSecurityAntivirus' + templateDisplayName = 'Microsoft Defender Antivirus exclusions' + templateDisplayVersion = 'Version 1' + } + } + $CheckExistingExclusion = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/configurationPolicies' -tenantid $tenant + if ('Default AV Exclusion Policy' -in $CheckExistingExclusion.Name) { + "$($tenant): Exclusion Policy already exists. Skipping" + } else { + $ExclusionRequest = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/configurationPolicies' -tenantid $tenant -type POST -body $ExclusionBody + if ($ExclusionAssignTo -and $ExclusionAssignTo -ne 'none') { + $AssignBody = if ($ExclusionAssignTo -ne 'AllDevicesAndUsers') { '{"assignments":[{"id":"","target":{"@odata.type":"#microsoft.graph.' + $($ExclusionAssignTo) + 'AssignmentTarget"}}]}' } else { '{"assignments":[{"id":"","target":{"@odata.type":"#microsoft.graph.allDevicesAssignmentTarget"}},{"id":"","target":{"@odata.type":"#microsoft.graph.allLicensedUsersAssignmentTarget"}}]}' } + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/configurationPolicies('$($ExclusionRequest.id)')/assign" -tenantid $tenant -type POST -body $AssignBody + Write-LogMessage -headers $Headers -API $APIName -tenant $tenant -message "Assigned Exclusion policy to $($ExclusionAssignTo)" -Sev 'Info' + } + "$($tenant): Successfully set Default AV Exclusion Policy settings" + } + } + } } catch { "Failed to add policy for $($tenant): $($_.Exception.Message)" - Write-LogMessage -headers $Request.Headers -API $APINAME -tenant $($tenant) -message "Failed adding policy $($DisplayName). Error: $($_.Exception.Message)" -Sev 'Error' + Write-LogMessage -headers $Headers -API $APIName -tenant $tenant -message "Failed adding policy $($DisplayName). Error: $($_.Exception.Message)" -Sev 'Error' continue } } - $body = [pscustomobject]@{'Results' = @($results) } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK - Body = $body + Body = @{'Results' = @($Results) } }) } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddIntuneTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddIntuneTemplate.ps1 index a779b047cdf0..22c029fb5b16 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddIntuneTemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddIntuneTemplate.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-AddIntuneTemplate { +function Invoke-AddIntuneTemplate { <# .FUNCTIONALITY Entrypoint,AnyTenant @@ -12,12 +10,11 @@ Function Invoke-AddIntuneTemplate { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' $GUID = (New-Guid).GUID try { if ($Request.Body.RawJSON) { - if (!$Request.Body.displayName) { throw 'You must enter a displayname' } + if (!$Request.Body.displayName) { throw 'You must enter a displayName' } if ($null -eq ($Request.Body.RawJSON | ConvertFrom-Json)) { throw 'the JSON is invalid' } @@ -35,9 +32,10 @@ Function Invoke-AddIntuneTemplate { RowKey = "$GUID" PartitionKey = 'IntuneTemplate' } - Write-LogMessage -headers $Request.Headers -API $APINAME -message "Created intune policy template named $($Request.Body.displayName) with GUID $GUID" -Sev 'Debug' + Write-LogMessage -headers $Headers -API $APIName -message "Created intune policy template named $($Request.Body.displayName) with GUID $GUID" -Sev 'Debug' - $body = [pscustomobject]@{'Results' = 'Successfully added template' } + $Result = 'Successfully added template' + $StatusCode = [HttpStatusCode]::OK } else { $TenantFilter = $Request.Body.tenantFilter ?? $Request.Query.tenantFilter $URLName = $Request.Body.URLName ?? $Request.Query.URLName @@ -59,20 +57,21 @@ Function Invoke-AddIntuneTemplate { RowKey = "$GUID" PartitionKey = 'IntuneTemplate' } - Write-LogMessage -headers $Request.Headers -API $APINAME -message "Created intune policy template $($Request.Body.displayName) with GUID $GUID using an original policy from a tenant" -Sev 'Debug' + Write-LogMessage -headers $Headers -API $APIName -message "Created intune policy template $($Request.Body.displayName) with GUID $GUID using an original policy from a tenant" -Sev 'Debug' - $body = [pscustomobject]@{'Results' = 'Successfully added template' } + $Result = 'Successfully added template' + $StatusCode = [HttpStatusCode]::OK } } catch { - Write-LogMessage -headers $Request.Headers -API $APINAME -message "Intune Template Deployment failed: $($_.Exception.Message)" -Sev 'Error' - $body = [pscustomobject]@{'Results' = "Intune Template Deployment failed: $($_.Exception.Message)" } + $StatusCode = [HttpStatusCode]::InternalServerError + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Intune Template Deployment failed: $($ErrorMessage.NormalizedMessage)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Error' -LogData $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $body + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } }) - } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddPolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddPolicy.ps1 index 985b60203f3d..5aaf4692faac 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddPolicy.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddPolicy.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-AddPolicy { +function Invoke-AddPolicy { <# .FUNCTIONALITY Entrypoint @@ -12,39 +10,42 @@ Function Invoke-AddPolicy { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - $Tenants = ($Request.Body.tenantFilter.value) + $Tenants = $Request.Body.tenantFilter.value ? $Request.Body.tenantFilter.value : $Request.Body.tenantFilter if ('AllTenants' -in $Tenants) { $Tenants = (Get-Tenants).defaultDomainName } - $displayname = $Request.Body.displayName + + $DisplayName = $Request.Body.displayName $description = $Request.Body.Description $AssignTo = if ($Request.Body.AssignTo -ne 'on') { $Request.Body.AssignTo } $ExcludeGroup = $Request.Body.excludeGroup - $Request.body.customGroup ? ($AssignTo = $Request.body.customGroup) : $null + $Request.Body.customGroup ? ($AssignTo = $Request.Body.customGroup) : $null $RawJSON = $Request.Body.RAWJson - $results = foreach ($Tenant in $tenants) { - if ($Request.Body.replacemap.$tenant) { - ([pscustomobject]$Request.Body.replacemap.$tenant).psobject.properties | ForEach-Object { $RawJson = $RawJson -replace $_.name, $_.value } + $Results = foreach ($Tenant in $Tenants) { + if ($Request.Body.replacemap.$Tenant) { + ([pscustomobject]$Request.Body.replacemap.$Tenant).PSObject.Properties | ForEach-Object { $RawJSON = $RawJSON -replace $_.name, $_.value } } try { Write-Host 'Calling Adding policy' - Set-CIPPIntunePolicy -TemplateType $Request.body.TemplateType -Description $description -DisplayName $displayname -RawJSON $RawJSON -AssignTo $AssignTo -ExcludeGroup $ExcludeGroup -tenantFilter $Tenant -Headers $Request.Headers - Write-LogMessage -headers $Request.Headers -API $APINAME -tenant $($Tenant) -message "Added policy $($Displayname)" -Sev 'Info' + $params = @{ + TemplateType = $Request.Body.TemplateType + Description = $description + DisplayName = $DisplayName + RawJSON = $RawJSON + AssignTo = $AssignTo + ExcludeGroup = $ExcludeGroup + tenantFilter = $Tenant + Headers = $Headers + APIName = $APIName + } + Set-CIPPIntunePolicy @params } catch { "$($_.Exception.Message)" - Write-LogMessage -headers $Request.Headers -API $APINAME -tenant $($Tenant) -message "Failed adding policy $($Displayname). Error: $($_.Exception.Message)" -Sev 'Error' continue } - } - $body = [pscustomobject]@{'Results' = @($results) } - - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK - Body = $body + Body = @{'Results' = @($Results) } }) - } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-EditAssignmentFilter.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-EditAssignmentFilter.ps1 new file mode 100644 index 000000000000..a3fda1715b35 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-EditAssignmentFilter.ps1 @@ -0,0 +1,61 @@ +function Invoke-EditAssignmentFilter { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.MEM.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + $TenantFilter = $Request.Body.tenantFilter + + try { + $FilterId = $Request.Body.filterId + $DisplayName = $Request.Body.displayName + $Description = $Request.Body.description + $Rule = $Request.Body.rule + + if (!$FilterId) { + throw 'Filter ID is required' + } + + # Build the update body + # Note: Platform and assignmentFilterManagementType cannot be changed after creation per Graph API restrictions + $UpdateBody = @{} + + if (-not [string]::IsNullOrWhiteSpace($DisplayName)) { + $UpdateBody.displayName = $DisplayName + } + + if ($null -ne $Description) { + $UpdateBody.description = $Description + } + + if (-not [string]::IsNullOrWhiteSpace($Rule)) { + $UpdateBody.rule = $Rule + } + + # Update the assignment filter + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/deviceManagement/assignmentFilters/$FilterId" -tenantid $TenantFilter -type PATCH -body (ConvertTo-Json -InputObject $UpdateBody -Depth 10) + + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Updated assignment filter $($DisplayName)" -Sev Info + + $Result = "Successfully updated assignment filter $($DisplayName)" + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Failed to update assignment filter: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + $Result = "Failed to update assignment filter: $($ErrorMessage.NormalizedError)" + $StatusCode = [HttpStatusCode]::InternalServerError + } + + # Associate values to output bindings by calling 'Push-OutputBinding'. + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-EditIntunePolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-EditIntunePolicy.ps1 index 1d34f8196a72..98da51021648 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-EditIntunePolicy.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-EditIntunePolicy.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-EditIntunePolicy { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-EditIntunePolicy { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter @@ -43,8 +41,7 @@ Function Invoke-EditIntunePolicy { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ 'Results' = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-EditIntuneScript.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-EditIntuneScript.ps1 index 715bdd7b3c52..1674a0f7cd6d 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-EditIntuneScript.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-EditIntuneScript.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-EditIntuneScript { <# .FUNCTIONALITY @@ -60,18 +58,24 @@ function Invoke-EditIntuneScript { } if ($scriptTypeFound) { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $intuneScript }) } else { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::NotFound Body = "Script with ID $scriptId was not found in any endpoint." }) } } 'PATCH' { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = "Method $($Request.Method) is not supported." + }) + } + 'POST' { # Parse the script data to determine type $scriptData = $Request.Body.IntuneScript | ConvertFrom-Json $scriptType = $Request.Body.ScriptType @@ -104,20 +108,17 @@ function Invoke-EditIntuneScript { try { $patchResult = New-GraphPOSTRequest @parms -type 'PATCH' $body = [pscustomobject]@{'Results' = $patchResult } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $body }) } catch { $ErrorMessage = Get-CippException -Exception $_ - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::BadRequest Body = "Failed to update script: $($ErrorMessage.NormalizedError)" }) } } - 'POST' { - Write-Output 'Adding script' - } } } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-EditPolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-EditPolicy.ps1 index 53586dd663c2..afcb20d45081 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-EditPolicy.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-EditPolicy.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-EditPolicy { <# .FUNCTIONALITY @@ -13,9 +11,6 @@ Function Invoke-EditPolicy { # Note, suspect this is deprecated - rvdwegen $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $Tenant = $request.body.tenantid $ID = $request.body.groupid $displayname = $request.body.Displayname @@ -41,8 +36,7 @@ Function Invoke-EditPolicy { $body = [pscustomobject]@{'Results' = $results } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecAssignPolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecAssignPolicy.ps1 index e4db5b138966..ce22cb30d03f 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecAssignPolicy.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecAssignPolicy.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ExecAssignPolicy { +function Invoke-ExecAssignPolicy { <# .FUNCTIONALITY Entrypoint @@ -12,32 +10,95 @@ Function Invoke-ExecAssignPolicy { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Request.Headers -API $APINAME -message 'Accessed this API' -Sev 'Debug' # Interact with the body of the request $TenantFilter = $Request.Body.tenantFilter $ID = $request.Body.ID $Type = $Request.Body.Type $AssignTo = $Request.Body.AssignTo + $PlatformType = $Request.Body.platformType + $ExcludeGroup = $Request.Body.excludeGroup + $GroupIdsRaw = $Request.Body.GroupIds + $GroupNamesRaw = $Request.Body.GroupNames + $AssignmentMode = $Request.Body.assignmentMode + $AssignmentFilterName = $Request.Body.AssignmentFilterName + $AssignmentFilterType = $Request.Body.AssignmentFilterType + + # Standardize GroupIds input (can be array or comma-separated string) + function Get-StandardizedList { + param($InputObject) + if ($null -eq $InputObject -or ($InputObject -is [string] -and [string]::IsNullOrWhiteSpace($InputObject))) { + return @() + } + if ($InputObject -is [string]) { + return ($InputObject -split ',') | ForEach-Object { $_.Trim() } | Where-Object { $_ } + } + if ($InputObject -is [System.Collections.IEnumerable]) { + return @($InputObject | Where-Object { $_ }) + } + return @($InputObject) + } + + $GroupIds = Get-StandardizedList -InputObject $GroupIdsRaw + $GroupNames = Get-StandardizedList -InputObject $GroupNamesRaw + + # Validate and default AssignmentMode + if ([string]::IsNullOrWhiteSpace($AssignmentMode)) { + $AssignmentMode = 'replace' + } $AssignTo = if ($AssignTo -ne 'on') { $AssignTo } - $results = try { - if ($AssignTo) { - $null = Set-CIPPAssignedPolicy -PolicyId $ID -TenantFilter $TenantFilter -GroupName $AssignTo -Type $Type -Headers $Headers + $Results = try { + if ($AssignTo -or @($GroupIds).Count -gt 0) { + $params = @{ + PolicyId = $ID + TenantFilter = $TenantFilter + GroupName = $AssignTo + Type = $Type + Headers = $Headers + AssignmentMode = $AssignmentMode + } + + if (@($GroupIds).Count -gt 0) { + $params.GroupIds = @($GroupIds) + } + + if (@($GroupNames).Count -gt 0) { + $params.GroupNames = @($GroupNames) + } + + if (-not [string]::IsNullOrWhiteSpace($PlatformType)) { + $params.PlatformType = $PlatformType + } + + if (-not [string]::IsNullOrWhiteSpace($ExcludeGroup)) { + $params.ExcludeGroup = $ExcludeGroup + } + + if (-not [string]::IsNullOrWhiteSpace($AssignmentFilterName)) { + $params.AssignmentFilterName = $AssignmentFilterName + } + + if (-not [string]::IsNullOrWhiteSpace($AssignmentFilterType)) { + $params.AssignmentFilterType = $AssignmentFilterType + } + + Set-CIPPAssignedPolicy @params + $StatusCode = [HttpStatusCode]::OK + } else { + 'No assignments specified. No action taken.' + $StatusCode = [HttpStatusCode]::OK } - "Successfully edited policy for $($TenantFilter)" - $StatusCode = [HttpStatusCode]::OK } catch { - "Failed to add policy for $($TenantFilter): $($_.Exception.Message)" + "$($_.Exception.Message)" $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode - Body = @{Results = $results } + Body = @{Results = $Results } }) } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecAssignmentFilter.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecAssignmentFilter.ps1 new file mode 100644 index 000000000000..f08bc7bbbafb --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecAssignmentFilter.ps1 @@ -0,0 +1,52 @@ +function Invoke-ExecAssignmentFilter { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.MEM.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + Write-LogMessage -headers $Request.Headers -API $APINAME -message 'Accessed this API' -Sev Debug + + $TenantFilter = $Request.Query.TenantFilter ?? $Request.Body.tenantFilter + + try { + $FilterId = $Request.Body.ID + $Action = $Request.Body.Action + + if (!$FilterId) { + throw 'Filter ID is required' + } + + switch ($Action) { + 'Delete' { + # Delete the assignment filter + $GraphRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/deviceManagement/assignmentFilters/$FilterId" -tenantid $TenantFilter -type DELETE + + Write-LogMessage -headers $Request.Headers -API $APINAME -tenant $TenantFilter -message "Deleted assignment filter with ID $FilterId" -Sev Info + + $Result = "Successfully deleted assignment filter" + $StatusCode = [HttpStatusCode]::OK + } + default { + throw "Unknown action: $Action" + } + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Request.Headers -API $APINAME -tenant $TenantFilter -message "Failed to execute assignment filter action: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + $Result = "Failed to execute assignment filter action: $($ErrorMessage.NormalizedError)" + $StatusCode = [HttpStatusCode]::InternalServerError + } + + # Associate values to output bindings by calling 'Push-OutputBinding'. + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecDeviceAction.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecDeviceAction.ps1 index 5600b3984fce..76de8b21de39 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecDeviceAction.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecDeviceAction.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ExecDeviceAction { +function Invoke-ExecDeviceAction { <# .FUNCTIONALITY Entrypoint @@ -12,7 +10,7 @@ Function Invoke-ExecDeviceAction { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with Body parameters or the body of the request. $Action = $Request.Body.Action @@ -22,6 +20,16 @@ Function Invoke-ExecDeviceAction { try { switch ($Action) { 'setDeviceName' { + if ($Request.Body.input -match '%') { + $Device = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/managedDevices/$DeviceFilter" -tenantid $TenantFilter + $Request.Body.input = Get-CIPPTextReplacement -TenantFilter $TenantFilter -Text $Request.Body.input + $Request.Body.input = $Request.Body.input -replace '%SERIAL%', $Device.serialNumber + # limit to 15 characters + if ($Request.Body.input.Length -gt 15) { + $Request.Body.input = $Request.Body.input.Substring(0, 15) + } + } + $ActionBody = @{ deviceName = $Request.Body.input } | ConvertTo-Json -Compress break } @@ -30,7 +38,7 @@ Function Invoke-ExecDeviceAction { Write-Host "ActionBody: $ActionBody" break } - Default { $ActionBody = $Request.Body | ConvertTo-Json -Compress } + default { $ActionBody = $Request.Body | ConvertTo-Json -Compress } } $cmdParams = @{ @@ -51,8 +59,7 @@ Function Invoke-ExecDeviceAction { $Results = "$($_.Exception.Message)" } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ 'Results' = $Results } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecDevicePasscodeAction.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecDevicePasscodeAction.ps1 new file mode 100644 index 000000000000..cf0da9778d60 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecDevicePasscodeAction.ps1 @@ -0,0 +1,53 @@ +function Invoke-ExecDevicePasscodeAction { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.MEM.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + $Action = $Request.Body.Action + $DeviceFilter = $Request.Body.GUID + $TenantFilter = $Request.Body.tenantFilter + + try { + $GraphResponse = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/managedDevices('$DeviceFilter')/$($Action)" -type POST -tenantid $TenantFilter -body '{}' + + $Result = switch ($Action) { + 'resetPasscode' { + if ($GraphResponse.value) { + "Passcode reset successfully. New passcode: $($GraphResponse.value)" + } else { + "Passcode reset queued for device $DeviceFilter. The new passcode will be generated and can be retrieved from the device details." + } + } + 'removeDevicePasscode' { + "Successfully removed passcode requirement from device $DeviceFilter" + } + default { + "Successfully queued $Action on device $DeviceFilter" + } + } + + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev Info + $StatusCode = [HttpStatusCode]::OK + $Results = $Result + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to execute $Action on device $DeviceFilter : $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + $Results = $Result + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{Results = $Results } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecGetLocalAdminPassword.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecGetLocalAdminPassword.ps1 index 4a361359e20f..85d721aec7be 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecGetLocalAdminPassword.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecGetLocalAdminPassword.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecGetLocalAdminPassword { <# .FUNCTIONALITY @@ -22,8 +20,7 @@ Function Invoke-ExecGetLocalAdminPassword { } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecGetRecoveryKey.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecGetRecoveryKey.ps1 index 2ab268e9a852..a87941bfd8e4 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecGetRecoveryKey.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecGetRecoveryKey.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ExecGetRecoveryKey { +function Invoke-ExecGetRecoveryKey { <# .FUNCTIONALITY Entrypoint @@ -12,22 +10,26 @@ Function Invoke-ExecGetRecoveryKey { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter $GUID = $Request.Query.GUID ?? $Request.Body.GUID + $RecoveryKeyType = $Request.Body.RecoveryKeyType ?? 'BitLocker' try { - $Result = Get-CIPPBitLockerKey -device $GUID -tenantFilter $TenantFilter -APIName $APIName -Headers $Headers + switch ($RecoveryKeyType) { + 'BitLocker' { $Result = Get-CIPPBitLockerKey -Device $GUID -TenantFilter $TenantFilter -APIName $APIName -Headers $Headers } + 'FileVault' { $Result = Get-CIPPFileVaultKey -Device $GUID -TenantFilter $TenantFilter -APIName $APIName -Headers $Headers } + default { throw "Invalid RecoveryKeyType specified: $RecoveryKeyType." } + } $StatusCode = [HttpStatusCode]::OK } catch { $Result = $_.Exception.Message $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{Results = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListAppProtectionPolicies.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListAppProtectionPolicies.ps1 new file mode 100644 index 000000000000..ef6b59fec416 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListAppProtectionPolicies.ps1 @@ -0,0 +1,181 @@ +function Invoke-ListAppProtectionPolicies { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.MEM.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + + $TenantFilter = $Request.Query.tenantFilter + + try { + # Use bulk requests to get groups, managed app policies and mobile app configurations + $BulkRequests = @( + @{ + id = 'Groups' + method = 'GET' + url = '/groups?$top=999&$select=id,displayName' + } + @{ + id = 'ManagedAppPolicies' + method = 'GET' + url = '/deviceAppManagement/managedAppPolicies?$orderby=displayName' + } + @{ + id = 'MobileAppConfigurations' + method = 'GET' + url = '/deviceAppManagement/mobileAppConfigurations?$expand=assignments&$orderby=displayName' + } + ) + + $BulkResults = New-GraphBulkRequest -Requests $BulkRequests -tenantid $TenantFilter + + # Extract groups for resolving assignment names + $Groups = ($BulkResults | Where-Object { $_.id -eq 'Groups' }).body.value + + $GraphRequest = [System.Collections.Generic.List[object]]::new() + + # Process Managed App Policies - these need separate assignment lookups as the ManagedAppPolicies endpoint does not support $expand + $ManagedAppPolicies = ($BulkResults | Where-Object { $_.id -eq 'ManagedAppPolicies' }).body.value + if ($ManagedAppPolicies) { + # Get all @odata.type and deduplicate them + $OdataTypes = ($ManagedAppPolicies | Select-Object -ExpandProperty '@odata.type' -Unique) -replace '#microsoft.graph.', '' + $ManagedAppPoliciesBulkRequests = foreach ($type in $OdataTypes) { + # Translate to URL segments + $urlSegment = switch ($type) { + 'androidManagedAppProtection' { 'androidManagedAppProtections' } + 'iosManagedAppProtection' { 'iosManagedAppProtections' } + 'mdmWindowsInformationProtectionPolicy' { 'mdmWindowsInformationProtectionPolicies' } + 'windowsManagedAppProtection' { 'windowsManagedAppProtections' } + 'targetedManagedAppConfiguration' { 'targetedManagedAppConfigurations' } + default { $null } + } + Write-Information "Type: $type => URL Segment: $urlSegment" + if ($urlSegment) { + @{ + id = $type + method = 'GET' + url = "/deviceAppManagement/${urlSegment}?`$expand=assignments&`$orderby=displayName" + } + } + } + + $ManagedAppPoliciesBulkResults = New-GraphBulkRequest -Requests $ManagedAppPoliciesBulkRequests -tenantid $TenantFilter + # Do this horriblenes as a workaround, as the results dont return with a odata.type property + $ManagedAppPolicies = $ManagedAppPoliciesBulkResults | ForEach-Object { + $URLName = $_.id + $_.body.value | Add-Member -NotePropertyName 'URLName' -NotePropertyValue $URLName -Force + $_.body.value + } + + + + foreach ($Policy in $ManagedAppPolicies) { + $policyType = switch ($Policy.'URLName') { + 'androidManagedAppProtection' { 'Android App Protection'; break } + 'iosManagedAppProtection' { 'iOS App Protection'; break } + 'windowsManagedAppProtection' { 'Windows App Protection'; break } + 'mdmWindowsInformationProtectionPolicy' { 'Windows Information Protection (MDM)'; break } + 'windowsInformationProtectionPolicy' { 'Windows Information Protection'; break } + 'targetedManagedAppConfiguration' { 'App Configuration (MAM)'; break } + 'defaultManagedAppProtection' { 'Default App Protection'; break } + default { 'App Protection Policy' } + } + + # Process assignments + $PolicyAssignment = [System.Collections.Generic.List[string]]::new() + $PolicyExclude = [System.Collections.Generic.List[string]]::new() + if ($Policy.assignments) { + foreach ($Assignment in $Policy.assignments) { + $target = $Assignment.target + switch ($target.'@odata.type') { + '#microsoft.graph.allDevicesAssignmentTarget' { $PolicyAssignment.Add('All Devices') } + '#microsoft.graph.allLicensedUsersAssignmentTarget' { $PolicyAssignment.Add('All Licensed Users') } + '#microsoft.graph.groupAssignmentTarget' { + $groupName = ($Groups | Where-Object { $_.id -eq $target.groupId }).displayName + if ($groupName) { $PolicyAssignment.Add($groupName) } + } + '#microsoft.graph.exclusionGroupAssignmentTarget' { + $groupName = ($Groups | Where-Object { $_.id -eq $target.groupId }).displayName + if ($groupName) { $PolicyExclude.Add($groupName) } + } + } + } + } + + $Policy | Add-Member -NotePropertyName 'PolicyTypeName' -NotePropertyValue $policyType -Force + # $Policy | Add-Member -NotePropertyName 'URLName' -NotePropertyValue 'managedAppPolicies' -Force + $Policy | Add-Member -NotePropertyName 'PolicySource' -NotePropertyValue 'AppProtection' -Force + $Policy | Add-Member -NotePropertyName 'PolicyAssignment' -NotePropertyValue ($PolicyAssignment -join ', ') -Force + $Policy | Add-Member -NotePropertyName 'PolicyExclude' -NotePropertyValue ($PolicyExclude -join ', ') -Force + $GraphRequest.Add($Policy) + } + } + + # Process Mobile App Configurations - assignments are already expanded + $MobileAppConfigs = ($BulkResults | Where-Object { $_.id -eq 'MobileAppConfigurations' }).body.value + if ($MobileAppConfigs) { + foreach ($Config in $MobileAppConfigs) { + $policyType = switch -Wildcard ($Config.'@odata.type') { + '*androidManagedStoreAppConfiguration*' { 'Android Enterprise App Configuration' } + '*androidForWorkAppConfigurationSchema*' { 'Android for Work Configuration' } + '*iosMobileAppConfiguration*' { 'iOS App Configuration' } + default { 'App Configuration Policy' } + } + + # Process assignments + $PolicyAssignment = [System.Collections.Generic.List[string]]::new() + $PolicyExclude = [System.Collections.Generic.List[string]]::new() + if ($Config.assignments) { + foreach ($Assignment in $Config.assignments) { + $target = $Assignment.target + switch ($target.'@odata.type') { + '#microsoft.graph.allDevicesAssignmentTarget' { $PolicyAssignment.Add('All Devices') } + '#microsoft.graph.allLicensedUsersAssignmentTarget' { $PolicyAssignment.Add('All Licensed Users') } + '#microsoft.graph.groupAssignmentTarget' { + $groupName = ($Groups | Where-Object { $_.id -eq $target.groupId }).displayName + if ($groupName) { $PolicyAssignment.Add($groupName) } + } + '#microsoft.graph.exclusionGroupAssignmentTarget' { + $groupName = ($Groups | Where-Object { $_.id -eq $target.groupId }).displayName + if ($groupName) { $PolicyExclude.Add($groupName) } + } + } + } + } + + $Config | Add-Member -NotePropertyName 'PolicyTypeName' -NotePropertyValue $policyType -Force + $Config | Add-Member -NotePropertyName 'URLName' -NotePropertyValue 'mobileAppConfigurations' -Force + $Config | Add-Member -NotePropertyName 'PolicySource' -NotePropertyValue 'AppConfiguration' -Force + $Config | Add-Member -NotePropertyName 'PolicyAssignment' -NotePropertyValue ($PolicyAssignment -join ', ') -Force + $Config | Add-Member -NotePropertyName 'PolicyExclude' -NotePropertyValue ($PolicyExclude -join ', ') -Force + + # Ensure isAssigned property exists for consistency + if (-not $Config.PSObject.Properties['isAssigned']) { + $Config | Add-Member -NotePropertyName 'isAssigned' -NotePropertyValue $false -Force + } + $GraphRequest.Add($Config) + } + } + + # Sort combined results by displayName + $GraphRequest = $GraphRequest | Sort-Object -Property displayName + + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListAssignmentFilterTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListAssignmentFilterTemplates.ps1 new file mode 100644 index 000000000000..0012b1a47e8e --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListAssignmentFilterTemplates.ps1 @@ -0,0 +1,38 @@ +function Invoke-ListAssignmentFilterTemplates { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Endpoint.MEM.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $ID = $Request.Query.ID + + #List assignment filter templates + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'AssignmentFilterTemplate'" + $Templates = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) | ForEach-Object { + $data = $_.JSON | ConvertFrom-Json + + [PSCustomObject]@{ + displayName = $data.displayName + description = $data.description + platform = $data.platform + rule = $data.rule + assignmentFilterManagementType = $data.assignmentFilterManagementType + GUID = $_.RowKey + } + } | Sort-Object -Property displayName + + if ($ID) { $Templates = $Templates | Where-Object -Property GUID -EQ $ID } + + + # Associate values to output bindings by calling 'Push-OutputBinding'. + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($Templates) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListAssignmentFilters.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListAssignmentFilters.ps1 new file mode 100644 index 000000000000..91c3270702be --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListAssignmentFilters.ps1 @@ -0,0 +1,39 @@ +function Invoke-ListAssignmentFilters { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.MEM.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + # Get the tenant filter + $TenantFilter = $Request.Query.tenantFilter + $FilterId = $Request.Query.filterId + + try { + if ($FilterId) { + # Get specific filter + $AssignmentFilters = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/assignmentFilters/$($FilterId)" -tenantid $TenantFilter + } else { + # Get all filters + $AssignmentFilters = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/assignmentFilters' -tenantid $TenantFilter + } + + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -message "Failed to retrieve assignment filters: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + $AssignmentFilters = @() + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($AssignmentFilters) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListCompliancePolicies.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListCompliancePolicies.ps1 new file mode 100644 index 000000000000..94a782928ad5 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListCompliancePolicies.ps1 @@ -0,0 +1,95 @@ +function Invoke-ListCompliancePolicies { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.MEM.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + + $TenantFilter = $Request.Query.tenantFilter + + try { + # Use bulk requests to get groups and compliance policies + $BulkRequests = @( + @{ + id = 'Groups' + method = 'GET' + url = '/groups?$top=999&$select=id,displayName' + } + @{ + id = 'CompliancePolicies' + method = 'GET' + url = '/deviceManagement/deviceCompliancePolicies?$expand=assignments&$orderby=displayName' + } + ) + + $BulkResults = New-GraphBulkRequest -Requests $BulkRequests -tenantid $TenantFilter + + # Extract results + $Groups = ($BulkResults | Where-Object { $_.id -eq 'Groups' }).body.value + $Policies = ($BulkResults | Where-Object { $_.id -eq 'CompliancePolicies' }).body.value + + $GraphRequest = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + # Determine policy type from @odata.type + $policyType = switch -Wildcard ($Policy.'@odata.type') { + '*windows10CompliancePolicy*' { 'Windows 10/11 Compliance' } + '*windowsPhone81CompliancePolicy*' { 'Windows Phone 8.1 Compliance' } + '*windows81CompliancePolicy*' { 'Windows 8.1 Compliance' } + '*iosCompliancePolicy*' { 'iOS Compliance' } + '*macOSCompliancePolicy*' { 'macOS Compliance' } + '*androidCompliancePolicy*' { 'Android Compliance' } + '*androidDeviceOwnerCompliancePolicy*' { 'Android Enterprise Compliance' } + '*androidWorkProfileCompliancePolicy*' { 'Android Work Profile Compliance' } + '*aospDeviceOwnerCompliancePolicy*' { 'AOSP Compliance' } + default { 'Compliance Policy' } + } + + # Process assignments + $PolicyAssignment = [System.Collections.Generic.List[string]]::new() + $PolicyExclude = [System.Collections.Generic.List[string]]::new() + + if ($Policy.assignments) { + foreach ($Assignment in $Policy.assignments) { + $target = $Assignment.target + switch ($target.'@odata.type') { + '#microsoft.graph.allDevicesAssignmentTarget' { $PolicyAssignment.Add('All Devices') } + '#microsoft.graph.allLicensedUsersAssignmentTarget' { $PolicyAssignment.Add('All Licensed Users') } + '#microsoft.graph.groupAssignmentTarget' { + $groupName = ($Groups | Where-Object { $_.id -eq $target.groupId }).displayName + if ($groupName) { $PolicyAssignment.Add($groupName) } + } + '#microsoft.graph.exclusionGroupAssignmentTarget' { + $groupName = ($Groups | Where-Object { $_.id -eq $target.groupId }).displayName + if ($groupName) { $PolicyExclude.Add($groupName) } + } + } + } + } + + $Policy | Add-Member -NotePropertyName 'PolicyTypeName' -NotePropertyValue $policyType -Force + $Policy | Add-Member -NotePropertyName 'PolicyAssignment' -NotePropertyValue ($PolicyAssignment -join ', ') -Force + $Policy | Add-Member -NotePropertyName 'PolicyExclude' -NotePropertyValue ($PolicyExclude -join ', ') -Force + + $GraphRequest.Add($Policy) + } + + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListDefenderState.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListDefenderState.ps1 index c895f478c158..e03874e4bac6 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListDefenderState.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListDefenderState.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListDefenderState { <# .FUNCTIONALITY @@ -9,10 +7,6 @@ Function Invoke-ListDefenderState { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' $StatusCode = [HttpStatusCode]::OK @@ -27,8 +21,7 @@ Function Invoke-ListDefenderState { $StatusCode = [HttpStatusCode]::Forbidden $GraphRequest = "$($ErrorMessage)" } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @($GraphRequest) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListDefenderTVM.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListDefenderTVM.ps1 index fde70dcc558a..ed88689e9578 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListDefenderTVM.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListDefenderTVM.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListDefenderTVM { <# .FUNCTIONALITY @@ -9,13 +7,7 @@ Function Invoke-ListDefenderTVM { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint $TenantFilter = $Request.Query.tenantFilter - $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APINAME -message 'Accessed this API' -Sev 'Debug' - - # Interact with query parameters or the body of the request. try { $GraphRequest = New-GraphGetRequest -tenantid $TenantFilter -uri "https://api.securitycenter.microsoft.com/api/machines/SoftwareVulnerabilitiesByMachine?`$top=999" -scope 'https://api.securitycenter.microsoft.com/.default' | Group-Object cveId @@ -51,8 +43,7 @@ Function Invoke-ListDefenderTVM { $GroupObj = $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @($GroupObj) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntunePolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntunePolicy.ps1 index b9f5ed00b5d5..adcebec6267a 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntunePolicy.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntunePolicy.ps1 @@ -1,5 +1,5 @@ -Function Invoke-ListIntunePolicy { +function Invoke-ListIntunePolicy { <# .FUNCTIONALITY Entrypoint @@ -8,14 +8,6 @@ Function Invoke-ListIntunePolicy { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APINAME -message 'Accessed this API' -Sev 'Debug' - - - - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.TenantFilter $id = $Request.Query.ID @@ -24,38 +16,41 @@ Function Invoke-ListIntunePolicy { if ($ID) { $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($URLName)('$ID')" -tenantid $TenantFilter } else { - $Groups = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/groups?$top=999' -tenantid $TenantFilter | Select-Object -Property id, displayName - $BulkRequests = [PSCustomObject]@( + @{ + id = 'Groups' + method = 'GET' + url = '/groups?$top=999&$select=id,displayName' + } @{ id = 'DeviceConfigurations' method = 'GET' - url = "/deviceManagement/deviceConfigurations?`$select=id,displayName,lastModifiedDateTime,roleScopeTagIds,microsoft.graph.unsupportedDeviceConfiguration/originalEntityTypeName,description&`$expand=assignments&top=1000" + url = "/deviceManagement/deviceConfigurations?`$select=id,displayName,lastModifiedDateTime,roleScopeTagIds,microsoft.graph.unsupportedDeviceConfiguration/originalEntityTypeName,description&`$expand=assignments&`$top=1000" } @{ id = 'WindowsDriverUpdateProfiles' method = 'GET' - url = "/deviceManagement/windowsDriverUpdateProfiles?`$expand=assignments&top=200" + url = "/deviceManagement/windowsDriverUpdateProfiles?`$expand=assignments&`$top=200" } @{ id = 'WindowsFeatureUpdateProfiles' method = 'GET' - url = "/deviceManagement/windowsFeatureUpdateProfiles?`$expand=assignments&top=200" + url = "/deviceManagement/windowsFeatureUpdateProfiles?`$expand=assignments&`$top=200" } @{ id = 'windowsQualityUpdatePolicies' method = 'GET' - url = "/deviceManagement/windowsQualityUpdatePolicies?`$expand=assignments&top=200" + url = "/deviceManagement/windowsQualityUpdatePolicies?`$expand=assignments&`$top=200" } @{ id = 'windowsQualityUpdateProfiles' method = 'GET' - url = "/deviceManagement/windowsQualityUpdateProfiles?`$expand=assignments&top=200" + url = "/deviceManagement/windowsQualityUpdateProfiles?`$expand=assignments&`$top=200" } @{ id = 'GroupPolicyConfigurations' method = 'GET' - url = "/deviceManagement/groupPolicyConfigurations?`$expand=assignments&top=1000" + url = "/deviceManagement/groupPolicyConfigurations?`$expand=assignments&`$top=1000" } @{ id = 'MobileAppConfigurations' @@ -65,13 +60,16 @@ Function Invoke-ListIntunePolicy { @{ id = 'ConfigurationPolicies' method = 'GET' - url = "/deviceManagement/configurationPolicies?`$expand=assignments&top=1000" + url = "/deviceManagement/configurationPolicies?`$expand=assignments&`$top=1000" } ) $BulkResults = New-GraphBulkRequest -Requests $BulkRequests -tenantid $TenantFilter - $GraphRequest = $BulkResults | ForEach-Object { + # Extract groups for resolving assignment names + $Groups = ($BulkResults | Where-Object { $_.id -eq 'Groups' }).body.value + + $GraphRequest = $BulkResults | Where-Object { $_.id -ne 'Groups' } | ForEach-Object { $URLName = $_.Id $_.body.Value | ForEach-Object { $policyTypeName = switch -Wildcard ($_.'assignments@odata.context') { @@ -97,7 +95,7 @@ Function Invoke-ListIntunePolicy { $Assignments = $_.assignments.target | Select-Object -Property '@odata.type', groupId $PolicyAssignment = [System.Collections.Generic.List[string]]::new() $PolicyExclude = [System.Collections.Generic.List[string]]::new() - ForEach ($target in $Assignments) { + foreach ($target in $Assignments) { switch ($target.'@odata.type') { '#microsoft.graph.allDevicesAssignmentTarget' { $PolicyAssignment.Add('All Devices') } '#microsoft.graph.exclusionallDevicesAssignmentTarget' { $PolicyExclude.Add('All Devices') } @@ -130,8 +128,7 @@ Function Invoke-ListIntunePolicy { $StatusCode = [HttpStatusCode]::Forbidden $GraphRequest = $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @($GraphRequest) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntuneScript.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntuneScript.ps1 index 2919be6460f0..2eb73bca4a00 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntuneScript.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntuneScript.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ListIntuneScript { <# .FUNCTIONALITY @@ -17,26 +15,31 @@ function Invoke-ListIntuneScript { $TenantFilter = $Request.Query.tenantFilter $Results = [System.Collections.Generic.List[System.Object]]::new() - $BulkRequests = [PSCustomObject]@( + $BulkRequests = @( + @{ + id = 'Groups' + method = 'GET' + url = '/groups?$top=999&$select=id,displayName' + } @{ id = 'Windows' method = 'GET' - url = '/deviceManagement/deviceManagementScripts' + url = '/deviceManagement/deviceManagementScripts?$expand=assignments' } @{ id = 'MacOS' method = 'GET' - url = '/deviceManagement/deviceShellScripts' + url = '/deviceManagement/deviceShellScripts?$expand=assignments' } @{ id = 'Remediation' method = 'GET' - url = '/deviceManagement/deviceHealthScripts' + url = '/deviceManagement/deviceHealthScripts?$expand=assignments' } @{ id = 'Linux' method = 'GET' - url = '/deviceManagement/configurationPolicies' + url = '/deviceManagement/configurationPolicies?$expand=assignments' } ) @@ -47,22 +50,63 @@ function Invoke-ListIntuneScript { Write-Host "Failed to retrieve scripts. Error: $($ErrorMessage.NormalizedError)" } + # Extract groups for resolving assignment names + $Groups = ($BulkResults | Where-Object { $_.id -eq 'Groups' }).body.value + foreach ($scriptId in @('Windows', 'MacOS', 'Remediation', 'Linux')) { - $scripts = ($BulkResults | Where-Object { $_.id -eq $scriptId }).body.value + $BulkResult = ($BulkResults | Where-Object { $_.id -eq $scriptId }) + if ($BulkResult.status -ne 200) { + $Results.Add(@{ + 'scriptType' = $scriptId + 'displayName' = if (Test-Json $BulkResult.body.error.message) { + ($BulkResult.body.error.message | ConvertFrom-Json).Message + } else { + $BulkResult.body.error.message + } + }) + continue + } + $scripts = $BulkResult.body.value if ($scriptId -eq 'Linux') { $scripts = $scripts | Where-Object { $_.platforms -eq 'linux' -and $_.templateReference.templateFamily -eq 'deviceConfigurationScripts' } $scripts | ForEach-Object { $_ | Add-Member -MemberType NoteProperty -Name displayName -Value $_.name -Force } } + # Process assignments for each script + foreach ($script in $scripts) { + $ScriptAssignment = [System.Collections.Generic.List[string]]::new() + $ScriptExclude = [System.Collections.Generic.List[string]]::new() + + if ($script.assignments) { + foreach ($Assignment in $script.assignments) { + $target = $Assignment.target + switch ($target.'@odata.type') { + '#microsoft.graph.allDevicesAssignmentTarget' { $ScriptAssignment.Add('All Devices') } + '#microsoft.graph.allLicensedUsersAssignmentTarget' { $ScriptAssignment.Add('All Licensed Users') } + '#microsoft.graph.groupAssignmentTarget' { + $groupName = ($Groups | Where-Object { $_.id -eq $target.groupId }).displayName + if ($groupName) { $ScriptAssignment.Add($groupName) } + } + '#microsoft.graph.exclusionGroupAssignmentTarget' { + $groupName = ($Groups | Where-Object { $_.id -eq $target.groupId }).displayName + if ($groupName) { $ScriptExclude.Add($groupName) } + } + } + } + } + + $script | Add-Member -NotePropertyName 'ScriptAssignment' -NotePropertyValue ($ScriptAssignment -join ', ') -Force + $script | Add-Member -NotePropertyName 'ScriptExclude' -NotePropertyValue ($ScriptExclude -join ', ') -Force + } + $scripts | Add-Member -MemberType NoteProperty -Name scriptType -Value $scriptId Write-Host "$scriptId scripts count: $($scripts.Count)" $Results.AddRange(@($scripts)) } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($Results) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntuneTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntuneTemplates.ps1 index 518bc40a7ac8..a64228f7c2f6 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntuneTemplates.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntuneTemplates.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ListIntuneTemplates { +function Invoke-ListIntuneTemplates { <# .FUNCTIONALITY Entrypoint,AnyTenant @@ -9,11 +7,6 @@ Function Invoke-ListIntuneTemplates { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $Table = Get-CippTable -tablename 'templates' $Imported = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'settings'" if ($Imported.IntuneTemplate -ne $true) { @@ -45,6 +38,9 @@ Function Invoke-ListIntuneTemplates { $data | Add-Member -NotePropertyName 'description' -NotePropertyValue $JSONData.Description -Force $data | Add-Member -NotePropertyName 'Type' -NotePropertyValue $JSONData.Type -Force $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $_.RowKey -Force + $data | Add-Member -NotePropertyName 'package' -NotePropertyValue $_.Package -Force + $data | Add-Member -NotePropertyName 'isSynced' -NotePropertyValue (![string]::IsNullOrEmpty($_.SHA)) -Force + $data | Add-Member -NotePropertyName 'source' -NotePropertyValue $_.Source -Force $data } catch { @@ -52,7 +48,37 @@ Function Invoke-ListIntuneTemplates { } | Sort-Object -Property displayName } else { - $Templates = $RawTemplates.JSON | ForEach-Object { try { ConvertFrom-Json -InputObject $_ -Depth 100 -ErrorAction SilentlyContinue } catch {} } + if ($Request.query.mode -eq 'Tag') { + #when the mode is tag, show all the potential tags, return the object with: label: tag, value: tag, count: number of templates with that tag, unique only + $Templates = $RawTemplates | Where-Object { $_.Package } | Select-Object -Property Package | ForEach-Object { + $package = $_.Package + [pscustomobject]@{ + label = "$($package) ($(($RawTemplates | Where-Object { $_.Package -eq $package }).Count) Templates)" + value = $package + type = 'tag' + templateCount = ($RawTemplates | Where-Object { $_.Package -eq $package }).Count + templates = @($RawTemplates | Where-Object { $_.Package -eq $package } | ForEach-Object { + try { + $JSONData = $_.JSON | ConvertFrom-Json -Depth 100 -ErrorAction SilentlyContinue + $data = $JSONData.RAWJson | ConvertFrom-Json -Depth 100 -ErrorAction SilentlyContinue + $data | Add-Member -NotePropertyName 'displayName' -NotePropertyValue $JSONData.Displayname -Force + $data | Add-Member -NotePropertyName 'description' -NotePropertyValue $JSONData.Description -Force + $data | Add-Member -NotePropertyName 'Type' -NotePropertyValue $JSONData.Type -Force + $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $_.RowKey -Force + $data | Add-Member -NotePropertyName 'package' -NotePropertyValue $_.Package -Force + $data | Add-Member -NotePropertyName 'source' -NotePropertyValue $_.Source -Force + $data | Add-Member -NotePropertyName 'isSynced' -NotePropertyValue (![string]::IsNullOrEmpty($_.SHA)) -Force + $data + } catch { + + } + }) + } + } | Sort-Object -Property label -Unique + } else { + $Templates = $RawTemplates.JSON | ForEach-Object { try { ConvertFrom-Json -InputObject $_ -Depth 100 -ErrorAction SilentlyContinue } catch {} } + + } } if ($Request.query.ID) { $Templates = $Templates | Where-Object -Property guid -EQ $Request.query.id } @@ -60,10 +86,9 @@ Function Invoke-ListIntuneTemplates { # Sort all output regardless of view condition $Templates = $Templates | Sort-Object -Property displayName - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK - Body = ($Templates | ConvertTo-Json -Depth 100) + Body = ConvertTo-Json -Depth 100 -InputObject @($Templates) }) } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemoveAssignmentFilterTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemoveAssignmentFilterTemplate.ps1 new file mode 100644 index 000000000000..e07fe933d198 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemoveAssignmentFilterTemplate.ps1 @@ -0,0 +1,42 @@ +Function Invoke-RemoveAssignmentFilterTemplate { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Endpoint.MEM.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $ID = $request.Query.ID ?? $Request.Body.ID + try { + $Table = Get-CippTable -tablename 'templates' + Write-Host $ID + + $Filter = "PartitionKey eq 'AssignmentFilterTemplate' and RowKey eq '$ID'" + Write-Host $Filter + $ClearRow = Get-CIPPAzDataTableEntity @Table -Filter $Filter -Property PartitionKey, RowKey + Remove-AzDataTableEntity -Force @Table -Entity $ClearRow + $Result = "Removed Assignment Filter Template with ID $ID" + Write-LogMessage -Headers $Headers -API $APIName -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to remove assignment filter template $($ID): $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + + # Associate values to output bindings by calling 'Push-OutputBinding'. + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) + + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemoveIntuneScript.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemoveIntuneScript.ps1 index d88f03a9f998..63260087848b 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemoveIntuneScript.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemoveIntuneScript.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-RemoveIntuneScript { <# .FUNCTIONALITY @@ -35,12 +33,12 @@ function Invoke-RemoveIntuneScript { 'Linux' { "https://graph.microsoft.com/beta/deviceManagement/ConfigurationPolicies('$($ID)')" } - Default { $null } + default { $null } } $null = New-GraphPOSTRequest -uri $URI -type DELETE -tenantid $TenantFilter $Result = "Deleted $($ScriptType) script $($DisplayName) with ID: $($ID)" - Write-LogMessage -headers $.Headers -API $APINAME -tenant $Tenant -message $Result -Sev 'Info' + Write-LogMessage -headers $Headers -API $APINAME -tenant $Tenant -message $Result -Sev 'Info' $StatusCode = [HttpStatusCode]::OK } catch { $ErrorMessage = Get-CippException -Exception $_ @@ -49,11 +47,9 @@ function Invoke-RemoveIntuneScript { $StatusCode = [HttpStatusCode]::Forbidden } - $body = [pscustomobject]@{'Results' = "$Result" } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode - Body = $body + Body = @{'Results' = "$Result" } }) } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemoveIntuneTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemoveIntuneTemplate.ps1 index ab5fc1a85cb2..b3e25890c517 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemoveIntuneTemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemoveIntuneTemplate.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-RemoveIntuneTemplate { +function Invoke-RemoveIntuneTemplate { <# .FUNCTIONALITY Entrypoint @@ -12,18 +10,20 @@ Function Invoke-RemoveIntuneTemplate { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $ID = $request.Query.ID ?? $Request.Body.ID try { $Table = Get-CippTable -tablename 'templates' - Write-Host $ID $Filter = "PartitionKey eq 'IntuneTemplate' and RowKey eq '$ID'" - Write-Host $Filter $ClearRow = Get-CIPPAzDataTableEntity @Table -Filter $Filter -Property PartitionKey, RowKey - Remove-AzDataTableEntity -Force @Table -Entity $clearRow - $Result = "Removed Intune Template with ID $ID" + if ($ClearRow) { + Remove-AzDataTableEntity @Table -Entity $clearRow -Force + $Result = "Removed Intune Template with ID $ID." + } else { + $Result = "The template with ID $ID has already been deleted." + } Write-LogMessage -Headers $Headers -API $APINAME -message $Result -Sev 'Info' $StatusCode = [HttpStatusCode]::OK } catch { @@ -33,8 +33,7 @@ Function Invoke-RemoveIntuneTemplate { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{'Results' = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemovePolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemovePolicy.ps1 index af0206cc0619..3dd078da0045 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemovePolicy.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemovePolicy.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-RemovePolicy { +function Invoke-RemovePolicy { <# .FUNCTIONALITY Entrypoint @@ -12,19 +10,23 @@ Function Invoke-RemovePolicy { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APINAME -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter ?? $Request.body.tenantFilter $PolicyId = $Request.Query.ID ?? $Request.body.ID $UrlName = $Request.Query.URLName ?? $Request.body.URLName - + $BaseEndpoint = switch ($UrlName) { + 'managedAppPolicies' { 'deviceAppManagement' } + 'mobileAppConfigurations' { 'deviceAppManagement' } + default { 'deviceManagement' } + } if (!$PolicyId) { exit } + try { + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/$($BaseEndpoint)/$($UrlName)('$($PolicyId)')" -type DELETE -tenant $TenantFilter - # $unAssignRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/deviceManagement/configurationPolicies('$($PolicyId)')/assign" -type POST -Body '{"assignments":[]}' -tenant $TenantFilter - $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($UrlName)('$($PolicyId)')" -type DELETE -tenant $TenantFilter - $Results = "Successfully deleted the policy with ID: $($PolicyId)" + $Results = "Successfully deleted the $UrlName policy with ID: $($PolicyId)" Write-LogMessage -headers $Headers -API $APINAME -message $Results -Sev Info -tenant $TenantFilter $StatusCode = [HttpStatusCode]::OK @@ -36,8 +38,7 @@ Function Invoke-RemovePolicy { } $Body = [pscustomobject]@{'Results' = "$Results" } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Reports/Invoke-ListDevices.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Reports/Invoke-ListDevices.ps1 index f049534f1a64..de9b40413023 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Reports/Invoke-ListDevices.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Reports/Invoke-ListDevices.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListDevices { <# .FUNCTIONALITY @@ -9,14 +7,6 @@ Function Invoke-ListDevices { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - - - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.TenantFilter try { @@ -28,8 +18,7 @@ Function Invoke-ListDevices { $GraphRequest = $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @($GraphRequest) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Devices/Invoke-ExecDeviceDelete.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Devices/Invoke-ExecDeviceDelete.ps1 index 8ca7b8fef050..c658b751bca7 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Devices/Invoke-ExecDeviceDelete.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Devices/Invoke-ExecDeviceDelete.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecDeviceDelete { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-ExecDeviceDelete { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with body parameters or the body of the request. $TenantFilter = $Request.Body.tenantFilter ?? $Request.Query.tenantFilter @@ -27,8 +25,7 @@ Function Invoke-ExecDeviceDelete { $StatusCode = [HttpStatusCode]::BadRequest } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ 'Results' = $Results } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-AddGroup.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-AddGroup.ps1 index 8a14f5d0928a..e8495e38dc77 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-AddGroup.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-AddGroup.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-AddGroup { <# .FUNCTIONALITY @@ -12,88 +10,29 @@ function Invoke-AddGroup { $APIName = $Request.Params.CIPPEndpoint $SelectedTenants = if ('AllTenants' -in $SelectedTenants) { (Get-Tenants).defaultDomainName } else { $Request.body.tenantFilter.value ? $Request.body.tenantFilter.value : $Request.body.tenantFilter } - Write-LogMessage -headers $Request.Headers -API $APIName -message 'Accessed this API' -Sev Debug $GroupObject = $Request.body $Results = foreach ($tenant in $SelectedTenants) { try { - $Email = if ($GroupObject.primDomain.value) { "$($GroupObject.username)@$($GroupObject.primDomain.value)" } else { "$($GroupObject.username)@$($tenant)" } - if ($GroupObject.groupType -in 'Generic', 'azurerole', 'dynamic', 'm365') { + # Use the centralized New-CIPPGroup function + $Result = New-CIPPGroup -GroupObject $GroupObject -TenantFilter $tenant -APIName $APIName -ExecutingUser $Request.Headers.'x-ms-client-principal-name' - $BodyParams = [pscustomobject] @{ - 'displayName' = $GroupObject.displayName - 'description' = $GroupObject.description - 'mailNickname' = $GroupObject.username - mailEnabled = [bool]$false - securityEnabled = [bool]$true - isAssignableToRole = [bool]($GroupObject | Where-Object -Property groupType -EQ 'AzureRole') - } - if ($GroupObject.membershipRules) { - $BodyParams | Add-Member -NotePropertyName 'membershipRule' -NotePropertyValue ($GroupObject.membershipRules) - $BodyParams | Add-Member -NotePropertyName 'membershipRuleProcessingState' -NotePropertyValue 'On' - if ($GroupObject.groupType -eq 'm365') { - $BodyParams | Add-Member -NotePropertyName 'groupTypes' -NotePropertyValue @('Unified', 'DynamicMembership') - $BodyParams.mailEnabled = $true - } else { - $BodyParams | Add-Member -NotePropertyName 'groupTypes' -NotePropertyValue @('DynamicMembership') - } - # Skip adding static members if we're using dynamic membership - $SkipStaticMembers = $true - } elseif ($GroupObject.groupType -eq 'm365') { - $BodyParams | Add-Member -NotePropertyName 'groupTypes' -NotePropertyValue @('Unified') - $BodyParams.mailEnabled = $true - } - if ($GroupObject.owners) { - $BodyParams | Add-Member -NotePropertyName 'owners@odata.bind' -NotePropertyValue (($GroupObject.owners) | ForEach-Object { "https://graph.microsoft.com/v1.0/users/$($_.value)" }) - $BodyParams.'owners@odata.bind' = @($BodyParams.'owners@odata.bind') - } - if ($GroupObject.members -and -not $SkipStaticMembers) { - $BodyParams | Add-Member -NotePropertyName 'members@odata.bind' -NotePropertyValue (($GroupObject.members) | ForEach-Object { "https://graph.microsoft.com/v1.0/users/$($_.value)" }) - $BodyParams.'members@odata.bind' = @($BodyParams.'members@odata.bind') - } - $GraphRequest = New-GraphPostRequest -uri 'https://graph.microsoft.com/beta/groups' -tenantid $tenant -type POST -body (ConvertTo-Json -InputObject $BodyParams -Depth 10) -Verbose + if ($Result.Success) { + "Successfully created group $($GroupObject.displayName) for $($tenant)" + $StatusCode = [HttpStatusCode]::OK } else { - if ($GroupObject.groupType -eq 'dynamicDistribution') { - $ExoParams = @{ - Name = $GroupObject.displayName - RecipientFilter = $GroupObject.membershipRules - PrimarySmtpAddress = $Email - } - $GraphRequest = New-ExoRequest -tenantid $tenant -cmdlet 'New-DynamicDistributionGroup' -cmdParams $ExoParams - } else { - $ExoParams = @{ - Name = $GroupObject.displayName - Alias = $GroupObject.username - Description = $GroupObject.description - PrimarySmtpAddress = $Email - Type = $GroupObject.groupType - RequireSenderAuthenticationEnabled = [bool]!$GroupObject.allowExternal - } - if ($GroupObject.owners) { - $ExoParams.ManagedBy = @($GroupObject.owners.value) - } - if ($GroupObject.members) { - $ExoParams.Members = @($GroupObject.members.value) - } - $GraphRequest = New-ExoRequest -tenantid $tenant -cmdlet 'New-DistributionGroup' -cmdParams $ExoParams - } + throw $Result.Message } - - "Successfully created group $($GroupObject.displayName) for $($tenant)" - Write-LogMessage -headers $Request.Headers -API $APIName -tenant $tenant -message "Created group $($GroupObject.displayName) with id $($GraphRequest.id)" -Sev Info - $StatusCode = [HttpStatusCode]::OK } catch { $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -headers $Request.Headers -API $APIName -tenant $tenant -message "Group creation API failed. $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage "Failed to create group. $($GroupObject.displayName) for $($tenant) $($ErrorMessage.NormalizedError)" $StatusCode = [HttpStatusCode]::InternalServerError } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{'Results' = @($Results) } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-AddGroupTeam.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-AddGroupTeam.ps1 new file mode 100644 index 000000000000..f1c93f4d54b3 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-AddGroupTeam.ps1 @@ -0,0 +1,78 @@ +function Invoke-AddGroupTeam { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.Group.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $TenantFilter = $Request.Body.TenantFilter + $GroupId = $Request.Body.GroupId + + $Results = [System.Collections.Generic.List[string]]@() + + try { + # Default team settings - can be customized via request body + $TeamSettings = if ($Request.Body.TeamSettings) { + $Request.Body.TeamSettings + } else { + @{ + memberSettings = @{ + allowCreatePrivateChannels = $true + allowCreateUpdateChannels = $true + } + messagingSettings = @{ + allowUserEditMessages = $true + allowUserDeleteMessages = $true + } + funSettings = @{ + allowGiphy = $true + giphyContentRating = 'strict' + } + } + } + + # Create team from group using PUT request + $GraphParams = @{ + uri = "https://graph.microsoft.com/beta/groups/$GroupId/team" + tenantid = $TenantFilter + type = 'PUT' + body = ($TeamSettings | ConvertTo-Json -Depth 10) + AsApp = $true + } + $null = New-GraphPOSTRequest @GraphParams + + $Results.Add("Successfully created team from group $GroupId") + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Created team from group $GroupId" -Sev 'Info' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $RawMessage = $_.Exception.Message + + # Determine if this is a likely replication delay 404 (exclude owner/membership related 404s) + $Is404 = ($RawMessage -match '404|Not Found' -or $ErrorMessage.NormalizedError -match '404|Not Found') + $IsOwnerRelated = ($RawMessage -match 'owner' -or $ErrorMessage.NormalizedError -match 'owner') + $IsMembershipRelated = ($RawMessage -match 'member' -or $ErrorMessage.NormalizedError -match 'member') + + $IsReplicationDelay = $Is404 -and -not ($IsOwnerRelated -or $IsMembershipRelated) + + if ($IsReplicationDelay) { + $Results.Add('Failed to create team: The group may have been created too recently. If it was created less than 15 minutes ago, wait and retry. Groups need time to fully replicate before a team can be created.') + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Failed to create team from group $GroupId - probable replication delay (404). Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + } else { + $Results.Add("Failed to create team: $($ErrorMessage.NormalizedError)") + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Failed to create team from group $GroupId. Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + } + } + + $Body = @{ + Results = @($Results) + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-AddGroupTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-AddGroupTemplate.ps1 index 51380b38dc68..5f709fd9db24 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-AddGroupTemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-AddGroupTemplate.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-AddGroupTemplate { <# .FUNCTIONALITY @@ -10,31 +8,50 @@ function Invoke-AddGroupTemplate { [CmdletBinding()] param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $GUID = $Request.Body.GUID ?? (New-Guid).GUID try { - if (!$Request.Body.displayname) { throw 'You must enter a displayname' } - $groupType = switch -wildcard ($Request.Body.groupType) { - '*dynamic*' { 'dynamic' } - '*azurerole*' { 'azurerole' } - '*unified*' { 'm365' } - '*Microsoft*' { 'm365' } - '*generic*' { 'generic' } - '*mail*' { 'mailenabledsecurity' } - '*Distribution*' { 'distribution' } - '*security*' { 'security' } + if (!$Request.Body.displayName) { + throw 'You must enter a displayname' + } + + # Normalize group type to match New-CIPPGroup expectations + # Handle values from ListGroups calculatedGroupType and frontend form values + $groupType = switch -wildcard ($Request.Body.groupType.ToLower()) { + # Values from ListGroups calculatedGroupType + '*mail-enabled security*' { 'security'; break } + '*microsoft 365*' { 'm365'; break } + '*distribution list*' { 'distribution'; break } + # Dynamic groups don't have a specific calculatedGroupType - they're detected by membershipRule + # Frontend form values (camelCase and lowercase) + '*dynamicdistribution*' { 'dynamicDistribution'; break } + '*dynamic*' { 'dynamic'; break } + '*azurerole*' { 'azureRole'; break } + '*unified*' { 'm365'; break } + '*m365*' { 'm365'; break } + '*generic*' { 'generic'; break } + '*security*' { 'security'; break } + '*distribution*' { 'distribution'; break } + '*mail*' { 'distribution'; break } default { $Request.Body.groupType } } - if ($Request.body.membershipRules) { $groupType = 'dynamic' } + + # Override to dynamic if membership rules are provided (for backward compatibility) + # but only if it's not already a dynamicDistribution group + if ($Request.body.membershipRules -and ![string]::IsNullOrEmpty($Request.Body.membershipRules) -and $Request.Body.membershipRules -ne 'membershipRule' -and $groupType -notin @('dynamicDistribution')) { + $groupType = 'dynamic' + } + # Normalize field names to handle different casing from various forms + $displayName = $Request.Body.displayName ?? $Request.Body.Displayname ?? $Request.Body.displayname + $description = $Request.Body.description ?? $Request.Body.Description + $MembershipRules = ([string]::IsNullOrEmpty($Request.Body.membershipRules) -or $Request.Body.membershipRules -eq 'membershipRule') ? $null : $Request.Body.membershipRules + $object = [PSCustomObject]@{ - displayName = $Request.Body.displayName - description = $Request.Body.description + displayName = $displayName + description = $description groupType = $groupType - membershipRules = $Request.Body.membershipRules + membershipRules = $MembershipRules allowExternal = $Request.Body.allowExternal - username = $Request.Body.username + username = $Request.Body.username # Can contain variables like @%tenantfilter% GUID = $GUID } | ConvertTo-Json $Table = Get-CippTable -tablename 'templates' @@ -44,7 +61,7 @@ function Invoke-AddGroupTemplate { RowKey = "$GUID" PartitionKey = 'GroupTemplate' } - Write-LogMessage -headers $Request.Headers -API $APINAME -message "Created Group template named $($Request.Body.displayname) with GUID $GUID" -Sev 'Debug' + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Created Group template named $displayName with GUID $GUID" -Sev 'Debug' $body = [pscustomobject]@{'Results' = 'Successfully added template' } } catch { @@ -53,8 +70,7 @@ function Invoke-AddGroupTemplate { } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-EditGroup.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-EditGroup.ps1 index 34ec25c7abdc..a94233ce1e8c 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-EditGroup.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-EditGroup.ps1 @@ -10,18 +10,18 @@ function Invoke-EditGroup { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $Results = [System.Collections.Generic.List[string]]@() $UserObj = $Request.Body $GroupType = $UserObj.groupId.addedFields.groupType ? $UserObj.groupId.addedFields.groupType : $UserObj.groupType - $GroupName = $UserObj.groupName ? $UserObj.groupName : $UserObj.groupId.addedFields.groupName + # groupName is used in the Add to Group user action, displayName is used in the Edit Group page + $GroupName = $UserObj.groupName ?? $UserObj.displayName ?? $UserObj.groupId.addedFields.groupName $GroupId = $UserObj.groupId.value ?? $UserObj.groupId $OrgGroup = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/groups/$($GroupId)" -tenantid $UserObj.tenantFilter $AddMembers = $UserObj.AddMember - $TenantId = $UserObj.tenantId ?? $UserObj.tenantFilter $MemberODataBindString = 'https://graph.microsoft.com/v1.0/directoryObjects/{0}' @@ -45,12 +45,15 @@ function Invoke-EditGroup { target = $GroupId }) } else { + # Use new securityEnabled value if provided, otherwise keep original + $SecurityEnabled = $null -ne $UserObj.securityEnabled ? $UserObj.securityEnabled : $OrgGroup.securityEnabled + $PatchObj = @{ displayName = $UserObj.displayName description = $UserObj.description mailNickname = $UserObj.mailNickname mailEnabled = $OrgGroup.mailEnabled - securityEnabled = $OrgGroup.securityEnabled + securityEnabled = $SecurityEnabled } Write-Host "body: $($PatchObj | ConvertTo-Json -Depth 10 -Compress)" -ForegroundColor Yellow if ($UserObj.membershipRules) { $PatchObj | Add-Member -MemberType NoteProperty -Name 'membershipRule' -Value $UserObj.membershipRules -Force } @@ -58,6 +61,13 @@ function Invoke-EditGroup { $null = New-GraphPOSTRequest -type PATCH -uri "https://graph.microsoft.com/beta/groups/$($GroupId)" -tenantid $UserObj.tenantFilter -body ($PatchObj | ConvertTo-Json -Depth 10 -Compress) $Results.Add("Success - Edited group properties for $($GroupName) group. It might take some time to reflect the changes.") Write-LogMessage -headers $Headers -API $APIName -tenant $UserObj.tenantFilter -message "Edited group properties for $($GroupName) group" -Sev 'Info' + + # Log securityEnabled changes specifically + if ($null -ne $UserObj.securityEnabled -and $UserObj.securityEnabled -ne $OrgGroup.securityEnabled) { + $securityStatusText = "Security capabilities $($UserObj.securityEnabled ? 'enabled' : 'disabled') for group $($GroupName)" + Write-LogMessage -headers $Headers -API $APIName -tenant $UserObj.tenantFilter -message $securityStatusText -Sev 'Info' + $Results.Add($securityStatusText) + } } catch { $Results.Add("Error - Failed to edit group properties: $($_.Exception.Message)") Write-LogMessage -headers $Headers -API $APIName -tenant $UserObj.tenantFilter -message "Failed to patch group: $($_.Exception.Message)" -Sev 'Error' @@ -69,8 +79,8 @@ function Invoke-EditGroup { $AddMembers | ForEach-Object { try { # Add to group user action and edit group page sends in different formats, so we need to handle both - $Member = $_.value ?? $_ - $MemberID = $_.addedFields.id + $Member = $_.addedFields.userPrincipalName ?? $_.value ?? $_ + $MemberID = $_.value if (!$MemberID) { $MemberID = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$Member" -tenantid $TenantId).id } @@ -146,8 +156,8 @@ function Invoke-EditGroup { try { if ($RemoveContact) { $RemoveContact | ForEach-Object { - $Member = $_.value - $MemberID = $_.addedFields.id + $Member = $_.addedFields.userPrincipalName ?? $_.value + $MemberID = $_.value if ($GroupType -eq 'Distribution list' -or $GroupType -eq 'Mail-Enabled Security') { $Params = @{ Identity = $GroupId; Member = $MemberID ; BypassSecurityGroupManagerCheck = $true } $ExoBulkRequests.Add(@{ @@ -174,8 +184,8 @@ function Invoke-EditGroup { try { if ($RemoveMembers) { $RemoveMembers | ForEach-Object { - $Member = $_.value - $MemberID = $_.addedFields.id + $Member = $_.addedFields.userPrincipalName ?? $_.value + $MemberID = $_.value if ($GroupType -eq 'Distribution list' -or $GroupType -eq 'Mail-Enabled Security') { $Params = @{ Identity = $GroupId; Member = $Member ; BypassSecurityGroupManagerCheck = $true } $ExoBulkRequests.Add(@{ @@ -210,8 +220,8 @@ function Invoke-EditGroup { if ($AddOwners) { if ($GroupType -notin @('Distribution List', 'Mail-Enabled Security')) { $AddOwners | ForEach-Object { - $Owner = $_.value - $ID = $_.addedFields.id + $Owner = $_.addedFields.userPrincipalName ?? $_.value + $ID = $_.value $BulkRequests.Add(@{ id = "addOwner-$Owner" @@ -225,7 +235,7 @@ function Invoke-EditGroup { } }) $GraphLogs.Add(@{ - message = "Added $Owner to $($GroupName) group" + message = "Added owner $($Owner) to $($GroupName) group" id = "addOwner-$Owner" }) } @@ -240,14 +250,15 @@ function Invoke-EditGroup { if ($RemoveOwners) { if ($GroupType -notin @('Distribution List', 'Mail-Enabled Security')) { $RemoveOwners | ForEach-Object { - $ID = $_.addedFields.id + $ID = $_.value + $Owner = $_.addedFields.userPrincipalName ?? $_.value $BulkRequests.Add(@{ id = "removeOwner-$ID" method = 'DELETE' url = "groups/$($GroupId)/owners/$ID/`$ref" }) $GraphLogs.Add(@{ - message = "Removed $($_.value) from $($GroupName) group" + message = "Removed owner $($Owner) from $($GroupName) group" id = "removeOwner-$ID" }) } @@ -262,8 +273,8 @@ function Invoke-EditGroup { $NewManagedBy = [System.Collections.Generic.List[string]]::new() foreach ($CurrentOwner in $CurrentOwners) { - if ($RemoveOwners -and $RemoveOwners.addedFields.id -contains $CurrentOwner) { - $OwnerToRemove = $RemoveOwners | Where-Object { $_.addedFields.id -eq $CurrentOwner } + if ($RemoveOwners -and $RemoveOwners.value -contains $CurrentOwner) { + $OwnerToRemove = $RemoveOwners | Where-Object { $_.value -eq $CurrentOwner } $ExoLogs.Add(@{ message = "Removed owner $($OwnerToRemove.label) from $($GroupName) group" target = $GroupId @@ -274,7 +285,7 @@ function Invoke-EditGroup { } if ($AddOwners) { foreach ($NewOwner in $AddOwners) { - $NewManagedBy.Add($NewOwner.addedFields.id) + $NewManagedBy.Add($NewOwner.value) $ExoLogs.Add(@{ message = "Added owner $($NewOwner.label) to $($GroupName) group" target = $GroupId @@ -360,6 +371,20 @@ function Invoke-EditGroup { } } + # Only process visibility if it was explicitly sent for Microsoft 365 groups + if ($GroupType -eq 'Microsoft 365' -and -not [string]::IsNullOrWhiteSpace($UserObj.visibility)) { + try { + $VisibilityValue = $UserObj.visibility + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/groups/$($GroupID)" -type PATCH -tenantid $TenantId -body (@{'visibility' = $VisibilityValue } | ConvertTo-Json) + + $Results.Add("Set group visibility to $VisibilityValue for $($GroupName).") + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-Warning "Error in visibility: $($ErrorMessage.NormalizedError) - $($_.InvocationInfo.ScriptLineNumber)" + $Results.Add("Failed to set group visibility for $($GroupName): $($ErrorMessage.NormalizedError)") + } + } + # Only process sendCopies if it was explicitly sent if ($null -ne $UserObj.sendCopies) { try { @@ -406,9 +431,30 @@ function Invoke-EditGroup { } } + # Only process hideFromOutlookClients if it was explicitly sent and is a Microsoft 365 group + if ($null -ne $UserObj.hideFromOutlookClients -and $GroupType -eq 'Microsoft 365') { + try { + $Params = @{ Identity = $GroupId; HiddenFromExchangeClientsEnabled = $UserObj.hideFromOutlookClients } + $null = New-ExoRequest -tenantid $TenantId -cmdlet 'Set-UnifiedGroup' -cmdParams $Params -useSystemMailbox $true + + if ($UserObj.hideFromOutlookClients -eq $true) { + $Results.Add("Successfully hidden group mailbox from Outlook for $($GroupName).") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message "Successfully hidden group mailbox from Outlook for $($GroupName)." -Sev 'Info' + } else { + $Results.Add("Successfully made group mailbox visible in Outlook for $($GroupName).") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message "Successfully made group mailbox visible in Outlook for $($GroupName)." -Sev 'Info' + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-Warning "Error in hideFromOutlookClients: $($ErrorMessage.NormalizedError) - $($_.InvocationInfo.ScriptLineNumber)" + $action = if ($UserObj.hideFromOutlookClients -eq $true) { 'hide' } else { 'show' } + $Results.Add("Failed to $action group mailbox in Outlook for $($GroupName).") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message "Failed to $action group mailbox in Outlook for $($GroupName). Error:$($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + } + } + $body = @{'Results' = @($Results) } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroupSenderAuthentication.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroupSenderAuthentication.ps1 index 514e50a4d6a9..203b28046a6d 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroupSenderAuthentication.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroupSenderAuthentication.ps1 @@ -1,13 +1,12 @@ -using namespace System.Net - -Function Invoke-ListGroupSenderAuthentication { +function Invoke-ListGroupSenderAuthentication { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Groups.Read + #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.TenantFilter $groupid = $Request.query.groupid @@ -37,7 +36,7 @@ Function Invoke-ListGroupSenderAuthentication { } # We flip the value because the API is asking if the group is allowed to receive external mail - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @{ allowedToReceiveExternal = !$state } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroupTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroupTemplates.ps1 index 2e9364e73535..b58a93aa3ced 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroupTemplates.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroupTemplates.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ListGroupTemplates { <# .FUNCTIONALITY @@ -9,35 +7,59 @@ function Invoke-ListGroupTemplates { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - Write-Host $Request.query.id #List new policies $Table = Get-CippTable -tablename 'templates' $Filter = "PartitionKey eq 'GroupTemplate'" $Templates = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) | ForEach-Object { - $data = $_.JSON | ConvertFrom-Json - [PSCustomObject]@{ - displayName = $data.displayName - description = $data.description - groupType = $data.groupType - membershipRules = $data.membershipRules - allowExternal = $data.allowExternal - username = $data.username - GUID = $_.RowKey + try { + $data = $_.JSON | ConvertFrom-Json -ErrorAction SilentlyContinue + # Normalize groupType to camelCase for consistent frontend handling + # Handle both stored normalized values and legacy values + + if (!$data.groupType) { + $data.groupType = 'generic' + } + + $normalizedGroupType = switch -Wildcard ($data.groupType) { + # Already normalized values (most common) + 'dynamicdistribution' { 'dynamicDistribution'; break } + 'azurerole' { 'azureRole'; break } + # Legacy values that might exist in stored templates + '*dynamicdistribution*' { 'dynamicDistribution'; break } + '*dynamic*' { 'dynamic'; break } + '*azurerole*' { 'azureRole'; break } + '*unified*' { 'm365'; break } + '*microsoft*' { 'm365'; break } + '*m365*' { 'm365'; break } + '*generic*' { 'generic'; break } + '*security*' { 'security'; break } + '*distribution*' { 'distribution'; break } + '*mail*' { 'distribution'; break } + default { $data.groupType } + } + + [PSCustomObject]@{ + displayName = $data.displayName + description = $data.description + groupType = $normalizedGroupType + membershipRules = $data.membershipRules + allowExternal = $data.allowExternal + username = $data.username + GUID = $_.RowKey + source = $_.Source + isSynced = (![string]::IsNullOrEmpty($_.SHA)) + } + } catch { + Write-Information "Could not parse group template $($_.RowKey): $($_.Exception.Message)" } } | Sort-Object -Property displayName if ($Request.query.ID) { $Templates = $Templates | Where-Object -Property GUID -EQ $Request.query.id } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($Templates) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroups.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroups.ps1 index a516f92158f7..9db18151e54e 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroups.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroups.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ListGroups { <# .FUNCTIONALITY @@ -9,22 +7,24 @@ function Invoke-ListGroups { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $TenantFilter = $Request.Query.tenantFilter $GroupID = $Request.Query.groupID $GroupType = $Request.Query.groupType $Members = $Request.Query.members $Owners = $Request.Query.owners - $SelectString = 'id,createdDateTime,displayName,description,mail,mailEnabled,mailNickname,resourceProvisioningOptions,securityEnabled,visibility,organizationId,onPremisesSamAccountName,membershipRule,groupTypes,onPremisesSyncEnabled,resourceProvisioningOptions,userPrincipalName&$expand=members($select=userPrincipalName)' + + $ExpandMembers = $Request.Query.expandMembers ?? $false + + $SelectString = 'id,createdDateTime,displayName,description,mail,mailEnabled,mailNickname,resourceProvisioningOptions,securityEnabled,visibility,organizationId,onPremisesSamAccountName,membershipRule,groupTypes,onPremisesSyncEnabled,resourceProvisioningOptions,assignedLicenses,userPrincipalName,licenseProcessingState' + if ($ExpandMembers -ne $false) { + $SelectString = '{0}&$expand=members($select=userPrincipalName)' -f $SelectString + } + $BulkRequestArrayList = [System.Collections.Generic.List[object]]::new() if ($Request.Query.GroupID) { - $SelectString = 'id,createdDateTime,displayName,description,mail,mailEnabled,mailNickname,resourceProvisioningOptions,securityEnabled,visibility,organizationId,onPremisesSamAccountName,membershipRule,groupTypes,userPrincipalName,onPremisesSyncEnabled' + $SelectString = 'id,createdDateTime,displayName,description,mail,mailEnabled,mailNickname,resourceProvisioningOptions,securityEnabled,visibility,organizationId,onPremisesSamAccountName,membershipRule,groupTypes,assignedLicenses,userPrincipalName,onPremisesSyncEnabled,licenseProcessingState' $BulkRequestArrayList.add(@{ id = 1 method = 'GET' @@ -69,14 +69,14 @@ function Invoke-ListGroups { # get the outside the organization RequireSenderAuthenticationEnabled setting $OnlyAllowInternal = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-DistributionGroup' -cmdParams @{Identity = $GroupID } -Select 'RequireSenderAuthenticationEnabled' -useSystemMailbox $true | Select-Object -ExpandProperty RequireSenderAuthenticationEnabled } elseif ($GroupType -eq 'Microsoft 365') { - $UnifiedGroup = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-UnifiedGroup' -cmdParams @{Identity = $GroupID } -Select 'RequireSenderAuthenticationEnabled,subscriptionEnabled,AutoSubscribeNewMembers' -useSystemMailbox $true - $OnlyAllowInternal = $UnifiedGroup.RequireSenderAuthenticationEnabled + $UnifiedGroupInfo = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-UnifiedGroup' -cmdParams @{Identity = $GroupID } -Select 'RequireSenderAuthenticationEnabled,subscriptionEnabled,AutoSubscribeNewMembers,HiddenFromExchangeClientsEnabled' -useSystemMailbox $true + $OnlyAllowInternal = $UnifiedGroupInfo.RequireSenderAuthenticationEnabled } else { $OnlyAllowInternal = $null } if ($GroupType -eq 'Microsoft 365') { - if ($UnifiedGroup.subscriptionEnabled -eq $true -and $UnifiedGroup.AutoSubscribeNewMembers -eq $true) { $SendCopies = $true } else { $SendCopies = $false } + if ($UnifiedGroupInfo.subscriptionEnabled -eq $true -and $UnifiedGroupInfo.AutoSubscribeNewMembers -eq $true) { $SendCopies = $true } else { $SendCopies = $false } } else { $SendCopies = $null } @@ -85,30 +85,45 @@ function Invoke-ListGroups { if ($BulkRequestArrayList.Count -gt 0) { $RawGraphRequest = New-GraphBulkRequest -tenantid $TenantFilter -scope 'https://graph.microsoft.com/.default' -Requests @($BulkRequestArrayList) -asapp $true $GraphRequest = [PSCustomObject]@{ - groupInfo = ($RawGraphRequest | Where-Object { $_.id -eq 1 }).body | Select-Object *, @{ Name = 'primDomain'; Expression = { $_.mail -split '@' | Select-Object -Last 1 } }, - @{Name = 'teamsEnabled'; Expression = { if ($_.resourceProvisioningOptions -Like '*Team*') { $true } else { $false } } }, - @{Name = 'calculatedGroupType'; Expression = { - if ($_.mailEnabled -and $_.securityEnabled) { 'Mail-Enabled Security' } - if (!$_.mailEnabled -and $_.securityEnabled) { 'Security' } + groupInfo = ($RawGraphRequest | Where-Object { $_.id -eq 1 }).body | Select-Object *, @{ Name = 'primDomain'; Expression = { $_.mail -split '@' | Select-Object -Last 1 } }, + @{Name = 'teamsEnabled'; Expression = { if ($_.resourceProvisioningOptions -like '*Team*') { $true } else { $false } } }, + @{Name = 'groupType'; Expression = { if ($_.groupTypes -contains 'Unified') { 'Microsoft 365' } - if (([string]::isNullOrEmpty($_.groupTypes)) -and ($_.mailEnabled) -and (!$_.securityEnabled)) { 'Distribution List' } + elseif ($_.mailEnabled -and $_.securityEnabled) { 'Mail-Enabled Security' } + elseif (-not $_.mailEnabled -and $_.securityEnabled) { 'Security' } + elseif (([string]::isNullOrEmpty($_.groupTypes)) -and ($_.mailEnabled) -and (-not $_.securityEnabled)) { 'Distribution List' } } - }, @{Name = 'dynamicGroupBool'; Expression = { if ($_.groupTypes -contains 'DynamicMembership') { $true } else { $false } } } - members = ($RawGraphRequest | Where-Object { $_.id -eq 2 }).body.value - owners = ($RawGraphRequest | Where-Object { $_.id -eq 3 }).body.value - allowExternal = (!$OnlyAllowInternal) - sendCopies = $SendCopies + }, + @{Name = 'calculatedGroupType'; Expression = { + if ($_.groupTypes -contains 'Unified') { 'm365' } + elseif ($_.mailEnabled -and $_.securityEnabled) { 'security' } + elseif (-not $_.mailEnabled -and $_.securityEnabled) { 'generic' } + elseif (([string]::isNullOrEmpty($_.groupTypes)) -and ($_.mailEnabled) -and (-not $_.securityEnabled)) { 'distributionList' } + } + }, + @{Name = 'dynamicGroupBool'; Expression = { if ($_.groupTypes -contains 'DynamicMembership') { $true } else { $false } } } + members = @(($RawGraphRequest | Where-Object { $_.id -eq 2 }).body.value | Sort-Object displayName) + owners = @(($RawGraphRequest | Where-Object { $_.id -eq 3 }).body.value | Sort-Object displayName) + allowExternal = (!$OnlyAllowInternal) + sendCopies = $SendCopies + hideFromOutlookClients = if ($GroupType -eq 'Microsoft 365') { $UnifiedGroupInfo.HiddenFromExchangeClientsEnabled } else { $null } } } else { $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/groups/$($GroupID)/$($members)?`$top=999&select=$SelectString" -tenantid $TenantFilter | Select-Object *, @{ Name = 'primDomain'; Expression = { $_.mail -split '@' | Select-Object -Last 1 } }, @{Name = 'membersCsv'; Expression = { $_.members.userPrincipalName -join ',' } }, @{Name = 'teamsEnabled'; Expression = { if ($_.resourceProvisioningOptions -like '*Team*') { $true }else { $false } } }, - @{Name = 'calculatedGroupType'; Expression = { - - if ($_.mailEnabled -and $_.securityEnabled) { 'Mail-Enabled Security' } - if (!$_.mailEnabled -and $_.securityEnabled) { 'Security' } + @{Name = 'groupType'; Expression = { if ($_.groupTypes -contains 'Unified') { 'Microsoft 365' } - if (([string]::isNullOrEmpty($_.groupTypes)) -and ($_.mailEnabled) -and (!$_.securityEnabled)) { 'Distribution List' } + elseif ($_.mailEnabled -and $_.securityEnabled) { 'Mail-Enabled Security' } + elseif (-not $_.mailEnabled -and $_.securityEnabled) { 'Security' } + elseif (([string]::isNullOrEmpty($_.groupTypes)) -and ($_.mailEnabled) -and (-not $_.securityEnabled)) { 'Distribution List' } + } + }, + @{Name = 'calculatedGroupType'; Expression = { + if ($_.groupTypes -contains 'Unified') { 'm365' } + elseif ($_.mailEnabled -and $_.securityEnabled) { 'security' } + elseif (-not $_.mailEnabled -and $_.securityEnabled) { 'generic' } + elseif (([string]::isNullOrEmpty($_.groupTypes)) -and ($_.mailEnabled) -and (-not $_.securityEnabled)) { 'distributionList' } } }, @{Name = 'dynamicGroupBool'; Expression = { if ($_.groupTypes -contains 'DynamicMembership') { $true } else { $false } } } @@ -122,8 +137,7 @@ function Invoke-ListGroups { $StatusCode = [HttpStatusCode]::Forbidden $GraphRequest = $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $GraphRequest }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-RemoveGroupTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-RemoveGroupTemplate.ps1 index 00d2742ce436..30066360f223 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-RemoveGroupTemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-RemoveGroupTemplate.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-RemoveGroupTemplate { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-RemoveGroupTemplate { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $ID = $request.Query.ID ?? $Request.Body.ID try { @@ -34,8 +32,7 @@ Function Invoke-RemoveGroupTemplate { } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{'Results' = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddGuest.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddGuest.ps1 index cc9db658bf78..34d1114ac9a0 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddGuest.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddGuest.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-AddGuest { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-AddGuest { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $TenantFilter = $Request.Body.tenantFilter $UserObject = $Request.Body @@ -50,8 +48,7 @@ Function Invoke-AddGuest { $StatusCode = [HttpStatusCode]::BadRequest } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ 'Results' = @($Result) } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddJITAdminTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddJITAdminTemplate.ps1 new file mode 100644 index 000000000000..dd2de9d523e0 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddJITAdminTemplate.ps1 @@ -0,0 +1,150 @@ +function Invoke-AddJITAdminTemplate { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.Role.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + try { + # Extract data from request body + $TenantFilter = $Request.Body.tenantFilter + $TemplateName = $Request.Body.templateName + + # Validate required fields + if ([string]::IsNullOrWhiteSpace($TenantFilter)) { + throw 'tenantFilter is required' + } + if ([string]::IsNullOrWhiteSpace($TemplateName)) { + throw 'templateName is required' + } + + Write-LogMessage -headers $Headers -API $APIName -message "Creating JIT Admin template '$TemplateName' for tenant: $TenantFilter" -Sev 'Info' + + # Get user info for audit + $UserDetails = ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json).userDetails + + # Check if template name already exists for this tenant + $Table = Get-CippTable -tablename 'templates' + $ExistingTemplates = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'JITAdminTemplate'" + $ExistingNames = $ExistingTemplates | ForEach-Object { + try { + $data = $_.JSON | ConvertFrom-Json -Depth 100 -ErrorAction Stop + if ($data.tenantFilter -eq $TenantFilter -and $data.templateName -eq $TemplateName) { + $data + } + } catch {} + } + + if ($ExistingNames) { + throw "A template with name '$TemplateName' already exists for tenant '$TenantFilter'" + } + + $DefaultForTenant = [bool]$Request.Body.defaultForTenant + + # If this template is set as default, unset other defaults for this tenant + if ($DefaultForTenant) { + $ExistingTemplates | ForEach-Object { + try { + $row = $_ + $data = $row.JSON | ConvertFrom-Json -Depth 100 -ErrorAction Stop + if ($data.tenantFilter -eq $TenantFilter -and $data.defaultForTenant -eq $true) { + # Unset the default flag + $data.defaultForTenant = $false + $row.JSON = ($data | ConvertTo-Json -Depth 100 -Compress) + Add-CIPPAzDataTableEntity @Table -Entity $row -Force + Write-LogMessage -headers $Headers -API $APIName -message "Unset default flag for existing template: $($data.templateName)" -Sev 'Info' + } + } catch { + Write-LogMessage -headers $Headers -API $APIName -message "Failed to update existing template: $($_.Exception.Message)" -Sev 'Warning' + } + } + } + + # Validate user action fields + $DefaultUserAction = $Request.Body.defaultUserAction + if ($TenantFilter -eq 'AllTenants' -and $DefaultUserAction -eq 'select') { + throw 'defaultUserAction cannot be "select" when tenantFilter is "AllTenants"' + } + + # Create template object + $TemplateObject = @{ + tenantFilter = $TenantFilter + templateName = $TemplateName + defaultForTenant = $DefaultForTenant + defaultRoles = $Request.Body.defaultRoles + defaultDuration = $Request.Body.defaultDuration + defaultExpireAction = $Request.Body.defaultExpireAction + defaultNotificationActions = $Request.Body.defaultNotificationActions + generateTAPByDefault = [bool]$Request.Body.generateTAPByDefault + reasonTemplate = $Request.Body.reasonTemplate + createdBy = $UserDetails + createdDate = (Get-Date).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + } + + # Add defaultUserAction if provided + if (![string]::IsNullOrWhiteSpace($DefaultUserAction)) { + $TemplateObject.defaultUserAction = $DefaultUserAction + } + + # Add user detail fields when "create" action is specified + if ($DefaultUserAction -eq 'create') { + # These fields can be saved for both AllTenants and specific tenant templates + if (![string]::IsNullOrWhiteSpace($Request.Body.defaultFirstName)) { + $TemplateObject.defaultFirstName = $Request.Body.defaultFirstName + } + if (![string]::IsNullOrWhiteSpace($Request.Body.defaultLastName)) { + $TemplateObject.defaultLastName = $Request.Body.defaultLastName + } + if (![string]::IsNullOrWhiteSpace($Request.Body.defaultUserName)) { + $TemplateObject.defaultUserName = $Request.Body.defaultUserName + } + + # defaultDomain is only saved for specific tenant templates (not AllTenants) + if ($TenantFilter -ne 'AllTenants' -and $Request.Body.defaultDomain) { + if ($Request.Body.defaultDomain -is [string]) { + if (![string]::IsNullOrWhiteSpace($Request.Body.defaultDomain)) { + $TemplateObject.defaultDomain = $Request.Body.defaultDomain + } + } else { + $TemplateObject.defaultDomain = $Request.Body.defaultDomain + } + } + } + + # Generate GUID for the template + $GUID = (New-Guid).GUID + + # Convert to JSON + $JSON = ConvertTo-Json -InputObject $TemplateObject -Depth 100 -Compress + + # Store in table + $Table.Force = $true + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$JSON" + RowKey = "$GUID" + PartitionKey = 'JITAdminTemplate' + GUID = "$GUID" + } + + $Result = "Created JIT Admin Template '$($TemplateName)' with GUID $GUID" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to create JIT Admin Template: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = "$Result" } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddUser.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddUser.ps1 index f67050101183..5fce41b7da5b 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddUser.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddUser.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-AddUser { +function Invoke-AddUser { <# .FUNCTIONALITY Entrypoint @@ -12,51 +10,79 @@ Function Invoke-AddUser { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $UserObj = $Request.Body + if (!$UserObj.tenantFilter) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = [pscustomobject]@{ + 'Results' = @{ + resultText = 'tenantFilter is required to create a user.' + state = 'error' + } + } + }) + } + if ($UserObj.Scheduled.Enabled) { - $TaskBody = [pscustomobject]@{ - TenantFilter = $UserObj.tenantFilter - Name = "New user creation: $($UserObj.mailNickname)@$($UserObj.PrimDomain.value)" - Command = @{ - value = 'New-CIPPUserTask' - label = 'New-CIPPUserTask' + try { + $Username = $UserObj.username ?? $UserObj.mailNickname + $TaskBody = [pscustomobject]@{ + TenantFilter = $UserObj.tenantFilter + Name = "New user creation: $($Username)@$($UserObj.PrimDomain.value)" + Command = @{ + value = 'New-CIPPUserTask' + label = 'New-CIPPUserTask' + } + Parameters = [pscustomobject]@{ UserObj = $UserObj } + ScheduledTime = $UserObj.Scheduled.date + Reference = $UserObj.reference ?? $null + PostExecution = @{ + Webhook = [bool]$Request.Body.PostExecution.Webhook + Email = [bool]$Request.Body.PostExecution.Email + PSA = [bool]$Request.Body.PostExecution.PSA + } } - Parameters = [pscustomobject]@{ UserObj = $UserObj } - ScheduledTime = $UserObj.Scheduled.date - PostExecution = @{ - Webhook = [bool]$Request.Body.PostExecution.Webhook - Email = [bool]$Request.Body.PostExecution.Email - PSA = [bool]$Request.Body.PostExecution.PSA + Add-CIPPScheduledTask -Task $TaskBody -hidden $false -DisallowDuplicateName $true -Headers $Headers + $body = [pscustomobject] @{ + 'Results' = @("Successfully created scheduled task to create user $($UserObj.DisplayName)") } - } - Add-CIPPScheduledTask -Task $TaskBody -hidden $false -DisallowDuplicateName $true -Headers $Headers - $body = [pscustomobject] @{ - 'Results' = @("Successfully created scheduled task to create user $($UserObj.DisplayName)") + } catch { + $body = [pscustomobject] @{ + 'Results' = @("Failed to create scheduled task to create user $($UserObj.DisplayName): $($_.Exception.Message)") + } + $StatusCode = [HttpStatusCode]::InternalServerError } } else { - $CreationResults = New-CIPPUserTask -UserObj $UserObj -APIName $APIName -Headers $Headers - $body = [pscustomobject] @{ - 'Results' = @( - $CreationResults.Results[0], - $CreationResults.Results[1], - @{ - 'resultText' = $CreationResults.Results[2] - 'copyField' = $CreationResults.password - 'state' = 'success' + try { + $CreationResults = New-CIPPUserTask -UserObj $UserObj -APIName $APIName -Headers $Headers + $body = [pscustomobject] @{ + 'Results' = @( + $CreationResults.Results[0], + $CreationResults.Results[1], + @{ + 'resultText' = $CreationResults.Results[2] + 'copyField' = $CreationResults.password + 'state' = 'success' + } + ) + 'CopyFrom' = @{ + 'Success' = $CreationResults.CopyFrom.Success + 'Error' = $CreationResults.CopyFrom.Error } - ) - 'CopyFrom' = @{ - 'Success' = $CreationResults.CopyFrom.Success - 'Error' = $CreationResults.CopyFrom.Error + 'User' = $CreationResults.User + } + } catch { + $body = [pscustomobject] @{ + 'Results' = @("$($_.Exception.Message)") } + $StatusCode = [HttpStatusCode]::InternalServerError } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK + return ([HttpResponseContext]@{ + StatusCode = $StatusCode ? $StatusCode : [HttpStatusCode]::OK Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddUserBulk.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddUserBulk.ps1 index 3bb2c6b06a53..5e0cdf6c0f26 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddUserBulk.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddUserBulk.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-AddUserBulk { <# .FUNCTIONALITY @@ -11,9 +9,6 @@ function Invoke-AddUserBulk { param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with body parameters or the body of the request. $TenantFilter = $Request.Body.tenantFilter @@ -131,7 +126,7 @@ function Invoke-AddUserBulk { if ($AssignedLicenses) { $GuidPattern = '([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})' $LicenseSkus = $AssignedLicenses.value ?? $AssignedLicenses | Where-Object { $_ -match $GuidPattern } - Set-CIPPUserLicense -User $BulkResult.id -AddLicenses $LicenseSkus -TenantFilter $TenantFilter + Set-CIPPUserLicense -UserId $BulkResult.id -AddLicenses $LicenseSkus -TenantFilter $TenantFilter -APIName $APIName -Headers $Headers } $Results.Add(@{ resultText = $Message.resultText @@ -152,8 +147,7 @@ function Invoke-AddUserBulk { } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddUserDefaults.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddUserDefaults.ps1 new file mode 100644 index 000000000000..cb59b07113b2 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddUserDefaults.ps1 @@ -0,0 +1,140 @@ +function Invoke-AddUserDefaults { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + try { + # Extract data from request body - matching CippAddEditUser.jsx field names + $TenantFilter = $Request.Body.tenantFilter + $TemplateName = $Request.Body.templateName + $DefaultForTenant = $Request.Body.defaultForTenant + + Write-Host "Creating template '$TemplateName' for tenant: $TenantFilter" + + # User fields + $GivenName = $Request.Body.givenName + $Surname = $Request.Body.surname + $DisplayName = $Request.Body.displayName + + # Handle autocomplete fields - extract value if it's an object + $UsernameFormat = if ($Request.Body.usernameFormat -is [string]) { + $Request.Body.usernameFormat + } else { + $Request.Body.usernameFormat.value + } + + $PrimDomain = if ($Request.Body.primDomain -is [string]) { + $Request.Body.primDomain + } else { + $Request.Body.primDomain.value + } + + $AddedAliases = $Request.Body.addedAliases + + # Settings + $Autopassword = $Request.Body.Autopassword + $Password = $Request.Body.password + $MustChangePass = $Request.Body.MustChangePass + + $UsageLocation = if ($Request.Body.usageLocation -is [string]) { + $Request.Body.usageLocation + } else { + $Request.Body.usageLocation.value + } + + $Licenses = $Request.Body.licenses + $RemoveLicenses = $Request.Body.removeLicenses + + # Job and Location fields + $JobTitle = $Request.Body.jobTitle + $StreetAddress = $Request.Body.streetAddress + $City = $Request.Body.city + $State = $Request.Body.state + $PostalCode = $Request.Body.postalCode + $Country = $Request.Body.country + $CompanyName = $Request.Body.companyName + $Department = $Request.Body.department + + # Contact fields + $MobilePhone = $Request.Body.mobilePhone + $BusinessPhones = $Request.Body.'businessPhones[0]' + $OtherMails = $Request.Body.otherMails + + # User relations + $SetManager = $Request.Body.setManager + $SetSponsor = $Request.Body.setSponsor + $CopyFrom = $Request.Body.copyFrom + + # Create template object with all fields from CippAddEditUser + $TemplateObject = @{ + tenantFilter = $TenantFilter + templateName = $TemplateName + defaultForTenant = [bool]$DefaultForTenant + givenName = $GivenName + surname = $Surname + displayName = $DisplayName + usernameFormat = $UsernameFormat + primDomain = $PrimDomain + addedAliases = $AddedAliases + Autopassword = $Autopassword + password = $Password + MustChangePass = $MustChangePass + usageLocation = $UsageLocation + licenses = $Licenses + removeLicenses = $RemoveLicenses + jobTitle = $JobTitle + streetAddress = $StreetAddress + city = $City + state = $State + postalCode = $PostalCode + country = $Country + companyName = $CompanyName + department = $Department + mobilePhone = $MobilePhone + businessPhones = $BusinessPhones + otherMails = $OtherMails + setManager = $SetManager + setSponsor = $SetSponsor + copyFrom = $CopyFrom + } + + # Generate GUID for the template + $GUID = (New-Guid).GUID + + # Convert to JSON + $JSON = ConvertTo-Json -InputObject $TemplateObject -Depth 100 -Compress + + # Store in table + $Table = Get-CippTable -tablename 'templates' + $Table.Force = $true + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$JSON" + RowKey = "$GUID" + PartitionKey = 'UserDefaultTemplate' + GUID = "$GUID" + } + + $Result = "Created User Default Template '$($TemplateName)' with GUID $GUID" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to create User Default Template: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = "$Result" } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-CIPPOffboardingJob.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-CIPPOffboardingJob.ps1 index d0ad323f12f7..8a9a94c0cbd3 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-CIPPOffboardingJob.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-CIPPOffboardingJob.ps1 @@ -11,35 +11,75 @@ function Invoke-CIPPOffboardingJob { if ($Options -is [string]) { $Options = $Options | ConvertFrom-Json } - $userid = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($username)?`$select=id" -tenantid $TenantFilter).id - Write-Host "Running offboarding job for $username with options: $($Options | ConvertTo-Json -Depth 10)" + $User = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($Username)?`$select=id,displayName,onPremisesSyncEnabled,onPremisesImmutableId" -tenantid $TenantFilter + $UserID = $User.id + $DisplayName = $User.displayName + Write-Host "Running offboarding job for $Username with options: $($Options | ConvertTo-Json -Depth 10)" $Return = switch ($Options) { { $_.ConvertToShared -eq $true } { - Set-CIPPMailboxType -Headers $Headers -tenantFilter $TenantFilter -userid $username -username $username -MailboxType 'Shared' -APIName $APIName + try { + Set-CIPPMailboxType -Headers $Headers -tenantFilter $TenantFilter -userid $UserID -username $Username -MailboxType 'Shared' -APIName $APIName + } catch { + $_.Exception.Message + } } { $_.RevokeSessions -eq $true } { - Revoke-CIPPSessions -tenantFilter $TenantFilter -username $username -userid $userid -Headers $Headers -APIName $APIName + try { + Revoke-CIPPSessions -tenantFilter $TenantFilter -username $Username -userid $UserID -Headers $Headers -APIName $APIName + } catch { + $_.Exception.Message + } } { $_.ResetPass -eq $true } { - Set-CIPPResetPassword -tenantFilter $TenantFilter -UserID $username -Headers $Headers -APIName $APIName + try { + Set-CIPPResetPassword -tenantFilter $TenantFilter -DisplayName $DisplayName -UserID $username -Headers $Headers -APIName $APIName + } catch { + $_.Exception.Message + } } { $_.RemoveGroups -eq $true } { - Remove-CIPPGroups -userid $userid -tenantFilter $TenantFilter -Headers $Headers -APIName $APIName -Username "$Username" + Remove-CIPPGroups -userid $UserID -tenantFilter $TenantFilter -Headers $Headers -APIName $APIName -Username $Username } { $_.HideFromGAL -eq $true } { - Set-CIPPHideFromGAL -tenantFilter $TenantFilter -UserID $username -HideFromGAL $true -Headers $Headers -APIName $APIName + try { + Set-CIPPHideFromGAL -tenantFilter $TenantFilter -UserID $username -HideFromGAL $true -Headers $Headers -APIName $APIName + } catch { + $_.Exception.Message + } } { $_.DisableSignIn -eq $true } { - Set-CIPPSignInState -TenantFilter $TenantFilter -userid $username -AccountEnabled $false -Headers $Headers -APIName $APIName + try { + Set-CIPPSignInState -TenantFilter $TenantFilter -userid $username -AccountEnabled $false -Headers $Headers -APIName $APIName + } catch { + $_.Exception.Message + } } { $_.OnedriveAccess } { - $Options.OnedriveAccess | ForEach-Object { Set-CIPPSharePointPerms -tenantFilter $TenantFilter -userid $username -OnedriveAccessUser $_.value -Headers $Headers -APIName $APIName } + $Options.OnedriveAccess | ForEach-Object { + try { + Set-CIPPSharePointPerms -tenantFilter $TenantFilter -userid $username -OnedriveAccessUser $_.value -Headers $Headers -APIName $APIName + } catch { + $_.Exception.Message + } + } } { $_.AccessNoAutomap } { - $Options.AccessNoAutomap | ForEach-Object { Set-CIPPMailboxAccess -tenantFilter $TenantFilter -userid $username -AccessUser $_.value -Automap $false -AccessRights @('FullAccess') -Headers $Headers -APIName $APIName } + $Options.AccessNoAutomap | ForEach-Object { + try { + Set-CIPPMailboxAccess -tenantFilter $TenantFilter -userid $username -AccessUser $_.value -Automap $false -AccessRights @('FullAccess') -Headers $Headers -APIName $APIName + } catch { + $_.Exception.Message + } + } } { $_.AccessAutomap } { - $Options.AccessAutomap | ForEach-Object { Set-CIPPMailboxAccess -tenantFilter $TenantFilter -userid $username -AccessUser $_.value -Automap $true -AccessRights @('FullAccess') -Headers $Headers -APIName $APIName } + $Options.AccessAutomap | ForEach-Object { + try { + Set-CIPPMailboxAccess -tenantFilter $TenantFilter -userid $username -AccessUser $_.value -Automap $true -AccessRights @('FullAccess') -Headers $Headers -APIName $APIName + } catch { + $_.Exception.Message + } + } } { $_.OOO } { try { @@ -50,30 +90,65 @@ function Invoke-CIPPOffboardingJob { } { $_.forward } { if (!$Options.KeepCopy) { - Set-CIPPForwarding -userid $userid -username $username -tenantFilter $TenantFilter -Forward $Options.forward.value -Headers $Headers -APIName $APIName + try { + Set-CIPPForwarding -userid $userid -username $username -tenantFilter $TenantFilter -Forward $Options.forward.value -Headers $Headers -APIName $APIName + } catch { + $_.Exception.Message + } } else { $KeepCopy = [boolean]$Options.KeepCopy - Set-CIPPForwarding -userid $userid -username $username -tenantFilter $TenantFilter -Forward $Options.forward.value -KeepCopy $KeepCopy -Headers $Headers -APIName $APIName + try { + Set-CIPPForwarding -userid $userid -username $username -tenantFilter $TenantFilter -Forward $Options.forward.value -KeepCopy $KeepCopy -Headers $Headers -APIName $APIName + } catch { + $_.Exception.Message + } } } { $_.disableForwarding } { - Set-CIPPForwarding -userid $userid -username $username -tenantFilter $TenantFilter -Disable $true -Headers $Headers -APIName $APIName + try { + Set-CIPPForwarding -userid $userid -username $username -tenantFilter $TenantFilter -Disable $true -Headers $Headers -APIName $APIName + } catch { + $_.Exception.Message + } + } + { $_.RemoveTeamsPhoneDID } { + try { + Remove-CIPPUserTeamsPhoneDIDs -userid $userid -username $username -tenantFilter $TenantFilter -Headers $Headers -APIName $APIName + } catch { + $_.Exception.Message + } } { $_.RemoveLicenses -eq $true } { Remove-CIPPLicense -userid $userid -username $Username -tenantFilter $TenantFilter -Headers $Headers -APIName $APIName -Schedule } { $_.DeleteUser -eq $true } { - Remove-CIPPUser -userid $userid -username $Username -tenantFilter $TenantFilter -Headers $Headers -APIName $APIName + try { + Remove-CIPPUser -UserID $userid -Username $Username -TenantFilter $TenantFilter -Headers $Headers -APIName $APIName + } catch { + $_.Exception.Message + } } { $_.RemoveRules -eq $true } { Write-Host "Removing rules for $username" - Remove-CIPPMailboxRule -userid $userid -username $Username -tenantFilter $TenantFilter -Headers $Headers -APIName $APIName -RemoveAllRules + try { + Remove-CIPPMailboxRule -userid $userid -username $Username -tenantFilter $TenantFilter -Headers $Headers -APIName $APIName -RemoveAllRules + } catch { + $_.Exception.Message + } } { $_.RemoveMobile -eq $true } { - Remove-CIPPMobileDevice -userid $userid -username $Username -tenantFilter $TenantFilter -Headers $Headers -APIName $APIName + try { + Remove-CIPPMobileDevice -userid $userid -username $Username -tenantFilter $TenantFilter -Headers $Headers -APIName $APIName + } catch { + $_.Exception.Message + } } { $_.removeCalendarInvites -eq $true } { - Remove-CIPPCalendarInvites -userid $userid -username $Username -tenantFilter $TenantFilter -Headers $Headers -APIName $APIName + try { + Remove-CIPPCalendarInvites -UserID $userid -Username $Username -TenantFilter $TenantFilter -Headers $Headers -APIName $APIName + } catch { + $_.Exception.Message + } } { $_.removePermissions } { if ($RunScheduled) { @@ -99,11 +174,54 @@ function Invoke-CIPPOffboardingJob { "Removal of permissions queued. This task will run in the background and send it's results to the logbook." } } - { $_.'RemoveMFADevices' } { - Remove-CIPPUserMFA -UserPrincipalName $Username -TenantFilter $TenantFilter -Headers $Headers + { $_.RemoveMFADevices -eq $true } { + try { + Remove-CIPPUserMFA -UserPrincipalName $Username -TenantFilter $TenantFilter -Headers $Headers + } catch { + $_.Exception.Message + } } - { $_.'ClearImmutableId' -eq $true } { - Clear-CIPPImmutableID -UserID $userid -TenantFilter $TenantFilter -Headers $Headers -APIName $APIName + { $_.ClearImmutableId -eq $true } { + if ($User.onPremisesSyncEnabled -ne $true -and ![string]::IsNullOrEmpty($User.onPremisesImmutableId)) { + Write-LogMessage -Message "User $Username has an ImmutableID set but is not synced from on-premises. Proceeding to clear the ImmutableID." -TenantFilter $TenantFilter -Severity 'Warning' -APIName $APIName -Headers $Headers + try { + Clear-CIPPImmutableID -UserID $userid -TenantFilter $TenantFilter -Headers $Headers -APIName $APIName + } catch { + $_.Exception.Message + } + } elseif ($User.onPremisesSyncEnabled -eq $true -and ![string]::IsNullOrEmpty($User.onPremisesImmutableId)) { + Write-LogMessage -Message "User $Username is synced from on-premises. Scheduling an Immutable ID clear for when the user account has been soft deleted." -TenantFilter $TenantFilter -Severity 'Error' -APIName $APIName -Headers $Headers + 'Scheduling Immutable ID clear task for when the user account is no longer synced in the on-premises directory.' + $ScheduledTask = @{ + TenantFilter = $TenantFilter + Name = "Clear Immutable ID: $Username" + Command = @{ + value = 'Clear-CIPPImmutableID' + } + Parameters = [pscustomobject]@{ + userid = $userid + APIName = $APIName + Headers = $Headers + } + Trigger = @{ + Type = 'DeltaQuery' + DeltaResource = 'users' + ResourceFilter = @($UserID) + EventType = 'deleted' + UseConditions = $false + ExecutePerResource = $true + ExecutionMode = 'once' + } + ScheduledTime = [int64](([datetime]::UtcNow).AddMinutes(5) - (Get-Date '1/1/1970')).TotalSeconds + Recurrence = '15m' + PostExecution = @{ + Webhook = $false + Email = $false + PSA = $false + } + } + Add-CIPPScheduledTask -Task $ScheduledTask -hidden $false + } } } return $Return diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-EditJITAdminTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-EditJITAdminTemplate.ps1 new file mode 100644 index 000000000000..35bbd95139ca --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-EditJITAdminTemplate.ps1 @@ -0,0 +1,164 @@ +function Invoke-EditJITAdminTemplate { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.Role.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + try { + # Extract data from request body + $GUID = $Request.Body.GUID + $TenantFilter = $Request.Body.tenantFilter + $TemplateName = $Request.Body.templateName + + # Validate required fields + if ([string]::IsNullOrWhiteSpace($GUID)) { + throw 'GUID is required' + } + if ([string]::IsNullOrWhiteSpace($TenantFilter)) { + throw 'tenantFilter is required' + } + if ([string]::IsNullOrWhiteSpace($TemplateName)) { + throw 'templateName is required' + } + + Write-LogMessage -headers $Headers -API $APIName -message "Editing JIT Admin template '$GUID' for tenant: $TenantFilter" -Sev 'Info' + + # Get user info for audit + $UserDetails = ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json).userDetails + + # Get the existing template + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'JITAdminTemplate' and RowKey eq '$GUID'" + $ExistingTemplate = Get-CIPPAzDataTableEntity @Table -Filter $Filter + + if (!$ExistingTemplate) { + throw "Template with GUID '$GUID' not found" + } + + # Parse existing template data + $ExistingData = $ExistingTemplate.JSON | ConvertFrom-Json -Depth 100 + + # Check if template name is unique (excluding current template) + $AllTemplates = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'JITAdminTemplate'" + $DuplicateName = $AllTemplates | Where-Object { $_.RowKey -ne $GUID } | ForEach-Object { + try { + $data = $_.JSON | ConvertFrom-Json -Depth 100 -ErrorAction Stop + if ($data.tenantFilter -eq $TenantFilter -and $data.templateName -eq $TemplateName) { + $data + } + } catch {} + } + + if ($DuplicateName) { + throw "A template with name '$TemplateName' already exists for tenant '$TenantFilter'" + } + + $DefaultForTenant = [bool]$Request.Body.defaultForTenant + + # If this template is being set as default, unset other defaults for this tenant + if ($DefaultForTenant) { + $AllTemplates | Where-Object { $_.RowKey -ne $GUID } | ForEach-Object { + try { + $row = $_ + $data = $row.JSON | ConvertFrom-Json -Depth 100 -ErrorAction Stop + if ($data.tenantFilter -eq $TenantFilter -and $data.defaultForTenant -eq $true) { + # Unset the default flag + $data.defaultForTenant = $false + $row.JSON = ($data | ConvertTo-Json -Depth 100 -Compress) + Add-CIPPAzDataTableEntity @Table -Entity $row -Force + Write-LogMessage -headers $Headers -API $APIName -message "Unset default flag for existing template: $($data.templateName)" -Sev 'Info' + } + } catch { + Write-LogMessage -headers $Headers -API $APIName -message "Failed to update existing template: $($_.Exception.Message)" -Sev 'Warning' + } + } + } + + # Validate user action fields + $DefaultUserAction = $Request.Body.defaultUserAction + if ($TenantFilter -eq 'AllTenants' -and $DefaultUserAction -eq 'select') { + throw 'defaultUserAction cannot be "select" when tenantFilter is "AllTenants"' + } + + # Update template object (preserve creation metadata) + $TemplateObject = @{ + tenantFilter = $TenantFilter + templateName = $TemplateName + defaultForTenant = $DefaultForTenant + defaultRoles = $Request.Body.defaultRoles + defaultDuration = $Request.Body.defaultDuration + defaultExpireAction = $Request.Body.defaultExpireAction + defaultNotificationActions = $Request.Body.defaultNotificationActions + generateTAPByDefault = [bool]$Request.Body.generateTAPByDefault + reasonTemplate = $Request.Body.reasonTemplate + createdBy = $ExistingData.createdBy + createdDate = $ExistingData.createdDate + modifiedBy = $UserDetails + modifiedDate = (Get-Date).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + } + + # Add defaultUserAction if provided + if (![string]::IsNullOrWhiteSpace($DefaultUserAction)) { + $TemplateObject.defaultUserAction = $DefaultUserAction + } + + # Add user detail fields when "create" action is specified + if ($DefaultUserAction -eq 'create') { + # These fields can be saved for both AllTenants and specific tenant templates + if (![string]::IsNullOrWhiteSpace($Request.Body.defaultFirstName)) { + $TemplateObject.defaultFirstName = $Request.Body.defaultFirstName + } + if (![string]::IsNullOrWhiteSpace($Request.Body.defaultLastName)) { + $TemplateObject.defaultLastName = $Request.Body.defaultLastName + } + if (![string]::IsNullOrWhiteSpace($Request.Body.defaultUserName)) { + $TemplateObject.defaultUserName = $Request.Body.defaultUserName + } + + # defaultDomain is only saved for specific tenant templates (not AllTenants) + if ($TenantFilter -ne 'AllTenants' -and $Request.Body.defaultDomain) { + if ($Request.Body.defaultDomain -is [string]) { + if (![string]::IsNullOrWhiteSpace($Request.Body.defaultDomain)) { + $TemplateObject.defaultDomain = $Request.Body.defaultDomain + } + } else { + $TemplateObject.defaultDomain = $Request.Body.defaultDomain + } + } + } + + # Convert to JSON + $JSON = ConvertTo-Json -InputObject $TemplateObject -Depth 100 -Compress + + # Update in table + $Table.Force = $true + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$JSON" + RowKey = "$GUID" + PartitionKey = 'JITAdminTemplate' + GUID = "$GUID" + } + + $Result = "Updated JIT Admin Template '$($TemplateName)' (GUID: $GUID)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to update JIT Admin Template: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = "$Result" } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-EditUser.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-EditUser.ps1 index d40f20130797..2ffcc5041778 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-EditUser.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-EditUser.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-EditUser { <# .FUNCTIONALITY @@ -12,12 +10,12 @@ function Invoke-EditUser { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $UserObj = $Request.Body if ([string]::IsNullOrWhiteSpace($UserObj.id)) { $body = @{'Results' = @('Failed to edit user. No user ID provided') } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::BadRequest Body = $Body }) @@ -38,17 +36,18 @@ function Invoke-EditUser { 'givenName' = $UserObj.givenName 'surname' = $UserObj.surname 'displayName' = $UserObj.displayName - 'department' = $UserObj.Department - 'mailNickname' = $UserObj.Username ? $UserObj.username :$UserObj.mailNickname + 'department' = $UserObj.department + 'mailNickname' = $UserObj.username ? $UserObj.username : $UserObj.mailNickname 'userPrincipalName' = $UserPrincipalName 'usageLocation' = $UserObj.usageLocation.value ? $UserObj.usageLocation.value : $UserObj.usageLocation - 'city' = $UserObj.City - 'country' = $UserObj.Country 'jobTitle' = $UserObj.jobTitle - 'mobilePhone' = $UserObj.MobilePhone + 'mobilePhone' = $UserObj.mobilePhone 'streetAddress' = $UserObj.streetAddress - 'postalCode' = $UserObj.PostalCode - 'companyName' = $UserObj.CompanyName + 'city' = $UserObj.city + 'state' = $UserObj.state + 'postalCode' = $UserObj.postalCode + 'country' = $UserObj.country + 'companyName' = $UserObj.companyName 'businessPhones' = $UserObj.businessPhones ? @($UserObj.businessPhones) : @() 'otherMails' = $UserObj.otherMails ? @($UserObj.otherMails) : @() 'passwordProfile' = @{ @@ -60,13 +59,20 @@ function Invoke-EditUser { } if ($UserObj.defaultAttributes) { $UserObj.defaultAttributes | Get-Member -MemberType NoteProperty | ForEach-Object { - Write-Host "Editing user and adding $($_.Name) with value $($UserObj.defaultAttributes.$($_.Name).value)" if (-not [string]::IsNullOrWhiteSpace($UserObj.defaultAttributes.$($_.Name).value)) { - Write-Host 'adding body to ship' + Write-Host "Editing user and adding $($_.Name) with value $($UserObj.defaultAttributes.$($_.Name).value)" $BodyToShip | Add-Member -NotePropertyName $_.Name -NotePropertyValue $UserObj.defaultAttributes.$($_.Name).value -Force } } } + if ($UserObj.customData) { + $UserObj.customData | Get-Member -MemberType NoteProperty | ForEach-Object { + if (-not [string]::IsNullOrWhiteSpace($UserObj.customData.$($_.Name))) { + Write-Host "Editing user and adding custom data $($_.Name) with value $($UserObj.customData.$($_.Name))" + $BodyToShip | Add-Member -NotePropertyName $_.Name -NotePropertyValue $UserObj.customData.$($_.Name) -Force + } + } + } $bodyToShip = ConvertTo-Json -Depth 10 -InputObject $BodyToship -Compress $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($UserObj.id)" -tenantid $UserObj.tenantFilter -type PATCH -body $BodyToship -verbose $Results.Add( 'Success. The user has been edited.' ) @@ -98,7 +104,7 @@ function Invoke-EditUser { value = 'Set-CIPPUserLicense' } Parameters = [pscustomobject]@{ - userId = $UserObj.id + UserId = $UserObj.id APIName = 'Sherweb License Assignment' AddLicenses = $licenses } @@ -118,12 +124,12 @@ function Invoke-EditUser { $Results.Add( 'Success. User license is already correct.' ) } else { if ($UserObj.removeLicenses) { - $licResults = Set-CIPPUserLicense -UserId $UserObj.id -TenantFilter $UserObj.tenantFilter -RemoveLicenses $CurrentLicenses.assignedLicenses.skuId -Headers $Headers + $licResults = Set-CIPPUserLicense -UserId $UserObj.id -TenantFilter $UserObj.tenantFilter -RemoveLicenses $CurrentLicenses.assignedLicenses.skuId -Headers $Headers -APIName $APIName $Results.Add($licResults) } else { #Remove all objects from $CurrentLicenses.assignedLicenses.skuId that are in $licenses $RemoveLicenses = $CurrentLicenses.assignedLicenses.skuId | Where-Object { $_ -notin $licenses } - $licResults = Set-CIPPUserLicense -UserId $UserObj.id -TenantFilter $UserObj.tenantFilter -RemoveLicenses $RemoveLicenses -AddLicenses $licenses -Headers $headers + $licResults = Set-CIPPUserLicense -UserId $UserObj.id -TenantFilter $UserObj.tenantFilter -RemoveLicenses $RemoveLicenses -AddLicenses $licenses -Headers $Headers -APIName $APIName $Results.Add($licResults) } @@ -148,25 +154,25 @@ function Invoke-EditUser { } $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($UserObj.id)" -tenantid $UserObj.tenantFilter -type 'patch' -body "{`"mail`": `"$UserPrincipalName`"}" -Verbose Write-LogMessage -API $APIName -tenant ($UserObj.tenantFilter) -headers $Headers -message "Added Aliases to $($UserObj.DisplayName)" -Sev Info - $null = $Results.Add( 'Success. Added aliases to user.') + $Results.Add( 'Success. Added aliases to user.') } } catch { $ErrorMessage = Get-CippException -Exception $_ $Message = "Failed to add aliases to user $($UserObj.DisplayName). Error: $($ErrorMessage.NormalizedError)" Write-LogMessage -API $APIName -tenant ($UserObj.tenantFilter) -headers $Headers -message $Message -Sev Error -LogData $ErrorMessage - $null = $Results.Add($Message) + $Results.Add($Message) } if ($Request.Body.CopyFrom.value) { $CopyFrom = Set-CIPPCopyGroupMembers -Headers $Headers -CopyFromId $Request.Body.CopyFrom.value -UserID $UserPrincipalName -TenantFilter $UserObj.tenantFilter - $null = $Results.AddRange(@($CopyFrom)) + $Results.AddRange(@($CopyFrom)) } if ($AddToGroups) { $AddToGroups | ForEach-Object { - $GroupType = $_.addedFields.calculatedGroupType + $GroupType = $_.addedFields.groupType $GroupID = $_.value $GroupName = $_.label Write-Host "About to add $($UserObj.userPrincipalName) to $GroupName. Group ID is: $GroupID and type is: $GroupType" @@ -185,12 +191,12 @@ function Invoke-EditUser { $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/groups/$GroupID/members/`$ref" -tenantid $UserObj.tenantFilter -type POST -body $UserBodyJSON -Verbose } Write-LogMessage -headers $Headers -API $APIName -tenant $UserObj.tenantFilter -message "Added $($UserObj.DisplayName) to $GroupName group" -Sev Info - $null = $Results.Add("Success. $($UserObj.DisplayName) has been added to $GroupName") + $Results.Add("Success. $($UserObj.DisplayName) has been added to $GroupName") } catch { $ErrorMessage = Get-CippException -Exception $_ $Message = "Failed to add member $($UserObj.DisplayName) to $GroupName. Error: $($ErrorMessage.NormalizedError)" Write-LogMessage -headers $Headers -API $APIName -tenant $UserObj.tenantFilter -message $Message -Sev Error -LogData $ErrorMessage - $null = $Results.Add($Message) + $Results.Add($Message) } } } @@ -198,7 +204,7 @@ function Invoke-EditUser { if ($RemoveFromGroups) { $RemoveFromGroups | ForEach-Object { - $GroupType = $_.addedFields.calculatedGroupType + $GroupType = $_.addedFields.groupType $GroupID = $_.value $GroupName = $_.label Write-Host "About to remove $($UserObj.userPrincipalName) from $GroupName. Group ID is: $GroupID and type is: $GroupType" @@ -213,37 +219,29 @@ function Invoke-EditUser { $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/groups/$GroupID/members/$($UserObj.id)/`$ref" -tenantid $UserObj.tenantFilter -type DELETE } Write-LogMessage -headers $Headers -API $APIName -tenant $UserObj.tenantFilter -message "Removed $($UserObj.DisplayName) from $GroupName group" -Sev Info - $null = $Results.Add("Success. $($UserObj.DisplayName) has been removed from $GroupName") + $Results.Add("Success. $($UserObj.DisplayName) has been removed from $GroupName") } catch { $ErrorMessage = Get-CippException -Exception $_ $Message = "Failed to remove member $($UserObj.DisplayName) from $GroupName. Error: $($ErrorMessage.NormalizedError)" Write-LogMessage -headers $Headers -API $APIName -tenant $UserObj.tenantFilter -message $Message -Sev Error -LogData $ErrorMessage - $null = $Results.Add($Message) + $Results.Add($Message) } } } if ($Request.body.setManager.value) { - $ManagerBody = [PSCustomObject]@{'@odata.id' = "https://graph.microsoft.com/beta/users/$($Request.body.setManager.value)" } - $ManagerBodyJSON = ConvertTo-Json -Compress -Depth 10 -InputObject $ManagerBody - $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($UserObj.id)/manager/`$ref" -tenantid $UserObj.tenantFilter -type PUT -body $ManagerBodyJSON -Verbose - Write-LogMessage -headers $Headers -API $APIName -tenant $UserObj.tenantFilter -message "Set $($UserObj.DisplayName)'s manager to $($Request.body.setManager.label)" -Sev Info - $null = $Results.Add("Success. Set $($UserObj.DisplayName)'s manager to $($Request.body.setManager.label)") + $ManagerResult = Set-CIPPManager -User $UserPrincipalName -Manager $Request.body.setManager.value -TenantFilter $UserObj.tenantFilter -Headers $Headers + $Results.Add($ManagerResult) } if ($Request.body.setSponsor.value) { - $SponsorBody = [PSCustomObject]@{'@odata.id' = "https://graph.microsoft.com/beta/users/$($Request.body.setSponsor.value)" } - $SponsorBodyJSON = ConvertTo-Json -Compress -Depth 10 -InputObject $SponsorBody - $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($UserObj.id)/sponsors/`$ref" -tenantid $UserObj.tenantFilter -type POST -body $SponsorBodyJSON -Verbose - Write-LogMessage -headers $Headers -API $APIName -tenant $UserObj.tenantFilter -message "Set $($UserObj.DisplayName)'s sponsor to $($Request.body.setSponsor.label)" -Sev Info - $null = $Results.Add("Success. Set $($UserObj.DisplayName)'s sponsor to $($Request.body.setSponsor.label)") + $SponsorResult = Set-CIPPSponsor -User $UserPrincipalName -Sponsor $Request.body.setSponsor.value -TenantFilter $UserObj.tenantFilter -Headers $Headers + $Results.Add($SponsorResult) } - $body = @{'Results' = @($results) } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK - Body = $Body + Body = @{'Results' = @($Results) } }) } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-EditUserAliases.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-EditUserAliases.ps1 index d8f254cead0a..784e15892d68 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-EditUserAliases.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-EditUserAliases.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-EditUserAliases { <# .FUNCTIONALITY @@ -12,14 +10,14 @@ Function Invoke-EditUserAliases { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $UserObj = $Request.Body $TenantFilter = $UserObj.tenantFilter if ([string]::IsNullOrWhiteSpace($UserObj.id)) { $body = @{'Results' = @('Failed to manage aliases. No user ID provided') } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::BadRequest Body = $Body }) @@ -138,7 +136,7 @@ Function Invoke-EditUserAliases { $Results.Add("Failed to manage aliases: $($ErrorMessage.NormalizedError)") } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @{'Results' = @($Results) } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecBECCheck.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecBECCheck.ps1 index 533e02eea899..fc6c0b457cc7 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecBECCheck.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecBECCheck.ps1 @@ -56,7 +56,7 @@ Function Invoke-ExecBECCheck { } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecBECRemediate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecBECRemediate.ps1 index 51d8203a77c6..29bf889d3773 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecBECRemediate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecBECRemediate.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ExecBECRemediate { <# .FUNCTIONALITY @@ -12,62 +10,203 @@ function Invoke-ExecBECRemediate { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $TenantFilter = $Request.Body.tenantFilter $SuspectUser = $Request.Body.userid $Username = $Request.Body.username Write-Host $TenantFilter Write-Host $SuspectUser + $Results = try { + $AllResults = [System.Collections.Generic.List[object]]::new() + + # Step 1: Reset Password $Step = 'Reset Password' - Set-CIPPResetPassword -UserID $Username -tenantFilter $TenantFilter -APIName $APIName -Headers $Headers + try { + $PasswordResult = Set-CIPPResetPassword -UserID $Username -tenantFilter $TenantFilter -APIName $APIName -Headers $Headers + $AllResults.Add($PasswordResult) + } catch { + $AllResults.Add([pscustomobject]@{ + resultText = "Failed to reset password: $($_.Exception.Message)" + state = 'error' + }) + } + + # Step 2: Disable Account $Step = 'Disable Account' - Set-CIPPSignInState -userid $Username -AccountEnabled $false -tenantFilter $TenantFilter -APIName $APIName -Headers $Headers + try { + $DisableResult = Set-CIPPSignInState -userid $Username -AccountEnabled $false -tenantFilter $TenantFilter -APIName $APIName -Headers $Headers + $AllResults.Add([pscustomobject]@{ + resultText = $DisableResult + state = if ($DisableResult -like '*WARNING*') { 'warning' } else { 'success' } + }) + } catch { + $AllResults.Add([pscustomobject]@{ + resultText = "Failed to disable account: $($_.Exception.Message)" + state = 'error' + }) + } + + # Step 3: Revoke Sessions $Step = 'Revoke Sessions' - Revoke-CIPPSessions -userid $SuspectUser -username $Username -Headers $Headers -APIName $APIName -tenantFilter $TenantFilter + try { + $SessionResult = Revoke-CIPPSessions -userid $SuspectUser -username $Username -Headers $Headers -APIName $APIName -tenantFilter $TenantFilter + $AllResults.Add([pscustomobject]@{ + resultText = $SessionResult + state = if ($SessionResult -like '*Failed*') { 'error' } else { 'success' } + }) + } catch { + $AllResults.Add([pscustomobject]@{ + resultText = "Failed to revoke sessions: $($_.Exception.Message)" + state = 'error' + }) + } + + # Step 4: Remove MFA methods $Step = 'Remove MFA methods' - Remove-CIPPUserMFA -UserPrincipalName $Username -TenantFilter $TenantFilter -Headers $Headers + try { + $MFAResult = Remove-CIPPUserMFA -UserPrincipalName $Username -TenantFilter $TenantFilter -Headers $Headers + $AllResults.Add([pscustomobject]@{ + resultText = $MFAResult + state = if ($MFAResult -like '*No MFA methods*') { 'info' } elseif ($MFAResult -like '*Successfully*') { 'success' } else { 'error' } + }) + } catch { + $AllResults.Add([pscustomobject]@{ + resultText = "Failed to remove MFA methods: $($_.Exception.Message)" + state = 'error' + }) + } + + # Step 5: Disable Inbox Rules $Step = 'Disable Inbox Rules' - $Rules = New-ExoRequest -anchor $Username -tenantid $TenantFilter -cmdlet 'Get-InboxRule' -cmdParams @{Mailbox = $Username; IncludeHidden = $true } - $RuleDisabled = 0 - $RuleFailed = 0 - if (($Rules | Measure-Object).Count -gt 0) { - $Rules | Where-Object { $_.Name -ne 'Junk E-Mail Rule' -and $_.Name -notlike 'Microsoft.Exchange.OOF.*' } | ForEach-Object { - try { - $null = New-ExoRequest -anchor $Username -tenantid $TenantFilter -cmdlet 'Disable-InboxRule' -cmdParams @{Confirm = $false; Identity = $_.Identity } - "Disabled Inbox Rule '$($_.Identity)' for $Username" - $RuleDisabled++ - } catch { - "Failed to disable Inbox Rule '$($_.Identity)' for $Username" - $RuleFailed++ + try { + Write-LogMessage -headers $Headers -API $APIName -message "Starting inbox rules processing for user: $Username" -Sev 'Info' -tenant $TenantFilter + $Rules = New-ExoRequest -anchor $Username -tenantid $TenantFilter -cmdlet 'Get-InboxRule' -cmdParams @{Mailbox = $Username; IncludeHidden = $true } + Write-LogMessage -headers $Headers -API $APIName -message "Retrieved $(($Rules | Measure-Object).Count) total rules for $Username" -Sev 'Info' -tenant $TenantFilter + $RuleDisabled = 0 + $RuleFailed = 0 + $DelegateRulesSkipped = 0 + $RuleMessages = [System.Collections.Generic.List[string]]::new() + + if (($Rules | Measure-Object).Count -eq 0) { + # No rules exist at all + $AllResults.Add([pscustomobject]@{ + resultText = "No Inbox Rules found for $Username." + state = 'info' + }) + } else { + # Rules exist, filter and process them + $ProcessableRules = $Rules | Where-Object { + $_.Name -ne 'Junk E-Mail Rule' -and + $_.Name -notlike 'Microsoft.Exchange.OOF.*' + } + + if (($ProcessableRules | Measure-Object).Count -eq 0) { + # Rules exist but none are processable after filtering + $SystemRulesCount = ($Rules | Measure-Object).Count - $DelegateRulesSkipped + if ($SystemRulesCount -gt 0) { + $AllResults.Add([pscustomobject]@{ + resultText = "Found $(($Rules | Measure-Object).Count) inbox rules for $Username, but none require disabling (only system rules found)." + state = 'info' + }) + } + } else { + # Process the filterable rules + $ProcessableRules | ForEach-Object { + $CurrentRule = $_ + Write-LogMessage -headers $Headers -API $APIName -message "Processing rule: Name='$($CurrentRule.Name)', Identity='$($CurrentRule.Identity)'" -Sev 'Info' -tenant $TenantFilter + + try { + Set-CIPPMailboxRule -Username $Username -UserId $Username -TenantFilter $TenantFilter -RuleId $CurrentRule.Identity -RuleName $CurrentRule.Name -Disable -APIName $APIName -Headers $Headers + + Write-LogMessage -headers $Headers -API $APIName -message "Successfully disabled rule: $($CurrentRule.Name)" -Sev 'Info' -tenant $TenantFilter + $RuleDisabled++ + } catch { + # Check if this is a system delegate rule, if so we can ignore the error + if ($CurrentRule.Name -match '^Delegate Rule -\d+$') { + Write-LogMessage -headers $Headers -API $APIName -message "Skipping delegate rule '$($CurrentRule.Name)' - unable to disable (expected behavior)" -Sev 'Info' -tenant $TenantFilter + $DelegateRulesSkipped++ + } else { + # Handle as normal error + $ErrorMsg = "Could not disable rule '$($CurrentRule.Name)': $($_.Exception.Message)" + Write-LogMessage -headers $Headers -API $APIName -message $ErrorMsg -Sev 'Error' -tenant $TenantFilter + $RuleMessages.Add($ErrorMsg) + $RuleFailed++ + } + } + } + + # Report results + if ($RuleDisabled -gt 0) { + $AllResults.Add([pscustomobject]@{ + resultText = "Successfully disabled $RuleDisabled inbox rules for $Username" + state = 'success' + }) + } elseif ($DelegateRulesSkipped -gt 0 -and $RuleDisabled -eq 0 -and $RuleFailed -eq 0) { + # Only system rules were found, report as no processable rules + $AllResults.Add([pscustomobject]@{ + resultText = "No processable inbox rules found for $Username" + state = 'info' + }) + } + + if ($RuleFailed -gt 0) { + $AllResults.Add([pscustomobject]@{ + resultText = "Failed to process $RuleFailed inbox rules for $Username" + state = 'warning' + }) + + # Add individual rule failure messages as objects + foreach ($RuleMessage in $RuleMessages) { + $AllResults.Add([pscustomobject]@{ + resultText = $RuleMessage + state = 'error' + }) + } + } } } - } - if ($RuleDisabled -gt 0) { - "Disabled $RuleDisabled Inbox Rules for $Username" - } else { - "No Inbox Rules found for $Username. We have not disabled any rules." - } - if ($RuleFailed -gt 0) { - "Failed to disable $RuleFailed Inbox Rules for $Username" + $TotalProcessed = $RuleDisabled + $RuleFailed + $DelegateRulesSkipped + Write-LogMessage -headers $Headers -API $APIName -message "Completed inbox rules processing for $Username. Total rules: $(($Rules | Measure-Object).Count), Processed: $TotalProcessed, Disabled: $RuleDisabled, Failed: $RuleFailed, Delegate rules skipped: $DelegateRulesSkipped" -Sev 'Info' -tenant $TenantFilter + + } catch { + $ErrorMsg = "Failed to process inbox rules: $($_.Exception.Message)" + Write-LogMessage -headers $Headers -API $APIName -message $ErrorMsg -Sev 'Error' -tenant $TenantFilter + $AllResults.Add([pscustomobject]@{ + resultText = $ErrorMsg + state = 'error' + }) } + $StatusCode = [HttpStatusCode]::OK - Write-LogMessage -API 'BECRemediate' -tenant $TenantFilter -message "Executed Remediation for $Username" -sev 'Info' -LogData @($Results) + Write-LogMessage -API 'BECRemediate' -tenant $TenantFilter -message "Executed Remediation for $Username" -sev 'Info' -LogData @($AllResults) + + # Return the results array + $AllResults.ToArray() } catch { $ErrorMessage = Get-CippException -Exception $_ - $Results = [pscustomobject]@{'Results' = "Failed to execute remediation. $($ErrorMessage.NormalizedError)" } + $ErrorList = [System.Collections.Generic.List[object]]::new() + $ErrorList.Add([pscustomobject]@{ + resultText = "Failed to execute remediation at step '$Step'. $($ErrorMessage.NormalizedError)" + state = 'error' + }) Write-LogMessage -API 'BECRemediate' -tenant $TenantFilter -message "Executed Remediation for $Username failed at the $Step step" -sev 'Error' -LogData $ErrorMessage $StatusCode = [HttpStatusCode]::InternalServerError + + # Return the error array + $ErrorList.ToArray() } - $Results = [pscustomobject]@{'Results' = @($Results) } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + # Create the final response structure + $ResponseBody = [pscustomobject]@{'Results' = @($Results) } + + # Associate values to output bindings + return ([HttpResponseContext]@{ StatusCode = $StatusCode - Body = $Results + Body = $ResponseBody }) } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecBulkLicense.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecBulkLicense.ps1 index fd81b158e865..69b8b3f169ff 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecBulkLicense.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecBulkLicense.ps1 @@ -1,4 +1,4 @@ -Function Invoke-ExecBulkLicense { +function Invoke-ExecBulkLicense { <# .FUNCTIONALITY Entrypoint @@ -11,7 +11,8 @@ Function Invoke-ExecBulkLicense { $TriggerMetadata ) - $APIName = $TriggerMetadata.FunctionName + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers $Results = [System.Collections.Generic.List[string]]::new() $StatusCode = [HttpStatusCode]::OK @@ -48,12 +49,12 @@ Function Invoke-ExecBulkLicense { $RemoveLicenses = $Licenses } elseif ($LicenseOperation -eq 'Replace') { $RemoveReplace = $User.assignedLicenses.skuId - if ($RemoveReplace) { Set-CIPPUserLicense -UserId $UserId -TenantFilter $TenantFilter -RemoveLicenses $RemoveReplace } + if ($RemoveReplace) { Set-CIPPUserLicense -UserId $UserId -TenantFilter $TenantFilter -RemoveLicenses $RemoveReplace -APIName $APIName -Headers $Headers } } elseif ($RemoveAllLicenses) { $RemoveLicenses = $User.assignedLicenses.skuId } #todo: Actually build bulk support into set-cippuserlicense. - $TaskResults = Set-CIPPUserLicense -UserId $UserId -TenantFilter $TenantFilter -AddLicenses $AddLicenses -RemoveLicenses $RemoveLicenses + $TaskResults = Set-CIPPUserLicense -UserId $UserId -TenantFilter $TenantFilter -AddLicenses $AddLicenses -RemoveLicenses $RemoveLicenses -APIName $APIName -Headers $Headers $Results.Add($TaskResults) Write-LogMessage -API $APIName -tenant $TenantFilter -message "Successfully processed licenses for user $UserPrincipalName" -Sev 'Info' @@ -78,7 +79,7 @@ Function Invoke-ExecBulkLicense { } # Return response - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecClrImmId.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecClrImmId.ps1 index b234dfbbf136..dd3de53ae513 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecClrImmId.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecClrImmId.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecClrImmId { <# .FUNCTIONALITY @@ -26,8 +24,7 @@ Function Invoke-ExecClrImmId { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{'Results' = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecCreateTAP.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecCreateTAP.ps1 index ef3282aa4243..5f641a5c7f56 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecCreateTAP.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecCreateTAP.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecCreateTAP { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-ExecCreateTAP { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter @@ -51,8 +49,7 @@ Function Invoke-ExecCreateTAP { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{'Results' = $Results } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecDisableUser.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecDisableUser.ps1 index c1e6748b7f32..8d3f22e7c158 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecDisableUser.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecDisableUser.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecDisableUser { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-ExecDisableUser { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter @@ -22,15 +20,13 @@ Function Invoke-ExecDisableUser { try { $Result = Set-CIPPSignInState -UserID $ID -TenantFilter $TenantFilter -APIName $APIName -Headers $Headers -AccountEnabled $Enable - if ($Result -like 'Could not disable*' -or $Result -like 'WARNING: User is AD Sync enabled*') { throw $Result } $StatusCode = [HttpStatusCode]::OK } catch { $Result = $_.Exception.Message $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ 'Results' = "$Result" } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecDismissRiskyUser.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecDismissRiskyUser.ps1 index a1e07c97a31a..2dee3de81801 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecDismissRiskyUser.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecDismissRiskyUser.ps1 @@ -9,9 +9,6 @@ function Invoke-ExecDismissRiskyUser { param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with the query or body of the request $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter $SuspectUser = $Request.Query.userId ?? $Request.Body.userId @@ -39,8 +36,7 @@ function Invoke-ExecDismissRiskyUser { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ 'Results' = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecJITAdmin.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecJITAdmin.ps1 index ae45ad066f45..4eca5bd0cbe8 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecJITAdmin.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecJITAdmin.ps1 @@ -1,271 +1,257 @@ -using namespace System.Net - function Invoke-ExecJITAdmin { <# .FUNCTIONALITY Entrypoint .ROLE Identity.Role.ReadWrite + + .DESCRIPTION + Just-in-time admin management API endpoint. This function can create users, add roles, remove roles, delete, or disable a user. #> [CmdletBinding()] param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint - $User = $Request.Headers + $Headers = $Request.Headers $TenantFilter = $Request.Body.tenantFilter.value ? $Request.Body.tenantFilter.value : $Request.Body.tenantFilter - Write-LogMessage -Headers $User -API $APIName -message 'Accessed this API' -Sev 'Debug' - if ($Request.Query.Action -eq 'List') { - $Schema = Get-CIPPSchemaExtensions | Where-Object { $_.id -match '_cippUser' } | Select-Object -First 1 - if ($Request.Query.TenantFilter -ne 'AllTenants') { - # Single tenant logic - $Query = @{ - TenantFilter = $Request.Query.TenantFilter - Endpoint = 'users' - Parameters = @{ - '$count' = 'true' - '$select' = "id,accountEnabled,displayName,userPrincipalName,$($Schema.id)" - '$filter' = "$($Schema.id)/jitAdminEnabled eq true or $($Schema.id)/jitAdminEnabled eq false" - } - } - $Users = Get-GraphRequestList @Query | Where-Object { $_.id } - $BulkRequests = $Users | ForEach-Object { @( - @{ - id = $_.id - method = 'GET' - url = "users/$($_.id)/memberOf/microsoft.graph.directoryRole/?`$select=id,displayName" - } - ) - } - $RoleResults = New-GraphBulkRequest -tenantid $Request.Query.TenantFilter -Requests @($BulkRequests) - #Write-Information ($RoleResults | ConvertTo-Json -Depth 10 ) - $Results = $Users | ForEach-Object { - $MemberOf = ($RoleResults | Where-Object -Property id -EQ $_.id).body.value | Select-Object displayName, id - [PSCustomObject]@{ - id = $_.id - displayName = $_.displayName - userPrincipalName = $_.userPrincipalName - accountEnabled = $_.accountEnabled - jitAdminEnabled = $_.($Schema.id).jitAdminEnabled - jitAdminExpiration = $_.($Schema.id).jitAdminExpiration - memberOf = $MemberOf - } - } - #Write-Information ($Results | ConvertTo-Json -Depth 10) - $Body = @{ - Results = @($Results) - Metadata = @{ - Parameters = $Query.Parameters + $Start = ([System.DateTimeOffset]::FromUnixTimeSeconds($Request.Body.StartDate)).DateTime.ToLocalTime() + $Expiration = ([System.DateTimeOffset]::FromUnixTimeSeconds($Request.Body.EndDate)).DateTime.ToLocalTime() + $Results = [System.Collections.Generic.List[object]]::new() + + # Check maximum duration setting + try { + $ConfigTable = Get-CIPPTable -TableName Config + $Filter = "PartitionKey eq 'JITAdminSettings' and RowKey eq 'JITAdminSettings'" + $JITAdminConfig = Get-CIPPAzDataTableEntity @ConfigTable -Filter $Filter + + if ($JITAdminConfig -and ![string]::IsNullOrWhiteSpace($JITAdminConfig.MaxDuration)) { + # Calculate the duration between start and expiration + $RequestedDuration = $Expiration - $Start + + # Parse the max duration from ISO 8601 format + try { + $MaxDurationTimeSpan = [System.Xml.XmlConvert]::ToTimeSpan($JITAdminConfig.MaxDuration) + + if ($RequestedDuration -gt $MaxDurationTimeSpan) { + $RequestedDays = $RequestedDuration.TotalDays.ToString('0.00') + $MaxDays = $MaxDurationTimeSpan.TotalDays.ToString('0.00') + $ErrorMessage = "Requested JIT Admin duration ($RequestedDays days) exceeds the maximum allowed duration of $($JITAdminConfig.MaxDuration) ($MaxDays days)" + Write-LogMessage -headers $Headers -API $APIName -message $ErrorMessage -Sev 'Error' + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{'Results' = @($ErrorMessage) } + }) } + } catch { + Write-Warning "Failed to parse MaxDuration setting: $($_.Exception.Message)" } - } else { - # AllTenants logic - $Results = [System.Collections.Generic.List[object]]::new() - $Metadata = @{} - $Table = Get-CIPPTable -TableName CacheJITAdmin - $PartitionKey = 'JITAdminUser' - $Filter = "PartitionKey eq '$PartitionKey'" - $Rows = Get-CIPPAzDataTableEntity @Table -filter $Filter | Where-Object -Property Timestamp -GT (Get-Date).AddMinutes(-60) + } + } catch { + Write-Warning "Failed to check JIT Admin max duration setting: $($_.Exception.Message)" + # Continue execution if we can't check the setting + } - $QueueReference = '{0}-{1}' -f $Request.Query.TenantFilter, $PartitionKey # $TenantFilter is 'AllTenants' - Write-Information "QueueReference: $QueueReference" - $RunningQueue = Invoke-ListCippQueue | Where-Object { $_.Reference -eq $QueueReference -and $_.Status -notmatch 'Completed' -and $_.Status -notmatch 'Failed' } + if ($Request.Body.userAction -eq 'create') { + $Domain = $Request.Body.Domain.value ? $Request.Body.Domain.value : $Request.Body.Domain + $Username = "$($Request.Body.Username)@$($Domain)" + Write-Information "Creating JIT Admin user: $($Request.Body.username)" - if ($RunningQueue) { - $Metadata = [PSCustomObject]@{ - QueueMessage = 'Still loading JIT Admin data for all tenants. Please check back in a few more minutes.' - } - } elseif (!$Rows -and !$RunningQueue) { - $TenantList = Get-Tenants -IncludeErrors - $Queue = New-CippQueueEntry -Name 'JIT Admin List - All Tenants' -Link '/identity/administration/jit-admin?tenantFilter=AllTenants' -Reference $QueueReference -TotalTasks ($TenantList | Measure-Object).Count - - $Metadata = [PSCustomObject]@{ - QueueMessage = 'Loading JIT Admin data for all tenants. Please check back in a few minutes.' - } - $InputObject = [PSCustomObject]@{ - OrchestratorName = 'JITAdminOrchestrator' - QueueFunction = @{ - FunctionName = 'GetTenants' - QueueId = $Queue.RowKey - TenantParams = @{ - IncludeErrors = $true - } - DurableName = 'ExecJITAdminListAllTenants' - } - SkipLog = $true - } - Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) - } else { - # There is data in the cache, so we will use that - Write-Information "Found $($Rows.Count) rows in the cache" - foreach ($row in $Rows) { - $UserObject = $row.JITAdminUser | ConvertFrom-Json - $Results.Add( - [PSCustomObject]@{ - Tenant = $row.Tenant - id = $UserObject.id - displayName = $UserObject.displayName - userPrincipalName = $UserObject.userPrincipalName - accountEnabled = $UserObject.accountEnabled - jitAdminEnabled = $UserObject.jitAdminEnabled - jitAdminExpiration = $UserObject.jitAdminExpiration - memberOf = $UserObject.memberOf - } - ) - } - } - $Body = @{ - Results = @($Results) - Metadata = $Metadata + $JITAdmin = @{ + User = @{ + 'FirstName' = $Request.Body.FirstName + 'LastName' = $Request.Body.LastName + 'UserPrincipalName' = $Username } + Expiration = $Expiration + StartDate = $Start + Reason = $Request.Body.reason + Action = 'Create' + TenantFilter = $TenantFilter + Headers = $Headers + APIName = $APIName } + try { + $CreateResult = Set-CIPPUserJITAdmin @JITAdmin + } catch { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{'Results' = @("Failed to create JIT Admin user: $($_.Exception.Message)") } + }) + } + $Results.Add(@{ + resultText = "Created User: $Username" + copyField = $Username + state = 'success' + }) + if (!$Request.Body.UseTAP) { + $Results.Add(@{ + resultText = "Password: $($CreateResult.password)" + copyField = $CreateResult.password + state = 'success' + }) + } + $Results.Add("JIT Admin Expires: $($Expiration)") + Start-Sleep -Seconds 1 } else { - if ($Request.Body.existingUser.value -match '^[a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}$') { + $Username = $Request.Body.existingUser.value + if ($Username -match '^[a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}$') { + Write-Information "Resolving UserPrincipalName from ObjectId: $($Request.Body.existingUser.value)" $Username = (New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/users/$($Request.Body.existingUser.value)" -tenantid $TenantFilter).userPrincipalName - } - Write-LogMessage -Headers $User -API $APIName -message "Executing JIT Admin for $Username" -tenant $TenantFilter -Sev 'Info' - - $Start = ([System.DateTimeOffset]::FromUnixTimeSeconds($Request.Body.StartDate)).DateTime.ToLocalTime() - $Expiration = ([System.DateTimeOffset]::FromUnixTimeSeconds($Request.Body.EndDate)).DateTime.ToLocalTime() - $Results = [System.Collections.Generic.List[string]]::new() - if ($Request.Body.useraction -eq 'Create') { - Write-LogMessage -Headers $User -API $APIName -tenant $TenantFilter -message "Creating JIT Admin user $($Request.Body.Username)" -Sev 'Info' - Write-Information "Creating JIT Admin user $($Request.Body.username)" - $JITAdmin = @{ - User = @{ - 'FirstName' = $Request.Body.FirstName - 'LastName' = $Request.Body.LastName - 'UserPrincipalName' = "$($Request.Body.Username)@$($Request.Body.Domain.value)" - } - Expiration = $Expiration - Action = 'Create' - TenantFilter = $TenantFilter + # If the resolved username is a guest user, we need to use the id instead of the UPN + if ($Username -clike '*#EXT#*') { + $Username = $Request.Body.existingUser.value } - $CreateResult = Set-CIPPUserJITAdmin @JITAdmin - $Username = "$($Request.Body.Username)@$($Request.Body.Domain.value)" - $Results.Add("Created User: $($Request.Body.Username)@$($Request.Body.Domain.value)") - if (!$Request.Body.UseTAP) { - $Results.Add("Password: $($CreateResult.password)") + } + + # Validate we have a username + if ([string]::IsNullOrWhiteSpace($Username)) { + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{ 'Results' = @("Could not resolve username from existingUser value: $($Request.Body.existingUser.value)") } } - $Results.Add("JIT Admin Expires: $($Expiration)") - Start-Sleep -Seconds 1 } - #Region TAP creation - if ($Request.Body.UseTAP) { - try { - if ($Start -gt (Get-Date)) { - $TapParams = @{ - startDateTime = [System.DateTimeOffset]::FromUnixTimeSeconds($Request.Body.StartDate).DateTime - } - $TapBody = ConvertTo-Json -Depth 5 -InputObject $TapParams - } else { - $TapBody = '{}' - } - # Write-Information "https://graph.microsoft.com/beta/users/$Username/authentication/temporaryAccessPassMethods" - # Retry creating the TAP up to 10 times, since it can fail due to the user not being fully created yet. Sometimes it takes 2 reties, sometimes it takes 8+. Very annoying. -Bobby - $Retries = 0 - $MAX_TAP_RETRIES = 10 - do { - try { - $TapRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($Username)/authentication/temporaryAccessPassMethods" -tenantid $TenantFilter -type POST -body $TapBody - } catch { - Start-Sleep -Seconds 2 - Write-Information "ERROR: Run $Retries of $MAX_TAP_RETRIES : Failed to create TAP, retrying" - # Write-Information ( ConvertTo-Json -Depth 5 -InputObject (Get-CippException -Exception $_)) - } - $Retries++ - } while ( $null -eq $TapRequest.temporaryAccessPass -and $Retries -le $MAX_TAP_RETRIES ) + # Add username result for existing user + $Results.Add(@{ + resultText = "User: $Username" + copyField = $Username + state = 'success' + }) + } - $TempPass = $TapRequest.temporaryAccessPass - $PasswordExpiration = $TapRequest.LifetimeInMinutes - $PasswordLink = New-PwPushLink -Payload $TempPass - $Password = $PasswordLink ? $PasswordLink : $TempPass - $Results.Add("Temporary Access Pass: $Password") - $Results.Add("This TAP is usable starting at $($TapRequest.startDateTime) UTC for the next $PasswordExpiration minutes") - } catch { - $Results.Add('Failed to create TAP, if this is not yet enabled, use the Standards to push the settings to the tenant.') - Write-Information (Get-CippException -Exception $_ | ConvertTo-Json -Depth 5) - if ($Password) { - $Results.Add("Password: $Password") + #Region TAP creation + if ($Request.Body.UseTAP) { + try { + if ($Start -gt (Get-Date)) { + $TapParams = @{ + startDateTime = [System.DateTimeOffset]::FromUnixTimeSeconds($Request.Body.StartDate).DateTime } + $TapBody = ConvertTo-Json -Depth 5 -InputObject $TapParams + } else { + $TapBody = '{}' } - } - #EndRegion TAP creation - - $Parameters = @{ - TenantFilter = $TenantFilter - User = @{ - 'UserPrincipalName' = $Username - } - Roles = $Request.Body.AdminRoles.value - Action = 'AddRoles' - Expiration = $Expiration - } - if ($Start -gt (Get-Date)) { - $TaskBody = @{ - TenantFilter = $TenantFilter - Name = "JIT Admin (enable): $Username" - Command = @{ - value = 'Set-CIPPUserJITAdmin' - label = 'Set-CIPPUserJITAdmin' + # Write-Information "https://graph.microsoft.com/beta/users/$Username/authentication/temporaryAccessPassMethods" + # Retry creating the TAP up to 10 times, since it can fail due to the user not being fully created yet. Sometimes it takes 2 reties, sometimes it takes 8+. Very annoying. -Bobby + $Retries = 0 + $MAX_TAP_RETRIES = 10 + do { + try { + $TapRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($Username)/authentication/temporaryAccessPassMethods" -tenantid $TenantFilter -type POST -body $TapBody + } catch { + Start-Sleep -Seconds 2 + Write-Information "ERROR: Run $Retries of $MAX_TAP_RETRIES : Failed to create TAP, retrying" + # Write-Information ( ConvertTo-Json -Depth 5 -InputObject (Get-CippException -Exception $_)) } - Parameters = [pscustomobject]$Parameters - ScheduledTime = $Request.Body.StartDate - PostExecution = @{ - Webhook = [bool]($Request.Body.PostExecution | Where-Object -Property value -EQ 'webhook') - Email = [bool]($Request.Body.PostExecution | Where-Object -Property value -EQ 'email') - PSA = [bool]($Request.Body.PostExecution | Where-Object -Property value -EQ 'PSA') - } - } - Add-CIPPScheduledTask -Task $TaskBody -hidden $false - if ($Request.Body.useraction -ne 'Create') { - Set-CIPPUserJITAdminProperties -TenantFilter $TenantFilter -UserId $Request.Body.existingUser.value -Expiration $Expiration + $Retries++ + } while ( $null -eq $TapRequest.temporaryAccessPass -and $Retries -le $MAX_TAP_RETRIES ) + + $TempPass = $TapRequest.temporaryAccessPass + $PasswordExpiration = $TapRequest.LifetimeInMinutes + + $PasswordLink = New-PwPushLink -Payload $TempPass + $Password = $PasswordLink ? $PasswordLink : $TempPass + + $Results.Add(@{ + resultText = "Temporary Access Pass: $Password" + copyField = $Password + state = 'success' + }) + $Results.Add("This TAP is usable starting at $($TapRequest.startDateTime) UTC for the next $PasswordExpiration minutes") + } catch { + $Results.Add('Failed to create TAP, if this is not yet enabled, use the Standards to push the settings to the tenant.') + Write-Information (Get-CippException -Exception $_ | ConvertTo-Json -Depth 5) + if ($Password) { + $Results.Add(@{ + resultText = "Password: $Password" + copyField = $Password + state = 'success' + }) } - $Results.Add("Scheduling JIT Admin enable task for $Username") - } else { - $Results.Add("Executing JIT Admin enable task for $Username") - Set-CIPPUserJITAdmin @Parameters } + } + #EndRegion TAP creation - $DisableTaskBody = [pscustomobject]@{ + $Parameters = @{ + TenantFilter = $TenantFilter + User = @{ + 'UserPrincipalName' = $Username + } + Roles = $Request.Body.AdminRoles.value + Action = 'AddRoles' + Reason = $Request.Body.Reason + Expiration = $Expiration + StartDate = $Start + Headers = $Headers + APIName = $APIName + } + if ($Start -gt (Get-Date)) { + $TaskBody = @{ TenantFilter = $TenantFilter - Name = "JIT Admin ($($Request.Body.ExpireAction.value)): $Username" + Name = "JIT Admin (enable): $Username" Command = @{ value = 'Set-CIPPUserJITAdmin' label = 'Set-CIPPUserJITAdmin' } - Parameters = [pscustomobject]@{ - TenantFilter = $TenantFilter - User = @{ - 'UserPrincipalName' = $Username - } - Roles = $Request.Body.AdminRoles.value - Action = $Request.Body.ExpireAction.value - } + Parameters = [pscustomobject]$Parameters + ScheduledTime = $Request.Body.StartDate PostExecution = @{ Webhook = [bool]($Request.Body.PostExecution | Where-Object -Property value -EQ 'webhook') Email = [bool]($Request.Body.PostExecution | Where-Object -Property value -EQ 'email') PSA = [bool]($Request.Body.PostExecution | Where-Object -Property value -EQ 'PSA') } - ScheduledTime = $Request.Body.EndDate } - $null = Add-CIPPScheduledTask -Task $DisableTaskBody -hidden $false - $Results.Add("Scheduling JIT Admin $($Request.Body.ExpireAction.value) task for $Username") - $Body = @{ - Results = @($Results) + Add-CIPPScheduledTask -Task $TaskBody -hidden $false + if ($Request.Body.userAction -ne 'create') { + Set-CIPPUserJITAdminProperties -TenantFilter $TenantFilter -UserId $Request.Body.existingUser.value -Expiration $Expiration -StartDate $Start -Reason $Request.Body.Reason -CreatedBy (([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json).userDetails) + } + $Results.Add("Scheduling JIT Admin enable task for $Username") + } else { + try { + $Results.Add("Executing JIT Admin enable task for $Username") + Set-CIPPUserJITAdmin @Parameters + } catch { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{'Results' = @("Failed to execute JIT Admin enable task: $($_.Exception.Message)") } + }) + } + } + + $DisableTaskBody = [pscustomobject]@{ + TenantFilter = $TenantFilter + Name = "JIT Admin ($($Request.Body.ExpireAction.value)): $Username" + Command = @{ + value = 'Set-CIPPUserJITAdmin' + label = 'Set-CIPPUserJITAdmin' + } + Parameters = [pscustomobject]@{ + TenantFilter = $TenantFilter + User = @{ + 'UserPrincipalName' = $Username + } + Roles = $Request.Body.AdminRoles.value + Reason = $Request.Body.Reason + Action = $Request.Body.ExpireAction.value + } + PostExecution = @{ + Webhook = [bool]($Request.Body.PostExecution | Where-Object -Property value -EQ 'webhook') + Email = [bool]($Request.Body.PostExecution | Where-Object -Property value -EQ 'email') + PSA = [bool]($Request.Body.PostExecution | Where-Object -Property value -EQ 'PSA') } + ScheduledTime = $Request.Body.EndDate } + $null = Add-CIPPScheduledTask -Task $DisableTaskBody -hidden $false + $Results.Add("Scheduling JIT Admin $($Request.Body.ExpireAction.value) task for $Username") - # TODO - We should find a way to have this return a HTTP status code based on the success or failure of the operation. This also doesn't return the results of the operation in a Results hash table, like most of the rest of the API. - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK - Body = $Body + Body = @{'Results' = @($Results) } }) + } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecOffboardUser.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecOffboardUser.ps1 index 970d02136dfd..0ca013970a1f 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecOffboardUser.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecOffboardUser.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ExecOffboardUser { <# .FUNCTIONALITY @@ -11,11 +9,12 @@ function Invoke-ExecOffboardUser { param($Request, $TriggerMetadata) $AllUsers = $Request.Body.user.value $TenantFilter = $request.Body.tenantFilter.value ? $request.Body.tenantFilter.value : $request.Body.tenantFilter + $OffboardingOptions = $Request.Body | Select-Object * -ExcludeProperty user, tenantFilter, Scheduled $Results = foreach ($username in $AllUsers) { try { $APIName = 'ExecOffboardUser' $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + if ($Request.Body.Scheduled.enabled) { $taskObject = [PSCustomObject]@{ @@ -27,7 +26,7 @@ function Invoke-ExecOffboardUser { Parameters = [pscustomobject]@{ Username = $Username APIName = 'Scheduled Offboarding' - options = $Request.Body + options = $OffboardingOptions RunScheduled = $true } ScheduledTime = $Request.Body.Scheduled.date @@ -36,10 +35,11 @@ function Invoke-ExecOffboardUser { Email = [bool]$Request.Body.PostExecution.email PSA = [bool]$Request.Body.PostExecution.psa } + Reference = $Request.Body.reference } Add-CIPPScheduledTask -Task $taskObject -hidden $false -Headers $Headers } else { - Invoke-CIPPOffboardingJob -Username $Username -TenantFilter $TenantFilter -Options $Request.Body -APIName $APIName -Headers $Headers + Invoke-CIPPOffboardingJob -Username $Username -TenantFilter $TenantFilter -Options $OffboardingOptions -APIName $APIName -Headers $Headers } $StatusCode = [HttpStatusCode]::OK @@ -49,7 +49,7 @@ function Invoke-ExecOffboardUser { } } $body = [pscustomobject]@{'Results' = @($Results) } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecOneDriveShortCut.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecOneDriveShortCut.ps1 index 4ca493e65db2..822fd952191f 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecOneDriveShortCut.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecOneDriveShortCut.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecOneDriveShortCut { <# .FUNCTIONALITY @@ -9,10 +7,8 @@ Function Invoke-ExecOneDriveShortCut { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with the body of the request $TenantFilter = $Request.Body.tenantFilter @@ -28,8 +24,7 @@ Function Invoke-ExecOneDriveShortCut { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{'Results' = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecOnedriveProvision.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecOnedriveProvision.ps1 index 48d6be9274fb..b8143e9e9af6 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecOnedriveProvision.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecOnedriveProvision.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecOneDriveProvision { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-ExecOneDriveProvision { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $UserPrincipalName = $Request.Body.UserPrincipalName ?? $Request.Query.UserPrincipalName $TenantFilter = $Request.Body.tenantFilter ?? $Request.Query.tenantFilter @@ -25,8 +23,7 @@ Function Invoke-ExecOneDriveProvision { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{'Results' = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecPasswordNeverExpires.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecPasswordNeverExpires.ps1 index 251fa31350d1..fce05e622468 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecPasswordNeverExpires.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecPasswordNeverExpires.ps1 @@ -10,7 +10,7 @@ function Invoke-ExecPasswordNeverExpires { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantFilter = $Request.Body.tenantFilter @@ -33,8 +33,7 @@ function Invoke-ExecPasswordNeverExpires { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ 'Results' = @($Result) } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecPerUserMFA.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecPerUserMFA.ps1 index c22b0945e193..bc78468b45a8 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecPerUserMFA.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecPerUserMFA.ps1 @@ -6,17 +6,21 @@ function Invoke-ExecPerUserMFA { .ROLE Identity.User.ReadWrite #> - Param($Request, $TriggerMetadata) + param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Guest user handling + $UserId = $Request.Body.userPrincipalName -match '#EXT#' ? $Request.Body.userId : $Request.Body.userPrincipalName + $TenantFilter = $Request.Body.tenantFilter + $State = $Request.Body.State.value ? $Request.Body.State.value : $Request.Body.State + $Request = @{ - userId = $Request.Body.userId - TenantFilter = $Request.Body.tenantFilter - State = $Request.Body.State.value ? $Request.Body.State.value : $Request.Body.State + userId = $UserId + TenantFilter = $TenantFilter + State = $State Headers = $Headers APIName = $APIName } @@ -28,8 +32,7 @@ function Invoke-ExecPerUserMFA { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ 'Results' = @($Result) } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecReprocessUserLicenses.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecReprocessUserLicenses.ps1 new file mode 100644 index 000000000000..3aaf3829e0ff --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecReprocessUserLicenses.ps1 @@ -0,0 +1,36 @@ +function Invoke-ExecReprocessUserLicenses { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $UserID = $Request.Query.ID ?? $Request.Body.ID + $UserPrincipalName = $Request.Query.userPrincipalName ?? $Request.Body.userPrincipalName + + try { + $GraphRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/users/$UserID/reprocessLicenseAssignment" -tenantid $TenantFilter -type POST -body '{}' -AsApp $true + + $Result = "Successfully reprocessed license assignments for user $UserPrincipalName. License assignment states will be updated shortly." + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to reprocess license assignments for $UserPrincipalName. $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ 'Results' = $Result } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecResetMFA.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecResetMFA.ps1 index a72a7f82e40e..47d72e537885 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecResetMFA.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecResetMFA.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecResetMFA { <# .FUNCTIONALITY @@ -9,25 +7,21 @@ Function Invoke-ExecResetMFA { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter $UserID = $Request.Query.ID ?? $Request.Body.ID try { $Result = Remove-CIPPUserMFA -UserPrincipalName $UserID -TenantFilter $TenantFilter -Headers $Headers - if ($Result -match '^Failed') { throw $Result } $StatusCode = [HttpStatusCode]::OK } catch { $Result = $_.Exception.Message $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ 'Results' = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecResetPass.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecResetPass.ps1 index d2080b726ab8..013bbd891e4c 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecResetPass.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecResetPass.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecResetPass { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-ExecResetPass { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. @@ -24,15 +22,13 @@ Function Invoke-ExecResetPass { try { $Result = Set-CIPPResetPassword -UserID $ID -tenantFilter $TenantFilter -APIName $APIName -Headers $Headers -forceChangePasswordNextSignIn $MustChange -DisplayName $DisplayName - if ($Result.state -eq 'Error') { throw $Result.resultText } $StatusCode = [HttpStatusCode]::OK } catch { $Result = $_.Exception.Message $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{'Results' = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecRestoreDeleted.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecRestoreDeleted.ps1 index 36daf3d8914c..17636856babf 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecRestoreDeleted.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecRestoreDeleted.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ExecRestoreDeleted { +function Invoke-ExecRestoreDeleted { <# .FUNCTIONALITY Entrypoint @@ -12,7 +10,7 @@ Function Invoke-ExecRestoreDeleted { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter @@ -21,7 +19,7 @@ Function Invoke-ExecRestoreDeleted { $DisplayName = $Request.Body.displayName try { - $null = New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/directory/deletedItems/$($RequestID)/restore" -tenantid $TenantFilter -type POST -body '{}' -Verbose + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/directory/deletedItems/$($RequestID)/restore" -tenantid $TenantFilter -type POST -body '{}' -Verbose $Result = "Successfully restored deleted item with ID: '$($RequestID)'" if ($UserPrincipalName) { $Result += " User Principal Name: '$($UserPrincipalName)'" } if ($DisplayName) { $Result += " Display Name: '$($DisplayName)'" } @@ -39,8 +37,7 @@ Function Invoke-ExecRestoreDeleted { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{'Results' = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecRevokeSessions.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecRevokeSessions.ps1 index 4d39d67fbbec..6ea47555f014 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecRevokeSessions.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecRevokeSessions.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecRevokeSessions { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-ExecRevokeSessions { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter @@ -20,16 +18,14 @@ Function Invoke-ExecRevokeSessions { $Username = $Request.Query.Username ?? $Request.Body.Username try { - $Result = Revoke-CIPPSessions -UserID $ID -TenantFilter $TenantFilter -Username $Username -APIName $APIName -Headers $Request.Headers - if ($Result -match '^Failed') { throw $Result } + $Result = Revoke-CIPPSessions -UserID $ID -TenantFilter $TenantFilter -Username $Username -APIName $APIName -Headers $Headers $StatusCode = [HttpStatusCode]::OK } catch { $Result = $_.Exception.Message $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{'Results' = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecSendPush.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecSendPush.ps1 index d9af4f6e232c..93d534a2a37e 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecSendPush.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecSendPush.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ExecSendPush { <# .FUNCTIONALITY @@ -11,9 +9,6 @@ function Invoke-ExecSendPush { param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $TenantFilter = $Request.body.TenantFilter $UserEmail = $Request.body.UserEmail $MFAAppID = '981f26a1-7f43-403b-a875-f8b09b8cd720' @@ -117,7 +112,7 @@ function Invoke-ExecSendPush { $Results = [pscustomobject]@{'Results' = @{ resultText = $Body; state = $State } } Write-LogMessage -headers $Request.Headers -API $APINAME -message "Sent push request to $UserEmail - Result: $($obj.BeginTwoWayAuthenticationResponse.result.value | Out-String)" -Sev 'Info' - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Results }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecSetUserPhoto.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecSetUserPhoto.ps1 new file mode 100644 index 000000000000..f4636684fb1c --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecSetUserPhoto.ps1 @@ -0,0 +1,91 @@ +function Invoke-ExecSetUserPhoto { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + $tenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $userId = $Request.Query.userId ?? $Request.Body.userId + $action = $Request.Query.action ?? $Request.Body.action + $photoData = $Request.Body.photoData + + $Results = [System.Collections.Generic.List[object]]::new() + + try { + if ([string]::IsNullOrWhiteSpace($userId)) { + throw 'User ID is required' + } + + if ($action -eq 'remove') { + # Remove the user's profile picture + try { + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/users/$userId/photo/`$value" -tenantid $tenantFilter -type DELETE -NoAuthCheck $true + $Results.Add('Successfully removed user profile picture.') + Write-LogMessage -API $APIName -tenant $tenantFilter -headers $Headers -message "Removed profile picture for user $userId" -Sev Info + } catch { + # Check if the error is because there's no photo + if ($_.Exception.Message -like '*does not exist*' -or $_.Exception.Message -like '*ResourceNotFound*') { + $Results.Add('User does not have a profile picture to remove.') + Write-LogMessage -API $APIName -tenant $tenantFilter -headers $Headers -message "No profile picture found for user $userId" -Sev Info + } else { + throw $_ + } + } + } elseif ($action -eq 'set') { + # Set the user's profile picture + if ([string]::IsNullOrWhiteSpace($photoData)) { + throw 'Photo data is required when setting a profile picture' + } + + # Convert base64 string to byte array + # The photoData should be in format: data:image/jpeg;base64,/9j/4AAQSkZJRg... + # We need to strip the data URL prefix if present + $base64Data = $photoData + if ($photoData -match '^data:image/[^;]+;base64,(.+)$') { + $base64Data = $Matches[1] + } + + try { + $photoBytes = [Convert]::FromBase64String($base64Data) + } catch { + throw "Invalid base64 photo data: $($_.Exception.Message)" + } + + # Validate image size (Microsoft Graph has a 4MB limit) + $maxSizeBytes = 4 * 1024 * 1024 # 4MB + if ($photoBytes.Length -gt $maxSizeBytes) { + throw "Photo size exceeds 4MB limit. Current size: $([math]::Round($photoBytes.Length / 1MB, 2))MB" + } + + # Upload the photo using Graph API + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/users/$userId/photo/`$value" -tenantid $tenantFilter -type PATCH -body $photoBytes -ContentType 'image/jpeg' -NoAuthCheck $true + + $Results.Add('Successfully set user profile picture.') + Write-LogMessage -API $APIName -tenant $tenantFilter -headers $Headers -message "Set profile picture for user $userId" -Sev Info + } else { + throw "Invalid action. Must be 'set' or 'remove'" + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ + 'Results' = @($Results) + } + }) + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API $APIName -tenant $tenantFilter -headers $Headers -message "Failed to $action user profile picture. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{ + 'Results' = @("Failed to $action user profile picture: $($ErrorMessage.NormalizedError)") + } + }) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListDeletedItems.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListDeletedItems.ps1 index 3daf823de1a3..72fed7ce5282 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListDeletedItems.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListDeletedItems.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ListDeletedItems { +function Invoke-ListDeletedItems { <# .FUNCTIONALITY Entrypoint @@ -9,22 +7,33 @@ Function Invoke-ListDeletedItems { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint $TenantFilter = $Request.Query.tenantFilter - $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APINAME -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. - $Types = 'Application', 'User', 'Group' + $Types = @('administrativeUnit', 'application', 'externalUserProfile', 'pendingExternalUserProfile', 'user', 'group', 'servicePrincipal', 'certificateBasedAuthPki', 'certificateAuthorityDetail') + $Requests = foreach ($Type in $Types) { + [PSCustomObject]@{ + id = $Type + url = "directory/deletedItems/microsoft.graph.$($Type)" + method = 'GET' + } + } + + $BulkResults = New-GraphBulkRequest -Requests @($Requests) -tenantid $TenantFilter + $GraphRequest = foreach ($Type in $Types) { - (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/directory/deletedItems/microsoft.graph.$($Type)" -tenantid $TenantFilter) | - Where-Object -Property '@odata.context' -NotLike '*graph.microsoft.com*' | - Select-Object *, @{ Name = 'TargetType'; Expression = { $Type } } + # pretty format the type name + $FormattedType = (Get-Culture).TextInfo.ToTitleCase(($Type -creplace '([A-Z])', ' $1').Trim()) + + $Result = $BulkResults | Where-Object { $_.id -eq $Type } + if ($Result.status -eq 200) { + $Result.body.value | ForEach-Object { + $_ | Add-Member -NotePropertyName 'TargetType' -NotePropertyValue $FormattedType + $_ + } + } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($GraphRequest) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListJITAdmin.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListJITAdmin.ps1 new file mode 100644 index 000000000000..705e4b205258 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListJITAdmin.ps1 @@ -0,0 +1,131 @@ +function Invoke-ListJITAdmin { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.Role.Read + + .DESCRIPTION + List Just-in-time admin users for a tenant or all tenants. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + + $Schema = Get-CIPPSchemaExtensions | Where-Object { $_.id -match '_cippUser' } | Select-Object -First 1 + $TenantFilter = $Request.Query.TenantFilter + + if ($TenantFilter -ne 'AllTenants') { + # Single tenant logic + $Query = @{ + TenantFilter = $TenantFilter + Endpoint = 'users' + Parameters = @{ + '$count' = 'true' + '$select' = "id,accountEnabled,displayName,userPrincipalName,$($Schema.id)" + '$filter' = "$($Schema.id)/jitAdminEnabled eq true or $($Schema.id)/jitAdminEnabled eq false" + } + } + $Users = Get-GraphRequestList @Query | Where-Object { $_.id } + $BulkRequests = $Users | ForEach-Object { @( + @{ + id = $_.id + method = 'GET' + url = "users/$($_.id)/memberOf/microsoft.graph.directoryRole/?`$select=id,displayName" + } + ) + } + $RoleResults = New-GraphBulkRequest -tenantid $TenantFilter -Requests @($BulkRequests) + # Write-Information ($RoleResults | ConvertTo-Json -Depth 10 ) + $Results = $Users | ForEach-Object { + $MemberOf = ($RoleResults | Where-Object -Property id -EQ $_.id).body.value | Select-Object displayName, id + [PSCustomObject]@{ + id = $_.id + displayName = $_.displayName + userPrincipalName = $_.userPrincipalName + accountEnabled = $_.accountEnabled + jitAdminEnabled = $_.($Schema.id).jitAdminEnabled + jitAdminExpiration = $_.($Schema.id).jitAdminExpiration + jitAdminStartDate = $_.($Schema.id).jitAdminStartDate + jitAdminReason = $_.($Schema.id).jitAdminReason + jitAdminCreatedBy = $_.($Schema.id).jitAdminCreatedBy + memberOf = $MemberOf + } + } + + # Write-Information ($Results | ConvertTo-Json -Depth 10) + $Metadata = [PSCustomObject]@{Parameters = $Query.Parameters } + } else { + # AllTenants logic + $Results = [System.Collections.Generic.List[object]]::new() + $Metadata = @{} + $Table = Get-CIPPTable -TableName CacheJITAdmin + $PartitionKey = 'JITAdminUser' + $Filter = "PartitionKey eq '$PartitionKey'" + $Rows = Get-CIPPAzDataTableEntity @Table -filter $Filter | Where-Object -Property Timestamp -GT (Get-Date).AddMinutes(-60) + + $QueueReference = '{0}-{1}' -f $TenantFilter, $PartitionKey # $TenantFilter is 'AllTenants' + Write-Information "QueueReference: $QueueReference" + $RunningQueue = Invoke-ListCippQueue -Reference $QueueReference | Where-Object { $_.Status -notmatch 'Completed' -and $_.Status -notmatch 'Failed' } + + if ($RunningQueue) { + $Metadata = [PSCustomObject]@{ + QueueMessage = 'Still loading JIT Admin data for all tenants. Please check back in a few more minutes.' + QueueId = $RunningQueue.RowKey + } + } elseif (!$Rows -and !$RunningQueue) { + $TenantList = Get-Tenants -IncludeErrors + $Queue = New-CippQueueEntry -Name 'JIT Admin List - All Tenants' -Link '/identity/administration/jit-admin?tenantFilter=AllTenants' -Reference $QueueReference -TotalTasks ($TenantList | Measure-Object).Count + + $Metadata = [PSCustomObject]@{ + QueueMessage = 'Loading JIT Admin data for all tenants. Please check back in a few minutes.' + QueueId = $Queue.RowKey + } + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'JITAdminOrchestrator' + QueueFunction = @{ + FunctionName = 'GetTenants' + QueueId = $Queue.RowKey + TenantParams = @{ + IncludeErrors = $true + } + DurableName = 'ExecJITAdminListAllTenants' + } + SkipLog = $true + } + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + } else { + $Metadata = [PSCustomObject]@{ + QueueId = $RunningQueue.RowKey ?? $null + } + # There is data in the cache, so we will use that + Write-Information "Found $($Rows.Count) rows in the cache" + foreach ($row in $Rows) { + $UserObject = $row.JITAdminUser | ConvertFrom-Json + $Results.Add( + [PSCustomObject]@{ + Tenant = $row.Tenant + id = $UserObject.id + displayName = $UserObject.displayName + userPrincipalName = $UserObject.userPrincipalName + accountEnabled = $UserObject.accountEnabled + jitAdminEnabled = $UserObject.jitAdminEnabled + jitAdminExpiration = $UserObject.jitAdminExpiration + jitAdminStartDate = $UserObject.jitAdminStartDate + jitAdminReason = $UserObject.jitAdminReason + jitAdminCreatedBy = $UserObject.jitAdminCreatedBy + memberOf = $UserObject.memberOf + } + ) + } + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ + Results = @($Results) + Metadata = $Metadata + } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListJITAdminTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListJITAdminTemplates.ps1 new file mode 100644 index 000000000000..aa5ad886758e --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListJITAdminTemplates.ps1 @@ -0,0 +1,72 @@ +function Invoke-ListJITAdminTemplates { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Identity.Role.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + # Get the TenantFilter from query parameters + $TenantFilter = $Request.Query.TenantFilter + + # Get the includeAllTenants flag from query or body parameters (defaults to true) + $IncludeAllTenants = if ($Request.Query.includeAllTenants -eq 'false' -or $Request.Body.includeAllTenants -eq 'false') { + $false + } else { + $true + } + + # Get the templates table + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'JITAdminTemplate'" + + # Retrieve all JIT Admin templates + $Templates = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) | ForEach-Object { + try { + $row = $_ + $data = $row.JSON | ConvertFrom-Json -Depth 100 -ErrorAction Stop + $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $row.GUID -Force + $data | Add-Member -NotePropertyName 'RowKey' -NotePropertyValue $row.RowKey -Force + $data + } catch { + Write-LogMessage -headers $Headers -API $APIName -message "Failed to process JIT Admin template: $($row.RowKey) - $($_.Exception.Message)" -Sev 'Warning' + } + } + + # Filter by tenant if TenantFilter is provided + if ($TenantFilter) { + if ($TenantFilter -eq 'AllTenants') { + # When requesting AllTenants, return only templates stored under AllTenants + $Templates = $Templates | Where-Object -Property tenantFilter -EQ 'AllTenants' + } else { + # When requesting a specific tenant + if ($IncludeAllTenants) { + # Include both tenant-specific and AllTenants templates + $Templates = $Templates | Where-Object { $_.tenantFilter -eq $TenantFilter -or $_.tenantFilter -eq 'AllTenants' } + } else { + # Return only tenant-specific templates (exclude AllTenants) + $Templates = $Templates | Where-Object -Property tenantFilter -EQ $TenantFilter + } + } + } + + # Sort by template name + $Templates = $Templates | Sort-Object -Property templateName + + # If a specific GUID is requested, filter to that template + if ($Request.query.GUID) { + $Templates = $Templates | Where-Object -Property GUID -EQ $Request.query.GUID + } + + $Templates = ConvertTo-Json -InputObject @($Templates) -Depth 100 + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Templates + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListNewUserDefaults.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListNewUserDefaults.ps1 new file mode 100644 index 000000000000..847e7271c95f --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListNewUserDefaults.ps1 @@ -0,0 +1,71 @@ +function Invoke-ListNewUserDefaults { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Identity.User.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + Write-Host 'Listing New User Default Templates' + + # Get the TenantFilter from query parameters + $TenantFilter = $Request.Query.TenantFilter + + # Get the includeAllTenants flag from query or body parameters (defaults to true) + $IncludeAllTenants = if ($Request.Query.includeAllTenants -eq 'false' -or $Request.Body.includeAllTenants -eq 'false') { + $false + } else { + $true + } + + # Get the templates table + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'UserDefaultTemplate'" + + # Retrieve all User Default templates + $Templates = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) | ForEach-Object { + try { + $row = $_ + $data = $row.JSON | ConvertFrom-Json -Depth 100 -ErrorAction Stop + $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $row.GUID -Force + $data | Add-Member -NotePropertyName 'RowKey' -NotePropertyValue $row.RowKey -Force + $data + } catch { + Write-Warning "Failed to process User Default template: $($row.RowKey) - $($_.Exception.Message)" + } + } + + # Filter by tenant if TenantFilter is provided + if ($TenantFilter) { + if ($TenantFilter -eq 'AllTenants') { + # When requesting AllTenants, return only templates stored under AllTenants + $Templates = $Templates | Where-Object -Property tenantFilter -eq 'AllTenants' + } else { + # When requesting a specific tenant + if ($IncludeAllTenants) { + # Include both tenant-specific and AllTenants templates + $Templates = $Templates | Where-Object { $_.tenantFilter -eq $TenantFilter -or $_.tenantFilter -eq 'AllTenants' } + } else { + # Return only tenant-specific templates (exclude AllTenants) + $Templates = $Templates | Where-Object -Property tenantFilter -eq $TenantFilter + } + } + } + + # Sort by template name + $Templates = $Templates | Sort-Object -Property templateName + + # If a specific ID is requested, filter to that template + if ($Request.query.ID) { + $Templates = $Templates | Where-Object -Property GUID -eq $Request.query.ID + } + + $Templates = ConvertTo-Json -InputObject @($Templates) -Depth 100 + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Templates + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListPerUserMFA.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListPerUserMFA.ps1 index 2c6db5ca62ef..bc75662b6414 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListPerUserMFA.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListPerUserMFA.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ListPerUserMFA { <# .FUNCTIONALITY @@ -37,8 +35,7 @@ function Invoke-ListPerUserMFA { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @($Results) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserConditionalAccessPolicies.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserConditionalAccessPolicies.ps1 index 585fb8c71bbc..3ff24cbfa7a4 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserConditionalAccessPolicies.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserConditionalAccessPolicies.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListUserConditionalAccessPolicies { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ Function Invoke-ListUserConditionalAccessPolicies { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # XXX - Unused endpoint? # Interact with query parameters or the body of the request. @@ -43,8 +36,7 @@ Function Invoke-ListUserConditionalAccessPolicies { Write-Host $GraphRequest - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($GraphRequest) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserCounts.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserCounts.ps1 index e7d995268ad2..c77673e9774f 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserCounts.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserCounts.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListUserCounts { <# .FUNCTIONALITY @@ -10,10 +8,6 @@ Function Invoke-ListUserCounts { [CmdletBinding()] param($Request, $TriggerMetadata) - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.TenantFilter if ($Request.Query.TenantFilter -eq 'AllTenants') { @@ -22,12 +16,86 @@ Function Invoke-ListUserCounts { $GAs = 'Not Supported' $Guests = 'Not Supported' } else { - try { $Users = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$count=true&`$top=1" -CountOnly -ComplexFilter -tenantid $TenantFilter } catch { $Users = 'Not available' } - try { $LicUsers = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$count=true&`$top=1&`$filter=assignedLicenses/`$count ne 0" -CountOnly -ComplexFilter -tenantid $TenantFilter } catch { $LicUsers = 'Not available' } - try { $GAs = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/directoryRoles/roleTemplateId=62e90394-69f5-4237-9190-012177145e10/members?`$count=true" -CountOnly -ComplexFilter -tenantid $TenantFilter } catch { $GAs = 'Not available' } - try { $Guests = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$count=true&`$top=1&`$filter=userType eq 'Guest'" -CountOnly -ComplexFilter -tenantid $TenantFilter } catch { $Guests = 'Not available' } + try { + # Build bulk requests array + [System.Collections.Generic.List[PSCustomObject]]$BulkRequests = @( + @{ + id = 'Users' + method = 'GET' + url = "/users/`$count" + headers = @{ + 'ConsistencyLevel' = 'eventual' + } + } + @{ + id = 'LicUsers' + method = 'GET' + url = "/users/`$count?`$top=1&`$filter=assignedLicenses/`$count ne 0" + headers = @{ + 'ConsistencyLevel' = 'eventual' + } + } + @{ + id = 'GAs' + method = 'GET' + url = "/directoryRoles/roleTemplateId=62e90394-69f5-4237-9190-012177145e10/members/`$count" + headers = @{ + 'ConsistencyLevel' = 'eventual' + } + } + @{ + id = 'Guests' + method = 'GET' + url = "/users/`$count?`$top=1&`$filter=userType eq 'Guest'" + headers = @{ + 'ConsistencyLevel' = 'eventual' + } + } + ) + + # Execute bulk request + $BulkResults = New-GraphBulkRequest -Requests @($BulkRequests) -noPaginateIds @('LicUsers') -tenantid $TenantFilter @('Users', 'LicUsers', 'GAs', 'Guests') + + # Check if any requests failed + $FailedRequests = $BulkResults | Where-Object { $_.status -ne 200 } + + if ($FailedRequests) { + # If any requests failed, return an error response + $FailedIds = ($FailedRequests | ForEach-Object { $_.id }) -join ', ' + $ErrorMessage = "Failed to retrieve counts for: $FailedIds" + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = @{ + Error = $ErrorMessage + Details = $FailedRequests + } + }) + } + + # All requests succeeded, extract the counts + $BulkResults | ForEach-Object { + $UsersCount = $_.body + + switch ($_.id) { + 'Users' { $Users = $UsersCount } + 'LicUsers' { $LicUsers = $UsersCount } + 'GAs' { $GAs = $UsersCount } + 'Guests' { $Guests = $UsersCount } + } + } + + } catch { + # Return error status on exception + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = @{ + Error = "Failed to retrieve user counts: $($_.Exception.Message)" + } + }) + } } - $StatusCode = [HttpStatusCode]::OK + $Counts = @{ Users = $Users LicUsers = $LicUsers @@ -35,9 +103,8 @@ Function Invoke-ListUserCounts { Guests = $Guests } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK Body = $Counts }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserDevices.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserDevices.ps1 index 427b61b05f60..3cb8910846b7 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserDevices.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserDevices.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListUserDevices { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ Function Invoke-ListUserDevices { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter $UserID = $Request.Query.UserID @@ -51,8 +44,7 @@ Function Invoke-ListUserDevices { $GraphRequest = @() } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($GraphRequest) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserGroups.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserGroups.ps1 index dd44cf2ccc4a..a223aef2c597 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserGroups.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserGroups.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ListUserGroups { +function Invoke-ListUserGroups { <# .FUNCTIONALITY Entrypoint @@ -9,11 +7,6 @@ Function Invoke-ListUserGroups { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter $UserID = $Request.Query.userId @@ -29,16 +22,15 @@ Function Invoke-ListUserGroups { @{ Name = 'OnPremisesSync'; Expression = { $_.onPremisesSyncEnabled } }, @{ Name = 'IsAssignableToRole'; Expression = { $_.isAssignableToRole } }, @{ Name = 'calculatedGroupType'; Expression = { - if ($_.mailEnabled -and $_.securityEnabled) { 'Mail-Enabled Security' } - if (!$_.mailEnabled -and $_.securityEnabled) { 'Security' } if ($_.groupTypes -contains 'Unified') { 'Microsoft 365' } - if (([string]::isNullOrEmpty($_.groupTypes)) -and ($_.mailEnabled) -and (!$_.securityEnabled)) { 'Distribution List' } + elseif ($_.mailEnabled -and $_.securityEnabled) { 'Mail-Enabled Security' } + elseif (-not $_.mailEnabled -and $_.securityEnabled) { 'Security' } + elseif (([string]::isNullOrEmpty($_.groupTypes)) -and ($_.mailEnabled) -and (-not $_.securityEnabled)) { 'Distribution List' } } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($GraphRequest) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserMailboxDetails.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserMailboxDetails.ps1 index 1f5ed5a1a1bf..636639f32296 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserMailboxDetails.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserMailboxDetails.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ListUserMailboxDetails { <# .FUNCTIONALITY @@ -9,15 +7,13 @@ function Invoke-ListUserMailboxDetails { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter $UserID = $Request.Query.UserID + $UserMail = $Request.Query.userMail + Write-Host "TenantFilter: $TenantFilter" + Write-Host "UserID: $UserID" + Write-Host "UserMail: $UserMail" try { $Requests = @( @@ -53,7 +49,7 @@ function Invoke-ListUserMailboxDetails { @{ CmdletInput = @{ CmdletName = 'Get-BlockedSenderAddress' - Parameters = @{ Identity = $UserID } + Parameters = @{ SenderAddress = $UserMail } } }, @{ @@ -63,7 +59,6 @@ function Invoke-ListUserMailboxDetails { } } ) - Write-Host $UserID $usernames = New-GraphGetRequest -tenantid $TenantFilter -uri 'https://graph.microsoft.com/beta/users?$select=id,userPrincipalName,displayName,mailNickname&$top=999' $Results = New-ExoBulkRequest -TenantId $TenantFilter -CmdletArray $Requests -returnWithCommand $true -Anchor $username Write-Host "First line of usernames is $($usernames[0] | ConvertTo-Json)" @@ -105,9 +100,9 @@ function Invoke-ListUserMailboxDetails { # Determine if the user is blocked for spam if ($BlockedSender -and $BlockedSender.Count -gt 0) { - $BlockedForSpam = $false - } else { $BlockedForSpam = $true + } else { + $BlockedForSpam = $false } } catch { Write-Error "Failed Fetching Data $($_.Exception.message): $($_.InvocationInfo.ScriptLineNumber)" @@ -267,6 +262,7 @@ function Invoke-ListUserMailboxDetails { AutoExpandingArchive = $AutoExpandingArchiveEnabled RecipientTypeDetails = $MailboxDetailedRequest.RecipientTypeDetails Mailbox = $MailboxDetailedRequest + RetentionPolicy = $MailboxDetailedRequest.RetentionPolicy MailboxActionsData = ($MailboxDetailedRequest | Select-Object id, ExchangeGuid, ArchiveGuid, WhenSoftDeleted, @{ Name = 'UPN'; Expression = { $_.'UserPrincipalName' } }, @{ Name = 'displayName'; Expression = { $_.'DisplayName' } }, @@ -284,13 +280,13 @@ function Invoke-ListUserMailboxDetails { LitigationHoldEnabled, LitigationHoldDate, LitigationHoldDuration, - @{ Name = 'LicensedForLitigationHold'; Expression = { ($_.PersistedCapabilities -contains 'BPOS_S_DlpAddOn' -or $_.PersistedCapabilities -contains 'BPOS_S_Enterprise') } }, + @{ Name = 'LicensedForLitigationHold'; Expression = { ($_.PersistedCapabilities -contains 'EXCHANGE_S_ARCHIVE_ADDON' -or $_.PersistedCapabilities -contains 'EXCHANGE_S_ENTERPRISE') } }, ComplianceTagHoldApplied, RetentionHoldEnabled, InPlaceHolds) } # Select statement taken from ListMailboxes to save a EXO request. If updated here, update in ListMailboxes as well. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($GraphRequest) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserMailboxRules.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserMailboxRules.ps1 index 750062e50315..43f031c7ec5a 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserMailboxRules.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserMailboxRules.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListUserMailboxRules { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-ListUserMailboxRules { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter @@ -29,8 +27,7 @@ Function Invoke-ListUserMailboxRules { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @($Result) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserPhoto.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserPhoto.ps1 index 19ceb7562341..0c02bac81d50 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserPhoto.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserPhoto.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListUserPhoto { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ Function Invoke-ListUserPhoto { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $tenantFilter = $Request.Query.tenantFilter $userId = $Request.Query.UserID @@ -32,8 +25,7 @@ Function Invoke-ListUserPhoto { #convert body from base64 to byte array $Body = [Convert]::FromBase64String($ImageData.body) - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK ContentType = $ImageData.headers.'Content-Type' Body = $Body diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserSettings.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserSettings.ps1 index 901678b7b6ea..df3cea078a04 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserSettings.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserSettings.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ListUserSettings { <# .FUNCTIONALITY @@ -8,34 +6,63 @@ function Invoke-ListUserSettings { Identity.User.Read #> param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $Username = ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json).userDetails try { $Table = Get-CippTable -tablename 'UserSettings' - $UserSettings = Get-CIPPAzDataTableEntity @Table -Filter "RowKey eq 'allUsers'" - if (!$UserSettings) { $UserSettings = Get-CIPPAzDataTableEntity @Table -Filter "RowKey eq '$Username'" } - $UserSettings = $UserSettings.JSON | ConvertFrom-Json -Depth 10 -ErrorAction SilentlyContinue + $UserSettings = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'UserSettings' and RowKey eq 'allUsers'" + if (!$UserSettings) { $UserSettings = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'UserSettings' and RowKey eq '$Username'" } + + try { + $UserSettings = $UserSettings.JSON | ConvertFrom-Json -Depth 10 -ErrorAction SilentlyContinue + } catch { + Write-Warning "Failed to convert UserSettings JSON: $($_.Exception.Message)" + } + + if (!$UserSettings) { + $UserSettings = [pscustomobject]@{ + direction = 'ltr' + paletteMode = 'light' + currentTheme = @{ value = 'light'; label = 'light' } + pinNav = $true + showDevtools = $false + customBranding = @{ + colour = '#F77F00' + logo = $null + } + } + } + + try { + $UserSpecificSettings = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'UserSettings' and RowKey eq '$Username'" + $UserSpecificSettings = $UserSpecificSettings.JSON | ConvertFrom-Json -Depth 10 -ErrorAction SilentlyContinue + } catch { + Write-Warning "Failed to convert UserSpecificSettings JSON: $($_.Exception.Message)" + } + #Get branding settings if ($UserSettings) { $brandingTable = Get-CippTable -tablename 'Config' - $BrandingSettings = Get-CIPPAzDataTableEntity @brandingTable -Filter "RowKey eq 'BrandingSettings'" + $BrandingSettings = Get-CIPPAzDataTableEntity @brandingTable -Filter "PartitionKey eq 'BrandingSettings' and RowKey eq 'BrandingSettings'" if ($BrandingSettings) { - $UserSettings | Add-Member -MemberType NoteProperty -Name 'BrandingSettings' -Value $BrandingSettings -Force | Out-Null + $UserSettings | Add-Member -MemberType NoteProperty -Name 'customBranding' -Value $BrandingSettings -Force | Out-Null } } + + if ($UserSpecificSettings) { + $UserSettings | Add-Member -MemberType NoteProperty -Name 'UserSpecificSettings' -Value $UserSpecificSettings -Force | Out-Null + } + $StatusCode = [HttpStatusCode]::OK $Results = $UserSettings } catch { $Results = "Function Error: $($_.Exception.Message)" $StatusCode = [HttpStatusCode]::BadRequest } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $Results }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserSigninLogs.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserSigninLogs.ps1 index 1804d4b4384a..298fb893da2f 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserSigninLogs.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserSigninLogs.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListUserSigninLogs { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ Function Invoke-ListUserSigninLogs { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $top = $Request.Query.top ? $Request.Query.top : 50 @@ -31,8 +24,7 @@ Function Invoke-ListUserSigninLogs { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @($Result) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserTrustedBlockedSenders.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserTrustedBlockedSenders.ps1 new file mode 100644 index 000000000000..96e89c7397f4 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserTrustedBlockedSenders.ps1 @@ -0,0 +1,55 @@ +function Invoke-ListUserTrustedBlockedSenders { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + $TenantFilter = $Request.Query.tenantFilter + $UserID = $Request.Query.UserID + $UserPrincipalName = $Request.Query.userPrincipalName + + try { + $Config = New-ExoRequest -Anchor $UserID -tenantid $TenantFilter -cmdlet 'Get-MailboxJunkEmailConfiguration' -cmdParams @{Identity = $UserID } + + $Result = [System.Collections.Generic.List[PSObject]]::new() + $Properties = @( + @{ Name = 'TrustedSendersAndDomains'; FriendlyName = 'Trusted Sender/Domain' }, + @{ Name = 'BlockedSendersAndDomains'; FriendlyName = 'Blocked Sender/Domain' } + ) + + foreach ($Prop in $Properties) { + if ($Config.$($Prop.Name)) { + foreach ($Value in $Config.$($Prop.Name)) { + if ($Value) { + $null = $Result.Add([PSCustomObject]@{ + UserPrincipalName = $UserPrincipalName + UserID = $UserID + Type = $Prop.FriendlyName + TypeProperty = $Prop.Name + Value = $Value + }) + } + } + } + } + + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to retrieve junk email configuration for $UserID : Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -tenant $TenantFilter -API $APIName -message $Result -Sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($Result) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUsers.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUsers.ps1 index 5e81ea1c684b..40928e896231 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUsers.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUsers.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListUsers { <# .FUNCTIONALITY @@ -9,12 +7,8 @@ Function Invoke-ListUsers { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - $ConvertTable = Import-Csv ConversionTable.csv | Sort-Object -Property 'guid' -Unique + $ModuleBase = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase + $ConvertTable = Import-Csv (Join-Path $ModuleBase 'lib\data\ConversionTable.csv') | Sort-Object -Property 'guid' -Unique # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter $GraphFilter = $Request.Query.graphFilter @@ -78,8 +72,7 @@ Function Invoke-ListUsers { @{ Name = 'LastSigninResult'; Expression = { $LastSignIn.status } }, @{ Name = 'LastSigninFailureReason'; Expression = { if ($LastSignIn.Id -eq 0) { 'Successfully signed in' } else { $LastSignIn.Id } } } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($GraphRequest) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-PatchUser.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-PatchUser.ps1 new file mode 100644 index 000000000000..c4c269b9c338 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-PatchUser.ps1 @@ -0,0 +1,103 @@ +function Invoke-PatchUser { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $HttpResponse = [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{'Results' = @("Default response, you should never see this.") } + } + + try { + # Handle array of user objects or single user object + $Users = if ($Request.Body -is [array]) { + $Request.Body + } else { + @($Request.Body) + } + + # Validate that all users have required properties + $InvalidUsers = $Users | Where-Object { + [string]::IsNullOrWhiteSpace($_.id) -or [string]::IsNullOrWhiteSpace($_.tenantFilter) + } + if ($InvalidUsers.Count -gt 0) { + $HttpResponse.StatusCode = [HttpStatusCode]::BadRequest + $HttpResponse.Body = @{'Results' = @('Failed to patch user(s). Some users are missing id or tenantFilter') } + } else { + # Group users by tenant filter + $UsersByTenant = $Users | Group-Object -Property tenantFilter + + $TotalSuccessCount = 0 + $AllErrorMessages = @() + + # Process each tenant separately + foreach ($TenantGroup in $UsersByTenant) { + $tenantFilter = $TenantGroup.Name + $TenantUsers = $TenantGroup.Group + + # Build bulk requests for this tenant + $int = 0 + $BulkRequests = foreach ($User in $TenantUsers) { + # Remove the id and tenantFilter properties from the body since they're not user properties + $PatchBody = $User | Select-Object -Property * -ExcludeProperty id, tenantFilter + + @{ + id = $int++ + method = 'PATCH' + url = "users/$($User.id)" + body = $PatchBody + 'headers' = @{ + 'Content-Type' = 'application/json' + } + } + } + + # Execute bulk request for this tenant + $BulkResults = New-GraphBulkRequest -tenantid $tenantFilter -Requests @($BulkRequests) + + # Process results for this tenant + for ($i = 0; $i -lt $BulkResults.Count; $i++) { + $result = $BulkResults[$i] + $user = $TenantUsers[$i] + + if ($result.status -eq 200 -or $result.status -eq 204) { + $TotalSuccessCount++ + Write-LogMessage -headers $Headers -API $APIName -tenant $tenantFilter -message "Successfully patched user $($user.id)" -Sev 'Info' + } else { + $errorMsg = if ($result.body.error.message) { + $result.body.error.message + } else { + "Unknown error (Status: $($result.status))" + } + $AllErrorMessages += "Failed to patch user $($user.id) in tenant $($tenantFilter): $errorMsg" + Write-LogMessage -headers $Headers -API $APIName -tenant $tenantFilter -message "Failed to patch user $($user.id). Error: $errorMsg" -Sev 'Error' + } + } + } + + # Build final response + if ($AllErrorMessages.Count -eq 0) { + $TenantCount = ($Users | Select-Object -Property tenantFilter -Unique).Count + $HttpResponse.Body = @{'Results' = @("Successfully patched $TotalSuccessCount user$(if($TotalSuccessCount -ne 1){'s'}) across $TenantCount tenant$(if($TenantCount -ne 1){'s'})") } + } else { + $HttpResponse.StatusCode = [HttpStatusCode]::BadRequest + $HttpResponse.Body = @{'Results' = $AllErrorMessages + @("Successfully patched $TotalSuccessCount of $($Users.Count) users") } + } + } + + } catch { + $HttpResponse.StatusCode = [HttpStatusCode]::InternalServerError + $HttpResponse.Body = @{'Results' = @("Failed to patch user(s). Error: $($_.Exception.Message)") } + } + + return $HttpResponse +} \ No newline at end of file diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveDeletedObject.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveDeletedObject.ps1 index f41f79d68485..39245f636391 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveDeletedObject.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveDeletedObject.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-RemoveDeletedObject { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-RemoveDeletedObject { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter @@ -39,8 +37,7 @@ Function Invoke-RemoveDeletedObject { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{'Results' = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveJITAdminTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveJITAdminTemplate.ps1 new file mode 100644 index 000000000000..e0ac56a8f294 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveJITAdminTemplate.ps1 @@ -0,0 +1,47 @@ +function Invoke-RemoveJITAdminTemplate { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.Role.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + try { + $ID = $Request.Query.ID ?? $Request.Body.ID + + if ([string]::IsNullOrWhiteSpace($ID)) { + throw 'ID is required' + } + + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'JITAdminTemplate' and RowKey eq '$ID'" + $Template = Get-CIPPAzDataTableEntity @Table -Filter $Filter + + if ($Template) { + Remove-AzDataTableEntity @Table -Entity $Template + $Result = "Successfully deleted JIT Admin Template with ID: $ID" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } else { + $Result = "JIT Admin Template with ID $ID not found" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Warning' + $StatusCode = [HttpStatusCode]::NotFound + } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to delete JIT Admin Template: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = "$Result" } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveTrustedBlockedSender.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveTrustedBlockedSender.ps1 new file mode 100644 index 000000000000..e9607e4cf27c --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveTrustedBlockedSender.ps1 @@ -0,0 +1,41 @@ +function Invoke-RemoveTrustedBlockedSender { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + # Interact with the query or body of the request + $TenantFilter = $Request.Body.tenantFilter + $TypeProperty = $Request.Body.typeProperty + $Value = $Request.Body.value + $UserPrincipalName = $Request.Body.userPrincipalName + + try { + $removeParams = @{ + UserPrincipalName = $UserPrincipalName + TenantFilter = $TenantFilter + APIName = $APIName + Headers = $Headers + TypeProperty = $TypeProperty + Value = $Value + } + $Results = Remove-CIPPTrustedBlockedSender @removeParams + $StatusCode = [HttpStatusCode]::OK + } catch { + $Results = $_.Exception.Message + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ 'Results' = $Results } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveUser.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveUser.ps1 index 6b5db1ad6733..b6df383c479e 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveUser.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveUser.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-RemoveUser { <# .FUNCTIONALITY @@ -12,31 +10,24 @@ Function Invoke-RemoveUser { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter $UserID = $Request.Query.ID ?? $Request.Body.ID - $UserPrincipalName = $Request.Query.userPrincipalName ?? $Request.Body.userPrincipalName + $Username = $Request.Query.userPrincipalName ?? $Request.Body.userPrincipalName if (!$UserID) { exit } try { - $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($UserID)" -type DELETE -tenant $TenantFilter - $Result = "Successfully deleted user with ID: '$UserID'" - if ($UserPrincipalName) { $Result += " and User Principal Name: '$UserPrincipalName'" } - Write-LogMessage -Headers $Headers -API $APIName -message $Result -Sev 'Info' -tenant $TenantFilter + $Result = Remove-CIPPUser -UserID $UserID -Username $Username -TenantFilter $TenantFilter -Headers $Headers -APIName $APIName $StatusCode = [HttpStatusCode]::OK } catch { - $ErrorMessage = Get-CippException -Exception $_ - $Result = "Failed to delete user $($UserID). $($ErrorMessage.NormalizedError)" - if ($UserPrincipalName) { $Result += " User Principal Name: '$($UserPrincipalName)'" } - Write-LogMessage -Headers $Headers -API $APIName -message $Result -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + $Result = $_.Exception.Message $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ 'Results' = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveUserDefaultTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveUserDefaultTemplate.ps1 new file mode 100644 index 000000000000..c97f52617d00 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveUserDefaultTemplate.ps1 @@ -0,0 +1,42 @@ +function Invoke-RemoveUserDefaultTemplate { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + try { + $ID = $Request.Query.ID ?? $Request.Body.ID + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'UserDefaultTemplate' and RowKey eq '$ID'" + $Template = Get-CIPPAzDataTableEntity @Table -Filter $Filter + + if ($Template) { + Remove-AzDataTableEntity @Table -Entity $Template + $Result = "Successfully deleted User Default Template with ID: $ID" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } else { + $Result = "User Default Template with ID $ID not found" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Warning' + $StatusCode = [HttpStatusCode]::NotFound + } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to delete User Default Template: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = "$Result" } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Invoke-ExecSetCloudManaged.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Invoke-ExecSetCloudManaged.ps1 new file mode 100644 index 000000000000..399a8a1972e8 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Invoke-ExecSetCloudManaged.ps1 @@ -0,0 +1,43 @@ +function Invoke-ExecSetCloudManaged { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.DirSync.ReadWrite + .DESCRIPTION + Sets the cloud-managed status of a user, group, or contact. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Body.tenantFilter + $GroupID = $Request.Body.ID + $DisplayName = $Request.Body.displayName + $Type = $Request.Body.type + $IsCloudManaged = [System.Convert]::ToBoolean($Request.Body.isCloudManaged) + + try { + $Params = @{ + Id = $GroupID + TenantFilter = $TenantFilter + DisplayName = $DisplayName + Type = $Type + IsCloudManaged = $IsCloudManaged + APIName = $APIName + Headers = $Headers + } + $Result = Set-CIPPCloudManaged @Params + $StatusCode = [HttpStatusCode]::OK + } catch { + $Result = "$($_.Exception.Message)" + $StatusCode = [HttpStatusCode]::InternalServerError + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListAzureADConnectStatus.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListAzureADConnectStatus.ps1 index 5c664bf6e713..02275366ff54 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListAzureADConnectStatus.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListAzureADConnectStatus.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListAzureADConnectStatus { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ Function Invoke-ListAzureADConnectStatus { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $TenantFilter = $Request.Query.TenantFilter $DataToReturn = $Request.Query.DataToReturn Write-Host "DataToReturn: $DataToReturn" @@ -61,17 +54,17 @@ Function Invoke-ListAzureADConnectStatus { } } if ($DataToReturn -eq 'AzureADConnectSettings') { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $AzureADConnectSettings }) } elseif ($DataToReturn -eq 'AzureADObjectsInError') { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($ObjectsInError) }) } else { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($FinalObject) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListBasicAuth.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListBasicAuth.ps1 index b0500ca9b5ac..91ae1a2c4d8d 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListBasicAuth.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListBasicAuth.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListBasicAuth { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-ListBasicAuth { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # XXX; This function seems to be unused in the frontend. -Bobby @@ -31,15 +29,13 @@ Function Invoke-ListBasicAuth { $response = $GraphRequest Write-LogMessage -headers $Headers -API $APIName -message 'Retrieved basic authentication report' -Sev 'Debug' -tenant $TenantFilter - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($response) }) } catch { Write-LogMessage -headers $Headers -API $APIName -message "Failed to retrieve basic authentication report: $($_.Exception.message) " -Sev 'Error' -tenant $TenantFilter - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = '500' Body = $(Get-NormalizedError -message $_.Exception.message) }) @@ -68,13 +64,13 @@ Function Invoke-ListBasicAuth { MetaData = 'Loading data for all tenants. Please check back in 10 minutes' } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($GraphRequest) }) } else { $GraphRequest = $Rows - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($GraphRequest) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListInactiveAccounts.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListInactiveAccounts.ps1 index 55ec112e98d4..a7f74435d3dc 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListInactiveAccounts.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListInactiveAccounts.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListInactiveAccounts { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ Function Invoke-ListInactiveAccounts { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Convert the TenantFilter parameter to a list of tenant IDs for AllTenants or a single tenant ID $TenantFilter = $Request.Query.tenantFilter if ($TenantFilter -eq 'AllTenants') { @@ -31,8 +24,7 @@ Function Invoke-ListInactiveAccounts { $GraphRequest = "Could not connect to Azure Lighthouse API: $($ErrorMessage)" } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @($GraphRequest) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListMFAUsers.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListMFAUsers.ps1 index 3aebedae7836..8dd0274fe7f9 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListMFAUsers.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListMFAUsers.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ListMFAUsers { +function Invoke-ListMFAUsers { <# .FUNCTIONALITY Entrypoint @@ -9,59 +7,85 @@ Function Invoke-ListMFAUsers { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter + $UseReportDB = $Request.Query.UseReportDB - if ($TenantFilter -ne 'AllTenants') { - $GraphRequest = Get-CIPPMFAState -TenantFilter $TenantFilter - } else { - $Table = Get-CIPPTable -TableName cachemfa - - $Rows = Get-CIPPAzDataTableEntity @Table | Where-Object -Property Timestamp -GT (Get-Date).AddHours(-2) - if (!$Rows) { - $TenantList = Get-Tenants -IncludeErrors - $Queue = New-CippQueueEntry -Name 'MFA Users - All Tenants' -Link '/identity/reports/mfa-report?customerId=AllTenants' -TotalTasks ($TenantList | Measure-Object).Count - Write-Information ($Queue | ConvertTo-Json) - $GraphRequest = [PSCustomObject]@{ - UPN = 'Loading data for all tenants. Please check back in a few minutes' - } - $Batch = $TenantList | ForEach-Object { - $_ | Add-Member -NotePropertyName FunctionName -NotePropertyValue 'ListMFAUsersQueue' - $_ | Add-Member -NotePropertyName QueueId -NotePropertyValue $Queue.RowKey - $_ - } - if (($Batch | Measure-Object).Count -gt 0) { - $InputObject = [PSCustomObject]@{ - OrchestratorName = 'ListMFAUsersOrchestrator' - Batch = @($Batch) - SkipLog = $true - } - #Write-Host ($InputObject | ConvertTo-Json) - $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) - Write-Host "Started permissions orchestration with ID = '$InstanceId'" + try { + # If UseReportDB is specified, retrieve from report database + if ($UseReportDB -eq 'true') { + try { + $GraphRequest = Get-CIPPMFAStateReport -TenantFilter $TenantFilter -ErrorAction Stop + $StatusCode = [HttpStatusCode]::OK + } catch { + Write-Host "Error retrieving MFA state from report database: $($_.Exception.Message)" + $StatusCode = [HttpStatusCode]::InternalServerError + $GraphRequest = $_.Exception.Message } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + }) + } + + # Original cache table logic + if ($TenantFilter -ne 'AllTenants') { + $GraphRequest = Get-CIPPMFAState -TenantFilter $TenantFilter } else { - $Rows = foreach ($Row in $Rows) { - if ($Row.CAPolicies) { - $Row.CAPolicies = try { $Row.CAPolicies | ConvertFrom-Json } catch { $Row.CAPolicies } + $Table = Get-CIPPTable -TableName cachemfa + + $Rows = Get-CIPPAzDataTableEntity @Table | Where-Object -Property Timestamp -GT (Get-Date).AddHours(-2) + if (!$Rows) { + $TenantList = Get-Tenants -IncludeErrors + $Queue = New-CippQueueEntry -Name 'MFA Users - All Tenants' -Link '/identity/reports/mfa-report?customerId=AllTenants' -TotalTasks ($TenantList | Measure-Object).Count + Write-Information ($Queue | ConvertTo-Json) + $GraphRequest = [PSCustomObject]@{ + UPN = 'Loading data for all tenants. Please check back in a few minutes' + } + $Batch = $TenantList | ForEach-Object { + $_ | Add-Member -NotePropertyName FunctionName -NotePropertyValue 'ListMFAUsersQueue' + $_ | Add-Member -NotePropertyName QueueId -NotePropertyValue $Queue.RowKey + $_ } - if ($Row.MFAMethods) { - $Row.MFAMethods = try { $Row.MFAMethods | ConvertFrom-Json } catch { $Row.MFAMethods } + if (($Batch | Measure-Object).Count -gt 0) { + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'ListMFAUsersOrchestrator' + Batch = @($Batch) + SkipLog = $true + } + #Write-Host ($InputObject | ConvertTo-Json) + $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + Write-Host "Started permissions orchestration with ID = '$InstanceId'" } - $Row + } else { + $Rows = foreach ($Row in $Rows) { + if ($Row.CAPolicies -and $Row.CAPolicies -is [string]) { + $Row.CAPolicies = try { $Row.CAPolicies | ConvertFrom-Json } catch { @() } + } elseif (-not $Row.CAPolicies) { + $Row.CAPolicies = @() + } + if ($Row.MFAMethods -and $Row.MFAMethods -is [string]) { + $Row.MFAMethods = try { $Row.MFAMethods | ConvertFrom-Json } catch { @() } + } elseif (-not $Row.MFAMethods) { + $Row.MFAMethods = @() + } + $Row + } + $GraphRequest = $Rows } - $GraphRequest = $Rows } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode Body = @($GraphRequest) }) + } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListSignIns.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListSignIns.ps1 index a0ebe5472360..9139264ad86d 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListSignIns.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListSignIns.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListSignIns { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-ListSignIns { $APINAME = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APINAME -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter @@ -46,15 +44,13 @@ Function Invoke-ListSignIns { $response = $response | Group-Object -Property userPrincipalName | Where-Object { $_.Count -ge $FailureThreshold } | Select-Object -ExpandProperty Group } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($response) }) } catch { Write-LogMessage -headers $Request.Headers -API $APINAME -message "Failed to retrieve Sign In report: $($_.Exception.message) " -Sev 'Error' -tenant $TenantFilter - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = '500' Body = $(Get-NormalizedError -message $_.Exception.message) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-AddTestReport.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-AddTestReport.ps1 new file mode 100644 index 000000000000..c0038feec179 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-AddTestReport.ps1 @@ -0,0 +1,60 @@ +function Invoke-AddTestReport { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Dashboard.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $TriggerMetadata.FunctionName + Write-LogMessage -user $Request.Headers.'x-ms-client-principal' -API $APIName -message 'Accessed this API' -Sev 'Debug' + + try { + $Body = $Request.Body + + # Validate required fields + if ([string]::IsNullOrEmpty($Body.name)) { + throw 'Report name is required' + } + + # Generate a unique ID + $ReportId = New-Guid + $IdentityTests = $Body.IdentityTests ? ($Body.IdentityTests | ConvertTo-Json -Compress) : '[]' + $DevicesTests = $Body.DevicesTests ? ($Body.DevicesTests | ConvertTo-Json -Compress) : '[]' + + # Create report object + $Report = [PSCustomObject]@{ + PartitionKey = 'Report' + RowKey = [string]$ReportId + name = [string]$Body.name + description = [string]$Body.description + version = '1.0' + IdentityTests = [string]$IdentityTests + DevicesTests = [string]$DevicesTests + CreatedAt = [string](Get-Date).ToString('o') + } + + # Save to table + $Table = Get-CippTable -tablename 'CippReportTemplates' + Add-CIPPAzDataTableEntity -Entity $Report @Table + $Body = [PSCustomObject]@{ + Results = 'Successfully created custom report' + ReportId = $ReportId + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -user $Request.Headers.'x-ms-client-principal' -API $APIName -message "Failed to create report: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + $Body = [PSCustomObject]@{ + Results = "Failed to create report: $($ErrorMessage.NormalizedError)" + } + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = ConvertTo-Json -InputObject $Body -Depth 10 + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-DeleteTestReport.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-DeleteTestReport.ps1 new file mode 100644 index 000000000000..ed502f467c1e --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-DeleteTestReport.ps1 @@ -0,0 +1,37 @@ +function Invoke-DeleteTestReport { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Dashboard.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $TriggerMetadata.FunctionName + Write-LogMessage -user $Request.Headers.'x-ms-client-principal' -API $APIName -message 'Accessed this API' -Sev 'Debug' + + try { + $ReportId = $Request.Body.ReportId + $Table = Get-CippTable -tablename 'CippReportTemplates' + $ExistingReport = Get-CIPPAzDataTableEntity @Table -Filter "RowKey eq '$ReportId'" + Remove-AzDataTableEntity @Table -Entity $ExistingReport + + $Body = [PSCustomObject]@{ + Results = 'Successfully deleted custom report' + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -user $Request.Headers.'x-ms-client-principal' -API $APIName -message "Failed to delete report: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + $Body = [PSCustomObject]@{ + Results = "Failed to delete report: $($ErrorMessage.NormalizedError)" + } + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = ConvertTo-Json -InputObject $Body -Depth 10 + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ExecTestRun.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ExecTestRun.ps1 new file mode 100644 index 000000000000..1a228cff5dc3 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ExecTestRun.ps1 @@ -0,0 +1,49 @@ +function Invoke-ExecTestRun { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Tests.ReadWrite + #> + param($Request, $TriggerMetadata) + + $APIName = $TriggerMetadata.FunctionName + Write-LogMessage -user $request.headers.'x-ms-client-principal' -API $APINAME -message 'Accessed this API' -Sev 'Debug' + + try { + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Starting data collection and test run for tenant: $TenantFilter" -sev Info + $Batch = @( + @{ + FunctionName = 'CIPPDBCacheData' + TenantFilter = $TenantFilter + QueueId = $Queue.RowKey + QueueName = "Cache - $TenantFilter" + TestRun = $true + } + ) + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'TestDataCollectionAndRun' + Batch = $Batch + SkipLog = $false + } + + $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + + $StatusCode = [HttpStatusCode]::OK + $Body = [PSCustomObject]@{ Results = "Successfully started data collection and test run for $TenantFilter" } + + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Data collection and test run orchestration started. Instance ID: $InstanceId" -sev Info + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Failed to start data collection/test run: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::BadRequest + $Body = @{ Message = "Failed to start data collection/test run for $TenantFilter" } + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ListAvailableTests.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ListAvailableTests.ps1 new file mode 100644 index 000000000000..15c26f800b8f --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ListAvailableTests.ps1 @@ -0,0 +1,86 @@ +function Invoke-ListAvailableTests { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.Dashboard.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $TriggerMetadata.FunctionName + Write-LogMessage -user $Request.Headers.'x-ms-client-principal' -API $APIName -message 'Accessed this API' -Sev 'Debug' + + try { + # Get all test folders + $TestFolders = Get-ChildItem 'Modules\CIPPCore\Public\Tests' -Directory + + # Build identity tests array + $IdentityTests = foreach ($TestFolder in $TestFolders) { + $IdentityTestFiles = Get-ChildItem "$($TestFolder.FullName)\Identity\*.ps1" -ErrorAction SilentlyContinue + foreach ($TestFile in $IdentityTestFiles) { + # Extract test ID from filename (e.g., Invoke-CippTestZTNA21772.ps1 -> ZTNA21772) + if ($TestFile.BaseName -match 'Invoke-CippTest(.+)$') { + $TestId = $Matches[1] + + # Try to get test metadata from the file + $TestContent = Get-Content $TestFile.FullName -Raw + $TestName = $TestId + + # Try to extract Synopsis from comment-based help + if ($TestContent -match '\.SYNOPSIS\s+(.+?)(?=\s+\.|\s+#>|\s+\[)') { + $TestName = $Matches[1].Trim() + } + + [PSCustomObject]@{ + id = $TestId + name = $TestName + category = 'Identity' + testFolder = $TestFolder.Name + } + } + } + } + + # Build device tests array + $DevicesTests = foreach ($TestFolder in $TestFolders) { + $DeviceTestFiles = Get-ChildItem "$($TestFolder.FullName)\Devices\*.ps1" -ErrorAction SilentlyContinue + foreach ($TestFile in $DeviceTestFiles) { + if ($TestFile.BaseName -match 'Invoke-CippTest(.+)$') { + $TestId = $Matches[1] + + $TestContent = Get-Content $TestFile.FullName -Raw + $TestName = $TestId + + if ($TestContent -match '\.SYNOPSIS\s+(.+?)(?=\s+\.|\s+#>|\s+\[)') { + $TestName = $Matches[1].Trim() + } + + [PSCustomObject]@{ + id = $TestId + name = $TestName + category = 'Devices' + testFolder = $TestFolder.Name + } + } + } + } + + $Body = [PSCustomObject]@{ + IdentityTests = $IdentityTests + DevicesTests = $DevicesTests + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Body = [PSCustomObject]@{ + Results = "Failed to list available tests: $($ErrorMessage.NormalizedError)" + } + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = ConvertTo-Json -InputObject $Body -Depth 10 + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ListTestReports.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ListTestReports.ps1 new file mode 100644 index 000000000000..a0d0f4ee5869 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ListTestReports.ps1 @@ -0,0 +1,69 @@ +function Invoke-ListTestReports { + <# + .SYNOPSIS + Lists all available test reports from JSON files and database + + .FUNCTIONALITY + Entrypoint,AnyTenant + + .ROLE + Tenant.Reports.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $TriggerMetadata.FunctionName + Write-LogMessage -user $request.headers.'x-ms-client-principal' -API $APINAME -message 'Accessed this API' -Sev 'Debug' + + try { + # Get reports from JSON files in test folders + $FileReports = Get-ChildItem 'Modules\CIPPCore\Public\Tests\*\report.json' -ErrorAction SilentlyContinue | ForEach-Object { + try { + $ReportContent = Get-Content $_.FullName -Raw | ConvertFrom-Json + $FolderName = $_.Directory.Name + [PSCustomObject]@{ + id = $FolderName.ToLower() + name = $ReportContent.name ?? $FolderName + description = $ReportContent.description ?? '' + version = $ReportContent.version ?? '1.0' + source = 'file' + type = $FolderName + } + } catch { + Write-LogMessage -API $APIName -message "Error reading report.json from $($_.Directory.Name): $($_.Exception.Message)" -sev Warning + } + } + + # Get custom reports from CippReportTemplates table + $ReportTable = Get-CippTable -tablename 'CippReportTemplates' + $Filter = "PartitionKey eq 'Report'" + $CustomReports = Get-CIPPAzDataTableEntity @ReportTable -Filter $Filter + + $DatabaseReports = foreach ($Report in $CustomReports) { + [PSCustomObject]@{ + id = $Report.RowKey + name = $Report.Name ?? 'Custom Report' + description = $Report.Description ?? '' + version = $Report.Version ?? '1.0' + source = 'database' + type = 'custom' + } + } + + $Reports = @($FileReports) + @($DatabaseReports) + + $StatusCode = [HttpStatusCode]::OK + $Body = @($Reports) + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API $APIName -message "Error retrieving test reports: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::BadRequest + $Body = @{ Error = $ErrorMessage.NormalizedError } + } + + return([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = ConvertTo-Json -InputObject $Body -Depth 10 -Compress + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ListTests.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ListTests.ps1 new file mode 100644 index 000000000000..421a6a4ca38e --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ListTests.ps1 @@ -0,0 +1,162 @@ +function Invoke-ListTests { + <# + .SYNOPSIS + Lists tests for a tenant, optionally filtered by report ID + + .FUNCTIONALITY + Entrypoint + + .ROLE + Tenant.Reports.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $TriggerMetadata.FunctionName + + try { + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $ReportId = $Request.Query.reportId ?? $Request.Body.reportId + + if (-not $TenantFilter) { + throw 'TenantFilter parameter is required' + } + + $TestResultsData = Get-CIPPTestResults -TenantFilter $TenantFilter + + $IdentityTotal = 0 + $DevicesTotal = 0 + $IdentityTests = @() + $DevicesTests = @() + + if ($ReportId) { + $ReportJsonFiles = Get-ChildItem 'Modules\CIPPCore\Public\Tests\*\report.json' -ErrorAction SilentlyContinue + $ReportFound = $false + + $MatchingReport = $ReportJsonFiles | Where-Object { $_.Directory.Name.ToLower() -eq $ReportId.ToLower() } | Select-Object -First 1 + + if ($MatchingReport) { + try { + $ReportContent = Get-Content $MatchingReport.FullName -Raw | ConvertFrom-Json + if ($ReportContent.IdentityTests) { + $IdentityTests = $ReportContent.IdentityTests + $IdentityTotal = @($IdentityTests).Count + } + if ($ReportContent.DevicesTests) { + $DevicesTests = $ReportContent.DevicesTests + $DevicesTotal = @($DevicesTests).Count + } + $ReportFound = $true + } catch { + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Error reading report.json: $($_.Exception.Message)" -sev Warning + } + } + + # Fall back to database if not found in JSON files + if (-not $ReportFound) { + $ReportTable = Get-CippTable -tablename 'CippReportTemplates' + $Filter = "PartitionKey eq 'Report' and RowKey eq '{0}'" -f $ReportId + $ReportTemplate = Get-CIPPAzDataTableEntity @ReportTable -Filter $Filter + + if ($ReportTemplate) { + if ($ReportTemplate.identityTests) { + $IdentityTests = $ReportTemplate.identityTests | ConvertFrom-Json + $IdentityTotal = @($IdentityTests).Count + } + + if ($ReportTemplate.DevicesTests) { + $DevicesTests = $ReportTemplate.DevicesTests | ConvertFrom-Json + $DevicesTotal = @($DevicesTests).Count + } + $ReportFound = $true + } else { + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Report template '$ReportId' not found" -sev Warning + } + } + + # Filter tests if report was found + if ($ReportFound) { + $AllReportTests = $IdentityTests + $DevicesTests + # Use HashSet for O(1) lookup performance + $TestLookup = [System.Collections.Generic.HashSet[string]]::new() + foreach ($test in $AllReportTests) { + [void]$TestLookup.Add($test) + } + $FilteredTests = $TestResultsData.TestResults | Where-Object { $TestLookup.Contains($_.RowKey) } + $TestResultsData.TestResults = @($FilteredTests) + } else { + $TestResultsData.TestResults = @() + } + } else { + $IdentityTotal = @($TestResultsData.TestResults | Where-Object { $_.TestType -eq 'Identity' }).Count + $DevicesTotal = @($TestResultsData.TestResults | Where-Object { $_.TestType -eq 'Devices' }).Count + } + + $IdentityResults = $TestResultsData.TestResults | Where-Object { $_.TestType -eq 'Identity' } + $DeviceResults = $TestResultsData.TestResults | Where-Object { $_.TestType -eq 'Devices' } + + # Add descriptions from markdown files to each test result + foreach ($TestResult in $TestResultsData.TestResults) { + $MdFile = Get-ChildItem -Path 'Modules\CIPPCore\Public\Tests' -Filter "*$($TestResult.RowKey).md" -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1 + if ($MdFile) { + try { + $MdContent = Get-Content $MdFile.FullName -Raw -ErrorAction SilentlyContinue + if ($MdContent) { + $Description = ($MdContent -split '')[0].Trim() + $Description = ($Description -split '%TestResult%')[0].Trim() + $TestResult | Add-Member -NotePropertyName 'Description' -NotePropertyValue $Description -Force + } + } catch { + #Test + } + } + } + + $TestCounts = @{ + Identity = @{ + Passed = @($IdentityResults | Where-Object { $_.Status -eq 'Passed' }).Count + Failed = @($IdentityResults | Where-Object { $_.Status -eq 'Failed' }).Count + Investigate = @($IdentityResults | Where-Object { $_.Status -eq 'Investigate' }).Count + Skipped = @($IdentityResults | Where-Object { $_.Status -eq 'Skipped' }).Count + Total = $IdentityTotal + } + Devices = @{ + Passed = @($DeviceResults | Where-Object { $_.Status -eq 'Passed' }).Count + Failed = @($DeviceResults | Where-Object { $_.Status -eq 'Failed' }).Count + Investigate = @($DeviceResults | Where-Object { $_.Status -eq 'Investigate' }).Count + Skipped = @($DeviceResults | Where-Object { $_.Status -eq 'Skipped' }).Count + Total = $DevicesTotal + } + } + + $TestResultsData | Add-Member -NotePropertyName 'TestCounts' -NotePropertyValue $TestCounts -Force + + $SecureScoreData = New-CIPPDbRequest -TenantFilter $TenantFilter -Type 'SecureScore' + if ($SecureScoreData) { + $TestResultsData | Add-Member -NotePropertyName 'SecureScore' -NotePropertyValue @($SecureScoreData) -Force + } + $MFAStateData = New-CIPPDbRequest -TenantFilter $TenantFilter -Type 'MFAState' + if ($MFAStateData) { + $TestResultsData | Add-Member -NotePropertyName 'MFAState' -NotePropertyValue @($MFAStateData) -Force + } + + $LicenseData = New-CIPPDbRequest -TenantFilter $TenantFilter -Type 'LicenseOverview' + if ($LicenseData) { + $TestResultsData | Add-Member -NotePropertyName 'LicenseData' -NotePropertyValue @($LicenseData) -Force + } + + $StatusCode = [HttpStatusCode]::OK + $Body = $TestResultsData + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Error retrieving tests: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::BadRequest + $Body = @{ Error = $ErrorMessage.NormalizedError } + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/New-CippCoreRequest.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/New-CippCoreRequest.ps1 new file mode 100644 index 000000000000..70586323cd32 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/New-CippCoreRequest.ps1 @@ -0,0 +1,214 @@ +using namespace System.Net +using namespace Microsoft.Azure.Functions.PowerShellWorker +function New-CippCoreRequest { + <# + .SYNOPSIS + Main entrypoint for all HTTP triggered functions in CIPP + .DESCRIPTION + This function is the main entry point for all HTTP triggered functions in CIPP. It routes requests to the appropriate function based on the CIPPEndpoint parameter in the request. + .FUNCTIONALITY + Internal + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param($Request, $TriggerMetadata) + + # Initialize per-request timing + $HttpTimings = @{} + $HttpTotalStopwatch = [System.Diagnostics.Stopwatch]::StartNew() + + # Initialize AsyncLocal storage for thread-safe per-invocation context + if (-not $script:CippInvocationIdStorage) { + $script:CippInvocationIdStorage = [System.Threading.AsyncLocal[string]]::new() + } + if (-not $script:CippAllowedTenantsStorage) { + $script:CippAllowedTenantsStorage = [System.Threading.AsyncLocal[object]]::new() + } + if (-not $script:CippAllowedGroupsStorage) { + $script:CippAllowedGroupsStorage = [System.Threading.AsyncLocal[object]]::new() + } + if (-not $script:CippUserRolesStorage) { + $script:CippUserRolesStorage = [System.Threading.AsyncLocal[hashtable]]::new() + } + + # Initialize user roles cache for this request + if (-not $script:CippUserRolesStorage.Value) { + $script:CippUserRolesStorage.Value = @{} + } + + # Set InvocationId in AsyncLocal storage for console logging correlation + if ($global:TelemetryClient -and $TriggerMetadata.InvocationId) { + $script:CippInvocationIdStorage.Value = $TriggerMetadata.InvocationId + } + + $FunctionName = 'Invoke-{0}' -f $Request.Params.CIPPEndpoint + Write-Information "API Endpoint: $($Request.Params.CIPPEndpoint) | Frontend Version: $($Request.Headers.'X-CIPP-Version' ?? 'Not specified')" + + if ($Request.Headers.'X-CIPP-Version') { + $Table = Get-CippTable -tablename 'Version' + $FrontendVer = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'Version' and RowKey eq 'frontend'" + + if (!$FrontendVer -or ([semver]$FrontendVer.Version -lt [semver]$Request.Headers.'X-CIPP-Version')) { + Add-CIPPAzDataTableEntity @Table -Entity ([pscustomobject]@{ + PartitionKey = 'Version' + RowKey = 'frontend' + Version = $Request.Headers.'X-CIPP-Version' + }) -Force + } elseif ([semver]$FrontendVer.Version -gt [semver]$Request.Headers.'X-CIPP-Version') { + Write-Warning "Client version $($Request.Headers.'X-CIPP-Version') is older than the current frontend version $($FrontendVer.Version)" + } + } + + $HttpTrigger = @{ + Request = [pscustomobject]($Request) + TriggerMetadata = $TriggerMetadata + } + + if ($PSCmdlet.ShouldProcess("Processing request for $($Request.Params.CIPPEndpoint)")) { + # Set script scope variables for Graph API to indicate HTTP request/high priority + $script:XMsThrottlePriority = 'high' + + if ((Get-Command -Name $FunctionName -ErrorAction SilentlyContinue) -or $FunctionName -eq 'Invoke-Me') { + try { + $swAccess = [System.Diagnostics.Stopwatch]::StartNew() + $Access = Test-CIPPAccess -Request $Request + $swAccess.Stop() + $HttpTimings['AccessCheck'] = $swAccess.Elapsed.TotalMilliseconds + if ($FunctionName -eq 'Invoke-Me') { + $HttpTotalStopwatch.Stop() + $HttpTimings['Total'] = $HttpTotalStopwatch.Elapsed.TotalMilliseconds + $HttpTimingsRounded = [ordered]@{} + foreach ($Key in ($HttpTimings.Keys | Sort-Object)) { $HttpTimingsRounded[$Key] = [math]::Round($HttpTimings[$Key], 2) } + Write-Debug "#### HTTP Request Timings #### $($HttpTimingsRounded | ConvertTo-Json -Compress)" + return $Access + } + } catch { + Write-Information "Access denied for $FunctionName : $($_.Exception.Message)" + $HttpTotalStopwatch.Stop() + $HttpTimings['Total'] = $HttpTotalStopwatch.Elapsed.TotalMilliseconds + $HttpTimingsRounded = [ordered]@{} + foreach ($Key in ($HttpTimings.Keys | Sort-Object)) { $HttpTimingsRounded[$Key] = [math]::Round($HttpTimings[$Key], 2) } + Write-Debug "#### HTTP Request Timings #### $($HttpTimingsRounded | ConvertTo-Json -Compress)" + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::Forbidden + Body = $_.Exception.Message + }) + } + $swTenants = [System.Diagnostics.Stopwatch]::StartNew() + $AllowedTenants = Test-CippAccess -Request $Request -TenantList + $swTenants.Stop() + $HttpTimings['AllowedTenants'] = $swTenants.Elapsed.TotalMilliseconds + + $swGroups = [System.Diagnostics.Stopwatch]::StartNew() + $AllowedGroups = Test-CippAccess -Request $Request -GroupList + $swGroups.Stop() + $HttpTimings['AllowedGroups'] = $swGroups.Elapsed.TotalMilliseconds + + if ($AllowedTenants -notcontains 'AllTenants') { + Write-Warning 'Limiting tenant access' + $script:CippAllowedTenantsStorage.Value = $AllowedTenants + } + if ($AllowedGroups -notcontains 'AllGroups') { + Write-Warning 'Limiting group access' + $script:CippAllowedGroupsStorage.Value = $AllowedGroups + } + + try { + Write-Information "Access: $Access" + Write-LogMessage -headers $Headers -API $Request.Params.CIPPEndpoint -message 'Accessed this API' -Sev 'Debug' + if ($Access) { + # Prepare telemetry metadata for HTTP API call + $metadata = @{ + Endpoint = $Request.Params.CIPPEndpoint + FunctionName = $FunctionName + Method = $Request.Method + TriggerType = 'HTTP' + } + + # Add tenant filter if present + if ($Request.Query.TenantFilter) { + $metadata['Tenant'] = $Request.Query.TenantFilter + } elseif ($Request.Body.TenantFilter) { + $metadata['Tenant'] = $Request.Body.TenantFilter + } + + # Add user info if available + if ($Request.Headers.'x-ms-client-principal-name') { + $metadata['User'] = $Request.Headers.'x-ms-client-principal-name' + } + + # Wrap the API call execution with telemetry + $swInvoke = [System.Diagnostics.Stopwatch]::StartNew() + $Response = Measure-CippTask -TaskName $Request.Params.CIPPEndpoint -Metadata $metadata -Script { & $FunctionName @HttpTrigger } + $swInvoke.Stop() + $HttpTimings['InvokeEndpoint'] = $swInvoke.Elapsed.TotalMilliseconds + + # Filter to only return HttpResponseContext objects + $HttpResponse = $Response | Where-Object { $_.PSObject.TypeNames -eq 'Microsoft.Azure.Functions.PowerShellWorker.HttpResponseContext' } + if ($HttpResponse) { + # Return the first valid HttpResponseContext found + $HttpTotalStopwatch.Stop() + $HttpTimings['Total'] = $HttpTotalStopwatch.Elapsed.TotalMilliseconds + $HttpTimingsRounded = [ordered]@{} + foreach ($Key in ($HttpTimings.Keys | Sort-Object)) { $HttpTimingsRounded[$Key] = [math]::Round($HttpTimings[$Key], 2) } + Write-Debug "#### HTTP Request Timings #### $($HttpTimingsRounded | ConvertTo-Json -Compress)" + return ([HttpResponseContext]($HttpResponse | Select-Object -First 1)) + } else { + # If no valid response context found, create a default success response + if ($Response.PSObject.Properties.Name -contains 'StatusCode' -and $Response.PSObject.Properties.Name -contains 'Body') { + $HttpTotalStopwatch.Stop() + $HttpTimings['Total'] = $HttpTotalStopwatch.Elapsed.TotalMilliseconds + $HttpTimingsRounded = [ordered]@{} + foreach ($Key in ($HttpTimings.Keys | Sort-Object)) { $HttpTimingsRounded[$Key] = [math]::Round($HttpTimings[$Key], 2) } + Write-Debug "#### HTTP Request Timings #### $($HttpTimingsRounded | ConvertTo-Json -Compress)" + return ([HttpResponseContext]@{ + StatusCode = $Response.StatusCode + Body = $Response.Body + }) + } else { + $HttpTotalStopwatch.Stop() + $HttpTimings['Total'] = $HttpTotalStopwatch.Elapsed.TotalMilliseconds + $HttpTimingsRounded = [ordered]@{} + foreach ($Key in ($HttpTimings.Keys | Sort-Object)) { $HttpTimingsRounded[$Key] = [math]::Round($HttpTimings[$Key], 2) } + Write-Debug "#### HTTP Request Timings #### $($HttpTimingsRounded | ConvertTo-Json -Compress)" + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Response + }) + } + } + } + } catch { + Write-Warning "Exception occurred on HTTP trigger ($FunctionName): $($_.Exception.Message)" + $HttpTotalStopwatch.Stop() + $HttpTimings['Total'] = $HttpTotalStopwatch.Elapsed.TotalMilliseconds + $HttpTimingsRounded = [ordered]@{} + foreach ($Key in ($HttpTimings.Keys | Sort-Object)) { $HttpTimingsRounded[$Key] = [math]::Round($HttpTimings[$Key], 2) } + Write-Debug "#### HTTP Request Timings #### $($HttpTimingsRounded | ConvertTo-Json -Compress)" + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = $_.Exception.Message + }) + } + } else { + $HttpTotalStopwatch.Stop() + $HttpTimings['Total'] = $HttpTotalStopwatch.Elapsed.TotalMilliseconds + $HttpTimingsRounded = [ordered]@{} + foreach ($Key in ($HttpTimings.Keys | Sort-Object)) { $HttpTimingsRounded[$Key] = [math]::Round($HttpTimings[$Key], 2) } + Write-Debug "#### HTTP Request Timings #### $($HttpTimingsRounded | ConvertTo-Json -Compress)" + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::NotFound + Body = 'Endpoint not found' + }) + } + } else { + $HttpTotalStopwatch.Stop() + $HttpTimings['Total'] = $HttpTotalStopwatch.Elapsed.TotalMilliseconds + $HttpTimingsRounded = [ordered]@{} + foreach ($Key in ($HttpTimings.Keys | Sort-Object)) { $HttpTimingsRounded[$Key] = [math]::Round($HttpTimings[$Key], 2) } + Write-Debug "#### HTTP Request Timings #### $($HttpTimingsRounded | ConvertTo-Json -Compress)" + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::PreconditionFailed + Body = 'Request not processed' + }) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecAlertsList.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecAlertsList.ps1 index 04f876786b21..5e87cdc60e00 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecAlertsList.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecAlertsList.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ExecAlertsList { +function Invoke-ExecAlertsList { <# .FUNCTIONALITY Entrypoint @@ -9,12 +7,6 @@ Function Invoke-ExecAlertsList { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - function New-FlatArray ([Array]$arr) { $arr | ForEach-Object { if ($_ -is 'Array') { @@ -63,14 +55,12 @@ Function Invoke-ExecAlertsList { $Filter = "PartitionKey eq '$PartitionKey'" $Rows = Get-CIPPAzDataTableEntity @Table -filter $Filter | Where-Object -Property Timestamp -GT (Get-Date).AddMinutes(-30) $QueueReference = '{0}-{1}' -f $TenantFilter, $PartitionKey - $RunningQueue = Invoke-ListCippQueue | Where-Object { $_.Reference -eq $QueueReference -and $_.Status -notmatch 'Completed' -and $_.Status -notmatch 'Failed' } + $RunningQueue = Invoke-ListCippQueue -Reference $QueueReference | Where-Object { $_.Status -notmatch 'Completed' -and $_.Status -notmatch 'Failed' } # If a queue is running, we will not start a new one if ($RunningQueue) { $Metadata = [PSCustomObject]@{ QueueMessage = 'Still loading data for all tenants. Please check back in a few more minutes' - } - [PSCustomObject]@{ - Waiting = $true + QueueId = $RunningQueue.RowKey } } elseif (!$Rows -and !$RunningQueue) { # If no rows are found and no queue is running, we will start a new one @@ -78,6 +68,7 @@ Function Invoke-ExecAlertsList { $Queue = New-CippQueueEntry -Name 'Alerts List - All Tenants' -Reference $QueueReference -TotalTasks ($TenantList | Measure-Object).Count $Metadata = [PSCustomObject]@{ QueueMessage = 'Loading data for all tenants. Please check back in a few minutes' + QueueId = $Queue.RowKey } $InputObject = [PSCustomObject]@{ OrchestratorName = 'AlertsOrchestrator' @@ -91,12 +82,12 @@ Function Invoke-ExecAlertsList { } SkipLog = $true } | ConvertTo-Json -Depth 10 - $InstanceId = Start-NewOrchestration -FunctionName CIPPOrchestrator -InputObject $InputObject - [PSCustomObject]@{ - Waiting = $true - InstanceId = $InstanceId - } + Start-NewOrchestration -FunctionName CIPPOrchestrator -InputObject $InputObject } else { + $Metadata = [PSCustomObject]@{ + QueueId = $RunningQueue.RowKey ?? $null + } + $Alerts = $Rows $AlertsObj = foreach ($Alert in $Alerts) { $AlertInfo = $Alert.Alert | ConvertFrom-Json @@ -137,7 +128,7 @@ Function Invoke-ExecAlertsList { Metadata = $Metadata } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecIncidentsList.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecIncidentsList.ps1 index 5a3991b4df41..77dbdb060b08 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecIncidentsList.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecIncidentsList.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ExecIncidentsList { +function Invoke-ExecIncidentsList { <# .FUNCTIONALITY Entrypoint @@ -9,11 +7,6 @@ Function Invoke-ExecIncidentsList { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter @@ -47,11 +40,12 @@ Function Invoke-ExecIncidentsList { $Filter = "PartitionKey eq '$PartitionKey'" $Rows = Get-CIPPAzDataTableEntity @Table -filter $Filter | Where-Object -Property Timestamp -GT (Get-Date).AddMinutes(-30) $QueueReference = '{0}-{1}' -f $TenantFilter, $PartitionKey - $RunningQueue = Invoke-ListCippQueue | Where-Object { $_.Reference -eq $QueueReference -and $_.Status -notmatch 'Completed' -and $_.Status -notmatch 'Failed' } + $RunningQueue = Invoke-ListCippQueue -Reference $QueueReference | Where-Object { $_.Status -notmatch 'Completed' -and $_.Status -notmatch 'Failed' } # If a queue is running, we will not start a new one if ($RunningQueue) { $Metadata = [PSCustomObject]@{ QueueMessage = 'Still loading data for all tenants. Please check back in a few more minutes' + QueueId = $RunningQueue.RowKey } } elseif (!$Rows -and !$RunningQueue) { # If no rows are found and no queue is running, we will start a new one @@ -59,6 +53,7 @@ Function Invoke-ExecIncidentsList { $Queue = New-CippQueueEntry -Name 'Incidents - All Tenants' -Link '/security/reports/incident-report?customerId=AllTenants' -Reference $QueueReference -TotalTasks ($TenantList | Measure-Object).Count $Metadata = [PSCustomObject]@{ QueueMessage = 'Loading data for all tenants. Please check back in a few minutes' + QueueId = $Queue.RowKey } $InputObject = [PSCustomObject]@{ OrchestratorName = 'IncidentOrchestrator' @@ -74,6 +69,9 @@ Function Invoke-ExecIncidentsList { } Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) | Out-Null } else { + $Metadata = [PSCustomObject]@{ + QueueId = $RunningQueue.RowKey ?? $null + } $Incidents = $Rows foreach ($incident in $Incidents) { $IncidentObj = $incident.Incident | ConvertFrom-Json @@ -107,7 +105,7 @@ Function Invoke-ExecIncidentsList { Metadata = $Metadata } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecMdoAlertsList.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecMdoAlertsList.ps1 new file mode 100644 index 000000000000..241f91ca8c85 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecMdoAlertsList.ps1 @@ -0,0 +1,77 @@ +function Invoke-ExecMDOAlertsList { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Security.Alert.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + + try { + $GraphRequest = if ($TenantFilter -ne 'AllTenants') { + # Single tenant functionality + New-GraphGetRequest -uri "https://graph.microsoft.com/beta/security/alerts_v2?`$filter=serviceSource eq 'microsoftDefenderForOffice365'" -tenantid $TenantFilter + } else { + # AllTenants functionality + $Table = Get-CIPPTable -TableName cachealertsandincidents + $PartitionKey = 'MdoAlert' + $Filter = "PartitionKey eq '$PartitionKey'" + $Rows = Get-CIPPAzDataTableEntity @Table -filter $Filter | Where-Object -Property Timestamp -GT (Get-Date).AddMinutes(-30) + $QueueReference = '{0}-{1}' -f $TenantFilter, $PartitionKey + $RunningQueue = Invoke-ListCippQueue -Reference $QueueReference | Where-Object { $_.Status -notmatch 'Completed' -and $_.Status -notmatch 'Failed' } + # If a queue is running, we will not start a new one + if ($RunningQueue) { + $Metadata = [PSCustomObject]@{ + QueueMessage = 'Still loading data for all tenants. Please check back in a few more minutes' + QueueId = $RunningQueue.RowKey + } + } elseif (!$Rows -and !$RunningQueue) { + # If no rows are found and no queue is running, we will start a new one + $TenantList = Get-Tenants -IncludeErrors + $Queue = New-CippQueueEntry -Name 'MDO Alerts - All Tenants' -Link '/security/reports/mdo-alerts?customerId=AllTenants' -Reference $QueueReference -TotalTasks ($TenantList | Measure-Object).Count + $Metadata = [PSCustomObject]@{ + QueueMessage = 'Loading data for all tenants. Please check back in a few minutes' + QueueId = $Queue.RowKey + } + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'MdoAlertsOrchestrator' + QueueFunction = @{ + FunctionName = 'GetTenants' + QueueId = $Queue.RowKey + TenantParams = @{ + IncludeErrors = $true + } + DurableName = 'ExecMdoAlertsListAllTenants' + } + SkipLog = $true + } + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) | Out-Null + } else { + $Metadata = [PSCustomObject]@{ + QueueId = $RunningQueue.RowKey ?? $null + } + $Alerts = $Rows + foreach ($alert in $Alerts) { + ConvertFrom-Json -InputObject $alert.MdoAlert -Depth 10 + } + } + } + } catch { + $Body = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + } + if (!$Body) { + $StatusCode = [HttpStatusCode]::OK + $Body = [PSCustomObject]@{ + Results = @($GraphRequest) + Metadata = $Metadata + } + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecSetMdoAlert.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecSetMdoAlert.ps1 new file mode 100644 index 000000000000..740e725259f6 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecSetMdoAlert.ps1 @@ -0,0 +1,71 @@ +function Invoke-ExecSetMdoAlert { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Security.Incident.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $AlertId = $Request.Query.GUID ?? $Request.Body.GUID + $Status = $Request.Query.Status ?? $Request.Body.Status + $Assigned = $Request.Query.Assigned ?? $Request.Body.Assigned ?? ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json).userDetails + $Classification = $Request.Query.Classification ?? $Request.Body.Classification + $Determination = $Request.Query.Determination ?? $Request.Body.Determination + $Result = '' + $AssignBody = @{} + + try { + # Set received status + if ($null -ne $Status) { + $AssignBody.status = $Status + $Result += 'Set status for incident ' + $AlertId + ' to ' + $Status + } + + # Set received classification and determination + if ($null -ne $Classification) { + if ($null -eq $Determination) { + # Maybe some poindexter tries to send a classification without a determination + throw + } + + $AssignBody.classification = $Classification + $AssignBody.determination = $Determination + $Result += 'Set classification & determination for incident ' + $AlertId + ' to ' + $Classification + ' ' + $Determination + } + + # Set received assignee + if ($null -ne $Assigned) { + $AssignBody.assignedTo = $Assigned + if ($null -eq $Status) { + $Result += 'Set assigned for incident ' + $AlertId + ' to ' + $Assigned + } + } + + # Convert hashtable to JSON + $AssignBodyJson = $AssignBody | ConvertTo-Json -Compress + + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/security/alerts_v2/$AlertId" -type PATCH -tenantid $TenantFilter -body $AssignBodyJson -asApp $true + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev 'Info' + + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to update incident $AlertId : $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecSetSecurityAlert.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecSetSecurityAlert.ps1 index fba386d7a81a..ded5daf03803 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecSetSecurityAlert.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecSetSecurityAlert.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecSetSecurityAlert { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-ExecSetSecurityAlert { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter @@ -34,8 +32,7 @@ Function Invoke-ExecSetSecurityAlert { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{Results = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecSetSecurityIncident.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecSetSecurityIncident.ps1 index 3b935c297190..673e7404d856 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecSetSecurityIncident.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecSetSecurityIncident.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecSetSecurityIncident { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-ExecSetSecurityIncident { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $first = '' # Interact with query parameters or the body of the request. @@ -78,8 +76,7 @@ Function Invoke-ExecSetSecurityIncident { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-AddSafeLinksPolicyFromTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-AddSafeLinksPolicyFromTemplate.ps1 index fe506d605367..a48db0eaccaf 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-AddSafeLinksPolicyFromTemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-AddSafeLinksPolicyFromTemplate.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-AddSafeLinksPolicyFromTemplate { <# .FUNCTIONALITY @@ -14,7 +12,7 @@ Function Invoke-AddSafeLinksPolicyFromTemplate { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + try { $RequestBody = $Request.Body @@ -220,7 +218,7 @@ Function Invoke-AddSafeLinksPolicyFromTemplate { } # Return response - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ Results = $Results } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-AddSafeLinksPolicyTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-AddSafeLinksPolicyTemplate.ps1 index c4e4a467fa0e..4d3c4b5cc260 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-AddSafeLinksPolicyTemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-AddSafeLinksPolicyTemplate.ps1 @@ -1,4 +1,3 @@ -using namespace System.Net Function Invoke-AddSafeLinksPolicyTemplate { <# .FUNCTIONALITY @@ -88,8 +87,7 @@ Function Invoke-AddSafeLinksPolicyTemplate { $StatusCode = [HttpStatusCode]::Forbidden } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-CreateSafeLinksPolicyTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-CreateSafeLinksPolicyTemplate.ps1 index 8023f9b62bbb..4eb65304b85a 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-CreateSafeLinksPolicyTemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-CreateSafeLinksPolicyTemplate.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-CreateSafeLinksPolicyTemplate { <# .FUNCTIONALITY @@ -69,8 +67,7 @@ Function Invoke-CreateSafeLinksPolicyTemplate { $StatusCode = [HttpStatusCode]::Forbidden } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-EditSafeLinksPolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-EditSafeLinksPolicy.ps1 index c763a14a21e1..f7fdfd4c93b6 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-EditSafeLinksPolicy.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-EditSafeLinksPolicy.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-EditSafeLinksPolicy { <# .FUNCTIONALITY @@ -14,7 +12,7 @@ function Invoke-EditSafeLinksPolicy { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter @@ -209,8 +207,7 @@ function Invoke-EditSafeLinksPolicy { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{Results = $Results } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-EditSafeLinksPolicyTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-EditSafeLinksPolicyTemplate.ps1 index 3e6ece129dc8..8d023c98871d 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-EditSafeLinksPolicyTemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-EditSafeLinksPolicyTemplate.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-EditSafeLinksPolicyTemplate { <# .FUNCTIONALITY @@ -81,8 +79,7 @@ Function Invoke-EditSafeLinksPolicyTemplate { $StatusCode = [HttpStatusCode]::Forbidden } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ExecDeleteSafeLinksPolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ExecDeleteSafeLinksPolicy.ps1 index 6bd622381129..f3fa33bcaa46 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ExecDeleteSafeLinksPolicy.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ExecDeleteSafeLinksPolicy.ps1 @@ -1,4 +1,3 @@ -using namespace System.Net function Invoke-ExecDeleteSafeLinksPolicy { <# .FUNCTIONALITY @@ -12,7 +11,7 @@ function Invoke-ExecDeleteSafeLinksPolicy { param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter $RuleName = $Request.Query.RuleName ?? $Request.Body.RuleName @@ -86,8 +85,7 @@ function Invoke-ExecDeleteSafeLinksPolicy { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{Results = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ExecNewSafeLinksPolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ExecNewSafeLinksPolicy.ps1 index 91945d8736ca..dbf3790b3090 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ExecNewSafeLinksPolicy.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ExecNewSafeLinksPolicy.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ExecNewSafeLinksPolicy { <# .FUNCTIONALITY @@ -14,7 +12,7 @@ function Invoke-ExecNewSafeLinksPolicy { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter @@ -220,8 +218,7 @@ function Invoke-ExecNewSafeLinksPolicy { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{Results = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ListSafeLinksPolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ListSafeLinksPolicy.ps1 index a18d03c2aba1..8c4ec6595652 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ListSafeLinksPolicy.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ListSafeLinksPolicy.ps1 @@ -1,4 +1,3 @@ -using namespace System.Net Function Invoke-ListSafeLinksPolicy { <# .FUNCTIONALITY @@ -12,7 +11,7 @@ Function Invoke-ListSafeLinksPolicy { param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $Tenantfilter = $request.Query.tenantfilter try { @@ -193,8 +192,7 @@ Function Invoke-ListSafeLinksPolicy { $FinalOutput = $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $FinalOutput }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ListSafeLinksPolicyDetails.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ListSafeLinksPolicyDetails.ps1 index c0b11a9c3ad9..89840a6a07ed 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ListSafeLinksPolicyDetails.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ListSafeLinksPolicyDetails.ps1 @@ -1,4 +1,3 @@ -using namespace System.Net function Invoke-ListSafeLinksPolicyDetails { <# .FUNCTIONALITY @@ -13,7 +12,7 @@ function Invoke-ListSafeLinksPolicyDetails { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter @@ -98,8 +97,7 @@ function Invoke-ListSafeLinksPolicyDetails { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{Results = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ListSafeLinksPolicyTemplateDetails.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ListSafeLinksPolicyTemplateDetails.ps1 index 26f19bceb065..bcec6caaaac9 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ListSafeLinksPolicyTemplateDetails.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ListSafeLinksPolicyTemplateDetails.ps1 @@ -1,4 +1,3 @@ -using namespace System.Net Function Invoke-ListSafeLinksPolicyTemplateDetails { <# .FUNCTIONALITY @@ -13,7 +12,7 @@ Function Invoke-ListSafeLinksPolicyTemplateDetails { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Get the template ID from query parameters $ID = $Request.Query.ID ?? $Request.Body.ID @@ -49,8 +48,7 @@ Function Invoke-ListSafeLinksPolicyTemplateDetails { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{Results = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ListSafeLinksPolicyTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ListSafeLinksPolicyTemplates.ps1 index 5c4477985199..497c24c79692 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ListSafeLinksPolicyTemplates.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ListSafeLinksPolicyTemplates.ps1 @@ -1,4 +1,3 @@ -using namespace System.Net Function Invoke-ListSafeLinksPolicyTemplates { <# .FUNCTIONALITY @@ -8,9 +7,6 @@ Function Invoke-ListSafeLinksPolicyTemplates { #> [CmdletBinding()] param($Request, $TriggerMetadata) - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' $Table = Get-CippTable -tablename 'templates' $Templates = Get-ChildItem 'Config\*.SafeLinksTemplate.json' | ForEach-Object { $Entity = @{ @@ -31,8 +27,7 @@ Function Invoke-ListSafeLinksPolicyTemplates { $data } if ($Request.query.ID) { $Templates = $Templates | Where-Object -Property RowKey -EQ $Request.query.id } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($Templates) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-RemoveSafeLinksPolicyTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-RemoveSafeLinksPolicyTemplate.ps1 index 676b72e4b17e..7d3b56d5b195 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-RemoveSafeLinksPolicyTemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-RemoveSafeLinksPolicyTemplate.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-RemoveSafeLinksPolicyTemplate { <# .FUNCTIONALITY @@ -27,8 +25,7 @@ Function Invoke-RemoveSafeLinksPolicyTemplate { Write-LogMessage -Headers $User -API $APINAME -message $Result -Sev 'Error' -LogData $ErrorMessage $StatusCode = [HttpStatusCode]::Forbidden } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ Results = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-AddSite.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-AddSite.ps1 index 13eb06e766b1..217ee9c22dbe 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-AddSite.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-AddSite.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-AddSite { +function Invoke-AddSite { <# .FUNCTIONALITY Entrypoint @@ -9,10 +7,8 @@ Function Invoke-AddSite { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. @@ -24,11 +20,10 @@ Function Invoke-AddSite { $StatusCode = [HttpStatusCode]::OK } catch { $StatusCode = [HttpStatusCode]::InternalServerError - $Result = "Failed to create SharePoint Site: $($_.Exception.Message)" + $Result = $_.Exception.Message } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{'Results' = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-AddSiteBulk.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-AddSiteBulk.ps1 index bbb63aebc399..4be0abc11733 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-AddSiteBulk.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-AddSiteBulk.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-AddSiteBulk { <# .FUNCTIONALITY @@ -9,10 +7,8 @@ Function Invoke-AddSiteBulk { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $Results = [System.Collections.Generic.List[System.Object]]::new() @@ -25,8 +21,7 @@ Function Invoke-AddSiteBulk { $Results.Add("Failed to create $($sharePointObj.siteName) Error message: $($_.Exception.Message)") } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @{'Results' = $Results } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-AddTeam.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-AddTeam.ps1 index 25c14b579a3e..13d4360dfd89 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-AddTeam.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-AddTeam.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-AddTeam { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-AddTeam { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with the body of the request $TeamObj = $Request.Body @@ -55,8 +53,7 @@ Function Invoke-AddTeam { } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ Results = $Message } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-DeleteSharepointSite.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-DeleteSharepointSite.ps1 new file mode 100644 index 000000000000..01a8dca2ccf6 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-DeleteSharepointSite.ps1 @@ -0,0 +1,89 @@ +function Invoke-DeleteSharepointSite { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Sharepoint.Site.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Body.tenantFilter + $SiteId = $Request.Body.SiteId + + try { + # Validate required parameters + if (-not $SiteId) { + throw "SiteId is required" + } + if (-not $TenantFilter) { + throw "TenantFilter is required" + } + + # Validate SiteId format (GUID) + if ($SiteId -notmatch '^(\{)?[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}(\})?$') { + throw "SiteId must be a valid GUID" + } + + $SharePointInfo = Get-SharePointAdminLink -Public $false -tenantFilter $TenantFilter + + # Get site information using SharePoint admin API + $SiteInfoUri = "$($SharePointInfo.AdminUrl)/_api/SPO.Tenant/sites('$SiteId')" + + # Add the headers that SharePoint REST API expects + $ExtraHeaders = @{ + 'accept' = 'application/json' + 'content-type' = 'application/json' + 'odata-version' = '4.0' + } + + $SiteInfo = New-GraphGETRequest -scope "$($SharePointInfo.AdminUrl)/.default" -uri $SiteInfoUri -tenantid $TenantFilter -extraHeaders $ExtraHeaders + + if (-not $SiteInfo) { + throw "Could not retrieve site information from SharePoint Admin API" + } + + # Determine if site is group-connected based on GroupId + $IsGroupConnected = $SiteInfo.GroupId -and $SiteInfo.GroupId -ne "00000000-0000-0000-0000-000000000000" + + if ($IsGroupConnected) { + # Use GroupSiteManager/Delete for group-connected sites + $body = @{ + siteUrl = $SiteInfo.Url + } + $DeleteUri = "$($SharePointInfo.AdminUrl)/_api/GroupSiteManager/Delete" + } else { + # Use SPSiteManager/delete for regular sites + $body = @{ + siteId = $SiteId + } + $DeleteUri = "$($SharePointInfo.AdminUrl)/_api/SPSiteManager/delete" + } + + # Execute the deletion + $DeleteResult = New-GraphPOSTRequest -scope "$($SharePointInfo.AdminUrl)/.default" -uri $DeleteUri -body (ConvertTo-Json -Depth 10 -InputObject $body) -tenantid $TenantFilter -extraHeaders $ExtraHeaders + + $SiteTypeMsg = if ($IsGroupConnected) { "group-connected" } else { "regular" } + $Results = "Successfully initiated deletion of $SiteTypeMsg SharePoint site with ID $SiteId, this process can take some time to complete in the background" + + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Results -sev Info + $StatusCode = [HttpStatusCode]::OK + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Results = "Failed to delete SharePoint site with ID $SiteId. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Results -sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + # Associate values to output bindings + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ 'Results' = $Results } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecRemoveTeamsVoicePhoneNumberAssignment.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecRemoveTeamsVoicePhoneNumberAssignment.ps1 index 2e1835cba80e..83e3d96a5f1f 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecRemoveTeamsVoicePhoneNumberAssignment.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecRemoveTeamsVoicePhoneNumberAssignment.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecRemoveTeamsVoicePhoneNumberAssignment { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-ExecRemoveTeamsVoicePhoneNumberAssignment { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantFilter = $Request.Body.tenantFilter @@ -31,8 +29,7 @@ Function Invoke-ExecRemoveTeamsVoicePhoneNumberAssignment { Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev Error -LogData $ErrorMessage $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{'Results' = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecSetSharePointMember.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecSetSharePointMember.ps1 index 3d8e9947ff77..1949aac407b2 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecSetSharePointMember.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecSetSharePointMember.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ExecSetSharePointMember { +function Invoke-ExecSetSharePointMember { <# .FUNCTIONALITY Entrypoint @@ -9,24 +7,27 @@ Function Invoke-ExecSetSharePointMember { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - - $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantFilter = $Request.Body.tenantFilter try { if ($Request.Body.SharePointType -eq 'Group') { - $GroupId = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/groups?`$filter=mail eq '$($Request.Body.GroupID)' or proxyAddresses/any(x:endsWith(x,'$($Request.Body.GroupID)'))&`$count=true" -ComplexFilter -tenantid $TenantFilter).id + if ($Request.Body.GroupID -match '^[0-9a-fA-F]{8}(-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$') { + $GroupId = $Request.Body.GroupID + } else { + $GroupId = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/groups?`$filter=mail eq '$($Request.Body.GroupID)' or proxyAddresses/any(x:endsWith(x,'$($Request.Body.GroupID)')) or mailNickname eq '$($Request.Body.GroupID)'" -ComplexFilter -tenantid $TenantFilter).id + } + if ($Request.Body.Add -eq $true) { $Results = Add-CIPPGroupMember -GroupType 'Team' -GroupID $GroupID -Member $Request.Body.user.value -TenantFilter $TenantFilter -Headers $Headers } else { $UserID = (New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/users/$($Request.Body.user.value)" -tenantid $TenantFilter).id $Results = Remove-CIPPGroupMember -GroupType 'Team' -GroupID $GroupID -Member $UserID -TenantFilter $TenantFilter -Headers $Headers } + $StatusCode = [HttpStatusCode]::OK } else { $StatusCode = [HttpStatusCode]::BadRequest $Results = 'This type of SharePoint site is not supported.' @@ -37,8 +38,7 @@ Function Invoke-ExecSetSharePointMember { } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ 'Results' = $Results } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecSharePointPerms.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecSharePointPerms.ps1 index 2952dc7c645b..6e2ba7e270c2 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecSharePointPerms.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecSharePointPerms.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecSharePointPerms { <# .FUNCTIONALITY @@ -46,8 +44,7 @@ Function Invoke-ExecSharePointPerms { $StatusCode = [HttpStatusCode]::BadRequest } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{'Results' = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecTeamsVoicePhoneNumberAssignment.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecTeamsVoicePhoneNumberAssignment.ps1 index acc53b79f4c3..94097e2f46ec 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecTeamsVoicePhoneNumberAssignment.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecTeamsVoicePhoneNumberAssignment.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecTeamsVoicePhoneNumberAssignment { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-ExecTeamsVoicePhoneNumberAssignment { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APINAME -message 'Accessed this API' -Sev 'Debug' + $Identity = $Request.Body.input.value $tenantFilter = $Request.Body.TenantFilter @@ -32,8 +30,7 @@ Function Invoke-ExecTeamsVoicePhoneNumberAssignment { Write-LogMessage -Headers $Headers -API $APINAME -tenant $($TenantFilter) -message $($Results.Results) -Sev Error -LogData $ErrorMessage $StatusCode = [HttpStatusCode]::Forbidden } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $Results }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharepointAdminUrl.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharepointAdminUrl.ps1 index d486b5eec8cb..baa4e97d3fd0 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharepointAdminUrl.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharepointAdminUrl.ps1 @@ -23,17 +23,18 @@ function Invoke-ListSharepointAdminUrl { $Tenant | Add-Member -MemberType NoteProperty -Name SharepointAdminUrl -Value $SharePointInfo.AdminUrl $Table = Get-CIPPTable -TableName 'Tenants' Add-CIPPAzDataTableEntity @Table -Entity $Tenant -Force + $AdminUrl = $SharePointInfo.AdminUrl } if ($Request.Query.ReturnUrl) { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @{ AdminUrl = $AdminUrl } }) } else { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::Found Headers = @{ Location = $AdminUrl @@ -41,7 +42,7 @@ function Invoke-ListSharepointAdminUrl { }) } } else { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::BadRequest Body = 'TenantFilter is required' }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharepointQuota.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharepointQuota.ps1 index 9f9db254c6d1..1f2a94f7ed26 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharepointQuota.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharepointQuota.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListSharepointQuota { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ Function Invoke-ListSharepointQuota { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter @@ -44,8 +37,7 @@ Function Invoke-ListSharepointQuota { $StatusCode = [HttpStatusCode]::OK - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $SharePointQuotaDetails }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharepointSettings.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharepointSettings.ps1 index fdf4db9675f2..2b7d22e5849f 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharepointSettings.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharepointSettings.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListSharepointSettings { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ Function Invoke-ListSharepointSettings { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # XXX - Seems to be an unused endpoint? -Bobby @@ -21,8 +14,7 @@ Function Invoke-ListSharepointSettings { $Tenant = $Request.Query.tenantFilter $Request = New-GraphGetRequest -tenantid $Tenant -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($Request) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSites.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSites.ps1 index 84b64bbeb7ae..dd112c3f16ec 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSites.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSites.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ListSites { +function Invoke-ListSites { <# .FUNCTIONALITY Entrypoint @@ -9,29 +7,25 @@ Function Invoke-ListSites { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $TenantFilter = $Request.Query.TenantFilter - $Type = $request.query.Type - $UserUPN = $request.query.UserUPN + $Type = $Request.Query.Type + $UserUPN = $Request.Query.UserUPN if (!$TenantFilter) { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::BadRequest Body = 'TenantFilter is required' }) - return } if (!$Type) { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::BadRequest Body = 'Type is required' }) - return } $Tenant = Get-Tenants -TenantFilter $TenantFilter @@ -116,8 +110,7 @@ Function Invoke-ListSites { $GraphRequest = $GraphRequest | Where-Object { $null -ne $_.webUrl } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @($GraphRequest | Sort-Object -Property displayName) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeams.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeams.ps1 index 4d6d55619c15..84ed3122bb6b 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeams.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeams.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListTeams { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ Function Invoke-ListTeams { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.TenantFilter if ($request.query.type -eq 'List') { @@ -40,8 +33,7 @@ Function Invoke-ListTeams { } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($GraphRequest) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeamsActivity.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeamsActivity.ps1 index 9323a71f30a1..5b1a64f73f03 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeamsActivity.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeamsActivity.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListTeamsActivity { <# .FUNCTIONALITY @@ -9,12 +7,6 @@ Function Invoke-ListTeamsActivity { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter $type = $request.Query.Type @@ -24,8 +16,7 @@ Function Invoke-ListTeamsActivity { @{ Name = 'CallCount'; Expression = { $_.'Call Count' } }, @{ Name = 'MeetingCount'; Expression = { $_.'Meeting Count' } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($GraphRequest) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeamsLisLocation.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeamsLisLocation.ps1 index a801c93077b0..8e58755752c5 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeamsLisLocation.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeamsLisLocation.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListTeamsLisLocation { <# .FUNCTIONALITY @@ -9,12 +7,6 @@ Function Invoke-ListTeamsLisLocation { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - $TenantFilter = $Request.Query.TenantFilter try { $EmergencyLocations = New-TeamsRequest -TenantFilter $TenantFilter -Cmdlet 'Get-CsOnlineLisLocation' @@ -24,8 +16,7 @@ Function Invoke-ListTeamsLisLocation { $StatusCode = [HttpStatusCode]::Forbidden $EmergencyLocations = $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @($EmergencyLocations) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeamsVoice.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeamsVoice.ps1 index a35801474473..0b1082469a00 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeamsVoice.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeamsVoice.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ListTeamsVoice { <# .FUNCTIONALITY @@ -9,21 +7,17 @@ function Invoke-ListTeamsVoice { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter - $TenantId = (Get-Tenants | Where-Object -Property defaultDomainName -EQ $TenantFilter).customerId + $TenantId = (Get-Tenants -TenantFilter $TenantFilter).customerId try { $Users = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$top=999&`$select=id,userPrincipalName,displayName" -tenantid $TenantFilter) $Skip = 0 $GraphRequest = do { Write-Host "Getting page $Skip" - $data = (New-TeamsAPIGetRequest -uri "https://api.interfaces.records.teams.microsoft.com/Skype.TelephoneNumberMgmt/Tenants/$($TenantId)/telephone-numbers?skip=$($Skip)&locale=en-US&top=999" -tenantid $TenantFilter).TelephoneNumbers | ForEach-Object { - Write-Host 'Reached the loop' + $Results = New-TeamsAPIGetRequest -uri "https://api.interfaces.records.teams.microsoft.com/Skype.TelephoneNumberMgmt/Tenants/$($TenantId)/telephone-numbers?skip=$($Skip)&locale=en-US&top=999" -tenantid $TenantFilter + #Write-Information ($Results | ConvertTo-Json -Depth 10) + $data = $Results.TelephoneNumbers | ForEach-Object { $CompleteRequest = $_ | Select-Object *, @{Name = 'AssignedTo'; Expression = { $users | Where-Object -Property id -EQ $_.TargetId } } if ($CompleteRequest.AcquisitionDate) { $CompleteRequest.AcquisitionDate = $_.AcquisitionDate -split 'T' | Select-Object -First 1 @@ -33,11 +27,9 @@ function Invoke-ListTeamsVoice { $CompleteRequest.AssignedTo ? $null : ($CompleteRequest | Add-Member -NotePropertyName 'AssignedTo' -NotePropertyValue 'Unassigned' -Force) $CompleteRequest } - Write-Host 'Finished the loop' $Skip = $Skip + 999 $Data } while ($data.Count -eq 999) - Write-Host 'Exiting the Do.' $StatusCode = [HttpStatusCode]::OK } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message @@ -46,9 +38,9 @@ function Invoke-ListTeamsVoice { } Write-Host "Graph request is: $($GraphRequest)" Write-Host 'Returning the response' - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode - Body = @($GraphRequest) + Body = @($GraphRequest | Where-Object { $_.TelephoneNumber }) }) } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-AddAlert.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-AddAlert.ps1 index 72872dce00a6..a683b153c508 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-AddAlert.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-AddAlert.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-AddAlert { <# .FUNCTIONALITY @@ -9,10 +7,6 @@ Function Invoke-AddAlert { #> [CmdletBinding()] param($Request, $TriggerMetadata) - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $Tenants = $Request.Body.tenantFilter $Conditions = $Request.Body.conditions | ConvertTo-Json -Compress -Depth 10 | Out-String @@ -28,13 +22,13 @@ Function Invoke-AddAlert { type = $Request.Body.logbook.value RowKey = $RowKey PartitionKey = 'Webhookv2' + AlertComment = [string]$Request.Body.AlertComment } $WebhookTable = Get-CippTable -TableName 'WebhookRules' Add-CIPPAzDataTableEntity @WebhookTable -Entity $CompleteObject -Force $Results = "Added Audit Log Alert for $($Tenants.count) tenants. It may take up to four hours before Microsoft starts delivering these alerts." - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @{ 'Results' = @($Results) } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ExecAuditLogSearch.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ExecAuditLogSearch.ps1 index dc54f2259f53..f94ccc9bef9d 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ExecAuditLogSearch.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ExecAuditLogSearch.ps1 @@ -10,50 +10,130 @@ function Invoke-ExecAuditLogSearch { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - $Query = $Request.Body - if (!$Query.TenantFilter) { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::BadRequest - Body = 'TenantFilter is required' - }) - return - } - if (!$Query.StartTime -or !$Query.EndTime) { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::BadRequest - Body = 'StartTime and EndTime are required' - }) - return - } + $Action = $Request.Query.Action ?? $Request.Body.Action + + + + switch ($Action) { + 'ProcessLogs' { + $Table = Get-CIPPTable -TableName 'AuditLogSearches' + + $SearchId = $Request.Query.SearchId ?? $Request.Body.SearchId + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + if (!$SearchId) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = 'SearchId is required' + }) + return + } + + $Existing = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'Search' and RowKey eq '$SearchId' and Tenant eq '$TenantFilter'" + if (!$Existing) { + $Search = New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/security/auditLog/queries/$SearchId" -AsApp $true -TenantId $TenantFilter + Write-Information ($Search | ConvertTo-Json -Depth 10) + + $Entity = [PSCustomObject]@{ + PartitionKey = [string]'Search' + RowKey = [string]$SearchId + Tenant = [string]$TenantFilter + DisplayName = [string]$Search.displayName + StartTime = [datetime]$Search.filterStartDateTime + EndTime = [datetime]$Search.filterEndDateTime + Query = [string]($Search | ConvertTo-Json -Compress) + CippStatus = [string]'Pending' + } + } else { + $Existing.CippStatus = 'Pending' + } + + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force | Out-Null - $Command = Get-Command New-CippAuditLogSearch - $AvailableParameters = $Command.Parameters.Keys - $BadProps = foreach ($Prop in $Query.PSObject.Properties.Name) { - if ($AvailableParameters -notcontains $Prop) { - $Prop + Write-LogMessage -headers $Headers -API $APIName -message "Queued search for processing: $($Search.displayName)" -Sev 'Info' -tenant $TenantFilter + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ + resultText = "Search '$($Search.displayName)' queued for processing." + state = 'success' + } | ConvertTo-Json -Depth 10 -Compress + }) } - } - if ($BadProps) { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::BadRequest - Body = "Invalid parameters: $($BadProps -join ', ')" - }) - return - } + default { + $Query = $Request.Body + if (!$Query.TenantFilter) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = 'TenantFilter is required' + }) + return + } + if (!$Query.StartTime -or !$Query.EndTime) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = 'StartTime and EndTime are required' + }) + return + } + + # Convert StartTime and EndTime to DateTime from unixtime + if ($Query.StartTime -match '^\d+$') { + $Query.StartTime = [DateTime]::UnixEpoch.AddSeconds([long]$Query.StartTime) + } else { + $Query.StartTime = [DateTime]$Query.StartTime + } + + if ($Query.EndTime -match '^\d+$') { + $Query.EndTime = [DateTime]::UnixEpoch.AddSeconds([long]$Query.EndTime) + } else { + $Query.EndTime = [DateTime]$Query.EndTime + } - try { - $Query = $Query | ConvertTo-Json -Depth 10 | ConvertFrom-Json -AsHashtable - $Results = New-CippAuditLogSearch @Query - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $Results - }) - } catch { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::BadRequest - Body = $_.Exception.Message - }) + $Command = Get-Command New-CippAuditLogSearch + $AvailableParameters = $Command.Parameters.Keys + $BadProps = foreach ($Prop in $Query.PSObject.Properties.Name) { + if ($AvailableParameters -notcontains $Prop) { + $Prop + } + } + if ($BadProps) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = "Invalid parameters: $($BadProps -join ', ')" + }) + return + } + + try { + Write-Information "Executing audit log search with parameters: $($Query | ConvertTo-Json -Depth 10)" + + $Query = $Query | ConvertTo-Json -Depth 10 | ConvertFrom-Json -AsHashtable + $NewSearch = New-CippAuditLogSearch @Query + + if ($NewSearch) { + Write-LogMessage -headers $Headers -API $APIName -message "Created audit log search: $($NewSearch.displayName)" -Sev 'Info' -tenant $TenantFilter + $Results = @{ + resultText = "Created audit log search: $($NewSearch.displayName)" + state = 'success' + details = $NewSearch + } + } else { + Write-LogMessage -headers $Headers -API $APIName -message 'Failed to create audit log search' -Sev 'Error' -tenant $TenantFilter + $Results = @{ + resultText = 'Failed to initiate search' + state = 'error' + } + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Results + }) + } catch { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = $_.Exception.Message + }) + } + } } } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAlertsQueue.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAlertsQueue.ps1 index 5cfc332f7ef8..529486e9f868 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAlertsQueue.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAlertsQueue.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ListAlertsQueue { +function Invoke-ListAlertsQueue { <# .FUNCTIONALITY Entrypoint @@ -9,12 +7,6 @@ Function Invoke-ListAlertsQueue { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - $WebhookTable = Get-CIPPTable -TableName 'WebhookRules' $WebhookRules = Get-CIPPAzDataTableEntity @WebhookTable @@ -40,6 +32,7 @@ Function Invoke-ListAlertsQueue { RowKey = $Task.RowKey PartitionKey = $Task.PartitionKey RepeatsEvery = 'When received' + AlertComment = $Task.AlertComment RawAlert = @{ Conditions = @($Conditions) Actions = @($($Task.Actions | ConvertFrom-Json -Depth 10 -ErrorAction SilentlyContinue)) @@ -47,7 +40,7 @@ Function Invoke-ListAlertsQueue { type = $Task.type RowKey = $Task.RowKey PartitionKey = $Task.PartitionKey - + AlertComment = $Task.AlertComment } } @@ -70,22 +63,88 @@ Function Invoke-ListAlertsQueue { $ExcludedTenants = @() } + # Handle tenant group display information for alerts + $TenantsForDisplay = @() + if ($Task.TenantGroup) { + try { + $TenantGroupObject = $Task.TenantGroup | ConvertFrom-Json -ErrorAction SilentlyContinue + if ($TenantGroupObject) { + # Create a tenant group object for display + $TenantGroupForDisplay = [PSCustomObject]@{ + label = $TenantGroupObject.label + value = $TenantGroupObject.value + type = 'Group' + } + $TenantsForDisplay = @($TenantGroupForDisplay) + } + } catch { + Write-Warning "Failed to parse tenant group information for alert task $($Task.RowKey): $($_.Exception.Message)" + # Fall back to regular tenant display + $TenantsForDisplay = @($Task.Tenant) + } + } else { + # For regular tenants, create a tenant object for consistent formatting + $TenantForDisplay = [PSCustomObject]@{ + label = $Task.Tenant + value = $Task.Tenant + type = 'Tenant' + } + $TenantsForDisplay = @($TenantForDisplay) + } + $TaskEntry = [PSCustomObject]@{ RowKey = $Task.RowKey PartitionKey = $Task.PartitionKey excludedTenants = @($ExcludedTenants) - Tenants = @($Task.Tenant) + Tenants = $TenantsForDisplay Conditions = $Task.Name Actions = $Task.PostExecution LogType = 'Scripted' EventType = 'Scheduled Task' RepeatsEvery = $Task.Recurrence + AlertComment = $Task.AlertComment RawAlert = $Task } + if ($AllowedTenants -notcontains 'AllTenants') { - $Tenant = $TenantList | Where-Object -Property defaultDomainName -EQ $Task.Tenant - if ($AllowedTenants -contains $Tenant.customerId) { - $AllTasksArrayList.Add($TaskEntry) + # For tenant groups, we need to expand and check access + if ($Task.TenantGroup) { + try { + $TenantGroupObject = $Task.TenantGroup | ConvertFrom-Json -ErrorAction SilentlyContinue + if ($TenantGroupObject) { + # Create a tenant filter object for expansion + $TenantFilterForExpansion = @([PSCustomObject]@{ + type = 'Group' + value = $TenantGroupObject.value + label = $TenantGroupObject.label + }) + + # Expand the tenant group to individual tenants + $ExpandedTenants = Expand-CIPPTenantGroups -TenantFilter $TenantFilterForExpansion + + # Check if user has access to any tenant in the group + $HasAccess = $false + foreach ($ExpandedTenant in $ExpandedTenants) { + $TenantInfo = $TenantList | Where-Object -Property defaultDomainName -EQ $ExpandedTenant.value + if ($TenantInfo -and $AllowedTenants -contains $TenantInfo.customerId) { + $HasAccess = $true + break + } + } + + if ($HasAccess) { + $AllTasksArrayList.Add($TaskEntry) + } + } + } catch { + Write-Warning "Failed to expand tenant group for access check: $($_.Exception.Message)" + } + } else { + # Regular tenant access check + $Tenant = $TenantList | Where-Object -Property defaultDomainName -EQ $Task.Tenant + if ($AllowedTenants -contains $Tenant.customerId) { + $AllTasksArrayList.Add($TaskEntry) + } } } else { $AllTasksArrayList.Add($TaskEntry) @@ -93,8 +152,7 @@ Function Invoke-ListAlertsQueue { } $finalList = ConvertTo-Json -InputObject @($AllTasksArrayList) -Depth 10 - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $finalList }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAuditLogSearches.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAuditLogSearches.ps1 index 4468443aece3..ef5a2ff069d6 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAuditLogSearches.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAuditLogSearches.ps1 @@ -6,19 +6,12 @@ function Invoke-ListAuditLogSearches { Tenant.Alert.Read #> Param($Request, $TriggerMetadata) - - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with the query parameters $TenantFilter = $Request.Query.tenantFilter $SearchId = $Request.Query.SearchId $Days = $Request.Query.Days $Type = $Request.Query.Type - if ($TenantFilter) { switch ($Type) { 'Searches' { @@ -80,12 +73,12 @@ function Invoke-ListAuditLogSearches { } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Body }) } else { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::BadRequest Body = 'TenantFilter is required' }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAuditLogTest.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAuditLogTest.ps1 index f7ed737d6a55..0f0efa9cbeff 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAuditLogTest.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAuditLogTest.ps1 @@ -7,11 +7,6 @@ function Invoke-ListAuditLogTest { Tenant.Alert.Read #> Param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $AuditLogQuery = @{ TenantFilter = $Request.Query.TenantFilter SearchId = $Request.Query.SearchId @@ -20,7 +15,7 @@ function Invoke-ListAuditLogTest { $TestResults = Test-CIPPAuditLogRules @AuditLogQuery } catch { $Body = Get-CippException -Exception $_ - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::InternalServerError Body = $Body }) @@ -36,7 +31,7 @@ function Invoke-ListAuditLogTest { MatchedRules = $TestResults.MatchedRules } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAuditLogs.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAuditLogs.ps1 index eace1b5443a9..232627b9581a 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAuditLogs.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAuditLogs.ps1 @@ -7,11 +7,6 @@ function Invoke-ListAuditLogs { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter $LogID = $Request.Query.LogId @@ -69,7 +64,10 @@ function Invoke-ListAuditLogs { if ($FilterConditions) { $Table.Filter = $FilterConditions -join ' and ' } - $AuditLogs = Get-CIPPAzDataTableEntity @Table | ForEach-Object { + + $Tenants = Get-Tenants -IncludeErrors + + $AuditLogs = Get-CIPPAzDataTableEntity @Table | Where-Object { $Tenants.defaultDomainName -contains $_.Tenant } | ForEach-Object { $_.Data = try { $_.Data | ConvertFrom-Json } catch { $_.AuditData } $_ | Select-Object @{n = 'LogId'; exp = { $_.RowKey } }, @{ n = 'Timestamp'; exp = { $_.Data.RawData.CreationTime } }, Tenant, Title, Data } @@ -82,7 +80,7 @@ function Invoke-ListAuditLogs { } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListWebhookAlert.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListWebhookAlert.ps1 index 12abc8bd4e6a..4e4039f63657 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListWebhookAlert.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListWebhookAlert.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListWebhookAlert { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ Function Invoke-ListWebhookAlert { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $Table = Get-CippTable -TableName 'SchedulerConfig' $WebhookRow = foreach ($Webhook in (Get-CIPPAzDataTableEntity @Table | Where-Object -Property PartitionKey -EQ 'WebhookAlert')) { @@ -22,7 +15,7 @@ Function Invoke-ListWebhookAlert { $Webhook } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($WebhookRow) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-PublicWebhooks.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-PublicWebhooks.ps1 index d0828455b311..43289dc9cd39 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-PublicWebhooks.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-PublicWebhooks.ps1 @@ -1,4 +1,3 @@ -using namespace System.Net function Invoke-PublicWebhooks { <# .FUNCTIONALITY @@ -7,12 +6,8 @@ function Invoke-PublicWebhooks { Public #> param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - Set-Location (Get-Item $PSScriptRoot).Parent.FullName $WebhookTable = Get-CIPPTable -TableName webhookTable $WebhookIncoming = Get-CIPPTable -TableName WebhookIncoming $Webhooks = Get-CIPPAzDataTableEntity @WebhookTable @@ -74,7 +69,7 @@ function Invoke-PublicWebhooks { $Body = 'This webhook is not authorized.' $StatusCode = [HttpStatusCode]::Forbidden } - $Body = 'Webhook Recieved' + $Body = 'Webhook Received' $StatusCode = [HttpStatusCode]::OK } else { @@ -82,8 +77,7 @@ function Invoke-PublicWebhooks { $StatusCode = [HttpStatusCode]::Forbidden } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-RemoveQueuedAlert.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-RemoveQueuedAlert.ps1 index 1ee3c7dcb788..af7a7cfd9a34 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-RemoveQueuedAlert.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-RemoveQueuedAlert.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-RemoveQueuedAlert { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-RemoveQueuedAlert { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with the query or body of the request $EventType = $Request.Query.EventType ?? $Request.Body.EventType @@ -39,8 +37,7 @@ Function Invoke-RemoveQueuedAlert { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ 'Results' = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecAddMultiTenantApp.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecAddMultiTenantApp.ps1 index 678ae951fb76..01fcd2b59e6e 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecAddMultiTenantApp.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecAddMultiTenantApp.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ExecAddMultiTenantApp { <# .FUNCTIONALITY @@ -8,11 +6,6 @@ function Invoke-ExecAddMultiTenantApp { Tenant.Application.ReadWrite #> param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - if ($Request.Body.configMode -eq 'manual') { $DelegateResources = $request.body.permissions | Where-Object -Property origin -EQ 'Delegated' | ForEach-Object { @{ id = $_.id; type = 'Scope' } } $DelegateResourceAccess = @{ ResourceAppId = '00000003-0000-0000-c000-000000000000'; resourceAccess = $DelegateResources } @@ -96,8 +89,7 @@ function Invoke-ExecAddMultiTenantApp { $StatusCode = [HttpStatusCode]::OK } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ Results = @($Results) } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecAppApproval.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecAppApproval.ps1 index 42e0b5d0ebf6..a76648e73a30 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecAppApproval.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecAppApproval.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ExecAppApproval { +function Invoke-ExecAppApproval { <# .FUNCTIONALITY Entrypoint @@ -9,14 +7,7 @@ Function Invoke-ExecAppApproval { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - - Write-Host "$($Request.query.ID)" - # Interact with query parameters or the body of the request. + # Seems to be an unused endpoint? -Bobby $ApplicationId = if ($Request.Query.ApplicationId) { $Request.Query.ApplicationId } else { $env:ApplicationID } $Results = Get-Tenants | ForEach-Object { @@ -26,8 +17,7 @@ Function Invoke-ExecAppApproval { } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Results }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecAppApprovalTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecAppApprovalTemplate.ps1 index 9368600072bb..eecb1f292552 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecAppApprovalTemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecAppApprovalTemplate.ps1 @@ -10,7 +10,7 @@ function Invoke-ExecAppApprovalTemplate { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $Table = Get-CIPPTable -TableName 'templates' $User = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json @@ -102,7 +102,6 @@ function Invoke-ExecAppApprovalTemplate { if ($Request.Query.TemplateId) { $templateId = $Request.Query.TemplateId $filter = "PartitionKey eq 'AppApprovalTemplate' and RowKey eq '$templateId'" - Write-LogMessage -headers $Headers -API $APIName -message "Retrieved specific template: $templateId" -Sev 'Info' } $Templates = Get-CIPPAzDataTableEntity @Table -Filter $filter @@ -147,7 +146,7 @@ function Invoke-ExecAppApprovalTemplate { } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = ConvertTo-Json -Depth 10 -InputObject @($Body) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecAppPermissionTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecAppPermissionTemplate.ps1 index 4dcabae9c18a..3cdc003452d4 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecAppPermissionTemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecAppPermissionTemplate.ps1 @@ -7,10 +7,8 @@ function Invoke-ExecAppPermissionTemplate { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $Table = Get-CIPPTable -TableName 'AppPermissions' @@ -75,7 +73,6 @@ function Invoke-ExecAppPermissionTemplate { if ($Request.Query.TemplateId) { $templateId = $Request.Query.TemplateId $filter = "PartitionKey eq 'Templates' and RowKey eq '$templateId'" - Write-LogMessage -headers $Headers -API 'ExecAppPermissionTemplate' -message "Retrieved specific template: $templateId" -Sev 'Info' } $Body = Get-CIPPAzDataTableEntity @Table -Filter $filter | ForEach-Object { @@ -90,7 +87,7 @@ function Invoke-ExecAppPermissionTemplate { } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = ConvertTo-Json -Depth 10 -InputObject @($Body) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecApplication.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecApplication.ps1 new file mode 100644 index 000000000000..64de2982c341 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecApplication.ps1 @@ -0,0 +1,150 @@ +function Invoke-ExecApplication { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Application.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $ValidTypes = @('applications', 'servicePrincipals') + $ValidActions = @('Update', 'Upsert', 'Delete', 'RemoveKey', 'RemovePassword') + + $Id = $Request.Query.Id ?? $Request.Body.Id + $Type = $Request.Query.Type ?? $Request.Body.Type + if (-not $Id) { + $AppId = $Request.Query.AppId ?? $Request.Body.AppId + if (-not $AppId) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = "Required parameter 'Id' or 'AppId' is missing" + }) + return + } + $IdPath = "(appId='$AppId')" + } else { + $IdPath = "/$Id" + } + if ($Type -and $ValidTypes -notcontains $Type) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = "Invalid Type specified. Valid types are: $($ValidTypes -join ', ')" + }) + return + } + + $Uri = "https://graph.microsoft.com/beta/$($Type)$($IdPath)" + $Action = $Request.Query.Action ?? $Request.Body.Action + + if ($ValidActions -notcontains $Action) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = "Invalid Action specified. Valid actions are: $($ValidActions -join ', ')" + }) + return + } + + $PostParams = @{ + Uri = $Uri + } + + if ($Action -eq 'Delete') { + $PostParams.Type = 'DELETE' + } + if ($Action -eq 'Update' -or $Action -eq 'Upsert') { + $PostParams.Type = 'PATCH' + } + + if ($Action -eq 'Upsert') { + $PostParams.AddedHeaders = @{ + 'Prefer' = 'create-if-missing' + } + } + + if ($Request.Body) { + $PostParams.Body = $Request.Body.Payload | ConvertTo-Json -Compress + } + + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + + try { + if ($Action -eq 'RemoveKey' -or $Action -eq 'RemovePassword') { + # Handle credential removal + $KeyIds = $Request.Body.KeyIds.value ?? $Request.Body.KeyIds + if (-not $KeyIds -or $KeyIds.Count -eq 0) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = "KeyIds parameter is required for $Action action" + }) + return + } + + if ($Action -eq 'RemoveKey') { + # For key credentials, use a single PATCH request + $CurrentObject = New-GraphGetRequest -Uri $Uri -tenantid $TenantFilter -AsApp $true + $UpdatedKeyCredentials = $CurrentObject.keyCredentials | Where-Object { $_.keyId -notin $KeyIds } + $PatchBody = @{ + keyCredentials = @($UpdatedKeyCredentials) + } + + $Response = New-GraphPOSTRequest -Uri $Uri -Type 'PATCH' -Body ($PatchBody | ConvertTo-Json -Depth 10) -tenantid $TenantFilter -AsApp $true + + $Results = @{ + resultText = "Successfully removed $($KeyIds.Count) key credential(s) from $Type" + state = 'success' + details = @($Response) + } + } else { + # For password credentials, use bulk removePassword requests + $BulkRequests = foreach ($KeyId in $KeyIds) { + $RemoveBody = @{ + keyId = $KeyId + } + + @{ + id = $KeyId + method = 'POST' + url = "$($Type)$($IdPath)/removePassword" + body = $RemoveBody + headers = @{ + 'Content-Type' = 'application/json' + } + } + } + + $BulkResults = New-GraphBulkRequest -Requests @($BulkRequests) -tenantid $TenantFilter -AsApp $true + + $SuccessCount = ($BulkResults | Where-Object { $_.status -eq 204 }).Count + $FailureCount = ($BulkResults | Where-Object { $_.status -ne 204 }).Count + + $Results = @{ + resultText = "Bulk RemovePassword completed. Success: $SuccessCount, Failures: $FailureCount" + state = if ($FailureCount -eq 0) { 'success' } else { 'error' } + details = @($BulkResults) + } + } + } else { + # Handle regular actions + $null = New-GraphPOSTRequest @PostParams -tenantid $TenantFilter -AsApp $true + $Results = @{ + resultText = "Successfully executed $Action on $Type with Id: $Id" + state = 'success' + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ Results = $Results } + }) + } catch { + $Results = @{ + resultText = "Failed to execute $Action on $Type with Id: $Id. Error: $($_.Exception.Message)" + state = 'error' + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = @{ Results = @($Results) } + }) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecCreateAppTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecCreateAppTemplate.ps1 new file mode 100644 index 000000000000..9e02c588bf36 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecCreateAppTemplate.ps1 @@ -0,0 +1,392 @@ +using namespace System.Net + +function Invoke-ExecCreateAppTemplate { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Application.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $TriggerMetadata.FunctionName + Write-LogMessage -headers $Request.headers -API $APINAME -message 'Accessed this API' -Sev 'Debug' + + try { + $TenantFilter = $Request.Body.TenantFilter + $AppId = $Request.Body.AppId + $DisplayName = $Request.Body.DisplayName + $Type = $Request.Body.Type # 'servicePrincipal' or 'application' + + if ([string]::IsNullOrWhiteSpace($AppId)) { + throw 'AppId is required' + } + + if ([string]::IsNullOrWhiteSpace($DisplayName)) { + throw 'DisplayName is required' + } + + # Build initial bulk request to get app registration and all service principals + # The SP we need will be in the splist, so we don't need a separate call + $InitialBulkRequests = @( + [PSCustomObject]@{ + id = 'app' + method = 'GET' + url = "/applications(appId='$AppId')?`$select=id,appId,displayName,requiredResourceAccess" + } + [PSCustomObject]@{ + id = 'splist' + method = 'GET' + url = '/servicePrincipals?$top=999&$select=id,appId,displayName' + } + ) + + Write-Information "Retrieving app details for AppId: $AppId in tenant: $TenantFilter" + $InitialResults = New-GraphBulkRequest -tenantid $TenantFilter -Requests $InitialBulkRequests -NoAuthCheck $true -AsApp $true + + $AppResult = $InitialResults | Where-Object { $_.id -eq 'app' } | Select-Object -First 1 + $TenantInfo = ($InitialResults | Where-Object { $_.id -eq 'splist' }).body.value + + # Find the specific service principal in the list + $SPResult = $TenantInfo | Where-Object { $_.appId -eq $AppId } | Select-Object -First 1 + + # Get the app details based on type + if ($Type -eq 'servicePrincipal') { + if (-not $SPResult) { + throw "Service principal not found for AppId: $AppId" + } + + $App = $SPResult + + # Check if we got the app registration and it has permissions + if ($AppResult.status -eq 200 -and $AppResult.body.requiredResourceAccess -and $AppResult.body.requiredResourceAccess.Count -gt 0) { + Write-LogMessage -headers $Request.headers -API $APINAME -message "Retrieved requiredResourceAccess from app registration for $AppId" -Sev 'Info' + $Permissions = $AppResult.body.requiredResourceAccess + } else { + # App registration not accessible or no permissions configured + # Build permissions from oauth2PermissionGrants and appRoleAssignments + Write-LogMessage -headers $Request.headers -API $APINAME -message "Could not retrieve app registration for $AppId - extracting from service principal grants and role assignments" -Sev 'Info' + + # Bulk request to get grants and assignments + $GrantsBulkRequests = @( + [PSCustomObject]@{ + id = 'grants' + method = 'GET' + url = "/servicePrincipals(appId='$AppId')/oauth2PermissionGrants" + } + [PSCustomObject]@{ + id = 'assignments' + method = 'GET' + url = "/servicePrincipals(appId='$AppId')/appRoleAssignments" + } + ) + + $GrantsResults = New-GraphBulkRequest -tenantid $TenantFilter -Requests $GrantsBulkRequests -NoAuthCheck $true -AsApp $true + + $DelegatePermissionGrants = ($GrantsResults | Where-Object { $_.id -eq 'grants' }).body.value + $AppRoleAssignments = ($GrantsResults | Where-Object { $_.id -eq 'assignments' }).body.value + + $DelegateResourceAccess = $DelegatePermissionGrants | Group-Object -Property resourceId | ForEach-Object { + [pscustomobject]@{ + resourceAppId = ($TenantInfo | Where-Object -Property id -EQ $_.Name).appId + resourceAccess = @($_.Group | ForEach-Object { + [pscustomobject]@{ + id = $_.scope + type = 'Scope' + } + }) + } + } + + $ApplicationResourceAccess = $AppRoleAssignments | Group-Object -Property ResourceId | ForEach-Object { + [pscustomobject]@{ + resourceAppId = ($TenantInfo | Where-Object -Property id -EQ $_.Name).appId + resourceAccess = @($_.Group | ForEach-Object { + [pscustomobject]@{ + id = $_.appRoleId + type = 'Role' + } + }) + } + } + + # Combine both delegated and application permissions + $Permissions = @($DelegateResourceAccess) + @($ApplicationResourceAccess) | Where-Object { $_ -ne $null } + + if ($Permissions.Count -eq 0) { + Write-LogMessage -headers $Request.headers -API $APINAME -message "No permissions found for $AppId via any method" -Sev 'Warning' + } else { + Write-LogMessage -headers $Request.headers -API $APINAME -message "Extracted $($Permissions.Count) resource permission(s) from service principal grants" -Sev 'Info' + } + } + } else { + # For app registrations (applications) + if ($AppResult.status -ne 200 -or -not $AppResult.body) { + throw "App registration not found for AppId: $AppId" + } + + $App = $AppResult.body + + $Tenant = Get-Tenants -TenantFilter $TenantFilter + if ($Tenant.customerId -ne $env:TenantID) { + $ExistingApp = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/applications?`$filter=displayName eq '$DisplayName'" -tenantid $env:TenantID -NoAuthCheck $true -AsApp $true + + if ($ExistingApp) { + Write-Information "App Registration $AppId already exists in partner tenant" + $AppId = $ExistingApp.appId + $App = $ExistingApp + Write-LogMessage -headers $Request.headers -API $APINAME -message "App Registration $($AppDetails.displayName) already exists in partner tenant" -Sev 'Info' + } else { + Write-Information "Copying App Registration $AppId from customer tenant $TenantFilter to partner tenant" + $PropertiesToRemove = @( + 'appId' + 'id' + 'createdDateTime' + 'deletedDateTime' + 'publisherDomain' + 'servicePrincipalLockConfiguration' + 'identifierUris' + 'applicationIdUris' + 'keyCredentials' + 'passwordCredentials' + 'isDisabled' + ) + $AppCopyBody = $App | Select-Object -Property * -ExcludeProperty $PropertiesToRemove + # Remove any null properties + $NullProperties = [System.Collections.Generic.List[string]]::new() + foreach ($Property in $AppCopyBody.PSObject.Properties.Name) { + if ($null -eq $AppCopyBody.$Property -or $AppCopyBody.$Property -eq '' -or !$AppCopyBody.$Property) { + Write-Information "Removing null property $Property from app copy body" + $NullProperties.Add($Property) + } + } + $AppCopyBody = $AppCopyBody | Select-Object -Property * -ExcludeProperty $NullProperties + if ($AppCopyBody.signInAudience -eq 'AzureADMyOrg') { + # Enterprise apps cannot be copied to another tenant + $AppCopyBody.signInAudience = 'AzureADMultipleOrgs' + } + if ($AppCopyBody.web -and $AppCopyBody.web.redirectUris) { + # Remove redirect URI settings if property exists + $AppCopyBody.web.PSObject.Properties.Remove('redirectUriSettings') + } + if ($AppCopyBody.api.oauth2PermissionScopes) { + $AppCopyBody.api.oauth2PermissionScopes = @(foreach ($Scope in $AppCopyBody.api.oauth2PermissionScopes) { + $Scope | Select-Object * -ExcludeProperty 'isPrivate' + }) + } + if ($AppCopyBody.appRoles) { + $AppCopyBody.appRoles = @(foreach ($Role in $AppCopyBody.api.appRoles) { + $Role | Select-Object * -ExcludeProperty 'isPreAuthorizationRequired', 'isPrivate' + }) + } + if ($AppCopyBody.api -and $AppCopyBody.api.tokenEncryptionSetting) { + # Remove token encryption settings if property exists + $AppCopyBody.api.PSObject.Properties.Remove('tokenEncryptionSetting') + } + + $NewApp = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/v1.0/applications' -tenantid $env:TenantID -NoAuthCheck $true -AsApp $true -type POST -body ($AppCopyBody | ConvertTo-Json -Depth 10) + + if (-not $NewApp) { + throw 'Failed to copy app registration to partner tenant' + } + + Write-Information "App Registration copied. New AppId: $($NewApp.appId)" + $App = $NewApp + $AppId = $NewApp.appId + Write-Information "Creating service principal for AppId: $AppId in partner tenant" + $Body = @{ + appId = $AppId + } + $null = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/v1.0/servicePrincipals' -tenantid $env:TenantID -NoAuthCheck $true -AsApp $true -type POST -body ($Body | ConvertTo-Json -Depth 10) + Write-LogMessage -headers $Request.headers -API $APINAME -message "App Registration $($AppDetails.displayName) copied to partner tenant" -Sev 'Info' + } + } + + $Permissions = if ($App.requiredResourceAccess) { $App.requiredResourceAccess } else { @() } + } + + # Transform requiredResourceAccess to the CIPP permission format + # CIPP expects: { "resourceAppId": { "applicationPermissions": [], "delegatedPermissions": [] } } + # Graph returns: [ { "resourceAppId": "...", "resourceAccess": [ { "id": "...", "type": "Role|Scope" } ] } ] + $CIPPPermissions = @{} + $PermissionSetId = $null + $PermissionSetName = "$DisplayName (Auto-created)" + + if ($Permissions -and $Permissions.Count -gt 0) { + # Build bulk requests to get all service principals efficiently using object IDs from cached list + $BulkRequests = [System.Collections.Generic.List[object]]::new() + $RequestIndex = 0 + $AppIdToRequestId = @{} + + foreach ($Resource in $Permissions) { + $ResourceAppId = $Resource.resourceAppId + + # Find the service principal object ID from the cached list + $ResourceSPInfo = $TenantInfo | Where-Object { $_.appId -eq $ResourceAppId } | Select-Object -First 1 + + if ($ResourceSPInfo) { + $RequestId = "sp-$RequestIndex" + $AppIdToRequestId[$ResourceAppId] = $RequestId + + # Use object ID to fetch full details with appRoles and oauth2PermissionScopes + $BulkRequests.Add([PSCustomObject]@{ + id = $RequestId + method = 'GET' + url = "/servicePrincipals/$($ResourceSPInfo.id)?`$select=id,appId,displayName,appRoles,oauth2PermissionScopes" + }) + $RequestIndex++ + } else { + Write-LogMessage -headers $Request.headers -API $APINAME -message "Service principal not found in tenant for appId: $ResourceAppId" -Sev 'Warning' + } + } + + # Execute bulk request to get all service principals at once (only if we have requests) + if ($BulkRequests.Count -gt 0) { + Write-Information "Fetching $($BulkRequests.Count) service principal(s) via bulk request" + $BulkResults = New-GraphBulkRequest -tenantid $TenantFilter -Requests $BulkRequests -NoAuthCheck $true -AsApp $true + + # Create lookup table for service principals by appId + $SPLookup = @{} + foreach ($Result in $BulkResults) { + if ($Result.status -eq 200 -and $Result.body) { + $SPLookup[$Result.body.appId] = $Result.body + } + } + } else { + $SPLookup = @{} + } + + # Now process permissions for each resource + foreach ($Resource in $Permissions) { + $ResourceAppId = $Resource.resourceAppId + $AppPerms = [System.Collections.ArrayList]::new() + $DelegatedPerms = [System.Collections.ArrayList]::new() + + $ResourceSP = $SPLookup[$ResourceAppId] + + if (!$ResourceSP) { + Write-LogMessage -headers $Request.headers -API $APINAME -message "Service principal not found for appId: $ResourceAppId - skipping permission translation" -Sev 'Warning' + continue + } + + foreach ($Access in $Resource.resourceAccess) { + if ($Access.type -eq 'Role') { + # Look up application permission name from appRoles + $AppRole = $ResourceSP.appRoles | Where-Object { $_.id -eq $Access.id } | Select-Object -First 1 + if ($AppRole) { + $PermObj = [PSCustomObject]@{ + id = $Access.id + value = $AppRole.value # Use the claim value name, not the GUID + } + [void]$AppPerms.Add($PermObj) + } else { + Write-LogMessage -headers $Request.headers -API $APINAME -message "Application permission $($Access.id) not found in $ResourceAppId appRoles" -Sev 'Warning' + } + } elseif ($Access.type -eq 'Scope') { + # Look up delegated permission name from oauth2PermissionScopes + $PermissionScope = $ResourceSP.oauth2PermissionScopes | Where-Object { $_.id -eq $Access.id } | Select-Object -First 1 + if ($PermissionScope) { + $PermObj = [PSCustomObject]@{ + id = $Access.id + value = $PermissionScope.value # Use the claim value name, not the GUID + } + [void]$DelegatedPerms.Add($PermObj) + } else { + Write-LogMessage -headers $Request.headers -API $APINAME -message "Delegated permission $($Access.id) not found in $ResourceAppId oauth2PermissionScopes" -Sev 'Warning' + } + } + } + + $CIPPPermissions[$ResourceAppId] = [PSCustomObject]@{ + applicationPermissions = @($AppPerms) + delegatedPermissions = @($DelegatedPerms) + } + } + + # Create the permission set in AppPermissions table + $PermissionSetId = (New-Guid).Guid + $PermissionsTable = Get-CIPPTable -TableName 'AppPermissions' + + $PermissionEntity = @{ + 'PartitionKey' = 'Templates' + 'RowKey' = [string]$PermissionSetId + 'TemplateName' = [string]$PermissionSetName + 'Permissions' = [string]($CIPPPermissions | ConvertTo-Json -Depth 10 -Compress) + 'UpdatedBy' = [string]'CIPP-API' + } + + Add-CIPPAzDataTableEntity @PermissionsTable -Entity $PermissionEntity -Force + Write-LogMessage -headers $Request.headers -API $APINAME -message "Permission set created with ID: $PermissionSetId for $($Permissions.Count) resource(s)" -Sev 'Info' + } + + # Create the template + $Table = Get-CIPPTable -TableName 'templates' + $TemplateId = (New-Guid).Guid + + $TemplateJson = @{ + TemplateName = "$DisplayName (Auto-created)" + AppId = $AppId + AppName = $DisplayName + AppType = 'EnterpriseApp' + Permissions = $CIPPPermissions + PermissionSetId = $PermissionSetId + PermissionSetName = $PermissionSetName + AutoCreated = $true + SourceTenant = $TenantFilter + CreatedDate = (Get-Date).ToString('yyyy-MM-ddTHH:mm:ss') + } | ConvertTo-Json -Depth 10 -Compress + + $Entity = @{ + JSON = "$TemplateJson" + RowKey = "$TemplateId" + PartitionKey = 'AppApprovalTemplate' + } + + Add-CIPPAzDataTableEntity @Table -Entity $Entity + + $PermissionCount = 0 + if ($CIPPPermissions -and $CIPPPermissions.Count -gt 0) { + foreach ($ResourceAppId in $CIPPPermissions.Keys) { + $Resource = $CIPPPermissions[$ResourceAppId] + if ($Resource.applicationPermissions) { + $PermissionCount = $PermissionCount + $Resource.applicationPermissions.Count + } + if ($Resource.delegatedPermissions) { + $PermissionCount = $PermissionCount + $Resource.delegatedPermissions.Count + } + } + } + + $Message = "Template created: $DisplayName with $PermissionCount permission(s)" + Write-LogMessage -headers $Request.headers -API $APINAME -message $Message -Sev 'Info' + + $Body = @{ + Results = @{'resultText' = $Message; 'state' = 'success' } + Metadata = @{ + TemplateId = $TemplateId + SourceTenant = $TenantFilter + } + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -headers $Request.headers -API $APINAME -message "Failed to create template: $ErrorMessage" -Sev 'Error' -LogData (Get-CippException -Exception $_) + Write-Warning "Failed to create template: $ErrorMessage" + Write-Information $_.InvocationInfo.PositionMessage + + $Body = @{ + Results = @(@{ + resultText = "Failed to create template: $ErrorMessage" + state = 'error' + details = Get-CippException -Exception $_ + }) + } + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = ($Body | ConvertTo-Json -Depth 10) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ListAppApprovalTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ListAppApprovalTemplates.ps1 index 5c43a217d76e..c39ad692a9b0 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ListAppApprovalTemplates.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ListAppApprovalTemplates.ps1 @@ -10,7 +10,7 @@ function Invoke-ListAppApprovalTemplates { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $Table = Get-CIPPTable -TableName 'templates' @@ -59,7 +59,7 @@ function Invoke-ListAppApprovalTemplates { } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = ConvertTo-Json -Depth 10 -InputObject @($Body) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Domains/Invoke-AddDomain.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Domains/Invoke-AddDomain.ps1 new file mode 100644 index 000000000000..4e6f40b4b01b --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Domains/Invoke-AddDomain.ps1 @@ -0,0 +1,50 @@ +function Invoke-AddDomain { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Administration.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $TenantFilter = $Request.Body.tenantFilter + $DomainName = $Request.Body.domain + + # Interact with query parameters or the body of the request. + try { + if ([string]::IsNullOrWhiteSpace($DomainName)) { + throw 'Domain name is required' + } + + # Validate domain name format + if ($DomainName -notmatch '^[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$') { + throw 'Invalid domain name format' + } + + Write-Information "Adding domain $DomainName to tenant $TenantFilter" + + $Body = @{ + id = $DomainName + } | ConvertTo-Json -Compress + + $GraphRequest = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/domains' -tenantid $TenantFilter -type POST -body $Body -AsApp $true + + $Result = "Successfully added domain $DomainName to tenant $TenantFilter. Please verify the domain to complete setup." + Write-LogMessage -headers $Request.Headers -API $APIName -tenant $TenantFilter -message "Added domain $DomainName" -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to add domain $DomainName`: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Request.Headers -API $APIName -tenant $TenantFilter -message "Failed to add domain $DomainName`: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::Forbidden + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) + +} + diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Domains/Invoke-ExecDomainAction.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Domains/Invoke-ExecDomainAction.ps1 new file mode 100644 index 000000000000..91380834dae8 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Domains/Invoke-ExecDomainAction.ps1 @@ -0,0 +1,91 @@ +function Invoke-ExecDomainAction { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Administration.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $TenantFilter = $Request.Body.tenantFilter + $DomainName = $Request.Body.domain + $Action = $Request.Body.Action + + try { + if ([string]::IsNullOrWhiteSpace($DomainName)) { + throw 'Domain name is required' + } + + if ([string]::IsNullOrWhiteSpace($Action)) { + throw 'Action is required' + } + + switch ($Action) { + 'verify' { + Write-Information "Verifying domain $DomainName for tenant $TenantFilter" + + $Body = @{ + verificationDnsRecordCollection = @() + } | ConvertTo-Json -Compress + + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/domains/$DomainName/verify" -tenantid $TenantFilter -type POST -body $Body -AsApp $true + + $Result = @{ + resultText = "Domain $DomainName has been verified successfully." + state = 'success' + } + + Write-LogMessage -headers $Request.Headers -API $APIName -tenant $TenantFilter -message "Verified domain $DomainName" -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } + 'delete' { + Write-Information "Deleting domain $DomainName from tenant $TenantFilter" + + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/domains/$DomainName" -tenantid $TenantFilter -type DELETE -AsApp $true + + $Result = @{ + resultText = "Domain $DomainName has been deleted successfully." + state = 'success' + } + + Write-LogMessage -headers $Request.Headers -API $APIName -tenant $TenantFilter -message "Deleted domain $DomainName" -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } + 'setDefault' { + Write-Information "Setting domain $DomainName as default for tenant $TenantFilter" + + $Body = @{ + isDefault = $true + } | ConvertTo-Json -Compress + + $GraphRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/domains/$DomainName" -tenantid $TenantFilter -type PATCH -body $Body -AsApp $true + + $Result = @{ + resultText = "Domain $DomainName has been set as the default domain successfully." + state = 'success' + } + + Write-LogMessage -headers $Request.Headers -API $APIName -tenant $TenantFilter -message "Set domain $DomainName as default" -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } + default { + throw "Invalid action: $Action" + } + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = @{ + resultText = "Failed to perform action on domain $DomainName`: $($ErrorMessage.NormalizedError)" + state = 'error' + } + Write-LogMessage -headers $Request.Headers -API $APIName -tenant $TenantFilter -message "Failed to perform action on domain $DomainName`: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::Forbidden + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ExecAddSPN.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ExecAddSPN.ps1 index 743eb49291ad..966ecb0072e9 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ExecAddSPN.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ExecAddSPN.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecAddSPN { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-ExecAddSPN { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. try { @@ -26,8 +24,7 @@ Function Invoke-ExecAddSPN { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{'Results' = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ExecOffboardTenant.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ExecOffboardTenant.ps1 index 6abc2c461279..840b2006a873 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ExecOffboardTenant.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ExecOffboardTenant.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ExecOffboardTenant { +function Invoke-ExecOffboardTenant { <# .FUNCTIONALITY Entrypoint @@ -12,7 +10,7 @@ Function Invoke-ExecOffboardTenant { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + try { $TenantQuery = $Request.Body.TenantFilter.value ?? $Request.Body.TenantFilter @@ -62,7 +60,7 @@ Function Invoke-ExecOffboardTenant { } if ($request.body.RemoveCSPnotificationContacts -eq $true) { - # Remove all email adresses that match the CSP tenants domains from the contact properties in /organization + # Remove all email addresses that match the CSP tenants domains from the contact properties in /organization try { try { $domains = (New-GraphGETRequest -Uri "https://graph.microsoft.com/v1.0/domains?`$select=id" -tenantid $env:TenantID -NoAuthCheck:$true).id @@ -86,7 +84,7 @@ Function Invoke-ExecOffboardTenant { $property = $_ $propertyContacts = $orgContacts.($($property)) - if ($propertyContacts -AND ($domains -notcontains ($propertyContacts | ForEach-Object { $_.Split('@')[1] }))) { + if ($propertyContacts -and ($domains -notcontains ($propertyContacts | ForEach-Object { $_.Split('@')[1] }))) { $newPropertyContent = [System.Collections.Generic.List[object]]($propertyContacts | Where-Object { $domains -notcontains $_.Split('@')[1] }) $patchContactBody = if (!($newPropertyContent)) { "{ `"$($property)`" : [] }" } else { [pscustomobject]@{ $property = $newPropertyContent } | ConvertTo-Json } @@ -105,6 +103,29 @@ Function Invoke-ExecOffboardTenant { # TODO Add logic for privacyProfile later - rvdwegen } + + if ($request.body.RemoveDomainAnalyserData -eq $true) { + # Remove all Domain Analyser data for this tenant + try { + $DomainTable = Get-CIPPTable -Table 'Domains' + $Filter = "TenantGUID eq '{0}'" -f $TenantId + $DomainEntries = Get-CIPPAzDataTableEntity @DomainTable -Filter $Filter + + if ($DomainEntries) { + $DomainCount = ($DomainEntries | Measure-Object).Count + foreach ($Domain in $DomainEntries) { + Remove-AzDataTableEntity @DomainTable -Entity $Domain + } + $Results.Add("Successfully removed $DomainCount Domain Analyser entries") + Write-LogMessage -headers $Request.Headers -API $APIName -message "Removed $DomainCount Domain Analyser entries" -Sev 'Info' -tenant $TenantFilter + } else { + $Results.Add('No Domain Analyser data found for this tenant') + } + } catch { + $Errors.Add("Failed to remove Domain Analyser data: $($_.Exception.message)") + } + } + $VendorApps = $Request.Body.vendorApplications if ($VendorApps) { $VendorApps | ForEach-Object { @@ -192,7 +213,7 @@ Function Invoke-ExecOffboardTenant { $StatusCode = [HttpStatusCode]::OK $body = $_.Exception.message } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ExecOnboardTenant.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ExecOnboardTenant.ps1 index fdf1b97e79ba..fc182fe05dac 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ExecOnboardTenant.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ExecOnboardTenant.ps1 @@ -1,9 +1,7 @@ -using namespace System.Net - function Invoke-ExecOnboardTenant { <# .FUNCTIONALITY - Entrypoint + Entrypoint,AnyTenant .ROLE Tenant.Administration.ReadWrite #> @@ -11,7 +9,7 @@ function Invoke-ExecOnboardTenant { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $Id = $Request.Body.id @@ -109,8 +107,7 @@ function Invoke-ExecOnboardTenant { $StatusCode = [HttpStatusCode]::NotFound $Results = 'Relationship not found' } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $Results }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ExecUpdateSecureScore.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ExecUpdateSecureScore.ps1 index bf38d341040c..c7593f0ab135 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ExecUpdateSecureScore.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ExecUpdateSecureScore.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ExecUpdateSecureScore { +function Invoke-ExecUpdateSecureScore { <# .FUNCTIONALITY Entrypoint @@ -12,30 +10,34 @@ Function Invoke-ExecUpdateSecureScore { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantFilter = $Request.Body.TenantFilter $ControlName = $Request.Body.ControlName - $Body = @{ - comment = $Request.Body.reason - state = $Request.Body.resolutionType.value - vendorInformation = $Request.Body.vendorInformation - } - try { - $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/security/secureScoreControlProfiles/$ControlName" -tenantid $TenantFilter -type PATCH -Body (ConvertTo-Json -InputObject $Body -Compress) - $StatusCode = [HttpStatusCode]::OK - $Result = "Successfully set control $ControlName to $($Body.state)" - Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev 'Info' - } catch { - $ErrorMessage = Get-CippException -Exception $_ - $Result = "Failed to set control $ControlName to $($Body.state). Error: $($ErrorMessage.NormalizedError)" - Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev Error -LogData $ErrorMessage - $StatusCode = [HttpStatusCode]::InternalServerError - } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + if ($ControlName -match '^scid_') { + $Result = 'Defender controls cannot be updated via this API. Please use the Microsoft 365 Defender portal to update these controls.' + $StatusCode = [HttpStatusCode]::BadRequest + } else { + $Body = @{ + comment = $Request.Body.reason + state = $Request.Body.resolutionType.value + vendorInformation = $Request.Body.vendorInformation + } + try { + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/security/secureScoreControlProfiles/$ControlName" -tenantid $TenantFilter -type PATCH -Body (ConvertTo-Json -InputObject $Body -Compress) + $StatusCode = [HttpStatusCode]::OK + $Result = "Successfully set control $ControlName to $($Body.state)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev 'Info' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to set control $ControlName to $($Body.state). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + } + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{'Results' = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ListAppConsentRequests.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ListAppConsentRequests.ps1 index 89472cd5821a..45faac54ba3a 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ListAppConsentRequests.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ListAppConsentRequests.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ListAppConsentRequests { <# .FUNCTIONALITY @@ -8,20 +6,35 @@ function Invoke-ListAppConsentRequests { Tenant.Administration.Read #> param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter + $RequestStatus = $Request.Query.RequestStatus + $Filter = $Request.Query.Filter try { if ($TenantFilter -eq 'AllTenants') { throw 'AllTenants is not yet supported' } - $appConsentRequests = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/identityGovernance/appConsent/appConsentRequests' -tenantid $TenantFilter # Need the beta endpoint to get consentType + # Apply server-side filtering if requested + $Uri = 'https://graph.microsoft.com/beta/identityGovernance/appConsent/appConsentRequests' # Need the beta endpoint to get consentType + if ($Filter -eq $true -and $RequestStatus) { + switch ($RequestStatus) { + 'InProgress' { + $FilterQuery = "userConsentRequests/any (u:u/status eq '$RequestStatus')" + $Uri = "$Uri`?`$filter=$([System.Web.HttpUtility]::UrlEncode($FilterQuery))" + Write-Host "Applying server-side filter for RequestStatus: $RequestStatus" + $ServerSideFilteringApplied = $true + } + default { + # All the other values are not supported yet even if the Graph API docs say they are. -Bobby + $ServerSideFilteringApplied = $false + } + } + } + + $appConsentRequests = New-GraphGetRequest -Uri $Uri -tenantid $TenantFilter + $Results = foreach ($app in $appConsentRequests) { $userConsentRequests = New-GraphGetRequest -Uri "https://graph.microsoft.com/v1.0/identityGovernance/appConsent/appConsentRequests/$($app.id)/userConsentRequests" -tenantid $TenantFilter $userConsentRequests | ForEach-Object { @@ -48,15 +61,22 @@ function Invoke-ListAppConsentRequests { } } } + + # Apply filtering if requested. Has to be done before and after the foreach loop, as the serverside filter is only supported for InProgress. + if ($Filter -eq $true -and $ServerSideFilteringApplied -eq $false) { + if ($RequestStatus) { + Write-Host "Filtering by RequestStatus: $RequestStatus" + $Results = $Results | Where-Object { $_.requestStatus -eq $RequestStatus } + } + } $StatusCode = [HttpStatusCode]::OK } catch { $ErrorMessage = Get-CippException -Exception $_ $StatusCode = [HttpStatusCode]::InternalServerError - Write-LogMessage -Headers $Headers -API $APIName -message 'app consent request list failed' -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage - $Results = @{ appDisplayName = "Error: $($ErrorMessage.NormalizedError)" } + $Results = "Error: $($ErrorMessage.NormalizedError)" } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @($Results) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ListDomains.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ListDomains.ps1 index cf11e6b09050..f9662cbe6514 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ListDomains.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ListDomains.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListDomains { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ Function Invoke-ListDomains { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter @@ -24,8 +17,7 @@ Function Invoke-ListDomains { $Result = Get-NormalizedError -Message $_.Exception.Message $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @($Result) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ListTenantOnboarding.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ListTenantOnboarding.ps1 index ce5bafeedcd3..3fd36731e3f4 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ListTenantOnboarding.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ListTenantOnboarding.ps1 @@ -6,13 +6,6 @@ function Invoke-ListTenantOnboarding { Tenant.Administration.Read #> Param($Request, $TriggerMetadata) - - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - try { $OnboardTable = Get-CIPPTable -TableName 'TenantOnboarding' $TenantOnboardings = Get-CIPPAzDataTableEntity @OnboardTable @@ -33,8 +26,7 @@ function Invoke-ListTenantOnboarding { $Results = "Function Error: $($ErrorMessage.LineNumber) - $($ErrorMessage.NormalizedError)" $StatusCode = [HttpStatusCode]::BadRequest } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @($Results) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-SetAuthMethod.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-SetAuthMethod.ps1 index 5c5d3c2839b3..8c7ab7fab111 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-SetAuthMethod.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-SetAuthMethod.ps1 @@ -9,7 +9,7 @@ function Invoke-SetAuthMethod { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $State = if ($Request.Body.state -eq 'enabled') { $true } else { $false } @@ -25,8 +25,7 @@ function Invoke-SetAuthMethod { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = [pscustomobject]@{'Results' = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-AddTenant.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-AddTenant.ps1 index 1234c4523d2d..3d83a04a2bd6 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-AddTenant.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-AddTenant.ps1 @@ -7,10 +7,8 @@ function Invoke-AddTenant { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $Action = $Request.Body.Action ?? $Request.Query.Action @@ -202,7 +200,7 @@ function Invoke-AddTenant { } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-EditTenant.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-EditTenant.ps1 index e18c9ba35954..dfc33fd7f5f3 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-EditTenant.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-EditTenant.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-EditTenant { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ function Invoke-EditTenant { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $customerId = $Request.Body.customerId @@ -67,12 +65,30 @@ function Invoke-EditTenant { Remove-AzDataTableEntity @GroupMembersTable -Entity $Group } } + $DomainBasedEntries = Get-CIPPAzDataTableEntity @GroupMembersTable -Filter "customerId eq '$($Tenant.defaultDomainName)'" + if ($DomainBasedEntries) { + foreach ($Entry in $DomainBasedEntries) { + try { + # Add corrected GUID-based entry using the actual GUID + $NewEntry = @{ + PartitionKey = 'Member' + RowKey = '{0}-{1}' -f $Entry.GroupId, $Tenant.customerId + GroupId = $Entry.GroupId + customerId = $Tenant.customerId + } + Add-CIPPAzDataTableEntity @GroupMembersTable -Entity $NewEntry -Force + Remove-AzDataTableEntity @GroupMembersTable -Entity $Entry + } catch { + Write-Host "Error migrating entry: $($_.Exception.Message)" + } + } + } $response = @{ state = 'success' resultText = 'Tenant details updated successfully' } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $response }) @@ -82,7 +98,7 @@ function Invoke-EditTenant { state = 'error' resultText = $_.Exception.Message } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::InternalServerError Body = $response }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-EditTenantOffboardingDefaults.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-EditTenantOffboardingDefaults.ps1 new file mode 100644 index 000000000000..014e9aed8d7c --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-EditTenantOffboardingDefaults.ps1 @@ -0,0 +1,79 @@ +function Invoke-EditTenantOffboardingDefaults { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.Config.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $customerId = $Request.Body.customerId + $offboardingDefaults = $Request.Body.offboardingDefaults + + if (!$customerId) { + $response = @{ + state = 'error' + resultText = 'Customer ID is required' + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = $response + }) + return + } + + $PropertiesTable = Get-CippTable -TableName 'TenantProperties' + + try { + # Convert the offboarding defaults to JSON string and ensure it's treated as a string + $jsonValue = [string]($offboardingDefaults | ConvertTo-Json -Compress) + + if ($jsonValue -and $jsonValue -ne '{}' -and $jsonValue -ne 'null' -and $jsonValue -ne '') { + # Save offboarding defaults + $offboardingEntity = @{ + PartitionKey = [string]$customerId + RowKey = [string]'OffboardingDefaults' + Value = [string]$jsonValue + } + $null = Add-CIPPAzDataTableEntity @PropertiesTable -Entity $offboardingEntity -Force + Write-LogMessage -headers $Headers -tenant $customerId -API $APIName -message "Updated tenant offboarding defaults" -Sev 'Info' + + $resultText = 'Tenant offboarding defaults updated successfully' + } else { + # Remove offboarding defaults if empty or null + $Existing = Get-CIPPAzDataTableEntity @PropertiesTable -Filter "PartitionKey eq '$customerId' and RowKey eq 'OffboardingDefaults'" + if ($Existing) { + Remove-AzDataTableEntity @PropertiesTable -Entity $Existing + Write-LogMessage -headers $Headers -tenant $customerId -API $APIName -message "Removed tenant offboarding defaults" -Sev 'Info' + } + + $resultText = 'Tenant offboarding defaults cleared successfully' + } + + $response = @{ + state = 'success' + resultText = $resultText + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $response + }) + } catch { + Write-LogMessage -headers $Headers -tenant $customerId -API $APINAME -message "Edit Tenant Offboarding Defaults failed. The error is: $($_.Exception.Message)" -Sev 'Error' + $response = @{ + state = 'error' + resultText = $_.Exception.Message + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = $response + }) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-ListTenantDetails.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-ListTenantDetails.ps1 index 95cf208f7224..98bb7a0641e6 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-ListTenantDetails.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-ListTenantDetails.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListTenantDetails { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-ListTenantDetails { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter @@ -37,8 +35,7 @@ Function Invoke-ListTenantDetails { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $org }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-ListTenants.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-ListTenants.ps1 index 624e16be31c7..c0fa299b5466 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-ListTenants.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-ListTenants.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ListTenants { <# .FUNCTIONALITY @@ -12,17 +10,15 @@ function Invoke-ListTenants { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantAccess = Test-CIPPAccess -Request $Request -TenantList Write-Host "Tenant Access: $TenantAccess" - if ($TenantAccess -notcontains 'AllTenants') { - $AllTenantSelector = $false - } else { - $AllTenantSelector = $Request.Query.AllTenantSelector - } + $AllTenantSelector = $Request.Query.AllTenantSelector + + $IncludeOffboardingDefaults = $Request.Query.IncludeOffboardingDefaults # Clear Cache if ($Request.Body.ClearCache -eq $true) { @@ -40,7 +36,7 @@ function Invoke-ListTenants { Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Compress -Depth 5) $GraphRequest = [pscustomobject]@{'Results' = 'Cache has been cleared and a tenant refresh is queued.' } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @{ Results = @($GraphRequest) @@ -70,21 +66,60 @@ function Invoke-ListTenants { } try { $TenantFilter = $Request.Query.tenantFilter - $Tenants = Get-Tenants -IncludeErrors -SkipDomains + $tenantParams = @{ + IncludeErrors = $true + SkipDomains = $true + } + if ($TenantFilter -and $TenantFilter -ne 'AllTenants') { + $tenantParams['TenantFilter'] = $TenantFilter + } + + $Tenants = Get-Tenants @tenantParams + if ($TenantAccess -notcontains 'AllTenants') { $Tenants = $Tenants | Where-Object -Property customerId -In $TenantAccess } - if ($null -eq $TenantFilter -or $TenantFilter -eq 'null') { + # If offboarding defaults are requested, fetch them + if ($IncludeOffboardingDefaults -eq 'true' -and $Tenants) { + $PropertiesTable = Get-CippTable -TableName 'TenantProperties' + + # Get all offboarding defaults for all tenants in one query for performance + $AllOffboardingDefaults = Get-CIPPAzDataTableEntity @PropertiesTable -Filter "RowKey eq 'OffboardingDefaults'" + + # Add offboarding defaults to each tenant + foreach ($Tenant in $Tenants) { + $TenantDefaults = $AllOffboardingDefaults | Where-Object { $_.PartitionKey -eq $Tenant.customerId } + if ($TenantDefaults) { + try { + $Tenant | Add-Member -MemberType NoteProperty -Name 'offboardingDefaults' -Value ($TenantDefaults.Value | ConvertFrom-Json) -Force + } catch { + Write-LogMessage -headers $Headers -API $APIName -message "Failed to parse offboarding defaults for tenant $($Tenant.customerId): $($_.Exception.Message)" -Sev 'Warning' + $Tenant | Add-Member -MemberType NoteProperty -Name 'offboardingDefaults' -Value $null -Force + } + } else { + $Tenant | Add-Member -MemberType NoteProperty -Name 'offboardingDefaults' -Value $null -Force + } + } + } + + if (($null -eq $TenantFilter -or $TenantFilter -eq 'null') -or $Request.Query.Mode -eq 'TenantList') { $TenantList = [system.collections.generic.list[object]]::new() if ($AllTenantSelector -eq $true) { - $TenantList.Add(@{ - customerId = 'AllTenants' - defaultDomainName = 'AllTenants' - displayName = '*All Tenants' - domains = 'AllTenants' - GraphErrorCount = 0 - }) | Out-Null + $AllTenantsObject = @{ + customerId = 'AllTenants' + defaultDomainName = 'AllTenants' + displayName = '*All Tenants' + domains = 'AllTenants' + GraphErrorCount = 0 + } + + # Add offboarding defaults to AllTenants object if requested + if ($IncludeOffboardingDefaults -eq 'true') { + $AllTenantsObject.offboardingDefaults = $null + } + + $TenantList.Add($AllTenantsObject) | Out-Null if (($Tenants).length -gt 1) { $TenantList.AddRange($Tenants) | Out-Null @@ -105,11 +140,13 @@ function Invoke-ListTenants { @{Name = 'portal_intune'; Expression = { "https://intune.microsoft.com/$($_.defaultDomainName)" } }, @{Name = 'portal_security'; Expression = { "https://security.microsoft.com/?tid=$($_.customerId)" } }, @{Name = 'portal_compliance'; Expression = { "https://purview.microsoft.com/?tid=$($_.customerId)" } }, - @{Name = 'portal_sharepoint'; Expression = { "/api/ListSharePointAdminUrl?tenantFilter=$($_.defaultDomainName)" } } + @{Name = 'portal_sharepoint'; Expression = { "/api/ListSharePointAdminUrl?tenantFilter=$($_.defaultDomainName)" } }, + @{Name = 'portal_platform'; Expression = { "https://admin.powerplatform.microsoft.com/account/login/$($_.customerId)" } }, + @{Name = 'portal_bi'; Expression = { "https://app.powerbi.com/admin-portal?ctid=$($_.customerId)" } } } } else { - $body = $Tenants | Where-Object -Property defaultDomainName -EQ $TenantFilter + $body = $Tenants } Write-LogMessage -headers $Headers -tenant $TenantFilter -API $APIName -message 'Listed Tenant Details' -Sev 'Debug' @@ -124,7 +161,7 @@ function Invoke-ListTenants { } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($Body) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-RemoveTenantCapabilitiesCache.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-RemoveTenantCapabilitiesCache.ps1 new file mode 100644 index 000000000000..8c0d5174553c --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-RemoveTenantCapabilitiesCache.ps1 @@ -0,0 +1,57 @@ +function Invoke-RemoveTenantCapabilitiesCache { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.Administration.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Get the tenant identifier from query parameters + $DefaultDomainName = $Request.Query.defaultDomainName + if (-not $DefaultDomainName) { + $body = [pscustomobject]@{'Results' = 'Missing required parameter: defaultDomainName' } + $StatusCode = [HttpStatusCode]::BadRequest + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $body + }) + return + } + + try { + # Get the CacheCapabilities table + $Table = Get-CippTable -tablename 'CacheCapabilities' + + # Find the cache entry for this tenant + $Filter = "PartitionKey eq 'Capabilities' and RowKey eq '$DefaultDomainName'" + $CacheEntry = Get-CIPPAzDataTableEntity @Table -Filter $Filter -Property PartitionKey, RowKey + + if ($CacheEntry) { + # Remove the cache entry + Remove-AzDataTableEntity -Force @Table -Entity $CacheEntry + Write-LogMessage -Headers $Headers -API $APIName -message "Removed capabilities cache for tenant $DefaultDomainName." -Sev 'Info' + $body = [pscustomobject]@{'Results' = "Successfully removed capabilities cache for tenant $DefaultDomainName" } + $StatusCode = [HttpStatusCode]::OK + } else { + Write-LogMessage -Headers $Headers -API $APIName -message "No capabilities cache found for tenant $DefaultDomainName." -Sev 'Info' + $body = [pscustomobject]@{'Results' = "No capabilities cache found for tenant $DefaultDomainName" } + $StatusCode = [HttpStatusCode]::OK + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -Headers $Headers -API $APIName -message "Failed to remove capabilities cache for tenant $DefaultDomainName. $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + $body = [pscustomobject]@{'Results' = "Failed to remove capabilities cache: $($ErrorMessage.NormalizedError)" } + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-AddCAPolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-AddCAPolicy.ps1 index fc6fa8b523f3..26fa7c3b2b19 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-AddCAPolicy.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-AddCAPolicy.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-AddCAPolicy { +function Invoke-AddCAPolicy { <# .FUNCTIONALITY Entrypoint @@ -12,14 +10,25 @@ Function Invoke-AddCAPolicy { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' $Tenants = $Request.body.tenantFilter.value if ('AllTenants' -in $Tenants) { $Tenants = (Get-Tenants).defaultDomainName } $results = foreach ($Tenant in $tenants) { try { - $CAPolicy = New-CIPPCAPolicy -replacePattern $Request.Body.replacename -Overwrite $request.Body.overwrite -TenantFilter $Tenant -state $Request.Body.NewState -RawJSON $Request.Body.RawJSON -APIName $APIName -Headers $Headers + $NewCAPolicy = @{ + replacePattern = $Request.Body.replacename + Overwrite = $Request.Body.overwrite + TenantFilter = $Tenant + state = $Request.Body.NewState + DisableSD = $Request.Body.DisableSD + CreateGroups = $Request.Body.CreateGroups + RawJSON = $Request.Body.RawJSON + APIName = $APIName + Headers = $Headers + } + $CAPolicy = New-CIPPCAPolicy @NewCAPolicy + "$CAPolicy" } catch { "$($_.Exception.Message)" @@ -30,8 +39,7 @@ Function Invoke-AddCAPolicy { $body = [pscustomobject]@{'Results' = @($results) } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-AddCATemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-AddCATemplate.ps1 index db7ca80c47bd..4bbd5ad79df3 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-AddCATemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-AddCATemplate.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-AddCATemplate { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-AddCATemplate { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantFilter = $Request.Body.tenantFilter @@ -40,8 +38,7 @@ Function Invoke-AddCATemplate { } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{'Results' = "$Result" } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-AddNamedLocation.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-AddNamedLocation.ps1 index dfb504bf6eea..941bcdef574f 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-AddNamedLocation.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-AddNamedLocation.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-AddNamedLocation { <# .FUNCTIONALITY @@ -11,10 +9,6 @@ function Invoke-AddNamedLocation { param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - # Input bindings are passed in via param block. $Tenants = $request.body.selectedTenants.value Write-Host ($Request.body | ConvertTo-Json) @@ -53,8 +47,7 @@ function Invoke-AddNamedLocation { $body = [pscustomobject]@{'Results' = @($results) } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-EditCAPolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-EditCAPolicy.ps1 index eb3324e2ab75..fee3c24bce2c 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-EditCAPolicy.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-EditCAPolicy.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-EditCAPolicy { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-EditCAPolicy { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with the request $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter @@ -32,7 +30,7 @@ Function Invoke-EditCAPolicy { $properties["displayName"] = $DisplayName } - $Request = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta//identity/conditionalAccess/policies/$($ID)" -tenantid $TenantFilter -type PATCH -body ($properties | ConvertTo-Json) -asapp $true + $Request = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies/$($ID)" -tenantid $TenantFilter -type PATCH -body ($properties | ConvertTo-Json) -asapp $true $Result = "Successfully updated CA policy $($ID)" if ($State) { $Result += " state to $($State)" } @@ -47,8 +45,7 @@ Function Invoke-EditCAPolicy { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ 'Results' = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecCACheck.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecCACheck.ps1 index 31a2a7694476..9d0cc1b1f683 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecCACheck.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecCACheck.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ExecCaCheck { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ function Invoke-ExecCaCheck { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $Tenant = $Request.Body.tenantFilter $UserID = $Request.Body.userID.value if ($Request.Body.IncludeApplications.value) { @@ -52,8 +45,7 @@ function Invoke-ExecCaCheck { $body = [pscustomobject]@{'Results' = $results } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecCAExclusion.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecCAExclusion.ps1 index 758b92eaef24..915f64fc4244 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecCAExclusion.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecCAExclusion.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ExecCAExclusion { +function Invoke-ExecCAExclusion { <# .FUNCTIONALITY Entrypoint @@ -9,53 +7,144 @@ Function Invoke-ExecCAExclusion { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - #If UserId is a guid, get the user's UPN - $TenantFilter = $Request.Body.tenantFilter - $UserId = $Request.Body.UserID - $EndDate = $Request.Body.EndDate - $PolicyId = $Request.Body.PolicyId - $ExclusionType = $Request.Body.ExclusionType + try { + #If UserId is a guid, get the user's UPN + $TenantFilter = $Request.Body.tenantFilter + $UserID = $Request.Body.UserID + $Username = $Request.Body.Username + $Users = $Request.Body.Users + $EndDate = $Request.Body.EndDate + $PolicyId = $Request.Body.PolicyId + $ExclusionType = $Request.Body.ExclusionType + $ExcludeLocationAuditAlerts = $Request.Body.excludeLocationAuditAlerts + if ($Users) { + $UserID = $Users.value + $Username = $Users.addedFields.userPrincipalName -join ', ' + } else { + if ($UserID -match '^[a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}$' -and -not $Username) { + $Username = (New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/users/$($UserID)" -tenantid $TenantFilter).userPrincipalName + } + } - if ($UserId -match '^[a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}$') { - $Username = (New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/users/$($UserId)" -tenantid $TenantFilter).userPrincipalName - } - if ($Request.Body.vacation -eq 'true') { - $StartDate = $Request.Body.StartDate - $EndDate = $Request.Body.EndDate - $TaskBody = [pscustomobject]@{ - TenantFilter = $TenantFilter - Name = "Add CA Exclusion Vacation Mode: $Username - $($TenantFilter)" - Command = @{ - value = 'Set-CIPPCAExclusion' - label = 'Set-CIPPCAExclusion' - } - Parameters = [pscustomobject]@{ - ExclusionType = 'Add' - UserID = $UserID + $Policy = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies/$($PolicyId)?`$select=id,displayName,conditions" -tenantid $TenantFilter -asApp $true + + if (-not $Policy) { + throw "Policy with ID $PolicyId not found in tenant $TenantFilter." + } + + $SecurityGroups = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/groups?`$select=id,displayName&`$filter=securityEnabled eq true and mailEnabled eq false&`$count=true" -tenantid $TenantFilter + $VacationGroup = $SecurityGroups | Where-Object { $_.displayName -contains "Vacation Exclusion - $($Policy.displayName)" } + + if (!$VacationGroup) { + Write-Information "Creating vacation group: Vacation Exclusion - $($Policy.displayName)" + $Guid = [guid]::NewGuid().ToString() + $GroupObject = @{ + groupType = 'generic' + displayName = "Vacation Exclusion - $($Policy.displayName)" + username = "vacation$Guid" + securityEnabled = $true + } + $NewGroup = New-CIPPGroup -GroupObject $GroupObject -TenantFilter $TenantFilter -APIName 'Invoke-ExecCAExclusion' + $GroupId = $NewGroup.GroupId + } else { + Write-Information "Using existing vacation group: $($VacationGroup.displayName)" + $GroupId = $VacationGroup.id + } + + if ($Policy.conditions.users.excludeGroups -notcontains $GroupId) { + Set-CIPPCAExclusion -TenantFilter $TenantFilter -ExclusionType 'Add' -PolicyId $PolicyId -Groups @{ value = @($GroupId); addedFields = @{ displayName = @("Vacation Exclusion - $($Policy.displayName)") } } -Headers $Headers + } + + $PolicyName = $Policy.displayName + if ($Request.Body.vacation -eq 'true') { + $StartDate = $Request.Body.StartDate + $EndDate = $Request.Body.EndDate + # Detect if policy targets specific named locations (GUIDs) and user requested audit log exclusion + $GuidRegex = '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$' + $LocationIds = @() + if ($Policy.conditions.locations.includeLocations) { $LocationIds += $Policy.conditions.locations.includeLocations } + if ($Policy.conditions.locations.excludeLocations) { $LocationIds += $Policy.conditions.locations.excludeLocations } + $PolicyHasGuidLocations = $LocationIds | Where-Object { $_ -match $GuidRegex } + + $Parameters = [PSCustomObject]@{ + GroupType = 'Security' + GroupId = $GroupId + Member = $Users.addedFields.userPrincipalName ?? $Users.value ?? $Users ?? $UserID + } + + $TaskBody = [pscustomobject]@{ + TenantFilter = $TenantFilter + Name = "Add CA Exclusion Vacation Mode: $PolicyName" + Command = @{ + value = 'Add-CIPPGroupMember' + label = 'Add-CIPPGroupMember' + } + Parameters = [pscustomobject]$Parameters + ScheduledTime = $StartDate + PostExecution = $Request.Body.postExecution + Reference = $Request.Body.reference + } + + Write-Information ($TaskBody | ConvertTo-Json -Depth 10) + + Add-CIPPScheduledTask -Task $TaskBody -hidden $false + # Optional: schedule audit log exclusion add task if requested and policy has location GUIDs + if ($ExcludeLocationAuditAlerts -and $PolicyHasGuidLocations) { + $AuditUsers = $Users.addedFields.userPrincipalName ?? $Users.value ?? $Users ?? $UserID + $AuditAddTask = [pscustomobject]@{ + TenantFilter = $TenantFilter + Name = "Add Audit Log Location Exclusion: $PolicyName" + Command = @{ value = 'Set-CIPPAuditLogUserExclusion'; label = 'Set-CIPPAuditLogUserExclusion' } + Parameters = [pscustomobject]@{ Users = $AuditUsers; Action = 'Add'; Type = 'Location' } + ScheduledTime = $StartDate + } + Add-CIPPScheduledTask -Task $AuditAddTask -hidden $true + } + #Removal of the exclusion + $TaskBody.Command = @{ + label = 'Remove-CIPPGroupMember' + value = 'Remove-CIPPGroupMember' + } + $TaskBody.Name = "Remove CA Exclusion Vacation Mode: $PolicyName" + $TaskBody.ScheduledTime = $EndDate + Add-CIPPScheduledTask -Task $TaskBody -hidden $false + if ($ExcludeLocationAuditAlerts -and $PolicyHasGuidLocations) { + $AuditUsers = $Users.addedFields.userPrincipalName ?? $Users.value ?? $Users ?? $UserID + $AuditRemoveTask = [pscustomobject]@{ + TenantFilter = $TenantFilter + Name = "Remove Audit Log Location Exclusion: $PolicyName" + Command = @{ value = 'Set-CIPPAuditLogUserExclusion'; label = 'Set-CIPPAuditLogUserExclusion' } + Parameters = [pscustomobject]@{ Users = $AuditUsers; Action = 'Remove'; Type = 'Location' } + ScheduledTime = $EndDate + Reference = $Request.Body.reference + } + Add-CIPPScheduledTask -Task $AuditRemoveTask -hidden $true + } + $body = @{ Results = "Successfully added vacation mode schedule for $Username." } + } else { + $Parameters = @{ + ExclusionType = $ExclusionType PolicyId = $PolicyId - UserName = $Username } - ScheduledTime = $StartDate + if ($Users) { + $Parameters.Users = $Users + } else { + $Parameters.UserID = $UserID + } + + Set-CIPPCAExclusion -TenantFilter $TenantFilter -Headers $Headers @Parameters } - Add-CIPPScheduledTask -Task $TaskBody -hidden $false - #Removal of the exclusion - $TaskBody.Parameters.ExclusionType = 'Remove' - $TaskBody.Name = "Remove CA Exclusion Vacation Mode: $Username - $($TenantFilter)" - $TaskBody.ScheduledTime = $EndDate - Add-CIPPScheduledTask -Task $TaskBody -hidden $false - $body = @{ Results = "Successfully added vacation mode schedule for $Username." } - } else { - Set-CIPPCAExclusion -TenantFilter $TenantFilter -ExclusionType $ExclusionType -UserID $UserID -PolicyId $PolicyId -Headers $Headers -UserName $Username + } catch { + Write-Warning "Failed to perform exclusion for $Username : $($_.Exception.Message)" + Write-Information $_.InvocationInfo.PositionMessage + $body = @{ Results = "Failed to perform exclusion for $Username : $($_.Exception.Message)" } + Write-LogMessage -headers $Headers -API 'Invoke-ExecCAExclusion' -message "Failed to perform exclusion for $Username : $_" -Sev 'Error' -tenant $TenantFilter -LogData (Get-CippException -Exception $_) } - - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecCAServiceExclusion.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecCAServiceExclusion.ps1 new file mode 100644 index 000000000000..8d1010e3362f --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecCAServiceExclusion.ps1 @@ -0,0 +1,31 @@ +function Invoke-ExecCAServiceExclusion { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.ConditionalAccess.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Headers = $Request.Headers + + + # Interact with the request + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $ID = $Request.Query.GUID ?? $Request.Body.GUID + + try { + $result = Set-CIPPCAPolicyServiceException -TenantFilter $TenantFilter -PolicyId $ID + $Body = @{ Results = $result } + Write-LogMessage -headers $Headers -API 'Set-CIPPCAPolicyServiceException' -message $result -Sev 'Info' -tenant $TenantFilter + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Body = @{ Results = "Failed to add service provider exception to policy $($ID): $($ErrorMessage.NormalizedError)" } + Write-LogMessage -headers $Headers -API 'Set-CIPPCAPolicyServiceException' -message "Failed to update policy $($PolicyId) with service provider exception for tenant $($CSPtenantId): $($_.Exception.Message)" -Sev 'Error' -tenant $TenantFilter -LogData (Get-CippException -Exception $_) + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecNamedLocation.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecNamedLocation.ps1 index e98898f6a858..1a7c6b021b23 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecNamedLocation.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecNamedLocation.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ExecNamedLocation { <# .FUNCTIONALITY @@ -12,29 +10,26 @@ function Invoke-ExecNamedLocation { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Body.tenantFilter ?? $Request.Query.tenantFilter $NamedLocationId = $Request.Body.namedLocationId ?? $Request.Query.namedLocationId $Change = $Request.Body.change ?? $Request.Query.change - $Content = $Request.Body.input ?? $Request.Query.input + $Content = $Request.Body.input.value ?? $Request.Query.input.value try { - $results = Set-CIPPNamedLocation -NamedLocationId $NamedLocationId -TenantFilter $TenantFilter -Change $Change -Content $Content -Headers $Headers + $Results = Set-CIPPNamedLocation -NamedLocationId $NamedLocationId -TenantFilter $TenantFilter -Change $Change -Content $Content -Headers $Headers $StatusCode = [HttpStatusCode]::OK } catch { $ErrorMessage = Get-CippException -Exception $_ Write-LogMessage -headers $Headers -API $APIName -message "Failed to edit named location: $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage - $results = "Failed to edit named location. Error: $($ErrorMessage.NormalizedError)" + $Results = "Failed to edit named location. Error: $($ErrorMessage.NormalizedError)" $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode - Body = @{'Results' = @($results) } + Body = @{'Results' = @($Results) } }) } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ListCAtemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ListCAtemplates.ps1 index 91a163298ce0..5ce6a7ad6844 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ListCAtemplates.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ListCAtemplates.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ListCAtemplates { +function Invoke-ListCAtemplates { <# .FUNCTIONALITY Entrypoint,AnyTenant @@ -9,12 +7,6 @@ Function Invoke-ListCAtemplates { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - Write-Host $Request.query.id #Migrating old policies whenever you do a list $Table = Get-CippTable -tablename 'templates' @@ -39,16 +31,22 @@ Function Invoke-ListCAtemplates { $Table = Get-CippTable -tablename 'templates' $Filter = "PartitionKey eq 'CATemplate'" $Templates = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) | ForEach-Object { - $data = $_.JSON | ConvertFrom-Json -Depth 100 - $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $_.GUID -Force - $data + try { + $row = $_ + $data = $row.JSON | ConvertFrom-Json -Depth 100 -ErrorAction Stop + $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $row.GUID -Force + $data | Add-Member -NotePropertyName 'source' -NotePropertyValue $row.Source -Force + $data | Add-Member -NotePropertyName 'isSynced' -NotePropertyValue (![string]::IsNullOrEmpty($row.SHA)) -Force + $data + } catch { + Write-Warning "Failed to process CA template: $($row.RowKey) - $($_.Exception.Message)" + } } | Sort-Object -Property displayName if ($Request.query.ID) { $Templates = $Templates | Where-Object -Property GUID -EQ $Request.query.id } $Templates = ConvertTo-Json -InputObject @($Templates) -Depth 100 - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Templates }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ListConditionalAccessPolicies.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ListConditionalAccessPolicies.ps1 index 91f7251eccc7..301f27f70abb 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ListConditionalAccessPolicies.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ListConditionalAccessPolicies.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ListConditionalAccessPolicies { <# .FUNCTIONALITY @@ -10,11 +8,7 @@ function Invoke-ListConditionalAccessPolicies { [CmdletBinding()] param($Request, $TriggerMetadata) - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - + #Region Helper functions function Get-LocationNameFromId { [CmdletBinding()] param ( @@ -114,90 +108,137 @@ function Invoke-ListConditionalAccessPolicies { return $return } + #EndRegion Helper functions # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter try { - $Requests = @( - @{ - id = 'policies' - url = 'identity/conditionalAccess/policies' - method = 'GET' - } - @{ - id = 'namedLocations' - url = 'identity/conditionalAccess/namedLocations' - method = 'GET' - } - @{ - id = 'applications' - url = 'applications?$top=999&$select=appId,displayName' - method = 'GET' - } - @{ - id = 'roleDefinitions' - url = 'roleManagement/directory/roleDefinitions?$select=id,displayName' - method = 'GET' - } - @{ - id = 'groups' - url = 'groups?$top=999&$select=id,displayName' - method = 'GET' - } - @{ - id = 'users' - url = 'users?$top=999&$select=id,displayName,userPrincipalName' - method = 'GET' - } - @{ - id = 'servicePrincipals' - url = 'servicePrincipals?$top=999&$select=appId,displayName' - method = 'GET' - } - ) - - $GraphRequest = New-GraphBulkRequest -Requests $Requests -tenantid $TenantFilter -asapp $true + $GraphRequest = if ($TenantFilter -ne 'AllTenants') { + # Single tenant functionality + $Requests = @( + @{ + id = 'policies' + url = 'identity/conditionalAccess/policies' + method = 'GET' + } + @{ + id = 'namedLocations' + url = 'identity/conditionalAccess/namedLocations' + method = 'GET' + } + @{ + id = 'applications' + url = 'applications?$top=999&$select=appId,displayName' + method = 'GET' + } + @{ + id = 'roleDefinitions' + url = 'roleManagement/directory/roleDefinitions?$select=id,displayName' + method = 'GET' + } + @{ + id = 'groups' + url = 'groups?$top=999&$select=id,displayName' + method = 'GET' + } + @{ + id = 'users' + url = 'users?$top=999&$select=id,displayName,userPrincipalName' + method = 'GET' + } + @{ + id = 'servicePrincipals' + url = 'servicePrincipals?$top=999&$select=appId,displayName' + method = 'GET' + } + ) - $ConditionalAccessPolicyOutput = ($GraphRequest | Where-Object { $_.id -eq 'policies' }).body.value - $AllNamedLocations = ($GraphRequest | Where-Object { $_.id -eq 'namedLocations' }).body.value - $AllApplications = ($GraphRequest | Where-Object { $_.id -eq 'applications' } ).body.value - $AllRoleDefinitions = ($GraphRequest | Where-Object { $_.id -eq 'roleDefinitions' }).body.value - $GroupListOutput = ($GraphRequest | Where-Object { $_.id -eq 'groups' }).body.value - $UserListOutput = ($GraphRequest | Where-Object { $_.id -eq 'users' }).body.value - $AllServicePrincipals = ($GraphRequest | Where-Object { $_.id -eq 'servicePrincipals' }).body.value + $BulkResults = New-GraphBulkRequest -Requests $Requests -tenantid $TenantFilter -asapp $true + $ConditionalAccessPolicyOutput = ($BulkResults | Where-Object { $_.id -eq 'policies' }).body.value + $AllNamedLocations = ($BulkResults | Where-Object { $_.id -eq 'namedLocations' }).body.value + $AllApplications = ($BulkResults | Where-Object { $_.id -eq 'applications' } ).body.value + $AllRoleDefinitions = ($BulkResults | Where-Object { $_.id -eq 'roleDefinitions' }).body.value + $GroupListOutput = ($BulkResults | Where-Object { $_.id -eq 'groups' }).body.value + $UserListOutput = ($BulkResults | Where-Object { $_.id -eq 'users' }).body.value + $AllServicePrincipals = ($BulkResults | Where-Object { $_.id -eq 'servicePrincipals' }).body.value - $GraphRequest = foreach ($cap in $ConditionalAccessPolicyOutput) { - $temp = [PSCustomObject]@{ - id = $cap.id - displayName = $cap.displayName - customer = $cap.Customer - tenantID = $TenantFilter - createdDateTime = $(if (![string]::IsNullOrEmpty($cap.createdDateTime)) { [datetime]$cap.createdDateTime } else { '' }) - modifiedDateTime = $(if (![string]::IsNullOrEmpty($cap.modifiedDateTime)) { [datetime]$cap.modifiedDateTime }else { '' }) - state = $cap.state - clientAppTypes = ($cap.conditions.clientAppTypes) -join ',' - includePlatforms = ($cap.conditions.platforms.includePlatforms) -join ',' - excludePlatforms = ($cap.conditions.platforms.excludePlatforms) -join ',' - includeLocations = (Get-LocationNameFromId -Locations $AllNamedLocations -id $cap.conditions.locations.includeLocations) -join ',' - excludeLocations = (Get-LocationNameFromId -Locations $AllNamedLocations -id $cap.conditions.locations.excludeLocations) -join ',' - includeApplications = ($cap.conditions.applications.includeApplications | ForEach-Object { Get-ApplicationNameFromId -Applications $AllApplications -ServicePrincipals $AllServicePrincipals -id $_ }) -join ',' - excludeApplications = ($cap.conditions.applications.excludeApplications | ForEach-Object { Get-ApplicationNameFromId -Applications $AllApplications -ServicePrincipals $AllServicePrincipals -id $_ }) -join ',' - includeUserActions = ($cap.conditions.applications.includeUserActions | Out-String) - includeAuthenticationContextClassReferences = ($cap.conditions.applications.includeAuthenticationContextClassReferences | Out-String) - includeUsers = ($cap.conditions.users.includeUsers | ForEach-Object { Get-UserNameFromId -Users $UserListOutput -id $_ }) | Out-String - excludeUsers = ($cap.conditions.users.excludeUsers | ForEach-Object { Get-UserNameFromId -Users $UserListOutput -id $_ }) | Out-String - includeGroups = ($cap.conditions.users.includeGroups | ForEach-Object { Get-GroupNameFromId -Groups $GroupListOutput -id $_ }) | Out-String - excludeGroups = ($cap.conditions.users.excludeGroups | ForEach-Object { Get-GroupNameFromId -Groups $GroupListOutput -id $_ }) | Out-String - includeRoles = ($cap.conditions.users.includeRoles | ForEach-Object { Get-RoleNameFromId -RoleDefinitions $AllRoleDefinitions -id $_ }) | Out-String - excludeRoles = ($cap.conditions.users.excludeRoles | ForEach-Object { Get-RoleNameFromId -RoleDefinitions $AllRoleDefinitions -id $_ }) | Out-String - grantControlsOperator = ($cap.grantControls.operator) -join ',' - builtInControls = ($cap.grantControls.builtInControls) -join ',' - customAuthenticationFactors = ($cap.grantControls.customAuthenticationFactors) -join ',' - termsOfUse = ($cap.grantControls.termsOfUse) -join ',' - rawjson = ($cap | ConvertTo-Json -Depth 100) + foreach ($cap in $ConditionalAccessPolicyOutput) { + [PSCustomObject]@{ + id = $cap.id + displayName = $cap.displayName + customer = $cap.Customer + Tenant = $TenantFilter + createdDateTime = $(if (![string]::IsNullOrEmpty($cap.createdDateTime)) { [datetime]$cap.createdDateTime } else { '' }) + modifiedDateTime = $(if (![string]::IsNullOrEmpty($cap.modifiedDateTime)) { [datetime]$cap.modifiedDateTime }else { '' }) + state = $cap.state + clientAppTypes = ($cap.conditions.clientAppTypes) -join ',' + includePlatforms = ($cap.conditions.platforms.includePlatforms) -join ',' + excludePlatforms = ($cap.conditions.platforms.excludePlatforms) -join ',' + includeLocations = (Get-LocationNameFromId -Locations $AllNamedLocations -id $cap.conditions.locations.includeLocations) -join ',' + excludeLocations = (Get-LocationNameFromId -Locations $AllNamedLocations -id $cap.conditions.locations.excludeLocations) -join ',' + includeApplications = ($cap.conditions.applications.includeApplications | ForEach-Object { Get-ApplicationNameFromId -Applications $AllApplications -ServicePrincipals $AllServicePrincipals -id $_ }) -join ',' + excludeApplications = ($cap.conditions.applications.excludeApplications | ForEach-Object { Get-ApplicationNameFromId -Applications $AllApplications -ServicePrincipals $AllServicePrincipals -id $_ }) -join ',' + includeUserActions = ($cap.conditions.applications.includeUserActions | Out-String) + includeAuthenticationContextClassReferences = ($cap.conditions.applications.includeAuthenticationContextClassReferences | Out-String) + includeUsers = ($cap.conditions.users.includeUsers | ForEach-Object { Get-UserNameFromId -Users $UserListOutput -id $_ }) | Out-String + excludeUsers = ($cap.conditions.users.excludeUsers | ForEach-Object { Get-UserNameFromId -Users $UserListOutput -id $_ }) | Out-String + includeGroups = ($cap.conditions.users.includeGroups | ForEach-Object { Get-GroupNameFromId -Groups $GroupListOutput -id $_ }) | Out-String + excludeGroups = ($cap.conditions.users.excludeGroups | ForEach-Object { Get-GroupNameFromId -Groups $GroupListOutput -id $_ }) | Out-String + includeRoles = ($cap.conditions.users.includeRoles | ForEach-Object { Get-RoleNameFromId -RoleDefinitions $AllRoleDefinitions -id $_ }) | Out-String + excludeRoles = ($cap.conditions.users.excludeRoles | ForEach-Object { Get-RoleNameFromId -RoleDefinitions $AllRoleDefinitions -id $_ }) | Out-String + grantControlsOperator = ($cap.grantControls.operator) -join ',' + builtInControls = ($cap.grantControls.builtInControls) -join ',' + customAuthenticationFactors = ($cap.grantControls.customAuthenticationFactors) -join ',' + termsOfUse = ($cap.grantControls.termsOfUse) -join ',' + rawjson = ($cap | ConvertTo-Json -Depth 100) + } + } + } else { + # AllTenants functionality + $Table = Get-CIPPTable -TableName cacheCAPolicies + $PartitionKey = 'CAPolicy' + $Filter = "PartitionKey eq '$PartitionKey'" + $Rows = Get-CIPPAzDataTableEntity @Table -filter $Filter | Where-Object -Property Timestamp -GT (Get-Date).AddMinutes(-60) + $QueueReference = '{0}-{1}' -f $TenantFilter, $PartitionKey + $RunningQueue = Invoke-ListCippQueue -Reference $QueueReference | Where-Object { $_.Status -notmatch 'Completed' -and $_.Status -notmatch 'Failed' } + # If a queue is running, we will not start a new one + if ($RunningQueue) { + $Metadata = [PSCustomObject]@{ + QueueMessage = 'Still loading data for all tenants. Please check back in a few more minutes' + QueueId = $RunningQueue.RowKey + } + } elseif (!$Rows -and !$RunningQueue) { + # If no rows are found and no queue is running, we will start a new one + $TenantList = Get-Tenants -IncludeErrors + $Queue = New-CippQueueEntry -Name 'Conditional Access Policies - All Tenants' -Link '/tenant/conditional/list-policies?customerId=AllTenants' -Reference $QueueReference -TotalTasks ($TenantList | Measure-Object).Count + $Metadata = [PSCustomObject]@{ + QueueMessage = 'Loading data for all tenants. Please check back in a few minutes' + QueueId = $Queue.RowKey + } + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'CAPoliciesOrchestrator' + QueueFunction = @{ + FunctionName = 'GetTenants' + QueueId = $Queue.RowKey + TenantParams = @{ + IncludeErrors = $true + } + DurableName = 'ListConditionalAccessPoliciesAllTenants' + } + SkipLog = $true + } + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) | Out-Null + } else { + $Metadata = [PSCustomObject]@{ + QueueId = $RunningQueue.RowKey ?? $null + } + $Policies = $Rows + # Output all policies from all tenants + foreach ($policy in $Policies) { + ($policy.Policy | ConvertFrom-Json) + } } - $temp } $StatusCode = [HttpStatusCode]::OK } catch { @@ -206,10 +247,15 @@ function Invoke-ListConditionalAccessPolicies { $GraphRequest = $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + if (!$Body) { + $StatusCode = [HttpStatusCode]::OK + $Body = [PSCustomObject]@{ + Results = @($GraphRequest | Where-Object -Property id -NE $null | Sort-Object id -Descending) + Metadata = $Metadata + } + } + return ([HttpResponseContext]@{ StatusCode = $StatusCode - Body = @($GraphRequest) + Body = $Body }) - } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ListConditionalAccessPolicyChanges.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ListConditionalAccessPolicyChanges.ps1 index b144805a6670..7f8a6634063f 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ListConditionalAccessPolicyChanges.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ListConditionalAccessPolicyChanges.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListConditionalAccessPolicyChanges { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ Function Invoke-ListConditionalAccessPolicyChanges { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter $PolicyId = $Request.Query.id @@ -38,8 +31,7 @@ Function Invoke-ListConditionalAccessPolicyChanges { $Changes = "Failed to request audit logs for policy $($PolicyDisplayName): $($_.Exception.message)" } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @($Changes) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-RemoveCAPolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-RemoveCAPolicy.ps1 index 335d8b654164..fb136f2a427c 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-RemoveCAPolicy.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-RemoveCAPolicy.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-RemoveCAPolicy { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-RemoveCAPolicy { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter @@ -31,7 +29,7 @@ Function Invoke-RemoveCAPolicy { } $body = [pscustomobject]@{'Results' = $Result } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-RemoveCATemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-RemoveCATemplate.ps1 index 9113d01dd2cf..d25c941973a0 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-RemoveCATemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-RemoveCATemplate.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-RemoveCATemplate { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-RemoveCATemplate { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $ID = $request.Query.ID ?? $Request.Body.ID try { @@ -32,8 +30,7 @@ Function Invoke-RemoveCATemplate { } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{'Results' = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecAddGDAPRole.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecAddGDAPRole.ps1 index 8178ed55e47b..65380b19933c 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecAddGDAPRole.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecAddGDAPRole.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ExecAddGDAPRole { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ function Invoke-ExecAddGDAPRole { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $Action = $Request.Body.Action ?? $Request.Query.Action ?? 'AddRoleSimple' $GroupBlockList = @('All Users', 'AdminAgents', 'HelpdeskAgents', 'SalesAgents') @@ -174,8 +167,7 @@ function Invoke-ExecAddGDAPRole { } $body = @{Results = @($Results) } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecAutoExtendGDAP.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecAutoExtendGDAP.ps1 index b724655e023f..369d8fd0d6b6 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecAutoExtendGDAP.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecAutoExtendGDAP.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecAutoExtendGDAP { <# .FUNCTIONALITY @@ -9,16 +7,10 @@ Function Invoke-ExecAutoExtendGDAP { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $Id = $Request.query.ID ?? $Request.Body.ID $Results = Set-CIPPGDAPAutoExtend -RelationShipid $Id - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @{ Results = $Results } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecDeleteGDAPRelationship.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecDeleteGDAPRelationship.ps1 index e64d098aa5ef..8c0898c318ef 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecDeleteGDAPRelationship.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecDeleteGDAPRelationship.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecDeleteGDAPRelationship { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-ExecDeleteGDAPRelationship { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $GDAPID = $Request.Query.GDAPId ?? $Request.Body.GDAPId @@ -25,8 +23,7 @@ Function Invoke-ExecDeleteGDAPRelationship { $Results = [pscustomobject]@{'Results' = "Failed. $($_.Exception.Message)" } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Results }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecDeleteGDAPRoleMapping.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecDeleteGDAPRoleMapping.ps1 index 39dad0529337..1c94da4480f2 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecDeleteGDAPRoleMapping.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecDeleteGDAPRoleMapping.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecDeleteGDAPRoleMapping { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-ExecDeleteGDAPRoleMapping { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $Table = Get-CIPPTable -TableName 'GDAPRoles' @@ -28,8 +26,7 @@ Function Invoke-ExecDeleteGDAPRoleMapping { $Results = [pscustomobject]@{'Results' = "Failed. $($_.Exception.Message)" } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Results }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPAccessAssignment.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPAccessAssignment.ps1 index 8f10717d3d44..b2e3803ea41f 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPAccessAssignment.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPAccessAssignment.ps1 @@ -180,7 +180,7 @@ function Invoke-ExecGDAPAccessAssignment { } } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPInvite.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPInvite.ps1 index a2d36fbdd4f5..98021647278a 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPInvite.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPInvite.ps1 @@ -1,4 +1,3 @@ -using namespace System.Net function Invoke-ExecGDAPInvite { <# .FUNCTIONALITY @@ -11,10 +10,28 @@ function Invoke-ExecGDAPInvite { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $Action = $Request.Body.Action ?? $Request.Query.Action ?? 'Create' + $InviteId = $Request.Body.InviteId + $Reference = $Request.Body.Reference + $Table = Get-CIPPTable -TableName 'GDAPInvites' + + # Extract technician from headers (same logic as Write-LogMessage) + if ($Headers.'x-ms-client-principal-idp' -eq 'azureStaticWebApps' -or !$Headers.'x-ms-client-principal-idp') { + $user = $headers.'x-ms-client-principal' + $Technician = ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($user)) | ConvertFrom-Json).userDetails + } elseif ($Headers.'x-ms-client-principal-idp' -eq 'aad') { + $ApiClientTable = Get-CIPPTable -TableName 'ApiClients' + $Client = Get-CIPPAzDataTableEntity @ApiClientTable -Filter "RowKey eq '$($headers.'x-ms-client-principal-name')'" + $Technician = $Client.AppName ?? 'CIPP-API' + } else { + try { + $user = $headers.'x-ms-client-principal' + $Technician = ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($user)) | ConvertFrom-Json).userDetails + } catch { + $Technician = 'System' + } + } switch ($Action) { 'Create' { @@ -26,7 +43,6 @@ function Invoke-ExecGDAPInvite { $AutoExtendDuration = 'P180D' } - $Table = Get-CIPPTable -TableName 'GDAPInvites' try { $Step = 'Creating GDAP relationship' $JSONBody = @{ @@ -75,7 +91,10 @@ function Invoke-ExecGDAPInvite { 'InviteUrl' = $InviteUrl 'OnboardingUrl' = $OnboardingUrl 'RoleMappings' = [string](@($RoleMappings) | ConvertTo-Json -Depth 10 -Compress) + 'Technician' = [string]$Technician + 'Reference' = if ($Reference) { [string]$Reference } else { $null } } + Add-CIPPAzDataTableEntity @Table -Entity $InviteEntity $Message = 'GDAP relationship invite created. Log in as a Global Admin in the new tenant to approve the invite.' @@ -103,9 +122,27 @@ function Invoke-ExecGDAPInvite { Invite = $InviteEntity } } + 'Update' { + $Invite = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'invite' and RowKey eq '$InviteId'" + if ($Invite) { + + $InviteEntity = [PSCustomObject]@{ + 'PartitionKey' = 'invite' + 'RowKey' = $InviteId + 'Technician' = $Technician + 'Reference' = if ($Reference) { $Reference } else { $null } + } + + Add-CIPPAzDataTableEntity @Table -Entity $InviteEntity -OperationType 'UpsertMerge' + $Message = 'Invite updated' + } else { + $Message = 'Invite not found' + } + $body = @{ + Message = $Message + } + } 'Delete' { - $InviteId = $Request.Body.InviteId - $Table = Get-CIPPTable -TableName 'GDAPInvites' $Invite = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'invite' and RowKey eq '$InviteId'" if ($Invite) { Remove-AzDataTableEntity @Table -Entity $Invite @@ -119,7 +156,7 @@ function Invoke-ExecGDAPInvite { } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPInviteApproved.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPInviteApproved.ps1 index 3f29d62ac3d1..39f5b4e3a32d 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPInviteApproved.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPInviteApproved.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecGDAPInviteApproved { <# .FUNCTIONALITY @@ -9,16 +7,11 @@ Function Invoke-ExecGDAPInviteApproved { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - Set-CIPPGDAPInviteGroups $body = @{Results = @('Processing recently activated GDAP relationships') } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPRemoveGArole.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPRemoveGArole.ps1 index 35b7e8b4c647..2006c2a290e3 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPRemoveGArole.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPRemoveGArole.ps1 @@ -1,4 +1,3 @@ -using namespace System.Net Function Invoke-ExecGDAPRemoveGArole { <# .FUNCTIONALITY @@ -45,7 +44,7 @@ Function Invoke-ExecGDAPRemoveGArole { $body = @{ Message = $Message } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPRoleTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPRoleTemplate.ps1 index ec02efcf937d..07018acad177 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPRoleTemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPRoleTemplate.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ExecGDAPRoleTemplate { +function Invoke-ExecGDAPRoleTemplate { <# .FUNCTIONALITY Entrypoint,AnyTenant @@ -12,7 +10,7 @@ Function Invoke-ExecGDAPRoleTemplate { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $Table = Get-CIPPTable -TableName 'GDAPRoleTemplates' $Templates = Get-CIPPAzDataTableEntity @Table @@ -20,8 +18,10 @@ Function Invoke-ExecGDAPRoleTemplate { if ($Request.Query.TemplateId) { $Template = $Templates | Where-Object -Property RowKey -EQ $Request.Query.TemplateId if (!$Template) { + Write-LogMessage -headers $Headers -API $APIName -message "GDAP role template '$($Request.Query.TemplateId)' not found" -Sev 'Warning' $Body = @{} } else { + Write-LogMessage -headers $Headers -API $APIName -message "Retrieved GDAP role template '$($Request.Query.TemplateId)'" -Sev 'Info' $Body = @{ TemplateId = $Template.RowKey RoleMappings = @($Template.RoleMappings | ConvertFrom-Json) @@ -38,22 +38,39 @@ Function Invoke-ExecGDAPRoleTemplate { } Write-Information ($RoleMappings | ConvertTo-Json) Add-CIPPGDAPRoleTemplate -TemplateId $RowKey -RoleMappings $RoleMappings + Write-LogMessage -headers $Headers -API $APIName -message "Added role mappings to GDAP template '$RowKey'" -Sev 'Info' $Body = @{ Results = "Added role mappings to template $RowKey" } } 'Edit' { - $RowKey = $Request.Body.TemplateId - $Template = $Templates | Where-Object -Property RowKey -EQ $RowKey + # Use OriginalTemplateId if provided (for rename), otherwise use TemplateId + $OriginalRowKey = $Request.Body.OriginalTemplateId ?? $Request.Body.TemplateId + $NewRowKey = $Request.Body.TemplateId + $Template = $Templates | Where-Object -Property RowKey -EQ $OriginalRowKey if ($Template) { $RoleMappings = $Request.Body.RoleMappings - Add-CIPPGDAPRoleTemplate -TemplateId $RowKey -RoleMappings $RoleMappings -Overwrite - $Body = @{ - Results = "Updated role mappings for template $RowKey" + + # If the template ID is being changed, delete the old one and create a new one + if ($OriginalRowKey -ne $NewRowKey) { + Remove-AzDataTableEntity -Force @Table -Entity $Template + Add-CIPPGDAPRoleTemplate -TemplateId $NewRowKey -RoleMappings $RoleMappings -Overwrite + Write-LogMessage -headers $Headers -API $APIName -message "Renamed GDAP template from '$OriginalRowKey' to '$NewRowKey' and updated role mappings" -Sev 'Info' + $Body = @{ + Results = "Renamed template from $OriginalRowKey to $NewRowKey and updated role mappings" + } + } else { + # Just update the existing template + Add-CIPPGDAPRoleTemplate -TemplateId $NewRowKey -RoleMappings $RoleMappings -Overwrite + Write-LogMessage -headers $Headers -API $APIName -message "Updated role mappings for GDAP template '$NewRowKey'" -Sev 'Info' + $Body = @{ + Results = "Updated role mappings for template $NewRowKey" + } } } else { + Write-LogMessage -headers $Headers -API $APIName -message "GDAP role template '$OriginalRowKey' not found for editing" -Sev 'Warning' $Body = @{ - Results = "Template $RowKey not found" + Results = "Template $OriginalRowKey not found" } } } @@ -62,16 +79,19 @@ Function Invoke-ExecGDAPRoleTemplate { $Template = $Templates | Where-Object -Property RowKey -EQ $RowKey if ($Template) { Remove-AzDataTableEntity -Force @Table -Entity $Template + Write-LogMessage -headers $Headers -API $APIName -message "Deleted GDAP role template '$RowKey'" -Sev 'Info' $Body = @{ Results = "Deleted template $RowKey" } } else { + Write-LogMessage -headers $Headers -API $APIName -message "GDAP role template '$RowKey' not found for deletion" -Sev 'Warning' $Body = @{ Results = "Template $RowKey not found" } } } default { + Write-LogMessage -headers $Headers -API $APIName -message "Retrieved $($Templates.Count) GDAP role templates" -Sev 'Info' $Results = foreach ($Template in $Templates) { [PSCustomObject]@{ TemplateId = $Template.RowKey @@ -88,8 +108,7 @@ Function Invoke-ExecGDAPRoleTemplate { } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ListGDAPAccessAssignments.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ListGDAPAccessAssignments.ps1 index 5da36dcb859d..053e11c3cdb8 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ListGDAPAccessAssignments.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ListGDAPAccessAssignments.ps1 @@ -2,14 +2,11 @@ function Invoke-ListGDAPAccessAssignments { <# .FUNCTIONALITY Entrypoint,AnyTenant + .ROLE + Tenant.Relationship.Read #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $Id = $Request.Query.Id $TenantFilter = $env:TenantID @@ -32,7 +29,7 @@ function Invoke-ListGDAPAccessAssignments { 'method' = 'GET' } } - $Members = New-GraphBulkRequest -Requests $ContainerMembers -tenantid $TenantFilter -asApp $true -NoAuthCheck $true + $Members = New-GraphBulkRequest -Requests @($ContainerMembers) -tenantid $TenantFilter -asApp $true -NoAuthCheck $true $Results = foreach ($AccessAssignment in $AccessAssignments) { [PSCustomObject]@{ @@ -55,7 +52,7 @@ function Invoke-ListGDAPAccessAssignments { Results = @($Results) } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ListGDAPInvite.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ListGDAPInvite.ps1 index 5ad7f3d8d72d..8dbb1d3e2e2b 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ListGDAPInvite.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ListGDAPInvite.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListGDAPInvite { <# .FUNCTIONALITY @@ -9,12 +7,6 @@ Function Invoke-ListGDAPInvite { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - # Interact with query parameters or the body of the request. $RelationshipId = $Request.Query.RelationshipId @@ -27,8 +19,7 @@ Function Invoke-ListGDAPInvite { $_ } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($Invite) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ListGDAPRoles.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ListGDAPRoles.ps1 index 4f615d67b329..d63832e0f562 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ListGDAPRoles.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ListGDAPRoles.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListGDAPRoles { <# .FUNCTIONALITY @@ -9,13 +7,6 @@ Function Invoke-ListGDAPRoles { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - - $Table = Get-CIPPTable -TableName 'GDAPRoles' $Groups = Get-CIPPAzDataTableEntity @Table @@ -28,8 +19,7 @@ Function Invoke-ListGDAPRoles { } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($MappedGroups) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Reports/Invoke-ListLicenses.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Reports/Invoke-ListLicenses.ps1 index 1fa957953f07..b33334241408 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Reports/Invoke-ListLicenses.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Reports/Invoke-ListLicenses.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ListLicenses { +function Invoke-ListLicenses { <# .FUNCTIONALITY Entrypoint @@ -9,18 +7,10 @@ Function Invoke-ListLicenses { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter - $RawGraphRequest = if ($TenantFilter -ne 'AllTenants') { + if ($TenantFilter -ne 'AllTenants') { $GraphRequest = Get-CIPPLicenseOverview -TenantFilter $TenantFilter | ForEach-Object { - $TermInfo = $_.TermInfo | ConvertFrom-Json -ErrorAction SilentlyContinue - $_.TermInfo = $TermInfo $_ } } else { @@ -46,21 +36,18 @@ Function Invoke-ListLicenses { Write-Host "Started permissions orchestration with ID = '$InstanceId'" } } else { - $GraphRequest = $Rows | Where-Object { $_.License } | ForEach-Object { - if ($_.TermInfo) { - $TermInfo = $_.TermInfo | ConvertFrom-Json -ErrorAction SilentlyContinue - $_.TermInfo = $TermInfo - } else { - $_ | Add-Member -NotePropertyName TermInfo -NotePropertyValue $null + $GraphRequest = $Rows | ForEach-Object { + $LicenseData = $_.License | ConvertFrom-Json -ErrorAction SilentlyContinue + foreach ($License in $LicenseData) { + $License } - $_ } } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($GraphRequest) - }) -Clobber + }) } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Reports/Invoke-ListOAuthApps.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Reports/Invoke-ListOAuthApps.ps1 index 4eb7dc4e6188..940ed50272ef 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Reports/Invoke-ListOAuthApps.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Reports/Invoke-ListOAuthApps.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListOAuthApps { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ Function Invoke-ListOAuthApps { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.TenantFilter if ($TenantFilter -eq 'AllTenants') { $Tenants = (Get-Tenants).defaultDomainName } else { $Tenants = $TenantFilter } @@ -44,8 +37,7 @@ Function Invoke-ListOAuthApps { $GraphRequest = $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @($GraphRequest) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Reports/Invoke-ListServiceHealth.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Reports/Invoke-ListServiceHealth.ps1 index 9e707124ae8e..c97d95c41d03 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Reports/Invoke-ListServiceHealth.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Reports/Invoke-ListServiceHealth.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListServiceHealth { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ Function Invoke-ListServiceHealth { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter @@ -49,8 +42,7 @@ Function Invoke-ListServiceHealth { $StatusCode = [HttpStatusCode]::OK - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @($Results) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-AddStandardsDeploy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-AddStandardsDeploy.ps1 index b6646630d7bb..605485f67010 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-AddStandardsDeploy.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-AddStandardsDeploy.ps1 @@ -1,19 +1,12 @@ -using namespace System.Net - Function Invoke-AddStandardsDeploy { <# .FUNCTIONALITY - Entrypoint,AnyTenant + Entrypoint .ROLE Tenant.Standards.ReadWrite #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $user = $request.headers.'x-ms-client-principal' $username = ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($user)) | ConvertFrom-Json).userDetails @@ -58,8 +51,7 @@ Function Invoke-AddStandardsDeploy { } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-AddStandardsTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-AddStandardsTemplate.ps1 index c41da1262f37..3f38f3f73e4c 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-AddStandardsTemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-AddStandardsTemplate.ps1 @@ -1,9 +1,7 @@ -using namespace System.Net - function Invoke-AddStandardsTemplate { <# .FUNCTIONALITY - Entrypoint,AnyTenant + Entrypoint .ROLE Tenant.Standards.ReadWrite #> @@ -12,7 +10,9 @@ function Invoke-AddStandardsTemplate { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + if ($Request.Body.tenantFilter -eq 'tenantFilter') { + throw 'Invalid Tenant Selection. A standard must be assigned to at least 1 tenant.' + } $GUID = $Request.body.GUID ? $request.body.GUID : (New-Guid).GUID #updatedBy = $request.headers.'x-ms-client-principal' @@ -30,11 +30,19 @@ function Invoke-AddStandardsTemplate { PartitionKey = 'StandardsTemplateV2' GUID = "$GUID" } + + $AddObject = @{ + PartitionKey = 'InstanceProperties' + RowKey = 'CIPPURL' + Value = [string]([System.Uri]$Headers.'x-ms-original-url').Host + } + $ConfigTable = Get-CIPPTable -tablename 'Config' + Add-AzDataTableEntity @ConfigTable -Entity $AddObject -Force + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Standards Template $($Request.body.templateName) with GUID $GUID added/edited." -Sev 'Info' $body = [pscustomobject]@{'Results' = 'Successfully added template'; Metadata = @{id = $GUID } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-BestPracticeAnalyser_List.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-BestPracticeAnalyser_List.ps1 index 9f5dbd8c4858..28981282a174 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-BestPracticeAnalyser_List.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-BestPracticeAnalyser_List.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-BestPracticeAnalyser_List { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ Function Invoke-BestPracticeAnalyser_List { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $Tenants = Get-Tenants $Table = get-cipptable 'cachebpa' $Results = (Get-CIPPAzDataTableEntity @Table) | ForEach-Object { @@ -27,8 +20,7 @@ Function Invoke-BestPracticeAnalyser_List { } } Write-Host ($Tenants | ConvertTo-Json) - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @(($Results | Where-Object -Property RowKey -In $Tenants.customerId)) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-CIPPStandardsRun.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-CIPPStandardsRun.ps1 index a42da2a5d425..81810ce00d00 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-CIPPStandardsRun.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-CIPPStandardsRun.ps1 @@ -2,9 +2,9 @@ function Invoke-CIPPStandardsRun { <# .FUNCTIONALITY - Entrypoint,AnyTenant + Entrypoint .ROLE - CIPP.Standards.ReadWrite + Tenant.Standards.ReadWrite #> [CmdletBinding()] param( @@ -15,38 +15,81 @@ function Invoke-CIPPStandardsRun { [Parameter(Mandatory = $false)] $TemplateID, [Parameter(Mandatory = $false)] - $runManually = $false - + $runManually = $false, + [Parameter(Mandatory = $false)] + [switch]$Drift ) - Write-Host "Starting process for standards - $($tenantFilter). TemplateID: $($TemplateID) RunManually: $($runManually) Force: $($Force.IsPresent)" + Write-Information "Starting process for standards - $($tenantFilter). TemplateID: $($TemplateID) RunManually: $($runManually) Force: $($Force.IsPresent) Drift: $($Drift.IsPresent)" - $AllTasks = Get-CIPPStandards + if ($Drift.IsPresent) { + Write-Information 'Drift Standards Run' + $AllTasks = Get-CIPPTenantAlignment | Where-Object -Property standardtype -EQ 'drift' | Select-Object -Property TenantFilter | Sort-Object -Unique -Property TenantFilter - if ($Force.IsPresent) { - Write-Host 'Clearing Rerun Cache' - Test-CIPPRerun -ClearAll -TenantFilter $TenantFilter -Type 'Standard' - } + #For each item in our object, run the queue. + $Queue = New-CippQueueEntry -Name 'Drift Standards' -TotalTasks ($AllTasks | Measure-Object).Count - #For each item in our object, run the queue. - $Queue = New-CippQueueEntry -Name "Applying Standards ($TenantFilter)" -TotalTasks ($AllTasks | Measure-Object).Count + $Batch = foreach ($Task in $AllTasks) { + [PSCustomObject]@{ + FunctionName = 'CIPPDriftManagement' + Tenant = $Task.TenantFilter + } + } - $InputObject = [PSCustomObject]@{ - OrchestratorName = 'StandardsOrchestrator' - QueueFunction = @{ - FunctionName = 'GetStandards' - QueueId = $Queue.RowKey - StandardParams = @{ - TenantFilter = $TenantFilter + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'DriftStandardsOrchestrator' + Batch = @($Batch) + SkipLog = $true + } + + $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + Write-Information "Started orchestration with ID = '$InstanceId' for drift standards run" + #$Orchestrator = New-OrchestrationCheckStatusResponse -Request $Request -InstanceId $InstanceId + return + } else { + Write-Information 'Classic Standards Run' + + if ($Force.IsPresent) { + Write-Information 'Clearing Rerun Cache' + Test-CIPPRerun -ClearAll -TenantFilter $TenantFilter -Type 'Standard' + } + + $StandardsParams = @{ + TenantFilter = $TenantFilter + runManually = $runManually + } + if ($TemplateID) { + $StandardsParams['TemplateId'] = $TemplateID + } + + $AllTenantsList = Get-CIPPStandards @StandardsParams | Select-Object -ExpandProperty Tenant | Sort-Object -Unique + + # Build batch of per-tenant list activities + $Batch = foreach ($Tenant in $AllTenantsList) { + $BatchItem = @{ + FunctionName = 'CIPPStandardsList' + TenantFilter = $Tenant runManually = $runManually } + if ($TemplateID) { + $BatchItem['TemplateId'] = $TemplateID + } + $BatchItem } - SkipLog = $true - } - if ($TemplateID) { - $InputObject.QueueFunction.StandardParams['TemplateId'] = $TemplateID + + Write-Information "Built batch of $($Batch.Count) tenant standards list activities: $($Batch | ConvertTo-Json -Depth 5 -Compress)" + + # Start orchestrator with distributed batch and post-exec aggregation + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'StandardsList' + Batch = @($Batch) + PostExecution = @{ + FunctionName = 'CIPPStandardsApplyBatch' + } + SkipLog = $true + } + + Write-Information "InputObject: $($InputObject | ConvertTo-Json -Depth 5 -Compress)" + $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + Write-Information "Started standards list orchestration with ID = '$InstanceId'" } - Write-Host "InputObject: $($InputObject | ConvertTo-Json -Depth 5 -Compress)" - $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) - Write-Host "Started orchestration with ID = '$InstanceId'" - #$Orchestrator = New-OrchestrationCheckStatusResponse -Request $Request -InstanceId $InstanceId } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecBPA.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecBPA.ps1 index f6e208d59837..398ef51a6fbc 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecBPA.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecBPA.ps1 @@ -38,7 +38,7 @@ function Invoke-ExecBPA { $Results = [pscustomobject]@{'Results' = 'BPA started' } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Results }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecDomainAnalyser.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecDomainAnalyser.ps1 index 4612e0ae27af..573498b0c8f6 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecDomainAnalyser.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecDomainAnalyser.ps1 @@ -3,7 +3,7 @@ function Invoke-ExecDomainAnalyser { .FUNCTIONALITY Entrypoint,AnyTenant .ROLE - Tenant.DomainAnalyser.Read + Tenant.DomainAnalyser.ReadWrite #> [CmdletBinding()] param($Request, $TriggerMetadata) @@ -32,7 +32,7 @@ function Invoke-ExecDomainAnalyser { $Results = [pscustomobject]@{'Results' = $Message } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Results }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecDriftClone.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecDriftClone.ps1 new file mode 100644 index 000000000000..ff43f91dd0f0 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecDriftClone.ps1 @@ -0,0 +1,45 @@ +function Invoke-ExecDriftClone { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Standards.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + try { + $TemplateId = $Request.Body.id + + if (-not $TemplateId) { + $Results = [pscustomobject]@{ + 'Results' = 'Template ID is required' + 'Success' = $false + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = $Results + }) + return + } + $CloneResult = New-CippStandardsDriftClone -TemplateId $TemplateId -UpgradeToDrift -Headers $Request.Headers + $Results = [pscustomobject]@{ + 'Results' = $CloneResult + 'Success' = $true + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Results + }) + } catch { + $Results = [pscustomobject]@{ + 'Results' = "Failed to create drift clone: $($_.Exception.Message)" + 'Success' = $false + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = $Results + }) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecStandardConvert.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecStandardConvert.ps1 index a03765cad909..1b74e88cbfb1 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecStandardConvert.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecStandardConvert.ps1 @@ -1,9 +1,7 @@ -using namespace System.Net - function Invoke-ExecStandardConvert { <# .FUNCTIONALITY - Entrypoint,AnyTenant + Entrypoint .ROLE Tenant.Standards.ReadWrite #> @@ -231,8 +229,7 @@ function Invoke-ExecStandardConvert { } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = 'Successfully converted legacy standards to new format' }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecStandardsRun.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecStandardsRun.ps1 index f2440e006895..0e2f940f7948 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecStandardsRun.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecStandardsRun.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ExecStandardsRun { +function Invoke-ExecStandardsRun { <# .FUNCTIONALITY Entrypoint @@ -11,7 +9,7 @@ Function Invoke-ExecStandardsRun { param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $TenantFilter = $Request.Query.tenantFilter ?? 'allTenants' @@ -38,7 +36,7 @@ Function Invoke-ExecStandardsRun { $ProcessorFunction = [PSCustomObject]@{ PartitionKey = 'Function' - RowKey = "Invoke-CIPPStandardsRun-$TenantFilter" + RowKey = "Invoke-CIPPStandardsRun-$TenantFilter-$TemplateId" FunctionName = 'Invoke-CIPPStandardsRun' Parameters = [string](ConvertTo-Json -Compress -InputObject @{ TenantFilter = $TenantFilter @@ -65,8 +63,7 @@ Function Invoke-ExecStandardsRun { $Results = [pscustomobject]@{'Results' = "$Results" } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Results }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecUpdateDriftDeviation.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecUpdateDriftDeviation.ps1 new file mode 100644 index 000000000000..63b639e3769e --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecUpdateDriftDeviation.ps1 @@ -0,0 +1,133 @@ +function Invoke-ExecUpdateDriftDeviation { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Standards.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $TriggerMetadata.FunctionName + Write-LogMessage -user $request.headers.'x-ms-client-principal' -API $APINAME -message 'Accessed this API' -Sev 'Debug' + + try { + $TenantFilter = $Request.Body.TenantFilter + + if ($Request.Body.RemoveDriftCustomization) { + $Table = Get-CippTable -tablename 'tenantDrift' + $Filter = "PartitionKey eq '$TenantFilter'" + $ExistingDeviations = Get-CIPPAzDataTableEntity @Table -Filter $Filter + foreach ($Deviation in $ExistingDeviations) { + Remove-AzDataTableEntity @Table -Entity $Deviation + } + $Results = @([PSCustomObject]@{ + success = $true + result = "All drift customizations removed for tenant $TenantFilter" + }) + Write-LogMessage -tenant $TenantFilter -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Removed all drift customizations for tenant $TenantFilter" -Sev 'Info' + } else { + $Deviations = $Request.Body.deviations + $Reason = $Request.Body.reason + $Results = foreach ($Deviation in $Deviations) { + try { + $user = $request.headers.'x-ms-client-principal' + $username = ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($user)) | ConvertFrom-Json).userDetails + $Result = Set-CIPPDriftDeviation -TenantFilter $TenantFilter -StandardName $Deviation.standardName -Status $Deviation.status -Reason $Reason -user $username + [PSCustomObject]@{ + success = $true + result = $Result + } + Write-LogMessage -tenant $TenantFilter -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Updated drift deviation status for $($Deviation.standardName) to $($Deviation.status) with reason: $Reason" -Sev 'Info' + if ($Deviation.status -eq 'DeniedRemediate') { + $Setting = $Deviation.standardName -replace 'standards.', '' + $StandardTemplate = Get-CIPPTenantAlignment -TenantFilter $TenantFilter | Where-Object -Property standardType -EQ 'drift' + if ($Setting -like '*IntuneTemplate*') { + $Setting = 'IntuneTemplate' + $TemplateId = $Deviation.standardName.split('.') | Select-Object -Index 2 + $StandardTemplate = $StandardTemplate.standardSettings.IntuneTemplate | Where-Object { $_.TemplateList.value -like "*$TemplateId*" } + $StandardTemplate | Add-Member -MemberType NoteProperty -Name 'remediate' -Value $true -Force + $StandardTemplate | Add-Member -MemberType NoteProperty -Name 'report' -Value $true -Force + $Settings = $StandardTemplate + } elseif ($Setting -like '*ConditionalAccessTemplate*') { + $Setting = 'ConditionalAccessTemplate' + $TemplateId = $Deviation.standardName.split('.') | Select-Object -Index 2 + $StandardTemplate = $StandardTemplate.standardSettings.ConditionalAccessTemplate | Where-Object { $_.TemplateList.value -like "*$TemplateId*" } + $StandardTemplate | Add-Member -MemberType NoteProperty -Name 'remediate' -Value $true -Force + $StandardTemplate | Add-Member -MemberType NoteProperty -Name 'report' -Value $true -Force + $Settings = $StandardTemplate + } else { + $StandardTemplate = $StandardTemplate.standardSettings.$Setting + $StandardTemplate.standards.$Setting | Add-Member -MemberType NoteProperty -Name 'remediate' -Value $true -Force + $StandardTemplate.standards.$Setting | Add-Member -MemberType NoteProperty -Name 'report' -Value $true -Force + $Settings = $StandardTemplate.standards.$Setting + } + $TaskBody = @{ + TenantFilter = $TenantFilter + Name = "One Off Drift Remediation: $Setting - $TenantFilter" + Command = @{ + value = "Invoke-CIPPStandard$Setting" + label = "Invoke-CIPPStandard$Setting" + } + + Parameters = [pscustomobject]@{ + Tenant = $TenantFilter + Settings = $Settings + } + ScheduledTime = '0' + PostExecution = @{ + Webhook = $false + Email = $false + PSA = $false + } + } + Add-CIPPScheduledTask -Task $TaskBody -hidden $false + Write-LogMessage -tenant $TenantFilter -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Scheduled drift remediation task for $Setting" -Sev 'Info' + } + if ($Deviation.status -eq 'deniedDelete') { + $Policy = $Deviation.receivedValue | ConvertFrom-Json -ErrorAction SilentlyContinue + Write-Host "Policy is $($Policy)" + if ($Deviation.standardName -like '*ConditionalAccessTemplates*') { + $URLName = 'identity/conditionalAccess/policies' + } else { + $URLName = Get-CIPPURLName -Template $Policy + } + $ID = $Policy.ID + if ($Policy -and $URLName) { + Write-Host "Going to delete Policy with ID $($Policy.ID) Deviation Name is $($Deviation.standardName)" + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/$($URLName)/$($ID)" -type DELETE -tenant $TenantFilter + "Deleted Policy $($ID)" + Write-LogMessage -tenant $TenantFilter -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Deleted Policy with ID $($ID)" -Sev 'Info' + } else { + "could not find policy with ID $($ID)" + Write-LogMessage -tenant $TenantFilter -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Could not find Policy with ID $($ID) to delete for remediation" -Sev 'Warning' + } + + + } + } catch { + [PSCustomObject]@{ + standardName = $Deviation.standardName + success = $false + error = $_.Exception.Message + } + Write-LogMessage -tenant $TenantFilter -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Failed to update drift deviation for $($Deviation.standardName): $($_.Exception.Message)" -Sev 'Error' + } + } + } + + $Body = @{ Results = @($Results) } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) + + } catch { + Write-LogMessage -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Failed to update drift deviation: $($_.Exception.Message)" -Sev 'Error' + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{error = $_.Exception.Message } + }) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListBPA.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListBPA.ps1 index 8e58e59058ab..f51ede9d33d2 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListBPA.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListBPA.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListBPA { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ Function Invoke-ListBPA { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter $Table = Get-CippTable 'cachebpav2' @@ -100,8 +93,7 @@ Function Invoke-ListBPA { } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = (ConvertTo-Json -Depth 15 -InputObject $Results) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListBPATemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListBPATemplates.ps1 index 356f5443ece3..d571b95727d9 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListBPATemplates.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListBPATemplates.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListBPATemplates { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ Function Invoke-ListBPATemplates { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $Table = Get-CippTable -tablename 'templates' $Templates = Get-ChildItem 'Config\*.BPATemplate.json' | ForEach-Object { @@ -47,8 +40,7 @@ Function Invoke-ListBPATemplates { } } | Sort-Object Name } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = ($Templates | ConvertTo-Json -Depth 10) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListDomainAnalyser.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListDomainAnalyser.ps1 index 4cda61a033b9..416db1a50c62 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListDomainAnalyser.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListDomainAnalyser.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - Function Invoke-ListDomainAnalyser { <# .FUNCTIONALITY @@ -10,18 +8,12 @@ Function Invoke-ListDomainAnalyser { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter $Results = Get-CIPPDomainAnalyser -TenantFilter $TenantFilter - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($Results) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListDomainHealth.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListDomainHealth.ps1 index fa5a96de8dcb..6930f2cce975 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListDomainHealth.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListDomainHealth.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ListDomainHealth { <# .FUNCTIONALITY @@ -11,9 +9,6 @@ function Invoke-ListDomainHealth { param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - Import-Module DNSHealth try { @@ -42,9 +37,6 @@ function Invoke-ListDomainHealth { $UserRoles = Get-CIPPAccessRole -Request $Request $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $StatusCode = [HttpStatusCode]::OK @@ -152,8 +144,7 @@ function Invoke-ListDomainHealth { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListStandards.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListStandards.ps1 index c4bbf2f79a6b..5df42f75ef80 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListStandards.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListStandards.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListStandards { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ Function Invoke-ListStandards { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter @@ -50,8 +43,7 @@ Function Invoke-ListStandards { $CurrentStandards = ConvertTo-Json -InputObject @($CurrentStandards) -Depth 15 -Compress } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $CurrentStandards }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListStandardsCompare.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListStandardsCompare.ps1 index 21b8b79272c7..0b94eb63d919 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListStandardsCompare.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListStandardsCompare.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ListStandardsCompare { <# .FUNCTIONALITY @@ -13,34 +11,19 @@ function Invoke-ListStandardsCompare { $Table = Get-CIPPTable -TableName 'CippStandardsReports' $TenantFilter = $Request.Query.tenantFilter + $TemplateFilter = $Request.Query.templateId + + $Filters = [system.collections.generic.list[string]]::new() if ($TenantFilter) { - $Table.Filter = "PartitionKey eq '{0}'" -f $TenantFilter + $Filters.Add("PartitionKey eq '{0}'" -f $TenantFilter) } + if ($TemplateFilter) { + $Filters.Add("TemplateId eq '{0}'" -f $TemplateFilter) + } + $Filter = $Filters -join ' and ' - $Standards = Get-CIPPAzDataTableEntity @Table - - #in the results we have objects starting with "standards." All these have to be converted from JSON. Do not do this is its a boolean - <#$Results | ForEach-Object { - $Object = $_ - $Object.PSObject.Properties | ForEach-Object { - if ($_.Name -like 'standards_*') { - if ($_.Value -is [System.Boolean]) { - $_.Value = [bool]$_.Value - } elseif ($_.Value -like '*{*') { - $_.Value = ConvertFrom-Json -InputObject $_.Value -ErrorAction SilentlyContinue - } else { - $_.Value = [string]$_.Value - } - - $Key = $_.Name.replace('standards_', 'standards.') - $Key = $Key.replace('IntuneTemplate_', 'IntuneTemplate.') - $Key = $Key -replace '__', '-' - - $object | Add-Member -MemberType NoteProperty -Name $Key -Value $_.Value -Force - $object.PSObject.Properties.Remove($_.Name) - } - } - }#> + $Tenants = Get-Tenants -IncludeErrors + $Standards = Get-CIPPAzDataTableEntity @Table -Filter $Filter | Where-Object { $_.PartitionKey -in $Tenants.defaultDomainName } $TenantStandards = @{} $Results = [System.Collections.Generic.List[object]]::new() @@ -57,25 +40,42 @@ function Invoke-ListStandardsCompare { $HexEncodedName = $Matches[2] $Chars = [System.Collections.Generic.List[char]]::new() for ($i = 0; $i -lt $HexEncodedName.Length; $i += 2) { - $Chars.Add([char][Convert]::ToInt32($HexEncodedName.Substring($i,2),16)) + $Chars.Add([char][Convert]::ToInt32($HexEncodedName.Substring($i, 2), 16)) } $FieldName = "$Prefix$(-join $Chars)" } if ($FieldValue -is [System.Boolean]) { $FieldValue = [bool]$FieldValue - } elseif ($FieldValue -like '*{*') { + } elseif (Test-Json -Json $FieldValue -ErrorAction SilentlyContinue) { $FieldValue = ConvertFrom-Json -InputObject $FieldValue -ErrorAction SilentlyContinue } else { $FieldValue = [string]$FieldValue } + # Parse CurrentValue and ExpectedValue from JSON if they are JSON strings + $ParsedCurrentValue = if ($Standard.CurrentValue -and (Test-Json -Json $Standard.CurrentValue -ErrorAction SilentlyContinue)) { + ConvertFrom-Json -InputObject $Standard.CurrentValue -ErrorAction SilentlyContinue + } else { + $Standard.CurrentValue + } + + $ParsedExpectedValue = if ($Standard.ExpectedValue -and (Test-Json -Json $Standard.ExpectedValue -ErrorAction SilentlyContinue)) { + ConvertFrom-Json -InputObject $Standard.ExpectedValue -ErrorAction SilentlyContinue + } else { + $Standard.ExpectedValue + } + if (-not $TenantStandards.ContainsKey($Tenant)) { $TenantStandards[$Tenant] = @{} } $TenantStandards[$Tenant][$FieldName] = @{ - Value = $FieldValue - LastRefresh = $Standard.TimeStamp.ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + Value = $FieldValue + LastRefresh = $Standard.TimeStamp.ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + TemplateId = $Standard.TemplateId + LicenseAvailable = $Standard.LicenseAvailable + CurrentValue = $ParsedCurrentValue + ExpectedValue = $ParsedExpectedValue } } @@ -90,7 +90,7 @@ function Invoke-ListStandardsCompare { $Results.Add($TenantStandard) } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($Results) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListTenantAlignment.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListTenantAlignment.ps1 new file mode 100644 index 000000000000..2fce6965eed6 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListTenantAlignment.ps1 @@ -0,0 +1,41 @@ +function Invoke-ListTenantAlignment { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Standards.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + try { + # Use the new Get-CIPPTenantAlignment function to get alignment data + $AlignmentData = Get-CIPPTenantAlignment + + # Transform the data to match the expected API response format + $Results = $AlignmentData | ForEach-Object { + [PSCustomObject]@{ + tenantFilter = $_.TenantFilter + standardName = $_.StandardName + standardType = $_.StandardType ? $_.StandardType : 'Classic Standard' + standardId = $_.StandardId + alignmentScore = $_.AlignmentScore + LicenseMissingPercentage = $_.LicenseMissingPercentage + combinedAlignmentScore = $_.CombinedScore + latestDataCollection = $_.LatestDataCollection + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($Results) + }) + } catch { + Write-LogMessage -API $APIName -message "Failed to get tenant alignment data: $($_.Exception.Message)" -sev Error + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = @{ error = "Failed to get tenant alignment data: $($_.Exception.Message)" } + }) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListTenantDrift.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListTenantDrift.ps1 new file mode 100644 index 000000000000..bb45a2248441 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListTenantDrift.ps1 @@ -0,0 +1,34 @@ +function Invoke-ListTenantDrift { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Standards.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + + try { + # Use the new Get-CIPPTenantAlignment function to get alignment data + if ($Request.Query.TenantFilter) { + $TenantFilter = $Request.Query.TenantFilter + $Results = Get-CIPPDrift -TenantFilter $TenantFilter + } else { + $Tenants = Get-Tenants + $Results = $Tenants | ForEach-Object { Get-CIPPDrift -AllTenants -TenantFilter $_.defaultDomainName } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($Results) + }) + } catch { + Write-LogMessage -API $APIName -message "Failed to get tenant alignment data: $($_.Exception.Message)" -sev Error + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = @{ error = "Failed to get tenant alignment data: $($_.Exception.Message)" } + }) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveBPATemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveBPATemplate.ps1 index ebebb03ab3a9..0295956353ce 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveBPATemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveBPATemplate.ps1 @@ -1,9 +1,7 @@ -using namespace System.Net - Function Invoke-RemoveBPATemplate { <# .FUNCTIONALITY - Entrypoint,AnyTenant + Entrypoint .ROLE Tenant.Standards.ReadWrite #> @@ -12,7 +10,7 @@ Function Invoke-RemoveBPATemplate { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $ID = $Request.Query.TemplateName ?? $Request.Body.TemplateName try { @@ -32,8 +30,7 @@ Function Invoke-RemoveBPATemplate { } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{'Results' = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveStandard.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveStandard.ps1 index 2a2347630687..e2b237e4ab81 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveStandard.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveStandard.ps1 @@ -1,9 +1,7 @@ -using namespace System.Net - Function Invoke-RemoveStandard { <# .FUNCTIONALITY - Entrypoint,AnyTenant + Entrypoint .ROLE Tenant.Standards.ReadWrite #> @@ -12,7 +10,7 @@ Function Invoke-RemoveStandard { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $ID = $Request.Query.ID @@ -34,8 +32,7 @@ Function Invoke-RemoveStandard { } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveStandardTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveStandardTemplate.ps1 index 0597ca7fb4a3..d9d3f9e2dfc0 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveStandardTemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveStandardTemplate.ps1 @@ -1,9 +1,7 @@ -using namespace System.Net - function Invoke-RemoveStandardTemplate { <# .FUNCTIONALITY - Entrypoint,AnyTenant + Entrypoint .ROLE Tenant.Standards.ReadWrite #> @@ -12,15 +10,19 @@ function Invoke-RemoveStandardTemplate { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $ID = $Request.Body.ID ?? $Request.Query.ID try { $Table = Get-CippTable -tablename 'templates' - $Filter = "PartitionKey eq 'StandardsTemplateV2' and RowKey eq '$ID'" + $Filter = "PartitionKey eq 'StandardsTemplateV2' and GUID eq '$ID'" $ClearRow = Get-CIPPAzDataTableEntity @Table -Filter $Filter -Property PartitionKey, RowKey, JSON - $TemplateName = (ConvertFrom-Json -InputObject $ClearRow.JSON).templateName + if ($ClearRow.JSON) { + $TemplateName = (ConvertFrom-Json -InputObject $ClearRow.JSON -ErrorAction SilentlyContinue).templateName + } else { + $TemplateName = '' + } Remove-AzDataTableEntity -Force @Table -Entity $ClearRow $Result = "Removed Standards Template named: '$($TemplateName)' with id: $($ID)" Write-LogMessage -Headers $Headers -API $APIName -message $Result -Sev Info @@ -32,8 +34,7 @@ function Invoke-RemoveStandardTemplate { $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{'Results' = $Result } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-listStandardTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-listStandardTemplates.ps1 index 258ce05cc801..cd8821ae41a2 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-listStandardTemplates.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-listStandardTemplates.ps1 @@ -1,21 +1,14 @@ -using namespace System.Net - function Invoke-listStandardTemplates { <# .FUNCTIONALITY - Entrypoint,AnyTenant + Entrypoint .ROLE Tenant.Standards.Read #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' # Interact with query parameters or the body of the request. $ID = $Request.Query.id - $Table = Get-CippTable -tablename 'templates' $Filter = "PartitionKey eq 'StandardsTemplateV2'" $Templates = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) | ForEach-Object { @@ -30,6 +23,8 @@ function Invoke-listStandardTemplates { } if ($Data) { $Data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $_.GUID -Force + $Data | Add-Member -NotePropertyName 'source' -NotePropertyValue $_.Source -Force + $Data | Add-Member -NotePropertyName 'isSynced' -NotePropertyValue (![string]::IsNullOrEmpty($_.SHA)) -Force if (!$Data.excludedTenants) { $Data | Add-Member -NotePropertyName 'excludedTenants' -NotePropertyValue @() -Force @@ -45,8 +40,7 @@ function Invoke-listStandardTemplates { } | Sort-Object -Property templateName if ($ID) { $Templates = $Templates | Where-Object GUID -EQ $ID } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($Templates) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/invoke-DomainAnalyser_List.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/invoke-DomainAnalyser_List.ps1 index 495e952c159a..b441f709d7f0 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/invoke-DomainAnalyser_List.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/invoke-DomainAnalyser_List.ps1 @@ -33,8 +33,7 @@ Function Invoke-DomainAnalyser_List { } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($Results) }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Tools/Invoke-AddBPATemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Tools/Invoke-AddBPATemplate.ps1 index 04ed12a51fb6..7fd804076cf2 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Tools/Invoke-AddBPATemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Tools/Invoke-AddBPATemplate.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-AddBPATemplate { <# .FUNCTIONALITY @@ -11,9 +9,6 @@ Function Invoke-AddBPATemplate { param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - try { $Table = Get-CippTable -tablename 'templates' @@ -33,8 +28,7 @@ Function Invoke-AddBPATemplate { } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Tools/Invoke-ExecGraphExplorerPreset.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Tools/Invoke-ExecGraphExplorerPreset.ps1 index 4b068585ffc6..08c2ed1d96ad 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Tools/Invoke-ExecGraphExplorerPreset.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Tools/Invoke-ExecGraphExplorerPreset.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ExecGraphExplorerPreset { <# .FUNCTIONALITY @@ -9,14 +7,11 @@ function Invoke-ExecGraphExplorerPreset { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - #UNDOREPLACE + $Username = ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json).userDetails - $Action = $Request.Body.Action ?? '' + $Action = $Request.Body.action ?? '' Write-Information ($Request.Body | ConvertTo-Json -Depth 10) @@ -42,27 +37,31 @@ function Invoke-ExecGraphExplorerPreset { $params.'$select' = ($params.'$select').value -join ',' } - if (!$Request.Body.preset.name) { + if (!$Request.Body.preset.name -and $Action -ne 'Delete') { $Message = 'Error: Preset name is required' $StatusCode = [HttpStatusCode]::BadRequest - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ - Results = $Message - Success = $false + Results = @(@{ + resultText = $Message + state = 'error' + }) } }) return } - if (!$Request.Body.preset.endpoint) { + if (!$Request.Body.preset.endpoint -and $Action -ne 'Delete') { $Message = 'Error: Preset endpoint is required' $StatusCode = [HttpStatusCode]::BadRequest - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ - Results = $Message - Success = $false + Results = @(@{ + resultText = $Message + state = 'error' + }) } }) return @@ -107,12 +106,13 @@ function Invoke-ExecGraphExplorerPreset { $Message = $_.Exception.Message $StatusCode = [HttpStatusCode]::BadRequest } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ - Results = $Message - Success = $Success + Results = @(@{ + resultText = $Message + state = if ($Success) { 'success' } else { 'error' } + }) } }) } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ExecCommunityRepo.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ExecCommunityRepo.ps1 index d30b00e19c09..ffe14702ce63 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ExecCommunityRepo.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ExecCommunityRepo.ps1 @@ -29,7 +29,7 @@ function Invoke-ExecCommunityRepo { Results = $Results } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Body }) @@ -169,11 +169,17 @@ function Invoke-ExecCommunityRepo { $MigrationTable = $Files | Where-Object { $_.name -eq 'MigrationTable' } | Select-Object -Last 1 if ($MigrationTable) { - Write-Host 'Found a migration table, getting contents' + Write-Host "Found a migration table, getting contents for $FullName" $MigrationTable = (Get-GitHubFileContents -FullName $FullName -Branch $Branch -Path $MigrationTable.path).content | ConvertFrom-Json } + + $NamedLocations = $Files | Where-Object { $_.name -match 'ALLOWED COUNTRIES' } + $LocationData = foreach ($Location in $NamedLocations) { + (Get-GitHubFileContents -FullName $FullName -Branch $Branch -Path $Location.path).content | ConvertFrom-Json + } } - Import-CommunityTemplate -Template $Content -SHA $Template.sha -MigrationTable $MigrationTable + Import-CommunityTemplate -Template $Content -SHA $Template.sha -MigrationTable $MigrationTable -LocationData $LocationData + $Results = @{ resultText = 'Template imported' state = 'success' @@ -197,7 +203,7 @@ function Invoke-ExecCommunityRepo { Results = @($Results) } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ExecGitHubAction.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ExecGitHubAction.ps1 index a367c35b9cfb..f03b641719dd 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ExecGitHubAction.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ExecGitHubAction.ps1 @@ -23,7 +23,7 @@ function Invoke-ExecGitHubAction { $SplatParams = $Parameters | Select-Object -ExcludeProperty Action, TenantFilter | ConvertTo-Json | ConvertFrom-Json -AsHashtable $Table = Get-CIPPTable -TableName Extensionsconfig - $Configuration = ((Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json).GitHub + $Configuration = ((Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json -ErrorAction SilentlyContinue).GitHub if (!$Configuration.Enabled) { $Response = Invoke-RestMethod -Uri 'https://cippy.azurewebsites.net/api/ExecGitHubAction' -Method POST -Body ($Parameters | ConvertTo-Json -Depth 10) -ContentType 'application/json' @@ -110,7 +110,7 @@ function Invoke-ExecGitHubAction { $Body.Metadata = $Metadata } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ListCommunityRepos.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ListCommunityRepos.ps1 index 28010137b278..8c33f1ed2d2a 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ListCommunityRepos.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ListCommunityRepos.ps1 @@ -24,7 +24,7 @@ function Invoke-ListCommunityRepos { if (!$Request.Query.WriteAccess) { $CIPPRoot = (Get-Item (Get-Module -Name CIPPCore).ModuleBase).Parent.Parent.FullName - $CommunityRepos = Join-Path -Path $CIPPRoot -ChildPath 'CommunityRepos.json' + $CommunityRepos = Join-Path -Path $CIPPRoot -ChildPath 'Resources\CommunityRepos.json' $DefaultCommunityRepos = Get-Content -Path $CommunityRepos -Raw | ConvertFrom-Json $DefaultsMissing = $false @@ -42,7 +42,7 @@ function Invoke-ListCommunityRepos { WriteAccess = $Repo.WriteAccess DefaultBranch = $Repo.DefaultBranch UploadBranch = $Repo.DefaultBranch - Permissions = [string]($Repo.RepoPermissions | ConvertTo-Json) + Permissions = [string]($Repo.RepoPermissions | ConvertTo-Json -ErrorAction SilentlyContinue -Compress) } Add-CIPPAzDataTableEntity @Table -Entity $Entity $DefaultsMissing = $true @@ -65,7 +65,7 @@ function Invoke-ListCommunityRepos { WriteAccess = $_.WriteAccess DefaultBranch = $_.DefaultBranch UploadBranch = $_.UploadBranch ?? $_.DefaultBranch - RepoPermissions = $_.Permissions | ConvertFrom-Json + RepoPermissions = ($_.Permissions | ConvertFrom-Json -ErrorAction SilentlyContinue) ?? @{} } } @@ -73,7 +73,7 @@ function Invoke-ListCommunityRepos { Results = @($Repos | Sort-Object -Property FullName) } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Body }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ListGitHubReleaseNotes.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ListGitHubReleaseNotes.ps1 new file mode 100644 index 000000000000..8769763e6435 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ListGitHubReleaseNotes.ps1 @@ -0,0 +1,91 @@ +function Invoke-ListGitHubReleaseNotes { + <# + .SYNOPSIS + Retrieves release notes for a GitHub repository. + .DESCRIPTION + Returns release metadata for the provided repository and semantic version. Hotfix + versions (e.g. v8.5.2) map back to the base release tag (v8.5.0). + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $Owner = $Request.Query.Owner + $Repository = $Request.Query.Repository + + if (-not $Owner) { + throw 'Owner parameter is required to retrieve release notes.' + } + + if (-not $Repository) { + throw 'Repository parameter is required to retrieve release notes.' + } + + $ReleasePath = "repos/$Owner/$Repository/releases?per_page=50" + + $Table = Get-CIPPTable -TableName cacheGitHubReleaseNotes + $PartitionKey = 'GitHubReleaseNotes' + $Filter = "PartitionKey eq '$PartitionKey'" + $Rows = Get-CIPPAzDataTableEntity @Table -filter $Filter + + try { + $Latest = $false + if ($Rows) { + $Releases = ConvertFrom-Json -InputObject $Rows.GitHubReleases -Depth 10 + $CurrentVersion = [semver]$global:CippVersion + $CurrentMajorMinor = "$($CurrentVersion.Major).$($CurrentVersion.Minor)" + + foreach ($Release in $Releases) { + $Version = $Release.releaseTag -replace 'v', '' + try { + $ReleaseVersion = [semver]$Version + $ReleaseMajorMinor = "$($ReleaseVersion.Major).$($ReleaseVersion.Minor)" + + # Check if we have cached notes for the current major.minor version series + if ($ReleaseMajorMinor -eq $CurrentMajorMinor) { + $Latest = $true + break + } + } catch { + # Skip invalid semver versions + continue + } + } + } + + if (-not $Latest) { + $Releases = Invoke-GitHubApiRequest -Path $ReleasePath + $Releases = $Releases | ForEach-Object { + [ordered]@{ + name = $_.name + body = $_.body + releaseTag = $_.tag_name + htmlUrl = $_.html_url + publishedAt = $_.published_at + draft = [bool]$_.draft + prerelease = [bool]$_.prerelease + commitish = $_.target_commitish + } + } + $Results = @{ + GitHubReleases = [string](ConvertTo-Json -Depth 10 -InputObject $Releases) + RowKey = [string]'GitHubReleaseNotes' + PartitionKey = $PartitionKey + } + Add-CIPPAzDataTableEntity @Table -Entity $Results -Force | Out-Null + } + + } catch { + $ErrorMessage = "Failed to retrieve release information: $($_)" + throw $ErrorMessage + } + + if (-not $Releases) { + return $IsListRequest ? @() : (throw "No releases returned for $Owner/$Repository") + } + + return $Releases +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecBreachSearch.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecBreachSearch.ps1 index f012ad7ec12e..7de5b671d4f3 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecBreachSearch.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecBreachSearch.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ExecBreachSearch { +function Invoke-ExecBreachSearch { <# .FUNCTIONALITY Entrypoint @@ -9,19 +7,14 @@ Function Invoke-ExecBreachSearch { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. - $TenantFilter = $Request.query.tenantFilter + $TenantFilter = $Request.body.tenantFilter #Move to background job New-BreachTenantSearch -TenantFilter $TenantFilter - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK - Body = @{ Results = "Executing Search for $TenantFilter" } + Body = @{ Results = "Executing Search for $TenantFilter. This may take up to 24 hours to complete." } }) } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecCSPLicense.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecCSPLicense.ps1 index fc6ce44569e4..6b7400e98ca4 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecCSPLicense.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecCSPLicense.ps1 @@ -1,23 +1,19 @@ -using namespace System.Net - -Function Invoke-ExecCSPLicense { +function Invoke-ExecCSPLicense { <# .FUNCTIONALITY Entrypoint .ROLE - Tenant.Directory.Read + Tenant.Directory.ReadWrite #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantFilter = $Request.Body.tenantFilter $Action = $Request.Body.Action - $SKU = $Request.Body.SKU + $SKU = $Request.Body.SKU.value ?? $Request.Body.SKU try { if ($Action -eq 'Add') { @@ -41,9 +37,9 @@ Function Invoke-ExecCSPLicense { $StatusCode = [HttpStatusCode]::InternalServerError } # If $GraphRequest is a GUID, the subscription was edited successfully, and return that it's done. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = $Result - }) -Clobber + return [HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Result + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecExtensionNinjaOneQueue.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecExtensionNinjaOneQueue.ps1 index 1abf879ccc36..b9b5724e3310 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecExtensionNinjaOneQueue.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecExtensionNinjaOneQueue.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ExecExtensionNinjaOneQueue { +function Invoke-ExecExtensionNinjaOneQueue { <# .FUNCTIONALITY Entrypoint @@ -9,12 +7,7 @@ Function Invoke-ExecExtensionNinjaOneQueue { #> [CmdletBinding()] param($Request, $TriggerMetadata) - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - - Switch ($QueueItem.NinjaAction) { + switch ($QueueItem.NinjaAction) { 'StartAutoMapping' { Invoke-NinjaOneOrgMapping } 'AutoMapTenant' { Invoke-NinjaOneOrgMappingTenant -QueueItem $QueueItem } 'SyncTenant' { Invoke-NinjaOneTenantSync -QueueItem $QueueItem } @@ -25,8 +18,8 @@ Function Invoke-ExecExtensionNinjaOneQueue { Body = 'Success' } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return [HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Body - }) + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecListAppId.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecListAppId.ps1 index 94eb35a5c3d1..6c0581ad0c8e 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecListAppId.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecListAppId.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ExecListAppId { +function Invoke-ExecListAppId { <# .FUNCTIONALITY Entrypoint @@ -10,37 +8,18 @@ Function Invoke-ExecListAppId { [CmdletBinding()] param($Request, $TriggerMetadata) Get-CIPPAuthentication - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' $ResponseURL = "$(($Request.headers.'x-ms-original-url').replace('/api/ExecListAppId','/api/ExecSAMSetup'))" #make sure we get the very latest version of the appid from kv: - if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true') { + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { $DevSecretsTable = Get-CIPPTable -tablename 'DevSecrets' $Secret = Get-CIPPAzDataTableEntity @DevSecretsTable -Filter "PartitionKey eq 'Secret' and RowKey eq 'Secret'" $env:ApplicationID = $Secret.ApplicationID $env:TenantID = $Secret.TenantID } else { - Write-Information 'Connecting to Azure' - Connect-AzAccount -Identity - $SubscriptionId = $env:WEBSITE_OWNER_NAME -split '\+' | Select-Object -First 1 - try { - $Context = Get-AzContext - if ($Context.Subscription) { - #Write-Information "Current context: $($Context | ConvertTo-Json)" - if ($Context.Subscription.Id -ne $SubscriptionId) { - Write-Information "Setting context to subscription $SubscriptionId" - $null = Set-AzContext -SubscriptionId $SubscriptionId - } - } - } catch { - Write-Information "ERROR: Could not set context to subscription $SubscriptionId." - } - $keyvaultname = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] try { - $env:ApplicationID = (Get-AzKeyVaultSecret -AsPlainText -VaultName $keyvaultname -Name 'ApplicationID') - $env:TenantID = (Get-AzKeyVaultSecret -AsPlainText -VaultName $keyvaultname -Name 'TenantID') + $env:ApplicationID = (Get-CippKeyVaultSecret -AsPlainText -VaultName $keyvaultname -Name 'ApplicationID') + $env:TenantID = (Get-CippKeyVaultSecret -AsPlainText -VaultName $keyvaultname -Name 'TenantID') Write-Information "Retrieving secrets from KeyVault: $keyvaultname. The AppId is $($env:ApplicationID) and the TenantId is $($env:TenantID)" } catch { Write-Information "Retrieving secrets from KeyVault: $keyvaultname. The AppId is $($env:ApplicationID) and the TenantId is $($env:TenantID)" @@ -49,15 +28,83 @@ Function Invoke-ExecListAppId { $env:TenantID = (Get-CippException -Exception $_) } } + + # Get organization info and authenticated user using bulk request + $AuthenticatedUserDisplayName = $null + $AuthenticatedUserPrincipalName = $null + $OrgInfo = $null + try { + $BulkRequests = @( + @{ + id = 'organization' + url = '/organization?$select=displayName,partnerTenantType' + method = 'GET' + }, + @{ + id = 'me' + url = '/me?$select=displayName,userPrincipalName' + method = 'GET' + } + @{ + id = 'application' + url = "/applications(appId='$($env:ApplicationID)')?`$select=id,web" + method = 'GET' + } + ) + + $BulkResponse = New-GraphBulkRequest -Requests $BulkRequests -tenantid $env:TenantID -NoAuthCheck $true + $OrgResponse = $BulkResponse | Where-Object { $_.id -eq 'organization' } + $MeResponse = $BulkResponse | Where-Object { $_.id -eq 'me' } + $AppResponse = $BulkResponse | Where-Object { $_.id -eq 'application' } + if ($MeResponse.body) { + $AuthenticatedUserDisplayName = $MeResponse.body.displayName + $AuthenticatedUserPrincipalName = $MeResponse.body.userPrincipalName + } + if ($OrgResponse.body.value -and $OrgResponse.body.value.Count -gt 0) { + $OrgInfo = $OrgResponse.body.value[0] + } + + if ($AppResponse.body) { + $AppWeb = $AppResponse.body.web + if ($AppWeb.redirectUris) { + # construct new redirect uri with current + $URL = ($Request.headers.'x-ms-original-url').split('/api') | Select-Object -First 1 + $NewRedirectUri = "$($URL)/authredirect" + if ($AppWeb.redirectUris -notcontains $NewRedirectUri) { + try { + $RedirectUris = [system.collections.generic.list[string]]::new() + $AppWeb.redirectUris | ForEach-Object { $RedirectUris.Add($_) } + $RedirectUris.Add($NewRedirectUri) + $AppUpdateBody = @{ + web = @{ + redirectUris = $RedirectUris + } + } | ConvertTo-Json -Depth 10 + Invoke-GraphRequest -Method PATCH -Url "https://graph.microsoft.com/v1.0/applications/$($AppResponse.body.id)" -Body $AppUpdateBody -tenantid $env:TenantID -NoAuthCheck $true + Write-LogMessage -message "Updated redirect URIs for application $($env:ApplicationID) to include $NewRedirectUri" -Sev 'Info' + } catch { + Write-LogMessage -message "Failed to update redirect URIs for application $($env:ApplicationID)" -LogData (Get-CippException -Exception $_) -Sev 'Warning' + } + } + } + } + } catch { + Write-LogMessage -message 'Failed to retrieve organization info and authenticated user' -LogData (Get-CippException -Exception $_) -Sev 'Warning' + } + $Results = @{ - applicationId = $env:ApplicationID - tenantId = $env:TenantID - refreshUrl = "https://login.microsoftonline.com/$env:TenantID/oauth2/v2.0/authorize?client_id=$env:ApplicationID&response_type=code&redirect_uri=$ResponseURL&response_mode=query&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default+offline_access+profile+openid&state=1&prompt=select_account" + applicationId = $env:ApplicationID + tenantId = $env:TenantID + orgName = $OrgInfo.displayName + authenticatedUserDisplayName = $AuthenticatedUserDisplayName + authenticatedUserPrincipalName = $AuthenticatedUserPrincipalName + isPartnerTenant = !!$OrgInfo.partnerTenantType + partnerTenantType = $OrgInfo.partnerTenantType + refreshUrl = "https://login.microsoftonline.com/$env:TenantID/oauth2/v2.0/authorize?client_id=$env:ApplicationID&response_type=code&redirect_uri=$ResponseURL&response_mode=query&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default+offline_access+profile+openid&state=1&prompt=select_account" + } + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Results } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $Results - }) } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecSchedulerBillingRun.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecSchedulerBillingRun.ps1 index b0cfbff022f2..6e155d1b88d7 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecSchedulerBillingRun.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecSchedulerBillingRun.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecSchedulerBillingRun { <# .FUNCTIONALITY @@ -9,10 +7,8 @@ Function Invoke-ExecSchedulerBillingRun { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + try { Write-LogMessage -API 'Scheduler_Billing' -tenant 'none' -message 'Starting billing processing.' -sev Info diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecSendOrgMessage.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecSendOrgMessage.ps1 index 04c1b4b2ec12..65336dcd7486 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecSendOrgMessage.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecSendOrgMessage.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecSendOrgMessage { <# .FUNCTIONALITY @@ -9,14 +7,6 @@ Function Invoke-ExecSendOrgMessage { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - - - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.TenantFilter $Device = $request.query.ID @@ -115,10 +105,9 @@ Function Invoke-ExecSendOrgMessage { $StatusCode = [HttpStatusCode]::Forbidden $GraphRequest = $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return [HttpResponseContext]@{ StatusCode = $StatusCode Body = @($GraphRequest) - }) + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecUniversalSearch.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecUniversalSearch.ps1 index cc074c755c89..a984cada9ddc 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecUniversalSearch.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecUniversalSearch.ps1 @@ -1,22 +1,12 @@ -using namespace System.Net - -Function Invoke-ExecUniversalSearch { +function Invoke-ExecUniversalSearch { <# .FUNCTIONALITY - Entrypoint + Entrypoint,AnyTenant .ROLE CIPP.Core.Read #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - - - # Interact with query parameters or the body of the request. try { @@ -50,10 +40,9 @@ Function Invoke-ExecUniversalSearch { $StatusCode = [HttpStatusCode]::Forbidden $GraphRequest = "Could not connect to Azure Lighthouse API: $($ErrorMessage)" } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = @($GraphRequest) - }) + return [HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecUniversalSearchV2.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecUniversalSearchV2.ps1 new file mode 100644 index 000000000000..25cb9e964f4c --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecUniversalSearchV2.ps1 @@ -0,0 +1,22 @@ +function Invoke-ExecUniversalSearchV2 { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $TenantFilter = $Request.Query.tenantFilter + $SearchTerms = $Request.Query.searchTerms + $Limit = if ($Request.Query.limit) { [int]$Request.Query.limit } else { 10 } + + $Results = Search-CIPPDbData -TenantFilter $TenantFilter -SearchTerms $SearchTerms -Types 'Users' -Limit $Limit + + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($Results) + } + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecUserSettings.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecUserSettings.ps1 index c646fa7fdac1..3bea3e902cda 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecUserSettings.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecUserSettings.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ExecUserSettings { <# .FUNCTIONALITY @@ -8,11 +6,6 @@ function Invoke-ExecUserSettings { CIPP.Core.ReadWrite #> param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - try { $object = $Request.Body.currentSettings | Select-Object * -ExcludeProperty CurrentTenant, pageSizes, sidebarShow, sidebarUnfoldable, _persist | ConvertTo-Json -Compress -Depth 10 $User = $Request.Body.user @@ -30,10 +23,9 @@ function Invoke-ExecUserSettings { $Results = "Function Error: $ErrorMsg" $StatusCode = [HttpStatusCode]::BadRequest } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return [HttpResponseContext]@{ StatusCode = $StatusCode Body = @($Results) - }) + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListAllTenantDeviceCompliance.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListAllTenantDeviceCompliance.ps1 index 496ed691952b..9a6a1ec56e99 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListAllTenantDeviceCompliance.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListAllTenantDeviceCompliance.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListAllTenantDeviceCompliance { <# .FUNCTIONALITY @@ -9,14 +7,6 @@ Function Invoke-ListAllTenantDeviceCompliance { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - - - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.TenantFilter try { @@ -37,10 +27,9 @@ Function Invoke-ListAllTenantDeviceCompliance { $StatusCode = [HttpStatusCode]::Forbidden $GraphRequest = "Could not connect to Azure Lighthouse API: $($ErrorMessage)" } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return [HttpResponseContext]@{ StatusCode = $StatusCode Body = @($GraphRequest) - }) + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListAppStatus.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListAppStatus.ps1 index ba4f57322449..1a71e1e78851 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListAppStatus.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListAppStatus.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListAppStatus { <# .FUNCTIONALITY @@ -9,12 +7,6 @@ Function Invoke-ListAppStatus { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter $appFilter = $Request.Query.AppFilter @@ -31,10 +23,9 @@ Function Invoke-ListAppStatus { $GraphRequest = $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return [HttpResponseContext]@{ StatusCode = $StatusCode Body = @($GraphRequest) - }) + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListBreachesAccount.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListBreachesAccount.ps1 index a9dbf181154e..d4deeb37f6f0 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListBreachesAccount.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListBreachesAccount.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListBreachesAccount { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ Function Invoke-ListBreachesAccount { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $Account = $Request.Query.account @@ -23,10 +16,9 @@ Function Invoke-ListBreachesAccount { $Results = Get-BreachInfo -Domain $Account } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return [HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($results) - }) + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListBreachesTenant.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListBreachesTenant.ps1 index 4777f73f8aa8..76fcb3767415 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListBreachesTenant.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListBreachesTenant.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ListBreachesTenant { +function Invoke-ListBreachesTenant { <# .FUNCTIONALITY Entrypoint @@ -9,11 +7,6 @@ Function Invoke-ListBreachesTenant { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $TenantFilter = $Request.Query.tenantFilter $Table = Get-CIPPTable -TableName UserBreaches @@ -23,17 +16,18 @@ Function Invoke-ListBreachesTenant { $filter = $null } try { - $usersResults = (Get-CIPPAzDataTableEntity @Table -Filter $filter).breaches | ConvertFrom-Json -ErrorAction SilentlyContinue + $Tenants = Get-Tenants -IncludeErrors + $Rows = Get-CIPPAzDataTableEntity @Table -Filter $filter | Where-Object { $Tenants.defaultDomainName -contains $_.PartitionKey } + $usersResults = $Rows.breaches | ConvertFrom-Json -ErrorAction SilentlyContinue } catch { $usersResults = $null } if ($null -eq $usersResults) { $usersResults = @() } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @($usersResults) - }) + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($usersResults) + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListCSPLicenses.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListCSPLicenses.ps1 index a63225022d1f..dea7d823c1c1 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListCSPLicenses.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListCSPLicenses.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ListCSPLicenses { +function Invoke-ListCSPLicenses { <# .FUNCTIONALITY Entrypoint @@ -9,11 +7,6 @@ Function Invoke-ListCSPLicenses { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter @@ -25,10 +18,9 @@ Function Invoke-ListCSPLicenses { $StatusCode = [HttpStatusCode]::BadRequest } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = @($Result) - }) -Clobber + return [HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($Result) + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListCSPsku.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListCSPsku.ps1 index ff61308e7023..094f651314e2 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListCSPsku.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListCSPsku.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ListCSPsku { +function Invoke-ListCSPsku { <# .FUNCTIONALITY Entrypoint @@ -9,11 +7,6 @@ Function Invoke-ListCSPsku { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter $CurrentSkuOnly = $Request.Query.currentSkuOnly @@ -33,9 +26,9 @@ Function Invoke-ListCSPsku { $StatusCode = [HttpStatusCode]::InternalServerError } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = @($GraphRequest) - }) -Clobber + return [HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListCheckExtAlerts.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListCheckExtAlerts.ps1 new file mode 100644 index 000000000000..95533bce6e7c --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListCheckExtAlerts.ps1 @@ -0,0 +1,35 @@ +function Invoke-ListCheckExtAlerts { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + $TenantFilter = $Request.Query.tenantFilter + $Table = Get-CIPPTable -tablename CheckExtensionAlerts + + if ($TenantFilter -and $TenantFilter -ne 'AllTenants') { + $Filter = "PartitionKey eq 'CheckAlert' and tenantFilter eq '$TenantFilter'" + } else { + $Filter = "PartitionKey eq 'CheckAlert'" + } + + try { + $Tenants = Get-Tenants -IncludeErrors + $Alerts = (Get-CIPPAzDataTableEntity @Table -Filter $Filter | Where-Object { $Tenants.defaultDomainName -contains $_.tenantFilter }) ?? @() + } catch { + Write-LogMessage -headers $Headers -API $APIName -message "Failed to retrieve check extension alerts: $($_.Exception.Message)" -Sev 'Error' + $Alerts = @() + } + + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($Alerts | Sort-Object -Property Timestamp -Descending) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListDeviceDetails.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListDeviceDetails.ps1 index 451212a6720b..cc7a2a3d7c01 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListDeviceDetails.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListDeviceDetails.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListDeviceDetails { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ Function Invoke-ListDeviceDetails { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # XXX Seems to be an unused endpoint? -Bobby # Interact with query parameters or the body of the request. @@ -92,10 +85,9 @@ Function Invoke-ListDeviceDetails { $GraphRequest = $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return [HttpResponseContext]@{ StatusCode = $StatusCode Body = $GraphRequest - }) + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListExtensionsConfig.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListExtensionsConfig.ps1 index 0e71e7112ac1..eb94ced2c322 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListExtensionsConfig.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListExtensionsConfig.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ListExtensionsConfig { +function Invoke-ListExtensionsConfig { <# .FUNCTIONALITY Entrypoint,AnyTenant @@ -9,35 +7,34 @@ Function Invoke-ListExtensionsConfig { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $Table = Get-CIPPTable -TableName Extensionsconfig try { - $Body = (Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json -Depth 10 -ErrorAction Stop - if ($Body.HaloPSA.TicketType -and !$Body.HaloPSA.TicketType.value) { - # translate ticket type to autocomplete format - Write-Information "Ticket Type: $($Body.HaloPSA.TicketType)" - $Types = Get-HaloTicketType - $Type = $Types | Where-Object { $_.id -eq $Body.HaloPSA.TicketType } - #Write-Information ($Type | ConvertTo-Json) - if ($Type) { - $Body.HaloPSA.TicketType = @{ - label = $Type.name - value = $Type.id + $Config = (Get-CIPPAzDataTableEntity @Table).config + if (Test-Json -Json $Config -ErrorAction SilentlyContinue) { + $Body = $Config | ConvertFrom-Json -Depth 10 -ErrorAction Stop + if ($Body.HaloPSA.TicketType -and !$Body.HaloPSA.TicketType.value) { + # translate ticket type to autocomplete format + Write-Information "Ticket Type: $($Body.HaloPSA.TicketType)" + $Types = Get-HaloTicketType + $Type = $Types | Where-Object { $_.id -eq $Body.HaloPSA.TicketType } + #Write-Information ($Type | ConvertTo-Json) + if ($Type) { + $Body.HaloPSA.TicketType = @{ + label = $Type.name + value = $Type.id + } } } + } else { + $Body = @{} } } catch { Write-Information (Get-CippException -Exception $_ | ConvertTo-Json) $Body = @{} } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $body - }) + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListExternalTenantInfo.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListExternalTenantInfo.ps1 index 52cc699df175..1bf2c4bfaabc 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListExternalTenantInfo.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListExternalTenantInfo.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ListExternalTenantInfo { +function Invoke-ListExternalTenantInfo { <# .FUNCTIONALITY Entrypoint,AnyTenant @@ -9,72 +7,38 @@ Function Invoke-ListExternalTenantInfo { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - - - # Interact with query parameters or the body of the request. - $Tenant = $Request.Query.tenant - $TenantFilter = $Request.Query.tenantFilter - - # Normalize to tenantid and determine if tenant exists - $TenantId = (Invoke-RestMethod -Method GET "https://login.windows.net/$Tenant/.well-known/openid-configuration").token_endpoint.Split('/')[3] - - if ($TenantId) { - $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/tenantRelationships/findTenantInformationByTenantId(tenantId='$TenantId')" -NoAuthCheck $true -tenantid $TenantFilter - $StatusCode = [HttpStatusCode]::OK + $HttpResponse = [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = 'Default response, you should never see this' } - if ($GraphRequest) { - - $TenantDefaultDomain = $GraphRequest.defaultDomainName - - $body = @" - - - - http://schemas.microsoft.com/exchange/2010/Autodiscover/Autodiscover/GetFederationInformation - https://autodiscover-s.outlook.com/autodiscover/autodiscover.svc - - http://www.w3.org/2005/08/addressing/anonymous - - - - - - $TenantDefaultDomain - - - - -"@ - - # Create the headers - $AutoDiscoverHeaders = @{ - 'Content-Type' = 'text/xml; charset=utf-8' - 'SOAPAction' = '"http://schemas.microsoft.com/exchange/2010/Autodiscover/Autodiscover/GetFederationInformation"' - 'User-Agent' = 'AutodiscoverClient' + try { + if ($Request.Query.tenant) { + $Tenant = $Request.Query.tenant + + # Normalize to tenantid and determine if tenant exists + $OpenIdConfig = Invoke-RestMethod -Method GET "https://login.windows.net/$Tenant/.well-known/openid-configuration" + $TenantId = $OpenIdConfig.token_endpoint.Split('/')[3] + + if ($TenantId) { + $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/tenantRelationships/findTenantInformationByTenantId(tenantId='$TenantId')" -NoAuthCheck $true -tenantid $env:TenantID + $StatusCode = [HttpStatusCode]::OK + $HttpResponse.Body = [PSCustomObject]@{ + GraphRequest = $GraphRequest + OpenIdConfig = $OpenIdConfig + } + } else { + $HttpResponse.StatusCode = [HttpStatusCode]::BadRequest + $HttpResponse.Body = "Tenant $($Tenant) not found" + } + } else { + $HttpResponse.StatusCode = [HttpStatusCode]::BadRequest + $HttpResponse.Body = 'Tenant parameter is required' } - - # Invoke - $Response = Invoke-RestMethod -UseBasicParsing -Method Post -Uri 'https://autodiscover-s.outlook.com/autodiscover/autodiscover.svc' -Body $body -Headers $AutoDiscoverHeaders - - # Return - $TenantDomains = $Response.Envelope.body.GetFederationInformationResponseMessage.response.Domains.Domain | Sort-Object + } catch { + $HttpResponse.StatusCode = [HttpStatusCode]::InternalServerError + $HttpResponse.Body = "Something went wrong while trying to get tenant info for tenant $($Tenant): $($_.Exception.Message)" } - $results = [PSCustomObject]@{ - GraphRequest = $GraphRequest - Domains = @($TenantDomains) - } - - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = $results - }) - + return [HttpResponseContext]$HttpResponse } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListFunctionParameters.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListFunctionParameters.ps1 index 3cf030a6a105..da83bee09207 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListFunctionParameters.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListFunctionParameters.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ListFunctionParameters { <# .FUNCTIONALITY @@ -8,11 +6,6 @@ function Invoke-ListFunctionParameters { CIPP.Core.Read #> param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $Module = $Request.Query.Module $Function = $Request.Query.Function @@ -43,7 +36,7 @@ function Invoke-ListFunctionParameters { $Functions = Get-Command @CommandQuery | Where-Object { $_.Visibility -eq 'Public' } } $Results = foreach ($Function in $Functions) { - if ($Function -In $TemporaryBlacklist) { continue } + if ($Function -in $TemporaryBlacklist) { continue } $GetHelp = @{ Name = $Function } @@ -78,10 +71,9 @@ function Invoke-ListFunctionParameters { $Results = "Function Error: $($_.Exception.Message)" $StatusCode = [HttpStatusCode]::BadRequest } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = @($Results) - }) + return [HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($Results) + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListFunctionStats.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListFunctionStats.ps1 index 7b0a103160cf..0035fa7e0ef5 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListFunctionStats.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListFunctionStats.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ListFunctionStats { +function Invoke-ListFunctionStats { <# .FUNCTIONALITY Entrypoint @@ -9,11 +7,6 @@ Function Invoke-ListFunctionStats { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - try { $TenantFilter = $Request.Query.tenantFilter $PartitionKey = $Request.Query.FunctionType @@ -89,9 +82,9 @@ Function Invoke-ListFunctionStats { } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = $Body - }) -Clobber + return [HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListGenericTestFunction.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListGenericTestFunction.ps1 index 2d93efa37104..e3c94cde337f 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListGenericTestFunction.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListGenericTestFunction.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ListGenericTestFunction { +function Invoke-ListGenericTestFunction { <# .FUNCTIONALITY Entrypoint @@ -9,16 +7,14 @@ Function Invoke-ListGenericTestFunction { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $graphRequest = ($Headers.'x-ms-original-url').split('/api') | Select-Object -First 1 - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @($graphRequest) - }) -clobber + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($graphRequest) + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListGraphExplorerPresets.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListGraphExplorerPresets.ps1 index 7f372f03a1e7..1900839d6c15 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListGraphExplorerPresets.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListGraphExplorerPresets.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ListGraphExplorerPresets { <# .FUNCTIONALITY @@ -9,13 +7,10 @@ function Invoke-ListGraphExplorerPresets { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. - $Username = $Request.Headers['x-ms-client-principal-name'] + + $Username = ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json).userDetails try { $Table = Get-CIPPTable -TableName 'GraphPresets' @@ -26,6 +21,7 @@ function Invoke-ListGraphExplorerPresets { name = $Preset.name IsShared = $Preset.IsShared IsMyPreset = $Preset.Owner -eq $Username + Owner = $Preset.Owner params = (ConvertFrom-Json -InputObject $Preset.Params) } } @@ -39,8 +35,7 @@ function Invoke-ListGraphExplorerPresets { Write-Information $_.InvocationInfo.PositionMessage $Results = @() } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @{ Results = @($Results) diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListHaloClients.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListHaloClients.ps1 index b221ecab536e..12cab4b9461d 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListHaloClients.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListHaloClients.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListHaloClients { <# .FUNCTIONALITY @@ -9,12 +7,6 @@ Function Invoke-ListHaloClients { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - # Interact with query parameters or the body of the request. try { $Table = Get-CIPPTable -TableName Extensionsconfig @@ -41,10 +33,9 @@ Function Invoke-ListHaloClients { $HaloClients = $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return [HttpResponseContext]@{ StatusCode = $StatusCode Body = @($HaloClients) - }) + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListIPWhitelist.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListIPWhitelist.ps1 index 8aa2cd88329b..68731c9707d7 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListIPWhitelist.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListIPWhitelist.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListIPWhitelist { <# .FUNCTIONALITY @@ -9,17 +7,11 @@ Function Invoke-ListIPWhitelist { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $Table = Get-CippTable -tablename 'trustedIps' $body = Get-CIPPAzDataTableEntity @Table - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return [HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($body) - }) + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListIntuneIntents.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListIntuneIntents.ps1 index 8856eb60cc17..227ebcdf09b3 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListIntuneIntents.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListIntuneIntents.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListIntuneIntents { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ Function Invoke-ListIntuneIntents { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter @@ -26,10 +19,9 @@ Function Invoke-ListIntuneIntents { $GraphRequest = $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return [HttpResponseContext]@{ StatusCode = $StatusCode Body = @($GraphRequest) - }) + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListKnownIPDb.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListKnownIPDb.ps1 index e05b3fc83065..97b8b70c5b21 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListKnownIPDb.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListKnownIPDb.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListKnownIPDb { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ Function Invoke-ListKnownIPDb { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter @@ -22,10 +15,9 @@ Function Invoke-ListKnownIPDb { $Filter = "Tenant eq '$($TenantFilter)'" $KnownIPDb = Get-CIPPAzDataTableEntity @Table -Filter $Filter - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return [HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($KnownIPDb) - }) + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListLogs.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListLogs.ps1 index 6e360b25a6a0..8c4d4953bdf0 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListLogs.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListLogs.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ListLogs { <# .FUNCTIONALITY @@ -9,13 +7,11 @@ function Invoke-ListLogs { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $Table = Get-CIPPTable + $TemplatesTable = Get-CIPPTable -tablename 'templates' + $Templates = Get-CIPPAzDataTableEntity @TemplatesTable + $ReturnedLog = if ($Request.Query.ListLogs) { Get-AzDataTableEntity @Table -Property PartitionKey | Sort-Object -Unique PartitionKey | Select-Object PartitionKey | ForEach-Object { @{ @@ -23,22 +19,83 @@ function Invoke-ListLogs { label = $_.PartitionKey } } + } elseif ($Request.Query.logentryid) { + # Return single log entry by RowKey + $DateFilter = $Request.Query.DateFilter ?? (Get-Date -UFormat '%Y%m%d') + $Filter = "RowKey eq '{0}'" -f $Request.Query.logentryid, $DateFilter + $AllowedTenants = Test-CIPPAccess -Request $Request -TenantList + Write-Host "Getting single log entry for RowKey: $($Request.Query.logentryid)" + + $Row = Get-AzDataTableEntity @Table -Filter $Filter + + if ($Row) { + if ($AllowedTenants -notcontains 'AllTenants') { + $TenantList = Get-Tenants -IncludeErrors | Where-Object { $_.customerId -in $AllowedTenants } + } + + if ($AllowedTenants -contains 'AllTenants' -or ($AllowedTenants -notcontains 'AllTenants' -and ($TenantList.defaultDomainName -contains $Row.Tenant -or $Row.Tenant -eq 'CIPP' -or $TenantList.customerId -contains $Row.TenantId)) ) { + + if ($Row.StandardTemplateId) { + $Standard = ($Templates | Where-Object { $_.RowKey -eq $Row.StandardTemplateId }).JSON | ConvertFrom-Json + + $StandardInfo = @{ + Template = $Standard.templateName + Standard = $Row.Standard + } + + if ($Row.IntuneTemplateId) { + $IntuneTemplate = ($Templates | Where-Object { $_.RowKey -eq $Row.IntuneTemplateId }).JSON | ConvertFrom-Json + $StandardInfo.IntunePolicy = $IntuneTemplate.displayName + } + if ($Row.ConditionalAccessTemplateId) { + $ConditionalAccessTemplate = ($Templates | Where-Object { $_.RowKey -eq $Row.ConditionalAccessTemplateId }).JSON | ConvertFrom-Json + $StandardInfo.ConditionalAccessPolicy = $ConditionalAccessTemplate.displayName + } + + } else { + $StandardInfo = @{} + } + + $LogData = if ($Row.LogData -and (Test-Json -Json $Row.LogData -ErrorAction SilentlyContinue)) { + $Row.LogData | ConvertFrom-Json + } else { $Row.LogData } + [PSCustomObject]@{ + DateTime = $Row.Timestamp + Tenant = $Row.Tenant + API = $Row.API + Message = $Row.Message + User = $Row.Username + Severity = $Row.Severity + LogData = $LogData + TenantID = if ($Row.TenantID -ne $null) { + $Row.TenantID + } else { + 'None' + } + AppId = $Row.AppId + IP = $Row.IP + RowKey = $Row.RowKey + Standard = $StandardInfo + DateFilter = $Row.PartitionKey + } + } + } } else { if ($request.Query.Filter -eq 'True') { $LogLevel = if ($Request.Query.Severity) { ($Request.query.Severity).split(',') } else { 'Info', 'Warn', 'Error', 'Critical', 'Alert' } $PartitionKey = $Request.Query.DateFilter $username = $Request.Query.User ?? '*' + $TenantFilter = $Request.Query.Tenant + $ApiFilter = $Request.Query.API + $StandardFilter = $Request.Query.StandardTemplateId + $ScheduledTaskFilter = $Request.Query.ScheduledTaskId $StartDate = $Request.Query.StartDate ?? $Request.Query.DateFilter $EndDate = $Request.Query.EndDate ?? $Request.Query.DateFilter if ($StartDate -and $EndDate) { - # Collect logs for each partition key date in range - $PartitionKeys = for ($Date = [datetime]::ParseExact($StartDate, 'yyyyMMdd', $null); $Date -le [datetime]::ParseExact($EndDate, 'yyyyMMdd', $null); $Date = $Date.AddDays(1)) { - $PartitionKey = $Date.ToString('yyyyMMdd') - "PartitionKey eq '$PartitionKey'" - } - $Filter = $PartitionKeys -join ' or ' + # Collect logs for date range + $Filter = "PartitionKey ge '$StartDate' and PartitionKey le '$EndDate'" } elseif ($StartDate) { $Filter = "PartitionKey eq '{0}'" -f $StartDate } else { @@ -48,12 +105,20 @@ function Invoke-ListLogs { $LogLevel = 'Info', 'Warn', 'Error', 'Critical', 'Alert' $PartitionKey = Get-Date -UFormat '%Y%m%d' $username = '*' + $TenantFilter = $null $Filter = "PartitionKey eq '{0}'" -f $PartitionKey } $AllowedTenants = Test-CIPPAccess -Request $Request -TenantList Write-Host "Getting logs for filter: $Filter, LogLevel: $LogLevel, Username: $username" - $Rows = Get-AzDataTableEntity @Table -Filter $Filter | Where-Object { $_.Severity -in $LogLevel -and $_.Username -like $username } + $Rows = Get-AzDataTableEntity @Table -Filter $Filter | Where-Object { + $_.Severity -in $LogLevel -and + $_.Username -like $username -and + ([string]::IsNullOrEmpty($TenantFilter) -or $TenantFilter -eq 'AllTenants' -or $_.Tenant -like "*$TenantFilter*" -or $_.TenantID -eq $TenantFilter) -and + ([string]::IsNullOrEmpty($ApiFilter) -or $_.API -match "$ApiFilter") -and + ([string]::IsNullOrEmpty($StandardFilter) -or $_.StandardTemplateId -eq $StandardFilter) -and + ([string]::IsNullOrEmpty($ScheduledTaskFilter) -or $_.ScheduledTaskId -eq $ScheduledTaskFilter) + } if ($AllowedTenants -notcontains 'AllTenants') { $TenantList = Get-Tenants -IncludeErrors | Where-Object { $_.customerId -in $AllowedTenants } @@ -61,33 +126,55 @@ function Invoke-ListLogs { foreach ($Row in $Rows) { if ($AllowedTenants -contains 'AllTenants' -or ($AllowedTenants -notcontains 'AllTenants' -and ($TenantList.defaultDomainName -contains $Row.Tenant -or $Row.Tenant -eq 'CIPP' -or $TenantList.customerId -contains $Row.TenantId)) ) { + if ($StandardTaskFilter -and $Row.StandardTemplateId) { + $Standard = ($Templates | Where-Object { $_.RowKey -eq $Row.StandardTemplateId }).JSON | ConvertFrom-Json + + $StandardInfo = @{ + Template = $Standard.templateName + Standard = $Row.Standard + } + + if ($Row.IntuneTemplateId) { + $IntuneTemplate = ($Templates | Where-Object { $_.RowKey -eq $Row.IntuneTemplateId }).JSON | ConvertFrom-Json + $StandardInfo.IntunePolicy = $IntuneTemplate.displayName + } + if ($Row.ConditionalAccessTemplateId) { + $ConditionalAccessTemplate = ($Templates | Where-Object { $_.RowKey -eq $Row.ConditionalAccessTemplateId }).JSON | ConvertFrom-Json + $StandardInfo.ConditionalAccessPolicy = $ConditionalAccessTemplate.displayName + } + } else { + $StandardInfo = @{} + } $LogData = if ($Row.LogData -and (Test-Json -Json $Row.LogData -ErrorAction SilentlyContinue)) { $Row.LogData | ConvertFrom-Json } else { $Row.LogData } [PSCustomObject]@{ - DateTime = $Row.Timestamp - Tenant = $Row.Tenant - API = $Row.API - Message = $Row.Message - User = $Row.Username - Severity = $Row.Severity - LogData = $LogData - TenantID = if ($Row.TenantID -ne $null) { + DateTime = $Row.Timestamp + Tenant = $Row.Tenant + API = $Row.API + Message = $Row.Message + User = $Row.Username + Severity = $Row.Severity + LogData = $LogData + TenantID = if ($Row.TenantID -ne $null) { $Row.TenantID } else { 'None' } - AppId = $Row.AppId - IP = $Row.IP + AppId = $Row.AppId + IP = $Row.IP + RowKey = $Row.RowKey + StandardInfo = $StandardInfo + DateFilter = $Row.PartitionKey } } } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @($ReturnedLog | Sort-Object -Property DateTime -Descending) - }) + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($ReturnedLog | Sort-Object -Property DateTime -Descending) + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListNamedLocations.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListNamedLocations.ps1 index a89fcdff7068..2af340c043c8 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListNamedLocations.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListNamedLocations.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListNamedLocations { <# .FUNCTIONALITY @@ -9,14 +7,6 @@ Function Invoke-ListNamedLocations { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - - - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.TenantFilter try { @@ -32,10 +22,9 @@ Function Invoke-ListNamedLocations { $GraphRequest = $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return [HttpResponseContext]@{ StatusCode = $StatusCode Body = @($GraphRequest) - }) + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListNotificationConfig.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListNotificationConfig.ps1 index 0017c80b4101..4d9f4f11cfdb 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListNotificationConfig.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListNotificationConfig.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListNotificationConfig { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ Function Invoke-ListNotificationConfig { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $Table = Get-CIPPTable -TableName SchedulerConfig $Filter = "RowKey eq 'CippNotifications' and PartitionKey eq 'CippNotifications'" $Config = Get-CIPPAzDataTableEntity @Table -Filter $Filter @@ -34,10 +27,9 @@ Function Invoke-ListNotificationConfig { } $body = [PSCustomObject]$Config - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return [HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $body - }) + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListOrg.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListOrg.ps1 index b7f08c601f60..894f43e5ff4f 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListOrg.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListOrg.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListOrg { <# .FUNCTIONALITY @@ -9,12 +7,6 @@ Function Invoke-ListOrg { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter if ($TenantFilter -eq 'AllTenants') { @@ -23,10 +15,9 @@ Function Invoke-ListOrg { $GraphRequest = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/organization' -tenantid $TenantFilter } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return [HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $GraphRequest - }) + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListPartnerRelationships.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListPartnerRelationships.ps1 index 2b95b674be96..848fc7ab498d 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListPartnerRelationships.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListPartnerRelationships.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListPartnerRelationships { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ Function Invoke-ListPartnerRelationships { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter @@ -35,9 +28,8 @@ Function Invoke-ListPartnerRelationships { $Results = [PSCustomObject]@{ Results = @($GraphRequest) } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return [HttpResponseContext]@{ StatusCode = $StatusCode Body = $Results - }) + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListPendingWebhooks.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListPendingWebhooks.ps1 index 78409b41c31f..3e27835e30d0 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListPendingWebhooks.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListPendingWebhooks.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ListPendingWebhooks { +function Invoke-ListPendingWebhooks { <# .FUNCTIONALITY Entrypoint @@ -9,11 +7,6 @@ Function Invoke-ListPendingWebhooks { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - try { $Table = Get-CIPPTable -TableName 'WebhookIncoming' $Webhooks = Get-CIPPAzDataTableEntity @Table @@ -29,8 +22,7 @@ Function Invoke-ListPendingWebhooks { } catch { $PendingWebhooks = @() } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @{ Results = @($PendingWebhooks) diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListPotentialApps.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListPotentialApps.ps1 index 56636a02deb0..305b2e645c4c 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListPotentialApps.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListPotentialApps.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListPotentialApps { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ Function Invoke-ListPotentialApps { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - if ($request.body.type -eq 'WinGet') { $body = @" {"MaximumResults":50,"Filters":[{"PackageMatchField":"Market","RequestMatch":{"KeyWord":"US","MatchType":"CaseInsensitive"}}],"Query":{"KeyWord":"$($Request.Body.SearchString)","MatchType":"Substring"}} @@ -26,10 +19,9 @@ Function Invoke-ListPotentialApps { } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return [HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($DataRequest) - }) + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListRoles.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListRoles.ps1 index 612b4ecffd5d..04c1e2c9153a 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListRoles.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListRoles.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ListRoles { +function Invoke-ListRoles { <# .FUNCTIONALITY Entrypoint @@ -9,32 +7,36 @@ Function Invoke-ListRoles { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter - $SelectList = 'id', 'displayName', 'userPrincipalName' - [System.Collections.Generic.List[PSCustomObject]]$Roles = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/directoryRoles?`$expand=members" -tenantid $TenantFilter - $GraphRequest = foreach ($Role in $Roles) { - - #[System.Collections.Generic.List[PSCustomObject]]$Members = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/directoryRoles/$($Role.id)/members?`$select=$($SelectList -join ',')" -tenantid $TenantFilter | Select-Object $SelectList - $Members = if ($Role.members) { $role.members | ForEach-Object { " $($_.displayName) ($($_.userPrincipalName))" } } else { 'none' } - [PSCustomObject]@{ - DisplayName = $Role.displayName - Description = $Role.description - Members = $Members -join ',' + try { + [System.Collections.Generic.List[PSCustomObject]]$Roles = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/directoryRoles?`$expand=members" -tenantid $TenantFilter + $GraphRequest = foreach ($Role in $Roles) { + $Members = if ($Role.members) { + $Role.members | ForEach-Object { [PSCustomObject]@{ + displayName = $_.displayName + userPrincipalName = $_.userPrincipalName + id = $_.id + } } + } + [PSCustomObject]@{ + Id = $Role.id + roleTemplateId = $Role.roleTemplateId + DisplayName = $Role.displayName + Description = $Role.description + Members = @($Members) + } } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + "Failed to list roles for tenant $TenantFilter. $($ErrorMessage.NormalizedError)" + $StatusCode = [HttpStatusCode]::BadRequest } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $GraphRequest - }) - + return [HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $GraphRequest + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListTenantAllowBlockList.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListTenantAllowBlockList.ps1 index 38950fcb4c00..5aa10ac22f33 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListTenantAllowBlockList.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListTenantAllowBlockList.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-ListTenantAllowBlockList { +function Invoke-ListTenantAllowBlockList { <# .FUNCTIONALITY Entrypoint @@ -9,31 +7,80 @@ Function Invoke-ListTenantAllowBlockList { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter $ListTypes = 'Sender', 'Url', 'FileHash', 'IP' try { - $Results = $ListTypes | ForEach-Object -Parallel { - Import-Module CIPPCore - $TempResults = New-ExoRequest -tenantid $using:TenantFilter -cmdlet 'Get-TenantAllowBlockListItems' -cmdParams @{ListType = $_ } - $TempResults | Add-Member -MemberType NoteProperty -Name ListType -Value $_ - $TempResults | Select-Object -ExcludeProperty *'@data.type'*, *'(DateTime])'* - } -ThrottleLimit 5 - + if ($TenantFilter -ne 'AllTenants') { + $Results = $ListTypes | ForEach-Object -Parallel { + Import-Module CIPPCore + $TempResults = New-ExoRequest -tenantid $using:TenantFilter -cmdlet 'Get-TenantAllowBlockListItems' -cmdParams @{ ListType = $_ } + $TempResults | Add-Member -MemberType NoteProperty -Name ListType -Value $_ -Force + $TempResults | Add-Member -MemberType NoteProperty -Name Tenant -Value $using:TenantFilter -Force + $TempResults | Select-Object -ExcludeProperty *'@data.type'*, *'(DateTime])'* + } -ThrottleLimit 5 + $Metadata = [PSCustomObject]@{} + } else { + $Table = Get-CIPPTable -TableName 'cacheTenantAllowBlockList' + $PartitionKey = 'TenantAllowBlockList' + $Filter = "PartitionKey eq '$PartitionKey'" + $Rows = Get-CIPPAzDataTableEntity @Table -filter $Filter | Where-Object -Property Timestamp -GT (Get-Date).AddMinutes(-60) + $QueueReference = '{0}-{1}' -f $TenantFilter, $PartitionKey + $RunningQueue = Invoke-ListCippQueue -Reference $QueueReference | Where-Object { $_.Status -notmatch 'Completed' -and $_.Status -notmatch 'Failed' } + if ($RunningQueue) { + $Metadata = [PSCustomObject]@{ + QueueMessage = 'Still loading data for all tenants. Please check back in a few more minutes' + QueueId = $RunningQueue.RowKey + } + $Results = @() + } elseif (!$Rows -and !$RunningQueue) { + $TenantList = Get-Tenants -IncludeErrors + $Queue = New-CippQueueEntry -Name 'Tenant Allow/Block List - All Tenants' -Link '/tenant/administration/allow-block-list?customerId=AllTenants' -Reference $QueueReference -TotalTasks ($TenantList | Measure-Object).Count + $Metadata = [PSCustomObject]@{ + QueueMessage = 'Loading data for all tenants. Please check back in a few minutes' + QueueId = $Queue.RowKey + } + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'TenantAllowBlockListOrchestrator' + QueueFunction = @{ + FunctionName = 'GetTenants' + QueueId = $Queue.RowKey + TenantParams = @{ + IncludeErrors = $true + } + DurableName = 'ListTenantAllowBlockListAllTenants' + } + SkipLog = $true + } + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) | Out-Null + $Results = @() + } else { + $TenantList = Get-Tenants -IncludeErrors + $Rows = $Rows | Where-Object { $TenantList.defaultDomainName -contains $_.Tenant } + $Metadata = [PSCustomObject]@{ + QueueId = $RunningQueue.RowKey ?? $null + } + $Results = foreach ($Row in $Rows) { + $Row.Entry | ConvertFrom-Json + } + } + } $StatusCode = [HttpStatusCode]::OK } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message $StatusCode = [HttpStatusCode]::Forbidden $Results = $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = @($Results) - }) + + if (!$Body) { + $Body = [PSCustomObject]@{ + Results = @($Results) + Metadata = $Metadata + } + } + + return [HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListUsersAndGroups.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListUsersAndGroups.ps1 new file mode 100644 index 000000000000..5abd101abc09 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListUsersAndGroups.ps1 @@ -0,0 +1,42 @@ +function Invoke-ListUsersAndGroups { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Directory.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $TenantFilter = $Request.Query.TenantFilter + $select = 'id,displayName,userPrincipalName' + + try { + # Build batch requests for users and groups + $BulkRequests = @( + @{ + id = 'users' + method = 'GET' + url = "users?`$select=$select&`$top=999&" + } + @{ + id = 'groups' + method = 'GET' + url = "groups?`$select=id,displayName&`$top=999" + } + ) + $BulkResults = New-GraphBulkRequest -Requests $BulkRequests -tenantid $TenantFilter + $Users = ($BulkResults | Where-Object { $_.id -eq 'users' }).body.value | Select-Object *, @{Name = '@odata.type'; Expression = { '#microsoft.graph.user' } } + $Groups = ($BulkResults | Where-Object { $_.id -eq 'groups' }).body.value | Select-Object id, displayName, @{Name = 'userPrincipalName'; Expression = { $null } }, @{Name = '@odata.type'; Expression = { '#microsoft.graph.group' } } + $GraphRequest = @($Users) + @($Groups) | Sort-Object displayName + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + } + return [HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-PublicPhishingCheck.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-PublicPhishingCheck.ps1 index a4f0f64a00b1..5d9375cba697 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-PublicPhishingCheck.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-PublicPhishingCheck.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-PublicPhishingCheck { +function Invoke-PublicPhishingCheck { <# .FUNCTIONALITY Entrypoint @@ -11,13 +9,37 @@ Function Invoke-PublicPhishingCheck { #this has been switched to the external free service by cyberdrain at clone.cipp.app due to extreme numbers of executions if selfhosted. param($Request, $TriggerMetadata) - if ($Request.body.Cloned) { + + $Tenant = Get-Tenants -TenantFilter $Request.body.TenantId + + if ($Request.body.Cloned -and $Tenant.customerId -eq $Request.body.TenantId) { Write-AlertMessage -message $Request.body.AlertMessage -sev 'Alert' -tenant $Request.body.TenantId + } elseif ($Request.Body.source -and $Tenant) { + $table = Get-CIPPTable -tablename CheckExtensionAlerts + $Message = "Alert received from $($Request.Body.source) for $($Request.body.TenantId)" + $ID = (New-Guid).GUID + $TableBody = @{ + RowKey = "$ID" + PartitionKey = 'CheckAlert' + tenantFilter = [string]$Tenant.defaultDomainName + message = [string]$Message + type = [string]$request.body.type + url = [string]$request.body.url + reason = [string]$request.body.reason + score = [string]$request.body.score + threshold = [string]$request.body.threshold + potentialUserName = [string]$request.body.userEmail + potentialUserDisplayName = [string]$request.body.userDisplayName + reportedByIP = [string]$Request.headers.'x-forwarded-for' + rawBody = "$($Request.body | ConvertTo-Json)" + } + $null = Add-CIPPAzDataTableEntity @table -Entity $TableBody -Force + Write-AlertTrace -cmdletName 'CheckExtentionAlert' -tenantFilter $Tenant.defaultDomainName -data $TableBody + #Write-AlertMessage -message $Message -sev 'Alert' -tenant $Tenant.customerId -LogData $Request.body } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = 'OK' - }) + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = 'OK' + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-RemoveTenantAllowBlockList.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-RemoveTenantAllowBlockList.ps1 index fab7f0297698..0db47ce4dd6d 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-RemoveTenantAllowBlockList.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-RemoveTenantAllowBlockList.ps1 @@ -1,6 +1,4 @@ -using namespace System.Net - -Function Invoke-RemoveTenantAllowBlockList { +function Invoke-RemoveTenantAllowBlockList { <# .FUNCTIONALITY Entrypoint @@ -12,7 +10,7 @@ Function Invoke-RemoveTenantAllowBlockList { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + # Interact with query parameters or the body of the request. $TenantFilter = $Request.Body.tenantFilter @@ -44,8 +42,7 @@ Function Invoke-RemoveTenantAllowBlockList { $StatusCode = [HttpStatusCode]::Forbidden } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{ 'Results' = $Result diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogIngestion.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogIngestion.ps1 new file mode 100644 index 000000000000..f11d8f9396a3 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogIngestion.ps1 @@ -0,0 +1,91 @@ +function Start-AuditLogIngestion { + <# + .SYNOPSIS + Start the Audit Log Ingestion Orchestrator using Office 365 Management Activity API + + .DESCRIPTION + Orchestrator that creates batches of tenants to ingest audit logs from the Office 365 Management Activity API. + Each tenant is processed by Push-AuditLogIngestion activity function. + + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param() + + try { + Write-Information 'Office 365 Management Activity API: Starting audit log ingestion orchestrator' + # Get webhook rules to determine which tenants to monitor + $WebhookRulesTable = Get-CippTable -TableName 'WebhookRules' + $WebhookRules = Get-CIPPAzDataTableEntity @WebhookRulesTable -Filter "PartitionKey eq 'Webhookv2'" + if (($WebhookRules | Measure-Object).Count -eq 0) { + Write-Information 'No webhook rules defined, skipping audit log ingestion' + return + } + + # Process webhook rules to get tenant list + $ConfigEntries = $WebhookRules | ForEach-Object { + $ConfigEntry = $_ + if (!$ConfigEntry.excludedTenants) { + $ConfigEntry | Add-Member -MemberType NoteProperty -Name 'excludedTenants' -Value @() -Force + } else { + $ConfigEntry.excludedTenants = $ConfigEntry.excludedTenants | ConvertFrom-Json + } + $ConfigEntry.Tenants = $ConfigEntry.Tenants | ConvertFrom-Json + $ConfigEntry + } + + $TenantList = Get-Tenants -IncludeErrors + $TenantsToProcess = [System.Collections.Generic.List[object]]::new() + + foreach ($Tenant in $TenantList) { + # Check if tenant has any webhook rules and collect content types + $TenantInConfig = $false + $MatchingConfigs = [System.Collections.Generic.List[object]]::new() + + foreach ($ConfigEntry in $ConfigEntries) { + if ($ConfigEntry.excludedTenants.value -contains $Tenant.defaultDomainName) { + continue + } + $TenantsList = Expand-CIPPTenantGroups -TenantFilter ($ConfigEntry.Tenants) + if ($TenantsList.value -contains $Tenant.defaultDomainName -or $TenantsList.value -contains 'AllTenants') { + $TenantInConfig = $true + $MatchingConfigs.Add($ConfigEntry) + } + } + + if ($TenantInConfig -and $MatchingConfigs.Count -gt 0) { + # Extract unique content types from webhook rules (e.g., Audit.Exchange, Audit.SharePoint) + $ContentTypes = @($MatchingConfigs | Select-Object -Property type | Where-Object { $_.type } | Sort-Object -Property type -Unique | ForEach-Object { $_.type }) + + if ($ContentTypes.Count -gt 0) { + $TenantsToProcess.Add([PSCustomObject]@{ + defaultDomainName = $Tenant.defaultDomainName + customerId = $Tenant.customerId + ContentTypes = $ContentTypes + }) + } + } + } if ($TenantsToProcess.Count -eq 0) { + Write-Information 'No tenants configured for audit log ingestion' + return + } + + Write-Information "Audit Log Ingestion: Processing $($TenantsToProcess.Count) tenants" + + if ($PSCmdlet.ShouldProcess('Start-AuditLogIngestion', 'Starting Audit Log Ingestion')) { + $Queue = New-CippQueueEntry -Name 'Audit Logs Ingestion' -Reference 'AuditLogsIngestion' -TotalTasks $TenantsToProcess.Count + $Batch = $TenantsToProcess | Select-Object @{Name = 'TenantFilter'; Expression = { $_.defaultDomainName } }, @{Name = 'TenantId'; Expression = { $_.customerId } }, @{Name = 'ContentTypes'; Expression = { $_.ContentTypes } }, @{Name = 'QueueId'; Expression = { $Queue.RowKey } }, @{Name = 'FunctionName'; Expression = { 'AuditLogIngestion' } } + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'AuditLogsIngestion' + Batch = @($Batch) + SkipLog = $true + } + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + Write-Information "Started audit log ingestion orchestration for $($TenantsToProcess.Count) tenants" + } + } catch { + Write-LogMessage -API 'AuditLogIngestion' -message 'Error in audit log ingestion orchestrator' -sev Error -LogData (Get-CippException -Exception $_) + Write-Information "Audit log ingestion orchestrator error: $($_.Exception.Message)" + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogOrchestrator.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogOrchestrator.ps1 index e7010fd8fa0a..7bbba7946425 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogOrchestrator.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogOrchestrator.ps1 @@ -2,6 +2,9 @@ function Start-AuditLogOrchestrator { <# .SYNOPSIS Start the Audit Log Polling Orchestrator + + .FUNCTIONALITY + Entrypoint #> [CmdletBinding(SupportsShouldProcess = $true)] param() @@ -16,7 +19,7 @@ function Start-AuditLogOrchestrator { if (($AuditLogSearches | Measure-Object).Count -eq 0) { Write-Information 'No audit log searches available' - } elseif (($WebhookRules | Measure-Object).Count -eq 0) { + } elseif (($AuditLogSearches | Measure-Object).Count -eq 0 -and ($WebhookRules | Measure-Object).Count -eq 0) { Write-Information 'No webhook rules defined' } else { Write-Information "Audit Logs: Downloading $($AuditLogSearches.Count) searches" diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogProcessingOrchestrator.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogProcessingOrchestrator.ps1 index 17318704ebe9..2a1427d33028 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogProcessingOrchestrator.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogProcessingOrchestrator.ps1 @@ -2,6 +2,9 @@ function Start-AuditLogProcessingOrchestrator { <# .SYNOPSIS Start the Audit Log Processing Orchestrator + + .FUNCTIONALITY + Entrypoint #> [CmdletBinding(SupportsShouldProcess = $true)] param() @@ -25,9 +28,9 @@ function Start-AuditLogProcessingOrchestrator { $ProcessBatch = foreach ($TenantGroup in $TenantGroups) { $TenantFilter = $TenantGroup.Name $RowIds = @($TenantGroup.Group.RowKey) - for ($i = 0; $i -lt $RowIds.Count; $i += 1000) { - Write-Host "Processing $TenantFilter with $($RowIds.Count) row IDs. We're processing id $($RowIds[$i]) to $($RowIds[[Math]::Min($i + 999, $RowIds.Count - 1)])" - $BatchRowIds = $RowIds[$i..([Math]::Min($i + 999, $RowIds.Count - 1))] + for ($i = 0; $i -lt $RowIds.Count; $i += 500) { + Write-Host "Processing $TenantFilter with $($RowIds.Count) row IDs. We're processing id $($RowIds[$i]) to $($RowIds[[Math]::Min($i + 499, $RowIds.Count - 1)])" + $BatchRowIds = $RowIds[$i..([Math]::Min($i + 499, $RowIds.Count - 1))] [PSCustomObject]@{ TenantFilter = $TenantFilter RowIds = $BatchRowIds diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogSearchCreation.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogSearchCreation.ps1 index ce3cb766f8fb..c1ae93dd22a1 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogSearchCreation.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogSearchCreation.ps1 @@ -2,6 +2,9 @@ function Start-AuditLogSearchCreation { <# .SYNOPSIS Start the Audit Log Searches + + .FUNCTIONALITY + Entrypoint #> [CmdletBinding(SupportsShouldProcess = $true)] param() @@ -26,7 +29,7 @@ function Start-AuditLogSearchCreation { Write-Information 'Audit Logs: Creating new searches' - foreach ($Tenant in $TenantList) { + $Batch = foreach ($Tenant in $TenantList) { Write-Information "Processing tenant $($Tenant.defaultDomainName) - $($Tenant.customerId)" $TenantInConfig = $false $MatchingConfigs = [System.Collections.Generic.List[object]]::new() @@ -47,64 +50,27 @@ function Start-AuditLogSearchCreation { } if ($MatchingConfigs) { - $ServiceFilters = $MatchingConfigs | Select-Object -Property type | Sort-Object -Property type -Unique | ForEach-Object { $_.type.split('.')[1] } - try { - $LogSearch = @{ - StartTime = $StartTime - EndTime = $EndTime - ServiceFilters = $ServiceFilters - TenantFilter = $Tenant.defaultDomainName - ProcessLogs = $true - RecordTypeFilters = @( - 'exchangeAdmin', 'azureActiveDirectory', 'azureActiveDirectoryAccountLogon', 'dataCenterSecurityCmdlet', - 'complianceDLPSharePoint', 'complianceDLPExchange', 'azureActiveDirectoryStsLogon', 'skypeForBusinessPSTNUsage', - 'skypeForBusinessUsersBlocked', 'securityComplianceCenterEOPCmdlet', 'microsoftFlow', 'aeD', 'microsoftStream', - 'threatFinder', 'project', 'dataGovernance', 'securityComplianceAlerts', 'threatIntelligenceUrl', - 'securityComplianceInsights', 'mipLabel', 'workplaceAnalytics', 'powerAppsApp', 'powerAppsPlan', - 'threatIntelligenceAtpContent', 'labelContentExplorer', 'hygieneEvent', - 'dataInsightsRestApiAudit', 'informationBarrierPolicyApplication', 'microsoftTeamsAdmin', 'hrSignal', - 'informationWorkerProtection', 'campaign', 'dlpEndpoint', 'airInvestigation', 'quarantine', 'microsoftForms', - 'applicationAudit', 'complianceSupervisionExchange', 'customerKeyServiceEncryption', 'officeNative', - 'mipAutoLabelSharePointItem', 'mipAutoLabelSharePointPolicyLocation', 'secureScore', - 'mipAutoLabelExchangeItem', 'cortanaBriefing', 'search', 'wdatpAlerts', 'powerPlatformAdminDlp', - 'powerPlatformAdminEnvironment', 'mdatpAudit', 'sensitivityLabelPolicyMatch', 'sensitivityLabelAction', - 'sensitivityLabeledFileAction', 'attackSim', 'airManualInvestigation', 'securityComplianceRBAC', 'userTraining', - 'airAdminActionInvestigation', 'mstic', 'physicalBadgingSignal', 'aipDiscover', 'aipSensitivityLabelAction', - 'aipProtectionAction', 'aipFileDeleted', 'aipHeartBeat', 'mcasAlerts', 'onPremisesFileShareScannerDlp', - 'onPremisesSharePointScannerDlp', 'exchangeSearch', 'privacyDataMinimization', 'labelAnalyticsAggregate', - 'myAnalyticsSettings', 'securityComplianceUserChange', 'complianceDLPExchangeClassification', - 'complianceDLPEndpoint', 'mipExactDataMatch', 'msdeResponseActions', 'msdeGeneralSettings', 'msdeIndicatorsSettings', - 'ms365DCustomDetection', 'msdeRolesSettings', 'mapgAlerts', 'mapgPolicy', 'mapgRemediation', - 'privacyRemediationAction', 'privacyDigestEmail', 'mipAutoLabelSimulationProgress', 'mipAutoLabelSimulationCompletion', - 'mipAutoLabelProgressFeedback', 'dlpSensitiveInformationType', 'mipAutoLabelSimulationStatistics', - 'largeContentMetadata', 'microsoft365Group', 'cdpMlInferencingResult', 'filteringMailMetadata', - 'cdpClassificationMailItem', 'cdpClassificationDocument', 'officeScriptsRunAction', 'filteringPostMailDeliveryAction', - 'cdpUnifiedFeedback', 'tenantAllowBlockList', 'consumptionResource', 'healthcareSignal', 'dlpImportResult', - 'cdpCompliancePolicyExecution', 'multiStageDisposition', 'privacyDataMatch', 'filteringDocMetadata', - 'filteringEmailFeatures', 'powerBIDlp', 'filteringUrlInfo', 'filteringAttachmentInfo', 'coreReportingSettings', - 'complianceConnector', 'powerPlatformLockboxResourceAccessRequest', 'powerPlatformLockboxResourceCommand', - 'cdpPredictiveCodingLabel', 'cdpCompliancePolicyUserFeedback', 'webpageActivityEndpoint', 'omePortal', - 'cmImprovementActionChange', 'filteringUrlClick', 'mipLabelAnalyticsAuditRecord', 'filteringEntityEvent', - 'filteringRuleHits', 'filteringMailSubmission', 'labelExplorer', 'microsoftManagedServicePlatform', - 'powerPlatformServiceActivity', 'scorePlatformGenericAuditRecord', 'filteringTimeTravelDocMetadata', 'alert', - 'alertStatus', 'alertIncident', 'incidentStatus', 'case', 'caseInvestigation', 'recordsManagement', - 'privacyRemediation', 'dataShareOperation', 'cdpDlpSensitive', 'ehrConnector', 'filteringMailGradingResult', - 'microsoftTodoAudit', 'timeTravelFilteringDocMetadata', 'microsoftDefenderForIdentityAudit', - 'supervisoryReviewDayXInsight', 'defenderExpertsforXDRAdmin', 'cdpEdgeBlockedMessage', 'hostedRpa', - 'cdpContentExplorerAggregateRecord', 'cdpHygieneAttachmentInfo', 'cdpHygieneSummary', 'cdpPostMailDeliveryAction', - 'cdpEmailFeatures', 'cdpHygieneUrlInfo', 'cdpUrlClick', 'cdpPackageManagerHygieneEvent', 'filteringDocScan', - 'timeTravelFilteringDocScan', 'mapgOnboard' - ) - } - if ($PSCmdlet.ShouldProcess('Start-AuditLogSearchCreation', 'Creating Audit Log Search')) { - $NewSearch = New-CippAuditLogSearch @LogSearch - Write-Information "Created audit log search $($Tenant.defaultDomainName) - $($NewSearch.displayName)" - } - } catch { - Write-Information "Error creating audit log search $($Tenant.defaultDomainName) - $($_.Exception.Message)" + [PSCustomObject]@{ + FunctionName = 'AuditLogSearchCreation' + Tenant = $Tenant | Select-Object defaultDomainName, customerId, displayName + StartTime = $StartTime + EndTime = $EndTime + ServiceFilters = @($MatchingConfigs | Select-Object -Property type | Sort-Object -Property type -Unique | ForEach-Object { $_.type.split('.')[1] }) } } } + + if (($Batch | Measure-Object).Count -gt 0) { + $InputObject = [PSCustomObject]@{ + Batch = @($Batch) + OrchestratorName = 'AuditLogSearchCreation' + SkipLog = $true + } + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + Write-Information "Started Audit Log search creation orchestratorwith $($Batch.Count) tenants" + } else { + Write-Information 'No tenants found for Audit Log search creation' + } } catch { Write-LogMessage -API 'Audit Logs' -message 'Error creating audit log searches' -sev Error -LogData (Get-CippException -Exception $_) Write-Information ( 'Audit logs error {0} line {1} - {2}' -f $_.InvocationInfo.ScriptName, $_.InvocationInfo.ScriptLineNumber, $_.Exception.Message) diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-CIPPDBCacheOrchestrator.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-CIPPDBCacheOrchestrator.ps1 new file mode 100644 index 000000000000..8717d60bdef9 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-CIPPDBCacheOrchestrator.ps1 @@ -0,0 +1,53 @@ +function Start-CIPPDBCacheOrchestrator { + <# + .SYNOPSIS + Orchestrates database cache collection across all tenants + + .DESCRIPTION + Creates per-tenant jobs to collect and cache Microsoft Graph data + + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param() + + try { + Write-LogMessage -API 'CIPPDBCache' -message 'Starting database cache orchestration' -sev Info + Write-Host 'Starting database cache orchestration' + $TenantList = Get-Tenants | Where-Object { $_.defaultDomainName -ne $null } + + if ($TenantList.Count -eq 0) { + Write-LogMessage -API 'CIPPDBCache' -message 'No tenants found for cache collection' -sev Warning + return + } + + $TaskCount = $TenantList.Count + + $Queue = New-CippQueueEntry -Name 'Database Cache Collection' -TotalTasks $TaskCount + $Batch = [system.collections.generic.list[object]]::new() + foreach ($Tenant in $TenantList) { + $Batch.Add([PSCustomObject]@{ + FunctionName = 'CIPPDBCacheData' + TenantFilter = $Tenant.defaultDomainName + QueueId = $Queue.RowKey + QueueName = "DB Cache - $($Tenant.defaultDomainName)" + }) + } + Write-Host "Created queue $($Queue.RowKey) for database cache collection of $($TenantList.Count) tenants" + Write-Host "Starting batch of $($Batch.Count) cache collection activities" + $InputObject = [PSCustomObject]@{ + Batch = @($Batch) + OrchestratorName = 'CIPPDBCacheOrchestrator' + SkipLog = $false + } + + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Compress -Depth 5) + + Write-LogMessage -API 'CIPPDBCache' -message "Queued database cache collection for $($TenantList.Count) tenants" -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -message "Failed to start orchestration: $($_.Exception.Message)" -sev Error + throw + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-DriftStandardsOrchestrator.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-DriftStandardsOrchestrator.ps1 new file mode 100644 index 000000000000..9a3b0203f852 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-DriftStandardsOrchestrator.ps1 @@ -0,0 +1,16 @@ +function Start-DriftStandardsOrchestrator { + <# + .SYNOPSIS + Start the Drift Standards Orchestrator + + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param() + + if ($PSCmdlet.ShouldProcess('Start-DriftStandardsOrchestrator', 'Starting Drift Standards Orchestrator')) { + Write-LogMessage -API 'Standards' -message 'Starting Drift Standards Schedule' -sev Info + Invoke-CIPPStandardsRun -Drift + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-ExtensionOrchestrator.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-ExtensionOrchestrator.ps1 index 9d6fa6a119b7..65773f8b0652 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-ExtensionOrchestrator.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-ExtensionOrchestrator.ps1 @@ -9,8 +9,12 @@ function Start-ExtensionOrchestrator { param() $Table = Get-CIPPTable -TableName Extensionsconfig - - $Configuration = ((Get-AzDataTableEntity @Table).config | ConvertFrom-Json) + $ExtensionConfig = (Get-AzDataTableEntity @Table).config + if ($ExtensionConfig -and (Test-Json -Json $ExtensionConfig)) { + $Configuration = ($ExtensionConfig | ConvertFrom-Json) + } else { + $Configuration = @{} + } Write-Host 'Started Scheduler for Extensions' diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-SchedulerOrchestrator.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-SchedulerOrchestrator.ps1 index c7463ec28e08..3d5d8ff1ea00 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-SchedulerOrchestrator.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-SchedulerOrchestrator.ps1 @@ -2,6 +2,9 @@ function Start-SchedulerOrchestrator { <# .SYNOPSIS Start the Scheduler Orchestrator + + .FUNCTIONALITY + Entrypoint #> [CmdletBinding(SupportsShouldProcess = $true)] param() diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-StandardsOrchestrator.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-StandardsOrchestrator.ps1 index 76e689ef4952..fe261d84f695 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-StandardsOrchestrator.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-StandardsOrchestrator.ps1 @@ -2,6 +2,9 @@ function Start-StandardsOrchestrator { <# .SYNOPSIS Start the Standards Orchestrator + + .FUNCTIONALITY + Entrypoint #> [CmdletBinding(SupportsShouldProcess = $true)] param() diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-TenantDynamicGroupOrchestrator.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-TenantDynamicGroupOrchestrator.ps1 new file mode 100644 index 000000000000..49d1e6d6e12d --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-TenantDynamicGroupOrchestrator.ps1 @@ -0,0 +1,40 @@ +function Start-TenantDynamicGroupOrchestrator { + <# + .SYNOPSIS + Start the Tenant Dynamic Group Orchestrator + + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param( + [string]$GroupId = 'All' + ) + + try { + Write-Information 'Updating Dynamic Tenant Groups' + $TenantGroups = @{ + Dynamic = $true + } + $TenantGroups = Get-TenantGroups @TenantGroups + if ($GroupId -ne 'All') { + $TenantGroups = $TenantGroups | Where-Object { $_.Id -eq $GroupId } + } + + if ($TenantGroups.Count -gt 0) { + Write-Information "Found $($TenantGroups.Count) dynamic tenant groups" + $Queue = New-CippQueueEntry -Name 'Dynamic Tenant Groups' -TotalTasks $TenantGroups.Count + $TenantBatch = $TenantGroups | Select-Object Name, Id, @{n = 'FunctionName'; exp = { 'UpdateDynamicTenantGroup' } }, @{n = 'QueueId'; exp = { $Queue.RowKey } } + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'UpdateDynamicTenantGroups' + Batch = @($TenantBatch) + SkipLog = $true + } + if ($PSCmdlet.ShouldProcess('Start-TenantDynamicGroupOrchestrator', 'Starting Tenant Dynamic Group Orchestrator')) { + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + } + } else { + Write-Information 'No tenants require permissions update' + } + } catch {} +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-TestsOrchestrator.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-TestsOrchestrator.ps1 new file mode 100644 index 000000000000..87cf8c2c38cb --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-TestsOrchestrator.ps1 @@ -0,0 +1,16 @@ +function Start-TestsOrchestrator { + <# + .SYNOPSIS + Start the Tests Orchestrator + + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param() + + if ($PSCmdlet.ShouldProcess('Start-TestsOrchestrator', 'Starting Tests Orchestrator')) { + Write-LogMessage -API 'Tests' -message 'Starting Tests Schedule' -sev Info + Invoke-CIPPDBTestsRun -TenantFilter 'allTenants' + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-UpdatePermissionsOrchestrator.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-UpdatePermissionsOrchestrator.ps1 index 10caa27d3383..323c6d437219 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-UpdatePermissionsOrchestrator.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-UpdatePermissionsOrchestrator.ps1 @@ -2,6 +2,9 @@ function Start-UpdatePermissionsOrchestrator { <# .SYNOPSIS Start the Update Permissions Orchestrator + + .FUNCTIONALITY + Entrypoint #> [CmdletBinding(SupportsShouldProcess = $true)] param() diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-UserTasksOrchestrator.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-UserTasksOrchestrator.ps1 index 9863866fa438..272c78ee2627 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-UserTasksOrchestrator.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-UserTasksOrchestrator.ps1 @@ -2,26 +2,64 @@ function Start-UserTasksOrchestrator { <# .SYNOPSIS Start the User Tasks Orchestrator + + .FUNCTIONALITY + Entrypoint #> [CmdletBinding(SupportsShouldProcess = $true)] param() $Table = Get-CippTable -tablename 'ScheduledTasks' - $1HourAgo = (Get-Date).AddHours(-1).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') - $Filter = "TaskState eq 'Planned' or TaskState eq 'Failed - Planned' or (TaskState eq 'Running' and Timestamp lt datetime'$1HourAgo')" + $30MinutesAgo = (Get-Date).AddMinutes(-30).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + $4HoursAgo = (Get-Date).AddHours(-4).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + # Pending = orchestrator queued, Running = actively executing + # Pick up: Planned, Failed-Planned, stuck Pending (>30min), or stuck Running (>4hr for large AllTenants tasks) + $Filter = "PartitionKey eq 'ScheduledTask' and (TaskState eq 'Planned' or TaskState eq 'Failed - Planned' or (TaskState eq 'Pending' and Timestamp lt datetime'$30MinutesAgo') or (TaskState eq 'Running' and Timestamp lt datetime'$4HoursAgo'))" $tasks = Get-CIPPAzDataTableEntity @Table -Filter $Filter + + $RateLimitTable = Get-CIPPTable -tablename 'SchedulerRateLimits' + $RateLimits = Get-CIPPAzDataTableEntity @RateLimitTable -Filter "PartitionKey eq 'SchedulerRateLimits'" + + $CIPPCoreModuleRoot = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase + $CIPPRoot = (Get-Item $CIPPCoreModuleRoot).Parent.Parent + $DefaultRateLimits = Get-Content -Path "$CIPPRoot/Config/SchedulerRateLimits.json" | ConvertFrom-Json + $NewRateLimits = foreach ($Limit in $DefaultRateLimits) { + if ($Limit.Command -notin $RateLimits.RowKey) { + @{ + PartitionKey = 'SchedulerRateLimits' + RowKey = $Limit.Command + MaxRequests = $Limit.MaxRequests + } + } + } + + if ($NewRateLimits) { + $null = Add-CIPPAzDataTableEntity @RateLimitTable -Entity $NewRateLimits -Force + $RateLimits = Get-CIPPAzDataTableEntity @RateLimitTable -Filter "PartitionKey eq 'SchedulerRateLimits'" + } + + # Create a hashtable for quick rate limit lookups + $RateLimitLookup = @{} + foreach ($limit in $RateLimits) { + $RateLimitLookup[$limit.RowKey] = $limit.MaxRequests + } + $Batch = [System.Collections.Generic.List[object]]::new() $TenantList = Get-Tenants -IncludeErrors foreach ($task in $tasks) { $tenant = $task.Tenant + $currentUnixTime = [int64](([datetime]::UtcNow) - (Get-Date '1/1/1970')).TotalSeconds if ($currentUnixTime -ge $task.ScheduledTime) { try { + # Update task state to 'Pending' immediately to prevent concurrent orchestrator runs from picking it up + # 'Pending' = orchestrator has picked it up and is queuing commands + # 'Running' = actual execution is happening (set by Push-ExecScheduledCommand) $null = Update-AzDataTableEntity -Force @Table -Entity @{ PartitionKey = $task.PartitionKey RowKey = $task.RowKey ExecutedTime = "$currentUnixTime" - TaskState = 'Planned' + TaskState = 'Pending' } $task.Parameters = $task.Parameters | ConvertFrom-Json -AsHashtable $task.AdditionalProperties = $task.AdditionalProperties | ConvertFrom-Json @@ -50,7 +88,50 @@ function Start-UserTasksOrchestrator { } } $Batch.AddRange($AllTenantCommands) + } elseif ($task.TenantGroup) { + # Handle tenant groups - expand group to individual tenants + try { + $TenantGroupObject = $task.TenantGroup | ConvertFrom-Json + Write-Host "Expanding tenant group: $($TenantGroupObject.label) with ID: $($TenantGroupObject.value)" + + # Create a tenant filter object for expansion + $TenantFilterForExpansion = @([PSCustomObject]@{ + type = 'Group' + value = $TenantGroupObject.value + label = $TenantGroupObject.label + }) + + # Expand the tenant group to individual tenants + $ExpandedTenants = Expand-CIPPTenantGroups -TenantFilter $TenantFilterForExpansion + + $ExcludedTenants = $task.excludedTenants -split ',' + Write-Host "Excluded Tenants from this task: $ExcludedTenants" + + $GroupTenantCommands = foreach ($ExpandedTenant in $ExpandedTenants | Where-Object { $_.value -notin $ExcludedTenants }) { + $NewParams = $task.Parameters.Clone() + if ((Get-Command $task.Command).Parameters.TenantFilter) { + $NewParams.TenantFilter = $ExpandedTenant.value + } + [pscustomobject]@{ + Command = $task.Command + Parameters = $NewParams + TaskInfo = $task + FunctionName = 'ExecScheduledCommand' + } + } + $Batch.AddRange($GroupTenantCommands) + } catch { + Write-Host "Error expanding tenant group: $($_.Exception.Message)" + Write-LogMessage -API 'Scheduler_UserTasks' -tenant $tenant -message "Failed to expand tenant group for task $($task.Name): $($_.Exception.Message)" -sev Error + + # Fall back to treating as single tenant + if ((Get-Command $task.Command).Parameters.TenantFilter) { + $ScheduledCommand.Parameters['TenantFilter'] = $task.Tenant + } + $Batch.Add($ScheduledCommand) + } } else { + # Handle single tenant if ((Get-Command $task.Command).Parameters.TenantFilter) { $ScheduledCommand.Parameters['TenantFilter'] = $task.Tenant } @@ -70,21 +151,62 @@ function Start-UserTasksOrchestrator { } } } + + Write-Information 'Batching tasks for execution...' + Write-Information "Total tasks to process: $($Batch.Count)" + if (($Batch | Measure-Object).Count -gt 0) { - # Create queue entry - $Queue = New-CippQueueEntry -Name 'Scheduled Tasks' -TotalTasks ($Batch | Measure-Object).Count - $QueueId = $Queue.RowKey - $Batch = $Batch | Select-Object *, @{Name = 'QueueId'; Expression = { $QueueId } }, @{Name = 'QueueName'; Expression = { '{0} - {1}' -f $_.TaskInfo.Name, ($_.TaskInfo.Tenant -ne 'AllTenants' ? $_.TaskInfo.Tenant : $_.Parameters.TenantFilter) } } - - $InputObject = [PSCustomObject]@{ - OrchestratorName = 'UserTaskOrchestrator' - Batch = @($Batch) - SkipLog = $true + # Group commands by type and apply rate limits + $CommandGroups = $Batch | Group-Object -Property Command + $ProcessedBatches = [System.Collections.Generic.List[object]]::new() + + foreach ($CommandGroup in $CommandGroups) { + $CommandName = $CommandGroup.Name + $Commands = [System.Collections.Generic.List[object]]::new($CommandGroup.Group) + + # Get rate limit for this command (default to 100 if not found) + $MaxItemsPerBatch = if ($RateLimitLookup.ContainsKey($CommandName)) { + $RateLimitLookup[$CommandName] + } else { + 100 + } + + # Split into batches based on rate limit + while ($Commands.Count -gt 0) { + $BatchSize = [Math]::Min($Commands.Count, $MaxItemsPerBatch) + $CommandBatch = [System.Collections.Generic.List[object]]::new() + + for ($i = 0; $i -lt $BatchSize; $i++) { + $CommandBatch.Add($Commands[0]) + $Commands.RemoveAt(0) + } + + $ProcessedBatches.Add($CommandBatch) + } } - #Write-Host ($InputObject | ConvertTo-Json -Depth 10) - if ($PSCmdlet.ShouldProcess('Start-UserTasksOrchestrator', 'Starting User Tasks Orchestrator')) { - Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 10 -Compress) + # Process each batch separately + foreach ($ProcessedBatch in $ProcessedBatches) { + Write-Information "Processing batch with $($ProcessedBatch.Count) tasks..." + Write-Information 'Tasks by command:' + $ProcessedBatch | Group-Object -Property Command | ForEach-Object { + Write-Information " - $($_.Name): $($_.Count)" + } + + # Create queue entry for each batch + $Queue = New-CippQueueEntry -Name "Scheduled Tasks - Batch #$($ProcessedBatches.IndexOf($ProcessedBatch) + 1) of $($ProcessedBatches.Count)" + $QueueId = $Queue.RowKey + $BatchWithQueue = $ProcessedBatch | Select-Object *, @{Name = 'QueueId'; Expression = { $QueueId } }, @{Name = 'QueueName'; Expression = { '{0} - {1}' -f $_.TaskInfo.Name, ($_.TaskInfo.Tenant -ne 'AllTenants' ? $_.TaskInfo.Tenant : $_.Parameters.TenantFilter) } } + + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'UserTaskOrchestrator' + Batch = @($BatchWithQueue) + SkipLog = $true + } + + if ($PSCmdlet.ShouldProcess('Start-UserTasksOrchestrator', 'Starting User Tasks Orchestrator')) { + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 10 -Compress) + } } } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-BackupRetentionCleanup.ps1 b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-BackupRetentionCleanup.ps1 new file mode 100644 index 000000000000..ed00a0292aa1 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-BackupRetentionCleanup.ps1 @@ -0,0 +1,164 @@ +function Start-BackupRetentionCleanup { + <# + .SYNOPSIS + Start the Backup Retention Cleanup Timer + .DESCRIPTION + This function cleans up old CIPP and Tenant backups based on the retention policy + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param() + + try { + # Get retention settings + $ConfigTable = Get-CippTable -tablename Config + $Filter = "PartitionKey eq 'BackupRetention' and RowKey eq 'Settings'" + $RetentionSettings = Get-CIPPAzDataTableEntity @ConfigTable -Filter $Filter + + # Default to 30 days if not set + $RetentionDays = if ($RetentionSettings.RetentionDays) { + [int]$RetentionSettings.RetentionDays + } else { + 30 + } + + # Ensure minimum retention of 7 days + if ($RetentionDays -lt 7) { + $RetentionDays = 7 + } + + Write-Host "Starting backup cleanup with retention of $RetentionDays days" + + # Calculate cutoff date + $CutoffDate = (Get-Date).AddDays(-$RetentionDays).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + + $DeletedCounts = [System.Collections.Generic.List[int]]::new() + + # Clean up CIPP Backups + if ($PSCmdlet.ShouldProcess('CIPPBackup', 'Cleaning up old backups')) { + $CIPPBackupTable = Get-CippTable -tablename 'CIPPBackup' + $CutoffFilter = "PartitionKey eq 'CIPPBackup' and Timestamp lt datetime'$CutoffDate'" + + # Delete blob files + $BlobFilter = "$CutoffFilter and BackupIsBlob eq true" + $BlobBackups = Get-AzDataTableEntity @CIPPBackupTable -Filter $BlobFilter -Property @('PartitionKey', 'RowKey', 'Backup') + + $BlobDeletedCount = 0 + if ($BlobBackups) { + foreach ($Backup in $BlobBackups) { + if ($Backup.Backup) { + try { + $BlobPath = $Backup.Backup + # Extract container/blob path from URL + if ($BlobPath -like '*:10000/*') { + # Azurite format: http://host:10000/devstoreaccount1/container/blob + $parts = $BlobPath -split ':10000/' + if ($parts.Count -gt 1) { + # Remove account name to get container/blob + $BlobPath = ($parts[1] -split '/', 2)[-1] + } + } elseif ($BlobPath -like '*blob.core.windows.net/*') { + # Azure Storage format: https://account.blob.core.windows.net/container/blob + $BlobPath = ($BlobPath -split '.blob.core.windows.net/', 2)[-1] + } + $null = New-CIPPAzStorageRequest -Service 'blob' -Resource $BlobPath -Method 'DELETE' -ConnectionString $ConnectionString + $BlobDeletedCount++ + Write-Host "Deleted blob: $BlobPath" + } catch { + Write-LogMessage -API 'BackupRetentionCleanup' -message "Failed to delete blob $($Backup.Backup): $($_.Exception.Message)" -Sev 'Warning' + } + } + } + # Delete blob table entities + Remove-AzDataTableEntity @CIPPBackupTable -Entity $BlobBackups -Force + } + + # Delete table-only backups (no blobs) + # Fetch all old entries and filter out blob entries client-side (null check is unreliable in filters) + $AllOldBackups = Get-AzDataTableEntity @CIPPBackupTable -Filter $CutoffFilter -Property @('PartitionKey', 'RowKey', 'ETag', 'BackupIsBlob') + $TableBackups = $AllOldBackups | Where-Object { $_.BackupIsBlob -ne $true } + + $TableDeletedCount = 0 + if ($TableBackups) { + Remove-AzDataTableEntity @CIPPBackupTable -Entity $TableBackups -Force + $TableDeletedCount = ($TableBackups | Measure-Object).Count + } + + $TotalDeleted = $BlobDeletedCount + $TableDeletedCount + if ($TotalDeleted -gt 0) { + $DeletedCounts.Add($TotalDeleted) + Write-LogMessage -API 'BackupRetentionCleanup' -message "Deleted $TotalDeleted old CIPP backups ($BlobDeletedCount blobs, $TableDeletedCount table entries)" -Sev 'Info' + Write-Host "Deleted $TotalDeleted old CIPP backups" + } else { + Write-Host 'No old CIPP backups found' + } + } + + # Clean up Scheduled/Tenant Backups + if ($PSCmdlet.ShouldProcess('ScheduledBackup', 'Cleaning up old backups')) { + $ScheduledBackupTable = Get-CippTable -tablename 'ScheduledBackup' + $CutoffFilter = "PartitionKey eq 'ScheduledBackup' and Timestamp lt datetime'$CutoffDate'" + + # Delete blob files + $BlobFilter = "$CutoffFilter and BackupIsBlob eq true" + $BlobBackups = Get-AzDataTableEntity @ScheduledBackupTable -Filter $BlobFilter -Property @('PartitionKey', 'RowKey', 'Backup') + + $BlobDeletedCount = 0 + if ($BlobBackups) { + foreach ($Backup in $BlobBackups) { + if ($Backup.Backup) { + try { + $BlobPath = $Backup.Backup + # Extract container/blob path from URL + if ($BlobPath -like '*:10000/*') { + # Azurite format: http://host:10000/devstoreaccount1/container/blob + $parts = $BlobPath -split ':10000/' + if ($parts.Count -gt 1) { + # Remove account name to get container/blob + $BlobPath = ($parts[1] -split '/', 2)[-1] + } + } elseif ($BlobPath -like '*blob.core.windows.net/*') { + # Azure Storage format: https://account.blob.core.windows.net/container/blob + $BlobPath = ($BlobPath -split '.blob.core.windows.net/', 2)[-1] + } + $null = New-CIPPAzStorageRequest -Service 'blob' -Resource $BlobPath -Method 'DELETE' -ConnectionString $ConnectionString + $BlobDeletedCount++ + Write-Host "Deleted blob: $BlobPath" + } catch { + Write-LogMessage -API 'BackupRetentionCleanup' -message "Failed to delete blob $($Backup.Backup): $($_.Exception.Message)" -Sev 'Warning' + } + } + } + # Delete blob table entities + Remove-AzDataTableEntity @ScheduledBackupTable -Entity $BlobBackups -Force + } + + # Delete table-only backups (no blobs) + # Fetch all old entries and filter out blob entries client-side (null check is unreliable in filters) + $AllOldBackups = Get-AzDataTableEntity @ScheduledBackupTable -Filter $CutoffFilter -Property @('PartitionKey', 'RowKey', 'ETag', 'BackupIsBlob') + $TableBackups = $AllOldBackups | Where-Object { $_.BackupIsBlob -ne $true } + + $TableDeletedCount = 0 + if ($TableBackups) { + Remove-AzDataTableEntity @ScheduledBackupTable -Entity $TableBackups -Force + $TableDeletedCount = ($TableBackups | Measure-Object).Count + } + + $TotalDeleted = $BlobDeletedCount + $TableDeletedCount + if ($TotalDeleted -gt 0) { + $DeletedCounts.Add($TotalDeleted) + Write-LogMessage -API 'BackupRetentionCleanup' -message "Deleted $TotalDeleted old tenant backups ($BlobDeletedCount blobs, $TableDeletedCount table entries)" -Sev 'Info' + Write-Host "Deleted $TotalDeleted old tenant backups" + } else { + Write-Host 'No old tenant backups found' + } + } + + $TotalDeleted = ($DeletedCounts | Measure-Object -Sum).Sum + Write-LogMessage -API 'BackupRetentionCleanup' -message "Backup cleanup completed. Total backups deleted: $TotalDeleted (retention: $RetentionDays days)" -Sev 'Info' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'BackupRetentionCleanup' -message "Failed to run backup cleanup: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + throw + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-CIPPProcessorQueue.ps1 b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-CIPPProcessorQueue.ps1 index 094cfe4875a5..4e34dc09f102 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-CIPPProcessorQueue.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-CIPPProcessorQueue.ps1 @@ -24,7 +24,29 @@ function Start-CIPPProcessorQueue { } if (Get-Command -Name $FunctionName -ErrorAction SilentlyContinue) { try { - Invoke-Command -ScriptBlock { & $FunctionName @Parameters } + # Prepare telemetry metadata + $metadata = @{ + FunctionName = $FunctionName + TriggerType = 'ProcessorQueue' + QueueRowKey = $QueueItem.RowKey + } + + # Add parameters info if available + if ($Parameters.Count -gt 0) { + $metadata['ParameterCount'] = $Parameters.Count + # Add common parameters + if ($Parameters.Tenant) { + $metadata['Tenant'] = $Parameters.Tenant + } + if ($Parameters.TenantFilter) { + $metadata['Tenant'] = $Parameters.TenantFilter + } + } + + # Wrap function execution with telemetry + Measure-CippTask -TaskName $FunctionName -Metadata $metadata -Script { + Invoke-Command -ScriptBlock { & $FunctionName @Parameters } + } } catch { Write-Warning "Failed to run function $($FunctionName). Error: $($_.Exception.Message)" } diff --git a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-CIPPStatsTimer.ps1 b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-CIPPStatsTimer.ps1 index e8d56975c448..e4060f1c0a37 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-CIPPStatsTimer.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-CIPPStatsTimer.ps1 @@ -43,7 +43,12 @@ function Start-CIPPStatsTimer { CFZTNA = $RawExt.CFZTNA.Enabled GitHub = $RawExt.GitHub.Enabled } | ConvertTo-Json - - Invoke-RestMethod -Uri 'https://management.cipp.app/api/stats' -Method POST -Body $SendingObject -ContentType 'application/json' + try { + Invoke-RestMethod -Uri 'https://management.cipp.app/api/stats' -Method POST -Body $SendingObject -ContentType 'application/json' + } catch { + $rand = Get-Random -Minimum 0.5 -Maximum 5.5 + Start-Sleep -Seconds $rand + Invoke-RestMethod -Uri 'https://management.cipp.app/api/stats' -Method POST -Body $SendingObject -ContentType 'application/json' + } } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-DurableCleanup.ps1 b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-DurableCleanup.ps1 index 661bf5182d89..5987188d5a10 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-DurableCleanup.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-DurableCleanup.ps1 @@ -19,7 +19,6 @@ function Start-DurableCleanup { ) $WarningPreference = 'SilentlyContinue' - $StorageContext = New-AzStorageContext -ConnectionString $env:AzureWebJobsStorage $TargetTime = (Get-Date).ToUniversalTime().AddSeconds(-$MaxDuration) $Context = New-AzDataTableContext -ConnectionString $env:AzureWebJobsStorage $InstancesTables = Get-AzDataTable -Context $Context | Where-Object { $_ -match 'Instances' } @@ -28,33 +27,56 @@ function Start-DurableCleanup { $QueueCount = 0 $FunctionsWithLongRunningOrchestrators = [System.Collections.Generic.List[object]]::new() + $NonDeterministicOrchestrators = [System.Collections.Generic.List[object]]::new() + foreach ($Table in $InstancesTables) { $Table = Get-CippTable -TableName $Table $FunctionName = $Table.TableName -replace 'Instances', '' $Orchestrators = Get-CIPPAzDataTableEntity @Table -Filter "RuntimeStatus eq 'Running'" | Select-Object * -ExcludeProperty Input - $Queues = Get-AzStorageQueue -Context $StorageContext -Name ('{0}*' -f $FunctionName) | Select-Object -Property Name, ApproximateMessageCount, QueueClient + $Queues = Get-CIPPAzStorageQueue -Name ('{0}*' -f $FunctionName) | Select-Object -Property Name, ApproximateMessageCount, QueueClient $LongRunningOrchestrators = $Orchestrators | Where-Object { $_.CreatedTime.DateTime -lt $TargetTime } + if ($LongRunningOrchestrators.Count -gt 0) { $FunctionsWithLongRunningOrchestrators.Add(@{'FunctionName' = $FunctionName }) + foreach ($Orchestrator in $LongRunningOrchestrators) { + $CreatedTime = [DateTime]::SpecifyKind($Orchestrator.CreatedTime.DateTime, [DateTimeKind]::Utc) + $TimeSpan = New-TimeSpan -Start $CreatedTime -End (Get-Date).ToUniversalTime() + $RunningDuration = [math]::Round($TimeSpan.TotalMinutes, 2) + Write-Information "Orchestrator: $($Orchestrator.PartitionKey), created: $CreatedTime, running for: $RunningDuration minutes" + if ($PSCmdlet.ShouldProcess($_.PartitionKey, 'Terminate Orchestrator')) { + $Orchestrator = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$($Orchestrator.PartitionKey)'" + $Orchestrator.RuntimeStatus = 'Failed' + if ($Orchestrator.PSObject.Properties.Name -contains 'CustomStatus') { + $Orchestrator.CustomStatus = "Terminated by Durable Cleanup - Exceeded max duration of $MaxDuration seconds" + } else { + $Orchestrator | Add-Member -MemberType NoteProperty -Name CustomStatus -Value "Terminated by Durable Cleanup - Exceeded max duration of $MaxDuration seconds" + } + Update-AzDataTableEntity @Table -Entity $Orchestrator + $CleanupCount++ + } + } } - foreach ($Orchestrator in $LongRunningOrchestrators) { - $CreatedTime = [DateTime]::SpecifyKind($Orchestrator.CreatedTime.DateTime, [DateTimeKind]::Utc) - $TimeSpan = New-TimeSpan -Start $CreatedTime -End (Get-Date).ToUniversalTime() - $RunningDuration = [math]::Round($TimeSpan.TotalMinutes, 2) - Write-Information "Orchestrator: $($Orchestrator.PartitionKey), created: $CreatedTime, running for: $RunningDuration minutes" - if ($PSCmdlet.ShouldProcess($_.PartitionKey, 'Terminate Orchestrator')) { - $Orchestrator = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$($Orchestrator.PartitionKey)'" - $Orchestrator.RuntimeStatus = 'Failed' - if ($Orchestrator.PSObject.Properties.Name -contains 'CustomStatus') { - $Orchestrator.CustomStatus = "Terminated by Durable Cleanup - Exceeded max duration of $MaxDuration seconds" - } else { - $Orchestrator | Add-Member -MemberType NoteProperty -Name CustomStatus -Value "Terminated by Durable Cleanup - Exceeded max duration of $MaxDuration seconds" + + $NonDeterministicOrchestrators = $Orchestrators | Where-Object { $_.Output -match 'Non-Deterministic workflow detected' } + if ($NonDeterministicOrchestrators.Count -gt 0) { + $NonDeterministicOrchestrators.Add(@{'FunctionName' = $FunctionName }) + foreach ($Orchestrator in $NonDeterministicOrchestrators) { + Write-Information "Orchestrator: $($Orchestrator.PartitionKey) is Non-Deterministic" + if ($PSCmdlet.ShouldProcess($_.PartitionKey, 'Terminate Orchestrator')) { + $Orchestrator = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$($Orchestrator.PartitionKey)'" + $Orchestrator.RuntimeStatus = 'Failed' + if ($Orchestrator.PSObject.Properties.Name -contains 'CustomStatus') { + $Orchestrator.CustomStatus = 'Terminated by Durable Cleanup - Non-Deterministic workflow detected' + } else { + $Orchestrator | Add-Member -MemberType NoteProperty -Name CustomStatus -Value 'Terminated by Durable Cleanup - Non-Deterministic workflow detected' + } + Update-AzDataTableEntity @Table -Entity $Orchestrator + $CleanupCount++ } - Update-AzDataTableEntity @Table -Entity $Orchestrator - $CleanupCount++ } } - if ($LongRunningOrchestrators.Count -gt 0 -and $Queues.ApproximateMessageCount -gt 0) { + + if (($LongRunningOrchestrators.Count -gt 0 -or $NonDeterministicOrchestrators.Count -gt 0) -and $Queues.ApproximateMessageCount -gt 0) { $RunningQueues = $Queues | Where-Object { $_.ApproximateMessageCount -gt 0 } foreach ($Queue in $RunningQueues) { Write-Information "- Removing queue: $($Queue.Name), message count: $($Queue.ApproximateMessageCount)" diff --git a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-TableCleanup.ps1 b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-TableCleanup.ps1 index 177e67cdb378..35a101109294 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-TableCleanup.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-TableCleanup.ps1 @@ -3,7 +3,6 @@ function Start-TableCleanup { .SYNOPSIS Start the Table Cleanup Timer #> - [CmdletBinding(SupportsShouldProcess = $true)] param() $Batch = @( @@ -57,10 +56,19 @@ function Start-TableCleanup { Property = @('PartitionKey', 'RowKey', 'ETag') } } + @{ + FunctionName = 'TableCleanupTask' + Type = 'CleanupRule' + TableName = 'ScheduledTasks' + DataTableProps = @{ + Filter = "PartitionKey eq 'ScheduledTask' and Command eq 'Sync-CippExtensionData'" + Property = @('PartitionKey', 'RowKey', 'ETag') + } + } @{ FunctionName = 'TableCleanupTask' Type = 'DeleteTable' - Tables = @('knownlocationdb') + Tables = @('knownlocationdb', 'CacheExtensionSync', 'ExtensionSync') } ) diff --git a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-UpdateTokensTimer.ps1 b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-UpdateTokensTimer.ps1 index b5780a3f33c4..416318bb4438 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-UpdateTokensTimer.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-UpdateTokensTimer.ps1 @@ -13,7 +13,7 @@ function Start-UpdateTokensTimer { $currentUTCtime = (Get-Date).ToUniversalTime() try { $Refreshtoken = (Get-GraphToken -ReturnRefresh $true).Refresh_token - if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true') { + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { $Table = Get-CIPPTable -tablename 'DevSecrets' $Secret = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'Secret' and RowKey eq 'Secret'" if ($Secret) { @@ -23,15 +23,9 @@ function Start-UpdateTokensTimer { Write-LogMessage -API 'Update Tokens' -message 'Could not update refresh token. Will try again in 7 days.' -sev 'CRITICAL' } } else { - if ($env:MSI_SECRET) { - Disable-AzContextAutosave -Scope Process | Out-Null - $null = Connect-AzAccount -Identity - $SubscriptionId = $env:WEBSITE_OWNER_NAME -split '\+' | Select-Object -First 1 - $null = Set-AzContext -SubscriptionId $SubscriptionId - } $KV = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] if ($Refreshtoken) { - Set-AzKeyVaultSecret -VaultName $KV -Name 'RefreshToken' -SecretValue (ConvertTo-SecureString -String $Refreshtoken -AsPlainText -Force) + Set-CippKeyVaultSecret -VaultName $KV -Name 'RefreshToken' -SecretValue (ConvertTo-SecureString -String $Refreshtoken -AsPlainText -Force) } else { Write-LogMessage -API 'Update Tokens' -message 'Could not update refresh token. Will try again in 7 days.' -sev 'CRITICAL' } @@ -57,13 +51,13 @@ function Start-UpdateTokensTimer { } if ($AppSecret) { - if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true') { + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { $Table = Get-CIPPTable -tablename 'DevSecrets' $Secret = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'Secret' and RowKey eq 'Secret'" $Secret.ApplicationSecret = $AppSecret.secretText Add-AzDataTableEntity @Table -Entity $Secret -Force } else { - Set-AzKeyVaultSecret -VaultName $KV -Name 'ApplicationSecret' -SecretValue (ConvertTo-SecureString -String $AppSecret.secretText -AsPlainText -Force) + Set-CippKeyVaultSecret -VaultName $KV -Name 'ApplicationSecret' -SecretValue (ConvertTo-SecureString -String $AppSecret.secretText -AsPlainText -Force) } Write-LogMessage -API 'Update Tokens' -message "New application secret generated for $AppId. Expiration date: $($AppSecret.endDateTime)." -sev 'INFO' } @@ -74,7 +68,7 @@ function Start-UpdateTokensTimer { Write-Information "Found $($ExpiredSecrets.Count) expired application secrets for $AppId. Removing them." foreach ($Secret in $ExpiredSecrets) { try { - New-GraphPostRequest -type DELETE -uri "https://graph.microsoft.com/v1.0/applications/$($PasswordCredentials.id)/removePassword" -Body "{`"keyId`":`"$($Secret.keyId)`"}" -NoAuthCheck $true -AsApp $true -ErrorAction Stop + New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/applications/$($PasswordCredentials.id)/removePassword" -Body "{`"keyId`":`"$($Secret.keyId)`"}" -NoAuthCheck $true -AsApp $true -ErrorAction Stop Write-Information "Removed expired application secret with keyId $($Secret.keyId)." } catch { Write-LogMessage -API 'Update Tokens' -message "Error removing expired application secret with keyId $($Secret.keyId), see Log Data for details." -sev 'CRITICAL' -LogData (Get-CippException -Exception $_) @@ -99,7 +93,7 @@ function Start-UpdateTokensTimer { try { Write-Information "Updating refresh token for tenant $($Tenant.displayName) - $($Tenant.customerId)" $Refreshtoken = (Get-GraphToken -ReturnRefresh $true -TenantId $Tenant.customerId).Refresh_token - if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true') { + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { $Table = Get-CIPPTable -tablename 'DevSecrets' $Secret = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'Secret' and RowKey eq 'Secret'" if ($Secret) { @@ -113,7 +107,7 @@ function Start-UpdateTokensTimer { } else { if ($Refreshtoken) { $name = $Tenant.customerId - Set-AzKeyVaultSecret -VaultName $KV -Name $name -SecretValue (ConvertTo-SecureString -String $Refreshtoken -AsPlainText -Force) + Set-CippKeyVaultSecret -VaultName $KV -Name $name -SecretValue (ConvertTo-SecureString -String $Refreshtoken -AsPlainText -Force) } else { Write-Warning "Could not update refresh token for tenant $($Tenant.displayName) ($($Tenant.customerId))." Write-LogMessage -API 'Update Tokens' -tenant $Tenant.defaultDomainName -tenantid $Tenant.customerId -message "Could not update refresh token for tenant $($Tenant.displayName). Will try again in 7 days." -sev 'CRITICAL' diff --git a/Modules/CIPPCore/Public/Functions/Get-CIPPTenantAlignment.ps1 b/Modules/CIPPCore/Public/Functions/Get-CIPPTenantAlignment.ps1 new file mode 100644 index 000000000000..a2a6553fb250 --- /dev/null +++ b/Modules/CIPPCore/Public/Functions/Get-CIPPTenantAlignment.ps1 @@ -0,0 +1,363 @@ +function Get-CIPPTenantAlignment { + <# + .SYNOPSIS + Gets tenant alignment data for standards compliance + .DESCRIPTION + This function calculates tenant alignment percentages against standards templates. + It processes all standard templates and compares them against tenant standards data. + .PARAMETER TenantFilter + The tenant to get alignment data for. If not specified, processes all tenants. + .PARAMETER TemplateId + Optional specific template GUID to check alignment for. If not specified, processes all templates. + .FUNCTIONALITY + Internal + .EXAMPLE + Get-CIPPTenantAlignment -TenantFilter "contoso.onmicrosoft.com" + .EXAMPLE + Get-CIPPTenantAlignment -TenantFilter "contoso.onmicrosoft.com" -TemplateId "12345-67890-abcdef" + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false)] + [string]$TenantFilter, + + [Parameter(Mandatory = $false)] + [string]$TemplateId + ) + $TemplateTable = Get-CippTable -tablename 'templates' + $TemplateFilter = "PartitionKey eq 'StandardsTemplateV2'" + $TenantGroups = Get-TenantGroups + + try { + # Get all standard templates + $Templates = (Get-CIPPAzDataTableEntity @TemplateTable -Filter $TemplateFilter) | ForEach-Object { + $JSON = $_.JSON + try { + $RowKey = $_.RowKey + $Data = $JSON | ConvertFrom-Json -Depth 100 -ErrorAction Stop + } catch { + Write-Warning "$($RowKey) standard could not be loaded: $($_.Exception.Message)" + return + } + if ($Data) { + $Data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $_.GUID -Force + $Data + } + } + + if (-not $Templates) { + Write-Warning 'No templates found matching the criteria' + return @() + } + + # Get standards comparison data + $StandardsTable = Get-CippTable -TableName 'CippStandardsReports' + #this if statement is to bring down performance when running scheduled checks, we have to revisit this to a better query due to the extreme size this can get. + if ($TenantFilter) { + $filter = "PartitionKey eq '$TenantFilter'" + } else { + $filter = "PartitionKey ne 'StandardReport' and PartitionKey ne ''" + } + $AllStandards = Get-CIPPAzDataTableEntity @StandardsTable -Filter $filter + + # Filter by tenant if specified + $Standards = if ($TenantFilter) { + $AllStandards + } else { + $Tenants = Get-Tenants -IncludeErrors + $AllStandards | Where-Object { $_.PartitionKey -in $Tenants.defaultDomainName } + } + $TagTemplates = Get-CIPPAzDataTableEntity @TemplateTable + # Build tenant standards data structure + $tenantData = @{} + foreach ($Standard in $Standards) { + $FieldName = $Standard.RowKey + $FieldValue = $Standard.Value + $Tenant = $Standard.PartitionKey + + # Process field value + if ($FieldValue -is [System.Boolean]) { + $FieldValue = [bool]$FieldValue + } else { + try { + $FieldValue = ConvertFrom-Json -Depth 5 -InputObject $FieldValue -ErrorAction Stop + } catch { + $FieldValue = [string]$FieldValue + } + } + + if ($Tenant -and -not $tenantData.ContainsKey($Tenant)) { + $tenantData[$Tenant] = @{} + } + $tenantData[$Tenant][$FieldName] = @{ + Value = $FieldValue + LastRefresh = $Standard.TimeStamp.ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + LicenseAvailable = $Standard.LicenseAvailable + CurrentValue = $Standard.CurrentValue + ExpectedValue = $Standard.ExpectedValue + } + } + $TenantStandards = $tenantData + + $Results = [System.Collections.Generic.List[object]]::new() + + # Process each template against all tenants + foreach ($Template in $Templates) { + $TemplateStandards = $Template.standards + if (-not $TemplateStandards) { + continue + } + + # Check if template has tenant assignments (scope) + $TemplateAssignedTenants = @() + $AppliestoAllTenants = $false + + if ($Template.tenantFilter -and $Template.tenantFilter.Count -gt 0) { + # Extract tenant values from the tenantFilter array + $TenantValues = [System.Collections.Generic.List[string]]::new() + foreach ($filterItem in $Template.tenantFilter) { + if ($filterItem.type -eq 'group') { + # Look up group members by Id (GUID in the value field) + $GroupMembers = $TenantGroups | Where-Object { $_.Id -eq $filterItem.value } + if ($GroupMembers -and $GroupMembers.Members) { + foreach ($member in $GroupMembers.Members.defaultDomainName) { + $TenantValues.Add($member) + } + } + } else { + $TenantValues.Add($filterItem.value) + } + } +` + if ($TenantValues -contains 'AllTenants') { + $AppliestoAllTenants = $true + } elseif ($TenantValues.Count -gt 0) { + $TemplateAssignedTenants = @($TenantValues) + } else { + # Filter was specified but resolved to no tenants (empty group) - skip this template + continue + } + } else { + $AppliestoAllTenants = $true + } + + $StandardsData = foreach ($StandardKey in $TemplateStandards.PSObject.Properties.Name) { + $StandardConfig = $TemplateStandards.$StandardKey + $StandardId = "standards.$StandardKey" + + $Actions = @() + if ($StandardConfig.action) { + $Actions = $StandardConfig.action + } elseif ($StandardConfig.Action) { + $Actions = $StandardConfig.Action + } elseif ($StandardConfig.PSObject.Properties['action']) { + $Actions = $StandardConfig.PSObject.Properties['action'].Value + } + + $ReportingEnabled = $false + if ($Actions -and $Actions.Count -gt 0) { + $ReportingEnabled = ($Actions | Where-Object { $_.value -and ($_.value.ToLower() -eq 'report' -or $_.value.ToLower() -eq 'remediate') }).Count -gt 0 + } + + # Handle Intune templates specially + if ($StandardKey -eq 'IntuneTemplate' -and $StandardConfig -is [array]) { + foreach ($IntuneTemplate in $StandardConfig) { + if ($IntuneTemplate.TemplateList.value) { + $IntuneStandardId = "standards.IntuneTemplate.$($IntuneTemplate.TemplateList.value)" + $IntuneActions = if ($IntuneTemplate.action) { $IntuneTemplate.action } else { @() } + $IntuneReportingEnabled = ($IntuneActions | Where-Object { $_.value -and ($_.value.ToLower() -eq 'report' -or $_.value.ToLower() -eq 'remediate') }).Count -gt 0 + [PSCustomObject]@{ + StandardId = $IntuneStandardId + ReportingEnabled = $IntuneReportingEnabled + } + } + + if ($IntuneTemplate.'TemplateList-Tags') { + foreach ($Tag in $IntuneTemplate.'TemplateList-Tags') { + Write-Host "Processing Intune Tag: $($Tag.value)" + $IntuneActions = if ($IntuneTemplate.action) { $IntuneTemplate.action } else { @() } + $IntuneReportingEnabled = ($IntuneActions | Where-Object { $_.value -and ($_.value.ToLower() -eq 'report' -or $_.value.ToLower() -eq 'remediate') }).Count -gt 0 + $TagTemplate = $TagTemplates | Where-Object -Property package -EQ $Tag.value + $TagTemplate | ForEach-Object { + $TagStandardId = "standards.IntuneTemplate.$($_.GUID)" + [PSCustomObject]@{ + StandardId = $TagStandardId + ReportingEnabled = $IntuneReportingEnabled + } + } + } + } + } + } + # Handle Conditional Access templates specially + elseif ($StandardKey -eq 'ConditionalAccessTemplate' -and $StandardConfig -is [array]) { + foreach ($CATemplate in $StandardConfig) { + if ($CATemplate.TemplateList.value) { + $CAStandardId = "standards.ConditionalAccessTemplate.$($CATemplate.TemplateList.value)" + $CAActions = if ($CATemplate.action) { $CATemplate.action } else { @() } + $CAReportingEnabled = ($CAActions | Where-Object { $_.value -and ($_.value.ToLower() -eq 'report' -or $_.value.ToLower() -eq 'remediate') }).Count -gt 0 + + [PSCustomObject]@{ + StandardId = $CAStandardId + ReportingEnabled = $CAReportingEnabled + } + } + } + } else { + [PSCustomObject]@{ + StandardId = $StandardId + ReportingEnabled = $ReportingEnabled + } + } + } + + $AllStandards = $StandardsData.StandardId + $AllStandardsArray = @($AllStandards) + $ReportingDisabledStandards = ($StandardsData | Where-Object { -not $_.ReportingEnabled }).StandardId + $ReportingDisabledSet = [System.Collections.Generic.HashSet[string]]::new() + foreach ($item in $ReportingDisabledStandards) { [void]$ReportingDisabledSet.Add($item) } + $TemplateAssignedTenantsSet = if ($TemplateAssignedTenants.Count -gt 0) { + $set = [System.Collections.Generic.HashSet[string]]::new() + foreach ($item in $TemplateAssignedTenants) { [void]$set.Add($item) } + $set + } else { $null } + + foreach ($TenantName in $TenantStandards.Keys) { + # Check tenant scope with HashSet and cache tenant data + if (-not $AppliestoAllTenants) { + if ($TemplateAssignedTenantsSet -and -not $TemplateAssignedTenantsSet.Contains($TenantName)) { + continue + } + } + + $AllCount = $AllStandards.Count + $LatestDataCollection = $null + # Cache hashtable lookup + $CurrentTenantStandards = $TenantStandards[$TenantName] + + # Pre-allocate list with capacity + $ComparisonResults = [System.Collections.Generic.List[object]]::new($AllStandardsArray.Count) + + # Use for loop instead of foreach + for ($i = 0; $i -lt $AllStandardsArray.Count; $i++) { + $StandardKey = $AllStandardsArray[$i] + + # Use HashSet for Contains + $IsReportingDisabled = $ReportingDisabledSet.Contains($StandardKey) + # Use cached tenant data + + $HasStandard = $StandardKey -and $CurrentTenantStandards.ContainsKey($StandardKey) + + if ($HasStandard) { + $StandardObject = $CurrentTenantStandards[$StandardKey] + $Value = $StandardObject.Value + + if ($StandardObject.LastRefresh) { + $RefreshTime = [DateTime]::Parse($StandardObject.LastRefresh) + if (-not $LatestDataCollection -or $RefreshTime -gt $LatestDataCollection) { + $LatestDataCollection = $RefreshTime + } + } + + $IsCompliant = ($Value -eq $true) -or ($StandardObject.CurrentValue -and $StandardObject.CurrentValue -eq $StandardObject.ExpectedValue) + $IsLicenseMissing = ($Value -is [string] -and $Value -like 'License Missing:*') + + $ComplianceStatus = if ($IsReportingDisabled) { + 'Reporting Disabled' + } elseif ($IsCompliant) { + 'Compliant' + } elseif ($IsLicenseMissing) { + 'License Missing' + } else { + 'Non-Compliant' + } + + $StandardValueJson = $Value | ConvertTo-Json -Depth 5 -Compress + + $ComparisonResults.Add([PSCustomObject]@{ + StandardName = $StandardKey + Compliant = $IsCompliant + StandardValue = $StandardValueJson + ComplianceStatus = $ComplianceStatus + ReportingDisabled = $IsReportingDisabled + LicenseAvailable = $StandardObject.LicenseAvailable + CurrentValue = $StandardObject.CurrentValue + ExpectedValue = $StandardObject.ExpectedValue + }) + } else { + $ComplianceStatus = if ($IsReportingDisabled) { + 'Reporting Disabled' + } else { + 'Non-Compliant' + } + + $ComparisonResults.Add([PSCustomObject]@{ + StandardName = $StandardKey + Compliant = $false + StandardValue = 'NOT FOUND' + ComplianceStatus = $ComplianceStatus + ReportingDisabled = $IsReportingDisabled + LicenseAvailable = $null + CurrentValue = $null + ExpectedValue = $null + }) + } + } + + # Replace Where-Object with direct counting + $CompliantStandards = 0 + $NonCompliantStandards = 0 + $LicenseMissingStandards = 0 + $ReportingDisabledStandardsCount = 0 + + foreach ($item in $ComparisonResults) { + if ($item.ComplianceStatus -eq 'Compliant') { $CompliantStandards++ } + elseif ($item.ComplianceStatus -eq 'Non-Compliant') { $NonCompliantStandards++ } + elseif ($item.ComplianceStatus -eq 'License Missing') { $LicenseMissingStandards++ } + if ($item.ReportingDisabled) { $ReportingDisabledStandardsCount++ } + } + + $AlignmentPercentage = if (($AllCount - $ReportingDisabledStandardsCount) -gt 0) { + [Math]::Round(($CompliantStandards / ($AllCount - $ReportingDisabledStandardsCount)) * 100) + } else { + 0 + } + + $LicenseMissingPercentage = if ($AllCount -gt 0) { + [Math]::Round(($LicenseMissingStandards / $AllCount) * 100) + } else { + 0 + } + + $Result = [PSCustomObject]@{ + TenantFilter = $TenantName + StandardName = $Template.templateName + StandardId = $Template.GUID + standardType = $Template.type + standardSettings = $Template.Standards + driftAlertEmail = $Template.driftAlertEmail + driftAlertWebhook = $Template.driftAlertWebhook + driftAlertDisableEmail = $Template.driftAlertDisableEmail + AlignmentScore = $AlignmentPercentage + LicenseMissingPercentage = $LicenseMissingPercentage + CombinedScore = $AlignmentPercentage + $LicenseMissingPercentage + CompliantStandards = $CompliantStandards + NonCompliantStandards = $NonCompliantStandards + LicenseMissingStandards = $LicenseMissingStandards + TotalStandards = $AllCount + ReportingDisabledCount = $ReportingDisabledStandardsCount + LatestDataCollection = if ($LatestDataCollection) { $LatestDataCollection } else { $null } + ComparisonDetails = $ComparisonResults + } + + $Results.Add($Result) + } + } + + return $Results + } catch { + Write-Error "Error getting tenant alignment data: $($_.Exception.Message)" + Write-Information $_.InvocationInfo.PositionMessage + throw + } +} diff --git a/Modules/CIPPCore/Public/Functions/Get-CIPPURLName.ps1 b/Modules/CIPPCore/Public/Functions/Get-CIPPURLName.ps1 new file mode 100644 index 000000000000..c9136b55435e --- /dev/null +++ b/Modules/CIPPCore/Public/Functions/Get-CIPPURLName.ps1 @@ -0,0 +1,155 @@ +function Get-CIPPURLName { + <# + .SYNOPSIS + Gets the correct Microsoft Graph URL based on the OData type of a template + .DESCRIPTION + This function examines the @odata.type property of a JSON template object and returns + the appropriate full Microsoft Graph API URL for that resource type. + .PARAMETER Template + The template object containing the @odata.type property to analyze + .FUNCTIONALITY + Internal + .EXAMPLE + Get-CIPPURLName -Template $MyTemplate + .EXAMPLE + $Template | Get-CIPPURLName + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true, ValueFromPipeline = $true)] + [PSCustomObject]$Template + ) + + # Extract the OData type from the template + $ODataType = $Template.'@odata.type' + if ($Template.urlName) { return $Template.urlName } + + if (-not $ODataType) { + Write-Warning 'No @odata.type property found in template' + return $null + } + + # Determine the full Microsoft Graph URL based on the OData type + $URLName = switch -wildcard ($ODataType) { + # Device Compliance Policies + '*CompliancePolicy' { + 'deviceManagement/deviceCompliancePolicies' + } + '*deviceCompliancePolicy' { + 'deviceManagement/deviceCompliancePolicies' + } + + # Managed App Policies (App Protection) + '*ManagedAppProtection' { + 'deviceAppManagement/managedAppPolicies' + } + '*managedAppPolicies' { + 'deviceAppManagement/managedAppPolicies' + } + '*managedAppPolicy' { + 'deviceAppManagement/managedAppPolicies' + } + '*appProtectionPolicy' { + 'deviceAppManagement/managedAppPolicies' + } + + # Configuration Policies (Settings Catalog) + '*configurationPolicies' { + 'deviceManagement/configurationPolicies' + } + '*deviceManagementConfigurationPolicy' { + 'deviceManagement/configurationPolicies' + } + + # Windows Driver Update Profiles + '*windowsDriverUpdateProfiles' { + 'deviceManagement/windowsDriverUpdateProfiles' + } + '*windowsDriverUpdateProfile' { + 'deviceManagement/windowsDriverUpdateProfiles' + } + + # Device Configurations + '*deviceConfigurations' { + 'deviceManagement/deviceConfigurations' + } + '*deviceConfiguration' { + 'deviceManagement/deviceConfigurations' + } + + # Group Policy Configurations (Administrative Templates) + '*groupPolicyConfigurations' { + 'deviceManagement/groupPolicyConfigurations' + } + '*groupPolicyConfiguration' { + 'deviceManagement/groupPolicyConfigurations' + } + + # Conditional Access Policies + '*conditionalAccessPolicy' { + 'identity/conditionalAccess/policies' + } + + # Device Enrollment Configurations + '*deviceEnrollmentConfiguration' { + 'deviceManagement/deviceEnrollmentConfigurations' + } + '*enrollmentConfiguration' { + 'deviceManagement/deviceEnrollmentConfigurations' + } + + # Mobile App Configurations + '*mobileAppConfiguration' { + 'deviceAppManagement/mobileAppConfigurations' + } + '*appConfiguration' { + 'deviceAppManagement/mobileAppConfigurations' + } + + # Windows Feature Update Profiles + '*windowsFeatureUpdateProfile' { + 'deviceManagement/windowsFeatureUpdateProfiles' + } + + # Device Health Scripts (Remediation Scripts) + '*deviceHealthScript' { + 'deviceManagement/deviceHealthScripts' + } + + # Device Management Scripts (PowerShell Scripts) + '*deviceManagementScript' { + 'deviceManagement/deviceManagementScripts' + } + + # Mobile Applications + '*mobileApp' { + 'deviceAppManagement/mobileApps' + } + '*winGetApp' { + 'deviceAppManagement/mobileApps' + } + '*officeSuiteApp' { + 'deviceAppManagement/mobileApps' + } + + # Named Locations + '*namedLocation' { + 'identity/conditionalAccess/namedLocations' + } + '*ipNamedLocation' { + 'identity/conditionalAccess/namedLocations' + } + '*countryNamedLocation' { + 'identity/conditionalAccess/namedLocations' + } + + # Default fallback + default { + Write-Warning "Unknown OData type: $ODataType" + $null + } + } + + return $URLName +} + diff --git a/Modules/CIPPCore/Public/Functions/Get-TenantGroups.ps1 b/Modules/CIPPCore/Public/Functions/Get-TenantGroups.ps1 deleted file mode 100644 index ad4525a4d7de..000000000000 --- a/Modules/CIPPCore/Public/Functions/Get-TenantGroups.ps1 +++ /dev/null @@ -1,88 +0,0 @@ -function Get-TenantGroups { - <# - .SYNOPSIS - Get tenant groups - .DESCRIPTION - Get tenant groups from Azure Table Storage - .PARAMETER GroupId - The group id to filter on - .PARAMETER TenantFilter - The tenant filter to apply to get the groups for a specific tenant - #> - [CmdletBinding()] - param( - $GroupId, - $TenantFilter - ) - - $GroupTable = Get-CippTable -tablename 'TenantGroups' - $MembersTable = Get-CippTable -tablename 'TenantGroupMembers' - - if ($TenantFilter -and $TenantFilter -ne 'allTenants') { - $TenantParams = @{ - TenantFilter = $TenantFilter - IncludeErrors = $true - } - } else { - $TenantParams = @{ - IncludeErrors = $true - } - } - $Tenants = Get-Tenants @TenantParams - - if ($GroupFilter) { - $Groups = Get-CIPPAzDataTableEntity @GroupTable -Filter "RowKey eq '$GroupFilter'" - $AllMembers = Get-CIPPAzDataTableEntity @MembersTable -Filter "GroupId eq '$GroupFilter'" - } else { - $Groups = Get-CIPPAzDataTableEntity @GroupTable - $AllMembers = Get-CIPPAzDataTableEntity @MembersTable - } - - if (!$Groups) { - return @() - } - - if ($TenantFilter -and $TenantFilter -ne 'allTenants') { - $Results = [System.Collections.Generic.List[PSCustomObject]]::new() - $Memberships = $AllMembers | Where-Object { $_.customerId -eq $Tenants.customerId } - foreach ($Group in $Memberships) { - $Group = $Groups | Where-Object { $_.RowKey -eq $Group.GroupId } - if ($Group) { - $Results.Add([PSCustomObject]@{ - Id = $Group.RowKey - Name = $Group.Name - Description = $Group.Description - }) - } - } - return $Results | Sort-Object Name - } else { - $Results = [System.Collections.Generic.List[PSCustomObject]]::new() - foreach ($Group in $Groups) { - $Members = $AllMembers | Where-Object { $_.GroupId -eq $Group.RowKey } - $MembersList = [System.Collections.Generic.List[hashtable]]::new() - if ($Members) { - foreach ($Member in $Members) { - $Tenant = $Tenants | Where-Object { $Member.customerId -eq $_.customerId } - if ($Tenant) { - $MembersList.Add(@{ - customerId = $Tenant.customerId - displayName = $Tenant.displayName - defaultDomainName = $Tenant.defaultDomainName - }) - } - } - $SortedMembers = $MembersList | Sort-Object displayName - } else { - $SortedMembers = @() - } - $Results.Add([PSCustomObject]@{ - Id = $Group.RowKey - Name = $Group.Name - Description = $Group.Description - Members = @($SortedMembers) - }) - } - return $Results | Sort-Object Name - } -} diff --git a/Modules/CIPPCore/Public/Functions/Test-CIPPStandardLicense.ps1 b/Modules/CIPPCore/Public/Functions/Test-CIPPStandardLicense.ps1 new file mode 100644 index 000000000000..851822afe56c --- /dev/null +++ b/Modules/CIPPCore/Public/Functions/Test-CIPPStandardLicense.ps1 @@ -0,0 +1,65 @@ +function Test-CIPPStandardLicense { + <# + .SYNOPSIS + Tests if a tenant has the required license capabilities for a specific standard + .DESCRIPTION + This function checks if a tenant has the necessary license capabilities to run a specific standard. + If the license is missing, it logs an error and sets the comparison field appropriately. + .PARAMETER StandardName + The name of the standard to check licensing for + .PARAMETER TenantFilter + The tenant to check licensing for + .PARAMETER RequiredCapabilities + Array of required capabilities for the standard + .FUNCTIONALITY + Internal + .EXAMPLE + Test-CIPPStandardLicense -StandardName "ConditionalAccessTemplate" -TenantFilter "contoso.onmicrosoft.com" -RequiredCapabilities @('AADPremiumService') + .EXAMPLE + Test-CIPPStandardLicense -StandardName "SafeLinksPolicy" -TenantFilter "contoso.onmicrosoft.com" -RequiredCapabilities @('DEFENDER_FOR_OFFICE_365_PLAN_1', 'DEFENDER_FOR_OFFICE_365_PLAN_2') + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$StandardName, + + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + [Parameter(Mandatory = $true)] + [string[]]$RequiredCapabilities, + + [Parameter(Mandatory = $false)] + [switch]$SkipLog + ) + + try { + $TenantCapabilities = Get-CIPPTenantCapabilities -TenantFilter $TenantFilter + + $Capabilities = foreach ($Capability in $RequiredCapabilities) { + Write-Verbose "Checking capability: $Capability" + if ($TenantCapabilities.$Capability -eq $true) { + $Capability + } + } + + if ($Capabilities.Count -le 0) { + if (!$SkipLog.IsPresent) { + Write-LogMessage -API 'Standards' -tenant $TenantFilter -message "Tenant does not have the required capability to run standard $StandardName`: The tenant needs one of the following service plans: $($RequiredCapabilities -join ',')" -sev Info + Set-CIPPStandardsCompareField -FieldName "standards.$StandardName" -LicenseAvailable $false -FieldValue "License Missing: This tenant is not licensed for the following capabilities: $($RequiredCapabilities -join ',')" -Tenant $TenantFilter + Write-Verbose "Tenant does not have the required capability to run standard $StandardName - $($RequiredCapabilities -join ','). Exiting" + } + return $false + } + Write-Verbose "Tenant has the required capabilities for standard $StandardName" + return $true + } catch { + if (!$SkipLog.IsPresent) { + # Sanitize exception message to prevent JSON parsing issues - remove characters that could interfere with JSON detection + $SanitizedMessage = $_.Exception.Message -replace '[{}\[\]]', '' + Write-LogMessage -API 'Standards' -tenant $TenantFilter -message "Error checking license capabilities for standard $StandardName`: $SanitizedMessage" -sev Info + Set-CIPPStandardsCompareField -FieldName "standards.$StandardName" -FieldValue "License Missing: Error checking license capabilities - $SanitizedMessage" -Tenant $TenantFilter + } + return $false + } +} diff --git a/Modules/CIPPCore/Public/Get-ApplicationInsightsQuery.ps1 b/Modules/CIPPCore/Public/Get-ApplicationInsightsQuery.ps1 new file mode 100644 index 000000000000..a1eee795710c --- /dev/null +++ b/Modules/CIPPCore/Public/Get-ApplicationInsightsQuery.ps1 @@ -0,0 +1,50 @@ +function Get-ApplicationInsightsQuery { + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string]$Query + ) + + if (-not $env:APPLICATIONINSIGHTS_CONNECTION_STRING -and -not $env:APPINSIGHTS_INSTRUMENTATIONKEY) { + throw 'Application Insights is not enabled for this instance.' + } + + $SubscriptionId = Get-CIPPAzFunctionAppSubId + if ($env:WEBSITE_SKU -ne 'FlexConsumption' -and $Owner -match '^(?[^+]+)\+(?[^-]+(?:-[^-]+)*?)(?:-[^-]+webspace(?:-Linux)?)?$') { + $RGName = $Matches.RGName + } else { + $RGName = $env:WEBSITE_RESOURCE_GROUP + } + $AppInsightsName = $env:WEBSITE_SITE_NAME + + $Body = @{ + 'query' = $Query + 'options' = @{'truncationMaxSize' = 67108864 } + 'maxRows' = 1001 + 'workspaceFilters' = @{'regions' = @() } + } | ConvertTo-Json -Depth 10 -Compress + + $AppInsightsQuery = 'subscriptions/{0}/resourceGroups/{1}/providers/microsoft.insights/components/{2}/query' -f $SubscriptionId, $RGName, $AppInsightsName + + $resource = 'https://api.loganalytics.io' + $Token = Get-CIPPAzIdentityToken -ResourceUrl $resource + + $headerParams = @{'Authorization' = "Bearer $Token" } + $logAnalyticsBaseURI = 'https://api.loganalytics.io/v1' + + $result = Invoke-RestMethod -Method POST -Uri "$($logAnalyticsBaseURI)/$AppInsightsQuery" -Headers $headerParams -Body $Body -ContentType 'application/json' -ErrorAction Stop + + # Format Result to PSObject + $headerRow = $null + $headerRow = $result.tables.columns | Select-Object name + $columnsCount = $headerRow.Count + $logData = foreach ($row in $result.tables.rows) { + $data = New-Object PSObject + for ($i = 0; $i -lt $columnsCount; $i++) { + $data | Add-Member -MemberType NoteProperty -Name $headerRow[$i].name -Value $row[$i] + } + $data + } + + return $logData +} diff --git a/Modules/CIPPCore/Public/Get-CIPPAuthentication.ps1 b/Modules/CIPPCore/Public/Get-CIPPAuthentication.ps1 index 6b5d2eb5b6e0..cc70d3e0a5b5 100644 --- a/Modules/CIPPCore/Public/Get-CIPPAuthentication.ps1 +++ b/Modules/CIPPCore/Public/Get-CIPPAuthentication.ps1 @@ -2,12 +2,13 @@ function Get-CIPPAuthentication { [CmdletBinding()] param ( - $APIName = 'Get Keyvault Authentication' + $APIName = 'Get Keyvault Authentication', + [switch]$Force ) $Variables = @('ApplicationID', 'ApplicationSecret', 'TenantID', 'RefreshToken') try { - if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true') { + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { $Table = Get-CIPPTable -tablename 'DevSecrets' $Secret = Get-AzDataTableEntity @Table -Filter "PartitionKey eq 'Secret' and RowKey eq 'Secret'" if (!$Secret) { @@ -19,53 +20,10 @@ function Get-CIPPAuthentication { } } Write-Host "Got secrets from dev storage. ApplicationID: $env:ApplicationID" - #Get list of tenants that have 'directTenant' set to true - #get directtenants directly from table, avoid get-tenants due to performance issues - $TenantsTable = Get-CippTable -tablename 'Tenants' - $Filter = "PartitionKey eq 'Tenants' and delegatedPrivilegeStatus eq 'directTenant'" - $tenants = Get-CIPPAzDataTableEntity @TenantsTable -Filter $Filter - if ($tenants) { - $tenants | ForEach-Object { - $secretname = $_.customerId -replace '-', '_' - if ($secret.$secretname) { - $name = $_.customerId - Set-Item -Path env:$name -Value $secret.$secretname -Force - } - } - } } else { - Write-Information 'Connecting to Azure' - Connect-AzAccount -Identity - $SubscriptionId = $env:WEBSITE_OWNER_NAME -split '\+' | Select-Object -First 1 - try { - $Context = Get-AzContext - if ($Context.Subscription) { - #Write-Information "Current context: $($Context | ConvertTo-Json)" - if ($Context.Subscription.Id -ne $SubscriptionId) { - Write-Information "Setting context to subscription $SubscriptionId" - $null = Set-AzContext -SubscriptionId $SubscriptionId - } - } - } catch { - Write-Information "ERROR: Could not set context to subscription $SubscriptionId." - } - $keyvaultname = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] - #Get list of tenants that have 'directTenant' set to true - $TenantsTable = Get-CippTable -tablename 'Tenants' - $Filter = "PartitionKey eq 'Tenants' and delegatedPrivilegeStatus eq 'directTenant'" - $tenants = Get-CIPPAzDataTableEntity @TenantsTable -Filter $Filter - if ($tenants) { - $tenants | ForEach-Object { - $name = $_.customerId - $secret = Get-AzKeyVaultSecret -VaultName $keyvaultname -Name $name -AsPlainText -ErrorAction Stop - if ($secret) { - Set-Item -Path env:$name -Value $secret -Force - } - } - } $Variables | ForEach-Object { - Set-Item -Path env:$_ -Value (Get-AzKeyVaultSecret -VaultName $keyvaultname -Name $_ -AsPlainText -ErrorAction Stop) -Force + Set-Item -Path env:$_ -Value (Get-CippKeyVaultSecret -VaultName $keyvaultname -Name $_ -AsPlainText -ErrorAction Stop) -Force } } $env:SetFromProfile = $true diff --git a/Modules/CIPPCore/Public/Get-CIPPBackup.ps1 b/Modules/CIPPCore/Public/Get-CIPPBackup.ps1 index 91d29ac8ec0f..4ce3d174b30a 100644 --- a/Modules/CIPPCore/Public/Get-CIPPBackup.ps1 +++ b/Modules/CIPPCore/Public/Get-CIPPBackup.ps1 @@ -6,26 +6,89 @@ function Get-CIPPBackup { [string]$Name, [switch]$NameOnly ) + Write-Host "Getting backup for $Type with TenantFilter $TenantFilter" $Table = Get-CippTable -tablename "$($Type)Backup" $Conditions = [System.Collections.Generic.List[string]]::new() $Conditions.Add("PartitionKey eq '$($Type)Backup'") - if ($TenantFilter) { - $Conditions.Add("TenantFilter eq '$($TenantFilter)'") - } if ($Name) { $Conditions.Add("RowKey eq '$($Name)' or OriginalEntityId eq '$($Name)'") } if ($NameOnly.IsPresent) { - $Table.Property = @('PartitionKey', 'RowKey', 'Timestamp', 'OriginalEntityId') + if ($Type -ne 'Scheduled') { + $Table.Property = @('RowKey', 'Timestamp', 'BackupIsBlob') + } else { + $Table.Property = @('RowKey', 'Timestamp') + } + } + + if ($TenantFilter -and $TenantFilter -ne 'AllTenants') { + $Conditions.Add("RowKey gt '$($TenantFilter)' and RowKey lt '$($TenantFilter)~'") } $Filter = $Conditions -join ' and ' $Table.Filter = $Filter - $Info = Get-CIPPAzDataTableEntity @Table - return $info + + if ($NameOnly.IsPresent) { + $Info = $Info | Where-Object { $_.RowKey -notmatch '-part[0-9]+$' } + } else { + if ($TenantFilter -and $TenantFilter -ne 'AllTenants') { + $Info = $Info | Where-Object { $_.TenantFilter -eq $TenantFilter } + } + } + + # Augment results with blob-link awareness and fetch blob content when needed + if (-not $NameOnly.IsPresent -and $Info) { + foreach ($item in $Info) { + $isBlobLink = $false + $blobPath = $null + if ($null -ne $item.PSObject.Properties['Backup']) { + $b = $item.Backup + if ($b -is [string] -and ($b -like 'https://*' -or $b -like 'http://*')) { + $isBlobLink = $true + $blobPath = $b + + # Fetch the actual backup content from blob storage + try { + # Extract container/blob path from URL + $resourcePath = $blobPath + if ($resourcePath -like '*:10000/*') { + # Azurite format: http://host:10000/devstoreaccount1/container/blob + $parts = $resourcePath -split ':10000/' + if ($parts.Count -gt 1) { + # Remove account name to get container/blob + $resourcePath = ($parts[1] -split '/', 2)[-1] + } + } elseif ($resourcePath -like '*blob.core.windows.net/*') { + # Azure Storage format: https://account.blob.core.windows.net/container/blob + $resourcePath = ($resourcePath -split '.blob.core.windows.net/', 2)[-1] + } + + # Download the blob content + $ConnectionString = $env:AzureWebJobsStorage + $blobResponse = New-CIPPAzStorageRequest -Service 'blob' -Resource $resourcePath -Method 'GET' -ConnectionString $ConnectionString + + if ($blobResponse -and $blobResponse.Bytes) { + $backupContent = [System.Text.Encoding]::UTF8.GetString($blobResponse.Bytes) + # Replace the URL with the actual backup content + $item.Backup = $backupContent + Write-Verbose "Successfully retrieved backup content from blob storage for $($item.RowKey)" + } else { + Write-Warning "Failed to retrieve backup content from blob storage for $($item.RowKey)" + } + } catch { + Write-Warning "Error fetching backup from blob storage: $($_.Exception.Message)" + # Leave the URL in place if we can't fetch the content + } + } + } + $item | Add-Member -NotePropertyName 'BackupIsBlobLink' -NotePropertyValue $isBlobLink -Force + $item | Add-Member -NotePropertyName 'BlobResourcePath' -NotePropertyValue $blobPath -Force + } + } + return $Info } diff --git a/Modules/CIPPCore/Public/Get-CIPPBitlockerKey.ps1 b/Modules/CIPPCore/Public/Get-CIPPBitlockerKey.ps1 index 291d5b06f63e..0b159e9807be 100644 --- a/Modules/CIPPCore/Public/Get-CIPPBitlockerKey.ps1 +++ b/Modules/CIPPCore/Public/Get-CIPPBitlockerKey.ps1 @@ -1,22 +1,62 @@ +<# +.SYNOPSIS + Retrieves BitLocker recovery keys for a managed device from Microsoft Graph API. -function Get-CIPPBitlockerKey { +.DESCRIPTION + This function queries the Microsoft Graph API to retrieve all BitLocker recovery keys + associated with a specified device. It handles cases where no key is found and provides appropriate + logging and error handling. +.PARAMETER Device + The ID of the device for which to retrieve BitLocker recovery keys. + +.PARAMETER TenantFilter + The tenant ID to filter the request to the appropriate tenant. + +.PARAMETER APIName + The name of the API operation for logging purposes. Defaults to 'Get BitLocker key'. + +.PARAMETER Headers + The headers to include in the request, typically used for authentication and logging. + +.OUTPUTS + Array of PSCustomObject with properties: + - resultText: Formatted string containing the key ID and key value + - copyField: The raw key value + - state: Status of the operation ('success') + + Or a string message if no keys are found. +#> + +function Get-CIPPBitLockerKey { [CmdletBinding()] param ( - $device, + $Device, $TenantFilter, $APIName = 'Get BitLocker key', $Headers ) try { - $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/informationProtection/bitlocker/recoveryKeys?`$filter=deviceId eq '$($device)'" -tenantid $TenantFilter | ForEach-Object { - (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/informationProtection/bitlocker/recoveryKeys/$($_.id)?`$select=key" -tenantid $TenantFilter).key + $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/informationProtection/bitlocker/recoveryKeys?`$filter=deviceId eq '$($Device)'" -tenantid $TenantFilter | + ForEach-Object { + $BitLockerKeyObject = (New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/informationProtection/bitlocker/recoveryKeys/$($_.id)?`$select=key" -tenantid $TenantFilter) + [PSCustomObject]@{ + resultText = "Id: $($_.id) Key: $($BitLockerKeyObject.key)" + copyField = $BitLockerKeyObject.key + state = 'success' + } + } + + if ($GraphRequest.Count -eq 0) { + Write-LogMessage -headers $Headers -API $APIName -message "No BitLocker recovery keys found for $($Device)" -Sev Info -tenant $TenantFilter + return "No BitLocker recovery keys found for $($Device)" } + Write-LogMessage -headers $Headers -API $APIName -message "Retrieved BitLocker recovery keys for $($Device)" -Sev Info -tenant $TenantFilter return $GraphRequest } catch { $ErrorMessage = Get-CippException -Exception $_ - $Result = "Could not retrieve BitLocker recovery key for $($device). Error: $($ErrorMessage.NormalizedError)" - Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + $Result = "Could not retrieve BitLocker recovery key for $($Device). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev Error -tenant $TenantFilter -LogData $ErrorMessage throw $Result } } diff --git a/Modules/CIPPCore/Public/Get-CIPPCalendarPermissionReport.ps1 b/Modules/CIPPCore/Public/Get-CIPPCalendarPermissionReport.ps1 new file mode 100644 index 000000000000..4f7bd038fea4 --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPCalendarPermissionReport.ps1 @@ -0,0 +1,235 @@ +function Get-CIPPCalendarPermissionReport { + <# + .SYNOPSIS + Generates a calendar permission report from the CIPP Reporting database + + .DESCRIPTION + Retrieves calendar permissions for a tenant and formats them into a report. + Default view shows permissions per calendar. Use -ByUser to pivot by user. + + .PARAMETER TenantFilter + The tenant to generate the report for + + .PARAMETER ByUser + If specified, groups results by user instead of by calendar + + .EXAMPLE + Get-CIPPCalendarPermissionReport -TenantFilter 'contoso.onmicrosoft.com' + Shows which users have access to each calendar + + .EXAMPLE + Get-CIPPCalendarPermissionReport -TenantFilter 'contoso.onmicrosoft.com' -ByUser + Shows what calendars each user has access to + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + [Parameter(Mandatory = $false)] + [switch]$ByUser + ) + + try { + Write-LogMessage -API 'CalendarPermissionReport' -tenant $TenantFilter -message 'Generating calendar permission report' -sev Info + + # Handle AllTenants + if ($TenantFilter -eq 'AllTenants') { + # Get all tenants that have calendar data + $AllCalendarItems = Get-CIPPDbItem -TenantFilter 'allTenants' -Type 'CalendarPermissions' + $Tenants = @($AllCalendarItems | Where-Object { $_.RowKey -ne 'CalendarPermissions-Count' } | Select-Object -ExpandProperty PartitionKey -Unique) + + $TenantList = Get-Tenants -IncludeErrors + $Tenants = $Tenants | Where-Object { $TenantList.defaultDomainName -contains $_ } + + $AllResults = [System.Collections.Generic.List[PSCustomObject]]::new() + foreach ($Tenant in $Tenants) { + try { + $TenantResults = Get-CIPPCalendarPermissionReport -TenantFilter $Tenant -ByUser:$ByUser + foreach ($Result in $TenantResults) { + # Add Tenant property to each result + $Result | Add-Member -NotePropertyName 'Tenant' -NotePropertyValue $Tenant -Force + $AllResults.Add($Result) + } + } catch { + Write-LogMessage -API 'CalendarPermissionReport' -tenant $Tenant -message "Failed to get report for tenant: $($_.Exception.Message)" -sev Warning + } + } + return $AllResults + } + + # Get mailboxes from reporting DB + $MailboxItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'Mailboxes' | Where-Object { $_.RowKey -ne 'Mailboxes-Count' } + if (-not $MailboxItems) { + throw 'No mailbox data found in reporting database. Sync the mailbox permissions first.' + } + + # Get the most recent mailbox cache timestamp + $MailboxCacheTimestamp = ($MailboxItems | Where-Object { $_.Timestamp } | Sort-Object Timestamp -Descending | Select-Object -First 1).Timestamp + + # Parse mailbox data and create lookup by UPN, ID, and ExternalDirectoryObjectId (case-insensitive) + $MailboxLookup = @{} + $MailboxByIdLookup = @{} + $MailboxByExternalIdLookup = @{} + foreach ($Item in $MailboxItems | Where-Object { $_.RowKey -ne 'Mailboxes-Count' }) { + $Mailbox = $Item.Data | ConvertFrom-Json + if ($Mailbox.UPN) { + $MailboxLookup[$Mailbox.UPN.ToLower()] = $Mailbox + } + if ($Mailbox.primarySmtpAddress) { + $MailboxLookup[$Mailbox.primarySmtpAddress.ToLower()] = $Mailbox + } + if ($Mailbox.Id) { + $MailboxByIdLookup[$Mailbox.Id] = $Mailbox + } + if ($Mailbox.ExternalDirectoryObjectId) { + $MailboxByExternalIdLookup[$Mailbox.ExternalDirectoryObjectId] = $Mailbox + } + } + + # Get calendar permissions from reporting DB + $PermissionItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'CalendarPermissions' + if (-not $PermissionItems) { + throw 'No calendar permission data found in reporting database. Run a scan first.' + } + + # Get the most recent permission cache timestamp + $PermissionCacheTimestamp = ($PermissionItems | Where-Object { $_.Timestamp } | Sort-Object Timestamp -Descending | Select-Object -First 1).Timestamp + + # Parse all permissions + $AllPermissions = [System.Collections.Generic.List[PSCustomObject]]::new() + foreach ($Item in $PermissionItems | Where-Object { $_.RowKey -ne 'CalendarPermissions-Count' }) { + $Permission = $Item.Data | ConvertFrom-Json + + # Skip Default and Anonymous permissions as they're standard and not typically relevant + if ($Permission.User -in @('Default', 'Anonymous', 'NT AUTHORITY\SELF')) { + continue + } + + # Extract the mailbox identifier from Identity (format: "mailbox-id:\Calendar" or "mailbox-upn:\Calendar") + # The Identity can contain either a GUID, UPN, or alias before the colon-backslash separator + $IdentityParts = $Permission.Identity -split ':\\' + if ($IdentityParts.Count -lt 1) { + Write-Verbose "Invalid Identity format: $($Permission.Identity)" + continue + } + $MailboxIdentifier = $IdentityParts[0] + + # Get mailbox info - try multiple match strategies + $Mailbox = $null + + # Try UPN/primarySmtpAddress lookup (case-insensitive) + $Mailbox = $MailboxLookup[$MailboxIdentifier.ToLower()] + + # If not found, try ExternalDirectoryObjectId lookup + if (-not $Mailbox) { + $Mailbox = $MailboxByExternalIdLookup[$MailboxIdentifier] + } + + # If not found, try ID lookup + if (-not $Mailbox) { + $Mailbox = $MailboxByIdLookup[$MailboxIdentifier] + } + + if (-not $Mailbox) { + Write-Verbose "No mailbox found for Identity: $MailboxIdentifier" + continue + } + + $AllPermissions.Add([PSCustomObject]@{ + MailboxUPN = if ($Mailbox.UPN) { $Mailbox.UPN } elseif ($Mailbox.primarySmtpAddress) { $Mailbox.primarySmtpAddress } else { $MailboxIdentifier } + MailboxDisplayName = $Mailbox.displayName + MailboxType = $Mailbox.recipientTypeDetails + User = $Permission.User + UserKey = if ($Permission.User -match '@') { $Permission.User.ToLower() } else { $Permission.User } + AccessRights = ($Permission.AccessRights -join ', ') + FolderName = $Permission.FolderName + }) + } + + if ($AllPermissions.Count -eq 0) { + Write-LogMessage -API 'CalendarPermissionReport' -tenant $TenantFilter -message 'No calendar permissions found (excluding Default/Anonymous)' -sev Debug + Write-Information -Message 'No calendar permissions found (excluding Default/Anonymous)' + return @() + } + + # Format results based on grouping preference + if ($ByUser) { + # Group by user - calculate which calendars each user has access to + # Use UserKey for grouping to handle case-insensitive email addresses + $Report = $AllPermissions | Group-Object -Property UserKey | ForEach-Object { + $UserKey = $_.Name + $UserDisplay = $_.Group[0].User # Use original User value for display + + # Look up the user's mailbox type using multi-strategy approach + $UserMailbox = $null + if ($UserDisplay) { + # Try UPN/primarySmtpAddress lookup (case-insensitive) + $UserMailbox = $MailboxLookup[$UserDisplay.ToLower()] + + # If not found, try ExternalDirectoryObjectId lookup + if (-not $UserMailbox) { + $UserMailbox = $MailboxByExternalIdLookup[$UserDisplay] + } + + # If not found, try ID lookup + if (-not $UserMailbox) { + $UserMailbox = $MailboxByIdLookup[$UserDisplay] + } + } + $UserMailboxType = if ($UserMailbox) { $UserMailbox.recipientTypeDetails } else { 'Unknown' } + + # Build detailed permissions list with calendar and access rights + $PermissionDetails = @($_.Group | ForEach-Object { + [PSCustomObject]@{ + Calendar = $_.MailboxDisplayName + CalendarUPN = $_.MailboxUPN + AccessRights = $_.AccessRights + } + }) + + [PSCustomObject]@{ + User = $UserDisplay + UserMailboxType = $UserMailboxType + CalendarCount = $_.Count + Permissions = $PermissionDetails + Tenant = $TenantFilter + MailboxCacheTimestamp = $MailboxCacheTimestamp + PermissionCacheTimestamp = $PermissionCacheTimestamp + } + } | Sort-Object User + } else { + # Default: Group by calendar + $Report = $AllPermissions | Group-Object -Property MailboxUPN | ForEach-Object { + $CalendarUPN = $_.Name + $CalendarInfo = $_.Group[0] + + # Build detailed permissions list with user and access rights + $PermissionDetails = @($_.Group | ForEach-Object { + [PSCustomObject]@{ + User = $_.User + AccessRights = $_.AccessRights + } + }) + + [PSCustomObject]@{ + CalendarUPN = $CalendarUPN + CalendarDisplayName = $CalendarInfo.MailboxDisplayName + CalendarType = $CalendarInfo.MailboxType + PermissionCount = $_.Count + Permissions = $PermissionDetails + Tenant = $TenantFilter + MailboxCacheTimestamp = $MailboxCacheTimestamp + PermissionCacheTimestamp = $PermissionCacheTimestamp + } + } | Sort-Object CalendarDisplayName + } + + Write-LogMessage -API 'CalendarPermissionReport' -tenant $TenantFilter -message "Generated report with $($Report.Count) entries" -sev Debug + return $Report + + } catch { + Write-LogMessage -API 'CalendarPermissionReport' -tenant $TenantFilter -message "Failed to generate calendar permission report: $($_.Exception.Message)" -sev Error -LogData (Get-CippException -Exception $_) + throw "Failed to generate calendar permission report: $($_.Exception.Message)" + } +} diff --git a/Modules/CIPPCore/Public/Get-CIPPDbItem.ps1 b/Modules/CIPPCore/Public/Get-CIPPDbItem.ps1 new file mode 100644 index 000000000000..9f324f5eaf3d --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPDbItem.ps1 @@ -0,0 +1,73 @@ +function Get-CIPPDbItem { + <# + .SYNOPSIS + Get specific items from the CIPP Reporting database + + .DESCRIPTION + Retrieves items from the CippReportingDB table using partition key (tenant) and type + + .PARAMETER TenantFilter + The tenant domain or GUID (partition key) + + .PARAMETER Type + The type of data to retrieve (used in row key filter) + + .PARAMETER CountsOnly + If specified, returns all count rows for the tenant + + .EXAMPLE + Get-CIPPDbItem -TenantFilter 'contoso.onmicrosoft.com' -Type 'Groups' + + .EXAMPLE + Get-CIPPDbItem -TenantFilter 'contoso.onmicrosoft.com' -CountsOnly + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false)] + [string]$TenantFilter, + + [Parameter(Mandatory = $false)] + [string]$Type, + + [Parameter(Mandatory = $false)] + [switch]$CountsOnly + ) + + try { + $Table = Get-CippTable -tablename 'CippReportingDB' + + if ($CountsOnly) { + $Conditions = [System.Collections.Generic.List[string]]::new() + if ($TenantFilter -ne 'allTenants') { + $Conditions.Add("PartitionKey eq '{0}'" -f $TenantFilter) + } + if ($Type) { + # Exact match for count row when type is specified + $Conditions.Add("RowKey eq '{0}-Count'" -f $Type) + } else { + # Filter by DataCount property to get only count rows (server-side filtering) + $Conditions.Add('DataCount ge 0') + } + $Filter = [string]::Join(' and ', $Conditions) + $Results = Get-CIPPAzDataTableEntity @Table -Filter $Filter -Property 'PartitionKey', 'RowKey', 'DataCount', 'Timestamp' + $Results = $Results | Select-Object PartitionKey, RowKey, DataCount, Timestamp + } else { + if (-not $Type) { + throw 'Type parameter is required when CountsOnly is not specified' + } + if ($TenantFilter -ne 'allTenants') { + $Filter = "PartitionKey eq '{0}' and RowKey ge '{1}-' and RowKey lt '{1}.'" -f $TenantFilter, $Type + } else { + $Filter = "RowKey ge '{0}-' and RowKey lt '{0}.'" -f $Type + } + $Results = Get-CIPPAzDataTableEntity @Table -Filter $Filter + } + + return $Results + + } catch { + Write-LogMessage -API 'CIPPDbItem' -tenant $TenantFilter -message "Failed to get items$(if ($Type) { " of type $Type" })$(if ($CountsOnly) { ' (counts only)' }): $($_.Exception.Message)" -sev Error + throw + } +} + diff --git a/Modules/CIPPCore/Public/Get-CIPPDomainAnalyser.ps1 b/Modules/CIPPCore/Public/Get-CIPPDomainAnalyser.ps1 index fc7fcd31ba6d..d201d8a5a41f 100644 --- a/Modules/CIPPCore/Public/Get-CIPPDomainAnalyser.ps1 +++ b/Modules/CIPPCore/Public/Get-CIPPDomainAnalyser.ps1 @@ -13,19 +13,21 @@ function Get-CIPPDomainAnalyser { Get-CIPPDomainAnalyser -TenantFilter 'AllTenants' #> [CmdletBinding()] - Param([string]$TenantFilter) + param([string]$TenantFilter) $DomainTable = Get-CIPPTable -Table 'Domains' # Get all the things #Transform the tenantFilter to the GUID. - $TenantFilter = (Get-Tenants -TenantFilter $tenantFilter).customerId if ($TenantFilter -ne 'AllTenants' -and ![string]::IsNullOrEmpty($TenantFilter)) { + $TenantFilter = (Get-Tenants -TenantFilter $tenantFilter).customerId $DomainTable.Filter = "TenantGUID eq '{0}'" -f $TenantFilter + } else { + $Tenants = Get-Tenants -IncludeErrors } - + $Domains = Get-CIPPAzDataTableEntity @DomainTable | Where-Object { $_.TenantGUID -in $Tenants.customerId -or $TenantFilter -eq $_.TenantGUID } try { # Extract json from table results - $Results = foreach ($DomainAnalyserResult in (Get-CIPPAzDataTableEntity @DomainTable).DomainAnalyser) { + $Results = foreach ($DomainAnalyserResult in ($Domains).DomainAnalyser) { try { if (![string]::IsNullOrEmpty($DomainAnalyserResult)) { $Object = $DomainAnalyserResult | ConvertFrom-Json -ErrorAction SilentlyContinue diff --git a/Modules/CIPPCore/Public/Get-CIPPDrift.ps1 b/Modules/CIPPCore/Public/Get-CIPPDrift.ps1 new file mode 100644 index 000000000000..f6cb38f81a04 --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPDrift.ps1 @@ -0,0 +1,394 @@ +function Get-CIPPDrift { + <# + .SYNOPSIS + Gets comprehensive drift information for a tenant including standards compliance and policy deviations + .DESCRIPTION + This function collects drift information by executing Get-CIPPTenantAlignment and comparing + tenant policies against standards templates. It identifies both standards deviations and + extra policies not defined in templates. + .PARAMETER TenantFilter + The tenant to get drift data for + .PARAMETER TemplateId + Optional specific template GUID to check drift for. If not specified, processes all templates. + .FUNCTIONALITY + Internal + .EXAMPLE + Get-CIPPDrift -TenantFilter "contoso.onmicrosoft.com" + .EXAMPLE + Get-CIPPDrift -TenantFilter "contoso.onmicrosoft.com" -TemplateId "12345-67890-abcdef" + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + [Parameter(Mandatory = $false)] + [string]$TemplateId, + + [Parameter(Mandatory = $false)] + [switch]$AllTenants + ) + + $IntuneCapable = Test-CIPPStandardLicense -StandardName 'IntuneTemplate_general' -TenantFilter $TenantFilter -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') + $ConditionalAccessCapable = Test-CIPPStandardLicense -StandardName 'ConditionalAccessTemplate_general' -TenantFilter $TenantFilter -RequiredCapabilities @('AAD_PREMIUM', 'AAD_PREMIUM_P2') + $IntuneTable = Get-CippTable -tablename 'templates' + + # Always load templates for display name resolution, even if tenant doesn't have licenses + $IntuneFilter = "PartitionKey eq 'IntuneTemplate'" + $RawIntuneTemplates = (Get-CIPPAzDataTableEntity @IntuneTable -Filter $IntuneFilter) + $AllIntuneTemplates = $RawIntuneTemplates | ForEach-Object { + try { + $JSONData = $_.JSON | ConvertFrom-Json -Depth 10 -ErrorAction SilentlyContinue + $data = $JSONData.RAWJson | ConvertFrom-Json -Depth 10 -ErrorAction SilentlyContinue + $data | Add-Member -NotePropertyName 'displayName' -NotePropertyValue $JSONData.Displayname -Force + $data | Add-Member -NotePropertyName 'description' -NotePropertyValue $JSONData.Description -Force + $data | Add-Member -NotePropertyName 'Type' -NotePropertyValue $JSONData.Type -Force + $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $_.RowKey -Force + $data + } catch { + # Skip invalid templates + } + } | Sort-Object -Property displayName + + # Load all CA templates + $CAFilter = "PartitionKey eq 'CATemplate'" + $RawCATemplates = (Get-CIPPAzDataTableEntity @IntuneTable -Filter $CAFilter) + $AllCATemplates = $RawCATemplates | ForEach-Object { + try { + $data = $_.JSON | ConvertFrom-Json -Depth 100 -ErrorAction SilentlyContinue + $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $_.RowKey -Force + $data + } catch { + # Skip invalid templates + } + } | Sort-Object -Property displayName + + try { + $AlignmentData = Get-CIPPTenantAlignment -TenantFilter $TenantFilter -TemplateId $TemplateId | Where-Object -Property standardType -EQ 'drift' + + if (-not $AlignmentData) { + Write-Warning "No alignment data found for tenant $TenantFilter" + return @() + } + + # Get existing drift states from the tenantDrift table + $DriftTable = Get-CippTable -tablename 'tenantDrift' + $DriftFilter = "PartitionKey eq '$TenantFilter'" + $ExistingDriftStates = @{} + try { + $DriftEntities = Get-CIPPAzDataTableEntity @DriftTable -Filter $DriftFilter + foreach ($Entity in $DriftEntities) { + $ExistingDriftStates[$Entity.StandardName] = $Entity + } + } catch { + Write-Warning "Failed to get existing drift states: $($_.Exception.Message)" + } + + $Results = [System.Collections.Generic.List[object]]::new() + foreach ($Alignment in $AlignmentData) { + # Initialize deviation collections + $StandardsDeviations = [System.Collections.Generic.List[object]]::new() + $PolicyDeviations = [System.Collections.Generic.List[object]]::new() + + # Process standards compliance deviations + if ($Alignment.ComparisonDetails) { + foreach ($ComparisonItem in $Alignment.ComparisonDetails) { + if ($ComparisonItem.Compliant -ne $true) { + $Status = if ($ExistingDriftStates.ContainsKey($ComparisonItem.StandardName)) { + $ExistingDriftStates[$ComparisonItem.StandardName].Status + } else { + 'New' + } + # Reset displayName and description for each deviation to prevent carryover from previous iterations + $displayName = $null + $standardDescription = $null + #if the $ComparisonItem.StandardName contains *IntuneTemplate*, then it's an Intune policy deviation, and we need to grab the correct displayname from the template table + if ($ComparisonItem.StandardName -like '*IntuneTemplate*') { + $CompareGuid = $ComparisonItem.StandardName.Split('.') | Select-Object -Last 1 + Write-Verbose "Extracted Intune GUID: $CompareGuid from $($ComparisonItem.StandardName)" + $Template = $AllIntuneTemplates | Where-Object { $_.GUID -eq "$CompareGuid" } + if ($Template) { + $displayName = $Template.displayName + $standardDescription = $Template.description + Write-Verbose "Found Intune template: $displayName" + } else { + Write-Warning "Intune template not found for GUID: $CompareGuid" + } + } + # Handle Conditional Access templates + if ($ComparisonItem.StandardName -like '*ConditionalAccessTemplate*') { + $CompareGuid = $ComparisonItem.StandardName.Split('.') | Select-Object -Last 1 + Write-Verbose "Extracted CA GUID: $CompareGuid from $($ComparisonItem.StandardName)" + $Template = $AllCATemplates | Where-Object { $_.GUID -eq "$CompareGuid" } + if ($Template) { + $displayName = $Template.displayName + $standardDescription = $Template.description + Write-Verbose "Found CA template: $displayName" + } else { + Write-Warning "CA template not found for GUID: $CompareGuid" + } + } + $reason = if ($ExistingDriftStates.ContainsKey($ComparisonItem.StandardName)) { $ExistingDriftStates[$ComparisonItem.StandardName].Reason } + $User = if ($ExistingDriftStates.ContainsKey($ComparisonItem.StandardName)) { $ExistingDriftStates[$ComparisonItem.StandardName].User } + $StandardsDeviations.Add([PSCustomObject]@{ + standardName = $ComparisonItem.StandardName + standardDisplayName = $displayName + standardDescription = $standardDescription + receivedValue = $ComparisonItem.StandardValue + state = 'current' + Status = $Status + Reason = $reason + lastChangedByUser = $User + LicenseAvailable = $ComparisonItem.LicenseAvailable + CurrentValue = $ComparisonItem.CurrentValue + ExpectedValue = $ComparisonItem.ExpectedValue + }) + } + } + } + + # Perform full policy collection + if ($IntuneCapable) { + # Always get live data when not in AllTenants mode + $IntuneRequests = @( + @{ + id = 'deviceAppManagement/managedAppPolicies' + url = 'deviceAppManagement/managedAppPolicies?$top=999' + method = 'GET' + } + @{ + id = 'deviceManagement/deviceCompliancePolicies' + url = 'deviceManagement/deviceCompliancePolicies?$top=999' + method = 'GET' + } + @{ + id = 'deviceManagement/groupPolicyConfigurations' + url = 'deviceManagement/groupPolicyConfigurations?$top=999' + method = 'GET' + } + @{ + id = 'deviceManagement/deviceConfigurations' + url = 'deviceManagement/deviceConfigurations?$top=999' + method = 'GET' + } + @{ + id = 'deviceManagement/configurationPolicies' + url = 'deviceManagement/configurationPolicies?$top=999' + method = 'GET' + } + @{ + id = 'deviceManagement/windowsDriverUpdateProfiles' + url = 'deviceManagement/windowsDriverUpdateProfiles?$top=200' + method = 'GET' + } + @{ + id = 'deviceManagement/windowsFeatureUpdateProfiles' + url = 'deviceManagement/windowsFeatureUpdateProfiles?$top=200' + method = 'GET' + } + @{ + id = 'deviceManagement/windowsQualityUpdatePolicies' + url = 'deviceManagement/windowsQualityUpdatePolicies?$top=200' + method = 'GET' + } + @{ + id = 'deviceManagement/windowsQualityUpdateProfiles' + url = 'deviceManagement/windowsQualityUpdateProfiles?$top=200' + method = 'GET' + } + ) + + $TenantIntunePolicies = [System.Collections.Generic.List[object]]::new() + + try { + $IntuneGraphRequest = New-GraphBulkRequest -Requests $IntuneRequests -tenantid $TenantFilter -asapp $true + + foreach ($Request in $IntuneGraphRequest) { + if ($Request.body.value) { + foreach ($Policy in $Request.body.value) { + $TenantIntunePolicies.Add([PSCustomObject]@{ + Type = $Request.id + Policy = $Policy + }) + } + } + } + } catch { + Write-Warning "Failed to get Intune policies: $($_.Exception.Message)" + } + } + # Get Conditional Access policies + if ($ConditionalAccessCapable) { + try { + $CARequests = @( + @{ + id = 'policies' + url = 'identity/conditionalAccess/policies?$top=999' + method = 'GET' + } + ) + $CAGraphRequest = New-GraphBulkRequest -Requests $CARequests -tenantid $TenantFilter -asapp $true + $TenantCAPolicies = ($CAGraphRequest | Where-Object { $_.id -eq 'policies' }).body.value + } catch { + Write-Warning "Failed to get Conditional Access policies: $($_.Exception.Message)" + $TenantCAPolicies = @() + } + } + + if ($Alignment.standardSettings) { + if ($Alignment.standardSettings.IntuneTemplate) { + $IntuneTemplateIds = [System.Collections.Generic.List[string]]::new() + foreach ($Template in $Alignment.standardSettings.IntuneTemplate) { + if ($Template.TemplateList.value) { + $IntuneTemplateIds.Add($Template.TemplateList.value) + } + if ($Template.'TemplateList-Tags'.rawData.templates) { + foreach ($TagTemplate in $Template.'TemplateList-Tags'.rawData.templates) { + $IntuneTemplateIds.Add($TagTemplate.GUID) + } + } + } + } + if ($Alignment.standardSettings.ConditionalAccessTemplate) { + $CATemplateIds = $Alignment.standardSettings.ConditionalAccessTemplate.TemplateList | ForEach-Object { $_.value } + } + } + + # Get actual CA templates from templates table + if ($CATemplateIds.Count -gt 0) { + try { + $TemplateCATemplates = $AllCATemplates | Where-Object { $_.GUID -in $CATemplateIds } + } catch { + Write-Warning "Failed to get CA templates: $($_.Exception.Message)" + } + } + + # Get actual Intune templates from templates table + if ($IntuneTemplateIds.Count -gt 0) { + try { + + $TemplateIntuneTemplates = $AllIntuneTemplates | Where-Object { $_.GUID -in $IntuneTemplateIds } + } catch { + Write-Warning "Failed to get Intune templates: $($_.Exception.Message)" + } + } + + # Check for extra Intune policies not in template + foreach ($TenantPolicy in $TenantIntunePolicies) { + $PolicyFound = $false + $tenantPolicy.policy | Add-Member -MemberType NoteProperty -Name 'URLName' -Value $TenantPolicy.Type -Force + $TenantPolicyName = if ($TenantPolicy.Policy.displayName) { $TenantPolicy.Policy.displayName } else { $TenantPolicy.Policy.name } + foreach ($TemplatePolicy in $TemplateIntuneTemplates) { + $TemplatePolicyName = if ($TemplatePolicy.displayName) { $TemplatePolicy.displayName } else { $TemplatePolicy.name } + + if ($TemplatePolicy.displayName -eq $TenantPolicy.Policy.displayName -or + $TemplatePolicy.name -eq $TenantPolicy.Policy.name -or + $TemplatePolicy.displayName -eq $TenantPolicy.Policy.name -or + $TemplatePolicy.name -eq $TenantPolicy.Policy.displayName) { + $PolicyFound = $true + break + } + } + + if (-not $PolicyFound) { + $PolicyKey = "IntuneTemplates.$($TenantPolicy.Policy.id)" + $Status = if ($ExistingDriftStates.ContainsKey($PolicyKey)) { + $ExistingDriftStates[$PolicyKey].Status + } else { + 'New' + } + $reason = if ($ExistingDriftStates.ContainsKey($PolicyKey)) { $ExistingDriftStates[$PolicyKey].Reason } + $User = if ($ExistingDriftStates.ContainsKey($PolicyKey)) { $ExistingDriftStates[$PolicyKey].User } + $PolicyDeviation = [PSCustomObject]@{ + standardName = $PolicyKey + standardDisplayName = "Intune - $TenantPolicyName" + expectedValue = 'This policy only exists in the tenant, not in the template.' + receivedValue = ($TenantPolicy.Policy | ConvertTo-Json -Depth 10 -Compress) + state = 'current' + Status = $Status + Reason = $reason + lastChangedByUser = $User + } + $PolicyDeviations.Add($PolicyDeviation) + } + } + + # Check for extra Conditional Access policies not in template + foreach ($TenantCAPolicy in $TenantCAPolicies) { + $PolicyFound = $false + + foreach ($TemplateCAPolicy in $TemplateCATemplates) { + if ($TemplateCAPolicy.displayName -eq $TenantCAPolicy.displayName) { + $PolicyFound = $true + break + } + } + + if (-not $PolicyFound) { + $PolicyKey = "ConditionalAccessTemplates.$($TenantCAPolicy.id)" + $Status = if ($ExistingDriftStates.ContainsKey($PolicyKey)) { + $ExistingDriftStates[$PolicyKey].Status + } else { + 'New' + } + $reason = if ($ExistingDriftStates.ContainsKey($PolicyKey)) { $ExistingDriftStates[$PolicyKey].Reason } + $User = if ($ExistingDriftStates.ContainsKey($PolicyKey)) { $ExistingDriftStates[$PolicyKey].User } + $PolicyDeviation = [PSCustomObject]@{ + standardName = $PolicyKey + standardDisplayName = "Conditional Access - $($TenantCAPolicy.displayName)" + expectedValue = 'This policy only exists in the tenant, not in the template.' + receivedValue = (ConvertTo-Json -InputObject $TenantCAPolicy -Depth 10 -Compress) + state = 'current' + Status = $Status + Reason = $reason + lastChangedByUser = $User + } + $PolicyDeviations.Add($PolicyDeviation) + } + } + + + # Combine all deviations and filter by status + $AllDeviations = [System.Collections.Generic.List[object]]::new() + $AllDeviations.AddRange($StandardsDeviations) + $AllDeviations.AddRange($PolicyDeviations) + + # Filter deviations by status for counting + $NewDeviations = $AllDeviations | Where-Object { $_.Status -eq 'New' } + $AcceptedDeviations = $AllDeviations | Where-Object { $_.Status -eq 'Accepted' } + $DeniedDeviations = $AllDeviations | Where-Object { $_.Status -like 'Denied*' } + $CustomerSpecificDeviations = $AllDeviations | Where-Object { $_.Status -eq 'CustomerSpecific' } + + # Current deviations are New + Denied (not accepted or customer specific) + $CurrentDeviations = $AllDeviations | Where-Object { $_.Status -in @('New', 'Denied') } + + $Result = [PSCustomObject]@{ + tenantFilter = $TenantFilter + standardName = $Alignment.StandardName + standardId = $Alignment.StandardId + alignmentScore = $Alignment.AlignmentScore + acceptedDeviationsCount = $AcceptedDeviations.Count + currentDeviationsCount = $CurrentDeviations.Count + deniedDeviationsCount = $DeniedDeviations.Count + customerSpecificDeviationsCount = $CustomerSpecificDeviations.Count + newDeviationsCount = $NewDeviations.Count + alignedCount = $Alignment.CompliantStandards + currentDeviations = @($CurrentDeviations) + acceptedDeviations = @($AcceptedDeviations) + customerSpecificDeviations = @($CustomerSpecificDeviations) + deniedDeviations = @($DeniedDeviations) + allDeviations = @($AllDeviations) + latestDataCollection = $Alignment.LatestDataCollection + driftSettings = $AlignmentData + } + + $Results.Add($Result) + } + + return @($Results) + + } catch { + Write-Error "Error getting drift data: $($_.Exception.Message)" + throw + } +} diff --git a/Modules/CIPPCore/Public/Get-CIPPFileVaultKey.ps1 b/Modules/CIPPCore/Public/Get-CIPPFileVaultKey.ps1 new file mode 100644 index 000000000000..bc1933d3bc2f --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPFileVaultKey.ps1 @@ -0,0 +1,63 @@ +<# +.SYNOPSIS + Retrieves the FileVault recovery key for a managed device from Microsoft Graph API. + +.DESCRIPTION + This function makes a request to the Microsoft Graph API to retrieve the FileVault recovery key + for a specified managed device. It handles cases where no key is found and provides appropriate + logging and error handling. + +.PARAMETER Device + The GUID of the managed device for which to retrieve the FileVault key. + +.PARAMETER TenantFilter + The tenant ID to filter the request to the appropriate tenant. + +.PARAMETER APIName + The name of the API operation for logging purposes. Defaults to 'Get FileVault key'. + +.PARAMETER Headers + The headers to include in the request, typically used for authentication and logging. + +.OUTPUTS + PSCustomObject with properties: + - resultText: Formatted string containing the key + - copyField: The raw key value + - state: Status of the operation ('success') + + Or a string message if no key is found. + +#> + +function Get-CIPPFileVaultKey { + [CmdletBinding()] + param ( + $Device, + $TenantFilter, + $APIName = 'Get FileVault key', + $Headers + ) + + try { + $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/managedDevices/$Device/getFileVaultKey" -tenantid $TenantFilter + + if ([string]::IsNullOrEmpty($GraphRequest)) { + $Result = "No FileVault recovery key found for $($Device)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev Info -tenant $TenantFilter + return $Result + } + + Write-LogMessage -headers $Headers -API $APIName -message "Retrieved FileVault recovery key for $($Device)" -Sev Info -tenant $TenantFilter + return [PSCustomObject]@{ + resultText = "Key: $($GraphRequest)" + copyField = $GraphRequest + state = 'success' + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Could not retrieve FileVault recovery key for $($Device). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev Error -tenant $TenantFilter -LogData $ErrorMessage + throw $Result + } + +} diff --git a/Modules/CIPPCore/Public/Get-CIPPIntunePolicy.ps1 b/Modules/CIPPCore/Public/Get-CIPPIntunePolicy.ps1 index 6ac755cb7910..ba0cbda8cfaa 100644 --- a/Modules/CIPPCore/Public/Get-CIPPIntunePolicy.ps1 +++ b/Modules/CIPPCore/Public/Get-CIPPIntunePolicy.ps1 @@ -13,32 +13,77 @@ function Get-CIPPIntunePolicy { switch ($TemplateType) { 'AppProtection' { $PlatformType = 'deviceAppManagement' - $TemplateTypeURL = 'androidManagedAppProtections' + $AndroidTemplateTypeURL = 'androidManagedAppProtections' + $iOSTemplateTypeURL = 'iosManagedAppProtections' + + # Define bulk request for both platforms - used by all scenarios + $BulkRequests = @( + @{ + id = 'AndroidPolicies' + url = "$PlatformType/$AndroidTemplateTypeURL" + method = 'GET' + }, + @{ + id = 'iOSPolicies' + url = "$PlatformType/$iOSTemplateTypeURL" + method = 'GET' + } + ) + $BulkResults = New-GraphBulkRequest -Requests $BulkRequests -tenantid $tenantFilter + + $androidPolicies = ($BulkResults | Where-Object { $_.id -eq 'AndroidPolicies' }).body.value + $iOSPolicies = ($BulkResults | Where-Object { $_.id -eq 'iOSPolicies' }).body.value if ($DisplayName) { - $policies = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter - $policy = $policies | Where-Object -Property displayName -EQ $DisplayName - if ($policy) { - $policyDetails = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($policy.id)')" -tenantid $tenantFilter - $policyJson = ConvertTo-Json -InputObject $policyDetails -Depth 100 -Compress - $policy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + $androidPolicy = $androidPolicies | Where-Object -Property displayName -EQ $DisplayName + $iOSPolicy = $iOSPolicies | Where-Object -Property displayName -EQ $DisplayName + + # Return the matching policy (Android or iOS) - using full data from bulk request + if ($androidPolicy) { + $policyJson = ConvertTo-Json -InputObject $androidPolicy -Depth 100 -Compress + $androidPolicy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + return $androidPolicy + } elseif ($iOSPolicy) { + $policyJson = ConvertTo-Json -InputObject $iOSPolicy -Depth 100 -Compress + $iOSPolicy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + return $iOSPolicy } - return $policy + return $null + } elseif ($PolicyId) { - $policy = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$PolicyId')" -tenantid $tenantFilter - if ($policy) { + $androidPolicy = $androidPolicies | Where-Object -Property id -EQ $PolicyId + $iOSPolicy = $iOSPolicies | Where-Object -Property id -EQ $PolicyId + + # Return the matching policy - using full data from bulk request + if ($androidPolicy) { + $policyJson = ConvertTo-Json -InputObject $androidPolicy -Depth 100 -Compress + $androidPolicy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + return $androidPolicy + } elseif ($iOSPolicy) { + $policyJson = ConvertTo-Json -InputObject $iOSPolicy -Depth 100 -Compress + $iOSPolicy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + return $iOSPolicy + } + return $null + + } else { + # Process all Android policies + foreach ($policy in $androidPolicies) { $policyJson = ConvertTo-Json -InputObject $policy -Depth 100 -Compress $policy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force } - return $policy - } else { - $policies = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter - foreach ($policy in $policies) { - $policyDetails = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($policy.id)')" -tenantid $tenantFilter - $policyJson = ConvertTo-Json -InputObject $policyDetails -Depth 100 -Compress + + # Process all iOS policies + foreach ($policy in $iOSPolicies) { + $policyJson = ConvertTo-Json -InputObject $policy -Depth 100 -Compress $policy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force } - return $policies + + # Combine and return all policies + $allPolicies = [System.Collections.Generic.List[object]]::new() + if ($androidPolicies) { $allPolicies.AddRange($androidPolicies) } + if ($iOSPolicies) { $allPolicies.AddRange($iOSPolicies) } + return $allPolicies } } 'deviceCompliancePolicies' { diff --git a/Modules/CIPPCore/Public/Get-CIPPLicenseOverview.ps1 b/Modules/CIPPCore/Public/Get-CIPPLicenseOverview.ps1 index 8a5cddf7a400..2866df56749f 100644 --- a/Modules/CIPPCore/Public/Get-CIPPLicenseOverview.ps1 +++ b/Modules/CIPPCore/Public/Get-CIPPLicenseOverview.ps1 @@ -18,6 +18,22 @@ function Get-CIPPLicenseOverview { url = 'directory/subscriptions' method = 'GET' } + @{ + id = 'licensedUsers' + url = "users?`$select=id,displayName,userPrincipalName,assignedLicenses&`$filter=assignedLicenses/`$count ne 0&`$count=true" + method = 'GET' + headers = @{ + 'ConsistencyLevel' = 'eventual' + } + } + @{ + id = 'licensedGroups' + url = "groups?`$select=id,displayName,assignedLicenses,mailEnabled,securityEnabled,groupTypes,onPremisesSyncEnabled&`$filter=assignedLicenses/`$count ne 0&`$count=true" + method = 'GET' + headers = @{ + 'ConsistencyLevel' = 'eventual' + } + } ) try { @@ -34,13 +50,58 @@ function Get-CIPPLicenseOverview { Tenant = $TenantFilter Licenses = $LicRequest } - Set-Location (Get-Item $PSScriptRoot).FullName - $ConvertTable = Import-Csv ConversionTable.csv + $ModuleBase = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase + $ConvertTable = Import-Csv (Join-Path $ModuleBase 'lib\data\ConversionTable.csv') $LicenseTable = Get-CIPPTable -TableName ExcludedLicenses $ExcludedSkuList = Get-CIPPAzDataTableEntity @LicenseTable - $GraphRequest = foreach ($singlereq in $RawGraphRequest) { - $skuid = $singlereq.Licenses - foreach ($sku in $skuid) { + + $AllLicensedUsers = @(($Results | Where-Object { $_.id -eq 'licensedUsers' }).body.value) + $UsersBySku = @{} + foreach ($User in $AllLicensedUsers) { + if (-not $User.assignedLicenses) { continue } # Skip users with no assigned licenses. Should not happens as the filter is applied, but just in case + $UserInfo = [PSCustomObject]@{ + displayName = [string]$User.displayName + userPrincipalName = [string]$User.userPrincipalName + id = [string]$User.id + } + + foreach ($AssignedLicense in $User.assignedLicenses) { + $LicenseSkuId = ([string]$AssignedLicense.skuId).ToLowerInvariant() + if ([string]::IsNullOrWhiteSpace($LicenseSkuId)) { continue } # Skip if SKU ID is null or whitespace. Should not happen but just in case + if (-not $UsersBySku.ContainsKey($LicenseSkuId)) { + $UsersBySku[$LicenseSkuId] = [System.Collections.Generic.List[object]]::new() + } + $UsersBySku[$LicenseSkuId].Add($UserInfo) + } + + } + + $AllLicensedGroups = @(($Results | Where-Object { $_.id -eq 'licensedGroups' }).body.value) + $GroupsBySku = @{} + foreach ($Group in $AllLicensedGroups) { + if (-not $Group.assignedLicenses) { continue } + $GroupInfo = [PSCustomObject]@{ + displayName = [string]$Group.displayName + calculatedGroupType = if ($Group.groupTypes -contains 'Unified') { 'Microsoft 365' } + elseif ($Group.mailEnabled -and $Group.securityEnabled) { 'Mail-Enabled Security' } + elseif (-not $Group.mailEnabled -and $Group.securityEnabled) { 'Security' } + elseif (([string]::isNullOrEmpty($Group.groupTypes)) -and ($Group.mailEnabled) -and (-not $Group.securityEnabled)) { 'Distribution List' } + id = [string]$Group.id + onPremisesSyncEnabled = [bool]$Group.onPremisesSyncEnabled + + } + foreach ($AssignedLicense in $Group.assignedLicenses) { + $LicenseSkuId = ([string]$AssignedLicense.skuId).ToLowerInvariant() + if ([string]::IsNullOrWhiteSpace($LicenseSkuId)) { continue } + if (-not $GroupsBySku.ContainsKey($LicenseSkuId)) { + $GroupsBySku[$LicenseSkuId] = [System.Collections.Generic.List[object]]::new() + } + $GroupsBySku[$LicenseSkuId].Add($GroupInfo) + } + } + $GraphRequest = foreach ($singleReq in $RawGraphRequest) { + $skuId = $singleReq.Licenses + foreach ($sku in $skuId) { if ($sku.skuId -in $ExcludedSkuList.GUID) { continue } $PrettyNameAdmin = $AdminPortalLicenses | Where-Object { $_.SkuId -eq $sku.skuId } | Select-Object -ExpandProperty Name $PrettyNameCSV = ($ConvertTable | Where-Object { $_.guid -eq $sku.skuid }).'Product_Display_Name' | Select-Object -Last 1 @@ -71,8 +132,9 @@ function Get-CIPPLicenseOverview { OCPSubscriptionId = $SubInfo.ocpSubscriptionId } } + $SkuKey = ([string]$sku.skuId).ToLowerInvariant() [pscustomobject]@{ - Tenant = [string]$singlereq.Tenant + Tenant = [string]$singleReq.Tenant License = [string]$PrettyName CountUsed = [string]"$($sku.consumedUnits)" CountAvailable = [string]$sku.prepaidUnits.enabled - $sku.consumedUnits @@ -80,12 +142,11 @@ function Get-CIPPLicenseOverview { skuId = [string]$sku.skuId skuPartNumber = [string]$PrettyName availableUnits = [string]$sku.prepaidUnits.enabled - $sku.consumedUnits - TermInfo = [string]($TermInfo | ConvertTo-Json -Depth 10 -Compress) - 'PartitionKey' = 'License' - 'RowKey' = "$($singlereq.Tenant) - $($sku.skuid)" + TermInfo = $TermInfo + AssignedUsers = ($UsersBySku.ContainsKey($SkuKey) ? @(($UsersBySku[$SkuKey])) : $null) + AssignedGroups = ($GroupsBySku.ContainsKey($SkuKey) ? @(($GroupsBySku[$SkuKey])) : $null) } } } return $GraphRequest } - diff --git a/Modules/CIPPCore/Public/Get-CIPPMFAState.ps1 b/Modules/CIPPCore/Public/Get-CIPPMFAState.ps1 index b3d8dd5b1c44..193a2b1ca532 100644 --- a/Modules/CIPPCore/Public/Get-CIPPMFAState.ps1 +++ b/Modules/CIPPCore/Public/Get-CIPPMFAState.ps1 @@ -1,4 +1,3 @@ - function Get-CIPPMFAState { [CmdletBinding()] param ( @@ -10,7 +9,7 @@ function Get-CIPPMFAState { $users = foreach ($user in (New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/users?$top=999&$select=id,UserPrincipalName,DisplayName,accountEnabled,assignedLicenses,perUserMfaState' -tenantid $TenantFilter)) { [PSCustomObject]@{ UserPrincipalName = $user.UserPrincipalName - isLicensed = [boolean]$user.assignedLicenses.skuid + isLicensed = [boolean]$user.assignedLicenses.Count accountEnabled = $user.accountEnabled DisplayName = $user.DisplayName ObjectId = $user.id @@ -19,19 +18,36 @@ function Get-CIPPMFAState { } $Errors = [System.Collections.Generic.List[object]]::new() + $SecureDefaultsState = $null + $CASuccess = $false + $CAError = $null + $PolicyTable = @{} + $AllUserPolicies = @() + $UserGroupMembership = @{} + $UserExcludeGroupMembership = @{} + $GroupNameLookup = @{} + $MFAIndex = @{} + try { $SecureDefaultsState = (New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/identitySecurityDefaultsEnforcementPolicy' -tenantid $TenantFilter ).IsEnabled } catch { Write-Host "Secure Defaults not available: $($_.Exception.Message)" $Errors.Add(@{Step = 'SecureDefaults'; Message = $_.Exception.Message }) + $SecureDefaultsState = $null } $CAState = [System.Collections.Generic.List[object]]::new() - Try { - $MFARegistration = (New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/reports/authenticationMethods/userRegistrationDetails' -tenantid $TenantFilter -asapp $true) + try { + $MFARegistration = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/reports/authenticationMethods/userRegistrationDetails?`$top=999&`$select=userPrincipalName,isMfaRegistered,isMfaCapable,methodsRegistered" -tenantid $TenantFilter -asapp $true) + foreach ($MFAEntry in $MFARegistration) { + if ($null -ne $MFAEntry.userPrincipalName) { + $MFAIndex[$MFAEntry.userPrincipalName] = $MFAEntry + } + } } catch { $CAState.Add('Not Licensed for Conditional Access') | Out-Null $MFARegistration = $null + $CAError = "MFA registration not available - licensing required for Conditional Access reporting" if ($_.Exception.Message -ne "Tenant is not a B2C tenant and doesn't have premium licenses") { $Errors.Add(@{Step = 'MFARegistration'; Message = $_.Exception.Message }) } @@ -39,27 +55,162 @@ function Get-CIPPMFAState { } if ($null -ne $MFARegistration) { - $CASuccess = $true try { - $CAPolicies = (New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/policies?$top=999' -tenantid $TenantFilter -ErrorAction Stop ) + $CASuccess = $true + $CAPolicies = (New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/policies?$top=999&$filter=state eq ''enabled''&$select=id,displayName,state,grantControls,conditions' -tenantid $TenantFilter -ErrorAction Stop -AsApp $true) + $PolicyTable = @{} + $AllUserPolicies = [System.Collections.Generic.List[object]]::new() + $GroupsToResolve = [System.Collections.Generic.HashSet[string]]::new() + $ExcludeGroupsToResolve = [System.Collections.Generic.HashSet[string]]::new() + foreach ($Policy in $CAPolicies) { - $IsMFAControl = $policy.grantControls.builtincontrols -eq 'mfa' -or $Policy.grantControls.authenticationStrength.requirementsSatisfied -eq 'mfa' -or $Policy.grantControls.customAuthenticationFactors -eq 'RequireDuoMfa' - $IsAllApps = [bool]($Policy.conditions.applications.includeApplications -eq 'All') - $IsAllUsers = [bool]($Policy.conditions.users.includeUsers -eq 'All') - $Platforms = $Policy.conditions.clientAppTypes - - if ($IsMFAControl) { - $CAState.Add([PSCustomObject]@{ - DisplayName = $Policy.displayName - State = $Policy.state - IncludedApps = $Policy.conditions.applications.includeApplications - IncludedUsers = $Policy.conditions.users.includeUsers - ExcludedUsers = $Policy.conditions.users.excludeUsers - IsAllApps = $IsAllApps - IsAllUsers = $IsAllUsers - Platforms = $Platforms + # Only include policies that require MFA + $RequiresMFA = $false + if ($Policy.grantControls.builtInControls -contains 'mfa') { + $RequiresMFA = $true + } + # Check for authentication strength requiring MFA + if ($Policy.grantControls.authenticationStrength.requirementsSatisfied -eq 'mfa') { + $RequiresMFA = $true + } + + if ($RequiresMFA) { + # Handle user assignments + if ($Policy.conditions.users.includeUsers -ne $null) { + # Check if "All" is included + if ($Policy.conditions.users.includeUsers -contains 'All') { + $AllUserPolicies.Add($Policy) + } else { + foreach ($UserId in $Policy.conditions.users.includeUsers) { + if (-not $PolicyTable.ContainsKey($UserId)) { + $PolicyTable[$UserId] = [System.Collections.Generic.List[object]]::new() + } + $PolicyTable[$UserId].Add($Policy) + } + } + } + + # Collect groups to resolve + if ($Policy.conditions.users.includeGroups -ne $null -and $Policy.conditions.users.includeGroups.Count -gt 0) { + foreach ($GroupId in $Policy.conditions.users.includeGroups) { + [void]$GroupsToResolve.Add($GroupId) + } + } + + # Collect exclude groups to resolve + if ($Policy.conditions.users.excludeGroups -ne $null -and $Policy.conditions.users.excludeGroups.Count -gt 0) { + foreach ($GroupId in $Policy.conditions.users.excludeGroups) { + [void]$ExcludeGroupsToResolve.Add($GroupId) + } + } + } + } + + # Resolve group memberships using bulk request + $UserGroupMembership = @{} + $UserExcludeGroupMembership = @{} + $GroupNameLookup = @{} + + if ($GroupsToResolve.Count -gt 0 -or $ExcludeGroupsToResolve.Count -gt 0) { + $GroupMemberRequests = [system.collections.generic.list[object]]::new() + $GroupDetailsRequests = [system.collections.generic.list[object]]::new() + Write-Information "Resolving group memberships for $($GroupsToResolve.Count) include groups and $($ExcludeGroupsToResolve.Count) exclude groups" + # Add include group requests + foreach ($GroupId in $GroupsToResolve) { + $GroupMemberRequests.Add(@{ + id = "include-$GroupId" + method = 'GET' + url = "groups/$($GroupId)/members?`$select=id" + }) + $GroupDetailsRequests.Add(@{ + id = "details-$GroupId" + method = 'GET' + url = "groups/$($GroupId)?`$select=id,displayName" + }) + } + + # Add exclude group requests + foreach ($GroupId in $ExcludeGroupsToResolve) { + $GroupMemberRequests.Add(@{ + id = "exclude-$GroupId" + method = 'GET' + url = "groups/$($GroupId)/members?`$select=id" + }) + $GroupDetailsRequests.Add(@{ + id = "details-$GroupId" + method = 'GET' + url = "groups/$($GroupId)?`$select=id,displayName" }) } + + $GroupMembersResults = New-GraphBulkRequest -Requests @($GroupMemberRequests) -tenantid $TenantFilter + $GroupDetailsResults = New-GraphBulkRequest -Requests @($GroupDetailsRequests) -tenantid $TenantFilter + + # Build group name lookup + $GroupNameLookup = @{} + foreach ($GroupDetail in $GroupDetailsResults) { + if ($GroupDetail.status -eq 200 -and $GroupDetail.body) { + $GroupId = $GroupDetail.id -replace '^details-', '' + $GroupNameLookup[$GroupId] = $GroupDetail.body.displayName + Write-Host "Added group to lookup: $GroupId = $($GroupDetail.body.displayName)" + } else { + Write-Host "Failed to get group details: $($GroupDetail.id) - Status: $($GroupDetail.status)" + } + } + + # Build mapping of user to groups they're in + foreach ($GroupResult in $GroupMembersResults) { + if ($GroupResult.status -eq 200 -and $GroupResult.body.value) { + $IsExclude = $GroupResult.id -like 'exclude-*' + $GroupId = $GroupResult.id -replace '^(include-|exclude-)', '' + + foreach ($Member in $GroupResult.body.value) { + if ($IsExclude) { + if (-not $UserExcludeGroupMembership.ContainsKey($Member.id)) { + $UserExcludeGroupMembership[$Member.id] = [System.Collections.Generic.HashSet[string]]::new() + } + [void]$UserExcludeGroupMembership[$Member.id].Add($GroupId) + } else { + if (-not $UserGroupMembership.ContainsKey($Member.id)) { + $UserGroupMembership[$Member.id] = [System.Collections.Generic.HashSet[string]]::new() + } + [void]$UserGroupMembership[$Member.id].Add($GroupId) + } + } + } + } + + # Now add policies to users based on group membership + foreach ($Policy in $CAPolicies | Where-Object { $_.conditions.users.includeGroups -ne $null -and $_.conditions.users.includeGroups.Count -gt 0 }) { + # Check if this policy requires MFA + $RequiresMFA = $false + if ($Policy.grantControls.builtInControls -contains 'mfa') { + $RequiresMFA = $true + } + if ($Policy.grantControls.authenticationStrength.requirementsSatisfied -eq 'mfa') { + $RequiresMFA = $true + } + + if ($RequiresMFA) { + foreach ($UserId in $UserGroupMembership.Keys) { + # Check if user is member of any of the policy's included groups + $IsMember = $false + foreach ($GroupId in $Policy.conditions.users.includeGroups) { + if ($UserGroupMembership[$UserId].Contains($GroupId)) { + $IsMember = $true + break + } + } + + if ($IsMember) { + if (-not $PolicyTable.ContainsKey($UserId)) { + $PolicyTable[$UserId] = [System.Collections.Generic.List[object]]::new() + } + $PolicyTable[$UserId].Add($Policy) + } + } + } + } } } catch { $CASuccess = $false @@ -70,23 +221,97 @@ function Get-CIPPMFAState { if ($CAState.count -eq 0) { $CAState.Add('None') | Out-Null } + $assignments = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments?`$expand=principal" -tenantid $TenantFilter -ErrorAction SilentlyContinue + + $adminObjectIds = $assignments | + Where-Object { + $_.principal.'@odata.type' -eq '#microsoft.graph.user' + } | + ForEach-Object { + $_.principal.id + } # Interact with query parameters or the body of the request. $GraphRequest = $Users | ForEach-Object { $UserCAState = [System.Collections.Generic.List[object]]::new() - foreach ($CA in $CAState) { - if ($CA.IncludedUsers -eq 'All' -or $CA.IncludedUsers -contains $_.ObjectId) { - $UserCAState.Add([PSCustomObject]@{ - DisplayName = $CA.DisplayName - UserIncluded = ($CA.ExcludedUsers -notcontains $_.ObjectId) - AllApps = $CA.IsAllApps - PolicyState = $CA.State - Platforms = $CA.Platforms -join ', ' - }) + + # Add policies that apply to this specific user + if ($PolicyTable.ContainsKey($_.ObjectId)) { + foreach ($Policy in $PolicyTable[$_.ObjectId]) { + # Check if user is excluded directly or via group + $IsExcluded = $Policy.conditions.users.excludeUsers -contains $_.ObjectId + $ExcludedViaGroup = $null + + # Check exclude groups + if (-not $IsExcluded -and $Policy.conditions.users.excludeGroups -ne $null -and $Policy.conditions.users.excludeGroups.Count -gt 0) { + if ($UserExcludeGroupMembership.ContainsKey($_.ObjectId)) { + foreach ($ExcludeGroupId in $Policy.conditions.users.excludeGroups) { + if ($UserExcludeGroupMembership[$_.ObjectId].Contains($ExcludeGroupId)) { + $IsExcluded = $true + $ExcludedViaGroup = if ($GroupNameLookup.ContainsKey($ExcludeGroupId)) { + $GroupNameLookup[$ExcludeGroupId] + } else { + $ExcludeGroupId + } + break + } + } + } + } + + $PolicyObj = [PSCustomObject]@{ + DisplayName = $Policy.displayName + UserIncluded = -not $IsExcluded + AllApps = ($Policy.conditions.applications.includeApplications -contains 'All') + PolicyState = $Policy.state + } + if ($ExcludedViaGroup) { + $PolicyObj | Add-Member -NotePropertyName 'ExcludedViaGroup' -NotePropertyValue $ExcludedViaGroup + } + $UserCAState.Add($PolicyObj) } } - if ($UserCAState.UserIncluded -eq $true -and $UserCAState.PolicyState -eq 'enabled') { - if ($UserCAState.UserIncluded -eq $true -and $UserCAState.PolicyState -eq 'enabled' -and $UserCAState.AllApps) { + + # Add policies that apply to all users + foreach ($Policy in $AllUserPolicies) { + # Check if user is excluded directly or via group + $IsExcluded = $Policy.conditions.users.excludeUsers -contains $_.ObjectId + $ExcludedViaGroup = $null + + # Check exclude groups + if (-not $IsExcluded -and $Policy.conditions.users.excludeGroups -ne $null -and $Policy.conditions.users.excludeGroups.Count -gt 0) { + if ($UserExcludeGroupMembership.ContainsKey($_.ObjectId)) { + foreach ($ExcludeGroupId in $Policy.conditions.users.excludeGroups) { + if ($UserExcludeGroupMembership[$_.ObjectId].Contains($ExcludeGroupId)) { + $IsExcluded = $true + $ExcludedViaGroup = if ($GroupNameLookup.ContainsKey($ExcludeGroupId)) { + $GroupNameLookup[$ExcludeGroupId] + } else { + $ExcludeGroupId + } + break + } + } + } + } + + # Always add the policy to show it applies (even if excluded) + $PolicyObj = [PSCustomObject]@{ + DisplayName = $Policy.displayName + UserIncluded = -not $IsExcluded + AllApps = ($Policy.conditions.applications.includeApplications -contains 'All') + PolicyState = $Policy.state + } + if ($ExcludedViaGroup) { + $PolicyObj | Add-Member -NotePropertyName 'ExcludedViaGroup' -NotePropertyValue $ExcludedViaGroup + } + $UserCAState.Add($PolicyObj) + } + + # Determine if user is covered by CA + if ($UserCAState.Count -gt 0 -and ($UserCAState | Where-Object { $_.UserIncluded -eq $true -and $_.PolicyState -eq 'enabled' })) { + $EnabledPolicies = $UserCAState | Where-Object { $_.UserIncluded -eq $true -and $_.PolicyState -eq 'enabled' } + if ($EnabledPolicies | Where-Object { $_.AllApps -eq $true }) { $CoveredByCA = 'Enforced - All Apps' } else { $CoveredByCA = 'Enforced - Specific Apps' @@ -98,10 +323,11 @@ function Get-CIPPMFAState { $CoveredByCA = 'Not Enforced' } } + $IsAdmin = if ($adminObjectIds -contains $_.ObjectId) { $true } else { $false } $PerUser = $_.PerUserMFAState - $MFARegUser = if ($null -eq ($MFARegistration | Where-Object -Property UserPrincipalName -EQ $_.userPrincipalName).isMFARegistered) { $false } else { ($MFARegistration | Where-Object -Property UserPrincipalName -EQ $_.userPrincipalName) } + $MFARegUser = $MFAIndex[$_.UserPrincipalName] [PSCustomObject]@{ Tenant = $TenantFilter @@ -111,12 +337,13 @@ function Get-CIPPMFAState { AccountEnabled = $_.accountEnabled PerUser = $PerUser isLicensed = $_.isLicensed - MFARegistration = $MFARegUser.isMFARegistered - MFACapable = $MFARegUser.isMFACapable - MFAMethods = $MFARegUser.methodsRegistered + MFARegistration = if ($null -ne $MFARegUser) { [bool]$MFARegUser.isMfaRegistered } else { $null } + MFACapable = if ($null -ne $MFARegUser) { [bool]$MFARegUser.isMfaCapable } else { $null } + MFAMethods = if ($null -ne $MFARegUser) { @($MFARegUser.methodsRegistered) } else { @() } CoveredByCA = $CoveredByCA - CAPolicies = $UserCAState + CAPolicies = @($UserCAState) CoveredBySD = $SecureDefaultsState + IsAdmin = $IsAdmin RowKey = [string]($_.UserPrincipalName).replace('#', '') PartitionKey = 'users' } diff --git a/Modules/CIPPCore/Public/Get-CIPPMFAStateReport.ps1 b/Modules/CIPPCore/Public/Get-CIPPMFAStateReport.ps1 new file mode 100644 index 000000000000..89815560e573 --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPMFAStateReport.ps1 @@ -0,0 +1,81 @@ +function Get-CIPPMFAStateReport { + <# + .SYNOPSIS + Generates an MFA state report from the CIPP Reporting database + + .DESCRIPTION + Retrieves MFA state data for a tenant from the reporting database + + .PARAMETER TenantFilter + The tenant to generate the report for + + .EXAMPLE + Get-CIPPMFAStateReport -TenantFilter 'contoso.onmicrosoft.com' + Gets MFA state for all users in the tenant + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + + # Handle AllTenants + if ($TenantFilter -eq 'AllTenants') { + # Get all tenants that have MFA data + $AllMFAItems = Get-CIPPDbItem -TenantFilter 'allTenants' -Type 'MFAState' + $Tenants = @($AllMFAItems | Where-Object { $_.RowKey -ne 'MFAState-Count' } | Select-Object -ExpandProperty PartitionKey -Unique) + + $TenantList = Get-Tenants -IncludeErrors + $Tenants = $Tenants | Where-Object { $TenantList.defaultDomainName -contains $_ } + + $AllResults = [System.Collections.Generic.List[PSCustomObject]]::new() + foreach ($Tenant in $Tenants) { + try { + $TenantResults = Get-CIPPMFAStateReport -TenantFilter $Tenant + foreach ($Result in $TenantResults) { + # Add Tenant property to each result + $Result | Add-Member -NotePropertyName 'Tenant' -NotePropertyValue $Tenant -Force + $AllResults.Add($Result) + } + } catch { + Write-LogMessage -API 'MFAStateReport' -tenant $Tenant -message "Failed to get report for tenant: $($_.Exception.Message)" -sev Warning + } + } + return $AllResults + } + + # Get MFA state from reporting DB + $MFAItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'MFAState' | Where-Object { $_.RowKey -ne 'MFAState-Count' } + if (-not $MFAItems) { + throw 'No MFA state data found in reporting database. Sync the report data first.' + } + # Get the most recent cache timestamp + $CacheTimestamp = ($MFAItems | Where-Object { $_.Timestamp } | Sort-Object Timestamp -Descending | Select-Object -First 1).Timestamp + # Parse MFA state data + $AllMFAState = [System.Collections.Generic.List[PSCustomObject]]::new() + foreach ($Item in $MFAItems | Where-Object { $_.RowKey -ne 'MFAState-Count' }) { + $MFAUser = $Item.Data | ConvertFrom-Json + + # Parse nested JSON properties if they're strings + if ($MFAUser.CAPolicies -is [string]) { + $MFAUser.CAPolicies = try { $MFAUser.CAPolicies | ConvertFrom-Json } catch { $MFAUser.CAPolicies } + } + if ($MFAUser.MFAMethods -is [string]) { + $MFAUser.MFAMethods = try { $MFAUser.MFAMethods | ConvertFrom-Json } catch { $MFAUser.MFAMethods } + } + + # Add cache timestamp + $MFAUser | Add-Member -NotePropertyName 'CacheTimestamp' -NotePropertyValue $CacheTimestamp -Force + + $AllMFAState.Add($MFAUser) + } + + return $AllMFAState | Sort-Object -Property DisplayName + + } catch { + Write-LogMessage -API 'MFAStateReport' -tenant $TenantFilter -message "Failed to generate MFA state report: $($_.Exception.Message)" -sev Error + throw + } +} diff --git a/Modules/CIPPCore/Public/Get-CIPPMailboxPermissionReport.ps1 b/Modules/CIPPCore/Public/Get-CIPPMailboxPermissionReport.ps1 new file mode 100644 index 000000000000..389dad4ddd1d --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPMailboxPermissionReport.ps1 @@ -0,0 +1,229 @@ +function Get-CIPPMailboxPermissionReport { + <# + .SYNOPSIS + Generates a mailbox permission report from the CIPP Reporting database + + .DESCRIPTION + Retrieves mailbox permissions for a tenant and formats them into a report. + Default view shows permissions per mailbox. Use -ByUser to pivot by user. + + .PARAMETER TenantFilter + The tenant to generate the report for + + .PARAMETER ByUser + If specified, groups results by user instead of by mailbox + + .EXAMPLE + Get-CIPPMailboxPermissionReport -TenantFilter 'contoso.onmicrosoft.com' + Shows which users have access to each mailbox + + .EXAMPLE + Get-CIPPMailboxPermissionReport -TenantFilter 'contoso.onmicrosoft.com' -ByUser + Shows what mailboxes each user has access to + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + [Parameter(Mandatory = $false)] + [switch]$ByUser + ) + + try { + Write-LogMessage -API 'MailboxPermissionReport' -tenant $TenantFilter -message 'Generating mailbox permission report' -sev Info + + # Handle AllTenants + if ($TenantFilter -eq 'AllTenants') { + # Get all tenants that have mailbox data + $AllMailboxItems = Get-CIPPDbItem -TenantFilter 'allTenants' -Type 'Mailboxes' + $Tenants = @($AllMailboxItems | Where-Object { $_.RowKey -ne 'Mailboxes-Count' } | Select-Object -ExpandProperty PartitionKey -Unique) + + $TenantList = Get-Tenants -IncludeErrors + $Tenants = $Tenants | Where-Object { $TenantList.defaultDomainName -contains $_ } + + $AllResults = [System.Collections.Generic.List[PSCustomObject]]::new() + foreach ($Tenant in $Tenants) { + try { + $TenantResults = Get-CIPPMailboxPermissionReport -TenantFilter $Tenant -ByUser:$ByUser + foreach ($Result in $TenantResults) { + # Add Tenant property to each result + $Result | Add-Member -NotePropertyName 'Tenant' -NotePropertyValue $Tenant -Force + $AllResults.Add($Result) + } + } catch { + Write-LogMessage -API 'MailboxPermissionReport' -tenant $Tenant -message "Failed to get report for tenant: $($_.Exception.Message)" -sev Warning + } + } + return $AllResults + } + + # Get mailboxes from reporting DB + $MailboxItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'Mailboxes' | Where-Object { $_.RowKey -ne 'Mailboxes-Count' } + if (-not $MailboxItems) { + throw 'No mailbox data found in reporting database. Sync the mailbox permissions first. ' + } + + # Get the most recent mailbox cache timestamp + $MailboxCacheTimestamp = ($MailboxItems | Where-Object { $_.Timestamp } | Sort-Object Timestamp -Descending | Select-Object -First 1).Timestamp + + # Parse mailbox data and create lookup by UPN, ID, and ExternalDirectoryObjectId (case-insensitive) + $MailboxLookup = @{} + $MailboxByIdLookup = @{} + $MailboxByExternalIdLookup = @{} + foreach ($Item in $MailboxItems | Where-Object { $_.RowKey -ne 'Mailboxes-Count' }) { + $Mailbox = $Item.Data | ConvertFrom-Json + if ($Mailbox.UPN) { + $MailboxLookup[$Mailbox.UPN.ToLower()] = $Mailbox + } + if ($Mailbox.primarySmtpAddress) { + $MailboxLookup[$Mailbox.primarySmtpAddress.ToLower()] = $Mailbox + } + if ($Mailbox.Id) { + $MailboxByIdLookup[$Mailbox.Id] = $Mailbox + } + if ($Mailbox.ExternalDirectoryObjectId) { + $MailboxByExternalIdLookup[$Mailbox.ExternalDirectoryObjectId] = $Mailbox + } + } + + # Get mailbox permissions from reporting DB + $PermissionItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'MailboxPermissions' + if (-not $PermissionItems) { + throw 'No mailbox permission data found in reporting database. Run a scan first.' + } + + # Get the most recent permission cache timestamp + $PermissionCacheTimestamp = ($PermissionItems | Where-Object { $_.Timestamp } | Sort-Object Timestamp -Descending | Select-Object -First 1).Timestamp + + # Parse all permissions + $AllPermissions = [System.Collections.Generic.List[PSCustomObject]]::new() + foreach ($Item in $PermissionItems | Where-Object { $_.RowKey -ne 'MailboxPermissions-Count' }) { + $Permissions = $Item.Data | ConvertFrom-Json + foreach ($Permission in $Permissions) { + # Skip SELF permissions and inherited deny permissions + if ($Permission.User -eq 'NT AUTHORITY\SELF' -or $Permission.Deny -eq $true) { + continue + } + + # Get mailbox info - try multiple match strategies like CustomDataSync does + $Mailbox = $null + if ($Permission.Identity) { + # Try UPN/primarySmtpAddress lookup (case-insensitive) + $Mailbox = $MailboxLookup[$Permission.Identity.ToLower()] + + # If not found, try ExternalDirectoryObjectId lookup + if (-not $Mailbox) { + $Mailbox = $MailboxByExternalIdLookup[$Permission.Identity] + } + + # If not found, try ID lookup + if (-not $Mailbox) { + $Mailbox = $MailboxByIdLookup[$Permission.Identity] + } + } + + if (-not $Mailbox) { + Write-Verbose "No mailbox found for Identity: $($Permission.Identity)" + continue + } + + $AllPermissions.Add([PSCustomObject]@{ + MailboxUPN = if ($Mailbox.UPN) { $Mailbox.UPN } elseif ($Mailbox.primarySmtpAddress) { $Mailbox.primarySmtpAddress } else { $Permission.Identity } + MailboxDisplayName = $Mailbox.displayName + MailboxType = $Mailbox.recipientTypeDetails + User = $Permission.User + UserKey = if ($Permission.User -match '@') { $Permission.User.ToLower() } else { $Permission.User } + AccessRights = ($Permission.AccessRights -join ', ') + IsInherited = $Permission.IsInherited + Deny = $Permission.Deny + }) + } + } + + if ($AllPermissions.Count -eq 0) { + Write-LogMessage -API 'MailboxPermissionReport' -tenant $TenantFilter -message 'No mailbox permissions found (excluding SELF)' -sev Debug + Write-Information -Message 'No mailbox permissions found (excluding SELF)' + return @() + } + + # Format results based on grouping preference + if ($ByUser) { + # Group by user - calculate which mailboxes each user has access to + # Use UserKey for grouping to handle case-insensitive email addresses + $Report = $AllPermissions | Group-Object -Property UserKey | ForEach-Object { + $UserKey = $_.Name + $UserDisplay = $_.Group[0].User # Use original User value for display + + # Look up the user's mailbox type using multi-strategy approach + $UserMailbox = $null + if ($UserDisplay) { + # Try UPN/primarySmtpAddress lookup (case-insensitive) + $UserMailbox = $MailboxLookup[$UserDisplay.ToLower()] + + # If not found, try ExternalDirectoryObjectId lookup + if (-not $UserMailbox) { + $UserMailbox = $MailboxByExternalIdLookup[$UserDisplay] + } + + # If not found, try ID lookup + if (-not $UserMailbox) { + $UserMailbox = $MailboxByIdLookup[$UserDisplay] + } + } + $UserMailboxType = if ($UserMailbox) { $UserMailbox.recipientTypeDetails } else { 'Unknown' } + + # Build detailed permissions list with mailbox and access rights + $PermissionDetails = @($_.Group | ForEach-Object { + [PSCustomObject]@{ + Mailbox = $_.MailboxDisplayName + MailboxUPN = $_.MailboxUPN + AccessRights = $_.AccessRights + } + }) + + [PSCustomObject]@{ + User = $UserDisplay + UserMailboxType = $UserMailboxType + MailboxCount = $_.Count + Permissions = $PermissionDetails + Tenant = $TenantFilter + MailboxCacheTimestamp = $MailboxCacheTimestamp + PermissionCacheTimestamp = $PermissionCacheTimestamp + } + } | Sort-Object User + } else { + # Default: Group by mailbox + $Report = $AllPermissions | Group-Object -Property MailboxUPN | ForEach-Object { + $MailboxUPN = $_.Name + $MailboxInfo = $_.Group[0] + + # Build detailed permissions list with user and access rights + $PermissionDetails = @($_.Group | ForEach-Object { + [PSCustomObject]@{ + User = $_.User + AccessRights = $_.AccessRights + } + }) + + [PSCustomObject]@{ + MailboxUPN = $MailboxUPN + MailboxDisplayName = $MailboxInfo.MailboxDisplayName + MailboxType = $MailboxInfo.MailboxType + PermissionCount = $_.Count + Permissions = $PermissionDetails + Tenant = $TenantFilter + MailboxCacheTimestamp = $MailboxCacheTimestamp + PermissionCacheTimestamp = $PermissionCacheTimestamp + } + } | Sort-Object MailboxDisplayName + } + + Write-LogMessage -API 'MailboxPermissionReport' -tenant $TenantFilter -message "Generated report with $($Report.Count) entries" -sev Debug + return $Report + + } catch { + Write-LogMessage -API 'MailboxPermissionReport' -tenant $TenantFilter -message "Failed to generate mailbox permission report: $($_.Exception.Message)" -sev Error -LogData (Get-CippException -Exception $_) + throw "Failed to generate mailbox permission report: $($_.Exception.Message)" + } +} diff --git a/Modules/CIPPCore/Public/Get-CIPPSPOTenant.ps1 b/Modules/CIPPCore/Public/Get-CIPPSPOTenant.ps1 index 0435eabdaf13..27fc292c63fa 100644 --- a/Modules/CIPPCore/Public/Get-CIPPSPOTenant.ps1 +++ b/Modules/CIPPCore/Public/Get-CIPPSPOTenant.ps1 @@ -1,9 +1,10 @@ function Get-CIPPSPOTenant { [CmdletBinding()] - Param( + param( [Parameter(Mandatory = $true)] [string]$TenantFilter, - [string]$SharepointPrefix + [string]$SharepointPrefix, + [switch]$SkipCache ) if (!$SharepointPrefix) { @@ -16,6 +17,16 @@ function Get-CIPPSPOTenant { $AdminUrl = "https://$($tenantName)-admin.sharepoint.com" } + $Table = Get-CIPPTable -tablename 'cachespotenant' + $Filter = "PartitionKey eq 'Tenant' and RowKey eq '$TenantFilter' and Timestamp gt datetime'$( (Get-Date).AddHours(-1).ToString('yyyy-MM-ddTHH:mm:ssZ') )'" + if (!$SkipCache.IsPresent) { + $CachedTenant = Get-CIPPAzDataTableEntity @Table -Filter $Filter + if ($CachedTenant -and (Test-Json $CachedTenant.JSON)) { + $Results = $CachedTenant.JSON | ConvertFrom-Json + return $Results + } + } + # Query tenant settings $XML = @' @@ -23,7 +34,17 @@ function Get-CIPPSPOTenant { $AdditionalHeaders = @{ 'Accept' = 'application/json;odata=verbose' } + $Results = New-GraphPostRequest -scope "$($AdminUrl)/.default" -tenantid $TenantFilter -Uri "$($SharePointInfo.AdminUrl)/_vti_bin/client.svc/ProcessQuery" -Type POST -Body $XML -ContentType 'text/xml' -AddedHeaders $AdditionalHeaders - $Results | Select-Object -Last 1 *, @{n = 'SharepointPrefix'; e = { $tenantName } }, @{n = 'TenantFilter'; e = { $TenantFilter } } + $Results = $Results | Select-Object -Last 1 *, @{n = 'SharepointPrefix'; e = { $tenantName } }, @{n = 'TenantFilter'; e = { $TenantFilter } } + + # Cache result + $Entity = @{ + PartitionKey = 'Tenant' + RowKey = $TenantFilter + JSON = [string]($Results | ConvertTo-Json -Depth 10 -Compress) + } + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force + return $Results } diff --git a/Modules/CIPPCore/Public/Get-CIPPTenantCapabilities.ps1 b/Modules/CIPPCore/Public/Get-CIPPTenantCapabilities.ps1 index 5b44f04737e6..cc743b6b2893 100644 --- a/Modules/CIPPCore/Public/Get-CIPPTenantCapabilities.ps1 +++ b/Modules/CIPPCore/Public/Get-CIPPTenantCapabilities.ps1 @@ -6,13 +6,25 @@ function Get-CIPPTenantCapabilities { $APIName = 'Get Tenant Capabilities', $Headers ) - - $Org = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/organization' -tenantid $TenantFilter - $Plans = $Org.assignedPlans | Where-Object { $_.capabilityStatus -eq 'Enabled' } | Sort-Object -Property service -Unique | Select-Object capabilityStatus, service - + $ConfigTable = Get-CIPPTable -TableName 'CacheCapabilities' + $datetime = (Get-Date).AddDays(-1).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + $ConfigEntries = Get-CIPPAzDataTableEntity @ConfigTable -Filter "RowKey eq '$TenantFilter' and PartitionKey eq 'Capabilities' and Timestamp ge datetime'$datetime'" + if ($ConfigEntries) { + $Org = $ConfigEntries.JSON | ConvertFrom-Json + } else { + $Org = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/subscribedSkus' -tenantid $TenantFilter + # Save the capabilities to the cache table + $Entity = @{ + PartitionKey = 'Capabilities' + RowKey = $TenantFilter + JSON = "$($Org | ConvertTo-Json -Compress -Depth 10)" + } + Add-CIPPAzDataTableEntity @ConfigTable -Entity $Entity -Force + } + $Plans = $Org.servicePlans | Where-Object { $_.provisioningStatus -ne 'disabled' } | Sort-Object -Property serviceplanName -Unique | Select-Object servicePlanName, provisioningStatus $Results = @{} foreach ($Plan in $Plans) { - $Results."$($Plan.service)" = $Plan.capabilityStatus -eq 'Enabled' + $Results."$($Plan.servicePlanName)" = $Plan.provisioningStatus -ne 'disabled' } [PSCustomObject]$Results } diff --git a/Modules/CIPPCore/Public/Get-CIPPTestResults.ps1 b/Modules/CIPPCore/Public/Get-CIPPTestResults.ps1 new file mode 100644 index 000000000000..312236c81c4d --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPTestResults.ps1 @@ -0,0 +1,44 @@ +function Get-CIPPTestResults { + <# + .SYNOPSIS + Retrieves test results and tenant counts for a specific tenant + + .PARAMETER TenantFilter + The tenant domain or GUID to retrieve results for + + .EXAMPLE + Get-CIPPTestResults -TenantFilter 'contoso.onmicrosoft.com' + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + $Table = Get-CippTable -tablename 'CippTestResults' + $Filter = "PartitionKey eq '{0}'" -f $TenantFilter + $TestResults = Get-CIPPAzDataTableEntity @Table -Filter $Filter + + $CountData = Get-CIPPDbItem -TenantFilter $TenantFilter -CountsOnly + + $TenantCounts = @{} + $LatestTimestamp = $null + + foreach ($CountRow in $CountData) { + $TypeName = $CountRow.RowKey -replace '-Count$', '' + $TenantCounts[$TypeName] = $CountRow.DataCount + $LatestTimestamp = $CountRow.Timestamp + } + + return [PSCustomObject]@{ + TestResults = $TestResults + TenantCounts = $TenantCounts + LatestReportTimeStamp = $LatestTimestamp + } + + } catch { + Write-LogMessage -API 'CIPPTestResults' -tenant $TenantFilter -message "Failed to get test results: $($_.Exception.Message)" -sev Error + throw + } +} diff --git a/Modules/CIPPCore/Public/Get-CIPPTextReplacement.ps1 b/Modules/CIPPCore/Public/Get-CIPPTextReplacement.ps1 index 28ad7d8a7343..a86ce4751645 100644 --- a/Modules/CIPPCore/Public/Get-CIPPTextReplacement.ps1 +++ b/Modules/CIPPCore/Public/Get-CIPPTextReplacement.ps1 @@ -13,7 +13,8 @@ function Get-CIPPTextReplacement { #> param ( [string]$TenantFilter, - $Text + $Text, + [switch]$EscapeForJson ) if ($Text -isnot [string]) { return $Text @@ -26,6 +27,7 @@ function Get-CIPPTextReplacement { '%temp%', '%tenantid%', '%tenantfilter%', + '%initialdomain%', '%tenantname%', '%partnertenantid%', '%samappid%', @@ -35,9 +37,13 @@ function Get-CIPPTextReplacement { '%windir%', '%programfiles%', '%programfiles(x86)%', - '%programdata%' + '%programdata%', + '%cippuserschema%', + '%cippurl%', + '%defaultdomain%', + '%organizationid%' ) - + $Tenant = Get-Tenants -TenantFilter $TenantFilter $CustomerId = $Tenant.customerId @@ -50,14 +56,29 @@ function Get-CIPPTextReplacement { $Vars = @{} if ($GlobalMap) { foreach ($Var in $GlobalMap) { + if ($EscapeForJson.IsPresent) { + # Escape quotes for JSON if not already escaped + $Var.Value = $Var.Value -replace '(? + [CmdletBinding()] + param( + [Parameter(Mandatory = $false)] + [string]$VaultName, + + [Parameter(Mandatory = $true)] + [string]$Name, + + [Parameter(Mandatory = $false)] + [switch]$AsPlainText + ) + + try { + # Derive vault name if not provided + if (-not $VaultName) { + if ($env:WEBSITE_DEPLOYMENT_ID) { + $VaultName = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] + } else { + throw 'VaultName not provided and WEBSITE_DEPLOYMENT_ID environment variable not set' + } + } + + # Get access token for Key Vault + $token = Get-CIPPAzIdentityToken -ResourceUrl 'https://vault.azure.net' + + # Call Key Vault REST API with retry logic + $uri = "https://$VaultName.vault.azure.net/secrets/$Name`?api-version=7.4" + $maxRetries = 3 + $retryDelay = 2 + $response = $null + + for ($i = 0; $i -lt $maxRetries; $i++) { + try { + $response = Invoke-RestMethod -Uri $uri -Headers @{ + Authorization = "Bearer $token" + } -Method Get -ErrorAction Stop + break + } catch { + $lastError = $_ + if ($i -lt ($maxRetries - 1)) { + Start-Sleep -Seconds $retryDelay + $retryDelay *= 2 # Exponential backoff + } else { + Write-Error "Failed to retrieve secret '$Name' from vault '$VaultName' after $maxRetries attempts: $($_.Exception.Message)" + throw + } + } + } + + # Return based on AsPlainText switch + if ($AsPlainText) { + return $response.value + } else { + # Return object similar to Get-AzKeyVaultSecret for compatibility + return @{ + SecretValue = ($response.value | ConvertTo-SecureString -AsPlainText -Force) + Name = $Name + VaultName = $VaultName + } + } + } catch { + # Error already handled in retry loop, just rethrow + throw + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Clear-CIPPAzStorageQueue.ps1 b/Modules/CIPPCore/Public/GraphHelper/Clear-CIPPAzStorageQueue.ps1 new file mode 100644 index 000000000000..2c361bf3e2bb --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Clear-CIPPAzStorageQueue.ps1 @@ -0,0 +1,43 @@ +function Clear-CIPPAzStorageQueue { + <# + .SYNOPSIS + Clears all messages from a specified Azure Storage Queue. + .DESCRIPTION + Issues a DELETE request to //messages via New-CIPPAzStorageRequest. + Returns a compact object with StatusCode, Headers, and Request Uri. + .PARAMETER Name + The name of the queue to clear. + .PARAMETER ConnectionString + Azure Storage connection string. Defaults to $env:AzureWebJobsStorage. + .EXAMPLE + Clear-CIPPAzStorageQueue -Name 'cippjta72-workitems' + #> + [CmdletBinding(SupportsShouldProcess)] + param( + [Parameter(Mandatory = $true, Position = 0)] + [ValidateNotNullOrEmpty()] + [string]$Name, + + [Parameter(Mandatory = $false)] + [string]$ConnectionString = $env:AzureWebJobsStorage + ) + + if ($PSCmdlet.ShouldProcess($Name, 'Clear queue messages')) { + try { + $headers = @{ Accept = 'application/xml' } + $resp = New-CIPPAzStorageRequest -Service 'queue' -Resource ("$Name/messages") -Method 'DELETE' -Headers $headers -ConnectionString $ConnectionString + if ($null -eq $resp) { + # Fallback when no object returned: assume 204 if no exception was thrown + return [PSCustomObject]@{ StatusCode = 204; Headers = @{}; Uri = $null; Name = $Name } + } + # Normalize to concise output and include the queue name + $status = $null; $uri = $null; $hdrs = @{} + if ($resp.PSObject.Properties['StatusCode']) { $status = [int]$resp.StatusCode } + if ($resp.PSObject.Properties['Uri']) { $uri = $resp.Uri } + if ($resp.PSObject.Properties['Headers']) { $hdrs = $resp.Headers } + return [PSCustomObject]@{ Name = $Name; StatusCode = $status; Headers = $hdrs; Uri = $uri } + } catch { + throw $_ + } + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Convert-SKUName.ps1 b/Modules/CIPPCore/Public/GraphHelper/Convert-SKUName.ps1 index 1e5fda8371b9..698288f18598 100644 --- a/Modules/CIPPCore/Public/GraphHelper/Convert-SKUName.ps1 +++ b/Modules/CIPPCore/Public/GraphHelper/Convert-SKUName.ps1 @@ -4,15 +4,15 @@ function Convert-SKUname { Internal #> param( - $skuname, - $skuID, + $SkuName, + $SkuID, $ConvertTable ) if (!$ConvertTable) { - Set-Location (Get-Item $PSScriptRoot).Parent.FullName - $ConvertTable = Import-Csv ConversionTable.csv + $ModuleBase = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase + $ConvertTable = Import-Csv (Join-Path $ModuleBase 'lib\data\ConversionTable.csv') } - if ($skuname) { $ReturnedName = ($ConvertTable | Where-Object { $_.String_Id -eq $skuname } | Select-Object -Last 1).'Product_Display_Name' } - if ($skuID) { $ReturnedName = ($ConvertTable | Where-Object { $_.guid -eq $skuid } | Select-Object -Last 1).'Product_Display_Name' } - if ($ReturnedName) { return $ReturnedName } else { return $skuname, $skuID } + if ($SkuName) { $ReturnedName = ($ConvertTable | Where-Object { $_.String_Id -eq $SkuName } | Select-Object -Last 1).'Product_Display_Name' } + if ($SkuID) { $ReturnedName = ($ConvertTable | Where-Object { $_.guid -eq $SkuID } | Select-Object -Last 1).'Product_Display_Name' } + if ($ReturnedName) { return $ReturnedName } else { return $SkuName, $SkuID } } diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzFunctionAppSetting.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzFunctionAppSetting.ps1 new file mode 100644 index 000000000000..54b2c332faa8 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzFunctionAppSetting.ps1 @@ -0,0 +1,35 @@ +function Get-CIPPAzFunctionAppSetting { + <# + .SYNOPSIS + Retrieves Azure Function App application settings via ARM REST using managed identity. + .PARAMETER Name + Function App name. + .PARAMETER ResourceGroupName + Resource group name. + .PARAMETER AccessToken + Optional bearer token to override Managed Identity. If provided, this token is used for Authorization. + .EXAMPLE + Get-CIPPAzFunctionAppSetting -Name myfunc -ResourceGroupName rg1 + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Name, + + [Parameter(Mandatory = $true)] + [string]$ResourceGroupName, + + [Parameter(Mandatory = $false)] + [string]$AccessToken + ) + + $subscriptionId = Get-CIPPAzFunctionAppSubId + $apiVersion = '2024-11-01' + $uri = "https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$ResourceGroupName/providers/Microsoft.Web/sites/$Name/config/appsettings/list?api-version=$apiVersion" + + # ARM peculiarity: listing appsettings can require POST on some endpoints + $restParams = @{ Uri = $uri; Method = 'POST' } + if ($AccessToken) { $restParams.AccessToken = $AccessToken } + $resp = New-CIPPAzRestRequest @restParams + return $resp +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzFunctionAppSubId.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzFunctionAppSubId.ps1 new file mode 100644 index 000000000000..98418a2add4b --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzFunctionAppSubId.ps1 @@ -0,0 +1,15 @@ +function Get-CIPPAzFunctionAppSubId { + <# + .SYNOPSIS + Get the subscription ID for the current function app + .DESCRIPTION + Get the subscription ID for the current function app + .EXAMPLE + Get-CIPPAzFunctionAppSubId + #> + [CmdletBinding()] + param() + + $SubscriptionId = $env:WEBSITE_OWNER_NAME -split '\+' | Select-Object -First 1 + return $SubscriptionId +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzStorageContainer.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzStorageContainer.ps1 new file mode 100644 index 000000000000..bcc7a0c44abf --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzStorageContainer.ps1 @@ -0,0 +1,155 @@ +function Get-CIPPAzStorageContainer { + <# + .SYNOPSIS + Lists Azure Storage blob containers using Shared Key auth. + .DESCRIPTION + Uses New-CIPPAzStorageRequest to call the Blob service list API. + - Uses server-side 'prefix' when Name ends with a single trailing '*'. + - Builds container URIs from the connection string (standard, provided endpoint, emulator). + - Passes through container Properties returned by the service. + .PARAMETER Name + Container name filter. Supports wildcards (e.g., 'cipp*'). Defaults to '*'. + When the pattern ends with a single trailing '*' and contains no other wildcards, + a server-side 'prefix' is used for listing; otherwise client-side filtering is applied. + .PARAMETER ConnectionString + Azure Storage connection string. Defaults to $env:AzureWebJobsStorage + .EXAMPLE + Get-CIPPAzStorageContainer -Name 'cipp*' + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false, Position = 0)] + [string]$Name = '*', + + [Parameter(Mandatory = $false)] + [string]$ConnectionString = $env:AzureWebJobsStorage + ) + + begin { + function Parse-ConnString { + param([string]$Conn) + $map = @{} + if (-not $Conn) { return $map } + foreach ($part in ($Conn -split ';')) { + $p = $part.Trim() + if ($p -and $p -match '^(.+?)=(.+)$') { $map[$matches[1]] = $matches[2] } + } + $map + } + + function Get-BlobBaseInfo { + param([hashtable]$ConnParams) + $service = 'blob' + $svcCap = [char]::ToUpper($service[0]) + $service.Substring(1) + $endpointKey = "${svcCap}Endpoint" + $provided = $ConnParams[$endpointKey] + $useDev = ($ConnParams['UseDevelopmentStorage'] -eq 'true') + $account = $ConnParams['AccountName'] + + if ($provided) { + $u = [System.Uri]::new($provided) + return [PSCustomObject]@{ + Scheme = $u.Scheme + Host = $u.Host + Port = $u.Port + Path = $u.AbsolutePath.TrimEnd('/') + Mode = 'ProvidedEndpoint' + Account = $account + } + } + + if ($useDev) { + return [PSCustomObject]@{ + Scheme = 'http' + Host = '127.0.0.1' + Port = 10000 + Path = $null + Mode = 'Emulator' + Account = ($account ?? 'devstoreaccount1') + } + } + + $suffix = $ConnParams['EndpointSuffix'] + if (-not $suffix) { $suffix = 'core.windows.net' } + $scheme = $ConnParams['DefaultEndpointsProtocol'] + if (-not $scheme) { $scheme = 'https' } + return [PSCustomObject]@{ + Scheme = $scheme + Host = "$account.blob.$suffix" + Port = -1 + Path = $null + Mode = 'Standard' + Account = $account + } + } + + function Build-ContainerUri { + param([pscustomobject]$BaseInfo, [string]$ContainerName) + $ub = [System.UriBuilder]::new() + $ub.Scheme = $BaseInfo.Scheme + $ub.Host = $BaseInfo.Host + if ($BaseInfo.Port -and $BaseInfo.Port -ne -1) { $ub.Port = [int]$BaseInfo.Port } + switch ($BaseInfo.Mode) { + 'ProvidedEndpoint' { + $prefixPath = $BaseInfo.Path + if ([string]::IsNullOrEmpty($prefixPath)) { $ub.Path = "/$ContainerName" } + else { $ub.Path = ("$prefixPath/$ContainerName").Replace('//', '/') } + } + 'Emulator' { $ub.Path = "$($BaseInfo.Account)/$ContainerName" } + default { $ub.Path = "/$ContainerName" } + } + $ub.Uri.AbsoluteUri + } + } + + process { + $connParams = Parse-ConnString -Conn $ConnectionString + $baseInfo = Get-BlobBaseInfo -ConnParams $connParams + + # Determine server-side prefix optimization + $serverPrefix = $null + $pattern = $Name + if ([string]::IsNullOrEmpty($pattern)) { $pattern = '*' } + $canUsePrefix = $false + if ($pattern.EndsWith('*') -and $pattern.IndexOfAny([char[]]@('*', '?')) -eq ($pattern.Length - 1)) { + $serverPrefix = $pattern.Substring(0, $pattern.Length - 1) + $canUsePrefix = $true + } + + $listParams = @{ Service = 'blob'; Component = 'list'; ConnectionString = $ConnectionString } + if ($canUsePrefix -and $serverPrefix) { $listParams['QueryParams'] = @{ prefix = $serverPrefix } } + + $containers = New-CIPPAzStorageRequest @listParams + if (-not $containers) { return @() } + + # Normalize to array of {Name, Properties} + $items = @() + foreach ($c in $containers) { + if ($null -ne $c -and $c.PSObject.Properties['Name']) { + $items += [PSCustomObject]@{ Name = $c.Name; Properties = $c.Properties } + } + } + + # Client-side wildcard filtering when needed + if (-not $canUsePrefix) { + $items = $items | Where-Object { $_.Name -like $pattern } + } + + $results = @() + foreach ($it in $items) { + $uri = Build-ContainerUri -BaseInfo $baseInfo -ContainerName $it.Name + $results += [PSCustomObject]@{ + Name = $it.Name + Uri = $uri + Properties = $it.Properties + } + } + + # Optional banner for UX parity when displayed directly + if ($results.Count -gt 0 -and $baseInfo.Account) { + Write-Host "\n Storage Account Name: $($baseInfo.Account)\n" -ForegroundColor DarkGray + } + + $results + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzStorageQueue.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzStorageQueue.ps1 new file mode 100644 index 000000000000..91e7c11077ad --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzStorageQueue.ps1 @@ -0,0 +1,166 @@ +function Get-CIPPAzStorageQueue { + <# + .SYNOPSIS + Lists Azure Storage queues and approximate message counts using Shared Key auth. + .DESCRIPTION + Uses New-CIPPAzStorageRequest to call the Queue service REST API. + - Lists queues (optionally with server-side prefix when Name ends with '*'). + - Enriches each queue with ApproximateMessageCount via comp=metadata. + - Constructs queue URIs consistent with the resolved endpoint. + .PARAMETER Name + Queue name filter. Supports wildcards (e.g., 'cipp*'). Defaults to '*'. + When the pattern ends with a single trailing '*' and contains no other wildcards, + a server-side 'prefix' is used for listing; otherwise client-side filtering is applied. + .PARAMETER ConnectionString + Azure Storage connection string. Defaults to $env:AzureWebJobsStorage + .PARAMETER NoCount + If set, skips the metadata call and returns ApproximateMessageCount as $null. + .EXAMPLE + Get-CIPPAzStorageQueue -Name 'cippjta*' + Returns objects similar to Get-AzStorageQueue with Name, Uri, and ApproximateMessageCount. + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false, Position = 0)] + [string]$Name = '*', + + [Parameter(Mandatory = $false)] + [string]$ConnectionString = $env:AzureWebJobsStorage, + + [Parameter(Mandatory = $false)] + [switch]$NoCount + ) + + begin { + function Parse-ConnString { + param([string]$Conn) + $map = @{} + if (-not $Conn) { return $map } + foreach ($part in ($Conn -split ';')) { + $p = $part.Trim() + if ($p -and $p -match '^(.+?)=(.+)$') { $map[$matches[1]] = $matches[2] } + } + $map + } + + function Get-QueueBaseInfo { + param([hashtable]$ConnParams) + $service = 'queue' + $svcCap = [char]::ToUpper($service[0]) + $service.Substring(1) + $endpointKey = "${svcCap}Endpoint" + $provided = $ConnParams[$endpointKey] + $useDev = ($ConnParams['UseDevelopmentStorage'] -eq 'true') + $account = $ConnParams['AccountName'] + + if ($provided) { + $u = [System.Uri]::new($provided) + return [PSCustomObject]@{ + Scheme = $u.Scheme + Host = $u.Host + Port = $u.Port + Path = $u.AbsolutePath.TrimEnd('/') + Mode = 'ProvidedEndpoint' + Account = $account + } + } + + if ($useDev) { + return [PSCustomObject]@{ + Scheme = 'http' + Host = '127.0.0.1' + Port = 10001 + Path = $null + Mode = 'Emulator' + Account = ($account ?? 'devstoreaccount1') + } + } + + $suffix = $ConnParams['EndpointSuffix'] + if (-not $suffix) { $suffix = 'core.windows.net' } + $scheme = $ConnParams['DefaultEndpointsProtocol'] + if (-not $scheme) { $scheme = 'https' } + return [PSCustomObject]@{ + Scheme = $scheme + Host = "$account.queue.$suffix" + Port = -1 + Path = $null + Mode = 'Standard' + Account = $account + } + } + + function Build-QueueUri { + param([pscustomobject]$BaseInfo, [string]$QueueName) + $ub = [System.UriBuilder]::new() + $ub.Scheme = $BaseInfo.Scheme + $ub.Host = $BaseInfo.Host + if ($BaseInfo.Port -and $BaseInfo.Port -ne -1) { $ub.Port = [int]$BaseInfo.Port } + switch ($BaseInfo.Mode) { + 'ProvidedEndpoint' { + $prefixPath = $BaseInfo.Path + if ([string]::IsNullOrEmpty($prefixPath)) { $ub.Path = "/$QueueName" } + else { $ub.Path = ("$prefixPath/$QueueName").Replace('//', '/') } + } + 'Emulator' { $ub.Path = "$($BaseInfo.Account)/$QueueName" } + default { $ub.Path = "/$QueueName" } + } + $ub.Uri.AbsoluteUri + } + } + + process { + $connParams = Parse-ConnString -Conn $ConnectionString + $baseInfo = Get-QueueBaseInfo -ConnParams $connParams + + # Determine server-side prefix optimization + $serverPrefix = $null + $pattern = $Name + if ([string]::IsNullOrEmpty($pattern)) { $pattern = '*' } + $canUsePrefix = $false + if ($pattern.EndsWith('*') -and $pattern.IndexOfAny([char[]]@('*', '?')) -eq ($pattern.Length - 1)) { + $serverPrefix = $pattern.Substring(0, $pattern.Length - 1) + $canUsePrefix = $true + } + + $listParams = @{ Service = 'queue'; Component = 'list'; ConnectionString = $ConnectionString } + if ($canUsePrefix -and $serverPrefix) { $listParams['QueryParams'] = @{ prefix = $serverPrefix } } + + $queues = New-CIPPAzStorageRequest @listParams + if (-not $queues) { return @() } + + # Normalize to array of names + $queueItems = @() + foreach ($q in $queues) { + if ($null -ne $q -and $q.PSObject.Properties['Name']) { $queueItems += $q.Name } + } + + # Client-side wildcard filtering when needed + if (-not $canUsePrefix) { + $queueItems = $queueItems | Where-Object { $_ -like $pattern } + } + + $results = @() + foreach ($qn in $queueItems) { + $uri = Build-QueueUri -BaseInfo $baseInfo -QueueName $qn + $count = $null + if (-not $NoCount) { + try { + $meta = New-CIPPAzStorageRequest -Service 'queue' -Component 'metadata' -Resource $qn -ConnectionString $ConnectionString -Method 'GET' + if ($meta -and $meta.PSObject.Properties['ApproximateMessagesCount']) { $count = $meta.ApproximateMessagesCount } + } catch { $count = $null } + } + $results += [PSCustomObject]@{ + Name = $qn + Uri = $uri + ApproximateMessageCount = $count + } + } + + # Optional banner for UX parity when displayed directly + if ($results.Count -gt 0 -and $baseInfo.Account) { + Write-Host "\n Storage Account Name: $($baseInfo.Account)\n" -ForegroundColor DarkGray + } + + $results + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-CippSamPermissions.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-CippSamPermissions.ps1 index 3018d7abf23d..2ab308fc22c5 100644 --- a/Modules/CIPPCore/Public/GraphHelper/Get-CippSamPermissions.ps1 +++ b/Modules/CIPPCore/Public/GraphHelper/Get-CippSamPermissions.ps1 @@ -25,8 +25,8 @@ function Get-CippSamPermissions { if (!$SavedOnly.IsPresent) { $ModuleBase = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase - $SamManifestFile = Get-Item (Join-Path $ModuleBase 'Public\SAMManifest.json') - $AdditionalPermissions = Get-Item (Join-Path $ModuleBase 'Public\AdditionalPermissions.json') + $SamManifestFile = Get-Item (Join-Path $ModuleBase 'lib\data\SAMManifest.json') + $AdditionalPermissions = Get-Item (Join-Path $ModuleBase 'lib\data\AdditionalPermissions.json') $ServicePrincipalList = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/servicePrincipals?$top=999&$select=id,appId,displayName' -tenantid $env:TenantID -NoAuthCheck $true $SAMManifest = Get-Content -Path $SamManifestFile.FullName | ConvertFrom-Json diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-GraphToken.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-GraphToken.ps1 index c89d8fd2dd75..1548ebe869fc 100644 --- a/Modules/CIPPCore/Public/GraphHelper/Get-GraphToken.ps1 +++ b/Modules/CIPPCore/Public/GraphHelper/Get-GraphToken.ps1 @@ -24,6 +24,34 @@ function Get-GraphToken($tenantid, $scope, $AsApp, $AppID, $AppSecret, $refreshT if ($tenantid -ne $env:TenantID -and $clientType.delegatedPrivilegeStatus -eq 'directTenant') { Write-Host "Using direct tenant refresh token for $($clientType.customerId)" $ClientRefreshToken = Get-Item -Path "env:\$($clientType.customerId)" -ErrorAction SilentlyContinue + + if ($null -eq $ClientRefreshToken) { + # Lazy load the refresh token from Key Vault only when needed + Write-Host "Fetching refresh token for direct tenant $($clientType.customerId) from Key Vault" + try { + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { + # Development environment - get from table storage + $Table = Get-CIPPTable -tablename 'DevSecrets' + $Secret = Get-AzDataTableEntity @Table -Filter "PartitionKey eq 'Secret' and RowKey eq 'Secret'" + $secretname = $clientType.customerId -replace '-', '_' + if ($Secret.$secretname) { + Set-Item -Path "env:\$($clientType.customerId)" -Value $Secret.$secretname -Force + $ClientRefreshToken = Get-Item -Path "env:\$($clientType.customerId)" -ErrorAction SilentlyContinue + } + } else { + # Production environment - get from Key Vault + $keyvaultname = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] + $secret = Get-CippKeyVaultSecret -VaultName $keyvaultname -Name $clientType.customerId -AsPlainText -ErrorAction Stop + if ($secret) { + Set-Item -Path "env:\$($clientType.customerId)" -Value $secret -Force + $ClientRefreshToken = Get-Item -Path "env:\$($clientType.customerId)" -ErrorAction SilentlyContinue + } + } + } catch { + Write-Host "Failed to retrieve refresh token for direct tenant $($clientType.customerId): $($_.Exception.Message)" + } + } + $refreshToken = $ClientRefreshToken.Value } @@ -95,10 +123,14 @@ function Get-GraphToken($tenantid, $scope, $AsApp, $AppID, $AppSecret, $refreshT } } $Tenant.LastGraphError = if ( $_.ErrorDetails.Message) { - $msg = $_.ErrorDetails.Message | ConvertFrom-Json - "$($msg.error):$($msg.error_description)" + if (Test-Json $_.ErrorDetails.Message -ErrorAction SilentlyContinue) { + $msg = $_.ErrorDetails.Message | ConvertFrom-Json + "$($msg.error):$($msg.error_description)" + } else { + "$($_.ErrorDetails.Message)" + } } else { - $_.Exception.message + $_.Exception.Message } $Tenant.GraphErrorCount++ diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-NormalizedError.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-NormalizedError.ps1 index 75b05c0fc184..13398c7fddee 100644 --- a/Modules/CIPPCore/Public/GraphHelper/Get-NormalizedError.ps1 +++ b/Modules/CIPPCore/Public/GraphHelper/Get-NormalizedError.ps1 @@ -49,7 +49,13 @@ function Get-NormalizedError { '*AADSTS50177' { 'AADSTS50177: The user you have used for your Secure Application Model is a guest in this tenant, or your are using GDAP and have not added the user to the correct group. Please delete the guest user to gain access to this tenant' } '*invalid or malformed*' { 'The request is malformed. Have you finished the Setup Wizard' } '*Windows Store repository apps feature is not supported for this tenant*' { 'This tenant does not have WinGet support available' } - '*AADSTS650051*' { 'The application does not exist yet. Try again in 30 seconds.' } + '*AADSTS650051*' { + if ($Message -like '*service principal name is already present*') { + 'The application service principal already exists in this tenant. This is expected and not an error.' + } else { + 'The application does not exist yet. Try again in 30 seconds.' + } + } '*AppLifecycle_2210*' { 'Failed to call Intune APIs: Does the tenant have a license available?' } '*One or more added object references already exist for the following modified properties:*' { 'This user is already a member of this group.' } '*Microsoft.Exchange.Management.Tasks.MemberAlreadyExistsException*' { 'This user is already a member of this group.' } diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-Tenants.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-Tenants.ps1 index c231eb916100..a568c38099f2 100644 --- a/Modules/CIPPCore/Public/GraphHelper/Get-Tenants.ps1 +++ b/Modules/CIPPCore/Public/GraphHelper/Get-Tenants.ps1 @@ -1,8 +1,10 @@ + function Get-Tenants { <# .FUNCTIONALITY Internal #> + [CmdletBinding(DefaultParameterSetName = 'Standard')] param ( [Parameter( ParameterSetName = 'Skip', Mandatory = $True )] [switch]$SkipList, @@ -14,10 +16,7 @@ function Get-Tenants { [switch]$CleanOld, [string]$TenantFilter ) - #$caller = $MyInvocation.InvocationName - #$scriptName = $MyInvocation.ScriptName - #Write-Host "Called by: $caller" - #Write-Host "In script: $scriptName" + $TenantsTable = Get-CippTable -tablename 'Tenants' $ExcludedFilter = "PartitionKey eq 'Tenants' and Excluded eq true" @@ -42,8 +41,8 @@ function Get-Tenants { $IncludedTenantFilter = [scriptblock]::Create("`$_.customerId -eq '$TenantFilter'") $RelationshipFilter = " and customer/tenantId eq '$TenantFilter'" } else { - $Filter = "{0} and defaultDomainName eq '{1}'" -f $Filter, $TenantFilter - $IncludedTenantFilter = [scriptblock]::Create("`$_.defaultDomainName -eq '$TenantFilter'") + $Filter = "{0} and defaultDomainName eq '{1}' or initialDomainName eq '{1}'" -f $Filter, $TenantFilter + $IncludedTenantFilter = [scriptblock]::Create("`$_.defaultDomainName -eq '$TenantFilter' -or `$_.initialDomainName -eq '$TenantFilter'") $RelationshipFilter = '' } } else { @@ -58,7 +57,19 @@ function Get-Tenants { } if ($CleanOld.IsPresent) { - $GDAPRelationships = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/tenantRelationships/delegatedAdminRelationships?`$filter=status eq 'active' and not startsWith(displayName,'MLT_')&`$select=customer,autoExtendDuration,endDateTime&`$top=300" -NoAuthCheck:$true + try { + $GDAPRelationships = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/tenantRelationships/delegatedAdminRelationships?`$filter=status eq 'active'&`$select=customer,autoExtendDuration,endDateTime" -NoAuthCheck:$true + # Filter out MLT relationships locally + $GDAPRelationships = $GDAPRelationships | Where-Object { $_.displayName -notlike 'MLT_*' } + if (!$GDAPRelationships) { + Write-LogMessage -API 'Get-Tenants' -message 'Tried cleaning old tenants but failed to get GDAP relationships - No relationships returned' -Sev 'Critical' + throw 'Failed to get GDAP relationships for cleaning old tenants.' + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Get-Tenants' -message "Tried cleaning old tenants but failed to get GDAP relationships - $($_.Exception.Message)" -Sev 'Critical' -LogData $ErrorMessage + throw $_ + } $GDAPList = foreach ($Relationship in $GDAPRelationships) { [PSCustomObject]@{ customerId = $Relationship.customer.tenantId @@ -82,7 +93,13 @@ function Get-Tenants { throw 'RefreshToken not set. Cannot get tenant list.' } #get the full list of tenants - $GDAPRelationships = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/tenantRelationships/delegatedAdminRelationships?`$filter=status eq 'active' and not startsWith(displayName,'MLT_')$RelationshipFilter&`$select=customer,autoExtendDuration,endDateTime&`$top=300" -NoAuthCheck:$true + $GDAPRelationships = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/tenantRelationships/delegatedAdminRelationships?`$filter=status eq 'active'$RelationshipFilter&`$select=customer,autoExtendDuration,endDateTime" -NoAuthCheck:$true + # Filter out MLT relationships locally + $GDAPRelationships = $GDAPRelationships | Where-Object { $_.displayName -notlike 'MLT_*' } + Write-Host "GDAP relationships found: $($GDAPRelationships.Count)" + Write-Information "GDAP relationships found: $($GDAPRelationships.Count)" + $totalTenants = $GDAPRelationships.customer.tenantId | Select-Object -Unique + Write-Information "Total tenants found in relationships result: $($totalTenants.count)" $GDAPList = foreach ($Relationship in $GDAPRelationships) { [PSCustomObject]@{ customerId = $Relationship.customer.tenantId @@ -257,5 +274,11 @@ function Get-Tenants { Add-CIPPAzDataTableEntity @TenantsTable -Entity $IncludedTenantsCache -Force | Out-Null } } + + # Limit tenant list to allowed tenants if set in script scope from New-CippCoreRequest + if ($script:CippAllowedTenantsStorage -and $script:CippAllowedTenantsStorage.Value) { + $IncludedTenantsCache = $IncludedTenantsCache | Where-Object { $script:CippAllowedTenantsStorage.Value -contains $_.customerId } + } + return $IncludedTenantsCache | Where-Object { ($null -ne $_.defaultDomainName -and ($_.defaultDomainName -notmatch 'Domain Error' -or $IncludeAll.IsPresent)) } | Where-Object $IncludedTenantFilter | Sort-Object -Property displayName } diff --git a/Modules/CIPPCore/Public/GraphHelper/New-CIPPAzRestRequest.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-CIPPAzRestRequest.ps1 new file mode 100644 index 000000000000..248a94ee56ef --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/New-CIPPAzRestRequest.ps1 @@ -0,0 +1,333 @@ +function New-CIPPAzRestRequest { + <# + .SYNOPSIS + Create and send a REST request to Azure APIs using Managed Identity authentication + .DESCRIPTION + Wraps Invoke-RestMethod with automatic Azure Managed Identity token authentication. + Automatically adds the Authorization header using Get-CIPPAzIdentityToken. + Supports all Invoke-RestMethod parameters. + .PARAMETER Uri + The URI of the Azure REST API endpoint + .PARAMETER Method + The HTTP method (GET, POST, PUT, PATCH, DELETE, etc.). Defaults to GET. + .PARAMETER ResourceUrl + The Azure resource URL to get a token for. Defaults to 'https://management.azure.com/' for Azure Resource Manager. + Use 'https://vault.azure.net' for Key Vault, 'https://api.loganalytics.io' for Log Analytics, etc. + .PARAMETER AccessToken + Optional: A pre-acquired OAuth2 bearer token to use for Authorization. When provided, Managed Identity acquisition is skipped and this token is used as-is. + .PARAMETER Body + The request body (can be string, hashtable, or PSCustomObject) + .PARAMETER Headers + Additional headers to include in the request. Authorization header is automatically added. + .PARAMETER ContentType + The content type of the request body. Defaults to 'application/json' if Body is provided and ContentType is not specified. + .PARAMETER SkipHttpErrorCheck + Skip checking HTTP error status codes + .PARAMETER ResponseHeadersVariable + Variable name to store response headers + .PARAMETER StatusCodeVariable + Variable name to store HTTP status code + .PARAMETER MaximumRetryCount + Maximum number of retry attempts + .PARAMETER RetryIntervalSec + Interval between retries in seconds + .PARAMETER TimeoutSec + Request timeout in seconds + .PARAMETER UseBasicParsing + Use basic parsing (for older PowerShell versions) + .PARAMETER WebSession + Web session object for maintaining cookies/state + .PARAMETER MaxRetries + Maximum number of retry attempts for transient failures. Defaults to 3. + .EXAMPLE + New-CIPPAzRestRequest -Uri 'https://management.azure.com/subscriptions/{sub}/resourceGroups/{rg}/providers/Microsoft.Web/sites/{name}?api-version=2020-06-01' + Gets Azure Resource Manager resource using managed identity + .EXAMPLE + New-CIPPAzRestRequest -Uri 'https://management.azure.com/subscriptions/{sub}/resourceGroups/{rg}/providers/Microsoft.Web/sites/{name}/config/authsettingsV2/list?api-version=2020-06-01' -Method POST + POST request to Azure Resource Manager API + .EXAMPLE + New-CIPPAzRestRequest -Uri 'https://{vault}.vault.azure.net/secrets/{secret}?api-version=7.4' -ResourceUrl 'https://vault.azure.net' + Gets a Key Vault secret using managed identity + .EXAMPLE + New-CIPPAzRestRequest -Uri 'https://management.azure.com/...' -Method PUT -Body @{ property = 'value' } -ContentType 'application/json' + PUT request with JSON body + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true, Position = 0)] + [Alias('Url')] + [uri]$Uri, + + [Parameter(Mandatory = $false)] + [ValidateSet('GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS', 'TRACE')] + [string]$Method = 'GET', + + [Parameter(Mandatory = $false)] + [string]$ResourceUrl = 'https://management.azure.com/', + + [Parameter(Mandatory = $false)] + [string]$AccessToken, + + [Parameter(Mandatory = $false)] + [object]$Body, + + [Parameter(Mandatory = $false)] + [hashtable]$Headers = @{}, + + [Parameter(Mandatory = $false)] + [string]$ContentType = 'application/json', + + [Parameter(Mandatory = $false)] + [switch]$SkipHttpErrorCheck, + + [Parameter(Mandatory = $false)] + [string]$ResponseHeadersVariable, + + [Parameter(Mandatory = $false)] + [string]$StatusCodeVariable, + + [Parameter(Mandatory = $false)] + [int]$MaximumRetryCount, + + [Parameter(Mandatory = $false)] + [int]$RetryIntervalSec, + + [Parameter(Mandatory = $false)] + [int]$TimeoutSec, + + [Parameter(Mandatory = $false)] + [switch]$UseBasicParsing, + + [Parameter(Mandatory = $false)] + [Microsoft.PowerShell.Commands.WebRequestSession]$WebSession, + + [Parameter(Mandatory = $false)] + [int]$MaxRetries = 3 + ) + + # Resolve bearer token: prefer manually-supplied AccessToken, otherwise fetch via Managed Identity + $Token = $null + if ($AccessToken) { + $Token = $AccessToken + } else { + try { + $Token = Get-CIPPAzIdentityToken -ResourceUrl $ResourceUrl + } catch { + $errorMessage = "Failed to get Azure Managed Identity token: $($_.Exception.Message)" + Write-Error -Message $errorMessage -ErrorAction $ErrorActionPreference + return + } + } + + # Build headers - add Authorization, merge with user-provided headers + $RequestHeaders = @{ + 'Authorization' = "Bearer $Token" + } + + # Merge user-provided headers (user headers take precedence) + foreach ($key in $Headers.Keys) { + $RequestHeaders[$key] = $Headers[$key] + } + + # Handle Content-Type + if ($Body -and -not $ContentType) { + $ContentType = 'application/json' + } + + # Convert Body to JSON if it's an object and ContentType is JSON + $RequestBody = $Body + if ($Body -and $ContentType -eq 'application/json' -and $Body -isnot [string]) { + try { + $RequestBody = $Body | ConvertTo-Json -Depth 10 -Compress + } catch { + Write-Warning "Failed to convert Body to JSON: $($_.Exception.Message). Sending as-is." + $RequestBody = $Body + } + } + + # Build Invoke-RestMethod parameters + $RestMethodParams = @{ + Uri = $Uri + Method = $Method + Headers = $RequestHeaders + ErrorAction = $ErrorActionPreference + } + + if ($Body) { + $RestMethodParams['Body'] = $RequestBody + } + + if ($ContentType) { + $RestMethodParams['ContentType'] = $ContentType + } + + if ($SkipHttpErrorCheck) { + $RestMethodParams['SkipHttpErrorCheck'] = $true + } + + if ($ResponseHeadersVariable) { + $RestMethodParams['ResponseHeadersVariable'] = $ResponseHeadersVariable + } + + if ($StatusCodeVariable) { + $RestMethodParams['StatusCodeVariable'] = $StatusCodeVariable + } + + if ($MaximumRetryCount) { + $RestMethodParams['MaximumRetryCount'] = $MaximumRetryCount + } + + if ($RetryIntervalSec) { + $RestMethodParams['RetryIntervalSec'] = $RetryIntervalSec + } + + if ($TimeoutSec) { + $RestMethodParams['TimeoutSec'] = $TimeoutSec + } + + if ($UseBasicParsing) { + $RestMethodParams['UseBasicParsing'] = $true + } + + if ($WebSession) { + $RestMethodParams['WebSession'] = $WebSession + } + + # Invoke the REST method with retry logic + $RetryCount = 0 + $RequestSuccessful = $false + $Message = $null + $MessageObj = $null + + Write-Information "$($Method.ToUpper()) [ $Uri ] | attempt: $($RetryCount + 1) of $MaxRetries" + + do { + try { + $Response = Invoke-RestMethod @RestMethodParams + $RequestSuccessful = $true + + # For compatibility with Invoke-AzRestMethod behavior, return object with Content property if response is a string + # Otherwise return the parsed object directly + if ($Response -is [string]) { + return [PSCustomObject]@{ + Content = $Response + } + } + + return $Response + } catch { + $ShouldRetry = $false + $WaitTime = 0 + + # Extract error message from JSON response if available + try { + if ($_.ErrorDetails.Message) { + $MessageObj = $_.ErrorDetails.Message | ConvertFrom-Json -ErrorAction SilentlyContinue + if ($MessageObj.error) { + $MessageObj | Add-Member -NotePropertyName 'url' -NotePropertyValue $Uri -Force + $Message = if ($MessageObj.error.message) { + Get-NormalizedError -message $MessageObj.error.message + } elseif ($MessageObj.error.code) { + $MessageObj.error.code + } else { + $_.Exception.Message + } + } else { + $Message = Get-NormalizedError -message $_.ErrorDetails.Message + } + } else { + $Message = $_.Exception.Message + } + } catch { + $Message = $_.Exception.Message + } + + # If we couldn't extract a message, use the exception message + if ([string]::IsNullOrEmpty($Message)) { + $Message = $_.Exception.Message + $MessageObj = @{ + error = @{ + code = $_.Exception.GetType().FullName + message = $Message + url = $Uri + } + } + } + + # Check for 429 Too Many Requests (rate limiting) + if ($_.Exception.Response -and $_.Exception.Response.StatusCode -eq 429) { + $RetryAfterHeader = $_.Exception.Response.Headers['Retry-After'] + if ($RetryAfterHeader) { + $WaitTime = [int]$RetryAfterHeader + Write-Warning "Rate limited (429). Waiting $WaitTime seconds before retry. Attempt $($RetryCount + 1) of $MaxRetries" + $ShouldRetry = $true + } elseif ($RetryCount -lt $MaxRetries) { + # Exponential backoff if no Retry-After header + $WaitTime = [Math]::Min([Math]::Pow(2, $RetryCount), 60) # Cap at 60 seconds + Write-Warning "Rate limited (429) without Retry-After header. Waiting $WaitTime seconds before retry. Attempt $($RetryCount + 1) of $MaxRetries" + $ShouldRetry = $true + } + } + # Check for 503 Service Unavailable or temporary errors + elseif ($_.Exception.Response -and $_.Exception.Response.StatusCode -eq 503) { + if ($RetryCount -lt $MaxRetries) { + $WaitTime = Get-Random -Minimum 1.1 -Maximum 3.1 # Random sleep between 1-3 seconds + Write-Warning "Service unavailable (503). Waiting $WaitTime seconds before retry. Attempt $($RetryCount + 1) of $MaxRetries" + $ShouldRetry = $true + } + } + # Check for "Resource temporarily unavailable" or other transient errors + elseif ($Message -like '*Resource temporarily unavailable*' -or $Message -like '*temporarily*' -or $Message -like '*timeout*') { + if ($RetryCount -lt $MaxRetries) { + $WaitTime = Get-Random -Minimum 1.1 -Maximum 3.1 # Random sleep between 1-3 seconds + Write-Warning "Transient error detected. Waiting $WaitTime seconds before retry. Attempt $($RetryCount + 1) of $MaxRetries" + $ShouldRetry = $true + } + } + # Check for 500/502/504 server errors (retryable) + elseif ($_.Exception.Response -and $_.Exception.Response.StatusCode -in @(500, 502, 504)) { + if ($RetryCount -lt $MaxRetries) { + $WaitTime = Get-Random -Minimum 1.1 -Maximum 3.1 # Random sleep between 1-3 seconds + Write-Warning "Server error ($($_.Exception.Response.StatusCode)). Waiting $WaitTime seconds before retry. Attempt $($RetryCount + 1) of $MaxRetries" + $ShouldRetry = $true + } + } + + # Retry if conditions are met + if ($ShouldRetry -and $RetryCount -lt $MaxRetries) { + $RetryCount++ + if ($WaitTime -gt 0) { + Start-Sleep -Seconds $WaitTime + } + Write-Information "$($Method.ToUpper()) [ $Uri ] | attempt: $($RetryCount + 1) of $MaxRetries" + } else { + # Final failure - build detailed error message + $errorMessage = "Azure REST API call failed: $Message" + if ($_.Exception.Response) { + $errorMessage += " (Status: $($_.Exception.Response.StatusCode))" + try { + $reader = New-Object System.IO.StreamReader($_.Exception.Response.GetResponseStream()) + $responseBody = $reader.ReadToEnd() + $reader.Close() + if ($responseBody) { + $errorMessage += "`nResponse: $responseBody" + } + } catch { + # Ignore errors reading response stream + } + } + $errorMessage += "`nURI: $Uri" + + Write-Error -Message $errorMessage -ErrorAction $ErrorActionPreference + return + } + } + } while (-not $RequestSuccessful -and $RetryCount -le $MaxRetries) + + # Should never reach here, but just in case + if (-not $RequestSuccessful) { + $errorMessage = "Azure REST API call failed after $MaxRetries attempts: $Message`nURI: $Uri" + Write-Error -Message $errorMessage -ErrorAction $ErrorActionPreference + return + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/New-CIPPAzServiceSAS.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-CIPPAzServiceSAS.ps1 new file mode 100644 index 000000000000..9f7f35d1eacb --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/New-CIPPAzServiceSAS.ps1 @@ -0,0 +1,291 @@ +function New-CIPPAzServiceSAS { + [CmdletBinding()] param( + [Parameter(Mandatory = $true)] [string] $AccountName, + [Parameter(Mandatory = $true)] [string] $AccountKey, + [Parameter(Mandatory = $true)] [ValidateSet('blob', 'queue', 'file', 'table')] [string] $Service, + [Parameter(Mandatory = $true)] [string] $ResourcePath, + [Parameter(Mandatory = $true)] [string] $Permissions, + [Parameter(Mandatory = $false)] [DateTime] $StartTime, + [Parameter(Mandatory = $true)] [DateTime] $ExpiryTime, + [Parameter(Mandatory = $false)] [ValidateSet('http', 'https', 'https,http')] [string] $Protocol = 'https', + [Parameter(Mandatory = $false)] [string] $IP, + [Parameter(Mandatory = $false)] [string] $SignedIdentifier, + [Parameter(Mandatory = $false)] [string] $Version = '2022-11-02', + [Parameter(Mandatory = $false)] [ValidateSet('b', 'c', 'd', 'bv', 'bs', 'f', 's')] [string] $SignedResource, + [Parameter(Mandatory = $false)] [int] $DirectoryDepth, + [Parameter(Mandatory = $false)] [string] $SnapshotTime, + # Optional response header overrides (Blob/Files) + [Parameter(Mandatory = $false)] [string] $CacheControl, + [Parameter(Mandatory = $false)] [string] $ContentDisposition, + [Parameter(Mandatory = $false)] [string] $ContentEncoding, + [Parameter(Mandatory = $false)] [string] $ContentLanguage, + [Parameter(Mandatory = $false)] [string] $ContentType, + # Optional encryption scope (Blob, 2020-12-06+) + [Parameter(Mandatory = $false)] [string] $EncryptionScope, + # Optional connection string for endpoint/emulator support + [Parameter(Mandatory = $false)] [string] $ConnectionString = $env:AzureWebJobsStorage + ) + + # Local helpers: canonicalized resource and signature (standalone) + function _GetCanonicalizedResource { + param( + [Parameter(Mandatory = $true)][string] $AccountName, + [Parameter(Mandatory = $true)][ValidateSet('blob', 'queue', 'file', 'table')] [string] $Service, + [Parameter(Mandatory = $true)][string] $ResourcePath + ) + $decodedPath = [System.Web.HttpUtility]::UrlDecode(($ResourcePath.TrimStart('/'))) + switch ($Service) { + 'blob' { return "/blob/$AccountName/$decodedPath" } + 'queue' { return "/queue/$AccountName/$decodedPath" } + 'file' { return "/file/$AccountName/$decodedPath" } + 'table' { return "/table/$AccountName/$decodedPath" } + } + } + + function _NewSharedKeySignature { + param( + [Parameter(Mandatory = $true)][string] $AccountKey, + [Parameter(Mandatory = $true)][string] $StringToSign + ) + $keyBytes = [Convert]::FromBase64String($AccountKey) + $hmac = [System.Security.Cryptography.HMACSHA256]::new($keyBytes) + try { + $bytes = [System.Text.Encoding]::UTF8.GetBytes($StringToSign) + $sig = $hmac.ComputeHash($bytes) + return [Convert]::ToBase64String($sig) + } finally { $hmac.Dispose() } + } + + # Parse connection string for emulator/provided endpoints + $ProvidedEndpoint = $null + $ProvidedPath = $null + $EmulatorHost = $null + $EndpointSuffix = 'core.windows.net' + + if ($ConnectionString) { + $conn = @{} + foreach ($part in ($ConnectionString -split ';')) { + $p = $part.Trim() + if ($p -and $p -match '^(.+?)=(.+)$') { $conn[$matches[1]] = $matches[2] } + } + if ($conn['EndpointSuffix']) { $EndpointSuffix = $conn['EndpointSuffix'] } + + $ServiceCapitalized = [char]::ToUpper($Service[0]) + $Service.Substring(1) + $EndpointKey = "${ServiceCapitalized}Endpoint" + if ($conn[$EndpointKey]) { + $ProvidedEndpoint = $conn[$EndpointKey] + $ep = [Uri]::new($ProvidedEndpoint) + $Protocol = $ep.Scheme + $EmulatorHost = $ep.Host + if ($ep.Port -ne -1) { $EmulatorHost = "$($ep.Host):$($ep.Port)" } + $ProvidedPath = $ep.AbsolutePath.TrimEnd('/') + } elseif ($conn['UseDevelopmentStorage'] -eq 'true') { + # Emulator defaults + if (-not $AccountName) { $AccountName = 'devstoreaccount1' } + if (-not $AccountKey) { $AccountKey = 'Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==' } + $Protocol = 'http' + $ports = @{ blob = 10000; queue = 10001; table = 10002 } + $EmulatorHost = "127.0.0.1:$($ports[$Service])" + } + } + + # Build the resource URI + if ($ResourcePath.StartsWith('/')) { $ResourcePath = $ResourcePath.TrimStart('/') } + $UriBuilder = [System.UriBuilder]::new() + $UriBuilder.Scheme = $Protocol + + if ($ProvidedEndpoint) { + # Use provided endpoint + its base path + if ($EmulatorHost -match '^(.+?):(\d+)$') { $UriBuilder.Host = $matches[1]; $UriBuilder.Port = [int]$matches[2] } + else { $UriBuilder.Host = $EmulatorHost } + $UriBuilder.Path = ("$ProvidedPath/$ResourcePath").Replace('//', '/') + } elseif ($EmulatorHost) { + # Emulator: include account name in path + if ($EmulatorHost -match '^(.+?):(\d+)$') { $UriBuilder.Host = $matches[1]; $UriBuilder.Port = [int]$matches[2] } + else { $UriBuilder.Host = $EmulatorHost } + $UriBuilder.Path = "$AccountName/$ResourcePath" + } else { + # Standard Azure endpoint + $UriBuilder.Host = "$AccountName.$Service.$EndpointSuffix" + $UriBuilder.Path = $ResourcePath + } + $uri = $UriBuilder.Uri + + # Canonicalized resource for SAS string-to-sign (service-name style, 2015-02-21+) + $canonicalizedResource = _GetCanonicalizedResource -AccountName $AccountName -Service $Service -ResourcePath $ResourcePath + + # Time formatting per SAS spec (ISO 8601 UTC) + function _FormatSasTime($dt) { + if ($null -eq $dt) { return '' } + if ($dt -is [string]) { + if ([string]::IsNullOrWhiteSpace($dt)) { return '' } + $parsed = [DateTime]::Parse($dt, [System.Globalization.CultureInfo]::InvariantCulture, [System.Globalization.DateTimeStyles]::AssumeUniversal) + $utc = $parsed.ToUniversalTime() + return $utc.ToString('yyyy-MM-ddTHH:mm:ssZ') + } + if ($dt -is [DateTime]) { + $utc = ([DateTime]$dt).ToUniversalTime() + return $utc.ToString('yyyy-MM-ddTHH:mm:ssZ') + } + return '' + } + + $st = _FormatSasTime $StartTime + $se = _FormatSasTime $ExpiryTime + if ([string]::IsNullOrEmpty($se)) { throw 'ExpiryTime is required for SAS generation.' } + + # Assemble query parameters (service-specific) + $q = @{} + $q['sp'] = $Permissions + if ($st) { $q['st'] = $st } + $q['se'] = $se + if ($IP) { $q['sip'] = $IP } + if ($Protocol) { $q['spr'] = $Protocol } + if ($Version) { $q['sv'] = $Version } + if ($SignedIdentifier) { $q['si'] = $SignedIdentifier } + + # Blob/Files response headers overrides + if ($CacheControl) { $q['rscc'] = $CacheControl } + if ($ContentDisposition) { $q['rscd'] = $ContentDisposition } + if ($ContentEncoding) { $q['rsce'] = $ContentEncoding } + if ($ContentLanguage) { $q['rscl'] = $ContentLanguage } + if ($ContentType) { $q['rsct'] = $ContentType } + + # Resource-type specifics + $includeEncryptionScope = $false + if ($Service -eq 'blob') { + if (-not $SignedResource) { throw 'SignedResource (sr) is required for blob SAS: use b, c, d, bv, or bs.' } + $q['sr'] = $SignedResource + # Blob snapshot time uses the 'snapshot' parameter when applicable + if ($SnapshotTime) { $q['snapshot'] = $SnapshotTime } + if ($SignedResource -eq 'd') { + if ($null -eq $DirectoryDepth) { throw 'DirectoryDepth (sdd) is required when sr=d (Data Lake Hierarchical Namespace).' } + $q['sdd'] = [string]$DirectoryDepth + } + if ($EncryptionScope -and $Version -ge '2020-12-06') { + $q['ses'] = $EncryptionScope + $includeEncryptionScope = $true + } + } elseif ($Service -eq 'file') { + if (-not $SignedResource) { throw 'SignedResource (sr) is required for file SAS: use f or s.' } + $q['sr'] = $SignedResource + if ($SnapshotTime) { $q['sst'] = $SnapshotTime } + } elseif ($Service -eq 'table') { + # Table SAS may include ranges (spk/srk/epk/erk), omitted here unless future parameters are added + # Table also uses tn (table name) in query, but canonicalizedResource already includes table name + # We rely on canonicalizedResource and omit tn unless specified by callers via ResourcePath + } elseif ($Service -eq 'queue') { + # No sr for queue + } + + # Construct string-to-sign based on service and version + $StringToSign = $null + if ($Service -eq 'blob') { + # Version 2018-11-09 and later (optionally 2020-12-06 with encryption scope) + $fields = @( + $q['sp'], + ($st ?? ''), + $q['se'], + $canonicalizedResource, + ($q.ContainsKey('si') ? $q['si'] : ''), + ($q.ContainsKey('sip') ? $q['sip'] : ''), + ($q.ContainsKey('spr') ? $q['spr'] : ''), + ($q.ContainsKey('sv') ? $q['sv'] : ''), + $q['sr'], + ($q.ContainsKey('snapshot') ? $q['snapshot'] : ''), + ($includeEncryptionScope ? $q['ses'] : ''), + ($q.ContainsKey('rscc') ? $q['rscc'] : ''), + ($q.ContainsKey('rscd') ? $q['rscd'] : ''), + ($q.ContainsKey('rsce') ? $q['rsce'] : ''), + ($q.ContainsKey('rscl') ? $q['rscl'] : ''), + ($q.ContainsKey('rsct') ? $q['rsct'] : '') + ) + $StringToSign = ($fields -join "`n") + } elseif ($Service -eq 'file') { + # Use 2015-04-05+ format (no signedResource in string until 2018-11-09; we include response headers) + $fields = @( + $q['sp'], + ($st ?? ''), + $q['se'], + $canonicalizedResource, + ($q.ContainsKey('si') ? $q['si'] : ''), + ($q.ContainsKey('sip') ? $q['sip'] : ''), + ($q.ContainsKey('spr') ? $q['spr'] : ''), + ($q.ContainsKey('sv') ? $q['sv'] : ''), + ($q.ContainsKey('rscc') ? $q['rscc'] : ''), + ($q.ContainsKey('rscd') ? $q['rscd'] : ''), + ($q.ContainsKey('rsce') ? $q['rsce'] : ''), + ($q.ContainsKey('rscl') ? $q['rscl'] : ''), + ($q.ContainsKey('rsct') ? $q['rsct'] : '') + ) + $StringToSign = ($fields -join "`n") + } elseif ($Service -eq 'queue') { + # Version 2015-04-05 and later + $fields = @( + $q['sp'], + ($st ?? ''), + $q['se'], + $canonicalizedResource, + ($q.ContainsKey('si') ? $q['si'] : ''), + ($q.ContainsKey('sip') ? $q['sip'] : ''), + ($q.ContainsKey('spr') ? $q['spr'] : ''), + ($q.ContainsKey('sv') ? $q['sv'] : '') + ) + $StringToSign = ($fields -join "`n") + } elseif ($Service -eq 'table') { + # Version 2015-04-05 and later + $fields = @( + $q['sp'], + ($st ?? ''), + $q['se'], + $canonicalizedResource, + ($q.ContainsKey('si') ? $q['si'] : ''), + ($q.ContainsKey('sip') ? $q['sip'] : ''), + ($q.ContainsKey('spr') ? $q['spr'] : ''), + ($q.ContainsKey('sv') ? $q['sv'] : ''), + '', # startingPartitionKey + '', # startingRowKey + '', # endingPartitionKey + '' # endingRowKey + ) + $StringToSign = ($fields -join "`n") + } + + # Generate signature using account key (HMAC-SHA256 over UTF-8 string-to-sign) + try { + $SignatureBase64 = _NewSharedKeySignature -AccountKey $AccountKey -StringToSign $StringToSign + } catch { + throw "Failed to create SAS signature: $($_.Exception.Message)" + } + + # Store signature; will be URL-encoded when assembling query + $q['sig'] = $SignatureBase64 + + # Compose ordered query for readability (common fields first) + $orderedKeys = @('sp', 'st', 'se', 'sip', 'spr', 'sv', 'sr', 'si', 'snapshot', 'ses', 'sdd', 'rscc', 'rscd', 'rsce', 'rscl', 'rsct', 'sig') + $parts = [System.Collections.Generic.List[string]]::new() + foreach ($k in $orderedKeys) { + if ($q.ContainsKey($k) -and -not [string]::IsNullOrEmpty($q[$k])) { + $parts.Add("$k=" + [System.Net.WebUtility]::UrlEncode($q[$k])) + } + } + # Include any remaining keys + foreach ($k in $q.Keys) { + if ($orderedKeys -notcontains $k) { + $parts.Add("$k=" + [System.Net.WebUtility]::UrlEncode($q[$k])) + } + } + + $token = '?' + ($parts -join '&') + + # Return structured output for debugging/usage + [PSCustomObject]@{ + Token = $token + Query = $q + CanonicalizedResource = $canonicalizedResource + StringToSign = $StringToSign + Version = $Version + Service = $Service + ResourceUri = $uri.AbsoluteUri + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/New-CIPPAzStorageRequest.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-CIPPAzStorageRequest.ps1 new file mode 100644 index 000000000000..96f2cd729593 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/New-CIPPAzStorageRequest.ps1 @@ -0,0 +1,946 @@ +function New-CIPPAzStorageRequest { + <# + .SYNOPSIS + Create and send a REST request to Azure Storage APIs using Shared Key authorization + .DESCRIPTION + Wraps Invoke-RestMethod with automatic Azure Storage Shared Key authentication. + Parses AzureWebJobsStorage connection string and generates authorization headers. + Supports Blob, Queue, and Table storage services. + .PARAMETER Service + The Azure Storage service (blob, queue, table, file) + .PARAMETER Resource + The resource path (e.g., 'tables', 'myqueue/messages') + .PARAMETER QueryParams + Optional hashtable of query string parameters + .PARAMETER Method + The HTTP method (GET, POST, PUT, PATCH, DELETE, HEAD, etc.). Defaults to GET. + .PARAMETER Body + The request body (can be string, hashtable, or PSCustomObject) + .PARAMETER Headers + Additional headers to include in the request. Authorization header is automatically added. + .PARAMETER ContentType + The content type of the request body + .PARAMETER ConnectionString + Azure Storage connection string. Defaults to $env:AzureWebJobsStorage + .PARAMETER MaxRetries + Maximum number of retry attempts for transient failures. Defaults to 3. + .EXAMPLE + New-CIPPStorageRequest -Service 'table' -Resource 'tables' + Lists all tables in storage account (returns PSObjects) + .EXAMPLE + New-CIPPStorageRequest -Service 'queue' -Resource 'myqueue/messages' -Method DELETE + Clears messages from a queue + .EXAMPLE + New-CIPPStorageRequest -Service 'queue' -Component 'list' + Lists queues (returns PSObjects with Name and optional Metadata) + .EXAMPLE + New-CIPPStorageRequest -Service 'blob' -Component 'list' + Lists blob containers (returns PSObjects with Name and Properties) + .LINK + https://learn.microsoft.com/en-us/rest/api/storageservices/authorize-with-shared-key + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true, Position = 0)] + [ValidateSet('blob', 'queue', 'table', 'file')] + [string]$Service, + + [Parameter(Mandatory = $false, Position = 1)] + [string]$Resource, + + [Parameter(Mandatory = $false, Position = 2)] + [string]$Component, + + [Parameter(Mandatory = $false)] + [hashtable]$QueryParams, + + [Parameter(Mandatory = $false)] + [ValidateSet('GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS')] + [string]$Method = 'GET', + + [Parameter(Mandatory = $false)] + [object]$Body, + + [Parameter(Mandatory = $false)] + [hashtable]$Headers = @{}, + + [Parameter(Mandatory = $false)] + [string]$ContentType, + + [Parameter(Mandatory = $false)] + [string]$ConnectionString = $env:AzureWebJobsStorage, + + [Parameter(Mandatory = $false)] + [int]$MaxRetries = 3 + ) + + # Helper: robustly convert XML string to XmlDocument (handles BOM/whitespace) + function Convert-XmlStringToDocument { + param( + [Parameter(Mandatory = $true)][string]$XmlText + ) + # Normalize: trim leading BOM and whitespace + $normalized = $XmlText + # Remove UTF-8 BOM if present + if ($normalized.Length -gt 0 -and [int][char]$normalized[0] -eq 65279) { + $normalized = $normalized.Substring(1) + } + $normalized = $normalized.Trim() + + $settings = [System.Xml.XmlReaderSettings]::new() + $settings.IgnoreWhitespace = $true + $settings.DtdProcessing = [System.Xml.DtdProcessing]::Ignore + $sr = [System.IO.StringReader]::new($normalized) + try { + $xr = [System.Xml.XmlReader]::Create($sr, $settings) + $doc = [System.Xml.XmlDocument]::new() + $doc.Load($xr) + $xr.Dispose() + $sr.Dispose() + return $doc + } catch { + try { if ($xr) { $xr.Dispose() } } catch {} + try { if ($sr) { $sr.Dispose() } } catch {} + throw $_ + } + } + + # Helper: compute Shared Key HMAC-SHA256 signature (Base64 over UTF-8 string) + function New-SharedKeySignature { + param( + [Parameter(Mandatory = $true)][string]$AccountKey, + [Parameter(Mandatory = $true)][string]$StringToSign + ) + try { + $KeyBytes = [Convert]::FromBase64String($AccountKey) + $Hmac = [System.Security.Cryptography.HMACSHA256]::new($KeyBytes) + $StringBytes = [System.Text.Encoding]::UTF8.GetBytes($StringToSign) + $SignatureBytes = $Hmac.ComputeHash($StringBytes) + $Hmac.Dispose() + return [Convert]::ToBase64String($SignatureBytes) + } catch { + throw $_ + } + } + + # Helper: canonicalize x-ms-* headers (lowercase names, sort ascending, collapse whitespace) + function Get-CanonicalizedXmsHeaders { + param( + [Parameter(Mandatory = $true)][hashtable]$Headers + ) + $CanonicalizedHeadersList = [System.Collections.Generic.List[string]]::new() + $XmsHeaders = $Headers.Keys | Where-Object { $_ -like 'x-ms-*' } | Sort-Object + foreach ($Header in $XmsHeaders) { + $HeaderName = $Header.ToLowerInvariant() + $HeaderValue = $Headers[$Header] -replace '\s+', ' ' + $CanonicalizedHeadersList.Add("${HeaderName}:${HeaderValue}") + } + return ($CanonicalizedHeadersList -join "`n") + } + + # Helper: canonicalize resource for Shared Key + function Get-CanonicalizedResourceSharedKey { + param( + [Parameter(Mandatory = $true)][string]$AccountName, + [Parameter(Mandatory = $true)][uri]$Uri, + [switch]$TableFormat + ) + $CanonicalizedResource = "/$AccountName" + $Uri.AbsolutePath + if ($TableFormat) { + if ($Uri.Query) { + try { + $parsed = [System.Web.HttpUtility]::ParseQueryString($Uri.Query) + $compVal = $parsed['comp'] + if ($compVal) { $CanonicalizedResource += "?comp=$compVal" } + } catch { } + } + return $CanonicalizedResource + } + if ($Uri.Query) { + $ParsedQueryParams = [System.Web.HttpUtility]::ParseQueryString($Uri.Query) + $CanonicalizedParams = [System.Collections.Generic.List[string]]::new() + foreach ($Key in ($ParsedQueryParams.AllKeys | Sort-Object)) { + $Value = $ParsedQueryParams[$Key] + $CanonicalizedParams.Add("$($Key.ToLowerInvariant()):$Value") + } + if ($CanonicalizedParams.Count -gt 0) { + $CanonicalizedResource += "`n" + ($CanonicalizedParams -join "`n") + } + } + return $CanonicalizedResource + } + + # Helper: build StringToSign for Blob/Queue/File + function Get-StringToSignBlobQueueFile { + param( + [Parameter(Mandatory = $true)][string]$Method, + [Parameter()][string]$ContentType, + [Parameter(Mandatory = $true)][hashtable]$Headers, + [Parameter()][string]$CanonicalizedHeaders, + [Parameter(Mandatory = $true)][string]$CanonicalizedResource + ) + $ContentLengthString = '' + if ($Headers.ContainsKey('Content-Length')) { + $cl = [string]$Headers['Content-Length'] + if ($cl -ne '0') { $ContentLengthString = $cl } + } + $parts = @( + $Method.ToUpperInvariant() + if ($Headers['Content-Encoding']) { $Headers['Content-Encoding'] } else { '' } + if ($Headers['Content-Language']) { $Headers['Content-Language'] } else { '' } + $ContentLengthString + '' + if ($ContentType) { $ContentType } else { '' } + '' + if ($Headers['If-Modified-Since']) { $Headers['If-Modified-Since'] } else { '' } + if ($Headers['If-Match']) { $Headers['If-Match'] } else { '' } + if ($Headers['If-None-Match']) { $Headers['If-None-Match'] } else { '' } + if ($Headers['If-Unmodified-Since']) { $Headers['If-Unmodified-Since'] } else { '' } + if ($Headers['Range']) { $Headers['Range'] } else { '' } + ) + $str = ($parts -join "`n") + if ($CanonicalizedHeaders) { $str += "`n" + $CanonicalizedHeaders } + $str += "`n" + $CanonicalizedResource + return $str + } + + # Helper: build StringToSign for Table + function Get-StringToSignTable { + param( + [Parameter(Mandatory = $true)][string]$Method, + [Parameter()][string]$ContentType, + [Parameter(Mandatory = $true)][string]$Date, + [Parameter(Mandatory = $true)][string]$CanonicalizedResource + ) + $contentTypeForSign = if ($ContentType) { $ContentType } else { '' } + return ($Method.ToUpperInvariant() + "`n" + '' + "`n" + $contentTypeForSign + "`n" + $Date + "`n" + $CanonicalizedResource) + } + + # Parse connection string + try { + # Initialize variables + $ProvidedEndpoint = $null + $ProvidedPath = $null + $EmulatorHost = $null + $EndpointSuffix = $null + $Protocol = $null + + Write-Verbose 'Parsing connection string' + $ConnectionParams = @{} + $ConnectionString -split ';' | ForEach-Object { + $Part = $_.Trim() + if ($Part -and $Part -match '^(.+?)=(.+)$') { + $ConnectionParams[$matches[1]] = $matches[2] + } + } + + Write-Verbose "Connection string parsed. Keys: $($ConnectionParams.Keys -join ', ')" + + # For development storage, use default account name if not provided + if ($ConnectionParams['UseDevelopmentStorage'] -eq 'true') { + $AccountName = $ConnectionParams['AccountName'] ?? 'devstoreaccount1' + $AccountKey = $ConnectionParams['AccountKey'] ?? 'Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==' + Write-Verbose 'Using development storage defaults' + } else { + $AccountName = $ConnectionParams['AccountName'] + $AccountKey = $ConnectionParams['AccountKey'] + } + + $AccountKeyMasked = if ($AccountKey) { '***' } else { 'NOT FOUND' } + + Write-Verbose "AccountName: $AccountName, AccountKey: $AccountKeyMasked" + + if (-not $AccountName) { + throw 'Connection string must contain AccountName' + } + + # For localhost (emulator), use default key if not provided + if (-not $AccountKey) { + if ($ConnectionParams[$EndpointKey] -and $ConnectionParams[$EndpointKey] -match '127\.0\.0\.1') { + $AccountKey = 'Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==' + Write-Verbose 'Using default emulator key for 127.0.0.1' + } else { + throw 'Connection string must contain AccountKey for non-emulator storage' + } + } + + # Check for service-specific endpoint (e.g., BlobEndpoint, QueueEndpoint, TableEndpoint) + $ServiceCapitalized = [char]::ToUpper($Service[0]) + $Service.Substring(1) + $EndpointKey = "${ServiceCapitalized}Endpoint" + $ProvidedEndpoint = $ConnectionParams[$EndpointKey] + + Write-Verbose "Looking for endpoint key: $EndpointKey" + + if ($ProvidedEndpoint) { + Write-Verbose "Found provided endpoint: $ProvidedEndpoint" + # Parse provided endpoint + $EndpointUri = [System.Uri]::new($ProvidedEndpoint) + $Protocol = $EndpointUri.Scheme + $EmulatorHost = "$($EndpointUri.Host)" + if ($EndpointUri.Port -ne -1) { + $EmulatorHost += ":$($EndpointUri.Port)" + } + # Path will be used for canonicalized resource + $ProvidedPath = $EndpointUri.AbsolutePath.TrimEnd('/') + Write-Verbose "Parsed endpoint - Protocol: $Protocol, Host: $EmulatorHost, Path: $ProvidedPath" + } + # Check for development storage emulator + elseif ($ConnectionParams['UseDevelopmentStorage'] -eq 'true') { + Write-Verbose 'Using development storage emulator' + $Protocol = 'http' + # Map service to emulator port + $ServicePorts = @{ + 'blob' = 10000 + 'queue' = 10001 + 'table' = 10002 + } + $EmulatorHost = "127.0.0.1:$($ServicePorts[$Service])" + Write-Verbose "Emulator host: $EmulatorHost" + } else { + Write-Verbose 'Using standard Azure Storage' + # Extract endpoint suffix and protocol + $EndpointSuffix = $ConnectionParams['EndpointSuffix'] + if (-not $EndpointSuffix) { + $EndpointSuffix = 'core.windows.net' + } + + $Protocol = $ConnectionParams['DefaultEndpointsProtocol'] + if (-not $Protocol) { + $Protocol = 'https' + } + Write-Verbose "Protocol: $Protocol, EndpointSuffix: $EndpointSuffix" + } + } catch { + Write-Error "Failed to parse connection string: $($_.Exception.Message)" + return + } + + # Build URI using UriBuilder + Write-Verbose "Building URI - Service: $Service, Resource: $Resource" + + # Treat Resource strictly as a path; only Component/QueryParams build queries + $ResourcePath = $Resource + $InlineQueryString = $null + if ($Component) { + $InlineQueryString = "comp=$Component" + Write-Verbose "Using component -> comp=$Component" + } + + $UriBuilder = [System.UriBuilder]::new() + $UriBuilder.Scheme = $Protocol + + if ($ProvidedEndpoint) { + # Use provided endpoint host - split host and port if present + if ($EmulatorHost -match '^(.+?):(\d+)$') { + $UriBuilder.Host = $matches[1] + $UriBuilder.Port = [int]$matches[2] + Write-Verbose "Set host with port - Host: $($matches[1]), Port: $($matches[2])" + } else { + $UriBuilder.Host = $EmulatorHost + } + # Build path from provided endpoint base + resource + $FullResourcePath = "$ProvidedPath/$ResourcePath".Replace('//', '/') + $UriBuilder.Path = $FullResourcePath + Write-Verbose "Using provided endpoint - Host: $EmulatorHost, Path: $FullResourcePath" + } elseif ($EmulatorHost) { + # Emulator without provided endpoint - split host and port if present + if ($EmulatorHost -match '^(.+?):(\d+)$') { + $UriBuilder.Host = $matches[1] + $UriBuilder.Port = [int]$matches[2] + Write-Verbose "Set host with port - Host: $($matches[1]), Port: $($matches[2])" + } else { + $UriBuilder.Host = $EmulatorHost + } + $UriBuilder.Path = "$AccountName/$ResourcePath" + Write-Verbose "Using emulator - Host: $EmulatorHost, Path: $AccountName/$ResourcePath" + } else { + # Standard Azure Storage + $UriBuilder.Host = "$AccountName.$Service.$EndpointSuffix" + $UriBuilder.Path = $ResourcePath + Write-Verbose "Using standard Azure Storage - Host: $AccountName.$Service.$EndpointSuffix, Path: $ResourcePath" + } + + # Build query string from both explicit QueryParams and inline query string + $QueryString = [System.Web.HttpUtility]::ParseQueryString('') + + # Add inline query string if present (from Component only) + if ($InlineQueryString) { + Write-Verbose "Adding inline query string: $InlineQueryString" + foreach ($Param in $InlineQueryString -split '&') { + $Key, $Value = $Param -split '=', 2 + $QueryString.Add([System.Web.HttpUtility]::UrlDecode($Key), [System.Web.HttpUtility]::UrlDecode($Value)) + } + } + + # Add explicit QueryParams + if ($QueryParams) { + Write-Verbose "Adding query parameters: $($QueryParams.Keys -join ', ')" + foreach ($Key in $QueryParams.Keys) { + $QueryString.Add($Key, $QueryParams[$Key]) + } + } + + # Ensure comp from Component is set even if QueryParams provided (QueryParams can override) + if ($Component -and -not $QueryString['comp']) { + $QueryString.Add('comp', $Component) + } + + if ($QueryString.Count -gt 0) { + $UriBuilder.Query = $QueryString.ToString() + Write-Verbose "Final query string: $($UriBuilder.Query)" + } + + $Uri = $UriBuilder.Uri + Write-Verbose "Final URI: $Uri" + + # Initialize request headers + $RequestHeaders = @{} + $currentDateRfc = [DateTime]::UtcNow.ToString('R', [System.Globalization.CultureInfo]::InvariantCulture) + # Default a recent stable service version if none supplied by caller (Blob/Queue/File) + $RequestHeaders['x-ms-version'] = '2023-11-03' + + # Add Table service specific headers + if ($Service -eq 'table') { + # Table service: align with Az (SharedKey). Table uses Date (never empty) and may also set x-ms-date to same value + $RequestHeaders['x-ms-date'] = $currentDateRfc + $RequestHeaders['Date'] = $currentDateRfc + $RequestHeaders['x-ms-version'] = '2017-07-29' + $RequestHeaders['Accept'] = 'application/json; odata=minimalmetadata' + $RequestHeaders['DataServiceVersion'] = '3.0;' + $RequestHeaders['MaxDataServiceVersion'] = '3.0;NetFx' + $RequestHeaders['Accept-Charset'] = 'utf-8' + } else { + # Blob/Queue/File use x-ms-date + $RequestHeaders['x-ms-date'] = $currentDateRfc + } + + # Build canonical headers and resource + $UtcNow = $currentDateRfc + + # Determine storage service headers already set; no unused version variable + + # Build canonicalized resource - format differs by service + if ($Service -eq 'table') { + # Table Service canonicalized resource + $CanonicalizedResource = Get-CanonicalizedResourceSharedKey -AccountName $AccountName -Uri $Uri -TableFormat + Write-Verbose "Table Service canonicalized resource: $CanonicalizedResource" + # Build string to sign for Table Service (SharedKey) + # Per docs, Table SharedKey DOES NOT include CanonicalizedHeaders. Date is never empty. + $StringToSign = Get-StringToSignTable -Method $Method -ContentType $ContentType -Date $RequestHeaders['Date'] -CanonicalizedResource $CanonicalizedResource + Write-Verbose 'Using SharedKey format (Table Service)' + + Write-Verbose "String to sign (escaped): $($StringToSign -replace "`n", '\n')" + Write-Verbose "String to sign length: $($StringToSign.Length)" + + # Generate signature + try { $Signature = New-SharedKeySignature -AccountKey $AccountKey -StringToSign $StringToSign; Write-Verbose "Generated signature: $Signature" } + catch { Write-Error "Failed to generate signature: $($_.Exception.Message)"; return } + + # Add authorization header + $RequestHeaders['Authorization'] = "SharedKey ${AccountName}:${Signature}" + Write-Verbose "Authorization header: SharedKey ${AccountName}:$($Signature.Substring(0, [Math]::Min(10, $Signature.Length)))..." + + # Headers for Table response already set (Accept minimalmetadata etc.) + + # Merge user-provided headers + foreach ($Key in $Headers.Keys) { + $RequestHeaders[$Key] = $Headers[$Key] + } + + # Build Invoke-RestMethod parameters for Table Service + $RestMethodParams = @{ + Uri = $Uri + Method = $Method + Headers = $RequestHeaders + ErrorAction = 'Stop' + } + + if ($Body) { + if ($Body -is [string]) { + $RestMethodParams['Body'] = $Body + } elseif ($Body -is [byte[]]) { + $RestMethodParams['Body'] = $Body + } else { + $RestMethodParams['Body'] = ($Body | ConvertTo-Json -Depth 10 -Compress) + } + } + + if ($ContentType) { + $RestMethodParams['ContentType'] = $ContentType + } + } else { + # Blob/Queue/File canonicalized resource + $CanonicalizedResource = Get-CanonicalizedResourceSharedKey -AccountName $AccountName -Uri $Uri + Write-Verbose "Blob/Queue/File canonicalized resource: $($CanonicalizedResource -replace "`n", ' | ')" + + # Do not force JSON Accept on blob/queue; service returns XML for list ops + if (-not $RequestHeaders.ContainsKey('Accept')) { + if ($Service -eq 'blob') { + $isList = (($Component -eq 'list') -or ($Uri.Query -match 'comp=list')) + if ($isList) { $RequestHeaders['Accept'] = 'application/xml' } + } elseif ($Service -eq 'queue') { + $RequestHeaders['Accept'] = 'application/xml' + } + # For Azure Files, avoid forcing Accept; binary downloads should be raw bytes + } + + # Merge user-provided headers (these override defaults) + foreach ($Key in $Headers.Keys) { + $RequestHeaders[$Key] = $Headers[$Key] + } + + # Add Content-Length for PUT/POST/PATCH + $ContentLength = 0 + if ($Body) { + if ($Body -is [string]) { + $ContentLength = [System.Text.Encoding]::UTF8.GetByteCount($Body) + } elseif ($Body -is [byte[]]) { + $ContentLength = $Body.Length + } else { + $BodyJson = $Body | ConvertTo-Json -Depth 10 -Compress + $ContentLength = [System.Text.Encoding]::UTF8.GetByteCount($BodyJson) + } + } + + if ($Method -in @('PUT', 'POST', 'PATCH')) { + $RequestHeaders['Content-Length'] = $ContentLength.ToString() + } + + # Blob upload: default to BlockBlob when performing a simple Put Blob (no comp parameter) + if ($Service -eq 'blob') { + $isCompSpecified = ($Component) -or ($Uri.Query -match 'comp=') + if ($Method -eq 'PUT' -and -not $isCompSpecified) { + if (-not $RequestHeaders.ContainsKey('x-ms-blob-type')) { $RequestHeaders['x-ms-blob-type'] = 'BlockBlob' } + } + } + + # Azure Files specific conveniences and validations + if ($Service -eq 'file') { + # Create file: PUT to file path without comp=range should specify x-ms-type and x-ms-content-length; body typically empty + $isRangeOp = ($Component -eq 'range') -or ($Uri.Query -match 'comp=range') + if ($Method -eq 'PUT' -and -not $isRangeOp) { + if (-not $RequestHeaders.ContainsKey('x-ms-type')) { $RequestHeaders['x-ms-type'] = 'file' } + # x-ms-content-length is required for create; if not provided by caller, try to infer from header Content-Length when body is empty + if (-not $RequestHeaders.ContainsKey('x-ms-content-length')) { + if ($ContentLength -eq 0) { + # Caller must supply x-ms-content-length for file size; fail fast for correctness + Write-Error 'Azure Files create operation requires header x-ms-content-length specifying file size in bytes.' + return + } else { + # If body present, assume immediate range upload is intended; advise using comp=range + Write-Verbose 'Body detected on Azure Files PUT without comp=range; consider using comp=range for content upload.' + } + } + } elseif ($Method -eq 'PUT' -and $isRangeOp) { + # Range upload must include x-ms-write and x-ms-range + if (-not $RequestHeaders.ContainsKey('x-ms-write')) { $RequestHeaders['x-ms-write'] = 'update' } + if (-not $RequestHeaders.ContainsKey('x-ms-range')) { + Write-Error 'Azure Files range upload requires header x-ms-range (e.g., bytes=0-).' + return + } + } + } + + # Build canonicalized headers (x-ms-*) + $CanonicalizedHeaders = Get-CanonicalizedXmsHeaders -Headers $RequestHeaders + + Write-Verbose "CanonicalizedHeaders: $($CanonicalizedHeaders -replace "`n", '\n')" + + # Build string to sign for Blob/Queue/File + $StringToSign = Get-StringToSignBlobQueueFile -Method $Method -ContentType $ContentType -Headers $RequestHeaders -CanonicalizedHeaders $CanonicalizedHeaders -CanonicalizedResource $CanonicalizedResource + Write-Verbose 'Using SharedKey format (Blob/Queue/File)' + + Write-Verbose "String to sign (escaped): $($StringToSign -replace "`n", '\n')" + Write-Verbose "String to sign length: $($StringToSign.Length)" + + # Generate signature + try { $Signature = New-SharedKeySignature -AccountKey $AccountKey -StringToSign $StringToSign; Write-Verbose "Generated signature: $Signature" } + catch { Write-Error "Failed to generate signature: $($_.Exception.Message)"; return } + + # Add authorization header + $RequestHeaders['Authorization'] = "SharedKey ${AccountName}:${Signature}" + Write-Verbose "Authorization header: SharedKey ${AccountName}:$($Signature.Substring(0, [Math]::Min(10, $Signature.Length)))..." + + # Build Invoke-RestMethod parameters + $RestMethodParams = @{ + Uri = $Uri + Method = $Method + Headers = $RequestHeaders + ErrorAction = 'Stop' + } + + if ($Body) { + if ($Body -is [string]) { + $RestMethodParams['Body'] = $Body + } elseif ($Body -is [byte[]]) { + $RestMethodParams['Body'] = $Body + } else { + $RestMethodParams['Body'] = ($Body | ConvertTo-Json -Depth 10 -Compress) + } + } + + if ($ContentType) { + $RestMethodParams['ContentType'] = $ContentType + } + } + + # Invoke with retry logic + $RetryCount = 0 + $RequestSuccessful = $false + + Write-Information "$($Method.ToUpper()) [ $Uri ] | attempt: $($RetryCount + 1) of $MaxRetries" + + $TriedAltTableAuth = $false + $UseInvokeWebRequest = $false + if ($Service -eq 'queue' -and (($Component -eq 'metadata') -or ($Uri.Query -match 'comp=metadata'))) { + # Use Invoke-WebRequest to access response headers for queue metadata + $UseInvokeWebRequest = $true + } elseif ($Method -eq 'DELETE') { + # For other DELETE operations across services, prefer capturing headers/status + $UseInvokeWebRequest = $true + } elseif ($Service -eq 'file' -and $Method -eq 'GET' -and -not (($Component -eq 'list') -or ($Uri.Query -match 'comp=list') -or ($Uri.Query -match 'comp=properties') -or ($Uri.Query -match 'comp=metadata'))) { + # For Azure Files binary downloads, use Invoke-WebRequest and return bytes + $UseInvokeWebRequest = $true + } elseif ($Service -eq 'blob' -and $Method -eq 'GET' -and -not (($Component -eq 'list') -or ($Uri.Query -match 'comp=list') -or ($Uri.Query -match 'comp=metadata') -or ($Uri.Query -match 'comp=properties'))) { + # For Blob binary downloads, use Invoke-WebRequest and return bytes (memory stream, no filesystem) + $UseInvokeWebRequest = $true + } + do { + try { + # Blob: binary GET returns bytes from RawContentStream + if ($UseInvokeWebRequest -and $Service -eq 'blob' -and $Method -eq 'GET' -and -not (($Component -eq 'list') -or ($Uri.Query -match 'comp=list') -or ($Uri.Query -match 'comp=metadata') -or ($Uri.Query -match 'comp=properties'))) { + Write-Verbose 'Processing Blob binary download' + $resp = Invoke-WebRequest @RestMethodParams + $RequestSuccessful = $true + $ms = [System.IO.MemoryStream]::new() + try { $resp.RawContentStream.CopyTo($ms) } catch { } + $bytes = $ms.ToArray() + $hdrHash = @{} + if ($resp -and $resp.Headers) { foreach ($key in $resp.Headers.Keys) { $hdrHash[$key] = $resp.Headers[$key] } } + $reqUri = $null + try { if ($resp -and $resp.BaseResponse -and $resp.BaseResponse.ResponseUri) { $reqUri = $resp.BaseResponse.ResponseUri.AbsoluteUri } } catch { $reqUri = $Uri.AbsoluteUri } + return [PSCustomObject]@{ Bytes = $bytes; Length = $bytes.Length; Headers = $hdrHash; Uri = $reqUri } + } + # Azure Files: binary GET returns bytes + if ($UseInvokeWebRequest -and $Service -eq 'file' -and $Method -eq 'GET' -and -not (($Component -eq 'list') -or ($Uri.Query -match 'comp=list') -or ($Uri.Query -match 'comp=properties') -or ($Uri.Query -match 'comp=metadata'))) { + Write-Verbose 'Processing Azure Files binary download' + $tmp = [System.IO.Path]::GetTempFileName() + try { + $resp = Invoke-WebRequest @RestMethodParams -OutFile $tmp + $RequestSuccessful = $true + $bytes = [System.IO.File]::ReadAllBytes($tmp) + $hdrHash = @{} + if ($resp -and $resp.Headers) { foreach ($key in $resp.Headers.Keys) { $hdrHash[$key] = $resp.Headers[$key] } } + $reqUri = $null + try { if ($resp -and $resp.BaseResponse -and $resp.BaseResponse.ResponseUri) { $reqUri = $resp.BaseResponse.ResponseUri.AbsoluteUri } } catch { $reqUri = $Uri.AbsoluteUri } + return [PSCustomObject]@{ Bytes = $bytes; Length = $bytes.Length; Headers = $hdrHash; Uri = $reqUri } + } finally { + try { if (Test-Path -LiteralPath $tmp) { Remove-Item -LiteralPath $tmp -Force -ErrorAction SilentlyContinue } } catch {} + } + } + # For queue comp=metadata, capture headers-only and return a compact object + if ($UseInvokeWebRequest -and $Service -eq 'queue' -and (($Component -eq 'metadata') -or ($Uri.Query -match 'comp=metadata'))) { + Write-Verbose 'Processing queue metadata response headers' + $resp = Invoke-WebRequest @RestMethodParams + $RequestSuccessful = $true + $respHeaders = $null + if ($resp -and $resp.Headers) { $respHeaders = $resp.Headers } + $approx = $null + $reqUri = $null + try { if ($resp -and $resp.BaseResponse -and $resp.BaseResponse.ResponseUri) { $reqUri = $resp.BaseResponse.ResponseUri.AbsoluteUri } } catch { $reqUri = $null } + if ($respHeaders) { + $val = $null + if ($respHeaders.ContainsKey('x-ms-approximate-messages-count')) { + $val = $respHeaders['x-ms-approximate-messages-count'] + } else { + foreach ($key in $respHeaders.Keys) { if ($key -ieq 'x-ms-approximate-messages-count') { $val = $respHeaders[$key]; break } } + } + if ($null -ne $val) { + $approxStr = if ($val -is [array]) { if ($val.Length -gt 0) { $val[0] } else { $null } } else { $val } + if ($approxStr) { try { $approx = [int]$approxStr } catch { $approx = $null } } + } + } + $hdrHash = @{} + if ($respHeaders) { foreach ($key in $respHeaders.Keys) { $hdrHash[$key] = $respHeaders[$key] } } + return [PSCustomObject]@{ ApproximateMessagesCount = $approx; Headers = $hdrHash; Uri = $reqUri } + } + + # Queue clear messages: DELETE on //messages — return compact response + if ($UseInvokeWebRequest -and $Service -eq 'queue' -and $Method -eq 'DELETE' -and ($Uri.AbsolutePath.ToLower().EndsWith('/messages'))) { + Write-Verbose 'Processing queue clear messages response headers' + $resp = Invoke-WebRequest @RestMethodParams + $RequestSuccessful = $true + $status = $null + $reqUri = $null + $respHeaders = $null + try { if ($resp -and $resp.StatusCode) { $status = [int]$resp.StatusCode } } catch { } + try { if (-not $status -and $resp -and $resp.BaseResponse) { $status = [int]$resp.BaseResponse.StatusCode } } catch { } + try { if ($resp -and $resp.BaseResponse -and $resp.BaseResponse.ResponseUri) { $reqUri = $resp.BaseResponse.ResponseUri.AbsoluteUri } } catch { } + if ($resp -and $resp.Headers) { $respHeaders = $resp.Headers } + $hdrHash = @{} + if ($respHeaders) { foreach ($key in $respHeaders.Keys) { $hdrHash[$key] = $respHeaders[$key] } } + return [PSCustomObject]@{ StatusCode = $status; Headers = $hdrHash; Uri = $reqUri } + } + + # Generic DELETE compact response across services + if ($UseInvokeWebRequest -and $Method -eq 'DELETE') { + Write-Verbose 'Processing generic DELETE response headers' + $resp = Invoke-WebRequest @RestMethodParams + $RequestSuccessful = $true + $status = $null + $reqUri = $null + $respHeaders = $null + try { if ($resp -and $resp.StatusCode) { $status = [int]$resp.StatusCode } } catch { } + try { if (-not $status -and $resp -and $resp.BaseResponse) { $status = [int]$resp.BaseResponse.StatusCode } } catch { } + try { if ($resp -and $resp.BaseResponse -and $resp.BaseResponse.ResponseUri) { $reqUri = $resp.BaseResponse.ResponseUri.AbsoluteUri } } catch { } + if ($resp -and $resp.Headers) { $respHeaders = $resp.Headers } + $hdrHash = @{} + if ($respHeaders) { foreach ($key in $respHeaders.Keys) { $hdrHash[$key] = $respHeaders[$key] } } + return [PSCustomObject]@{ StatusCode = $status; Headers = $hdrHash; Uri = $reqUri } + } + + if ($UseInvokeWebRequest) { $Response = Invoke-WebRequest @RestMethodParams } + else { $Response = Invoke-RestMethod @RestMethodParams } + $RequestSuccessful = $true + + # Generic XML list parser: if response is XML string, parse into PSObjects + if ($Response -is [string]) { + $respText = $Response.Trim() + if ($respText.StartsWith(' [CmdletBinding(DefaultParameterSetName = 'ExoRequest')] - Param( + param( [Parameter(Mandatory = $true, ParameterSetName = 'ExoRequest')] [string]$cmdlet, @@ -43,7 +43,7 @@ function New-ExoRequest { $token = Get-GraphToken -Tenantid $tenantid -scope "$Resource/.default" -AsApp:$AsApp.IsPresent if ($cmdParams) { - #if cmdparams is a pscustomobject, convert to hashtable, otherwise leave as is + #if cmdParams is a pscustomobject, convert to hashtable, otherwise leave as is $Params = $cmdParams } else { $Params = @{} @@ -54,7 +54,7 @@ function New-ExoRequest { Parameters = $Params } } - $ExoBody = Get-CIPPTextReplacement -TenantFilter $tenantid -Text $ExoBody + $ExoBody = Get-CIPPTextReplacement -TenantFilter $tenantid -Text $ExoBody -EscapeForJson $Tenant = Get-Tenants -IncludeErrors | Where-Object { $_.defaultDomainName -eq $tenantid -or $_.customerId -eq $tenantid } if (-not $Tenant -and $NoAuthCheck -eq $true) { @@ -145,7 +145,7 @@ function New-ExoRequest { } until ($null -eq $URL) Write-Verbose ($ResponseHeaders | ConvertTo-Json) - if ($ReturnedData.'@adminapi.warnings' -and $ReturnedData.value -eq $null) { + if ($ReturnedData.'@adminapi.warnings' -and $null -eq $ReturnedData.value) { $ReturnedData.value = $ReturnedData.'@adminapi.warnings' } } catch { diff --git a/Modules/CIPPCore/Public/GraphHelper/New-GraphBulkRequest.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-GraphBulkRequest.ps1 index de474b22f1f7..0b961c534385 100644 --- a/Modules/CIPPCore/Public/GraphHelper/New-GraphBulkRequest.ps1 +++ b/Modules/CIPPCore/Public/GraphHelper/New-GraphBulkRequest.ps1 @@ -3,19 +3,26 @@ function New-GraphBulkRequest { .FUNCTIONALITY Internal #> - Param( + [CmdletBinding()] + param( $tenantid, $NoAuthCheck, $scope, $asapp, $Requests, - $NoPaginateIds = @() + $NoPaginateIds = @(), + [ValidateSet('v1.0', 'beta')] + $Version = 'beta' ) if ($NoAuthCheck -or (Get-AuthorisedRequest -Uri $uri -TenantID $tenantid)) { $headers = Get-GraphToken -tenantid $tenantid -scope $scope -AsApp $asapp - $URL = 'https://graph.microsoft.com/beta/$batch' + if ($script:XMsThrottlePriority) { + $headers['x-ms-throttle-priority'] = $script:XMsThrottlePriority + } + + $URL = "https://graph.microsoft.com/$Version/`$batch" # Track consecutive Graph API failures $TenantsTable = Get-CippTable -tablename Tenants @@ -56,8 +63,20 @@ function New-GraphBulkRequest { } } catch { - $Message = ($_.ErrorDetails.Message | ConvertFrom-Json -ErrorAction SilentlyContinue).error.message - if ($null -eq $Message) { $Message = $($_.Exception.Message) } + # Try to parse ErrorDetails.Message as JSON + if ($_.ErrorDetails.Message) { + try { + $ErrorJson = $_.ErrorDetails.Message | ConvertFrom-Json -ErrorAction Stop + $Message = $ErrorJson.error.message + } catch { + $Message = $_.ErrorDetails.Message + } + } + + if ([string]::IsNullOrEmpty($Message)) { + $Message = $_.Exception.Message + } + if ($Message -ne 'Request not applicable to target tenant.') { $Tenant.LastGraphError = $Message ?? '' $Tenant.GraphErrorCount++ diff --git a/Modules/CIPPCore/Public/GraphHelper/New-GraphGetRequest.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-GraphGetRequest.ps1 index 12bab410eeee..ec43778f3748 100644 --- a/Modules/CIPPCore/Public/GraphHelper/New-GraphGetRequest.ps1 +++ b/Modules/CIPPCore/Public/GraphHelper/New-GraphGetRequest.ps1 @@ -16,7 +16,8 @@ function New-GraphGetRequest { [switch]$ComplexFilter, [switch]$CountOnly, [switch]$IncludeResponseHeaders, - [hashtable]$extraHeaders + [hashtable]$extraHeaders, + [switch]$ReturnRawResponse ) if ($NoAuthCheck -eq $false) { @@ -35,12 +36,22 @@ function New-GraphGetRequest { if ($ComplexFilter) { $headers['ConsistencyLevel'] = 'eventual' } + + if ($script:XMsThrottlePriority) { + $headers['x-ms-throttle-priority'] = $script:XMsThrottlePriority + } + $nextURL = $uri if ($extraHeaders) { foreach ($key in $extraHeaders.Keys) { $headers[$key] = $extraHeaders[$key] } } + + if (!$headers['User-Agent']) { + $headers['User-Agent'] = "CIPP/$($global:CippVersion ?? '1.0')" + } + # Track consecutive Graph API failures $TenantsTable = Get-CippTable -tablename Tenants $Filter = "PartitionKey eq 'Tenants' and (defaultDomainName eq '{0}' or customerId eq '{0}')" -f $tenantid @@ -55,55 +66,128 @@ function New-GraphGetRequest { } $ReturnedData = do { - try { - $GraphRequest = @{ - Uri = $nextURL - Method = 'GET' - Headers = $headers - ContentType = 'application/json; charset=utf-8' - } - if ($IncludeResponseHeaders) { - $GraphRequest.ResponseHeadersVariable = 'ResponseHeaders' - } - $Data = (Invoke-RestMethod @GraphRequest) - if ($CountOnly) { - $Data.'@odata.count' - $NextURL = $null - } else { - if ($Data.PSObject.Properties.Name -contains 'value') { $data.value } else { $Data } - if ($noPagination -eq $true) { - if ($Caller -eq 'Get-GraphRequestList') { - @{ 'nextLink' = $data.'@odata.nextLink' } + $RetryCount = 0 + $MaxRetries = 3 + $RequestSuccessful = $false + Write-Information "GET [ $nextURL ] | tenant: $tenantid | attempt: $($RetryCount + 1) of $MaxRetries" + do { + try { + $GraphRequest = @{ + Uri = $nextURL + Method = 'GET' + Headers = $headers + ContentType = 'application/json; charset=utf-8' + } + + if ($ReturnRawResponse) { + $GraphRequest.SkipHttpErrorCheck = $true + $Data = Invoke-WebRequest @GraphRequest + } else { + $GraphRequest.ResponseHeadersVariable = 'ResponseHeaders' + $Data = (Invoke-RestMethod @GraphRequest) + $script:LastGraphResponseHeaders = $ResponseHeaders + } + + # If we reach here, the request was successful + $RequestSuccessful = $true + + if ($ReturnRawResponse) { + try { + if ($Data.Content -and (Test-Json -Json $Data.Content -ErrorAction Stop)) { + $Content = $Data.Content | ConvertFrom-Json + } else { + $Content = $Data.Content + } + } catch { + $Content = $Data.Content + } + + [PSCustomObject]@{ + StatusCode = $Data.StatusCode + StatusDescription = $Data.StatusDescription + Content = $Content } $nextURL = $null + } elseif ($CountOnly) { + $Data.'@odata.count' + $NextURL = $null } else { - $NextPageUriFound = $false - if ($IncludeResponseHeaders) { - if ($ResponseHeaders.NextPageUri) { - $NextURL = $ResponseHeaders.NextPageUri - $NextPageUriFound = $true + if ($Data.PSObject.Properties.Name -contains 'value') { $data.value } else { $Data } + if ($noPagination -eq $true) { + if ($Caller -eq 'Get-GraphRequestList') { + @{ 'nextLink' = $data.'@odata.nextLink' } + } + $nextURL = $null + } else { + $NextPageUriFound = $false + if ($IncludeResponseHeaders) { + if ($ResponseHeaders.NextPageUri) { + $NextURL = $ResponseHeaders.NextPageUri + $NextPageUriFound = $true + } + } + if (!$NextPageUriFound) { + $nextURL = $data.'@odata.nextLink' } } - if (!$NextPageUriFound) { - $nextURL = $data.'@odata.nextLink' + } + } catch { + $ShouldRetry = $false + $WaitTime = 0 + try { + $MessageObj = $_.ErrorDetails.Message | ConvertFrom-Json -ErrorAction SilentlyContinue + if ($MessageObj.error) { + $MessageObj | Add-Member -NotePropertyName 'url' -NotePropertyValue $nextURL -Force + $Message = $MessageObj.error.message -ne '' ? $MessageObj.error.message : $MessageObj.error.code + } + } catch { $Message = $null } + + if ([string]::IsNullOrEmpty($Message)) { + $Message = $($_.Exception.Message) + $MessageObj = @{ + error = @{ + code = $_.Exception.GetType().FullName + message = $Message + url = $nextURL + } } } - } - } catch { - try { - $Message = ($_.ErrorDetails.Message | ConvertFrom-Json -ErrorAction SilentlyContinue).error.message - } catch { $Message = $null } - if ($Message -eq $null) { $Message = $($_.Exception.Message) } - if ($Message -ne 'Request not applicable to target tenant.' -and $Tenant) { - $Tenant.LastGraphError = $Message - if ($Tenant.PSObject.Properties.Name -notcontains 'GraphErrorCount') { - $Tenant | Add-Member -MemberType NoteProperty -Name 'GraphErrorCount' -Value 0 -Force + + # Check for 429 Too Many Requests + if ($_.Exception.Response.StatusCode -eq 429) { + $RetryAfterHeader = $_.Exception.Response.Headers['Retry-After'] + if ($RetryAfterHeader) { + $WaitTime = [int]$RetryAfterHeader + Write-Warning "Rate limited (429). Waiting $WaitTime seconds before retry. Attempt $($RetryCount + 1) of $MaxRetries" + $ShouldRetry = $true + } + } + # Check for "Resource temporarily unavailable" + elseif ($Message -like '*Resource temporarily unavailable*') { + if ($RetryCount -lt $MaxRetries) { + $WaitTime = Get-Random -Minimum 1.1 -Maximum 3.1 # Random sleep between 1-2 seconds + Write-Warning "Resource temporarily unavailable. Waiting $WaitTime seconds before retry. Attempt $($RetryCount + 1) of $MaxRetries" + $ShouldRetry = $true + } + } + + if ($ShouldRetry -and $RetryCount -lt $MaxRetries) { + $RetryCount++ + Start-Sleep -Seconds $WaitTime + } else { + # Final failure - update tenant error tracking and throw + if ($Message -ne 'Request not applicable to target tenant.' -and $Tenant) { + $Tenant.LastGraphError = [string]($MessageObj | ConvertTo-Json -Compress) + if ($Tenant.PSObject.Properties.Name -notcontains 'GraphErrorCount') { + $Tenant | Add-Member -MemberType NoteProperty -Name 'GraphErrorCount' -Value 0 -Force + } + $Tenant.GraphErrorCount++ + Update-AzDataTableEntity -Force @TenantsTable -Entity $Tenant + } + throw $Message } - $Tenant.GraphErrorCount++ - Update-AzDataTableEntity -Force @TenantsTable -Entity $Tenant } - throw $Message - } + } while (-not $RequestSuccessful -and $RetryCount -le $MaxRetries) } until ([string]::IsNullOrEmpty($NextURL) -or $NextURL -is [object[]] -or ' ' -eq $NextURL) if ($Tenant.PSObject.Properties.Name -notcontains 'LastGraphError') { $Tenant | Add-Member -MemberType NoteProperty -Name 'LastGraphError' -Value '' -Force diff --git a/Modules/CIPPCore/Public/GraphHelper/New-GraphPOSTRequest.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-GraphPOSTRequest.ps1 index 4a86eebf73c0..ebc8a4efc2dd 100644 --- a/Modules/CIPPCore/Public/GraphHelper/New-GraphPOSTRequest.ps1 +++ b/Modules/CIPPCore/Public/GraphHelper/New-GraphPOSTRequest.ps1 @@ -1,9 +1,25 @@ -function New-GraphPOSTRequest ($uri, $tenantid, $body, $type, $scope, $AsApp, $NoAuthCheck, $skipTokenCache, $AddedHeaders, $contentType, $IgnoreErrors = $false, $returnHeaders = $false) { +function New-GraphPOSTRequest { <# .FUNCTIONALITY Internal #> + param( + $uri, + $tenantid, + $body, + $type = 'POST', + $scope, + $AsApp, + $NoAuthCheck, + $skipTokenCache, + $AddedHeaders, + $contentType, + $IgnoreErrors = $false, + $returnHeaders = $false, + $maxRetries = 1 + ) + if ($NoAuthCheck -or (Get-AuthorisedRequest -Uri $uri -TenantID $tenantid)) { $headers = Get-GraphToken -tenantid $tenantid -scope $scope -AsApp $asapp -SkipCache $skipTokenCache if ($AddedHeaders) { @@ -11,25 +27,40 @@ function New-GraphPOSTRequest ($uri, $tenantid, $body, $type, $scope, $AsApp, $N $headers.Add($header.Key, $header.Value) } } - Write-Verbose "Using $($uri) as url" - if (!$type) { - $type = 'POST' + + if (!$headers['User-Agent']) { + $headers['User-Agent'] = "CIPP/$($global:CippVersion ?? '1.0')" } if (!$contentType) { $contentType = 'application/json; charset=utf-8' } - try { - $body = Get-CIPPTextReplacement -TenantFilter $tenantid -Text $body - $ReturnedData = (Invoke-RestMethod -Uri $($uri) -Method $TYPE -Body $body -Headers $headers -ContentType $contentType -SkipHttpErrorCheck:$IgnoreErrors -ResponseHeadersVariable responseHeaders) - } catch { - $Message = if ($_.ErrorDetails.Message) { - Get-NormalizedError -Message $_.ErrorDetails.Message - } else { - $_.Exception.message + + $body = Get-CIPPTextReplacement -TenantFilter $tenantid -Text $body -EscapeForJson + + $x = 0 + do { + try { + Write-Information "$($type.ToUpper()) [ $uri ] | tenant: $tenantid | attempt: $($x + 1) of $maxRetries" + $success = $false + $ReturnedData = (Invoke-RestMethod -Uri $($uri) -Method $TYPE -Body $body -Headers $headers -ContentType $contentType -SkipHttpErrorCheck:$IgnoreErrors -ResponseHeadersVariable responseHeaders) + $success = $true + } catch { + + $Message = if ($_.ErrorDetails.Message) { + Get-NormalizedError -Message $_.ErrorDetails.Message + } else { + $_.Exception.message + } + $x++ + Start-Sleep -Seconds (2 * $x) } + } while (($x -lt $maxRetries) -and ($success -eq $false)) + + if ($success -eq $false) { throw $Message } + if ($returnHeaders) { return $responseHeaders } else { diff --git a/Modules/CIPPCore/Public/GraphHelper/New-TeamsAPIGetRequest.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-TeamsAPIGetRequest.ps1 index 8d3e99ce8892..9d97e7a01ab0 100644 --- a/Modules/CIPPCore/Public/GraphHelper/New-TeamsAPIGetRequest.ps1 +++ b/Modules/CIPPCore/Public/GraphHelper/New-TeamsAPIGetRequest.ps1 @@ -6,23 +6,49 @@ function New-TeamsAPIGetRequest($Uri, $tenantID, $Method = 'GET', $Resource = '4 if ((Get-AuthorisedRequest -Uri $uri -TenantID $tenantid)) { $token = Get-GraphToken -TenantID $tenantID -Scope "$Resource/.default" - $NextURL = $Uri $ReturnedData = do { + $handler = $null + $httpClient = $null + $response = $null try { - $Data = Invoke-RestMethod -ContentType "$ContentType;charset=UTF-8" -Uri $NextURL -Method $Method -Headers @{ - Authorization = $token.Authorization + # Create handler and client with compression disabled + $handler = New-Object System.Net.Http.HttpClientHandler + $handler.AutomaticDecompression = [System.Net.DecompressionMethods]::None + $httpClient = New-Object System.Net.Http.HttpClient($handler) + + # Add all required headers + $headers = @{ + 'Authorization' = $token.Authorization 'x-ms-client-request-id' = [guid]::NewGuid().ToString() 'x-ms-client-session-id' = [guid]::NewGuid().ToString() - 'x-ms-correlation-id' = [guid]::NewGuid() + 'x-ms-correlation-id' = [guid]::NewGuid().ToString() 'X-Requested-With' = 'XMLHttpRequest' 'x-ms-tnm-applicationid' = '045268c0-445e-4ac1-9157-d58f67b167d9' 'Accept' = 'application/json' + 'Accept-Encoding' = 'identity' + 'User-Agent' = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36' + } + + foreach ($header in $headers.GetEnumerator()) { + $httpClient.DefaultRequestHeaders.Add($header.Key, $header.Value) } + + $response = $httpClient.GetAsync($NextURL).Result + $contentString = $response.Content.ReadAsStringAsync().Result + + # Parse JSON and return data + $Data = $contentString | ConvertFrom-Json + $Data if ($noPagination) { $nextURL = $null } else { $nextURL = $data.NextLink } } catch { throw "Failed to make Teams API Get Request $_" + } finally { + # Proper cleanup in finally block to ensure disposal even on exceptions + if ($response) { $response.Dispose() } + if ($httpClient) { $httpClient.Dispose() } + if ($handler) { $handler.Dispose() } } } until ($null -eq $NextURL) return $ReturnedData diff --git a/Modules/CIPPCore/Public/GraphHelper/New-passwordString.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-passwordString.ps1 index c8393455c326..89545efd1229 100644 --- a/Modules/CIPPCore/Public/GraphHelper/New-passwordString.ps1 +++ b/Modules/CIPPCore/Public/GraphHelper/New-passwordString.ps1 @@ -10,7 +10,7 @@ function New-passwordString { $SettingsTable = Get-CippTable -tablename 'Settings' $PasswordType = (Get-CIPPAzDataTableEntity @SettingsTable).passwordType if ($PasswordType -eq 'Correct-Battery-Horse') { - $Words = Get-Content .\words.txt + $Words = Get-Content .\Resources\words.txt (Get-Random -InputObject $words -Count 4) -join '-' } else { # Generate a complex password with a maximum of 100 tries diff --git a/Modules/CIPPCore/Public/GraphHelper/Remove-CIPPAzStorageContainer.ps1 b/Modules/CIPPCore/Public/GraphHelper/Remove-CIPPAzStorageContainer.ps1 new file mode 100644 index 000000000000..6f49587eff53 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Remove-CIPPAzStorageContainer.ps1 @@ -0,0 +1,39 @@ +function Remove-CIPPAzStorageContainer { + <# + .SYNOPSIS + Deletes an Azure Storage blob container. + .DESCRIPTION + Issues a DELETE request to /?restype=container via New-CIPPAzStorageRequest. + Returns a compact object with StatusCode, Headers, and Request Uri. + .PARAMETER Name + The name of the container to delete. + .PARAMETER ConnectionString + Azure Storage connection string. Defaults to $env:AzureWebJobsStorage. + .EXAMPLE + Remove-CIPPAzStorageContainer -Name 'cipp-largemessages' + #> + [CmdletBinding(SupportsShouldProcess)] + param( + [Parameter(Mandatory = $true, Position = 0)] + [ValidateNotNullOrEmpty()] + [string]$Name, + + [Parameter(Mandatory = $false)] + [string]$ConnectionString = $env:AzureWebJobsStorage + ) + + if ($PSCmdlet.ShouldProcess($Name, 'Remove blob container')) { + try { + $headers = @{ Accept = 'application/xml' } + $resp = New-CIPPAzStorageRequest -Service 'blob' -Resource $Name -QueryParams @{ restype = 'container' } -Method 'DELETE' -Headers $headers -ConnectionString $ConnectionString + if ($null -eq $resp) { return [PSCustomObject]@{ Name = $Name; StatusCode = 202; Headers = @{}; Uri = $null } } + $status = $null; $uri = $null; $hdrs = @{} + if ($resp.PSObject.Properties['StatusCode']) { $status = [int]$resp.StatusCode } + if ($resp.PSObject.Properties['Uri']) { $uri = $resp.Uri } + if ($resp.PSObject.Properties['Headers']) { $hdrs = $resp.Headers } + return [PSCustomObject]@{ Name = $Name; StatusCode = $status; Headers = $hdrs; Uri = $uri } + } catch { + throw $_ + } + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Update-CIPPAzFunctionAppSetting.ps1 b/Modules/CIPPCore/Public/GraphHelper/Update-CIPPAzFunctionAppSetting.ps1 new file mode 100644 index 000000000000..e39c07e9e6cc --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Update-CIPPAzFunctionAppSetting.ps1 @@ -0,0 +1,86 @@ +function Update-CIPPAzFunctionAppSetting { + <# + .SYNOPSIS + Updates Azure Function App application settings via ARM REST using managed identity. + .PARAMETER Name + Function App name. + .PARAMETER ResourceGroupName + Resource group name. + .PARAMETER AppSetting + Hashtable of settings to set (key/value). Values should be strings. + .PARAMETER RemoveKeys + Optional array of setting keys to remove from the Function App configuration. Removals are applied after merging updates and before PUT. + .PARAMETER AccessToken + Optional bearer token to override Managed Identity. If provided, this token is used for Authorization. + .EXAMPLE + Update-CIPPAzFunctionAppSetting -Name myfunc -ResourceGroupName rg1 -AppSetting @{ WEBSITE_TIME_ZONE = 'UTC' } + .EXAMPLE + Update-CIPPAzFunctionAppSetting -Name myfunc -ResourceGroupName rg1 -AppSetting @{ WEBSITE_TIME_ZONE = 'UTC' } -RemoveKeys @('OLD_KEY','LEGACY_SETTING') + #> + [CmdletBinding(SupportsShouldProcess)] + param( + [Parameter(Mandatory = $true)] + [string]$Name, + + [Parameter(Mandatory = $true)] + [string]$ResourceGroupName, + + [Parameter(Mandatory = $true)] + [hashtable]$AppSetting, + + [Parameter(Mandatory = $false)] + [string[]]$RemoveKeys, + + [Parameter(Mandatory = $false)] + [string]$AccessToken + ) + + # Build ARM URIs + $subscriptionId = Get-CIPPAzFunctionAppSubId + $apiVersion = '2024-11-01' + $updateUri = "https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$ResourceGroupName/providers/Microsoft.Web/sites/$Name/config/appsettings?api-version=$apiVersion" + + # Fetch current settings to avoid overwriting unrelated keys + $current = $null + try { + # Prefer the dedicated getter to handle ARM quirks + $GetSettings = @{ + Name = $Name + ResourceGroupName = $ResourceGroupName + } + if ($AccessToken) { $GetSettings.AccessToken = $AccessToken } + $current = Get-CIPPAzFunctionAppSetting @GetSettings + } catch { $current = $null } + $currentProps = @{} + if ($current -and $current.properties) { + # Handle PSCustomObject properties (JSON deserialization result) + if ($current.properties -is [hashtable]) { + foreach ($ck in $current.properties.Keys) { $currentProps[$ck] = [string]$current.properties[$ck] } + } else { + # PSCustomObject - enumerate using PSObject.Properties + foreach ($prop in $current.properties.PSObject.Properties) { + $currentProps[$prop.Name] = [string]$prop.Value + } + } + } + + # Merge requested settings + foreach ($k in $AppSetting.Keys) { $currentProps[$k] = [string]$AppSetting[$k] } + + # Apply removals if specified + if ($RemoveKeys -and $RemoveKeys.Count -gt 0) { + foreach ($rk in $RemoveKeys) { + if ($currentProps.ContainsKey($rk)) { + [void]$currentProps.Remove($rk) + } + } + } + $body = @{ properties = $currentProps } + + if ($PSCmdlet.ShouldProcess($Name, 'Update Function App settings')) { + $restParams = @{ Uri = $updateUri; Method = 'PUT'; Body = $body; ContentType = 'application/json' } + if ($AccessToken) { $restParams.AccessToken = $AccessToken } + $resp = New-CIPPAzRestRequest @restParams + return $resp + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Write-AlertMessage.ps1 b/Modules/CIPPCore/Public/GraphHelper/Write-AlertMessage.ps1 index a7a19d9b6340..30eea9247a42 100644 --- a/Modules/CIPPCore/Public/GraphHelper/Write-AlertMessage.ps1 +++ b/Modules/CIPPCore/Public/GraphHelper/Write-AlertMessage.ps1 @@ -1,4 +1,4 @@ -function Write-AlertMessage($message, $tenant = 'None', $tenantId = $null) { +function Write-AlertMessage($message, $tenant = 'None', $tenantId = $null, $LogData = @{}) { <# .FUNCTIONALITY Internal @@ -10,7 +10,7 @@ function Write-AlertMessage($message, $tenant = 'None', $tenantId = $null) { $ExistingMessage = Get-CIPPAzDataTableEntity @Table -Filter $Filter if (!$ExistingMessage) { Write-Host 'No duplicate message found, writing to log' - Write-LogMessage -message $message -tenant $tenant -sev 'Alert' -tenantId $tenantId -API 'Alerts' + Write-LogMessage -message $message -tenant $tenant -sev 'Alert' -tenantId $tenantId -API 'Alerts' -LogData $LogData } else { Write-Host 'Alerts: Duplicate entry found, not writing to log' diff --git a/Modules/CIPPCore/Public/GraphHelper/Write-AlertTrace.ps1 b/Modules/CIPPCore/Public/GraphHelper/Write-AlertTrace.ps1 index 9408d9e5dca0..3b19ead2c588 100644 --- a/Modules/CIPPCore/Public/GraphHelper/Write-AlertTrace.ps1 +++ b/Modules/CIPPCore/Public/GraphHelper/Write-AlertTrace.ps1 @@ -3,13 +3,14 @@ function Write-AlertTrace { .FUNCTIONALITY Internal function. Pleases most of Write-AlertTrace for alerting purposes #> - Param( + param( $cmdletName, $data, - $tenantFilter + $tenantFilter, + [string]$PartitionKey = (Get-Date -UFormat '%Y%m%d').ToString(), + [string]$AlertComment = $null ) $Table = Get-CIPPTable -tablename AlertLastRun - $PartitionKey = (Get-Date -UFormat '%Y%m%d').ToString() #Get current row and compare the $logData object. If it's the same, don't write it. $Row = Get-CIPPAzDataTableEntity @table -Filter "RowKey eq '$($tenantFilter)-$($cmdletName)' and PartitionKey eq '$PartitionKey'" try { @@ -20,7 +21,10 @@ function Write-AlertTrace { $TableRow = @{ 'PartitionKey' = $PartitionKey 'RowKey' = "$($tenantFilter)-$($cmdletName)" + 'CmdletName' = "$cmdletName" + 'Tenant' = "$tenantFilter" 'LogData' = [string]$LogData + 'AlertComment' = [string]$AlertComment } $Table.Entity = $TableRow Add-CIPPAzDataTableEntity @Table -Force | Out-Null @@ -31,7 +35,10 @@ function Write-AlertTrace { $TableRow = @{ 'PartitionKey' = $PartitionKey 'RowKey' = "$($tenantFilter)-$($cmdletName)" + 'CmdletName' = "$cmdletName" + 'Tenant' = "$tenantFilter" 'LogData' = [string]$LogData + 'AlertComment' = [string]$AlertComment } $Table.Entity = $TableRow Add-CIPPAzDataTableEntity @Table -Force | Out-Null diff --git a/Modules/CIPPCore/Public/GraphHelper/Write-LogMessage.ps1 b/Modules/CIPPCore/Public/GraphHelper/Write-LogMessage.ps1 index c47827703549..8770aeca27b0 100644 --- a/Modules/CIPPCore/Public/GraphHelper/Write-LogMessage.ps1 +++ b/Modules/CIPPCore/Public/GraphHelper/Write-LogMessage.ps1 @@ -66,6 +66,19 @@ function Write-LogMessage { if ($tenantId) { $TableRow.Add('TenantID', [string]$tenantId) } + if ($script:CippStandardInfoStorage -and $script:CippStandardInfoStorage.Value) { + $TableRow.Standard = [string]$script:CippStandardInfoStorage.Value.Standard + $TableRow.StandardTemplateId = [string]$script:CippStandardInfoStorage.Value.StandardTemplateId + if ($script:CippStandardInfoStorage.Value.IntuneTemplateId) { + $TableRow.IntuneTemplateId = [string]$script:CippStandardInfoStorage.Value.IntuneTemplateId + } + if ($script:CippStandardInfoStorage.Value.ConditionalAccessTemplateId) { + $TableRow.ConditionalAccessTemplateId = [string]$script:CippStandardInfoStorage.Value.ConditionalAccessTemplateId + } + } + if ($script:CippScheduledTaskIdStorage -and $script:CippScheduledTaskIdStorage.Value) { + $TableRow.ScheduledTaskId = [string]$script:CippScheduledTaskIdStorage.Value + } $Table.Entity = $TableRow Add-CIPPAzDataTableEntity @Table | Out-Null diff --git a/Modules/CIPPCore/Public/GraphRequests/Get-GraphRequestList.ps1 b/Modules/CIPPCore/Public/GraphRequests/Get-GraphRequestList.ps1 index 1370345fe9a1..7ca83d89a119 100644 --- a/Modules/CIPPCore/Public/GraphRequests/Get-GraphRequestList.ps1 +++ b/Modules/CIPPCore/Public/GraphRequests/Get-GraphRequestList.ps1 @@ -33,6 +33,9 @@ function Get-GraphRequestList { .PARAMETER NoPagination Disable pagination + .PARAMETER ManualPagination + Enable manual pagination using nextLink + .PARAMETER CountOnly Only return count of results @@ -45,6 +48,15 @@ function Get-GraphRequestList { .PARAMETER ReverseTenantLookupProperty Property to perform reverse tenant lookup + .PARAMETER AsApp + Run the request as an application + + .PARAMETER Caller + Name of the calling function + + .PARAMETER UseBatchExpand + Perform a batch lookup using the $expand query parameter to avoid 20 item max + #> [CmdletBinding()] param( @@ -61,17 +73,19 @@ function Get-GraphRequestList { [switch]$SkipCache, [switch]$ClearCache, [switch]$NoPagination, + [switch]$ManualPagination, [switch]$CountOnly, [switch]$NoAuthCheck, [switch]$ReverseTenantLookup, [string]$ReverseTenantLookupProperty = 'tenantId', - [boolean]$AsApp = $false + [boolean]$AsApp = $false, + [string]$Caller = 'Get-GraphRequestList', + [switch]$UseBatchExpand ) $SingleTenantThreshold = 8000 Write-Information "Tenant: $TenantFilter" $TableName = ('cache{0}' -f ($Endpoint -replace '[^A-Za-z0-9]'))[0..62] -join '' - Write-Information "Table: $TableName" $Endpoint = $Endpoint -replace '^/', '' $DisplayName = ($Endpoint -split '/')[0] @@ -89,12 +103,25 @@ function Get-GraphRequestList { $Item.Value = $Item.Value.ToString().ToLower() } if ($Item.Value) { - $ParamCollection.Add($Item.Key, $Item.Value) + if ($Item.Key -eq '$select' -or $Item.Key -eq 'select') { + $Columns = $Item.Value -split ',' + $ActualCols = foreach ($Col in $Columns) { + $Col -split '\.' | Select-Object -First 1 + } + $Value = ($ActualCols | Sort-Object -Unique) -join ',' + } else { + $Value = $Item.Value + } + + if ($UseBatchExpand.IsPresent -and ($Item.Key -eq '$expand' -or $Item.Key -eq 'expand')) { + $BatchExpandQuery = $Item.Value + } else { + $ParamCollection.Add($Item.Key, $Value) + } } } $GraphQuery.Query = $ParamCollection.ToString() $PartitionKey = Get-StringHash -String (@($Endpoint, $ParamCollection.ToString(), 'v2') -join '-') - Write-Information "PK: $PartitionKey" # Perform $count check before caching $Count = 0 @@ -104,8 +131,8 @@ function Get-GraphRequestList { tenantid = $TenantFilter ComplexFilter = $true } - if ($NoPagination.IsPresent) { - $GraphRequest.noPagination = $NoPagination.IsPresent + if ($NoPagination.IsPresent -or $ManualPagination.IsPresent) { + $GraphRequest.noPagination = $true } if ($CountOnly.IsPresent) { $GraphRequest.CountOnly = $CountOnly.IsPresent @@ -123,7 +150,16 @@ function Get-GraphRequestList { $GraphQuery = [System.UriBuilder]('https://graph.microsoft.com/{0}/{1}' -f $Version, $Endpoint) $ParamCollection = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) foreach ($Item in ($Parameters.GetEnumerator() | Sort-Object -CaseSensitive -Property Key)) { - $Value = Get-CIPPTextReplacement -TenantFilter $TenantFilter -Text $Item.Value + if ($Item.Key -eq '$select' -or $Item.Key -eq 'select') { + $Columns = $Item.Value -split ',' + $ActualCols = foreach ($Col in $Columns) { + $Col -split '\.' | Select-Object -First 1 + } + $Value = ($ActualCols | Sort-Object -Unique) -join ',' + } else { + $Value = $Item.Value + } + $Value = Get-CIPPTextReplacement -TenantFilter $TenantFilter -Text $Value $ParamCollection.Add($Item.Key, $Value) } $GraphQuery.Query = $ParamCollection.ToString() @@ -136,7 +172,7 @@ function Get-GraphRequestList { Write-Information "Total results (`$count): $Count" } } - Write-Information ( 'GET [ {0} ]' -f $GraphQuery.ToString()) + #Write-Information ( 'GET [ {0} ]' -f $GraphQuery.ToString()) try { if ($QueueId) { @@ -146,7 +182,7 @@ function Get-GraphRequestList { $Type = 'Queue' Write-Information "Cached: $(($Rows | Measure-Object).Count) rows (Type: $($Type))" $QueueReference = '{0}-{1}' -f $TenantFilter, $PartitionKey - $RunningQueue = Invoke-ListCippQueue | Where-Object { $_.Reference -eq $QueueReference -and $_.Status -ne 'Completed' -and $_.Status -ne 'Failed' } + $RunningQueue = Invoke-ListCippQueue -Reference $QueueReference | Where-Object { $_.Status -ne 'Completed' -and $_.Status -ne 'Failed' } } elseif (!$SkipCache.IsPresent -and !$ClearCache.IsPresent -and !$CountOnly.IsPresent) { if ($TenantFilter -eq 'AllTenants' -or $Count -gt $SingleTenantThreshold) { $Table = Get-CIPPTable -TableName $TableName @@ -156,11 +192,12 @@ function Get-GraphRequestList { } else { $Filter = "PartitionKey eq '{0}' and (RowKey eq '{1}' or OriginalEntityId eq '{1}') and Timestamp ge datetime'{2}'" -f $PartitionKey, $TenantFilter, $Timestamp } - $Rows = Get-CIPPAzDataTableEntity @Table -Filter $Filter + $Tenants = Get-Tenants -IncludeErrors + $Rows = Get-CIPPAzDataTableEntity @Table -Filter $Filter | Where-Object { $_.OriginalEntityId -in $Tenants.defaultDomainName -or $_.RowKey -in $Tenants.defaultDomainName } $Type = 'Cache' - Write-Information "Cached: $(($Rows | Measure-Object).Count) rows (Type: $($Type))" + Write-Information "Table: $TableName | PK: $PartitionKey | Cached: $(($Rows | Measure-Object).Count) rows (Type: $($Type))" $QueueReference = '{0}-{1}' -f $TenantFilter, $PartitionKey - $RunningQueue = Invoke-ListCippQueue | Where-Object { $_.Reference -eq $QueueReference -and $_.Status -notmatch 'Completed' -and $_.Status -notmatch 'Failed' } + $RunningQueue = Invoke-ListCippQueue -Reference $QueueReference | Where-Object { $_.Status -notmatch 'Completed' -and $_.Status -notmatch 'Failed' } } } } catch { @@ -253,7 +290,7 @@ function Get-GraphRequestList { try { $QueueThresholdExceeded = $false - if ($Parameters.'$count' -and !$SkipCache -and !$NoPagination) { + if ($Parameters.'$count' -and !$SkipCache -and !$NoPagination.IsPresent -and !$ManualPagination.IsPresent) { if ($Count -gt $singleTenantThreshold) { $QueueThresholdExceeded = $true if ($RunningQueue) { @@ -297,11 +334,55 @@ function Get-GraphRequestList { if (!$QueueThresholdExceeded) { #nextLink should ONLY be used in direct calls with manual pagination. It should not be used in queueing - if ($NoPagination.IsPresent -and $nextLink -match '^https://.+') { $GraphRequest.uri = $nextLink } + if ($ManualPagination.IsPresent -and $nextLink -match '^https://.+') { $GraphRequest.uri = $nextLink } - $GraphRequestResults = New-GraphGetRequest @GraphRequest -Caller 'Get-GraphRequestList' -ErrorAction Stop + $GraphRequestResults = New-GraphGetRequest @GraphRequest -Caller $Caller -ErrorAction Stop $GraphRequestResults = $GraphRequestResults | Select-Object *, @{n = 'Tenant'; e = { $TenantFilter } }, @{n = 'CippStatus'; e = { 'Good' } } + if ($UseBatchExpand.IsPresent -and ![string]::IsNullOrEmpty($BatchExpandQuery)) { + if ($BatchExpandQuery -match '' -and ![string]::IsNullOrEmpty($GraphRequestResults.id)) { + # Convert $expand format to actual batch query e.g. members($select=id,displayName) to members?$select=id,displayName + $BatchExpandQuery = $BatchExpandQuery -replace '\(\$?([^=]+)=([^)]+)\)', '?$$$1=$2' -replace ';', '&' + + # Extract property name from expand + $Property = $BatchExpandQuery -replace '\?.*$', '' -replace '^.*\/', '' + Write-Information "Performing batch expansion for property '$Property'..." + + if ($Property -eq 'assignedLicenses') { + $LicenseDetails = Get-CIPPLicenseOverview -TenantFilter $TenantFilter + $GraphRequestResults = foreach ($GraphRequestResult in $GraphRequestResults) { + $NewLicenses = [system.collections.generic.list[string]]::new() + foreach ($License in $GraphRequestResult.assignedLicenses) { + $LicenseInfo = $LicenseDetails | Where-Object { $_.skuId -eq $License.skuId } | Select-Object -First 1 + if ($LicenseInfo) { + $NewLicenses.Add($LicenseInfo.License) + } + } + $GraphRequestResult | Add-Member -MemberType NoteProperty -Name $Property -Value @($NewLicenses) -Force + $GraphRequestResult + } + } else { + + $Uri = "$Endpoint/{0}/$BatchExpandQuery" + + $Requests = foreach ($Result in $GraphRequestResults) { + @{ + id = $Result.id + url = $Uri -f $Result.id + method = 'GET' + } + } + $BatchResults = New-GraphBulkRequest -Requests @($Requests) -tenantid $TenantFilter -NoAuthCheck $NoAuthCheck.IsPresent -asapp $AsApp + + $GraphRequestResults = foreach ($Result in $GraphRequestResults) { + $PropValue = $BatchResults | Where-Object { $_.id -eq $Result.id } | Select-Object -ExpandProperty body + $Result | Add-Member -MemberType NoteProperty -Name $Property -Value ($PropValue.value ?? $PropValue) + $Result + } + } + } + } + if ($ReverseTenantLookup -and $GraphRequestResults) { $ReverseLookupRequests = $GraphRequestResults.$ReverseTenantLookupProperty | Sort-Object -Unique | ForEach-Object { @{ diff --git a/Modules/CIPPCore/Public/Invoke-RemoveQueuedApp.ps1 b/Modules/CIPPCore/Public/Invoke-RemoveQueuedApp.ps1 deleted file mode 100644 index 6c80a2c62572..000000000000 --- a/Modules/CIPPCore/Public/Invoke-RemoveQueuedApp.ps1 +++ /dev/null @@ -1,41 +0,0 @@ -using namespace System.Net - -Function Invoke-RemoveQueuedApp { - <# - .FUNCTIONALITY - Entrypoint - .ROLE - Endpoint.Application.ReadWrite - #> - [CmdletBinding()] - param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - - $ID = $request.body.ID - try { - $Table = Get-CippTable -tablename 'apps' - $Filter = "PartitionKey eq 'apps' and RowKey eq '$ID'" - $ClearRow = Get-CIPPAzDataTableEntity @Table -Filter $Filter -Property PartitionKey, RowKey - Remove-AzDataTableEntity -Force @Table -Entity $ClearRow - $Message = "Removed application queue for $ID." - Write-LogMessage -Headers $Request.Headers -API $APIName -message $Message -Sev 'Info' - $StatusCode = [HttpStatusCode]::OK - } catch { - $ErrorMessage = Get-CippException -Exception $_ - $Message = "Failed to remove application queue for $ID. $($ErrorMessage.NormalizedError)" - Write-LogMessage -Headers $Request.Headers -API $APIName -message $Message -Sev 'Error' -LogData $ErrorMessage - $StatusCode = [HttpStatusCode]::Forbidden - } - - $body = [pscustomobject]@{'Results' = $Message } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = $body - }) - - -} diff --git a/Modules/CIPPCore/Public/New-CIPPAlertTemplate.ps1 b/Modules/CIPPCore/Public/New-CIPPAlertTemplate.ps1 index bf93a9098812..7ca6e0d74716 100644 --- a/Modules/CIPPCore/Public/New-CIPPAlertTemplate.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPAlertTemplate.ps1 @@ -9,10 +9,11 @@ function New-CIPPAlertTemplate { $ActionResults, $CIPPURL, $Tenant, - $AuditLogLink + $AuditLogLink, + $AlertComment ) $Appname = '[{"Application Name":"ACOM Azure Website","Application IDs":"23523755-3a2b-41ca-9315-f81f3f566a95"},{"Application Name":"AEM-DualAuth","Application IDs":"69893ee3-dd10-4b1c-832d-4870354be3d8"},{"Application Name":"ASM Campaign Servicing","Application IDs":"0cb7b9ec-5336-483b-bc31-b15b5788de71"},{"Application Name":"Azure Advanced Threat Protection","Application IDs":"7b7531ad-5926-4f2d-8a1d-38495ad33e17"},{"Application Name":"Azure Data Lake","Application IDs":"e9f49c6b-5ce5-44c8-925d-015017e9f7ad"},{"Application Name":"Azure Lab Services Portal","Application IDs":"835b2a73-6e10-4aa5-a979-21dfda45231c"},{"Application Name":"Azure Portal","Application IDs":"c44b4083-3bb0-49c1-b47d-974e53cbdf3c"},{"Application Name":"AzureSupportCenter","Application IDs":"37182072-3c9c-4f6a-a4b3-b3f91cacffce"},{"Application Name":"Bing","Application IDs":"9ea1ad79-fdb6-4f9a-8bc3-2b70f96e34c7"},{"Application Name":"CPIM Service","Application IDs":"bb2a2e3a-c5e7-4f0a-88e0-8e01fd3fc1f4"},{"Application Name":"CRM Power BI Integration","Application IDs":"e64aa8bc-8eb4-40e2-898b-cf261a25954f"},{"Application Name":"Dataverse","Application IDs":"00000007-0000-0000-c000-000000000000"},{"Application Name":"Enterprise Roaming and Backup","Application IDs":"60c8bde5-3167-4f92-8fdb-059f6176dc0f"},{"Application Name":"IAM Supportability","Application IDs":"a57aca87-cbc0-4f3c-8b9e-dc095fdc8978"},{"Application Name":"IrisSelectionFrontDoor","Application IDs":"16aeb910-ce68-41d1-9ac3-9e1673ac9575"},{"Application Name":"MCAPI Authorization Prod","Application IDs":"d73f4b35-55c9-48c7-8b10-651f6f2acb2e"},{"Application Name":"Media Analysis and Transformation Service","Application IDs":"944f0bd1-117b-4b1c-af26-804ed95e767e
0cd196ee-71bf-4fd6-a57c-b491ffd4fb1e"},{"Application Name":"Microsoft 365 Support Service","Application IDs":"ee272b19-4411-433f-8f28-5c13cb6fd407"},{"Application Name":"Microsoft App Access Panel","Application IDs":"0000000c-0000-0000-c000-000000000000"},{"Application Name":"Microsoft Approval Management","Application IDs":"65d91a3d-ab74-42e6-8a2f-0add61688c74
38049638-cc2c-4cde-abe4-4479d721ed44"},{"Application Name":"Microsoft Authentication Broker","Application IDs":"29d9ed98-a469-4536-ade2-f981bc1d605e"},{"Application Name":"Microsoft Azure CLI","Application IDs":"04b07795-8ddb-461a-bbee-02f9e1bf7b46"},{"Application Name":"Microsoft Azure PowerShell","Application IDs":"1950a258-227b-4e31-a9cf-717495945fc2"},{"Application Name":"Microsoft Bing Search","Application IDs":"cf36b471-5b44-428c-9ce7-313bf84528de"},{"Application Name":"Microsoft Bing Search for Microsoft Edge","Application IDs":"2d7f3606-b07d-41d1-b9d2-0d0c9296a6e8"},{"Application Name":"Microsoft Bing Default Search Engine","Application IDs":"1786c5ed-9644-47b2-8aa0-7201292175b6"},{"Application Name":"Microsoft Defender for Cloud Apps","Application IDs":"3090ab82-f1c1-4cdf-af2c-5d7a6f3e2cc7"},{"Application Name":"Microsoft Docs","Application IDs":"18fbca16-2224-45f6-85b0-f7bf2b39b3f3"},{"Application Name":"Microsoft Dynamics ERP","Application IDs":"00000015-0000-0000-c000-000000000000"},{"Application Name":"Microsoft Edge Insider Addons Prod","Application IDs":"6253bca8-faf2-4587-8f2f-b056d80998a7"},{"Application Name":"Microsoft Exchange Online Protection","Application IDs":"00000007-0000-0ff1-ce00-000000000000"},{"Application Name":"Microsoft Forms","Application IDs":"c9a559d2-7aab-4f13-a6ed-e7e9c52aec87"},{"Application Name":"Microsoft Graph","Application IDs":"00000003-0000-0000-c000-000000000000"},{"Application Name":"Microsoft Intune Web Company Portal","Application IDs":"74bcdadc-2fdc-4bb3-8459-76d06952a0e9"},{"Application Name":"Microsoft Intune Windows Agent","Application IDs":"fc0f3af4-6835-4174-b806-f7db311fd2f3"},{"Application Name":"Microsoft Learn","Application IDs":"18fbca16-2224-45f6-85b0-f7bf2b39b3f3"},{"Application Name":"Microsoft Office","Application IDs":"d3590ed6-52b3-4102-aeff-aad2292ab01c"},{"Application Name":"Microsoft Office 365 Portal","Application IDs":"00000006-0000-0ff1-ce00-000000000000"},{"Application Name":"Microsoft Office Web Apps Service","Application IDs":"67e3df25-268a-4324-a550-0de1c7f97287"},{"Application Name":"Microsoft Online Syndication Partner Portal","Application IDs":"d176f6e7-38e5-40c9-8a78-3998aab820e7"},{"Application Name":"Microsoft password reset service","Application IDs":"93625bc8-bfe2-437a-97e0-3d0060024faa"},{"Application Name":"Microsoft Power BI","Application IDs":"871c010f-5e61-4fb1-83ac-98610a7e9110"},{"Application Name":"Microsoft Storefronts","Application IDs":"28b567f6-162c-4f54-99a0-6887f387bbcc"},{"Application Name":"Microsoft Stream Portal","Application IDs":"cf53fce8-def6-4aeb-8d30-b158e7b1cf83"},{"Application Name":"Microsoft Substrate Management","Application IDs":"98db8bd6-0cc0-4e67-9de5-f187f1cd1b41"},{"Application Name":"Microsoft Support","Application IDs":"fdf9885b-dd37-42bf-82e5-c3129ef5a302"},{"Application Name":"Microsoft Teams","Application IDs":"1fec8e78-bce4-4aaf-ab1b-5451cc387264"},{"Application Name":"Microsoft Teams Services","Application IDs":"cc15fd57-2c6c-4117-a88c-83b1d56b4bbe"},{"Application Name":"Microsoft Teams Web Client","Application IDs":"5e3ce6c0-2b1f-4285-8d4b-75ee78787346"},{"Application Name":"Microsoft Whiteboard Services","Application IDs":"95de633a-083e-42f5-b444-a4295d8e9314"},{"Application Name":"O365 Suite UX","Application IDs":"4345a7b9-9a63-4910-a426-35363201d503"},{"Application Name":"Office 365 Exchange Online","Application IDs":"00000002-0000-0ff1-ce00-000000000000"},{"Application Name":"Office 365 Management","Application IDs":"00b41c95-dab0-4487-9791-b9d2c32c80f2"},{"Application Name":"Office 365 Search Service","Application IDs":"66a88757-258c-4c72-893c-3e8bed4d6899"},{"Application Name":"Office 365 SharePoint Online","Application IDs":"00000003-0000-0ff1-ce00-000000000000"},{"Application Name":"Office Delve","Application IDs":"94c63fef-13a3-47bc-8074-75af8c65887a"},{"Application Name":"Office Online Add-in SSO","Application IDs":"93d53678-613d-4013-afc1-62e9e444a0a5"},{"Application Name":"Office Online Client AAD- Augmentation Loop","Application IDs":"2abdc806-e091-4495-9b10-b04d93c3f040"},{"Application Name":"Office Online Client AAD- Loki","Application IDs":"b23dd4db-9142-4734-867f-3577f640ad0c"},{"Application Name":"Office Online Client AAD- Maker","Application IDs":"17d5e35f-655b-4fb0-8ae6-86356e9a49f5"},{"Application Name":"Office Online Client MSA- Loki","Application IDs":"b6e69c34-5f1f-4c34-8cdf-7fea120b8670"},{"Application Name":"Office Online Core SSO","Application IDs":"243c63a3-247d-41c5-9d83-7788c43f1c43"},{"Application Name":"Office Online Search","Application IDs":"a9b49b65-0a12-430b-9540-c80b3332c127"},{"Application Name":"Office.com","Application IDs":"4b233688-031c-404b-9a80-a4f3f2351f90"},{"Application Name":"Office365 Shell WCSS-Client","Application IDs":"89bee1f7-5e6e-4d8a-9f3d-ecd601259da7"},{"Application Name":"OfficeClientService","Application IDs":"0f698dd4-f011-4d23-a33e-b36416dcb1e6"},{"Application Name":"OfficeHome","Application IDs":"4765445b-32c6-49b0-83e6-1d93765276ca"},{"Application Name":"OfficeShredderWacClient","Application IDs":"4d5c2d63-cf83-4365-853c-925fd1a64357"},{"Application Name":"OMSOctopiPROD","Application IDs":"62256cef-54c0-4cb4-bcac-4c67989bdc40"},{"Application Name":"OneDrive SyncEngine","Application IDs":"ab9b8c07-8f02-4f72-87fa-80105867a763"},{"Application Name":"OneNote","Application IDs":"2d4d3d8e-2be3-4bef-9f87-7875a61c29de"},{"Application Name":"Outlook Mobile","Application IDs":"27922004-5251-4030-b22d-91ecd9a37ea4"},{"Application Name":"Partner Customer Delegated Admin Offline Processor","Application IDs":"a3475900-ccec-4a69-98f5-a65cd5dc5306"},{"Application Name":"Password Breach Authenticator","Application IDs":"bdd48c81-3a58-4ea9-849c-ebea7f6b6360"},{"Application Name":"Power BI Service","Application IDs":"00000009-0000-0000-c000-000000000000"},{"Application Name":"SharedWithMe","Application IDs":"ffcb16e8-f789-467c-8ce9-f826a080d987"},{"Application Name":"SharePoint Online Web Client Extensibility","Application IDs":"08e18876-6177-487e-b8b5-cf950c1e598c"},{"Application Name":"Signup","Application IDs":"b4bddae8-ab25-483e-8670-df09b9f1d0ea"},{"Application Name":"Skype for Business Online","Application IDs":"00000004-0000-0ff1-ce00-000000000000"},{"Application Name":"Sway","Application IDs":"905fcf26-4eb7-48a0-9ff0-8dcc7194b5ba"},{"Application Name":"Universal Store Native Client","Application IDs":"268761a2-03f3-40df-8a8b-c3db24145b6b"},{"Application Name":"Vortex [wsfed enabled]","Application IDs":"5572c4c0-d078-44ce-b81c-6cbf8d3ed39e"},{"Application Name":"Windows Azure Active Directory","Application IDs":"00000002-0000-0000-c000-000000000000"},{"Application Name":"Windows Azure Service Management API","Application IDs":"797f4846-ba00-4fd7-ba43-dac1f8f63013"},{"Application Name":"WindowsDefenderATP Portal","Application IDs":"a3b79187-70b2-4139-83f9-6016c58cd27b"},{"Application Name":"Windows Search","Application IDs":"26a7ee05-5602-4d76-a7ba-eae8b7b67941"},{"Application Name":"Windows Spotlight","Application IDs":"1b3c667f-cde3-4090-b60b-3d2abd0117f0"},{"Application Name":"Windows Store for Business","Application IDs":"45a330b1-b1ec-4cc1-9161-9f03992aa49f"},{"Application Name":"Yammer","Application IDs":"00000005-0000-0ff1-ce00-000000000000"},{"Application Name":"Yammer Web","Application IDs":"c1c74fed-04c9-4704-80dc-9f79a2e515cb"},{"Application Name":"Yammer Web Embed","Application IDs":"e1ef36fd-b883-4dbf-97f0-9ece4b576fc6"}]' | ConvertFrom-Json | Where-Object -Property 'Application IDs' -EQ $data.applicationId - $HTMLTemplate = Get-Content 'TemplateEmail.html' -Raw | Out-String + $HTMLTemplate = Get-Content 'Resources\TemplateEmail.html' -Raw | Out-String $Title = '' $IntroText = '' $ButtonUrl = '' @@ -27,6 +28,14 @@ function New-CIPPAlertTemplate { if ($Data -is [array] -and $Data[0] -is [string]) { $Data = $Data | ForEach-Object { @{ message = $_ } } } + if ($InputObject -eq 'driftStandard') { + $Title = "CIPP Alert - Standard Drift Detected for $($Tenant)" + $DataHTML = ($Data | ConvertTo-Html | Out-String).Replace('
', '
') + $IntroText = "

You've setup your instance to receive alerts when a tenant is drifting away from your standard. This seems to have happened! We've found the following deviations.

$dataHTML" + $ButtonUrl = "$CIPPURL/tenant/manage/drift?tenantFilter=$($Tenant)&templateId=$($AuditLogLink)" + $ButtonText = 'Investigate and remediate deviations' + $AfterButtonText = 'Click the button above to go to the logbook and investigate the deviations. You can also use the standards page to remediate the deviations.' + } if ($InputObject -eq 'sherwebmig') { $DataHTML = ($Data | ConvertTo-Html | Out-String).Replace('
', '
') @@ -48,6 +57,12 @@ function New-CIPPAlertTemplate { $DataHTML = ($Data | Select-Object * -ExcludeProperty Etag, PartitionKey, TimeStamp | ConvertTo-Html | Out-String).Replace('
', '
') $IntroText = "

You've configured CIPP to send you alerts based on the logbook. The following alerts match your configured rules

$dataHTML" + + # Add alert comment if provided + if ($AlertComment) { + $IntroText = "$IntroText

Alert Information

$AlertComment

" + } + $ButtonUrl = "$CIPPURL/cipp/logs" $ButtonText = 'Check logbook information' } @@ -213,7 +228,7 @@ function New-CIPPAlertTemplate { $IntroText = $IntroText + "

The (potential) location information for this IP is as follows:

$LocationTable" } $IntroText = "$($data.ObjectId) has been added by $($data.UserId)." - $ButtonUrl = "$CIPPURL/tenant/administration/enterprise-apps?customerId=?customerId=$($data.OrganizationId)" + $ButtonUrl = "$CIPPURL/tenant/administration/applications/enterprise-apps?tenantFilter=$Tenant" $ButtonText = 'Enterprise Apps' } 'Remove service principal.' { @@ -225,8 +240,8 @@ function New-CIPPAlertTemplate { $LocationTable = ($LocationInfo | ConvertTo-Html -Fragment -As List | Out-String).Replace('
', '
') $IntroText = $IntroText + "

The (potential) location information for this IP is as follows:

$LocationTable" } - $IntroText = "$($data.ObjectId) has been added by $($data.UserId)." - $ButtonUrl = "$CIPPURL/tenant/administration/enterprise-apps?customerId=?customerId=$($data.OrganizationId)" + $IntroText = "$($data.ObjectId) has been removed by $($data.UserId)." + $ButtonUrl = "$CIPPURL/tenant/administration/applications/enterprise-apps?tenantFilter=$Tenant" $ButtonText = 'Enterprise Apps' } 'UserLoggedIn' { @@ -272,10 +287,11 @@ function New-CIPPAlertTemplate { } } return [pscustomobject]@{ - title = $Title - buttonurl = $ButtonUrl - buttontext = $ButtonText - auditlog = $AuditLogLink + title = $Title + buttonurl = $ButtonUrl + buttontext = $ButtonText + auditlog = $AuditLogLink + alertcomment = $AlertComment } } } diff --git a/Modules/CIPPCore/Public/New-CIPPAssignmentFilter.ps1 b/Modules/CIPPCore/Public/New-CIPPAssignmentFilter.ps1 new file mode 100644 index 000000000000..51c8b51f51a0 --- /dev/null +++ b/Modules/CIPPCore/Public/New-CIPPAssignmentFilter.ps1 @@ -0,0 +1,81 @@ +function New-CIPPAssignmentFilter { + <# + .SYNOPSIS + Creates a new assignment filter in Microsoft Intune + + .DESCRIPTION + Unified function for creating assignment filters that handles all platform types consistently. + Used by both direct filter creation and assignment filter template application. + + .PARAMETER FilterObject + Object containing filter properties (displayName, description, platform, rule, etc.) + + .PARAMETER TenantFilter + The tenant domain name where the filter should be created + + .PARAMETER APIName + The API name for logging purposes + + .PARAMETER ExecutingUser + The user executing the request (for logging) + + .EXAMPLE + New-CIPPAssignmentFilter -FilterObject $FilterData -TenantFilter 'contoso.com' -APIName 'AddAssignmentFilter' + + .NOTES + Supports all platform types: Windows10AndLater, iOS, Android, macOS, etc. + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [PSCustomObject]$FilterObject, + + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + [Parameter(Mandatory = $false)] + [string]$APIName = 'New-CIPPAssignmentFilter', + + [Parameter(Mandatory = $false)] + [string]$ExecutingUser = 'CIPP' + + ) + + try { + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Creating assignment filter $($FilterObject.displayName) for platform $($FilterObject.platform)" -Sev Info + + # Build the request body for Graph API + $BodyParams = [PSCustomObject]@{ + '@odata.type' = '#microsoft.graph.deviceAndAppManagementAssignmentFilter' + 'displayName' = $FilterObject.displayName + 'description' = $FilterObject.description ?? '' + 'platform' = $FilterObject.platform + 'rule' = $FilterObject.rule + 'assignmentFilterManagementType' = $FilterObject.assignmentFilterManagementType ?? 'devices' + } + + # Create the assignment filter via Graph API + $GraphRequest = New-GraphPostRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/assignmentFilters' -tenantid $TenantFilter -type POST -body (ConvertTo-Json -InputObject $BodyParams -Depth 10) + + $Result = [PSCustomObject]@{ + Success = $true + Message = "Successfully created assignment filter $($FilterObject.displayName)" + FilterId = $GraphRequest.id + Platform = $FilterObject.platform + } + + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Created assignment filter $($FilterObject.displayName) with id $($Result.FilterId)" -Sev Info + return $Result + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Assignment filter creation failed for $($FilterObject.displayName): $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + + return [PSCustomObject]@{ + Success = $false + Message = "Failed to create assignment filter $($FilterObject.displayName): $($ErrorMessage.NormalizedError)" + Error = $ErrorMessage.NormalizedError + Platform = $FilterObject.platform + } + } +} diff --git a/Modules/CIPPCore/Public/New-CIPPBackup.ps1 b/Modules/CIPPCore/Public/New-CIPPBackup.ps1 index ba9194085e0e..b3f8409ade3e 100644 --- a/Modules/CIPPCore/Public/New-CIPPBackup.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPBackup.ps1 @@ -1,108 +1,184 @@ function New-CIPPBackup { [CmdletBinding(SupportsShouldProcess = $true)] param ( - $backupType, + [Parameter(Mandatory = $true)] + [ValidateSet('CIPP', 'Scheduled')] + [string]$backupType, + $StorageOutput = 'default', - $TenantFilter, + + [Parameter(Mandatory = $false)] + [string]$TenantFilter, + $ScheduledBackupValues, $APIName = 'CIPP Backup', - $Headers + $Headers, + [Parameter(Mandatory = $false)] [string] $ConnectionString = $env:AzureWebJobsStorage ) - $BackupData = switch ($backupType) { - #If backup type is CIPP, create CIPP backup. - 'CIPP' { - try { - $BackupTables = @( - 'AppPermissions' - 'AccessRoleGroups' - 'ApiClients' - 'CustomData' - 'CustomRoles' - 'Config' - 'CommunityRepos' - 'Domains' - 'GraphPresets' - 'GDAPRoles' - 'GDAPRoleTemplates' - 'ExcludedLicenses' - 'templates' - 'standards' - 'SchedulerConfig' - 'Extensions' - 'WebhookRules' - 'ScheduledTasks' - 'TenantProperties' - ) - $CSVfile = foreach ($CSVTable in $BackupTables) { - $Table = Get-CippTable -tablename $CSVTable - Get-AzDataTableEntity @Table | Select-Object * -ExcludeProperty DomainAnalyser, table, Timestamp, ETag, Results | Select-Object *, @{l = 'table'; e = { $CSVTable } } - } - $RowKey = 'CIPPBackup' + '_' + (Get-Date).ToString('yyyy-MM-dd-HHmm') - $CSVfile - $CSVFile = [string]($CSVfile | ConvertTo-Json -Compress -Depth 100) - $entity = @{ - PartitionKey = 'CIPPBackup' - RowKey = [string]$RowKey - TenantFilter = 'CIPPBackup' - Backup = $CSVfile - } - $Table = Get-CippTable -tablename 'CIPPBackup' + # Validate that TenantFilter is provided for Scheduled backups + if ($backupType -eq 'Scheduled' -and [string]::IsNullOrEmpty($TenantFilter)) { + throw 'TenantFilter is required for Scheduled backups' + } + + $State = 'Backup finished successfully' + $RowKey = $null + $BackupData = $null + $TableName = $null + $PartitionKey = $null + $ContainerName = $null + + try { + switch ($backupType) { + #If backup type is CIPP, create CIPP backup. + 'CIPP' { try { - if ($PSCmdlet.ShouldProcess('CIPP Backup', 'Create')) { - $null = Add-CIPPAzDataTableEntity @Table -Entity $entity -Force - Write-LogMessage -headers $Headers -API $APINAME -message 'Created CIPP Backup' -Sev 'Debug' + $BackupTables = @( + 'AppPermissions' + 'AccessRoleGroups' + 'ApiClients' + 'CippReplacemap' + 'CustomData' + 'CustomRoles' + 'Config' + 'CommunityRepos' + 'Domains' + 'GraphPresets' + 'GDAPRoles' + 'GDAPRoleTemplates' + 'ExcludedLicenses' + 'templates' + 'standards' + 'SchedulerConfig' + 'Extensions' + 'WebhookRules' + 'ScheduledTasks' + 'TenantProperties' + ) + $CSVfile = foreach ($CSVTable in $BackupTables) { + $Table = Get-CippTable -tablename $CSVTable + Get-AzDataTableEntity @Table | Select-Object * -ExcludeProperty DomainAnalyser, table, Timestamp, ETag, Results | Select-Object *, @{l = 'table'; e = { $CSVTable } } } + $RowKey = 'CIPPBackup' + '_' + (Get-Date).ToString('yyyy-MM-dd-HHmm') + $BackupData = [string]($CSVfile | ConvertTo-Json -Compress -Depth 100) + $TableName = 'CIPPBackup' + $PartitionKey = 'CIPPBackup' + $ContainerName = 'cipp-backups' } catch { $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -headers $Headers -API $APINAME -message "Failed to create backup for CIPP: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage - [pscustomobject]@{'Results' = "Backup Creation failed: $($ErrorMessage.NormalizedError)" } + Write-LogMessage -headers $Headers -API $APINAME -message "Failed to create backup: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + return [pscustomobject]@{'Results' = "Backup Creation failed: $($ErrorMessage.NormalizedError)" } } - - } catch { - $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -headers $Headers -API $APINAME -message "Failed to create backup: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage - [pscustomobject]@{'Results' = "Backup Creation failed: $($ErrorMessage.NormalizedError)" } } - } - #If Backup type is ConditionalAccess, create Conditional Access backup. - 'Scheduled' { - #Do a sub switch here based on the ScheduledBackupValues? - #Store output in tablestorage for Recovery - $RowKey = $TenantFilter + '_' + (Get-Date).ToString('yyyy-MM-dd-HHmm') - $entity = @{ - PartitionKey = 'ScheduledBackup' - RowKey = $RowKey - TenantFilter = $TenantFilter - } - Write-Information "Scheduled backup value psproperties: $(([pscustomobject]$ScheduledBackupValues).psobject.Properties)" - foreach ($ScheduledBackup in ([pscustomobject]$ScheduledBackupValues).psobject.Properties.Name) { + #If Backup type is Scheduled, create Scheduled backup. + 'Scheduled' { try { - $BackupResult = New-CIPPBackupTask -Task $ScheduledBackup -TenantFilter $TenantFilter | ConvertTo-Json -Depth 100 -Compress | Out-String - $entity[$ScheduledBackup] = "$BackupResult" + $RowKey = $TenantFilter + '_' + (Get-Date).ToString('yyyy-MM-dd-HHmm') + $entity = @{ + PartitionKey = 'ScheduledBackup' + RowKey = $RowKey + TenantFilter = $TenantFilter + } + Write-Information "Scheduled backup value psproperties: $(([pscustomobject]$ScheduledBackupValues).psobject.Properties)" + foreach ($ScheduledBackup in ([pscustomobject]$ScheduledBackupValues).psobject.Properties.Name) { + try { + $BackupResult = New-CIPPBackupTask -Task $ScheduledBackup -TenantFilter $TenantFilter + $entity[$ScheduledBackup] = $BackupResult + } catch { + Write-Information "Failed to create backup for $ScheduledBackup - $($_.Exception.Message)" + } + } + $BackupData = $entity | ConvertTo-Json -Compress -Depth 100 + $TableName = 'ScheduledBackup' + $PartitionKey = 'ScheduledBackup' + $ContainerName = 'scheduled-backups' } catch { - Write-Information "Failed to create backup for $ScheduledBackup - $($_.Exception.Message)" + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APINAME -message "Failed to create backup: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + return [pscustomobject]@{'Results' = "Backup Creation failed: $($ErrorMessage.NormalizedError)" } } } - $Table = Get-CippTable -tablename 'ScheduledBackup' + } + + # Upload backup data to blob storage + $blobUrl = $null + try { + $containers = @() + try { $containers = New-CIPPAzStorageRequest -Service 'blob' -Component 'list' -ConnectionString $ConnectionString } catch { $containers = @() } + $exists = ($containers | Where-Object { $_.Name -eq $ContainerName }) -ne $null + if (-not $exists) { + $null = New-CIPPAzStorageRequest -Service 'blob' -Resource $ContainerName -Method 'PUT' -QueryParams @{ restype = 'container' } -ConnectionString $ConnectionString + Start-Sleep -Milliseconds 500 + } + $blobName = "$RowKey.json" + $resourcePath = "$ContainerName/$blobName" + $null = New-CIPPAzStorageRequest -Service 'blob' -Resource $resourcePath -Method 'PUT' -ContentType 'application/json; charset=utf-8' -Body $BackupData -ConnectionString $ConnectionString + + # Build full blob URL for storage in table try { - $null = Add-CIPPAzDataTableEntity @Table -entity $entity -Force - Write-LogMessage -headers $Headers -API $APINAME -message 'Created backup' -Sev 'Debug' - $State = 'Backup finished succesfully' + $csParts = @{} + foreach ($p in ($ConnectionString -split ';')) { + if (-not [string]::IsNullOrWhiteSpace($p)) { + $kv = $p -split '=', 2 + if ($kv.Length -eq 2) { $csParts[$kv[0]] = $kv[1] } + } + } + + # Handle UseDevelopmentStorage=true (Azurite) + if ($csParts.ContainsKey('UseDevelopmentStorage') -and $csParts['UseDevelopmentStorage'] -eq 'true') { + $base = 'http://127.0.0.1:10000/devstoreaccount1' + } elseif ($csParts.ContainsKey('BlobEndpoint') -and $csParts['BlobEndpoint']) { + $base = ($csParts['BlobEndpoint']).TrimEnd('/') + } else { + $protocol = if ($csParts.ContainsKey('DefaultEndpointsProtocol') -and $csParts['DefaultEndpointsProtocol']) { $csParts['DefaultEndpointsProtocol'] } else { 'https' } + $suffix = if ($csParts.ContainsKey('EndpointSuffix') -and $csParts['EndpointSuffix']) { $csParts['EndpointSuffix'] } else { 'core.windows.net' } + $acct = $csParts['AccountName'] + if (-not $acct) { throw 'AccountName missing in ConnectionString' } + $base = "$protocol`://$acct.blob.$suffix" + } + $blobUrl = "$base/$resourcePath" } catch { - $State = 'Failed to write backup to table storage' - $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -headers $Headers -API $APINAME -message "Failed to create tenant backup: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage - [pscustomobject]@{'Results' = "Backup Creation failed: $($ErrorMessage.NormalizedError)" } + # If building full URL fails, fall back to resource path + $blobUrl = $resourcePath } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APINAME -message "Blob upload failed: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage } + # Write table entity pointing to blob resource + $entity = @{ + PartitionKey = $PartitionKey + RowKey = [string]$RowKey + Backup = $blobUrl + BackupIsBlob = $true + } + + if ($TenantFilter) { + $entity['TenantFilter'] = $TenantFilter + } + + $Table = Get-CippTable -tablename $TableName + try { + if ($PSCmdlet.ShouldProcess("$backupType Backup", 'Create')) { + $null = Add-CIPPAzDataTableEntity @Table -Entity $entity -Force + Write-LogMessage -headers $Headers -API $APINAME -message "Created $backupType Backup (link stored)" -Sev 'Debug' + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APINAME -message "Failed to create backup for $backupType : $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + return [pscustomobject]@{'Results' = "Backup Creation failed: $($ErrorMessage.NormalizedError)" } + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APINAME -message "Failed to create backup: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + return [pscustomobject]@{'Results' = "Backup Creation failed: $($ErrorMessage.NormalizedError)" } } + return [pscustomobject]@{ BackupName = $RowKey BackupState = $State - BackupData = $BackupData } } diff --git a/Modules/CIPPCore/Public/New-CIPPBackupTask.ps1 b/Modules/CIPPCore/Public/New-CIPPBackupTask.ps1 index 05f2b0added7..55f189947694 100644 --- a/Modules/CIPPCore/Public/New-CIPPBackupTask.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPBackupTask.ps1 @@ -6,133 +6,155 @@ function New-CIPPBackupTask { ) $BackupData = switch ($Task) { + 'CippCustomVariables' { + Measure-CippTask -TaskName 'CustomVariables' -EventName 'CIPP.BackupCompleted' -Script { + $ReplaceTable = Get-CIPPTable -tablename 'CippReplacemap' + + # Get tenant-specific variables + $Tenant = Get-Tenants -TenantFilter $TenantFilter + $CustomerId = $Tenant.customerId + $TenantVariables = Get-CIPPAzDataTableEntity @ReplaceTable -Filter "PartitionKey eq '$CustomerId'" + + # If backing up AllTenants, also get global variables + if ($TenantFilter -eq 'AllTenants') { + $GlobalVariables = Get-CIPPAzDataTableEntity @ReplaceTable -Filter "PartitionKey eq 'AllTenants'" + $AllVariables = @($TenantVariables) + @($GlobalVariables) + $AllVariables + } else { + $TenantVariables + } + } + } 'users' { - Write-Host "Backup users for $TenantFilter" - $Users = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/users?$top=999' -tenantid $TenantFilter | Select-Object * -ExcludeProperty mail, provisionedPlans, onPrem*, *passwordProfile*, *serviceProvisioningErrors*, isLicenseReconciliationNeeded, isManagementRestricted, isResourceAccount, *date*, *external*, identities, deletedDateTime, isSipEnabled, assignedPlans, cloudRealtimeCommunicationInfo, deviceKeys, provisionedPlan, securityIdentifier - #remove the property if the value is $null - $Users | ForEach-Object { - $_.psobject.properties | Where-Object { $null -eq $_.Value } | ForEach-Object { - $_.psobject.properties.Remove($_.Name) + Measure-CippTask -TaskName 'Users' -EventName 'CIPP.BackupCompleted' -Script { + New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/users?$top=999' -tenantid $TenantFilter | Select-Object * -ExcludeProperty mail, provisionedPlans, onPrem*, *passwordProfile*, *serviceProvisioningErrors*, isLicenseReconciliationNeeded, isManagementRestricted, isResourceAccount, *date*, *external*, identities, deletedDateTime, isSipEnabled, assignedPlans, cloudRealtimeCommunicationInfo, deviceKeys, provisionedPlan, securityIdentifier | ForEach-Object { + #remove the property if the value is $null + $_.psobject.properties | Where-Object { $null -eq $_.Value } | ForEach-Object { + $_.psobject.properties.Remove($_.Name) + } + $_ } } - $Users } 'groups' { - Write-Host "Backup groups for $TenantFilter" - New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/groups?$top=999' -tenantid $TenantFilter + Measure-CippTask -TaskName 'Groups' -EventName 'CIPP.BackupCompleted' -Script { + New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/groups?$top=999' -tenantid $TenantFilter + } } 'ca' { - Write-Host "Backup Conditional Access Policies for $TenantFilter" - $Policies = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/conditionalAccess/policies?$top=999' -tenantid $TenantFilter -AsApp $true - Write-Host 'Creating templates for found Conditional Access Policies' - foreach ($policy in $policies) { - try { - New-CIPPCATemplate -TenantFilter $TenantFilter -JSON $policy - } catch { - "Failed to create a template of the Conditional Access Policy with ID: $($policy.id). Error: $($_.Exception.Message)" + Measure-CippTask -TaskName 'ConditionalAccess' -EventName 'CIPP.BackupCompleted' -Script { + $preloadedUsers = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$top=999&`$select=displayName,id" -tenantid $TenantFilter + $preloadedGroups = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/groups?`$top=999&`$select=displayName,id" -tenantid $TenantFilter + $Policies = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/conditionalAccess/policies?$top=999' -tenantid $TenantFilter -AsApp $true + foreach ($policy in $policies) { + try { + New-CIPPCATemplate -TenantFilter $TenantFilter -JSON $policy -preloadedUsers $preloadedUsers -preloadedGroups $preloadedGroups + } catch { + "Failed to create a template of the Conditional Access Policy with ID: $($policy.id). Error: $($_.Exception.Message)" + } } } } 'intuneconfig' { - Write-Host "Backup Intune Configuration Policies for $TenantFilter" - $GraphURLS = @("https://graph.microsoft.com/beta/deviceManagement/deviceConfigurations?`$select=id,displayName,lastModifiedDateTime,roleScopeTagIds,microsoft.graph.unsupportedDeviceConfiguration/originalEntityTypeName&`$expand=assignments&top=1000" - 'https://graph.microsoft.com/beta/deviceManagement/windowsDriverUpdateProfiles' - "https://graph.microsoft.com/beta/deviceManagement/groupPolicyConfigurations?`$expand=assignments&top=999" - "https://graph.microsoft.com/beta/deviceAppManagement/mobileAppConfigurations?`$expand=assignments&`$filter=microsoft.graph.androidManagedStoreAppConfiguration/appSupportsOemConfig%20eq%20true" - 'https://graph.microsoft.com/beta/deviceManagement/configurationPolicies' - 'https://graph.microsoft.com/beta/deviceManagement/windowsFeatureUpdateProfiles' - 'https://graph.microsoft.com/beta/deviceManagement/windowsQualityUpdatePolicies' - 'https://graph.microsoft.com/beta/deviceManagement/windowsQualityUpdateProfiles' - ) - - $Policies = foreach ($url in $GraphURLS) { - try { - $Policies = New-GraphGetRequest -uri "$($url)" -tenantid $TenantFilter - $URLName = (($url).split('?') | Select-Object -First 1) -replace 'https://graph.microsoft.com/beta/deviceManagement/', '' - foreach ($Policy in $Policies) { - try { - New-CIPPIntuneTemplate -TenantFilter $TenantFilter -URLName $URLName -ID $Policy.ID - } catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - "Failed to create a template of the Intune Configuration Policy with ID: $($Policy.id). Error: $ErrorMessage" + Measure-CippTask -TaskName 'IntuneConfiguration' -EventName 'CIPP.BackupCompleted' -Script { + $GraphURLS = @("https://graph.microsoft.com/beta/deviceManagement/deviceConfigurations?`$select=id,displayName,lastModifiedDateTime,roleScopeTagIds,microsoft.graph.unsupportedDeviceConfiguration/originalEntityTypeName&`$expand=assignments&top=1000" + 'https://graph.microsoft.com/beta/deviceManagement/windowsDriverUpdateProfiles' + "https://graph.microsoft.com/beta/deviceManagement/groupPolicyConfigurations?`$expand=assignments&top=999" + "https://graph.microsoft.com/beta/deviceAppManagement/mobileAppConfigurations?`$expand=assignments&`$filter=microsoft.graph.androidManagedStoreAppConfiguration/appSupportsOemConfig%20eq%20true" + 'https://graph.microsoft.com/beta/deviceManagement/configurationPolicies' + 'https://graph.microsoft.com/beta/deviceManagement/windowsFeatureUpdateProfiles' + 'https://graph.microsoft.com/beta/deviceManagement/windowsQualityUpdatePolicies' + 'https://graph.microsoft.com/beta/deviceManagement/windowsQualityUpdateProfiles' + ) + + foreach ($url in $GraphURLS) { + try { + $Policies = New-GraphGetRequest -uri "$($url)" -tenantid $TenantFilter + $URLName = (($url).split('?') | Select-Object -First 1) -replace 'https://graph.microsoft.com/beta/deviceManagement/', '' + foreach ($Policy in $Policies) { + try { + New-CIPPIntuneTemplate -TenantFilter $TenantFilter -URLName $URLName -ID $Policy.ID + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + "Failed to create a template of the Intune Configuration Policy with ID: $($Policy.id). Error: $ErrorMessage" + } } + } catch { + Write-Host "Failed to backup $url" } - } catch { - Write-Host "Failed to backup $url" } } } 'intunecompliance' { - Write-Host "Backup Intune Configuration Policies for $TenantFilter" - - New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/deviceCompliancePolicies?$top=999' -tenantid $TenantFilter | ForEach-Object { - New-CIPPIntuneTemplate -TenantFilter $TenantFilter -URLName 'deviceCompliancePolicies' -ID $_.ID + Measure-CippTask -TaskName 'IntuneCompliance' -EventName 'CIPP.BackupCompleted' -Script { + New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/deviceCompliancePolicies?$top=999' -tenantid $TenantFilter | ForEach-Object { + New-CIPPIntuneTemplate -TenantFilter $TenantFilter -URLName 'deviceCompliancePolicies' -ID $_.ID + } } } 'intuneprotection' { - Write-Host "Backup Intune Configuration Policies for $TenantFilter" - - New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceAppManagement/managedAppPolicies?$top=999' -tenantid $TenantFilter | ForEach-Object { - New-CIPPIntuneTemplate -TenantFilter $TenantFilter -URLName 'managedAppPolicies' -ID $_.ID + Measure-CippTask -TaskName 'IntuneProtection' -EventName 'CIPP.BackupCompleted' -Script { + New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceAppManagement/managedAppPolicies?$top=999' -tenantid $TenantFilter | ForEach-Object { + New-CIPPIntuneTemplate -TenantFilter $TenantFilter -URLName 'managedAppPolicies' -ID $_.ID + } } } 'antispam' { - Write-Host "Backup Anti-Spam Policies for $TenantFilter" - - $Policies = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-HostedContentFilterPolicy' | Select-Object * -ExcludeProperty *odata*, *data.type* - $Rules = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-HostedContentFilterRule' | Select-Object * -ExcludeProperty *odata*, *data.type* - - $Policies | ForEach-Object { - $_.psobject.properties | Where-Object { $null -eq $_.Value } | ForEach-Object { - $_.psobject.properties.Remove($_.Name) + Measure-CippTask -TaskName 'AntiSpam' -EventName 'CIPP.BackupCompleted' -Script { + $Policies = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-HostedContentFilterPolicy' | Select-Object * -ExcludeProperty *odata*, *data.type* | ForEach-Object { + $_.psobject.properties | Where-Object { $null -eq $_.Value } | ForEach-Object { + $_.psobject.properties.Remove($_.Name) + } + $_ } - } - $Rules | ForEach-Object { - $_.psobject.properties | Where-Object { $null -eq $_.Value } | ForEach-Object { - $_.psobject.properties.Remove($_.Name) + $Rules = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-HostedContentFilterRule' | Select-Object * -ExcludeProperty *odata*, *data.type* | ForEach-Object { + $_.psobject.properties | Where-Object { $null -eq $_.Value } | ForEach-Object { + $_.psobject.properties.Remove($_.Name) + } + $_ } - } - $JSON = @{ policies = $Policies; rules = $Rules } | ConvertTo-Json -Depth 10 - $JSON + @{ policies = $Policies; rules = $Rules } | ConvertTo-Json -Depth 10 + } } 'antiphishing' { - Write-Host "Backup Anti-Phishing Policies for $TenantFilter" - - $Policies = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-AntiPhishPolicy' | Select-Object * -ExcludeProperty *odata*, *data.type* - $Rules = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-AntiPhishRule' | Select-Object * -ExcludeProperty *odata*, *data.type* - - $Policies | ForEach-Object { - $_.psobject.properties | Where-Object { $null -eq $_.Value } | ForEach-Object { - $_.psobject.properties.Remove($_.Name) + Measure-CippTask -TaskName 'AntiPhishing' -EventName 'CIPP.BackupCompleted' -Script { + $Policies = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-AntiPhishPolicy' | Select-Object * -ExcludeProperty *odata*, *data.type* | ForEach-Object { + $_.psobject.properties | Where-Object { $null -eq $_.Value } | ForEach-Object { + $_.psobject.properties.Remove($_.Name) + } + $_ } - } - $Rules | ForEach-Object { - $_.psobject.properties | Where-Object { $null -eq $_.Value } | ForEach-Object { - $_.psobject.properties.Remove($_.Name) + $Rules = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-AntiPhishRule' | Select-Object * -ExcludeProperty *odata*, *data.type* | ForEach-Object { + $_.psobject.properties | Where-Object { $null -eq $_.Value } | ForEach-Object { + $_.psobject.properties.Remove($_.Name) + } + $_ } - } - $JSON = @{ policies = $Policies; rules = $Rules } | ConvertTo-Json -Depth 10 - $JSON + @{ policies = $Policies; rules = $Rules } | ConvertTo-Json -Depth 10 + } } 'CippWebhookAlerts' { - Write-Host "Backup Webhook Alerts for $TenantFilter" - $WebhookTable = Get-CIPPTable -TableName 'WebhookRules' - Get-CIPPAzDataTableEntity @WebhookTable | Where-Object { $TenantFilter -in ($_.Tenants | ConvertFrom-Json).value } + Measure-CippTask -TaskName 'WebhookAlerts' -EventName 'CIPP.BackupCompleted' -Script { + $WebhookTable = Get-CIPPTable -TableName 'WebhookRules' + Get-CIPPAzDataTableEntity @WebhookTable | Where-Object { $TenantFilter -in ($_.Tenants | ConvertFrom-Json).value } + } } 'CippScriptedAlerts' { - Write-Host "Backup Scripted Alerts for $TenantFilter" - $ScheduledTasks = Get-CIPPTable -TableName 'ScheduledTasks' - Get-CIPPAzDataTableEntity @ScheduledTasks | Where-Object { $_.hidden -eq $true -and $_.command -like 'Get-CippAlert*' -and $TenantFilter -in $_.Tenant } + Measure-CippTask -TaskName 'ScriptedAlerts' -EventName 'CIPP.BackupCompleted' -Script { + $ScheduledTasks = Get-CIPPTable -TableName 'ScheduledTasks' + Get-CIPPAzDataTableEntity @ScheduledTasks | Where-Object { $_.hidden -eq $true -and $_.command -like 'Get-CippAlert*' -and $TenantFilter -in $_.Tenant } + } } } + return $BackupData } diff --git a/Modules/CIPPCore/Public/New-CIPPCAPolicy.ps1 b/Modules/CIPPCore/Public/New-CIPPCAPolicy.ps1 index 8dd288691767..250b31296dd8 100644 --- a/Modules/CIPPCore/Public/New-CIPPCAPolicy.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPCAPolicy.ps1 @@ -7,12 +7,12 @@ function New-CIPPCAPolicy { $State, $Overwrite, $ReplacePattern = 'none', + $DisableSD = $false, + $CreateGroups = $false, $APIName = 'Create CA Policy', $Headers ) - $User = $Request.Headers - function Remove-EmptyArrays ($Object) { if ($Object -is [Array]) { foreach ($Item in $Object) { Remove-EmptyArrays $Item } @@ -38,21 +38,43 @@ function New-CIPPCAPolicy { } # Helper function to replace group display names with GUIDs function Replace-GroupNameWithId { - param($groupNames) + param($TenantFilter, $groupNames, $CreateGroups, $GroupTemplates) $GroupIds = [System.Collections.Generic.List[string]]::new() $groupNames | ForEach-Object { if (Test-IsGuid $_) { - Write-LogMessage -Headers $User -API $APINAME -message "Already GUID, no need to replace: $_" -Sev 'Debug' + Write-LogMessage -Headers $Headers -API 'Create CA Policy' -message "Already GUID, no need to replace: $_" -Sev 'Debug' $GroupIds.Add($_) # it's a GUID, so we keep it } else { $groupId = ($groups | Where-Object -Property displayName -EQ $_).id # it's a display name, so we get the group ID if ($groupId) { foreach ($gid in $groupId) { Write-Warning "Replaced group name $_ with ID $gid" - $null = Write-LogMessage -Headers $User -API $APINAME -message "Replaced group name $_ with ID $gid" -Sev 'Debug' + $null = Write-LogMessage -Headers $Headers -API 'Create CA Policy' -message "Replaced group name $_ with ID $gid" -Sev 'Debug' $GroupIds.Add($gid) # add the ID to the list } + } elseif ($CreateGroups) { + Write-Warning "Creating group $_ as it does not exist in the tenant" + if ($GroupTemplates.displayName -eq $_) { + Write-Information "Creating group from template for $_" + $GroupTemplate = $GroupTemplates | Where-Object -Property displayName -EQ $_ + $NewGroup = New-CIPPGroup -GroupObject $GroupTemplate -TenantFilter $TenantFilter -APIName 'New-CIPPCAPolicy' + $GroupIds.Add($NewGroup.GroupId) + } else { + Write-Information "No template found, creating security group for $_" + $username = $_ -replace '[^a-zA-Z0-9]', '' + if ($username.Length -gt 64) { + $username = $username.Substring(0, 64) + } + $GroupObject = @{ + groupType = 'generic' + displayName = $_ + username = $username + securityEnabled = $true + } + $NewGroup = New-CIPPGroup -GroupObject $GroupObject -TenantFilter $TenantFilter -APIName 'New-CIPPCAPolicy' + $GroupIds.Add($NewGroup.GroupId) + } } else { Write-Warning "Group $_ not found in the tenant" } @@ -67,14 +89,14 @@ function New-CIPPCAPolicy { $UserIds = [System.Collections.Generic.List[string]]::new() $userNames | ForEach-Object { if (Test-IsGuid $_) { - Write-LogMessage -Headers $User -API $APINAME -message "Already GUID, no need to replace: $_" -Sev 'Debug' + Write-LogMessage -Headers $Headers -API 'Create CA Policy' -message "Already GUID, no need to replace: $_" -Sev 'Debug' $UserIds.Add($_) # it's a GUID, so we keep it } else { $userId = ($users | Where-Object -Property displayName -EQ $_).id # it's a display name, so we get the user ID if ($userId) { foreach ($uid in $userId) { Write-Warning "Replaced user name $_ with ID $uid" - $null = Write-LogMessage -Headers $User -API $APINAME -message "Replaced user name $_ with ID $uid" -Sev 'Debug' + $null = Write-LogMessage -Headers $Headers -API 'Create CA Policy' -message "Replaced user name $_ with ID $uid" -Sev 'Debug' $UserIds.Add($uid) # add the ID to the list } } else { @@ -87,17 +109,17 @@ function New-CIPPCAPolicy { $displayname = ($RawJSON | ConvertFrom-Json).Displayname - $JSONObj = $RawJSON | ConvertFrom-Json | Select-Object * -ExcludeProperty ID, GUID, *time* - Remove-EmptyArrays $JSONObj + $JSONobj = $RawJSON | ConvertFrom-Json | Select-Object * -ExcludeProperty ID, GUID, *time* + Remove-EmptyArrays $JSONobj #Remove context as it does not belong in the payload. try { - $JsonObj.grantControls.PSObject.Properties.Remove('authenticationStrength@odata.context') - $JSONObj.templateId ? $JSONObj.PSObject.Properties.Remove('templateId') : $null - if ($JSONObj.conditions.users.excludeGuestsOrExternalUsers.externalTenants.Members) { - $JsonObj.conditions.users.excludeGuestsOrExternalUsers.externalTenants.PSObject.Properties.Remove('@odata.context') + $JSONobj.grantControls.PSObject.Properties.Remove('authenticationStrength@odata.context') + $JSONobj.templateId ? $JSONobj.PSObject.Properties.Remove('templateId') : $null + if ($JSONobj.conditions.users.excludeGuestsOrExternalUsers.externalTenants.Members) { + $JSONobj.conditions.users.excludeGuestsOrExternalUsers.externalTenants.PSObject.Properties.Remove('@odata.context') } if ($State -and $State -ne 'donotchange') { - $Jsonobj.state = $State + $JSONobj.state = $State } } catch { # no issues here. @@ -107,31 +129,74 @@ function New-CIPPCAPolicy { if ($JSONobj.GrantControls.authenticationStrength.policyType -eq 'custom' -or $JSONobj.GrantControls.authenticationStrength.policyType -eq 'BuiltIn') { $ExistingStrength = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/authenticationStrength/policies/' -tenantid $TenantFilter -asApp $true | Where-Object -Property displayName -EQ $JSONobj.GrantControls.authenticationStrength.displayName if ($ExistingStrength) { - $JSONObj.GrantControls.authenticationStrength = @{ id = $ExistingStrength.id } + $JSONobj.GrantControls.authenticationStrength = @{ id = $ExistingStrength.id } } else { - $Body = ConvertTo-Json -InputObject $JSONObj.GrantControls.authenticationStrength + $Body = ConvertTo-Json -InputObject $JSONobj.GrantControls.authenticationStrength $GraphRequest = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/authenticationStrength/policies' -body $body -Type POST -tenantid $tenantfilter -asApp $true - $JSONObj.GrantControls.authenticationStrength = @{ id = $ExistingStrength.id } - Write-LogMessage -Headers $User -API $APINAME -message "Created new Authentication Strength Policy: $($JSONObj.GrantControls.authenticationStrength.displayName)" -Sev 'Info' + $JSONobj.GrantControls.authenticationStrength = @{ id = $ExistingStrength.id } + Write-LogMessage -Headers $Headers -API $APINAME -message "Created new Authentication Strength Policy: $($JSONobj.GrantControls.authenticationStrength.displayName)" -Sev 'Info' } } - #for each of the locations, check if they exist, if not create them. These are in $jsonobj.LocationInfo - $LocationLookupTable = foreach ($locations in $jsonobj.LocationInfo) { + #if we have excluded or included applications, we need to remove any appIds that do not have a service principal in the tenant + + if (($JSONobj.conditions.applications.includeApplications -and $JSONobj.conditions.applications.includeApplications -notcontains 'All') -or ($JSONobj.conditions.applications.excludeApplications -and $JSONobj.conditions.applications.excludeApplications -notcontains 'All')) { + $AllServicePrincipals = New-GraphGETRequest -uri 'https://graph.microsoft.com/v1.0/servicePrincipals?$select=appId' -tenantid $TenantFilter -asApp $true + + $ReservedApplicationNames = @('none', 'All', 'Office365', 'MicrosoftAdminPortals') + + if ($JSONobj.conditions.applications.excludeApplications -and $JSONobj.conditions.applications.excludeApplications -notcontains 'All') { + $ValidExclusions = [system.collections.generic.list[string]]::new() + foreach ($appId in $JSONobj.conditions.applications.excludeApplications) { + if ($AllServicePrincipals.appId -contains $appId -or $ReservedApplicationNames -contains $appId) { + $ValidExclusions.Add($appId) + } + } + $JSONobj.conditions.applications.excludeApplications = $ValidExclusions + } + if ($JSONobj.conditions.applications.includeApplications -and $JSONobj.conditions.applications.includeApplications -notcontains 'All') { + $ValidInclusions = [system.collections.generic.list[string]]::new() + foreach ($appId in $JSONobj.conditions.applications.includeApplications) { + if ($AllServicePrincipals.appId -contains $appId -or $ReservedApplicationNames -contains $appId) { + $ValidInclusions.Add($appId) + } + } + $JSONobj.conditions.applications.includeApplications = $ValidInclusions + } + } + + #for each of the locations, check if they exist, if not create them. These are in $JSONobj.LocationInfo + $LocationLookupTable = foreach ($locations in $JSONobj.LocationInfo) { if (!$locations) { continue } foreach ($location in $locations) { if (!$location.displayName) { continue } - $CheckExististing = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations' -tenantid $TenantFilter -asApp $true - if ($Location.displayName -in $CheckExististing.displayName) { + $CheckExisting = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations' -tenantid $TenantFilter -asApp $true + if ($Location.displayName -in $CheckExisting.displayName) { + $ExistingLocation = $CheckExisting | Where-Object -Property displayName -EQ $Location.displayName + if ($Overwrite) { + $LocationUpdate = $location | Select-Object * -ExcludeProperty id + Remove-ODataProperties -Object $LocationUpdate + $Body = ConvertTo-Json -InputObject $LocationUpdate -Depth 10 + try { + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations/$($ExistingLocation.id)" -body $body -Type PATCH -tenantid $tenantfilter -asApp $true + Write-LogMessage -Tenant $TenantFilter -Headers $Headers -API $APINAME -message "Updated existing Named Location: $($location.displayName)" -Sev 'Info' + } catch { + Write-Warning "Failed to update location $($location.displayName): $_" + Write-LogMessage -Tenant $TenantFilter -Headers $Headers -API $APINAME -message "Failed to update existing Named Location: $($location.displayName). Error: $_" -Sev 'Error' + } + } else { + Write-LogMessage -Tenant $TenantFilter -Headers $Headers -API $APINAME -message "Matched a CA policy with the existing Named Location: $($location.displayName)" -Sev 'Info' + } [pscustomobject]@{ - id = ($CheckExististing | Where-Object -Property displayName -EQ $Location.displayName).id - name = ($CheckExististing | Where-Object -Property displayName -EQ $Location.displayName).displayName + id = $ExistingLocation.id + name = $ExistingLocation.displayName + templateId = $location.id } - Write-LogMessage -Headers $User -API $APINAME -message "Matched a CA policy with the existing Named Location: $($location.displayName)" -Sev 'Info' - } else { if ($location.countriesAndRegions) { $location.countriesAndRegions = @($location.countriesAndRegions) } + $location | Select-Object * -ExcludeProperty id + Remove-ODataProperties -Object $location $Body = ConvertTo-Json -InputObject $Location $GraphRequest = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations' -body $body -Type POST -tenantid $tenantfilter -asApp $true $retryCount = 0 @@ -142,7 +207,7 @@ function New-CIPPCAPolicy { Start-Sleep -Seconds 2 $retryCount++ } while ((!$LocationRequest -or !$LocationRequest.id) -and ($retryCount -lt 5)) - Write-LogMessage -Headers $User -API $APINAME -message "Created new Named Location: $($location.displayName)" -Sev 'Info' + Write-LogMessage -Tenant $TenantFilter -Headers $Headers -API $APINAME -message "Created new Named Location: $($location.displayName)" -Sev 'Info' [pscustomobject]@{ id = $GraphRequest.id name = $GraphRequest.displayName @@ -150,21 +215,25 @@ function New-CIPPCAPolicy { } } } + Write-Information 'Location Lookup Table:' + Write-Information ($LocationLookupTable | ConvertTo-Json -Depth 10) - foreach ($location in $JSONObj.conditions.locations.includeLocations) { - Write-Information "Replacing $location" - $lookup = $LocationLookupTable | Where-Object -Property name -EQ $location - Write-Information "Found $lookup" + foreach ($location in $JSONobj.conditions.locations.includeLocations) { + if ($null -eq $location) { continue } + $lookup = $LocationLookupTable | Where-Object { $_.name -eq $location -or $_.displayName -eq $location -or $_.templateId -eq $location } if (!$lookup) { continue } - $index = [array]::IndexOf($JSONObj.conditions.locations.includeLocations, $location) - $JSONObj.conditions.locations.includeLocations[$index] = $lookup.id + Write-Information "Replacing named location - $location" + $index = [array]::IndexOf($JSONobj.conditions.locations.includeLocations, $location) + $JSONobj.conditions.locations.includeLocations[$index] = $lookup.id } - foreach ($location in $JSONObj.conditions.locations.excludeLocations) { - $lookup = $LocationLookupTable | Where-Object -Property name -EQ $location + foreach ($location in $JSONobj.conditions.locations.excludeLocations) { + if ($null -eq $location) { continue } + $lookup = $LocationLookupTable | Where-Object { $_.name -eq $location -or $_.displayName -eq $location -or $_.templateId -eq $location } if (!$lookup) { continue } - $index = [array]::IndexOf($JSONObj.conditions.locations.excludeLocations, $location) - $JSONObj.conditions.locations.excludeLocations[$index] = $lookup.id + Write-Information "Replacing named location - $location" + $index = [array]::IndexOf($JSONobj.conditions.locations.excludeLocations, $location) + $JSONobj.conditions.locations.excludeLocations[$index] = $lookup.id } switch ($ReplacePattern) { 'none' { @@ -173,86 +242,149 @@ function New-CIPPCAPolicy { } 'AllUsers' { Write-Information 'Replacement pattern for inclusions and exclusions is All users. This policy will now apply to everyone.' - if ($JSONObj.conditions.users.includeUsers -ne 'All') { $JSONObj.conditions.users.includeUsers = @('All') } - if ($JSONObj.conditions.users.excludeUsers) { $JSONObj.conditions.users.excludeUsers = @() } - if ($JSONObj.conditions.users.includeGroups) { $JSONObj.conditions.users.includeGroups = @() } - if ($JSONObj.conditions.users.excludeGroups) { $JSONObj.conditions.users.excludeGroups = @() } + if ($JSONobj.conditions.users.includeUsers -ne 'All') { $JSONobj.conditions.users.includeUsers = @('All') } + if ($JSONobj.conditions.users.excludeUsers) { $JSONobj.conditions.users.excludeUsers = @() } + if ($JSONobj.conditions.users.includeGroups) { $JSONobj.conditions.users.includeGroups = @() } + if ($JSONobj.conditions.users.excludeGroups) { $JSONobj.conditions.users.excludeGroups = @() } } 'displayName' { + $TemplatesTable = Get-CIPPTable -tablename 'templates' + $GroupTemplates = Get-CIPPAzDataTableEntity @TemplatesTable -filter "PartitionKey eq 'GroupTemplate'" | ForEach-Object { + if ($_.JSON -and (Test-Json -Json $_.JSON -ErrorAction SilentlyContinue)) { + $Group = $_.JSON | ConvertFrom-Json + $Group + } + } try { Write-Information 'Replacement pattern for inclusions and exclusions is displayName.' - $users = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/users?$select=id,displayName' -tenantid $TenantFilter -asApp $true - $groups = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/groups?$select=id,displayName' -tenantid $TenantFilter -asApp $true + $Requests = @( + @{ + url = 'users?$select=id,displayName&$top=999' + method = 'GET' + id = 'users' + } + @{ + url = 'groups?$select=id,displayName&$top=999' + method = 'GET' + id = 'groups' + } + ) + $BulkResults = New-GraphBulkRequest -Requests $Requests -tenantid $TenantFilter -asapp $true + + $users = ($BulkResults | Where-Object { $_.id -eq 'users' }).body.value + $groups = ($BulkResults | Where-Object { $_.id -eq 'groups' }).body.value foreach ($userType in 'includeUsers', 'excludeUsers') { - if ($JSONObj.conditions.users.PSObject.Properties.Name -contains $userType -and $JSONObj.conditions.users.$userType -notin 'All', 'None', 'GuestOrExternalUsers') { - $JSONObj.conditions.users.$userType = @(Replace-UserNameWithId -userNames $JSONObj.conditions.users.$userType) + if ($JSONobj.conditions.users.PSObject.Properties.Name -contains $userType -and $JSONobj.conditions.users.$userType -notin 'All', 'None', 'GuestOrExternalUsers') { + $JSONobj.conditions.users.$userType = @(Replace-UserNameWithId -userNames $JSONobj.conditions.users.$userType) } } # Check the included and excluded groups foreach ($groupType in 'includeGroups', 'excludeGroups') { - if ($JSONObj.conditions.users.PSObject.Properties.Name -contains $groupType) { - $JSONObj.conditions.users.$groupType = @(Replace-GroupNameWithId -groupNames $JSONObj.conditions.users.$groupType) + if ($JSONobj.conditions.users.PSObject.Properties.Name -contains $groupType) { + $JSONobj.conditions.users.$groupType = @(Replace-GroupNameWithId -groupNames $JSONobj.conditions.users.$groupType -CreateGroups $CreateGroups -TenantFilter $TenantFilter -GroupTemplates $GroupTemplates) } } - } catch { $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to replace displayNames for conditional access rule $($JSONObj.displayName). Error: $($ErrorMessage.NormalizedError)" -sev 'Error' -LogData $ErrorMessage - throw "Failed to replace displayNames for conditional access rule $($JSONObj.displayName): $($ErrorMessage.NormalizedError)" + Write-LogMessage -API 'Standards' -tenant $TenantFilter -message "Failed to replace displayNames for conditional access rule $($JSONobj.displayName). Error: $($ErrorMessage.NormalizedError)" -sev 'Error' -LogData $ErrorMessage + throw "Failed to replace displayNames for conditional access rule $($JSONobj.displayName): $($ErrorMessage.NormalizedError)" } } } - $JsonObj.PSObject.Properties.Remove('LocationInfo') - foreach ($condition in $JSONObj.conditions.users.PSObject.Properties.Name) { - $value = $JSONObj.conditions.users.$condition + $JSONobj.PSObject.Properties.Remove('LocationInfo') + foreach ($condition in $JSONobj.conditions.users.PSObject.Properties.Name) { + $value = $JSONobj.conditions.users.$condition if ($null -eq $value) { - $JSONObj.conditions.users.$condition = @() + $JSONobj.conditions.users.$condition = @() continue } if ($value -is [string]) { if ([string]::IsNullOrWhiteSpace($value)) { - $JSONObj.conditions.users.$condition = @() + $JSONobj.conditions.users.$condition = @() continue } } if ($value -is [array]) { $nonWhitespaceItems = $value | Where-Object { -not [string]::IsNullOrWhiteSpace($_) } if ($nonWhitespaceItems.Count -eq 0) { - $JSONObj.conditions.users.$condition = @() + $JSONobj.conditions.users.$condition = @() continue } } } - - $RawJSON = ConvertTo-Json -InputObject $JSONObj -Depth 10 -Compress + if ($DisableSD -eq $true) { + #Send request to disable security defaults. + $body = '{ "isEnabled": false }' + try { + $null = New-GraphPostRequest -tenantid $TenantFilter -Uri 'https://graph.microsoft.com/beta/policies/identitySecurityDefaultsEnforcementPolicy' -Type patch -Body $body -asApp $true -ContentType 'application/json' + Write-LogMessage -Headers $Headers -API 'Create CA Policy' -tenant $TenantFilter -message "Disabled Security Defaults for tenant $($TenantFilter)" -Sev 'Info' + Start-Sleep 3 + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-Information "Failed to disable security defaults for tenant $($TenantFilter): $($ErrorMessage.NormalizedError)" + } + } + $RawJSON = ConvertTo-Json -InputObject $JSONobj -Depth 10 -Compress Write-Information $RawJSON try { - Write-Information 'Checking' - $CheckExististing = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/policies' -tenantid $TenantFilter -asApp $true | Where-Object -Property displayName -EQ $displayname - if ($CheckExististing) { + Write-Information 'Checking for existing policies' + $CheckExisting = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/policies' -tenantid $TenantFilter -asApp $true | Where-Object -Property displayName -EQ $displayname + if ($CheckExisting) { if ($Overwrite -ne $true) { throw "Conditional Access Policy with Display Name $($Displayname) Already exists" return $false } else { - Write-Information "overwriting $($CheckExististing.id)" - $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies/$($CheckExististing.id)" -tenantid $tenantfilter -type PATCH -body $RawJSON -asApp $true - Write-LogMessage -Headers $User -API $APINAME -tenant $($Tenant) -message "Updated Conditional Access Policy $($JSONObj.Displayname) to the template standard." -Sev 'Info' + if ($State -eq 'donotchange') { + $JSONobj.state = $CheckExisting.state + $RawJSON = ConvertTo-Json -InputObject $JSONobj -Depth 10 -Compress + } + # Preserve any exclusion groups named "Vacation Exclusion - " from existing policy + try { + $ExistingVacationGroup = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/groups?`$filter=startsWith(displayName,'Vacation Exclusion')&`$select=id,displayName&`$top=999&`$count=true" -ComplexFilter -tenantid $TenantFilter -asApp $true | + Where-Object { $CheckExisting.conditions.users.excludeGroups -contains $_.id } + if ($ExistingVacationGroup) { + if (-not ($JSONobj.conditions.users.PSObject.Properties.Name -contains 'excludeGroups')) { + $JSONobj.conditions.users | Add-Member -NotePropertyName 'excludeGroups' -NotePropertyValue @() -Force + } + if ($JSONobj.conditions.users.excludeGroups -notcontains $ExistingVacationGroup.id) { + Write-Information "Preserving vacation exclusion group $($ExistingVacationGroup.displayName)" + $NewExclusions = [system.collections.generic.list[string]]::new() + # Convert each item to string explicitly to avoid type conversion issues + foreach ($group in $JSONobj.conditions.users.excludeGroups) { + $NewExclusions.Add([string]$group) + } + $NewExclusions.Add($ExistingVacationGroup.id) + $JSONobj.conditions.users.excludeGroups = $NewExclusions + } + # Re-render RawJSON after modification + $RawJSON = ConvertTo-Json -InputObject $JSONobj -Depth 10 -Compress + } + } catch { + Write-Information "Failed to preserve vacation exclusion group: $($_.Exception.Message)" + } + Write-Information "overwriting $($CheckExisting.id)" + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies/$($CheckExisting.id)" -tenantid $tenantfilter -type PATCH -body $RawJSON -asApp $true + Write-LogMessage -Headers $Headers -API 'Create CA Policy' -tenant $($Tenant) -message "Updated Conditional Access Policy $($JSONobj.Displayname) to the template standard." -Sev 'Info' return "Updated policy $displayname for $tenantfilter" } } else { - Write-Information 'Creating' - if ($JSONobj.GrantControls.authenticationStrength.policyType -or $JSONObj.$jsonobj.LocationInfo) { + Write-Information 'Creating new policy' + if ($JSOObj.GrantControls.authenticationStrength.policyType -or $JSONobj.$JSONobj.LocationInfo) { Start-Sleep 3 } $null = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/policies' -tenantid $tenantfilter -type POST -body $RawJSON -asApp $true - Write-LogMessage -Headers $User -API $APINAME -tenant $($Tenant) -message "Added Conditional Access Policy $($JSONObj.Displayname)" -Sev 'Info' + Write-LogMessage -Headers $Headers -API 'Create CA Policy' -tenant $($Tenant) -message "Added Conditional Access Policy $($JSONobj.Displayname)" -Sev 'Info' return "Created policy $displayname for $tenantfilter" } } catch { $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to create or update conditional access rule $($JSONObj.displayName): $($ErrorMessage.NormalizedError) " -sev 'Error' -LogData $ErrorMessage - throw "Failed to create or update conditional access rule $($JSONObj.displayName): $($ErrorMessage.NormalizedError)" + Write-LogMessage -API 'Standards' -tenant $TenantFilter -message "Failed to create or update conditional access rule $($JSONobj.displayName): $($ErrorMessage.NormalizedError) " -sev 'Error' -LogData $ErrorMessage + + Write-Warning "Failed to create or update conditional access rule $($JSONobj.displayName): $($ErrorMessage.NormalizedError)" + Write-Information $_.InvocationInfo.PositionMessage + Write-Information ($JSONobj | ConvertTo-Json -Depth 10) + throw "Failed to create or update conditional access rule $($JSONobj.displayName): $($ErrorMessage.NormalizedError)" } } diff --git a/Modules/CIPPCore/Public/New-CIPPCATemplate.ps1 b/Modules/CIPPCore/Public/New-CIPPCATemplate.ps1 index 890fc1247bab..060b91863208 100644 --- a/Modules/CIPPCore/Public/New-CIPPCATemplate.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPCATemplate.ps1 @@ -4,7 +4,9 @@ function New-CIPPCATemplate { $TenantFilter, $JSON, $APIName = 'Add CIPP CA Template', - $Headers + $Headers, + $preloadedUsers, + $preloadedGroups ) $JSON = ([pscustomobject]$JSON) | ForEach-Object { @@ -12,80 +14,101 @@ function New-CIPPCATemplate { $_ | Select-Object -Property $NonEmptyProperties } - $includelocations = New-Object System.Collections.ArrayList + Write-Information "Processing CA Template for tenant $TenantFilter" + Write-Information ($JSON | ConvertTo-Json -Depth 10) + + # Function to check if a string is a GUID + function Test-IsGuid($string) { + return [guid]::tryparse($string, [ref][guid]::Empty) + } + + if ($preloadedUsers) { + $users = $preloadedUsers + } else { + $users = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$top=999&`$select=displayName,id" -tenantid $TenantFilter) + } + if ($preloadedGroups) { + $groups = $preloadedGroups + } else { + $groups = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/groups?`$top=999&`$select=displayName,id" -tenantid $TenantFilter) + } + + $namedLocations = $null + if ($JSON.conditions.locations.includeLocations -or $JSON.conditions.locations.excludeLocations) { + $namedLocations = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations' -tenantid $TenantFilter + } + + $AllLocations = [system.collections.generic.list[object]]::new() + + $includelocations = [system.collections.generic.list[object]]::new() $IncludeJSON = foreach ($Location in $JSON.conditions.locations.includeLocations) { - $locationinfo = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations' -tenantid $TenantFilter | Where-Object -Property id -EQ $location | Select-Object * -ExcludeProperty id, *time* + $locationinfo = $namedLocations | Where-Object -Property id -EQ $location | Select-Object * -ExcludeProperty id, *time* $null = if ($locationinfo) { $includelocations.add($locationinfo.displayName) } else { $includelocations.add($location) } $locationinfo } if ($includelocations) { $JSON.conditions.locations.includeLocations = $includelocations } - - $excludelocations = New-Object System.Collections.ArrayList + $excludelocations = [system.collections.generic.list[object]]::new() $ExcludeJSON = foreach ($Location in $JSON.conditions.locations.excludeLocations) { - $locationinfo = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations' -tenantid $TenantFilter | Where-Object -Property id -EQ $location | Select-Object * -ExcludeProperty id, *time* + $locationinfo = $namedLocations | Where-Object -Property id -EQ $location | Select-Object * -ExcludeProperty id, *time* $null = if ($locationinfo) { $excludelocations.add($locationinfo.displayName) } else { $excludelocations.add($location) } $locationinfo } if ($excludelocations) { $JSON.conditions.locations.excludeLocations = $excludelocations } - if ($JSON.conditions.users.includeUsers) { + # Check if conditions.users exists and is a PSCustomObject (not an array) before accessing properties + $hasConditionsUsers = $null -ne $JSON.conditions.users + # Explicitly exclude array types - arrays have properties but we can't set custom properties on them + $isArray = $hasConditionsUsers -and ($JSON.conditions.users -is [Array] -or $JSON.conditions.users -is [System.Collections.IList]) + $isPSCustomObject = $hasConditionsUsers -and -not $isArray -and ($JSON.conditions.users -is [PSCustomObject] -or ($JSON.conditions.users.PSObject.Properties.Count -gt 0 -and -not $isArray)) + $hasIncludeUsers = $isPSCustomObject -and ($null -ne $JSON.conditions.users.includeUsers) + + if ($isPSCustomObject -and $hasIncludeUsers) { $JSON.conditions.users.includeUsers = @($JSON.conditions.users.includeUsers | ForEach-Object { $originalID = $_ if ($_ -in 'All', 'None', 'GuestOrExternalUsers') { return $_ } - try { - (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($_)" -tenantid $TenantFilter).displayName - } catch { - return $originalID - } + $match = $users | Where-Object { $_.id -eq $originalID } + if ($match) { $match.displayName } else { $originalID } }) } - if ($JSON.conditions.users.excludeUsers) { + # Use the same type check for other user properties + if ($isPSCustomObject -and $null -ne $JSON.conditions.users.excludeUsers) { $JSON.conditions.users.excludeUsers = @($JSON.conditions.users.excludeUsers | ForEach-Object { if ($_ -in 'All', 'None', 'GuestOrExternalUsers') { return $_ } $originalID = $_ - - try { - (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($_)" -tenantid $TenantFilter).displayName - } catch { - return $originalID - } + $match = $users | Where-Object { $_.id -eq $originalID } + if ($match) { $match.displayName } else { $originalID } }) } - # Function to check if a string is a GUID - function Test-IsGuid($string) { - return [guid]::tryparse($string, [ref][guid]::Empty) - } - - if ($JSON.conditions.users.includeGroups) { + if ($isPSCustomObject -and $null -ne $JSON.conditions.users.includeGroups) { $JSON.conditions.users.includeGroups = @($JSON.conditions.users.includeGroups | ForEach-Object { $originalID = $_ if ($_ -in 'All', 'None', 'GuestOrExternalUsers' -or -not (Test-IsGuid $_)) { return $_ } - try { - (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/groups/$($_)" -tenantid $TenantFilter).displayName - } catch { - return $originalID - } + $match = $groups | Where-Object { $_.id -eq $originalID } + if ($match) { $match.displayName } else { $originalID } }) } - if ($JSON.conditions.users.excludeGroups) { + if ($isPSCustomObject -and $null -ne $JSON.conditions.users.excludeGroups) { $JSON.conditions.users.excludeGroups = @($JSON.conditions.users.excludeGroups | ForEach-Object { $originalID = $_ - if ($_ -in 'All', 'None', 'GuestOrExternalUsers' -or -not (Test-IsGuid $_)) { return $_ } - try { - (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/groups/$($_)" -tenantid $TenantFilter).displayName - } catch { - return $originalID - - } + $match = $groups | Where-Object { $_.id -eq $originalID } + if ($match) { $match.displayName } else { $originalID } }) } - $JSON | Add-Member -NotePropertyName 'LocationInfo' -NotePropertyValue @($IncludeJSON, $ExcludeJSON) + foreach ($Location in $IncludeJSON) { + $AllLocations.Add($Location) + } + foreach ($Location in $ExcludeJSON) { + $AllLocations.Add($Location) + } + # Remove duplicates based on displayName to avoid Select-Object -Unique issues with complex objects + $UniqueLocations = $AllLocations | Group-Object -Property displayName | ForEach-Object { $_.Group[0] } + $JSON | Add-Member -NotePropertyName 'LocationInfo' -NotePropertyValue @($UniqueLocations) -Force $JSON = (ConvertTo-Json -Compress -Depth 100 -InputObject $JSON) return $JSON } diff --git a/Modules/CIPPCore/Public/New-CIPPDbRequest.ps1 b/Modules/CIPPCore/Public/New-CIPPDbRequest.ps1 new file mode 100644 index 000000000000..12a484544079 --- /dev/null +++ b/Modules/CIPPCore/Public/New-CIPPDbRequest.ps1 @@ -0,0 +1,46 @@ +function New-CIPPDbRequest { + <# + .SYNOPSIS + Query the CIPP Reporting database by partition key + + .DESCRIPTION + Retrieves data from the CippReportingDB table filtered by partition key (tenant) + + .PARAMETER TenantFilter + The tenant domain or GUID to filter by (used as partition key) + + .PARAMETER Type + Optional. The data type to filter by (e.g., Users, Groups, Devices) + + .EXAMPLE + New-CIPPDbRequest -TenantFilter 'contoso.onmicrosoft.com' + + .EXAMPLE + New-CIPPDbRequest -TenantFilter 'contoso.onmicrosoft.com' -Type 'Users' + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + [Parameter(Mandatory = $false)] + [string]$Type + ) + + try { + $Table = Get-CippTable -tablename 'CippReportingDB' + + if ($Type) { + $Filter = "PartitionKey eq '{0}' and RowKey ge '{1}-' and RowKey lt '{1}.'" -f $TenantFilter, $Type + } else { + $Filter = "PartitionKey eq '{0}'" -f $TenantFilter + } + + $Results = Get-CIPPAzDataTableEntity @Table -Filter $Filter + + return ($Results.Data | ConvertFrom-Json -ErrorAction SilentlyContinue) + } catch { + Write-LogMessage -API 'CIPPDbRequest' -tenant $TenantFilter -message "Failed to query database: $($_.Exception.Message)" -sev Error + throw + } +} diff --git a/Modules/CIPPCore/Public/New-CIPPGroup.ps1 b/Modules/CIPPCore/Public/New-CIPPGroup.ps1 new file mode 100644 index 000000000000..1d4a199568e4 --- /dev/null +++ b/Modules/CIPPCore/Public/New-CIPPGroup.ps1 @@ -0,0 +1,265 @@ +function New-CIPPGroup { + <# + .SYNOPSIS + Creates a new group in Microsoft 365 or Exchange Online + + .DESCRIPTION + Unified function for creating groups that handles all group types consistently. + Used by both direct group creation and group template application. + + .PARAMETER GroupObject + Object containing group properties (displayName, description, groupType, etc.) + + .PARAMETER TenantFilter + The tenant domain name where the group should be created + + .PARAMETER APIName + The API name for logging purposes + + .PARAMETER ExecutingUser + The user executing the request (for logging) + + .EXAMPLE + New-CIPPGroup -GroupObject $GroupData -TenantFilter 'contoso.com' -APIName 'AddGroup' + + .NOTES + Supports all group types: Generic, Security, AzureRole, Dynamic, M365, Distribution, DynamicDistribution + #> + [CmdletBinding(SupportsShouldProcess)] + param( + [Parameter(Mandatory = $true)] + [PSCustomObject]$GroupObject, + + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + [Parameter(Mandatory = $false)] + [string]$APIName = 'New-CIPPGroup', + + [Parameter(Mandatory = $false)] + [string]$ExecutingUser = 'CIPP' + ) + + try { + # Normalize group type for consistent handling (accept camelCase from templates) + $NormalizedGroupType = switch -Wildcard ($GroupObject.groupType.ToLower()) { + 'mail-enabled security' { 'Security'; break } + '*dynamicdistribution*' { 'DynamicDistribution'; break } # Check this first before *dynamic* and *distribution* + '*dynamic*' { 'Dynamic'; break } + '*generic*' { 'Generic'; break } + '*security*' { 'Security'; break } + '*azurerole*' { 'AzureRole'; break } + '*m365*' { 'M365'; break } + '*unified*' { 'M365'; break } + '*microsoft*' { 'M365'; break } + '*distribution*' { 'Distribution'; break } + '*mail*' { 'Distribution'; break } + default { $GroupObject.groupType } + } + + # Determine if this group type needs an email address + $GroupTypesNeedingEmail = @('M365', 'Distribution', 'DynamicDistribution', 'Security') + $NeedsEmail = $NormalizedGroupType -in $GroupTypesNeedingEmail + + # Determine email address only for group types that need it + $Email = if ($NeedsEmail) { + if ($GroupObject.primDomain.value) { + "$($GroupObject.username)@$($GroupObject.primDomain.value)" + } elseif ($GroupObject.primaryEmailAddress) { + $GroupObject.primaryEmailAddress + } elseif ($GroupObject.username -like '*@*') { + # Username already contains an email address (e.g., from templates with @%tenantfilter%) + $GroupObject.username + } else { + "$($GroupObject.username)@$($TenantFilter)" + } + } else { + $null + } + + # Extract local part of username if exists and remove special characters for mailNickname + if ($GroupObject.username -like '*@*') { + $MailNickname = ($GroupObject.username -split '@')[0] + } else { + $MailNickname = $GroupObject.username + } + + # Remove forbidden characters per Microsoft 365 mailNickname requirements: + # ASCII 0-127 only, excluding: @ () / [] ' ; : <> , SPACE and any non-ASCII + $MailNickname = $MailNickname -replace "[@()\[\]/'`;:<>,\s]|[^\x00-\x7F]", '' + + # Ensure max length of 64 characters + if ($MailNickname.Length -gt 64) { + $MailNickname = $MailNickname.Substring(0, 64) + } + + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Creating group $($GroupObject.displayName) of type $NormalizedGroupType$(if ($NeedsEmail) { " with email $Email" })" -Sev Info + + # Handle Graph API groups (Security, Generic, AzureRole, Dynamic, M365) + if ($NormalizedGroupType -in @('Generic', 'AzureRole', 'Dynamic', 'M365')) { + Write-Information "Creating group $($GroupObject.displayName) of type $NormalizedGroupType$(if ($NeedsEmail) { " with email $Email" })" + $BodyParams = [PSCustomObject]@{ + 'displayName' = $GroupObject.displayName + 'description' = $GroupObject.description + 'mailNickname' = $MailNickname + 'mailEnabled' = ($NormalizedGroupType -eq 'M365') + 'securityEnabled' = $true + 'isAssignableToRole' = ($NormalizedGroupType -eq 'AzureRole') + } + + # Handle dynamic membership + if ($GroupObject.membershipRules) { + $BodyParams | Add-Member -NotePropertyName 'membershipRule' -NotePropertyValue $GroupObject.membershipRules + $BodyParams | Add-Member -NotePropertyName 'membershipRuleProcessingState' -NotePropertyValue 'On' + + if ($NormalizedGroupType -eq 'M365') { + $BodyParams | Add-Member -NotePropertyName 'groupTypes' -NotePropertyValue @('Unified', 'DynamicMembership') + $BodyParams.mailEnabled = $true + } else { + $BodyParams | Add-Member -NotePropertyName 'groupTypes' -NotePropertyValue @('DynamicMembership') + } + + # Skip adding static members for dynamic groups + $SkipStaticMembers = $true + } elseif ($NormalizedGroupType -eq 'M365') { + # Static M365 group + $BodyParams | Add-Member -NotePropertyName 'groupTypes' -NotePropertyValue @('Unified') + $BodyParams.mailEnabled = $true + } + + # Add owners + if ($GroupObject.owners -and $GroupObject.owners.Count -gt 0) { + $OwnerBindings = $GroupObject.owners | ForEach-Object { + if ($_.value) { + "https://graph.microsoft.com/v1.0/users/$($_.value)" + } elseif ($_ -is [string]) { + "https://graph.microsoft.com/v1.0/users/$_" + } + } | Where-Object { $_ } + + if ($OwnerBindings) { + $BodyParams | Add-Member -NotePropertyName 'owners@odata.bind' -NotePropertyValue @($OwnerBindings) + } + } + + # Add members (only for non-dynamic groups) + if ($GroupObject.members -and $GroupObject.members.Count -gt 0 -and -not $SkipStaticMembers) { + $MemberBindings = $GroupObject.members | ForEach-Object { + if ($_.value) { + "https://graph.microsoft.com/v1.0/users/$($_.value)" + } elseif ($_ -is [string]) { + "https://graph.microsoft.com/v1.0/users/$_" + } + } | Where-Object { $_ } + + if ($MemberBindings) { + $BodyParams | Add-Member -NotePropertyName 'members@odata.bind' -NotePropertyValue @($MemberBindings) + } + } + + # Create the group via Graph API + $GraphRequest = New-GraphPostRequest -uri 'https://graph.microsoft.com/beta/groups' -tenantid $TenantFilter -type POST -body (ConvertTo-Json -InputObject $BodyParams -Depth 10) + + $Result = [PSCustomObject]@{ + Success = $true + Message = "Successfully created group $($GroupObject.displayName)" + GroupId = $GraphRequest.id + GroupType = $NormalizedGroupType + Email = if ($NeedsEmail) { $Email } else { $null } + } + if ($GroupObject.subscribeMembers) { + #Waiting for group to become available in Exo. + Start-Sleep -Seconds 10 + $SubParams = @{ + Identity = $GraphRequest.id + 'autoSubscribeNewMembers' = $true + } + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-UnifiedGroup' -cmdParams $SubParams + } + } else { + # Handle Exchange Online groups (Distribution, DynamicDistribution) + + if ($NormalizedGroupType -eq 'DynamicDistribution') { + Write-Information "Creating dynamic distribution group $($GroupObject.displayName) with email $Email" + $ExoParams = @{ + Name = $GroupObject.displayName + RecipientFilter = $GroupObject.membershipRules + PrimarySmtpAddress = $Email + } + $GraphRequest = New-ExoRequest -tenantid $TenantFilter -cmdlet 'New-DynamicDistributionGroup' -cmdParams $ExoParams + + # Set external sender restrictions if specified + if ($null -ne $GroupObject.allowExternal -and $GroupObject.allowExternal -eq $true -and $GraphRequest.Identity) { + $SetParams = @{ + RequireSenderAuthenticationEnabled = [bool]!$GroupObject.allowExternal + Identity = $GraphRequest.Identity + } + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-DynamicDistributionGroup' -cmdParams $SetParams + } + + } else { + # Regular Distribution Group + Write-Information "Creating distribution group $($GroupObject.displayName) with email $Email" + + $ExoParams = @{ + Name = $GroupObject.displayName + Alias = $MailNickname + Description = $GroupObject.description + PrimarySmtpAddress = $Email + Type = $GroupObject.groupType + RequireSenderAuthenticationEnabled = [bool]!$GroupObject.allowExternal + } + + if ($NormalizedGroupType -eq 'Security') { + $ExoParams.Type = 'Security' + } + + # Add owners + if ($GroupObject.owners -and $GroupObject.owners.Count -gt 0) { + $OwnerEmails = $GroupObject.owners | ForEach-Object { + if ($_.value) { $_.value } elseif ($_ -is [string]) { $_ } + } | Where-Object { $_ } + + if ($OwnerEmails) { + $ExoParams.ManagedBy = @($OwnerEmails) + } + } + + # Add members + if ($GroupObject.members -and $GroupObject.members.Count -gt 0) { + $MemberEmails = $GroupObject.members | ForEach-Object { + if ($_.value) { $_.value } elseif ($_ -is [string]) { $_ } + } | Where-Object { $_ } + + if ($MemberEmails) { + $ExoParams.Members = @($MemberEmails) + } + } + + $GraphRequest = New-ExoRequest -tenantid $TenantFilter -cmdlet 'New-DistributionGroup' -cmdParams $ExoParams + } + + $Result = [PSCustomObject]@{ + Success = $true + Message = "Successfully created group $($GroupObject.displayName)" + GroupId = $GraphRequest.Identity + GroupType = $NormalizedGroupType + Email = $Email + } + } + + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Created group $($GroupObject.displayName) with id $($Result.GroupId)" -Sev Info + return $Result + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Group creation failed for $($GroupObject.displayName): $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + + return [PSCustomObject]@{ + Success = $false + Message = "Failed to create group $($GroupObject.displayName): $($ErrorMessage.NormalizedError)" + Error = $ErrorMessage.NormalizedError + GroupType = $NormalizedGroupType + } + } +} diff --git a/Modules/CIPPCore/Public/New-CIPPIntuneTemplate.ps1 b/Modules/CIPPCore/Public/New-CIPPIntuneTemplate.ps1 index 452e81574db6..8360058a0a29 100644 --- a/Modules/CIPPCore/Public/New-CIPPIntuneTemplate.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPIntuneTemplate.ps1 @@ -7,7 +7,6 @@ function New-CIPPIntuneTemplate { $CIPPURL, $ODataType ) - Write-Host "These are all bound params: $urlname, $id, $TenantFilter, $ActionResults, $CIPPURL, $ODataType" if ($ODataType) { switch -wildcard ($ODataType) { '*CompliancePolicy' { @@ -33,42 +32,48 @@ function New-CIPPIntuneTemplate { switch ($URLName) { 'deviceCompliancePolicies' { $Type = 'deviceCompliancePolicies' - $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)/$($ID)?`$expand=scheduledActionsForRule(`$expand=scheduledActionConfigurations)" -tenantid $tenantfilter + $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)/$($ID)?`$expand=scheduledActionsForRule(`$expand=scheduledActionConfigurations)" -tenantid $TenantFilter $DisplayName = $Template.displayName $TemplateJson = ConvertTo-Json -InputObject $Template -Depth 100 -Compress } 'managedAppPolicies' { $Type = 'AppProtection' - $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceAppManagement/$($urlname)('$($ID)')" -tenantid $tenantfilter + $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceAppManagement/$($urlname)('$($ID)')" -tenantid $TenantFilter + $DisplayName = $Template.displayName + $TemplateJson = ConvertTo-Json -InputObject $Template -Depth 100 -Compress + } + 'mobileAppConfigurations' { + $Type = 'AppConfiguration' + $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceAppManagement/$($urlname)('$($ID)')" -tenantid $TenantFilter $DisplayName = $Template.displayName $TemplateJson = ConvertTo-Json -InputObject $Template -Depth 100 -Compress } 'configurationPolicies' { $Type = 'Catalog' - $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)('$($ID)')?`$expand=settings" -tenantid $tenantfilter | Select-Object name, description, settings, platforms, technologies, templateReference - $TemplateJson = $Template | ConvertTo-Json -Depth 100 + $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)('$($ID)')?`$expand=settings" -tenantid $TenantFilter | Select-Object name, description, settings, platforms, technologies, templateReference + $TemplateJson = $Template | ConvertTo-Json -Depth 100 -Compress $DisplayName = $Template.name } 'windowsDriverUpdateProfiles' { $Type = 'windowsDriverUpdateProfiles' - $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)/$($ID)" -tenantid $tenantfilter | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' + $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)/$($ID)" -tenantid $TenantFilter | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' $DisplayName = $Template.displayName $TemplateJson = ConvertTo-Json -InputObject $Template -Depth 100 -Compress } 'deviceConfigurations' { $Type = 'Device' - $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)/$($ID)" -tenantid $tenantfilter | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' + $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)/$($ID)" -tenantid $TenantFilter | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' $DisplayName = $Template.displayName $TemplateJson = ConvertTo-Json -InputObject $Template -Depth 100 -Compress } 'groupPolicyConfigurations' { $Type = 'Admin' - $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)('$($ID)')" -tenantid $tenantfilter + $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)('$($ID)')" -tenantid $TenantFilter $DisplayName = $Template.displayName - $TemplateJsonItems = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)('$($ID)')/definitionValues?`$expand=definition" -tenantid $tenantfilter + $TemplateJsonItems = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)('$($ID)')/definitionValues?`$expand=definition" -tenantid $TenantFilter $TemplateJsonSource = foreach ($TemplateJsonItem in $TemplateJsonItems) { - $presentationValues = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)('$($ID)')/definitionValues('$($TemplateJsonItem.id)')/presentationValues?`$expand=presentation" -tenantid $tenantfilter | ForEach-Object { + $presentationValues = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)('$($ID)')/definitionValues('$($TemplateJsonItem.id)')/presentationValues?`$expand=presentation" -tenantid $TenantFilter | ForEach-Object { $obj = $_ if ($obj.id) { $PresObj = @{ @@ -99,19 +104,19 @@ function New-CIPPIntuneTemplate { } 'windowsFeatureUpdateProfiles' { $Type = 'windowsFeatureUpdateProfiles' - $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)/$($ID)" -tenantid $tenantfilter | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' + $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)/$($ID)" -tenantid $TenantFilter | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' $DisplayName = $Template.displayName $TemplateJson = ConvertTo-Json -InputObject $Template -Depth 100 -Compress } 'windowsQualityUpdatePolicies' { $Type = 'windowsQualityUpdatePolicies' - $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)/$($ID)" -tenantid $tenantfilter | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' + $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)/$($ID)" -tenantid $TenantFilter | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' $DisplayName = $Template.displayName $TemplateJson = ConvertTo-Json -InputObject $Template -Depth 100 -Compress } 'windowsQualityUpdateProfiles' { $Type = 'windowsQualityUpdateProfiles' - $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)/$($ID)" -tenantid $tenantfilter | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' + $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)/$($ID)" -tenantid $TenantFilter | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' $DisplayName = $Template.displayName $TemplateJson = ConvertTo-Json -InputObject $Template -Depth 100 -Compress } diff --git a/Modules/CIPPCore/Public/New-CIPPRestore.ps1 b/Modules/CIPPCore/Public/New-CIPPRestore.ps1 index 52042e261780..5668b3f48484 100644 --- a/Modules/CIPPCore/Public/New-CIPPRestore.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPRestore.ps1 @@ -10,7 +10,8 @@ function New-CIPPRestore { Write-Host "Scheduled Restore psproperties: $(([pscustomobject]$RestoreValues).psobject.Properties)" Write-LogMessage -headers $Headers -API $APINAME -message 'Restored backup' -Sev 'Debug' - $RestoreData = foreach ($ScheduledBackup in ([pscustomobject]$RestoreValues).psobject.Properties.Name | Where-Object { $_ -notin 'email', 'webhook', 'psa', 'backup', 'overwrite' }) { + $RestoreData = foreach ($ScheduledBackup in ([pscustomobject]$RestoreValues).psobject.Properties | Where-Object { $_.Value -eq $true -and $_.Name -notin 'email', 'webhook', 'psa', 'backup', 'overwrite' } | Select-Object -ExpandProperty Name) { + Write-Information "Restoring $ScheduledBackup for tenant $TenantFilter" New-CIPPRestoreTask -Task $ScheduledBackup -TenantFilter $TenantFilter -backup $RestoreValues.backup -overwrite $RestoreValues.overwrite -Headers $Headers -APIName $APIName } return $RestoreData diff --git a/Modules/CIPPCore/Public/New-CIPPRestoreTask.ps1 b/Modules/CIPPCore/Public/New-CIPPRestoreTask.ps1 index a16760daf7ce..aec6db68de03 100644 --- a/Modules/CIPPCore/Public/New-CIPPRestoreTask.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPRestoreTask.ps1 @@ -8,48 +8,196 @@ function New-CIPPRestoreTask { $APINAME, $Headers ) - $Table = Get-CippTable -tablename 'ScheduledBackup' - $BackupData = Get-CIPPAzDataTableEntity @Table -Filter "RowKey eq '$backup'" - $RestoreData = switch ($Task) { + # Use Get-CIPPBackup which handles blob storage fetching + $BackupData = Get-CIPPBackup -Type 'Scheduled' -Name $backup + + # If this is a blob-based backup, parse the Backup property to get the actual data structure + if ($BackupData.BackupIsBlob -or $BackupData.BackupIsBlobLink) { + try { + $BackupData = $BackupData.Backup | ConvertFrom-Json + } catch { + Write-Warning "Failed to parse blob backup data: $($_.Exception.Message)" + } + } + + + # Initialize restoration counters + $restorationStats = @{ + 'CustomVariables' = @{ success = 0; failed = 0 } + 'Users' = @{ success = 0; failed = 0 } + 'Groups' = @{ success = 0; failed = 0 } + 'ConditionalAccess' = @{ success = 0; failed = 0 } + 'IntuneConfig' = @{ success = 0; failed = 0 } + 'IntunCompliance' = @{ success = 0; failed = 0 } + 'IntuneProtection' = @{ success = 0; failed = 0 } + 'AntiSpam' = @{ success = 0; failed = 0 } + 'AntiPhishing' = @{ success = 0; failed = 0 } + 'WebhookAlerts' = @{ success = 0; failed = 0 } + 'ScriptedAlerts' = @{ success = 0; failed = 0 } + } + + # Helper function to clean user object for Graph API - removes reference properties, nulls, and empty strings + function Clean-GraphObject { + param($Object, [switch]$ExcludeId) + $excludeProps = @('password', 'passwordProfile', '@odata.type', 'manager', 'memberOf', 'createdOnBehalfOf', 'createdByAppId', 'deletedDateTime', 'authorizationInfo') + if ($ExcludeId) { + $excludeProps += @('id') + } + + $cleaned = $Object | Select-Object * -ExcludeProperty $excludeProps + $result = @{} + + foreach ($prop in $cleaned.PSObject.Properties) { + $propValue = $prop.Value + # Skip empty strings, nulls, and complex objects (except known-good arrays like businessPhones) + if ($propValue -ne '' -and $null -ne $propValue) { + # Skip complex objects/dictionaries but allow simple arrays + if ($propValue -is [System.Collections.IDictionary]) { + continue + } + $result[$prop.Name] = $propValue + } + } + + return $result + } + + $RestoreData = [System.Collections.Generic.List[string]]::new() + + switch ($Task) { + 'CippCustomVariables' { + Write-Host "Restore Custom Variables for $TenantFilter" + $ReplaceTable = Get-CIPPTable -TableName 'CippReplacemap' + $Backup = if ($BackupData.CippCustomVariables -is [string]) { $BackupData.CippCustomVariables | ConvertFrom-Json } else { $BackupData.CippCustomVariables } + + $Tenant = Get-Tenants -TenantFilter $TenantFilter + $CustomerId = $Tenant.customerId + + try { + foreach ($variable in $Backup) { + $entity = @{ + PartitionKey = $CustomerId + RowKey = $variable.RowKey + Value = $variable.Value + Description = $variable.Description + } + + try { + if ($overwrite) { + Add-CIPPAzDataTableEntity @ReplaceTable -Entity $entity -Force + Write-LogMessage -message "Restored custom variable $($variable.RowKey) from backup" -Sev 'info' + $restorationStats['CustomVariables'].success++ + $RestoreData.Add("Restored custom variable $($variable.RowKey) from backup") + } else { + # Check if variable already exists + $existing = Get-CIPPAzDataTableEntity @ReplaceTable -Filter "PartitionKey eq '$CustomerId' and RowKey eq '$($variable.RowKey)'" + if (!$existing) { + Add-CIPPAzDataTableEntity @ReplaceTable -Entity $entity -Force + Write-LogMessage -message "Restored custom variable $($variable.RowKey) from backup" -Sev 'info' + $restorationStats['CustomVariables'].success++ + $RestoreData.Add("Restored custom variable $($variable.RowKey) from backup") + } else { + Write-LogMessage -message "Custom variable $($variable.RowKey) already exists and overwrite is disabled" -Sev 'info' + $RestoreData.Add("Custom variable $($variable.RowKey) already exists and overwrite is disabled") + } + } + } catch { + $restorationStats['CustomVariables'].failed++ + Write-LogMessage -message "Failed to restore custom variable $($variable.RowKey): $($_.Exception.Message)" -Sev 'Warning' + $RestoreData.Add("Failed to restore custom variable $($variable.RowKey)") + } + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $RestoreData.Add("Could not restore Custom Variables: $ErrorMessage") + Write-LogMessage -Headers $Headers -API $APINAME -message "Could not restore Custom Variables: $ErrorMessage" -Sev 'Error' + } + } 'users' { $currentUsers = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/users?$top=999&select=id,userPrincipalName' -tenantid $TenantFilter - $backupUsers = $BackupData.users | ConvertFrom-Json + $backupUsers = if ($BackupData.users -is [string]) { $BackupData.users | ConvertFrom-Json } else { $BackupData.users } + + Write-Host "Restore users for $TenantFilter" + Write-Information "User count in backup: $($backupUsers.Count)" $BackupUsers | ForEach-Object { try { - $JSON = $_ | ConvertTo-Json -Depth 100 -Compress - $DisplayName = $_.displayName - $UPN = $_.userPrincipalName + $userObject = $_ + $UPN = $userObject.userPrincipalName + if ($overwrite) { - if ($_.id -in $currentUsers.id) { - New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/users/$($_.id)" -tenantid $TenantFilter -body $JSON -type PATCH + if ($userObject.id -in $currentUsers.id -or $userObject.userPrincipalName -in $currentUsers.userPrincipalName) { + # Patch existing user - clean object to remove reference properties, nulls, and empty strings + $cleanedUser = Clean-GraphObject -Object $userObject + $patchBody = $cleanedUser | ConvertTo-Json -Depth 100 -Compress + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/users/$($userObject.id)" -tenantid $TenantFilter -body $patchBody -type PATCH Write-LogMessage -message "Restored $($UPN) from backup by patching the existing object." -Sev 'info' - "The user existed. Restored $($UPN) from backup" + $restorationStats['Users'].success++ + $RestoreData.Add("The user existed. Restored $($UPN) from backup") } else { - New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/users' -tenantid $TenantFilter -body $JSON -type POST - Write-LogMessage -message "Restored $($UPN) from backup by creating a new object." -Sev 'info' - "The user did not exist. Restored $($UPN) from backup" + # Create new user - need to add password and clean object + $tempPassword = New-passwordString + # Remove reference properties that may not exist in target tenant, nulls, and empty strings + $cleanedUser = Clean-GraphObject -Object $userObject -ExcludeId + $cleanedUser['passwordProfile'] = @{ + 'forceChangePasswordNextSignIn' = $true + 'password' = $tempPassword + } + $JSON = $cleanedUser | ConvertTo-Json -Depth 100 -Compress + + $null = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/users' -tenantid $TenantFilter -body $JSON -type POST + # Try to wrap password in PwPush link + $displayPassword = $tempPassword + try { + $PasswordLink = New-PwPushLink -Payload $tempPassword + if ($PasswordLink) { + $displayPassword = $PasswordLink + } + } catch { + # If PwPush fails, use plain password + } + Write-LogMessage -message "Restored $($UPN) from backup by creating a new object with temporary password. Password: $displayPassword" -Sev 'info' -tenant $TenantFilter + $restorationStats['Users'].success++ + $RestoreData.Add("The user did not exist. Restored $($UPN) from backup with temporary password: $displayPassword") } } if (!$overwrite) { - if ($_.id -notin $backupUsers.id) { - New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/users' -tenantid $TenantFilter -body $JSON -type POST - Write-LogMessage -message "Restored $($UPN) from backup" -Sev 'info' - "Restored $($UPN) from backup" - } else { - Write-LogMessage -message "User $($UPN) already exists in tenant $TenantFilter and overwrite is disabled" -Sev 'info' - "User $($UPN) already exists in tenant $TenantFilter and overwrite is disabled" + if ($userObject.id -notin $currentUsers.id -and $userObject.userPrincipalName -notin $currentUsers.userPrincipalName) { + # Create new user - need to add password and clean object + $tempPassword = New-passwordString + # Remove reference properties that may not exist in target tenant, nulls, and empty strings + $cleanedUser = Clean-GraphObject -Object $userObject -ExcludeId + $cleanedUser['passwordProfile'] = @{ + 'forceChangePasswordNextSignIn' = $true + 'password' = $tempPassword + } + $JSON = $cleanedUser | ConvertTo-Json -Depth 100 -Compress + $null = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/users' -tenantid $TenantFilter -body $JSON -type POST + # Try to wrap password in PwPush link + $displayPassword = $tempPassword + try { + $PasswordLink = New-PwPushLink -Payload $tempPassword + if ($PasswordLink) { + $displayPassword = $PasswordLink + } + } catch { + # If PwPush fails, use plain password + } + Write-LogMessage -message "Restored $($UPN) from backup with temporary password. Password: $displayPassword" -Sev 'info' + $restorationStats['Users'].success++ + $RestoreData.Add("Restored $($UPN) from backup with temporary password: $displayPassword") } } } catch { + $restorationStats['Users'].failed++ $ErrorMessage = Get-CippException -Exception $_ - "Could not restore user $($UPN): $($ErrorMessage.NormalizedError) " + $RestoreData.Add("Could not restore user $($UPN): $($ErrorMessage.NormalizedError) ") Write-LogMessage -Headers $Headers -API $APINAME -message "Could not restore user $($UPN): $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage } } } 'groups' { Write-Host "Restore groups for $TenantFilter" - $backupGroups = $BackupData.groups | ConvertFrom-Json + $backupGroups = if ($BackupData.groups -is [string]) { $BackupData.groups | ConvertFrom-Json } else { $BackupData.groups } $Groups = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/groups?$top=999' -tenantid $TenantFilter $BackupGroups | ForEach-Object { try { @@ -57,67 +205,77 @@ function New-CIPPRestoreTask { $DisplayName = $_.displayName if ($overwrite) { if ($_.id -in $Groups.id) { - New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/groups/$($_.id)" -tenantid $TenantFilter -body $JSON -type PATCH + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/groups/$($_.id)" -tenantid $TenantFilter -body $JSON -type PATCH Write-LogMessage -message "Restored $DisplayName from backup by patching the existing object." -Sev 'info' - "The group existed. Restored $DisplayName from backup" + $restorationStats['Groups'].success++ + $RestoreData.Add("The group existed. Restored $DisplayName from backup") } else { - New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/groups' -tenantid $TenantFilter -body $JSON -type POST + $null = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/groups' -tenantid $TenantFilter -body $JSON -type POST Write-LogMessage -message "Restored $DisplayName from backup" -Sev 'info' - "Restored $DisplayName from backup" + $restorationStats['Groups'].success++ + $RestoreData.Add("Restored $DisplayName from backup") } } if (!$overwrite) { if ($_.id -notin $Groups.id) { - New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/groups' -tenantid $TenantFilter -body $JSON -type POST + $null = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/groups' -tenantid $TenantFilter -body $JSON -type POST Write-LogMessage -message "Restored $DisplayName from backup" -Sev 'info' - "Restored $DisplayName from backup" + $restorationStats['Groups'].success++ + $RestoreData.Add("Restored $DisplayName from backup") } else { Write-LogMessage -message "Group $DisplayName already exists in tenant $TenantFilter and overwrite is disabled" -Sev 'info' - "Group $DisplayName already exists in tenant $TenantFilter and overwrite is disabled" + $RestoreData.Add("Group $DisplayName already exists in tenant $TenantFilter and overwrite is disabled") } } } catch { + $restorationStats['Groups'].failed++ $ErrorMessage = Get-CippException -Exception $_ - "Could not restore group $DisplayName : $($ErrorMessage.NormalizedError) " + $RestoreData.Add("Could not restore group $DisplayName : $($ErrorMessage.NormalizedError) ") Write-LogMessage -Headers $Headers -API $APINAME -message "Could not restore group $DisplayName : $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage } } } 'ca' { Write-Host "Restore Conditional Access Policies for $TenantFilter" - $BackupCAPolicies = $BackupData.ca | ConvertFrom-Json + $BackupCAPolicies = if ($BackupData.ca -is [string]) { $BackupData.ca | ConvertFrom-Json } else { $BackupData.ca } $BackupCAPolicies | ForEach-Object { $JSON = $_ try { - New-CIPPCAPolicy -replacePattern 'displayName' -Overwrite $overwrite -TenantFilter $TenantFilter -state 'donotchange' -RawJSON $JSON -APIName 'CIPP Restore' -ErrorAction SilentlyContinue + $null = New-CIPPCAPolicy -replacePattern 'displayName' -Overwrite $overwrite -TenantFilter $TenantFilter -state 'donotchange' -RawJSON $JSON -APIName 'CIPP Restore' -ErrorAction SilentlyContinue + $restorationStats['ConditionalAccess'].success++ + $RestoreData.Add('Restored Conditional Access policy from backup') } catch { + $restorationStats['ConditionalAccess'].failed++ $ErrorMessage = Get-CippException -Exception $_ - "Could not restore Conditional Access Policy $DisplayName : $($ErrorMessage.NormalizedError) " + $RestoreData.Add("Could not restore Conditional Access Policy $DisplayName : $($ErrorMessage.NormalizedError) ") Write-LogMessage -Headers $Headers -API $APINAME -message "Could not restore Conditional Access Policy $DisplayName : $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage } } } 'intuneconfig' { - $BackupConfig = $BackupData.intuneconfig | ConvertFrom-Json + $BackupConfig = if ($BackupData.intuneconfig -is [string]) { $BackupData.intuneconfig | ConvertFrom-Json } else { $BackupData.intuneconfig } foreach ($backup in $backupConfig) { try { - Set-CIPPIntunePolicy -TemplateType $backup.Type -TenantFilter $TenantFilter -DisplayName $backup.DisplayName -Description $backup.Description -RawJSON ($backup.TemplateJson) -Headers $Headers -APINAME $APINAME -ErrorAction SilentlyContinue + $null = Set-CIPPIntunePolicy -TemplateType $backup.Type -TenantFilter $TenantFilter -DisplayName $backup.DisplayName -Description $backup.Description -RawJSON ($backup.TemplateJson) -Headers $Headers -APINAME $APINAME -ErrorAction SilentlyContinue } catch { $ErrorMessage = Get-CippException -Exception $_ - "Could not restore Intune Configuration $DisplayName : $($ErrorMessage.NormalizedError) " + $RestoreData.Add("Could not restore Intune Configuration $DisplayName : $($ErrorMessage.NormalizedError) ") Write-LogMessage -Headers $Headers -API $APINAME -message "Could not restore Intune Configuration $DisplayName : $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage } } #Convert the manual method to a function } 'intunecompliance' { - $BackupConfig = $BackupData.intunecompliance | ConvertFrom-Json + $BackupConfig = if ($BackupData.intunecompliance -is [string]) { $BackupData.intunecompliance | ConvertFrom-Json } else { $BackupData.intunecompliance } foreach ($backup in $backupConfig) { try { - Set-CIPPIntunePolicy -TemplateType $backup.Type -TenantFilter $TenantFilter -DisplayName $backup.DisplayName -Description $backup.Description -RawJSON ($backup.TemplateJson) -Headers $Headers -APINAME $APINAME -ErrorAction SilentlyContinue + $null = Set-CIPPIntunePolicy -TemplateType $backup.Type -TenantFilter $TenantFilter -DisplayName $backup.DisplayName -Description $backup.Description -RawJSON ($backup.TemplateJson) -Headers $Headers -APINAME $APINAME -ErrorAction SilentlyContinue + $restorationStats['IntuneConfig'].success++ + $RestoreData.Add('Restored Intune configuration from backup') } catch { + $restorationStats['IntuneConfig'].failed++ $ErrorMessage = Get-CippException -Exception $_ - "Could not restore Intune Compliance $DisplayName : $($ErrorMessage.NormalizedError) " + $RestoreData.Add("Could not restore Intune Compliance $DisplayName : $($ErrorMessage.NormalizedError) ") Write-LogMessage -Headers $Headers -API $APINAME -message "Could not restore Intune Configuration $DisplayName : $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage } } @@ -125,13 +283,16 @@ function New-CIPPRestoreTask { } 'intuneprotection' { - $BackupConfig = $BackupData.intuneprotection | ConvertFrom-Json + $BackupConfig = if ($BackupData.intuneprotection -is [string]) { $BackupData.intuneprotection | ConvertFrom-Json } else { $BackupData.intuneprotection } foreach ($backup in $backupConfig) { try { - Set-CIPPIntunePolicy -TemplateType $backup.Type -TenantFilter $TenantFilter -DisplayName $backup.DisplayName -Description $backup.Description -RawJSON ($backup.TemplateJson) -Headers $Headers -APINAME $APINAME -ErrorAction SilentlyContinue + $null = Set-CIPPIntunePolicy -TemplateType $backup.Type -TenantFilter $TenantFilter -DisplayName $backup.DisplayName -Description $backup.Description -RawJSON ($backup.TemplateJson) -Headers $Headers -APINAME $APINAME -ErrorAction SilentlyContinue + $restorationStats['IntuneProtection'].success++ + $RestoreData.Add('Restored Intune protection policy from backup') } catch { + $restorationStats['IntuneProtection'].failed++ $ErrorMessage = Get-CippException -Exception $_ - "Could not restore Intune Protection $DisplayName : $($ErrorMessage.NormalizedError) " + $RestoreData.Add("Could not restore Intune Protection $DisplayName : $($ErrorMessage.NormalizedError) ") Write-LogMessage -Headers $Headers -API $APINAME -message "Could not restore Intune Configuration $DisplayName : $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage } } @@ -140,14 +301,15 @@ function New-CIPPRestoreTask { 'antispam' { try { - $BackupConfig = $BackupData.antispam | ConvertFrom-Json | ConvertFrom-Json + $BackupConfig = if ($BackupData.antispam -is [string]) { $BackupData.antispam | ConvertFrom-Json } else { $BackupData.antispam } + if ($BackupConfig -is [string]) { $BackupConfig = $BackupConfig | ConvertFrom-Json } $BackupPolicies = $BackupConfig.policies $BackupRules = $BackupConfig.rules $CurrentPolicies = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-HostedContentFilterPolicy' | Select-Object * -ExcludeProperty *odata*, *data.type* $CurrentRules = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-HostedContentFilterRule' | Select-Object * -ExcludeProperty *odata*, *data.type* } catch { $ErrorMessage = Get-CippException -Exception $_ - "Could not obtain Anti-Spam Configuration: $($ErrorMessage.NormalizedError) " + $RestoreData.Add("Could not obtain Anti-Spam Configuration: $($ErrorMessage.NormalizedError) ") Write-LogMessage -Headers $Headers -API $APINAME -message "Could not obtain Anti-Spam Configuration: $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage } @@ -240,10 +402,11 @@ function New-CIPPRestoreTask { } } - New-ExoRequest -TenantId $Tenantfilter -cmdlet 'Set-HostedContentFilterPolicy' -cmdparams $cmdparams -UseSystemMailbox $true + $null = New-ExoRequest -TenantId $Tenantfilter -cmdlet 'Set-HostedContentFilterPolicy' -cmdparams $cmdparams -UseSystemMailbox $true Write-LogMessage -message "Restored $($policy.Identity) from backup" -Sev 'info' - "Restored $($policy.Identity) from backup." + $restorationStats['AntiSpam'].success++ + $RestoreData.Add("Restored $($policy.Identity) from backup.") } } else { $cmdparams = @{ @@ -260,14 +423,16 @@ function New-CIPPRestoreTask { } } - New-ExoRequest -TenantId $Tenantfilter -cmdlet 'New-HostedContentFilterPolicy' -cmdparams $cmdparams -UseSystemMailbox $true + $null = New-ExoRequest -TenantId $Tenantfilter -cmdlet 'New-HostedContentFilterPolicy' -cmdparams $cmdparams -UseSystemMailbox $true Write-LogMessage -message "Restored $($policy.Identity) from backup" -Sev 'info' - "Restored $($policy.Identity) from backup." + $restorationStats['AntiSpam'].success++ + $RestoreData.Add("Restored $($policy.Identity) from backup.") } } catch { + $restorationStats['AntiSpam'].failed++ $ErrorMessage = Get-CippException -Exception $_ - "Could not restore Anti-spam policy $($policy.Identity) : $($ErrorMessage.NormalizedError) " + $RestoreData.Add("Could not restore Anti-spam policy $($policy.Identity) : $($ErrorMessage.NormalizedError) ") Write-LogMessage -Headers $Headers -API $APINAME -message "Could not restore Anti-spam policy $($policy.Identity) : $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage } } @@ -290,10 +455,11 @@ function New-CIPPRestoreTask { } } - New-ExoRequest -TenantId $Tenantfilter -cmdlet 'Set-HostedContentFilterRule' -cmdparams $cmdparams -UseSystemMailbox $true + $null = New-ExoRequest -TenantId $Tenantfilter -cmdlet 'Set-HostedContentFilterRule' -cmdparams $cmdparams -UseSystemMailbox $true Write-LogMessage -message "Restored $($rule.Identity) from backup" -Sev 'info' - "Restored $($rule.Identity) from backup." + $restorationStats['AntiSpam'].success++ + $RestoreData.Add("Restored $($rule.Identity) from backup.") } } else { $cmdparams = @{ @@ -310,14 +476,16 @@ function New-CIPPRestoreTask { } } - New-ExoRequest -TenantId $Tenantfilter -cmdlet 'New-HostedContentFilterRule' -cmdparams $cmdparams -UseSystemMailbox $true + $null = New-ExoRequest -TenantId $Tenantfilter -cmdlet 'New-HostedContentFilterRule' -cmdparams $cmdparams -UseSystemMailbox $true Write-LogMessage -message "Restored $($rule.Identity) from backup" -Sev 'info' - "Restored $($rule.Identity) from backup." + $restorationStats['AntiSpam'].success++ + $RestoreData.Add("Restored $($rule.Identity) from backup.") } } catch { + $restorationStats['AntiSpam'].failed++ $ErrorMessage = Get-CippException -Exception $_ - "Could not restore Anti-spam rule $($rule.Identity) : $($ErrorMessage.NormalizedError) " + $RestoreData.Add("Could not restore Anti-spam rule $($rule.Identity) : $($ErrorMessage.NormalizedError) ") Write-LogMessage -Headers $Headers -API $APINAME -message "Could not restore Anti-spam rule $($rule.Identity) : $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage } } @@ -325,14 +493,15 @@ function New-CIPPRestoreTask { 'antiphishing' { try { - $BackupConfig = $BackupData.antiphishing | ConvertFrom-Json | ConvertFrom-Json + $BackupConfig = if ($BackupData.antiphishing -is [string]) { $BackupData.antiphishing | ConvertFrom-Json } else { $BackupData.antiphishing } + if ($BackupConfig -is [string]) { $BackupConfig = $BackupConfig | ConvertFrom-Json } $BackupPolicies = $BackupConfig.policies $BackupRules = $BackupConfig.rules $CurrentPolicies = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-AntiPhishPolicy' | Select-Object * -ExcludeProperty *odata*, *data.type* $CurrentRules = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-AntiPhishRule' | Select-Object * -ExcludeProperty *odata*, *data.type* } catch { $ErrorMessage = Get-CippException -Exception $_ - "Could not obtain Anti-Phishing Configuration: $($ErrorMessage.NormalizedError) " + $RestoreData.Add("Could not obtain Anti-Phishing Configuration: $($ErrorMessage.NormalizedError) ") Write-LogMessage -Headers $Headers -API $APINAME -message "Could not obtain Anti-Phishing Configuration: $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage } @@ -401,10 +570,11 @@ function New-CIPPRestoreTask { } } - New-ExoRequest -TenantId $Tenantfilter -cmdlet 'Set-AntiPhishPolicy' -cmdparams $cmdparams -UseSystemMailbox $true + $null = New-ExoRequest -TenantId $Tenantfilter -cmdlet 'Set-AntiPhishPolicy' -cmdparams $cmdparams -UseSystemMailbox $true Write-LogMessage -message "Restored $($policy.Identity) from backup" -Sev 'info' - "Restored $($policy.Identity) from backup." + $restorationStats['AntiPhishing'].success++ + $RestoreData.Add("Restored $($policy.Identity) from backup.") } } else { $cmdparams = @{ @@ -417,14 +587,16 @@ function New-CIPPRestoreTask { } } - New-ExoRequest -TenantId $Tenantfilter -cmdlet 'New-AntiPhishPolicy' -cmdparams $cmdparams -UseSystemMailbox $true + $null = New-ExoRequest -TenantId $Tenantfilter -cmdlet 'New-AntiPhishPolicy' -cmdparams $cmdparams -UseSystemMailbox $true Write-LogMessage -message "Restored $($policy.Identity) from backup" -Sev 'info' - "Restored $($policy.Identity) from backup." + $restorationStats['AntiPhishing'].success++ + $RestoreData.Add("Restored $($policy.Identity) from backup.") } } catch { + $restorationStats['AntiPhishing'].failed++ $ErrorMessage = Get-CippException -Exception $_ - "Could not restore Anti-phishing policy $($policy.Identity) : $($ErrorMessage.NormalizedError) " + $RestoreData.Add("Could not restore Anti-phishing policy $($policy.Identity) : $($ErrorMessage.NormalizedError) ") Write-LogMessage -Headers $Headers -API $APINAME -message "Could not restore Anti-phishing policy $($policy.Identity) : $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage } } @@ -447,10 +619,11 @@ function New-CIPPRestoreTask { } } - New-ExoRequest -TenantId $Tenantfilter -cmdlet 'Set-AntiPhishRule' -cmdparams $cmdparams -UseSystemMailbox $true + $null = New-ExoRequest -TenantId $Tenantfilter -cmdlet 'Set-AntiPhishRule' -cmdparams $cmdparams -UseSystemMailbox $true Write-LogMessage -message "Restored $($rule.Identity) from backup" -Sev 'info' - "Restored $($rule.Identity) from backup." + $restorationStats['AntiPhishing'].success++ + $RestoreData.Add("Restored $($rule.Identity) from backup.") } } else { $cmdparams = @{ @@ -467,14 +640,16 @@ function New-CIPPRestoreTask { } } - New-ExoRequest -TenantId $Tenantfilter -cmdlet 'New-AntiPhishRule' -cmdparams $cmdparams -UseSystemMailbox $true + $null = New-ExoRequest -TenantId $Tenantfilter -cmdlet 'New-AntiPhishRule' -cmdparams $cmdparams -UseSystemMailbox $true Write-LogMessage -message "Restored $($rule.Identity) from backup" -Sev 'info' - "Restored $($rule.Identity) from backup." + $restorationStats['AntiPhishing'].success++ + $RestoreData.Add("Restored $($rule.Identity) from backup.") } } catch { + $restorationStats['AntiPhishing'].failed++ $ErrorMessage = Get-CippException -Exception $_ - "Could not restore Anti-phishing rule $($rule.Identity) : $($ErrorMessage.NormalizedError) " + $RestoreData.Add("Could not restore Anti-phishing rule $($rule.Identity) : $($ErrorMessage.NormalizedError) ") Write-LogMessage -Headers $Headers -API $APINAME -message "Could not restore Anti-phishing rule $($rule.Identity) : $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage } } @@ -482,26 +657,57 @@ function New-CIPPRestoreTask { 'CippWebhookAlerts' { Write-Host "Restore Webhook Alerts for $TenantFilter" $WebhookTable = Get-CIPPTable -TableName 'WebhookRules' - $Backup = $BackupData.CippWebhookAlerts | ConvertFrom-Json + $Backup = if ($BackupData.CippWebhookAlerts -is [string]) { $BackupData.CippWebhookAlerts | ConvertFrom-Json } else { $BackupData.CippWebhookAlerts } try { Add-CIPPAzDataTableEntity @WebhookTable -Entity $Backup -Force + $restorationStats['WebhookAlerts'].success++ + $RestoreData.Add('Restored Webhook Alerts from backup') } catch { + $restorationStats['WebhookAlerts'].failed++ $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - "Could not restore Webhook Alerts $ErrorMessage" + $RestoreData.Add("Could not restore Webhook Alerts $ErrorMessage") } } 'CippScriptedAlerts' { Write-Host "Restore Scripted Alerts for $TenantFilter" $ScheduledTasks = Get-CIPPTable -TableName 'ScheduledTasks' - $Backup = $BackupData.CippScriptedAlerts | ConvertFrom-Json + $Backup = if ($BackupData.CippScriptedAlerts -is [string]) { $BackupData.CippScriptedAlerts | ConvertFrom-Json } else { $BackupData.CippScriptedAlerts } try { Add-CIPPAzDataTableEntity @ScheduledTasks -Entity $Backup -Force + $restorationStats['ScriptedAlerts'].success++ + $RestoreData.Add('Restored Scripted Alerts from backup') } catch { + $restorationStats['ScriptedAlerts'].failed++ $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - "Could not restore Scripted Alerts $ErrorMessage " + $RestoreData.Add("Could not restore Scripted Alerts $ErrorMessage ") } } } + + # Build summary message + $summaryParts = @() + $successCount = 0 + $failureCount = 0 + + foreach ($type in $restorationStats.Keys) { + $successCount += $restorationStats[$type].success + $failureCount += $restorationStats[$type].failed + + if ($restorationStats[$type].success -gt 0) { + $pluralForm = if ($restorationStats[$type].success -eq 1) { $type.TrimEnd('s') } else { $type } + $summaryParts += "$($restorationStats[$type].success) $pluralForm" + } + } + + if ($summaryParts.Count -gt 0) { + $summary = 'Restored: ' + ($summaryParts -join ', ') + ' from backup' + if ($failureCount -gt 0) { + $summary += " ($failureCount items failed)" + } + $RestoreData.Add($summary) + } elseif ($failureCount -eq 0 -and $successCount -eq 0) { + $RestoreData.Add('No items were restored from backup.') + } + return $RestoreData } - diff --git a/Modules/CIPPCore/Public/New-CIPPSharepointSite.ps1 b/Modules/CIPPCore/Public/New-CIPPSharepointSite.ps1 index cc5f7a3a1203..09ac3a485e20 100644 --- a/Modules/CIPPCore/Public/New-CIPPSharepointSite.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPSharepointSite.ps1 @@ -32,7 +32,7 @@ function New-CIPPSharepointSite { #> [CmdletBinding(SupportsShouldProcess = $true)] - Param( + param( [Parameter(Mandatory = $true)] [string]$SiteName, @@ -139,7 +139,14 @@ function New-CIPPSharepointSite { 'accept' = 'application/json;odata.metadata=none' 'odata-version' = '4.0' } - $Results = New-GraphPostRequest -scope "$($SharePointInfo.AdminUrl)/.default" -uri "$($SharePointInfo.AdminUrl)/_api/SPSiteManager/create" -Body ($body | ConvertTo-Json -Compress -Depth 10) -tenantid $TenantFilter -ContentType 'application/json' -AddedHeaders $AddedHeaders + try { + $Results = New-GraphPOSTRequest -scope "$($SharePointInfo.AdminUrl)/.default" -uri "$($SharePointInfo.AdminUrl)/_api/SPSiteManager/create" -body (ConvertTo-Json -Depth 10 -InputObject $body) -tenantid $TenantFilter -AddedHeaders $AddedHeaders + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to create new SharePoint site $SiteName with URL $SiteUrl. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Error -LogData $ErrorMessage + throw $Result + } } # Check the results. This response is weird. https://learn.microsoft.com/en-us/sharepoint/dev/apis/site-creation-rest @@ -147,29 +154,29 @@ function New-CIPPSharepointSite { '0' { $Result = "Failed to create new SharePoint site $SiteName with URL $SiteUrl. The site doesn't exist." Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Error - throw $Results + throw $Result } '1' { $Result = "Successfully created new SharePoint site $SiteName with URL $SiteUrl. The site is however currently being provisioned. Please wait for it to finish." Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Info - return $Results + return $Result } '2' { $Result = "Successfully created new SharePoint site $SiteName with URL $SiteUrl" Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Info - return $Results + return $Result } '3' { $Result = "Failed to create new SharePoint site $SiteName with URL $SiteUrl. An error occurred while provisioning the site." Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Error - throw $Results + throw $Result } '4' { Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Error $Result = "Failed to create new SharePoint site $SiteName with URL $SiteUrl. The site already exists." throw $Result } - Default {} + default {} } diff --git a/Modules/CIPPCore/Public/New-CIPPTemplateRun.ps1 b/Modules/CIPPCore/Public/New-CIPPTemplateRun.ps1 index da61eb588ca9..76ff020eb9ef 100644 --- a/Modules/CIPPCore/Public/New-CIPPTemplateRun.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPTemplateRun.ps1 @@ -6,11 +6,17 @@ function New-CIPPTemplateRun { ) $Table = Get-CippTable -tablename 'templates' $ExistingTemplates = (Get-CIPPAzDataTableEntity @Table) | ForEach-Object { - $data = $_.JSON | ConvertFrom-Json -ErrorAction SilentlyContinue -Depth 100 - $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $_.RowKey -Force - $data | Add-Member -NotePropertyName 'PartitionKey' -NotePropertyValue $_.PartitionKey -Force - $data | Add-Member -NotePropertyName 'SHA' -NotePropertyValue $_.SHA -Force - $data + try { + $data = $_.JSON | ConvertFrom-Json -ErrorAction SilentlyContinue -Depth 100 + $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $_.RowKey -Force -ErrorAction Stop + $data | Add-Member -NotePropertyName 'PartitionKey' -NotePropertyValue $_.PartitionKey -Force -ErrorAction Stop + $data | Add-Member -NotePropertyName 'SHA' -NotePropertyValue $_.SHA -Force -ErrorAction SilentlyContinue + $data | Add-Member -NotePropertyName 'Package' -NotePropertyValue $_.Package -Force -ErrorAction SilentlyContinue + $data | Add-Member -NotePropertyName 'Source' -NotePropertyValue $_.Source -Force -ErrorAction SilentlyContinue + $data + } catch { + return + } } | Sort-Object -Property displayName function Get-SanitizedFilename { @@ -35,24 +41,30 @@ function New-CIPPTemplateRun { if ($MigrationTable) { $MigrationTable = (Get-GitHubFileContents -FullName $TemplateSettings.templateRepo.value -Branch $TemplateSettings.templateRepoBranch.value -Path $MigrationTable.path).content | ConvertFrom-Json } + $NamedLocations = $Files | Where-Object { $_.name -match 'ALLOWED COUNTRIES' } + $LocationData = foreach ($Location in $NamedLocations) { + (Get-GitHubFileContents -FullName $TemplateSettings.templateRepo.value -Branch $TemplateSettings.templateRepoBranch.value -Path $Location.path).content | ConvertFrom-Json + } + foreach ($File in $Files) { - if ($File.name -eq 'MigrationTable' -or $file.name -eq 'ALLOWED COUNTRIES') { continue } - $ExistingTemplate = $ExistingTemplates | Where-Object { (![string]::IsNullOrEmpty($_.displayName) -and (Get-SanitizedFilename -filename $_.displayName) -eq $File.name) -or (![string]::IsNullOrEmpty($_.templateName) -and (Get-SanitizedFilename -filename $_.templateName) -eq $File.name ) } | Select-Object -First 1 + if ($File.name -eq 'MigrationTable' -or $file.name -match 'ALLOWED COUNTRIES') { continue } + Write-Information "Processing template file $($File.name) - Sanitized as $(Get-SanitizedFilename -filename $File.name)" + $ExistingTemplate = $ExistingTemplates | Where-Object { (![string]::IsNullOrEmpty($_.displayName) -and (Get-SanitizedFilename -filename $_.displayName) -eq (Get-SanitizedFilename -filename $File.name)) -or (![string]::IsNullOrEmpty($_.templateName) -and (Get-SanitizedFilename -filename $_.templateName) -eq (Get-SanitizedFilename -filename $File.name) ) -and ![string]::IsNullOrEmpty($_.SHA) } | Select-Object -First 1 $UpdateNeeded = $false - if ($ExistingTemplate -and $ExistingTemplate.SHA -ne $File.sha) { + if ($ExistingTemplate -and $ExistingTemplate.SHA -ne $File.sha -and $ExistingTemplate.Source -eq $TemplateSettings.templateRepo.value) { $Name = $ExistingTemplate.displayName ?? $ExistingTemplate.templateName Write-Information "Existing template $($Name) found, but SHA is different. Updating template." $UpdateNeeded = $true "Template $($Name) needs to be updated as the SHA is different" - } else { + } elseif ($ExistingTemplate -and $ExistingTemplate.SHA -eq $File.sha -and $ExistingTemplate.Source -eq $TemplateSettings.templateRepo.value) { Write-Information "Existing template $($File.name) found, but SHA is the same. No update needed." "Template $($File.name) found, but SHA is the same. No update needed." } if (!$ExistingTemplate -or $UpdateNeeded) { $Template = (Get-GitHubFileContents -FullName $TemplateSettings.templateRepo.value -Branch $TemplateSettings.templateRepoBranch.value -Path $File.path).content | ConvertFrom-Json - Import-CommunityTemplate -Template $Template -SHA $File.sha -MigrationTable $MigrationTable + Import-CommunityTemplate -Template $Template -SHA $File.sha -MigrationTable $MigrationTable -LocationData $LocationData -Source $TemplateSettings.templateRepo.value if ($UpdateNeeded) { Write-Information "Template $($File.name) needs to be updated as the SHA is different" "Template $($File.name) updated" @@ -65,37 +77,71 @@ function New-CIPPTemplateRun { } catch { $Message = "Failed to get data from community repo $($TemplateSettings.templateRepo.value). Error: $($_.Exception.Message)" Write-LogMessage -API 'Community Repo' -tenant $TenantFilter -message $Message -sev Error + Write-Information $_.InvocationInfo.PositionMessage return "Failed to get data from community repo $($TemplateSettings.templateRepo.value). Error: $($_.Exception.Message)" } } else { - foreach ($Task in $Tasks) { - Write-Information "Working on task $Task" + # Tenant template library + $Results = foreach ($Task in $Tasks) { switch ($Task) { 'ca' { Write-Information "Template Conditional Access Policies for $TenantFilter" - $Policies = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/conditionalAccess/policies?$top=999' -tenantid $TenantFilter + # Preload users/groups for CA templates + Write-Information "Preloading information for Conditional Access templates for $TenantFilter" + $Requests = @( + @{ + id = 'preloadedUsers' + url = 'users?$top=999&$select=displayName,id' + method = 'GET' + } + @{ + id = 'preloadedGroups' + url = 'groups?$top=999&$select=displayName,id' + method = 'GET' + } + @{ + id = 'conditionalAccessPolicies' + url = 'conditionalAccess/policies?$top=999' + method = 'GET' + } + ) + $BulkResults = New-GraphBulkRequest -Requests @($Requests) -tenantid $TenantFilter -asapp $true + $preloadedUsers = ($BulkResults | Where-Object { $_.id -eq 'preloadedUsers' }).body.value + $preloadedGroups = ($BulkResults | Where-Object { $_.id -eq 'preloadedGroups' }).body.value + $policies = ($BulkResults | Where-Object { $_.id -eq 'conditionalAccessPolicies' }).body.value + Write-Information 'Creating templates for found Conditional Access Policies' foreach ($policy in $policies) { try { - $Template = New-CIPPCATemplate -TenantFilter $TenantFilter -JSON $policy + $Hash = Get-StringHash -String ($policy | ConvertTo-Json -Depth 100 -Compress) + $ExistingPolicy = $ExistingTemplates | Where-Object { $_.PartitionKey -eq 'CATemplate' -and $_.displayName -eq $policy.displayName -and $_.Source -eq $TenantFilter } | Select-Object -First 1 + if ($ExistingPolicy -and $ExistingPolicy.SHA -eq $Hash) { + "CA Policy $($policy.displayName) found, SHA matches, skipping template creation" + continue + } + $Template = New-CIPPCATemplate -TenantFilter $TenantFilter -JSON $policy -preloadedUsers $preloadedUsers -preloadedGroups $preloadedGroups #check existing templates, if the displayName is the same, overwrite it. - $ExistingPolicy = $ExistingTemplates | Where-Object { $_.displayName -eq $policy.displayName } | Select-Object -First 1 + if ($ExistingPolicy -and $ExistingPolicy.PartitionKey -eq 'CATemplate') { - "Policy $($policy.displayName) found, updating template" + "CA Policy $($policy.displayName) found, updating template" Add-CIPPAzDataTableEntity @Table -Entity @{ JSON = "$Template" RowKey = $ExistingPolicy.GUID PartitionKey = 'CATemplate' GUID = $ExistingPolicy.GUID + SHA = $Hash + Source = $ExistingPolicy.Source } -Force } else { - "Policy $($policy.displayName) not found in existing templates, creating new template" + "CA Policy $($policy.displayName) not found in existing templates, creating new template" $GUID = (New-Guid).GUID Add-CIPPAzDataTableEntity @Table -Entity @{ JSON = "$Template" RowKey = "$GUID" PartitionKey = 'CATemplate' GUID = "$GUID" + SHA = $Hash + Source = $TenantFilter } } @@ -106,24 +152,48 @@ function New-CIPPTemplateRun { } 'intuneconfig' { Write-Information "Backup Intune Configuration Policies for $TenantFilter" - $GraphURLS = @("https://graph.microsoft.com/beta/deviceManagement/deviceConfigurations?`$select=id,displayName,lastModifiedDateTime,roleScopeTagIds,microsoft.graph.unsupportedDeviceConfiguration/originalEntityTypeName&`$expand=assignments&top=1000" - 'https://graph.microsoft.com/beta/deviceManagement/windowsDriverUpdateProfiles' - "https://graph.microsoft.com/beta/deviceManagement/groupPolicyConfigurations?`$expand=assignments&top=999" - "https://graph.microsoft.com/beta/deviceAppManagement/mobileAppConfigurations?`$expand=assignments&`$filter=microsoft.graph.androidManagedStoreAppConfiguration/appSupportsOemConfig%20eq%20true" - 'https://graph.microsoft.com/beta/deviceManagement/configurationPolicies' - 'https://graph.microsoft.com/beta/deviceManagement/windowsFeatureUpdateProfiles' - 'https://graph.microsoft.com/beta/deviceManagement/windowsQualityUpdatePolicies' - 'https://graph.microsoft.com/beta/deviceManagement/windowsQualityUpdateProfiles' + $GraphURLS = @( + "deviceManagement/deviceConfigurations?`$select=id,displayName,lastModifiedDateTime,roleScopeTagIds,microsoft.graph.unsupportedDeviceConfiguration/originalEntityTypeName&`$expand=assignments&top=1000" + 'deviceManagement/windowsDriverUpdateProfiles' + "deviceManagement/groupPolicyConfigurations?`$expand=assignments&top=999" + "deviceAppManagement/mobileAppConfigurations?`$expand=assignments&`$filter=microsoft.graph.androidManagedStoreAppConfiguration/appSupportsOemConfig%20eq%20true" + 'deviceManagement/configurationPolicies' + 'deviceManagement/windowsFeatureUpdateProfiles' + 'deviceManagement/windowsQualityUpdatePolicies' + 'deviceManagement/windowsQualityUpdateProfiles' ) - $Policies = foreach ($url in $GraphURLS) { - try { - $Policies = New-GraphGetRequest -uri "$($url)" -tenantid $TenantFilter - $URLName = (($url).split('?') | Select-Object -First 1) -replace 'https://graph.microsoft.com/beta/deviceManagement/', '' + $Requests = [System.Collections.Generic.List[PSCustomObject]]::new() + foreach ($url in $GraphURLS) { + $URLName = (($url).split('?') | Select-Object -First 1) -replace 'deviceManagement/', '' -replace 'deviceAppManagement/', '' + $Requests.Add([PSCustomObject]@{ + id = $URLName + url = $url + method = 'GET' + }) + } + $BulkResults = New-GraphBulkRequest -Requests @($Requests) -tenantid $TenantFilter + foreach ($Result in $BulkResults) { + Write-Information "Processing Intune Configuration Policies for $($Result.id) - Status Code: $($Result.status)" + if ($Result.status -eq 200) { + $URLName = $Result.id + $Policies = $Result.body.value + Write-Information "Found $($Policies.Count) policies for $($Result.id)" foreach ($Policy in $Policies) { try { - $Template = New-CIPPIntuneTemplate -TenantFilter $TenantFilter -URLName $URLName -ID $Policy.ID - $ExistingPolicy = $ExistingTemplates | Where-Object { $_.displayName -eq $Template.DisplayName } | Select-Object -First 1 + $Hash = Get-StringHash -String ($Policy | ConvertTo-Json -Depth 100 -Compress) + $DisplayName = $Policy.displayName ?? $Policy.name + + $ExistingPolicy = $ExistingTemplates | Where-Object { $_.PartitionKey -eq 'IntuneTemplate' -and $_.displayName -eq $DisplayName -and $_.Source -eq $TenantFilter } | Select-Object -First 1 + + Write-Information "Processing Intune Configuration Policy $($DisplayName) - $($ExistingPolicy ? 'Existing template found' : 'No existing template found')" + + if ($ExistingPolicy -and $ExistingPolicy.SHA -eq $Hash) { + "Intune Configuration Policy $($DisplayName) found, SHA matches, skipping template creation" + continue + } + + $Template = New-CIPPIntuneTemplate -TenantFilter $TenantFilter -URLName $URLName -ID $Policy.id if ($ExistingPolicy -and $ExistingPolicy.PartitionKey -eq 'IntuneTemplate') { "Policy $($Template.DisplayName) found, updating template" $object = [PSCustomObject]@{ @@ -138,9 +208,13 @@ function New-CIPPTemplateRun { JSON = "$object" RowKey = $ExistingPolicy.GUID PartitionKey = 'IntuneTemplate' + Package = $ExistingPolicy.Package + GUID = $ExistingPolicy.GUID + SHA = $Hash + Source = $ExistingPolicy.Source } -Force } else { - "Policy $($Template.DisplayName) not found in existing templates, creating new template" + "Intune Configuration Policy $($Template.DisplayName) not found in existing templates, creating new template" $GUID = (New-Guid).GUID $object = [PSCustomObject]@{ Displayname = $Template.DisplayName @@ -154,6 +228,9 @@ function New-CIPPTemplateRun { JSON = "$object" RowKey = "$GUID" PartitionKey = 'IntuneTemplate' + GUID = "$GUID" + SHA = $Hash + Source = $TenantFilter } -Force } } catch { @@ -161,33 +238,44 @@ function New-CIPPTemplateRun { "Failed to create a template of the Intune Configuration Policy with ID: $($Policy.id). Error: $ErrorMessage" } } - } catch { - Write-Information "Failed to backup $url" + } else { + Write-Information "Failed to get $($Result.id) policies - Status Code: $($Result.status) - Message: $($Result.body.error.message)" } } } 'intunecompliance' { - Write-Information "Backup Intune Compliance Policies for $TenantFilter" + Write-Information "Create Intune Compliance Policy Templates for $TenantFilter" New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/deviceCompliancePolicies?$top=999' -tenantid $TenantFilter | ForEach-Object { - $Template = New-CIPPIntuneTemplate -TenantFilter $TenantFilter -URLName 'deviceCompliancePolicies' -ID $_.ID - $ExistingPolicy = $ExistingTemplates | Where-Object { $_.displayName -eq $Template.DisplayName } | Select-Object -First 1 + $Policy = $_ + $Hash = Get-StringHash -String (ConvertTo-Json -Depth 100 -Compress -InputObject $_) + $ExistingPolicy = $ExistingTemplates | Where-Object { $Policy.displayName -eq $_.DisplayName -and $_.Source -eq $TenantFilter } | Select-Object -First 1 + if ($ExistingPolicy -and $ExistingPolicy.SHA -eq $Hash) { + "Intune Compliance Policy $($_.DisplayName) found, SHA matches, skipping template creation" + continue + } + + $Template = New-CIPPIntuneTemplate -TenantFilter $TenantFilter -URLName 'deviceCompliancePolicies' -ID $Policy.id if ($ExistingPolicy -and $ExistingPolicy.PartitionKey -eq 'IntuneTemplate') { - "Policy $($Template.DisplayName) found, updating template" + "Intune Compliance Policy $($Template.DisplayName) found, updating template" $object = [PSCustomObject]@{ Displayname = $Template.DisplayName Description = $Template.Description RAWJson = $Template.TemplateJson Type = $Template.Type GUID = $ExistingPolicy.GUID - } | ConvertTo-Json + } | ConvertTo-Json -Compress Add-CIPPAzDataTableEntity @Table -Entity @{ JSON = "$object" RowKey = $ExistingPolicy.GUID PartitionKey = 'IntuneTemplate' + Package = $ExistingPolicy.Package + GUID = $ExistingPolicy.GUID + SHA = $Hash + Source = $ExistingPolicy.Source } -Force } else { - "Policy $($Template.DisplayName) not found in existing templates, creating new template" + "Intune Compliance Policy $($Template.DisplayName) not found in existing templates, creating new template" $GUID = (New-Guid).GUID $object = [PSCustomObject]@{ Displayname = $Template.DisplayName @@ -195,40 +283,53 @@ function New-CIPPTemplateRun { RAWJson = $Template.TemplateJson Type = $Template.Type GUID = $GUID - } | ConvertTo-Json + } | ConvertTo-Json -Compress Add-CIPPAzDataTableEntity @Table -Entity @{ JSON = "$object" RowKey = "$GUID" PartitionKey = 'IntuneTemplate' + SHA = $Hash + GUID = "$GUID" + Source = $TenantFilter } -Force } - } } 'intuneprotection' { - Write-Information "Backup Intune Protection Policies for $TenantFilter" + Write-Information "Create Intune Protection Policy Templates for $TenantFilter" New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceAppManagement/managedAppPolicies?$top=999' -tenantid $TenantFilter | ForEach-Object { - $Template = New-CIPPIntuneTemplate -TenantFilter $TenantFilter -URLName 'managedAppPolicies' -ID $_.ID - $ExistingPolicy = $ExistingTemplates | Where-Object { $_.displayName -eq $Template.DisplayName } | Select-Object -First 1 + $Policy = $_ + $Hash = Get-StringHash -String (ConvertTo-Json -Depth 100 -Compress -InputObject $_) + $ExistingPolicy = $ExistingTemplates | Where-Object { $Policy.displayName -eq $_.DisplayName -and $_.Source -eq $TenantFilter } | Select-Object -First 1 + if ($ExistingPolicy -and $ExistingPolicy.SHA -eq $Hash) { + "Intune Protection Policy $($_.DisplayName) found, SHA matches, skipping template creation" + continue + } + + $Template = New-CIPPIntuneTemplate -TenantFilter $TenantFilter -URLName 'managedAppPolicies' -ID $Policy.id if ($ExistingPolicy -and $ExistingPolicy.PartitionKey -eq 'IntuneTemplate') { - "Policy $($Template.DisplayName) found, updating template" + "Intune Protection Policy $($Template.DisplayName) found, updating template" $object = [PSCustomObject]@{ Displayname = $Template.DisplayName Description = $Template.Description RAWJson = $Template.TemplateJson Type = $Template.Type GUID = $ExistingPolicy.GUID - } | ConvertTo-Json + } | ConvertTo-Json -Compress Add-CIPPAzDataTableEntity @Table -Entity @{ JSON = "$object" RowKey = $ExistingPolicy.GUID PartitionKey = 'IntuneTemplate' + Package = $ExistingPolicy.Package + SHA = $Hash + GUID = $ExistingPolicy.GUID + Source = $ExistingPolicy.Source } -Force } else { - "Policy $($Template.DisplayName) not found in existing templates, creating new template" + "Intune Protection Policy $($Template.DisplayName) not found in existing templates, creating new template" $GUID = (New-Guid).GUID $object = [PSCustomObject]@{ Displayname = $Template.DisplayName @@ -236,20 +337,21 @@ function New-CIPPTemplateRun { RAWJson = $Template.TemplateJson Type = $Template.Type GUID = $GUID - } | ConvertTo-Json + } | ConvertTo-Json -Compress Add-CIPPAzDataTableEntity @Table -Entity @{ JSON = "$object" RowKey = "$GUID" PartitionKey = 'IntuneTemplate' + SHA = $Hash + GUID = "$GUID" + Source = $TenantFilter } -Force } } } - } } } - return $BackupData + return $Results } - diff --git a/Modules/CIPPCore/Public/New-CIPPUserTask.ps1 b/Modules/CIPPCore/Public/New-CIPPUserTask.ps1 index 3c228ef1006b..fb831949ccaa 100644 --- a/Modules/CIPPCore/Public/New-CIPPUserTask.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPUserTask.ps1 @@ -14,15 +14,15 @@ function New-CIPPUserTask { $Results.Add("Username: $($CreationResults.Username)") $Results.Add("Password: $($CreationResults.Password)") } catch { - $Results.Add("Failed to create user. $($_.Exception.Message)" ) - return @{'Results' = $Results } + $Results.Add("$($_.Exception.Message)" ) + throw @{'Results' = $Results } } try { if ($UserObj.licenses.value) { if ($UserObj.sherwebLicense.value) { - $License = Set-SherwebSubscription -Headers $Headers -TenantFilter $UserObj.tenantFilter -SKU $UserObj.sherwebLicense.value -Add 1 - $null = $results.Add('Added Sherweb License, scheduling assignment') + $null = Set-SherwebSubscription -Headers $Headers -TenantFilter $UserObj.tenantFilter -SKU $UserObj.sherwebLicense.value -Add 1 + $null = $Results.Add('Added Sherweb License, scheduling assignment') $taskObject = [PSCustomObject]@{ TenantFilter = $UserObj.tenantFilter Name = "Assign License: $UserPrincipalName" @@ -30,9 +30,9 @@ function New-CIPPUserTask { value = 'Set-CIPPUserLicense' } Parameters = [pscustomobject]@{ - userId = $UserObj.id + UserId = $CreationResults.Username APIName = 'Sherweb License Assignment' - AddLicenses = $licenses + AddLicenses = $UserObj.licenses.value } ScheduledTime = 0 #right now, which is in the next 15 minutes and should cover most cases. PostExecution = @{ @@ -54,7 +54,7 @@ function New-CIPPUserTask { try { if ($UserObj.AddedAliases) { - $AliasResults = Add-CIPPAlias -user $CreationResults.Username -Aliases ($UserObj.AddedAliases -split '\s') -UserprincipalName $CreationResults.Username -TenantFilter $UserObj.tenantFilter -APIName $APIName -Headers $Headers + $AliasResults = Add-CIPPAlias -User $CreationResults.Username -Aliases ($UserObj.AddedAliases -split '\s') -UserPrincipalName $CreationResults.Username -TenantFilter $UserObj.tenantFilter -APIName $APIName -Headers $Headers $Results.Add($AliasResults) } } catch { @@ -69,12 +69,12 @@ function New-CIPPUserTask { } if ($UserObj.setManager) { - $ManagerResult = Set-CIPPManager -user $CreationResults.Username -Manager $UserObj.setManager.value -TenantFilter $UserObj.tenantFilter -APIName 'Set Manager' -Headers $Headers + $ManagerResult = Set-CIPPManager -User $CreationResults.Username -Manager $UserObj.setManager.value -TenantFilter $UserObj.tenantFilter -Headers $Headers $Results.Add($ManagerResult) } if ($UserObj.setSponsor) { - $SponsorResult = Set-CIPPManager -user $CreationResults.Username -Manager $UserObj.setSponsor.value -TenantFilter $UserObj.tenantFilter -APIName 'Set Sponsor' -Headers $Headers + $SponsorResult = Set-CIPPSponsor -User $CreationResults.Username -Sponsor $UserObj.setSponsor.value -TenantFilter $UserObj.tenantFilter -Headers $Headers $Results.Add($SponsorResult) } @@ -83,5 +83,6 @@ function New-CIPPUserTask { Username = $CreationResults.Username Password = $CreationResults.Password CopyFrom = $CopyFrom + User = $CreationResults.User } } diff --git a/Modules/CIPPCore/Public/New-CippStandardsDriftClone.ps1 b/Modules/CIPPCore/Public/New-CippStandardsDriftClone.ps1 new file mode 100644 index 000000000000..f66d3af836e4 --- /dev/null +++ b/Modules/CIPPCore/Public/New-CippStandardsDriftClone.ps1 @@ -0,0 +1,41 @@ +function New-CippStandardsDriftClone { + [CmdletBinding()] + param ( + [Parameter(Mandatory)][string]$TemplateId, + [Parameter(Mandatory)][switch]$UpgradeToDrift, + $Headers + ) + + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'StandardsTemplateV2' and RowKey eq '$TemplateId'" + $Entity = Get-CIPPAzDataTableEntity @Table -Filter $Filter + $data = $Entity.JSON | ConvertFrom-Json + $data.excludedTenants = @() #blank excluded Tenants + $data.tenantFilter = @(@{ value = 'Copied Standard'; label = 'Copied Standard' }) + $data.GUID = [guid]::NewGuid().ToString() + $data.templateName = "$($data.templateName) (Drift Clone)" + if ($UpgradeToDrift) { + try { + $data | Add-Member -MemberType NoteProperty -Name 'type' -Value 'drift' -Force + if ($null -ne $data.standards) { + foreach ($prop in $data.standards.PSObject.Properties) { + $actions = $prop.Value.action + if ($actions -and $actions.Count -gt 0) { + if ($actions | Where-Object { $_.value -eq 'remediate' }) { + $prop.Value | Add-Member -MemberType NoteProperty -Name 'autoRemediate' -Value $true -Force + } + # Set action to Report using add-member to avoid issues with readonly arrays + $prop.Value | Add-Member -MemberType NoteProperty -Name 'action' -Value @(@{ 'label' = 'Report'; 'value' = 'Report' }) -Force + } + } + } + $Entity.JSON = "$(ConvertTo-Json -InputObject $data -Compress -Depth 100)" + $Entity.RowKey = "$($data.GUID)" + $Entity.GUID = $data.GUID + $update = Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force + return 'Clone Completed successfully' + } catch { + return "Failed to Clone template to Drift Template: $_" + } + } +} diff --git a/Modules/CIPPCore/Public/New-CippUser.ps1 b/Modules/CIPPCore/Public/New-CippUser.ps1 index e5dde2e8bc73..7381e1426548 100644 --- a/Modules/CIPPCore/Public/New-CippUser.ps1 +++ b/Modules/CIPPCore/Public/New-CippUser.ps1 @@ -21,17 +21,19 @@ function New-CIPPUser { 'surname' = $UserObj.surname 'accountEnabled' = $true 'displayName' = $UserObj.displayName - 'department' = $UserObj.Department - 'mailNickname' = $UserObj.Username ? $UserObj.username : $UserObj.mailNickname + 'department' = $UserObj.department + 'mailNickname' = $UserObj.username ? $UserObj.username : $UserObj.mailNickname 'userPrincipalName' = $UserPrincipalName 'usageLocation' = $UserObj.usageLocation.value ? $UserObj.usageLocation.value : $UserObj.usageLocation - 'city' = $UserObj.City - 'country' = $UserObj.Country - 'jobtitle' = $UserObj.Jobtitle - 'mobilePhone' = $UserObj.MobilePhone + 'otherMails' = $UserObj.otherMails ? @($UserObj.otherMails) : @() + 'jobTitle' = $UserObj.jobTitle + 'mobilePhone' = $UserObj.mobilePhone 'streetAddress' = $UserObj.streetAddress - 'postalCode' = $UserObj.PostalCode - 'companyName' = $UserObj.CompanyName + 'city' = $UserObj.city + 'state' = $UserObj.state + 'country' = $UserObj.country + 'postalCode' = $UserObj.postalCode + 'companyName' = $UserObj.companyName 'passwordProfile' = @{ 'forceChangePasswordNextSignIn' = [bool]$UserObj.MustChangePass 'password' = $password @@ -47,6 +49,15 @@ function New-CIPPUser { } } } + if ($UserObj.customData) { + $UserObj.customData | Get-Member -MemberType NoteProperty | ForEach-Object { + Write-Host "Editing user and adding custom data $($_.Name) with value $($UserObj.customData.$($_.Name))" + if (-not [string]::IsNullOrWhiteSpace($UserObj.customData.$($_.Name))) { + Write-Host 'adding custom data to body' + $BodyToShip | Add-Member -NotePropertyName $_.Name -NotePropertyValue $UserObj.customData.$($_.Name) -Force + } + } + } $bodyToShip = ConvertTo-Json -Depth 10 -InputObject $BodyToship -Compress Write-Host "Shipping: $bodyToShip" $GraphRequest = New-GraphPostRequest -uri 'https://graph.microsoft.com/beta/users' -tenantId $UserObj.tenantFilter -type POST -body $BodyToship -verbose @@ -64,6 +75,7 @@ function New-CIPPUser { Results = ('Created New User.') Username = $UserPrincipalName Password = $password + User = $GraphRequest } } catch { $ErrorMessage = Get-CippException -Exception $_ diff --git a/Modules/CIPPCore/Public/Remove-CIPPAutopilotProfile.ps1 b/Modules/CIPPCore/Public/Remove-CIPPAutopilotProfile.ps1 new file mode 100644 index 000000000000..f1a06bbf1e46 --- /dev/null +++ b/Modules/CIPPCore/Public/Remove-CIPPAutopilotProfile.ps1 @@ -0,0 +1,67 @@ +function Remove-CIPPAutopilotProfile { + param( + $ProfileId, + $DisplayName, + $TenantFilter, + $Assignments, + $Headers, + $APIName = 'Remove Autopilot Profile' + ) + + + try { + + try { + $DisplayName = $null -eq $DisplayName ? $ProfileId : $DisplayName + if ($Assignments.Count -gt 0) { + Write-Host "Profile $ProfileId has $($Assignments.Count) assignments, removing them first" + throw + } + + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles/$ProfileId" -tenantid $TenantFilter -type DELETE + $Result = "Successfully deleted Autopilot profile '$($DisplayName)'" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev 'Info' + return $Result + } catch { + + # Profile could not be deleted, there is probably an assignment still referencing it. The error is bloody useless here, and we just need to try some stuff + if ($null -eq $Assignments) { + $Assignments = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles/$ProfileId/assignments" -tenantid $TenantFilter + } + + # Remove all assignments + if ($Assignments -and $Assignments.Count -gt 0) { + foreach ($Assignment in $Assignments) { + try { + # Use the assignment ID directly as provided by the API + $AssignmentId = $Assignment.id + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles/$ProfileId/assignments/$AssignmentId" -tenantid $TenantFilter -type DELETE + + } catch { + # Handle the case where the assignment might reference a deleted group + try { + if ($Assignment.target -and $Assignment.target.'@odata.type' -eq '#microsoft.graph.groupAssignmentTarget') { + $GroupId = $Assignment.target.groupId + $AlternativeAssignmentId = "${ProfileId}_${GroupId}" + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles/$ProfileId/assignments/$AlternativeAssignmentId" -tenantid $TenantFilter -type DELETE + } + } catch { + throw "Could not remove assignment $AssignmentId" + } + } + } + } + # Retry deleting the profile after removing assignments + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles/$ProfileId" -tenantid $TenantFilter -type DELETE + $Result = "Successfully deleted Autopilot profile '$($DisplayName)' " + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev 'Info' + return $Result + } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $ErrorText = "Failed to delete Autopilot profile $ProfileId. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $ErrorText -Sev 'Error' -LogData $ErrorMessage + throw $ErrorText + } +} diff --git a/Modules/CIPPCore/Public/Remove-CIPPCalendarInvites.ps1 b/Modules/CIPPCore/Public/Remove-CIPPCalendarInvites.ps1 index 0fa8eab58997..4c2919398974 100644 --- a/Modules/CIPPCore/Public/Remove-CIPPCalendarInvites.ps1 +++ b/Modules/CIPPCore/Public/Remove-CIPPCalendarInvites.ps1 @@ -1,22 +1,23 @@ function Remove-CIPPCalendarInvites { [CmdletBinding()] param( - $userid, - $tenantFilter, - $username, + $UserID, + $TenantFilter, + $Username, $APIName = 'Remove Calendar Invites', $Headers ) try { - - New-ExoRequest -tenantid $tenantFilter -cmdlet 'Remove-CalendarEvents' -Anchor $username -cmdParams @{Identity = $username; QueryWindowInDays = 730 ; CancelOrganizedMeetings = $true ; Confirm = $false } - Write-LogMessage -headers $Headers -API $APIName -message "Cancelled all calendar invites for $($username)" -Sev 'Info' -tenant $tenantFilter - "Cancelled all calendar invites for $($username)" + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Remove-CalendarEvents' -Anchor $Username -cmdParams @{Identity = $Username; QueryWindowInDays = 730 ; CancelOrganizedMeetings = $true ; Confirm = $false } + $Result = "Successfully cancelled all calendar invites for $($Username)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Info' -tenant $TenantFilter + return $Result } catch { $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -headers $Headers -API $APIName -message "Could not cancel calendar invites for $($username): $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $tenantFilter -LogData $ErrorMessage - return "Could not cancel calendar invites for $($username). Error: $($ErrorMessage.NormalizedError)" + $Result = "Failed to cancel calendar invites for $($Username). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + throw $Result } } diff --git a/Modules/CIPPCore/Public/Remove-CIPPGroupMember.ps1 b/Modules/CIPPCore/Public/Remove-CIPPGroupMember.ps1 index c723ff2d77e7..1880d4c4960f 100644 --- a/Modules/CIPPCore/Public/Remove-CIPPGroupMember.ps1 +++ b/Modules/CIPPCore/Public/Remove-CIPPGroupMember.ps1 @@ -1,28 +1,125 @@ -function Remove-CIPPGroupMember( - $Headers, - [string]$GroupType, - [string]$GroupId, - [string]$Member, - [string]$TenantFilter, - [string]$APIName = 'Remove Group Member' -) { +function Remove-CIPPGroupMember { + <# + .SYNOPSIS + Removes members from a Microsoft 365 group. + + .DESCRIPTION + Removes one or more members from Security Groups, Distribution Groups, or Mail-Enabled Security Groups. + Uses bulk request operations for Exchange groups to improve performance. + + .PARAMETER Headers + The headers for the API request, typically containing authentication information. + + .PARAMETER TenantFilter + The tenant identifier for the target tenant. + + .PARAMETER GroupType + The type of group. Valid values: 'Distribution list', 'Mail-Enabled Security', or standard security groups. + + .PARAMETER GroupId + The unique identifier (GUID or name) of the group. + + .PARAMETER Member + An array of member identifiers (user GUIDs or UPNs) to remove from the group. + + .PARAMETER APIName + The API operation name for logging purposes. Default: 'Remove Group Member'. + + .EXAMPLE + Remove-CIPPGroupMember -Headers $Headers -TenantFilter 'contoso.onmicrosoft.com' -GroupType 'Distribution list' -GroupId 'Sales-DL' -Member @('user1@contoso.com', 'user2@contoso.com') -APIName 'Remove DL Members' + + .EXAMPLE + Remove-CIPPGroupMember -Headers $Headers -TenantFilter 'contoso.onmicrosoft.com' -GroupType 'Security' -GroupId '12345-guid' -Member @('user1-guid') + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + [Parameter(Mandatory = $true)] + [string]$GroupType, + + [Parameter(Mandatory = $true)] + [string]$GroupId, + + [Parameter(Mandatory = $true)] + [string[]]$Member, + + [Parameter(Mandatory = $false)] + [string]$APIName = 'Remove Group Member', + + $Headers + ) + try { - if ($Member -like '*#EXT#*') { $Member = [System.Web.HttpUtility]::UrlEncode($Member) } - # $MemberIDs = 'https://graph.microsoft.com/v1.0/directoryObjects/' + (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($Member)" -tenantid $TenantFilter).id - # $AddMemberBody = "{ `"members@odata.bind`": $(ConvertTo-Json @($MemberIDs)) }" + $Requests = foreach ($m in $Member) { + if ($m -like '*#EXT#*') { $m = [System.Web.HttpUtility]::UrlEncode($m) } + @{ + id = $m + url = "users/$($m)?`$select=id,userPrincipalName" + method = 'GET' + } + } + $Users = New-GraphBulkRequest -Requests @($Requests) -tenantid $TenantFilter + if ($GroupType -eq 'Distribution list' -or $GroupType -eq 'Mail-Enabled Security') { - $Params = @{ Identity = $GroupId; Member = $Member; BypassSecurityGroupManagerCheck = $true } - $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Remove-DistributionGroupMember' -cmdParams $Params -UseSystemMailbox $true + $ExoBulkRequests = [System.Collections.Generic.List[object]]::new() + $ExoLogs = [System.Collections.Generic.List[object]]::new() + + foreach ($User in $Users) { + $Params = @{ Identity = $GroupId; Member = $User.body.userPrincipalName; BypassSecurityGroupManagerCheck = $true } + $ExoBulkRequests.Add(@{ + CmdletInput = @{ + CmdletName = 'Remove-DistributionGroupMember' + Parameters = $Params + } + }) + $ExoLogs.Add(@{ + message = "Removed member $($User.body.userPrincipalName) from $($GroupId) group" + target = $User.body.userPrincipalName + }) + } + + if ($ExoBulkRequests.Count -gt 0) { + $RawExoRequest = New-ExoBulkRequest -tenantid $TenantFilter -cmdletArray @($ExoBulkRequests) + $LastError = $RawExoRequest | Select-Object -Last 1 + + foreach ($ExoError in $LastError.error) { + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $ExoError -Sev 'Error' + throw $ExoError + } + + foreach ($ExoLog in $ExoLogs) { + $ExoError = $LastError | Where-Object { $ExoLog.target -in $_.target -and $_.error } + if (!$LastError -or ($LastError.error -and $LastError.target -notcontains $ExoLog.target)) { + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $ExoLog.message -Sev 'Info' + } + } + } } else { - $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/groups/$($GroupId)/members/$($Member)/`$ref" -tenantid $TenantFilter -type DELETE -body '{}' -Verbose + $RemovalRequests = foreach ($User in $Users) { + @{ + id = $User.body.id + method = 'DELETE' + url = "/groups/$($GroupId)/members/$($User.body.id)/`$ref" + } + } + $RemovalResults = New-GraphBulkRequest -tenantid $TenantFilter -Requests @($RemovalRequests) + foreach ($Result in $RemovalResults) { + if ($Result.status -ne 204) { + throw "Failed to remove member $($Result.id): $($Result.body.error.message)" + } + } } - $Results = "Successfully removed user $($Member) from $($GroupId)." + $UserList = ($Users.body.userPrincipalName -join ', ') + $Results = "Successfully removed user $UserList from $($GroupId)." Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Results -Sev Info return $Results } catch { $ErrorMessage = Get-CippException -Exception $_ - $Results = "Failed to remove user $($Member) from $($GroupId): $($ErrorMessage.NormalizedError)" + $UserList = if ($Users) { ($Users.body.userPrincipalName -join ', ') } else { ($Member -join ', ') } + $Results = "Failed to remove user $UserList from $($GroupId): $($ErrorMessage.NormalizedError)" Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Results -Sev Error -LogData $ErrorMessage throw $Results } diff --git a/Modules/CIPPCore/Public/Remove-CIPPGroups.ps1 b/Modules/CIPPCore/Public/Remove-CIPPGroups.ps1 index 933f6fbdb99e..527de771990e 100644 --- a/Modules/CIPPCore/Public/Remove-CIPPGroups.ps1 +++ b/Modules/CIPPCore/Public/Remove-CIPPGroups.ps1 @@ -2,52 +2,136 @@ function Remove-CIPPGroups { [CmdletBinding()] param( $Username, - $tenantFilter, + $TenantFilter, $APIName = 'Remove From Groups', $Headers, - $userid + $UserID ) if (-not $userid) { - $userid = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($Username)" -tenantid $Tenantfilter).id + $UserID = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($Username)" -tenantid $TenantFilter).id } - $AllGroups = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/groups/?`$select=displayName,mailEnabled,id,groupTypes,assignedLicenses&`$top=999" -tenantid $tenantFilter) + $AllGroups = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/groups/?`$select=displayName,mailEnabled,id,groupTypes,assignedLicenses,onPremisesSyncEnabled,membershipRule&`$top=999" -tenantid $TenantFilter) - $Returnval = (New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($userid)/GetMemberGroups" -tenantid $tenantFilter -type POST -body '{"securityEnabledOnly": false}').value | ForEach-Object -Parallel { - Import-Module '.\Modules\AzBobbyTables' - Import-Module '.\Modules\CIPPCore' - $group = $_ + # Get user's groups + $UserGroups = (New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($UserID)/GetMemberGroups" -tenantid $TenantFilter -type POST -body '{"securityEnabledOnly": false}').value - try { - $Groupname = ($using:AllGroups | Where-Object -Property id -EQ $group).displayName - $IsMailEnabled = ($using:AllGroups | Where-Object -Property id -EQ $group).mailEnabled - $IsM365Group = $null -ne ($using:AllGroups | Where-Object { $_.id -eq $group -and $_.groupTypes -contains 'Unified' }) - $IsLicensed = ($using:AllGroups | Where-Object -Property id -EQ $group).assignedLicenses.Count -gt 0 - - if ($IsLicensed) { - "Could not remove $($using:Username) from $Groupname. This is because the group has licenses assigned to it." - } else { - if ($IsM365Group) { - $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/groups/$_/members/$($using:userid)/`$ref" -tenantid $using:tenantFilter -type DELETE -body '' -Verbose - } elseif (-not $IsMailEnabled) { - $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/groups/$_/members/$($using:userid)/`$ref" -tenantid $using:tenantFilter -type DELETE -body '' -Verbose - } elseif ($IsMailEnabled) { - $Params = @{ Identity = $Groupname; Member = $using:userid ; BypassSecurityGroupManagerCheck = $true } - New-ExoRequest -tenantid $using:tenantFilter -cmdlet 'Remove-DistributionGroupMember' -cmdParams $params -UseSystemMailbox $true + if (-not $UserGroups) { + $Returnval = "$($Username) is not a member of any groups." + Write-LogMessage -headers $Headers -API $APIName -message "$($Username) is not a member of any groups" -Sev 'Info' -tenant $TenantFilter + return $Returnval + } + + # Initialize bulk request arrays and results + $BulkRequests = [System.Collections.Generic.List[object]]::new() + $ExoBulkRequests = [System.Collections.Generic.List[object]]::new() + $GraphLogs = [System.Collections.Generic.List[object]]::new() + $ExoLogs = [System.Collections.Generic.List[object]]::new() + $Results = [System.Collections.Generic.List[string]]::new() + + # Process each group and prepare bulk requests + foreach ($Group in $UserGroups) { + $GroupInfo = $AllGroups | Where-Object -Property id -EQ $Group + $GroupName = $GroupInfo.displayName + $IsMailEnabled = $GroupInfo.mailEnabled + $IsM365Group = $null -ne ($AllGroups | Where-Object { $_.id -eq $Group -and $_.groupTypes -contains 'Unified' }) + $IsLicensed = $GroupInfo.assignedLicenses.Count -gt 0 + $IsDynamic = -not [string]::IsNullOrWhiteSpace($GroupInfo.membershipRule) + + if ($IsLicensed) { + $Results.Add("Could not remove $Username from group '$GroupName' because it has assigned licenses. These groups are removed during the license removal step.") + Write-LogMessage -headers $Headers -API $APIName -message "Could not remove $Username from group '$GroupName' because it has assigned licenses. These groups are removed during the license removal step." -Sev 'Warning' -tenant $TenantFilter + } elseif ($IsDynamic) { + $Results.Add("Error: Could not remove $Username from group '$GroupName' because it is a Dynamic Group.") + Write-LogMessage -headers $Headers -API $APIName -message "Could not remove $Username from group '$GroupName' because it is a Dynamic Group." -Sev 'Warning' -tenant $TenantFilter + } elseif ($GroupInfo.onPremisesSyncEnabled) { + $Results.Add("Error: Could not remove $Username from group '$GroupName' because it is synced with Active Directory.") + Write-LogMessage -headers $Headers -API $APIName -message "Could not remove $Username from group '$GroupName' because it is synced with Active Directory." -Sev 'Warning' -tenant $TenantFilter + } else { + if ($IsM365Group -or (-not $IsMailEnabled)) { + # Use Graph API for M365 Groups and Security Groups + $BulkRequests.Add(@{ + id = "removeFromGroup-$Group" + method = 'DELETE' + url = "groups/$Group/members/$UserID/`$ref" + }) + $GraphLogs.Add(@{ + message = "Removed $Username from $GroupName" + id = "removeFromGroup-$Group" + groupName = $GroupName + }) + } elseif ($IsMailEnabled) { + # Use Exchange Online for Distribution Lists + $Params = @{ + Identity = $GroupName + Member = $UserID + BypassSecurityGroupManagerCheck = $true } + $ExoBulkRequests.Add(@{ + CmdletInput = @{ + CmdletName = 'Remove-DistributionGroupMember' + Parameters = $Params + } + }) + $ExoLogs.Add(@{ + message = "Removed $Username from $GroupName" + target = $UserID + groupName = $GroupName + }) + } + } + } - Write-LogMessage -headers $using:Headers -API $($using:APIName) -message "Removed $($using:Username) from $groupname" -Sev 'Info' -tenant $using:TenantFilter - "Successfully removed $($using:Username) from group $Groupname" + # Execute Graph bulk requests + if ($BulkRequests.Count -gt 0) { + try { + $RawGraphRequest = New-GraphBulkRequest -tenantid $TenantFilter -scope 'https://graph.microsoft.com/.default' -Requests @($BulkRequests) -asapp $true + + foreach ($GraphLog in $GraphLogs) { + $GraphError = $RawGraphRequest | Where-Object { $_.id -eq $GraphLog.id -and $_.status -notmatch '^2[0-9]+' } + if ($GraphError) { + $Message = Get-NormalizedError -message $GraphError.body.error + $Results.Add("Could not remove $Username from group '$($GraphLog.groupName)': $Message. This is likely because it's a Dynamic Group or synced with Active Directory") + Write-LogMessage -headers $Headers -API $APIName -message "Could not remove $Username from group '$($GraphLog.groupName)': $Message" -Sev 'Error' -tenant $TenantFilter + } else { + $Results.Add("Successfully removed $Username from group '$($GraphLog.groupName)'") + Write-LogMessage -headers $Headers -API $APIName -message $GraphLog.message -Sev 'Info' -tenant $TenantFilter + } } } catch { $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -headers $using:Headers -API $($using:APIName) -message "Could not remove $($using:Username) from group $groupname : $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $using:TenantFilter -LogData $ErrorMessage - "Could not remove $($using:Username) from group $($Groupname): $($ErrorMessage.NormalizedError). This is likely because its a Dynamic Group or synched with active directory" + Write-LogMessage -headers $Headers -API $APIName -message "Error executing Graph bulk requests: $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + $Results.Add("Error executing bulk removal requests: $($ErrorMessage.NormalizedError)") } } - if (!$Returnval) { - $Returnval = "$($Username) is not a member of any groups." - Write-LogMessage -headers $Headers -API $APIName -message "$($Username) is not a member of any groups" -Sev 'Info' -tenant $TenantFilter + + # Execute Exchange Online bulk requests + if ($ExoBulkRequests.Count -gt 0) { + try { + $RawExoRequest = New-ExoBulkRequest -tenantid $TenantFilter -cmdletArray @($ExoBulkRequests) + $LastError = $RawExoRequest | Select-Object -Last 1 + + foreach ($ExoError in $LastError.error) { + $Results.Add("Error - $ExoError") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $ExoError -Sev 'Error' + } + + foreach ($ExoLog in $ExoLogs) { + $ExoError = $LastError | Where-Object { $ExoLog.target -in $_.target -and $_.error } + if (!$LastError -or ($LastError.error -and $LastError.target -notcontains $ExoLog.target)) { + $Results.Add("Successfully removed $Username from group $($ExoLog.groupName)") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $ExoLog.message -Sev 'Info' + } else { + $Results.Add("Could not remove $Username from $($ExoLog.groupName). This is likely because its a Dynamic Group or synched with active directory") + Write-LogMessage -headers $Headers -API $APIName -message "Could not remove $Username from $($ExoLog.groupName)" -Sev 'Error' -tenant $TenantFilter + } + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -message "Error executing Exchange bulk requests: $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + $Results.Add("Error executing bulk Exchange requests: $($ErrorMessage.NormalizedError)") + } } - return $Returnval + + return $Results } diff --git a/Modules/CIPPCore/Public/Remove-CIPPLicense.ps1 b/Modules/CIPPCore/Public/Remove-CIPPLicense.ps1 index b2d8d447e9d1..3b18b54b0678 100644 --- a/Modules/CIPPCore/Public/Remove-CIPPLicense.ps1 +++ b/Modules/CIPPCore/Public/Remove-CIPPLicense.ps1 @@ -33,7 +33,8 @@ function Remove-CIPPLicense { return "Scheduled license removal for $username" } else { try { - $ConvertTable = Import-Csv ConversionTable.csv + $ModuleBase = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase + $ConvertTable = Import-Csv (Join-Path $ModuleBase 'lib\data\ConversionTable.csv') $User = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($userid)" -tenantid $tenantFilter $GroupMemberships = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($userid)/memberOf/microsoft.graph.group?`$select=id,displayName,assignedLicenses" -tenantid $tenantFilter $LicenseGroups = $GroupMemberships | Where-Object { ($_.assignedLicenses | Measure-Object).Count -gt 0 } diff --git a/Modules/CIPPCore/Public/Remove-CIPPMailboxRule.ps1 b/Modules/CIPPCore/Public/Remove-CIPPMailboxRule.ps1 index aeb62aad3446..579c7f2d4801 100644 --- a/Modules/CIPPCore/Public/Remove-CIPPMailboxRule.ps1 +++ b/Modules/CIPPCore/Public/Remove-CIPPMailboxRule.ps1 @@ -18,30 +18,35 @@ function Remove-CIPPMailboxRule { $Rules = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-InboxRule' -cmdParams @{Mailbox = $Username; IncludeHidden = $true } | Where-Object { $_.Name -ne 'Junk E-Mail Rule' -and $_.Name -notlike 'Microsoft.Exchange.OOF.*' } Write-Host "$($Rules.count) rules found" if ($null -eq $Rules) { - Write-LogMessage -headers $Headers -API $APIName -message "No Rules for $($Username) to delete" -Sev 'Info' -tenant $TenantFilter - return "No rules for $($Username) to delete" + $Message = "No rules found for $($Username) to delete" + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Info' -tenant $TenantFilter + return $Message } else { ForEach ($rule in $Rules) { $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Remove-InboxRule' -Anchor $Username -cmdParams @{Identity = $rule.Identity } } + $Message = "Successfully deleted all rules for $($Username)" Write-LogMessage -headers $Headers -API $APIName -message "Deleted rules for $($Username)" -Sev 'Info' -tenant $TenantFilter - return "Deleted rules for $($Username)" + return $Message } } catch { $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -headers $Headers -API $APIName -message "Could not delete rules for $($Username): $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage - return "Could not delete rules for $($Username). Error: $($ErrorMessage.NormalizedError)" + $Message = "Failed to delete rules for $($Username). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + throw $Message } } else { # Only delete 1 rule try { $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Remove-InboxRule' -Anchor $Username -cmdParams @{Identity = $RuleId } + $Message = "Successfully deleted mailbox rule $($RuleName) for $($Username)" Write-LogMessage -headers $Headers -API $APIName -message "Deleted mailbox rule $($RuleName) for $($Username)" -Sev 'Info' -tenant $TenantFilter - return "Deleted mailbox rule $($RuleName) for $($Username)" + return $Message } catch { $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -headers $Headers -API $APIName -message "Could not delete rule for $($Username): $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage - return "Could not delete rule for $($Username). Error: $($ErrorMessage.NormalizedError)" + $Message = "Failed to delete rule for $($Username). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + throw $Message } } } diff --git a/Modules/CIPPCore/Public/Remove-CIPPMobileDevice.ps1 b/Modules/CIPPCore/Public/Remove-CIPPMobileDevice.ps1 index d1d0a8cb45ba..e436fce09d5c 100644 --- a/Modules/CIPPCore/Public/Remove-CIPPMobileDevice.ps1 +++ b/Modules/CIPPCore/Public/Remove-CIPPMobileDevice.ps1 @@ -1,28 +1,37 @@ function Remove-CIPPMobileDevice { [CmdletBinding()] param( - $userid, - $tenantFilter, - $username, + $UserId, + $TenantFilter, + $Username, $APIName = 'Remove Mobile', $Headers ) try { - $devices = New-ExoRequest -tenantid $tenantFilter -cmdlet 'Get-MobileDevice' -Anchor $username -cmdParams @{mailbox = $username } | ForEach-Object { + $RemovedDevices = [System.Collections.Generic.List[string]]::new() + $ErrorDevices = [System.Collections.Generic.List[string]]::new() + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-MobileDevice' -Anchor $Username -cmdParams @{mailbox = $Username } | ForEach-Object { try { - New-ExoRequest -tenantid $tenantFilter -cmdlet 'Remove-MobileDevice' -Anchor $username -cmdParams @{Identity = $_.Identity } - "Removed device: $($_.FriendlyName)" + $MobileDevice = $_ + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Remove-MobileDevice' -Anchor $Username -cmdParams @{Identity = $MobileDevice.Identity } + $RemovedDevices.Add("$($MobileDevice.FriendlyName)") } catch { - "Could not remove device: $($_.FriendlyName)" + $ErrorDevices.Add("$($MobileDevice.FriendlyName)") } } - if (!$Devices) { $Devices = 'No mobile devices have been removed as we could not find any' } - Write-LogMessage -headers $Headers -API $APIName -message "Deleted mobile devices for $($username)" -Sev 'Info' -tenant $tenantFilter - return $devices + if ($ErrorDevices.Count -eq 0) { + $Message = "Successfully removed $($RemovedDevices.Count) mobile devices for $($Username): $($RemovedDevices -join '; ')" + } else { + $Message = "Failed to remove all mobile devices for $($Username). Successfully removed $($RemovedDevices.Count) mobile devices: $($RemovedDevices -join '; '). Failed to remove $($ErrorDevices.Count) mobile devices: $($ErrorDevices -join '; ')" + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Error' -tenant $TenantFilter + } + return $Message } catch { $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -headers $Headers -API $APIName -message "Could not delete mobile devices for $($username): $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $tenantFilter -LogData $ErrorMessage - return "Could not delete mobile devices for $($username). Error: $($ErrorMessage.NormalizedError)" + $Message = "Failed to remove mobile devices for $($Username). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + throw $Message } } + diff --git a/Modules/CIPPCore/Public/Remove-CIPPTrustedBlockedSender.ps1 b/Modules/CIPPCore/Public/Remove-CIPPTrustedBlockedSender.ps1 new file mode 100644 index 000000000000..64b5649b81a1 --- /dev/null +++ b/Modules/CIPPCore/Public/Remove-CIPPTrustedBlockedSender.ps1 @@ -0,0 +1,30 @@ +function Remove-CIPPTrustedBlockedSender { + [CmdletBinding()] + param ( + [string]$UserPrincipalName, + [string]$TenantFilter, + [string]$APIName = 'Trusted/Blocked Sender Removal', + $Headers, + [string]$TypeProperty, + [string]$Value + ) + + try { + + # Set the updated configuration + $SetParams = @{ + Identity = $UserPrincipalName + $TypeProperty = @{'@odata.type' = '#Exchange.GenericHashTable'; Remove = $Value } + } + + $null = New-ExoRequest -Anchor $UserPrincipalName -tenantid $TenantFilter -cmdlet 'Set-MailboxJunkEmailConfiguration' -cmdParams $SetParams + $Message = "Successfully removed '$Value' from $TypeProperty for $($UserPrincipalName)" + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Info' -tenant $TenantFilter + return $Message + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to remove junk email configuration entry for $($UserPrincipalName). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + throw $Message + } +} diff --git a/Modules/CIPPCore/Public/Remove-CIPPUser.ps1 b/Modules/CIPPCore/Public/Remove-CIPPUser.ps1 index d892e9421227..92b9ae2c7529 100644 --- a/Modules/CIPPCore/Public/Remove-CIPPUser.ps1 +++ b/Modules/CIPPCore/Public/Remove-CIPPUser.ps1 @@ -2,22 +2,28 @@ function Remove-CIPPUser { [CmdletBinding()] param ( $Headers, - $userid, - $username, + [parameter(Mandatory = $true)] + [string]$UserID, + [string]$Username, $APIName = 'Remove User', $TenantFilter ) + + try { - $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($userid)" -type DELETE -tenant $TenantFilter - Write-LogMessage -headers $Headers -API $APIName -message "Deleted account $username" -Sev 'Info' -tenant $TenantFilter - return "Deleted the user account $username" + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($UserID)" -type DELETE -tenant $TenantFilter + $Result = "Successfully deleted user with ID: '$UserID'" + if (-not [string]::IsNullOrEmpty($Username)) { $Result += " and Username: '$Username'" } + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Info' -tenant $TenantFilter + return $Result } catch { $ErrorMessage = Get-CippException -Exception $_ - $Message = "Could not delete $username. Error: $($ErrorMessage.NormalizedError)" - Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage - return $Message + $Result = "Failed to delete user with ID: '$UserID'. Error: $($ErrorMessage.NormalizedError)" + if (-not [string]::IsNullOrEmpty($Username)) { $Result += " and Username: '$Username'" } + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + throw $Result } } diff --git a/Modules/CIPPCore/Public/Remove-CIPPUserMFA.ps1 b/Modules/CIPPCore/Public/Remove-CIPPUserMFA.ps1 index 2d9efd1e30e2..722d0b73a616 100644 --- a/Modules/CIPPCore/Public/Remove-CIPPUserMFA.ps1 +++ b/Modules/CIPPCore/Public/Remove-CIPPUserMFA.ps1 @@ -23,16 +23,21 @@ function Remove-CIPPUserMFA { [Parameter(Mandatory = $true)] [string]$TenantFilter, [Parameter(Mandatory = $false)] - $Headers + $Headers, + [Parameter(Mandatory = $false)] + $APIName = 'Remove MFA Methods' ) Write-Information "Getting auth methods for $UserPrincipalName" try { $AuthMethods = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/users/$UserPrincipalName/authentication/methods" -tenantid $TenantFilter -AsApp $true } catch { - Write-LogMessage -headers $Headers -API 'Remove-CIPPUserMFA' -tenant $TenantFilter -message "Failed to get MFA methods for user $UserPrincipalName" -sev 'Error' -LogData (Get-CippException -Exception $_) - return "Failed to get MFA methods for user $UserPrincipalName - $($_.Exception.Message)" + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to get MFA methods for user $UserPrincipalName. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Message -sev 'Error' -LogData $ErrorMessage + throw $Message } + $Requests = [System.Collections.Generic.List[object]]::new() foreach ($Method in $AuthMethods) { if ($Method.'@odata.type' -and $Method.'@odata.type' -ne '#microsoft.graph.passwordAuthenticationMethod') { @@ -44,22 +49,31 @@ function Remove-CIPPUserMFA { }) } } + if (($Requests | Measure-Object).Count -eq 0) { - Write-LogMessage -headers $Headers -API 'Remove-CIPPUserMFA' -tenant $TenantFilter -message "No MFA methods found for user $UserPrincipalName" -sev 'Info' - $Results = "No MFA methods found for user $($UserPrincipalName)" + $Results = "No MFA methods found for user $UserPrincipalName" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Results -sev 'Info' + return $Results } else { if ($PSCmdlet.ShouldProcess("Remove MFA methods for $UserPrincipalName")) { - $Results = New-GraphBulkRequest -Requests $Requests -tenantid $TenantFilter -asapp $true -erroraction stop - if ($Results.status -eq 204) { - Write-LogMessage -headers $Headers -API 'Remove-CIPPUserMFA' -tenant $TenantFilter -message "Successfully removed MFA methods for user $UserPrincipalName" -sev 'Info' - $Results = [pscustomobject]@{'Results' = "Successfully completed request. User $($Request.Query.ID) must supply MFA at next logon" } - } else { - $FailedAuthMethods = (($Results | Where-Object { $_.status -ne 204 }).id -split '-')[0] -join ', ' - Write-LogMessage -headers $Headers -API 'Remove-CIPPUserMFA' -tenant $TenantFilter -message "Failed to remove MFA methods for $FailedAuthMethods" -sev 'Error' - $Results = "Failed to reset MFA methods for $FailedAuthMethods" + try { + $Results = New-GraphBulkRequest -Requests $Requests -tenantid $TenantFilter -asapp $true -ErrorAction Stop + if ($Results.status -eq 204) { + $Message = "Successfully removed MFA methods for user $UserPrincipalName. User must supply MFA at next logon" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Message -sev 'Info' + return $Message + } else { + $FailedAuthMethods = (($Results | Where-Object { $_.status -ne 204 }).id -split '-')[0] -join ', ' + $Message = "Failed to remove MFA methods for $FailedAuthMethods on user $UserPrincipalName" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Message -sev 'Error' + throw $Message + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to remove MFA methods for user $UserPrincipalName. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Message -sev 'Error' -LogData $ErrorMessage + throw $Message } } } - - return $Results } diff --git a/Modules/CIPPCore/Public/Remove-CIPPUserTeamsPhoneDIDs.ps1 b/Modules/CIPPCore/Public/Remove-CIPPUserTeamsPhoneDIDs.ps1 new file mode 100644 index 000000000000..7630e7ce05ad --- /dev/null +++ b/Modules/CIPPCore/Public/Remove-CIPPUserTeamsPhoneDIDs.ps1 @@ -0,0 +1,98 @@ +using namespace System.Net +using namespace System.Collections.Generic + +function Remove-CIPPUserTeamsPhoneDIDs { + [CmdletBinding()] + param ( + $Headers, + [parameter(Mandatory = $true)] + [string]$UserID, + [string]$Username, + $APIName = 'Remove User Teams Phone DIDs', + [parameter(Mandatory = $true)] + $TenantFilter + ) + + try { + + # Set Username to UserID if not provided + if ([string]::IsNullOrEmpty($Username)) { + $Username = $UserID + } + + # Initialize collections for results + $Results = [List[string]]::new() + $SuccessCount = 0 + $ErrorCount = 0 + + # Get all tenant DIDs + $TeamsPhoneDIDs = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/admin/teams/telephoneNumberManagement/numberAssignments" -tenant $TenantFilter + + if (-not $TeamsPhoneDIDs -or $TeamsPhoneDIDs.Count -eq 0) { + $Result = "No Teams Phone DIDs found in tenant" + $Results.Add($Result) + return $Results.ToArray() + } + + # Filter DIDs assigned to the specific user + $UserDIDs = $TeamsPhoneDIDs | Where-Object { $_.assignmentTargetId -eq $UserID -and $_.assignmentStatus -ne 'unassigned' } + + if (-not $UserDIDs -or $UserDIDs.Count -eq 0) { + $Result = "No Teams Phone DIDs found assigned to user: '$Username' - '$UserID'" + $Results.Add($Result) + return $Results.ToArray() + } + + # Prepare bulk requests for all DIDs + $RemoveRequests = foreach ($DID in $UserDIDs) { + @{ + id = $DID.telephoneNumber + method = 'POST' + url = "admin/teams/telephoneNumberManagement/numberAssignments/unassignNumber" + body = @{ + telephoneNumber = $DID.telephoneNumber + numberType = $DID.numberType + } + } + } + + # Execute bulk request + $RemoveResults = New-GraphBulkRequest -tenantid $TenantFilter -requests @($RemoveRequests) + + # Process results + $RemoveResults | ForEach-Object { + $PhoneNumber = $_.id + + if ($_.status -eq 204) { + $SuccessResult = "Successfully removed Teams Phone DID: '$PhoneNumber' from: '$Username' - '$UserID'" + Write-LogMessage -headers $Headers -API $APIName -message $SuccessResult -Sev 'Info' -tenant $TenantFilter + $Results.Add($SuccessResult) + $SuccessCount++ + } else { + $ErrorMessage = if ($_.body.error.message) { + $_.body.error.message + } else { + "HTTP Status: $($_.status)" + } + + $ErrorResult = "Failed to remove Teams Phone DID: '$PhoneNumber' from: '$Username' - '$UserID'. Error: $ErrorMessage" + Write-LogMessage -headers $Headers -API $APIName -message $ErrorResult -Sev 'Error' -tenant $TenantFilter + $Results.Add($ErrorResult) + $ErrorCount++ + } + } + + # Add summary result + $SummaryResult = "Completed processing $($UserDIDs.Count) DIDs for user '$Username': $SuccessCount successful, $ErrorCount failed" + Write-LogMessage -headers $Headers -API $APIName -message $SummaryResult -Sev 'Info' -tenant $TenantFilter + $Results.Add($SummaryResult) + + return $Results.ToArray() + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to process Teams Phone DIDs removal for: '$Username' - '$UserID'. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + throw $Result + } +} diff --git a/Modules/CIPPCore/Public/Revoke-CIPPSessions.ps1 b/Modules/CIPPCore/Public/Revoke-CIPPSessions.ps1 index e9d319008a2d..2718233be838 100644 --- a/Modules/CIPPCore/Public/Revoke-CIPPSessions.ps1 +++ b/Modules/CIPPCore/Public/Revoke-CIPPSessions.ps1 @@ -9,15 +9,15 @@ function Revoke-CIPPSessions { ) try { - $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($userid)/invalidateAllRefreshTokens" -tenantid $TenantFilter -type POST -body '{}' -verbose - Write-LogMessage -headers $Headers -API $APIName -message "Revoked sessions for $($username)" -Sev 'Info' -tenant $TenantFilter - return "Success. All sessions by $username have been revoked" + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($UserID)/invalidateAllRefreshTokens" -tenantid $TenantFilter -type POST -body '{}' -verbose + $Result = "Successfully revoked sessions for $($Username)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Info' -tenant $TenantFilter + return $Result } catch { $ErrorMessage = Get-CippException -Exception $_ - $Result = "Failed to revoke sessions for $($username). Error: $($ErrorMessage.NormalizedError)" + $Result = "Failed to revoke sessions for $($Username). Error: $($ErrorMessage.NormalizedError)" Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage - # TODO - needs to be changed to throw, but the rest of the functions using this cant handle anything but a return. - return $Result + throw $Result } } diff --git a/Modules/CIPPCore/Public/SAMManifest/Update-CippSamPermissions.ps1 b/Modules/CIPPCore/Public/SAMManifest/Update-CippSamPermissions.ps1 new file mode 100644 index 000000000000..c63ff4872094 --- /dev/null +++ b/Modules/CIPPCore/Public/SAMManifest/Update-CippSamPermissions.ps1 @@ -0,0 +1,79 @@ +function Update-CippSamPermissions { + <# + .SYNOPSIS + Updates CIPP-SAM app permissions by merging missing permissions. + .DESCRIPTION + Retrieves current SAM permissions, merges any missing permissions, and updates the AppPermissions table. + .PARAMETER UpdatedBy + The user or system that is performing the update. Defaults to 'CIPP-API'. + .OUTPUTS + String indicating the result of the operation. + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false)] + [string]$UpdatedBy = 'CIPP-API' + ) + + try { + $CurrentPermissions = Get-CippSamPermissions + + if (($CurrentPermissions.MissingPermissions | Measure-Object).Count -eq 0) { + return 'No permissions to update' + } + + Write-Information 'Missing permissions found' + $MissingPermissions = $CurrentPermissions.MissingPermissions + $Permissions = $CurrentPermissions.Permissions + + $AppIds = @($Permissions.PSObject.Properties.Name + $MissingPermissions.PSObject.Properties.Name) + $NewPermissions = @{} + + foreach ($AppId in $AppIds) { + if (!$AppId) { continue } + $ApplicationPermissions = [system.collections.generic.list[object]]::new() + $DelegatedPermissions = [system.collections.generic.list[object]]::new() + + foreach ($Permission in $Permissions.$AppId.applicationPermissions) { + $ApplicationPermissions.Add($Permission) + } + if (($MissingPermissions.$AppId.applicationPermissions | Measure-Object).Count -gt 0) { + foreach ($MissingPermission in $MissingPermissions.$AppId.applicationPermissions) { + Write-Host "Adding missing permission: $MissingPermission" + $ApplicationPermissions.Add($MissingPermission) + } + } + + foreach ($Permission in $Permissions.$AppId.delegatedPermissions) { + $DelegatedPermissions.Add($Permission) + } + if (($MissingPermissions.$AppId.delegatedPermissions | Measure-Object).Count -gt 0) { + foreach ($MissingPermission in $MissingPermissions.$AppId.delegatedPermissions) { + Write-Host "Adding missing permission: $MissingPermission" + $DelegatedPermissions.Add($MissingPermission) + } + } + + $NewPermissions.$AppId = @{ + applicationPermissions = @($ApplicationPermissions | Sort-Object -Property label) + delegatedPermissions = @($DelegatedPermissions | Sort-Object -Property label) + } + } + + $Entity = @{ + 'PartitionKey' = 'CIPP-SAM' + 'RowKey' = 'CIPP-SAM' + 'Permissions' = [string]([PSCustomObject]$NewPermissions | ConvertTo-Json -Depth 10 -Compress) + 'UpdatedBy' = $UpdatedBy + } + + $Table = Get-CIPPTable -TableName 'AppPermissions' + $null = Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force + + Write-LogMessage -API 'UpdateCippSamPermissions' -message 'CIPP-SAM Permissions Updated' -Sev 'Info' -LogData $NewPermissions + + return 'Permissions Updated' + } catch { + throw "Failed to update permissions: $($_.Exception.Message)" + } +} diff --git a/Modules/CIPPCore/Public/Search-CIPPDbData.ps1 b/Modules/CIPPCore/Public/Search-CIPPDbData.ps1 new file mode 100644 index 000000000000..a782821fa989 --- /dev/null +++ b/Modules/CIPPCore/Public/Search-CIPPDbData.ps1 @@ -0,0 +1,188 @@ +function Search-CIPPDbData { + <# + .SYNOPSIS + Universal search function for CIPP Reporting DB data + + .DESCRIPTION + Searches JSON objects in the CIPP Reporting DB for matching search terms. + Supports wildcard and regular expression searches across multiple data types. + Returns results as a flat list with Type property included. + + .PARAMETER TenantFilter + Optional tenant domain or GUID to filter search. If not specified, searches all tenants. + + .PARAMETER SearchTerms + Search terms to look for. Uses regex matching by default (special characters are escaped). + Can be a single string or array of strings. + + .PARAMETER Types + Array of data types to search. If not specified, searches all available types. + Valid types: Users, Domains, ConditionalAccessPolicies, ManagedDevices, Organization, + Groups, Roles, LicenseOverview, IntuneDeviceCompliancePolicies, SecureScore, + SecureScoreControlProfiles, Mailboxes, CASMailbox, MailboxPermissions, OneDriveUsage, MailboxUsage + + .PARAMETER MatchAll + If specified, all search terms must be found. Default is false (any term matches). + + .PARAMETER MaxResultsPerType + Maximum number of results to return per type. Default is unlimited (0) + + .PARAMETER Limit + Maximum total number of results to return across all types. Default is unlimited (0) + + .EXAMPLE + Search-CIPPDbData -TenantFilter 'contoso.onmicrosoft.com' -SearchTerms 'john.doe' -Types 'Users', 'Groups' + + .EXAMPLE + Search-CIPPDbData -SearchTerms 'admin' -Types 'Users' + + .EXAMPLE + Search-CIPPDbData -SearchTerms 'SecurityDefaults', 'ConditionalAccess' -Types 'ConditionalAccessPolicies', 'Organization' + + .EXAMPLE + Search-CIPPDbData -SearchTerms 'SecurityDefaults', 'ConditionalAccess' -Types 'ConditionalAccessPolicies', 'Organization' + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false)] + [string]$TenantFilter, + + [Parameter(Mandatory = $true)] + [string[]]$SearchTerms, + + [Parameter(Mandatory = $false)] + [ValidateSet( + 'Users', 'Domains', 'ConditionalAccessPolicies', 'ManagedDevices', 'Organization', + 'Groups', 'Roles', 'LicenseOverview', 'IntuneDeviceCompliancePolicies', 'SecureScore', + 'SecureScoreControlProfiles', 'Mailboxes', 'CASMailbox', 'MailboxPermissions', + 'OneDriveUsage', 'MailboxUsage', 'Devices', 'AllRoles', 'Licenses', 'DeviceCompliancePolicies' + )] + [string[]]$Types, + + [Parameter(Mandatory = $false)] + [switch]$MatchAll, + + [Parameter(Mandatory = $false)] + [int]$MaxResultsPerType = 0, + + [Parameter(Mandatory = $false)] + [int]$Limit = 0 + ) + + try { + # Initialize results list + $Results = [System.Collections.Generic.List[object]]::new() + + # Define all available types if not specified + if (-not $Types) { + $Types = @( + 'Users', 'Domains', 'ConditionalAccessPolicies', 'ManagedDevices', 'Organization', + 'Groups', 'Roles', 'LicenseOverview', 'IntuneDeviceCompliancePolicies', 'SecureScore', + 'SecureScoreControlProfiles', 'Mailboxes', 'CASMailbox', 'MailboxPermissions', + 'OneDriveUsage', 'MailboxUsage' + ) + } + + # Get tenants to search - use 'allTenants' if no filter specified + $TenantsToSearch = @() + if ($TenantFilter) { + $TenantsToSearch = @($TenantFilter) + } else { + # Use 'allTenants' to search across all tenants + $TenantsToSearch = @('allTenants') + Write-Verbose 'Searching all tenants' + } + + # Process each data type + :typeLoop foreach ($Type in $Types) { + Write-Verbose "Searching type: $Type" + $TypeResultCount = 0 + + # Search across all tenants + foreach ($Tenant in $TenantsToSearch) { + if (-not $Tenant) { continue } + + try { + # Get items for this type and tenant + $Items = Get-CIPPDbItem -TenantFilter $Tenant -Type $Type | Where-Object { $_.RowKey -notlike '*-Count' } + Write-Verbose "Found $(@($Items).Count) items for type '$Type' in tenant '$Tenant'" + + if ($Items) { + foreach ($Item in $Items) { + # Data is already in JSON format, do a quick text search first + if (-not $Item.Data) { continue } + + # Check if any search term matches in the JSON string + $IsMatch = $false + + if ($MatchAll) { + # All terms must match + $IsMatch = $true + foreach ($SearchTerm in $SearchTerms) { + $SearchPattern = [regex]::Escape($SearchTerm) + if ($Item.Data -notmatch $SearchPattern) { + $IsMatch = $false + break + } + } + } else { + # Any term can match (default) + foreach ($SearchTerm in $SearchTerms) { + $SearchPattern = [regex]::Escape($SearchTerm) + if ($Item.Data -match $SearchPattern) { + $IsMatch = $true + break + } + } + } + + # Only parse JSON if we have a match + if ($IsMatch) { + try { + $Data = $Item.Data | ConvertFrom-Json + $ResultItem = [PSCustomObject]@{ + Tenant = $Item.PartitionKey + Type = $Type + RowKey = $Item.RowKey + Data = $Data + Timestamp = $Item.Timestamp + } + $Results.Add($ResultItem) + $TypeResultCount++ + + # Check total limit first + if ($Limit -gt 0 -and $Results.Count -ge $Limit) { + Write-Verbose "Reached total limit of $Limit results" + break typeLoop + } + + # Check max results per type + if ($MaxResultsPerType -gt 0 -and $TypeResultCount -ge $MaxResultsPerType) { + Write-Verbose "Reached max results per type ($MaxResultsPerType) for type '$Type'" + continue typeLoop + } + } catch { + Write-Verbose "Failed to parse JSON for $($Item.RowKey): $($_.Exception.Message)" + } + } + } + } + + } catch { + Write-Verbose "Error searching type '$Type' for tenant '$Tenant': $($_.Exception.Message)" + } + } + } + + Write-Verbose "Found $($Results.Count) total results" + # Return results as flat list + return $Results.ToArray() + + } catch { + Write-LogMessage -API 'UniversalSearch' -tenant $TenantFilter -message "Failed to perform universal search: $($_.Exception.Message)" -sev Error + throw + } +} diff --git a/Modules/CIPPCore/Public/Send-CIPPAlert.ps1 b/Modules/CIPPCore/Public/Send-CIPPAlert.ps1 index 90f3e36c3649..3451827a67d3 100644 --- a/Modules/CIPPCore/Public/Send-CIPPAlert.ps1 +++ b/Modules/CIPPCore/Public/Send-CIPPAlert.ps1 @@ -7,6 +7,8 @@ function Send-CIPPAlert { $HTMLContent, $JSONContent, $TenantFilter, + $altEmail, + $altWebhook, $APIName = 'Send Alert', $Headers, $TableName, @@ -16,11 +18,33 @@ function Send-CIPPAlert { $Table = Get-CIPPTable -TableName SchedulerConfig $Filter = "RowKey eq 'CippNotifications' and PartitionKey eq 'CippNotifications'" $Config = [pscustomobject](Get-CIPPAzDataTableEntity @Table -Filter $Filter) + + if ($HTMLContent) { + $HTMLContent = Get-CIPPTextReplacement -TenantFilter $TenantFilter -Text $HTMLContent + } + if ($Type -eq 'email') { Write-Information 'Trying to send email' try { - if ($Config.email -like '*@*') { - $Recipients = $Config.email.split($(if ($Config.email -like '*,*') { ',' } else { ';' })).trim() | ForEach-Object { if ($_ -like '*@*') { [pscustomobject]@{EmailAddress = @{Address = $_ } } } } + if ($Config.email -like '*@*' -or $altEmail -like '*@*') { + $Recipients = if ($AltEmail) { + [pscustomobject]@{EmailAddress = @{Address = $AltEmail } } + } else { + $Config.email.split($(if ($Config.email -like '*,*') { ',' } else { ';' })).trim() | ForEach-Object { + if ($_ -like '*@*') { + ($Alias, $Domain) = $_ -split '@' + if ($Alias -match '%') { + # Allow for text replacement in alias portion of email address + $Alias = Get-CIPPTextReplacement -Text $Alias -Tenant $TenantFilter + $Recipient = "$Alias@$Domain" + } else { + $Recipient = $_ + } + [pscustomobject]@{EmailAddress = @{Address = $Recipient } } + } + } + } + $PowerShellBody = [PSCustomObject]@{ message = @{ subject = $Title @@ -34,12 +58,18 @@ function Send-CIPPAlert { } $JSONBody = ConvertTo-Json -Compress -Depth 10 -InputObject $PowerShellBody + if ($PSCmdlet.ShouldProcess($($Recipients.EmailAddress.Address -join ', '), 'Sending email')) { $null = New-GraphPostRequest -uri 'https://graph.microsoft.com/v1.0/me/sendMail' -tenantid $env:TenantID -NoAuthCheck $true -type POST -body ($JSONBody) } + + $LogData = @{ + Recipients = $Recipients + } + Write-LogMessage -API 'Webhook Alerts' -message "Sent an email alert: $Title" -tenant $TenantFilter -sev info -LogData $LogData + return "Sent an email alert: $Title" } - Write-LogMessage -API 'Webhook Alerts' -message "Sent an email alert: $Title" -tenant $TenantFilter -sev info - return "Sent an email alert: $Title" + } catch { $ErrorMessage = Get-CippException -Exception $_ Write-Information "Could not send webhook alert to email: $($ErrorMessage.NormalizedError)" @@ -71,17 +101,30 @@ function Send-CIPPAlert { if ($Type -eq 'webhook') { Write-Information 'Trying to send webhook' + $ExtensionTable = Get-CIPPTable -TableName Extensionsconfig + $Configuration = ((Get-CIPPAzDataTableEntity @ExtensionTable).config | ConvertFrom-Json) + + if ($Configuration.CFZTNA.WebhookEnabled -eq $true -and $Configuration.CFZTNA.Enabled -eq $true) { + $CFAPIKey = Get-ExtensionAPIKey -Extension 'CFZTNA' + $Headers = @{'CF-Access-Client-Id' = $Configuration.CFZTNA.ClientId; 'CF-Access-Client-Secret' = "$CFAPIKey" } + Write-Information 'CF-Access-Client-Id and CF-Access-Client-Secret headers added to webhook API request' + } else { + $Headers = $null + } + + $JSONBody = Get-CIPPTextReplacement -TenantFilter $TenantFilter -Text $JSONContent -EscapeForJson try { - if ($Config.webhook -ne '') { + if (![string]::IsNullOrWhiteSpace($Config.webhook) -or ![string]::IsNullOrWhiteSpace($AltWebhook)) { if ($PSCmdlet.ShouldProcess($Config.webhook, 'Sending webhook')) { - switch -wildcard ($config.webhook) { + $webhook = if ($AltWebhook) { $AltWebhook } else { $Config.webhook } + switch -wildcard ($webhook) { '*webhook.office.com*' { $JSONBody = "{`"text`": `"You've setup your alert policies to be alerted whenever specific events happen. We've found some of these events in the log.

$JSONContent`"}" - Invoke-RestMethod -Uri $config.webhook -Method POST -ContentType 'Application/json' -Body $JSONBody + Invoke-RestMethod -Uri $webhook -Method POST -ContentType 'Application/json' -Body $JSONBody } '*discord.com*' { $JSONBody = "{`"content`": `"You've setup your alert policies to be alerted whenever specific events happen. We've found some of these events in the log. $JSONContent`"}" - Invoke-RestMethod -Uri $config.webhook -Method POST -ContentType 'Application/json' -Body $JSONBody + Invoke-RestMethod -Uri $webhook -Method POST -ContentType 'Application/json' -Body $JSONBody } '*slack.com*' { $SlackBlocks = Get-SlackAlertBlocks -JSONBody $JSONContent @@ -90,20 +133,32 @@ function Send-CIPPAlert { } else { $JSONBody = "{`"text`": `"You've setup your alert policies to be alerted whenever specific events happen. We've found some of these events in the log. $JSONContent`"}" } - Invoke-RestMethod -Uri $config.webhook -Method POST -ContentType 'Application/json' -Body $JSONBody + Invoke-RestMethod -Uri $webhook -Method POST -ContentType 'Application/json' -Body $JSONBody } default { - Invoke-RestMethod -Uri $config.webhook -Method POST -ContentType 'Application/json' -Body $JSONContent + $RestMethod = @{ + Uri = $webhook + Method = 'POST' + ContentType = 'application/json' + Body = $JSONContent + } + if ($Headers) { + $RestMethod['Headers'] = $Headers + } + Invoke-RestMethod @RestMethod } } } + Write-LogMessage -API 'Webhook Alerts' -message "Sent Webhook alert $title to External webhook" -tenant $TenantFilter -sev info + } else { + Write-LogMessage -API 'Webhook Alerts' -message 'No webhook URL configured' -sev warning } - Write-LogMessage -API 'Webhook Alerts' -message "Sent Webhook alert $title to External webhook" -tenant $TenantFilter -sev info } catch { $ErrorMessage = Get-CippException -Exception $_ Write-Information "Could not send alerts to webhook: $($ErrorMessage.NormalizedError)" Write-LogMessage -API 'Webhook Alerts' -message "Could not send alerts to webhook: $($ErrorMessage.NormalizedError)" -tenant $TenantFilter -sev error -LogData $ErrorMessage + return "Could not send alerts to webhook: $($ErrorMessage.NormalizedError)" } } diff --git a/Modules/CIPPCore/Public/Set-CIPPAssignedApplication.ps1 b/Modules/CIPPCore/Public/Set-CIPPAssignedApplication.ps1 index 272c0d21aff8..771c6f4fc6fe 100644 --- a/Modules/CIPPCore/Public/Set-CIPPAssignedApplication.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPAssignedApplication.ps1 @@ -6,11 +6,39 @@ function Set-CIPPAssignedApplication { $AppType, $ApplicationId, $TenantFilter, + $GroupIds, + $AssignmentMode = 'replace', $APIName = 'Assign Application', $Headers ) Write-Host "GroupName: $GroupName Intent: $Intent AppType: $AppType ApplicationId: $ApplicationId TenantFilter: $TenantFilter APIName: $APIName" try { + $assignmentSettings = $null + if ($AppType) { + $assignmentSettings = @{ + '@odata.type' = "#microsoft.graph.$($AppType)AppAssignmentSettings" + } + + switch ($AppType) { + 'Win32Lob' { + $assignmentSettings.notifications = 'hideAll' + } + 'WinGet' { + $assignmentSettings.notifications = 'hideAll' + } + 'macOsVpp' { + $assignmentSettings.useDeviceLicensing = $true + } + 'iosVpp' { + $assignmentSettings.useDeviceLicensing = $true + } + default { + # No additional settings + } + } + } + + # Build the assignment object $MobileAppAssignment = switch ($GroupName) { 'AllUsers' { @(@{ @@ -19,12 +47,7 @@ function Set-CIPPAssignedApplication { '@odata.type' = '#microsoft.graph.allLicensedUsersAssignmentTarget' } intent = $Intent - settings = @{ - '@odata.type' = "#microsoft.graph.$($appType)AppAssignmentSettings" - notifications = 'hideAll' - installTimeSettings = $null - restartSettings = $null - } + settings = $assignmentSettings }) break } @@ -35,12 +58,7 @@ function Set-CIPPAssignedApplication { '@odata.type' = '#microsoft.graph.allDevicesAssignmentTarget' } intent = $Intent - settings = @{ - '@odata.type' = "#microsoft.graph.$($appType)AppAssignmentSettings" - notifications = 'hideAll' - installTimeSettings = $null - restartSettings = $null - } + settings = $assignmentSettings }) break } @@ -52,12 +70,7 @@ function Set-CIPPAssignedApplication { '@odata.type' = '#microsoft.graph.allLicensedUsersAssignmentTarget' } intent = $Intent - settings = @{ - '@odata.type' = "#microsoft.graph.$($appType)AppAssignmentSettings" - notifications = 'hideAll' - installTimeSettings = $null - restartSettings = $null - } + settings = $assignmentSettings }, @{ '@odata.type' = '#microsoft.graph.mobileAppAssignment' @@ -65,27 +78,33 @@ function Set-CIPPAssignedApplication { '@odata.type' = '#microsoft.graph.allDevicesAssignmentTarget' } intent = $Intent - settings = @{ - '@odata.type' = "#microsoft.graph.$($appType)AppAssignmentSettings" - notifications = 'hideAll' - installTimeSettings = $null - restartSettings = $null - } + settings = $assignmentSettings } ) } default { - $GroupNames = $GroupName.Split(',') - $GroupIds = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/groups' -tenantid $TenantFilter | ForEach-Object { - $Group = $_ - foreach ($SingleName in $GroupNames) { - if ($_.displayname -like $SingleName) { - $group.id + $resolvedGroupIds = @() + if ($PSBoundParameters.ContainsKey('GroupIds') -and $GroupIds) { + $resolvedGroupIds = $GroupIds + } else { + $GroupNames = $GroupName.Split(',') + $resolvedGroupIds = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/groups?$top=999&$select=id,displayName' -tenantid $TenantFilter | ForEach-Object { + $Group = $_ + foreach ($SingleName in $GroupNames) { + if ($Group.displayName -like $SingleName) { + $Group.id + } } } + Write-Information "found $($resolvedGroupIds) groups" + } + + # We ain't found nothing so we panic + if (-not $resolvedGroupIds) { + throw 'No matching groups resolved for assignment request.' } - Write-Information "found $($GroupIds) groups" - foreach ($Group in $GroupIds) { + + foreach ($Group in $resolvedGroupIds) { @{ '@odata.type' = '#microsoft.graph.mobileAppAssignment' target = @{ @@ -93,30 +112,78 @@ function Set-CIPPAssignedApplication { groupId = $Group } intent = $Intent - settings = @{ - '@odata.type' = "#microsoft.graph.$($appType)AppAssignmentSettings" - notifications = 'hideAll' - installTimeSettings = $null - restartSettings = $null + settings = $assignmentSettings + } + } + } + } + + # If we're appending, we need to get existing assignments + if ($AssignmentMode -eq 'append') { + try { + $ExistingAssignments = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps/$($ApplicationId)/assignments" -tenantid $TenantFilter + } catch { + Write-Warning "Unable to retrieve existing assignments for $ApplicationId. Proceeding with new assignments only. Error: $($_.Exception.Message)" + $ExistingAssignments = @() + } + } + + # Deduplicate current assignments so the new ones override existing ones + if ($ExistingAssignments) { + $ExistingAssignments = $ExistingAssignments | ForEach-Object { + $ExistingAssignment = $_ + switch ($ExistingAssignment.target.'@odata.type') { + '#microsoft.graph.groupAssignmentTarget' { + if ($ExistingAssignment.target.groupId -notin $MobileAppAssignment.target.groupId) { + $ExistingAssignment + } + } + default { + if ($ExistingAssignment.target.'@odata.type' -notin $MobileAppAssignment.target.'@odata.type') { + $ExistingAssignment } } } } } + + $FinalAssignments = [System.Collections.Generic.List[object]]::new() + if ($AssignmentMode -eq 'append' -and $ExistingAssignments) { + $ExistingAssignments | ForEach-Object { + $FinalAssignments.Add(@{ + '@odata.type' = '#microsoft.graph.mobileAppAssignment' + target = $_.target + intent = $_.intent + settings = $_.settings + }) + } + + $MobileAppAssignment | ForEach-Object { + $FinalAssignments.Add(@{ + '@odata.type' = '#microsoft.graph.mobileAppAssignment' + target = $_.target + intent = $_.intent + settings = $_.settings + }) + } + } else { + $FinalAssignments = $MobileAppAssignment + } + $DefaultAssignmentObject = [PSCustomObject]@{ mobileAppAssignments = @( - $MobileAppAssignment + $FinalAssignments ) } if ($PSCmdlet.ShouldProcess($GroupName, "Assigning Application $ApplicationId")) { Start-Sleep -Seconds 1 $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps/$($ApplicationId)/assign" -tenantid $TenantFilter -type POST -body ($DefaultAssignmentObject | ConvertTo-Json -Compress -Depth 10) - Write-LogMessage -headers $Headers -API $APIName -message "Assigned Application to $($GroupName)" -Sev 'Info' -tenant $TenantFilter + Write-LogMessage -headers $Headers -API $APIName -message "Assigned Application $ApplicationId to $($GroupName)" -Sev 'Info' -tenant $TenantFilter } - return "Assigned Application to $($GroupName)" + return "Assigned Application $ApplicationId to $($GroupName)" } catch { $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -headers $Headers -API $APIName -message "Could not assign application to $GroupName. Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage - return "Could not assign application to $GroupName. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message "Could not assign application $ApplicationId to $GroupName. Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + throw "Could not assign application $ApplicationId to $GroupName. Error: $($ErrorMessage.NormalizedError)" } } diff --git a/Modules/CIPPCore/Public/Set-CIPPAssignedPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPAssignedPolicy.ps1 index a719998ee3fe..eadfeef81f39 100644 --- a/Modules/CIPPCore/Public/Set-CIPPAssignedPolicy.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPAssignedPolicy.ps1 @@ -8,13 +8,35 @@ function Set-CIPPAssignedPolicy { $TenantFilter, $PlatformType = 'deviceManagement', $APIName = 'Assign Policy', - $Headers + $Headers, + $AssignmentFilterName, + $AssignmentFilterType = 'include', + $GroupIds, + $GroupNames, + $AssignmentMode = 'replace' ) Write-Host "Assigning policy $PolicyId ($PlatformType/$Type) to $GroupName" try { - $assignmentsList = New-Object System.Collections.Generic.List[System.Object] + # Resolve assignment filter name to ID if provided + $ResolvedFilterId = $null + if ($AssignmentFilterName) { + Write-Host "Looking up assignment filter by name: $AssignmentFilterName" + $AllFilters = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/assignmentFilters' -tenantid $TenantFilter + $MatchingFilter = $AllFilters | Where-Object { $_.displayName -like $AssignmentFilterName } | Select-Object -First 1 + + if ($MatchingFilter) { + $ResolvedFilterId = $MatchingFilter.id + Write-Host "Found assignment filter: $($MatchingFilter.displayName) with ID: $ResolvedFilterId" + } else { + $ErrorMessage = "No assignment filter found matching the name: $AssignmentFilterName. Policy assigned without filter." + Write-LogMessage -headers $Headers -API $APIName -message $ErrorMessage -Sev 'Warning' -tenant $TenantFilter + Write-Host $ErrorMessage + } + } + + $assignmentsList = [System.Collections.Generic.List[object]]::new() switch ($GroupName) { 'allLicensedUsers' { $assignmentsList.Add( @@ -50,18 +72,34 @@ function Set-CIPPAssignedPolicy { } ) } + 'On' { + # Do not assign to any group - used to turn on policy without assignments + } default { - Write-Host "We're supposed to assign a custom group. The group is $GroupName" - $GroupNames = $GroupName.Split(',').Trim() - $GroupIds = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/groups?$select=id,displayName&$top=999' -tenantid $TenantFilter | - ForEach-Object { - foreach ($SingleName in $GroupNames) { - if ($_.displayName -like $SingleName) { - $_.id + # Use GroupIds if provided, otherwise resolve by name + $resolvedGroupIds = @() + if ($GroupIds -and @($GroupIds).Count -gt 0) { + $resolvedGroupIds = @($GroupIds) + Write-Host "Using provided GroupIds: $($resolvedGroupIds -join ', ')" + } elseif ($GroupName) { + $GroupNames = $GroupName.Split(',').Trim() + $resolvedGroupIds = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/groups?$select=id,displayName&$top=999' -tenantid $TenantFilter | + ForEach-Object { + foreach ($SingleName in $GroupNames) { + if ($_.displayName -like $SingleName) { + $_.id + } } } - } - foreach ($gid in $GroupIds) { + } + + if (-not $resolvedGroupIds -or $resolvedGroupIds.Count -eq 0) { + $ErrorMessage = "No groups found matching the specified name(s): $GroupName. Policy not assigned." + Write-LogMessage -headers $Headers -API $APIName -message $ErrorMessage -Sev 'Warning' -tenant $TenantFilter + throw $ErrorMessage + } + + foreach ($gid in $resolvedGroupIds) { $assignmentsList.Add( @{ target = @{ @@ -97,24 +135,105 @@ function Set-CIPPAssignedPolicy { } } - $assignmentsObject = [PSCustomObject]@{ - assignments = $assignmentsList + # Add assignment filter to each assignment if specified + if ($ResolvedFilterId) { + Write-Host "Adding assignment filter $ResolvedFilterId with type $AssignmentFilterType to assignments" + foreach ($assignment in $assignmentsList) { + # Don't add filters to exclusion targets + if ($assignment.target.'@odata.type' -ne '#microsoft.graph.exclusionGroupAssignmentTarget') { + $assignment.target.deviceAndAppManagementAssignmentFilterId = $ResolvedFilterId + $assignment.target.deviceAndAppManagementAssignmentFilterType = $AssignmentFilterType + } + } + } + + # If we're appending, we need to get existing assignments + $ExistingAssignments = @() + if ($AssignmentMode -eq 'append') { + try { + $uri = "https://graph.microsoft.com/beta/$($PlatformType)/$Type('$($PolicyId)')/assignments" + $ExistingAssignments = New-GraphGetRequest -uri $uri -tenantid $TenantFilter + Write-Host "Found $($ExistingAssignments.Count) existing assignments for policy $PolicyId" + } catch { + Write-Warning "Unable to retrieve existing assignments for $PolicyId. Proceeding with new assignments only. Error: $($_.Exception.Message)" + $ExistingAssignments = @() + } + } + + # Deduplicate current assignments so the new ones override existing ones + if ($ExistingAssignments -and $ExistingAssignments.Count -gt 0) { + $ExistingAssignments = $ExistingAssignments | ForEach-Object { + $ExistingAssignment = $_ + switch ($ExistingAssignment.target.'@odata.type') { + '#microsoft.graph.groupAssignmentTarget' { + if ($ExistingAssignment.target.groupId -notin $assignmentsList.target.groupId) { + $ExistingAssignment + } + } + '#microsoft.graph.exclusionGroupAssignmentTarget' { + if ($ExistingAssignment.target.groupId -notin $assignmentsList.target.groupId) { + $ExistingAssignment + } + } + default { + if ($ExistingAssignment.target.'@odata.type' -notin $assignmentsList.target.'@odata.type') { + $ExistingAssignment + } + } + } + } + } + + # Build final assignments list + $FinalAssignments = [System.Collections.Generic.List[object]]::new() + if ($AssignmentMode -eq 'append' -and $ExistingAssignments) { + foreach ($existing in $ExistingAssignments) { + $FinalAssignments.Add(@{ + target = $existing.target + }) + } } - $AssignJSON = $assignmentsObject | ConvertTo-Json -Depth 10 -Compress - Write-Host "AssignJSON: $AssignJSON" + foreach ($newAssignment in $assignmentsList) { + $FinalAssignments.Add($newAssignment) + } + + # Determine the assignment property name based on type + $AssignmentPropertyName = switch ($Type) { + 'deviceHealthScripts' { 'deviceHealthScriptAssignments' } + 'deviceManagementScripts' { 'deviceManagementScriptAssignments' } + 'deviceShellScripts' { 'deviceManagementScriptAssignments' } + default { 'assignments' } + } + + $assignmentsObject = @{ $AssignmentPropertyName = @($FinalAssignments) } + + $AssignJSON = ConvertTo-Json -InputObject $assignmentsObject -Depth 10 -Compress if ($PSCmdlet.ShouldProcess($GroupName, "Assigning policy $PolicyId")) { $uri = "https://graph.microsoft.com/beta/$($PlatformType)/$Type('$($PolicyId)')/assign" $null = New-GraphPOSTRequest -uri $uri -tenantid $TenantFilter -type POST -body $AssignJSON + + # Build a friendly display name for the assigned groups + $AssignedGroupsDisplay = if ($GroupNames -and @($GroupNames).Count -gt 0) { + ($GroupNames -join ', ') + } elseif ($GroupName) { + $GroupName + } else { + 'specified groups' + } + if ($ExcludeGroup) { - Write-LogMessage -headers $Headers -API $APIName -message "Assigned group '$GroupName' and excluded group '$ExcludeGroup' on Policy $PolicyId" -Sev 'Info' -tenant $TenantFilter + Write-LogMessage -headers $Headers -API $APIName -message "Assigned group '$AssignedGroupsDisplay' and excluded group '$ExcludeGroup' on Policy $PolicyId" -Sev 'Info' -tenant $TenantFilter + return "Successfully assigned group '$AssignedGroupsDisplay' and excluded group '$ExcludeGroup' on Policy $PolicyId" } else { - Write-LogMessage -headers $Headers -API $APIName -message "Assigned group '$GroupName' on Policy $PolicyId" -Sev 'Info' -tenant $TenantFilter + Write-LogMessage -headers $Headers -API $APIName -message "Assigned group '$AssignedGroupsDisplay' on Policy $PolicyId" -Sev 'Info' -tenant $TenantFilter + return "Successfully assigned group '$AssignedGroupsDisplay' on Policy $PolicyId" } } } catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -headers $Headers -API $APIName -message "Failed to assign $GroupName to Policy $PolicyId, using Platform $PlatformType and $Type. The error is:$ErrorMessage" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -message "Failed to assign $GroupName to Policy $PolicyId, using Platform $PlatformType and $Type. The error is:$($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + return "Failed to assign $GroupName to Policy $PolicyId. Error: $ErrorMessage" } } diff --git a/Modules/CIPPCore/Public/Set-CIPPAuditLogUserExclusion.ps1 b/Modules/CIPPCore/Public/Set-CIPPAuditLogUserExclusion.ps1 new file mode 100644 index 000000000000..c2b6d75d2fea --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPAuditLogUserExclusion.ps1 @@ -0,0 +1,66 @@ +function Set-CIPPAuditLogUserExclusion { + <# + .SYNOPSIS + Sets user exclusions for Audit Log alerting. + .DESCRIPTION + This function allows you to add or remove user exclusions for Audit Log alerting in a specified tenant + by updating the AuditLogUserExclusions CIPP table. + .PARAMETER TenantFilter + The tenant identifier for which to set the user exclusions. + .PARAMETER Users + An array of user identifiers (GUIDs or UPNs) to be added or removed from the exclusion list. + .PARAMETER Action + The action to perform: 'Add' to add users to the exclusion list, 'Remove' to remove users from the exclusion list. + .PARAMETER Headers + The headers to include in the request, typically containing authentication tokens. This is supplied automatically by the API. + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + [Parameter(Mandatory = $true)] + [string[]]$Users, + [ValidateSet('Add', 'Remove')] + [string]$Action = 'Add', + [ValidateSet('Location')] + [string]$Type = 'Location', + $Headers + ) + + $AuditLogExclusionsTable = Get-CIPPTable -tablename 'AuditLogUserExclusions' + $ExistingEntries = Get-CIPPAzDataTableEntity @AuditLogExclusionsTable -Filter "PartitionKey eq '$TenantFilter'" + + $Results = foreach ($User in $Users) { + if ($Action -eq 'Add') { + $ExistingUser = $ExistingEntries | Where-Object { $_.RowKey -eq $User -and $_.PartitionKey -eq $TenantFilter -and $_.Type -eq $Type } + if (!$ExistingUser) { + $NewEntry = [PSCustomObject]@{ + PartitionKey = $TenantFilter + RowKey = $User + ExcludedOn = (Get-Date).ToString('o') + Type = $Type + } + if ($PSCmdlet.ShouldProcess("Adding exclusion for user: $User")) { + Add-CIPPAzDataTableEntity @AuditLogExclusionsTable -Entity $NewEntry + "Added audit log exclusion for user: $User" + Write-LogMessage -headers $Headers -API 'Set-CIPPAuditLogUserExclusion' -message "Added audit log exclusion for user: $User" -Sev 'Info' -tenant $TenantFilter -LogData $NewEntry + } + } else { + "User $User is already excluded." + } + } elseif ($Action -eq 'Remove') { + if ($ExistingEntries.RowKey -contains $User) { + if ($PSCmdlet.ShouldProcess("Removing exclusion for user: $User")) { + $Entity = $ExistingEntries | Where-Object { $_.RowKey -eq $User -and $_.PartitionKey -eq $TenantFilter -and $_.Type -eq $Type } + Remove-AzDataTableEntity @AuditLogExclusionsTable -Entity $Entity + Write-LogMessage -headers $Headers -API 'Set-CIPPAuditLogUserExclusion' -message "Removed audit log exclusion for user: $User" -Sev 'Info' -tenant $TenantFilter -LogData $Entity + "Removed audit log exclusion for user: $User" + } + } else { + "User $User is not in the exclusion list." + } + } + } + return @($Results) +} + diff --git a/Modules/CIPPCore/Public/Set-CIPPCAExclusion.ps1 b/Modules/CIPPCore/Public/Set-CIPPCAExclusion.ps1 index ea3ad84de6a5..a8d045379c26 100644 --- a/Modules/CIPPCore/Public/Set-CIPPCAExclusion.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPCAExclusion.ps1 @@ -6,39 +6,149 @@ function Set-CIPPCAExclusion { $UserID, $PolicyId, $Username, + $Users, + $Groups, $Headers ) try { - $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies/$($PolicyId)" -tenantid $TenantFilter -AsApp $true + $CheckExisting = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies/$($PolicyId)" -tenantid $TenantFilter -AsApp $true if ($ExclusionType -eq 'add') { - $NewExclusions = [pscustomobject]@{ - conditions = [pscustomobject]@{ users = [pscustomobject]@{ - excludeUsers = @($CheckExististing.conditions.users.excludeUsers + $UserID) + if ($Groups) { + # Handle group exclusions + $Groupnames = $Groups.addedFields.displayName + $ExcludeGroups = [System.Collections.Generic.List[string]]::new() + foreach ($Group in $CheckExisting.conditions.users.excludeGroups) { + $ExcludeGroups.Add($Group) + } + foreach ($Group in $Groups.value) { + if ($Group -and $Group -ne '' -and $ExcludeGroups -notcontains $Group) { + $ExcludeGroups.Add($Group) + } + } + $NewExclusions = [pscustomobject]@{ + conditions = [pscustomobject]@{ users = [pscustomobject]@{ + excludeGroups = $ExcludeGroups + } + } + } + } elseif ($Users) { + $Username = $Users.addedFields.userPrincipalName + $ExcludeUsers = [System.Collections.Generic.List[string]]::new() + foreach ($User in $CheckExisting.conditions.users.excludeUsers) { + $ExcludeUsers.Add($User) + } + foreach ($User in $Users.value) { + if ($User -and $User -ne '' -and $ExcludeUsers -notcontains $User) { + $ExcludeUsers.Add($User) + } + } + $NewExclusions = [pscustomobject]@{ + conditions = [pscustomobject]@{ users = [pscustomobject]@{ + excludeUsers = $ExcludeUsers + } + } + } + } elseif ($UserID) { + if ($UserID -match '^[a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}$') { + $Username = (New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/users/$($UserID)" -tenantid $TenantFilter).userPrincipalName + } + $NewExclusions = [pscustomobject]@{ + conditions = [pscustomobject]@{ users = [pscustomobject]@{ + excludeUsers = @($CheckExisting.conditions.users.excludeUsers + $UserID) + } } } } + $RawJson = ConvertTo-Json -Depth 10 -InputObject $NewExclusions - if ($PSCmdlet.ShouldProcess($PolicyId, "Add exclusion for $UserID")) { - New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies/$($CheckExististing.id)" -tenantid $tenantfilter -type PATCH -body $RawJSON -AsApp $true + + if ($Groups) { + $Identifier = ($Groupnames -join ', ') + $IdentifierType = 'group' + } elseif ($Users) { + $Identifier = ($Username -join ', ') + $IdentifierType = 'user' + } else { + $Identifier = $UserID + $IdentifierType = 'user' + } + if ($PSCmdlet.ShouldProcess($PolicyId, "Add exclusion for $IdentifierType $Identifier")) { + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies/$($CheckExisting.id)" -tenantid $tenantfilter -type PATCH -body $RawJSON -AsApp $true } } if ($ExclusionType -eq 'remove') { - $NewExclusions = [pscustomobject]@{ - conditions = [pscustomobject]@{ users = [pscustomobject]@{ - excludeUsers = @($CheckExististing.conditions.users.excludeUsers | Where-Object { $_ -ne $UserID }) + if ($Groups) { + # Handle group exclusions removal + $GroupID = $Groups.value | Where-Object { $_ -and $_ -ne '' } + $Groupnames = $Groups.addedFields.displayName + $NewExclusions = [pscustomobject]@{ + conditions = [pscustomobject]@{ users = [pscustomobject]@{ + excludeGroups = @($CheckExisting.conditions.users.excludeGroups | Where-Object { $GroupID -notcontains $_ }) + } + } + } + } elseif ($Users) { + $UserID = $Users.value | Where-Object { $_ -and $_ -ne '' } + $Username = $Users.addedFields.userPrincipalName + $NewExclusions = [pscustomobject]@{ + conditions = [pscustomobject]@{ users = [pscustomobject]@{ + excludeUsers = @($CheckExisting.conditions.users.excludeUsers | Where-Object { $UserID -notcontains $_ }) + } + } + } + } else { + if ($UserID -match '^[a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}$') { + $Username = (New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/users/$($UserID)" -tenantid $TenantFilter).userPrincipalName + } + $UserID = @($UserID) + $NewExclusions = [pscustomobject]@{ + conditions = [pscustomobject]@{ users = [pscustomobject]@{ + excludeUsers = @($CheckExisting.conditions.users.excludeUsers | Where-Object { $UserID -notcontains $_ }) + } } } } $RawJson = ConvertTo-Json -Depth 10 -InputObject $NewExclusions - if ($PSCmdlet.ShouldProcess($PolicyId, "Remove exclusion for $UserID")) { - New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies/$($CheckExististing.id)" -tenantid $tenantfilter -type PATCH -body $RawJSON -AsApp $true + + if ($Groups) { + $Identifier = ($Groupnames -join ', ') + $IdentifierType = 'group' + } elseif ($Users) { + $Identifier = ($Username -join ', ') + $IdentifierType = 'user' + } else { + $Identifier = $UserID + $IdentifierType = 'user' + } + if ($PSCmdlet.ShouldProcess($PolicyId, "Remove exclusion for $IdentifierType $Identifier")) { + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies/$($CheckExisting.id)" -tenantid $tenantfilter -type PATCH -body $RawJSON -AsApp $true + } + } + + if ($Groups) { + foreach ($Group in $Groupnames) { + "Successfully performed $($ExclusionType) exclusion for group $Group from policy $($CheckExisting.displayName)" + Write-LogMessage -headers $Headers -API 'Set-CIPPCAExclusion' -message "Successfully performed $($ExclusionType) exclusion for group $Group from policy $($CheckExisting.displayName)" -Sev 'Info' -tenant $TenantFilter + } + } else { + foreach ($User in $Username) { + "Successfully performed $($ExclusionType) exclusion for $User from policy $($CheckExisting.displayName)" + Write-LogMessage -headers $Headers -API 'Set-CIPPCAExclusion' -message "Successfully performed $($ExclusionType) exclusion for $User from policy $($CheckExisting.displayName)" -Sev 'Info' -tenant $TenantFilter } } - "Successfully performed $($ExclusionType) exclusion for $username from policy $($PolicyId)" - Write-LogMessage -headers $Headers -API 'Set-CIPPConditionalAccessExclusion' -message "Successfully performed $($ExclusionType) exclusion for $username from policy $($PolicyId)" -Sev 'Info' -tenant $TenantFilter } catch { - "Failed to $($ExclusionType) user exclusion for $username from policy $($PolicyId): $($_.Exception.Message)" - Write-LogMessage -headers $Headers -API 'Set-CIPPConditionalAccessExclusion' -message "Failed to $($ExclusionType) user exclusion for $username from policy $($PolicyId): $_" -Sev 'Error' -tenant $TenantFilter -LogData (Get-CippException -Exception $_) + if ($Groups) { + foreach ($Group in $Groupnames) { + "Failed to $($ExclusionType) group exclusion for $Group from policy $($CheckExisting.displayName): $($_.Exception.Message)" + Write-LogMessage -headers $Headers -API 'Set-CIPPCAExclusion' -message "Failed to $($ExclusionType) group exclusion for $Group from policy $($CheckExisting.displayName): $_" -Sev 'Error' -tenant $TenantFilter -LogData (Get-CippException -Exception $_) + } + } else { + foreach ($User in $Username) { + "Failed to $($ExclusionType) user exclusion for $User from policy $($CheckExisting.displayName): $($_.Exception.Message)" + Write-LogMessage -headers $Headers -API 'Set-CIPPCAExclusion' -message "Failed to $($ExclusionType) user exclusion for $User from policy $($CheckExisting.displayName): $_" -Sev 'Error' -tenant $TenantFilter -LogData (Get-CippException -Exception $_) + } + } } } + diff --git a/Modules/CIPPCore/Public/Set-CIPPCAPolicyServiceException.ps1 b/Modules/CIPPCore/Public/Set-CIPPCAPolicyServiceException.ps1 new file mode 100644 index 000000000000..51ca8ee0289b --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPCAPolicyServiceException.ps1 @@ -0,0 +1,86 @@ +function Set-CIPPCAPolicyServiceException { + [CmdletBinding(SupportsShouldProcess = $true)] + param( + $TenantFilter, + $PolicyId + ) + + $CSPtenantId = $env:TenantID + + # Get the current policy + $policy = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies/$($PolicyId)" -tenantid $TenantFilter -AsApp $true + + # If the policy is set to affect either all or all guests/external users + if ($policy.conditions.users.includeUsers -eq 'All' -or $policy.conditions.users.includeGuestsOrExternalUsers.externalTenants.membershipKind -eq 'all') { + + # Check if the policy already has the correct service provider exception + if ($policy.conditions.users.excludeGuestsOrExternalUsers) { + $excludeConfig = $policy.conditions.users.excludeGuestsOrExternalUsers + + # Check if serviceProvider is already in guestOrExternalUserTypes + $hasServiceProvider = $excludeConfig.guestOrExternalUserTypes -match 'serviceProvider' + + # Check if externalTenants is properly configured + if ($excludeConfig.externalTenants) { + $externalTenants = $excludeConfig.externalTenants + $hasCorrectExternalTenants = ($externalTenants.membershipKind -eq 'enumerated' -and + $externalTenants.members -contains $CSPtenantId) + + # If already configured, exit without making changes + if ($hasServiceProvider -and $hasCorrectExternalTenants) { + return "Policy $PolicyId already has the correct service provider configuration. No changes needed." + } + } + } + + # If excludeGuestsOrExternalUsers is empty, add the entire exclusion + if (!($policy.conditions.users.excludeGuestsOrExternalUsers)) { + + # Define data + $excludeServiceProviderData = [pscustomobject]@{ + guestOrExternalUserTypes = 'serviceProvider' + externalTenants = [pscustomobject]@{ + '@odata.type' = '#microsoft.graph.conditionalAccessEnumeratedExternalTenants' + membershipKind = 'enumerated' + members = @( + $CSPtenantId + ) + } + } + + # Add data to cached policy + $policy.conditions.users.excludeGuestsOrExternalUsers = $excludeServiceProviderData + } + + # If excludeGuestsOrExternalUsers already has content correct it to match $excludeServiceProviderData + if ($policy.conditions.users.excludeGuestsOrExternalUsers) { + + # If guestOrExternalUserTypes doesn't include type serviceProvider add it + if ($policy.conditions.users.excludeGuestsOrExternalUsers.guestOrExternalUserTypes -notmatch 'serviceProvider') { + $policy.conditions.users.excludeGuestsOrExternalUsers.guestOrExternalUserTypes += ',serviceProvider' + } + + # If guestOrExternalUserTypes includes type serviceProvider and membershipKind is not all tenants + if ($policy.conditions.users.excludeGuestsOrExternalUsers.guestOrExternalUserTypes -match 'serviceProvider' -and $policy.conditions.users.excludeGuestsOrExternalUsers.externalTenants.membershipKind -ne 'all') { + + # If membershipKind is enumerated and members does not include our tenant add it + if ($policy.conditions.users.excludeGuestsOrExternalUsers.externalTenants.membershipKind -eq 'enumerated' -and $policy.conditions.users.excludeGuestsOrExternalUsers.externalTenants.members -notmatch $CSPtenantId) { + $policy.conditions.users.excludeGuestsOrExternalUsers.externalTenants.members += $($CSPtenantId) + } + } + } + $Json = $policy | Select-Object * -ExcludeProperty TemplateId, createdDateTime, modifiedDateTime | ConvertTo-Json -Depth 20 + + Write-Information 'Updated policy JSON:' + Write-Information $Json + + # Patch policy with updated data. + # TemplateId,createdDateTime,modifiedDateTime can't be written back so exclude them using -ExcludeProperty + if ($PSCmdlet.ShouldProcess($PolicyId, 'Update policy with service provider exception')) { + $patch = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies/$($policy.id)" -tenantid $TenantFilter -type PATCH -body ($policy | Select-Object * -ExcludeProperty TemplateId, createdDateTime, modifiedDateTime | ConvertTo-Json -Depth 20) -AsApp $true + return "Successfully added service provider to policy $PolicyId" + } + } else { + return "Policy $PolicyId does not target all users or all guest/external users. No changes made." + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPCalendarPermission.ps1 b/Modules/CIPPCore/Public/Set-CIPPCalendarPermission.ps1 index 72abad183130..57d2c4695680 100644 --- a/Modules/CIPPCore/Public/Set-CIPPCalendarPermission.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPCalendarPermission.ps1 @@ -6,15 +6,15 @@ function Set-CIPPCalendarPermission { $RemoveAccess, $TenantFilter, $UserID, - $folderName, + $FolderName, $UserToGetPermissions, $LoggingName, $Permissions, - [bool]$CanViewPrivateItems + [bool]$CanViewPrivateItems, + [bool]$SendNotificationToUser = $false ) try { - # If a pretty logging name is not provided, use the ID instead if ([string]::IsNullOrWhiteSpace($LoggingName) -and $RemoveAccess) { $LoggingName = $RemoveAccess @@ -23,33 +23,37 @@ function Set-CIPPCalendarPermission { } $CalParam = [PSCustomObject]@{ - Identity = "$($UserID):\$folderName" - AccessRights = @($Permissions) - User = $UserToGetPermissions + Identity = "$($UserID):\$FolderName" + AccessRights = @($Permissions) + User = $UserToGetPermissions + SendNotificationToUser = $SendNotificationToUser } if ($CanViewPrivateItems) { $CalParam | Add-Member -NotePropertyName 'SharingPermissionFlags' -NotePropertyValue 'Delegate,CanViewPrivateItems' } - + if ($RemoveAccess) { - if ($PSCmdlet.ShouldProcess("$UserID\$folderName", "Remove permissions for $LoggingName")) { - $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Remove-MailboxFolderPermission' -cmdParams @{Identity = "$($UserID):\$folderName"; User = $RemoveAccess } + if ($PSCmdlet.ShouldProcess("$UserID\$FolderName", "Remove permissions for $LoggingName")) { + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Remove-MailboxFolderPermission' -cmdParams @{Identity = "$($UserID):\$FolderName"; User = $RemoveAccess } $Result = "Successfully removed access for $LoggingName from calendar $($CalParam.Identity)" Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Info } } else { - if ($PSCmdlet.ShouldProcess("$UserID\$folderName", "Set permissions for $LoggingName to $Permissions")) { + if ($PSCmdlet.ShouldProcess("$UserID\$FolderName", "Set permissions for $LoggingName to $Permissions")) { try { $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-MailboxFolderPermission' -cmdParams $CalParam -Anchor $UserID } catch { $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Add-MailboxFolderPermission' -cmdParams $CalParam -Anchor $UserID } - Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Successfully set Calendar permissions $Permissions for $LoggingName on $UserID." -sev Info $Result = "Successfully set permissions on folder $($CalParam.Identity). The user $LoggingName now has $Permissions permissions on this folder." if ($CanViewPrivateItems) { - $Result += " The user can also view private items." + $Result += ' The user can also view private items.' } + if ($SendNotificationToUser) { + $Result += ' A notification has been sent to the user.' + } + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Info } } } catch { diff --git a/Modules/CIPPCore/Public/Set-CIPPCloudManaged.ps1 b/Modules/CIPPCore/Public/Set-CIPPCloudManaged.ps1 new file mode 100644 index 000000000000..4042bed25611 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPCloudManaged.ps1 @@ -0,0 +1,34 @@ +function Set-CIPPCloudManaged( + [string]$TenantFilter, + [string]$Id, + [string]$DisplayName, + [ValidateSet('User', 'Group', 'Contact')] + [string]$Type, + [bool]$IsCloudManaged, + [string]$APIName = 'Set Cloud Managed', + $Headers +) { + try { + $statusText = if ($IsCloudManaged -eq $true) { 'cloud-managed' } else { 'on-premises managed' } + + $URI = switch ($Type) { + 'User' { "https://graph.microsoft.com/beta/users/$Id/onPremisesSyncBehavior" } + 'Group' { "https://graph.microsoft.com/beta/groups/$Id/onPremisesSyncBehavior" } + 'Contact' { "https://graph.microsoft.com/beta/contacts/$Id/onPremisesSyncBehavior" } + } + + $Body = @{ + isCloudManaged = $IsCloudManaged + } | ConvertTo-Json -Depth 10 + + $null = New-GraphPOSTRequest -uri $URI -type PATCH -tenantid $TenantFilter -body $Body -AsApp $true + $Message = "Successfully set $Type $DisplayName ($Id) source of authority to $statusText" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Message -Sev 'Info' + return $Message + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to set $Type $DisplayName ($Id) source of authority to ${statusText}: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Message -Sev 'Error' -LogData $ErrorMessage + throw $Message + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPContactPermission.ps1 b/Modules/CIPPCore/Public/Set-CIPPContactPermission.ps1 new file mode 100644 index 000000000000..ae61cc3b3458 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPContactPermission.ps1 @@ -0,0 +1,64 @@ +function Set-CIPPContactPermission { + [CmdletBinding(SupportsShouldProcess = $true)] + param( + $APIName = 'Set Contact Permissions', + $Headers, + $RemoveAccess, + $TenantFilter, + $UserID, + $FolderName, + $UserToGetPermissions, + $LoggingName, + $Permissions, + [bool]$SendNotificationToUser = $false + ) + + try { + # If a pretty logging name is not provided, use the ID instead + if ([string]::IsNullOrWhiteSpace($LoggingName) -and $RemoveAccess) { + $LoggingName = $RemoveAccess + } elseif ([string]::IsNullOrWhiteSpace($LoggingName) -and $UserToGetPermissions) { + $LoggingName = $UserToGetPermissions + } + + $ContactParam = [PSCustomObject]@{ + Identity = "$($UserID):\$FolderName" + AccessRights = @($Permissions) + User = $UserToGetPermissions + SendNotificationToUser = $SendNotificationToUser + } + + if ($RemoveAccess) { + if ($PSCmdlet.ShouldProcess("$UserID\$FolderName", "Remove permissions for $LoggingName")) { + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Remove-MailboxFolderPermission' -cmdParams @{Identity = "$($UserID):\$FolderName"; User = $RemoveAccess } + $Result = "Successfully removed access for $LoggingName from contact folder $($ContactParam.Identity)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Info + } + } else { + if ($PSCmdlet.ShouldProcess("$UserID\$FolderName", "Set permissions for $LoggingName to $Permissions")) { + try { + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-MailboxFolderPermission' -cmdParams $ContactParam -Anchor $UserID + } catch { + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Add-MailboxFolderPermission' -cmdParams $ContactParam -Anchor $UserID + } + + $Result = "Successfully set permissions on contact folder $($ContactParam.Identity). The user $LoggingName now has $Permissions permissions on this folder." + + if ($SendNotificationToUser) { + $Result += ' A notification has been sent to the user.' + } + + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Info + } + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-Warning "Error changing contact permissions $($_.Exception.Message)" + Write-Information $_.InvocationInfo.PositionMessage + $Result = "Failed to set contact permissions for $LoggingName on $UserID : $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Error -LogData $ErrorMessage + throw $Result + } + + return $Result +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheAdminConsentRequestPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheAdminConsentRequestPolicy.ps1 new file mode 100644 index 000000000000..945d69f854cd --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheAdminConsentRequestPolicy.ps1 @@ -0,0 +1,27 @@ +function Set-CIPPDBCacheAdminConsentRequestPolicy { + <# + .SYNOPSIS + Caches admin consent request policy and settings for a tenant + + .PARAMETER TenantFilter + The tenant to cache consent policy for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching admin consent request policy' -sev Debug + $ConsentPolicy = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/adminConsentRequestPolicy' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'AdminConsentRequestPolicy' -Data @($ConsentPolicy) + $ConsentPolicy = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached admin consent request policy successfully' -sev Debug + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache admin consent request policy: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheAppRoleAssignments.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheAppRoleAssignments.ps1 new file mode 100644 index 000000000000..3ba077a2cdeb --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheAppRoleAssignments.ps1 @@ -0,0 +1,47 @@ +function Set-CIPPDBCacheAppRoleAssignments { + <# + .SYNOPSIS + Caches application role assignments for a tenant + + .PARAMETER TenantFilter + The tenant to cache app role assignments for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching app role assignments' -sev Debug + + # Get all service principals first + $ServicePrincipals = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/servicePrincipals?$select=id,appId,displayName&$top=999&expand=appRoleAssignments' -tenantid $TenantFilter + + $AllAppRoleAssignments = [System.Collections.Generic.List[object]]::new() + + foreach ($SP in $ServicePrincipals) { + try { + $AppRoleAssignments = $SP.appRoleAssignments + foreach ($Assignment in $AppRoleAssignments) { + # Enrich with service principal info + $Assignment | Add-Member -NotePropertyName 'servicePrincipalDisplayName' -NotePropertyValue $SP.displayName -Force + $Assignment | Add-Member -NotePropertyName 'servicePrincipalAppId' -NotePropertyValue $SP.appId -Force + $AllAppRoleAssignments.Add($Assignment) + } + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to get app role assignments for $($SP.displayName): $($_.Exception.Message)" -sev Warning + } + } + + if ($AllAppRoleAssignments.Count -gt 0) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'AppRoleAssignments' -Data $AllAppRoleAssignments + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'AppRoleAssignments' -Data $AllAppRoleAssignments -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($AllAppRoleAssignments.Count) app role assignments" -sev Debug + } + $AllAppRoleAssignments = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache app role assignments: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheApps.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheApps.ps1 new file mode 100644 index 000000000000..a0f1c667be2f --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheApps.ps1 @@ -0,0 +1,30 @@ +function Set-CIPPDBCacheApps { + <# + .SYNOPSIS + Caches all application registrations for a tenant + + .PARAMETER TenantFilter + The tenant to cache applications for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching applications' -sev Debug + + $Apps = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/applications?$top=999&expand=owners' -tenantid $TenantFilter + if (!$Apps) { $Apps = @() } + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Apps' -Data $Apps + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Apps' -Data $Apps -Count + $Apps = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached applications successfully' -sev Debug + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache applications: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheAuthenticationFlowsPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheAuthenticationFlowsPolicy.ps1 new file mode 100644 index 000000000000..7b75a2b23eaa --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheAuthenticationFlowsPolicy.ps1 @@ -0,0 +1,31 @@ +function Set-CIPPDBCacheAuthenticationFlowsPolicy { + <# + .SYNOPSIS + Caches authentication flows policy for a tenant + + .PARAMETER TenantFilter + The tenant to cache authentication flows policy for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching authentication flows policy' -sev Debug + + $AuthFlowPolicy = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/authenticationFlowsPolicy' -tenantid $TenantFilter -AsApp $true + + if ($AuthFlowPolicy) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'AuthenticationFlowsPolicy' -Data @($AuthFlowPolicy) + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached authentication flows policy successfully' -sev Debug + } + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache authentication flows policy: $($_.Exception.Message)" ` + -sev Warning ` + -LogData (Get-CippException -Exception $_) + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheAuthenticationMethodsPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheAuthenticationMethodsPolicy.ps1 new file mode 100644 index 000000000000..98ea20dd05d7 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheAuthenticationMethodsPolicy.ps1 @@ -0,0 +1,26 @@ +function Set-CIPPDBCacheAuthenticationMethodsPolicy { + <# + .SYNOPSIS + Caches authentication methods policy for a tenant + + .PARAMETER TenantFilter + The tenant to cache authentication methods policy for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching authentication methods policy' -sev Debug + $AuthMethodsPolicy = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'AuthenticationMethodsPolicy' -Data @($AuthMethodsPolicy) + $AuthMethodsPolicy = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached authentication methods policy successfully' -sev Debug + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache authentication methods policy: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheAuthorizationPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheAuthorizationPolicy.ps1 new file mode 100644 index 000000000000..ca6c92bfe624 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheAuthorizationPolicy.ps1 @@ -0,0 +1,26 @@ +function Set-CIPPDBCacheAuthorizationPolicy { + <# + .SYNOPSIS + Caches authorization policy for a tenant + + .PARAMETER TenantFilter + The tenant to cache authorization policy for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching authorization policy' -sev Debug + $AuthPolicy = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/authorizationPolicy' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'AuthorizationPolicy' -Data @($AuthPolicy) + $AuthPolicy = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached authorization policy successfully' -sev Debug + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache authorization policy: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheB2BManagementPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheB2BManagementPolicy.ps1 new file mode 100644 index 000000000000..f00d7d4c8fc0 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheB2BManagementPolicy.ps1 @@ -0,0 +1,31 @@ +function Set-CIPPDBCacheB2BManagementPolicy { + <# + .SYNOPSIS + Caches B2B management policy for a tenant + + .PARAMETER TenantFilter + The tenant to cache B2B management policy for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching B2B management policy' -sev Debug + + $LegacyPolicies = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/b2bManagementPolicies' -tenantid $TenantFilter + $B2BManagementPolicy = $LegacyPolicies + + if ($B2BManagementPolicy) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'B2BManagementPolicy' -Data @($B2BManagementPolicy) + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached B2B management policy successfully' -sev Debug + } else { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'No B2B management policy found' -sev Debug + } + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache B2B management policy: $($_.Exception.Message)" -sev Warning -LogData (Get-CippException -Exception $_) + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheCASMailboxes.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheCASMailboxes.ps1 new file mode 100644 index 000000000000..02c12125f6e4 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheCASMailboxes.ps1 @@ -0,0 +1,27 @@ +function Set-CIPPDBCacheCASMailboxes { + <# + .SYNOPSIS + Caches all CAS mailboxes for a tenant + + .PARAMETER TenantFilter + The tenant to cache CAS mailboxes for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching CAS mailboxes' -sev Debug + + # Stream CAS mailboxes directly to batch processor + New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-CasMailbox' | + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'CASMailbox' -AddCount + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached CAS mailboxes successfully' -sev Debug + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache CAS mailboxes: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheConditionalAccessPolicies.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheConditionalAccessPolicies.ps1 new file mode 100644 index 000000000000..729644ed5d40 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheConditionalAccessPolicies.ps1 @@ -0,0 +1,68 @@ +function Set-CIPPDBCacheConditionalAccessPolicies { + <# + .SYNOPSIS + Caches all Conditional Access policies, named locations, and authentication strengths for a tenant (if CA capable) + + .PARAMETER TenantFilter + The tenant to cache CA policies for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + $TestResult = Test-CIPPStandardLicense -StandardName 'ConditionalAccessCache' -TenantFilter $TenantFilter -RequiredCapabilities @('AAD_PREMIUM', 'AAD_PREMIUM_P2') -SkipLog + + if ($TestResult -eq $false) { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Tenant does not have Azure AD Premium license, skipping CA' -sev Debug + return + } + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Conditional Access policies' -sev Debug + + try { + $CAPolicies = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/policies?$top=999' -tenantid $TenantFilter + if ($CAPolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ConditionalAccessPolicies' -Data $CAPolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ConditionalAccessPolicies' -Data $CAPolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($CAPolicies.Count) CA policies" -sev Debug + } + $CAPolicies = $null + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache CA policies: $($_.Exception.Message)" -sev Warning + } + + try { + $NamedLocations = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations?$top=999' -tenantid $TenantFilter + + if ($NamedLocations) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'NamedLocations' -Data $NamedLocations + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'NamedLocations' -Data $NamedLocations -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($NamedLocations.Count) named locations" -sev Debug + } + $NamedLocations = $null + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache named locations: $($_.Exception.Message)" -sev Warning + } + + try { + $AuthStrengths = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/authenticationStrength/policies' -tenantid $TenantFilter + + if ($AuthStrengths) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'AuthenticationStrengths' -Data $AuthStrengths + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'AuthenticationStrengths' -Data $AuthStrengths -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($AuthStrengths.Count) authentication strengths" -sev Debug + } + $AuthStrengths = $null + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache authentication strengths: $($_.Exception.Message)" -sev Warning + } + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached CA data successfully' -sev Debug + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Conditional Access data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheCredentialUserRegistrationDetails.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheCredentialUserRegistrationDetails.ps1 new file mode 100644 index 000000000000..888c398ffea3 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheCredentialUserRegistrationDetails.ps1 @@ -0,0 +1,30 @@ +function Set-CIPPDBCacheCredentialUserRegistrationDetails { + <# + .SYNOPSIS + Caches MFA and SSPR registration details for all users in a tenant + + .PARAMETER TenantFilter + The tenant to cache credential user registration details for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching credential user registration details' -sev Debug + + $CredentialUserRegistrationDetails = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/reports/credentialUserRegistrationDetails' -tenantid $TenantFilter + + if ($CredentialUserRegistrationDetails) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'CredentialUserRegistrationDetails' -Data $CredentialUserRegistrationDetails + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'CredentialUserRegistrationDetails' -Data $CredentialUserRegistrationDetails -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($CredentialUserRegistrationDetails.Count) credential user registration details" -sev Debug + } + $CredentialUserRegistrationDetails = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache credential user registration details: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheCrossTenantAccessPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheCrossTenantAccessPolicy.ps1 new file mode 100644 index 000000000000..cc4203420b96 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheCrossTenantAccessPolicy.ps1 @@ -0,0 +1,26 @@ +function Set-CIPPDBCacheCrossTenantAccessPolicy { + <# + .SYNOPSIS + Caches cross-tenant access policy for a tenant + + .PARAMETER TenantFilter + The tenant to cache policy for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching cross-tenant access policy' -sev Debug + $CrossTenantPolicy = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/crossTenantAccessPolicy/default' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'CrossTenantAccessPolicy' -Data @($CrossTenantPolicy) + $CrossTenantPolicy = $null + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached cross-tenant access policy successfully' -sev Debug + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache cross-tenant access policy: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheDefaultAppManagementPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheDefaultAppManagementPolicy.ps1 new file mode 100644 index 000000000000..c053f36435a4 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheDefaultAppManagementPolicy.ps1 @@ -0,0 +1,26 @@ +function Set-CIPPDBCacheDefaultAppManagementPolicy { + <# + .SYNOPSIS + Caches default app management policy for a tenant + + .PARAMETER TenantFilter + The tenant to cache policy for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching default app management policy' -sev Debug + $AppMgmtPolicy = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/defaultAppManagementPolicy' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'DefaultAppManagementPolicy' -Data @($AppMgmtPolicy) + $AppMgmtPolicy = $null + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached default app management policy successfully' -sev Debug + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache default app management policy: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheDeviceRegistrationPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheDeviceRegistrationPolicy.ps1 new file mode 100644 index 000000000000..3a9eada7c7a6 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheDeviceRegistrationPolicy.ps1 @@ -0,0 +1,31 @@ +function Set-CIPPDBCacheDeviceRegistrationPolicy { + <# + .SYNOPSIS + Caches device registration policy for a tenant + + .PARAMETER TenantFilter + The tenant to cache device registration policy for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching device registration policy' -sev Debug + + $DeviceRegistrationPolicy = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/deviceRegistrationPolicy' -tenantid $TenantFilter + + if ($DeviceRegistrationPolicy) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'DeviceRegistrationPolicy' -Data @($DeviceRegistrationPolicy) + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached device registration policy successfully' -sev Debug + } + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache device registration policy: $($_.Exception.Message)" ` + -sev Warning ` + -LogData (Get-CippException -Exception $_) + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheDeviceSettings.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheDeviceSettings.ps1 new file mode 100644 index 000000000000..7845f72ffa8a --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheDeviceSettings.ps1 @@ -0,0 +1,28 @@ +function Set-CIPPDBCacheDeviceSettings { + <# + .SYNOPSIS + Caches device settings for a tenant + + .PARAMETER TenantFilter + The tenant to cache device settings for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching device settings' -sev Debug + + $DeviceSettings = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/directory/deviceLocalCredentials' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'DeviceSettings' -Data @($DeviceSettings) + $DeviceSettings = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached device settings successfully' -sev Debug + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache device settings: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheDevices.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheDevices.ps1 new file mode 100644 index 000000000000..63996ee51294 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheDevices.ps1 @@ -0,0 +1,29 @@ +function Set-CIPPDBCacheDevices { + <# + .SYNOPSIS + Caches all Azure AD devices for a tenant + + .PARAMETER TenantFilter + The tenant to cache devices for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Azure AD devices' -sev Debug + + $Devices = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/devices?$top=999&$select=id,displayName,operatingSystem,operatingSystemVersion,trustType,accountEnabled,approximateLastSignInDateTime' -tenantid $TenantFilter + if (!$Devices) { $Devices = @() } + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Devices' -Data $Devices + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Devices' -Data $Devices -Count + $Devices = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached Azure AD devices successfully' -sev Debug + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Azure AD devices: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheDirectoryRecommendations.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheDirectoryRecommendations.ps1 new file mode 100644 index 000000000000..616c7ab82503 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheDirectoryRecommendations.ps1 @@ -0,0 +1,28 @@ +function Set-CIPPDBCacheDirectoryRecommendations { + <# + .SYNOPSIS + Caches directory recommendations for a tenant + + .PARAMETER TenantFilter + The tenant to cache recommendations for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching directory recommendations' -sev Debug + + $Recommendations = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/directory/recommendations?$top=999' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'DirectoryRecommendations' -Data $Recommendations + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'DirectoryRecommendations' -Data $Recommendations -Count + $Recommendations = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached directory recommendations successfully' -sev Debug + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache directory recommendations: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheDomains.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheDomains.ps1 new file mode 100644 index 000000000000..b546382b3103 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheDomains.ps1 @@ -0,0 +1,26 @@ +function Set-CIPPDBCacheDomains { + <# + .SYNOPSIS + Caches domains for a tenant + + .PARAMETER TenantFilter + The tenant to cache domains for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching domains' -sev Debug + $Domains = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/domains' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Domains' -Data @($Domains) + $Domains = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached domains successfully' -sev Debug + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache domains: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAcceptedDomains.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAcceptedDomains.ps1 new file mode 100644 index 000000000000..cbe7bd854481 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAcceptedDomains.ps1 @@ -0,0 +1,30 @@ +function Set-CIPPDBCacheExoAcceptedDomains { + <# + .SYNOPSIS + Caches Exchange Online Accepted Domains + + .PARAMETER TenantFilter + The tenant to cache accepted domains for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Accepted Domains' -sev Debug + + $AcceptedDomains = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-AcceptedDomain' + + if ($AcceptedDomains) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoAcceptedDomains' -Data $AcceptedDomains + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoAcceptedDomains' -Data $AcceptedDomains -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($AcceptedDomains.Count) Accepted Domains" -sev Debug + } + $AcceptedDomains = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Accepted Domains: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAdminAuditLogConfig.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAdminAuditLogConfig.ps1 new file mode 100644 index 000000000000..892e471647fe --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAdminAuditLogConfig.ps1 @@ -0,0 +1,32 @@ +function Set-CIPPDBCacheExoAdminAuditLogConfig { + <# + .SYNOPSIS + Caches Exchange Online Admin Audit Log Configuration + + .PARAMETER TenantFilter + The tenant to cache admin audit log config for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Admin Audit Log configuration' -sev Debug + + $AuditConfig = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-AdminAuditLogConfig' + + if ($AuditConfig) { + # AdminAuditLogConfig returns a single object, wrap in array for consistency + $AuditConfigArray = @($AuditConfig) + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoAdminAuditLogConfig' -Data $AuditConfigArray + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoAdminAuditLogConfig' -Data $AuditConfigArray -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached Exchange Admin Audit Log configuration' -sev Debug + } + $AuditConfig = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Admin Audit Log configuration: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAntiPhishPolicies.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAntiPhishPolicies.ps1 new file mode 100644 index 000000000000..98a525d1f0a0 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAntiPhishPolicies.ps1 @@ -0,0 +1,39 @@ +function Set-CIPPDBCacheExoAntiPhishPolicies { + <# + .SYNOPSIS + Caches Exchange Online Anti-Phishing policies and rules + + .PARAMETER TenantFilter + The tenant to cache Anti-Phishing data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Anti-Phishing policies and rules' -sev Debug + + # Get Anti-Phishing policies + $AntiPhishPolicies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-AntiPhishPolicy' + if ($AntiPhishPolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoAntiPhishPolicies' -Data $AntiPhishPolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoAntiPhishPolicies' -Data $AntiPhishPolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($AntiPhishPolicies.Count) Anti-Phishing policies" -sev Debug + } + $AntiPhishPolicies = $null + + # Get Anti-Phishing rules + $AntiPhishRules = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-AntiPhishRule' + if ($AntiPhishRules) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoAntiPhishRules' -Data $AntiPhishRules + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoAntiPhishRules' -Data $AntiPhishRules -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($AntiPhishRules.Count) Anti-Phishing rules" -sev Debug + } + $AntiPhishRules = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Anti-Phishing data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAntiPhishPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAntiPhishPolicy.ps1 new file mode 100644 index 000000000000..b65b084e9ae1 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAntiPhishPolicy.ps1 @@ -0,0 +1,29 @@ +function Set-CIPPDBCacheExoAntiPhishPolicy { + <# + .SYNOPSIS + Caches Exchange Online Anti-Phish policies (detailed) + + .PARAMETER TenantFilter + The tenant to cache Anti-Phish policy data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Anti-Phish policies (detailed)' -sev Debug + + $AntiPhishPolicies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-AntiPhishPolicy' + if ($AntiPhishPolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoAntiPhishPolicy' -Data $AntiPhishPolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoAntiPhishPolicy' -Data $AntiPhishPolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($AntiPhishPolicies.Count) Anti-Phish policies (detailed)" -sev Debug + } + $AntiPhishPolicies = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Anti-Phish policy data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAtpPolicyForO365.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAtpPolicyForO365.ps1 new file mode 100644 index 000000000000..ee0b2203fa0b --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAtpPolicyForO365.ps1 @@ -0,0 +1,29 @@ +function Set-CIPPDBCacheExoAtpPolicyForO365 { + <# + .SYNOPSIS + Caches Exchange Online ATP policies for Office 365 + + .PARAMETER TenantFilter + The tenant to cache ATP policy data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange ATP policies for Office 365' -sev Debug + + $AtpPolicies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-AtpPolicyForO365' + if ($AtpPolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoAtpPolicyForO365' -Data $AtpPolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoAtpPolicyForO365' -Data $AtpPolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($AtpPolicies.Count) ATP policies for Office 365" -sev Debug + } + $AtpPolicies = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache ATP policy data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoDkimSigningConfig.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoDkimSigningConfig.ps1 new file mode 100644 index 000000000000..fb72c35dec68 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoDkimSigningConfig.ps1 @@ -0,0 +1,30 @@ +function Set-CIPPDBCacheExoDkimSigningConfig { + <# + .SYNOPSIS + Caches Exchange Online DKIM signing configuration + + .PARAMETER TenantFilter + The tenant to cache DKIM configuration for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange DKIM signing configuration' -sev Debug + + $DkimConfig = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-DkimSigningConfig' + + if ($DkimConfig) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoDkimSigningConfig' -Data $DkimConfig + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoDkimSigningConfig' -Data $DkimConfig -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($DkimConfig.Count) DKIM configurations" -sev Debug + } + $DkimConfig = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache DKIM configuration: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoHostedContentFilterPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoHostedContentFilterPolicy.ps1 new file mode 100644 index 000000000000..b6bb5fd5c571 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoHostedContentFilterPolicy.ps1 @@ -0,0 +1,28 @@ +function Set-CIPPDBCacheExoHostedContentFilterPolicy { + <# + .SYNOPSIS + Caches Exchange Online Hosted Content Filter policies + + .PARAMETER TenantFilter + The tenant to cache Hosted Content Filter data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Hosted Content Filter policies' -sev Debug + $HostedContentFilterPolicies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-HostedContentFilterPolicy' + if ($HostedContentFilterPolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoHostedContentFilterPolicy' -Data $HostedContentFilterPolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoHostedContentFilterPolicy' -Data $HostedContentFilterPolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($HostedContentFilterPolicies.Count) Hosted Content Filter policies" -sev Debug + } + $HostedContentFilterPolicies = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Hosted Content Filter data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoHostedOutboundSpamFilterPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoHostedOutboundSpamFilterPolicy.ps1 new file mode 100644 index 000000000000..06201cd38b63 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoHostedOutboundSpamFilterPolicy.ps1 @@ -0,0 +1,29 @@ +function Set-CIPPDBCacheExoHostedOutboundSpamFilterPolicy { + <# + .SYNOPSIS + Caches Exchange Online Hosted Outbound Spam Filter policies + + .PARAMETER TenantFilter + The tenant to cache Hosted Outbound Spam Filter data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Hosted Outbound Spam Filter policies' -sev Debug + + $HostedOutboundSpamFilterPolicies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-HostedOutboundSpamFilterPolicy' + if ($HostedOutboundSpamFilterPolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoHostedOutboundSpamFilterPolicy' -Data $HostedOutboundSpamFilterPolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoHostedOutboundSpamFilterPolicy' -Data $HostedOutboundSpamFilterPolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($HostedOutboundSpamFilterPolicies.Count) Hosted Outbound Spam Filter policies" -sev Debug + } + $HostedOutboundSpamFilterPolicies = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Hosted Outbound Spam Filter data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoMalwareFilterPolicies.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoMalwareFilterPolicies.ps1 new file mode 100644 index 000000000000..f50d64d610b8 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoMalwareFilterPolicies.ps1 @@ -0,0 +1,39 @@ +function Set-CIPPDBCacheExoMalwareFilterPolicies { + <# + .SYNOPSIS + Caches Exchange Online Malware Filter policies and rules + + .PARAMETER TenantFilter + The tenant to cache Malware Filter data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Malware Filter policies and rules' -sev Debug + + # Get Malware Filter policies + $MalwarePolicies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-MalwareFilterPolicy' + if ($MalwarePolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoMalwareFilterPolicies' -Data $MalwarePolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoMalwareFilterPolicies' -Data $MalwarePolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($MalwarePolicies.Count) Malware Filter policies" -sev Debug + } + $MalwarePolicies = $null + + # Get Malware Filter rules + $MalwareRules = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-MalwareFilterRule' + if ($MalwareRules) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoMalwareFilterRules' -Data $MalwareRules + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoMalwareFilterRules' -Data $MalwareRules -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($MalwareRules.Count) Malware Filter rules" -sev Debug + } + $MalwareRules = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Malware Filter data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoMalwareFilterPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoMalwareFilterPolicy.ps1 new file mode 100644 index 000000000000..194501e09e9a --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoMalwareFilterPolicy.ps1 @@ -0,0 +1,29 @@ +function Set-CIPPDBCacheExoMalwareFilterPolicy { + <# + .SYNOPSIS + Caches Exchange Online Malware Filter policies (detailed) + + .PARAMETER TenantFilter + The tenant to cache Malware Filter policy data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Malware Filter policies (detailed)' -sev Debug + + $MalwareFilterPolicies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-MalwareFilterPolicy' + if ($MalwareFilterPolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoMalwareFilterPolicy' -Data $MalwareFilterPolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoMalwareFilterPolicy' -Data $MalwareFilterPolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($MalwareFilterPolicies.Count) Malware Filter policies (detailed)" -sev Debug + } + $MalwareFilterPolicies = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Malware Filter policy data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoOrganizationConfig.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoOrganizationConfig.ps1 new file mode 100644 index 000000000000..6138bd21a3e3 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoOrganizationConfig.ps1 @@ -0,0 +1,32 @@ +function Set-CIPPDBCacheExoOrganizationConfig { + <# + .SYNOPSIS + Caches Exchange Online Organization Configuration + + .PARAMETER TenantFilter + The tenant to cache organization configuration for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Organization configuration' -sev Debug + + $OrgConfig = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-OrganizationConfig' + + if ($OrgConfig) { + # OrganizationConfig returns a single object, wrap in array for consistency + $OrgConfigArray = @($OrgConfig) + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoOrganizationConfig' -Data $OrgConfigArray + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoOrganizationConfig' -Data $OrgConfigArray -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached Exchange Organization configuration' -sev Debug + } + $OrgConfig = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Organization configuration: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoPresetSecurityPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoPresetSecurityPolicy.ps1 new file mode 100644 index 000000000000..a10092fba9ce --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoPresetSecurityPolicy.ps1 @@ -0,0 +1,42 @@ +function Set-CIPPDBCacheExoPresetSecurityPolicy { + <# + .SYNOPSIS + Caches Exchange Online Preset Security Policies (EOP and ATP Protection Policy Rules) + + .PARAMETER TenantFilter + The tenant to cache preset security policies for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Preset Security Policies' -sev Debug + + $EOPRules = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-EOPProtectionPolicyRule' + $ATPRules = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-ATPProtectionPolicyRule' + + # Combine both rule types into a single collection + $AllRules = @() + if ($EOPRules) { + $AllRules += $EOPRules + } + if ($ATPRules) { + $AllRules += $ATPRules + } + + if ($AllRules.Count -gt 0) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoPresetSecurityPolicy' -Data $AllRules + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoPresetSecurityPolicy' -Data $AllRules -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($AllRules.Count) Preset Security Policy rules" -sev Debug + } + $EOPRules = $null + $ATPRules = $null + $AllRules = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Preset Security Policies: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoQuarantinePolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoQuarantinePolicy.ps1 new file mode 100644 index 000000000000..2ef8bf63639a --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoQuarantinePolicy.ps1 @@ -0,0 +1,29 @@ +function Set-CIPPDBCacheExoQuarantinePolicy { + <# + .SYNOPSIS + Caches Exchange Online Quarantine policies + + .PARAMETER TenantFilter + The tenant to cache Quarantine policy data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Quarantine policies' -sev Debug + + $QuarantinePolicies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-QuarantinePolicy' + if ($QuarantinePolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoQuarantinePolicy' -Data $QuarantinePolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoQuarantinePolicy' -Data $QuarantinePolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($QuarantinePolicies.Count) Quarantine policies" -sev Debug + } + $QuarantinePolicies = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Quarantine policy data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoRemoteDomain.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoRemoteDomain.ps1 new file mode 100644 index 000000000000..692ba803c6de --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoRemoteDomain.ps1 @@ -0,0 +1,29 @@ +function Set-CIPPDBCacheExoRemoteDomain { + <# + .SYNOPSIS + Caches Exchange Online Remote Domains + + .PARAMETER TenantFilter + The tenant to cache Remote Domain data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Remote Domains' -sev Debug + + $RemoteDomains = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-RemoteDomain' + if ($RemoteDomains) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoRemoteDomain' -Data $RemoteDomains + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoRemoteDomain' -Data $RemoteDomains -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($RemoteDomains.Count) Remote Domains" -sev Debug + } + $RemoteDomains = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Remote Domain data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSafeAttachmentPolicies.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSafeAttachmentPolicies.ps1 new file mode 100644 index 000000000000..172e86887e66 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSafeAttachmentPolicies.ps1 @@ -0,0 +1,39 @@ +function Set-CIPPDBCacheExoSafeAttachmentPolicies { + <# + .SYNOPSIS + Caches Exchange Online Safe Attachment policies and rules + + .PARAMETER TenantFilter + The tenant to cache Safe Attachment data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Safe Attachment policies and rules' -sev Debug + + # Get Safe Attachment policies + $SafeAttachmentPolicies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-SafeAttachmentPolicy' + if ($SafeAttachmentPolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSafeAttachmentPolicies' -Data $SafeAttachmentPolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSafeAttachmentPolicies' -Data $SafeAttachmentPolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($SafeAttachmentPolicies.Count) Safe Attachment policies" -sev Debug + } + $SafeAttachmentPolicies = $null + + # Get Safe Attachment rules + $SafeAttachmentRules = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-SafeAttachmentRule' + if ($SafeAttachmentRules) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSafeAttachmentRules' -Data $SafeAttachmentRules + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSafeAttachmentRules' -Data $SafeAttachmentRules -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($SafeAttachmentRules.Count) Safe Attachment rules" -sev Debug + } + $SafeAttachmentRules = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Safe Attachment data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSafeAttachmentPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSafeAttachmentPolicy.ps1 new file mode 100644 index 000000000000..6ebe371e5291 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSafeAttachmentPolicy.ps1 @@ -0,0 +1,29 @@ +function Set-CIPPDBCacheExoSafeAttachmentPolicy { + <# + .SYNOPSIS + Caches Exchange Online Safe Attachment policies (detailed) + + .PARAMETER TenantFilter + The tenant to cache Safe Attachment policy data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Safe Attachment policies (detailed)' -sev Debug + + $SafeAttachmentPolicies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-SafeAttachmentPolicy' + if ($SafeAttachmentPolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSafeAttachmentPolicy' -Data $SafeAttachmentPolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSafeAttachmentPolicy' -Data $SafeAttachmentPolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($SafeAttachmentPolicies.Count) Safe Attachment policies (detailed)" -sev Debug + } + $SafeAttachmentPolicies = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Safe Attachment policy data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSafeLinksPolicies.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSafeLinksPolicies.ps1 new file mode 100644 index 000000000000..c06fb2f08971 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSafeLinksPolicies.ps1 @@ -0,0 +1,39 @@ +function Set-CIPPDBCacheExoSafeLinksPolicies { + <# + .SYNOPSIS + Caches Exchange Online Safe Links policies and rules + + .PARAMETER TenantFilter + The tenant to cache Safe Links data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Safe Links policies and rules' -sev Debug + + # Get Safe Links policies + $SafeLinksPolicies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-SafeLinksPolicy' + if ($SafeLinksPolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSafeLinksPolicies' -Data $SafeLinksPolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSafeLinksPolicies' -Data $SafeLinksPolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($SafeLinksPolicies.Count) Safe Links policies" -sev Debug + } + $SafeLinksPolicies = $null + + # Get Safe Links rules + $SafeLinksRules = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-SafeLinksRule' + if ($SafeLinksRules) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSafeLinksRules' -Data $SafeLinksRules + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSafeLinksRules' -Data $SafeLinksRules -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($SafeLinksRules.Count) Safe Links rules" -sev Debug + } + $SafeLinksRules = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Safe Links data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSafeLinksPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSafeLinksPolicy.ps1 new file mode 100644 index 000000000000..a3252b245bcd --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSafeLinksPolicy.ps1 @@ -0,0 +1,29 @@ +function Set-CIPPDBCacheExoSafeLinksPolicy { + <# + .SYNOPSIS + Caches Exchange Online Safe Links policies (detailed) + + .PARAMETER TenantFilter + The tenant to cache Safe Links policy data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Safe Links policies (detailed)' -sev Debug + + $SafeLinksPolicies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-SafeLinksPolicy' + if ($SafeLinksPolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSafeLinksPolicy' -Data $SafeLinksPolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSafeLinksPolicy' -Data $SafeLinksPolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($SafeLinksPolicies.Count) Safe Links policies (detailed)" -sev Debug + } + $SafeLinksPolicies = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Safe Links policy data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSharingPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSharingPolicy.ps1 new file mode 100644 index 000000000000..bd4c28da68f5 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSharingPolicy.ps1 @@ -0,0 +1,30 @@ +function Set-CIPPDBCacheExoSharingPolicy { + <# + .SYNOPSIS + Caches Exchange Online Sharing Policies + + .PARAMETER TenantFilter + The tenant to cache sharing policies for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Sharing Policies' -sev Debug + + $SharingPolicies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-SharingPolicy' + + if ($SharingPolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSharingPolicy' -Data $SharingPolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSharingPolicy' -Data $SharingPolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($SharingPolicies.Count) Sharing Policies" -sev Debug + } + $SharingPolicies = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Sharing Policies: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoTenantAllowBlockList.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoTenantAllowBlockList.ps1 new file mode 100644 index 000000000000..62b4385a5c8a --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoTenantAllowBlockList.ps1 @@ -0,0 +1,52 @@ +function Set-CIPPDBCacheExoTenantAllowBlockList { + <# + .SYNOPSIS + Caches Exchange Online Tenant Allow/Block List items + + .PARAMETER TenantFilter + The tenant to cache tenant allow/block list for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Tenant Allow/Block List items' -sev Debug + + $SenderItems = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-TenantAllowBlockListItems' -cmdParams @{ListType = 'Sender' } + $UrlItems = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-TenantAllowBlockListItems' -cmdParams @{ListType = 'Url' } + $FileHashItems = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-TenantAllowBlockListItems' -cmdParams @{ListType = 'FileHash' } + + # Combine all list types into a single collection + $AllItems = @() + if ($SenderItems) { + $AllItems += $SenderItems + } + if ($UrlItems) { + $AllItems += $UrlItems + } + if ($FileHashItems) { + $AllItems += $FileHashItems + } + + if ($AllItems.Count -gt 0) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoTenantAllowBlockList' -Data $AllItems + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoTenantAllowBlockList' -Data $AllItems -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($AllItems.Count) Tenant Allow/Block List items" -sev Debug + } else { + # Even if empty, store an empty array so test knows cache was populated + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoTenantAllowBlockList' -Data @() + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoTenantAllowBlockList' -Data @() -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached empty Tenant Allow/Block List' -sev Debug + } + $SenderItems = $null + $UrlItems = $null + $FileHashItems = $null + $AllItems = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Tenant Allow/Block List: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoTransportRules.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoTransportRules.ps1 new file mode 100644 index 000000000000..6f83273af842 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoTransportRules.ps1 @@ -0,0 +1,30 @@ +function Set-CIPPDBCacheExoTransportRules { + <# + .SYNOPSIS + Caches Exchange Online Transport Rules (Mail Flow Rules) + + .PARAMETER TenantFilter + The tenant to cache Transport Rules for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Transport Rules' -sev Debug + + $TransportRules = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-TransportRule' + + if ($TransportRules) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoTransportRules' -Data $TransportRules + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoTransportRules' -Data $TransportRules -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($TransportRules.Count) Transport Rules" -sev Debug + } + $TransportRules = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Transport Rules: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheGroups.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheGroups.ps1 new file mode 100644 index 000000000000..d3be98c3f17e --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheGroups.ps1 @@ -0,0 +1,58 @@ +function Set-CIPPDBCacheGroups { + <# + .SYNOPSIS + Caches all groups for a tenant + + .PARAMETER TenantFilter + The tenant to cache groups for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching groups' -sev Debug + + $Groups = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/groups?$top=999&$select=id,displayName,groupTypes,mail,mailEnabled,securityEnabled,membershipRule,onPremisesSyncEnabled' -tenantid $TenantFilter + + # Build bulk request for group members + $MemberRequests = $Groups | ForEach-Object { + if ($_.id) { + [PSCustomObject]@{ + id = $_.id + method = 'GET' + url = "/groups/$($_.id)/members?`$select=id,displayName,userPrincipalName" + } + } + } + + if ($MemberRequests) { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Fetching group members' -sev Debug + $MemberResults = New-GraphBulkRequest -Requests @($MemberRequests) -tenantid $TenantFilter + + # Add members to each group object + $GroupsWithMembers = foreach ($Group in $Groups) { + $Members = ($MemberResults | Where-Object { $_.id -eq $Group.id }).body.value + $Group | Add-Member -NotePropertyName 'members' -NotePropertyValue $Members -Force + $Group + } + + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Groups' -Data $GroupsWithMembers + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Groups' -Data $GroupsWithMembers -Count + $Groups = $null + $GroupsWithMembers = $null + } else { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Groups' -Data $Groups + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Groups' -Data $Groups -Count + $Groups = $null + } + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached groups with members successfully' -sev Debug + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache groups: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheGuests.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheGuests.ps1 new file mode 100644 index 000000000000..36abaabef11d --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheGuests.ps1 @@ -0,0 +1,29 @@ +function Set-CIPPDBCacheGuests { + <# + .SYNOPSIS + Caches all guest users for a tenant + + .PARAMETER TenantFilter + The tenant to cache guest users for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching guest users' -sev Debug + + $Guests = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$filter=userType eq 'Guest'&`$expand=sponsors&`$top=999" -tenantid $TenantFilter + if (!$Guests) { $Guests = @() } + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Guests' -Data $Guests + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Guests' -Data $Guests -Count + $Guests = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached guest users successfully' -sev Debug + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache guest users: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheIntuneAppProtectionPolicies.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheIntuneAppProtectionPolicies.ps1 new file mode 100644 index 000000000000..1906b3bcdfda --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheIntuneAppProtectionPolicies.ps1 @@ -0,0 +1,39 @@ +function Set-CIPPDBCacheIntuneAppProtectionPolicies { + <# + .SYNOPSIS + Caches Intune App Protection Policies + + .PARAMETER TenantFilter + The tenant to cache app protection policies for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Intune App Protection Policies' -sev Debug + + # iOS Managed App Protection Policies + $IosPolicies = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceAppManagement/iosManagedAppProtections?$expand=assignments' -tenantid $TenantFilter + if ($IosPolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'IntuneIosAppProtectionPolicies' -Data $IosPolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'IntuneIosAppProtectionPolicies' -Data $IosPolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($IosPolicies.Count) iOS app protection policies" -sev Debug + } + $IosPolicies = $null + + # Android Managed App Protection Policies + $AndroidPolicies = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceAppManagement/androidManagedAppProtections?$expand=assignments' -tenantid $TenantFilter + if ($AndroidPolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'IntuneAndroidAppProtectionPolicies' -Data $AndroidPolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'IntuneAndroidAppProtectionPolicies' -Data $AndroidPolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($AndroidPolicies.Count) Android app protection policies" -sev Debug + } + $AndroidPolicies = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache App Protection Policies: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheIntunePolicies.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheIntunePolicies.ps1 new file mode 100644 index 000000000000..51c2642f1397 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheIntunePolicies.ps1 @@ -0,0 +1,148 @@ +function Set-CIPPDBCacheIntunePolicies { + <# + .SYNOPSIS + Caches all Intune policies for a tenant (if Intune capable) + + .PARAMETER TenantFilter + The tenant to cache Intune policies for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + $TestResult = Test-CIPPStandardLicense -StandardName 'IntunePoliciesCache' -TenantFilter $TenantFilter -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') -SkipLog + + if ($TestResult -eq $false) { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Tenant does not have Intune license, skipping' -sev Debug + return + } + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Intune policies' -sev Debug + + $PolicyTypes = @( + @{ Type = 'DeviceCompliancePolicies'; Uri = '/deviceManagement/deviceCompliancePolicies?$top=999&$expand=assignments'; FetchDeviceStatuses = $true } + @{ Type = 'DeviceConfigurations'; Uri = '/deviceManagement/deviceConfigurations?$top=999&$expand=assignments' } + @{ Type = 'ConfigurationPolicies'; Uri = '/deviceManagement/configurationPolicies?$top=999&$expand=assignments,settings' } + @{ Type = 'GroupPolicyConfigurations'; Uri = '/deviceManagement/groupPolicyConfigurations?$top=999&$expand=assignments' } + @{ Type = 'MobileAppConfigurations'; Uri = '/deviceManagement/mobileAppConfigurations?$top=999&$expand=assignments' } + @{ Type = 'AppProtectionPolicies'; Uri = '/deviceAppManagement/managedAppPolicies?$top=999'; FetchAssignments = $true } + @{ Type = 'WindowsAutopilotDeploymentProfiles'; Uri = '/deviceManagement/windowsAutopilotDeploymentProfiles?$top=999&$expand=assignments' } + @{ Type = 'DeviceEnrollmentConfigurations'; Uri = '/deviceManagement/deviceEnrollmentConfigurations?$top=999'; FetchAssignments = $true } + @{ Type = 'DeviceManagementScripts'; Uri = '/deviceManagement/deviceManagementScripts?$top=999&$expand=assignments' } + @{ Type = 'MobileApps'; Uri = '/deviceAppManagement/mobileApps?$top=999&$select=id,displayName,description,publisher,isAssigned,createdDateTime,lastModifiedDateTime'; FetchAssignments = $true } + ) + + # Build bulk requests for all policy types + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Fetching all policy types using bulk request' -sev Debug + $PolicyRequests = foreach ($PolicyType in $PolicyTypes) { + [PSCustomObject]@{ + id = $PolicyType.Type + method = 'GET' + url = $PolicyType.Uri + } + } + + try { + $PolicyResults = New-GraphBulkRequest -Requests @($PolicyRequests) -tenantid $TenantFilter + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to fetch policies in bulk: $($_.Exception.Message)" -sev Error + throw + } + + # Process each policy type result + foreach ($Result in $PolicyResults) { + $PolicyType = $PolicyTypes | Where-Object { $_.Type -eq $Result.id } + if (-not $PolicyType) { continue } + + try { + $Policies = $Result.body.value ?? $Result.body + + if (-not $Policies) { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "No policies found for $($PolicyType.Type)" -sev Debug + continue + } + + # Get assignments for policies that don't support expand using bulk requests + if ($PolicyType.FetchAssignments -and ($Policies | Measure-Object).Count -gt 0) { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Fetching assignments for $($Policies.Count) $($PolicyType.Type) using bulk request" -sev Debug + + $BaseUri = ($PolicyType.Uri -split '\?')[0] + # Build bulk request array for assignments + $AssignmentRequests = $Policies | ForEach-Object { + [PSCustomObject]@{ + id = $_.id + method = 'GET' + url = "$BaseUri/$($_.id)/assignments" + } + } + + try { + $AssignmentResults = New-GraphBulkRequest -Requests @($AssignmentRequests) -tenantid $TenantFilter + + if ($AssignmentResults) { + foreach ($AssignResult in $AssignmentResults) { + $Policy = $Policies | Where-Object { $_.id -eq $AssignResult.id } + if ($Policy) { + $Assignments = $AssignResult.body.value ?? $AssignResult.body + $Policy | Add-Member -NotePropertyName 'assignments' -NotePropertyValue $Assignments -Force + } + } + } + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to fetch assignments in bulk for $($PolicyType.Type): $($_.Exception.Message)" -sev Warning + } + } + + Add-CIPPDbItem -TenantFilter $TenantFilter -Type "Intune$($PolicyType.Type)" -Data $Policies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type "Intune$($PolicyType.Type)" -Data $Policies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($Policies.Count) $($PolicyType.Type)" -sev Debug + + # Fetch device statuses for compliance policies using bulk requests + if ($PolicyType.FetchDeviceStatuses -and ($Policies | Measure-Object).Count -gt 0) { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Fetching device statuses for $($Policies.Count) compliance policies using bulk request" -sev Debug + + $BaseUri = ($PolicyType.Uri -split '\?')[0] + # Build bulk request array + $DeviceStatusRequests = $Policies | ForEach-Object { + [PSCustomObject]@{ + id = $_.id + method = 'GET' + url = "$BaseUri/$($_.id)/deviceStatuses?`$top=999" + } + } + + try { + $DeviceStatusResults = New-GraphBulkRequest -Requests @($DeviceStatusRequests) -tenantid $TenantFilter + + if ($DeviceStatusResults) { + foreach ($StatusResult in $DeviceStatusResults) { + $Data = $StatusResult.body.value ?? $StatusResult.body + if ($Data) { + # Store device statuses with policy ID in the type name (matching extension cache pattern) + $StatusType = "Intune$($PolicyType.Type)_$($StatusResult.id)" + Add-CIPPDbItem -TenantFilter $TenantFilter -Type $StatusType -Data $Data + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $(($Data | Measure-Object).Count) device statuses for policy ID $($StatusResult.id)" -sev Debug + } + } + } + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to fetch device statuses in bulk: $($_.Exception.Message)" -sev Warning + } + } + + $Policies = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache $($PolicyType.Type): $($_.Exception.Message)" -sev Warning + } + } + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached Intune policies successfully' -sev Debug + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Intune policies: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheLicenseOverview.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheLicenseOverview.ps1 new file mode 100644 index 000000000000..5ba1ef461f0b --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheLicenseOverview.ps1 @@ -0,0 +1,27 @@ +function Set-CIPPDBCacheLicenseOverview { + <# + .SYNOPSIS + Caches license overview for a tenant + + .PARAMETER TenantFilter + The tenant to cache license overview for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching license overview' -sev Debug + + $LicenseOverview = Get-CIPPLicenseOverview -TenantFilter $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'LicenseOverview' -Data @($LicenseOverview) + $LicenseOverview = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached license overview successfully' -sev Debug + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache license overview: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheMFAState.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheMFAState.ps1 new file mode 100644 index 000000000000..40fd5bb12ddf --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheMFAState.ps1 @@ -0,0 +1,27 @@ +function Set-CIPPDBCacheMFAState { + <# + .SYNOPSIS + Caches MFA state for a tenant + + .PARAMETER TenantFilter + The tenant to cache MFA state for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching MFA state' -sev Debug + + $MFAState = Get-CIPPMFAState -TenantFilter $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'MFAState' -Data @($MFAState) + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'MFAState' -Data @($MFAState) -Count + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($MFAState.Count) MFA state records successfully" -sev Debug + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache MFA state: $($_.Exception.Message)" -sev Error -LogData (Get-CippException -Exception $_) + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheMailboxUsage.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheMailboxUsage.ps1 new file mode 100644 index 000000000000..0b8e91fbc176 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheMailboxUsage.ps1 @@ -0,0 +1,27 @@ +function Set-CIPPDBCacheMailboxUsage { + <# + .SYNOPSIS + Caches mailbox usage details for a tenant + + .PARAMETER TenantFilter + The tenant to cache mailbox usage for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching mailbox usage' -sev Debug + + $MailboxUsage = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/reports/getMailboxUsageDetail(period='D7')?`$format=application%2fjson" -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'MailboxUsage' -Data $MailboxUsage + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'MailboxUsage' -Data $MailboxUsage -Count + $MailboxUsage = $null + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached mailbox usage successfully' -sev Debug + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache mailbox usage: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheMailboxes.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheMailboxes.ps1 new file mode 100644 index 000000000000..27fb33c5cbc6 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheMailboxes.ps1 @@ -0,0 +1,115 @@ +function Set-CIPPDBCacheMailboxes { + <# + .SYNOPSIS + Caches all mailboxes, CAS mailboxes, and mailbox permissions for a tenant + + .PARAMETER TenantFilter + The tenant to cache mailboxes for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching mailboxes' -sev Debug + + # Get mailboxes with select properties + $Select = 'id,ExchangeGuid,ArchiveGuid,UserPrincipalName,DisplayName,PrimarySMTPAddress,RecipientType,RecipientTypeDetails,EmailAddresses,WhenSoftDeleted,IsInactiveMailbox,ForwardingSmtpAddress,DeliverToMailboxAndForward,ForwardingAddress,HiddenFromAddressListsEnabled,ExternalDirectoryObjectId,MessageCopyForSendOnBehalfEnabled,MessageCopyForSentAsEnabled' + $ExoRequest = @{ + tenantid = $TenantFilter + cmdlet = 'Get-Mailbox' + cmdParams = @{} + Select = $Select + } + # Use Generic List for better memory efficiency with large datasets + $MailboxList = [System.Collections.Generic.List[PSObject]]::new() + $RawMailboxes = New-ExoRequest @ExoRequest + + foreach ($Mailbox in $RawMailboxes) { + $MailboxList.Add(($Mailbox | Select-Object id, ExchangeGuid, ArchiveGuid, WhenSoftDeleted, + @{ Name = 'UPN'; Expression = { $_.'UserPrincipalName' } }, + @{ Name = 'displayName'; Expression = { $_.'DisplayName' } }, + @{ Name = 'primarySmtpAddress'; Expression = { $_.'PrimarySMTPAddress' } }, + @{ Name = 'recipientType'; Expression = { $_.'RecipientType' } }, + @{ Name = 'recipientTypeDetails'; Expression = { $_.'RecipientTypeDetails' } }, + @{ Name = 'AdditionalEmailAddresses'; Expression = { ($_.'EmailAddresses' | Where-Object { $_ -clike 'smtp:*' }).Replace('smtp:', '') -join ', ' } }, + @{ Name = 'ForwardingSmtpAddress'; Expression = { $_.'ForwardingSmtpAddress' -replace 'smtp:', '' } }, + @{ Name = 'InternalForwardingAddress'; Expression = { $_.'ForwardingAddress' } }, + DeliverToMailboxAndForward, + HiddenFromAddressListsEnabled, + ExternalDirectoryObjectId, + MessageCopyForSendOnBehalfEnabled, + MessageCopyForSentAsEnabled)) + } + + $Mailboxes | Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Mailboxes' -AddCount + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($Mailboxes.Count) mailboxes successfully" -sev Debug + + # Start orchestrator to cache mailbox permissions in batches + $MailboxCount = ($Mailboxes | Measure-Object).Count + if ($MailboxCount -gt 0) { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Starting mailbox permission caching for $MailboxCount mailboxes" -sev Debug + + # Create batches of 10 mailboxes each for both mailbox and calendar permissions + $BatchSize = 10 + $Batches = [System.Collections.Generic.List[object]]::new() + $TotalBatches = [Math]::Ceiling($Mailboxes.Count / $BatchSize) + + for ($i = 0; $i -lt $Mailboxes.Count; $i += $BatchSize) { + $BatchMailboxes = $Mailboxes[$i..[Math]::Min($i + $BatchSize - 1, $Mailboxes.Count - 1)] + + # Only send UPN to batch function to reduce payload size + $BatchMailboxUPNs = $BatchMailboxes | Select-Object -ExpandProperty UPN + $BatchNumber = [Math]::Floor($i / $BatchSize) + 1 + + # Add mailbox permissions batch + $Batches.Add([PSCustomObject]@{ + FunctionName = 'GetMailboxPermissionsBatch' + TenantFilter = $TenantFilter + Mailboxes = $BatchMailboxUPNs + BatchNumber = $BatchNumber + TotalBatches = $TotalBatches + }) + + # Add calendar permissions batch for the same mailboxes + $Batches.Add([PSCustomObject]@{ + FunctionName = 'GetCalendarPermissionsBatch' + TenantFilter = $TenantFilter + Mailboxes = $BatchMailboxUPNs + BatchNumber = $BatchNumber + TotalBatches = $TotalBatches + }) + } + + # Split batches into mailbox and calendar permissions for separate post-execution + $MailboxPermBatches = $Batches | Where-Object { $_.FunctionName -eq 'GetMailboxPermissionsBatch' } + $CalendarPermBatches = $Batches | Where-Object { $_.FunctionName -eq 'GetCalendarPermissionsBatch' } + + # Start single orchestrator for both mailbox and calendar permissions + $InputObject = [PSCustomObject]@{ + Batch = @($Batches) + OrchestratorName = "MailboxPermissions_$TenantFilter" + PostExecution = @{ + FunctionName = 'StoreMailboxPermissions' + Parameters = @{ + TenantFilter = $TenantFilter + } + } + } + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Compress -Depth 5) + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Started mailbox and calendar permission caching orchestrator with $($Batches.Count) batches" -sev Debug + } else { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'No mailboxes found to cache permissions for' -sev Debug + } + + # Clear mailbox data to free memory + $Mailboxes = $null + [System.GC]::Collect() + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache mailboxes: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheManagedDeviceEncryptionStates.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheManagedDeviceEncryptionStates.ps1 new file mode 100644 index 000000000000..4e4f78f33c2a --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheManagedDeviceEncryptionStates.ps1 @@ -0,0 +1,30 @@ +function Set-CIPPDBCacheManagedDeviceEncryptionStates { + <# + .SYNOPSIS + Caches encryption states (BitLocker/FileVault) for managed devices in a tenant + + .PARAMETER TenantFilter + The tenant to cache managed device encryption states for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching managed device encryption states' -sev Debug + + $ManagedDeviceEncryptionStates = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/managedDeviceEncryptionStates?$top=999' -tenantid $TenantFilter + + if ($ManagedDeviceEncryptionStates) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ManagedDeviceEncryptionStates' -Data $ManagedDeviceEncryptionStates + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ManagedDeviceEncryptionStates' -Data $ManagedDeviceEncryptionStates -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($ManagedDeviceEncryptionStates.Count) managed device encryption states" -sev Debug + } + $ManagedDeviceEncryptionStates = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache managed device encryption states: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheManagedDevices.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheManagedDevices.ps1 new file mode 100644 index 000000000000..ee724f9343af --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheManagedDevices.ps1 @@ -0,0 +1,27 @@ +function Set-CIPPDBCacheManagedDevices { + <# + .SYNOPSIS + Caches all Intune managed devices for a tenant + + .PARAMETER TenantFilter + The tenant to cache managed devices for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching managed devices' -sev Debug + $ManagedDevices = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/managedDevices?$top=999&$select=id,deviceName,operatingSystem,osVersion,complianceState,managedDeviceOwnerType,enrolledDateTime,lastSyncDateTime' -tenantid $TenantFilter + if (!$ManagedDevices) { $ManagedDevices = @() } + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ManagedDevices' -Data $ManagedDevices + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ManagedDevices' -Data $ManagedDevices -Count + $ManagedDevices = $null + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached managed devices successfully' -sev Debug + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache managed devices: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheOAuth2PermissionGrants.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheOAuth2PermissionGrants.ps1 new file mode 100644 index 000000000000..78ea6366ae5d --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheOAuth2PermissionGrants.ps1 @@ -0,0 +1,30 @@ +function Set-CIPPDBCacheOAuth2PermissionGrants { + <# + .SYNOPSIS + Caches OAuth2 permission grants (delegated permissions) for a tenant + + .PARAMETER TenantFilter + The tenant to cache OAuth2 permission grants for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching OAuth2 permission grants' -sev Debug + + $OAuth2PermissionGrants = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/oauth2PermissionGrants?$top=999' -tenantid $TenantFilter + + if ($OAuth2PermissionGrants) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'OAuth2PermissionGrants' -Data $OAuth2PermissionGrants + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'OAuth2PermissionGrants' -Data $OAuth2PermissionGrants -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($OAuth2PermissionGrants.Count) OAuth2 permission grants" -sev Debug + } + $OAuth2PermissionGrants = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache OAuth2 permission grants: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheOneDriveUsage.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheOneDriveUsage.ps1 new file mode 100644 index 000000000000..4df2d347f02e --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheOneDriveUsage.ps1 @@ -0,0 +1,27 @@ +function Set-CIPPDBCacheOneDriveUsage { + <# + .SYNOPSIS + Caches OneDrive usage details for a tenant + + .PARAMETER TenantFilter + The tenant to cache OneDrive usage for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching OneDrive usage' -sev Debug + + $OneDriveUsage = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/reports/getOneDriveUsageAccountDetail(period='D7')?`$format=application%2fjson" -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'OneDriveUsage' -Data $OneDriveUsage + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'OneDriveUsage' -Data $OneDriveUsage -Count + $OneDriveUsage = $null + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached OneDrive usage successfully' -sev Debug + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache OneDrive usage: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheOrganization.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheOrganization.ps1 new file mode 100644 index 000000000000..4710caf76427 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheOrganization.ps1 @@ -0,0 +1,28 @@ +function Set-CIPPDBCacheOrganization { + <# + .SYNOPSIS + Caches organization information for a tenant + + .PARAMETER TenantFilter + The tenant to cache organization data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching organization data' -sev Debug + + $Organization = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/organization' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Organization' -Data $Organization + $Organization = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached organization data successfully' -sev Debug + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache organization data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCachePIMSettings.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCachePIMSettings.ps1 new file mode 100644 index 000000000000..224d357389d6 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCachePIMSettings.ps1 @@ -0,0 +1,56 @@ +function Set-CIPPDBCachePIMSettings { + <# + .SYNOPSIS + Caches PIM (Privileged Identity Management) settings for a tenant (if CA capable) + + .PARAMETER TenantFilter + The tenant to cache PIM settings for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + $TestResult = Test-CIPPStandardLicense -StandardName 'PIMSettingsCache' -TenantFilter $TenantFilter -RequiredCapabilities @('AAD_PREMIUM_P2') -SkipLog + + if ($TestResult -eq $false) { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Tenant does not have Azure AD Premium P2 license, skipping PIM' -sev Debug + return + } + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching PIM settings' -sev Debug + + try { + $PIMRoleSettings = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/roleManagementPolicyAssignments?$top=999' -tenantid $TenantFilter + + if ($PIMRoleSettings) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'PIMRoleSettings' -Data $PIMRoleSettings + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'PIMRoleSettings' -Data $PIMRoleSettings -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($PIMRoleSettings.Count) PIM role settings" -sev Debug + } + $PIMRoleSettings = $null + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache PIM role settings: $($_.Exception.Message)" -sev Warning + } + + try { + $PIMAssignments = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/roleManagement/directory/roleEligibilityScheduleInstances?$top=999' -tenantid $TenantFilter + + if ($PIMAssignments) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'PIMAssignments' -Data $PIMAssignments + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'PIMAssignments' -Data $PIMAssignments -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($PIMAssignments.Count) PIM assignments" -sev Debug + } + $PIMAssignments = $null + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache PIM assignments: $($_.Exception.Message)" -sev Warning + } + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached PIM settings successfully' -sev Debug + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache PIM settings: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheRiskDetections.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheRiskDetections.ps1 new file mode 100644 index 000000000000..2acc5fa2f099 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheRiskDetections.ps1 @@ -0,0 +1,35 @@ +function Set-CIPPDBCacheRiskDetections { + <# + .SYNOPSIS + Caches risk detections from Identity Protection for a tenant + + .PARAMETER TenantFilter + The tenant to cache risk detections for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching risk detections from Identity Protection' -sev Debug + + # Requires P2 licensing + $RiskDetections = New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/identityProtection/riskDetections' -tenantid $TenantFilter + + if ($RiskDetections) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'RiskDetections' -Data $RiskDetections + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'RiskDetections' -Data $RiskDetections -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($RiskDetections.Count) risk detections successfully" -sev Debug + } else { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'No risk detections found or Identity Protection not available' -sev Debug + } + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache risk detections: $($_.Exception.Message)" ` + -sev Warning ` + -LogData (Get-CippException -Exception $_) + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheRiskyServicePrincipals.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheRiskyServicePrincipals.ps1 new file mode 100644 index 000000000000..09092dd18716 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheRiskyServicePrincipals.ps1 @@ -0,0 +1,35 @@ +function Set-CIPPDBCacheRiskyServicePrincipals { + <# + .SYNOPSIS + Caches risky service principals from Identity Protection for a tenant + + .PARAMETER TenantFilter + The tenant to cache risky service principals for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching risky service principals from Identity Protection' -sev Debug + + # Requires Workload Identity Premium licensing + $RiskyServicePrincipals = New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/identityProtection/riskyServicePrincipals' -tenantid $TenantFilter + + if ($RiskyServicePrincipals) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'RiskyServicePrincipals' -Data $RiskyServicePrincipals + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'RiskyServicePrincipals' -Data $RiskyServicePrincipals -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($RiskyServicePrincipals.Count) risky service principals successfully" -sev Debug + } else { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'No risky service principals found or Workload Identity Protection not available' -sev Debug + } + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache risky service principals: $($_.Exception.Message)" ` + -sev Warning ` + -LogData (Get-CippException -Exception $_) + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheRiskyUsers.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheRiskyUsers.ps1 new file mode 100644 index 000000000000..813dff9da5ac --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheRiskyUsers.ps1 @@ -0,0 +1,35 @@ +function Set-CIPPDBCacheRiskyUsers { + <# + .SYNOPSIS + Caches risky users from Identity Protection for a tenant + + .PARAMETER TenantFilter + The tenant to cache risky users for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching risky users from Identity Protection' -sev Debug + + # Requires P2 or Governance licensing + $RiskyUsers = New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/identityProtection/riskyUsers' -tenantid $TenantFilter + + if ($RiskyUsers) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'RiskyUsers' -Data $RiskyUsers + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'RiskyUsers' -Data $RiskyUsers -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($RiskyUsers.Count) risky users successfully" -sev Debug + } else { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'No risky users found or Identity Protection not available' -sev Debug + } + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache risky users: $($_.Exception.Message)" ` + -sev Warning ` + -LogData (Get-CippException -Exception $_) + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheRoleAssignmentScheduleInstances.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheRoleAssignmentScheduleInstances.ps1 new file mode 100644 index 000000000000..6d269f2cf17c --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheRoleAssignmentScheduleInstances.ps1 @@ -0,0 +1,28 @@ +function Set-CIPPDBCacheRoleAssignmentScheduleInstances { + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + $RoleAssignmentScheduleInstances = New-GraphGetRequest -Uri 'https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignmentScheduleInstances' -tenantid $TenantFilter + + $Body = [pscustomobject]@{ + Tenant = $TenantFilter + LastRefresh = (Get-Date).ToUniversalTime() + Type = 'RoleAssignmentScheduleInstances' + Data = [System.Text.Encoding]::UTF8.GetBytes(($RoleAssignmentScheduleInstances | ConvertTo-Json -Compress -Depth 10)) + PartitionKey = 'TenantCache' + RowKey = ('{0}-{1}' -f $TenantFilter, 'RoleAssignmentScheduleInstances') + SchemaVersion = [int]1 + SentAsDate = [string](Get-Date -UFormat '+%Y-%m-%dT%H:%M:%S.000Z') + } + + $null = Add-CIPPAzDataTableEntity @CacheTableDetails -Entity $Body -Force + Write-LogMessage -API 'DBCache' -tenant $TenantFilter -message 'Role assignment schedule instances cache updated' -sev Debug + } catch { + Write-LogMessage -API 'DBCache' -tenant $TenantFilter -message "Error caching role assignment schedule instances: $($_.Exception.Message)" -sev Error + throw + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheRoleEligibilitySchedules.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheRoleEligibilitySchedules.ps1 new file mode 100644 index 000000000000..a4f559b5bd6b --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheRoleEligibilitySchedules.ps1 @@ -0,0 +1,26 @@ +function Set-CIPPDBCacheRoleEligibilitySchedules { + <# + .SYNOPSIS + Caches role eligibility schedules for a tenant + + .PARAMETER TenantFilter + The tenant to cache role eligibility schedules for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching role eligibility schedules' -sev Debug + $RoleEligibilitySchedules = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/roleManagement/directory/roleEligibilitySchedules' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'RoleEligibilitySchedules' -Data @($RoleEligibilitySchedules) + $RoleEligibilitySchedules = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached role eligibility schedules successfully' -sev Debug + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache role eligibility schedules: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheRoleManagementPolicies.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheRoleManagementPolicies.ps1 new file mode 100644 index 000000000000..a2c3f97b99d5 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheRoleManagementPolicies.ps1 @@ -0,0 +1,26 @@ +function Set-CIPPDBCacheRoleManagementPolicies { + <# + .SYNOPSIS + Caches role management policies for a tenant + + .PARAMETER TenantFilter + The tenant to cache role management policies for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching role management policies' -sev Debug + $RoleManagementPolicies = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/roleManagementPolicies' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'RoleManagementPolicies' -Data @($RoleManagementPolicies) + $RoleManagementPolicies = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached role management policies successfully' -sev Debug + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache role management policies: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheRoles.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheRoles.ps1 new file mode 100644 index 000000000000..f9f6bd66c77d --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheRoles.ps1 @@ -0,0 +1,63 @@ +function Set-CIPPDBCacheRoles { + <# + .SYNOPSIS + Caches all directory roles and their members for a tenant + + .PARAMETER TenantFilter + The tenant to cache role data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching directory roles' -sev Debug + + $Roles = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/directoryRoles' -tenantid $TenantFilter + + # Build bulk request for role members + $MemberRequests = $Roles | ForEach-Object { + if ($_.id) { + [PSCustomObject]@{ + id = $_.id + method = 'GET' + url = "/directoryRoles/$($_.id)/members?`$select=id,displayName,userPrincipalName" + } + } + } + + if ($MemberRequests) { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Fetching role members' -sev Debug + $MemberResults = New-GraphBulkRequest -Requests @($MemberRequests) -tenantid $TenantFilter + + # Add members to each role object + $RolesWithMembers = foreach ($Role in $Roles) { + $Members = ($MemberResults | Where-Object { $_.id -eq $Role.id }).body.value + [PSCustomObject]@{ + id = $Role.id + displayName = $Role.displayName + description = $Role.description + roleTemplateId = $Role.roleTemplateId + members = $Members + memberCount = ($Members | Measure-Object).Count + } + } + + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Roles' -Data $RolesWithMembers + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Roles' -Data $RolesWithMembers -Count + $Roles = $null + $RolesWithMembers = $null + } else { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Roles' -Data $Roles + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Roles' -Data $Roles -Count + $Roles = $null + } + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached directory roles successfully' -sev Debug + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache directory roles: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheSecureScore.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheSecureScore.ps1 new file mode 100644 index 000000000000..de3eab54f0ed --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheSecureScore.ps1 @@ -0,0 +1,35 @@ +function Set-CIPPDBCacheSecureScore { + <# + .SYNOPSIS + Caches secure score history (last 14 days) and control profiles for a tenant + + .PARAMETER TenantFilter + The tenant to cache secure score for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching secure score' -sev Debug + + # Cache secure score history (last 14 days) + $SecureScore = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/security/secureScores?$top=14' -tenantid $TenantFilter -noPagination $true + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'SecureScore' -Data $SecureScore + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'SecureScore' -Data $SecureScore -Count + $SecureScore = $null + + # Cache secure score control profiles + $SecureScoreControlProfiles = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/security/secureScoreControlProfiles' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'SecureScoreControlProfiles' -Data $SecureScoreControlProfiles + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'SecureScoreControlProfiles' -Data $SecureScoreControlProfiles -Count + $SecureScoreControlProfiles = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached secure score and control profiles successfully' -sev Debug + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache secure score: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheServicePrincipalRiskDetections.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheServicePrincipalRiskDetections.ps1 new file mode 100644 index 000000000000..a437723e0abd --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheServicePrincipalRiskDetections.ps1 @@ -0,0 +1,35 @@ +function Set-CIPPDBCacheServicePrincipalRiskDetections { + <# + .SYNOPSIS + Caches service principal risk detections from Identity Protection for a tenant + + .PARAMETER TenantFilter + The tenant to cache service principal risk detections for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching service principal risk detections from Identity Protection' -sev Debug + + # Requires Workload Identity Premium licensing + $ServicePrincipalRiskDetections = New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/identityProtection/servicePrincipalRiskDetections' -tenantid $TenantFilter + + if ($ServicePrincipalRiskDetections) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ServicePrincipalRiskDetections' -Data $ServicePrincipalRiskDetections + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ServicePrincipalRiskDetections' -Data $ServicePrincipalRiskDetections -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($ServicePrincipalRiskDetections.Count) service principal risk detections successfully" -sev Debug + } else { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'No service principal risk detections found or Workload Identity Protection not available' -sev Debug + } + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache service principal risk detections: $($_.Exception.Message)" ` + -sev Warning ` + -LogData (Get-CippException -Exception $_) + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheServicePrincipals.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheServicePrincipals.ps1 new file mode 100644 index 000000000000..b91941940e66 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheServicePrincipals.ps1 @@ -0,0 +1,29 @@ +function Set-CIPPDBCacheServicePrincipals { + <# + .SYNOPSIS + Caches all service principals for a tenant + + .PARAMETER TenantFilter + The tenant to cache service principals for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching service principals' -sev Debug + + $ServicePrincipals = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/servicePrincipals' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ServicePrincipals' -Data $ServicePrincipals + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ServicePrincipals' -Data $ServicePrincipals -Count + $ServicePrincipals = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached service principals successfully' -sev Debug + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache service principals: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheSettings.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheSettings.ps1 new file mode 100644 index 000000000000..76c682ba3adb --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheSettings.ps1 @@ -0,0 +1,27 @@ +function Set-CIPPDBCacheSettings { + <# + .SYNOPSIS + Caches directory settings for a tenant + + .PARAMETER TenantFilter + The tenant to cache settings for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching directory settings' -sev Debug + + $Settings = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/settings?$top=999' -tenantid $TenantFilter + if(!$Settings){ $Settings = @()} + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Settings' -Data $Settings + $Settings = $null + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached directory settings successfully' -sev Debug + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache directory settings: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheUserRegistrationDetails.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheUserRegistrationDetails.ps1 new file mode 100644 index 000000000000..818a441dc0f3 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheUserRegistrationDetails.ps1 @@ -0,0 +1,30 @@ +function Set-CIPPDBCacheUserRegistrationDetails { + <# + .SYNOPSIS + Caches authentication method registration details for all users in a tenant + + .PARAMETER TenantFilter + The tenant to cache user registration details for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching user registration details' -sev Debug + + $UserRegistrationDetails = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/reports/authenticationMethods/userRegistrationDetails' -tenantid $TenantFilter + + if ($UserRegistrationDetails) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'UserRegistrationDetails' -Data $UserRegistrationDetails + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'UserRegistrationDetails' -Data $UserRegistrationDetails -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($UserRegistrationDetails.Count) user registration details" -sev Debug + } + $UserRegistrationDetails = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache user registration details: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheUsers.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheUsers.ps1 new file mode 100644 index 000000000000..72f498142664 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheUsers.ps1 @@ -0,0 +1,27 @@ +function Set-CIPPDBCacheUsers { + <# + .SYNOPSIS + Caches all users for a tenant + + .PARAMETER TenantFilter + The tenant to cache users for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching users' -sev Debug + + # Stream users directly from Graph API to batch processor + New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/users?$top=999' -tenantid $TenantFilter | + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Users' -AddCount + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached users successfully' -sev Debug + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache users: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDbCacheTestData.ps1 b/Modules/CIPPCore/Public/Set-CIPPDbCacheTestData.ps1 new file mode 100644 index 000000000000..5a5f6b2094f1 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDbCacheTestData.ps1 @@ -0,0 +1,84 @@ +function Set-CIPPDbCacheTestData { + <# + .SYNOPSIS + Generates test data for cache performance testing + + .DESCRIPTION + Creates 50,000 test objects with ~3KB of data each to test streaming performance + + .PARAMETER TenantFilter + The tenant to use for test data + + .PARAMETER Count + Number of test objects to generate (default: 50000) + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + [Parameter(Mandatory = $false)] + [int]$Count = 50000 + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Generating $Count test objects" -sev Debug + + # Generate sample data to reach ~3KB per object + $sampleText = @' +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. +Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. +Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +'@ * 10 # Repeat to get ~3KB + + $startTime = Get-Date + + Write-Information "[Set-CIPPDbCacheTestData] Starting generation of $Count test objects for tenant $TenantFilter" + # Stream test objects directly to batch processor + 1..$Count | ForEach-Object { + [PSCustomObject]@{ + id = [guid]::NewGuid().ToString() + displayName = "Test User $_" + userPrincipalName = "testuser$_@$TenantFilter" + mail = "testuser$_@$TenantFilter" + givenName = 'Test' + surname = "User $_" + jobTitle = 'Test Engineer' + department = 'Testing Department' + officeLocation = "Test Office $_" + mobilePhone = "+1-555-000-$($_.ToString().PadLeft(4, '0'))" + businessPhones = @("+1-555-001-$($_.ToString().PadLeft(4, '0'))") + accountEnabled = $true + createdDateTime = (Get-Date).ToString('o') + lastSignInDateTime = (Get-Date).AddDays(-1).ToString('o') + description = $sampleText + companyName = 'Test Company' + country = 'United States' + city = 'Test City' + state = 'Test State' + postalCode = '12345' + streetAddress = '123 Test Street' + proxyAddresses = @("SMTP:testuser$_@$TenantFilter", "smtp:alias$_@$TenantFilter") + assignedLicenses = @( + @{ skuId = [guid]::NewGuid().ToString(); disabledPlans = @() } + ) + customAttribute1 = 'Custom Value 1' + customAttribute2 = 'Custom Value 2' + customAttribute3 = 'Custom Value 3' + additionalData = $sampleText + } + } | Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'TestData' -AddCount + + $endTime = Get-Date + $duration = ($endTime - $startTime).TotalSeconds + $objectsPerSecond = [math]::Round($Count / $duration, 2) + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Generated $Count test objects in $duration seconds ($objectsPerSecond objects/sec)" -sev Debug + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to generate test data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDefaultAPDeploymentProfile.ps1 b/Modules/CIPPCore/Public/Set-CIPPDefaultAPDeploymentProfile.ps1 index 502b663199ff..818c2f97dfea 100644 --- a/Modules/CIPPCore/Public/Set-CIPPDefaultAPDeploymentProfile.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPDefaultAPDeploymentProfile.ps1 @@ -1,18 +1,18 @@ function Set-CIPPDefaultAPDeploymentProfile { [CmdletBinding(SupportsShouldProcess = $true)] param( - $tenantFilter, - $displayName, - $description, - $devicenameTemplate, - $allowWhiteGlove, + $TenantFilter, + $DisplayName, + $Description, + $DeviceNameTemplate, + $AllowWhiteGlove, $CollectHash, - $userType, + $UserType, $DeploymentMode, - $hideChangeAccount, + $HideChangeAccount = $true, $AssignTo, - $hidePrivacy, - $hideTerms, + $HidePrivacy, + $HideTerms, $AutoKeyboard, $Headers, $Language = 'os-default', @@ -23,66 +23,68 @@ function Set-CIPPDefaultAPDeploymentProfile { try { $ObjBody = [pscustomobject]@{ - '@odata.type' = '#microsoft.graph.azureADWindowsAutopilotDeploymentProfile' - 'displayName' = "$($displayName)" - 'description' = "$($description)" - 'deviceNameTemplate' = "$($devicenameTemplate)" - 'language' = "$($Language)" - 'enableWhiteGlove' = $([bool]($allowWhiteGlove)) - 'deviceType' = 'windowsPc' - 'extractHardwareHash' = $([bool]($CollectHash)) - 'roleScopeTagIds' = @() - 'hybridAzureADJoinSkipConnectivityCheck' = $false - 'outOfBoxExperienceSetting' = @{ - 'deviceUsageType' = "$DeploymentMode" - 'escapeLinkHidden' = $([bool]($hideChangeAccount)) - 'privacySettingsHidden' = $([bool]($hidePrivacy)) - 'eulaHidden' = $([bool]($hideTerms)) - 'userType' = "$userType" + '@odata.type' = '#microsoft.graph.azureADWindowsAutopilotDeploymentProfile' + 'displayName' = "$($DisplayName)" + 'description' = "$($Description)" + 'deviceNameTemplate' = "$($DeviceNameTemplate)" + 'locale' = "$($Language ?? 'os-default')" + 'preprovisioningAllowed' = $([bool]($AllowWhiteGlove)) + 'deviceType' = 'windowsPc' + 'hardwareHashExtractionEnabled' = $([bool]($CollectHash)) + 'roleScopeTagIds' = @() + 'outOfBoxExperienceSetting' = @{ + 'deviceUsageType' = "$DeploymentMode" + 'escapeLinkHidden' = $([bool]($true)) + 'privacySettingsHidden' = $([bool]($HidePrivacy)) + 'eulaHidden' = $([bool]($HideTerms)) + 'userType' = "$UserType" 'keyboardSelectionPageSkipped' = $([bool]($AutoKeyboard)) } } - $Body = ConvertTo-Json -InputObject $ObjBody + $Body = ConvertTo-Json -InputObject $ObjBody -Depth 10 - $Profiles = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles' -tenantid $tenantFilter | Where-Object -Property displayName -EQ $displayName + Write-Information $Body + + $Profiles = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles' -tenantid $TenantFilter | Where-Object -Property displayName -EQ $DisplayName if ($Profiles.count -gt 1) { $Profiles | ForEach-Object { if ($_.id -ne $Profiles[0].id) { if ($PSCmdlet.ShouldProcess($_.displayName, 'Delete duplicate Autopilot profile')) { - $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles/$($_.id)" -tenantid $tenantFilter -type DELETE - Write-LogMessage -Headers $User -API $APIName -tenant $($tenantFilter) -message "Deleted duplicate Autopilot profile $($displayName)" -Sev 'Info' + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles/$($_.id)" -tenantid $TenantFilter -type DELETE + Write-LogMessage -Headers $User -API $APIName -tenant $($TenantFilter) -message "Deleted duplicate Autopilot profile $($DisplayName)" -Sev 'Info' } } } $Profiles = $Profiles[0] } if (!$Profiles) { - if ($PSCmdlet.ShouldProcess($displayName, 'Add Autopilot profile')) { + if ($PSCmdlet.ShouldProcess($DisplayName, 'Add Autopilot profile')) { $Type = 'Add' - $GraphRequest = New-GraphPostRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles' -body $body -tenantid $tenantFilter - Write-LogMessage -Headers $User -API $APIName -tenant $($tenantFilter) -message "Added Autopilot profile $($displayName)" -Sev 'Info' + $GraphRequest = New-GraphPostRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles' -body $Body -tenantid $TenantFilter + Write-LogMessage -Headers $User -API $APIName -tenant $($TenantFilter) -message "Added Autopilot profile $($DisplayName)" -Sev 'Info' } } else { $Type = 'Edit' - $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles/$($Profiles.id)" -tenantid $tenantFilter -body $body -type PATCH + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles/$($Profiles.id)" -tenantid $TenantFilter -body $Body -type PATCH $GraphRequest = $Profiles | Select-Object -Last 1 } if ($AssignTo -eq $true) { $AssignBody = '{"target":{"@odata.type":"#microsoft.graph.allDevicesAssignmentTarget"}}' - if ($PSCmdlet.ShouldProcess($AssignTo, "Assign Autopilot profile $displayName")) { + if ($PSCmdlet.ShouldProcess($AssignTo, "Assign Autopilot profile $DisplayName")) { #Get assignments - $Assignments = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles/$($GraphRequest.id)/assignments" -tenantid $tenantFilter + $Assignments = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles/$($GraphRequest.id)/assignments" -tenantid $TenantFilter if (!$Assignments) { - $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles/$($GraphRequest.id)/assignments" -tenantid $tenantFilter -type POST -body $AssignBody + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles/$($GraphRequest.id)/assignments" -tenantid $TenantFilter -type POST -body $AssignBody } - Write-LogMessage -Headers $User -API $APIName -tenant $tenantFilter -message "Assigned autopilot profile $($displayName) to $AssignTo" -Sev 'Info' + Write-LogMessage -Headers $User -API $APIName -tenant $TenantFilter -message "Assigned autopilot profile $($DisplayName) to $AssignTo" -Sev 'Info' } } - "Successfully $($Type)ed profile for $tenantFilter" + "Successfully $($Type)ed profile for $TenantFilter" } catch { $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -Headers $User -API $APIName -tenant $tenantFilter -message "Failed $($Type)ing Autopilot Profile $($displayName). Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage - throw "Failed to add profile for $($tenantFilter): $($ErrorMessage.NormalizedError)" + $Result = "Failed $($Type)ing Autopilot Profile $($DisplayName). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $User -API $APIName -tenant $TenantFilter -message $Result -Sev 'Error' -LogData $ErrorMessage + throw $Result } } diff --git a/Modules/CIPPCore/Public/Set-CIPPDefaultAPEnrollment.ps1 b/Modules/CIPPCore/Public/Set-CIPPDefaultAPEnrollment.ps1 index d02794c16c0a..171e1d732695 100644 --- a/Modules/CIPPCore/Public/Set-CIPPDefaultAPEnrollment.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPDefaultAPEnrollment.ps1 @@ -8,14 +8,13 @@ function Set-CIPPDefaultAPEnrollment { $EnableLog, $ErrorMessage, $TimeOutInMinutes, + $InstallWindowsUpdates, $AllowFail, $OBEEOnly, $Headers, $APIName = 'Add Default Enrollment Status Page' ) - $User = $Request.Headers - try { $ObjBody = [pscustomobject]@{ '@odata.type' = '#microsoft.graph.windows10EnrollmentCompletionPageConfiguration' @@ -28,6 +27,7 @@ function Set-CIPPDefaultAPEnrollment { 'allowLogCollectionOnInstallFailure' = [bool]$EnableLog 'customErrorMessage' = "$ErrorMessage" 'installProgressTimeoutInMinutes' = $TimeOutInMinutes + 'installQualityUpdates' = [bool]$InstallWindowsUpdates 'allowDeviceUseOnInstallFailure' = [bool]$AllowFail 'selectedMobileAppIds' = @() 'trackInstallProgressForAutopilotOnly' = [bool]$OBEEOnly @@ -40,11 +40,11 @@ function Set-CIPPDefaultAPEnrollment { if ($PSCmdlet.ShouldProcess($ExistingStatusPage.ID, 'Set Default Enrollment Status Page')) { $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/deviceEnrollmentConfigurations/$($ExistingStatusPage.ID)" -body $Body -Type PATCH -tenantid $TenantFilter "Successfully changed default enrollment status page for $TenantFilter" - Write-LogMessage -Headers $User -API $APIName -tenant $TenantFilter -message "Added Autopilot Enrollment Status Page $($ExistingStatusPage.displayName)" -Sev 'Info' + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message "Added Autopilot Enrollment Status Page $($ExistingStatusPage.displayName)" -Sev 'Info' } } catch { $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -Headers $User -API $APIName -tenant $TenantFilter -message "Failed adding Autopilot Enrollment Status Page $($ExistingStatusPage.displayName). Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message "Failed adding Autopilot Enrollment Status Page $($ExistingStatusPage.displayName). Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage throw "Failed to change default enrollment status page for $($TenantFilter): $($ErrorMessage.NormalizedError)" } } diff --git a/Modules/CIPPCore/Public/Set-CIPPDriftDeviation.ps1 b/Modules/CIPPCore/Public/Set-CIPPDriftDeviation.ps1 new file mode 100644 index 000000000000..f2d13ea545fd --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDriftDeviation.ps1 @@ -0,0 +1,63 @@ +function Set-CIPPDriftDeviation { + <# + .SYNOPSIS + Sets the status of a drift deviation in the tenant drift table + .DESCRIPTION + This function stores drift deviation status changes in the tenantDrift table. + It tracks when deviations are accepted, denied, or marked as customer specific. + .PARAMETER TenantFilter + The tenant filter (used as PartitionKey) + .PARAMETER StandardName + The standard name (used as RowKey, with '.' replaced by '_') + .PARAMETER Status + The status to set. Valid values: Accepted, New, Denied, CustomerSpecific, DeniedRemediate, DeniedDelete + .PARAMETER Reason + Optional reason for the status change + .FUNCTIONALITY + Internal + .EXAMPLE + Set-CIPPDriftDeviation -TenantFilter "contoso.onmicrosoft.com" -StandardName "IntuneTemplates.12345" -Status "Accepted" -Reason "Business requirement" + .EXAMPLE + Set-CIPPDriftDeviation -TenantFilter "contoso.onmicrosoft.com" -StandardName "standards.passwordComplexity" -Status "CustomerSpecific" -Reason "Custom security policy" + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + [Parameter(Mandatory = $true)] + [string]$StandardName, + [Parameter(Mandatory = $true)] + [ValidateSet('Accepted', 'New', 'Denied', 'CustomerSpecific', 'DeniedRemediate', 'DeniedDelete')] + [string]$Status, + [Parameter(Mandatory = $false)] + [string]$Reason, + [string]$user + ) + + try { + $Table = Get-CippTable -tablename 'tenantDrift' + $RowKey = $StandardName -replace '\.', '_' + $Entity = @{ + PartitionKey = $TenantFilter + RowKey = $RowKey + StandardName = $StandardName + Status = $Status + User = $user + LastModified = (Get-Date).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + } + + # Add reason if provided + if ($Reason) { + $Entity.Reason = $Reason + } + + $Result = Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force + + Write-Verbose "Successfully set drift deviation status for $StandardName to $Status" + return "Successfully set drift deviation status for $StandardName to $Status" + + } catch { + Write-Error "Error setting drift deviation status: $($_.Exception.Message)" + throw + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPForwarding.ps1 b/Modules/CIPPCore/Public/Set-CIPPForwarding.ps1 index 81e8cf53c9fe..2db867e16b51 100644 --- a/Modules/CIPPCore/Public/Set-CIPPForwarding.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPForwarding.ps1 @@ -36,10 +36,10 @@ function Set-CIPPForwarding { #> [CmdletBinding(SupportsShouldProcess = $true)] param( - [string]$userid, - [string]$forwardingSMTPAddress, - [string]$tenantFilter, - [string]$username, + [string]$UserID, + [string]$ForwardingSMTPAddress, + [string]$TenantFilter, + [string]$Username, $Headers, [string]$APIName = 'Forwarding', [string]$Forward, @@ -49,25 +49,26 @@ function Set-CIPPForwarding { try { - if (!$username) { $username = $userid } - if ($PSCmdlet.ShouldProcess($username, 'Set forwarding')) { + if (!$Username) { $Username = $UserID } + if ($PSCmdlet.ShouldProcess($Username, 'Set forwarding')) { if ($Disable -eq $true) { - Write-Output "Disabling forwarding for $username" - $null = New-ExoRequest -tenantid $tenantFilter -cmdlet 'Set-mailbox' -cmdParams @{Identity = $userid; ForwardingSMTPAddress = $null; ForwardingAddress = $null ; DeliverToMailboxAndForward = $false } -Anchor $username - $Message = "Disabled forwarding for $username" + Write-Output "Disabling forwarding for $Username" + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-Mailbox' -cmdParams @{Identity = $UserID; ForwardingSMTPAddress = $null; ForwardingAddress = $null ; DeliverToMailboxAndForward = $false } -Anchor $Username + $Message = "Successfully disabled forwarding for $Username" } elseif ($Forward) { - $null = New-ExoRequest -tenantid $tenantFilter -cmdlet 'Set-mailbox' -cmdParams @{Identity = $userid; ForwardingSMTPAddress = $null; ForwardingAddress = $Forward ; DeliverToMailboxAndForward = $KeepCopy } -Anchor $username - $Message = "Forwarding all email for $username to Internal Address $Forward and keeping a copy set to $KeepCopy" + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-Mailbox' -cmdParams @{Identity = $UserID; ForwardingSMTPAddress = $null; ForwardingAddress = $Forward ; DeliverToMailboxAndForward = $KeepCopy } -Anchor $Username + $Message = "Successfully set forwarding for $Username to Internal Address $Forward with keeping a copy set to $KeepCopy" } elseif ($forwardingSMTPAddress) { - $null = New-ExoRequest -tenantid $tenantFilter -cmdlet 'Set-mailbox' -cmdParams @{Identity = $userid; ForwardingSMTPAddress = $forwardingSMTPAddress; ForwardingAddress = $null ; DeliverToMailboxAndForward = $KeepCopy } -Anchor $username - $Message = "Forwarding all email for $username to External Address $ForwardingSMTPAddress and keeping a copy set to $KeepCopy" + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-Mailbox' -cmdParams @{Identity = $UserID; ForwardingSMTPAddress = $ForwardingSMTPAddress; ForwardingAddress = $null ; DeliverToMailboxAndForward = $KeepCopy } -Anchor $Username + $Message = "Successfully set forwarding for $Username to External Address $ForwardingSMTPAddress with keeping a copy set to $KeepCopy" } } Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Info' -tenant $TenantFilter return $Message } catch { $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -headers $Headers -API $APIName -message "Could not add forwarding for $($username). Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage - return "Could not add forwarding for $($username). Error: $($ErrorMessage.NormalizedError)" + $Message = "Failed to set forwarding for $($Username). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + throw $Message } } diff --git a/Modules/CIPPCore/Public/Set-CIPPHideFromGAL.ps1 b/Modules/CIPPCore/Public/Set-CIPPHideFromGAL.ps1 index 23d8bc8e8462..0c87d039ae71 100644 --- a/Modules/CIPPCore/Public/Set-CIPPHideFromGAL.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPHideFromGAL.ps1 @@ -15,8 +15,8 @@ function Set-CIPPHideFromGAL { return $Result } catch { $ErrorMessage = Get-CippException -Exception $_ - $Result = "Failed to hide $($UserId) from GAL. Error: $($ErrorMessage.NormalizedError)" - Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage - return $Result + $Message = "Failed to set $($UserId) to $Text in GAL. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + throw $Message } } diff --git a/Modules/CIPPCore/Public/Set-CIPPIntunePolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPIntunePolicy.ps1 index 71564d7a732f..b0518e1d5d5a 100644 --- a/Modules/CIPPCore/Public/Set-CIPPIntunePolicy.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPIntunePolicy.ps1 @@ -8,12 +8,13 @@ function Set-CIPPIntunePolicy { $AssignTo, $ExcludeGroup, $Headers, - $APINAME, - $tenantFilter + $APIName = 'Set-CIPPIntunePolicy', + $TenantFilter, + $AssignmentFilterName, + $AssignmentFilterType = 'include' ) - $APINAME = 'Set-CIPPIntunePolicy' - $RawJSON = Get-CIPPTextReplacement -TenantFilter $tenantFilter -Text $RawJSON + $RawJSON = Get-CIPPTextReplacement -TenantFilter $TenantFilter -Text $RawJSON try { switch ($TemplateType) { @@ -21,64 +22,87 @@ function Set-CIPPIntunePolicy { $PlatformType = 'deviceAppManagement' $TemplateType = ($RawJSON | ConvertFrom-Json).'@odata.type' -replace '#microsoft.graph.', '' $PolicyFile = $RawJSON | ConvertFrom-Json - $Null = $PolicyFile | Add-Member -MemberType NoteProperty -Name 'description' -Value $description -Force - $null = $PolicyFile | Add-Member -MemberType NoteProperty -Name 'displayName' -Value $displayname -Force + $Null = $PolicyFile | Add-Member -MemberType NoteProperty -Name 'description' -Value $Description -Force + $null = $PolicyFile | Add-Member -MemberType NoteProperty -Name 'displayName' -Value $DisplayName -Force $PolicyFile = $PolicyFile | Select-Object * -ExcludeProperty 'apps' $RawJSON = ConvertTo-Json -InputObject $PolicyFile -Depth 20 $TemplateTypeURL = if ($TemplateType -eq 'windowsInformationProtectionPolicy') { 'windowsInformationProtectionPolicies' } else { "$($TemplateType)s" } - $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter - if ($displayname -in $CheckExististing.displayName) { + $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter + if ($DisplayName -in $CheckExististing.displayName) { $PostType = 'edited' - $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $displayname - $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $tenantFilter -type PATCH -body $RawJSON + $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $TenantFilter -type PATCH -body $RawJSON $CreateRequest = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName } else { $PostType = 'added' - $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter -type POST -body $RawJSON + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter -type POST -body $RawJSON + } + } + 'AppConfiguration' { + $PlatformType = 'deviceAppManagement' + $TemplateTypeURL = 'mobileAppConfigurations' + $PolicyFile = $RawJSON | ConvertFrom-Json + $Null = $PolicyFile | Add-Member -MemberType NoteProperty -Name 'description' -Value $Description -Force + $null = $PolicyFile | Add-Member -MemberType NoteProperty -Name 'displayName' -Value $DisplayName -Force + $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter + if ($DisplayName -in $CheckExististing.displayName) { + $PostType = 'edited' + $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName + $PolicyFile = $PolicyFile | Select-Object * -ExcludeProperty id, createdDateTime, lastModifiedDateTime, version, '@odata.context', targetedMobileApps + $RawJSON = ConvertTo-Json -InputObject $PolicyFile -Depth 20 -Compress + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $TenantFilter -type PATCH -body $RawJSON + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Updated policy $($DisplayName) to template defaults" -Sev 'info' + $CreateRequest = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName + } else { + $PostType = 'added' + $PolicyFile = $PolicyFile | Select-Object * -ExcludeProperty id, createdDateTime, lastModifiedDateTime, version, '@odata.context' + $RawJSON = ConvertTo-Json -InputObject $PolicyFile -Depth 20 -Compress + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter -type POST -body $RawJSON + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' } } 'deviceCompliancePolicies' { $PlatformType = 'deviceManagement' $TemplateTypeURL = 'deviceCompliancePolicies' - $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter + $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter $JSON = $RawJSON | ConvertFrom-Json | Select-Object * -ExcludeProperty id, createdDateTime, lastModifiedDateTime, version, 'scheduledActionsForRule@odata.context', '@odata.context' $JSON.scheduledActionsForRule = @($JSON.scheduledActionsForRule | Select-Object * -ExcludeProperty 'scheduledActionConfigurations@odata.context') - if ($displayname -in $CheckExististing.displayName) { + if ($DisplayName -in $CheckExististing.displayName) { $RawJSON = ConvertTo-Json -InputObject ($JSON | Select-Object * -ExcludeProperty 'scheduledActionsForRule') -Depth 20 -Compress $PostType = 'edited' - $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $displayname - $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $tenantFilter -type PATCH -body $RawJSON - Write-LogMessage -headers $Headers -API $APINAME -tenant $($tenantFilter) -message "Updated policy $($DisplayName) to template defaults" -Sev 'info' + $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $TenantFilter -type PATCH -body $RawJSON + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Updated policy $($DisplayName) to template defaults" -Sev 'info' $CreateRequest = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName } else { $RawJSON = ConvertTo-Json -InputObject $JSON -Depth 20 -Compress $PostType = 'added' - $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter -type POST -body $RawJSON - Write-LogMessage -headers $Headers -API $APINAME -tenant $($tenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter -type POST -body $RawJSON + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' } } 'Admin' { $PlatformType = 'deviceManagement' $TemplateTypeURL = 'groupPolicyConfigurations' - $CreateBody = '{"description":"' + $description + '","displayName":"' + $displayname + '","roleScopeTagIds":["0"]}' - $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter - if ($displayname -in $CheckExististing.displayName) { - $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $displayname - $ExistingData = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($ExistingID.id)')/definitionValues" -tenantid $tenantFilter + $CreateBody = '{"description":"' + $Description + '","displayName":"' + $DisplayName + '","roleScopeTagIds":["0"]}' + $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter + if ($DisplayName -in $CheckExististing.displayName) { + $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName + $ExistingData = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($ExistingID.id)')/definitionValues" -tenantid $TenantFilter $DeleteJson = $RawJSON | ConvertFrom-Json -Depth 10 $DeleteJson | Add-Member -MemberType NoteProperty -Name 'deletedIds' -Value @($ExistingData.id) -Force $DeleteJson | Add-Member -MemberType NoteProperty -Name 'added' -Value @() -Force $DeleteJson = ConvertTo-Json -Depth 10 -InputObject $DeleteJson - $DeleteRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($ExistingID.id)')/updateDefinitionValues" -tenantid $tenantFilter -type POST -body $DeleteJson - $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($ExistingID.id)')/updateDefinitionValues" -tenantid $tenantFilter -type POST -body $RawJSON + $DeleteRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($ExistingID.id)')/updateDefinitionValues" -tenantid $TenantFilter -type POST -body $DeleteJson + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($ExistingID.id)')/updateDefinitionValues" -tenantid $TenantFilter -type POST -body $RawJSON $CreateRequest = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName - Write-LogMessage -headers $Headers -API $APINAME -tenant $($tenantFilter) -message "Updated policy $($Displayname) to template defaults" -Sev 'info' + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Updated policy $($DisplayName) to template defaults" -Sev 'info' $PostType = 'edited' } else { $PostType = 'added' - $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter -type POST -body $CreateBody - $UpdateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($CreateRequest.id)')/updateDefinitionValues" -tenantid $tenantFilter -type POST -body $RawJSON - Write-LogMessage -headers $Headers -API $APINAME -tenant $($tenantFilter) -message "Added policy $($Displayname) to template defaults" -Sev 'info' + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter -type POST -body $CreateBody + $UpdateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($CreateRequest.id)')/updateDefinitionValues" -tenantid $TenantFilter -type POST -body $RawJSON + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Added policy $($DisplayName) to template defaults" -Sev 'info' } } @@ -86,9 +110,9 @@ function Set-CIPPIntunePolicy { $PlatformType = 'deviceManagement' $TemplateTypeURL = 'deviceConfigurations' $PolicyFile = $RawJSON | ConvertFrom-Json - $Null = $PolicyFile | Add-Member -MemberType NoteProperty -Name 'description' -Value "$description" -Force - $null = $PolicyFile | Add-Member -MemberType NoteProperty -Name 'displayName' -Value $displayname -Force - $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter + $Null = $PolicyFile | Add-Member -MemberType NoteProperty -Name 'description' -Value "$Description" -Force + $null = $PolicyFile | Add-Member -MemberType NoteProperty -Name 'displayName' -Value $DisplayName -Force + $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName | Select-Object -Last 1 $PolicyFile = $policyFile | Select-Object * -ExcludeProperty 'featureUpdatesWillBeRolledBack', 'qualityUpdatesWillBeRolledBack', 'qualityUpdatesPauseStartDate', 'featureUpdatesPauseStartDate' $RawJSON = ConvertTo-Json -InputObject $PolicyFile -Depth 100 -Compress @@ -97,11 +121,11 @@ function Set-CIPPIntunePolicy { Write-Host "Raw JSON is $RawJSON" $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $tenantFilter -type PATCH -body $RawJSON $CreateRequest = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName - Write-LogMessage -headers $Headers -API $APINAME -tenant $($tenantFilter) -message "Updated policy $($DisplayName) to template defaults" -Sev 'info' + Write-LogMessage -headers $Headers -API $APIName -tenant $($tenantFilter) -message "Updated policy $($DisplayName) to template defaults" -Sev 'info' } else { $PostType = 'added' $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter -type POST -body $RawJSON - Write-LogMessage -headers $Headers -API $APINAME -tenant $($tenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' + Write-LogMessage -headers $Headers -API $APIName -tenant $($tenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' } } @@ -109,18 +133,52 @@ function Set-CIPPIntunePolicy { $PlatformType = 'deviceManagement' $TemplateTypeURL = 'configurationPolicies' $DisplayName = ($RawJSON | ConvertFrom-Json).Name - $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter + + $Template = $RawJSON | ConvertFrom-Json + if ($Template.templateReference.templateId) { + Write-Information "Checking configuration policy template $($Template.templateReference.templateId) for $($DisplayName)" + # Remove unavailable settings from the template + $AvailableSettings = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/deviceManagement/configurationPolicyTemplates('$($Template.templateReference.templateId)')/settingTemplates?`$expand=settingDefinitions&`$top=1000" -tenantid $tenantFilter + + if ($AvailableSettings) { + Write-Information "Available settings for template $($Template.templateReference.templateId): $($AvailableSettings.Count)" + $FilteredSettings = [System.Collections.Generic.List[psobject]]::new() + foreach ($setting in $Template.settings) { + if ($setting.settingInstance.settingInstanceTemplateReference.settingInstanceTemplateId -in $AvailableSettings.settingInstanceTemplate.settingInstanceTemplateId) { + $AvailableSetting = $AvailableSettings | Where-Object { $_.settingInstanceTemplate.settingInstanceTemplateId -eq $setting.settingInstance.settingInstanceTemplateReference.settingInstanceTemplateId } + + if ($AvailableSetting.settingInstanceTemplate.settingInstanceTemplateId -cnotmatch $setting.settingInstance.settingInstanceTemplateReference.settingInstanceTemplateId) { + # update casing + Write-Information "Fixing casing for setting instance template $($AvailableSetting.settingInstanceTemplate.settingInstanceTemplateId)" + $setting.settingInstance.settingInstanceTemplateReference.settingInstanceTemplateId = $AvailableSetting.settingInstanceTemplate.settingInstanceTemplateId + } + + if ($AvailableSetting.settingInstanceTemplate.choiceSettingValueTemplate -cnotmatch $setting.settingInstance.choiceSettingValue.settingValueTemplateReference.settingValueTemplateId) { + # update choice setting value template + Write-Information "Fixing casing for choice setting value template $($AvailableSetting.settingInstanceTemplate.choiceSettingValueTemplate.settingValueTemplateId)" + $setting.settingInstance.choiceSettingValue.settingValueTemplateReference.settingValueTemplateId = $AvailableSetting.settingInstanceTemplate.choiceSettingValueTemplate.settingValueTemplateId + } + + $FilteredSettings.Add($setting) + } + } + $Template.settings = $FilteredSettings + $RawJSON = $Template | ConvertTo-Json -Depth 100 -Compress + } + } + + $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter if ($DisplayName -in $CheckExististing.name) { $PolicyFile = $RawJSON | ConvertFrom-Json | Select-Object * -ExcludeProperty Platform, PolicyType, CreationSource $RawJSON = ConvertTo-Json -InputObject $PolicyFile -Depth 100 -Compress $ExistingID = $CheckExististing | Where-Object -Property Name -EQ $DisplayName - $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $tenantFilter -type PUT -body $RawJSON + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $TenantFilter -type PUT -body $RawJSON $CreateRequest = $CheckExististing | Where-Object -Property Name -EQ $DisplayName $PostType = 'edited' } else { $PostType = 'added' - $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter -type POST -body $RawJSON - Write-LogMessage -headers $Headers -API $APINAME -tenant $($tenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter -type POST -body $RawJSON + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' } } 'windowsDriverUpdateProfiles' { @@ -128,19 +186,19 @@ function Set-CIPPIntunePolicy { $TemplateTypeURL = 'windowsDriverUpdateProfiles' $File = ($RawJSON | ConvertFrom-Json) $DisplayName = $File.displayName ?? $File.Name - $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter + $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter if ($DisplayName -in $CheckExististing.displayName) { $PostType = 'edited' $PolicyFile = $RawJSON | ConvertFrom-Json | Select-Object * -ExcludeProperty inventorySyncStatus, newUpdates, deviceReporting, approvalType $RawJSON = ConvertTo-Json -InputObject $PolicyFile -Depth 100 -Compress - $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $displayname + $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName Write-Host 'We are editing' - $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $tenantFilter -type PATCH -body $RawJSON + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $TenantFilter -type PATCH -body $RawJSON $CreateRequest = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName } else { $PostType = 'added' - $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter -type POST -body $RawJSON - Write-LogMessage -headers $Headers -API $APINAME -tenant $($tenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter -type POST -body $RawJSON + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' } } 'windowsFeatureUpdateProfiles' { @@ -153,15 +211,15 @@ function Set-CIPPIntunePolicy { $PostType = 'edited' $PolicyFile = $RawJSON | ConvertFrom-Json | Select-Object * -ExcludeProperty deployableContentDisplayName, endOfSupportDate, installLatestWindows10OnWindows11IneligibleDevice $RawJSON = ConvertTo-Json -InputObject $PolicyFile -Depth 100 -Compress - $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $displayname + $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName Write-Host 'We are editing' - $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $tenantFilter -type PATCH -body $RawJSON + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $TenantFilter -type PATCH -body $RawJSON $CreateRequest = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName } else { $PostType = 'added' - $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter -type POST -body $RawJSON - Write-LogMessage -headers $Headers -API $APINAME -tenant $($tenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter -type POST -body $RawJSON + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' } } 'windowsQualityUpdatePolicies' { @@ -169,19 +227,19 @@ function Set-CIPPIntunePolicy { $TemplateTypeURL = 'windowsQualityUpdatePolicies' $File = ($RawJSON | ConvertFrom-Json) $DisplayName = $File.displayName ?? $File.Name - $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter + $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter if ($DisplayName -in $CheckExististing.displayName) { $PostType = 'edited' $PolicyFile = $RawJSON | ConvertFrom-Json | Select-Object * $RawJSON = ConvertTo-Json -InputObject $PolicyFile -Depth 100 -Compress - $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $displayname + $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName Write-Host 'We are editing' - $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $tenantFilter -type PATCH -body $RawJSON + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $TenantFilter -type PATCH -body $RawJSON $CreateRequest = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName } else { $PostType = 'added' - $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter -type POST -body $RawJSON - Write-LogMessage -headers $Headers -API $APINAME -tenant $($tenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter -type POST -body $RawJSON + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' } } 'windowsQualityUpdateProfiles' { @@ -189,33 +247,47 @@ function Set-CIPPIntunePolicy { $TemplateTypeURL = 'windowsQualityUpdateProfiles' $File = ($RawJSON | ConvertFrom-Json) $DisplayName = $File.displayName ?? $File.Name - $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter + $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter if ($DisplayName -in $CheckExististing.displayName) { $PostType = 'edited' $PolicyFile = $RawJSON | ConvertFrom-Json | Select-Object * -ExcludeProperty releaseDateDisplayName, deployableContentDisplayName $RawJSON = ConvertTo-Json -InputObject $PolicyFile -Depth 100 -Compress - $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $displayname + $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName Write-Host 'We are editing' - $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $tenantFilter -type PATCH -body $RawJSON + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $TenantFilter -type PATCH -body $RawJSON $CreateRequest = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName } else { $PostType = 'added' - $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter -type POST -body $RawJSON - Write-LogMessage -headers $Headers -API $APINAME -tenant $($tenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter -type POST -body $RawJSON + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' } } } - Write-LogMessage -headers $Headers -API $APINAME -tenant $($tenantFilter) -message "$($PostType) policy $($Displayname)" -Sev 'Info' + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "$($PostType) policy $($DisplayName)" -Sev 'Info' if ($AssignTo) { - Write-Host "Assigning policy to $($AssignTo) with ID $($CreateRequest.id) and type $TemplateTypeURL for tenant $tenantFilter" + Write-Host "Assigning policy to $($AssignTo) with ID $($CreateRequest.id) and type $TemplateTypeURL for tenant $TenantFilter" Write-Host "ID is $($CreateRequest.id)" - Set-CIPPAssignedPolicy -GroupName $AssignTo -PolicyId $CreateRequest.id -PlatformType $PlatformType -Type $TemplateTypeURL -TenantFilter $tenantFilter -ExcludeGroup $ExcludeGroup + $AssignParams = @{ + GroupName = $AssignTo + PolicyId = $CreateRequest.id + PlatformType = $PlatformType + Type = $TemplateTypeURL + TenantFilter = $tenantFilter + ExcludeGroup = $ExcludeGroup + } + + if ($AssignmentFilterName) { + $AssignParams.AssignmentFilterName = $AssignmentFilterName + $AssignParams.AssignmentFilterType = $AssignmentFilterType + } + + Set-CIPPAssignedPolicy @AssignParams } - return "Successfully $($PostType) policy for $($tenantFilter) with display name $($Displayname)" + return "Successfully $($PostType) policy for $($TenantFilter) with display name $($DisplayName)" } catch { $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -headers $Headers -API $APINAME -tenant $($tenantFilter) -message "Failed $($PostType) policy $($Displayname). Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage - throw "Failed to add or set policy for $($tenantFilter) with display name $($Displayname): $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Failed $($PostType) policy $($DisplayName). Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + throw "Failed to add or set policy for $($TenantFilter) with display name $($DisplayName): $($ErrorMessage.NormalizedError)" } } diff --git a/Modules/CIPPCore/Public/Set-CIPPIntuneTemplate.ps1 b/Modules/CIPPCore/Public/Set-CIPPIntuneTemplate.ps1 index 82e213299226..b2371545d135 100644 --- a/Modules/CIPPCore/Public/Set-CIPPIntuneTemplate.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPIntuneTemplate.ps1 @@ -6,6 +6,7 @@ function Set-CIPPIntuneTemplate { $DisplayName, $Description, $templateType, + $Package, $Headers ) Write-Host "Received $DisplayName, $Description, $RawJSON, $templateType" @@ -25,6 +26,7 @@ function Set-CIPPIntuneTemplate { JSON = "$object" RowKey = "$GUID" GUID = "$GUID" + Package = "$Package" PartitionKey = 'IntuneTemplate' } Write-LogMessage -Headers $Headers -API $APINAME -message "Created intune policy template named $($Request.body.displayname) with GUID $GUID" -Sev 'Debug' diff --git a/Modules/CIPPCore/Public/Set-CIPPMailboxAccess.ps1 b/Modules/CIPPCore/Public/Set-CIPPMailboxAccess.ps1 index 7ac44a00b9ee..c4ab09866086 100644 --- a/Modules/CIPPCore/Public/Set-CIPPMailboxAccess.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPMailboxAccess.ps1 @@ -11,18 +11,15 @@ function Set-CIPPMailboxAccess { ) try { - $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Add-MailboxPermission' -cmdParams @{Identity = $userid; user = $AccessUser; automapping = $Automap; accessRights = $AccessRights; InheritanceType = 'all' } -Anchor $userid + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Add-MailboxPermission' -cmdParams @{Identity = $userid; user = $AccessUser; AutoMapping = $Automap; accessRights = $AccessRights; InheritanceType = 'all' } -Anchor $userid - if ($Automap) { - Write-LogMessage -headers $Headers -API $APIName -message "Gave $AccessRights permissions to $($AccessUser) on $($userid) with automapping" -Sev 'Info' -tenant $TenantFilter - return "Added $($AccessUser) to $($userid) Shared Mailbox with automapping, with the following permissions: $AccessRights" - } else { - Write-LogMessage -headers $Headers -API $APIName -message "Gave $AccessRights permissions to $($AccessUser) on $($userid) without automapping" -Sev 'Info' -tenant $TenantFilter - return "Added $($AccessUser) to $($userid) Shared Mailbox without automapping, with the following permissions: $AccessRights" - } + $Message = "Successfully added $($AccessUser) to $($userid) Shared Mailbox $($Automap ? 'with' : 'without') AutoMapping, with the following permissions: $AccessRights" + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Info' -tenant $TenantFilter + return $Message } catch { $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -headers $Headers -API $APIName -message "Could not add mailbox permissions for $($AccessUser) on $($userid). Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage - return "Could not add shared mailbox permissions for $($userid). Error: $($ErrorMessage.NormalizedError)" + $Message = "Failed to add mailbox permissions for $($AccessUser) on $($userid). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + throw $Message } } diff --git a/Modules/CIPPCore/Public/Set-CIPPMailboxRule.ps1 b/Modules/CIPPCore/Public/Set-CIPPMailboxRule.ps1 index cbbd39cd0916..b7b0f4810c15 100644 --- a/Modules/CIPPCore/Public/Set-CIPPMailboxRule.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPMailboxRule.ps1 @@ -22,7 +22,7 @@ } try { - $null = New-ExoRequest -tenantid $TenantFilter -cmdlet "$State-InboxRule" -Anchor $Username -cmdParams @{Identity = $RuleId } + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet "$State-InboxRule" -Anchor $Username -cmdParams @{Identity = $RuleId; mailbox = $UserId } -Headers $Headers Write-LogMessage -headers $Headers -API $APIName -message "Successfully set mailbox rule $($RuleName) for $($Username) to $($State)d" -Sev 'Info' -tenant $TenantFilter return "Successfully set mailbox rule $($RuleName) for $($Username) to $($State)d" } catch { diff --git a/Modules/CIPPCore/Public/Set-CIPPMailboxType.ps1 b/Modules/CIPPCore/Public/Set-CIPPMailboxType.ps1 index 60f9a6fb4fbf..ed8fdd7060e8 100644 --- a/Modules/CIPPCore/Public/Set-CIPPMailboxType.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPMailboxType.ps1 @@ -13,13 +13,13 @@ function Set-CIPPMailboxType { try { if ([string]::IsNullOrWhiteSpace($Username)) { $Username = $UserID } $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-Mailbox' -cmdParams @{Identity = $UserID; Type = $MailboxType } -Anchor $Username - $Message = "Converted $Username to a $MailboxType mailbox" + $Message = "Successfully converted $Username to a $MailboxType mailbox" Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Info' -tenant $TenantFilter return $Message } catch { $ErrorMessage = Get-CippException -Exception $_ - $Message = "Could not convert $Username to a $MailboxType mailbox. Error: $($ErrorMessage.NormalizedError)" + $Message = "Failed to convert $Username to a $MailboxType mailbox. Error: $($ErrorMessage.NormalizedError)" Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage - return $Message + throw $Message } } diff --git a/Modules/CIPPCore/Public/Set-CIPPManager.ps1 b/Modules/CIPPCore/Public/Set-CIPPManager.ps1 index e9d172853173..c1394b04936d 100644 --- a/Modules/CIPPCore/Public/Set-CIPPManager.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPManager.ps1 @@ -1,7 +1,7 @@ function Set-CIPPManager { [CmdletBinding()] param ( - $user, + $User, $Manager, $TenantFilter, $APIName = 'Set Manager', @@ -11,12 +11,13 @@ function Set-CIPPManager { try { $ManagerBody = [PSCustomObject]@{'@odata.id' = "https://graph.microsoft.com/beta/users/$($Manager)" } $ManagerBodyJSON = ConvertTo-Json -Compress -Depth 10 -InputObject $ManagerBody - New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($User)/manager/`$ref" -tenantid $TenantFilter -type PUT -body $ManagerBodyJSON -Verbose - Write-LogMessage -headers $Headers -API $APINAME -tenant $UserObj.tenantID -message "Set $user's manager to $Manager" -Sev 'Info' + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($User)/manager/`$ref" -tenantid $TenantFilter -type PUT -body $ManagerBodyJSON + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Set $User's manager to $Manager" -Sev 'Info' } catch { - Write-LogMessage -headers $Headers -API $APINAME -tenant $($UserObj.tenantID) -message "Failed to Set Manager. Error:$($_.Exception.Message)" -Sev 'Error' - throw "Failed to set manager: $($_.Exception.Message)" + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Failed to Set Manager. Error:$($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $_ + throw "Failed to set manager: $($ErrorMessage.NormalizedError)" } - return "Set $user's manager to $Manager" + return "Set $User's manager to $Manager" } diff --git a/Modules/CIPPCore/Public/Set-CIPPMessageCopy.ps1 b/Modules/CIPPCore/Public/Set-CIPPMessageCopy.ps1 index 512d56a75257..08e15977157e 100644 --- a/Modules/CIPPCore/Public/Set-CIPPMessageCopy.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPMessageCopy.ps1 @@ -1,20 +1,27 @@ function Set-CIPPMessageCopy { [CmdletBinding()] param ( - $userid, + $UserId, [bool]$MessageCopyForSentAsEnabled, + [bool]$MessageCopyForSendOnBehalfEnabled, $TenantFilter, - $APIName = 'Manage OneDrive Access', + $APIName = 'Set message copy for sent', $Headers ) - Try { - $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-Mailbox' -cmdParams @{Identity = $userid; MessageCopyForSentAsEnabled = $MessageCopyForSentAsEnabled } - $Result = "Successfully set MessageCopyForSentAsEnabled as $MessageCopyForSentAsEnabled on $($userid)." + try { + $cmdParams = @{ + Identity = $UserId + MessageCopyForSentAsEnabled = $MessageCopyForSentAsEnabled + MessageCopyForSendOnBehalfEnabled = $MessageCopyForSendOnBehalfEnabled + + } + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-Mailbox' -cmdParams $cmdParams + $Result = "Successfully set message copy for 'Send as' as $MessageCopyForSentAsEnabled and 'Sent on behalf' as $MessageCopyForSendOnBehalfEnabled on $($UserId)." Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message $Result -Sev 'Info' return $Result } catch { $ErrorMessage = Get-CippException -Exception $_ - $Result = "Failed to set MessageCopyForSentAsEnabled to $MessageCopyForSentAsEnabled - $($ErrorMessage.NormalizedError)" + $Result = "Failed to set message copy for 'Send as' as $MessageCopyForSentAsEnabled and 'Sent on behalf' as $MessageCopyForSendOnBehalfEnabled - $($ErrorMessage.NormalizedError)" Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message $Result -Sev 'Error' -LogData $ErrorMessage throw $Result } diff --git a/Modules/CIPPCore/Public/Set-CIPPNamedLocation.ps1 b/Modules/CIPPCore/Public/Set-CIPPNamedLocation.ps1 index 888622741f86..3e23d70b8edf 100644 --- a/Modules/CIPPCore/Public/Set-CIPPNamedLocation.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPNamedLocation.ps1 @@ -24,12 +24,14 @@ function Set-CIPPNamedLocation { $ActionDescription = "Adding location $Content to named location" } 'removeIp' { - $NamedLocations.ipRanges = @($NamedLocations.ipRanges | Where-Object -Property cidrAddress -NE $Content) - $ActionDescription = "Removing IP $Content from named location" + $IpsToRemove = @($Content) + $NamedLocations.ipRanges = @($NamedLocations.ipRanges | Where-Object { $_.cidrAddress -notin $IpsToRemove }) + $ActionDescription = "Removing IP(s) $($IpsToRemove -join ', ') from named location" } 'removeLocation' { - $NamedLocations.countriesAndRegions = @($NamedLocations.countriesAndRegions | Where-Object { $_ -NE $Content }) - $ActionDescription = "Removing location $Content from named location" + $LocationsToRemove = @($Content) + $NamedLocations.countriesAndRegions = @($NamedLocations.countriesAndRegions | Where-Object { $_ -notin $LocationsToRemove }) + $ActionDescription = "Removing location(s) $($LocationsToRemove -join ', ') from named location" } 'rename' { $NamedLocations.displayName = $Content diff --git a/Modules/CIPPCore/Public/Set-CIPPOutOfoffice.ps1 b/Modules/CIPPCore/Public/Set-CIPPOutOfoffice.ps1 index ced3fad0a5af..19f7fae9e445 100644 --- a/Modules/CIPPCore/Public/Set-CIPPOutOfoffice.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPOutOfoffice.ps1 @@ -18,8 +18,9 @@ function Set-CIPPOutOfOffice { try { $CmdParams = @{ - Identity = $UserID - AutoReplyState = $State + Identity = $UserID + AutoReplyState = $State + ExternalAudience = 'None' } if ($PSBoundParameters.ContainsKey('InternalMessage')) { @@ -28,6 +29,7 @@ function Set-CIPPOutOfOffice { if ($PSBoundParameters.ContainsKey('ExternalMessage')) { $CmdParams.ExternalMessage = $ExternalMessage + $CmdParams.ExternalAudience = 'All' } if ($State -eq 'Scheduled') { diff --git a/Modules/CIPPCore/Public/Set-CIPPPerUserMFA.ps1 b/Modules/CIPPCore/Public/Set-CIPPPerUserMFA.ps1 index 7d5642fe37bc..e06a75b7b070 100644 --- a/Modules/CIPPCore/Public/Set-CIPPPerUserMFA.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPPerUserMFA.ps1 @@ -53,15 +53,6 @@ function Set-CIPPPerUserMFA { $Requests = New-GraphBulkRequest -tenantid $TenantFilter -scope 'https://graph.microsoft.com/.default' -Requests @($Requests) -asapp $true "Successfully set Per user MFA State for $userId" - $Users = foreach ($id in $userId) { - @{ - userId = $id - Properties = @{ - perUserMfaState = $State - } - } - } - Set-CIPPUserSchemaProperties -TenantFilter $TenantFilter -Users $Users Write-LogMessage -headers $Headers -API $APIName -message "Successfully set Per user MFA State to $State for $id" -Sev Info -tenant $TenantFilter } catch { $ErrorMessage = Get-CippException -Exception $_ diff --git a/Modules/CIPPCore/Public/Set-CIPPResetPassword.ps1 b/Modules/CIPPCore/Public/Set-CIPPResetPassword.ps1 index 69b780169c69..1285bbf1f402 100644 --- a/Modules/CIPPCore/Public/Set-CIPPResetPassword.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPResetPassword.ps1 @@ -22,31 +22,35 @@ function Set-CIPPResetPassword { $null = New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/users/$($UserID)" -tenantid $TenantFilter -type PATCH -body $passwordProfile -verbose #PWPush - $PasswordLink = New-PwPushLink -Payload $password - if ($PasswordLink) { - $password = $PasswordLink + $PasswordLink = $null + try { + $PasswordLink = New-PwPushLink -Payload $password + if ($PasswordLink -and $PasswordLink -ne $false) { + $password = $PasswordLink + } + } + catch { + Write-LogMessage -headers $Headers -API $APIName -message "Failed to create PwPush link, using plain password. Error: $($_.Exception.Message)" -Sev 'Warning' -tenant $TenantFilter } - Write-LogMessage -headers $Headers -API $APIName -message "Reset the password for $DisplayName, $($UserID). User must change password is set to $forceChangePasswordNextSignIn" -Sev 'Info' -tenant $TenantFilter + Write-LogMessage -headers $Headers -API $APIName -message "Successfully reset the password for $DisplayName, $($UserID). User must change password is set to $forceChangePasswordNextSignIn" -Sev 'Info' -tenant $TenantFilter if ($UserDetails.onPremisesSyncEnabled -eq $true) { return [pscustomobject]@{ - resultText = "Reset the password for $DisplayName, $($UserID). User must change password is set to $forceChangePasswordNextSignIn. The new password is $password. WARNING: This user is AD synced. Please confirm passthrough or writeback is enabled." + resultText = "Successfully reset the password for $DisplayName, $($UserID). User must change password is set to $forceChangePasswordNextSignIn. The new password is $password. WARNING: This user is AD synced. Please confirm passthrough or writeback is enabled." copyField = $password state = 'warning' } } else { return [pscustomobject]@{ - resultText = "Reset the password for $DisplayName, $($UserID). User must change password is set to $forceChangePasswordNextSignIn. The new password is $password" + resultText = "Successfully reset the password for $DisplayName, $($UserID). User must change password is set to $forceChangePasswordNextSignIn. The new password is $password" copyField = $password state = 'success' } } } catch { $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -headers $Headers -API $APIName -message "Could not reset password for $DisplayName, $($UserID). Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage - return [pscustomobject]@{ - resultText = "Could not reset password for $DisplayName, $($UserID). Error: $($ErrorMessage.NormalizedError)" - state = 'Error' - } + $Message = "Failed to reset password for $DisplayName, $($UserID). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + throw $Message } } diff --git a/Modules/CIPPCore/Public/Set-CIPPSPOTenant.ps1 b/Modules/CIPPCore/Public/Set-CIPPSPOTenant.ps1 index c5c6db30d5da..6f7251b04034 100644 --- a/Modules/CIPPCore/Public/Set-CIPPSPOTenant.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPSPOTenant.ps1 @@ -29,7 +29,7 @@ function Set-CIPPSPOTenant { #> [CmdletBinding(SupportsShouldProcess = $true)] - Param( + param( [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $true)] [string]$TenantFilter, [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $true)] @@ -65,7 +65,7 @@ function Set-CIPPSPOTenant { } $xml = @" - $($PropertyToSet) + $($PropertyToSet) "@ $SetProperty.Add($xml) diff --git a/Modules/CIPPCore/Public/Set-CIPPSharePointPerms.ps1 b/Modules/CIPPCore/Public/Set-CIPPSharePointPerms.ps1 index 17bf2358d2de..ffc4dbd72fd6 100644 --- a/Modules/CIPPCore/Public/Set-CIPPSharePointPerms.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPSharePointPerms.ps1 @@ -42,17 +42,18 @@ function Set-CIPPSharePointPerms { $request = New-GraphPostRequest -scope "$($SharePointInfo.AdminUrl)/.default" -tenantid $TenantFilter -Uri "$($SharePointInfo.AdminUrl)/_vti_bin/client.svc/ProcessQuery" -Type POST -Body $XML -ContentType 'text/xml' # Write-Host $($request) if (!$request.ErrorInfo.ErrorMessage) { - $Message = "$($OnedriveAccessUser) has been $($RemovePermission ? 'removed from' : 'given') access to $URL" + $Message = "Successfully $($RemovePermission ? 'removed' : 'added') $($OnedriveAccessUser) as an owner of $URL" Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev Info -tenant $TenantFilter return $Message } else { - $message = "Failed to change access: $($request.ErrorInfo.ErrorMessage)" - Write-LogMessage -headers $Headers -API $APIName -message $message -Sev Error -tenant $TenantFilter + $Message = "Failed to change access: $($request.ErrorInfo.ErrorMessage)" + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev Error -tenant $TenantFilter throw $Message } } catch { $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -headers $Headers -API $APIName -message "Could not add new owner to $($OnedriveAccessUser) on $URL. Error: $($ErrorMessage.NormalizedError)" -Sev Error -tenant $TenantFilter -LogData $ErrorMessage - return "Could not add owner for $($URL). Error: $($ErrorMessage.NormalizedError)" + $Message = "Failed to set SharePoint permissions for $($OnedriveAccessUser) on $URL. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev Error -tenant $TenantFilter -LogData $ErrorMessage + throw $Message } } diff --git a/Modules/CIPPCore/Public/Set-CIPPSignInState.ps1 b/Modules/CIPPCore/Public/Set-CIPPSignInState.ps1 index bf2266cae08b..ced2b88f701f 100644 --- a/Modules/CIPPCore/Public/Set-CIPPSignInState.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPSignInState.ps1 @@ -15,17 +15,18 @@ function Set-CIPPSignInState { $body = ConvertTo-Json -InputObject $body -Compress -Depth 5 $UserDetails = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/users/$($UserID)?`$select=onPremisesSyncEnabled" -noPagination $true -tenantid $TenantFilter -verbose $null = New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/users/$($UserID)" -tenantid $TenantFilter -type PATCH -body $body -verbose - Write-LogMessage -headers $Headers -API $APIName -message "Set account enabled state to $AccountEnabled for $UserID" -Sev 'Info' -tenant $TenantFilter + Write-LogMessage -headers $Headers -API $APIName -message "Successfully set account enabled state to $AccountEnabled for $UserID" -Sev 'Info' -tenant $TenantFilter if ($UserDetails.onPremisesSyncEnabled -eq $true) { - return 'WARNING: User is AD Sync enabled. Please enable/disable in AD.' + throw "WARNING: User $UserID is AD Sync enabled. Please enable/disable in the local AD." } else { - return "Set account enabled state to $AccountEnabled for $UserID" + return "Successfully set account enabled state to $AccountEnabled for $UserID" } } catch { $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -headers $Headers -API $APIName -message "Could not disable sign in for $UserID. Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage - return "Could not disable $UserId. Error: $($ErrorMessage.NormalizedError)" + $Message = "Failed to set sign-in state for $UserID. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + throw $Message } } diff --git a/Modules/CIPPCore/Public/Set-CIPPSponsor.ps1 b/Modules/CIPPCore/Public/Set-CIPPSponsor.ps1 new file mode 100644 index 000000000000..ad2444c01b9f --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPSponsor.ps1 @@ -0,0 +1,22 @@ +function Set-CIPPSponsor { + [CmdletBinding()] + param ( + $User, + $Sponsor, + $TenantFilter, + $APIName = 'Set Sponsor', + $Headers + ) + + try { + $SponsorBody = [PSCustomObject]@{'@odata.id' = "https://graph.microsoft.com/beta/users/$($Sponsor)" } + $SponsorBodyJSON = ConvertTo-Json -Compress -Depth 10 -InputObject $SponsorBody + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($User)/sponsors/`$ref" -tenantid $TenantFilter -type PUT -body $SponsorBodyJSON + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Set $User's sponsor to $Sponsor" -Sev 'Info' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Failed to Set Sponsor. Error:$($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $_ + throw "Failed to set sponsor: $($_.Exception.Message)" + } + return "Set $user's sponsor to $Sponsor" +} diff --git a/Modules/CIPPCore/Public/Set-CIPPStandardsCompareField.ps1 b/Modules/CIPPCore/Public/Set-CIPPStandardsCompareField.ps1 index 96c23dbc9fc6..ab01757ac4e6 100644 --- a/Modules/CIPPCore/Public/Set-CIPPStandardsCompareField.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPStandardsCompareField.ps1 @@ -2,39 +2,131 @@ function Set-CIPPStandardsCompareField { [CmdletBinding(SupportsShouldProcess = $true)] param ( $FieldName, - $FieldValue, - $TenantFilter + $FieldValue, #FieldValue is here for backward compatibility. + $CurrentValue, #The latest actual value in raw json + $ExpectedValue, #The expected value - e.g. the settings object from our standard + $TenantFilter, + [Parameter()] + [bool]$LicenseAvailable = $true, + [Parameter()] + [array]$BulkFields ) $Table = Get-CippTable -tablename 'CippStandardsReports' $TenantName = Get-Tenants -TenantFilter $TenantFilter - if ($FieldValue -is [System.Boolean]) { - $FieldValue = [bool]$FieldValue - } elseif ($FieldValue -is [string]) { - $FieldValue = [string]$FieldValue - } else { - $FieldValue = ConvertTo-Json -Compress -InputObject @($FieldValue) -Depth 10 | Out-String - $FieldValue = [string]$FieldValue + # Helper function to normalize field values. This can go in a couple of releases tbh. + function ConvertTo-NormalizedFieldValue { + param($Value) + if ($Value -is [System.Boolean]) { + return [bool]$Value + } elseif ($Value -is [string]) { + return [string]$Value + } else { + $JsonValue = ConvertTo-Json -Compress -InputObject @($Value) -Depth 10 | Out-String + return [string]$JsonValue + } + } + function ConvertTo-NormalizedJson { + param([string]$JsonString) + + if ([string]::IsNullOrEmpty($JsonString)) { + return $JsonString + } + #Replace quoted numbers with unquoted numbers for consistent comparison + $JsonString = $JsonString -replace ':"(\d+)"([,}])', ':$1$2' + return $JsonString + } + + if ($CurrentValue -and $CurrentValue -isnot [string]) { + $CurrentValue = [string](ConvertTo-Json -InputObject $CurrentValue -Depth 10 -Compress) + } + if ($ExpectedValue -and $ExpectedValue -isnot [string]) { + $ExpectedValue = [string](ConvertTo-Json -InputObject $ExpectedValue -Depth 10 -Compress) + } + + # Normalize both values for consistent comparison (handle quoted numbers) + if ($CurrentValue) { + $CurrentValue = ConvertTo-NormalizedJson -JsonString $CurrentValue + } + if ($ExpectedValue) { + $ExpectedValue = ConvertTo-NormalizedJson -JsonString $ExpectedValue } - $Existing = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$($TenantName.defaultDomainName)' and RowKey eq '$($FieldName)'" + # Handle bulk operations + if ($BulkFields) { + # Get all existing entities for this tenant in one query + $ExistingEntities = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$($TenantName.defaultDomainName)'" + $ExistingHash = @{} + foreach ($Entity in $ExistingEntities) { + $ExistingHash[$Entity.RowKey] = $Entity + } + + # Build array of entities to insert/update + $EntitiesToProcess = [System.Collections.Generic.List[object]]::new() + + foreach ($Field in $BulkFields) { + $NormalizedValue = ConvertTo-NormalizedFieldValue -Value $Field.FieldValue - if ($PSCmdlet.ShouldProcess('CIPP Standards Compare', "Set field '$FieldName' to '$FieldValue' for tenant '$($TenantName.defaultDomainName)'")) { - try { - if ($Existing) { - $Existing.Value = $FieldValue - Add-CIPPAzDataTableEntity @Table -Entity $Existing -Force + if ($ExistingHash.ContainsKey($Field.FieldName)) { + $Entity = $ExistingHash[$Field.FieldName] + $Entity.Value = $NormalizedValue + $Entity | Add-Member -NotePropertyName TemplateId -NotePropertyValue ([string]$script:CippStandardInfoStorage.Value.StandardTemplateId) -Force + $Entity | Add-Member -NotePropertyName LicenseAvailable -NotePropertyValue ([bool]$Field.LicenseAvailable) -Force + $Entity | Add-Member -NotePropertyName CurrentValue -NotePropertyValue ([string]$Field.CurrentValue) -Force + $Entity | Add-Member -NotePropertyName ExpectedValue -NotePropertyValue ([string]$Field.ExpectedValue) -Force } else { - $Result = [PSCustomObject]@{ - PartitionKey = [string]$TenantName.defaultDomainName - RowKey = [string]$FieldName - Value = $FieldValue + $Entity = [PSCustomObject]@{ + PartitionKey = [string]$TenantName.defaultDomainName + RowKey = [string]$Field.FieldName + Value = $NormalizedValue + TemplateId = [string]$script:CippStandardInfoStorage.Value.StandardTemplateId + LicenseAvailable = [bool]$Field.LicenseAvailable + CurrentValue = [string]$Field.CurrentValue + ExpectedValue = [string]$Field.ExpectedValue + } + } + $EntitiesToProcess.Add($Entity) + } + + if ($PSCmdlet.ShouldProcess('CIPP Standards Compare', "Set $($EntitiesToProcess.Count) fields for tenant '$($TenantName.defaultDomainName)'")) { + try { + # Single bulk insert/update operation + Add-CIPPAzDataTableEntity @Table -Entity $EntitiesToProcess -Force + Write-Information "Bulk added $($EntitiesToProcess.Count) fields to StandardCompare for $($TenantName.defaultDomainName)" + } catch { + Write-Warning "Failed to bulk add fields to StandardCompare for $($TenantName.defaultDomainName) - $($_.Exception.Message)" + } + } + } else { + # Original single field logic + $NormalizedValue = ConvertTo-NormalizedFieldValue -Value $FieldValue + $Existing = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$($TenantName.defaultDomainName)' and RowKey eq '$($FieldName)'" + + if ($PSCmdlet.ShouldProcess('CIPP Standards Compare', "Set field '$FieldName' to '$NormalizedValue' for tenant '$($TenantName.defaultDomainName)'")) { + try { + if ($Existing) { + $Existing.Value = $NormalizedValue + $Existing | Add-Member -NotePropertyName TemplateId -NotePropertyValue ([string]$script:CippStandardInfoStorage.Value.StandardTemplateId) -Force + $Existing | Add-Member -NotePropertyName LicenseAvailable -NotePropertyValue ([bool]$LicenseAvailable) -Force + $Existing | Add-Member -NotePropertyName CurrentValue -NotePropertyValue ([string]$CurrentValue) -Force + $Existing | Add-Member -NotePropertyName ExpectedValue -NotePropertyValue ([string]$ExpectedValue) -Force + Add-CIPPAzDataTableEntity @Table -Entity $Existing -Force + } else { + $Result = [PSCustomObject]@{ + PartitionKey = [string]$TenantName.defaultDomainName + RowKey = [string]$FieldName + Value = $NormalizedValue + TemplateId = [string]$script:CippStandardInfoStorage.Value.StandardTemplateId + LicenseAvailable = [bool]$LicenseAvailable + CurrentValue = [string]$CurrentValue + ExpectedValue = [string]$ExpectedValue + } + Add-CIPPAzDataTableEntity @Table -Entity $Result -Force } - Add-CIPPAzDataTableEntity @Table -Entity $Result -Force + Write-Information "Adding $FieldName to StandardCompare for $($TenantName.defaultDomainName). content is $NormalizedValue" + } catch { + Write-Warning "Failed to add $FieldName to StandardCompare for $($TenantName.defaultDomainName). content is $NormalizedValue - $($_.Exception.Message)" } - Write-Information "Adding $FieldName to StandardCompare for $Tenant. content is $FieldValue" - } catch { - Write-Warning "Failed to add $FieldName to StandardCompare for $Tenant. content is $FieldValue - $($_.Exception.Message)" } } } diff --git a/Modules/CIPPCore/Public/Set-CIPPUserJITAdmin.ps1 b/Modules/CIPPCore/Public/Set-CIPPUserJITAdmin.ps1 index e6979a826ecc..2fdcb5864535 100644 --- a/Modules/CIPPCore/Public/Set-CIPPUserJITAdmin.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPUserJITAdmin.ps1 @@ -21,25 +21,31 @@ function Set-CIPPUserJITAdmin { .PARAMETER Expiration DateTime for expiration + .PARAMETER Reason + Reason for JIT admin assignment. Defaults to 'No reason provided' as due to backwards compatibility this is not a mandatory field. + + .PARAMETER Headers + Headers to include in logging + .EXAMPLE - Set-CIPPUserJITAdmin -TenantFilter 'contoso.onmicrosoft.com' -Headers@{UserPrincipalName = 'jit@contoso.onmicrosoft.com'} -Roles @('62e90394-69f5-4237-9190-012177145e10') -Action 'AddRoles' -Expiration (Get-Date).AddDays(1) + Set-CIPPUserJITAdmin -TenantFilter 'contoso.onmicrosoft.com' -Headers@{UserPrincipalName = 'jit@contoso.onmicrosoft.com'} -Roles @('62e90394-69f5-4237-9190-012177145e10') -Action 'AddRoles' -Expiration (Get-Date).AddDays(1) -Reason 'Emergency access' #> [CmdletBinding(SupportsShouldProcess = $true)] param( [Parameter(Mandatory = $true)] [string]$TenantFilter, - [Parameter(Mandatory = $true)] [hashtable]$User, - [string[]]$Roles, - [Parameter(Mandatory = $true)] [ValidateSet('Create', 'AddRoles', 'RemoveRoles', 'DeleteUser', 'DisableUser')] [string]$Action, - - [datetime]$Expiration + [datetime]$Expiration, + [datetime]$StartDate, + [string]$Reason = 'No reason provided', + $Headers, + [string]$APIName = 'Set-CIPPUserJITAdmin' ) if ($PSCmdlet.ShouldProcess("User: $($User.UserPrincipalName)", "Action: $Action")) { @@ -64,9 +70,12 @@ function Set-CIPPUserJITAdmin { forceChangePasswordNextSignInWithMfa = $false password = $Password } - $Schema.id = @{ + "$($Schema.id)" = @{ jitAdminEnabled = $false jitAdminExpiration = $Expiration.ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + jitAdminStartDate = if ($StartDate) { $StartDate.ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') } else { $null } + jitAdminReason = $Reason + jitAdminCreatedBy = if ($Headers) { ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json).userDetails } else { 'Unknown' } } } $Json = ConvertTo-Json -Depth 5 -InputObject $Body @@ -77,6 +86,16 @@ function Set-CIPPUserJITAdmin { if ($PasswordLink) { $Password = $PasswordLink } + $LogData = @{ + UserPrincipalName = $User.UserPrincipalName + Action = 'Create' + Reason = $Reason + StartDate = if ($StartDate) { $StartDate.ToString('o') } else { (Get-Date).ToString('o') } + Expiration = $Expiration.ToString('o') + ExpirationUTC = $Expiration.ToUniversalTime().ToString('o') + CreatedBy = if ($Headers) { ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json).userDetails } else { 'Unknown' } + } + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message "Created JIT Admin user: $($User.UserPrincipalName). Reason: $Reason" -Sev 'Info' -LogData $LogData [PSCustomObject]@{ id = $NewUser.id userPrincipalName = $NewUser.userPrincipalName @@ -108,8 +127,25 @@ function Set-CIPPUserJITAdmin { New-GraphPOSTRequest -type PATCH -uri "https://graph.microsoft.com/beta/users/$($UserObj.id)" -tenantid $TenantFilter -body $Json | Out-Null } catch {} } - - Set-CIPPUserJITAdminProperties -TenantFilter $TenantFilter -UserId $UserObj.id -Enabled -Expiration $Expiration | Out-Null + $CreatedBy = if ($Headers) { + ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json).userDetails + } else { 'Unknown' } + + Set-CIPPUserJITAdminProperties -TenantFilter $TenantFilter -UserId $UserObj.id -Enabled -Expiration $Expiration -StartDate $StartDate -Reason $Reason -CreatedBy $CreatedBy | Out-Null + $Message = "Added admin roles to user $($UserObj.displayName) ($($UserObj.userPrincipalName)). Reason: $Reason" + $LogData = @{ + UserPrincipalName = $UserObj.userPrincipalName + UserId = $UserObj.id + DisplayName = $UserObj.displayName + Action = 'AddRoles' + Roles = $Roles + Reason = $Reason + StartDate = if ($StartDate) { $StartDate.ToString('o') } else { (Get-Date).ToString('o') } + Expiration = $Expiration.ToString('o') + ExpirationUTC = $Expiration.ToUniversalTime().ToString('o') + CreatedBy = if ($Headers) { ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json).userDetails } else { 'Unknown' } + } + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Message -Sev 'Info' -LogData $LogData return "Added admin roles to user $($UserObj.displayName) ($($UserObj.userPrincipalName))" } 'RemoveRoles' { @@ -119,15 +155,20 @@ function Set-CIPPUserJITAdmin { } catch {} } Set-CIPPUserJITAdminProperties -TenantFilter $TenantFilter -UserId $UserObj.id -Clear | Out-Null + $Message = "Removed admin roles from user $($UserObj.displayName) ($($UserObj.userPrincipalName))" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Message -Sev 'Info' return "Removed admin roles from user $($UserObj.displayName)" } 'DeleteUser' { try { - $null = New-GraphPOSTRequest -type DELETE -uri "https://graph.microsoft.com/beta/users/$($UserObj.id)" -tenantid $TenantFilter - return "Deleted user $($UserObj.displayName) ($($UserObj.userPrincipalName)) with id $($UserObj.id)" + $null = New-GraphPOSTRequest -type DELETE -uri "https://graph.microsoft.com/beta/users/$($UserObj.userPrincipalName)" -tenantid $TenantFilter + $Message = "Deleted user $($UserObj.displayName) ($($UserObj.userPrincipalName)) with id $($UserObj.id)" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Message -Sev 'Info' + return $Message } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - return "Error deleting user $($UserObj.displayName) ($($UserObj.userPrincipalName)): $ErrorMessage" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message "Error deleting user $($UserObj.displayName) ($($UserObj.userPrincipalName)): $ErrorMessage" -Sev 'Error' + throw "Error deleting user $($UserObj.displayName) ($($UserObj.userPrincipalName)): $ErrorMessage" } } 'DisableUser' { @@ -141,11 +182,13 @@ function Set-CIPPUserJITAdmin { Write-Information "https://graph.microsoft.com/beta/users/$($User.UserPrincipalName)" $null = New-GraphPOSTRequest -type PATCH -uri "https://graph.microsoft.com/beta/users/$($User.UserPrincipalName)" -tenantid $TenantFilter -body $Json Set-CIPPUserJITAdminProperties -TenantFilter $TenantFilter -UserId $User.UserPrincipalName -Clear | Out-Null - return "Disabled user $($UserObj.displayName) ($($UserObj.userPrincipalName))" + $Message = "Disabled user $($UserObj.displayName) ($($UserObj.userPrincipalName))" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Message -Sev 'Info' + return $Message } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - return "Error disabling user $($UserObj.displayName) ($($UserObj.userPrincipalName)): $ErrorMessage" - + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message "Error disabling user $($UserObj.displayName) ($($UserObj.userPrincipalName)): $ErrorMessage" -Sev 'Error' + throw "Error disabling user $($UserObj.displayName) ($($UserObj.userPrincipalName)): $ErrorMessage" } } } diff --git a/Modules/CIPPCore/Public/Set-CIPPUserJITAdminProperties.ps1 b/Modules/CIPPCore/Public/Set-CIPPUserJITAdminProperties.ps1 index 0a9df92b5e16..07eb7402ed7a 100644 --- a/Modules/CIPPCore/Public/Set-CIPPUserJITAdminProperties.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPUserJITAdminProperties.ps1 @@ -1,11 +1,14 @@ function Set-CIPPUserJITAdminProperties { [CmdletBinding()] - Param( + param( [string]$TenantFilter, [string]$UserId, [switch]$Enabled, $Expiration, - [switch]$Clear + $StartDate, + [switch]$Clear, + [string]$Reason, + [string]$CreatedBy ) try { $Schema = Get-CIPPSchemaExtensions | Where-Object { $_.id -match '_cippUser' } | Select-Object -First 1 @@ -14,6 +17,9 @@ function Set-CIPPUserJITAdminProperties { "$($Schema.id)" = @{ jitAdminEnabled = $null jitAdminExpiration = $null + jitAdminStartDate = $null + jitAdminReason = $null + jitAdminCreatedBy = $null } } } else { @@ -21,6 +27,9 @@ function Set-CIPPUserJITAdminProperties { "$($Schema.id)" = @{ jitAdminEnabled = $Enabled.IsPresent jitAdminExpiration = $Expiration.ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + jitAdminStartDate = if ($StartDate) { $StartDate.ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') } else { $null } + jitAdminReason = $Reason + jitAdminCreatedBy = $CreatedBy } } } diff --git a/Modules/CIPPCore/Public/Set-CIPPUserLicense.ps1 b/Modules/CIPPCore/Public/Set-CIPPUserLicense.ps1 index 32e907e15669..e72fb7b69701 100644 --- a/Modules/CIPPCore/Public/Set-CIPPUserLicense.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPUserLicense.ps1 @@ -5,7 +5,8 @@ function Set-CIPPUserLicense { [Parameter(Mandatory)][string]$TenantFilter, [Parameter()][array]$AddLicenses = @(), [Parameter()][array]$RemoveLicenses = @(), - $Headers + $Headers, + $APIName = 'Set User License' ) # Build the addLicenses array @@ -28,7 +29,25 @@ function Set-CIPPUserLicense { Write-Host "License body JSON: $LicenseBodyJson" try { - $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$UserId/assignLicense" -tenantid $TenantFilter -type POST -body $LicenseBodyJson -Verbose + try { + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$UserId/assignLicense" -tenantid $TenantFilter -type POST -body $LicenseBodyJson -Verbose + } catch { + # Handle if the error is due to missing usage location + if ($_.Exception.Message -like '*invalid usage location*') { + $Table = Get-CippTable -tablename 'UserSettings' + $UserSettings = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'UserSettings' and RowKey eq 'allUsers'" + if ($UserSettings) { $DefaultUsageLocation = (ConvertFrom-Json $UserSettings.JSON -Depth 5 -ErrorAction SilentlyContinue).usageLocation.value } + $DefaultUsageLocation ??= 'US' # Fallback to US if not set + + $UsageLocationJson = ConvertTo-Json -InputObject @{'usageLocation' = $DefaultUsageLocation } -Depth 5 -Compress + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$UserId" -tenantid $TenantFilter -type PATCH -body $UsageLocationJson -Verbose + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message "Set usage location for user $UserId to $DefaultUsageLocation" -Sev 'Info' + # Retry assigning the license + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$UserId/assignLicense" -tenantid $TenantFilter -type POST -body $LicenseBodyJson -Verbose + } else { + throw $_ + } + } } catch { $ErrorMessage = Get-CippException -Exception $_ Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message "Failed to assign the license. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage @@ -36,5 +55,5 @@ function Set-CIPPUserLicense { } Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message "Assigned licenses to user $UserId. Added: $AddLicenses; Removed: $RemoveLicenses" -Sev 'Info' - return 'Set licenses successfully' + return "Successfully set licenses for $UserId. It may take 2–5 minutes before the changes become visible." } diff --git a/Modules/CIPPCore/Public/Set-CippKeyVaultSecret.ps1 b/Modules/CIPPCore/Public/Set-CippKeyVaultSecret.ps1 new file mode 100644 index 000000000000..aeaadf430655 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CippKeyVaultSecret.ps1 @@ -0,0 +1,77 @@ +function Set-CippKeyVaultSecret { + <# + .SYNOPSIS + Sets a secret in Azure Key Vault using REST API (no Az.KeyVault module required) + + .DESCRIPTION + Lightweight replacement for Set-AzKeyVaultSecret that uses REST API directly. + Significantly faster as it doesn't require loading the Az.KeyVault module. + + .PARAMETER VaultName + Name of the Key Vault. If not provided, derives from WEBSITE_DEPLOYMENT_ID environment variable. + + .PARAMETER Name + Name of the secret to set. + + .PARAMETER SecretValue + The secret value as a SecureString. + + .EXAMPLE + $secret = ConvertTo-SecureString -String 'mypassword' -AsPlainText -Force + Set-CippKeyVaultSecret -Name 'MySecret' -SecretValue $secret + + .EXAMPLE + Set-CippKeyVaultSecret -VaultName 'mykeyvault' -Name 'RefreshToken' -SecretValue $secureToken + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false)] + [string]$VaultName, + + [Parameter(Mandatory = $true)] + [string]$Name, + + [Parameter(Mandatory = $true)] + [securestring]$SecretValue + ) + + try { + # Derive vault name if not provided + if (-not $VaultName) { + if ($env:WEBSITE_DEPLOYMENT_ID) { + $VaultName = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] + } else { + throw "VaultName not provided and WEBSITE_DEPLOYMENT_ID environment variable not set" + } + } + + # Get access token for Key Vault + $token = Get-CIPPAzIdentityToken -ResourceUrl "https://vault.azure.net" + + # Convert SecureString to plain text + $plainText = [System.Net.NetworkCredential]::new('', $SecretValue).Password + + # Prepare request body + $body = @{ value = $plainText } | ConvertTo-Json + + # Call Key Vault REST API + $uri = "https://$VaultName.vault.azure.net/secrets/$Name`?api-version=7.4" + $response = Invoke-RestMethod -Uri $uri -Headers @{ + Authorization = "Bearer $token" + 'Content-Type' = 'application/json' + } -Method Put -Body $body -ErrorAction Stop + + # Return object similar to Set-AzKeyVaultSecret for compatibility + return @{ + Name = $Name + VaultName = $VaultName + Id = $response.id + Enabled = $response.attributes.enabled + Created = $response.attributes.created + Updated = $response.attributes.updated + } + } catch { + Write-Error "Failed to set secret '$Name' in vault '$VaultName': $($_.Exception.Message)" + throw + } +} diff --git a/Modules/CIPPCore/Public/Standards/Get-CIPPStandards.ps1 b/Modules/CIPPCore/Public/Standards/Get-CIPPStandards.ps1 index 7eaf01a80d1e..6b631e8c96fd 100644 --- a/Modules/CIPPCore/Public/Standards/Get-CIPPStandards.ps1 +++ b/Modules/CIPPCore/Public/Standards/Get-CIPPStandards.ps1 @@ -3,6 +3,9 @@ function Get-CIPPStandards { [Parameter(Mandatory = $false)] [string]$TenantFilter = 'allTenants', + [Parameter(Mandatory = $false)] + [switch]$LicenseChecks = $false, + [Parameter(Mandatory = $false)] [switch]$ListAllTenants, @@ -31,6 +34,75 @@ function Get-CIPPStandards { $_.GUID -like $TemplateId -and $_.runManually -eq $runManually } + # 1.5. Expand templates that contain TemplateList-Tags into multiple standards + $ExpandedTemplates = foreach ($Template in $Templates) { + Write-Information "Template $($Template.templateName) ($($Template.GUID)) processing..." + $NewTemplate = $Template.PSObject.Copy() + $ExpandedStandards = [ordered]@{} + $HasExpansions = $false + + foreach ($StandardName in $Template.standards.PSObject.Properties.Name) { + $StandardValue = $Template.standards.$StandardName + $IsArray = $StandardValue -is [System.Collections.IEnumerable] -and -not ($StandardValue -is [string]) + + if ($IsArray) { + $NewArray = foreach ($Item in $StandardValue) { + if ($Item.'TemplateList-Tags'.value) { + $HasExpansions = $true + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'IntuneTemplate'" + $TemplatesList = Get-CIPPAzDataTableEntity @Table -Filter $Filter | Where-Object -Property package -EQ $Item.'TemplateList-Tags'.value + + foreach ($TemplateItem in $TemplatesList) { + $NewItem = $Item.PSObject.Copy() + $NewItem.PSObject.Properties.Remove('TemplateList-Tags') + $NewItem | Add-Member -NotePropertyName TemplateList -NotePropertyValue ([pscustomobject]@{ + label = "$($TemplateItem.RowKey)" + value = "$($TemplateItem.RowKey)" + }) -Force + $NewItem | Add-Member -NotePropertyName TemplateId -NotePropertyValue $Template.GUID -Force + $NewItem + } + } else { + $Item | Add-Member -NotePropertyName TemplateId -NotePropertyValue $Template.GUID -Force + $Item + } + } + $ExpandedStandards[$StandardName] = $NewArray + } else { + if ($StandardValue.'TemplateList-Tags'.value) { + $HasExpansions = $true + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'IntuneTemplate'" + $TemplatesList = Get-CIPPAzDataTableEntity @Table -Filter $Filter | Where-Object -Property package -EQ $StandardValue.'TemplateList-Tags'.value + + $NewArray = foreach ($TemplateItem in $TemplatesList) { + $NewItem = $StandardValue.PSObject.Copy() + $NewItem.PSObject.Properties.Remove('TemplateList-Tags') + $NewItem | Add-Member -NotePropertyName TemplateList -NotePropertyValue ([pscustomobject]@{ + label = "$($TemplateItem.RowKey)" + value = "$($TemplateItem.RowKey)" + }) -Force + $NewItem | Add-Member -NotePropertyName TemplateId -NotePropertyValue $Template.GUID -Force + $NewItem + } + $ExpandedStandards[$StandardName] = $NewArray + } else { + $StandardValue | Add-Member -NotePropertyName TemplateId -NotePropertyValue $Template.GUID -Force + $ExpandedStandards[$StandardName] = $StandardValue + } + } + } + + if ($HasExpansions) { + $NewTemplate.standards = [pscustomobject]$ExpandedStandards + } + + $NewTemplate + } + + $Templates = $ExpandedTemplates + # 2. Get tenant list, filter if needed $AllTenantsList = Get-Tenants if ($TenantFilter -ne 'allTenants') { @@ -45,8 +117,6 @@ function Get-CIPPStandards { $_.tenantFilter.value -contains 'AllTenants' } - $ComputedStandards = [ordered]@{} - foreach ($Template in $AllTenantsTemplates) { $Standards = $Template.standards @@ -55,82 +125,72 @@ function Get-CIPPStandards { $IsArray = $Value -is [System.Collections.IEnumerable] -and -not ($Value -is [string]) if ($IsArray) { - # e.g. IntuneTemplate with 2 items + # Emit one object per array element foreach ($Item in $Value) { $CurrentStandard = $Item.PSObject.Copy() - $CurrentStandard | Add-Member -NotePropertyName 'TemplateId' -NotePropertyValue $Template.GUID -Force + # Add Remediate if autoRemediate is true + if ($CurrentStandard.autoRemediate -eq $true -and -not ($CurrentStandard.action.value -contains 'Remediate')) { + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ + label = 'Remediate' + value = 'Remediate' + } + } + + # Add Report if Remediate present but Report missing if ($CurrentStandard.action.value -contains 'Remediate' -and -not ($CurrentStandard.action.value -contains 'Report')) { - $reportAction = [pscustomobject]@{ + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ label = 'Report' value = 'Report' } - $CurrentStandard.action = @($CurrentStandard.action) + $reportAction } $Actions = $CurrentStandard.action.value if ($Actions -contains 'Remediate' -or $Actions -contains 'warn' -or $Actions -contains 'Report') { - if (-not $ComputedStandards.Contains($StandardName)) { - $ComputedStandards[$StandardName] = $CurrentStandard - } else { - $MergedStandard = Merge-CippStandards -Existing $ComputedStandards[$StandardName] -New $CurrentStandard -StandardName $StandardName - $ComputedStandards[$StandardName] = $MergedStandard + $Normalized = ConvertTo-CippStandardObject $CurrentStandard + + [pscustomobject]@{ + Tenant = 'AllTenants' + Standard = $StandardName + Settings = $Normalized + TemplateId = $Template.GUID } } } } else { - # single object + # Single object $CurrentStandard = $Value.PSObject.Copy() - $CurrentStandard | Add-Member -NotePropertyName 'TemplateId' -NotePropertyValue $Template.GUID -Force + # Add Remediate if autoRemediate is true + if ($CurrentStandard.autoRemediate -eq $true -and -not ($CurrentStandard.action.value -contains 'Remediate')) { + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ + label = 'Remediate' + value = 'Remediate' + } + } + + # Add Report if Remediate present but Report missing if ($CurrentStandard.action.value -contains 'Remediate' -and -not ($CurrentStandard.action.value -contains 'Report')) { - $reportAction = [pscustomobject]@{ + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ label = 'Report' value = 'Report' } - $CurrentStandard.action = @($CurrentStandard.action) + $reportAction } $Actions = $CurrentStandard.action.value if ($Actions -contains 'Remediate' -or $Actions -contains 'warn' -or $Actions -contains 'Report') { - if (-not $ComputedStandards.Contains($StandardName)) { - $ComputedStandards[$StandardName] = $CurrentStandard - } else { - $MergedStandard = Merge-CippStandards -Existing $ComputedStandards[$StandardName] -New $CurrentStandard -StandardName $StandardName - $ComputedStandards[$StandardName] = $MergedStandard + $Normalized = ConvertTo-CippStandardObject $CurrentStandard + + [pscustomobject]@{ + Tenant = 'AllTenants' + Standard = $StandardName + Settings = $Normalized + TemplateId = $Template.GUID } } } } } - - # Output result for 'AllTenants' - foreach ($Standard in $ComputedStandards.Keys) { - $TempCopy = $ComputedStandards[$Standard].PSObject.Copy() - - # Remove 'TemplateId' from final output - if ($TempCopy -is [System.Collections.IEnumerable] -and -not ($TempCopy -is [string])) { - foreach ($subItem in $TempCopy) { - $subItem.PSObject.Properties.Remove('TemplateId') | Out-Null - } - } else { - $TempCopy.PSObject.Properties.Remove('TemplateId') | Out-Null - } - - $Normalized = ConvertTo-CippStandardObject $TempCopy - - [pscustomobject]@{ - Tenant = 'AllTenants' - Standard = $Standard - Settings = $Normalized - TemplateId = if ($ComputedStandards[$Standard] -is [System.Collections.IEnumerable] -and -not ($ComputedStandards[$Standard] -is [string])) { - # If multiple items from multiple templates, you may have multiple TemplateIds - $ComputedStandards[$Standard] | ForEach-Object { $_.TemplateId } - } else { - $ComputedStandards[$Standard].TemplateId - } - } - } } else { # 4. For each tenant, figure out which templates apply, merge them, and output. foreach ($Tenant in $AllTenantsList) { @@ -183,17 +243,23 @@ function Get-CIPPStandards { } } - # Separate them into AllTenant vs. TenantSpecific sets + # Separate templates into three tiers: AllTenants (lowest precedence), Group (middle), Tenant-Specific (highest) $AllTenantTemplatesSet = $ApplicableTemplates | Where-Object { $_.tenantFilter.value -contains 'AllTenants' } + $GroupTemplatesSet = $ApplicableTemplates | Where-Object { + ($_.tenantFilter.value -notcontains 'AllTenants') -and + ($_.tenantFilter | Where-Object { $_.type -eq 'Group' }) + } $TenantSpecificTemplatesSet = $ApplicableTemplates | Where-Object { - $_.tenantFilter.value -notcontains 'AllTenants' + ($_.tenantFilter.value -notcontains 'AllTenants') -and + -not ($_.tenantFilter | Where-Object { $_.type -eq 'Group' }) } - $ComputedStandards = [ordered]@{} + # Build merged standards keyed by (StandardName, TemplateList.value) + $ComputedStandards = @{} - # 4a. Merge the AllTenantTemplatesSet + # Process AllTenants templates first foreach ($Template in $AllTenantTemplatesSet) { $Standards = $Template.standards @@ -206,21 +272,102 @@ function Get-CIPPStandards { $CurrentStandard = $Item.PSObject.Copy() $CurrentStandard | Add-Member -NotePropertyName 'TemplateId' -NotePropertyValue $Template.GUID -Force + # Add Remediate if autoRemediate is true + if ($CurrentStandard.autoRemediate -eq $true -and -not ($CurrentStandard.action.value -contains 'Remediate')) { + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ + label = 'Remediate' + value = 'Remediate' + } + } + + # Add Report if Remediate present but Report missing + if ($CurrentStandard.action.value -contains 'Remediate' -and -not ($CurrentStandard.action.value -contains 'Report')) { + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ + label = 'Report' + value = 'Report' + } + } + + $Actions = $CurrentStandard.action.value + if ($Actions -contains 'Remediate' -or $Actions -contains 'warn' -or $Actions -contains 'Report') { + # Key by StandardName + TemplateList.value (if present) + $TemplateKey = if ($CurrentStandard.TemplateList.value) { $CurrentStandard.TemplateList.value } else { '' } + $Key = "$StandardName|$TemplateKey" + + $ComputedStandards[$Key] = $CurrentStandard + } + } + } else { + $CurrentStandard = $Value.PSObject.Copy() + $CurrentStandard | Add-Member -NotePropertyName 'TemplateId' -NotePropertyValue $Template.GUID -Force + + # Add Remediate if autoRemediate is true + if ($CurrentStandard.autoRemediate -eq $true -and -not ($CurrentStandard.action.value -contains 'Remediate')) { + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ + label = 'Remediate' + value = 'Remediate' + } + } + + # Add Report if Remediate present but Report missing + if ($CurrentStandard.action.value -contains 'Remediate' -and -not ($CurrentStandard.action.value -contains 'Report')) { + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ + label = 'Report' + value = 'Report' + } + } + + $Actions = $CurrentStandard.action.value + if ($Actions -contains 'Remediate' -or $Actions -contains 'warn' -or $Actions -contains 'Report') { + $TemplateKey = if ($CurrentStandard.TemplateList.value) { $CurrentStandard.TemplateList.value } else { '' } + $Key = "$StandardName|$TemplateKey" + + $ComputedStandards[$Key] = $CurrentStandard + } + } + } + } + + # Process Group templates, merging with AllTenants base + foreach ($Template in $GroupTemplatesSet) { + $Standards = $Template.standards + + foreach ($StandardName in $Standards.PSObject.Properties.Name) { + $Value = $Standards.$StandardName + $IsArray = $Value -is [System.Collections.IEnumerable] -and -not ($Value -is [string]) + + if ($IsArray) { + foreach ($Item in $Value) { + $CurrentStandard = $Item.PSObject.Copy() + $CurrentStandard | Add-Member -NotePropertyName 'TemplateId' -NotePropertyValue $Template.GUID -Force + + # Add Remediate if autoRemediate is true + if ($CurrentStandard.autoRemediate -eq $true -and -not ($CurrentStandard.action.value -contains 'Remediate')) { + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ + label = 'Remediate' + value = 'Remediate' + } + } + + # Add Report if Remediate present but Report missing if ($CurrentStandard.action.value -contains 'Remediate' -and -not ($CurrentStandard.action.value -contains 'Report')) { - $reportAction = [pscustomobject]@{ + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ label = 'Report' value = 'Report' } - $CurrentStandard.action = @($CurrentStandard.action) + $reportAction } $Actions = $CurrentStandard.action.value if ($Actions -contains 'Remediate' -or $Actions -contains 'warn' -or $Actions -contains 'Report') { - if (-not $ComputedStandards.Contains($StandardName)) { - $ComputedStandards[$StandardName] = $CurrentStandard + $TemplateKey = if ($CurrentStandard.TemplateList.value) { $CurrentStandard.TemplateList.value } else { '' } + $Key = "$StandardName|$TemplateKey" + + if ($ComputedStandards.ContainsKey($Key)) { + # Merge group-based over AllTenants base + $MergedStandard = Merge-CippStandards -Existing $ComputedStandards[$Key] -New $CurrentStandard -StandardName $StandardName + $ComputedStandards[$Key] = $MergedStandard } else { - $MergedStandard = Merge-CippStandards -Existing $ComputedStandards[$StandardName] -New $CurrentStandard -StandardName $StandardName - $ComputedStandards[$StandardName] = $MergedStandard + $ComputedStandards[$Key] = $CurrentStandard } } } @@ -228,28 +375,39 @@ function Get-CIPPStandards { $CurrentStandard = $Value.PSObject.Copy() $CurrentStandard | Add-Member -NotePropertyName 'TemplateId' -NotePropertyValue $Template.GUID -Force + # Add Remediate if autoRemediate is true + if ($CurrentStandard.autoRemediate -eq $true -and -not ($CurrentStandard.action.value -contains 'Remediate')) { + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ + label = 'Remediate' + value = 'Remediate' + } + } + + # Add Report if Remediate present but Report missing if ($CurrentStandard.action.value -contains 'Remediate' -and -not ($CurrentStandard.action.value -contains 'Report')) { - $reportAction = [pscustomobject]@{ + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ label = 'Report' value = 'Report' } - $CurrentStandard.action = @($CurrentStandard.action) + $reportAction } $Actions = $CurrentStandard.action.value if ($Actions -contains 'Remediate' -or $Actions -contains 'warn' -or $Actions -contains 'Report') { - if (-not $ComputedStandards.Contains($StandardName)) { - $ComputedStandards[$StandardName] = $CurrentStandard + $TemplateKey = if ($CurrentStandard.TemplateList.value) { $CurrentStandard.TemplateList.value } else { '' } + $Key = "$StandardName|$TemplateKey" + + if ($ComputedStandards.ContainsKey($Key)) { + $MergedStandard = Merge-CippStandards -Existing $ComputedStandards[$Key] -New $CurrentStandard -StandardName $StandardName + $ComputedStandards[$Key] = $MergedStandard } else { - $MergedStandard = Merge-CippStandards -Existing $ComputedStandards[$StandardName] -New $CurrentStandard -StandardName $StandardName - $ComputedStandards[$StandardName] = $MergedStandard + $ComputedStandards[$Key] = $CurrentStandard } } } } } - # 4b. Merge the TenantSpecificTemplatesSet + # Process TenantSpecific templates, merging with Group and AllTenants base foreach ($Template in $TenantSpecificTemplatesSet) { $Standards = $Template.standards @@ -262,22 +420,33 @@ function Get-CIPPStandards { $CurrentStandard = $Item.PSObject.Copy() $CurrentStandard | Add-Member -NotePropertyName 'TemplateId' -NotePropertyValue $Template.GUID -Force + # Add Remediate if autoRemediate is true + if ($CurrentStandard.autoRemediate -eq $true -and -not ($CurrentStandard.action.value -contains 'Remediate')) { + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ + label = 'Remediate' + value = 'Remediate' + } + } + + # Add Report if Remediate present but Report missing if ($CurrentStandard.action.value -contains 'Remediate' -and -not ($CurrentStandard.action.value -contains 'Report')) { - $reportAction = [pscustomobject]@{ + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ label = 'Report' value = 'Report' } - $CurrentStandard.action = @($CurrentStandard.action) + $reportAction } - # Filter actions only 'Remediate','warn','Report' - $Actions = $CurrentStandard.action.value | Where-Object { $_ -in 'Remediate', 'warn', 'Report' } + $Actions = $CurrentStandard.action.value if ($Actions -contains 'Remediate' -or $Actions -contains 'warn' -or $Actions -contains 'Report') { - if (-not $ComputedStandards.Contains($StandardName)) { - $ComputedStandards[$StandardName] = $CurrentStandard + $TemplateKey = if ($CurrentStandard.TemplateList.value) { $CurrentStandard.TemplateList.value } else { '' } + $Key = "$StandardName|$TemplateKey" + + if ($ComputedStandards.ContainsKey($Key)) { + # Merge tenant-specific over Group/AllTenants base + $MergedStandard = Merge-CippStandards -Existing $ComputedStandards[$Key] -New $CurrentStandard -StandardName $StandardName + $ComputedStandards[$Key] = $MergedStandard } else { - $MergedStandard = Merge-CippStandards -Existing $ComputedStandards[$StandardName] -New $CurrentStandard -StandardName $StandardName - $ComputedStandards[$StandardName] = $MergedStandard + $ComputedStandards[$Key] = $CurrentStandard } } } @@ -285,49 +454,54 @@ function Get-CIPPStandards { $CurrentStandard = $Value.PSObject.Copy() $CurrentStandard | Add-Member -NotePropertyName 'TemplateId' -NotePropertyValue $Template.GUID -Force + # Add Remediate if autoRemediate is true + if ($CurrentStandard.autoRemediate -eq $true -and -not ($CurrentStandard.action.value -contains 'Remediate')) { + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ + label = 'Remediate' + value = 'Remediate' + } + } + + # Add Report if Remediate present but Report missing if ($CurrentStandard.action.value -contains 'Remediate' -and -not ($CurrentStandard.action.value -contains 'Report')) { - $reportAction = [pscustomobject]@{ + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ label = 'Report' value = 'Report' } - $CurrentStandard.action = @($CurrentStandard.action) + $reportAction } - $Actions = $CurrentStandard.action.value | Where-Object { $_ -in 'Remediate', 'warn', 'Report' } + $Actions = $CurrentStandard.action.value if ($Actions -contains 'Remediate' -or $Actions -contains 'warn' -or $Actions -contains 'Report') { - if (-not $ComputedStandards.Contains($StandardName)) { - $ComputedStandards[$StandardName] = $CurrentStandard + $TemplateKey = if ($CurrentStandard.TemplateList.value) { $CurrentStandard.TemplateList.value } else { '' } + $Key = "$StandardName|$TemplateKey" + + if ($ComputedStandards.ContainsKey($Key)) { + $MergedStandard = Merge-CippStandards -Existing $ComputedStandards[$Key] -New $CurrentStandard -StandardName $StandardName + $ComputedStandards[$Key] = $MergedStandard } else { - $MergedStandard = Merge-CippStandards -Existing $ComputedStandards[$StandardName] -New $CurrentStandard -StandardName $StandardName - $ComputedStandards[$StandardName] = $MergedStandard + $ComputedStandards[$Key] = $CurrentStandard } } } } } + # License checks and policy timestamp filtering moved to Push-CIPPStandardsList activity + foreach ($Key in $ComputedStandards.Keys) { + $Standard = $ComputedStandards[$Key] + $StandardName = $Key -replace '\|.*$', '' + # Preserve TemplateId before removing + $PreservedTemplateId = $Standard.TemplateId + $Standard.PSObject.Properties.Remove('TemplateId') | Out-Null - # 4c. Output each final standard for this tenant - foreach ($Standard in $ComputedStandards.Keys) { - $TempCopy = $ComputedStandards[$Standard].PSObject.Copy() - # Remove local 'TemplateId' from final object(s) - if ($TempCopy -is [System.Collections.IEnumerable] -and -not ($TempCopy -is [string])) { - foreach ($subItem in $TempCopy) { - $subItem.PSObject.Properties.Remove('TemplateId') | Out-Null - } - } else { - $TempCopy.PSObject.Properties.Remove('TemplateId') | Out-Null - } - - $Normalized = ConvertTo-CippStandardObject $TempCopy + $Normalized = ConvertTo-CippStandardObject $Standard [pscustomobject]@{ Tenant = $TenantName - Standard = $Standard + Standard = $StandardName Settings = $Normalized - TemplateId = $ComputedStandards[$Standard].TemplateId + TemplateId = $PreservedTemplateId } } } } } - diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardActivityBasedTimeout.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardActivityBasedTimeout.ps1 index f9516efe5c20..d89d9804bc15 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardActivityBasedTimeout.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardActivityBasedTimeout.ps1 @@ -13,8 +13,11 @@ function Invoke-CIPPStandardActivityBasedTimeout { CAT Global Standards TAG - "CIS" + "CIS M365 5.0 (1.3.2)" "spo_idle_session_timeout" + "NIST CSF 2.0 (PR.AA-03)" + EXECUTIVETEXT + Automatically logs out inactive users from Microsoft 365 applications after a specified time period to prevent unauthorized access to company data on unattended devices. This security measure protects against data breaches when employees leave workstations unlocked. ADDEDCOMPONENT {"type":"autoComplete","multiple":false,"creatable":false,"label":"Select value","name":"standards.ActivityBasedTimeout.timeout","options":[{"label":"1 Hour","value":"01:00:00"},{"label":"3 Hours","value":"03:00:00"},{"label":"6 Hours","value":"06:00:00"},{"label":"12 Hours","value":"12:00:00"},{"label":"24 Hours","value":"1.00:00:00"}]} IMPACT @@ -40,13 +43,21 @@ function Invoke-CIPPStandardActivityBasedTimeout { # Input validation if ([string]::IsNullOrWhiteSpace($timeout) -or $timeout -eq 'Select a value' ) { Write-LogMessage -API 'Standards' -tenant $Tenant -message 'ActivityBasedTimeout: Invalid timeout parameter set' -sev Error - Return + return } - $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/activityBasedTimeoutPolicies' -tenantid $Tenant - $StateIsCorrect = if ($CurrentState.definition -like "*$timeout*") { $true } else { $false } + try { + $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/activityBasedTimeoutPolicies' -tenantid $Tenant + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the ActivityBasedTimeout state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } + $CurrentValue = ($CurrentState.definition | ConvertFrom-Json -ErrorAction SilentlyContinue).activitybasedtimeoutpolicy.ApplicationPolicies | Select-Object -First 1 -Property WebSessionIdleTimeout + $StateIsCorrect = if ($CurrentValue.WebSessionIdleTimeout -eq $timeout) { $true } else { $false } + $ExpectedValue = [PSCustomObject]@{WebSessionIdleTimeout = $timeout } - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { try { if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -tenant $Tenant -message "Activity Based Timeout is already enabled and set to $timeout" -sev Info @@ -68,11 +79,12 @@ function Invoke-CIPPStandardActivityBasedTimeout { $RequestType = 'PATCH' $URI = "https://graph.microsoft.com/beta/policies/activityBasedTimeoutPolicies/$($CurrentState.id)" } - New-GraphPostRequest -tenantid $Tenant -Uri $URI -Type $RequestType -Body $body -ContentType 'application/json' + New-GraphPostRequest -tenantid $Tenant -Uri $URI -Type $RequestType -Body $body Write-LogMessage -API 'Standards' -tenant $Tenant -message "Enabled Activity Based Timeout with a value of $timeout" -sev Info } } catch { - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to enable Activity Based Timeout a value of $timeout." -sev Error -LogData $_ + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to enable Activity Based Timeout a value of $timeout." -sev Error -LogData $ErrorMessage } } @@ -87,7 +99,7 @@ function Invoke-CIPPStandardActivityBasedTimeout { } if ($Settings.report -eq $true) { - Set-CIPPStandardsCompareField -FieldName 'standards.ActivityBasedTimeout' -FieldValue $StateIsCorrect -TenantFilter $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.ActivityBasedTimeout' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'ActivityBasedTimeout' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAddDKIM.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAddDKIM.ps1 index 8e119023f392..e4831bb8f50e 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAddDKIM.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAddDKIM.ps1 @@ -13,7 +13,9 @@ function Invoke-CIPPStandardAddDKIM { CAT Exchange Standards TAG - "CIS" + "CIS M365 5.0 (2.1.9)" + EXECUTIVETEXT + Enables email authentication technology that digitally signs outgoing emails to verify they actually came from your organization. This prevents email spoofing, improves email deliverability, and protects the company's reputation by ensuring recipients can trust emails from your domains. ADDEDCOMPONENT IMPACT Low Impact @@ -32,7 +34,11 @@ function Invoke-CIPPStandardAddDKIM { param($Tenant, $Settings) #$Rerun -Type Standard -Tenant $Tenant -API 'AddDKIM' -Settings $Settings + $TestResult = Test-CIPPStandardLicense -StandardName 'AddDKIM' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + if ($TestResult -eq $false) { + return $true + } #we're done. $DkimRequest = @( @{ @@ -54,10 +60,10 @@ function Invoke-CIPPStandardAddDKIM { # Check for errors in the batch results. Cannot continue if there are errors. $ErrorCounter = 0 $ErrorMessages = [System.Collections.Generic.List[string]]::new() - $BatchResults | ForEach-Object { - if ($_.error) { + foreach ($Result in $BatchResults) { + if ($Result.error) { $ErrorCounter++ - $ErrorMessage = Get-NormalizedError -Message $_.error + $ErrorMessage = Get-NormalizedError -Message $Result.error $ErrorMessages.Add($ErrorMessage) } } @@ -69,6 +75,7 @@ function Invoke-CIPPStandardAddDKIM { # Same exclusions also found in Push-DomainAnalyserTenant $ExclusionDomains = @( '*.microsoftonline.com' + '*.mail.onmicrosoft.com' '*.exclaimer.cloud' '*.excl.cloud' '*.codetwo.online' @@ -78,10 +85,11 @@ function Invoke-CIPPStandardAddDKIM { '*.teams.dstny.com' '*.msteams.8x8.com' '*.ucconnect.co.uk' + '*.teams-sbc.dk' ) - $AllDomains = ($BatchResults | Where-Object { $_.DomainName }).DomainName | ForEach-Object { - $Domain = $_ + $AllDomains = foreach ($DomainName in ($BatchResults | Where-Object { $_.DomainName }).DomainName) { + $Domain = $DomainName foreach ($ExclusionDomain in $ExclusionDomains) { if ($Domain -like $ExclusionDomain) { $Domain = $null @@ -89,8 +97,8 @@ function Invoke-CIPPStandardAddDKIM { } if ($null -ne $Domain) { $Domain } } - $DKIM = $BatchResults | Where-Object { $_.Domain } | Select-Object Domain, Enabled, Status | ForEach-Object { - $Domain = $_ + $DKIM = foreach ($DkimConfig in ($BatchResults | Where-Object { $_.Domain } | Select-Object Domain, Enabled, Status)) { + $Domain = $DkimConfig foreach ($ExclusionDomain in $ExclusionDomains) { if ($Domain.Domain -like $ExclusionDomain) { $Domain = $null @@ -103,7 +111,18 @@ function Invoke-CIPPStandardAddDKIM { $NewDomains = $AllDomains | Where-Object { $DKIM.Domain -notcontains $_ } $SetDomains = $DKIM | Where-Object { $AllDomains -contains $_.Domain -and $_.Enabled -eq $false } - If ($Settings.remediate -eq $true) { + $MissingDKIM = [System.Collections.Generic.List[string]]::new() + if ($null -ne $NewDomains) { + $MissingDKIM.AddRange($NewDomains) + } + if ($null -ne $SetDomains) { + $MissingDKIM.AddRange($SetDomains.Domain) + } + + $CurrentValue = if ($MissingDKIM.Count -eq 0) { [PSCustomObject]@{'state' = 'Configured correctly' } } else { [PSCustomObject]@{'MissingDKIM' = $MissingDKIM } } + $ExpectedValue = [PSCustomObject]@{'state' = 'Configured correctly' } + + if ($Settings.remediate -eq $true) { if ($null -eq $NewDomains -and $null -eq $SetDomains) { Write-LogMessage -API 'Standards' -tenant $Tenant -message 'DKIM is already enabled for all available domains.' -sev Info @@ -112,37 +131,37 @@ function Invoke-CIPPStandardAddDKIM { Write-LogMessage -API 'Standards' -tenant $Tenant -message "Trying to enable DKIM for:$($NewDomains -join ', ' ) $($SetDomains.Domain -join ', ')" -sev Info # New-domains - $Request = $NewDomains | ForEach-Object { + $Request = foreach ($Domain in $NewDomains) { @{ CmdletInput = @{ CmdletName = 'New-DkimSigningConfig' - Parameters = @{ KeySize = 2048; DomainName = $_; Enabled = $true } + Parameters = @{ KeySize = 2048; DomainName = $Domain; Enabled = $true } } } } if ($null -ne $Request) { $BatchResults = New-ExoBulkRequest -tenantid $Tenant -cmdletArray @($Request) -useSystemMailbox $true } - $BatchResults | ForEach-Object { - if ($_.error) { + foreach ($Result in $BatchResults) { + if ($Result.error) { $ErrorCounter ++ - $ErrorMessage = Get-NormalizedError -Message $_.error + $ErrorMessage = Get-NormalizedError -Message $Result.error Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to enable DKIM. Error: $ErrorMessage" -sev Error } } # Set-domains - $Request = $SetDomains | ForEach-Object { + $Request = foreach ($Domain in $SetDomains) { @{ CmdletInput = @{ CmdletName = 'Set-DkimSigningConfig' - Parameters = @{ Identity = $_.Domain; Enabled = $true } + Parameters = @{ Identity = $Domain.Domain; Enabled = $true } } } } if ($null -ne $Request) { $BatchResults = New-ExoBulkRequest -tenantid $Tenant -cmdletArray @($Request) -useSystemMailbox $true } - $BatchResults | ForEach-Object { - if ($_.error) { + foreach ($Result in $BatchResults) { + if ($Result.error) { $ErrorCounter ++ - $ErrorMessage = Get-NormalizedError -Message $_.error + $ErrorMessage = Get-NormalizedError -Message $Result.error Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set DKIM. Error: $ErrorMessage" -sev Error } } @@ -170,7 +189,7 @@ function Invoke-CIPPStandardAddDKIM { if ($Settings.report -eq $true) { $DKIMState = if ($null -eq $NewDomains -and $null -eq $SetDomains) { $true } else { $SetDomains, $NewDomains } - Set-CIPPStandardsCompareField -FieldName 'standards.AddDKIM' -FieldValue $DKIMState -TenantFilter $tenant + Set-CIPPStandardsCompareField -FieldName 'standards.AddDKIM' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $tenant Add-CIPPBPAField -FieldName 'DKIM' -FieldValue $DKIMState -StoreAs bool -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAddDMARCToMOERA.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAddDMARCToMOERA.ps1 index 85e5ba190ec8..63fa43bc6ece 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAddDMARCToMOERA.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAddDMARCToMOERA.ps1 @@ -13,9 +13,11 @@ function Invoke-CIPPStandardAddDMARCToMOERA { CAT Global Standards TAG - "CIS" + "CIS M365 5.0 (2.1.10)" "Security" "PhishingProtection" + EXECUTIVETEXT + Implements advanced email security for Microsoft's default domain names (onmicrosoft.com) to prevent criminals from impersonating your organization. This blocks fraudulent emails that could damage your company's reputation and protects partners and customers from phishing attacks using your domain names. ADDEDCOMPONENT {"type":"autoComplete","multiple":false,"creatable":true,"required":false,"placeholder":"v=DMARC1; p=reject; (recommended)","label":"Value","name":"standards.AddDMARCToMOERA.RecordValue","options":[{"label":"v=DMARC1; p=reject; (recommended)","value":"v=DMARC1; p=reject;"}]} IMPACT @@ -40,23 +42,26 @@ function Invoke-CIPPStandardAddDMARCToMOERA { HostName = '_dmarc' TtlValue = 3600 Type = 'TXT' - Value = $Settings.RecordValue.Value ?? "v=DMARC1; p=reject;" + Value = $Settings.RecordValue.Value ?? 'v=DMARC1; p=reject;' } # Get all fallback domains (onmicrosoft.com domains) and check if the DMARC record is set correctly try { - $Domains = New-GraphGetRequest -scope 'https://admin.microsoft.com/.default' -TenantID $Tenant -Uri 'https://admin.microsoft.com/admin/api/Domains/List' | Where-Object -Property Name -like "*.onmicrosoft.com" + $Domains = New-GraphGetRequest -scope 'https://admin.microsoft.com/.default' -TenantID $Tenant -Uri 'https://admin.microsoft.com/admin/api/Domains/List' | Where-Object -Property Name -Like '*.onmicrosoft.com' - $CurrentInfo = $Domains | ForEach-Object { + $CurrentInfo = foreach ($Domain in $Domains) { # Get current DNS records that matches _dmarc hostname and TXT type - $CurrentRecords = New-GraphGetRequest -scope 'https://admin.microsoft.com/.default' -TenantID $Tenant -Uri "https://admin.microsoft.com/admin/api/Domains/Records?domainName=$($_.Name)" | Select-Object -ExpandProperty DnsRecords | Where-Object { $_.HostName -eq $RecordModel.HostName -and $_.Type -eq $RecordModel.Type } + $RecordsResponse = New-GraphGetRequest -scope 'https://admin.microsoft.com/.default' -TenantID $Tenant -Uri "https://admin.microsoft.com/admin/api/Domains/Records?domainName=$($Domain.Name)" + $AllRecords = $RecordsResponse | Select-Object -ExpandProperty DnsRecords + $CurrentRecords = $AllRecords | Where-Object { $_.HostName -eq '_dmarc' -and $_.Type -eq 'TXT' } + Write-Information "Found $($CurrentRecords.count) DMARC records for domain $($Domain.Name)" if ($CurrentRecords.count -eq 0) { #record not found, return a model with Match set to false [PSCustomObject]@{ - DomainName = $_.Name - Match = $false - CurrentRecord = $null + DomainName = $Domain.Name + Match = $false + CurrentRecord = $null } } else { foreach ($CurrentRecord in $CurrentRecords) { @@ -71,52 +76,70 @@ function Invoke-CIPPStandardAddDMARCToMOERA { # Compare the current record with the expected record model if (!(Compare-Object -ReferenceObject $RecordModel -DifferenceObject $CurrentRecordModel -Property HostName, TtlValue, Type, Value)) { [PSCustomObject]@{ - DomainName = $_.Name - Match = $true - CurrentRecord = $CurrentRecord + DomainName = $Domain.Name + Match = $true + CurrentRecord = $CurrentRecord } } else { [PSCustomObject]@{ - DomainName = $_.Name - Match = $false - CurrentRecord = $CurrentRecord + DomainName = $Domain.Name + Match = $false + CurrentRecord = $CurrentRecord } } } } } - # Check if match is true and there is only one DMARC record for the domain - $StateIsCorrect = $false -notin $CurrentInfo.Match -and $CurrentInfo.Count -eq 1 + # Check if match is true and there is only one DMARC record for each domain + $StateIsCorrect = $false -notin $CurrentInfo.Match -and $CurrentInfo.Count -eq $Domains.Count + + $CurrentValue = if ($StateIsCorrect) { [PSCustomObject]@{'state' = 'Configured correctly' } } else { [PSCustomObject]@{'MissingDMARC' = @($CurrentInfo | Where-Object -Property Match -EQ $false | Select-Object -ExpandProperty DomainName) } } + $ExpectedValue = [PSCustomObject]@{'state' = 'Configured correctly' } } catch { + $ErrorMessage = Get-CippException -Exception $_ if ($_.Exception.Message -like '*403*') { - $Message = "AddDMARCToMOERA: Insufficient permissions. Please ensure the tenant GDAP relationship includes the 'Domain Name Administrator' role: $(Get-NormalizedError -message $_.Exception.message)" - } - else { - $Message = "Failed to get dns records for MOERA domains: $(Get-NormalizedError -message $_.Exception.message)" + $Message = "AddDMARCToMOERA: Insufficient permissions. Please ensure the tenant GDAP relationship includes the 'Domain Name Administrator' role: $($ErrorMessage.NormalizedError)" + } else { + $Message = "Failed to get dns records for MOERA domains: $($ErrorMessage.NormalizedError)" } - Write-LogMessage -API 'Standards' -tenant $tenant -message $Message -sev Error - throw $Message + Write-LogMessage -API 'Standards' -tenant $tenant -message $Message -sev Error -LogData $ErrorMessage + return $Message } - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -tenant $tenant -message 'DMARC record is already set for all MOERA (onmicrosoft.com) domains.' -sev Info - } - else { + } else { # Loop through each domain and set the DMARC record, existing misconfigured records and duplicates will be deleted foreach ($Domain in ($CurrentInfo | Sort-Object -Property DomainName -Unique)) { try { - foreach ($Record in ($CurrentInfo | Where-Object -Property DomainName -eq $Domain.DomainName)) { + $DomainRecords = @($CurrentInfo | Where-Object -Property DomainName -EQ $Domain.DomainName) + $HasMatchingRecord = $false + + # First, delete any non-matching records + foreach ($Record in $DomainRecords) { if ($Record.CurrentRecord) { - New-GraphPOSTRequest -tenantid $tenant -scope 'https://admin.microsoft.com/.default' -Uri "https://admin.microsoft.com/admin/api/Domains/Record?domainName=$($Domain.DomainName)" -Body ($Record.CurrentRecord | ConvertTo-Json -Compress) -AddedHeaders @{'x-http-method-override' = 'Delete'} - Write-LogMessage -API 'Standards' -tenant $tenant -message "Deleted incorrect DMARC record for domain $($Domain.DomainName)" -sev Info + if ($Record.Match -eq $false) { + # Delete incorrect record + New-GraphPOSTRequest -tenantid $tenant -scope 'https://admin.microsoft.com/.default' -Uri "https://admin.microsoft.com/admin/api/Domains/Record?domainName=$($Domain.DomainName)" -Body ($Record.CurrentRecord | ConvertTo-Json -Compress) -AddedHeaders @{'x-http-method-override' = 'Delete' } + Write-LogMessage -API 'Standards' -tenant $tenant -message "Deleted incorrect DMARC record for domain $($Domain.DomainName)" -sev Info + } else { + # Record already matches, no need to add + $HasMatchingRecord = $true + } } - New-GraphPOSTRequest -tenantid $tenant -scope 'https://admin.microsoft.com/.default' -type "PUT" -Uri "https://admin.microsoft.com/admin/api/Domains/Record?domainName=$($Domain.DomainName)" -Body (@{RecordModel = $RecordModel} | ConvertTo-Json -Compress) + } + + # Only add the record if we don't already have a matching one + if (-not $HasMatchingRecord) { + New-GraphPOSTRequest -tenantid $tenant -scope 'https://admin.microsoft.com/.default' -type 'PUT' -Uri "https://admin.microsoft.com/admin/api/Domains/Record?domainName=$($Domain.DomainName)" -Body (@{RecordModel = $RecordModel } | ConvertTo-Json -Compress) Write-LogMessage -API 'Standards' -tenant $tenant -message "Set DMARC record for domain $($Domain.DomainName)" -sev Info + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message "DMARC record already correctly set for domain $($Domain.DomainName)" -sev Info } - } - catch { - Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to set DMARC record for domain $($Domain.DomainName): $(Get-NormalizedError -message $_.Exception.message)" -sev Error + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to set DMARC record for domain $($Domain.DomainName): $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage } } } @@ -127,16 +150,16 @@ function Invoke-CIPPStandardAddDMARCToMOERA { Write-LogMessage -API 'Standards' -tenant $tenant -message 'DMARC record is already set for all MOERA (onmicrosoft.com) domains.' -sev Info } else { $UniqueDomains = ($CurrentInfo | Sort-Object -Property DomainName -Unique) - $NotSetDomains = @($UniqueDomains | ForEach-Object {if ($_.Match -eq $false -or ($CurrentInfo | Where-Object -Property DomainName -eq $_.DomainName).Count -eq 1) { $_.DomainName } }) + $NotSetDomains = @($UniqueDomains | ForEach-Object { if ($_.Match -eq $false -or ($CurrentInfo | Where-Object -Property DomainName -EQ $_.DomainName).Count -eq 1) { $_.DomainName } }) $Message = "DMARC record is not set for $($NotSetDomains.count) of $($UniqueDomains.count) MOERA (onmicrosoft.com) domains." - Write-StandardsAlert -message $Message -object @{MissingDMARC = ($NotSetDomains -join ', ')} -tenant $tenant -standardName 'AddDMARCToMOERA' -standardId $Settings.standardId + Write-StandardsAlert -message $Message -object @{MissingDMARC = ($NotSetDomains -join ', ') } -tenant $tenant -standardName 'AddDMARCToMOERA' -standardId $Settings.standardId Write-LogMessage -API 'Standards' -tenant $tenant -message "$Message. Missing for: $($NotSetDomains -join ', ')" -sev Info } } if ($Settings.report -eq $true) { - set-CIPPStandardsCompareField -FieldName 'standards.AddDMARCToMOERA' -FieldValue $StateIsCorrect -TenantFilter $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.AddDMARCToMOERA' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'AddDMARCToMOERA' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAnonReportDisable.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAnonReportDisable.ps1 index 5a0d65510fe5..6d924f41cdef 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAnonReportDisable.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAnonReportDisable.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardAnonReportDisable { CAT Global Standards TAG + EXECUTIVETEXT + Configures Microsoft 365 reports to display actual usernames instead of anonymized identifiers, enabling IT administrators to effectively troubleshoot issues and generate meaningful usage reports. This improves operational efficiency and system management capabilities. ADDEDCOMPONENT IMPACT Low Impact @@ -31,19 +33,28 @@ function Invoke-CIPPStandardAnonReportDisable { param($Tenant, $Settings) #$Rerun -Type Standard -Tenant $Tenant -API 'allowOTPTokens' -Settings $Settings - $CurrentInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/admin/reportSettings' -tenantid $Tenant -AsApp $true + try { + $CurrentInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/admin/reportSettings' -tenantid $Tenant -AsApp $true + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the AnonReportDisable state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } + + $CurrentValue = $CurrentInfo | Select-Object -Property displayConcealedNames + $ExpectedValue = [PSCustomObject]@{displayConcealedNames = $false } - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { if ($CurrentInfo.displayConcealedNames -eq $false) { Write-LogMessage -API 'Standards' -tenant $tenant -message 'Anonymous Reports is already disabled.' -sev Info } else { try { - New-GraphPostRequest -tenantid $tenant -Uri 'https://graph.microsoft.com/beta/admin/reportSettings' -Type patch -Body '{"displayConcealedNames": false}' -ContentType 'application/json' -AsApp $true + New-GraphPOSTRequest -tenantid $tenant -Uri 'https://graph.microsoft.com/beta/admin/reportSettings' -Type patch -Body '{"displayConcealedNames": false}' -AsApp $true Write-LogMessage -API 'Standards' -tenant $tenant -message 'Anonymous Reports Disabled.' -sev Info } catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable anonymous reports. Error: $ErrorMessage" -sev Error + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable anonymous reports. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage } } } @@ -57,8 +68,7 @@ function Invoke-CIPPStandardAnonReportDisable { } } if ($Settings.report -eq $true) { - $StateIsCorrect = $CurrentInfo.displayConcealedNames ? $false : $true - Set-CIPPStandardsCompareField -FieldName 'standards.AnonReportDisable' -FieldValue $StateIsCorrect -TenantFilter $tenant + Set-CIPPStandardsCompareField -FieldName 'standards.AnonReportDisable' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $tenant Add-CIPPBPAField -FieldName 'AnonReport' -FieldValue $CurrentInfo.displayConcealedNames -StoreAs bool -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAntiPhishPolicy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAntiPhishPolicy.ps1 index b01f7b252593..253c88731a29 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAntiPhishPolicy.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAntiPhishPolicy.ps1 @@ -13,7 +13,6 @@ function Invoke-CIPPStandardAntiPhishPolicy { CAT Defender Standards TAG - "CIS" "mdo_safeattachments" "mdo_highconfidencespamaction" "mdo_highconfidencephishaction" @@ -21,7 +20,10 @@ function Invoke-CIPPStandardAntiPhishPolicy { "mdo_spam_notifications_only_for_admins" "mdo_antiphishingpolicies" "mdo_phishthresholdlevel" + "CIS M365 5.0 (2.1.7)" + "NIST CSF 2.0 (DE.CM-09)" ADDEDCOMPONENT + {"type":"textField","name":"standards.AntiPhishPolicy.name","label":"Policy Name","required":true,"defaultValue":"CIPP Default Anti-Phishing Policy"} {"type":"number","label":"Phishing email threshold. (Default 1)","name":"standards.AntiPhishPolicy.PhishThresholdLevel","defaultValue":1} {"type":"switch","label":"Show first contact safety tip","name":"standards.AntiPhishPolicy.EnableFirstContactSafetyTips","defaultValue":true} {"type":"switch","label":"Show user impersonation safety tip","name":"standards.AntiPhishPolicy.EnableSimilarUsersSafetyTips","defaultValue":true} @@ -50,25 +52,46 @@ function Invoke-CIPPStandardAntiPhishPolicy { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'AntiPhishPolicy' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'AntiPhishPolicy' - $ServicePlans = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/subscribedSkus?$select=servicePlans' -tenantid $Tenant - $ServicePlans = $ServicePlans.servicePlans.servicePlanName - $MDOLicensed = $ServicePlans -contains "ATP_ENTERPRISE" + $TenantCapabilities = Get-CIPPTenantCapabilities -TenantFilter $Tenant + $MDOLicensed = $TenantCapabilities.ATP_ENTERPRISE -eq $true Write-Information "MDOLicensed: $MDOLicensed" - $PolicyList = @('CIPP Default Anti-Phishing Policy','Default Anti-Phishing Policy') - $ExistingPolicy = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-AntiPhishPolicy' | Where-Object -Property Name -In $PolicyList + # Single data retrieval for Get-AntiPhishRule (used twice) with error handling + try { + $AllAntiPhishRule = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-AntiPhishRule' + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the AntiPhishRule state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + # Use custom name if provided, otherwise use default for backward compatibility + $PolicyName = if ($Settings.name) { $Settings.name } else { 'CIPP Default Anti-Phishing Policy' } + $PolicyList = @($PolicyName, 'CIPP Default Anti-Phishing Policy','Default Anti-Phishing Policy') + $ExistingPolicy = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-AntiPhishPolicy' | Where-Object -Property Name -In $PolicyList | Select-Object -First 1 if ($null -eq $ExistingPolicy.Name) { - $PolicyName = $PolicyList[0] + # No existing policy - use the configured/default name + $PolicyName = if ($Settings.name) { $Settings.name } else { 'CIPP Default Anti-Phishing Policy' } } else { + # Use existing policy name if found $PolicyName = $ExistingPolicy.Name } - $RuleList = @( 'CIPP Default Anti-Phishing Rule','CIPP Default Anti-Phishing Policy') - $ExistingRule = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-AntiPhishRule' | Where-Object -Property Name -In $RuleList + # Derive rule name from policy name, but check for old names for backward compatibility + $DesiredRuleName = "$PolicyName Rule" + $RuleList = @($DesiredRuleName, 'CIPP Default Anti-Phishing Rule','CIPP Default Anti-Phishing Policy') + $ExistingRule = $AllAntiPhishRule | Where-Object -Property Name -In $RuleList | Select-Object -First 1 if ($null -eq $ExistingRule.Name) { - $RuleName = $RuleList[0] + # No existing rule - use the derived name + $RuleName = $DesiredRuleName } else { + # Use existing rule name if found $RuleName = $ExistingRule.Name } @@ -99,6 +122,33 @@ function Invoke-CIPPStandardAntiPhishPolicy { ($CurrentState.EnableTargetedDomainsProtection -eq $true) -and ($CurrentState.EnableTargetedUserProtection -eq $true) -and ($CurrentState.EnableOrganizationDomainsProtection -eq $true) + + $CurrentValue = $CurrentState | Select-Object Name, Enabled, PhishThresholdLevel, EnableMailboxIntelligence, EnableMailboxIntelligenceProtection, EnableSpoofIntelligence, EnableFirstContactSafetyTips, EnableSimilarUsersSafetyTips, EnableSimilarDomainsSafetyTips, EnableUnusualCharactersSafetyTips, EnableUnauthenticatedSender, EnableViaTag, AuthenticationFailAction, SpoofQuarantineTag, MailboxIntelligenceProtectionAction, MailboxIntelligenceQuarantineTag, TargetedUserProtectionAction, TargetedUserQuarantineTag, TargetedDomainProtectionAction, TargetedDomainQuarantineTag, EnableOrganizationDomainsProtection, EnableTargetedDomainsProtection, EnableTargetedUserProtection + $ExpectedValue = [PSCustomObject]@{ + Name = $PolicyName + Enabled = $true + PhishThresholdLevel = $Settings.PhishThresholdLevel + EnableMailboxIntelligence = $true + EnableMailboxIntelligenceProtection = $true + EnableSpoofIntelligence = $true + EnableFirstContactSafetyTips = $Settings.EnableFirstContactSafetyTips + EnableSimilarUsersSafetyTips = $Settings.EnableSimilarUsersSafetyTips + EnableSimilarDomainsSafetyTips = $Settings.EnableSimilarDomainsSafetyTips + EnableUnusualCharactersSafetyTips = $Settings.EnableUnusualCharactersSafetyTips + EnableUnauthenticatedSender = $true + EnableViaTag = $true + AuthenticationFailAction = $Settings.AuthenticationFailAction + SpoofQuarantineTag = $Settings.SpoofQuarantineTag + MailboxIntelligenceProtectionAction = $Settings.MailboxIntelligenceProtectionAction + MailboxIntelligenceQuarantineTag = $Settings.MailboxIntelligenceQuarantineTag + TargetedUserProtectionAction = $Settings.TargetedUserProtectionAction + TargetedUserQuarantineTag = $Settings.TargetedUserQuarantineTag + TargetedDomainProtectionAction = $Settings.TargetedDomainProtectionAction + TargetedDomainQuarantineTag = $Settings.TargetedDomainQuarantineTag + EnableTargetedDomainsProtection = $true + EnableTargetedUserProtection = $true + EnableOrganizationDomainsProtection = $true + } } else { $StateIsCorrect = ($CurrentState.Name -eq $PolicyName) -and ($CurrentState.Enabled -eq $true) -and @@ -108,11 +158,22 @@ function Invoke-CIPPStandardAntiPhishPolicy { ($CurrentState.EnableViaTag -eq $true) -and ($CurrentState.AuthenticationFailAction -eq $Settings.AuthenticationFailAction) -and ($CurrentState.SpoofQuarantineTag -eq $Settings.SpoofQuarantineTag) + $CurrentValue = $CurrentState | Select-Object Name, Enabled, EnableSpoofIntelligence, EnableFirstContactSafetyTips, EnableUnauthenticatedSender, EnableViaTag, AuthenticationFailAction, SpoofQuarantineTag + $ExpectedValue = [PSCustomObject]@{ + Name = $PolicyName + Enabled = $true + EnableSpoofIntelligence = $true + EnableFirstContactSafetyTips= $Settings.EnableFirstContactSafetyTips + EnableUnauthenticatedSender = $true + EnableViaTag = $true + AuthenticationFailAction = $Settings.AuthenticationFailAction + SpoofQuarantineTag = $Settings.SpoofQuarantineTag + } } $AcceptedDomains = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-AcceptedDomain' - $RuleState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-AntiPhishRule' | + $RuleState = $AllAntiPhishRule | Where-Object -Property Name -EQ $RuleName | Select-Object Name, AntiPhishPolicy, Priority, RecipientDomainIs diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAntiSpamSafeList.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAntiSpamSafeList.ps1 index ccfb85dcff9d..e959f26818ea 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAntiSpamSafeList.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAntiSpamSafeList.ps1 @@ -13,6 +13,9 @@ function Invoke-CIPPStandardAntiSpamSafeList { CAT Defender Standards TAG + "CIS M365 5.0 (2.1.13)" + EXECUTIVETEXT + Enables Microsoft's pre-approved list of trusted email servers to improve email delivery from legitimate sources while maintaining spam protection. This reduces false positives where legitimate emails might be blocked while still protecting against spam and malicious emails. ADDEDCOMPONENT {"type":"switch","name":"standards.AntiSpamSafeList.EnableSafeList","label":"Enable Safe List"} IMPACT @@ -29,13 +32,18 @@ function Invoke-CIPPStandardAntiSpamSafeList { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'AntiSpamSafeList' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'AntiSpamSafeList' try { $State = [System.Convert]::ToBoolean($Settings.EnableSafeList) } catch { Write-LogMessage -API 'Standards' -tenant $Tenant -message 'AntiSpamSafeList: Failed to convert the EnableSafeList parameter to a boolean' -sev Error - Return + return } try { @@ -43,18 +51,23 @@ function Invoke-CIPPStandardAntiSpamSafeList { } catch { $ErrorMessage = Get-CippException -Exception $_ Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to get the Anti-Spam Connection Filter Safe List. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage - Return + return } $WantedState = $State -eq $true ? $true : $false $StateIsCorrect = if ($CurrentState -eq $WantedState) { $true } else { $false } + $CurrentValue = [PSCustomObject]@{ + EnableSafeList = $CurrentState + } + $ExpectedValue = [PSCustomObject]@{ + EnableSafeList = $WantedState + } if ($Settings.report -eq $true) { - Set-CIPPStandardsCompareField -FieldName 'standards.AntiSpamSafeList' -FieldValue $StateIsCorrect -TenantFilter $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.AntiSpamSafeList' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'AntiSpamSafeList' -FieldValue $CurrentState -StoreAs bool -Tenant $Tenant } if ($Settings.remediate -eq $true) { - Write-Host 'Time to remediate' if ($StateIsCorrect -eq $false) { try { $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-HostedConnectionFilterPolicy' -cmdParams @{ diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAppDeploy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAppDeploy.ps1 index f4c51a1a7048..318e751bfd2e 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAppDeploy.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAppDeploy.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardAppDeploy { CAT Entra (AAD) Standards TAG + EXECUTIVETEXT + Automatically deploys approved business applications across all company locations and users, ensuring consistent access to essential tools and maintaining standardized software configurations. This streamlines application management and reduces IT deployment overhead. ADDEDCOMPONENT {"type":"select","multiple":false,"creatable":false,"label":"App Approval Mode","name":"standards.AppDeploy.mode","options":[{"label":"Template","value":"template"},{"label":"Copy Permissions","value":"copy"}]} {"type":"autoComplete","multiple":true,"creatable":false,"label":"Select Applications","name":"standards.AppDeploy.templateIds","api":{"url":"/api/ListAppApprovalTemplates","labelField":"TemplateName","valueField":"TemplateId","queryKey":"StdAppApprovalTemplateList","addedField":{"AppId":"AppId"}},"condition":{"field":"standards.AppDeploy.mode","compareType":"is","compareValue":"template"}} @@ -34,18 +36,80 @@ function Invoke-CIPPStandardAppDeploy { Write-Information "Running AppDeploy standard for tenant $($Tenant)." $AppsToAdd = $Settings.appids -split ',' - $AppExists = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/servicePrincipals?$top=999' -tenantid $Tenant + $AppExists = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ServicePrincipals' $Mode = $Settings.mode ?? 'copy' + $ExpectedValue = [PSCustomObject]@{ state = 'Configured correctly' } + if ($Mode -eq 'template') { - $AppsToAdd = $Settings.templateIds.addedFields.AppId + # For template mode, we need to check each template individually + # since Gallery Templates and Enterprise Apps have different deployment methods + $AppsToAdd = @() + $Table = Get-CIPPTable -TableName 'templates' + + $AppsToAdd = foreach ($TemplateId in $Settings.templateIds.value) { + $Template = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'AppApprovalTemplate' and RowKey eq '$TemplateId'" + if ($Template) { + $TemplateData = $Template.JSON | ConvertFrom-Json + # Default to EnterpriseApp for backward compatibility with older templates + $AppType = $TemplateData.AppType + if (-not $AppType) { + $AppType = 'EnterpriseApp' + } + + # Return different identifiers based on app type for checking + if ($AppType -eq 'ApplicationManifest') { + # For Application Manifests, use display name for checking + $TemplateData.AppName + } elseif ($AppType -eq 'GalleryTemplate') { + # For Gallery Templates, use gallery template ID + $TemplateData.GalleryTemplateId + } else { + # For Enterprise Apps, use app ID + $TemplateData.AppId + } + } + } } - $MissingApps = foreach ($App in $AppsToAdd) { - if ($App -notin $AppExists.appId) { - $App + # Check for missing apps based on template type + $MissingApps = [System.Collections.Generic.List[string]]::new() + if ($Mode -eq 'template') { + $Table = Get-CIPPTable -TableName 'templates' + foreach ($TemplateId in $Settings.templateIds.value) { + $Template = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'AppApprovalTemplate' and RowKey eq '$TemplateId'" + if ($Template) { + $TemplateData = $Template.JSON | ConvertFrom-Json + $AppType = $TemplateData.AppType ?? 'EnterpriseApp' + + $IsAppMissing = $false + if ($AppType -eq 'ApplicationManifest') { + # For Application Manifests, check by display name + $IsAppMissing = $TemplateData.AppName -notin $AppExists.displayName + } elseif ($AppType -eq 'GalleryTemplate') { + # For Gallery Templates, check by application template ID + $IsAppMissing = $TemplateData.GalleryTemplateId -notin $AppExists.applicationTemplateId + } else { + # For Enterprise Apps, check by app ID + $IsAppMissing = $TemplateData.AppId -notin $AppExists.appId + } + + if ($IsAppMissing) { + $MissingApps.Add($TemplateData.AppName ?? $TemplateData.AppId ?? $TemplateData.GalleryTemplateId) + } + } + } + } else { + # For copy mode, check by app ID as before + $MissingApps = foreach ($App in $AppsToAdd) { + if ($App -notin $AppExists.appId -and $App -notin $AppExists.applicationTemplateId) { + $App + } } } + + $CurrentValue = if ($MissingApps.Count -eq 0) { [PSCustomObject]@{'state' = 'Configured correctly' } } else { [PSCustomObject]@{'MissingApps' = $MissingApps } } + if ($Settings.remediate -eq $true) { if ($Mode -eq 'copy') { foreach ($App in $AppsToAdd) { @@ -64,27 +128,156 @@ function Invoke-CIPPStandardAppDeploy { } } elseif ($Mode -eq 'template') { $TemplateIds = $Settings.templateIds.value - $TemplateName = $Settings.templateIds.label - $AppIds = $Settings.templateIds.addedFields.AppId - - foreach ($AppId in $AppIds) { - if ($AppId -notin $AppExists.appId) { - Write-Information "Adding $AppId to tenant $Tenant." - $PostResults = New-GraphPostRequest 'https://graph.microsoft.com/beta/servicePrincipals' -type POST -tenantid $Tenant -body "{ `"appId`": `"$AppId`" }" - Write-LogMessage -message "Added $AppId to tenant $Tenant" -tenant $Tenant -API 'Add Multitenant App' -sev Info - } - } + + # Get template data to determine deployment type for each template + $Table = Get-CIPPTable -TableName 'templates' + foreach ($TemplateId in $TemplateIds) { try { - Add-CIPPApplicationPermission -TemplateId $TemplateId -TenantFilter $Tenant - Add-CIPPDelegatedPermission -TemplateId $TemplateId -TenantFilter $Tenant - Write-LogMessage -API 'Standards' -tenant $tenant -message "Added application(s) from template $($TemplateName) and updated it's permissions" -sev Info + # Get the template data to determine if it's a Gallery Template or Enterprise App + $Template = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'AppApprovalTemplate' and RowKey eq '$TemplateId'" + + if (!$Template) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Template $TemplateId not found" -sev Error + continue + } + + $TemplateData = $Template.JSON | ConvertFrom-Json + # Default to EnterpriseApp for backward compatibility with older templates + $AppType = $TemplateData.AppType + if (-not $AppType) { + $AppType = 'EnterpriseApp' + } + + if ($AppType -eq 'GalleryTemplate') { + # Handle Gallery Template deployment + Write-Information "Deploying Gallery Template $($TemplateData.AppName) to tenant $Tenant." + + $GalleryTemplateId = $TemplateData.GalleryTemplateId + if (!$GalleryTemplateId) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Gallery Template ID not found in template data for $($TemplateData.TemplateName)" -sev Error + continue + } + + # Check if the app already exists in the tenant + if ($TemplateData.GalleryTemplateId -in $AppExists.applicationTemplateId) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Gallery Template app $($TemplateData.AppName) already exists in tenant $Tenant" -sev Info + continue + } + + # Instantiate the gallery template + $InstantiateBody = @{ + displayName = $TemplateData.AppName + } | ConvertTo-Json -Depth 10 + + $InstantiateResult = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/applicationTemplates/$GalleryTemplateId/instantiate" -type POST -tenantid $Tenant -body $InstantiateBody + + if ($InstantiateResult.application.appId) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Successfully deployed Gallery Template $($TemplateData.AppName) to tenant $Tenant. Application ID: $($InstantiateResult.application.appId)" -sev Info + New-CIPPApplicationCopy -App $InstantiateResult.application.appId -Tenant $Tenant + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Gallery Template deployment completed but application ID not returned for $($TemplateData.AppName) in tenant $Tenant" -sev Warning + } + + } elseif ($AppType -eq 'ApplicationManifest') { + # Handle Application Manifest deployment + Write-Information "Deploying Application Manifest $($TemplateData.AppName) to tenant $Tenant." + + $ApplicationManifest = $TemplateData.ApplicationManifest + if (!$ApplicationManifest) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Application Manifest not found in template data for $($TemplateData.TemplateName)" -sev Error + continue + } + + # Check if an application with the same display name already exists + $ExistingApp = $AppExists | Where-Object { $_.displayName -eq $TemplateData.AppName } + if ($ExistingApp) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Application with name '$($TemplateData.AppName)' already exists in tenant $Tenant" -sev Info + + # get existing application + $App = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/applications(appId='$($ExistingApp.appId)')" -tenantid $Tenant + + # compare permissions + $ExistingPermissions = $App.requiredResourceAccess | ConvertTo-Json -Depth 10 + $NewPermissions = $ApplicationManifest.requiredResourceAccess | ConvertTo-Json -Depth 10 + if ($ExistingPermissions -ne $NewPermissions) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Updating permissions for existing application '$($TemplateData.AppName)' in tenant $Tenant" -sev Info + + # Update permissions for existing application + $UpdateBody = @{ + requiredResourceAccess = $ApplicationManifest.requiredResourceAccess + } | ConvertTo-Json -Depth 10 + $null = New-GraphPostRequest -type PATCH -uri "https://graph.microsoft.com/beta/applications(appId='$($ExistingApp.appId)')" -tenantid $Tenant -body $UpdateBody + + # consent new permissions + Add-CIPPDelegatedPermission -RequiredResourceAccess $ApplicationManifest.requiredResourceAccess -ApplicationId $ExistingApp.appId -Tenantfilter $Tenant + Add-CIPPApplicationPermission -RequiredResourceAccess $ApplicationManifest.requiredResourceAccess -ApplicationId $ExistingApp.appId -Tenantfilter $Tenant + } + + continue + } + + $PropertiesToRemove = @('appId', 'id', 'createdDateTime', 'publisherDomain', 'servicePrincipalLockConfiguration', 'identifierUris', 'applicationIdUris') + + # Strip tenant-specific data that might cause conflicts + $CleanManifest = $ApplicationManifest | ConvertTo-Json -Depth 10 | ConvertFrom-Json + foreach ($Property in $PropertiesToRemove) { + $CleanManifest.PSObject.Properties.Remove($Property) + } + # Create the application from manifest + try { + $CreateBody = $CleanManifest | ConvertTo-Json -Depth 10 + $CreatedApp = New-GraphPostRequest -uri 'https://graph.microsoft.com/beta/applications' -type POST -tenantid $Tenant -body $CreateBody + + if ($CreatedApp.appId) { + # Create service principal for the application + $ServicePrincipalBody = @{ + appId = $CreatedApp.appId + } | ConvertTo-Json + + $ServicePrincipal = New-GraphPostRequest -uri 'https://graph.microsoft.com/beta/servicePrincipals' -type POST -tenantid $Tenant -body $ServicePrincipalBody + + Write-LogMessage -API 'Standards' -tenant $tenant -message "Successfully deployed Application Manifest $($TemplateData.AppName) to tenant $Tenant. Application ID: $($CreatedApp.appId)" -sev Info + + if ($CreatedApp.requiredResourceAccess) { + Add-CIPPDelegatedPermission -RequiredResourceAccess $CreatedApp.requiredResourceAccess -ApplicationId $CreatedApp.appId -Tenantfilter $Tenant + Add-CIPPApplicationPermission -RequiredResourceAccess $CreatedApp.requiredResourceAccess -ApplicationId $CreatedApp.appId -Tenantfilter $Tenant + } + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Application Manifest deployment failed - no application ID returned for $($TemplateData.AppName) in tenant $Tenant" -sev Error + } + } catch { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Error creating application from manifest in tenant $Tenant - $($_.Exception.Message)" -sev Error + } + + } else { + # Handle Enterprise App deployment (existing logic) + $AppId = $TemplateData.AppId + if ($AppId -notin $AppExists.appId) { + Write-Information "Adding $AppId to tenant $Tenant." + $PostResults = New-GraphPostRequest 'https://graph.microsoft.com/beta/servicePrincipals' -type POST -tenantid $Tenant -body "{ `"appId`": `"$AppId`" }" + Write-LogMessage -message "Added $AppId to tenant $Tenant" -tenant $Tenant -API 'Standards' -sev Info + } + + # Apply permissions for Enterprise Apps + Add-CIPPApplicationPermission -TemplateId $TemplateId -TenantFilter $Tenant + Add-CIPPDelegatedPermission -TemplateId $TemplateId -TenantFilter $Tenant + Write-LogMessage -API 'Standards' -tenant $tenant -message "Added application $($TemplateData.AppName) from Enterprise App template and updated its permissions" -sev Info + } + } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to add app from approval template $($TemplateName). Error: $ErrorMessage" -sev Error + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to deploy template $TemplateId. Error: $ErrorMessage" -sev Error } } } + + # Refresh service principals cache after remediation + try { + Set-CIPPDBCacheServicePrincipals -TenantFilter $Tenant + } catch { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to refresh service principals cache after remediation: $($_.Exception.Message)" -sev Warning + } } if ($Settings.alert) { @@ -98,7 +291,7 @@ function Invoke-CIPPStandardAppDeploy { if ($Settings.report -eq $true) { $StateIsCorrect = $MissingApps.Count -eq 0 ? $true : @{ 'Missing Apps' = $MissingApps -join ',' } - Set-CIPPStandardsCompareField -FieldName 'standards.AppDeploy' -FieldValue $StateIsCorrect -TenantFilter $tenant + Set-CIPPStandardsCompareField -FieldName 'standards.AppDeploy' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $tenant Add-CIPPBPAField -FieldName 'AppDeploy' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAssignmentFilterTemplate.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAssignmentFilterTemplate.ps1 new file mode 100644 index 000000000000..c0147bddaa93 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAssignmentFilterTemplate.ps1 @@ -0,0 +1,134 @@ +function Invoke-CIPPStandardAssignmentFilterTemplate { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) AssignmentFilterTemplate + .SYNOPSIS + (Label) Assignment Filter Template + .DESCRIPTION + (Helptext) Deploy and manage assignment filter templates. + (DocsDescription) Deploy and manage assignment filter templates. + .NOTES + MULTI + True + CAT + Templates + DISABLEDFEATURES + {"report":true,"warn":true,"remediate":false} + IMPACT + Medium Impact + ADDEDDATE + 2025-10-04 + EXECUTIVETEXT + Creates standardized assignment filters with predefined settings. These templates ensure consistent assignment filter configurations across the organization, streamlining assignment management. + ADDEDCOMPONENT + {"type":"autoComplete","name":"assignmentFilterTemplate","label":"Select Assignment Filter Template","api":{"url":"/api/ListAssignmentFilterTemplates","labelField":"Displayname","altLabelField":"displayName","valueField":"GUID","queryKey":"ListAssignmentFilterTemplates"}} + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + param($Tenant, $Settings) + + $TestResult = Test-CIPPStandardLicense -StandardName 'AssignmentFilterTemplate' -TenantFilter $Tenant -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') + + if ($TestResult -eq $false) { + return $true + } #we're done. + + ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'AssignmentFilterTemplate' + $existingFilters = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/assignmentFilters?$select=id,displayName,description,platform,rule,assignmentFilterManagementType' -tenantid $tenant + + $Settings.assignmentFilterTemplate ? ($Settings | Add-Member -NotePropertyName 'TemplateList' -NotePropertyValue $Settings.assignmentFilterTemplate) : $null + + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'AssignmentFilterTemplate' and (RowKey eq '$($Settings.TemplateList.value -join "' or RowKey eq '")')" + $AssignmentFilterTemplates = (Get-CIPPAzDataTableEntity @Table -Filter $Filter).JSON | ConvertFrom-Json + + $ExpectedValue = [PSCustomObject]@{ state = 'Configured correctly' } + $MissingFilters = $AssignmentFilterTemplates | Where-Object { + $CheckExisting = $existingFilters | Where-Object { $_.displayName -eq $_.displayName } + if (!$CheckExisting) { + $_.displayName + } + } + $CurrentValue = if ($MissingFilters.Count -eq 0) { [PSCustomObject]@{'state' = 'Configured correctly' } } else { [PSCustomObject]@{'MissingFilters' = @($MissingFilters) } } + + if ($Settings.remediate -eq $true) { + foreach ($Template in $AssignmentFilterTemplates) { + Write-Information "Processing template: $($Template.displayName)" + try { + $filterobj = $Template + + # Check if filter already exists + $CheckExisting = $existingFilters | Where-Object -Property displayName -EQ $filterobj.displayName + + if (!$CheckExisting) { + Write-Information 'Creating assignment filter' + $ActionType = 'create' + + # Use the centralized New-CIPPAssignmentFilter function + $Result = New-CIPPAssignmentFilter -FilterObject $filterobj -TenantFilter $tenant -APIName 'Standards' -ExecutingUser 'CIPP-Standards' + + if (!$Result.Success) { + Write-Information "Failed to create assignment filter $($filterobj.displayName): $($Result.Message)" + continue + } + } else { + $ActionType = 'update' + + # Compare existing filter with template to determine what needs updating + $PatchBody = [PSCustomObject]@{} + $ChangesNeeded = [System.Collections.Generic.List[string]]::new() + + # Check description + if ($CheckExisting.description -ne $filterobj.description) { + $PatchBody | Add-Member -NotePropertyName 'description' -NotePropertyValue $filterobj.description + $ChangesNeeded.Add("description: '$($CheckExisting.description)' → '$($filterobj.description)'") + } + + # Check platform + if ($CheckExisting.platform -ne $filterobj.platform) { + $PatchBody | Add-Member -NotePropertyName 'platform' -NotePropertyValue $filterobj.platform + $ChangesNeeded.Add("platform: '$($CheckExisting.platform)' → '$($filterobj.platform)'") + } + + # Check rule + if ($CheckExisting.rule -ne $filterobj.rule) { + $PatchBody | Add-Member -NotePropertyName 'rule' -NotePropertyValue $filterobj.rule + $ChangesNeeded.Add("rule: '$($CheckExisting.rule)' → '$($filterobj.rule)'") + } + + # Check assignmentFilterManagementType + if ($CheckExisting.assignmentFilterManagementType -ne $filterobj.assignmentFilterManagementType) { + $PatchBody | Add-Member -NotePropertyName 'assignmentFilterManagementType' -NotePropertyValue $filterobj.assignmentFilterManagementType + $ChangesNeeded.Add("assignmentFilterManagementType: '$($CheckExisting.assignmentFilterManagementType)' → '$($filterobj.assignmentFilterManagementType)'") + } + + # Only patch if there are actual changes + if ($ChangesNeeded.Count -gt 0) { + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/deviceManagement/assignmentFilters/$($CheckExisting.id)" -tenantid $tenant -type PATCH -body (ConvertTo-Json -InputObject $PatchBody -Depth 10) + Write-LogMessage -API 'Standards' -tenant $tenant -message "Updated Assignment Filter '$($filterobj.displayName)' - Changes: $($ChangesNeeded -join ', ')" -Sev Info + } else { + Write-Information "Assignment Filter '$($filterobj.displayName)' already matches template - no update needed" + } + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to $ActionType assignment filter $($filterobj.displayName). Error: $ErrorMessage" -sev 'Error' + } + } + } + if ($Settings.report -eq $true) { + # Check if all filters.displayName are in the existingFilters, if not $fieldvalue should contain all missing filters, else it should be true. + $MissingFilters = foreach ($Filter in $AssignmentFilterTemplates) { + $CheckExisting = $existingFilters | Where-Object { $_.displayName -eq $Filter.displayName } + if (!$CheckExisting) { + $Filter.displayName + } + } + + Set-CIPPStandardsCompareField -FieldName 'standards.AssignmentFilterTemplate' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAtpPolicyForO365.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAtpPolicyForO365.ps1 index bed3d5c48109..3cf2a1536f67 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAtpPolicyForO365.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAtpPolicyForO365.ps1 @@ -13,7 +13,8 @@ function Invoke-CIPPStandardAtpPolicyForO365 { CAT Defender Standards TAG - "CIS" + "CIS M365 5.0 (2.1.5)" + "NIST CSF 2.0 (DE.CM-09)" ADDEDCOMPONENT {"type":"switch","label":"Allow people to click through Protected View even if Safe Documents identified the file as malicious","name":"standards.AtpPolicyForO365.AllowSafeDocsOpen","defaultValue":false,"required":false} IMPACT @@ -31,18 +32,30 @@ function Invoke-CIPPStandardAtpPolicyForO365 { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'AtpPolicyForO365' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'AtpPolicyForO365' + + if ($TestResult -eq $false) { + return $true + } #we're done. try { $CurrentState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-AtpPolicyForO365' | - Select-Object EnableATPForSPOTeamsODB, EnableSafeDocs, AllowSafeDocsOpen + Select-Object EnableATPForSPOTeamsODB, EnableSafeDocs, AllowSafeDocsOpen } catch { $CurrentState = @{ License = 'This tenant might not be licensed for this feature' } } $StateIsCorrect = ($CurrentState.EnableATPForSPOTeamsODB -eq $true) -and - ($CurrentState.EnableSafeDocs -eq $true) -and - ($CurrentState.AllowSafeDocsOpen -eq $Settings.AllowSafeDocsOpen) + ($CurrentState.EnableSafeDocs -eq $true) -and + ($CurrentState.AllowSafeDocsOpen -eq $Settings.AllowSafeDocsOpen) + + $CurrentValue = $CurrentState | Select-Object EnableATPForSPOTeamsODB, EnableSafeDocs, AllowSafeDocsOpen + $ExpectedValue = [PSCustomObject]@{ + EnableATPForSPOTeamsODB = $true + EnableSafeDocs = $true + AllowSafeDocsOpen = $Settings.AllowSafeDocsOpen + } if ($Settings.remediate -eq $true) { if ($StateIsCorrect -eq $true) { @@ -58,8 +71,8 @@ function Invoke-CIPPStandardAtpPolicyForO365 { New-ExoRequest -tenantid $Tenant -cmdlet 'Set-AtpPolicyForO365' -cmdParams $cmdParams -UseSystemMailbox $true Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Updated Atp Policy For O365' -sev Info } catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set Atp Policy For O365. Error: $ErrorMessage" -sev Error + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set Atp Policy For O365. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage } } } @@ -76,7 +89,7 @@ function Invoke-CIPPStandardAtpPolicyForO365 { if ($Settings.report -eq $true) { $state = $StateIsCorrect -eq $true ? $true : $CurrentState - Set-CIPPStandardsCompareField -FieldName 'standards.AtpPolicyForO365' -FieldValue $state -TenantFilter $tenant + Set-CIPPStandardsCompareField -FieldName 'standards.AtpPolicyForO365' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $tenant Add-CIPPBPAField -FieldName 'AtpPolicyForO365' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAuditLog.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAuditLog.ps1 index e7a19162c0fb..21d7ff92f9fd 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAuditLog.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAuditLog.ps1 @@ -13,8 +13,11 @@ function Invoke-CIPPStandardAuditLog { CAT Global Standards TAG - "CIS" + "CIS M365 5.0 (3.1.1)" "mip_search_auditlog" + "NIST CSF 2.0 (DE.CM-09)" + EXECUTIVETEXT + Activates comprehensive activity logging across Microsoft 365 services to track user actions, system changes, and security events. This provides essential audit trails for compliance requirements, security investigations, and regulatory reporting. ADDEDCOMPONENT IMPACT Low Impact @@ -32,14 +35,23 @@ function Invoke-CIPPStandardAuditLog { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'AuditLog' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'AuditLog' - Write-Host ($Settings | ConvertTo-Json) $AuditLogEnabled = [bool](New-ExoRequest -tenantid $Tenant -cmdlet 'Get-AdminAuditLogConfig' -Select UnifiedAuditLogIngestionEnabled).UnifiedAuditLogIngestionEnabled - If ($Settings.remediate -eq $true) { - Write-Host 'Time to remediate' + $CurrentValue = [PSCustomObject]@{ + UnifiedAuditLogIngestionEnabled = $AuditLogEnabled + } + $ExpectedValue = [PSCustomObject]@{ + UnifiedAuditLogIngestionEnabled = $true + } + if ($Settings.remediate -eq $true) { $DehydratedTenant = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig' -Select IsDehydrated).IsDehydrated if ($DehydratedTenant -eq $true) { try { @@ -60,8 +72,8 @@ function Invoke-CIPPStandardAuditLog { } } catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to apply Unified Audit Log. Error: $ErrorMessage" -sev Error + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to apply Unified Audit Log. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage } } if ($Settings.alert -eq $true) { @@ -76,7 +88,7 @@ function Invoke-CIPPStandardAuditLog { if ($Settings.report -eq $true) { $state = $AuditLogEnabled -eq $true ? $true : $AuditLogEnabled - Set-CIPPStandardsCompareField -FieldName 'standards.AuditLog' -FieldValue $state -TenantFilter $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.AuditLog' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'AuditLog' -FieldValue $AuditLogEnabled -StoreAs bool -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAuthMethodsPolicyMigration.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAuthMethodsPolicyMigration.ps1 new file mode 100644 index 000000000000..cd3f5126a43d --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAuthMethodsPolicyMigration.ps1 @@ -0,0 +1,78 @@ +function Invoke-CIPPStandardAuthMethodsPolicyMigration { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) AuthMethodsPolicyMigration + .SYNOPSIS + (Label) Complete Authentication Methods Policy Migration + .DESCRIPTION + (Helptext) Completes the migration of authentication methods policy to the new format + (DocsDescription) Sets the authentication methods policy migration state to complete. This is required when migrating from legacy authentication policies to the new unified authentication methods policy. + .NOTES + CAT + Entra (AAD) Standards + TAG + EXECUTIVETEXT + Completes the transition from legacy authentication policies to Microsoft's modern unified authentication methods policy, ensuring the organization benefits from the latest security features and management capabilities. This migration enables enhanced security controls and simplified policy management. + ADDEDCOMPONENT + IMPACT + Medium Impact + ADDEDDATE + 2025-07-07 + POWERSHELLEQUIVALENT + Update-MgBetaPolicyAuthenticationMethodPolicy + RECOMMENDEDBY + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + try { + $CurrentInfo = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy' -tenantid $Tenant + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the AuthMethodsPolicyMigration state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } + + if ($null -eq $CurrentInfo) { + throw 'Failed to retrieve current authentication methods policy information' + } + + $CurrentValue = $CurrentInfo | Select-Object policyMigrationState + $ExpectedValue = [PSCustomObject]@{ + policyMigrationState = 'migrationComplete' + } + + if ($Settings.remediate -eq $true) { + if ($CurrentInfo.policyMigrationState -eq 'migrationComplete' -or $null -eq $CurrentInfo.policyMigrationState) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Authentication methods policy migration is already complete.' -sev Info + } else { + try { + New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy' -tenantid $Tenant -body '{"policyMigrationState": "migrationComplete"}' -type PATCH + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Authentication methods policy migration completed successfully.' -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to complete authentication methods policy migration: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + if ($CurrentInfo.policyMigrationState -ne 'migrationComplete' -and $null -ne $CurrentInfo.policyMigrationState) { + Write-StandardsAlert -message 'Authentication methods policy migration is not complete. Please check if you have legacy SSPR settings or MFA settings set: https://learn.microsoft.com/en-us/entra/identity/authentication/how-to-authentication-methods-manage' -object $CurrentInfo -tenant $tenant -standardName 'AuthMethodsPolicyMigration' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Authentication methods policy migration is not complete' -sev Alert + } + } + + if ($Settings.report -eq $true) { + $migrationComplete = $CurrentInfo.policyMigrationState -eq 'migrationComplete' -or $null -eq $CurrentInfo.policyMigrationState + Set-CIPPStandardsCompareField -FieldName 'standards.AuthMethodsPolicyMigration' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $tenant + Add-CIPPBPAField -FieldName 'AuthMethodsPolicyMigration' -FieldValue $migrationComplete -StoreAs bool -Tenant $tenant + } + +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAuthMethodsSettings.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAuthMethodsSettings.ps1 index 623858a3e3ca..c9f92324fb17 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAuthMethodsSettings.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAuthMethodsSettings.ps1 @@ -13,6 +13,11 @@ function Invoke-CIPPStandardAuthMethodsSettings { CAT Entra (AAD) Standards TAG + "EIDSCA.AG01" + "EIDSCA.AG02" + "EIDSCA.AG03" + EXECUTIVETEXT + Configures security settings that allow users to report suspicious login attempts and manages how the system handles authentication credentials. This enhances overall security by enabling early detection of potential security threats and optimizing authentication processes. ADDEDCOMPONENT {"type":"autoComplete","multiple":false,"creatable":false,"required":false,"name":"standards.AuthMethodsSettings.ReportSuspiciousActivity","label":"Report Suspicious Activity Settings","options":[{"label":"Microsoft managed","value":"default"},{"label":"Enabled","value":"enabled"},{"label":"Disabled","value":"disabled"}]} {"type":"autoComplete","multiple":false,"creatable":false,"required":false,"name":"standards.AuthMethodsSettings.SystemCredential","label":"System Credential Preferences","options":[{"label":"Microsoft managed","value":"default"},{"label":"Enabled","value":"enabled"},{"label":"Disabled","value":"disabled"}]} @@ -31,7 +36,6 @@ function Invoke-CIPPStandardAuthMethodsSettings { param($Tenant, $Settings) - Write-Host 'Time to run' # Get current authentication methods policy try { $CurrentPolicy = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy' -tenantid $Tenant -AsApp $true @@ -50,13 +54,18 @@ function Invoke-CIPPStandardAuthMethodsSettings { $ValidStates = @('default', 'enabled', 'disabled') if (($Settings.remediate -eq $true -or $Settings.alert -eq $true) -and ($ReportSuspiciousActivityState -notin $ValidStates -or $SystemCredentialState -notin $ValidStates)) { - Write-Host "ReportSuspiciousActivity: $($ReportSuspiciousActivityState)" - Write-Host "SystemCredential: $($SystemCredentialState)" Write-LogMessage -API 'Standards' -tenant $tenant -message 'AuthMethodsPolicy: Invalid state parameter set' -sev Error return } - + $CurrentValue = [PSCustomObject]@{ + reportSuspiciousActivitySettings = $CurrentPolicy.reportSuspiciousActivitySettings.state + systemCredentialPreferences = $CurrentPolicy.systemCredentialPreferences.state + } + $ExpectedValue = [PSCustomObject]@{ + reportSuspiciousActivitySettings = $ReportSuspiciousActivityState + systemCredentialPreferences = $SystemCredentialState + } # Check if states are set correctly $ReportSuspiciousActivityCorrect = if ($CurrentPolicy.reportSuspiciousActivitySettings.state -eq $ReportSuspiciousActivityState) { $true } else { $false } @@ -64,7 +73,6 @@ function Invoke-CIPPStandardAuthMethodsSettings { $StateSetCorrectly = $ReportSuspiciousActivityCorrect -and $SystemCredentialCorrect if ($Settings.remediate -eq $true) { - Write-Host 'Time to remediate' if ($StateSetCorrectly -eq $false) { try { $body = [PSCustomObject]@{ @@ -74,7 +82,6 @@ function Invoke-CIPPStandardAuthMethodsSettings { $body.reportSuspiciousActivitySettings.state = $ReportSuspiciousActivityState $body.systemCredentialPreferences.state = $SystemCredentialState - Write-Host "Body: $($body | ConvertTo-Json -Depth 10 -Compress)" # Update settings $null = New-GraphPostRequest -tenantid $tenant -Uri 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy' -AsApp $true -Type PATCH -Body ($body | ConvertTo-Json -Depth 10 -Compress) -ContentType 'application/json' Write-LogMessage -API 'Standards' -tenant $tenant -message "Successfully configured authentication methods policy settings: Report Suspicious Activity ($ReportSuspiciousActivityState), System Credential Preferences ($SystemCredentialState)" -sev Info @@ -88,8 +95,7 @@ function Invoke-CIPPStandardAuthMethodsSettings { } if ($Settings.report -eq $true) { - $state = $StateSetCorrectly ? $true : @{CurrentReportState = $CurrentReportState; CurrentSystemState = $CurrentSystemState; WantedReportState = $ReportSuspiciousActivityState; WantedSystemState = $SystemCredentialState } - Set-CIPPStandardsCompareField -FieldName 'standards.AuthMethodsSettings' -FieldValue $state -TenantFilter $tenant + Set-CIPPStandardsCompareField -FieldName 'standards.AuthMethodsSettings' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $tenant Add-CIPPBPAField -FieldName 'ReportSuspiciousActivity' -FieldValue $CurrentPolicy.reportSuspiciousActivitySettings.state -StoreAs string -Tenant $tenant Add-CIPPBPAField -FieldName 'SystemCredential' -FieldValue $CurrentPolicy.systemCredentialPreferences.state -StoreAs string -Tenant $tenant } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoAddProxy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoAddProxy.ps1 index 09a97aabe0d2..5549e79b9bc1 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoAddProxy.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoAddProxy.ps1 @@ -13,7 +13,8 @@ function Invoke-CIPPStandardAutoAddProxy { CAT Exchange Standards TAG - "CIS" + EXECUTIVETEXT + Automatically creates email addresses for employees across all company domains, ensuring they can receive emails sent to any of the organization's domain names. This improves email delivery reliability and maintains consistent communication channels across different business units or brands. ADDEDCOMPONENT IMPACT Medium Impact @@ -35,9 +36,15 @@ function Invoke-CIPPStandardAutoAddProxy { $QueueItem ) - $Domains = New-ExoRequest -TenantId $Tenant -Cmdlet 'Get-AcceptedDomain' | Select-Object -ExpandProperty DomainName - $AllMailboxes = New-ExoRequest -TenantId $Tenant -Cmdlet 'Get-Mailbox' - + try { + $Domains = New-ExoRequest -TenantId $Tenant -Cmdlet 'Get-AcceptedDomain' | Select-Object -ExpandProperty DomainName + $AllMailboxes = New-ExoRequest -TenantId $Tenant -Cmdlet 'Get-Mailbox' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the AutoAddProxy state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } + $MissingProxies = 0 foreach ($Domain in $Domains) { $ProcessMailboxes = $AllMailboxes | Where-Object { @@ -47,15 +54,21 @@ function Invoke-CIPPStandardAutoAddProxy { } $MissingProxies += $ProcessMailboxes.Count } - + $StateIsCorrect = $MissingProxies -eq 0 - + $ExpectedValue = [PSCustomObject]@{ + MissingProxies = 0 + } + $CurrentValue = [PSCustomObject]@{ + MissingProxies = $MissingProxies + } + + if ($Settings.report -eq $true) { - $state = $StateIsCorrect ? $true : $MissingProxies - Set-CIPPStandardsCompareField -FieldName 'standards.AutoAddProxy' -FieldValue $state -TenantFilter $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.AutoAddProxy' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'AutoAddProxy' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant } - + if ($Settings.alert -eq $true) { if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -tenant $Tenant -message 'All mailboxes have proxy addresses for all domains' -sev Info @@ -91,11 +104,10 @@ function Invoke-CIPPStandardAutoAddProxy { } } $BatchResults = New-ExoBulkRequest -tenantid $Tenant -cmdletArray @($bulkRequest) - $BatchResults | ForEach-Object { - if ($_.error) { - $ErrorMessage = Get-CippException -Exception $_.error - Write-Host "Failed to apply new email policy to $($_.target) Error: $($ErrorMessage.NormalizedError)" - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to apply proxy address to $($_.error.target) Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + foreach ($Result in $BatchResults) { + if ($Result.error) { + $ErrorMessage = Get-CippException -Exception $Result.error + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to apply proxy address to $($Result.error.target) Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage } } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoArchive.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoArchive.ps1 new file mode 100644 index 000000000000..e8c0b7d6be5a --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoArchive.ps1 @@ -0,0 +1,100 @@ +function Invoke-CIPPStandardAutoArchive { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) AutoArchive + .SYNOPSIS + (Label) Configure Auto-Archiving Threshold + .DESCRIPTION + (Helptext) Configures the auto-archiving threshold percentage for the tenant. When a mailbox exceeds this threshold, the oldest items are automatically moved to the archive mailbox. Archive must be enabled manually or via the CIPP standard 'Enable Online Archive for all users'. More information can be found in [Microsoft's documentation.](https://learn.microsoft.com/en-us/exchange/security-and-compliance/messaging-records-management/auto-archiving) + (DocsDescription) Configures the auto-archiving threshold at the organization level. Auto-archiving automatically moves the oldest items from a user's primary mailbox to their archive mailbox when mailbox usage exceeds the configured threshold percentage. This prevents mail flow disruptions caused by full mailboxes. Valid range is 80-100, where 100 disables auto-archiving for the tenant. More information can be found in [Microsoft's documentation.](https://learn.microsoft.com/en-us/exchange/security-and-compliance/messaging-records-management/auto-archiving) + .NOTES + CAT + Exchange Standards + TAG + EXECUTIVETEXT + Configures automatic archiving of mailbox items when storage approaches capacity, preventing email delivery failures due to full mailboxes. This proactive storage management ensures business continuity and reduces helpdesk tickets related to mailbox quota issues. + ADDEDCOMPONENT + {"type":"number","name":"standards.AutoArchive.AutoArchivingThresholdPercentage","label":"Auto-Archiving Threshold Percentage (80-100, default 96, 100 disables)","defaultValue":96} + IMPACT + Low Impact + ADDEDDATE + 2025-12-11 + POWERSHELLEQUIVALENT + Set-OrganizationConfig -AutoArchivingThresholdPercentage 80-100 + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'AutoArchive' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') + + if ($TestResult -eq $false) { + return $true + } + + # Get the threshold value from settings + $DesiredThreshold = [int]($Settings.AutoArchivingThresholdPercentage) + + # Validate the threshold is within valid range + if ($DesiredThreshold -lt 80 -or $DesiredThreshold -gt 100) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Invalid AutoArchivingThresholdPercentage value: $DesiredThreshold. Must be between 80 and 100." -Sev Error + return + } + + try { + $CurrentState = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig' -Select 'AutoArchivingThresholdPercentage').AutoArchivingThresholdPercentage + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the AutoArchive state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } + + $CorrectState = $CurrentState -eq $DesiredThreshold + + $ExpectedValue = [PSCustomObject]@{ + AutoArchivingThresholdPercentage = $DesiredThreshold + } + $CurrentValue = [PSCustomObject]@{ + AutoArchivingThresholdPercentage = $CurrentState + } + + if ($Settings.remediate -eq $true) { + if ($CorrectState) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Auto-archiving threshold is already set to $CurrentState%." -Sev Info + } else { + try { + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-OrganizationConfig' -cmdParams @{ AutoArchivingThresholdPercentage = $DesiredThreshold } + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Auto-archiving threshold has been set to $DesiredThreshold%." -Sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Failed to set auto-archiving threshold. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + + if ($CorrectState) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Auto-archiving threshold is correctly set to $CurrentState%." -Sev Info + } else { + Write-StandardsAlert -message "Auto-archiving threshold is set to $CurrentState% but should be $DesiredThreshold%." -object @{ CurrentThreshold = $CurrentState; DesiredThreshold = $DesiredThreshold } -tenant $Tenant -standardName 'AutoArchive' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Auto-archiving threshold is set to $CurrentState% but should be $DesiredThreshold%." -Sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'AutoArchive' -FieldValue $CorrectState -StoreAs bool -Tenant $Tenant + + if ($CorrectState) { + $FieldValue = $true + } else { + $FieldValue = @{ CurrentThreshold = $CurrentState; DesiredThreshold = $DesiredThreshold } + } + Set-CIPPStandardsCompareField -FieldName 'standards.AutoArchive' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoArchiveMailbox.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoArchiveMailbox.ps1 new file mode 100644 index 000000000000..ef649fcedfbb --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoArchiveMailbox.ps1 @@ -0,0 +1,93 @@ +function Invoke-CIPPStandardAutoArchiveMailbox { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) AutoArchiveMailbox + .SYNOPSIS + (Label) Set auto enable archive mailbox state + .DESCRIPTION + (Helptext) Enables or disables the tenant policy that automatically provisions an archive mailbox when a user's primary mailbox reaches 90% of its quota. + (DocsDescription) Enables or disables the tenant policy that automatically provisions an archive mailbox when a user's primary mailbox reaches 90% of its quota. This is separate from auto-archiving thresholds and does not enable archives for all users immediately. + .NOTES + CAT + Exchange Standards + TAG + EXECUTIVETEXT + Automatically provisions archive mailboxes only when users reach 90% of their mailbox capacity, reducing manual intervention and preventing mailbox quota issues without enabling archives for everyone. + ADDEDCOMPONENT + {"type":"autoComplete","multiple":false,"creatable":false,"label":"Select value","name":"standards.AutoArchiveMailbox.state","options":[{"label":"Enabled","value":"enabled"},{"label":"Disabled","value":"disabled"}]} + IMPACT + Low Impact + ADDEDDATE + 2026-01-16 + POWERSHELLEQUIVALENT + Set-OrganizationConfig -AutoEnableArchiveMailbox \$true\|\$false + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'AutoArchiveMailbox' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') + + if ($TestResult -eq $false) { + return $true + } + + $StateValue = $Settings.state.value ?? $Settings.state + + if ([string]::IsNullOrWhiteSpace($StateValue)) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'AutoArchiveMailbox: Invalid state parameter set' -Sev Error + return + } + + $DesiredState = $StateValue -eq 'enabled' + + try { + $CurrentState = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig' -Select 'AutoEnableArchiveMailbox').AutoEnableArchiveMailbox + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the AutoArchiveMailbox state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } + + $CorrectState = $CurrentState -eq $DesiredState + + $ExpectedValue = [PSCustomObject]@{ + AutoEnableArchiveMailbox = $DesiredState + } + $CurrentValue = [PSCustomObject]@{ + AutoEnableArchiveMailbox = $CurrentState + } + + if ($Settings.remediate -eq $true) { + if ($CorrectState) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Auto enable archive mailbox is already set to $StateValue." -Sev Info + } else { + try { + New-ExoRequest -tenantid $Tenant -cmdlet 'Set-OrganizationConfig' -cmdParams @{ AutoEnableArchiveMailbox = $DesiredState } + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Auto enable archive mailbox has been set to $StateValue." -Sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Failed to set auto enable archive mailbox to $StateValue. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + if ($CorrectState) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Auto enable archive mailbox is correctly set to $StateValue." -Sev Info + } else { + Write-StandardsAlert -message "Auto enable archive mailbox is set to $CurrentState but should be $DesiredState." -object @{ CurrentState = $CurrentState; DesiredState = $DesiredState } -tenant $Tenant -standardName 'AutoArchiveMailbox' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Auto enable archive mailbox is set to $CurrentState but should be $DesiredState." -Sev Info + } + } + + if ($Settings.report -eq $true) { + Set-CIPPStandardsCompareField -FieldName 'standards.AutoArchiveMailbox' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'AutoArchiveMailbox' -FieldValue $CurrentState -StoreAs bool -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoExpandArchive.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoExpandArchive.ps1 index 14d1b614fc2b..40dc7014d49e 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoExpandArchive.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoExpandArchive.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardAutoExpandArchive { CAT Exchange Standards TAG + EXECUTIVETEXT + Enables automatic expansion of email archive storage when users approach their archive limits, ensuring continuous email retention without manual intervention. This prevents email storage issues and maintains compliance with data retention policies without requiring ongoing administrative management. ADDEDCOMPONENT IMPACT Low Impact @@ -28,13 +30,29 @@ function Invoke-CIPPStandardAutoExpandArchive { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'AutoExpandArchive' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'AutoExpandArchive' - $CurrentState = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig').AutoExpandingArchiveEnabled + try { + $CurrentState = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig').AutoExpandingArchiveEnabled + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the AutoExpandArchive state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } - If ($Settings.remediate -eq $true) { - Write-Host 'Time to remediate' + $ExpectedValue = [PSCustomObject]@{ + AutoExpandingArchive = $true + } + $CurrentValue = [PSCustomObject]@{ + AutoExpandingArchive = $CurrentState + } + if ($Settings.remediate -eq $true) { if ($CurrentState) { Write-LogMessage -API 'Standards' -tenant $tenant -message 'Auto Expanding Archive is already enabled.' -sev Info } else { @@ -42,8 +60,8 @@ function Invoke-CIPPStandardAutoExpandArchive { New-ExoRequest -tenantid $Tenant -cmdlet 'Set-OrganizationConfig' -cmdParams @{AutoExpandingArchive = $true } Write-LogMessage -API 'Standards' -tenant $tenant -message 'Added Auto Expanding Archive.' -sev Info } catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to apply Auto Expanding Archives. Error: $ErrorMessage" -sev Error + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to apply Auto Expanding Archives. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage } } } @@ -59,8 +77,7 @@ function Invoke-CIPPStandardAutoExpandArchive { } if ($Settings.report -eq $true) { - $state = $CurrentState -eq $true ? $true : $CurrentState - Set-CIPPStandardsCompareField -FieldName 'standards.AutoExpandArchive' -FieldValue $state -TenantFilter $tenant + Set-CIPPStandardsCompareField -FieldName 'standards.AutoExpandArchive' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $tenant Add-CIPPBPAField -FieldName 'AutoExpandingArchive' -FieldValue $CurrentState -StoreAs bool -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutopilotProfile.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutopilotProfile.ps1 index 041628368288..508e56635b2e 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutopilotProfile.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutopilotProfile.ps1 @@ -19,7 +19,7 @@ function Invoke-CIPPStandardAutopilotProfile { {"type":"textField","name":"standards.AutopilotProfile.DisplayName","label":"Profile Display Name"} {"type":"textField","name":"standards.AutopilotProfile.Description","label":"Profile Description"} {"type":"textField","name":"standards.AutopilotProfile.DeviceNameTemplate","label":"Unique Device Name Template","required":false} - {"type":"autoComplete","multiple":false,"creatable":false,"required":false,"name":"standards.AutopilotProfile.Languages","label":"Languages","api":{"url":"/languageList.json","labelField":"language","valueField":"tag"}} + {"type":"autoComplete","multiple":false,"creatable":false,"required":false,"name":"standards.AutopilotProfile.Languages","label":"Languages","api":{"url":"/languageList.json","labelField":"languageTag","valueField":"tag"}} {"type":"switch","name":"standards.AutopilotProfile.CollectHash","label":"Convert all targeted devices to Autopilot","defaultValue":true} {"type":"switch","name":"standards.AutopilotProfile.AssignToAllDevices","label":"Assign to all devices","defaultValue":true} {"type":"switch","name":"standards.AutopilotProfile.SelfDeployingMode","label":"Enable Self-deploying Mode","defaultValue":true} @@ -40,47 +40,78 @@ function Invoke-CIPPStandardAutopilotProfile { https://docs.cipp.app/user-documentation/tenant/standards/list-standards #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'AutopilotProfile' -TenantFilter $Tenant -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') # Get the current configuration - try { - # Replace variables in displayname to prevent duplicates - $DisplayName = Get-CIPPTextReplacement -Text $Settings.DisplayName -TenantFilter $Tenant + if ($TestResult -eq $false) { + return $true + } #we're done. + try { $CurrentConfig = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles' -tenantid $Tenant | - Where-Object { $_.displayName -eq $DisplayName } | - Select-Object -Property displayName, description, deviceNameTemplate, language, enableWhiteGlove, extractHardwareHash, outOfBoxExperienceSetting, preprovisioningAllowed + Where-Object { $_.displayName -eq $Settings.DisplayName } | + Select-Object -Property displayName, description, deviceNameTemplate, locale, preprovisioningAllowed, hardwareHashExtractionEnabled, outOfBoxExperienceSetting if ($Settings.NotLocalAdmin -eq $true) { $userType = 'Standard' } else { $userType = 'Administrator' } - if ($Settings.SelfDeployingMode -eq $true) { $DeploymentMode = 'shared' } else { $DeploymentMode = 'singleUser' } - if ($Settings.AllowWhiteGlove -eq $true) { $Settings.HideChangeAccount = $true } + if ($Settings.SelfDeployingMode -eq $true) { + $DeploymentMode = 'shared' + $Settings.AllowWhiteGlove = $false + } else { + $DeploymentMode = 'singleUser' + } - $StateIsCorrect = ($CurrentConfig.displayName -eq $DisplayName) -and + $StateIsCorrect = ($CurrentConfig.displayName -eq $Settings.DisplayName) -and ($CurrentConfig.description -eq $Settings.Description) -and ($CurrentConfig.deviceNameTemplate -eq $Settings.DeviceNameTemplate) -and - ([string]::IsNullOrWhiteSpace($CurrentConfig.language) -and [string]::IsNullOrWhiteSpace($Settings.Languages.value) -or $CurrentConfig.language -eq $Settings.Languages.value) -and - ($CurrentConfig.enableWhiteGlove -eq $Settings.AllowWhiteGlove) -and - ($CurrentConfig.extractHardwareHash -eq $Settings.CollectHash) -and + ([string]::IsNullOrWhiteSpace($CurrentConfig.locale) -and [string]::IsNullOrWhiteSpace($Settings.Languages.value) -or $CurrentConfig.locale -eq $Settings.Languages.value) -and + ($CurrentConfig.preprovisioningAllowed -eq $Settings.AllowWhiteGlove) -and + ($CurrentConfig.hardwareHashExtractionEnabled -eq $Settings.CollectHash) -and ($CurrentConfig.outOfBoxExperienceSetting.deviceUsageType -eq $DeploymentMode) -and - ($CurrentConfig.outOfBoxExperienceSetting.escapeLinkHidden -eq $Settings.HideChangeAccount) -and ($CurrentConfig.outOfBoxExperienceSetting.privacySettingsHidden -eq $Settings.HidePrivacy) -and ($CurrentConfig.outOfBoxExperienceSetting.eulaHidden -eq $Settings.HideTerms) -and ($CurrentConfig.outOfBoxExperienceSetting.userType -eq $userType) -and ($CurrentConfig.outOfBoxExperienceSetting.keyboardSelectionPageSkipped -eq $Settings.AutoKeyboard) } catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to check Autopilot profile: $ErrorMessage" -sev Error + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to check Autopilot profile: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage $StateIsCorrect = $false } + $CurrentValue = $CurrentConfig | Select-Object -Property displayName, description, deviceNameTemplate, locale, preprovisioningAllowed, hardwareHashExtractionEnabled, @{Name = 'outOfBoxExperienceSetting'; Expression = { + [PSCustomObject]@{ + deviceUsageType = $_.outOfBoxExperienceSetting.deviceUsageType + privacySettingsHidden = $_.outOfBoxExperienceSetting.privacySettingsHidden + eulaHidden = $_.outOfBoxExperienceSetting.eulaHidden + userType = $_.outOfBoxExperienceSetting.userType + keyboardSelectionPageSkipped = $_.outOfBoxExperienceSetting.keyboardSelectionPageSkipped + } + } + } + $ExpectedValue = [PSCustomObject]@{ + displayName = $Settings.DisplayName + description = $Settings.Description + deviceNameTemplate = $Settings.DeviceNameTemplate + locale = $Settings.Languages.value + preprovisioningAllowed = $Settings.AllowWhiteGlove + hardwareHashExtractionEnabled = $Settings.CollectHash + outOfBoxExperienceSetting = [PSCustomObject]@{ + deviceUsageType = $DeploymentMode + privacySettingsHidden = $Settings.HidePrivacy + eulaHidden = $Settings.HideTerms + userType = $userType + keyboardSelectionPageSkipped = $Settings.AutoKeyboard + } + } + # Remediate if the state is not correct if ($Settings.remediate -eq $true) { if ($StateIsCorrect -eq $true) { - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Autopilot profile '$($DisplayName)' already exists" -sev Info + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Autopilot profile '$($Settings.DisplayName)' already exists" -sev Info } else { try { $Parameters = @{ tenantFilter = $Tenant - displayName = $DisplayName + displayName = $Settings.DisplayName description = $Settings.Description userType = $userType DeploymentMode = $DeploymentMode @@ -88,7 +119,7 @@ function Invoke-CIPPStandardAutopilotProfile { devicenameTemplate = $Settings.DeviceNameTemplate allowWhiteGlove = $Settings.AllowWhiteGlove CollectHash = $Settings.CollectHash - hideChangeAccount = $Settings.HideChangeAccount + hideChangeAccount = $true hidePrivacy = $Settings.HidePrivacy hideTerms = $Settings.HideTerms AutoKeyboard = $Settings.AutoKeyboard @@ -97,13 +128,13 @@ function Invoke-CIPPStandardAutopilotProfile { Set-CIPPDefaultAPDeploymentProfile @Parameters if ($null -eq $CurrentConfig) { - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Created Autopilot profile '$($DisplayName)'" -sev Info + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Created Autopilot profile '$($Settings.DisplayName)'" -sev Info } else { - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Updated Autopilot profile '$($DisplayName)'" -sev Info + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Updated Autopilot profile '$($Settings.DisplayName)'" -sev Info } } catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to create Autopilot profile: $ErrorMessage" -sev 'Error' + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to create Autopilot profile: $($ErrorMessage.NormalizedError)" -sev 'Error' -LogData $ErrorMessage throw $ErrorMessage } } @@ -111,18 +142,17 @@ function Invoke-CIPPStandardAutopilotProfile { # Report if ($Settings.report -eq $true) { - $FieldValue = $StateIsCorrect -eq $true ? $true : $CurrentConfig - Set-CIPPStandardsCompareField -FieldName 'standards.AutopilotProfile' -FieldValue $FieldValue -TenantFilter $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.AutopilotProfile' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'AutopilotProfile' -FieldValue [bool]$StateIsCorrect -StoreAs bool -Tenant $Tenant } # Alert if ($Settings.alert -eq $true) { if ($StateIsCorrect -eq $true) { - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Autopilot profile '$($DisplayName)' exists" -sev Info + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Autopilot profile '$($Settings.DisplayName)' exists" -sev Info } else { - Write-StandardsAlert -message "Autopilot profile '$($DisplayName)' do not match expected configuration" -object $CurrentConfig -tenant $Tenant -standardName 'AutopilotProfile' -standardId $Settings.standardId - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Autopilot profile '$($DisplayName)' do not match expected configuration" -sev Info + Write-StandardsAlert -message "Autopilot profile '$($Settings.DisplayName)' do not match expected configuration" -object $CurrentConfig -tenant $Tenant -standardName 'AutopilotProfile' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Autopilot profile '$($Settings.DisplayName)' do not match expected configuration" -sev Info } } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutopilotStatusPage.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutopilotStatusPage.ps1 index e8957cb84d8c..1fcf83165723 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutopilotStatusPage.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutopilotStatusPage.ps1 @@ -15,14 +15,16 @@ function Invoke-CIPPStandardAutopilotStatusPage { TAG DISABLEDFEATURES {"report":false,"warn":false,"remediate":false} + EXECUTIVETEXT + Provides employees with a visual progress indicator during automated device setup, improving the user experience when receiving new computers. This reduces IT support calls and helps ensure successful device deployment by guiding users through the setup process. ADDEDCOMPONENT {"type":"number","name":"standards.AutopilotStatusPage.TimeOutInMinutes","label":"Timeout in minutes","defaultValue":60} {"type":"textField","name":"standards.AutopilotStatusPage.ErrorMessage","label":"Custom Error Message","required":false} {"type":"switch","name":"standards.AutopilotStatusPage.ShowProgress","label":"Show progress to users","defaultValue":true} {"type":"switch","name":"standards.AutopilotStatusPage.EnableLog","label":"Turn on log collection","defaultValue":true} {"type":"switch","name":"standards.AutopilotStatusPage.OBEEOnly","label":"Show status page only with OOBE setup","defaultValue":true} + {"type":"switch","name":"standards.AutopilotStatusPage.InstallWindowsUpdates","label":"Install Windows Updates during setup","defaultValue":true} {"type":"switch","name":"standards.AutopilotStatusPage.BlockDevice","label":"Block device usage during setup","defaultValue":true} - {"type":"switch","name":"standards.AutopilotStatusPage.AllowRetry","label":"Allow retry","defaultValue":true} {"type":"switch","name":"standards.AutopilotStatusPage.AllowReset","label":"Allow reset","defaultValue":true} {"type":"switch","name":"standards.AutopilotStatusPage.AllowFail","label":"Allow users to use device if setup fails","defaultValue":true} IMPACT @@ -36,52 +38,72 @@ function Invoke-CIPPStandardAutopilotStatusPage { https://docs.cipp.app/user-documentation/tenant/standards/list-standards #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'AutopilotStatusPage' -TenantFilter $Tenant -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') # Get current Autopilot enrollment status page configuration + + if ($TestResult -eq $false) { + return $true + } #we're done. try { $CurrentConfig = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/deviceEnrollmentConfigurations?`$expand=assignments&orderBy=priority&`$filter=deviceEnrollmentConfigurationType eq 'windows10EnrollmentCompletionPageConfiguration' and priority eq 0" -tenantid $Tenant | - Select-Object -Property id, displayName, priority, showInstallationProgress, blockDeviceSetupRetryByUser, allowDeviceResetOnInstallFailure, allowLogCollectionOnInstallFailure, customErrorMessage, installProgressTimeoutInMinutes, allowDeviceUseOnInstallFailure, trackInstallProgressForAutopilotOnly + Select-Object -Property id, displayName, priority, showInstallationProgress, blockDeviceSetupRetryByUser, allowDeviceResetOnInstallFailure, allowLogCollectionOnInstallFailure, customErrorMessage, installProgressTimeoutInMinutes, allowDeviceUseOnInstallFailure, trackInstallProgressForAutopilotOnly, installQualityUpdates + + # Compatibility for standards made in v8.3.0 or before, which did not have the InstallWindowsUpdates setting + $InstallWindowsUpdates = $Settings.InstallWindowsUpdates ?? $false $StateIsCorrect = ($CurrentConfig.installProgressTimeoutInMinutes -eq $Settings.TimeOutInMinutes) -and - ($CurrentConfig.customErrorMessage -eq $Settings.ErrorMessage) -and - ($CurrentConfig.showInstallationProgress -eq $Settings.ShowProgress) -and - ($CurrentConfig.allowLogCollectionOnInstallFailure -eq $Settings.EnableLog) -and - ($CurrentConfig.trackInstallProgressForAutopilotOnly -eq $Settings.OBEEOnly) -and - ($CurrentConfig.blockDeviceSetupRetryByUser -eq !$Settings.BlockDevice) -and - ($CurrentConfig.allowDeviceResetOnInstallFailure -eq $Settings.AllowReset) -and - ($CurrentConfig.allowDeviceUseOnInstallFailure -eq $Settings.AllowFail) + ($CurrentConfig.customErrorMessage -eq $Settings.ErrorMessage) -and + ($CurrentConfig.showInstallationProgress -eq $Settings.ShowProgress) -and + ($CurrentConfig.allowLogCollectionOnInstallFailure -eq $Settings.EnableLog) -and + ($CurrentConfig.trackInstallProgressForAutopilotOnly -eq $Settings.OBEEOnly) -and + ($CurrentConfig.blockDeviceSetupRetryByUser -eq !$Settings.BlockDevice) -and + ($CurrentConfig.installQualityUpdates -eq $InstallWindowsUpdates) -and + ($CurrentConfig.allowDeviceResetOnInstallFailure -eq $Settings.AllowReset) -and + ($CurrentConfig.allowDeviceUseOnInstallFailure -eq $Settings.AllowFail) } catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to check Autopilot Enrollment Status Page: $ErrorMessage" -sev Error + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to check Autopilot Enrollment Status Page: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage $StateIsCorrect = $false } + $CurrentValue = $CurrentConfig | Select-Object -Property id, displayName, priority, showInstallationProgress, blockDeviceSetupRetryByUser, allowDeviceResetOnInstallFailure, allowLogCollectionOnInstallFailure, customErrorMessage, installProgressTimeoutInMinutes, allowDeviceUseOnInstallFailure, trackInstallProgressForAutopilotOnly, installQualityUpdates + $ExpectedValue = [PSCustomObject]@{ + installProgressTimeoutInMinutes = $Settings.TimeOutInMinutes + customErrorMessage = $Settings.ErrorMessage + showInstallationProgress = $Settings.ShowProgress + allowLogCollectionOnInstallFailure = $Settings.EnableLog + trackInstallProgressForAutopilotOnly = $Settings.OBEEOnly + blockDeviceSetupRetryByUser = !$Settings.BlockDevice + installQualityUpdates = $InstallWindowsUpdates + allowDeviceResetOnInstallFailure = $Settings.AllowReset + allowDeviceUseOnInstallFailure = $Settings.AllowFail + } + # Remediate if the state is not correct - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { try { $Parameters = @{ - TenantFilter = $Tenant - ShowProgress = $Settings.ShowProgress - BlockDevice = $Settings.BlockDevice - AllowReset = $Settings.AllowReset - EnableLog = $Settings.EnableLog - ErrorMessage = $Settings.ErrorMessage - TimeOutInMinutes = $Settings.TimeOutInMinutes - AllowFail = $Settings.AllowFail - OBEEOnly = $Settings.OBEEOnly + TenantFilter = $Tenant + ShowProgress = $Settings.ShowProgress + BlockDevice = $Settings.BlockDevice + InstallWindowsUpdates = $InstallWindowsUpdates + AllowReset = $Settings.AllowReset + EnableLog = $Settings.EnableLog + ErrorMessage = $Settings.ErrorMessage + TimeOutInMinutes = $Settings.TimeOutInMinutes + AllowFail = $Settings.AllowFail + OBEEOnly = $Settings.OBEEOnly } Set-CIPPDefaultAPEnrollment @Parameters } catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - throw $ErrorMessage } } # Report if ($Settings.report -eq $true) { - $FieldValue = $StateIsCorrect -eq $true ? $true : $CurrentConfig - Set-CIPPStandardsCompareField -FieldName 'standards.AutopilotStatusPage' -FieldValue $FieldValue -TenantFilter $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.AutopilotStatusPage' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'AutopilotStatusPage' -FieldValue [bool]$StateIsCorrect -StoreAs bool -Tenant $Tenant } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBitLockerKeysForOwnedDevice.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBitLockerKeysForOwnedDevice.ps1 new file mode 100644 index 000000000000..ffd3062882a1 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBitLockerKeysForOwnedDevice.ps1 @@ -0,0 +1,106 @@ +function Invoke-CIPPStandardBitLockerKeysForOwnedDevice { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) BitLockerKeysForOwnedDevice + .SYNOPSIS + (Label) Control BitLocker key recovery for owned devices + .DESCRIPTION + (Helptext) Controls whether standard users can recover BitLocker keys for devices they own. + (DocsDescription) Updates the Microsoft Entra authorization policy that controls whether standard users can read BitLocker recovery keys for devices they own. Choose to restrict access for tighter security or allow self-service recovery when operational needs require it. + .NOTES + CAT + Entra (AAD) Standards + TAG + EXECUTIVETEXT + Gives administrators centralized control over BitLocker recovery secrets—restrict access to ensure IT-assisted recovery flows, or allow self-service when rapid device unlocks are a priority. + ADDEDCOMPONENT + {"type":"autoComplete","multiple":false,"creatable":false,"label":"Select state","name":"standards.BitLockerKeysForOwnedDevice.state","options":[{"label":"Restrict","value":"restrict"},{"label":"Allow","value":"allow"}]} + IMPACT + Low Impact + ADDEDDATE + 2025-10-12 + POWERSHELLEQUIVALENT + Update-MgBetaPolicyAuthorizationPolicy + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'BitLockerKeysForOwnedDevice' + + $StateValue = $Settings.state.value ?? $Settings.state + if ([string]::IsNullOrWhiteSpace($StateValue)) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'BitLockerKeysForOwnedDevice: Invalid state parameter set.' -sev Error + return + } + + switch ($StateValue.ToLowerInvariant()) { + 'restrict' { $DesiredValue = $false; $DesiredLabel = 'restricted'; break } + 'allow' { $DesiredValue = $true; $DesiredLabel = 'allowed'; break } + default { + Write-LogMessage -API 'Standards' -tenant $tenant -message "BitLockerKeysForOwnedDevice: Unsupported state value '$StateValue'." -sev Error + return + } + } + + try { + $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy' -tenantid $Tenant + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the BitLockerKeysForOwnedDevice state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } + $CurrentStateValue = [bool]$CurrentState.defaultUserRolePermissions.allowedToReadBitLockerKeysForOwnedDevice + $StateIsCorrect = ($CurrentStateValue -eq $DesiredValue) + + $CurrentValue = [PSCustomObject]@{ + allowedToReadBitLockerKeysForOwnedDevice = $CurrentStateValue + } + $ExpectedValue = [PSCustomObject]@{ + allowedToReadBitLockerKeysForOwnedDevice = $DesiredValue + } + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Users are already $DesiredLabel from recovering BitLocker keys for their owned devices." -sev Info + } else { + try { + $BodyObject = @{ defaultUserRolePermissions = @{ allowedToReadBitLockerKeysForOwnedDevice = $DesiredValue } } + $BodyJson = $BodyObject | ConvertTo-Json -Depth 4 -Compress + $null = New-GraphPOSTRequest -tenantid $tenant -Uri 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy' -Type patch -Body $BodyJson + $ActionMessage = if ($DesiredValue) { 'Allowed users to recover BitLocker keys for their owned devices.' } else { 'Restricted users from recovering BitLocker keys for their owned devices.' } + Write-LogMessage -API 'Standards' -tenant $tenant -message $ActionMessage -sev Info + + + # Update current state variables to reflect the change immediately if running remediate and report/alert together + $CurrentState.defaultUserRolePermissions.allowedToReadBitLockerKeysForOwnedDevice = $DesiredValue + $CurrentStateValue = $DesiredValue + $StateIsCorrect = $true + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to $StateValue users to recover BitLocker keys for their owned devices: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Users are $DesiredLabel to recover BitLocker keys for their owned devices as configured." -sev Info + } else { + $CurrentLabel = if ($CurrentStateValue) { 'allowed' } else { 'restricted' } + $AlertMessage = "Users are $CurrentLabel to recover BitLocker keys for their owned devices but should be $DesiredLabel." + Write-StandardsAlert -message $AlertMessage -object $CurrentState -tenant $tenant -standardName 'BitLockerKeysForOwnedDevice' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message $AlertMessage -sev Info + } + } + + if ($Settings.report -eq $true) { + Set-CIPPStandardsCompareField -FieldName 'standards.BitLockerKeysForOwnedDevice' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $tenant + Add-CIPPBPAField -FieldName 'BitLockerKeysForOwnedDevice' -FieldValue $CurrentValue -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBookings.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBookings.ps1 index 67d733214ee7..95cb110b2076 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBookings.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBookings.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardBookings { CAT Exchange Standards TAG + EXECUTIVETEXT + Controls whether employees can use Microsoft Bookings to create online appointment scheduling pages for internal and external clients. This feature can improve customer service and streamline appointment management, but may need to be controlled for security or business process reasons. ADDEDCOMPONENT {"type":"autoComplete","multiple":false,"label":"Select value","name":"standards.Bookings.state","options":[{"label":"Enabled","value":"true"},{"label":"Disabled","value":"false"}]} IMPACT @@ -29,18 +31,36 @@ function Invoke-CIPPStandardBookings { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'Bookings' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'Bookings' # Get state value using null-coalescing operator $state = $Settings.state.value ?? $Settings.state - $CurrentState = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig').BookingsEnabled + try { + $CurrentState = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig').BookingsEnabled + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the Bookings state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } $WantedState = if ($state -eq 'true') { $true } else { $false } $StateIsCorrect = if ($CurrentState -eq $WantedState) { $true } else { $false } + $CurrentValue = [PSCustomObject]@{ + BookingsEnabled = $CurrentState + } + $ExpectedValue = [PSCustomObject]@{ + BookingsEnabled = $WantedState + } + if ($Settings.report -eq $true) { $state = $StateIsCorrect ? $true : $CurrentState - Set-CIPPStandardsCompareField -FieldName 'standards.Bookings' -FieldValue $state -TenantFilter $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.Bookings' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant if ($null -eq $CurrentState ) { $CurrentState = $true } Add-CIPPBPAField -FieldName 'BookingsState' -FieldValue $CurrentState -StoreAs bool -Tenant $Tenant } @@ -48,10 +68,9 @@ function Invoke-CIPPStandardBookings { # Input validation if (([string]::IsNullOrWhiteSpace($state) -or $state -eq 'Select a value') -and ($Settings.remediate -eq $true -or $Settings.alert -eq $true)) { Write-LogMessage -API 'Standards' -tenant $Tenant -message 'BookingsEnabled: Invalid state parameter set' -sev Error - Return + return } if ($Settings.remediate -eq $true) { - Write-Host 'Time to remediate' if ($StateIsCorrect -eq $false) { try { $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-OrganizationConfig' -cmdParams @{ BookingsEnabled = $WantedState } -useSystemMailbox $true diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBranding.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBranding.ps1 index 24ddefaffd0b..a0efe5f4ea5b 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBranding.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBranding.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardBranding { CAT Global Standards TAG + EXECUTIVETEXT + Customizes Microsoft 365 login pages and portals with company branding, including logos, colors, and messaging. This creates a consistent corporate identity experience for employees and reinforces brand recognition while maintaining professional appearance across all Microsoft services. ADDEDCOMPONENT {"type":"textField","name":"standards.Branding.signInPageText","label":"Sign-in page text","required":false} {"type":"textField","name":"standards.Branding.usernameHintText","label":"Username hint Text","required":false} @@ -34,28 +36,85 @@ function Invoke-CIPPStandardBranding { #> param($Tenant, $Settings) + + $TestResult = Test-CIPPStandardLicense -StandardName 'Branding' -TenantFilter $Tenant -RequiredCapabilities @('AAD_PREMIUM', 'AAD_PREMIUM_P2') + + if ($TestResult -eq $false) { + return $true + } #we're done. + ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'Branding' $TenantId = Get-Tenants | Where-Object -Property defaultDomainName -EQ $Tenant - try { - $CurrentState = New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/organization/$($TenantId.customerId)/branding/localizations/0" -tenantID $Tenant -AsApp $true - } catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the branding for $Tenant. This tenant might not have premium licenses available: $ErrorMessage" -Sev Error - } - + $Localizations = New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/organization/$($TenantId.customerId)/branding/localizations" -tenantID $Tenant -AsApp $true # Get layoutTemplateType value using null-coalescing operator $layoutTemplateType = $Settings.layoutTemplateType.value ?? $Settings.layoutTemplateType + # If default localization (id "0") exists, use that to get the currentState. Otherwise we have to create it first. + if ($Localizations | Where-Object { $_.id -eq '0' }) { + try { + $CurrentState = New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/organization/$($TenantId.customerId)/branding/localizations/0" -tenantID $Tenant -AsApp $true + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the Branding state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } + } else { + try { + $GraphRequest = @{ + tenantID = $Tenant + uri = "https://graph.microsoft.com/beta/organization/$($TenantId.customerId)/branding/localizations" + AsApp = $true + Type = 'POST' + ContentType = 'application/json; charset=utf-8' + Body = [pscustomobject]@{ + signInPageText = $Settings.signInPageText + usernameHintText = $Settings.usernameHintText + loginPageTextVisibilitySettings = [pscustomobject]@{ + hideAccountResetCredentials = $Settings.hideAccountResetCredentials + } + loginPageLayoutConfiguration = [pscustomobject]@{ + layoutTemplateType = $layoutTemplateType + isHeaderShown = $Settings.isHeaderShown + isFooterShown = $Settings.isFooterShown + } + } | ConvertTo-Json -Compress + } + $CurrentState = New-GraphPostRequest @GraphRequest + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not create the default Branding localization for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } + } $StateIsCorrect = ($CurrentState.signInPageText -eq $Settings.signInPageText) -and - ($CurrentState.usernameHintText -eq $Settings.usernameHintText) -and - ($CurrentState.loginPageTextVisibilitySettings.hideAccountResetCredentials -eq $Settings.hideAccountResetCredentials) -and - ($CurrentState.loginPageLayoutConfiguration.layoutTemplateType -eq $layoutTemplateType) -and - ($CurrentState.loginPageLayoutConfiguration.isHeaderShown -eq $Settings.isHeaderShown) -and - ($CurrentState.loginPageLayoutConfiguration.isFooterShown -eq $Settings.isFooterShown) + ($CurrentState.usernameHintText -eq $Settings.usernameHintText) -and + ($CurrentState.loginPageTextVisibilitySettings.hideAccountResetCredentials -eq $Settings.hideAccountResetCredentials) -and + ($CurrentState.loginPageLayoutConfiguration.layoutTemplateType -eq $layoutTemplateType) -and + ($CurrentState.loginPageLayoutConfiguration.isHeaderShown -eq $Settings.isHeaderShown) -and + ($CurrentState.loginPageLayoutConfiguration.isFooterShown -eq $Settings.isFooterShown) + + $CurrentValue = [PSCustomObject]@{ + signInPageText = $CurrentState.signInPageText + usernameHintText = $CurrentState.usernameHintText + loginPageTextVisibilitySettings = $CurrentState.loginPageTextVisibilitySettings | Select-Object -Property hideAccountResetCredentials + loginPageLayoutConfiguration = $CurrentState.loginPageLayoutConfiguration | Select-Object -Property layoutTemplateType, isHeaderShown, isFooterShown + } + $ExpectedValue = [PSCustomObject]@{ + signInPageText = $Settings.signInPageText + usernameHintText = $Settings.usernameHintText + loginPageTextVisibilitySettings = [pscustomobject]@{ + hideAccountResetCredentials = $Settings.hideAccountResetCredentials + } + loginPageLayoutConfiguration = [pscustomobject]@{ + layoutTemplateType = $layoutTemplateType + isHeaderShown = $Settings.isHeaderShown + isFooterShown = $Settings.isFooterShown + } + } - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Branding is already applied correctly.' -Sev Info } else { @@ -89,7 +148,7 @@ function Invoke-CIPPStandardBranding { } - If ($Settings.alert -eq $true) { + if ($Settings.alert -eq $true) { if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Branding is correctly set.' -Sev Info @@ -99,9 +158,8 @@ function Invoke-CIPPStandardBranding { } } - If ($Settings.report -eq $true) { - $state = $StateIsCorrect -eq $true ? $true : ($CurrentState | Select-Object -Property signInPageText, usernameHintText, loginPageTextVisibilitySettings, loginPageLayoutConfiguration) - Set-CIPPStandardsCompareField -FieldName 'standards.Branding' -FieldValue $state -TenantFilter $Tenant + if ($Settings.report -eq $true) { + Set-CIPPStandardsCompareField -FieldName 'standards.Branding' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'Branding' -FieldValue [bool]$StateIsCorrect -StoreAs bool -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardCloudMessageRecall.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardCloudMessageRecall.ps1 index 194596088dfe..28b2adefcbe5 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardCloudMessageRecall.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardCloudMessageRecall.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardCloudMessageRecall { CAT Exchange Standards TAG + EXECUTIVETEXT + Enables employees to recall or retract emails they've sent, helping prevent embarrassing mistakes or accidental data sharing. This feature can reduce the impact of human errors in email communication and provides a safety net for sensitive information accidentally sent to wrong recipients. ADDEDCOMPONENT {"type":"autoComplete","multiple":false,"label":"Select value","name":"standards.CloudMessageRecall.state","options":[{"label":"Enabled","value":"true"},{"label":"Disabled","value":"false"}]} IMPACT @@ -29,30 +31,48 @@ function Invoke-CIPPStandardCloudMessageRecall { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'CloudMessageRecall' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'CloudMessageRecall' # Get state value using null-coalescing operator $state = $Settings.state.value ?? $Settings.state - $CurrentState = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig').MessageRecallEnabled + try { + $CurrentState = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig').MessageRecallEnabled + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the CloudMessageRecall state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } $WantedState = if ($state -eq 'true') { $true } else { $false } $StateIsCorrect = if ($CurrentState -eq $WantedState) { $true } else { $false } + # Input validation + if (([string]::IsNullOrWhiteSpace($state) -or $state -eq 'Select a value') -and ($Settings.remediate -eq $true -or $Settings.alert -eq $true)) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'CloudMessageRecall: Invalid state parameter set' -sev Error + return + } + + $CurrentValue = [PSCustomObject]@{ + MessageRecallEnabled = $CurrentState + } + $ExpectedValue = [PSCustomObject]@{ + MessageRecallEnabled = $WantedState + } + if ($Settings.report -eq $true) { # Default is not set, not set means it's enabled if ($null -eq $CurrentState ) { $CurrentState = $true } - Set-CIPPStandardsCompareField -FieldName 'standards.CloudMessageRecall' -FieldValue $CurrentState -TenantFilter $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.CloudMessageRecall' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'MessageRecall' -FieldValue $CurrentState -StoreAs bool -Tenant $Tenant } - # Input validation - if (([string]::IsNullOrWhiteSpace($state) -or $state -eq 'Select a value') -and ($Settings.remediate -eq $true -or $Settings.alert -eq $true)) { - Write-LogMessage -API 'Standards' -tenant $Tenant -message 'MessageRecallEnabled: Invalid state parameter set' -sev Error - Return - } if ($Settings.remediate -eq $true) { - Write-Host 'Time to remediate' if ($StateIsCorrect -eq $false) { try { $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-OrganizationConfig' -cmdParams @{ MessageRecallEnabled = $WantedState } -useSystemMailbox $true diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardConditionalAccessTemplate.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardConditionalAccessTemplate.ps1 index 3220da6c44f0..07da79a1fc70 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardConditionalAccessTemplate.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardConditionalAccessTemplate.ps1 @@ -20,9 +20,13 @@ function Invoke-CIPPStandardConditionalAccessTemplate { High Impact ADDEDDATE 2023-12-30 + EXECUTIVETEXT + Deploys standardized conditional access policies that automatically enforce security requirements based on user location, device compliance, and risk factors. These templates ensure consistent security controls across the organization while enabling secure access to business resources. ADDEDCOMPONENT - {"type":"autoComplete","name":"TemplateList","multiple":false,"label":"Select Conditional Access Template","api":{"url":"/api/ListCATemplates","labelField":"displayName","valueField":"GUID","queryKey":"ListCATemplates"}} + {"type":"autoComplete","name":"TemplateList","multiple":false,"label":"Select Conditional Access Template","api":{"url":"/api/ListCATemplates","labelField":"displayName","valueField":"GUID","queryKey":"ListCATemplates","showRefresh":true,"templateView":{"title":"Conditional Access Policy"}}} {"name":"state","label":"What state should we deploy this template in?","type":"radio","options":[{"value":"donotchange","label":"Do not change state"},{"value":"Enabled","label":"Set to enabled"},{"value":"Disabled","label":"Set to disabled"},{"value":"enabledForReportingButNotEnforced","label":"Set to report only"}]} + {"type":"switch","name":"DisableSD","label":"Disable Security Defaults when deploying policy"} + {"type":"switch","name":"CreateGroups","label":"Create groups if they do not exist"} UPDATECOMMENTBLOCK Run the Tools\Update-StandardsComments.ps1 script to update this comment block .LINK @@ -30,22 +34,94 @@ function Invoke-CIPPStandardConditionalAccessTemplate { #> param($Tenant, $Settings) ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'ConditionalAccess' + $Table = Get-CippTable -tablename 'templates' + $TestResult = Test-CIPPStandardLicense -StandardName 'ConditionalAccessTemplate_general' -TenantFilter $Tenant -RequiredCapabilities @('AAD_PREMIUM', 'AAD_PREMIUM_P2') + $TestP2 = Test-CIPPStandardLicense -StandardName 'ConditionalAccessTemplate_p2' -TenantFilter $Tenant -RequiredCapabilities @('AAD_PREMIUM_P2') -SkipLog + if ($TestResult -eq $false) { + #writing to each item that the license is not present. + foreach ($Template in $settings.TemplateList) { + Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($Template.value)" -FieldValue 'This tenant does not have the required license for this standard.' -Tenant $Tenant + } + return $true + } #we're done. - If ($Settings.remediate -eq $true) { + try { + $AllCAPolicies = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/policies?$top=999' -tenantid $Tenant -asApp $true + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the ConditionalAccessTemplate state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + if ($Settings.remediate -eq $true) { foreach ($Setting in $Settings) { try { - - $Table = Get-CippTable -tablename 'templates' $Filter = "PartitionKey eq 'CATemplate' and RowKey eq '$($Setting.TemplateList.value)'" $JSONObj = (Get-CippAzDataTableEntity @Table -Filter $Filter).JSON - $null = New-CIPPCAPolicy -replacePattern 'displayName' -TenantFilter $tenant -state $Setting.state -RawJSON $JSONObj -Overwrite $true -APIName $APIName -Headers $Request.Headers + $Policy = $JSONObj | ConvertFrom-Json + if ($Policy.conditions.userRiskLevels.count -gt 0 -or $Policy.conditions.signInRiskLevels.count -gt 0) { + if (!$TestP2) { + Write-Information "Skipping policy $($Policy.displayName) as it requires AAD Premium P2 license." + Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($Setting.value)" -FieldValue "Policy $($Policy.displayName) requires AAD Premium P2 license." -Tenant $Tenant + continue + } + } + $NewCAPolicy = @{ + replacePattern = 'displayName' + TenantFilter = $Tenant + state = $Setting.state + RawJSON = $JSONObj + Overwrite = $true + APIName = 'Standards' + Headers = $Request.Headers + DisableSD = $Setting.DisableSD + CreateGroups = $Setting.CreateGroups ?? $false + } + + $null = New-CIPPCAPolicy @NewCAPolicy } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to create or update conditional access rule $($JSONObj.displayName). Error: $ErrorMessage" -sev 'Error' } } - - + } + if ($Settings.report -eq $true -or $Settings.remediate -eq $true) { + $Filter = "PartitionKey eq 'CATemplate'" + $Policies = (Get-CippAzDataTableEntity @Table -Filter $Filter | Where-Object RowKey -In $Settings.TemplateList.value).JSON | ConvertFrom-Json -Depth 10 + $AllCAPolicies = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/policies?$top=999' -tenantid $Tenant -asApp $true + #check if all groups.displayName are in the existingGroups, if not $fieldvalue should contain all missing groups, else it should be true. + $MissingPolicies = foreach ($Setting in $Settings.TemplateList) { + $policy = $Policies | Where-Object { $_.displayName -eq $Setting.label } + $CheckExististing = $AllCAPolicies | Where-Object -Property displayName -EQ $Setting.label + if (!$CheckExististing) { + if ($Setting.conditions.userRiskLevels.Count -gt 0 -or $Setting.conditions.signInRiskLevels.Count -gt 0) { + if (!$TestP2) { + Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($Setting.value)" -FieldValue "Policy $($Setting.label) requires AAD Premium P2 license." -Tenant $Tenant + } else { + Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($Setting.value)" -FieldValue "Policy $($Setting.label) is missing from this tenant." -Tenant $Tenant + } + } else { + Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($Setting.value)" -FieldValue "Policy $($Setting.label) is missing from this tenant." -Tenant $Tenant + } + } else { + $templateResult = New-CIPPCATemplate -TenantFilter $tenant -JSON $CheckExististing + $CompareObj = ConvertFrom-Json -ErrorAction SilentlyContinue -InputObject $templateResult + try { + $Compare = Compare-CIPPIntuneObject -ReferenceObject $policy -DifferenceObject $CompareObj -CompareType 'ca' + } catch { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Error comparing CA policy: $($_.Exception.Message)" -sev Error + Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($Setting.value)" -FieldValue "Error comparing policy: $($_.Exception.Message)" -Tenant $Tenant + continue + } + if (!$Compare) { + Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($Setting.value)" -FieldValue $true -Tenant $Tenant + } else { + #this can still be prettified but is for later. + $ExpectedValue = @{ 'Differences' = @() } + $CurrentValue = @{ 'Differences' = $Compare } + Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($Setting.value)" -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } + } + } } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardCustomBannedPasswordList.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardCustomBannedPasswordList.ps1 new file mode 100644 index 000000000000..9ff4c6c9ebcd --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardCustomBannedPasswordList.ps1 @@ -0,0 +1,245 @@ +function Invoke-CIPPStandardCustomBannedPasswordList { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) CustomBannedPasswordList + .SYNOPSIS + (Label) Set Entra ID Custom Banned Password List + .DESCRIPTION + (Helptext) **Requires Entra ID P1.** Updates and enables the Entra ID custom banned password list with the supplied words. Enter words separated by commas or semicolons. Each word must be 4-16 characters long. Maximum 1,000 words allowed. + (DocsDescription) Updates and enables the Entra ID custom banned password list with the supplied words. This supplements the global banned password list maintained by Microsoft. The custom list is limited to 1,000 key base terms of 4-16 characters each. Entra ID will [block variations and common substitutions](https://learn.microsoft.com/en-us/entra/identity/authentication/tutorial-configure-custom-password-protection#configure-custom-banned-passwords) of these words in user passwords. [How are passwords evaluated?](https://learn.microsoft.com/en-us/entra/identity/authentication/concept-password-ban-bad#score-calculation) + .NOTES + CAT + Entra (AAD) Standards + TAG + "CIS M365 5.0 (5.2.3.2)" + ADDEDCOMPONENT + {"type":"textField","name":"standards.CustomBannedPasswordList.BannedWords","label":"Banned Words","placeholder":"Banned words separated by commas or semicolons","required":true} + IMPACT + Medium Impact + ADDEDDATE + 2025-06-28 + POWERSHELLEQUIVALENT + Get-MgBetaDirectorySetting, New-MgBetaDirectorySetting, Update-MgBetaDirectorySetting + RECOMMENDEDBY + "CIS" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + $TestResult = Test-CIPPStandardLicense -StandardName 'CustomBannedPasswordList' -TenantFilter $Tenant -RequiredCapabilities @('AAD_PREMIUM', 'AAD_PREMIUM_P2') + + if ($TestResult -eq $false) { + return $true + } #we're done. + + $PasswordRuleTemplateId = '5cf42378-d67d-4f36-ba46-e8b86229381d' + # Parse and validate banned words from input + $BannedWordsInput = $Settings.BannedWords + if ([string]::IsNullOrWhiteSpace($BannedWordsInput)) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'CustomBannedPasswordList: No banned words provided' -sev Error + return + } + + # Split input by commas, newlines, or semicolons and clean up + $BannedWordsList = $BannedWordsInput -split '[,;\r\n]+' | ForEach-Object { ($_.Trim()) } | Where-Object { -not [string]::IsNullOrWhiteSpace($_) } | Select-Object -Unique + + # Validate word length (4-16 characters), remove duplicates and invalid words + $ValidBannedWordsList = [System.Collections.Generic.List[string]]::new() + $InvalidWords = [System.Collections.Generic.List[string]]::new() + + foreach ($Word in $BannedWordsList) { + if ($Word.Length -ge 4 -and $Word.Length -le 16) { + $ValidBannedWordsList.Add($Word) + } else { + $InvalidWords.Add($Word) + } + } + $BannedWordsList = $ValidBannedWordsList | Select-Object -Unique + + # Alert if invalid words are found + if ($InvalidWords.Count -gt 0) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "CustomBannedPasswordList: Invalid words found in input (must be 4-16 characters). Please remove the following words: $($InvalidWords -join ', ')" -sev Warning + } + + # Validate word count after filtering + if ($BannedWordsList.Count -gt 1000) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "CustomBannedPasswordList: Too many valid banned words ($($BannedWordsList.Count)). Maximum allowed is 1000." -sev Error + return + } + + # Get existing directory settings for password rules + try { + $ExistingSettings = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/settings' -tenantid $Tenant | Where-Object { $_.templateId -eq $PasswordRuleTemplateId } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to get existing Custom Banned Password List: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + return + } + + if ($Settings.remediate -eq $true) { + if ($null -eq $ExistingSettings) { + # Create new directory setting with default values if it doesn't exist + try { + $Body = @{ + templateId = $PasswordRuleTemplateId + values = @( + @{ + name = 'EnableBannedPasswordCheck' + value = 'True' + } + @{ + name = 'BannedPasswordList' + value = $BannedWordsList -join ([char]9) + } + @{ + name = 'LockoutDurationInSeconds' + value = '60' + } + @{ + name = 'LockoutThreshold' + value = '10' + } + @{ + name = 'EnableBannedPasswordCheckOnPremises' + value = 'False' + } + @{ + name = 'BannedPasswordCheckOnPremisesMode' + value = 'Audit' + } + ) + } + $JsonBody = ConvertTo-Json -Depth 10 -InputObject $Body -Compress + + $ExistingSettings = New-GraphPostRequest -tenantid $Tenant -Uri 'https://graph.microsoft.com/beta/settings' -Type POST -Body $JsonBody + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Custom Banned Password List created with $($BannedWordsList.Count) words." -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to create Custom Banned Password List: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } else { + # Update existing directory setting + try { + # Get the current passwords and check if all the new words are already in the list + $CurrentBannedWords = $ExistingSettings.values | Where-Object { $_.name -eq 'BannedPasswordList' } + $CurrentBannedWords = $CurrentBannedWords.value -split ([char]9) + + # Check if the new words are already in the list + $NewBannedWords = $BannedWordsList | Where-Object { $CurrentBannedWords -notcontains $_ } + if ($NewBannedWords.Count -eq 0 -and ($ExistingSettings.values | Where-Object { $_.name -eq 'EnableBannedPasswordCheck' }).value -eq 'True') { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Custom Banned Password List is already configured with $($CurrentBannedWords.Count) words." -sev Info + } else { + $AllBannedWords = [System.Collections.Generic.List[string]]::new() + foreach ($Word in $NewBannedWords) { $AllBannedWords.Add($Word) } + foreach ($Word in $CurrentBannedWords) { $AllBannedWords.Add($Word) } + $AllBannedWords = $AllBannedWords | Select-Object -Unique -First 1000 | Where-Object { $_ -ne $null } + + $Body = @{ + values = @( + @{ + name = 'EnableBannedPasswordCheck' + value = 'True' + } + @{ + name = 'BannedPasswordList' + value = $AllBannedWords -join ([char]9) + } + @{ + name = 'LockoutDurationInSeconds' + value = ($ExistingSettings.values | Where-Object { $_.name -eq 'LockoutDurationInSeconds' }).value + } + @{ + name = 'LockoutThreshold' + value = ($ExistingSettings.values | Where-Object { $_.name -eq 'LockoutThreshold' }).value + } + @{ + name = 'EnableBannedPasswordCheckOnPremises' + value = ($ExistingSettings.values | Where-Object { $_.name -eq 'EnableBannedPasswordCheckOnPremises' }).value + } + @{ + name = 'BannedPasswordCheckOnPremisesMode' + value = ($ExistingSettings.values | Where-Object { $_.name -eq 'BannedPasswordCheckOnPremisesMode' }).value + } + ) + } + + $JsonBody = ConvertTo-Json -Depth 10 -InputObject $Body -Compress + $null = New-GraphPostRequest -tenantid $Tenant -Uri "https://graph.microsoft.com/beta/settings/$($ExistingSettings.id)" -Type PATCH -Body $JsonBody + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Custom Banned Password List updated with $($NewBannedWords.Count) new words." -sev Info + } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to update Custom Banned Password List: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + if ($null -eq $ExistingSettings) { + Write-StandardsAlert -message 'Custom Banned Password List is not configured' -object @{Status = 'Not Configured'; WordCount = 0 } -tenant $tenant -standardName 'CustomBannedPasswordList' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Custom Banned Password List is not configured' -sev Info + } else { + $BannedPasswordCheckEnabled = $ExistingSettings.values | Where-Object { $_.name -eq 'EnableBannedPasswordCheck' } + $CurrentBannedWords = $ExistingSettings.values | Where-Object { $_.name -eq 'BannedPasswordList' } + $CurrentBannedWords = if ($CurrentBannedWords.value) { ($CurrentBannedWords.value -split ([char]9)) } else { @() } + + # Find missing words from input + $MissingInputWords = $BannedWordsList | Where-Object { $CurrentBannedWords -notcontains $_ } + + if ($MissingInputWords.Count -gt 0) { + Write-StandardsAlert -message "Custom Banned Password List is missing $($MissingInputWords.Count) input words: $($MissingInputWords -join ', ')" -object @{Status = 'Configured but Missing Input Words'; MissingWords = $MissingInputWords; Enabled = $BannedPasswordCheckEnabled.value } -tenant $tenant -standardName 'CustomBannedPasswordList' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message "Custom Banned Password List is missing $($MissingInputWords.Count) input words: $($MissingInputWords -join ', ')" -sev Info + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Custom Banned Password List contains all input words ($($BannedWordsList.Count))." -sev Info + } + } + } + + if ($Settings.report -eq $true) { + $ExpectedValue = @{ + Status = 'Configured' + Enabled = $true + WordCount = $BannedWordsList.Count + Compliant = $true + MissingInputWords = @() + } + + if ($null -eq $ExistingSettings) { + $BannedPasswordState = @{ + Status = 'Not Configured' + Enabled = $false + WordCount = 0 + Compliant = $false + MissingInputWords = $BannedWordsList + } + } else { + $BannedPasswordCheckEnabled = $ExistingSettings.values | Where-Object { $_.name -eq 'EnableBannedPasswordCheck' } + $CurrentBannedWords = $ExistingSettings.values | Where-Object { $_.name -eq 'BannedPasswordList' } + $CurrentBannedWords = if ($CurrentBannedWords.value) { ($CurrentBannedWords.value -split ([char]9)) } else { @() } + $CurrentWordCount = $CurrentBannedWords.Count + + # Find missing words from input + $MissingInputWords = $BannedWordsList | Where-Object { $CurrentBannedWords -notcontains $_ } + + $BannedPasswordState = @{ + Status = 'Configured' + Enabled = $BannedPasswordCheckEnabled.value -eq 'True' + WordCount = $CurrentWordCount + Compliant = ($BannedPasswordCheckEnabled.value -eq 'True' -and $MissingInputWords.Count -eq 0) + MissingInputWords = $MissingInputWords + } + } + + Add-CIPPBPAField -FieldName 'CustomBannedPasswordList' -CurrentValue $BannedPasswordState -ExpectedValue $ExpectedValue -StoreAs json -Tenant $tenant + Set-CIPPStandardsCompareField -FieldName 'standards.CustomBannedPasswordList' -FieldValue $BannedPasswordState.Compliant -Tenant $tenant + } + + +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDefaultPlatformRestrictions.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDefaultPlatformRestrictions.ps1 index cc7c578585bf..349cb5b4aea3 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDefaultPlatformRestrictions.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDefaultPlatformRestrictions.ps1 @@ -13,6 +13,9 @@ function Invoke-CIPPStandardDefaultPlatformRestrictions { CAT Intune Standards TAG + "CISA (MS.AAD.19.1v1)" + EXECUTIVETEXT + Controls which types of devices (iOS, Android, Windows, macOS) and ownership models (corporate vs. personal) can be enrolled in the company's device management system. This helps maintain security standards while supporting necessary business device types and usage scenarios. ADDEDCOMPONENT {"type":"switch","name":"standards.DefaultPlatformRestrictions.platformAndroidForWorkBlocked","label":"Block platform Android Enterprise (work profile)","default":false} {"type":"switch","name":"standards.DefaultPlatformRestrictions.personalAndroidForWorkBlocked","label":"Block personally owned Android Enterprise (work profile)","default":false} @@ -38,73 +41,92 @@ function Invoke-CIPPStandardDefaultPlatformRestrictions { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'DefaultPlatformRestrictions' -TenantFilter $Tenant -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') + + if ($TestResult -eq $false) { + return $true + } #we're done. try { $CurrentState = New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/deviceManagement/deviceEnrollmentConfigurations?`$expand=assignments&orderBy=priority&`$filter=deviceEnrollmentConfigurationType eq 'SinglePlatformRestriction'" -tenantID $Tenant -AsApp $true | - Select-Object -Property id, androidForWorkRestriction, androidRestriction, iosRestriction, macOSRestriction, windowsRestriction + Select-Object -Property id, androidForWorkRestriction, androidRestriction, iosRestriction, macOSRestriction, windowsRestriction } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DefaultPlatformRestrictions for $Tenant. This tenant might not have premium licenses available: $ErrorMessage" -Sev Error + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DefaultPlatformRestrictions state for $Tenant. Error: $ErrorMessage" -Sev Error + return } $StateIsCorrect = ($CurrentState.androidForWorkRestriction.platformBlocked -eq $Settings.platformAndroidForWorkBlocked) -and - ($CurrentState.androidForWorkRestriction.personalDeviceEnrollmentBlocked -eq $Settings.personalAndroidForWorkBlocked) -and - ($CurrentState.androidRestriction.platformBlocked -eq $Settings.platformAndroidBlocked) -and - ($CurrentState.androidRestriction.personalDeviceEnrollmentBlocked -eq $Settings.personalAndroidBlocked) -and - ($CurrentState.iosRestriction.platformBlocked -eq $Settings.platformiOSBlocked) -and - ($CurrentState.iosRestriction.personalDeviceEnrollmentBlocked -eq $Settings.personaliOSBlocked) -and - ($CurrentState.macOSRestriction.platformBlocked -eq $Settings.platformMacOSBlocked) -and - ($CurrentState.macOSRestriction.personalDeviceEnrollmentBlocked -eq $Settings.personalMacOSBlocked) -and - ($CurrentState.windowsRestriction.platformBlocked -eq $Settings.platformWindowsBlocked) -and - ($CurrentState.windowsRestriction.personalDeviceEnrollmentBlocked -eq $Settings.personalWindowsBlocked) + ($CurrentState.androidForWorkRestriction.personalDeviceEnrollmentBlocked -eq $Settings.personalAndroidForWorkBlocked) -and + ($CurrentState.androidRestriction.platformBlocked -eq $Settings.platformAndroidBlocked) -and + ($CurrentState.androidRestriction.personalDeviceEnrollmentBlocked -eq $Settings.personalAndroidBlocked) -and + ($CurrentState.iosRestriction.platformBlocked -eq $Settings.platformiOSBlocked) -and + ($CurrentState.iosRestriction.personalDeviceEnrollmentBlocked -eq $Settings.personaliOSBlocked) -and + ($CurrentState.macOSRestriction.platformBlocked -eq $Settings.platformMacOSBlocked) -and + ($CurrentState.macOSRestriction.personalDeviceEnrollmentBlocked -eq $Settings.personalMacOSBlocked) -and + ($CurrentState.windowsRestriction.platformBlocked -eq $Settings.platformWindowsBlocked) -and + ($CurrentState.windowsRestriction.personalDeviceEnrollmentBlocked -eq $Settings.personalWindowsBlocked) $CompareField = [PSCustomObject]@{ - platformAndroidForWorkBlocked = $CurrentState.androidForWorkRestriction.platformBlocked - personalAndroidForWorkBlocked = $CurrentState.androidForWorkRestriction.personalDeviceEnrollmentBlocked - platformAndroidBlocked = $CurrentState.androidRestriction.platformBlocked - personalAndroidBlocked = $CurrentState.androidRestriction.personalDeviceEnrollmentBlocked - platformiOSBlocked = $CurrentState.iosRestriction.platformBlocked - personaliOSBlocked = $CurrentState.iosRestriction.personalDeviceEnrollmentBlocked - platformMacOSBlocked = $CurrentState.macOSRestriction.platformBlocked - personalMacOSBlocked = $CurrentState.macOSRestriction.personalDeviceEnrollmentBlocked - platformWindowsBlocked = $CurrentState.windowsRestriction.platformBlocked - personalWindowsBlocked = $CurrentState.windowsRestriction.personalDeviceEnrollmentBlocked + platformAndroidForWorkBlocked = $CurrentState.androidForWorkRestriction.platformBlocked + personalAndroidForWorkBlocked = $CurrentState.androidForWorkRestriction.personalDeviceEnrollmentBlocked + platformAndroidBlocked = $CurrentState.androidRestriction.platformBlocked + personalAndroidBlocked = $CurrentState.androidRestriction.personalDeviceEnrollmentBlocked + platformiOSBlocked = $CurrentState.iosRestriction.platformBlocked + personaliOSBlocked = $CurrentState.iosRestriction.personalDeviceEnrollmentBlocked + platformMacOSBlocked = $CurrentState.macOSRestriction.platformBlocked + personalMacOSBlocked = $CurrentState.macOSRestriction.personalDeviceEnrollmentBlocked + platformWindowsBlocked = $CurrentState.windowsRestriction.platformBlocked + personalWindowsBlocked = $CurrentState.windowsRestriction.personalDeviceEnrollmentBlocked + } + + $ExpectedValue = [PSCustomObject]@{ + platformAndroidForWorkBlocked = $Settings.platformAndroidForWorkBlocked + personalAndroidForWorkBlocked = $Settings.personalAndroidForWorkBlocked + platformAndroidBlocked = $Settings.platformAndroidBlocked + personalAndroidBlocked = $Settings.personalAndroidBlocked + platformiOSBlocked = $Settings.platformiOSBlocked + personaliOSBlocked = $Settings.personaliOSBlocked + platformMacOSBlocked = $Settings.platformMacOSBlocked + personalMacOSBlocked = $Settings.personalMacOSBlocked + platformWindowsBlocked = $Settings.platformWindowsBlocked + personalWindowsBlocked = $Settings.personalWindowsBlocked } - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'DefaultPlatformRestrictions is already applied correctly.' -Sev Info } else { $cmdParam = @{ - tenantid = $Tenant - uri = "https://graph.microsoft.com/beta/deviceManagement/deviceEnrollmentConfigurations/$($CurrentState.id)" - AsApp = $false - Type = 'PATCH' + tenantid = $Tenant + uri = "https://graph.microsoft.com/beta/deviceManagement/deviceEnrollmentConfigurations/$($CurrentState.id)" + AsApp = $false + Type = 'PATCH' ContentType = 'application/json; charset=utf-8' - Body = [PSCustomObject]@{ - "@odata.type" = "#microsoft.graph.deviceEnrollmentPlatformRestrictionsConfiguration" + Body = [PSCustomObject]@{ + '@odata.type' = '#microsoft.graph.deviceEnrollmentPlatformRestrictionsConfiguration' androidForWorkRestriction = [PSCustomObject]@{ - "@odata.type" = "microsoft.graph.deviceEnrollmentPlatformRestriction" + '@odata.type' = 'microsoft.graph.deviceEnrollmentPlatformRestriction' platformBlocked = $Settings.platformAndroidForWorkBlocked personalDeviceEnrollmentBlocked = $Settings.personalAndroidForWorkBlocked } - androidRestriction = [PSCustomObject]@{ - "@odata.type" = "microsoft.graph.deviceEnrollmentPlatformRestriction" + androidRestriction = [PSCustomObject]@{ + '@odata.type' = 'microsoft.graph.deviceEnrollmentPlatformRestriction' platformBlocked = $Settings.platformAndroidBlocked personalDeviceEnrollmentBlocked = $Settings.personalAndroidBlocked } - iosRestriction = [PSCustomObject]@{ - "@odata.type" = "microsoft.graph.deviceEnrollmentPlatformRestriction" + iosRestriction = [PSCustomObject]@{ + '@odata.type' = 'microsoft.graph.deviceEnrollmentPlatformRestriction' platformBlocked = $Settings.platformiOSBlocked personalDeviceEnrollmentBlocked = $Settings.personaliOSBlocked } - macOSRestriction = [PSCustomObject]@{ - "@odata.type" = "microsoft.graph.deviceEnrollmentPlatformRestriction" + macOSRestriction = [PSCustomObject]@{ + '@odata.type' = 'microsoft.graph.deviceEnrollmentPlatformRestriction' platformBlocked = $Settings.platformMacOSBlocked personalDeviceEnrollmentBlocked = $Settings.personalMacOSBlocked } - windowsRestriction = [PSCustomObject]@{ - "@odata.type" = "microsoft.graph.deviceEnrollmentPlatformRestriction" + windowsRestriction = [PSCustomObject]@{ + '@odata.type' = 'microsoft.graph.deviceEnrollmentPlatformRestriction' platformBlocked = $Settings.platformWindowsBlocked personalDeviceEnrollmentBlocked = $Settings.personalWindowsBlocked } @@ -121,7 +143,7 @@ function Invoke-CIPPStandardDefaultPlatformRestrictions { } - If ($Settings.alert -eq $true) { + if ($Settings.alert -eq $true) { if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'DefaultPlatformRestrictions is correctly set.' -Sev Info } else { @@ -130,9 +152,8 @@ function Invoke-CIPPStandardDefaultPlatformRestrictions { } } - If ($Settings.report -eq $true) { - $FieldValue = $StateIsCorrect ? $true : $CompareField - Set-CIPPStandardsCompareField -FieldName 'standards.DefaultPlatformRestrictions' -FieldValue $FieldValue -TenantFilter $Tenant + if ($Settings.report -eq $true) { + Set-CIPPStandardsCompareField -FieldName 'standards.DefaultPlatformRestrictions' -CurrentValue $CompareField -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'DefaultPlatformRestrictions' -FieldValue [bool]$StateIsCorrect -StoreAs bool -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDefaultSharingLink.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDefaultSharingLink.ps1 index 9093ab528e51..684f768cd70a 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDefaultSharingLink.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDefaultSharingLink.ps1 @@ -7,20 +7,28 @@ function Invoke-CIPPStandardDefaultSharingLink { .SYNOPSIS (Label) Set Default Sharing Link Settings .DESCRIPTION - (Helptext) Sets the default sharing link type to Internal and permission to View in SharePoint and OneDrive. - (DocsDescription) Sets the default sharing link type to Internal and permission to View in SharePoint and OneDrive. + (Helptext) Configure the SharePoint default sharing link type and permission. This setting controls both the type of sharing link created by default and the permission level assigned to those links. + (DocsDescription) Sets the default sharing link type (Direct or Internal) and permission (View) in SharePoint and OneDrive. Direct sharing means links only work for specific people, while Internal sharing means links work for anyone in the organization. Setting the view permission as the default ensures that users must deliberately select the edit permission when sharing a link, reducing the risk of unintentionally granting edit privileges. .NOTES CAT SharePoint Standards TAG + "CIS M365 5.0 (7.2.7)" + "CIS M365 5.0 (7.2.11)" + "CISA (MS.SPO.1.4v1)" + EXECUTIVETEXT + Configures SharePoint default sharing links to implement the principle of least privilege for document sharing. This security measure reduces the risk of accidental data modification while maintaining collaboration functionality, requiring users to explicitly select Edit permissions when necessary. The sharing type setting controls whether links are restricted to specific recipients or available to the entire organization. This reduces the risk of accidental data exposure through link sharing. ADDEDCOMPONENT + {"type":"autoComplete","multiple":false,"creatable":false,"required":true,"label":"Default Sharing Link Type","name":"standards.DefaultSharingLink.SharingLinkType","options":[{"label":"Direct - Only the people the user specifies","value":"Direct"},{"label":"Internal - Only people in your organization","value":"Internal"}]} IMPACT - Medium Impact + Low Impact ADDEDDATE 2025-06-13 POWERSHELLEQUIVALENT - Set-SPOTenant -DefaultSharingLinkType Internal -DefaultLinkPermission View + Set-SPOTenant -DefaultSharingLinkType [Direct\|Internal] -DefaultLinkPermission View RECOMMENDEDBY + "CIS" + "CIPP" UPDATECOMMENTBLOCK Run the Tools\Update-StandardsComments.ps1 script to update this comment block .LINK @@ -28,36 +36,93 @@ function Invoke-CIPPStandardDefaultSharingLink { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'DefaultSharingLink' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') - $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | - Select-Object -Property DefaultSharingLinkType, DefaultLinkPermission + # Determine the desired sharing link type (default to Internal if not specified) - $StateIsCorrect = ($CurrentState.DefaultSharingLinkType -eq 2) -and ($CurrentState.DefaultLinkPermission -eq 1) + if ($TestResult -eq $false) { + return $true + } #we're done. + $DesiredSharingLinkType = $Settings.SharingLinkType.value ?? 'Internal' + # Map the string values to numeric values for SharePoint + $SharingLinkTypeMap = @{ + 'Direct' = 1 + 'Internal' = 2 + 'Anyone' = 3 + } + $DesiredSharingLinkTypeValue = $SharingLinkTypeMap[$DesiredSharingLinkType] + + try { + $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | + Select-Object -Property _ObjectIdentity_, TenantFilter, DefaultSharingLinkType, DefaultLinkPermission + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DefaultSharingLink state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $CurrentValue = [PSCustomObject]@{ + DefaultSharingLinkType = switch ($CurrentState.DefaultSharingLinkType) { + 1 { 'Direct' } + 2 { 'Internal' } + 3 { 'Anyone' } + default { 'Unknown' } + } + DefaultLinkPermission = switch ($CurrentState.DefaultLinkPermission) { + 0 { 'Edit' } + 1 { 'View' } + 2 { 'Edit' } + default { 'Unknown' } + } + } + $ExpectedValue = [PSCustomObject]@{ + DefaultSharingLinkType = $DesiredSharingLinkType + DefaultLinkPermission = 'View' + } + + # Check if the current state matches the desired configuration + $StateIsCorrect = ($CurrentState.DefaultSharingLinkType -eq $DesiredSharingLinkTypeValue) -and ($CurrentState.DefaultLinkPermission -eq 1) if ($Settings.remediate -eq $true) { if ($StateIsCorrect -eq $true) { - Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Default sharing link settings are already configured correctly' -Sev Info + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Default sharing link settings are already configured correctly (Type: $DesiredSharingLinkType, Permission: View)" -Sev Info } else { $Properties = @{ - DefaultSharingLinkType = 2 # Internal + DefaultSharingLinkType = $DesiredSharingLinkTypeValue DefaultLinkPermission = 1 # View } try { - Get-CIPPSPOTenant -TenantFilter $Tenant | Set-CIPPSPOTenant -Properties $Properties - Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Successfully set default sharing link settings' -Sev Info + $CurrentState | Set-CIPPSPOTenant -Properties $Properties + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Successfully set default sharing link settings (Type: $DesiredSharingLinkType, Permission: View)" -Sev Info } catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Failed to set default sharing link settings. Error: $ErrorMessage" -Sev Error + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Failed to set default sharing link settings. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage } } } if ($Settings.alert -eq $true) { if ($StateIsCorrect -eq $true) { - Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Default sharing link settings are configured correctly' -Sev Info + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Default sharing link settings are configured correctly (Type: $DesiredSharingLinkType, Permission: View)" -Sev Info } else { - Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Default sharing link settings are not configured correctly' -Sev Alert + # Determine current values for alert message + $CurrentSharingType = switch ($CurrentState.DefaultSharingLinkType) { + 1 { 'Direct' } + 2 { 'Internal' } + 3 { 'Anyone' } + default { 'Unknown' } + } + $CurrentPermission = switch ($CurrentState.DefaultLinkPermission) { + 0 { 'Edit' } + 1 { 'View' } + 2 { 'Edit' } + default { 'Unknown' } + } + + $Message = "Default sharing link settings are not configured correctly. Current: Type=$CurrentSharingType, Permission=$CurrentPermission. Expected: Type=$DesiredSharingLinkType, Permission=View" + Write-StandardsAlert -message $Message -object $CurrentState -tenant $Tenant -standardName 'DefaultSharingLink' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message $Message -Sev Alert } } @@ -68,6 +133,6 @@ function Invoke-CIPPStandardDefaultSharingLink { } else { $FieldValue = $CurrentState } - Set-CIPPStandardsCompareField -FieldName 'standards.DefaultSharingLink' -FieldValue $FieldValue -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.DefaultSharingLink' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDelegateSentItems.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDelegateSentItems.ps1 index 322dce4b8c8b..561f1420bbf1 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDelegateSentItems.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDelegateSentItems.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardDelegateSentItems { CAT Exchange Standards TAG + EXECUTIVETEXT + Ensures emails sent from shared mailboxes (like info@company.com) are stored in the shared mailbox rather than the individual sender's mailbox. This maintains complete email threads in one location, improving collaboration and ensuring all team members can see the full conversation history. ADDEDCOMPONENT {"type":"switch","label":"Include user mailboxes","name":"standards.DelegateSentItems.IncludeUserMailboxes"} IMPACT @@ -29,6 +31,11 @@ function Invoke-CIPPStandardDelegateSentItems { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'DelegateSentItems' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. #$Rerun -Type Standard -Tenant $Tenant -API 'DelegateSentItems' -Settings $Settings @@ -39,33 +46,37 @@ function Invoke-CIPPStandardDelegateSentItems { if ($Settings.IncludeUserMailboxes -eq $true) { $Mailboxes = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-Mailbox' -cmdParams @{ RecipientTypeDetails = @('UserMailbox', 'SharedMailbox') } -Select 'Identity,UserPrincipalName,MessageCopyForSendOnBehalfEnabled,MessageCopyForSentAsEnabled' | - Where-Object { $_.MessageCopyForSendOnBehalfEnabled -eq $false -or $_.MessageCopyForSentAsEnabled -eq $false } + Where-Object { $_.MessageCopyForSendOnBehalfEnabled -eq $false -or $_.MessageCopyForSentAsEnabled -eq $false } } else { $Mailboxes = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-Mailbox' -cmdParams @{ RecipientTypeDetails = @('SharedMailbox') } -Select 'Identity,UserPrincipalName,MessageCopyForSendOnBehalfEnabled,MessageCopyForSentAsEnabled' | - Where-Object { $_.MessageCopyForSendOnBehalfEnabled -eq $false -or $_.MessageCopyForSentAsEnabled -eq $false } + Where-Object { $_.MessageCopyForSendOnBehalfEnabled -eq $false -or $_.MessageCopyForSentAsEnabled -eq $false } } + $CurrentValue = if (!$Mailboxes) { + [PSCustomObject]@{ state = 'Configured correctly' } + } else { + [PSCustomObject]@{ NonCompliantMailboxes = $Mailboxes | Select-Object -Property UserPrincipalName, MessageCopyForSendOnBehalfEnabled, MessageCopyForSentAsEnabled } + } + $ExpectedValue = [PSCustomObject]@{ + state = 'Configured correctly' + } - Write-Host "Mailboxes: $($Mailboxes.Count)" - If ($Settings.remediate -eq $true) { - Write-Host 'Time to remediate' - + if ($Settings.remediate -eq $true) { if ($Mailboxes) { try { - $Request = $Mailboxes | ForEach-Object { + $Request = foreach ($Mailbox in $Mailboxes) { @{ CmdletInput = @{ CmdletName = 'Set-Mailbox' - Parameters = @{Identity = $_.UserPrincipalName ; MessageCopyForSendOnBehalfEnabled = $true; MessageCopyForSentAsEnabled = $true } + Parameters = @{Identity = $Mailbox.UserPrincipalName ; MessageCopyForSendOnBehalfEnabled = $true; MessageCopyForSentAsEnabled = $true } } } } $BatchResults = New-ExoBulkRequest -tenantid $Tenant -cmdletArray @($Request) - $BatchResults | ForEach-Object { - if ($_.error) { - $ErrorMessage = Get-CippException -Exception $_.error - Write-Host "Failed to apply Delegate Sent Items Style to $($_.target) Error: $($ErrorMessage.NormalizedError)" - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to apply Delegate Sent Items Style to $($_.error.target) Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + foreach ($Result in $BatchResults) { + if ($Result.error) { + $ErrorMessage = Get-CippException -Exception $Result.error + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to apply Delegate Sent Items Style to $($Result.error.target) Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage } } Write-LogMessage -API 'Standards' -tenant $Tenant -message "Delegate Sent Items Style applied for $($Mailboxes.Count - $BatchResults.Error.Count) mailboxes" -sev Info @@ -89,8 +100,7 @@ function Invoke-CIPPStandardDelegateSentItems { if ($Settings.report -eq $true) { $Filtered = $Mailboxes | Select-Object -Property UserPrincipalName, MessageCopyForSendOnBehalfEnabled, MessageCopyForSentAsEnabled - $CurrentState = if ($null -eq $Mailboxes) { $true } else { $Filtered } - Set-CIPPStandardsCompareField -FieldName 'standards.DelegateSentItems' -FieldValue $CurrentState -TenantFilter $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.DelegateSentItems' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'DelegateSentItems' -FieldValue $Filtered -StoreAs json -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDeletedUserRentention.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDeletedUserRentention.ps1 index f6cbe319cab9..8a6ed59c11f8 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDeletedUserRentention.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDeletedUserRentention.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardDeletedUserRentention { CAT SharePoint Standards TAG + EXECUTIVETEXT + Preserves departed employees' OneDrive files for a specified period, allowing time to recover important business documents before permanent deletion. This helps prevent data loss while managing storage costs and maintaining compliance with data retention policies. ADDEDCOMPONENT {"type":"autoComplete","multiple":false,"name":"standards.DeletedUserRentention.Days","label":"Retention time (Default 30 days)","options":[{"label":"30 days","value":"30"},{"label":"90 days","value":"90"},{"label":"1 year","value":"365"},{"label":"2 years","value":"730"},{"label":"3 years","value":"1095"},{"label":"4 years","value":"1460"},{"label":"5 years","value":"1825"},{"label":"6 years","value":"2190"},{"label":"7 years","value":"2555"},{"label":"8 years","value":"2920"},{"label":"9 years","value":"3285"},{"label":"10 years","value":"3650"}]} IMPACT @@ -29,14 +31,31 @@ function Invoke-CIPPStandardDeletedUserRentention { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'DeletedUserRentention' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DeletedUserRetention' - $CurrentInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' -tenantid $Tenant -AsApp $true + if ($TestResult -eq $false) { + return $true + } #we're done. + + try { + $CurrentInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' -tenantid $Tenant -AsApp $true + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DeletedUserRetention state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $Days = $Settings.Days.value ?? $Settings.Days + $ExpectedValue = [PSCustomObject]@{ + DeletedUserRententionDays = [int]$Days + } + $CurrentValue = [PSCustomObject]@{ + DeletedUserRententionDays = $CurrentInfo.deletedUserPersonalSiteRetentionPeriodInDays + } + if ($Settings.report -eq $true) { - $CurrentState = $CurrentInfo.deletedUserPersonalSiteRetentionPeriodInDays -eq $Days ? $true : ($CurrentInfo | Select-Object deletedUserPersonalSiteRetentionPeriodInDays) - Set-CIPPStandardsCompareField -FieldName 'standards.DeletedUserRentention' -FieldValue $CurrentState -TenantFilter $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.DeletedUserRentention' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'DeletedUserRentention' -FieldValue $CurrentInfo.deletedUserPersonalSiteRetentionPeriodInDays -StoreAs string -Tenant $Tenant } @@ -45,7 +64,7 @@ function Invoke-CIPPStandardDeletedUserRentention { # Input validation if (($Days -eq 'Select a value') -and ($Settings.remediate -eq $true -or $Settings.alert -eq $true)) { Write-LogMessage -API 'Standards' -tenant $Tenant -message 'DeletedUserRentention: Invalid Days parameter set' -sev Error - Return + return } # Backwards compatibility for v5.9.4 and back @@ -57,9 +76,7 @@ function Invoke-CIPPStandardDeletedUserRentention { $StateSetCorrectly = if ($CurrentInfo.deletedUserPersonalSiteRetentionPeriodInDays -eq $WantedState) { $true } else { $false } - If ($Settings.remediate -eq $true) { - Write-Host 'Time to remediate' - + if ($Settings.remediate -eq $true) { if ($StateSetCorrectly -eq $false) { try { $body = [PSCustomObject]@{ diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDeployCheckChromeExtension.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDeployCheckChromeExtension.ps1 new file mode 100644 index 000000000000..921fe6d5db0f --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDeployCheckChromeExtension.ps1 @@ -0,0 +1,246 @@ +function Invoke-CIPPStandardDeployCheckChromeExtension { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) DeployCheckChromeExtension + .SYNOPSIS + (Label) Deploy Check Chrome Extension + .DESCRIPTION + (Helptext) Deploys the Check Chrome extension via Intune OMA-URI custom policies for both Chrome and Edge browsers with configurable settings. Chrome ID: benimdeioplgkhanklclahllklceahbe, Edge ID: knepjpocdagponkonnbggpcnhnaikajg + (DocsDescription) Creates Intune OMA-URI custom policies that automatically install and configure the Check Chrome extension on managed devices for both Google Chrome and Microsoft Edge browsers. This ensures the extension is deployed consistently across all corporate devices with customizable settings. + .NOTES + CAT + Intune Standards + TAG + EXECUTIVETEXT + Automatically deploys the Check browser extension across all company devices with configurable security and branding settings, ensuring consistent security monitoring and compliance capabilities. This extension provides enhanced security features and monitoring tools that help protect against threats while maintaining user productivity. + ADDEDCOMPONENT + {"type":"switch","name":"standards.DeployCheckChromeExtension.enableValidPageBadge","label":"Enable valid page badge","defaultValue":true} + {"type":"switch","name":"standards.DeployCheckChromeExtension.enablePageBlocking","label":"Enable page blocking","defaultValue":true} + {"type":"switch","name":"standards.DeployCheckChromeExtension.enableCippReporting","label":"Enable CIPP reporting","defaultValue":true} + {"type":"textField","name":"standards.DeployCheckChromeExtension.cippServerUrl","label":"CIPP Server URL","placeholder":"https://YOUR-CIPP-SERVER-URL","required":false} + {"type":"textField","name":"standards.DeployCheckChromeExtension.customRulesUrl","label":"Custom Rules URL","placeholder":"https://YOUR-CIPP-SERVER-URL/rules.json","required":false} + {"type":"number","name":"standards.DeployCheckChromeExtension.updateInterval","label":"Update interval (hours)","defaultValue":12} + {"type":"switch","name":"standards.DeployCheckChromeExtension.enableDebugLogging","label":"Enable debug logging","defaultValue":false} + {"type":"textField","name":"standards.DeployCheckChromeExtension.companyName","label":"Company Name","placeholder":"YOUR-COMPANY","required":false} + {"type":"textField","name":"standards.DeployCheckChromeExtension.productName","label":"Product Name","placeholder":"YOUR-PRODUCT-NAME","required":false} + {"type":"textField","name":"standards.DeployCheckChromeExtension.supportEmail","label":"Support Email","placeholder":"support@yourcompany.com","required":false} + {"type":"textField","name":"standards.DeployCheckChromeExtension.primaryColor","label":"Primary Color","placeholder":"#0044CC","required":false} + {"type":"textField","name":"standards.DeployCheckChromeExtension.logoUrl","label":"Logo URL","placeholder":"https://yourcompany.com/logo.png","required":false} + {"name":"AssignTo","label":"Who should this policy be assigned to?","type":"radio","options":[{"label":"Do not assign","value":"On"},{"label":"Assign to all users","value":"allLicensedUsers"},{"label":"Assign to all devices","value":"AllDevices"},{"label":"Assign to all users and devices","value":"AllDevicesAndUsers"},{"label":"Assign to Custom Group","value":"customGroup"}]} + {"type":"textField","required":false,"name":"customGroup","label":"Enter the custom group name if you selected 'Assign to Custom Group'. Wildcards are allowed."} + IMPACT + Low Impact + ADDEDDATE + 2025-09-18 + POWERSHELLEQUIVALENT + New-GraphPostRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/configurationPolicies' + RECOMMENDEDBY + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + # Check for required Intune license + $TestResult = Test-CIPPStandardLicense -StandardName 'DeployCheckChromeExtension' -TenantFilter $Tenant -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') + + if ($TestResult -eq $false) { + Set-CIPPStandardsCompareField -FieldName 'standards.DeployCheckChromeExtension' -FieldValue 'This tenant does not have the required license for this standard.' -Tenant $Tenant + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'This tenant does not have the required license for this standard.' -sev Error + return $true + } + + Write-Information "Running Deploy Check Chrome Extension standard for tenant $($Tenant)." + + # Chrome and Edge extension IDs for the Check extension + $ChromeExtensionId = 'benimdeioplgkhanklclahllklceahbe' + $EdgeExtensionId = 'knepjpocdagponkonnbggpcnhnaikajg' + + # Policy names + $ChromePolicyName = 'Deploy Check Chrome Extension (Chrome)' + $EdgePolicyName = 'Deploy Check Chrome Extension (Edge)' + + # CIPP Url + $CippConfigTable = Get-CippTable -tablename Config + $CippConfig = Get-CIPPAzDataTableEntity @CippConfigTable -Filter "PartitionKey eq 'InstanceProperties' and RowKey eq 'CIPPURL'" + $CIPPURL = 'https://{0}' -f $CippConfig.Value + + # Get configuration values with defaults + $ShowNotifications = $Settings.showNotifications ?? $true + $EnableValidPageBadge = $Settings.enableValidPageBadge ?? $true + $EnablePageBlocking = $Settings.enablePageBlocking ?? $true + $EnableCippReporting = $Settings.enableCippReporting ?? $true + $CippServerUrl = $CIPPURL + $CippTenantId = $Tenant + $CustomRulesUrl = $Settings.customRulesUrl + $UpdateInterval = $Settings.updateInterval ?? 24 + $EnableDebugLogging = $Settings.enableDebugLogging ?? $false + $CompanyName = $Settings.companyName + $ProductName = $Settings.productName + $SupportEmail = $Settings.supportEmail + $PrimaryColor = $Settings.primaryColor ?? '#F77F00' + $LogoUrl = $Settings.logoUrl + + # Create extension settings JSON + $ChromeExtensionSettings = @{ + $ChromeExtensionId = @{ + installation_mode = 'force_installed' + update_url = 'https://clients2.google.com/service/update2/crx' + settings = @{ + showNotifications = $ShowNotifications + enableValidPageBadge = $EnableValidPageBadge + enablePageBlocking = $EnablePageBlocking + enableCippReporting = $EnableCippReporting + cippServerUrl = $CippServerUrl + cippTenantId = $CippTenantId + customRulesUrl = $CustomRulesUrl + updateInterval = $UpdateInterval + enableDebugLogging = $EnableDebugLogging + customBranding = @{ + companyName = $CompanyName + productName = $ProductName + supportEmail = $SupportEmail + primaryColor = $PrimaryColor + logoUrl = $LogoUrl + } + } + } + } | ConvertTo-Json -Depth 10 + + $EdgeExtensionSettings = @{ + $EdgeExtensionId = @{ + installation_mode = 'force_installed' + update_url = 'https://edge.microsoft.com/extensionwebstorebase/v1/crx' + settings = @{ + showNotifications = $ShowNotifications + enableValidPageBadge = $EnableValidPageBadge + enablePageBlocking = $EnablePageBlocking + enableCippReporting = $EnableCippReporting + cippServerUrl = $CippServerUrl + cippTenantId = $CippTenantId + customRulesUrl = $CustomRulesUrl + updateInterval = $UpdateInterval + enableDebugLogging = $EnableDebugLogging + customBranding = @{ + companyName = $CompanyName + productName = $ProductName + supportEmail = $SupportEmail + primaryColor = $PrimaryColor + logoUrl = $LogoUrl + } + } + } + } | ConvertTo-Json -Depth 10 + + # Create Chrome OMA-URI policy JSON + $ChromePolicyJSON = @{ + '@odata.type' = '#microsoft.graph.windows10CustomConfiguration' + displayName = $ChromePolicyName + description = 'Deploys and configures the Check Chrome extension for Google Chrome browsers' + omaSettings = @( + @{ + '@odata.type' = '#microsoft.graph.omaSettingString' + displayName = 'Chrome Extension Settings' + description = 'Configure Check Chrome extension settings' + omaUri = './Device/Vendor/MSFT/Policy/Config/Chrome~Policy~googlechrome/ExtensionSettings' + value = $ChromeExtensionSettings + } + ) + } | ConvertTo-Json -Depth 20 + + # Create Edge OMA-URI policy JSON + $EdgePolicyJSON = @{ + '@odata.type' = '#microsoft.graph.windows10CustomConfiguration' + displayName = $EdgePolicyName + description = 'Deploys and configures the Check Chrome extension for Microsoft Edge browsers' + omaSettings = @( + @{ + '@odata.type' = '#microsoft.graph.omaSettingString' + displayName = 'Edge Extension Settings' + description = 'Configure Check Chrome extension settings' + omaUri = './Device/Vendor/MSFT/Policy/Config/Edge/ExtensionSettings' + value = $EdgeExtensionSettings + } + ) + } | ConvertTo-Json -Depth 20 + + try { + # Check if the policies already exist + $ExistingPolicies = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/deviceConfigurations' -tenantid $Tenant + $ChromePolicyExists = $ExistingPolicies.value | Where-Object { $_.displayName -eq $ChromePolicyName } + $EdgePolicyExists = $ExistingPolicies.value | Where-Object { $_.displayName -eq $EdgePolicyName } + + if ($Settings.remediate -eq $true) { + # Handle assignment configuration + $AssignTo = $Settings.AssignTo ?? 'AllDevices' + $ExcludeGroup = $Settings.ExcludeGroup + + # Handle custom group assignment + if ($Settings.customGroup) { + $AssignTo = $Settings.customGroup + } + + # Deploy Chrome policy + if (-not $ChromePolicyExists) { + $Result = Set-CIPPIntunePolicy -TemplateType 'Device' -Description 'Deploys and configures the Check Chrome extension for Google Chrome browsers' -DisplayName $ChromePolicyName -RawJSON $ChromePolicyJSON -AssignTo $AssignTo -ExcludeGroup $ExcludeGroup -tenantFilter $Tenant + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully created Check Chrome Extension policy for Chrome: $ChromePolicyName" -sev Info + } else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Check Chrome Extension policy for Chrome already exists, skipping creation' -sev Info + } + + # Deploy Edge policy + if (-not $EdgePolicyExists) { + $Result = Set-CIPPIntunePolicy -TemplateType 'Device' -Description 'Deploys and configures the Check Chrome extension for Microsoft Edge browsers' -DisplayName $EdgePolicyName -RawJSON $EdgePolicyJSON -AssignTo $AssignTo -ExcludeGroup $ExcludeGroup -tenantFilter $Tenant + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully created Check Chrome Extension policy for Edge: $EdgePolicyName" -sev Info + } else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Check Chrome Extension policy for Edge already exists, skipping creation' -sev Info + } + } + + if ($Settings.alert -eq $true) { + $BothPoliciesExist = $ChromePolicyExists -and $EdgePolicyExists + if ($BothPoliciesExist) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Check Chrome Extension policies are deployed for both Chrome and Edge' -sev Info + } else { + $MissingPolicies = @() + if (-not $ChromePolicyExists) { $MissingPolicies += 'Chrome' } + if (-not $EdgePolicyExists) { $MissingPolicies += 'Edge' } + Write-StandardsAlert -message "Check Chrome Extension policies are missing for: $($MissingPolicies -join ', ')" -object @{ 'Missing Policies' = $MissingPolicies -join ',' } -tenant $Tenant -standardName 'DeployCheckChromeExtension' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Check Chrome Extension policies are missing for: $($MissingPolicies -join ', ')" -sev Alert + } + } + + if ($Settings.report -eq $true) { + $StateIsCorrect = $ChromePolicyExists -and $EdgePolicyExists + + $ExpectedValue = [PSCustomObject]@{ + ChromePolicyDeployed = $true + EdgePolicyDeployed = $true + } + $CurrentValue = [PSCustomObject]@{ + ChromePolicyDeployed = $ChromePolicyExists + EdgePolicyDeployed = $EdgePolicyExists + } + Set-CIPPStandardsCompareField -FieldName 'standards.DeployCheckChromeExtension' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'DeployCheckChromeExtension' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + } + + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to deploy Check Chrome Extension policies. Error: $ErrorMessage" -sev Error + + if ($Settings.alert -eq $true) { + Write-StandardsAlert -message "Failed to deploy Check Chrome Extension policies: $ErrorMessage" -object @{ 'Error' = $ErrorMessage } -tenant $Tenant -standardName 'DeployCheckChromeExtension' -standardId $Settings.standardId + } + + if ($Settings.report -eq $true) { + Set-CIPPStandardsCompareField -FieldName 'standards.DeployCheckChromeExtension' -FieldValue @{ 'Error' = $ErrorMessage } -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'DeployCheckChromeExtension' -FieldValue $false -StoreAs bool -Tenant $Tenant + } + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDeployContactTemplates.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDeployContactTemplates.ps1 index 26a3f61a0d12..f92a0742d070 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDeployContactTemplates.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDeployContactTemplates.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardDeployContactTemplates { CAT Exchange Standards TAG + EXECUTIVETEXT + Deploys standardized external contact templates across all company locations, ensuring consistent communication channels with key external partners, vendors, and stakeholders. This streamlines contact management and maintains uniform business relationships. ADDEDCOMPONENT {"type":"autoComplete","multiple":true,"creatable":false,"label":"Select Mail Contact Templates","name":"standards.DeployContactTemplates.templateIds","api":{"url":"/api/ListContactTemplates","labelField":"name","valueField":"GUID","queryKey":"Contact Templates"}} DISABLEDFEATURES @@ -32,6 +34,11 @@ function Invoke-CIPPStandardDeployContactTemplates { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'DeployContactTemplates' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. $APIName = 'Standards' @@ -50,8 +57,7 @@ function Invoke-CIPPStandardDeployContactTemplates { } return $StoredTemplate.JSON | ConvertFrom-Json - } - catch { + } catch { Write-LogMessage -API $APIName -tenant $Tenant -message "Failed to retrieve template $TemplateGUID. Error: $($_.Exception.Message)" -sev Error return $null } @@ -67,8 +73,8 @@ function Invoke-CIPPStandardDeployContactTemplates { # Get templateIds array if (-not $Settings.templateIds -or $Settings.templateIds.Count -eq 0) { - Write-LogMessage -API $APIName -tenant $Tenant -message "DeployContactTemplate: No template IDs found in settings" -sev Error - return "No template IDs found in settings" + Write-LogMessage -API $APIName -tenant $Tenant -message 'DeployContactTemplate: No template IDs found in settings' -sev Error + return 'No template IDs found in settings' } Write-LogMessage -API $APIName -tenant $Tenant -message "DeployContactTemplate: Processing $($Settings.templateIds.Count) template(s)" -sev Info @@ -83,7 +89,7 @@ function Invoke-CIPPStandardDeployContactTemplates { $TemplateGUID = $TemplateItem.value if ([string]::IsNullOrWhiteSpace($TemplateGUID)) { - Write-LogMessage -API $APIName -tenant $Tenant -message "DeployContactTemplate: TemplateGUID cannot be empty." -sev Error + Write-LogMessage -API $APIName -tenant $Tenant -message 'DeployContactTemplate: TemplateGUID cannot be empty.' -sev Error continue } @@ -107,8 +113,7 @@ function Invoke-CIPPStandardDeployContactTemplates { # Validate email address format try { $null = [System.Net.Mail.MailAddress]::new($Template.email) - } - catch { + } catch { Write-LogMessage -API $APIName -tenant $Tenant -message "DeployContactTemplate: Invalid email address format: $($Template.email)" -sev Error continue } @@ -119,39 +124,37 @@ function Invoke-CIPPStandardDeployContactTemplates { # If the contact exists, we'll overwrite it; if not, we'll create it if ($ExistingContact) { $StateIsCorrect = $false # Always update existing contacts to match template - $Action = "Update" + $Action = 'Update' $Missing = $false - } - else { + } else { # Contact doesn't exist, needs to be created $StateIsCorrect = $false - $Action = "Create" + $Action = 'Create' $Missing = $true } [PSCustomObject]@{ - missing = $Missing - StateIsCorrect = $StateIsCorrect - Action = $Action - Template = $Template - TemplateGUID = $TemplateGUID + missing = $Missing + StateIsCorrect = $StateIsCorrect + Action = $Action + Template = $Template + TemplateGUID = $TemplateGUID } - } - catch { + } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message $Message = "Failed to process template $TemplateGUID, Error: $ErrorMessage" Write-LogMessage -API $APIName -tenant $tenant -message $Message -sev 'Error' - Return $Message + return $Message } } # Remediate each contact which needs to be created or updated - If ($RemediateEnabled) { + if ($RemediateEnabled) { $ContactsToProcess = $CompareList | Where-Object { $_.StateIsCorrect -eq $false } if ($ContactsToProcess.Count -gt 0) { - $ContactsToCreate = $ContactsToProcess | Where-Object { $_.Action -eq "Create" } - $ContactsToUpdate = $ContactsToProcess | Where-Object { $_.Action -eq "Update" } + $ContactsToCreate = $ContactsToProcess | Where-Object { $_.Action -eq 'Create' } + $ContactsToUpdate = $ContactsToProcess | Where-Object { $_.Action -eq 'Update' } Write-LogMessage -API $APIName -tenant $Tenant -message "DeployContactTemplate: Processing $($ContactsToCreate.Count) new contacts, $($ContactsToUpdate.Count) existing contacts" -sev Info @@ -184,13 +187,12 @@ function Invoke-CIPPStandardDeployContactTemplates { # Store contact info for second pass $ProcessedContacts.Add([PSCustomObject]@{ - Contact = $Contact - ContactObject = $NewContact - Template = $Template - IsNew = $true - }) - } - catch { + Contact = $Contact + ContactObject = $NewContact + Template = $Template + IsNew = $true + }) + } catch { $ProcessingFailures++ $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message Write-LogMessage -API $APIName -tenant $tenant -message "Failed to create contact $($Template.displayName): $ErrorMessage" -sev 'Error' @@ -205,7 +207,7 @@ function Invoke-CIPPStandardDeployContactTemplates { # Update MailContact properties (email address) $UpdateMailContactParams = @{ - Identity = $ExistingContact.Identity + Identity = $ExistingContact.Identity ExternalEmailAddress = $Template.email } @@ -234,13 +236,12 @@ function Invoke-CIPPStandardDeployContactTemplates { # Store contact info for second pass $ProcessedContacts.Add([PSCustomObject]@{ - Contact = $Contact - ContactObject = $ExistingContact - Template = $Template - IsNew = $false - }) - } - catch { + Contact = $Contact + ContactObject = $ExistingContact + Template = $Template + IsNew = $false + }) + } catch { $ProcessingFailures++ $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message Write-LogMessage -API $APIName -tenant $tenant -message "Failed to update contact $($Template.displayName): $ErrorMessage" -sev 'Error' @@ -252,8 +253,10 @@ function Invoke-CIPPStandardDeployContactTemplates { if ($ProcessedCount -gt 0) { Write-LogMessage -API $APIName -tenant $Tenant -message "DeployContactTemplate: Successfully processed $ProcessedCount contacts" -sev Info - # Wait for contacts to propagate before updating additional fields - Start-Sleep -Seconds 1 + # Wait for contacts to propagate before updating additional fields (only needed for small batches) + if ($ProcessedCount -le 3) { + Start-Sleep -Seconds 1 + } # Second pass: Update contacts with additional fields (only if needed) $UpdateFailures = 0 @@ -318,8 +321,7 @@ function Invoke-CIPPStandardDeployContactTemplates { $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-MailContact' -cmdParams $MailContactParams -UseSystemMailbox $true } } - } - catch { + } catch { $UpdateFailures++ $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message Write-LogMessage -API $APIName -tenant $tenant -message "Failed to update additional fields for contact $($Template.displayName): $ErrorMessage" -sev 'Error' @@ -349,25 +351,36 @@ function Invoke-CIPPStandardDeployContactTemplates { if ($Contact.missing) { $CurrentInfo = $Contact.Template | Select-Object -Property displayName, email, missing Write-StandardsAlert -message "Mail contact $($Contact.Template.displayName) from template $($Contact.TemplateGUID) is missing." -object $CurrentInfo -tenant $Tenant -standardName 'DeployContactTemplate' - } - else { - $CurrentInfo = $CurrentContacts | Where-Object -Property DisplayName -eq $Contact.Template.displayName | Select-Object -Property DisplayName, ExternalEmailAddress, FirstName, LastName + } else { + $CurrentInfo = $CurrentContacts | Where-Object -Property DisplayName -EQ $Contact.Template.displayName | Select-Object -Property DisplayName, ExternalEmailAddress, FirstName, LastName Write-StandardsAlert -message "Mail contact $($Contact.Template.displayName) from template $($Contact.TemplateGUID) will be updated to match template." -object $CurrentInfo -tenant $Tenant -standardName 'DeployContactTemplate' } } Write-LogMessage -API $APIName -tenant $Tenant -message "DeployContactTemplate: $MissingContacts missing, $ExistingContacts to update" -sev Info } else { - Write-LogMessage -API $APIName -tenant $Tenant -message "DeployContactTemplate: No contacts need processing" -sev Info + Write-LogMessage -API $APIName -tenant $Tenant -message 'DeployContactTemplate: No contacts need processing' -sev Info } } if ($ReportEnabled) { - foreach ($Contact in $CompareList) { - Set-CIPPStandardsCompareField -FieldName "standards.DeployContactTemplate" -FieldValue $Contact.StateIsCorrect -TenantFilter $Tenant + $ExpectedValue = [PSCustomObject]@{ + state = 'Correctly configured' } + $CurrentValue = if ($CompareList.StateIsCorrect -eq $true) { + [PSCustomObject]@{ state = 'Correctly configured' } + } else { + [PSCustomObject]@{ + MissingContacts = $CompareList | Where-Object { $_.missing } | ForEach-Object { + $_.Template | Select-Object -Property displayName, Email + } + ContactsToUpdate = $CompareList | Where-Object { -not $_.missing } | ForEach-Object { + $_.Template | Select-Object -Property displayName, Email + } + } + } + Set-CIPPStandardsCompareField -FieldName 'standards.DeployContactTemplate' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant } - } - catch { + } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message Write-LogMessage -API $APIName -tenant $tenant -message "Failed to create or update mail contact(s) from templates, Error: $ErrorMessage" -sev 'Error' } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDeployMailContact.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDeployMailContact.ps1 index 4f991c25be1f..0bc606b7adbf 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDeployMailContact.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDeployMailContact.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardDeployMailContact { CAT Exchange Standards TAG + EXECUTIVETEXT + Automatically creates external email contacts in the organization's address book, enabling seamless communication with external partners and vendors. This standardizes contact management across all company locations and improves collaboration efficiency. ADDEDCOMPONENT {"type":"textField","name":"standards.DeployMailContact.ExternalEmailAddress","label":"External Email Address","required":true} {"type":"textField","name":"standards.DeployMailContact.DisplayName","label":"Display Name","required":true} @@ -33,6 +35,11 @@ function Invoke-CIPPStandardDeployMailContact { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'DeployMailContact' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. # Input validation if ([string]::IsNullOrWhiteSpace($Settings.DisplayName)) { @@ -42,8 +49,7 @@ function Invoke-CIPPStandardDeployMailContact { try { $null = [System.Net.Mail.MailAddress]::new($Settings.ExternalEmailAddress) - } - catch { + } catch { Write-LogMessage -API 'Standards' -tenant $Tenant -message "DeployMailContact: Invalid email address format: $($Settings.ExternalEmailAddress)" -sev Error return } @@ -62,12 +68,10 @@ function Invoke-CIPPStandardDeployMailContact { Identity = $Settings.ExternalEmailAddress ErrorAction = 'Stop' } - } - catch { + } catch { if ($_.Exception.Message -like "*couldn't be found*") { $ExistingContact = $null - } - else { + } else { Write-LogMessage -API 'Standards' -tenant $Tenant -message "Error checking for existing mail contact: $(Get-CippException -Exception $_).NormalizedError" -sev Error return } @@ -80,8 +84,7 @@ function Invoke-CIPPStandardDeployMailContact { $NewContactParams.Name = $Settings.DisplayName $null = New-ExoRequest -tenantid $Tenant -cmdlet 'New-MailContact' -cmdParams $NewContactParams Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully created mail contact $($Settings.DisplayName) with email $($Settings.ExternalEmailAddress)" -sev Info - } - catch { + } catch { Write-LogMessage -API 'Standards' -tenant $Tenant -message "Could not create mail contact. $(Get-CippException -Exception $_).NormalizedError" -sev Error } } @@ -90,8 +93,7 @@ function Invoke-CIPPStandardDeployMailContact { if ($Settings.alert -eq $true) { if ($ExistingContact) { Write-LogMessage -API 'Standards' -tenant $Tenant -message "Mail contact $($Settings.DisplayName) already exists" -sev Info - } - else { + } else { Write-StandardsAlert -message "Mail contact $($Settings.DisplayName) needs to be created" -object $ContactData -tenant $Tenant -standardName 'DeployMailContact' -standardId $Settings.standardId Write-LogMessage -API 'Standards' -tenant $Tenant -message "Mail contact $($Settings.DisplayName) needs to be created" -sev Info } @@ -100,8 +102,20 @@ function Invoke-CIPPStandardDeployMailContact { # Report if ($Settings.report -eq $true) { $ReportData = $ContactData.Clone() - $ReportData.Exists = [bool]$ExistingContact + $ContactData = @{ + DisplayName = $Settings.DisplayName + ExternalEmailAddress = $Settings.ExternalEmailAddress + FirstName = $Settings.FirstName + LastName = $Settings.LastName + } + $CurrentValue = $ExistingContact | Select-Object DisplayName, ExternalEmailAddress, FirstName, LastName + $currentValue = @{ + DisplayName = $ExistingContact.displayName + ExternalEmailAddress = ($ExistingContact.ExternalEmailAddress -replace 'SMTP:', '') + FirstName = $ExistingContact.firstName + LastName = $ExistingContact.lastName + } Add-CIPPBPAField -FieldName 'DeployMailContact' -FieldValue $ReportData -StoreAs json -Tenant $Tenant - Set-CIPPStandardsCompareField -FieldName 'standards.DeployMailContact' -FieldValue $($ExistingContact ? $true : $ReportData) -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.DeployMailContact' -CurrentValue $CurrentValue -ExpectedValue $ReportData -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableAddShortcutsToOneDrive.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableAddShortcutsToOneDrive.ps1 index cf37d42fa516..b27abf52a5df 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableAddShortcutsToOneDrive.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableAddShortcutsToOneDrive.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardDisableAddShortcutsToOneDrive { CAT SharePoint Standards TAG + EXECUTIVETEXT + Controls whether employees can create shortcuts to SharePoint libraries in their OneDrive, managing how users organize and access shared content. This setting helps maintain organized file structures and can prevent confusion from excessive shortcuts while preserving existing workflows. ADDEDCOMPONENT {"type":"autoComplete","multiple":false,"creatable":false,"label":"Add Shortcuts To OneDrive button state","name":"standards.DisableAddShortcutsToOneDrive.state","options":[{"label":"Disabled","value":"true"},{"label":"Enabled","value":"false"}]} IMPACT @@ -29,15 +31,34 @@ function Invoke-CIPPStandardDisableAddShortcutsToOneDrive { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'DisableAddShortcutsToOneDrive' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableAddShortcutsToOneDrive' - $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | Select-Object _ObjectIdentity_, TenantFilter, DisableAddToOneDrive + if ($TestResult -eq $false) { + return $true + } #we're done. + + try { + $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | + Select-Object _ObjectIdentity_, TenantFilter, DisableAddToOneDrive + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableAddShortcutsToOneDrive state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } # Input validation $StateValue = $Settings.state.value ?? $Settings.state if (([string]::IsNullOrWhiteSpace($StateValue) -or $StateValue -eq 'Select a value') -and ($Settings.remediate -eq $true -or $Settings.alert -eq $true)) { Write-LogMessage -API 'Standards' -tenant $tenant -message 'DisableAddShortcutsToOneDrive: Invalid state parameter set' -sev Error - Return + return + } + + $CurrentValue = [PSCustomObject]@{ + DisableAddShortcutsToOneDrive = $CurrentState.DisableAddToOneDrive + } + $ExpectedValue = [PSCustomObject]@{ + DisableAddShortcutsToOneDrive = [System.Convert]::ToBoolean($StateValue) } $WantedState = [System.Convert]::ToBoolean($StateValue) @@ -50,13 +71,11 @@ function Invoke-CIPPStandardDisableAddShortcutsToOneDrive { } else { $FieldValue = $CurrentState | Select-Object -Property DisableAddToOneDrive } - Set-CIPPStandardsCompareField -FieldName 'standards.DisableAddShortcutsToOneDrive' -FieldValue $FieldValue -TenantFilter $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.DisableAddShortcutsToOneDrive' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'OneDriveAddShortcutButtonDisabled' -FieldValue $CurrentState.DisableAddToOneDrive -StoreAs bool -Tenant $Tenant } - If ($Settings.remediate -eq $true) { - Write-Host 'Time to remediate' - + if ($Settings.remediate -eq $true) { if ($StateIsCorrect -eq $false) { try { $CurrentState | Set-CIPPSPOTenant -Properties @{DisableAddToOneDrive = $WantedState } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableAdditionalStorageProviders.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableAdditionalStorageProviders.ps1 index 74ca49628813..42e28232c593 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableAdditionalStorageProviders.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableAdditionalStorageProviders.ps1 @@ -13,8 +13,10 @@ function Invoke-CIPPStandardDisableAdditionalStorageProviders { CAT Exchange Standards TAG - "CIS" + "CIS M365 5.0 (6.5.3)" "exo_storageproviderrestricted" + EXECUTIVETEXT + Prevents employees from accessing personal cloud storage services like Dropbox or Google Drive through Outlook on the web, reducing data security risks and ensuring company information stays within approved corporate systems. This helps maintain data governance and prevents accidental data leaks. ADDEDCOMPONENT IMPACT Low Impact @@ -31,9 +33,28 @@ function Invoke-CIPPStandardDisableAdditionalStorageProviders { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'DisableAdditionalStorageProviders' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableAdditionalStorageProviders' - $AdditionalStorageProvidersState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OwaMailboxPolicy' -cmdParams @{Identity = 'OwaMailboxPolicy-Default' } -Select 'Identity, AdditionalStorageProvidersAvailable' + try { + $AdditionalStorageProvidersState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OwaMailboxPolicy' -cmdParams @{Identity = 'OwaMailboxPolicy-Default' } -Select 'Identity, AdditionalStorageProvidersAvailable' + } + catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableAddShortcutsToOneDrive state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $CurrentValue = [PSCustomObject]@{ + AdditionalStorageProvidersAvailable = $AdditionalStorageProvidersState.AdditionalStorageProvidersAvailable + } + $ExpectedValue = [PSCustomObject]@{ + AdditionalStorageProvidersAvailable = $false + } if ($Settings.remediate -eq $true) { @@ -63,8 +84,8 @@ function Invoke-CIPPStandardDisableAdditionalStorageProviders { } if ($Settings.report -eq $true) { - $State = $AdditionalStorageProvidersState.AdditionalStorageProvidersEnabled ? $false : $true - Set-CIPPStandardsCompareField -FieldName 'standards.DisableAdditionalStorageProviders' -FieldValue $State -TenantFilter $Tenant - Add-CIPPBPAField -FieldName 'AdditionalStorageProvidersEnabled' -FieldValue $State -StoreAs bool -Tenant $Tenant + $State = $AdditionalStorageProvidersState.AdditionalStorageProvidersAvailable ? $false : $true + Set-CIPPStandardsCompareField -FieldName 'standards.DisableAdditionalStorageProviders' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'AdditionalStorageProvidersAvailable' -FieldValue $State -StoreAs bool -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableAppCreation.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableAppCreation.ps1 index e295bf78dec1..f0620e414878 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableAppCreation.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableAppCreation.ps1 @@ -13,7 +13,13 @@ function Invoke-CIPPStandardDisableAppCreation { CAT Entra (AAD) Standards TAG - "CIS" + "CIS M365 5.0 (1.2.2)" + "CISA (MS.AAD.4.1v1)" + "EIDSCA.AP10" + "Essential 8 (1175)" + "NIST CSF 2.0 (PR.AA-05)" + EXECUTIVETEXT + Prevents regular employees from creating application registrations that could be used to maintain unauthorized access to company systems. This security measure ensures that only authorized IT personnel can create applications, reducing the risk of persistent security breaches through malicious applications. ADDEDCOMPONENT IMPACT Low Impact @@ -34,9 +40,20 @@ function Invoke-CIPPStandardDisableAppCreation { ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableAppCreation' - $CurrentInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy?$select=defaultUserRolePermissions' -tenantid $Tenant + try { + $CurrentInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy?$select=defaultUserRolePermissions' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableAppCreation state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $CurrentValue = $CurrentInfo.defaultUserRolePermissions | Select-Object -Property allowedToCreateApps + $ExpectedValue = [PSCustomObject]@{ + allowedToCreateApps = $false + } - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { if ($CurrentInfo.defaultUserRolePermissions.allowedToCreateApps -eq $false) { Write-LogMessage -API 'Standards' -tenant $tenant -message 'Users are already not allowed to create App registrations.' -sev Info } else { @@ -64,7 +81,7 @@ function Invoke-CIPPStandardDisableAppCreation { if ($Settings.report -eq $true) { $State = -not $CurrentInfo.defaultUserRolePermissions.allowedToCreateApps - Set-CIPPStandardsCompareField -FieldName 'standards.DisableAppCreation' -FieldValue $State -TenantFilter $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.DisableAppCreation' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'UserAppCreationDisabled' -FieldValue $State -StoreAs bool -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableBasicAuthSMTP.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableBasicAuthSMTP.ps1 index 9dba24fe66bb..6c54c0b78c1b 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableBasicAuthSMTP.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableBasicAuthSMTP.ps1 @@ -7,12 +7,16 @@ function Invoke-CIPPStandardDisableBasicAuthSMTP { .SYNOPSIS (Label) Disable SMTP Basic Authentication .DESCRIPTION - (Helptext) Disables SMTP AUTH for the organization and all users. This is the default for new tenants. - (DocsDescription) Disables SMTP basic authentication for the tenant and all users with it explicitly enabled. + (Helptext) Disables SMTP AUTH organization-wide, impacting POP and IMAP clients that rely on SMTP for sending emails. Default for new tenants. For more information, see the [Microsoft documentation](https://learn.microsoft.com/en-us/exchange/clients-and-mobile-in-exchange-online/authenticated-client-smtp-submission) + (DocsDescription) Disables tenant-wide SMTP basic authentication, including for all explicitly enabled users, impacting POP and IMAP clients that rely on SMTP for sending emails. For more information, see the [Microsoft documentation](https://learn.microsoft.com/en-us/exchange/clients-and-mobile-in-exchange-online/authenticated-client-smtp-submission). .NOTES CAT Global Standards TAG + "CIS M365 5.0 (6.5.4)" + "NIST CSF 2.0 (PR.IR-01)" + EXECUTIVETEXT + Disables outdated email authentication methods that are vulnerable to security attacks, forcing applications and devices to use modern, more secure authentication protocols. This reduces the risk of email-based security breaches and credential theft. ADDEDCOMPONENT IMPACT Medium Impact @@ -30,14 +34,25 @@ function Invoke-CIPPStandardDisableBasicAuthSMTP { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'DisableBasicAuthSMTP' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableBasicAuthSMTP' - $CurrentInfo = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-TransportConfig' - $SMTPusers = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-CASMailbox' -cmdParams @{ ResultSize = 'Unlimited' } | Where-Object { ($_.SmtpClientAuthenticationDisabled -eq $false) } + try { + $CurrentInfo = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-TransportConfig' - If ($Settings.remediate -eq $true) { - Write-Host 'Time to remediate' + $SMTPusers = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-CASMailbox' | + Where-Object { ($_.SmtpClientAuthenticationDisabled -eq $false) } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableBasicAuthSMTP state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + if ($Settings.remediate -eq $true) { if ($CurrentInfo.SmtpClientAuthenticationDisabled -and $SMTPusers.Count -eq 0) { Write-LogMessage -API 'Standards' -tenant $tenant -message 'SMTP Basic Authentication for tenant and all users is already disabled' -sev Info } else { @@ -50,14 +65,26 @@ function Invoke-CIPPStandardDisableBasicAuthSMTP { Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable SMTP Basic Authentication. Error: $ErrorMessage" -sev Error } - # Disable SMTP Basic Authentication for all users - $SMTPusers | ForEach-Object { - try { - New-ExoRequest -tenantid $Tenant -cmdlet 'Set-CASMailbox' -cmdParams @{ Identity = $_.Identity; SmtpClientAuthenticationDisabled = $null } -UseSystemMailbox $true - Write-LogMessage -API 'Standards' -tenant $tenant -message "Disabled SMTP Basic Authentication for $($_.DisplayName), $($_.PrimarySmtpAddress)" -sev Info - } catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable SMTP Basic Authentication for $($_.DisplayName), $($_.PrimarySmtpAddress). Error: $ErrorMessage" -sev Error + # Disable SMTP Basic Authentication for all users using bulk request + if ($SMTPusers.Count -gt 0) { + $BulkRequest = foreach ($User in $SMTPusers) { + @{ + CmdletInput = @{ + CmdletName = 'Set-CASMailbox' + Parameters = @{ Identity = $User.Guid; SmtpClientAuthenticationDisabled = $null } + } + } + } + $BatchResults = New-ExoBulkRequest -tenantid $Tenant -cmdletArray @($BulkRequest) -useSystemMailbox $true + foreach ($Result in $BatchResults) { + if ($Result.error) { + $ErrorMessage = Get-NormalizedError -Message $Result.error + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable SMTP Basic Authentication for $($Result.target). Error: $ErrorMessage" -sev Error + } + } + $SuccessCount = ($BatchResults | Where-Object { -not $_.error }).Count + if ($SuccessCount -gt 0) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Disabled SMTP Basic Authentication for $SuccessCount users" -sev Info } } } @@ -89,12 +116,22 @@ function Invoke-CIPPStandardDisableBasicAuthSMTP { } if ($Settings.report -eq $true) { + + $CurrentValue = [PSCustomObject]@{ + SmtpClientAuthenticationDisabled = $CurrentInfo.SmtpClientAuthenticationDisabled + UsersWithSmtpAuthEnabled = $SMTPusers.PrimarySmtpAddress ? @($SMTPusers.PrimarySmtpAddress) : @() + } + $ExpectedValue = [PSCustomObject]@{ + SmtpClientAuthenticationDisabled = $true + UsersWithSmtpAuthEnabled = @() + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableBasicAuthSMTP' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + if ($CurrentInfo.SmtpClientAuthenticationDisabled -and $SMTPusers.Count -eq 0) { - Set-CIPPStandardsCompareField -FieldName 'standards.DisableBasicAuthSMTP' -FieldValue $true -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'DisableBasicAuthSMTP' -FieldValue $CurrentInfo.SmtpClientAuthenticationDisabled -StoreAs bool -Tenant $tenant } else { $Logs = $LogMessage | Select-Object @{n = 'Message'; e = { $_ } } - Set-CIPPStandardsCompareField -FieldName 'standards.DisableBasicAuthSMTP' -FieldValue $logs -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'DisableBasicAuthSMTP' -FieldValue $Logs -StoreAs json -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableEmail.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableEmail.ps1 index 2316844428a2..31729038577c 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableEmail.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableEmail.ps1 @@ -13,6 +13,10 @@ function Invoke-CIPPStandardDisableEmail { CAT Entra (AAD) Standards TAG + "CIS M365 5.0 (2.3.5)" + "NIST CSF 2.0 (PR.AA-03)" + EXECUTIVETEXT + Disables email-based authentication codes due to security concerns with email interception and account compromise. This forces users to adopt more secure authentication methods, particularly affecting guest users who must use stronger verification methods. ADDEDCOMPONENT IMPACT High Impact @@ -28,12 +32,17 @@ function Invoke-CIPPStandardDisableEmail { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableEmail' - $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authenticationmethodspolicy/authenticationMethodConfigurations/Email' -tenantid $Tenant + try { + $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authenticationmethodspolicy/authenticationMethodConfigurations/Email' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableEmail state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $StateIsCorrect = ($CurrentState.state -eq 'disabled') - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -tenant $tenant -message 'Email authentication method is already disabled.' -sev Info } else { @@ -54,8 +63,14 @@ function Invoke-CIPPStandardDisableEmail { } if ($Settings.report -eq $true) { - $state = $StateIsCorrect -eq $true ? $true : $CurrentState - Set-CIPPStandardsCompareField -FieldName 'standards.DisableEmail' -FieldValue $state -TenantFilter $Tenant + $CurrentValue = [PSCustomObject]@{ + DisableEmail = $CurrentState.state -eq 'disabled' + } + $ExpectedValue = [PSCustomObject]@{ + DisableEmail = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableEmail' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'DisableEmail' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableEntraPortal.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableEntraPortal.ps1 index 85f86c5d55aa..bd774e10251c 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableEntraPortal.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableEntraPortal.ps1 @@ -10,9 +10,15 @@ function Invoke-CIPPStandardDisableEntraPortal { #> param($Tenant, $Settings) - #$Rerun -Type Standard -Tenant $Tenant -API 'allowOTPTokens' -Settings $Settings #This standard is still unlisted due to MS fixing some permissions. This will be added to the list once it is fixed. - $CurrentInfo = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/admin/entra/uxSetting' -tenantid $Tenant + try { + $CurrentInfo = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/admin/entra/uxSetting' -tenantid $Tenant + } + catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableEntraPortal state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } If ($Settings.remediate -eq $true) { if ($CurrentInfo.restrictNonAdminAccess) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableExchangeOnlinePowerShell.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableExchangeOnlinePowerShell.ps1 index 33b0ab22ed63..62cce48dcb8f 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableExchangeOnlinePowerShell.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableExchangeOnlinePowerShell.ps1 @@ -7,22 +7,23 @@ function Invoke-CIPPStandardDisableExchangeOnlinePowerShell { .SYNOPSIS (Label) Disable Exchange Online PowerShell for non-admin users .DESCRIPTION - (Helptext) Disables the ability for non-admin users to use Exchange Online PowerShell. Only administrators will be able to use PowerShell to connect to Exchange Online. - (DocsDescription) Disables the ability for non-admin users to use Exchange Online PowerShell. This helps prevent attackers from using PowerShell to run malicious commands, access file systems, registry, and distribute ransomware throughout networks. Only administrators will be able to use PowerShell to connect to Exchange Online, aligning with a least privileged access approach to security. + (Helptext) Disables Exchange Online PowerShell access for non-admin users by setting the RemotePowerShellEnabled property to false for each user. This helps prevent attackers from using PowerShell to run malicious commands, access file systems, registry, and distribute ransomware throughout networks. Users with admin roles are automatically excluded. + (DocsDescription) Disables Exchange Online PowerShell access for non-admin users by setting the RemotePowerShellEnabled property to false for each user. This security measure follows a least privileged access approach, preventing potential attackers from using PowerShell to execute malicious commands, access sensitive systems, or distribute malware. Users with management roles containing 'Admin' are automatically excluded to ensure administrators retain PowerShell access to perform necessary management tasks. .NOTES CAT Exchange Standards TAG - "CIS" - "PowerShell" + "CIS M365 5.0 (6.1.1)" "Security" - ADDEDCOMPONENT + "NIST CSF 2.0 (PR.AA-05)" + EXECUTIVETEXT + Restricts PowerShell access to Exchange Online for regular employees while maintaining access for administrators, significantly reducing security risks from compromised accounts. This prevents attackers from using PowerShell to execute malicious commands or distribute ransomware while preserving necessary administrative capabilities. IMPACT Medium Impact ADDEDDATE 2025-06-19 POWERSHELLEQUIVALENT - Get-User -ResultSize Unlimited -Filter 'RemotePowerShellEnabled -eq $true' | ForEach-Object { Set-User -Identity $_.Identity -RemotePowerShellEnabled $false } + Set-User -Identity \$user -RemotePowerShellEnabled \$false RECOMMENDEDBY "CIS" "CIPP" @@ -33,12 +34,17 @@ function Invoke-CIPPStandardDisableExchangeOnlinePowerShell { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'DisableExchangeOnlinePowerShell' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableExchangeOnlinePowerShell' try { $AdminUsers = (New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments?$expand=principal' -tenantid $Tenant).principal.userPrincipalName - $UsersWithPowerShell = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-User' -Select 'userPrincipalName, identity, remotePowerShellEnabled' | Where-Object { $_.RemotePowerShellEnabled -eq $true -and $_.userPrincipalName -notin $AdminUsers } + $UsersWithPowerShell = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-User' -Select 'userPrincipalName, identity, guid, remotePowerShellEnabled' | Where-Object { $_.RemotePowerShellEnabled -eq $true -and $_.userPrincipalName -notin $AdminUsers } $PowerShellEnabledCount = ($UsersWithPowerShell | Measure-Object).Count $StateIsCorrect = $PowerShellEnabledCount -eq 0 } catch { @@ -51,22 +57,21 @@ function Invoke-CIPPStandardDisableExchangeOnlinePowerShell { if ($PowerShellEnabledCount -gt 0) { Write-LogMessage -API 'Standards' -tenant $Tenant -message "Started disabling Exchange Online PowerShell for $PowerShellEnabledCount users." -sev Info - $Request = $UsersWithPowerShell | ForEach-Object { + $Request = foreach ($User in $UsersWithPowerShell) { @{ CmdletInput = @{ CmdletName = 'Set-User' - Parameters = @{Identity = $_.Identity; RemotePowerShellEnabled = $false } + Parameters = @{Identity = $User.Guid; RemotePowerShellEnabled = $false } } } } $BatchResults = New-ExoBulkRequest -tenantid $tenant -cmdletArray @($Request) $SuccessCount = 0 - $BatchResults | ForEach-Object { - if ($_.error) { - $ErrorMessage = Get-NormalizedError -Message $_.error - Write-Host "Failed to disable Exchange Online PowerShell for $($_.target). Error: $ErrorMessage" - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to disable Exchange Online PowerShell for $($_.target). Error: $ErrorMessage" -sev Error + foreach ($Result in $BatchResults) { + if ($Result.error) { + $ErrorMessage = Get-NormalizedError -Message $Result.error + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to disable Exchange Online PowerShell for $($Result.target). Error: $ErrorMessage" -sev Error } else { $SuccessCount++ } @@ -88,8 +93,14 @@ function Invoke-CIPPStandardDisableExchangeOnlinePowerShell { } if ($Settings.report -eq $true) { - $state = $StateIsCorrect ?? @{UsersWithPowerShellEnabled = $PowerShellEnabledCount } - Set-CIPPStandardsCompareField -FieldName 'standards.DisableExchangeOnlinePowerShell' -FieldValue $state -TenantFilter $Tenant + $CurrentValue = [PSCustomObject]@{ + UsersWithPowerShellEnabled = $PowerShellEnabledCount + } + $ExpectedValue = [PSCustomObject]@{ + UsersWithPowerShellEnabled = 0 + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableExchangeOnlinePowerShell' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'ExchangeOnlinePowerShellDisabled' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableExternalCalendarSharing.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableExternalCalendarSharing.ps1 index 71024b35dad2..480bf6a37c6c 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableExternalCalendarSharing.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableExternalCalendarSharing.ps1 @@ -13,8 +13,10 @@ function Invoke-CIPPStandardDisableExternalCalendarSharing { CAT Exchange Standards TAG - "CIS" + "CIS M365 5.0 (1.3.3)" "exo_individualsharing" + EXECUTIVETEXT + Prevents employees from sharing their calendars with external parties, protecting sensitive meeting information and internal schedules from unauthorized access. This security measure helps maintain confidentiality of business activities while still allowing internal collaboration. ADDEDCOMPONENT IMPACT Low Impact @@ -31,21 +33,42 @@ function Invoke-CIPPStandardDisableExternalCalendarSharing { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableExternalCalendarSharing' + $TestResult = Test-CIPPStandardLicense -StandardName 'DisableExternalCalendarSharing' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. - $CurrentInfo = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-SharingPolicy' | Where-Object { $_.Default -eq $true } + try { + $CurrentInfo = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-SharingPolicy' | + Where-Object { $_.Default -eq $true } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableExternalCalendarSharing state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } if ($Settings.remediate -eq $true) { if ($CurrentInfo.Enabled) { - $CurrentInfo | ForEach-Object { - try { - New-ExoRequest -tenantid $Tenant -cmdlet 'Set-SharingPolicy' -cmdParams @{ Identity = $_.Id ; Enabled = $false } -UseSystemMailbox $true - Write-LogMessage -API 'Standards' -tenant $tenant -message "Successfully disabled external calendar sharing for the policy $($_.Name)" -sev Info - } catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable external calendar sharing for the policy $($_.Name). Error: $ErrorMessage" -sev Error + $BulkRequest = foreach ($Policy in $CurrentInfo) { + @{ + CmdletInput = @{ + CmdletName = 'Set-SharingPolicy' + Parameters = @{ Identity = $Policy.Id ; Enabled = $false } + } + } + } + $BatchResults = New-ExoBulkRequest -tenantid $Tenant -cmdletArray @($BulkRequest) -useSystemMailbox $true + foreach ($Result in $BatchResults) { + if ($Result.error) { + $ErrorMessage = Get-NormalizedError -Message $Result.error + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable external calendar sharing. Error: $ErrorMessage" -sev Error } } + $SuccessCount = ($BatchResults | Where-Object { -not $_.error }).Count + if ($SuccessCount -gt 0) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Successfully disabled external calendar sharing for $SuccessCount policies" -sev Info + } } else { Write-LogMessage -API 'Standards' -tenant $tenant -message 'External calendar sharing is already disabled' -sev Info @@ -63,8 +86,16 @@ function Invoke-CIPPStandardDisableExternalCalendarSharing { } if ($Settings.report -eq $true) { - $CurrentInfo.Enabled = -not $CurrentInfo.Enabled - Set-CIPPStandardsCompareField -FieldName 'standards.DisableExternalCalendarSharing' -FieldValue $CurrentInfo.Enabled -TenantFilter $Tenant - Add-CIPPBPAField -FieldName 'ExternalCalendarSharingDisabled' -FieldValue $CurrentInfo.Enabled -StoreAs bool -Tenant $tenant + $CurrentStatus = -not $CurrentInfo.Enabled + + $CurrentValue = [PSCustomObject]@{ + ExternalCalendarSharingDisabled = $CurrentStatus + } + $ExpectedValue = [PSCustomObject]@{ + ExternalCalendarSharingDisabled = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableExternalCalendarSharing' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'ExternalCalendarSharingDisabled' -FieldValue $CurrentStatus -StoreAs bool -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableGuestDirectory.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableGuestDirectory.ps1 index bd3f35789266..f4ec96f9f33d 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableGuestDirectory.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableGuestDirectory.ps1 @@ -13,6 +13,14 @@ function Invoke-CIPPStandardDisableGuestDirectory { CAT Global Standards TAG + "CIS M365 5.0 (5.1.6.2)" + "CISA (MS.AAD.5.1v1)" + "EIDSCA.AP14" + "EIDSCA.ST08" + "EIDSCA.ST09" + "NIST CSF 2.0 (PR.AA-05)" + EXECUTIVETEXT + Restricts external guest users from viewing the company's employee directory and organizational structure, protecting sensitive information about staff and internal groups. This security measure prevents unauthorized access to corporate contact information while still allowing necessary collaboration. ADDEDCOMPONENT IMPACT Low Impact @@ -29,12 +37,16 @@ function Invoke-CIPPStandardDisableGuestDirectory { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableGuestDirectory' - $CurrentInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy' -tenantid $Tenant - - If ($Settings.remediate -eq $true) { + try { + $CurrentInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableGuestDirectory state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + if ($Settings.remediate -eq $true) { if ($CurrentInfo.guestUserRoleId -eq '2af84b1e-32c8-42b7-82bc-daa82404023b') { Write-LogMessage -API 'Standards' -tenant $tenant -message 'Guest access to directory information is already disabled.' -sev Info } else { @@ -50,7 +62,6 @@ function Invoke-CIPPStandardDisableGuestDirectory { } if ($Settings.alert -eq $true) { - if ($CurrentInfo.guestUserRoleId -eq '2af84b1e-32c8-42b7-82bc-daa82404023b') { Write-LogMessage -API 'Standards' -tenant $tenant -message 'Guest access to directory information is disabled.' -sev Info } else { @@ -60,8 +71,16 @@ function Invoke-CIPPStandardDisableGuestDirectory { } if ($Settings.report -eq $true) { - if ($CurrentInfo.guestUserRoleId -eq '2af84b1e-32c8-42b7-82bc-daa82404023b') { $CurrentInfo.guestUserRoleId = $true } else { $CurrentInfo.guestUserRoleId = $false } - Set-CIPPStandardsCompareField -FieldName 'standards.DisableGuestDirectory' -FieldValue $CurrentInfo.guestUserRoleId -TenantFilter $Tenant - Add-CIPPBPAField -FieldName 'DisableGuestDirectory' -FieldValue $CurrentInfo.guestUserRoleId -StoreAs bool -Tenant $tenant + if ($CurrentInfo.guestUserRoleId -eq '2af84b1e-32c8-42b7-82bc-daa82404023b') { $CurrentStatus = $true } else { $CurrentStatus = $false } + + $CurrentValue = [PSCustomObject]@{ + GuestDirectoryAccessDisabled = $CurrentStatus + } + $ExpectedValue = [PSCustomObject]@{ + GuestDirectoryAccessDisabled = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableGuestDirectory' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'DisableGuestDirectory' -FieldValue $CurrentStatus -StoreAs bool -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableGuests.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableGuests.ps1 index 56ac2349159d..baa729c653b2 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableGuests.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableGuests.ps1 @@ -5,15 +5,18 @@ function Invoke-CIPPStandardDisableGuests { .COMPONENT (APIName) DisableGuests .SYNOPSIS - (Label) Disable Guest accounts that have not logged on for 90 days + (Label) Disable Guest accounts that have not logged on for a number of days .DESCRIPTION - (Helptext) Blocks login for guest users that have not logged in for 90 days - (DocsDescription) Blocks login for guest users that have not logged in for 90 days + (Helptext) Blocks login for guest users that have not logged in for a number of days + (DocsDescription) Blocks login for guest users that have not logged in for a number of days .NOTES CAT Entra (AAD) Standards TAG + EXECUTIVETEXT + Automatically disables external guest accounts that haven't been used for a number of days, reducing security risks from dormant accounts while maintaining access for active external collaborators. This helps maintain a clean user directory and reduces potential attack vectors. ADDEDCOMPONENT + {"type":"number","name":"standards.DisableGuests.days","required":true,"defaultValue":90,"label":"Days of inactivity"} IMPACT Medium Impact ADDEDDATE @@ -30,49 +33,110 @@ function Invoke-CIPPStandardDisableGuests { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableGuests' + $TestResult = Test-CIPPStandardLicense -StandardName 'DisableGuests' -TenantFilter $Tenant -RequiredCapabilities @('AAD_PREMIUM', 'AAD_PREMIUM_P2') - $90Days = (Get-Date).AddDays(-90).ToUniversalTime() - $Lookup = $90Days.ToString('o') + if ($TestResult -eq $false) { + #writing to each item that the license is not present. + foreach ($Template in $settings.TemplateList) { + Set-CIPPStandardsCompareField -FieldName 'standards.DisableGuests' -FieldValue 'This tenant does not have the required license for this standard.' -Tenant $Tenant + } + return $true + } #we're done. + + $checkDays = if ($Settings.days) { $Settings.days } else { 90 } # Default to 90 days if not set. Pre v8.5.0 compatibility + $Days = (Get-Date).AddDays(-$checkDays).ToUniversalTime() $AuditLookup = (Get-Date).AddDays(-7).ToUniversalTime().ToString('o') - $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$filter=createdDateTime le $Lookup and userType eq 'Guest' and accountEnabled eq true &`$select=id,UserPrincipalName,signInActivity,mail,userType,accountEnabled,createdDateTime,externalUserState" -scope 'https://graph.microsoft.com/.default' -tenantid $Tenant | - Where-Object { $_.signInActivity.lastSuccessfulSignInDateTime -le $90Days } + try { + $AllUsers = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Users' + + $GraphRequest = $AllUsers | Where-Object { + $_.userType -eq 'Guest' -and + $_.accountEnabled -eq $true -and + ($null -ne $_.createdDateTime -and [DateTime]$_.createdDateTime -le $Days) -and + ($null -eq $_.signInActivity -or $null -eq $_.signInActivity.lastSuccessfulSignInDateTime -or [DateTime]$_.signInActivity.lastSuccessfulSignInDateTime -le $Days) + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableGuests state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } - $RecentlyReactivatedUsers = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/auditLogs/directoryAudits?`$filter=activityDisplayName eq 'Enable account' and activityDateTime ge $AuditLookup" -scope 'https://graph.microsoft.com/.default' -tenantid $Tenant | - ForEach-Object { $_.targetResources[0].id } | Select-Object -Unique) + $AuditResults = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/auditLogs/directoryAudits?`$filter=activityDisplayName eq 'Enable account' and activityDateTime ge $AuditLookup" -scope 'https://graph.microsoft.com/.default' -tenantid $Tenant + $RecentlyReactivatedUsers = @(foreach ($AuditEntry in $AuditResults) { $AuditEntry.targetResources[0].id }) | Select-Object -Unique $GraphRequest = $GraphRequest | Where-Object { -not ($RecentlyReactivatedUsers -contains $_.id) } - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { if ($GraphRequest.Count -gt 0) { - foreach ($guest in $GraphRequest) { - try { - $null = New-GraphPostRequest -type Patch -tenantid $tenant -uri "https://graph.microsoft.com/beta/users/$($guest.id)" -body '{"accountEnabled":"false"}' - Write-LogMessage -API 'Standards' -tenant $tenant -message "Disabling guest $($guest.UserPrincipalName) ($($guest.id))" -sev Info - } catch { - $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable guest $($guest.UserPrincipalName) ($($guest.id)): $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + $int = 0 + $BulkRequests = foreach ($guest in $GraphRequest) { + @{ + id = $int++ + method = 'PATCH' + url = "users/$($guest.id)" + body = @{ accountEnabled = $false } + 'headers' = @{ + 'Content-Type' = 'application/json' + } + } + } + + try { + $BulkResults = New-GraphBulkRequest -tenantid $tenant -Requests @($BulkRequests) + + for ($i = 0; $i -lt $BulkResults.Count; $i++) { + $result = $BulkResults[$i] + $guest = $GraphRequest[$i] + + if ($result.status -eq 200 -or $result.status -eq 204) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Disabled guest $($guest.UserPrincipalName) ($($guest.id)). Last sign-in: $($guest.signInActivity.lastSuccessfulSignInDateTime)" -sev Info + } else { + $errorMsg = if ($result.body.error.message) { $result.body.error.message } else { "Unknown error (Status: $($result.status))" } + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable guest $($guest.UserPrincipalName) ($($guest.id)): $errorMsg" -sev Error + } } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to process bulk disable guests request: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + + # Refresh user cache after remediation + try { + Set-CIPPDBCacheUsers -TenantFilter $Tenant + } catch { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to refresh user cache after remediation: $($_.Exception.Message)" -sev Warning } } else { - Write-LogMessage -API 'Standards' -tenant $tenant -message 'No guests accounts with a login longer than 90 days ago.' -sev Info + Write-LogMessage -API 'Standards' -tenant $tenant -message "No guests accounts with a login longer than $checkDays days ago." -sev Info } - } if ($Settings.alert -eq $true) { if ($GraphRequest.Count -gt 0) { - Write-StandardsAlert -message "Guests accounts with a login longer than 90 days ago: $($GraphRequest.count)" -object $GraphRequest -tenant $tenant -standardName 'DisableGuests' -standardId $Settings.standardId - Write-LogMessage -API 'Standards' -tenant $tenant -message "Guests accounts with a login longer than 90 days ago: $($GraphRequest.count)" -sev Info + $Filtered = $GraphRequest | Select-Object -Property UserPrincipalName, id, signInActivity, mail, userType, accountEnabled, externalUserState + Write-StandardsAlert -message "Guests accounts with a login longer than 90 days ago: $($GraphRequest.count)" -object $Filtered -tenant $tenant -standardName 'DisableGuests' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message "Guests accounts with a login longer than $checkDays days ago: $($GraphRequest.count)" -sev Info } else { - Write-LogMessage -API 'Standards' -tenant $tenant -message 'No guests accounts with a login longer than 90 days ago.' -sev Info + Write-LogMessage -API 'Standards' -tenant $tenant -message "No guests accounts with a login longer than $checkDays days ago." -sev Info } } if ($Settings.report -eq $true) { $Filtered = $GraphRequest | Select-Object -Property UserPrincipalName, id, signInActivity, mail, userType, accountEnabled - $State = $Filtered ? $Filtered : $true - Set-CIPPStandardsCompareField -FieldName 'standards.DisableGuests' -FieldValue $State -TenantFilter $Tenant + + $CurrentValue = [PSCustomObject]@{ + GuestsDisabledAfterDays = $checkDays + GuestsDisabledAccountCount = $Filtered.Count + GuestsDisabledAccountDetails = @($Filtered) + } + + $ExpectedValue = [PSCustomObject]@{ + GuestsDisabledAfterDays = $checkDays + GuestsDisabledAccountCount = 0 + GuestsDisabledAccountDetails = @() + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableGuests' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'DisableGuests' -FieldValue $Filtered -StoreAs json -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableM365GroupUsers.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableM365GroupUsers.ps1 index f6fc18ff4b30..79075e249008 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableM365GroupUsers.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableM365GroupUsers.ps1 @@ -13,6 +13,9 @@ function Invoke-CIPPStandardDisableM365GroupUsers { CAT Entra (AAD) Standards TAG + "CISA (MS.AAD.21.1v1)" + EXECUTIVETEXT + Restricts the creation of Microsoft 365 groups, Teams, and SharePoint sites to authorized administrators, preventing uncontrolled proliferation of collaboration spaces. This ensures proper governance, naming conventions, and resource management while maintaining oversight of all collaborative environments. ADDEDCOMPONENT IMPACT Low Impact @@ -28,11 +31,22 @@ function Invoke-CIPPStandardDisableM365GroupUsers { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableM365GroupUsers' + $TestResult = Test-CIPPStandardLicense -StandardName 'DisableM365GroupUsers' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') - $CurrentState = (New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/settings' -tenantid $tenant) | Where-Object -Property displayname -EQ 'Group.unified' + if ($TestResult -eq $false) { + return $true + } #we're done. - If ($Settings.remediate -eq $true) { + try { + $CurrentState = (New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/settings' -tenantid $tenant) | + Where-Object -Property displayname -EQ 'Group.unified' + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableM365GroupUsers state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + if ($Settings.remediate -eq $true) { if (($CurrentState.values | Where-Object { $_.name -eq 'EnableGroupCreation' }).value -eq 'false') { Write-LogMessage -API 'Standards' -tenant $tenant -message 'Users are already disabled from creating M365 Groups.' -sev Info } else { @@ -77,7 +91,15 @@ function Invoke-CIPPStandardDisableM365GroupUsers { } else { $CurrentState = $false } - Set-CIPPStandardsCompareField -FieldName 'standards.DisableM365GroupUsers' -FieldValue $CurrentState -TenantFilter $Tenant + + $CurrentValue = [PSCustomObject]@{ + M365GroupUserCreationDisabled = $CurrentState + } + $ExpectedValue = [PSCustomObject]@{ + M365GroupUserCreationDisabled = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableM365GroupUsers' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'DisableM365GroupUsers' -FieldValue $CurrentState -StoreAs bool -Tenant $tenant } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableOutlookAddins.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableOutlookAddins.ps1 index f098710e5e57..5def2a8ca32d 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableOutlookAddins.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableOutlookAddins.ps1 @@ -13,8 +13,12 @@ function Invoke-CIPPStandardDisableOutlookAddins { CAT Exchange Standards TAG - "CIS" + "CIS M365 5.0 (6.3.1)" "exo_outlookaddins" + "NIST CSF 2.0 (PR.AA-05)" + "NIST CSF 2.0 (PR.PS-05)" + EXECUTIVETEXT + Prevents employees from installing third-party add-ins in Outlook without administrative approval, reducing security risks from potentially malicious extensions. This ensures only vetted and approved tools can access company email data while maintaining centralized control over email functionality. ADDEDCOMPONENT IMPACT Medium Impact @@ -31,9 +35,20 @@ function Invoke-CIPPStandardDisableOutlookAddins { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableOutlookAddins' + $TestResult = Test-CIPPStandardLicense -StandardName 'DisableOutlookAddins' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. - $CurrentInfo = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-RoleAssignmentPolicy' | Where-Object { $_.IsDefault -eq $true } + try { + $CurrentInfo = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-RoleAssignmentPolicy' | + Where-Object { $_.IsDefault -eq $true } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableOutlookAddins state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $Roles = @('My Custom Apps', 'My Marketplace Apps', 'My ReadWriteMailbox Apps') $RolesToRemove = foreach ($Role in $Roles) { if ($CurrentInfo.AssignedRoles -contains $Role) { @@ -47,8 +62,9 @@ function Invoke-CIPPStandardDisableOutlookAddins { foreach ($Role in $RolesToRemove) { try { - New-ExoRequest -tenantid $Tenant -cmdlet 'Get-ManagementRoleAssignment' -cmdParams @{ RoleAssignee = $CurrentInfo.Identity; Role = $Role } | ForEach-Object { - New-ExoRequest -tenantid $Tenant -cmdlet 'Remove-ManagementRoleAssignment' -cmdParams @{ Identity = $_.Guid; Confirm = $false } -UseSystemMailbox $true + $RoleAssignments = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-ManagementRoleAssignment' -cmdParams @{ RoleAssignee = $CurrentInfo.Identity; Role = $Role } + foreach ($Assignment in $RoleAssignments) { + New-ExoRequest -tenantid $Tenant -cmdlet 'Remove-ManagementRoleAssignment' -cmdParams @{ Identity = $Assignment.Guid; Confirm = $false } -UseSystemMailbox $true Write-LogMessage -API 'Standards' -tenant $tenant -message "Disabled Outlook add-in role: $Role" -sev Debug } } catch { @@ -79,8 +95,15 @@ function Invoke-CIPPStandardDisableOutlookAddins { } if ($Settings.report -eq $true) { $State = if ($RolesToRemove) { $false } else { $true } - $StateForCompare = if ($RolesToRemove) { @{ AllowedApps = $RolesToRemove } } else { $true } - Set-CIPPStandardsCompareField -FieldName 'standards.DisableOutlookAddins' -FieldValue $StateForCompare -TenantFilter $Tenant + + $CurrentValue = [PSCustomObject]@{ + DisabledOutlookAddins = $State + } + $ExpectedValue = [PSCustomObject]@{ + DisabledOutlookAddins = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableOutlookAddins' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'DisabledOutlookAddins' -FieldValue $State -StoreAs bool -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableQRCodePin.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableQRCodePin.ps1 index 358f1bfb76e5..244a867a3d3e 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableQRCodePin.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableQRCodePin.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardDisableQRCodePin { CAT Entra (AAD) Standards TAG + EXECUTIVETEXT + Disables QR Code Pin authentication method due to security concerns, forcing users to adopt more secure authentication alternatives. This helps standardize authentication methods and reduces potential security vulnerabilities while ensuring employees use more robust multi-factor authentication options. ADDEDCOMPONENT IMPACT High Impact @@ -29,7 +31,14 @@ function Invoke-CIPPStandardDisableQRCodePin { param($Tenant, $Settings) - $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authenticationmethodspolicy/authenticationMethodConfigurations/QRCodePin' -tenantid $Tenant + try { + $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authenticationmethodspolicy/authenticationMethodConfigurations/QRCodePin' -tenantid $Tenant + } + catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableQRCodePin state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $StateIsCorrect = ($CurrentState.state -eq 'disabled') If ($Settings.remediate -eq $true) { @@ -54,7 +63,15 @@ function Invoke-CIPPStandardDisableQRCodePin { if ($Settings.report -eq $true) { $state = $StateIsCorrect -eq $true ? $true : $CurrentState - Set-CIPPStandardsCompareField -FieldName 'standards.DisableQRCodePin' -FieldValue $state -TenantFilter $Tenant + + $CurrentValue = [PSCustomObject]@{ + DisableQRCodePin = $state + } + $ExpectedValue = [PSCustomObject]@{ + DisableQRCodePin = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableQRCodePin' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'DisableQRCodePin' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableReshare.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableReshare.ps1 index c6aa08a66250..6f2fd8f23a03 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableReshare.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableReshare.ps1 @@ -13,7 +13,11 @@ function Invoke-CIPPStandardDisableReshare { CAT SharePoint Standards TAG - "CIS" + "CIS M365 5.0 (7.2.5)" + "CISA (MS.AAD.14.2v1)" + "CISA (MS.SPO.1.2v1)" + EXECUTIVETEXT + Prevents external users from sharing company documents with additional people, maintaining control over document distribution and preventing unauthorized access expansion. This security measure ensures that external sharing remains within intended boundaries set by internal employees. ADDEDCOMPONENT IMPACT High Impact @@ -31,11 +35,21 @@ function Invoke-CIPPStandardDisableReshare { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableReshare' + $TestResult = Test-CIPPStandardLicense -StandardName 'DisableReshare' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + + if ($TestResult -eq $false) { + return $true + } #we're done. - $CurrentInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' -tenantid $Tenant -AsApp $true + try { + $CurrentInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' -tenantid $Tenant -AsApp $true + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableReshare state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { if ($CurrentInfo.isResharingByExternalUsersEnabled) { try { @@ -62,7 +76,15 @@ function Invoke-CIPPStandardDisableReshare { if ($Settings.report -eq $true) { $state = $CurrentInfo.isResharingByExternalUsersEnabled ? ($CurrentInfo | Select-Object isResharingByExternalUsersEnabled) : $true - Set-CIPPStandardsCompareField -FieldName 'standards.DisableReshare' -FieldValue $state -TenantFilter $Tenant + + $CurrentValue = [PSCustomObject]@{ + DisableReshare = $state + } + $ExpectedValue = [PSCustomObject]@{ + DisableReshare = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableReshare' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'DisableReshare' -FieldValue $CurrentInfo.isResharingByExternalUsersEnabled -StoreAs bool -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableResourceMailbox.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableResourceMailbox.ps1 index dca3fceecf40..a15bcae71e8a 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableResourceMailbox.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableResourceMailbox.ps1 @@ -13,7 +13,9 @@ function Invoke-CIPPStandardDisableResourceMailbox { CAT Exchange Standards TAG - "CIS" + "NIST CSF 2.0 (PR.AA-01)" + EXECUTIVETEXT + Prevents direct login to resource mailbox accounts (like conference rooms or equipment), ensuring they can only be managed through proper administrative channels. This security measure eliminates potential unauthorized access to resource scheduling systems while maintaining proper booking functionality. ADDEDCOMPONENT IMPACT Medium Impact @@ -22,7 +24,7 @@ function Invoke-CIPPStandardDisableResourceMailbox { POWERSHELLEQUIVALENT Get-Mailbox & Update-MgUser RECOMMENDEDBY - "CIS" + "Microsoft" "CIPP" UPDATECOMMENTBLOCK Run the Tools\Update-StandardsComments.ps1 script to update this comment block @@ -31,28 +33,68 @@ function Invoke-CIPPStandardDisableResourceMailbox { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableResourceMailbox' + $TestResult = Test-CIPPStandardLicense -StandardName 'DisableResourceMailbox' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. # Get all users that are able to be - $UserList = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/users?$top=999&$filter=accountEnabled eq true and onPremisesSyncEnabled ne true and assignedLicenses/$count eq 0&$count=true' -Tenantid $Tenant -ComplexFilter | - Where-Object { $_.userType -eq 'Member' } - $ResourceMailboxList = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-Mailbox' -cmdParams @{ Filter = "RecipientTypeDetails -eq 'RoomMailbox' -or RecipientTypeDetails -eq 'EquipmentMailbox'" } -Select 'UserPrincipalName,DisplayName,RecipientTypeDetails,ExternalDirectoryObjectId' | - Where-Object { $_.ExternalDirectoryObjectId -in $UserList.id } + try { + $AllUsers = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Users' + $UserList = $AllUsers | Where-Object { + $_.accountEnabled -eq $true -and + $_.onPremisesSyncEnabled -ne $true -and + ($null -eq $_.assignedLicenses -or $_.assignedLicenses.Count -eq 0) -and + $_.userType -eq 'Member' + } + $ResourceMailboxList = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-Mailbox' -cmdParams @{ Filter = "RecipientTypeDetails -eq 'RoomMailbox' -or RecipientTypeDetails -eq 'EquipmentMailbox'" } -Select 'UserPrincipalName,DisplayName,RecipientTypeDetails,ExternalDirectoryObjectId' | + Where-Object { $_.ExternalDirectoryObjectId -in $UserList.id } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableResourceMailbox state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } - If ($Settings.remediate -eq $true) { - Write-Host 'Time to remediate' + if ($Settings.remediate -eq $true) { + if ($ResourceMailboxList.Count -gt 0) { + $int = 0 + $BulkRequests = foreach ($Mailbox in $ResourceMailboxList) { + @{ + id = $int++ + method = 'PATCH' + url = "users/$($Mailbox.ExternalDirectoryObjectId)" + body = @{ accountEnabled = $false } + 'headers' = @{ + 'Content-Type' = 'application/json' + } + } + } + try { + $BulkResults = New-GraphBulkRequest -tenantid $Tenant -Requests @($BulkRequests) - if ($ResourceMailboxList) { - Write-Host "Resource Mailboxes to disable: $($ResourceMailboxList.Count)" - $ResourceMailboxList | ForEach-Object { - try { - New-GraphPOSTRequest -uri "https://graph.microsoft.com/v1.0/users/$($_.ExternalDirectoryObjectId)" -type PATCH -body '{"accountEnabled":"false"}' -tenantid $Tenant - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Entra account for $($_.RecipientTypeDetails), $($_.DisplayName), $($_.UserPrincipalName) disabled." -sev Info - } catch { - $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to disable Entra account for $($_.RecipientTypeDetails), $($_.DisplayName), $($_.UserPrincipalName). Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + for ($i = 0; $i -lt $BulkResults.Count; $i++) { + $result = $BulkResults[$i] + $Mailbox = $ResourceMailboxList[$i] + + if ($result.status -eq 200 -or $result.status -eq 204) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Entra account for $($Mailbox.RecipientTypeDetails), $($Mailbox.DisplayName), $($Mailbox.UserPrincipalName) disabled." -sev Info + } else { + $errorMsg = if ($result.body.error.message) { $result.body.error.message } else { "Unknown error (Status: $($result.status))" } + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to disable Entra account for $($Mailbox.RecipientTypeDetails), $($Mailbox.DisplayName), $($Mailbox.UserPrincipalName): $errorMsg" -sev Error + } } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to process bulk disable resource mailboxes request: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + + # Refresh user cache after remediation + try { + Set-CIPPDBCacheUsers -TenantFilter $Tenant + } catch { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to refresh user cache after remediation: $($_.Exception.Message)" -sev Warning } } else { Write-LogMessage -API 'Standards' -tenant $Tenant -message 'All Entra accounts for resource mailboxes are already disabled.' -sev Info @@ -70,9 +112,14 @@ function Invoke-CIPPStandardDisableResourceMailbox { } if ($Settings.report -eq $true) { - # If there are no resource mailboxes, we set the state to true, so that the standard reports as compliant. - $State = $ResourceMailboxList ? $ResourceMailboxList : $true - Set-CIPPStandardsCompareField -FieldName 'standards.DisableResourceMailbox' -FieldValue $State -Tenant $Tenant + $CurrentValue = [PSCustomObject]@{ + ResourceMailboxesToDisable = @($ResourceMailboxList) + } + $ExpectedValue = [PSCustomObject]@{ + ResourceMailboxesToDisable = @() + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableResourceMailbox' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'DisableResourceMailbox' -FieldValue $ResourceMailboxList -StoreAs json -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSMS.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSMS.ps1 index 076ea346d5d3..f793a36cad48 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSMS.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSMS.ps1 @@ -13,6 +13,11 @@ function Invoke-CIPPStandardDisableSMS { CAT Entra (AAD) Standards TAG + "CIS M365 5.0 (2.3.5)" + "EIDSCA.AS04" + "NIST CSF 2.0 (PR.AA-03)" + EXECUTIVETEXT + Disables SMS text messages as a multi-factor authentication method due to security vulnerabilities like SIM swapping attacks. This forces users to adopt more secure authentication methods like authenticator apps or hardware tokens, significantly improving account security. ADDEDCOMPONENT IMPACT High Impact @@ -29,12 +34,17 @@ function Invoke-CIPPStandardDisableSMS { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableSMS' - $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authenticationmethodspolicy/authenticationMethodConfigurations/SMS' -tenantid $Tenant + try { + $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authenticationmethodspolicy/authenticationMethodConfigurations/SMS' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableSMS state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $StateIsCorrect = ($CurrentState.state -eq 'disabled') - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -tenant $tenant -message 'SMS authentication method is already disabled.' -sev Info } else { @@ -55,7 +65,15 @@ function Invoke-CIPPStandardDisableSMS { } if ($Settings.report -eq $true) { - Set-CIPPStandardsCompareField -FieldName 'standards.DisableSMS' -FieldValue $StateIsCorrect -TenantFilter $Tenant + + $CurrentValue = [PSCustomObject]@{ + DisableSMS = $StateIsCorrect + } + $ExpectedValue = [PSCustomObject]@{ + DisableSMS = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableSMS' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'DisableSMS' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSecurityGroupUsers.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSecurityGroupUsers.ps1 index 434754a89f43..a114b59134bd 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSecurityGroupUsers.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSecurityGroupUsers.ps1 @@ -13,6 +13,10 @@ function Invoke-CIPPStandardDisableSecurityGroupUsers { CAT Entra (AAD) Standards TAG + "CISA (MS.AAD.20.1v1)" + "NIST CSF 2.0 (PR.AA-05)" + EXECUTIVETEXT + Restricts the creation of security groups to IT administrators only, preventing employees from creating unauthorized access groups that could bypass security controls. This ensures proper governance of access permissions and maintains centralized control over who can access what resources. ADDEDCOMPONENT IMPACT Medium Impact @@ -28,11 +32,16 @@ function Invoke-CIPPStandardDisableSecurityGroupUsers { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableSecurityGroupUsers' - $CurrentInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy' -tenantid $Tenant + try { + $CurrentInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableSecurityGroupUsers state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { if ($CurrentInfo.defaultUserRolePermissions.allowedToCreateSecurityGroups -eq $false) { Write-LogMessage -API 'Standards' -tenant $tenant -message 'Users are already not allowed to create Security Groups.' -sev Info } else { @@ -59,8 +68,14 @@ function Invoke-CIPPStandardDisableSecurityGroupUsers { } if ($Settings.report -eq $true) { - $state = $CurrentInfo.defaultUserRolePermissions.allowedToCreateSecurityGroups -eq $false ? $true : ($currentInfo.defaultUserRolePermissions | Select-Object allowedToCreateSecurityGroups) - Set-CIPPStandardsCompareField -FieldName 'standards.DisableSecurityGroupUsers' -FieldValue $state -Tenant $tenant + $CurrentValue = [PSCustomObject]@{ + DisableSecurityGroupUsers = $CurrentInfo.defaultUserRolePermissions.allowedToCreateSecurityGroups -eq $false + } + $ExpectedValue = [PSCustomObject]@{ + DisableSecurityGroupUsers = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableSecurityGroupUsers' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $tenant Add-CIPPBPAField -FieldName 'DisableSecurityGroupUsers' -FieldValue $CurrentInfo.defaultUserRolePermissions.allowedToCreateSecurityGroups -StoreAs bool -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSelfServiceLicenses.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSelfServiceLicenses.ps1 index 535aeca021cc..f06f7e0091f0 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSelfServiceLicenses.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSelfServiceLicenses.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardDisableSelfServiceLicenses { CAT Entra (AAD) Standards TAG + EXECUTIVETEXT + Prevents employees from purchasing Microsoft 365 licenses independently, ensuring all software acquisitions go through proper procurement channels. This maintains budget control, prevents unauthorized spending, and ensures compliance with corporate licensing agreements. ADDEDCOMPONENT {"type":"textField","name":"standards.DisableSelfServiceLicenses.Exclusions","label":"License Ids to exclude from this standard","required":false} IMPACT @@ -29,7 +31,6 @@ function Invoke-CIPPStandardDisableSelfServiceLicenses { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableSelfServiceLicenses' try { $selfServiceItems = (New-GraphGETRequest -scope 'aeb86249-8ea3-49e2-900b-54cc8e308f85/.default' -uri 'https://licensing.m365.microsoft.com/v1.0/policies/AllowSelfServicePurchase/products' -tenantid $Tenant).items @@ -51,32 +52,31 @@ function Invoke-CIPPStandardDisableSelfServiceLicenses { $exclusions = $settings.Exclusions -split (',') } - $selfServiceItems | ForEach-Object { + foreach ($Item in $selfServiceItems) { $body = $null - if ($_.policyValue -eq 'Enabled' -AND ($_.productId -in $exclusions)) { + if ($Item.policyValue -eq 'Enabled' -AND ($Item.productId -in $exclusions)) { # Self service is enabled on product and productId is in exclusions, skip } - if ($_.policyValue -eq 'Disabled' -AND ($_.productId -in $exclusions)) { + if ($Item.policyValue -eq 'Disabled' -AND ($Item.productId -in $exclusions)) { # Self service is disabled on product and productId is in exclusions, enable $body = '{ "policyValue": "Enabled" }' } - if ($_.policyValue -eq 'Enabled' -AND ($_.productId -notin $exclusions)) { + if ($Item.policyValue -eq 'Enabled' -AND ($Item.productId -notin $exclusions)) { # Self service is enabled on product and productId is NOT in exclusions, disable $body = '{ "policyValue": "Disabled" }' } - if ($_.policyValue -eq 'Disabled' -AND ($_.productId -notin $exclusions)) { + if ($Item.policyValue -eq 'Disabled' -AND ($Item.productId -notin $exclusions)) { # Self service is disabled on product and productId is NOT in exclusions, skip } try { if ($body) { - $product = $_ - New-GraphPOSTRequest -scope 'aeb86249-8ea3-49e2-900b-54cc8e308f85/.default' -uri "https://licensing.m365.microsoft.com/v1.0/policies/AllowSelfServicePurchase/products/$($product.productId)" -tenantid $Tenant -body $body -type PUT + New-GraphPOSTRequest -scope 'aeb86249-8ea3-49e2-900b-54cc8e308f85/.default' -uri "https://licensing.m365.microsoft.com/v1.0/policies/AllowSelfServicePurchase/products/$($Item.productId)" -tenantid $Tenant -body $body -type PUT } } catch { - Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to set product status for $($product.productId) with body $($body) for reason: $($_.Exception.Message)" -sev Error - #Write-Error "Failed to disable product $($product.productName):$($_.Exception.Message)" + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to set product status for $($Item.productId) with body $($body) for reason: $($_.Exception.Message)" -sev Error + #Write-Error "Failed to disable product $($Item.productName):$($_.Exception.Message)" } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSharePointLegacyAuth.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSharePointLegacyAuth.ps1 index 5e63504dccea..4c09192f756f 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSharePointLegacyAuth.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSharePointLegacyAuth.ps1 @@ -13,8 +13,13 @@ function Invoke-CIPPStandardDisableSharePointLegacyAuth { CAT SharePoint Standards TAG - "CIS" + "CIS M365 5.0 (6.5.1)" + "CIS M365 5.0 (7.2.1)" "spo_legacy_auth" + "CISA (MS.AAD.3.1v1)" + "NIST CSF 2.0 (PR.IR-01)" + EXECUTIVETEXT + Disables outdated authentication methods for SharePoint access, forcing applications and users to use modern, more secure authentication protocols. This significantly improves security by eliminating vulnerable authentication pathways while requiring updates to older applications. ADDEDCOMPONENT IMPACT Medium Impact @@ -32,11 +37,21 @@ function Invoke-CIPPStandardDisableSharePointLegacyAuth { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableSharePointLegacyAuth' + $TestResult = Test-CIPPStandardLicense -StandardName 'DisableSharePointLegacyAuth' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + + if ($TestResult -eq $false) { + return $true + } #we're done. - $CurrentInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings?$select=isLegacyAuthProtocolsEnabled' -tenantid $Tenant -AsApp $true + try { + $CurrentInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings?$select=isLegacyAuthProtocolsEnabled' -tenantid $Tenant -AsApp $true + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableSharePointLegacyAuth state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { if ($CurrentInfo.isLegacyAuthProtocolsEnabled) { try { @@ -62,8 +77,14 @@ function Invoke-CIPPStandardDisableSharePointLegacyAuth { } } if ($Settings.report -eq $true) { - $state = $CurrentInfo.isLegacyAuthProtocolsEnabled ? ($CurrentInfo | Select-Object isLegacyAuthProtocolsEnabled) : $true - Set-CIPPStandardsCompareField -FieldName 'standards.DisableSharePointLegacyAuth' -FieldValue $state -TenantFilter $Tenant + $CurrentValue = [PSCustomObject]@{ + DisableSharePointLegacyAuth = $CurrentInfo.isLegacyAuthProtocolsEnabled -eq $false + } + $ExpectedValue = [PSCustomObject]@{ + DisableSharePointLegacyAuth = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableSharePointLegacyAuth' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'SharePointLegacyAuthEnabled' -FieldValue $CurrentInfo.isLegacyAuthProtocolsEnabled -StoreAs bool -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSharedMailbox.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSharedMailbox.ps1 index 257229cb8aea..1f1202c0a164 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSharedMailbox.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSharedMailbox.ps1 @@ -13,7 +13,11 @@ function Invoke-CIPPStandardDisableSharedMailbox { CAT Exchange Standards TAG - "CIS" + "CIS M365 5.0 (1.2.2)" + "CISA (MS.AAD.10.1v1)" + "NIST CSF 2.0 (PR.AA-01)" + EXECUTIVETEXT + Prevents direct login to shared mailbox accounts (like info@company.com), ensuring they can only be accessed through authorized users' accounts. This security measure eliminates the risk of shared passwords and unauthorized access while maintaining proper access control and audit trails. ADDEDCOMPONENT IMPACT Medium Impact @@ -31,22 +35,59 @@ function Invoke-CIPPStandardDisableSharedMailbox { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableSharedMailbox' - $UserList = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/users?$top=999&$filter=accountEnabled eq true and onPremisesSyncEnabled ne true&$count=true' -Tenantid $Tenant -ComplexFilter - $SharedMailboxList = (New-GraphGetRequest -uri "https://outlook.office365.com/adminapi/beta/$($Tenant)/Mailbox" -Tenantid $Tenant -scope ExchangeOnline | Where-Object { $_.RecipientTypeDetails -EQ 'SharedMailbox' -or $_.RecipientTypeDetails -eq 'SchedulingMailbox' -and $_.UserPrincipalName -in $UserList.UserPrincipalName }) + try { + $AllUsers = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Users' + $UserList = $AllUsers | Where-Object { + $_.accountEnabled -eq $true -and + $_.onPremisesSyncEnabled -ne $true + } + $SharedMailboxList = (New-GraphGetRequest -uri "https://outlook.office365.com/adminapi/beta/$($Tenant)/Mailbox" -Tenantid $Tenant -scope ExchangeOnline | Where-Object { $_.RecipientTypeDetails -eq 'SharedMailbox' -or $_.RecipientTypeDetails -eq 'SchedulingMailbox' -and $_.UserPrincipalName -in $UserList.UserPrincipalName }) + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableSharedMailbox state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { + if ($SharedMailboxList.Count -gt 0) { + $int = 0 + $BulkRequests = foreach ($Mailbox in $SharedMailboxList) { + @{ + id = $int++ + method = 'PATCH' + url = "users/$($Mailbox.ObjectKey)" + body = @{ accountEnabled = $false } + 'headers' = @{ + 'Content-Type' = 'application/json' + } + } + } - if ($SharedMailboxList) { - $SharedMailboxList | ForEach-Object { - try { - New-GraphPOSTRequest -uri "https://graph.microsoft.com/v1.0/users/$($_.ObjectKey)" -type PATCH -body '{"accountEnabled":"false"}' -tenantid $Tenant - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Entra account for shared mailbox $($_.DisplayName) disabled." -sev Info - } catch { - $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to disable Entra account for shared mailbox. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + try { + $BulkResults = New-GraphBulkRequest -tenantid $Tenant -Requests @($BulkRequests) + + for ($i = 0; $i -lt $BulkResults.Count; $i++) { + $result = $BulkResults[$i] + $Mailbox = $SharedMailboxList[$i] + + if ($result.status -eq 200 -or $result.status -eq 204) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Entra account for shared mailbox $($Mailbox.DisplayName) ($($Mailbox.ObjectKey)) disabled." -sev Info + } else { + $errorMsg = if ($result.body.error.message) { $result.body.error.message } else { "Unknown error (Status: $($result.status))" } + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to disable Entra account for shared mailbox $($Mailbox.DisplayName) ($($Mailbox.ObjectKey)): $errorMsg" -sev Error + } } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to process bulk disable shared mailboxes request: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + + # Refresh user cache after remediation + try { + Set-CIPPDBCacheUsers -TenantFilter $Tenant + } catch { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to refresh user cache after remediation: $($_.Exception.Message)" -sev Warning } } else { Write-LogMessage -API 'Standards' -tenant $Tenant -message 'All Entra accounts for shared mailboxes are already disabled.' -sev Info @@ -64,8 +105,16 @@ function Invoke-CIPPStandardDisableSharedMailbox { } if ($Settings.report -eq $true) { - $State = $SharedMailboxList ? $SharedMailboxList : $true - Set-CIPPStandardsCompareField -FieldName 'standards.DisableSharedMailbox' -FieldValue $State -Tenant $Tenant + $State = $SharedMailboxList ? $SharedMailboxList : @() + + $CurrentValue = [PSCustomObject]@{ + DisableSharedMailbox = @($State) + } + $ExpectedValue = [PSCustomObject]@{ + DisableSharedMailbox = @() + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableSharedMailbox' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant Add-CIPPBPAField -FieldName 'DisableSharedMailbox' -FieldValue $SharedMailboxList -StoreAs json -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableTNEF.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableTNEF.ps1 index be6f3437ba1e..7656fb4ebfa1 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableTNEF.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableTNEF.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardDisableTNEF { CAT Exchange Standards TAG + EXECUTIVETEXT + Prevents the creation of winmail.dat attachments that can cause compatibility issues when sending emails to external recipients using non-Outlook email clients. This improves email compatibility and reduces support issues with external partners and customers. ADDEDCOMPONENT IMPACT Low Impact @@ -29,13 +31,21 @@ function Invoke-CIPPStandardDisableTNEF { #> param ($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableTNEF' + $TestResult = Test-CIPPStandardLicense -StandardName 'DisableTNEF' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access - $CurrentState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-RemoteDomain' -cmdParams @{Identity = 'Default' } + if ($TestResult -eq $false) { + return $true + } #we're done. - if ($Settings.remediate -eq $true) { - Write-Host 'Time to remediate' + try { + $CurrentState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-RemoteDomain' -cmdParams @{Identity = 'Default' } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableTNEF state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + if ($Settings.remediate -eq $true) { if ($CurrentState.TNEFEnabled -ne $false) { try { New-ExoRequest -tenantid $Tenant -cmdlet 'Set-RemoteDomain' -cmdParams @{Identity = 'Default'; TNEFEnabled = $false } -useSystemMailbox $true @@ -61,7 +71,15 @@ function Invoke-CIPPStandardDisableTNEF { if ($Settings.report -eq $true) { $State = if ($CurrentState.TNEFEnabled -ne $false) { $false } else { $true } - Set-CIPPStandardsCompareField -FieldName 'standards.DisableTNEF' -FieldValue $State -Tenant $tenant + + $CurrentValue = [PSCustomObject]@{ + DisableTNEF = $State + } + $ExpectedValue = [PSCustomObject]@{ + DisableTNEF = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableTNEF' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'TNEFDisabled' -FieldValue $State -StoreAs bool -Tenant $tenant } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableTenantCreation.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableTenantCreation.ps1 index dcdab63d0073..688e76667111 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableTenantCreation.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableTenantCreation.ps1 @@ -13,7 +13,10 @@ function Invoke-CIPPStandardDisableTenantCreation { CAT Entra (AAD) Standards TAG - "CIS" + "CIS M365 5.0 (1.2.3)" + "CISA (MS.AAD.6.1v1)" + EXECUTIVETEXT + Prevents regular employees from creating new Microsoft 365 organizations, ensuring all new tenants are properly managed and controlled by IT administrators. This prevents unauthorized shadow IT environments and maintains centralized governance over Microsoft 365 resources. ADDEDCOMPONENT IMPACT Low Impact @@ -31,13 +34,17 @@ function Invoke-CIPPStandardDisableTenantCreation { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableTenantCreation' - $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy' -tenantid $Tenant + try { + $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableTenantCreation state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $StateIsCorrect = ($CurrentState.defaultUserRolePermissions.allowedToCreateTenants -eq $false) - If ($Settings.remediate -eq $true) { - Write-Host "Time to remediate DisableTenantCreation standard for tenant $Tenant" + if ($Settings.remediate -eq $true) { if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Users are already disabled from creating tenants.' -sev Info } else { @@ -67,7 +74,14 @@ function Invoke-CIPPStandardDisableTenantCreation { } if ($Settings.report -eq $true) { - Set-CIPPStandardsCompareField -FieldName 'standards.DisableTenantCreation' -FieldValue $StateIsCorrect -TenantFilter $Tenant + $CurrentValue = [PSCustomObject]@{ + DisableTenantCreation = $StateIsCorrect + } + $ExpectedValue = [PSCustomObject]@{ + DisableTenantCreation = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableTenantCreation' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'DisableTenantCreation' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableUserSiteCreate.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableUserSiteCreate.ps1 index 144eec1b1fdf..2d0ab46cd39d 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableUserSiteCreate.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableUserSiteCreate.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardDisableUserSiteCreate { CAT SharePoint Standards TAG + EXECUTIVETEXT + Restricts the creation of new SharePoint sites to authorized administrators, preventing uncontrolled proliferation of collaboration spaces and ensuring proper governance. This maintains organized information architecture while requiring approval for new collaborative environments. ADDEDCOMPONENT IMPACT High Impact @@ -28,11 +30,21 @@ function Invoke-CIPPStandardDisableUserSiteCreate { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableUserSiteCreate' + $TestResult = Test-CIPPStandardLicense -StandardName 'DisableUserSiteCreate' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') - $CurrentInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' -tenantid $Tenant -AsApp $true + if ($TestResult -eq $false) { + return $true + } #we're done. - If ($Settings.remediate -eq $true) { + try { + $CurrentInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' -tenantid $Tenant -AsApp $true + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableUserSiteCreate state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + if ($Settings.remediate -eq $true) { if ($CurrentInfo.isSiteCreationEnabled -or $CurrentInfo.isSiteCreationUIEnabled) { try { @@ -61,7 +73,15 @@ function Invoke-CIPPStandardDisableUserSiteCreate { if ($Settings.report -eq $true) { $state = $CurrentInfo.isSiteCreationEnabled -and $CurrentInfo.isSiteCreationUIEnabled ? ($CurrentInfo | Select-Object isSiteCreationEnabled, isSiteCreationUIEnabled) : $true - Set-CIPPStandardsCompareField -FieldName 'standards.DisableUserSiteCreate' -FieldValue $State -Tenant $tenant + + $CurrentValue = [PSCustomObject]@{ + DisableUserSiteCreate = $state + } + $ExpectedValue = [PSCustomObject]@{ + DisableUserSiteCreate = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableUserSiteCreate' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'DisableUserSiteCreate' -FieldValue $CurrentInfo.isSiteCreationEnabled -StoreAs bool -Tenant $tenant Add-CIPPBPAField -FieldName 'DisableUserSiteCreateUI' -FieldValue $CurrentInfo.isSiteCreationUIEnabled -StoreAs bool -Tenant $tenant } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableViva.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableViva.ps1 index 59d7a1055f19..e32c4b4a2d5c 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableViva.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableViva.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardDisableViva { CAT Exchange Standards TAG + EXECUTIVETEXT + Disables daily Microsoft Viva Insights reports that are automatically sent to employees, reducing email volume and allowing organizations to control when and how productivity insights are shared. This can help prevent information overload while maintaining the ability to access insights when needed. ADDEDCOMPONENT IMPACT Low Impact @@ -28,7 +30,6 @@ function Invoke-CIPPStandardDisableViva { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableViva' try { # TODO This does not work without Global Admin permissions for some reason. Throws an "EXCEPTION: Tenant admin role is required" error. -Bobby @@ -36,12 +37,10 @@ function Invoke-CIPPStandardDisableViva { } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to get Viva insights settings. Error: $ErrorMessage" -sev Error - Return + return } - If ($Settings.remediate -eq $true) { - Write-Host 'Time to remediate' - + if ($Settings.remediate -eq $true) { if ($CurrentSetting.isEnabledInOrganization -eq $false) { Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Viva is already disabled.' -sev Info } else { @@ -66,8 +65,14 @@ function Invoke-CIPPStandardDisableViva { } if ($Settings.report -eq $true) { - $state = $CurrentSetting.isEnabledInOrganization ? $true : ($CurrentSetting | Select-Object isEnabledInOrganization) - Set-CIPPStandardsCompareField -FieldName 'standards.DisableViva' -FieldValue $State -Tenant $Tenant + $CurrentValue = [PSCustomObject]@{ + DisableViva = -not $CurrentSetting.isEnabledInOrganization + } + $ExpectedValue = [PSCustomObject]@{ + DisableViva = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableViva' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'DisableViva' -FieldValue $CurrentSetting.isEnabledInOrganization -StoreAs bool -Tenant $Tenant } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableVoice.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableVoice.ps1 index 3ad258c913e1..254bb83e0d4e 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableVoice.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableVoice.ps1 @@ -13,6 +13,11 @@ function Invoke-CIPPStandardDisableVoice { CAT Entra (AAD) Standards TAG + "CIS M365 5.0 (2.3.5)" + "EIDSCA.AV01" + "NIST CSF 2.0 (PR.AA-03)" + EXECUTIVETEXT + Disables voice call authentication due to security vulnerabilities and social engineering risks. This forces users to adopt more secure authentication methods like authenticator apps, improving overall account security by eliminating phone-based attack vectors. ADDEDCOMPONENT IMPACT High Impact @@ -29,12 +34,17 @@ function Invoke-CIPPStandardDisableVoice { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableVoice' - $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authenticationmethodspolicy/authenticationMethodConfigurations/Voice' -tenantid $Tenant + try { + $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authenticationmethodspolicy/authenticationMethodConfigurations/Voice' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableVoice state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $StateIsCorrect = ($CurrentState.state -eq 'disabled') - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -tenant $tenant -message 'Voice authentication method is already disabled.' -sev Info } else { @@ -55,7 +65,14 @@ function Invoke-CIPPStandardDisableVoice { } if ($Settings.report -eq $true) { - Set-CIPPStandardsCompareField -FieldName 'standards.DisableVoice' -FieldValue $StateIsCorrect -TenantFilter $Tenant + $CurrentValue = [PSCustomObject]@{ + DisableVoice = $StateIsCorrect + } + $ExpectedValue = [PSCustomObject]@{ + DisableVoice = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableVoice' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'DisableVoice' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisablex509Certificate.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisablex509Certificate.ps1 index 518c4ab96cd1..5ea05a264e08 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisablex509Certificate.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisablex509Certificate.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardDisablex509Certificate { CAT Entra (AAD) Standards TAG + EXECUTIVETEXT + Disables certificate-based authentication as a multi-factor authentication method, typically used when organizations want to standardize on other authentication methods or when certificate management becomes too complex for the security benefit provided. ADDEDCOMPONENT IMPACT High Impact @@ -28,12 +30,17 @@ function Invoke-CIPPStandardDisablex509Certificate { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'Disablex509Certificate' - $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authenticationmethodspolicy/authenticationMethodConfigurations/x509Certificate' -tenantid $Tenant + try { + $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authenticationmethodspolicy/authenticationMethodConfigurations/x509Certificate' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the Disablex509Certificate state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $StateIsCorrect = ($CurrentState.state -eq 'disabled') - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -tenant $tenant -message 'x509Certificate authentication method is already disabled.' -sev Info } else { @@ -54,8 +61,14 @@ function Invoke-CIPPStandardDisablex509Certificate { } if ($Settings.report -eq $true) { - $state = $StateIsCorrect ? $true : $CurrentState - Set-CIPPStandardsCompareField -FieldName 'standards.Disablex509Certificate' -FieldValue $state -TenantFilter $Tenant + $CurrentValue = [PSCustomObject]@{ + Disablex509Certificate = $StateIsCorrect + } + $ExpectedValue = [PSCustomObject]@{ + Disablex509Certificate = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.Disablex509Certificate' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'Disablex509Certificate' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEXODirectSend.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEXODirectSend.ps1 index 146c78a3a5f8..1fa581d7c933 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEXODirectSend.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEXODirectSend.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardEXODirectSend { CAT Exchange Standards TAG + EXECUTIVETEXT + Controls whether business applications and devices (like printers or scanners) can send emails through the company's email system without authentication. While this enables convenient features like scan-to-email, it may pose security risks and should be carefully managed. ADDEDCOMPONENT {"type":"autoComplete","multiple":false,"creatable":false,"label":"Select value","name":"standards.EXODirectSend.state","options":[{"label":"Enabled","value":"enabled"},{"label":"Disabled","value":"disabled"}]} IMPACT @@ -30,13 +32,12 @@ function Invoke-CIPPStandardEXODirectSend { param ($Tenant, $Settings) - # Determine desired state. These double negative MS loves are a bit confusing $DesiredStateName = $Settings.state.value ?? $Settings.state # Input validation if ([string]::IsNullOrWhiteSpace($DesiredStateName) -or $DesiredStateName -eq 'Select a value') { Write-LogMessage -API 'Standards' -tenant $Tenant -message 'EXODirectSend: Invalid state parameter set' -sev Error - Return + return } # Get current organization config @@ -53,8 +54,6 @@ function Invoke-CIPPStandardEXODirectSend { # Remediate if needed if ($Settings.remediate -eq $true) { - - Write-Host 'Time to remediate' if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -tenant $Tenant -message "Direct Send is already set to $DesiredStateName." -sev Info } else { @@ -83,8 +82,13 @@ function Invoke-CIPPStandardEXODirectSend { # Report if needed if ($Settings.report -eq $true) { - - Set-CIPPStandardsCompareField -FieldName 'standards.EXODirectSend' -FieldValue $StateIsCorrect -Tenant $Tenant + $ExpectedState = @{ + RejectDirectSend = $DesiredState + } + $CurrentState = @{ + RejectDirectSend = $CurrentConfig + } + Set-CIPPStandardsCompareField -FieldName 'standards.EXODirectSend' -CurrentValue $CurrentState -ExpectedValue $ExpectedState -Tenant $Tenant Add-CIPPBPAField -FieldName 'EXODirectSend' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEXODisableAutoForwarding.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEXODisableAutoForwarding.ps1 index e75909d94c41..8c636b8201ae 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEXODisableAutoForwarding.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEXODisableAutoForwarding.ps1 @@ -13,9 +13,13 @@ function Invoke-CIPPStandardEXODisableAutoForwarding { CAT Exchange Standards TAG - "CIS" + "CIS M365 5.0 (6.2.1)" "mdo_autoforwardingmode" "mdo_blockmailforward" + "CISA (MS.EXO.4.1v1)" + "NIST CSF 2.0 (PR.DS-02)" + EXECUTIVETEXT + Prevents employees from automatically forwarding company emails to external addresses, protecting against data leaks and unauthorized information sharing. This security measure helps maintain control over sensitive business communications while preventing both accidental and intentional data exfiltration. ADDEDCOMPONENT IMPACT High Impact @@ -33,9 +37,20 @@ function Invoke-CIPPStandardEXODisableAutoForwarding { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'EXODisableAutoForwarding' + $TestResult = Test-CIPPStandardLicense -StandardName 'EXODisableAutoForwarding' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. - $CurrentInfo = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-HostedOutboundSpamFilterPolicy' -cmdParams @{Identity = 'Default' } -useSystemMailbox $true + try { + $CurrentInfo = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-HostedOutboundSpamFilterPolicy' -cmdParams @{Identity = 'Default' } -useSystemMailbox $true + } + catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the EXODisableAutoForwarding state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $StateIsCorrect = $CurrentInfo.AutoForwardingMode -eq 'Off' if ($Settings.remediate -eq $true) { @@ -58,8 +73,14 @@ function Invoke-CIPPStandardEXODisableAutoForwarding { } if ($Settings.report -eq $true) { - $state = $StateIsCorrect ?? ($CurrentInfo | Select-Object AutoForwardingMode) - Set-CIPPStandardsCompareField -FieldName 'standards.EXODisableAutoForwarding' -FieldValue $state -TenantFilter $Tenant + $CurrentValue = @{ + AutoForwardingMode = $CurrentInfo.AutoForwardingMode + } + $ExpectedValue = @{ + AutoForwardingMode = 'Off' + } + + Set-CIPPStandardsCompareField -FieldName 'standards.EXODisableAutoForwarding' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'AutoForwardingDisabled' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEXOOutboundSpamLimits.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEXOOutboundSpamLimits.ps1 index e596c065199b..6c7fa531bbc0 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEXOOutboundSpamLimits.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEXOOutboundSpamLimits.ps1 @@ -7,13 +7,15 @@ function Invoke-CIPPStandardEXOOutboundSpamLimits { .SYNOPSIS (Label) Set Exchange Outbound Spam Limits .DESCRIPTION - (Helptext) Configures the outbound spam recipient limits (external per hour, internal per hour, per day) and the action to take when a limit is reached. The 'Set Outbound Spam Alert e-mail' standard is recommended to configure together with this one. + (Helptext) Configures the outbound spam recipient limits (external per hour, internal per hour, per day) and the action to take when a limit is reached. The 'Set Outbound Spam Alert e-mail' standard is recommended to configure together with this one. (DocsDescription) Configures the Exchange Online outbound spam recipient limits for external per hour, internal per hour, and per day, along with the action to take (e.g., BlockUser, Alert) when these limits are exceeded. This helps prevent abuse and manage email flow. Microsoft's recommendations can be found [here.](https://learn.microsoft.com/en-us/defender-office-365/recommended-settings-for-eop-and-office365#eop-outbound-spam-policy-settings) The 'Set Outbound Spam Alert e-mail' standard is recommended to configure together with this one. .NOTES CAT Exchange Standards TAG - "CIS" + "CIS M365 5.0 (2.1.6)" + EXECUTIVETEXT + Sets limits on how many emails employees can send per hour and per day to prevent spam and protect the organization's email reputation. When limits are exceeded, the system can alert administrators or temporarily block the user, helping detect compromised accounts or prevent abuse. ADDEDCOMPONENT {"type":"number","name":"standards.EXOOutboundSpamLimits.RecipientLimitExternalPerHour","label":"External Recipient Limit Per Hour","defaultValue":400} {"type":"number","name":"standards.EXOOutboundSpamLimits.RecipientLimitInternalPerHour","label":"Internal Recipient Limit Per Hour","defaultValue":800} @@ -35,6 +37,11 @@ function Invoke-CIPPStandardEXOOutboundSpamLimits { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'EXOOutboundSpamLimits' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. # Make sure it handles the frontend being both autocomplete and a text field $ActionWhenThresholdReached = $Settings.ActionWhenThresholdReached.value ?? $Settings.ActionWhenThresholdReached @@ -62,17 +69,23 @@ function Invoke-CIPPStandardEXOOutboundSpamLimits { } # Get current settings - $CurrentInfo = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-HostedOutboundSpamFilterPolicy' -cmdParams @{Identity = 'Default' } -Select 'RecipientLimitExternalPerHour, RecipientLimitInternalPerHour, RecipientLimitPerDay, ActionWhenThresholdReached' -useSystemMailbox $true | Select-Object -ExcludeProperty *data.type* + try { + $CurrentInfo = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-HostedOutboundSpamFilterPolicy' -cmdParams @{Identity = 'Default' } -Select 'RecipientLimitExternalPerHour, RecipientLimitInternalPerHour, RecipientLimitPerDay, ActionWhenThresholdReached' -useSystemMailbox $true | + Select-Object -ExcludeProperty *data.type* + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the EXOOutboundSpamLimits state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } # Check if settings are already correct $StateIsCorrect = ($CurrentInfo.RecipientLimitExternalPerHour -eq $Settings.RecipientLimitExternalPerHour) -and - ($CurrentInfo.RecipientLimitInternalPerHour -eq $Settings.RecipientLimitInternalPerHour) -and - ($CurrentInfo.RecipientLimitPerDay -eq $Settings.RecipientLimitPerDay) -and - ($CurrentInfo.ActionWhenThresholdReached -eq $ActionWhenThresholdReached) + ($CurrentInfo.RecipientLimitInternalPerHour -eq $Settings.RecipientLimitInternalPerHour) -and + ($CurrentInfo.RecipientLimitPerDay -eq $Settings.RecipientLimitPerDay) -and + ($CurrentInfo.ActionWhenThresholdReached -eq $ActionWhenThresholdReached) # Remediation - If ($Settings.remediate -eq $true) { - Write-Host 'Time to remediate' + if ($Settings.remediate -eq $true) { if ($StateIsCorrect -eq $false) { try { $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-HostedOutboundSpamFilterPolicy' -cmdParams @{ @@ -105,8 +118,20 @@ function Invoke-CIPPStandardEXOOutboundSpamLimits { # Report if ($Settings.report -eq $true) { - $State = $StateIsCorrect ? $true : $CurrentInfo - Set-CIPPStandardsCompareField -FieldName 'standards.EXOOutboundSpamLimits' -FieldValue $State -TenantFilter $Tenant + $CurrentValue = @{ + RecipientLimitExternalPerHour = $CurrentInfo.RecipientLimitExternalPerHour + RecipientLimitInternalPerHour = $CurrentInfo.RecipientLimitInternalPerHour + RecipientLimitPerDay = $CurrentInfo.RecipientLimitPerDay + ActionWhenThresholdReached = $CurrentInfo.ActionWhenThresholdReached + } + $ExpectedValue = @{ + RecipientLimitExternalPerHour = [Int32]$Settings.RecipientLimitExternalPerHour + RecipientLimitInternalPerHour = [Int32]$Settings.RecipientLimitInternalPerHour + RecipientLimitPerDay = [Int32]$Settings.RecipientLimitPerDay + ActionWhenThresholdReached = $ActionWhenThresholdReached + } + + Set-CIPPStandardsCompareField -FieldName 'standards.EXOOutboundSpamLimits' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'OutboundSpamLimitsConfigured' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableAppConsentRequests.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableAppConsentRequests.ps1 index 4f2fe48c8f42..5fbbb936a4c1 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableAppConsentRequests.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableAppConsentRequests.ps1 @@ -13,7 +13,17 @@ function Invoke-CIPPStandardEnableAppConsentRequests { CAT Entra (AAD) Standards TAG - "CIS" + "CIS M365 5.0 (1.5.2)" + "CISA (MS.AAD.9.1v1)" + "EIDSCA.CP04" + "EIDSCA.CR01" + "EIDSCA.CR02" + "EIDSCA.CR03" + "EIDSCA.CR04" + "Essential 8 (1507)" + "NIST CSF 2.0 (PR.AA-05)" + EXECUTIVETEXT + Establishes a formal approval process where employees can request access to business applications that require administrative review. This balances security with productivity by allowing controlled access to necessary tools while preventing unauthorized application installations. ADDEDCOMPONENT {"type":"AdminRolesMultiSelect","label":"App Consent Reviewer Roles","name":"standards.EnableAppConsentRequests.ReviewerRoles"} IMPACT @@ -31,11 +41,16 @@ function Invoke-CIPPStandardEnableAppConsentRequests { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'EnableAppConsentRequests' - $CurrentInfo = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/adminConsentRequestPolicy' -tenantid $Tenant + try { + $CurrentInfo = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/adminConsentRequestPolicy' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the EnableAppConsentRequests state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { try { # Get current state @@ -104,8 +119,17 @@ function Invoke-CIPPStandardEnableAppConsentRequests { } } if ($Settings.report -eq $true) { - $state = $CurrentInfo.isEnabled ? $true : $CurrentInfo - Set-CIPPStandardsCompareField -FieldName 'standards.EnableAppConsentRequests' -FieldValue $state -TenantFilter $Tenant + + $CurrentValue = [PSCustomObject]@{ + EnableAppConsentRequests = [bool]$CurrentInfo.isEnabled + ReviewerCount = $CurrentInfo.reviewers.count + } + $ExpectedValue = [PSCustomObject]@{ + EnableAppConsentRequests = $true + ReviewerCount = ($Settings.ReviewerRoles.value).count + } + + Set-CIPPStandardsCompareField -FieldName 'standards.EnableAppConsentRequests' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'EnableAppConsentAdminRequests' -FieldValue $CurrentInfo.isEnabled -StoreAs bool -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableCustomerLockbox.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableCustomerLockbox.ps1 index 729c765dcc9f..1446e6695b9f 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableCustomerLockbox.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableCustomerLockbox.ps1 @@ -13,8 +13,10 @@ function Invoke-CIPPStandardEnableCustomerLockbox { CAT Global Standards TAG - "CIS" + "CIS M365 5.0 (1.3.6)" "CustomerLockBoxEnabled" + EXECUTIVETEXT + Requires explicit organizational approval before Microsoft support staff can access company data for service operations. This provides an additional layer of data protection and ensures the organization maintains control over who can access sensitive business information, even during technical support scenarios. ADDEDCOMPONENT IMPACT Low Impact @@ -31,11 +33,21 @@ function Invoke-CIPPStandardEnableCustomerLockbox { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'EnableCustomerLockbox' + $TestResult = Test-CIPPStandardLicense -StandardName 'EnableCustomerLockbox' -TenantFilter $Tenant -RequiredCapabilities @('CustomerLockbox') + + if ($TestResult -eq $false) { + return $true + } #we're done. + + try { + $CustomerLockboxStatus = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig').CustomerLockboxEnabled + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the EnableCustomerLockbox state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } - $CustomerLockboxStatus = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig').CustomerLockboxEnabled if ($Settings.remediate -eq $true) { - Write-Host 'Time to remediate' try { if ($CustomerLockboxStatus) { @@ -65,7 +77,15 @@ function Invoke-CIPPStandardEnableCustomerLockbox { if ($Settings.report -eq $true) { $state = $CustomerLockboxStatus ? $true : $false - Set-CIPPStandardsCompareField -FieldName 'standards.EnableCustomerLockbox' -FieldValue $state -Tenant $tenant + + $CurrentValue = [PSCustomObject]@{ + EnableCustomerLockbox = $CustomerLockboxStatus + } + $ExpectedValue = [PSCustomObject]@{ + EnableCustomerLockbox = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.EnableCustomerLockbox' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $tenant Add-CIPPBPAField -FieldName 'CustomerLockboxEnabled' -FieldValue $CustomerLockboxStatus -StoreAs bool -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableFIDO2.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableFIDO2.ps1 index dc5b9e9e5da7..f137fd8d8534 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableFIDO2.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableFIDO2.ps1 @@ -13,6 +13,15 @@ function Invoke-CIPPStandardEnableFIDO2 { CAT Entra (AAD) Standards TAG + "EIDSCA.AF01" + "EIDSCA.AF02" + "EIDSCA.AF03" + "EIDSCA.AF04" + "EIDSCA.AF05" + "EIDSCA.AF06" + "NIST CSF 2.0 (PR.AA-03)" + EXECUTIVETEXT + Enables support for hardware security keys (like YubiKey) that provide the highest level of authentication security. These physical devices prevent phishing attacks and credential theft, offering superior protection for high-value accounts and sensitive business operations. ADDEDCOMPONENT IMPACT Low Impact @@ -29,12 +38,17 @@ function Invoke-CIPPStandardEnableFIDO2 { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'EnableFIDO2' - $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authenticationmethodspolicy/authenticationMethodConfigurations/Fido2' -tenantid $Tenant + try { + $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authenticationmethodspolicy/authenticationMethodConfigurations/Fido2' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the EnableFIDO2 state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $StateIsCorrect = ($CurrentState.state -eq 'enabled') - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -tenant $tenant -message 'FIDO2 Support is already enabled.' -sev Info } else { @@ -49,14 +63,20 @@ function Invoke-CIPPStandardEnableFIDO2 { if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -tenant $tenant -message 'FIDO2 Support is enabled' -sev Info } else { - Write-StandardsAlert -message "FIDO2 Support is not enabled" -object $CurrentState -tenant $tenant -standardName 'EnableFIDO2' -standardId $Settings.standardId + Write-StandardsAlert -message 'FIDO2 Support is not enabled' -object $CurrentState -tenant $tenant -standardName 'EnableFIDO2' -standardId $Settings.standardId Write-LogMessage -API 'Standards' -tenant $tenant -message 'FIDO2 Support is not enabled' -sev Info } } if ($Settings.report -eq $true) { $state = $StateIsCorrect ? $true : $CurrentState - Set-CIPPStandardsCompareField -FieldName 'standards.EnableFIDO2' -FieldValue $state -TenantFilter $Tenant + $CurrentValue = [PSCustomObject]@{ + EnableFIDO2 = $state + } + $ExpectedValue = [PSCustomObject]@{ + EnableFIDO2 = $true + } + Set-CIPPStandardsCompareField -FieldName 'standards.EnableFIDO2' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'EnableFIDO2' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableHardwareOAuth.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableHardwareOAuth.ps1 index 405a2747e0bc..2977733b7fc1 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableHardwareOAuth.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableHardwareOAuth.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardEnableHardwareOAuth { CAT Entra (AAD) Standards TAG + EXECUTIVETEXT + Enables physical hardware tokens that generate secure authentication codes, providing an alternative to smartphone-based authentication. This is particularly valuable for employees who cannot use mobile devices or require the highest security standards for accessing sensitive systems. ADDEDCOMPONENT IMPACT Low Impact @@ -28,12 +30,17 @@ function Invoke-CIPPStandardEnableHardwareOAuth { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'EnableHardwareOAuth' - $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authenticationmethodspolicy/authenticationMethodConfigurations/HardwareOath' -tenantid $Tenant + try { + $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authenticationmethodspolicy/authenticationMethodConfigurations/HardwareOath' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the EnableHardwareOAuth state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $StateIsCorrect = ($CurrentState.state -eq 'enabled') - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -tenant $tenant -message 'HardwareOAuth Support is already enabled.' -sev Info } else { @@ -48,14 +55,22 @@ function Invoke-CIPPStandardEnableHardwareOAuth { if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -tenant $tenant -message 'HardwareOAuth Support is enabled' -sev Info } else { - Write-StandardsAlert -message "HardwareOAuth Support is not enabled" -object $CurrentState -tenant $tenant -standardName 'EnableHardwareOAuth' -standardId $Settings.standardId + Write-StandardsAlert -message 'HardwareOAuth Support is not enabled' -object $CurrentState -tenant $tenant -standardName 'EnableHardwareOAuth' -standardId $Settings.standardId Write-LogMessage -API 'Standards' -tenant $tenant -message 'HardwareOAuth Support is not enabled' -sev Info } } if ($Settings.report -eq $true) { $state = $StateIsCorrect ? $true : $CurrentState - Set-CIPPStandardsCompareField -FieldName 'standards.EnableHardwareOAuth' -FieldValue $state -TenantFilter $Tenant + + $CurrentValue = [PSCustomObject]@{ + EnableHardwareOAuth = $state + } + $ExpectedValue = [PSCustomObject]@{ + EnableHardwareOAuth = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.EnableHardwareOAuth' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'EnableHardwareOAuth' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableLitigationHold.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableLitigationHold.ps1 index 4fe60d3f807d..35f68f3350d9 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableLitigationHold.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableLitigationHold.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardEnableLitigationHold { CAT Exchange Standards TAG + EXECUTIVETEXT + Preserves all email content for legal and compliance purposes by preventing permanent deletion of emails, even when users attempt to delete them. This is essential for organizations subject to legal discovery requirements or regulatory compliance mandates. ADDEDCOMPONENT {"type":"textField","name":"standards.EnableLitigationHold.days","required":false,"label":"Days to apply for litigation hold"} IMPACT @@ -29,20 +31,31 @@ function Invoke-CIPPStandardEnableLitigationHold { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'EnableLitigationHold' + $TestResult = Test-CIPPStandardLicense -StandardName 'EnableLitigationHold' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access - $MailboxesNoLitHold = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-Mailbox' -cmdParams @{ Filter = 'LitigationHoldEnabled -eq "False"' } -Select 'UserPrincipalName,PersistedCapabilities,LitigationHoldEnabled' | Where-Object { $_.PersistedCapabilities -contains 'BPOS_S_DlpAddOn' -or $_.PersistedCapabilities -contains 'BPOS_S_Enterprise' } + if ($TestResult -eq $false) { + return $true + } #we're done. + + try { + $MailboxesNoLitHold = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-Mailbox' -cmdParams @{ Filter = 'LitigationHoldEnabled -eq "False"' } -Select 'UserPrincipalName,PersistedCapabilities,LitigationHoldEnabled' | + Where-Object { $_.PersistedCapabilities -contains 'EXCHANGE_S_ARCHIVE_ADDON' -or $_.PersistedCapabilities -contains 'EXCHANGE_S_ENTERPRISE' -or $_.PersistedCapabilities -contains 'BPOS_S_DlpAddOn' -or $_.PersistedCapabilities -contains 'BPOS_S_Enterprise' } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the EnableLitigationHold state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } if ($Settings.remediate -eq $true) { if ($null -eq $MailboxesNoLitHold) { Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Litigation Hold already enabled for all accounts' -sev Info } else { try { - $Request = $MailboxesNoLitHold | ForEach-Object { + $Request = foreach ($Mailbox in $MailboxesNoLitHold) { $params = @{ CmdletInput = @{ CmdletName = 'Set-Mailbox' - Parameters = @{ Identity = $_.UserPrincipalName; LitigationHoldEnabled = $true } + Parameters = @{ Identity = $Mailbox.UserPrincipalName; LitigationHoldEnabled = $true } } } if ($null -ne $Settings.days) { @@ -53,11 +66,10 @@ function Invoke-CIPPStandardEnableLitigationHold { $BatchResults = New-ExoBulkRequest -tenantid $Tenant -cmdletArray @($Request) - $BatchResults | ForEach-Object { - if ($_.error) { - $ErrorMessage = Get-NormalizedError -Message $_.error - Write-Host "Failed to Enable Litigation Hold for $($_.Target). Error: $ErrorMessage" - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to Enable Litigation Hold for $($_.Target). Error: $ErrorMessage" -sev Error + foreach ($Result in $BatchResults) { + if ($Result.error) { + $ErrorMessage = Get-NormalizedError -Message $Result.error + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to Enable Litigation Hold for $($Result.Target). Error: $ErrorMessage" -sev Error } } } catch { @@ -79,8 +91,16 @@ function Invoke-CIPPStandardEnableLitigationHold { if ($Settings.report -eq $true) { $filtered = $MailboxesNoLitHold | Select-Object -Property UserPrincipalName - $state = $filtered ? $MailboxesNoLitHold : $true - Set-CIPPStandardsCompareField -FieldName 'standards.EnableLitigationHold' -FieldValue $state -Tenant $Tenant + $state = $filtered ? $MailboxesNoLitHold : @() + + $CurrentValue = [PSCustomObject]@{ + EnableLitigationHold = @($state) + } + $ExpectedValue = [PSCustomObject]@{ + EnableLitigationHold = @() + } + + Set-CIPPStandardsCompareField -FieldName 'standards.EnableLitigationHold' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant Add-CIPPBPAField -FieldName 'EnableLitHold' -FieldValue $filtered -StoreAs json -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableMailTips.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableMailTips.ps1 index 9c948ccfda1a..bfa1cc10f477 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableMailTips.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableMailTips.ps1 @@ -13,8 +13,10 @@ function Invoke-CIPPStandardEnableMailTips { CAT Exchange Standards TAG - "CIS" + "CIS M365 5.0 (6.5.2)" "exo_mailtipsenabled" + EXECUTIVETEXT + Enables helpful notifications in Outlook that warn users about potential email issues, such as sending to large groups, external recipients, or invalid addresses. This reduces email mistakes and improves communication efficiency by providing real-time guidance to employees. ADDEDCOMPONENT {"type":"number","name":"standards.EnableMailTips.MailTipsLargeAudienceThreshold","label":"Number of recipients to trigger the large audience MailTip (Default is 25)","placeholder":"Enter a profile name","defaultValue":25} IMPACT @@ -33,9 +35,19 @@ function Invoke-CIPPStandardEnableMailTips { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'EnableMailTips' + $TestResult = Test-CIPPStandardLicense -StandardName 'EnableMailTips' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. - $MailTipsState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig' | Select-Object MailTipsAllTipsEnabled, MailTipsExternalRecipientsTipsEnabled, MailTipsGroupMetricsEnabled, MailTipsLargeAudienceThreshold + try { + $MailTipsState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig' | Select-Object MailTipsAllTipsEnabled, MailTipsExternalRecipientsTipsEnabled, MailTipsGroupMetricsEnabled, MailTipsLargeAudienceThreshold + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the EnableMailTips state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $StateIsCorrect = if ($MailTipsState.MailTipsAllTipsEnabled -and $MailTipsState.MailTipsExternalRecipientsTipsEnabled -and $MailTipsState.MailTipsGroupMetricsEnabled -and $MailTipsState.MailTipsLargeAudienceThreshold -eq $Settings.MailTipsLargeAudienceThreshold) { $true } else { $false } if ($Settings.remediate -eq $true) { @@ -64,8 +76,15 @@ function Invoke-CIPPStandardEnableMailTips { } if ($Settings.report -eq $true) { - $state = $StateIsCorrect ? $true : $MailTipsState - Set-CIPPStandardsCompareField -FieldName 'standards.EnableMailTips' -FieldValue $State -Tenant $tenant + $CurrentValue = $MailTipsState + $ExpectedValue = [PSCustomObject]@{ + MailTipsAllTipsEnabled = $true + MailTipsExternalRecipientsTipsEnabled = $true + MailTipsGroupMetricsEnabled = $true + MailTipsLargeAudienceThreshold = $Settings.MailTipsLargeAudienceThreshold + } + + Set-CIPPStandardsCompareField -FieldName 'standards.EnableMailTips' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $tenant Add-CIPPBPAField -FieldName 'MailTipsEnabled' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableMailboxAuditing.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableMailboxAuditing.ps1 index e23baaf3aeb7..17eee3e1b987 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableMailboxAuditing.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableMailboxAuditing.ps1 @@ -13,8 +13,15 @@ function Invoke-CIPPStandardEnableMailboxAuditing { CAT Exchange Standards TAG - "CIS" + "CIS M365 5.0 (6.1.1)" + "CIS M365 5.0 (6.1.2)" + "CIS M365 5.0 (6.1.3)" "exo_mailboxaudit" + "Essential 8 (1509)" + "Essential 8 (1683)" + "NIST CSF 2.0 (DE.CM-09)" + EXECUTIVETEXT + Enables comprehensive logging of all email access and modifications across all employee mailboxes, providing detailed audit trails for security investigations and compliance requirements. This helps detect unauthorized access, data breaches, and supports regulatory compliance efforts. ADDEDCOMPONENT IMPACT Low Impact @@ -32,9 +39,19 @@ function Invoke-CIPPStandardEnableMailboxAuditing { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'EnableMailboxAuditing' + $TestResult = Test-CIPPStandardLicense -StandardName 'EnableMailboxAuditing' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. - $AuditState = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig').AuditDisabled + try { + $AuditState = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig').AuditDisabled + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the EnableMailboxAuditing state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } if ($Settings.remediate -eq $true) { if ($AuditState) { @@ -51,44 +68,48 @@ function Invoke-CIPPStandardEnableMailboxAuditing { $LogMessage = 'Tenant level mailbox audit already enabled. ' } - # Check for mailbox audit on all mailboxes. Enable for all that it's not enabled for - $Mailboxes = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-Mailbox' -cmdParams @{filter = "auditenabled -eq 'False'" } -useSystemMailbox $true -Select 'AuditEnabled,UserPrincipalName' - $Request = $mailboxes | ForEach-Object { - @{ - CmdletInput = @{ - CmdletName = 'Set-Mailbox' - Parameters = @{Identity = $_.UserPrincipalName; AuditEnabled = $true } - } - } - } + # Commented out because MS recommends NOT doing this anymore. From docs: https://learn.microsoft.com/en-us/purview/audit-mailboxes#verify-mailbox-auditing-on-by-default-is-turned-on + # When you turn on mailbox auditing on by default for the organization, the AuditEnabled property for affected mailboxes doesn't change from False to True. In other words, mailbox auditing on by default ignores the AuditEnabled property on mailboxes. + # Auditing is automatically turned on when you create a new mailbox. You don't need to manually enable mailbox auditing for new users. + # You don't need to manage the mailbox actions that are audited. A predefined set of mailbox actions are audited by default for each sign-in type (Admin, Delegate, and Owner). + # When Microsoft releases a new mailbox action, the action might be added automatically to the list of mailbox actions that are audited by default (subject to the user having the appropriate license). This result means you don't need to add new actions on mailboxes as they're released. + # You have a consistent mailbox auditing policy across your organization because you're auditing the same actions for all mailboxes. + #$Mailboxes = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-Mailbox' -cmdParams @{filter = "auditenabled -eq 'False'" } -useSystemMailbox $true -Select 'AuditEnabled,UserPrincipalName' + #$Request = $mailboxes | ForEach-Object { + # @{ + # CmdletInput = @{ + # CmdletName = 'Set-Mailbox' + # Parameters = @{Identity = $_.UserPrincipalName; AuditEnabled = $true } + # } + #} + #} - $BatchResults = New-ExoBulkRequest -tenantid $tenant -cmdletArray @($Request) - $BatchResults | ForEach-Object { - if ($_.error) { - $ErrorMessage = Get-NormalizedError -Message $_.error - Write-Host "Failed to enable user level mailbox audit for $($_.target). Error: $ErrorMessage" - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to enable user level mailbox audit for $($_.target). Error: $ErrorMessage" -sev Error - } - } + #$BatchResults = New-ExoBulkRequest -tenantid $tenant -cmdletArray @($Request) + #$BatchResults | ForEach-Object { + # if ($_.error) { + # $ErrorMessage = Get-NormalizedError -Message $_.error + # Write-Host "Failed to enable user level mailbox audit for $($_.target). Error: $ErrorMessage" + # Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to enable user level mailbox audit for $($_.target). Error: $ErrorMessage" -sev Error + # } + #} # Disable audit bypass for all mailboxes that have it enabled $BypassMailboxes = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-MailboxAuditBypassAssociation' -select 'GUID, AuditBypassEnabled, Name' -useSystemMailbox $true | Where-Object { $_.AuditBypassEnabled -eq $true } - $Request = $BypassMailboxes | ForEach-Object { + $Request = foreach ($Mailbox in $BypassMailboxes) { @{ CmdletInput = @{ CmdletName = 'Set-MailboxAuditBypassAssociation' - Parameters = @{Identity = $_.Guid; AuditBypassEnabled = $false } + Parameters = @{Identity = $Mailbox.Guid; AuditBypassEnabled = $false } } } } $BatchResults = New-ExoBulkRequest -tenantid $tenant -cmdletArray @($Request) - $BatchResults | ForEach-Object { - if ($_.error) { - $ErrorMessage = Get-NormalizedError -Message $_.error - Write-Host "Failed to disable mailbox audit bypass for $($_.target). Error: $ErrorMessage" - Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable mailbox audit bypass for $($_.target). Error: $ErrorMessage" -sev Error + foreach ($Result in $BatchResults) { + if ($Result.error) { + $ErrorMessage = Get-NormalizedError -Message $Result.error + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable mailbox audit bypass for $($Result.target). Error: $ErrorMessage" -sev Error } } @@ -118,7 +139,15 @@ function Invoke-CIPPStandardEnableMailboxAuditing { if ($Settings.report -eq $true) { $AuditState = -not $AuditState - Set-CIPPStandardsCompareField -FieldName 'standards.EnableMailboxAuditing' -FieldValue $AuditState -Tenant $Tenant + + $CurrentValue = [PSCustomObject]@{ + EnableMailboxAuditing = $AuditState + } + $ExpectedValue = [PSCustomObject]@{ + EnableMailboxAuditing = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.EnableMailboxAuditing' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant Add-CIPPBPAField -FieldName 'MailboxAuditingEnabled' -FieldValue $AuditState -StoreAs bool -Tenant $Tenant } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableNamePronunciation.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableNamePronunciation.ps1 index b3d00a681c95..eeee70c6fd6f 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableNamePronunciation.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableNamePronunciation.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardEnableNamePronunciation { CAT Global Standards TAG + EXECUTIVETEXT + Enables employees to add pronunciation guides for their names in Microsoft 365 profiles, improving communication and respect in diverse workplaces. This feature helps colleagues pronounce names correctly, enhancing professional relationships and inclusive culture. ADDEDCOMPONENT IMPACT Low Impact @@ -34,13 +36,10 @@ function Invoke-CIPPStandardEnableNamePronunciation { } catch { $ErrorMessage = Get-CippException -Exception $_ Write-LogMessage -API 'Standards' -tenant $Tenant -message "Could not get CurrentState for Name Pronunciation. Error: $($ErrorMessage.NormalizedError)" -sev Error - Return + return } - Write-Host $CurrentState if ($Settings.remediate -eq $true) { - Write-Host 'Time to remediate' - if ($CurrentState.isEnabledInOrganization -eq $true) { Write-LogMessage -API 'Standards' -tenant $tenant -message 'Name Pronunciation is already enabled.' -sev Info } else { @@ -67,7 +66,14 @@ function Invoke-CIPPStandardEnableNamePronunciation { } if ($Settings.report -eq $true) { - Set-CIPPStandardsCompareField -FieldName 'standards.EnableNamePronunciation' -FieldValue $CurrentState.isEnabledInOrganization -Tenant $tenant + $CurrentValue = [PSCustomObject]@{ + EnableNamePronunciation = $CurrentState.isEnabledInOrganization + } + $ExpectedValue = [PSCustomObject]@{ + EnableNamePronunciation = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.EnableNamePronunciation' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $tenant Add-CIPPBPAField -FieldName 'NamePronunciationEnabled' -FieldValue $CurrentState.isEnabledInOrganization -StoreAs bool -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableOnlineArchiving.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableOnlineArchiving.ps1 index 4ec2259debd7..152f5847d3e0 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableOnlineArchiving.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableOnlineArchiving.ps1 @@ -13,6 +13,10 @@ function Invoke-CIPPStandardEnableOnlineArchiving { CAT Exchange Standards TAG + "Essential 8 (1511)" + "NIST CSF 2.0 (PR.DS-11)" + EXECUTIVETEXT + Automatically enables online email archiving for all licensed employees, providing additional storage for older emails while maintaining easy access. This helps manage mailbox sizes, improves email performance, and supports compliance with data retention requirements. ADDEDCOMPONENT IMPACT Low Impact @@ -28,35 +32,37 @@ function Invoke-CIPPStandardEnableOnlineArchiving { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'EnableOnlineArchiving' + $TestResult = Test-CIPPStandardLicense -StandardName 'EnableOnlineArchiving' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. $MailboxPlans = @( 'ExchangeOnline', 'ExchangeOnlineEnterprise' ) - $MailboxesNoArchive = $MailboxPlans | ForEach-Object { - New-ExoRequest -tenantid $Tenant -cmdlet 'Get-Mailbox' -cmdParams @{ MailboxPlan = $_; Filter = 'ArchiveGuid -Eq "00000000-0000-0000-0000-000000000000" -AND RecipientTypeDetails -Eq "UserMailbox"' } - Write-Host "Getting mailboxes without Online Archiving for plan $_" + $MailboxesNoArchive = foreach ($Plan in $MailboxPlans) { + New-ExoRequest -tenantid $Tenant -cmdlet 'Get-Mailbox' -cmdParams @{ MailboxPlan = $Plan; Filter = 'ArchiveGuid -Eq "00000000-0000-0000-0000-000000000000" -AND RecipientTypeDetails -Eq "UserMailbox"' } } - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { if ($null -eq $MailboxesNoArchive) { Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Online Archiving already enabled for all accounts' -sev Info } else { try { - $Request = $MailboxesNoArchive | ForEach-Object { + $Request = foreach ($Mailbox in $MailboxesNoArchive) { @{ CmdletInput = @{ CmdletName = 'Enable-Mailbox' - Parameters = @{ Identity = $_.UserPrincipalName; Archive = $true } + Parameters = @{ Identity = $Mailbox.UserPrincipalName; Archive = $true } } } } $BatchResults = New-ExoBulkRequest -tenantid $tenant -cmdletArray @($Request) - $BatchResults | ForEach-Object { - if ($_.error) { - $ErrorMessage = Get-NormalizedError -Message $_.error - Write-Host "Failed to Enable Online Archiving for $($_.Target). Error: $ErrorMessage" - Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to Enable Online Archiving for $($_.Target). Error: $ErrorMessage" -sev Error + foreach ($Result in $BatchResults) { + if ($Result.error) { + $ErrorMessage = Get-NormalizedError -Message $Result.error + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to Enable Online Archiving for $($Result.Target). Error: $ErrorMessage" -sev Error } } } catch { @@ -70,7 +76,8 @@ function Invoke-CIPPStandardEnableOnlineArchiving { if ($Settings.alert -eq $true) { if ($MailboxesNoArchive) { - Write-StandardsAlert -message "Mailboxes without Online Archiving: $($MailboxesNoArchive.Count)" -object $MailboxesNoArchive -tenant $Tenant -standardName 'EnableOnlineArchiving' -standardId $Settings.standardId + $Object = $MailboxesNoArchive | Select-Object -Property UserPrincipalName, ArchiveGuid + Write-StandardsAlert -message "Mailboxes without Online Archiving: $($MailboxesNoArchive.Count)" -object $Object -tenant $Tenant -standardName 'EnableOnlineArchiving' -standardId $Settings.standardId Write-LogMessage -API 'Standards' -tenant $Tenant -message "Mailboxes without Online Archiving: $($MailboxesNoArchive.Count)" -sev Info } else { Write-LogMessage -API 'Standards' -tenant $Tenant -message 'All mailboxes have Online Archiving enabled' -sev Info @@ -79,8 +86,16 @@ function Invoke-CIPPStandardEnableOnlineArchiving { if ($Settings.report -eq $true) { $filtered = $MailboxesNoArchive | Select-Object -Property UserPrincipalName, ArchiveGuid - $stateReport = $filtered ? $filtered : $true - Set-CIPPStandardsCompareField -FieldName 'standards.EnableOnlineArchiving' -FieldValue $stateReport -TenantFilter $Tenant + $stateReport = $filtered ? $filtered : @() + + $CurrentValue = [PSCustomObject]@{ + ArchiveNotEnabled = @($stateReport) + } + $ExpectedValue = [PSCustomObject]@{ + ArchiveNotEnabled = @() + } + + Set-CIPPStandardsCompareField -FieldName 'standards.EnableOnlineArchiving' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'EnableOnlineArchiving' -FieldValue $filtered -StoreAs json -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnablePronouns.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnablePronouns.ps1 index 3e3a23a6ee9a..e57dc64edd9f 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnablePronouns.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnablePronouns.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardEnablePronouns { CAT Global Standards TAG + EXECUTIVETEXT + Allows employees to display their preferred pronouns in their Microsoft 365 profiles, supporting inclusive workplace practices and helping colleagues communicate respectfully. This feature enhances diversity and inclusion initiatives while fostering a more welcoming work environment. ADDEDCOMPONENT IMPACT Low Impact @@ -28,7 +30,6 @@ function Invoke-CIPPStandardEnablePronouns { #> param ($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'EnablePronouns' $Uri = 'https://graph.microsoft.com/v1.0/admin/people/pronouns' try { @@ -36,12 +37,10 @@ function Invoke-CIPPStandardEnablePronouns { } catch { $ErrorMessage = Get-CippException -Exception $_ Write-LogMessage -API 'Standards' -tenant $Tenant -message "Could not get CurrentState for Pronouns. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage - Return + return } if ($Settings.remediate -eq $true) { - Write-Host 'Time to remediate' - if ($CurrentState.isEnabledInOrganization -eq $true) { Write-LogMessage -API 'Standards' -tenant $tenant -message 'Pronouns are already enabled.' -sev Info } else { @@ -68,7 +67,14 @@ function Invoke-CIPPStandardEnablePronouns { } if ($Settings.report -eq $true) { - Set-CIPPStandardsCompareField -FieldName 'standards.EnablePronouns' -FieldValue $CurrentState.isEnabledInOrganization -Tenant $tenant + $CurrentValue = [PSCustomObject]@{ + EnablePronouns = $CurrentState.isEnabledInOrganization + } + $ExpectedValue = [PSCustomObject]@{ + EnablePronouns = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.EnablePronouns' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'PronounsEnabled' -FieldValue $CurrentState.isEnabledInOrganization -StoreAs bool -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnrollmentWindowsHelloForBusinessConfiguration.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnrollmentWindowsHelloForBusinessConfiguration.ps1 new file mode 100644 index 000000000000..80643e0d9937 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnrollmentWindowsHelloForBusinessConfiguration.ps1 @@ -0,0 +1,152 @@ +function Invoke-CIPPStandardEnrollmentWindowsHelloForBusinessConfiguration { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) EnrollmentWindowsHelloForBusinessConfiguration + .SYNOPSIS + (Label) Windows Hello for Business enrollment configuration + .DESCRIPTION + (Helptext) Sets the Windows Hello for Business configuration during device enrollment. + (DocsDescription) Sets the Windows Hello for Business configuration during device enrollment. + .NOTES + CAT + Intune Standards + TAG + EXECUTIVETEXT + Enables or disables Windows Hello for Business during device enrollment, enhancing security through biometric or PIN-based authentication methods. This ensures that devices meet corporate security standards while providing a user-friendly sign-in experience. + ADDEDCOMPONENT + {"type":"autoComplete","name":"standards.EnrollmentWindowsHelloForBusinessConfiguration.state","label":"Configure Windows Hello for Business","multiple":false,"options":[{"label":"Not configured","value":"notConfigured"},{"label":"Enabled","value":"enabled"},{"label":"Disabled","value":"disabled"}]} + {"type":"switch","name":"standards.EnrollmentWindowsHelloForBusinessConfiguration.securityDeviceRequired","label":"Use a Trusted Platform Module (TPM)","default":true} + {"type":"number","name":"standards.EnrollmentWindowsHelloForBusinessConfiguration.pinMinimumLength","label":"Minimum PIN length (4-127)","default":4} + {"type":"number","name":"standards.EnrollmentWindowsHelloForBusinessConfiguration.pinMaximumLength","label":"Maximum PIN length (4-127)","default":127} + {"type":"autoComplete","name":"standards.EnrollmentWindowsHelloForBusinessConfiguration.pinLowercaseCharactersUsage","label":"Lowercase letters in PIN","multiple":false,"options":[{"label":"Not allowed","value":"disallowed"},{"label":"Allowed","value":"allowed"},{"label":"Required","value":"required"}]} + {"type":"autoComplete","name":"standards.EnrollmentWindowsHelloForBusinessConfiguration.pinUppercaseCharactersUsage","label":"Uppercase letters in PIN","multiple":false,"options":[{"label":"Not allowed","value":"disallowed"},{"label":"Allowed","value":"allowed"},{"label":"Required","value":"required"}]} + {"type":"autoComplete","name":"standards.EnrollmentWindowsHelloForBusinessConfiguration.pinSpecialCharactersUsage","label":"Special characters in PIN","multiple":false,"options":[{"label":"Not allowed","value":"disallowed"},{"label":"Allowed","value":"allowed"},{"label":"Required","value":"required"}]} + {"type":"number","name":"standards.EnrollmentWindowsHelloForBusinessConfiguration.pinExpirationInDays","label":"PIN expiration (days) - 0 to disable","default":0} + {"type":"number","name":"standards.EnrollmentWindowsHelloForBusinessConfiguration.pinPreviousBlockCount","label":"PIN history - 0 to disable","default":0} + {"type":"switch","name":"standards.EnrollmentWindowsHelloForBusinessConfiguration.unlockWithBiometricsEnabled","label":"Allow biometric authentication","default":true} + {"type":"autoComplete","name":"standards.EnrollmentWindowsHelloForBusinessConfiguration.enhancedBiometricsState","label":"Use enhanced anti-spoofing when available","multiple":false,"options":[{"label":"Not configured","value":"notConfigured"},{"label":"Enabled","value":"enabled"},{"label":"Disabled","value":"disabled"}]} + {"type":"switch","name":"standards.EnrollmentWindowsHelloForBusinessConfiguration.remotePassportEnabled","label":"Allow phone sign-in","default":true} + IMPACT + Low Impact + ADDEDDATE + 2025-09-25 + POWERSHELLEQUIVALENT + Graph API + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'EnrollmentWindowsHelloForBusinessConfiguration' -TenantFilter $Tenant -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') + + if ($TestResult -eq $false) { + return $true + } #we're done. + + try { + $CurrentState = New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/deviceManagement/deviceEnrollmentConfigurations?`$expand=assignments&orderBy=priority&`$filter=deviceEnrollmentConfigurationType eq 'WindowsHelloForBusiness'" -tenantID $Tenant -AsApp $true | + Select-Object -Property id, pinMinimumLength, pinMaximumLength, pinUppercaseCharactersUsage, pinLowercaseCharactersUsage, pinSpecialCharactersUsage, state, securityDeviceRequired, unlockWithBiometricsEnabled, remotePassportEnabled, pinPreviousBlockCount, pinExpirationInDays, enhancedBiometricsState + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the EnrollmentWindowsHelloForBusinessConfiguration state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $StateIsCorrect = ($CurrentState.pinMinimumLength -eq $Settings.pinMinimumLength) -and + ($CurrentState.pinMaximumLength -eq $Settings.pinMaximumLength) -and + ($CurrentState.pinUppercaseCharactersUsage -eq $Settings.pinUppercaseCharactersUsage.value) -and + ($CurrentState.pinLowercaseCharactersUsage -eq $Settings.pinLowercaseCharactersUsage.value) -and + ($CurrentState.pinSpecialCharactersUsage -eq $Settings.pinSpecialCharactersUsage.value) -and + ($CurrentState.state -eq $Settings.state.value) -and + ($CurrentState.securityDeviceRequired -eq $Settings.securityDeviceRequired) -and + ($CurrentState.unlockWithBiometricsEnabled -eq $Settings.unlockWithBiometricsEnabled) -and + ($CurrentState.remotePassportEnabled -eq $Settings.remotePassportEnabled) -and + ($CurrentState.pinPreviousBlockCount -eq $Settings.pinPreviousBlockCount) -and + ($CurrentState.pinExpirationInDays -eq $Settings.pinExpirationInDays) -and + ($CurrentState.enhancedBiometricsState -eq $Settings.enhancedBiometricsState.value) + + $CompareField = [PSCustomObject]@{ + pinMinimumLength = $CurrentState.pinMinimumLength + pinMaximumLength = $CurrentState.pinMaximumLength + pinUppercaseCharactersUsage = $CurrentState.pinUppercaseCharactersUsage + pinLowercaseCharactersUsage = $CurrentState.pinLowercaseCharactersUsage + pinSpecialCharactersUsage = $CurrentState.pinSpecialCharactersUsage + state = $CurrentState.state + securityDeviceRequired = $CurrentState.securityDeviceRequired + unlockWithBiometricsEnabled = $CurrentState.unlockWithBiometricsEnabled + remotePassportEnabled = $CurrentState.remotePassportEnabled + pinPreviousBlockCount = $CurrentState.pinPreviousBlockCount + pinExpirationInDays = $CurrentState.pinExpirationInDays + enhancedBiometricsState = $CurrentState.enhancedBiometricsState + } + + $ExpectedValue = [PSCustomObject]@{ + pinMinimumLength = $Settings.pinMinimumLength + pinMaximumLength = $Settings.pinMaximumLength + pinUppercaseCharactersUsage = $Settings.pinUppercaseCharactersUsage.value + pinLowercaseCharactersUsage = $Settings.pinLowercaseCharactersUsage.value + pinSpecialCharactersUsage = $Settings.pinSpecialCharactersUsage.value + state = $Settings.state.value + securityDeviceRequired = $Settings.securityDeviceRequired + unlockWithBiometricsEnabled = $Settings.unlockWithBiometricsEnabled + remotePassportEnabled = $Settings.remotePassportEnabled + pinPreviousBlockCount = $Settings.pinPreviousBlockCount + pinExpirationInDays = $Settings.pinExpirationInDays + enhancedBiometricsState = $Settings.enhancedBiometricsState.value + } + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'EnrollmentWindowsHelloForBusinessConfiguration is already applied correctly.' -Sev Info + } else { + $cmdParam = @{ + tenantid = $Tenant + uri = "https://graph.microsoft.com/beta/deviceManagement/deviceEnrollmentConfigurations/$($CurrentState.id)" + AsApp = $false + Type = 'PATCH' + ContentType = 'application/json; charset=utf-8' + Body = [PSCustomObject]@{ + '@odata.type' = '#microsoft.graph.deviceEnrollmentWindowsHelloForBusinessConfiguration' + pinMinimumLength = $Settings.pinMinimumLength + pinMaximumLength = $Settings.pinMaximumLength + pinUppercaseCharactersUsage = $Settings.pinUppercaseCharactersUsage.value + pinLowercaseCharactersUsage = $Settings.pinLowercaseCharactersUsage.value + pinSpecialCharactersUsage = $Settings.pinSpecialCharactersUsage.value + state = $Settings.state.value + securityDeviceRequired = $Settings.securityDeviceRequired + unlockWithBiometricsEnabled = $Settings.unlockWithBiometricsEnabled + remotePassportEnabled = $Settings.remotePassportEnabled + pinPreviousBlockCount = $Settings.pinPreviousBlockCount + pinExpirationInDays = $Settings.pinExpirationInDays + enhancedBiometricsState = $Settings.enhancedBiometricsState.value + } | ConvertTo-Json -Compress -Depth 10 + } + try { + $null = New-GraphPostRequest @cmdParam + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Successfully updated EnrollmentWindowsHelloForBusinessConfiguration.' -Sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Failed to update EnrollmentWindowsHelloForBusinessConfiguration. Error: $($ErrorMessage.NormalizedError)" -Sev Error + } + } + + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'EnrollmentWindowsHelloForBusinessConfiguration is correctly set.' -Sev Info + } else { + Write-StandardsAlert -message 'EnrollmentWindowsHelloForBusinessConfiguration is incorrectly set.' -object $CompareField -tenant $Tenant -standardName 'EnrollmentWindowsHelloForBusinessConfiguration' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'EnrollmentWindowsHelloForBusinessConfiguration is incorrectly set.' -Sev Info + } + } + + if ($Settings.report -eq $true) { + Set-CIPPStandardsCompareField -FieldName 'standards.EnrollmentWindowsHelloForBusinessConfiguration' -CurrentValue $CompareField -ExpectedValue $ExpectedValue -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardExConnector.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardExConnector.ps1 deleted file mode 100644 index d32d5008f175..000000000000 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardExConnector.ps1 +++ /dev/null @@ -1,37 +0,0 @@ -function Invoke-CIPPStandardExConnector { - <# - .FUNCTIONALITY - Internal - #> - param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'ExConnector' - - If ($Settings.remediate -eq $true) { - - foreach ($Template in $Settings.TemplateList) { - try { - $Table = Get-CippTable -tablename 'templates' - $Filter = "PartitionKey eq 'ExConnectorTemplate' and RowKey eq '$($Template.value)'" - $connectorType = (Get-AzDataTableEntity @Table -Filter $Filter).direction - $RequestParams = (Get-AzDataTableEntity @Table -Filter $Filter).JSON | ConvertFrom-Json - if($RequestParams.comment) { $RequestParams.comment = Get-CIPPTextReplacement -Text $RequestParams.comment -TenantFilter $Tenant } else { $RequestParams | Add-Member -NotePropertyValue "no comment" -NotePropertyName comment -Force } - $Existing = New-ExoRequest -ErrorAction SilentlyContinue -tenantid $Tenant -cmdlet "Get-$($ConnectorType)connector" | Where-Object -Property Identity -EQ $RequestParams.name - if ($Existing) { - $RequestParams | Add-Member -NotePropertyValue $Existing.Identity -NotePropertyName Identity -Force - $null = New-ExoRequest -tenantid $Tenant -cmdlet "Set-$($ConnectorType)connector" -cmdParams $RequestParams -useSystemMailbox $true - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Updated transport rule for $($Tenant, $Settings)" -sev info - } else { - $null = New-ExoRequest -tenantid $Tenant -cmdlet "New-$($ConnectorType)connector" -cmdParams $RequestParams -useSystemMailbox $true - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Created transport rule for $($Tenant, $Settings)" -sev info - } - } catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to create or update Exchange Connector Rule: $ErrorMessage" -sev 'Error' - } - - } - - } - - -} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardExchangeConnectorTemplate.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardExchangeConnectorTemplate.ps1 new file mode 100644 index 000000000000..53d5b0db49ca --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardExchangeConnectorTemplate.ps1 @@ -0,0 +1,122 @@ +function Invoke-CIPPStandardExchangeConnectorTemplate { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) ExchangeConnectorTemplate + .SYNOPSIS + (Label) Exchange Connector Template + .DESCRIPTION + (Helptext) Deploy and manage Exchange connectors. + (DocsDescription) Deploy and manage Exchange connectors. + .NOTES + CAT + Templates + DISABLEDFEATURES + {"report":true,"warn":true,"remediate":false} + IMPACT + Medium Impact + ADDEDDATE + 2023-12-30 + EXECUTIVETEXT + Configures standardized Exchange connectors that control how email flows between your organization and external systems. These templates ensure secure and reliable email delivery while maintaining proper routing and security policies for business communications. + ADDEDCOMPONENT + {"type":"autoComplete","name":"exConnectorTemplate","label":"Select Exchange Connector Template","api":{"url":"/api/ListExConnectorTemplates","labelField":"name","valueField":"GUID","queryKey":"ListExConnectorTemplates"}} + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'ExConnector' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. + + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'ExConnectorTemplate'" + $AllConnectorTemplates = Get-CIPPAzDataTableEntity @Table -Filter $Filter + $TemplateIds = $Settings.exConnectorTemplate.value ?? $Settings.exConnectorTemplate + $Templates = $AllConnectorTemplates | Where-Object { $TemplateIds -contains $_.RowKey } + $Types = $Templates.direction | Sort-Object -Unique + + $ExoBulkCommands = foreach ($Type in $Types) { + @{ + CmdletInput = @{ + CmdletName = "Get-$($Type)connector" + Parameters = @{} + } + } + } + $ExistingConnectors = New-ExoBulkRequest -tenantid $Tenant -cmdletArray @($ExoBulkCommands) -ReturnWithCommand $true + + if ($Settings.remediate -eq $true) { + foreach ($Template in $Templates) { + try { + $ConnectorType = $Template.direction + $RequestParams = $Template.JSON | ConvertFrom-Json + if ($RequestParams.comment) { $RequestParams.comment = Get-CIPPTextReplacement -Text $RequestParams.comment -TenantFilter $Tenant } else { $RequestParams | Add-Member -NotePropertyValue 'no comment' -NotePropertyName comment -Force } + $Existing = $ExistingConnectors.$("Get-$($ConnectorType)connector") | Where-Object -Property Identity -EQ $RequestParams.name + if ($Existing) { + $RequestParams | Add-Member -NotePropertyValue $Existing.Identity -NotePropertyName Identity -Force + $null = New-ExoRequest -tenantid $Tenant -cmdlet "Set-$($ConnectorType)connector" -cmdParams $RequestParams -useSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Updated transport rule $($RequestParams.name)" -sev info + } else { + $null = New-ExoRequest -tenantid $Tenant -cmdlet "New-$($ConnectorType)connector" -cmdParams $RequestParams -useSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Created transport rule $($RequestParams.name)" -sev info + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to create or update Exchange Connector Rule: $ErrorMessage" -sev 'Error' + } + } + } + + if ($Settings.alert -eq $true) { + foreach ($Template in $Templates) { + $ConnectorType = $Template.direction + $RequestParams = $Template.JSON | ConvertFrom-Json + $Existing = $ExistingConnectors.$("Get-$($ConnectorType)connector") | Where-Object -Property Identity -EQ $RequestParams.name + if (-not $Existing) { + Write-StandardsAlert -message "Exchange Connector Template '$($RequestParams.name)' of type '$($ConnectorType)' is not deployed" -object $RequestParams -tenant $Tenant -standardName 'ExchangeConnectorTemplate' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Exchange Connector Template '$($RequestParams.name)' of type '$($ConnectorType)' is not deployed" -sev Warning + } else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Exchange Connector Template '$($RequestParams.name)' of type '$($ConnectorType)' is deployed" -sev Info + } + } + } + + if ($Settings.report -eq $true) { + # Extract expected connectors from templates + $ExpectedConnectors = foreach ($Template in $Templates) { + $TemplateParams = $Template.JSON | ConvertFrom-Json + [PSCustomObject]@{ + Identity = $TemplateParams.name + Type = $Template.direction + } + } + + # Get matching deployed connectors + $DeployedConnectors = foreach ($ExpectedConnector in $ExpectedConnectors) { + $ConnectorType = $ExpectedConnector.Type + $ExistingConnector = $ExistingConnectors.$("Get-$($ConnectorType)connector") | Where-Object -Property Identity -EQ $ExpectedConnector.Identity + if ($ExistingConnector) { + [PSCustomObject]@{ + Identity = $ExistingConnector.Identity + Type = $ConnectorType + } + } + } + + $CurrentValue = [PSCustomObject]@{ + Connectors = @($DeployedConnectors) + } + $ExpectedValue = [PSCustomObject]@{ + Connectors = @($ExpectedConnectors) + } + + Set-CIPPStandardsCompareField -FieldName 'standards.ExchangeConnectorTemplates' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'ExchangeConnectorTemplatesDeployed' -FieldValue ($DeployedConnectors.Identity) -StoreAs StringArray -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardExcludedfileExt.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardExcludedfileExt.ps1 index bec921cca4cf..5482feac8fa9 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardExcludedfileExt.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardExcludedfileExt.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardExcludedfileExt { CAT SharePoint Standards TAG + EXECUTIVETEXT + Blocks specific file types from being uploaded or synchronized to OneDrive, helping prevent security risks from potentially dangerous file formats. This security measure protects against malware distribution while allowing legitimate business file types to be shared safely. ADDEDCOMPONENT {"type":"textField","name":"standards.ExcludedfileExt.ext","label":"Extensions, Comma separated"} IMPACT @@ -29,9 +31,19 @@ function Invoke-CIPPStandardExcludedfileExt { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'ExcludedfileExt' + $TestResult = Test-CIPPStandardLicense -StandardName 'ExcludedfileExt' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') - $CurrentInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' -tenantid $Tenant -AsApp $true + if ($TestResult -eq $false) { + return $true + } #we're done. + + try { + $CurrentInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' -tenantid $Tenant -AsApp $true + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the ExcludedfileExt state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $Exts = ($Settings.ext -replace ' ', '') -split ',' # Add a wildcard to the extensions since thats what the SP admin center does $Exts = $Exts | ForEach-Object { if ($_ -notlike '*.*') { "*.$_" } else { $_ } } @@ -43,16 +55,11 @@ function Invoke-CIPPStandardExcludedfileExt { } } - Write-Host "MissingExclusions: $($MissingExclusions)" - - - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { # If the number of extensions in the settings does not match the number of extensions in the current settings, we need to update the settings $MissingExclusions = if ($Exts.Count -ne $CurrentInfo.excludedFileExtensionsForSyncApp.Count) { $true } else { $MissingExclusions } if ($MissingExclusions) { - Write-Host "CurrentInfo.excludedFileExtensionsForSyncApp: $($CurrentInfo.excludedFileExtensionsForSyncApp)" - Write-Host "Exts: $($Exts)" try { $body = ConvertTo-Json -InputObject @{ excludedFileExtensionsForSyncApp = @($Exts) } $null = New-GraphPostRequest -tenantid $tenant -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' -AsApp $true -Type patch -Body $body -ContentType 'application/json' @@ -77,8 +84,14 @@ function Invoke-CIPPStandardExcludedfileExt { } if ($Settings.report -eq $true) { - $state = $MissingExclusions ? (@{ ext = $CurrentInfo.excludedFileExtensionsForSyncApp -join ',' }): $true - Set-CIPPStandardsCompareField -FieldName 'standards.ExcludedfileExt' -FieldValue $state -Tenant $tenant + $CurrentValue = [PSCustomObject]@{ + Extensions = @($CurrentInfo.excludedFileExtensionsForSyncApp) + } + $ExpectedValue = [PSCustomObject]@{ + Extensions = @($Exts) + } + + Set-CIPPStandardsCompareField -FieldName 'standards.ExcludedfileExt' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'ExcludedfileExt' -FieldValue $CurrentInfo.excludedFileExtensionsForSyncApp -StoreAs json -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardExternalMFATrusted.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardExternalMFATrusted.ps1 index 99dcf906b2d8..858e214b9bdd 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardExternalMFATrusted.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardExternalMFATrusted.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardExternalMFATrusted { CAT Entra (AAD) Standards TAG + EXECUTIVETEXT + Allows external partners and vendors to use their own organization's multi-factor authentication when accessing company resources, streamlining collaboration while maintaining security standards. This reduces friction for external users while ensuring they still meet authentication requirements. ADDEDCOMPONENT {"type":"autoComplete","multiple":false,"creatable":false,"label":"Select value","name":"standards.ExternalMFATrusted.state","options":[{"label":"Enabled","value":"true"},{"label":"Disabled","value":"false"}]} IMPACT @@ -29,26 +31,27 @@ function Invoke-CIPPStandardExternalMFATrusted { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'ExternalMFATrusted' - $ExternalMFATrusted = (New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/policies/crossTenantAccessPolicy/default?$select=inboundTrust' -tenantid $Tenant) + try { + $ExternalMFATrusted = (New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/policies/crossTenantAccessPolicy/default?$select=inboundTrust' -tenantid $Tenant) + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the ExternalMFATrusted state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } # Get state value using null-coalescing operator $state = $Settings.state.value ?? $Settings.state $WantedState = if ($state -eq 'true') { $true } else { $false } $StateMessage = if ($WantedState) { 'enabled' } else { 'disabled' } - - # Input validation if (([string]::IsNullOrWhiteSpace($state) -or $state -eq 'Select a value') -and ($Settings.remediate -eq $true -or $Settings.alert -eq $true)) { Write-LogMessage -API 'Standards' -tenant $Tenant -message 'ExternalMFATrusted: Invalid state parameter set' -sev Error - Return + return } if ($Settings.remediate -eq $true) { - - Write-Host 'Remediate External MFA Trusted' if ($ExternalMFATrusted.inboundTrust.isMfaAccepted -eq $WantedState ) { Write-LogMessage -API 'Standards' -tenant $Tenant -message "External MFA Trusted is already $StateMessage." -sev Info } else { @@ -64,9 +67,16 @@ function Invoke-CIPPStandardExternalMFATrusted { } } } + if ($Settings.report -eq $true) { - $state = $ExternalMFATrusted.inboundTrust.isMfaAccepted ? $true : $ExternalMFATrusted.inboundTrust - Set-CIPPStandardsCompareField -FieldName 'standards.ExternalMFATrusted' -FieldValue $ExternalMFATrusted.inboundTrust.isMfaAccepted -TenantFilter $Tenant + $CurrentValue = @{ + isMfaAccepted = $ExternalMFATrusted.inboundTrust.isMfaAccepted + } + $ExpectedValue = @{ + isMfaAccepted = $WantedState + } + + Set-CIPPStandardsCompareField -FieldName 'standards.ExternalMFATrusted' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'ExternalMFATrusted' -FieldValue $ExternalMFATrusted.inboundTrust.isMfaAccepted -StoreAs bool -Tenant $Tenant } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardFocusedInbox.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardFocusedInbox.ps1 index d15885b99102..1eaeb003af7a 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardFocusedInbox.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardFocusedInbox.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardFocusedInbox { CAT Exchange Standards TAG + EXECUTIVETEXT + Configures the default setting for Outlook's Focused Inbox feature, which automatically sorts important emails into a focused view while placing less important emails in a separate section. This can improve employee productivity by reducing email clutter, though users can adjust this setting individually. ADDEDCOMPONENT {"type":"autoComplete","multiple":false,"label":"Select value","name":"standards.FocusedInbox.state","options":[{"label":"Enabled","value":"enabled"},{"label":"Disabled","value":"disabled"}]} IMPACT @@ -29,7 +31,11 @@ function Invoke-CIPPStandardFocusedInbox { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'FocusedInbox' + $TestResult = Test-CIPPStandardLicense -StandardName 'FocusedInbox' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. # Get state value using null-coalescing operator $state = $Settings.state.value ?? $Settings.state @@ -37,17 +43,21 @@ function Invoke-CIPPStandardFocusedInbox { # Input validation if ([string]::IsNullOrWhiteSpace($state) -or $state -eq 'Select a value') { Write-LogMessage -API 'Standards' -tenant $tenant -message 'ExternalMFATrusted: Invalid state parameter set' -sev Error - Return + return } - $CurrentState = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig').FocusedInboxOn + try { + $CurrentState = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig').FocusedInboxOn + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the FocusedInbox state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $WantedState = if ($state -eq 'enabled') { $true } else { $false } $StateIsCorrect = if ($CurrentState -eq $WantedState) { $true } else { $false } if ($Settings.remediate -eq $true) { - Write-Host 'Time to remediate' - if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -tenant $Tenant -message "Focused Inbox is already set to $state." -sev Info } else { @@ -62,7 +72,6 @@ function Invoke-CIPPStandardFocusedInbox { } if ($Settings.alert -eq $true) { - if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -tenant $Tenant -message "Focused Inbox is set to $state." -sev Info } else { @@ -72,8 +81,13 @@ function Invoke-CIPPStandardFocusedInbox { } if ($Settings.report -eq $true) { - - Set-CIPPStandardsCompareField -FieldName 'standards.FocusedInbox' -FieldValue $StateIsCorrect -TenantFilter $Tenant + $CurrentValue = @{ + FocusedInboxOn = $CurrentState + } + $ExpectedValue = @{ + FocusedInboxOn = $WantedState + } + Set-CIPPStandardsCompareField -FieldName 'standards.FocusedInbox' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'FocusedInboxCorrectState' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardFormsPhishingProtection.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardFormsPhishingProtection.ps1 index 795216b19e74..8531ad4f56ee 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardFormsPhishingProtection.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardFormsPhishingProtection.ps1 @@ -13,9 +13,11 @@ function Invoke-CIPPStandardFormsPhishingProtection { CAT Global Standards TAG - "CIS" + "CIS M365 5.0 (1.3.5)" "Security" "PhishingProtection" + EXECUTIVETEXT + Automatically scans Microsoft Forms created by employees for malicious content and phishing attempts, preventing the creation and distribution of harmful forms within the organization. This protects against both internal threats and compromised accounts that might be used to distribute malicious content. ADDEDCOMPONENT IMPACT Low Impact @@ -42,12 +44,10 @@ function Invoke-CIPPStandardFormsPhishingProtection { } catch { $ErrorMessage = Get-CippException -Exception $_ Write-LogMessage -API 'Standards' -tenant $Tenant -message "Could not get current Forms settings. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage - Return + return } if ($Settings.remediate -eq $true) { - Write-Host 'Time to remediate Forms phishing protection' - # Check if phishing protection is already enabled if ($CurrentState -eq $true) { Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Forms internal phishing protection is already enabled.' -sev Info @@ -80,7 +80,14 @@ function Invoke-CIPPStandardFormsPhishingProtection { } if ($Settings.report -eq $true) { - Set-CIPPStandardsCompareField -FieldName 'standards.FormsPhishingProtection' -FieldValue $CurrentState -Tenant $Tenant + $CurrentValue = @{ + isInOrgFormsPhishingScanEnabled = $CurrentState + } + $ExpectedValue = @{ + isInOrgFormsPhishingScanEnabled = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.FormsPhishingProtection' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'FormsPhishingProtection' -FieldValue $CurrentState -StoreAs bool -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardGlobalQuarantineNotifications.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardGlobalQuarantineNotifications.ps1 index 9f93f49538c5..549409230064 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardGlobalQuarantineNotifications.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardGlobalQuarantineNotifications.ps1 @@ -27,11 +27,21 @@ function Invoke-CIPPStandardGlobalQuarantineNotifications { .LINK https://docs.cipp.app/user-documentation/tenant/standards/list-standards #> - param ($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'GlobalQuarantineNotifications' + $TestResult = Test-CIPPStandardLicense -StandardName 'GlobalQuarantineNotifications' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. - $CurrentState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-QuarantinePolicy' -cmdParams @{ QuarantinePolicyType = 'GlobalQuarantinePolicy' } | Select-Object -ExcludeProperty '*data.type' + try { + $CurrentState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-QuarantinePolicy' -cmdParams @{ QuarantinePolicyType = 'GlobalQuarantinePolicy' } | + Select-Object -ExcludeProperty '*data.type' + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the GlobalQuarantineNotifications state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } # This might take the cake on ugly hacky stuff i've done, # but i just cant understand why the API returns the values it does and not a timespan like the equivalent powershell command does @@ -57,8 +67,6 @@ function Invoke-CIPPStandardGlobalQuarantineNotifications { } if ($Settings.remediate -eq $true) { - Write-Host 'Time to remediate' - if ($CurrentState.EndUserSpamNotificationFrequency -eq $WantedState) { Write-LogMessage -API 'Standards' -tenant $Tenant -message "Global Quarantine Notifications are already set to the desired value of $WantedState" -sev Info } else { @@ -88,8 +96,15 @@ function Invoke-CIPPStandardGlobalQuarantineNotifications { if ($Settings.report -eq $true) { $notificationInterval = @{ NotificationInterval = "$(($CurrentState.EndUserSpamNotificationFrequency).TotalHours) hours" } - $ReportState = $CurrentState.EndUserSpamNotificationFrequency -eq $WantedState ? $true : $notificationInterval - Set-CIPPStandardsCompareField -FieldName 'standards.GlobalQuarantineNotifications' -FieldValue $ReportState -Tenant $Tenant + + $CurrentValue = @{ + EndUserSpamNotificationFrequency = $CurrentState.EndUserSpamNotificationFrequency + } + $ExpectedValue = @{ + EndUserSpamNotificationFrequency = $WantedState + } + + Set-CIPPStandardsCompareField -FieldName 'standards.GlobalQuarantineNotifications' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'GlobalQuarantineNotificationsSet' -FieldValue [string]$CurrentState.EndUserSpamNotificationFrequency -StoreAs string -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardGroupTemplate.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardGroupTemplate.ps1 index 0fed0c046031..ed52d13b0b4b 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardGroupTemplate.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardGroupTemplate.ps1 @@ -20,6 +20,8 @@ function Invoke-CIPPStandardGroupTemplate { Medium Impact ADDEDDATE 2023-12-30 + EXECUTIVETEXT + Creates standardized groups with predefined settings, permissions, and membership rules. These templates ensure consistent group configurations across the organization, streamlining collaboration and access management while maintaining security standards. ADDEDCOMPONENT {"type":"autoComplete","name":"groupTemplate","label":"Select Group Template","api":{"url":"/api/ListGroupTemplates","labelField":"Displayname","altLabelField":"displayName","valueField":"GUID","queryKey":"ListGroupTemplates"}} UPDATECOMMENTBLOCK @@ -28,84 +30,191 @@ function Invoke-CIPPStandardGroupTemplate { https://docs.cipp.app/user-documentation/tenant/standards/list-standards #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'GroupTemplate' + + $existingGroups = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/groups?$top=999&$select=id,displayName,description,membershipRule' -tenantid $tenant + + $TestResult = Test-CIPPStandardLicense -StandardName 'GroupTemplate' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') -SkipLog + + $Settings.groupTemplate ? ($Settings | Add-Member -NotePropertyName 'TemplateList' -NotePropertyValue $Settings.groupTemplate) : $null + + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'GroupTemplate' and (RowKey eq '$($Settings.TemplateList.value -join "' or RowKey eq '")')" + $GroupTemplates = (Get-CIPPAzDataTableEntity @Table -Filter $Filter).JSON | ConvertFrom-Json + + if ('dynamicDistribution' -in $GroupTemplates.groupType) { + # Get dynamic distro list from exchange + $DynamicDistros = New-ExoRequest -cmdlet 'Get-DynamicDistributionGroup' -tenantid $tenant -Select 'Identity,Name,Alias,RecipientFilter,PrimarySmtpAddress' + } if ($Settings.remediate -eq $true) { #Because the list name changed from TemplateList to groupTemplate by someone :@, we'll need to set it back to TemplateList - $Settings.groupTemplate ? ($Settings | Add-Member -NotePropertyName 'TemplateList' -NotePropertyValue $Settings.groupTemplate) : $null - Write-Host "Settings: $($Settings.TemplateList | ConvertTo-Json)" - foreach ($Template in $Settings.TemplateList) { + foreach ($Template in $GroupTemplates) { + Write-Information "Processing template: $($Template.displayName)" try { - $Table = Get-CippTable -tablename 'templates' - $Filter = "PartitionKey eq 'GroupTemplate' and RowKey eq '$($Template.value)'" - $groupobj = (Get-AzDataTableEntity @Table -Filter $Filter).JSON | ConvertFrom-Json - $email = if ($groupobj.domain) { "$($groupobj.username)@$($groupobj.domain)" } else { "$($groupobj.username)@$($Tenant)" } - $CheckExististing = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/groups?$top=999' -tenantid $tenant | Where-Object -Property displayName -EQ $groupobj.displayname - $BodyToship = [pscustomobject] @{ - 'displayName' = $groupobj.Displayname - 'description' = $groupobj.Description - 'mailNickname' = $groupobj.username - mailEnabled = [bool]$false - securityEnabled = [bool]$true - } - if ($groupobj.groupType -eq 'AzureRole') { - $BodyToship | Add-Member -NotePropertyName 'isAssignableToRole' -NotePropertyValue $true - } - if ($groupobj.membershipRules) { - $BodyToship | Add-Member -NotePropertyName 'membershipRule' -NotePropertyValue ($groupobj.membershipRules) - $BodyToship | Add-Member -NotePropertyName 'groupTypes' -NotePropertyValue @('DynamicMembership') - $BodyToship | Add-Member -NotePropertyName 'membershipRuleProcessingState' -NotePropertyValue 'On' + $groupobj = $Template + + if ($Template.groupType -eq 'dynamicDistribution') { + $CheckExisting = $DynamicDistros | Where-Object { $_.Name -eq $Template.displayName } + } else { + $CheckExisting = $existingGroups | Where-Object -Property displayName -EQ $groupobj.displayName } - if (!$CheckExististing) { + + if (!$CheckExisting) { + Write-Information 'Creating group' $ActionType = 'create' - if ($groupobj.groupType -in 'Generic', 'azurerole', 'dynamic', 'Security') { - $GraphRequest = New-GraphPostRequest -uri 'https://graph.microsoft.com/beta/groups' -tenantid $tenant -type POST -body (ConvertTo-Json -InputObject $BodyToship -Depth 10) -verbose - } else { - if ($groupobj.groupType -eq 'dynamicdistribution') { - $Params = @{ - Name = $groupobj.Displayname - RecipientFilter = $groupobj.membershipRules - PrimarySmtpAddress = $email - } - $GraphRequest = New-ExoRequest -tenantid $tenant -cmdlet 'New-DynamicDistributionGroup' -cmdParams $params - } else { - $Params = @{ - Name = $groupobj.Displayname - Alias = $groupobj.username - Description = $groupobj.Description - PrimarySmtpAddress = $email - Type = $groupobj.groupType - RequireSenderAuthenticationEnabled = [bool]!$groupobj.AllowExternal - } - $GraphRequest = New-ExoRequest -tenantid $tenant -cmdlet 'New-DistributionGroup' -cmdParams $params - } + + # Check if Exchange license is required for distribution groups + if ($groupobj.groupType -in @('distribution', 'dynamicdistribution') -and !$TestResult) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Cannot create group $($groupobj.displayname) as the tenant is not licensed for Exchange." -Sev 'Error' + continue + } + + # Use the centralized New-CIPPGroup function + $Result = New-CIPPGroup -GroupObject $groupobj -TenantFilter $tenant -APIName 'Standards' -ExecutingUser 'CIPP-Standards' + + if (!$Result.Success) { + Write-Information "Failed to create group $($groupobj.displayname): $($Result.Message)" + continue } - Write-LogMessage -API 'Standards' -tenant $tenant -message "Created group $($groupobj.displayname) with id $($GraphRequest.id) " -Sev 'Info' } else { $ActionType = 'update' - if ($groupobj.groupType -in 'Generic', 'azurerole', 'dynamic') { - $GraphRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/groups/$($CheckExististing.id)" -tenantid $tenant -type PATCH -body (ConvertTo-Json -InputObject $BodyToship -Depth 10) -verbose + + # Normalize group type like New-CIPPGroup does + $NormalizedGroupType = switch -Wildcard ($groupobj.groupType.ToLower()) { + '*dynamicdistribution*' { 'DynamicDistribution'; break } + '*dynamic*' { 'Dynamic'; break } + '*generic*' { 'Generic'; break } + '*security*' { 'Security'; break } + '*azurerole*' { 'AzureRole'; break } + '*m365*' { 'M365'; break } + '*unified*' { 'M365'; break } + '*microsoft*' { 'M365'; break } + '*distribution*' { 'Distribution'; break } + '*mail*' { 'Distribution'; break } + default { $groupobj.groupType } + } + + # Handle Graph API groups (Security, Generic, AzureRole, Dynamic, M365) + if ($NormalizedGroupType -in @('Generic', 'Security', 'AzureRole', 'Dynamic', 'M365')) { + + # Compare existing group with template to determine what needs updating + $PatchBody = [PSCustomObject]@{} + $ChangesNeeded = [System.Collections.Generic.List[string]]::new() + + # Check description + if ($CheckExisting.description -ne $groupobj.description) { + $PatchBody | Add-Member -NotePropertyName 'description' -NotePropertyValue $groupobj.description + $ChangesNeeded.Add("description: '$($CheckExisting.description)' → '$($groupobj.description)'") + } + + # Handle membership rules for dynamic groups + # Only update if the template specifies this should be a dynamic group + if ($NormalizedGroupType -eq 'Dynamic' -and $groupobj.membershipRules) { + if ($CheckExisting.membershipRule -ne $groupobj.membershipRules) { + $PatchBody | Add-Member -NotePropertyName 'membershipRule' -NotePropertyValue $groupobj.membershipRules + $PatchBody | Add-Member -NotePropertyName 'membershipRuleProcessingState' -NotePropertyValue 'On' + $ChangesNeeded.Add("membershipRule: '$($CheckExisting.membershipRule)' → '$($groupobj.membershipRules)'") + } + } + + # Only patch if there are actual changes + if ($ChangesNeeded.Count -gt 0) { + $GraphRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/groups/$($CheckExisting.id)" -tenantid $tenant -type PATCH -body (ConvertTo-Json -InputObject $PatchBody -Depth 10) + Write-LogMessage -API 'Standards' -tenant $tenant -message "Updated Group '$($groupobj.displayName)' - Changes: $($ChangesNeeded -join ', ')" -Sev Info + } else { + Write-Information "Group '$($groupobj.displayName)' already matches template - no update needed" + } + } else { - if ($groupobj.groupType -eq 'dynamicdistribution') { - $Params = @{ - Name = $groupobj.Displayname - RecipientFilter = $groupobj.membershipRules - PrimarySmtpAddress = $email + # Handle Exchange Online groups (Distribution, DynamicDistribution) + if (!$TestResult) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Cannot update group $($groupobj.displayName) as the tenant is not licensed for Exchange." -Sev 'Error' + continue + } + + # Construct email address if needed + $Email = if ($groupobj.username -like '*@*') { + $groupobj.username + } else { + "$($groupobj.username)@$($tenant)" + } + + $ExoChangesNeeded = [System.Collections.Generic.List[string]]::new() + + if ($NormalizedGroupType -eq 'DynamicDistribution') { + # Compare Dynamic Distribution Group properties + $SetParams = @{ + Identity = $CheckExisting.Identity + } + + # Check recipient filter change + if ($CheckExisting.RecipientFilter -notmatch $groupobj.membershipRules) { + $SetParams.RecipientFilter = $groupobj.membershipRules + $ExoChangesNeeded.Add("RecipientFilter: '$($CheckExisting.RecipientFilter)' → '$($groupobj.membershipRules)'") + } + + # Only update if there are changes + if ($SetParams.Count -gt 1) { + $GraphRequest = New-ExoRequest -tenantid $tenant -cmdlet 'Set-DynamicDistributionGroup' -cmdParams $SetParams } - $GraphRequest = New-ExoRequest -tenantid $tenant -cmdlet 'Set-DynamicDistributionGroup' -cmdParams $params + + # Check external sender restrictions + if ($null -ne $groupobj.allowExternal) { + $currentAuthRequired = $CheckExisting.RequireSenderAuthenticationEnabled + $templateAuthRequired = [bool]!$groupobj.allowExternal + + if ($currentAuthRequired -ne $templateAuthRequired) { + $ExtParams = @{ + Identity = $CheckExisting.displayName + RequireSenderAuthenticationEnabled = $templateAuthRequired + } + $null = New-ExoRequest -tenantid $tenant -cmdlet 'Set-DynamicDistributionGroup' -cmdParams $ExtParams + $ExoChangesNeeded.Add("RequireSenderAuthenticationEnabled: '$currentAuthRequired' → '$templateAuthRequired'") + } + } + } else { - $Params = @{ - Identity = $groupobj.Displayname - Alias = $groupobj.username - Description = $groupobj.Description - PrimarySmtpAddress = $email - Type = $groupobj.groupType - RequireSenderAuthenticationEnabled = [bool]!$groupobj.AllowExternal + # Compare Regular Distribution Group properties + $SetParams = @{ + Identity = $CheckExisting.displayName + } + + # Check display name change + if ($CheckExisting.displayName -ne $groupobj.displayName) { + $SetParams.DisplayName = $groupobj.displayName + $ExoChangesNeeded.Add("DisplayName: '$($CheckExisting.displayName)' → '$($groupobj.displayName)'") + } + + # Check description change + if ($CheckExisting.description -ne $groupobj.description) { + $SetParams.Description = $groupobj.description + $ExoChangesNeeded.Add("Description: '$($CheckExisting.description)' → '$($groupobj.description)'") + } + + # Check external sender restrictions + if ($null -ne $groupobj.allowExternal) { + $currentAuthRequired = $CheckExisting.RequireSenderAuthenticationEnabled + $templateAuthRequired = [bool]!$groupobj.allowExternal + + if ($currentAuthRequired -ne $templateAuthRequired) { + $SetParams.RequireSenderAuthenticationEnabled = $templateAuthRequired + $ExoChangesNeeded.Add("RequireSenderAuthenticationEnabled: '$currentAuthRequired' → '$templateAuthRequired'") + } + } + + # Only update if there are changes + if ($SetParams.Count -gt 0) { + $GraphRequest = New-ExoRequest -tenantid $tenant -cmdlet 'Set-DistributionGroup' -cmdParams $SetParams } - $GraphRequest = New-ExoRequest -tenantid $tenant -cmdlet 'Set-DistributionGroup' -cmdParams $params + } + + # Log results + if ($ExoChangesNeeded.Count -gt 0) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Updated Exchange group '$($groupobj.displayName)' - Changes: $($ExoChangesNeeded -join ', ')" -Sev Info + } else { + Write-Information "Exchange group '$($groupobj.displayName)' already matches template - no update needed" } } - Write-LogMessage -API 'Standards' -tenant $tenant -message "Group exists $($groupobj.displayname). Updated to latest settings." -Sev 'Info' } } catch { @@ -114,4 +223,29 @@ function Invoke-CIPPStandardGroupTemplate { } } } + if ($Settings.report -eq $true) { + #check if all groups.displayName are in the existingGroups, if not $fieldvalue should contain all missing groups, else it should be true. + $MissingGroups = foreach ($Group in $GroupTemplates) { + if ($Group.groupType -eq 'dynamicDistribution') { + $CheckExisting = $DynamicDistros | Where-Object { $_.Name -eq $Group.displayName } + if (!$CheckExisting) { + $Group.displayName + } + } else { + $CheckExisting = $existingGroups | Where-Object { $_.displayName -eq $Group.displayName } + if (!$CheckExisting) { + $Group.displayName + } + } + } + + $CurrentValue = @{ + MissingGroups = $MissingGroups ? @($MissingGroups) : @() + } + $ExpectedValue = @{ + MissingGroups = @() + } + + Set-CIPPStandardsCompareField -FieldName 'standards.GroupTemplate' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardGuestInvite.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardGuestInvite.ps1 index 4cb15592d663..30891463c9ae 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardGuestInvite.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardGuestInvite.ps1 @@ -13,6 +13,11 @@ function Invoke-CIPPStandardGuestInvite { CAT Entra (AAD) Standards TAG + "CISA (MS.AAD.18.1v1)" + "EIDSCA.AP04" + "EIDSCA.AP07" + EXECUTIVETEXT + Controls who within the organization can invite external partners and vendors to access company resources, ensuring proper oversight of external access while enabling necessary business collaboration. This helps maintain security while supporting partnership and vendor relationships. ADDEDCOMPONENT {"type":"autoComplete","required":true,"multiple":false,"creatable":false,"label":"Who can send invites?","name":"standards.GuestInvite.allowInvitesFrom","options":[{"label":"Everyone","value":"everyone"},{"label":"Admins, Guest inviters and All Members","value":"adminsGuestInvitersAndAllMembers"},{"label":"Admins and Guest inviters","value":"adminsAndGuestInviters"},{"label":"None","value":"none"}]} IMPACT @@ -30,13 +35,19 @@ function Invoke-CIPPStandardGuestInvite { param($Tenant, $Settings) - $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy' -tenantid $Tenant + try { + $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the GuestInvite state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } # Input validation and value handling $AllowInvitesFromValue = $Settings.allowInvitesFrom.value ?? $Settings.allowInvitesFrom if (([string]::IsNullOrWhiteSpace($AllowInvitesFromValue) -or $AllowInvitesFromValue -eq 'Select a value') -and ($Settings.remediate -eq $true -or $Settings.alert -eq $true)) { Write-LogMessage -API 'Standards' -tenant $tenant -message 'GuestInvite: Invalid allowInvitesFrom parameter set' -sev Error - Return + return } $StateIsCorrect = ($CurrentState.allowInvitesFrom -eq $AllowInvitesFromValue) @@ -75,8 +86,14 @@ function Invoke-CIPPStandardGuestInvite { } if ($Settings.report -eq $true) { - $state = $StateIsCorrect ? $true : ($CurrentState | Select-Object allowInvitesFrom) - Set-CIPPStandardsCompareField -FieldName 'standards.GuestInvite' -FieldValue $state -TenantFilter $Tenant + $CurrentValue = @{ + allowInvitesFrom = $CurrentState.allowInvitesFrom + } + $ExpectedValue = @{ + allowInvitesFrom = $AllowInvitesFromValue + } + + Set-CIPPStandardsCompareField -FieldName 'standards.GuestInvite' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'GuestInvite' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardIntuneComplianceSettings.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardIntuneComplianceSettings.ps1 index c1d0bdfe93ca..8d785d6de7d7 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardIntuneComplianceSettings.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardIntuneComplianceSettings.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardIntuneComplianceSettings { CAT Intune Standards TAG + EXECUTIVETEXT + Configures how the system treats devices that don't have specific compliance policies and sets how often devices must check in to maintain their compliance status. This ensures proper security oversight of all corporate devices and maintains current compliance information. ADDEDCOMPONENT {"type":"autoComplete","required":true,"multiple":false,"creatable":false,"name":"standards.IntuneComplianceSettings.secureByDefault","label":"Mark devices with no compliance policy as","options":[{"label":"Compliant","value":"false"},{"label":"Non-Compliant","value":"true"}]} {"type":"number","name":"standards.IntuneComplianceSettings.deviceComplianceCheckinThresholdDays","label":"Compliance status validity period (days)"} @@ -30,8 +32,20 @@ function Invoke-CIPPStandardIntuneComplianceSettings { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'IntuneComplianceSettings' -TenantFilter $Tenant -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') - $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/deviceManagement/settings' -tenantid $Tenant | Select-Object secureByDefault, deviceComplianceCheckinThresholdDays + if ($TestResult -eq $false) { + return $true + } #we're done. + + try { + $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/deviceManagement/settings' -tenantid $Tenant | + Select-Object secureByDefault, deviceComplianceCheckinThresholdDays + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the intuneDeviceReg state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } if ($null -eq $Settings.deviceComplianceCheckinThresholdDays) { $Settings.deviceComplianceCheckinThresholdDays = $CurrentState.deviceComplianceCheckinThresholdDays } $SecureByDefault = [bool]($Settings.secureByDefault.value ? $Settings.secureByDefault.value : $Settings.secureByDefault) @@ -77,8 +91,16 @@ function Invoke-CIPPStandardIntuneComplianceSettings { } if ($Settings.report -eq $true) { - $state = $StateIsCorrect ? $true : $CurrentState - Set-CIPPStandardsCompareField -FieldName 'standards.IntuneComplianceSettings' -FieldValue $state -Tenant $Tenant + $CurrentValue = @{ + secureByDefault = $CurrentState.secureByDefault + deviceComplianceCheckinThresholdDays = $CurrentState.deviceComplianceCheckinThresholdDays + } + $ExpectedValue = @{ + secureByDefault = $SecureByDefault + deviceComplianceCheckinThresholdDays = $DeviceComplianceCheckinThresholdDays + } + + Set-CIPPStandardsCompareField -FieldName 'standards.IntuneComplianceSettings' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'IntuneComplianceSettings' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardIntuneTemplate.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardIntuneTemplate.ps1 index ac90ae92bc35..50dc65afc821 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardIntuneTemplate.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardIntuneTemplate.ps1 @@ -20,104 +20,125 @@ function Invoke-CIPPStandardIntuneTemplate { High Impact ADDEDDATE 2023-12-30 + EXECUTIVETEXT + Deploys standardized device management configurations across all corporate devices, ensuring consistent security policies, application settings, and compliance requirements. This template-based approach streamlines device management while maintaining uniform security standards across the organization. ADDEDCOMPONENT - {"type":"autoComplete","multiple":false,"creatable":false,"name":"TemplateList","label":"Select Intune Template","api":{"url":"/api/ListIntuneTemplates","labelField":"Displayname","valueField":"GUID","queryKey":"languages"}} + {"type":"autoComplete","multiple":false,"creatable":false,"required":false,"name":"TemplateList","label":"Select Intune Template","api":{"queryKey":"ListIntuneTemplates-autcomplete","url":"/api/ListIntuneTemplates","labelField":"Displayname","valueField":"GUID","showRefresh":true,"templateView":{"title":"Intune Template","property":"RAWJson","type":"intune"}}} + {"type":"autoComplete","multiple":false,"required":false,"creatable":false,"name":"TemplateList-Tags","label":"Or select a package of Intune Templates","api":{"queryKey":"ListIntuneTemplates-tag-autcomplete","url":"/api/ListIntuneTemplates?mode=Tag","labelField":"label","valueField":"value","addedField":{"templates":"templates"}}} {"name":"AssignTo","label":"Who should this template be assigned to?","type":"radio","options":[{"label":"Do not assign","value":"On"},{"label":"Assign to all users","value":"allLicensedUsers"},{"label":"Assign to all devices","value":"AllDevices"},{"label":"Assign to all users and devices","value":"AllDevicesAndUsers"},{"label":"Assign to Custom Group","value":"customGroup"}]} {"type":"textField","required":false,"name":"customGroup","label":"Enter the custom group name if you selected 'Assign to Custom Group'. Wildcards are allowed."} - {"name":"excludeGroup","label":"Exclude Groups","type":"textField","required":false,"helpText":"Enter the group name to exclude from the assignment. Wildcards are allowed."} + {"name":"excludeGroup","label":"Exclude Groups","type":"textField","required":false,"helpText":"Enter the group name(s) to exclude from the assignment. Wildcards are allowed. Multiple group names are comma-seperated."} + {"type":"textField","required":false,"name":"assignmentFilter","label":"Assignment Filter Name (Optional)","helpText":"Enter the assignment filter name to apply to this policy assignment. Wildcards are allowed."} + {"name":"assignmentFilterType","label":"Assignment Filter Mode (Optional)","type":"radio","required":false,"helpText":"Choose whether to include or exclude devices matching the filter. Only applies if you specified a filter name above. Defaults to Include if not specified.","options":[{"label":"Include - Assign to devices matching the filter","value":"include"},{"label":"Exclude - Assign to devices NOT matching the filter","value":"exclude"}]} UPDATECOMMENTBLOCK Run the Tools\Update-StandardsComments.ps1 script to update this comment block .LINK https://docs.cipp.app/user-documentation/tenant/standards/list-standards #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'intuneTemplate' + $TestResult = Test-CIPPStandardLicense -StandardName 'IntuneTemplate_general' -TenantFilter $Tenant -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') + + if ($TestResult -eq $false) { + #writing to each item that the license is not present. + foreach ($Template in $settings.TemplateList) { + Set-CIPPStandardsCompareField -FieldName "standards.IntuneTemplate.$($Template.value)" -FieldValue 'This tenant does not have the required license for this standard.' -Tenant $Tenant + } + return $true + } #we're done. $Table = Get-CippTable -tablename 'templates' $Filter = "PartitionKey eq 'IntuneTemplate'" $Request = @{body = $null } - Write-Host "IntuneTemplate: Starting process. Settings are: $($Settings | ConvertTo-Json -Compress)" $CompareList = foreach ($Template in $Settings) { - Write-Host "IntuneTemplate: $($Template.TemplateList.value) - Trying to find template" $Request.body = (Get-CIPPAzDataTableEntity @Table -Filter $Filter | Where-Object -Property RowKey -Like "$($Template.TemplateList.value)*").JSON | ConvertFrom-Json -ErrorAction SilentlyContinue if ($null -eq $Request.body) { Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to find template $($Template.TemplateList.value). Has this Intune Template been deleted?" -sev 'Error' continue } - Write-Host "IntuneTemplate: $($Template.TemplateList.value) - Got template." $displayname = $request.body.Displayname $description = $request.body.Description $RawJSON = $Request.body.RawJSON try { - Write-Host "IntuneTemplate: $($Template.TemplateList.value) - Grabbing existing Policy" $ExistingPolicy = Get-CIPPIntunePolicy -tenantFilter $Tenant -DisplayName $displayname -TemplateType $Request.body.Type } catch { - Write-Host "IntuneTemplate: $($Template.TemplateList.value) - Failed to get existing." } if ($ExistingPolicy) { try { - Write-Host "IntuneTemplate: $($Template.TemplateList.value) - Found existing policy." $RawJSON = Get-CIPPTextReplacement -Text $RawJSON -TenantFilter $Tenant - Write-Host "IntuneTemplate: $($Template.TemplateList.value) - Grabbing JSON existing." $JSONExistingPolicy = $ExistingPolicy.cippconfiguration | ConvertFrom-Json - Write-Host "IntuneTemplate: $($Template.TemplateList.value) - Got existing JSON. Converting RawJSON to Template" $JSONTemplate = $RawJSON | ConvertFrom-Json - Write-Host "IntuneTemplate: $($Template.TemplateList.value) - Converted RawJSON to Template." - Write-Host "IntuneTemplate: $($Template.TemplateList.value) - Comparing JSON." $Compare = Compare-CIPPIntuneObject -ReferenceObject $JSONTemplate -DifferenceObject $JSONExistingPolicy -compareType $Request.body.Type -ErrorAction SilentlyContinue } catch { - Write-Host "The compare failed. The error was: $($_.Exception.Message)" } - Write-Host "IntuneTemplate: $($Template.TemplateList.value) - Compared JSON: $($Compare | ConvertTo-Json -Compress)" } else { - Write-Host "IntuneTemplate: $($Template.TemplateList.value) - No existing policy found." + $compare = [pscustomobject]@{ + MatchFailed = $true + Difference = 'This policy does not exist in Intune.' + } } if ($Compare) { - Write-Host "IntuneTemplate: $($Template.TemplateList.value) - Compare found differences." [PSCustomObject]@{ - MatchFailed = $true - displayname = $displayname - description = $description - compare = $Compare - rawJSON = $RawJSON - body = $Request.body - assignTo = $Template.AssignTo - excludeGroup = $Template.excludeGroup - remediate = $Template.remediate - alert = $Template.alert - report = $Template.report - existingPolicyId = $ExistingPolicy.id - templateId = $Template.TemplateList.value - customGroup = $Template.customGroup + MatchFailed = $true + displayname = $displayname + description = $description + compare = $Compare + rawJSON = $RawJSON + body = $Request.body + assignTo = $Template.AssignTo + excludeGroup = $Template.excludeGroup + remediate = $Template.remediate + alert = $Template.alert + report = $Template.report + existingPolicyId = $ExistingPolicy.id + templateId = $Template.TemplateList.value + customGroup = $Template.customGroup + assignmentFilter = $Template.assignmentFilter + assignmentFilterType = $Template.assignmentFilterType } } else { - Write-Host "IntuneTemplate: $($Template.TemplateList.value) - No differences found." [PSCustomObject]@{ - MatchFailed = $false - displayname = $displayname - description = $description - compare = $false - rawJSON = $RawJSON - body = $Request.body - assignTo = $Template.AssignTo - excludeGroup = $Template.excludeGroup - remediate = $Template.remediate - alert = $Template.alert - report = $Template.report - existingPolicyId = $ExistingPolicy.id - templateId = $Template.TemplateList.value - customGroup = $Template.customGroup + MatchFailed = $false + displayname = $displayname + description = $description + compare = $false + rawJSON = $RawJSON + body = $Request.body + assignTo = $Template.AssignTo + excludeGroup = $Template.excludeGroup + remediate = $Template.remediate + alert = $Template.alert + report = $Template.report + existingPolicyId = $ExistingPolicy.id + templateId = $Template.TemplateList.value + customGroup = $Template.customGroup + assignmentFilter = $Template.assignmentFilter + assignmentFilterType = $Template.assignmentFilterType } } } - If ($true -in $Settings.remediate) { - Write-Host 'starting template deploy' + if ($true -in $Settings.remediate) { foreach ($TemplateFile in $CompareList | Where-Object -Property remediate -EQ $true) { - Write-Host "working on template deploy: $($TemplateFile.displayname)" try { $TemplateFile.customGroup ? ($TemplateFile.AssignTo = $TemplateFile.customGroup) : $null - Set-CIPPIntunePolicy -TemplateType $TemplateFile.body.Type -Description $TemplateFile.description -DisplayName $TemplateFile.displayname -RawJSON $templateFile.rawJSON -AssignTo $TemplateFile.AssignTo -ExcludeGroup $TemplateFile.excludeGroup -tenantFilter $Tenant + + $PolicyParams = @{ + TemplateType = $TemplateFile.body.Type + Description = $TemplateFile.description + DisplayName = $TemplateFile.displayname + RawJSON = $templateFile.rawJSON + AssignTo = $TemplateFile.AssignTo + ExcludeGroup = $TemplateFile.excludeGroup + tenantFilter = $Tenant + } + + # Add assignment filter if specified + if ($TemplateFile.assignmentFilter) { + $PolicyParams.AssignmentFilterName = $TemplateFile.assignmentFilter + $PolicyParams.AssignmentFilterType = $TemplateFile.assignmentFilterType ?? 'include' + } + + Set-CIPPIntunePolicy @PolicyParams } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to create or update Intune Template $($TemplateFile.displayname), Error: $ErrorMessage" -sev 'Error' @@ -128,7 +149,6 @@ function Invoke-CIPPStandardIntuneTemplate { if ($true -in $Settings.alert) { foreach ($Template in $CompareList | Where-Object -Property alert -EQ $true) { - Write-Host "working on template alert: $($Template.displayname)" $AlertObj = $Template | Select-Object -Property displayname, description, compare, assignTo, excludeGroup, existingPolicyId if ($Template.compare) { Write-StandardsAlert -message "Template $($Template.displayname) does not match the expected configuration." -object $AlertObj -tenant $Tenant -standardName 'IntuneTemplate' -standardId $Settings.templateId @@ -145,12 +165,20 @@ function Invoke-CIPPStandardIntuneTemplate { } if ($true -in $Settings.report) { - foreach ($Template in $CompareList | Where-Object -Property report -EQ $true) { - Write-Host "working on template report: $($Template.displayname)" + foreach ($Template in $CompareList | Where-Object { $_.report -eq $true -or $_.remediate -eq $true }) { $id = $Template.templateId - $CompareObj = $Template.compare - $state = $CompareObj ? $CompareObj : $true - Set-CIPPStandardsCompareField -FieldName "standards.IntuneTemplate.$id" -FieldValue $state -TenantFilter $Tenant + + $CurrentValue = @{ + displayName = $Template.displayname + description = $Template.description + isCompliant = if ($Template.compare) { $false } else { $true } + } + $ExpectedValue = @{ + displayName = $Template.displayname + description = $Template.description + isCompliant = $true + } + Set-CIPPStandardsCompareField -FieldName "standards.IntuneTemplate.$id" -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant } #Add-CIPPBPAField -FieldName "policy-$id" -FieldValue $Compare -StoreAs bool -Tenant $tenant } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardIntuneWindowsDiagnostic.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardIntuneWindowsDiagnostic.ps1 new file mode 100644 index 000000000000..edea119a83d2 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardIntuneWindowsDiagnostic.ps1 @@ -0,0 +1,102 @@ +Function Invoke-CIPPStandardIntuneWindowsDiagnostic { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) IntuneWindowsDiagnostic + .SYNOPSIS + (Label) Set Intune Windows diagnostic data settings + .DESCRIPTION + (Helptext) **Some features require Windows E3 or equivalent licenses** Configures Windows diagnostic data settings for Intune. Enables features like Windows update reports, device readiness reports, and driver update reports. More information can be found in [Microsoft's documentation.](https://go.microsoft.com/fwlink/?linkid=2204384) + (DocsDescription) Enables Windows diagnostic data in processor configuration for your Intune tenant. This setting is required for several Intune features including Windows feature update device readiness reports, compatibility risk reports, driver update reports, and update policy alerts. When enabled, your organization becomes the controller of Windows diagnostic data collected from managed devices, allowing Intune to use this data for reporting and update management features. More information can be found in [Microsoft's documentation.](https://go.microsoft.com/fwlink/?linkid=2204384) + .NOTES + CAT + Intune Standards + TAG + EXECUTIVETEXT + Enables access to Windows Update reporting and compatibility analysis features in Intune by allowing the use of Windows diagnostic data. This unlocks important capabilities like device readiness reports for feature updates, driver update reports, and proactive alerts for update failures, helping IT teams plan and monitor Windows updates more effectively across the organization. + ADDEDCOMPONENT + {"type":"switch","name":"standards.IntuneWindowsDiagnostic.areDataProcessorServiceForWindowsFeaturesEnabled","label":"Enable Windows data","defaultValue":false} + {"type":"switch","name":"standards.IntuneWindowsDiagnostic.hasValidWindowsLicense","label":"Confirm ownership of the required Windows E3 or equivalent licenses (Enables Windows update app and driver compatibility reports)","defaultValue":false} + IMPACT + Low Impact + ADDEDDATE + 2026-01-27 + POWERSHELLEQUIVALENT + Graph API + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + [CmdletBinding()] + param($Tenant, $Settings) + + $TestResult = Test-CIPPStandardLicense -StandardName 'IntuneWindowsDiagnostic' -TenantFilter $Tenant -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') + + if ($TestResult -eq $false) { + return $true + } + + # Example diagnostic logic for Intune Windows devices + try { + + $CurrentInfo = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/deviceManagement/dataProcessorServiceForWindowsFeaturesOnboarding" -tenantid $Tenant + $CurrentValue = $CurrentInfo | Select-Object -Property areDataProcessorServiceForWindowsFeaturesEnabled, hasValidWindowsLicense + + $StateIsCorrect = ($CurrentInfo.areDataProcessorServiceForWindowsFeaturesEnabled -eq $Settings.areDataProcessorServiceForWindowsFeaturesEnabled) -and ($CurrentInfo.hasValidWindowsLicense -eq $Settings.hasValidWindowsLicense) + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to retrieve Windows diagnostic data settings for Intune." -Sev 'Error' -LogData $ErrorMessage + throw "Failed to retrieve current Windows diagnostic data settings for Intune. Error: $($ErrorMessage)" + } + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Windows Diagnostic for Intune is already in the desired state." -sev Info + } + else { + $Body = [pscustomobject]@{ + value = @{ + areDataProcessorServiceForWindowsFeaturesEnabled = $Settings.areDataProcessorServiceForWindowsFeaturesEnabled + hasValidWindowsLicense = $Settings.hasValidWindowsLicense + } + } | ConvertTo-Json -Depth 10 -Compress + + try { + $null = New-GraphPostRequest -tenantid $tenant -Uri 'https://graph.microsoft.com/beta/deviceManagement/dataProcessorServiceForWindowsFeaturesOnboarding' -Type PATCH -Body $body -ContentType 'application/json' -AsApp $true + $CurrentInfo.areDataProcessorServiceForWindowsFeaturesEnabled = $Settings.areDataProcessorServiceForWindowsFeaturesEnabled + $CurrentInfo.hasValidWindowsLicense = $Settings.hasValidWindowsLicense + $StateIsCorrect = $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully updated Windows Diagnostic settings for Intune." -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to update Windows Diagnostic settings for Intune. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Windows Diagnostic for Intune is in the desired state." -sev Info + } else { + Write-StandardsAlert -message "Windows Diagnostic for Intune is not in the desired state." -object $CurrentValue -tenant $Tenant -standardName 'IntuneWindowsDiagnostic' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Windows Diagnostic for Intune is not in the desired state." -sev Info + } + + } + + if ($Settings.report -eq $true) { + $CurrentValue = @{ + areDataProcessorServiceForWindowsFeaturesEnabled = $CurrentInfo.areDataProcessorServiceForWindowsFeaturesEnabled + hasValidWindowsLicense = $CurrentInfo.hasValidWindowsLicense + } + $ExpectedValue = @{ + areDataProcessorServiceForWindowsFeaturesEnabled = $Settings.areDataProcessorServiceForWindowsFeaturesEnabled + hasValidWindowsLicense = $Settings.hasValidWindowsLicense + } + Set-CIPPStandardsCompareField -FieldName 'standards.IntuneWindowsDiagnostic' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'IntuneWindowsDiagnostic' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardLegacyEmailReportAddins.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardLegacyEmailReportAddins.ps1 new file mode 100644 index 000000000000..899677c80a05 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardLegacyEmailReportAddins.ps1 @@ -0,0 +1,154 @@ +function Invoke-CIPPStandardLegacyEmailReportAddins { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) LegacyEmailReportAddins + .SYNOPSIS + (Label) Remove legacy Outlook Report add-ins + .DESCRIPTION + (Helptext) Removes legacy Report Phishing and Report Message Outlook add-ins. + (DocsDescription) Removes legacy Report Phishing and Report Message Outlook add-ins. + .NOTES + CAT + Exchange Standards + TAG + EXECUTIVETEXT + The legacy Report Phishing and Report Message Outlook add-ins are security issues with the add-in which makes them unsafe for the organization. + IMPACT + Low Impact + ADDEDDATE + 2025-08-26 + POWERSHELLEQUIVALENT + None + RECOMMENDEDBY + "Microsoft" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + # Define the legacy add-ins to remove + $LegacyAddins = @( + @{ + AssetId = 'WA200002469' + ProductId = '3f32746a-0586-4c54-b8ce-d3b611c5b6c8' + Name = 'Report Phishing' + }, + @{ + AssetId = 'WA104381180' + ProductId = '6046742c-3aee-485e-a4ac-92ab7199db2e' + Name = 'Report Message' + } + ) + + try { + $CurrentApps = New-GraphGetRequest -scope 'https://admin.microsoft.com/.default' -TenantID $Tenant -Uri 'https://admin.microsoft.com/fd/addins/api/apps?workloads=AzureActiveDirectory,WXPO,MetaOS,Teams,SharePoint' + $InstalledApps = $CurrentApps.apps + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the installed add-ins for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + # Check which legacy add-ins are currently installed + $AddinsToRemove = [System.Collections.Generic.List[PSCustomObject]]::new() + $InstalledLegacyAddins = [System.Collections.Generic.List[string]]::new() + + foreach ($LegacyAddin in $LegacyAddins) { + $InstalledAddin = $InstalledApps | Where-Object { $_.assetId -eq $LegacyAddin.AssetId -or $_.productId -eq $LegacyAddin.ProductId } + if ($InstalledAddin) { + $InstalledLegacyAddins.Add($LegacyAddin.Name) + $AddinsToRemove.Add([PSCustomObject]@{ + AppsourceAssetID = $LegacyAddin.AssetId + ProductID = $LegacyAddin.ProductId + Command = 'UNDEPLOY' + Workload = 'WXPO' + }) + } + } + + $StateIsCorrect = ($AddinsToRemove.Count -eq 0) + $RemediationPerformed = $false + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Legacy Email Report Add-ins are already removed.' -Sev Info + } else { + foreach ($AddinToRemove in $AddinsToRemove) { + try { + $Body = @{ + Locale = 'en-US' + WorkloadManagementList = @($AddinToRemove) + } | ConvertTo-Json -Depth 10 -Compress + + $GraphRequest = @{ + tenantID = $Tenant + uri = 'https://admin.microsoft.com/fd/addins/api/apps' + scope = 'https://admin.microsoft.com/.default' + AsApp = $false + Type = 'POST' + ContentType = 'application/json; charset=utf-8' + Body = $Body + } + + $Response = New-GraphPostRequest @GraphRequest + $AddinName = ($LegacyAddins | Where-Object { $_.AssetId -eq $AddinToRemove.AppsourceAssetID }).Name + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Successfully initiated removal of $AddinName add-in" -Sev Info + $RemediationPerformed = $true + } catch { + $AddinName = ($LegacyAddins | Where-Object { $_.AssetId -eq $AddinToRemove.AppsourceAssetID }).Name + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Failed to remove $AddinName add-in" -Sev Error -LogData $_ + } + } + } + } + + # If we performed remediation and need to report/alert, get fresh state + if ($RemediationPerformed -and ($Settings.alert -eq $true -or $Settings.report -eq $true)) { + try { + $FreshApps = New-GraphGetRequest -scope 'https://admin.microsoft.com/.default' -TenantID $Tenant -Uri 'https://admin.microsoft.com/fd/addins/api/apps?workloads=AzureActiveDirectory,WXPO,MetaOS,Teams,SharePoint' + $FreshInstalledApps = $FreshApps.apps + + # Check fresh state + $FreshInstalledLegacyAddins = [System.Collections.Generic.List[string]]::new() + foreach ($LegacyAddin in $LegacyAddins) { + $InstalledAddin = $FreshInstalledApps | Where-Object { $_.assetId -eq $LegacyAddin.AssetId -or $_.productId -eq $LegacyAddin.ProductId } + if ($InstalledAddin) { + $FreshInstalledLegacyAddins.Add($LegacyAddin.Name) + } + } + + # Use fresh state for reporting/alerting + $StateIsCorrect = ($FreshInstalledLegacyAddins.Count -eq 0) + $InstalledLegacyAddins = $FreshInstalledLegacyAddins + } catch { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get fresh add-in state after remediation for $Tenant" -Sev Warning + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Legacy Email Report Add-ins are not installed.' -sev Info + } else { + $InstalledAddinsText = ($InstalledLegacyAddins -join ', ') + Write-StandardsAlert -message "Legacy Email Report Add-ins are still installed: $InstalledAddinsText" -tenant $tenant -standardName 'LegacyEmailReportAddins' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message "Legacy Email Report Add-ins are still installed: $InstalledAddinsText" -sev Alert + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = @{ + InstalledLegacyAddins = $InstalledLegacyAddins + } + $ExpectedValue = @{ + InstalledLegacyAddins = @() + } + + Set-CIPPStandardsCompareField -FieldName 'standards.LegacyEmailReportAddins' -Tenant $Tenant -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue + Add-CIPPBPAField -FieldName 'LegacyEmailReportAddins' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardLegacyMFACleanup.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardLegacyMFACleanup.ps1 index a65075bccb2a..f443fd34201f 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardLegacyMFACleanup.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardLegacyMFACleanup.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardLegacyMFACleanup { CAT Entra (AAD) Standards TAG + EXECUTIVETEXT + This standard is currently non-functional and should be disabled. It was previously designed to remove outdated multi-factor authentication configurations in favor of modern security policies. ADDEDCOMPONENT IMPACT Medium Impact diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMDMEnrollmentDuringRegistration.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMDMEnrollmentDuringRegistration.ps1 new file mode 100644 index 000000000000..373be8b68738 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMDMEnrollmentDuringRegistration.ps1 @@ -0,0 +1,94 @@ +function Invoke-CIPPStandardMDMEnrollmentDuringRegistration { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) MDMEnrollmentDuringRegistration + .SYNOPSIS + (Label) Configure MDM enrollment when adding work or school account + .DESCRIPTION + (Helptext) Controls the "Allow my organization to manage my device" prompt when adding a work or school account on Windows. This setting determines whether automatic MDM enrollment occurs during account registration. + (DocsDescription) Controls whether Windows shows the "Allow my organization to manage my device" prompt when users add a work or school account. When set to disabled, this setting prevents automatic MDM enrollment during the account registration flow, separating account registration from device enrollment. This is useful for environments where you want to allow users to add work accounts without triggering MDM enrollment. + .NOTES + CAT + Intune Standards + TAG + EXECUTIVETEXT + Controls automatic device management enrollment during work account setup. When disabled, users can add work accounts to their Windows devices without the prompt asking to allow organizational device management, preventing unintended MDM enrollments on personal or BYOD devices. + ADDEDCOMPONENT + {"type":"switch","name":"standards.MDMEnrollmentDuringRegistration.disableEnrollment","label":"Disable MDM enrollment during registration"} + IMPACT + Medium Impact + ADDEDDATE + 2025-12-15 + POWERSHELLEQUIVALENT + Graph API PATCH to mobileDeviceManagementPolicies + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'MDMEnrollmentDuringRegistration' -TenantFilter $Tenant -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') + + if ($TestResult -eq $false) { + return $true + } + + try { + $CurrentInfo = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/mobileDeviceManagementPolicies/0000000a-0000-0000-c000-000000000000' -tenantid $Tenant + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get MDM enrollment during registration state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } + + # Get the current state - if the property doesn't exist, treat as false (default behavior) + $CurrentState = [bool]$CurrentInfo.isMdmEnrollmentDuringRegistrationDisabled + $DesiredState = [bool]$Settings.disableEnrollment + $StateIsCorrect = $CurrentState -eq $DesiredState + $stateText = $DesiredState ? 'disabled' : 'enabled' + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "MDM enrollment during registration is already $stateText" -sev Info + } else { + $GraphParam = @{ + tenantid = $Tenant + Uri = 'https://graph.microsoft.com/beta/policies/mobileDeviceManagementPolicies/0000000a-0000-0000-c000-000000000000' + type = 'PATCH' + Body = (@{'isMdmEnrollmentDuringRegistrationDisabled' = $DesiredState } | ConvertTo-Json) + } + + try { + New-GraphPostRequest @GraphParam + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully $stateText MDM enrollment during registration" -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to configure MDM enrollment during registration. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "MDM enrollment during registration is $stateText as configured" -sev Info + } else { + Write-StandardsAlert -message "MDM enrollment during registration is not $stateText" -object @{isMdmEnrollmentDuringRegistrationDisabled = $CurrentState; desiredState = $DesiredState } -tenant $tenant -standardName 'MDMEnrollmentDuringRegistration' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message "MDM enrollment during registration is not $stateText" -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = @{ + isMdmEnrollmentDuringRegistrationDisabled = $CurrentState + } + $ExpectedValue = @{ + isMdmEnrollmentDuringRegistrationDisabled = $DesiredState + } + Set-CIPPStandardsCompareField -FieldName 'standards.MDMEnrollmentDuringRegistration' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'MDMEnrollmentDuringRegistration' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMDMScope.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMDMScope.ps1 index e49351739558..7a02236ff7e9 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMDMScope.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMDMScope.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardMDMScope { CAT Intune Standards TAG + EXECUTIVETEXT + Defines which users can enroll their devices in mobile device management, controlling access to corporate resources and applications. This setting determines the scope of device management coverage and ensures appropriate users have access to necessary business tools. ADDEDCOMPONENT {"name":"appliesTo","label":"MDM User Scope?","type":"radio","options":[{"label":"All","value":"all"},{"label":"None","value":"none"},{"label":"Custom Group","value":"selected"}]} {"type":"textField","name":"standards.MDMScope.customGroup","label":"Custom Group Name","required":false} @@ -30,14 +32,25 @@ function Invoke-CIPPStandardMDMScope { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'MDMScope' -TenantFilter $Tenant -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') - $CurrentInfo = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/mobileDeviceManagementPolicies/0000000a-0000-0000-c000-000000000000?$expand=includedGroups' -tenantid $Tenant + if ($TestResult -eq $false) { + return $true + } #we're done. + + try { + $CurrentInfo = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/mobileDeviceManagementPolicies/0000000a-0000-0000-c000-000000000000?$expand=includedGroups' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the MDM Scope state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $StateIsCorrect = ($CurrentInfo.termsOfUseUrl -eq 'https://portal.manage.microsoft.com/TermsofUse.aspx') -and - ($CurrentInfo.discoveryUrl -eq 'https://enrollment.manage.microsoft.com/enrollmentserver/discovery.svc') -and - ($CurrentInfo.complianceUrl -eq 'https://portal.manage.microsoft.com/?portalAction=Compliance') -and - ($CurrentInfo.appliesTo -eq $Settings.appliesTo) -and - ($Settings.appliesTo -ne 'selected' -or ($CurrentInfo.includedGroups.displayName -contains $Settings.customGroup)) + ($CurrentInfo.discoveryUrl -eq 'https://enrollment.manage.microsoft.com/enrollmentserver/discovery.svc') -and + ($CurrentInfo.complianceUrl -eq 'https://portal.manage.microsoft.com/?portalAction=Compliance') -and + ($CurrentInfo.appliesTo -eq $Settings.appliesTo) -and + ($Settings.appliesTo -ne 'selected' -or ($CurrentInfo.includedGroups.displayName -contains $Settings.customGroup)) $CompareField = [PSCustomObject]@{ termsOfUseUrl = $CurrentInfo.termsOfUseUrl @@ -47,7 +60,7 @@ function Invoke-CIPPStandardMDMScope { customGroup = $CurrentInfo.includedGroups.displayName } - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -tenant $tenant -message 'MDM Scope already correctly configured' -sev Info } else { @@ -129,8 +142,15 @@ function Invoke-CIPPStandardMDMScope { } if ($Settings.report -eq $true) { - $FieldValue = $StateIsCorrect ? $true : $CompareField - Set-CIPPStandardsCompareField -FieldName 'standards.MDMScope' -FieldValue $FieldValue -TenantFilter $Tenant + $CurrentValue = @{ + appliesTo = $CurrentInfo.appliesTo + customGroup = $CurrentInfo.includedGroups.displayName ?? '' + } + $ExpectedValue = @{ + appliesTo = $Settings.appliesTo + customGroup = $Settings.customGroup ?? '' + } + Set-CIPPStandardsCompareField -FieldName 'standards.MDMScope' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'MDMScope' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMailContacts.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMailContacts.ps1 index 55655ccc1d8f..e804e605ce61 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMailContacts.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMailContacts.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardMailContacts { CAT Global Standards TAG + EXECUTIVETEXT + Establishes designated contact email addresses for receiving important Microsoft 365 subscription updates and notifications. This ensures proper communication channels are maintained for general, security, marketing, and technical matters, improving organizational responsiveness to critical system updates. ADDEDCOMPONENT {"type":"textField","name":"standards.MailContacts.GeneralContact","label":"General Contact","required":false} {"type":"textField","name":"standards.MailContacts.SecurityContact","label":"Security Contact","required":false} @@ -32,18 +34,24 @@ function Invoke-CIPPStandardMailContacts { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'MailContacts' - $TenantID = (New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/organization' -tenantid $tenant) - $CurrentInfo = New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/organization/$($TenantID.id)" -tenantid $Tenant + try { + $TenantID = (New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/organization' -tenantid $tenant) + $CurrentInfo = New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/organization/$($TenantID.id)" -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the MailContacts state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $contacts = $settings $TechAndSecurityContacts = @($Contacts.SecurityContact, $Contacts.TechContact) + $state = $CurrentInfo.marketingNotificationEmails -eq $Contacts.MarketingContact -and ` + ($CurrentInfo.securityComplianceNotificationMails -in $TechAndSecurityContacts -or + $CurrentInfo.technicalNotificationMails -in $TechAndSecurityContacts) -and ` + $CurrentInfo.privacyProfile.contactEmail -eq $Contacts.GeneralContact + if ($Settings.remediate -eq $true) { - $state = $CurrentInfo.marketingNotificationEmails -eq $Contacts.MarketingContact -and ` - ($CurrentInfo.securityComplianceNotificationMails -in $TechAndSecurityContacts -or - $CurrentInfo.technicalNotificationMails -in $TechAndSecurityContacts) -and ` - $CurrentInfo.privacyProfile.contactEmail -eq $Contacts.GeneralContact if ($state) { Write-LogMessage -API 'Standards' -tenant $tenant -message 'Contact emails are already set.' -sev Info } else { @@ -55,7 +63,6 @@ function Invoke-CIPPStandardMailContacts { { $Contacts.TechContact } { $body | Add-Member -NotePropertyName technicalNotificationMails -NotePropertyValue @($Contacts.TechContact) -ErrorAction SilentlyContinue } { $Contacts.GeneralContact } { $body | Add-Member -NotePropertyName privacyProfile -NotePropertyValue @{contactEmail = $Contacts.GeneralContact } } } - Write-Host (ConvertTo-Json -InputObject $body) New-GraphPostRequest -tenantid $tenant -Uri "https://graph.microsoft.com/v1.0/organization/$($TenantID.id)" -asApp $true -Type patch -Body (ConvertTo-Json -InputObject $body) -ContentType 'application/json' Write-LogMessage -API 'Standards' -tenant $tenant -message 'Contact emails set.' -sev Info } catch { @@ -98,8 +105,17 @@ function Invoke-CIPPStandardMailContacts { } if ($Settings.report -eq $true) { - $ReportState = $state ? $true : ($CurrentInfo | Select-Object marketingNotificationEmails, technicalNotificationMails, privacyProfile) - Set-CIPPStandardsCompareField -FieldName 'standards.MailContacts' -FieldValue $ReportState -Tenant $tenant + $CurrentValue = @{ + marketingNotificationEmails = $CurrentInfo.marketingNotificationEmails + technicalNotificationMails = @($CurrentInfo.technicalNotificationMails) + contactEmail = $CurrentInfo.privacyProfile.contactEmail + } + $ExpectedValue = @{ + marketingNotificationEmails = $Contacts.MarketingContact + technicalNotificationMails = @($Contacts.SecurityContact, $Contacts.TechContact) | Where-Object { $_ -ne $null } + contactEmail = $Contacts.GeneralContact + } + Set-CIPPStandardsCompareField -FieldName 'standards.MailContacts' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $tenant Add-CIPPBPAField -FieldName 'MailContacts' -FieldValue $CurrentInfo -StoreAs json -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMailboxRecipientLimits.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMailboxRecipientLimits.ps1 index 6f57d05f687c..ae62b19cd6eb 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMailboxRecipientLimits.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMailboxRecipientLimits.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardMailboxRecipientLimits { CAT Exchange Standards TAG + EXECUTIVETEXT + Controls how many recipients employees can include in a single email, helping prevent spam distribution and managing email server load. This security measure protects against both accidental mass mailings and potential abuse while ensuring legitimate business communications can still reach necessary recipients. ADDEDCOMPONENT {"type":"number","name":"standards.MailboxRecipientLimits.RecipientLimit","label":"Recipient Limit","defaultValue":500} IMPACT @@ -30,6 +32,11 @@ function Invoke-CIPPStandardMailboxRecipientLimits { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'MailboxRecipientLimits' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. # Input validation if ([Int32]$Settings.RecipientLimit -lt 0 -or [Int32]$Settings.RecipientLimit -gt 10000) { @@ -38,7 +45,13 @@ function Invoke-CIPPStandardMailboxRecipientLimits { } # Get mailbox plans first - $MailboxPlans = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-MailboxPlan' -cmdParams @{ ResultSize = 'Unlimited' } + try { + $MailboxPlans = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-MailboxPlan' -cmdParams @{ ResultSize = 'Unlimited' } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the MailboxRecipientLimits state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } # Create a hashtable of mailbox plans for quick lookup $MailboxPlanLookup = @{} @@ -68,9 +81,10 @@ function Invoke-CIPPStandardMailboxRecipientLimits { if ($null -ne $Mailboxes -and @($Mailboxes).Count -gt 0) { # Process mailboxes and categorize them based on their plan limits - $MailboxResults = @($Mailboxes) | ForEach-Object { - $Mailbox = $_ - + $MailboxResults = foreach ($Mailbox in @($Mailboxes)) { + if ($Mailbox.UserPrincipalName -like 'DiscoverySearchMailbox*' -or $Mailbox.UserPrincipalName -like 'SystemMailbox*') { + continue + } # Safe hashtable lookup - check if MailboxPlanId exists and is not null $Plan = $null if ($Mailbox.MailboxPlanId -and $MailboxPlanLookup.ContainsKey($Mailbox.MailboxPlanId)) { @@ -83,8 +97,7 @@ function Invoke-CIPPStandardMailboxRecipientLimits { # If mailbox has "Unlimited" set but has a plan, use the plan's limit as the current limit $CurrentLimit = if ($Mailbox.RecipientLimits -eq 'Unlimited') { $PlanMaxRecipients - } - else { + } else { $Mailbox.RecipientLimits } @@ -96,15 +109,13 @@ function Invoke-CIPPStandardMailboxRecipientLimits { PlanLimit = $PlanMaxRecipients PlanName = $Plan.DisplayName } - } - elseif ($CurrentLimit -ne $Settings.RecipientLimit) { + } elseif ($CurrentLimit -ne $Settings.RecipientLimit) { [PSCustomObject]@{ Type = 'ToUpdate' Mailbox = $Mailbox } } - } - elseif ($Mailbox.RecipientLimits -ne $Settings.RecipientLimit) { + } elseif ($Mailbox.RecipientLimits -ne $Settings.RecipientLimit) { [PSCustomObject]@{ Type = 'ToUpdate' Mailbox = $Mailbox @@ -114,12 +125,13 @@ function Invoke-CIPPStandardMailboxRecipientLimits { # Separate mailboxes into their respective categories only if we have results $MailboxesToUpdate = $MailboxResults | Where-Object { $_.Type -eq 'ToUpdate' } | Select-Object -ExpandProperty Mailbox - $MailboxesWithPlanIssues = $MailboxResults | Where-Object { $_.Type -eq 'PlanIssue' } | ForEach-Object { + $PlanIssueResults = $MailboxResults | Where-Object { $_.Type -eq 'PlanIssue' } + $MailboxesWithPlanIssues = foreach ($Issue in $PlanIssueResults) { [PSCustomObject]@{ - Identity = $_.Mailbox.Identity - CurrentLimit = $_.CurrentLimit - PlanLimit = $_.PlanLimit - PlanName = $_.PlanName + Identity = $Issue.Mailbox.Identity + CurrentLimit = $Issue.CurrentLimit + PlanLimit = $Issue.PlanLimit + PlanName = $Issue.PlanName } } } @@ -136,26 +148,26 @@ function Invoke-CIPPStandardMailboxRecipientLimits { if ($MailboxesToUpdate.Count -gt 0) { try { # Create detailed log data for audit trail - $MailboxChanges = $MailboxesToUpdate | ForEach-Object { - $CurrentLimit = if ($_.RecipientLimits -eq 'Unlimited') { 'Unlimited' } else { $_.RecipientLimits } + $MailboxChanges = foreach ($Mailbox in $MailboxesToUpdate) { + $CurrentLimit = if ($Mailbox.RecipientLimits -eq 'Unlimited') { 'Unlimited' } else { $Mailbox.RecipientLimits } @{ - Identity = $_.Identity - DisplayName = $_.DisplayName - PrimarySmtpAddress = $_.PrimarySmtpAddress - CurrentLimit = $CurrentLimit - NewLimit = $Settings.RecipientLimit + Identity = $Mailbox.Identity + DisplayName = $Mailbox.DisplayName + PrimarySmtpAddress = $Mailbox.PrimarySmtpAddress + CurrentLimit = $CurrentLimit + NewLimit = $Settings.RecipientLimit } } Write-LogMessage -API 'Standards' -tenant $Tenant -message "Updating recipient limits to $($Settings.RecipientLimit) for $($MailboxesToUpdate.Count) mailboxes" -sev Info -LogData $MailboxChanges # Create batch requests for mailbox updates - $UpdateRequests = $MailboxesToUpdate | ForEach-Object { + $UpdateRequests = foreach ($Mailbox in $MailboxesToUpdate) { @{ CmdletInput = @{ CmdletName = 'Set-Mailbox' Parameters = @{ - Identity = $_.Identity + Identity = $Mailbox.Identity RecipientLimits = $Settings.RecipientLimit } } @@ -165,13 +177,11 @@ function Invoke-CIPPStandardMailboxRecipientLimits { # Execute batch update $null = New-ExoBulkRequest -tenantid $Tenant -cmdletArray $UpdateRequests Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully applied recipient limits to $($MailboxesToUpdate.Count) mailboxes" -sev Info - } - catch { + } catch { $ErrorMessage = Get-CippException -Exception $_ Write-LogMessage -API 'Standards' -tenant $Tenant -message "Could not set recipient limits. $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage } - } - else { + } else { Write-LogMessage -API 'Standards' -tenant $Tenant -message "All mailboxes already have the correct recipient limit of $($Settings.RecipientLimit)" -sev Info } } @@ -180,12 +190,11 @@ function Invoke-CIPPStandardMailboxRecipientLimits { if ($Settings.alert -eq $true) { if ($MailboxesToUpdate.Count -eq 0 -and $MailboxesWithPlanIssues.Count -eq 0) { Write-LogMessage -API 'Standards' -tenant $Tenant -message "All mailboxes have the correct recipient limit of $($Settings.RecipientLimit)" -sev Info - } - else { + } else { # Create structured alert data $AlertData = @{ - RequestedLimit = $Settings.RecipientLimit - MailboxesToUpdate = @() + RequestedLimit = $Settings.RecipientLimit + MailboxesToUpdate = @() MailboxesWithPlanIssues = @() } @@ -194,14 +203,14 @@ function Invoke-CIPPStandardMailboxRecipientLimits { # Add mailboxes that need updating if ($MailboxesToUpdate.Count -gt 0) { - $AlertData.MailboxesToUpdate = $MailboxesToUpdate | ForEach-Object { - $CurrentLimit = if ($_.RecipientLimits -eq 'Unlimited') { 'Unlimited' } else { $_.RecipientLimits } + $AlertData.MailboxesToUpdate = foreach ($Mailbox in $MailboxesToUpdate) { + $CurrentLimit = if ($Mailbox.RecipientLimits -eq 'Unlimited') { 'Unlimited' } else { $Mailbox.RecipientLimits } @{ - Identity = $_.Identity - DisplayName = $_.DisplayName - PrimarySmtpAddress = $_.PrimarySmtpAddress - CurrentLimit = $CurrentLimit - RequiredLimit = $Settings.RecipientLimit + Identity = $Mailbox.Identity + DisplayName = $Mailbox.DisplayName + PrimarySmtpAddress = $Mailbox.PrimarySmtpAddress + CurrentLimit = $CurrentLimit + RequiredLimit = $Settings.RecipientLimit } } # Add to alert objects list efficiently @@ -212,12 +221,12 @@ function Invoke-CIPPStandardMailboxRecipientLimits { # Add mailboxes with plan issues if ($MailboxesWithPlanIssues.Count -gt 0) { - $AlertData.MailboxesWithPlanIssues = $MailboxesWithPlanIssues | ForEach-Object { + $AlertData.MailboxesWithPlanIssues = foreach ($Issue in $MailboxesWithPlanIssues) { @{ - Identity = $_.Identity - CurrentLimit = $_.CurrentLimit - PlanLimit = $_.PlanLimit - PlanName = $_.PlanName + Identity = $Issue.Identity + CurrentLimit = $Issue.CurrentLimit + PlanLimit = $Issue.PlanLimit + PlanName = $Issue.PlanName RequestedLimit = $Settings.RecipientLimit } } @@ -247,12 +256,14 @@ function Invoke-CIPPStandardMailboxRecipientLimits { } Add-CIPPBPAField -FieldName 'MailboxRecipientLimits' -FieldValue $ReportData -StoreAs json -Tenant $Tenant - if ($MailboxesToUpdate.Count -eq 0 -and $MailboxesWithPlanIssues.Count -eq 0) { - $FieldValue = $true + $CurrentValue = @{ + MailboxesToUpdate = @($MailboxesToUpdate) + MailboxesWithPlanIssues = @($MailboxesWithPlanIssues) } - else { - $FieldValue = $ReportData + $ExpectedValue = @{ + MailboxesToUpdate = @() + MailboxesWithPlanIssues = @() } - Set-CIPPStandardsCompareField -FieldName 'standards.MailboxRecipientLimits' -FieldValue $FieldValue -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.MailboxRecipientLimits' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMalwareFilterPolicy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMalwareFilterPolicy.ps1 index 42e34db49f3a..f7c72a9f8675 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMalwareFilterPolicy.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMalwareFilterPolicy.ps1 @@ -13,11 +13,14 @@ function Invoke-CIPPStandardMalwareFilterPolicy { CAT Defender Standards TAG - "CIS" + "CIS M365 5.0 (2.1.2)" + "CIS M365 5.0 (2.1.3)" "mdo_zapspam" "mdo_zapphish" "mdo_zapmalware" + "NIST CSF 2.0 (DE.CM-09)" ADDEDCOMPONENT + {"type":"textField","name":"standards.MalwareFilterPolicy.name","label":"Policy Name","required":true,"defaultValue":"CIPP Default Malware Policy"} {"type":"select","multiple":false,"label":"FileTypeAction","name":"standards.MalwareFilterPolicy.FileTypeAction","options":[{"label":"Reject","value":"Reject"},{"label":"Quarantine the message","value":"Quarantine"}]} {"type":"textField","name":"standards.MalwareFilterPolicy.OptionalFileTypes","required":false,"label":"Optional File Types, Comma separated"} {"type":"select","multiple":false,"creatable":true,"label":"QuarantineTag","name":"standards.MalwareFilterPolicy.QuarantineTag","options":[{"label":"AdminOnlyAccessPolicy","value":"AdminOnlyAccessPolicy"},{"label":"DefaultFullAccessPolicy","value":"DefaultFullAccessPolicy"},{"label":"DefaultFullAccessWithNotificationPolicy","value":"DefaultFullAccessWithNotificationPolicy"}]} @@ -40,26 +43,54 @@ function Invoke-CIPPStandardMalwareFilterPolicy { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'MalwareFilterPolicy' + $TestResult = Test-CIPPStandardLicense -StandardName 'MalwareFilterPolicy' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. + + try { + $AllMalwareFilterPolicies = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-MalwareFilterPolicy' + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the MalwareFilterPolicy state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + try { + $AllMalwareFilterRules = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-MalwareFilterRule' + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the Get-MalwareFilterRule state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } - $PolicyList = @('CIPP Default Malware Policy', 'Default Malware Policy') - $ExistingPolicy = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-MalwareFilterPolicy' | Where-Object -Property Name -In $PolicyList + # Use custom name if provided, otherwise use default for backward compatibility + $PolicyName = if ($Settings.name) { $Settings.name } else { 'CIPP Default Malware Policy' } + $PolicyList = @($PolicyName, 'CIPP Default Malware Policy', 'Default Malware Policy') + $ExistingPolicy = $AllMalwareFilterPolicies | Where-Object -Property Name -In $PolicyList | Select-Object -First 1 if ($null -eq $ExistingPolicy.Name) { - $PolicyName = $PolicyList[0] + # No existing policy - use the configured/default name + $PolicyName = if ($Settings.name) { $Settings.name } else { 'CIPP Default Malware Policy' } } else { + # Use existing policy name if found $PolicyName = $ExistingPolicy.Name } - $RuleList = @( 'CIPP Default Malware Rule', 'CIPP Default Malware Policy') - $ExistingRule = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-MalwareFilterRule' | Where-Object -Property Name -In $RuleList + # Derive rule name from policy name, but check for old names for backward compatibility + $DesiredRuleName = "$PolicyName Rule" + $RuleList = @($DesiredRuleName, 'CIPP Default Malware Rule', 'CIPP Default Malware Policy') + $ExistingRule = $AllMalwareFilterRules | Where-Object -Property Name -In $RuleList | Select-Object -First 1 if ($null -eq $ExistingRule.Name) { - $RuleName = $RuleList[0] + # No existing rule - use the derived name + $RuleName = $DesiredRuleName } else { + # Use existing rule name if found $RuleName = $ExistingRule.Name } - $CurrentState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-MalwareFilterPolicy' | - Where-Object -Property Name -EQ $PolicyName | - Select-Object Name, EnableFileFilter, FileTypeAction, FileTypes, ZapEnabled, QuarantineTag, EnableInternalSenderAdminNotifications, InternalSenderAdminAddress, EnableExternalSenderAdminNotifications, ExternalSenderAdminAddress + $CurrentState = $AllMalwareFilterPolicies | + Where-Object -Property Name -EQ $PolicyName | + Select-Object Name, EnableFileFilter, FileTypeAction, FileTypes, ZapEnabled, QuarantineTag, EnableInternalSenderAdminNotifications, InternalSenderAdminAddress, EnableExternalSenderAdminNotifications, ExternalSenderAdminAddress $DefaultFileTypes = @('ace', 'ani', 'apk', 'app', 'appx', 'arj', 'bat', 'cab', 'cmd', 'com', 'deb', 'dex', 'dll', 'docm', 'elf', 'exe', 'hta', 'img', 'iso', 'jar', 'jnlp', 'kext', 'lha', 'lib', 'library', 'lnk', 'lzh', 'macho', 'msc', 'msi', 'msix', 'msp', 'mst', 'pif', 'ppa', 'ppam', 'reg', 'rev', 'scf', 'scr', 'sct', 'sys', 'uif', 'vb', 'vbe', 'vbs', 'vxd', 'wsc', 'wsf', 'wsh', 'xll', 'xz', 'z') @@ -69,27 +100,29 @@ function Invoke-CIPPStandardMalwareFilterPolicy { $ExpectedFileTypes = $DefaultFileTypes + @($Settings.OptionalFileTypes.Split(',').Trim()) } + $FileTypeAction = $Settings.FileTypeAction.value ?? $Settings.FileTypeAction ?? 'Quarantine' + $StateIsCorrect = ($CurrentState.Name -eq $PolicyName) -and - ($CurrentState.EnableFileFilter -eq $true) -and - ($CurrentState.FileTypeAction -eq $Settings.FileTypeAction) -and - (!(Compare-Object -ReferenceObject $CurrentState.FileTypes -DifferenceObject $ExpectedFileTypes)) -and - ($CurrentState.ZapEnabled -eq $true) -and - ($CurrentState.QuarantineTag -eq $Settings.QuarantineTag) -and - ($CurrentState.EnableInternalSenderAdminNotifications -eq $Settings.EnableInternalSenderAdminNotifications) -and - (($null -eq $Settings.InternalSenderAdminAddress) -or ($CurrentState.InternalSenderAdminAddress -eq $Settings.InternalSenderAdminAddress)) -and - ($CurrentState.EnableExternalSenderAdminNotifications -eq $Settings.EnableExternalSenderAdminNotifications) -and - (($null -eq $Settings.ExternalSenderAdminAddress) -or ($CurrentState.ExternalSenderAdminAddress -eq $Settings.ExternalSenderAdminAddress)) + ($CurrentState.EnableFileFilter -eq $true) -and + ($CurrentState.FileTypeAction -eq $FileTypeAction) -and + (!(Compare-Object -ReferenceObject $CurrentState.FileTypes -DifferenceObject $ExpectedFileTypes)) -and + ($CurrentState.ZapEnabled -eq $true) -and + ($CurrentState.QuarantineTag -eq $Settings.QuarantineTag) -and + ($CurrentState.EnableInternalSenderAdminNotifications -eq $Settings.EnableInternalSenderAdminNotifications) -and + (($null -eq $Settings.InternalSenderAdminAddress) -or ($CurrentState.InternalSenderAdminAddress -eq $Settings.InternalSenderAdminAddress)) -and + ($CurrentState.EnableExternalSenderAdminNotifications -eq $Settings.EnableExternalSenderAdminNotifications) -and + (($null -eq $Settings.ExternalSenderAdminAddress) -or ($CurrentState.ExternalSenderAdminAddress -eq $Settings.ExternalSenderAdminAddress)) $AcceptedDomains = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-AcceptedDomain' - $RuleState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-MalwareFilterRule' | - Where-Object -Property Name -EQ $RuleName | - Select-Object Name, MalwareFilterPolicy, Priority, RecipientDomainIs + $RuleState = $AllMalwareFilterRules | + Where-Object -Property Name -EQ $RuleName | + Select-Object Name, MalwareFilterPolicy, Priority, RecipientDomainIs $RuleStateIsCorrect = ($RuleState.Name -eq $RuleName) -and - ($RuleState.MalwareFilterPolicy -eq $PolicyName) -and - ($RuleState.Priority -eq 0) -and - (!(Compare-Object -ReferenceObject $RuleState.RecipientDomainIs -DifferenceObject $AcceptedDomains.Name)) + ($RuleState.MalwareFilterPolicy -eq $PolicyName) -and + ($RuleState.Priority -eq 0) -and + (!(Compare-Object -ReferenceObject $RuleState.RecipientDomainIs -DifferenceObject $AcceptedDomains.Name)) if ($Settings.remediate -eq $true) { @@ -99,7 +132,7 @@ function Invoke-CIPPStandardMalwareFilterPolicy { $cmdParams = @{ EnableFileFilter = $true FileTypes = $ExpectedFileTypes - FileTypeAction = $Settings.FileTypeAction + FileTypeAction = $FileTypeAction ZapEnabled = $true QuarantineTag = $Settings.QuarantineTag EnableInternalSenderAdminNotifications = $Settings.EnableInternalSenderAdminNotifications @@ -168,8 +201,21 @@ function Invoke-CIPPStandardMalwareFilterPolicy { } if ($Settings.report -eq $true) { - $state = $StateIsCorrect ? $true : $CurrentState - Set-CIPPStandardsCompareField -FieldName 'standards.MalwareFilterPolicy' -FieldValue $state -TenantFilter $Tenant + $CurrentValue = $CurrentState | Select-Object Name, EnableFileFilter, FileTypeAction, FileTypes, ZapEnabled, QuarantineTag, EnableInternalSenderAdminNotifications, InternalSenderAdminAddress, EnableExternalSenderAdminNotifications, ExternalSenderAdminAddress + + $ExpectedValue = @{ + Name = $PolicyName + EnableFileFilter = $true + FileTypeAction = $FileTypeAction + FileTypes = $ExpectedFileTypes + ZapEnabled = $true + QuarantineTag = $Settings.QuarantineTag + EnableInternalSenderAdminNotifications = $Settings.EnableInternalSenderAdminNotifications + InternalSenderAdminAddress = $Settings.InternalSenderAdminAddress + EnableExternalSenderAdminNotifications = $Settings.EnableExternalSenderAdminNotifications + ExternalSenderAdminAddress = $Settings.ExternalSenderAdminAddress + } + Set-CIPPStandardsCompareField -FieldName 'standards.MalwareFilterPolicy' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'MalwareFilterPolicy' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMessageExpiration.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMessageExpiration.ps1 index 4a46e10ac85c..07dc9be99dc0 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMessageExpiration.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMessageExpiration.ps1 @@ -28,12 +28,21 @@ function Invoke-CIPPStandardMessageExpiration { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'MessageExpiration' + $TestResult = Test-CIPPStandardLicense -StandardName 'MessageExpiration' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access - $MessageExpiration = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-TransportConfig').messageExpiration + if ($TestResult -eq $false) { + return $true + } #we're done. + + try { + $MessageExpiration = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-TransportConfig').messageExpiration + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the MessageExpiration state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } if ($Settings.remediate -eq $true) { - Write-Host 'Time to remediate' if ($MessageExpiration -ne '12:00:00') { try { New-ExoRequest -tenantid $Tenant -cmdlet 'Set-TransportConfig' -cmdParams @{MessageExpiration = '12:00:00' } @@ -57,8 +66,13 @@ function Invoke-CIPPStandardMessageExpiration { } } if ($Settings.report -eq $true) { - if ($MessageExpiration -ne '12:00:00') { $MessageExpiration = $false } else { $MessageExpiration = $true } - Set-CIPPStandardsCompareField -FieldName 'standards.MessageExpiration' -FieldValue $MessageExpiration -TenantFilter $Tenant + $CurrentValue = @{ + MessageExpiration = $MessageExpiration + } + $ExpectedValue = @{ + MessageExpiration = '12:00:00' + } + Set-CIPPStandardsCompareField -FieldName 'standards.MessageExpiration' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'messageExpiration' -FieldValue $MessageExpiration -StoreAs bool -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardNudgeMFA.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardNudgeMFA.ps1 index 98c73b0c9372..93b3fe130970 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardNudgeMFA.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardNudgeMFA.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardNudgeMFA { CAT Entra (AAD) Standards TAG + EXECUTIVETEXT + Prompts employees to set up multi-factor authentication during login, gradually improving the organization's security posture by encouraging adoption of stronger authentication methods. This helps achieve better security compliance without forcing immediate mandatory changes. ADDEDCOMPONENT {"type":"autoComplete","multiple":false,"creatable":false,"label":"Select value","name":"standards.NudgeMFA.state","options":[{"label":"Enabled","value":"enabled"},{"label":"Disabled","value":"disabled"}]} {"type":"number","name":"standards.NudgeMFA.snoozeDurationInDays","label":"Number of days to allow users to skip registering Authenticator (0-14, default is 1)","defaultValue":1} @@ -30,23 +32,22 @@ function Invoke-CIPPStandardNudgeMFA { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'NudgeMFA' - Write-Host "NudgeMFA: $($Settings | ConvertTo-Json -Compress)" + # Get state value using null-coalescing operator - $state = $Settings.state.value ?? $Settings.state + $State = $Settings.state.value ?? $Settings.state try { $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy' -tenantid $Tenant - $StateIsCorrect = ($CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign.state -eq $state) -and - ($CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign.snoozeDurationInDays -eq $Settings.snoozeDurationInDays) -and - ($CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign.enforceRegistrationAfterAllowedSnoozes -eq $true) + $StateIsCorrect = ($CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign.state -eq $State) -and + ($CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign.snoozeDurationInDays -eq $Settings.snoozeDurationInDays) -and + ($CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign.enforceRegistrationAfterAllowedSnoozes -eq $true) } catch { Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Failed to get Authenticator App Nudge state, check your permissions and try again' -sev Error -LogData (Get-CippException -Exception $_) - exit 0 + return } if ($Settings.remediate -eq $true) { - $StateName = $Settings.state ? 'Enabled' : 'Disabled' + $StateName = $State.Substring(0, 1).ToUpper() + $State.Substring(1) try { $GraphRequest = @{ tenantid = $Tenant @@ -57,7 +58,7 @@ function Invoke-CIPPStandardNudgeMFA { Body = @{ registrationEnforcement = @{ authenticationMethodsRegistrationCampaign = @{ - state = $state + state = $State snoozeDurationInDays = $Settings.snoozeDurationInDays enforceRegistrationAfterAllowedSnoozes = $true includeTargets = $CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign.includeTargets @@ -69,7 +70,8 @@ function Invoke-CIPPStandardNudgeMFA { New-GraphPostRequest @GraphRequest Write-LogMessage -API 'Standards' -tenant $Tenant -message "$StateName Authenticator App Nudge with a snooze duration of $($Settings.snoozeDurationInDays)" -sev Info } catch { - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set Authenticator App Nudge to $state. Error: $($_.Exception.message)" -sev Error -LogData $_ + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set Authenticator App Nudge to $State. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage } } @@ -83,8 +85,15 @@ function Invoke-CIPPStandardNudgeMFA { } if ($Settings.report -eq $true) { - $state = $StateIsCorrect ? $true : ($CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign | Select-Object snoozeDurationInDays, state) - Set-CIPPStandardsCompareField -FieldName 'standards.NudgeMFA' -FieldValue $state -Tenant $Tenant + $CurrentValue = @{ + snoozeDurationInDays = $CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign.snoozeDurationInDays + state = $CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign.state + } + $ExpectedValue = @{ + snoozeDurationInDays = $Settings.snoozeDurationInDays + state = $State + } + Set-CIPPStandardsCompareField -FieldName 'standards.NudgeMFA' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'NudgeMFA' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardOWAAttachmentRestrictions.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardOWAAttachmentRestrictions.ps1 new file mode 100644 index 000000000000..9a2f38181609 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardOWAAttachmentRestrictions.ps1 @@ -0,0 +1,135 @@ +function Invoke-CIPPStandardOWAAttachmentRestrictions { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) OWAAttachmentRestrictions + .SYNOPSIS + (Label) Restrict Email Attachments on Unmanaged Devices + .DESCRIPTION + (Helptext) Restricts how users on unmanaged devices can interact with email attachments in Outlook on the web and new Outlook for Windows. Prevents downloading attachments or blocks viewing them entirely. + (DocsDescription) This standard configures the OWA mailbox policy to restrict access to email attachments on unmanaged devices. Users can be prevented from downloading attachments (but can view/edit via Office Online) or blocked from seeing attachments entirely. This helps prevent data exfiltration through email attachments on devices not managed by the organization. + .NOTES + CAT + Exchange Standards + TAG + "CIS M365 5.0 (6.1.2)" + "Security" + "NIST CSF 2.0 (PR.AA-05)" + EXECUTIVETEXT + Restricts access to email attachments on personal or unmanaged devices while allowing full functionality on corporate-managed devices. This security measure prevents data theft through email attachments while maintaining productivity for employees using approved company devices. + ADDEDCOMPONENT + {"type":"autoComplete","name":"standards.OWAAttachmentRestrictions.ConditionalAccessPolicy","label":"Attachment Restriction Policy","options":[{"label":"Read Only (View/Edit via Office Online, no download)","value":"ReadOnly"},{"label":"Read Only Plus Attachments Blocked (Cannot see attachments)","value":"ReadOnlyPlusAttachmentsBlocked"}],"defaultValue":"ReadOnlyPlusAttachmentsBlocked"} + IMPACT + Medium Impact + ADDEDDATE + 2025-08-22 + POWERSHELLEQUIVALENT + Set-OwaMailboxPolicy -Identity "OwaMailboxPolicy-Default" -ConditionalAccessPolicy ReadOnlyPlusAttachmentsBlocked + RECOMMENDEDBY + "Microsoft Zero Trust" + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'OWAAttachmentRestrictions' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. + + # Input validation + $ValidPolicies = @('ReadOnly', 'ReadOnlyPlusAttachmentsBlocked') + if ($Settings.ConditionalAccessPolicy.value -notin $ValidPolicies) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "OWAAttachmentRestrictions: Invalid ConditionalAccessPolicy parameter set. Must be one of: $($ValidPolicies -join ', ')" -sev Error + return + } + + try { + # Get the default OWA mailbox policy + $CurrentPolicy = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OwaMailboxPolicy' -cmdParams @{ Identity = 'OwaMailboxPolicy-Default' } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the OWA Attachment Restrictions state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $StateIsCorrect = $CurrentPolicy.ConditionalAccessPolicy -eq $Settings.ConditionalAccessPolicy.value + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "OWA attachment restrictions are already set to $($Settings.ConditionalAccessPolicy)" -sev Info + } else { + try { + $cmdParams = @{ + Identity = 'OwaMailboxPolicy-Default' + ConditionalAccessPolicy = $Settings.ConditionalAccessPolicy.value + } + + New-ExoRequest -tenantid $Tenant -cmdlet 'Set-OwaMailboxPolicy' -cmdParams $cmdParams + + $PolicyDescription = switch ($Settings.ConditionalAccessPolicy.value) { + 'ReadOnly' { 'Read Only (users can view/edit attachments via Office Online but cannot download)' } + 'ReadOnlyPlusAttachmentsBlocked' { 'Read Only Plus Attachments Blocked (users cannot see attachments at all)' } + } + + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully set OWA attachment restrictions to: $PolicyDescription" -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Could not set OWA attachment restrictions. $($ErrorMessage.NormalizedError)" -sev Error + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect) { + $PolicyDescription = switch ($Settings.ConditionalAccessPolicy.value) { + 'ReadOnly' { 'Read Only (view/edit via Office Online, no download)' } + 'ReadOnlyPlusAttachmentsBlocked' { 'Read Only Plus Attachments Blocked (cannot see attachments)' } + } + Write-LogMessage -API 'Standards' -tenant $Tenant -message "OWA attachment restrictions are correctly set to: $PolicyDescription" -sev Info + } else { + $CurrentDescription = switch ($CurrentPolicy.ConditionalAccessPolicy) { + 'ReadOnly' { 'Read Only (view/edit via Office Online, no download)' } + 'ReadOnlyPlusAttachmentsBlocked' { 'Read Only Plus Attachments Blocked (cannot see attachments)' } + $null { 'Not configured (full access to attachments)' } + default { $CurrentPolicy.ConditionalAccessPolicy } + } + + $RequiredDescription = switch ($Settings.ConditionalAccessPolicy.value) { + 'ReadOnly' { 'Read Only (view/edit via Office Online, no download)' } + 'ReadOnlyPlusAttachmentsBlocked' { 'Read Only Plus Attachments Blocked (cannot see attachments)' } + } + + $AlertMessage = "OWA attachment restrictions are set to '$CurrentDescription' but should be '$RequiredDescription'" + Write-StandardsAlert -message $AlertMessage -object @{ + CurrentPolicy = $CurrentPolicy.ConditionalAccessPolicy + RequiredPolicy = $Settings.ConditionalAccessPolicy + PolicyName = $CurrentPolicy.Name + CurrentDescription = $CurrentDescription + RequiredDescription = $RequiredDescription + } -tenant $Tenant -standardName 'OWAAttachmentRestrictions' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message $AlertMessage -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = @{ + ConditionalAccessPolicy = $CurrentPolicy.ConditionalAccessPolicy + PolicyName = $CurrentPolicy.Name + IsCompliant = $StateIsCorrect + } + $ExpectedValue = @{ + ConditionalAccessPolicy = $Settings.ConditionalAccessPolicy.value + PolicyName = 'OwaMailboxPolicy-Default' + IsCompliant = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.OWAAttachmentRestrictions' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'OWAAttachmentRestrictions' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardOauthConsent.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardOauthConsent.ps1 index 9d00b6a527e7..bf86be5f502e 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardOauthConsent.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardOauthConsent.ps1 @@ -13,7 +13,14 @@ function Invoke-CIPPStandardOauthConsent { CAT Entra (AAD) Standards TAG - "CIS" + "CIS M365 5.0 (1.5.1)" + "CISA (MS.AAD.4.2v1)" + "EIDSCA.AP08" + "EIDSCA.AP09" + "Essential 8 (1175)" + "NIST CSF 2.0 (PR.AA-05)" + EXECUTIVETEXT + Requires administrative approval before employees can grant applications access to company data, preventing unauthorized data sharing and potential security breaches. This protects against malicious applications while allowing approved business tools to function normally. ADDEDCOMPONENT {"type":"textField","name":"standards.OauthConsent.AllowedApps","label":"Allowed application IDs, comma separated","required":false} IMPACT @@ -33,7 +40,13 @@ function Invoke-CIPPStandardOauthConsent { param($tenant, $settings) - $State = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy' -tenantid $tenant + try { + $State = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy' -tenantid $tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the OauthConsent state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $StateIsCorrect = if ($State.permissionGrantPolicyIdsAssignedToDefaultUserRole -eq 'managePermissionGrantsForSelf.cipp-consent-policy') { $true } else { $false } if ($Settings.remediate -eq $true) { @@ -56,7 +69,6 @@ function Invoke-CIPPStandardOauthConsent { foreach ($AllowedApp in $AllowedAppIdsForTenant) { if ($AllowedApp -and ($AllowedApp -notin $ExistingAppIds)) { - Write-Host "Adding missing approved app: $AllowedApp" New-GraphPostRequest -tenantid $tenant -Uri 'https://graph.microsoft.com/beta/policies/permissionGrantPolicies/cipp-consent-policy/includes' -Type POST -Body ('{"permissionType": "delegated","clientApplicationIds": ["' + $AllowedApp + '"]}') -ContentType 'application/json' New-GraphPostRequest -tenantid $tenant -Uri 'https://graph.microsoft.com/beta/policies/permissionGrantPolicies/cipp-consent-policy/includes' -Type POST -Body ('{ "permissionType": "Application", "clientApplicationIds": ["' + $AllowedApp + '"] }') -ContentType 'application/json' } @@ -87,12 +99,12 @@ function Invoke-CIPPStandardOauthConsent { if ($Settings.report -eq $true) { Add-CIPPBPAField -FieldName 'OauthConsent' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant - if ($StateIsCorrect) { - $FieldValue = $true - } else { - $FieldValue = $State | Select-Object -Property permissionGrantPolicyIdsAssignedToDefaultUserRole + $CurrentValue = @{ + permissionGrantPolicyIdsAssignedToDefaultUserRole = $State.permissionGrantPolicyIdsAssignedToDefaultUserRole } - - Set-CIPPStandardsCompareField -FieldName 'standards.OauthConsent' -FieldValue $FieldValue -Tenant $tenant + $ExpectedValue = @{ + permissionGrantPolicyIdsAssignedToDefaultUserRole = @('ManagePermissionGrantsForSelf.cipp-consent-policy') + } + Set-CIPPStandardsCompareField -FieldName 'standards.OauthConsent' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardOauthConsentLowSec.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardOauthConsentLowSec.ps1 index 8338bcf4b108..2bce9422a74b 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardOauthConsentLowSec.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardOauthConsentLowSec.ps1 @@ -14,6 +14,8 @@ function Invoke-CIPPStandardOauthConsentLowSec { Entra (AAD) Standards TAG "IntegratedApps" + EXECUTIVETEXT + Allows employees to approve low-risk applications without administrative intervention, balancing security with productivity. This provides a middle ground between complete restriction and open access, enabling business agility while maintaining protection against high-risk applications. IMPACT Medium Impact ADDEDDATE @@ -29,8 +31,16 @@ function Invoke-CIPPStandardOauthConsentLowSec { param($Tenant, $Settings) - $State = (New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy' -tenantid $tenant) - $PermissionState = (New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/servicePrincipals(appId='00000003-0000-0000-c000-000000000000')/delegatedPermissionClassifications" -tenantid $tenant) | Select-Object -Property permissionName + try { + $State = (New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy' -tenantid $tenant) + + $PermissionState = (New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/servicePrincipals(appId='00000003-0000-0000-c000-000000000000')/delegatedPermissionClassifications" -tenantid $tenant) | + Select-Object -Property permissionName + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the OauthConsentLowSec state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $requiredPermissions = @('offline_access', 'openid', 'User.Read', 'profile', 'email') $missingPermissions = $requiredPermissions | Where-Object { $PermissionState.permissionName -notcontains $_ } @@ -66,19 +76,19 @@ function Invoke-CIPPStandardOauthConsentLowSec { Write-LogMessage -API 'Standards' -tenant $tenant -message 'All permissions for Application Consent already assigned.' -sev Info } else { try { - $missingPermissions | ForEach-Object { + foreach ($Permission in $missingPermissions) { $GraphParam = @{ tenantid = $tenant Uri = "https://graph.microsoft.com/beta/servicePrincipals(appId='00000003-0000-0000-c000-000000000000')/delegatedPermissionClassifications" Type = 'POST' Body = @{ - permissionName = $_ + permissionName = $Permission classification = 'low' } | ConvertTo-Json ContentType = 'application/json' } $null = New-GraphPostRequest @GraphParam - Write-LogMessage -API 'Standards' -tenant $tenant -message "Permission $_ has been added to low Application Consent" -sev Info + Write-LogMessage -API 'Standards' -tenant $tenant -message "Permission $Permission has been added to low Application Consent" -sev Info } } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message @@ -97,23 +107,21 @@ function Invoke-CIPPStandardOauthConsentLowSec { } if ($Settings.report -eq $true) { - if ($State.permissionGrantPolicyIdsAssignedToDefaultUserRole -notin @('managePermissionGrantsForSelf.microsoft-user-default-low')) { - $State.permissionGrantPolicyIdsAssignedToDefaultUserRole = $false - $ValueField = @{ - authorizationPolicy = $State.permissionGrantPolicyIdsAssignedToDefaultUserRole - permissionClassifications = $PermissionState - } - if ($ConflictingStandard) { - $ValueField.conflictingStandard = @{ - name = $ConflictingStandard.Standard - templateid = $ConflictingStandard.TemplateId - } + $CurrentValue = @{ + permissionGrantPolicyIdsAssignedToDefaultUserRole = $State.permissionGrantPolicyIdsAssignedToDefaultUserRole + } + # Add conflicting standard info if applicable + if ($ConflictingStandard) { + $CurrentValue.conflictingStandard = @{ + name = $ConflictingStandard.Standard + templateid = $ConflictingStandard.TemplateId } - } else { - $State.permissionGrantPolicyIdsAssignedToDefaultUserRole = $true - $ValueField = $true + } + + $ExpectedValue = @{ + permissionGrantPolicyIdsAssignedToDefaultUserRole = @('managePermissionGrantsForSelf.microsoft-user-default-low') } Add-CIPPBPAField -FieldName 'OauthConsentLowSec' -FieldValue $State.permissionGrantPolicyIdsAssignedToDefaultUserRole -StoreAs bool -Tenant $tenant - Set-CIPPStandardsCompareField -FieldName 'standards.OauthConsentLowSec' -FieldValue $ValueField -Tenant $tenant + Set-CIPPStandardsCompareField -FieldName 'standards.OauthConsentLowSec' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardOutBoundSpamAlert.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardOutBoundSpamAlert.ps1 index bcf78c7d5f73..0ae5d1e92eab 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardOutBoundSpamAlert.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardOutBoundSpamAlert.ps1 @@ -13,7 +13,7 @@ function Invoke-CIPPStandardOutBoundSpamAlert { CAT Exchange Standards TAG - "CIS" + "CIS M365 5.0 (2.1.6)" ADDEDCOMPONENT {"type":"textField","name":"standards.OutBoundSpamAlert.OutboundSpamContact","label":"Outbound spam contact"} IMPACT @@ -31,8 +31,19 @@ function Invoke-CIPPStandardOutBoundSpamAlert { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'OutBoundSpamAlert' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. - $CurrentInfo = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-HostedOutboundSpamFilterPolicy' -cmdParams @{ Identity = 'Default' } -useSystemMailbox $true + try { + $CurrentInfo = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-HostedOutboundSpamFilterPolicy' -cmdParams @{ Identity = 'Default' } -useSystemMailbox $true + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the OutBoundSpamAlert state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } if ($Settings.remediate -eq $true) { @@ -63,11 +74,14 @@ function Invoke-CIPPStandardOutBoundSpamAlert { if ($Settings.report -eq $true) { Add-CIPPBPAField -FieldName 'OutboundSpamAlert' -FieldValue $CurrentInfo.NotifyOutboundSpam -StoreAs bool -Tenant $tenant - if ($CurrentInfo.NotifyOutboundSpam -ne $true -or $CurrentInfo.NotifyOutboundSpamRecipients -ne $settings.OutboundSpamContact) { - $ValueField = $CurrentInfo | Select-Object -Property NotifyOutboundSpamRecipients, NotifyOutboundSpam - } else { - $ValueField = $true + $CurrentValue = @{ + NotifyOutboundSpam = $CurrentInfo.NotifyOutboundSpam + NotifyOutboundSpamRecipients = $CurrentInfo.NotifyOutboundSpamRecipients + } + $ExpectedValue = @{ + NotifyOutboundSpam = $true + NotifyOutboundSpamRecipients = $settings.OutboundSpamContact } - Set-CIPPStandardsCompareField -FieldName 'standards.OutBoundSpamAlert' -FieldValue $ValueField -Tenant $tenant + Set-CIPPStandardsCompareField -FieldName 'standards.OutBoundSpamAlert' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPWcompanionAppAllowedState.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPWcompanionAppAllowedState.ps1 index a52afe311852..656e69bd5367 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPWcompanionAppAllowedState.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPWcompanionAppAllowedState.ps1 @@ -13,6 +13,9 @@ function Invoke-CIPPStandardPWcompanionAppAllowedState { CAT Entra (AAD) Standards TAG + "EIDSCA.AM01" + EXECUTIVETEXT + Enables a simplified authentication experience by allowing users to authenticate directly through Outlook without requiring a separate authenticator app. This improves user convenience while maintaining security standards for passwordless authentication. ADDEDCOMPONENT {"type":"autoComplete","multiple":false,"creatable":false,"label":"Select value","name":"standards.PWcompanionAppAllowedState.state","options":[{"label":"Enabled","value":"enabled"},{"label":"Disabled","value":"disabled"},{"label":"Microsoft managed","value":"default"}]} IMPACT @@ -30,7 +33,14 @@ function Invoke-CIPPStandardPWcompanionAppAllowedState { param($Tenant, $Settings) - $AuthenticatorFeaturesState = (New-GraphGetRequest -tenantid $Tenant -Uri 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy/authenticationMethodConfigurations/microsoftAuthenticator') + try { + $AuthenticatorFeaturesState = (New-GraphGetRequest -tenantid $Tenant -Uri 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy/authenticationMethodConfigurations/microsoftAuthenticator') + } + catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the PWcompanionAppAllowedState state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } # Get state value using null-coalescing operator $CurrentState = $AuthenticatorFeaturesState.featureSettings.companionAppAllowedState.state @@ -44,8 +54,6 @@ function Invoke-CIPPStandardPWcompanionAppAllowedState { } If ($Settings.remediate -eq $true) { - Write-Host "Remediating PWcompanionAppAllowedState for tenant $Tenant to $WantedState" - if ($AuthStateCorrect -eq $true) { Write-LogMessage -API 'Standards' -tenant $Tenant -message "companionAppAllowedState is already set to the desired state of $WantedState." -sev Info } else { @@ -92,6 +100,12 @@ function Invoke-CIPPStandardPWcompanionAppAllowedState { } else { $FieldValue = $AuthenticatorFeaturesState.featureSettings.companionAppAllowedState } - Set-CIPPStandardsCompareField -FieldName 'standards.PWcompanionAppAllowedState' -FieldValue $FieldValue -Tenant $Tenant + $CurrentValue = @{ + companionAppAllowedState = $AuthenticatorFeaturesState.featureSettings.companionAppAllowedState.state + } + $ExpectedValue = @{ + companionAppAllowedState = $WantedState + } + Set-CIPPStandardsCompareField -FieldName 'standards.PWcompanionAppAllowedState' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPWdisplayAppInformationRequiredState.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPWdisplayAppInformationRequiredState.ps1 index 7dacd622acbd..63723ed0fd13 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPWdisplayAppInformationRequiredState.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPWdisplayAppInformationRequiredState.ps1 @@ -13,7 +13,16 @@ function Invoke-CIPPStandardPWdisplayAppInformationRequiredState { CAT Entra (AAD) Standards TAG - "CIS" + "CIS M365 5.0 (2.3.1)" + "EIDSCA.AM03" + "EIDSCA.AM04" + "EIDSCA.AM06" + "EIDSCA.AM07" + "EIDSCA.AM09" + "EIDSCA.AM10" + "NIST CSF 2.0 (PR.AA-03)" + EXECUTIVETEXT + Enhances authentication security by requiring users to match numbers and showing detailed information about login requests, including application names and location data. This helps employees verify legitimate login attempts and prevents unauthorized access through more secure authentication methods. ADDEDCOMPONENT IMPACT Low Impact @@ -31,7 +40,14 @@ function Invoke-CIPPStandardPWdisplayAppInformationRequiredState { param($Tenant, $Settings) - $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy/authenticationMethodConfigurations/microsoftAuthenticator' -tenantid $Tenant + try { + $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy/authenticationMethodConfigurations/microsoftAuthenticator' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the PWdisplayAppInformationRequiredState state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + $StateIsCorrect = ($CurrentState.state -eq 'enabled') -and ($CurrentState.featureSettings.numberMatchingRequiredState.state -eq 'enabled') -and ($CurrentState.featureSettings.displayAppInformationRequiredState.state -eq 'enabled') @@ -58,11 +74,16 @@ function Invoke-CIPPStandardPWdisplayAppInformationRequiredState { if ($Settings.report -eq $true) { Add-CIPPBPAField -FieldName 'PWdisplayAppInformationRequiredState' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant - if ($StateIsCorrect) { - $FieldValue = $true - } else { - $FieldValue = $CurrentState + $CurrentValue = @{ + state = $CurrentState.state + numberMatchingRequiredState = $CurrentState.featureSettings.numberMatchingRequiredState.state + displayAppInformationRequiredState = $CurrentState.featureSettings.displayAppInformationRequiredState.state + } + $ExpectedValue = @{ + state = 'enabled' + numberMatchingRequiredState = 'enabled' + displayAppInformationRequiredState = 'enabled' } - Set-CIPPStandardsCompareField -FieldName 'standards.PWdisplayAppInformationRequiredState' -FieldValue $FieldValue -Tenant $tenant + Set-CIPPStandardsCompareField -FieldName 'standards.PWdisplayAppInformationRequiredState' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPasswordExpireDisabled.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPasswordExpireDisabled.ps1 index a801f3a32244..2caaa9e00f7f 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPasswordExpireDisabled.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPasswordExpireDisabled.ps1 @@ -13,8 +13,10 @@ function Invoke-CIPPStandardPasswordExpireDisabled { CAT Entra (AAD) Standards TAG - "CIS" + "CIS M365 5.0 (1.3.1)" "PWAgePolicyNew" + EXECUTIVETEXT + Eliminates mandatory password expiration requirements, allowing employees to keep strong passwords indefinitely rather than forcing frequent changes that often lead to weaker passwords. This modern security approach reduces help desk calls and improves overall password security when combined with multi-factor authentication. ADDEDCOMPONENT IMPACT Low Impact @@ -33,26 +35,32 @@ function Invoke-CIPPStandardPasswordExpireDisabled { param($Tenant, $Settings) - $GraphRequest = New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/domains' -tenantid $Tenant + try { + $GraphRequest = New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/domains' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the PasswordExpireDisabled state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + $DomainsWithoutPassExpire = $GraphRequest | Where-Object { $_.isVerified -eq $true -and $_.passwordValidityPeriodInDays -ne 2147483647 } if ($Settings.remediate -eq $true) { if ($DomainsWithoutPassExpire) { - $DomainsWithoutPassExpire | ForEach-Object { + foreach ($Domain in $DomainsWithoutPassExpire) { try { - if ( $null -eq $_.passwordNotificationWindowInDays ) { + if ( $null -eq $Domain.passwordNotificationWindowInDays ) { $Body = '{"passwordValidityPeriodInDays": 2147483647, "passwordNotificationWindowInDays": 14 }' - Write-Host "PasswordNotificationWindowInDays is null for $($_.id). Setting to the default of 14 days." } else { $Body = '{"passwordValidityPeriodInDays": 2147483647 }' } - New-GraphPostRequest -type Patch -tenantid $Tenant -uri "https://graph.microsoft.com/v1.0/domains/$($_.id)" -body $Body - Write-LogMessage -API 'Standards' -tenant $tenant -message "Disabled Password Expiration for $($_.id)." -sev Info + New-GraphPostRequest -type Patch -tenantid $Tenant -uri "https://graph.microsoft.com/v1.0/domains/$($Domain.id)" -body $Body + Write-LogMessage -API 'Standards' -tenant $tenant -message "Disabled Password Expiration for $($Domain.id)." -sev Info } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable Password Expiration for $($_.id). Error: $ErrorMessage" -sev Error + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable Password Expiration for $($Domain.id). Error: $ErrorMessage" -sev Error } } } else { @@ -72,11 +80,13 @@ function Invoke-CIPPStandardPasswordExpireDisabled { if ($Settings.report -eq $true) { Add-CIPPBPAField -FieldName 'PasswordExpireDisabled' -FieldValue $DomainsWithoutPassExpire -StoreAs json -Tenant $tenant - if ($DomainsWithoutPassExpire) { - $FieldValue = $DomainsWithoutPassExpire - } else { - $FieldValue = $true + + $CurrentValue = @{ + DomainsWithoutPassExpire = @($DomainsWithoutPassExpire) + } + $ExpectedValue = @{ + DomainsWithoutPassExpire = @() } - Set-CIPPStandardsCompareField -FieldName 'standards.PasswordExpireDisabled' -FieldValue $FieldValue -Tenant $tenant + Set-CIPPStandardsCompareField -FieldName 'standards.PasswordExpireDisabled' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPerUserMFA.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPerUserMFA.ps1 index a9cb8cf01c4e..98d5a2fcb762 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPerUserMFA.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPerUserMFA.ps1 @@ -13,6 +13,17 @@ function Invoke-CIPPStandardPerUserMFA { CAT Entra (AAD) Standards TAG + "CIS M365 5.0 (1.2.1)" + "CIS M365 5.0 (1.1.1)" + "CIS M365 5.0 (1.1.2)" + "CISA (MS.AAD.1.1v1)" + "CISA (MS.AAD.1.2v1)" + "Essential 8 (1504)" + "Essential 8 (1173)" + "Essential 8 (1401)" + "NIST CSF 2.0 (PR.AA-03)" + EXECUTIVETEXT + Requires all employees to use multi-factor authentication for enhanced account security, significantly reducing the risk of unauthorized access from compromised passwords. This fundamental security measure protects against the majority of account-based attacks and is essential for maintaining strong cybersecurity posture. ADDEDCOMPONENT IMPACT High Impact @@ -29,10 +40,21 @@ function Invoke-CIPPStandardPerUserMFA { param($Tenant, $Settings) - $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$top=999&`$select=userPrincipalName,displayName,accountEnabled,perUserMfaState&`$filter=userType eq 'Member' and accountEnabled eq true and displayName ne 'On-Premises Directory Synchronization Service Account'&`$count=true" -tenantid $Tenant -ComplexFilter + try { + $AllUsers = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Users' + $GraphRequest = $AllUsers | Where-Object { + $_.userType -eq 'Member' -and + $_.accountEnabled -eq $true -and + $_.displayName -ne 'On-Premises Directory Synchronization Service Account' + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the PerUserMFA state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $UsersWithoutMFA = $GraphRequest | Where-Object -Property perUserMfaState -NE 'enforced' | Select-Object -Property userPrincipalName, displayName, accountEnabled, perUserMfaState - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { if (($UsersWithoutMFA | Measure-Object).Count -gt 0) { try { $MFAMessage = Set-CIPPPerUserMFA -TenantFilter $Tenant -userId @($UsersWithoutMFA.userPrincipalName) -State 'enforced' @@ -41,6 +63,13 @@ function Invoke-CIPPStandardPerUserMFA { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to enforce MFA for all users: $ErrorMessage" -sev Error } + + # Refresh user cache after remediation + try { + Set-CIPPDBCacheUsers -TenantFilter $Tenant + } catch { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to refresh user cache after remediation: $($_.Exception.Message)" -sev Warning + } } } if ($Settings.alert -eq $true) { @@ -52,8 +81,13 @@ function Invoke-CIPPStandardPerUserMFA { } } if ($Settings.report -eq $true) { - $State = $UsersWithoutMFA ? $UsersWithoutMFA : $true - Set-CIPPStandardsCompareField -FieldName 'standards.PerUserMFA' -FieldValue $State -Tenant $tenant + $CurrentValue = @{ + UsersWithoutMFA = @($UsersWithoutMFA) + } + $ExpectedValue = @{ + UsersWithoutMFA = @() + } + Set-CIPPStandardsCompareField -FieldName 'standards.PerUserMFA' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $tenant Add-CIPPBPAField -FieldName 'LegacyMFAUsers' -FieldValue $UsersWithoutMFA -StoreAs json -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPhishProtection.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPhishProtection.ps1 index 5469ef708182..8f79c8d5a850 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPhishProtection.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPhishProtection.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardPhishProtection { CAT Global Standards TAG + EXECUTIVETEXT + Implements advanced phishing protection by adding visual indicators to login pages that help users identify legitimate Microsoft login pages versus fraudulent copies. This security measure protects against sophisticated phishing attacks that attempt to steal employee credentials. ADDEDCOMPONENT IMPACT Low Impact @@ -31,10 +33,19 @@ function Invoke-CIPPStandardPhishProtection { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'PhishProtection' + + $TestResult = Test-CIPPStandardLicense -StandardName 'PhishProtection' -TenantFilter $Tenant -RequiredCapabilities @('AAD_PREMIUM', 'AAD_PREMIUM_P2') + + if ($TestResult -eq $false) { + return $true + } #we're done. $TenantId = Get-Tenants | Where-Object -Property defaultDomainName -EQ $tenant + $Table = Get-CIPPTable -TableName Config + $CippConfig = (Get-CIPPAzDataTableEntity @Table) + $CIPPUrl = ($CippConfig | Where-Object { $_.RowKey -eq 'CIPPURL' }).Value + try { $currentBody = (New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/organization/$($TenantId.customerId)/branding/localizations/0/customCSS" -tenantid $tenant) } catch { @@ -42,11 +53,22 @@ function Invoke-CIPPStandardPhishProtection { } $CSS = @" .ext-sign-in-box { - background-image: url(https://clone.cipp.app/api/PublicPhishingCheck?Tenantid=$($tenant)&URL=$($Settings.URL)); + background-image: url(https://clone.cipp.app/api/PublicPhishingCheck?Tenantid=$($tenant)&URL=https://$($CIPPUrl)); } "@ if ($Settings.remediate -eq $true) { + $malformedCSSPattern = '\.ext-sign-in-box\s*\{\s*background-image:\s*url\(https://clone\.cipp\.app/api/PublicPhishingCheck\?Tenantid=[^&]*&URL=\);\s*\}' + if ($currentBody -match $malformedCSSPattern) { + if ($Settings.remediate -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Attempting to fix malformed PhishProtection CSS by removing the problematic pattern' -sev Info + # Remove the malformed CSS pattern + $currentBody = $currentBody -replace $malformedCSSPattern, '' + # Clean up any duplicate .ext-sign-in-box entries + #$currentBody = $currentBody -replace '\.ext-sign-in-box\s*\{[^}]*\}\s*\.ext-sign-in-box', '.ext-sign-in-box' + } + } + try { if (!$currentBody) { $AddedHeaders = @{'Accept-Language' = 0 } @@ -58,11 +80,9 @@ function Invoke-CIPPStandardPhishProtection { } } if ($currentBody -like "*$CSS*") { - Write-Host 'Logon Screen Phishing Protection system already active' Write-LogMessage -API 'Standards' -tenant $tenant -message 'Logon Screen Phishing Protection system already active' -sev Info } else { $currentBody = $currentBody + $CSS - Write-Host 'Creating Logon Screen Phishing Protection System' New-GraphPostRequest -tenantid $tenant -Uri "https://graph.microsoft.com/beta/organization/$($TenantId.customerId)/branding/localizations/0/customCSS" -ContentType 'text/css' -asApp $true -Type PUT -Body $currentBody Write-LogMessage -API 'Standards' -tenant $tenant -message 'Enabled Logon Screen Phishing Protection system' -sev Info @@ -83,7 +103,13 @@ function Invoke-CIPPStandardPhishProtection { } if ($Settings.report -eq $true) { if ($currentBody -like "*$CSS*") { $authState = $true } else { $authState = $false } + $CurrentValue = @{ + PhishingCSSEnabled = $authState + } + $ExpectedValue = @{ + PhishingCSSEnabled = $true + } Add-CIPPBPAField -FieldName 'PhishProtection' -FieldValue $authState -StoreAs bool -Tenant $tenant - Set-CIPPStandardsCompareField -FieldName 'standards.PhishProtection' -FieldValue $authState -Tenant $tenant + Set-CIPPStandardsCompareField -FieldName 'standards.PhishProtection' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPhishSimSpoofIntelligence.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPhishSimSpoofIntelligence.ps1 index 12bcc2280571..e2de19d4fd2e 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPhishSimSpoofIntelligence.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPhishSimSpoofIntelligence.ps1 @@ -30,15 +30,26 @@ function Invoke-CIPPStandardPhishSimSpoofIntelligence { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'PhishSimSpoofIntelligence' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. # Fetch current Phishing Simulations Spoof Intelligence domains and ensure it is correctly configured - $DomainState = New-ExoRequest -TenantId $Tenant -cmdlet 'Get-TenantAllowBlockListSpoofItems' | - Select-Object -Property Identity,SendingInfrastructure + try { + $DomainState = New-ExoRequest -TenantId $Tenant -cmdlet 'Get-TenantAllowBlockListSpoofItems' | + Select-Object -Property Identity, SendingInfrastructure + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the PhishSimSpoofIntelligence state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } [String[]]$AddDomain = $Settings.AllowedDomains.value | Where-Object { $_ -notin $DomainState.SendingInfrastructure } if ($Settings.RemoveExtraDomains -eq $true) { $RemoveDomain = $DomainState | Where-Object { $_.SendingInfrastructure -notin $Settings.AllowedDomains.value } | - Select-Object -Property Identity,SendingInfrastructure + Select-Object -Property Identity, SendingInfrastructure } else { $RemoveDomain = @() } @@ -46,20 +57,19 @@ function Invoke-CIPPStandardPhishSimSpoofIntelligence { $StateIsCorrect = ($AddDomain.Count -eq 0 -and $RemoveDomain.Count -eq 0) $CompareField = [PSCustomObject]@{ - "Missing Domains" = $AddDomain -join ', ' - "Incorrect Domains" = $RemoveDomain.SendingInfrastructure -join ', ' + 'Missing Domains' = $AddDomain -join ', ' + 'Incorrect Domains' = $RemoveDomain.SendingInfrastructure -join ', ' } - If ($Settings.remediate -eq $true) { - If ($StateIsCorrect -eq $true) { + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Spoof Intelligence Allow list already correctly configured' -sev Info - } Else { + } else { $BulkRequests = New-Object System.Collections.Generic.List[Hashtable] if ($Settings.RemoveExtraDomains -eq $true) { # Prepare removal requests - If ($RemoveDomain.Count -gt 0) { - Write-Host "Removing $($RemoveDomain.Count) domains from Spoof Intelligence" + if ($RemoveDomain.Count -gt 0) { $BulkRequests.Add(@{ CmdletInput = @{ CmdletName = 'Remove-TenantAllowBlockListSpoofItems' @@ -70,45 +80,52 @@ function Invoke-CIPPStandardPhishSimSpoofIntelligence { } # Prepare addition requests - ForEach ($Domain in $AddDomain) { + foreach ($Domain in $AddDomain) { $BulkRequests.Add(@{ - CmdletInput = @{ - CmdletName = 'New-TenantAllowBlockListSpoofItems' - Parameters = @{ Identity = 'default'; Action = 'Allow'; SendingInfrastructure = $Domain; SpoofedUser = '*'; SpoofType = 'Internal' } - } - }) + CmdletInput = @{ + CmdletName = 'New-TenantAllowBlockListSpoofItems' + Parameters = @{ Identity = 'default'; Action = 'Allow'; SendingInfrastructure = $Domain; SpoofedUser = '*'; SpoofType = 'Internal' } + } + }) $BulkRequests.Add(@{ - CmdletInput = @{ - CmdletName = 'New-TenantAllowBlockListSpoofItems' - Parameters = @{ Identity = 'default'; Action = 'Allow'; SendingInfrastructure = $Domain; SpoofedUser = '*'; SpoofType = 'External' } - } - }) + CmdletInput = @{ + CmdletName = 'New-TenantAllowBlockListSpoofItems' + Parameters = @{ Identity = 'default'; Action = 'Allow'; SendingInfrastructure = $Domain; SpoofedUser = '*'; SpoofType = 'External' } + } + }) } $RawExoRequest = New-ExoBulkRequest -tenantid $Tenant -cmdletArray @($BulkRequests) $LastError = $RawExoRequest | Select-Object -Last 1 - If ($LastError.error) { - Foreach ($ExoError in $LastError.error) { + if ($LastError.error) { + foreach ($ExoError in $LastError.error) { Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Failed to process Spoof Intelligence Domain with error: $ExoError" -Sev Error } - } Else { - Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Processed all Spoof Intelligence Domains successfully." -Sev Info + } else { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Processed all Spoof Intelligence Domains successfully.' -Sev Info } } } - If ($Settings.alert -eq $true) { - If ($StateIsCorrect -eq $true) { + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Spoof Intelligence Allow list is correctly configured' -sev Info - } Else { + } else { Write-StandardsAlert -message 'Spoof Intelligence Allow list is not correctly configured' -object $CompareField -tenant $Tenant -standardName 'PhishSimSpoofIntelligence' -standardId $Settings.standardId Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Spoof Intelligence Allow list is not correctly configured' -sev Info } } - If ($Settings.report -eq $true) { - $FieldValue = $StateIsCorrect ? $true : $CompareField - Set-CIPPStandardsCompareField -FieldName 'standards.PhishSimSpoofIntelligence' -FieldValue $FieldValue -Tenant $Tenant + if ($Settings.report -eq $true) { + $CurrentValue = @{ + AllowedDomains = @($DomainState.SendingInfrastructure) + IsCompliant = [bool]$StateIsCorrect + } + $ExpectedValue = @{ + AllowedDomains = @($Settings.AllowedDomains.value) + IsCompliant = $true + } + Set-CIPPStandardsCompareField -FieldName 'standards.PhishSimSpoofIntelligence' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant Add-CIPPBPAField -FieldName 'PhishSimSpoofIntelligence' -FieldValue [bool]$StateIsCorrect -StoreAs bool -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPhishingSimulations.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPhishingSimulations.ps1 index 742871deffa8..978cd750c317 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPhishingSimulations.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPhishingSimulations.ps1 @@ -32,18 +32,29 @@ function Invoke-CIPPStandardPhishingSimulations { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'PhishingSimulations' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. $PolicyName = 'CIPPPhishSim' # Fetch current Phishing Simulations Policy settings and ensure it is correctly configured - $PolicyState = New-ExoRequest -TenantId $Tenant -cmdlet 'Get-PhishSimOverridePolicy' | - Where-Object -Property Name -EQ 'PhishSimOverridePolicy' | - Select-Object -Property Identity,Name,Mode,Enabled + try { + $PolicyState = New-ExoRequest -TenantId $Tenant -cmdlet 'Get-PhishSimOverridePolicy' | + Where-Object -Property Name -EQ 'PhishSimOverridePolicy' | + Select-Object -Property Identity, Name, Mode, Enabled + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the PhishingSimulations state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $PolicyIsCorrect = ($PolicyState.Name -eq 'PhishSimOverridePolicy') -and ($PolicyState.Enabled -eq $true) # Fetch current Phishing Simulations Policy Rule settings and ensure it is correctly configured $RuleState = New-ExoRequest -TenantId $Tenant -cmdlet 'Get-ExoPhishSimOverrideRule' | - Select-Object -Property Identity,Name,SenderIpRanges,Domains,SenderDomainIs + Select-Object -Property Identity, Name, SenderIpRanges, Domains, SenderDomainIs [String[]]$AddSenderIpRanges = $Settings.SenderIpRanges.value | Where-Object { $_ -notin $RuleState.SenderIpRanges } if ($Settings.RemoveExtraUrls -eq $true) { @@ -59,13 +70,13 @@ function Invoke-CIPPStandardPhishingSimulations { $RemoveDomains = @() } - $RuleIsCorrect = ($RuleState.Name -like "*PhishSimOverr*") -and + $RuleIsCorrect = ($RuleState.Name -like '*PhishSimOverr*') -and ($AddSenderIpRanges.Count -eq 0 -and $RemoveSenderIpRanges.Count -eq 0) -and ($AddDomains.Count -eq 0 -and $RemoveDomains.Count -eq 0) # Fetch current Phishing Simulations URLs and ensure it is correctly configured - $SimUrlState = New-ExoRequest -TenantId $Tenant -cmdlet 'Get-TenantAllowBlockListItems' -cmdParams @{ListType = 'Url'; ListSubType = 'AdvancedDelivery'} | - Select-Object -Property Value + $SimUrlState = New-ExoRequest -TenantId $Tenant -cmdlet 'Get-TenantAllowBlockListItems' -cmdParams @{ListType = 'Url'; ListSubType = 'AdvancedDelivery' } | + Select-Object -Property Value [String[]]$AddEntries = $Settings.PhishingSimUrls.value | Where-Object { $_ -notin $SimUrlState.value } if ($Settings.RemoveExtraUrls -eq $true) { @@ -85,107 +96,118 @@ function Invoke-CIPPStandardPhishingSimulations { PhishingSimUrls = $SimUrlState.value -join ', ' } - If ($Settings.remediate -eq $true) { - If ($StateIsCorrect -eq $true) { + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Advanced Phishing Simulations already correctly configured' -sev Info - } Else { + } else { # Remediate incorrect Phishing Simulations Policy - If ($PolicyIsCorrect -eq $false) { - If ($PolicyState.Name -eq 'PhishSimOverridePolicy') { - Try { - $null = New-ExoRequest -TenantId $Tenant -cmdlet 'Set-PhishSimOverridePolicy' -cmdParams @{Identity = $PolicyName; Enabled = $true} - Write-LogMessage -API 'Standards' -Tenant $Tenant -message "Enabled Phishing Simulation override policy." -sev Info - } Catch { - Write-LogMessage -API 'Standards' -Tenant $Tenant -message "Failed to enable Phishing Simulation override policy." -sev Error -LogData $_ + if ($PolicyIsCorrect -eq $false) { + if ($PolicyState.Name -eq 'PhishSimOverridePolicy') { + try { + $null = New-ExoRequest -TenantId $Tenant -cmdlet 'Set-PhishSimOverridePolicy' -cmdParams @{Identity = $PolicyName; Enabled = $true } + Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Enabled Phishing Simulation override policy.' -sev Info + } catch { + Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Failed to enable Phishing Simulation override policy.' -sev Error -LogData $_ } - } Else { - Try { - $null = New-ExoRequest -TenantId $Tenant -cmdlet 'New-PhishSimOverridePolicy' -cmdParams @{Name = $PolicyName; Enabled = $true} - Write-LogMessage -API 'Standards' -Tenant $Tenant -message "Created Phishing Simulation override policy." -sev Info - } Catch { - Write-LogMessage -API 'Standards' -Tenant $Tenant -message "Failed to create Phishing Simulation override policy." -sev Error -LogData $_ + } else { + try { + $null = New-ExoRequest -TenantId $Tenant -cmdlet 'New-PhishSimOverridePolicy' -cmdParams @{Name = $PolicyName; Enabled = $true } + Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Created Phishing Simulation override policy.' -sev Info + } catch { + Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Failed to create Phishing Simulation override policy.' -sev Error -LogData $_ } } } # Remediate incorrect Phishing Simulations Policy Rule - If ($RuleIsCorrect -eq $false) { - If ($RuleState.Name -like "*PhishSimOverr*") { + if ($RuleIsCorrect -eq $false) { + if ($RuleState.Name -like '*PhishSimOverr*') { $cmdParams = @{ - Identity = $RuleState.Identity - AddSenderIpRanges = $AddSenderIpRanges - AddDomains = $AddDomains + Identity = $RuleState.Identity + AddSenderIpRanges = $AddSenderIpRanges + AddDomains = $AddDomains RemoveSenderIpRanges = $RemoveSenderIpRanges - RemoveDomains = $RemoveDomains + RemoveDomains = $RemoveDomains } - Try { + try { $null = New-ExoRequest -TenantId $Tenant -cmdlet 'Set-ExoPhishSimOverrideRule' -cmdParams $cmdParams - Write-LogMessage -API 'Standards' -Tenant $Tenant -message "Updated Phishing Simulation override rule." -sev Info - } Catch { - Write-LogMessage -API 'Standards' -Tenant $Tenant -message "Failed to update Phishing Simulation override rule." -sev Error -LogData $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Updated Phishing Simulation override rule.' -sev Info + } catch { + Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Failed to update Phishing Simulation override rule.' -sev Error -LogData $_ } - } Else { + } else { $cmdParams = @{ - Name = $PolicyName - Policy = 'PhishSimOverridePolicy' + Name = $PolicyName + Policy = 'PhishSimOverridePolicy' SenderIpRanges = $Settings.SenderIpRanges.value - Domains = $Settings.Domains.value + Domains = $Settings.Domains.value } - Try { + try { $null = New-ExoRequest -TenantId $Tenant -cmdlet 'New-ExoPhishSimOverrideRule' -cmdParams $cmdParams - Write-LogMessage -API 'Standards' -Tenant $Tenant -message "Created Phishing Simulation override rule." -sev Info - } Catch { - Write-LogMessage -API 'Standards' -Tenant $Tenant -message "Failed to create Phishing Simulation override rule." -sev Error -LogData $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Created Phishing Simulation override rule.' -sev Info + } catch { + Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Failed to create Phishing Simulation override rule.' -sev Error -LogData $_ } } } # Remediate incorrect Phishing Simulations URLs - If ($PhishingSimUrlsIsCorrect -eq $false) { + if ($PhishingSimUrlsIsCorrect -eq $false) { $cmdParams = @{ - ListType = 'Url' + ListType = 'Url' ListSubType = 'AdvancedDelivery' } if ($Settings.RemoveExtraUrls -eq $true) { # Remove entries that are not in the settings - If ($RemoveEntries.Count -gt 0) { + if ($RemoveEntries.Count -gt 0) { $cmdParams.Entries = $RemoveEntries - Try { + try { $null = New-ExoRequest -TenantId $Tenant -cmdlet 'Remove-TenantAllowBlockListItems' -cmdParams $cmdParams - Write-LogMessage -API 'Standards' -Tenant $Tenant -message "Removed Phishing Simulation URLs from Allowlist." -sev Info - } Catch { - Write-LogMessage -API 'Standards' -Tenant $Tenant -message "Failed to remove Phishing Simulation URLs from Allowlist." -sev Error -LogData $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Removed Phishing Simulation URLs from Allowlist.' -sev Info + } catch { + Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Failed to remove Phishing Simulation URLs from Allowlist.' -sev Error -LogData $_ } } } # Add entries that are in the settings - If ($AddEntries.Count -gt 0) { + if ($AddEntries.Count -gt 0) { $cmdParams.Entries = $AddEntries $cmdParams.NoExpiration = $true $cmdParams.Allow = $true - Try { + try { $null = New-ExoRequest -TenantId $Tenant -cmdlet 'New-TenantAllowBlockListItems' -cmdParams $cmdParams - Write-LogMessage -API 'Standards' -Tenant $Tenant -message "Added Phishing Simulation URLs to Allowlist." -sev Info - } Catch { - Write-LogMessage -API 'Standards' -Tenant $Tenant -message "Failed to add Phishing Simulation URLs to Allowlist." -sev Error -LogData $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Added Phishing Simulation URLs to Allowlist.' -sev Info + } catch { + Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Failed to add Phishing Simulation URLs to Allowlist.' -sev Error -LogData $_ } } } } } - If ($Settings.alert -eq $true) { - If ($StateIsCorrect -eq $true) { + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Phishing Simulation Configuration is correctly configured' -sev Info - } Else { + } else { Write-StandardsAlert -message 'Phishing Simulation Configuration is not correctly configured' -object $CompareField -tenant $Tenant -standardName 'PhishingSimulations' -standardId $Settings.standardId Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Phishing Simulation Configuration is not correctly configured' -sev Info } } - If ($Settings.report -eq $true) { - $FieldValue = $StateIsCorrect ? $true : $CompareField + if ($Settings.report -eq $true) { + $CurrentValue = @{ + Domains = @($RuleState.Domains) + SenderIpRanges = @($RuleState.SenderIpRanges) + PhishingSimUrls = @($SimUrlState.value) + IsCompliant = $StateIsCorrect + } + $ExpectedValue = @{ + Domains = @($Settings.Domains.value) + SenderIpRanges = @($Settings.SenderIpRanges.value) + PhishingSimUrls = @($Settings.PhishingSimUrls.value) + IsCompliant = $true + } Add-CIPPBPAField -FieldName 'PhishingSimulations' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant - Set-CIPPStandardsCompareField -FieldName 'standards.PhishingSimulations' -FieldValue $FieldValue -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.PhishingSimulations' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardProfilePhotos.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardProfilePhotos.ps1 index 2eb1b6222131..a7b462a40fdb 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardProfilePhotos.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardProfilePhotos.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardProfilePhotos { CAT Global Standards TAG + EXECUTIVETEXT + Manages user profile photo permissions within Microsoft 365, allowing organizations to control whether employees can upload their own photos or require administrative approval. This helps maintain professional appearance standards and prevents inappropriate images in corporate directories. ADDEDCOMPONENT {"type":"autoComplete","multiple":false,"creatable":false,"label":"Select value","name":"standards.ProfilePhotos.state","options":[{"label":"Enabled","value":"enabled"},{"label":"Disabled","value":"disabled"}]} IMPACT @@ -29,6 +31,11 @@ function Invoke-CIPPStandardProfilePhotos { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'ProfilePhotos' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. # Get state value using null-coalescing operator $StateValue = $Settings.state.value ?? $Settings.state @@ -36,15 +43,21 @@ function Invoke-CIPPStandardProfilePhotos { # Input validation if ([string]::IsNullOrWhiteSpace($StateValue)) { Write-LogMessage -API 'Standards' -tenant $tenant -message 'ProfilePhotos: Invalid state parameter set' -sev Error - Return + return } # true if wanted state is enabled, false if disabled $DesiredState = $StateValue -eq 'enabled' # Get current Graph policy state - $Uri = 'https://graph.microsoft.com/beta/admin/people/photoUpdateSettings' - $CurrentGraphState = New-GraphGetRequest -uri $Uri -tenantid $Tenant + try { + $Uri = 'https://graph.microsoft.com/beta/admin/people/photoUpdateSettings' + $CurrentGraphState = New-GraphGetRequest -uri $Uri -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the ProfilePhotos state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $UsersCanChangePhotos = if ([string]::IsNullOrWhiteSpace($CurrentGraphState.allowedRoles) ) { $true } else { $false } $GraphStateCorrect = $UsersCanChangePhotos -eq $DesiredState @@ -61,20 +74,15 @@ function Invoke-CIPPStandardProfilePhotos { $CurrentStatesCorrect = $GraphStateCorrect -eq $true -and $OWAStateCorrect -eq $true if ($Settings.remediate -eq $true) { - Write-Host 'Time to remediate' - if ($CurrentStatesCorrect -eq $false) { - Write-Host 'Settings are not correct' try { if ($StateValue -eq 'enabled') { - Write-Host 'Enabling' # Enable photo updates $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-OwaMailboxPolicy' -cmdParams @{Identity = $CurrentOWAState.Identity; SetPhotoEnabled = $true } -useSystemMailbox $true $null = New-GraphPostRequest -uri $Uri -tenant $Tenant -type DELETE -AsApp $true Write-LogMessage -API 'Standards' -tenant $Tenant -message "Set Profile photo settings to $StateValue" -sev Info } else { - Write-Host 'Disabling' # Disable photo updates $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-OwaMailboxPolicy' -cmdParams @{Identity = $CurrentOWAState.Identity; SetPhotoEnabled = $false } -useSystemMailbox $true @@ -94,7 +102,6 @@ function Invoke-CIPPStandardProfilePhotos { Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set profile photo settings to $StateValue. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage } } else { - Write-Host 'Settings are correct' Write-LogMessage -API 'Standards' -tenant $Tenant -message "Profile photo settings are already set to the desired state: $StateValue" -sev Info } } @@ -118,6 +125,12 @@ function Invoke-CIPPStandardProfilePhotos { GraphStateCorrect = $GraphStateCorrect } } - Set-CIPPStandardsCompareField -FieldName 'standards.ProfilePhotos' -FieldValue $FieldValue -Tenant $Tenant + $CurrentValue = @{ + ProfilePhotosEnabled = $UsersCanChangePhotos + } + $ExpectedValue = @{ + ProfilePhotosEnabled = $DesiredState + } + Set-CIPPStandardsCompareField -FieldName 'standards.ProfilePhotos' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardQuarantineRequestAlert.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardQuarantineRequestAlert.ps1 index 782d847ec8a1..2e4a10d64eda 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardQuarantineRequestAlert.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardQuarantineRequestAlert.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardQuarantineRequestAlert { CAT Defender Standards TAG + EXECUTIVETEXT + Notifies IT administrators when employees request to release emails that were quarantined for security reasons, enabling oversight of potentially dangerous messages. This helps ensure that legitimate emails are released while maintaining security controls over suspicious content. ADDEDCOMPONENT {"type":"textField","name":"standards.QuarantineRequestAlert.NotifyUser","label":"E-mail to receive the alert"} IMPACT @@ -29,12 +31,21 @@ function Invoke-CIPPStandardQuarantineRequestAlert { #> param ($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'QuarantineRequestAlert' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + if ($TestResult -eq $false) { + return $true + } #we're done. $PolicyName = 'CIPP User requested to release a quarantined message' - $CurrentState = New-ExoRequest -TenantId $Tenant -cmdlet 'Get-ProtectionAlert' -Compliance | - Where-Object { $_.Name -eq $PolicyName } | - Select-Object -Property * + try { + $CurrentState = New-ExoRequest -TenantId $Tenant -cmdlet 'Get-ProtectionAlert' -Compliance | + Where-Object { $_.Name -eq $PolicyName } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the QuarantineRequestAlert state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $StateIsCorrect = ($CurrentState.NotifyUser -contains $Settings.NotifyUser) @@ -87,11 +98,12 @@ function Invoke-CIPPStandardQuarantineRequestAlert { if ($Settings.report -eq $true) { Add-CIPPBPAField -FieldName 'QuarantineRequestAlert' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant - if ($StateIsCorrect) { - $FieldValue = $true - } else { - $FieldValue = @{NotifyUser = $CurrentState.notifyUser } + $CurrentValue = @{ + NotifyUser = @($CurrentState.NotifyUser) + } + $ExpectedValue = @{ + NotifyUser = @($Settings.NotifyUser) } - Set-CIPPStandardsCompareField -FieldName 'standards.QuarantineRequestAlert' -FieldValue $FieldValue -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.QuarantineRequestAlert' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardQuarantineTemplate.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardQuarantineTemplate.ps1 index 4f76c8f4378c..c490d80e062d 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardQuarantineTemplate.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardQuarantineTemplate.ps1 @@ -15,6 +15,8 @@ function Invoke-CIPPStandardQuarantineTemplate { DISABLEDFEATURES {"report":false,"warn":false,"remediate":false} TAG + EXECUTIVETEXT + Creates standardized quarantine policies that define how employees can interact with quarantined emails, including permissions to release, delete, or preview suspicious messages. This ensures consistent security handling across the organization while providing appropriate user access to manage quarantined content. ADDEDCOMPONENT {"type":"autoComplete","multiple":false,"creatable":true,"name":"displayName","label":"Quarantine Display Name","required":true} {"type":"switch","label":"Enable end-user spam notifications","name":"ESNEnabled","defaultValue":true,"required":false} @@ -40,122 +42,124 @@ function Invoke-CIPPStandardQuarantineTemplate { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'QuarantineTemplate' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. $APIName = 'Standards' try { # Get the current custom quarantine policies - $CurrentPolicies = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-QuarantinePolicy' | Where-Object -Property Guid -ne '00000000-0000-0000-0000-000000000000' -ErrorAction Stop + $CurrentPolicies = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-QuarantinePolicy' | Where-Object -Property Guid -NE '00000000-0000-0000-0000-000000000000' -ErrorAction Stop # Compare the settings from standard with the current policies $CompareList = foreach ($Policy in $Settings) { try { # Create hashtable with desired Quarantine Setting - $EndUserQuarantinePermissions = @{ + $EndUserQuarantinePermissions = @{ # ViewHeader and Download are set to false because the value 0 or 1 does nothing per Microsoft documentation - PermissionToViewHeader = $false - PermissionToDownload = $false - PermissionToBlockSender = $Policy.PermissionToBlockSender - PermissionToDelete = $Policy.PermissionToDelete - PermissionToPreview = $Policy.PermissionToPreview - PermissionToRelease = $Policy.ReleaseAction -eq "PermissionToRelease" ? $true : $false - PermissionToRequestRelease = $Policy.ReleaseAction -eq "PermissionToRequestRelease" ? $true : $false - PermissionToAllowSender = $Policy.PermissionToAllowSender + PermissionToViewHeader = $false + PermissionToDownload = $false + PermissionToBlockSender = $Policy.PermissionToBlockSender + PermissionToDelete = $Policy.PermissionToDelete + PermissionToPreview = $Policy.PermissionToPreview + PermissionToRelease = $Policy.ReleaseAction -eq 'PermissionToRelease' ? $true : $false + PermissionToRequestRelease = $Policy.ReleaseAction -eq 'PermissionToRequestRelease' ? $true : $false + PermissionToAllowSender = $Policy.PermissionToAllowSender } # If the Quarantine Policy already exists if ($Policy.displayName.value -in $CurrentPolicies.Name) { #Get the current policy and convert EndUserQuarantinePermissions from string to hashtable for compare - $ExistingPolicy = $CurrentPolicies | Where-Object -Property Name -eq $Policy.displayName.value + $ExistingPolicy = $CurrentPolicies | Where-Object -Property Name -EQ $Policy.displayName.value $ExistingPolicyEndUserQuarantinePermissions = Convert-QuarantinePermissionsValue -InputObject $ExistingPolicy.EndUserQuarantinePermissions -ErrorAction Stop #Compare the current policy $StateIsCorrect = ($ExistingPolicy.Name -eq $Policy.displayName.value) -and - ($ExistingPolicy.ESNEnabled -eq $Policy.ESNEnabled) -and - ($ExistingPolicy.IncludeMessagesFromBlockedSenderAddress -eq $Policy.IncludeMessagesFromBlockedSenderAddress) -and - (!(Compare-Object @($ExistingPolicyEndUserQuarantinePermissions.values) @($EndUserQuarantinePermissions.values))) + ($ExistingPolicy.ESNEnabled -eq $Policy.ESNEnabled) -and + ($ExistingPolicy.IncludeMessagesFromBlockedSenderAddress -eq $Policy.IncludeMessagesFromBlockedSenderAddress) -and + (!(Compare-Object @($ExistingPolicyEndUserQuarantinePermissions.values) @($EndUserQuarantinePermissions.values))) # If the current policy is correct if ($StateIsCorrect -eq $true) { [PSCustomObject]@{ - missing = $false - StateIsCorrect = $StateIsCorrect - Action = "None" - displayName = $Policy.displayName.value - EndUserQuarantinePermissions = $EndUserQuarantinePermissions - ESNEnabled = $Policy.ESNEnabled + missing = $false + StateIsCorrect = $StateIsCorrect + Action = 'None' + displayName = $Policy.displayName.value + EndUserQuarantinePermissions = $EndUserQuarantinePermissions + ESNEnabled = $Policy.ESNEnabled IncludeMessagesFromBlockedSenderAddress = $Policy.IncludeMessagesFromBlockedSenderAddress - remediate = $Policy.remediate - alert = $Policy.alert - report = $Policy.report + remediate = $Policy.remediate + alert = $Policy.alert + report = $Policy.report } } #If the current policy doesn't match the desired settings else { [PSCustomObject]@{ - missing = $false - StateIsCorrect = $StateIsCorrect - Action = "Update" - displayName = $Policy.displayName.value - EndUserQuarantinePermissions = $EndUserQuarantinePermissions - ESNEnabled = $Policy.ESNEnabled + missing = $false + StateIsCorrect = $StateIsCorrect + Action = 'Update' + displayName = $Policy.displayName.value + EndUserQuarantinePermissions = $EndUserQuarantinePermissions + ESNEnabled = $Policy.ESNEnabled IncludeMessagesFromBlockedSenderAddress = $Policy.IncludeMessagesFromBlockedSenderAddress - remediate = $Policy.remediate - alert = $Policy.alert - report = $Policy.report + remediate = $Policy.remediate + alert = $Policy.alert + report = $Policy.report } } } #If no existing Quarantine Policy with the same name was found else { [PSCustomObject]@{ - missing = $true - StateIsCorrect = $false - Action = "Create" - displayName = $Policy.displayName.value - EndUserQuarantinePermissions = $EndUserQuarantinePermissions - ESNEnabled = $Policy.ESNEnabled + missing = $true + StateIsCorrect = $false + Action = 'Create' + displayName = $Policy.displayName.value + EndUserQuarantinePermissions = $EndUserQuarantinePermissions + ESNEnabled = $Policy.ESNEnabled IncludeMessagesFromBlockedSenderAddress = $Policy.IncludeMessagesFromBlockedSenderAddress - remediate = $Policy.remediate - alert = $Policy.alert - report = $Policy.report + remediate = $Policy.remediate + alert = $Policy.alert + report = $Policy.report } } - } - catch { + } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message $Message = "Failed to compare Quarantine policy $($Policy.displayName.value), Error: $ErrorMessage" Write-LogMessage -API $APIName -tenant $tenant -message $Message -sev 'Error' - Return $Message + return $Message } } - If ($true -in $Settings.remediate) { + if ($true -in $Settings.remediate) { # Remediate each policy which is incorrect or missing - foreach ($Policy in $CompareList | Where-Object { $_.remediate -EQ $true -and $_.StateIsCorrect -eq $false }) { + foreach ($Policy in $CompareList | Where-Object { $_.remediate -eq $true -and $_.StateIsCorrect -eq $false }) { try { # Parameters for splatting to Set-CIPPQuarantinePolicy $Params = @{ - Action = $Policy.Action - Identity = $Policy.displayName - EndUserQuarantinePermissions = $Policy.EndUserQuarantinePermissions - ESNEnabled = $Policy.ESNEnabled + Action = $Policy.Action + Identity = $Policy.displayName + EndUserQuarantinePermissions = $Policy.EndUserQuarantinePermissions + ESNEnabled = $Policy.ESNEnabled IncludeMessagesFromBlockedSenderAddress = $Policy.IncludeMessagesFromBlockedSenderAddress - tenantFilter = $Tenant - APIName = $APIName + tenantFilter = $Tenant + APIName = $APIName } try { Set-CIPPQuarantinePolicy @Params Write-LogMessage -API $APIName -tenant $Tenant -message "$($Policy.Action)d Custom Quarantine Policy '$($Policy.displayName)'" -sev Info - } - catch { + } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message Write-LogMessage -API $APIName -tenant $tenant -message "Failed to $($Policy.Action) Quarantine policy $($Policy.displayName), Error: $ErrorMessage" -sev 'Error' } - } - catch { + } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message Write-LogMessage -API $APIName -tenant $tenant -message "Failed to create or update Quarantine policy $($Policy.displayName), Error: $ErrorMessage" -sev 'Error' } @@ -166,15 +170,13 @@ function Invoke-CIPPStandardQuarantineTemplate { foreach ($Policy in $CompareList | Where-Object -Property alert -EQ $true) { if ($Policy.StateIsCorrect) { Write-LogMessage -API $APIName -tenant $Tenant -message "Quarantine policy $($Policy.displayName) has the correct configuration." -sev Info - } - else { + } else { if ($Policy.missing) { $CurrentInfo = $Policy | Select-Object -Property displayName, missing Write-StandardsAlert -message "Quarantine policy $($Policy.displayName) is missing." -object $CurrentInfo -tenant $Tenant -standardName 'QuarantineTemplate' -standardId $Settings.templateId Write-LogMessage -API $APIName -tenant $Tenant -message "Quarantine policy $($Policy.displayName) is missing." -sev info - } - else { - $CurrentInfo = $CurrentPolicies | Where-Object -Property Name -eq $Policy.displayName | Select-Object -Property Name, ESNEnabled, IncludeMessagesFromBlockedSenderAddress, EndUserQuarantinePermissions + } else { + $CurrentInfo = $CurrentPolicies | Where-Object -Property Name -EQ $Policy.displayName | Select-Object -Property Name, ESNEnabled, IncludeMessagesFromBlockedSenderAddress, EndUserQuarantinePermissions Write-StandardsAlert -message "Quarantine policy $($Policy.displayName) does not match the expected configuration." -object $CurrentInfo -tenant $Tenant -standardName 'QuarantineTemplate' -standardId $Settings.templateId Write-LogMessage -API $APIName -tenant $Tenant -message "Quarantine policy $($Policy.displayName) does not match the expected configuration. We've generated an alert" -sev info } @@ -186,11 +188,29 @@ function Invoke-CIPPStandardQuarantineTemplate { foreach ($Policy in $CompareList | Where-Object -Property report -EQ $true) { # Convert displayName to hex to avoid invalid characters "/, \, #, ?" which are not allowed in RowKey, but "\, #, ?" can be used in quarantine displayName $HexName = -join ($Policy.displayName.ToCharArray() | ForEach-Object { '{0:X2}' -f [int][char]$_ }) - Set-CIPPStandardsCompareField -FieldName "standards.QuarantineTemplate.$HexName" -FieldValue $Policy.StateIsCorrect -TenantFilter $Tenant + + $CurrentValue = @{ + displayName = $Policy.displayName + EndUserQuarantinePermissions = $Policy.EndUserQuarantinePermissions + ESNEnabled = $Policy.ESNEnabled + IncludeMessagesFromBlockedSenderAddress = $Policy.IncludeMessagesFromBlockedSenderAddress + StateIsCorrect = $Policy.StateIsCorrect + missing = $Policy.missing + } + + $ExpectedValue = @{ + displayName = $Policy.displayName + EndUserQuarantinePermissions = $Policy.EndUserQuarantinePermissions + ESNEnabled = $Policy.ESNEnabled + IncludeMessagesFromBlockedSenderAddress = $Policy.IncludeMessagesFromBlockedSenderAddress + StateIsCorrect = $true + missing = $false + } + + Set-CIPPStandardsCompareField -FieldName "standards.QuarantineTemplate.$HexName" -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant } } - } - catch { + } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message Write-LogMessage -API $APIName -tenant $tenant -message "Failed to create or update Quarantine policy/policies, Error: $ErrorMessage" -sev 'Error' } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardRestrictThirdPartyStorageServices.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardRestrictThirdPartyStorageServices.ps1 index d523b3d83174..517045ae0169 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardRestrictThirdPartyStorageServices.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardRestrictThirdPartyStorageServices.ps1 @@ -13,7 +13,9 @@ function Invoke-CIPPStandardRestrictThirdPartyStorageServices { CAT Global Standards TAG - "CIS" + "CIS M365 5.0 (1.3.7)" + EXECUTIVETEXT + Prevents employees from using external cloud storage services like Dropbox, Google Drive, and Box within Microsoft 365, reducing data security risks and ensuring all company data remains within controlled corporate systems. This helps maintain data governance and prevents potential data leaks to unauthorized platforms. ADDEDCOMPONENT IMPACT Medium Impact @@ -30,7 +32,11 @@ function Invoke-CIPPStandardRestrictThirdPartyStorageServices { #> param ($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'RestrictThirdPartyStorageServices' + $TestResult = Test-CIPPStandardLicense -StandardName 'ThirdPartyStorageServicesRestricted' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + + if ($TestResult -eq $false) { + return $true + } #we're done. $AppId = 'c1f33bc0-bdb4-4248-ba9b-096807ddb43e' $Uri = "https://graph.microsoft.com/beta/servicePrincipals?`$filter=appId eq '$AppId'" @@ -40,12 +46,10 @@ function Invoke-CIPPStandardRestrictThirdPartyStorageServices { } catch { $ErrorMessage = Get-CippException -Exception $_ Write-LogMessage -API 'Standards' -tenant $Tenant -message "Could not get current state for Microsoft 365 on the web service principal. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage - Return + return } if ($Settings.remediate -eq $true) { - Write-Host 'Time to remediate third-party storage services restriction' - # Check if service principal is already disabled if ($CurrentState.accountEnabled -eq $false) { Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Third-party storage services are already restricted (service principal is disabled).' -sev Info @@ -59,7 +63,7 @@ function Invoke-CIPPStandardRestrictThirdPartyStorageServices { # Normal /servicePrincipal/AppId does not find the service principal, so gotta use the Upsert method. Also handles if the service principal does not exist nicely. # https://learn.microsoft.com/en-us/graph/api/serviceprincipal-upsert?view=graph-rest-beta&tabs=http $UpdateUri = "https://graph.microsoft.com/beta/servicePrincipals(appId='$AppId')" - $null = New-GraphPostRequest -Uri $UpdateUri -Body $DisableBody -TenantID $Tenant -Type PATCH + $null = New-GraphPostRequest -Uri $UpdateUri -Body $DisableBody -TenantID $Tenant -Type PATCH -AddedHeaders @{'Prefer' = 'create-if-missing' } # Refresh the current state after disabling $CurrentState = New-GraphGetRequest -Uri $Uri -tenantid $Tenant | Select-Object displayName, accountEnabled, appId @@ -81,13 +85,15 @@ function Invoke-CIPPStandardRestrictThirdPartyStorageServices { } if ($Settings.report -eq $true) { - if ($null -eq $CurrentState.accountEnabled -or $CurrentState.accountEnabled -eq $true) { - Set-CIPPStandardsCompareField -FieldName 'standards.RestrictThirdPartyStorageServices' -FieldValue $false -Tenant $Tenant - Add-CIPPBPAField -FieldName 'ThirdPartyStorageServicesRestricted' -FieldValue $false -StoreAs bool -Tenant $Tenant - } else { - $CorrectState = $CurrentState.accountEnabled -eq $false ? $true : $false - Set-CIPPStandardsCompareField -FieldName 'standards.RestrictThirdPartyStorageServices' -FieldValue $CorrectState -Tenant $Tenant - Add-CIPPBPAField -FieldName 'ThirdPartyStorageServicesRestricted' -FieldValue $CorrectState -StoreAs bool -Tenant $Tenant + + $CurrentValue = @{ + thirdPartyStorageRestricted = $CurrentState.accountEnabled -eq $false + } + $ExpectedValue = @{ + thirdPartyStorageRestricted = $false } + + Set-CIPPStandardsCompareField -FieldName 'standards.RestrictThirdPartyStorageServices' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'ThirdPartyStorageServicesRestricted' -FieldValue ($CurrentState.accountEnabled -eq $false) -StoreAs bool -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardRetentionPolicyTag.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardRetentionPolicyTag.ps1 index 77587b18e6ab..f8e204371c98 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardRetentionPolicyTag.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardRetentionPolicyTag.ps1 @@ -13,6 +13,9 @@ function Invoke-CIPPStandardRetentionPolicyTag { CAT Exchange Standards TAG + "CIS M365 5.0 (6.4.1)" + EXECUTIVETEXT + Automatically and permanently removes deleted emails after a specified number of days, helping manage storage costs and ensuring compliance with data retention policies. This prevents accumulation of unnecessary deleted items while maintaining a reasonable recovery window for accidentally deleted emails. ADDEDCOMPONENT {"type":"number","name":"standards.RetentionPolicyTag.AgeLimitForRetention","label":"Retention Days","required":true} IMPACT @@ -29,13 +32,25 @@ function Invoke-CIPPStandardRetentionPolicyTag { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'RetentionPolicyTag' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. $PolicyName = 'CIPP Deleted Items' - $CurrentState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-RetentionPolicyTag' | - Where-Object -Property Identity -EQ $PolicyName - $PolicyState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-RetentionPolicy' | - Where-Object -Property Identity -EQ 'Default MRM Policy' + try { + $CurrentState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-RetentionPolicyTag' | + Where-Object -Property Identity -EQ $PolicyName + + $PolicyState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-RetentionPolicy' | + Where-Object -Property Identity -EQ 'Default MRM Policy' + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the RetentionPolicy state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $StateIsCorrect = ($CurrentState.Name -eq $PolicyName) -and ($CurrentState.RetentionEnabled -eq $true) -and @@ -45,8 +60,6 @@ function Invoke-CIPPStandardRetentionPolicyTag { ($PolicyState.RetentionPolicyTagLinks -contains $PolicyName) if ($Settings.remediate -eq $true) { - Write-Host 'Time to remediate' - if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Retention policy tag already correctly configured' -sev Info } else { @@ -109,12 +122,22 @@ function Invoke-CIPPStandardRetentionPolicyTag { if ($Settings.report -eq $true) { Add-CIPPBPAField -FieldName 'RetentionPolicy' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant - if ($StateIsCorrect) { - $FieldValue = $true - } else { - $FieldValue = @{ CurrentState = $CurrentState; PolicyState = $PolicyState } + $CurrentValue = @{ + retentionEnabled = $CurrentState.RetentionEnabled + retentionAction = $CurrentState.RetentionAction + ageLimitForRetention = $CurrentState.AgeLimitForRetention.TotalDays + type = $CurrentState.Type + policyTagLinked = $PolicyState.RetentionPolicyTagLinks -contains $PolicyName + + } + $ExpectedValue = @{ + retentionEnabled = $true + retentionAction = 'PermanentlyDelete' + ageLimitForRetention = $Settings.AgeLimitForRetention + type = 'DeletedItems' + policyTagLinked = $true } - Set-CIPPStandardsCompareField -FieldName 'standards.RetentionPolicyTag' -FieldValue $FieldValue -Tenant $Tenant - } + Set-CIPPStandardsCompareField -FieldName 'standards.RetentionPolicyTag' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardRotateDKIM.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardRotateDKIM.ps1 index 178f2fe033c4..11759ab03809 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardRotateDKIM.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardRotateDKIM.ps1 @@ -13,7 +13,9 @@ function Invoke-CIPPStandardRotateDKIM { CAT Exchange Standards TAG - "CIS" + "CIS M365 5.0 (2.1.9)" + EXECUTIVETEXT + Upgrades email security by replacing older 1024-bit encryption keys with stronger 2048-bit keys for email authentication. This improves the organization's email security posture and helps prevent email spoofing and tampering, maintaining trust with email recipients. ADDEDCOMPONENT IMPACT Low Impact @@ -31,16 +33,27 @@ function Invoke-CIPPStandardRotateDKIM { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'RotateDKIM' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. - $DKIM = (New-ExoRequest -tenantid $tenant -cmdlet 'Get-DkimSigningConfig') | Where-Object { $_.Selector1KeySize -eq 1024 -and $_.Enabled -eq $true } + try { + $DKIM = (New-ExoRequest -tenantid $tenant -cmdlet 'Get-DkimSigningConfig') | Where-Object { $_.Selector1KeySize -eq 1024 -and $_.Enabled -eq $true } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DKIM state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } if ($Settings.remediate -eq $true) { if ($DKIM) { - $DKIM | ForEach-Object { + foreach ($DkimConfig in $DKIM) { try { - (New-ExoRequest -tenantid $tenant -cmdlet 'Rotate-DkimSigningConfig' -cmdParams @{ KeySize = 2048; Identity = $_.Identity } -useSystemMailbox $true) - Write-LogMessage -API 'Standards' -tenant $tenant -message "Rotated DKIM for $($_.Identity)" -sev Info + (New-ExoRequest -tenantid $tenant -cmdlet 'Rotate-DkimSigningConfig' -cmdParams @{ KeySize = 2048; Identity = $DkimConfig.Identity } -useSystemMailbox $true) + Write-LogMessage -API 'Standards' -tenant $tenant -message "Rotated DKIM for $($DkimConfig.Identity)" -sev Info } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to rotate DKIM Error: $ErrorMessage" -sev Error @@ -63,10 +76,13 @@ function Invoke-CIPPStandardRotateDKIM { if ($Settings.report -eq $true) { Add-CIPPBPAField -FieldName 'DKIM' -FieldValue $DKIM -StoreAs json -Tenant $tenant - if ($DKIM) { - Set-CIPPStandardsCompareField -FieldName 'standards.RotateDKIM' -FieldValue $DKIM -Tenant $tenant - } else { - Set-CIPPStandardsCompareField -FieldName 'standards.RotateDKIM' -FieldValue $true -Tenant $tenant + + $CurrentValue = @{ + domainsWith1024BitDKIM = @(@($DKIM.Identity) | Where-Object { $_ }) + } + $ExpectedValue = @{ + domainsWith1024BitDKIM = @() } + Set-CIPPStandardsCompareField -FieldName 'standards.RotateDKIM' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPAzureB2B.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPAzureB2B.ps1 index 016f4697e400..c6ef5d3a2862 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPAzureB2B.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPAzureB2B.ps1 @@ -13,7 +13,9 @@ function Invoke-CIPPStandardSPAzureB2B { CAT SharePoint Standards TAG - "CIS" + "CIS M365 5.0 (7.2.2)" + EXECUTIVETEXT + Enables secure collaboration with external partners through SharePoint and OneDrive by integrating with Azure B2B guest access. This allows controlled sharing with external organizations while maintaining security oversight and proper access management. ADDEDCOMPONENT IMPACT Low Impact @@ -30,9 +32,20 @@ function Invoke-CIPPStandardSPAzureB2B { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'SPAzureB2B' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + + if ($TestResult -eq $false) { + return $true + } #we're done. - $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | - Select-Object -Property EnableAzureADB2BIntegration + try { + $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | + Select-Object -Property _ObjectIdentity_, TenantFilter, EnableAzureADB2BIntegration + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the SPAzureB2B state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $StateIsCorrect = ($CurrentState.EnableAzureADB2BIntegration -eq $true) @@ -45,7 +58,7 @@ function Invoke-CIPPStandardSPAzureB2B { } try { - Get-CIPPSPOTenant -TenantFilter $Tenant | Set-CIPPSPOTenant -Properties $Properties + $CurrentState | Set-CIPPSPOTenant -Properties $Properties Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Successfully set the SharePoint Azure B2B to enabled' -Sev Info } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message @@ -66,11 +79,13 @@ function Invoke-CIPPStandardSPAzureB2B { if ($Settings.report -eq $true) { Add-CIPPBPAField -FieldName 'AzureB2B' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant - if ($StateIsCorrect) { - $FieldValue = $true - } else { - $FieldValue = $CurrentState + + $CurrentValue = @{ + EnableAzureADB2BIntegration = $CurrentState.EnableAzureADB2BIntegration + } + $ExpectedValue = @{ + EnableAzureADB2BIntegration = $true } - Set-CIPPStandardsCompareField -FieldName 'standards.SPAzureB2B' -FieldValue $FieldValue -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.SPAzureB2B' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPDirectSharing.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPDirectSharing.ps1 index e91952957966..f8f894c18a3d 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPDirectSharing.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPDirectSharing.ps1 @@ -7,13 +7,14 @@ function Invoke-CIPPStandardSPDirectSharing { .SYNOPSIS (Label) Default sharing to Direct users .DESCRIPTION - (Helptext) Ensure default link sharing is set to Direct in SharePoint and OneDrive - (DocsDescription) Ensure default link sharing is set to Direct in SharePoint and OneDrive + (Helptext) This standard has been deprecated in favor of the Default Sharing Link standard. + (DocsDescription) This standard has been deprecated in favor of the Default Sharing Link standard. .NOTES CAT SharePoint Standards TAG - "CIS" + EXECUTIVETEXT + Configures SharePoint and OneDrive to share files directly with specific people rather than creating anonymous links, improving security by ensuring only intended recipients can access shared documents. This reduces the risk of accidental data exposure through link sharing. ADDEDCOMPONENT IMPACT Medium Impact @@ -31,9 +32,22 @@ function Invoke-CIPPStandardSPDirectSharing { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'SPDirectSharing' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + + if ($TestResult -eq $false) { + return $true + } #we're done. + - $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | - Select-Object -Property DefaultSharingLinkType + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'The default sharing to Direct users standard has been deprecated in favor of the "Set Default Sharing Link Settings" standard. Please update your standards to use new standard. However this will continue to function.' -Sev Alert + try { + $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | + Select-Object -Property _ObjectIdentity_, TenantFilter, DefaultSharingLinkType + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the SPDirectSharing state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $StateIsCorrect = ($CurrentState.DefaultSharingLinkType -eq 'Direct' -or $CurrentState.DefaultSharingLinkType -eq 1) @@ -46,7 +60,7 @@ function Invoke-CIPPStandardSPDirectSharing { } try { - Get-CIPPSPOTenant -TenantFilter $Tenant | Set-CIPPSPOTenant -Properties $Properties + $CurrentState | Set-CIPPSPOTenant -Properties $Properties Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Successfully set the SharePoint Default Direct Sharing to Direct' -Sev Info } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message @@ -68,11 +82,12 @@ function Invoke-CIPPStandardSPDirectSharing { if ($Settings.report -eq $true) { Add-CIPPBPAField -FieldName 'DirectSharing' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant - if ($StateIsCorrect) { - $FieldValue = $true - } else { - $FieldValue = $CurrentState + $CurrentValue = @{ + DefaultSharingLinkType = $CurrentState.DefaultSharingLinkType + } + $ExpectedValue = @{ + DefaultSharingLinkType = 1 } - Set-CIPPStandardsCompareField -FieldName 'standards.SPDirectSharing' -FieldValue $FieldValue -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.SPDirectSharing' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPDisableLegacyWorkflows.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPDisableLegacyWorkflows.ps1 index 57a4f292367c..0ca4672a15bb 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPDisableLegacyWorkflows.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPDisableLegacyWorkflows.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardSPDisableLegacyWorkflows { CAT SharePoint Standards TAG + EXECUTIVETEXT + Disables outdated SharePoint workflow features and classic interface options, encouraging use of modern, more secure and efficient collaboration tools. This helps maintain security standards while guiding users toward current, supported functionality. ADDEDCOMPONENT IMPACT Low Impact @@ -27,9 +29,19 @@ function Invoke-CIPPStandardSPDisableLegacyWorkflows { https://docs.cipp.app/user-documentation/tenant/standards/list-standards #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'SPDisableLegacyWorkflows' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') - $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | - Select-Object -Property * + if ($TestResult -eq $false) { + return $true + } #we're done. + + try { + $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the SPDisableLegacyWorkflows state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $StateIsCorrect = ($CurrentState.StopNew2010Workflows -eq $true) -and ($CurrentState.StopNew2013Workflows -eq $true) -and @@ -46,7 +58,7 @@ function Invoke-CIPPStandardSPDisableLegacyWorkflows { } try { - Get-CIPPSPOTenant -TenantFilter $Tenant | Set-CIPPSPOTenant -Properties $Properties + $CurrentState | Set-CIPPSPOTenant -Properties $Properties Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Successfully disabled Legacy Workflows' -Sev Info } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message @@ -67,11 +79,17 @@ function Invoke-CIPPStandardSPDisableLegacyWorkflows { if ($Settings.report -eq $true) { Add-CIPPBPAField -FieldName 'SPDisableLegacyWorkflows' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant - if ($StateIsCorrect) { - $FieldValue = $true - } else { - $FieldValue = $CurrentState + + $CurrentValue = @{ + StopNew2010Workflows = $CurrentState.StopNew2010Workflows + StopNew2013Workflows = $CurrentState.StopNew2013Workflows + DisableBackToClassic = $CurrentState.DisableBackToClassic + } + $ExpectedValue = @{ + StopNew2010Workflows = $true + StopNew2013Workflows = $true + DisableBackToClassic = $true } - Set-CIPPStandardsCompareField -FieldName 'standards.SPDisableLegacyWorkflows' -FieldValue $FieldValue -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.SPDisableLegacyWorkflows' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPDisallowInfectedFiles.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPDisallowInfectedFiles.ps1 index c61ec77268fb..969c329052ce 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPDisallowInfectedFiles.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPDisallowInfectedFiles.ps1 @@ -13,7 +13,11 @@ function Invoke-CIPPStandardSPDisallowInfectedFiles { CAT SharePoint Standards TAG - "CIS" + "CIS M365 5.0 (7.3.1)" + "CISA (MS.SPO.3.1v1)" + "NIST CSF 2.0 (DE.CM-09)" + EXECUTIVETEXT + Prevents employees from downloading files that have been identified as containing malware or viruses from SharePoint and OneDrive. This security measure protects against malware distribution through file sharing while maintaining access to clean, safe documents. ADDEDCOMPONENT IMPACT Low Impact @@ -31,9 +35,21 @@ function Invoke-CIPPStandardSPDisallowInfectedFiles { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'SPDisallowInfectedFiles' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU','ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + + if ($TestResult -eq $false) { + return $true + } #we're done. - $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | - Select-Object -Property DisallowInfectedFileDownload + try { + $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | + Select-Object -Property _ObjectIdentity_, TenantFilter, DisallowInfectedFileDownload + } + catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the SPDisallowInfectedFiles state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $StateIsCorrect = ($CurrentState.DisallowInfectedFileDownload -eq $true) @@ -46,7 +62,7 @@ function Invoke-CIPPStandardSPDisallowInfectedFiles { } try { - Get-CIPPSPOTenant -TenantFilter $Tenant | Set-CIPPSPOTenant -Properties $Properties + $CurrentState | Set-CIPPSPOTenant -Properties $Properties Write-LogMessage -API 'Standards' -tenant $tenant -Message 'Successfully disallowed downloading SharePoint infected files.' -Sev Info } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message @@ -68,11 +84,12 @@ function Invoke-CIPPStandardSPDisallowInfectedFiles { if ($Settings.report -eq $true) { Add-CIPPBPAField -FieldName 'SPDisallowInfectedFiles' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant - if ($StateIsCorrect) { - $FieldValue = $true - } else { - $FieldValue = $CurrentState + $CurrentValue = @{ + DisallowInfectedFileDownload = $CurrentState.DisallowInfectedFileDownload + } + $ExpectedValue = @{ + DisallowInfectedFileDownload = $true } - Set-CIPPStandardsCompareField -FieldName 'standards.SPDisallowInfectedFiles' -FieldValue $FieldValue -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.SPDisallowInfectedFiles' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPEmailAttestation.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPEmailAttestation.ps1 index c26879a60c2b..154451f56a8a 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPEmailAttestation.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPEmailAttestation.ps1 @@ -13,7 +13,10 @@ function Invoke-CIPPStandardSPEmailAttestation { CAT SharePoint Standards TAG - "CIS" + "CIS M365 5.0 (7.2.10)" + "CISA (MS.SPO.1.6v1)" + EXECUTIVETEXT + Requires external users to periodically re-verify their identity through email verification codes when accessing SharePoint resources, adding an extra security layer for external collaboration. This helps ensure continued legitimacy of external access over time. ADDEDCOMPONENT {"type":"number","name":"standards.SPEmailAttestation.Days","label":"Require re-authentication every X Days (Default 15)"} IMPACT @@ -32,8 +35,20 @@ function Invoke-CIPPStandardSPEmailAttestation { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'SPEmailAttestation' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + + if ($TestResult -eq $false) { + return $true + } #we're done. - $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | Select-Object -Property EmailAttestationReAuthDays, EmailAttestationRequired + try { + $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | + Select-Object -Property _ObjectIdentity_, TenantFilter, EmailAttestationReAuthDays, EmailAttestationRequired + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the SPEmailAttestation state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $StateIsCorrect = ($CurrentState.EmailAttestationReAuthDays -eq [int]$Settings.Days) -and ($CurrentState.EmailAttestationRequired -eq $true) @@ -48,7 +63,7 @@ function Invoke-CIPPStandardSPEmailAttestation { } try { - $Response = Get-CIPPSPOTenant -TenantFilter $Tenant | Set-CIPPSPOTenant -Properties $Properties + $Response = $CurrentState | Set-CIPPSPOTenant -Properties $Properties if ($Response.ErrorInfo.ErrorMessage) { $ErrorMessage = Get-NormalizedError -Message $Response.ErrorInfo.ErrorMessage Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Failed to set re-authentication with verification code restriction. Error: $ErrorMessage" -Sev Error @@ -74,11 +89,15 @@ function Invoke-CIPPStandardSPEmailAttestation { if ($Settings.report -eq $true) { Add-CIPPBPAField -FieldName 'SPEmailAttestation' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant - if ($StateIsCorrect) { - $FieldValue = $true - } else { - $FieldValue = $CurrentState + + $CurrentValue = @{ + EmailAttestationReAuthDays = $CurrentState.EmailAttestationReAuthDays + EmailAttestationRequired = $CurrentState.EmailAttestationRequired + } + $ExpectedValue = @{ + EmailAttestationReAuthDays = [int]$Settings.Days + EmailAttestationRequired = $true } - Set-CIPPStandardsCompareField -FieldName 'standards.SPEmailAttestation' -FieldValue $FieldValue -TenantFilter $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.SPEmailAttestation' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPExternalUserExpiration.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPExternalUserExpiration.ps1 index 7db6ed6a53e1..8070afb1b523 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPExternalUserExpiration.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPExternalUserExpiration.ps1 @@ -13,7 +13,10 @@ function Invoke-CIPPStandardSPExternalUserExpiration { CAT SharePoint Standards TAG - "CIS" + "CIS M365 5.0 (7.2.9)" + "CISA (MS.SPO.1.5v1)" + EXECUTIVETEXT + Automatically expires external user access to SharePoint sites and OneDrive after a specified period, reducing security risks from forgotten or unnecessary guest accounts. This ensures external access is regularly reviewed and maintained only when actively needed. ADDEDCOMPONENT {"type":"number","name":"standards.SPExternalUserExpiration.Days","label":"Days until expiration (Default 60)"} IMPACT @@ -31,9 +34,20 @@ function Invoke-CIPPStandardSPExternalUserExpiration { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'SPExternalUserExpiration' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + + if ($TestResult -eq $false) { + return $true + } #we're done. - $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | - Select-Object -Property ExternalUserExpireInDays, ExternalUserExpirationRequired + try { + $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | + Select-Object -Property _ObjectIdentity_, TenantFilter, ExternalUserExpireInDays, ExternalUserExpirationRequired + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the SPExternalUserExpiration state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $StateIsCorrect = ($CurrentState.ExternalUserExpireInDays -eq $Settings.Days) -and ($CurrentState.ExternalUserExpirationRequired -eq $true) @@ -48,7 +62,7 @@ function Invoke-CIPPStandardSPExternalUserExpiration { } try { - Get-CIPPSPOTenant -TenantFilter $Tenant | Set-CIPPSPOTenant -Properties $Properties + $CurrentState | Set-CIPPSPOTenant -Properties $Properties Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Successfully set External User Expiration' -Sev Info } catch { $ErrorMessage = Get-CippException -Exception $_ @@ -74,7 +88,15 @@ function Invoke-CIPPStandardSPExternalUserExpiration { } else { $FieldValue = $CurrentState } - Set-CIPPStandardsCompareField -FieldName 'standards.SPExternalUserExpiration' -FieldValue $FieldValue -TenantFilter $Tenant + $CurrentValue = @{ + ExternalUserExpireInDays = $CurrentState.ExternalUserExpireInDays + ExternalUserExpirationRequired = $CurrentState.ExternalUserExpirationRequired + } + $ExpectedValue = @{ + ExternalUserExpireInDays = $Settings.Days + ExternalUserExpirationRequired = $true + } + Set-CIPPStandardsCompareField -FieldName 'standards.SPExternalUserExpiration' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'standards.SPExternalUserExpiration' -FieldValue $FieldValue -StoreAs bool -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPFileRequests.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPFileRequests.ps1 new file mode 100644 index 000000000000..1354beba7a7d --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPFileRequests.ps1 @@ -0,0 +1,142 @@ +function Invoke-CIPPStandardSPFileRequests { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) SPFileRequests + .SYNOPSIS + (Label) Set SharePoint and OneDrive File Requests + .DESCRIPTION + (Helptext) Enables or disables File Requests for SharePoint and OneDrive, allowing users to create secure upload-only links. Optionally sets the maximum number of days for the link to remain active before expiring. + (DocsDescription) File Requests allow users to create secure upload-only share links where uploads are hidden from other people using the link. This creates a secure and private way for people to upload files to a folder. This feature is not enabled by default on new tenants and requires PowerShell configuration. This standard enables or disables this feature and optionally configures link expiration settings for both SharePoint and OneDrive. + .NOTES + CAT + SharePoint Standards + TAG + EXECUTIVETEXT + Enables secure file upload functionality that allows external users to submit files directly to company folders without seeing other submissions or folder contents. This provides a professional and secure way to collect documents from clients, vendors, and partners while maintaining data privacy and security. + ADDEDCOMPONENT + {"type":"switch","name":"standards.SPFileRequests.state","label":"Enable File Requests"} + {"type":"number","name":"standards.SPFileRequests.expirationDays","label":"Link Expiration 1-730 Days (Optional)","required":false} + IMPACT + Medium Impact + ADDEDDATE + 2025-07-30 + POWERSHELLEQUIVALENT + Set-SPOTenant -CoreRequestFilesLinkEnabled \$true -OneDriveRequestFilesLinkEnabled \$true -CoreRequestFilesLinkExpirationInDays 30 -OneDriveRequestFilesLinkExpirationInDays 30 + RECOMMENDEDBY + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'SPFileRequests' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + + if ($TestResult -eq $false) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'The tenant is not licenced for this standard SPFileRequests' -sev Error + return $true + } + + try { + $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | Select-Object _ObjectIdentity_, TenantFilter, CoreRequestFilesLinkEnabled, OneDriveRequestFilesLinkEnabled, CoreRequestFilesLinkExpirationInDays, OneDriveRequestFilesLinkExpirationInDays + } catch { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Failed to get current state of SPO tenant details' -sev Error + return + } + + # Input validation + if (($null -eq $Settings.state) -and ($Settings.remediate -eq $true -or $Settings.alert -eq $true)) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Invalid state parameter set for standard SPFileRequests' -sev Error + return + } + + $WantedState = $Settings.state + $ExpirationDays = $Settings.expirationDays + $HumanReadableState = if ($WantedState -eq $true) { 'enabled' } else { 'disabled' } + + # Check if current state matches desired state + $CoreStateIsCorrect = if ($CurrentState.CoreRequestFilesLinkEnabled -eq $WantedState) { $true } else { $false } + $OneDriveStateIsCorrect = if ($CurrentState.OneDriveRequestFilesLinkEnabled -eq $WantedState) { $true } else { $false } + $StateIsCorrect = $CoreStateIsCorrect -and $OneDriveStateIsCorrect + + # Check expiration settings if specified + $ExpirationIsCorrect = $true + if ($null -ne $ExpirationDays -and $WantedState -eq $true) { + $CoreExpirationIsCorrect = ($CurrentState.CoreRequestFilesLinkExpirationInDays -eq $ExpirationDays) + $OneDriveExpirationIsCorrect = ($CurrentState.OneDriveRequestFilesLinkExpirationInDays -eq $ExpirationDays) + $ExpirationIsCorrect = $CoreExpirationIsCorrect -and $OneDriveExpirationIsCorrect + } + + $AllSettingsCorrect = $StateIsCorrect -and $ExpirationIsCorrect + + if ($Settings.remediate -eq $true) { + + if ($AllSettingsCorrect -eq $false) { + try { + $Properties = @{ + CoreRequestFilesLinkEnabled = $WantedState + OneDriveRequestFilesLinkEnabled = $WantedState + } + + # Add expiration settings if specified and feature is being enabled + if ($null -ne $ExpirationDays -and $WantedState -eq $true) { + $Properties['CoreRequestFilesLinkExpirationInDays'] = $ExpirationDays + $Properties['OneDriveRequestFilesLinkExpirationInDays'] = $ExpirationDays + } + + $CurrentState | Set-CIPPSPOTenant -Properties $Properties + + $ExpirationMessage = if ($null -ne $ExpirationDays -and $WantedState -eq $true) { " with $ExpirationDays day expiration" } else { '' } + Write-LogMessage -API 'Standards' -tenant $tenant -message "Successfully set File Requests to $HumanReadableState$ExpirationMessage" -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to set File Requests to $HumanReadableState. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } else { + $ExpirationMessage = if ($null -ne $ExpirationDays -and $WantedState -eq $true) { " with $ExpirationDays day expiration" } else { '' } + Write-LogMessage -API 'Standards' -tenant $tenant -message "File Requests are already set to the wanted state of $HumanReadableState$ExpirationMessage" -sev Info + } + } + + if ($Settings.alert -eq $true) { + if ($AllSettingsCorrect -eq $true) { + $ExpirationMessage = if ($null -ne $ExpirationDays -and $WantedState -eq $true) { " with $ExpirationDays day expiration" } else { '' } + Write-LogMessage -API 'Standards' -tenant $tenant -message "File Requests are already set to the wanted state of $HumanReadableState$ExpirationMessage" -sev Info + } else { + $AlertMessage = "File Requests are not set to the wanted state of $HumanReadableState" + if ($null -ne $ExpirationDays -and $WantedState -eq $true) { + $AlertMessage += " with $ExpirationDays day expiration" + } + Write-StandardsAlert -message $AlertMessage -object $CurrentState -tenant $tenant -standardName 'SPFileRequests' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message $AlertMessage -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'SPFileRequestsEnabled' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + Add-CIPPBPAField -FieldName 'SPCoreFileRequestsEnabled' -FieldValue $CurrentState.CoreRequestFilesLinkEnabled -StoreAs bool -Tenant $Tenant + Add-CIPPBPAField -FieldName 'SPOneDriveFileRequestsEnabled' -FieldValue $CurrentState.OneDriveRequestFilesLinkEnabled -StoreAs bool -Tenant $Tenant + + if ($null -ne $ExpirationDays) { + Add-CIPPBPAField -FieldName 'SPCoreFileRequestsExpirationDays' -FieldValue $CurrentState.CoreRequestFilesLinkExpirationInDays -StoreAs string -Tenant $Tenant + Add-CIPPBPAField -FieldName 'SPOneDriveFileRequestsExpirationDays' -FieldValue $CurrentState.OneDriveRequestFilesLinkExpirationInDays -StoreAs string -Tenant $Tenant + } + + $CurrentValue = @{ + CoreRequestFilesLinkEnabled = $CurrentState.CoreRequestFilesLinkEnabled + OneDriveRequestFilesLinkEnabled = $CurrentState.OneDriveRequestFilesLinkEnabled + CoreRequestFilesLinkExpirationInDays = $CurrentState.CoreRequestFilesLinkExpirationInDays + OneDriveRequestFilesLinkExpirationInDays = $CurrentState.OneDriveRequestFilesLinkExpirationInDays + } + $ExpectedValue = @{ + CoreRequestFilesLinkEnabled = $WantedState + OneDriveRequestFilesLinkEnabled = $WantedState + CoreRequestFilesLinkExpirationInDays = if ($null -ne $ExpirationDays -and $WantedState -eq $true) { $ExpirationDays } else { $null } + OneDriveRequestFilesLinkExpirationInDays = if ($null -ne $ExpirationDays -and $WantedState -eq $true) { $ExpirationDays } else { $null } + } + Set-CIPPStandardsCompareField -FieldName 'standards.SPFileRequests' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPSyncButtonState.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPSyncButtonState.ps1 index ba222bb08412..24d175063862 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPSyncButtonState.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPSyncButtonState.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardSPSyncButtonState { CAT SharePoint Standards TAG + EXECUTIVETEXT + Controls whether employees can synchronize SharePoint files to their local devices, balancing productivity benefits with data security concerns. This setting helps manage data distribution while maintaining access to cloud-based collaboration when sync is disabled. ADDEDCOMPONENT {"type":"autoComplete","multiple":false,"creatable":false,"label":"SharePoint Sync Button state","name":"standards.SPSyncButtonState.state","options":[{"label":"Disabled","value":"true"},{"label":"Enabled","value":"false"}]} IMPACT @@ -29,8 +31,19 @@ function Invoke-CIPPStandardSPSyncButtonState { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'SPSyncButtonState' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') - $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | Select-Object _ObjectIdentity_, TenantFilter, HideSyncButtonOnDocLib + if ($TestResult -eq $false) { + return $true + } #we're done. + + try { + $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | Select-Object _ObjectIdentity_, TenantFilter, HideSyncButtonOnDocLib + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the SPSyncButtonState state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } # Input validation @@ -45,8 +58,6 @@ function Invoke-CIPPStandardSPSyncButtonState { $HumanReadableState = if ($WantedState -eq $true) { 'disabled' } else { 'enabled' } if ($Settings.remediate -eq $true) { - Write-Host 'Time to remediate' - if ($StateIsCorrect -eq $false) { try { $CurrentState | Set-CIPPSPOTenant -Properties @{HideSyncButtonOnDocLib = $WantedState } @@ -77,7 +88,13 @@ function Invoke-CIPPStandardSPSyncButtonState { } else { $FieldValue = $CurrentState } - Set-CIPPStandardsCompareField -FieldName 'standards.SPSyncButtonState' -FieldValue $FieldValue -Tenant $Tenant + $CurrentValue = @{ + HideSyncButtonOnDocLib = $CurrentState.HideSyncButtonOnDocLib + } + $ExpectedValue = @{ + HideSyncButtonOnDocLib = $WantedState + } + Set-CIPPStandardsCompareField -FieldName 'standards.SPSyncButtonState' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeAttachmentPolicy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeAttachmentPolicy.ps1 index edd59d6cbaa4..79c6d309ee85 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeAttachmentPolicy.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeAttachmentPolicy.ps1 @@ -13,11 +13,13 @@ function Invoke-CIPPStandardSafeAttachmentPolicy { CAT Defender Standards TAG - "CIS" + "CIS M365 5.0 (2.1.4)" "mdo_safedocuments" "mdo_commonattachmentsfilter" "mdo_safeattachmentpolicy" + "NIST CSF 2.0 (DE.CM-09)" ADDEDCOMPONENT + {"type":"textField","name":"standards.SafeAttachmentPolicy.name","label":"Policy Name","required":true,"defaultValue":"CIPP Default Safe Attachment Policy"} {"type":"select","multiple":false,"label":"Safe Attachment Action","name":"standards.SafeAttachmentPolicy.SafeAttachmentAction","options":[{"label":"Allow","value":"Allow"},{"label":"Block","value":"Block"},{"label":"DynamicDelivery","value":"DynamicDelivery"}]} {"type":"select","multiple":false,"creatable":true,"label":"QuarantineTag","name":"standards.SafeAttachmentPolicy.QuarantineTag","options":[{"label":"AdminOnlyAccessPolicy","value":"AdminOnlyAccessPolicy"},{"label":"DefaultFullAccessPolicy","value":"DefaultFullAccessPolicy"},{"label":"DefaultFullAccessWithNotificationPolicy","value":"DefaultFullAccessWithNotificationPolicy"}]} {"type":"switch","label":"Redirect","name":"standards.SafeAttachmentPolicy.Redirect"} @@ -37,30 +39,51 @@ function Invoke-CIPPStandardSafeAttachmentPolicy { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'SafeAttachmentPolicy' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. - $ServicePlans = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/subscribedSkus?$select=servicePlans' -tenantid $Tenant - $ServicePlans = $ServicePlans.servicePlans.servicePlanName - $MDOLicensed = $ServicePlans -contains 'ATP_ENTERPRISE' + $TenantCapabilities = Get-CIPPTenantCapabilities -TenantFilter $Tenant + $MDOLicensed = $TenantCapabilities.ATP_ENTERPRISE -eq $true if ($MDOLicensed) { - $PolicyList = @('CIPP Default Safe Attachment Policy', 'Default Safe Attachment Policy') - $ExistingPolicy = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-SafeAttachmentPolicy' | Where-Object -Property Name -In $PolicyList + # Cache all Safe Attachment Policies to avoid duplicate API calls + try { + $AllSafeAttachmentPolicies = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-SafeAttachmentPolicy' + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the SafeAttachmentPolicy state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + # Use custom name if provided, otherwise use default for backward compatibility + $PolicyName = if ($Settings.name) { $Settings.name } else { 'CIPP Default Safe Attachment Policy' } + $PolicyList = @($PolicyName, 'CIPP Default Safe Attachment Policy', 'Default Safe Attachment Policy') + $ExistingPolicy = $AllSafeAttachmentPolicies | Where-Object -Property Name -In $PolicyList | Select-Object -First 1 if ($null -eq $ExistingPolicy.Name) { - $PolicyName = $PolicyList[0] + # No existing policy - use the configured/default name + $PolicyName = if ($Settings.name) { $Settings.name } else { 'CIPP Default Safe Attachment Policy' } } else { + # Use existing policy name if found $PolicyName = $ExistingPolicy.Name } - $RuleList = @( 'CIPP Default Safe Attachment Rule', 'CIPP Default Safe Attachment Policy') - $ExistingRule = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-SafeAttachmentRule' | Where-Object -Property Name -In $RuleList + # Derive rule name from policy name, but check for old names for backward compatibility + $DesiredRuleName = "$PolicyName Rule" + $RuleList = @($DesiredRuleName, 'CIPP Default Safe Attachment Rule', 'CIPP Default Safe Attachment Policy') + $ExistingRule = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-SafeAttachmentRule' | Where-Object -Property Name -In $RuleList | Select-Object -First 1 if ($null -eq $ExistingRule.Name) { - $RuleName = $RuleList[0] + # No existing rule - use the derived name + $RuleName = $DesiredRuleName } else { + # Use existing rule name if found $RuleName = $ExistingRule.Name } - $CurrentState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-SafeAttachmentPolicy' | - Where-Object -Property Name -EQ $PolicyName | - Select-Object Name, Enable, Action, QuarantineTag, Redirect, RedirectAddress + $CurrentState = $AllSafeAttachmentPolicies | + Where-Object -Property Name -EQ $PolicyName | + Select-Object Name, Enable, Action, QuarantineTag, Redirect, RedirectAddress $StateIsCorrect = ($CurrentState.Name -eq $PolicyName) -and ($CurrentState.Enable -eq $true) -and @@ -154,12 +177,25 @@ function Invoke-CIPPStandardSafeAttachmentPolicy { if ($Settings.report -eq $true) { Add-CIPPBPAField -FieldName 'SafeAttachmentPolicy' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant - if ($StateIsCorrect) { - $FieldValue = $true - } else { - $FieldValue = $CurrentState + + $CurrentValue = @{ + name = $CurrentState.Name + enable = $CurrentState.Enable + action = $CurrentState.Action + quarantineTag = $CurrentState.QuarantineTag + redirect = $CurrentState.Redirect + redirectAddress = $CurrentState.RedirectAddress + } + + $ExpectedValue = [pscustomobject]@{ + name = $PolicyName + enable = $true + action = $Settings.SafeAttachmentAction + quarantineTag = $Settings.QuarantineTag + redirect = $Settings.Redirect + redirectAddress = "$($Settings.RedirectAddress)" } - Set-CIPPStandardsCompareField -FieldName 'standards.SafeAttachmentPolicy' -FieldValue $FieldValue -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.SafeAttachmentPolicy' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant } } else { if ($Settings.remediate -eq $true) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeLinksPolicy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeLinksPolicy.ps1 index e360efddabf2..d4db33c46fd8 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeLinksPolicy.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeLinksPolicy.ps1 @@ -13,10 +13,12 @@ function Invoke-CIPPStandardSafeLinksPolicy { CAT Defender Standards TAG - "CIS" + "CIS M365 5.0 (2.1.1)" "mdo_safelinksforemail" "mdo_safelinksforOfficeApps" + "NIST CSF 2.0 (DE.CM-09)" ADDEDCOMPONENT + {"type":"textField","name":"standards.SafeLinksPolicy.name","label":"Policy Name","required":true,"defaultValue":"CIPP Default SafeLinks Policy"} {"type":"switch","label":"AllowClickThrough","name":"standards.SafeLinksPolicy.AllowClickThrough"} {"type":"switch","label":"DisableUrlRewrite","name":"standards.SafeLinksPolicy.DisableUrlRewrite"} {"type":"switch","label":"EnableOrganizationBranding","name":"standards.SafeLinksPolicy.EnableOrganizationBranding"} @@ -36,28 +38,56 @@ function Invoke-CIPPStandardSafeLinksPolicy { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'SafeLinksPolicy' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. - $ServicePlans = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/subscribedSkus?$select=servicePlans' -tenantid $Tenant - $ServicePlans = $ServicePlans.servicePlans.servicePlanName - $MDOLicensed = $ServicePlans -contains 'ATP_ENTERPRISE' + $TenantCapabilities = Get-CIPPTenantCapabilities -TenantFilter $Tenant + $MDOLicensed = $TenantCapabilities.ATP_ENTERPRISE -eq $true if ($MDOLicensed) { - $PolicyList = @('CIPP Default SafeLinks Policy', 'Default SafeLinks Policy') - $ExistingPolicy = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-SafeLinksPolicy' | Where-Object -Property Name -In $PolicyList + # Single data retrieval calls with error handling + try { + $AllSafeLinksPolicy = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-SafeLinksPolicy' + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the SafeLinksPolicy state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + try { + $AllSafeLinksRule = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-SafeLinksRule' + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the SafeLinksRule state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + # Use custom name if provided, otherwise use default for backward compatibility + $PolicyName = if ($Settings.name) { $Settings.name } else { 'CIPP Default SafeLinks Policy' } + $PolicyList = @($PolicyName, 'CIPP Default SafeLinks Policy', 'Default SafeLinks Policy') + $ExistingPolicy = $AllSafeLinksPolicy | Where-Object -Property Name -In $PolicyList | Select-Object -First 1 if ($null -eq $ExistingPolicy.Name) { - $PolicyName = $PolicyList[0] + # No existing policy - use the configured/default name + $PolicyName = if ($Settings.name) { $Settings.name } else { 'CIPP Default SafeLinks Policy' } } else { + # Use existing policy name if found $PolicyName = $ExistingPolicy.Name } - $RuleList = @( 'CIPP Default SafeLinks Rule', 'CIPP Default SafeLinks Policy') - $ExistingRule = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-SafeLinksRule' | Where-Object -Property Name -In $RuleList + # Derive rule name from policy name, but check for old names for backward compatibility + $DesiredRuleName = "$PolicyName Rule" + $RuleList = @($DesiredRuleName, 'CIPP Default SafeLinks Rule', 'CIPP Default SafeLinks Policy') + $ExistingRule = $AllSafeLinksRule | Where-Object -Property Name -In $RuleList | Select-Object -First 1 if ($null -eq $ExistingRule.Name) { - $RuleName = $RuleList[0] + # No existing rule - use the derived name + $RuleName = $DesiredRuleName } else { + # Use existing rule name if found $RuleName = $ExistingRule.Name } - $CurrentState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-SafeLinksPolicy' | + $CurrentState = $AllSafeLinksPolicy | Where-Object -Property Name -EQ $PolicyName | Select-Object Name, EnableSafeLinksForEmail, EnableSafeLinksForTeams, EnableSafeLinksForOffice, TrackClicks, AllowClickThrough, ScanUrls, EnableForInternalSenders, DeliverMessageAfterScan, DisableUrlRewrite, EnableOrganizationBranding, DoNotRewriteUrls @@ -76,7 +106,7 @@ function Invoke-CIPPStandardSafeLinksPolicy { $AcceptedDomains = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-AcceptedDomain' - $RuleState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-SafeLinksRule' | + $RuleState = $AllSafeLinksRule | Where-Object -Property Name -EQ $RuleName | Select-Object Name, SafeLinksPolicy, Priority, RecipientDomainIs @@ -165,12 +195,36 @@ function Invoke-CIPPStandardSafeLinksPolicy { if ($Settings.report -eq $true) { Add-CIPPBPAField -FieldName 'SafeLinksPolicy' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant - if ($StateIsCorrect) { - $FieldValue = $true - } else { - $FieldValue = $CurrentState + + $CurrentValue = @{ + Name = $CurrentState.Name + EnableSafeLinksForEmail = $CurrentState.EnableSafeLinksForEmail + EnableSafeLinksForTeams = $CurrentState.EnableSafeLinksForTeams + EnableSafeLinksForOffice = $CurrentState.EnableSafeLinksForOffice + TrackClicks = $CurrentState.TrackClicks + AllowClickThrough = $CurrentState.AllowClickThrough + ScanUrls = $CurrentState.ScanUrls + EnableForInternalSenders = $CurrentState.EnableForInternalSenders + DeliverMessageAfterScan = $CurrentState.DeliverMessageAfterScan + DisableUrlRewrite = $CurrentState.DisableUrlRewrite + EnableOrganizationBranding = $CurrentState.EnableOrganizationBranding + DoNotRewriteUrls = $CurrentState.DoNotRewriteUrls + } + $ExpectedValue = @{ + Name = $PolicyName + EnableSafeLinksForEmail = $true + EnableSafeLinksForTeams = $true + EnableSafeLinksForOffice = $true + TrackClicks = $true + AllowClickThrough = $Settings.AllowClickThrough + ScanUrls = $true + EnableForInternalSenders = $true + DeliverMessageAfterScan = $true + DisableUrlRewrite = $Settings.DisableUrlRewrite + EnableOrganizationBranding = $Settings.EnableOrganizationBranding + DoNotRewriteUrls = $Settings.DoNotRewriteUrls.value ?? @() } - Set-CIPPStandardsCompareField -FieldName 'standards.SafeLinksPolicy' -FieldValue $FieldValue -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.SafeLinksPolicy' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant } } else { if ($Settings.remediate -eq $true) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeLinksTemplatePolicy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeLinksTemplatePolicy.ps1 index 00d71e371b2b..800bd87a62ef 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeLinksTemplatePolicy.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeLinksTemplatePolicy.ps1 @@ -20,6 +20,8 @@ function Invoke-CIPPStandardSafeLinksTemplatePolicy { Medium Impact ADDEDDATE 2025-04-29 + EXECUTIVETEXT + Deploys standardized URL protection policies that automatically scan and verify links in emails and documents before users click them. This template-based approach ensures consistent protection against malicious websites and phishing attacks across the organization. ADDEDCOMPONENT {"type":"autoComplete","multiple":true,"creatable":false,"name":"standards.SafeLinksTemplatePolicy.TemplateIds","label":"Select SafeLinks Policy Templates","api":{"url":"/api/ListSafeLinksPolicyTemplates","labelField":"TemplateName","valueField":"GUID","queryKey":"ListSafeLinksPolicyTemplates"}} UPDATECOMMENTBLOCK @@ -29,6 +31,11 @@ function Invoke-CIPPStandardSafeLinksTemplatePolicy { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'SafeLinksTemplatePolicy' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. Write-LogMessage -API 'Standards' -tenant $Tenant -message "Processing SafeLinks template with settings: $($Settings | ConvertTo-Json -Compress)" -sev Debug @@ -40,7 +47,7 @@ function Invoke-CIPPStandardSafeLinksTemplatePolicy { # Normalize template list property $TemplateList = Get-NormalizedTemplateList -Settings $Settings if (-not $TemplateList) { - Write-LogMessage -API 'Standards' -tenant $Tenant -message "No templates selected for SafeLinks policy deployment" -sev Error + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'No templates selected for SafeLinks policy deployment' -sev Error return } @@ -61,9 +68,8 @@ function Invoke-CIPPStandardSafeLinksTemplatePolicy { function Test-MDOLicense { param($Tenant, $Settings) - $ServicePlans = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/subscribedSkus?$select=servicePlans' -tenantid $Tenant - $ServicePlans = $ServicePlans.servicePlans.servicePlanName - $MDOLicensed = $ServicePlans -contains 'ATP_ENTERPRISE' + $TenantCapabilities = Get-CIPPTenantCapabilities -TenantFilter $Tenant + $MDOLicensed = $TenantCapabilities.ATP_ENTERPRISE -eq $true if (-not $MDOLicensed) { $Message = 'Tenant does not have Microsoft Defender for Office 365 license' @@ -93,8 +99,7 @@ function Get-NormalizedTemplateList { if ($Settings.'standards.SafeLinksTemplatePolicy.TemplateIds') { return $Settings.'standards.SafeLinksTemplatePolicy.TemplateIds' - } - elseif ($Settings.TemplateIds) { + } elseif ($Settings.TemplateIds) { return $Settings.TemplateIds } @@ -126,17 +131,13 @@ function ConvertTo-SafeArray { foreach ($item in $Field) { if ($item -is [string]) { $ResultList.Add($item) - } - elseif ($item.value) { + } elseif ($item.value) { $ResultList.Add($item.value) - } - elseif ($item.userPrincipalName) { + } elseif ($item.userPrincipalName) { $ResultList.Add($item.userPrincipalName) - } - elseif ($item.id) { + } elseif ($item.id) { $ResultList.Add($item.id) - } - else { + } else { $ResultList.Add($item.ToString()) } } @@ -176,22 +177,20 @@ function Get-ExistingSafeLinksObjects { try { $ExistingPolicies = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-SafeLinksPolicy' -useSystemMailbox $true $PolicyExists = $ExistingPolicies | Where-Object { $_.Name -eq $PolicyName } - } - catch { + } catch { Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to retrieve existing policies: $($_.Exception.Message)" -sev Warning } try { $ExistingRules = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-SafeLinksRule' -useSystemMailbox $true $RuleExists = $ExistingRules | Where-Object { $_.Name -eq $RuleName } - } - catch { + } catch { Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to retrieve existing rules: $($_.Exception.Message)" -sev Warning } return @{ PolicyExists = $PolicyExists - RuleExists = $RuleExists + RuleExists = $RuleExists } } @@ -199,17 +198,17 @@ function New-SafeLinksPolicyParameters { param($Template) $PolicyMappings = @{ - 'EnableSafeLinksForEmail' = 'EnableSafeLinksForEmail' - 'EnableSafeLinksForTeams' = 'EnableSafeLinksForTeams' - 'EnableSafeLinksForOffice' = 'EnableSafeLinksForOffice' - 'TrackClicks' = 'TrackClicks' - 'AllowClickThrough' = 'AllowClickThrough' - 'ScanUrls' = 'ScanUrls' - 'EnableForInternalSenders' = 'EnableForInternalSenders' - 'DeliverMessageAfterScan' = 'DeliverMessageAfterScan' - 'DisableUrlRewrite' = 'DisableUrlRewrite' - 'AdminDisplayName' = 'AdminDisplayName' - 'CustomNotificationText' = 'CustomNotificationText' + 'EnableSafeLinksForEmail' = 'EnableSafeLinksForEmail' + 'EnableSafeLinksForTeams' = 'EnableSafeLinksForTeams' + 'EnableSafeLinksForOffice' = 'EnableSafeLinksForOffice' + 'TrackClicks' = 'TrackClicks' + 'AllowClickThrough' = 'AllowClickThrough' + 'ScanUrls' = 'ScanUrls' + 'EnableForInternalSenders' = 'EnableForInternalSenders' + 'DeliverMessageAfterScan' = 'DeliverMessageAfterScan' + 'DisableUrlRewrite' = 'DisableUrlRewrite' + 'AdminDisplayName' = 'AdminDisplayName' + 'CustomNotificationText' = 'CustomNotificationText' 'EnableOrganizationBranding' = 'EnableOrganizationBranding' } @@ -241,11 +240,11 @@ function New-SafeLinksRuleParameters { # Array-based rule parameters $ArrayMappings = @{ - 'SentTo' = ConvertTo-SafeArray -Field $Template.SentTo - 'SentToMemberOf' = ConvertTo-SafeArray -Field $Template.SentToMemberOf - 'RecipientDomainIs' = ConvertTo-SafeArray -Field $Template.RecipientDomainIs - 'ExceptIfSentTo' = ConvertTo-SafeArray -Field $Template.ExceptIfSentTo - 'ExceptIfSentToMemberOf' = ConvertTo-SafeArray -Field $Template.ExceptIfSentToMemberOf + 'SentTo' = ConvertTo-SafeArray -Field $Template.SentTo + 'SentToMemberOf' = ConvertTo-SafeArray -Field $Template.SentToMemberOf + 'RecipientDomainIs' = ConvertTo-SafeArray -Field $Template.RecipientDomainIs + 'ExceptIfSentTo' = ConvertTo-SafeArray -Field $Template.ExceptIfSentTo + 'ExceptIfSentToMemberOf' = ConvertTo-SafeArray -Field $Template.ExceptIfSentToMemberOf 'ExceptIfRecipientDomainIs' = ConvertTo-SafeArray -Field $Template.ExceptIfRecipientDomainIs } @@ -264,8 +263,8 @@ function Set-SafeLinksRuleState { if ($null -eq $State) { return } $IsEnabled = switch ($State) { - "Enabled" { $true } - "Disabled" { $false } + 'Enabled' { $true } + 'Disabled' { $false } $true { $true } $false { $false } default { $null } @@ -274,7 +273,7 @@ function Set-SafeLinksRuleState { if ($null -ne $IsEnabled) { $Cmdlet = $IsEnabled ? 'Enable-SafeLinksRule' : 'Disable-SafeLinksRule' $null = New-ExoRequest -tenantid $Tenant -cmdlet $Cmdlet -cmdParams @{ Identity = $RuleName } -useSystemMailbox $true - return $IsEnabled ? "enabled" : "disabled" + return $IsEnabled ? 'enabled' : 'disabled' } return $null @@ -312,8 +311,7 @@ function Invoke-SafeLinksRemediation { $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-SafeLinksPolicy' -cmdParams $PolicyParams -useSystemMailbox $true $ActionsTaken.Add("Updated SafeLinks policy '$PolicyName'") Write-LogMessage -API 'Standards' -tenant $Tenant -message "Updated SafeLinks policy '$PolicyName'" -sev Info - } - else { + } else { # Create new policy $PolicyParams['Name'] = $PolicyName $null = New-ExoRequest -tenantid $Tenant -cmdlet 'New-SafeLinksPolicy' -cmdParams $PolicyParams -useSystemMailbox $true @@ -330,8 +328,7 @@ function Invoke-SafeLinksRemediation { $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-SafeLinksRule' -cmdParams $RuleParams -useSystemMailbox $true $ActionsTaken.Add("Updated SafeLinks rule '$RuleName'") Write-LogMessage -API 'Standards' -tenant $Tenant -message "Updated SafeLinks rule '$RuleName'" -sev Info - } - else { + } else { # Create new rule $RuleParams['Name'] = $RuleName $RuleParams['SafeLinksPolicy'] = $PolicyName @@ -348,21 +345,20 @@ function Invoke-SafeLinksRemediation { } $TemplateResults[$TemplateId] = @{ - Success = $true + Success = $true ActionsTaken = $ActionsTaken.ToArray() TemplateName = $Template.TemplateName ?? $Template.Name - PolicyName = $PolicyName - RuleName = $RuleName + PolicyName = $PolicyName + RuleName = $RuleName } Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully applied SafeLinks template '$($Template.TemplateName ?? $Template.Name)'" -sev Info - } - catch { + } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message $TemplateResults[$TemplateId] = @{ - Success = $false - Message = $ErrorMessage - TemplateName = $Template.TemplateName ?? $Template.Name ?? "Unknown" + Success = $false + Message = $ErrorMessage + TemplateName = $Template.TemplateName ?? $Template.Name ?? 'Unknown' } $OverallSuccess = $false @@ -372,9 +368,8 @@ function Invoke-SafeLinksRemediation { # Report overall results if ($OverallSuccess) { - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully applied all SafeLinks templates" -sev Info - } - else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Successfully applied all SafeLinks templates' -sev Info + } else { $SuccessCount = ($TemplateResults.Values | Where-Object { $_.Success -eq $true }).Count $TotalCount = $TemplateList.Count Write-LogMessage -API 'Standards' -tenant $Tenant -message "Applied $SuccessCount out of $TotalCount SafeLinks templates" -sev Info @@ -411,8 +406,7 @@ function Invoke-SafeLinksAlert { $AlertMessages.Add($Status) } - } - catch { + } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message $AlertMessages.Add("Failed to check template with ID $TemplateId : $ErrorMessage") $AllTemplatesApplied = $false @@ -420,13 +414,12 @@ function Invoke-SafeLinksAlert { } if ($AllTemplatesApplied) { - Write-LogMessage -API 'Standards' -tenant $Tenant -message "All SafeLinks templates are correctly applied" -sev Info - } - else { - $AlertMessage = "One or more SafeLinks templates are not correctly applied: " + ($AlertMessages.ToArray() -join " | ") + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'All SafeLinks templates are correctly applied' -sev Info + } else { + $AlertMessage = 'One or more SafeLinks templates are not correctly applied: ' + ($AlertMessages.ToArray() -join ' | ') Write-StandardsAlert -message $AlertMessage -object @{ Templates = $TemplateList - Issues = $AlertMessages.ToArray() + Issues = $AlertMessages.ToArray() } -tenant $Tenant -standardName 'SafeLinksTemplatePolicy' -standardId $Settings.standardId Write-LogMessage -API 'Standards' -tenant $Tenant -message $AlertMessage -sev Info @@ -450,19 +443,18 @@ function Invoke-SafeLinksReport { $ExistingObjects = Get-ExistingSafeLinksObjects -Tenant $Tenant -PolicyName $PolicyName -RuleName $RuleName $ReportResults[$TemplateId] = @{ - Success = ($ExistingObjects.PolicyExists -and $ExistingObjects.RuleExists) + Success = ($ExistingObjects.PolicyExists -and $ExistingObjects.RuleExists) TemplateName = $Template.TemplateName ?? $Template.Name - PolicyName = $PolicyName - RuleName = $RuleName + PolicyName = $PolicyName + RuleName = $RuleName PolicyExists = [bool]$ExistingObjects.PolicyExists - RuleExists = [bool]$ExistingObjects.RuleExists + RuleExists = [bool]$ExistingObjects.RuleExists } if (-not $ExistingObjects.PolicyExists -or -not $ExistingObjects.RuleExists) { $AllTemplatesApplied = $false } - } - catch { + } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message $ReportResults[$TemplateId] = @{ Success = $false @@ -474,14 +466,18 @@ function Invoke-SafeLinksReport { Add-CIPPBPAField -FieldName 'SafeLinksTemplatePolicy' -FieldValue $AllTemplatesApplied -StoreAs bool -Tenant $Tenant - if ($AllTemplatesApplied) { - Set-CIPPStandardsCompareField -FieldName 'standards.SafeLinksTemplatePolicy' -FieldValue $true -Tenant $Tenant + $CurrentValue = @{ + TemplateResults = $ReportResults + ProcessedTemplates = $TemplateList.Count + SuccessfulTemplates = ($ReportResults.Values | Where-Object { $_.Success -eq $true }).Count + AllTemplatesApplied = $AllTemplatesApplied } - else { - Set-CIPPStandardsCompareField -FieldName 'standards.SafeLinksTemplatePolicy' -FieldValue @{ - TemplateResults = $ReportResults - ProcessedTemplates = $TemplateList.Count - SuccessfulTemplates = ($ReportResults.Values | Where-Object { $_.Success -eq $true }).Count - } -Tenant $Tenant + $ExpectedValue = @{ + TemplateResults = $ReportResults + ProcessedTemplates = $TemplateList.Count + SuccessfulTemplates = $TemplateList.Count + AllTemplatesApplied = $true } + + Set-CIPPStandardsCompareField -FieldName 'standards.SafeLinksTemplatePolicy' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeSendersDisable.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeSendersDisable.ps1 index 00c5f576900d..cd172bd96070 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeSendersDisable.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeSendersDisable.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardSafeSendersDisable { CAT Exchange Standards TAG + EXECUTIVETEXT + Removes user-defined safe sender lists to prevent security bypasses where malicious emails could avoid spam filtering. This ensures all emails go through proper security screening, even if users have previously marked senders as 'safe', improving overall email security. ADDEDCOMPONENT DISABLEDFEATURES {"report":true,"warn":true,"remediate":false} @@ -31,16 +33,21 @@ function Invoke-CIPPStandardSafeSendersDisable { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'SafeSendersDisable' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. if ($Settings.remediate -eq $true) { try { $Mailboxes = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-Mailbox' -select 'UserPrincipalName' - $Request = $Mailboxes | ForEach-Object { + $Request = foreach ($Mailbox in $Mailboxes) { @{ CmdletInput = @{ CmdletName = 'Set-MailboxJunkEmailConfiguration' Parameters = @{ - Identity = $_.UserPrincipalName + Identity = $Mailbox.UserPrincipalName TrustedRecipientsAndDomains = $null } } @@ -48,11 +55,10 @@ function Invoke-CIPPStandardSafeSendersDisable { } $BatchResults = New-ExoBulkRequest -tenantid $tenant -cmdletArray @($Request) - $BatchResults | ForEach-Object { - if ($_.error) { - $ErrorMessage = Get-NormalizedError -Message $_.error - Write-Host "Failed to Disable SafeSenders for $($_.target). Error: $ErrorMessage" - Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to Disable SafeSenders for $($_.target). Error: $ErrorMessage" -sev Error + foreach ($Result in $BatchResults) { + if ($Result.error) { + $ErrorMessage = Get-NormalizedError -Message $Result.error + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to Disable SafeSenders for $($Result.target). Error: $ErrorMessage" -sev Error } } Write-LogMessage -API 'Standards' -tenant $tenant -message 'Safe Senders disabled' -sev Info @@ -62,4 +68,15 @@ function Invoke-CIPPStandardSafeSendersDisable { } } + if ($Settings.report -eq $true) { + #This script always returns true, as it only disables the Safe Senders list + $CurrentValue = @{ + SafeSendersDisabled = $true + } + $ExpectedValue = @{ + SafeSendersDisabled = $true + } + Set-CIPPStandardsCompareField -FieldName 'standards.SafeSendersDisable' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } + } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSecureScoreRemediation.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSecureScoreRemediation.ps1 new file mode 100644 index 000000000000..9dbfee7f6eb1 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSecureScoreRemediation.ps1 @@ -0,0 +1,194 @@ +function Invoke-CIPPStandardSecureScoreRemediation { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) SecureScoreRemediation + .SYNOPSIS + (Label) Update Secure Score Control Profiles + .DESCRIPTION + (Helptext) Allows bulk updating of Secure Score control profiles across tenants. Select controls and assign them to different states: Default, Ignored, Third-Party, or Reviewed. + (DocsDescription) Allows bulk updating of Secure Score control profiles across tenants. Select controls and assign them to different states: Default, Ignored, Third-Party, or Reviewed. + .NOTES + CAT + Global Standards + TAG + "lowimpact" + ADDEDCOMPONENT + {"type":"autoComplete","multiple":true,"creatable":true,"required":false,"name":"standards.SecureScoreRemediation.Default","label":"Controls to set to Default","api":{"url":"/secureScore.json","labelField":"title","valueField":"id"}} + {"type":"autoComplete","multiple":true,"creatable":true,"required":false,"name":"standards.SecureScoreRemediation.Ignored","label":"Controls to set to Ignored","api":{"url":"/secureScore.json","labelField":"title","valueField":"id"}} + {"type":"autoComplete","multiple":true,"creatable":true,"required":false,"name":"standards.SecureScoreRemediation.ThirdParty","label":"Controls to set to Third-Party","api":{"url":"/secureScore.json","labelField":"title","valueField":"id"}} + {"type":"autoComplete","multiple":true,"required":false,"creatable":true,"name":"standards.SecureScoreRemediation.Reviewed","label":"Controls to set to Reviewed","api":{"url":"/secureScore.json","labelField":"title","valueField":"id"}} + IMPACT + Low Impact + ADDEDDATE + 2025-11-19 + POWERSHELLEQUIVALENT + New-GraphPostRequest to /beta/security/secureScoreControlProfiles/{id} + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + + # Get current secure score controls + try { + $CurrentControls = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/security/secureScoreControlProfiles' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Could not retrieve Secure Score controls for $Tenant. Error: $ErrorMessage" -sev Error + return + } + + # Build list of controls with their desired states + $ControlsToUpdate = [System.Collections.Generic.List[object]]::new() + + # Process Default controls + $DefaultControls = $Settings.Default.value ?? $Settings.Default + if ($DefaultControls) { + foreach ($ControlName in $DefaultControls) { + $ControlsToUpdate.Add(@{ + ControlName = $ControlName + State = 'default' + Reason = 'Default' + }) + } + } + + # Process Ignored controls + $IgnoredControls = $Settings.Ignored.value ?? $Settings.Ignored + if ($IgnoredControls) { + foreach ($ControlName in $IgnoredControls) { + $ControlsToUpdate.Add(@{ + ControlName = $ControlName + State = 'ignored' + Reason = 'Ignored' + }) + } + } + + # Process ThirdParty controls + $ThirdPartyControls = $Settings.ThirdParty.value ?? $Settings.ThirdParty + if ($ThirdPartyControls) { + foreach ($ControlName in $ThirdPartyControls) { + $ControlsToUpdate.Add(@{ + ControlName = $ControlName + State = 'thirdParty' + Reason = 'ThirdParty' + }) + } + } + + # Process Reviewed controls + $ReviewedControls = $Settings.Reviewed.value ?? $Settings.Reviewed + if ($ReviewedControls) { + foreach ($ControlName in $ReviewedControls) { + $ControlsToUpdate.Add(@{ + ControlName = $ControlName + State = 'reviewed' + Reason = 'Reviewed' + }) + } + } + + if ($Settings.remediate -eq $true) { + foreach ($Control in $ControlsToUpdate) { + # Skip if this is a Defender control (starts with scid_) + if ($Control.ControlName -match '^scid_') { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Skipping Defender control $($Control.ControlName) - cannot be updated via this API" -sev Info + continue + } + + # Build the request body + $Body = @{ + state = $Control.State + comment = $Control.Reason + vendorInformation = @{ + vendor = 'Microsoft' + provider = 'SecureScore' + } + } + + try { + $CurrentControl = $CurrentControls | Where-Object { $_.id -eq $Control.ControlName } + + # Check if already in desired state + if ($CurrentControl.state -eq $Control.State) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Control $($Control.ControlName) is already in state $($Control.State)" -sev Info + } else { + # Update the control + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/security/secureScoreControlProfiles/$($Control.ControlName)" -tenantid $Tenant -type PATCH -Body (ConvertTo-Json -InputObject $Body -Compress) + Write-LogMessage -API 'Standards' -tenant $tenant -message "Successfully set control $($Control.ControlName) to $($Control.State)" -sev Info + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to set control $($Control.ControlName) to $($Control.State). Error: $ErrorMessage" -sev Error + } + } + } + + if ($Settings.alert -eq $true) { + $AlertMessages = [System.Collections.Generic.List[string]]::new() + + foreach ($Control in $ControlsToUpdate) { + if ($Control.ControlName -match '^scid_') { + continue + } + + $CurrentControl = $CurrentControls | Where-Object { $_.id -eq $Control.ControlName } + + if ($CurrentControl) { + if ($CurrentControl.state -eq $Control.State) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Control $($Control.ControlName) is in expected state: $($Control.State)" -sev Info + } else { + $AlertMessage = "Control $($Control.ControlName) is in state $($CurrentControl.state), expected $($Control.State)" + $AlertMessages.Add($AlertMessage) + Write-LogMessage -API 'Standards' -tenant $tenant -message $AlertMessage -sev Alert + } + } else { + $AlertMessage = "Control $($Control.ControlName) not found in tenant" + $AlertMessages.Add($AlertMessage) + Write-LogMessage -API 'Standards' -tenant $tenant -message $AlertMessage -sev Warning + } + } + + if ($AlertMessages.Count -gt 0) { + Write-StandardsAlert -message 'Secure Score controls not in expected state' -object @{Issues = $AlertMessages.ToArray() } -tenant $Tenant -standardName 'SecureScoreRemediation' -standardId $Settings.standardId + } + } + + if ($Settings.report -eq $true) { + $ReportData = [System.Collections.Generic.List[object]]::new() + + foreach ($Control in $ControlsToUpdate) { + if ($Control.ControlName -match '^scid_') { + continue + } + + $CurrentControl = $CurrentControls | Where-Object { $_.id -eq $Control.ControlName } + $LatestState = ($CurrentControl.controlStateUpdates | Select-Object -Last 1).state + if ($LatestState -ne $Control.State) { + $ReportData.Add(@{ + ControlName = $Control.ControlName + CurrentState = $LatestState + DesiredState = $Control.State + InCompliance = $false + }) + } + } + + + $CurrentValue = @{ + ControlsToUpdate = $ReportData ?? @() + } + $ExpectedValue = @{ + ControlsToUpdate = @() + } + + Set-CIPPStandardsCompareField -FieldName 'standards.SecureScoreRemediation' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $tenant + Add-CIPPBPAField -FieldName 'SecureScoreRemediation' -FieldValue $ReportData -StoreAs json -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSecurityDefaults.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSecurityDefaults.ps1 index a8f7552c87c5..e774f32756e7 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSecurityDefaults.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSecurityDefaults.ps1 @@ -13,6 +13,9 @@ function Invoke-CIPPStandardSecurityDefaults { CAT Entra (AAD) Standards TAG + "CISA (MS.AAD.11.1v1)" + EXECUTIVETEXT + Activates Microsoft's baseline security configuration that requires multi-factor authentication and blocks legacy authentication methods. This provides essential security protection for organizations without complex conditional access policies, significantly improving security posture with minimal configuration. ADDEDCOMPONENT IMPACT High Impact @@ -29,13 +32,18 @@ function Invoke-CIPPStandardSecurityDefaults { param($Tenant, $Settings) - $SecureDefaultsState = (New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/identitySecurityDefaultsEnforcementPolicy' -tenantid $tenant) + try { + $SecureDefaultsState = (New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/identitySecurityDefaultsEnforcementPolicy' -tenantid $tenant) + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the Security Defaults state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } if ($Settings.remediate -eq $true) { if ($SecureDefaultsState.IsEnabled -ne $true) { try { - Write-Host "Secure Defaults is disabled. Enabling for $tenant" -ForegroundColor Yellow $body = '{ "isEnabled": true }' $null = New-GraphPostRequest -tenantid $tenant -Uri 'https://graph.microsoft.com/beta/policies/identitySecurityDefaultsEnforcementPolicy' -Type patch -Body $body -ContentType 'application/json' @@ -60,6 +68,12 @@ function Invoke-CIPPStandardSecurityDefaults { if ($Settings.report -eq $true) { Add-CIPPBPAField -FieldName 'SecurityDefaults' -FieldValue $SecureDefaultsState.IsEnabled -StoreAs bool -Tenant $tenant - Set-CIPPStandardsCompareField -FieldName 'standards.SecurityDefaults' -FieldValue $SecureDefaultsState.IsEnabled -Tenant $tenant + $CurrentData = @{ + SecurityDefaultsEnabled = $SecureDefaultsState.IsEnabled + } + $ExpectedData = @{ + SecurityDefaultsEnabled = $true + } + Set-CIPPStandardsCompareField -FieldName 'standards.SecurityDefaults' -CurrentValue $CurrentData -ExpectedValue $ExpectedData -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSendFromAlias.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSendFromAlias.ps1 index 8577b4368988..8dc6a4af027b 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSendFromAlias.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSendFromAlias.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardSendFromAlias { CAT Exchange Standards TAG + EXECUTIVETEXT + Allows employees to send emails from their alternative email addresses (aliases) rather than just their primary address. This is useful for employees who manage multiple roles or departments, enabling them to send emails from the most appropriate address for the context. ADDEDCOMPONENT IMPACT Medium Impact @@ -29,11 +31,22 @@ function Invoke-CIPPStandardSendFromAlias { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'SendFromAlias' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access - $CurrentInfo = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig').SendFromAliasEnabled + if ($TestResult -eq $false) { + return $true + } #we're done. + + try { + $CurrentInfo = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig').SendFromAliasEnabled + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the SendFromAlias state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } if ($Settings.remediate -eq $true) { - if ($CurrentInfo -eq $false) { + if ($CurrentInfo -ne $true) { try { New-ExoRequest -tenantid $Tenant -cmdlet 'Set-OrganizationConfig' -cmdParams @{ SendFromAliasEnabled = $true } Write-LogMessage -API 'Standards' -tenant $tenant -message 'Send from alias enabled.' -sev Info @@ -58,6 +71,12 @@ function Invoke-CIPPStandardSendFromAlias { if ($Settings.report -eq $true) { Add-CIPPBPAField -FieldName 'SendFromAlias' -FieldValue $CurrentInfo -StoreAs bool -Tenant $tenant - Set-CIPPStandardsCompareField -FieldName 'standards.SendFromAlias' -FieldValue $CurrentInfo -Tenant $tenant + $CurrentValue = @{ + SendFromAliasEnabled = $CurrentInfo + } + $ExpectedValue = @{ + SendFromAliasEnabled = $true + } + Set-CIPPStandardsCompareField -FieldName 'standards.SendFromAlias' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSendReceiveLimitTenant.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSendReceiveLimitTenant.ps1 index e9e3daa4a36b..0911e5d2634d 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSendReceiveLimitTenant.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSendReceiveLimitTenant.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardSendReceiveLimitTenant { CAT Exchange Standards TAG + EXECUTIVETEXT + Establishes standard email attachment size limits for all new employees, balancing functionality with system performance and security. This prevents email system overload from large attachments while ensuring employees can share necessary files through appropriate channels. ADDEDCOMPONENT {"type":"number","name":"standards.SendReceiveLimitTenant.SendLimit","label":"Send limit in MB (Default is 35)","defaultValue":35} {"type":"number","name":"standards.SendReceiveLimitTenant.ReceiveLimit","label":"Receive Limit in MB (Default is 36)","defaultValue":36} @@ -30,6 +32,11 @@ function Invoke-CIPPStandardSendReceiveLimitTenant { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'SendReceiveLimitTenant' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. # Input validation if ([Int32]$Settings.SendLimit -lt 1 -or [Int32]$Settings.SendLimit -gt 150) { @@ -37,46 +44,48 @@ function Invoke-CIPPStandardSendReceiveLimitTenant { return } + # Input validation if ([Int32]$Settings.ReceiveLimit -lt 1 -or [Int32]$Settings.ReceiveLimit -gt 150) { Write-LogMessage -API 'Standards' -tenant $tenant -message 'SendReceiveLimitTenant: Invalid ReceiveLimit parameter set' -sev Error return } - $AllMailBoxPlans = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-MailboxPlan' | Select-Object DisplayName, MaxSendSize, MaxReceiveSize, GUID - $MaxSendSize = $Settings.SendLimit * 1MB - $MaxReceiveSize = $Settings.ReceiveLimit * 1MB + try { + $AllMailBoxPlans = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-MailboxPlan' | + Select-Object DisplayName, MaxSendSize, MaxReceiveSize, GUID + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the SendReceiveLimitTenant state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } - $NotSetCorrectly = foreach ($MailboxPlan in $AllMailBoxPlans) { - if ($MailboxPlan.MaxSendSize -eq 'Unlimited') { - $PlanMaxSendSize = [int64]::MaxValue - } else { - $PlanMaxSendSize = [int64]($MailboxPlan.MaxSendSize -replace '.*\(([\d,]+).*', '$1' -replace ',', '') - } + $MaxSendSize = [int64]"$($Settings.SendLimit)MB" + $MaxReceiveSize = [int64]"$($Settings.ReceiveLimit)MB" - if ($MailboxPlan.MaxReceiveSize -eq 'Unlimited') { - $PlanMaxReceiveSize = [int64]::MaxValue - } else { - $PlanMaxReceiveSize = [int64]($MailboxPlan.MaxReceiveSize -replace '.*\(([\d,]+).*', '$1' -replace ',', '') + $NotSetCorrectly = foreach ($MailboxPlan in $AllMailBoxPlans) { + # Handle "Unlimited" values - treat them as not matching the desired limit. + if ($MailboxPlan.MaxSendSize -match 'Unlimited' -or $MailboxPlan.MaxReceiveSize -match 'Unlimited') { + $MailboxPlan + continue } + $PlanMaxSendSize = [int64]($MailboxPlan.MaxSendSize -replace '.*\(([\d,]+).*', '$1' -replace ',', '') + $PlanMaxReceiveSize = [int64]($MailboxPlan.MaxReceiveSize -replace '.*\(([\d,]+).*', '$1' -replace ',', '') if ($PlanMaxSendSize -ne $MaxSendSize -or $PlanMaxReceiveSize -ne $MaxReceiveSize) { $MailboxPlan } } if ($Settings.remediate -eq $true) { - Write-Host "Time to remediate. Our Settings are $($Settings.SendLimit)MB and $($Settings.ReceiveLimit)MB" - if ($NotSetCorrectly.Count -gt 0) { - Write-Host "Found $($NotSetCorrectly.Count) Mailbox Plans that are not set correctly. Setting them to $($Settings.SendLimit)MB and $($Settings.ReceiveLimit)MB" try { foreach ($MailboxPlan in $NotSetCorrectly) { New-ExoRequest -tenantid $Tenant -cmdlet 'Set-MailboxPlan' -cmdParams @{Identity = $MailboxPlan.GUID; MaxSendSize = $MaxSendSize; MaxReceiveSize = $MaxReceiveSize } -useSystemMailbox $true } Write-LogMessage -API 'Standards' -tenant $tenant -message "Successfully set the tenant send($($Settings.SendLimit)MB) and receive($($Settings.ReceiveLimit)MB) limits" -sev Info } catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to set the tenant send and receive limits. Error: $ErrorMessage" -sev Error + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to set the tenant send and receive limits. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage } } else { Write-LogMessage -API 'Standards' -tenant $tenant -message "The tenant send($($Settings.SendLimit)MB) and receive($($Settings.ReceiveLimit)MB) limits are already set correctly" -sev Info @@ -84,6 +93,7 @@ function Invoke-CIPPStandardSendReceiveLimitTenant { } if ($Settings.alert -eq $true) { + if ($NotSetCorrectly.Count -eq 0) { Write-LogMessage -API 'Standards' -tenant $tenant -message "The tenant send($($Settings.SendLimit)MB) and receive($($Settings.ReceiveLimit)MB) limits are set correctly" -sev Info } else { @@ -95,11 +105,14 @@ function Invoke-CIPPStandardSendReceiveLimitTenant { if ($Settings.report -eq $true) { Add-CIPPBPAField -FieldName 'SendReceiveLimit' -FieldValue $NotSetCorrectly -StoreAs json -Tenant $tenant - if ($NotSetCorrectly.Count -eq 0) { - $FieldValue = $true - } else { - $FieldValue = $NotSetCorrectly + $CurrentValue = @{ + SendLimit = $Settings.SendLimit + ReceiveLimit = $Settings.ReceiveLimit + } + $ExpectedValue = @{ + SendLimit = $Settings.SendLimit + ReceiveLimit = $Settings.ReceiveLimit } - Set-CIPPStandardsCompareField -FieldName 'standards.SendReceiveLimitTenant' -FieldValue $FieldValue -Tenant $tenant + Set-CIPPStandardsCompareField -FieldName 'standards.SendReceiveLimitTenant' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSharePointMassDeletionAlert.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSharePointMassDeletionAlert.ps1 index cad89dfd0049..682d24b2c0c2 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSharePointMassDeletionAlert.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSharePointMassDeletionAlert.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardSharePointMassDeletionAlert { CAT Defender Standards TAG + EXECUTIVETEXT + Alerts administrators when employees delete large numbers of SharePoint files in a short time period, helping detect potential data destruction attacks, ransomware, or accidental mass deletions. This early warning system enables rapid response to protect critical business documents and data. ADDEDCOMPONENT {"type":"number","name":"standards.SharePointMassDeletionAlert.Threshold","label":"Max files to delete within the time frame","defaultValue":20} {"type":"number","name":"standards.SharePointMassDeletionAlert.TimeWindow","label":"Time frame in minutes","defaultValue":60} @@ -31,20 +33,30 @@ function Invoke-CIPPStandardSharePointMassDeletionAlert { #> param ($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'DeletedUserRentention' -TenantFilter $Tenant -RequiredCapabilities @('RMS_S_PREMIUM2') + + if ($TestResult -eq $false) { + return $true + } #we're done. $PolicyName = 'CIPP SharePoint mass deletion of files by a user' - $CurrentState = New-ExoRequest -TenantId $Tenant -cmdlet 'Get-ProtectionAlert' -Compliance | - Where-Object { $_.Name -eq $PolicyName } | - Select-Object -Property * + try { + $CurrentState = New-ExoRequest -TenantId $Tenant -cmdlet 'Get-ProtectionAlert' -Compliance | + Where-Object { $_.Name -eq $PolicyName } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the sharingCapability state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $EmailsOutsideSettings = $CurrentState.NotifyUser | Where-Object { $_ -notin $Settings.NotifyUser.value } $MissingEmailsInSettings = $Settings.NotifyUser.value | Where-Object { $_ -notin $CurrentState.NotifyUser } $StateIsCorrect = ($EmailsOutsideSettings.Count -eq 0) -and - ($MissingEmailsInSettings.Count -eq 0) -and - ($CurrentState.Threshold -eq $Settings.Threshold) -and - ($CurrentState.TimeWindow -eq $Settings.TimeWindow) + ($MissingEmailsInSettings.Count -eq 0) -and + ($CurrentState.Threshold -eq $Settings.Threshold) -and + ($CurrentState.TimeWindow -eq $Settings.TimeWindow) $CompareField = [PSCustomObject]@{ 'Threshold' = $CurrentState.Threshold @@ -52,10 +64,10 @@ function Invoke-CIPPStandardSharePointMassDeletionAlert { 'NotifyUser' = $CurrentState.NotifyUser -join ', ' } - If ($Settings.remediate -eq $true) { - If ($StateIsCorrect -eq $true) { + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'SharePoint mass deletion of files alert is configured correctly' -sev Info - } Else { + } else { $cmdParams = @{ 'NotifyUser' = $Settings.NotifyUser.value 'Category' = 'DataGovernance' @@ -66,7 +78,7 @@ function Invoke-CIPPStandardSharePointMassDeletionAlert { 'TimeWindow' = $Settings.TimeWindow } - If ($CurrentState.Name -eq $PolicyName) { + if ($CurrentState.Name -eq $PolicyName) { try { $cmdParams['Identity'] = $PolicyName New-ExoRequest -TenantId $Tenant -cmdlet 'Set-ProtectionAlert' -Compliance -cmdParams $cmdParams -UseSystemMailbox $true @@ -75,7 +87,7 @@ function Invoke-CIPPStandardSharePointMassDeletionAlert { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Failed to configure SharePoint mass deletion of files alert. Error: $ErrorMessage" -sev Error } - } Else { + } else { try { $cmdParams['name'] = $PolicyName $cmdParams['ThreatType'] = 'Activity' @@ -90,18 +102,27 @@ function Invoke-CIPPStandardSharePointMassDeletionAlert { } } - If ($Settings.alert -eq $true) { - If ($StateIsCorrect -eq $true) { + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'SharePoint mass deletion of files alert is enabled' -sev Info - } Else { + } else { Write-StandardsAlert -message 'SharePoint mass deletion of files alert is disabled' -object $CompareField -tenant $tenant -standardName 'SharePointMassDeletionAlert' -standardId $Settings.standardId Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'SharePoint mass deletion of files alert is disabled' -sev Info } } - If ($Settings.report -eq $true) { - $FieldValue = $StateIsCorrect ? $true : $CompareField - Set-CIPPStandardsCompareField -FieldName 'standards.SharePointMassDeletionAlert' -FieldValue $FieldValue -TenantFilter $Tenant + if ($Settings.report -eq $true) { + $CurrentValue = @{ + Threshold = $CurrentState.Threshold + TimeWindow = $CurrentState.TimeWindow + NotifyUser = @($CurrentState.NotifyUser) + } + $ExpectedValue = @{ + Threshold = $Settings.Threshold + TimeWindow = $Settings.TimeWindow + NotifyUser = @($Settings.NotifyUser.value) + } + Set-CIPPStandardsCompareField -FieldName 'standards.SharePointMassDeletionAlert' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'SharePointMassDeletionAlert' -FieldValue [bool]$StateIsCorrect -StoreAs bool -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardShortenMeetings.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardShortenMeetings.ps1 index a92efc0b4b32..64b420cfa7c3 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardShortenMeetings.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardShortenMeetings.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardShortenMeetings { CAT Exchange Standards TAG + EXECUTIVETEXT + Automatically shortens calendar meetings by a specified number of minutes to provide buffer time between meetings, reducing back-to-back scheduling stress and allowing employees time to transition between meetings. This improves work-life balance and meeting effectiveness. ADDEDCOMPONENT {"type":"autoComplete","multiple":false,"label":"Select value","name":"standards.ShortenMeetings.ShortenEventScopeDefault","options":[{"label":"Disabled/None","value":"None"},{"label":"End early","value":"EndEarly"},{"label":"Start late","value":"StartLate"}]} {"type":"number","name":"standards.ShortenMeetings.DefaultMinutesToReduceShortEventsBy","label":"Minutes to reduce short calendar events by (Default is 5)","defaultValue":5} @@ -31,18 +33,29 @@ function Invoke-CIPPStandardShortenMeetings { #> param($Tenant, $Settings) - Write-Host "ShortenMeetings: $($Settings | ConvertTo-Json -Compress)" + $TestResult = Test-CIPPStandardLicense -StandardName 'ShortenMeetings' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. + # Get state value using null-coalescing operator $scopeDefault = $Settings.ShortenEventScopeDefault.value ? $Settings.ShortenEventScopeDefault.value : $Settings.ShortenEventScopeDefault - $CurrentState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig' | Select-Object -Property ShortenEventScopeDefault, DefaultMinutesToReduceShortEventsBy, DefaultMinutesToReduceLongEventsBy + try { + $CurrentState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig' | + Select-Object -Property ShortenEventScopeDefault, DefaultMinutesToReduceShortEventsBy, DefaultMinutesToReduceLongEventsBy + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the ShortenMeetings state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + $CorrectState = if ($CurrentState.ShortenEventScopeDefault -eq $scopeDefault -and $CurrentState.DefaultMinutesToReduceShortEventsBy -eq $Settings.DefaultMinutesToReduceShortEventsBy -and $CurrentState.DefaultMinutesToReduceLongEventsBy -eq $Settings.DefaultMinutesToReduceLongEventsBy) { $true } else { $false } if ($Settings.remediate -eq $true) { - Write-Host 'Time to remediate' - if ($CorrectState -eq $true) { Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Shorten meetings settings are already in the correct state. ' -sev Info } else { @@ -79,11 +92,16 @@ function Invoke-CIPPStandardShortenMeetings { Add-CIPPBPAField @BPAField -StoreAs json } - if ($CorrectState -eq $true) { - $FieldValue = $true - } else { - $FieldValue = $CurrentState + $CurrentValue = @{ + ShortenEventScopeDefault = $CurrentState.ShortenEventScopeDefault + DefaultMinutesToReduceShortEventsBy = $CurrentState.DefaultMinutesToReduceShortEventsBy + DefaultMinutesToReduceLongEventsBy = $CurrentState.DefaultMinutesToReduceLongEventsBy + } + $ExpectedValue = @{ + ShortenEventScopeDefault = $scopeDefault + DefaultMinutesToReduceShortEventsBy = $Settings.DefaultMinutesToReduceShortEventsBy + DefaultMinutesToReduceLongEventsBy = $Settings.DefaultMinutesToReduceLongEventsBy } - Set-CIPPStandardsCompareField -FieldName 'standards.ShortenMeetings' -FieldValue $FieldValue -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.ShortenMeetings' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSpamFilterPolicy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSpamFilterPolicy.ps1 index c650c95ef858..37dd46c5c4a4 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSpamFilterPolicy.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSpamFilterPolicy.ps1 @@ -8,12 +8,13 @@ function Invoke-CIPPStandardSpamFilterPolicy { (Label) Default Spam Filter Policy .DESCRIPTION (Helptext) This standard creates a Spam filter policy similar to the default strict policy. - (DocsDescription) This standard creates a Spam filter policy similar to the default strict policy. + (DocsDescription) This standard creates a Spam filter policy similar to the default strict policy, the following settings are configured to on by default: IncreaseScoreWithNumericIps, IncreaseScoreWithRedirectToOtherPort, MarkAsSpamEmptyMessages, MarkAsSpamJavaScriptInHtml, MarkAsSpamSpfRecordHardFail, MarkAsSpamFromAddressAuthFail, MarkAsSpamNdrBackscatter, MarkAsSpamBulkMail, InlineSafetyTipsEnabled, PhishZapEnabled, SpamZapEnabled .NOTES CAT Defender Standards TAG ADDEDCOMPONENT + {"type":"textField","name":"standards.SpamFilterPolicy.name","label":"Policy Name","required":true,"defaultValue":"CIPP Default Spam Filter Policy"} {"type":"number","label":"Bulk email threshold (Default 7)","name":"standards.SpamFilterPolicy.BulkThreshold","defaultValue":7} {"type":"autoComplete","required":true,"multiple":false,"creatable":false,"label":"Spam Action","name":"standards.SpamFilterPolicy.SpamAction","options":[{"label":"Quarantine the message","value":"Quarantine"},{"label":"Move message to Junk Email folder","value":"MoveToJmf"}]} {"type":"autoComplete","required":true,"multiple":false,"creatable":true,"label":"Spam Quarantine Tag","name":"standards.SpamFilterPolicy.SpamQuarantineTag","options":[{"label":"AdminOnlyAccessPolicy","value":"AdminOnlyAccessPolicy"},{"label":"DefaultFullAccessPolicy","value":"DefaultFullAccessPolicy"},{"label":"DefaultFullAccessWithNotificationPolicy","value":"DefaultFullAccessWithNotificationPolicy"}]} @@ -51,10 +52,23 @@ function Invoke-CIPPStandardSpamFilterPolicy { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'SpamFilterPolicy' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access - $PolicyName = 'CIPP Default Spam Filter Policy' + if ($TestResult -eq $false) { + return $true + } #we're done. - $CurrentState = New-ExoRequest -TenantId $Tenant -cmdlet 'Get-HostedContentFilterPolicy' | Where-Object -Property Name -EQ $PolicyName | Select-Object -Property * + # Use custom name if provided, otherwise use default for backward compatibility + $PolicyName = if ($Settings.name) { $Settings.name } else { 'CIPP Default Spam Filter Policy' } + + try { + $CurrentState = New-ExoRequest -TenantId $Tenant -cmdlet 'Get-HostedContentFilterPolicy' | + Where-Object -Property Name -EQ $PolicyName + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the SpamFilterPolicy state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $SpamAction = $Settings.SpamAction.value ?? $Settings.SpamAction $SpamQuarantineTag = $Settings.SpamQuarantineTag.value ?? $Settings.SpamQuarantineTag @@ -109,20 +123,18 @@ function Invoke-CIPPStandardSpamFilterPolicy { ($CurrentState.PhishZapEnabled -eq $true) -and ($CurrentState.SpamZapEnabled -eq $true) -and ($CurrentState.EnableLanguageBlockList -eq $Settings.EnableLanguageBlockList) -and - ((-not $CurrentState.LanguageBlockList -and -not $Settings.LanguageBlockList.value) -or (!(Compare-Object -ReferenceObject $CurrentState.LanguageBlockList -DifferenceObject $Settings.LanguageBlockList.value))) -and + ((($null -eq $CurrentState.LanguageBlockList -or $CurrentState.LanguageBlockList.Count -eq 0) -and ($null -eq $Settings.LanguageBlockList.value)) -or ($null -ne $CurrentState.LanguageBlockList -and $CurrentState.LanguageBlockList.Count -gt 0 -and $null -ne $Settings.LanguageBlockList.value -and !(Compare-Object -ReferenceObject $CurrentState.LanguageBlockList -DifferenceObject $Settings.LanguageBlockList.value))) -and ($CurrentState.EnableRegionBlockList -eq $Settings.EnableRegionBlockList) -and - ((-not $CurrentState.RegionBlockList -and -not $Settings.RegionBlockList.value) -or (!(Compare-Object -ReferenceObject $CurrentState.RegionBlockList -DifferenceObject $Settings.RegionBlockList.value))) -and - (!(Compare-Object -ReferenceObject $CurrentState.AllowedSenderDomains -DifferenceObject ($Settings.AllowedSenderDomains.value ?? $Settings.AllowedSenderDomains))) - } - catch { + ((($null -eq $CurrentState.RegionBlockList -or $CurrentState.RegionBlockList.Count -eq 0) -and ($null -eq $Settings.RegionBlockList.value)) -or ($null -ne $CurrentState.RegionBlockList -and $CurrentState.RegionBlockList.Count -gt 0 -and $null -ne $Settings.RegionBlockList.value -and !(Compare-Object -ReferenceObject $CurrentState.RegionBlockList -DifferenceObject $Settings.RegionBlockList.value))) -and + ((($null -eq $CurrentState.AllowedSenderDomains -or $CurrentState.AllowedSenderDomains.Count -eq 0) -and ($null -eq ($Settings.AllowedSenderDomains.value ?? $Settings.AllowedSenderDomains))) -or ($null -ne $CurrentState.AllowedSenderDomains -and $CurrentState.AllowedSenderDomains.Count -gt 0 -and $null -ne ($Settings.AllowedSenderDomains.value ?? $Settings.AllowedSenderDomains) -and !(Compare-Object -ReferenceObject $CurrentState.AllowedSenderDomains -DifferenceObject ($Settings.AllowedSenderDomains.value ?? $Settings.AllowedSenderDomains)))) + } catch { $StateIsCorrect = $false } $AcceptedDomains = New-ExoRequest -TenantId $Tenant -cmdlet 'Get-AcceptedDomain' $RuleState = New-ExoRequest -TenantId $Tenant -cmdlet 'Get-HostedContentFilterRule' | - Where-Object -Property Name -EQ $PolicyName | - Select-Object -Property * + Where-Object -Property Name -EQ $PolicyName $RuleStateIsCorrect = ($RuleState.Name -eq $PolicyName) -and ($RuleState.HostedContentFilterPolicy -eq $PolicyName) -and @@ -243,11 +255,58 @@ function Invoke-CIPPStandardSpamFilterPolicy { if ($Settings.report -eq $true) { Add-CIPPBPAField -FieldName 'SpamFilterPolicy' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant - if ($StateIsCorrect) { - $FieldValue = $true - } else { - $FieldValue = $StateIsCorrect -eq $true ? $true : ($CurrentState ?? @{ state = 'Spam filter policy not found' }) + $CurrentValue = @{ + Name = $CurrentState.Name + SpamAction = $CurrentState.SpamAction + SpamQuarantineTag = $CurrentState.SpamQuarantineTag + HighConfidenceSpamAction = $CurrentState.HighConfidenceSpamAction + HighConfidenceSpamQuarantineTag = $CurrentState.HighConfidenceSpamQuarantineTag + BulkSpamAction = $CurrentState.BulkSpamAction + BulkQuarantineTag = $CurrentState.BulkQuarantineTag + PhishSpamAction = $CurrentState.PhishSpamAction + PhishQuarantineTag = $CurrentState.PhishQuarantineTag + HighConfidencePhishQuarantineTag = $CurrentState.HighConfidencePhishQuarantineTag + BulkThreshold = $CurrentState.BulkThreshold + IncreaseScoreWithImageLinks = $CurrentState.IncreaseScoreWithImageLinks + IncreaseScoreWithBizOrInfoUrls = $CurrentState.IncreaseScoreWithBizOrInfoUrls + MarkAsSpamFramesInHtml = $CurrentState.MarkAsSpamFramesInHtml + MarkAsSpamObjectTagsInHtml = $CurrentState.MarkAsSpamObjectTagsInHtml + MarkAsSpamEmbedTagsInHtml = $CurrentState.MarkAsSpamEmbedTagsInHtml + MarkAsSpamFormTagsInHtml = $CurrentState.MarkAsSpamFormTagsInHtml + MarkAsSpamWebBugsInHtml = $CurrentState.MarkAsSpamWebBugsInHtml + MarkAsSpamSensitiveWordList = $CurrentState.MarkAsSpamSensitiveWordList + EnableLanguageBlockList = $CurrentState.EnableLanguageBlockList + LanguageBlockList = $CurrentState.LanguageBlockList + EnableRegionBlockList = $CurrentState.EnableRegionBlockList + RegionBlockList = $CurrentState.RegionBlockList + AllowedSenderDomains = $CurrentState.AllowedSenderDomains + } + $ExpectedValue = [pscustomobject]@{ + Name = $PolicyName + SpamAction = $SpamAction + SpamQuarantineTag = $SpamQuarantineTag + HighConfidenceSpamAction = $HighConfidenceSpamAction + HighConfidenceSpamQuarantineTag = $HighConfidenceSpamQuarantineTag + BulkSpamAction = $BulkSpamAction + BulkQuarantineTag = $BulkQuarantineTag + PhishSpamAction = $PhishSpamAction + PhishQuarantineTag = $PhishQuarantineTag + HighConfidencePhishQuarantineTag = $HighConfidencePhishQuarantineTag + BulkThreshold = [int]$Settings.BulkThreshold + IncreaseScoreWithImageLinks = $IncreaseScoreWithImageLinks + IncreaseScoreWithBizOrInfoUrls = $IncreaseScoreWithBizOrInfoUrls + MarkAsSpamFramesInHtml = $MarkAsSpamFramesInHtml + MarkAsSpamObjectTagsInHtml = $MarkAsSpamObjectTagsInHtml + MarkAsSpamEmbedTagsInHtml = $MarkAsSpamEmbedTagsInHtml + MarkAsSpamFormTagsInHtml = $MarkAsSpamFormTagsInHtml + MarkAsSpamWebBugsInHtml = $MarkAsSpamWebBugsInHtml + MarkAsSpamSensitiveWordList = $MarkAsSpamSensitiveWordList + EnableLanguageBlockList = $Settings.EnableLanguageBlockList + LanguageBlockList = $Settings.EnableLanguageBlockList ? @($Settings.EnableLanguageBlockList) : @() + EnableRegionBlockList = $Settings.EnableRegionBlockList + RegionBlockList = $Settings.RegionBlockList.value ? @($Settings.RegionBlockList.value) : @() + AllowedSenderDomains = $Settings.AllowedSenderDomains.value ? @($Settings.AllowedSenderDomains.value) : @() } - Set-CIPPStandardsCompareField -FieldName 'standards.SpamFilterPolicy' -FieldValue $FieldValue -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.SpamFilterPolicy' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSpoofWarn.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSpoofWarn.ps1 index 076829cac9f3..3da3cec7fe99 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSpoofWarn.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSpoofWarn.ps1 @@ -13,7 +13,9 @@ function Invoke-CIPPStandardSpoofWarn { CAT Exchange Standards TAG - "CIS" + "CIS M365 5.0 (6.2.3)" + EXECUTIVETEXT + Displays visual warnings in Outlook when emails come from external senders, helping employees identify potentially suspicious messages and reducing the risk of phishing attacks. This security feature makes it easier for staff to distinguish between internal and external communications. ADDEDCOMPONENT {"type":"autoComplete","multiple":false,"label":"Select value","name":"standards.SpoofWarn.state","options":[{"label":"Enabled","value":"enabled"},{"label":"Disabled","value":"disabled"}]} {"type":"autoComplete","multiple":true,"creatable":true,"required":false,"label":"Enter allowed senders(domain.com, *.domain.com or test@domain.com)","name":"standards.SpoofWarn.AllowListAdd"} @@ -33,25 +35,40 @@ function Invoke-CIPPStandardSpoofWarn { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'SpoofWarn' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access - $CurrentInfo = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-ExternalInOutlook') + if ($TestResult -eq $false) { + return $true + } #we're done. + + try { + $CurrentInfo = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-ExternalInOutlook') + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the SpoofWarn state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } # Get state value using null-coalescing operator $state = $Settings.state.value ?? $Settings.state + + $IsEnabled = $state -eq 'enabled' $AllowListAdd = $Settings.AllowListAdd.value ?? $Settings.AllowListAdd # Test if all entries in the AllowListAdd variable are in the AllowList $AllowListCorrect = $true - $AllowListAddEntries = foreach ($entry in $AllowListAdd) { - if ($CurrentInfo.AllowList -notcontains $entry) { - $AllowListCorrect = $false - Write-Host "AllowList entry $entry not found in current AllowList" - $entry - } else { - Write-Host "AllowList entry $entry found in current AllowList." + + if ($AllowListAdd -eq $null -or $AllowListAdd.Count -eq 0) { + $AllowListAdd = @{'@odata.type' = '#Exchange.GenericHashTable'; Add = @() } + } else { + $AllowListAddEntries = foreach ($entry in $AllowListAdd) { + if ($CurrentInfo.AllowList -notcontains $entry) { + $AllowListCorrect = $false + $entry + } } + $AllowListAdd = @{'@odata.type' = '#Exchange.GenericHashTable'; Add = $AllowListAddEntries } } - $AllowListAdd = @{'@odata.type' = '#Exchange.GenericHashTable'; Add = $AllowListAddEntries } # Debug output # Write-Host ($CurrentInfo | ConvertTo-Json -Depth 10) @@ -64,7 +81,6 @@ function Invoke-CIPPStandardSpoofWarn { } if ($Settings.remediate -eq $true) { - Write-Host 'Time to remediate!' $status = if ($Settings.enable -and $Settings.disable) { # Handle pre standards v2.0 legacy settings when this was 2 separate standards Write-LogMessage -API 'Standards' -tenant $Tenant -message 'You cannot both enable and disable the Spoof Warnings setting' -sev Error @@ -110,11 +126,16 @@ function Invoke-CIPPStandardSpoofWarn { if ($Settings.report -eq $true) { Add-CIPPBPAField -FieldName 'SpoofingWarnings' -FieldValue $CurrentInfo.Enabled -StoreAs bool -Tenant $Tenant - if ($AllowListCorrect -eq $true -and $CurrentInfo.Enabled -eq $status) { - $FieldValue = $true - } else { - $FieldValue = $CurrentInfo | Select-Object Enabled, AllowList + $CurrentValue = @{ + Enabled = $CurrentInfo.Enabled + AllowList = $CurrentInfo.AllowList + IsCompliant = $CurrentInfo.Enabled -eq $IsEnabled -and $AllowListCorrect + } + $ExpectedValue = @{ + Enabled = $IsEnabled + AllowList = $Settings.AllowListAdd.value ? @($Settings.AllowListAdd.value) : @() + IsCompliant = $true } - Set-CIPPStandardsCompareField -FieldName 'standards.SpoofWarn' -FieldValue $FieldValue -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.SpoofWarn' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardStaleEntraDevices.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardStaleEntraDevices.ps1 index e85947eca52c..bc202c1360ad 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardStaleEntraDevices.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardStaleEntraDevices.ps1 @@ -13,11 +13,15 @@ function Invoke-CIPPStandardStaleEntraDevices { CAT Entra (AAD) Standards TAG - "CIS" + "Essential 8 (1501)" + "NIST CSF 2.0 (ID.AM-08)" + "NIST CSF 2.0 (PR.PS-03)" + EXECUTIVETEXT + Automatically identifies and removes inactive devices that haven't connected to company systems for a specified period, reducing security risks from abandoned or lost devices. This maintains a clean device inventory and prevents potential unauthorized access through dormant device registrations. ADDEDCOMPONENT {"type":"number","name":"standards.StaleEntraDevices.deviceAgeThreshold","label":"Days before stale(Do not set below 30)"} DISABLEDFEATURES - {"report":false,"warn":false,"remediate":true} + {"report":false,"warn":false,"remediate":false} IMPACT High Impact ADDEDDATE @@ -32,15 +36,26 @@ function Invoke-CIPPStandardStaleEntraDevices { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'StaleEntraDevices' -TenantFilter $Tenant -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') # Get all Entra devices - $AllDevices = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/devices' -tenantid $Tenant | Where-Object { $null -ne $_.approximateLastSignInDateTime } + + if ($TestResult -eq $false) { + return $true + } #we're done. + + try { + $AllDevices = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/devices?$select=id,displayName,approximateLastSignInDateTime,accountEnabled,enrollmentProfileName,operatingSystem,managementType,profileType' -tenantid $Tenant | Where-Object { $null -ne $_.approximateLastSignInDateTime } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the StaleEntraDevices state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + $Date = (Get-Date).AddDays( - [int]$Settings.deviceAgeThreshold) $StaleDevices = $AllDevices | Where-Object { $_.approximateLastSignInDateTime -lt $Date } if ($Settings.remediate -eq $true) { - - Write-Host 'Remediation not implemented yet' # TODO: Implement remediation. For others in the future that want to try this: # Good MS guide on what to watch out for https://learn.microsoft.com/en-us/entra/identity/devices/manage-stale-devices#clean-up-stale-devices # https://learn.microsoft.com/en-us/graph/api/device-list?view=graph-rest-beta&tabs=http @@ -76,9 +91,18 @@ function Invoke-CIPPStandardStaleEntraDevices { if ($StaleDevices.Count -gt 0) { $FieldValue = $StaleDevices | Select-Object -Property displayName, id, approximateLastSignInDateTime, accountEnabled, enrollmentProfileName, operatingSystem, managementType, profileType - } else { - $FieldValue = $true } - Set-CIPPStandardsCompareField -FieldName 'standards.StaleEntraDevices' -FieldValue $FieldValue -Tenant $Tenant + + $CurrentValue = @{ + StaleDevicesCount = $StaleDevices.Count + StaleDevices = ($FieldValue ? @($FieldValue) :@()) + DeviceAgeThreshold = [int]$Settings.deviceAgeThreshold + } + $ExpectedValue = @{ + StaleDevicesCount = 0 + StaleDevices = @() + DeviceAgeThreshold = [int]$Settings.deviceAgeThreshold + } + Set-CIPPStandardsCompareField -FieldName 'standards.StaleEntraDevices' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTAP.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTAP.ps1 index 22343488189b..1d5dff424012 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTAP.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTAP.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardTAP { CAT Entra (AAD) Standards TAG + EXECUTIVETEXT + Enables temporary access passwords that IT administrators can generate for employees who are locked out or need emergency access to systems. These time-limited passwords provide a secure way to restore access without compromising long-term security policies. ADDEDCOMPONENT {"type":"autoComplete","multiple":false,"creatable":false,"label":"Select TAP Lifetime","name":"standards.TAP.config","options":[{"label":"Only Once","value":"true"},{"label":"Multiple Logons","value":"false"}]} IMPACT @@ -30,9 +32,14 @@ function Invoke-CIPPStandardTAP { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'TAP' - $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authenticationmethodspolicy/authenticationMethodConfigurations/TemporaryAccessPass' -tenantid $Tenant + try { + $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authenticationmethodspolicy/authenticationMethodConfigurations/TemporaryAccessPass' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the TAP state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } # Get config value using null-coalescing operator $config = $Settings.config.value ?? $Settings.config @@ -65,11 +72,14 @@ function Invoke-CIPPStandardTAP { if ($Settings.report -eq $true) { Add-CIPPBPAField -FieldName 'TemporaryAccessPass' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant - if ($StateIsCorrect) { - $FieldValue = $true - } else { - $FieldValue = $CurrentState | Select-Object state, isUsableOnce + $CurrentValue = @{ + state = $CurrentState.state + isUsableOnce = $CurrentState.isUsableOnce + } + $ExpectedValue = @{ + state = 'enabled' + isUsableOnce = [System.Convert]::ToBoolean($config) } - Set-CIPPStandardsCompareField -FieldName 'standards.TAP' -FieldValue $FieldValue -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.TAP' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsChatProtection.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsChatProtection.ps1 new file mode 100644 index 000000000000..6c21fe2f03c4 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsChatProtection.ps1 @@ -0,0 +1,103 @@ +function Invoke-CIPPStandardTeamsChatProtection { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) TeamsChatProtection + .SYNOPSIS + (Label) Set Teams Chat Protection Settings + .DESCRIPTION + (Helptext) Configures Teams chat protection settings including weaponizable file protection and malicious URL protection. + (DocsDescription) Configures Teams messaging safety features to protect users from weaponizable files and malicious URLs in chats and channels. Weaponizable File Protection automatically blocks messages containing potentially dangerous file types (like .exe, .dll, .bat, etc.). Malicious URL Protection scans URLs in messages and displays warnings when potentially harmful links are detected. These protections work across internal and external collaboration scenarios. + .NOTES + CAT + Teams Standards + TAG + EXECUTIVETEXT + Enables automated security protections in Microsoft Teams to block dangerous files and warn users about malicious links in chat messages. This helps protect employees from file-based attacks and phishing attempts. These safeguards work seamlessly in the background, providing essential protection without disrupting normal business communication. + ADDEDCOMPONENT + {"type":"switch","name":"standards.TeamsChatProtection.FileTypeCheck","label":"Enable Weaponizable File Protection","defaultValue":true} + {"type":"switch","name":"standards.TeamsChatProtection.UrlReputationCheck","label":"Enable Malicious URL Protection","defaultValue":true} + IMPACT + Low Impact + ADDEDDATE + 2025-10-02 + POWERSHELLEQUIVALENT + Set-CsTeamsMessagingConfiguration -FileTypeCheck 'Enabled' -UrlReputationCheck 'Enabled' -ReportIncorrectSecurityDetections 'Enabled' + RECOMMENDEDBY + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'TeamsChatProtection' -TenantFilter $Tenant -RequiredCapabilities @('MCOSTANDARD', 'MCOEV', 'MCOIMP', 'TEAMS1', 'Teams_Room_Standard') + + if ($TestResult -eq $false) { + return $true + } #we're done. + + try { + $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsMessagingConfiguration' | Select-Object -Property Identity, FileTypeCheck, UrlReputationCheck + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the Teams Chat Protection state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } + + # Set defaults to enabled if not specified + $Settings.FileTypeCheck ??= $true + $Settings.UrlReputationCheck ??= $true + + # Convert boolean to Enabled/Disabled string + $FileTypeCheckState = $Settings.FileTypeCheck ? 'Enabled' : 'Disabled' + $UrlReputationCheckState = $Settings.UrlReputationCheck ? 'Enabled' : 'Disabled' + + $StateIsCorrect = ($CurrentState.FileTypeCheck -eq $FileTypeCheckState) -and + ($CurrentState.UrlReputationCheck -eq $UrlReputationCheckState) + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Teams Chat Protection settings already correctly configured.' -sev Info + } else { + $cmdParams = @{ + Identity = 'Global' + FileTypeCheck = $FileTypeCheckState + UrlReputationCheck = $UrlReputationCheckState + } + + try { + $null = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Set-CsTeamsMessagingConfiguration' -CmdParams $cmdParams + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully updated Teams Chat Protection settings to FileTypeCheck: $FileTypeCheckState, UrlReputationCheck: $UrlReputationCheckState" -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to configure Teams Chat Protection settings. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Teams Chat Protection settings are configured correctly.' -sev Info + } else { + Write-StandardsAlert -message 'Teams Chat Protection settings are not configured correctly.' -object $CurrentState -tenant $Tenant -standardName 'TeamsChatProtection' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Teams Chat Protection settings are not configured correctly.' -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'TeamsChatProtection' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + + $CurrentValue = @{ + FileTypeCheck = $CurrentState.FileTypeCheck + UrlReputationCheck = $CurrentState.UrlReputationCheck + } + $ExpectedValue = @{ + FileTypeCheck = $FileTypeCheckState + UrlReputationCheck = $UrlReputationCheckState + } + Set-CIPPStandardsCompareField -FieldName 'standards.TeamsChatProtection' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsEmailIntegration.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsEmailIntegration.ps1 index d54b70a00796..df9b629223f3 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsEmailIntegration.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsEmailIntegration.ps1 @@ -1,4 +1,4 @@ -Function Invoke-CIPPStandardTeamsEmailIntegration { +function Invoke-CIPPStandardTeamsEmailIntegration { <# .FUNCTIONALITY Internal @@ -12,7 +12,8 @@ Function Invoke-CIPPStandardTeamsEmailIntegration { .NOTES CAT Teams Standards - TAG + EXECUTIVETEXT + Controls whether Teams channels can receive emails directly, enabling integration between email and team collaboration. This feature can improve workflow efficiency by allowing external communications to flow into team discussions, though it may need management for security or organizational reasons. ADDEDCOMPONENT {"type":"switch","name":"standards.TeamsEmailIntegration.AllowEmailIntoChannel","label":"Allow channel emails"} IMPACT @@ -23,6 +24,8 @@ Function Invoke-CIPPStandardTeamsEmailIntegration { Set-CsTeamsClientConfiguration -AllowEmailIntoChannel \$false RECOMMENDEDBY "CIS" + TAG + "CIS M365 5.0 (8.1.2)" UPDATECOMMENTBLOCK Run the Tools\Update-StandardsComments.ps1 script to update this comment block .LINK @@ -30,13 +33,24 @@ Function Invoke-CIPPStandardTeamsEmailIntegration { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'TeamsEmailIntegration' + $TestResult = Test-CIPPStandardLicense -StandardName 'TeamsEmailIntegration' -TenantFilter $Tenant -RequiredCapabilities @('MCOSTANDARD', 'MCOEV', 'MCOIMP', 'TEAMS1', 'Teams_Room_Standard') + + if ($TestResult -eq $false) { + return $true + } #we're done. - $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsClientConfiguration' -CmdParams @{Identity = 'Global' } | Select-Object AllowEmailIntoChannel + try { + $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsClientConfiguration' -CmdParams @{Identity = 'Global' } | + Select-Object AllowEmailIntoChannel + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the TeamsEmailIntegration state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } - if ($null -eq $Settings.AllowEmailIntoChannel) { $Settings.AllowEmailIntoChannel = $false } + $AllowEmailIntoChannel = $Settings.AllowEmailIntoChannel ?? $false - $StateIsCorrect = ($CurrentState.AllowEmailIntoChannel -eq $Settings.AllowEmailIntoChannel) + $StateIsCorrect = ($CurrentState.AllowEmailIntoChannel -eq $AllowEmailIntoChannel) if ($Settings.remediate -eq $true) { if ($StateIsCorrect -eq $true) { @@ -44,7 +58,7 @@ Function Invoke-CIPPStandardTeamsEmailIntegration { } else { $cmdParams = @{ Identity = 'Global' - AllowEmailIntoChannel = $Settings.AllowEmailIntoChannel + AllowEmailIntoChannel = $AllowEmailIntoChannel } try { @@ -68,12 +82,13 @@ Function Invoke-CIPPStandardTeamsEmailIntegration { if ($Settings.report -eq $true) { - if ($StateIsCorrect) { - $FieldValue = $true - } else { - $FieldValue = $CurrentState + $CurrentValue = @{ + AllowEmailIntoChannel = $CurrentState.AllowEmailIntoChannel + } + $ExpectedValue = @{ + AllowEmailIntoChannel = $AllowEmailIntoChannel } - Set-CIPPStandardsCompareField -FieldName 'standards.TeamsEmailIntegration' -FieldValue $FieldValue -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.TeamsEmailIntegration' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant Add-CIPPBPAField -FieldName 'TeamsEmailIntoChannel' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsEnrollUser.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsEnrollUser.ps1 index ffc9d8ddc652..bc64d8317237 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsEnrollUser.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsEnrollUser.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardTeamsEnrollUser { CAT Teams Standards TAG + EXECUTIVETEXT + Determines whether employees can enroll their voice and face profiles for recognition features in Teams, enabling personalized experiences like voice identification. This setting balances convenience features with privacy considerations and organizational policies regarding biometric data collection. ADDEDCOMPONENT {"type":"autoComplete","required":true,"multiple":false,"creatable":false,"name":"standards.TeamsEnrollUser.EnrollUserOverride","label":"Voice and Face Enrollment","options":[{"label":"Disabled","value":"Disabled"},{"label":"Enabled","value":"Enabled"}]} IMPACT @@ -29,11 +31,23 @@ function Invoke-CIPPStandardTeamsEnrollUser { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'TeamsEnrollUser' -TenantFilter $Tenant -RequiredCapabilities @('MCOSTANDARD', 'MCOEV', 'MCOIMP', 'TEAMS1', 'Teams_Room_Standard') # Get EnrollUserOverride value using null-coalescing operator + + if ($TestResult -eq $false) { + return $true + } #we're done. $enrollUserOverride = $Settings.EnrollUserOverride.value ?? $Settings.EnrollUserOverride - $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsMeetingPolicy' -cmdParams @{Identity = 'Global' } | Select-Object EnrollUserOverride + try { + $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsMeetingPolicy' -cmdParams @{Identity = 'Global' } | + Select-Object EnrollUserOverride + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the TeamsEnrollUser state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $StateIsCorrect = ($CurrentState.EnrollUserOverride -eq $enrollUserOverride) @@ -68,11 +82,12 @@ function Invoke-CIPPStandardTeamsEnrollUser { if ($Settings.report -eq $true) { Add-CIPPBPAField -FieldName 'TeamsEnrollUser' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant - if ($StateIsCorrect) { - $FieldValue = $true - } else { - $FieldValue = $CurrentState + $CurrentValue = @{ + EnrollUserOverride = $CurrentState.EnrollUserOverride + } + $ExpectedValue = @{ + EnrollUserOverride = $enrollUserOverride } - Set-CIPPStandardsCompareField -FieldName 'standards.TeamsEnrollUser' -FieldValue $FieldValue -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.TeamsEnrollUser' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsExternalAccessPolicy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsExternalAccessPolicy.ps1 index 0022db523107..78d77b893356 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsExternalAccessPolicy.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsExternalAccessPolicy.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardTeamsExternalAccessPolicy { CAT Teams Standards TAG + EXECUTIVETEXT + Defines the organization's policy for communicating with external users through Teams, including other organizations, Skype users, and unmanaged accounts. This fundamental setting determines the scope of external collaboration while maintaining security boundaries for business communications. ADDEDCOMPONENT {"type":"switch","name":"standards.TeamsExternalAccessPolicy.EnableFederationAccess","label":"Allow communication from trusted organizations"} {"type":"switch","name":"standards.TeamsExternalAccessPolicy.EnableTeamsConsumerAccess","label":"Allow communication with unmanaged Teams accounts"} @@ -30,9 +32,20 @@ function Invoke-CIPPStandardTeamsExternalAccessPolicy { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'TeamsExternalAccessPolicy' + $TestResult = Test-CIPPStandardLicense -StandardName 'TeamsExternalAccessPolicy' -TenantFilter $Tenant -RequiredCapabilities @('MCOSTANDARD', 'MCOEV', 'MCOIMP', 'TEAMS1', 'Teams_Room_Standard') - $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsExternalAccessPolicy' -CmdParams @{Identity = 'Global' } | Select-Object * + if ($TestResult -eq $false) { + return $true + } #we're done. + + try { + $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsExternalAccessPolicy' -CmdParams @{Identity = 'Global' } | + Select-Object * + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the TeamsExternalAccessPolicy state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $EnableFederationAccess = $Settings.EnableFederationAccess ?? $false $EnableTeamsConsumerAccess = $Settings.EnableTeamsConsumerAccess ?? $false @@ -72,12 +85,14 @@ function Invoke-CIPPStandardTeamsExternalAccessPolicy { if ($Settings.report -eq $true) { Add-CIPPBPAField -FieldName 'TeamsExternalAccessPolicy' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant - if ($StateIsCorrect -eq $true) { - $FieldValue = $true - } else { - $FieldValue = $CurrentState | Select-Object EnableFederationAccess, EnableTeamsConsumerAccess + $CurrentValue = @{ + EnableFederationAccess = $CurrentState.EnableFederationAccess + EnableTeamsConsumerAccess = $CurrentState.EnableTeamsConsumerAccess } - - Set-CIPPStandardsCompareField -FieldName 'standards.TeamsExternalAccessPolicy' -FieldValue $FieldValue -Tenant $Tenant + $ExpectedValue = @{ + EnableFederationAccess = $EnableFederationAccess + EnableTeamsConsumerAccess = $EnableTeamsConsumerAccess + } + Set-CIPPStandardsCompareField -FieldName 'standards.TeamsExternalAccessPolicy' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsExternalChatWithAnyone.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsExternalChatWithAnyone.ps1 new file mode 100644 index 000000000000..2a83ae8a4a76 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsExternalChatWithAnyone.ps1 @@ -0,0 +1,93 @@ +function Invoke-CIPPStandardTeamsExternalChatWithAnyone { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) TeamsExternalChatWithAnyone + .SYNOPSIS + (Label) Set Teams chat with anyone setting + .DESCRIPTION + (Helptext) Controls whether users can start Teams chats with any email address, inviting external recipients as guests via email. + (DocsDescription) Manages the Teams messaging policy setting UseB2BInvitesToAddExternalUsers. When enabled, users can start chats with any email address and recipients receive an invitation to join the chat as guests. Disabling the setting prevents these external email chats from being created, keeping conversations limited to internal users and approved guests. + .NOTES + CAT + Teams Standards + TAG + EXECUTIVETEXT + Allows organizations to decide if employees can launch Microsoft Teams chats with anyone on the internet using just an email address. Disabling the feature keeps conversations inside trusted boundaries and helps prevent accidental data exposure through unexpected external invitations. + ADDEDCOMPONENT + {"type":"radio","name":"standards.TeamsExternalChatWithAnyone.UseB2BInvitesToAddExternalUsers","label":"Allow chatting with anyone via email","options":[{"label":"Enabled","value":"true"},{"label":"Disabled","value":"false"}],"defaultValue":"Disabled"} + IMPACT + Low Impact + ADDEDDATE + 2025-11-03 + POWERSHELLEQUIVALENT + Set-CsTeamsMessagingPolicy -Identity Global -UseB2BInvitesToAddExternalUsers \$false/\$true + RECOMMENDEDBY + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'TeamsExternalChatWithAnyone' -TenantFilter $Tenant -RequiredCapabilities @('MCOSTANDARD', 'MCOEV', 'MCOIMP', 'TEAMS1', 'Teams_Room_Standard') + + if ($TestResult -eq $false) { + return $true + } + + try { + $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsMessagingPolicy' -CmdParams @{ Identity = 'Global' } | Select-Object -Property Identity, UseB2BInvitesToAddExternalUsers + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the Teams external chat state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } + + # Set default to Disabled if not specified. Should not be possible without some serious misconfiguration via the API + $Settings.UseB2BInvitesToAddExternalUsers ??= $false + $DesiredState = [System.Convert]::ToBoolean($Settings.UseB2BInvitesToAddExternalUsers) + $StateIsCorrect = ($CurrentState.UseB2BInvitesToAddExternalUsers -eq $DesiredState) + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Teams external chat with anyone setting already set to: $DesiredState" -sev Info + } else { + $cmdParams = @{ + Identity = 'Global' + UseB2BInvitesToAddExternalUsers = $DesiredState + } + + try { + $null = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Set-CsTeamsMessagingPolicy' -CmdParams $cmdParams + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully updated Teams external chat with anyone setting to UseB2BInvitesToAddExternalUsers: $DesiredState" -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to configure Teams external chat with anyone setting. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Teams external chat setting is configured correctly as: $DesiredState" -sev Info + } else { + Write-StandardsAlert -message 'Teams external chat setting is not configured correctly.' -object $CurrentState -tenant $Tenant -standardName 'TeamsExternalChatWithAnyone' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Teams external chat setting is not configured correctly.' -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'TeamsExternalChatWithAnyone' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + + $CurrentValue = @{ + UseB2BInvitesToAddExternalUsers = $CurrentState.UseB2BInvitesToAddExternalUsers + } + $ExpectedValue = @{ + UseB2BInvitesToAddExternalUsers = $DesiredState + } + Set-CIPPStandardsCompareField -FieldName 'standards.TeamsExternalChatWithAnyone' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsExternalFileSharing.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsExternalFileSharing.ps1 index 3230484f898c..296160fd73fb 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsExternalFileSharing.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsExternalFileSharing.ps1 @@ -13,6 +13,9 @@ function Invoke-CIPPStandardTeamsExternalFileSharing { CAT Teams Standards TAG + "CIS M365 5.0 (8.4.1)" + EXECUTIVETEXT + Controls which external cloud storage services (like Google Drive, Dropbox, Box) employees can access through Teams, ensuring file sharing occurs only through approved and secure platforms. This helps maintain data governance while supporting necessary business integrations. ADDEDCOMPONENT {"type":"switch","name":"standards.TeamsExternalFileSharing.AllowGoogleDrive","label":"Allow Google Drive"} {"type":"switch","name":"standards.TeamsExternalFileSharing.AllowShareFile","label":"Allow ShareFile"} @@ -34,9 +37,20 @@ function Invoke-CIPPStandardTeamsExternalFileSharing { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'TeamsExternalFileSharing' - Write-Host "TeamsExternalFileSharing: $($Settings | ConvertTo-Json)" - $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsClientConfiguration' | Select-Object AllowGoogleDrive, AllowShareFile, AllowBox, AllowDropBox, AllowEgnyte + $TestResult = Test-CIPPStandardLicense -StandardName 'TeamsExternalFileSharing' -TenantFilter $Tenant -RequiredCapabilities @('MCOSTANDARD', 'MCOEV', 'MCOIMP', 'TEAMS1', 'Teams_Room_Standard') + + if ($TestResult -eq $false) { + return $true + } #we're done. + + try { + $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsClientConfiguration' | + Select-Object AllowGoogleDrive, AllowShareFile, AllowBox, AllowDropBox, AllowEgnyte + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the TeamsExternalFileSharing state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $StateIsCorrect = ($CurrentState.AllowGoogleDrive -eq $Settings.AllowGoogleDrive ?? $false ) -and ($CurrentState.AllowShareFile -eq $Settings.AllowShareFile ?? $false ) -and @@ -79,11 +93,20 @@ function Invoke-CIPPStandardTeamsExternalFileSharing { if ($Settings.report -eq $true) { Add-CIPPBPAField -FieldName 'TeamsExternalFileSharing' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant - if ($StateIsCorrect -eq $true) { - $FieldValue = $true - } else { - $FieldValue = $CurrentState + $CurrentValue = @{ + AllowGoogleDrive = $CurrentState.AllowGoogleDrive + AllowShareFile = $CurrentState.AllowShareFile + AllowBox = $CurrentState.AllowBox + AllowDropBox = $CurrentState.AllowDropBox + AllowEgnyte = $CurrentState.AllowEgnyte + } + $ExpectedValue = @{ + AllowGoogleDrive = $Settings.AllowGoogleDrive + AllowShareFile = $Settings.AllowShareFile + AllowBox = $Settings.AllowBox + AllowDropBox = $Settings.AllowDropBox + AllowEgnyte = $Settings.AllowEgnyte } - Set-CIPPStandardsCompareField -FieldName 'standards.TeamsExternalFileSharing' -FieldValue $FieldValue -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.TeamsExternalFileSharing' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsFederationConfiguration.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsFederationConfiguration.ps1 index d52c75cef036..2ac7b7ae4898 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsFederationConfiguration.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsFederationConfiguration.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardTeamsFederationConfiguration { CAT Teams Standards TAG + EXECUTIVETEXT + Configures how the organization federates with external organizations for Teams communication, controlling whether employees can communicate with specific external domains or all external organizations. This setting enables secure inter-organizational collaboration while maintaining control over external communications. ADDEDCOMPONENT {"type":"switch","name":"standards.TeamsFederationConfiguration.AllowTeamsConsumer","label":"Allow users to communicate with other organizations"} {"type":"autoComplete","required":true,"multiple":false,"creatable":false,"name":"standards.TeamsFederationConfiguration.DomainControl","label":"Communication Mode","options":[{"label":"Allow all external domains","value":"AllowAllExternal"},{"label":"Block all external domains","value":"BlockAllExternal"},{"label":"Allow specific external domains","value":"AllowSpecificExternal"},{"label":"Block specific external domains","value":"BlockSpecificExternal"}]} @@ -31,9 +33,21 @@ function Invoke-CIPPStandardTeamsFederationConfiguration { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'TeamsFederationConfiguration' + $TestResult = Test-CIPPStandardLicense -StandardName 'TeamsFederationConfiguration' -TenantFilter $Tenant -RequiredCapabilities @('MCOSTANDARD', 'MCOEV', 'MCOIMP', 'TEAMS1','Teams_Room_Standard') - $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTenantFederationConfiguration' -CmdParams @{Identity = 'Global' } | Select-Object * + if ($TestResult -eq $false) { + return $true + } #we're done. + + try { + $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTenantFederationConfiguration' -CmdParams @{Identity = 'Global' } | + Select-Object * + } + catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the TeamsFederationConfiguration state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $AllowAllKnownDomains = New-CsEdgeAllowAllKnownDomains $DomainControl = $Settings.DomainControl.value ?? $Settings.DomainControl @@ -128,11 +142,19 @@ function Invoke-CIPPStandardTeamsFederationConfiguration { if ($Settings.report -eq $true) { Add-CIPPBPAField -FieldName 'FederationConfiguration' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant - if ($StateIsCorrect -eq $true) { - $FieldValue = $true - } else { - $FieldValue = $CurrentState | Select-Object AllowTeamsConsumer, AllowFederatedUsers, AllowedDomains, BlockedDomains + + $CurrentValue = @{ + AllowTeamsConsumer = $CurrentState.AllowTeamsConsumer + AllowFederatedUsers = $CurrentState.AllowFederatedUsers + AllowedDomains = if ($CurrentAllowedDomains.GetType().Name -eq 'Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AllowAllKnownDomains') { $CurrentAllowedDomains.ToString() } else { $CurrentAllowedDomains } + BlockedDomains = $CurrentState.BlockedDomains + } + $ExpectedValue = @{ + AllowTeamsConsumer = $Settings.AllowTeamsConsumer + AllowFederatedUsers = $AllowFederatedUsers + AllowedDomains = $AllowedDomains + BlockedDomains = $BlockedDomains } - Set-CIPPStandardsCompareField -FieldName 'standards.TeamsFederationConfiguration' -FieldValue $FieldValue -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.TeamsFederationConfiguration' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsGlobalMeetingPolicy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsGlobalMeetingPolicy.ps1 index 7c949243b8d8..7c30eb607332 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsGlobalMeetingPolicy.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsGlobalMeetingPolicy.ps1 @@ -13,9 +13,18 @@ function Invoke-CIPPStandardTeamsGlobalMeetingPolicy { CAT Teams Standards TAG + "CIS M365 5.0 (8.5.1)" + "CIS M365 5.0 (8.5.2)" + "CIS M365 5.0 (8.5.3)" + "CIS M365 5.0 (8.5.4)" + "CIS M365 5.0 (8.5.5)" + "CIS M365 5.0 (8.5.6)" + EXECUTIVETEXT + Establishes security-focused default settings for Teams meetings, controlling who can join meetings, present content, and participate in chats. These policies balance collaboration needs with security requirements, ensuring meetings remain productive while protecting against unauthorized access and disruption. ADDEDCOMPONENT - {"type":"autoComplete","required":true,"multiple":false,"creatable":false,"name":"standards.TeamsGlobalMeetingPolicy.DesignatedPresenterRoleMode","label":"Default value of the `Who can present?`","options":[{"label":"EveryoneUserOverride","value":"EveryoneUserOverride"},{"label":"EveryoneInCompanyUserOverride","value":"EveryoneInCompanyUserOverride"},{"label":"EveryoneInSameAndFederatedCompanyUserOverride","value":"EveryoneInSameAndFederatedCompanyUserOverride"},{"label":"OrganizerOnlyUserOverride","value":"OrganizerOnlyUserOverride"}]} + {"type":"autoComplete","required":true,"multiple":false,"creatable":false,"name":"standards.TeamsGlobalMeetingPolicy.DesignatedPresenterRoleMode","label":"Default value of the `Who can present?`","options":[{"label":"Everyone","value":"EveryoneUserOverride"},{"label":"People in my organization","value":"EveryoneInCompanyUserOverride"},{"label":"People in my organization and trusted organizations","value":"EveryoneInSameAndFederatedCompanyUserOverride"},{"label":"Only organizer","value":"OrganizerOnlyUserOverride"}]} {"type":"switch","name":"standards.TeamsGlobalMeetingPolicy.AllowAnonymousUsersToJoinMeeting","label":"Allow anonymous users to join meeting"} + {"type":"autoComplete","required":false,"multiple":false,"creatable":false,"name":"standards.TeamsGlobalMeetingPolicy.AutoAdmittedUsers","label":"Who can bypass the lobby?","helperText":"If left blank, the current value will not be changed.","options":[{"label":"Only organizers and co-organizers","value":"OrganizerOnly"},{"label":"People in organization excluding guests","value":"EveryoneInCompanyExcludingGuests"},{"label":"People who were invited","value":"InvitedUsers"}]} {"type":"autoComplete","required":true,"multiple":false,"creatable":false,"name":"standards.TeamsGlobalMeetingPolicy.MeetingChatEnabledType","label":"Meeting chat policy","options":[{"label":"On for everyone","value":"Enabled"},{"label":"On for everyone but anonymous users","value":"EnabledExceptAnonymous"},{"label":"Off for everyone","value":"Disabled"}]} {"type":"switch","name":"standards.TeamsGlobalMeetingPolicy.AllowExternalParticipantGiveRequestControl","label":"External participants can give or request control"} IMPACT @@ -23,7 +32,7 @@ function Invoke-CIPPStandardTeamsGlobalMeetingPolicy { ADDEDDATE 2024-11-12 POWERSHELLEQUIVALENT - Set-CsTeamsMeetingPolicy -AllowAnonymousUsersToJoinMeeting \$false -AllowAnonymousUsersToStartMeeting \$false -AutoAdmittedUsers EveryoneInCompanyExcludingGuests -AllowPSTNUsersToBypassLobby \$false -MeetingChatEnabledType EnabledExceptAnonymous -DesignatedPresenterRoleMode \$DesignatedPresenterRoleMode -AllowExternalParticipantGiveRequestControl \$false + Set-CsTeamsMeetingPolicy -AllowAnonymousUsersToJoinMeeting \$false -AllowAnonymousUsersToStartMeeting \$false -AutoAdmittedUsers \$AutoAdmittedUsers -AllowPSTNUsersToBypassLobby \$false -MeetingChatEnabledType EnabledExceptAnonymous -DesignatedPresenterRoleMode \$DesignatedPresenterRoleMode -AllowExternalParticipantGiveRequestControl \$false RECOMMENDEDBY "CIS" UPDATECOMMENTBLOCK @@ -31,17 +40,29 @@ function Invoke-CIPPStandardTeamsGlobalMeetingPolicy { .LINK https://docs.cipp.app/user-documentation/tenant/standards/list-standards #> - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'TeamsGlobalMeetingPolicy' - param($Tenant, $Settings) - $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsMeetingPolicy' -CmdParams @{Identity = 'Global' } | Select-Object AllowAnonymousUsersToJoinMeeting, AllowAnonymousUsersToStartMeeting, AutoAdmittedUsers, AllowPSTNUsersToBypassLobby, MeetingChatEnabledType, DesignatedPresenterRoleMode, AllowExternalParticipantGiveRequestControl + $TestResult = Test-CIPPStandardLicense -StandardName 'TeamsGlobalMeetingPolicy' -TenantFilter $Tenant -RequiredCapabilities @('MCOSTANDARD', 'MCOEV', 'MCOIMP', 'TEAMS1', 'Teams_Room_Standard') + + if ($TestResult -eq $false) { + return $true + } #we're done. + + try { + $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsMeetingPolicy' -CmdParams @{Identity = 'Global' } | + Select-Object AllowAnonymousUsersToJoinMeeting, AllowAnonymousUsersToStartMeeting, AutoAdmittedUsers, AllowPSTNUsersToBypassLobby, MeetingChatEnabledType, DesignatedPresenterRoleMode, AllowExternalParticipantGiveRequestControl + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the TeamsGlobalMeetingPolicy state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $MeetingChatEnabledType = $Settings.MeetingChatEnabledType.value ?? $Settings.MeetingChatEnabledType $DesignatedPresenterRoleMode = $Settings.DesignatedPresenterRoleMode.value ?? $Settings.DesignatedPresenterRoleMode + $AutoAdmittedUsers = $Settings.AutoAdmittedUsers.value ?? $Settings.AutoAdmittedUsers ?? $CurrentState.AutoAdmittedUsers # Default to current state if not set, for backward compatibility pre v8.6.0 $StateIsCorrect = ($CurrentState.AllowAnonymousUsersToJoinMeeting -eq $Settings.AllowAnonymousUsersToJoinMeeting) -and ($CurrentState.AllowAnonymousUsersToStartMeeting -eq $false) -and - ($CurrentState.AutoAdmittedUsers -eq 'EveryoneInCompanyExcludingGuests') -and + ($CurrentState.AutoAdmittedUsers -eq $AutoAdmittedUsers) -and ($CurrentState.AllowPSTNUsersToBypassLobby -eq $false) -and ($CurrentState.MeetingChatEnabledType -eq $MeetingChatEnabledType) -and ($CurrentState.DesignatedPresenterRoleMode -eq $DesignatedPresenterRoleMode) -and @@ -56,7 +77,7 @@ function Invoke-CIPPStandardTeamsGlobalMeetingPolicy { Identity = 'Global' AllowAnonymousUsersToJoinMeeting = $Settings.AllowAnonymousUsersToJoinMeeting AllowAnonymousUsersToStartMeeting = $false - AutoAdmittedUsers = 'EveryoneInCompanyExcludingGuests' + AutoAdmittedUsers = $AutoAdmittedUsers AllowPSTNUsersToBypassLobby = $false MeetingChatEnabledType = $MeetingChatEnabledType DesignatedPresenterRoleMode = $DesignatedPresenterRoleMode @@ -84,12 +105,25 @@ function Invoke-CIPPStandardTeamsGlobalMeetingPolicy { if ($Settings.report -eq $true) { - if ($StateIsCorrect) { - $FieldValue = $true - } else { - $FieldValue = $CurrentState + $CurrentValue = @{ + AllowAnonymousUsersToJoinMeeting = $CurrentState.AllowAnonymousUsersToJoinMeeting + AllowAnonymousUsersToStartMeeting = $CurrentState.AllowAnonymousUsersToStartMeeting + AutoAdmittedUsers = $CurrentState.AutoAdmittedUsers + AllowPSTNUsersToBypassLobby = $CurrentState.AllowPSTNUsersToBypassLobby + MeetingChatEnabledType = $CurrentState.MeetingChatEnabledType + DesignatedPresenterRoleMode = $CurrentState.DesignatedPresenterRoleMode + AllowExternalParticipantGiveRequestControl = $CurrentState.AllowExternalParticipantGiveRequestControl + } + $ExpectedValue = @{ + AllowAnonymousUsersToJoinMeeting = $Settings.AllowAnonymousUsersToJoinMeeting + AllowAnonymousUsersToStartMeeting = $false + AutoAdmittedUsers = $AutoAdmittedUsers + AllowPSTNUsersToBypassLobby = $false + MeetingChatEnabledType = $MeetingChatEnabledType + DesignatedPresenterRoleMode = $DesignatedPresenterRoleMode + AllowExternalParticipantGiveRequestControl = $Settings.AllowExternalParticipantGiveRequestControl } - Set-CIPPStandardsCompareField -FieldName 'standards.TeamsGlobalMeetingPolicy' -FieldValue $FieldValue -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.TeamsGlobalMeetingPolicy' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant Add-CIPPBPAField -FieldName 'TeamsGlobalMeetingPolicy' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsGuestAccess.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsGuestAccess.ps1 index 715ef12c3386..14ea444c35b1 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsGuestAccess.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsGuestAccess.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardTeamsGuestAccess { CAT Teams Standards TAG + EXECUTIVETEXT + Determines whether external partners, vendors, and collaborators can be invited to participate in Teams conversations and meetings. This fundamental setting enables external collaboration while requiring careful management to balance openness with security and information protection. ADDEDCOMPONENT {"type":"switch","name":"standards.TeamsGuestAccess.AllowGuestUser","label":"Allow guest users"} IMPACT @@ -29,12 +31,24 @@ function Invoke-CIPPStandardTeamsGuestAccess { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'TeamsGuestAccess' -TenantFilter $Tenant -RequiredCapabilities @('MCOSTANDARD', 'MCOEV', 'MCOIMP', 'TEAMS1', 'Teams_Room_Standard') - $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsClientConfiguration' -CmdParams @{Identity = 'Global' } | Select-Object AllowGuestUser + if ($TestResult -eq $false) { + return $true + } #we're done. - if ($null -eq $Settings.AllowGuestUser) { $Settings.AllowGuestUser = $false } + try { + $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsClientConfiguration' -CmdParams @{Identity = 'Global' } | + Select-Object AllowGuestUser + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the TeamsGuestAccess state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $AllowGuestUser = $Settings.AllowGuestUser ?? $false - $StateIsCorrect = ($CurrentState.AllowGuestUser -eq $Settings.AllowGuestUser) + $StateIsCorrect = ($CurrentState.AllowGuestUser -eq $AllowGuestUser) if ($Settings.remediate -eq $true) { if ($StateIsCorrect -eq $true) { @@ -42,7 +56,7 @@ function Invoke-CIPPStandardTeamsGuestAccess { } else { $cmdParams = @{ Identity = 'Global' - AllowGuestUser = $Settings.AllowGuestUser + AllowGuestUser = $AllowGuestUser } try { @@ -65,12 +79,13 @@ function Invoke-CIPPStandardTeamsGuestAccess { } if ($Settings.report -eq $true) { - if ($StateIsCorrect) { - $FieldValue = $true - } else { - $FieldValue = $CurrentState + $CurrentValue = @{ + AllowGuestUser = $CurrentState.AllowGuestUser + } + $ExpectedValue = @{ + AllowGuestUser = $AllowGuestUser } - Set-CIPPStandardsCompareField -FieldName 'standards.TeamsGuestAccess' -FieldValue $FieldValue -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.TeamsGuestAccess' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant Add-CIPPBPAField -FieldName 'TeamsGuestAccess' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMeetingRecordingExpiration.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMeetingRecordingExpiration.ps1 index bc8cbd0efb89..9738625eb568 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMeetingRecordingExpiration.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMeetingRecordingExpiration.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardTeamsMeetingRecordingExpiration { CAT Teams Standards TAG + EXECUTIVETEXT + Automatically removes old Teams meeting recordings after a specified period to manage storage costs and comply with data retention policies. This helps organizations balance the need to preserve important meeting content with storage efficiency and regulatory compliance requirements. ADDEDCOMPONENT {"type":"number","name":"standards.TeamsMeetingRecordingExpiration.ExpirationDays","label":"Recording Expiration Days (e.g., 365)","required":true} IMPACT @@ -27,22 +29,32 @@ function Invoke-CIPPStandardTeamsMeetingRecordingExpiration { .LINK https://docs.cipp.app/user-documentation/tenant/standards/list-standards #> - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'TeamsMeetingRecordingExpiration' param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'TeamsMeetingRecordingExpiration' -TenantFilter $Tenant -RequiredCapabilities @('MCOSTANDARD', 'MCOEV', 'MCOIMP', 'TEAMS1', 'Teams_Room_Standard') # Input validation + + if ($TestResult -eq $false) { + return $true + } #we're done. $ExpirationDays = try { [int64]$Settings.ExpirationDays } catch { Write-Warning "Invalid ExpirationDays value provided: $($Settings.ExpirationDays)"; return } if (($ExpirationDays -ne -1) -and ($ExpirationDays -lt 1 -or $ExpirationDays -gt 99999)) { Write-LogMessage -API 'Standards' -tenant $Tenant -message "Invalid ExpirationDays value: $ExpirationDays. Must be -1 (Never Expire) or between 1 and 99999." -sev Error return } - $CurrentExpirationDays = (New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsMeetingPolicy' -CmdParams @{Identity = 'Global' }).NewMeetingRecordingExpirationDays + try { + $CurrentExpirationDays = (New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsMeetingPolicy' -CmdParams @{Identity = 'Global' }).NewMeetingRecordingExpirationDays + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the TeamsMeetingRecordingExpiration state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + $StateIsCorrect = if ($CurrentExpirationDays -eq $ExpirationDays) { $true } else { $false } if ($Settings.remediate -eq $true) { - Write-Host 'Time to remediate' if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -tenant $Tenant -message "Teams Meeting Recording Expiration Policy already set to $ExpirationDays days." -sev Info } else { @@ -73,9 +85,13 @@ function Invoke-CIPPStandardTeamsMeetingRecordingExpiration { if ($Settings.report -eq $true) { Add-CIPPBPAField -FieldName 'TeamsMeetingRecordingExpiration' -FieldValue $CurrentExpirationDays -StoreAs string -Tenant $Tenant - $CurrentExpirationDays = [PSCustomObject]@{ - ExpirationDays = [string]$CurrentExpirationDays + $CurrentExpirationDays = if ($StateIsCorrect) { $true } else { $CurrentExpirationDays } + $CurrentValue = @{ + MeetingRecordingExpirationDays = $CurrentExpirationDays + } + $ExpectedValue = @{ + MeetingRecordingExpirationDays = $ExpirationDays } - Set-CIPPStandardsCompareField -FieldName 'standards.TeamsMeetingRecordingExpiration' -FieldValue $CurrentExpirationDays -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.TeamsMeetingRecordingExpiration' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMeetingVerification.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMeetingVerification.ps1 index c7938c496d19..c9ac9f3a5db9 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMeetingVerification.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMeetingVerification.ps1 @@ -5,35 +5,48 @@ function Invoke-CIPPStandardTeamsMeetingVerification { .COMPONENT (APIName) TeamsMeetingVerification .SYNOPSIS - (Label) Meeting Verification (ReCaptcha) for Teams + (Label) Teams Meeting Verification (CAPTCHA) .DESCRIPTION - (Helptext) Configures the CAPTCHA verification for external users joining Teams meetings. This helps prevent unauthorized AI notetakers and bots from joining meetings. - (DocsDescription) Configures the CAPTCHA verification for external users joining Teams meetings. This helps prevent unauthorized AI notetakers and bots from joining meetings. When enabled, external users from untrusted organizations or anonymous users will need to complete a CAPTCHA verification before joining meetings. + (Helptext) Configures CAPTCHA verification for external users joining Teams meetings. This helps prevent unauthorized AI notetakers and bots from joining meetings. + (DocsDescription) Configures CAPTCHA verification for external users joining Teams meetings. This security feature requires external participants to complete a CAPTCHA challenge before joining, which helps prevent unauthorized AI notetakers, bots, and other automated systems from accessing meetings. .NOTES CAT Teams Standards TAG + EXECUTIVETEXT + Requires external meeting participants to complete verification challenges before joining Teams meetings, preventing automated bots and unauthorized AI systems from accessing confidential discussions. This security measure protects against meeting infiltration while maintaining legitimate external collaboration. ADDEDCOMPONENT - {"type":"autoComplete","required":true,"multiple":false,"creatable":false,"name":"standards.TeamsMeetingVerification.CaptchaVerificationForMeetingJoin","label":"CAPTCHA verification for meeting join","options":[{"label":"Not Required","value":"NotRequired"},{"label":"Anonymous Users and Untrusted Organizations","value":"AnonymousUsersAndUntrustedOrganizations"}]} + {"type":"autoComplete","multiple":false,"creatable":false,"label":"CAPTCHA Verification Setting","name":"standards.TeamsMeetingVerification.CaptchaVerificationForMeetingJoin","options":[{"label":"Not Required","value":"NotRequired"},{"label":"Anonymous Users and Untrusted Organizations","value":"AnonymousUsersAndUntrustedOrganizations"}]} IMPACT Low Impact ADDEDDATE 2025-06-14 POWERSHELLEQUIVALENT - Set-CsTeamsMeetingPolicy -Identity Global -CaptchaVerificationForMeetingJoin AnonymousUsersAndUntrustedOrganizations + Set-CsTeamsMeetingPolicy -CaptchaVerificationForMeetingJoin RECOMMENDEDBY - "Microsoft" + "CIPP" UPDATECOMMENTBLOCK Run the Tools\Update-StandardsComments.ps1 script to update this comment block .LINK https://docs.cipp.app/user-documentation/tenant/standards/list-standards - .LINK - https://learn.microsoft.com/en-us/microsoftteams/join-verification-check #> - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'TeamsMeetingVerification' param($Tenant, $Settings) - $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsMeetingPolicy' -CmdParams @{Identity = 'Global' } | Select-Object CaptchaVerificationForMeetingJoin + $TestResult = Test-CIPPStandardLicense -StandardName 'TeamsMeetingVerification' -TenantFilter $Tenant -RequiredCapabilities @('MCOSTANDARD', 'MCOEV', 'MCOIMP', 'TEAMS1', 'Teams_Room_Standard') + + if ($TestResult -eq $false) { + return $true + } #we're done. + + try { + $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsMeetingPolicy' -CmdParams @{Identity = 'Global' } | + Select-Object CaptchaVerificationForMeetingJoin + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the TeamsMeetingVerification state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + $CaptchaVerificationForMeetingJoin = $Settings.CaptchaVerificationForMeetingJoin.value ?? $Settings.CaptchaVerificationForMeetingJoin $StateIsCorrect = ($CurrentState.CaptchaVerificationForMeetingJoin -eq $CaptchaVerificationForMeetingJoin) @@ -42,7 +55,7 @@ function Invoke-CIPPStandardTeamsMeetingVerification { Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Teams Meeting Verification Policy already set.' -sev Info } else { $cmdParams = @{ - Identity = 'Global' + Identity = 'Global' CaptchaVerificationForMeetingJoin = $CaptchaVerificationForMeetingJoin } @@ -66,12 +79,13 @@ function Invoke-CIPPStandardTeamsMeetingVerification { } if ($Settings.report -eq $true) { - if ($StateIsCorrect) { - $FieldValue = $true - } else { - $FieldValue = $CurrentState + $CurrentState = @{ + CaptchaVerificationForMeetingJoin = $CurrentState.CaptchaVerificationForMeetingJoin + } + $ExpectedState = @{ + CaptchaVerificationForMeetingJoin = $CaptchaVerificationForMeetingJoin } - Set-CIPPStandardsCompareField -FieldName 'standards.TeamsMeetingVerification' -FieldValue $FieldValue -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.TeamsMeetingVerification' -CurrentValue $CurrentState -ExpectedValue $ExpectedState -Tenant $Tenant Add-CIPPBPAField -FieldName 'TeamsMeetingVerification' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMeetingsByDefault.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMeetingsByDefault.ps1 index 3353d39162a1..187764549419 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMeetingsByDefault.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMeetingsByDefault.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardTeamsMeetingsByDefault { CAT Exchange Standards TAG + EXECUTIVETEXT + Automatically adds Microsoft Teams meeting links to calendar invitations by default, streamlining the process of creating virtual meetings. This improves collaboration efficiency and ensures consistent meeting experiences across the organization, though users can override this setting when needed. ADDEDCOMPONENT {"type":"autoComplete","multiple":false,"creatable":false,"label":"Select value","name":"standards.TeamsMeetingsByDefault.state","options":[{"label":"Enabled","value":"true"},{"label":"Disabled","value":"false"}]} IMPACT @@ -29,23 +31,33 @@ function Invoke-CIPPStandardTeamsMeetingsByDefault { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'TeamsMeetingsByDefault' + $TestResult = Test-CIPPStandardLicense -StandardName 'TeamsMeetingsByDefault' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. # Get state value using null-coalescing operator $state = $Settings.state.value ?? $Settings.state - $CurrentState = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig').OnlineMeetingsByDefaultEnabled + try { + $CurrentState = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig').OnlineMeetingsByDefaultEnabled + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the TeamsMeetingsByDefault state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + $WantedState = if ($state -eq 'true') { $true } else { $false } $StateIsCorrect = if ($CurrentState -eq $WantedState) { $true } else { $false } # Input validation if (([string]::IsNullOrWhiteSpace($state) -or $state -eq 'Select a value') -and ($Settings.remediate -eq $true -or $Settings.alert -eq $true)) { Write-LogMessage -API 'Standards' -tenant $Tenant -message 'TeamsMeetingsByDefault: Invalid state parameter set' -sev Error - Return + return } if ($Settings.remediate -eq $true) { - Write-Host 'Time to remediate' if ($StateIsCorrect -eq $false) { try { $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-OrganizationConfig' -cmdParams @{ OnlineMeetingsByDefaultEnabled = $WantedState } -useSystemMailbox $true @@ -64,7 +76,7 @@ function Invoke-CIPPStandardTeamsMeetingsByDefault { if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -tenant $Tenant -message "The tenant TeamsMeetingsByDefault is set correctly to $state" -sev Info } else { - Write-StandardsAlert -message "The tenant TeamsMeetingsByDefault is not set correctly to $state" -object @{CurrentState = $CurrentState; WantedState = $WantedState} -tenant $Tenant -standardName 'TeamsMeetingsByDefault' -standardId $Settings.standardId + Write-StandardsAlert -message "The tenant TeamsMeetingsByDefault is not set correctly to $state" -object @{CurrentState = $CurrentState; WantedState = $WantedState } -tenant $Tenant -standardName 'TeamsMeetingsByDefault' -standardId $Settings.standardId Write-LogMessage -API 'Standards' -tenant $Tenant -message "The tenant TeamsMeetingsByDefault is not set correctly to $state" -sev Info } } @@ -73,11 +85,13 @@ function Invoke-CIPPStandardTeamsMeetingsByDefault { # Default is not set, not set means it's enabled if ($null -eq $CurrentState ) { $CurrentState = $true } Add-CIPPBPAField -FieldName 'TeamsMeetingsByDefault' -FieldValue $CurrentState -StoreAs bool -Tenant $Tenant - if ($StateIsCorrect) { - $FieldValue = $true - } else { - $FieldValue = $CurrentState + + $CurrentValue = @{ + OnlineMeetingsByDefaultEnabled = $CurrentState + } + $ExpectedValue = @{ + OnlineMeetingsByDefaultEnabled = $WantedState } - Set-CIPPStandardsCompareField -FieldName 'standards.TeamsMeetingsByDefault' -FieldValue $FieldValue -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.TeamsMeetingsByDefault' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMessagingPolicy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMessagingPolicy.ps1 index a1bf1aa2ad49..27aa5e7a4f8f 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMessagingPolicy.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMessagingPolicy.ps1 @@ -1,4 +1,4 @@ -Function Invoke-CIPPStandardTeamsMessagingPolicy { +function Invoke-CIPPStandardTeamsMessagingPolicy { <# .FUNCTIONALITY Internal @@ -13,6 +13,8 @@ Function Invoke-CIPPStandardTeamsMessagingPolicy { CAT Teams Standards TAG + EXECUTIVETEXT + Defines what messaging capabilities employees have in Teams, including the ability to edit or delete messages, create custom emojis, and report inappropriate content. These policies help maintain professional communication standards while enabling necessary collaboration features. ADDEDCOMPONENT {"type":"switch","name":"standards.TeamsMessagingPolicy.AllowOwnerDeleteMessage","label":"Allow Owner to Delete Messages","defaultValue":false} {"type":"switch","name":"standards.TeamsMessagingPolicy.AllowUserDeleteMessage","label":"Allow User to Delete Messages","defaultValue":true} @@ -35,10 +37,21 @@ Function Invoke-CIPPStandardTeamsMessagingPolicy { .LINK https://docs.cipp.app/user-documentation/tenant/standards/list-standards #> - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'TeamsMessagingPolicy' param($Tenant, $Settings) - $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsMessagingPolicy' -CmdParams @{Identity = 'Global' } + $TestResult = Test-CIPPStandardLicense -StandardName 'TeamsMessagingPolicy' -TenantFilter $Tenant -RequiredCapabilities @('MCOSTANDARD', 'MCOEV', 'MCOIMP', 'TEAMS1', 'Teams_Room_Standard') + + if ($TestResult -eq $false) { + return $true + } #we're done. + + try { + $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsMessagingPolicy' -CmdParams @{Identity = 'Global' } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the TeamsMessagingPolicy state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } if ($null -eq $Settings.AllowOwnerDeleteMessage) { $Settings.AllowOwnerDeleteMessage = $CurrentState.AllowOwnerDeleteMessage } if ($null -eq $Settings.AllowUserDeleteMessage) { $Settings.AllowUserDeleteMessage = $CurrentState.AllowUserDeleteMessage } @@ -52,14 +65,14 @@ Function Invoke-CIPPStandardTeamsMessagingPolicy { $ReadReceiptsEnabledType = $Settings.ReadReceiptsEnabledType.value ?? $Settings.ReadReceiptsEnabledType $StateIsCorrect = ($CurrentState.AllowOwnerDeleteMessage -eq $Settings.AllowOwnerDeleteMessage) -and - ($CurrentState.AllowUserDeleteMessage -eq $Settings.AllowUserDeleteMessage) -and - ($CurrentState.AllowUserEditMessage -eq $Settings.AllowUserEditMessage) -and - ($CurrentState.AllowUserDeleteChat -eq $Settings.AllowUserDeleteChat) -and - ($CurrentState.ReadReceiptsEnabledType -eq $ReadReceiptsEnabledType) -and - ($CurrentState.CreateCustomEmojis -eq $Settings.CreateCustomEmojis) -and - ($CurrentState.DeleteCustomEmojis -eq $Settings.DeleteCustomEmojis) -and - ($CurrentState.AllowSecurityEndUserReporting -eq $Settings.AllowSecurityEndUserReporting) -and - ($CurrentState.AllowCommunicationComplianceEndUserReporting -eq $Settings.AllowCommunicationComplianceEndUserReporting) + ($CurrentState.AllowUserDeleteMessage -eq $Settings.AllowUserDeleteMessage) -and + ($CurrentState.AllowUserEditMessage -eq $Settings.AllowUserEditMessage) -and + ($CurrentState.AllowUserDeleteChat -eq $Settings.AllowUserDeleteChat) -and + ($CurrentState.ReadReceiptsEnabledType -eq $ReadReceiptsEnabledType) -and + ($CurrentState.CreateCustomEmojis -eq $Settings.CreateCustomEmojis) -and + ($CurrentState.DeleteCustomEmojis -eq $Settings.DeleteCustomEmojis) -and + ($CurrentState.AllowSecurityEndUserReporting -eq $Settings.AllowSecurityEndUserReporting) -and + ($CurrentState.AllowCommunicationComplianceEndUserReporting -eq $Settings.AllowCommunicationComplianceEndUserReporting) if ($Settings.remediate -eq $true) { if ($StateIsCorrect -eq $true) { @@ -92,7 +105,7 @@ Function Invoke-CIPPStandardTeamsMessagingPolicy { if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Global Teams messaging policy is configured correctly.' -sev Info } else { - Write-StandardsAlert -message "Global Teams messaging policy is not configured correctly." -object $CurrentState -tenant $Tenant -standardName 'TeamsMessagingPolicy' -standardId $Settings.standardId + Write-StandardsAlert -message 'Global Teams messaging policy is not configured correctly.' -object $CurrentState -tenant $Tenant -standardName 'TeamsMessagingPolicy' -standardId $Settings.standardId Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Global Teams messaging policy is not configured correctly.' -sev Info } } @@ -100,11 +113,28 @@ Function Invoke-CIPPStandardTeamsMessagingPolicy { if ($Settings.report -eq $true) { Add-CIPPBPAField -FieldName 'TeamsMessagingPolicy' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant - if ($StateIsCorrect) { - $FieldValue = $true - } else { - $FieldValue = $CurrentState + $CurrentValue = @{ + AllowOwnerDeleteMessage = $CurrentState.AllowOwnerDeleteMessage + AllowUserDeleteMessage = $CurrentState.AllowUserDeleteMessage + AllowUserEditMessage = $CurrentState.AllowUserEditMessage + AllowUserDeleteChat = $CurrentState.AllowUserDeleteChat + ReadReceiptsEnabledType = $CurrentState.ReadReceiptsEnabledType + CreateCustomEmojis = $CurrentState.CreateCustomEmojis + DeleteCustomEmojis = $CurrentState.DeleteCustomEmojis + AllowSecurityEndUserReporting = $CurrentState.AllowSecurityEndUserReporting + AllowCommunicationComplianceEndUserReporting = $CurrentState.AllowCommunicationComplianceEndUserReporting + } + $ExpectedValue = @{ + AllowOwnerDeleteMessage = $Settings.AllowOwnerDeleteMessage + AllowUserDeleteMessage = $Settings.AllowUserDeleteMessage + AllowUserEditMessage = $Settings.AllowUserEditMessage + AllowUserDeleteChat = $Settings.AllowUserDeleteChat + ReadReceiptsEnabledType = $ReadReceiptsEnabledType + CreateCustomEmojis = $Settings.CreateCustomEmojis + DeleteCustomEmojis = $Settings.DeleteCustomEmojis + AllowSecurityEndUserReporting = $Settings.AllowSecurityEndUserReporting + AllowCommunicationComplianceEndUserReporting = $Settings.AllowCommunicationComplianceEndUserReporting } - Set-CIPPStandardsCompareField -FieldName 'standards.TeamsMessagingPolicy' -FieldValue $FieldValue -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.TeamsMessagingPolicy' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTenantDefaultTimezone.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTenantDefaultTimezone.ps1 index 1365cdc31f75..7463f6e7e773 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTenantDefaultTimezone.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTenantDefaultTimezone.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardTenantDefaultTimezone { CAT SharePoint Standards TAG + EXECUTIVETEXT + Standardizes the timezone setting across all SharePoint sites and new user accounts, ensuring consistent scheduling and time-based operations throughout the organization. This improves collaboration efficiency and reduces confusion in global or multi-timezone organizations. ADDEDCOMPONENT {"type":"TimezoneSelect","name":"standards.TenantDefaultTimezone.Timezone","label":"Timezone"} IMPACT @@ -29,9 +31,20 @@ function Invoke-CIPPStandardTenantDefaultTimezone { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'TenantDefaultTimezone' + $TestResult = Test-CIPPStandardLicense -StandardName 'TenantDefaultTimezone' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + + if ($TestResult -eq $false) { + return $true + } #we're done. + + try { + $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' -tenantid $Tenant -AsApp $true + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the TenantDefaultTimezone state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } - $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' -tenantid $Tenant -AsApp $true $ExpectedTimezone = $Settings.Timezone.value $StateIsCorrect = $CurrentState.tenantDefaultTimezone -eq $ExpectedTimezone @@ -66,11 +79,12 @@ function Invoke-CIPPStandardTenantDefaultTimezone { if ($Settings.report -eq $true) { Add-CIPPBPAField -FieldName 'TenantDefaultTimezone' -FieldValue $CurrentState.tenantDefaultTimezone -StoreAs string -Tenant $Tenant - if ($StateIsCorrect) { - $FieldValue = $true - } else { - $FieldValue = $CurrentState | Select-Object tenantDefaultTimezone + $CurrentValue = @{ + tenantDefaultTimezone = $CurrentState.tenantDefaultTimezone + } + $ExpectedValue = @{ + tenantDefaultTimezone = $ExpectedTimezone } - Set-CIPPStandardsCompareField -FieldName 'standards.TenantDefaultTimezone' -FieldValue $FieldValue -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.TenantDefaultTimezone' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTransportRuleTemplate.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTransportRuleTemplate.ps1 index 79e154dbe8e0..1387dc113b7d 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTransportRuleTemplate.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTransportRuleTemplate.ps1 @@ -18,6 +18,8 @@ function Invoke-CIPPStandardTransportRuleTemplate { Medium Impact ADDEDDATE 2023-12-30 + EXECUTIVETEXT + Deploys standardized email flow rules that automatically manage how emails are processed, filtered, and routed within the organization. These templates ensure consistent email security policies, compliance requirements, and business rules are applied across all email communications. ADDEDCOMPONENT {"type":"autoComplete","name":"transportRuleTemplate","label":"Select Transport Rule Template","api":{"url":"/api/ListTransportRulesTemplates","labelField":"name","valueField":"GUID","queryKey":"ListTransportRulesTemplates"}} UPDATECOMMENTBLOCK @@ -26,27 +28,31 @@ function Invoke-CIPPStandardTransportRuleTemplate { https://docs.cipp.app/user-documentation/tenant/standards/list-standards #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'TransportRuleTemplate' + $TestResult = Test-CIPPStandardLicense -StandardName 'TransportRuleTemplate' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access - If ($Settings.remediate -eq $true) { - Write-Host "Settings: $($Settings | ConvertTo-Json)" + if ($TestResult -eq $false) { + return $true + } #we're done. + + $existingRules = New-ExoRequest -ErrorAction SilentlyContinue -tenantid $Tenant -cmdlet 'Get-TransportRule' -useSystemMailbox $true + if ($Settings.remediate -eq $true) { $Settings.transportRuleTemplate ? ($Settings | Add-Member -NotePropertyName 'TemplateList' -NotePropertyValue $Settings.transportRuleTemplate) : $null foreach ($Template in $Settings.TemplateList) { - Write-Host "working on $($Template.value)" $Table = Get-CippTable -tablename 'templates' $Filter = "PartitionKey eq 'TransportTemplate' and RowKey eq '$($Template.value)'" $RequestParams = (Get-AzDataTableEntity @Table -Filter $Filter).JSON | ConvertFrom-Json - $Existing = New-ExoRequest -ErrorAction SilentlyContinue -tenantid $Tenant -cmdlet 'Get-TransportRule' -useSystemMailbox $true | Where-Object -Property Identity -EQ $RequestParams.name - + $Existing = $existingRules | Where-Object -Property Identity -EQ $RequestParams.name try { if ($Existing) { - Write-Host 'Found existing' - $RequestParams | Add-Member -NotePropertyValue $RequestParams.name -NotePropertyName Identity - $GraphRequest = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-TransportRule' -cmdParams ($RequestParams | Select-Object -Property * -ExcludeProperty GUID, Comments, HasSenderOverride, ExceptIfHasSenderOverride, ExceptIfMessageContainsDataClassifications, MessageContainsDataClassifications, UseLegacyRegex) -useSystemMailbox $true - Write-LogMessage -API 'Standards' -tenant $tenant -message "Successfully set transport rule for $tenant" -sev 'Info' + if ($Settings.overwrite) { + $RequestParams | Add-Member -NotePropertyValue $RequestParams.name -NotePropertyName Identity + $GraphRequest = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-TransportRule' -cmdParams ($RequestParams | Select-Object -Property * -ExcludeProperty GUID, Comments, HasSenderOverride, ExceptIfHasSenderOverride, ExceptIfMessageContainsDataClassifications, MessageContainsDataClassifications, UseLegacyRegex) -useSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $tenant -message "Successfully set transport rule for $tenant" -sev 'Info' + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Skipping transport rule for $tenant as it already exists" -sev 'Info' + } } else { - Write-Host 'Creating new' $GraphRequest = New-ExoRequest -tenantid $Tenant -cmdlet 'New-TransportRule' -cmdParams ($RequestParams | Select-Object -Property * -ExcludeProperty GUID, Comments, HasSenderOverride, ExceptIfHasSenderOverride, ExceptIfMessageContainsDataClassifications, MessageContainsDataClassifications, UseLegacyRegex) -useSystemMailbox $true Write-LogMessage -API 'Standards' -tenant $tenant -message "Successfully created transport rule for $tenant" -sev 'Info' } @@ -58,4 +64,24 @@ function Invoke-CIPPStandardTransportRuleTemplate { } } } + if ($Settings.report -eq $true) { + $rules = $Settings.transportRuleTemplate.JSON | ConvertFrom-Json -Depth 10 + $MissingRules = foreach ($rule in $rules) { + $CheckExististing = $existingRules | Where-Object -Property identity -EQ $rule.displayname + if (!$CheckExististing) { + $rule.displayname + } + } + + $CurrentValue = @{ + DeployedTransportRules = $existingRules.DisplayName | Where-Object { $rules.displayname -contains $_ } | Sort-Object + MissingTransportRules = $MissingRules ? @($MissingRules) : @() + } + $ExpectedValue = @{ + DeployedTransportRules = $rules.displayname | Sort-Object + MissingTransportRules = @() + } + + Set-CIPPStandardsCompareField -FieldName 'standards.TransportRuleTemplate' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTwoClickEmailProtection.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTwoClickEmailProtection.ps1 index 13cbb9562d82..cd23ae592974 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTwoClickEmailProtection.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTwoClickEmailProtection.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardTwoClickEmailProtection { CAT Exchange Standards TAG + EXECUTIVETEXT + Requires employees to click twice before viewing encrypted or sensitive emails, preventing accidental exposure of confidential information when screens might be visible to others. This privacy protection helps prevent shoulder surfing and ensures employees are intentional about viewing sensitive content. ADDEDCOMPONENT {"type":"autoComplete","multiple":false,"creatable":false,"label":"Select value","name":"standards.TwoClickEmailProtection.state","options":[{"label":"Enabled","value":"enabled"},{"label":"Disabled","value":"disabled"}]} IMPACT @@ -29,7 +31,11 @@ function Invoke-CIPPStandardTwoClickEmailProtection { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'TwoClickEmailProtection' + $TestResult = Test-CIPPStandardLicense -StandardName 'TwoClickEmailProtection' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. # Get state value using null-coalescing operator $State = $Settings.state.value ?? $Settings.state @@ -37,7 +43,7 @@ function Invoke-CIPPStandardTwoClickEmailProtection { # Input validation if ([string]::IsNullOrWhiteSpace($State)) { Write-LogMessage -API 'Standards' -tenant $Tenant -message 'TwoClickEmailProtection: Invalid state parameter set' -sev Error - Return + return } try { @@ -45,15 +51,13 @@ function Invoke-CIPPStandardTwoClickEmailProtection { } catch { $ErrorMessage = Get-CippException -Exception $_ Write-LogMessage -API 'Standards' -tenant $Tenant -message "Could not get current two-click email protection state. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage - Return + return } $WantedState = $State -eq 'enabled' ? $true : $false $StateIsCorrect = $CurrentState -eq $WantedState ? $true : $false if ($Settings.remediate -eq $true) { - Write-Host 'Time to remediate two-click email protection' - if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -tenant $Tenant -message "Two-click email protection is already set to $State." -sev Info } else { @@ -78,7 +82,13 @@ function Invoke-CIPPStandardTwoClickEmailProtection { } if ($Settings.report -eq $true) { - Set-CIPPStandardsCompareField -FieldName 'standards.TwoClickEmailProtection' -FieldValue $StateIsCorrect -Tenant $Tenant + $CurrentValue = @{ + TwoClickMailPreviewEnabled = $CurrentState + } + $ExpectedValue = @{ + TwoClickMailPreviewEnabled = $WantedState + } + Set-CIPPStandardsCompareField -FieldName 'standards.TwoClickEmailProtection' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant Add-CIPPBPAField -FieldName 'TwoClickEmailProtection' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardUndoOauth.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardUndoOauth.ps1 index fd43f8ced664..9d292ddeb938 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardUndoOauth.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardUndoOauth.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardUndoOauth { CAT Entra (AAD) Standards TAG + EXECUTIVETEXT + Reverses application consent restrictions, allowing employees to approve applications independently without administrative oversight. This increases productivity and user autonomy but reduces security controls over data access permissions. ADDEDCOMPONENT IMPACT High Impact @@ -28,28 +30,34 @@ function Invoke-CIPPStandardUndoOauth { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'UndoOauth' - $CurrentState = New-GraphGetRequest -tenantid $Tenant -Uri 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy?$select=permissionGrantPolicyIdsAssignedToDefaultUserRole' + try { + $CurrentState = New-GraphGetRequest -tenantid $Tenant -Uri 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy?$select=permissionGrantPolicyIdsAssignedToDefaultUserRole' + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the App Consent state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + $StateIsCorrect = ($CurrentState.permissionGrantPolicyIdsAssignedToDefaultUserRole -eq 'ManagePermissionGrantsForSelf.microsoft-user-default-legacy') - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Application Consent Mode is already disabled.' -sev Info } else { try { $GraphRequest = @{ - tenantid = $tenant - uri = 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy' - AsApp = $false - Type = 'PATCH' + tenantid = $tenant + uri = 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy' + AsApp = $false + Type = 'PATCH' ContentType = 'application/json' - Body = '{"permissionGrantPolicyIdsAssignedToDefaultUserRole":["ManagePermissionGrantsForSelf.microsoft-user-default-legacy"]}' + Body = '{"permissionGrantPolicyIdsAssignedToDefaultUserRole":["ManagePermissionGrantsForSelf.microsoft-user-default-legacy"]}' } New-GraphPostRequest @GraphRequest Write-LogMessage -API 'Standards' -tenant $tenant -message 'Application Consent Mode has been disabled.' -sev Info } catch { - Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to set Application Consent Mode to disabled." -sev Error -LogData $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Failed to set Application Consent Mode to disabled.' -sev Error -LogData $_ } } @@ -59,18 +67,19 @@ function Invoke-CIPPStandardUndoOauth { if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Application Consent Mode is disabled.' -sev Info } else { - Write-StandardsAlert -message "Application Consent Mode is not disabled." -object $CurrentState -tenant $Tenant -standardName 'UndoOauth' -standardId $Settings.standardId + Write-StandardsAlert -message 'Application Consent Mode is not disabled.' -object $CurrentState -tenant $Tenant -standardName 'UndoOauth' -standardId $Settings.standardId Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Application Consent Mode is not disabled.' -sev Info } } if ($Settings.report -eq $true) { Add-CIPPBPAField -FieldName 'UndoOauth' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant - if ($StateIsCorrect) { - $FieldValue = $true - } else { - $FieldValue = $CurrentState + $CurrentValue = @{ + permissionGrantPolicyIdsAssignedToDefaultUserRole = $CurrentState.permissionGrantPolicyIdsAssignedToDefaultUserRole + } + $ExpectedValue = @{ + permissionGrantPolicyIdsAssignedToDefaultUserRole = @('ManagePermissionGrantsForSelf.microsoft-user-default-legacy') } - Set-CIPPStandardsCompareField -FieldName 'standards.UndoOauth' -FieldValue $FieldValue -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.UndoOauth' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardUserPreferredLanguage.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardUserPreferredLanguage.ps1 index e2b65e9c9bba..08c7dfd53772 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardUserPreferredLanguage.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardUserPreferredLanguage.ps1 @@ -31,7 +31,19 @@ function Invoke-CIPPStandardUserPreferredLanguage { param($Tenant, $Settings) $preferredLanguage = $Settings.preferredLanguage.value - $IncorrectUsers = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$top=999&`$select=userPrincipalName,displayName,preferredLanguage,userType,onPremisesSyncEnabled&`$filter=preferredLanguage ne '$preferredLanguage' and userType eq 'Member' and onPremisesSyncEnabled ne true&`$count=true" -tenantid $Tenant -ComplexFilter + + try { + $AllUsers = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Users' + $IncorrectUsers = $AllUsers | Where-Object { + ($null -eq $_.preferredLanguage -or $_.preferredLanguage -ne $preferredLanguage) -and + $_.userType -eq 'Member' -and + $_.onPremisesSyncEnabled -ne $true + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the UserPreferredLanguage state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } if ($Settings.remediate -eq $true) { if (($IncorrectUsers | Measure-Object).Count -gt 0) { @@ -54,6 +66,13 @@ function Invoke-CIPPStandardUserPreferredLanguage { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set preferred language to $preferredLanguage for all users." -sev Error -LogData $ErrorMessage } + + # Refresh user cache after remediation + try { + Set-CIPPDBCacheUsers -TenantFilter $Tenant + } catch { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to refresh user cache after remediation: $($_.Exception.Message)" -sev Warning + } } } @@ -69,11 +88,16 @@ function Invoke-CIPPStandardUserPreferredLanguage { if ($Settings.report -eq $true) { Add-CIPPBPAField -FieldName 'IncorrectUsers' -FieldValue $IncorrectUsers -StoreAs json -Tenant $Tenant - if ($IncorrectUsers.userPrincipalName) { - $FieldValue = $IncorrectUsers | Select-Object -Property userPrincipalName, displayName, preferredLanguage, userType - } else { - $FieldValue = $true + if ($IncorrectUsers.userPrincipalName) { $FieldValue = $IncorrectUsers | Select-Object -Property userPrincipalName, displayName, preferredLanguage, userType } else { $FieldValue = @() } + + $CurrentValue = @{ + preferredLanguage = $preferredLanguage + incorrectUsers = @($FieldValue) + } + $ExpectedValue = @{ + preferredLanguage = $preferredLanguage + incorrectUsers = @() } - Set-CIPPStandardsCompareField -FieldName 'standards.UserPreferredLanguage' -FieldValue $FieldValue -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.UserPreferredLanguage' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardUserSubmissions.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardUserSubmissions.ps1 index e1c2ee7ca8ac..265959e7ce6a 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardUserSubmissions.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardUserSubmissions.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardUserSubmissions { CAT Exchange Standards TAG + EXECUTIVETEXT + Enables employees to easily report suspicious emails directly from Outlook, helping improve the organization's spam and phishing detection systems. This crowdsourced approach to security allows users to contribute to threat detection while providing valuable feedback to enhance email security filters. ADDEDCOMPONENT {"type":"autoComplete","multiple":false,"label":"Select value","name":"standards.UserSubmissions.state","options":[{"label":"Enabled","value":"enable"},{"label":"Disabled","value":"disable"}]} {"type":"textField","name":"standards.UserSubmissions.email","required":false,"label":"Destination email address"} @@ -30,7 +32,11 @@ function Invoke-CIPPStandardUserSubmissions { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'UserSubmissions' + $TestResult = Test-CIPPStandardLicense -StandardName 'UserSubmissions' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. # Get state value using null-coalescing operator $state = $Settings.state.value ?? $Settings.state @@ -51,8 +57,13 @@ function Invoke-CIPPStandardUserSubmissions { } } - $PolicyState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-ReportSubmissionPolicy' - $RuleState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-ReportSubmissionRule' + try { + $PolicyState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-ReportSubmissionPolicy' + $RuleState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-ReportSubmissionRule' + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the UserSubmissions state for $Tenant. Error: $ErrorMessage" -Sev Error + } if ($state -eq 'enable') { if (([string]::IsNullOrWhiteSpace($Email))) { @@ -185,7 +196,6 @@ function Invoke-CIPPStandardUserSubmissions { } } - if ($Settings.report -eq $true) { if ($PolicyState.length -eq 0) { Add-CIPPBPAField -FieldName 'UserSubmissionPolicy' -FieldValue $false -StoreAs bool -Tenant $Tenant @@ -193,14 +203,42 @@ function Invoke-CIPPStandardUserSubmissions { Add-CIPPBPAField -FieldName 'UserSubmissionPolicy' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant } - if ($StateIsCorrect) { - $FieldValue = $true - } else { - $PolicyState = $PolicyState | Select-Object EnableReportToMicrosoft, ReportJunkToCustomizedAddress, ReportNotJunkToCustomizedAddress, ReportPhishToCustomizedAddress, ReportJunkAddresses, ReportNotJunkAddresses, ReportPhishAddresses - $RuleState = $RuleState | Select-Object State, SentTo - $FieldValue = @{ PolicyState = $PolicyState; RuleState = $RuleState } + $PolicyState = $PolicyState | Select-Object EnableReportToMicrosoft, ReportJunkToCustomizedAddress, ReportNotJunkToCustomizedAddress, ReportPhishToCustomizedAddress, ReportJunkAddresses, ReportNotJunkAddresses, ReportPhishAddresses + $RuleState = $RuleState | Select-Object State, SentTo + + $CurrentValue = @{ + EnableReportToMicrosoft = $PolicyState.EnableReportToMicrosoft + ReportJunkToCustomizedAddress = $PolicyState.ReportJunkToCustomizedAddress + ReportNotJunkToCustomizedAddress = $PolicyState.ReportNotJunkToCustomizedAddress + ReportPhishToCustomizedAddress = $PolicyState.ReportPhishToCustomizedAddress + ReportJunkAddresses = $PolicyState.ReportJunkAddresses + ReportNotJunkAddresses = $PolicyState.ReportNotJunkAddresses + ReportPhishAddresses = $PolicyState.ReportPhishAddresses + RuleState = @{ + State = $RuleState.State + SentTo = $RuleState.SentTo + } } - - Set-CIPPStandardsCompareField -FieldName 'standards.UserSubmissions' -FieldValue $FieldValue -TenantFilter $Tenant + $ExpectedValue = @{ + EnableReportToMicrosoft = $state -eq 'enable' + ReportJunkToCustomizedAddress = if ([string]::IsNullOrWhiteSpace($Email)) { $false } else { $true } + ReportNotJunkToCustomizedAddress = if ([string]::IsNullOrWhiteSpace($Email)) { $false } else { $true } + ReportPhishToCustomizedAddress = if ([string]::IsNullOrWhiteSpace($Email)) { $false } else { $true } + ReportJunkAddresses = if ([string]::IsNullOrWhiteSpace($Email)) { $null } else { @($Email) } + ReportNotJunkAddresses = if ([string]::IsNullOrWhiteSpace($Email)) { $null } else { @($Email) } + ReportPhishAddresses = if ([string]::IsNullOrWhiteSpace($Email)) { $null } else { @($Email) } + RuleState = if ([string]::IsNullOrWhiteSpace($Email)) { + @{ + State = 'Disabled' + SentTo = $null + } + } else { + @{ + State = 'Enabled' + SentTo = @($Email) + } + } + } + Set-CIPPStandardsCompareField -FieldName 'standards.UserSubmissions' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardallowOAuthTokens.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardallowOAuthTokens.ps1 index 500c0af7ec87..d2022ada13c4 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardallowOAuthTokens.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardallowOAuthTokens.ps1 @@ -13,6 +13,10 @@ function Invoke-CIPPStandardallowOAuthTokens { CAT Entra (AAD) Standards TAG + "EIDSCA.AT01" + "EIDSCA.AT02" + EXECUTIVETEXT + Allows employees to use third-party authentication apps and password managers to generate secure login codes, providing flexibility in authentication methods while maintaining security standards. This accommodates diverse user preferences and existing security tools. ADDEDCOMPONENT IMPACT Low Impact @@ -30,10 +34,18 @@ function Invoke-CIPPStandardallowOAuthTokens { param($Tenant, $Settings) #$Rerun -Type Standard -Tenant $Tenant -API 'AddDKIM' -Settings $Settings - $CurrentState = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy/authenticationMethodConfigurations/softwareOath' -tenantid $Tenant + try { + $CurrentState = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy/authenticationMethodConfigurations/softwareOath' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the allowOTPTokens state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $StateIsCorrect = ($CurrentState.state -eq 'enabled') + $CurrentValue = $CurrentState | Select-Object -Property state + $ExpectedValue = [PSCustomObject]@{state = 'enabled' } - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -tenant $tenant -message 'Software OTP/oAuth tokens is already enabled.' -sev Info } else { @@ -55,6 +67,6 @@ function Invoke-CIPPStandardallowOAuthTokens { if ($Settings.report -eq $true) { Add-CIPPBPAField -FieldName 'softwareOath' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant - Set-CIPPStandardsCompareField -FieldName 'standards.allowOAuthTokens' -FieldValue $StateIsCorrect -TenantFilter $tenant + Set-CIPPStandardsCompareField -FieldName 'standards.allowOAuthTokens' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardallowOTPTokens.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardallowOTPTokens.ps1 index ce374e86fd14..acfdcc29a911 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardallowOTPTokens.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardallowOTPTokens.ps1 @@ -13,6 +13,9 @@ function Invoke-CIPPStandardallowOTPTokens { CAT Entra (AAD) Standards TAG + "EIDSCA.AM02" + EXECUTIVETEXT + Enables one-time password generation through Microsoft Authenticator app, providing an additional secure authentication method for employees. This is particularly useful for secure VPN access and other systems requiring multi-factor authentication. ADDEDCOMPONENT IMPACT Low Impact @@ -30,9 +33,18 @@ function Invoke-CIPPStandardallowOTPTokens { param($Tenant, $Settings) #$Rerun -Type Standard -Tenant $Tenant -API 'allowOTPTokens' -Settings $Settings - $CurrentInfo = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy/authenticationMethodConfigurations/microsoftAuthenticator' -tenantid $Tenant + try { + $CurrentInfo = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy/authenticationMethodConfigurations/microsoftAuthenticator' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the allowOTPTokens state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $CurrentValue = $CurrentInfo | Select-Object -Property isSoftwareOathEnabled + $ExpectedValue = [PSCustomObject]@{isSoftwareOathEnabled = $true } - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { if ($CurrentInfo.isSoftwareOathEnabled) { Write-LogMessage -API 'Standards' -tenant $tenant -message 'MS authenticator OTP/oAuth tokens is already enabled.' -sev Info } else { @@ -53,7 +65,7 @@ function Invoke-CIPPStandardallowOTPTokens { } if ($Settings.report -eq $true) { - Set-CIPPStandardsCompareField -FieldName 'standards.allowOTPTokens' -FieldValue $CurrentInfo.isSoftwareOathEnabled -TenantFilter $tenant + Set-CIPPStandardsCompareField -FieldName 'standards.allowOTPTokens' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $tenant Add-CIPPBPAField -FieldName 'MSAuthenticator' -FieldValue $CurrentInfo.isSoftwareOathEnabled -StoreAs bool -Tenant $tenant } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardcalDefault.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardcalDefault.ps1 index 11f3f95605db..2edce2a10d35 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardcalDefault.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardcalDefault.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardcalDefault { CAT Exchange Standards TAG + EXECUTIVETEXT + Configures how much calendar information employees share by default with colleagues, balancing collaboration needs with privacy. This setting determines whether others can see meeting details, free/busy times, or just availability, helping optimize scheduling while protecting sensitive meeting information. DISABLEDFEATURES {"report":true,"warn":true,"remediate":false} ADDEDCOMPONENT @@ -32,6 +34,11 @@ function Invoke-CIPPStandardcalDefault { param($Tenant, $Settings, $QueueItem) ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'calDefault' + $TestResult = Test-CIPPStandardLicense -StandardName 'calDefault' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + return $true + } #we're done. # Get permissionLevel value using null-coalescing operator $permissionLevel = $Settings.permissionLevel.value ?? $Settings.permissionLevel @@ -39,72 +46,69 @@ function Invoke-CIPPStandardcalDefault { # Input validation if ([string]::IsNullOrWhiteSpace($permissionLevel) -or $permissionLevel -eq 'Select a value') { Write-LogMessage -API 'Standards' -tenant $tenant -message 'calDefault: Invalid permissionLevel parameter set' -sev Error - Return + return } - If ($Settings.remediate -eq $true) { - $Mailboxes = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-Mailbox' | Sort-Object UserPrincipalName - $TotalMailboxes = $Mailboxes.Count - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Started setting default calendar permissions for $($TotalMailboxes) mailboxes." -sev Info + if ($Settings.remediate -eq $true) { + try { + # Get calendar permissions from cache - this contains the calendar Identity we need + $CalendarPermissions = New-CIPPDbRequest -TenantFilter $Tenant -Type 'CalendarPermissions' - # Retrieve the last run status - $LastRunTable = Get-CIPPTable -Table StandardsLastRun - $Filter = "RowKey eq 'calDefaults' and PartitionKey eq '{0}'" -f $tenant - $LastRun = Get-CIPPAzDataTableEntity @LastRunTable -Filter $Filter + if (-not $CalendarPermissions) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'No cached calendar permissions found. Please ensure the mailbox cache has been populated.' -sev Error + return + } - $startIndex = 0 - if ($LastRun -and $LastRun.processedMailboxes -lt $LastRun.totalMailboxes ) { - $startIndex = $LastRun.processedMailboxes - } + # Filter to only Default user permissions that don't match target level + $DefaultPermissions = $CalendarPermissions | Where-Object { $_.User -eq 'Default' } + $NeedsUpdate = $DefaultPermissions | Where-Object { + $currentRights = if ($_.AccessRights -is [array]) { $_.AccessRights -join ',' } else { $_.AccessRights } + $currentRights -ne $permissionLevel + } - $SuccessCounter = if ($startIndex -eq 0) { 0 } else { [int64]$LastRun.currentSuccessCount } - $processedMailboxes = $startIndex - $Mailboxes = $Mailboxes[$startIndex..($TotalMailboxes - 1)] - Write-Host "CalDefaults Starting at index $startIndex" - Write-Host "CalDefaults success counter starting at $SuccessCounter" - Write-Host "CalDefaults Processing $($Mailboxes.Count) mailboxes" - $Mailboxes | ForEach-Object { - $Mailbox = $_ - try { - New-ExoRequest -tenantid $Tenant -cmdlet 'Get-MailboxFolderStatistics' -cmdParams @{identity = $Mailbox.UserPrincipalName; FolderScope = 'Calendar' } -Anchor $Mailbox.UserPrincipalName | Where-Object { $_.FolderType -eq 'Calendar' } | - ForEach-Object { - try { - New-ExoRequest -tenantid $Tenant -cmdlet 'Set-MailboxFolderPermission' -cmdParams @{Identity = "$($Mailbox.UserPrincipalName):$($_.FolderId)"; User = 'Default'; AccessRights = $permissionLevel } -Anchor $Mailbox.UserPrincipalName - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Set default folder permission for $($Mailbox.UserPrincipalName):\$($_.Name) to $permissionLevel" -sev Debug - $SuccessCounter++ - } catch { - $ErrorMessage = Get-CippException -Exception $_ - Write-Host "Setting cal failed: $ErrorMessage" - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Could not set default calendar permissions for $($Mailbox.UserPrincipalName). Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage - } + $TotalCalendars = $DefaultPermissions.Count + $CalendarsToUpdate = $NeedsUpdate.Count + + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Found $TotalCalendars calendars. $CalendarsToUpdate need permission update to $permissionLevel." -sev Info + + if ($CalendarsToUpdate -eq 0) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'All calendars already have the correct default permission level.' -sev Info + return + } + + # Set permissions for each calendar that needs updating + $SuccessCounter = 0 + $ErrorCounter = 0 + + foreach ($Calendar in $NeedsUpdate) { + try { + New-ExoRequest -tenantid $Tenant -cmdlet 'Set-MailboxFolderPermission' -cmdParams @{ + Identity = $Calendar.Identity + User = 'Default' + AccessRights = $permissionLevel } + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Set default calendar permission for $($Calendar.Identity) to $permissionLevel" -sev Debug + $SuccessCounter++ } catch { + $ErrorCounter++ $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Could not set default calendar permissions for $($Mailbox.UserPrincipalName). Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage - } - $processedMailboxes++ - if ($processedMailboxes % 25 -eq 0) { - $LastRun = @{ - RowKey = 'calDefaults' - PartitionKey = $Tenant - totalMailboxes = $TotalMailboxes - processedMailboxes = $processedMailboxes - currentSuccessCount = $SuccessCounter - } - Add-CIPPAzDataTableEntity @LastRunTable -Entity $LastRun -Force - Write-Host "Processed $processedMailboxes mailboxes" + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set calendar permission for $($Calendar.Identity): $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage } } - $LastRun = @{ - RowKey = 'calDefaults' - PartitionKey = $Tenant - totalMailboxes = $TotalMailboxes - processedMailboxes = $processedMailboxes - currentSuccessCount = $SuccessCounter + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully set default calendar permissions for $SuccessCounter calendars. $ErrorCounter failed." -sev Info + + # Refresh calendar permissions cache after remediation + try { + Set-CIPPDBCacheMailboxes -TenantFilter $Tenant + } catch { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to refresh mailbox cache after remediation: $($_.Exception.Message)" -sev Warning } - Add-CIPPAzDataTableEntity @LastRunTable -Entity $LastRun -Force - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully set default calendar permissions for $SuccessCounter out of $TotalMailboxes mailboxes." -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Could not set default calendar permissions. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage } } + +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandarddisableMacSync.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandarddisableMacSync.ps1 index 6f3c1f886b16..47f420c9ac3f 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandarddisableMacSync.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandarddisableMacSync.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandarddisableMacSync { CAT SharePoint Standards TAG + EXECUTIVETEXT + Prevents Mac computers from synchronizing files with OneDrive, typically implemented for security or compliance reasons in Windows-centric environments. This restriction helps maintain standardized device management while potentially limiting collaboration for Mac users. ADDEDCOMPONENT IMPACT High Impact @@ -28,11 +30,21 @@ function Invoke-CIPPStandarddisableMacSync { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'disableMacSync' + $TestResult = Test-CIPPStandardLicense -StandardName 'disableMacSync' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') - $CurrentInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' -tenantid $Tenant -AsApp $true + if ($TestResult -eq $false) { + return $true + } #we're done. - If ($Settings.remediate -eq $true) { + try { + $CurrentInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' -tenantid $Tenant -AsApp $true + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableMacSync state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + if ($Settings.remediate -eq $true) { if ($CurrentInfo.isMacSyncAppEnabled -eq $true) { try { @@ -59,8 +71,16 @@ function Invoke-CIPPStandarddisableMacSync { } if ($Settings.report -eq $true) { - $CurrentInfo.isMacSyncAppEnabled = -not $CurrentInfo.isMacSyncAppEnabled - Set-CIPPStandardsCompareField -FieldName 'standards.disableMacSync' -FieldValue $CurrentInfo.isMacSyncAppEnabled -TenantFilter $Tenant - Add-CIPPBPAField -FieldName 'MacSync' -FieldValue $CurrentInfo.isMacSyncAppEnabled -StoreAs bool -Tenant $tenant + $CurrentState = -not $CurrentInfo.isMacSyncAppEnabled + + $CurrentValue = [PSCustomObject]@{ + MacSyncDisabled = $CurrentState + } + $ExpectedValue = [PSCustomObject]@{ + MacSyncDisabled = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.disableMacSync' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'MacSync' -FieldValue $CurrentState -StoreAs bool -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneBrandingProfile.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneBrandingProfile.ps1 index cc0cb204840a..66ed49f285ec 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneBrandingProfile.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneBrandingProfile.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardintuneBrandingProfile { CAT Intune Standards TAG + EXECUTIVETEXT + Customizes the Intune Company Portal app with company branding, contact information, and support details, providing employees with a consistent corporate experience when managing their devices. This improves user experience and ensures employees know how to get IT support when needed. ADDEDCOMPONENT {"type":"textField","name":"standards.intuneBrandingProfile.displayName","label":"Organization name","required":false} {"type":"switch","name":"standards.intuneBrandingProfile.showLogo","label":"Show logo"} @@ -38,9 +40,19 @@ function Invoke-CIPPStandardintuneBrandingProfile { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'intuneBrandingProfile' + $TestResult = Test-CIPPStandardLicense -StandardName 'intuneBrandingProfile' -TenantFilter $Tenant -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') - $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/deviceManagement/intuneBrandingProfiles/c3a59481-1bf2-46ce-94b3-66eec07a8d60' -tenantid $Tenant -AsApp $true + if ($TestResult -eq $false) { + return $true + } #we're done. + + try { + $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/deviceManagement/intuneBrandingProfiles/c3a59481-1bf2-46ce-94b3-66eec07a8d60' -tenantid $Tenant -AsApp $true + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the intuneBrandingProfile state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $StateIsCorrect = ((-not $Settings.displayName) -or ($CurrentState.displayName -eq $Settings.displayName)) -and ((-not $Settings.showLogo) -or ($CurrentState.showLogo -eq $Settings.showLogo)) -and @@ -98,8 +110,31 @@ function Invoke-CIPPStandardintuneBrandingProfile { } if ($Settings.report -eq $true) { - $ReportState = $StateIsCorrect ? $true : $CurrentState - Set-CIPPStandardsCompareField -FieldName 'standards.intuneBrandingProfile' -FieldValue $ReportState -TenantFilter $Tenant + $CurrentValue = @{ + displayName = $CurrentState.displayName + showLogo = $CurrentState.showLogo + showDisplayNameNextToLogo = $CurrentState.showDisplayNameNextToLogo + contactITName = $CurrentState.contactITName + contactITPhoneNumber = $CurrentState.contactITPhoneNumber + contactITEmailAddress = $CurrentState.contactITEmailAddress + contactITNotes = $CurrentState.contactITNotes + onlineSupportSiteName = $CurrentState.onlineSupportSiteName + onlineSupportSiteUrl = $CurrentState.onlineSupportSiteUrl + privacyUrl = $CurrentState.privacyUrl + } + $ExpectedValue = @{ + displayName = $Settings.displayName + showLogo = $Settings.showLogo + showDisplayNameNextToLogo = $Settings.showDisplayNameNextToLogo + contactITName = $Settings.contactITName + contactITPhoneNumber = $Settings.contactITPhoneNumber + contactITEmailAddress = $Settings.contactITEmailAddress + contactITNotes = $Settings.contactITNotes + onlineSupportSiteName = $Settings.onlineSupportSiteName + onlineSupportSiteUrl = $Settings.onlineSupportSiteUrl + privacyUrl = $Settings.privacyUrl + } + Set-CIPPStandardsCompareField -FieldName 'standards.intuneBrandingProfile' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'intuneBrandingProfile' -FieldValue [bool]$StateIsCorrect -StoreAs bool -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneDeviceReg.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneDeviceReg.ps1 index eb9e1693da54..aa31d08e889b 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneDeviceReg.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneDeviceReg.ps1 @@ -13,6 +13,9 @@ function Invoke-CIPPStandardintuneDeviceReg { CAT Intune Standards TAG + "CISA (MS.AAD.17.1v1)" + EXECUTIVETEXT + Limits how many devices each employee can register for corporate access, preventing excessive device proliferation while accommodating legitimate business needs. This helps maintain security oversight and prevents potential abuse of device registration privileges. ADDEDCOMPONENT {"type":"number","name":"standards.intuneDeviceReg.max","label":"Maximum devices (Enter 2147483647 for unlimited.)","required":true} IMPACT @@ -29,12 +32,22 @@ function Invoke-CIPPStandardintuneDeviceReg { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'intuneDeviceReg' + $TestResult = Test-CIPPStandardLicense -StandardName 'intuneDeviceReg' -TenantFilter $Tenant -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') - $PreviousSetting = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/deviceRegistrationPolicy' -tenantid $Tenant + if ($TestResult -eq $false) { + return $true + } #we're done. + + try { + $PreviousSetting = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/deviceRegistrationPolicy' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the intuneDeviceReg state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $StateIsCorrect = if ($PreviousSetting.userDeviceQuota -eq $Settings.max) { $true } else { $false } - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { if ($PreviousSetting.userDeviceQuota -eq $Settings.max) { Write-LogMessage -API 'Standards' -tenant $tenant -message "User device quota is already set to $($Settings.max)" -sev Info @@ -62,8 +75,13 @@ function Invoke-CIPPStandardintuneDeviceReg { } if ($Settings.report -eq $true) { - $state = $StateIsCorrect ? $true : $PreviousSetting.userDeviceQuota - Set-CIPPStandardsCompareField -FieldName 'standards.intuneDeviceReg' -FieldValue $state -TenantFilter $Tenant + $CurrentValue = @{ + userDeviceQuota = $PreviousSetting.userDeviceQuota + } + $ExpectedValue = @{ + userDeviceQuota = $Settings.max + } + Set-CIPPStandardsCompareField -FieldName 'standards.intuneDeviceReg' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'intuneDeviceReg' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneDeviceRetirementDays.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneDeviceRetirementDays.ps1 index 07d19f264bdf..6441d9ff09bc 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneDeviceRetirementDays.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneDeviceRetirementDays.ps1 @@ -7,14 +7,16 @@ function Invoke-CIPPStandardintuneDeviceRetirementDays { .SYNOPSIS (Label) Set inactive device retirement days .DESCRIPTION - (Helptext) A value between 0 and 270 is supported. A value of 0 disables retirement, retired devices are removed from Intune after the specified number of days. - (DocsDescription) A value between 0 and 270 is supported. A value of 0 disables retirement, retired devices are removed from Intune after the specified number of days. + (Helptext) A value between 31 and 365 is supported. retired devices are removed from Intune after the specified number of days. + (DocsDescription) A value between 31 and 365 is supported. retired devices are removed from Intune after the specified number of days. .NOTES CAT Intune Standards TAG + EXECUTIVETEXT + Automatically removes inactive devices from management after a specified period, helping maintain a clean device inventory and reducing security risks from abandoned or lost devices. This policy ensures that only actively used corporate devices remain in the management system. ADDEDCOMPONENT - {"type":"number","name":"standards.intuneDeviceRetirementDays.days","label":"Maximum days (0 equals disabled)"} + {"type":"number","name":"standards.intuneDeviceRetirementDays.days","label":"Maximum days"} IMPACT Low Impact ADDEDDATE @@ -30,19 +32,36 @@ function Invoke-CIPPStandardintuneDeviceRetirementDays { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'intuneDeviceRetirementDays' + $TestResult = Test-CIPPStandardLicense -StandardName 'intuneDeviceRetirementDays' -TenantFilter $Tenant -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') + + if ($TestResult -eq $false) { + return $true + } #we're done. + + try { + $CurrentInfo = (New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/deviceManagement/managedDeviceCleanupRules' -tenantid $Tenant) + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the intuneDeviceRetirementDays state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } - $CurrentInfo = (New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/deviceManagement/managedDeviceCleanupSettings' -tenantid $Tenant) $StateIsCorrect = if ($CurrentInfo.DeviceInactivityBeforeRetirementInDays -eq $Settings.days) { $true } else { $false } - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { if ($CurrentInfo.DeviceInactivityBeforeRetirementInDays -eq $Settings.days) { Write-LogMessage -API 'Standards' -tenant $tenant -message "DeviceInactivityBeforeRetirementInDays for $($Settings.days) days is already enabled." -sev Info } else { + if ($CurrentInfo) { + $Type = 'Patch' + $id = "('$($CurrentInfo.id)')" + } else { + $Type = 'Post' + } try { - $body = @{ DeviceInactivityBeforeRetirementInDays = $Settings.days } | ConvertTo-Json - (New-GraphPostRequest -tenantid $tenant -Uri 'https://graph.microsoft.com/beta/deviceManagement/managedDeviceCleanupSettings' -Type PATCH -Body $body -ContentType 'application/json') + $body = '{"displayName":"Default Policy","description":"Default Policy","deviceCleanupRulePlatformType":"all","deviceInactivityBeforeRetirementInDays":' + $Settings.days + '}' + (New-GraphPostRequest -tenantid $tenant -Uri "https://graph.microsoft.com/beta/deviceManagement/managedDeviceCleanupRules$id" -Type $Type -Body $body -ContentType 'application/json') Write-LogMessage -API 'Standards' -tenant $tenant -message "Enabled DeviceInactivityBeforeRetirementInDays for $($Settings.days) days." -sev Info } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message @@ -62,8 +81,13 @@ function Invoke-CIPPStandardintuneDeviceRetirementDays { } if ($Settings.report -eq $true) { - $state = $StateIsCorrect ? $true : $CurrentInfo.DeviceInactivityBeforeRetirementInDays - Set-CIPPStandardsCompareField -FieldName 'standards.intuneDeviceRetirementDays' -FieldValue $state -Tenant $tenant + $CurrentValue = @{ + deviceInactivityBeforeRetirementInDays = $CurrentInfo.DeviceInactivityBeforeRetirementInDays + } + $ExpectedValue = @{ + deviceInactivityBeforeRetirementInDays = $Settings.days + } + Set-CIPPStandardsCompareField -FieldName 'standards.intuneDeviceRetirementDays' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'intuneDeviceRetirementDays' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneRequireMFA.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneRequireMFA.ps1 index 43a5da1d2d24..81fa6fae17c9 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneRequireMFA.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneRequireMFA.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardintuneRequireMFA { CAT Intune Standards TAG + EXECUTIVETEXT + Requires employees to use multi-factor authentication when registering devices for corporate access, adding an extra security layer to prevent unauthorized device enrollment. This helps ensure only legitimate users can connect their devices to company systems. IMPACT Medium Impact ADDEDDATE @@ -27,23 +29,29 @@ function Invoke-CIPPStandardintuneRequireMFA { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'intuneRequireMFA' - $PreviousSetting = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/deviceRegistrationPolicy' -tenantid $Tenant + try { + $PreviousSetting = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/deviceRegistrationPolicy' -tenantid $Tenant + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the intuneRequireMFA state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { if ($PreviousSetting.multiFactorAuthConfiguration -eq 'required') { - Write-LogMessage -API 'Standards' -tenant $tenant -message 'Require to use MFA when joining/registering Entra Devices is already enabled.' -sev Info + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Require to use MFA when joining/registering Entra Devices is already enabled.' -sev Info } else { try { $NewSetting = $PreviousSetting $NewSetting.multiFactorAuthConfiguration = 'required' $NewBody = ConvertTo-Json -Compress -InputObject $NewSetting -Depth 10 - New-GraphPostRequest -tenantid $tenant -Uri 'https://graph.microsoft.com/beta/policies/deviceRegistrationPolicy' -Type PUT -Body $NewBody -ContentType 'application/json' - Write-LogMessage -API 'Standards' -tenant $tenant -message 'Set required to use MFA when joining/registering Entra Devices' -sev Info + New-GraphPostRequest -tenantid $Tenant -Uri 'https://graph.microsoft.com/beta/policies/deviceRegistrationPolicy' -Type PUT -Body $NewBody + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Set required to use MFA when joining/registering Entra Devices' -sev Info + $PreviousSetting.multiFactorAuthConfiguration = 'required' } catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to set require to use MFA when joining/registering Entra Devices: $ErrorMessage" -sev Error + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set require to use MFA when joining/registering Entra Devices: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage } } } @@ -51,16 +59,23 @@ function Invoke-CIPPStandardintuneRequireMFA { if ($Settings.alert -eq $true) { if ($PreviousSetting.multiFactorAuthConfiguration -eq 'required') { - Write-LogMessage -API 'Standards' -tenant $tenant -message 'Require to use MFA when joining/registering Entra Devices is enabled.' -sev Info + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Require to use MFA when joining/registering Entra Devices is enabled.' -sev Info } else { - Write-StandardsAlert -message 'Require to use MFA when joining/registering Entra Devices is not enabled' -object $PreviousSetting -tenant $tenant -standardName 'intuneRequireMFA' -standardId $Settings.standardId - Write-LogMessage -API 'Standards' -tenant $tenant -message 'Require to use MFA when joining/registering Entra Devices is not enabled.' -sev Info + Write-StandardsAlert -message 'Require to use MFA when joining/registering Entra Devices is not enabled' -object $PreviousSetting -tenant $Tenant -standardName 'intuneRequireMFA' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Require to use MFA when joining/registering Entra Devices is not enabled.' -sev Info } } if ($Settings.report -eq $true) { $RequireMFA = if ($PreviousSetting.multiFactorAuthConfiguration -eq 'required') { $true } else { $false } - Set-CIPPStandardsCompareField -FieldName 'standards.intuneRequireMFA' -FieldValue $RequireMFA -Tenant $tenant - Add-CIPPBPAField -FieldName 'intuneRequireMFA' -FieldValue $RequireMFA -StoreAs bool -Tenant $tenant + + $CurrentValue = @{ + multiFactorAuthConfiguration = $PreviousSetting.multiFactorAuthConfiguration + } + $ExpectedValue = @{ + multiFactorAuthConfiguration = 'required' + } + Set-CIPPStandardsCompareField -FieldName 'standards.intuneRequireMFA' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + Add-CIPPBPAField -FieldName 'intuneRequireMFA' -FieldValue $RequireMFA -StoreAs bool -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardlaps.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardlaps.ps1 index b6f53ee67fda..b08508db2e6e 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardlaps.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardlaps.ps1 @@ -13,6 +13,8 @@ function Invoke-CIPPStandardlaps { CAT Entra (AAD) Standards TAG + EXECUTIVETEXT + Enables Local Administrator Password Solution (LAPS) capability, which automatically manages and rotates local administrator passwords on company computers. This significantly improves security by preventing the use of shared or static administrator passwords that could be exploited by attackers. ADDEDCOMPONENT IMPACT Low Impact @@ -29,9 +31,15 @@ function Invoke-CIPPStandardlaps { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'laps' - $PreviousSetting = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/deviceRegistrationPolicy' -tenantid $Tenant + try { + $PreviousSetting = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/deviceRegistrationPolicy' -tenantid $Tenant + } + catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DeviceRegistrationPolicy state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } If ($Settings.remediate -eq $true) { try { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardsharingCapability.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardsharingCapability.ps1 index c65bf679b010..f19d3dba95b4 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardsharingCapability.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardsharingCapability.ps1 @@ -13,7 +13,11 @@ function Invoke-CIPPStandardsharingCapability { CAT SharePoint Standards TAG - "CIS" + "CIS M365 5.0 (7.2.3)" + "CISA (MS.AAD.14.1v1)" + "CISA (MS.SPO.1.1v1)" + EXECUTIVETEXT + Defines the organization's default policy for sharing files and folders in SharePoint and OneDrive, balancing collaboration needs with security requirements. This fundamental setting determines whether employees can share with external users, anonymous links, or only internal colleagues. ADDEDCOMPONENT {"type":"autoComplete","multiple":false,"label":"Select Sharing Level","name":"standards.sharingCapability.Level","options":[{"label":"Users can share only with people in the organization. No external sharing is allowed.","value":"disabled"},{"label":"Users can share with new and existing guests. Guests must sign in or provide a verification code.","value":"externalUserSharingOnly"},{"label":"Users can share with anyone by using links that do not require sign-in.","value":"externalUserAndGuestSharing"},{"label":"Users can share with existing guests (those already in the directory of the organization).","value":"existingExternalUserSharingOnly"}]} IMPACT @@ -32,8 +36,19 @@ function Invoke-CIPPStandardsharingCapability { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'sharingCapability' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + + if ($TestResult -eq $false) { + return $true + } #we're done. - $CurrentInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' -tenantid $Tenant -AsApp $true + try { + $CurrentInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' -tenantid $Tenant -AsApp $true + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the sharingCapability state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } if ($Settings.report -eq $true) { Add-CIPPBPAField -FieldName 'sharingCapability' -FieldValue $CurrentInfo.sharingCapability -StoreAs string -Tenant $Tenant @@ -51,10 +66,8 @@ function Invoke-CIPPStandardsharingCapability { if ($Settings.remediate -eq $true) { if ($CurrentInfo.sharingCapability -eq $level) { - Write-Host "Sharing level is already set to $level" Write-LogMessage -API 'Standards' -tenant $Tenant -message "Sharing level is already set to $level" -sev Info } else { - Write-Host "Setting sharing level to $level from $($CurrentInfo.sharingCapability)" try { $body = @{ sharingCapability = $level @@ -79,11 +92,12 @@ function Invoke-CIPPStandardsharingCapability { } if ($Settings.report -eq $true) { - if ($CurrentInfo.sharingCapability -eq $level) { - $FieldValue = $true - } else { - $FieldValue = $CurrentInfo | Select-Object -Property sharingCapability + $CurrentValue = @{ + sharingCapability = $CurrentInfo.sharingCapability + } + $ExpectedValue = @{ + sharingCapability = $level } - Set-CIPPStandardsCompareField -FieldName 'standards.sharingCapability' -FieldValue $FieldValue -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.sharingCapability' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardsharingDomainRestriction.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardsharingDomainRestriction.ps1 index 3fa2f071bda4..f0bd6cff3c37 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardsharingDomainRestriction.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardsharingDomainRestriction.ps1 @@ -13,7 +13,11 @@ function Invoke-CIPPStandardsharingDomainRestriction { CAT SharePoint Standards TAG - "CIS" + "CIS M365 5.0 (7.2.6)" + "CISA (MS.AAD.14.3v1)" + "CISA (MS.SPO.1.3v1)" + EXECUTIVETEXT + Controls which external domains employees can share files with, enabling secure collaboration with trusted partners while blocking sharing with unauthorized organizations. This targeted approach maintains necessary business relationships while preventing data exposure to unknown entities. ADDEDCOMPONENT {"type":"autoComplete","multiple":false,"name":"standards.sharingDomainRestriction.Mode","label":"Limit external sharing by domains","options":[{"label":"Off","value":"none"},{"label":"Restrict sharing to specific domains","value":"allowList"},{"label":"Block sharing to specific domains","value":"blockList"}]} {"type":"textField","name":"standards.sharingDomainRestriction.Domains","label":"Domains to allow/block, comma separated","required":false} @@ -31,8 +35,19 @@ function Invoke-CIPPStandardsharingDomainRestriction { #> param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'sharingDomainRestriction' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') - $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' -tenantid $Tenant -AsApp $true + if ($TestResult -eq $false) { + return $true + } #we're done. + + try { + $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' -tenantid $Tenant -AsApp $true + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the SharingDomainRestriction state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } # Get mode value using null-coalescing operator $mode = $Settings.Mode.value ?? $Settings.Mode @@ -49,7 +64,6 @@ function Invoke-CIPPStandardsharingDomainRestriction { ($mode -eq 'blockList' -and ([string[]]($CurrentBlockedDomains | Sort-Object) -join ',') -eq ([string[]]($SelectedDomains | Sort-Object) -join ',')) ) } - Write-Host "StateIsCorrect: $StateIsCorrect" if ($Settings.remediate -eq $true) { if ($StateIsCorrect -eq $true) { @@ -73,8 +87,6 @@ function Invoke-CIPPStandardsharingDomainRestriction { body = ($Body | ConvertTo-Json) } - Write-Host ($cmdParams | ConvertTo-Json -Depth 5) - try { $null = New-GraphPostRequest @cmdParams Write-LogMessage -API 'Standards' -tenant $tenant -message 'Successfully updated Sharing Domain Restriction settings' -sev Info @@ -97,11 +109,16 @@ function Invoke-CIPPStandardsharingDomainRestriction { if ($Settings.report -eq $true) { Add-CIPPBPAField -FieldName 'sharingDomainRestriction' -FieldValue [bool]$StateIsCorrect -StoreAs bool -Tenant $tenant - if ($StateIsCorrect) { - $FieldValue = $true - } else { - $FieldValue = $CurrentState | Select-Object sharingAllowedDomainList, sharingDomainRestrictionMode + $CurrentValue = @{ + sharingDomainRestrictionMode = $CurrentState.sharingDomainRestrictionMode + sharingAllowedDomainList = $CurrentState.sharingAllowedDomainList + sharingBlockedDomainList = $CurrentState.sharingBlockedDomainList + } + $ExpectedValue = @{ + sharingDomainRestrictionMode = $mode + sharingAllowedDomainList = if ($mode -eq 'allowList') { $SelectedDomains } else { @() } + sharingBlockedDomainList = if ($mode -eq 'blockList') { $SelectedDomains } else { @() } } - Set-CIPPStandardsCompareField -FieldName 'standards.sharingDomainRestriction' -FieldValue $FieldValue -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.sharingDomainRestriction' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardunmanagedSync.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardunmanagedSync.ps1 index 57fe9a533670..fdf2bd41931f 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardunmanagedSync.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardunmanagedSync.ps1 @@ -13,6 +13,11 @@ function Invoke-CIPPStandardunmanagedSync { CAT SharePoint Standards TAG + "CIS M365 5.0 (7.2.3)" + "CISA (MS.SPO.2.1v1)" + "NIST CSF 2.0 (PR.AA-05)" + EXECUTIVETEXT + Restricts access to company files from personal or unmanaged devices, ensuring corporate data can only be accessed from properly secured and monitored devices. This critical security control prevents data leaks while allowing controlled access through web browsers when necessary. ADDEDCOMPONENT {"type":"autoComplete","multiple":false,"creatable":false,"name":"standards.unmanagedSync.state","label":"State","options":[{"label":"Allow limited, web-only access","value":"1"},{"label":"Block access","value":"2"}],"required":false} IMPACT @@ -30,15 +35,26 @@ function Invoke-CIPPStandardunmanagedSync { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'unmanagedSync' + $TestResult = Test-CIPPStandardLicense -StandardName 'unmanagedSync' -TenantFilter $Tenant -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') - $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | Select-Object _ObjectIdentity_, TenantFilter, ConditionalAccessPolicy + if ($TestResult -eq $false) { + return $true + } #we're done. + + try { + $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | + Select-Object _ObjectIdentity_, TenantFilter, ConditionalAccessPolicy + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the unmanagedSync state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $WantedState = [int]($Settings.state.value ?? 2) # Default to 2 (Block Access) if not set, for pre v8.0.3 standard compatibility $Label = $Settings.state.label ?? 'Block Access' # Default label if not set, for pre v8.0.3 standard compatibility $StateIsCorrect = ($CurrentState.ConditionalAccessPolicy -eq $WantedState) - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -tenant $Tenant -message "Sync for unmanaged devices is already correctly set to: $Label" -sev Info @@ -64,9 +80,13 @@ function Invoke-CIPPStandardunmanagedSync { } if ($Settings.report -eq $true) { - - $State = $StateIsCorrect ? $true : $CurrentState.ConditionalAccessPolicy - Set-CIPPStandardsCompareField -FieldName 'standards.unmanagedSync' -FieldValue $State -Tenant $Tenant + $CurrentValue = @{ + ConditionalAccessPolicy = $CurrentState.ConditionalAccessPolicy + } + $ExpectedValue = @{ + ConditionalAccessPolicy = $WantedState + } + Set-CIPPStandardsCompareField -FieldName 'standards.unmanagedSync' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant Add-CIPPBPAField -FieldName 'unmanagedSync' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Functions/Expand-CIPPTenantGroups.ps1 b/Modules/CIPPCore/Public/TenantGroups/Expand-CIPPTenantGroups.ps1 similarity index 89% rename from Modules/CIPPCore/Public/Functions/Expand-CIPPTenantGroups.ps1 rename to Modules/CIPPCore/Public/TenantGroups/Expand-CIPPTenantGroups.ps1 index 3f8405c0d619..4e10fc0ffb80 100644 --- a/Modules/CIPPCore/Public/Functions/Expand-CIPPTenantGroups.ps1 +++ b/Modules/CIPPCore/Public/TenantGroups/Expand-CIPPTenantGroups.ps1 @@ -17,7 +17,8 @@ function Expand-CIPPTenantGroups { $FilterValue = $_ # Group lookup if ($_.type -eq 'Group') { - $members = (Get-TenantGroups -GroupId $_.value).members + $GroupResult = Get-TenantGroups -GroupId $_.value + $members = if ($GroupResult) { $GroupResult.members } else { @() } $TenantList | Where-Object -Property customerId -In $members.customerId | ForEach-Object { $GroupMember = $_ [PSCustomObject]@{ diff --git a/Modules/CIPPCore/Public/TenantGroups/Get-CIPPTenantVariables.ps1 b/Modules/CIPPCore/Public/TenantGroups/Get-CIPPTenantVariables.ps1 new file mode 100644 index 000000000000..eee3fcdabf45 --- /dev/null +++ b/Modules/CIPPCore/Public/TenantGroups/Get-CIPPTenantVariables.ps1 @@ -0,0 +1,77 @@ +function Get-CIPPTenantVariables { + <# + .SYNOPSIS + Retrieves custom variables for a specific tenant + .DESCRIPTION + This function retrieves custom variables from the CippReplacemap table for a specific tenant, + including both tenant-specific and global (AllTenants) variables. Tenant-specific variables + take precedence over global variables. + .PARAMETER TenantFilter + The tenant filter (customerId or defaultDomainName) + .PARAMETER IncludeGlobal + Include global variables (AllTenants) in the results + .FUNCTIONALITY + Internal + .EXAMPLE + Get-CIPPTenantVariables -TenantFilter 'contoso.com' + .EXAMPLE + Get-CIPPTenantVariables -TenantFilter 'eda053f2-4add-41dc-9feb-78a5fc0934c9' -IncludeGlobal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + [switch]$IncludeGlobal + ) + + try { + $ReplaceTable = Get-CIPPTable -tablename 'CippReplacemap' + $Variables = @{} + + # Get tenant information to resolve both customerId and defaultDomainName + $Tenant = Get-Tenants -TenantFilter $TenantFilter + if (!$Tenant) { + Write-Warning "Tenant not found: $TenantFilter" + return $Variables + } + + # Load global variables first if requested (lower priority) + if ($IncludeGlobal) { + $GlobalMap = Get-CIPPAzDataTableEntity @ReplaceTable -Filter "PartitionKey eq 'AllTenants'" + if ($GlobalMap) { + foreach ($Var in $GlobalMap) { + $Variables[$Var.RowKey] = @{ + Value = $Var.Value + Description = $Var.Description + Scope = 'Global' + } + } + } + } + + # Load tenant-specific variables (higher priority - will overwrite global) + # Try by customerId first + $TenantMap = Get-CIPPAzDataTableEntity @ReplaceTable -Filter "PartitionKey eq '$($Tenant.customerId)'" + + # If no results found by customerId, try by defaultDomainName + if (!$TenantMap) { + $TenantMap = Get-CIPPAzDataTableEntity @ReplaceTable -Filter "PartitionKey eq '$($Tenant.defaultDomainName)'" + } + + if ($TenantMap) { + foreach ($Var in $TenantMap) { + $Variables[$Var.RowKey] = @{ + Value = $Var.Value + Description = $Var.Description + Scope = 'Tenant' + } + } + } + + return $Variables + + } catch { + Write-LogMessage -API 'TenantGroups' -message "Failed to retrieve tenant variables for $TenantFilter : $($_.Exception.Message)" -sev Error + return @{} + } +} diff --git a/Modules/CIPPCore/Public/TenantGroups/Get-TenantGroups.ps1 b/Modules/CIPPCore/Public/TenantGroups/Get-TenantGroups.ps1 new file mode 100644 index 000000000000..74a0f4a65ef6 --- /dev/null +++ b/Modules/CIPPCore/Public/TenantGroups/Get-TenantGroups.ps1 @@ -0,0 +1,192 @@ +if (-not $script:TenantGroupsCache) { + $script:TenantGroupsCache = @{ + Groups = $null + Members = $null + LastRefresh = $null + MembersByGroup = $null # Dictionary: GroupId -> members array + } +} + +# Result cache: keyed by "GroupId|TenantFilter|Dynamic" +if (-not $script:TenantGroupsResultCache) { + $script:TenantGroupsResultCache = @{} +} + +function Get-TenantGroups { + <# + .SYNOPSIS + Get tenant groups + .DESCRIPTION + Get tenant groups from Azure Table Storage with performance optimizations + using script-scoped caches and in-memory indexing + .PARAMETER GroupId + The group id to filter on + .PARAMETER TenantFilter + The tenant filter to apply to get the groups for a specific tenant + .PARAMETER Dynamic + Filter to only dynamic groups + #> + [CmdletBinding()] + param( + [string]$GroupId, + [string]$TenantFilter, + [switch]$Dynamic, + [switch]$SkipCache + ) + $CacheKey = "$GroupId|$TenantFilter|$($Dynamic.IsPresent)" + + if ($SkipCache) { + Write-Verbose "Skipping cache for: $CacheKey" + } elseif ($script:TenantGroupsResultCache.ContainsKey($CacheKey)) { + Write-Verbose "Returning cached result for: $CacheKey" + return $script:TenantGroupsResultCache[$CacheKey] + } + + # Early exit if specific GroupId requested but not allowed + if ($GroupId -and $script:CippAllowedGroupsStorage -and $script:CippAllowedGroupsStorage.Value) { + if ($script:CippAllowedGroupsStorage.Value -notcontains $GroupId) { + return @() + } + } + + # Load table data into cache if not already loaded + if (-not $script:TenantGroupsCache.Groups -or -not $script:TenantGroupsCache.Members -or $SkipCache) { + Write-Verbose 'Loading TenantGroups and TenantGroupMembers tables into cache' + + $GroupTable = Get-CippTable -tablename 'TenantGroups' + $MembersTable = Get-CippTable -tablename 'TenantGroupMembers' + + $GroupTable.Filter = "PartitionKey eq 'TenantGroup'" + + # Load all groups and members once + $script:TenantGroupsCache.Groups = @(Get-CIPPAzDataTableEntity @GroupTable) + $script:TenantGroupsCache.Members = @(Get-CIPPAzDataTableEntity @MembersTable) + $script:TenantGroupsCache.LastRefresh = Get-Date + + # Build MembersByGroup index: GroupId -> array of member objects + $script:TenantGroupsCache.MembersByGroup = @{} + foreach ($Member in $script:TenantGroupsCache.Members) { + $GId = $Member.GroupId + if (-not $GId) { + continue + } + if (-not $script:TenantGroupsCache.MembersByGroup.ContainsKey($GId)) { + $script:TenantGroupsCache.MembersByGroup[$GId] = [System.Collections.Generic.List[object]]::new() + } + $script:TenantGroupsCache.MembersByGroup[$GId].Add($Member) + } + + Write-Verbose "Cache loaded: $($script:TenantGroupsCache.Groups.Count) groups, $($script:TenantGroupsCache.Members.Count) members" + } + + # Get tenants (already cached and fast per requirements) + if ($TenantFilter -and $TenantFilter -ne 'allTenants') { + $TenantParams = @{ + TenantFilter = $TenantFilter + IncludeErrors = $true + } + } else { + $TenantParams = @{ + IncludeErrors = $true + } + } + $Tenants = Get-Tenants @TenantParams + + $TenantByCustomerId = @{} + foreach ($Tenant in $Tenants) { + $TenantByCustomerId[$Tenant.customerId] = $Tenant + } + + $Groups = $script:TenantGroupsCache.Groups + + if ($Dynamic.IsPresent) { + $Groups = $Groups | Where-Object { $_.GroupType -eq 'dynamic' } + } + + if ($GroupId) { + $Groups = $Groups | Where-Object { $_.RowKey -eq $GroupId } + } + + if ($script:CippAllowedGroupsStorage -and $script:CippAllowedGroupsStorage.Value) { + $Groups = $Groups | Where-Object { $script:CippAllowedGroupsStorage.Value -contains $_.RowKey } + } + + if (!$Groups -or $Groups.Count -eq 0) { + $script:TenantGroupsResultCache[$CacheKey] = @() + return @() + } + + # Process results based on TenantFilter + if ($TenantFilter -and $TenantFilter -ne 'allTenants') { + # Return simplified group list for specific tenant + $Results = [System.Collections.Generic.List[PSCustomObject]]::new() + $TargetCustomerId = $Tenants.customerId + + foreach ($Group in $Groups) { + $GroupMembers = $script:TenantGroupsCache.MembersByGroup[$Group.RowKey] + + if ($GroupMembers) { + # Check if this group has the target tenant as a member + $HasTenant = $false + foreach ($Member in $GroupMembers) { + if ($Member.customerId -eq $TargetCustomerId) { + $HasTenant = $true + break + } + } + + if ($HasTenant) { + $Results.Add([PSCustomObject]@{ + Id = $Group.RowKey + Name = $Group.Name + Description = $Group.Description + }) + } + } + } + + $FinalResults = $Results | Sort-Object Name + $script:TenantGroupsResultCache[$CacheKey] = $FinalResults + return $FinalResults + } else { + # Return full group details with members + $Results = [System.Collections.Generic.List[PSCustomObject]]::new() + + foreach ($Group in $Groups) { + $GroupMembers = $script:TenantGroupsCache.MembersByGroup[$Group.RowKey] + $MembersList = [System.Collections.Generic.List[hashtable]]::new() + + if ($GroupMembers) { + foreach ($Member in $GroupMembers) { + # Use indexed lookup instead of Where-Object + if (!$Member.customerId) { continue } + $Tenant = $TenantByCustomerId[$Member.customerId] + if ($Tenant) { + $MembersList.Add(@{ + customerId = $Tenant.customerId + displayName = $Tenant.displayName + defaultDomainName = $Tenant.defaultDomainName + }) + } + } + $SortedMembers = $MembersList | Sort-Object displayName + } else { + $SortedMembers = @() + } + + $Results.Add([PSCustomObject]@{ + Id = $Group.RowKey + Name = $Group.Name + Description = $Group.Description + GroupType = $Group.GroupType ?? 'static' + RuleLogic = $Group.RuleLogic ?? 'and' + DynamicRules = $Group.DynamicRules ? @($Group.DynamicRules | ConvertFrom-Json) : @() + Members = @($SortedMembers) + }) + } + + $FinalResults = $Results | Sort-Object Name + $script:TenantGroupsResultCache[$CacheKey] = $FinalResults + return $FinalResults + } +} diff --git a/Modules/CIPPCore/Public/TenantGroups/Update-CIPPDynamicTenantGroups.ps1 b/Modules/CIPPCore/Public/TenantGroups/Update-CIPPDynamicTenantGroups.ps1 new file mode 100644 index 000000000000..185018453aa2 --- /dev/null +++ b/Modules/CIPPCore/Public/TenantGroups/Update-CIPPDynamicTenantGroups.ps1 @@ -0,0 +1,288 @@ +function Update-CIPPDynamicTenantGroups { + <# + .SYNOPSIS + Update dynamic tenant groups based on their rules + .DESCRIPTION + This function processes dynamic tenant group rules and updates membership accordingly + .PARAMETER GroupId + The specific group ID to update. If not provided, all dynamic groups will be updated + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [string]$GroupId + ) + + try { + $GroupTable = Get-CippTable -tablename 'TenantGroups' + $MembersTable = Get-CippTable -tablename 'TenantGroupMembers' + $LicenseCacheTable = Get-CippTable -tablename 'cachetenantskus' + + $Skus = Get-CIPPAzDataTableEntity @LicenseCacheTable -Filter "PartitionKey eq 'sku' and Timestamp ge datetime'$( (Get-Date).ToUniversalTime().AddHours(-8).ToString('yyyy-MM-ddTHH:mm:ssZ') )'" + + $SkuHashtable = @{} + foreach ($Sku in $Skus) { + if ($Sku.JSON -and (Test-Json -Json $Sku.JSON -ErrorAction SilentlyContinue)) { + $SkuHashtable[$Sku.RowKey] = $Sku.JSON | ConvertFrom-Json + } + } + + if ($GroupId) { + $DynamicGroups = Get-CIPPAzDataTableEntity @GroupTable -Filter "PartitionKey eq 'TenantGroup' and RowKey eq '$GroupId'" + } else { + $DynamicGroups = Get-CIPPAzDataTableEntity @GroupTable -Filter "PartitionKey eq 'TenantGroup' and GroupType eq 'dynamic'" + } + + if (-not $DynamicGroups) { + Write-LogMessage -API 'TenantGroups' -message 'No dynamic groups found to process' -sev Info + return @{ MembersAdded = 0; MembersRemoved = 0; GroupsProcessed = 0 } + } + + $AllTenants = Get-Tenants -IncludeErrors + $TotalMembersAdded = 0 + $TotalMembersRemoved = 0 + $GroupsProcessed = 0 + + # Pre-load tenant group memberships for tenantGroupMember rules + # This creates a cache to avoid repeated table queries during rule evaluation + $script:TenantGroupMembersCache = @{} + $AllGroupMembers = Get-CIPPAzDataTableEntity @MembersTable -Filter "PartitionKey eq 'Member'" + foreach ($Member in $AllGroupMembers) { + if (-not $Member.GroupId) { + continue + } + if (-not $script:TenantGroupMembersCache.ContainsKey($Member.GroupId)) { + $script:TenantGroupMembersCache[$Member.GroupId] = [system.collections.generic.list[string]]::new() + } + $script:TenantGroupMembersCache[$Member.GroupId].Add($Member.customerId) + } + + foreach ($Group in $DynamicGroups) { + try { + Write-LogMessage -API 'TenantGroups' -message "Processing dynamic group: $($Group.Name)" -sev Info + $Rules = @($Group.DynamicRules | ConvertFrom-Json) + # Build a single Where-Object string for AND logic + $WhereConditions = foreach ($Rule in $Rules) { + $Property = $Rule.property + $Operator = $Rule.operator + $Value = $Rule.value + + switch ($Property) { + 'delegatedAccessStatus' { + "`$_.delegatedPrivilegeStatus -$Operator '$($Value.value)'" + } + 'availableLicense' { + if ($Operator -in @('in', 'notin')) { + $arrayValues = if ($Value -is [array]) { $Value.guid } else { @($Value.guid) } + $arrayAsString = $arrayValues | ForEach-Object { "'$_'" } + if ($Operator -eq 'in') { + "(`$_.skuId | Where-Object { `$_ -in @($($arrayAsString -join ', ')) }).Count -gt 0" + } else { + "(`$_.skuId | Where-Object { `$_ -in @($($arrayAsString -join ', ')) }).Count -eq 0" + } + } else { + "`$_.skuId -$Operator '$($Value.guid)'" + } + } + 'availableServicePlan' { + if ($Operator -in @('in', 'notin')) { + $arrayValues = if ($Value -is [array]) { $Value.value } else { @($Value.value) } + $arrayAsString = $arrayValues | ForEach-Object { "'$_'" } + if ($Operator -eq 'in') { + # Keep tenants with ANY of the provided plans + "(`$_.servicePlans | Where-Object { `$_ -in @($($arrayAsString -join ', ')) }).Count -gt 0" + } else { + # Exclude tenants with ANY of the provided plans + "(`$_.servicePlans | Where-Object { `$_ -in @($($arrayAsString -join ', ')) }).Count -eq 0" + } + } else { + "`$_.servicePlans -$Operator '$($Value.value)'" + } + } + 'tenantGroupMember' { + # Get members of the referenced tenant group(s) + if ($Operator -in @('in', 'notin')) { + # Handle array of group IDs + $ReferencedGroupIds = @($Value.value) + + # Collect all unique member customerIds from all referenced groups + $AllMembers = [System.Collections.Generic.HashSet[string]]::new() + foreach ($GroupId in $ReferencedGroupIds) { + if ($script:TenantGroupMembersCache.ContainsKey($GroupId)) { + foreach ($MemberId in $script:TenantGroupMembersCache[$GroupId]) { + [void]$AllMembers.Add($MemberId) + } + } + } + + # Convert to array string for condition + $MemberArray = $AllMembers | ForEach-Object { "'$_'" } + $MemberArrayString = $MemberArray -join ', ' + + if ($Operator -eq 'in') { + "`$_.customerId -in @($MemberArrayString)" + } else { + "`$_.customerId -notin @($MemberArrayString)" + } + } else { + # Single value with other operators + $ReferencedGroupId = $Value.value + "`$_.customerId -$Operator `$script:TenantGroupMembersCache['$ReferencedGroupId']" + } + } + 'customVariable' { + # Custom variable matching - value contains variable name and expected value + # Handle case where variableName might be an object (autocomplete option) or a string + $VariableName = if ($Value.variableName -is [string]) { + $Value.variableName + } elseif ($Value.variableName.value) { + $Value.variableName.value + } else { + $Value.variableName + } + $ExpectedValue = $Value.value + # Escape single quotes in expected value for the condition string + $EscapedExpectedValue = $ExpectedValue -replace "'", "''" + + switch ($Operator) { + 'eq' { + "(`$_.customVariables.ContainsKey('$VariableName') -and `$_.customVariables['$VariableName'].Value -eq '$EscapedExpectedValue')" + } + 'ne' { + "(-not `$_.customVariables.ContainsKey('$VariableName') -or `$_.customVariables['$VariableName'].Value -ne '$EscapedExpectedValue')" + } + 'like' { + "(`$_.customVariables.ContainsKey('$VariableName') -and `$_.customVariables['$VariableName'].Value -like '*$EscapedExpectedValue*')" + } + 'notlike' { + "(-not `$_.customVariables.ContainsKey('$VariableName') -or `$_.customVariables['$VariableName'].Value -notlike '*$EscapedExpectedValue*')" + } + } + } + default { + Write-LogMessage -API 'TenantGroups' -message "Unknown property type: $Property" -sev Warning + $null + } + } + + } + if (!$WhereConditions) { + throw 'Generating the conditions failed. The conditions seem to be empty.' + } + Write-Information "Generated where conditions: $($WhereConditions | ConvertTo-Json )" + $TenantObj = $AllTenants | ForEach-Object { + if ($Rules.property -contains 'availableLicense') { + if ($SkuHashtable.ContainsKey($_.customerId)) { + Write-Information "Using cached licenses for tenant $($_.defaultDomainName)" + $LicenseInfo = $SkuHashtable[$_.customerId] + } else { + Write-Information "Fetching licenses for tenant $($_.defaultDomainName)" + try { + $LicenseInfo = New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/subscribedSkus' -TenantId $_.defaultDomainName + # Cache the result + $CacheEntity = @{ + PartitionKey = 'sku' + RowKey = [string]$_.customerId + JSON = [string]($LicenseInfo | ConvertTo-Json -Depth 5 -Compress) + } + Add-CIPPAzDataTableEntity @LicenseCacheTable -Entity $CacheEntity -Force + } catch { + Write-LogMessage -API 'TenantGroups' -message 'Error getting licenses' -Tenant $_.defaultDomainName -sev Warning -LogData (Get-CippException -Exception $_) + } + } + } + + # Fetch custom variables for this tenant if any rules use customVariable + $TenantVariables = @{} + if ($Rules.property -contains 'customVariable') { + try { + $TenantVariables = Get-CIPPTenantVariables -TenantFilter $_.customerId -IncludeGlobal + } catch { + Write-Information "Error fetching custom variables for tenant $($_.defaultDomainName): $($_.Exception.Message)" + Write-LogMessage -API 'TenantGroups' -message 'Error getting tenant variables' -Tenant $_.defaultDomainName -sev Warning -LogData (Get-CippException -Exception $_) + } + } + + try { + $SKUId = $LicenseInfo.SKUId ?? @() + $ServicePlans = (Get-CIPPTenantCapabilities -TenantFilter $_.defaultDomainName).psobject.properties.name + } catch { + Write-Information "Error fetching capabilities for tenant $($_.defaultDomainName): $($_.Exception.Message)" + Write-LogMessage -API 'TenantGroups' -message 'Error getting tenant capabilities' -Tenant $_.defaultDomainName -sev Warning -LogData (Get-CippException -Exception $_) + } + [pscustomobject]@{ + customerId = $_.customerId + defaultDomainName = $_.defaultDomainName + displayName = $_.displayName + skuId = $SKUId + servicePlans = $ServicePlans + delegatedPrivilegeStatus = $_.delegatedPrivilegeStatus + customVariables = $TenantVariables + } + } + # Combine all conditions with the specified logic (AND or OR) + $LogicOperator = if ($Group.RuleLogic -eq 'or') { ' -or ' } else { ' -and ' } + $WhereString = $WhereConditions -join $LogicOperator + Write-Information "Evaluating tenants with condition: $WhereString" + Write-LogMessage -API 'TenantGroups' -message "Evaluating tenants for group '$($Group.Name)' with condition: $WhereString" -sev Info + + $ScriptBlock = [ScriptBlock]::Create($WhereString) + $MatchingTenants = $TenantObj | Where-Object $ScriptBlock + + Write-Information "Found $($MatchingTenants.Count) matching tenants for group '$($Group.Name)'" + + $CurrentMembers = Get-CIPPAzDataTableEntity @MembersTable -Filter "PartitionKey eq 'Member' and GroupId eq '$($Group.RowKey)'" + $CurrentMemberIds = $CurrentMembers.customerId + $NewMemberIds = $MatchingTenants.customerId + + $ToAdd = $NewMemberIds | Where-Object { $_ -notin $CurrentMemberIds } + $ToRemove = $CurrentMemberIds | Where-Object { $_ -notin $NewMemberIds } + + foreach ($TenantId in $ToAdd) { + $TenantInfo = $AllTenants | Where-Object { $_.customerId -eq $TenantId } + $MemberEntity = @{ + PartitionKey = 'Member' + RowKey = '{0}-{1}' -f $Group.RowKey, $TenantId + GroupId = $Group.RowKey + customerId = "$TenantId" + } + Add-CIPPAzDataTableEntity @MembersTable -Entity $MemberEntity -Force + Write-LogMessage -API 'TenantGroups' -message "Added tenant '$($TenantInfo.displayName)' to dynamic group '$($Group.Name)'" -sev Info + $TotalMembersAdded++ + } + + foreach ($TenantId in $ToRemove) { + $TenantInfo = $AllTenants | Where-Object { $_.customerId -eq $TenantId } + $MemberToRemove = $CurrentMembers | Where-Object { $_.customerId -eq $TenantId } + if ($MemberToRemove) { + Remove-AzDataTableEntity @MembersTable -Entity $MemberToRemove -Force + Write-LogMessage -API 'TenantGroups' -message "Removed tenant '$($TenantInfo.displayName)' from dynamic group '$($Group.Name)'" -sev Info + $TotalMembersRemoved++ + } + } + + $GroupsProcessed++ + Write-LogMessage -API 'TenantGroups' -message "Group '$($Group.Name)' updated: +$($ToAdd.Count) members, -$($ToRemove.Count) members" -sev Info + + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'TenantGroups' -message "Failed to process group '$($Group.Name)': $ErrorMessage" -sev Error + } + } + + Write-LogMessage -API 'TenantGroups' -message "Dynamic tenant group update completed. Groups processed: $GroupsProcessed, Members added: $TotalMembersAdded, Members removed: $TotalMembersRemoved" -sev Info + + return @{ + MembersAdded = $TotalMembersAdded + MembersRemoved = $TotalMembersRemoved + GroupsProcessed = $GroupsProcessed + } + + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'TenantGroups' -message "Failed to update dynamic tenant groups: $ErrorMessage" -sev Error + throw + } +} + diff --git a/Modules/CIPPCore/Public/Test-CIPPAccessPermissions.ps1 b/Modules/CIPPCore/Public/Test-CIPPAccessPermissions.ps1 index f3cee2080ca4..9843f4c7de09 100644 --- a/Modules/CIPPCore/Public/Test-CIPPAccessPermissions.ps1 +++ b/Modules/CIPPCore/Public/Test-CIPPAccessPermissions.ps1 @@ -25,7 +25,6 @@ function Test-CIPPAccessPermissions { } $Success = $true try { - Set-Location (Get-Item $PSScriptRoot).FullName $null = Get-CIPPAuthentication $GraphToken = Get-GraphToken -returnRefresh $true -SkipCache $true if ($GraphToken) { @@ -33,13 +32,8 @@ function Test-CIPPAccessPermissions { } if ($env:MSI_SECRET) { try { - Disable-AzContextAutosave -Scope Process | Out-Null - $null = Connect-AzAccount -Identity - $SubscriptionId = $env:WEBSITE_OWNER_NAME -split '\+' | Select-Object -First 1 - $null = Set-AzContext -SubscriptionId $SubscriptionId - $KV = $env:WEBSITE_DEPLOYMENT_ID - $KeyVaultRefresh = Get-AzKeyVaultSecret -VaultName $kv -Name 'RefreshToken' -AsPlainText + $KeyVaultRefresh = Get-CippKeyVaultSecret -VaultName $kv -Name 'RefreshToken' -AsPlainText if ($env:RefreshToken -ne $KeyVaultRefresh) { $Success = $false $ErrorMessages.Add('Your refresh token does not match key vault, wait 30 minutes for the function app to update.') | Out-Null diff --git a/Modules/CIPPCore/Public/Test-CIPPAccessTenant.ps1 b/Modules/CIPPCore/Public/Test-CIPPAccessTenant.ps1 index bae5f70793b0..4ca993cbc631 100644 --- a/Modules/CIPPCore/Public/Test-CIPPAccessTenant.ps1 +++ b/Modules/CIPPCore/Public/Test-CIPPAccessTenant.ps1 @@ -106,7 +106,7 @@ function Test-CIPPAccessTenant { try { $null = New-ExoRequest -tenantid $Tenant.customerId -cmdlet 'Get-OrganizationConfig' -ErrorAction Stop - $OrgManagementRoles = New-ExoRequest -tenantid $Tenant.customerId -cmdlet 'Get-ManagementRoleAssignment' -cmdParams @{ RoleAssignee = 'Organization Management'; Delegating = $false } | Select-Object -Property Role, Guid + $OrgManagementRoles = New-ExoRequest -tenantid $Tenant.customerId -cmdlet 'Get-ManagementRoleAssignment' -cmdParams @{ Delegating = $false } | Where-Object { $_.RoleAssigneeName -eq 'Organization Management' } | Select-Object -Property Role, Guid Write-Information "Found $($OrgManagementRoles.Count) Organization Management roles in Exchange" $Results.OrgManagementRoles = $OrgManagementRoles @@ -114,8 +114,8 @@ function Test-CIPPAccessTenant { Write-Information "Found $($RoleDefinitions.Count) Exchange role definitions" $BasePath = Get-Module -Name 'CIPPCore' | Select-Object -ExpandProperty ModuleBase - $AllOrgManagementRoles = Get-Content -Path "$BasePath\Public\OrganizationManagementRoles.json" -ErrorAction Stop | ConvertFrom-Json - Write-Information "Loaded all Organization Management roles from $BasePath\Public\OrganizationManagementRoles.json" + $AllOrgManagementRoles = Get-Content -Path "$BasePath\lib\data\OrganizationManagementRoles.json" -ErrorAction Stop | ConvertFrom-Json + Write-Information "Loaded all Organization Management roles from $BasePath\lib\data\OrganizationManagementRoles.json" $AvailableRoles = $RoleDefinitions | Where-Object -Property displayName -In $AllOrgManagementRoles | Select-Object -Property displayName, id, description Write-Information "Found $($AvailableRoles.Count) available Organization Management roles in Exchange" diff --git a/Modules/CIPPCore/Public/Test-CIPPGDAPRelationships.ps1 b/Modules/CIPPCore/Public/Test-CIPPGDAPRelationships.ps1 index b9b16bbc0db6..18748ca7e5f4 100644 --- a/Modules/CIPPCore/Public/Test-CIPPGDAPRelationships.ps1 +++ b/Modules/CIPPCore/Public/Test-CIPPGDAPRelationships.ps1 @@ -30,7 +30,7 @@ function Test-CIPPGDAPRelationships { Issue = 'The relationship has global administrator access. Auto-Extend is not available.' Tenant = [string]$Group.customer.displayName Relationship = [string]$Group.displayName - Link = 'https://docs.cipp.app/setup/gdap/troubleshooting#autoextend' + Link = 'https://docs.cipp.app/setup/installation/recommended-roles' }) | Out-Null } diff --git a/Modules/CIPPCore/Public/Test-CIPPRerun.ps1 b/Modules/CIPPCore/Public/Test-CIPPRerun.ps1 index 021678392573..ac19ef9039e2 100644 --- a/Modules/CIPPCore/Public/Test-CIPPRerun.ps1 +++ b/Modules/CIPPCore/Public/Test-CIPPRerun.ps1 @@ -7,22 +7,34 @@ function Test-CIPPRerun { $Settings, $Headers, [switch]$Clear, - [switch]$ClearAll + [switch]$ClearAll, + [int64]$Interval = 0, # Custom interval in seconds (for scheduled tasks) + [int64]$BaseTime = 0 # Base time to calculate from (defaults to current time) ) $RerunTable = Get-CIPPTable -tablename 'RerunCache' - $EstimatedDifference = switch ($Type) { - 'Standard' { 9800 } # 2 hours 45 minutes ish. - 'BPA' { 85000 } # 24 hours ish. - default { throw "Unknown type: $Type" } + + # Use custom interval if provided, otherwise use type-based defaults + if ($Interval -gt 0) { + $EstimatedDifference = $Interval + } else { + $EstimatedDifference = switch ($Type) { + 'Standard' { 9800 } # 2 hours 45 minutes ish. + 'BPA' { 85000 } # 24 hours ish. + 'CippTests' { 85000 } # 24 hours ish. + default { throw "Unknown type: $Type" } + } } - $CurrentUnixTime = [int][double]::Parse((Get-Date -UFormat %s)) + + # Use BaseTime if provided, otherwise use current time + $CurrentUnixTime = if ($BaseTime -gt 0) { $BaseTime } else { [int][double]::Parse((Get-Date -UFormat %s)) } $EstimatedNextRun = $CurrentUnixTime + $EstimatedDifference try { - $RerunData = Get-CIPPAzDataTableEntity @RerunTable -filter "PartitionKey eq '$($TenantFilter)' and RowKey eq '$($Type)_$($API)'" + $RerunData = Get-CIPPAzDataTableEntity @RerunTable -filter "PartitionKey eq '$($TenantFilter)'" | Where-Object { $_.RowKey -match "^$($Type)_$($API)" } if ($ClearAll.IsPresent) { $AllRerunData = Get-CIPPAzDataTableEntity @RerunTable if ($AllRerunData) { + Write-Information "Clearing all rerun cache entries for $($Type)_$($API)" Remove-AzDataTableEntity @RerunTable -Entity $AllRerunData -Force } return $false diff --git a/Modules/CIPPCore/Public/Tests/CISA-Missing-Caches.md b/Modules/CIPPCore/Public/Tests/CISA-Missing-Caches.md new file mode 100644 index 000000000000..5b7bd652195a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA-Missing-Caches.md @@ -0,0 +1,195 @@ +# Missing CIPP Caches for CISA Tests + +This document lists the caches that need to be created to support the remaining CISA tests that cannot currently be implemented. + +## ✅ Implemented Cache Functions + +### 1. ✅ CASMailbox Cache +**Required For:** +- ✅ MS.EXO.5.1 - SMTP Authentication + +**Status**: ✅ IMPLEMENTED in Set-CIPPDBCacheCASMailbox.ps1 + +--- + +### 2. ✅ ExoSharingPolicy Cache +**Required For:** +- ✅ MS.EXO.6.1 - Contact Sharing +- ✅ MS.EXO.6.2 - Calendar Sharing + +**Status**: ✅ IMPLEMENTED in Set-CIPPDBCacheExoSharingPolicy.ps1 + +--- + +### 3. ✅ ExoAdminAuditLogConfig Cache +**Required For:** +- ✅ MS.EXO.17.1 - Audit Log +- ✅ MS.EXO.17.3 - Audit Log Retention + +**Status**: ✅ IMPLEMENTED in Set-CIPPDBCacheExoAdminAuditLogConfig.ps1 + +--- + +### 4. ✅ ExoPresetSecurityPolicy Cache +**Required For:** +- ✅ MS.EXO.11.1 - Impersonation +- ✅ MS.EXO.11.2 - Impersonation Tips +- ✅ MS.EXO.11.3 - Mailbox Intelligence + +**Status**: ✅ IMPLEMENTED in Set-CIPPDBCacheExoPresetSecurityPolicy.ps1 + +--- + +### 5. ✅ ExoTenantAllowBlockList Cache +**Required For:** +- ✅ MS.EXO.12.1 - Anti-Spam Allow List + +**Status**: ✅ IMPLEMENTED in Set-CIPPDBCacheExoTenantAllowBlockList.ps1 + +--- + +## Required New Cache Functions +**Required For:** +- MS.EXO.8.1 - DLP Solution +- MS.EXO.8.2 - DLP PII +- MS.EXO.8.4 - DLP Baseline Rules + +**SecurityCompliance Command:** +```powershell +Get-DlpCompliancePolicy | Select-Object Name, Enabled, Mode +Get-DlpComplianceRule | Select-Object Name, ParentPolicyName, ContentContainsSensitiveInformation, Disabled +``` +1 +**Cache Function Names:** +- `Set-CIPPDBCacheSccDlpPolicy` +- `Set-CIPPDBCacheSccDlpRule` + +**Properties Needed:** +- Policy: Name, Enabled, Mode +- Rule: Name, ParentPolicyName, ContentContainsSensitiveInformation, Disabled + +**Note:** Requires SecurityCompliance PowerShell connection + +--- + +### 2. SecurityCompliance ProtectionAlert Cache +**Required For:** +- MS.EXO.16.1 - Alerts + +**SecurityCompliance Command:** +```powershell +Get-ProtectionAlert | Select-Object Name, Disabled +``` + +**Cache Function Name:** `Set-CIPPDBCacheSccProtectionAlert` + +**Properties Needed:** +- Name +- Disabled + +**Note:** Requires SecurityCompliance PowerShell connection + +--- + +### 3. SecurityCompliance ActivityAlert Cache +**Required For:** +- MS.EXO.16.2 - Alert SIEM + +**SecurityCompliance Command:** +```powershell +Get-ActivityAlert | Select-Object Name, Disabled, NotificationEnabled, Type +``` + +**Cache Function Name:** `Set-CIPPDBCacheSccActivityAlert` + +**Properties Needed:** +- Name +- Disabled +- NotificationEnabled +- Type + +**Note:** Requires SecurityCompliance PowerShell connection + +--- + +## DNS-Based Tests (Cannot Be Cached) + +These tests require external DNS lookups and cannot be implemented with cached Exchange data: + +### MS.EXO.2.1 - SPF Restriction +**Requires:** DNS TXT record lookup for SPF +**Query:** `nslookup -type=txt ` + +### MS.EXO.2.2 - SPF Directive +**Requires:** DNS TXT record parsing for SPF policy +**Query:** Parse SPF record for `~all` or `-all` + +### MS.EXO.4.1 - DMARC Record Exists +**Requires:** DNS TXT record lookup for DMARC +**Query:** `nslookup -type=txt _dmarc.` + +### MS.EXO.4.2 - DMARC Reject Policy +**Requires:** DNS TXT record parsing for DMARC policy +**Query:** Parse DMARC record for `p=reject` or `p=quarantine` + +### MS.EXO.4.3 - DMARC Aggregate Reports +**Requires:** DNS TXT record parsing for DMARC rua tags +**Query:** Parse DMARC record for `rua=` email addresses + +### MS.EXO.4.4 - DMARC Reports +**Requires:** DNS TXT record parsing for DMARC report configuration +**Query:** Parse DMARC record for report targets + +### MS.EXO.7.1 - External Sender Warning +**Requires:** ExoOrganizationConfig.ExternalInOutlook property +**Note:** May already be in ExoOrganizationConfig cache - needs verification + +### MS.EXO.13.1 - Mailbox Auditing +**Requires:** ExoOrganizationConfig.AuditDisabled property +**Note:** May already be in ExoOrganizationConfig cache - needs verification + +## Manual Assessment Tests (Cannot Be Automated) + +### MS.EXO.8.3 - DLP Alternate Solution +**Reason:** Requires manual assessment of 3rd party DLP solutions + +### MS.EXO.9.4 - Email Filter Alternative +**Reason:** Requires manual assessment of 3rd party email filtering solutions + +### MS.EXO.14.4 - Spam Alternative Solution +**Reason:** Requires manual assessment of 3rd party anti-spam solutions + +### MS.EXO.17.2 - Audit Log Premium +**Reason:** Requires license validation and advanced audit policy checks beyond cached data + +--- + +## Implementation Priority + +### High Priority (Core Security Controls): +1. CASMailbox - SMTP Auth control +2. ExoAdminAuditLogConfig - Audit logging +3. ExoTenantAllowBlockList - Allow list bypass prevention + +### Medium Priority (DLP and Alerts): +4. SecurityCompliance DLP caches - Data loss prevention +5. SecurityCompliance Alert caches - Security monitoring + +### Low Priority (Advanced Features): +6. ExoSharingPolicy - External sharing controls +7. ExoPresetSecurityPolicy - Preset security policies + +--- + +## Notes on Implementation + +1. **Graph API Alternative**: Some Exchange Online cmdlets may have equivalent Graph API endpoints that could be used instead. + +## Summary + +- **New Caches Required**: 8 cache functions +- **DNS Tests**: 6 tests (architectural limitation) +- **Manual Tests**: 4 tests (cannot be automated) +- **Implementable After New Caches**: 15 additional tests +- **Current Implementation**: 13 tests +- **Total Possible with New Caches**: 28 tests (68% coverage) diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO101.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO101.md new file mode 100644 index 000000000000..47d0249a0689 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO101.md @@ -0,0 +1,21 @@ +Emails SHALL be filtered by attachment file types. + +Email attachment filtering helps prevent malicious files from reaching users' inboxes. By blocking or quarantining emails with potentially dangerous file types, organizations can significantly reduce the risk of malware infections and data breaches. + +**Remediation Action:** + +1. Navigate to Microsoft 365 Defender portal > Email & collaboration > Policies & rules > Threat policies > Anti-malware +2. Select each malware filter policy +3. Under "Protection settings": + - Enable "Enable the common attachments filter" +4. Or use PowerShell: +```powershell +Set-MalwareFilterPolicy -Identity "Default" -EnableFileFilter $true +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.10.1](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo101v1) +- [Configure anti-malware policies](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-malware-protection-configure) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO101.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO101.ps1 new file mode 100644 index 000000000000..cda775b98b25 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO101.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestCISAMSEXO101 { + <# + .SYNOPSIS + Tests MS.EXO.10.1 - Emails SHALL be filtered by attachment file types + + .DESCRIPTION + Checks if malware filter policies have file filtering enabled + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $MalwarePolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoMalwareFilterPolicy' + + if (-not $MalwarePolicies) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoMalwareFilterPolicy cache not found. Please refresh the cache for this tenant.' -Risk 'High' -Name 'Emails SHALL be filtered by attachment file types' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO101' -TenantFilter $Tenant + return + } + + $FailedPolicies = $MalwarePolicies | Where-Object { -not $_.EnableFileFilter } + + if ($FailedPolicies.Count -eq 0) { + $Result = "✅ **Pass**: All $($MalwarePolicies.Count) malware filter policy/policies have file filtering enabled." + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: $($FailedPolicies.Count) of $($MalwarePolicies.Count) malware filter policy/policies do not have file filtering enabled:`n`n" + $Result += "| Policy Name | File Filter Enabled |`n" + $Result += "| :---------- | :------------------ |`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Name) | $($Policy.EnableFileFilter) |`n" + } + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO101' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Emails SHALL be filtered by attachment file types' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Emails SHALL be filtered by attachment file types' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO101' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO102.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO102.md new file mode 100644 index 000000000000..438d6636be83 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO102.md @@ -0,0 +1,23 @@ +Emails identified as containing malware SHALL be quarantined or dropped. + +Ensuring that emails containing malware are immediately quarantined or deleted prevents malicious content from reaching users' mailboxes. This is a critical security control that stops malware distribution at the email gateway level. + +**Remediation Action:** + +1. Navigate to Microsoft 365 Defender portal > Email & collaboration > Policies & rules > Threat policies > Anti-malware +2. Select each malware filter policy +3. Under "Protection settings": + - Set "Malware detection response" to either "Delete entire message" or "Quarantine message" +4. Or use PowerShell: +```powershell +Set-MalwareFilterPolicy -Identity "Default" -Action Quarantine +# Or +Set-MalwareFilterPolicy -Identity "Default" -Action DeleteMessage +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.10.2](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo102v1) +- [Configure anti-malware policies](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-malware-protection-configure) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO102.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO102.ps1 new file mode 100644 index 000000000000..5ced966d198e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO102.ps1 @@ -0,0 +1,58 @@ +function Invoke-CippTestCISAMSEXO102 { + <# + .SYNOPSIS + Tests MS.EXO.10.2 - Emails identified as malware SHALL be quarantined or dropped + + .DESCRIPTION + Checks if malware filter policies quarantine or delete emails with malware + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $MalwarePolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoMalwareFilterPolicy' + + if (-not $MalwarePolicies) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoMalwareFilterPolicy cache not found. Please refresh the cache for this tenant.' -Risk 'High' -Name 'Emails identified as malware SHALL be quarantined or dropped' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO102' -TenantFilter $Tenant + return + } + + $AcceptableActions = @('DeleteMessage', 'Quarantine') + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $MalwarePolicies) { + if ($Policy.Action -notin $AcceptableActions) { + $FailedPolicies.Add([PSCustomObject]@{ + 'Policy Name' = $Policy.Name + 'Current Action' = $Policy.Action + 'Expected' = 'DeleteMessage or Quarantine' + }) + } + } + + if ($FailedPolicies.Count -eq 0) { + $Result = "✅ **Pass**: All $($MalwarePolicies.Count) malware filter policy/policies quarantine or delete emails with malware." + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: $($FailedPolicies.Count) of $($MalwarePolicies.Count) malware filter policy/policies do not quarantine or delete malware:`n`n" + $Result += "| Policy Name | Current Action | Expected |`n" + $Result += "| :---------- | :------------- | :------- |`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.'Policy Name') | $($Policy.'Current Action') | $($Policy.Expected) |`n" + } + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO102' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Emails identified as malware SHALL be quarantined or dropped' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Emails identified as malware SHALL be quarantined or dropped' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO102' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO103.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO103.md new file mode 100644 index 000000000000..17f11b64670f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO103.md @@ -0,0 +1,21 @@ +Email scanning SHALL be capable of reviewing emails after delivery. + +Zero-hour Auto Purge (ZAP) provides post-delivery protection by retroactively detecting and removing malicious emails that were initially deemed safe. This is crucial because malware signatures and threat intelligence are constantly updated, and emails that were safe at delivery time may later be identified as malicious. + +**Remediation Action:** + +1. Navigate to Microsoft 365 Defender portal > Email & collaboration > Policies & rules > Threat policies > Anti-malware +2. Select each malware filter policy +3. Under "Protection settings": + - Enable "Enable zero-hour auto purge (ZAP) for malware" +4. Or use PowerShell: +```powershell +Set-MalwareFilterPolicy -Identity "Default" -ZapEnabled $true +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.10.3](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo103v1) +- [Zero-hour auto purge (ZAP) in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/zero-hour-auto-purge) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO103.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO103.ps1 new file mode 100644 index 000000000000..41f1e92f6385 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO103.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestCISAMSEXO103 { + <# + .SYNOPSIS + Tests MS.EXO.10.3 - Email scanning SHALL be capable of reviewing emails after delivery (ZAP) + + .DESCRIPTION + Checks if Zero-hour Auto Purge (ZAP) is enabled for malware protection + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $MalwarePolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoMalwareFilterPolicy' + + if (-not $MalwarePolicies) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoMalwareFilterPolicy cache not found. Please refresh the cache for this tenant.' -Risk 'High' -Name 'Email scanning SHALL be capable of reviewing emails after delivery' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO103' -TenantFilter $Tenant + return + } + + $FailedPolicies = $MalwarePolicies | Where-Object { -not $_.ZapEnabled } + + if ($FailedPolicies.Count -eq 0) { + $Result = "✅ **Pass**: All $($MalwarePolicies.Count) malware filter policy/policies have ZAP (Zero-hour Auto Purge) enabled." + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: $($FailedPolicies.Count) of $($MalwarePolicies.Count) malware filter policy/policies do not have ZAP enabled:`n`n" + $Result += "| Policy Name | ZAP Enabled |`n" + $Result += "| :---------- | :---------- |`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Name) | $($Policy.ZapEnabled) |`n" + } + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO103' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Email scanning SHALL be capable of reviewing emails after delivery' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Email scanning SHALL be capable of reviewing emails after delivery' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO103' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO11.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO11.md new file mode 100644 index 000000000000..be33a98245e3 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO11.md @@ -0,0 +1,22 @@ +Automatic forwarding to external domains SHALL be disabled. + +Disabling automatic forwarding prevents potential data exfiltration scenarios where malicious actors could set up forwarding rules to steal sensitive information. This control ensures that emails cannot be automatically forwarded outside the organization without proper oversight. + +**Remediation Action:** + +1. Navigate to Exchange Admin Center > Mail flow > Remote domains +2. For each remote domain, disable automatic forwarding: + - Select the domain + - Click Edit + - Set "Allow automatic forwarding" to Off +3. Or use PowerShell: +```powershell +Get-RemoteDomain | Set-RemoteDomain -AutoForwardEnabled $false +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.1.1](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo11v1) +- [Configure remote domain settings](https://learn.microsoft.com/exchange/mail-flow-best-practices/remote-domains/remote-domains) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO11.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO11.ps1 new file mode 100644 index 000000000000..96651f05b743 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO11.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestCISAMSEXO11 { + <# + .SYNOPSIS + Tests MS.EXO.1.1 - Automatic forwarding to external domains SHALL be disabled + + .DESCRIPTION + Checks if automatic forwarding to external domains is disabled across all remote domains + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $RemoteDomains = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoRemoteDomain' + + if (-not $RemoteDomains) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoRemoteDomain cache not found. Please refresh the cache for this tenant.' -Risk 'High' -Name 'Automatic forwarding to external domains SHALL be disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO11' -TestType 'Identity' -TenantFilter $Tenant + return + } + + $ForwardingEnabledDomains = $RemoteDomains | Where-Object { $_.AutoForwardEnabled -eq $true } + + if (($ForwardingEnabledDomains | Measure-Object).Count -eq 0) { + $Result = '✅ **Pass**: Automatic forwarding to external domains is disabled for all remote domains.' + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: $($ForwardingEnabledDomains.Count) domain(s) have automatic forwarding enabled:`n`n" + $Result += "| Domain Name | Auto Forward |`n" + $Result += "| :---------- | :----------- |`n" + foreach ($Domain in $ForwardingEnabledDomains) { + $Result += "| $($Domain.DomainName) | $($Domain.AutoForwardEnabled) |`n" + } + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO11' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Automatic forwarding to external domains SHALL be disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Automatic forwarding to external domains SHALL be disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO11' -TestType 'Identity' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO111.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO111.md new file mode 100644 index 000000000000..c4979f85630e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO111.md @@ -0,0 +1,22 @@ +Impersonation protection checks SHOULD be used. + +Impersonation protection defends against phishing attacks where attackers impersonate trusted users or domains. These checks analyze sender patterns, domain similarities, and user behavior to identify and block sophisticated impersonation attempts before they reach users. + +**Remediation Action:** + +1. Navigate to Microsoft 365 Defender portal > Email & collaboration > Policies & rules > Threat policies > Preset security policies +2. Enable either Standard or Strict preset security policy +3. Ensure policies include appropriate user and domain protection +4. Or use PowerShell: +```powershell +# Enable standard preset security policy +Enable-EOPProtectionPolicyRule -Identity "Standard Preset Security Policy" +Enable-ATPProtectionPolicyRule -Identity "Standard Preset Security Policy" +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.11.1](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo111v1) +- [Preset security policies](https://learn.microsoft.com/microsoft-365/security/office-365-security/preset-security-policies) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO111.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO111.ps1 new file mode 100644 index 000000000000..4bfd427b47d4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO111.ps1 @@ -0,0 +1,52 @@ +function Invoke-CippTestCISAMSEXO111 { + <# + .SYNOPSIS + Tests MS.EXO.11.1 - Impersonation protection checks SHOULD be used + + .DESCRIPTION + Checks if both standard and strict EOP/ATP preset security policies are enabled + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $PresetPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoPresetSecurityPolicy' + + if (-not $PresetPolicies) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoPresetSecurityPolicy cache not found. Please refresh the cache for this tenant.' -Risk 'High' -Name 'Impersonation protection checks SHOULD be used' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Email Protection' -TestId 'CISAMSEXO111' -TenantFilter $Tenant + return + } + + $StandardEOP = $PresetPolicies | Where-Object { $_.Identity -eq 'Standard Preset Security Policy' -and $_.State -eq 'Enabled' } + $StrictEOP = $PresetPolicies | Where-Object { $_.Identity -eq 'Strict Preset Security Policy' -and $_.State -eq 'Enabled' } + + $StandardATP = $PresetPolicies | Where-Object { $_.Identity -like '*Preset Security Policy*' -and $_.ImpersonationProtectionState -eq 'Enabled' } + + $EnabledPolicies = @() + if ($StandardEOP) { $EnabledPolicies += 'Standard EOP' } + if ($StrictEOP) { $EnabledPolicies += 'Strict EOP' } + if ($StandardATP) { $EnabledPolicies += "$($StandardATP.Count) ATP policy/policies with impersonation protection" } + + if ($EnabledPolicies.Count -gt 0) { + $Result = "✅ **Pass**: Preset security policies with impersonation protection are enabled:`n`n" + $Result += ($EnabledPolicies | ForEach-Object { "- $_" }) -join "`n" + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: No preset security policies with impersonation protection enabled.`n`n" + $Result += "Enable Standard or Strict preset security policies to provide impersonation protection." + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO111' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Impersonation protection checks SHOULD be used' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Email Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Impersonation protection checks SHOULD be used' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Email Protection' -TestId 'CISAMSEXO111' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO112.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO112.md new file mode 100644 index 000000000000..6ef65e55b934 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO112.md @@ -0,0 +1,26 @@ +User warnings, comparable to the user safety tips included with EOP, SHOULD be displayed. + +Safety tips provide visual warnings to users when emails contain indicators of impersonation attempts, such as similar display names, lookalike domains, or unusual character patterns. These warnings help users recognize and avoid phishing attacks. + +**Remediation Action:** + +1. Navigate to Microsoft 365 Defender portal > Email & collaboration > Policies & rules > Threat policies > Anti-phishing +2. Edit preset security policies or custom anti-phishing policies +3. Under Impersonation section, enable: + - Show user impersonation safety tip + - Show domain impersonation safety tip + - Show unusual characters impersonation safety tip +4. Or use PowerShell: +```powershell +Set-AntiPhishPolicy -Identity "Standard Preset Security Policy" ` + -EnableSimilarUsersSafetyTips $true ` + -EnableSimilarDomainsSafetyTips $true ` + -EnableUnusualCharactersSafetyTips $true +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.11.2](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo112v1) +- [Safety tips in email messages](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-protection-about#safety-tips-in-email-messages) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO112.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO112.ps1 new file mode 100644 index 000000000000..94d3c617cad5 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO112.ps1 @@ -0,0 +1,52 @@ +function Invoke-CippTestCISAMSEXO112 { + <# + .SYNOPSIS + Tests MS.EXO.11.2 - User warnings, comparable to the user safety tips included with EOP, SHOULD be displayed + + .DESCRIPTION + Checks if impersonation safety tips are enabled in preset security policies + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $PresetPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoPresetSecurityPolicy' + + if (-not $PresetPolicies) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoPresetSecurityPolicy cache not found. Please refresh the cache for this tenant.' -Risk 'High' -Name 'User warnings comparable to EOP safety tips SHOULD be displayed' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Email Protection' -TestId 'CISAMSEXO112' -TenantFilter $Tenant + return + } + + $PoliciesWithTips = $PresetPolicies | Where-Object { + ($_.EnableSimilarUsersSafetyTips -eq $true) -or + ($_.EnableSimilarDomainsSafetyTips -eq $true) -or + ($_.EnableUnusualCharactersSafetyTips -eq $true) + } + + if ($PoliciesWithTips.Count -gt 0) { + $Result = "✅ **Pass**: $($PoliciesWithTips.Count) policy/policies have impersonation safety tips enabled:`n`n" + $Result += "| Policy | Similar Users Tips | Similar Domains Tips | Unusual Characters Tips |`n" + $Result += "| :----- | :----------------- | :------------------- | :---------------------- |`n" + foreach ($Policy in $PoliciesWithTips) { + $Result += "| $($Policy.Identity) | $($Policy.EnableSimilarUsersSafetyTips) | $($Policy.EnableSimilarDomainsSafetyTips) | $($Policy.EnableUnusualCharactersSafetyTips) |`n" + } + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: No policies found with impersonation safety tips enabled.`n`n" + $Result += "Enable safety tips in preset security policies to warn users about potential impersonation." + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO112' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'User warnings comparable to EOP safety tips SHOULD be displayed' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Email Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'User warnings comparable to EOP safety tips SHOULD be displayed' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Email Protection' -TestId 'CISAMSEXO112' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO113.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO113.md new file mode 100644 index 000000000000..0a5894c4c237 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO113.md @@ -0,0 +1,24 @@ +Mailbox intelligence SHALL be enabled. + +Mailbox intelligence uses machine learning to analyze user email patterns and relationships, identifying anomalous sender behavior that may indicate impersonation attempts. This AI-powered protection adapts to each user's communication patterns for more accurate threat detection. + +**Remediation Action:** + +1. Navigate to Microsoft 365 Defender portal > Email & collaboration > Policies & rules > Threat policies > Anti-phishing +2. Edit preset security policies or custom anti-phishing policies +3. Under Impersonation section, enable: + - Enable mailbox intelligence + - Enable intelligence for impersonation protection +4. Or use PowerShell: +```powershell +Set-AntiPhishPolicy -Identity "Standard Preset Security Policy" ` + -EnableMailboxIntelligence $true ` + -EnableMailboxIntelligenceProtection $true +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.11.3](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo113v1) +- [Mailbox intelligence in anti-phishing policies](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-about#impersonation-settings-in-anti-phishing-policies-in-microsoft-defender-for-office-365) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO113.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO113.ps1 new file mode 100644 index 000000000000..97541e383c37 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO113.ps1 @@ -0,0 +1,51 @@ +function Invoke-CippTestCISAMSEXO113 { + <# + .SYNOPSIS + Tests MS.EXO.11.3 - Mailbox intelligence SHALL be enabled + + .DESCRIPTION + Checks if mailbox intelligence and impersonation protection are enabled in preset security policies + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $PresetPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoPresetSecurityPolicy' + + if (-not $PresetPolicies) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoPresetSecurityPolicy cache not found. Please refresh the cache for this tenant.' -Risk 'High' -Name 'Mailbox intelligence SHALL be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO113' -TenantFilter $Tenant + return + } + + $PoliciesWithIntelligence = $PresetPolicies | Where-Object { + ($_.EnableMailboxIntelligence -eq $true) -and + ($_.EnableMailboxIntelligenceProtection -eq $true) + } + + if ($PoliciesWithIntelligence.Count -gt 0) { + $Result = "✅ **Pass**: $($PoliciesWithIntelligence.Count) policy/policies have mailbox intelligence enabled:`n`n" + $Result += "| Policy | Mailbox Intelligence | Intelligence Protection | State |`n" + $Result += "| :----- | :------------------- | :---------------------- | :---- |`n" + foreach ($Policy in $PoliciesWithIntelligence) { + $Result += "| $($Policy.Identity) | $($Policy.EnableMailboxIntelligence) | $($Policy.EnableMailboxIntelligenceProtection) | $($Policy.State) |`n" + } + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: No policies found with mailbox intelligence enabled.`n`n" + $Result += 'Enable mailbox intelligence in preset security policies for AI-powered impersonation protection.' + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO113' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Mailbox intelligence SHALL be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Mailbox intelligence SHALL be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO113' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO121.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO121.md new file mode 100644 index 000000000000..4af85199efc5 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO121.md @@ -0,0 +1,23 @@ +Allowed sender lists SHOULD NOT be used. + +Adding senders to the tenant allow list bypasses all spam, phishing, and spoofing protection. Compromised or spoofed allowed senders can be used to deliver malicious content directly to users' inboxes without any filtering. + +**Remediation Action:** + +1. Navigate to Microsoft 365 Defender portal > Policies & rules > Threat policies > Tenant Allow/Block Lists +2. Review and remove entries from the "Allow" list under "Senders" +3. Or use PowerShell: +```powershell +# List all allowed senders +Get-TenantAllowBlockListItems -ListType Sender -Action Allow + +# Remove specific allowed sender +Remove-TenantAllowBlockListItems -ListType Sender -Ids +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.12.1](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo121v1) +- [Manage the Tenant Allow/Block List](https://learn.microsoft.com/microsoft-365/security/office-365-security/tenant-allow-block-list-about) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO121.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO121.ps1 new file mode 100644 index 000000000000..f9bb69153fa4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO121.ps1 @@ -0,0 +1,51 @@ +function Invoke-CippTestCISAMSEXO121 { + <# + .SYNOPSIS + Tests MS.EXO.12.1 - Allowed senders list SHOULD NOT be used + + .DESCRIPTION + Checks if tenant allow/block list has allowed senders configured + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $AllowBlockList = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoTenantAllowBlockList' + + if ($null -eq $AllowBlockList) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoTenantAllowBlockList cache not found. Please refresh the cache for this tenant.' -Risk 'Medium' -Name 'Allowed sender lists SHOULD NOT be used' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO121' -TenantFilter $Tenant + return + } + + $AllowedSenders = $AllowBlockList | Where-Object { $_.Action -eq 'Allow' -and $_.ListType -eq 'Sender' } + + if ($AllowedSenders.Count -eq 0) { + $Result = '✅ **Pass**: No allowed senders configured in tenant allow/block list.' + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: $($AllowedSenders.Count) allowed sender(s) configured in tenant allow/block list" + if ($AllowedSenders.Count -gt 10) { + $Result += ' (showing first 10)' + } + $Result += ":`n`n" + $Result += "| Value | Action | List Type |`n" + $Result += "| :---- | :----- | :-------- |`n" + foreach ($Sender in ($AllowedSenders | Select-Object -First 10)) { + $Result += "| $($Sender.Value) | $($Sender.Action) | $($Sender.ListType) |`n" + } + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO121' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Allowed sender lists SHOULD NOT be used' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Allowed sender lists SHOULD NOT be used' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO121' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO122.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO122.md new file mode 100644 index 000000000000..32352dc39224 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO122.md @@ -0,0 +1,22 @@ +Safe lists SHOULD NOT be enabled. + +Safe lists in Outlook bypass Exchange Online Protection (EOP) spam filtering, which can allow malicious emails from compromised accounts or domains on users' safe senders lists to reach their inboxes. This creates a security risk that attackers can exploit through social engineering. + +**Remediation Action:** + +1. Navigate to Microsoft 365 Defender portal > Email & collaboration > Policies & rules > Threat policies > Anti-spam +2. Select each anti-spam policy +3. Under "Actions": + - Disable "Enable end-user spam notifications" + - Or ensure "On" for safe lists is disabled +4. Or use PowerShell: +```powershell +Set-HostedContentFilterPolicy -Identity "Default" -EnableSafeList $false +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.12.2](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo122v1) +- [Configure anti-spam policies](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO122.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO122.ps1 new file mode 100644 index 000000000000..bd50e4688c76 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO122.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestCISAMSEXO122 { + <# + .SYNOPSIS + Tests MS.EXO.12.2 - Safe lists SHOULD NOT be enabled + + .DESCRIPTION + Checks if anti-spam policies have safe lists disabled + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $SpamPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $SpamPolicies) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoHostedContentFilterPolicy cache not found. Please refresh the cache for this tenant.' -Risk 'Medium' -Name 'Safe lists SHOULD NOT be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO122' -TenantFilter $Tenant + return + } + + $FailedPolicies = $SpamPolicies | Where-Object { $_.EnableSafeList -eq $true } + + if ($FailedPolicies.Count -eq 0) { + $Result = "✅ **Pass**: All $($SpamPolicies.Count) anti-spam policy/policies have safe lists disabled." + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: $($FailedPolicies.Count) of $($SpamPolicies.Count) anti-spam policy/policies have safe lists enabled:`n`n" + $Result += "| Policy Name | Safe List Enabled |`n" + $Result += "| :---------- | :---------------- |`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Name) | $($Policy.EnableSafeList) |`n" + } + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO122' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Safe lists SHOULD NOT be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Safe lists SHOULD NOT be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO122' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO131.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO131.md new file mode 100644 index 000000000000..26ea16f7bbb2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO131.md @@ -0,0 +1,19 @@ +Mailbox auditing SHALL be enabled. + +Mailbox auditing logs user and administrator actions in mailboxes, providing critical forensic data for security investigations and compliance requirements. This enables detection of unauthorized access and data exfiltration attempts. + +**Remediation Action:** + +1. Navigate to Microsoft Purview compliance portal > Audit +2. Ensure mailbox auditing is turned on +3. Or use PowerShell: +```powershell +Set-OrganizationConfig -AuditDisabled $false +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.13.1](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo131v1) +- [Manage mailbox auditing](https://learn.microsoft.com/purview/audit-mailboxes) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO131.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO131.ps1 new file mode 100644 index 000000000000..e3513310346d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO131.ps1 @@ -0,0 +1,44 @@ +function Invoke-CippTestCISAMSEXO131 { + <# + .SYNOPSIS + Tests MS.EXO.13.1 - Mailbox auditing SHALL be enabled + + .DESCRIPTION + Checks if mailbox auditing is enabled in Exchange Online organization config + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $OrgConfig = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoOrganizationConfig' + + if (-not $OrgConfig) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoOrganizationConfig cache not found. Please refresh the cache for this tenant.' -Risk 'High' -Name 'Mailbox auditing SHALL be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Audit & Compliance' -TestId 'CISAMSEXO131' -TenantFilter $Tenant + return + } + + $OrgConfigObject = $OrgConfig | Select-Object -First 1 + + if ($OrgConfigObject.AuditDisabled -eq $false) { + $Result = '✅ **Pass**: Mailbox auditing is enabled for the organization.' + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: Mailbox auditing is disabled for the organization.`n`n" + $Result += "**Current Setting:**`n" + $Result += "- AuditDisabled: $($OrgConfigObject.AuditDisabled)" + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO131' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Mailbox auditing SHALL be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Audit & Compliance' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Mailbox auditing SHALL be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Audit & Compliance' -TestId 'CISAMSEXO131' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO141.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO141.md new file mode 100644 index 000000000000..8b7ff1d73025 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO141.md @@ -0,0 +1,21 @@ +High confidence spam SHALL be quarantined. + +High confidence spam represents emails that Microsoft's filtering systems are very confident are spam. Quarantining these messages rather than delivering them to junk mail folders provides better protection and allows administrators to review and release legitimate emails if needed. + +**Remediation Action:** + +1. Navigate to Microsoft 365 Defender portal > Email & collaboration > Policies & rules > Threat policies > Anti-spam +2. Select each anti-spam policy +3. Under "Actions": + - Set "High confidence spam" action to "Quarantine message" +4. Or use PowerShell: +```powershell +Set-HostedContentFilterPolicy -Identity "Default" -HighConfidenceSpamAction Quarantine +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.14.1](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo141v2) +- [Configure anti-spam policies](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO141.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO141.ps1 new file mode 100644 index 000000000000..9e332811ea10 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO141.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestCISAMSEXO141 { + <# + .SYNOPSIS + Tests MS.EXO.14.1 - High confidence spam SHALL be quarantined + + .DESCRIPTION + Checks if high confidence spam action is set to Quarantine in anti-spam policies + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $SpamPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $SpamPolicies) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoHostedContentFilterPolicy cache not found. Please refresh the cache for this tenant.' -Risk 'High' -Name 'High confidence spam SHALL be quarantined' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO141' -TenantFilter $Tenant + return + } + + $FailedPolicies = $SpamPolicies | Where-Object { $_.HighConfidenceSpamAction -ne 'Quarantine' } + + if ($FailedPolicies.Count -eq 0) { + $Result = "✅ **Pass**: All $($SpamPolicies.Count) anti-spam policy/policies quarantine high confidence spam." + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: $($FailedPolicies.Count) of $($SpamPolicies.Count) anti-spam policy/policies do not quarantine high confidence spam:`n`n" + $Result += "| Policy Name | Current Action | Expected |`n" + $Result += "| :---------- | :------------- | :------- |`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.'Policy Name') | $($Policy.'Current Action') | $($Policy.Expected) |`n" + } + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO141' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'High confidence spam SHALL be quarantined' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'High confidence spam SHALL be quarantined' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO141' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO142.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO142.md new file mode 100644 index 000000000000..ec3b2ce5e871 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO142.md @@ -0,0 +1,23 @@ +Spam and high confidence spam SHALL be moved to either the junk email folder or the quarantine folder. + +Properly handling spam emails prevents users from being exposed to potentially malicious content while still allowing recovery of false positives. Moving spam to junk folders or quarantine provides a balance between security and usability. + +**Remediation Action:** + +1. Navigate to Microsoft 365 Defender portal > Email & collaboration > Policies & rules > Threat policies > Anti-spam +2. Select each anti-spam policy +3. Under "Actions": + - Set "Spam" action to "Move message to Junk Email folder" or "Quarantine message" +4. Or use PowerShell: +```powershell +Set-HostedContentFilterPolicy -Identity "Default" -SpamAction MoveToJmf +# Or +Set-HostedContentFilterPolicy -Identity "Default" -SpamAction Quarantine +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.14.2](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo142v1) +- [Configure anti-spam policies](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO142.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO142.ps1 new file mode 100644 index 000000000000..d9d2f8a2ca4e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO142.ps1 @@ -0,0 +1,58 @@ +function Invoke-CippTestCISAMSEXO142 { + <# + .SYNOPSIS + Tests MS.EXO.14.2 - Spam SHALL be moved to junk email or quarantine + + .DESCRIPTION + Checks if spam action is set to MoveToJmf or Quarantine in anti-spam policies + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $SpamPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $SpamPolicies) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoHostedContentFilterPolicy cache not found. Please refresh the cache for this tenant.' -Risk 'Medium' -Name 'Spam SHALL be moved to junk email or quarantine' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO142' -TenantFilter $Tenant + return + } + + $AcceptableActions = @('MoveToJmf', 'Quarantine') + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $SpamPolicies) { + if ($Policy.SpamAction -notin $AcceptableActions) { + $FailedPolicies.Add([PSCustomObject]@{ + 'Policy Name' = $Policy.Name + 'Current Action' = $Policy.SpamAction + 'Expected' = 'MoveToJmf or Quarantine' + }) + } + } + + if ($FailedPolicies.Count -eq 0) { + $Result = "✅ **Pass**: All $($SpamPolicies.Count) anti-spam policy/policies move spam to junk folder or quarantine." + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: $($FailedPolicies.Count) of $($SpamPolicies.Count) anti-spam policy/policies do not properly handle spam:`n`n" + $Result += "| Policy Name | Current Action | Expected |`n" + $Result += "| :---------- | :------------- | :------- |`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.'Policy Name') | $($Policy.'Current Action') | $($Policy.Expected) |`n" + } + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO142' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Spam SHALL be moved to junk email or quarantine' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Spam SHALL be moved to junk email or quarantine' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO142' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO143.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO143.md new file mode 100644 index 000000000000..4958c0a1627e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO143.md @@ -0,0 +1,22 @@ +Allowed senders and domains SHOULD NOT be added to the anti-spam filter. + +Adding senders or domains to the allowed list bypasses spam filtering, which can be exploited by attackers. Compromised accounts or spoofed emails from allowed domains will bypass security controls and reach users' inboxes unchecked. + +**Remediation Action:** + +1. Navigate to Microsoft 365 Defender portal > Email & collaboration > Policies & rules > Threat policies > Anti-spam +2. Select each anti-spam policy +3. Under "Allowed and blocked senders and domains": + - Review and remove entries from "Allowed senders" list + - Review and remove entries from "Allowed domains" list +4. Or use PowerShell: +```powershell +Set-HostedContentFilterPolicy -Identity "Default" -AllowedSenders @() -AllowedSenderDomains @() +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.14.3](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo143v1) +- [Configure allowed and blocked senders](https://learn.microsoft.com/microsoft-365/security/office-365-security/create-safe-sender-lists-in-office-365) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO143.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO143.ps1 new file mode 100644 index 000000000000..a5882bb96120 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO143.ps1 @@ -0,0 +1,61 @@ +function Invoke-CippTestCISAMSEXO143 { + <# + .SYNOPSIS + Tests MS.EXO.14.3 - Spam filter bypass SHALL be disabled + + .DESCRIPTION + Checks if anti-spam policies have empty allowed senders and domains lists + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $SpamPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $SpamPolicies) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoHostedContentFilterPolicy cache not found. Please refresh the cache for this tenant.' -Risk 'High' -Name 'Allowed senders SHOULD NOT be added to anti-spam filter' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO143' -TenantFilter $Tenant + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $SpamPolicies) { + $AllowedSenders = if ($Policy.AllowedSenders) { $Policy.AllowedSenders.Count } else { 0 } + $AllowedSenderDomains = if ($Policy.AllowedSenderDomains) { $Policy.AllowedSenderDomains.Count } else { 0 } + + if ($AllowedSenders -gt 0 -or $AllowedSenderDomains -gt 0) { + $FailedPolicies.Add([PSCustomObject]@{ + 'Policy Name' = $Policy.Name + 'Allowed Senders' = $AllowedSenders + 'Allowed Domains' = $AllowedSenderDomains + 'Issue' = 'Has allowed senders/domains that bypass spam filtering' + }) + } + } + + if ($FailedPolicies.Count -eq 0) { + $Result = "✅ **Pass**: All $($SpamPolicies.Count) anti-spam policy/policies have no spam filter bypasses configured." + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: $($FailedPolicies.Count) of $($SpamPolicies.Count) anti-spam policy/policies have spam filter bypasses configured:`n`n" + $Result += "| Policy Name | Allowed Senders | Allowed Domains | Issue |`n" + $Result += "| :---------- | :-------------- | :-------------- | :---- |`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.'Policy Name') | $($Policy.'Allowed Senders') | $($Policy.'Allowed Domains') | $($Policy.Issue) |`n" + } + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO143' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Allowed senders SHOULD NOT be added to anti-spam filter' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Allowed senders SHOULD NOT be added to anti-spam filter' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO143' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO151.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO151.md new file mode 100644 index 000000000000..5fbbde6b6bca --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO151.md @@ -0,0 +1,21 @@ +URL comparison with a block-list SHOULD be enabled. + +Safe Links provides time-of-click verification of URLs in email messages and Office documents. This protection helps prevent users from clicking on malicious links by checking URLs against a dynamically updated block-list of known malicious websites. + +**Remediation Action:** + +1. Navigate to Microsoft 365 Defender portal > Email & collaboration > Policies & rules > Threat policies > Safe Links +2. Select each Safe Links policy +3. Under "URL & click protection settings": + - Enable "On: Safe Links checks a list of known, malicious links when users click links in email" +4. Or use PowerShell: +```powershell +Set-SafeLinksPolicy -Identity "Default" -EnableSafeLinksForEmail $true +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.15.1](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo151v1) +- [Set up Safe Links policies](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-policies-configure) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO151.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO151.ps1 new file mode 100644 index 000000000000..1b63ba30f031 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO151.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestCISAMSEXO151 { + <# + .SYNOPSIS + Tests MS.EXO.15.1 - URL comparison with a block-list SHOULD be enabled + + .DESCRIPTION + Checks if Safe Links policies have URL scanning enabled + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $SafeLinksPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoSafeLinksPolicy' + + if (-not $SafeLinksPolicies) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoSafeLinksPolicy cache not found. Please refresh the cache for this tenant.' -Risk 'High' -Name 'URL comparison with block-list SHOULD be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO151' -TenantFilter $Tenant + return + } + + $FailedPolicies = $SafeLinksPolicies | Where-Object { -not $_.EnableSafeLinksForEmail } + + if ($FailedPolicies.Count -eq 0) { + $Result = "✅ **Pass**: All $($SafeLinksPolicies.Count) Safe Links policy/policies have URL comparison with block-list enabled." + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: $($FailedPolicies.Count) of $($SafeLinksPolicies.Count) Safe Links policy/policies do not have URL scanning enabled:`n`n" + $Result += "| Policy Name | Safe Links for Email |`n" + $Result += "| :---------- | :------------------- |`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Name) | $($Policy.EnableSafeLinksForEmail) |`n" + } + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO151' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'URL comparison with block-list SHOULD be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'URL comparison with block-list SHOULD be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO151' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO152.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO152.md new file mode 100644 index 000000000000..db04d60a9e24 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO152.md @@ -0,0 +1,22 @@ +Real-time suspicious URL and file-link scanning SHOULD be enabled. + +Real-time scanning checks suspicious URLs at the time of click, even if the URL wasn't initially identified as malicious. This provides additional protection against rapidly evolving threats and newly created malicious websites. + +**Remediation Action:** + +1. Navigate to Microsoft 365 Defender portal > Email & collaboration > Policies & rules > Threat policies > Safe Links +2. Select each Safe Links policy +3. Under "URL & click protection settings": + - Enable "Apply Safe Links to email messages sent within the organization" + - Enable "Apply real-time URL scanning for suspicious links and links that point to files" +4. Or use PowerShell: +```powershell +Set-SafeLinksPolicy -Identity "Default" -ScanUrls $true +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.15.2](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo152v1) +- [Set up Safe Links policies](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-policies-configure) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO152.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO152.ps1 new file mode 100644 index 000000000000..2239e1c116d5 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO152.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestCISAMSEXO152 { + <# + .SYNOPSIS + Tests MS.EXO.15.2 - Real-time suspicious URL and file-link scanning SHOULD be enabled + + .DESCRIPTION + Checks if Safe Links policies have real-time link scanning enabled + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $SafeLinksPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoSafeLinksPolicy' + + if (-not $SafeLinksPolicies) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoSafeLinksPolicy cache not found. Please refresh the cache for this tenant.' -Risk 'High' -Name 'Real-time suspicious URL scanning SHOULD be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO152' -TenantFilter $Tenant + return + } + + $FailedPolicies = $SafeLinksPolicies | Where-Object { -not $_.ScanUrls } + + if ($FailedPolicies.Count -eq 0) { + $Result = "✅ **Pass**: All $($SafeLinksPolicies.Count) Safe Links policy/policies have real-time URL scanning enabled." + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: $($FailedPolicies.Count) of $($SafeLinksPolicies.Count) Safe Links policy/policies do not have real-time URL scanning enabled:`n`n" + $Result += "| Policy Name | Scan URLs |`n" + $Result += "| :---------- | :-------- |`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Name) | $($Policy.ScanUrls) |`n" + } + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO152' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Real-time suspicious URL scanning SHOULD be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Real-time suspicious URL scanning SHOULD be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO152' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO153.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO153.md new file mode 100644 index 000000000000..f8c99f40da39 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO153.md @@ -0,0 +1,21 @@ +User click tracking SHOULD be disabled. + +Click tracking in Safe Links can collect information about which URLs users click, which may raise privacy concerns. CISA recommends disabling this feature to protect user privacy while still maintaining URL protection capabilities. + +**Remediation Action:** + +1. Navigate to Microsoft 365 Defender portal > Email & collaboration > Policies & rules > Threat policies > Safe Links +2. Select each Safe Links policy +3. Under "URL & click protection settings": + - Disable "Track user clicks" +4. Or use PowerShell: +```powershell +Set-SafeLinksPolicy -Identity "Default" -TrackUserClicks $false +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.15.3](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo153v1) +- [Set up Safe Links policies](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-policies-configure) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO153.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO153.ps1 new file mode 100644 index 000000000000..bd23744fabca --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO153.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestCISAMSEXO153 { + <# + .SYNOPSIS + Tests MS.EXO.15.3 - User click tracking SHOULD be disabled + + .DESCRIPTION + Checks if Safe Links policies have click tracking disabled for privacy + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $SafeLinksPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoSafeLinksPolicy' + + if (-not $SafeLinksPolicies) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoSafeLinksPolicy cache not found. Please refresh the cache for this tenant.' -Risk 'Medium' -Name 'User click tracking SHOULD be disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO153' -TenantFilter $Tenant + return + } + + $FailedPolicies = $SafeLinksPolicies | Where-Object { $_.TrackUserClicks -eq $true } + + if ($FailedPolicies.Count -eq 0) { + $Result = "✅ **Pass**: All $($SafeLinksPolicies.Count) Safe Links policy/policies have click tracking disabled." + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: $($FailedPolicies.Count) of $($SafeLinksPolicies.Count) Safe Links policy/policies have click tracking enabled:`n`n" + $Result += "| Policy Name | Track User Clicks |`n" + $Result += "| :---------- | :---------------- |`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Name) | $($Policy.TrackUserClicks) |`n" + } + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO153' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'User click tracking SHOULD be disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'User click tracking SHOULD be disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO153' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO171.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO171.md new file mode 100644 index 000000000000..677b8a837248 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO171.md @@ -0,0 +1,19 @@ +Microsoft Purview Audit (Standard) logging SHALL be enabled. + +Audit logging captures user and administrator activities across Microsoft 365 services, providing essential forensic data for security investigations, compliance requirements, and detecting unauthorized access or data breaches. + +**Remediation Action:** + +1. Navigate to Microsoft Purview compliance portal > Audit +2. Turn on audit log search +3. Or use PowerShell: +```powershell +Set-AdminAuditLogConfig -UnifiedAuditLogIngestionEnabled $true +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.17.1](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo171v1) +- [Turn audit log search on or off](https://learn.microsoft.com/purview/audit-log-enable-disable) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO171.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO171.ps1 new file mode 100644 index 000000000000..f4f0dfa93e3a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO171.ps1 @@ -0,0 +1,46 @@ +function Invoke-CippTestCISAMSEXO171 { + <# + .SYNOPSIS + Tests MS.EXO.17.1 - Microsoft Purview Audit (Standard) logging SHALL be enabled + + .DESCRIPTION + Checks if unified audit log ingestion is enabled + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $AuditConfig = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAdminAuditLogConfig' + + if (-not $AuditConfig) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoAdminAuditLogConfig cache not found. Please refresh the cache for this tenant.' -Risk 'High' -Name 'Microsoft Purview Audit logging SHALL be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Audit & Compliance' -TestId 'CISAMSEXO171' -TenantFilter $Tenant + return + } + + $AuditConfigObject = $AuditConfig | Select-Object -First 1 + + if ($AuditConfigObject.UnifiedAuditLogIngestionEnabled -eq $true) { + $Result = "✅ **Pass**: Microsoft Purview Audit (Standard) logging is enabled.`n`n" + $Result += "**Current Settings:**`n" + $Result += "- UnifiedAuditLogIngestionEnabled: $($AuditConfigObject.UnifiedAuditLogIngestionEnabled)" + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: Microsoft Purview Audit (Standard) logging is not enabled.`n`n" + $Result += "**Current Settings:**`n" + $Result += "- UnifiedAuditLogIngestionEnabled: $($AuditConfigObject.UnifiedAuditLogIngestionEnabled)" + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO171' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Microsoft Purview Audit logging SHALL be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Audit & Compliance' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Microsoft Purview Audit logging SHALL be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Audit & Compliance' -TestId 'CISAMSEXO171' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO173.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO173.md new file mode 100644 index 000000000000..32dcbc6e2f79 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO173.md @@ -0,0 +1,22 @@ +Audit logs SHALL be maintained for at least the minimum duration dictated by OMB M-21-31 (1 year). + +Maintaining audit logs for an adequate retention period is essential for security investigations, compliance audits, and meeting federal record-keeping requirements. A minimum of one year retention allows organizations to investigate incidents and establish historical baselines. + +**Remediation Action:** + +1. Navigate to Microsoft Purview compliance portal > Data lifecycle management > Microsoft 365 retention > Retention policies +2. Create or modify retention policy for audit logs +3. Or use PowerShell: +```powershell +# Enable admin audit logging (provides 1 year retention) +Set-AdminAuditLogConfig -AdminAuditLogEnabled $true + +# For longer retention, configure retention policies in Purview +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.17.3](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo173v1) +- [Audit log retention policies](https://learn.microsoft.com/purview/audit-log-retention-policies) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO173.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO173.ps1 new file mode 100644 index 000000000000..e42677ae6d3a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO173.ps1 @@ -0,0 +1,46 @@ +function Invoke-CippTestCISAMSEXO173 { + <# + .SYNOPSIS + Tests MS.EXO.17.3 - Audit logs SHALL be maintained for at least the minimum duration + + .DESCRIPTION + Checks if admin audit log is enabled (provides 1 year retention) + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $AuditConfig = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAdminAuditLogConfig' + + if (-not $AuditConfig) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoAdminAuditLogConfig cache not found. Please refresh the cache for this tenant.' -Risk 'Medium' -Name 'Audit logs SHALL be maintained for at least 1 year' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Audit & Compliance' -TestId 'CISAMSEXO173' -TenantFilter $Tenant + return + } + + $AuditConfigObject = $AuditConfig | Select-Object -First 1 + + if ($AuditConfigObject.AdminAuditLogEnabled -eq $true) { + $Result = "✅ **Pass**: Admin audit log is enabled (provides 1 year retention).`n`n" + $Result += "**Current Settings:**`n" + $Result += "- AdminAuditLogEnabled: $($AuditConfigObject.AdminAuditLogEnabled)" + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: Admin audit log is not enabled.`n`n" + $Result += "**Current Settings:**`n" + $Result += "- AdminAuditLogEnabled: $($AuditConfigObject.AdminAuditLogEnabled)" + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO173' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Audit logs SHALL be maintained for at least 1 year' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Audit & Compliance' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Audit logs SHALL be maintained for at least 1 year' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Audit & Compliance' -TestId 'CISAMSEXO173' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO31.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO31.md new file mode 100644 index 000000000000..4cb5dc494993 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO31.md @@ -0,0 +1,27 @@ +DKIM SHOULD be enabled for all domains. + +DomainKeys Identified Mail (DKIM) adds a digital signature to outgoing email messages, allowing receiving mail servers to verify that the email actually came from your domain and wasn't altered in transit. This helps prevent email spoofing and improves email deliverability. + +**Remediation Action:** + +1. Navigate to Microsoft 365 Defender portal > Email & collaboration > Policies & rules > Threat policies > DKIM +2. For each domain: + - Select the domain + - Click "Create DKIM keys" if not already created + - Publish the CNAME records to DNS + - Enable DKIM signing +3. Or use PowerShell: +```powershell +# Create DKIM signing configuration +New-DkimSigningConfig -DomainName "contoso.com" -Enabled $true + +# Enable existing DKIM configuration +Set-DkimSigningConfig -Identity "contoso.com" -Enabled $true +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.3.1](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo31v1) +- [Use DKIM to validate outbound email](https://learn.microsoft.com/microsoft-365/security/office-365-security/email-authentication-dkim-configure) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO31.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO31.ps1 new file mode 100644 index 000000000000..5b2af1f957d1 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO31.ps1 @@ -0,0 +1,68 @@ +function Invoke-CippTestCISAMSEXO31 { + <# + .SYNOPSIS + Tests MS.EXO.3.1 - DKIM SHOULD be enabled for all domains + + .DESCRIPTION + Checks if DKIM (DomainKeys Identified Mail) signing is enabled for all accepted domains + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $DkimConfigs = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoDkimSigningConfig' + $AcceptedDomains = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAcceptedDomains' + + if (-not $DkimConfigs -or -not $AcceptedDomains) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'Required cache (ExoDkimSigningConfig or ExoAcceptedDomains) not found. Please refresh the cache for this tenant.' -Risk 'Medium' -Name 'DKIM SHOULD be enabled for all domains' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Email Authentication' -TestId 'CISAMSEXO31' -TenantFilter $Tenant + return + } + + # Filter to non-internal accepted domains + $SendingDomains = $AcceptedDomains | Where-Object { -not $_.SendingFromDomainDisabled } + + if (($SendingDomains | Measure-Object).Count -eq 0) { + Add-CippTestResult -Status 'Passed' -ResultMarkdown '✅ **Pass**: No sending domains found to check DKIM configuration.' -Risk 'Medium' -Name 'DKIM SHOULD be enabled for all domains' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Email Authentication' -TestId 'CISAMSEXO31' -TenantFilter $Tenant + return + } + + $FailedDomains = [System.Collections.Generic.List[object]]::new() + + foreach ($Domain in $SendingDomains) { + $DkimConfig = $DkimConfigs | Where-Object { $_.Domain -eq $Domain.DomainName } + + if (-not $DkimConfig -or -not $DkimConfig.Enabled) { + $FailedDomains.Add([PSCustomObject]@{ + 'Domain' = $Domain.DomainName + 'DKIM Enabled' = if ($DkimConfig) { $DkimConfig.Enabled } else { 'Not Configured' } + 'Status' = if (-not $DkimConfig) { 'No DKIM config found' } else { 'DKIM disabled' } + }) + } + } + + if ($FailedDomains.Count -eq 0) { + $Result = "✅ **Pass**: DKIM is enabled for all $($SendingDomains.Count) sending domain(s)." + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: $($FailedDomains.Count) of $($SendingDomains.Count) domain(s) do not have DKIM properly enabled:`n`n" + $Result += "| Domain | DKIM Enabled | Status |`n" + $Result += "| :----- | :----------- | :----- |`n" + foreach ($Domain in $FailedDomains) { + $Result += "| $($Domain.Domain) | $($Domain.'DKIM Enabled') | $($Domain.Status) |`n" + } + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO31' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'DKIM SHOULD be enabled for all domains' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Email Authentication' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'DKIM SHOULD be enabled for all domains' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Email Authentication' -TestId 'CISAMSEXO31' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO51.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO51.md new file mode 100644 index 000000000000..4df1e83a5c56 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO51.md @@ -0,0 +1,23 @@ +SMTP AUTH SHALL be disabled in Exchange Online. + +SMTP AUTH is a legacy authentication protocol that doesn't support modern security features like multi-factor authentication. Disabling SMTP AUTH reduces the attack surface and forces applications to use more secure authentication methods like OAuth 2.0. + +**Remediation Action:** + +1. Navigate to Exchange Admin Center > Mail flow > SMTP AUTH +2. Disable SMTP AUTH for all users or specific users +3. Or use PowerShell to disable organization-wide: +```powershell +Set-TransportConfig -SmtpClientAuthenticationDisabled $true +``` +4. Or disable per-mailbox: +```powershell +Set-CASMailbox -Identity user@domain.com -SmtpClientAuthenticationDisabled $true +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.5.1](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo51v1) +- [Disable SMTP AUTH](https://learn.microsoft.com/exchange/clients-and-mobile-in-exchange-online/authenticated-client-smtp-submission) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO51.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO51.ps1 new file mode 100644 index 000000000000..91e6390de0a8 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO51.ps1 @@ -0,0 +1,51 @@ +function Invoke-CippTestCISAMSEXO51 { + <# + .SYNOPSIS + Tests MS.EXO.5.1 - SMTP AUTH SHALL be disabled for all users + + .DESCRIPTION + Checks if SMTP authentication is disabled in CAS Mailbox settings + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $CASMailboxes = New-CIPPDbRequest -TenantFilter $Tenant -Type 'CASMailbox' + + if (-not $CASMailboxes) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'CASMailbox cache not found. Please refresh the cache for this tenant.' -Risk 'High' -Name 'SMTP AUTH SHALL be disabled in Exchange Online' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Email Authentication' -TestId 'CISAMSEXO51' -TenantFilter $Tenant + return + } + + $FailedMailboxes = $CASMailboxes | Where-Object { $_.SmtpClientAuthenticationDisabled -eq $false } + + if ($FailedMailboxes.Count -eq 0) { + $Result = "✅ **Pass**: SMTP authentication is disabled for all $($CASMailboxes.Count) mailbox(es)." + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: $($FailedMailboxes.Count) of $($CASMailboxes.Count) mailbox(es) have SMTP authentication enabled" + if ($FailedMailboxes.Count -gt 10) { + $Result += ' (showing first 10)' + } + $Result += ":`n`n" + $Result += "| Display Name | Identity | SMTP Auth Disabled |`n" + $Result += "| :----------- | :------- | :----------------- |`n" + foreach ($Mailbox in ($FailedMailboxes | Select-Object -First 10)) { + $Result += "| $($Mailbox.DisplayName) | $($Mailbox.Identity) | $($Mailbox.SmtpClientAuthenticationDisabled) |`n" + } + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO51' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'SMTP AUTH SHALL be disabled in Exchange Online' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Email Authentication' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'SMTP AUTH SHALL be disabled in Exchange Online' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Email Authentication' -TestId 'CISAMSEXO51' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO61.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO61.md new file mode 100644 index 000000000000..94c2efba5523 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO61.md @@ -0,0 +1,20 @@ +Contact folders SHALL NOT be shared with all domains, although they MAY be shared with specific domains. + +Sharing contact folders with external domains can expose sensitive organizational information. Limiting contact sharing to specific approved domains reduces the risk of information disclosure. + +**Remediation Action:** + +1. Navigate to Exchange Admin Center > Organization > Sharing +2. Review sharing policies +3. Remove or modify policies that allow contact sharing with all domains +4. Or use PowerShell: +```powershell +Set-SharingPolicy -Identity "Default Sharing Policy" -Domains @{Remove="*:ContactsSharing"} +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.6.1](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo61v1) +- [Sharing policies in Exchange Online](https://learn.microsoft.com/exchange/sharing/sharing-policies/sharing-policies) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO61.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO61.ps1 new file mode 100644 index 000000000000..cbcdc07b90b0 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO61.ps1 @@ -0,0 +1,61 @@ +function Invoke-CippTestCISAMSEXO61 { + <# + .SYNOPSIS + Tests MS.EXO.6.1 - Contact folders SHALL NOT be shared with all domains + + .DESCRIPTION + Checks if sharing policies allow sharing contact folders with external domains + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $SharingPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoSharingPolicy' + + if (-not $SharingPolicies) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoSharingPolicy cache not found. Please refresh the cache for this tenant.' -Risk 'Medium' -Name 'Contact folders SHALL NOT be shared with all domains' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Data Protection' -TestId 'CISAMSEXO61' -TenantFilter $Tenant + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $SharingPolicies) { + if ($Policy.Enabled) { + # Check if any domain allows contact sharing (ContactsSharing capability) + $ContactSharingDomains = $Policy.Domains | Where-Object { $_ -match 'ContactsSharing' } + if ($ContactSharingDomains) { + $FailedPolicies.Add([PSCustomObject]@{ + 'Policy Name' = $Policy.Name + 'Enabled' = $Policy.Enabled + 'Issue' = 'Allows contact sharing with external domains' + }) + } + } + } + + if ($FailedPolicies.Count -eq 0) { + $Result = '✅ **Pass**: No sharing policies allow contact folder sharing with external domains.' + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: $($FailedPolicies.Count) sharing policy/policies allow contact folder sharing:`n`n" + $Result += "| Policy Name | Enabled | Issue |`n" + $Result += "| :---------- | :------ | :---- |`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.'Policy Name') | $($Policy.Enabled) | $($Policy.Issue) |`n" + } + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO61' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Contact folders SHALL NOT be shared with all domains' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Data Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Contact folders SHALL NOT be shared with all domains' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Data Protection' -TestId 'CISAMSEXO61' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO62.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO62.md new file mode 100644 index 000000000000..22e7bfad4310 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO62.md @@ -0,0 +1,24 @@ +Calendar details SHALL NOT be shared with all domains, although they MAY be shared with specific domains. + +Sharing detailed calendar information (including meeting subjects, locations, and attendees) with all external domains can expose sensitive business information. Limiting detailed calendar sharing to specific approved domains protects organizational privacy. + +**Remediation Action:** + +1. Navigate to Exchange Admin Center > Organization > Sharing +2. Review sharing policies +3. Ensure wildcard (*) domains only allow free/busy time, not detailed information +4. Or use PowerShell: +```powershell +# Allow only free/busy with all domains +Set-SharingPolicy -Identity "Default Sharing Policy" -Domains "*:CalendarSharingFreeBusySimple" + +# For specific domains, you can allow details +Set-SharingPolicy -Identity "Default Sharing Policy" -Domains @{Add="partner.com:CalendarSharingFreeBusyDetail"} +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.6.2](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo62v1) +- [Sharing policies in Exchange Online](https://learn.microsoft.com/exchange/sharing/sharing-policies/sharing-policies) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO62.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO62.ps1 new file mode 100644 index 000000000000..378995d9e126 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO62.ps1 @@ -0,0 +1,62 @@ +function Invoke-CippTestCISAMSEXO62 { + <# + .SYNOPSIS + Tests MS.EXO.6.2 - Calendar details SHALL NOT be shared with all domains + + .DESCRIPTION + Checks if sharing policies allow sharing calendar details with external domains + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $SharingPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoSharingPolicy' + + if (-not $SharingPolicies) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoSharingPolicy cache not found. Please refresh the cache for this tenant.' -Risk 'Medium' -Name 'Calendar details SHALL NOT be shared with all domains' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Data Protection' -TestId 'CISAMSEXO62' -TenantFilter $Tenant + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $SharingPolicies) { + if ($Policy.Enabled) { + # Check if wildcard domain (*) allows detailed calendar sharing + $WildcardDomains = $Policy.Domains | Where-Object { $_ -match '^\*:' -and $_ -match 'CalendarSharing(FreeBusyDetail|All)' } + if ($WildcardDomains) { + $FailedPolicies.Add([PSCustomObject]@{ + 'Policy Name' = $Policy.Name + 'Enabled' = $Policy.Enabled + 'Issue' = 'Allows detailed calendar sharing with all domains' + 'Domains' = ($WildcardDomains -join ', ') + }) + } + } + } + + if ($FailedPolicies.Count -eq 0) { + $Result = "✅ **Pass**: No sharing policies allow detailed calendar sharing with all domains." + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: $($FailedPolicies.Count) sharing policy/policies allow detailed calendar sharing with all domains:`n`n" + $Result += "| Policy Name | Enabled | Issue |`n" + $Result += "| :---------- | :------ | :---- |`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.'Policy Name') | $($Policy.Enabled) | $($Policy.Issue) |`n" + } + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO62' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Calendar details SHALL NOT be shared with all domains' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Data Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Calendar details SHALL NOT be shared with all domains' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Data Protection' -TestId 'CISAMSEXO62' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO71.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO71.md new file mode 100644 index 000000000000..1bda7cbc9a3d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO71.md @@ -0,0 +1,20 @@ +External sender warnings SHALL be implemented. + +External sender warnings help users identify emails from outside the organization, reducing the risk of phishing and social engineering attacks. This visual indicator alerts users to exercise caution when interacting with external emails. + +**Remediation Action:** + +1. Navigate to Microsoft 365 Defender portal > Email & collaboration > Policies & rules > Threat policies +2. Under "Rules", select "External sender" +3. Enable external sender warnings +4. Or use PowerShell: +```powershell +Set-ExternalInOutlook -Enabled $true +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.7.1](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo71v1) +- [External sender warnings](https://learn.microsoft.com/microsoft-365/security/office-365-security/external-email-forwarding) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO71.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO71.ps1 new file mode 100644 index 000000000000..e45af03bb0e7 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO71.ps1 @@ -0,0 +1,44 @@ +function Invoke-CippTestCISAMSEXO71 { + <# + .SYNOPSIS + Tests MS.EXO.7.1 - External sender warnings SHALL be implemented + + .DESCRIPTION + Checks if external sender warnings are enabled in Exchange Online organization config + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $OrgConfig = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoOrganizationConfig' + + if (-not $OrgConfig) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoOrganizationConfig cache not found. Please refresh the cache for this tenant.' -Risk 'Medium' -Name 'External sender warnings SHALL be implemented' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO71' -TenantFilter $Tenant + return + } + + $OrgConfigObject = $OrgConfig | Select-Object -First 1 + + if ($OrgConfigObject.ExternalInOutlook -eq $true) { + $Result = '✅ **Pass**: External sender warnings are enabled in Outlook.' + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: External sender warnings are not enabled in Outlook.`n`n" + $Result += "**Current Setting:**`n" + $Result += "- ExternalInOutlook: $($OrgConfigObject.ExternalInOutlook)" + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO71' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'External sender warnings SHALL be implemented' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'External sender warnings SHALL be implemented' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO71' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO95.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO95.md new file mode 100644 index 000000000000..1b8d550197e9 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO95.md @@ -0,0 +1,22 @@ +At a minimum, click-to-run files SHOULD be blocked (e.g., .exe, .cmd, and .vbe). + +Blocking executable file types prevents users from receiving and potentially executing malicious files through email. These file types are commonly used in malware attacks and social engineering campaigns. + +**Remediation Action:** + +1. Navigate to Microsoft 365 Defender portal > Email & collaboration > Policies & rules > Threat policies > Anti-malware +2. Select the malware filter policy to edit +3. Under "Protection settings": + - Enable "Enable the common attachments filter" + - Ensure the blocked file types include at minimum: cmd, exe, vbe +4. Or use PowerShell: +```powershell +Set-MalwareFilterPolicy -Identity "Default" -EnableFileFilter $true -FileTypes @("ace","ani","app","cab","docm","exe","jar","reg","scr","vbe","vbs","cmd","bat","com","cpl","dll","exe","hta","inf","ins","isp","js","jse","lib","lnk","mde","msc","msp","mst","pif","scr","sct","shb","sys","vb","vbe","vbs","vxd","wsc","wsf","wsh") +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.9.5](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo95v1) +- [Configure anti-malware policies](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-malware-protection-configure) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO95.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO95.ps1 new file mode 100644 index 000000000000..ebdb715ac779 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO95.ps1 @@ -0,0 +1,74 @@ +function Invoke-CippTestCISAMSEXO95 { + <# + .SYNOPSIS + Tests MS.EXO.9.5 - At a minimum, click-to-run files SHOULD be blocked + + .DESCRIPTION + Checks if malware filter policies block click-to-run executables (.exe, .cmd, .vbe) + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $MalwarePolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoMalwareFilterPolicy' + + if (-not $MalwarePolicies) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoMalwareFilterPolicy cache not found. Please refresh the cache for this tenant.' -Risk 'High' -Name 'Click-to-run files SHOULD be blocked' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO95' -TenantFilter $Tenant + return + } + + $RequiredBlockedTypes = @('cmd', 'exe', 'vbe') + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $MalwarePolicies) { + if (-not $Policy.EnableFileFilter) { + # Policy doesn't have file filtering enabled at all + $FailedPolicies.Add([PSCustomObject]@{ + 'Policy Name' = $Policy.Name + 'File Filter Enabled' = $false + 'Issue' = 'File filtering not enabled' + }) + continue + } + + # Check if required types are blocked + $BlockedTypes = $Policy.FileTypes + $MissingTypes = $RequiredBlockedTypes | Where-Object { $_ -notin $BlockedTypes } + + if ($MissingTypes) { + $FailedPolicies.Add([PSCustomObject]@{ + 'Policy Name' = $Policy.Name + 'File Filter Enabled' = $true + 'Missing Blocked Types' = ($MissingTypes -join ', ') + }) + } + } + + if ($FailedPolicies.Count -eq 0) { + $Result = '✅ **Pass**: All malware filter policies block click-to-run files (.exe, .cmd, .vbe).' + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: $($FailedPolicies.Count) malware filter policy/policies do not properly block click-to-run executables:`n`n" + $Result += "| Policy Name | File Filter Enabled | Missing Blocked Types |`n" + $Result += "| :---------- | :------------------ | :-------------------- |`n" + foreach ($Policy in $FailedPolicies) { + $fileFilterValue = if ($Policy.'File Filter Enabled') { $Policy.'File Filter Enabled' } else { $Policy.'Issue' } + $missingTypes = if ($Policy.'Missing Blocked Types') { $Policy.'Missing Blocked Types' } else { 'N/A' } + $Result += "| $($Policy.'Policy Name') | $fileFilterValue | $missingTypes |`n" + } + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO95' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Click-to-run files SHOULD be blocked' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Email Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Click-to-run files SHOULD be blocked' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO95' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/report.json b/Modules/CIPPCore/Public/Tests/CISA/report.json new file mode 100644 index 000000000000..75ac2ab1bb69 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/report.json @@ -0,0 +1,33 @@ +{ + "name": "CISA SCubaGear Tests for Exchange Online", + "description": "Security configuration assessment tests based on CISA's Secure Cloud Business Applications (SCubaGear) project for Microsoft Exchange Online. These tests validate compliance with federal security baselines.", + "version": "1.0", + "source": "https://github.com/cisagov/ScubaGear", + "category": "CISA Security Baselines", + "IdentityTests": [ + "CISAMSEXO11", + "CISAMSEXO31", + "CISAMSEXO51", + "CISAMSEXO61", + "CISAMSEXO62", + "CISAMSEXO71", + "CISAMSEXO95", + "CISAMSEXO101", + "CISAMSEXO102", + "CISAMSEXO103", + "CISAMSEXO111", + "CISAMSEXO112", + "CISAMSEXO113", + "CISAMSEXO121", + "CISAMSEXO122", + "CISAMSEXO131", + "CISAMSEXO141", + "CISAMSEXO142", + "CISAMSEXO143", + "CISAMSEXO151", + "CISAMSEXO152", + "CISAMSEXO153", + "CISAMSEXO171", + "CISAMSEXO173" + ] +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF01.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF01.md new file mode 100644 index 000000000000..2b4b263f7f43 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF01.md @@ -0,0 +1,13 @@ +# FIDO2 - State + +FIDO2 security keys should be enabled as an authentication method to provide users with the strongest, most phishing-resistant form of authentication available. FIDO2 security keys use public key cryptography and are resistant to phishing, man-in-the-middle attacks, and password database breaches. + +Enabling FIDO2 security keys is a critical step toward passwordless authentication and provides the highest level of security for protecting user accounts, particularly for administrators and high-value targets. + +**Remediation action** +- [Enable passwordless security key sign-in](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-passwordless-security-key) +- [FIDO2 security key authentication method](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-passwordless) +- [Plan a passwordless authentication deployment](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-passwordless-deployment) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF01.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF01.ps1 new file mode 100644 index 000000000000..9da4913dad9e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF01.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestEIDSCAAF01 { + <# + .SYNOPSIS + FIDO2 - State + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF01' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'FIDO2 - State' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + return + } + + $Fido2Config = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'Fido2' } + + if (-not $Fido2Config) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF01' -TestType 'Identity' -Status 'Failed' -ResultMarkdown 'FIDO2 configuration not found in Authentication Methods Policy.' -Risk 'Low' -Name 'FIDO2 - State' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + return + } + + if ($Fido2Config.state -eq 'enabled') { + $Status = 'Passed' + $Result = 'FIDO2 authentication method is enabled' + } else { + $Status = 'Failed' + $Result = @" +FIDO2 security keys should be enabled to provide strong, phishing-resistant authentication. + +**Current Configuration:** +- State: $($Fido2Config.state) + +**Recommended Configuration:** +- State: enabled + +Enabling FIDO2 provides users with a secure, passwordless authentication option. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF01' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Low' -Name 'FIDO2 - State' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF01' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'FIDO2 - State' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF02.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF02.md new file mode 100644 index 000000000000..fce0ae0868f6 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF02.md @@ -0,0 +1,13 @@ +# FIDO2 - Self-Service + +Self-service registration for FIDO2 security keys should be enabled to allow users to register their own security keys without requiring administrator intervention. This improves user experience and accelerates the adoption of passwordless authentication while maintaining security. + +Enabling self-service registration empowers users to take control of their authentication security and reduces the administrative burden of manually provisioning security keys for users. + +**Remediation action** +- [Enable passwordless security key sign-in](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-passwordless-security-key) +- [FIDO2 security key authentication method](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-passwordless) +- [Manage authentication methods](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-methods-manage) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF02.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF02.ps1 new file mode 100644 index 000000000000..e10fe6994d4d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF02.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestEIDSCAAF02 { + <# + .SYNOPSIS + FIDO2 - Self-Service + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF02' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'FIDO2 - Self-Service' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + $Fido2Config = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'Fido2' } + + if (-not $Fido2Config) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF02' -TestType 'Identity' -Status 'Failed' -ResultMarkdown 'FIDO2 configuration not found in Authentication Methods Policy.' -Risk 'Low' -Name 'FIDO2 - Self-Service' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + if ($Fido2Config.isSelfServiceRegistrationAllowed -eq $true) { + $Status = 'Passed' + $Result = 'FIDO2 self-service registration is enabled' + } else { + $Status = 'Failed' + $Result = @" +FIDO2 self-service registration should be enabled to allow users to register their own security keys. + +**Current Configuration:** +- isSelfServiceRegistrationAllowed: $($Fido2Config.isSelfServiceRegistrationAllowed) + +**Recommended Configuration:** +- isSelfServiceRegistrationAllowed: true + +Enabling self-service registration improves user experience and adoption of FIDO2 security keys. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF02' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Low' -Name 'FIDO2 - Self-Service' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF02' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'FIDO2 - Self-Service' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF03.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF03.md new file mode 100644 index 000000000000..a6747db56708 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF03.md @@ -0,0 +1,13 @@ +# FIDO2 - Attestation + +FIDO2 attestation enforcement should be configured to ensure that only security keys from trusted manufacturers can be registered. Attestation allows Microsoft Entra ID to verify the authenticity and characteristics of FIDO2 security keys during registration, helping prevent the use of compromised or counterfeit devices. + +Enforcing attestation provides an additional layer of security by ensuring that only verified, legitimate FIDO2 security keys are used for authentication in your environment. + +**Remediation action** +- [Enable passwordless security key sign-in](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-passwordless-security-key) +- [FIDO2 security key authentication method](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-passwordless) +- [Manage authentication methods](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-methods-manage) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF03.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF03.ps1 new file mode 100644 index 000000000000..64488cace6d6 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF03.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestEIDSCAAF03 { + <# + .SYNOPSIS + FIDO2 - Attestation + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF03' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'FIDO2 - Attestation' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + return + } + + $Fido2Config = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'Fido2' } + + if (-not $Fido2Config) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF03' -TestType 'Identity' -Status 'Failed' -ResultMarkdown 'FIDO2 configuration not found in Authentication Methods Policy.' -Risk 'Medium' -Name 'FIDO2 - Attestation' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + return + } + + if ($Fido2Config.isAttestationEnforced -eq $true) { + $Status = 'Passed' + $Result = 'FIDO2 attestation enforcement is enabled' + } else { + $Status = 'Failed' + $Result = @" +FIDO2 attestation should be enforced to verify the authenticity and security of FIDO2 security keys. + +**Current Configuration:** +- isAttestationEnforced: $($Fido2Config.isAttestationEnforced) + +**Recommended Configuration:** +- isAttestationEnforced: true + +Enforcing attestation ensures that only trusted and verified security keys can be registered. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF03' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'FIDO2 - Attestation' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF03' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'FIDO2 - Attestation' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF04.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF04.md new file mode 100644 index 000000000000..7e4573cba30b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF04.md @@ -0,0 +1,13 @@ +# FIDO2 - Key Restrictions + +FIDO2 key restrictions should be configured to control which security key models and manufacturers are allowed in your environment. Key restrictions help ensure that only approved, tested security keys that meet your organization's security requirements can be used for authentication. + +Organizations can use key restrictions to enforce specific security requirements such as requiring keys with certain certification levels or from approved vendors. + +**Remediation action** +- [Enable passwordless security key sign-in](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-passwordless-security-key) +- [FIDO2 security key authentication method](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-passwordless) +- [Manage FIDO2 security key restrictions](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-passwordless-security-key#key-restrictions) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF04.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF04.ps1 new file mode 100644 index 000000000000..9732628e81ff --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF04.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestEIDSCAAF04 { + <# + .SYNOPSIS + FIDO2 - Key Restrictions + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF04' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'FIDO2 - Key Restrictions' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + return + } + + $Fido2Config = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'Fido2' } + + if (-not $Fido2Config) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF04' -TestType 'Identity' -Status 'Failed' -ResultMarkdown 'FIDO2 configuration not found in Authentication Methods Policy.' -Risk 'Medium' -Name 'FIDO2 - Key Restrictions' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + return + } + + if ($Fido2Config.keyRestrictions.isEnforced -eq $true) { + $Status = 'Passed' + $Result = 'FIDO2 key restrictions are enforced' + } else { + $Status = 'Failed' + $Result = @" +FIDO2 key restrictions should be enforced to control which security keys can be registered. + +**Current Configuration:** +- keyRestrictions.isEnforced: $($Fido2Config.keyRestrictions.isEnforced) + +**Recommended Configuration:** +- keyRestrictions.isEnforced: true + +Enforcing key restrictions helps ensure only approved security keys are used in your organization. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF04' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'FIDO2 - Key Restrictions' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF04' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'FIDO2 - Key Restrictions' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF05.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF05.md new file mode 100644 index 000000000000..63735f222473 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF05.md @@ -0,0 +1,13 @@ +# FIDO2 - Restricted Keys + +FIDO2 security key restrictions should be properly configured to define which specific keys are allowed or restricted in your environment. Organizations may choose to enforce key restrictions to ensure standardization, maintain approved vendor lists, or block specific key models that don't meet security requirements. + +Properly configured key restrictions help maintain consistent security standards across your FIDO2 security key deployment. + +**Remediation action** +- [Enable passwordless security key sign-in](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-passwordless-security-key) +- [FIDO2 security key authentication method](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-passwordless) +- [Manage FIDO2 security key restrictions](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-passwordless-security-key#key-restrictions) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF05.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF05.ps1 new file mode 100644 index 000000000000..24ca89ef8203 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF05.ps1 @@ -0,0 +1,48 @@ +function Invoke-CippTestEIDSCAAF05 { + <# + .SYNOPSIS + FIDO2 - Restricted Keys + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF05' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'FIDO2 - Restricted Keys' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + return + } + + $Fido2Config = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'Fido2' } + + if (-not $Fido2Config) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF05' -TestType 'Identity' -Status 'Failed' -ResultMarkdown 'FIDO2 configuration not found in Authentication Methods Policy.' -Risk 'Medium' -Name 'FIDO2 - Restricted Keys' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + return + } + + $aaGuids = $Fido2Config.keyRestrictions.aaGuids + if ($aaGuids -and $aaGuids.Count -gt 0) { + $Status = 'Passed' + $Result = "FIDO2 key restrictions have specific AAGuids configured ($($aaGuids.Count) GUIDs)" + } else { + $Status = 'Failed' + $Result = @" +FIDO2 key restrictions should specify AAGuids to control which authenticator models can be registered. + +**Current Configuration:** +- keyRestrictions.aaGuids: Empty or not configured + +**Recommended Configuration:** +- keyRestrictions.aaGuids: Should contain one or more AAGuids + +Specifying AAGuids allows you to restrict registration to specific, approved security key models. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF05' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'FIDO2 - Restricted Keys' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF05' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'FIDO2 - Restricted Keys' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF06.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF06.md new file mode 100644 index 000000000000..a0b269b24c97 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF06.md @@ -0,0 +1,13 @@ +# FIDO2 - Specific Keys + +FIDO2 specific key configurations should be reviewed to ensure that key restrictions align with your organization's security policies. Organizations may choose to allow all FIDO2-certified keys or restrict to specific models based on security requirements, user population, or procurement standards. + +The configuration of specific key allowances or restrictions should be based on a thorough assessment of your organization's security needs and risk tolerance. + +**Remediation action** +- [Enable passwordless security key sign-in](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-passwordless-security-key) +- [FIDO2 security key authentication method](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-passwordless) +- [Manage FIDO2 security key restrictions](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-passwordless-security-key#key-restrictions) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF06.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF06.ps1 new file mode 100644 index 000000000000..b0f8c58cf1c1 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF06.ps1 @@ -0,0 +1,52 @@ +function Invoke-CippTestEIDSCAAF06 { + <# + .SYNOPSIS + FIDO2 - Specific Keys + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF06' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'FIDO2 - Specific Keys' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + return + } + + $Fido2Config = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'Fido2' } + + if (-not $Fido2Config) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF06' -TestType 'Identity' -Status 'Failed' -ResultMarkdown 'FIDO2 configuration not found in Authentication Methods Policy.' -Risk 'Medium' -Name 'FIDO2 - Specific Keys' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + return + } + + $aaGuids = $Fido2Config.keyRestrictions.aaGuids + $enforcementType = $Fido2Config.keyRestrictions.enforcementType + + if ($aaGuids -and $aaGuids.Count -gt 0 -and $enforcementType -in @('allow', 'block')) { + $Status = 'Passed' + $Result = "FIDO2 key restrictions are properly configured with enforcement type '$enforcementType' and $($aaGuids.Count) AAGuids" + } else { + $Status = 'Failed' + $Result = @" +FIDO2 key restrictions should have both AAGuids configured and a valid enforcement type (allow or block). + +**Current Configuration:** +- keyRestrictions.aaGuids: $($aaGuids.Count) GUIDs configured +- keyRestrictions.enforcementType: $enforcementType + +**Recommended Configuration:** +- keyRestrictions.aaGuids: One or more AAGuids +- keyRestrictions.enforcementType: 'allow' or 'block' + +Proper enforcement type ensures the AAGuids list is actively used to control key registration. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF06' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'FIDO2 - Specific Keys' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF06' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'FIDO2 - Specific Keys' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG01.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG01.md new file mode 100644 index 000000000000..05b98d3029e7 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG01.md @@ -0,0 +1,13 @@ +# Authentication Methods - Policy Migration + +The authentication methods policy migration should be completed to use the modern authentication methods framework in Microsoft Entra ID. The modern policy provides enhanced features, better security controls, and improved management capabilities compared to legacy multi-factor authentication settings. + +Completing the migration ensures you can take advantage of new authentication features such as FIDO2 security keys, certificate-based authentication, and other modern authentication methods that are only available in the new policy framework. + +**Remediation action** +- [Migrate to the authentication methods policy for Microsoft Entra multifactor authentication and SSPR](https://learn.microsoft.com/entra/identity/authentication/how-to-authentication-methods-manage) +- [Authentication methods in Microsoft Entra ID](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-methods) +- [Manage authentication methods](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-methods-manage) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG01.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG01.ps1 new file mode 100644 index 000000000000..63161994f895 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG01.ps1 @@ -0,0 +1,42 @@ +function Invoke-CippTestEIDSCAAG01 { + <# + .SYNOPSIS + Authentication Methods - Policy Migration + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAG01' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Authentication Methods - Policy Migration' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + $MigrationState = $AuthMethodsPolicy.policyMigrationState + + if ($MigrationState -in @('migrationComplete', '')) { + $Status = 'Passed' + $Result = "Policy migration is complete or not applicable: $MigrationState" + } else { + $Status = 'Failed' + $Result = @" +The authentication methods policy migration should be complete. + +**Current Configuration:** +- policyMigrationState: $MigrationState + +**Recommended Configuration:** +- policyMigrationState: migrationComplete or empty + +Complete the migration to use the modern authentication methods policy. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAG01' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Authentication Methods - Policy Migration' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAG01' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Authentication Methods - Policy Migration' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG02.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG02.md new file mode 100644 index 000000000000..a2412615831b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG02.md @@ -0,0 +1,13 @@ +# Authentication Methods - Report Suspicious Activity + +Users should be enabled to report suspicious multifactor authentication prompts they did not initiate. This feature allows users to report fraudulent MFA attempts directly from the Microsoft Authenticator app or via phone call, which helps detect and prevent unauthorized access attempts and credential compromise. + +When users report suspicious activity, Microsoft Entra ID can take automated actions such as blocking the user's account, requiring a password reset, or triggering security alerts for administrators to investigate potential compromises. + +**Remediation action** +- [Enable fraud alerts for Microsoft Entra multifactor authentication](https://learn.microsoft.com/entra/identity/authentication/howto-mfa-mfasettings#fraud-alert) +- [Security defaults in Microsoft Entra ID](https://learn.microsoft.com/entra/fundamentals/security-defaults) +- [What is Identity Protection in Microsoft Entra ID?](https://learn.microsoft.com/entra/id-protection/overview-identity-protection) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG02.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG02.ps1 new file mode 100644 index 000000000000..77244bc3cd59 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG02.ps1 @@ -0,0 +1,42 @@ +function Invoke-CippTestEIDSCAAG02 { + <# + .SYNOPSIS + Authentication Methods - Report Suspicious Activity + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAG02' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Authentication Methods - Report Suspicious Activity' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + $SuspiciousActivityState = $AuthMethodsPolicy.reportSuspiciousActivitySettings.state + + if ($SuspiciousActivityState -eq 'enabled') { + $Status = 'Passed' + $Result = 'Report suspicious activity is enabled' + } else { + $Status = 'Failed' + $Result = @" +Report suspicious activity should be enabled to allow users to report fraudulent MFA attempts. + +**Current Configuration:** +- reportSuspiciousActivitySettings.state: $SuspiciousActivityState + +**Recommended Configuration:** +- reportSuspiciousActivitySettings.state: enabled + +This feature helps detect and prevent unauthorized access attempts. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAG02' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Authentication Methods - Report Suspicious Activity' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAG02' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Authentication Methods - Report Suspicious Activity' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG03.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG03.md new file mode 100644 index 000000000000..0257a5905db5 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG03.md @@ -0,0 +1,13 @@ +# Authentication Methods - Suspicious Activity Target + +The report suspicious activity feature should target all users or specific groups to ensure comprehensive protection against unauthorized MFA attempts. Properly configuring which users can report suspicious activity ensures that security protections are applied consistently across your organization. + +Organizations should enable this feature for all users who use Microsoft Entra multifactor authentication to maximize the effectiveness of threat detection and response capabilities. + +**Remediation action** +- [Enable fraud alerts for Microsoft Entra multifactor authentication](https://learn.microsoft.com/entra/identity/authentication/howto-mfa-mfasettings#fraud-alert) +- [Authentication methods in Microsoft Entra ID](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-methods) +- [Manage authentication methods](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-methods-manage) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG03.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG03.ps1 new file mode 100644 index 000000000000..422f3b15eb38 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG03.ps1 @@ -0,0 +1,42 @@ +function Invoke-CippTestEIDSCAAG03 { + <# + .SYNOPSIS + Authentication Methods - Suspicious Activity Target + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAG03' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Authentication Methods - Suspicious Activity Target' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + $IncludeTargetId = $AuthMethodsPolicy.reportSuspiciousActivitySettings.includeTarget.id + + if ($IncludeTargetId -eq 'all_users') { + $Status = 'Passed' + $Result = 'Report suspicious activity is enabled for all users' + } else { + $Status = 'Failed' + $Result = @" +Report suspicious activity should be enabled for all users. + +**Current Configuration:** +- reportSuspiciousActivitySettings.includeTarget.id: $IncludeTargetId + +**Recommended Configuration:** +- reportSuspiciousActivitySettings.includeTarget.id: all_users + +All users should be able to report suspicious authentication attempts. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAG03' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Authentication Methods - Suspicious Activity Target' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAG03' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Authentication Methods - Suspicious Activity Target' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM01.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM01.md new file mode 100644 index 000000000000..75f687dea32f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM01.md @@ -0,0 +1,13 @@ +# MS Authenticator - State + +Microsoft Authenticator should be enabled as an authentication method to provide users with a secure, phishing-resistant way to verify their identity. The Microsoft Authenticator app supports passwordless phone sign-in, push notifications for MFA, and time-based one-time passwords (TOTP). + +Enabling Microsoft Authenticator is a fundamental component of a strong authentication strategy and supports your organization's journey toward passwordless authentication. + +**Remediation action** +- [Enable passwordless security key sign-in](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-passwordless-security-key) +- [Microsoft Authenticator authentication method](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-authenticator-app) +- [Plan a passwordless authentication deployment](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-passwordless-deployment) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM01.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM01.ps1 new file mode 100644 index 000000000000..2202e20fcf9e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM01.ps1 @@ -0,0 +1,32 @@ +function Invoke-CippTestEIDSCAAM01 { + <# + .SYNOPSIS + MS Authenticator - State + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM01' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'MS Authenticator - State' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + $MethodConfig = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'MicrosoftAuthenticator' } + + if ($MethodConfig.state -eq 'enabled') { + $Status = 'Passed' + $Result = 'Microsoft Authenticator authentication method is enabled.' + } else { + $Status = 'Failed' + $Result = "Microsoft Authenticator authentication method is not enabled. Current state: $($MethodConfig.state)" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM01' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'MS Authenticator - State' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM01' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'MS Authenticator - State' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM02.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM02.md new file mode 100644 index 000000000000..467cc16c7ce4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM02.md @@ -0,0 +1,13 @@ +# MS Authenticator - OTP Disabled + +Software OATH tokens (time-based one-time passwords) in Microsoft Authenticator should be disabled in favor of push notifications, which provide stronger security and better user experience. Push notifications include additional context about the authentication request and are more resistant to phishing attacks compared to OTP codes that can be phished. + +Disabling OTP while keeping push notifications enabled encourages users to adopt the more secure authentication method while maintaining strong MFA protection. + +**Remediation action** +- [Microsoft Authenticator authentication method](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-authenticator-app) +- [Authentication methods in Microsoft Entra ID](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-methods) +- [Plan a passwordless authentication deployment](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-passwordless-deployment) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM02.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM02.ps1 new file mode 100644 index 000000000000..cb55407730d7 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM02.ps1 @@ -0,0 +1,32 @@ +function Invoke-CippTestEIDSCAAM02 { + <# + .SYNOPSIS + MS Authenticator - OTP Disabled + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM02' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'MS Authenticator - OTP Disabled' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + $MethodConfig = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'MicrosoftAuthenticator' } + + if ($MethodConfig.isSoftwareOathEnabled -eq $false) { + $Status = 'Passed' + $Result = 'Microsoft Authenticator software OATH is disabled.' + } else { + $Status = 'Failed' + $Result = "Microsoft Authenticator software OATH is enabled. It should be disabled." + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM02' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'MS Authenticator - OTP Disabled' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM02' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'MS Authenticator - OTP Disabled' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM03.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM03.md new file mode 100644 index 000000000000..97cb1bfa6252 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM03.md @@ -0,0 +1,13 @@ +# MS Authenticator - Number Matching + +Number matching should be enabled for Microsoft Authenticator push notifications to provide strong protection against MFA fatigue attacks and push notification bombing. With number matching, users must enter a number displayed on their sign-in screen into the Authenticator app, preventing them from accidentally approving fraudulent authentication requests. + +This feature significantly reduces the risk of users approving MFA prompts without proper verification, which is a common technique used by attackers in credential compromise scenarios. + +**Remediation action** +- [How to use number matching in multifactor authentication (MFA) notifications](https://learn.microsoft.com/entra/identity/authentication/how-to-mfa-number-match) +- [Microsoft Authenticator authentication method](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-authenticator-app) +- [System-preferred multifactor authentication](https://learn.microsoft.com/entra/identity/authentication/concept-system-preferred-multifactor-authentication) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM03.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM03.ps1 new file mode 100644 index 000000000000..074a1bd30f77 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM03.ps1 @@ -0,0 +1,32 @@ +function Invoke-CippTestEIDSCAAM03 { + <# + .SYNOPSIS + MS Authenticator - Number Matching + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM03' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'MS Authenticator - Number Matching' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + $MethodConfig = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'MicrosoftAuthenticator' } + + if ($MethodConfig.featureSettings.numberMatchingRequiredState.state -eq 'enabled') { + $Status = 'Passed' + $Result = 'Microsoft Authenticator number matching is enabled.' + } else { + $Status = 'Failed' + $Result = "Microsoft Authenticator number matching is not enabled. Current state: $($MethodConfig.featureSettings.numberMatchingRequiredState.state)" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM03' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'MS Authenticator - Number Matching' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM03' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'MS Authenticator - Number Matching' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM04.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM04.md new file mode 100644 index 000000000000..588342c08f87 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM04.md @@ -0,0 +1,13 @@ +# MS Authenticator - Number Matching Target + +Number matching should be configured to target all users or appropriate user groups to ensure consistent security protections across your organization. Selective enablement may be appropriate during initial rollout phases, but the ultimate goal should be to enable number matching for all users performing MFA. + +Proper targeting configuration ensures that security improvements are applied consistently and that all users benefit from enhanced protection against MFA attacks. + +**Remediation action** +- [How to use number matching in multifactor authentication (MFA) notifications](https://learn.microsoft.com/entra/identity/authentication/how-to-mfa-number-match) +- [Authentication methods in Microsoft Entra ID](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-methods) +- [Manage authentication methods](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-methods-manage) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM04.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM04.ps1 new file mode 100644 index 000000000000..aad48456a2c5 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM04.ps1 @@ -0,0 +1,32 @@ +function Invoke-CippTestEIDSCAAM04 { + <# + .SYNOPSIS + MS Authenticator - Number Matching Target + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM04' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'MS Authenticator - Number Matching Target' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + $MethodConfig = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'MicrosoftAuthenticator' } + + if ($MethodConfig.featureSettings.numberMatchingRequiredState.includeTarget.id -eq 'all_users') { + $Status = 'Passed' + $Result = 'Microsoft Authenticator number matching targets all users.' + } else { + $Status = 'Failed' + $Result = "Microsoft Authenticator number matching does not target all users. Current target: $($MethodConfig.featureSettings.numberMatchingRequiredState.includeTarget.id)" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM04' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'MS Authenticator - Number Matching Target' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM04' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'MS Authenticator - Number Matching Target' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM06.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM06.md new file mode 100644 index 000000000000..c2a7016d510e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM06.md @@ -0,0 +1,13 @@ +# MS Authenticator - Show App Name + +Application name should be displayed in Microsoft Authenticator push notifications to provide additional context that helps users identify legitimate authentication requests. Showing the app name allows users to verify that the authentication request is for the expected application, reducing the risk of approving fraudulent requests. + +This additional context is part of a defense-in-depth strategy that makes it harder for attackers to trick users into approving unauthorized authentication attempts. + +**Remediation action** +- [Microsoft Authenticator authentication method](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-authenticator-app) +- [How to use additional context in Microsoft Authenticator notifications](https://learn.microsoft.com/entra/identity/authentication/how-to-mfa-additional-context) +- [Authentication methods in Microsoft Entra ID](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-methods) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM06.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM06.ps1 new file mode 100644 index 000000000000..b9ee3660893a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM06.ps1 @@ -0,0 +1,32 @@ +function Invoke-CippTestEIDSCAAM06 { + <# + .SYNOPSIS + MS Authenticator - Show App Name + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM06' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'MS Authenticator - Show App Name' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + $MethodConfig = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'MicrosoftAuthenticator' } + + if ($MethodConfig.featureSettings.displayAppInformationRequiredState.state -eq 'enabled') { + $Status = 'Passed' + $Result = 'Microsoft Authenticator app information display is enabled.' + } else { + $Status = 'Failed' + $Result = "Microsoft Authenticator app information display is not enabled. Current state: $($MethodConfig.featureSettings.displayAppInformationRequiredState.state)" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM06' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'MS Authenticator - Show App Name' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM06' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'MS Authenticator - Show App Name' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM07.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM07.md new file mode 100644 index 000000000000..9d0853f77580 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM07.md @@ -0,0 +1,13 @@ +# MS Authenticator - Show App Name Target + +Application name display should be configured to target appropriate user groups to ensure consistent security context is provided across your organization. Proper targeting ensures that all users receive additional context in their authentication prompts to help them make informed decisions about approving or denying authentication requests. + +Organizations should enable this feature for all users performing MFA to maximize security benefits. + +**Remediation action** +- [How to use additional context in Microsoft Authenticator notifications](https://learn.microsoft.com/entra/identity/authentication/how-to-mfa-additional-context) +- [Microsoft Authenticator authentication method](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-authenticator-app) +- [Manage authentication methods](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-methods-manage) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM07.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM07.ps1 new file mode 100644 index 000000000000..89ccd7d9e23b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM07.ps1 @@ -0,0 +1,32 @@ +function Invoke-CippTestEIDSCAAM07 { + <# + .SYNOPSIS + MS Authenticator - Show App Name Target + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM07' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'MS Authenticator - Show App Name Target' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + $MethodConfig = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'MicrosoftAuthenticator' } + + if ($MethodConfig.featureSettings.displayAppInformationRequiredState.includeTarget.id -eq 'all_users') { + $Status = 'Passed' + $Result = 'Microsoft Authenticator app information display targets all users.' + } else { + $Status = 'Failed' + $Result = "Microsoft Authenticator app information display does not target all users. Current target: $($MethodConfig.featureSettings.displayAppInformationRequiredState.includeTarget.id)" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM07' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'MS Authenticator - Show App Name Target' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM07' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'MS Authenticator - Show App Name Target' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM09.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM09.md new file mode 100644 index 000000000000..61680d77f924 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM09.md @@ -0,0 +1,13 @@ +# MS Authenticator - Show Location + +Geographic location information should be displayed in Microsoft Authenticator push notifications to help users identify potentially suspicious authentication requests from unexpected locations. This additional context allows users to quickly recognize when an authentication attempt is coming from a location that doesn't match their current whereabouts. + +Location information is particularly useful for detecting credential compromise when attackers attempt to authenticate from different geographic regions. + +**Remediation action** +- [How to use additional context in Microsoft Authenticator notifications](https://learn.microsoft.com/entra/identity/authentication/how-to-mfa-additional-context) +- [Microsoft Authenticator authentication method](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-authenticator-app) +- [Authentication methods in Microsoft Entra ID](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-methods) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM09.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM09.ps1 new file mode 100644 index 000000000000..5a612085f473 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM09.ps1 @@ -0,0 +1,33 @@ +function Invoke-CippTestEIDSCAAM09 { + <# + .SYNOPSIS + MS Authenticator - Show Location + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM09' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'MS Authenticator - Show Location' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + $MethodConfig = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'MicrosoftAuthenticator' } + + if ($MethodConfig.featureSettings.displayLocationInformationRequiredState.state -eq 'enabled') { + $Status = 'Passed' + $Result = 'Microsoft Authenticator location information display is enabled.' + } else { + $Status = 'Failed' + $Result = "Microsoft Authenticator location information display is not enabled. Current state: $($MethodConfig.featureSettings.displayLocationInformationRequiredState.state)" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM09' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'MS Authenticator - Show Location' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM09' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'MS Authenticator - Show Location' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } +} + diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM10.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM10.md new file mode 100644 index 000000000000..53ac29618499 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM10.md @@ -0,0 +1,13 @@ +# MS Authenticator - Show Location Target + +Geographic location display should be configured to target appropriate user groups to ensure users receive location context in their authentication prompts. Proper targeting ensures security protections are applied consistently across your organization. + +Organizations should enable location display for all users performing MFA to maximize the security benefits and help users quickly identify suspicious authentication attempts. + +**Remediation action** +- [How to use additional context in Microsoft Authenticator notifications](https://learn.microsoft.com/entra/identity/authentication/how-to-mfa-additional-context) +- [Microsoft Authenticator authentication method](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-authenticator-app) +- [Manage authentication methods](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-methods-manage) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM10.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM10.ps1 new file mode 100644 index 000000000000..cff80ac7015d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM10.ps1 @@ -0,0 +1,32 @@ +function Invoke-CippTestEIDSCAAM10 { + <# + .SYNOPSIS + MS Authenticator - Show Location Target + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM10' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'MS Authenticator - Show Location Target' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + $MethodConfig = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'MicrosoftAuthenticator' } + + if ($MethodConfig.featureSettings.displayLocationInformationRequiredState.includeTarget.id -eq 'all_users') { + $Status = 'Passed' + $Result = 'Microsoft Authenticator location information display targets all users.' + } else { + $Status = 'Failed' + $Result = "Microsoft Authenticator location information display does not target all users. Current target: $($MethodConfig.featureSettings.displayLocationInformationRequiredState.includeTarget.id)" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM10' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'MS Authenticator - Show Location Target' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM10' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'MS Authenticator - Show Location Target' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP01.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP01.md new file mode 100644 index 000000000000..5dfb019689e7 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP01.md @@ -0,0 +1,13 @@ +# Authorization Policy - Self-Service Password Reset for Admins + +Administrators should not be allowed to use self-service password reset (SSPR) for enhanced security. Admin accounts require more stringent security controls and should follow formal password reset procedures that involve additional verification steps rather than self-service options. This ensures that administrative account password resets are properly audited and controlled. + +Allowing administrators to use SSPR increases the risk of account compromise, as SSPR methods may be vulnerable to social engineering or other attacks. Administrative accounts have elevated privileges and require the highest level of security protection. + +**Remediation action** +- [Manage user settings for Microsoft Entra multifactor authentication](https://learn.microsoft.com/entra/identity/authentication/howto-mfa-userdevicesettings) +- [Plan a Microsoft Entra self-service password reset deployment](https://learn.microsoft.com/entra/identity/authentication/howto-sspr-deployment) +- [Microsoft Entra built-in roles](https://learn.microsoft.com/entra/identity/role-based-access-control/permissions-reference) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP01.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP01.ps1 new file mode 100644 index 000000000000..366d944629ca --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP01.ps1 @@ -0,0 +1,42 @@ +function Invoke-CippTestEIDSCAAP01 { + <# + .SYNOPSIS + Authorization Policy - Self-Service Password Reset for Admins + #> + param($Tenant) + + try { + $AuthorizationPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthorizationPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP01' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Authorization Policy - Self-Service Password Reset for Admins' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authorization Policy' + return + } + + $AllowedToUseSSPR = $AuthorizationPolicy.allowedToUseSSPR + + if ($AllowedToUseSSPR -eq $false) { + $Status = 'Passed' + $Result = 'Self-service password reset for administrators is disabled' + } else { + $Status = 'Failed' + $Result = @" +Self-service password reset for administrators should be disabled for enhanced security. + +**Current Configuration:** +- allowedToUseSSPR: $AllowedToUseSSPR + +**Recommended Configuration:** +- allowedToUseSSPR: false + +Administrators should follow more stringent password reset procedures rather than self-service options. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP01' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Authorization Policy - Self-Service Password Reset for Admins' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP01' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Authorization Policy - Self-Service Password Reset for Admins' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP04.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP04.md new file mode 100644 index 000000000000..2a2a26bcc33a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP04.md @@ -0,0 +1,13 @@ +# Authorization Policy - Guest Invite Restrictions + +Guest invite permissions should be restricted to administrators and designated guest inviters only to maintain proper control over external access to your Microsoft Entra ID tenant. Limiting who can invite guests helps prevent unauthorized external users from accessing organizational resources and reduces the attack surface. + +When all users can invite guests, there is increased risk of data exposure and security incidents, as employees may inadvertently grant access to malicious actors or share sensitive information with unauthorized external parties. + +**Remediation action** +- [Configure external collaboration settings](https://learn.microsoft.com/entra/external-id/external-collaboration-settings-configure) +- [Properties of a Microsoft Entra B2B collaboration user](https://learn.microsoft.com/entra/external-id/user-properties) +- [Authorization policies in Microsoft Entra ID](https://learn.microsoft.com/graph/api/resources/authorizationpolicy) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP04.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP04.ps1 new file mode 100644 index 000000000000..8d45600068b9 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP04.ps1 @@ -0,0 +1,42 @@ +function Invoke-CippTestEIDSCAAP04 { + <# + .SYNOPSIS + Authorization Policy - Guest Invite Restrictions + #> + param($Tenant) + + try { + $AuthorizationPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthorizationPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP04' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Authorization Policy - Guest Invite Restrictions' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + return + } + + $AllowInvitesFrom = $AuthorizationPolicy.allowInvitesFrom + + if ($AllowInvitesFrom -in @('adminsAndGuestInviters', 'none')) { + $Status = 'Passed' + $Result = "Guest invite restrictions are properly configured: $AllowInvitesFrom" + } else { + $Status = 'Failed' + $Result = @" +Guest invite restrictions should be set to limit who can invite guests for enhanced security. + +**Current Configuration:** +- allowInvitesFrom: $AllowInvitesFrom + +**Recommended Configuration:** +- allowInvitesFrom: adminsAndGuestInviters OR none + +Restricting guest invitations helps maintain control over external access to your tenant. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP04' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Authorization Policy - Guest Invite Restrictions' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP04' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Authorization Policy - Guest Invite Restrictions' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP05.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP05.md new file mode 100644 index 000000000000..58ff64d840a6 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP05.md @@ -0,0 +1,13 @@ +# Authorization Policy - Email-Based Subscription Sign-up + +Users should not be allowed to sign up for email-based subscriptions that may create security risks or lead to unauthorized service usage. Disabling this feature prevents users from self-provisioning trial subscriptions or services that may not comply with organizational policies or security requirements. + +Allowing unrestricted subscription sign-up can lead to shadow IT, data sprawl, and increased security risks as users may store organizational data in unapproved services. + +**Remediation action** +- [What is self-service sign-up for Microsoft Entra ID?](https://learn.microsoft.com/entra/identity/users/directory-self-service-signup) +- [Authorization policies in Microsoft Entra ID](https://learn.microsoft.com/graph/api/resources/authorizationpolicy) +- [Manage app and resource access using Microsoft Entra groups](https://learn.microsoft.com/entra/identity/users/groups-self-service-management) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP05.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP05.ps1 new file mode 100644 index 000000000000..45da15d78a26 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP05.ps1 @@ -0,0 +1,42 @@ +function Invoke-CippTestEIDSCAAP05 { + <# + .SYNOPSIS + Authorization Policy - Email-Based Subscription Sign-up + #> + param($Tenant) + + try { + $AuthorizationPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthorizationPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP05' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Authorization Policy - Email-Based Subscription Sign-up' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authorization Policy' + return + } + + $AllowedToSignUp = $AuthorizationPolicy.allowedToSignUpEmailBasedSubscriptions + + if ($AllowedToSignUp -eq $false) { + $Status = 'Passed' + $Result = 'Email-based subscription sign-up is disabled' + } else { + $Status = 'Failed' + $Result = @" +Email-based subscription sign-up should be disabled to prevent unauthorized subscriptions. + +**Current Configuration:** +- allowedToSignUpEmailBasedSubscriptions: $AllowedToSignUp + +**Recommended Configuration:** +- allowedToSignUpEmailBasedSubscriptions: false + +Disabling email-based subscriptions helps maintain control over tenant access. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP05' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Authorization Policy - Email-Based Subscription Sign-up' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP05' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Authorization Policy - Email-Based Subscription Sign-up' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP06.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP06.md new file mode 100644 index 000000000000..734390ded497 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP06.md @@ -0,0 +1,13 @@ +# Authorization Policy - Email Validation Join + +Users should not be allowed to join the tenant using email validation without proper administrative approval. This setting prevents unauthorized users from creating accounts in your tenant simply by validating an email address, which could lead to security breaches and unauthorized access. + +Requiring administrative control over tenant joins ensures that all user accounts are properly vetted and approved before gaining access to organizational resources. + +**Remediation action** +- [What is self-service sign-up for Microsoft Entra ID?](https://learn.microsoft.com/entra/identity/users/directory-self-service-signup) +- [Authorization policies in Microsoft Entra ID](https://learn.microsoft.com/graph/api/resources/authorizationpolicy) +- [Manage external access in Microsoft Entra ID](https://learn.microsoft.com/entra/external-id/external-collaboration-settings-configure) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP06.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP06.ps1 new file mode 100644 index 000000000000..ffe03f08fd4a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP06.ps1 @@ -0,0 +1,42 @@ +function Invoke-CippTestEIDSCAAP06 { + <# + .SYNOPSIS + Authorization Policy - Email Validation Join + #> + param($Tenant) + + try { + $AuthorizationPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthorizationPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP06' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Authorization Policy - Email Validation Join' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authorization Policy' + return + } + + $AllowEmailVerified = $AuthorizationPolicy.allowEmailVerifiedUsersToJoinOrganization + + if ($AllowEmailVerified -eq $false) { + $Status = 'Passed' + $Result = 'Users cannot join the tenant by email validation' + } else { + $Status = 'Failed' + $Result = @" +Email-validated users should not be allowed to join the organization to prevent unauthorized access. + +**Current Configuration:** +- allowEmailVerifiedUsersToJoinOrganization: $AllowEmailVerified + +**Recommended Configuration:** +- allowEmailVerifiedUsersToJoinOrganization: false + +Disabling this feature prevents unauthorized users from self-registering into your tenant. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP06' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Authorization Policy - Email Validation Join' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP06' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Authorization Policy - Email Validation Join' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP07.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP07.md new file mode 100644 index 000000000000..0e8db3045137 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP07.md @@ -0,0 +1,13 @@ +# Authorization Policy - Guest User Access + +Guest user access should be restricted to limit what information external users can view and interact with in your tenant. The most restrictive setting ensures that guest users can only access their own profile information and cannot enumerate other users, groups, or organizational resources. + +Unrestricted guest access increases the risk of information disclosure and reconnaissance activities by external parties who may use directory information for targeted attacks. + +**Remediation action** +- [Configure external collaboration settings](https://learn.microsoft.com/entra/external-id/external-collaboration-settings-configure) +- [Properties of a Microsoft Entra B2B collaboration user](https://learn.microsoft.com/entra/external-id/user-properties) +- [Restrict guest access permissions in Microsoft Entra ID](https://learn.microsoft.com/entra/identity/users/users-restrict-guest-permissions) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP07.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP07.ps1 new file mode 100644 index 000000000000..dfbab3fe5197 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP07.ps1 @@ -0,0 +1,43 @@ +function Invoke-CippTestEIDSCAAP07 { + <# + .SYNOPSIS + Authorization Policy - Guest User Access + #> + param($Tenant) + + try { + $AuthorizationPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthorizationPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP07' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Authorization Policy - Guest User Access' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + return + } + + $GuestUserRoleId = $AuthorizationPolicy.guestUserRoleId + $ExpectedRoleId = '2af84b1e-32c8-42b7-82bc-daa82404023b' + + if ($GuestUserRoleId -eq $ExpectedRoleId) { + $Status = 'Passed' + $Result = 'Guest user access is restricted (most restrictive)' + } else { + $Status = 'Failed' + $Result = @" +Guest user access should be set to the most restrictive level for enhanced security. + +**Current Configuration:** +- guestUserRoleId: $GuestUserRoleId + +**Recommended Configuration:** +- guestUserRoleId: $ExpectedRoleId (Most restrictive guest permissions) + +This setting limits what guest users can see and do in your directory. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP07' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Authorization Policy - Guest User Access' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP07' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Authorization Policy - Guest User Access' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP08.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP08.md new file mode 100644 index 000000000000..41f3fa9eaa81 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP08.md @@ -0,0 +1,13 @@ +# Authorization Policy - User Consent Policy + +User consent for applications should be limited to low-risk, publisher-verified applications only, or disabled entirely to prevent unauthorized data access. Unrestricted user consent allows users to grant applications access to organizational data without proper security review, potentially exposing sensitive information to malicious applications. + +Implementing a restrictive consent policy ensures that only trusted applications can access organizational resources and that high-risk permissions require administrator approval. + +**Remediation action** +- [Configure how users consent to applications](https://learn.microsoft.com/entra/identity/enterprise-apps/configure-user-consent) +- [Manage app consent policies](https://learn.microsoft.com/entra/identity/enterprise-apps/manage-app-consent-policies) +- [Grant tenant-wide admin consent to an application](https://learn.microsoft.com/entra/identity/enterprise-apps/grant-admin-consent) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP08.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP08.ps1 new file mode 100644 index 000000000000..b727af3c1ba0 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP08.ps1 @@ -0,0 +1,43 @@ +function Invoke-CippTestEIDSCAAP08 { + <# + .SYNOPSIS + Authorization Policy - User Consent Policy + #> + param($Tenant) + + try { + $AuthorizationPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthorizationPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP08' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Authorization Policy - User Consent Policy' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + return + } + + $ConsentPolicy = $AuthorizationPolicy.permissionGrantPolicyIdsAssignedToDefaultUserRole + $ExpectedPolicy = 'ManagePermissionGrantsForSelf.microsoft-user-default-low' + + if ($ConsentPolicy -contains $ExpectedPolicy) { + $Status = 'Passed' + $Result = 'User consent policy is set to low-risk permissions' + } else { + $Status = 'Failed' + $Result = @" +User consent policy should be configured to only allow consent for low-risk applications. + +**Current Configuration:** +- permissionGrantPolicyIdsAssignedToDefaultUserRole: $($ConsentPolicy -join ', ') + +**Recommended Configuration:** +- permissionGrantPolicyIdsAssignedToDefaultUserRole: $ExpectedPolicy + +This limits users to only consent to applications with low-risk permissions. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP08' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Authorization Policy - User Consent Policy' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP08' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Authorization Policy - User Consent Policy' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP09.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP09.md new file mode 100644 index 000000000000..356e7e34f6e7 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP09.md @@ -0,0 +1,13 @@ +# Authorization Policy - Consent for Risky Apps + +User consent for risky applications should be blocked to prevent users from granting dangerous permissions to untrusted applications. Risky apps may request excessive permissions or exhibit suspicious behavior that could compromise organizational security. + +Microsoft Entra ID can assess application risk based on various factors, and blocking consent for risky apps provides an additional layer of protection against malicious applications. + +**Remediation action** +- [Configure how users consent to applications](https://learn.microsoft.com/entra/identity/enterprise-apps/configure-user-consent) +- [Manage app consent policies](https://learn.microsoft.com/entra/identity/enterprise-apps/manage-app-consent-policies) +- [Configure the admin consent workflow](https://learn.microsoft.com/entra/identity/enterprise-apps/configure-admin-consent-workflow) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP09.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP09.ps1 new file mode 100644 index 000000000000..21919d35321d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP09.ps1 @@ -0,0 +1,42 @@ +function Invoke-CippTestEIDSCAAP09 { + <# + .SYNOPSIS + Authorization Policy - Consent for Risky Apps + #> + param($Tenant) + + try { + $AuthorizationPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthorizationPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP09' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Authorization Policy - Consent for Risky Apps' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + return + } + + $AllowConsentRiskyApps = $AuthorizationPolicy.allowUserConsentForRiskyApps + + if ($AllowConsentRiskyApps -eq $false) { + $Status = 'Passed' + $Result = 'User consent for risky apps is disabled' + } else { + $Status = 'Failed' + $Result = @" +User consent for risk-based apps should be disabled to prevent users from consenting to potentially malicious applications. + +**Current Configuration:** +- allowUserConsentForRiskyApps: $AllowConsentRiskyApps + +**Recommended Configuration:** +- allowUserConsentForRiskyApps: false + +Disabling this prevents users from consenting to apps identified as risky. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP09' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Authorization Policy - Consent for Risky Apps' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP09' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Authorization Policy - Consent for Risky Apps' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP10.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP10.md new file mode 100644 index 000000000000..2af59acc7c38 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP10.md @@ -0,0 +1,13 @@ +# Authorization Policy - Users Can Create Apps + +Regular users should not be allowed to register applications in Microsoft Entra ID. Application registration should be restricted to authorized administrators who can properly assess security implications and configure applications according to organizational policies. + +Allowing unrestricted app registration can lead to shadow IT, misconfigured applications, and potential security vulnerabilities as users may inadvertently create applications with excessive permissions or improper security settings. + +**Remediation action** +- [Restrict who can create applications](https://learn.microsoft.com/entra/identity/role-based-access-control/delegate-app-roles#restrict-who-can-create-applications) +- [Application and service principal objects in Microsoft Entra ID](https://learn.microsoft.com/entra/identity-platform/app-objects-and-service-principals) +- [Authorization policies in Microsoft Entra ID](https://learn.microsoft.com/graph/api/resources/authorizationpolicy) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP10.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP10.ps1 new file mode 100644 index 000000000000..1de903c42d9d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP10.ps1 @@ -0,0 +1,42 @@ +function Invoke-CippTestEIDSCAAP10 { + <# + .SYNOPSIS + Authorization Policy - Users Can Create Apps + #> + param($Tenant) + + try { + $AuthorizationPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthorizationPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP10' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Authorization Policy - Users Can Create Apps' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + return + } + + $AllowedToCreateApps = $AuthorizationPolicy.defaultUserRolePermissions.allowedToCreateApps + + if ($AllowedToCreateApps -eq $false) { + $Status = 'Passed' + $Result = 'Users cannot create application registrations' + } else { + $Status = 'Failed' + $Result = @" +Users should not be allowed to create application registrations by default to maintain control over applications. + +**Current Configuration:** +- defaultUserRolePermissions.allowedToCreateApps: $AllowedToCreateApps + +**Recommended Configuration:** +- defaultUserRolePermissions.allowedToCreateApps: false + +Only authorized users should be able to register applications in your tenant. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP10' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Authorization Policy - Users Can Create Apps' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP10' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Authorization Policy - Users Can Create Apps' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP14.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP14.md new file mode 100644 index 000000000000..0f5105117fa6 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP14.md @@ -0,0 +1,13 @@ +# Authorization Policy - Users Can Read Other Users + +Users should have the ability to read other users' basic profile information to enable collaboration and communication within the organization. However, this should be balanced with privacy and security considerations. This setting controls whether users can discover and view information about other users in the directory. + +Completely restricting user discovery may impact collaboration, while allowing full access enables normal business operations such as looking up colleagues, viewing organizational charts, and facilitating communication. + +**Remediation action** +- [Authorization policies in Microsoft Entra ID](https://learn.microsoft.com/graph/api/resources/authorizationpolicy) +- [Restrict member users default permissions](https://learn.microsoft.com/entra/fundamentals/users-default-permissions#restrict-member-users-default-permissions) +- [What are default user permissions in Microsoft Entra ID?](https://learn.microsoft.com/entra/fundamentals/users-default-permissions) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP14.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP14.ps1 new file mode 100644 index 000000000000..0e66fb8b39d4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP14.ps1 @@ -0,0 +1,42 @@ +function Invoke-CippTestEIDSCAAP14 { + <# + .SYNOPSIS + Authorization Policy - Users Can Read Other Users + #> + param($Tenant) + + try { + $AuthorizationPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthorizationPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP14' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'Authorization Policy - Users Can Read Other Users' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + return + } + + $AllowedToReadOtherUsers = $AuthorizationPolicy.defaultUserRolePermissions.allowedToReadOtherUsers + + if ($AllowedToReadOtherUsers -eq $true) { + $Status = 'Passed' + $Result = 'Users can read other users (standard behavior for collaboration)' + } else { + $Status = 'Failed' + $Result = @" +Users should be allowed to read other users' basic profile information for collaboration purposes. + +**Current Configuration:** +- defaultUserRolePermissions.allowedToReadOtherUsers: $AllowedToReadOtherUsers + +**Recommended Configuration:** +- defaultUserRolePermissions.allowedToReadOtherUsers: true + +This setting enables basic collaboration features like Teams and SharePoint. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP14' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Low' -Name 'Authorization Policy - Users Can Read Other Users' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP14' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'Authorization Policy - Users Can Read Other Users' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAS04.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAS04.md new file mode 100644 index 000000000000..fedf9dd8d1e1 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAS04.md @@ -0,0 +1,13 @@ +# SMS - No Sign-In + +SMS should not be allowed as a primary authentication method (sign-in), though it may be used for multi-factor authentication verification. SMS is vulnerable to SIM swap attacks and interception, making it unsuitable as a standalone authentication factor. Organizations should enforce stronger authentication methods for sign-in while potentially allowing SMS only as a second factor. + +This configuration prevents users from signing in with SMS alone, which provides better security than allowing SMS-based authentication while still permitting SMS as an MFA option where appropriate. + +**Remediation action** +- [Authentication methods in Microsoft Entra ID](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-methods) +- [SMS-based authentication in Microsoft Entra ID](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-phone-options) +- [Plan a passwordless authentication deployment](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-passwordless-deployment) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAS04.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAS04.ps1 new file mode 100644 index 000000000000..e40eacd00391 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAS04.ps1 @@ -0,0 +1,56 @@ +function Invoke-CippTestEIDSCAAS04 { + <# + .SYNOPSIS + SMS - No Sign-In + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAS04' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'SMS - No Sign-In' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + $SmsConfig = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'Sms' } + + if (-not $SmsConfig) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAS04' -TestType 'Identity' -Status 'Failed' -ResultMarkdown 'SMS authentication configuration not found in Authentication Methods Policy.' -Risk 'High' -Name 'SMS - No Sign-In' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + $InvalidTargets = @() + if ($SmsConfig.includeTargets) { + foreach ($target in $SmsConfig.includeTargets) { + if ($target.isUsableForSignIn -ne $false) { + $InvalidTargets += $target.id + } + } + } + + if ($InvalidTargets.Count -eq 0) { + $Status = 'Passed' + $Result = 'SMS authentication is not allowed for sign-in on any targets' + } else { + $Status = 'Failed' + $Result = @" +SMS should not be allowed for sign-in as it is vulnerable to SIM swap and interception attacks. SMS should only be used for MFA verification, not primary authentication. + +**Current Configuration:** +- Targets with sign-in enabled: $($InvalidTargets.Count) + +**Recommended Configuration:** +- All includeTargets should have isUsableForSignIn: false + +Disabling SMS for sign-in while keeping it for MFA provides better security. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAS04' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'SMS - No Sign-In' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAS04' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'SMS - No Sign-In' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAT01.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAT01.md new file mode 100644 index 000000000000..9ee13e31e76e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAT01.md @@ -0,0 +1,13 @@ +# Temp Access Pass - State + +Temporary Access Pass (TAP) should be enabled to facilitate secure onboarding of passwordless authentication methods. TAP provides a time-limited passcode that can be used once or multiple times to register strong authentication methods such as FIDO2 security keys or set up the Microsoft Authenticator app. + +Enabling TAP is particularly important for passwordless authentication rollouts, as it allows administrators to securely bootstrap users into passwordless methods without relying on traditional passwords or less secure alternatives. + +**Remediation action** +- [Enable and configure Temporary Access Pass](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-temporary-access-pass) +- [Temporary Access Pass authentication method](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-temporary-access-pass) +- [Plan a passwordless authentication deployment](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-passwordless-deployment) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAT01.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAT01.ps1 new file mode 100644 index 000000000000..4cd6c62e1388 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAT01.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestEIDSCAAT01 { + <# + .SYNOPSIS + Temp Access Pass - State + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAT01' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Temp Access Pass - State' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + $TAPConfig = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'TemporaryAccessPass' } + + if (-not $TAPConfig) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAT01' -TestType 'Identity' -Status 'Failed' -ResultMarkdown 'Temporary Access Pass configuration not found in Authentication Methods Policy.' -Risk 'Medium' -Name 'Temp Access Pass - State' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + if ($TAPConfig.state -eq 'enabled') { + $Status = 'Passed' + $Result = 'Temporary Access Pass is enabled' + } else { + $Status = 'Failed' + $Result = @" +Temporary Access Pass should be enabled to facilitate secure onboarding of passwordless authentication methods. + +**Current Configuration:** +- State: $($TAPConfig.state) + +**Recommended Configuration:** +- State: enabled + +Enabling TAP allows administrators to securely onboard users to passwordless authentication. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAT01' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Temp Access Pass - State' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAT01' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Temp Access Pass - State' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAT02.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAT02.md new file mode 100644 index 000000000000..cebafc0606cd --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAT02.md @@ -0,0 +1,13 @@ +# Temp Access Pass - One-Time + +Temporary Access Pass should be configured with appropriate usage limits. Setting TAP to one-time use provides the highest security by ensuring the passcode cannot be reused after initial authentication. However, organizations may choose to allow multiple uses based on specific use cases such as registering multiple authentication methods. + +The configuration should balance security requirements with the specific use cases for TAP in your organization, such as user onboarding workflows or authentication method recovery scenarios. + +**Remediation action** +- [Enable and configure Temporary Access Pass](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-temporary-access-pass) +- [Temporary Access Pass authentication method](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-temporary-access-pass) +- [Configure Temporary Access Pass properties](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-temporary-access-pass#configure-temporary-access-pass-settings) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAT02.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAT02.ps1 new file mode 100644 index 000000000000..0d8b91f7bb88 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAT02.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestEIDSCAAT02 { + <# + .SYNOPSIS + Temp Access Pass - One-Time + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAT02' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Temp Access Pass - One-Time' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + $TAPConfig = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'TemporaryAccessPass' } + + if (-not $TAPConfig) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAT02' -TestType 'Identity' -Status 'Failed' -ResultMarkdown 'Temporary Access Pass configuration not found in Authentication Methods Policy.' -Risk 'Medium' -Name 'Temp Access Pass - One-Time' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + if ($TAPConfig.isUsableOnce -eq $true) { + $Status = 'Passed' + $Result = 'Temporary Access Pass is configured for one-time use' + } else { + $Status = 'Failed' + $Result = @" +Temporary Access Pass should be configured for one-time use to minimize security risks. + +**Current Configuration:** +- isUsableOnce: $($TAPConfig.isUsableOnce) + +**Recommended Configuration:** +- isUsableOnce: true + +One-time use reduces the risk of TAP credential theft or misuse. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAT02' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Temp Access Pass - One-Time' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAT02' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Temp Access Pass - One-Time' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAV01.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAV01.md new file mode 100644 index 000000000000..6a462df66c70 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAV01.md @@ -0,0 +1,13 @@ +# Voice Call - Disabled + +Voice call authentication should be disabled as it is vulnerable to social engineering attacks and SIM swap attacks. Voice calls are less secure than modern authentication methods and should be replaced with more secure alternatives such as the Microsoft Authenticator app or FIDO2 security keys. + +Attackers can intercept phone calls through SIM swapping or social engineering telecom providers, making voice calls an unreliable authentication factor. Organizations should migrate users to stronger authentication methods. + +**Remediation action** +- [Authentication methods in Microsoft Entra ID](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-methods) +- [Plan a passwordless authentication deployment](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-passwordless-deployment) +- [Manage authentication methods](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-methods-manage) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAV01.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAV01.ps1 new file mode 100644 index 000000000000..3183898c4494 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAV01.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestEIDSCAAV01 { + <# + .SYNOPSIS + Voice Call - Disabled + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAV01' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Voice Call - Disabled' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + $VoiceConfig = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'Voice' } + + if (-not $VoiceConfig) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAV01' -TestType 'Identity' -Status 'Failed' -ResultMarkdown 'Voice authentication configuration not found in Authentication Methods Policy.' -Risk 'Medium' -Name 'Voice Call - Disabled' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + if ($VoiceConfig.state -eq 'disabled') { + $Status = 'Passed' + $Result = 'Voice call authentication is disabled' + } else { + $Status = 'Failed' + $Result = @" +Voice call authentication should be disabled as it is susceptible to social engineering and SIM swap attacks. + +**Current Configuration:** +- State: $($VoiceConfig.state) + +**Recommended Configuration:** +- State: disabled + +Disabling voice calls reduces the attack surface by eliminating a less secure authentication method. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAV01' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Voice Call - Disabled' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAV01' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Voice Call - Disabled' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP01.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP01.md new file mode 100644 index 000000000000..2efc4dc29552 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP01.md @@ -0,0 +1,13 @@ +# Consent Policy Settings - Group owner consent for apps accessing data + +Group owners should not be allowed to consent to applications accessing group data without proper security review. Allowing group owners to consent to apps can lead to unauthorized data access, as group owners may not fully understand the security implications of granting permissions to third-party applications. + +This setting helps prevent data leakage by ensuring that all application consent requests go through proper administrative channels where security assessments can be performed. + +**Remediation action** +- [Configure group owner consent to apps accessing group data](https://learn.microsoft.com/entra/identity/enterprise-apps/configure-user-consent-groups) +- [Manage app consent policies](https://learn.microsoft.com/entra/identity/enterprise-apps/manage-app-consent-policies) +- [Review permissions granted to applications](https://learn.microsoft.com/entra/identity/enterprise-apps/manage-application-permissions) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP01.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP01.ps1 new file mode 100644 index 000000000000..00a54c296493 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP01.ps1 @@ -0,0 +1,40 @@ +function Invoke-CippTestEIDSCACP01 { + <# + .SYNOPSIS + Consent Policy Settings - Group owner consent for apps accessing data + #> + param($Tenant) + + try { + $Settings = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Settings' + + if (-not $Settings) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACP01' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Consent Policy Settings - Group owner consent for apps accessing data' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Consent Policy' + return + } + + $SettingValue = ($Settings.values | Where-Object { $_.name -eq 'EnableGroupSpecificConsent' }).value + + if ($SettingValue -eq 'False') { + $Status = 'Passed' + $Result = 'Group owner consent for apps is disabled' + } else { + $Status = 'Failed' + $Result = @" +Group owner consent should be disabled to prevent unauthorized app permissions. + +**Current Configuration:** +- EnableGroupSpecificConsent: $SettingValue + +**Recommended Configuration:** +- EnableGroupSpecificConsent: False +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACP01' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Consent Policy Settings - Group owner consent for apps accessing data' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Consent Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACP01' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Consent Policy Settings - Group owner consent for apps accessing data' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Consent Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP03.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP03.md new file mode 100644 index 000000000000..c3cae6d32ba2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP03.md @@ -0,0 +1,13 @@ +# Consent Policy Settings - Block user consent for risky apps + +User consent should be blocked for applications identified as risky by Microsoft to prevent potential security breaches. Microsoft Entra ID assesses application risk based on various signals, including publisher verification status, permissions requested, and application behavior patterns. + +Blocking consent for risky apps provides automatic protection against potentially malicious applications while still allowing users to consent to trusted, low-risk applications (if user consent is enabled). + +**Remediation action** +- [Configure how users consent to applications](https://learn.microsoft.com/entra/identity/enterprise-apps/configure-user-consent) +- [Configure risk-based step-up consent](https://learn.microsoft.com/entra/identity/enterprise-apps/configure-risk-based-step-up-consent) +- [Manage app consent policies](https://learn.microsoft.com/entra/identity/enterprise-apps/manage-app-consent-policies) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP03.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP03.ps1 new file mode 100644 index 000000000000..4ac4ac664034 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP03.ps1 @@ -0,0 +1,40 @@ +function Invoke-CippTestEIDSCACP03 { + <# + .SYNOPSIS + Consent Policy Settings - Block user consent for risky apps + #> + param($Tenant) + + try { + $Settings = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Settings' + + if (-not $Settings) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACP03' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Consent Policy Settings - Block user consent for risky apps' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Consent Policy' + return + } + + $SettingValue = ($Settings.values | Where-Object { $_.name -eq 'BlockUserConsentForRiskyApps' }).value + + if ($SettingValue -eq 'true') { + $Status = 'Passed' + $Result = 'User consent for risky apps is blocked' + } else { + $Status = 'Failed' + $Result = @" +User consent for risky apps should be blocked to prevent security risks. + +**Current Configuration:** +- BlockUserConsentForRiskyApps: $SettingValue + +**Recommended Configuration:** +- BlockUserConsentForRiskyApps: true +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACP03' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Consent Policy Settings - Block user consent for risky apps' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Consent Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACP03' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Consent Policy Settings - Block user consent for risky apps' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Consent Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP04.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP04.md new file mode 100644 index 000000000000..8741778896b3 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP04.md @@ -0,0 +1,13 @@ +# Consent Policy Settings - Users can request admin consent + +Users should be allowed to request administrator consent when they need to use applications that require permissions beyond what they can grant themselves. This creates a formal workflow where users can submit requests for application access, and administrators can review and approve these requests after assessing security implications. + +Enabling this setting provides a balance between security and productivity, as users can request access to needed applications while ensuring proper oversight and approval processes are in place. + +**Remediation action** +- [Configure the admin consent workflow](https://learn.microsoft.com/entra/identity/enterprise-apps/configure-admin-consent-workflow) +- [Manage admin consent requests](https://learn.microsoft.com/entra/identity/enterprise-apps/manage-consent-requests) +- [Review permissions granted to applications](https://learn.microsoft.com/entra/identity/enterprise-apps/manage-application-permissions) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP04.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP04.ps1 new file mode 100644 index 000000000000..3b960e183ee1 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP04.ps1 @@ -0,0 +1,40 @@ +function Invoke-CippTestEIDSCACP04 { + <# + .SYNOPSIS + Consent Policy Settings - Users can request admin consent + #> + param($Tenant) + + try { + $Settings = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Settings' + + if (-not $Settings) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACP04' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Consent Policy Settings - Users can request admin consent' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Consent Policy' + return + } + + $SettingValue = ($Settings.values | Where-Object { $_.name -eq 'EnableAdminConsentRequests' }).value + + if ($SettingValue -eq 'true') { + $Status = 'Passed' + $Result = 'Users can request admin consent for apps' + } else { + $Status = 'Failed' + $Result = @" +Users should be able to request admin consent to enable proper app approval workflows. + +**Current Configuration:** +- EnableAdminConsentRequests: $SettingValue + +**Recommended Configuration:** +- EnableAdminConsentRequests: true +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACP04' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Consent Policy Settings - Users can request admin consent' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Consent Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACP04' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Consent Policy Settings - Users can request admin consent' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Consent Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR01.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR01.md new file mode 100644 index 000000000000..9add1126ca1c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR01.md @@ -0,0 +1,13 @@ +# Admin Consent - Enabled + +The admin consent request workflow should be enabled to provide a formal process for users to request administrator approval for applications requiring privileged permissions. This workflow creates visibility and control over application consent requests while allowing users to request access to applications they need for their work. + +Enabling the admin consent workflow provides a balance between security and productivity by ensuring administrators review high-risk permission requests while streamlining the process for users to request access to needed applications. + +**Remediation action** +- [Configure the admin consent workflow](https://learn.microsoft.com/entra/identity/enterprise-apps/configure-admin-consent-workflow) +- [Manage admin consent requests](https://learn.microsoft.com/entra/identity/enterprise-apps/manage-consent-requests) +- [Review permissions granted to applications](https://learn.microsoft.com/entra/identity/enterprise-apps/manage-application-permissions) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR01.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR01.ps1 new file mode 100644 index 000000000000..c75af77fc7d2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR01.ps1 @@ -0,0 +1,40 @@ +function Invoke-CippTestEIDSCACR01 { + <# + .SYNOPSIS + Admin Consent - Enabled + #> + param($Tenant) + + try { + $AdminConsentPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AdminConsentRequestPolicy' + + if (-not $AdminConsentPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACR01' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Admin Consent - Enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Consent Policy' + return + } + + if ($AdminConsentPolicy.isEnabled -eq $true) { + $Status = 'Passed' + $Result = 'Admin consent request workflow is enabled' + } else { + $Status = 'Failed' + $Result = @" +Admin consent request workflow should be enabled to allow users to request administrator approval for applications. + +**Current Configuration:** +- isEnabled: $($AdminConsentPolicy.isEnabled) + +**Recommended Configuration:** +- isEnabled: true + +Enabling this workflow provides a secure process for users to request access to applications requiring admin consent. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACR01' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Admin Consent - Enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Consent Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACR01' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Admin Consent - Enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Consent Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR02.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR02.md new file mode 100644 index 000000000000..e78c2db619fc --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR02.md @@ -0,0 +1,13 @@ +# Admin Consent - Notify Reviewers + +Reviewers should be notified when new admin consent requests are submitted to ensure timely review and approval of application access requests. Enabling notifications ensures that consent requests don't go unnoticed and that users receive timely responses to their access requests. + +Proper notification configuration helps maintain a responsive admin consent workflow and improves the user experience while maintaining security oversight. + +**Remediation action** +- [Configure the admin consent workflow](https://learn.microsoft.com/entra/identity/enterprise-apps/configure-admin-consent-workflow) +- [Manage admin consent requests](https://learn.microsoft.com/entra/identity/enterprise-apps/manage-consent-requests) +- [Review and take action on admin consent requests](https://learn.microsoft.com/entra/identity/enterprise-apps/manage-consent-requests#review-and-take-action-on-a-request) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR02.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR02.ps1 new file mode 100644 index 000000000000..a99a1c1d3502 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR02.ps1 @@ -0,0 +1,40 @@ +function Invoke-CippTestEIDSCACR02 { + <# + .SYNOPSIS + Admin Consent - Notify Reviewers + #> + param($Tenant) + + try { + $AdminConsentPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AdminConsentRequestPolicy' + + if (-not $AdminConsentPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACR02' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Admin Consent - Notify Reviewers' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Consent Policy' + return + } + + if ($AdminConsentPolicy.notifyReviewers -eq $true) { + $Status = 'Passed' + $Result = 'Admin consent reviewers are notified of new requests' + } else { + $Status = 'Failed' + $Result = @" +Admin consent reviewers should be notified when new consent requests are submitted. + +**Current Configuration:** +- notifyReviewers: $($AdminConsentPolicy.notifyReviewers) + +**Recommended Configuration:** +- notifyReviewers: true + +Enabling notifications ensures reviewers are promptly informed of pending consent requests. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACR02' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Admin Consent - Notify Reviewers' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Consent Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACR02' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Admin Consent - Notify Reviewers' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Consent Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR03.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR03.md new file mode 100644 index 000000000000..82e9be1b5ac4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR03.md @@ -0,0 +1,13 @@ +# Admin Consent - Reminders + +Reminders should be enabled for pending admin consent requests to ensure that reviewers don't forget to review and respond to user requests. Regular reminders help maintain an efficient consent workflow and prevent user frustration from delayed responses. + +Configuring appropriate reminder intervals ensures that consent requests are reviewed in a timely manner while not overwhelming reviewers with excessive notifications. + +**Remediation action** +- [Configure the admin consent workflow](https://learn.microsoft.com/entra/identity/enterprise-apps/configure-admin-consent-workflow) +- [Manage admin consent requests](https://learn.microsoft.com/entra/identity/enterprise-apps/manage-consent-requests) +- [Admin consent workflow settings](https://learn.microsoft.com/entra/identity/enterprise-apps/configure-admin-consent-workflow#configure-settings) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR03.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR03.ps1 new file mode 100644 index 000000000000..ead722796b07 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR03.ps1 @@ -0,0 +1,40 @@ +function Invoke-CippTestEIDSCACR03 { + <# + .SYNOPSIS + Admin Consent - Reminders + #> + param($Tenant) + + try { + $AdminConsentPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AdminConsentRequestPolicy' + + if (-not $AdminConsentPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACR03' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'Admin Consent - Reminders' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Consent Policy' + return + } + + if ($AdminConsentPolicy.remindersEnabled -eq $true) { + $Status = 'Passed' + $Result = 'Admin consent request reminders are enabled' + } else { + $Status = 'Failed' + $Result = @" +Admin consent request reminders should be enabled to ensure timely review of pending requests. + +**Current Configuration:** +- remindersEnabled: $($AdminConsentPolicy.remindersEnabled) + +**Recommended Configuration:** +- remindersEnabled: true + +Enabling reminders helps prevent consent requests from being overlooked or delayed. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACR03' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Low' -Name 'Admin Consent - Reminders' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Consent Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACR03' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'Admin Consent - Reminders' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Consent Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR04.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR04.md new file mode 100644 index 000000000000..4ad8b36ab867 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR04.md @@ -0,0 +1,13 @@ +# Admin Consent - Duration + +The admin consent request duration should be set to 30 days or less to ensure that consent requests are reviewed and processed in a timely manner. This setting controls how long consent requests remain active before they expire and need to be resubmitted. + +A shorter request duration ensures that pending consent requests don't accumulate indefinitely and encourages prompt review and decision-making by administrators. It also helps keep the consent request queue manageable and relevant. + +**Remediation action** +- [Configure the admin consent workflow](https://learn.microsoft.com/entra/identity/enterprise-apps/configure-admin-consent-workflow) +- [Manage admin consent requests](https://learn.microsoft.com/entra/identity/enterprise-apps/manage-consent-requests) +- [Admin consent workflow settings](https://learn.microsoft.com/entra/identity/enterprise-apps/configure-admin-consent-workflow#configure-settings) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR04.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR04.ps1 new file mode 100644 index 000000000000..01c555a480e4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR04.ps1 @@ -0,0 +1,42 @@ +function Invoke-CippTestEIDSCACR04 { + <# + .SYNOPSIS + Admin Consent - Duration + #> + param($Tenant) + + try { + $AdminConsentPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AdminConsentRequestPolicy' + + if (-not $AdminConsentPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACR04' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'Admin Consent - Duration' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Consent Policy' + return + } + + $RequestDuration = $AdminConsentPolicy.requestDurationInDays + + if ($RequestDuration -le 30) { + $Status = 'Passed' + $Result = "Admin consent request duration is set to $RequestDuration days (30 days or less)" + } else { + $Status = 'Failed' + $Result = @" +Admin consent request duration should be set to 30 days or less to ensure timely review. + +**Current Configuration:** +- requestDurationInDays: $RequestDuration + +**Recommended Configuration:** +- requestDurationInDays: 30 or less + +A shorter duration ensures consent requests are reviewed and processed in a timely manner. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACR04' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Low' -Name 'Admin Consent - Duration' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Consent Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACR04' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'Admin Consent - Duration' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Consent Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR01.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR01.md new file mode 100644 index 000000000000..ab5f6ccb47f9 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR01.md @@ -0,0 +1,13 @@ +# Password Rule Settings - Password Protection Mode + +Password protection mode should be set to "Enforce" to actively block weak passwords and prevent users from setting passwords that appear on Microsoft's banned password list or your custom banned password list. When set to Enforce mode, weak password attempts are blocked in real-time, providing immediate protection against easily compromised credentials. + +Enforce mode applies to both cloud-only users and users whose passwords are synchronized from on-premises Active Directory (when Azure AD Password Protection for Windows Server Active Directory is deployed). + +**Remediation action** +- [Plan and deploy on-premises Azure Active Directory Password Protection](https://learn.microsoft.com/entra/identity/authentication/howto-password-ban-bad-on-premises-deploy) +- [Eliminate bad passwords using Azure Active Directory Password Protection](https://learn.microsoft.com/entra/identity/authentication/concept-password-ban-bad) +- [Configure custom banned password list](https://learn.microsoft.com/entra/identity/authentication/tutorial-configure-custom-password-protection) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR01.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR01.ps1 new file mode 100644 index 000000000000..fb00648135f0 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR01.ps1 @@ -0,0 +1,40 @@ +function Invoke-CippTestEIDSCAPR01 { + <# + .SYNOPSIS + Password Rule Settings - Password Protection Mode + #> + param($Tenant) + + try { + $Settings = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Settings' + + if (-not $Settings) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAPR01' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Password Rule Settings - Password Protection Mode' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Password Policy' + return + } + + $SettingValue = ($Settings.values | Where-Object { $_.name -eq 'BannedPasswordCheckOnPremisesMode' }).value + + if ($SettingValue -eq 'Enforce') { + $Status = 'Passed' + $Result = 'Password protection mode is set to Enforce' + } else { + $Status = 'Failed' + $Result = @" +Password protection mode should be set to Enforce to prevent weak passwords. + +**Current Configuration:** +- BannedPasswordCheckOnPremisesMode: $SettingValue + +**Recommended Configuration:** +- BannedPasswordCheckOnPremisesMode: Enforce +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAPR01' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Password Rule Settings - Password Protection Mode' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Password Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAPR01' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Password Rule Settings - Password Protection Mode' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Password Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR02.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR02.md new file mode 100644 index 000000000000..b743add2288f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR02.md @@ -0,0 +1,13 @@ +# Password Rule Settings - Enable password protection on Windows Server Active Directory + +Password protection should be enabled for on-premises Windows Server Active Directory to extend Microsoft Entra password protection to your hybrid environment. This ensures that weak passwords are blocked not only in the cloud but also when users set or change passwords on domain controllers. + +Enabling this feature requires deploying Azure AD Password Protection DC agents on your domain controllers and proxy services in your on-premises environment. + +**Remediation action** +- [Plan and deploy on-premises Azure Active Directory Password Protection](https://learn.microsoft.com/entra/identity/authentication/howto-password-ban-bad-on-premises-deploy) +- [Enable on-premises Azure Active Directory Password Protection](https://learn.microsoft.com/entra/identity/authentication/howto-password-ban-bad-on-premises-operations) +- [Monitor on-premises Azure Active Directory Password Protection](https://learn.microsoft.com/entra/identity/authentication/howto-password-ban-bad-on-premises-monitor) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR02.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR02.ps1 new file mode 100644 index 000000000000..201e4d78f156 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR02.ps1 @@ -0,0 +1,40 @@ +function Invoke-CippTestEIDSCAPR02 { + <# + .SYNOPSIS + Password Rule Settings - Enable password protection on Windows Server Active Directory + #> + param($Tenant) + + try { + $Settings = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Settings' + + if (-not $Settings) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAPR02' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Password Rule Settings - Enable password protection on Windows Server Active Directory' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Password Policy' + return + } + + $SettingValue = ($Settings.values | Where-Object { $_.name -eq 'EnableBannedPasswordCheckOnPremises' }).value + + if ($SettingValue -eq 'True') { + $Status = 'Passed' + $Result = 'Password protection is enabled for on-premises Active Directory' + } else { + $Status = 'Failed' + $Result = @" +Password protection should be enabled for on-premises Active Directory to prevent weak passwords. + +**Current Configuration:** +- EnableBannedPasswordCheckOnPremises: $SettingValue + +**Recommended Configuration:** +- EnableBannedPasswordCheckOnPremises: True +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAPR02' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Password Rule Settings - Enable password protection on Windows Server Active Directory' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Password Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAPR02' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Password Rule Settings - Enable password protection on Windows Server Active Directory' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Password Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR03.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR03.md new file mode 100644 index 000000000000..604afe21a263 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR03.md @@ -0,0 +1,13 @@ +# Password Rule Settings - Enforce custom list + +A custom banned password list should be enforced to block passwords that are specific to your organization, such as company names, product names, locations, or industry-specific terms that attackers might use in targeted password attacks. + +The custom banned password list complements Microsoft's global banned password list to provide organization-specific protection against weak passwords. This helps prevent users from choosing passwords that may be easily guessed based on knowledge of your organization. + +**Remediation action** +- [Configure custom banned password list](https://learn.microsoft.com/entra/identity/authentication/tutorial-configure-custom-password-protection) +- [Eliminate bad passwords using Azure Active Directory Password Protection](https://learn.microsoft.com/entra/identity/authentication/concept-password-ban-bad) +- [Password policies and account restrictions in Microsoft Entra ID](https://learn.microsoft.com/entra/identity/authentication/concept-password-policies) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR03.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR03.ps1 new file mode 100644 index 000000000000..4efd63038aec --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR03.ps1 @@ -0,0 +1,40 @@ +function Invoke-CippTestEIDSCAPR03 { + <# + .SYNOPSIS + Password Rule Settings - Enforce custom list + #> + param($Tenant) + + try { + $Settings = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Settings' + + if (-not $Settings) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAPR03' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Password Rule Settings - Enforce custom list' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Password Policy' + return + } + + $SettingValue = ($Settings.values | Where-Object { $_.name -eq 'EnableBannedPasswordCheck' }).value + + if ($SettingValue -eq 'True') { + $Status = 'Passed' + $Result = 'Custom banned password list is enforced' + } else { + $Status = 'Failed' + $Result = @" +Custom banned password list should be enforced to prevent common weak passwords. + +**Current Configuration:** +- EnableBannedPasswordCheck: $SettingValue + +**Recommended Configuration:** +- EnableBannedPasswordCheck: True +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAPR03' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Password Rule Settings - Enforce custom list' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Password Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAPR03' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Password Rule Settings - Enforce custom list' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Password Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR05.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR05.md new file mode 100644 index 000000000000..96657ca3c744 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR05.md @@ -0,0 +1,13 @@ +# Password Rule Settings - Lockout duration in seconds + +Account lockout duration should be configured to automatically unlock accounts after a specified period following too many failed sign-in attempts. A recommended lockout duration is at least 60 seconds to slow down brute-force attacks while balancing user convenience and security. + +The lockout duration determines how long an account remains locked after reaching the lockout threshold, providing temporary protection against automated password guessing attacks. + +**Remediation action** +- [Microsoft Entra smart lockout](https://learn.microsoft.com/entra/identity/authentication/howto-password-smart-lockout) +- [Password policies and account restrictions in Microsoft Entra ID](https://learn.microsoft.com/entra/identity/authentication/concept-password-policies) +- [Configure smart lockout thresholds](https://learn.microsoft.com/entra/identity/authentication/howto-password-smart-lockout#configure-smart-lockout) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR05.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR05.ps1 new file mode 100644 index 000000000000..f711d13880f5 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR05.ps1 @@ -0,0 +1,40 @@ +function Invoke-CippTestEIDSCAPR05 { + <# + .SYNOPSIS + Password Rule Settings - Lockout duration in seconds + #> + param($Tenant) + + try { + $Settings = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Settings' + + if (-not $Settings) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAPR05' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Password Rule Settings - Lockout duration in seconds' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Password Policy' + return + } + + $SettingValue = ($Settings.values | Where-Object { $_.name -eq 'LockoutDurationInSeconds' }).value + + if ([int]$SettingValue -ge 60) { + $Status = 'Passed' + $Result = "Lockout duration is set to $SettingValue seconds (minimum 60 seconds required)" + } else { + $Status = 'Failed' + $Result = @" +Lockout duration should be at least 60 seconds to protect against brute force attacks. + +**Current Configuration:** +- LockoutDurationInSeconds: $SettingValue + +**Recommended Configuration:** +- LockoutDurationInSeconds: 60 or greater +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAPR05' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Password Rule Settings - Lockout duration in seconds' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Password Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAPR05' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Password Rule Settings - Lockout duration in seconds' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Password Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR06.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR06.md new file mode 100644 index 000000000000..c98e68b5d05e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR06.md @@ -0,0 +1,13 @@ +# Password Rule Settings - Lockout threshold + +A lockout threshold should be configured to prevent brute-force password attacks by temporarily locking accounts after a specified number of failed sign-in attempts. A recommended threshold is 10 or fewer failed attempts, which provides strong protection against automated attacks while minimizing the impact on legitimate users who may occasionally mistype their passwords. + +Smart lockout in Microsoft Entra ID uses machine learning to distinguish between legitimate users and attackers, helping to prevent legitimate users from being locked out while still protecting against malicious sign-in attempts. + +**Remediation action** +- [Microsoft Entra smart lockout](https://learn.microsoft.com/entra/identity/authentication/howto-password-smart-lockout) +- [Password policies and account restrictions in Microsoft Entra ID](https://learn.microsoft.com/entra/identity/authentication/concept-password-policies) +- [Protect user accounts from attacks with Microsoft Entra ID Protection](https://learn.microsoft.com/entra/id-protection/overview-identity-protection) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR06.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR06.ps1 new file mode 100644 index 000000000000..24c2de9781d5 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR06.ps1 @@ -0,0 +1,40 @@ +function Invoke-CippTestEIDSCAPR06 { + <# + .SYNOPSIS + Password Rule Settings - Lockout threshold + #> + param($Tenant) + + try { + $Settings = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Settings' + + if (-not $Settings) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAPR06' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Password Rule Settings - Lockout threshold' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Password Policy' + return + } + + $SettingValue = ($Settings.values | Where-Object { $_.name -eq 'LockoutThreshold' }).value + + if ([int]$SettingValue -le 10) { + $Status = 'Passed' + $Result = "Lockout threshold is set to $SettingValue failed attempts (maximum 10 attempts recommended)" + } else { + $Status = 'Failed' + $Result = @" +Lockout threshold should be 10 or fewer failed attempts to protect against brute force attacks. + +**Current Configuration:** +- LockoutThreshold: $SettingValue + +**Recommended Configuration:** +- LockoutThreshold: 10 or fewer +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAPR06' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Password Rule Settings - Lockout threshold' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Password Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAPR06' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Password Rule Settings - Lockout threshold' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Password Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAST08.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAST08.md new file mode 100644 index 000000000000..861f4980d274 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAST08.md @@ -0,0 +1,13 @@ +# Classification and M365 Groups - Allow Guests to become Group Owner + +Guest users should not be allowed to become group owners to maintain proper access control and governance over Microsoft 365 groups and teams. Group owners have significant privileges including the ability to add or remove members, modify group settings, and control access to group resources. + +Allowing guests to become group owners creates security risks as external users could potentially grant unauthorized access to organizational resources or modify group configurations in ways that conflict with organizational policies. + +**Remediation action** +- [Manage guest access in Microsoft 365 groups](https://learn.microsoft.com/microsoft-365/admin/create-groups/manage-guest-access-in-groups) +- [Microsoft 365 groups and Microsoft Entra access](https://learn.microsoft.com/entra/identity/users/groups-settings-v2-cmdlets) +- [Review and manage guest user access](https://learn.microsoft.com/entra/identity/users/users-restrict-guest-permissions) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAST08.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAST08.ps1 new file mode 100644 index 000000000000..eb362a64c07b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAST08.ps1 @@ -0,0 +1,40 @@ +function Invoke-CippTestEIDSCAST08 { + <# + .SYNOPSIS + Classification and M365 Groups - Allow Guests to become Group Owner + #> + param($Tenant) + + try { + $Settings = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Settings' + + if (-not $Settings) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAST08' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Classification and M365 Groups - Allow Guests to become Group Owner' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Group Settings' + return + } + + $SettingValue = ($Settings.values | Where-Object { $_.name -eq 'AllowGuestsToBeGroupOwner' }).value + + if ($SettingValue -eq 'false') { + $Status = 'Passed' + $Result = 'Guests are not allowed to become group owners' + } else { + $Status = 'Failed' + $Result = @" +Guests should not be allowed to become group owners to maintain proper access control. + +**Current Configuration:** +- AllowGuestsToBeGroupOwner: $SettingValue + +**Recommended Configuration:** +- AllowGuestsToBeGroupOwner: false +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAST08' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Classification and M365 Groups - Allow Guests to become Group Owner' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Group Settings' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAST08' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Classification and M365 Groups - Allow Guests to become Group Owner' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Group Settings' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAST09.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAST09.md new file mode 100644 index 000000000000..35def764040b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAST09.md @@ -0,0 +1,13 @@ +# Classification and M365 Groups - Allow Guests to have access to groups content + +Guest access to Microsoft 365 groups content should be carefully controlled based on your organization's collaboration requirements and security policies. When enabled, guests can access group resources including SharePoint sites, Teams content, and group files. However, organizations should assess whether guest access is necessary and implement appropriate controls. + +Consider your organization's collaboration needs and data sensitivity when configuring this setting. For highly secure environments, disabling guest access may be appropriate, while collaboration-focused organizations may enable it with proper oversight. + +**Remediation action** +- [Manage guest access in Microsoft 365 groups](https://learn.microsoft.com/microsoft-365/admin/create-groups/manage-guest-access-in-groups) +- [Configure external collaboration settings](https://learn.microsoft.com/entra/external-id/external-collaboration-settings-configure) +- [Secure collaboration with Microsoft 365](https://learn.microsoft.com/microsoft-365/solutions/setup-secure-collaboration-with-teams) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAST09.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAST09.ps1 new file mode 100644 index 000000000000..161a8ce28821 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAST09.ps1 @@ -0,0 +1,40 @@ +function Invoke-CippTestEIDSCAST09 { + <# + .SYNOPSIS + Classification and M365 Groups - Allow Guests to have access to groups content + #> + param($Tenant) + + try { + $Settings = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Settings' + + if (-not $Settings) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAST09' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'Classification and M365 Groups - Allow Guests to have access to groups content' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Group Settings' + return + } + + $SettingValue = ($Settings.values | Where-Object { $_.name -eq 'AllowGuestsToAccessGroups' }).value + + if ($SettingValue -eq 'True') { + $Status = 'Passed' + $Result = 'Guests are allowed to access groups content' + } else { + $Status = 'Failed' + $Result = @" +Guests should be allowed to access groups content for proper collaboration. + +**Current Configuration:** +- AllowGuestsToAccessGroups: $SettingValue + +**Recommended Configuration:** +- AllowGuestsToAccessGroups: True +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAST09' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Low' -Name 'Classification and M365 Groups - Allow Guests to have access to groups content' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Group Settings' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAST09' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'Classification and M365 Groups - Allow Guests to have access to groups content' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Group Settings' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/report.json b/Modules/CIPPCore/Public/Tests/EIDSCA/report.json new file mode 100644 index 000000000000..0db980ceada1 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/report.json @@ -0,0 +1,53 @@ +{ + "name": "EIDSCA (Entra ID Security Configuration Analyzer) Tests", + "description": "Comprehensive security assessment for Microsoft Entra ID (formerly Azure AD) covering authorization policies, authentication methods, consent policies, password policies, and group settings. Based on Microsoft's EIDSCA framework for identity security best practices.", + "version": "1.0", + "source": "https://github.com/maester365/maester", + "category": "Identity Security", + "IdentityTests": [ + "EIDSCAAP01", + "EIDSCAAP04", + "EIDSCAAP05", + "EIDSCAAP06", + "EIDSCAAP07", + "EIDSCAAP08", + "EIDSCAAP09", + "EIDSCAAP10", + "EIDSCAAP14", + "EIDSCACP01", + "EIDSCACP03", + "EIDSCACP04", + "EIDSCAPR01", + "EIDSCAPR02", + "EIDSCAPR03", + "EIDSCAPR05", + "EIDSCAPR06", + "EIDSCAST08", + "EIDSCAST09", + "EIDSCAAG01", + "EIDSCAAG02", + "EIDSCAAG03", + "EIDSCAAM01", + "EIDSCAAM02", + "EIDSCAAM03", + "EIDSCAAM04", + "EIDSCAAM06", + "EIDSCAAM07", + "EIDSCAAM09", + "EIDSCAAM10", + "EIDSCAAF01", + "EIDSCAAF02", + "EIDSCAAF03", + "EIDSCAAF04", + "EIDSCAAF05", + "EIDSCAAF06", + "EIDSCAAT01", + "EIDSCAAT02", + "EIDSCAAV01", + "EIDSCAAS04", + "EIDSCACR01", + "EIDSCACR02", + "EIDSCACR03", + "EIDSCACR04" + ] +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA100.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA100.md new file mode 100644 index 000000000000..55f82ea10817 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA100.md @@ -0,0 +1,8 @@ +The Bulk Complaint Level (BCL) threshold determines when bulk email messages are treated as spam. Microsoft recommends setting this value between 4 and 6 to achieve a balance between spam protection and minimizing false positives. A threshold that is too high may allow bulk spam through, while one that is too low may quarantine legitimate bulk email. + +**Remediation action** + +- [Configure anti-spam policies in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Bulk Complaint Level (BCL) in Exchange Online Protection](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-bulk-complaint-level-bcl-about) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA100.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA100.ps1 new file mode 100644 index 000000000000..b6f56d3aec61 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA100.ps1 @@ -0,0 +1,50 @@ +function Invoke-CippTestORCA100 { + <# + .SYNOPSIS + Bulk Complaint Level threshold is between 4 and 6 + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA100' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Bulk Complaint Level threshold is between 4 and 6' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + # Check if BulkThreshold is between 4 and 6 (inclusive) + if ($Policy.BulkThreshold -ge 4 -and $Policy.BulkThreshold -le 6) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-spam policies have appropriate Bulk Complaint Level (BCL) thresholds set between 4 and 6.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-spam policies have BCL thresholds outside the recommended range (4-6).`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Current BCL Threshold |`n" + $Result += "|------------|----------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.BulkThreshold) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA100' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Bulk Complaint Level threshold is between 4 and 6' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA100' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Bulk Complaint Level threshold is between 4 and 6' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA101.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA101.md new file mode 100644 index 000000000000..6b67729768d4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA101.md @@ -0,0 +1,8 @@ +Anti-spam policies should enable the option to move spam messages to the Junk Email folder rather than deleting them. This provides users with visibility into what was filtered and allows them to review messages that may have been incorrectly classified, reducing the risk of lost legitimate emails. + +**Remediation action** + +- [Configure anti-spam policies in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA101.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA101.ps1 new file mode 100644 index 000000000000..69ec5003be84 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA101.ps1 @@ -0,0 +1,56 @@ +function Invoke-CippTestORCA101 { + <# + .SYNOPSIS + Bulk is marked as spam + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA101' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'Bulk is marked as spam' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.MarkAsSpamBulkMail -eq 'On') { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-spam policies are configured to mark bulk mail as spam.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)`n`n" + if ($PassedPolicies.Count -gt 0) { + $Result += "| Policy Name | Mark As Spam Bulk Mail |`n" + $Result += "|------------|------------------------|`n" + foreach ($Policy in $PassedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.MarkAsSpamBulkMail) |`n" + } + } + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-spam policies are not configured to mark bulk mail as spam.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Mark As Spam Bulk Mail |`n" + $Result += "|------------|------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.MarkAsSpamBulkMail) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA101' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Low' -Name 'Bulk is marked as spam' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA101' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'Bulk is marked as spam' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA102.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA102.md new file mode 100644 index 000000000000..4675fbf0fed5 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA102.md @@ -0,0 +1,8 @@ +Advanced Spam Filtering (ASF) options in anti-spam policies provide additional protection against spam. However, Microsoft recommends disabling most ASF options as they can cause false positives. Standard filtering with Defender for Office 365 is more effective. Only specific ASF options should remain enabled when needed for legacy protection scenarios. + +**Remediation action** + +- [Advanced Spam Filter (ASF) settings in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-asf-settings-about) +- [Configure anti-spam policies](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA102.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA102.ps1 new file mode 100644 index 000000000000..31da61d73746 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA102.ps1 @@ -0,0 +1,74 @@ +function Invoke-CippTestORCA102 { + <# + .SYNOPSIS + Advanced Spam filter options are turned off + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA102' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'Advanced Spam filter options are turned off' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + $ASFSettings = @( + $Policy.IncreaseScoreWithImageLinks, + $Policy.IncreaseScoreWithNumericIps, + $Policy.IncreaseScoreWithRedirectToOtherPort, + $Policy.IncreaseScoreWithBizOrInfoUrls, + $Policy.MarkAsSpamEmptyMessages, + $Policy.MarkAsSpamJavaScriptInHtml, + $Policy.MarkAsSpamFramesInHtml, + $Policy.MarkAsSpamObjectTagsInHtml, + $Policy.MarkAsSpamEmbedTagsInHtml, + $Policy.MarkAsSpamFormTagsInHtml, + $Policy.MarkAsSpamWebBugsInHtml, + $Policy.MarkAsSpamSensitiveWordList, + $Policy.MarkAsSpamFromAddressAuthFail, + $Policy.MarkAsSpamNdrBackscatter, + $Policy.MarkAsSpamSpfRecordHardFail + ) + + $EnabledASF = $ASFSettings | Where-Object { $_ -eq 'On' } + + if ($EnabledASF.Count -eq 0) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-spam policies have Advanced Spam Filter (ASF) options turned off.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-spam policies have Advanced Spam Filter (ASF) options enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Enabled ASF Options |`n" + $Result += "|------------|---------------------|`n" + foreach ($Policy in $FailedPolicies) { + $EnabledOptions = [System.Collections.Generic.List[string]]::new() + if ($Policy.IncreaseScoreWithImageLinks -eq 'On') { $EnabledOptions.Add('ImageLinks') | Out-Null } + if ($Policy.IncreaseScoreWithNumericIps -eq 'On') { $EnabledOptions.Add('NumericIPs') | Out-Null } + if ($Policy.MarkAsSpamEmptyMessages -eq 'On') { $EnabledOptions.Add('EmptyMessages') | Out-Null } + if ($Policy.MarkAsSpamJavaScriptInHtml -eq 'On') { $EnabledOptions.Add('JavaScript') | Out-Null } + $Result += "| $($Policy.Identity) | $($EnabledOptions -join ', ') |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA102' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Low' -Name 'Advanced Spam filter options are turned off' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA102' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'Advanced Spam filter options are turned off' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA103.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA103.md new file mode 100644 index 000000000000..bc048fc4c32a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA103.md @@ -0,0 +1,8 @@ +Outbound spam filter policies should be configured with appropriate limits to prevent compromised accounts from sending large volumes of spam. Microsoft recommends setting RecipientLimitExternalPerHour to 500, RecipientLimitInternalPerHour to 1000, and ActionWhenThresholdReached to BlockUserForToday to protect your organization's reputation and prevent abuse. + +**Remediation action** + +- [Configure outbound spam filtering](https://learn.microsoft.com/microsoft-365/security/office-365-security/outbound-spam-policies-configure) +- [Outbound spam protection in Exchange Online](https://learn.microsoft.com/microsoft-365/security/office-365-security/outbound-spam-protection-about) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA103.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA103.ps1 new file mode 100644 index 000000000000..10171890ecec --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA103.ps1 @@ -0,0 +1,68 @@ +function Invoke-CippTestORCA103 { + <# + .SYNOPSIS + Outbound spam filter policy settings configured + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedOutboundSpamFilterPolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA103' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Outbound spam filter policy settings configured' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + $IsCompliant = $true + $Issues = [System.Collections.Generic.List[string]]::new() + + if ($Policy.RecipientLimitExternalPerHour -ne 500) { + $IsCompliant = $false + $Issues.Add("RecipientLimitExternalPerHour: $($Policy.RecipientLimitExternalPerHour) (should be 500)") | Out-Null + } + if ($Policy.RecipientLimitInternalPerHour -ne 1000) { + $IsCompliant = $false + $Issues.Add("RecipientLimitInternalPerHour: $($Policy.RecipientLimitInternalPerHour) (should be 1000)") | Out-Null + } + if ($Policy.ActionWhenThresholdReached -ne 'BlockUserForToday') { + $IsCompliant = $false + $Issues.Add("ActionWhenThresholdReached: $($Policy.ActionWhenThresholdReached) (should be BlockUserForToday)") | Out-Null + } + + if ($IsCompliant) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add([PSCustomObject]@{ + Policy = $Policy + Issues = $Issues + }) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All outbound spam filter policies are configured correctly.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) outbound spam filter policies are not configured correctly.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Issues |`n" + $Result += "|------------|--------|`n" + foreach ($Failed in $FailedPolicies) { + $Result += "| $($Failed.Policy.Identity) | $($Failed.Issues -join '
') |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA103' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Outbound spam filter policy settings configured' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA103' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Outbound spam filter policy settings configured' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } + } diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA104.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA104.md new file mode 100644 index 000000000000..bf7bb5221b01 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA104.md @@ -0,0 +1,10 @@ +Anti-phishing policies should have High Confidence Phish action set to Quarantine to protect users from sophisticated phishing attacks. Messages identified as high-confidence phishing attempts pose a significant security risk and should be quarantined for review rather than delivered to users. + +**Remediation action** + +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-about) +- [Set up anti-phishing policies in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-mdo-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA104.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA104.ps1 new file mode 100644 index 000000000000..5f49f7072020 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA104.ps1 @@ -0,0 +1,58 @@ +function Invoke-CippTestORCA104 { + <# + .SYNOPSIS + High Confidence Phish action set to Quarantine message + #> + param($Tenant) + + try { + $AntiPhishPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAntiPhishPolicies' + + if (-not $AntiPhishPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA104' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'High Confidence Phish action set to Quarantine message' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Phish' + return + } + + $FailedPolicies = @() + $PassedPolicies = @() + + foreach ($Policy in $AntiPhishPolicies) { + # Check if HighConfidencePhishAction is set to Quarantine + if ($Policy.HighConfidencePhishAction -eq 'Quarantine') { + $PassedPolicies += $Policy + } else { + $FailedPolicies += $Policy + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-phishing policies have High Confidence Phish action set to Quarantine.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)`n`n" + if ($PassedPolicies.Count -gt 0) { + $Result += "| Policy Name | Action |`n" + $Result += "|------------|--------|`n" + foreach ($Policy in $PassedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.HighConfidencePhishAction) |`n" + } + } + } else { + $Status = 'Failed' + $Result = "Some anti-phishing policies do not have High Confidence Phish action set to Quarantine.`n`n" + $Result += "**Failed Policies:** $($FailedPolicies.Count) | **Passed Policies:** $($PassedPolicies.Count)`n`n" + $Result += "### Non-Compliant Policies`n`n" + $Result += "| Policy Name | Current Action | Recommended Action |`n" + $Result += "|------------|----------------|-------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.HighConfidencePhishAction) | Quarantine |`n" + } + $Result += "`n**Remediation:** Update the HighConfidencePhishAction to 'Quarantine' for enhanced security." + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA104' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'High Confidence Phish action set to Quarantine message' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Phish' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA104' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'High Confidence Phish action set to Quarantine message' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Phish' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA105.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA105.md new file mode 100644 index 000000000000..3391a38cece9 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA105.md @@ -0,0 +1,10 @@ +Safe Links policies should enable synchronous URL detonation (DeliverMessageAfterScan) to scan links in real-time before delivering messages to users. This ensures that malicious URLs are detected and blocked before they reach user mailboxes, providing enhanced protection against zero-day attacks and sophisticated phishing campaigns. + +**Remediation action** + +- [Safe Links in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-about) +- [Set up Safe Links policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-policies-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA105.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA105.ps1 new file mode 100644 index 000000000000..84d4a6dd7ab4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA105.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA105 { + <# + .SYNOPSIS + Safe Links Synchronous URL detonation is enabled + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoSafeLinksPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA105' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Safe Links Synchronous URL detonation is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.DeliverMessageAfterScan -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All Safe Links policies have synchronous URL detonation enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) Safe Links policies do not have synchronous URL detonation enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Deliver Message After Scan |`n" + $Result += "|------------|---------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.DeliverMessageAfterScan) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA105' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Safe Links Synchronous URL detonation is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA105' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Safe Links Synchronous URL detonation is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA106.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA106.md new file mode 100644 index 000000000000..8955503864dd --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA106.md @@ -0,0 +1,10 @@ +Anti-spam policies should have a quarantine retention period of at least 30 days to allow sufficient time for administrators to review and release legitimate messages that were incorrectly quarantined. A retention period that is too short may result in legitimate messages being permanently deleted before they can be reviewed. + +**Remediation action** + +- [Configure anti-spam policies in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Anti-spam protection in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-protection-about) +- [Quarantine policies in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/quarantine-policies) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA106.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA106.ps1 new file mode 100644 index 000000000000..2058a76fb616 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA106.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA106 { + <# + .SYNOPSIS + Quarantine retention period is 30 days + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA106' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'Quarantine retention period is 30 days' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.QuarantineRetentionPeriod -gt 15) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-spam policies have quarantine retention period set to 30 days.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-spam policies do not have quarantine retention period set to 30 days.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Quarantine Retention Period |`n" + $Result += "|------------|----------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.QuarantineRetentionPeriod) days |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA106' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Low' -Name 'Quarantine retention period is 30 days' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA106' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'Quarantine retention period is 30 days' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA107.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA107.md new file mode 100644 index 000000000000..6c0f3601b410 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA107.md @@ -0,0 +1,10 @@ +Quarantine policies should enable end-user spam notifications to inform users about messages that have been quarantined. This allows users to review and release legitimate messages that may have been incorrectly identified as spam, reducing administrative overhead and improving user experience. + +**Remediation action** + +- [Quarantine policies in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/quarantine-policies) +- [End-user spam notifications in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/quarantine-end-user) +- [Configure anti-spam policies in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA107.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA107.ps1 new file mode 100644 index 000000000000..51f4a1a90e95 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA107.ps1 @@ -0,0 +1,57 @@ +function Invoke-CippTestORCA107 { + <# + .SYNOPSIS + End-user spam notification is enabled + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoQuarantinePolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA107' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'End-user spam notification is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Quarantine' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.EndUserSpamNotificationFrequency -gt 0) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0 -and $PassedPolicies.Count -gt 0) { + $Status = 'Passed' + $Result = "All quarantine policies have end-user spam notifications enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)`n`n" + $Result += "| Policy Name | Notification Frequency (days) |`n" + $Result += "|------------|-------------------------------|`n" + foreach ($Policy in $PassedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.EndUserSpamNotificationFrequency) |`n" + } + } elseif ($PassedPolicies.Count -eq 0) { + $Status = 'Failed' + $Result = "No quarantine policies have end-user spam notifications enabled.`n`n" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) quarantine policies do not have end-user spam notifications enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Notification Frequency |`n" + $Result += "|------------|----------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | Disabled |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA107' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Low' -Name 'End-user spam notification is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Quarantine' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA107' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'End-user spam notification is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Quarantine' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA108.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA108.md new file mode 100644 index 000000000000..4539f91ff893 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA108.md @@ -0,0 +1,10 @@ +DKIM (DomainKeys Identified Mail) signing should be enabled for all custom domains in your organization. DKIM adds a digital signature to outbound email messages, allowing receiving mail servers to verify that the message was sent from your domain and hasn't been altered in transit. This helps prevent email spoofing and improves email deliverability. + +**Remediation action** + +- [Use DKIM to validate outbound email sent from your custom domain](https://learn.microsoft.com/microsoft-365/security/office-365-security/email-authentication-dkim-configure) +- [How Microsoft 365 uses SPF and DKIM to prevent spoofing](https://learn.microsoft.com/microsoft-365/security/office-365-security/email-authentication-anti-spoofing) +- [Email authentication in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/email-authentication-about) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA108.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA108.ps1 new file mode 100644 index 000000000000..390ab97aa9aa --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA108.ps1 @@ -0,0 +1,61 @@ +function Invoke-CippTestORCA108 { + <# + .SYNOPSIS + DKIM signing is set up for all your custom domains + #> + param($Tenant) + + try { + $DkimConfig = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoDkimSigningConfig' + $AcceptedDomains = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAcceptedDomains' + + if (-not $DkimConfig -or -not $AcceptedDomains) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA108' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'DKIM signing is set up for all your custom domains' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'DKIM' + return + } + + # Get custom domains (exclude default .onmicrosoft.com domains) + $CustomDomains = $AcceptedDomains | Where-Object { + $_.DomainName -notlike '*.onmicrosoft.com' -and + $_.DomainName -notlike '*.mail.onmicrosoft.com' + } + + if ($CustomDomains.Count -eq 0) { + $Status = 'Passed' + $Result = 'No custom domains configured. DKIM check not applicable for default domains only.' + } else { + $DomainsWithoutDkim = @() + $DomainsWithDkim = @() + + foreach ($Domain in $CustomDomains) { + $DkimForDomain = $DkimConfig | Where-Object { $_.Domain -eq $Domain.DomainName } + + if ($DkimForDomain -and $DkimForDomain.Enabled -eq $true) { + $DomainsWithDkim += $Domain.DomainName + } else { + $DomainsWithoutDkim += $Domain.DomainName + } + } + + if ($DomainsWithoutDkim.Count -eq 0) { + $Status = 'Passed' + $Result = "DKIM signing is enabled for all custom domains ($($DomainsWithDkim.Count) domains).`n`n" + $Result += "**Domains with DKIM enabled:**`n" + $Result += ($DomainsWithDkim | ForEach-Object { "- $_" }) -join "`n" + } else { + $Status = 'Failed' + $Result = "DKIM signing is not configured for all custom domains.`n`n" + $Result += "**Missing DKIM:** $($DomainsWithoutDkim.Count) | **Configured:** $($DomainsWithDkim.Count)`n`n" + $Result += "### Domains without DKIM:`n" + $Result += ($DomainsWithoutDkim | ForEach-Object { "- $_" }) -join "`n" + $Result += "`n`n**Remediation:** Enable DKIM signing for all custom domains to prevent email spoofing." + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA108' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'DKIM signing is set up for all your custom domains' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'DKIM' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA108' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'DKIM signing is set up for all your custom domains' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'DKIM' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA108_1.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA108_1.md new file mode 100644 index 000000000000..907ad5c4e661 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA108_1.md @@ -0,0 +1,9 @@ +DNS records must be properly configured to support DKIM signing for your custom domains. After enabling DKIM in Microsoft 365, you need to publish the DKIM CNAME records in your domain's DNS zone. Without these DNS records, DKIM signing will not function properly, and your outbound emails will not be signed. + +**Remediation action** + +- [Use DKIM to validate outbound email sent from your custom domain](https://learn.microsoft.com/microsoft-365/security/office-365-security/email-authentication-dkim-configure) +- [Steps to create, enable and disable DKIM from Microsoft 365 Defender portal](https://learn.microsoft.com/microsoft-365/security/office-365-security/email-authentication-dkim-configure#steps-to-create-enable-and-disable-dkim-from-microsoft-365-defender-portal) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA108_1.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA108_1.ps1 new file mode 100644 index 000000000000..6d39c4e1d476 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA108_1.ps1 @@ -0,0 +1,53 @@ +function Invoke-CippTestORCA108_1 { + <# + .SYNOPSIS + DNS Records have been set up to support DKIM + #> + param($Tenant) + + try { + $DkimConfig = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoDkimSigningConfig' + $AcceptedDomains = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAcceptedDomains' + + if (-not $DkimConfig -or -not $AcceptedDomains) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA108_1' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'DNS Records have been set up to support DKIM' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'DKIM' + return + } + + $FailedDomains = [System.Collections.Generic.List[object]]::new() + $PassedDomains = [System.Collections.Generic.List[object]]::new() + $CustomDomains = $AcceptedDomains | Where-Object { $_.DomainName -notlike '*onmicrosoft.com' } + + foreach ($Domain in $CustomDomains) { + $DkimRecord = $DkimConfig | Where-Object { $_.Domain -eq $Domain.DomainName } + + if ($DkimRecord -and $DkimRecord.Selector1CNAME -and $DkimRecord.Selector2CNAME) { + $PassedDomains.Add($Domain) | Out-Null + } else { + $FailedDomains.Add($Domain) | Out-Null + } + } + + if ($FailedDomains.Count -eq 0) { + $Status = 'Passed' + $Result = "All custom domains have DKIM DNS records configured.`n`n" + $Result += "**Compliant Domains:** $($PassedDomains.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedDomains.Count) custom domains do not have DKIM DNS records configured.`n`n" + $Result += "**Non-Compliant Domains:** $($FailedDomains.Count)`n`n" + $Result += "| Domain Name |`n" + $Result += "|------------|`n" + foreach ($Domain in $FailedDomains) { + $Result += "| $($Domain.DomainName) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA108_1' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'DNS Records have been set up to support DKIM' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'DKIM' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA108_1' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'DNS Records have been set up to support DKIM' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'DKIM' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA109.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA109.md new file mode 100644 index 000000000000..b4fb18706c7f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA109.md @@ -0,0 +1,10 @@ +Anti-spam policies should not have senders or domains configured in the allow list in an unsafe manner. Allowing senders or entire domains to bypass spam filtering can expose your organization to phishing attacks and malware. Allow lists should be used sparingly and only for trusted senders with a verified business relationship. + +**Remediation action** + +- [Configure anti-spam policies in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Create safe sender lists in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/create-safe-sender-lists-in-office-365) +- [Use mail flow rules to filter bulk email in Exchange Online](https://learn.microsoft.com/exchange/security-and-compliance/mail-flow-rules/use-rules-to-filter-bulk-mail) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA109.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA109.ps1 new file mode 100644 index 000000000000..45bbfc43b14d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA109.ps1 @@ -0,0 +1,54 @@ +function Invoke-CippTestORCA109 { + <# + .SYNOPSIS + Senders are not being allow listed in an unsafe manner + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA109' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Senders are not being allow listed in an unsafe manner' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + $HasAllowedSenders = ($Policy.AllowedSenders -and $Policy.AllowedSenders.Count -gt 0) -or + ($Policy.AllowedSenderDomains -and $Policy.AllowedSenderDomains.Count -gt 0) + + if (-not $HasAllowedSenders) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "No anti-spam policies have sender allow lists configured.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-spam policies have sender allow lists configured.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Allowed Senders | Allowed Sender Domains |`n" + $Result += "|------------|----------------|----------------------|`n" + foreach ($Policy in $FailedPolicies) { + $SenderCount = if ($Policy.AllowedSenders) { $Policy.AllowedSenders.Count } else { 0 } + $DomainCount = if ($Policy.AllowedSenderDomains) { $Policy.AllowedSenderDomains.Count } else { 0 } + $Result += "| $($Policy.Identity) | $SenderCount | $DomainCount |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA109' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Senders are not being allow listed in an unsafe manner' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA109' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Senders are not being allow listed in an unsafe manner' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA110.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA110.md new file mode 100644 index 000000000000..70a3607e6be1 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA110.md @@ -0,0 +1,10 @@ +Anti-spam policies should have internal sender notifications disabled to prevent information disclosure. Notifying internal senders when their messages are quarantined can reveal security policy details to potentially compromised accounts and may be used by attackers to understand and bypass your security measures. + +**Remediation action** + +- [Configure anti-spam policies in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Anti-spam protection in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-protection-about) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA110.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA110.ps1 new file mode 100644 index 000000000000..1894ebd339d7 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA110.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA110 { + <# + .SYNOPSIS + Internal Sender notifications are disabled + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA110' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'Internal Sender notifications are disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.InlineSafetyTipsEnabled -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-spam policies have internal sender notifications disabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-spam policies have internal sender notifications enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Inline Safety Tips Enabled |`n" + $Result += "|------------|---------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.InlineSafetyTipsEnabled) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA110' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Low' -Name 'Internal Sender notifications are disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA110' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'Internal Sender notifications are disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA111.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA111.md new file mode 100644 index 000000000000..36010802db16 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA111.md @@ -0,0 +1,10 @@ +Anti-phishing policies should enable the unauthenticated sender indicator (EnableUnauthenticatedSender) to display a visual indicator for messages that fail authentication checks. This helps users identify potentially spoofed messages and reduces the risk of falling victim to phishing attacks. + +**Remediation action** + +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-about) +- [Set up anti-phishing policies in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-mdo-configure) +- [Unauthenticated sender indicators](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-about#unauthenticated-sender-indicators) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA111.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA111.ps1 new file mode 100644 index 000000000000..1fa78226d75b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA111.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA111 { + <# + .SYNOPSIS + Anti-phishing policy exists and EnableUnauthenticatedSender is true + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAntiPhishPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA111' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Unauthenticated Sender tagging enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.EnableUnauthenticatedSender -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-phishing policies have unauthenticated sender tagging enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-phishing policies do not have unauthenticated sender tagging enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Enable Unauthenticated Sender |`n" + $Result += "|------------|------------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.EnableUnauthenticatedSender) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA111' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Unauthenticated Sender tagging enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA111' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Unauthenticated Sender tagging enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA112.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA112.md new file mode 100644 index 000000000000..fb0bf7059686 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA112.md @@ -0,0 +1,10 @@ +Anti-phishing policies should configure the anti-spoofing protection action to move messages to the Junk Email folder. This provides protection against spoofed messages while allowing users to review them if needed. Messages that appear to be from internal senders but fail authentication checks should be quarantined to prevent impersonation attacks. + +**Remediation action** + +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-about) +- [Spoof intelligence insight in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spoofing-spoof-intelligence) +- [Anti-spoofing protection in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-protection-spoofing-about) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA112.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA112.ps1 new file mode 100644 index 000000000000..84761e1e4d29 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA112.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA112 { + <# + .SYNOPSIS + Anti-spoofing protection action is configured to Move message to Junk Email folders + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAntiPhishPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA112' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Anti-spoofing protection action configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.AuthenticationFailAction -eq 'MoveToJmf') { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-phishing policies have anti-spoofing action set to Move to Junk Email folder.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-phishing policies do not have anti-spoofing action set to Move to Junk Email folder.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Authentication Fail Action |`n" + $Result += "|------------|---------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.AuthenticationFailAction) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA112' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Anti-spoofing protection action configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA112' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Anti-spoofing protection action configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA113.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA113.md new file mode 100644 index 000000000000..5730ae5bc2d9 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA113.md @@ -0,0 +1,10 @@ +Safe Links policies should disable the AllowClickThrough setting to prevent users from clicking through to potentially malicious URLs even after receiving a warning. When AllowClickThrough is enabled, users can bypass the Safe Links warning page and navigate to the original URL, which significantly reduces the effectiveness of Safe Links protection. + +**Remediation action** + +- [Safe Links in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-about) +- [Set up Safe Links policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-policies-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA113.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA113.ps1 new file mode 100644 index 000000000000..93cfc03f605a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA113.ps1 @@ -0,0 +1,58 @@ +function Invoke-CippTestORCA113 { + <# + .SYNOPSIS + AllowClickThrough is disabled in Safe Links policies + #> + param($Tenant) + + try { + $SafeLinksPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoSafeLinksPolicies' + + if (-not $SafeLinksPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA113' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'AllowClickThrough is disabled in Safe Links policies' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + return + } + + $FailedPolicies = @() + $PassedPolicies = @() + + foreach ($Policy in $SafeLinksPolicies) { + # Check if DoNotAllowClickThrough is set to true (which means AllowClickThrough is disabled) + if ($Policy.DoNotAllowClickThrough -eq $true) { + $PassedPolicies += $Policy + } else { + $FailedPolicies += $Policy + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All Safe Links policies have click-through disabled (DoNotAllowClickThrough = true).`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)`n`n" + if ($PassedPolicies.Count -gt 0) { + $Result += "| Policy Name | DoNotAllowClickThrough |`n" + $Result += "|------------|----------------------|`n" + foreach ($Policy in $PassedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.DoNotAllowClickThrough) |`n" + } + } + } else { + $Status = 'Failed' + $Result = "Some Safe Links policies allow click-through, which reduces protection.`n`n" + $Result += "**Failed Policies:** $($FailedPolicies.Count) | **Passed Policies:** $($PassedPolicies.Count)`n`n" + $Result += "### Non-Compliant Policies`n`n" + $Result += "| Policy Name | DoNotAllowClickThrough | Recommended |`n" + $Result += "|------------|----------------------|-------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.DoNotAllowClickThrough) | true |`n" + } + $Result += "`n**Remediation:** Disable click-through (set DoNotAllowClickThrough to true) to prevent users from bypassing Safe Links protection." + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA113' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'AllowClickThrough is disabled in Safe Links policies' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA113' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'AllowClickThrough is disabled in Safe Links policies' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA114.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA114.md new file mode 100644 index 000000000000..04bf5f2fbbeb --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA114.md @@ -0,0 +1,10 @@ +Anti-spam policies should not have IP addresses configured in the allow list. IP-based allow lists can be exploited by attackers who use compromised or shared infrastructure, and they bypass important security controls. Instead of using IP allow lists, implement proper email authentication (SPF, DKIM, DMARC) and use sender-based allow lists only when absolutely necessary. + +**Remediation action** + +- [Configure anti-spam policies in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Configure the connection filter policy](https://learn.microsoft.com/microsoft-365/security/office-365-security/connection-filter-policies-configure) +- [Create safe sender lists in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/create-safe-sender-lists-in-office-365) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA114.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA114.ps1 new file mode 100644 index 000000000000..bcafb040cb04 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA114.ps1 @@ -0,0 +1,52 @@ +function Invoke-CippTestORCA114 { + <# + .SYNOPSIS + No IP Allow Lists have been configured + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA114' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'No IP Allow Lists have been configured' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + +$FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + $HasIPAllowList = ($Policy.IPAllowList -and $Policy.IPAllowList.Count -gt 0) + + if (-not $HasIPAllowList) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "No anti-spam policies have IP allow lists configured.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-spam policies have IP allow lists configured.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | IP Allow List Count |`n" + $Result += "|------------|-------------------|`n" + foreach ($Policy in $FailedPolicies) { + $IPCount = if ($Policy.IPAllowList) { $Policy.IPAllowList.Count } else { 0 } + $Result += "| $($Policy.Identity) | $IPCount |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA114' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'No IP Allow Lists have been configured' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA114' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'No IP Allow Lists have been configured' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA115.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA115.md new file mode 100644 index 000000000000..a0485c090e97 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA115.md @@ -0,0 +1,10 @@ +Anti-phishing policies should enable mailbox intelligence-based impersonation protection to leverage machine learning and user behavior patterns for detecting impersonation attempts. This feature analyzes email communication patterns and identifies messages that may be attempting to impersonate trusted contacts or business partners. + +**Remediation action** + +- [Impersonation settings in anti-phishing policies](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-about#impersonation-settings-in-anti-phishing-policies-in-microsoft-defender-for-office-365) +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-mdo-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA115.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA115.ps1 new file mode 100644 index 000000000000..6c9e383ca1d8 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA115.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA115 { + <# + .SYNOPSIS + Mailbox intelligence based impersonation protection is enabled + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAntiPhishPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA115' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Mailbox intelligence based impersonation protection is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.EnableMailboxIntelligenceProtection -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-phishing policies have mailbox intelligence based impersonation protection enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-phishing policies do not have mailbox intelligence based impersonation protection enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Enable Mailbox Intelligence Protection |`n" + $Result += "|------------|---------------------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.EnableMailboxIntelligenceProtection) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA115' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Mailbox intelligence based impersonation protection is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA115' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Mailbox intelligence based impersonation protection is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA116.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA116.md new file mode 100644 index 000000000000..87a80c2c206e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA116.md @@ -0,0 +1,10 @@ +Anti-phishing policies should configure mailbox intelligence-based impersonation protection to move messages to the Junk Email folder. This setting ensures that messages identified as potential impersonation attempts are quarantined or moved to junk mail, preventing users from being exposed to sophisticated social engineering attacks while still allowing for message review if needed. + +**Remediation action** + +- [Impersonation settings in anti-phishing policies](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-about#impersonation-settings-in-anti-phishing-policies-in-microsoft-defender-for-office-365) +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-mdo-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA116.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA116.ps1 new file mode 100644 index 000000000000..3677473a0684 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA116.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA116 { + <# + .SYNOPSIS + Mailbox intelligence based impersonation protection action set to move message to junk mail folder + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAntiPhishPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA116' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Mailbox intelligence impersonation protection action configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.MailboxIntelligenceProtectionAction -eq 'MoveToJmf') { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-phishing policies have mailbox intelligence impersonation protection action set to Move to Junk Email folder.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-phishing policies do not have mailbox intelligence impersonation protection action set to Move to Junk Email folder.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Mailbox Intelligence Protection Action |`n" + $Result += "|------------|---------------------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.MailboxIntelligenceProtectionAction) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA116' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Mailbox intelligence impersonation protection action configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA116' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Mailbox intelligence impersonation protection action configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_1.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_1.md new file mode 100644 index 000000000000..eb778c08620e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_1.md @@ -0,0 +1,10 @@ +Anti-spam policies should not have entire domains configured in the allow list. Allowing entire domains to bypass spam filtering can expose your organization to phishing attacks and malware, especially if the allowed domain is compromised or used by multiple organizations. Domain-based allow lists should be avoided, and sender-specific allow lists should be used sparingly only for verified business relationships. + +**Remediation action** + +- [Configure anti-spam policies in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Create safe sender lists in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/create-safe-sender-lists-in-office-365) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_1.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_1.ps1 new file mode 100644 index 000000000000..eadab025151c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_1.ps1 @@ -0,0 +1,52 @@ +function Invoke-CippTestORCA118_1 { + <# + .SYNOPSIS + Domains not allow listed in Anti-Spam + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA118_1' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Domains not allow listed in Anti-Spam' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + $HasAllowedDomains = ($Policy.AllowedSenderDomains -and $Policy.AllowedSenderDomains.Count -gt 0) + + if (-not $HasAllowedDomains) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "No anti-spam policies have allowed sender domains configured.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-spam policies have allowed sender domains configured.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Allowed Sender Domains Count |`n" + $Result += "|------------|------------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Count = if ($Policy.AllowedSenderDomains) { $Policy.AllowedSenderDomains.Count } else { 0 } + $Result += "| $($Policy.Identity) | $Count |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA118_1' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Domains not allow listed in Anti-Spam' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA118_1' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Domains not allow listed in Anti-Spam' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_2.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_2.md new file mode 100644 index 000000000000..977cc4a452c8 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_2.md @@ -0,0 +1,10 @@ +Transport rules (mail flow rules) should not be configured to allow list entire domains and bypass spam filtering. Transport rules that skip spam filtering for entire domains can be exploited by attackers to deliver malicious content. These rules override anti-spam policies and should only be used in exceptional circumstances with strict conditions. + +**Remediation action** + +- [Mail flow rules (transport rules) in Exchange Online](https://learn.microsoft.com/exchange/security-and-compliance/mail-flow-rules/mail-flow-rules) +- [Use mail flow rules to inspect message attachments](https://learn.microsoft.com/exchange/security-and-compliance/mail-flow-rules/inspect-message-attachments) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_2.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_2.ps1 new file mode 100644 index 000000000000..15e795a6b9cf --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_2.ps1 @@ -0,0 +1,48 @@ +function Invoke-CippTestORCA118_2 { + <# + .SYNOPSIS + Domains not allow listed in Transport Rules + #> + param($Tenant) + + try { + $TransportRules = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoTransportRules' + + if (-not $TransportRules) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA118_2' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Domains not allow listed in Transport Rules' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Transport Rules' + return + } + + $FailedRules = [System.Collections.Generic.List[object]]::new() + + foreach ($Rule in $TransportRules) { + # Check if rule sets SCL to -1 (bypass spam filtering) based on sender domain + if ($Rule.SetSCL -eq -1 -and $Rule.SenderDomainIs) { + $FailedRules.Add($Rule) | Out-Null + } + } + + if ($FailedRules.Count -eq 0) { + $Status = 'Passed' + $Result = "No transport rules allow list domains by setting SCL to -1.`n`n" + $Result += "**Total Transport Rules Checked:** $($TransportRules.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedRules.Count) transport rules allow list domains by setting SCL to -1.`n`n" + $Result += "**Non-Compliant Rules:** $($FailedRules.Count)`n`n" + $Result += "| Rule Name | Sender Domains |`n" + $Result += "|-----------|---------------|`n" + foreach ($Rule in $FailedRules) { + $Domains = if ($Rule.SenderDomainIs) { ($Rule.SenderDomainIs -join ', ') } else { 'N/A' } + $Result += "| $($Rule.Name) | $Domains |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA118_2' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Domains not allow listed in Transport Rules' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Transport Rules' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA118_2' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Domains not allow listed in Transport Rules' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Transport Rules' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_3.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_3.md new file mode 100644 index 000000000000..77da8291faed --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_3.md @@ -0,0 +1,10 @@ +Anti-spam policies should not have your organization's own domains configured in the allow list. Adding your own domains to the allow list can be exploited by attackers using spoofing techniques to bypass spam filtering. Internal domain protection should be handled through proper email authentication (SPF, DKIM, DMARC) and anti-spoofing policies, not through allow lists. + +**Remediation action** + +- [Configure anti-spam policies in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Anti-spoofing protection in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-protection-spoofing-about) +- [Email authentication in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/email-authentication-about) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_3.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_3.ps1 new file mode 100644 index 000000000000..a01284c51be7 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_3.ps1 @@ -0,0 +1,68 @@ +function Invoke-CippTestORCA118_3 { + <# + .SYNOPSIS + Own domains not allow listed in Anti-Spam + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + $AcceptedDomains = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAcceptedDomains' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA118_3' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Own domains not allow listed in Anti-Spam' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + if (-not $AcceptedDomains) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA118_3' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No accepted domains found in database.' -Risk 'High' -Name 'Own domains not allow listed in Anti-Spam' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + $OwnDomains = $AcceptedDomains | Select-Object -ExpandProperty DomainName + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + $HasOwnDomainInAllowList = $false + + if ($Policy.AllowedSenderDomains) { + foreach ($AllowedDomain in $Policy.AllowedSenderDomains) { + if ($OwnDomains -contains $AllowedDomain) { + $HasOwnDomainInAllowList = $true + break + } + } + } + + if ($HasOwnDomainInAllowList) { + $FailedPolicies.Add($Policy) | Out-Null + } else { + $PassedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "No anti-spam policies have own domains in the allow list.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-spam policies have own domains in the allow list.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Own Domains in Allow List |`n" + $Result += "|------------|---------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $OwnDomainsInList = $Policy.AllowedSenderDomains | Where-Object { $OwnDomains -contains $_ } + $Result += "| $($Policy.Identity) | $($OwnDomainsInList -join ', ') |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA118_3' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Own domains not allow listed in Anti-Spam' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA118_3' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Own domains not allow listed in Anti-Spam' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_4.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_4.md new file mode 100644 index 000000000000..a08348ebdb46 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_4.md @@ -0,0 +1,10 @@ +Transport rules (mail flow rules) should not be configured to allow list your organization's own domains and bypass spam filtering. Allowing your own domains through transport rules can be exploited by attackers using spoofing techniques. These rules override important security controls and should never be used for internal domain protection. + +**Remediation action** + +- [Mail flow rules (transport rules) in Exchange Online](https://learn.microsoft.com/exchange/security-and-compliance/mail-flow-rules/mail-flow-rules) +- [Anti-spoofing protection in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-protection-spoofing-about) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_4.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_4.ps1 new file mode 100644 index 000000000000..ace3850208a7 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_4.ps1 @@ -0,0 +1,65 @@ +function Invoke-CippTestORCA118_4 { + <# + .SYNOPSIS + Own domains not allow listed in Transport Rules + #> + param($Tenant) + + try { + $TransportRules = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoTransportRules' + $AcceptedDomains = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAcceptedDomains' + + if (-not $TransportRules) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA118_4' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Own domains not allow listed in Transport Rules' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Transport Rules' + return + } + + if (-not $AcceptedDomains) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA118_4' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No accepted domains found in database.' -Risk 'High' -Name 'Own domains not allow listed in Transport Rules' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Transport Rules' + return + } + + $OwnDomains = $AcceptedDomains | Select-Object -ExpandProperty DomainName + $FailedRules = [System.Collections.Generic.List[object]]::new() + + foreach ($Rule in $TransportRules) { + # Check if rule sets SCL to -1 (bypass spam filtering) based on sender domain + if ($Rule.SetSCL -eq -1 -and $Rule.SenderDomainIs) { + $HasOwnDomain = $false + foreach ($SenderDomain in $Rule.SenderDomainIs) { + if ($OwnDomains -contains $SenderDomain) { + $HasOwnDomain = $true + break + } + } + + if ($HasOwnDomain) { + $FailedRules.Add($Rule) | Out-Null + } + } + } + + if ($FailedRules.Count -eq 0) { + $Status = 'Passed' + $Result = "No transport rules allow list own domains by setting SCL to -1.`n`n" + $Result += "**Total Transport Rules Checked:** $($TransportRules.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedRules.Count) transport rules allow list own domains by setting SCL to -1.`n`n" + $Result += "**Non-Compliant Rules:** $($FailedRules.Count)`n`n" + $Result += "| Rule Name | Own Domains in Rule |`n" + $Result += "|-----------|-------------------|`n" + foreach ($Rule in $FailedRules) { + $OwnDomainsInRule = $Rule.SenderDomainIs | Where-Object { $OwnDomains -contains $_ } + $Result += "| $($Rule.Name) | $($OwnDomainsInRule -join ', ') |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA118_4' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Own domains not allow listed in Transport Rules' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Transport Rules' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA118_4' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Own domains not allow listed in Transport Rules' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Transport Rules' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA119.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA119.md new file mode 100644 index 000000000000..9a7837fa85d0 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA119.md @@ -0,0 +1,10 @@ +Anti-phishing policies should enable similar domains safety tips to warn users when they receive messages from domains that are visually similar to known trusted domains. This feature helps protect users from homograph attacks and typosquatting attempts where attackers register domains that closely resemble legitimate domains to deceive users. + +**Remediation action** + +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-about) +- [Safety tips in email messages](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-protection-about#safety-tips-in-email-messages) +- [Set up anti-phishing policies in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-mdo-configure) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA119.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA119.ps1 new file mode 100644 index 000000000000..c751816a320d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA119.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA119 { + <# + .SYNOPSIS + Similar Domains Safety Tips is enabled + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAntiPhishPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA119' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Similar Domains Safety Tips is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.EnableSimilarDomainsSafetyTips -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-phishing policies have Similar Domains Safety Tips enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-phishing policies do not have Similar Domains Safety Tips enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Enable Similar Domains Safety Tips |`n" + $Result += "|------------|-----------------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.EnableSimilarDomainsSafetyTips) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA119' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Similar Domains Safety Tips is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA119' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Similar Domains Safety Tips is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_malware.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_malware.md new file mode 100644 index 000000000000..e6170ac647d5 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_malware.md @@ -0,0 +1,10 @@ +Anti-malware policies should enable Zero Hour Autopurge (ZAP) for malware to automatically detect and remediate malicious messages that were delivered before the malware signature was available. ZAP for malware helps protect users from newly identified threats by removing or quarantining malicious messages from mailboxes after delivery. + +**Remediation action** + +- [Zero-hour auto purge (ZAP) in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/zero-hour-auto-purge) +- [Configure anti-malware policies in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-malware-policies-configure) +- [Anti-malware protection in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-malware-protection-about) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_malware.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_malware.ps1 new file mode 100644 index 000000000000..360ddb3b97bd --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_malware.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA120_malware { + <# + .SYNOPSIS + Zero Hour Autopurge Enabled for Malware + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoMalwareFilterPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA120_malware' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Zero Hour Autopurge Enabled for Malware' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Malware' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.ZapEnabled -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All malware filter policies have Zero Hour Autopurge enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) malware filter policies do not have Zero Hour Autopurge enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | ZAP Enabled |`n" + $Result += "|------------|------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.ZapEnabled) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA120_malware' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Zero Hour Autopurge Enabled for Malware' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Malware' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA120_malware' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Zero Hour Autopurge Enabled for Malware' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Malware' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_phish.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_phish.md new file mode 100644 index 000000000000..4d588e4c685f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_phish.md @@ -0,0 +1,10 @@ +Anti-spam policies should enable Zero Hour Autopurge (ZAP) for phishing messages to automatically detect and remediate phishing attacks that were delivered before they were identified as malicious. ZAP for phishing helps protect users from newly identified phishing campaigns by moving or deleting malicious messages from mailboxes after delivery. + +**Remediation action** + +- [Zero-hour auto purge (ZAP) in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/zero-hour-auto-purge) +- [Configure anti-spam policies in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Anti-spam protection in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-protection-about) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_phish.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_phish.ps1 new file mode 100644 index 000000000000..b13438033f14 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_phish.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA120_phish { + <# + .SYNOPSIS + Zero Hour Autopurge Enabled for Phish + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA120_phish' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Zero Hour Autopurge Enabled for Phish' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.PhishZapEnabled -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-spam policies have Zero Hour Autopurge for Phish enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-spam policies do not have Zero Hour Autopurge for Phish enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Phish ZAP Enabled |`n" + $Result += "|------------|------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.PhishZapEnabled) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA120_phish' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Zero Hour Autopurge Enabled for Phish' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA120_phish' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Zero Hour Autopurge Enabled for Phish' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_spam.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_spam.md new file mode 100644 index 000000000000..3a972e8ceb97 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_spam.md @@ -0,0 +1,10 @@ +Anti-spam policies should enable Zero Hour Autopurge (ZAP) for spam messages to automatically detect and move spam messages that were delivered before they were identified as spam. ZAP for spam helps keep user mailboxes clean by moving spam messages to the Junk Email folder after delivery, even if they initially passed spam filtering. + +**Remediation action** + +- [Zero-hour auto purge (ZAP) in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/zero-hour-auto-purge) +- [Configure anti-spam policies in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Anti-spam protection in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-protection-about) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_spam.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_spam.ps1 new file mode 100644 index 000000000000..974c836d12e0 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_spam.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA120_spam { + <# + .SYNOPSIS + Zero Hour Autopurge Enabled for Spam + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA120_spam' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Zero Hour Autopurge Enabled for Spam' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.SpamZapEnabled -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-spam policies have Zero Hour Autopurge for Spam enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-spam policies do not have Zero Hour Autopurge for Spam enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Spam ZAP Enabled |`n" + $Result += "|------------|-----------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.SpamZapEnabled) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA120_spam' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Zero Hour Autopurge Enabled for Spam' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA120_spam' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Zero Hour Autopurge Enabled for Spam' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA121.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA121.md new file mode 100644 index 000000000000..82969121187b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA121.md @@ -0,0 +1,10 @@ +Quarantine policies should use supported filter policy actions that are appropriate for the threat level. Different types of threats require different quarantine actions - for example, high-confidence phishing should be strictly quarantined with limited user interaction, while spam can be more lenient. Using appropriate quarantine policies ensures effective threat containment while minimizing false positive impact. + +**Remediation action** + +- [Quarantine policies in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/quarantine-policies) +- [Anatomy of a quarantine policy](https://learn.microsoft.com/microsoft-365/security/office-365-security/quarantine-policies#anatomy-of-a-quarantine-policy) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA121.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA121.ps1 new file mode 100644 index 000000000000..cbf3d7499d06 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA121.ps1 @@ -0,0 +1,27 @@ +function Invoke-CippTestORCA121 { + <# + .SYNOPSIS + Supported filter policy action used + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoQuarantinePolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA121' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'Supported filter policy action used' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Quarantine' + return + } + + $Status = 'Passed' + $Result = "Quarantine policies are configured to support Zero Hour Auto Purge.`n`n" + $Result += "**Total Policies:** $($Policies.Count)" + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA121' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Low' -Name 'Supported filter policy action used' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Quarantine' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA121' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'Supported filter policy action used' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Quarantine' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA123.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA123.md new file mode 100644 index 000000000000..95e74e9e953d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA123.md @@ -0,0 +1,10 @@ +Anti-phishing policies should enable unusual characters safety tips to warn users when they receive messages containing unusual or suspicious characters. This feature helps protect users from internationalized domain name (IDN) homograph attacks and other obfuscation techniques where attackers use special characters to make malicious URLs or sender addresses appear legitimate. + +**Remediation action** + +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-about) +- [Safety tips in email messages](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-protection-about#safety-tips-in-email-messages) +- [Set up anti-phishing policies in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-mdo-configure) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA123.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA123.ps1 new file mode 100644 index 000000000000..dd08fdaee61c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA123.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA123 { + <# + .SYNOPSIS + Unusual Characters Safety Tips is enabled + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAntiPhishPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA123' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Unusual Characters Safety Tips is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.EnableUnusualCharactersSafetyTips -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-phishing policies have Unusual Characters Safety Tips enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-phishing policies do not have Unusual Characters Safety Tips enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Enable Unusual Characters Safety Tips |`n" + $Result += "|------------|---------------------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.EnableUnusualCharactersSafetyTips) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA123' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Unusual Characters Safety Tips is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA123' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Unusual Characters Safety Tips is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA124.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA124.md new file mode 100644 index 000000000000..f300609ca082 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA124.md @@ -0,0 +1,10 @@ +Safe Attachments policies should configure the unknown malware response to block messages containing potentially malicious attachments. This setting ensures that messages with attachments that cannot be verified as safe are blocked from delivery, preventing zero-day malware attacks and protecting users from unknown threats until they can be properly analyzed. + +**Remediation action** + +- [Safe Attachments in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-attachments-about) +- [Set up Safe Attachments policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-attachments-policies-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA124.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA124.ps1 new file mode 100644 index 000000000000..dcfe7a48b9c8 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA124.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA124 { + <# + .SYNOPSIS + Safe attachments unknown malware response set to block messages + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoSafeAttachmentPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA124' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Safe attachments unknown malware response set to block messages' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Safe Attachments' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.Action -in @('Block', 'Quarantine')) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All Safe Attachments policies have unknown malware response set to Block.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) Safe Attachments policies do not have unknown malware response set to Block.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Action |`n" + $Result += "|------------|--------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.Action) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA124' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Safe attachments unknown malware response set to block messages' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Safe Attachments' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA124' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Safe attachments unknown malware response set to block messages' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Safe Attachments' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA139.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA139.md new file mode 100644 index 000000000000..d79529c834b0 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA139.md @@ -0,0 +1,8 @@ +Anti-spam policies should be configured to move spam messages to the Junk Email folder or quarantine them to protect users from potentially malicious content. Setting the spam action to "Move to Junk Email Folder" or "Quarantine" ensures that spam is properly filtered while still allowing users to review quarantined messages if needed. + +**Remediation action** + +- [Configure anti-spam policies in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA139.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA139.ps1 new file mode 100644 index 000000000000..d285fb841375 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA139.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA139 { + <# + .SYNOPSIS + Spam action set to move message to junk mail folder or quarantine + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA139' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Spam action set to move message to junk mail folder or quarantine' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.SpamAction -in @('MoveToJmf', 'Quarantine')) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-spam policies have Spam action set to move to Junk Email folder or Quarantine.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-spam policies do not have Spam action set appropriately.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Spam Action |`n" + $Result += "|------------|------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.SpamAction) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA139' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Spam action set to move message to junk mail folder or quarantine' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA139' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Spam action set to move message to junk mail folder or quarantine' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA140.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA140.md new file mode 100644 index 000000000000..180dd069263a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA140.md @@ -0,0 +1,8 @@ +High confidence spam messages are very likely to be spam and should be quarantined to prevent them from reaching users' inboxes. Setting the high confidence spam action to "Quarantine" provides the strongest protection against spam while maintaining the ability to review and release false positives if necessary. + +**Remediation action** + +- [Configure anti-spam policies in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA140.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA140.ps1 new file mode 100644 index 000000000000..df9bc587b330 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA140.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA140 { + <# + .SYNOPSIS + High Confidence Spam action set to Quarantine message + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA140' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'High Confidence Spam action set to Quarantine message' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.HighConfidenceSpamAction -eq 'Quarantine') { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-spam policies have High Confidence Spam action set to Quarantine.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-spam policies do not have High Confidence Spam action set to Quarantine.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | High Confidence Spam Action |`n" + $Result += "|------------|---------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.HighConfidenceSpamAction) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA140' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'High Confidence Spam action set to Quarantine message' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA140' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'High Confidence Spam action set to Quarantine message' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA141.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA141.md new file mode 100644 index 000000000000..1b07c3a2e640 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA141.md @@ -0,0 +1,8 @@ +Bulk email messages should be moved to the Junk Email folder to reduce inbox clutter while maintaining access for users who may want to receive such communications. Setting the bulk action to "Move to Junk Email Folder" or "Quarantine" helps filter marketing emails and mass mailings appropriately based on the Bulk Complaint Level (BCL) threshold. + +**Remediation action** + +- [Configure anti-spam policies in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Bulk Complaint Level (BCL) in Exchange Online Protection](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-bulk-complaint-level-bcl-about) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA141.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA141.ps1 new file mode 100644 index 000000000000..678b28afb0ec --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA141.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA141 { + <# + .SYNOPSIS + Bulk action set to Move message to Junk Email Folder + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA141' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'Bulk action set to Move message to Junk Email Folder' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.BulkSpamAction -in @('MoveToJmf', 'Quarantine')) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-spam policies have Bulk action set to Move to Junk Email folder.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-spam policies do not have Bulk action set to Move to Junk Email folder.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Bulk Spam Action |`n" + $Result += "|------------|-----------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.BulkSpamAction) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA141' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Low' -Name 'Bulk action set to Move message to Junk Email Folder' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA141' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'Bulk action set to Move message to Junk Email Folder' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA142.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA142.md new file mode 100644 index 000000000000..eb1d0efd8295 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA142.md @@ -0,0 +1,8 @@ +Messages identified as phishing attempts should be quarantined immediately to protect users from credential theft and malicious content. Setting the phishing spam action to "Quarantine" prevents these dangerous messages from reaching user mailboxes while allowing administrators to review and analyze them for security purposes. + +**Remediation action** + +- [Configure anti-spam policies in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA142.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA142.ps1 new file mode 100644 index 000000000000..41c7dcddbb2f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA142.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA142 { + <# + .SYNOPSIS + Phish action set to Quarantine message + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA142' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Phish action set to Quarantine message' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.PhishSpamAction -eq 'Quarantine') { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-spam policies have Phish action set to Quarantine.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-spam policies do not have Phish action set to Quarantine.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Phish Spam Action |`n" + $Result += "|------------|------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.PhishSpamAction) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA142' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Phish action set to Quarantine message' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA142' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Phish action set to Quarantine message' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA143.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA143.md new file mode 100644 index 000000000000..467eebcd10a6 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA143.md @@ -0,0 +1,8 @@ +Safety Tips provide inline warnings in email messages to help users identify suspicious or potentially dangerous content. Enabling Safety Tips displays visual indicators for spam, phishing, and spoofing attempts directly in the email client, helping users make informed decisions about email safety. + +**Remediation action** + +- [Configure anti-spam policies in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Safety tips in email messages in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-safety-tips-about) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA143.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA143.ps1 new file mode 100644 index 000000000000..6056b9cc78ad --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA143.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA143 { + <# + .SYNOPSIS + Safety Tips are enabled + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA143' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'Safety Tips are enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.InlineSafetyTipsEnabled -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-spam policies have Safety Tips enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-spam policies do not have Safety Tips enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Inline Safety Tips Enabled |`n" + $Result += "|------------|---------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.InlineSafetyTipsEnabled) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA143' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Low' -Name 'Safety Tips are enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA143' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'Safety Tips are enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA156.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA156.md new file mode 100644 index 000000000000..85ca74b26e19 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA156.md @@ -0,0 +1,8 @@ +Safe Links should track user clicks on protected URLs to provide visibility into potential security threats and user behavior. Enabling click tracking allows administrators to monitor which users are clicking on potentially dangerous links and helps identify targeted attacks or compromised accounts. + +**Remediation action** + +- [Set up Safe Links policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-policies-configure) +- [Safe Links in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-about) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA156.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA156.ps1 new file mode 100644 index 000000000000..d73eb7152c02 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA156.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA156 { + <# + .SYNOPSIS + Safe Links Policies are tracking when user clicks on safe links + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoSafeLinksPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA156' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'Safe Links Policies are tracking user clicks' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.TrackClicks -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All Safe Links policies are tracking user clicks.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) Safe Links policies are not tracking user clicks.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Track Clicks |`n" + $Result += "|------------|-------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.TrackClicks) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA156' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Low' -Name 'Safe Links Policies are tracking user clicks' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA156' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'Safe Links Policies are tracking user clicks' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA158.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA158.md new file mode 100644 index 000000000000..ed9aadb907e4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA158.md @@ -0,0 +1,8 @@ +Safe Attachments protection should be enabled for SharePoint, OneDrive, and Microsoft Teams to scan files for malicious content before users can access them. This protection helps prevent malware from spreading through file sharing and collaboration platforms, providing an additional layer of security beyond email protection. + +**Remediation action** + +- [Turn on Safe Attachments for SharePoint, OneDrive, and Microsoft Teams](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-attachments-for-spo-odfb-teams-configure) +- [Safe Attachments in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-attachments-about) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA158.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA158.ps1 new file mode 100644 index 000000000000..8f8852090651 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA158.ps1 @@ -0,0 +1,35 @@ +function Invoke-CippTestORCA158 { + <# + .SYNOPSIS + Safe Attachments is enabled for SharePoint and Teams + #> + param($Tenant) + + try { + $AtpPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAtpPolicyForO365' + + if (-not $AtpPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA158' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Safe Attachments enabled for SharePoint and Teams' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Safe Attachments' + return + } + + $Policy = $AtpPolicy | Select-Object -First 1 + + if ($Policy.EnableATPForSPOTeamsODB -eq $true) { + $Status = 'Passed' + $Result = "Safe Attachments is enabled for SharePoint, OneDrive, and Teams.`n`n" + $Result += "**EnableATPForSPOTeamsODB:** $($Policy.EnableATPForSPOTeamsODB)" + } else { + $Status = 'Failed' + $Result = "Safe Attachments is NOT enabled for SharePoint, OneDrive, and Teams.`n`n" + $Result += "**EnableATPForSPOTeamsODB:** $($Policy.EnableATPForSPOTeamsODB)" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA158' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Safe Attachments enabled for SharePoint and Teams' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Safe Attachments' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA158' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Safe Attachments enabled for SharePoint and Teams' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Safe Attachments' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA179.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA179.md new file mode 100644 index 000000000000..b880df63edae --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA179.md @@ -0,0 +1,8 @@ +Safe Links should be enabled for internal email messages to protect against threats from compromised accounts within the organization. While external threats are the primary concern, internal accounts can be compromised and used to spread malicious links to other users in the organization. + +**Remediation action** + +- [Set up Safe Links policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-policies-configure) +- [Safe Links in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-about) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA179.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA179.ps1 new file mode 100644 index 000000000000..e72205f9ee4c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA179.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA179 { + <# + .SYNOPSIS + Safe Links is enabled intra-organization + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoSafeLinksPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA179' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Safe Links is enabled intra-organization' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.EnableForInternalSenders -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All Safe Links policies are enabled for internal senders.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) Safe Links policies are not enabled for internal senders.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Enable For Internal Senders |`n" + $Result += "|------------|----------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.EnableForInternalSenders) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA179' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Safe Links is enabled intra-organization' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA179' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Safe Links is enabled intra-organization' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA180.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA180.md new file mode 100644 index 000000000000..5f39f69bcc2d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA180.md @@ -0,0 +1,8 @@ +Spoof Intelligence uses machine learning to distinguish between legitimate and malicious email spoofing attempts. Enabling Spoof Intelligence in anti-phishing policies helps protect users from impersonation attacks by analyzing sender patterns and blocking suspicious spoofed messages while allowing legitimate forwarded or mailing list messages. + +**Remediation action** + +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-mdo-configure) +- [Spoof intelligence insight in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spoofing-spoof-intelligence) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA180.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA180.ps1 new file mode 100644 index 000000000000..af5b1840cd38 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA180.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA180 { + <# + .SYNOPSIS + Anti-phishing policy exists and EnableSpoofIntelligence is true + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAntiPhishPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA180' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Spoof Intelligence is enabled' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Phish' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.EnableSpoofIntelligence -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-phishing policies have Spoof Intelligence enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-phishing policies do not have Spoof Intelligence enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Enable Spoof Intelligence |`n" + $Result += "|------------|--------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.EnableSpoofIntelligence) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA180' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Spoof Intelligence is enabled' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Phish' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA180' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Spoof Intelligence is enabled' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Phish' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA189.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA189.md new file mode 100644 index 000000000000..5b25d1b0ad4c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA189.md @@ -0,0 +1,8 @@ +Transport rules should not be configured to bypass Safe Attachments scanning. Bypassing Safe Attachments processing creates a security gap that allows malicious files to reach users without being scanned, potentially leading to malware infections and data breaches. All email messages should go through Safe Attachments scanning to ensure comprehensive protection. + +**Remediation action** + +- [Review and modify transport rules in Exchange Online](https://learn.microsoft.com/exchange/security-and-compliance/mail-flow-rules/manage-mail-flow-rules) +- [Safe Attachments in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-attachments-about) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA189.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA189.ps1 new file mode 100644 index 000000000000..aa26117ba876 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA189.ps1 @@ -0,0 +1,43 @@ +function Invoke-CippTestORCA189 { + <# + .SYNOPSIS + Safe Attachments is not bypassed + #> + param($Tenant) + + try { + $Rules = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoTransportRules' + + if (-not $Rules) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA189' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Safe Attachments is not bypassed' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Safe Attachments' + return + } + + $BypassRules = [System.Collections.Generic.List[object]]::new() + foreach ($Rule in $Rules) { + if ($Rule.SetHeaderName -eq 'X-MS-Exchange-Organization-SkipSafeAttachmentProcessing' -and $Rule.SetHeaderValue -eq '1') { + $BypassRules.Add($Rule) | Out-Null + } + } + + if ($BypassRules.Count -eq 0) { + $Status = 'Passed' + $Result = "No transport rules are bypassing Safe Attachments processing." + } else { + $Status = 'Failed' + $Result = "$($BypassRules.Count) transport rules are bypassing Safe Attachments processing.`n`n" + $Result += "| Rule Name | Priority |`n" + $Result += "|-----------|----------|`n" + foreach ($Rule in $BypassRules) { + $Result += "| $($Rule.Name) | $($Rule.Priority) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA189' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Safe Attachments is not bypassed' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Safe Attachments' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA189' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Safe Attachments is not bypassed' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Safe Attachments' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA189_2.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA189_2.md new file mode 100644 index 000000000000..586b2d1ad64d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA189_2.md @@ -0,0 +1,8 @@ +Transport rules should not be configured to bypass Safe Links protection. Bypassing Safe Links processing disables URL scanning and protection, allowing potentially malicious links to reach users without being analyzed. This creates a significant security vulnerability that attackers can exploit to deliver phishing and malware attacks. + +**Remediation action** + +- [Review and modify transport rules in Exchange Online](https://learn.microsoft.com/exchange/security-and-compliance/mail-flow-rules/manage-mail-flow-rules) +- [Safe Links in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-about) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA189_2.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA189_2.ps1 new file mode 100644 index 000000000000..62ee60914a2a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA189_2.ps1 @@ -0,0 +1,43 @@ +function Invoke-CippTestORCA189_2 { + <# + .SYNOPSIS + Safe Links is not bypassed + #> + param($Tenant) + + try { + $Rules = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoTransportRules' + + if (-not $Rules) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA189_2' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Safe Links is not bypassed' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Safe Links' + return + } + + $BypassRules = [System.Collections.Generic.List[object]]::new() + foreach ($Rule in $Rules) { + if ($Rule.SetHeaderName -eq 'X-MS-Exchange-Organization-SkipSafeLinksProcessing' -and $Rule.SetHeaderValue -eq '1') { + $BypassRules.Add($Rule) | Out-Null + } + } + + if ($BypassRules.Count -eq 0) { + $Status = 'Passed' + $Result = "No transport rules are bypassing Safe Links processing." + } else { + $Status = 'Failed' + $Result = "$($BypassRules.Count) transport rules are bypassing Safe Links processing.`n`n" + $Result += "| Rule Name | Priority |`n" + $Result += "|-----------|----------|`n" + foreach ($Rule in $BypassRules) { + $Result += "| $($Rule.Name) | $($Rule.Priority) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA189_2' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Safe Links is not bypassed' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Safe Links' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA189_2' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Safe Links is not bypassed' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Safe Links' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA205.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA205.md new file mode 100644 index 000000000000..e25749c79d9d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA205.md @@ -0,0 +1,8 @@ +Common attachment type filtering automatically blocks file types commonly used for malware delivery, such as executable files, scripts, and certain document types. Enabling this feature provides an additional layer of protection by preventing dangerous file types from reaching user mailboxes, even if malware signatures are not yet detected. + +**Remediation action** + +- [Configure anti-malware policies in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-malware-policies-configure) +- [Anti-malware protection in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-malware-protection-about) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA205.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA205.ps1 new file mode 100644 index 000000000000..51ecc2c16d88 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA205.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA205 { + <# + .SYNOPSIS + Common attachment type filter is enabled + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoMalwareFilterPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA205' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Common attachment type filter is enabled' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Malware' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.EnableFileFilter -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All malware filter policies have common attachment type filter enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) malware filter policies do not have common attachment type filter enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Enable File Filter |`n" + $Result += "|------------|-------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.EnableFileFilter) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA205' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Common attachment type filter is enabled' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Malware' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA205' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Common attachment type filter is enabled' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Malware' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA220.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA220.md new file mode 100644 index 000000000000..963b965b6e75 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA220.md @@ -0,0 +1,8 @@ +The phishing threshold level determines how aggressively anti-phishing policies identify and block phishing attempts. Setting the threshold to level 2 (Aggressive) or higher provides stronger protection against sophisticated phishing attacks by applying more stringent detection criteria, though it may increase the risk of false positives for legitimate messages. + +**Remediation action** + +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-mdo-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA220.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA220.ps1 new file mode 100644 index 000000000000..d266a8461cd1 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA220.ps1 @@ -0,0 +1,50 @@ +function Invoke-CippTestORCA220 { + <# + .SYNOPSIS + Advanced Phish filter Threshold level is adequate + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAntiPhishPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA220' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Advanced Phish filter Threshold level is adequate' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + # PhishThresholdLevel: 1=Standard, 2=Aggressive, 3=More Aggressive, 4=Most Aggressive + if ($Policy.PhishThresholdLevel -ge 2) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-phishing policies have adequate phishing threshold levels (2 or higher).`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-phishing policies have inadequate phishing threshold levels.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Phish Threshold Level |`n" + $Result += "|------------|----------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.PhishThresholdLevel) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA220' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Advanced Phish filter Threshold level is adequate' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA220' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Advanced Phish filter Threshold level is adequate' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA221.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA221.md new file mode 100644 index 000000000000..85d5fb232935 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA221.md @@ -0,0 +1,8 @@ +Mailbox intelligence uses machine learning to understand each user's email patterns and communication habits to better detect impersonation attempts. When enabled, this feature analyzes historical email data to identify when someone is attempting to impersonate a user's regular contacts, providing personalized protection against targeted phishing attacks. + +**Remediation action** + +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-mdo-configure) +- [Impersonation insight in Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-mdo-impersonation-insight) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA221.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA221.ps1 new file mode 100644 index 000000000000..f76784f3680d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA221.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA221 { + <# + .SYNOPSIS + Mailbox intelligence is enabled in anti-phishing policies + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAntiPhishPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA221' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Mailbox intelligence is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.EnableMailboxIntelligence -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-phishing policies have mailbox intelligence enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-phishing policies do not have mailbox intelligence enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Enable Mailbox Intelligence |`n" + $Result += "|------------|----------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.EnableMailboxIntelligence) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA221' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Mailbox intelligence is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA221' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Mailbox intelligence is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA222.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA222.md new file mode 100644 index 000000000000..42c43006016e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA222.md @@ -0,0 +1,8 @@ +Domain impersonation protection should quarantine messages that attempt to impersonate protected domains. When attackers try to spoof your organization's domain or partner domains, quarantining these messages prevents users from interacting with potentially malicious content designed to look like legitimate communication from trusted domains. + +**Remediation action** + +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-mdo-configure) +- [Impersonation protection in anti-phishing policies](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-about#impersonation-settings-in-anti-phishing-policies-in-microsoft-defender-for-office-365) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA222.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA222.ps1 new file mode 100644 index 000000000000..14d2ccc5e552 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA222.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA222 { + <# + .SYNOPSIS + Domain Impersonation action is set to move to Quarantine + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAntiPhishPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA222' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Domain Impersonation action set to Quarantine' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Phish' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.TargetedDomainProtectionAction -eq 'Quarantine') { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-phishing policies have Domain Impersonation action set to Quarantine.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-phishing policies do not have Domain Impersonation action set to Quarantine.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Targeted Domain Protection Action |`n" + $Result += "|------------|----------------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.TargetedDomainProtectionAction) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA222' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Domain Impersonation action set to Quarantine' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Phish' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA222' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Domain Impersonation action set to Quarantine' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Phish' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA223.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA223.md new file mode 100644 index 000000000000..2be219b8fdf5 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA223.md @@ -0,0 +1,8 @@ +User impersonation protection should quarantine messages that attempt to impersonate protected users such as executives and other high-value targets. Quarantining these messages prevents sophisticated spear-phishing attacks that target specific individuals by impersonating their trusted contacts, colleagues, or business partners. + +**Remediation action** + +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-mdo-configure) +- [Impersonation protection in anti-phishing policies](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-about#impersonation-settings-in-anti-phishing-policies-in-microsoft-defender-for-office-365) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA223.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA223.ps1 new file mode 100644 index 000000000000..3600edeb0723 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA223.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA223 { + <# + .SYNOPSIS + User impersonation action is set to move to Quarantine + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAntiPhishPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA223' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'User impersonation action set to Quarantine' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Phish' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.TargetedUserProtectionAction -eq 'Quarantine') { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-phishing policies have User Impersonation action set to Quarantine.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-phishing policies do not have User Impersonation action set to Quarantine.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Targeted User Protection Action |`n" + $Result += "|------------|--------------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.TargetedUserProtectionAction) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA223' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'User impersonation action set to Quarantine' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Phish' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA223' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'User impersonation action set to Quarantine' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Phish' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA224.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA224.md new file mode 100644 index 000000000000..05fbf80bfdbe --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA224.md @@ -0,0 +1,8 @@ +Similar Users Safety Tips display warnings when messages appear to come from senders with names similar to protected users in your organization. This visual indicator helps users identify potential impersonation attempts where attackers use slightly misspelled or visually similar names to trick recipients into believing the message is from a trusted colleague. + +**Remediation action** + +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-mdo-configure) +- [Safety tips in email messages in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-safety-tips-about) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA224.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA224.ps1 new file mode 100644 index 000000000000..77e84a0a96cf --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA224.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA224 { + <# + .SYNOPSIS + Similar Users Safety Tips is enabled + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAntiPhishPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA224' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Similar Users Safety Tips is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.EnableSimilarUsersSafetyTips -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-phishing policies have Similar Users Safety Tips enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-phishing policies do not have Similar Users Safety Tips enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Enable Similar Users Safety Tips |`n" + $Result += "|------------|----------------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.EnableSimilarUsersSafetyTips) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA224' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Similar Users Safety Tips is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA224' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Similar Users Safety Tips is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA225.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA225.md new file mode 100644 index 000000000000..838e80444335 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA225.md @@ -0,0 +1,8 @@ +Safe Documents uses Microsoft Defender for Endpoint to scan documents opened in Office applications in Protected View. When enabled, this feature provides additional protection by analyzing Office files for malicious content before allowing users to edit them, helping prevent zero-day attacks and advanced threats delivered through documents. + +**Remediation action** + +- [Safe Documents in Microsoft 365 E5](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-documents-in-e5-plus-security-about) +- [Enable Safe Documents for Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-documents-in-e5-plus-security-about#use-the-microsoft-365-defender-portal-to-configure-safe-documents) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA225.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA225.ps1 new file mode 100644 index 000000000000..9c0fc333de87 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA225.ps1 @@ -0,0 +1,35 @@ +function Invoke-CippTestORCA225 { + <# + .SYNOPSIS + Safe Documents is enabled for Office clients + #> + param($Tenant) + + try { + $AtpPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAtpPolicyForO365' + + if (-not $AtpPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA225' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Safe Documents is enabled for Office clients' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Attachments' + return + } + + $Policy = $AtpPolicy | Select-Object -First 1 + + if ($Policy.EnableSafeDocs -eq $true) { + $Status = 'Passed' + $Result = "Safe Documents is enabled for Office clients.`n`n" + $Result += "**EnableSafeDocs:** $($Policy.EnableSafeDocs)" + } else { + $Status = 'Failed' + $Result = "Safe Documents is NOT enabled for Office clients.`n`n" + $Result += "**EnableSafeDocs:** $($Policy.EnableSafeDocs)" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA225' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Safe Documents is enabled for Office clients' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Attachments' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA225' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Safe Documents is enabled for Office clients' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Attachments' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA226.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA226.md new file mode 100644 index 000000000000..29973d736834 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA226.md @@ -0,0 +1,8 @@ +Each accepted domain in your organization should be covered by a Safe Links policy to ensure all users receive URL protection. Without domain-specific Safe Links coverage, users in certain domains may not be protected from malicious links, creating security gaps that attackers can exploit to target specific business units or subsidiaries. + +**Remediation action** + +- [Set up Safe Links policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-policies-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA226.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA226.ps1 new file mode 100644 index 000000000000..81c895569cb6 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA226.ps1 @@ -0,0 +1,60 @@ +function Invoke-CippTestORCA226 { + <# + .SYNOPSIS + Each domain has a Safe Links policy + #> + param($Tenant) + + try { + $AcceptedDomains = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAcceptedDomains' + $SafeLinksPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoSafeLinksPolicies' + + if (-not $AcceptedDomains) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA226' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No accepted domains found in database.' -Risk 'High' -Name 'Each domain has a Safe Links policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Safe Links' + return + } + + if (-not $SafeLinksPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA226' -TestType 'Identity' -Status 'Failed' -ResultMarkdown 'No Safe Links policies found. Each domain should have a Safe Links policy.' -Risk 'High' -Name 'Each domain has a Safe Links policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Safe Links' + return + } + + # Get all recipient domains from policies + $CoveredDomains = [System.Collections.Generic.List[string]]::new() + foreach ($Policy in $SafeLinksPolicies) { + if ($Policy.RecipientDomainIs) { + foreach ($Domain in $Policy.RecipientDomainIs) { + $CoveredDomains.Add($Domain) | Out-Null + } + } + } + + $DomainsWithoutPolicy = [System.Collections.Generic.List[string]]::new() + foreach ($Domain in $AcceptedDomains) { + if ($CoveredDomains -notcontains $Domain.DomainName) { + $DomainsWithoutPolicy.Add($Domain.DomainName) | Out-Null + } + } + + if ($DomainsWithoutPolicy.Count -eq 0) { + $Status = 'Passed' + $Result = "All accepted domains are covered by Safe Links policies.`n`n" + $Result += "**Total Accepted Domains:** $($AcceptedDomains.Count)`n" + $Result += "**Total Safe Links Policies:** $($SafeLinksPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($DomainsWithoutPolicy.Count) domains do not have a Safe Links policy.`n`n" + $Result += "**Domains Without Policy:**`n`n" + foreach ($Domain in $DomainsWithoutPolicy) { + $Result += "- $Domain`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA226' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Each domain has a Safe Links policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Safe Links' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA226' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Each domain has a Safe Links policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Safe Links' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA227.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA227.md new file mode 100644 index 000000000000..ad2b56ce49db --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA227.md @@ -0,0 +1,8 @@ +Each accepted domain in your organization should be covered by a Safe Attachments policy to ensure all users receive malware protection. Without domain-specific Safe Attachments coverage, users in certain domains may not be protected from malicious files, creating security vulnerabilities that can be exploited to deliver malware to unprotected segments of your organization. + +**Remediation action** + +- [Set up Safe Attachments policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-attachments-policies-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA227.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA227.ps1 new file mode 100644 index 000000000000..deb01c9eda53 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA227.ps1 @@ -0,0 +1,60 @@ +function Invoke-CippTestORCA227 { + <# + .SYNOPSIS + Each domain has a Safe Attachments policy + #> + param($Tenant) + + try { + $AcceptedDomains = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAcceptedDomains' + $SafeAttachmentPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoSafeAttachmentPolicies' + + if (-not $AcceptedDomains) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA227' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No accepted domains found in database.' -Risk 'High' -Name 'Each domain has a Safe Attachments policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Safe Attachments' + return + } + + if (-not $SafeAttachmentPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA227' -TestType 'Identity' -Status 'Failed' -ResultMarkdown 'No Safe Attachments policies found. Each domain should have a Safe Attachments policy.' -Risk 'High' -Name 'Each domain has a Safe Attachments policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Safe Attachments' + return + } + + # Get all recipient domains from policies + $CoveredDomains = [System.Collections.Generic.List[string]]::new() + foreach ($Policy in $SafeAttachmentPolicies) { + if ($Policy.RecipientDomainIs) { + foreach ($Domain in $Policy.RecipientDomainIs) { + $CoveredDomains.Add($Domain) | Out-Null + } + } + } + + $DomainsWithoutPolicy = [System.Collections.Generic.List[string]]::new() + foreach ($Domain in $AcceptedDomains) { + if ($CoveredDomains -notcontains $Domain.DomainName) { + $DomainsWithoutPolicy.Add($Domain.DomainName) | Out-Null + } + } + + if ($DomainsWithoutPolicy.Count -eq 0) { + $Status = 'Passed' + $Result = "All accepted domains are covered by Safe Attachments policies.`n`n" + $Result += "**Total Accepted Domains:** $($AcceptedDomains.Count)`n" + $Result += "**Total Safe Attachments Policies:** $($SafeAttachmentPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($DomainsWithoutPolicy.Count) domains do not have a Safe Attachments policy.`n`n" + $Result += "**Domains Without Policy:**`n`n" + foreach ($Domain in $DomainsWithoutPolicy) { + $Result += "- $Domain`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA227' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Each domain has a Safe Attachments policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Safe Attachments' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA227' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Each domain has a Safe Attachments policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Safe Attachments' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA228.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA228.md new file mode 100644 index 000000000000..cf9282fab859 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA228.md @@ -0,0 +1,8 @@ +Anti-phishing policies should not include trusted senders or exclusions, as this creates security gaps that attackers can exploit. Excluding senders from anti-phishing protection means those addresses can be spoofed without detection, allowing attackers to bypass impersonation and spoof protection by using excluded addresses in their phishing campaigns. + +**Remediation action** + +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-mdo-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA228.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA228.ps1 new file mode 100644 index 000000000000..8a25941105f8 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA228.ps1 @@ -0,0 +1,52 @@ +function Invoke-CippTestORCA228 { + <# + .SYNOPSIS + No trusted senders in Anti-phishing policy + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAntiPhishPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA228' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'No trusted senders in Anti-phishing policy' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Phish' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + $HasTrustedSenders = ($Policy.ExcludedSenders -and $Policy.ExcludedSenders.Count -gt 0) + + if (-not $HasTrustedSenders) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "No anti-phishing policies have trusted senders configured.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-phishing policies have trusted senders configured.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Excluded Senders Count |`n" + $Result += "|------------|----------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Count = if ($Policy.ExcludedSenders) { $Policy.ExcludedSenders.Count } else { 0 } + $Result += "| $($Policy.Identity) | $Count |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA228' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'No trusted senders in Anti-phishing policy' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Phish' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA228' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'No trusted senders in Anti-phishing policy' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Phish' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA229.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA229.md new file mode 100644 index 000000000000..3e85642c5d9f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA229.md @@ -0,0 +1,8 @@ +Anti-phishing policies should not include trusted domains or exclusions, as this weakens domain impersonation protection. Excluding domains from anti-phishing checks allows attackers to register similar-looking domains or spoof excluded domains without triggering security alerts, making it easier to conduct convincing phishing attacks against your users. + +**Remediation action** + +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-mdo-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA229.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA229.ps1 new file mode 100644 index 000000000000..c9c8ba9fa1cd --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA229.ps1 @@ -0,0 +1,52 @@ +function Invoke-CippTestORCA229 { + <# + .SYNOPSIS + No trusted domains in Anti-phishing policy + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAntiPhishPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA229' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'No trusted domains in Anti-phishing policy' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Phish' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + $HasTrustedDomains = ($Policy.ExcludedDomains -and $Policy.ExcludedDomains.Count -gt 0) + + if (-not $HasTrustedDomains) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "No anti-phishing policies have trusted domains configured.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-phishing policies have trusted domains configured.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Excluded Domains Count |`n" + $Result += "|------------|----------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Count = if ($Policy.ExcludedDomains) { $Policy.ExcludedDomains.Count } else { 0 } + $Result += "| $($Policy.Identity) | $Count |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA229' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'No trusted domains in Anti-phishing policy' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Phish' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA229' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'No trusted domains in Anti-phishing policy' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Phish' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA230.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA230.md new file mode 100644 index 000000000000..1c8dae777e9c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA230.md @@ -0,0 +1,8 @@ +Each accepted domain in your organization should be covered by an anti-phishing policy to ensure all users receive protection from impersonation and spoofing attacks. Without domain-specific anti-phishing coverage, users in certain domains may be vulnerable to targeted phishing campaigns that exploit the lack of protection for their email addresses. + +**Remediation action** + +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-mdo-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA230.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA230.ps1 new file mode 100644 index 000000000000..8d72b0ffaccb --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA230.ps1 @@ -0,0 +1,60 @@ +function Invoke-CippTestORCA230 { + <# + .SYNOPSIS + Each domain has an Anti-phishing policy + #> + param($Tenant) + + try { + $AcceptedDomains = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAcceptedDomains' + $AntiPhishPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAntiPhishPolicies' + + if (-not $AcceptedDomains) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA230' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No accepted domains found in database.' -Risk 'High' -Name 'Each domain has an Anti-phishing policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Anti-Phish' + return + } + + if (-not $AntiPhishPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA230' -TestType 'Identity' -Status 'Failed' -ResultMarkdown 'No Anti-phishing policies found. Each domain should have an Anti-phishing policy.' -Risk 'High' -Name 'Each domain has an Anti-phishing policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Anti-Phish' + return + } + + # Get all recipient domains from policies + $CoveredDomains = [System.Collections.Generic.List[string]]::new() + foreach ($Policy in $AntiPhishPolicies) { + if ($Policy.RecipientDomainIs) { + foreach ($Domain in $Policy.RecipientDomainIs) { + $CoveredDomains.Add($Domain) | Out-Null + } + } + } + + $DomainsWithoutPolicy = [System.Collections.Generic.List[string]]::new() + foreach ($Domain in $AcceptedDomains) { + if ($CoveredDomains -notcontains $Domain.DomainName) { + $DomainsWithoutPolicy.Add($Domain.DomainName) | Out-Null + } + } + + if ($DomainsWithoutPolicy.Count -eq 0) { + $Status = 'Passed' + $Result = "All accepted domains are covered by Anti-phishing policies.`n`n" + $Result += "**Total Accepted Domains:** $($AcceptedDomains.Count)`n" + $Result += "**Total Anti-phishing Policies:** $($AntiPhishPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($DomainsWithoutPolicy.Count) domains do not have an Anti-phishing policy.`n`n" + $Result += "**Domains Without Policy:**`n`n" + foreach ($Domain in $DomainsWithoutPolicy) { + $Result += "- $Domain`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA230' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Each domain has an Anti-phishing policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Anti-Phish' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA230' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Each domain has an Anti-phishing policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Anti-Phish' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA231.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA231.md new file mode 100644 index 000000000000..47e7daa0084e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA231.md @@ -0,0 +1,8 @@ +Each accepted domain in your organization should be covered by an anti-spam policy to ensure all users receive protection from unwanted and malicious email. Without domain-specific anti-spam coverage, users in certain domains may receive higher volumes of spam and potentially malicious messages, increasing security risks and reducing productivity. + +**Remediation action** + +- [Configure anti-spam policies in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA231.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA231.ps1 new file mode 100644 index 000000000000..2dd1c57ef583 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA231.ps1 @@ -0,0 +1,60 @@ +function Invoke-CippTestORCA231 { + <# + .SYNOPSIS + Each domain has an anti-spam policy + #> + param($Tenant) + + try { + $AcceptedDomains = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAcceptedDomains' + $ContentFilterPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $AcceptedDomains) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA231' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No accepted domains found in database.' -Risk 'High' -Name 'Each domain has an anti-spam policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Anti-Spam' + return + } + + if (-not $ContentFilterPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA231' -TestType 'Identity' -Status 'Failed' -ResultMarkdown 'No anti-spam policies found. Each domain should have an anti-spam policy.' -Risk 'High' -Name 'Each domain has an anti-spam policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Anti-Spam' + return + } + + # Get all recipient domains from policies + $CoveredDomains = [System.Collections.Generic.List[string]]::new() + foreach ($Policy in $ContentFilterPolicies) { + if ($Policy.RecipientDomainIs) { + foreach ($Domain in $Policy.RecipientDomainIs) { + $CoveredDomains.Add($Domain) | Out-Null + } + } + } + + $DomainsWithoutPolicy = [System.Collections.Generic.List[string]]::new() + foreach ($Domain in $AcceptedDomains) { + if ($CoveredDomains -notcontains $Domain.DomainName) { + $DomainsWithoutPolicy.Add($Domain.DomainName) | Out-Null + } + } + + if ($DomainsWithoutPolicy.Count -eq 0) { + $Status = 'Passed' + $Result = "All accepted domains are covered by anti-spam policies.`n`n" + $Result += "**Total Accepted Domains:** $($AcceptedDomains.Count)`n" + $Result += "**Total Anti-spam Policies:** $($ContentFilterPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($DomainsWithoutPolicy.Count) domains do not have an anti-spam policy.`n`n" + $Result += "**Domains Without Policy:**`n`n" + foreach ($Domain in $DomainsWithoutPolicy) { + $Result += "- $Domain`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA231' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Each domain has an anti-spam policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA231' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Each domain has an anti-spam policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA232.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA232.md new file mode 100644 index 000000000000..9a2b166214ea --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA232.md @@ -0,0 +1,8 @@ +Each accepted domain in your organization should be covered by a malware filter policy to ensure all users receive protection from malicious attachments and files. Without domain-specific malware filtering, users in certain domains may be exposed to viruses, trojans, and other malware delivered through email, creating potential entry points for security breaches. + +**Remediation action** + +- [Configure anti-malware policies in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-malware-policies-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA232.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA232.ps1 new file mode 100644 index 000000000000..f42577954039 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA232.ps1 @@ -0,0 +1,60 @@ +function Invoke-CippTestORCA232 { + <# + .SYNOPSIS + Each domain has a malware filter policy + #> + param($Tenant) + + try { + $AcceptedDomains = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAcceptedDomains' + $MalwarePolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoMalwareFilterPolicies' + + if (-not $AcceptedDomains) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA232' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No accepted domains found in database.' -Risk 'High' -Name 'Each domain has a malware filter policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Malware' + return + } + + if (-not $MalwarePolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA232' -TestType 'Identity' -Status 'Failed' -ResultMarkdown 'No malware filter policies found. Each domain should have a malware filter policy.' -Risk 'High' -Name 'Each domain has a malware filter policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Malware' + return + } + + # Get all recipient domains from policies + $CoveredDomains = [System.Collections.Generic.List[string]]::new() + foreach ($Policy in $MalwarePolicies) { + if ($Policy.RecipientDomainIs) { + foreach ($Domain in $Policy.RecipientDomainIs) { + $CoveredDomains.Add($Domain) | Out-Null + } + } + } + + $DomainsWithoutPolicy = [System.Collections.Generic.List[string]]::new() + foreach ($Domain in $AcceptedDomains) { + if ($CoveredDomains -notcontains $Domain.DomainName) { + $DomainsWithoutPolicy.Add($Domain.DomainName) | Out-Null + } + } + + if ($DomainsWithoutPolicy.Count -eq 0) { + $Status = 'Passed' + $Result = "All accepted domains are covered by malware filter policies.`n`n" + $Result += "**Total Accepted Domains:** $($AcceptedDomains.Count)`n" + $Result += "**Total Malware Filter Policies:** $($MalwarePolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($DomainsWithoutPolicy.Count) domains do not have a malware filter policy.`n`n" + $Result += "**Domains Without Policy:**`n`n" + foreach ($Domain in $DomainsWithoutPolicy) { + $Result += "- $Domain`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA232' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Each domain has a malware filter policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Malware' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA232' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Each domain has a malware filter policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Malware' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA233.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA233.md new file mode 100644 index 000000000000..e946c14da7cf --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA233.md @@ -0,0 +1,8 @@ +Custom domains should have their MX records pointed directly at Exchange Online Protection (EOP) or use enhanced filtering with inbound connectors. This ensures that all email security features function properly, including SPF, DKIM, and DMARC validation. When mail flows through third-party services without proper configuration, important security signals can be lost. + +**Remediation action** + +- [Mail flow best practices for Exchange Online and Microsoft 365](https://learn.microsoft.com/exchange/mail-flow-best-practices/mail-flow-best-practices) +- [Enhanced filtering for connectors in Exchange Online](https://learn.microsoft.com/exchange/mail-flow-best-practices/use-connectors-to-configure-mail-flow/enhanced-filtering-for-connectors) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA233.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA233.ps1 new file mode 100644 index 000000000000..71815b0b0e78 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA233.ps1 @@ -0,0 +1,55 @@ +function Invoke-CippTestORCA233 { + <# + .SYNOPSIS + Domains pointed at EOP or enhanced filtering used + #> + param($Tenant) + + try { + $AcceptedDomains = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAcceptedDomains' + + if (-not $AcceptedDomains) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA233' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No accepted domains found in database.' -Risk 'High' -Name 'Domains pointed at EOP or enhanced filtering used' -UserImpact 'High' -ImplementationEffort 'High' -Category 'Configuration' + return + } + + # This test requires checking MX records and inbound connectors which may not be available + # We'll check if domains are authoritative (pointed at EOP) or use external mail flow + $NonCompliantDomains = [System.Collections.Generic.List[string]]::new() + $CompliantDomains = [System.Collections.Generic.List[string]]::new() + + foreach ($Domain in $AcceptedDomains) { + # Authoritative domains point MX to EOP + # InternalRelay/ExternalRelay domains use inbound connectors with enhanced filtering + if ($Domain.DomainType -eq 'Authoritative') { + $CompliantDomains.Add($Domain.DomainName) | Out-Null + } elseif ($Domain.DomainType -in @('InternalRelay', 'ExternalRelay')) { + # These should have enhanced filtering configured on inbound connectors + # For now, we'll mark these as compliant if they exist + $CompliantDomains.Add($Domain.DomainName) | Out-Null + } else { + $NonCompliantDomains.Add($Domain.DomainName) | Out-Null + } + } + + if ($NonCompliantDomains.Count -eq 0) { + $Status = 'Passed' + $Result = "All domains are properly configured for mail flow.`n`n" + $Result += "**Compliant Domains:** $($CompliantDomains.Count)" + } else { + $Status = 'Failed' + $Result = "$($NonCompliantDomains.Count) domains may not be properly configured for mail flow.`n`n" + $Result += "**Domains Needing Review:**`n`n" + foreach ($Domain in $NonCompliantDomains) { + $Result += "- $Domain`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA233' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Domains pointed at EOP or enhanced filtering used' -UserImpact 'High' -ImplementationEffort 'High' -Category 'Configuration' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA233' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Domains pointed at EOP or enhanced filtering used' -UserImpact 'High' -ImplementationEffort 'High' -Category 'Configuration' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA233_1.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA233_1.md new file mode 100644 index 000000000000..00f8a4abfbab --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA233_1.md @@ -0,0 +1,8 @@ +Enhanced filtering should be configured on inbound connectors when mail flows through third-party services before reaching Exchange Online. This feature preserves important email authentication signals and source IP information that would otherwise be lost, enabling proper SPF, DKIM, and DMARC validation as well as accurate spam and phishing detection. + +**Remediation action** + +- [Enhanced filtering for connectors in Exchange Online](https://learn.microsoft.com/exchange/mail-flow-best-practices/use-connectors-to-configure-mail-flow/enhanced-filtering-for-connectors) +- [Mail flow best practices for Exchange Online and Microsoft 365](https://learn.microsoft.com/exchange/mail-flow-best-practices/mail-flow-best-practices) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA233_1.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA233_1.ps1 new file mode 100644 index 000000000000..3243ff67a450 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA233_1.ps1 @@ -0,0 +1,44 @@ +function Invoke-CippTestORCA233_1 { + <# + .SYNOPSIS + Enhanced filtering on default connectors + #> + param($Tenant) + + try { + $OrgConfig = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoOrganizationConfig' + + if (-not $OrgConfig) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA233_1' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No organization config found in database.' -Risk 'Medium' -Name 'Enhanced filtering on default connectors' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Configuration' + return + } + + $Config = $OrgConfig | Select-Object -First 1 + + # Check if enhanced filtering is enabled + # This property may vary depending on Exchange Online version + $EnhancedFilteringEnabled = $false + + # Check various properties that indicate enhanced filtering + if ($Config.PSObject.Properties.Name -contains 'SkipListedFromForging') { + $EnhancedFilteringEnabled = $Config.SkipListedFromForging -eq $false + } + + if ($EnhancedFilteringEnabled) { + $Status = 'Passed' + $Result = "Enhanced filtering appears to be properly configured.`n`n" + $Result += "**Configuration:** Reviewed" + } else { + $Status = 'Informational' + $Result = "Unable to fully determine enhanced filtering status. Manual review recommended.`n`n" + $Result += "**Action Required:** Review inbound connectors for enhanced filtering configuration" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA233_1' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Enhanced filtering on default connectors' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Configuration' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA233_1' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Enhanced filtering on default connectors' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Configuration' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA234.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA234.md new file mode 100644 index 000000000000..0db2874cead6 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA234.md @@ -0,0 +1,8 @@ +Safe Documents click-through protection should be disabled to prevent users from opening potentially dangerous files before they are fully analyzed. When click-through is enabled, users can bypass the security check and open files while they are still being scanned, potentially exposing their systems to malware before the threat is identified. + +**Remediation action** + +- [Safe Documents in Microsoft 365 E5](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-documents-in-e5-plus-security-about) +- [Enable Safe Documents for Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-documents-in-e5-plus-security-about#use-the-microsoft-365-defender-portal-to-configure-safe-documents) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA234.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA234.ps1 new file mode 100644 index 000000000000..904c90d5f280 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA234.ps1 @@ -0,0 +1,35 @@ +function Invoke-CippTestORCA234 { + <# + .SYNOPSIS + Click through is disabled for Safe Documents + #> + param($Tenant) + + try { + $AtpPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAtpPolicyForO365' + + if (-not $AtpPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA234' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Click through is disabled for Safe Documents' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Attachments' + return + } + + $Policy = $AtpPolicy | Select-Object -First 1 + + if ($Policy.AllowSafeDocsOpen -eq $false) { + $Status = 'Passed' + $Result = "Click through is disabled for Safe Documents.`n`n" + $Result += "**AllowSafeDocsOpen:** $($Policy.AllowSafeDocsOpen)" + } else { + $Status = 'Failed' + $Result = "Click through is enabled for Safe Documents.`n`n" + $Result += "**AllowSafeDocsOpen:** $($Policy.AllowSafeDocsOpen)" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA234' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Click through is disabled for Safe Documents' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Attachments' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA234' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Click through is disabled for Safe Documents' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Attachments' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA235.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA235.md new file mode 100644 index 000000000000..a88a52617782 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA235.md @@ -0,0 +1,8 @@ +SPF (Sender Policy Framework) records should be configured for all custom domains to specify which mail servers are authorized to send email on behalf of your domain. Properly configured SPF records help prevent email spoofing and improve email deliverability by allowing receiving servers to verify that messages claiming to be from your domain actually originate from authorized sources. + +**Remediation action** + +- [Set up SPF to help prevent spoofing](https://learn.microsoft.com/microsoft-365/security/office-365-security/email-authentication-spf-configure) +- [Email authentication in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/email-authentication-about) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA235.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA235.ps1 new file mode 100644 index 000000000000..6d72efdf2bfe --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA235.ps1 @@ -0,0 +1,43 @@ +function Invoke-CippTestORCA235 { + <# + .SYNOPSIS + SPF records setup for custom domains + #> + param($Tenant) + + try { + $AcceptedDomains = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAcceptedDomains' + + if (-not $AcceptedDomains) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA235' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No accepted domains found in database.' -Risk 'High' -Name 'SPF records setup for custom domains' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Configuration' + return + } + + # Note: This test would ideally check DNS SPF records + # Since we don't have DNS query capability here, we'll provide informational guidance + + $CustomDomains = $AcceptedDomains | Where-Object { $_.DomainName -notlike '*.onmicrosoft.com' } + + if ($CustomDomains.Count -eq 0) { + $Status = 'Passed' + $Result = "No custom domains found. Only using onmicrosoft.com domain.`n`n" + $Result += "**Total Domains:** $($AcceptedDomains.Count)" + } else { + $Status = 'Informational' + $Result = "Found $($CustomDomains.Count) custom domains that should have SPF records configured.`n`n" + $Result += "**Custom Domains:**`n`n" + foreach ($Domain in $CustomDomains) { + $Result += "- $($Domain.DomainName)`n" + } + $Result += "`n**Action Required:** Verify that each custom domain has an SPF record including Microsoft 365:`n" + $Result += "``v=spf1 include:spf.protection.outlook.com -all``" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA235' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'SPF records setup for custom domains' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Configuration' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA235' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'SPF records setup for custom domains' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Configuration' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA236.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA236.md new file mode 100644 index 000000000000..a07d9478c79a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA236.md @@ -0,0 +1,8 @@ +Safe Links should be enabled for email messages to provide real-time URL scanning and protection against malicious links. When enabled, Safe Links rewrites URLs in email messages and checks them at click-time to detect and block malicious websites, protecting users from phishing attacks and malware delivery even if the link becomes malicious after the email was sent. + +**Remediation action** + +- [Set up Safe Links policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-policies-configure) +- [Safe Links in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-about) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA236.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA236.ps1 new file mode 100644 index 000000000000..89f67a40f68f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA236.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA236 { + <# + .SYNOPSIS + Safe Links is enabled for emails + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoSafeLinksPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA236' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Safe Links is enabled for emails' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.EnableSafeLinksForEmail -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All Safe Links policies have email protection enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) Safe Links policies do not have email protection enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Enable Safe Links For Email |`n" + $Result += "|------------|----------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.EnableSafeLinksForEmail) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA236' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Safe Links is enabled for emails' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA236' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Safe Links is enabled for emails' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA237.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA237.md new file mode 100644 index 000000000000..2c25114d3dcf --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA237.md @@ -0,0 +1,8 @@ +Safe Links should be enabled for Microsoft Teams to protect users from malicious URLs shared in Teams messages and channels. Enabling this protection ensures that links in Teams conversations are scanned and blocked if they lead to malicious sites, extending the same URL protection available in email to your collaboration platform. + +**Remediation action** + +- [Set up Safe Links policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-policies-configure) +- [Safe Links in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-about) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA237.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA237.ps1 new file mode 100644 index 000000000000..5962ac11eb59 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA237.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA237 { + <# + .SYNOPSIS + Safe Links is enabled for Teams + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoSafeLinksPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA237' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Safe Links is enabled for Teams' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.EnableSafeLinksForTeams -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All Safe Links policies have Teams protection enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) Safe Links policies do not have Teams protection enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Enable Safe Links For Teams |`n" + $Result += "|------------|----------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.EnableSafeLinksForTeams) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA237' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Safe Links is enabled for Teams' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA237' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Safe Links is enabled for Teams' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA238.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA238.md new file mode 100644 index 000000000000..948957dd91bd --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA238.md @@ -0,0 +1,8 @@ +Safe Links should be enabled for Office applications to protect users from malicious URLs in Office documents such as Word, Excel, and PowerPoint files. This protection extends URL scanning to documents opened in Office desktop, mobile, and web applications, helping prevent users from clicking malicious links embedded in documents. + +**Remediation action** + +- [Set up Safe Links policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-policies-configure) +- [Safe Links in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-about) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA238.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA238.ps1 new file mode 100644 index 000000000000..e4f3d35ac306 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA238.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA238 { + <# + .SYNOPSIS + Safe Links is enabled for Office documents + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoSafeLinksPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA238' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Safe Links is enabled for Office documents' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.EnableSafeLinksForOffice -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All Safe Links policies have Office document protection enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) Safe Links policies do not have Office document protection enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Enable Safe Links For Office |`n" + $Result += "|------------|------------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.EnableSafeLinksForOffice) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA238' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Safe Links is enabled for Office documents' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA238' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Safe Links is enabled for Office documents' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA239.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA239.md new file mode 100644 index 000000000000..29fde2255510 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA239.md @@ -0,0 +1,9 @@ +Protection policies should not include exclusions or allow lists that bypass security controls. Adding senders or domains to exclusion lists creates security gaps that attackers can exploit to deliver malicious content without being detected. Even trusted partners can be compromised, so all email should go through security scanning. + +**Remediation action** + +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-mdo-configure) +- [Configure anti-spam policies in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA239.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA239.ps1 new file mode 100644 index 000000000000..24ccf3edcb1d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA239.ps1 @@ -0,0 +1,83 @@ +function Invoke-CippTestORCA239 { + <# + .SYNOPSIS + No exclusions for built-in protection + #> + param($Tenant) + + try { + $AntiPhishPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAntiPhishPolicies' + $ContentFilterPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $AntiPhishPolicies -and -not $ContentFilterPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA239' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No policies found in database.' -Risk 'High' -Name 'No exclusions for built-in protection' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Configuration' + return + } + + $FailedPolicies = @() + $Issues = @() + + # Check Anti-Phish policies for exclusions + if ($AntiPhishPolicies) { + foreach ($Policy in $AntiPhishPolicies) { + $HasExclusions = $false + $ExclusionDetails = @() + + if ($Policy.ExcludedSenders -and $Policy.ExcludedSenders.Count -gt 0) { + $HasExclusions = $true + $ExclusionDetails += "ExcludedSenders: $($Policy.ExcludedSenders.Count)" + } + + if ($Policy.ExcludedDomains -and $Policy.ExcludedDomains.Count -gt 0) { + $HasExclusions = $true + $ExclusionDetails += "ExcludedDomains: $($Policy.ExcludedDomains.Count)" + } + + if ($HasExclusions) { + $Issues += "Anti-Phish Policy '$($Policy.Identity)': $($ExclusionDetails -join ', ')" + } + } + } + + # Check Content Filter policies for exclusions + if ($ContentFilterPolicies) { + foreach ($Policy in $ContentFilterPolicies) { + $HasExclusions = $false + $ExclusionDetails = @() + + if ($Policy.AllowedSenders -and $Policy.AllowedSenders.Count -gt 0) { + $HasExclusions = $true + $ExclusionDetails += "AllowedSenders: $($Policy.AllowedSenders.Count)" + } + + if ($Policy.AllowedSenderDomains -and $Policy.AllowedSenderDomains.Count -gt 0) { + $HasExclusions = $true + $ExclusionDetails += "AllowedSenderDomains: $($Policy.AllowedSenderDomains.Count)" + } + + if ($HasExclusions) { + $Issues += "Anti-Spam Policy '$($Policy.Identity)': $($ExclusionDetails -join ', ')" + } + } + } + + if ($Issues.Count -eq 0) { + $Status = 'Passed' + $Result = "No exclusions found in built-in protection policies." + } else { + $Status = 'Failed' + $Result = "Found $($Issues.Count) policies with exclusions that bypass built-in protection.`n`n" + $Result += "**Issues Found:**`n`n" + foreach ($Issue in $Issues) { + $Result += "- $Issue`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA239' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'No exclusions for built-in protection' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Configuration' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA239' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'No exclusions for built-in protection' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Configuration' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA240.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA240.md new file mode 100644 index 000000000000..09b5ed1ccfc7 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA240.md @@ -0,0 +1,8 @@ +External sender identification should be enabled in Outlook to help users quickly identify messages from external senders. When configured, Outlook displays a visual indicator (such as "External" tags) on messages from outside the organization, helping users exercise appropriate caution when interacting with external content and reducing the risk of phishing attacks. + +**Remediation action** + +- [External sender callouts in Outlook](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-outbound-spam-about#external-sender-callouts) +- [Configure organization relationships in Exchange Online](https://learn.microsoft.com/exchange/sharing/organization-relationships/organization-relationships) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA240.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA240.ps1 new file mode 100644 index 000000000000..d283d3a0c45b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA240.ps1 @@ -0,0 +1,35 @@ +function Invoke-CippTestORCA240 { + <# + .SYNOPSIS + Outlook external tags are configured + #> + param($Tenant) + + try { + $OrgConfig = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoOrganizationConfig' + + if (-not $OrgConfig) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA240' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Outlook external tags are configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Configuration' + return + } + + $Config = $OrgConfig | Select-Object -First 1 + + if ($Config.ExternalInOutlook -ne 'Disabled') { + $Status = 'Passed' + $Result = "Outlook external tags are configured.`n`n" + $Result += "**ExternalInOutlook:** $($Config.ExternalInOutlook)" + } else { + $Status = 'Failed' + $Result = "Outlook external tags are NOT configured.`n`n" + $Result += "**ExternalInOutlook:** $($Config.ExternalInOutlook)" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA240' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Outlook external tags are configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Configuration' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA240' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Outlook external tags are configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Configuration' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA241.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA241.md new file mode 100644 index 000000000000..09875bcda233 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA241.md @@ -0,0 +1,8 @@ +First Contact Safety Tips display warnings when users receive email from a sender for the first time. This feature helps users recognize potentially suspicious messages from unfamiliar senders, providing an opportunity to verify the sender's identity before responding or clicking links, especially useful for detecting spear-phishing attacks from new contacts. + +**Remediation action** + +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-mdo-configure) +- [Safety tips in email messages in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-safety-tips-about) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA241.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA241.ps1 new file mode 100644 index 000000000000..8e5b26129d3e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA241.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA241 { + <# + .SYNOPSIS + First Contact Safety Tips is enabled + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAntiPhishPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA241' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'First Contact Safety Tips is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.EnableFirstContactSafetyTips -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-phishing policies have First Contact Safety Tips enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-phishing policies do not have First Contact Safety Tips enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Enable First Contact Safety Tips |`n" + $Result += "|------------|----------------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.EnableFirstContactSafetyTips) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA241' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'First Contact Safety Tips is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA241' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'First Contact Safety Tips is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA242.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA242.md new file mode 100644 index 000000000000..19d786b500da --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA242.md @@ -0,0 +1,8 @@ +Security alert policies should be configured to notify administrators of important protection events and potential security incidents. Alerts for events such as malware campaigns, suspicious email patterns, compromised accounts, and policy violations help security teams respond quickly to threats and maintain visibility into the effectiveness of email security controls. + +**Remediation action** + +- [Alert policies in the Microsoft 365 compliance center](https://learn.microsoft.com/microsoft-365/compliance/alert-policies) +- [Get started with alert policies](https://learn.microsoft.com/purview/alert-policies) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA242.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA242.ps1 new file mode 100644 index 000000000000..ba691ddf939e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA242.ps1 @@ -0,0 +1,30 @@ +function Invoke-CippTestORCA242 { + <# + .SYNOPSIS + Important protection alerts enabled + #> + param($Tenant) + + try { + # This test would check for alert policies related to ATP/Defender for Office 365 + # Since we don't have an alert policy cache, we'll provide informational guidance + + $Status = 'Informational' + $Result = "Alert policies for protection features should be enabled and monitored.`n`n" + $Result += "**Recommended Alert Policies:**`n`n" + $Result += "- Messages reported by users as malware or phish`n" + $Result += "- Email sending limit exceeded`n" + $Result += "- Suspicious email forwarding activity`n" + $Result += "- Malware campaign detected`n" + $Result += "- Suspicious connector activity`n" + $Result += "- Unusual external user file activity`n" + $Result += "`n**Action Required:** Verify alert policies are configured in Microsoft 365 Security & Compliance Center" + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA242' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Important protection alerts enabled' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Configuration' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA242' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Important protection alerts enabled' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Configuration' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA243.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA243.md new file mode 100644 index 000000000000..b24f602a85fd --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA243.md @@ -0,0 +1,8 @@ +Inbound connectors for non-authoritative domains should be configured with proper authentication to maintain the integrity of email security checks. When email flows through third-party services, connectors should specify authenticated source IPs or certificates to ensure that Exchange Online can properly validate sender information and apply appropriate security policies. + +**Remediation action** + +- [Configure mail flow using connectors in Exchange Online](https://learn.microsoft.com/exchange/mail-flow-best-practices/use-connectors-to-configure-mail-flow/use-connectors-to-configure-mail-flow) +- [Enhanced filtering for connectors in Exchange Online](https://learn.microsoft.com/exchange/mail-flow-best-practices/use-connectors-to-configure-mail-flow/enhanced-filtering-for-connectors) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA243.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA243.ps1 new file mode 100644 index 000000000000..28a3717e845b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA243.ps1 @@ -0,0 +1,40 @@ +function Invoke-CippTestORCA243 { + <# + .SYNOPSIS + Authenticated Receive Chain for non-EOP domains + #> + param($Tenant) + + try { + $AcceptedDomains = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAcceptedDomains' + + if (-not $AcceptedDomains) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA243' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No accepted domains found in database.' -Risk 'Medium' -Name 'Authenticated Receive Chain for non-EOP domains' -UserImpact 'Medium' -ImplementationEffort 'High' -Category 'Configuration' + return + } + + # Check for non-authoritative domains that would need inbound connectors + $NonAuthDomains = $AcceptedDomains | Where-Object { $_.DomainType -in @('InternalRelay', 'ExternalRelay') } + + if ($NonAuthDomains.Count -eq 0) { + $Status = 'Passed' + $Result = "All domains are authoritative. No inbound connectors needed.`n`n" + $Result += "**Total Domains:** $($AcceptedDomains.Count)" + } else { + $Status = 'Informational' + $Result = "Found $($NonAuthDomains.Count) non-authoritative domains.`n`n" + $Result += "**Domains Requiring Inbound Connectors:**`n`n" + foreach ($Domain in $NonAuthDomains) { + $Result += "- $($Domain.DomainName) (Type: $($Domain.DomainType))`n" + } + $Result += "`n**Action Required:** Verify inbound connectors are configured with proper authentication for these domains" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA243' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Authenticated Receive Chain for non-EOP domains' -UserImpact 'Medium' -ImplementationEffort 'High' -Category 'Configuration' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA243' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Authenticated Receive Chain for non-EOP domains' -UserImpact 'Medium' -ImplementationEffort 'High' -Category 'Configuration' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA244.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA244.md new file mode 100644 index 000000000000..51ed9d611bea --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA244.md @@ -0,0 +1,8 @@ +Anti-spam policies should honor DMARC (Domain-based Message Authentication, Reporting, and Conformance) policies published by sending domains. When enabled, this setting respects the sender domain's DMARC policy for handling authentication failures, improving email security by enforcing the sender's preferred treatment of spoofed or forged messages. + +**Remediation action** + +- [Configure anti-spam policies in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Use DMARC to validate email in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/email-authentication-dmarc-configure) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA244.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA244.ps1 new file mode 100644 index 000000000000..177731b925e7 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA244.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA244 { + <# + .SYNOPSIS + Policies honor sending domain DMARC + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA244' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Policies honor sending domain DMARC' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.HonorDMARCPolicy -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-spam policies honor sending domain DMARC.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-spam policies do not honor sending domain DMARC.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Honor DMARC Policy |`n" + $Result += "|------------|--------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.HonorDMARCPolicy) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA244' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Policies honor sending domain DMARC' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA244' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Policies honor sending domain DMARC' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/report.json b/Modules/CIPPCore/Public/Tests/ORCA/report.json new file mode 100644 index 000000000000..cb19336da0f5 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/report.json @@ -0,0 +1,77 @@ +{ + "name": "ORCA (Office 365 Recommended Configuration Analyzer) Tests", + "description": "Comprehensive security assessment for Microsoft Exchange Online and Office 365 security configurations. Tests cover anti-spam, anti-phish, anti-malware, safe links, safe attachments, DKIM, transport rules, and other Exchange Online security settings.", + "version": "1.0", + "source": "https://github.com/maester365/maester", + "category": "Exchange Online Security", + "note": "ORCA tests require Exchange Online and Security & Compliance Center data. Many tests require custom ORCA framework classes and detailed implementation. Tests marked as requiring specific caches will be implemented based on available CIPP cache data.", + "IdentityTests": [ + "ORCA100", + "ORCA101", + "ORCA102", + "ORCA103", + "ORCA104", + "ORCA105", + "ORCA106", + "ORCA107", + "ORCA108", + "ORCA1081", + "ORCA109", + "ORCA110", + "ORCA111", + "ORCA112", + "ORCA113", + "ORCA114", + "ORCA115", + "ORCA116", + "ORCA1181", + "ORCA1182", + "ORCA1183", + "ORCA1184", + "ORCA119", + "ORCA120malware", + "ORCA120phish", + "ORCA120spam", + "ORCA121", + "ORCA123", + "ORCA124", + "ORCA139", + "ORCA140", + "ORCA141", + "ORCA142", + "ORCA143", + "ORCA156", + "ORCA158", + "ORCA179", + "ORCA180", + "ORCA189", + "ORCA1892", + "ORCA205", + "ORCA220", + "ORCA221", + "ORCA222", + "ORCA223", + "ORCA224", + "ORCA225", + "ORCA226", + "ORCA227", + "ORCA228", + "ORCA229", + "ORCA230", + "ORCA231", + "ORCA232", + "ORCA233", + "ORCA2331", + "ORCA234", + "ORCA235", + "ORCA236", + "ORCA237", + "ORCA238", + "ORCA239", + "ORCA240", + "ORCA241", + "ORCA242", + "ORCA243", + "ORCA244" + ] +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24518.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24518.md new file mode 100644 index 000000000000..99c5096fc32b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24518.md @@ -0,0 +1,9 @@ +Without owners, enterprise applications become orphaned assets that threat actors can exploit through credential harvesting and privilege escalation techniques, as these applications often retain elevated permissions and access to sensitive resources while lacking proper oversight and security governance. The elevation of privilege to owners can raise a security concern in some cases depending on the application's permissions, but more critically, applications without owner create a blind spot in security monitoring where threat actors can establish persistence by leveraging existing application permissions to access data or create backdoor accounts without triggering ownership-based detection mechanisms. When applications lack owners, security teams cannot effectively conduct application lifecycle management, leaving applications with potentially excessive permissions, outdated configurations, or compromised credentials that threat actors can discover through enumeration techniques and exploit to move laterally within the environment. The absence of ownership also prevents proper access reviews and permission audits, allowing threat actors to maintain long-term access through applications that should have been decommissioned or had their permissions reduced, ultimately providing persistent access vectors that can be leveraged for data exfiltration or further compromise of the environment. + + +**Remediation action** + +- [Assign owners to the application](https://learn.microsoft.com/en-us/entra/identity/enterprise-apps/assign-app-owners?pivots=portal) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24540.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24540.md new file mode 100644 index 000000000000..ac6dfafe2063 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24540.md @@ -0,0 +1,18 @@ +If policies for Windows Firewall aren't configured and assigned, threat actors can exploit unprotected endpoints to gain unauthorized access, move laterally, and escalate privileges within the environment. Without enforced firewall rules, attackers can bypass network segmentation, exfiltrate data, or deploy malware, increasing the risk of widespread compromise. + +Enforcing Windows Firewall policies ensures consistent application of inbound and outbound traffic controls, reducing exposure to unauthorized access and supporting Zero Trust through network segmentation and device-level protection. + +**Remediation action** + +Configure and assign firewall policies for Windows in Intune to block unauthorized traffic and enforce consistent network protections across all managed devices: + +- [Configure firewall policies for Windows devices](https://learn.microsoft.com/intune/intune-service/protect/endpoint-security-firewall-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). Intune uses two complementary profiles to manage firewall settings: + - **Windows Firewall** - Use this profile to configure overall firewall behavior based on network type. + - **Windows Firewall rules** - Use this profile to define traffic rules for apps, ports, or IPs, tailored to specific groups or workloads. This Intune profile also supports use of [reusable settings groups](https://learn.microsoft.com/intune/intune-service/protect/endpoint-security-firewall-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#add-reusable-settings-groups-to-profiles-for-firewall-rules) to help simplify management of common settings you use for different profile instances. +- [Assign policies in Intune](https://learn.microsoft.com/intune/intune-service/configuration/device-profile-assign?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#assign-a-policy-to-users-or-groups) + +For more information, see: +- [Available Windows Firewall settings](https://learn.microsoft.com/intune/intune-service/protect/endpoint-security-firewall-profile-settings?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#windows-firewall-profile) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24540.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24540.ps1 new file mode 100644 index 000000000000..40e130efdae4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24540.ps1 @@ -0,0 +1,72 @@ +function Invoke-CippTestZTNA24540 { + <# + .SYNOPSIS + Windows Firewall policies protect against unauthorized network access + #> + param($Tenant) + #Tested - Device + try { + $ConfigurationPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneConfigurationPolicies' + if (-not $ConfigurationPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24540' -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Windows Firewall policies protect against unauthorized network access' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $FirewallPolicies = $ConfigurationPolicies | Where-Object { + $_.templateReference -and $_.templateReference.templateFamily -eq 'endpointSecurityFirewall' + } + + if ($FirewallPolicies.Count -eq 0) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24540' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No Windows Firewall configuration policies found' -Risk 'High' -Name 'Windows Firewall policies protect against unauthorized network access' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $AssignedPolicies = $FirewallPolicies | Where-Object { + $_.assignments -and $_.assignments.Count -gt 0 + } + + if ($AssignedPolicies.Count -gt 0) { + $Status = 'Passed' + $ResultLines = @( + 'At least one Windows Firewall policy is created and assigned to a group.' + '' + '**Windows Firewall Configuration Policies:**' + '' + '| Policy Name | Status | Assignment Count |' + '| :---------- | :----- | :--------------- |' + ) + + foreach ($Policy in $FirewallPolicies) { + $PolicyStatus = if ($Policy.assignments -and $Policy.assignments.Count -gt 0) { + '✅ Assigned' + } else { + '❌ Not assigned' + } + $AssignmentCount = if ($Policy.assignments) { $Policy.assignments.Count } else { 0 } + $ResultLines += "| $($Policy.name) | $PolicyStatus | $AssignmentCount |" + } + + $Result = $ResultLines -join "`n" + } else { + $Status = 'Failed' + $ResultLines = @( + 'There are no firewall policies assigned to any groups.' + '' + '**Windows Firewall Configuration Policies (Unassigned):**' + '' + ) + + foreach ($Policy in $FirewallPolicies) { + $ResultLines += "- $($Policy.name)" + } + + $Result = $ResultLines -join "`n" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24540' -TestType 'Devices' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Windows Firewall policies protect against unauthorized network access' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Device' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24540' -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Windows Firewall policies protect against unauthorized network access' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Device' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24541.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24541.md new file mode 100644 index 000000000000..38309e2747a4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24541.md @@ -0,0 +1,11 @@ +If compliance policies for Windows devices aren't configured and assigned, threat actors can exploit unmanaged or noncompliant endpoints to gain unauthorized access to corporate resources, bypass security controls, and persist within the environment. Without enforced compliance, devices can lack critical security configurations like BitLocker encryption, password requirements, firewall settings, and OS version controls. These gaps increase the risk of data leakage, privilege escalation, and lateral movement. Inconsistent device compliance weakens the organization’s security posture and makes it harder to detect and remediate threats before significant damage occurs. + +Enforcing compliance policies ensures Windows devices meet core security requirements and supports Zero Trust by validating device health and reducing exposure to misconfigured endpoints. + +**Remediation action** + +Create and assign Intune compliance policies to Windows devices to enforce organizational standards for secure access and management: +- [Create and assign Intune compliance policies](https://learn.microsoft.com/intune/intune-service/protect/create-compliance-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-the-policy) +- [Review the Windows compliance settings you can manage with Intune](https://learn.microsoft.com/intune/intune-service/protect/compliance-policy-create-windows?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24541.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24541.ps1 new file mode 100644 index 000000000000..acf03ea73a68 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24541.ps1 @@ -0,0 +1,48 @@ +function Invoke-CippTestZTNA24541 { + <# + .SYNOPSIS + Compliance policies protect Windows devices + #> + param($Tenant) + + $TestId = 'ZTNA24541' + #Tested - Device + try { + $IntunePolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceCompliancePolicies' + + if (-not $IntunePolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Compliance policies protect Windows devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + return + } + + $WindowsPolicies = @($IntunePolicies | Where-Object { + $_.'@odata.type' -in @('#microsoft.graph.windows10CompliancePolicy', '#microsoft.graph.windows11CompliancePolicy') + }) + + $AssignedPolicies = @($WindowsPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedPolicies.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ At least one Windows compliance policy exists and is assigned.`n`n" + } else { + $ResultMarkdown = "❌ No Windows compliance policy exists or none are assigned.`n`n" + } + + $ResultMarkdown += "## Windows Compliance Policies`n`n" + $ResultMarkdown += "| Policy Name | Assigned |`n" + $ResultMarkdown += "| :---------- | :------- |`n" + + foreach ($policy in $WindowsPolicies) { + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $assigned |`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Compliance policies protect Windows devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Compliance policies protect Windows devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24542.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24542.md new file mode 100644 index 000000000000..9f2fc9e48eb8 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24542.md @@ -0,0 +1,12 @@ +If compliance policies for macOS devices aren't configured and assigned, threat actors can exploit unmanaged or noncompliant endpoints to gain unauthorized access to corporate resources, bypass security controls, and persist within the environment. Without enforced compliance, macOS devices can lack critical security configurations like data storage encryption, password requirements, and OS version controls. These gaps increase the risk of data leakage, privilege escalation, and lateral movement. Inconsistent device compliance weakens the organization’s security posture and makes it harder to detect and remediate threats before significant damage occurs. + +Enforcing compliance policies ensures macOS devices meet core security requirements and supports Zero Trust by validating device health and reducing exposure to misconfigured endpoints. + +**Remediation actions** + +Create and assign Intune compliance policies to macOS devices to enforce organizational standards for secure access and management: +- [Create and assign Intune compliance policies](https://learn.microsoft.com/intune/intune-service/protect/create-compliance-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-the-policy) +- [Review the macOS compliance settings you can manage with Intune](https://learn.microsoft.com/intune/intune-service/protect/compliance-policy-create-mac-os?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24542.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24542.ps1 new file mode 100644 index 000000000000..81215ce30efa --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24542.ps1 @@ -0,0 +1,45 @@ +function Invoke-CippTestZTNA24542 { + <# + .SYNOPSIS + Compliance policies protect macOS devices + #> + param($Tenant) + + $TestId = 'ZTNA24542' + #Tested - Device + try { + $IntunePolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceCompliancePolicies' + + if (-not $IntunePolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Compliance policies protect macOS devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + return + } + + $MacOSPolicies = @($IntunePolicies | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.macOSCompliancePolicy' }) + $AssignedPolicies = @($MacOSPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedPolicies.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ At least one macOS compliance policy exists and is assigned.`n`n" + } else { + $ResultMarkdown = "❌ No macOS compliance policy exists or none are assigned.`n`n" + } + + $ResultMarkdown += "## macOS Compliance Policies`n`n" + $ResultMarkdown += "| Policy Name | Assigned |`n" + $ResultMarkdown += "| :---------- | :------- |`n" + + foreach ($policy in $MacOSPolicies) { + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $assigned |`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Compliance policies protect macOS devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Compliance policies protect macOS devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24543.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24543.md new file mode 100644 index 000000000000..cc5957a9245a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24543.md @@ -0,0 +1,12 @@ +If compliance policies aren't assigned to iOS/iPadOS devices in Intune, threat actors can exploit noncompliant endpoints to gain unauthorized access to corporate resources, bypass security controls, and persist in the environment. Without enforced compliance, devices can lack critical security configurations like passcode requirements and OS version controls. These gaps increase the risk of data leakage, privilege escalation, and lateral movement. Inconsistent device compliance weakens the organization’s security posture and makes it harder to detect and remediate threats before significant damage occurs. + +Enforcing compliance policies ensures iOS/iPadOS devices meet core security requirements and supports Zero Trust by validating device health and reducing exposure to misconfigured or unmanaged endpoints. + +**Remediation action** + +Create and assign Intune compliance policies to iOS/iPadOS devices to enforce organizational standards for secure access and management: +- [Create a compliance policy in Microsoft Intune](https://learn.microsoft.com/intune/intune-service/protect/create-compliance-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-the-policy) +- [Review the iOS/iPadOS compliance settings you can manage with Intune](https://learn.microsoft.com/intune/intune-service/protect/compliance-policy-create-ios?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24543.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24543.ps1 new file mode 100644 index 000000000000..3130d6e531fa --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24543.ps1 @@ -0,0 +1,46 @@ +function Invoke-CippTestZTNA24543 { + <# + .SYNOPSIS + Compliance policies protect iOS/iPadOS devices + #> + param($Tenant) + + $TestId = 'ZTNA24543' + #Tested - Device + + try { + $IntunePolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceCompliancePolicies' + + if (-not $IntunePolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Compliance policies protect iOS/iPadOS devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + return + } + + $iOSPolicies = @($IntunePolicies | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.iosCompliancePolicy' }) + $AssignedPolicies = @($iOSPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedPolicies.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ At least one iOS/iPadOS compliance policy exists and is assigned.`n`n" + } else { + $ResultMarkdown = "❌ No iOS/iPadOS compliance policy exists or none are assigned.`n`n" + } + + $ResultMarkdown += "## iOS/iPadOS Compliance Policies`n`n" + $ResultMarkdown += "| Policy Name | Assigned |`n" + $ResultMarkdown += "| :---------- | :------- |`n" + + foreach ($policy in $iOSPolicies) { + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $assigned |`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Compliance policies protect iOS/iPadOS devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Compliance policies protect iOS/iPadOS devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24545.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24545.md new file mode 100644 index 000000000000..7f319eaf0e79 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24545.md @@ -0,0 +1,11 @@ +If compliance policies aren't assigned to fully managed Android Enterprise devices in Intune, threat actors can exploit noncompliant endpoints to gain unauthorized access to corporate resources, bypass security controls, and persist in the environment. Without enforced compliance, devices can lack critical security configurations such as passcode requirements, data storage encryption, and OS version controls. These gaps increase the risk of data leakage, privilege escalation, and lateral movement. Inconsistent device compliance weakens the organization’s security posture and makes it harder to detect and remediate threats before significant damage occurs. + +Enforcing compliance policies ensures Android Enterprise devices meet core security requirements and supports Zero Trust by validating device health and reducing exposure to misconfigured or unmanaged endpoints. + +**Remediation action** + +Create and assign Intune compliance policies to fully managed and corporate-owned Android Enterprise devices to enforce organizational standards for secure access and management: +- [Create a compliance policy in Microsoft Intune](https://learn.microsoft.com/intune/intune-service/protect/create-compliance-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-the-policy) +- [Review the Android Enterprise compliance settings you can manage with Intune](https://learn.microsoft.com/intune/intune-service/protect/compliance-policy-create-android-for-work?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24545.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24545.ps1 new file mode 100644 index 000000000000..c40f080a415b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24545.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestZTNA24545 { + <# + .SYNOPSIS + Compliance policies protect fully managed and corporate-owned Android devices + #> + param($Tenant) + + $TestId = 'ZTNA24545' + #Tested - Device + + try { + $IntunePolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceCompliancePolicies' + + if (-not $IntunePolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Compliance policies protect fully managed and corporate-owned Android devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + return + } + + $AndroidPolicies = @($IntunePolicies | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.androidDeviceOwnerCompliancePolicy' }) + $AssignedPolicies = @($AndroidPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + + $Passed = $AssignedPolicies.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ At least one compliance policy for Android Enterprise Fully managed devices exists and is assigned.`n`n" + } else { + $ResultMarkdown = "❌ No compliance policy for Android Enterprise exists or none are assigned.`n`n" + } + + $ResultMarkdown += "## Android Device Owner Compliance Policies`n`n" + $ResultMarkdown += "| Policy Name | Assigned |`n" + $ResultMarkdown += "| :---------- | :------- |`n" + + foreach ($policy in $AndroidPolicies) { + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $assigned |`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Compliance policies protect fully managed and corporate-owned Android devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Compliance policies protect fully managed and corporate-owned Android devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24546.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24546.md new file mode 100644 index 000000000000..6f28c5111ac9 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24546.md @@ -0,0 +1,14 @@ +If Windows automatic enrollment isn't enabled, unmanaged devices can become an entry point for attackers. Threat actors might use these devices to access corporate data, bypass compliance policies, and introduce vulnerabilities into the environment. Devices joined to Microsoft Entra without Intune enrollment create gaps in visibility and control. These unmanaged endpoints can expose weaknesses in the operating system or misconfigured applications that attackers can exploit. + +Enforcing automatic enrollment ensures Windows devices are managed from the start, enabling consistent policy enforcement and visibility into compliance. This supports Zero Trust by ensuring all devices are verified, monitored, and governed by security controls. + +**Remediation action** + +Enable automatic enrollment for Windows devices using Intune and Microsoft Entra to ensure all domain-joined or Entra-joined devices are managed: +- [Enable Windows automatic enrollment](https://learn.microsoft.com/intune/intune-service/enrollment/windows-enroll?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#enable-windows-automatic-enrollment) + +For more information, see: +- [Deployment guide - Enrollment for Windows](https://learn.microsoft.com/intune/intune-service/fundamentals/deployment-guide-enroll?tabs=work-profile%2Ccorporate-owned-apple%2Cautomatic-enrollment&wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#enrollment-for-windows) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24547.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24547.md new file mode 100644 index 000000000000..3aaa5280e921 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24547.md @@ -0,0 +1,12 @@ +If compliance policies aren't assigned to Android Enterprise personally owned devices in Intune, threat actors can exploit noncompliant endpoints to gain unauthorized access to corporate resources, bypass security controls, and introduce vulnerabilities. Without enforced compliance, devices can lack critical security configurations like passcode requirements, data storage encryption, and OS version controls. These gaps increase the risk of data leakage and unauthorized access. Inconsistent device compliance weakens the organization’s security posture and makes it harder to detect and remediate threats before significant damage occurs. + +Enforcing compliance policies ensures that personally owned Android devices meet core security requirements and supports Zero Trust by validating device health and reducing exposure to misconfigured or unmanaged endpoints. + +**Remediation action** + +Create and assign Intune compliance policies to Android Enterprise personally owned devices to enforce organizational standards for secure access and management: +- [Create a compliance policy in Microsoft Intune](https://learn.microsoft.com/intune/intune-service/protect/create-compliance-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-the-policy) +- [Review the Android Enterprise compliance settings you can manage with Intune](https://learn.microsoft.com/intune/intune-service/protect/compliance-policy-create-android-for-work?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24547.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24547.ps1 new file mode 100644 index 000000000000..e1ede894c0c1 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24547.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestZTNA24547 { + <# + .SYNOPSIS + Compliance policies protect personally owned Android devices + #> + param($Tenant) + + $TestId = 'ZTNA24547' + #Tested - Device + + try { + $IntunePolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceCompliancePolicies' + + if (-not $IntunePolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Compliance policies protect personally owned Android devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + return + } + + $AndroidPolicies = @($IntunePolicies | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.androidWorkProfileCompliancePolicy' }) + $AssignedPolicies = @($AndroidPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + + $Passed = $AssignedPolicies.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ At least one compliance policy for Android Work Profile devices exists and is assigned.`n`n" + } else { + $ResultMarkdown = "❌ No compliance policy for Android Work Profile exists or none are assigned.`n`n" + } + + $ResultMarkdown += "## Android Work Profile Compliance Policies`n`n" + $ResultMarkdown += "| Policy Name | Assigned |`n" + $ResultMarkdown += "| :---------- | :------- |`n" + + foreach ($policy in $AndroidPolicies) { + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $assigned |`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Compliance policies protect personally owned Android devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Compliance policies protect personally owned Android devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24548.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24548.md new file mode 100644 index 000000000000..dae6ea117f95 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24548.md @@ -0,0 +1,14 @@ +Without app protection policies, corporate data accessed on iOS/iPadOS devices is vulnerable to leakage through unmanaged or personal apps. Users can unintentionally copy sensitive information into unsecured apps, store data outside corporate boundaries, or bypass authentication controls. This risk is especially high on BYOD devices, where personal and work contexts coexist, increasing the likelihood of data exfiltration or unauthorized access. + +App protection policies ensure corporate data remains secure within approved apps, even on personal devices. These policies enforce encryption, restrict data sharing, and require authentication, reducing the risk of data leakage and aligning with Zero Trust principles of data protection and conditional access. + +**Remediation action** + +Deploy Intune app protection policies that encrypt corporate data, restrict sharing, and require authentication in approved iOS/iPadOS apps: +- [Deploy Intune app protection policies](https://learn.microsoft.com/intune/intune-service/apps/app-protection-policies?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-an-iosipados-or-android-app-protection-policy) +- [Review the iOS app protection settings reference](https://learn.microsoft.com/intune/intune-service/apps/app-protection-policy-settings-ios?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +For more information, see: +- [Learn about using app protection policies](https://learn.microsoft.com/intune/intune-service/apps/app-protection-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24548.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24548.ps1 new file mode 100644 index 000000000000..35d55fc52c15 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24548.ps1 @@ -0,0 +1,45 @@ +function Invoke-CippTestZTNA24548 { + <# + .SYNOPSIS + Data on iOS/iPadOS is protected by app protection policies + #> + param($Tenant) + + $TestId = 'ZTNA24548' + #Tested - Device + + try { + $IosPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneIosAppProtectionPolicies' + + if (-not $IosPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Data on iOS/iPadOS is protected by app protection policies' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Tenant' + return + } + + $AssignedPolicies = @($IosPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedPolicies.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ At least one iOS app protection policy exists and is assigned.`n`n" + } else { + $ResultMarkdown = "❌ No iOS app protection policy exists or none are assigned.`n`n" + } + + $ResultMarkdown += "## iOS App Protection Policies`n`n" + $ResultMarkdown += "| Policy Name | Assigned |`n" + $ResultMarkdown += "| :---------- | :------- |`n" + + foreach ($policy in $IosPolicies) { + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $assigned |`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Data on iOS/iPadOS is protected by app protection policies' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Tenant' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Data on iOS/iPadOS is protected by app protection policies' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Tenant' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24549.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24549.md new file mode 100644 index 000000000000..2c0db7f420e3 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24549.md @@ -0,0 +1,16 @@ +Without app protection policies, corporate data accessed on Android devices is vulnerable to leakage through unmanaged or malicious apps. Users can unintentionally copy sensitive information into personal apps, store data insecurely, or bypass authentication controls. This risk is amplified on devices that aren't fully managed, where corporate and personal contexts coexist, increasing the likelihood of data exfiltration or unauthorized access. + +Enforcing app protection policies ensures that corporate data is only accessible through trusted apps and remains protected even on personal or BYOD Android devices. + +These policies enforce encryption, restrict data sharing, and require authentication, reducing the risk of data leakage and aligning with Zero Trust principles of data protection and Conditional Access. + +**Remediation action** + +Deploy Intune app protection policies that encrypt data, restrict sharing, and require authentication in approved Android apps: +- [Deploy Intune app protection policies](https://learn.microsoft.com/intune/intune-service/apps/app-protection-policies?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-an-iosipados-or-android-app-protection-policy) +- [Review the Android app protection settings reference](https://learn.microsoft.com/intune/intune-service/apps/app-protection-policy-settings-android?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +For more information, see: +- [Learn about using app protection policies](https://learn.microsoft.com/intune/intune-service/apps/app-protection-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24549.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24549.ps1 new file mode 100644 index 000000000000..93ec5e0072d1 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24549.ps1 @@ -0,0 +1,45 @@ +function Invoke-CippTestZTNA24549 { + <# + .SYNOPSIS + Data on Android is protected by app protection policies + #> + param($Tenant) + + $TestId = 'ZTNA24549' + #Tested - Device + + try { + $AndroidPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneAndroidAppProtectionPolicies' + + if (-not $AndroidPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Data on Android is protected by app protection policies' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Tenant' + return + } + + $AssignedPolicies = @($AndroidPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedPolicies.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ At least one Android app protection policy exists and is assigned.`n`n" + } else { + $ResultMarkdown = "❌ No Android app protection policy exists or none are assigned.`n`n" + } + + $ResultMarkdown += "## Android App Protection Policies`n`n" + $ResultMarkdown += "| Policy Name | Assigned |`n" + $ResultMarkdown += "| :---------- | :------- |`n" + + foreach ($policy in $AndroidPolicies) { + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $assigned |`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Data on Android is protected by app protection policies' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Tenant' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Data on Android is protected by app protection policies' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Tenant' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24550.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24550.md new file mode 100644 index 000000000000..69fd867841a0 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24550.md @@ -0,0 +1,12 @@ +Without a properly configured and assigned BitLocker policy in Intune, threat actors can exploit unencrypted Windows devices to gain unauthorized access to sensitive corporate data. Devices that lack enforced encryption are vulnerable to physical attacks, like disk removal or booting from external media, allowing attackers to bypass operating system security controls. These attacks can result in data exfiltration, credential theft, and further lateral movement within the environment. + +Enforcing BitLocker across managed Windows devices is critical for compliance with data protection regulations and for reducing the risk of data breaches. + +**Remediation action** + +Use Intune to enforce BitLocker encryption and monitor compliance across all managed Windows devices: +- [Create a BitLocker policy for Windows devices in Intune](https://learn.microsoft.com/intune/intune-service/protect/encrypt-devices?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-and-deploy-policy) +- [Assign policies in Intune](https://learn.microsoft.com/intune/intune-service/configuration/device-profile-assign?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#assign-a-policy-to-users-or-groups) +- [Monitor device encryption with Intune](https://learn.microsoft.com/intune/intune-service/protect/encryption-monitor?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24550.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24550.ps1 new file mode 100644 index 000000000000..46c285740cb6 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24550.ps1 @@ -0,0 +1,94 @@ +function Invoke-CippTestZTNA24550 { + <# + .SYNOPSIS + Data on Windows is protected by BitLocker encryption + #> + param($Tenant) + #Tested - Device + + try { + $ConfigurationPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneConfigurationPolicies' + if (-not $ConfigurationPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24550' -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Data on Windows is protected by BitLocker encryption' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $WindowsPolicies = $ConfigurationPolicies | Where-Object { + $_.platforms -match 'windows10' + } + + $WindowsBitLockerPolicies = @() + foreach ($WindowsPolicy in $WindowsPolicies) { + $ValidSettingValues = @('device_vendor_msft_bitlocker_requiredeviceencryption_1') + + if ($WindowsPolicy.settings.settinginstance.choicesettingvalue.value) { + $PolicySettingValues = $WindowsPolicy.settings.settinginstance.choicesettingvalue.value + if ($PolicySettingValues -isnot [array]) { + $PolicySettingValues = @($PolicySettingValues) + } + + $HasValidSetting = $false + foreach ($SettingValue in $PolicySettingValues) { + if ($ValidSettingValues -contains $SettingValue) { + $HasValidSetting = $true + break + } + } + + if ($HasValidSetting) { + $WindowsBitLockerPolicies += $WindowsPolicy + } + } + } + + $AssignedPolicies = $WindowsBitLockerPolicies | Where-Object { + $_.assignments -and $_.assignments.Count -gt 0 + } + + if ($AssignedPolicies.Count -gt 0) { + $Status = 'Passed' + $ResultLines = @( + 'At least one Windows BitLocker policy is configured and assigned.' + '' + '**Windows BitLocker Policies:**' + '' + '| Policy Name | Status | Assignment Count |' + '| :---------- | :----- | :--------------- |' + ) + + foreach ($Policy in $WindowsBitLockerPolicies) { + $PolicyStatus = if ($Policy.assignments -and $Policy.assignments.Count -gt 0) { + '✅ Assigned' + } else { + '❌ Not assigned' + } + $AssignmentCount = if ($Policy.assignments) { $Policy.assignments.Count } else { 0 } + $ResultLines += "| $($Policy.name) | $PolicyStatus | $AssignmentCount |" + } + + $Result = $ResultLines -join "`n" + } else { + $Status = 'Failed' + if ($WindowsBitLockerPolicies.Count -gt 0) { + $ResultLines = @( + 'Windows BitLocker policies exist but none are assigned.' + '' + '**Unassigned BitLocker Policies:**' + '' + ) + foreach ($Policy in $WindowsBitLockerPolicies) { + $ResultLines += "- $($Policy.name)" + } + } else { + $ResultLines = @('No Windows BitLocker policy is configured or assigned.') + } + $Result = $ResultLines -join "`n" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24550' -TestType 'Devices' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Data on Windows is protected by BitLocker encryption' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24550' -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Data on Windows is protected by BitLocker encryption' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24551.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24551.md new file mode 100644 index 000000000000..441a4d65d1a1 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24551.md @@ -0,0 +1,11 @@ +If policies for Windows Hello for Business (WHfB) aren't configured and assigned to all users and devices, threat actors can exploit weak authentication mechanisms—like passwords—to gain unauthorized access. This can lead to credential theft, privilege escalation, and lateral movement within the environment. Without strong, policy-driven authentication like WHfB, attackers can compromise devices and accounts, increasing the risk of widespread impact. + +Enforcing WHfB disrupts this attack chain by requiring strong, multifactor authentication, which helps reduce the risk of credential-based attacks and unauthorized access. + +**Remediation action** + +Deploy Windows Hello for Business in Intune to enforce strong, multifactor authentication: +- [Configure a tenant-wide Windows Hello for Business policy](https://learn.microsoft.com/intune/intune-service/protect/windows-hello?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-a-windows-hello-for-business-policy-for-device-enrollment) that applies at the time a device enrolls with Intune. +- After enrollment, [configure Account protection profiles](https://learn.microsoft.com/intune/intune-service/protect/endpoint-security-account-protection-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#account-protection-profiles) and [assign](https://learn.microsoft.com/intune/intune-service/configuration/device-profile-assign?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#assign-a-policy-to-users-or-groups) different configurations for Windows Hello for Business to different groups of users and devices. +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24552.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24552.md new file mode 100644 index 000000000000..47161b346847 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24552.md @@ -0,0 +1,15 @@ +Without a centrally managed firewall policy, macOS devices might rely on default or user-modified settings, which often fail to meet corporate security standards. This exposes devices to unsolicited inbound connections, enabling threat actors to exploit vulnerabilities, establish outbound command-and-control (C2) traffic for data exfiltration, and move laterally within the network—significantly escalating the scope and impact of a breach. + +Enforcing macOS Firewall policies ensures consistent control over inbound and outbound traffic, reducing exposure to unauthorized access and supporting Zero Trust through device-level protection and network segmentation. + +**Remediation action** + +Configure and assign **macOS Firewall** profiles in Intune to block unauthorized traffic and enforce consistent network protections across all managed macOS devices: + +- [Configure the built-in firewall on macOS devices](https://learn.microsoft.com/intune/intune-service/protect/endpoint-security-firewall-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Assign policies in Intune](https://learn.microsoft.com/intune/intune-service/configuration/device-profile-assign?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#assign-a-policy-to-users-or-groups) + +For more information, see: +- [Available macOS firewall settings](https://learn.microsoft.com/intune/intune-service/protect/endpoint-security-firewall-profile-settings?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#macos-firewall-profile) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24552.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24552.ps1 new file mode 100644 index 000000000000..2d87afc2142b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24552.ps1 @@ -0,0 +1,94 @@ +function Invoke-CippTestZTNA24552 { + <# + .SYNOPSIS + Data on macOS is protected by firewall + #> + param($Tenant) + #Tested - Device + + try { + $ConfigurationPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneConfigurationPolicies' + if (-not $ConfigurationPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24552' -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Data on macOS is protected by firewall' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $MacOSPolicies = $ConfigurationPolicies | Where-Object { + $_.platforms -match 'macOS' + } + + $MacOSFirewallPolicies = @() + foreach ($MacOSPolicy in $MacOSPolicies) { + $ValidSettingValues = @('com.apple.security.firewall_enablefirewall_true') + + if ($MacOSPolicy.settings.settinginstance.choicesettingvalue.value) { + $PolicySettingValues = $MacOSPolicy.settings.settinginstance.choicesettingvalue.value + if ($PolicySettingValues -isnot [array]) { + $PolicySettingValues = @($PolicySettingValues) + } + + $HasValidSetting = $false + foreach ($SettingValue in $PolicySettingValues) { + if ($ValidSettingValues -contains $SettingValue) { + $HasValidSetting = $true + break + } + } + + if ($HasValidSetting) { + $MacOSFirewallPolicies += $MacOSPolicy + } + } + } + + $AssignedPolicies = $MacOSFirewallPolicies | Where-Object { + $_.assignments -and $_.assignments.Count -gt 0 + } + + if ($AssignedPolicies.Count -gt 0) { + $Status = 'Passed' + $ResultLines = @( + 'At least one macOS Firewall policy is configured and assigned.' + '' + '**macOS Firewall Policies:**' + '' + '| Policy Name | Status | Assignment Count |' + '| :---------- | :----- | :--------------- |' + ) + + foreach ($Policy in $MacOSFirewallPolicies) { + $PolicyStatus = if ($Policy.assignments -and $Policy.assignments.Count -gt 0) { + '✅ Assigned' + } else { + '❌ Not assigned' + } + $AssignmentCount = if ($Policy.assignments) { $Policy.assignments.Count } else { 0 } + $ResultLines += "| $($Policy.name) | $PolicyStatus | $AssignmentCount |" + } + + $Result = $ResultLines -join "`n" + } else { + $Status = 'Failed' + if ($MacOSFirewallPolicies.Count -gt 0) { + $ResultLines = @( + 'macOS Firewall policies exist but none are assigned.' + '' + '**Unassigned Firewall Policies:**' + '' + ) + foreach ($Policy in $MacOSFirewallPolicies) { + $ResultLines += "- $($Policy.name)" + } + } else { + $ResultLines = @('No macOS Firewall policy is configured or assigned.') + } + $Result = $ResultLines -join "`n" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24552' -TestType 'Devices' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Data on macOS is protected by firewall' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24552' -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Data on macOS is protected by firewall' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24553.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24553.md new file mode 100644 index 000000000000..23dcce5aa180 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24553.md @@ -0,0 +1,16 @@ +If Windows Update policies aren't enforced across all corporate Windows devices, threat actors can exploit unpatched vulnerabilities to gain unauthorized access, escalate privileges, and move laterally within the environment. The attack chain often begins with device compromise via phishing, malware, or exploitation of known vulnerabilities, and is followed by attempts to bypass security controls. Without enforced update policies, attackers leverage outdated software to persist in the environment, increasing the risk of privilege escalation and domain-wide compromise. + +Enforcing Windows Update policies ensures timely patching of security flaws, disrupting attacker persistence, and reducing the risk of widespread compromise. + +**Remediation action** + +Start with [Manage Windows software updates in Intune](https://learn.microsoft.com/intune/intune-service/protect/windows-update-for-business-configure?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) to understand the available Windows Update policy types and how to configure them. + +Intune includes the following Windows update policy type: +- [Windows quality updates policy](https://learn.microsoft.com/intune/intune-service/protect/windows-quality-update-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) - *to install the regular monthly updates for Windows.* +- [Expedite updates policy](https://learn.microsoft.com/intune/intune-service/protect/windows-10-expedite-updates?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) - *to quickly install critical security patches.* +- [Feature updates policy](https://learn.microsoft.com/intune/intune-service/protect/windows-10-feature-updates?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Update rings policy](https://learn.microsoft.com/intune/intune-service/protect/windows-10-update-rings?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) - *to manage how and when devices install feature and quality updates.* +- [Windows driver updates](https://learn.microsoft.com/intune/intune-service/protect/windows-driver-updates-overview?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) - *to update hardware components.* + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24553.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24553.ps1 new file mode 100644 index 000000000000..befe29a27e39 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24553.ps1 @@ -0,0 +1,53 @@ +function Invoke-CippTestZTNA24553 { + <# + .SYNOPSIS + Windows Update policies are enforced to reduce risk from unpatched vulnerabilities + #> + param($Tenant) + #Tested - Device + + $TestId = 'ZTNA24553' + + try { + $IntunePolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceCompliancePolicies' + + if (-not $IntunePolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Windows Update policies are enforced to reduce risk from unpatched vulnerabilities' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + return + } + + $UpdatePolicies = @($IntunePolicies | Where-Object { + $_.'@odata.type' -in @( + '#microsoft.graph.windowsUpdateForBusinessConfiguration', + '#microsoft.graph.windows10CompliancePolicy' + ) + }) + + $AssignedPolicies = @($UpdatePolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedPolicies.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ Windows Update policies are configured and assigned.`n`n" + } else { + $ResultMarkdown = "❌ No Windows Update policies are configured or assigned.`n`n" + } + + $ResultMarkdown += "## Windows Update Policies`n`n" + $ResultMarkdown += "| Policy Name | Type | Assigned |`n" + $ResultMarkdown += "| :---------- | :--- | :------- |`n" + + foreach ($policy in $UpdatePolicies) { + $type = if ($policy.'@odata.type' -eq '#microsoft.graph.windowsUpdateForBusinessConfiguration') { 'Update' } else { 'Compliance' } + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $type | $assigned |`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Windows Update policies are enforced to reduce risk from unpatched vulnerabilities' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Windows Update policies are enforced to reduce risk from unpatched vulnerabilities' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24554.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24554.md new file mode 100644 index 000000000000..780d3db02237 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24554.md @@ -0,0 +1,11 @@ +If iOS update policies aren’t configured and assigned, threat actors can exploit unpatched vulnerabilities in outdated operating systems on managed devices. The absence of enforced update policies allows attackers to use known exploits to gain initial access, escalate privileges, and move laterally within the environment. Without timely updates, devices remain susceptible to exploits that have already been addressed by Apple, enabling threat actors to bypass security controls, deploy malware, or exfiltrate sensitive data. This attack chain begins with device compromise through an unpatched vulnerability, followed by persistence and potential data breach that impacts both organizational security and compliance posture. + +Enforcing update policies disrupts this chain by ensuring devices are consistently protected against known threats. + +**Remediation action** + +Configure and assign iOS/iPadOS update policies in Intune to enforce timely patching and reduce risk from unpatched vulnerabilities: +- [Manage iOS/iPadOS software updates in Intune](https://learn.microsoft.com/intune/intune-service/protect/software-updates-guide-ios-ipados?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Assign policies in Intune](https://learn.microsoft.com/intune/intune-service/configuration/device-profile-assign?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#assign-a-policy-to-users-or-groups) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24555.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24555.md new file mode 100644 index 000000000000..9419a8e0b59d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24555.md @@ -0,0 +1,12 @@ +If Intune scope tags aren't properly configured for delegated administration, attackers who gain privileged access to Intune or Microsoft Entra ID can escalate privileges and access sensitive device configurations across the tenant. Without granular scope tags, administrative boundaries are unclear, allowing attackers to move laterally, manipulate device policies, exfiltrate configuration data, or deploy malicious settings to all users and devices. A single compromised admin account can impact the entire environment. The absence of delegated administration also undermines least-privileged access, making it difficult to contain breaches and enforce accountability. Attackers might exploit global administrator roles or misconfigured role-based access control (RBAC) assignments to bypass compliance policies and gain broad control over device management. + +Enforcing scope tags segments administrative access and aligns it with organizational boundaries. This limits the blast radius of compromised accounts, supports least-privilege access, and aligns with Zero Trust principles of segmentation, role-based control, and containment. + +**Remediation action** + +Use Intune scope tags and RBAC roles to limit admin access based on role, geography, or business unit: +- [Learn how to create and deploy scope tags for distributed IT](https://learn.microsoft.com/intune/intune-service/fundamentals/scope-tags?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Implement role-based access control with Microsoft Intune](https://learn.microsoft.com/intune/intune-service/fundamentals/role-based-access-control?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24560.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24560.md new file mode 100644 index 000000000000..2e5273c0032d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24560.md @@ -0,0 +1,14 @@ +Without enforcing Local Administrator Password Solution (LAPS) policies, threat actors who gain access to endpoints can exploit static or weak local administrator passwords to escalate privileges, move laterally, and establish persistence. The attack chain typically begins with device compromise—via phishing, malware, or physical access—followed by attempts to harvest local admin credentials. Without LAPS, attackers can reuse compromised credentials across multiple devices, increasing the risk of privilege escalation and domain-wide compromise. + +Enforcing Windows LAPS on all corporate Windows devices ensures unique, regularly rotated local administrator passwords. This disrupts the attack chain at the credential access and lateral movement stages, significantly reducing the risk of widespread compromise. + +**Remediation action** + +Use Intune to enforce Windows LAPS policies that rotate strong and unique local admin passwords, and that back them up securely: +- [Deploy Windows LAPS policy with Microsoft Intune](https://learn.microsoft.com/intune/intune-service/protect/windows-laps-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-a-laps-policy) + +For more information, see: +- [Windows LAPS policy settings reference](https://learn.microsoft.com/windows-server/identity/laps/laps-management-policy-settings?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Learn about Intune support for Windows LAPS](https://learn.microsoft.com/intune/intune-service/protect/windows-laps-overview?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24560.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24560.ps1 new file mode 100644 index 000000000000..0df6b175853d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24560.ps1 @@ -0,0 +1,71 @@ +function Invoke-CippTestZTNA24560 { + <# + .SYNOPSIS + Local administrator credentials on Windows are protected by Windows LAPS + #> + param($Tenant) + #Tested - Device + + try { + $ConfigPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneConfigurationPolicies' + if (-not $ConfigPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24560' -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Local administrator credentials on Windows are protected by Windows LAPS' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $WindowsPolicies = $ConfigPolicies | Where-Object { + $_.templateReference.templateFamily -eq 'endpointSecurityAccountProtection' -and + $_.platforms -like '*windows10*' + } + + if (-not $WindowsPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24560' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No Windows LAPS policies found' -Risk 'High' -Name 'Local administrator credentials on Windows are protected by Windows LAPS' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $LapsPolicies = $WindowsPolicies | Where-Object { + $settingIds = $_.settings.settingInstance.settingDefinitionId + $settingIds -contains 'device_vendor_msft_laps_policies_backupdirectory' -or + $settingIds -contains 'device_vendor_msft_laps_policies_automaticaccountmanagementenabled' + } + + if (-not $LapsPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24560' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No LAPS policies configured' -Risk 'High' -Name 'Local administrator credentials on Windows are protected by Windows LAPS' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $CompliantPolicies = $LapsPolicies | Where-Object { + $settingIds = $_.settings.settingInstance.settingDefinitionId + $choiceValues = $_.settings.settingInstance.choiceSettingValue.value + + $hasBackupDir = $settingIds -contains 'device_vendor_msft_laps_policies_backupdirectory' + $hasEntraBackup = $choiceValues -contains 'device_vendor_msft_laps_policies_backupdirectory_1' + $hasAdBackup = $choiceValues -contains 'device_vendor_msft_laps_policies_backupdirectory_2' + $hasAutoMgmt = $choiceValues -contains 'device_vendor_msft_laps_policies_automaticaccountmanagementenabled_true' + + ($hasBackupDir -and ($hasEntraBackup -or $hasAdBackup) -and $hasAutoMgmt) + } + + $AssignedCompliantPolicies = $CompliantPolicies | Where-Object { + $_.assignments -and $_.assignments.Count -gt 0 + } + + if ($AssignedCompliantPolicies) { + $Status = 'Passed' + $Result = "Cloud LAPS policy is assigned and enforced. Found $($AssignedCompliantPolicies.Count) compliant and assigned policy/policies" + } else { + $Status = 'Failed' + if ($CompliantPolicies) { + $Result = "Cloud LAPS policy exists but is not assigned. Found $($CompliantPolicies.Count) compliant but unassigned policy/policies" + } else { + $Result = 'Cloud LAPS policy is not configured correctly or not enforced' + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24560' -TestType 'Devices' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Local administrator credentials on Windows are protected by Windows LAPS' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24560' -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Local administrator credentials on Windows are protected by Windows LAPS' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24561.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24561.md new file mode 100644 index 000000000000..0ab82d59bffc --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24561.md @@ -0,0 +1,9 @@ +If a macOS cloud LAPS (Local Administrator Password Solution) policy is not configured and assigned in Intune, local admin accounts on enrolled macOS devices may remain unmanaged, increasing the risk of unauthorized access, privilege escalation, and lateral movement by threat actors. Without enforced LAPS policies, organizations cannot ensure that admin account credentials are rotated, unique, and securely managed, exposing sensitive systems to potential compromise. + +**Remediation Resources** + +- [Configure macOS LAPS in Microsoft Intune](https://learn.microsoft.com/en-us/intune/intune-service/enrollment/macos-laps) +- [depOnboardingSetting resource type - Microsoft Graph beta](https://learn.microsoft.com/en-us/graph/api/resources/intune-enrollment-deponboardingsetting?view=graph-rest-beta) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24564.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24564.md new file mode 100644 index 000000000000..e3746624d5b3 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24564.md @@ -0,0 +1,13 @@ +Without a properly configured and assigned Local Users and Groups policy in Intune, threat actors can exploit unmanaged or misconfigured local accounts on Windows devices. This can lead to unauthorized privilege escalation, persistence, and lateral movement within the environment. If local administrator accounts aren't controlled, attackers can create hidden accounts or elevate privileges, bypassing compliance and security controls. This gap increases the risk of data exfiltration, ransomware deployment, and regulatory noncompliance. + +Ensuring that Local Users and Groups policies are enforced on managed Windows devices, by using account protection profiles, is critical to maintaining a secure and compliant device fleet. + + +**Remediation action** + +Configure and deploy a **Local user group membership** profile from Intune account protection policy to restrict and manage local account usage on Windows devices: +- Create an [Account protection policy for endpoint security in Intune](https://learn.microsoft.com/intune/intune-service/protect/endpoint-security-account-protection-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#account-protection-profiles) +- [Assign policies in Intune](https://learn.microsoft.com/intune/intune-service/configuration/device-profile-assign?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#assign-a-policy-to-users-or-groups) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24564.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24564.ps1 new file mode 100644 index 000000000000..8d969033aab5 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24564.ps1 @@ -0,0 +1,57 @@ +function Invoke-CippTestZTNA24564 { + <# + .SYNOPSIS + Local account usage on Windows is restricted to reduce unauthorized access + #> + param($Tenant) + #Tested - Device + + try { + $ConfigPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneConfigurationPolicies' + if (-not $ConfigPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24564' -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Local account usage on Windows is restricted to reduce unauthorized access' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $WindowsPolicies = $ConfigPolicies | Where-Object { + $_.platforms -like '*windows10*' + } + + if (-not $WindowsPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24564' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No Windows policies found' -Risk 'High' -Name 'Local account usage on Windows is restricted to reduce unauthorized access' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $LocalUsersGroupsPolicies = $WindowsPolicies | Where-Object { + $settingIds = $_.settings.settingInstance.settingDefinitionId + if ($settingIds -is [string]) { + $settingIds -eq 'device_vendor_msft_policy_config_localusersandgroups_configure' + } else { + $settingIds -contains 'device_vendor_msft_policy_config_localusersandgroups_configure' + } + } + + if (-not $LocalUsersGroupsPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24564' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No Local Users and Groups policy configured' -Risk 'High' -Name 'Local account usage on Windows is restricted to reduce unauthorized access' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $AssignedPolicies = $LocalUsersGroupsPolicies | Where-Object { + $_.assignments -and $_.assignments.Count -gt 0 + } + + if ($AssignedPolicies) { + $Status = 'Passed' + $Result = "At least one Local Users and Groups policy is configured and assigned. Found $($AssignedPolicies.Count) assigned policy/policies" + } else { + $Status = 'Failed' + $Result = "Local Users and Groups policy exists but is not assigned. Found $($LocalUsersGroupsPolicies.Count) unassigned policy/policies" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24564' -TestType 'Devices' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Local account usage on Windows is restricted to reduce unauthorized access' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24564' -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Local account usage on Windows is restricted to reduce unauthorized access' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24568.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24568.md new file mode 100644 index 000000000000..f1363b0e0739 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24568.md @@ -0,0 +1,12 @@ +If Platform SSO policies aren't enforced on macOS devices, endpoints might rely on insecure or inconsistent authentication mechanisms, allowing attackers to bypass Conditional Access and compliance policies. This opens the door to lateral movement across cloud services and on-premises resources, especially when federated identities are used. Threat actors can persist by leveraging stolen tokens or cached credentials and exfiltrate sensitive data through unmanaged apps or browser sessions. The absence of SSO enforcement also undermines app protection policies and device posture assessments, making it difficult to detect and contain breaches. Ultimately, failure to configure and assign macOS Platform SSO policies compromises identity security and weakens the organization's Zero Trust posture. + +Enforcing Platform SSO policies on macOS devices ensures consistent, secure authentication across apps and services. This strengthens identity protection, supports Conditional Access enforcement, and aligns with Zero Trust by reducing reliance on local credentials and improving posture assessments. + +**Remediation action** + +Use Intune to configure and assign Platform SSO policies for macOS devices to enforce secure authentication and strengthen identity protection, see: + +- [Configure Platform SSO for macOS in Intune](https://learn.microsoft.com/intune/intune-service/configuration/platform-sso-macos?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) – *Step-by-step guidance for enabling Platform SSO on macOS devices.* +- [Single sign-on (SSO) overview and options for Apple devices in Microsoft Intune](https://learn.microsoft.com/intune/intune-service/configuration/use-enterprise-sso-plug-in-ios-ipados-macos?pivots=macos&wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) – *Overview of SSO options available for Apple platforms.* +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24568.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24568.ps1 new file mode 100644 index 000000000000..7f2b58180c5b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24568.ps1 @@ -0,0 +1,59 @@ +function Invoke-CippTestZTNA24568 { + <# + .SYNOPSIS + Platform SSO is configured to strengthen authentication on macOS devices + #> + param($Tenant) + #Tested - Device + + try { + $ConfigPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneConfigurationPolicies' + if (-not $ConfigPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24568' -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Platform SSO is configured to strengthen authentication on macOS devices' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Tenant' + return + } + + $MacOSPolicies = $ConfigPolicies | Where-Object { + $_.platforms -like '*macOS*' -and + $_.technologies -like '*mdm*' -and + $_.technologies -like '*appleRemoteManagement*' + } + + if (-not $MacOSPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24568' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No macOS policies found' -Risk 'Medium' -Name 'Platform SSO is configured to strengthen authentication on macOS devices' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Tenant' + return + } + + $SSOPolicies = $MacOSPolicies | Where-Object { + $children = $_.settings.settingInstance.groupSettingCollectionValue.children + $extensionIdSetting = $children | Where-Object { + $_.settingDefinitionId -eq 'com.apple.extensiblesso_extensionidentifier' + } + $extensionValue = $extensionIdSetting.simpleSettingValue.value + $extensionValue -eq 'com.microsoft.CompanyPortalMac.ssoextension' + } + + if (-not $SSOPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24568' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No macOS SSO policies configured with Microsoft Company Portal extension' -Risk 'Medium' -Name 'Platform SSO is configured to strengthen authentication on macOS devices' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Tenant' + return + } + + $AssignedSSOPolicies = $SSOPolicies | Where-Object { + $_.assignments -and $_.assignments.Count -gt 0 + } + + if ($AssignedSSOPolicies) { + $Status = 'Passed' + $Result = "macOS SSO policies are configured and assigned. Found $($AssignedSSOPolicies.Count) assigned policy/policies" + } else { + $Status = 'Failed' + $Result = "macOS SSO policy exists but is not assigned. Found $($SSOPolicies.Count) unassigned policy/policies" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24568' -TestType 'Devices' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Platform SSO is configured to strengthen authentication on macOS devices' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Tenant' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24568' -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Platform SSO is configured to strengthen authentication on macOS devices' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Tenant' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24569.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24569.md new file mode 100644 index 000000000000..b83531c58838 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24569.md @@ -0,0 +1,12 @@ +Without properly configured and assigned FileVault encryption policies in Intune, threat actors can exploit physical access to unmanaged or misconfigured macOS devices to extract sensitive corporate data. Unencrypted devices allow attackers to bypass operating system-level security by booting from external media or removing the storage drive. These attacks can expose credentials, certificates, and cached authentication tokens, enabling privilege escalation and lateral movement. Additionally, unencrypted devices undermine compliance with data protection regulations and increase the risk of reputational damage and financial penalties in the event of a breach. + +Enforcing FileVault encryption protects data at rest on macOS devices, even if lost or stolen. It disrupts credential harvesting and lateral movement, supports regulatory compliance, and aligns with Zero Trust principles of device trust. + +**Remediation action** + +Use Intune to enforce FileVault encryption and monitor compliance on all managed macOS devices: +- [Create a FileVault disk encryption policy for macOS in Intune](https://learn.microsoft.com/intune/intune-service/protect/encrypt-devices-filevault?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-endpoint-security-policy-for-filevault) +- [Assign policies in Intune](https://learn.microsoft.com/intune/intune-service/configuration/device-profile-assign?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#assign-a-policy-to-users-or-groups) +- [Monitor device encryption with Intune](https://learn.microsoft.com/intune/intune-service/protect/encryption-monitor?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24569.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24569.ps1 new file mode 100644 index 000000000000..821983deda18 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24569.ps1 @@ -0,0 +1,55 @@ +function Invoke-CippTestZTNA24569 { + <# + .SYNOPSIS + FileVault encryption protects data on macOS devices + #> + param($Tenant) + + $TestId = 'ZTNA24569' + #Tested - Device + + try { + $DeviceConfigs = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceConfigurations' + + if (-not $DeviceConfigs) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'FileVault encryption protects data on macOS devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $MacOSEndpointProtectionPolicies = @($DeviceConfigs | Where-Object { + $_.'@odata.type' -eq '#microsoft.graph.macOSEndpointProtectionConfiguration' + }) + + $FileVaultEnabledPolicies = @($MacOSEndpointProtectionPolicies | Where-Object { $_.fileVaultEnabled -eq $true }) + $AssignedFileVaultPolicies = @($FileVaultEnabledPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedFileVaultPolicies.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ macOS FileVault encryption policies are configured and assigned in Intune.`n`n" + } else { + $ResultMarkdown = "❌ No relevant macOS FileVault encryption policies are configured or assigned.`n`n" + } + + if ($FileVaultEnabledPolicies.Count -gt 0) { + $ResultMarkdown += "## macOS FileVault Policies`n`n" + $ResultMarkdown += "| Policy Name | FileVault Enabled | Assigned |`n" + $ResultMarkdown += "| :---------- | :---------------- | :------- |`n" + + foreach ($policy in $FileVaultEnabledPolicies) { + $fileVault = if ($policy.fileVaultEnabled -eq $true) { '✅ Yes' } else { '❌ No' } + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $fileVault | $assigned |`n" + } + } else { + $ResultMarkdown += "No macOS Endpoint Protection policies with FileVault settings found.`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'FileVault encryption protects data on macOS devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Device' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'FileVault encryption protects data on macOS devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Device' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24570.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24570.md new file mode 100644 index 000000000000..d25a00389cea --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24570.md @@ -0,0 +1,9 @@ +Microsoft Entra Connect Sync using user accounts instead of service principals creates security vulnerabilities. Legacy user account authentication with passwords is more susceptible to credential theft and password attacks than service principal authentication with certificates. Compromised connector accounts allow threat actors to manipulate identity synchronization, create backdoor accounts, escalate privileges, or disrupt hybrid identity infrastructure. + +**Remediation action** + +- [Configure service principal authentication for Entra Connect](https://learn.microsoft.com/entra/identity/hybrid/connect/authenticate-application-id?tabs=default&wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#onboard-to-application-based-authentication) +- [Remove legacy Directory Synchronization Accounts](https://learn.microsoft.com/entra/identity/hybrid/connect/authenticate-application-id?tabs=default&wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#remove-a-legacy-service-account) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24572.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24572.md new file mode 100644 index 000000000000..a16520f6611d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24572.md @@ -0,0 +1,16 @@ +Without device enrollment notifications, users might be unaware that their device has been enrolled in Intune—particularly in cases of unauthorized or unexpected enrollment. This lack of visibility can delay user reporting of suspicious activity and increase the risk of unmanaged or compromised devices gaining access to corporate resources. Attackers who obtain user credentials or exploit self-enrollment flows can silently onboard devices, bypassing user scrutiny and enabling data exposure or lateral movement. + +Enrollment notifications provide users with improved visibility into device onboarding activity. They help detect unauthorized enrollment, reinforce secure provisioning practices, and support Zero Trust principles of visibility, verification, and user engagement. + +**Remediation action** + +Configure Intune enrollment notifications to alert users when their device is enrolled and reinforce secure onboarding practices: +- [Set up enrollment notifications in Intune](https://learn.microsoft.com/intune/intune-service/enrollment/enrollment-notifications?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + + + + + + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24573.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24573.md new file mode 100644 index 000000000000..d769655b0fae --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24573.md @@ -0,0 +1,11 @@ +Without properly configured and assigned Intune security baselines for Windows, devices remain vulnerable to a wide array of attack vectors that threat actors exploit to gain persistence and escalate privileges. Adversaries leverage default Windows configurations that lack hardened security settings to perform lateral movement using techniques like credential dumping, privilege escalation via unpatched vulnerabilities, and exploitation of weak authentication mechanisms. In the absence of enforced security baselines, threat actors can bypass critical security controls, maintain persistence through registry modifications, and exfiltrate sensitive data through unmonitored channels. Failing to implement a defense-in-depth strategy makes devices easier to exploit as attackers progress through the attack chain—from initial access to data exfiltration—ultimately compromising the organization’s security posture and increasing the risk of compliance violations. + +Applying security baselines ensures Windows devices are configured with hardened settings, reducing attack surface, enforcing defense-in-depth, and supporting Zero Trust by standardizing security controls across the environment. + +**Remediation action** + +Configure and assign Intune security baselines to Windows devices to enforce standardized security settings and monitor compliance: +- [Deploy security baselines to help secure Windows devices](https://learn.microsoft.com/intune/intune-service/protect/security-baselines-configure?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-a-profile-for-a-security-baseline) +- [Monitor security baseline compliance](https://learn.microsoft.com/intune/intune-service/protect/security-baselines-monitor?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24574.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24574.md new file mode 100644 index 000000000000..4f43396f391a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24574.md @@ -0,0 +1,14 @@ +If Intune profiles for Attack Surface Reduction (ASR) rules aren't properly configured and assigned to Windows devices, threat actors can exploit unprotected endpoints to execute obfuscated scripts and invoke Win32 API calls from Office macros. These techniques are commonly used in phishing campaigns and malware delivery, allowing attackers to bypass traditional antivirus defenses and gain initial access. Once inside, attackers escalate privileges, establish persistence, and move laterally across the network. Without ASR enforcement, devices remain vulnerable to script-based attacks and macro abuse, undermining the effectiveness of Microsoft Defender and exposing sensitive data to exfiltration. This gap in endpoint protection increases the likelihood of successful compromise and reduces the organization’s ability to contain and respond to threats. + +Enforcing ASR rules helps block common attack techniques such as script-based execution and macro abuse, reducing the risk of initial compromise and supporting Zero Trust by hardening endpoint defenses. + +**Remediation action** + +Use Intune to deploy **Attack Surface Reduction Rules** profiles for Windows devices to block high-risk behaviors and strengthen endpoint protection: +- [Configure Intune profiles for Attack Surface Reduction Rules](https://learn.microsoft.com/intune/intune-service/protect/endpoint-security-asr-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#devices-managed-by-intune) +- [Assign policies in Intune](https://learn.microsoft.com/intune/intune-service/configuration/device-profile-assign?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#assign-a-policy-to-users-or-groups) + +For more information, see: +- [Attack surface reduction rules reference](https://learn.microsoft.com/defender-endpoint/attack-surface-reduction-rules-reference?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) in the Microsoft Defender documentation. +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24574.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24574.ps1 new file mode 100644 index 000000000000..50a4ff1efbf2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24574.ps1 @@ -0,0 +1,73 @@ +function Invoke-CippTestZTNA24574 { + <# + .SYNOPSIS + Attack Surface Reduction rules are applied to Windows devices to prevent exploitation of vulnerable system components + #> + param($Tenant) + #Tested - Device + + try { + $ConfigPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneConfigurationPolicies' + if (-not $ConfigPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24574' -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Attack Surface Reduction rules are applied to Windows devices to prevent exploitation of vulnerable system components' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Device' + return + } + + $Win10MdmSensePolicies = $ConfigPolicies | Where-Object { + $_.platforms -like '*windows10*' -and + $_.technologies -like '*mdm*' -and + $_.technologies -like '*microsoftSense*' + } + + if (-not $Win10MdmSensePolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24574' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No Windows ASR policies found' -Risk 'High' -Name 'Attack Surface Reduction rules are applied to Windows devices to prevent exploitation of vulnerable system components' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Device' + return + } + + $ASRPolicies = $Win10MdmSensePolicies | Where-Object { + $settingIds = $_.settings.settingInstance.settingDefinitionId + $settingIds -contains 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules' + } + + if (-not $ASRPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24574' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No Attack Surface Reduction policies found' -Risk 'High' -Name 'Attack Surface Reduction rules are applied to Windows devices to prevent exploitation of vulnerable system components' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Device' + return + } + + $ObfuscatedScriptPolicies = $ASRPolicies | Where-Object { + $children = $_.settings.settingInstance.groupSettingCollectionValue.children + $settingId = 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockexecutionofpotentiallyobfuscatedscripts' + $matchingSetting = $children | Where-Object { $_.settingDefinitionId -eq $settingId } + $value = $matchingSetting.choiceSettingValue.value + $value -like '*_block' -or $value -like '*_warn' + } + + $Win32MacroPolicies = $ASRPolicies | Where-Object { + $children = $_.settings.settingInstance.groupSettingCollectionValue.children + $settingId = 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockwin32apicallsfromofficemacros' + $matchingSetting = $children | Where-Object { $_.settingDefinitionId -eq $settingId } + $value = $matchingSetting.choiceSettingValue.value + $value -like '*_block' -or $value -like '*_warn' + } + + $AssignedObfuscated = $ObfuscatedScriptPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 } + $AssignedWin32Macro = $Win32MacroPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 } + + if ($AssignedObfuscated -and $AssignedWin32Macro) { + $Status = 'Passed' + $Result = 'ASR policies are configured and assigned with required rules (obfuscated scripts and Win32 API calls from macros)' + } elseif ($AssignedObfuscated -or $AssignedWin32Macro) { + $Status = 'Failed' + $Result = "ASR policies partially configured. Missing: $(if (-not $AssignedObfuscated) { 'obfuscated scripts rule ' })$(if (-not $AssignedWin32Macro) { 'Win32 API calls rule' })" + } else { + $Status = 'Failed' + $Result = 'ASR policies found but not properly configured or assigned for required rules' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24574' -TestType 'Devices' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Attack Surface Reduction rules are applied to Windows devices to prevent exploitation of vulnerable system components' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Device' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24574' -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Attack Surface Reduction rules are applied to Windows devices to prevent exploitation of vulnerable system components' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Device' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24575.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24575.md new file mode 100644 index 000000000000..05f917a22a85 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24575.md @@ -0,0 +1,13 @@ +If policies for Microsoft Defender Antivirus aren't properly configured and assigned in Intune, threat actors can exploit unprotected endpoints to execute malware, disable antivirus protections, and persist within the environment. Without enforced antivirus policies, devices operate with outdated definitions, disabled real-time protection, or misconfigured scan schedules. These gaps allow attackers to bypass detection, escalate privileges, and move laterally across the network. The absence of antivirus enforcement undermines device compliance, increases exposure to zero-day threats, and can result in regulatory noncompliance. Attackers leverage these weaknesses to maintain persistence and evade detection, especially in environments lacking centralized policy enforcement. + +Enforcing Defender Antivirus policies ensures consistent protection against malware, supports real-time threat detection, and aligns with Zero Trust by maintaining a secure and compliant endpoint posture. + +**Remediation action** + +Configure and assign Intune policies for Microsoft Defender Antivirus to enforce real-time protection, maintain up-to-date definitions, and reduce exposure to malware: + +- [Configure Intune policies to manage Microsoft Defender Antivirus](https://learn.microsoft.com/intune/intune-service/protect/endpoint-security-antivirus-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#windows) +- [Assign policies in Intune](https://learn.microsoft.com/intune/intune-service/configuration/device-profile-assign?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#assign-a-policy-to-users-or-groups) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24575.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24575.ps1 new file mode 100644 index 000000000000..a86aafd31fb9 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24575.ps1 @@ -0,0 +1,54 @@ +function Invoke-CippTestZTNA24575 { + <# + .SYNOPSIS + Defender Antivirus policies protect Windows devices from malware + #> + param($Tenant) + #Tested - Device + + try { + $ConfigPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneConfigurationPolicies' + if (-not $ConfigPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24575' -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Defender Antivirus policies protect Windows devices from malware' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Device' + return + } + + $MdmSensePolicies = $ConfigPolicies | Where-Object { + $_.platforms -like '*windows10*' -and + $_.technologies -like '*mdm*' -and + $_.technologies -like '*microsoftSense*' + } + + if (-not $MdmSensePolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24575' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No Windows Defender policies found' -Risk 'High' -Name 'Defender Antivirus policies protect Windows devices from malware' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Device' + return + } + + $AVPolicies = $MdmSensePolicies | Where-Object { + $_.templateReference.templateFamily -eq 'endpointSecurityAntivirus' + } + + if (-not $AVPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24575' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No Windows Defender Antivirus policies found' -Risk 'High' -Name 'Defender Antivirus policies protect Windows devices from malware' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Device' + return + } + + $AssignedPolicies = $AVPolicies | Where-Object { + $_.assignments -and $_.assignments.Count -gt 0 + } + + if ($AssignedPolicies) { + $Status = 'Passed' + $Result = "Windows Defender Antivirus policies are configured and assigned. Found $($AssignedPolicies.Count) assigned policy/policies" + } else { + $Status = 'Failed' + $Result = "Windows Defender Antivirus policies exist but are not assigned. Found $($AVPolicies.Count) unassigned policy/policies" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24575' -TestType 'Devices' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Defender Antivirus policies protect Windows devices from malware' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Device' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24575' -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Defender Antivirus policies protect Windows devices from malware' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Device' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24576.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24576.md new file mode 100644 index 000000000000..a9852ccab073 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24576.md @@ -0,0 +1,14 @@ +If endpoint analytics isn't enabled, threat actors can exploit gaps in device health, performance, and security posture. Without the visibility Endpoint analytics brings, it can be difficult for an organization to detect indicators such as anomalous device behavior, delayed patching, or configuration drift. These gaps allow attackers to establish persistence, escalate privileges, and move laterally across the environment. An absence of analytics data can impede rapid detection and response, allowing attackers to exploit unmonitored endpoints for command and control, data exfiltration, or further compromise. + +Enabling Endpoint Analytics provides visibility into device health and behavior, helping organizations detect risks, respond quickly to threats, and maintain a strong Zero Trust posture. + +**Remediation action** + +Enroll Windows devices into Endpoint Analytics in Intune to monitor device health and identify risks: +- [Enroll Intune devices into Endpoint analytics](https://learn.microsoft.com/intune/analytics/enroll-intune?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +For more information, see: +- [What is Endpoint analytics?](https://learn.microsoft.com/intune/analytics?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24576.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24576.ps1 new file mode 100644 index 000000000000..eac9abcb2266 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24576.ps1 @@ -0,0 +1,53 @@ +function Invoke-CippTestZTNA24576 { + <# + .SYNOPSIS + Endpoint Analytics is enabled to help identify risks on Windows devices + #> + param($Tenant) + + $TestId = 'ZTNA24576' + #Tested - Device + + try { + $DeviceConfigs = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceConfigurations' + + if (-not $DeviceConfigs) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'Endpoint Analytics is enabled to help identify risks on Windows devices' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Tenant' + return + } + + $WindowsHealthMonitoringPolicies = @($DeviceConfigs | Where-Object { + $_.'@odata.type' -eq '#microsoft.graph.windowsHealthMonitoringConfiguration' + }) + + $AssignedPolicies = @($WindowsHealthMonitoringPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedPolicies.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ An Endpoint analytics policy is created and assigned.`n`n" + } else { + $ResultMarkdown = "❌ Endpoint analytics policy is not created or not assigned.`n`n" + } + + if ($WindowsHealthMonitoringPolicies.Count -gt 0) { + $ResultMarkdown += "## Endpoint Analytics Policies`n`n" + $ResultMarkdown += "| Policy Name | Assigned |`n" + $ResultMarkdown += "| :---------- | :------- |`n" + + foreach ($policy in $WindowsHealthMonitoringPolicies) { + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $assigned |`n" + } + } else { + $ResultMarkdown += "No Endpoint Analytics policies found in this tenant.`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'Low' -Name 'Endpoint Analytics is enabled to help identify risks on Windows devices' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Tenant' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'Endpoint Analytics is enabled to help identify risks on Windows devices' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Tenant' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24690.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24690.md new file mode 100644 index 000000000000..1503d4f1d531 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24690.md @@ -0,0 +1,11 @@ +If macOS update policies aren’t properly configured and assigned, threat actors can exploit unpatched vulnerabilities in macOS devices within the organization. Without enforced update policies, devices remain on outdated software versions, increasing the attack surface for privilege escalation, remote code execution, or persistence techniques. Threat actors can leverage these weaknesses to gain initial access, escalate privileges, and move laterally within the environment. If policies exist but aren’t assigned to device groups, endpoints remain unprotected, and compliance gaps go undetected. This can result in widespread compromise, data exfiltration, and operational disruption. + +Enforcing macOS update policies ensures devices receive timely patches, reducing the risk of exploitation and supporting Zero Trust by maintaining a secure, compliant device fleet. + +**Remediation action** + +Configure and assign macOS update policies in Intune to enforce timely patching and reduce risk from unpatched vulnerabilities: +- [Manage macOS software updates in Intune](https://learn.microsoft.com/intune/intune-service/protect/software-updates-macos?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24784.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24784.md new file mode 100644 index 000000000000..8bb2009ede0f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24784.md @@ -0,0 +1,11 @@ +If Microsoft Defender Antivirus policies aren't properly configured and assigned to macOS devices in Intune, attackers can exploit unprotected endpoints to execute malware, disable antivirus protections, and persist in the environment. Without enforced policies, devices run outdated definitions, lack real-time protection, or have misconfigured scan schedules, increasing the risk of undetected threats and privilege escalation. This enables lateral movement across the network, credential harvesting, and data exfiltration. The absence of antivirus enforcement undermines device compliance, increases exposure of endpoints to zero-day threats, and can result in regulatory noncompliance. Attackers use these gaps to maintain persistence and evade detection, especially in environments without centralized policy enforcement. + +Enforcing Defender Antivirus policies ensures that macOS devices are consistently protected against malware, supports real-time threat detection, and aligns with Zero Trust by maintaining a secure and compliant endpoint posture. + +**Remediation action** + +Use Intune to configure and assign Microsoft Defender Antivirus policies for macOS devices to enforce real-time protection, maintain up-to-date definitions, and reduce exposure to malware: +- [Configure Intune policies to manage Microsoft Defender Antivirus](https://learn.microsoft.com/intune/intune-service/protect/endpoint-security-antivirus-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#macos) +- [Assign policies in Intune](https://learn.microsoft.com/intune/intune-service/configuration/device-profile-assign?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#assign-a-policy-to-users-or-groups) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24784.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24784.ps1 new file mode 100644 index 000000000000..75a6b173b5ae --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24784.ps1 @@ -0,0 +1,54 @@ +function Invoke-CippTestZTNA24784 { + <# + .SYNOPSIS + Defender Antivirus policies protect macOS devices from malware + #> + param($Tenant) + #Tested - Device + + try { + $ConfigPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneConfigurationPolicies' + if (-not $ConfigPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24784' -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Defender Antivirus policies protect macOS devices from malware' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $MdmMacOSSensePolicies = $ConfigPolicies | Where-Object { + $_.platforms -like '*macOS*' -and + $_.technologies -like '*mdm*' -and + $_.technologies -like '*microsoftSense*' + } + + if (-not $MdmMacOSSensePolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24784' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No macOS Defender policies found' -Risk 'High' -Name 'Defender Antivirus policies protect macOS devices from malware' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $AVPolicies = $MdmMacOSSensePolicies | Where-Object { + $_.templateReference.templateFamily -eq 'endpointSecurityAntivirus' + } + + if (-not $AVPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24784' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No Defender Antivirus policies for macOS found' -Risk 'High' -Name 'Defender Antivirus policies protect macOS devices from malware' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $AssignedPolicies = $AVPolicies | Where-Object { + $_.assignments -and $_.assignments.Count -gt 0 + } + + if ($AssignedPolicies) { + $Status = 'Passed' + $Result = "Defender Antivirus policies for macOS are configured and assigned. Found $($AssignedPolicies.Count) assigned policy/policies" + } else { + $Status = 'Failed' + $Result = "Defender Antivirus policies for macOS exist but are not assigned. Found $($AVPolicies.Count) unassigned policy/policies" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24784' -TestType 'Devices' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Defender Antivirus policies protect macOS devices from malware' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24784' -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Defender Antivirus policies protect macOS devices from malware' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24794.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24794.md new file mode 100644 index 000000000000..36309a2e234e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24794.md @@ -0,0 +1,10 @@ +If Terms and Conditions policies aren't configured and assigned in Intune, users can access corporate resources without agreeing to required legal, security, or usage terms. This omission exposes the organization to compliance risks, legal liabilities, and potential misuse of resources. + +Enforcing Terms and Conditions ensures users acknowledge and accept company policies before accessing sensitive data or systems, supporting regulatory compliance and responsible resource use. + +**Remediation action** + +Create and assign Terms and Conditions policies in Intune to require user acceptance before granting access to corporate resources: +- [Create terms and conditions policy](https://learn.microsoft.com/intune/intune-service/enrollment/terms-and-conditions-create?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24802.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24802.md new file mode 100644 index 000000000000..33d8505d0aa4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24802.md @@ -0,0 +1,15 @@ +If device cleanup rules aren't configured in Intune, stale or inactive devices can remain visible in the tenant indefinitely. This leads to cluttered device lists, inaccurate reporting, and reduced visibility into the active device landscape. Unused devices might retain access credentials or tokens, increasing the risk of unauthorized access or misinformed policy decisions. + +Device cleanup rules automatically hide inactive devices from admin views and reports, improving tenant hygiene and reducing administrative burden. This supports Zero Trust by maintaining an accurate and trustworthy device inventory while preserving historical data for audit or investigation. + +**Remediation action** + +Configure Intune device cleanup rules to automatically hide inactive devices from the tenant: +- [Create a device cleanup rule](https://learn.microsoft.com/intune/intune-service/fundamentals/device-cleanup-rules?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#how-to-create-a-device-cleanup-rule) + +For more information, see: +- [Using Intune device cleanup rules](https://techcommunity.microsoft.com/blog/devicemanagementmicrosoft/using-intune-device-cleanup-rules-updated-version/3760854) *on the Microsoft Tech Community blog* + + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24823.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24823.md new file mode 100644 index 000000000000..846bef7a09b7 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24823.md @@ -0,0 +1,12 @@ +If the Intune Company Portal branding isn't configured to represent your organization’s details, users can encounter a generic interface and lack direct support information. This reduces user trust, increases support overhead, and can lead to confusion or delays in resolving issues. + +Customizing the Company Portal with your organization’s branding and support contact details improves user trust, streamlines support, and reinforces the legitimacy of device management communications. + + +**Remediation action** + +Configure the Intune Company Portal with your organization’s branding and support contact information to enhance user experience and reduce support overhead: +- [Configure the Intune Company Portal](https://learn.microsoft.com/intune/intune-service/apps/company-portal-app?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24824.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24824.md new file mode 100644 index 000000000000..355aaf0621c4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24824.md @@ -0,0 +1,15 @@ +If Microsoft Entra Conditional Access policies don't enforce device compliance, users can connect to corporate resources from devices that don't meet security standards. This exposes sensitive data to risks like malware, unauthorized access, and regulatory noncompliance. Without controls like encryption enforcement, device health checks, and access restrictions, threat actors can exploit noncompliant devices to bypass security measures and maintain persistence. + + +Requiring device compliance in Conditional Access policies ensures only trusted and secure devices can access corporate resources. This supports Zero Trust by enforcing access decisions based on device health and compliance posture. + +**Remediation action** + +Configure Conditional Access policies in Microsoft Entra to require device compliance before granting access to corporate resources: +- [Create a device compliance-based Conditional Access policy](https://learn.microsoft.com/intune/intune-service/protect/create-conditional-access-intune?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +For more information, see: +- [What is Conditional Access?](https://learn.microsoft.com/entra/identity/conditional-access/overview?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Integrate device compliance results with Conditional Access](https://learn.microsoft.com/intune/intune-service/protect/device-compliance-get-started?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#integrate-with-conditional-access) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24827.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24827.md new file mode 100644 index 000000000000..a13c08cc8982 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24827.md @@ -0,0 +1,15 @@ +If Microsoft Entra Conditional Access policies aren't combined with app protection controls, users can connect to corporate resources through unmanaged or unsecured applications. This exposes sensitive data to risks such as data leakage, unauthorized access, and regulatory noncompliance. Without safeguards like app-level data protection, access restrictions, and data loss prevention, threat actors can exploit unprotected apps to bypass security controls and compromise organizational data. + +Enforcing Intune app protection policies within Conditional Access ensures only trusted apps can access corporate data. This supports Zero Trust by enforcing access decisions based on app trust, data containment, and usage restrictions. + +**Remediation action** + +Configure app-based Conditional Access policies in Microsoft Entra and Intune to require app protection for access to corporate resources: +- [Set up app-based Conditional Access policies with Intune](https://learn.microsoft.com/intune/intune-service/protect/app-based-conditional-access-intune-create?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +For more information, see: +- [What is Conditional Access?](https://learn.microsoft.com/entra/identity/conditional-access/overview?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Learn about app-based Conditional Access policies with Intune](https://learn.microsoft.com/intune/intune-service/protect/app-based-conditional-access-intune?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24839.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24839.md new file mode 100644 index 000000000000..be254bba4f88 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24839.md @@ -0,0 +1,15 @@ +If Wi-Fi profiles aren't properly configured and assigned, users can connect insecurely or fail to connect to trusted networks, exposing corporate data to interception or unauthorized access. Without centralized management, devices rely on manual configuration, increasing the risk of misconfiguration, weak authentication, and connection to rogue networks. + +Centrally managing Wi-Fi profiles for iOS devices in Intune ensures secure and consistent connectivity to enterprise networks. This enforces authentication and encryption standards, simplifies onboarding, and supports Zero Trust by reducing exposure to untrusted networks. + +**Remediation action** + +Use Intune to configure and assign secure Wi-Fi profiles for iOS/iPadOS devices to enforce authentication and encryption standards: + +- [Deploy Wi-Fi profiles to devices in Microsoft Intune](https://learn.microsoft.com/intune/intune-service/configuration/wi-fi-settings-configure?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-the-profile) + +For more information, see: +- [Review the available Wi-Fi settings for iOS and iPadOS devices in Microsoft Intune](https://learn.microsoft.com/intune/intune-service/configuration/wi-fi-settings-ios?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24839.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24839.ps1 new file mode 100644 index 000000000000..0ea86eb3dcef --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24839.ps1 @@ -0,0 +1,52 @@ +function Invoke-CippTestZTNA24839 { + <# + .SYNOPSIS + Secure Wi-Fi profiles protect iOS devices from unauthorized network access + #> + param($Tenant) + #Tested - Device + + $TestId = 'ZTNA24839' + + try { + $DeviceConfigs = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceConfigurations' + + if (-not $DeviceConfigs) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Secure Wi-Fi profiles protect iOS devices from unauthorized network access' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Data' + return + } + + $iOSWifiConfProfiles = @($DeviceConfigs | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.iosWiFiConfiguration' }) + $CompliantIosWifiConfProfiles = @($iOSWifiConfProfiles | Where-Object { $_.wiFiSecurityType -in @('wpa2Enterprise', 'wpaEnterprise') }) + $AssignedCompliantProfiles = @($CompliantIosWifiConfProfiles | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedCompliantProfiles.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ At least one Enterprise Wi-Fi profile for iOS exists and is assigned.`n`n" + } else { + $ResultMarkdown = "❌ No Enterprise Wi-Fi profile for iOS exists or none are assigned.`n`n" + } + + if ($iOSWifiConfProfiles.Count -gt 0) { + $ResultMarkdown += "## iOS WiFi Configuration Profiles`n`n" + $ResultMarkdown += "| Policy Name | Wi-Fi Security Type | Assigned |`n" + $ResultMarkdown += "| :---------- | :------------------ | :------- |`n" + + foreach ($policy in $iOSWifiConfProfiles) { + $securityType = if ($policy.wiFiSecurityType) { $policy.wiFiSecurityType } else { 'Unknown' } + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $securityType | $assigned |`n" + } + } else { + $ResultMarkdown += "No iOS WiFi configuration profiles found.`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Secure Wi-Fi profiles protect iOS devices from unauthorized network access' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Data' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Secure Wi-Fi profiles protect iOS devices from unauthorized network access' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Data' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24840.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24840.md new file mode 100644 index 000000000000..fbfac84b107a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24840.md @@ -0,0 +1,18 @@ +If Wi-Fi profiles aren't properly configured and assigned, Android devices can fail to connect to secure networks or connect insecurely, exposing corporate data to interception or unauthorized access. Without centralized management, devices rely on manual configuration, increasing the risk of misconfiguration, weak authentication, and connection to rogue networks. + +Centrally managing Wi-Fi profiles for Android devices in Intune ensures secure and consistent connectivity to enterprise networks. This enforces authentication and encryption standards, simplifies onboarding, and supports Zero Trust by reducing exposure to untrusted networks. + + + +Use Intune to configure secure Wi-Fi profiles that enforce authentication and encryption standards. + +**Remediation action** + +Use Intune to configure and assign secure Wi-Fi profiles for Android devices to enforce authentication and encryption standards: +- [Deploy Wi-Fi profiles to devices in Microsoft Intune](https://learn.microsoft.com/intune/intune-service/configuration/wi-fi-settings-configure?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-the-profile) + +For more information, see: +- [Review the available Wi-Fi settings for Android devices in Microsoft Intune](https://learn.microsoft.com/intune/intune-service/configuration/wi-fi-settings-android-enterprise?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24840.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24840.ps1 new file mode 100644 index 000000000000..1468e4345741 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24840.ps1 @@ -0,0 +1,53 @@ +function Invoke-CippTestZTNA24840 { + <# + .SYNOPSIS + Secure Wi-Fi profiles protect Android devices from unauthorized network access + #> + param($Tenant) + + $TestId = 'ZTNA24840' + + #Tested - Device + + try { + $DeviceConfigs = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceConfigurations' + + if (-not $DeviceConfigs) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Secure Wi-Fi profiles protect Android devices from unauthorized network access' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Data' + return + } + + $AndroidWifiConfProfiles = @($DeviceConfigs | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.androidDeviceOwnerEnterpriseWiFiConfiguration' }) + $CompliantAndroidWifiConfProfiles = @($AndroidWifiConfProfiles | Where-Object { $_.wiFiSecurityType -eq 'wpaEnterprise' }) + $AssignedCompliantProfiles = @($CompliantAndroidWifiConfProfiles | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedCompliantProfiles.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ At least one Enterprise Wi-Fi profile for android exists and is assigned.`n`n" + } else { + $ResultMarkdown = "❌ No Enterprise Wi-Fi profile for android exists or none are assigned.`n`n" + } + + if ($CompliantAndroidWifiConfProfiles.Count -gt 0) { + $ResultMarkdown += "## Android Wi-Fi Configuration Profiles`n`n" + $ResultMarkdown += "| Policy Name | Wi-Fi Security Type | Assigned |`n" + $ResultMarkdown += "| :---------- | :------------------ | :------- |`n" + + foreach ($policy in $CompliantAndroidWifiConfProfiles) { + $securityType = if ($policy.wiFiSecurityType) { $policy.wiFiSecurityType } else { 'Unknown' } + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $securityType | $assigned |`n" + } + } else { + $ResultMarkdown += "No compliant Android Enterprise WiFi configuration profiles found.`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Secure Wi-Fi profiles protect Android devices from unauthorized network access' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Data' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Secure Wi-Fi profiles protect Android devices from unauthorized network access' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Data' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24870.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24870.md new file mode 100644 index 000000000000..d0b2121a7e67 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24870.md @@ -0,0 +1,15 @@ +If Wi-Fi profiles aren't properly configured and assigned, macOS devices can fail to connect to secure networks or connect insecurely, exposing corporate data to interception or unauthorized access. Without centralized management, devices rely on manual configuration, increasing the risk of misconfiguration, weak authentication, and connection to rogue networks. These gaps can lead to data interception, unauthorized network access, and compliance violations. + +Centrally managing Wi-Fi profiles for macOS devices in Intune ensures secure and consistent connectivity to enterprise networks. This enforces authentication and encryption standards, simplifies onboarding, and supports Zero Trust by reducing exposure to untrusted networks. + +**Remediation action** + +Use Intune to configure and assign secure Wi-Fi profiles for macOS devices to enforce authentication and encryption standards: + +- [Configure Wi-Fi settings for macOS devices in Intune](https://learn.microsoft.com/intune/intune-service/configuration/wi-fi-settings-configure?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-the-profile) + +For more information, see: + +- [Review the available Wi-Fi settings for macOS devices in Microsoft Intune](https://learn.microsoft.com/intune/intune-service/configuration/wi-fi-settings-macos?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24870.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24870.ps1 new file mode 100644 index 000000000000..5e2183226768 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24870.ps1 @@ -0,0 +1,52 @@ +function Invoke-CippTestZTNA24870 { + <# + .SYNOPSIS + Secure Wi-Fi profiles protect macOS devices from unauthorized network access + #> + param($Tenant) + + $TestId = 'ZTNA24870' + #Tested - Device + + try { + $DeviceConfigs = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceConfigurations' + + if (-not $DeviceConfigs) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Secure Wi-Fi profiles protect macOS devices from unauthorized network access' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Data' + return + } + + $MacOSWifiConfProfiles = @($DeviceConfigs | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.macOSWiFiConfiguration' }) + $CompliantMacOSWifiConfProfiles = @($MacOSWifiConfProfiles | Where-Object { $_.wiFiSecurityType -eq 'wpaEnterprise' }) + $AssignedCompliantProfiles = @($CompliantMacOSWifiConfProfiles | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedCompliantProfiles.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ At least one Enterprise Wi-Fi profile for macOS exists and is assigned.`n`n" + } else { + $ResultMarkdown = "❌ No Enterprise Wi-Fi profile for macOS exists or none are assigned.`n`n" + } + + if ($CompliantMacOSWifiConfProfiles.Count -gt 0) { + $ResultMarkdown += "## macOS WiFi Configuration Profiles`n`n" + $ResultMarkdown += "| Policy Name | Wi-Fi Security Type | Assigned |`n" + $ResultMarkdown += "| :---------- | :------------------ | :------- |`n" + + foreach ($policy in $CompliantMacOSWifiConfProfiles) { + $securityType = if ($policy.wiFiSecurityType) { $policy.wiFiSecurityType } else { 'Unknown' } + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $securityType | $assigned |`n" + } + } else { + $ResultMarkdown += "No compliant macOS Enterprise WiFi configuration profiles found.`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Secure Wi-Fi profiles protect macOS devices from unauthorized network access' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Data' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Secure Wi-Fi profiles protect macOS devices from unauthorized network access' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Data' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24871.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24871.md new file mode 100644 index 000000000000..a326a1b7c66d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24871.md @@ -0,0 +1,12 @@ +If automatic enrollment into Microsoft Defender for Endpoint isn't configured for Android devices in Intune, managed endpoints might remain unprotected against mobile threats. Without Defender onboarding, devices lack advanced threat detection and response capabilities, increasing the risk of malware, phishing, and other mobile-based attacks. Unprotected devices can bypass security policies, access corporate resources, and expose sensitive data to compromise. This gap in mobile threat defense weakens the organization's Zero Trust posture and reduces visibility into endpoint health. + +Enabling automatic Defender enrollment ensures Android devices are protected by advanced threat detection and response capabilities. This supports Zero Trust by enforcing mobile threat protection, improving visibility, and reducing exposure to unmanaged or compromised endpoints. + +**Remediation action** + +Use Intune to configure automatic enrollment into Microsoft Defender for Endpoint for Android devices to enforce mobile threat protection: + +- [Integrate Microsoft Defender for Endpoint with Intune and Onboard Devices](https://learn.microsoft.com/intune/intune-service/protect/advanced-threat-protection-configure?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25370.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25370.md new file mode 100644 index 000000000000..7292aeb5fa36 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25370.md @@ -0,0 +1,8 @@ +When organizations deploy Global Secure Access as their cloud-based network proxy, user traffic is routed through Microsoft's Secure Service Edge infrastructure. Without source IP restoration enabled, all authentication requests and resource access appear to originate from the proxy's IP address rather than the user's actual public egress IP. This creates a significant security gap: threat actors who compromise user credentials can authenticate from any location, and the organization's Conditional Access policies that rely on IP-based location controls become ineffective since all traffic appears to come from the same proxy addresses. Microsoft Entra ID Protection risk detections lose visibility into the original user IP address, degrading the accuracy of risk scoring algorithms that depend on geographic and network anomaly detection. Sign-in logs and audit trails no longer reflect the true source of authentication attempts, hampering incident investigation and forensic analysis. A threat actor exploiting this gap could perform credential stuffing or phishing attacks and subsequently authenticate to tenant resources while bypassing named location policies, trusted IP controls, and IP-based continuous access evaluation enforcement. The attacker's activity would blend with legitimate proxy traffic, delaying detection and extending dwell time. Enabling Global Secure Access signalling in Conditional Access restores the original user source IP to Microsoft Entra ID, Microsoft Graph, sign-in logs, and audit logs, preserving the integrity of IP-based security controls and risk assessments. + +**Remediation action** +- [Enable Global Secure Access signaling in Conditional Access](https://learn.microsoft.com/en-us/entra/global-secure-access/how-to-source-ip-restoration) + +- [Use Microsoft Graph API to enable signaling](https://learn.microsoft.com/en-us/graph/api/networkaccess-conditionalaccesssettings-update ) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25381.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25381.md new file mode 100644 index 000000000000..4926d8187932 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25381.md @@ -0,0 +1,20 @@ +Traffic forwarding profiles are the foundational mechanism through which Global Secure Access captures and routes network traffic to Microsoft's Security Service Edge (SSE) infrastructure. Without enabling the appropriate traffic forwarding profiles, network traffic bypasses the Global Secure Access service entirely, leaving users without zero trust network access protections. + +There are three distinct profiles: the **Microsoft traffic profile** captures Microsoft Entra ID, Microsoft Graph, SharePoint Online, Exchange Online, and other Microsoft 365 workloads; the **Private Access profile** captures traffic destined for internal corporate resources configured through Quick Access or per-app access; and the **Internet Access profile** captures traffic to the public internet including non-Microsoft SaaS applications. + +When these profiles are disabled, corresponding network traffic is not tunneled through Global Secure Access, meaning security policies, web content filtering, threat protection, and Universal Continuous Access Evaluation cannot be enforced. A threat actor who compromises user credentials can access corporate resources without the security controls that Global Secure Access would otherwise apply. + +For **Private Access**, disabled profiles mean remote users cannot securely connect to internal applications, file servers, or Remote Desktop sessions through the zero-trust model—potentially forcing fallback to legacy VPN solutions with broader network access. + +For **Internet Access**, disabled profiles mean users accessing external SaaS applications, collaboration tools, or web resources are not protected by security policies, and data exfiltration to unauthorized internet destinations cannot be prevented. + +**Remediation action** + +Enable all traffic forwarding profiles to ensure comprehensive protection: + +- [Enable the Microsoft 365 traffic forwarding profile](https://learn.microsoft.com/en-us/entra/global-secure-access/how-to-manage-microsoft-profile) +- [Enable the Private Access traffic forwarding profile](https://learn.microsoft.com/en-us/entra/global-secure-access/how-to-manage-private-access-profile) +- [Enable the Internet Access traffic forwarding profile](https://learn.microsoft.com/en-us/entra/global-secure-access/how-to-manage-internet-access-profile) +- [Understand traffic forwarding profile concepts](https://learn.microsoft.com/en-us/entra/global-secure-access/concept-traffic-forwarding) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25391.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25391.md new file mode 100644 index 000000000000..91d0f532b3ed --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25391.md @@ -0,0 +1,12 @@ +When Entra Private Network Connectors are inactive or unhealthy, threat actors operating under assume breach conditions can exploit the lack of secure remote access control. Connectors create outbound connections to the Private Access services to reach internal resources, and when these connectors fail, organizations may resort to alternatives such as exposing applications directly or using less secure access methods. This creates initial access opportunities where threat actors can target externally exposed services or leverage compromised VPN credentials. Following successful authentication through weakened access controls, threat actors can establish persistence by maintaining access to internal resources that would otherwise require connector-based authentication and authorization checks. + +The absence of functional connectors eliminates the token-based authentication and authorization performed for all Private Access scenarios, enabling lateral movement as threat actors traverse the network without the granular access controls enforced by connector groups. The service routes new requests to an available connector, and if a connector is temporarily unavailable, it does not receive traffic meaning connector failures directly disrupt zero trust network access controls. Organizations may then implement workarounds that bypass intended security boundaries, facilitating privilege escalation as threat actors exploit the degraded security posture to access resources beyond their authorization scope. + +**Remediation action** + +- [Troubleshoot connector installation and connectivity issues](https://learn.microsoft.com/en-us/entra/global-secure-access/troubleshoot-connectors) +- [Configure connectors for high availability](https://learn.microsoft.com/en-us/entra/global-secure-access/how-to-configure-connectors) +- [Monitor connector health and performance](https://learn.microsoft.com/en-us/entra/global-secure-access/concept-connectors) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25392.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25392.md new file mode 100644 index 000000000000..2093de19c302 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25392.md @@ -0,0 +1,10 @@ +The Private Network Connector is a key component of Entra Private Access and Entra Application Proxy. To maintain security, stability, and performance, it's essential that all connector machines run the latest software version. This check reviews every private network connector in your environment, compares the installed version with the most recent release, and flags any connectors that are not up to date. If any connector is outdated, the check will fail and provide a detailed list of current versions. + +**Remediation action** + +Please check this article which shows the release notes and latest version of the private network connector. +- [Microsoft Entra private network connector version release notes - Global Secure Access](https://learn.microsoft.com/entra/global-secure-access/reference-version-history) + +**Note**: Please be aware that not every connector update is an auto-update and some need to be applied manually. Auto-update will only work if the connector updater process on your machine is running. + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25399.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25399.md new file mode 100644 index 000000000000..e62759175a00 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25399.md @@ -0,0 +1,8 @@ +Without Private DNS configuration, remote users cannot resolve internal domain names through Entra Private Access, forcing them to rely on public DNS servers or manually configure DNS settings. Threat actors can exploit this gap through DNS spoofing attacks, where corrupt DNS data is introduced into resolver caches, causing name servers to return incorrect IP addresses. When users attempt to access internal resources by FQDN without proper DNS resolution through the secure tunnel, threat actors can redirect users from legitimate websites to sites of the attacker's choosing. This enables credential harvesting as users authenticate to what appears to be the correct internal resource but is actually controlled by the threat actor. Through this redirection, threat actors can steal sensitive data from users who believe they are accessing legitimate internal systems. The compromised credentials can then be used to establish persistence within the environment by creating additional access paths or escalating privileges. Without centralized DNS resolution through Private Access, organizations lose visibility into DNS queries and cannot apply consistent security policies, making it harder to detect when threat actors are performing reconnaissance or establishing command and control channels through DNS tunneling. + +**Remediation action** + +- [Enable Private DNS and configure DNS suffix segments for internal domains](https://learn.microsoft.com/en-us/entra/global-secure-access/concept-private-name-resolution) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25405.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25405.md new file mode 100644 index 000000000000..40ef6074e0d4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25405.md @@ -0,0 +1,11 @@ +Intelligent Local Access (ILA) is a key capability that merges ZTNA policy enforcement with the efficiency of routing Private Access traffic locally—instead of sending all data through the cloud backend, as is typical with standard Private Access. Using ILA is crucial; otherwise, users may turn off Private Access in the GSA client to boost performance, which would bypass all ZTNA policy controls such as user assignment or Entra ID conditional access. + +This verification ensures that private networks are set up within the Entra ID tenant. If private networks exist, the check is successful, indicating that Intelligent Local Access is being used. + +**Remediation action** + +You should consider configuring one or multiple private networks for your user sites and assigning the appropriate applications to it. This will ensure that private access traffic is routed locally when the user is located at these sites to improve performance while maintaining ZTNA policy enforcement. + +- [Enable Intelligent Local Network - Global Secure Access](https://learn.microsoft.com/en-us/entra/global-secure-access/enable-intelligent-local-access?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25406.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25406.md new file mode 100644 index 000000000000..6c579aa18ae3 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25406.md @@ -0,0 +1,8 @@ +When the Internet Access forwarding profile remains disabled, users access internet resources without routing traffic through the Secure Web Gateway, bypassing security controls that block threats, malicious content, and unsafe destinations. Threat actors exploit this gap by delivering malware, establishing command and control connections, or exfiltrating data through unmonitored internet channels. Without sufficient controls to prevent unauthorized access, threat actors leverage compromised credentials or social engineering to establish initial access, then use unfiltered internet connectivity to download tools, establish persistence mechanisms, or communicate with external infrastructure. Organizations lose visibility into internet traffic patterns through Traffic Logs, preventing detection of data exfiltration attempts, connections to known malicious domains, or unauthorized access to external resources. The absence of identity-based access controls for internet traffic enables threat actors operating from compromised accounts to blend with normal user behavior, accessing external resources to stage attacks, download exploitation frameworks, or communicate with adversary infrastructure without triggering security alerts based on user context, device compliance, or location. + +**Remediation action** + +- [Enable Internet Access forwarding profile to route traffic through the Secure Web Gateway](https://learn.microsoft.com/en-us/entra/global-secure-access/how-to-manage-internet-access-profile) +- [Assign users and groups to the Internet Access profile to scope traffic forwarding to specific users](https://learn.microsoft.com/en-us/entra/global-secure-access/concept-traffic-forwarding) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21770.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21770.md new file mode 100644 index 000000000000..63936bdc8ea5 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21770.md @@ -0,0 +1,10 @@ +Attackers might exploit valid but inactive applications that still have elevated privileges. These applications can be used to gain initial access without raising alarm because they’re legitimate applications. From there, attackers can use the application privileges to plan or execute other attacks. Attackers might also maintain access by manipulating the inactive application, such as by adding credentials. This persistence ensures that even if their primary access method is detected, they can regain access later. + +**Remediation action** + +- [Disable privileged service principals](https://learn.microsoft.com/graph/api/serviceprincipal-update?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- Investigate if the application has legitimate use cases +- [If service principal doesn't have legitimate use cases, delete it](https://learn.microsoft.com/graph/api/serviceprincipal-delete?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21771.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21771.md new file mode 100644 index 000000000000..198c587988cc --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21771.md @@ -0,0 +1,10 @@ +Attackers might exploit valid but inactive applications that still have elevated privileges. These applications can be used to gain initial access without raising alarm because they're legitimate applications. From there, attackers can use the application privileges to plan or execute other attacks. Attackers might also maintain access by manipulating the inactive application, such as by adding credentials. This persistence ensures that even if their primary access method is detected, they can regain access later. + +**Remediation action** + +- [Disable inactive privileged service principals](https://learn.microsoft.com/graph/api/serviceprincipal-update?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- Investigate if the application has legitimate use cases. If so, [analyze if a OAuth2 permission is a better fit](https://learn.microsoft.com/entra/identity-platform/v2-app-types?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [If service principal doesn't have legitimate use cases, delete it](https://learn.microsoft.com/graph/api/serviceprincipal-delete?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21772.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21772.md new file mode 100644 index 000000000000..ef04040bf051 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21772.md @@ -0,0 +1,16 @@ +Applications that use client secrets might store them in configuration files, hardcode them in scripts, or risk their exposure in other ways. The complexities of secret management make client secrets susceptible to leaks and attractive to attackers. Client secrets, when exposed, provide attackers with the ability to blend their activities with legitimate operations, making it easier to bypass security controls. If an attacker compromises an application's client secret, they can escalate their privileges within the system, leading to broader access and control, depending on the permissions of the application. + +Applications and service principals that have permissions for Microsoft Graph APIs or other APIs have a higher risk because an attacker can potentially exploit these additional permissions. + +**Remediation action** + +- [Move applications away from shared secrets to managed identities and adopt more secure practices](https://learn.microsoft.com/entra/identity/enterprise-apps/migrate-applications-from-secrets?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). + - Use managed identities for Azure resources + - Deploy Conditional Access policies for workload identities + - Implement secret scanning + - Deploy application authentication policies to enforce secure authentication practices + - Create a least-privileged custom role to rotate application credentials + - Ensure you have a process to triage and monitor applications + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21772.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21772.ps1 new file mode 100644 index 000000000000..8f874c1799bf --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21772.ps1 @@ -0,0 +1,58 @@ +function Invoke-CippTestZTNA21772 { + <# + .SYNOPSIS + Applications do not have client secrets configured + #> + param($Tenant) + #tested + try { + $Apps = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Apps' + $ServicePrincipals = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ServicePrincipals' + + if (-not $Apps -and -not $ServicePrincipals) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21772' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Applications do not have client secrets configured' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + return + } + + $AppsWithSecrets = @() + $SPsWithSecrets = @() + + if ($Apps) { + $AppsWithSecrets = $Apps | Where-Object { + $_.passwordCredentials -and + $_.passwordCredentials.Count -gt 0 -and + $_.passwordCredentials -ne '[]' + } + } + + if ($ServicePrincipals) { + $SPsWithSecrets = $ServicePrincipals | Where-Object { + $_.passwordCredentials -and + $_.passwordCredentials.Count -gt 0 -and + $_.passwordCredentials -ne '[]' + } + } + + $TotalWithSecrets = $AppsWithSecrets.Count + $SPsWithSecrets.Count + + if ($TotalWithSecrets -eq 0) { + $Status = 'Passed' + $Result = 'Applications in your tenant do not use client secrets' + } else { + $Status = 'Failed' + $Result = @" +Found $($AppsWithSecrets.Count) applications and $($SPsWithSecrets.Count) service principals with client secrets configured +## Apps with client secrets: +$(($AppsWithSecrets | ForEach-Object { "- $($_.displayName) (AppId: $($_.appId))" }) -join "`n") +## Service principals with client secrets: +$(($SPsWithSecrets | ForEach-Object { "- $($_.displayName) (AppId: $($_.appId))" }) -join "`n") +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21772' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Applications do not have client secrets configured' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21772' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Applications do not have client secrets configured' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21773.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21773.md new file mode 100644 index 000000000000..7e776cd485e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21773.md @@ -0,0 +1,12 @@ +Certificates, if not securely stored, can be extracted and exploited by attackers, leading to unauthorized access. Long-lived certificates are more likely to be exposed over time. Credentials, when exposed, provide attackers with the ability to blend their activities with legitimate operations, making it easier to bypass security controls. If an attacker compromises an application's certificate, they can escalate their privileges within the system, leading to broader access and control, depending on the privileges of the application. + +**Remediation action** + +- [Define certificate based application configuration](https://devblogs.microsoft.com/identity/app-management-policy/) +- [Define trusted certificate authorities for apps and service principals in the tenant](https://learn.microsoft.com/graph/api/resources/certificatebasedapplicationconfiguration?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Define application management policies](https://learn.microsoft.com/graph/api/resources/applicationauthenticationmethodpolicy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Enforce secret and certificate standards](https://learn.microsoft.com/en-us/entra/identity/enterprise-apps/tutorial-enforce-secret-standards?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Create a least-privileged custom role to rotate application credentials](https://learn.microsoft.com/entra/identity/role-based-access-control/custom-create?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21773.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21773.ps1 new file mode 100644 index 000000000000..6ce664830428 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21773.ps1 @@ -0,0 +1,88 @@ +function Invoke-CippTestZTNA21773 { + <# + .SYNOPSIS + Applications do not have certificates with expiration longer than 180 days + #> + param($Tenant) + #tested + try { + $Apps = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Apps' + $ServicePrincipals = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ServicePrincipals' + + if (-not $Apps -and -not $ServicePrincipals) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21773' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Applications do not have certificates with expiration longer than 180 days' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + return + } + + $MaxDate = (Get-Date).AddDays(180) + $AppsWithLongCerts = @() + $SPsWithLongCerts = @() + + if ($Apps) { + $AppsWithLongCerts = $Apps | Where-Object { + if ($_.keyCredentials -and $_.keyCredentials.Count -gt 0 -and $_.keyCredentials -ne '[]') { + $HasLongCert = $false + foreach ($Cred in $_.keyCredentials) { + if ($Cred.endDateTime) { + $EndDate = [datetime]$Cred.endDateTime + if ($EndDate -gt $MaxDate) { + $HasLongCert = $true + break + } + } + } + $HasLongCert + } else { + $false + } + } + } + + if ($ServicePrincipals) { + $SPsWithLongCerts = $ServicePrincipals | Where-Object { + if ($_.keyCredentials -and $_.keyCredentials.Count -gt 0 -and $_.keyCredentials -ne '[]') { + $HasLongCert = $false + foreach ($Cred in $_.keyCredentials) { + if ($Cred.endDateTime) { + $EndDate = [datetime]$Cred.endDateTime + if ($EndDate -gt $MaxDate) { + $HasLongCert = $true + break + } + } + } + $HasLongCert + } else { + $false + } + } + } + + $TotalWithLongCerts = $AppsWithLongCerts.Count + $SPsWithLongCerts.Count + + if ($TotalWithLongCerts -eq 0) { + $Status = 'Passed' + $Result = 'Applications in your tenant do not have certificates valid for more than 180 days' + } else { + $Status = 'Failed' + $Result = "Found $($AppsWithLongCerts.Count) applications and $($SPsWithLongCerts.Count) service principals with certificates longer than 180 days`n`n" + + if ($AppsWithLongCerts.Count -gt 0) { + $Result += "## Apps with long-lived certificates:`n`n" + $Result += ($AppsWithLongCerts | ForEach-Object { "- $($_.displayName) (AppId: $($_.appId))" }) -join "`n" + $Result += "`n`n" + } + + if ($SPsWithLongCerts.Count -gt 0) { + $Result += "## Service principals with long-lived certificates:`n`n" + $Result += ($SPsWithLongCerts | ForEach-Object { "- $($_.displayName) (AppId: $($_.appId))" }) -join "`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21773' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Applications do not have certificates with expiration longer than 180 days' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21773' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Applications do not have certificates with expiration longer than 180 days' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21774.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21774.md new file mode 100644 index 000000000000..71fed1768f8a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21774.md @@ -0,0 +1,13 @@ +Microsoft services applications that operate in your tenant are identified as service principals with the owner organization ID "f8cdef31-a31e-4b4a-93e4-5f571e91255a." When these service principals have credentials configured in your tenant, they might create potential attack vectors that threat actors can exploit. If an administrator added the credentials and they're no longer needed, they can become a target for attackers. Although less likely when proper preventive and detective controls are in place on privileged activities, threat actors can also maliciously add credentials. In either case, threat actors can use these credentials to authenticate as the service principal, gaining the same permissions and access rights as the Microsoft service application. This initial access can lead to privilege escalation if the application has high-level permissions, allowing lateral movement across the tenant. Attackers can then proceed to data exfiltration or persistence establishment through creating other backdoor credentials. + +When credentials (like client secrets or certificates) are configured for these service principals in your tenant, it means someone - either an administrator or a malicious actor - enabled them to authenticate independently within your environment. These credentials should be investigated to determine their legitimacy and necessity. If they're no longer needed, they should be removed to reduce the risk. + +If this check doesn't pass, the recommendation is to "investigate" because you need to identify and review any applications with unused credentials configured. + +**Remediation action** + +- Confirm if the credentials added are still valid use cases. If not, remove credentials from Microsoft service applications to reduce security risk. + - In the Microsoft Entra admin center, browse to **Entra ID** > **App registrations** and select the affected application. + - Go to the **Certificates & secrets** section and remove any credentials that are no longer needed. +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21774.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21774.ps1 new file mode 100644 index 000000000000..659e9c4656b7 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21774.ps1 @@ -0,0 +1,61 @@ +function Invoke-CippTestZTNA21774 { + <# + .SYNOPSIS + Microsoft services applications do not have credentials configured + #> + param($Tenant) + + try { + $ServicePrincipals = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ServicePrincipals' + #tested + if (-not $ServicePrincipals) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21774' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Microsoft services applications do not have credentials configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application Management' + return + } + + $MicrosoftTenantId = 'f8cdef31-a31e-4b4a-93e4-5f571e91255a' + + $MicrosoftSPs = $ServicePrincipals | Where-Object { + $_.appOwnerOrganizationId -eq $MicrosoftTenantId + } + + $SPsWithPasswordCreds = @() + $SPsWithKeyCreds = @() + + if ($MicrosoftSPs) { + $SPsWithPasswordCreds = $MicrosoftSPs | Where-Object { + $_.passwordCredentials -and + $_.passwordCredentials.Count -gt 0 -and + $_.passwordCredentials -ne '[]' + } + + $SPsWithKeyCreds = $MicrosoftSPs | Where-Object { + $_.keyCredentials -and + $_.keyCredentials.Count -gt 0 -and + $_.keyCredentials -ne '[]' + } + } + + $TotalWithCreds = $SPsWithPasswordCreds.Count + $SPsWithKeyCreds.Count + + if ($TotalWithCreds -eq 0) { + $Status = 'Passed' + $Result = 'No Microsoft services applications have credentials configured in the tenant' + } else { + $Status = 'Investigate' + $Result = @" +Found Microsoft services applications with credentials configured: $($SPsWithPasswordCreds.Count) with password credentials, $($SPsWithKeyCreds.Count) with key credentials +## Service principals with password credentials: +$(($SPsWithPasswordCreds | ForEach-Object { "- $($_.displayName) (AppId: $($_.appId))" }) -join "`n") +## Service principals with key credentials: +$(($SPsWithKeyCreds | ForEach-Object { "- $($_.displayName) (AppId: $($_.appId))" }) -join "`n") +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21774' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Microsoft services applications do not have credentials configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21774' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Microsoft services applications do not have credentials configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21775.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21775.md new file mode 100644 index 000000000000..b2245df4e438 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21775.md @@ -0,0 +1,10 @@ +Without proper application management policies, threat actors can exploit weak or misconfigured application credentials to get unauthorized access to organizational resources. Applications using long-lived password secrets or certificates create extended attack windows where compromised credentials stay valid for extended periods. If an application uses client secrets that are hardcoded in configuration files or have weak password requirements, threat actors can extract these credentials through different means, including source code repositories, configuration dumps, or memory analysis. If threat actors get these credentials, they can perform lateral movement within the environment, escalate privileges if the application has elevated permissions, establish persistence by creating more backdoor credentials, modify application configuration, or exfiltrate data. The lack of credential lifecycle management lets compromised credentials remain active indefinitely, giving threat actors sustained access to organizational assets and the ability to conduct data exfiltration, system manipulation, or deploy more malicious tools without detection. + +Configuring appropriate app management policies helps organizations stay ahead of these threats. + +**Remediation action** + +- [Learn how to enforce secret and certificate standards using application management policies](https://learn.microsoft.com/entra/identity/enterprise-apps/tutorial-enforce-secret-standards?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21776.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21776.md new file mode 100644 index 000000000000..9dbaf31c5b70 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21776.md @@ -0,0 +1,14 @@ +Without restricted user consent settings, threat actors can exploit permissive application consent configurations to gain unauthorized access to sensitive organizational data. When user consent is unrestricted, attackers can: + +- Use social engineering and illicit consent grant attacks to trick users into approving malicious applications. +- Impersonate legitimate services to request broad permissions, such as access to email, files, calendars, and other critical business data. +- Obtain legitimate OAuth tokens that bypass perimeter security controls, making access appear normal to security monitoring systems. +- Establish persistent access to organizational resources, conduct reconnaissance across Microsoft 365 services, move laterally through connected systems, and potentially escalate privileges. + +Unrestricted user consent also limits an organization's ability to enforce centralized governance over application access, making it difficult to maintain visibility into which non-Microsoft applications have access to sensitive data. This gap creates compliance risks where unauthorized applications might violate data protection regulations or organizational security policies. + +**Remediation action** + +- [Configure restricted user consent settings](https://learn.microsoft.com/en-us/entra/identity/enterprise-apps/configure-user-consent?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) to prevent illicit consent grants by disabling user consent or limiting it to verified publishers with low-risk permissions only. +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21776.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21776.ps1 new file mode 100644 index 000000000000..88752ce98bd3 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21776.ps1 @@ -0,0 +1,33 @@ +function Invoke-CippTestZTNA21776 { + <# + .SYNOPSIS + User consent settings are restricted + #> + param($Tenant) + #tested + try { + $AuthPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + if (-not $AuthPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21776' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'User consent settings are restricted' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Application Management' + return + } + + $Matched = $AuthPolicy | Where-Object { $_.defaultUserRolePermissions.permissionGrantPoliciesAssigned -match '^ManagePermissionGrantsForSelf' } + $NoMatch = $Matched.Count -eq 0 + $LowImpact = $Matched.defaultUserRolePermissions.permissionGrantPoliciesAssigned -contains 'managePermissionGrantsForSelf.microsoft-user-default-low' + + if ($NoMatch -or $LowImpact) { + $Status = 'Passed' + $Result = if ($NoMatch) { 'User consent is disabled' } else { 'User consent restricted to verified publishers and low-impact permissions' } + } else { + $Status = 'Failed' + $Result = 'Users can consent to any application' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21776' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'User consent settings are restricted' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Application Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21776' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'User consent settings are restricted' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Application Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21777.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21777.md new file mode 100644 index 000000000000..7f418136d2ed --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21777.md @@ -0,0 +1,8 @@ +App instance property lock prevents changes to sensitive properties of a multitenant application after the application is provisioned in another tenant. Without a lock, critical properties such as application credentials can be maliciously or unintentionally modified, causing disruptions, increased risk, unauthorized access, or privilege escalations. + +**Remediation action** +Enable the app instance property lock for all multitenant applications and specify the properties to lock. +- [Configure an app instance lock](https://learn.microsoft.com/en-us/entra/identity-platform/howto-configure-app-instance-property-locks?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#configure-an-app-instance-lock) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21778.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21778.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21778.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21779.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21779.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21779.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21780.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21780.md new file mode 100644 index 000000000000..f3911fd1bf14 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21780.md @@ -0,0 +1,8 @@ +Microsoft ended support and security fixes for ADAL on June 30, 2023. Continued ADAL usage bypasses modern security protections available only in MSAL, including Conditional Access enforcement, Continuous Access Evaluation (CAE), and advanced token protection. ADAL applications create security vulnerabilities by using weaker legacy authentication patterns, often calling deprecated Azure AD Graph endpoints, and preventing adoption of hardened authentication flows that could mitigate future security advisories. + +**Remediation action** + +- [Migrate applications to the Microsoft Authentication Library (MSAL)](https://learn.microsoft.com/entra/identity-platform/msal-migration?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21780.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21780.ps1 new file mode 100644 index 000000000000..cb4567b0b95f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21780.ps1 @@ -0,0 +1,38 @@ +function Invoke-CippTestZTNA21780 { + <# + .SYNOPSIS + No usage of ADAL in the tenant + #> + param($Tenant) + #tested + try { + $Recommendations = New-CIPPDbRequest -TenantFilter $Tenant -Type 'DirectoryRecommendations' + + if (-not $Recommendations) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21780' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'No usage of ADAL in the tenant' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application Management' + return + } + + $AdalRecommendations = $Recommendations | Where-Object { + $_.recommendationType -eq 'adalToMsalMigration' + } + + if ($AdalRecommendations.Count -eq 0) { + $Status = 'Passed' + $Result = 'No ADAL applications found in the tenant' + } else { + $Status = 'Failed' + $Result = @" + Found $($AdalRecommendations.Count) ADAL applications in the tenant that need migration to MSAL. + ADAL Applications: + $(($AdalRecommendations | ForEach-Object { "- $($_.applicationDisplayName) (AppId: $($_.applicationId))" }) -join "`n") +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21780' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'No usage of ADAL in the tenant' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21780' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'No usage of ADAL in the tenant' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21781.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21781.md new file mode 100644 index 000000000000..4a9fec301780 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21781.md @@ -0,0 +1,13 @@ +Without phishing-resistant authentication methods, privileged users are more vulnerable to phishing attacks. These types of attacks trick users into revealing their credentials to grant unauthorized access to attackers. If non-phishing-resistant authentication methods are used, attackers might intercept credentials and tokens, through methods like adversary-in-the-middle attacks, undermining the security of the privileged account. + +Once a privileged account or session is compromised due to weak authentication methods, attackers might manipulate the account to maintain long-term access, create other backdoors, or modify user permissions. Attackers can also use the compromised privileged account to escalate their access even further, potentially gaining control over more sensitive systems. + +**Remediation action** + +- [Get started with a phishing-resistant passwordless authentication deployment](https://learn.microsoft.com/entra/identity/authentication/how-to-plan-prerequisites-phishing-resistant-passwordless-authentication?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Ensure that privileged accounts register and use phishing resistant methods](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-strengths?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#authentication-strengths) +- [Deploy a Conditional Access policy to target privileged accounts and require phishing resistant credentials](https://learn.microsoft.com/entra/identity/conditional-access/policy-admin-phish-resistant-mfa?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Monitor authentication method activity](https://learn.microsoft.com/entra/identity/monitoring-health/concept-usage-insights-report?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#authentication-methods-activity) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21782.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21782.md new file mode 100644 index 000000000000..4a9fec301780 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21782.md @@ -0,0 +1,13 @@ +Without phishing-resistant authentication methods, privileged users are more vulnerable to phishing attacks. These types of attacks trick users into revealing their credentials to grant unauthorized access to attackers. If non-phishing-resistant authentication methods are used, attackers might intercept credentials and tokens, through methods like adversary-in-the-middle attacks, undermining the security of the privileged account. + +Once a privileged account or session is compromised due to weak authentication methods, attackers might manipulate the account to maintain long-term access, create other backdoors, or modify user permissions. Attackers can also use the compromised privileged account to escalate their access even further, potentially gaining control over more sensitive systems. + +**Remediation action** + +- [Get started with a phishing-resistant passwordless authentication deployment](https://learn.microsoft.com/entra/identity/authentication/how-to-plan-prerequisites-phishing-resistant-passwordless-authentication?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Ensure that privileged accounts register and use phishing resistant methods](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-strengths?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#authentication-strengths) +- [Deploy a Conditional Access policy to target privileged accounts and require phishing resistant credentials](https://learn.microsoft.com/entra/identity/conditional-access/policy-admin-phish-resistant-mfa?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Monitor authentication method activity](https://learn.microsoft.com/entra/identity/monitoring-health/concept-usage-insights-report?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#authentication-methods-activity) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21782.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21782.ps1 new file mode 100644 index 000000000000..40441197b262 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21782.ps1 @@ -0,0 +1,94 @@ +function Invoke-CippTestZTNA21782 { + <# + .SYNOPSIS + Privileged accounts have phishing-resistant methods registered + #> + param($Tenant) + + try { + $UserRegistrationDetails = New-CIPPDbRequest -TenantFilter $Tenant -Type 'UserRegistrationDetails' + $RoleAssignments = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RoleAssignments' + + if (-not $UserRegistrationDetails -or -not $RoleAssignments) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21782' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Privileged accounts have phishing-resistant methods registered' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged Access' + return + } + + $PhishResistantMethods = @('passKeyDeviceBound', 'passKeyDeviceBoundAuthenticator', 'windowsHelloForBusiness') + + # Join user registration details with role assignments + $results = $UserRegistrationDetails | Where-Object { + $userId = $_.id + $RoleAssignments | Where-Object { $_.principalId -eq $userId } + } | ForEach-Object { + $user = $_ + $userRoles = $RoleAssignments | Where-Object { $_.principalId -eq $user.id } + $hasPhishResistant = $false + + if ($user.methodsRegistered) { + foreach ($method in $PhishResistantMethods) { + if ($user.methodsRegistered -contains $method) { + $hasPhishResistant = $true + break + } + } + } + + [PSCustomObject]@{ + id = $user.id + userDisplayName = $user.userDisplayName + roleDisplayName = ($userRoles.roleDefinitionName -join ', ') + methodsRegistered = $user.methodsRegistered + phishResistantAuthMethod = $hasPhishResistant + } + } + + $totalUserCount = $results.Length + $phishResistantPrivUsers = $results | Where-Object { $_.phishResistantAuthMethod } + $phishablePrivUsers = $results | Where-Object { !$_.phishResistantAuthMethod } + + $phishResistantPrivUserCount = $phishResistantPrivUsers.Length + + $passed = $totalUserCount -eq $phishResistantPrivUserCount + + $testResultMarkdown = if ($passed) { + "Validated that all privileged users have registered phishing resistant authentication methods.`n`n%TestResult%" + } else { + "Found privileged users that have not yet registered phishing resistant authentication methods`n`n%TestResult%" + } + + $mdInfo = "## Privileged users`n`n" + + if ($passed) { + $mdInfo = "All privileged users have registered phishing resistant authentication methods.`n`n" + } else { + $mdInfo = "Found privileged users that have not registered phishing resistant authentication methods.`n`n" + } + + $mdInfo = $mdInfo + "| User | Role Name | Phishing resistant method registered |`n" + $mdInfo = $mdInfo + "| :--- | :--- | :---: |`n" + + $userLinkFormat = 'https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/UserAuthMethods/userId/{0}/hidePreviewBanner~/true' + + $mdLines = @($phishablePrivUsers | Sort-Object userDisplayName | ForEach-Object { + $userLink = $userLinkFormat -f $_.id + "|[$($_.userDisplayName)]($userLink)| $($_.roleDisplayName) | ❌ |`n" + }) + $mdInfo = $mdInfo + ($mdLines -join '') + + $mdLines = @($phishResistantPrivUsers | Sort-Object userDisplayName | ForEach-Object { + $userLink = $userLinkFormat -f $_.id + "|[$($_.userDisplayName)]($userLink)| $($_.roleDisplayName) | ✅ |`n" + }) + $mdInfo = $mdInfo + ($mdLines -join '') + + $testResultMarkdown = $testResultMarkdown -replace '%TestResult%', $mdInfo + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21782' -TestType 'Identity' -Status $(if ($passed) { 'Passed' } else { 'Failed' }) -ResultMarkdown $testResultMarkdown -Risk 'High' -Name 'Privileged accounts have phishing-resistant methods registered' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged Access' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21782' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Privileged accounts have phishing-resistant methods registered' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged Access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21783.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21783.md new file mode 100644 index 000000000000..4a9fec301780 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21783.md @@ -0,0 +1,13 @@ +Without phishing-resistant authentication methods, privileged users are more vulnerable to phishing attacks. These types of attacks trick users into revealing their credentials to grant unauthorized access to attackers. If non-phishing-resistant authentication methods are used, attackers might intercept credentials and tokens, through methods like adversary-in-the-middle attacks, undermining the security of the privileged account. + +Once a privileged account or session is compromised due to weak authentication methods, attackers might manipulate the account to maintain long-term access, create other backdoors, or modify user permissions. Attackers can also use the compromised privileged account to escalate their access even further, potentially gaining control over more sensitive systems. + +**Remediation action** + +- [Get started with a phishing-resistant passwordless authentication deployment](https://learn.microsoft.com/entra/identity/authentication/how-to-plan-prerequisites-phishing-resistant-passwordless-authentication?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Ensure that privileged accounts register and use phishing resistant methods](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-strengths?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#authentication-strengths) +- [Deploy a Conditional Access policy to target privileged accounts and require phishing resistant credentials](https://learn.microsoft.com/entra/identity/conditional-access/policy-admin-phish-resistant-mfa?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Monitor authentication method activity](https://learn.microsoft.com/entra/identity/monitoring-health/concept-usage-insights-report?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#authentication-methods-activity) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21783.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21783.ps1 new file mode 100644 index 000000000000..1749977c6dee --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21783.ps1 @@ -0,0 +1,56 @@ +function Invoke-CippTestZTNA21783 { + <# + .SYNOPSIS + Privileged Microsoft Entra built-in roles are targeted with Conditional Access policies to enforce phishing-resistant methods + #> + param($Tenant) + #tested + try { + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + $Roles = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Roles' + + if (-not $CAPolicies -or -not $Roles) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21783' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Privileged Microsoft Entra built-in roles are targeted with Conditional Access policies to enforce phishing-resistant methods' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Access Control' + return + } + + $PrivilegedRoles = $Roles | Where-Object { $_.isPrivileged -and $_.isBuiltIn } + + if (-not $PrivilegedRoles) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21783' -TestType 'Identity' -Status 'Passed' -ResultMarkdown 'No privileged built-in roles found in tenant' -Risk 'High' -Name 'Privileged Microsoft Entra built-in roles are targeted with Conditional Access policies to enforce phishing-resistant methods' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Access Control' + return + } + + $PhishResistantMethods = @('windowsHelloForBusiness', 'fido2', 'x509CertificateMultiFactor') + + $PhishResistantPolicies = $CAPolicies | Where-Object { + $_.state -eq 'enabled' -and + $_.grantControls.authenticationStrength -and + $_.conditions.users.includeRoles + } + + $CoveredRoleIds = $PhishResistantPolicies.conditions.users.includeRoles | Select-Object -Unique + + $UnprotectedRoles = $PrivilegedRoles | Where-Object { $_.id -notin $CoveredRoleIds } + + if ($UnprotectedRoles.Count -eq 0) { + $Status = 'Passed' + $Result = "All $($PrivilegedRoles.Count) privileged built-in roles are protected by Conditional Access policies enforcing phishing-resistant authentication" + } else { + $Status = 'Failed' + $UnprotectedCount = $UnprotectedRoles.Count + $ProtectedCount = $PrivilegedRoles.Count - $UnprotectedCount + $Result = @" +Found $UnprotectedCount unprotected privileged roles out of $($PrivilegedRoles.Count) total ($ProtectedCount protected) +## Unprotected privileged roles: +$(($UnprotectedRoles | ForEach-Object { "- $($_.displayName)" }) -join "`n") +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21783' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Privileged Microsoft Entra built-in roles are targeted with Conditional Access policies to enforce phishing-resistant methods' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Access Control' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21783' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Privileged Microsoft Entra built-in roles are targeted with Conditional Access policies to enforce phishing-resistant methods' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Access Control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21784.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21784.md new file mode 100644 index 000000000000..49b91b174bf7 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21784.md @@ -0,0 +1,12 @@ +## Description + +Verifies that all user sign-ins are protected by Conditional Access policies requiring phishing-resistant authentication methods (Windows Hello for Business, FIDO2 security keys, or certificate-based authentication). + +**Remediation action** + +- [Configure Conditional Access policies to enforce phishing-resistant authentication](https://learn.microsoft.com/en-us/entra/identity/conditional-access/policy-all-users-mfa-strength) + +- [Deploy phishing-resistant authentication methods](https://learn.microsoft.com/en-us/entra/identity/authentication/how-to-deploy-phishing-resistant-passwordless-authentication) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21784.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21784.ps1 new file mode 100644 index 000000000000..3df5ac94ee3b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21784.ps1 @@ -0,0 +1,73 @@ +function Invoke-CippTestZTNA21784 { + <# + .SYNOPSIS + All user sign in activity uses phishing-resistant authentication methods + #> + param($Tenant) + #tested + try { + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $CAPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21784' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'All user sign in activity uses phishing-resistant authentication methods' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Access Control' + return + } + + # Get authentication strength policies from cache + $AuthStrengthPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationStrengths' + + # Define phishing-resistant methods + $PhishingResistantMethods = @( + 'windowsHelloForBusiness', + 'fido2', + 'x509CertificateMultiFactor', + 'certificateBasedAuthenticationPki' + ) + + # Find authentication strength policies with phishing-resistant methods + $PhishingResistantPolicies = $AuthStrengthPolicies | Where-Object { + $_.allowedCombinations | Where-Object { $PhishingResistantMethods -contains $_ } + } + + if (-not $PhishingResistantPolicies) { + $Status = 'Failed' + $Result = 'No phishing-resistant authentication strength policies found in tenant' + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21784' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'All user sign in activity uses phishing-resistant authentication methods' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Access Control' + return + } + + $EnabledPolicies = $CAPolicies | Where-Object { $_.state -eq 'enabled' } + + # Find policies that apply to all users with phishing-resistant auth strength + $RelevantPolicies = $EnabledPolicies | Where-Object { + ($_.conditions.users.includeUsers -contains 'All') -and + ($_.grantControls.authenticationStrength.id -in $PhishingResistantPolicies.id) + } + + if (-not $RelevantPolicies) { + $Status = 'Failed' + $Result = 'No Conditional Access policies found requiring phishing-resistant authentication for all users' + } else { + # Check for user exclusions that create coverage gaps + $PoliciesWithExclusions = $RelevantPolicies | Where-Object { + $_.conditions.users.excludeUsers.Count -gt 0 + } + + if ($PoliciesWithExclusions.Count -gt 0) { + $Status = 'Failed' + $Result = "Found $($RelevantPolicies.Count) policies requiring phishing-resistant authentication, but $($PoliciesWithExclusions.Count) have user exclusions creating coverage gaps:`n`n" + $Result += ($PoliciesWithExclusions | ForEach-Object { "- $($_.displayName) (Excludes $($_.conditions.users.excludeUsers.Count) users)" }) -join "`n" + } else { + $Status = 'Passed' + $Result = "All users are protected by $($RelevantPolicies.Count) Conditional Access policies requiring phishing-resistant authentication:`n`n" + $Result += ($RelevantPolicies | ForEach-Object { "- $($_.displayName)" }) -join "`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21784' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'All user sign in activity uses phishing-resistant authentication methods' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Access Control' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21784' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'All user sign in activity uses phishing-resistant authentication methods' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Access Control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21786.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21786.md new file mode 100644 index 000000000000..9687b064b0dc --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21786.md @@ -0,0 +1,10 @@ +A threat actor can intercept or extract authentication tokens from memory, local storage on a legitimate device, or by inspecting network traffic. The attacker might replay those tokens to bypass authentication controls on users and devices, get unauthorized access to sensitive data, or run further attacks. Because these tokens are valid and time bound, traditional anomaly detection often fails to flag the activity, which might allow sustained access until the token expires or is revoked. + +Token protection, also called token binding, helps prevent token theft by making sure a token is usable only from the intended device. Token protection uses cryptography so that without the client device key, no one can use the token. + +**Remediation action** + +- [Deploy a Conditional Access policy to require token protection](https://learn.microsoft.com/en-us/entra/identity/conditional-access/concept-token-protection?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21786.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21786.ps1 new file mode 100644 index 000000000000..f44d613a07e4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21786.ps1 @@ -0,0 +1,41 @@ +function Invoke-CippTestZTNA21786 { + <# + .SYNOPSIS + User sign-in activity uses token protection + #> + param($Tenant) + #tested + try { + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $CAPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21786' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'User sign-in activity uses token protection' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access Control' + return + } + + $TokenProtectionPolicies = $CAPolicies | Where-Object { + $_.state -eq 'enabled' -and + $_.conditions.clientAppTypes.Count -eq 1 -and + $_.conditions.clientAppTypes[0] -eq 'mobileAppsAndDesktopClients' -and + $_.conditions.applications.includeApplications -contains '00000002-0000-0ff1-ce00-000000000000' -and + $_.conditions.applications.includeApplications -contains '00000003-0000-0ff1-ce00-000000000000' -and + $_.conditions.platforms.includePlatforms.Count -eq 1 -and + $_.conditions.platforms.includePlatforms -eq 'windows' -and + $_.sessionControls.secureSignInSession.isEnabled -eq $true + } + + if ($TokenProtectionPolicies.Count -gt 0) { + $Status = 'Passed' + $Result = "Found $($TokenProtectionPolicies.Count) token protection policies properly configured" + } else { + $Status = 'Failed' + $Result = 'No properly configured token protection policies found' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21786' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'User sign-in activity uses token protection' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access Control' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21786' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'User sign-in activity uses token protection' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access Control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21787.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21787.md new file mode 100644 index 000000000000..b6a91771ec1e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21787.md @@ -0,0 +1,12 @@ +A threat actor or a well-intentioned but uninformed employee can create a new Microsoft Entra tenant if there are no restrictions in place. By default, the user who creates a tenant is automatically assigned the Global Administrator role. Without proper controls, this action fractures the identity perimeter by creating a tenant outside the organization's governance and visibility. It introduces risk though a shadow identity platform that can be exploited for token issuance, brand impersonation, consent phishing, or persistent staging infrastructure. Since the rogue tenant might not be tethered to the enterprise’s administrative or monitoring planes, traditional defenses are blind to its creation, activity, and potential misuse. + +**Remediation action** + +Enable the **Restrict non-admin users from creating tenants** setting. For users that need the ability to create tenants, assign them the Tenant Creator role. You can also review tenant creation events in the Microsoft Entra audit logs. + +- [Restrict member users' default permissions](https://learn.microsoft.com/entra/fundamentals/users-default-permissions?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#restrict-member-users-default-permissions) +- [Assign the Tenant Creator role](https://learn.microsoft.com/entra/identity/role-based-access-control/permissions-reference?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#tenant-creator) +- [Review tenant creation events](https://learn.microsoft.com/entra/identity/monitoring-health/reference-audit-activities?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#core-directory). Look for OperationName=="Create Company", Category == "DirectoryManagement". + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21787.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21787.ps1 new file mode 100644 index 000000000000..0e0a9223dc11 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21787.ps1 @@ -0,0 +1,32 @@ +function Invoke-CippTestZTNA21787 { + <# + .SYNOPSIS + Permissions to create new tenants are limited to the Tenant Creator role + #> + param($Tenant) + #tested + try { + $AuthPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21787' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Permissions to create new tenants are limited to the Tenant Creator role' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Privileged Access' + return + } + + $CanCreateTenants = $AuthPolicy.defaultUserRolePermissions.allowedToCreateTenants + + if ($CanCreateTenants -eq $false) { + $Status = 'Passed' + $Result = 'Non-privileged users are restricted from creating tenants' + } else { + $Status = 'Failed' + $Result = 'Non-privileged users are allowed to create tenants' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21787' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Permissions to create new tenants are limited to the Tenant Creator role' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Privileged Access' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21787' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Permissions to create new tenants are limited to the Tenant Creator role' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Privileged Access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21788.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21788.md new file mode 100644 index 000000000000..1c232fd4b0fe --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21788.md @@ -0,0 +1,13 @@ +Global Administrators with persistent access to Azure subscriptions expand the attack surface for threat actors. If a Global Administrator account is compromised, attackers can immediately enumerate resources, modify configurations, assign roles, and exfiltrate sensitive data across all subscriptions. Requiring just-in-time elevation for subscription access introduces detectable signals, slows attacker velocity, and routes high-impact operations through observable control points. + +**Remediation action** + +- [Get started with a phishing-resistant passwordless authentication deployment](https://learn.microsoft.com/entra/identity/authentication/how-to-plan-prerequisites-phishing-resistant-passwordless-authentication?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +- [Ensure that privileged accounts register and use phishing resistant methods](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-strengths?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#authentication-strengths.md) + +- [Deploy Conditional Access policy to target privileged accounts and require phishing resistant credentials using authentication strengths](https://learn.microsoft.com/entra/identity/conditional-access/policy-admin-phish-resistant-mfa?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +- [Monitor authentication method activity](https://learn.microsoft.com/entra/identity/monitoring-health/concept-usage-insights-report?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#authentication-methods-activity.md) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21789.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21789.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21789.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21790.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21790.md new file mode 100644 index 000000000000..d434ab123c6f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21790.md @@ -0,0 +1,11 @@ +Allowing unrestricted external collaboration with unverified organizations can increase the risk surface area of the tenant because it allows guest accounts that might not have proper security controls. Threat actors can attempt to gain access by compromising identities in these loosely governed external tenants. Once granted guest access, they can then use legitimate collaboration pathways to infiltrate resources in your tenant and attempt to gain sensitive information. Threat actors can also exploit misconfigured permissions to escalate privileges and try different types of attacks. + +Without vetting the security of organizations you collaborate with, malicious external accounts can persist undetected, exfiltrate confidential data, and inject malicious payloads. This type of exposure can weaken organizational control and enable cross-tenant attacks that bypass traditional perimeter defenses and undermine both data integrity and operational resilience. Cross-tenant settings for outbound access in Microsoft Entra provide the ability to block collaboration with unknown organizations by default, reducing the attack surface. + +**Remediation action** + +- [Cross-tenant access overview](https://learn.microsoft.com/en-us/entra/external-id/cross-tenant-access-overview?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Configure cross-tenant access settings](https://learn.microsoft.com/en-us/entra/external-id/cross-tenant-access-settings-b2b-collaboration?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#configure-default-settings) +- [Modify outbound access settings](https://learn.microsoft.com/en-us/entra/external-id/cross-tenant-access-settings-b2b-collaboration?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21790.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21790.ps1 new file mode 100644 index 000000000000..d9aa7a95f316 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21790.ps1 @@ -0,0 +1,40 @@ +function Invoke-CippTestZTNA21790 { + <# + .SYNOPSIS + Outbound cross-tenant access settings are configured + #> + param($Tenant) + #tested + try { + $CrossTenantPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'CrossTenantAccessPolicy' + + if (-not $CrossTenantPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21790' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Outbound cross-tenant access settings are configured' -UserImpact 'Medium' -ImplementationEffort 'High' -Category 'Application Management' + return + } + + $B2BCollabOutbound = $CrossTenantPolicy.b2bCollaborationOutbound.usersAndGroups.accessType -eq 'blocked' -and + $CrossTenantPolicy.b2bCollaborationOutbound.usersAndGroups.targets[0].target -eq 'AllUsers' -and + $CrossTenantPolicy.b2bCollaborationOutbound.applications.accessType -eq 'blocked' -and + $CrossTenantPolicy.b2bCollaborationOutbound.applications.targets[0].target -eq 'AllApplications' + + $B2BDirectOutbound = $CrossTenantPolicy.b2bDirectConnectOutbound.usersAndGroups.accessType -eq 'blocked' -and + $CrossTenantPolicy.b2bDirectConnectOutbound.usersAndGroups.targets[0].target -eq 'AllUsers' -and + $CrossTenantPolicy.b2bDirectConnectOutbound.applications.accessType -eq 'blocked' -and + $CrossTenantPolicy.b2bDirectConnectOutbound.applications.targets[0].target -eq 'AllApplications' + + if ($B2BCollabOutbound -and $B2BDirectOutbound) { + $Status = 'Passed' + $Result = 'Default cross-tenant access outbound policy blocks all access' + } else { + $Status = 'Failed' + $Result = 'Default cross-tenant access outbound policy has unrestricted access' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21790' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Outbound cross-tenant access settings are configured' -UserImpact 'Medium' -ImplementationEffort 'High' -Category 'Application Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21790' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Outbound cross-tenant access settings are configured' -UserImpact 'Medium' -ImplementationEffort 'High' -Category 'Application Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21791.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21791.md new file mode 100644 index 000000000000..7e85d896cdfa --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21791.md @@ -0,0 +1,10 @@ +External user accounts are often used to provide access to business partners who belong to organizations that have a business relationship with your enterprise. If these accounts are compromised in their organization, attackers can use the valid credentials to gain initial access to your environment, often bypassing traditional defenses due to their legitimacy. + +Allowing external users to onboard other external users increases the risk of unauthorized access. If an attacker compromises an external user's account, they can use it to create more external accounts, multiplying their access points and making it harder to detect the intrusion. + +**Remediation action** + +- [Restrict who can invite guests to only users assigned to specific admin roles](https://learn.microsoft.com/entra/external-id/external-collaboration-settings-configure?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#to-configure-guest-invite-settings) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21791.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21791.ps1 new file mode 100644 index 000000000000..870346bf350b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21791.ps1 @@ -0,0 +1,32 @@ +function Invoke-CippTestZTNA21791 { + <# + .SYNOPSIS + Guests cannot invite other guests + #> + param($Tenant) + #tested + try { + $AuthPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21791' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Guests cannot invite other guests' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'External Collaboration' + return + } + + $AllowInvitesFrom = $AuthPolicy.allowInvitesFrom + + if ($AllowInvitesFrom -ne 'everyone') { + $Status = 'Passed' + $Result = "Tenant restricts who can invite guests (Set to: $AllowInvitesFrom)" + } else { + $Status = 'Failed' + $Result = 'Tenant allows any user including guests to invite other guests' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21791' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Guests cannot invite other guests' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'External Collaboration' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21791' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Guests cannot invite other guests' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'External Collaboration' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21792.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21792.md new file mode 100644 index 000000000000..e3d4505e32c7 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21792.md @@ -0,0 +1,10 @@ +External user accounts are often used to provide access to business partners who belong to organizations that have a business relationship with your enterprise. If these accounts are compromised in their organization, attackers can use the valid credentials to gain initial access to your environment, often bypassing traditional defenses due to their legitimacy. + +External accounts with permissions to read directory object permissions provide attackers with broader initial access if compromised. These accounts allow attackers to gather additional information from the directory for reconnaissance. + +**Remediation action** + +- [Restrict guest access to their own directory objects](https://learn.microsoft.com/entra/external-id/external-collaboration-settings-configure?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#to-configure-guest-user-access) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21792.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21792.ps1 new file mode 100644 index 000000000000..037e94fe2a3b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21792.ps1 @@ -0,0 +1,33 @@ +function Invoke-CippTestZTNA21792 { + <# + .SYNOPSIS + Guests have restricted access to directory objects + #> + param($Tenant) + #tested + try { + $AuthPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21792' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Guests have restricted access to directory objects' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'External Collaboration' + return + } + + $GuestRestrictedRoleId = '2af84b1e-32c8-42b7-82bc-daa82404023b' + $GuestRoleId = $AuthPolicy.guestUserRoleId + + if ($GuestRoleId -eq $GuestRestrictedRoleId) { + $Status = 'Passed' + $Result = 'Guest user access is properly restricted' + } else { + $Status = 'Failed' + $Result = 'Guest user access is not restricted' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21792' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Guests have restricted access to directory objects' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'External Collaboration' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21792' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Guests have restricted access to directory objects' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'External Collaboration' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21793.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21793.md new file mode 100644 index 000000000000..fe4e0f3ea03f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21793.md @@ -0,0 +1,10 @@ +Tenant Restrictions v2 (TRv2) allows organizations to enforce policies that restrict access to specified Microsoft Entra tenants, preventing unauthorized exfiltration of corporate data to external tenants using local accounts. Without TRv2, threat actors can exploit this vulnerability, which leads to potential data exfiltration and compliance violations, followed by credential harvesting if those external tenants have weaker controls. Once credentials are obtained, threat actors can gain initial access to these external tenants. TRv2 provides the mechanism to prevent users from authenticating to unauthorized tenants. Otherwise, threat actors can move laterally, escalate privileges, and potentially exfiltrate sensitive data, all while appearing as legitimate user activity that bypasses traditional data loss prevention controls focused on internal tenant monitoring. + +Implementing TRv2 enforces policies that restrict access to specified tenants, mitigating these risks by ensuring that authentication and data access are confined to authorized tenants only. + +If this check passes, your tenant has a TRv2 policy configured but more steps are required to validate the scenario end-to-end. + +**Remediation action** +- [Set up Tenant Restrictions v2](https://learn.microsoft.com/en-us/entra/external-id/tenant-restrictions-v2?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21793.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21793.ps1 new file mode 100644 index 000000000000..3c21654fbc66 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21793.ps1 @@ -0,0 +1,43 @@ +function Invoke-CippTestZTNA21793 { + <# + .SYNOPSIS + Tenant restrictions v2 policy is configured + #> + param($Tenant) + #tested + try { + $CrossTenantPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'CrossTenantAccessPolicy' + + if (-not $CrossTenantPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21793' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Tenant restrictions v2 policy is configured' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + return + } + + $TenantRestrictions = $CrossTenantPolicy.tenantRestrictions + + if (-not $TenantRestrictions) { + $Status = 'Failed' + $Result = 'Tenant Restrictions v2 policy is not configured' + } else { + $UsersBlocked = $TenantRestrictions.usersAndGroups.accessType -eq 'blocked' -and + $TenantRestrictions.usersAndGroups.targets[0].target -eq 'AllUsers' + + $AppsBlocked = $TenantRestrictions.applications.accessType -eq 'blocked' -and + $TenantRestrictions.applications.targets[0].target -eq 'AllApplications' + + if ($UsersBlocked -and $AppsBlocked) { + $Status = 'Passed' + $Result = 'Tenant Restrictions v2 policy is properly configured' + } else { + $Status = 'Failed' + $Result = 'Tenant Restrictions v2 policy is configured but not properly restricting all users and applications' + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21793' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Tenant restrictions v2 policy is configured' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21793' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Tenant restrictions v2 policy is configured' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21795.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21795.md new file mode 100644 index 000000000000..7e00a1e3cb84 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21795.md @@ -0,0 +1,16 @@ +Legacy authentication protocols such as basic authentication for SMTP and IMAP don't support modern security features like multifactor authentication (MFA), which is crucial for protecting against unauthorized access. This lack of protection makes accounts using these protocols vulnerable to password-based attacks, and provides attackers with a means to gain initial access using stolen or guessed credentials. + +When an attacker successfully gains unauthorized access to credentials, they can use them to access linked services, using the weak authentication method as an entry point. Attackers who gain access through legacy authentication might make changes to Microsoft Exchange, such as configuring mail forwarding rules or changing other settings, allowing them to maintain continued access to sensitive communications. + +Legacy authentication also provides attackers with a consistent method to reenter a system using compromised credentials without triggering security alerts or requiring reauthentication. + +From there, attackers can use legacy protocols to access other systems that are accessible via the compromised account, facilitating lateral movement. Attackers using legacy protocols can blend in with legitimate user activities, making it difficult for security teams to distinguish between normal usage and malicious behavior. + +**Remediation action** + +- [Exchange protocols can be deactivated in Exchange](https://learn.microsoft.com/exchange/clients-and-mobile-in-exchange-online/disable-basic-authentication-in-exchange-online?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Legacy authentication protocols can be blocked with Conditional Access](https://learn.microsoft.com/entra/identity/conditional-access/policy-block-legacy-authentication?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Sign-ins using legacy authentication workbook to help determine whether it's safe to turn off legacy authentication](https://learn.microsoft.com/entra/identity/monitoring-health/workbook-legacy-authentication?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21796.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21796.md new file mode 100644 index 000000000000..cef984099328 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21796.md @@ -0,0 +1,14 @@ +Legacy authentication protocols such as basic authentication for SMTP and IMAP don't support modern security features like multifactor authentication (MFA), which is crucial for protecting against unauthorized access. This lack of protection makes accounts using these protocols vulnerable to password-based attacks, and provides attackers with a means to gain initial access using stolen or guessed credentials. + +When an attacker successfully gains unauthorized access to credentials, they can use them to access linked services, using the weak authentication method as an entry point. Attackers who gain access through legacy authentication might make changes to Microsoft Exchange, such as configuring mail forwarding rules or changing other settings, allowing them to maintain continued access to sensitive communications. + +Legacy authentication also provides attackers with a consistent method to reenter a system using compromised credentials without triggering security alerts or requiring reauthentication. + +From there, attackers can use legacy protocols to access other systems that are accessible via the compromised account, facilitating lateral movement. Attackers using legacy protocols can blend in with legitimate user activities, making it difficult for security teams to distinguish between normal usage and malicious behavior. + +**Remediation action** + +- [Deploy a Conditional Access policy to Block legacy authentication](https://learn.microsoft.com/entra/identity/conditional-access/policy-block-legacy-authentication?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21796.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21796.ps1 new file mode 100644 index 000000000000..88695f31b7c4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21796.ps1 @@ -0,0 +1,44 @@ +function Invoke-CippTestZTNA21796 { + <# + .SYNOPSIS + Block legacy authentication policy is configured + #> + param($Tenant) + #tested + try { + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $CAPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21796' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Block legacy authentication policy is configured' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Access Control' + return + } + + $BlockPolicies = $CAPolicies | Where-Object { + $_.grantControls.builtInControls -contains 'block' -and + $_.conditions.clientAppTypes -contains 'exchangeActiveSync' -and + $_.conditions.clientAppTypes -contains 'other' + } + + $EnabledBlockPolicies = $BlockPolicies | Where-Object { + $_.conditions.users.includeUsers -contains 'All' -and + $_.state -eq 'enabled' + } + + if ($EnabledBlockPolicies.Count -ge 1) { + $Status = 'Passed' + $Result = "Found $($EnabledBlockPolicies.Count) properly configured policies blocking legacy authentication:`n $($EnabledBlockPolicies | ForEach-Object { "- $($_.displayName)" } | Out-String) " + } elseif ($BlockPolicies.Count -ge 1) { + $Status = 'Failed' + $Result = "Policies to block legacy authentication found but not properly configured or enabled: `n $($BlockPolicies | ForEach-Object { "- $($_.displayName)" } | Out-String) " + } else { + $Status = 'Failed' + $Result = 'No conditional access policies to block legacy authentication found' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21796' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Block legacy authentication policy is configured' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Access Control' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21796' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Block legacy authentication policy is configured' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Access Control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21797.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21797.md new file mode 100644 index 000000000000..5f34835602c2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21797.md @@ -0,0 +1,13 @@ +Assume high risk users are compromised by threat actors. Without investigation and remediation, threat actors can execute scripts, deploy malicious applications, or manipulate API calls to establish persistence, based on the potentially compromised user's permissions. Threat actors can then exploit misconfigurations or abuse OAuth tokens to move laterally across workloads like documents, SaaS applications, or Azure resources. Threat actors can gain access to sensitive files, customer records, or proprietary code and exfiltrate it to external repositories while maintaining stealth through legitimate cloud services. Finally, threat actors might disrupt operations by modifying configurations, encrypting data for ransom, or using the stolen information for further attacks, resulting in financial, reputational, and regulatory consequences. + +Organizations using passwords can rely on password reset to automatically remediate risky users. + +Organizations using passwordless credentials already mitigate most risk events that accrue to user risk levels, thus the volume of risky users should be considerably lower. Risky users in an organization that uses passwordless credentials must be blocked from access until the user risk is investigated and remediated. + +**Remediation action** + +- [Deploy a Conditional Access policy to require a secure password change for elevated user risk](https://learn.microsoft.com/entra/identity/conditional-access/policy-risk-based-user?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). +- Use Microsoft Entra ID Protection to [investigate risk further](https://learn.microsoft.com/entra/id-protection/howto-identity-protection-investigate-risk?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21797.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21797.ps1 new file mode 100644 index 000000000000..b35dd6b651c5 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21797.ps1 @@ -0,0 +1,150 @@ +function Invoke-CippTestZTNA21797 { + <# + .SYNOPSIS + Restrict access to high risk users + #> + param($Tenant) + #tested + try { + $allCAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + $authMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $allCAPolicies -or -not $authMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21797' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Restrict access to high risk users' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Conditional Access' + return + } + + $caPasswordChangePolicies = $allCAPolicies | Where-Object { + $_.conditions.userRiskLevels -contains 'high' -and + $_.grantControls.builtInControls -contains 'passwordChange' -and + $_.state -eq 'enabled' + } + + $caBlockPolicies = $allCAPolicies | Where-Object { + $_.conditions.userRiskLevels -contains 'high' -and + $_.grantControls.builtInControls -contains 'block' -and + $_.state -eq 'enabled' + } + + $inactiveCAPolicies = $allCAPolicies | Where-Object { + $_.conditions.userRiskLevels -contains 'high' -and + ($_.grantControls.builtInControls -contains 'passwordChange' -or $_.grantControls.builtInControls -contains 'block') -and + $_.state -ne 'enabled' + } + + $passwordlessEnabled = $false + $passwordlessAuthMethods = @() + + if ($authMethodsPolicy.authenticationMethodConfigurations) { + foreach ($method in $authMethodsPolicy.authenticationMethodConfigurations) { + $isPasswordless = $false + $methodName = $method.id + $methodState = $method.state + $additionalInfo = '' + + if ($method.id -in @('fido2')) { + $isPasswordless = ($method.state -eq 'enabled') + } + + if ($method.id -eq 'x509Certificate') { + if ($method.state -eq 'enabled' -and $method.x509CertificateAuthenticationDefaultMode -eq 'x509CertificateMultiFactor') { + $isPasswordless = $true + $additionalInfo = ' (Mode: x509CertificateMultiFactor)' + } + } + + if ($isPasswordless) { + $passwordlessEnabled = $true + $passwordlessAuthMethods += [PSCustomObject]@{ + Name = $methodName + State = $methodState + AdditionalInfo = $additionalInfo + } + } + } + } + + $result = $false + if ((-not $passwordlessEnabled -and ($caPasswordChangePolicies.Count + $caBlockPolicies.Count -gt 0)) -or + ($passwordlessEnabled -and $caBlockPolicies.Count -gt 0)) { + $result = $true + } + + $testResultMarkdown = '' + + if ($result) { + $testResultMarkdown = 'Policies to restrict access for high risk users are properly implemented.' + } else { + if ($passwordlessEnabled -and $caBlockPolicies.Count -eq 0) { + $testResultMarkdown = 'Passwordless authentication is enabled, but no policies to block high risk users are configured.' + } else { + $testResultMarkdown = 'No policies found to protect against high risk users.' + } + } + + $mdInfo = "`n## Passwordless Authentication Methods allowed in tenant`n`n" + + if ($passwordlessAuthMethods.Count -gt 0) { + $mdInfo += "| Authentication Method Name | State | Additional Info |`n" + $mdInfo += "| :------------------------ | :---- | :-------------- |`n" + foreach ($method in $passwordlessAuthMethods) { + $mdInfo += "| $($method.Name) | $($method.State) | $($method.AdditionalInfo) |`n" + } + } else { + $mdInfo += "No passwordless authentication methods are enabled.`n" + } + + $mdInfo += "`n## Conditional Access Policies targeting high risk users`n`n" + + $allEnabledHighRiskPolicies = @($caPasswordChangePolicies) + @($caBlockPolicies) + + if ($allEnabledHighRiskPolicies.Count -gt 0) { + $mdInfo += "| Conditional Access Policy Name | Status | Conditions |`n" + $mdInfo += "| :--------------------- | :----- | :--------- |`n" + + foreach ($policy in $allEnabledHighRiskPolicies) { + $conditions = 'User Risk Level: High' + if ($policy.grantControls.builtInControls -contains 'passwordChange') { + $conditions += ', Control: Password Change' + } + if ($policy.grantControls.builtInControls -contains 'block') { + $conditions += ', Control: Block' + } + $mdInfo += "| $($policy.displayName) | Enabled | $conditions |`n" + } + } + + if ($inactiveCAPolicies.Count -gt 0) { + if ($allEnabledHighRiskPolicies.Count -eq 0) { + $mdInfo += "No conditional access policies targeting high risk users found.`n`n" + $mdInfo += "### Inactive policies targeting high risk users (not contributing to security posture):`n`n" + $mdInfo += "| Conditional Access Policy Name | Status | Conditions |`n" + $mdInfo += "| :--------------------- | :----- | :--------- |`n" + } + + foreach ($policy in $inactiveCAPolicies) { + $conditions = 'User Risk Level: High' + if ($policy.grantControls.builtInControls -contains 'passwordChange') { + $conditions += ', Control: Password Change' + } + if ($policy.grantControls.builtInControls -contains 'block') { + $conditions += ', Control: Block' + } + $status = if ($policy.state -eq 'enabledForReportingButNotEnforced') { 'Report-only' } else { 'Disabled' } + $mdInfo += "| $($policy.displayName) | $status | $conditions |`n" + } + } elseif ($allEnabledHighRiskPolicies.Count -eq 0) { + $mdInfo += "No conditional access policies targeting high risk users found.`n" + } + + $testResultMarkdown = $testResultMarkdown + $mdInfo + + $Status = if ($result) { 'Passed' } else { 'Failed' } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21797' -TestType 'Identity' -Status $Status -ResultMarkdown $testResultMarkdown -Risk 'High' -Name 'Restrict access to high risk users' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Conditional Access' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21797' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Restrict access to high risk users' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Conditional Access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21798.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21798.md new file mode 100644 index 000000000000..3c34e31de3ed --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21798.md @@ -0,0 +1,8 @@ +If you don't enable ID Protection notifications, your organization loses critical real-time alerts when threat actors compromise user accounts or conduct reconnaissance activities. When Microsoft Entra ID Protection detects accounts at risk, it sends email alerts with **Users at risk detected** as the subject and links to the **Users flagged for risk** report. Without these notifications, security teams remain unaware of active threats, allowing threat actors to maintain persistence in compromised accounts without being detected. You can feed these risks into tools like Conditional Access to make access decisions or send them to a security information and event management (SIEM) tool for investigation and correlation. Threat actors can use this detection gap to conduct lateral movement activities, privilege escalation attempts, or data exfiltration operations while administrators remain unaware of the ongoing compromise. The delayed response enables threat actors to establish more persistence mechanisms, change user permissions, or access sensitive resources before you can fix the issue. Without proactive notification of risk detections, organizations must rely solely on manual monitoring of risk reports, which significantly increases the time it takes to detect and respond to identity-based attacks. + +**Remediation action** + +- [Configure users at risk detected alerts](https://learn.microsoft.com/en-us/entra/id-protection/howto-identity-protection-configure-notifications?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#configure-users-at-risk-detected-alerts) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21799.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21799.md new file mode 100644 index 000000000000..68af01ead6db --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21799.md @@ -0,0 +1,8 @@ +When high-risk sign-ins are not properly restricted through Conditional Access policies, organizations expose themselves to security vulnerabilities. Threat actors can exploit these gaps for initial access through compromised credentials, credential stuffing attacks, or anomalous sign-in patterns that Microsoft Entra ID Protection identifies as risky behaviors. Without appropriate restrictions, threat actors who successfully authenticate during high-risk scenarios can perform privilege escalation by misusing the authenticated session to access sensitive resources, modify security configurations, or conduct reconnaissance activities within the environment. Once threat actors establish access through uncontrolled high-risk sign-ins, they can achieve persistence by creating additional accounts, installing backdoors, or modifying authentication policies to maintain long-term access to the organization's resources. The unrestricted access enables threat actors to conduct lateral movement across systems and applications using the authenticated session, potentially accessing sensitive data stores, administrative interfaces, or critical business applications. Finally, threat actors achieve impact through data exfiltration, or compromise business-critical systems while maintaining plausible deniability by exploiting the fact that their risky authentication was not properly challenged or blocked. + +**Remediation action** + +- [Deploy a Conditional Access policy to require MFA for elevated sign-in risk](https://learn.microsoft.com/en-us/entra/identity/conditional-access/policy-risk-based-sign-in?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21799.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21799.ps1 new file mode 100644 index 000000000000..0fd5396bd764 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21799.ps1 @@ -0,0 +1,83 @@ +function Invoke-CippTestZTNA21799 { + <# + .SYNOPSIS + Restrict high risk sign-ins + #> + param($Tenant) + #tested + try { + $authMethodPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + $allCAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $allCAPolicies -or -not $authMethodPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21799' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Restrict high risk sign-ins' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Conditional Access' + return + } + + $matchedPolicies = $null + + if (($authMethodPolicy.authenticationMethodConfigurations.state -eq 'enabled').count -gt 0) { + $matchedPolicies = $allCAPolicies | Where-Object { + $_.conditions.signInRiskLevels -eq 'high' -and + ($_.conditions.users.includeUsers -contains 'All') -and + ($_.grantControls.builtInControls -contains 'block' -or $_.grantControls.builtInControls -contains 'mfa' -or $null -ne $_.grantControls.authenticationStrength) -and + ($_.state -eq 'enabled') + } + } else { + $matchedPolicies = $allCAPolicies | Where-Object { + $_.conditions.signInRiskLevels -eq 'high' -and + ($_.conditions.users.includeUsers -contains 'All') -and + ($_.grantControls.builtInControls -contains 'block') -and + ($_.state -eq 'enabled') + } + } + + $testResultMarkdown = '' + + if ($matchedPolicies.Count -gt 0) { + $passed = 'Passed' + $testResultMarkdown = 'All high-risk sign-in attempts are mitigated by Conditional Access policies enforcing appropriate controls.' + } else { + $passed = 'Failed' + $testResultMarkdown = 'Some high-risk sign-in attempts are not adequately mitigated by Conditional Access policies.' + } + + $reportTitle = 'Conditional Access Policies targeting high-risk sign-in attempts' + $tableRows = '' + + if ($matchedPolicies.Count -gt 0) { + $mdInfo = "`n## $reportTitle`n`n" + $mdInfo += "| Policy Name | Grant Controls | Target Users |`n" + $mdInfo += "| :---------- | :------------- | :----------- |`n" + + foreach ($policy in $matchedPolicies) { + $grantControls = switch ($policy.grantControls) { + { $_.builtInControls -contains 'block' } { + 'Block Access' + } + { $_.builtInControls -contains 'mfa' } { + 'Require Multi-Factor Authentication' + } + { $null -ne $_.authenticationStrength } { + 'Require Authentication Strength' + } + } + + $targetUsers = if ($policy.conditions.users.includeUsers -contains 'All') { + 'All Users' + } else { + $policy.conditions.users.includeUsers -join ', ' + } + + $mdInfo += "| $($policy.displayName) | $grantControls | $targetUsers |`n" + } + } + $testResultMarkdown = $testResultMarkdown + $mdInfo + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21799' -TestType 'Identity' -Status $passed -ResultMarkdown $testResultMarkdown -Risk 'High' -Name 'Block high risk sign-ins' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Conditional Access' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21799' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Restrict high risk sign-ins' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Conditional Access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21800.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21800.md new file mode 100644 index 000000000000..a010c4484edc --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21800.md @@ -0,0 +1,13 @@ +Attackers might gain access if multifactor authentication (MFA) isn't universally enforced or if there are exceptions in place. Attackers might gain access by exploiting vulnerabilities of weaker MFA methods like SMS and phone calls through social engineering techniques. These techniques might include SIM swapping or phishing, to intercept authentication codes. + +Attackers might use these accounts as entry points into the tenant. By using intercepted user sessions, attackers can disguise their activities as legitimate user actions, evade detection, and continue their attack without raising suspicion. From there, they might attempt to manipulate MFA settings to establish persistence, plan, and execute further attacks based on the privileges of compromised accounts. + +**Remediation action** + +- [Deploy multifactor authentication](https://learn.microsoft.com/entra/identity/authentication/howto-mfa-getstarted?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Get started with a phishing-resistant passwordless authentication deployment](https://learn.microsoft.com/entra/identity/authentication/how-to-plan-prerequisites-phishing-resistant-passwordless-authentication?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Deploy a Conditional Access policy to require phishing-resistant MFA for all users](https://learn.microsoft.com/entra/identity/conditional-access/policy-all-users-mfa-strength?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Review authentication methods activity](https://learn.microsoft.com/entra/identity/monitoring-health/concept-usage-insights-report?tabs=microsoft-entra-admin-center&wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#authentication-methods-activity) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21801.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21801.md new file mode 100644 index 000000000000..a010c4484edc --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21801.md @@ -0,0 +1,13 @@ +Attackers might gain access if multifactor authentication (MFA) isn't universally enforced or if there are exceptions in place. Attackers might gain access by exploiting vulnerabilities of weaker MFA methods like SMS and phone calls through social engineering techniques. These techniques might include SIM swapping or phishing, to intercept authentication codes. + +Attackers might use these accounts as entry points into the tenant. By using intercepted user sessions, attackers can disguise their activities as legitimate user actions, evade detection, and continue their attack without raising suspicion. From there, they might attempt to manipulate MFA settings to establish persistence, plan, and execute further attacks based on the privileges of compromised accounts. + +**Remediation action** + +- [Deploy multifactor authentication](https://learn.microsoft.com/entra/identity/authentication/howto-mfa-getstarted?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Get started with a phishing-resistant passwordless authentication deployment](https://learn.microsoft.com/entra/identity/authentication/how-to-plan-prerequisites-phishing-resistant-passwordless-authentication?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Deploy a Conditional Access policy to require phishing-resistant MFA for all users](https://learn.microsoft.com/entra/identity/conditional-access/policy-all-users-mfa-strength?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Review authentication methods activity](https://learn.microsoft.com/entra/identity/monitoring-health/concept-usage-insights-report?tabs=microsoft-entra-admin-center&wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#authentication-methods-activity) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21801.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21801.ps1 new file mode 100644 index 000000000000..1b3783d09304 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21801.ps1 @@ -0,0 +1,95 @@ +function Invoke-CippTestZTNA21801 { + <# + .SYNOPSIS + Users have strong authentication methods configured + #> + param($Tenant) + + try { + $UserRegistrationDetails = New-CIPPDbRequest -TenantFilter $Tenant -Type 'UserRegistrationDetails' + $Users = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Users' + + if (-not $UserRegistrationDetails -or -not $Users) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21801' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Users have strong authentication methods configured' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Credential Management' + return + } + + $PhishResistantMethods = @('passKeyDeviceBound', 'passKeyDeviceBoundAuthenticator', 'windowsHelloForBusiness') + + $results = $UserRegistrationDetails | Where-Object { + $userId = $_.id + $matchingUser = $Users | Where-Object { $_.id -eq $userId -and $_.accountEnabled } + $matchingUser + } | ForEach-Object { + $regDetail = $_ + $matchingUser = $Users | Where-Object { $_.id -eq $regDetail.id } + $hasPhishResistant = $false + + if ($regDetail.methodsRegistered) { + foreach ($method in $PhishResistantMethods) { + if ($regDetail.methodsRegistered -contains $method) { + $hasPhishResistant = $true + break + } + } + } + + [PSCustomObject]@{ + id = $regDetail.id + displayName = $regDetail.userDisplayName + phishResistantAuthMethod = $hasPhishResistant + lastSuccessfulSignInDateTime = $matchingUser.signInActivity.lastSuccessfulSignInDateTime + } + } + + $totalUserCount = $results.Length + $phishResistantUsers = $results | Where-Object { $_.phishResistantAuthMethod } + $phishableUsers = $results | Where-Object { !$_.phishResistantAuthMethod } + + $phishResistantUserCount = $phishResistantUsers.Length + + $passed = $totalUserCount -eq $phishResistantUserCount + + $testResultMarkdown = if ($passed) { + "Validated that all users have registered phishing resistant authentication methods.`n`n%TestResult%" + } else { + "Found users that have not yet registered phishing resistant authentication methods`n`n%TestResult%" + } + + $mdInfo = "## Users strong authentication methods`n`n" + + if ($passed) { + $mdInfo = "All users have registered phishing resistant authentication methods.`n`n" + } else { + $mdInfo = "Found users that have not registered phishing resistant authentication methods.`n`n" + } + + $mdInfo = $mdInfo + "| User | Last sign in | Phishing resistant method registered |`n" + $mdInfo = $mdInfo + "| :--- | :--- | :---: |`n" + + $userLinkFormat = 'https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/UserAuthMethods/userId/{0}/hidePreviewBanner~/true' + + $mdLines = @($phishableUsers | Sort-Object displayName | ForEach-Object { + $userLink = $userLinkFormat -f $_.id + $lastSignInDate = if ($_.lastSuccessfulSignInDateTime) { (Get-Date $_.lastSuccessfulSignInDateTime -Format 'yyyy-MM-dd') } else { 'Never' } + "|[$($_.displayName)]($userLink)| $lastSignInDate | ❌ |`n" + }) + $mdInfo = $mdInfo + ($mdLines -join '') + + $mdLines = @($phishResistantUsers | Sort-Object displayName | ForEach-Object { + $userLink = $userLinkFormat -f $_.id + $lastSignInDate = if ($_.lastSuccessfulSignInDateTime) { (Get-Date $_.lastSuccessfulSignInDateTime -Format 'yyyy-MM-dd') } else { 'Never' } + "|[$($_.displayName)]($userLink)| $lastSignInDate | ✅ |`n" + }) + $mdInfo = $mdInfo + ($mdLines -join '') + + $testResultMarkdown = $testResultMarkdown -replace '%TestResult%', $mdInfo + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21801' -TestType 'Identity' -Status $(if ($passed) { 'Passed' } else { 'Failed' }) -ResultMarkdown $testResultMarkdown -Risk 'Medium' -Name 'Users have strong authentication methods configured' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Credential Management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21801' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Users have strong authentication methods configured' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Credential Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21802.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21802.md new file mode 100644 index 000000000000..61cf321650cd --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21802.md @@ -0,0 +1,8 @@ +Without sign-in context, threat actors can exploit authentication fatigue by flooding users with push notifications, increasing the chance that a user accidentally approves a malicious request. When users get generic push notifications without the application name or geographic location, they don't have the information they need to make informed approval decisions. This lack of context makes users vulnerable to social engineering attacks, especially when threat actors time their requests during periods of legitimate user activity. This vulnerability is especially dangerous when threat actors gain initial access through credential harvesting or password spraying attacks and then try to establish persistence by approving multifactor authentication (MFA) requests from unexpected applications or locations. Without contextual information, users can't detect unusual sign-in attempts, allowing threat actors to maintain access and escalate privileges by moving laterally through systems after bypassing the initial authentication barrier. Without application and location context, security teams also lose valuable telemetry for detecting suspicious authentication patterns that can indicate ongoing compromise or reconnaissance activities. + +**Remediation action** +Give users the context they need to make informed approval decisions. Configure Microsoft Authenticator notifications by setting the Authentication methods policy to include the application name and geographic location. +- [Use additional context in Authenticator notifications - Authentication methods policy](https://learn.microsoft.com/en-us/entra/identity/authentication/how-to-mfa-additional-context?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21802.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21802.ps1 new file mode 100644 index 000000000000..24956ef8276c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21802.ps1 @@ -0,0 +1,40 @@ +function Invoke-CippTestZTNA21802 { + <# + .SYNOPSIS + Microsoft Authenticator app shows sign-in context + #> + param($Tenant) + #tested + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21802' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Microsoft Authenticator app shows sign-in context' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access Control' + return + } + + $AuthenticatorConfig = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'MicrosoftAuthenticator' } + + if (-not $AuthenticatorConfig) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21802' -TestType 'Identity' -Status 'Failed' -ResultMarkdown 'Microsoft Authenticator configuration not found in authentication methods policy' -Risk 'Medium' -Name 'Microsoft Authenticator app shows sign-in context' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access Control' + return + } + + $AppInfoEnabled = $AuthenticatorConfig.featureSettings.displayAppInformationRequiredState.state -eq 'enabled' + $LocationInfoEnabled = $AuthenticatorConfig.featureSettings.displayLocationInformationRequiredState.state -eq 'enabled' + + if ($AppInfoEnabled -and $LocationInfoEnabled) { + $Status = 'Passed' + $Result = 'Microsoft Authenticator shows application name and geographic location in push notifications' + } else { + $Status = 'Failed' + $Result = "Microsoft Authenticator sign-in context incomplete - App info: $AppInfoEnabled, Location info: $LocationInfoEnabled" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21802' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Microsoft Authenticator app shows sign-in context' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access Control' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21802' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Microsoft Authenticator app shows sign-in context' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access Control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21803.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21803.md new file mode 100644 index 000000000000..6f99cf455fac --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21803.md @@ -0,0 +1,13 @@ +Legacy multifactor authentication (MFA) and self-service password reset (SSPR) policies in Microsoft Entra ID manage authentication methods separately, leading to fragmented configurations and suboptimal user experience. Moreover, managing these policies independently increases administrative overhead and the risk of misconfiguration. + +Migrating to the combined Authentication Methods policy consolidates the management of MFA, SSPR, and passwordless authentication methods into a single policy framework. This unification allows for more granular control, enabling administrators to target specific authentication methods to user groups and enforce consistent security measures across the organization. Additionally, the unified policy supports modern authentication methods, such as FIDO2 security keys and Windows Hello for Business, enhancing the organization's security posture. + +Microsoft announced the deprecation of legacy MFA and SSPR policies, with a retirement date set for September 30, 2025. Organizations are advised to complete the migration to the Authentication Methods policy before this date to avoid potential disruptions and to benefit from the enhanced security and management capabilities of the unified policy. + +**Remediation action** + +- [Enable combined security information registration](https://learn.microsoft.com/entra/identity/authentication/howto-registration-mfa-sspr-combined?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [How to migrate MFA and SSPR policy settings to the Authentication methods policy for Microsoft Entra ID](https://learn.microsoft.com/entra/identity/authentication/how-to-authentication-methods-manage?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21803.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21803.ps1 new file mode 100644 index 000000000000..38cfc0f542a8 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21803.ps1 @@ -0,0 +1,35 @@ +function Invoke-CippTestZTNA21803 { + <# + .SYNOPSIS + Migrate from legacy MFA and SSPR policies + #> + param($Tenant) + #Tested + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21803' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Migrate from legacy MFA and SSPR policies' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Credential Management' + return + } + + $PolicyMigrationState = $AuthMethodsPolicy.policyMigrationState + + if ($PolicyMigrationState -eq 'migrationComplete') { + $Status = 'Passed' + $Result = 'Tenant has migrated from legacy MFA and SSPR policies to authentication methods policy' + } elseif ($PolicyMigrationState -eq 'migrationInProgress') { + $Status = 'Investigate' + $Result = 'Tenant migration from legacy MFA and SSPR policies is in progress' + } else { + $Status = 'Failed' + $Result = "Tenant has not migrated from legacy MFA and SSPR policies (state: $PolicyMigrationState)" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21803' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Migrate from legacy MFA and SSPR policies' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Credential Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21803' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Migrate from legacy MFA and SSPR policies' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Credential Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21804.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21804.md new file mode 100644 index 000000000000..c4a3d5bd3265 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21804.md @@ -0,0 +1,12 @@ +When weak authentication methods like SMS and voice calls remain enabled in Microsoft Entra ID, threat actors can exploit these vulnerabilities through multiple attack vectors. Initially, attackers often conduct reconnaissance to identify organizations using these weaker authentication methods through social engineering or technical scanning. Then they can execute initial access through credential stuffing attacks, password spraying, or phishing campaigns targeting user credentials. + +Once basic credentials are compromised, threat actors use these weaknesses in SMS and voice-based authentication. SMS messages can be intercepted through SIM swapping attacks, SS7 network vulnerabilities, or malware on mobile devices, while voice calls are susceptible to voice phishing (vishing) and call forwarding manipulation. With these weak second factors bypassed, attackers achieve persistence by registering their own authentication methods. Compromised accounts can be used to target higher-privileged users through internal phishing or social engineering, allowing attackers to escalate privileges within the organization. Finally, threat actors achieve their objectives through data exfiltration, lateral movement to critical systems, or deployment of other malicious tools, all while maintaining stealth by using legitimate authentication pathways that appear normal in security logs. + +**Remediation action** + +- [Deploy authentication method registration campaigns to encourage stronger methods](https://learn.microsoft.com/graph/api/authenticationmethodspolicy-update?view=graph-rest-beta&preserve-view=true&wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Disable authentication methods](https://learn.microsoft.com/en-us/entra/identity/authentication/concept-authentication-methods-manage?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Disable phone-based methods in legacy MFA settings](https://learn.microsoft.com/en-us/entra/identity/authentication/howto-mfa-mfasettings?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Deploy Conditional Access policies using authentication strength](https://learn.microsoft.com/en-us/entra/identity/authentication/concept-authentication-strength-how-it-works?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21804.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21804.ps1 new file mode 100644 index 000000000000..9882b9e0713c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21804.ps1 @@ -0,0 +1,46 @@ +function Invoke-CippTestZTNA21804 { + <# + .SYNOPSIS + SMS and Voice Call authentication methods are disabled + #> + param($Tenant) + #Tested + try { + $authMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $authMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21804' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'SMS and Voice Call authentication methods are disabled' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Credential Management' + return + } + + $matchedMethods = $authMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'Sms' -or $_.id -eq 'Voice' } + + $testResultMarkdown = '' + + if ($matchedMethods.state -contains 'enabled') { + $passed = 'Failed' + $testResultMarkdown = 'Found weak authentication methods that are still enabled.' + } else { + $passed = 'Passed' + $testResultMarkdown = 'SMS and voice calls authentication methods are disabled in the tenant.' + } + + $reportTitle = 'Weak authentication methods' + + $mdInfo = "`n## $reportTitle`n`n" + $mdInfo += "| Method ID | Is method weak? | State |`n" + $mdInfo += "| :-------- | :-------------- | :---- |`n" + + foreach ($method in $matchedMethods) { + $mdInfo += "| $($method.id) | Yes | $($method.state) |`n" + } + + $testResultMarkdown = $testResultMarkdown + $mdInfo + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21804' -TestType 'Identity' -Status $passed -ResultMarkdown $testResultMarkdown -Risk 'High' -Name 'Weak authentication methods are disabled' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Conditional Access' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21804' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'SMS and Voice Call authentication methods are disabled' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Credential Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21806.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21806.md new file mode 100644 index 000000000000..f0b3ce89d4e6 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21806.md @@ -0,0 +1,10 @@ +Without Conditional Access policies protecting security information registration, threat actors can exploit unprotected registration flows to compromise authentication methods. When users register multifactor authentication and self-service password reset methods without proper controls, threat actors can intercept these registration sessions through adversary-in-the-middle attacks or exploit unmanaged devices accessing registration from untrusted locations. Once threat actors gain access to an unprotected registration flow, they can register their own authentication methods, effectively hijacking the target's authentication profile. The threat actors can bypass security controls and potentially escalate privileges throughout the environment because they can maintain persistent access by controlling the MFA methods. The compromised authentication methods then become the foundation for lateral movement as threat actors can authenticate as the legitimate user across multiple services and applications. + +**Remediation action** + +- [Deploy a Conditional Access policy for security info registration](https://learn.microsoft.com/en-us/entra/identity/conditional-access/policy-all-users-security-info-registration?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Configure known network locations](https://learn.microsoft.com/en-us/entra/identity/conditional-access/concept-assignment-network?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Enable combined security info registration](https://learn.microsoft.com/en-us/entra/identity/authentication/howto-registration-mfa-sspr-combined?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21806.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21806.ps1 new file mode 100644 index 000000000000..6a7864fb17c8 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21806.ps1 @@ -0,0 +1,55 @@ +function Invoke-CippTestZTNA21806 { + <# + .SYNOPSIS + Secure the MFA registration (My Security Info) page + #> + param($Tenant) + #tested + try { + $allCAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $allCAPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21806' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Secure the MFA registration (My Security Info) page' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Conditional Access' + return + } + + $matchedPolicies = $allCAPolicies | Where-Object { + ($_.conditions.applications.includeUserActions -contains 'urn:user:registersecurityinfo') -and + ($_.conditions.users.includeUsers -contains 'All') -and + $_.state -eq 'enabled' + } + + $testResultMarkdown = '' + + if ($matchedPolicies.Count -gt 0) { + $passed = 'Passed' + $testResultMarkdown = 'Security information registration is protected by Conditional Access policies.' + } else { + $passed = 'Failed' + $testResultMarkdown = 'Security information registration is not protected by Conditional Access policies.' + } + + $reportTitle = 'Conditional Access Policies targeting security information registration' + $tableRows = '' + + if ($matchedPolicies.Count -gt 0) { + $mdInfo = "`n## $reportTitle`n`n" + $mdInfo += "| Policy Name | User Actions Targeted | Grant Controls Applied |`n" + $mdInfo += "| :---------- | :-------------------- | :--------------------- |`n" + + foreach ($policy in $matchedPolicies) { + $mdInfo += "| $($policy.displayName) | $($policy.conditions.applications.includeUserActions) | $($policy.grantControls.builtInControls -join ', ') |`n" + } + } else { + $mdInfo = 'No Conditional Access policies targeting security information registration.' + } + + $testResultMarkdown = $testResultMarkdown + $mdInfo + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21806' -TestType 'Identity' -Status $passed -ResultMarkdown $testResultMarkdown -Risk 'High' -Name 'Secure the MFA registration (My Security Info) page' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Conditional Access' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21806' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Secure the MFA registration (My Security Info) page' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Conditional Access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21807.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21807.md new file mode 100644 index 000000000000..f20e5690891a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21807.md @@ -0,0 +1,12 @@ +If nonprivileged users can create applications and service principals, these accounts might be misconfigured or be granted more permissions than necessary, creating new vectors for attackers to gain initial access. Attackers can exploit these accounts to establish valid credentials in the environment and bypass some security controls. + +If these nonprivileged accounts are mistakenly granted elevated application owner permissions, attackers can use them to move from a lower level of access to a more privileged level of access. Attackers who compromise nonprivileged accounts might add their own credentials or change the permissions associated with the applications created by the nonprivileged users to ensure they can continue to access the environment undetected. + +Attackers can use service principals to blend in with legitimate system processes and activities. Because service principals often perform automated tasks, malicious activities carried out under these accounts might not be flagged as suspicious. + +**Remediation action** + +- [Block nonprivileged users from creating apps](https://learn.microsoft.com/entra/identity/role-based-access-control/delegate-app-roles?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21807.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21807.ps1 new file mode 100644 index 000000000000..2e5f195f5c94 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21807.ps1 @@ -0,0 +1,32 @@ +function Invoke-CippTestZTNA21807 { + <# + .SYNOPSIS + Creating new applications and service principals is restricted to privileged users + #> + param($Tenant) + #Tested + try { + $AuthPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21807' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Creating new applications and service principals is restricted to privileged users' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application Management' + return + } + + $CanCreateApps = $AuthPolicy.defaultUserRolePermissions.allowedToCreateApps + + if ($CanCreateApps -eq $false) { + $Status = 'Passed' + $Result = 'Tenant is configured to prevent users from registering applications' + } else { + $Status = 'Failed' + $Result = 'Tenant allows all non-privileged users to register applications' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21807' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Creating new applications and service principals is restricted to privileged users' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21807' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Creating new applications and service principals is restricted to privileged users' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21808.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21808.md new file mode 100644 index 000000000000..de6e6b429a7d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21808.md @@ -0,0 +1,8 @@ +Device code flow is a cross-device authentication flow designed for input-constrained devices. It can be exploited in phishing attacks, where an attacker initiates the flow and tricks a user into completing it on their device, thereby sending the user's tokens to the attacker. Given the security risks and the infrequent legitimate use of device code flow, you should enable a Conditional Access policy to block this flow by default. + +**Remediation action** + +- [Deploy a Conditional Access policy to block device code flow](https://learn.microsoft.com/entra/identity/conditional-access/policy-block-authentication-flows?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#device-code-flow-policies). + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21808.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21808.ps1 new file mode 100644 index 000000000000..289ae9e1f36d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21808.ps1 @@ -0,0 +1,45 @@ +function Invoke-CippTestZTNA21808 { + <# + .SYNOPSIS + Restrict device code flow + #> + param($Tenant) + #Tested + try { + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + if (-not $CAPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21808' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Restrict device code flow' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Access Control' + return + } + + $Enabled = $CAPolicies | Where-Object { $_.state -eq 'enabled' } + $DeviceCodePolicies = $Enabled | Where-Object { + if ($_.conditions.authenticationFlows.transferMethods) { + $Methods = $_.conditions.authenticationFlows.transferMethods -split ',' + $Methods -contains 'deviceCodeFlow' + } else { + $false + } + } + + $BlockPolicies = $DeviceCodePolicies | Where-Object { $_.grantControls.builtInControls -contains 'block' } + + if ($BlockPolicies.Count -gt 0) { + $Status = 'Passed' + $Result = "Device code flow is properly restricted with $($BlockPolicies.Count) blocking policy/policies" + } elseif ($DeviceCodePolicies.Count -eq 0) { + $Status = 'Failed' + $Result = 'No Conditional Access policies found targeting device code flow' + #Add table with existing policies? + } else { + $Status = 'Failed' + $Result = 'Device code flow policies exist but none are configured to block' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21808' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Restrict device code flow' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Access Control' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21808' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Restrict device code flow' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Access Control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21809.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21809.md new file mode 100644 index 000000000000..3689a7af5877 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21809.md @@ -0,0 +1,11 @@ +Enabling the Admin consent workflow in a Microsoft Entra tenant is a vital security measure that mitigates risks associated with unauthorized application access and privilege escalation. This check is important because it ensures that any application requesting elevated permission undergoes a review process by designated administrators before consent is granted. The admin consent workflow in Microsoft Entra ID notifies reviewers who evaluate and approve or deny consent requests based on the application's legitimacy and necessity. If this check doesn't pass, meaning the workflow is disabled, any application can request and potentially receive elevated permissions without administrative review. This poses a substantial security risk, as malicious actors could exploit this lack of oversight to gain unauthorized access to sensitive data, perform privilege escalation, or execute other malicious activities. + +**Remediation action** + +For admin consent requests, set the **Users can request admin consent to apps they are unable to consent to** setting to **Yes**. Specify other settings, such as who can review requests. + +- [Enable the admin consent workflow](https://learn.microsoft.com/entra/identity/enterprise-apps/configure-admin-consent-workflow?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#enable-the-admin-consent-workflow) +- Or use the [Update adminConsentRequestPolicy](https://learn.microsoft.com/graph/api/adminconsentrequestpolicy-update?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) API to set the `isEnabled` property to true and other settings + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21809.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21809.ps1 new file mode 100644 index 000000000000..f3422476b53c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21809.ps1 @@ -0,0 +1,30 @@ +function Invoke-CippTestZTNA21809 { + <# + .SYNOPSIS + Admin consent workflow is enabled + #> + param($Tenant) + #Tested + try { + $result = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AdminConsentRequestPolicy' + + if (-not $result) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21809' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Admin consent workflow is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application Management' + return + } + + $passed = if ($result.isEnabled) { 'Passed' } else { 'Failed' } + + if ($result.isEnabled) { + $testResultMarkdown = 'Admin consent workflow is enabled.' + } else { + $testResultMarkdown = "Admin consent workflow is disabled.`n`nThe adminConsentRequestPolicy.isEnabled property is set to false." + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21809' -TestType 'Identity' -Status $passed -ResultMarkdown $testResultMarkdown -Risk 'High' -Name 'Admin consent workflow is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21809' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Admin consent workflow is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21810.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21810.md new file mode 100644 index 000000000000..2ac799e81e92 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21810.md @@ -0,0 +1,8 @@ +Letting group owners consent to applications in Microsoft Entra ID creates a lateral escalation path that lets threat actors persist and steal data without admin credentials. If an attacker compromises a group owner account, they can register or use a malicious application and consent to high-privilege Graph API permissions scoped to the group. Attackers can potentially read all Teams messages, access SharePoint files, or manage group membership. This consent action creates a long-lived application identity with delegated or application permissions. The attacker maintains persistence with OAuth tokens, steals sensitive data from team channels and files, and impersonates users through messaging or email permissions. Without centralized enforcement of app consent policies, security teams lose visibility, and malicious applications spread under the radar, enabling multi-stage attacks across collaboration platforms. + +**Remediation action** +Configure preapproval of Resource-Specific Consent (RSC) permissions. +- [Preapproval of RSC permissions](https://learn.microsoft.com/microsoftteams/platform/graph-api/rsc/preapproval-instruction-docs?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21810.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21810.ps1 new file mode 100644 index 000000000000..3f7d1d03f123 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21810.ps1 @@ -0,0 +1,39 @@ +function Invoke-CippTestZTNA21810 { + <# + .SYNOPSIS + Resource-specific consent is restricted + #> + param($Tenant) + #Tested + try { + $authPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $authPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21810' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Resource-specific consent is restricted' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Application Management' + return + } + + $teamPermission = 'managepermissiongrantsforownedresource.microsoft-dynamically-managed-permissions-for-team' + $hasTeamPermission = $authPolicy.permissionGrantPolicyIdsAssignedToDefaultUserRole -contains $teamPermission + + if (-not $hasTeamPermission) { + $state = 'DisabledForAllApps' + } else { + $state = 'EnabledForAllApps' + } + + if ($state -eq 'DisabledForAllApps') { + $passed = 'Passed' + $testResultMarkdown = "Resource-Specific Consent is restricted.`n`nThe current state is $state." + } else { + $passed = 'Failed' + $testResultMarkdown = "Resource-Specific Consent is not restricted.`n`nThe current state is $state." + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21810' -TestType 'Identity' -Status $passed -ResultMarkdown $testResultMarkdown -Risk 'Medium' -Name 'Resource-specific consent is restricted' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Application Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21810' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Resource-specific consent is restricted' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Application Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21811.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21811.md new file mode 100644 index 000000000000..fc521a90eb64 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21811.md @@ -0,0 +1,17 @@ +When password expiration policies remain enabled, threat actors can exploit the predictable password rotation patterns that users typically follow when forced to change passwords regularly. Users frequently create weaker passwords by making minimal modifications to existing ones, such as incrementing numbers or adding sequential characters. Threat actors can easily anticipate and exploit these types of changes through credential stuffing attacks or targeted password spraying campaigns. These predictable patterns enable threat actors to establish persistence through: + +- Compromised credentials +- Escalated privileges by targeting administrative accounts with weak rotated passwords +- Maintaining long-term access by predicting future password variations + +Research shows that users create weaker, more predictable passwords when they are forced to expire. These predictable passwords are easier for experienced attackers to crack, as they often make simple modifications to existing passwords rather than creating entirely new, strong passwords. Additionally, when users are required to frequently change passwords, they might resort to insecure practices such as writing down passwords or storing them in easily accessible locations, creating more attack vectors for threat actors to exploit during physical reconnaissance or social engineering campaigns. + +**Remediation action** + +- [Set the password expiration policy for your organization](https://learn.microsoft.com/microsoft-365/admin/manage/set-password-expiration-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). + - Sign in to the [Microsoft 365 admin center](https://admin.microsoft.com/). Go to **Settings** > **Org Settings** >** Security & Privacy** > **Password expiration policy**. Ensure the **Set passwords to never expire** setting is checked. +- [Disable password expiration using Microsoft Graph](https://learn.microsoft.com/graph/api/domain-update?view=graph-rest-1.0&preserve-view=true&wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). +- [Set individual user passwords to never expire using Microsoft Graph PowerShell](https://learn.microsoft.com/microsoft-365/admin/add-users/set-password-to-never-expire?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + - `Update-MgUser -UserId -PasswordPolicies DisablePasswordExpiration` +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21811.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21811.ps1 new file mode 100644 index 000000000000..6315dc929433 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21811.ps1 @@ -0,0 +1,81 @@ +function Invoke-CippTestZTNA21811 { + <# + .SYNOPSIS + Password expiration is disabled + #> + param($Tenant) + #Tested + try { + $domains = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Domains' + + if (-not $domains) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21811' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Password expiration is disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential Management' + return + } + + $misconfiguredDomains = $domains | Where-Object { $_.passwordValidityPeriodInDays -ne 2147483647 } + + $users = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Users' + + $misconfiguredUsers = @() + if ($users) { + $misconfiguredUsers = foreach ($user in $users) { + $userDomain = $user.userPrincipalName.Split('@')[-1] + $domainPolicy = $misconfiguredDomains | Where-Object { $_.id -eq $userDomain } + if (($user.passwordPolicies -notlike '*DisablePasswordExpiration*') -and ($domainPolicy)) { + [PSCustomObject]@{ + id = $user.id + displayName = $user.displayName + userPrincipalName = $user.userPrincipalName + passwordPolicies = $user.passwordPolicies + DomainPasswordValidity = $domainPolicy.passwordValidityPeriodInDays + } + } + } + } + + if ($misconfiguredDomains -or $misconfiguredUsers) { + $passed = 'Failed' + $testResultMarkdown = 'Found domains or users with password expiration still enabled.' + } else { + $passed = 'Passed' + $testResultMarkdown = 'Password expiration is properly disabled across all domains and users.' + } + + if ($misconfiguredDomains) { + $reportTitle1 = 'Domains with password expiration enabled' + $mdInfo1 = "`n## $reportTitle1`n`n" + $mdInfo1 += "| Domain Name | Password Validity Interval |`n" + $mdInfo1 += "| :---------- | :------------------------- |`n" + + foreach ($domain in $misconfiguredDomains) { + $mdInfo1 += "| $($domain.id) | $($domain.passwordValidityPeriodInDays) |`n" + } + + $testResultMarkdown = $testResultMarkdown + $mdInfo1 + } + + if ($misconfiguredUsers) { + $reportTitle2 = 'Users with password expiration enabled' + $mdInfo2 = "`n## $reportTitle2`n`n" + $mdInfo2 += "| Display Name | User Principal Name | User Password Expiration setting | Domain Password Expiration setting |`n" + $mdInfo2 += "| :----------- | :------------------ | :------------------------------- | :--------------------------------- |`n" + + foreach ($misconfiguredUser in $misconfiguredUsers) { + $displayName = $misconfiguredUser.displayName + $userPrincipalName = $misconfiguredUser.userPrincipalName + $userPasswordExpiration = $misconfiguredUser.passwordPolicies + $domainPasswordExpiration = $misconfiguredUser.DomainPasswordValidity + $mdInfo2 += "| $displayName | $userPrincipalName | $userPasswordExpiration | $domainPasswordExpiration |`n" + } + + $testResultMarkdown = $testResultMarkdown + $mdInfo2 + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21811' -TestType 'Identity' -Status $passed -ResultMarkdown $testResultMarkdown -Risk 'Medium' -Name 'Password expiration is disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21811' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Password expiration is disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21812.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21812.md new file mode 100644 index 000000000000..53d298d4756b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21812.md @@ -0,0 +1,7 @@ +An excessive number of Global Administrator accounts creates an expanded attack surface that threat actors can exploit through various initial access vectors. Each extra privileged account represents a potential entry point for threat actors. An excess of Global Administrator accounts undermines the principle of least privilege. Microsoft recommends that organizations have no more than eight Global Administrators. + +**Remediation action** + +- [Follow best practices for Microsoft Entra roles](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/best-practices?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21812.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21812.ps1 new file mode 100644 index 000000000000..5bd0291730a5 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21812.ps1 @@ -0,0 +1,60 @@ +function Invoke-CippTestZTNA21812 { + <# + .SYNOPSIS + Maximum number of Global Administrators doesn't exceed five users + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + $TestId = 'ZTNA21812' + + try { + $AllGlobalAdmins = Get-CippDbRoleMembers -TenantFilter $Tenant -RoleTemplateId '62e90394-69f5-4237-9190-012177145e10' + + $GlobalAdmins = @($AllGlobalAdmins | Where-Object { $_.'@odata.type' -in @('#microsoft.graph.user', '#microsoft.graph.servicePrincipal') }) + + $Passed = $GlobalAdmins.Count -le 5 + + if ($Passed) { + $ResultMarkdown = "Maximum number of Global Administrators doesn't exceed five users/service principals.`n`n" + } else { + $ResultMarkdown = "Maximum number of Global Administrators exceeds five users/service principals.`n`n" + } + + if ($GlobalAdmins.Count -gt 0) { + $ResultMarkdown += "## Global Administrators`n`n" + $ResultMarkdown += "### Total number of Global Administrators: $($GlobalAdmins.Count)`n`n" + $ResultMarkdown += "| Display Name | Object Type | User Principal Name |`n" + $ResultMarkdown += "| :----------- | :---------- | :------------------ |`n" + + foreach ($GlobalAdmin in $GlobalAdmins) { + $DisplayName = $GlobalAdmin.displayName + $ObjectType = switch ($GlobalAdmin.'@odata.type') { + '#microsoft.graph.user' { 'User' } + '#microsoft.graph.servicePrincipal' { 'Service Principal' } + default { 'Unknown' } + } + $UserPrincipalName = if ($GlobalAdmin.userPrincipalName) { $GlobalAdmin.userPrincipalName } else { 'N/A' } + + $PortalLink = switch ($ObjectType) { + 'User' { "https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/AdministrativeRole/userId/$($GlobalAdmin.id)" } + 'Service Principal' { "https://entra.microsoft.com/#view/Microsoft_AAD_RegisteredApps/ApplicationMenuBlade/~/Overview/appId/$($GlobalAdmin.id)" } + default { 'https://entra.microsoft.com' } + } + + $ResultMarkdown += "| [$DisplayName]($PortalLink) | $ObjectType | $UserPrincipalName |`n" + } + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'Low' -Name "Maximum number of Global Administrators doesn't exceed five users" -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Privileged access' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name "Maximum number of Global Administrators doesn't exceed five users" -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Privileged access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21813.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21813.md new file mode 100644 index 000000000000..4071a19bede4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21813.md @@ -0,0 +1,8 @@ +When organizations maintain a disproportionately high ratio of Global Administrators relative to their total privileged user population, they expose themselves to significant security risks that threat actors might exploit through various attack vectors. Excessive Global Administrator assignments create multiple high-value targets for threat actors who might leverage initial access through credential compromise, phishing attacks, or insider threats to gain unrestricted access to the entire Microsoft Entra ID tenant and connected Microsoft 365 services. + +**Remediation action** + +- [Minimize the number of Global Administrator role assignments](https://learn.microsoft.com/entra/identity/role-based-access-control/best-practices?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#5-limit-the-number-of-global-administrators-to-less-than-5) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21813.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21813.ps1 new file mode 100644 index 000000000000..84552c025074 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21813.ps1 @@ -0,0 +1,145 @@ +function Invoke-CippTestZTNA21813 { + <# + .SYNOPSIS + High Global Administrator to privileged user ratio + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + $TestId = 'ZTNA21813' + + try { + $GlobalAdminRoleId = '62e90394-69f5-4237-9190-012177145e10' + + $PrivilegedRoles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles + $RoleAssignmentScheduleInstances = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RoleAssignmentScheduleInstances' + $RoleEligibilitySchedules = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RoleEligibilitySchedules' + $Users = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Users' + + $AllGAUsers = @{} + $AllPrivilegedUsers = @{} + $UserRoleMap = @{} + + foreach ($Role in $PrivilegedRoles) { + $ActiveAssignments = $RoleAssignmentScheduleInstances | Where-Object { + $_.roleDefinitionId -eq $Role.templateId -and $_.assignmentType -eq 'Assigned' + } + $EligibleAssignments = $RoleEligibilitySchedules | Where-Object { + $_.roleDefinitionId -eq $Role.templateId + } + + $AllAssignments = @($ActiveAssignments) + @($EligibleAssignments) + + foreach ($Assignment in $AllAssignments) { + $User = $Users | Where-Object { $_.id -eq $Assignment.principalId } | Select-Object -First 1 + if (-not $User) { continue } + + $UserId = $User.id + $IsGARole = $Role.templateId -eq $GlobalAdminRoleId + + if ($IsGARole) { + $AllGAUsers[$UserId] = $User + } + + if (-not $IsGARole) { + $AllPrivilegedUsers[$UserId] = $User + } + + if (-not $UserRoleMap.ContainsKey($UserId)) { + $UserRoleMap[$UserId] = @{ + User = $User + Roles = [System.Collections.ArrayList]@() + IsGA = $false + } + } + + if ($Role.displayName -notin $UserRoleMap[$UserId].Roles) { + [void]$UserRoleMap[$UserId].Roles.Add($Role.displayName) + } + + if ($IsGARole) { + $UserRoleMap[$UserId].IsGA = $true + } + } + } + + $GARoleAssignmentCount = $AllGAUsers.Count + $PrivilegedRoleAssignmentCount = $AllPrivilegedUsers.Count + $TotalPrivilegedRoleAssignmentCount = $GARoleAssignmentCount + $PrivilegedRoleAssignmentCount + + if ($TotalPrivilegedRoleAssignmentCount -gt 0) { + $GAPercentage = [math]::Round(($GARoleAssignmentCount / $TotalPrivilegedRoleAssignmentCount) * 100, 2) + $OtherPercentage = [math]::Round(($PrivilegedRoleAssignmentCount / $TotalPrivilegedRoleAssignmentCount) * 100, 2) + } else { + $GAPercentage = 0 + $OtherPercentage = 0 + } + + $HasHealthyRatio = $false + $HasModerateRatio = $false + $HasHighRatio = $false + $CustomStatus = $null + + if ($GAPercentage -lt 30) { + $StatusIndicator = '✅ Passed' + $HasHealthyRatio = $true + } elseif ($GAPercentage -ge 30 -and $GAPercentage -lt 50) { + $StatusIndicator = '⚠️ Investigate' + $HasModerateRatio = $true + } else { + $StatusIndicator = '❌ Failed' + $HasHighRatio = $true + } + + $MdInfo = "`n## Privileged role assignment summary`n`n" + $MdInfo += "**Global administrator role count:** $GARoleAssignmentCount ($GAPercentage%) - $StatusIndicator`n`n" + $MdInfo += "**Other privileged role count:** $PrivilegedRoleAssignmentCount ($OtherPercentage%)`n`n" + + $MdInfo += "## User privileged role assignments`n`n" + $MdInfo += "| User | Global administrator | Other Privileged Role(s) |`n" + $MdInfo += "| :--- | :------------------- | :------ |`n" + + $SortedUsers = $UserRoleMap.Values | Sort-Object @{Expression = { -not $_.IsGA } }, @{Expression = { $_.User.displayName } } + + foreach ($UserEntry in $SortedUsers) { + $User = $UserEntry.User + $IsGA = if ($UserEntry.IsGA) { 'Yes' } else { 'No' } + + $OtherRoles = $UserEntry.Roles | Where-Object { $_ -ne 'Global Administrator' } | Sort-Object + $RolesList = if ($OtherRoles.Count -gt 0) { ($OtherRoles -join ', ') } else { '-' } + + $UserLink = "https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/AdministrativeRole/userId/$($User.id)/hidePreviewBanner~/true" + $MdInfo += "| [$($User.displayName)]($UserLink) | $IsGA | $RolesList |`n" + } + + if ($UserRoleMap.Count -eq 0) { + $MdInfo += "| No privileged users found | - | - |`n" + } + + if ($TotalPrivilegedRoleAssignmentCount -eq 0) { + $Passed = $true + $ResultMarkdown = "No privileged role assignments found in the tenant.$MdInfo" + } elseif ($HasHealthyRatio) { + $Passed = $true + $ResultMarkdown = "Less than 30% of privileged role assignments in the tenant are Global Administrator.$MdInfo" + } elseif ($HasModerateRatio) { + $Passed = $false + $CustomStatus = 'Investigate' + $ResultMarkdown = "Between 30-50% of privileged role assignments in the tenant are Global Administrator.$MdInfo" + } else { + $Passed = $false + $ResultMarkdown = "More than 50% of privileged role assignments in the tenant are Global Administrator.$MdInfo" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'High Global Administrator to privileged user ratio' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged access' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'High Global Administrator to privileged user ratio' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21814.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21814.md new file mode 100644 index 000000000000..9892d3765a35 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21814.md @@ -0,0 +1,15 @@ +If an on-premises account is compromised and is synchronized to Microsoft Entra, the attacker might gain access to the tenant as well. This risk increases because on-premises environments typically have more attack surfaces due to older infrastructure and limited security controls. Attackers might also target the infrastructure and tools used to enable connectivity between on-premises environments and Microsoft Entra. These targets might include tools like Microsoft Entra Connect or Active Directory Federation Services, where they could impersonate or otherwise manipulate other on-premises user accounts. + +If privileged cloud accounts are synchronized with on-premises accounts, an attacker who acquires credentials for on-premises can use those same credentials to access cloud resources and move laterally to the cloud environment. + +**Remediation action** + +- [Protecting Microsoft 365 from on-premises attacks](https://learn.microsoft.com/entra/architecture/protect-m365-from-on-premises-attacks?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#specific-security-recommendations) + +For each role with high privileges (assigned permanently or eligible through Microsoft Entra Privileged Identity Management), you should do the following actions: + +- Review the users that have onPremisesImmutableId and onPremisesSyncEnabled set. See [Microsoft Graph API user resource type](https://learn.microsoft.com/graph/api/resources/user?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). +- Create cloud-only user accounts for those individuals and remove their hybrid identity from privileged roles. + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21814.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21814.ps1 new file mode 100644 index 000000000000..6a4324dc6302 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21814.ps1 @@ -0,0 +1,75 @@ +function Invoke-CippTestZTNA21814 { + <# + .SYNOPSIS + Privileged accounts are cloud native identities + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + $TestId = 'ZTNA21814' + + try { + $PrivilegedRoles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles + $Users = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Users' + + $RoleData = [System.Collections.Generic.List[object]]::new() + + foreach ($Role in $PrivilegedRoles) { + $RoleMembers = Get-CippDbRoleMembers -TenantFilter $Tenant -RoleTemplateId $Role.RoletemplateId + $RoleUsers = $RoleMembers | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.user' } + + foreach ($RoleMember in $RoleUsers) { + $UserDetail = $Users | Where-Object { $_.id -eq $RoleMember.id } | Select-Object -First 1 + + if ($UserDetail) { + $RoleData.Add([PSCustomObject]@{ + RoleName = $Role.displayName + UserId = $UserDetail.id + UserDisplayName = $UserDetail.displayName + UserPrincipalName = $UserDetail.userPrincipalName + OnPremisesSyncEnabled = $UserDetail.onPremisesSyncEnabled + }) + } + } + } + + $SyncedUsers = $RoleData | Where-Object { $_.OnPremisesSyncEnabled -eq $true } + $Passed = $SyncedUsers.Count -eq 0 + + if ($Passed) { + $ResultMarkdown = "Validated that standing or eligible privileged accounts are cloud only accounts.`n`n" + } else { + $ResultMarkdown = "This tenant has $($SyncedUsers.Count) privileged users that are synced from on-premise.`n`n" + } + + if ($RoleData.Count -gt 0) { + $ResultMarkdown += "## Privileged Roles`n`n" + $ResultMarkdown += "| Role Name | User | Source | Status |`n" + $ResultMarkdown += "| :--- | :--- | :--- | :---: |`n" + + foreach ($RoleUser in ($RoleData | Sort-Object RoleName, UserDisplayName)) { + if ($RoleUser.OnPremisesSyncEnabled) { + $Type = 'Synced from on-premise' + $Status = '❌' + } else { + $Type = 'Cloud native identity' + $Status = '✅' + } + + $UserLink = "https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/AdministrativeRole/userId/$($RoleUser.UserId)" + $ResultMarkdown += "| $($RoleUser.RoleName) | [$($RoleUser.UserDisplayName)]($UserLink) | $Type | $Status |`n" + } + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Privileged accounts are cloud native identities' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged access' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Privileged accounts are cloud native identities' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21815.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21815.md new file mode 100644 index 000000000000..a2b1ef6e0a15 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21815.md @@ -0,0 +1,10 @@ +Threat actors target privileged accounts because they have access to the data and resources they want. This might include more access to your Microsoft Entra tenant, data in Microsoft SharePoint, or the ability to establish long-term persistence. Without a just-in-time (JIT) activation model, administrative privileges remain continuously exposed, providing attackers with an extended window to operate undetected. Just-in-time access mitigates risk by enforcing time-limited privilege activation with extra controls such as approvals, justification, and Conditional Access policy, ensuring that high-risk permissions are granted only when needed and for a limited duration. This restriction minimizes the attack surface, disrupts lateral movement, and forces adversaries to trigger actions that can be specially monitored and denied when not expected. Without just-in-time access, compromised admin accounts grant indefinite control, letting attackers disable security controls, erase logs, and maintain stealth, amplifying the impact of a compromise. + +Use Microsoft Entra Privileged Identity Management (PIM) to provide time-bound just-in-time access to privileged role assignments. Use access reviews in Microsoft Entra ID Governance to regularly review privileged access to ensure continued need. + +**Remediation action** + +- [Start using Privileged Identity Management](https://learn.microsoft.com/entra/id-governance/privileged-identity-management/pim-getting-started?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Create an access review of Azure resource and Microsoft Entra roles in PIM](https://learn.microsoft.com/entra/id-governance/privileged-identity-management/pim-create-roles-and-resource-roles-review?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21815.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21815.ps1 new file mode 100644 index 000000000000..cb7eeca9b2f4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21815.ps1 @@ -0,0 +1,66 @@ +function Invoke-CippTestZTNA21815 { + <# + .SYNOPSIS + All privileged role assignments are activated just in time and not permanently active + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #tested + $TestId = 'ZTNA21815' + + try { + $PrivilegedRoles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles + $RoleAssignmentScheduleInstances = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RoleAssignmentScheduleInstances' + $Users = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Users' + + $PermanentAssignments = [System.Collections.Generic.List[object]]::new() + + foreach ($Role in $PrivilegedRoles) { + $ActiveAssignments = $RoleAssignmentScheduleInstances | Where-Object { + $_.roleDefinitionId -eq $Role.RoletemplateId -and + $_.assignmentType -eq 'Assigned' -and + $null -eq $_.endDateTime + } + + foreach ($Assignment in $ActiveAssignments) { + $User = $Users | Where-Object { $_.id -eq $Assignment.principalId } | Select-Object -First 1 + if (-not $User) { continue } + + $PermanentAssignments.Add([PSCustomObject]@{ + PrincipalDisplayName = $User.displayName + UserPrincipalName = $User.userPrincipalName + PrincipalId = $User.id + RoleDisplayName = $Role.displayName + PrivilegeType = 'Permanent' + }) + } + } + + if ($PermanentAssignments.Count -eq 0) { + $Passed = $true + $ResultMarkdown = 'No privileged users have permanent role assignments.' + } else { + $Passed = $false + $ResultMarkdown = "Privileged users with permanent role assignments were found.`n`n" + $ResultMarkdown += "## Privileged users with permanent role assignments`n`n" + $ResultMarkdown += "| User | UPN | Role Name | Assignment Type |`n" + $ResultMarkdown += "| :--- | :-- | :-------- | :-------------- |`n" + + foreach ($Result in $PermanentAssignments) { + $PortalLink = "https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/AdministrativeRole/userId/$($Result.PrincipalId)/hidePreviewBanner~/true" + $ResultMarkdown += "| [$($Result.PrincipalDisplayName)]($PortalLink) | $($Result.UserPrincipalName) | $($Result.RoleDisplayName) | $($Result.PrivilegeType) |`n" + } + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'All privileged role assignments are activated just in time and not permanently active' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Privileged access' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'All privileged role assignments are activated just in time and not permanently active' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Privileged access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21816.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21816.md new file mode 100644 index 000000000000..0a29cd021f6a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21816.md @@ -0,0 +1,8 @@ +Threat actors who compromise a permanently assigned privileged account (e.g., Global Administrator or Privileged Role Administrator) gain continuous, uninterrupted access to high-impact directory operations. This extended dwell time enables attackers to more easily establish persistent backdoors, delete critical data and security configurations, disable monitoring systems, and register malicious applications for data exfiltration and lateral movement. These actions can result in full organizational disruption, widespread data compromise, and total loss of operational control over the tenant. Microsoft Entra PIM’s eligible role assignment model narrows escalation pathways, constrains attacker dwell time and provides the option of role elevation approval workflows. + +**Remediation action** +- [Use Privileged Identity Management to manage privileged Microsoft Entra roles](https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/pim-getting-started) +- [Manage emergency access admin accounts](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/security-emergency-access) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21816.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21816.ps1 new file mode 100644 index 000000000000..659a9e6d239d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21816.ps1 @@ -0,0 +1,184 @@ +function Invoke-CippTestZTNA21816 { + <# + .SYNOPSIS + All Microsoft Entra privileged role assignments are managed with PIM + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + $TestId = 'ZTNA21816' + + try { + $GlobalAdminRoleId = '62e90394-69f5-4237-9190-012177145e10' + $PermanentGAUserList = [System.Collections.Generic.List[object]]::new() + $PermanentGAGroupList = [System.Collections.Generic.List[object]]::new() + $NonPIMPrivilegedUsers = [System.Collections.Generic.List[object]]::new() + $NonPIMPrivilegedGroups = [System.Collections.Generic.List[object]]::new() + + $PrivilegedRoles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles + $RoleEligibilitySchedules = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RoleEligibilitySchedules' + $RoleAssignmentScheduleInstances = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RoleAssignmentScheduleInstances' + $Users = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Users' + $Groups = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Groups' + + $EligibleGAs = $RoleEligibilitySchedules | Where-Object { $_.roleDefinitionId -eq $GlobalAdminRoleId } + $EligibleGAUsers = 0 + + foreach ($EligibleGA in $EligibleGAs) { + $Principal = $Users | Where-Object { $_.id -eq $EligibleGA.principalId } | Select-Object -First 1 + if ($Principal) { + $EligibleGAUsers++ + } else { + $GroupPrincipal = $Groups | Where-Object { $_.id -eq $EligibleGA.principalId } | Select-Object -First 1 + if ($GroupPrincipal) { + $GroupMembers = $Users | Where-Object { $_.id -in $GroupPrincipal.members } + $EligibleGAUsers = $EligibleGAUsers + $GroupMembers.Count + } + } + } + + foreach ($Role in $PrivilegedRoles) { + if ($Role.templateId -eq $GlobalAdminRoleId) { continue } + + $RoleMembers = Get-CippDbRoleMembers -TenantFilter $Tenant -RoleTemplateId $Role.RoletemplateId + + foreach ($Member in $RoleMembers) { + $Assignment = $RoleAssignmentScheduleInstances | Where-Object { + $_.principalId -eq $Member.id -and $_.roleDefinitionId -eq $Role.RoletemplateId + } | Select-Object -First 1 + + if (-not $Assignment -or ($Assignment.assignmentType -eq 'Assigned' -and $null -eq $Assignment.endDateTime)) { + $MemberInfo = [PSCustomObject]@{ + displayName = $Member.displayName + userPrincipalName = $Member.userPrincipalName + id = $Member.id + roleTemplateId = $Role.RoletemplateId + roleName = $Role.displayName + assignmentType = if ($Assignment) { $Assignment.assignmentType } else { 'Not in PIM' } + } + + if ($Member.'@odata.type' -eq '#microsoft.graph.user') { + $NonPIMPrivilegedUsers.Add($MemberInfo) + } else { + $NonPIMPrivilegedGroups.Add($MemberInfo) + } + } + } + } + + $GAMembers = Get-CippDbRoleMembers -TenantFilter $Tenant -RoleTemplateId $GlobalAdminRoleId + + foreach ($Member in $GAMembers) { + $Assignment = $RoleAssignmentScheduleInstances | Where-Object { + $_.principalId -eq $Member.id -and $_.roleDefinitionId -eq $GlobalAdminRoleId + } | Select-Object -First 1 + + if (-not $Assignment -or ($Assignment.assignmentType -eq 'Assigned' -and $null -eq $Assignment.endDateTime)) { + $MemberInfo = [PSCustomObject]@{ + displayName = $Member.displayName + userPrincipalName = $Member.userPrincipalName + id = $Member.id + roleTemplateId = $GlobalAdminRoleId + roleName = 'Global Administrator' + assignmentType = if ($Assignment) { $Assignment.assignmentType } else { 'Not in PIM' } + onPremisesSyncEnabled = $null + } + + if ($Member.'@odata.type' -eq '#microsoft.graph.user') { + $UserDetail = $Users | Where-Object { $_.id -eq $Member.id } | Select-Object -First 1 + if ($UserDetail) { + $MemberInfo.onPremisesSyncEnabled = $UserDetail.onPremisesSyncEnabled + } + $PermanentGAUserList.Add($MemberInfo) + } elseif ($Member.'@odata.type' -eq '#microsoft.graph.group') { + $PermanentGAGroupList.Add($MemberInfo) + + $Group = $Groups | Where-Object { $_.id -eq $Member.id } | Select-Object -First 1 + if ($Group) { + $GroupMembers = $Users | Where-Object { $_.id -in $Group.members } + foreach ($GroupMember in $GroupMembers) { + $GroupMemberInfo = [PSCustomObject]@{ + displayName = $GroupMember.displayName + userPrincipalName = $GroupMember.userPrincipalName + id = $GroupMember.id + roleTemplateId = $GlobalAdminRoleId + roleName = 'Global Administrator (via group)' + assignmentType = 'Via Group' + onPremisesSyncEnabled = $GroupMember.onPremisesSyncEnabled + } + $PermanentGAUserList.Add($GroupMemberInfo) + } + } + } + } + } + + $HasPIMUsage = $EligibleGAUsers -gt 0 + $HasNonPIMPrivileged = ($NonPIMPrivilegedUsers.Count + $NonPIMPrivilegedGroups.Count) -gt 0 + $PermanentGACount = $PermanentGAUserList.Count + $CustomStatus = $null + + if (-not $HasPIMUsage) { + $Passed = $false + $ResultMarkdown = 'No eligible Global Administrator assignments found. PIM usage cannot be confirmed.' + } elseif ($HasNonPIMPrivileged) { + $Passed = $false + $ResultMarkdown = 'Found Microsoft Entra privileged role assignments that are not managed with PIM.' + } elseif ($PermanentGACount -gt 2) { + $Passed = $false + $CustomStatus = 'Investigate' + $ResultMarkdown = 'Three or more accounts are permanently assigned the Global Administrator role. Review to determine whether these are emergency access accounts.' + } else { + $Passed = $true + $ResultMarkdown = 'All Microsoft Entra privileged role assignments are managed with PIM with the exception of up to two standing Global Administrator accounts.' + } + + $ResultMarkdown += "`n`n## Assessment summary`n`n" + $ResultMarkdown += "| Metric | Count |`n" + $ResultMarkdown += "| :----- | :---- |`n" + $ResultMarkdown += "| Privileged roles found | $($PrivilegedRoles.Count) |`n" + $ResultMarkdown += "| Eligible Global Administrators | $EligibleGAUsers |`n" + $ResultMarkdown += "| Non-PIM privileged users | $($NonPIMPrivilegedUsers.Count) |`n" + $ResultMarkdown += "| Non-PIM privileged groups | $($NonPIMPrivilegedGroups.Count) |`n" + $ResultMarkdown += "| Permanent Global Administrator users | $($PermanentGAUserList.Count) |`n" + + if ($NonPIMPrivilegedUsers.Count -gt 0 -or $NonPIMPrivilegedGroups.Count -gt 0) { + $ResultMarkdown += "`n## Non-PIM managed privileged role assignments`n`n" + $ResultMarkdown += "| Display name | User principal name | Role name | Assignment type |`n" + $ResultMarkdown += "| :----------- | :------------------ | :-------- | :-------------- |`n" + + foreach ($User in $NonPIMPrivilegedUsers) { + $UserLink = "https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/AdministrativeRole/userId/$($User.id)/hidePreviewBanner~/true" + $ResultMarkdown += "| [$($User.displayName)]($UserLink) | $($User.userPrincipalName) | $($User.roleName) | $($User.assignmentType) |`n" + } + + foreach ($Group in $NonPIMPrivilegedGroups) { + $GroupLink = "https://entra.microsoft.com/#view/Microsoft_AAD_IAM/GroupDetailsMenuBlade/~/RolesAndAdministrators/groupId/$($Group.id)/menuId/" + $ResultMarkdown += "| [$($Group.displayName)]($GroupLink) | N/A (Group) | $($Group.roleName) | $($Group.assignmentType) |`n" + } + } + + if ($PermanentGAUserList.Count -gt 0) { + $ResultMarkdown += "`n## Permanent Global Administrator assignments`n`n" + $ResultMarkdown += "| Display name | User principal name | Assignment type | On-Premises synced |`n" + $ResultMarkdown += "| :----------- | :------------------ | :-------------- | :----------------- |`n" + + foreach ($User in $PermanentGAUserList) { + $SyncStatus = if ($null -ne $User.onPremisesSyncEnabled) { $User.onPremisesSyncEnabled } else { 'N/A' } + $UserLink = "https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/AdministrativeRole/userId/$($User.id)/hidePreviewBanner~/true" + $ResultMarkdown += "| [$($User.displayName)]($UserLink) | $($User.userPrincipalName) | $($User.assignmentType) | $SyncStatus |`n" + } + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'All Microsoft Entra privileged role assignments are managed with PIM' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Identity' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'All Microsoft Entra privileged role assignments are managed with PIM' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Identity' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21817.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21817.md new file mode 100644 index 000000000000..b0b563352276 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21817.md @@ -0,0 +1,13 @@ +Without approval workflows, threat actors who compromise Global Administrator credentials through phishing, credential stuffing, or other authentication bypass techniques can immediately activate the most privileged role in a tenant without any other verification or oversight. Privileged Identity Management (PIM) allows eligible role activations to become active within seconds, so compromised credentials can allow near-instant privilege escalation. Once activated, threat actors can use the Global Administrator role to use the following attack paths to gain persistent access to the tenant: +- Create new privileged accounts +- Modify Conditional Access policies to exclude those new accounts +- Establish alternate authentication methods such as certificate-based authentication or application registrations with high privileges + +The Global Administrator role provides access to administrative features in Microsoft Entra ID and services that use Microsoft Entra identities, including Microsoft Defender XDR, Microsoft Purview, Exchange Online, and SharePoint Online. Without approval gates, threat actors can rapidly escalate to complete tenant takeover, exfiltrating sensitive data, compromising all user accounts, and establishing long-term backdoors through service principals or federation modifications that persist even after the initial compromise is detected. + +**Remediation action** + +- [Configure role settings to require approval for Global Administrator activation](https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/pim-how-to-change-default-settings?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Set up approval workflow for privileged roles](https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/pim-approval-workflow?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21817.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21817.ps1 new file mode 100644 index 000000000000..cfe4f469749a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21817.ps1 @@ -0,0 +1,80 @@ +function Invoke-CippTestZTNA21817 { + <# + .SYNOPSIS + Global Administrator role activation triggers an approval workflow + #> + param($Tenant) + + try { + $RoleManagementPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RoleManagementPolicies' + + if (-not $RoleManagementPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21817' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Global Administrator role activation triggers an approval workflow' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + return + } + + $globalAdminRoleId = '62e90394-69f5-4237-9190-012177145e10' + + $globalAdminPolicy = $RoleManagementPolicies | Where-Object { + $_.scopeId -eq '/' -and + $_.scopeType -eq 'DirectoryRole' -and + $_.roleDefinitionId -eq $globalAdminRoleId + } + + $tableRows = '' + $result = $false + + if ($globalAdminPolicy) { + $approvalRule = $globalAdminPolicy.rules | Where-Object { $_.id -like '*Approval_EndUser_Assignment*' } + + if ($approvalRule -and $approvalRule.setting.isApprovalRequired -eq $true) { + $approverCount = 0 + foreach ($stage in $approvalRule.setting.approvalStages) { + $approverCount = $approverCount + ($stage.primaryApprovers | Measure-Object).Count + } + + if ($approverCount -gt 0) { + $result = $true + $testResultMarkdown = "✅ **Pass**: Approval required with $approverCount primary approver(s) configured.`n`n%TestResult%" + $primaryApprovers = ($approvalRule.setting.approvalStages[0].primaryApprovers.description -join ', ') + $escalationApprovers = ($approvalRule.setting.approvalStages[0].escalationApprovers.description -join ', ') + $tableRows = "| Yes | $primaryApprovers | $escalationApprovers |`n" + } else { + $testResultMarkdown = "❌ **Fail**: Approval required but no approvers configured.`n`n%TestResult%" + $tableRows = "| Yes | None | None |`n" + } + } else { + $testResultMarkdown = "❌ **Fail**: Approval not required for Global Administrator role activation.`n`n%TestResult%" + $tableRows = "| No | N/A | N/A |`n" + } + } else { + $testResultMarkdown = "❌ **Fail**: No PIM policy found for Global Administrator role.`n`n%TestResult%" + $tableRows = "| N/A | N/A | N/A |`n" + } + + $passed = $result + + $reportTitle = 'Global Administrator role activation and approval workflow' + + $formatTemplate = @' + +## {0} + + +| Approval Required | Primary Approvers | Escalation Approvers | +| :---------------- | :---------------- | :------------------- | +{1} + +'@ + + $mdInfo = $formatTemplate -f $reportTitle, $tableRows + $testResultMarkdown = $testResultMarkdown -replace '%TestResult%', $mdInfo + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21817' -TestType 'Identity' -Status $(if ($passed) { 'Passed' } else { 'Failed' }) -ResultMarkdown $testResultMarkdown -Risk 'High' -Name 'Global Administrator role activation triggers an approval workflow' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21817' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Global Administrator role activation triggers an approval workflow' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21818.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21818.md new file mode 100644 index 000000000000..4432e91f337a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21818.md @@ -0,0 +1,8 @@ +Organizations without proper activation alerts for highly privileged roles lack visibility into when users access these critical permissions. Threat actors can exploit this monitoring gap to perform privilege escalation by activating highly privileged roles without detection, then establish persistence through admin account creation or security policy modifications. The absence of real-time alerts enables attackers to conduct lateral movement, modify audit configurations, and disable security controls without triggering immediate response procedures. + +**Remediation action** + +- [Configure Microsoft Entra role settings in Privileged Identity Management](https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/pim-how-to-change-default-settings?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#require-justification-on-activation) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21818.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21818.ps1 new file mode 100644 index 000000000000..b739f447cf85 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21818.ps1 @@ -0,0 +1,119 @@ +function Invoke-CippTestZTNA21818 { + <# + .SYNOPSIS + Privileged role activations have monitoring and alerting configured + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + $TestId = 'ZTNA21818' + + try { + $PrivilegedRoles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles + $RoleManagementPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RoleManagementPolicies' + + $Notifications = @( + [PSCustomObject]@{ + NotificationScenario = 'Send notifications when members are assigned as eligible to this role' + NotificationType = 'Role assignment alert' + RuleId = 'Notification_Admin_Admin_Eligibility' + } + [PSCustomObject]@{ + NotificationScenario = 'Send notifications when members are assigned as eligible to this role' + NotificationType = 'Notification to the assigned user (assignee)' + RuleId = 'Notification_Requestor_Admin_Eligibility' + } + [PSCustomObject]@{ + NotificationScenario = 'Send notifications when members are assigned as eligible to this role' + NotificationType = 'Request to approve a role assignment renewal/extension' + RuleId = 'Notification_Approver_Admin_Eligibility' + } + [PSCustomObject]@{ + NotificationScenario = 'Send notifications when members are assigned as active to this role' + NotificationType = 'Role assignment alert' + RuleId = 'Notification_Admin_Admin_Assignment' + } + [PSCustomObject]@{ + NotificationScenario = 'Send notifications when members are assigned as active to this role' + NotificationType = 'Notification to the assigned user (assignee)' + RuleId = 'Notification_Requestor_Admin_Assignment' + } + [PSCustomObject]@{ + NotificationScenario = 'Send notifications when members are assigned as active to this role' + NotificationType = 'Request to approve a role assignment renewal/extension' + RuleId = 'Notification_Approver_Admin_Assignment' + } + [PSCustomObject]@{ + NotificationScenario = 'Send notifications when eligible members activate this role' + NotificationType = 'Role activation alert' + RuleId = 'Notification_Admin_EndUser_Assignment' + } + [PSCustomObject]@{ + NotificationScenario = 'Send notifications when eligible members activate this role' + NotificationType = 'Notification to activated user (requestor)' + RuleId = 'Notification_Requestor_EndUser_Assignment' + } + [PSCustomObject]@{ + NotificationScenario = 'Send notifications when eligible members activate this role' + NotificationType = 'Request to approve an activation' + RuleId = 'Notification_Approver_EndUser_Assignment' + } + ) + + $NotificationRules = [System.Collections.Generic.List[object]]::new() + $Passed = $true + $ExitLoop = $false + + foreach ($Role in $PrivilegedRoles) { + $Policy = $RoleManagementPolicies | Where-Object { + $_.scopeId -eq '/' -and $_.scopeType -eq 'DirectoryRole' -and $_.roleDefinitionId -eq $Role.id + } | Select-Object -First 1 + + if (-not $Policy) { continue } + + foreach ($NotificationRuleId in $Notifications.RuleId) { + $Rule = $Policy.rules | Where-Object { $_.id -eq $NotificationRuleId } | Select-Object -First 1 + + if ($Rule) { + $RuleWithRole = $Rule | Select-Object *, @{Name = 'RoleDisplayName'; Expression = { $Role.displayName } } + $NotificationRules.Add($RuleWithRole) + + if ($Rule.isDefaultRecipientsEnabled -eq $true -and ($Rule.notificationRecipients.Count -eq 0 -or $null -eq $Rule.notificationRecipients)) { + $Passed = $false + $ExitLoop = $true + break + } + } + } + + if ($ExitLoop) { break } + } + + if ($Passed) { + $ResultMarkdown = "Role notifications are properly configured for privileged role.`n`n" + } else { + $ResultMarkdown = "Role notifications are not properly configured.`n`nNote: To save time, this check stops when it finds the first role that does not have notifications. After fixing this role and all other roles, we recommend running the check again to verify.`n`n" + } + + $ResultMarkdown += "## Notifications for high privileged roles`n`n" + $ResultMarkdown += "| Role Name | Notification Scenario | Notification Type | Default Recipients Enabled | Additional Recipients |`n" + $ResultMarkdown += "| :-------- | :-------------------- | :---------------- | :------------------------- | :-------------------- |`n" + + foreach ($NotificationRule in $NotificationRules) { + $MatchingNotification = $Notifications | Where-Object { $_.RuleId -eq $NotificationRule.id } + $Recipients = if ($NotificationRule.notificationRecipients) { ($NotificationRule.notificationRecipients -join ', ') } else { '' } + $ResultMarkdown += "| $($NotificationRule.roleDisplayName) | $($MatchingNotification.notificationScenario) | $($MatchingNotification.notificationType) | $($NotificationRule.isDefaultRecipientsEnabled) | $Recipients |`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Privileged role activations have monitoring and alerting configured' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Monitoring' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Privileged role activations have monitoring and alerting configured' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Monitoring' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21819.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21819.md new file mode 100644 index 000000000000..7f99f06ac13a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21819.md @@ -0,0 +1,8 @@ +Without activation alerts for Global Administrator role assignments, threat actors can perform role activation without detection, allowing them to establish persistence in the environment. When Global Administrator roles are activated without notification mechanisms, threat actors who have compromised accounts can escalate privileges, bypassing security monitoring. The absence of alerts creates a blind spot where threat actors can activate the most privileged role in the tenant and perform actions such as creating backdoor accounts, modifying security policies, or accessing sensitive data without immediate detection. This lack of visibility allows threat actors to maintain access and execute their objectives while appearing to use legitimate administrative functions, making it difficult for security teams to distinguish between authorized and unauthorized privilege escalation activities. + +**Remediation action** + +- [Configure Microsoft Entra role settings in Privileged Identity Management](https://learn.microsoft.com/entra/id-governance/privileged-identity-management/pim-how-to-change-default-settings) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21819.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21819.ps1 new file mode 100644 index 000000000000..8fe1afbea01c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21819.ps1 @@ -0,0 +1,85 @@ +function Invoke-CippTestZTNA21819 { + <# + .SYNOPSIS + Activation alert for Global Administrator role assignment + #> + param($Tenant) + #Tested + $TestId = 'ZTNA21819' + + try { + # Get Global Administrator role (template ID: 62e90394-69f5-4237-9190-012177145e10) + $Roles = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Roles' + $GlobalAdminRole = $Roles | Where-Object { $_.roleTemplateId -eq '62e90394-69f5-4237-9190-012177145e10' } + + if (-not $GlobalAdminRole) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'Activation alert for Global Administrator role assignment' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged access' + return + } + + # Get role management policy for Global Admin + $RoleManagementPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RoleManagementPolicies' + $GlobalAdminPolicy = $RoleManagementPolicies | Where-Object { + $_.scopeId -eq '/' -and $_.scopeType -eq 'DirectoryRole' -and $_.effectiveRules.target.targetObjects.id -contains $GlobalAdminRole.id + } + + $Passed = 'Failed' + $IsDefaultRecipientsEnabled = 'N/A' + $Recipients = 'N/A' + + if ($GlobalAdminPolicy) { + # Find the notification rule for requestor end-user assignment + $NotificationRule = $GlobalAdminPolicy.effectiveRules | Where-Object { + $_.id -like '*Notification_Requestor_EndUser_Assignment*' + } + + if ($NotificationRule) { + $IsDefaultRecipientsEnabled = $NotificationRule.isDefaultRecipientsEnabled + $NotificationRecipients = $NotificationRule.notificationRecipients + + if ($NotificationRecipients) { + $Recipients = ($NotificationRecipients -join ', ') + } + + if ($NotificationRecipients -or $IsDefaultRecipientsEnabled) { + $Passed = 'Passed' + } + } + } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = "Activation alerts are configured for Global Administrator role.`n`n" + } else { + $ResultMarkdown = "Activation alerts are missing or improperly configured for Global Administrator role.`n`n" + } + + $ResultMarkdown += "| Role display name | Default recipients | Additional recipients |`n" + $ResultMarkdown += "| :---------------- | :----------------- | :------------------- |`n" + + $RoleLink = 'https://entra.microsoft.com/#view/Microsoft_AAD_IAM/RolesManagementMenuBlade/~/AllRoles' + $DisplayNameLink = "[$($GlobalAdminRole.displayName)]($RoleLink)" + + $DefaultRecipientsStatus = if ($IsDefaultRecipientsEnabled -eq $true) { + '✅ Enabled' + } elseif ($IsDefaultRecipientsEnabled -eq $false) { + '❌ Disabled' + } else { + 'N/A' + } + + $RecipientsDisplay = if ([string]::IsNullOrEmpty($Recipients) -or $Recipients -eq 'N/A') { + '-' + } else { + $Recipients + } + + $ResultMarkdown += "| $DisplayNameLink | $DefaultRecipientsStatus | $RecipientsDisplay |`n" + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Low' -Name 'Activation alert for Global Administrator role assignment' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged access' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'Activation alert for Global Administrator role assignment' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21820.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21820.md new file mode 100644 index 000000000000..e6327b29dd4b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21820.md @@ -0,0 +1,6 @@ +Without activation alerts for privileged role assignments, threat actors who compromise user credentials through phishing, password attacks, or credential stuffing can activate privileged roles without detection. When privileged roles are activated without notification mechanisms, security teams lack visibility into when elevated permissions are being used, allowing threat actors to operate within the environment undetected during the initial access phase. During the persistence phase, threat actors can leverage activated privileged roles to create backdoors, modify security configurations, or establish additional access methods without triggering security alerts. The lack of activation notifications prevents security teams from correlating privileged role usage with other security events, enabling threat actors to conduct lateral movement and privilege escalation activities while maintaining stealth. + +**Remediation action** +- [Configure notifications for privileged roles](https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/pim-how-to-change-default-settings#require-justification-on-active-assignment) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21820.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21820.ps1 new file mode 100644 index 000000000000..88b626c023dd --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21820.ps1 @@ -0,0 +1,108 @@ +function Invoke-CippTestZTNA21820 { + <# + .SYNOPSIS + Activation alert for all privileged role assignments + #> + param($Tenant) + #Tested + $TestId = 'ZTNA21820' + + try { + # Get all privileged roles + $PrivilegedRoles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles + + if (-not $PrivilegedRoles -or $PrivilegedRoles.Count -eq 0) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'Activation alert for all privileged role assignments' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged access' + return + } + + # Get all role management policies + $RoleManagementPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RoleManagementPolicies' + + # Build hashtable for quick policy lookup by role ID + $PolicyByRoleId = @{} + foreach ($Policy in $RoleManagementPolicies) { + if ($Policy.scopeId -eq '/' -and $Policy.scopeType -eq 'DirectoryRole') { + foreach ($RoleId in $Policy.effectiveRules.target.targetObjects.id) { + if ($RoleId) { + $PolicyByRoleId[$RoleId] = $Policy + } + } + } + } + + $RolesWithIssues = [System.Collections.Generic.List[object]]::new() + $Passed = 'Passed' + + foreach ($Role in $PrivilegedRoles) { + $Policy = $PolicyByRoleId[$Role.id] + + if (-not $Policy) { + $RolesWithIssues.Add(@{ + Role = $Role + Issue = 'No PIM policy assignment found' + IsDefaultRecipientsEnabled = 'N/A' + NotificationRecipients = 'N/A' + }) + continue + } + + # Find notification rule for requestor end-user assignment + $NotificationRule = $Policy.effectiveRules | Where-Object { + $_.id -like '*Notification_Requestor_EndUser_Assignment*' + } + + if ($NotificationRule) { + $IsDefaultRecipientsEnabled = $NotificationRule.isDefaultRecipientsEnabled + $NotificationRecipients = $NotificationRule.notificationRecipients + + # Check if alert is properly configured + if ($IsDefaultRecipientsEnabled -eq $true -and ((-not $NotificationRecipients) -or $NotificationRecipients.Count -eq 0)) { + $Passed = 'Failed' + $RolesWithIssues.Add(@{ + Role = $Role + IsDefaultRecipientsEnabled = $IsDefaultRecipientsEnabled + NotificationRecipients = 'N/A' + }) + # Exit early on first issue for performance + break + } + } + } + + if ($RolesWithIssues.Count -eq 0) { + $ResultMarkdown = 'Activation alerts are configured for privileged role assignments.' + } else { + $ResultMarkdown = 'Activation alerts are missing or improperly configured for privileged roles.' + } + + if ($RolesWithIssues.Count -gt 0) { + $ResultMarkdown += "`n`n## Roles with missing or misconfigured alerts`n`n" + $ResultMarkdown += "| Role display name | Default recipients | Additional recipients |`n" + $ResultMarkdown += "| :---------------- | :----------------- | :------------------- |`n" + + foreach ($RoleIssue in $RolesWithIssues) { + $Role = $RoleIssue.Role + $RoleLink = 'https://entra.microsoft.com/#view/Microsoft_AAD_IAM/RolesManagementMenuBlade/~/AllRoles' + $DisplayNameLink = "[$($Role.displayName)]($RoleLink)" + + $DefaultRecipientsStatus = if ($RoleIssue.IsDefaultRecipientsEnabled -eq $true) { + 'Enabled' + } else { + 'Disabled' + } + $Recipients = $RoleIssue.NotificationRecipients + + $ResultMarkdown += "| $DisplayNameLink | $DefaultRecipientsStatus | $Recipients |`n" + } + $ResultMarkdown += "`n`n*Not all misconfigured roles may be listed. For performance reasons, this assessment stops at the first detected issue.*`n" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Low' -Name 'Activation alert for all privileged role assignments' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged access' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'Activation alert for all privileged role assignments' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21821.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21821.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21821.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21822.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21822.md new file mode 100644 index 000000000000..506922d1426c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21822.md @@ -0,0 +1,8 @@ +Without limiting guest access to approved tenants, threat actors can exploit unrestricted guest access to establish initial access through compromised external accounts or by creating accounts in untrusted tenants. Organizations can configure an allowlist or blocklist to control B2B collaboration invitations from specific organizations, and without these controls, threat actors can leverage social engineering techniques to obtain invitations from legitimate internal users. Once threat actors gain guest access through unrestricted domains, they can perform discovery activities to enumerate internal resources, users, and applications that guest accounts can access. The compromised guest account then serves as a persistent foothold, allowing threat actors to execute collection activities against accessible SharePoint sites, Teams channels, and other resources granted to guest users. From this position, threat actors can attempt lateral movement by exploiting trust relationships between the compromised tenant and partner organizations, or by leveraging guest permissions to access sensitive data that can be used for further credential compromise or business email compromise attacks. + +**Remediation action** + +- [Configure Domain-Based Allow or Deny Lists](https://learn.microsoft.com/en-us/entra/external-id/allow-deny-list) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21822.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21822.ps1 new file mode 100644 index 000000000000..f9a9e2427c23 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21822.ps1 @@ -0,0 +1,67 @@ +function Invoke-CippTestZTNA21822 { + <# + .SYNOPSIS + Guest access is limited to approved tenants + #> + param($Tenant) + #Tested + $TestId = 'ZTNA21822' + + try { + # Get B2B management policy from cache + $B2BManagementPolicyObject = New-CIPPDbRequest -TenantFilter $Tenant -Type 'B2BManagementPolicy' + + $Passed = 'Failed' + $AllowedDomains = @() + $BlockedDomains = @() + + if ($B2BManagementPolicyObject -and $B2BManagementPolicyObject.definition) { + $B2BManagementPolicy = ($B2BManagementPolicyObject.definition | ConvertFrom-Json).B2BManagementPolicy + $AllowedDomains = $B2BManagementPolicy.InvitationsAllowedAndBlockedDomainsPolicy.AllowedDomains + $BlockedDomains = $B2BManagementPolicy.InvitationsAllowedAndBlockedDomainsPolicy.BlockedDomains + + if ($AllowedDomains -and $AllowedDomains.Count -gt 0) { + $Passed = 'Passed' + } + } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = "Guest access is limited to approved tenants.`n" + } else { + $ResultMarkdown = "Guest access is not limited to approved tenants.`n" + } + + $ResultMarkdown += "`n`n## [Collaboration restrictions](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/CompanyRelationshipsMenuBlade/~/Settings/menuId/)`n`n" + $ResultMarkdown += 'The tenant is configured to: ' + + if ($Passed -eq 'Passed') { + $ResultMarkdown += "**Allow invitations only to the specified domains (most restrictive)** ✅`n" + } else { + if ($BlockedDomains -and $BlockedDomains.Count -gt 0) { + $ResultMarkdown += "**Deny invitations to the specified domains** ❌`n" + } else { + $ResultMarkdown += "**Allow invitations to be sent to any domain (most inclusive)** ❌`n" + } + } + + if (($AllowedDomains -and $AllowedDomains.Count -gt 0) -or ($BlockedDomains -and $BlockedDomains.Count -gt 0)) { + $ResultMarkdown += "| Domain | Status |`n" + $ResultMarkdown += "| :--- | :--- |`n" + + foreach ($Domain in $AllowedDomains) { + $ResultMarkdown += "| $Domain | ✅ Allowed |`n" + } + + foreach ($Domain in $BlockedDomains) { + $ResultMarkdown += "| $Domain | ❌ Blocked |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Guest access is limited to approved tenants' -UserImpact 'Medium' -ImplementationEffort 'High' -Category 'Access control' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Guest access is limited to approved tenants' -UserImpact 'Medium' -ImplementationEffort 'High' -Category 'Access control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21823.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21823.md new file mode 100644 index 000000000000..577af3c21731 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21823.md @@ -0,0 +1,10 @@ +When guest self-service sign-up is enabled, threat actors can exploit it to establish unauthorized access by creating legitimate guest accounts without requiring approval from authorized personnel. These accounts can be scoped to specific services to reduce detection and effectively bypass invitation-based controls that validate external user legitimacy. + +Once created, self-provisioned guest accounts provide persistent access to organizational resources and applications. Threat actors can use them to conduct reconnaissance activities to map internal systems, identify sensitive data repositories, and plan further attack vectors. This persistence allows adversaries to maintain access across restarts, credential changes, and other interruptions, while the guest account itself offers a seemingly legitimate identity that might evade security monitoring focused on external threats. + +Additionally, compromised guest identities can be used to establish credential persistence and potentially escalate privileges. Attackers can exploit trust relationships between guest accounts and internal resources, or use the guest account as a staging ground for lateral movement toward more privileged organizational assets. + +**Remediation action** +- [Configure guest self-service sign-up With Microsoft Entra External ID](https://learn.microsoft.com/en-us/entra/external-id/external-collaboration-settings-configure?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#to-configure-guest-self-service-sign-up) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21823.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21823.ps1 new file mode 100644 index 000000000000..24ddb005d5bb --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21823.ps1 @@ -0,0 +1,34 @@ +function Invoke-CippTestZTNA21823 { + <# + .SYNOPSIS + Guest self-service sign-up via user flow is disabled + #> + param($Tenant) + + $TestId = 'ZTNA21823' + #Tested + try { + # Get authentication flows policy from cache + $AuthFlowPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationFlowsPolicy' + + if (-not $AuthFlowPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Guest self-service sign-up via user flow is disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'External collaboration' + return + } + + $Passed = if ($AuthFlowPolicy.selfServiceSignUp.isEnabled -eq $false) { 'Passed' } else { 'Failed' } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = "[Guest self-service sign up via user flow](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/CompanyRelationshipsMenuBlade/~/Settings/menuId/ExternalIdentitiesGettingStarted) is disabled.`n" + } else { + $ResultMarkdown = "[Guest self-service sign up via user flow](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/CompanyRelationshipsMenuBlade/~/Settings/menuId/ExternalIdentitiesGettingStarted) is enabled.`n" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Guest self-service sign-up via user flow is disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'External collaboration' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Guest self-service sign-up via user flow is disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'External collaboration' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21824.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21824.md new file mode 100644 index 000000000000..b6f19e7039e7 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21824.md @@ -0,0 +1,12 @@ +Guest accounts with extended sign-in sessions increase the risk surface area that threat actors can exploit. When guest sessions persist beyond necessary timeframes, threat actors often attempt to gain initial access through credential stuffing, password spraying, or social engineering attacks. Once they gain access, they can maintain unauthorized access for extended periods without reauthentication challenges. These compromised and extended sessions: + +- Allow unauthorized access to Microsoft Entra artifacts, enabling threat actors to identify sensitive resources and map organizational structures. +- Allow threat actors to persist within the network by using legitimate authentication tokens, making detection more challenging as the activity appears as typical user behavior. +- Provides threat actors with a longer window of time to escalate privileges through techniques like accessing shared resources, discovering more credentials, or exploiting trust relationships between systems. + +Without proper session controls, threat actors can achieve lateral movement across the organization's infrastructure, accessing critical data and systems that extend far beyond the original guest account's intended scope of access. + +**Remediation action** +- [Configure adaptive session lifetime policies](https://learn.microsoft.com/en-us/entra/identity/conditional-access/howto-conditional-access-session-lifetime?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) so sign-in frequency policies have shorter live sign-in sessions. +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21824.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21824.ps1 new file mode 100644 index 000000000000..a6993c280c02 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21824.ps1 @@ -0,0 +1,86 @@ +function Invoke-CippTestZTNA21824 { + <# + .SYNOPSIS + Guests don't have long lived sign-in sessions + #> + param($Tenant) + #Tested + try { + $allCAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $allCAPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21824' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name "Guests don't have long lived sign-in sessions" -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Conditional Access' + return + } + + $filteredCAPolicies = $allCAPolicies | Where-Object { + ($null -ne $_.conditions.users.includeGuestsOrExternalUsers) -and + ($_.state -in @('enabled', 'enabledForReportingButNotEnforced')) -and + ($null -eq $_.grantControls.termsOfUse -or $_.grantControls.termsOfUse.Count -eq 0) + } + + $matchedPolicies = $filteredCAPolicies | Where-Object { + $signInFrequency = $_.sessionControls.signInFrequency + if ($signInFrequency -and $signInFrequency.isEnabled) { + ($signInFrequency.type -eq 'hours' -and $signInFrequency.value -le 24) -or + ($signInFrequency.type -eq 'days' -and $signInFrequency.value -eq 1) -or + ($null -eq $signInFrequency.type -and $signInFrequency.frequencyInterval -eq 'everyTime') + } else { + $false + } + } + + $passed = if ($filteredCAPolicies.Count -eq $matchedPolicies.Count) { 'Passed' } else { 'Failed' } + + if ($passed -eq 'Passed') { + $testResultMarkdown = "Guests don't have long lived sign-in sessions." + } else { + $testResultMarkdown = 'Guests do have long lived sign-in sessions.' + } + + $reportTitle = 'Sign-in frequency policies' + + if ($filteredCAPolicies -and $filteredCAPolicies.Count -gt 0) { + $mdInfo = "`n## $reportTitle`n`n" + $mdInfo += "| Policy Name | Sign-in Frequency | Status |`n" + $mdInfo += "| :---------- | :---------------- | :----- |`n" + + foreach ($filteredCAPolicy in $filteredCAPolicies) { + $policyName = $filteredCAPolicy.DisplayName + + $signInFrequency = $filteredCAPolicy.sessionControls.signInFrequency + switch ($signInFrequency.type) { + 'hours' { + $signInFreqValue = "$($signInFrequency.value) hours" + } + 'days' { + $signInFreqValue = "$($signInFrequency.value) days" + } + default { + if ($signInFrequency.frequencyInterval -eq 'everyTime') { + $signInFreqValue = 'Every time' + } else { + $signInFreqValue = 'Not configured' + } + } + } + + $status = if ($matchedPolicies -and $matchedPolicies.Id -contains $filteredCAPolicy.Id) { + '✅' + } else { + '❌' + } + + $mdInfo += "| $policyName | $signInFreqValue | $status |`n" + } + + $testResultMarkdown = $testResultMarkdown + $mdInfo + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21824' -TestType 'Identity' -Status $passed -ResultMarkdown $testResultMarkdown -Risk 'Medium' -Name "Guests don't have long lived sign-in sessions" -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Conditional Access' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21824' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name "Guests don't have long lived sign-in sessions" -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Conditional Access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21825.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21825.md new file mode 100644 index 000000000000..25e38ec74568 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21825.md @@ -0,0 +1,15 @@ +When privileged users are allowed to maintain long-lived sign-in sessions without periodic reauthentication, threat actors can gain extended windows of opportunity to exploit compromised credentials or hijack active sessions. Once a privileged account is compromised through techniques like credential theft, phishing, or session fixation, extended session timeouts allow threat actors to maintain persistence within the environment for prolonged periods. With long-lived sessions, threat actors can perform lateral movement across systems, escalate privileges further, and access sensitive resources without triggering another authentication challenge. The extended session duration also increases the window for session hijacking attacks, where threat actors can steal session tokens and impersonate the privileged user. Once a threat actor is established in a privileged session, they can: + +- Create backdoor accounts +- Modify security policies +- Access sensitive data +- Establish more persistence mechanisms + +The lack of periodic reauthentication requirements means that even if the original compromise is detected, the threat actor might continue operating undetected using the hijacked privileged session until the session naturally expires or the user manually signs out. + +**Remediation action** + +- [Learn about Conditional Access adaptive session lifetime policies](https://learn.microsoft.com/en-us/entra/identity/conditional-access/concept-session-lifetime?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Configure sign-in frequency for privileged users with Conditional Access policies ](https://learn.microsoft.com/en-us/entra/identity/conditional-access/howto-conditional-access-session-lifetime?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21825.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21825.ps1 new file mode 100644 index 000000000000..2ad49609f454 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21825.ps1 @@ -0,0 +1,107 @@ +function Invoke-CippTestZTNA21825 { + <# + .SYNOPSIS + Privileged users have short-lived sign-in sessions + #> + param($Tenant) + + $TestId = 'ZTNA21825' + #Tested + try { + # Get privileged roles + $PrivilegedRoles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles + + if (-not $PrivilegedRoles -or $PrivilegedRoles.Count -eq 0) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Privileged users have short-lived sign-in sessions' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Access control' + return + } + + # Get Conditional Access policies + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + # Filter to policies targeting roles + $RoleScopedPolicies = $CAPolicies | Where-Object { + $_.conditions.users.includeRoles -and $_.conditions.users.includeRoles.Count -gt 0 + } + + # Recommended: Sign-in frequency should be 4 hours or less for privileged users + $RecommendedMaxHours = 4 + + $ResultMarkdown = "## Privileged User Sign-In Sessions`n`n" + $ResultMarkdown += "**Total Privileged Roles Found:** $($PrivilegedRoles.Count)`n`n" + $ResultMarkdown += "**CA Policies Targeting Roles:** $($RoleScopedPolicies.Count)`n`n" + $ResultMarkdown += "**Recommended Sign In Session Hours:** $RecommendedMaxHours`n`n" + $ResultMarkdown += "### Conditional Access Policies by Privileged Role`n`n" + + $AllRolesCovered = $true + + foreach ($Role in $PrivilegedRoles) { + $ResultMarkdown += "#### $($Role.displayName)`n`n" + + # Get CA policies assigned to this role + $AssignedPolicies = $CAPolicies | Where-Object { $_.conditions.users.includeRoles -contains $Role.id } + $EnabledPolicies = $AssignedPolicies | Where-Object { $_.state -eq 'enabled' } + + if ($EnabledPolicies.Count -gt 0) { + # Check if at least one compliant enabled policy covers this role + $CompliantForRole = $EnabledPolicies | Where-Object { + $_.sessionControls.signInFrequency -and + $_.sessionControls.signInFrequency.type -eq 'hours' -and + $_.sessionControls.signInFrequency.value -le $RecommendedMaxHours + } + + $RoleStatus = if ($CompliantForRole.Count -gt 0) { + '✅ Covered' + } else { + '❌ Not Covered'; $AllRolesCovered = $false + } + $ResultMarkdown += "**Status:** $RoleStatus`n`n" + + $ResultMarkdown += "| Policy Name | Sign-In Frequency | Compliant |`n" + $ResultMarkdown += "| :--- | :--- | :--- |`n" + + foreach ($Policy in $EnabledPolicies) { + $FreqValue = 'Not Configured' + $IsCompliant = '❌' + + if ($Policy.sessionControls.signInFrequency) { + $Freq = $Policy.sessionControls.signInFrequency + $FreqValue = "$($Freq.value) $($Freq.type)" + + if ($Freq.type -eq 'hours' -and $Freq.value -le $RecommendedMaxHours) { + $IsCompliant = '✅' + } elseif ($Freq.type -eq 'hours') { + $IsCompliant = "⚠️ ($($Freq.value)h > $($RecommendedMaxHours)h)" + } else { + $IsCompliant = '❌ (Days not recommended)' + } + } + + $PolicyLink = "https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/PolicyBlade/policyId/$($Policy.id)" + $ResultMarkdown += "| [$($Policy.displayName)]($PolicyLink) | $FreqValue | $IsCompliant |`n" + } + $ResultMarkdown += "`n" + } else { + $ResultMarkdown += "**Status:** ❌ No CA policies assigned`n`n" + $ResultMarkdown += "*No Conditional Access policies target this privileged role.*`n`n" + $AllRolesCovered = $false + } + } + + $Passed = if ($AllRolesCovered -and $PrivilegedRoles.Count -gt 0) { 'Passed' } else { 'Failed' } + + if ($Passed -eq 'Passed') { + $ResultMarkdown += "✅ **All privileged roles are covered by enabled policies enforcing short-lived sessions (≤$RecommendedMaxHours hours).**`n" + } else { + $ResultMarkdown += "❌ **Not all privileged roles are covered by compliant sign-in frequency controls.**`n" + $ResultMarkdown += "`n**Recommendation:** Configure Conditional Access policies to enforce sign-in frequency of $RecommendedMaxHours hours or less for ALL privileged roles.`n" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Privileged users have short-lived sign-in sessions' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Access control' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Privileged users have short-lived sign-in sessions' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Access control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21828.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21828.md new file mode 100644 index 000000000000..5f23b96e0682 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21828.md @@ -0,0 +1,8 @@ +Blocking authentication transfer in Microsoft Entra ID is a critical security control. It helps protect against token theft and replay attacks by preventing the use of device tokens to silently authenticate on other devices or browsers. When authentication transfer is enabled, a threat actor who gains access to one device can access resources to nonapproved devices, bypassing standard authentication and device compliance checks. When administrators block this flow, organizations can ensure that each authentication request must originate from the original device, maintaining the integrity of the device compliance and user session context. + +**Remediation action** + +- [Deploy a Conditional Access policy to block authentication transfer](https://learn.microsoft.com/en-us/entra/identity/conditional-access/policy-block-authentication-flows?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#authentication-transfer-policies) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21828.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21828.ps1 new file mode 100644 index 000000000000..8fa1c672570e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21828.ps1 @@ -0,0 +1,56 @@ +function Invoke-CippTestZTNA21828 { + <# + .SYNOPSIS + Authentication transfer is blocked + #> + param($Tenant) + #Tested + try { + $allCAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $allCAPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21828' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Authentication transfer is blocked' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Conditional Access' + return + } + + $matchedPolicies = $allCAPolicies | Where-Object { + $_.conditions.authenticationFlows.transferMethods -match 'authenticationTransfer' -and + $_.grantControls.builtInControls -contains 'block' -and + $_.conditions.users.includeUsers -eq 'all' -and + $_.conditions.applications.includeApplications -eq 'all' -and + $_.state -eq 'enabled' + } + + if ($matchedPolicies.Count -gt 0) { + $passed = 'Passed' + $testResultMarkdown = 'Authentication transfer is blocked by Conditional Access Policy(s).' + } else { + $passed = 'Failed' + $testResultMarkdown = 'Authentication transfer is not blocked.' + } + + $reportTitle = 'Conditional Access Policies targeting Authentication Transfer' + + if ($matchedPolicies.Count -gt 0) { + $mdInfo = "`n## $reportTitle`n`n" + $mdInfo += "| Policy Name | Policy ID | State | Created | Modified |`n" + $mdInfo += "| :---------- | :-------- | :---- | :------ | :------- |`n" + + foreach ($policy in $matchedPolicies) { + $created = if ($policy.createdDateTime) { $policy.createdDateTime } else { 'N/A' } + $modified = if ($policy.modifiedDateTime) { $policy.modifiedDateTime } else { 'N/A' } + $mdInfo += "| $($policy.displayName) | $($policy.id) | $($policy.state) | $created | $modified |`n" + } + + $testResultMarkdown = $testResultMarkdown + $mdInfo + } else { + $testResultMarkdown = $testResultMarkdown + "`n`nNo Conditional Access policies targeting authentication transfer." + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21828' -TestType 'Identity' -Status $passed -ResultMarkdown $testResultMarkdown -Risk 'High' -Name 'Authentication transfer is blocked' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Conditional Access' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21828' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Authentication transfer is blocked' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Conditional Access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21829.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21829.md new file mode 100644 index 000000000000..470f74876eea --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21829.md @@ -0,0 +1,8 @@ +An on-premises federation server introduces a critical attack surface by serving as a central authentication point for cloud applications. Threat actors often gain a foothold by compromising a privileged user such as a help desk representative or an operations engineer through attacks like phishing, credential stuffing, or exploiting weak passwords. They might also target unpatched vulnerabilities in infrastructure, use remote code execution exploits, attack the Kerberos protocol, or use pass-the-hash attacks to escalate privileges. Misconfigured remote access tools like remote desktop protocol (RDP), virtual private network (VPN), or jump servers provide other entry points, while supply chain compromises or malicious insiders further increase exposure. Once inside, threat actors can manipulate authentication flows, forge security tokens to impersonate any user, and pivot into cloud environments. Establishing persistence, they can disable security logs, evade detection, and exfiltrate sensitive data. + +**Remediation action** + +- [Migrate from federation to cloud authentication like Microsoft Entra Password hash synchronization (PHS)](https://learn.microsoft.com/entra/identity/hybrid/connect/migrate-from-federation-to-cloud-authentication?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21829.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21829.ps1 new file mode 100644 index 000000000000..6dcd4437bd47 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21829.ps1 @@ -0,0 +1,42 @@ +function Invoke-CippTestZTNA21829 { + <# + .SYNOPSIS + Use cloud authentication + #> + param($Tenant) + #Tested + $TestId = 'ZTNA21829' + + try { + # Get domains + $Domains = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Domains' + + if (-not $Domains) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Use cloud authentication' -UserImpact 'High' -ImplementationEffort 'High' -Category 'Access control' + return + } + + $FederatedDomains = $Domains | Where-Object { $_.authenticationType -eq 'Federated' } + $Passed = if ($FederatedDomains.Count -eq 0) { 'Passed' } else { 'Failed' } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = "All domains are using cloud authentication.`n`n" + } else { + $ResultMarkdown = "Federated authentication is in use.`n`n" + + $ResultMarkdown += "`n## List of federated domains`n`n" + $ResultMarkdown += "| Domain Name |`n" + $ResultMarkdown += "| :--- |`n" + foreach ($Domain in $FederatedDomains) { + $ResultMarkdown += "| $($Domain.id) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Use cloud authentication' -UserImpact 'High' -ImplementationEffort 'High' -Category 'Access control' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Use cloud authentication' -UserImpact 'High' -ImplementationEffort 'High' -Category 'Access control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21830.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21830.md new file mode 100644 index 000000000000..790102b27622 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21830.md @@ -0,0 +1,11 @@ +If privileged role activations aren't restricted to dedicated Privileged Access Workstations (PAWs), threat actors can exploit compromised endpoint devices to perform privileged escalation attacks from unmanaged or noncompliant workstations. Standard productivity workstations often contain attack vectors such as unrestricted web browsing, email clients vulnerable to phishing, and locally installed applications with potential vulnerabilities. When administrators activated privileged roles from these workstations, threat actors who gain initial access through malware, browser exploits, or social engineering can then use the locally cached privileged credentials or hijack existing authenticated sessions to escalate their privileges. Privileged role activations grant extensive administrative rights across Microsoft Entra ID and connected services, so attackers can create new administrative accounts, modify security policies, access sensitive data across all organizational resources, and deploy malware or backdoors throughout the environment to establish persistent access. This lateral movement from a compromised endpoint to privileged cloud resources represents a critical attack path that bypasses many traditional security controls. The privileged access appears legitimate when originating from an authenticated administrator's session. + +If this check passes, your tenant has a Conditional Access policy that restricts privileged role access to PAW devices, but it isn't the only control required to fully enable a PAW solution. You also need to configure an Intune device configuration and compliance policy and a device filter. + +**Remediation action** + +- [Deploy a privileged access workstation solution](https://learn.microsoft.com/security/privileged-access-workstations/privileged-access-deployment?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + - Provides guidance for configuring the Conditional Access and Intune device configuration and compliance policies. +- [Configure device filters in Conditional Access to restrict privileged access](https://learn.microsoft.com/en-us/entra/identity/conditional-access/concept-condition-filters-for-devices?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21830.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21830.ps1 new file mode 100644 index 000000000000..8dd9f35942b8 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21830.ps1 @@ -0,0 +1,86 @@ +function Invoke-CippTestZTNA21830 { + <# + .SYNOPSIS + Conditional Access policies for Privileged Access Workstations are configured + #> + param($Tenant) + + $TestId = 'ZTNA21830' + #Tested + try { + # Get Conditional Access policies + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + $EnabledCAPolicies = $CAPolicies | Where-Object { $_.state -eq 'enabled' } + + # Get privileged roles + $PrivilegedRoles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles + + if (-not $PrivilegedRoles) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Conditional Access policies for Privileged Access Workstations are configured' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application management' + return + } + + $CompliantDevicePolicies = [System.Collections.Generic.List[object]]::new() + $DeviceFilterPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $EnabledCAPolicies) { + # Check if policy targets privileged roles + $TargetsPrivilegedRoles = $false + if ($Policy.conditions.users.includeRoles) { + foreach ($RoleId in $Policy.conditions.users.includeRoles) { + if ($PrivilegedRoles.id -contains $RoleId) { + $TargetsPrivilegedRoles = $true + break + } + } + } + + if ($TargetsPrivilegedRoles) { + # Check for compliant device control + if ($Policy.grantControls.builtInControls -contains 'compliantDevice') { + $CompliantDevicePolicies.Add($Policy) + } + + # Check for device filter exclude + block + $HasDeviceFilterExclude = $Policy.conditions.devices.deviceFilter -and + $Policy.conditions.devices.deviceFilter.mode -eq 'exclude' + $BlocksAccess = (-not $Policy.grantControls.builtInControls) -or + ($Policy.grantControls.builtInControls -contains 'block') + + if ($HasDeviceFilterExclude -and $BlocksAccess) { + $DeviceFilterPolicies.Add($Policy) + } + } + } + + $Passed = if ($CompliantDevicePolicies.Count -eq 0 -or $DeviceFilterPolicies.Count -eq 0) { 'Failed' } else { 'Passed' } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = 'Conditional Access policies restrict privileged role access to PAW devices.' + } else { + $ResultMarkdown = 'No Conditional Access policies found that restrict privileged roles to PAW device.' + } + + $CompliantDeviceMarkdown = if ($CompliantDevicePolicies.Count -gt 0) { '✅' } else { '❌' } + $DeviceFilterMarkdown = if ($DeviceFilterPolicies.Count -gt 0) { '✅' } else { '❌' } + + $ResultMarkdown += "`n`n**$CompliantDeviceMarkdown Found $($CompliantDevicePolicies.Count) policy(s) with compliant device control targeting all privileged roles**`n" + foreach ($Policy in $CompliantDevicePolicies) { + $PortalLink = "https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/PolicyBlade/policyId/$($Policy.id)" + $ResultMarkdown += "- **Policy:** [$($Policy.displayName)]($PortalLink)`n" + } + + $ResultMarkdown += "`n`n**$DeviceFilterMarkdown Found $($DeviceFilterPolicies.Count) policy(s) with PAW/SAW device filter targeting all privileged roles**`n" + foreach ($Policy in $DeviceFilterPolicies) { + $PortalLink = "https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/PolicyBlade/policyId/$($Policy.id)" + $ResultMarkdown += "- **Policy:** [$($Policy.displayName)]($PortalLink)`n" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Conditional Access policies for Privileged Access Workstations are configured' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Conditional Access policies for Privileged Access Workstations are configured' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21831.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21831.md new file mode 100644 index 000000000000..abcf2871d752 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21831.md @@ -0,0 +1,10 @@ +Threat actors who gain privileged access to a tenant can manipulate identity, access, and security configurations. This type of attack can result in environment-wide compromise and loss of control over organizational assets. Take action to protect high-impact management tasks associated with Conditional Access policies, cross-tenant access settings, hard deletions, and network locations that are critical to maintaining security. + +Protected actions let administrators secure these tasks with extra security controls, such as stronger authentication methods (passwordless MFA or phishing-resistant MFA), the use of Privileged Access Workstation (PAW) devices, or shorter session timeouts. + +**Remediation action** + +- [Add, test, or remove protected actions in Microsoft Entra ID](https://learn.microsoft.com/entra/identity/role-based-access-control/protected-actions-add?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21832.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21832.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21832.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21833.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21833.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21833.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21834.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21834.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21834.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21835.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21835.md new file mode 100644 index 000000000000..be68f5749ef6 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21835.md @@ -0,0 +1,8 @@ +Microsoft recommends that organizations have two cloud-only emergency access accounts permanently assigned the [Global Administrator](https://learn.microsoft.com/entra/identity/role-based-access-control/permissions-reference?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#global-administrator) role. These accounts are highly privileged and aren't assigned to specific individuals. The accounts are limited to emergency or "break glass" scenarios where normal accounts can't be used or all other administrators are accidentally locked out. + +**Remediation action** + +- Create accounts following the [emergency access account recommendations](https://learn.microsoft.com/entra/identity/role-based-access-control/security-emergency-access?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21835.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21835.ps1 new file mode 100644 index 000000000000..f9f7e021dd98 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21835.ps1 @@ -0,0 +1,205 @@ +function Invoke-CippTestZTNA21835 { + <# + .SYNOPSIS + Emergency access accounts are configured appropriately + #> + param($Tenant) + #Untested + $TestId = 'ZTNA21835' + + try { + # Get Global Administrator role (template ID: 62e90394-69f5-4237-9190-012177145e10) + $Roles = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Roles' + $GlobalAdminRole = $Roles | Where-Object { $_.roleTemplateId -eq '62e90394-69f5-4237-9190-012177145e10' } + + if (-not $GlobalAdminRole) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Emergency access accounts are configured appropriately' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application management' + return + } + + # Get permanent Global Administrator members + $PermanentGAMembers = Get-CippDbRoleMembers -TenantFilter $Tenant -RoleTemplateId '62e90394-69f5-4237-9190-012177145e10' | Where-Object { + $_.AssignmentType -eq 'Permanent' -and $_.'@odata.type' -eq '#microsoft.graph.user' + } + + # Get Users data to check sync status + $Users = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Users' + + $EmergencyAccountCandidates = [System.Collections.Generic.List[object]]::new() + + foreach ($Member in $PermanentGAMembers) { + $User = $Users | Where-Object { $_.id -eq $Member.principalId } + + # Only process cloud-only accounts + if ($User -and $User.onPremisesSyncEnabled -ne $true) { + # Note: Individual user authentication methods require per-user API calls not available in cache + # Add all cloud-only permanent GAs as candidates (cannot verify auth methods from cache) + $EmergencyAccountCandidates.Add([PSCustomObject]@{ + Id = $User.id + UserPrincipalName = $User.userPrincipalName + DisplayName = $User.displayName + OnPremisesSyncEnabled = $User.onPremisesSyncEnabled + AuthenticationMethods = @('Unknown - requires per-user API call') + CAPoliciesTargeting = 0 + ExcludedFromAllCA = $false + }) + } + } + + # Get CA policies + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + $EnabledCAPolicies = $CAPolicies | Where-Object { $_.state -eq 'enabled' } + + $EmergencyAccessAccounts = [System.Collections.Generic.List[object]]::new() + + foreach ($Candidate in $EmergencyAccountCandidates) { + # Note: Transitive group and role memberships require per-user API calls not available in cache + # Simplified check: only verify direct includes/excludes in CA policies + $UserGroupIds = @() + $UserRoles = @() + $UserRoleIds = @() + + $PoliciesTargetingUser = 0 + $ExcludedFromAll = $true + + foreach ($Policy in $EnabledCAPolicies) { + $IsTargeted = $false + + # Check user includes/excludes + $IncludeUsers = @($Policy.conditions.users.includeUsers) + $ExcludeUsers = @($Policy.conditions.users.excludeUsers) + + if ($IncludeUsers -contains 'All' -or $IncludeUsers -contains $Candidate.Id) { + $IsTargeted = $true + } + + if ($ExcludeUsers -contains $Candidate.Id) { + $IsTargeted = $false + } + + # Check group includes/excludes + if (-not $IsTargeted -and $UserGroupIds.Count -gt 0) { + $IncludeGroups = @($Policy.conditions.users.includeGroups) + $ExcludeGroups = @($Policy.conditions.users.excludeGroups) + + foreach ($GroupId in $UserGroupIds) { + if ($IncludeGroups -contains $GroupId) { + $IsTargeted = $true + } + if ($ExcludeGroups -contains $GroupId) { + $IsTargeted = $false + break + } + } + } + + # Check role includes/excludes + $IncludeRoles = @($Policy.conditions.users.includeRoles) + $ExcludeRoles = @($Policy.conditions.users.excludeRoles) + + foreach ($RoleId in $UserRoleIds) { + $Role = $UserRoles | Where-Object { $_.id -eq $RoleId } + if ($Role -and $IncludeRoles -contains $Role.roleTemplateId) { + $IsTargeted = $true + } + if ($Role -and $ExcludeRoles -contains $Role.roleTemplateId) { + $IsTargeted = $false + break + } + } + + if ($IsTargeted) { + $PoliciesTargetingUser++ + $ExcludedFromAll = $false + } + } + + $Candidate.CAPoliciesTargeting = $PoliciesTargetingUser + $Candidate.ExcludedFromAllCA = $ExcludedFromAll + + if ($ExcludedFromAll) { + $EmergencyAccessAccounts.Add($Candidate) + } + } + + $AccountCount = $EmergencyAccessAccounts.Count + $Passed = 'Failed' + $ResultMarkdown = '' + + if ($AccountCount -lt 2) { + $ResultMarkdown = "Fewer than two emergency access accounts were identified based on cloud-only state, registered phishing-resistant credentials and Conditional Access policy exclusions.`n`n" + } elseif ($AccountCount -ge 2 -and $AccountCount -le 4) { + $Passed = 'Passed' + $ResultMarkdown = "Emergency access accounts appear to be configured as per Microsoft guidance based on cloud-only state, registered phishing-resistant credentials and Conditional Access policy exclusions.`n`n" + } else { + $ResultMarkdown = "$AccountCount emergency access accounts appear to be configured based on cloud-only state, registered phishing-resistant credentials and Conditional Access policy exclusions. Review these accounts to determine whether this volume is excessive for your organization.`n`n" + } + + $ResultMarkdown += "**Summary:**`n" + $ResultMarkdown += "- Total permanent Global Administrators: $($PermanentGAMembers.Count)`n" + $ResultMarkdown += "- Cloud-only GAs with phishing-resistant auth: $($EmergencyAccountCandidates.Count)`n" + $ResultMarkdown += "- Emergency access accounts (excluded from all CA): $AccountCount`n" + $ResultMarkdown += "- Enabled Conditional Access policies: $($EnabledCAPolicies.Count)`n`n" + + if ($EmergencyAccessAccounts.Count -gt 0) { + $ResultMarkdown += "## Emergency access accounts`n`n" + $ResultMarkdown += "| Display name | UPN | Synced from on-premises | Authentication methods |`n" + $ResultMarkdown += "| :----------- | :-- | :---------------------- | :--------------------- |`n" + + foreach ($Account in $EmergencyAccessAccounts) { + $SyncStatus = if ($Account.OnPremisesSyncEnabled -ne $true) { 'No' } else { 'Yes' } + $AuthMethodDisplay = ($Account.AuthenticationMethods | ForEach-Object { + $_ -replace '#microsoft.graph.', '' -replace 'AuthenticationMethod', '' + }) -join ', ' + + $PortalLink = "https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/overview/userId/$($Account.Id)" + $ResultMarkdown += "| $($Account.DisplayName) | [$($Account.UserPrincipalName)]($PortalLink) | $SyncStatus | $AuthMethodDisplay |`n" + } + $ResultMarkdown += "`n" + } + + if ($PermanentGAMembers.Count -gt 0) { + $ResultMarkdown += "## All permanent Global Administrators`n`n" + $ResultMarkdown += "| Display name | UPN | Cloud only | All CA excluded | Phishing resistant auth |`n" + $ResultMarkdown += "| :----------- | :-- | :--------: | :---------: | :---------------------: |`n" + + $UserSummary = [System.Collections.Generic.List[object]]::new() + foreach ($Member in $PermanentGAMembers) { + $User = $Users | Where-Object { $_.id -eq $Member.principalId } + if (-not $User) { continue } + + $PortalLink = "https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/overview/userId/$($User.id)" + $IsCloudOnly = ($User.onPremisesSyncEnabled -ne $true) + $CloudOnlyEmoji = if ($IsCloudOnly) { '✅' } else { '❌' } + + $EmergencyAccount = $EmergencyAccessAccounts | Where-Object { $_.Id -eq $User.id } + $CAExcludedEmoji = if ($EmergencyAccount) { '✅' } else { '❌' } + + $Candidate = $EmergencyAccountCandidates | Where-Object { $_.Id -eq $User.id } + $PhishingResistantEmoji = if ($Candidate) { '✅' } else { '❌' } + + $UserSummary.Add([PSCustomObject]@{ + DisplayName = $User.displayName + UserPrincipalName = $User.userPrincipalName + PortalLink = $PortalLink + CloudOnly = $CloudOnlyEmoji + CAExcluded = $CAExcludedEmoji + PhishingResistant = $PhishingResistantEmoji + }) + } + + foreach ($UserSum in $UserSummary) { + $ResultMarkdown += "| $($UserSum.DisplayName) | [$($UserSum.UserPrincipalName)]($($UserSum.PortalLink)) | $($UserSum.CloudOnly) | $($UserSum.CAExcluded) | $($UserSum.PhishingResistant) |`n" + } + + $ResultMarkdown += "`n" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Emergency access accounts are configured appropriately' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Emergency access accounts are configured appropriately' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21836.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21836.md new file mode 100644 index 000000000000..08ff6ceb70f4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21836.md @@ -0,0 +1,8 @@ +If administrators assign privileged roles to workload identities, such as service principals or managed identities, the tenant can be exposed to significant risk if those identities are compromised. Threat actors who gain access to a privileged workload identity can perform reconnaissance to enumerate resources, escalate privileges, and manipulate or exfiltrate sensitive data. The attack chain typically begins with credential theft or abuse of a vulnerable application. Next step is privilege escalation through the assigned role, lateral movement across cloud resources, and finally persistence via other role assignments or credential updates. Workload identities are often used in automation and might not be monitored as closely as user accounts. Compromise can then go undetected, allowing threat actors to maintain access and control over critical resources. Workload identities aren't subject to user-centric protections like MFA, making least-privilege assignment and regular review essential. + +**Remediation action** +- [Review and remove privileged roles assignments](https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/pim-resource-roles-assign-roles?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#update-or-remove-an-existing-role-assignment). +- [Follow the best practices for workload identities](https://learn.microsoft.com/en-us/entra/workload-id/workload-identities-overview?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#key-scenarios). +- [Learn about privileged roles and permissions in Microsoft Entra ID](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/privileged-roles-permissions?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21836.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21836.ps1 new file mode 100644 index 000000000000..8253e3737d3d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21836.ps1 @@ -0,0 +1,67 @@ +function Invoke-CippTestZTNA21836 { + <# + .SYNOPSIS + Workload Identities are not assigned privileged roles + #> + param($Tenant) + #Untested + $TestId = 'ZTNA21836' + + try { + # Get privileged roles + $PrivilegedRoles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles + + if (-not $PrivilegedRoles) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Workload Identities are not assigned privileged roles' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application management' + return + } + + # Get workload identities (service principals) with privileged role assignments + $WorkloadIdentitiesWithPrivilegedRoles = [System.Collections.Generic.List[object]]::new() + + foreach ($Role in $PrivilegedRoles) { + $RoleMembers = Get-CippDbRoleMembers -TenantFilter $Tenant -RoleTemplateId $Role.id + + foreach ($Member in $RoleMembers) { + if ($Member.'@odata.type' -eq '#microsoft.graph.servicePrincipal') { + $WorkloadIdentitiesWithPrivilegedRoles.Add([PSCustomObject]@{ + PrincipalId = $Member.principalId + PrincipalDisplayName = $Member.principalDisplayName + AppId = $Member.appId + RoleDisplayName = $Role.displayName + RoleDefinitionId = $Role.id + AssignmentType = $Member.AssignmentType + }) + } + } + } + + $Passed = 'Passed' + $ResultMarkdown = '' + + if ($WorkloadIdentitiesWithPrivilegedRoles.Count -gt 0) { + $Passed = 'Failed' + $ResultMarkdown = "**Found workload identities assigned to privileged roles.**`n" + $ResultMarkdown += "| Service Principal Name | Privileged Role | Assignment Type |`n" + $ResultMarkdown += "| :--- | :--- | :--- |`n" + + $SortedAssignments = $WorkloadIdentitiesWithPrivilegedRoles | Sort-Object -Property PrincipalDisplayName + + foreach ($Assignment in $SortedAssignments) { + $SPLink = "https://entra.microsoft.com/#view/Microsoft_AAD_IAM/ManagedAppMenuBlade/~/Overview/objectId/$($Assignment.PrincipalId)/appId/$($Assignment.AppId)/preferredSingleSignOnMode~/null/servicePrincipalType/Application/fromNav/" + $ResultMarkdown += "| [$($Assignment.PrincipalDisplayName)]($SPLink) | $($Assignment.RoleDisplayName) | $($Assignment.AssignmentType) |`n" + } + $ResultMarkdown += "`n" + $ResultMarkdown += "`n**Recommendation:** Review and remove privileged role assignments from workload identities unless absolutely necessary. Use least-privilege principles and consider alternative approaches like managed identities with specific API permissions instead of directory roles.`n" + } else { + $ResultMarkdown = "✅ **No workload identities found with privileged role assignments.**`n" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Workload Identities are not assigned privileged roles' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Workload Identities are not assigned privileged roles' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21837.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21837.md new file mode 100644 index 000000000000..c97fc5a08508 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21837.md @@ -0,0 +1,8 @@ +Controlling device proliferation is important. Set a reasonable limit on the number of devices each user can register in your Microsoft Entra ID tenant. Limiting device registration maintains security while allowing business flexibility. Microsoft Entra ID lets users register up to 50 devices by default. Reducing this number to 10 minimizes the attack surface and simplifies device management. + +**Remediation action** + +- Learn how to [limit the maximum number of devices per user](https://learn.microsoft.com/entra/identity/devices/manage-device-identities?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#configure-device-settings). + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21837.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21837.ps1 new file mode 100644 index 000000000000..e42e48ac94d2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21837.ps1 @@ -0,0 +1,46 @@ +function Invoke-CippTestZTNA21837 { + <# + .SYNOPSIS + Limit the maximum number of devices per user to 10 + #> + param($Tenant) + + $TestId = 'ZTNA21837' + #Tested + try { + # Get device registration policy + $DeviceSettings = New-CIPPDbRequest -TenantFilter $Tenant -Type 'DeviceRegistrationPolicy' + + if (-not $DeviceSettings) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Limit the maximum number of devices per user to 10' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Devices' + return + } + + $UserQuota = $DeviceSettings.userDeviceQuota + $EntraDeviceSettingsLink = 'https://entra.microsoft.com/#view/Microsoft_AAD_Devices/DevicesMenuBlade/~/DeviceSettings/menuId/Overview' + + $Passed = 'Failed' + $CustomStatus = $null + + if ($null -eq $UserQuota -or $UserQuota -le 10) { + $Passed = 'Passed' + $ResultMarkdown = "[Maximum number of devices per user]($EntraDeviceSettingsLink) is set to $UserQuota" + } elseif ($UserQuota -gt 10 -and $UserQuota -le 20) { + $CustomStatus = 'Investigate' + $ResultMarkdown = "[Maximum number of devices per user]($EntraDeviceSettingsLink) is set to $UserQuota. Consider reducing to 10 or fewer." + } else { + $ResultMarkdown = "[Maximum number of devices per user]($EntraDeviceSettingsLink) is set to $UserQuota. Consider reducing to 10 or fewer." + } + + if ($CustomStatus) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $CustomStatus -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Limit the maximum number of devices per user to 10' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Devices' + } else { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Limit the maximum number of devices per user to 10' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Devices' + } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Limit the maximum number of devices per user to 10' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Devices' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21838.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21838.md new file mode 100644 index 000000000000..966d20d34799 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21838.md @@ -0,0 +1,10 @@ +Enabling the security key authentication method in Microsoft Entra ID mitigates the risk of credential theft and unauthorized access by requiring hardware-backed, phishing-resistant authentication. If this best practice is not followed, threat actors can exploit weak or reused passwords, perform credential stuffing attacks, and escalate privileges through compromised accounts. The kill chain begins with reconnaissance where attackers gather information about user accounts, followed by credential harvesting through various techniques like social engineering or data breaches. Attackers then gain initial access using stolen credentials, move laterally within the network by exploiting trust relationships, and establish persistence to maintain long-term access. Without hardware-backed authentication like FIDO2 security keys, attackers can bypass basic password defenses and multi-factor authentication, increasing the likelihood of data exfiltration and business disruption. Security keys provide cryptographic proof of identity that is bound to the specific device and cannot be replicated or phished, effectively breaking the attack chain at the initial access stage. + +**Remediation action** + +* [Enable passkey (FIDO2) authentication method](https://learn.microsoft.com/en-us/entra/identity/authentication/how-to-enable-passkey-fido2#enable-passkey-fido2-authentication-method) + +* [Authentication method policy management](https://learn.microsoft.com/en-us/entra/identity/authentication/concept-authentication-methods-manage) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21838.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21838.ps1 new file mode 100644 index 000000000000..87bc89f02394 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21838.ps1 @@ -0,0 +1,61 @@ +function Invoke-CippTestZTNA21838 { + <# + .SYNOPSIS + Security key authentication method enabled + #> + param($Tenant) + + $TestId = 'ZTNA21838' + #Tested + try { + # Get FIDO2 authentication method policy + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Security key authentication method enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access control' + return + } + + $Fido2Config = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'Fido2' } + + if (-not $Fido2Config) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Security key authentication method enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access control' + return + } + + $Fido2Enabled = $Fido2Config.state -eq 'enabled' + $Passed = if ($Fido2Enabled) { 'Passed' } else { 'Failed' } + $StatusEmoji = if ($Fido2Enabled) { '✅' } else { '❌' } + + if ($Fido2Enabled) { + $ResultMarkdown = "Security key authentication method is enabled for your tenant, providing hardware-backed phishing-resistant authentication.`n`n" + } else { + $ResultMarkdown = "Security key authentication method is not enabled; users cannot register FIDO2 security keys for strong authentication.`n`n" + } + + $ResultMarkdown += "## FIDO2 security key authentication settings`n`n" + $ResultMarkdown += "$StatusEmoji **FIDO2 authentication method**`n" + $ResultMarkdown += "- Status: $($Fido2Config.state)`n" + + $IncludeTargetsDisplay = if ($Fido2Config.includeTargets -and $Fido2Config.includeTargets.Count -gt 0) { + ($Fido2Config.includeTargets | ForEach-Object { if ($_.id -eq 'all_users') { 'All users' } else { $_.id } }) -join ', ' + } else { + 'None' + } + $ResultMarkdown += "- Include targets: $IncludeTargetsDisplay`n" + + $ExcludeTargetsDisplay = if ($Fido2Config.excludeTargets -and $Fido2Config.excludeTargets.Count -gt 0) { + ($Fido2Config.excludeTargets | ForEach-Object { $_.id }) -join ', ' + } else { + 'None' + } + $ResultMarkdown += "- Exclude targets: $ExcludeTargetsDisplay`n" + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Security key authentication method enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access control' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Security key authentication method enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21839.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21839.md new file mode 100644 index 000000000000..036e0c9d2b1b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21839.md @@ -0,0 +1,11 @@ +When passkey authentication isn't enabled in Microsoft Entra ID, organizations rely on password-based authentication methods that are vulnerable to phishing, credential theft, and replay attacks. Attackers can use stolen passwords to gain initial access, bypass traditional multifactor authentication through Adversary-in-the-Middle (AiTM) attacks, and establish persistent access through token theft. + +Passkeys provide phishing-resistant authentication using cryptographic proof that attackers can't phish, intercept, or replay. Enabling passkeys eliminates the foundational vulnerability that enables credential-based attack chains. + +**Remediation action** + +- Learn how to [enable the passkey authentication method](https://learn.microsoft.com/entra/identity/authentication/how-to-enable-passkey-fido2?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#enable-passkey-fido2-authentication-method). +- Learn how to [plan a phishing-resistant passwordless authentication deployment](https://learn.microsoft.com/entra/identity/authentication/how-to-plan-prerequisites-phishing-resistant-passwordless-authentication?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21839.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21839.ps1 new file mode 100644 index 000000000000..743461e1ff9e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21839.ps1 @@ -0,0 +1,84 @@ +function Invoke-CippTestZTNA21839 { + <# + .SYNOPSIS + Passkey authentication method enabled + #> + param($Tenant) + + $TestId = 'ZTNA21839' + #Tested + try { + # Get FIDO2 authentication method policy + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Passkey authentication method enabled' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Credential management' + return + } + + $Fido2Config = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'Fido2' } + + if (-not $Fido2Config) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Passkey authentication method enabled' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Credential management' + return + } + + $State = $Fido2Config.state + $IncludeTargets = $Fido2Config.includeTargets + $IsAttestationEnforced = $Fido2Config.isAttestationEnforced + $KeyRestrictions = $Fido2Config.keyRestrictions + + $Fido2Enabled = $State -eq 'enabled' + $HasIncludeTargets = $IncludeTargets -and $IncludeTargets.Count -gt 0 + + $PortalLink = 'https://entra.microsoft.com/#view/Microsoft_AAD_IAM/AuthenticationMethodsMenuBlade/~/AdminAuthMethods' + + $ResultMarkdown = "`n## [Passkey authentication method details]($PortalLink)`n" + + $StatusDisplay = if ($Fido2Enabled) { 'Enabled ✅' } else { 'Disabled ❌' } + $ResultMarkdown += "- **Status** : $StatusDisplay`n" + + if ($Fido2Enabled) { + $ResultMarkdown += '- **Include targets** : ' + if ($IncludeTargets) { + $TargetsDisplay = ($IncludeTargets | ForEach-Object { + if ($_.id -eq 'all_users') { 'All users' } else { $_.id } + }) -join ', ' + $ResultMarkdown += "$TargetsDisplay`n" + } else { + $ResultMarkdown += "None`n" + } + + $ResultMarkdown += "- **Enforce attestation** : $IsAttestationEnforced`n" + + if ($KeyRestrictions) { + $ResultMarkdown += "- **Key restriction policy** :`n" + if ($null -ne $KeyRestrictions.isEnforced) { + $ResultMarkdown += " - **Enforce key restrictions** : $($KeyRestrictions.isEnforced)`n" + } else { + $ResultMarkdown += " - **Enforce key restrictions** : Not configured`n" + } + if ($KeyRestrictions.enforcementType) { + $ResultMarkdown += " - **Restrict specific keys** : $($KeyRestrictions.enforcementType)`n" + } else { + $ResultMarkdown += " - **Restrict specific keys** : Not configured`n" + } + } + } + + $Passed = if ($Fido2Enabled -and $HasIncludeTargets) { 'Passed' } else { 'Failed' } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = "Passkey authentication method is enabled and configured for users in your tenant.$ResultMarkdown" + } else { + $ResultMarkdown = "Passkey authentication method is not enabled or not configured for any users in your tenant.$ResultMarkdown" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Passkey authentication method enabled' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Credential management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Passkey authentication method enabled' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Credential management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21840.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21840.md new file mode 100644 index 000000000000..b83dff41f9dc --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21840.md @@ -0,0 +1,9 @@ +When security key attestation isn't enforced, threat actors can exploit weak or compromised authentication hardware to establish persistent presence within organizational environments. Without attestation validation, malicious actors can register unauthorized or counterfeit FIDO2 security keys that bypass hardware-backed security controls, enabling them to perform credential stuffing attacks using fabricated authenticators that mimic legitimate security keys. This initial access lets threat actors escalate privileges by using the trusted nature of hardware authentication methods, then move laterally through the environment by registering more compromised security keys on high-privilege accounts. The lack of attestation enforcement creates a pathway for threat actors to establish command and control through persistent hardware-based authentication methods, ultimately leading to data exfiltration or system compromise while maintaining the appearance of legitimate hardware-secured authentication throughout the attack chain. + +**Remediation action** + +- [Enable attestation enforcement through the Authentication methods policy configuration](https://learn.microsoft.com/entra/identity/authentication/how-to-enable-passkey-fido2?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#enable-passkey-fido2-authentication-method). +- [Configure approved list of security keys by Authenticator Attestation Globally Unique Identifier (AAGUID)](https://learn.microsoft.com/entra/identity/authentication/concept-fido2-hardware-vendor?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21840.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21840.ps1 new file mode 100644 index 000000000000..9c007bd3b1f4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21840.ps1 @@ -0,0 +1,72 @@ +function Invoke-CippTestZTNA21840 { + <# + .SYNOPSIS + Security key attestation is enforced + #> + param($Tenant) + #Tested + $TestId = 'ZTNA21840' + + try { + # Get FIDO2 authentication method policy + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Security key attestation is enforced' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + return + } + + $Fido2Config = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'Fido2' } + + if (-not $Fido2Config) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Security key attestation is enforced' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + return + } + + $IsAttestationEnforced = $Fido2Config.isAttestationEnforced + $KeyRestrictions = $Fido2Config.keyRestrictions + + $PortalLink = 'https://entra.microsoft.com/#view/Microsoft_AAD_IAM/AuthenticationMethodsMenuBlade/~/AdminAuthMethods' + + $ResultMarkdown = "`n## [Security key attestation policy details]($PortalLink)`n" + + $AttestationStatus = if ($IsAttestationEnforced -eq $true) { 'True ✅' } else { 'False ❌' } + $ResultMarkdown += "- **Enforce attestation** : $AttestationStatus`n" + + if ($KeyRestrictions) { + $ResultMarkdown += "- **Key restriction policy** :`n" + if ($null -ne $KeyRestrictions.isEnforced) { + $ResultMarkdown += " - **Enforce key restrictions** : $($KeyRestrictions.isEnforced)`n" + } else { + $ResultMarkdown += " - **Enforce key restrictions** : Not configured`n" + } + if ($KeyRestrictions.enforcementType) { + $ResultMarkdown += " - **Restrict specific keys** : $($KeyRestrictions.enforcementType)`n" + } else { + $ResultMarkdown += " - **Restrict specific keys** : Not configured`n" + } + + if ($KeyRestrictions.aaGuids -and $KeyRestrictions.aaGuids.Count -gt 0) { + $ResultMarkdown += " - **AAGUID** :`n" + foreach ($Guid in $KeyRestrictions.aaGuids) { + $ResultMarkdown += " - $Guid`n" + } + } + } + + $Passed = if ($IsAttestationEnforced -eq $true) { 'Passed' } else { 'Failed' } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = "Security key attestation is properly enforced, ensuring only verified hardware authenticators can be registered.$ResultMarkdown" + } else { + $ResultMarkdown = "Security key attestation is not enforced, allowing unverified or potentially compromised security keys to be registered.$ResultMarkdown" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Security key attestation is enforced' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Security key attestation is enforced' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21841.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21841.md new file mode 100644 index 000000000000..e88e14ab14ad --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21841.md @@ -0,0 +1,10 @@ +Threat actors increasingly rely on prompt bombing and real-time phishing proxies to coerce or trick users into approving fraudulent multifactor authentication (MFA) challenges. Without the Microsoft Authenticator app's **Report suspicious activity** capability enabled, an attacker can iterate until a fatigued user accepts. This type of attack can lead to privilege escalation, persistence, lateral movement into sensitive workloads, data exfiltration, or destructive actions. + +When reporting is enabled for all users, any unexpected push or phone prompt can be actively flagged, immediately elevating the user to high user risk and generating a high-fidelity user risk detection (userReportedSuspiciousActivity) that risk-based Conditional Access policies or other response automation can use to block or require secure remediation. + +**Remediation action** + +- [Enable the report suspicious activity setting in the Microsoft Authenticator app](https://learn.microsoft.com/entra/identity/authentication/howto-mfa-mfasettings?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#report-suspicious-activity) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21841.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21841.ps1 new file mode 100644 index 000000000000..4f17c2b6d6c2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21841.ps1 @@ -0,0 +1,53 @@ +function Invoke-CippTestZTNA21841 { + <# + .SYNOPSIS + Microsoft Authenticator app report suspicious activity setting is enabled + #> + param($Tenant) + #Tested + $TestId = 'ZTNA21841' + + try { + # Get authentication methods policy + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Microsoft Authenticator app report suspicious activity setting is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + return + } + + $Passed = 'Failed' + $PortalLink = 'https://entra.microsoft.com/#view/Microsoft_AAD_IAM/AuthenticationMethodsMenuBlade/~/AuthMethodsSettings' + + if ($AuthMethodsPolicy.reportSuspiciousActivitySettings) { + $ReportSettings = $AuthMethodsPolicy.reportSuspiciousActivitySettings + + $StateEnabled = $ReportSettings.state -eq 'enabled' + $TargetAllUsers = $false + + if ($ReportSettings.includeTarget) { + $TargetAllUsers = $ReportSettings.includeTarget.id -eq 'all_users' + } + + if ($StateEnabled -and $TargetAllUsers) { + $Passed = 'Passed' + $ResultMarkdown = "Authenticator app report suspicious activity is [enabled for all users]($PortalLink)." + } else { + if (-not $StateEnabled) { + $ResultMarkdown = "Authenticator app report suspicious activity is [not enabled]($PortalLink)." + } elseif (-not $TargetAllUsers) { + $ResultMarkdown = "Authenticator app report suspicious activity is [not configured for all users]($PortalLink)." + } + } + } else { + $ResultMarkdown = "Authenticator app report suspicious activity is [not enabled]($PortalLink)." + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Microsoft Authenticator app report suspicious activity setting is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Microsoft Authenticator app report suspicious activity setting is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21842.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21842.md new file mode 100644 index 000000000000..3fe9d727b41d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21842.md @@ -0,0 +1,10 @@ +Self-Service Password Reset (SSPR) for administrators allows password changes to happen without strong secondary authentication factors or administrative oversight. Threat actors who compromise administrative credentials can use this capability to bypass other security controls and maintain persistent access to the environment. + +Once compromised, attackers can immediately reset the password to lock out legitimate administrators. They can then establish persistence, escalate privileges, and deploy malicious payloads undetected. + +**Remediation action** + +- [Disable SSPR for administrators by updating the authorization policy](https://learn.microsoft.com/entra/identity/authentication/concept-sspr-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#administrator-reset-policy-differences) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21842.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21842.ps1 new file mode 100644 index 000000000000..1f2629709fec --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21842.ps1 @@ -0,0 +1,37 @@ +function Invoke-CippTestZTNA21842 { + <# + .SYNOPSIS + Block administrators from using SSPR + #> + param($Tenant) + + $TestId = 'ZTNA21842' + #Tested + try { + # Get authorization policy + $AuthorizationPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthorizationPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Block administrators from using SSPR' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + return + } + + $AllowedToUseSspr = $AuthorizationPolicy.allowedToUseSspr + $Passed = 'Failed' + $UserMessage = '' + + if ($null -ne $AllowedToUseSspr -and $AllowedToUseSspr -eq $false) { + $Passed = 'Passed' + $UserMessage = '✅ Administrators are properly blocked from using Self-Service Password Reset, ensuring password changes go through controlled processes.' + } else { + $UserMessage = '❌ Administrators have access to Self-Service Password Reset, which bypasses security controls and administrative oversight.' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $UserMessage -Risk 'High' -Name 'Block administrators from using SSPR' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Block administrators from using SSPR' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21843.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21843.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21843.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21844.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21844.md new file mode 100644 index 000000000000..a74cead90b2c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21844.md @@ -0,0 +1,10 @@ +Threat actors frequently target legacy management interfaces such as the Azure AD PowerShell module (AzureAD and AzureADPreview), which don't support modern authentication, Conditional Access enforcement, or advanced audit logging. Continued use of these modules exposes the environment to risks including weak authentication, bypass of security controls, and incomplete visibility into administrative actions. Attackers can exploit these weaknesses to gain unauthorized access, escalate privileges, and perform malicious changes. + +Block the Azure AD PowerShell module and enforce the use of Microsoft Graph PowerShell or Microsoft Entra PowerShell to ensure that only secure, supported, and auditable management channels are available, which closes critical gaps in the attack chain. + +**Remediation action** + +- [Disable user sign-in for application](https://learn.microsoft.com/entra/identity/enterprise-apps/disable-user-sign-in-portal?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21844.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21844.ps1 new file mode 100644 index 000000000000..e0ddd6289188 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21844.ps1 @@ -0,0 +1,82 @@ +function Invoke-CippTestZTNA21844 { + <# + .SYNOPSIS + Block legacy Azure AD PowerShell module + #> + param($Tenant) + + $TestId = 'ZTNA21844' + #Tested + try { + # Azure AD PowerShell App ID + $AzureADPowerShellAppId = '1b730954-1685-4b74-9bfd-dac224a7b894' + + # Query for the Azure AD PowerShell service principal + $ServicePrincipals = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ServicePrincipals' + $ServicePrincipal = $ServicePrincipals | Where-Object { $_.appId -eq $AzureADPowerShellAppId } + + $InvestigateStatus = $false + $AppName = 'Azure AD PowerShell' + $Passed = 'Failed' + + if (-not $ServicePrincipal -or $ServicePrincipal.Count -eq 0) { + $SummaryLines = @( + 'Summary', + '', + "- $AppName (Enterprise App not found in tenant)", + '- Sign in disabled: N/A', + '', + "$AppName has not been blocked by the organization." + ) + } else { + $SP = $ServicePrincipal[0] + $PortalLink = "https://entra.microsoft.com/#view/Microsoft_AAD_IAM/ManagedAppMenuBlade/~/Overview/objectId/$($SP.id)/appId/$($SP.appId)" + $ServicePrincipalMarkdown = "[$AppName]($PortalLink)" + + if ($SP.accountEnabled -eq $false) { + $Passed = 'Passed' + $SummaryLines = @( + 'Summary', + '', + "- $ServicePrincipalMarkdown", + '- Sign in disabled: Yes', + '', + "$AppName is blocked in the tenant by turning off user sign in to the Azure Active Directory PowerShell Enterprise Application." + ) + } elseif ($SP.appRoleAssignmentRequired -eq $true) { + $InvestigateStatus = $true + $SummaryLines = @( + 'Summary', + '', + "- $ServicePrincipalMarkdown", + '- Sign in disabled: No', + '- User assignment required: Yes', + '', + "App role assignment is required for $AppName. Review assignments and confirm that the app is inaccessible to users." + ) + } else { + $SummaryLines = @( + 'Summary', + '', + "- $ServicePrincipalMarkdown", + '- Sign in disabled: No', + '', + "$AppName has not been blocked by the organization." + ) + } + } + + $ResultMarkdown = $SummaryLines -join "`n" + + if ($InvestigateStatus) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Block legacy Azure AD PowerShell module' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Access control' + } else { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Block legacy Azure AD PowerShell module' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Access control' + } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Block legacy Azure AD PowerShell module' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Access control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21845.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21845.md new file mode 100644 index 000000000000..a46f492f1452 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21845.md @@ -0,0 +1,12 @@ +Without Temporary Access Pass (TAP) enabled, organizations face significant challenges in securely bootstrapping user credentials, creating a vulnerability where users rely on weaker authentication mechanisms during their initial setup. When users cannot register phishing-resistant credentials like FIDO2 security keys or Windows Hello for Business due to lack of existing strong authentication methods, they remain exposed to credential-based attacks including phishing, password spray, or similar attacks. Threat actors can exploit this registration gap by targeting users during their most vulnerable state, when they have limited authentication options available and must rely on traditional username + password combinations. This exposure enables threat actors to compromise user accounts during the critical bootstrapping phase, allowing them to intercept or manipulate the registration process for stronger authentication methods, ultimately gaining persistent access to organizational resources and potentially escalating privileges before security controls are fully established. + +Enable TAP and use it with security info registration to secure this potential gap in your defenses. + +**Remediation action** + +- [Learn how to enable Temporary Access Pass in the Authentication methods policy](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-temporary-access-pass?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#enable-the-temporary-access-pass-policy) +- [Learn how to update authentication strength policies to include Temporary Access Pass](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-strength-advanced-options?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Learn how to create a Conditional Access policy for security info registration with authentication strength enforcement](https://learn.microsoft.com/entra/identity/conditional-access/policy-all-users-security-info-registration?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21845.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21845.ps1 new file mode 100644 index 000000000000..b8d816cc2c73 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21845.ps1 @@ -0,0 +1,73 @@ +function Invoke-CippTestZTNA21845 { + <# + .SYNOPSIS + Temporary access pass is enabled + #> + param($Tenant) + + $TestId = 'ZTNA21845' + #Tested + try { + # Get Temporary Access Pass configuration + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + $TAPConfig = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'TemporaryAccessPass' } + + if (-not $TAPConfig) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Temporary access pass is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + return + } + + # Check if TAP is disabled + if ($TAPConfig.state -ne 'enabled') { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown '❌ Temporary Access Pass is disabled in the tenant.' -Risk 'Medium' -Name 'Temporary access pass is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + return + } + + # Get conditional access policies + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + $SecurityInfoPolicies = $CAPolicies | Where-Object { + $_.state -eq 'enabled' -and + $_.conditions.applications.includeUserActions -contains 'urn:user:registersecurityinfo' -and + $_.grantControls.authenticationStrength -ne $null + } + + $TAPEnabled = $TAPConfig.state -eq 'enabled' + $TargetsAllUsers = $TAPConfig.includeTargets | Where-Object { $_.id -eq 'all_users' } + $HasConditionalAccessEnforcement = $SecurityInfoPolicies.Count -gt 0 + + # Note: Authentication strength policy validation requires additional API calls not available in cache + # Simplified check: verify TAP is enabled, targets all users, and CA policies exist + $TAPSupportedInAuthStrength = $HasConditionalAccessEnforcement + + # Determine pass/fail status + $Passed = 'Failed' + if ($TAPEnabled -and $TargetsAllUsers -and $HasConditionalAccessEnforcement -and $TAPSupportedInAuthStrength) { + $Passed = 'Passed' + $ResultMarkdown = 'Temporary Access Pass is enabled, targeting all users, and enforced with conditional access policies.' + } elseif ($TAPEnabled -and $TargetsAllUsers -and $HasConditionalAccessEnforcement -and -not $TAPSupportedInAuthStrength) { + $ResultMarkdown = "Temporary Access Pass is enabled but authentication strength policies don't include TAP methods." + } elseif ($TAPEnabled -and $TargetsAllUsers -and -not $HasConditionalAccessEnforcement) { + $ResultMarkdown = 'Temporary Access Pass is enabled but no conditional access enforcement for security info registration found. Consider adding conditional access policies for stronger security.' + } else { + $ResultMarkdown = 'Temporary Access Pass is not properly configured or does not target all users.' + } + + $ResultMarkdown += "`n`n**Configuration summary**`n`n" + + $TAPStatus = if ($TAPConfig.state -eq 'enabled') { 'Enabled ✅' } else { 'Disabled ❌' } + $ResultMarkdown += "[Temporary Access Pass](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/AuthenticationMethodsMenuBlade/~/AdminAuthMethods/fromNav/Identity): $TAPStatus`n`n" + + $CAStatus = if ($HasConditionalAccessEnforcement) { 'Enabled ✅' } else { 'Not enabled ❌' } + $ResultMarkdown += "[Conditional Access policy for Security info registration](https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/ConditionalAccessBlade/~/Policies/fromNav/Identity): $CAStatus`n`n" + + $AuthStrengthStatus = if ($TAPSupportedInAuthStrength) { 'Enabled ✅' } else { 'Not enabled ❌' } + $ResultMarkdown += "[Authentication strength policy for Temporary Access Pass](https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/AuthenticationStrength.ReactView/fromNav/Identity): $AuthStrengthStatus`n" + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Temporary access pass is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Temporary access pass is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21846.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21846.md new file mode 100644 index 000000000000..dc8bcf1e108f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21846.md @@ -0,0 +1,8 @@ +When Temporary Access Pass (TAP) is configured to allow multiple uses, threat actors who compromise the credential can reuse it repeatedly during its validity period, extending their unauthorized access window beyond the intended single bootstrapping event. This situation creates an extended opportunity for threat actors to establish persistence by registering additional strong authentication methods under the compromised account during the credential lifetime. A reusable TAP that falls into the wrong hands lets threat actors conduct reconnaissance activities across multiple sessions, gradually mapping the environment and identifying high-value targets while maintaining legitimate-looking access patterns. The compromised TAP can also serve as a reliable backdoor mechanism, allowing threat actors to maintain access even if other compromised credentials are detected and revoked, since the TAP appears as a legitimate administrative tool in security logs. + +**Remediation action** + +- [Configure Temporary Access Pass for one-time use in authentication methods policy](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-temporary-access-pass?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#enable-the-temporary-access-pass-policy) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21846.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21846.ps1 new file mode 100644 index 000000000000..7788f63b92cb --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21846.ps1 @@ -0,0 +1,44 @@ +function Invoke-CippTestZTNA21846 { + <# + .SYNOPSIS + Restrict Temporary Access Pass to Single Use + #> + param($Tenant) + + $TestId = 'ZTNA21846' + #Tested + try { + # Get Temporary Access Pass configuration + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + $TAPConfig = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'TemporaryAccessPass' } + + if (-not $TAPConfig) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Restrict Temporary Access Pass to Single Use' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + return + } + + $Passed = if ($TAPConfig.isUsableOnce -eq $true) { 'Passed' } else { 'Failed' } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = "Temporary Access Pass is configured for one-time use only.`n`n" + } else { + $ResultMarkdown = "Temporary Access Pass allows multiple uses during validity period.`n`n" + } + + $ResultMarkdown += "## Temporary Access Pass Configuration`n`n" + $ResultMarkdown += "| Setting | Value | Status |`n" + $ResultMarkdown += "| :------ | :---- | :----- |`n" + + $IsUsableOnceValue = if ($TAPConfig.isUsableOnce) { 'Enabled' } else { 'Disabled' } + $StatusEmoji = if ($Passed -eq 'Passed') { '✅ Pass' } else { '❌ Fail' } + + $ResultMarkdown += "| [One-time use restriction](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/AuthenticationMethodsMenuBlade/~/AdminAuthMethods/fromNav/) | $IsUsableOnceValue | $StatusEmoji |`n" + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Restrict Temporary Access Pass to Single Use' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Restrict Temporary Access Pass to Single Use' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21847.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21847.md new file mode 100644 index 000000000000..3c5921bf5a0b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21847.md @@ -0,0 +1,12 @@ +When on-premises password protection isn’t enabled or enforced, threat actors can use low-and-slow password spray with common variants, such as season+year+symbol or local terms, to gain initial access to Active Directory Domain Services accounts. Domain Controllers (DCs) can accept weak passwords when either of the following statements are true: + +- Microsoft Entra Password Protection DC agent isn't installed +- The password protection tenant setting is disabled or in audit-only mode + +With valid on-premises credentials, attackers laterally move by reusing passwords across endpoints, escalate to domain admin through local admin reuse or service accounts, and persist by adding backdoors, while weak or disabled enforcement produces fewer blocking events and predictable signals. Microsoft’s design requires a proxy that brokers policy from Microsoft Entra ID and a DC agent that enforces the combined global and tenant custom banned lists on password change/reset; consistent enforcement requires DC agent coverage on all DCs in a domain and using Enforced mode after audit evaluation. + +**Remediation action** + +- [Deploy Microsoft Entra password protection](https://learn.microsoft.com/en-us/entra/identity/authentication/howto-password-ban-bad-on-premises-deploy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21847.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21847.ps1 new file mode 100644 index 000000000000..89d23d50c6c1 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21847.ps1 @@ -0,0 +1,38 @@ +function Invoke-CippTestZTNA21847 { + <# + .SYNOPSIS + Password protection for on-premises is enabled + #> + param($Tenant) + + $TestId = 'ZTNA21847' + #Tested + try { + # Check if tenant has on-premises sync + $Settings = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Organization' + + if (-not $Settings) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Password protection for on-premises is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + return + } + + $Org = $Settings[0] + + if ($Org.onPremisesSyncEnabled -ne $true) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Passed' -ResultMarkdown '✅ **Pass**: This tenant is not synchronized to an on-premises environment.' -Risk 'High' -Name 'Password protection for on-premises is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + return + } + + # Note: Password protection settings require groupSettings API which is not cached + # This test requires direct API access to check EnableBannedPasswordCheckOnPremises and BannedPasswordCheckOnPremisesMode + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Password protection for on-premises is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + return + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Password protection for on-premises is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Password protection for on-premises is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21848.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21848.md new file mode 100644 index 000000000000..2e03a7464592 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21848.md @@ -0,0 +1,10 @@ +Organizations that don't populate and enforce the custom banned password list expose themselves to a systematic attack chain where threat actors exploit predictable organizational password patterns. These threat actors typically start with reconnaissance phases, where they gather open-source intelligence (OSINT) from websites, social media, and public records to identify likely password components. With this knowledge, they launch password spray attacks that test organization-specific password variations across multiple user accounts, staying under lockout thresholds to avoid detection. Without the protection the custom banned password list offers, employees often add familiar organizational terms to their passwords, like locations, product names, and industry terms, creating consistent attack vectors. + +The custom banned password list helps organizations plug this critical gap to prevent easily guessed passwords that could lead to initial access and subsequent lateral movement within the environment. + +**Remediation action** + +- [Learn how to enable custom banned password protection and add organizational terms](https://learn.microsoft.com/entra/identity/authentication/tutorial-configure-custom-password-protection?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21848.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21848.ps1 new file mode 100644 index 000000000000..2622b1616cb2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21848.ps1 @@ -0,0 +1,66 @@ +function Invoke-CippTestZTNA21848 { + <# + .SYNOPSIS + Add organizational terms to the banned password list + #> + param($Tenant) + + $TestId = 'ZTNA21848' + #Tested + try { + # Get password protection settings from Settings cache + $Settings = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Settings' + $PasswordProtectionSettings = $Settings | Where-Object { $_.templateId -eq '5cf42378-d67d-4f36-ba46-e8b86229381d' } + + if (-not $PasswordProtectionSettings) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Add organizational terms to the banned password list' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + return + } + + $EnableBannedPasswordCheck = ($PasswordProtectionSettings.values | Where-Object { $_.name -eq 'EnableBannedPasswordCheck' }).value + $BannedPasswordList = ($PasswordProtectionSettings.values | Where-Object { $_.name -eq 'BannedPasswordList' }).value + + if ([string]::IsNullOrEmpty($BannedPasswordList)) { + $BannedPasswordList = $null + } + + $Passed = if ($EnableBannedPasswordCheck -eq $true -and $null -ne $BannedPasswordList) { 'Passed' } else { 'Failed' } + + $PortalLink = 'https://entra.microsoft.com/#view/Microsoft_AAD_IAM/AuthenticationMethodsMenuBlade/~/PasswordProtection/fromNav/' + + $Enforced = if ($EnableBannedPasswordCheck -eq $true) { 'Yes' } else { 'No' } + + # Split on tab characters to handle tab-delimited banned password entries + if ($BannedPasswordList) { + $BannedPasswordArray = $BannedPasswordList -split '\t' + } else { + $BannedPasswordArray = @() + } + + # Show up to 10 banned passwords, summarize if more exist + $MaxDisplay = 10 + if ($BannedPasswordArray.Count -gt $MaxDisplay) { + $DisplayList = $BannedPasswordArray[0..($MaxDisplay - 1)] + "...and $($BannedPasswordArray.Count - $MaxDisplay) more" + } else { + $DisplayList = $BannedPasswordArray + } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = "✅ Custom banned passwords are properly configured with organization-specific terms.`n`n" + } else { + $ResultMarkdown = "❌ Custom banned passwords are not enabled or lack organization-specific terms.`n`n" + } + + $ResultMarkdown += "## [Password protection settings]($PortalLink)`n`n" + $ResultMarkdown += "| Enforce custom list | Custom banned password list | Number of terms |`n" + $ResultMarkdown += "| :------------------ | :-------------------------- | :-------------- |`n" + $ResultMarkdown += "| $Enforced | $($DisplayList -join ', ') | $($BannedPasswordArray.Count) |`n" + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Add organizational terms to the banned password list' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Add organizational terms to the banned password list' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21849.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21849.md new file mode 100644 index 000000000000..1d3d17582ab0 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21849.md @@ -0,0 +1,8 @@ +When Smart Lockout duration is configured below the default 60 seconds, threat actors can exploit shortened lockout periods to conduct password spray and credential stuffing attacks more effectively. Reduced lockout windows allow attackers to resume authentication attempts more rapidly, increasing their success probability while potentially evading detection systems that rely on longer observation periods. + +**Remediation action** + +- [Set Smart Lockout duration to 60 seconds or higher](https://learn.microsoft.com/entra/identity/authentication/howto-password-smart-lockout?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#manage-microsoft-entra-smart-lockout-values) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21849.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21849.ps1 new file mode 100644 index 000000000000..3014ca59afee --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21849.ps1 @@ -0,0 +1,61 @@ +function Invoke-CippTestZTNA21849 { + <# + .SYNOPSIS + Smart lockout duration is set to a minimum of 60 + #> + param($Tenant) + + $TestId = 'ZTNA21849' + #Tested + try { + # Get password rule settings from Settings cache + $Settings = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Settings' + $PasswordRuleSettings = $Settings | Where-Object { $_.displayName -eq 'Password Rule Settings' } + + $PortalLink = 'https://entra.microsoft.com/#view/Microsoft_AAD_IAM/AuthenticationMethodsMenuBlade/~/PasswordProtection/fromNav/' + + if ($null -eq $PasswordRuleSettings) { + # Default is 60 seconds + $Passed = 'Passed' + $ResultMarkdown = "✅ Smart Lockout duration is configured to 60 seconds or higher (default).`n`n" + $ResultMarkdown += "## [Smart Lockout Settings]($PortalLink)`n`n" + $ResultMarkdown += "| Setting | Value |`n" + $ResultMarkdown += "| :---- | :---- |`n" + $ResultMarkdown += "| Lockout Duration (seconds) | 60 (Default) |`n" + } else { + $LockoutDurationSetting = $PasswordRuleSettings.values | Where-Object { $_.name -eq 'LockoutDurationInSeconds' } + + if ($null -eq $LockoutDurationSetting) { + # Default is 60 seconds + $Passed = 'Passed' + $ResultMarkdown = "✅ Smart Lockout duration is configured to 60 seconds or higher (default).`n`n" + $ResultMarkdown += "## [Smart Lockout Settings]($PortalLink)`n`n" + $ResultMarkdown += "| Setting | Value |`n" + $ResultMarkdown += "| :---- | :---- |`n" + $ResultMarkdown += "| Lockout Duration (seconds) | 60 (Default) |`n" + } else { + $LockoutDuration = [int]$LockoutDurationSetting.value + + if ($LockoutDuration -ge 60) { + $Passed = 'Passed' + $ResultMarkdown = "✅ Smart Lockout duration is configured to 60 seconds or higher.`n`n" + } else { + $Passed = 'Failed' + $ResultMarkdown = "❌ Smart Lockout duration is configured below 60 seconds.`n`n" + } + + $ResultMarkdown += "## [Smart Lockout Settings]($PortalLink)`n`n" + $ResultMarkdown += "| Setting | Value |`n" + $ResultMarkdown += "| :---- | :---- |`n" + $ResultMarkdown += "| Lockout Duration (seconds) | $LockoutDuration |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Smart lockout duration is set to a minimum of 60' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Smart lockout duration is set to a minimum of 60' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21850.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21850.md new file mode 100644 index 000000000000..fb2a9d166304 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21850.md @@ -0,0 +1,10 @@ +When the smart lockout threshold is set to more than 10, threat actors can exploit the configuration to conduct reconnaissance, identify valid user accounts without triggering lockout protections, and establish initial access without detection. Once attackers gain initial access, they can move laterally through the environment by using the compromised account to access resources and escalate privileges. + +Smart lockout helps lock out bad actors who try to guess your users' passwords or use brute force methods to get in. Smart lockout recognizes sign-ins that come from valid users and treats them differently than ones of attackers and other unknown sources. A threshold of more than 10 provides insufficient protection against automated password spray attacks, making it easier for threat actors to compromise accounts while evading detection mechanisms. + +**Remediation action** + +- [Set Microsoft Entra smart lockout threshold to 10 or less](https://learn.microsoft.com/entra/identity/authentication/howto-password-smart-lockout?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21850.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21850.ps1 new file mode 100644 index 000000000000..cc372297ec95 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21850.ps1 @@ -0,0 +1,51 @@ +function Invoke-CippTestZTNA21850 { + <# + .SYNOPSIS + Smart lockout threshold set to 10 or less + #> + param($Tenant) + + $TestId = 'ZTNA21850' + #Tested + try { + # Get password rule settings from Settings cache + $Settings = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Settings' + $PasswordRuleSettings = $Settings | Where-Object { $_.displayName -eq 'Password Rule Settings' } + + $PortalLink = 'https://entra.microsoft.com/#view/Microsoft_AAD_IAM/AuthenticationMethodsMenuBlade/~/PasswordProtection/fromNav/' + + if ($null -eq $PasswordRuleSettings) { + $Passed = 'Failed' + $ResultMarkdown = '❌ Password rule settings template not found.' + } else { + $LockoutThresholdSetting = $PasswordRuleSettings.values | Where-Object { $_.name -eq 'LockoutThreshold' } + + if ($null -eq $LockoutThresholdSetting) { + $Passed = 'Failed' + $ResultMarkdown = "❌ Lockout threshold setting not found in [password rule settings]($PortalLink)." + } else { + $LockoutThreshold = [int]$LockoutThresholdSetting.value + + if ($LockoutThreshold -le 10) { + $Passed = 'Passed' + $ResultMarkdown = "✅ Smart lockout threshold is set to 10 or below.`n`n" + } else { + $Passed = 'Failed' + $ResultMarkdown = "❌ Smart lockout threshold is configured above 10.`n`n" + } + + $ResultMarkdown += "## [Smart lockout configuration]($PortalLink)`n`n" + $ResultMarkdown += "| Setting | Value |`n" + $ResultMarkdown += "| :---- | :---- |`n" + $ResultMarkdown += "| Lockout threshold | $LockoutThreshold attempts |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Smart lockout threshold set to 10 or less' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Smart lockout threshold set to 10 or less' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21851.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21851.md new file mode 100644 index 000000000000..833ca37a43d4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21851.md @@ -0,0 +1,14 @@ +External user accounts are often used to provide access to business partners who belong to organizations that have a business relationship with your organization. If these accounts are compromised in their organization, attackers can use the valid credentials to gain initial access to your environment, often bypassing traditional defenses due to their legitimacy. + +Attackers might gain access with external user accounts, if multifactor authentication (MFA) isn't universally enforced or if there are exceptions in place. They might also gain access by exploiting the vulnerabilities of weaker MFA methods like SMS and phone calls using social engineering techniques, such as SIM swapping or phishing, to intercept the authentication codes. + +Once an attacker gains access to an account without MFA or a session with weak MFA methods, they might attempt to manipulate MFA settings (for example, registering attacker controlled methods) to establish persistence to plan and execute further attacks based on the privileges of the compromised accounts. + +**Remediation action** + +- [Deploy a Conditional Access policy to enforce authentication strength for guests](https://learn.microsoft.com/entra/identity/conditional-access/policy-guests-mfa-strength?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). +- For organizations with a closer business relationship and vetting on their MFA practices, consider deploying cross-tenant access settings to accept the MFA claim. + - [Configure B2B collaboration cross-tenant access settings](https://learn.microsoft.com/entra/external-id/cross-tenant-access-settings-b2b-collaboration?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#to-change-inbound-trust-settings-for-mfa-and-device-claims) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21854.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21854.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21854.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21855.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21855.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21855.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21857.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21857.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21857.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21858.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21858.md new file mode 100644 index 000000000000..362bc8627a4c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21858.md @@ -0,0 +1,11 @@ +When guest identities remain active but unused for extended periods, threat actors can exploit these dormant accounts as entry vectors into the organization. Inactive guest accounts represent a significant attack surface because they often maintain persistent access permissions to resources, applications, and data while remaining unmonitored by security teams. Threat actors frequently target these accounts through credential stuffing, password spraying, or by compromising the guest's home organization to gain lateral access. Once an inactive guest account is compromised, attackers can utilize existing access grants to: +- Move laterally within the tenant +- Escalate privileges through group memberships or application permissions +- Establish persistence through techniques like creating more service principals or modifying existing permissions + +The prolonged dormancy of these accounts provides attackers with extended dwell time to conduct reconnaissance, exfiltrate sensitive data, and establish backdoors without detection, as organizations typically focus monitoring efforts on active internal users rather than external guest accounts. + +**Remediation action** +- [Monitor and clean up stale guest accounts](https://learn.microsoft.com/en-us/entra/identity/users/clean-up-stale-guest-accounts?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21858.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21858.ps1 new file mode 100644 index 000000000000..053e4f97af4a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21858.ps1 @@ -0,0 +1,93 @@ +function Invoke-CippTestZTNA21858 { + <# + .SYNOPSIS + Inactive guest identities are disabled or removed from the tenant + #> + param($Tenant) + #Tested + try { + $Guests = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Guests' + if (-not $Guests) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21858' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Inactive guest identities are disabled or removed from the tenant' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'External collaboration' + return + } + + $InactivityThresholdDays = 90 + $Today = Get-Date + $EnabledGuests = $Guests | Where-Object { $_.AccountEnabled -eq $true } + + if (-not $EnabledGuests) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21858' -TestType 'Identity' -Status 'Passed' -ResultMarkdown 'No guest users found in the tenant' -Risk 'Medium' -Name 'Inactive guest identities are disabled or removed from the tenant' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'External collaboration' + return + } + + $InactiveGuests = @() + foreach ($Guest in $EnabledGuests) { + $DaysSinceLastActivity = $null + + if ($Guest.signInActivity.lastSuccessfulSignInDateTime) { + $LastSignIn = [DateTime]$Guest.signInActivity.lastSuccessfulSignInDateTime + $DaysSinceLastActivity = ($Today - $LastSignIn).Days + } elseif ($Guest.createdDateTime) { + $Created = [DateTime]$Guest.createdDateTime + $DaysSinceLastActivity = ($Today - $Created).Days + } + + if ($null -ne $DaysSinceLastActivity -and $DaysSinceLastActivity -gt $InactivityThresholdDays) { + $InactiveGuests += $Guest + } + } + + if ($InactiveGuests.Count -gt 0) { + $Status = 'Failed' + + $ResultLines = @( + "Found $($InactiveGuests.Count) inactive guest user(s) with no sign-in activity in the last $InactivityThresholdDays days." + '' + "**Total enabled guests:** $($EnabledGuests.Count)" + "**Inactive guests:** $($InactiveGuests.Count)" + "**Inactivity threshold:** $InactivityThresholdDays days" + '' + '**Top 10 inactive guest users:**' + ) + + $Top10Guests = $InactiveGuests | Sort-Object { + if ($_.signInActivity.lastSuccessfulSignInDateTime) { + [DateTime]$_.signInActivity.lastSuccessfulSignInDateTime + } else { + [DateTime]$_.createdDateTime + } + } | Select-Object -First 10 + + foreach ($Guest in $Top10Guests) { + if ($Guest.signInActivity.lastSuccessfulSignInDateTime) { + $LastActivity = [DateTime]$Guest.signInActivity.lastSuccessfulSignInDateTime + $DaysInactive = [Math]::Round(($Today - $LastActivity).TotalDays, 0) + $ResultLines += "- $($Guest.displayName) ($($Guest.userPrincipalName)) - Last sign-in: $DaysInactive days ago" + } else { + $Created = [DateTime]$Guest.createdDateTime + $DaysSinceCreated = [Math]::Round(($Today - $Created).TotalDays, 0) + $ResultLines += "- $($Guest.displayName) ($($Guest.userPrincipalName)) - Never signed in (Created $DaysSinceCreated days ago)" + } + } + + if ($InactiveGuests.Count -gt 10) { + $ResultLines += "- ... and $($InactiveGuests.Count - 10) more inactive guest(s)" + } + + $ResultLines += '' + $ResultLines += '**Recommendation:** Review and remove or disable inactive guest accounts to reduce security risks.' + + $Result = $ResultLines -join "`n" + } else { + $Status = 'Passed' + $Result = "All enabled guest users have been active within the last $InactivityThresholdDays days" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21858' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Inactive guest identities are disabled or removed from the tenant' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'External collaboration' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21858' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Inactive guest identities are disabled or removed from the tenant' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'External collaboration' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21859.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21859.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21859.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21860.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21860.md new file mode 100644 index 000000000000..cc0b180268cd --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21860.md @@ -0,0 +1,12 @@ +The activity logs and reports in Microsoft Entra can help detect unauthorized access attempts or identify when tenant configuration changes. When logs are archived or integrated with Security Information and Event Management (SIEM) tools, security teams can implement powerful monitoring and detection security controls, proactive threat hunting, and incident response processes. The logs and monitoring features can be used to assess tenant health and provide evidence for compliance and audits. + +If logs aren't regularly archived or sent to a SIEM tool for querying, it's challenging to investigate sign-in issues. The absence of historical logs means that security teams might miss patterns of failed sign-in attempts, unusual activity, and other indicators of compromise. This lack of visibility can prevent the timely detection of breaches, allowing attackers to maintain undetected access for extended periods. + +**Remediation action** + +- [Configure Microsoft Entra diagnostic settings](https://learn.microsoft.com/entra/identity/monitoring-health/howto-configure-diagnostic-settings?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Integrate Microsoft Entra logs with Azure Monitor logs](https://learn.microsoft.com/entra/identity/monitoring-health/howto-integrate-activity-logs-with-azure-monitor-logs?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Stream Microsoft Entra logs to an event hub](https://learn.microsoft.com/entra/identity/monitoring-health/howto-stream-logs-to-event-hub?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21861.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21861.md new file mode 100644 index 000000000000..df6a5fb37715 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21861.md @@ -0,0 +1,11 @@ +Users considered at high risk by Microsoft Entra ID Protection have a high probability of compromise by threat actors. Threat actors can gain initial access via compromised valid accounts, where their suspicious activities continue despite triggering risk indicators. This oversight can enable persistence as threat actors perform activities that normally warrant investigation, such as unusual login patterns or suspicious inbox manipulation. + +A lack of triage of these risky users allows for expanded reconnaissance activities and lateral movement, with anomalous behavior patterns continuing to generate uninvestigated alerts. Threat actors become emboldened as security teams show they aren't actively responding to risk indicators. + +**Remediation action** + +- [Investigate high risk users](https://learn.microsoft.com/entra/id-protection/howto-identity-protection-investigate-risk?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) in Microsoft Entra ID Protection +- [Remediate high risk users and unblock](https://learn.microsoft.com/entra/id-protection/howto-identity-protection-remediate-unblock?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) in Microsoft Entra ID Protection + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21861.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21861.ps1 new file mode 100644 index 000000000000..539f2fc8d3db --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21861.ps1 @@ -0,0 +1,55 @@ +function Invoke-CippTestZTNA21861 { + <# + .SYNOPSIS + All high-risk users are triaged + #> + param($Tenant) + + $TestId = 'ZTNA21861' + #Tested + try { + # Get risky users from cache + $RiskyUsers = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RiskyUsers' + + if (-not $RiskyUsers) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'All high-risk users are triaged' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Monitoring' + return + } + + # Filter for untriaged high-risk users (atRisk state with High risk level) + $UntriagedHighRiskUsers = $RiskyUsers | Where-Object { $_.riskState -eq 'atRisk' -and $_.riskLevel -eq 'high' } + + $Passed = if ($UntriagedHighRiskUsers.Count -eq 0) { 'Passed' } else { 'Failed' } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = '✅ All high-risk users are properly triaged in Entra ID Protection.' + } else { + $ResultMarkdown = "❌ Found **$($UntriagedHighRiskUsers.Count)** untriaged high-risk users in Entra ID Protection.`n`n" + $ResultMarkdown += "## Untriaged High-Risk Users`n`n" + $ResultMarkdown += "| User | Risk level | Last updated | Risk detail |`n" + $ResultMarkdown += "| :--- | :--- | :--- | :--- |`n" + + foreach ($User in $UntriagedHighRiskUsers) { + $UserPrincipalName = if ($User.userPrincipalName) { $User.userPrincipalName } else { $User.id } + $RiskLevel = switch ($User.riskLevel) { + 'high' { '🔴 High' } + 'medium' { '🟡 Medium' } + 'low' { '🟢 Low' } + default { $User.riskLevel } + } + $RiskDate = $User.riskLastUpdatedDateTime + $RiskDetail = $User.riskDetail + + $PortalLink = "https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/overview/userId/$($User.id)" + $ResultMarkdown += "| [$UserPrincipalName]($PortalLink) | $RiskLevel | $RiskDate | $RiskDetail |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'All high-risk users are triaged' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Monitoring' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'All high-risk users are triaged' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Monitoring' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21862.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21862.md new file mode 100644 index 000000000000..5d6fdcb41824 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21862.md @@ -0,0 +1,9 @@ +Compromised workload identities (service principals and applications) allow threat actors to gain persistent access without user interaction or multifactor authentication. Microsoft Entra ID Protection monitors these identities for suspicious activities like leaked credentials, anomalous API traffic, and malicious applications. Unaddressed risky workload identities enable privilege escalation, lateral movement, data exfiltration, and persistent backdoors that bypass traditional security controls. Organizations must systematically investigate and remediate these risks to prevent unauthorized access. + +**Remediation action** + +- [Investigate and remediate risky workload identities](https://learn.microsoft.com/entra/id-protection/concept-workload-identity-risk?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#investigate-risky-workload-identities) +- [Apply Conditional Access policies for workload identities](https://learn.microsoft.com/entra/identity/conditional-access/workload-identity?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21862.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21862.ps1 new file mode 100644 index 000000000000..ed352e74e4fd --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21862.ps1 @@ -0,0 +1,84 @@ +function Invoke-CippTestZTNA21862 { + <# + .SYNOPSIS + All risky workload identities are triaged + #> + param($Tenant) + + $TestId = 'ZTNA21862' + #Tested + try { + # Get risky service principals and risk detections from cache + $UntriagedRiskyPrincipals = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RiskyServicePrincipals' | Where-Object { $_.riskState -eq 'atRisk' } + $ServicePrincipalRiskDetections = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ServicePrincipalRiskDetections' + $UntriagedRiskDetections = $ServicePrincipalRiskDetections | Where-Object { $_.riskState -eq 'atRisk' } + + if (-not $UntriagedRiskyPrincipals -and -not $ServicePrincipalRiskDetections) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'All risky workload identities are triaged' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Monitoring' + return + } + + $Passed = if (($UntriagedRiskyPrincipals.Count -eq 0) -and ($UntriagedRiskDetections.Count -eq 0)) { 'Passed' } else { 'Failed' } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = '✅ All risky workload identities have been triaged' + } else { + $RiskySPCount = $UntriagedRiskyPrincipals.Count + $RiskyDetectionCount = $UntriagedRiskDetections.Count + $ResultMarkdown = "❌ Found $RiskySPCount untriaged risky service principals and $RiskyDetectionCount untriaged risk detections`n`n" + + if ($RiskySPCount -gt 0) { + $ResultMarkdown += "## Untriaged Risky Service Principals`n`n" + $ResultMarkdown += "| Service Principal | Type | Risk Level | Risk State | Risk Last Updated |`n" + $ResultMarkdown += "| :--- | :--- | :--- | :--- | :--- |`n" + foreach ($SP in $UntriagedRiskyPrincipals) { + $PortalLink = "https://entra.microsoft.com/#view/Microsoft_AAD_IAM/ManagedAppMenuBlade/~/SignOn/objectId/$($SP.id)/appId/$($SP.appId)" + $RiskLevel = switch ($SP.riskLevel) { + 'high' { '🔴 High' } + 'medium' { '🟡 Medium' } + 'low' { '🟢 Low' } + default { $SP.riskLevel } + } + $RiskState = switch ($SP.riskState) { + 'atRisk' { '⚠️ At Risk' } + 'confirmedCompromised' { '🔴 Confirmed Compromised' } + 'dismissed' { '✅ Dismissed' } + 'remediated' { '✅ Remediated' } + default { $SP.riskState } + } + $ResultMarkdown += "| [$($SP.displayName)]($PortalLink) | $($SP.servicePrincipalType) | $RiskLevel | $RiskState | $($SP.riskLastUpdatedDateTime) |`n" + } + } + + if ($RiskyDetectionCount -gt 0) { + $ResultMarkdown += "`n`n## Untriaged Risk Detection Events`n`n" + $ResultMarkdown += "| Service Principal | Risk Level | Risk State | Risk Event Type | Risk Last Updated |`n" + $ResultMarkdown += "| :--- | :--- | :--- | :--- | :--- |`n" + foreach ($Detection in $UntriagedRiskDetections) { + $PortalLink = "https://entra.microsoft.com/#view/Microsoft_AAD_IAM/ManagedAppMenuBlade/~/SignOn/objectId/$($Detection.servicePrincipalId)/appId/$($Detection.appId)" + $RiskLevel = switch ($Detection.riskLevel) { + 'high' { '🔴 High' } + 'medium' { '🟡 Medium' } + 'low' { '🟢 Low' } + default { $Detection.riskLevel } + } + $RiskState = switch ($Detection.riskState) { + 'atRisk' { '⚠️ At Risk' } + 'confirmedCompromised' { '🔴 Confirmed Compromised' } + 'dismissed' { '✅ Dismissed' } + 'remediated' { '✅ Remediated' } + default { $Detection.riskState } + } + $ResultMarkdown += "| [$($Detection.servicePrincipalDisplayName)]($PortalLink) | $RiskLevel | $RiskState | $($Detection.riskEventType) | $($Detection.detectedDateTime) |`n" + } + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'All risky workload identities are triaged' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Monitoring' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'All risky workload identities are triaged' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Monitoring' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21863.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21863.md new file mode 100644 index 000000000000..7729b0c365ac --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21863.md @@ -0,0 +1,11 @@ +Risky sign-ins flagged by Microsoft Entra ID Protection indicate a high probability of unauthorized access attempts. Threat actors use these sign-ins to gain an initial foothold. If these sign-ins remain uninvestigated, adversaries can establish persistence by repeatedly authenticating under the guise of legitimate users. + +A lack of response lets attackers execute reconnaissance, attempt to escalate their access, and blend into normal patterns. When untriaged sign-ins continue to generate alerts and there's no intervention, security gaps widen, facilitating lateral movement and defense evasion, as adversaries recognize the absence of an active security response. + +**Remediation action** + +- [Investigate risky sign-ins](https://learn.microsoft.com/entra/id-protection/howto-identity-protection-investigate-risk?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Remediate risks and unblock users](https://learn.microsoft.com/entra/id-protection/howto-identity-protection-remediate-unblock?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21863.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21863.ps1 new file mode 100644 index 000000000000..eb20d361776d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21863.ps1 @@ -0,0 +1,52 @@ +function Invoke-CippTestZTNA21863 { + <# + .SYNOPSIS + All high-risk sign-ins are triaged + #> + param($Tenant) + + $TestId = 'ZTNA21863' + #Tested + try { + # Get risk detections from cache and filter for high-risk untriaged sign-ins + $RiskDetections = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RiskDetections' + + if (-not $RiskDetections) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'All high-risk sign-ins are triaged' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Monitoring' + return + } + + $UntriagedHighRiskSignIns = $RiskDetections | Where-Object { $_.riskState -eq 'atRisk' -and $_.riskLevel -eq 'high' } + + $Passed = if ($UntriagedHighRiskSignIns.Count -eq 0) { 'Passed' } else { 'Failed' } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = '✅ No untriaged risky sign ins in the tenant.' + } else { + $ResultMarkdown = "❌ Found **$($UntriagedHighRiskSignIns.Count)** untriaged high-risk sign ins.`n`n" + $ResultMarkdown += "## Untriaged High-Risk Sign ins`n`n" + $ResultMarkdown += "| Date | User Principal Name | Type | Risk Level |`n" + $ResultMarkdown += "| :---- | :---- | :---- | :---- |`n" + + foreach ($Risk in $UntriagedHighRiskSignIns) { + $UserPrincipalName = $Risk.userPrincipalName + $RiskLevel = switch ($Risk.riskLevel) { + 'high' { '🔴 High' } + 'medium' { '🟡 Medium' } + 'low' { '🟢 Low' } + default { $Risk.riskLevel } + } + $RiskEventType = $Risk.riskEventType + $RiskDate = $Risk.detectedDateTime + $ResultMarkdown += "| $RiskDate | $UserPrincipalName | $RiskEventType | $RiskLevel |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'All high-risk sign-ins are triaged' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Monitoring' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'All high-risk sign-ins are triaged' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Monitoring' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21864.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21864.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21864.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21865.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21865.md new file mode 100644 index 000000000000..fba7fae508d8 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21865.md @@ -0,0 +1,7 @@ +Without named locations configured in Microsoft Entra ID, threat actors can exploit the absence of location intelligence to conduct attacks without triggering location-based risk detections or security controls. When organizations fail to define named locations for trusted networks, branch offices, and known geographic regions, Microsoft Entra ID Protection can't assess location-based risk signals. Not having these policies in place can lead to increased false positives that create alert fatigue and potentially mask genuine threats. This configuration gap prevents the system from distinguishing between legitimate and illegitimate locations. For example, legitimate sign-ins from corporate networks and suspicious authentication attempts from high-risk locations (anonymous proxy networks, Tor exit nodes, or regions where the organization has no business presence). Threat actors can use this uncertainty to conduct credential stuffing attacks, password spray campaigns, and initial access attempts from malicious infrastructure without triggering location-based detections that would normally flag such activity as suspicious. Organizations can also lose the ability to implement adaptive security policies that could automatically apply stricter authentication requirements or block access entirely from untrusted geographic regions. Threat actors can maintain persistence and conduct lateral movement from any global location without encountering location-based security barriers, which should serve as an extra layer of defense against unauthorized access attempts. + +**Remediation action** + +- [Configure named locations to define trusted IP ranges and geographic regions for enhanced location-based risk detection and Conditional Access policy enforcement](https://learn.microsoft.com/en-us/entra/identity/conditional-access/concept-assignment-network?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21865.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21865.ps1 new file mode 100644 index 000000000000..b250a508c639 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21865.ps1 @@ -0,0 +1,52 @@ +function Invoke-CippTestZTNA21865 { + <# + .SYNOPSIS + Named locations are configured + #> + param($Tenant) + + $TestId = 'ZTNA21865' + #tested + try { + $NamedLocations = New-CIPPDbRequest -TenantFilter $Tenant -Type 'NamedLocations' + + if (-not $NamedLocations) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Named locations are configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application management' + return + } + + $TrustedLocations = @($NamedLocations | Where-Object { $_.isTrusted -eq $true }) + $Passed = $TrustedLocations.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ Trusted named locations are configured.`n`n" + } else { + $ResultMarkdown = "❌ No trusted named locations configured.`n`n" + } + + $ResultMarkdown += "## Named Locations`n`n" + $ResultMarkdown += "$($NamedLocations.Count) named locations found.`n`n" + + if ($NamedLocations.Count -gt 0) { + $ResultMarkdown += "| Name | Type | Trusted |`n" + $ResultMarkdown += "| :--- | :--- | :------ |`n" + + foreach ($Location in $NamedLocations) { + $Name = $Location.displayName + $Type = if ($Location.'@odata.type' -eq '#microsoft.graph.ipNamedLocation') { 'IP-based' } + elseif ($Location.'@odata.type' -eq '#microsoft.graph.countryNamedLocation') { 'Country-based' } + else { 'Unknown' } + $Trusted = if ($Location.isTrusted) { 'Yes' } else { 'No' } + $ResultMarkdown += "| $Name | $Type | $Trusted |`n" + } + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Named locations are configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Named locations are configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21866.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21866.md new file mode 100644 index 000000000000..bdfe46a9f74d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21866.md @@ -0,0 +1,8 @@ +Microsoft Entra recommendations give organizations opportunities to implement best practices and optimize their security posture. Not acting on these items might result in an increased attack surface area, suboptimal operations, or poor user experience. + +**Remediation action** + +- [Address all active or postponed recommendations in the Microsoft Entra admin center](https://learn.microsoft.com/entra/identity/monitoring-health/overview-recommendations?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#how-does-it-work) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21866.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21866.ps1 new file mode 100644 index 000000000000..754dacc9ff22 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21866.ps1 @@ -0,0 +1,48 @@ +function Invoke-CippTestZTNA21866 { + <# + .SYNOPSIS + All Microsoft Entra recommendations are addressed + #> + param($Tenant) + #Tested + $TestId = 'ZTNA21866' + + try { + # Get directory recommendations from cache + $Recommendations = New-CIPPDbRequest -TenantFilter $Tenant -Type 'DirectoryRecommendations' + + if (-not $Recommendations) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'All Microsoft Entra recommendations are addressed' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Monitoring' + return + } + + # Filter for unaddressed recommendations (active or postponed status) + $UnaddressedRecommendations = $Recommendations | Where-Object { $_.status -in @('active', 'postponed') } + + $Passed = if ($UnaddressedRecommendations.Count -eq 0) { 'Passed' } else { 'Failed' } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = '✅ All Entra Recommendations are addressed.' + } else { + $ResultMarkdown = "❌ Found $($UnaddressedRecommendations.Count) unaddressed Entra recommendations.`n`n" + $ResultMarkdown += "## Unaddressed Entra recommendations`n`n" + $ResultMarkdown += "| Display Name | Status | Insights | Priority |`n" + $ResultMarkdown += "| :--- | :--- | :--- | :--- |`n" + + foreach ($Item in $UnaddressedRecommendations) { + $DisplayName = $Item.displayName + $Status = $Item.status + $Insights = $Item.insights + $Priority = $Item.priority + $ResultMarkdown += "| $DisplayName | $Status | $Insights | $Priority |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'All Microsoft Entra recommendations are addressed' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Monitoring' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'All Microsoft Entra recommendations are addressed' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Monitoring' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21867.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21867.md new file mode 100644 index 000000000000..d10b375bc681 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21867.md @@ -0,0 +1,9 @@ +Without owners, enterprise applications become orphaned assets that threat actors can exploit through credential harvesting and privilege escalation techniques. These applications often retain elevated permissions and access to sensitive resources while lacking proper oversight and security governance. The elevation of privilege to owners can raise a security concern, depending on the application's permissions. More critically, applications without an owner can create uncertainty in security monitoring where threat actors can establish persistence by using existing application permissions to access data or create backdoor accounts without triggering ownership-based detection mechanisms. + +When applications lack owners, security teams can't effectively conduct application lifecycle management. This gap leaves applications with potentially excessive permissions, outdated configurations, or compromised credentials that threat actors can discover through enumeration techniques and exploit to move laterally within the environment. The absence of ownership also prevents proper access reviews and permission audits, allowing threat actors to maintain long-term access through applications that should be decommissioned or had their permissions reduced. Not maintaining a clean application portfolio can provide persistent access vectors that can be used for data exfiltration or further compromise of the environment. + +**Remediation action** + +- [Assign owners to applications](https://learn.microsoft.com/en-us/entra/identity/enterprise-apps/assign-app-owners?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21868.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21868.md new file mode 100644 index 000000000000..c970477e6b2f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21868.md @@ -0,0 +1,9 @@ +Without restrictions preventing guest users from registering and owning applications, threat actors can exploit external user accounts to establish persistent backdoor access to organizational resources through application registrations that might evade traditional security monitoring. When guest users own applications, compromised guest accounts can be used to exploit guest-owned applications that might have broad permissions. This vulnerability enables threat actors to request access to sensitive organizational data such as emails, files, and user information without the same level of scrutiny for internal user-owned applications. + +This attack vector is dangerous because guest-owned applications can be configured to request high-privilege permissions and, once granted consent, provide threat actors with legitimate OAuth tokens. Furthermore, guest-owned applications can serve as command and control infrastructure, so threat actors can maintain access even after the compromised guest account is detected and remediated. Application credentials and permissions might persist independently of the original guest user account, so threat actors can retain access. Guest-owned applications also complicate security auditing and governance efforts, as organizations might have limited visibility into the purpose and security posture of applications registered by external users. These hidden weaknesses in the application lifecycle management make it difficult to assess the true scope of data access granted to non-Microsoft entities through seemingly legitimate application registrations. + +**Remediation action** +- Remove guest users as owners from applications and service principals, and implement controls to prevent future guest user application ownership. +- [Restrict guest user access permissions](https://learn.microsoft.com/en-us/entra/identity/users/users-restrict-guest-permissions?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21868.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21868.ps1 new file mode 100644 index 000000000000..367b8a2a511f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21868.ps1 @@ -0,0 +1,105 @@ +function Invoke-CippTestZTNA21868 { + <# + .SYNOPSIS + Guests do not own apps in the tenant + #> + param($Tenant) + + try { + $Guests = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Guests' + $Apps = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Apps' + $ServicePrincipals = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ServicePrincipals' + + if (-not $Guests -or -not $Apps -or -not $ServicePrincipals) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21868' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Guests do not own apps in the tenant' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'External collaboration' + return + } + + # Create a HashSet of guest user IDs for fast lookups + $GuestUserIds = [System.Collections.Generic.HashSet[string]]::new() + foreach ($guest in $Guests) { + [void]$GuestUserIds.Add($guest.id) + } + + # Initialize lists for guest owners + $GuestAppOwners = [System.Collections.Generic.List[object]]::new() + $GuestSpOwners = [System.Collections.Generic.List[object]]::new() + + # Check applications for guest owners + foreach ($app in $Apps) { + if ($app.owners -and $app.owners.Count -gt 0) { + foreach ($owner in $app.owners) { + if ($GuestUserIds.Contains($owner.id)) { + $ownerInfo = [PSCustomObject]@{ + id = $owner.id + displayName = $owner.displayName + userPrincipalName = $owner.userPrincipalName + appDisplayName = $app.displayName + appObjectId = $app.id + appId = $app.appId + } + $GuestAppOwners.Add($ownerInfo) + } + } + } + } + + # Check service principals for guest owners + foreach ($sp in $ServicePrincipals) { + if ($sp.owners -and $sp.owners.Count -gt 0) { + foreach ($owner in $sp.owners) { + if ($GuestUserIds.Contains($owner.id)) { + $ownerInfo = [PSCustomObject]@{ + id = $owner.id + displayName = $owner.displayName + userPrincipalName = $owner.userPrincipalName + spDisplayName = $sp.displayName + spObjectId = $sp.id + spAppId = $sp.appId + } + $GuestSpOwners.Add($ownerInfo) + } + } + } + } + + $HasGuestAppOwners = $GuestAppOwners.Count -gt 0 + $HasGuestSpOwners = $GuestSpOwners.Count -gt 0 + + if ($HasGuestAppOwners -or $HasGuestSpOwners) { + $Status = 'Failed' + $Result = "Guest users own applications or service principals`n`n" + + if ($HasGuestAppOwners -and $HasGuestSpOwners) { + $Result += "## Guest users own both applications and service principals`n`n" + $Result += "### Applications owned by guest users`n`n" + $Result += "| User Display Name | User Principal Name | Application |`n" + $Result += "| :---------------- | :------------------ | :---------- |`n" + $Result += ($GuestAppOwners | ForEach-Object { "| $($_.displayName) | $($_.userPrincipalName) | $($_.appDisplayName) |" }) -join "`n" + $Result += "`n`n### Service principals owned by guest users`n`n" + $Result += "| User Display Name | User Principal Name | Service Principal |`n" + $Result += "| :---------------- | :------------------ | :---------------- |`n" + $Result += ($GuestSpOwners | ForEach-Object { "| $($_.displayName) | $($_.userPrincipalName) | $($_.spDisplayName) |" }) -join "`n" + } elseif ($HasGuestAppOwners) { + $Result += "## Guest users own applications`n`n" + $Result += "| User Display Name | User Principal Name | Application |`n" + $Result += "| :---------------- | :------------------ | :---------- |`n" + $Result += ($GuestAppOwners | ForEach-Object { "| $($_.displayName) | $($_.userPrincipalName) | $($_.appDisplayName) |" }) -join "`n" + } elseif ($HasGuestSpOwners) { + $Result += "## Guest users own service principals`n`n" + $Result += "| User Display Name | User Principal Name | Service Principal |`n" + $Result += "| :---------------- | :------------------ | :---------------- |`n" + $Result += ($GuestSpOwners | ForEach-Object { "| $($_.displayName) | $($_.userPrincipalName) | $($_.spDisplayName) |" }) -join "`n" + } + } else { + $Status = 'Passed' + $Result = 'No guest users own any applications or service principals in the tenant' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21868' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Guests do not own apps in the tenant' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'External collaboration' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21868' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Guests do not own apps in the tenant' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'External collaboration' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21869.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21869.md new file mode 100644 index 000000000000..17fa7ba85d04 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21869.md @@ -0,0 +1,10 @@ +When enterprise applications lack both explicit assignment requirements AND scoped provisioning controls, threat actors can exploit this dual weakness to gain unauthorized access to sensitive applications and data. The highest risk occurs when applications are configured with the default setting: "Assignment required" is set to "No" *and* provisioning isn't required or scoped. This dangerous combination allows threat actors who compromise any user account within the tenant to immediately access applications with broad user bases, expanding their attack surface and potential for lateral movement within the organization. + +While an application with open assignment but proper provisioning scoping (such as department-based filters or group membership requirements) maintains security controls through the provisioning layer, applications lacking both controls create unrestricted access pathways that threat actors can exploit. When applications provision accounts for all users without assignment restrictions, threat actors can abuse compromised accounts to conduct reconnaissance activities, enumerate sensitive data across multiple systems, or use the applications as staging points for further attacks against connected resources. This unrestricted access model is dangerous for applications that have elevated permissions or are connected to critical business systems. Threat actors can use any compromised user account to access sensitive information, modify data, or perform unauthorized actions that the application's permissions allow. The absence of both assignment controls and provisioning scoping also prevents organizations from implementing proper access governance. Without proper governance, it's difficult to track who has access to which applications, when access was granted, and whether access should be revoked based on role changes or employment status. Furthermore, applications with broad provisioning scopes can create cascading security risks where a single compromised account provides access to an entire ecosystem of connected applications and services. + +**Remediation action** +- Evaluate business requirements to determine appropriate access control method. [Restrict a Microsoft Entra app to a set of users](https://learn.microsoft.com/en-us/entra/identity-platform/howto-restrict-your-app-to-a-set-of-users?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). +- Configure enterprise applications to require assignment for sensitive applications. [Learn about the "Assignment required" enterprise application property](https://learn.microsoft.com/en-us/entra/identity/enterprise-apps/application-properties?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#assignment-required). +- Implement scoped provisioning based on groups, departments, or attributes. [Create scoping filters](https://learn.microsoft.com/en-us/entra/identity/app-provisioning/define-conditional-rules-for-provisioning-user-accounts?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-scoping-filters). +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21869.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21869.ps1 new file mode 100644 index 000000000000..dcaa09e51496 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21869.ps1 @@ -0,0 +1,57 @@ +function Invoke-CippTestZTNA21869 { + <# + .SYNOPSIS + Enterprise applications must require explicit assignment or scoped provisioning + #> + param($Tenant) + #tenant + try { + $ServicePrincipals = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ServicePrincipals' + if (-not $ServicePrincipals) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21869' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Enterprise applications must require explicit assignment or scoped provisioning' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Application management' + return + } + + $AppsWithoutAssignment = $ServicePrincipals | Where-Object { + $_.appRoleAssignmentRequired -eq $false -and + $null -ne $_.preferredSingleSignOnMode -and + $_.preferredSingleSignOnMode -in @('password', 'saml', 'oidc') -and + $_.accountEnabled -eq $true + } + + if (-not $AppsWithoutAssignment) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21869' -TestType 'Identity' -Status 'Passed' -ResultMarkdown 'All enterprise applications have explicit assignment requirements' -Risk 'Medium' -Name 'Enterprise applications must require explicit assignment or scoped provisioning' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Application management' + return + } + + $Status = 'Investigate' + + $ResultLines = @( + "Found $($AppsWithoutAssignment.Count) enterprise application(s) without assignment requirements." + '' + '**Applications without user assignment requirements:**' + ) + + $Top10Apps = $AppsWithoutAssignment | Select-Object -First 10 + foreach ($App in $Top10Apps) { + $ResultLines += "- $($App.displayName) (SSO: $($App.preferredSingleSignOnMode))" + } + + if ($AppsWithoutAssignment.Count -gt 10) { + $ResultLines += "- ... and $($AppsWithoutAssignment.Count - 10) more application(s)" + } + + $ResultLines += '' + $ResultLines += '**Note:** Full provisioning scope validation requires Graph API synchronization endpoint not available in cache.' + $ResultLines += '' + $ResultLines += '**Recommendation:** Enable user assignment requirements or configure scoped provisioning to limit application access.' + + $Result = $ResultLines -join "`n" + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21869' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Enterprise applications must require explicit assignment or scoped provisioning' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Application management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21869' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Enterprise applications must require explicit assignment or scoped provisioning' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Application management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21870.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21870.md new file mode 100644 index 000000000000..91ed1541e019 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21870.md @@ -0,0 +1,9 @@ +Without Self-Service Password Reset (SSPR) enabled, users with password-related issues must contact help desk support, which can cause in operational delays and lost productivity. There are also potential security vulnerabilities during the extended timeframe required for administrative password resets. These delays not only reduce employee efficiency (especially in time-sensitive roles), but also increase support costs and strain IT resources. During these periods, threat actors might exploit locked accounts through social engineering attacks targeting help desk personnel. Threat actors can potentially convince support staff to reset passwords for accounts they don't legitimately control, enabling initial access to user credentials. + +When users are unable to reset their own passwords through secure, automated processes, they frequently resort to insecure workarounds. Examples include sharing accounts with colleagues, using weak passwords that are easier to remember, or writing down passwords in discoverable locations, all of which expand the attack surface for credential harvesting techniques. The lack of SSPR forces users to maintain static passwords for longer periods between administrative resets. This type of password policy increases the likelihood that compromised credentials from previous breaches or password spray attacks remain valid and usable by threat actors. The absence of user-controlled password reset capabilities also delays the response time for users to secure their accounts when they suspect compromise. This delay allows threat actors extended persistence within compromised accounts to perform reconnaissance, establish other access methods, or exfiltrate sensitive data before the account is eventually reset through administrative channels + +**Remediation action** + +- [Enable Self-Service Password Reset](https://learn.microsoft.com/en-us/entra/identity/authentication/tutorial-enable-sspr?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21872.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21872.md new file mode 100644 index 000000000000..41edcdf8e024 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21872.md @@ -0,0 +1,8 @@ +Threat actors can exploit the lack of multifactor authentication during new device registration. Once authenticated, they can register rogue devices, establish persistence, and circumvent security controls tied to trusted endpoints. This foothold enables attackers to exfiltrate sensitive data, deploy malicious applications, or move laterally, depending on the permissions of the accounts being used by the attacker. Without MFA enforcement, risk escalates as adversaries can continuously reauthenticate, evade detection, and execute objectives. + +**Remediation action** + +- [Deploy a Conditional Access policy to require multifactor authentication for device registration](https://learn.microsoft.com/entra/identity/conditional-access/policy-all-users-device-registration?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21872.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21872.ps1 new file mode 100644 index 000000000000..0ccf79cf8d6b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21872.ps1 @@ -0,0 +1,106 @@ +function Invoke-CippTestZTNA21872 { + <# + .SYNOPSIS + Require multifactor authentication for device join and device registration using user action + #> + param($Tenant) + + $TestId = 'ZTNA21872' + #Tested + try { + # Get conditional access policies and device registration policy from cache + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + $DeviceRegistrationPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'DeviceRegistrationPolicy' + + if (-not $CAPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Require multifactor authentication for device join and device registration using user action' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Access control' + return + } + + if (-not $DeviceRegistrationPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Require multifactor authentication for device join and device registration using user action' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Access control' + return + } + + $MfaRequiredInDeviceSettings = $DeviceRegistrationPolicy.multiFactorAuthConfiguration -eq 'required' + + # Filter for enabled device registration CA policies + $DeviceRegistrationPolicies = $CAPolicies | Where-Object { + ($_.state -eq 'enabled') -and + ($_.conditions.applications.includeUserActions -eq 'urn:user:registerdevice') + } + + # Check each policy to see if it properly requires MFA + $ValidPolicies = [System.Collections.Generic.List[object]]::new() + foreach ($Policy in $DeviceRegistrationPolicies) { + $RequiresMfa = $false + + # Check if the policy directly requires MFA + if ($Policy.grantControls.builtInControls -contains 'mfa') { + $RequiresMfa = $true + } + + # Check if the policy uses any authentication strength + if ($null -ne $Policy.grantControls.authenticationStrength) { + $RequiresMfa = $true + } + + # If the policy requires MFA, add it to valid policies + if ($RequiresMfa) { + $ValidPolicies.Add($Policy) + } + } + + # Determine pass/fail conditions + if ($MfaRequiredInDeviceSettings) { + $Passed = 'Failed' + $ResultMarkdown = "❌ **MFA is configured incorrectly.** Device Settings has 'Require Multi-Factor Authentication to register or join devices' set to Yes. According to best practices, this should be set to No, and MFA should be enforced through Conditional Access policies instead.`n`n" + } elseif ($DeviceRegistrationPolicies.Count -eq 0) { + $Passed = 'Failed' + $ResultMarkdown = "❌ **No Conditional Access policies found** for device registration or device join. Create a policy that requires MFA for these user actions.`n`n" + } elseif ($ValidPolicies.Count -eq 0) { + $Passed = 'Failed' + $ResultMarkdown = "❌ **Conditional Access policies found**, but they're not correctly configured. Policies should require MFA or appropriate authentication strength.`n`n" + } else { + $Passed = 'Passed' + $ResultMarkdown = "✅ **Properly configured Conditional Access policies found** that require MFA for device registration/join actions.`n`n" + } + + # Add device settings information + $ResultMarkdown += "## Device Settings Configuration`n`n" + $ResultMarkdown += "| Setting | Value | Recommended Value | Status |`n" + $ResultMarkdown += "| :------ | :---- | :---------------- | :----- |`n" + + $DeviceSettingStatus = if ($MfaRequiredInDeviceSettings) { '❌ Should be set to No' } else { '✅ Correctly configured' } + $DeviceSettingValue = if ($MfaRequiredInDeviceSettings) { 'Yes' } else { 'No' } + $ResultMarkdown += "| Require Multi-Factor Authentication to register or join devices | $DeviceSettingValue | No | $DeviceSettingStatus |`n" + + # Add policies information if any found + if ($DeviceRegistrationPolicies.Count -gt 0) { + $ResultMarkdown += "`n## Device Registration/Join Conditional Access Policies`n`n" + $ResultMarkdown += "| Policy Name | State | Requires MFA | Status |`n" + $ResultMarkdown += "| :---------- | :---- | :----------- | :----- |`n" + + foreach ($Policy in $DeviceRegistrationPolicies) { + $PolicyName = $Policy.displayName + $PolicyState = $Policy.state + $PolicyLink = "https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/PolicyBlade/policyId/$($Policy.id)" + $PolicyNameLink = "[$PolicyName]($PolicyLink)" + + # Check if this policy is properly configured + $IsValid = $Policy -in $ValidPolicies + $RequiresMfaText = if ($IsValid) { 'Yes' } else { 'No' } + $StatusText = if ($IsValid) { '✅ Properly configured' } else { '❌ Incorrectly configured' } + + $ResultMarkdown += "| $PolicyNameLink | $PolicyState | $RequiresMfaText | $StatusText |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Require multifactor authentication for device join and device registration using user action' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Access control' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Require multifactor authentication for device join and device registration using user action' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Access control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21874.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21874.md new file mode 100644 index 000000000000..9b70ca640329 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21874.md @@ -0,0 +1,10 @@ +Limiting guest access to a known and approved list of tenants helps to prevent threat actors from exploiting unrestricted guest access to establish initial access through compromised external accounts or by creating accounts in untrusted tenants. Threat actors who gain access through an unrestricted domain can discover internal resources, users, and applications to perform additional attacks. + +Organizations should take inventory and configure an allowlist or blocklist to control B2B collaboration invitations from specific organizations. Without these controls, threat actors might use social engineering techniques to obtain invitations from legitimate internal users. + +**Remediation action** + +- Learn how to [set up a list of approved domains](https://learn.microsoft.com/entra/external-id/allow-deny-list?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#add-an-allowlist). + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21874.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21874.ps1 new file mode 100644 index 000000000000..3adfce12208b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21874.ps1 @@ -0,0 +1,44 @@ +function Invoke-CippTestZTNA21874 { + <# + .SYNOPSIS + Guest access is limited to approved tenants + #> + param($Tenant) + + $TestId = 'ZTNA21874' + #Trusted + try { + # Get B2B Management Policy from cache + $B2BManagementPolicyObject = New-CIPPDbRequest -TenantFilter $Tenant -Type 'B2BManagementPolicy' + + if (-not $B2BManagementPolicyObject) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Guest access is limited to approved tenants' -UserImpact 'Medium' -ImplementationEffort 'High' -Category 'External collaboration' + return + } + + $Passed = 'Failed' + $AllowedDomains = $null + + if ($B2BManagementPolicyObject.definition) { + $B2BManagementPolicy = ($B2BManagementPolicyObject.definition | ConvertFrom-Json).B2BManagementPolicy + $AllowedDomains = $B2BManagementPolicy.InvitationsAllowedAndBlockedDomainsPolicy.AllowedDomains + + if ($AllowedDomains -and $AllowedDomains.Count -gt 0) { + $Passed = 'Passed' + } + } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = '✅ Allow/Deny lists of domains to restrict external collaboration are configured.' + } else { + $ResultMarkdown = '❌ Allow/Deny lists of domains to restrict external collaboration are not configured.' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Guest access is limited to approved tenants' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'External collaboration' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Guest access is limited to approved tenants' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'External collaboration' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21875.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21875.md new file mode 100644 index 000000000000..df03f46ad2ee --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21875.md @@ -0,0 +1,9 @@ +Access packages configured to allow "All users" instead of specific connected organizations expose your organization to uncontrolled external access. Threat actors can exploit this by requesting access through compromised external accounts from unauthorized organizations, bypassing the principle of least privilege. This enables initial access, reconnaissance, privilege escalation, and lateral movement within your environment. + +**Remediation action** + +- [Define trusted organizations as connected organizations](https://learn.microsoft.com/entra/id-governance/entitlement-management-organization?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#view-the-list-of-connected-organizations) +- [Configure access packages to only allow specific connected organizations](https://learn.microsoft.com/entra/id-governance/entitlement-management-access-package-create?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#allow-users-not-in-your-directory-to-request-the-access-package) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21876.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21876.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21876.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21877.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21877.md new file mode 100644 index 000000000000..ed479604ad5b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21877.md @@ -0,0 +1,15 @@ +Inviting external guests is beneficial for organizational collaboration. However, in the absence of an assigned internal sponsor for each guest, these accounts might persist within the directory without clear accountability. This oversight creates a risk: threat actors could potentially compromise an unused or unmonitored guest account, and then establish an initial foothold within the tenant. Once granted access as an apparent "legitimate" user, an attacker might explore accessible resources and attempt privilege escalation, which could ultimately expose sensitive information or critical systems. An unmonitored guest account might therefore become the vector for unauthorized data access or a significant security breach. A typical attack sequence might use the following pattern, all achieved under the guise of a standard external collaborator: + +1. Initial access gained through compromised guest credentials +1. Persistence due to a lack of oversight. +1. Further escalation or lateral movement if the guest account possesses group memberships or elevated permissions. +1. Execution of malicious objectives. + +Mandating that every guest account is assigned to a sponsor directly mitigates this risk. Such a requirement ensures that each external user is linked to a responsible internal party who is expected to regularly monitor and attest to the guest's ongoing need for access. The sponsor feature within Microsoft Entra ID supports accountability by tracking the inviter and preventing the proliferation of "orphaned" guest accounts. When a sponsor manages the guest account lifecycle, such as removing access when collaboration concludes, the opportunity for threat actors to exploit neglected accounts is substantially reduced. This best practice is consistent with Microsoft’s guidance to require sponsorship for business guests as part of an effective guest access governance strategy. It strikes a balance between enabling collaboration and enforcing security, as it guarantees that each guest user's presence and permissions remain under ongoing internal oversight. + +**Remediation action** +- For each guest user that has no sponsor, assign a sponsor in Microsoft Entra ID. + - [Add a sponsor to a guest user in the Microsoft Entra admin center](https://learn.microsoft.com/en-us/entra/external-id/b2b-sponsors?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + - [Add a sponsor to a guest user using Microsoft Graph](https://learn.microsoft.com/graph/api/user-post-sponsors?view=graph-rest-1.0&preserve-view=true&wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21877.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21877.ps1 new file mode 100644 index 000000000000..a2272933ab8d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21877.ps1 @@ -0,0 +1,59 @@ +function Invoke-CippTestZTNA21877 { + <# + .SYNOPSIS + All guests have a sponsor + #> + param($Tenant) + #Tested + try { + $Guests = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Guests' + if (-not $Guests) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21877' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'All guests have a sponsor' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Application management' + return + } + + if ($Guests.Count -eq 0) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21877' -TestType 'Identity' -Status 'Passed' -ResultMarkdown 'No guest accounts found in the tenant' -Risk 'Medium' -Name 'All guests have a sponsor' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Application management' + return + } + + $GuestsWithoutSponsors = $Guests | Where-Object { -not $_.sponsors -or $_.sponsors.Count -eq 0 } + + if ($GuestsWithoutSponsors.Count -eq 0) { + $Status = 'Passed' + $Result = 'All guest accounts in the tenant have an assigned sponsor' + } else { + $Status = 'Failed' + + $ResultLines = @( + "Found $($GuestsWithoutSponsors.Count) guest user(s) without sponsors out of $($Guests.Count) total guests." + '' + "**Total guests:** $($Guests.Count)" + "**Guests without sponsors:** $($GuestsWithoutSponsors.Count)" + "**Guests with sponsors:** $($Guests.Count - $GuestsWithoutSponsors.Count)" + '' + '**Top 10 guests without sponsors:**' + ) + + $Top10Guests = $GuestsWithoutSponsors | Select-Object -First 10 + foreach ($Guest in $Top10Guests) { + $ResultLines += "- $($Guest.displayName) ($($Guest.userPrincipalName))" + } + + if ($GuestsWithoutSponsors.Count -gt 10) { + $ResultLines += "- ... and $($GuestsWithoutSponsors.Count - 10) more guest(s)" + } + + $ResultLines += '' + $ResultLines += '**Recommendation:** Assign sponsors to all guest accounts for better accountability and lifecycle management.' + + $Result = $ResultLines -join "`n" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21877' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'All guests have a sponsor' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Application management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21877' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'All guests have a sponsor' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Application management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21878.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21878.md new file mode 100644 index 000000000000..762389bcce22 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21878.md @@ -0,0 +1,7 @@ +Entitlement management policies without expiration dates create persistent access that threat actors can exploit. When user assignments lack time bounds, compromised credentials maintain indefinite access, enabling attackers to establish persistence, escalate privileges through additional access packages, and conduct long-term malicious activities while remaining undetected. + +**Remediation action** + +- [Configure expiration settings for access packages](https://learn.microsoft.com/entra/id-governance/entitlement-management-access-package-lifecycle-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#specify-a-lifecycle) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21879.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21879.md new file mode 100644 index 000000000000..5d2c99793491 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21879.md @@ -0,0 +1,11 @@ +## Overview + +Without enforced approval on entitlement management policies that allow external users, a threat actor can self-orchestrate initial access by submitting unattended requests that are auto-approved. Each successful request provisions or reuses a guest user object and grant access to resources included in the access package, immediately expanding reconnaissance surface. From that foothold the actor can enumerate additional collaboration surfaces, harvest shared files, and probe mis-scoped app permissions to escalate (e.g., abusing over-privileged group-based roles or app role assignments). They can persist by requesting multiple packages with overlapping or escalating privileges, re-extending assignments if expiration or reviews are lax, or by creating indirect sharing links inside granted SharePoint or Teams resources. Absence of an approval gate also removes a human anomaly check (sponsor/internal/external approver) that would otherwise filter suspicious volume, timing, geography, or improbable justification patterns, shrinking detection dwell-time. This accelerates lateral movement (pivoting through granted group memberships to additional workloads), facilitates data staging and exfiltration from SharePoint/Teams or app APIs, and increases the blast radius before downstream controls (access reviews, expirations) eventually trigger. Microsoft’s guidance explicitly states approval should be required when external users can request access to ensure oversight; bypassing it effectively converts a governed onboarding path into an unsupervised provisioning for external identities, expanding tenant-wide risk until manual discovery or periodic governance cycles intervene. + +**Remediation action** + +- [Configure approval for external request policies (toggle Require approval)](https://learn.microsoft.com/en-us/entra/id-governance/entitlement-management-access-package-approval-policy ) + + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21881.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21881.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21881.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21882.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21882.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21882.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21883.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21883.md new file mode 100644 index 000000000000..9440b98d3f84 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21883.md @@ -0,0 +1,8 @@ +Set up risk-based Conditional Access policies for workload identities based on risk policy in Microsoft Entra ID to make sure only trusted and verified workloads use sensitive resources. Without these policies, threat actors can compromise workload identities with minimal detection and perform further attacks. Without conditional controls to detect anomalous activity and other risks, there's no check against malicious operations like token forgery, access to sensitive resources, and disruption of workloads. The lack of automated containment mechanisms increases dwell time and affects the confidentiality, integrity, and availability of critical services. + +**Remediation action** +Create a risk-based Conditional Access policy for workload identities. +- [Create a risk-based Conditional Access policy](https://learn.microsoft.com/en-us/entra/identity/conditional-access/workload-identity?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-a-risk-based-conditional-access-policy) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21883.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21883.ps1 new file mode 100644 index 000000000000..797cb134fddf --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21883.ps1 @@ -0,0 +1,133 @@ +function Invoke-CippTestZTNA21883 { + <# + .SYNOPSIS + Checks if workload identities are configured with risk-based policies + + .DESCRIPTION + Verifies that Conditional Access policies exist that: + - Block authentication based on service principal risk + - Are enabled + - Target service principals + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #tested + try { + # Get Conditional Access policies from cache + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $Policies) { + $TestParams = @{ + TestId = 'ZTNA21883' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'No Conditional Access policies found in cache.' + Risk = 'Medium' + Name = 'Workload identities configured with risk-based policies' + UserImpact = 'High' + ImplementationEffort = 'Low' + Category = 'Access control' + } + Add-CippTestResult @TestParams + return + } + + # Filter for policies that: + # - Block authentication + # - Include service principals + # - Are enabled + $MatchedPolicies = [System.Collections.Generic.List[object]]::new() + foreach ($Policy in $Policies) { + $blocksAuth = $false + if ($Policy.grantControls.builtInControls) { + foreach ($control in $Policy.grantControls.builtInControls) { + if ($control -eq 'block') { + $blocksAuth = $true + break + } + } + } + + $includesSP = $false + if ($Policy.conditions.clientApplications.includeServicePrincipals) { + $includesSP = $true + } + + $isEnabled = $Policy.state -eq 'enabled' + + if ($blocksAuth -and $includesSP -and $isEnabled) { + $MatchedPolicies.Add($Policy) + } + } + + # Determine pass/fail + if ($MatchedPolicies.Count -ge 1) { + $Status = 'Passed' + $ResultMarkdown = "✅ **Pass**: Workload identities are protected by risk-based Conditional Access policies.`n`n" + $ResultMarkdown += "## Matching policies`n`n" + $ResultMarkdown += "| Policy name | State | Service principals | Grant controls |`n" + $ResultMarkdown += "| :---------- | :---- | :----------------- | :------------- |`n" + + foreach ($Policy in $MatchedPolicies) { + $policyLink = "https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/PolicyBlade/policyId/$($Policy.id)" + $policyName = if ($Policy.displayName) { $Policy.displayName } else { 'Unnamed' } + $spTargets = if ($Policy.conditions.clientApplications.includeServicePrincipals) { + ($Policy.conditions.clientApplications.includeServicePrincipals | Select-Object -First 3) -join ', ' + if ($Policy.conditions.clientApplications.includeServicePrincipals.Count -gt 3) { + $spTargets += " (and $($Policy.conditions.clientApplications.includeServicePrincipals.Count - 3) more)" + } + $spTargets + } else { + 'None' + } + $grants = if ($Policy.grantControls.builtInControls) { + $Policy.grantControls.builtInControls -join ', ' + } else { + 'None' + } + $ResultMarkdown += "| [$policyName]($policyLink) | $($Policy.state) | $spTargets | $grants |`n" + } + } else { + $Status = 'Failed' + $ResultMarkdown = "❌ **Fail**: No Conditional Access policies found that protect workload identities with risk-based controls.`n`n" + $ResultMarkdown += 'Workload identities should be protected by policies that block authentication when service principal risk is detected.' + } + + $TestParams = @{ + TestId = 'ZTNA21883' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'Medium' + Name = 'Workload identities configured with risk-based policies' + UserImpact = 'High' + ImplementationEffort = 'Low' + Category = 'Access control' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA21883' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'Medium' + Name = 'Workload identities configured with risk-based policies' + UserImpact = 'High' + ImplementationEffort = 'Low' + Category = 'Access control' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA21883 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21884.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21884.md new file mode 100644 index 000000000000..58e372f02ff9 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21884.md @@ -0,0 +1,8 @@ +When workload identities operate without network-based Conditional Access restrictions, threat actors can compromise service principal credentials through various methods, such as exposed secrets in code repositories or intercepted authentication tokens. The threat actors can then use these credentials from any location globally. This unrestricted access enables threat actors to perform reconnaissance activities, enumerate resources, and map the tenant's infrastructure while appearing legitimate. Once the threat actor is established within the environment, they can move laterally between services, access sensitive data stores, and potentially escalate privileges by exploiting overly permissive service-to-service permissions. The lack of network restrictions makes it impossible to detect anomalous access patterns based on location. This gap allows threat actors to maintain persistent access and exfiltrate data over extended periods without triggering security alerts that would normally flag connections from unexpected networks or geographic locations. + +**Remediation action** + +- [Configure Conditional Access for workload identities](https://learn.microsoft.com/en-us/entra/identity/conditional-access/workload-identity?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Create named locations](https://learn.microsoft.com/en-us/entra/identity/conditional-access/concept-assignment-network?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Follow best practices for securing workload identities](https://learn.microsoft.com/en-us/entra/workload-id/workload-identities-overview?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21885.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21885.md new file mode 100644 index 000000000000..27edc026f6e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21885.md @@ -0,0 +1,10 @@ +OAuth applications configured with URLs that include wildcards, or URL shorteners increase the attack surface for threat actors. Insecure redirect URIs (reply URLs) might allow adversaries to manipulate authentication requests, hijack authorization codes, and intercept tokens by directing users to attacker-controlled endpoints. Wildcard entries expand the risk by permitting unintended domains to process authentication responses, while shortener URLs might facilitate phishing and token theft in uncontrolled environments. + +Without strict validation of redirect URIs, attackers can bypass security controls, impersonate legitimate applications, and escalate their privileges. This misconfiguration enables persistence, unauthorized access, and lateral movement, as adversaries exploit weak OAuth enforcement to infiltrate protected resources undetected. + +**Remediation action** + +- [Check the redirect URIs for your application registrations.](https://learn.microsoft.com/entra/identity-platform/reply-url?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) Make sure the redirect URIs don't have *.azurewebsites.net, wildcards, or URL shorteners. + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21886.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21886.md new file mode 100644 index 000000000000..988a4cbca44d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21886.md @@ -0,0 +1,15 @@ +When applications that support both authentication and provisioning through Microsoft Entra aren't configured for automatic provisioning, organizations become vulnerable to identity lifecycle gaps that threat actors can exploit. Without automated provisioning, user accounts might persist in applications after employees leave the organization. This vulnerability creates dormant accounts that threat actors can discover through reconnaissance activities. These orphaned accounts often retain their original access permissions but lack active monitoring, making them attractive targets for initial access. + +Threat actors who gain access to these dormant accounts can use them to establish persistence in the target application, as the accounts appear legitimate and might not trigger security alerts. From these compromised application accounts, attackers can: + +- Attempt to escalate their privileges by exploring application-specific permissions +- Access sensitive data stored within the application +- Use the application as a pivot point to access other connected systems + +The lack of centralized identity lifecycle management also makes it difficult for security teams to detect when an attacker is using these orphaned accounts, as the accounts might not be properly correlated with the organization's active user directory. + +**Remediation action** + +- [Configure application provisioning for missing applications](https://learn.microsoft.com/en-us/entra/identity/app-provisioning/configure-automatic-user-provisioning-portal?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21886.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21886.ps1 new file mode 100644 index 000000000000..674390fef96b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21886.ps1 @@ -0,0 +1,60 @@ +function Invoke-CippTestZTNA21886 { + <# + .SYNOPSIS + Applications are configured for automatic user provisioning + #> + param($Tenant) + #Tested + try { + $ServicePrincipals = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ServicePrincipals' + if (-not $ServicePrincipals) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21886' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Applications are configured for automatic user provisioning' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Applications management' + return + } + + $AppsWithSSO = $ServicePrincipals | Where-Object { + $null -ne $_.preferredSingleSignOnMode -and + $_.preferredSingleSignOnMode -in @('password', 'saml', 'oidc') -and + $_.accountEnabled -eq $true + } + + if (-not $AppsWithSSO) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21886' -TestType 'Identity' -Status 'Passed' -ResultMarkdown 'No applications configured for SSO found' -Risk 'Medium' -Name 'Applications are configured for automatic user provisioning' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Applications management' + return + } + + $Status = 'Investigate' + + $ResultLines = @( + "Found $($AppsWithSSO.Count) application(s) configured for SSO." + '' + '**Applications with SSO enabled:**' + ) + + $SSOByType = $AppsWithSSO | Group-Object -Property preferredSingleSignOnMode + foreach ($Group in $SSOByType) { + $ResultLines += '' + $ResultLines += "**$($Group.Name.ToUpper()) SSO** ($($Group.Count) app(s)):" + $Top5 = $Group.Group | Select-Object -First 5 + foreach ($App in $Top5) { + $ResultLines += "- $($App.displayName)" + } + if ($Group.Count -gt 5) { + $ResultLines += "- ... and $($Group.Count - 5) more" + } + } + + $ResultLines += '' + $ResultLines += '**Note:** Provisioning template and job validation requires Graph API synchronization endpoint not available in cache.' + $ResultLines += '' + $ResultLines += '**Recommendation:** Configure automatic user provisioning for applications that support it to ensure consistent access management.' + + $Result = $ResultLines -join "`n" + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21886' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Applications are configured for automatic user provisioning' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Applications management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21886' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Applications are configured for automatic user provisioning' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Applications management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21887.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21887.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21887.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21888.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21888.md new file mode 100644 index 000000000000..cb1d03b47129 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21888.md @@ -0,0 +1,8 @@ +Unmaintained or orphaned redirect URIs in app registrations create significant security vulnerabilities when they reference domains that no longer point to active resources. Threat actors can exploit these "dangling" DNS entries by provisioning resources at abandoned domains, effectively taking control of redirect endpoints. This vulnerability enables attackers to intercept authentication tokens and credentials during OAuth 2.0 flows, which can lead to unauthorized access, session hijacking, and potential broader organizational compromise. + +**Remediation action** + +- [Redirect URI (reply URL) outline and restrictions](https://learn.microsoft.com/entra/identity-platform/reply-url?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21889.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21889.md new file mode 100644 index 000000000000..d5f422aa0a93 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21889.md @@ -0,0 +1,10 @@ +Organizations with extensive user-facing password surfaces expose multiple entry points for threat actors to launch credential-based attacks. Frequent user interactions with password prompts across applications, devices, and workflows increase the risk of exploitation. Threat actors often begin with credential stuffing—using compromised credentials from data breaches—followed by password spraying to test common passwords across multiple accounts. Once initial access is gained, they conduct credential discovery by examining browser password stores, cached credentials in memory, and credential managers to harvest additional authentication materials. These stolen credentials enable lateral movement, allowing attackers to access more systems and applications, often escalating privileges by targeting administrative accounts that still rely on password authentication. In the persistence phase, attackers may create backdoor accounts with password-based access or weaken defenses by altering password policies. To evade detection, they leverage legitimate authentication channels, blending in with normal user activity while maintaining persistent access to organizational resources. + +**Remediation action** + + * [Enable passwordless authentication methods](https://learn.microsoft.com/en-us/entra/identity/authentication/how-to-plan-prerequisites-phishing-resistant-passwordless-authentication) + + * [Deploy FIDO2 security keys](https://learn.microsoft.com/en-us/entra/identity/authentication/how-to-enable-passkey-fido2) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21889.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21889.ps1 new file mode 100644 index 000000000000..87caa4f5c591 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21889.ps1 @@ -0,0 +1,147 @@ +function Invoke-CippTestZTNA21889 { + <# + .SYNOPSIS + Checks if organization has reduced password surface area by enabling multiple passwordless authentication methods + + .DESCRIPTION + Verifies that both FIDO2 Security Keys and Microsoft Authenticator are enabled with proper configuration + to reduce reliance on passwords. + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #tested + try { + # Get authentication methods policy from cache + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + $TestParams = @{ + TestId = 'ZTNA21889' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'Unable to retrieve authentication methods policy from cache.' + Risk = 'High' + Name = 'Reduce the user-visible password surface area' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Access control' + } + Add-CippTestResult @TestParams + return + } + + # Extract FIDO2 and Microsoft Authenticator configurations + $Fido2Config = $null + $AuthenticatorConfig = $null + + if ($AuthMethodsPolicy.authenticationMethodConfigurations) { + foreach ($config in $AuthMethodsPolicy.authenticationMethodConfigurations) { + if ($config.id -eq 'Fido2') { + $Fido2Config = $config + } + if ($config.id -eq 'MicrosoftAuthenticator') { + $AuthenticatorConfig = $config + } + } + } + + # Check FIDO2 configuration + $Fido2Enabled = $Fido2Config.state -eq 'enabled' + $Fido2HasTargets = $Fido2Config.includeTargets -and $Fido2Config.includeTargets.Count -gt 0 + $Fido2Valid = $Fido2Enabled -and $Fido2HasTargets + + # Check Microsoft Authenticator configuration + $AuthEnabled = $AuthenticatorConfig.state -eq 'enabled' + $AuthHasTargets = $AuthenticatorConfig.includeTargets -and $AuthenticatorConfig.includeTargets.Count -gt 0 + $AuthMode = $null + if ($AuthenticatorConfig.includeTargets) { + foreach ($target in $AuthenticatorConfig.includeTargets) { + if ($target.authenticationMode) { + $AuthMode = $target.authenticationMode + break + } + } + } + + if ([string]::IsNullOrEmpty($AuthMode)) { + $AuthMode = 'Not configured' + $AuthModeValid = $false + } else { + $AuthModeValid = ($AuthMode -eq 'any') -or ($AuthMode -eq 'deviceBasedPush') + } + $AuthValid = $AuthEnabled -and $AuthHasTargets -and $AuthModeValid + + # Determine pass/fail + $Status = if ($Fido2Valid -and $AuthValid) { 'Passed' } else { 'Failed' } + + # Build result message + if ($Status -eq 'Passed') { + $ResultMarkdown = "✅ **Pass**: Your organization has implemented multiple passwordless authentication methods reducing password exposure.`n`n" + } else { + $ResultMarkdown = "❌ **Fail**: Your organization relies heavily on password-based authentication, creating security vulnerabilities.`n`n" + } + + # Build detailed markdown table + $ResultMarkdown += "## Passwordless authentication methods`n`n" + $ResultMarkdown += "| Method | State | Include targets | Authentication mode | Status |`n" + $ResultMarkdown += "| :----- | :---- | :-------------- | :------------------ | :----- |`n" + + # FIDO2 row + $Fido2State = if ($Fido2Enabled) { '✅ Enabled' } else { '❌ Disabled' } + $Fido2TargetsDisplay = if ($Fido2Config.includeTargets -and $Fido2Config.includeTargets.Count -gt 0) { + "$($Fido2Config.includeTargets.Count) target(s)" + } else { + 'None' + } + $Fido2Status = if ($Fido2Valid) { '✅ Pass' } else { '❌ Fail' } + $ResultMarkdown += "| FIDO2 Security Keys | $Fido2State | $Fido2TargetsDisplay | N/A | $Fido2Status |`n" + + # Microsoft Authenticator row + $AuthState = if ($AuthEnabled) { '✅ Enabled' } else { '❌ Disabled' } + $AuthTargetsDisplay = if ($AuthenticatorConfig.includeTargets -and $AuthenticatorConfig.includeTargets.Count -gt 0) { + "$($AuthenticatorConfig.includeTargets.Count) target(s)" + } else { + 'None' + } + $AuthModeDisplay = if ($AuthModeValid) { "✅ $AuthMode" } else { "❌ $AuthMode" } + $AuthStatus = if ($AuthValid) { '✅ Pass' } else { '❌ Fail' } + $ResultMarkdown += "| Microsoft Authenticator | $AuthState | $AuthTargetsDisplay | $AuthModeDisplay | $AuthStatus |`n" + + $TestParams = @{ + TestId = 'ZTNA21889' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'High' + Name = 'Reduce the user-visible password surface area' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Access control' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA21889' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'High' + Name = 'Reduce the user-visible password surface area' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Access control' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA21889 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21890.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21890.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21890.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21891.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21891.md new file mode 100644 index 000000000000..9c49450beb91 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21891.md @@ -0,0 +1,8 @@ +Configuring password reset notifications for administrator roles in Microsoft Entra ID enhances security by notifying privileged administrators when another administrator resets their password. This visibility helps detect unauthorized or suspicious activity that could indicate credential compromise or insider threats. Without these notifications, malicious actors could exploit elevated privileges to establish persistence, escalate access, or extract sensitive data. Proactive notifications support quick action, preserve privileged access integrity, and strengthen the overall security posture. + +**Remediation action** + +- [Notify all admins when other admins reset their passwords](https://learn.microsoft.com/en-us/entra/identity/authentication/concept-sspr-howitworks?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#notify-all-admins-when-other-admins-reset-their-passwords) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21892.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21892.md new file mode 100644 index 000000000000..2d46aed74112 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21892.md @@ -0,0 +1 @@ +When sign-ins are not restricted to managed devices, threat actors can use unmanaged devices to establish initial access to organizational resources. Unmanaged devices lack organizational security controls, endpoint protection, and compliance verification, creating entry points for threat actors to exploit. Unmanaged devices lack centralized security controls, compliance monitoring, and policy enforcement, creating gaps in the organization's security perimeter. Threat actors can compromise these devices through malware, keyloggers, or credential harvesting tools, then use the captured credentials to authenticate corporate resources without detection. Accounts that are assigned administrative rights are a target for attackers. Requiring users with these highly privileged rights to perform actions from devices marked as compliant or Microsoft Entra hybrid joined can help limit possible exposure. Without device compliance requirements, threat actors can maintain persistence through uncontrolled endpoints, bypass security monitoring that would typically detect anomalous behavior on managed devices and use unmanaged devices as staging areas for lateral movement across network resources. diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21892.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21892.ps1 new file mode 100644 index 000000000000..12dd5a45cb6d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21892.ps1 @@ -0,0 +1,153 @@ +function Invoke-CippTestZTNA21892 { + <# + .SYNOPSIS + Verifies that all sign-in activity is restricted to managed devices + + .DESCRIPTION + Checks for Conditional Access policies that: + - Apply to all users + - Apply to all applications + - Require compliant or hybrid joined devices + - Are enabled + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #tested + try { + # Get Conditional Access policies from cache + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $Policies) { + $TestParams = @{ + TestId = 'ZTNA21892' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'No Conditional Access policies found in cache.' + Risk = 'High' + Name = 'All sign-in activity comes from managed devices' + UserImpact = 'High' + ImplementationEffort = 'High' + Category = 'Access control' + } + Add-CippTestResult @TestParams + return + } + + # Find policies that require managed devices for all users and apps + $MatchingPolicies = [System.Collections.Generic.List[object]]::new() + foreach ($Policy in $Policies) { + # Check if applies to all users + $appliesToAllUsers = $false + if ($Policy.conditions.users.includeUsers) { + foreach ($user in $Policy.conditions.users.includeUsers) { + if ($user -eq 'All') { + $appliesToAllUsers = $true + break + } + } + } + + # Check if applies to all apps + $appliesToAllApps = $false + if ($Policy.conditions.applications.includeApplications) { + foreach ($app in $Policy.conditions.applications.includeApplications) { + if ($app -eq 'All') { + $appliesToAllApps = $true + break + } + } + } + + # Check if requires compliant or hybrid joined device + $requiresCompliantDevice = $false + $requiresHybridJoined = $false + if ($Policy.grantControls.builtInControls) { + foreach ($control in $Policy.grantControls.builtInControls) { + if ($control -eq 'compliantDevice') { + $requiresCompliantDevice = $true + } + if ($control -eq 'domainJoinedDevice') { + $requiresHybridJoined = $true + } + } + } + + $isEnabled = $Policy.state -eq 'enabled' + + # Policy matches if enabled, applies to all users/apps, and requires managed device + if ($isEnabled -and $appliesToAllUsers -and $appliesToAllApps -and ($requiresCompliantDevice -or $requiresHybridJoined)) { + $MatchingPolicies.Add([PSCustomObject]@{ + PolicyId = $Policy.id + PolicyState = $Policy.state + DisplayName = $Policy.displayName + AllUsers = $appliesToAllUsers + AllApps = $appliesToAllApps + CompliantDevice = $requiresCompliantDevice + HybridJoinedDevice = $requiresHybridJoined + IsFullyCompliant = $isEnabled -and $appliesToAllUsers -and $appliesToAllApps -and ($requiresCompliantDevice -or $requiresHybridJoined) + }) + } + } + + # Determine pass/fail + if ($MatchingPolicies.Count -gt 0) { + $Status = 'Passed' + $ResultMarkdown = "✅ **Pass**: Conditional Access policies require managed devices for all sign-in activity.`n`n" + $ResultMarkdown += "## Matching policies`n`n" + $ResultMarkdown += "| Policy name | State | All users | All apps | Compliant device | Hybrid joined |`n" + $ResultMarkdown += "| :---------- | :---- | :-------- | :------- | :--------------- | :------------ |`n" + + foreach ($Policy in $MatchingPolicies) { + $policyLink = "https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/PolicyBlade/policyId/$($Policy.PolicyId)" + $policyName = if ($Policy.DisplayName) { $Policy.DisplayName } else { 'Unnamed' } + $allUsers = if ($Policy.AllUsers) { '✅' } else { '❌' } + $allApps = if ($Policy.AllApps) { '✅' } else { '❌' } + $compliant = if ($Policy.CompliantDevice) { '✅' } else { '❌' } + $hybrid = if ($Policy.HybridJoinedDevice) { '✅' } else { '❌' } + + $ResultMarkdown += "| [$policyName]($policyLink) | $($Policy.PolicyState) | $allUsers | $allApps | $compliant | $hybrid |`n" + } + } else { + $Status = 'Failed' + $ResultMarkdown = "❌ **Fail**: No Conditional Access policies found that require managed devices for all sign-in activity.`n`n" + $ResultMarkdown += 'Organizations should enforce that all sign-ins come from managed devices (compliant or hybrid Azure AD joined) to ensure security controls are applied.' + } + + $TestParams = @{ + TestId = 'ZTNA21892' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'High' + Name = 'All sign-in activity comes from managed devices' + UserImpact = 'High' + ImplementationEffort = 'High' + Category = 'Access control' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA21892' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'High' + Name = 'All sign-in activity comes from managed devices' + UserImpact = 'High' + ImplementationEffort = 'High' + Category = 'Access control' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA21892 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21893.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21893.md new file mode 100644 index 000000000000..c27b1172c0bb --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21893.md @@ -0,0 +1,8 @@ +Require multifactor authentication (MFA) registration for all users. Based on studies, your account is more than 99% less likely to be compromised if you're using MFA. Even if you don't require MFA all the time, this policy ensures your users are ready when it's needed. + +**Remediation action** + +- [Configure the multifactor authentication registration policy](https://learn.microsoft.com/entra/id-protection/howto-identity-protection-configure-mfa-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21894.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21894.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21894.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21895.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21895.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21895.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21896.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21896.md new file mode 100644 index 000000000000..4e2033aae288 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21896.md @@ -0,0 +1,9 @@ +Service principals without proper authentication credentials (certificates or client secrets) create security vulnerabilities that allow threat actors to impersonate these identities. This can lead to unauthorized access, lateral movement within your environment, privilege escalation, and persistent access that's difficult to detect and remediate. + +**Remediation action** + +- For your organization's service principals: [Add certificates or client secrets to the app registration](https://learn.microsoft.com/entra/identity-platform/how-to-add-credentials?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- For external service principals: Review and remove any unnecessary credentials to reduce security risk + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21896.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21896.ps1 new file mode 100644 index 000000000000..facaf67d0489 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21896.ps1 @@ -0,0 +1,59 @@ +function Invoke-CippTestZTNA21896 { + <# + .SYNOPSIS + Service principals do not have certificates or credentials associated with them + #> + param($Tenant) + #tested + try { + $ServicePrincipals = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ServicePrincipals' + if (-not $ServicePrincipals) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21896' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Service principals do not have certificates or credentials associated with them' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application management' + return + } + + $MicrosoftOwnerId = 'f8cdef31-a31e-4b4a-93e4-5f571e91255a' + $SPsWithPassCreds = $ServicePrincipals | Where-Object { + $_.passwordCredentials -and $_.passwordCredentials.Count -gt 0 -and $_.appOwnerOrganizationId -ne $MicrosoftOwnerId + } + $SPsWithKeyCreds = $ServicePrincipals | Where-Object { + $_.keyCredentials -and $_.keyCredentials.Count -gt 0 -and $_.appOwnerOrganizationId -ne $MicrosoftOwnerId + } + + if (-not $SPsWithPassCreds -and -not $SPsWithKeyCreds) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21896' -TestType 'Identity' -Status 'Passed' -ResultMarkdown 'Service principals do not have credentials associated with them' -Risk 'Medium' -Name 'Service principals do not have certificates or credentials associated with them' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application management' + return + } + + $TotalWithCreds = $SPsWithPassCreds.Count + $SPsWithKeyCreds.Count + $Status = 'Investigate' + + $ResultLines = @( + "Found $TotalWithCreds service principal(s) with credentials configured in the tenant, which represents a security risk." + '' + ) + + if ($SPsWithPassCreds.Count -gt 0) { + $ResultLines += "**Service principals with password credentials:** $($SPsWithPassCreds.Count)" + $ResultLines += '' + } + + if ($SPsWithKeyCreds.Count -gt 0) { + $ResultLines += "**Service principals with key credentials (certificates):** $($SPsWithKeyCreds.Count)" + $ResultLines += '' + } + + $ResultLines += '**Security implications:**' + $ResultLines += '- Service principals with credentials can be compromised if not properly secured' + $ResultLines += '- Password credentials are less secure than managed identities or certificate-based authentication' + $ResultLines += '- Consider using managed identities where possible to eliminate credential management' + + $Result = $ResultLines -join "`n" + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21896' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Service principals do not have certificates or credentials associated with them' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21896' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Service principals do not have certificates or credentials associated with them' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21897.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21897.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21897.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21898.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21898.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21898.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21899.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21899.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21899.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21912.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21912.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21912.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21929.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21929.md new file mode 100644 index 000000000000..98fe3bbbd22b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21929.md @@ -0,0 +1,9 @@ +Access packages for guest users without expiration dates or access reviews allow indefinite access to organizational resources. Compromised or stale guest accounts enable threat actors to maintain persistent, undetected access for lateral movement, privilege escalation, and data exfiltration. Without periodic validation, organizations cannot identify when business relationships change or when guest access is no longer needed. + +**Remediation action** + +- [Configure lifecycle settings](https://learn.microsoft.com/entra/id-governance/entitlement-management-access-package-lifecycle-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Configure access reviews](https://learn.microsoft.com/entra/id-governance/entitlement-management-access-reviews-create?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21941.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21941.md new file mode 100644 index 000000000000..d00aeef5317c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21941.md @@ -0,0 +1,18 @@ +Token protection policies in Entra ID tenants are crucial for safeguarding authentication tokens from misuse and unauthorized access. Without these policies, threat actors can intercept and manipulate tokens, leading to unauthorized access to sensitive resources. This can result in data exfiltration, lateral movement within the network, and potential compromise of privileged accounts. + +When token protection is not properly configured, threat actors can exploit several attack vectors: + +1. **Token theft and replay attacks** - Attackers can steal authentication tokens from compromised devices and replay them from different locations +2. **Session hijacking** - Without secure sign-in session controls, attackers can hijack legitimate user sessions +3. **Cross-platform token abuse** - Tokens issued for one platform (like mobile) can be misused on other platforms (like web browsers) +4. **Persistent access** - Compromised tokens can provide long-term unauthorized access without triggering security alerts + +The attack chain typically involves initial access through token theft, followed by privilege escalation and persistence, ultimately leading to data exfiltration and impact across the organization's Microsoft 365 environment. + +**Remediation action** +- [Configure Conditional Access policies as per the best practices](https://learn.microsoft.com/en-us/entra/identity/conditional-access/concept-token-protection#create-a-conditional-access-policy) +- [Microsoft Entra Conditional Access token protection explained](https://learn.microsoft.com/en-us/entra/identity/conditional-access/concept-token-protection) +- [Configure session controls in Conditional Access](https://learn.microsoft.com/en-us/entra/identity/conditional-access/concept-conditional-access-session) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21941.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21941.ps1 new file mode 100644 index 000000000000..879879680277 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21941.ps1 @@ -0,0 +1,192 @@ +function Invoke-CippTestZTNA21941 { + <# + .SYNOPSIS + Checks if token protection policies are enforced for Windows platform + + .DESCRIPTION + Verifies that Conditional Access policies with token protection (secureSignInSession) are + configured for Windows devices, requiring Office 365 and Microsoft Graph access through + protected sessions to prevent token theft. + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + try { + # Get CA policies from cache + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $CAPolicies) { + $TestParams = @{ + TestId = 'ZTNA21941' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'Unable to retrieve Conditional Access policies from cache.' + Risk = 'High' + Name = 'Implement token protection policies' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Access control' + } + Add-CippTestResult @TestParams + return + } + + # Required Office 365 and Graph app IDs + $RequiredAppIds = @( + '00000002-0000-0ff1-ce00-000000000000', # Office 365 Exchange Online + '00000003-0000-0ff1-ce00-000000000000' # Microsoft Graph + ) + + # Filter for policies with Windows platform and secureSignInSession control + $TokenProtectionPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($policy in $CAPolicies) { + # Check if policy has Windows platform + $hasWindows = $false + if ($policy.conditions.platforms.includePlatforms) { + if ($policy.conditions.platforms.includePlatforms -contains 'windows' -or + $policy.conditions.platforms.includePlatforms -contains 'all') { + $hasWindows = $true + } + } + + # Check if policy has secureSignInSession control + $hasTokenProtection = $false + if ($policy.sessionControls -and $policy.sessionControls.signInFrequency) { + if ($policy.sessionControls.signInFrequency.isEnabled -eq $true -and + $policy.sessionControls.signInFrequency.authenticationType -eq 'primaryAndSecondaryAuthentication') { + $hasTokenProtection = $true + } + } + + # Alternative check for newer API format + if (-not $hasTokenProtection -and $policy.sessionControls) { + foreach ($prop in $policy.sessionControls.PSObject.Properties) { + if ($prop.Name -like '*secureSignIn*' -or $prop.Name -like '*tokenProtection*') { + if ($prop.Value.isEnabled -eq $true) { + $hasTokenProtection = $true + break + } + } + } + } + + if ($hasWindows -and $hasTokenProtection -and $policy.state -eq 'enabled') { + # Check if policy includes users + $hasUsers = $false + if ($policy.conditions.users.includeUsers -and $policy.conditions.users.includeUsers.Count -gt 0) { + $hasUsers = $true + } + + # Check if policy includes required apps + $hasRequiredApps = $false + if ($policy.conditions.applications.includeApplications) { + $includeAll = $policy.conditions.applications.includeApplications -contains 'All' + if ($includeAll) { + $hasRequiredApps = $true + } else { + $foundApps = 0 + foreach ($appId in $RequiredAppIds) { + if ($policy.conditions.applications.includeApplications -contains $appId) { + $foundApps++ + } + } + if ($foundApps -eq $RequiredAppIds.Count) { + $hasRequiredApps = $true + } + } + } + + $policyStatus = 'Unknown' + if ($hasUsers -and $hasRequiredApps) { + $policyStatus = 'Pass' + } elseif (-not $hasUsers) { + $policyStatus = 'No users targeted' + } elseif (-not $hasRequiredApps) { + $policyStatus = 'Missing required apps' + } + + $TokenProtectionPolicies.Add([PSCustomObject]@{ + Name = $policy.displayName + State = $policy.state + HasUsers = $hasUsers + HasRequiredApps = $hasRequiredApps + Status = $policyStatus + }) + } + } + + # Determine overall status + $PassingPolicies = $TokenProtectionPolicies | Where-Object { $_.Status -eq 'Pass' } + $Status = if ($PassingPolicies.Count -gt 0) { 'Passed' } else { 'Failed' } + + # Build result markdown + if ($Status -eq 'Passed') { + $ResultMarkdown = "✅ **Pass**: Token protection policies are properly configured for Windows devices.`n`n" + $ResultMarkdown += "Token protection binds authentication tokens to devices, making stolen tokens unusable on other devices.`n`n" + } else { + if ($TokenProtectionPolicies.Count -eq 0) { + $ResultMarkdown = "❌ **Fail**: No token protection policies found for Windows devices.`n`n" + $ResultMarkdown += "Without token protection, authentication tokens can be stolen and replayed from other devices.`n`n" + $ResultMarkdown += '[Create token protection policies](https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/ConditionalAccessBlade/~/Policies)' + } else { + $ResultMarkdown = "❌ **Fail**: Token protection policies exist but are not properly configured.`n`n" + $ResultMarkdown += "Policies must target users and include both Office 365 and Microsoft Graph applications.`n`n" + } + } + + if ($TokenProtectionPolicies.Count -gt 0) { + $ResultMarkdown += "## Token protection policies`n`n" + $ResultMarkdown += "| Policy Name | State | Has Users | Has Required Apps | Status |`n" + $ResultMarkdown += "| :---------- | :---- | :-------- | :---------------- | :----- |`n" + + foreach ($policy in $TokenProtectionPolicies) { + $stateIcon = if ($policy.State -eq 'enabled') { '✅' } else { '❌' } + $usersIcon = if ($policy.HasUsers) { '✅' } else { '❌' } + $appsIcon = if ($policy.HasRequiredApps) { '✅' } else { '❌' } + $statusIcon = if ($policy.Status -eq 'Pass') { '✅' } else { '❌' } + + $ResultMarkdown += "| $($policy.Name) | $stateIcon $($policy.State) | $usersIcon | $appsIcon | $statusIcon $($policy.Status) |`n" + } + + $ResultMarkdown += "`n[Review policies](https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/ConditionalAccessBlade/~/Policies)" + } + + $TestParams = @{ + TestId = 'ZTNA21941' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'High' + Name = 'Implement token protection policies' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Access control' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA21941' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'High' + Name = 'Implement token protection policies' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Access control' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA21941 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21953.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21953.md new file mode 100644 index 000000000000..eeb1984a2ec4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21953.md @@ -0,0 +1,10 @@ +Without Local Admin Password Solution (LAPS) deployed, threat actors exploit static local administrator passwords to establish initial access. After threat actors compromise a single device with a shared local administrator credential, they can move laterally across the environment and authenticate to other systems sharing the same password. Compromised local administrator access gives threat actors system-level privileges, letting them disable security controls, install persistent backdoors, exfiltrate sensitive data, and establish command and control channels. + +The automated password rotation and centralized management of LAPS closes this security gap and adds controls to help manage who has access to these critical accounts. Without solutions like LAPS, you can't detect or respond to unauthorized use of local administrator accounts, giving threat actors extended dwell time to achieve their objectives while remaining undetected. + +**Remediation action** + +- [Configure Windows Local Administrator Password Solution](https://learn.microsoft.com/entra/identity/devices/howto-manage-local-admin-passwords?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21953.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21953.ps1 new file mode 100644 index 000000000000..49d3af03ca3e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21953.ps1 @@ -0,0 +1,84 @@ +function Invoke-CippTestZTNA21953 { + <# + .SYNOPSIS + Checks if Windows Local Administrator Password Solution (LAPS) is deployed in the tenant + + .DESCRIPTION + Verifies that LAPS is enabled in the device registration policy to automatically manage + and rotate local administrator passwords on Windows devices. + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + + try { + # Get device registration policy from cache + $DeviceRegPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'DeviceRegistrationPolicy' + + if (-not $DeviceRegPolicy) { + $TestParams = @{ + TestId = 'ZTNA21953' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'Unable to retrieve device registration policy from cache.' + Risk = 'High' + Name = 'Deploy Windows Local Administrator Password Solution (LAPS)' + UserImpact = 'Low' + ImplementationEffort = 'Low' + Category = 'Device security' + } + Add-CippTestResult @TestParams + return + } + + # Check if LAPS is enabled + $LapsEnabled = $DeviceRegPolicy.localAdminPassword.isEnabled -eq $true + + $Status = if ($LapsEnabled) { 'Passed' } else { 'Failed' } + + if ($Status -eq 'Passed') { + $ResultMarkdown = "✅ **Pass**: LAPS is deployed. Your organization can automatically manage and rotate local administrator passwords on all Entra joined and hybrid Entra joined Windows devices.`n`n" + $ResultMarkdown += '[Learn more](https://entra.microsoft.com/#view/Microsoft_AAD_Devices/DevicesMenuBlade/~/DeviceSettings/menuId/)' + } else { + $ResultMarkdown = "❌ **Fail**: LAPS is not deployed. Local administrator passwords may be weak, shared, or unchanged, increasing security risk.`n`n" + $ResultMarkdown += '[Deploy LAPS](https://entra.microsoft.com/#view/Microsoft_AAD_Devices/DevicesMenuBlade/~/DeviceSettings/menuId/)' + } + + $TestParams = @{ + TestId = 'ZTNA21953' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'High' + Name = 'Deploy Windows Local Administrator Password Solution (LAPS)' + UserImpact = 'Low' + ImplementationEffort = 'Low' + Category = 'Device security' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA21953' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'High' + Name = 'Deploy Windows Local Administrator Password Solution (LAPS)' + UserImpact = 'Low' + ImplementationEffort = 'Low' + Category = 'Device security' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA21953 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21954.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21954.md new file mode 100644 index 000000000000..a265a8360a51 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21954.md @@ -0,0 +1,8 @@ +When non-administrator users can access their own BitLocker keys, threat actors who compromise user credentials through phishing, credential stuffing, or malware-based keyloggers gain direct access to encryption keys without requiring privilege escalation. This access vector enables threat actors to persist on the compromised device by accessing encrypted volumes. Once threat actors obtain BitLocker keys, they can decrypt sensitive data stored on the device, including cached credentials, local databases, and confidential files. Without proper restrictions, a single compromised user account provides immediate access to all encrypted data on that device, negating the primary security benefit of disk encryption and creating a pathway for lateral movement to network resources accessed from the compromised system. + +**Remediation action** + +[Configure BitLocker key access restrictions through Microsoft Entra admin](https://learn.microsoft.com/en-us/entra/identity/devices/manage-device-identities#view-or-copy-bitlocker-keys) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21954.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21954.ps1 new file mode 100644 index 000000000000..f74c4b538b44 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21954.ps1 @@ -0,0 +1,83 @@ +function Invoke-CippTestZTNA21954 { + <# + .SYNOPSIS + Checks if non-admin users are restricted from reading BitLocker recovery keys + + .DESCRIPTION + Verifies that the authorization policy restricts non-admin users from reading BitLocker + recovery keys for their own devices, reducing the risk of unauthorized key access. + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + try { + # Get authorization policy from cache + $AuthPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthPolicy) { + $TestParams = @{ + TestId = 'ZTNA21954' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'Unable to retrieve authorization policy from cache.' + Risk = 'Low' + Name = 'Restrict non-admin users from reading BitLocker recovery keys' + UserImpact = 'Low' + ImplementationEffort = 'Low' + Category = 'Device security' + } + Add-CippTestResult @TestParams + return + } + + # Check if BitLocker key reading is restricted (should be false) + $IsRestricted = $AuthPolicy.defaultUserRolePermissions.allowedToReadBitlockerKeysForOwnedDevice -eq $false + + $Status = if ($IsRestricted) { 'Passed' } else { 'Failed' } + + if ($Status -eq 'Passed') { + $ResultMarkdown = "✅ **Pass**: Non-admin users cannot read BitLocker recovery keys, reducing the risk of unauthorized access.`n`n" + $ResultMarkdown += '[Review settings](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/PoliciesTemplateBlade)' + } else { + $ResultMarkdown = "❌ **Fail**: Non-admin users can read BitLocker recovery keys for their own devices, which may allow unauthorized access.`n`n" + $ResultMarkdown += '[Restrict access](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/PoliciesTemplateBlade)' + } + + $TestParams = @{ + TestId = 'ZTNA21954' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'Low' + Name = 'Restrict non-admin users from reading BitLocker recovery keys' + UserImpact = 'Low' + ImplementationEffort = 'Low' + Category = 'Device security' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA21954' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'Low' + Name = 'Restrict non-admin users from reading BitLocker recovery keys' + UserImpact = 'Low' + ImplementationEffort = 'Low' + Category = 'Device security' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA21954 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21955.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21955.md new file mode 100644 index 000000000000..09ba1be61884 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21955.md @@ -0,0 +1,8 @@ +When local administrators on Microsoft Entra joined devices aren't properly managed, threat actors with compromised credentials can execute device takeover attacks by removing organizational administrators and disabling the device's connection to Microsoft Entra. This lack of control results in complete loss of organizational control, creating orphaned assets that can't be managed or recovered. + +**Remediation action** + +- [Manage the local administrators on Microsoft Entra joined devices](https://learn.microsoft.com/entra/identity/devices/assign-local-admin?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#manage-the-microsoft-entra-joined-device-local-administrator-role) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21955.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21955.ps1 new file mode 100644 index 000000000000..dc63407c4576 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21955.ps1 @@ -0,0 +1,83 @@ +function Invoke-CippTestZTNA21955 { + <# + .SYNOPSIS + Checks if local administrator management is properly configured on Entra joined devices + + .DESCRIPTION + Verifies that Global Administrators are automatically added as local administrators on + Entra joined devices to enable emergency access and device management. + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + try { + # Get device registration policy from cache + $DeviceRegPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'DeviceRegistrationPolicy' + + if (-not $DeviceRegPolicy) { + $TestParams = @{ + TestId = 'ZTNA21955' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'Unable to retrieve device registration policy from cache.' + Risk = 'Medium' + Name = 'Manage local admins on Entra joined devices' + UserImpact = 'Low' + ImplementationEffort = 'Low' + Category = 'Device security' + } + Add-CippTestResult @TestParams + return + } + + # Check if global admins are added as local admins + $GlobalAdminsEnabled = $DeviceRegPolicy.azureADJoin.localAdmins.enableGlobalAdmins -eq $true + + $Status = if ($GlobalAdminsEnabled) { 'Passed' } else { 'Failed' } + + if ($Status -eq 'Passed') { + $ResultMarkdown = "✅ **Pass**: Global Administrators are automatically added as local administrators on Entra joined devices.`n`n" + $ResultMarkdown += '[Review settings](https://entra.microsoft.com/#view/Microsoft_AAD_Devices/DevicesMenuBlade/~/DeviceSettings/menuId/)' + } else { + $ResultMarkdown = "❌ **Fail**: Global Administrators are not automatically added as local administrators, which may limit emergency access capabilities.`n`n" + $ResultMarkdown += '[Configure settings](https://entra.microsoft.com/#view/Microsoft_AAD_Devices/DevicesMenuBlade/~/DeviceSettings/menuId/)' + } + + $TestParams = @{ + TestId = 'ZTNA21955' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'Medium' + Name = 'Manage local admins on Entra joined devices' + UserImpact = 'Low' + ImplementationEffort = 'Low' + Category = 'Device security' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA21955' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'Medium' + Name = 'Manage local admins on Entra joined devices' + UserImpact = 'Low' + ImplementationEffort = 'Low' + Category = 'Device security' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA21955 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21964.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21964.md new file mode 100644 index 000000000000..0dc276f4daf8 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21964.md @@ -0,0 +1,6 @@ +Configure protected actions for Conditional Access policy create, update and delete permissions, and Authentication Context update permission. Refer to the guidance on common stronger Conditional Access policies: + +**Remediation action** +[What are protected actions in Microsoft Entra ID? - Microsoft Entra ID | Microsoft Learn](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/protected-actions-overview) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21964.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21964.ps1 new file mode 100644 index 000000000000..6e62ea83874f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21964.ps1 @@ -0,0 +1,42 @@ +function Invoke-CippTestZTNA21964 { + <# + .SYNOPSIS + Enable protected actions to secure Conditional Access policy creation and changes + #> + param($Tenant) + + $TestId = 'ZTNA21964' + #Tested + try { + $AuthStrengths = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationStrengths' + + if (-not $AuthStrengths) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Enable protected actions to secure Conditional Access policy creation and changes' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access control' + return + } + + $BuiltInStrengths = @($AuthStrengths | Where-Object { $_.policyType -eq 'builtIn' }) + $CustomStrengths = @($AuthStrengths | Where-Object { $_.policyType -eq 'custom' }) + + $ResultMarkdown = "## Authentication Strength Policies`n`n" + $ResultMarkdown += "Found $($AuthStrengths.Count) authentication strength policies ($($BuiltInStrengths.Count) built-in, $($CustomStrengths.Count) custom).`n`n" + + if ($CustomStrengths.Count -gt 0) { + $ResultMarkdown += "### Custom Authentication Strengths`n`n" + $ResultMarkdown += "| Name | Combinations |`n" + $ResultMarkdown += "| :--- | :---------- |`n" + foreach ($strength in $CustomStrengths) { + $combinations = if ($strength.allowedCombinations) { $strength.allowedCombinations.Count } else { 0 } + $ResultMarkdown += "| $($strength.displayName) | $combinations methods |`n" + } + } + + $Status = 'Passed' + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Enable protected actions to secure Conditional Access policy creation and changes' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access control' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Enable protected actions to secure Conditional Access policy creation and changes' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21983.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21983.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21983.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21984.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21984.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21984.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21985.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21985.md new file mode 100644 index 000000000000..fa3494bd6918 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21985.md @@ -0,0 +1,9 @@ +Microsoft Entra seamless single sign-on (Seamless SSO) is a legacy authentication feature designed to provide passwordless access for domain-joined devices that are not hybrid Microsoft Entra ID joined. Seamless SSO relies on Kerberos authentication and is primarily beneficial for older operating systems like Windows 7 and Windows 8.1, which do not support Primary Refresh Tokens (PRT). If these legacy systems are no longer present in the environment, continuing to use Seamless SSO introduces unnecessary complexity and potential security exposure. Threat actors could exploit misconfigured or stale Kerberos tickets, or compromise the `AZUREADSSOACC` computer account in Active Directory, which holds the Kerberos decryption key used by Microsoft Entra ID. Once compromised, attackers could impersonate users, bypass modern authentication controls, and gain unauthorized access to cloud resources. Disabling Seamless SSO in environments where it is no longer needed reduces the attack surface and enforces the use of modern, token-based authentication mechanisms that offer stronger protections. + +**Remediation action** + +- [Review how Seamless SSO works](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/how-to-connect-sso-how-it-works?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Disable Seamless SSO](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/how-to-connect-sso-faq?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#how-can-i-disable-seamless-sso-) +- [Clean up stale devices in Microsoft Entra ID](https://learn.microsoft.com/en-us/entra/identity/devices/manage-stale-devices?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21992.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21992.md new file mode 100644 index 000000000000..feff2e1e7706 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21992.md @@ -0,0 +1,13 @@ +If certificates aren't rotated regularly, they can give threat actors an extended window to extract and exploit them, leading to unauthorized access. When credentials like these are exposed, attackers can blend their malicious activities with legitimate operations, making it easier to bypass security controls. If an attacker compromises an application’s certificate, they can escalate their privileges within the system, leading to broader access and control, depending on the application's privileges. + +Query all of your service principals and application registrations that have certificate credentials. Make sure the certificate start date is less than 180 days. + +**Remediation action** + +- [Define an application management policy to manage certificate lifetimes](https://learn.microsoft.com/graph/api/resources/applicationauthenticationmethodpolicy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Define a trusted certificate chain of trust](https://learn.microsoft.com/graph/api/resources/certificatebasedapplicationconfiguration?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Create a least privileged custom role to rotate application credentials](https://learn.microsoft.com/entra/identity/role-based-access-control/custom-create?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Learn more about app management policies to manage certificate based credentials](https://devblogs.microsoft.com/identity/app-management-policy/) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21992.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21992.ps1 new file mode 100644 index 000000000000..738197a548a8 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21992.ps1 @@ -0,0 +1,114 @@ +function Invoke-CippTestZTNA21992 { + <# + .SYNOPSIS + Application certificates must be rotated on a regular basis + #> + param($Tenant) + + try { + $Apps = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Apps' + $ServicePrincipals = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ServicePrincipals' + #Tested + if (-not $Apps -and -not $ServicePrincipals) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21992' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Application certificates must be rotated on a regular basis' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application management' + return + } + + $RotationThresholdDays = 180 + $ThresholdDate = (Get-Date).AddDays(-$RotationThresholdDays) + + $OldAppCerts = @() + if ($Apps) { + $OldAppCerts = $Apps | Where-Object { + $_.keyCredentials -and $_.keyCredentials.Count -gt 0 + } | ForEach-Object { + $App = $_ + $OldestCert = $App.keyCredentials | Where-Object { $_.startDateTime } | ForEach-Object { + [DateTime]$_.startDateTime + } | Sort-Object | Select-Object -First 1 + + if ($OldestCert -and $OldestCert -lt $ThresholdDate) { + [PSCustomObject]@{ + Type = 'Application' + DisplayName = $App.displayName + AppId = $App.appId + Id = $App.id + OldestCertDate = $OldestCert + } + } + } + } + + $OldSPCerts = @() + if ($ServicePrincipals) { + $OldSPCerts = $ServicePrincipals | Where-Object { + $_.keyCredentials -and $_.keyCredentials.Count -gt 0 + } | ForEach-Object { + $SP = $_ + $OldestCert = $SP.keyCredentials | Where-Object { $_.startDateTime } | ForEach-Object { + [DateTime]$_.startDateTime + } | Sort-Object | Select-Object -First 1 + + if ($OldestCert -and $OldestCert -lt $ThresholdDate) { + [PSCustomObject]@{ + Type = 'ServicePrincipal' + DisplayName = $SP.displayName + AppId = $SP.appId + Id = $SP.id + OldestCertDate = $OldestCert + } + } + } + } + + if ($OldAppCerts.Count -eq 0 -and $OldSPCerts.Count -eq 0) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21992' -TestType 'Identity' -Status 'Passed' -ResultMarkdown "Certificates for applications in your tenant have been issued within $RotationThresholdDays days" -Risk 'High' -Name 'Application certificates must be rotated on a regular basis' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application management' + return + } + + $Status = 'Failed' + + $ResultLines = @( + "Found $($OldAppCerts.Count) application(s) and $($OldSPCerts.Count) service principal(s) with certificates not rotated within $RotationThresholdDays days." + '' + "**Certificate rotation threshold:** $RotationThresholdDays days" + '' + ) + + if ($OldAppCerts.Count -gt 0) { + $ResultLines += '**Applications with old certificates:**' + $Top10Apps = $OldAppCerts | Select-Object -First 10 + foreach ($App in $Top10Apps) { + $DaysOld = [Math]::Round(((Get-Date) - $App.OldestCertDate).TotalDays, 0) + $ResultLines += "- $($App.DisplayName) (Certificate age: $DaysOld days)" + } + if ($OldAppCerts.Count -gt 10) { + $ResultLines += "- ... and $($OldAppCerts.Count - 10) more application(s)" + } + $ResultLines += '' + } + + if ($OldSPCerts.Count -gt 0) { + $ResultLines += '**Service principals with old certificates:**' + $Top10SPs = $OldSPCerts | Select-Object -First 10 + foreach ($SP in $Top10SPs) { + $DaysOld = [Math]::Round(((Get-Date) - $SP.OldestCertDate).TotalDays, 0) + $ResultLines += "- $($SP.DisplayName) (Certificate age: $DaysOld days)" + } + if ($OldSPCerts.Count -gt 10) { + $ResultLines += "- ... and $($OldSPCerts.Count - 10) more service principal(s)" + } + $ResultLines += '' + } + + $ResultLines += '**Recommendation:** Rotate certificates regularly to reduce the risk of credential compromise.' + + $Result = $ResultLines -join "`n" + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21992' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Application certificates must be rotated on a regular basis' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21992' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Application certificates must be rotated on a regular basis' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22072.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22072.md new file mode 100644 index 000000000000..a44892e995ac --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22072.md @@ -0,0 +1,11 @@ +Allowing security questions as a self-service password reset (SSPR) method weakens the password reset process because answers are frequently guessable, reused across sites, or discoverable through open-source intelligence (OSINT). Threat actors enumerate or phish users, derive likely responses (family names, schools, and locations), and then trigger password reset flows to bypass stronger methods by exploiting the weaker knowledge-based gate. After they successfully reset a password on an account that isn't protected by multifactor authentication they can: gain valid primary credentials, establish session tokens, and laterally expand by registering more durable authentication methods, add forwarding rules, or exfiltrate sensitive data. + +Eliminating this method removes a weak link in the password reset process. Some organizations might have specific business reasons for leaving security questions enabled, but this isn't recommended. + +**Remediation action** + +- [Disable security questions in SSPR policy](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-security-questions?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Select authentication methods and registration options](https://learn.microsoft.com/entra/identity/authentication/tutorial-enable-sspr?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#select-authentication-methods-and-registration-options) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22124.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22124.md new file mode 100644 index 000000000000..ed0906a131a4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22124.md @@ -0,0 +1,8 @@ +Leaving high-priority Microsoft Entra recommendations unaddressed can create a gap in an organization’s security posture, offering threat actors opportunities to exploit known weaknesses. Not acting on these items might result in an increased attack surface area, suboptimal operations, or poor user experience. + +**Remediation action** + +- [Address all high priority recommendations in the Microsoft Entra admin center](https://learn.microsoft.com/entra/identity/monitoring-health/overview-recommendations?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#how-does-it-work) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22124.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22124.ps1 new file mode 100644 index 000000000000..defe5a2a1b8e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22124.ps1 @@ -0,0 +1,99 @@ +function Invoke-CippTestZTNA22124 { + <# + .SYNOPSIS + Checks if all high priority Entra recommendations have been addressed + + .DESCRIPTION + Verifies that there are no active or postponed high priority recommendations in the tenant, + ensuring critical security improvements have been implemented. + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + try { + # Get directory recommendations from cache + $Recommendations = New-CIPPDbRequest -TenantFilter $Tenant -Type 'DirectoryRecommendations' + + if (-not $Recommendations) { + $TestParams = @{ + TestId = 'ZTNA22124' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'Unable to retrieve directory recommendations from cache.' + Risk = 'High' + Name = 'Address high priority Entra recommendations' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Governance' + } + Add-CippTestResult @TestParams + return + } + + # Filter for high priority recommendations that are active or postponed + $HighPriorityIssues = [System.Collections.Generic.List[object]]::new() + foreach ($rec in $Recommendations) { + if ($rec.priority -eq 'high' -and ($rec.status -eq 'active' -or $rec.status -eq 'postponed')) { + $HighPriorityIssues.Add($rec) + } + } + + $Status = if ($HighPriorityIssues.Count -eq 0) { 'Passed' } else { 'Failed' } + + if ($Status -eq 'Passed') { + $ResultMarkdown = "✅ **Pass**: All high priority Entra recommendations have been addressed.`n`n" + $ResultMarkdown += '[View recommendations](https://entra.microsoft.com/#view/Microsoft_Azure_SecureScore/OverviewBlade)' + } else { + $ResultMarkdown = "❌ **Fail**: There are $($HighPriorityIssues.Count) high priority recommendation(s) that have not been addressed.`n`n" + $ResultMarkdown += "## Outstanding high priority recommendations`n`n" + $ResultMarkdown += "| Display Name | Status | Insights |`n" + $ResultMarkdown += "| :----------- | :----- | :------- |`n" + + foreach ($issue in $HighPriorityIssues) { + $displayName = if ($issue.displayName) { $issue.displayName } else { 'N/A' } + $status = if ($issue.status) { $issue.status } else { 'N/A' } + $insights = if ($issue.insights) { $issue.insights } else { 'N/A' } + $ResultMarkdown += "| $displayName | $status | $insights |`n" + } + + $ResultMarkdown += "`n[Address recommendations](https://entra.microsoft.com/#view/Microsoft_Azure_SecureScore/OverviewBlade)" + } + + $TestParams = @{ + TestId = 'ZTNA22124' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'High' + Name = 'Address high priority Entra recommendations' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Governance' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA22124' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'High' + Name = 'Address high priority Entra recommendations' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Governance' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA22124 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22128.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22128.md new file mode 100644 index 000000000000..ec419c5d76e3 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22128.md @@ -0,0 +1,9 @@ +When guest users are assigned highly privileged directory roles such as Global Administrator or Privileged Role Administrator, organizations create significant security vulnerabilities that threat actors can exploit for initial access through compromised external accounts or business partner environments. Since guest users originate from external organizations without direct control of security policies, threat actors who compromise these external identities can gain privileged access to the target organization's Microsoft Entra tenant. + +When threat actors obtain access through compromised guest accounts with elevated privileges, they can escalate their own privilege to create other backdoor accounts, modify security policies, or assign themselves permanent roles within the organization. The compromised privileged guest accounts enable threat actors to establish persistence and then make all the changes they need to remain undetected. For example they could create cloud-only accounts, bypass Conditional Access policies applied to internal users, and maintain access even after the guest's home organization detects the compromise. Threat actors can then conduct lateral movement using administrative privileges to access sensitive resources, modify audit settings, or disable security monitoring across the entire tenant. Threat actors can reach complete compromise of the organization's identity infrastructure while maintaining plausible deniability through the external guest account origin. + +**Remediation action** + +- [Remove Guest users from privileged roles](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/best-practices?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22128.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22128.ps1 new file mode 100644 index 000000000000..654c9549461d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22128.ps1 @@ -0,0 +1,91 @@ +function Invoke-CippTestZTNA22128 { + <# + .SYNOPSIS + Guests are not assigned high privileged directory roles + #> + param($Tenant) + #Tested + try { + $Roles = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Roles' + $Guests = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Guests' + + if (-not $Roles -or -not $Guests) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA22128' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Guests are not assigned high privileged directory roles' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application management' + return + } + + if ($Guests.Count -eq 0) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA22128' -TestType 'Identity' -Status 'Passed' -ResultMarkdown 'No guest users found in tenant' -Risk 'High' -Name 'Guests are not assigned high privileged directory roles' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application management' + return + } + + $GuestIds = $Guests | ForEach-Object { $_.id } + $GuestIdHash = @{} + foreach ($Guest in $Guests) { + $GuestIdHash[$Guest.id] = $Guest + } + + $PrivilegedRoleTemplateIds = @( + '62e90394-69f5-4237-9190-012177145e10' + '194ae4cb-b126-40b2-bd5b-6091b380977d' + 'f28a1f50-f6e7-4571-818b-6a12f2af6b6c' + '29232cdf-9323-42fd-ade2-1d097af3e4de' + 'b1be1c3e-b65d-4f19-8427-f6fa0d97feb9' + '729827e3-9c14-49f7-bb1b-9608f156bbb8' + 'b0f54661-2d74-4c50-afa3-1ec803f12efe' + 'fe930be7-5e62-47db-91af-98c3a49a38b1' + ) + + $GuestsInPrivilegedRoles = @() + foreach ($Role in $Roles) { + if ($Role.roleTemplateId -in $PrivilegedRoleTemplateIds -and $Role.members) { + foreach ($Member in $Role.members) { + if ($GuestIdHash.ContainsKey($Member.id)) { + $GuestsInPrivilegedRoles += [PSCustomObject]@{ + RoleName = $Role.displayName + GuestId = $Member.id + GuestDisplayName = $Member.displayName + GuestUserPrincipalName = $Member.userPrincipalName + } + } + } + } + } + + if ($GuestsInPrivilegedRoles.Count -eq 0) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA22128' -TestType 'Identity' -Status 'Passed' -ResultMarkdown 'Guests with privileged roles were not found. All users with privileged roles are members of the tenant' -Risk 'High' -Name 'Guests are not assigned high privileged directory roles' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application management' + return + } + + $Status = 'Failed' + + $ResultLines = @( + "Found $($GuestsInPrivilegedRoles.Count) guest user(s) with privileged role assignments." + '' + "**Total guests in tenant:** $($Guests.Count)" + "**Guests with privileged roles:** $($GuestsInPrivilegedRoles.Count)" + '' + '**Guest users in privileged roles:**' + ) + + $RoleGroups = $GuestsInPrivilegedRoles | Group-Object -Property RoleName + foreach ($RoleGroup in $RoleGroups) { + $ResultLines += '' + $ResultLines += "**$($RoleGroup.Name)** ($($RoleGroup.Count) guest(s)):" + foreach ($Guest in $RoleGroup.Group) { + $ResultLines += "- $($Guest.GuestDisplayName) ($($Guest.GuestUserPrincipalName))" + } + } + + $ResultLines += '' + $ResultLines += '**Security concern:** Guest users should not have privileged directory roles. Consider using separate admin accounts for external administrators or removing privileged access.' + + $Result = $ResultLines -join "`n" + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA22128' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Guests are not assigned high privileged directory roles' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA22128' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Guests are not assigned high privileged directory roles' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22659.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22659.md new file mode 100644 index 000000000000..a030b51bb467 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22659.md @@ -0,0 +1,19 @@ +Threat actors increasingly target workload identities (applications, service principals, and managed identities) because they lack human factors and often use long-lived credentials. A compromise often looks like the following path: + +1. Credential abuse or key theft. +1. Non-interactive sign-ins to cloud resources. +1. Lateral movement via app permissions. +1. Persistence through new secrets or role assignments. + +Microsoft Entra ID Protection continuously generates risky workload identity detections and flags sign-in events with risk state and detail. Risky workload identity sign-ins that aren’t triaged (confirmed compromised, dismissed, or marked safe), detection fatigue, and a large alert backlog can be challenging for IT admins to manage. This heavy workload can let repeated malicious access, privilege escalation, and token replay to continue to go unnoticed. To make the workload manageable, address risky workload identity sign-ins in two parts: + +- Close the loop: Triage sign-ins and record an authoritative decision on each risky event. +- Drive containment: Disable the service principal, rotate credentials, or revoke sessions. + +**Remediation action** + +- [Investigate risky workload identities and perform appropriate remediation ](https://learn.microsoft.com/en-us/entra/id-protection/concept-workload-identity-risk?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Dismiss workload identity risks when determined to be false positives](https://learn.microsoft.com/graph/api/riskyserviceprincipal-dismiss?view=graph-rest-1.0&preserve-view=true&wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Confirm compromised workload identities when risks are validated](https://learn.microsoft.com/graph/api/riskyserviceprincipal-confirmcompromised?view=graph-rest-1.0&preserve-view=true&wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22659.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22659.ps1 new file mode 100644 index 000000000000..fa3636424a16 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22659.ps1 @@ -0,0 +1,112 @@ +function Invoke-CippTestZTNA22659 { + <# + .SYNOPSIS + Checks if risky workload identity sign-ins have been triaged + + .DESCRIPTION + Verifies that there are no active risky sign-in detections for service principals, + ensuring that compromised workload identities are properly investigated and remediated. + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + try { + # Get service principal risk detections from cache + $RiskDetections = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ServicePrincipalRiskDetections' + + if (-not $RiskDetections) { + $TestParams = @{ + TestId = 'ZTNA22659' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'Unable to retrieve service principal risk detections from cache.' + Risk = 'High' + Name = 'Triage risky workload identity sign-ins' + UserImpact = 'High' + ImplementationEffort = 'Low' + Category = 'Identity protection' + } + Add-CippTestResult @TestParams + return + } + + # Filter for sign-in detections that are at risk + $RiskySignIns = [System.Collections.Generic.List[object]]::new() + foreach ($detection in $RiskDetections) { + if ($detection.activity -eq 'signIn' -and $detection.riskState -eq 'atRisk') { + $RiskySignIns.Add($detection) + } + } + + $Status = if ($RiskySignIns.Count -eq 0) { 'Passed' } else { 'Failed' } + + if ($Status -eq 'Passed') { + $ResultMarkdown = "✅ **Pass**: No risky workload identity sign-ins detected or all have been triaged.`n`n" + $ResultMarkdown += '[View identity protection](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/IdentityProtectionMenuBlade/~/RiskyServicePrincipals)' + } else { + $ResultMarkdown = "❌ **Fail**: There are $($RiskySignIns.Count) risky workload identity sign-in(s) that require investigation.`n`n" + $ResultMarkdown += "## Risky service principal sign-ins`n`n" + $ResultMarkdown += "| Service Principal | App ID | Risk State | Risk Level | Last Updated |`n" + $ResultMarkdown += "| :---------------- | :----- | :--------- | :--------- | :----------- |`n" + + foreach ($signin in $RiskySignIns) { + $spName = if ($signin.servicePrincipalDisplayName) { $signin.servicePrincipalDisplayName } else { 'N/A' } + $appId = if ($signin.appId) { $signin.appId } else { 'N/A' } + $riskState = if ($signin.riskState) { $signin.riskState } else { 'N/A' } + $riskLevel = if ($signin.riskLevel) { $signin.riskLevel } else { 'N/A' } + + # Format last updated date + $lastUpdated = 'N/A' + if ($signin.lastUpdatedDateTime) { + try { + $date = [DateTime]::Parse($signin.lastUpdatedDateTime) + $lastUpdated = $date.ToString('yyyy-MM-dd HH:mm') + } catch { + $lastUpdated = $signin.lastUpdatedDateTime + } + } + + $ResultMarkdown += "| $spName | $appId | $riskState | $riskLevel | $lastUpdated |`n" + } + + $ResultMarkdown += "`n[Investigate and remediate](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/IdentityProtectionMenuBlade/~/RiskyServicePrincipals)" + } + + $TestParams = @{ + TestId = 'ZTNA22659' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'High' + Name = 'Triage risky workload identity sign-ins' + UserImpact = 'High' + ImplementationEffort = 'Low' + Category = 'Identity protection' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA22659' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'High' + Name = 'Triage risky workload identity sign-ins' + UserImpact = 'High' + ImplementationEffort = 'Low' + Category = 'Identity protection' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA22659 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24570.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24570.ps1 new file mode 100644 index 000000000000..08114f3e503f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24570.ps1 @@ -0,0 +1,187 @@ +function Invoke-CippTestZTNA24570 { + <# + .SYNOPSIS + Checks if Entra Connect uses a service principal instead of a user account + + .DESCRIPTION + Verifies that if hybrid identity synchronization is enabled (Entra Connect), the + Directory Synchronization Accounts role contains only service principals and not user accounts, + reducing the risk of credential theft. + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + try { + # Get organization info to check if hybrid identity is enabled + $OrgInfo = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Organization' + + if (-not $OrgInfo) { + $TestParams = @{ + TestId = 'ZTNA24570' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'Unable to retrieve organization information from cache.' + Risk = 'High' + Name = 'Entra Connect uses a service principal' + UserImpact = 'Medium' + ImplementationEffort = 'High' + Category = 'Access control' + } + Add-CippTestResult @TestParams + return + } + + # Check if hybrid identity is enabled + $HybridEnabled = $OrgInfo.onPremisesSyncEnabled -eq $true + + if (-not $HybridEnabled) { + $TestParams = @{ + TestId = 'ZTNA24570' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = '✅ **N/A**: Hybrid identity synchronization is not enabled in this tenant.' + Risk = 'High' + Name = 'Entra Connect uses a service principal' + UserImpact = 'Medium' + ImplementationEffort = 'High' + Category = 'Access control' + } + Add-CippTestResult @TestParams + return + } + + # Get roles to find Directory Synchronization Accounts role + $Roles = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Roles' + + if (-not $Roles) { + $TestParams = @{ + TestId = 'ZTNA24570' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'Unable to retrieve roles from cache.' + Risk = 'High' + Name = 'Entra Connect uses a service principal' + UserImpact = 'Medium' + ImplementationEffort = 'High' + Category = 'Access control' + } + Add-CippTestResult @TestParams + return + } + + # Find Directory Synchronization Accounts role (roleTemplateId: d29b2b05-8046-44ba-8758-1e26182fcf32) + $DirSyncRole = $null + foreach ($role in $Roles) { + if ($role.roleTemplateId -eq 'd29b2b05-8046-44ba-8758-1e26182fcf32') { + $DirSyncRole = $role + break + } + } + + if (-not $DirSyncRole) { + $TestParams = @{ + TestId = 'ZTNA24570' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = '❌ **Error**: Unable to find Directory Synchronization Accounts role in cache.' + Risk = 'High' + Name = 'Entra Connect uses a service principal' + UserImpact = 'Medium' + ImplementationEffort = 'High' + Category = 'Access control' + } + Add-CippTestResult @TestParams + return + } + + # Check role members for enabled user accounts + $EnabledUsers = [System.Collections.Generic.List[object]]::new() + if ($DirSyncRole.members) { + foreach ($member in $DirSyncRole.members) { + # Check if it's a user (not a service principal) and if it's enabled + if ($member.'@odata.type' -eq '#microsoft.graph.user') { + $isEnabled = $member.accountEnabled -eq $true + if ($isEnabled) { + $EnabledUsers.Add([PSCustomObject]@{ + DisplayName = $member.displayName + UserPrincipalName = $member.userPrincipalName + AccountEnabled = $isEnabled + }) + } + } + } + } + + $Status = if ($EnabledUsers.Count -eq 0) { 'Passed' } else { 'Failed' } + + # Build result markdown + $lastSyncDate = if ($OrgInfo.onPremisesLastSyncDateTime) { + try { + $date = [DateTime]::Parse($OrgInfo.onPremisesLastSyncDateTime) + $date.ToString('yyyy-MM-dd HH:mm') + } catch { + $OrgInfo.onPremisesLastSyncDateTime + } + } else { + 'Never' + } + + if ($Status -eq 'Passed') { + $ResultMarkdown = "✅ **Pass**: Hybrid identity is enabled and using a service principal for synchronization.`n`n" + $ResultMarkdown += "**Last Sync**: $lastSyncDate`n`n" + $ResultMarkdown += '[Review configuration](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/RolesManagementMenuBlade/~/AllRoles)' + } else { + $ResultMarkdown = "❌ **Fail**: Hybrid identity is enabled but using $($EnabledUsers.Count) enabled user account(s) for synchronization.`n`n" + $ResultMarkdown += "**Last Sync**: $lastSyncDate`n`n" + $ResultMarkdown += "## Directory Synchronization Accounts role members`n`n" + $ResultMarkdown += "| Display Name | User Principal Name | Enabled |`n" + $ResultMarkdown += "| :----------- | :------------------ | :------ |`n" + + foreach ($user in $EnabledUsers) { + $ResultMarkdown += "| $($user.DisplayName) | $($user.UserPrincipalName) | ✅ Yes |`n" + } + + $ResultMarkdown += "`n[Migrate to service principal](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/RolesManagementMenuBlade/~/AllRoles)" + } + + $TestParams = @{ + TestId = 'ZTNA24570' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'High' + Name = 'Entra Connect uses a service principal' + UserImpact = 'Medium' + ImplementationEffort = 'High' + Category = 'Access control' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA24570' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'High' + Name = 'Entra Connect uses a service principal' + UserImpact = 'Medium' + ImplementationEffort = 'High' + Category = 'Access control' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA24570 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24572.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24572.ps1 new file mode 100644 index 000000000000..26fa10a7152d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24572.ps1 @@ -0,0 +1,51 @@ +function Invoke-CippTestZTNA24572 { + <# + .SYNOPSIS + Device enrollment notifications are enforced to ensure user awareness and secure onboarding + #> + param($Tenant) + + $TestId = 'ZTNA24572' + #Tested + try { + $EnrollmentConfigs = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceEnrollmentConfigurations' + + if (-not $EnrollmentConfigs) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Device enrollment notifications are enforced to ensure user awareness and secure onboarding' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + return + } + + $EnrollmentNotifications = @($EnrollmentConfigs | Where-Object { + $_.'@odata.type' -eq '#microsoft.graph.windowsEnrollmentStatusScreenSettings' -or + $_.'deviceEnrollmentConfigurationType' -eq 'EnrollmentNotificationsConfiguration' + }) + + $AssignedNotifications = @($EnrollmentNotifications | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedNotifications.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ At least one device enrollment notification is configured and assigned.`n`n" + } else { + $ResultMarkdown = "❌ No device enrollment notification is configured or assigned in Intune.`n`n" + } + + if ($EnrollmentNotifications.Count -gt 0) { + $ResultMarkdown += "## Device Enrollment Notifications`n`n" + $ResultMarkdown += "| Policy Name | Assigned |`n" + $ResultMarkdown += "| :---------- | :------- |`n" + + foreach ($policy in $EnrollmentNotifications) { + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $assigned |`n" + } + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Device enrollment notifications are enforced to ensure user awareness and secure onboarding' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Device enrollment notifications are enforced to ensure user awareness and secure onboarding' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24824.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24824.ps1 new file mode 100644 index 000000000000..9dc68cd0c59f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24824.ps1 @@ -0,0 +1,175 @@ +function Invoke-CippTestZTNA24824 { + <# + .SYNOPSIS + Checks if Conditional Access policies block access from noncompliant devices + + .DESCRIPTION + Verifies that enabled Conditional Access policies exist that require device compliance, + covering all platforms (Windows, macOS, iOS, Android) or a policy with no platform filter. + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + try { + # Get CA policies from cache + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $CAPolicies) { + $TestParams = @{ + TestId = 'ZTNA24824' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'Unable to retrieve Conditional Access policies from cache.' + Risk = 'High' + Name = 'CA policies block access from noncompliant devices' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Device security' + } + Add-CippTestResult @TestParams + return + } + + # Filter for enabled policies with compliantDevice control + $CompliantDevicePolicies = [System.Collections.Generic.List[object]]::new() + foreach ($policy in $CAPolicies) { + if ($policy.state -eq 'enabled' -and + $policy.grantControls -and + $policy.grantControls.builtInControls -and + ($policy.grantControls.builtInControls -contains 'compliantDevice')) { + $CompliantDevicePolicies.Add($policy) + } + } + + if ($CompliantDevicePolicies.Count -eq 0) { + $TestParams = @{ + TestId = 'ZTNA24824' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Fail**: No Conditional Access policies found that block access from noncompliant devices.`n`n[Create policies](https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/ConditionalAccessBlade/~/Policies)" + Risk = 'High' + Name = 'CA policies block access from noncompliant devices' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Device security' + } + Add-CippTestResult @TestParams + return + } + + # Track platform coverage + $PlatformCoverage = @{ + 'windows' = $false + 'macOS' = $false + 'iOS' = $false + 'android' = $false + } + $AllPlatformsPolicy = $false + + $PolicyDetails = [System.Collections.Generic.List[object]]::new() + + foreach ($policy in $CompliantDevicePolicies) { + $platforms = 'All platforms' + + if ($policy.conditions.platforms.includePlatforms) { + if ($policy.conditions.platforms.includePlatforms -contains 'all') { + $AllPlatformsPolicy = $true + $platforms = 'All platforms' + } else { + $platformList = $policy.conditions.platforms.includePlatforms -join ', ' + $platforms = $platformList + + # Track individual platform coverage + foreach ($platform in $policy.conditions.platforms.includePlatforms) { + $lowerPlatform = $platform.ToLower() + if ($PlatformCoverage.ContainsKey($lowerPlatform)) { + $PlatformCoverage[$lowerPlatform] = $true + } + } + } + } else { + # No platform filter = applies to all platforms + $AllPlatformsPolicy = $true + } + + $PolicyDetails.Add([PSCustomObject]@{ + Name = $policy.displayName + Platforms = $platforms + }) + } + + # Check if all platforms are covered (either by a single policy or combination) + $AllCovered = $AllPlatformsPolicy -or ( + $PlatformCoverage['windows'] -and + $PlatformCoverage['macOS'] -and + $PlatformCoverage['iOS'] -and + $PlatformCoverage['android'] + ) + + $Status = if ($AllCovered) { 'Passed' } else { 'Failed' } + + # Build result markdown + if ($Status -eq 'Passed') { + $ResultMarkdown = "✅ **Pass**: Conditional Access policies block noncompliant devices across all platforms.`n`n" + } else { + $ResultMarkdown = "❌ **Fail**: Conditional Access policies do not cover all device platforms.`n`n" + $missingPlatforms = [System.Collections.Generic.List[string]]::new() + foreach ($key in $PlatformCoverage.Keys) { + if (-not $PlatformCoverage[$key]) { + $missingPlatforms.Add($key) + } + } + if ($missingPlatforms.Count -gt 0) { + $ResultMarkdown += "**Missing platform coverage**: $($missingPlatforms -join ', ')`n`n" + } + } + + $ResultMarkdown += "## Compliant device policies`n`n" + $ResultMarkdown += "| Policy Name | Platforms |`n" + $ResultMarkdown += "| :---------- | :-------- |`n" + + foreach ($detail in $PolicyDetails) { + $ResultMarkdown += "| $($detail.Name) | $($detail.Platforms) |`n" + } + + $ResultMarkdown += "`n[Review policies](https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/ConditionalAccessBlade/~/Policies)" + + $TestParams = @{ + TestId = 'ZTNA24824' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'High' + Name = 'CA policies block access from noncompliant devices' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Device security' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA24824' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'High' + Name = 'CA policies block access from noncompliant devices' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Device security' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA24824 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24827.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24827.ps1 new file mode 100644 index 000000000000..70dff3d7135a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24827.ps1 @@ -0,0 +1,186 @@ +function Invoke-CippTestZTNA24827 { + <# + .SYNOPSIS + Checks if Conditional Access policies block unmanaged mobile apps + + .DESCRIPTION + Verifies that enabled Conditional Access policies exist that require compliant applications + for iOS and Android platforms, preventing unmanaged apps from accessing corporate data. + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested - Device + + try { + # Get CA policies from cache + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $CAPolicies) { + $TestParams = @{ + TestId = 'ZTNA24827' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'Unable to retrieve Conditional Access policies from cache.' + Risk = 'Medium' + Name = 'CA policies block unmanaged mobile apps' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Application security' + } + Add-CippTestResult @TestParams + return + } + + # Filter for enabled policies with compliantApplication control for mobile platforms + $CompliantAppPolicies = [System.Collections.Generic.List[object]]::new() + foreach ($policy in $CAPolicies) { + if ($policy.state -eq 'enabled' -and + $policy.grantControls -and + $policy.grantControls.builtInControls -and + ($policy.grantControls.builtInControls -contains 'compliantApplication')) { + + # Check if policy applies to iOS or Android + $appliesToMobile = $false + if ($policy.conditions.platforms.includePlatforms) { + if ($policy.conditions.platforms.includePlatforms -contains 'all' -or + $policy.conditions.platforms.includePlatforms -contains 'iOS' -or + $policy.conditions.platforms.includePlatforms -contains 'android') { + $appliesToMobile = $true + } + } else { + # No platform filter = applies to all platforms including mobile + $appliesToMobile = $true + } + + if ($appliesToMobile) { + $CompliantAppPolicies.Add($policy) + } + } + } + + if ($CompliantAppPolicies.Count -eq 0) { + $TestParams = @{ + TestId = 'ZTNA24827' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Fail**: No Conditional Access policies found that block unmanaged mobile apps.`n`n[Create policies](https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/ConditionalAccessBlade/~/Policies)" + Risk = 'Medium' + Name = 'CA policies block unmanaged mobile apps' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Application security' + } + Add-CippTestResult @TestParams + return + } + + # Track platform coverage for iOS and Android + $PlatformCoverage = @{ + 'iOS' = $false + 'android' = $false + } + $AllPlatformsPolicy = $false + + $PolicyDetails = [System.Collections.Generic.List[object]]::new() + + foreach ($policy in $CompliantAppPolicies) { + $platforms = 'All platforms' + + if ($policy.conditions.platforms.includePlatforms) { + if ($policy.conditions.platforms.includePlatforms -contains 'all') { + $AllPlatformsPolicy = $true + $platforms = 'All platforms' + } else { + $platformList = $policy.conditions.platforms.includePlatforms -join ', ' + $platforms = $platformList + + # Track individual platform coverage + if ($policy.conditions.platforms.includePlatforms -contains 'iOS') { + $PlatformCoverage['iOS'] = $true + } + if ($policy.conditions.platforms.includePlatforms -contains 'android') { + $PlatformCoverage['android'] = $true + } + } + } else { + # No platform filter = applies to all platforms + $AllPlatformsPolicy = $true + } + + $PolicyDetails.Add([PSCustomObject]@{ + Name = $policy.displayName + Platforms = $platforms + }) + } + + # Check if both iOS and Android are covered + $BothCovered = $AllPlatformsPolicy -or ($PlatformCoverage['iOS'] -and $PlatformCoverage['android']) + + $Status = if ($BothCovered) { 'Passed' } else { 'Failed' } + + # Build result markdown + if ($Status -eq 'Passed') { + $ResultMarkdown = "✅ **Pass**: Conditional Access policies block unmanaged apps on both iOS and Android platforms.`n`n" + } else { + $ResultMarkdown = "❌ **Fail**: Conditional Access policies do not cover all mobile platforms.`n`n" + $missingPlatforms = [System.Collections.Generic.List[string]]::new() + if (-not $PlatformCoverage['iOS']) { + $missingPlatforms.Add('iOS') + } + if (-not $PlatformCoverage['android']) { + $missingPlatforms.Add('android') + } + if ($missingPlatforms.Count -gt 0) { + $ResultMarkdown += "**Missing platform coverage**: $($missingPlatforms -join ', ')`n`n" + } + } + + $ResultMarkdown += "## Compliant application policies`n`n" + $ResultMarkdown += "| Policy Name | Platforms |`n" + $ResultMarkdown += "| :---------- | :-------- |`n" + + foreach ($detail in $PolicyDetails) { + $ResultMarkdown += "| $($detail.Name) | $($detail.Platforms) |`n" + } + + $ResultMarkdown += "`n[Review policies](https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/ConditionalAccessBlade/~/Policies)" + + $TestParams = @{ + TestId = 'ZTNA24827' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'Medium' + Name = 'CA policies block unmanaged mobile apps' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Application security' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA24827' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'Medium' + Name = 'CA policies block unmanaged mobile apps' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Application security' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA24827 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/report.json b/Modules/CIPPCore/Public/Tests/ZTNA/report.json new file mode 100644 index 000000000000..21d37a9b0dd3 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/report.json @@ -0,0 +1,115 @@ +{ + "name": "Zero Trust Network Access Tests", + "description": "Microsoft's Comprehensive security assessment covering identity and device compliance, conditional access policies, authentication methods, and endpoint protection aligned with Zero Trust principles.", + "version": "1.0", + "IdentityTests": [ + "ZTNA21772", + "ZTNA21773", + "ZTNA21774", + "ZTNA21776", + "ZTNA21780", + "ZTNA21783", + "ZTNA21784", + "ZTNA21786", + "ZTNA21787", + "ZTNA21790", + "ZTNA21791", + "ZTNA21792", + "ZTNA21793", + "ZTNA21796", + "ZTNA21797", + "ZTNA21799", + "ZTNA21802", + "ZTNA21803", + "ZTNA21804", + "ZTNA21806", + "ZTNA21807", + "ZTNA21808", + "ZTNA21809", + "ZTNA21810", + "ZTNA21811", + "ZTNA21812", + "ZTNA21813", + "ZTNA21814", + "ZTNA21815", + "ZTNA21816", + "ZTNA21818", + "ZTNA21819", + "ZTNA21820", + "ZTNA21822", + "ZTNA21823", + "ZTNA21824", + "ZTNA21825", + "ZTNA21828", + "ZTNA21829", + "ZTNA21830", + "ZTNA21835", + "ZTNA21836", + "ZTNA21837", + "ZTNA21838", + "ZTNA21839", + "ZTNA21840", + "ZTNA21841", + "ZTNA21842", + "ZTNA21844", + "ZTNA21845", + "ZTNA21846", + "ZTNA21847", + "ZTNA21848", + "ZTNA21849", + "ZTNA21850", + "ZTNA21858", + "ZTNA21861", + "ZTNA21862", + "ZTNA21863", + "ZTNA21865", + "ZTNA21866", + "ZTNA21868", + "ZTNA21869", + "ZTNA21872", + "ZTNA21874", + "ZTNA21877", + "ZTNA21883", + "ZTNA21886", + "ZTNA21889", + "ZTNA21892", + "ZTNA21896", + "ZTNA21941", + "ZTNA21953", + "ZTNA21954", + "ZTNA21955", + "ZTNA21964", + "ZTNA21992", + "ZTNA22124", + "ZTNA22128", + "ZTNA22659", + "ZTNA24570", + "ZTNA24572", + "ZTNA24824", + "ZTNA24827" + ], + "DevicesTests": [ + "ZTNA24540", + "ZTNA24541", + "ZTNA24542", + "ZTNA24543", + "ZTNA24545", + "ZTNA24547", + "ZTNA24548", + "ZTNA24549", + "ZTNA24550", + "ZTNA24552", + "ZTNA24553", + "ZTNA24560", + "ZTNA24564", + "ZTNA24568", + "ZTNA24569", + "ZTNA24574", + "ZTNA24575", + "ZTNA24576", + "ZTNA24784", + "ZTNA24839", + "ZTNA24840", + "ZTNA24870" + ] +} diff --git a/Modules/CIPPCore/Public/Tools/Enable-CippConsoleLogging.ps1 b/Modules/CIPPCore/Public/Tools/Enable-CippConsoleLogging.ps1 new file mode 100644 index 000000000000..1809e164d87b --- /dev/null +++ b/Modules/CIPPCore/Public/Tools/Enable-CippConsoleLogging.ps1 @@ -0,0 +1,178 @@ +# Define log level enum at script scope +enum CippConsoleLogLevel { + Debug = 0 + Verbose = 1 + Information = 2 + Warning = 3 + Error = 4 +} + +function Enable-CippConsoleLogging { + <# + .SYNOPSIS + Enable console output logging to Application Insights + .DESCRIPTION + Overrides Write-Information, Write-Warning, Write-Error, Write-Verbose, and Write-Debug + functions to send telemetry to Application Insights while maintaining normal console output + .FUNCTIONALITY + Internal + .EXAMPLE + Enable-CippConsoleLogging + + # Now all Write-* calls will be logged to Application Insights + Write-Information "This will be logged" + Write-Warning "This warning will be logged" + #> + [CmdletBinding()] + param() + + # Initialize AsyncLocal storage for InvocationId (thread-safe) + if (-not $script:CippInvocationIdStorage) { + $script:CippInvocationIdStorage = [System.Threading.AsyncLocal[string]]::new() + } + + # Set minimum log level from environment variable (default: Information) + $validLevels = @('Debug', 'Verbose', 'Information', 'Warning', 'Error') + $configuredLevel = $env:CIPP_CONSOLE_LOG_LEVEL + $global:CippConsoleLogMinLevel = if ($configuredLevel -and $configuredLevel -in $validLevels) { + $configuredLevel + } else { + 'Information' + } + + if ($env:CIPP_CONSOLE_LOG_LEVEL -eq 'Debug') { + $global:DebugPreference = 'Continue' + } + + # Override Write-Information + function global:Write-Information { + [CmdletBinding()] + param( + [Parameter(Position = 0, ValueFromPipeline)] + [object]$MessageData, + [string[]]$Tags + ) + + # Only process and call original if MessageData is provided + if ($PSBoundParameters.ContainsKey('MessageData') -and $MessageData) { + # Send to telemetry + if (-not [string]::IsNullOrWhiteSpace(($MessageData | Out-String).Trim())) { + # If tag is supplied, include it in the log message + $LogMessage = if ($Tags -and $Tags.Count -gt 0) { + '[{0}] {1}' -f ($Tags -join ','), ($MessageData | Out-String).Trim() + } else { + ($MessageData | Out-String).Trim() + } + Send-CippConsoleLog -Message $LogMessage -Level 'Information' + } + + # Call original function + Microsoft.PowerShell.Utility\Write-Information @PSBoundParameters + } + } + + # Override Write-Warning + function global:Write-Warning { + [CmdletBinding()] + param( + [Parameter(Mandatory, Position = 0, ValueFromPipeline)] + [string]$Message + ) + + # Send to telemetry + if ($Message -and -not [string]::IsNullOrWhiteSpace($Message)) { + Send-CippConsoleLog -Message $Message -Level 'Warning' + } + + # Call original function + Microsoft.PowerShell.Utility\Write-Warning @PSBoundParameters + } + + # Override Write-Error + function global:Write-Error { + [CmdletBinding()] + param( + [Parameter(Position = 0, ValueFromPipeline)] + [object]$Message, + [object]$Exception, + [object]$ErrorRecord, + [string]$ErrorId, + [System.Management.Automation.ErrorCategory]$Category, + [object]$TargetObject, + [string]$RecommendedAction, + [string]$CategoryActivity, + [string]$CategoryReason, + [string]$CategoryTargetName, + [string]$CategoryTargetType + ) + + # Send to telemetry + $errorMessage = if ($Message) { ($Message | Out-String).Trim() } + elseif ($Exception) { $Exception.Message } + elseif ($ErrorRecord) { $ErrorRecord.Exception.Message } + else { 'Unknown error' } + + if ($errorMessage -and -not [string]::IsNullOrWhiteSpace($errorMessage)) { + Send-CippConsoleLog -Message $errorMessage -Level 'Error' + } + + # Call original function + Microsoft.PowerShell.Utility\Write-Error @PSBoundParameters + } + + # Override Write-Verbose + function global:Write-Verbose { + [CmdletBinding()] + param( + [Parameter(Mandatory, Position = 0, ValueFromPipeline)] + [string]$Message + ) + + # Send to telemetry + if ($Message -and -not [string]::IsNullOrWhiteSpace($Message)) { + Send-CippConsoleLog -Message $Message -Level 'Verbose' + } + + # Call original function + Microsoft.PowerShell.Utility\Write-Verbose @PSBoundParameters + } + + # Override Write-Debug + function global:Write-Debug { + [CmdletBinding()] + param( + [Parameter(Mandatory, Position = 0, ValueFromPipeline)] + [string]$Message + ) + + # Send to telemetry + if ($Message -and -not [string]::IsNullOrWhiteSpace($Message)) { + Send-CippConsoleLog -Message $Message -Level 'Debug' + } + + # Call original function + Microsoft.PowerShell.Utility\Write-Debug @PSBoundParameters + } + + # Override Write-Host + function global:Write-Host { + [CmdletBinding()] + param( + [Parameter(Position = 0, ValueFromPipeline)] + [object]$Object, + [switch]$NoNewline, + [object]$Separator, + [System.ConsoleColor]$ForegroundColor, + [System.ConsoleColor]$BackgroundColor + ) + + # Send to telemetry + $message = if ($Object) { ($Object | Out-String).Trim() } else { '' } + if ($message -and -not [string]::IsNullOrWhiteSpace($message)) { + Send-CippConsoleLog -Message $message -Level 'Information' + } + + # Call original function + Microsoft.PowerShell.Utility\Write-Host @PSBoundParameters + } +} diff --git a/Modules/CIPPCore/Public/Tools/Import-CommunityTemplate.ps1 b/Modules/CIPPCore/Public/Tools/Import-CommunityTemplate.ps1 index 6b5ee473988c..9ea1c1b98a76 100644 --- a/Modules/CIPPCore/Public/Tools/Import-CommunityTemplate.ps1 +++ b/Modules/CIPPCore/Public/Tools/Import-CommunityTemplate.ps1 @@ -8,6 +8,8 @@ function Import-CommunityTemplate { $Template, $SHA, $MigrationTable, + $LocationData, + $Source, [switch]$Force ) @@ -63,6 +65,7 @@ function Import-CommunityTemplate { $NewJSON = [string]($NewJSON | ConvertTo-Json -Depth 100 -Compress) $Template.JSON = $NewJSON $Template | Add-Member -MemberType NoteProperty -Name SHA -Value $SHA -Force + $Template | Add-Member -MemberType NoteProperty -Name Source -Value $Source -Force Add-CIPPAzDataTableEntity @Table -Entity $Template -Force } else { if ($Template.mailNickname) { $Type = 'Group' } @@ -85,6 +88,7 @@ function Import-CommunityTemplate { SHA = $SHA GUID = $Template.id RowKey = $Template.id + Source = $Source } Add-CIPPAzDataTableEntity @Table -Entity $entity -Force break @@ -98,6 +102,20 @@ function Import-CommunityTemplate { $id = $Template.id $Template = $Template | Select-Object * -ExcludeProperty lastModifiedDateTime, 'assignments', '#microsoft*', '*@odata.navigationLink', '*@odata.associationLink', '*@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime', '@odata.id', '@odata.editLink', '*odata.type', 'roleScopeTagIds@odata.type', createdDateTime, 'createdDateTime@odata.type' Remove-ODataProperties -Object $Template + + $LocationInfo = [system.collections.generic.list[object]]::new() + if ($LocationData) { + $LocationData | ForEach-Object { + if ($Template.conditions.locations.includeLocations -contains $_.id -or $Template.conditions.locations.excludeLocations -contains $_.id) { + Write-Information "Adding location info for location ID $($_.id)" + $LocationInfo.Add($_) + } + } + if ($LocationInfo.Count -gt 0) { + $Template | Add-Member -MemberType NoteProperty -Name LocationInfo -Value $LocationInfo -Force + } + } + $RawJson = ConvertTo-Json -InputObject $Template -Depth 100 -Compress #Replace the ids with the displayname by using the migration table, this is a simple find and replace each instance in the JSON. $MigrationTable.objects | ForEach-Object { @@ -105,12 +123,14 @@ function Import-CommunityTemplate { $RawJson = $RawJson.Replace($_.ID, $($_.DisplayName)) } } + $entity = @{ JSON = "$RawJson" PartitionKey = 'CATemplate' SHA = $SHA GUID = $ID RowKey = $ID + Source = $Source } Add-CIPPAzDataTableEntity @Table -Entity $entity -Force break @@ -145,7 +165,13 @@ function Import-CommunityTemplate { SHA = $SHA GUID = $ID RowKey = $ID + Source = $Source + } + + if ($Existing -and $Existing.Package) { + $entity.Package = $Existing.Package } + Add-CIPPAzDataTableEntity @Table -Entity $entity -Force } diff --git a/Modules/CIPPCore/Public/Tools/Initialize-CIPPExcludedLicenses.ps1 b/Modules/CIPPCore/Public/Tools/Initialize-CIPPExcludedLicenses.ps1 new file mode 100644 index 000000000000..6ea65fb9f555 --- /dev/null +++ b/Modules/CIPPCore/Public/Tools/Initialize-CIPPExcludedLicenses.ps1 @@ -0,0 +1,93 @@ +function Initialize-CIPPExcludedLicenses { + <# + .SYNOPSIS + Initialize the ExcludedLicenses table from the default config file + + .DESCRIPTION + Reads the ExcludeSkuList.JSON config file and adds missing licenses to the ExcludedLicenses Azure Table. + Only adds licenses that don't already exist, preserving any manually added entries. + Use -Force to clear the table and reset to defaults. + + .FUNCTIONALITY + Internal + + .PARAMETER Force + If specified, clears existing entries before initializing from config + + .PARAMETER Headers + Request headers for logging + + .PARAMETER APIName + API name for logging purposes + + .EXAMPLE + Initialize-CIPPExcludedLicenses -Headers $Request.Headers -APIName 'ExecExcludeLicenses' + #> + [CmdletBinding()] + param( + [switch]$Force, + $Headers, + $APIName = 'Initialize-CIPPExcludedLicenses' + ) + + try { + $Table = Get-CIPPTable -TableName ExcludedLicenses + + # If Force is specified, clear existing entries first + if ($Force) { + $ExistingRows = Get-CIPPAzDataTableEntity @Table + foreach ($Row in $ExistingRows) { + Remove-AzDataTableEntity -Force @Table -Entity $Row + } + Write-LogMessage -API $APIName -headers $Headers -message 'Cleared existing excluded licenses' -Sev 'Info' + } + + # Get the config file path + $CIPPCoreModuleRoot = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase + $CIPPRoot = (Get-Item $CIPPCoreModuleRoot).Parent.Parent + $ConfigPath = Join-Path $CIPPRoot 'Config\ExcludeSkuList.JSON' + + if (-not (Test-Path $ConfigPath)) { + throw "Config file not found: $ConfigPath" + } + + $TableBaseData = Get-Content -Path $ConfigPath -Raw | ConvertFrom-Json -AsHashtable -Depth 10 + + # Get existing GUIDs to avoid overwriting manually added entries + $ExistingRows = Get-CIPPAzDataTableEntity @Table + $ExistingGUIDs = @($ExistingRows | ForEach-Object { $_.GUID }) + + $AddedCount = 0 + $SkippedCount = 0 + foreach ($Row in $TableBaseData) { + if ($Row.GUID -in $ExistingGUIDs) { + $SkippedCount++ + continue + } + $Row.PartitionKey = 'License' + $Row.RowKey = $Row.GUID + Add-CIPPAzDataTableEntity @Table -Entity ([pscustomobject]$Row) -Force | Out-Null + $AddedCount++ + } + + if ($Force) { + $Message = "Successfully performed full reset. Restored $AddedCount default licenses from config file" + } else { + $Message = "Successfully added $AddedCount missing licenses from config file ($SkippedCount already existed)" + } + Write-LogMessage -API $APIName -headers $Headers -message $Message -Sev 'Info' + + return @{ + Success = $true + Message = $Message + AddedCount = $AddedCount + SkippedCount = $SkippedCount + FullReset = [bool]$Force + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to initialize excluded licenses. $($ErrorMessage.NormalizedError)" + Write-LogMessage -API $APIName -headers $Headers -message $Result -Sev 'Error' -LogData $ErrorMessage + throw $Result + } +} diff --git a/Modules/CIPPCore/Public/Tools/Measure-CippTask.ps1 b/Modules/CIPPCore/Public/Tools/Measure-CippTask.ps1 new file mode 100644 index 000000000000..34a73e947351 --- /dev/null +++ b/Modules/CIPPCore/Public/Tools/Measure-CippTask.ps1 @@ -0,0 +1,109 @@ +function Measure-CippTask { + <# + .SYNOPSIS + Measure and track CIPP task execution with Application Insights telemetry + .DESCRIPTION + Wraps task execution in a timer, sends custom event to Application Insights with duration and metadata + .PARAMETER TaskName + The name of the task being executed (e.g., "New-CIPPTemplateRun") + .PARAMETER Script + The scriptblock to execute and measure + .PARAMETER Metadata + Optional hashtable of metadata to include in telemetry (e.g., Command, Tenant, TaskInfo) + .PARAMETER EventName + Optional custom event name (default: "CIPP.TaskCompleted") + .FUNCTIONALITY + Internal + .EXAMPLE + Measure-CippTask -TaskName "ApplyTemplate" -Script { + # Task logic here + } -Metadata @{ + Command = "New-CIPPTemplateRun" + Tenant = "contoso.onmicrosoft.com" + } + .EXAMPLE + Measure-CippTask -TaskName "DisableGuests" -EventName "CIPP.StandardCompleted" -Script { + # Standard logic here + } -Metadata @{ + Standard = "DisableGuests" + Tenant = "contoso.onmicrosoft.com" + } + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TaskName, + + [Parameter(Mandatory = $true)] + [scriptblock]$Script, + + [Parameter(Mandatory = $false)] + [hashtable]$Metadata, + + [Parameter(Mandatory = $false)] + [string]$EventName = 'CIPP.TaskCompleted' + ) + + # Initialize tracking variables + $sw = [System.Diagnostics.Stopwatch]::StartNew() + $result = $null + $errorOccurred = $false + $errorMessage = $null + + try { + # Execute the actual task (use dot-sourcing to preserve parent scope variables) + $result = . $Script + } catch { + $errorOccurred = $true + $errorMessage = $_.Exception.Message + # Re-throw to preserve original error behavior + throw + } finally { + # Stop the timer + $sw.Stop() + $durationMs = [int]$sw.Elapsed.TotalMilliseconds + + # Send telemetry if TelemetryClient is available + if ($global:TelemetryClient) { + try { + # Build properties dictionary for customDimensions + $props = New-Object 'System.Collections.Generic.Dictionary[string,string]' + $props['TaskName'] = $TaskName + $props['Success'] = (-not $errorOccurred).ToString() + $props['RawPropsAsJson'] = ($Metadata | ConvertTo-Json -Compress) + if ($errorOccurred) { + $props['ErrorMessage'] = $errorMessage + } + + # Add all metadata to properties + if ($Metadata) { + foreach ($key in $Metadata.Keys) { + $value = $Metadata[$key] + # Convert value to string, handling nulls + if ($null -ne $value) { + $props[$key] = [string]$value + } else { + $props[$key] = '' + } + } + } + + # Metrics dictionary for customMeasurements + $metrics = New-Object 'System.Collections.Generic.Dictionary[string,double]' + $metrics['DurationMs'] = [double]$durationMs + + # Send custom event to Application Insights + $global:TelemetryClient.TrackEvent($EventName, $props, $metrics) + $global:TelemetryClient.Flush() + + Write-Verbose "Telemetry sent for task '$TaskName' to event '$EventName' (${durationMs}ms)" + } catch { + Write-Warning "Failed to send telemetry for task '${TaskName}': $($_.Exception.Message)" + } + } else { + Write-Verbose "TelemetryClient not initialized, skipping telemetry for task '$TaskName'" + } + } + + return $result +} diff --git a/Modules/CIPPCore/Public/Tools/Send-CippConsoleLog.ps1 b/Modules/CIPPCore/Public/Tools/Send-CippConsoleLog.ps1 new file mode 100644 index 000000000000..1b00294b8409 --- /dev/null +++ b/Modules/CIPPCore/Public/Tools/Send-CippConsoleLog.ps1 @@ -0,0 +1,56 @@ +function Send-CippConsoleLog { + <# + .SYNOPSIS + Send console log message to Application Insights + .DESCRIPTION + Helper function to send console output to Application Insights telemetry + .PARAMETER Message + The message to log + .PARAMETER Level + The log level (Debug, Verbose, Information, Warning, Error) + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Message, + + [Parameter(Mandatory = $true)] + [ValidateSet('Debug', 'Verbose', 'Information', 'Warning', 'Error')] + [string]$Level + ) + + if ($global:TelemetryClient) { + try { + # Map level names to numeric values for comparison + $levelMap = @{ + 'Debug' = 0 + 'Verbose' = 1 + 'Information' = 2 + 'Warning' = 3 + 'Error' = 4 + } + + $currentLevelValue = $levelMap[$Level] + $minLevelValue = $levelMap[$global:CippConsoleLogMinLevel] + + # Check if this level should be logged + if ($null -ne $minLevelValue -and $currentLevelValue -ge $minLevelValue) { + $props = New-Object 'System.Collections.Generic.Dictionary[string,string]' + $props['Message'] = $Message + $props['Level'] = $Level + $props['Timestamp'] = (Get-Date).ToString('o') + + # Add InvocationId if available (from AsyncLocal storage) + if ($script:CippInvocationIdStorage -and $script:CippInvocationIdStorage.Value) { + $props['InvocationId'] = $script:CippInvocationIdStorage.Value + } + + $global:TelemetryClient.TrackEvent('CIPP.ConsoleLog', $props, $null) + } + } catch { + # Silently fail to avoid infinite loops + } + } +} diff --git a/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPGraphWebhookRenewal.ps1 b/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPGraphWebhookRenewal.ps1 index 28e35e5abeda..3bc4693fe6ed 100644 --- a/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPGraphWebhookRenewal.ps1 +++ b/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPGraphWebhookRenewal.ps1 @@ -4,6 +4,8 @@ function Invoke-CippGraphWebhookRenewal { 'expirationDateTime' = "$RenewalDate" } | ConvertTo-Json + $Tenants = Get-Tenants -IncludeErrors + $WebhookTable = Get-CIPPTable -TableName webhookTable try { $WebhookData = Get-AzDataTableEntity @WebhookTable | Where-Object { $null -ne $_.SubscriptionID -and $_.SubscriptionID -ne '' -and ((Get-Date($_.Expiration)) -le ((Get-Date).AddHours(2))) } @@ -16,6 +18,12 @@ function Invoke-CippGraphWebhookRenewal { foreach ($UpdateSub in $WebhookData) { try { $TenantFilter = $UpdateSub.PartitionKey + if ($Tenants.defaultDomainName -notcontains $TenantFilter -and $Tenants.customerId -notcontains $TenantFilter) { + Write-LogMessage -API 'Renew_Graph_Subscriptions' -message "Removing Subscription Renewal for $($UpdateSub.SubscriptionID) as tenant $TenantFilter is not in the tenant list." -Sev 'Warning' -tenant $TenantFilter + Remove-AzDataTableEntity -Force @WebhookTable -Entity $UpdateSub + continue + } + try { $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/subscriptions/$($UpdateSub.SubscriptionID)" -tenantid $TenantFilter -type PATCH -body $body -Verbose $UpdateSub.Expiration = $RenewalDate diff --git a/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPPartnerWebhookProcessing.ps1 b/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPPartnerWebhookProcessing.ps1 index 076f30aeeaa0..528d0bdf0735 100644 --- a/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPPartnerWebhookProcessing.ps1 +++ b/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPPartnerWebhookProcessing.ps1 @@ -9,7 +9,7 @@ function Invoke-CippPartnerWebhookProcessing { $AuditLog = New-GraphGetRequest -uri $Data.AuditUri -tenantid $env:TenantID -NoAuthCheck $true -scope 'https://api.partnercenter.microsoft.com/.default' } - Switch ($Data.EventName) { + switch ($Data.EventName) { 'test-created' { Write-LogMessage -API 'Webhooks' -message 'Partner Center webhook test received' -Sev 'Info' } @@ -62,16 +62,23 @@ function Invoke-CippPartnerWebhookProcessing { # Check for partner webhook onboarding settings $ConfigTable = Get-CIPPTable -TableName Config $WebhookConfig = Get-CIPPAzDataTableEntity @ConfigTable -Filter "RowKey eq 'PartnerWebhookOnboarding'" - if ($WebhookConfig.StandardsExcludeAllTenants -eq $true) { - $OnboardItem.StandardsExcludeAllTenants = $true - } - # Add onboarding entry to the table - $OnboardTable = Get-CIPPTable -TableName 'TenantOnboarding' - Add-CIPPAzDataTableEntity @OnboardTable -Entity $TenantOnboarding -Force -ErrorAction Stop + # Only proceed if automated onboarding is enabled + if ($WebhookConfig.Enabled -eq $true) { + if ($WebhookConfig.StandardsExcludeAllTenants -eq $true) { + $OnboardItem.StandardsExcludeAllTenants = $true + } + + # Add onboarding entry to the table + $OnboardTable = Get-CIPPTable -TableName 'TenantOnboarding' + Add-CIPPAzDataTableEntity @OnboardTable -Entity $TenantOnboarding -Force -ErrorAction Stop - # Start onboarding - Push-ExecOnboardTenantQueue -Item $OnboardItem + # Start onboarding + Push-ExecOnboardTenantQueue -Item $OnboardItem + Write-LogMessage -API 'Webhooks' -message "Automated onboarding started for relationship $Id" -Sev 'Info' + } else { + Write-LogMessage -API 'Webhooks' -message "Automated onboarding is disabled. GDAP relationship $Id approved but not onboarded automatically." -Sev 'Info' + } } else { if ($AuditLog) { Write-LogMessage -API 'Webhooks' -message "Partner Center $($Data.EventName) audit log webhook received" -LogData $AuditObj -Sev 'Alert' diff --git a/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPWebhookProcessing.ps1 b/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPWebhookProcessing.ps1 index 42adae4b24de..0d7f1aa20e1d 100644 --- a/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPWebhookProcessing.ps1 +++ b/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPWebhookProcessing.ps1 @@ -19,42 +19,58 @@ function Invoke-CippWebhookProcessing { } $Tenant = Get-Tenants -IncludeErrors | Where-Object { $_.defaultDomainName -eq $TenantFilter } - Write-Host "Received data. Our Action List is $($data.CIPPAction)" + Write-Host "Received data. Our Action List is $($Data.CIPPAction)" - $ActionList = ($data.CIPPAction | ConvertFrom-Json -ErrorAction SilentlyContinue).value + $ActionList = ($Data.CIPPAction | ConvertFrom-Json -ErrorAction SilentlyContinue).value $ActionResults = foreach ($action in $ActionList) { Write-Host "this is our action: $($action | ConvertTo-Json -Depth 15 -Compress)" switch ($action) { 'disableUser' { - Set-CIPPSignInState -TenantFilter $TenantFilter -User $data.UserId -AccountEnabled $false -APIName 'Alert Engine' -Headers 'Alert Engine' + try { + Set-CIPPSignInState -TenantFilter $TenantFilter -User $Data.UserId -AccountEnabled $false -APIName 'Alert Engine' -Headers 'Alert Engine' + } catch { + Write-Host "Failed to disable user $($Data.UserId)`: $($_.Exception.Message)" + } } 'becremediate' { - $username = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($data.UserId)" -tenantid $TenantFilter).UserPrincipalName - Set-CIPPResetPassword -UserID $username -tenantFilter $TenantFilter -APIName 'Alert Engine' -Headers 'Alert Engine' - Set-CIPPSignInState -userid $username -AccountEnabled $false -tenantFilter $TenantFilter -APIName 'Alert Engine' -Headers 'Alert Engine' - Revoke-CIPPSessions -userid $username -username $username -Headers 'Alert Engine' -APIName 'Alert Engine' -tenantFilter $TenantFilter + $Username = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($Data.UserId)" -tenantid $TenantFilter).UserPrincipalName + try { + Set-CIPPResetPassword -UserID $Username -tenantFilter $TenantFilter -APIName 'Alert Engine' -Headers 'Alert Engine' + } catch { + Write-Host "Failed to reset password for $Username`: $($_.Exception.Message)" + } + try { + Set-CIPPSignInState -userid $Username -AccountEnabled $false -tenantFilter $TenantFilter -APIName 'Alert Engine' -Headers 'Alert Engine' + } catch { + Write-Host "Failed to disable sign-in for $Username`: $($_.Exception.Message)" + } + try { + Revoke-CIPPSessions -userid $Username -username $Username -Headers 'Alert Engine' -APIName 'Alert Engine' -tenantFilter $TenantFilter + } catch { + Write-Host "Failed to revoke sessions for $Username`: $($_.Exception.Message)" + } $RuleDisabled = 0 - New-ExoRequest -anchor $username -tenantid $TenantFilter -cmdlet 'Get-InboxRule' -cmdParams @{Mailbox = $username; IncludeHidden = $true } | Where-Object { $_.Name -ne 'Junk E-Mail Rule' -and $_.Name -notlike 'Microsoft.Exchange.OOF.*' } | ForEach-Object { - $null = New-ExoRequest -anchor $username -tenantid $TenantFilter -cmdlet 'Disable-InboxRule' -cmdParams @{Confirm = $false; Identity = $_.Identity } - "Disabled Inbox Rule $($_.Identity) for $username" + New-ExoRequest -anchor $Username -tenantid $TenantFilter -cmdlet 'Get-InboxRule' -cmdParams @{Mailbox = $Username; IncludeHidden = $true } | Where-Object { $_.Name -ne 'Junk E-Mail Rule' -and $_.Name -notlike 'Microsoft.Exchange.OOF.*' } | ForEach-Object { + $null = New-ExoRequest -anchor $Username -tenantid $TenantFilter -cmdlet 'Disable-InboxRule' -cmdParams @{Confirm = $false; Identity = $_.Identity } + "Disabled Inbox Rule $($_.Identity) for $Username" $RuleDisabled++ } if ($RuleDisabled) { - "Disabled $RuleDisabled Inbox Rules for $username" + "Disabled $RuleDisabled Inbox Rules for $Username" } else { - "No Inbox Rules found for $username. We have not disabled any rules." + "No Inbox Rules found for $Username. We have not disabled any rules." } - "Completed BEC Remediate for $username" - Write-LogMessage -API 'BECRemediate' -tenant $tenantfilter -message "Executed Remediation for $username" -sev 'Info' + "Completed BEC Remediate for $Username" + Write-LogMessage -API 'BECRemediate' -tenant $tenantfilter -message "Executed Remediation for $Username" -sev 'Info' } 'cippcommand' { $CommandSplat = @{} $action.parameters.psobject.properties | ForEach-Object { $CommandSplat.Add($_.name, $_.value) } - if ($CommandSplat['userid']) { $CommandSplat['userid'] = $data.userid } - if ($CommandSplat['tenantfilter']) { $CommandSplat['tenantfilter'] = $tenantfilter } - if ($CommandSplat['tenant']) { $CommandSplat['tenant'] = $tenantfilter } - if ($CommandSplat['user']) { $CommandSplat['user'] = $data.userid } - if ($CommandSplat['username']) { $CommandSplat['username'] = $data.userid } + if ($CommandSplat['userid']) { $CommandSplat['userid'] = $Data.UserId } + if ($CommandSplat['tenantfilter']) { $CommandSplat['tenantfilter'] = $TenantFilter } + if ($CommandSplat['tenant']) { $CommandSplat['tenant'] = $TenantFilter } + if ($CommandSplat['user']) { $CommandSplat['user'] = $Data.UserId } + if ($CommandSplat['username']) { $CommandSplat['username'] = $Data.UserId } & $action.command.value @CommandSplat } } @@ -63,13 +79,13 @@ function Invoke-CippWebhookProcessing { # Save audit log entry to table $LocationInfo = $Data.CIPPLocationInfo | ConvertFrom-Json -ErrorAction SilentlyContinue $AuditRecord = $Data.AuditRecord | ConvertFrom-Json -ErrorAction SilentlyContinue - $GenerateJSON = New-CIPPAlertTemplate -format 'json' -data $Data -ActionResults $ActionResults -CIPPURL $CIPPURL + $GenerateJSON = New-CIPPAlertTemplate -format 'json' -data $Data -ActionResults $ActionResults -CIPPURL $CIPPURL -AlertComment $WebhookRule.AlertComment $JsonContent = @{ Title = $GenerateJSON.Title ActionUrl = $GenerateJSON.ButtonUrl ActionText = $GenerateJSON.ButtonText RawData = $Data - IP = $data.ClientIP + IP = $Data.ClientIP PotentialLocationInfo = $LocationInfo ActionsTaken = $ActionResults AuditRecord = $AuditRecord @@ -86,7 +102,7 @@ function Invoke-CippWebhookProcessing { $LogId = Send-CIPPAlert @CIPPAlert $AuditLogLink = '{0}/tenant/administration/audit-logs/log?logId={1}&tenantFilter={2}' -f $CIPPURL, $LogId, $Tenant.defaultDomainName - $GenerateEmail = New-CIPPAlertTemplate -format 'html' -data $Data -ActionResults $ActionResults -CIPPURL $CIPPURL -Tenant $Tenant.defaultDomainName -AuditLogLink $AuditLogLink + $GenerateEmail = New-CIPPAlertTemplate -format 'html' -data $Data -ActionResults $ActionResults -CIPPURL $CIPPURL -Tenant $Tenant.defaultDomainName -AuditLogLink $AuditLogLink -AlertComment $WebhookRule.AlertComment Write-Host 'Going to create the content' foreach ($action in $ActionList ) { diff --git a/Modules/CIPPCore/Public/Webhooks/Invoke-RemoveWebhookAlert.ps1 b/Modules/CIPPCore/Public/Webhooks/Invoke-RemoveWebhookAlert.ps1 index f4462cb8217a..be8e5cdaa639 100644 --- a/Modules/CIPPCore/Public/Webhooks/Invoke-RemoveWebhookAlert.ps1 +++ b/Modules/CIPPCore/Public/Webhooks/Invoke-RemoveWebhookAlert.ps1 @@ -11,9 +11,6 @@ Function Invoke-RemoveWebhookAlert { param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - try { $WebhookTable = Get-CIPPTable -TableName 'SchedulerConfig' $WebhookRow = Get-CIPPAzDataTableEntity @WebhookTable -Filter "PartitionKey eq 'WebhookAlert'" | Where-Object -Property Tenant -EQ $Request.query.TenantFilter @@ -53,9 +50,8 @@ Function Invoke-RemoveWebhookAlert { $body = [pscustomobject]@{'Results' = "Failed to remove webhook alert: $($_.Exception.Message)" } } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return [HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $body - }) + } } diff --git a/Modules/CIPPCore/Public/Webhooks/Test-CIPPAuditLogRules.ps1 b/Modules/CIPPCore/Public/Webhooks/Test-CIPPAuditLogRules.ps1 index 6824b08058ea..cbd8229cf7fe 100644 --- a/Modules/CIPPCore/Public/Webhooks/Test-CIPPAuditLogRules.ps1 +++ b/Modules/CIPPCore/Public/Webhooks/Test-CIPPAuditLogRules.ps1 @@ -7,287 +7,492 @@ function Test-CIPPAuditLogRules { $Rows ) - $FunctionStartTime = Get-Date - - $Results = [PSCustomObject]@{ - TotalLogs = 0 - MatchedLogs = 0 - MatchedRules = @() - DataToProcess = @() - } + try { + # Helper function to map GUIDs and partner UPNs to user objects + function Add-CIPPGuidMappings { + param( + [Parameter(Mandatory = $true)] + $DataObject, + [Parameter(Mandatory = $true)] + $Users, + [Parameter(Mandatory = $true)] + $Groups, + [Parameter(Mandatory = $true)] + $Devices, + [Parameter(Mandatory = $true)] + $ServicePrincipals, + [Parameter(Mandatory = $true)] + $PartnerUsers, + [Parameter(Mandatory = $false)] + [string]$PropertyPrefix = '' + ) - # Get the CacheWebhooks table for removing processed rows - $CacheWebhooksTable = Get-CippTable -TableName 'CacheWebhooks' + $DataObject.PSObject.Properties | ForEach-Object { + # Check for standard GUID format OR partner UPN formats + if ($_.Value -match '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$' -or + $_.Value -match 'user_[0-9a-f]{32}@[^@]+\.onmicrosoft\.com' -or + $_.Value -match '[^\\]+\.onmicrosoft\.com\\tenant:\s*[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12},\s*object:\s*[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}') { - $ExtendedPropertiesIgnoreList = @( - 'OAuth2:Authorize' - 'OAuth2:Token' - 'SAS:EndAuth' - 'SAS:ProcessAuth' - 'deviceAuth:ReprocessTls' - 'Consent:Set' - ) + # Use regex from guid-resolver hook to match various partner user formats + # Format 1: user_@.onmicrosoft.com + if ($_.Value -match 'user_([0-9a-f]{32})@([^@]+\.onmicrosoft\.com)') { + $hexId = $matches[1] + $tenantDomain = $matches[2] + if ($hexId.Length -eq 32) { + # Convert the 32-character hex string to GUID format + $guid = "$($hexId.Substring(0,8))-$($hexId.Substring(8,4))-$($hexId.Substring(12,4))-$($hexId.Substring(16,4))-$($hexId.Substring(20,12))" + Write-Information "Found partner UPN format: $($_.Value) with GUID: $guid and tenant: $tenantDomain" - $TrustedIPTable = Get-CIPPTable -TableName 'trustedIps' - $ConfigTable = Get-CIPPTable -TableName 'WebhookRules' - $ConfigEntries = Get-CIPPAzDataTableEntity @ConfigTable - $Configuration = $ConfigEntries | Where-Object { ($_.Tenants -match $TenantFilter -or $_.Tenants -match 'AllTenants') } | ForEach-Object { - [pscustomobject]@{ - Tenants = ($_.Tenants | ConvertFrom-Json) - Excluded = ($_.excludedTenants | ConvertFrom-Json -ErrorAction SilentlyContinue) - Conditions = $_.Conditions - Actions = $_.Actions - LogType = $_.Type - } - } + # Check partner users for this GUID + foreach ($PartnerUser in $PartnerUsers) { + if ($PartnerUser.id -eq $guid) { + $DataObject | Add-Member -NotePropertyName "$PropertyPrefix$($_.Name)" -NotePropertyValue $PartnerUser.userPrincipalName -Force -ErrorAction SilentlyContinue + Write-Information "Mapped Partner User UPN: $($PartnerUser.userPrincipalName) to $PropertyPrefix$($_.Name)" + return + } + } + } + } - Write-Warning '## Audit Log Configuration ##' - Write-Information ($Configuration | ConvertTo-Json -Depth 10) + # Format 2: TenantName.onmicrosoft.com\tenant: , object: + if ($_.Value -match '([^\\]+\.onmicrosoft\.com)\\tenant:\s*([0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}),\s*object:\s*([0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12})') { + $customerTenantDomain = $matches[1] + $partnerTenantGuid = $matches[2] + $objectGuid = $matches[3] + Write-Information "Found partner exchange format: customer tenant $customerTenantDomain, partner tenant $partnerTenantGuid, object $objectGuid" - try { - $LogCount = $Rows.count - $RunGuid = (New-Guid).Guid - Write-Warning "Logs to process: $LogCount - RunGuid: $($RunGuid) - $($TenantFilter)" - $Results.TotalLogs = $LogCount - Write-Information "RunGuid: $RunGuid - Collecting logs" - $SearchResults = $Rows - } catch { - Write-Warning "Error getting audit logs: $($_.Exception.Message)" - Write-LogMessage -API 'Webhooks' -message 'Error Processing Audit logs' -LogData (Get-CippException -Exception $_) -sev Error -tenant $TenantFilter - throw $_ - } + # Check partner users for this object GUID + foreach ($PartnerUser in $PartnerUsers) { + if ($PartnerUser.id -eq $objectGuid) { + $DataObject | Add-Member -NotePropertyName "$PropertyPrefix$($_.Name)" -NotePropertyValue $PartnerUser.userPrincipalName -Force -ErrorAction SilentlyContinue + Write-Information "Mapped Partner User UPN: $($PartnerUser.userPrincipalName) to $PropertyPrefix$($_.Name)" + return + } + } + } - if ($LogCount -gt 0) { - $LocationTable = Get-CIPPTable -TableName 'knownlocationdbv2' - $ProcessedData = foreach ($AuditRecord in $SearchResults) { - $RecordStartTime = Get-Date - Write-Host "Processing RowKey $($AuditRecord.id)" - $RootProperties = $AuditRecord | Select-Object * -ExcludeProperty auditData - $Data = $AuditRecord.auditData | Select-Object *, CIPPAction, CIPPClause, CIPPGeoLocation, CIPPBadRepIP, CIPPHostedIP, CIPPIPDetected, CIPPLocationInfo, CIPPExtendedProperties, CIPPDeviceProperties, CIPPParameters, CIPPModifiedProperties, AuditRecord -ErrorAction SilentlyContinue - try { - if ($Data.ExtendedProperties) { - $Data.CIPPExtendedProperties = ($Data.ExtendedProperties | ConvertTo-Json -Compress) - $Data.ExtendedProperties | ForEach-Object { - if ($_.Value -in $ExtendedPropertiesIgnoreList) { - #write-warning "No need to process this operation as its in our ignore list. Some extended information: $($data.operation):$($_.Value) - $($TenantFilter)" - continue + # Check standard directory objects (users, groups, devices, service principals) + foreach ($User in $Users) { + if ($User.id -eq $_.Value) { + $DataObject | Add-Member -NotePropertyName "$PropertyPrefix$($_.Name)" -NotePropertyValue $User.userPrincipalName -Force -ErrorAction SilentlyContinue + Write-Information "Mapped User: $($User.userPrincipalName) to $PropertyPrefix$($_.Name)" + return + } + } + foreach ($Group in $Groups) { + if ($Group.id -eq $_.Value) { + $DataObject | Add-Member -NotePropertyName "$PropertyPrefix$($_.Name)" -NotePropertyValue $Group -Force -ErrorAction SilentlyContinue + Write-Information "Mapped Group: $($Group.displayName) to $PropertyPrefix$($_.Name)" + return + } + } + foreach ($Device in $Devices) { + if ($Device.id -eq $_.Value) { + $DataObject | Add-Member -NotePropertyName "$PropertyPrefix$($_.Name)" -NotePropertyValue $Device -Force -ErrorAction SilentlyContinue + Write-Information "Mapped Device: $($Device.displayName) to $PropertyPrefix$($_.Name)" + return } - $Data | Add-Member -NotePropertyName $_.Name -NotePropertyValue $_.Value -Force -ErrorAction SilentlyContinue } + foreach ($ServicePrincipal in $ServicePrincipals) { + if ($ServicePrincipal.id -eq $_.Value -or $ServicePrincipal.appId -eq $_.Value) { + $DataObject | Add-Member -NotePropertyName "$PropertyPrefix$($_.Name)" -NotePropertyValue $ServicePrincipal -Force -ErrorAction SilentlyContinue + Write-Information "Mapped Service Principal: $($ServicePrincipal.displayName) to $PropertyPrefix$($_.Name)" + return + } + } + } + } + } + + #$FunctionStartTime = Get-Date + + $Results = [PSCustomObject]@{ + TotalLogs = 0 + MatchedLogs = 0 + MatchedRules = @() + DataToProcess = @() + } + + # Get the CacheWebhooks table for removing processed rows + $CacheWebhooksTable = Get-CippTable -TableName 'CacheWebhooks' + + $ExtendedPropertiesIgnoreList = @( + 'SAS:EndAuth' + 'SAS:ProcessAuth' + 'deviceAuth:ReprocessTls' + 'Consent:Set' + ) + + $TrustedIPTable = Get-CIPPTable -TableName 'trustedIps' + $ConfigTable = Get-CIPPTable -TableName 'WebhookRules' + $ConfigEntries = Get-CIPPAzDataTableEntity @ConfigTable + $Configuration = foreach ($ConfigEntry in $ConfigEntries) { + if ([string]::IsNullOrEmpty($ConfigEntry.Tenants)) { + continue + } + $Tenants = $ConfigEntry.Tenants | ConvertFrom-Json -ErrorAction SilentlyContinue + if ($null -eq $Tenants) { + continue + } + # Expand tenant groups to get actual tenant list + $ExpandedTenants = Expand-CIPPTenantGroups -TenantFilter $Tenants + # Check if the TenantFilter matches any tenant in the expanded list or AllTenants + if ($ExpandedTenants.value -contains $TenantFilter -or $ExpandedTenants.value -contains 'AllTenants') { + [pscustomobject]@{ + Tenants = $Tenants + Excluded = ($ConfigEntry.excludedTenants | ConvertFrom-Json -ErrorAction SilentlyContinue) + Conditions = $ConfigEntry.Conditions + Actions = $ConfigEntry.Actions + LogType = $ConfigEntry.Type } - if ($Data.DeviceProperties) { - $Data.CIPPDeviceProperties = ($Data.DeviceProperties | ConvertTo-Json -Compress) - $Data.DeviceProperties | ForEach-Object { $Data | Add-Member -NotePropertyName $_.Name -NotePropertyValue $_.Value -Force -ErrorAction SilentlyContinue } + } + } + + $Table = Get-CIPPTable -tablename 'cacheauditloglookups' + $1dayago = (Get-Date).AddDays(-1).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + $Lookups = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$TenantFilter' and Timestamp gt datetime'$1dayago'" + if (!$Lookups) { + # Collect bulk data for users/groups/devices/applications + $Requests = @( + @{ + id = 'users' + url = '/users?$select=id,displayName,userPrincipalName,accountEnabled&$top=999' + method = 'GET' } - if ($Data.parameters) { - $Data.CIPPParameters = ($Data.parameters | ConvertTo-Json -Compress) - $Data.parameters | ForEach-Object { $Data | Add-Member -NotePropertyName $_.Name -NotePropertyValue $_.Value -Force -ErrorAction SilentlyContinue } + @{ + id = 'groups' + url = '/groups?$select=id,displayName,mailEnabled,securityEnabled&$top=999' + method = 'GET' } - if ($Data.ModifiedProperties) { - $Data.CIPPModifiedProperties = ($Data.ModifiedProperties | ConvertTo-Json -Compress) - try { - $Data.ModifiedProperties | ForEach-Object { $Data | Add-Member -NotePropertyName "$($_.Name)" -NotePropertyValue "$($_.NewValue)" -Force -ErrorAction SilentlyContinue } - } catch { - ##write-warning ($Data.ModifiedProperties | ConvertTo-Json -Depth 10) - } - try { - $Data.ModifiedProperties | ForEach-Object { $Data | Add-Member -NotePropertyName $("Previous_Value_$($_.Name)") -NotePropertyValue "$($_.OldValue)" -Force -ErrorAction SilentlyContinue } - } catch { - ##write-warning ($Data.ModifiedProperties | ConvertTo-Json -Depth 10) - } + @{ + id = 'devices' + url = '/devices?$select=id,displayName,deviceId&$top=999' + method = 'GET' + } + @{ + id = 'servicePrincipals' + url = '/servicePrincipals?$select=id,displayName&$top=999' + method = 'GET' } + ) + $Response = New-GraphBulkRequest -TenantId $TenantFilter -Requests $Requests + $Users = ($Response | Where-Object { $_.id -eq 'users' }).body.value ?? @() + $Groups = ($Response | Where-Object { $_.id -eq 'groups' }).body.value ?? @() + $Devices = ($Response | Where-Object { $_.id -eq 'devices' }).body.value ?? @() + $ServicePrincipals = ($Response | Where-Object { $_.id -eq 'servicePrincipals' }).body.value ?? @() + # Cache the lookups for 1 day + $Entities = @( + @{ + PartitionKey = $TenantFilter + RowKey = 'users' + Data = [string]($Users | ConvertTo-Json -Compress) + } + @{ + PartitionKey = $TenantFilter + RowKey = 'groups' + Data = [string]($Groups | ConvertTo-Json -Compress) + } + @{ + PartitionKey = $TenantFilter + RowKey = 'devices' + Data = [string]($Devices | ConvertTo-Json -Compress) + } + @{ + PartitionKey = $TenantFilter + RowKey = 'servicePrincipals' + Data = [string]($ServicePrincipals | ConvertTo-Json -Compress) + } + ) + # Save the cached lookups + Add-CIPPAzDataTableEntity @Table -Entity $Entities -Force + Write-Information "Cached directory lookups for tenant $TenantFilter" + } else { + # Use cached lookups + $Users = (($Lookups | Where-Object { $_.RowKey -eq 'users' }).Data | ConvertFrom-Json -ErrorAction SilentlyContinue) ?? @() + $Groups = (($Lookups | Where-Object { $_.RowKey -eq 'groups' }).Data | ConvertFrom-Json -ErrorAction SilentlyContinue) ?? @() + $Devices = (($Lookups | Where-Object { $_.RowKey -eq 'devices' }).Data | ConvertFrom-Json -ErrorAction SilentlyContinue) ?? @() + $ServicePrincipals = (($Lookups | Where-Object { $_.RowKey -eq 'servicePrincipals' }).Data | ConvertFrom-Json -ErrorAction SilentlyContinue) ?? @() + Write-Information "Using cached directory lookups for tenant $TenantFilter" + } + # partner users + $PartnerUsers = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$select=id,displayName,userPrincipalName,accountEnabled&`$top=999" -AsApp $true -NoAuthCheck $true - $HasLocationData = $false - if (![string]::IsNullOrEmpty($Data.clientip) -and $Data.clientip -notmatch '[X]+') { - # Ignore IP addresses that have been redacted + Write-Warning '## Audit Log Configuration ##' + Write-Information ($Configuration | ConvertTo-Json -Depth 10) - $IPRegex = '^(?(?:\d{1,3}(?:\.\d{1,3}){3}|\[[0-9a-fA-F:]+\]|[0-9a-fA-F:]+))(?::\d+)?$' - $Data.clientip = $Data.clientip -replace $IPRegex, '$1' -replace '[\[\]]', '' + try { + $LogCount = $Rows.count + $RunGuid = (New-Guid).Guid + Write-Warning "Logs to process: $LogCount - RunGuid: $($RunGuid) - $($TenantFilter)" + $Results.TotalLogs = $LogCount + Write-Information "RunGuid: $RunGuid - Collecting logs" + $SearchResults = $Rows + } catch { + Write-Warning "Error getting audit logs: $($_.Exception.Message)" + Write-LogMessage -API 'Webhooks' -message 'Error Processing Audit logs' -LogData (Get-CippException -Exception $_) -sev Error -tenant $TenantFilter + throw $_ + } - # Check if IP is on trusted IP list - $TrustedIP = Get-CIPPAzDataTableEntity @TrustedIPTable -Filter "((PartitionKey eq '$TenantFilter') or (PartitionKey eq 'AllTenants')) and RowKey eq '$($Data.clientip)' and state eq 'Trusted'" - if ($TrustedIP) { - #write-warning "IP $($Data.clientip) is trusted" - $Trusted = $true - } - if (!$Trusted) { - $CacheLookupStartTime = Get-Date - $Location = Get-AzDataTableEntity @LocationTable -Filter "PartitionKey eq 'ip' and RowKey eq '$($Data.clientIp)'" | Select-Object -ExcludeProperty Tenant - $CacheLookupEndTime = Get-Date - $CacheLookupSeconds = ($CacheLookupEndTime - $CacheLookupStartTime).TotalSeconds - Write-Warning "Cache lookup for IP $($Data.clientip) took $CacheLookupSeconds seconds" - - if ($Location) { - $Country = $Location.CountryOrRegion - $City = $Location.City - $Proxy = $Location.Proxy - $hosting = $Location.Hosting - $ASName = $Location.ASName - } else { - try { - $IPLookupStartTime = Get-Date - $Location = Get-CIPPGeoIPLocation -IP $Data.clientip - $IPLookupEndTime = Get-Date - $IPLookupSeconds = ($IPLookupEndTime - $IPLookupStartTime).TotalSeconds - Write-Warning "IP lookup for $($Data.clientip) took $IPLookupSeconds seconds" - } catch { - #write-warning "Unable to get IP location for $($Data.clientip): $($_.Exception.Message)" - } - $Country = if ($Location.countryCode) { $Location.countryCode } else { 'Unknown' } - $City = if ($Location.city) { $Location.city } else { 'Unknown' } - $Proxy = if ($Location.proxy -ne $null) { $Location.proxy } else { 'Unknown' } - $hosting = if ($Location.hosting -ne $null) { $Location.hosting } else { 'Unknown' } - $ASName = if ($Location.asname) { $Location.asname } else { 'Unknown' } - $IP = $Data.ClientIP - $LocationInfo = @{ - RowKey = [string]$Data.clientip - PartitionKey = 'ip' - Tenant = [string]$TenantFilter - CountryOrRegion = "$Country" - City = "$City" - Proxy = "$Proxy" - Hosting = "$hosting" - ASName = "$ASName" + $AuditLogUserExclusions = Get-CIPPTable -TableName 'AuditLogUserExclusions' + $ExcludedUsers = Get-CIPPAzDataTableEntity @AuditLogUserExclusions -Filter "PartitionKey eq '$TenantFilter'" + + if ($LogCount -gt 0) { + $LocationTable = Get-CIPPTable -TableName 'knownlocationdbv2' + $ProcessedData = foreach ($AuditRecord in $SearchResults) { + $RecordStartTime = Get-Date + Write-Information "Processing RowKey $($AuditRecord.id) - $($TenantFilter)." + $RootProperties = $AuditRecord + $Data = $AuditRecord.auditData | Select-Object *, CIPPAction, CIPPClause, CIPPGeoLocation, CIPPBadRepIP, CIPPHostedIP, CIPPIPDetected, CIPPLocationInfo, CIPPExtendedProperties, CIPPDeviceProperties, CIPPParameters, CIPPModifiedProperties, AuditRecord -ErrorAction SilentlyContinue + try { + # Attempt to locate GUIDs in $Data and match them with their corresponding user, group, device, or service principal recursively by checking each key/value once located lets store these mapped values in a CIPP$KeyName property + Write-Information 'Checking Data for GUIDs to map to users, groups, devices, or service principals' + Add-CIPPGuidMappings -DataObject $Data -Users $Users -Groups $Groups -Devices $Devices -ServicePrincipals $ServicePrincipals -PartnerUsers $PartnerUsers -PropertyPrefix 'CIPP' + + # Also check root properties for GUIDs and partner UPNs + Write-Information 'Checking RootProperties for GUIDs to map to users, groups, devices, or service principals' + Add-CIPPGuidMappings -DataObject $RootProperties -Users $Users -Groups $Groups -Devices $Devices -ServicePrincipals $ServicePrincipals -PartnerUsers $PartnerUsers + + if ($Data.ExtendedProperties) { + $Data.CIPPExtendedProperties = ($Data.ExtendedProperties | ConvertTo-Json -Compress) + $Data.ExtendedProperties | ForEach-Object { + if ($_.Value -in $ExtendedPropertiesIgnoreList) { + #write-warning "No need to process this operation as its in our ignore list. Some extended information: $($data.operation):$($_.Value) - $($TenantFilter)" + continue } + $Data | Add-Member -NotePropertyName $_.Name -NotePropertyValue $_.Value -Force -ErrorAction SilentlyContinue + } + } + if ($Data.DeviceProperties) { + $Data.CIPPDeviceProperties = ($Data.DeviceProperties | ConvertTo-Json -Compress) + $Data.DeviceProperties | ForEach-Object { $Data | Add-Member -NotePropertyName $_.Name -NotePropertyValue $_.Value -Force -ErrorAction SilentlyContinue } + } + if ($Data.parameters) { + $Data.CIPPParameters = ($Data.parameters | ConvertTo-Json -Compress) + $Data.parameters | ForEach-Object { $Data | Add-Member -NotePropertyName $_.Name -NotePropertyValue $_.Value -Force -ErrorAction SilentlyContinue } + } + if ($Data.ModifiedProperties) { + $Data.CIPPModifiedProperties = ($Data.ModifiedProperties | ConvertTo-Json -Compress) + try { + $Data.ModifiedProperties | ForEach-Object { $Data | Add-Member -NotePropertyName "$($_.Name)" -NotePropertyValue "$($_.NewValue)" -Force -ErrorAction SilentlyContinue } + } catch { + ##write-warning ($Data.ModifiedProperties | ConvertTo-Json -Depth 10) + } + try { + $Data.ModifiedProperties | ForEach-Object { $Data | Add-Member -NotePropertyName $("Previous_Value_$($_.Name)") -NotePropertyValue "$($_.OldValue)" -Force -ErrorAction SilentlyContinue } + } catch { + ##write-warning ($Data.ModifiedProperties | ConvertTo-Json -Depth 10) + } + } + + + $HasLocationData = $false + if (![string]::IsNullOrEmpty($Data.clientip) -and $Data.clientip -notmatch '[X]+') { + # Ignore IP addresses that have been redacted + + $IPRegex = '^(?(?:\d{1,3}(?:\.\d{1,3}){3}|\[[0-9a-fA-F:]+\]|[0-9a-fA-F:]+))(?::\d+)?$' + $Data.clientip = $Data.clientip -replace $IPRegex, '$1' -replace '[\[\]]', '' + + # Check if IP is on trusted IP list + $TrustedIP = Get-CIPPAzDataTableEntity @TrustedIPTable -Filter "((PartitionKey eq '$TenantFilter') or (PartitionKey eq 'AllTenants')) and RowKey eq '$($Data.clientip)' and state eq 'Trusted'" + if ($TrustedIP) { + #write-warning "IP $($Data.clientip) is trusted" + $Trusted = $true + } + if (!$Trusted) { + $CacheLookupStartTime = Get-Date + $Location = Get-AzDataTableEntity @LocationTable -Filter "PartitionKey eq 'ip' and RowKey eq '$($Data.clientIp)'" | Select-Object -ExcludeProperty Tenant + $CacheLookupEndTime = Get-Date + $CacheLookupSeconds = ($CacheLookupEndTime - $CacheLookupStartTime).TotalSeconds + Write-Warning "Cache lookup for IP $($Data.clientip) took $CacheLookupSeconds seconds" - try { - $null = Add-CIPPAzDataTableEntity @LocationTable -Entity $LocationInfo -Force - } catch { - #write-warning "Failed to add location info for $($Data.clientip) to cache: $($_.Exception.Message)" + if ($Location) { + $Country = $Location.CountryOrRegion + $City = $Location.City + $Proxy = $Location.Proxy + $hosting = $Location.Hosting + $ASName = $Location.ASName + } else { + try { + $IPLookupStartTime = Get-Date + $Location = Get-CIPPGeoIPLocation -IP $Data.clientip + $IPLookupEndTime = Get-Date + $IPLookupSeconds = ($IPLookupEndTime - $IPLookupStartTime).TotalSeconds + Write-Warning "IP lookup for $($Data.clientip) took $IPLookupSeconds seconds" + } catch { + #write-warning "Unable to get IP location for $($Data.clientip): $($_.Exception.Message)" + } + $Country = if ($Location.countryCode) { $Location.countryCode } else { 'Unknown' } + $City = if ($Location.city) { $Location.city } else { 'Unknown' } + $Proxy = if ($Location.proxy -ne $null) { $Location.proxy } else { 'Unknown' } + $hosting = if ($Location.hosting -ne $null) { $Location.hosting } else { 'Unknown' } + $ASName = if ($Location.asname) { $Location.asname } else { 'Unknown' } + $IP = $Data.ClientIP + $LocationInfo = @{ + RowKey = [string]$Data.clientip + PartitionKey = 'ip' + Tenant = [string]$TenantFilter + CountryOrRegion = "$Country" + City = "$City" + Proxy = "$Proxy" + Hosting = "$hosting" + ASName = "$ASName" + } + try { + $null = Add-CIPPAzDataTableEntity @LocationTable -Entity $LocationInfo -Force + } catch { + #write-warning "Failed to add location info for $($Data.clientip) to cache: $($_.Exception.Message)" + + } } + $Data.CIPPGeoLocation = $Country + $Data.CIPPBadRepIP = $Proxy + $Data.CIPPHostedIP = $hosting + $Data.CIPPIPDetected = $IP + $Data.CIPPLocationInfo = ($Location | ConvertTo-Json -Compress) + $HasLocationData = $true } - $Data.CIPPGeoLocation = $Country - $Data.CIPPBadRepIP = $Proxy - $Data.CIPPHostedIP = $hosting - $Data.CIPPIPDetected = $IP - $Data.CIPPLocationInfo = ($Location | ConvertTo-Json -Compress) - $HasLocationData = $true } + $Data.AuditRecord = [string]($RootProperties | ConvertTo-Json -Compress) + $Data | Select-Object *, + @{n = 'HasLocationData'; exp = { $HasLocationData } } -ExcludeProperty ExtendedProperties, DeviceProperties, parameters + } catch { + #write-warning "Audit log: Error processing data: $($_.Exception.Message)`r`n$($_.InvocationInfo.PositionMessage)" + Write-LogMessage -API 'Webhooks' -message 'Error Processing Audit Log Data' -LogData (Get-CippException -Exception $_) -sev Error -tenant $TenantFilter } - $Data.AuditRecord = [string]($RootProperties | ConvertTo-Json -Compress) - $Data | Select-Object *, - @{n = 'HasLocationData'; exp = { $HasLocationData } } -ExcludeProperty ExtendedProperties, DeviceProperties, parameters - } catch { - #write-warning "Audit log: Error processing data: $($_.Exception.Message)`r`n$($_.InvocationInfo.PositionMessage)" - Write-LogMessage -API 'Webhooks' -message 'Error Processing Audit Log Data' -LogData (Get-CippException -Exception $_) -sev Error -tenant $TenantFilter - } - $RecordEndTime = Get-Date - $RecordSeconds = ($RecordEndTime - $RecordStartTime).TotalSeconds - Write-Warning "Task took $RecordSeconds seconds for RowKey $($AuditRecord.id)" - Write-Host "Removing row $($AuditRecord.id) from cache" - try { - Write-Information 'Removing processed rows from cache' - $RowEntity = Get-CIPPAzDataTableEntity @CacheWebhooksTable -Filter "PartitionKey eq '$TenantFilter' and RowKey eq '$($AuditRecord.id)'" - Remove-AzDataTableEntity @CacheWebhooksTable -Entity $RowEntity -Force - Write-Information "Removed row $($AuditRecord.id) from cache" - } catch { - Write-Information "Error removing rows from cache: $($_.Exception.Message)" - } - } - #write-warning "Processed Data: $(($ProcessedData | Measure-Object).Count) - This should be higher than 0 in many cases, because the where object has not run yet." - #write-warning "Creating filters - $(($ProcessedData.operation | Sort-Object -Unique) -join ',') - $($TenantFilter)" - try { - $Where = foreach ($Config in $Configuration) { - if ($TenantFilter -in $Config.Excluded.value) { - continue + Write-Information "Removing row $($AuditRecord.id) from cache" + try { + Write-Information 'Removing processed rows from cache' + $RowEntity = Get-CIPPAzDataTableEntity @CacheWebhooksTable -Filter "PartitionKey eq '$TenantFilter' and RowKey eq '$($AuditRecord.id)'" + Remove-AzDataTableEntity @CacheWebhooksTable -Entity $RowEntity -Force + Write-Information "Removed row $($AuditRecord.id) from cache" + } catch { + Write-Information "Error removing rows from cache: $($_.Exception.Message)" + } finally { + $RecordEndTime = Get-Date + $RecordSeconds = ($RecordEndTime - $RecordStartTime).TotalSeconds + Write-Warning "Task took $RecordSeconds seconds for RowKey $($AuditRecord.id)" } - $conditions = $Config.Conditions | ConvertFrom-Json | Where-Object { $Config.Input.value -ne '' } - $actions = $Config.Actions - $conditionStrings = [System.Collections.Generic.List[string]]::new() - $CIPPClause = [System.Collections.Generic.List[string]]::new() - $AddedLocationCondition = $false - foreach ($condition in $conditions) { - if ($condition.Property.label -eq 'CIPPGeoLocation' -and !$AddedLocationCondition) { - $conditionStrings.Add("`$_.HasLocationData -eq `$true") - $CIPPClause.Add('HasLocationData is true') - $AddedLocationCondition = $true + } + #write-warning "Processed Data: $(($ProcessedData | Measure-Object).Count) - This should be higher than 0 in many cases, because the where object has not run yet." + #write-warning "Creating filters - $(($ProcessedData.operation | Sort-Object -Unique) -join ',') - $($TenantFilter)" + + try { + $Where = foreach ($Config in $Configuration) { + if ($TenantFilter -in $Config.Excluded.value) { + continue } - $value = if ($condition.Input.value -is [array]) { - $arrayAsString = $condition.Input.value | ForEach-Object { - "'$_'" + $conditions = $Config.Conditions | ConvertFrom-Json | Where-Object { $Config.Input.value -ne '' } + $actions = $Config.Actions + $conditionStrings = [System.Collections.Generic.List[string]]::new() + $CIPPClause = [System.Collections.Generic.List[string]]::new() + $AddedLocationCondition = $false + foreach ($condition in $conditions) { + if ($condition.Property.label -eq 'CIPPGeoLocation' -and !$AddedLocationCondition) { + $conditionStrings.Add("`$_.HasLocationData -eq `$true") + $CIPPClause.Add('HasLocationData is true') + $ExcludedUsers = $ExcludedUsers | Where-Object { $_.Type -eq 'Location' } + # Build single -notin condition against all excluded user keys + $ExcludedUserKeys = @($ExcludedUsers.RowKey) + if ($ExcludedUserKeys.Count -gt 0) { + $conditionStrings.Add("`$(`$_.CIPPUserKey) -notin @('$($ExcludedUserKeys -join "', '")')") + $CIPPClause.Add("CIPPUserKey not in [$($ExcludedUserKeys -join ', ')]") + } + $AddedLocationCondition = $true } - "@($($arrayAsString -join ', '))" - } else { "'$($condition.Input.value)'" } + $value = if ($condition.Input.value -is [array]) { + $arrayAsString = $condition.Input.value | ForEach-Object { + "'$_'" + } + "@($($arrayAsString -join ', '))" + } else { "'$($condition.Input.value)'" } - $conditionStrings.Add("`$(`$_.$($condition.Property.label)) -$($condition.Operator.value) $value") - $CIPPClause.Add("$($condition.Property.label) is $($condition.Operator.label) $value") - } - $finalCondition = $conditionStrings -join ' -AND ' + $conditionStrings.Add("`$(`$_.$($condition.Property.label)) -$($condition.Operator.value) $value") + $CIPPClause.Add("$($condition.Property.label) is $($condition.Operator.label) $value") + } + $finalCondition = $conditionStrings -join ' -AND ' - [PSCustomObject]@{ - clause = $finalCondition - expectedAction = $actions - CIPPClause = $CIPPClause + [PSCustomObject]@{ + clause = $finalCondition + expectedAction = $actions + CIPPClause = $CIPPClause + } } + } catch { + Write-Warning "Error creating where clause: $($_.Exception.Message)" + Write-Information $_.InvocationInfo.PositionMessage + #Write-LogMessage -API 'Webhooks' -message 'Error creating where clause' -LogData (Get-CippException -Exception $_) -sev Error -tenant $TenantFilter + throw $_ } - } catch { - Write-Warning "Error creating where clause: $($_.Exception.Message)" - Write-Information $_.InvocationInfo.PositionMessage - #Write-LogMessage -API 'Webhooks' -message 'Error creating where clause' -LogData (Get-CippException -Exception $_) -sev Error -tenant $TenantFilter - throw $_ - } - $MatchedRules = [System.Collections.Generic.List[string]]::new() - $DataToProcess = foreach ($clause in $Where) { - $ClauseStartTime = Get-Date - Write-Warning "Webhook: Processing clause: $($clause.clause)" - $ReturnedData = $ProcessedData | Where-Object { Invoke-Expression $clause.clause } - if ($ReturnedData) { - Write-Warning "Webhook: There is matching data: $(($ReturnedData.operation | Select-Object -Unique) -join ', ')" - $ReturnedData = foreach ($item in $ReturnedData) { - $item.CIPPAction = $clause.expectedAction - $item.CIPPClause = $clause.CIPPClause -join ' and ' - $MatchedRules.Add($clause.CIPPClause -join ' and ') - $item + $MatchedRules = [System.Collections.Generic.List[string]]::new() + $DataToProcess = foreach ($clause in $Where) { + try { + $ClauseStartTime = Get-Date + Write-Warning "Webhook: Processing clause: $($clause.clause)" + $ReturnedData = $ProcessedData | Where-Object { Invoke-Expression $clause.clause } + if ($ReturnedData) { + Write-Warning "Webhook: There is matching data: $(($ReturnedData.operation | Select-Object -Unique) -join ', ')" + $ReturnedData = foreach ($item in $ReturnedData) { + $item.CIPPAction = $clause.expectedAction + $item.CIPPClause = $clause.CIPPClause -join ' and ' + $MatchedRules.Add($clause.CIPPClause -join ' and ') + $item + } + } + $ClauseEndTime = Get-Date + $ClauseSeconds = ($ClauseEndTime - $ClauseStartTime).TotalSeconds + Write-Warning "Task took $ClauseSeconds seconds for clause: $($clause.clause)" + $ReturnedData + } catch { + Write-Warning "Error processing clause: $($clause.clause): $($_.Exception.Message)" } } - $ClauseEndTime = Get-Date - $ClauseSeconds = ($ClauseEndTime - $ClauseStartTime).TotalSeconds - Write-Warning "Task took $ClauseSeconds seconds for clause: $($clause.clause)" - $ReturnedData + $Results.MatchedRules = @($MatchedRules | Select-Object -Unique) + $Results.MatchedLogs = ($DataToProcess | Measure-Object).Count + $Results.DataToProcess = $DataToProcess } - $Results.MatchedRules = @($MatchedRules | Select-Object -Unique) - $Results.MatchedLogs = ($DataToProcess | Measure-Object).Count - $Results.DataToProcess = $DataToProcess - } - if ($DataToProcess) { - $CippConfigTable = Get-CippTable -tablename Config - $CippConfig = Get-CIPPAzDataTableEntity @CippConfigTable -Filter "PartitionKey eq 'InstanceProperties' and RowKey eq 'CIPPURL'" - $CIPPURL = 'https://{0}' -f $CippConfig.Value - foreach ($AuditLog in $DataToProcess) { - Write-Information "Processing $($AuditLog.operation)" - $Webhook = @{ - Data = $AuditLog - CIPPURL = [string]$CIPPURL - TenantFilter = $TenantFilter - } - try { - Invoke-CippWebhookProcessing @Webhook - } catch { - Write-Warning "Error sending final step of auditlog processing: $($_.Exception.Message)" - Write-Information $_.InvocationInfo.PositionMessage + if ($DataToProcess) { + $CippConfigTable = Get-CippTable -tablename Config + $CippConfig = Get-CIPPAzDataTableEntity @CippConfigTable -Filter "PartitionKey eq 'InstanceProperties' and RowKey eq 'CIPPURL'" + $CIPPURL = 'https://{0}' -f $CippConfig.Value + foreach ($AuditLog in $DataToProcess) { + Write-Information "Processing $($AuditLog.operation)" + $Webhook = @{ + Data = $AuditLog + CIPPURL = [string]$CIPPURL + TenantFilter = $TenantFilter + } + try { + Invoke-CippWebhookProcessing @Webhook + } catch { + Write-Warning "Error sending final step of auditlog processing: $($_.Exception.Message)" + Write-Information $_.InvocationInfo.PositionMessage + } } } - } - try { - Write-Information 'Removing processed rows from cache' - foreach ($Row in $Rows) { - if ($Row.id) { - $RowEntity = Get-CIPPAzDataTableEntity @CacheWebhooksTable -Filter "PartitionKey eq '$TenantFilter' and RowKey eq '$($Row.id)'" - if ($RowEntity) { - Remove-AzDataTableEntity @CacheWebhooksTable -Entity $RowEntity -Force - Write-Information "Removed row $($Row.id) from cache at final pass." + try { + Write-Information 'Removing processed rows from cache' + foreach ($Row in $Rows) { + if ($Row.id) { + $RowEntity = Get-CIPPAzDataTableEntity @CacheWebhooksTable -Filter "PartitionKey eq '$TenantFilter' and RowKey eq '$($Row.id)'" + if ($RowEntity) { + Remove-AzDataTableEntity @CacheWebhooksTable -Entity $RowEntity -Force + Write-Information "Removed row $($Row.id) from cache at final pass." + } } } + } catch { + Write-Information "Error removing rows from cache: $($_.Exception.Message)" } + } catch { - Write-Information "Error removing rows from cache: $($_.Exception.Message)" + Write-Warning "An error occurred during the Test-CIPPAuditLogRules execution: $($_.Exception.Message)" + Write-Information $_.InvocationInfo.PositionMessage } - return $Results } diff --git a/Modules/CIPPCore/build.psd1 b/Modules/CIPPCore/build.psd1 new file mode 100644 index 000000000000..793b0a6ba53b --- /dev/null +++ b/Modules/CIPPCore/build.psd1 @@ -0,0 +1,11 @@ +@{ + Path = 'CIPPCore.psd1' + OutputDirectory = '../../Output' + VersionedOutputDirectory = $false + CopyPaths = @( + 'lib' + ) + Encoding = 'UTF8' + Prefix = $null + Suffix = $null +} diff --git a/Modules/CIPPCore/Public/AdditionalPermissions.json b/Modules/CIPPCore/lib/data/AdditionalPermissions.json similarity index 100% rename from Modules/CIPPCore/Public/AdditionalPermissions.json rename to Modules/CIPPCore/lib/data/AdditionalPermissions.json diff --git a/Modules/CIPPCore/lib/data/ConversionTable.csv b/Modules/CIPPCore/lib/data/ConversionTable.csv new file mode 100644 index 000000000000..27ee53d2fe35 --- /dev/null +++ b/Modules/CIPPCore/lib/data/ConversionTable.csv @@ -0,0 +1,5826 @@ +Product_Display_Name,String_Id,GUID,Service_Plan_Name,Service_Plan_Id,Service_Plans_Included_Friendly_Names +10-Year Audit Log Retention Add On,10_ALR_ADDON,c2e41e49-e2a2-4c55-832a-cf13ffba1d6a,Auditing_10Year_ Retention_ Add_On,7d16094b-4db8-41ff-a182-372a90a85407,Auditing 10Year Retention Add On +Advanced Communications,ADV_COMMS,e4654015-5daf-4a48-9b37-4f309dddd88b,TEAMS_ADVCOMMS,604ec28a-ae18-4bc6-91b0-11da94504ba9,Microsoft 365 Advanced Communications +AI Builder Capacity add-on,CDSAICAPACITY,d2dea78b-507c-4e56-b400-39447f4738f8,CDSAICAPACITY,a7c70a41-5e02-4271-93e6-d9b4184d83f5,AI Builder capacity add-on +AI Builder Capacity add-on,CDSAICAPACITY,d2dea78b-507c-4e56-b400-39447f4738f8,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +App Connect IW,SPZA_IW,8f0c5670-4e56-4892-b06d-91c085d7004f,SPZA,0bfc98ed-1dbc-4a97-b246-701754e48b17,APP CONNECT +App Connect IW,SPZA_IW,8f0c5670-4e56-4892-b06d-91c085d7004f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +App governance add-on to Microsoft Defender for Cloud Apps,Microsoft_Cloud_App_Security_App_Governance_Add_On,9706eed9-966f-4f1b-94f6-bb2b4af99a5b,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +App governance add-on to Microsoft Defender for Cloud Apps,Microsoft_Cloud_App_Security_App_Governance_Add_On,9706eed9-966f-4f1b-94f6-bb2b4af99a5b,MICROSOFT_APPLICATION_PROTECTION_AND_GOVERNANCE_A,5f3b1ded-75c0-4b31-8e6e-9b077eaadfd5,Microsoft Application Protection and Governance (A) +App governance add-on to Microsoft Defender for Cloud Apps,Microsoft_Cloud_App_Security_App_Governance_Add_On,9706eed9-966f-4f1b-94f6-bb2b4af99a5b,MICROSOFT_APPLICATION_PROTECTION_AND_GOVERNANCE_D,2e6ffd72-52d1-4541-8f6c-938f9a8d4cdc,Microsoft Application Protection and Governance (D) +Azure Information Protection Premium P1 for Government,RIGHTSMANAGEMENT_CE_GOV ,78362de1-6942-4bb8-83a1-a32aa67e6e2c,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Azure Information Protection Premium P1 for Government,RIGHTSMANAGEMENT_CE_GOV ,78362de1-6942-4bb8-83a1-a32aa67e6e2c,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Azure Information Protection Premium P1 for Government,RIGHTSMANAGEMENT_CE_GOV ,78362de1-6942-4bb8-83a1-a32aa67e6e2c,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Career Coach for faculty,CAREERCOACH_FACULTY,95de1760-7682-406d-98c9-52ef14e51e2b,CAREERCOACH_EDU,80f0ae31-0dfb-425c-b3fc-36f40170eb35,Career Coach +Career Coach for students,CAREERCOACH_STUDENTS,01c8007a-57d2-41e0-a3c3-0b46ead16cc4,CAREERCOACH_EDU,80f0ae31-0dfb-425c-b3fc-36f40170eb35,Career Coach +Clipchamp Premium,Clipchamp_Premium,0fe440c5-f2bf-442b-a4f4-9a7af77a200b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Clipchamp Premium,Clipchamp_Premium,0fe440c5-f2bf-442b-a4f4-9a7af77a200b,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Clipchamp Premium,Clipchamp_Premium,0fe440c5-f2bf-442b-a4f4-9a7af77a200b,CLIPCHAMP_PREMIUM,430b908f-78e1-4812-b045-cf83320e7d5d,Microsoft Clipchamp Premium +Clipchamp Premium,Clipchamp_Premium,0fe440c5-f2bf-442b-a4f4-9a7af77a200b,ONEDRIVECLIPCHAMP,f7e5b77d-f293-410a-bae8-f941f19fe680,OneDrive for Business (Clipchamp) +Clipchamp Standard,Clipchamp_Standard,481f3bc2-5756-4b28-9375-5c8c86b99e6b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Clipchamp Standard,Clipchamp_Standard,481f3bc2-5756-4b28-9375-5c8c86b99e6b,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Clipchamp Standard,Clipchamp_Standard,481f3bc2-5756-4b28-9375-5c8c86b99e6b,ONEDRIVECLIPCHAMP,f7e5b77d-f293-410a-bae8-f941f19fe680,OneDrive for Business (Clipchamp) +Clipchamp Premium Add-on,Clipchamp_Premium_Add_on,4b2c20e4-939d-4bf4-9dd8-6870240cfe19,CLIPCHAMP_PREMIUM,430b908f-78e1-4812-b045-cf83320e7d5d,Microsoft Clipchamp Premium +Microsoft 365 Audio Conferencing,MCOMEETADV,0c266dff-15dd-4b49-8397-2bb16070ed52,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft Entra ID Basic,AAD_BASIC,2b9c8e7c-319c-43a2-a2a0-48c5c6161de7,AAD_BASIC,c4da7f8a-5ee2-4c99-a7e1-87d2df57f6fe,Microsoft Entra BASIC +Microsoft Entra ID P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Entra ID P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,CLOUD APP SECURITY DISCOVERY +Microsoft Entra ID P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Entra ID P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION +Microsoft Entra ID P1 for Faculty,AAD_PREMIUM_FACULTY,30fc3c36-5a95-4956-ba57-c09c2a600bb9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Entra ID P1 for Faculty,AAD_PREMIUM_FACULTY,30fc3c36-5a95-4956-ba57-c09c2a600bb9,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Entra ID P1 for Faculty,AAD_PREMIUM_FACULTY,30fc3c36-5a95-4956-ba57-c09c2a600bb9,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft Entra ID P1 for Faculty,AAD_PREMIUM_FACULTY,30fc3c36-5a95-4956-ba57-c09c2a600bb9,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft Entra ID P1_USGOV_GCCHIGH,AAD_PREMIUM_USGOV_GCCHIGH ,de597797-22fb-4d65-a9fe-b7dbe8893914,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Entra ID P1_USGOV_GCCHIGH,AAD_PREMIUM_USGOV_GCCHIGH ,de597797-22fb-4d65-a9fe-b7dbe8893914,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft Entra ID P1_USGOV_GCCHIGH,AAD_PREMIUM_USGOV_GCCHIGH ,de597797-22fb-4d65-a9fe-b7dbe8893914,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft Entra ID P1_USGOV_GCCHIGH,AAD_PREMIUM_USGOV_GCCHIGH ,de597797-22fb-4d65-a9fe-b7dbe8893914,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,CLOUD APP SECURITY DISCOVERY +Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION +Azure Information Protection Plan 1,RIGHTSMANAGEMENT,c52ea49f-fe5d-4e95-93ba-1de91d380f89,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,AZURE INFORMATION PROTECTION PREMIUM P1 +Azure Information Protection Plan 1,RIGHTSMANAGEMENT,c52ea49f-fe5d-4e95-93ba-1de91d380f89,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Microsoft Entra RIGHTS +Azure Information Protection Plan 1,RIGHTSMANAGEMENT_CE,a0e6a48f-b056-4037-af70-b9ac53504551,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Azure Information Protection Plan 1,RIGHTSMANAGEMENT_CE,a0e6a48f-b056-4037-af70-b9ac53504551,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Azure Information Protection Plan 1,RIGHTSMANAGEMENT_CE,a0e6a48f-b056-4037-af70-b9ac53504551,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Azure Information Protection Premium P1_USGOV_GCCHIGH,RIGHTSMANAGEMENT_CE_USGOV_GCCHIGH,c57afa2a-d468-46c4-9a90-f86cb1b3c54a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Azure Information Protection Premium P1_USGOV_GCCHIGH,RIGHTSMANAGEMENT_CE_USGOV_GCCHIGH,c57afa2a-d468-46c4-9a90-f86cb1b3c54a,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Azure Information Protection Premium P1_USGOV_GCCHIGH,RIGHTSMANAGEMENT_CE_USGOV_GCCHIGH,c57afa2a-d468-46c4-9a90-f86cb1b3c54a,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Basic Collaboration,OFFICEBASIC,4468c39a-28b2-42fb-9094-840bcf28771f,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Basic Collaboration,OFFICEBASIC,4468c39a-28b2-42fb-9094-840bcf28771f,ONEDRIVELITE_IW,b4ac11a0-32ff-4e78-982d-e039fa803dec,Office for the web with OneDrive for business +Basic Collaboration,OFFICEBASIC,4468c39a-28b2-42fb-9094-840bcf28771f,MCOBASIC,448898aa-3ae7-478c-b49a-1fac7a8a35cf,Skype Meetings +Basic Collaboration,OFFICEBASIC,4468c39a-28b2-42fb-9094-840bcf28771f,YAMMER_BASIC,6db7aeea-6c4a-475d-bbb0-7338bc73d646,Yammer +Business Apps (free),SMB_APPS,90d8b3f8-712e-4f7b-aa1e-62e7ae6cbe96,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Business Apps (free),SMB_APPS,90d8b3f8-712e-4f7b-aa1e-62e7ae6cbe96,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Common Data Service for Apps File Capacity,CDS_FILE_CAPACITY,631d5fb1-a668-4c2a-9427-8830665a742e,CDS_FILE_CAPACITY,dd12a3a8-caec-44f8-b4fb-2f1a864b51e3,Common Data Service for Apps File Capacity +Common Data Service for Apps File Capacity,CDS_FILE_CAPACITY,631d5fb1-a668-4c2a-9427-8830665a742e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Common Data Service Database Capacity,CDS_DB_CAPACITY,e612d426-6bc3-4181-9658-91aa906b0ac0,CDS_DB_CAPACITY,360bcc37-0c11-4264-8eed-9fa7a3297c9b,Common Data Service for Apps Database Capacity +Common Data Service Database Capacity,CDS_DB_CAPACITY,e612d426-6bc3-4181-9658-91aa906b0ac0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Common Data Service Database Capacity for Government,CDS_DB_CAPACITY_GOV,eddf428b-da0e-4115-accf-b29eb0b83965,CDS_DB_CAPACITY_GOV,1ddffef6-4f69-455e-89c7-d5d72105f915,Common Data Service for Apps Database Capacity for Government +Common Data Service Database Capacity for Government,CDS_DB_CAPACITY_GOV,eddf428b-da0e-4115-accf-b29eb0b83965,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Common Data Service Log Capacity,CDS_LOG_CAPACITY,448b063f-9cc6-42fc-a0e6-40e08724a395,CDS_LOG_CAPACITY,dc48f5c5-e87d-43d6-b884-7ac4a59e7ee9,Common Data Service for Apps Log Capacity +Common Data Service Log Capacity,CDS_LOG_CAPACITY,448b063f-9cc6-42fc-a0e6-40e08724a395,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Communications Credits,MCOPSTNC,47794cd0-f0e5-45c5-9033-2eb6b5fc84e0,MCOPSTNC,505e180f-f7e0-4b65-91d4-00d670bbd18c,COMMUNICATIONS CREDITS +Compliance Manager Premium Assessment Add-On,CMPA_addon,8a5fbbed-8b8c-41e5-907e-c50c471340fd,COMPLIANCE_MANAGER_PREMIUM_ASSESSMENT_ADDON,3a117d30-cfac-4f00-84ac-54f8b6a18d78,Compliance Manager Premium Assessment Add-On +Compliance Manager Premium Assessment Add-On for GCC,CMPA_addon_GCC,a9d7ef53-9bea-4a2a-9650-fa7df58fe094,COMPLIANCE_MANAGER_PREMIUM_ASSESSMENT_ADDON,3a117d30-cfac-4f00-84ac-54f8b6a18d78,Compliance Manager Premium Assessment Add-On +Compliance Program for Microsoft Cloud,Compliance_Program_for_Microsoft_Cloud,10dd46b2-c5ad-4de3-865c-a6fa1363fb51,CPMC,1265e154-5544-4197-bba1-03ef69c3b180,Compliance Program for Microsoft Cloud +Defender Threat Intelligence,Defender_Threat_Intelligence,a9c51c15-ffad-4c66-88c0-8771455c832d,THREAT_INTELLIGENCE_APP,fbdb91e6-7bfd-4a1f-8f7a-d27f4ef39702,Defender Threat Intelligence +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_CHAT_FPA_GOV,b9f7ce72-67ff-4695-a9d9-5ff620232024,Dynamics 365 Customer Service Chat Application Integration for Government +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_MESSAGING_GOV,e304c3c3-f86c-4200-b174-1ade48805b22,Dynamics 365 Customer Service Digital Messaging application integration for Government +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_CHAT_GOV,ffb878a5-3184-472b-800b-65eadc63d764,Dynamics 365 for Customer Service Chat for Government +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,POWER_VIRTUAL_AGENTS_D365_CS_CHAT_GOV,9023fe69-f9e0-4c1e-bfde-654954469162,Power Virtual Agents for Chat for Gov +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING_GOV,e501d49b-1176-4816-aece-2563c0d995db,Power Virtual Agents for Digital Messaging for Gov +Dynamics 365 - Additional Database Storage (Qualified Offer),CRMSTORAGE,328dc228-00bc-48c6-8b09-1fbc8bc3435d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 - Additional Database Storage (Qualified Offer),CRMSTORAGE,328dc228-00bc-48c6-8b09-1fbc8bc3435d,CRMSTORAGE,77866113-0f3e-4e6e-9666-b1e25c6f99b0,Microsoft Dynamics CRM Online Storage Add-On +Dynamics 365 - Additional Production Instance (Qualified Offer),CRMINSTANCE,9d776713-14cb-4697-a21d-9a52455c738a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 - Additional Production Instance (Qualified Offer),CRMINSTANCE,9d776713-14cb-4697-a21d-9a52455c738a,CRMINSTANCE,eeea837a-c885-4167-b3d5-ddde30cbd85f,Microsoft Dynamics CRM Online Instance +Dynamics 365 - Additional Non-Production Instance (Qualified Offer),CRMTESTINSTANCE,e06abcc2-7ec5-4a79-b08b-d9c282376f72,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 - Additional Non-Production Instance (Qualified Offer),CRMTESTINSTANCE,e06abcc2-7ec5-4a79-b08b-d9c282376f72,CRMTESTINSTANCE,a98b7619-66c7-4885-bdfc-1d9c8c3d279f,Microsoft Dynamics CRM Online Additional Test Instance +Dynamics 365 AI for Market Insights (Preview),SOCIAL_ENGAGEMENT_APP_USER,c6df1e30-1c9f-427f-907c-3d913474a1c7,SOCIAL_ENGAGEMENT_APP_USER,339f4def-5ad8-4430-8d12-da5fd4c769a7,Dynamics 365 AI for Market Insights - Free +Dynamics 365 AI for Market Insights (Preview),SOCIAL_ENGAGEMENT_APP_USER,c6df1e30-1c9f-427f-907c-3d913474a1c7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Asset Management Addl Assets,DYN365_ASSETMANAGEMENT,673afb9d-d85b-40c2-914e-7bf46cd5cd75,D365_AssetforSCM,90467813-5b40-40d4-835c-abd48009b1d9,Asset Maintenance Add-in +Dynamics 365 Asset Management Addl Assets,DYN365_ASSETMANAGEMENT,673afb9d-d85b-40c2-914e-7bf46cd5cd75,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Additional Environment Addon,DYN365_BUSCENTRAL_ADD_ENV_ADDON,a58f5506-b382-44d4-bfab-225b2fbf8390,DYN365_BUSCENTRAL_ENVIRONMENT,d397d6c6-9664-4502-b71c-66f39c400ca4,Dynamics 365 Business Central Additional Environment Addon +Dynamics 365 Business Central Database Capacity,DYN365_BUSCENTRAL_DB_CAPACITY,7d0d4f9a-2686-4cb8-814c-eff3fdab6d74,DYN365_BUSCENTRAL_DB_CAPACITY,ae6b27b3-fe31-4e77-ae06-ec5fabbc103a,Dynamics 365 Business Central Database Capacity +Dynamics 365 Business Central Database Capacity,DYN365_BUSCENTRAL_DB_CAPACITY,7d0d4f9a-2686-4cb8-814c-eff3fdab6d74,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Essentials,DYN365_BUSCENTRAL_ESSENTIAL,2880026b-2b0c-4251-8656-5d41ff11e3aa,DYN365_FINANCIALS_BUSINESS,920656a2-7dd8-4c83-97b6-a356414dbd36,Dynamics 365 for Business Central Essentials +Dynamics 365 Business Central Essentials,DYN365_BUSCENTRAL_ESSENTIAL,2880026b-2b0c-4251-8656-5d41ff11e3aa,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Essentials,DYN365_BUSCENTRAL_ESSENTIAL,2880026b-2b0c-4251-8656-5d41ff11e3aa,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Flow for Dynamics 365 +Dynamics 365 Business Central Essentials,DYN365_BUSCENTRAL_ESSENTIAL,2880026b-2b0c-4251-8656-5d41ff11e3aa,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,PowerApps for Dynamics 365 +Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,DYN365_BUSCENTRAL_ESSENTIALS_ATTACH,17ca446c-d7a4-4d29-8dec-8e241592164b,Dynamics 365 Business Central Essentials Attach +Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Business Central External Accountant,DYN365_FINANCIALS_ACCOUNTANT_SKU,9a1e33ed-9697-43f3-b84c-1b0959dbb1d4,DYN365_FINANCIALS_ACCOUNTANT,170991d7-b98e-41c5-83d4-db2052e1795f,Dynamics 365 Business Central External Accountant +Dynamics 365 Business Central External Accountant,DYN365_FINANCIALS_ACCOUNTANT_SKU,9a1e33ed-9697-43f3-b84c-1b0959dbb1d4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central External Accountant,DYN365_FINANCIALS_ACCOUNTANT_SKU,9a1e33ed-9697-43f3-b84c-1b0959dbb1d4,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Flow for Dynamics 365 +Dynamics 365 Business Central External Accountant,DYN365_FINANCIALS_ACCOUNTANT_SKU,9a1e33ed-9697-43f3-b84c-1b0959dbb1d4,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,PowerApps for Dynamics 365 +Dynamics 365 Business Central for IWs,PROJECT_MADEIRA_PREVIEW_IW_SKU,6a4a1628-9b9a-424d-bed5-4118f0ede3fd,PROJECT_MADEIRA_PREVIEW_IW,3f2afeed-6fb5-4bf9-998f-f2912133aead,Dynamics 365 Business Central for IWs +Dynamics 365 Business Central for IWs,PROJECT_MADEIRA_PREVIEW_IW_SKU,6a4a1628-9b9a-424d-bed5-4118f0ede3fd,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Premium,DYN365_BUSCENTRAL_PREMIUM,f991cecc-3f91-4cd0-a9a8-bf1c8167e029,DYN365_BUSCENTRAL_PREMIUM,8e9002c0-a1d8-4465-b952-817d2948e6e2,Dynamics 365 Business Central Premium +Dynamics 365 Business Central Premium,DYN365_BUSCENTRAL_PREMIUM,f991cecc-3f91-4cd0-a9a8-bf1c8167e029,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Premium,DYN365_BUSCENTRAL_PREMIUM,f991cecc-3f91-4cd0-a9a8-bf1c8167e029,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Flow for Dynamics 365 +Dynamics 365 Business Central Premium,DYN365_BUSCENTRAL_PREMIUM,f991cecc-3f91-4cd0-a9a8-bf1c8167e029,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,PowerApps for Dynamics 365 +Dynamics 365 Business Central Team Members,DYN365_BUSCENTRAL_TEAM_MEMBER,2e3c4023-80f6-4711-aa5d-29e0ecb46835,DYN365_FINANCIALS_TEAM_MEMBERS,d9a6391b-8970-4976-bd94-5f205007c8d8,Dynamics 365 for Team Members +Dynamics 365 Business Central Team Members,DYN365_BUSCENTRAL_TEAM_MEMBER,2e3c4023-80f6-4711-aa5d-29e0ecb46835,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Team Members,DYN365_BUSCENTRAL_TEAM_MEMBER,2e3c4023-80f6-4711-aa5d-29e0ecb46835,POWERAPPS_DYN_TEAM,52e619e2-2730-439a-b0d3-d09ab7e8b705,Power Apps for Dynamics 365 +Dynamics 365 Business Central Team Members,DYN365_BUSCENTRAL_TEAM_MEMBER,2e3c4023-80f6-4711-aa5d-29e0ecb46835,FLOW_DYN_TEAM,1ec58c70-f69c-486a-8109-4b87ce86e449,Power Automate for Dynamics 365 +Dynamics 365 Commerce Trial,DYN365_RETAIL_TRIAL,1508ad2d-5802-44e6-bfe8-6fb65de63d28,DYN365_RETAIL_TRIAL,874d6da5-2a67-45c1-8635-96e8b3e300ea,Dynamics 365 for Retail Trial +Dynamics 365 Commerce Trial,DYN365_RETAIL_TRIAL,1508ad2d-5802-44e6-bfe8-6fb65de63d28,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,DYN365_ENTERPRISE_P1,d56f3deb-50d8-465a-bedb-f079817ccac1,Dynamics 365 Customer Engagement Plan +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,D365_CSI_EMBED_CE,1412cdc1-d593-4ad1-9050-40c30ad0b023,Dynamics 365 Customer Service Insights for CE Plan +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,D365_ProjectOperationsCDS,18fa3aba-b085-4105-87d7-55617b8585e6,Dynamics 365 Project Operations CDS +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,Forms_Pro_CE,97f29a83-1a20-44ff-bf48-5e4ad11f3e51,Microsoft Dynamics 365 Customer Voice for Customer Engagement Plan +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,Retired - Microsoft Social Engagement +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,D365_ProjectOperations,69f07c66-bee4-4222-b051-195095efee5b,Dynamics 365 Project Operations +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,DYN365_CDS_GUIDES,1315ade1-0410-450d-b8e3-8050e6da320f,Common Data Service +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Dynamics 365 Remote Assist +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,PROJECT_FOR_PROJECT_OPERATIONS,0a05d977-a21a-45b2-91ce-61c240dbafa2,Project for Project Operations +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,Project Online Service +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,POWERAPPS_DYN_P2,0b03f40b-c404-40c3-8651-2aceb74365fa,Power Apps for Dynamics 365 +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,FLOW_DYN_P2,b650d915-9886-424b-a08d-633cede56f57,Power Automate for Dynamics 365 +Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,CDS_CUSTOMER_INSIGHTS_BASE,d04ca659-b119-4a92-b8fc-3ede584a9d65,Dataverse for Customer Insights BASE +Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,CDS_CUSTOMER_INSIGHTS,ca00cff5-2568-4d03-bb6c-a653a8f360ca,Common Data Service for Customer Insights +Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,DYN365_CUSTOMER_INSIGHTS_BASE,ee85d528-c4b4-4a99-9b07-fb9a1365dc93,Dynamics 365 Customer Insights +Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,Customer_Voice_Customer_Insights,46c5ea0a-2343-49d9-ae4f-1c268b232d53,Microsoft Dynamics 365 Customer Voice for Customer Insights App +Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Customer Service Digital Messaging add-on for Government,DYN365_CS_MESSAGING_GOV,336dfe1f-3b33-4ab4-b395-cba8f614976d,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government +Dynamics 365 for Customer Service Digital Messaging add-on for Government,DYN365_CS_MESSAGING_GOV,336dfe1f-3b33-4ab4-b395-cba8f614976d,DYN365_CS_MESSAGING_GOV,e304c3c3-f86c-4200-b174-1ade48805b22,Dynamics 365 Customer Service Digital Messaging application integration for Government +Dynamics 365 for Customer Service Digital Messaging add-on for Government,DYN365_CS_MESSAGING_GOV,336dfe1f-3b33-4ab4-b395-cba8f614976d,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING_GOV,e501d49b-1176-4816-aece-2563c0d995db,Power Virtual Agents for Digital Messaging for Gov +Dynamics 365 for Customer Service Digital Messaging add-on for Government,DYN365_CS_MESSAGING_GOV,336dfe1f-3b33-4ab4-b395-cba8f614976d,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,DYN365_CS_VOICE_GOV,411b0c93-8f89-455e-a663-c0a3effd12c3,Dynamics 365 for Customer Service Voice Add-in for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,POWER_VIRTUAL_AGENTS_D365_CS_VOICE_GOV,cad9c719-36e0-43c7-9506-6886f272d4f0,Power Virtual Agents for Customer Service Voice for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING_GOV,e501d49b-1176-4816-aece-2563c0d995db,Power Virtual Agents for Digital Messaging for Gov +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,DYN365_CS_VOICE_GOV,411b0c93-8f89-455e-a663-c0a3effd12c3,Dynamics 365 for Customer Service Voice Add-in for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,POWER_VIRTUAL_AGENTS_D365_CS_VOICE_GOV,cad9c719-36e0-43c7-9506-6886f272d4f0,Power Virtual Agents for Customer Service Voice for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING_GOV,e501d49b-1176-4816-aece-2563c0d995db,Power Virtual Agents for Digital Messaging for Gov +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Customer Service Chat for Government,DYN365_CS_CHAT_GOV,1b399f66-be2a-479c-a79d-84a43a46f79e,DYN365_CS_CHAT_FPA_GOV,b9f7ce72-67ff-4695-a9d9-5ff620232024,Dynamics 365 Customer Service Chat Application Integration for Government +Dynamics 365 for Customer Service Chat for Government,DYN365_CS_CHAT_GOV,1b399f66-be2a-479c-a79d-84a43a46f79e,DYN365_CS_CHAT_GOV,ffb878a5-3184-472b-800b-65eadc63d764,Dynamics 365 for Customer Service Chat for Government +Dynamics 365 for Customer Service Chat for Government,DYN365_CS_CHAT_GOV,1b399f66-be2a-479c-a79d-84a43a46f79e,POWER_VIRTUAL_AGENTS_D365_CS_CHAT_GOV,9023fe69-f9e0-4c1e-bfde-654954469162,Power Virtual Agents for Chat for Gov +Dynamics 365 for Customer Service Chat for Government,DYN365_CS_CHAT_GOV,1b399f66-be2a-479c-a79d-84a43a46f79e,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,D365_CSI_EMBED_CSEnterprise,5b1e5982-0e88-47bb-a95e-ae6085eda612,Dynamics 365 Customer Service Insights for CS Enterprise +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,DYN365_ENTERPRISE_CUSTOMER_SERVICE,99340b49-fb81-4b1e-976b-8f2ae8e9394f,Dynamics 365 for Customer Service +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING,2d2f174c-c3cc-4abe-9ce8-4dd86f469ab1,Power Virtual Agents for Digital Messaging +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Customer Service Voice Channel Add-in,DYN365_CS_VOICE,dadd2312-b5b1-4fa0-8c15-0903de3e2303,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Customer Service Voice Channel Add-in,DYN365_CS_VOICE,dadd2312-b5b1-4fa0-8c15-0903de3e2303,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Customer Service Voice Channel Add-in,DYN365_CS_VOICE,dadd2312-b5b1-4fa0-8c15-0903de3e2303,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,CDS_CUSTOMER_INSIGHTS_BASE,d04ca659-b119-4a92-b8fc-3ede584a9d65,Dataverse for Cust Insights BASE +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,CDS_CUSTOMER_INSIGHTS,ca00cff5-2568-4d03-bb6c-a653a8f360ca,Common Data Service for Customer Insights +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,DYN365_CUSTOMER_INSIGHTS_BASE,ee85d528-c4b4-4a99-9b07-fb9a1365dc93,Dynamics 365 Customer Insights +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,DYN365_CUSTOMER_INSIGHTS_ENGAGEMENT_INSIGHTS_BASE,b3c26516-3b8d-492f-a5a3-64d70ad3f8d0,Dynamics 365 Customer Insights Engagement Insights +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,Customer_Voice_Customer_Insights,46c5ea0a-2343-49d9-ae4f-1c268b232d53,Microsoft Dynamics 365 Customer Voice for Customer Insights App +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Insights vTrial,DYN365_CUSTOMER_INSIGHTS_VIRAL,036c2481-aa8a-47cd-ab43-324f0c157c2d,CDS_CUSTOMER_INSIGHTS_TRIAL,94e5cbf6-d843-4ee8-a2ec-8b15eb52019e,Common Data Service for Customer Insights Trial +Dynamics 365 Customer Insights vTrial,DYN365_CUSTOMER_INSIGHTS_VIRAL,036c2481-aa8a-47cd-ab43-324f0c157c2d,DYN365_CUSTOMER_INSIGHTS_ENGAGEMENT_INSIGHTS_BASE_TRIAL,e2bdea63-235e-44c6-9f5e-5b0e783f07dd,Dynamics 365 Customer Insights Engagement Insights Viral +Dynamics 365 Customer Insights vTrial,DYN365_CUSTOMER_INSIGHTS_VIRAL,036c2481-aa8a-47cd-ab43-324f0c157c2d,DYN365_CUSTOMER_INSIGHTS_VIRAL,ed8e8769-94c5-4132-a3e7-7543b713d51f,Dynamics 365 Customer Insights Viral Plan +Dynamics 365 Customer Insights vTrial,DYN365_CUSTOMER_INSIGHTS_VIRAL,036c2481-aa8a-47cd-ab43-324f0c157c2d,Forms_Pro_Customer_Insights,fe581650-cf61-4a09-8814-4bd77eca9cb5,Microsoft Dynamics 365 Customer Voice for Customer Insights +Dynamics 365 for Customer Service Enterprise Attach to Qualifying Dynamics 365 Base Offer A,D365_CUSTOMER_SERVICE_ENT_ATTACH,eb18b715-ea9d-4290-9994-2ebf4b5042d2,D365_CUSTOMER_SERVICE_ENT_ATTACH,61a2665f-1873-488c-9199-c3d0bc213fdf,Dynamics 365 for Customer Service Enterprise Attach +Dynamics 365 for Customer Service Enterprise Attach to Qualifying Dynamics 365 Base Offer A,D365_CUSTOMER_SERVICE_ENT_ATTACH,eb18b715-ea9d-4290-9994-2ebf4b5042d2,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Customer Service Enterprise Attach to Qualifying Dynamics 365 Base Offer A,D365_CUSTOMER_SERVICE_ENT_ATTACH,eb18b715-ea9d-4290-9994-2ebf4b5042d2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,dc6643d9-1e72-4dce-9f64-1d6eac1f1c5a,Dynamics 365 for Customer Service for Government +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,Forms_Pro_Service_GCC,bb681a9b-58f5-42ee-9926-674325be8aaa,Microsoft Dynamics 365 Customer Voice for Customer Service Enterprise for GCC +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,CCIBOTS_PRIVPREV_VIRAL,ce312d15-8fdf-44c0-9974-a25a177125ee,Dynamics 365 AI for Customer Service Virtual Agents Viral +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,DYN365_CS_MESSAGING_VIRAL_TRIAL,3bf52bdf-5226-4a97-829e-5cca9b3f3392,Dynamics 365 Customer Service Digital Messaging vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,DYN365_CS_ENTERPRISE_VIRAL_TRIAL,94fb67d3-465f-4d1f-a50a-952da079a564,Dynamics 365 Customer Service Enterprise vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,DYNB365_CSI_VIRAL_TRIAL,33f1466e-63a6-464c-bf6a-d1787928a56a,Dynamics 365 Customer Service Insights vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,DYN365_CS_VOICE_VIRAL_TRIAL,3de81e39-4ce1-47f7-a77f-8473d4eb6d7c,Dynamics 365 Customer Service Voice vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,POWER_APPS_DYN365_VIRAL_TRIAL,54b37829-818e-4e3c-a08a-3ea66ab9b45d,Power Apps for Dynamics 365 vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,POWER_AUTOMATE_DYN365_VIRAL_TRIAL,81d4ecb8-0481-42fb-8868-51536c5aceeb,Power Automate for Dynamics 365 vTrial +Dynamics 365 Customer Service Insights Trial,DYN365_AI_SERVICE_INSIGHTS,61e6bd70-fbdb-4deb-82ea-912842f39431,DYN365_AI_SERVICE_INSIGHTS,4ade5aa6-5959-4d2c-bf0a-f4c9e2cc00f2,Dynamics 365 AI for Customer Service Trial +Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,DYN365_CDS_FORMS_PRO,363430d1-e3f7-43bc-b07b-767b6bb95e4b,Common Data Service +Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,FORMS_PRO,17efdd9f-c22c-4ad8-b48e-3b1f3ee1dc9a,Dynamics 365 Customer Voice +Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,FLOW_FORMS_PRO,57a0746c-87b8-4405-9397-df365a9db793,Power Automate for Dynamics 365 Customer Voice +Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,DYN365_CUSTOMER_SERVICE_PRO,6929f657-b31b-4947-b4ce-5066c3214f54,Dynamics 365 for Customer Service Pro +Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web +Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,POWERAPPS_CUSTOMER_SERVICE_PRO,c507b04c-a905-4940-ada6-918891e6d3ad,Power Apps for Customer Service Pro +Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,FLOW_CUSTOMER_SERVICE_PRO,0368fc9c-3721-437f-8b7d-3d0f888cdefc,Power Automate for Customer Service Pro +Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 for Customer Service Professional Attach to Qualifying Dynamics 365 Base Offer,D365_CUSTOMER_SERVICE_PRO_ATTACH,19dec69d-d9f3-4792-8a39-d8ecdf51937b,D365_CUSTOMER_SERVICE_PRO_ATTACH,a9dd2dca-10ae-4da2-aaf0-d3fe8a825110,Dynamics 365 for Customer Service Pro Attach +Dynamics 365 for Customer Service Professional Attach to Qualifying Dynamics 365 Base Offer,D365_CUSTOMER_SERVICE_PRO_ATTACH,19dec69d-d9f3-4792-8a39-d8ecdf51937b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Voice,DYN365_CUSTOMER_VOICE_BASE,359ea3e6-8130-4a57-9f8f-ad897a0342f1,Customer_Voice_Base,296820fe-dce5-40f4-a4f2-e14b8feef383,Dynamics 365 Customer Voice Base Plan +Dynamics 365 Customer Voice,DYN365_CUSTOMER_VOICE_BASE,359ea3e6-8130-4a57-9f8f-ad897a0342f1,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Voice Additional Responses,Forms_Pro_AddOn,446a86f8-a0cb-4095-83b3-d100eb050e3d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Voice Additional Responses,Forms_Pro_AddOn,446a86f8-a0cb-4095-83b3-d100eb050e3d,Forms_Pro_AddOn,90a816f6-de5f-49fd-963c-df490d73b7b5,Microsoft Dynamics 365 Customer Voice Add-on +Dynamics 365 Customer Voice Additional Responses,DYN365_CUSTOMER_VOICE_ADDON,65f71586-ade3-4ce1-afc0-1b452eaf3782,CUSTOMER_VOICE_ADDON,e6e35e2d-2e7f-4e71-bc6f-2f40ed062f5d,Dynamics Customer Voice Add-On +Dynamics 365 Customer Voice Additional Responses,DYN365_CUSTOMER_VOICE_ADDON,65f71586-ade3-4ce1-afc0-1b452eaf3782,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Voice USL,Forms_Pro_USL,e2ae107b-a571-426f-9367-6d4c8f1390ba,CDS_FORM_PRO_USL,e9830cfd-e65d-49dc-84fb-7d56b9aa2c89,Common Data Service +Dynamics 365 Customer Voice USL,Forms_Pro_USL,e2ae107b-a571-426f-9367-6d4c8f1390ba,Forms_Pro_USL,3ca0766a-643e-4304-af20-37f02726339b,Microsoft Dynamics 365 Customer Voice USL +Dynamics 365 Customer Voice USL,Forms_Pro_USL,e2ae107b-a571-426f-9367-6d4c8f1390ba,FLOW_FORMS_PRO,57a0746c-87b8-4405-9397-df365a9db793,Power Automate for Dynamics 365 Customer Voice +Dynamics 365 Enterprise Edition - Additional Database Storage for Government,CRMSTORAGE_GCC,4aed5dd6-eb9c-4143-8f14-368d70287121,CRMSTORAGE_GCC,62edd427-6067-4274-93c4-29afdeb30707,Microsoft Dynamics CRM Online Storage Add-On +Dynamics 365 Enterprise Edition - Additional Database Storage for Government,CRMSTORAGE_GCC,4aed5dd6-eb9c-4143-8f14-368d70287121,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Enterprise Edition - Additional Portal for Government,CRM_ONLINE_PORTAL_GCC,cb9bc974-a47b-4123-998d-a383390168cc,CRM_ONLINE_PORTAL_GCC,eac6b45b-aa89-429f-a37b-c8ce00e8367e,Microsoft Dynamics CRM Online - Portal Add-On +Dynamics 365 Enterprise Edition - Additional Portal for Government,CRM_ONLINE_PORTAL_GCC,cb9bc974-a47b-4123-998d-a383390168cc,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Enterprise Edition - Additional Portal for Government,CRM_ONLINE_PORTAL_NOPREREQ,67f58b51-af53-4344-9663-9a2beb1d8a8e,CRM_ONLINE_PORTAL_GCC,eac6b45b-aa89-429f-a37b-c8ce00e8367e,Microsoft Dynamics CRM Online - Portal Add-On +Dynamics 365 Enterprise Edition - Additional Portal for Government,CRM_ONLINE_PORTAL_NOPREREQ,67f58b51-af53-4344-9663-9a2beb1d8a8e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Enterprise Edition - Additional Portal (Qualified Offer),CRM_ONLINE_PORTAL,a4bfb28e-becc-41b0-a454-ac680dc258d3,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Enterprise Edition - Additional Portal (Qualified Offer),CRM_ONLINE_PORTAL,a4bfb28e-becc-41b0-a454-ac680dc258d3,CRM_ONLINE_PORTAL,1d4e9cb1-708d-449c-9f71-943aa8ed1d6a,Microsoft Dynamics CRM Online - Portal Add-On +Dynamics 365 Enterprise Edition - Additional Non-Production Instance for Government,CRMTESTINSTANCE_GCC,1d2756cb-2147-4b05-b4d5-f013c022dcb9,CRMTESTINSTANCE_GCC,6d99eb83-7b5f-4947-8e99-cc12f1adb399,Microsoft Dynamics CRM Online Additional Non-production Instance +Dynamics 365 Enterprise Edition - Additional Non-Production Instance for Government,CRMTESTINSTANCE_GCC,1d2756cb-2147-4b05-b4d5-f013c022dcb9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 - Additional Non-Production Instance for Government,CRMTESTINSTANCE_NOPREREQ,2cf302fe-62db-4e20-b573-e0998b1208b5,CRMTESTINSTANCE_GCC,6d99eb83-7b5f-4947-8e99-cc12f1adb399,Microsoft Dynamics CRM Online Additional Non-production Instance +Dynamics 365 - Additional Non-Production Instance for Government,CRMTESTINSTANCE_NOPREREQ,2cf302fe-62db-4e20-b573-e0998b1208b5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Enterprise Edition - Additional Production Instance for Government,CRMINSTANCE_GCC,2bd3cb20-1bb6-446b-b4d0-089af3a05c52,CRMINSTANCE_GCC,483cc331-f4df-4a3b-b8ca-fe1a247569f6,Microsoft Dynamics CRM Online Instance +Dynamics 365 Enterprise Edition - Additional Production Instance for Government,CRMINSTANCE_GCC,2bd3cb20-1bb6-446b-b4d0-089af3a05c52,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Dynamics 365 Field Service, Enterprise Edition - Resource Scheduling Optimization",CRM_AUTO_ROUTING_ADDON,977464c4-bfaf-4b67-b761-a9bb735a2196,CRM_AUTO_ROUTING_ENGINE_ADDON,24435e4b-87d0-4d7d-8beb-63a9b1573022,Field Service – Automated Routing Engine Add-On +"Dynamics 365 Field Service, Enterprise Edition - Resource Scheduling Optimization",CRM_AUTO_ROUTING_ADDON,977464c4-bfaf-4b67-b761-a9bb735a2196,CRM_AUTO_ROUTING_ADDON,2ba394e0-6f18-4b77-b45f-a5663bbab540,RETIRED - Field Service – Automated Routing Engine Add-On +"Dynamics 365 Field Service, Enterprise Edition - Resource Scheduling Optimization",CRM_AUTO_ROUTING_ADDON,977464c4-bfaf-4b67-b761-a9bb735a2196,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Field Service Contractor,D365_FIELD_SERVICE_CONTRACTOR,23e6e135-e869-4ce4-9ae4-5710cd69ac13,CDS_FIELD_SERVICE_CONTRACTOR,f4614a66-d632-443a-bc77-afe92987b322,Common Data Service Field service Part Time Contractors +Dynamics 365 Field Service Contractor,D365_FIELD_SERVICE_CONTRACTOR,23e6e135-e869-4ce4-9ae4-5710cd69ac13,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Field Service Contractor,D365_FIELD_SERVICE_CONTRACTOR,23e6e135-e869-4ce4-9ae4-5710cd69ac13,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Field Service Contractor for Government,D365_FIELD_SERVICE_CONTRACTOR_GOV,e7965e3a-1f49-4d67-a3de-ad1ce460bbcc,CDS_FIELD_SERVICE_CONTRACTOR_GCC,2457fe40-65be-48a1-935f-924ad6e62dba,Common Data Service Field service Part Time Contractors for Government +Dynamics 365 Field Service Contractor for Government,D365_FIELD_SERVICE_CONTRACTOR_GOV,e7965e3a-1f49-4d67-a3de-ad1ce460bbcc,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 Field Service Contractor for Government,D365_FIELD_SERVICE_CONTRACTOR_GOV,e7965e3a-1f49-4d67-a3de-ad1ce460bbcc,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial +Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,DYN365_FS_ENTERPRISE_VIRAL_TRIAL,20d1455b-72b2-4725-8354-a177845ab77d,Dynamics 365 Field Service Enterprise vTrial +Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,POWER_APPS_DYN365_VIRAL_TRIAL,54b37829-818e-4e3c-a08a-3ea66ab9b45d,Power Apps for Dynamics 365 vTrial +Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,POWER_AUTOMATE_DYN365_VIRAL_TRIAL,81d4ecb8-0481-42fb-8868-51536c5aceeb,Power Automate for Dynamics 365 vTrial +Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,DYN365_CDS_FINANCE,e95d7060-d4d9-400a-a2bd-a244bf0b609e,Common Data Service for Dynamics 365 Finance +Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,Dynamics 365 for Finance and Operations Enterprise edition - Regulatory Service +Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,D365_Finance,9f0e1b4e-9b33-4300-b451-b2c662cd4ff7,Microsoft Dynamics 365 for Finance +Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,CDS_AI_Capacity_FI,5d85ec34-44e5-43b6-a9aa-d1b4c1d3aa3b,AI Builder Capacity Add-on +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,DYN365_CDS_FINANCE,e95d7060-d4d9-400a-a2bd-a244bf0b609e,Common Data Service for Dynamics 365 Finance +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,D365_Finance_Attach,223e33cb-eee0-462d-b1bd-e9a5febf8e85,Dynamics 365 for Finance Attach +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,D365_ProjectOperationsCDSAttach,e564d403-7eaf-4c91-b92f-bb0dc62026e1,Dynamics 365 Project Operations CDS Attach +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,CDS_AI_Capacity_FI,5d85ec34-44e5-43b6-a9aa-d1b4c1d3aa3b,AI Builder Capacity Add-on +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,D365_Finance_Attach,223e33cb-eee0-462d-b1bd-e9a5febf8e85,Dynamics 365 for Finance Attach +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,D365_ProjectOperationsAttach,fa7675bd-6717-40e7-8172-d0bbcbe1ab12,Dynamics 365 Project Operations Attach +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,PROJECT_FOR_PROJECT_OPERATIONS_ATTACH,6d8e07c6-9613-484f-8cc1-a66c5c3979bb,Project for Project Operations Attach +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,DYN365_ENTERPRISE_CASE_MANAGEMENT,2822a3a1-9b8f-4432-8989-e11669a60dc8,Dynamics 365 for Case Management +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,Retired - Microsoft Social Engagement +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,79bb0a8d-e686-4e16-ac59-2b3fd0014a61,Dynamics 365 for Case Management for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,79bb0a8d-e686-4e16-ac59-2b3fd0014a61,Dynamics 365 for Case Management for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_CDS_RETAIL,93cc200d-a47f-4c56-aec1-83f8b0d0425a,Common Data Service for Dynamics 365 Retail +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,FLOW_FOR_IOM_USL,9e6d1620-dce9-4655-8933-af8fa5bccc9c,Data Integration for IOM with Power Automate USL +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,CDS_FOR_IOM,2bb89402-51e9-4c5a-be33-e954a9dd1ba6,Dataverse for IOM +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_RETAIL,117e3aa0-8d08-4a19-a6a5-90b7a96e2128,Dynamics 365 Commerce +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_FP_ACC_PROTECTION,4c00c16c-0304-4421-b598-555c3e78edcb,Dynamics 365 Fraud Protection - Account Protection +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_FP_LOSS_PREVENTION,ecc62904-fa88-4552-a62c-fe582fb31444,Dynamics 365 Fraud Protection - Loss Prevention +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_FP_PURCH_PROTECTION,d703990f-006e-459b-b8dd-1267c4533a22,Dynamics 365 Fraud Protection - Purchase Protection +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_IOM,616cf6e2-f52f-4738-b463-10003061fcd3,Dynamics 365 Intelligent Order Management +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_IOM_USER,81375e2f-5ef7-4773-96aa-e3279f50bd21,Dynamics 365 Intelligent Order Management USL +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,DYN365_CC,2a9d72b3-1714-440f-babf-bf92bf9683d8,Dynamics 365 Contact Center +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,DYN365_CC,2a9d72b3-1714-440f-babf-bf92bf9683d8,Dynamics 365 Contact Center +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,DYN365_CC_DIGITAL,0ef2b4e3-0a2b-450d-8c5f-a52203c40f50,Dynamics 365 Contact Center Digital +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,DYN365_CS_MESSAGING,43b076f2-1123-45ba-a339-2e170ee58c53,Dynamics 365 Customer Service Digital Messaging Application Integration +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,DYN365_CC_DIGITAL,0ef2b4e3-0a2b-450d-8c5f-a52203c40f50,Dynamics 365 Contact Center Digital +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,DYN365_CS_MESSAGING,43b076f2-1123-45ba-a339-2e170ee58c53,Dynamics 365 Customer Service Digital Messaging Application Integration +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,DYN365_CC_VOICE,57517633-b4ad-4db8-8c1a-65f443424490,Dynamics 365 Contact Center Voice +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,DYN365_CC_VOICE,57517633-b4ad-4db8-8c1a-65f443424490,Dynamics 365 Contact Center Voice +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,CDS_CUSTOMER_INSIGHTS_BASE,d04ca659-b119-4a92-b8fc-3ede584a9d65,Dataverse for Cust Insights BASE +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,CDS_CUSTOMER_INSIGHTS_COMBINED_BASE,d66ee5da-07d5-49d6-a1d8-45662c3f37be,Dataverse for Customer Insights Combined Base +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,DYN365_CUSTOMER_INSIGHTS_JOURNEYS_BASE,1720c3f7-7da3-4a11-8324-92aad283eb68,Dynamics 365 Customer Insights Journeys +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,Forms_Pro_Marketing_App,22b657cf-0a9e-467b-8a91-5e31f21bc570,Microsoft Dynamics 365 Customer Voice for Marketing Application +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Insights Journeys T3 Interacted People,Dynamics_365_Customer_Insights_Journeys_T3_Interacted_People,05735051-46c0-4c84-9107-bb13d77d0b88,CDS_CUSTOMER_INSIGHTS_JOURNEYS_ADD-ON,2f2e81a6-15de-4041-9f33-73c06fed3801,Dataverse for Customer Insights Journeys add-on +Dynamics 365 Customer Insights Journeys T3 Interacted People,Dynamics_365_Customer_Insights_Journeys_T3_Interacted_People,05735051-46c0-4c84-9107-bb13d77d0b88,DYN365_MARKETING_50K_CONTACT_ADDON,e626a4ec-1ba2-409e-bf75-9bc0bc30cca7,Dynamics 365 for Marketing 50K Addnl Contacts +Dynamics 365 Customer Insights Journeys T3 Interacted People,Dynamics_365_Customer_Insights_Journeys_T3_Interacted_People,05735051-46c0-4c84-9107-bb13d77d0b88,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Insights User License,Dynamics_365_Customer_Insights_User_License,12b5a442-a6f2-49e4-868b-2d7408c2356f,DYN365_MARKETING_MSE_USER,2824c69a-1ac5-4397-8592-eae51cb8b581,Dynamics 365 for Marketing MSE User +Dynamics 365 Customer Insights User License,Dynamics_365_Customer_Insights_User_License,12b5a442-a6f2-49e4-868b-2d7408c2356f,DYN365_MARKETING_USER,5d7a6abc-eebd-46ab-96e1-e4a2f54a2248,Dynamics 365 for Marketing USL +Dynamics 365 Customer Insights User License,Dynamics_365_Customer_Insights_User_License,12b5a442-a6f2-49e4-868b-2d7408c2356f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,DYN365_CS_CHAT_FPA,426ec19c-d5b1-4548-b894-6fe75028c30d,Dynamics 365 Customer Service Chat Application Integration +Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,DYN365_CS_CHAT,f69129db-6dc1-4107-855e-0aaebbcd9dd4,Dynamics 365 for Customer Service Chat +Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,POWER_VIRTUAL_AGENTS_D365_CS_CHAT,19e4c3a8-3ebe-455f-a294-4f3479873ae3,Power Virtual Agents for Chat +Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,D365_CSI_EMBED_CSEnterprise,5b1e5982-0e88-47bb-a95e-ae6085eda612,Dynamics 365 Customer Service Insights for CS Enterprise +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,DYN365_ENTERPRISE_CUSTOMER_SERVICE,99340b49-fb81-4b1e-976b-8f2ae8e9394f,MICROSOFT SOCIAL ENGAGEMENT - SERVICE DISCONTINUATION +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,Forms_Pro_Service,67bf4812-f90b-4db9-97e7-c0bbbf7b2d09,Microsoft Dynamics 365 Customer Voice for Customer Service Enterprise +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,PROJECT ONLINE ESSENTIALS +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,SHAREPOINT ONLINE (PLAN 2) +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,FLOW FOR DYNAMICS 365 +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,POWERAPPS FOR DYNAMICS 365 +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,DYNAMICS 365 FOR CUSTOMER SERVICE +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,dc6643d9-1e72-4dce-9f64-1d6eac1f1c5a,Dynamics 365 for Customer Service for Government +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,Forms_Pro_Service_GCC,bb681a9b-58f5-42ee-9926-674325be8aaa,Microsoft Dynamics 365 Customer Voice for Customer Service Enterprise for GCC +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Field Service Attach to Qualifying Dynamics 365 Base Offer,D365_FIELD_SERVICE_ATTACH,a36cdaa2-a806-4b6e-9ae0-28dbd993c20e,D365_FIELD_SERVICE_ATTACH,55c9148b-d5f0-4101-b5a0-b2727cfc0916,Dynamics 365 for Field Service Attach +Dynamics 365 for Field Service Attach to Qualifying Dynamics 365 Base Offer,D365_FIELD_SERVICE_ATTACH,a36cdaa2-a806-4b6e-9ae0-28dbd993c20e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,Forms_Pro_FS,9c439259-63b0-46cc-a258-72be4313a42d,Microsoft Dynamics 365 Customer Voice for Field Service +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,Retired - Microsoft Social Engagement +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,a9a5be2d-17dd-4d43-ba78-9391e11d20a7,Dynamics 365 for Field Service for Government +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,Forms_Pro_FS_GCC,638862ef-afb3-46e4-b292-ed0aad759476,Microsoft Dynamics 365 Customer Voice for Field Service for GCC +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,a9a5be2d-17dd-4d43-ba78-9391e11d20a7,Dynamics 365 for Field Service for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,Forms_Pro_FS_GCC,638862ef-afb3-46e4-b292-ed0aad759476,Microsoft Dynamics 365 Customer Voice for Field Service for GCC +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Financials Business Edition,DYN365_FINANCIALS_BUSINESS_SKU,cc13a803-544e-4464-b4e4-6d6169a138fa,DYN365_FINANCIALS_BUSINESS,920656a2-7dd8-4c83-97b6-a356414dbd36,FLOW FOR DYNAMICS 365 +Dynamics 365 for Financials Business Edition,DYN365_FINANCIALS_BUSINESS_SKU,cc13a803-544e-4464-b4e4-6d6169a138fa,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,POWERAPPS FOR DYNAMICS 365 +Dynamics 365 for Financials Business Edition,DYN365_FINANCIALS_BUSINESS_SKU,cc13a803-544e-4464-b4e4-6d6169a138fa,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,DYNAMICS 365 FOR FINANCIALS +Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,D365_GUIDES_VIRAL_TRIAL,fe986032-d840-4817-82d4-51fe4fbbe163,Dynamics 365 Guides vTrial +Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,Common Data Service +Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,POWER_APPS_DYN365_VIRAL_TRIAL_MIXED_REALITY,066e2fd1-ba15-40e7-aa96-d6636b1cdf71,Power Apps for Dynamics 365 Mixed Reality +Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,POWER_AUTOMATE_DYN365_VIRAL_TRIAL_MIXED_REALITY,26fa8a18-2812-4b3d-96b4-864818ce26be,Power Automate for Dynamics 365 Mixed Reality +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,Forms_Pro_Talent,1c4ae475-5608-43fa-b3f7-d20e07cf24b4,Microsoft Dynamics 365 Customer Voice for Talent +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,D365_HR_SELF_SERVICE_OPS,835b837b-63c1-410e-bf6b-bdef201ad129,Dynamics 365 Human Resource Self Service +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,D365_HR_OPS,8b21a5dc-5485-49ed-a2d4-0e772c830f6d,Dynamics 365 Human Resources +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,D365_HR_Attach,3219525a-4064-45ec-9c35-a33ea6b39a49,Dynamics 365 Human Resources Attach +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,D365_HR_ATTACH_OPS,90d8cb62-e98a-4639-8342-8c7d2c8215ba,Dynamics 365 Human Resources Attach License +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Hybrid Connector,CRM_HYBRIDCONNECTOR,de176c31-616d-4eae-829a-718918d7ec23,CRM_HYBRIDCONNECTOR,0210d5c8-49d2-4dd1-a01b-a91c7c14e0bf,CRM Hybrid Connector +Dynamics 365 Hybrid Connector,CRM_HYBRIDCONNECTOR,de176c31-616d-4eae-829a-718918d7ec23,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Additional Application,DYN365_MARKETING_APPLICATION_ADDON,99c5688b-6c75-4496-876f-07f0fbd69add,DYN365_MARKETING_APPLICATION_ADDON,51cf0638-4861-40c0-8b20-1161ab2f80be,Dynamics 365 for Marketing Additional Application +Dynamics 365 for Marketing Additional Application,DYN365_MARKETING_APPLICATION_ADDON,99c5688b-6c75-4496-876f-07f0fbd69add,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Addnl Contacts Tier 1,DYN365_MARKETING_CONTACT_ADDON,fc4581aa-6b1f-459d-95b6-84bd49d6f843,DYN365_MARKETING_CONTACT_ADDON,18db5075-2c70-408d-a82b-929059d782af,Dynamics 365 for Marketing Additional Contacts Tier 1 +Dynamics 365 for Marketing Addnl Contacts Tier 1,DYN365_MARKETING_CONTACT_ADDON,fc4581aa-6b1f-459d-95b6-84bd49d6f843,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Addnl Contacts Tier 3,DYN365_MARKETING_CONTACT_ADDON_T3,23053933-0fda-431f-9a5b-a00fd78444c1,DYN365_MARKETING_50K_CONTACT_ADDON,e626a4ec-1ba2-409e-bf75-9bc0bc30cca7,Dynamics 365 for Marketing 50K Addnl Contacts +Dynamics 365 for Marketing Addnl Contacts Tier 3,DYN365_MARKETING_CONTACT_ADDON_T3,23053933-0fda-431f-9a5b-a00fd78444c1,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Addnl Contacts Tier 5,DYN365_MARKETING_CONTACT_ADDON_T5,d8eec316-778c-4f14-a7d1-a0aca433b4e7,DYN365_MARKETING_50K_CONTACT_ADDON,e626a4ec-1ba2-409e-bf75-9bc0bc30cca7,Dynamics 365 for Marketing 50K Addnl Contacts +Dynamics 365 for Marketing Addnl Contacts Tier 5,DYN365_MARKETING_CONTACT_ADDON_T5,d8eec316-778c-4f14-a7d1-a0aca433b4e7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Additional Non-Prod Application,DYN365_MARKETING_SANDBOX_APPLICATION_ADDON,c393e9bd-2335-4b46-8b88-9e2a86a85ec1,DYN365_MARKETING_SANDBOX_APPLICATION_ADDON,1599de10-5250-4c95-acf2-491f74edce48,Dynamics 365 Marketing Sandbox Application AddOn +Dynamics 365 for Marketing Attach,DYN365_MARKETING_APP_ATTACH,85430fb9-02e8-48be-9d7e-328beb41fa29,DYN365_MARKETING_APP,a3a4fa10-5092-401a-af30-0462a95a7ac8,Dynamics 365 for Marketing +Dynamics 365 for Marketing Attach,DYN365_MARKETING_APP_ATTACH,85430fb9-02e8-48be-9d7e-328beb41fa29,Forms_Pro_Marketing_App,22b657cf-0a9e-467b-8a91-5e31f21bc570,Microsoft Dynamics 365 Customer Voice for Marketing Application +Dynamics 365 for Marketing Attach,DYN365_MARKETING_APP_ATTACH,85430fb9-02e8-48be-9d7e-328beb41fa29,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing USL,D365_MARKETING_USER,4b32a493-9a67-4649-8eb9-9fc5a5f75c12,DYN365_MARKETING_MSE_USER,2824c69a-1ac5-4397-8592-eae51cb8b581,Dynamics 365 for Marketing MSE User +Dynamics 365 for Marketing USL,D365_MARKETING_USER,4b32a493-9a67-4649-8eb9-9fc5a5f75c12,DYN365_MARKETING_USER,5d7a6abc-eebd-46ab-96e1-e4a2f54a2248,Dynamics 365 for Marketing USL +Dynamics 365 for Marketing USL,D365_MARKETING_USER,4b32a493-9a67-4649-8eb9-9fc5a5f75c12,Forms_Pro_Marketing,76366ba0-d230-47aa-8087-b6d55dae454f,Microsoft Dynamics 365 Customer Voice for Marketing +Dynamics 365 for Marketing USL,D365_MARKETING_USER,4b32a493-9a67-4649-8eb9-9fc5a5f75c12,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,D365_CSI_EMBED_CSEnterprise,5b1e5982-0e88-47bb-a95e-ae6085eda612,Dynamics 365 Customer Service Insights for CS Enterprise +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_ENTERPRISE_CUSTOMER_SERVICE,99340b49-fb81-4b1e-976b-8f2ae8e9394f,Dynamics 365 for Customer Service +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_MARKETING_APP,a3a4fa10-5092-401a-af30-0462a95a7ac8,Dynamics 365 for Marketing +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_ENTERPRISE_SALES,2da8e897-7791-486b-b08f-cc63c8129df7,Dynamics 365 for Sales +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,Forms_Pro_FS,9c439259-63b0-46cc-a258-72be4313a42d,Microsoft Dynamics 365 Customer Voice for Field Service +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,Forms_Pro_SalesEnt,8839ef0e-91f1-4085-b485-62e06e7c7987,Microsoft Dynamics 365 Customer Voice for Sales Enterprise +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING,2d2f174c-c3cc-4abe-9ce8-4dd86f469ab1,Power Virtual Agents for Digital Messaging +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Dynamics 365 Remote Assist +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,DYN365_RETAIL_Activity,f06754ec-6d72-4bf6-991c-4cb5413d9932,Dynamics 365 for Retail Activity +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,DYN365_Enterprise_Talent_Attract_Activity,aac5a56b-b02e-4608-8014-b076646d4011,Dynamics 365 for Talent - Attract Experience Activity +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,DYN365_Enterprise_Talent_Onboard_Activity,db225597-e9c2-4d96-8ace-5424744c80f8,Dynamics 365 for Talent - Onboard Experience +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,Dynamics_365_for_Talent_Activity,1f87ee90-5c3a-4cf9-b6fd-e3e8017c26ec,Dynamics 365 for Talent Activity +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,Dynamics_365_for_Operations_Activity,6bddf93e-d6f4-4991-b9fc-30cfdf07ee7b,Dynamics365 for Operations Activity +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,D365CDSforProjectOperations,7df1d500-ca5c-4229-8cea-815bc88798c9,Common Data Service for Dynamics 365 Project Operations +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,D365_ProjectOperationsCDSAttach,e564d403-7eaf-4c91-b92f-bb0dc62026e1,Dynamics 365 Project Operations CDS Attach +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,D365_ProjectOperations,69f07c66-bee4-4222-b051-195095efee5b,Dynamics 365 Project Operations +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,D365_ProjectOperationsAttach,fa7675bd-6717-40e7-8172-d0bbcbe1ab12,Dynamics 365 Project Operations Attach +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,PROJECT_FOR_PROJECT_OPERATIONS_ATTACH,6d8e07c6-9613-484f-8cc1-a66c5c3979bb,Project for Project Operations Attach +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1d8c8e0e-4308-4db5-8a41-b129dbdaea20,Dynamics 365 for Project Service Automation for Government +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,Forms_Pro_PS_GCC,e98256c5-17d0-4987-becc-e991c52d55c6,Microsoft Dynamics 365 Customer Voice for Project Service Automation for GCC +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1d8c8e0e-4308-4db5-8a41-b129dbdaea20,Dynamics 365 for Project Service Automation for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,Forms_Pro_PS_GCC,e98256c5-17d0-4987-becc-e991c52d55c6,Microsoft Dynamics 365 Customer Voice for Project Service Automation for GCC +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,DYN365_ENTERPRISE_P1,d56f3deb-50d8-465a-bedb-f079817ccac1,DYNAMICS 365 CUSTOMER ENGAGEMENT PLAN +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,MICROSOFT SOCIAL ENGAGEMENT - SERVICE DISCONTINUATION +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,PROJECT ONLINE ESSENTIALS +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,DYN365_ENTERPRISE_SALES,2da8e897-7791-486b-b08f-cc63c8129df7,DYNAMICS 365 FOR SALES +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,MICROSOFT SOCIAL ENGAGEMENT - SERVICE DISCONTINUATION +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,PROJECT ONLINE ESSENTIALS +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,DYN365_ENTERPRISE_SALES_GOV,213be507-d547-4f79-bc2c-6196bc54c4a3,Dynamics 365 for Sales for Government +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,DYN365_ENTERPRISE_SALES_GOV,213be507-d547-4f79-bc2c-6196bc54c4a3,Dynamics 365 for Sales for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,Forms_Pro_SalesEnt_GCC,33850b82-0a37-4ebb-a0b2-ee163facd716,Microsoft Dynamics 365 Customer Voice for Sales Enterprise for GCC +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,Microsoft_Viva_Sales_PremiumTrial,8ba1ff15-7bf6-4620-b65c-ecedb6942766,Microsoft Viva Sales Premium & Trial +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,Microsoft_Viva_Sales_PowerAutomate,a933a62f-c3fb-48e5-a0b7-ac92b94b4420,Microsoft Viva Sales Premium with Power Automate +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,DYN365_ENTERPRISE_P1,d56f3deb-50d8-465a-bedb-f079817ccac1,Dynamics 365 Customer Engagement Plan +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,Forms_Pro_Service,67bf4812-f90b-4db9-97e7-c0bbbf7b2d09,Microsoft Dynamics 365 Customer Voice for Customer Service Enterprise +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,DYN365_SALES_INSIGHTS,fedc185f-0711-4cc0-80ed-0a92da1a8384,Dynamics 365 AI for Sales (Embedded) +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,Microsoft_Viva_Sales_PowerAutomate,a933a62f-c3fb-48e5-a0b7-ac92b94b4420,Microsoft Viva Sales Premium with Power Automate +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,Microsoft_Viva_Sales_PremiumTrial,8ba1ff15-7bf6-4620-b65c-ecedb6942766,Microsoft Viva Sales Premium & Trial +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,Forms_Pro_SalesEnt,8839ef0e-91f1-4085-b485-62e06e7c7987,Microsoft Dynamics 365 Customer Voice for Sales Enterprise +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,DYN365_ENTERPRISE_SALES,2da8e897-7791-486b-b08f-cc63c8129df7,Dynamics 365 for Sales +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,DYN365_CDS_SUPPLYCHAINMANAGEMENT,b6a8b974-2956-4e14-ae81-f0384c363528,Common Data Service for Dynamics 365 Supply Chain Management +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,CDS_FOR_IOM,2bb89402-51e9-4c5a-be33-e954a9dd1ba6,Dataverse for IOM +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,D365_SCM_Attach,b21c777f-c2d5-486e-88f6-fc0a3e474271,Dynamics 365 for Supply Chain Management Attach +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Business Edition,DYN365_BUSINESS_MARKETING,238e2f8d-e429-4035-94db-6926be4ffe7b,DYN365_BUSINESS_Marketing,393a0c96-9ba1-4af0-8975-fa2f853a25ac,Dynamics 365 Marketing +Dynamics 365 for Marketing Business Edition,DYN365_BUSINESS_MARKETING,238e2f8d-e429-4035-94db-6926be4ffe7b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Regulatory Service - Enterprise Edition Trial,DYN365_REGULATORY_SERVICE,7ed4877c-0863-4f69-9187-245487128d4f,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,Dynamics 365 for Finance and Operations Enterprise edition - Regulatory Service +Dynamics 365 Regulatory Service - Enterprise Edition Trial,DYN365_REGULATORY_SERVICE,7ed4877c-0863-4f69-9187-245487128d4f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,DYN365_SALES_ENTERPRISE_VIRAL_TRIAL,7f636c80-0961-41b2-94da-9642ccf02de0,Dynamics 365 Sales Enterprise vTrial +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,DYN365_SALES_INSIGHTS_VIRAL_TRIAL,456747c0-cf1e-4b0d-940f-703a01b964cc,Dynamics 365 Sales Insights vTrial +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,POWER_APPS_DYN365_VIRAL_TRIAL,54b37829-818e-4e3c-a08a-3ea66ab9b45d,Power Apps for Dynamics 365 vTrial +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,POWER_AUTOMATE_DYN365_VIRAL_TRIAL,81d4ecb8-0481-42fb-8868-51536c5aceeb,Power Automate for Dynamics 365 vTrial +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,DYN365_SALES_PRO,88d83950-ff78-4e85-aa66-abfc787f8090,Dynamics 365 for Sales Professional +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,POWERAPPS_SALES_PRO,6f9f70ce-138d-49f8-bb8b-2e701b7dde75,Power Apps for Sales Pro +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,PROJECT_ESSENTIALS,f944d685-f762-4371-806d-a1f48e5bea13,Project Online Essentials +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2)Dynamics 365 for Sales Pro Attach +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,DYN365_SALES_PRO_GOV,dd89efa0-5a55-4892-ba30-82e3f8008339,Dynamics 365 for Sales Professional for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,POWERAPPS_SALES_PRO_GOV,12cf31f8-754f-4efe-87a8-167c19e30831,Power Apps for Sales Pro for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,FLOW_SALES_PRO_GOV,e62ffe5b-7612-441f-a72d-c11cf456d33a,Power Automate for Sales Pro for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 For Sales Professional Trial,D365_SALES_PRO_IW,9c7bff7a-3715-4da7-88d3-07f57f8d0fb6,D365_SALES_PRO_IW,73f205fc-6b15-47a5-967e-9e64fdf72d0a,Dynamics 365 for Sales Professional Trial +Dynamics 365 For Sales Professional Trial,D365_SALES_PRO_IW,9c7bff7a-3715-4da7-88d3-07f57f8d0fb6,D365_SALES_PRO_IW_Trial,db39a47e-1f4f-462b-bf5b-2ec471fb7b88,Dynamics 365 for Sales Professional Trial +Dynamics 365 Sales Professional Attach to Qualifying Dynamics 365 Base Offer,D365_SALES_PRO_ATTACH,245e6bf9-411e-481e-8611-5c08595e2988,D365_SALES_PRO_ATTACH,065f3c64-0649-4ec7-9f47-ef5cf134c751,Dynamics 365 for Sales Pro Attach +Dynamics 365 Sales Professional Attach to Qualifying Dynamics 365 Base Offer,D365_SALES_PRO_ATTACH,245e6bf9-411e-481e-8611-5c08595e2988,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,DYN365_CDS_SUPPLYCHAINMANAGEMENT,b6a8b974-2956-4e14-ae81-f0384c363528,COMMON DATA SERVICE FOR DYNAMICS 365 SUPPLY CHAIN MANAGEMENT +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,DYNAMICS 365 FOR FINANCE AND OPERATIONS ENTERPRISE EDITION - REGULATORY SERVICE +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,D365_SCM,1224eae4-0d91-474a-8a52-27ec96a63fe7,DYNAMICS 365 FOR SUPPLY CHAIN MANAGEMENT +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,DYN365_CDS_SUPPLYCHAINMANAGEMENT,b6a8b974-2956-4e14-ae81-f0384c363528,Common Data Service for Dynamics 365 Supply Chain Management +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,FLOW_FOR_IOM_USL,9e6d1620-dce9-4655-8933-af8fa5bccc9c,Data Integration for IOM with Power Automate USL +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,CDS_FOR_IOM,2bb89402-51e9-4c5a-be33-e954a9dd1ba6,Dataverse for IOM +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,D365_DemandPlanning,e8b616eb-1a6d-42b4-84c7-b63870791349,DO NOT USE - Dynamics 365 Supply Chain Management Premium +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,D365_SCM,1224eae4-0d91-474a-8a52-27ec96a63fe7,Dynamics 365 for Supply Chain Management +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,DYN365_IOM,616cf6e2-f52f-4738-b463-10003061fcd3,Dynamics 365 Intelligent Order Management +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,DYN365_IOM_USER,81375e2f-5ef7-4773-96aa-e3279f50bd21,Dynamics 365 Intelligent Order Management USL +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,D365_SCM_Premium,0363c8e5-c30d-4d7c-a621-7b6cab5e0482,Dynamics 365 Supply Chain Management Premium +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,DYN365_CDS_DYN_APPS,2d925ad8-2479-4bd8-bb76-5b80f1d48935,Common Data Service +Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,Dynamics_365_Hiring_Free_PLAN,f815ac79-c5dd-4bcc-9b78-d97f7b817d0d,Dynamics 365 for Talent: Attract +Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,Dynamics_365_Onboarding_Free_PLAN,300b8114-8555-4313-b861-0c115d820f50,Dynamics 365 for Talent: Onboard +Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,Dynamics_365_for_HCM_Trial,5ed38b64-c3b7-4d9f-b1cd-0de18c9c4331,Dynamics 365 for HCM Trial +Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Flow for Dynamics 365 +Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,PowerApps for Dynamics 365 +Dynamics 365 Talent: Attract,Dynamics_365_Hiring_SKU,e561871f-74fa-4f02-abee-5b0ef54dd36d,DYN365_CDS_DYN_APPS,2d925ad8-2479-4bd8-bb76-5b80f1d48935,Common Data Service +Dynamics 365 Talent: Attract,Dynamics_365_Hiring_SKU,e561871f-74fa-4f02-abee-5b0ef54dd36d,Dynamics_365_Hiring_Free_PLAN,f815ac79-c5dd-4bcc-9b78-d97f7b817d0d,Dynamics 365 for Talent: Attract +Dynamics 365 Talent: Attract,Dynamics_365_Hiring_SKU,e561871f-74fa-4f02-abee-5b0ef54dd36d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,Dynamics_365_for_Retail_Team_members,c0454a3d-32b5-4740-b090-78c32f48f0ad,Dynamics 365 for Retail Team members +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYN365_Enterprise_Talent_Attract_TeamMember,643d201a-9884-45be-962a-06ba97062e5e,Dynamics 365 for Talent - Attract Experience Team Member +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYN365_Enterprise_Talent_Onboard_TeamMember,f2f49eef-4b3f-4853-809a-a055c6103fe0,Dynamics 365 for Talent - Onboard Experience +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,Dynamics_365_for_Talent_Team_members,d5156635-0704-4f66-8803-93258f8b2678,Dynamics 365 for Talent Team members +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYN365_ENTERPRISE_TEAM_MEMBERS,6a54b05e-4fab-40e7-9828-428db3b336fa,Dynamics 365 for Team Members +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,Dynamics_365_for_Operations_Team_members,f5aa7b45-8a36-4cd1-bc37-5d06dea98645,Dynamics_365_for_Operations_Team_members +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Dynamics 365 Remote Assist +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,POWERAPPS_DYN_TEAM,52e619e2-2730-439a-b0d3-d09ab7e8b705,Power Apps for Dynamics 365 +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,FLOW_DYN_TEAM,1ec58c70-f69c-486a-8109-4b87ce86e449,Power Automate for Dynamics 365 +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,5a94d0aa-ee95-455a-bb38-326e5f134478,Dynamics 365 for Team Members for Government +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,FLOW_DYN_TEAM_GOV,47bdde6a-959f-4c7f-8d59-3243e34f1cb3,Power Automate for Dynamics 365 Team Members for Government +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,POWERAPPS_DYN_TEAM_GOV,63efc247-5f28-43e3-a2f8-00c183e3f1db,PowerApps for Dynamics 365 Team Members for Government +Dynamics 365 Guides,GUIDES_USER,0a389a77-9850-4dc4-b600-bc66fdfefc60,DYN365_CDS_GUIDES,1315ade1-0410-450d-b8e3-8050e6da320f,Common Data Service +Dynamics 365 Guides,GUIDES_USER,0a389a77-9850-4dc4-b600-bc66fdfefc60,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides +Dynamics 365 Guides,GUIDES_USER,0a389a77-9850-4dc4-b600-bc66fdfefc60,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides +Dynamics 365 Operations - Device,Dynamics_365_for_Operations_Devices,3bbd44ed-8a70-4c07-9088-6232ddbd5ddd,DYN365_RETAIL_DEVICE,ceb28005-d758-4df7-bb97-87a617b93d6c,Dynamics 365 for Retail Device +Dynamics 365 Operations - Device,Dynamics_365_for_Operations_Devices,3bbd44ed-8a70-4c07-9088-6232ddbd5ddd,Dynamics_365_for_OperationsDevices,2c9fb43e-915a-4d61-b6ca-058ece89fd66,Dynamics 365 for Operations Devices +Dynamics 365 Operations - Device,Dynamics_365_for_Operations_Devices,3bbd44ed-8a70-4c07-9088-6232ddbd5ddd,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Operations - Sandbox Tier 2:Standard Acceptance Testing,Dynamics_365_for_Operations_Sandbox_Tier2_SKU,e485d696-4c87-4aac-bf4a-91b2fb6f0fa7,Dynamics_365_for_Operations_Sandbox_Tier2,d8ba6fb2-c6b1-4f07-b7c8-5f2745e36b54,Dynamics 365 for Operations non-production multi-box instance for standard acceptance testing (Tier 2) +Dynamics 365 Operations - Sandbox Tier 2:Standard Acceptance Testing,Dynamics_365_for_Operations_Sandbox_Tier2_SKU,e485d696-4c87-4aac-bf4a-91b2fb6f0fa7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Operations - Sandbox Tier 4:Standard Performance Testing,Dynamics_365_for_Operations_Sandbox_Tier4_SKU,f7ad4bca-7221-452c-bdb6-3e6089f25e06,Dynamics_365_for_Operations_Sandbox_Tier4,f6b5efb1-1813-426f-96d0-9b4f7438714f,Dynamics 365 for Operations Enterprise Edition - Sandbox Tier 4:Standard Performance Testing +Dynamics 365 Operations - Sandbox Tier 4:Standard Performance Testing,Dynamics_365_for_Operations_Sandbox_Tier4_SKU,f7ad4bca-7221-452c-bdb6-3e6089f25e06,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 P1 Tria for Information Workers,DYN365_ENTERPRISE_P1_IW,338148b6-1b11-4102-afb9-f92b6cdc0f8d,DYN365_ENTERPRISE_P1_IW,056a5f80-b4e0-4983-a8be-7ad254a113c9,DYNAMICS 365 P1 TRIAL FOR INFORMATION WORKERS +Dynamics 365 P1 Tria for Information Workers,DYN365_ENTERPRISE_P1_IW,338148b6-1b11-4102-afb9-f92b6cdc0f8d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,D365CDSforProjectOperations,7df1d500-ca5c-4229-8cea-815bc88798c9,Common Data Service for Dynamics 365 Project Operations +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,D365_ProjectOperationsCDS,18fa3aba-b085-4105-87d7-55617b8585e6,Dynamics 365 Project Operations CDS +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,D365_ProjectOperations,69f07c66-bee4-4222-b051-195095efee5b,Dynamics 365 Project Operations +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,PROJECT_FOR_PROJECT_OPERATIONS,0a05d977-a21a-45b2-91ce-61c240dbafa2,Project for Project Operations +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Dynamics 365 Remote Assist,MICROSOFT_REMOTE_ASSIST,7a551360-26c4-4f61-84e6-ef715673e083,CDS_REMOTE_ASSIST,0850ebb5-64ee-4d3a-a3e1-5a97213653b5,Common Data Service for Remote Assist +Dynamics 365 Remote Assist,MICROSOFT_REMOTE_ASSIST,7a551360-26c4-4f61-84e6-ef715673e083,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Microsoft Remote Assist +Dynamics 365 Remote Assist,MICROSOFT_REMOTE_ASSIST,7a551360-26c4-4f61-84e6-ef715673e083,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Dynamics 365 Remote Assist HoloLens,MICROSOFT_REMOTE_ASSIST_HOLOLENS,e48328a2-8e98-4484-a70f-a99f8ac9ec89,CDS_REMOTE_ASSIST,0850ebb5-64ee-4d3a-a3e1-5a97213653b5,Common Data Service for Remote Assist +Dynamics 365 Remote Assist HoloLens,MICROSOFT_REMOTE_ASSIST_HOLOLENS,e48328a2-8e98-4484-a70f-a99f8ac9ec89,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Microsoft Remote Assist +Dynamics 365 Remote Assist HoloLens,MICROSOFT_REMOTE_ASSIST_HOLOLENS,e48328a2-8e98-4484-a70f-a99f8ac9ec89,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Dynamics 365 Sales Enterprise Attach to Qualifying Dynamics 365 Base Offer,D365_SALES_ENT_ATTACH,5b22585d-1b71-4c6b-b6ec-160b1a9c2323,D365_SALES_ENT_ATTACH,3ae52229-572e-414f-937c-ff35a87d4f29,Dynamics 365 for Sales Enterprise Attach +Dynamics 365 Sales Enterprise Attach to Qualifying Dynamics 365 Base Offer,D365_SALES_ENT_ATTACH,5b22585d-1b71-4c6b-b6ec-160b1a9c2323,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Talent: Onboard,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,DYN365_CDS_DYN_APPS,2d925ad8-2479-4bd8-bb76-5b80f1d48935,COMMON DATA SERVICE +Dynamics 365 Talent: Onboard,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,Dynamics_365_Onboarding_Free_PLAN,300b8114-8555-4313-b861-0c115d820f50,DYNAMICS 365 FOR TALENT: ONBOARD +Dynamics 365 Talent: Onboard,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,Dynamics_365_Talent_Onboard,048a552e-c849-4027-b54c-4c7ead26150a,DYNAMICS 365 FOR TALENT: ONBOARD +Dynamics 365 Talent: Onboard,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,Dynamics_365_for_Retail_Team_members,c0454a3d-32b5-4740-b090-78c32f48f0ad,Dynamics 365 for Retail Team members +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYN365_Enterprise_Talent_Attract_TeamMember,643d201a-9884-45be-962a-06ba97062e5e,Dynamics 365 for Talent - Attract Experience Team Member +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYN365_Enterprise_Talent_Onboard_TeamMember,f2f49eef-4b3f-4853-809a-a055c6103fe0,Dynamics 365 for Talent - Onboard Experience +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,Dynamics_365_for_Talent_Team_members,d5156635-0704-4f66-8803-93258f8b2678,Dynamics 365 for Talent Team members +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYN365_TEAM_MEMBERS,4092fdb5-8d81-41d3-be76-aaba4074530b,Dynamics 365 Team Members +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,Dynamics_365_for_Operations_Team_members,f5aa7b45-8a36-4cd1-bc37-5d06dea98645,Dynamics_365_for_Operations_Team_members +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Dynamics 365 Remote Assist +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,POWERAPPS_DYN_TEAM,52e619e2-2730-439a-b0d3-d09ab7e8b705,Power Apps for Dynamics 365 +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,FLOW_DYN_TEAM,1ec58c70-f69c-486a-8109-4b87ce86e449,Power Automate for Dynamics 365 +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,DDYN365_CDS_DYN_P2,d1142cfd-872e-4e77-b6ff-d98ec5a51f66,COMMON DATA SERVICE +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,DYN365_TALENT_ENTERPRISE,65a1ebf4-6732-4f00-9dcb-3d115ffdeecd,DYNAMICS 365 FOR TALENT +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,Dynamics_365_for_Operations,95d2cd7b-1007-484b-8595-5e97e63fe189,DYNAMICS 365 FOR_OPERATIONS +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,Dynamics_365_for_Retail,a9e39199-8369-444b-89c1-5fe65ec45665,DYNAMICS 365 FOR RETAIL +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,DYNAMICS_365_HIRING_FREE_PLAN,f815ac79-c5dd-4bcc-9b78-d97f7b817d0d,DYNAMICS 365 HIRING FREE PLAN +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,Dynamics_365_Onboarding_Free_PLAN,300b8114-8555-4313-b861-0c115d820f50,DYNAMICS 365 FOR TALENT: ONBOARD +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,FLOW_DYN_P2,b650d915-9886-424b-a08d-633cede56f57,FLOW FOR DYNAMICS 36 +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,POWERAPPS_DYN_P2,0b03f40b-c404-40c3-8651-2aceb74365fa,POWERAPPS FOR DYNAMICS 365 +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,AAD_EDU,3a3976ce-de18-4a87-a78e-5e9245e252df,Microsoft Entra ID for Education +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,WINDOWS_STORE,a420f25f-a7b3-4ff5-a9d0-5d58f73b537d,Windows Store Service +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,AZURE INFORMATION PROTECTION PREMIUM P1 +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,CLOUD APP SECURITY DISCOVERY +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra RIGHTS +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,AZURE INFORMATION PROTECTION PREMIUM P1 +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,AZURE INFORMATION PROTECTION PREMIUM P2 +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra RIGHTS +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,MICROSOFT CLOUD APP SECURITY +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,MICROSOFT DEFENDER FOR IDENTITY +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Cloud App Security Discovery +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra Rights +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,RMS_S_ENTERPRISE),bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra Rights +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Exchange Enterprise CAL Services (EOP DLP),EOP_ENTERPRISE_PREMIUM,e8ecdf70-47a8-4d39-9d15-093624b7f640,EOP_ENTERPRISE_PREMIUM,75badc48-628e-4446-8460-41344d73abd6,Exchange Enterprise CAL Services (EOP DLP) +Exchange Enterprise CAL Services (EOP DLP),EOP_ENTERPRISE_PREMIUM,e8ecdf70-47a8-4d39-9d15-093624b7f640,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra Rights +Exchange Online (Plan 1),EXCHANGESTANDARD,4b9405b0-7788-4568-add1-99614e613b69,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Exchange Online (Plan 1),EXCHANGESTANDARD,4b9405b0-7788-4568-add1-99614e613b69,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Exchange Online (Plan 1),EXCHANGESTANDARD,4b9405b0-7788-4568-add1-99614e613b69,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Exchange Online (Plan 1) for Alumni with Yammer,EXCHANGESTANDARD_ALUMNI,aa0f9eb7-eff2-4943-8424-226fb137fcad,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Exchange Online (Plan 1) for Alumni with Yammer,EXCHANGESTANDARD_ALUMNI,aa0f9eb7-eff2-4943-8424-226fb137fcad,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Exchange Online (Plan 1) for Alumni with Yammer,EXCHANGESTANDARD_ALUMNI,aa0f9eb7-eff2-4943-8424-226fb137fcad,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Exchange Online (Plan 1) for Students,EXCHANGESTANDARD_STUDENT,ad2fe44a-915d-4e2b-ade1-6766d50a9d9c,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Exchange Online (Plan 1) for Students,EXCHANGESTANDARD_STUDENT,ad2fe44a-915d-4e2b-ade1-6766d50a9d9c,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Exchange Online (Plan 1) for Students,EXCHANGESTANDARD_STUDENT,ad2fe44a-915d-4e2b-ade1-6766d50a9d9c,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Exchange Online (Plan 1) for Students,EXCHANGESTANDARD_STUDENT,ad2fe44a-915d-4e2b-ade1-6766d50a9d9c,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Exchange Online (Plan 1) for GCC,EXCHANGESTANDARD_GOV,f37d5ebf-4bf1-4aa2-8fa3-50c51059e983,EXCHANGE_S_STANDARD_GOV,e9b4930a-925f-45e2-ac2a-3f7788ca6fdd,Exchange Online (Plan 1) for Government +Exchange Online (Plan 1) for GCC,EXCHANGESTANDARD_GOV,f37d5ebf-4bf1-4aa2-8fa3-50c51059e983,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Exchange Online (Plan 2) for GCC,EXCHANGEENTERPRISE_GOV,7be8dc28-4da4-4e6d-b9b9-c60f2806df8a,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Exchange Online (Plan 2) for GCC,EXCHANGEENTERPRISE_GOV,7be8dc28-4da4-4e6d-b9b9-c60f2806df8a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Exchange Online (Plan 2),EXCHANGEENTERPRISE,19ec0d23-8335-4cbd-94ac-6050e30712fa,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,EXCHANGE ONLINE (PLAN 2) +Exchange Online (Plan 2) for Faculty,EXCHANGEENTERPRISE_FACULTY,0b7b15a8-7fd2-4964-bb96-5a566d4e3c15,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Exchange Online (Plan 2) for Faculty,EXCHANGEENTERPRISE_FACULTY,0b7b15a8-7fd2-4964-bb96-5a566d4e3c15,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Exchange Online (Plan 2) for Faculty,EXCHANGEENTERPRISE_FACULTY,0b7b15a8-7fd2-4964-bb96-5a566d4e3c15,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Exchange Online (Plan 2) for Faculty,EXCHANGEENTERPRISE_FACULTY,0b7b15a8-7fd2-4964-bb96-5a566d4e3c15,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Exchange Online Archiving for Exchange Online,EXCHANGEARCHIVE_ADDON,ee02fd1b-340e-4a4b-b355-4a514e4c8943,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,EXCHANGE ONLINE ARCHIVING FOR EXCHANGE ONLINE +Exchange Online Archiving for Exchange Server,EXCHANGEARCHIVE,90b5e015-709a-4b8b-b08e-3200f994494c,EXCHANGE_S_ARCHIVE,da040e0a-b393-4bea-bb76-928b3fa1cf5a,EXCHANGE ONLINE ARCHIVING FOR EXCHANGE SERVER +Exchange Online Essentials (ExO P1 Based),EXCHANGEESSENTIALS,7fc0182e-d107-4556-8329-7caaa511197b,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Exchange Online Essentials,EXCHANGE_S_ESSENTIALS,e8f81a67-bd96-4074-b108-cf193eb9433b,EXCHANGE_S_ESSENTIALS,1126bef5-da20-4f07-b45e-ad25d2581aa8,EXCHANGE ESSENTIALS +Exchange Online Essentials,EXCHANGE_S_ESSENTIALS,e8f81a67-bd96-4074-b108-cf193eb9433b,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,TO-DO (PLAN 1) +Exchange Online Kiosk,EXCHANGEDESKLESS,80b2d799-d2ba-4d2a-8842-fb0d0f3a4b82,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,EXCHANGE ONLINE KIOSK +Exchange Online POP,EXCHANGETELCO,cb0a98a8-11bc-494c-83d9-c1b1ac65327e,EXCHANGE_B_STANDARD,90927877-dcff-4af6-b346-2332c0b15bb7,EXCHANGE ONLINE POP +Exchange Online Protection,EOP_ENTERPRISE,45a2423b-e884-448d-a831-d9e139c52d2f,EOP_ENTERPRISE,326e2b78-9d27-42c9-8509-46c827743a17,Exchange Online Protection +Flow Plan 1 for Government,FLOW_P1_GOV,2b3b0c87-36af-4d15-8124-04a691cc2546,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Flow Plan 1 for Government,FLOW_P1_GOV,2b3b0c87-36af-4d15-8124-04a691cc2546,DYN365_CDS_P1_GOV,ce361df2-f2a5-4713-953f-4050ba09aad8,Common Data Service for Government +Flow Plan 1 for Government,FLOW_P1_GOV,2b3b0c87-36af-4d15-8124-04a691cc2546,FLOW_P1_GOV,774da41c-a8b3-47c1-8322-b9c1ab68be9f,Power Automate (Plan 1) for Government +Intune,INTUNE_A,061f9ace-7d42-4136-88ac-31dc755f143f,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE +Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,AAD_EDU,3a3976ce-de18-4a87-a78e-5e9245e252df,Microsoft Entra ID for Education +Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,WINDOWS_STORE,a420f25f-a7b3-4ff5-a9d0-5d58f73b537d,Windows Store Service +Microsoft Dynamics AX7 User Trial,AX7_USER_TRIAL,fcecd1f9-a91e-488d-a918-a96cdb6ce2b0,ERP_TRIAL_INSTANCE,e2f705fd-2468-4090-8c58-fad6e6b1e724,Dynamics 365 Operations Trial Environment +Microsoft Dynamics AX7 User Trial,AX7_USER_TRIAL,fcecd1f9-a91e-488d-a918-a96cdb6ce2b0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Dynamics CRM Online Basic for Government,CRMPLAN2_GCC,3856cd1b-8033-458e-8d0f-9909ec6e6e6d,CRMPLAN2_GCC,3d53f6d9-d6e0-45c1-9575-6acd77692584,Microsoft Dynamics CRM Online Government Basic +Microsoft Dynamics CRM Online Basic for Government,CRMPLAN2_GCC,3856cd1b-8033-458e-8d0f-9909ec6e6e6d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Dynamics CRM Online Basic for Government,CRMPLAN2_GCC,3856cd1b-8033-458e-8d0f-9909ec6e6e6d,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Microsoft Dynamics CRM Online Basic for Government,CRMPLAN2_GCC,3856cd1b-8033-458e-8d0f-9909ec6e6e6d,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Microsoft Dynamics CRM Online for Government,CRMSTANDARD_GCC,ba051a1a-4c3d-4ccd-9890-6fa6a4e696e7,CRMSTANDARD_GCC,2b8c7c8c-9db5-44a5-a1dd-f4aa5b97b372,Microsoft Dynamics CRM Online Professional for Government +Microsoft Dynamics CRM Online for Government,CRMSTANDARD_GCC,ba051a1a-4c3d-4ccd-9890-6fa6a4e696e7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Dynamics CRM Online for Government,CRMSTANDARD_GCC,ba051a1a-4c3d-4ccd-9890-6fa6a4e696e7,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Microsoft Dynamics CRM Online for Government,CRMSTANDARD_GCC,ba051a1a-4c3d-4ccd-9890-6fa6a4e696e7,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Microsoft Azure Multi-Factor Authentication,MFA_STANDALONE,cb2020b1-d8f6-41c0-9acd-8ff3d6d7831b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Azure Multi-Factor Authentication,MFA_STANDALONE,cb2020b1-d8f6-41c0-9acd-8ff3d6d7831b,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft Defender for Office 365 (Plan 2),THREAT_INTELLIGENCE,3dd6cf57-d688-4eed-ba52-9e40b5468c3e,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft Defender for Office 365 (Plan 2),THREAT_INTELLIGENCE,3dd6cf57-d688-4eed-ba52-9e40b5468c3e,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft Defender for Office 365 (Plan 2),THREAT_INTELLIGENCE,3dd6cf57-d688-4eed-ba52-9e40b5468c3e,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 A1,M365EDU_A1,b17653a4-2443-4e8c-a550-18249dda78bb,AAD_EDU,3a3976ce-de18-4a87-a78e-5e9245e252df,Microsoft Entra ID for Education +Microsoft 365 A1,M365EDU_A1,b17653a4-2443-4e8c-a550-18249dda78bb,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Intune for Education +Microsoft 365 A1,M365EDU_A1,b17653a4-2443-4e8c-a550-18249dda78bb,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A1,M365EDU_A1,b17653a4-2443-4e8c-a550-18249dda78bb,WINDOWS_STORE,a420f25f-a7b3-4ff5-a9d0-5d58f73b537d,Windows Store Service +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,UNIVERSAL_PRINT_NO_SEEDING,b67adbaf-a096-42c9-967e-5a84edbe0086,Universal Print Without Seeding +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A3 Suite features for faculty,Microsoft 365 A3 Suite features for faculty,32a0e471-8a27-4167-b24f-941559912425,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 A3 Suite features for faculty,Microsoft 365 A3 Suite features for faculty,32a0e471-8a27-4167-b24f-941559912425,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune Plan 1 for Education +Microsoft 365 A3 Suite features for faculty,Microsoft 365 A3 Suite features for faculty,32a0e471-8a27-4167-b24f-941559912425,REMOTE_HELP,a4c6cf29-1168-4076-ba5c-e8fe0e62b17e,Remote help +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,OFFICESUBSCRIPTION_unattended,8d77e2d9-9e28-4450-8431-0def64078fc5,Microsoft 365 Apps for Enterprise (Unattended) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,UNIVERSAL_PRINT_NO_SEEDING,b67adbaf-a096-42c9-967e-5a84edbe0086,Universal Print Without Seeding +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,COMMON_DEFENDER_PLATFORM_FOR_OFFICE,a312bdeb-1e21-40d0-84b1-0e73f128144f,Defender Platform for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,Microsoft Insider Risk Management - Exchange +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Retired - Microsoft Data Investigations +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Intune_ServiceNow,3eeb8536-fecf-41bf-a3f8-d6f17a9f3efc,Intune ServiceNow Integration +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune Plan 1 for Education +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,REMOTE_HELP,a4c6cf29-1168-4076-ba5c-e8fe0e62b17e,Remote help +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,COMMON_DEFENDER_PLATFORM_FOR_OFFICE,a312bdeb-1e21-40d0-84b1-0e73f128144f,Defender Platform for Office 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,Microsoft Insider Risk Management - Exchange +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Retired - Microsoft Data Investigations +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Intune_ServiceNow,3eeb8536-fecf-41bf-a3f8-d6f17a9f3efc,Intune ServiceNow Integration +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune Plan 1 for Education +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,REMOTE_HELP,a4c6cf29-1168-4076-ba5c-e8fe0e62b17e,Remote help +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,UNIVERSAL_PRINT_NO_SEEDING,b67adbaf-a096-42c9-967e-5a84edbe0086,Universal Print Without Seeding +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics – Premium +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune Plan 1 for Education +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for EDU +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service - O365 P3 +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Intune for Education +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the web (Education) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint Plan 2 for EDU +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,UNIVERSAL_PRINT_NO_SEEDING,b67adbaf-a096-42c9-967e-5a84edbe0086,Universal Print Without Seeding +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,OFFICE 365 BUSINESS +Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,ONEDRIVESTANDARD +Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,OFFICE 365 BUSINESS +Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,ONEDRIVESTANDARD +Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,OneDrive for Business (Plan 1) +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 Apps for enterprise (device),OFFICE_PROPLUS_DEVICE1,ea4c5ec8-50e3-4193-89b9-50da5bd4cdc7,OFFICE_PROPLUS_DEVICE,3c994f28-87d5-4273-b07a-eb6190852599,Microsoft 365 Apps for Enterprise (Device) +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,OneDrive for Business (Plan 1) +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,OneDrive for Business (Plan 1) +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 Audio Conferencing for faculty,MCOMEETADV_FACULTY,c2cda955-3359-44e5-989f-852ca0cfa02f,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Audio Conferencing for GCC,MCOMEETADV_GOV,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,EXCHANGE_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT +Microsoft 365 Audio Conferencing for GCC,MCOMEETADV_GOV,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,MICROSOFT 365 AUDIO CONFERENCING FOR GOVERNMENT +Microsoft 365 Audio Conferencing_USGOV_GCCHIGH,MCOMEETADV_USGOV_GCCHIGH,4dee1f32-0808-4fd2-a2ed-fdd575e3a45f,MCOMEETADV_AR_GCCHigh,f1e3613f-3818-4254-9b5e-f02d803384e0,Microsoft 365 Audio Conferencing for GCCHigh +Microsoft 365 Audio Conferencing - GCCHigh Tenant (AR)_USGOV_GCCHIGH,MCOACBYOT_AR_GCCHIGH_USGOV_GCCHIGH,170ba00c-38b2-468c-a756-24c05037160a,MCOACBYOT_GCCHigh,c85e4b03-254a-453b-af72-167a53f38530,Microsoft 365 Audio Conferencing - GCCHigh Tenant +Microsoft 365 Audio Conferencing Pay-Per-Minute - EA,MCOMEETACPEA,df9561a4-4969-4e6a-8e73-c601b68ec077,MCOMEETACPEA,bb038288-76ab-49d6-afc1-eaa6c222c65a,Microsoft 365 Audio Conferencing Pay-Per-Minute +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,OFFICEMOBILE_SUBSCRIPTION +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,TO-DO (PLAN 1) +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,OFFICEMOBILE_SUBSCRIPTION +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,YAMMER_MIDSIZE,41bf139a-4e60-409f-9346-a1361efc6dfb,YAMMER MIDSIZE +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for Business +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,MICROSOFTBOOKINGS +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,OUTLOOK CUSTOMER MANAGER +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,OFFICE 365 BUSINESS +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,YAMMER_MIDSIZE,41bf139a-4e60-409f-9346-a1361efc6dfb,YAMMER_MIDSIZE +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,OFFICE_SHARED_COMPUTER_ACTIVATION,276d6e8a-f056-4f70-b7e8-4fc27f79f809,Office Shared Computer Activation +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,WINBIZ,8e229017-d77b-43d5-9305-903395523b99,Windows 10/11 Business +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Azure Active Directory +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,Microsoft Intune +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for Business +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,Microsoft Intune +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,OFFICE_SHARED_COMPUTER_ACTIVATION,276d6e8a-f056-4f70-b7e8-4fc27f79f809,Office Shared Computer Activation +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,WINBIZ,8e229017-d77b-43d5-9305-903395523b99,Windows 10/11 Business +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Azure Active Directory +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for Business +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,OFFICE_SHARED_COMPUTER_ACTIVATION,276d6e8a-f056-4f70-b7e8-4fc27f79f809,Office Shared Computer Activation +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,WINBIZ,8e229017-d77b-43d5-9305-903395523b99,Windows 10/11 Business +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Azure Active Directory +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,Microsoft Intune +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,OFFICE_SHARED_COMPUTER_ACTIVATION,276d6e8a-f056-4f70-b7e8-4fc27f79f809,Office Shared Computer Activation +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,WINBIZ,8e229017-d77b-43d5-9305-903395523b99,Windows 10/11 Business +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Azure Active Directory +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,Microsoft Intune +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 Business Voice (US),BUSINESS_VOICE_MED2_TELCO,08d7bce8-6e16-490e-89db-1d508e5e9609,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Business Voice (US),BUSINESS_VOICE_MED2_TELCO,08d7bce8-6e16-490e-89db-1d508e5e9609,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,Microsoft 365 Domestic Calling Plan +Microsoft 365 Business Voice (without Calling Plan),BUSINESS_VOICE_DIRECTROUTING,d52db95a-5ecb-46b6-beb0-190ab5cda4a8,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Business Voice (without Calling Plan),BUSINESS_VOICE_DIRECTROUTING,d52db95a-5ecb-46b6-beb0-190ab5cda4a8,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 Business Voice (UK,BUSINESS_VOICE,e5a17adf-8f0d-4b57-bc14-d331235f9307,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Business Voice (UK,BUSINESS_VOICE,e5a17adf-8f0d-4b57-bc14-d331235f9307,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,Microsoft 365 Domestic Calling Plan +Microsoft 365 Business Voice (UK,BUSINESS_VOICE,e5a17adf-8f0d-4b57-bc14-d331235f9307,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 Business Voice (without Calling Plan) for US,BUSINESS_VOICE_DIRECTROUTING_MED,8330dae3-d349-44f7-9cad-1b23c64baabe,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Business Voice (without Calling Plan) for US,BUSINESS_VOICE_DIRECTROUTING_MED,8330dae3-d349-44f7-9cad-1b23c64baabe,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 Business Voice (without Calling Plan),BUSINESS_VOICE_DIRECTROUTING,d52db95a-5ecb-46b6-beb0-190ab5cda4a8,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Business Voice (without Calling Plan),BUSINESS_VOICE_DIRECTROUTING,d52db95a-5ecb-46b6-beb0-190ab5cda4a8,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 Business Voice,BUSINESS_VOICE_MED2,a6051f20-9cbc-47d2-930d-419183bf6cf1,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Business Voice,BUSINESS_VOICE_MED2,a6051f20-9cbc-47d2-930d-419183bf6cf1,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,Microsoft 365 Domestic Calling Plan +Microsoft 365 Business Voice,BUSINESS_VOICE_MED2,a6051f20-9cbc-47d2-930d-419183bf6cf1,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,COPILOT_STUDIO_IN_COPILOT_FOR_M365,fe6c28b3-d468-44ea-bbd0-a10a5167435c,Copilot Studio in Copilot for M365 +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_SHAREPOINT,0aedf20c-091d-420b-aadf-30c042609612,Microsoft 365 Copilot for SharePoint +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft Copilot with Graph-grounded chat +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,COPILOT_STUDIO_IN_COPILOT_FOR_M365,fe6c28b3-d468-44ea-bbd0-a10a5167435c,Copilot Studio in Copilot for M365 +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_SHAREPOINT,0aedf20c-091d-420b-aadf-30c042609612,Microsoft 365 Copilot for SharePoint +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,Microsoft_Copilot_for_Sales,a2194428-ead1-4fc1-bb81-ab8675125f42,Microsoft Copilot for Sales +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,Microsoft_Copilot_for_Sales_PowerAutomate,0c1c2af2-6c51-43c7-9c55-fa487ac147ff,Microsoft Copilot for Sales with Power Automate +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft Copilot with Graph-grounded chat +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,WORKPLACE_ANALYTICS_INSIGHTS_USER,b622badb-1b45-48d5-920f-4b27a2c0996c,Microsoft Viva Insights +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,WORKPLACE_ANALYTICS_INSIGHTS_BACKEND,ff7b261f-d98b-415b-827c-42a3fdf015af,Microsoft Viva Insights Backend +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft Copilot with Graph-grounded chat +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot +Microsoft 365 Domestic Calling Plan (120 minutes) - US,MCOPSTN5_US,d13e9d1b-316a-4946-98c6-362c97a4fdfe,PSTN5_US,1346d5e6-15a6-4b88-9693-806ff7296a7a,Microsoft 365 Domestic Calling Plan - US (120 minutes) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,OFFICESUBSCRIPTION_unattended,8d77e2d9-9e28-4450-8431-0def64078fc5,Microsoft 365 Apps for Enterprise (Unattended) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,OFFICESUBSCRIPTION_unattended,8d77e2d9-9e28-4450-8431-0def64078fc5,Microsoft 365 Apps for Enterprise (Unattended) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,ONEDRIVE_BASIC_P2,4495894f-534f-41ca-9d3b-0ebf1220a423,OneDrive for Business (Basic 2) +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,TEAMS_AR_DOD,fd500458-c24c-478e-856c-a6067a8376cd,Microsoft Teams for DOD (AR) +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Office 365 ProPlus +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office Online +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Cloud App Security Discovery +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh (AR) +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Office 365 ProPlus +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office Online +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,Microsoft Insider Risk Management - Exchange +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PEOPLE_SKILLS_FOUNDATION,13b6da2c-0d84-450e-9f69-a33e221387ca,People Skills - Foundation +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Retired - Microsoft Data Investigations +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,RETIRED - Places Core +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MCOPSTN8,16935b20-87c0-4908-934a-22aa267d0d26,Microsoft 365 Domestic Calling Plan (120 min) at User Level +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,SHAREPOINTENTERPRISE_MIDMARKET,6b5b6a67-fc72-4a1f-a2b5-beecf05de761,SharePoint (Plan 1) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MCOPSTN8,16935b20-87c0-4908-934a-22aa267d0d26,Microsoft 365 Domestic Calling Plan (120 min) at User Level +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MCOMEETADV_AR_GCCHigh,f1e3613f-3818-4254-9b5e-f02d803384e0,Microsoft 365 Audio Conferencing for GCCHigh +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,FORMS_PLAN_E5_AR_GCCHIGH,cf1b2895-e3fd-4b33-9594-2ab924104547,Microsoft Forms (Plan E5) for GCCHigh +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MICROSOFT_SEARCH_GCCH,fc9f7921-4ca5-42c6-8533-1b84c4ee496b,Microsoft Search for Arlington +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,POWERAPPS_O365_P3_GCCHIGH,b50a9096-5b07-4ded-a5e4-a492fb94b6ee,Power Apps for Office 365 for GCCHigh +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,FLOW_O365_P3_GCCHIGH,ee939cf0-7cd1-4262-9f72-9eaa45dbba69,Power Automate for Office 365 for GCCHigh +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Cloud App Security Discovery +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for O365 K SKU +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Online Kiosk +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,FORMS_PLAN_K,f07046bd-2a3c-4b96-b0be-dea79d7cbfb8,Microsoft Forms (Plan F1) +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,KAIZALA_O365_P1,73b2a583-6a59-42e3-8e83-54db46bc3278,Microsoft Kaizala Pro +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,PROJECT_O365_F3,7f6f28c2-34bb-4d4b-be36-48ca2e77e1ec,Project for Office (Plan F) +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,WIN10_ENT_LOC_F1,e041597c-9c7f-4ed9-99b0-2663301576f7,Windows 10 Enterprise E3 (Local Only) +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,POWERAPPS_O365_S1,e0287f9f-e222-4f98-9a83-f379e249159a,Power Apps for Office 365 F3 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,FLOW_O365_S1,bd91b1a4-9f94-4ecf-b45b-3a65e5c8128a,Power Automate for Office 365 F3 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,POWER_VIRTUAL_AGENTS_O365_F1,ba2fdb48-290b-4632-b46a-e4ecc58ac11a,Power Virtual Agents for Office 365 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,FORMS_PLAN_K,f07046bd-2a3c-4b96-b0be-dea79d7cbfb8,Microsoft Forms (Plan F1) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,KAIZALA_O365_P1,73b2a583-6a59-42e3-8e83-54db46bc3278,Microsoft Kaizala Pro +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,TEAMS_DESKLESS,a42de799-58ae-4e6a-aa1d-948e7abec726,Microsoft Teams Kiosk +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,PROJECT_O365_F3,7f6f28c2-34bb-4d4b-be36-48ca2e77e1ec,Project for Office (Plan F) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,WIN10_ENT_LOC_F1,e041597c-9c7f-4ed9-99b0-2663301576f7,Windows 10 Enterprise E3 (Local Only) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,POWERAPPS_O365_S1,e0287f9f-e222-4f98-9a83-f379e249159a,Power Apps for Office 365 F3 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,FLOW_O365_S1,bd91b1a4-9f94-4ecf-b45b-3a65e5c8128a,Power Automate for Office 365 F3 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,POWER_VIRTUAL_AGENTS_O365_F1,ba2fdb48-290b-4632-b46a-e4ecc58ac11a,Power Virtual Agents for Office 365 +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,DYN365_CDS_O365_F1_GCC,29007dd3-36c0-4cc2-935d-f5bca2c2c473,Common Data Service - O365 F1 +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,CDS_O365_F1_GCC,5e05331a-0aec-437e-87db-9ef5934b5771,Common Data Service for Teams_F1 GCC +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,EXCHANGE_S_DESKLESS_GOV,88f4d7ef-a73b-4246-8047-516022144c9f,Exchange Online (Kiosk) for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,FORMS_GOV_F1,bfd4133a-bbf3-4212-972b-60412137c428,Forms for Government (Plan F1) +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,STREAM_O365_K_GOV,d65648f1-9504-46e4-8611-2658763f28b8,Microsoft Stream for O365 for Government (F1) +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,OFFICEMOBILE_SUBSCRIPTION_GOV,4ccb60ee-9523-48fd-8f63-4b090f1ad77a,Office Mobile Apps for Office 365 for GCC +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,POWERAPPS_O365_S1_GOV,49f06c3d-da7d-4fa0-bcce-1458fdd18a59,Power Apps for Office 365 F3 for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,FLOW_O365_S1_GOV,5d32692e-5b24-4a59-a77e-b2a8650e25c1,Power Automate for Office 365 F3 for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,SHAREPOINTDESKLESS_GOV,b1aeb897-3a19-46e2-8c27-a609413cf193,SharePoint KioskG +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,MCOIMP_GOV,8a9f17f1-5872-44e8-9b11-3caade9dc90f,Skype for Business Online (Plan 1) for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,ADALLOM_S_STANDALONE_DOD,6ebdddb7-8e55-4af2-952b-69e77262f96c,Microsoft Defender for Cloud Apps for DOD +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,GRAPH_CONNECTORS_SEARCH_INDEX_TOPICEXP,b74d57b2-58e9-484a-9731-aeccbba954f0,Graph Connectors Search with Index (Microsoft Viva Topics) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Azure Active Directory Premium P2 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,RMS_S_PREMIUM2_GOV,5400a66d-eaa5-427d-80f2-0f26d59d8fce,Azure Information Protection Premium P2 for GCC +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Azure Active Directory Premium P2 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,RMS_S_PREMIUM2_GOV,5400a66d-eaa5-427d-80f2-0f26d59d8fce,Azure Information Protection Premium P2 for GCC +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +Microsoft 365 Audio Conferencing for GCC,MCOMEETADV_GOV,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT +Microsoft 365 Audio Conferencing for GCC,MCOMEETADV_GOV,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,MICROSOFT 365 AUDIO CONFERENCING FOR GOVERNMENT +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,AAD_PREMIUM +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,RMS_S_PREMIUM +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,ADALLOM_S_DISCOVERY +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,DYN365_CDS_O365_F1 +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,EXCHANGE_S_DESKLESS +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,RMS_S_ENTERPRISE +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MFA_PREMIUM +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,MICROSOFTBOOKINGS +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,INTUNE_A +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,PROJECTWORKMANAGEMENT +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,MICROSOFT_SEARCH +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,STREAM_O365_K +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,INTUNE_O365 +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SHAREPOINTDESKLESS +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,MCOIMP +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,CDS_O365_P2_GCC,a70bbf38-cdda-470d-adb8-5804b8770f41,Common Data Service for Teams +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,FORMS_GOV_E3,24af5f65-d0f3-467b-9f78-ea798c4aeffc,Microsoft Forms for Government (Plan E3) +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,PROJECT_O365_P2_GOV,e7d09ae4-099a-4c34-a2a2-3e166e95c44a,Project for Government (Plan E3) +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,STREAM_O365_E3_GOV,2c1ada27-dbaa-46f9-bda6-ecb94445f758,Stream for Office 365 for Government (E3) +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,DYN365_CDS_O365_P2_GCC,06162da2-ebf9-4954-99a0-00fee96f95cc,Common Data Service +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,CDS_O365_P2_GCC,a70bbf38-cdda-470d-adb8-5804b8770f41,Common Data Service for Teams +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,OFFICESUBSCRIPTION_unattended_GOV,18dfd9bd-5214-4184-8123-c9822d81a9bc,Microsoft 365 Apps for enterprise (unattended) for GCC +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,FORMS_GOV_E3,24af5f65-d0f3-467b-9f78-ea798c4aeffc,Microsoft Forms for Government (Plan E3) +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,PROJECT_O365_P2_GOV,e7d09ae4-099a-4c34-a2a2-3e166e95c44a,Project for Government (Plan E3) +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,STREAM_O365_E3_GOV,2c1ada27-dbaa-46f9-bda6-ecb94445f758,Stream for Office 365 for Government (E3) +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,DYN365_CDS_O365_P2_GCC,06162da2-ebf9-4954-99a0-00fee96f95cc,Common Data Service +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government +Microsoft 365 Lighthouse,Microsoft365_Lighthouse,9c0587f3-8665-4252-a8ad-b7a5ade57312,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Lighthouse,Microsoft365_Lighthouse,9c0587f3-8665-4252-a8ad-b7a5ade57312,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft Sales Copilot,Microsoft_Viva_Sales,3227bcb2-8448-4f81-b3c2-8c2074e15a2a,Microsoft_Viva_Sales_PremiumTrial,8ba1ff15-7bf6-4620-b65c-ecedb6942766,Microsoft Sales Copilot Premium & Trial +Microsoft Sales Copilot,Microsoft_Viva_Sales,3227bcb2-8448-4f81-b3c2-8c2074e15a2a,Microsoft_Viva_Sales_PowerAutomate,a933a62f-c3fb-48e5-a0b7-ac92b94b4420,Microsoft Sales Copilot Premium with Power Automate +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving for Exchange Online +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics - Standard +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,M365 Communication Compliance +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender For Endpoint +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-based classification +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft Business Center,MICROSOFT_BUSINESS_CENTER,726a0894-2c77-4d65-99da-9775ef05aad1,MICROSOFT_BUSINESS_CENTER,cca845f9-fd51-4df6-b563-976a37c56ce0,MICROSOFT BUSINESS CENTER +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft 365 Chat +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,COPILOT_STUDIO_IN_COPILOT_FOR_M365,fe6c28b3-d468-44ea-bbd0-a10a5167435c,Copilot Studio in Copilot for M365 +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_SHAREPOINT,0aedf20c-091d-420b-aadf-30c042609612,Microsoft 365 Copilot for SharePoint +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,Microsoft_Copilot_for_Sales,a2194428-ead1-4fc1-bb81-ab8675125f42,Microsoft Copilot for Sales +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,Microsoft_Copilot_for_Sales_PowerAutomate,0c1c2af2-6c51-43c7-9c55-fa487ac147ff,Microsoft Copilot for Sales with Power Automate +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft Copilot with Graph-grounded chat +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,WORKPLACE_ANALYTICS_INSIGHTS_USER,b622badb-1b45-48d5-920f-4b27a2c0996c,Microsoft Viva Insights +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,WORKPLACE_ANALYTICS_INSIGHTS_BACKEND,ff7b261f-d98b-415b-827c-42a3fdf015af,Microsoft Viva Insights Backend +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot +Microsoft Copilot Studio,Power_Virtual_Agents,75564b9c-51e8-431c-b8fe-d472d5a545c8,CDS_VIRTUAL_AGENT_BASE_MESSAGES,5dd1819f-0de7-487f-985b-c450a4c9cc1d,Dataverse for Microsoft Copilot Studio +Microsoft Copilot Studio,Power_Virtual_Agents,75564b9c-51e8-431c-b8fe-d472d5a545c8,VIRTUAL_AGENT_BASE_MESSAGES,7b0640f1-63cc-4f83-b8c6-0a4d78b8b988,Microsoft Copilot Studio – Messages +Microsoft Copilot Studio,Power_Virtual_Agents,75564b9c-51e8-431c-b8fe-d472d5a545c8,FLOW_VIRTUAL_AGENT_BASE_MESSAGES,4b9ec373-ed29-4192-8a47-c9ab9048b079,Power Automate for Microsoft Copilot Studio +Microsoft Copilot Studio for GCC,Power_Virtual_Agents_for_GCC_GCC,d7974fa0-ddd7-4899-9589-1ea04273aa26,CDS_VIRTUAL_AGENT_BASE_MESSAGES,5dd1819f-0de7-487f-985b-c450a4c9cc1d,Dataverse for Microsoft Copilot Studio +Microsoft Copilot Studio for GCC,Power_Virtual_Agents_for_GCC_GCC,d7974fa0-ddd7-4899-9589-1ea04273aa26,VIRTUAL_AGENT_BASE_MESSAGES,7b0640f1-63cc-4f83-b8c6-0a4d78b8b988,Microsoft Copilot Studio – Messages +Microsoft Copilot Studio for GCC,Power_Virtual_Agents_for_GCC_GCC,d7974fa0-ddd7-4899-9589-1ea04273aa26,FLOW_VIRTUAL_AGENT_BASE_MESSAGES,4b9ec373-ed29-4192-8a47-c9ab9048b079,Power Automate for Microsoft Copilot Studio +Microsoft Copilot Studio_USGOV_GCCHIGH,Power_Virtual_Agents_USGOV_GCCHIGH,84ed7c30-3738-43a0-aa03-cf6c577d8dbb,CDS_VIRTUAL_AGENT_BASE_MESSAGES,5dd1819f-0de7-487f-985b-c450a4c9cc1d,CDS_VIRTUAL_AGENT_BASE_MESSAGES +Microsoft Copilot Studio_USGOV_GCCHIGH,Power_Virtual_Agents_USGOV_GCCHIGH,84ed7c30-3738-43a0-aa03-cf6c577d8dbb,VIRTUAL_AGENT_BASE_MESSAGES,7b0640f1-63cc-4f83-b8c6-0a4d78b8b988,VIRTUAL_AGENT_BASE_MESSAGES +Microsoft Copilot Studio_USGOV_GCCHIGH,Power_Virtual_Agents_USGOV_GCCHIGH,84ed7c30-3738-43a0-aa03-cf6c577d8dbb,FLOW_VIRTUAL_AGENT_BASE_MESSAGES,4b9ec373-ed29-4192-8a47-c9ab9048b079,FLOW_VIRTUAL_AGENT_BASE_MESSAGES +Microsoft Copilot Studio User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,CDS_VIRTUAL_AGENT_USL,cb867b3c-7f38-4d0d-99ce-e29cd69812c8,Common Data Service +Microsoft Copilot Studio User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,FLOW_VIRTUAL_AGENT_USL,82f141c9-2e87-4f43-8cb2-12d2701dc6b3,Power Automate for Virtual Agent +Microsoft Copilot Studio User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,VIRTUAL_AGENT_USL,1263586c-59a4-4ad0-85e1-d50bc7149501,Virtual Agent +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,CDS_Virtual_Agent_Usl_Gov,bcc0702e-ba97-48d9-ae04-fa8689c53bba,Dataverse for Virtual Agent USL for GCC +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Virtual_Agent_Usl_Gov,00b6f978-853b-4041-9de0-a233d18669aa,Virtual Agent for GCC +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,CDS_Virtual_Agent_Usl_GCC,95df1203-fee7-4726-b7e1-8037a8e899eb,Dataverse for Virtual Agent USL for GCC +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Flow_Virtual_Agent_Usl_Gov,0b939472-1861-45f1-ab6d-208f359c05cd,Flow for Virtual Agent for GCC +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,FLOW_Virtual_Agent_Base_Gov,f9f6db16-ace6-4838-b11c-892ee75e810a,Power Automate for Virtual Agent for GCC +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Power_Virtual_Agent_Usl_GCC,0bdd5466-65c3-470a-9fa6-f679b48286b0,Power Virtual Agent USL for GCC +Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,Virtual_Agent_Usl_Gov_High,7ffee552-ebe8-4725-8678-5c1775c05847,Virtual Agent for GCC High +Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,CDS_VIRTUAL_AGENT_USL,cb867b3c-7f38-4d0d-99ce-e29cd69812c8,Common Data Service +Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,FLOW_Virtual_Agent_Base_Gov_High,225e52e5-7bbf-4793-8fb1-4307a7a1ae8e,Flow for Virtual Agent for GCC High +Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,Flow_Virtual_Agent_Usl_Gov_High,aaae1744-dc7a-4811-9dd0-2bf926ff9d80,Flow for Virtual Agent for GCC High +Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,Power_Virtual_Agent_Usl_GCC_High,3fbe8cdf-c735-44bf-bbfa-646724af4bb4,Power Virtual Agent USL for GCC High +Microsoft Copilot Studio Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,DYN365_CDS_CCI_BOTS,cf7034ed-348f-42eb-8bbd-dddeea43ee81,DYN365_CDS_CCI_BOTS +Microsoft Copilot Studio Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,CCIBOTS_PRIVPREV_VIRAL,ce312d15-8fdf-44c0-9974-a25a177125ee,CCIBOTS_PRIVPREV_VIRAL +Microsoft Copilot Studio Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,FLOW_CCI_BOTS,5d798708-6473-48ad-9776-3acc301c40af,FLOW_CCI_BOTS +Microsoft Cloud App Security,ADALLOM_STANDALONE,df845ce7-05f9-4894-b5f2-11bbfbcfd2b6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Cloud App Security,ADALLOM_STANDALONE,df845ce7-05f9-4894-b5f2-11bbfbcfd2b6,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security +Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,MCS_BizApps_Cloud_for_Sustainability_vTrial,c1c902e3-a956-4273-abdb-c92afcd027ef,MCS - BizApps_Cloud for Sustainability_vTrial +Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,POWER_APPS_DYN365_VIRAL_TRIAL,54b37829-818e-4e3c-a08a-3ea66ab9b45d,Power Apps for Dynamics 365 vTrial +Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,POWER_AUTOMATE_DYN365_VIRAL_TRIAL,81d4ecb8-0481-42fb-8868-51536c5aceeb,Power Automate for Dynamics 365 vTrial +Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,Common Data Service +Microsoft Defender for Business,MDE_SMB,5e1e7702-a2b7-4360-8d07-2f515792896f,Intune_Defender,1689aade-3d6a-4bfc-b017-46d2672df5ad,MDE_SecurityManagement +Microsoft Defender for Business,MDE_SMB,5e1e7702-a2b7-4360-8d07-2f515792896f,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft Defender for Business,MDE_SMB,5e1e7702-a2b7-4360-8d07-2f515792896f,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft Defender for Business,MDE_SMB,5e1e7702-a2b7-4360-8d07-2f515792896f,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business +Microsoft Defender for Endpoint,WIN_DEF_ATP,111046dd-295b-4d6d-9724-d52ac90bd1f2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Defender for Endpoint,WIN_DEF_ATP,111046dd-295b-4d6d-9724-d52ac90bd1f2,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,MICROSOFT DEFENDER FOR ENDPOINT +Microsoft Defender for Endpoint F2,Microsoft_Defender_for_Endpoint_F2,e430a580-c37b-4d16-adba-d881d7cd0364,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft Defender for Endpoint P1,DEFENDER_ENDPOINT_P1,16a55f2f-ff35-4cd5-9146-fb784e3761a5,Intune_Defender,1689aade-3d6a-4bfc-b017-46d2672df5ad,MDE_SecurityManagement +Microsoft Defender for Endpoint P1,DEFENDER_ENDPOINT_P1,16a55f2f-ff35-4cd5-9146-fb784e3761a5,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft Defender for Endpoint P1 for EDU,DEFENDER_ENDPOINT_P1_EDU,bba890d4-7881-4584-8102-0c3fdfb739a7,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft Defender for Endpoint P2_XPLAT,MDATP_XPLAT,b126b073-72db-4a9d-87a4-b17afe41d4ab,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Defender for Endpoint P2_XPLAT,MDATP_XPLAT,b126b073-72db-4a9d-87a4-b17afe41d4ab,Intune_Defender,1689aade-3d6a-4bfc-b017-46d2672df5ad,MDE_SecurityManagement +Microsoft Defender for Endpoint P2_XPLAT,MDATP_XPLAT,b126b073-72db-4a9d-87a4-b17afe41d4ab,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft Defender for Endpoint Server,MDATP_Server,509e8ab6-0274-4cda-bcbd-bd164fd562c4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Defender for Endpoint Server,MDATP_Server,509e8ab6-0274-4cda-bcbd-bd164fd562c4,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft Dynamics CRM Online Basic,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Dynamics CRM Online Basic,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 +Microsoft Dynamics CRM Online Basic,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,CRMPLAN2,bf36ca64-95c6-4918-9275-eb9f4ce2c04f,MICROSOFT DYNAMICS CRM ONLINE BASIC +Microsoft Dynamics CRM Online Basic,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 +Microsoft Defender for Identity,ATA,98defdf7-f6c1-44f5-a1f6-943b6764e7a5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Defender for Identity,ATA,98defdf7-f6c1-44f5-a1f6-943b6764e7a5,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft Defender for Identity,ATA,98defdf7-f6c1-44f5-a1f6-943b6764e7a5,ADALLOM_FOR_AATP,61d18b02-6889-479f-8f36-56e6e0fe5792,SecOps Investigation for MDI +Microsoft Defender for Office 365 (Plan 1) Faculty,ATP_ENTERPRISE_FACULTY,26ad4b5c-b686-462e-84b9-d7c22b46837f,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft Defender for Office 365 (Plan 1) GCC,ATP_ENTERPRISE_GOV,d0d1ca43-b81a-4f51-81e5-a5b1ad7bb005,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Microsoft Defender for Office 365 (Plan 1)_USGOV_GCCHIGH,ATP_ENTERPRISE_USGOV_GCCHIGH ,550f19ba-f323-4a7d-a8d2-8971b0d9ea85,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft Defender for Office 365 (Plan 1) Student,ATP_ENTERPRISE_STUDENT,917fb2b4-f71c-43a1-8edc-75532b554bb5,ATP_ENTERPRISE ,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft Defender for Office 365 (Plan 1) Student use benefit,ATP_ENTERPRISE_STUDENTS_USE_BENEFIT,a237b6d8-572e-4839-bffd-7786d32a5d0e,ATP_ENTERPRISE ,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft Defender for Office 365 (Plan 2) GCC,THREAT_INTELLIGENCE_GOV,56a59ffb-9df1-421b-9e61-8b568583474d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft Defender for Office 365 (Plan 2) GCC,THREAT_INTELLIGENCE_GOV,56a59ffb-9df1-421b-9e61-8b568583474d,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Microsoft Defender for Office 365 (Plan 2) GCC,THREAT_INTELLIGENCE_GOV,56a59ffb-9df1-421b-9e61-8b568583474d,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government +Microsoft Defender Vulnerability Management,TVM_Premium_Standalone,1925967e-8013-495f-9644-c99f8b463748,TVM_PREMIUM_1,36810a13-b903-490a-aa45-afbeb7540832,Microsoft Defender Vulnerability Management +Microsoft Defender Vulnerability Management Add-on,TVM_Premium_Add_on,ad7a56e0-6903-4d13-94f3-5ad491e78960,TVM_PREMIUM_1,36810a13-b903-490a-aa45-afbeb7540832,Microsoft Defender Vulnerability Management +Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,CRMSTANDARD,f9646fb2-e3b2-4309-95de-dc4833737456,MICROSOFT DYNAMICS CRM ONLINE PROFESSIONA +Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 +Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,MDM_SALES_COLLABORATION,3413916e-ee66-4071-be30-6f94d4adfeda,MICROSOFT DYNAMICS MARKETING SALES COLLABORATION - ELIGIBILITY CRITERIA APPLY +Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,NBPROFESSIONALFORCRM,3e58e97c-9abe-ebab-cd5f-d543d1529634,MICROSOFT SOCIAL ENGAGEMENT PROFESSIONAL - ELIGIBILITY CRITERIA APPLY +Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 +Microsoft Entra ID Governance,Microsoft_Entra_ID_Governance,cf6b0d46-4093-4546-a0ab-0b1546dcc10e,Entra_Identity_Governance,e866a266-3cff-43a3-acca-0c90a7e00c8b,Entra Identity Governance +Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Entra_Premium_Internet_Access,8d23cb83-ab07-418f-8517-d7aca77307dc,Microsoft Entra Internet Access +Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Entra_Premium_Private_Access,f057aab1-b184-49b2-85c0-881b02a405c5,Microsoft Entra Private Access +Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Verifiable_Credentials_Service_Request,aae826b7-14cd-4691-8178-2b312f7072ea,Verifiable Credentials Service Request +Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Entra_Identity_Governance,e866a266-3cff-43a3-acca-0c90a7e00c8b,Entra Identity Governance +Microsoft Entra Workload ID,Workload_Identities_P2,52cdf00e-8303-4223-a749-ff69a13e2dd0,AAD_WRKLDID_P2,7dc0e92d-bf15-401d-907e-0884efe7c760,Microsoft Entra Workload ID +Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,BI_AZURE_P0,2049e525-b859-401b-b2a0-e0a31c4b1fe4,Power BI (free) +Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft Fabric (Free) for faculty,POWER_BI_STANDARD_FACULTY,ade29b5f-397e-4eb9-a287-0344bd46c68d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE_S_FOUNDATION +Microsoft Fabric (Free) for faculty,POWER_BI_STANDARD_FACULTY,ade29b5f-397e-4eb9-a287-0344bd46c68d,BI_AZURE_P0,2049e525-b859-401b-b2a0-e0a31c4b1fe4,BI_AZURE_P0 +Microsoft Fabric (Free) for student,POWER_BI_STANDARD_STUDENT,bdcaf6aa-04c1-4b8f-b64e-6e3bd505ac64,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE_S_FOUNDATION +Microsoft Fabric (Free) for student,POWER_BI_STANDARD_STUDENT,bdcaf6aa-04c1-4b8f-b64e-6e3bd505ac64,BI_AZURE_P0,2049e525-b859-401b-b2a0-e0a31c4b1fe4,BI_AZURE_P0 +Microsoft Imagine Academy,IT_ACADEMY_AD,ba9a34de-4489-469d-879c-0f0f145321cd,IT_ACADEMY_AD,d736def0-1fde-43f0-a5be-e3f8b2de6e41,MS IMAGINE ACADEMY +Microsoft Intune Advanced Analytics,Microsoft_Intune_Advanced_Analytics,5e36d0d4-e9e5-4052-aba0-0257465c9b86,Intune_AdvancedEA,2a4baa0e-5e99-4c38-b1f2-6864960f1bd1,Microsoft Intune Advanced Analytics +Microsoft Intune Device,INTUNE_A_D,2b317a4a-77a6-4188-9437-b68a77b4e2c6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Intune Device,INTUNE_A_D,2b317a4a-77a6-4188-9437-b68a77b4e2c6,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Intune Device for Government,INTUNE_A_D_GOV,2c21e77a-e0d6-4570-b38a-7ff2dc17d2ca,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Microsoft Intune Device for Government,INTUNE_A_D_GOV,2c21e77a-e0d6-4570-b38a-7ff2dc17d2ca,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Intune Government,INTUNE_A_GOV,2b26f637-35a0-4dbc-b69e-ff674782be9d,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Microsoft Intune Government,INTUNE_A_GOV,2b26f637-35a0-4dbc-b69e-ff674782be9d,INTUNE_A_GOV,d216f254-796f-4dab-bbfa-710686e646b9,Microsoft Intune G +Microsoft Intune Plan 1 A VL,INTUNE_A_VL,99fc2803-fa72-42d3-ae78-b055e177d275,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Intune Plan 1 A VL,INTUNE_A_VL,99fc2803-fa72-42d3-ae78-b055e177d275,INTUNE_A_VL,3e170737-c728-4eae-bbb9-3f3360f7184c,Microsoft Intune Plan 1 +Microsoft Intune Plan 1 A VL_USGOV_GCCHIGH,INTUNE_A_VL_USGOV_GCCHIGH,b4288abe-01be-47d9-ad20-311d6e83fc24,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Intune Plan 1 A VL_USGOV_GCCHIGH,INTUNE_A_VL_USGOV_GCCHIGH,b4288abe-01be-47d9-ad20-311d6e83fc24,INTUNE_A_VL,3e170737-c728-4eae-bbb9-3f3360f7184c,Microsoft Intune Plan 1 +Microsoft Power Apps for Developer,POWERAPPS_DEV,5b631642-bd26-49fe-bd20-1daaa972ef80,DYN365_CDS_DEV_VIRAL,d8c638e2-9508-40e3-9877-feb87603837b,Common Data Service - DEV VIRAL +Microsoft Power Apps for Developer,POWERAPPS_DEV,5b631642-bd26-49fe-bd20-1daaa972ef80,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Power Apps for Developer,POWERAPPS_DEV,5b631642-bd26-49fe-bd20-1daaa972ef80,FLOW_DEV_VIRAL,c7ce3f26-564d-4d3a-878d-d8ab868c85fe,Flow for Developer +Microsoft Power Apps for Developer,POWERAPPS_DEV,5b631642-bd26-49fe-bd20-1daaa972ef80,POWERAPPS_DEV_VIRAL,a2729df7-25f8-4e63-984b-8a8484121554,PowerApps for Developer +Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,Common Data Service - VIRAL +Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,FLOW_P2_VIRAL,50e68c76-46c6-4674-81f9-75456511b170,Flow Free +Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,FLOW_P2_VIRAL_REAL,d20bfa21-e9ae-43fc-93c2-20783f0840c3,Flow P2 Viral +Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,POWERAPPS_P2_VIRAL,d5368ca3-357e-4acb-9c21-8495fb025d1f,PowerApps Trial +Microsoft Power Automate Free,FLOW_FREE,f30db892-07e9-47e9-837c-80727f46fd3d,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,COMMON DATA SERVICE +Microsoft Power Automate Free,FLOW_FREE,f30db892-07e9-47e9-837c-80727f46fd3d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Power Automate Free,FLOW_FREE,f30db892-07e9-47e9-837c-80727f46fd3d,FLOW_P2_VIRAL,50e68c76-46c6-4674-81f9-75456511b170,FLOW FREE +Microsoft Power Automate Plan 2,FLOW_P2,4755df59-3f73-41ab-a249-596ad72b5504,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 +Microsoft Power Automate Plan 2,FLOW_P2,4755df59-3f73-41ab-a249-596ad72b5504,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Power Automate Plan 2,FLOW_P2,4755df59-3f73-41ab-a249-596ad72b5504,FLOW_P2,56be9436-e4b2-446c-bb7f-cc15d16cca4d,Power Automate (Plan 2) +Microsoft Intune SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Microsoft Entra ID +Microsoft Intune SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Intune SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,MICROSOFT INTUNE +Microsoft Intune SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE +Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,Intune_AdvancedEA,2a4baa0e-5e99-4c38-b1f2-6864960f1bd1,Intune Advanced endpoint analytics +Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,Intune-EPM,bb73f429-78ef-4ff2-83c8-722b04c3e7d1,Intune Endpoint Privilege Management +Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,INTUNE_P2,d9923fe3-a2de-4d29-a5be-e3e83bb786be,Intune Plan 2 +Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,Intune-MAMTunnel,a6e407da-7411-4397-8a2e-d9b52780849e,Microsoft Tunnel for Mobile Application Management +Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,REMOTE_HELP,a4c6cf29-1168-4076-ba5c-e8fe0e62b17e,Remote help +Microsoft Power Apps Plan 2 (Qualified Offer),POWERFLOW_P2,ddfae3e3-fcb2-4174-8ebd-3023cb213c8b,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 +Microsoft Power Apps Plan 2 (Qualified Offer),POWERFLOW_P2,ddfae3e3-fcb2-4174-8ebd-3023cb213c8b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Power Apps Plan 2 (Qualified Offer),POWERFLOW_P2,ddfae3e3-fcb2-4174-8ebd-3023cb213c8b,POWERAPPS_P2,00527d7f-d5bc-4c2a-8d1e-6c0de2410c81,Power Apps (Plan 2) +Microsoft Power Apps Plan 2 (Qualified Offer),POWERFLOW_P2,ddfae3e3-fcb2-4174-8ebd-3023cb213c8b,FLOW_P2,56be9436-e4b2-446c-bb7f-cc15d16cca4d,Power Automate (Plan 2) +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,Forms_Pro_Relationship_Sales,507172c0-6001-4f4f-80e7-f350507af3e5,Microsoft Dynamics 365 Customer Voice for Relationship Sales +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,56e3d4ca-2e31-4c3f-8d57-89c1d363503b,Microsoft Relationship Sales solution +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,Retired - Microsoft Social Engagement +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,Microsoft_Viva_Sales_PremiumTrial,8ba1ff15-7bf6-4620-b65c-ecedb6942766,Microsoft Viva Sales Premium & Trial +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,Microsoft_Viva_Sales_PowerAutomate,a933a62f-c3fb-48e5-a0b7-ac92b94b4420,Microsoft Viva Sales Premium with Power Automate +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Microsoft Stream,STREAM,1f2f344a-700d-42c9-9427-5cea1d5d7ba6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Stream,STREAM,1f2f344a-700d-42c9-9427-5cea1d5d7ba6,MICROSOFTSTREAM,acffdce6-c30f-4dc2-81c0-372e33c515ec,MICROSOFT STREAM +Microsoft Stream Plan 2,STREAM_P2,ec156933-b85b-4c50-84ec-c9e5603709ef,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Stream Plan 2,STREAM_P2,ec156933-b85b-4c50-84ec-c9e5603709ef,STREAM_P2,d3a458d0-f10d-48c2-9e44-86f3f684029e,Microsoft Stream Plan 2 +Microsoft Stream Storage Add-On (500 GB),STREAM_STORAGE,9bd7c846-9556-4453-a542-191d527209e8,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Stream Storage Add-On (500 GB),STREAM_STORAGE,9bd7c846-9556-4453-a542-191d527209e8,STREAM_STORAGE,83bced11-77ce-4071-95bd-240133796768,Microsoft Stream Storage Add-On +Microsoft Sustainability Manager Premium,Microsoft_Sustainability_Manager_Premium,aecb477b-2f56-4e38-b711-b752c24fc19b,CDS_CLOUD_FOR_SUSTAINABILITY_PLUS,ba80223c-e515-4642-a838-3e7d66f70cb6,Common Data Services for Cloud for Sustainability Plus +Microsoft Sustainability Manager Premium,Microsoft_Sustainability_Manager_Premium,aecb477b-2f56-4e38-b711-b752c24fc19b,MCS_BIZAPPS_CLOUD_FOR_SUSTAINABILITY_PLUS,ed29ae92-ff5f-4446-8460-83c54d0e7088,MCS - BizApps Cloud for Sustainability Plus +Microsoft Sustainability Manager Premium,Microsoft_Sustainability_Manager_Premium,aecb477b-2f56-4e38-b711-b752c24fc19b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Sustainability Manager Premium USL Plus,MICROSOFT_SUSTAINABILITY_MANAGER_PREMIUM_USL_ADDON,9d576ffb-dd32-4c33-91ee-91625b61424a,MCS_BIZAPPS_CLOUD_FOR_SUSTAINABILITY_USL_PLUS,beaf5b5c-d11c-4417-b5cb-cd9f9e6719b0,MCS - BizApps Cloud for Sustainability USL Plus +Microsoft Sustainability Manager Premium USL Plus,MICROSOFT_SUSTAINABILITY_MANAGER_PREMIUM_USL_ADDON,9d576ffb-dd32-4c33-91ee-91625b61424a,POWER_APPS_FOR_MCS_USL_PLUS,c5502fe7-406d-442a-827f-4948b821ba08,Power Apps for Cloud for Sustainability USL Plus +Microsoft Sustainability Manager Premium USL Plus,MICROSOFT_SUSTAINABILITY_MANAGER_PREMIUM_USL_ADDON,9d576ffb-dd32-4c33-91ee-91625b61424a,POWER_AUTOMATE_FOR_MCS_USL_PLUS,1c22bb50-96fb-49e5-baa6-195cab19eee2,Power Automate for Cloud for Sustainability USL Plus +Microsoft Sustainability Manager Premium USL Plus,MICROSOFT_SUSTAINABILITY_MANAGER_PREMIUM_USL_ADDON,9d576ffb-dd32-4c33-91ee-91625b61424a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,MCS_BizApps_Cloud_for_Sustainability_USL,c46c42af-d654-4385-8c85-29a84f3dfb22,MCS - BizApps - Cloud for Sustainability USL +Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,POWER_APPS_FOR_MCS_USL,5ffd371c-037a-41a2-98a3-6452f8c5de17,Power Apps for Cloud for Sustainability USL +Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,POWER_AUTOMATE_FOR_MCS_USL,ccbe468e-7973-442c-8ec4-5fbe16438711,Power Automate for Cloud for Sustainability USL +Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Teams Audio Conferencing with dial-out to USA/CAN,Microsoft_Teams_Audio_Conferencing_select_dial_out,1c27243e-fb4d-42b1-ae8c-fe25c9616588,MCOMEETBASIC,9974d6cf-cd24-4ba2-921c-e2aa687da846,Microsoft Teams Audio Conferencing with dial-out to select geographies +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,MCOFREE,617d9209-3b90-4879-96e6-838c42b2701d,MCO FREE FOR MICROSOFT TEAMS (FREE) +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,TEAMS_FREE,4fa4026d-ce74-4962-a151-8e96d57ea8e4,MICROSOFT TEAMS (FREE) +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SHAREPOINT KIOSK +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,TEAMS_FREE_SERVICE,bd6f2ac2-991a-49f9-b23c-18c96a02c228,TEAMS FREE SERVICE +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,WHITEBOARD (FIRSTLINE) +Microsoft Teams Calling Plan pay-as-you-go (country zone 1 - US),Microsoft_Teams_Calling_Plan_pay_as_you_go_(country_zone_1_US),9b196e97-5830-4c2e-adc2-1e10ebf5dee5,MCOPSTN_PAYG_1,156a1efe-17cd-4b03-9f17-2eb512298fb3,Microsoft Teams Calling Plan pay-as-you-go - country zone 1 +Microsoft Teams Domestic Calling Plan (240 min),MCOPSTN_6,729dbb8f-8d56-4994-8e33-2f218f549544,MCOPSTN6,346d83bf-6fe6-42ca-b424-b9300d2e21bf,Microsoft 365 Domestic Calling Plan (240 min) +Microsoft Teams Domestic Calling Plan for GCC,MCOPSTN_1_GOV,923f58ab-fca1-46a1-92f9-89fda21238a8,MCOPSTN1_GOV,3c8a8792-7866-409b-bb61-1b20ace0368b,Domestic Calling Plan for Government +Microsoft Teams Domestic Calling Plan for GCC,MCOPSTN_1_GOV,923f58ab-fca1-46a1-92f9-89fda21238a8,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Microsoft Teams Essentials,Teams_Ess,fde42873-30b6-436b-b361-21af5a6b84ae,TeamsEss,f4f2f6de-6830-442b-a433-e92249faebe2,Microsoft Teams Essentials +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,ONEDRIVE_BASIC_P2,4495894f-534f-41ca-9d3b-0ebf1220a423,OneDrive for Business (Basic 2) +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,COMMON DATA SERVICE FOR TEAMS_P1 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,INSIGHTS BY MYANALYTICS +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNER +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,MICROSOFT SEARCH +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,DESKLESS,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,MICROSOFT STREAM FOR O365 E1 SKU +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,MICROSOFT TEAMS +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,MCO_TEAMS_IW,42a3ec34-28ba-46b6-992f-db53a675ac5b,MICROSOFT TEAMS +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,MOBILE DEVICE MANAGEMENT FOR OFFICE 365 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE FOR THE WEB +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,OFFICE MOBILE APPS FOR OFFICE 365 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWER APPS FOR OFFICE 365 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,POWER AUTOMATE FOR OFFICE 365 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,POWER VIRTUAL AGENTS FOR OFFICE 365 P1 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINT STANDARD +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,TO-DO (PLAN 1) +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,WHITEBOARD (PLAN 1) +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER ENTERPRIS +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MCO_TEAMS_IW,42a3ec34-28ba-46b6-992f-db53a675ac5b,Microsoft Teams +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Microsoft Teams Phone Standard,MCOEV,e43b5b99-8dfb-405f-9987-dc307f34bcbd,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard for DOD,MCOEV_DOD,d01d9287-694b-44f3-bcc5-ada78c8d953e,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard for Faculty,MCOEV_FACULTY,d979703c-028d-4de5-acbf-7955566b69b9,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTE +Microsoft Teams Phone Standard for GCC,MCOEV_GOV,a460366a-ade7-4791-b581-9fbff1bdaa85,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT +Microsoft Teams Phone Standard for GCC,MCOEV_GOV,a460366a-ade7-4791-b581-9fbff1bdaa85,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,MICROSOFT 365 PHONE SYSTEM FOR GOVERNMENT +Microsoft Teams Phone Standard for GCCHIGH,MCOEV_GCCHIGH,7035277a-5e49-4abc-a24f-0ec49c501bb5,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard for Small and Medium Business,MCOEVSMB_1,aa6791d3-bb09-4bc2-afed-c30c3fe26032,MCOEVSMB,ed777b71-af04-42ca-9798-84344c66f7c6,SKYPE FOR BUSINESS CLOUD PBX FOR SMALL AND MEDIUM BUSINESS +Microsoft Teams Phone Standard for Students,MCOEV_STUDENT,1f338bbc-767e-4a1e-a2d4-b73207cc5b93,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard for TELSTRA,MCOEV_TELSTRA,ffaf2d68-1c95-4eb3-9ddd-59b81fba0f61,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard_USGOV_DOD,MCOEV_USGOV_DOD,b0e7de67-e503-4934-b729-53d595ba5cd1,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard_USGOV_GCCHIGH,MCOEV_USGOV_GCCHIGH,985fcb26-7b94-475b-b512-89356697be71,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Resource Account,PHONESYSTEM_VIRTUALUSER,440eaaa8-b3e0-484b-a8be-62870b9ba70a,MCOEV_VIRTUALUSER,f47330e9-c134-43b3-9993-e7f004506889,Microsoft 365 Phone Standard Resource Account +Microsoft Teams Phone Resource Account for Faculty,PHONESYSTEM_VIRTUALUSER_FACULTY,0e142028-345e-45da-8d92-8bfd4093bbb9,MCOEV_VIRTUALUSER,f47330e9-c134-43b3-9993-e7f004506889,Microsoft 365 Phone Standard Resource Account +Microsoft Teams Phone Resource Account for GCC,PHONESYSTEM_VIRTUALUSER_GOV,2cf22bcb-0c9e-4bc6-8daf-7e7654c0f285,MCOEV_VIRTUALUSER_GOV,0628a73f-3b4a-4989-bd7b-0f8823144313,Microsoft 365 Phone Standard Resource Account for Government +Microsoft Teams Phone Resource Account_USGOV_GCCHIGH,PHONESYSTEM_VIRTUALUSER_USGOV_GCCHIGH ,e3f0522e-ebb7-4561-9f90-b44516d65b77,MCOEV_VIRTUALUSER,f47330e9-c134-43b3-9993-e7f004506889,Microsoft 365 Phone Standard Resource Account +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,MICROSOFT_ECDN,85704d55-2e73-47ee-93b4-4b8ea14db92b,Microsoft eCDN +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_MGMT,0504111f-feb8-4a3c-992a-70280f9a2869,Microsoft Teams Premium Intelligent +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_CUST,cc8c0802-a325-43df-8cba-995d0c6cb373,Microsoft Teams Premium Personalized +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_PROTECTION,f8b44f54-18bb-46a3-9658-44ab58712968,Microsoft Teams Premium Secure +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_VIRTUALAPPT,9104f592-f2a7-4f77-904c-ca5a5715883f,Microsoft Teams Premium Virtual Appointment +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,MCO_VIRTUAL_APPT,711413d0-b36e-4cd4-93db-0a50a4ab7ea3,Microsoft Teams Premium Virtual Appointments +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_WEBINAR,78b58230-ec7e-4309-913c-93a45cc4735b,Microsoft Teams Premium Webinar +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,Teams_Rooms_Basic,c8529366-cffd-4415-ab8f-be0144a33ab1,Teams Rooms Basic +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,Teams_Room_Basic,8081ca9c-188c-4b49-a8e5-c23b5e9463a8,Teams Rooms Test 1 +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,Teams_Room_Pro,ec17f317-f4bc-451e-b2da-0167e5c260f9,Teams Rooms Test 2 +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,Teams_Rooms_Basic,c8529366-cffd-4415-ab8f-be0144a33ab1,Teams Rooms Basic +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,Teams_Room_Basic,8081ca9c-188c-4b49-a8e5-c23b5e9463a8,Teams Rooms Test 1 +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,Teams_Room_Pro,ec17f317-f4bc-451e-b2da-0167e5c260f9,Teams Rooms Test 2 +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Basic without Audio Conferencing,Microsoft_Teams_Rooms_Basic_without_Audio_Conferencing,50509a35-f0bd-4c5e-89ac-22f0e16a00f8,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Basic without Audio Conferencing,Microsoft_Teams_Rooms_Basic_without_Audio_Conferencing,50509a35-f0bd-4c5e-89ac-22f0e16a00f8,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MTRProManagement,ecc74eae-eeb7-4ad5-9c88-e8b2bfca75b8,Microsoft Teams Rooms Pro Management +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,Teams_Rooms_Pro,0374d34c-6be4-4dbb-b3f0-26105db0b28a,Teams Rooms Pro +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,Teams_Room_Basic,8081ca9c-188c-4b49-a8e5-c23b5e9463a8,Teams Rooms Test 1 +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,Teams_Room_Pro,ec17f317-f4bc-451e-b2da-0167e5c260f9,Teams Rooms Test 2 +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,SPECIALTY_DEVICES,cfce7ae3-4b41-4438-999c-c0e91f3b7fb9,Specialty devices +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,Teams_Room_Basic,8081ca9c-188c-4b49-a8e5-c23b5e9463a8,Teams Rooms Test 1 +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,Teams_Room_Pro,ec17f317-f4bc-451e-b2da-0167e5c260f9,Teams Rooms Test 2 +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,INTUNE_A_GOV,d216f254-796f-4dab-bbfa-710686e646b9,Microsoft Intune G +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,MICROSOFT TEAMS +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,SPECIALTY_DEVICES,cfce7ae3-4b41-4438-999c-c0e91f3b7fb9,Specialty devices +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID Plan 1 +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,Teams_Room_Standard,92c6b761-01de-457a-9dd9-793a975238f7,Teams Room Standard +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium Plan 1 +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,Teams_Room_Standard,92c6b761-01de-457a-9dd9-793a975238f7,Teams Room Standard +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,INTUNE_A_GOV,d216f254-796f-4dab-bbfa-710686e646b9,Microsoft Intune G +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium Plan 1 +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,Teams_Room_Standard,92c6b761-01de-457a-9dd9-793a975238f7,Teams Room Standard +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,INTUNE_A_GOV,d216f254-796f-4dab-bbfa-710686e646b9,Microsoft Intune G +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,MCO_TEAMS_IW,42a3ec34-28ba-46b6-992f-db53a675ac5b,Microsoft Teams +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft Threat Experts - Experts on Demand,EXPERTS_ON_DEMAND,9fa2f157-c8e4-4351-a3f2-ffa506da1406,EXPERTS_ON_DEMAND,b83a66d4-f05f-414d-ac0f-ea1c5239c42b,Microsoft Threat Experts - Experts on Demand +Microsoft Viva Goals,Microsoft_Viva_Goals,ba929637-f158-4dee-927c-eb7cdefcd955,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Viva Goals,Microsoft_Viva_Goals,ba929637-f158-4dee-927c-eb7cdefcd955,Viva_Goals_Premium,b44c6eaf-5c9f-478c-8f16-8cea26353bfb,Viva Goals +Microsoft Viva Glint,Viva_Glint_Standalone,3dc7332d-f0fa-40a3-81d3-dd6b84469b78,Viva_Glint,6b270342-093e-4015-8c5c-224561532fbf,Viva Glint +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,GRAPH_CONNECTORS_SEARCH_INDEX_TOPICEXP,b74d57b2-58e9-484a-9731-aeccbba954f0,Graph Connectors Search with Index (Microsoft Viva Topics) +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,WORKPLACE_ANALYTICS_INSIGHTS_USER,b622badb-1b45-48d5-920f-4b27a2c0996c,Microsoft Viva Insights +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,WORKPLACE_ANALYTICS_INSIGHTS_BACKEND,ff7b261f-d98b-415b-827c-42a3fdf015af,Microsoft Viva Insights Backend +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,CORTEX,c815c93d-0759-4bb8-b857-bc921a71be83,Microsoft Viva Topics +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,VIVAENGAGE_COMMUNITIES_AND_COMMUNICATIONS,43304c6a-1d4e-4e0b-9b06-5b2a2ff58a90,Viva Engage Communities and Communications +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,VIVAENGAGE_KNOWLEDGE,c244cc9e-622f-4576-92ea-82e233e44e36,Viva Engage Knowledge +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,Viva_Goals_Premium,b44c6eaf-5c9f-478c-8f16-8cea26353bfb,Viva Goals +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,VIVA_LEARNING_PREMIUM,7162bd38-edae-4022-83a7-c5837f951759,Viva Learning +Minecraft Education Student,MEE_STUDENT,533b8f26-f74b-4e9c-9c59-50fc4b393b63,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education +Minecraft Education Student,MEE_STUDENT,533b8f26-f74b-4e9c-9c59-50fc4b393b63,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Minecraft Education Faculty,MEE_FACULTY,984df360-9a74-4647-8cf8-696749f6247a,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education +Minecraft Education Faculty,MEE_FACULTY,984df360-9a74-4647-8cf8-696749f6247a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Office 365 Multi-Geo Capabilities,OFFICE365_MULTIGEO,84951599-62b7-46f3-9c9d-30551b2ad607,EXCHANGEONLINE_MULTIGEO,897d51f1-2cfa-4848-9b30-469149f5e68e,Exchange Online Multi-Geo +Office 365 Multi-Geo Capabilities,OFFICE365_MULTIGEO,84951599-62b7-46f3-9c9d-30551b2ad607,SHAREPOINTONLINE_MULTIGEO,735c1d98-dd3f-4818-b4ed-c8052e18e62d,SharePoint Multi-Geo +Office 365 Multi-Geo Capabilities,OFFICE365_MULTIGEO,84951599-62b7-46f3-9c9d-30551b2ad607,TEAMSMULTIGEO,41eda15d-6b52-453b-906f-bc4a5b25a26b,Teams Multi-Geo +Nonprofit Portal,NONPROFIT_PORTAL,aa2695c9-8d59-4800-9dc8-12e01f1735af,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Nonprofit Portal,NONPROFIT_PORTAL,aa2695c9-8d59-4800-9dc8-12e01f1735af,NONPROFIT_PORTAL,7dbc2d88-20e2-4eb6-b065-4510b38d6eb2,Nonprofit Portal +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service - O365 P1 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro Plan 2 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service - O365 P1 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro Plan 2 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for EDU +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service - O365 P2 +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams_P2 +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro Plan 3 +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the web (Education) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 P2 +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint Plan 2 for EDU +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service - O365 P2 +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams_P2 +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro Plan 3 +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 P2 +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics -Premium +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics - Standard +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft Defender for Office 365 (Plan 1),ATP_ENTERPRISE,4ef96642-f096-40de-a3e9-d83fb2f90211,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 Extra File Storage for GCC,SHAREPOINTSTORAGE_GOV,e5788282-6381-469f-84f0-3d7d4021d34d,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE_S_FOUNDATION_GOV +Office 365 Extra File Storage for GCC,SHAREPOINTSTORAGE_GOV,e5788282-6381-469f-84f0-3d7d4021d34d,SHAREPOINTSTORAGE_GOV,e5bb877f-6ac9-4461-9e43-ca581543ab16,SHAREPOINTSTORAGE_GOV +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams_P1 +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for O365 E1 SKU +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,MCO_TEAMS_IW,42a3ec34-28ba-46b6-992f-db53a675ac5b,Microsoft Teams +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 P1 +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 Cloud App Security,ADALLOM_O365,84d5f90f-cd0d-4864-b90b-1c7ba63b4808,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Office 365 Cloud App Security,ADALLOM_O365,84d5f90f-cd0d-4864-b90b-1c7ba63b4808,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management +Office 365 Extra File Storage,SHAREPOINTSTORAGE,99049c9c-6011-4908-bf17-15f496e6519d,SHAREPOINTSTORAGE,be5a7ed5-c598-4fcd-a061-5e6724c68a58,Office 365 Extra File Storage +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFT_MYANALYTICS_FULL,0403bb98-9d17-4f94-b53e-eca56a7698a6,DO NOT USE - Microsoft MyAnalytics (Full) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,INSIGHTS_BY_MYANALYTICS,b088306e-925b-44ab-baa0-63291c629a91,Insights by MyAnalytics Backend +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PEOPLE_SKILLS_FOUNDATION,13b6da2c-0d84-450e-9f69-a33e221387ca,People Skills - Foundation +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,RETIRED - Places Core +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,FORMS_PLAN_E1_AR_GCCHIGH,9c37c053-dfe3-4421-b6d4-bac8b86d42bd,Microsoft Forms (Plan E1) for GCCHigh +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,MICROSOFT_SEARCH_GCCH,fc9f7921-4ca5-42c6-8533-1b84c4ee496b,Microsoft Search for Arlington +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,POWERAPPS_O365_P1_GCCHIGH,3913e44e-824e-490c-a182-82785d769b45,Power Apps for Office 365 for GCCHigh +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,FLOW_O365_P1_GCCHIGH,e923bad8-588e-44d5-acd0-b226daa7b4de,Power Automate for Office 365 for GCCHigh +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,BPOS_S_TODO_1 +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,MICROSOFT STREAM FOR O365 E1 SKU +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,BPOS_S_TODO_3 +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,EXCHANGE ONLINE (PLAN 2) +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,FLOW FOR OFFICE 365 +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,MICROSOFT FORMS (PLAN E5) +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,OFFICESUBSCRIPTION +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,POWERAPPS FOR OFFICE 36 +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,SHAREPOINT_S_DEVELOPER,a361d6e2-509e-4e25-a8ad-950060064ef4,SHAREPOINT FOR DEVELOPER +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,SHAREPOINTWAC_DEVELOPER,527f7cdd-0e86-4c47-b879-f5fd357a3ac6,OFFICE ONLINE FOR DEVELOPER +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,MICROSOFT STREAM FOR O365 E5 SKU +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,TEAMS_AR_DOD,fd500458-c24c-478e-856c-a6067a8376cd,Microsoft Teams for DOD (AR) +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Office 365 ProPlus +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office Online +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh (AR) +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Office 365 ProPlus +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office Online +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,BPOS_S_TODO_2 +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,EXCHANGE ONLINE (PLAN 2) +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,FLOW FOR OFFICE 365 +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,MICROSOFT FORMS (PLAN E3) +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,MCOVOICECONF,27216c54-caf8-4d0d-97e2-517afb5c08f6,SKYPE FOR BUSINESS ONLINE (PLAN 3) +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,OFFICESUBSCRIPTION +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,POWERAPPS FOR OFFICE 36 +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,MICROSOFT Microsoft Entra RIGHTS +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,MICROSOFT STREAM FOR O365 E3 SKU +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service - O365 P3 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams_P3 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics - Standard +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,M365 Communication Compliance +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for O365 E5 SKU +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 P3 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,PowerApps for Office 365 Plan 3 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,Microsoft Communications Compliance +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service - O365 F1 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams_F1 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,FORMS_PLAN_K,f07046bd-2a3c-4b96-b0be-dea79d7cbfb8,Microsoft Forms (Plan F1) +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,KAIZALA_O365_P1,73b2a583-6a59-42e3-8e83-54db46bc3278,Microsoft Kaizala Pro Plan 1 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,POWERAPPS_O365_S1,e0287f9f-e222-4f98-9a83-f379e249159a,Power Apps for Office 365 F3 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,FLOW_O365_S1,bd91b1a4-9f94-4ecf-b45b-3a65e5c8128a,Power Automate for Office 365 F3 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,POWER_VIRTUAL_AGENTS_O365_F1,ba2fdb48-290b-4632-b46a-e4ecc58ac11a,Power Virtual Agents for Office 365 F1 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,PROJECT_O365_F3,7f6f28c2-34bb-4d4b-be36-48ca2e77e1ec,Project for Office (Plan F) +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,FORMS_PLAN_K,f07046bd-2a3c-4b96-b0be-dea79d7cbfb8,Microsoft Forms (Plan F1) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,KAIZALA_O365_P1,73b2a583-6a59-42e3-8e83-54db46bc3278,Microsoft Kaizala Pro +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,PROJECT_O365_F3,7f6f28c2-34bb-4d4b-be36-48ca2e77e1ec,Project for Office (Plan F) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,POWERAPPS_O365_S1,e0287f9f-e222-4f98-9a83-f379e249159a,Power Apps for Office 365 F3 +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,FLOW_O365_S1,bd91b1a4-9f94-4ecf-b45b-3a65e5c8128a,Power Automate for Office 365 F3 +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,POWER_VIRTUAL_AGENTS_O365_F1,ba2fdb48-290b-4632-b46a-e4ecc58ac11a,Power Virtual Agents for Office 365 +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,FORMS_PLAN_K_AR_GCCHIGH,59fb5884-fdec-40bf-aa7f-89e2bae79a7a,Microsoft Forms (Plan F1) for GCCHigh +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,MICROSOFT_SEARCH_GCCH,fc9f7921-4ca5-42c6-8533-1b84c4ee496b,Microsoft Search for Arlington +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,POWERAPPS_O365_S1_GCCHIGH,b9f1a92f-d4c7-477b-b64c-e23d7b4e8cf9,Power Apps for Office 365 F3 for GCCHigh +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,FLOW_O365_S1_GCCHIGH,1db85bca-cd60-4bf5-ae54-641e0778a532,Power Automate for Office 365 F3 for GCCHigh +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,DYN365_CDS_O365_P1_GCC,8eb5e9bc-783f-4425-921a-c65f45dd72c6,Common Data Service - O365 P1 GCC +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,CDS_O365_P1_GCC,959e5dec-6522-4d44-8349-132c27c3795a,Common Data Service for Teams_P1 GCC +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,EXCHANGE_S_STANDARD_GOV,e9b4930a-925f-45e2-ac2a-3f7788ca6fdd,Exchange Online (Plan 1) for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,FORMS_GOV_E1,f4cba850-4f34-4fd2-a341-0fddfdce1e8f,Forms for Government (Plan E1) +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,STREAM_O365_E1_GOV,15267263-5986-449d-ac5c-124f3b49b2d6,Microsoft Stream for O365 for Government (E1) +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,OFFICEMOBILE_SUBSCRIPTION_GOV,4ccb60ee-9523-48fd-8f63-4b090f1ad77a,Office Mobile Apps for Office 365 for GCC +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,POWERAPPS_O365_P1_GOV,c42aa49a-f357-45d5-9972-bc29df885fee,Power Apps for Office 365 for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,FLOW_O365_P1_GOV,ad6c8870-6356-474c-901c-64d7da8cea48,Power Automate for Office 365 for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,SharePoint Plan 1G,f9c43823-deb4-46a8-aa65-8b551f0c4f8a,SharePoint Plan 1G +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,CDS_O365_P2_GCC,a70bbf38-cdda-470d-adb8-5804b8770f41,Common Data Service for Teams +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,FORMS_GOV_E3,24af5f65-d0f3-467b-9f78-ea798c4aeffc,Microsoft Forms for Government (Plan E3) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,PROJECT_O365_P2_GOV,e7d09ae4-099a-4c34-a2a2-3e166e95c44a,Project for Government (Plan E3) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,STREAM_O365_E3_GOV,2c1ada27-dbaa-46f9-bda6-ecb94445f758,Stream for Office 365 for Government (E3) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,DYN365_CDS_O365_P2_GCC,06162da2-ebf9-4954-99a0-00fee96f95cc,Common Data Service +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,CDS_O365_P2_GCC,a70bbf38-cdda-470d-adb8-5804b8770f41,Common Data Service for Teams +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,FORMS_GOV_E3,24af5f65-d0f3-467b-9f78-ea798c4aeffc,Microsoft Forms for Government (Plan E3) +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,OFFICEMOBILE_SUBSCRIPTION_GOV,4ccb60ee-9523-48fd-8f63-4b090f1ad77a,Office Mobile Apps for Office 365 for GCC +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,PROJECT_O365_P2_GOV,e7d09ae4-099a-4c34-a2a2-3e166e95c44a,Project for Government (Plan E3) +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,STREAM_O365_E3_GOV,2c1ada27-dbaa-46f9-bda6-ecb94445f758,Stream for Office 365 for Government (E3) +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,DYN365_CDS_O365_P2_GCC,06162da2-ebf9-4954-99a0-00fee96f95cc,Common Data Service +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,EXCHANGE_S_STANDARD_MIDMARKET,fc52cc4b-ed7d-472d-bbe7-b081c23ecc56,EXCHANGE ONLINE PLAN +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,MCOSTANDARD_MIDMARKET,b2669e95-76ef-4e7e-a367-002f60a39f3e,SKYPE FOR BUSINESS ONLINE (PLAN 2) FOR MIDSIZ +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,OFFICESUBSCRIPTION +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,SHAREPOINTENTERPRISE_MIDMARKET,6b5b6a67-fc72-4a1f-a2b5-beecf05de761,SHAREPOINT PLAN 1 +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,YAMMER_MIDSIZE,41bf139a-4e60-409f-9346-a1361efc6dfb,YAMMER_MIDSIZE +Office 365 Small Business,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,EXCHANGE_L_STANDARD,d42bdbd6-c335-4231-ab3d-c8f348d5aff5,EXCHANGE ONLINE (P1) +Office 365 Small Business,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,MCOLITE,70710b6b-3ab4-4a38-9f6d-9f169461650a,SKYPE FOR BUSINESS ONLINE (PLAN P1) +Office 365 Small Business,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,SHAREPOINTLITE,a1f3d0a8-84c0-4ae0-bae4-685917b8ab48,SHAREPOINTLITE +Office 365 Small Business,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,EXCHANGE_L_STANDARD,d42bdbd6-c335-4231-ab3d-c8f348d5aff5,EXCHANGE ONLINE (P1) +Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,MCOLITE,70710b6b-3ab4-4a38-9f6d-9f169461650a,SKYPE FOR BUSINESS ONLINE (PLAN P1) +Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,OFFICE_PRO_PLUS_SUBSCRIPTION_SMBIZ,8ca59559-e2ca-470b-b7dd-afd8c0dee963,OFFICE 365 SMALL BUSINESS SUBSCRIPTION +Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,SHAREPOINTLITE,a1f3d0a8-84c0-4ae0-bae4-685917b8ab48,SHAREPOINTLITE +Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,FLOW_FOR_PROJECT_GCC,7251de8f-ecfb-481e-bcff-4af4f1a4573c,Data integration for Project with Power Automate for GCC +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,OFFICEMOBILE_SUBSCRIPTION_GOV,4ccb60ee-9523-48fd-8f63-4b090f1ad77a,Office Mobile Apps for Office 365 for GCC +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,PROJECT_PROFESSIONAL_FOR_GOV,49c7bc16-7004-4df6-8cd5-4ec48b7e9ea0,Project P3 for GOV +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC +OneDrive for Business (Plan 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +OneDrive for Business (Plan 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,ONEDRIVESTANDARD +OneDrive for Business (Plan 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +OneDrive for Business (Plan 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +OneDrive for Business (Plan 2),WACONEDRIVEENTERPRISE,ed01faf2-1d88-4947-ae91-45ca18703a96,ONEDRIVEENTERPRISE,afcafa6a-d966-4462-918c-ec0b4e0fe642,ONEDRIVEENTERPRISE +OneDrive for Business (Plan 2),WACONEDRIVEENTERPRISE,ed01faf2-1d88-4947-ae91-45ca18703a96,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,CDSAICAPACITY_PERAPP,5d7a2e9a-4ee5-4f1c-bc9f-abc481bf39d8,AI Builder capacity Per App add-on +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,DYN365_CDS_P1_GOV,ce361df2-f2a5-4713-953f-4050ba09aad8,Common Data Service for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,DYN365_CDS_P2_GOV,37396c73-2203-48e6-8be1-d882dae53275,Common Data Service for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,DYN365_CDS_FOR_PROJECT_GCC_P5,684a2229-5c57-43ab-b69f-f86fe8997358,Common Data Service for Project P5 for GCC +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,CDSAICAPACITY_PERUSER,91f50f7b-2204-4803-acac-5cf5668b8b39,AI Builder capacity Per User add-on +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_O365_S1_GOV,49f06c3d-da7d-4fa0-bcce-1458fdd18a59,Power Apps for Office 365 F3 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_O365_P1_GOV,c42aa49a-f357-45d5-9972-bc29df885fee,Power Apps for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_DYN_TEAM_GOV,47bdde6a-959f-4c7f-8d59-3243e34f1cb3,Power Automate for Dynamics 365 Team Members for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_O365_S1_GOV,5d32692e-5b24-4a59-a77e-b2a8650e25c1,Power Automate for Office 365 F3 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_O365_P1_GOV,ad6c8870-6356-474c-901c-64d7da8cea48,Power Automate for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_DYN_P2_GOV,06879193-37cc-4976-8991-f8165c994ce7,Power Automate P2 for Dynamics 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_DYN_TEAM_GOV,63efc247-5f28-43e3-a2f8-00c183e3f1db,PowerApps for Dynamics 365 Team Members for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_DYN_P2_GOV,51729bb5-7564-4927-8df8-9f5b12279cf3,PowerApps Plan 2 for Dynamics 365 for Government +Power Apps and Logic Flows,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Power Apps and Logic Flows,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,POWERFLOWSFREE,0b4346bb-8dc3-4079-9dfc-513696f56039,LOGIC FLOWS +Power Apps and Logic Flows,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,POWERVIDEOSFREE,2c4ec2dc-c62d-4167-a966-52a3e6374015,MICROSOFT POWER VIDEOS BASIC +Power Apps and Logic Flows,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,POWERAPPSFREE,e61a2945-1d4e-4523-b6e7-30ba39d20f32,MICROSOFT POWERAPPS +PowerApps per app baseline access,POWERAPPS_PER_APP_IW,bf666882-9c9b-4b2e-aa2f-4789b0a52ba2,CDS_PER_APP_IWTRIAL,94a669d1-84d5-4e54-8462-53b0ae2c8be5,CDS Per app baseline access +PowerApps per app baseline access,POWERAPPS_PER_APP_IW,bf666882-9c9b-4b2e-aa2f-4789b0a52ba2,Flow_Per_APP_IWTRIAL,dd14867e-8d31-4779-a595-304405f5ad39,Flow per app baseline access +PowerApps per app baseline access,POWERAPPS_PER_APP_IW,bf666882-9c9b-4b2e-aa2f-4789b0a52ba2,POWERAPPS_PER_APP_IWTRIAL,35122886-cef5-44a3-ab36-97134eabd9ba,PowerApps per app baseline access +Power Apps Per App BD Only for GCC,POWERAPPS_PER_APP_BD_ONLY_GCC,cdc8d0fc-fd16-4954-aae6-ed89a99f5620,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps Per App BD Only for GCC,POWERAPPS_PER_APP_BD_ONLY_GCC,cdc8d0fc-fd16-4954-aae6-ed89a99f5620,CDS_ POWERAPPS_PER_APP_CUSTOM_GCC,ee493f70-a3b3-4204-9511-e3f6083b8df3,CDS Power Apps Per App Custom GCC +Power Apps Per App BD Only for GCC,POWERAPPS_PER_APP_BD_ONLY_GCC,cdc8d0fc-fd16-4954-aae6-ed89a99f5620,POWERAPPS_PER_APP_GCC,be6e5cba-3661-424c-b79a-6d95fa1d849a,Power Apps per App Plan for Government +Power Apps Per App BD Only for GCC,POWERAPPS_PER_APP_BD_ONLY_GCC,cdc8d0fc-fd16-4954-aae6-ed89a99f5620,Flow_Per_APP_GCC,8e2c2c3d-07f6-4da7-86a9-e78cc8c2c8b9,Power Automate for Power Apps per App Plan for Government +Power Apps per app plan,POWERAPPS_PER_APP,a8ad7d2b-b8cf-49d6-b25a-69094a0be206,CDS_PER_APP,9f2f00ad-21ae-4ceb-994b-d8bc7be90999,CDS PowerApps per app plan +Power Apps per app plan,POWERAPPS_PER_APP,a8ad7d2b-b8cf-49d6-b25a-69094a0be206,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps per app plan,POWERAPPS_PER_APP,a8ad7d2b-b8cf-49d6-b25a-69094a0be206,POWERAPPS_PER_APP,b4f657ff-d83e-4053-909d-baa2b595ec97,Power Apps per App Plan +Power Apps per app plan,POWERAPPS_PER_APP,a8ad7d2b-b8cf-49d6-b25a-69094a0be206,Flow_Per_APP,c539fa36-a64e-479a-82e1-e40ff2aa83ee,Power Automate for Power Apps per App Plan +Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,CDSAICAPACITY_PERAPP,5d7a2e9a-4ee5-4f1c-bc9f-abc481bf39d8,AI Builder capacity Per App add-on +Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,DATAVERSE_POWERAPPS_PER_APP_NEW,6f0e9100-ff66-41ce-96fc-3d8b7ad26887,Dataverse for Power Apps per app +Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,POWERAPPS_PER_APP_NEW,14f8dac2-0784-4daa-9cb2-6d670b088d64,Power Apps per app +Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,Flow_Per_APP,c539fa36-a64e-479a-82e1-e40ff2aa83ee,Power Automate for Power Apps per App Plan +Power Apps per app plan (1 app or website) BD Only - GCC,Power_Apps_per_app_plan_(1_app_or_portal)_BD_Only_GCC,816ee058-f70c-42ad-b433-d6171984ea20,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps per app plan (1 app or website) BD Only - GCC,Power_Apps_per_app_plan_(1_app_or_portal)_BD_Only_GCC,816ee058-f70c-42ad-b433-d6171984ea20,CDS_ POWERAPPS_PER_APP_CUSTOM_NEW,c2da6658-f89d-49f2-9508-40431dee115b,CDS Power Apps Per App Custom New +Power Apps per app plan (1 app or website) BD Only - GCC,Power_Apps_per_app_plan_(1_app_or_portal)_BD_Only_GCC,816ee058-f70c-42ad-b433-d6171984ea20,POWERAPPS_PER_APP_GCC_NEW,70091fc8-1836-470f-a386-f4e6639cb04e,Power Apps per app for GCC +Power Apps per app plan (1 app or website) BD Only - GCC,Power_Apps_per_app_plan_(1_app_or_portal)_BD_Only_GCC,816ee058-f70c-42ad-b433-d6171984ea20,Flow_Per_APP_GCC,8e2c2c3d-07f6-4da7-86a9-e78cc8c2c8b9,Power Automate for Power Apps per App Plan for Government +Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,CDSAICAPACITY_PERAPP,5d7a2e9a-4ee5-4f1c-bc9f-abc481bf39d8,AI Builder capacity Per App add-on +Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,DATAVERSE_POWERAPPS_PER_APP_NEW,6f0e9100-ff66-41ce-96fc-3d8b7ad26887,Dataverse for Power Apps per app +Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,POWERAPPS_PER_APP_GCC_NEW,70091fc8-1836-470f-a386-f4e6639cb04e,Power Apps per app for GCC +Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,Flow_Per_APP_GCC,8e2c2c3d-07f6-4da7-86a9-e78cc8c2c8b9,Power Automate for Power Apps per App Plan for Government +Power Apps per app plan for Government,POWERAPPS_PER_APP_GCC,8623b2d7-5e24-4281-b6b7-086a5f3b0b1c,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps per app plan for Government,POWERAPPS_PER_APP_GCC,8623b2d7-5e24-4281-b6b7-086a5f3b0b1c,CDS_PER_APP_GCC,d7f9c9bc-0a28-4da4-b5f1-731acb27a3e4,CDS PowerApps per app plan for GCC +Power Apps per app plan for Government,POWERAPPS_PER_APP_GCC,8623b2d7-5e24-4281-b6b7-086a5f3b0b1c,POWERAPPS_PER_APP_GCC,be6e5cba-3661-424c-b79a-6d95fa1d849a,Power Apps per App Plan for Government +Power Apps per app plan for Government,POWERAPPS_PER_APP_GCC,8623b2d7-5e24-4281-b6b7-086a5f3b0b1c,Flow_Per_APP_GCC,8e2c2c3d-07f6-4da7-86a9-e78cc8c2c8b9,Power Automate for Power Apps per App Plan for Government +Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,CDS_ POWERAPPS_PER_USER_CUSTOM,2e8dde43-6986-479d-b179-7dbe31c31f60,CDS Power Apps Per User Custom +Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,POWERAPPS_PER_USER,ea2cf03b-ac60-46ae-9c1d-eeaeb63cec86,Power Apps per User Plan +Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,Flow_PowerApps_PerUser,dc789ed8-0170-4b65-a415-eb77d5bb350a,Power Automate for Power Apps per User Plan +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,CDSAICAPACITY_PERUSER_NEW,74d93933-6f22-436e-9441-66d205435abb,AI Builder capacity Per User add-on +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,CDSAICAPACITY_PERUSER,91f50f7b-2204-4803-acac-5cf5668b8b39,DO NOT USE - AI Builder capacity Per User add-on +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,POWERAPPS_PER_USER,ea2cf03b-ac60-46ae-9c1d-eeaeb63cec86,Power Apps per User Plan +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,Flow_PowerApps_PerUser,dc789ed8-0170-4b65-a415-eb77d5bb350a,Power Automate for Power Apps per User Plan +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,POWERAPPS_PER_USER,ea2cf03b-ac60-46ae-9c1d-eeaeb63cec86,Power Apps per User Plan +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,Flow_PowerApps_PerUser,dc789ed8-0170-4b65-a415-eb77d5bb350a,Power Automate for Power Apps per User Plan +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,CDSAICAPACITY_PERUSER,91f50f7b-2204-4803-acac-5cf5668b8b39,AI Builder capacity Per User add-on +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,CDSAICAPACITY_PERUSER_NEW,74d93933-6f22-436e-9441-66d205435abb,AI Builder capacity Per User add-on +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,DYN365_CDS_P2_GOV,37396c73-2203-48e6-8be1-d882dae53275,Common Data Service for Government +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,POWERAPPS_PER_USER_GCC,8f55b472-f8bf-40a9-be30-e29919d4ddfe,Power Apps per User Plan for Government +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,Flow_PowerApps_PerUser_GCC,8e3eb3bd-bc99-4221-81b8-8b8bc882e128,Power Automate for Power Apps per User Plan for GCC +PowerApps Plan 1 for Government,POWERAPPS_P1_GOV,eca22b68-b31f-4e9c-a20c-4d40287bc5dd,DYN365_CDS_P1_GOV,ce361df2-f2a5-4713-953f-4050ba09aad8,Common Data Service for Government +PowerApps Plan 1 for Government,POWERAPPS_P1_GOV,eca22b68-b31f-4e9c-a20c-4d40287bc5dd,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +PowerApps Plan 1 for Government,POWERAPPS_P1_GOV,eca22b68-b31f-4e9c-a20c-4d40287bc5dd,FLOW_P1_GOV,774da41c-a8b3-47c1-8322-b9c1ab68be9f,Power Automate (Plan 1) for Government +PowerApps Plan 1 for Government,POWERAPPS_P1_GOV,eca22b68-b31f-4e9c-a20c-4d40287bc5dd,POWERAPPS_P1_GOV,5ce719f1-169f-4021-8a64-7d24dcaec15f,PowerApps Plan 1 for Government +Power Apps Portals login capacity add-on Tier 2 (10 unit min),POWERAPPS_PORTALS_LOGIN_T2,57f3babd-73ce-40de-bcb2-dadbfbfff9f7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Portals login capacity add-on Tier 2 (10 unit min),POWERAPPS_PORTALS_LOGIN_T2,57f3babd-73ce-40de-bcb2-dadbfbfff9f7,CDS_POWERAPPS_PORTALS_LOGIN,32ad3a4e-2272-43b4-88d0-80d284258208,Common Data Service Power Apps Portals Login Capacity +Power Apps Portals login capacity add-on Tier 2 (10 unit min),POWERAPPS_PORTALS_LOGIN_T2,57f3babd-73ce-40de-bcb2-dadbfbfff9f7,POWERAPPS_PORTALS_LOGIN,084747ad-b095-4a57-b41f-061d84d69f6f,Power Apps Portals Login Capacity Add-On +Power Apps Portals login capacity add-on Tier 2 (10 unit min) for Government,POWERAPPS_PORTALS_LOGIN_T2_GCC,26c903d5-d385-4cb1-b650-8d81a643b3c4,CDS_POWERAPPS_PORTALS_LOGIN_GCC,0f7b9a29-7990-44ff-9d05-a76be778f410,Common Data Service Power Apps Portals Login Capacity for GCC +Power Apps Portals login capacity add-on Tier 2 (10 unit min) for Government,POWERAPPS_PORTALS_LOGIN_T2_GCC,26c903d5-d385-4cb1-b650-8d81a643b3c4,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps Portals login capacity add-on Tier 2 (10 unit min) for Government,POWERAPPS_PORTALS_LOGIN_T2_GCC,26c903d5-d385-4cb1-b650-8d81a643b3c4,POWERAPPS_PORTALS_LOGIN_GCC,bea6aef1-f52d-4cce-ae09-bed96c4b1811,Power Apps Portals Login Capacity Add-On for Government +Power Apps Portals login capacity add-on Tier 3 (50 unit min),POWERAPPS_PORTALS_LOGIN_T3,927d8402-8d3b-40e8-b779-34e859f7b497,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Portals login capacity add-on Tier 3 (50 unit min),POWERAPPS_PORTALS_LOGIN_T3,927d8402-8d3b-40e8-b779-34e859f7b497,CDS_POWERAPPS_PORTALS_LOGIN,32ad3a4e-2272-43b4-88d0-80d284258208,Common Data Service Power Apps Portals Login Capacity +Power Apps Portals login capacity add-on Tier 3 (50 unit min),POWERAPPS_PORTALS_LOGIN_T3,927d8402-8d3b-40e8-b779-34e859f7b497,POWERAPPS_PORTALS_LOGIN,084747ad-b095-4a57-b41f-061d84d69f6f,Power Apps Portals Login Capacity Add-On +Power Apps Portals page view capacity add-on,POWERAPPS_PORTALS_PAGEVIEW,a0de5e3a-2500-4a19-b8f4-ec1c64692d22,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Portals page view capacity add-on,POWERAPPS_PORTALS_PAGEVIEW,a0de5e3a-2500-4a19-b8f4-ec1c64692d22,CDS_POWERAPPS_PORTALS_PAGEVIEW,72c30473-7845-460a-9feb-b58f216e8694,CDS PowerApps Portals page view capacity add-on +Power Apps Portals page view capacity add-on,POWERAPPS_PORTALS_PAGEVIEW,a0de5e3a-2500-4a19-b8f4-ec1c64692d22,POWERAPPS_PORTALS_PAGEVIEW,1c5a559a-ec06-4f76-be5b-6a315418495f,Power Apps Portals Page View Capacity Add-On +Power Apps Portals page view capacity add-on for Government,POWERAPPS_PORTALS_PAGEVIEW_GCC,15a64d3e-5b99-4c4b-ae8f-aa6da264bfe7,CDS_POWERAPPS_PORTALS_PAGEVIEW_GCC,352257a9-db78-4217-a29d-8b8d4705b014,CDS PowerApps Portals page view capacity add-on for GCC +Power Apps Portals page view capacity add-on for Government,POWERAPPS_PORTALS_PAGEVIEW_GCC,15a64d3e-5b99-4c4b-ae8f-aa6da264bfe7,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps Portals page view capacity add-on for Government,POWERAPPS_PORTALS_PAGEVIEW_GCC,15a64d3e-5b99-4c4b-ae8f-aa6da264bfe7,POWERAPPS_PORTALS_PAGEVIEW_GCC,483d5646-7724-46ac-ad71-c78b7f099d8d,Power Apps Portals Page View Capacity Add-On for Government +Power Automate per flow plan,FLOW_BUSINESS_PROCESS,b3a42176-0a8c-4c3f-ba4e-f2b37fe5be6b,CDS_Flow_Business_Process,c84e52ae-1906-4947-ac4d-6fb3e5bf7c2e,Common data service for Flow per business process plan +Power Automate per flow plan,FLOW_BUSINESS_PROCESS,b3a42176-0a8c-4c3f-ba4e-f2b37fe5be6b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Automate per flow plan,FLOW_BUSINESS_PROCESS,b3a42176-0a8c-4c3f-ba4e-f2b37fe5be6b,FLOW_BUSINESS_PROCESS,7e017b61-a6e0-4bdc-861a-932846591f6e,Flow per business process plan +Power Automate per flow plan for Government,FLOW_BUSINESS_PROCESS_GCC,d9de51e5-d8cd-45bb-8da3-1d55e28c52e6,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Automate per flow plan for Government,FLOW_BUSINESS_PROCESS_GCC,d9de51e5-d8cd-45bb-8da3-1d55e28c52e6,CDS_Flow_Business_Process_GCC,54b61386-c818-4634-8400-61c9e8f6acd3,Common Data Service for Power Automate per Business Process Plan for GCC +Power Automate per flow plan for Government,FLOW_BUSINESS_PROCESS_GCC,d9de51e5-d8cd-45bb-8da3-1d55e28c52e6,FLOW_BUSINESS_PROCESS_GCC,cb83e771-a077-4a73-9201-d955585b29fa,Power Automate per Business Process Plan for Government +Power Automate per user plan,FLOW_PER_USER,4a51bf65-409c-4a91-b845-1121b571cc9d,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 +Power Automate per user plan,FLOW_PER_USER,4a51bf65-409c-4a91-b845-1121b571cc9d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Automate per user plan,FLOW_PER_USER,4a51bf65-409c-4a91-b845-1121b571cc9d,FLOW_PER_USER,c5002c70-f725-4367-b409-f0eff4fee6c0,Flow per user plan +Power Automate per user plan dept,FLOW_PER_USER_DEPT,d80a4c5d-8f05-4b64-9926-6574b9e6aee4,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 +Power Automate per user plan dept,FLOW_PER_USER_DEPT,d80a4c5d-8f05-4b64-9926-6574b9e6aee4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Automate per user plan dept,FLOW_PER_USER_DEPT,d80a4c5d-8f05-4b64-9926-6574b9e6aee4,FLOW_PER_USER,c5002c70-f725-4367-b409-f0eff4fee6c0,Flow per user plan +Power Automate per user plan for Government,FLOW_PER_USER_GCC,c8803586-c136-479a-8ff3-f5f32d23a68e,DYN365_CDS_P2_GOV,37396c73-2203-48e6-8be1-d882dae53275,Common Data Service for Government +Power Automate per user plan for Government,FLOW_PER_USER_GCC,c8803586-c136-479a-8ff3-f5f32d23a68e,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Automate per user plan for Government,FLOW_PER_USER_GCC,c8803586-c136-479a-8ff3-f5f32d23a68e,FLOW_PER_USER_GCC,769b8bee-2779-4c5a-9456-6f4f8629fd41,Power Automate per User Plan for Government +Power Automate Premium,POWERAUTOMATE_ATTENDED_RPA,eda1941c-3c4f-4995-b5eb-e85a42175ab9,CDS_ATTENDED_RPA,3da2fd4c-1bee-4b61-a17f-94c31e5cab93,Common Data Service Attended RPA +Power Automate Premium,POWERAUTOMATE_ATTENDED_RPA,eda1941c-3c4f-4995-b5eb-e85a42175ab9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Automate Premium,POWERAUTOMATE_ATTENDED_RPA,eda1941c-3c4f-4995-b5eb-e85a42175ab9,POWER_AUTOMATE_ATTENDED_RPA,375cd0ad-c407-49fd-866a-0bff4f8a9a4d,Power Automate RPA Attended +Power Automate Premium for Government,POWERAUTOMATE_ATTENDED_RPA_GCC,d3987516-4b53-4dc0-8335-411260bf5626,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Automate Premium for Government,POWERAUTOMATE_ATTENDED_RPA_GCC,d3987516-4b53-4dc0-8335-411260bf5626,CDS_ATTENDED_RPA_GCC,4802707d-47e1-45dc-82c5-b6981f0fb38c,Common Data Service Attended RPA for Government +Power Automate Premium for Government,POWERAUTOMATE_ATTENDED_RPA_GCC,d3987516-4b53-4dc0-8335-411260bf5626,POWER_AUTOMATE_ATTENDED_RPA_GCC,fb613c67-1a58-4645-a8df-21e95a37d433,Power Automate Attended RPA for Government +Power Automate Process,Power_Automate_per_process,253ce8d3-6122-4240-8b04-f434a8fa831f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Automate Process,Power_Automate_per_process,253ce8d3-6122-4240-8b04-f434a8fa831f,DATAVERSE_FOR_POWER_AUTOMATE_PER_PROCESS,d7c3df99-6f58-40b9-8940-cd3a51679d85,Dataverse for Power Automate Per Process +Power Automate unattended RPA add-on,POWERAUTOMATE_UNATTENDED_RPA,3539d28c-6e35-4a30-b3a9-cd43d5d3e0e2,CDS_UNATTENDED_RPA,b475952f-128a-4a44-b82a-0b98a45ca7fb,Common Data Service Unattended RPA +Power Automate unattended RPA add-on,POWERAUTOMATE_UNATTENDED_RPA,3539d28c-6e35-4a30-b3a9-cd43d5d3e0e2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Automate unattended RPA add-on,POWERAUTOMATE_UNATTENDED_RPA,3539d28c-6e35-4a30-b3a9-cd43d5d3e0e2,POWER_AUTOMATE_UNATTENDED_RPA,0d373a98-a27a-426f-8993-f9a425ae99c5,Power Automate Unattended RPA add-on +Power Automate unattended RPA add-on for Government,POWERAUTOMATE_UNATTENDED_RPA_GCC,086e9b70-4720-4442-ab6d-3ef32bfb4721,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Automate unattended RPA add-on for Government,POWERAUTOMATE_UNATTENDED_RPA_GCC,086e9b70-4720-4442-ab6d-3ef32bfb4721,CDS_UNATTENDED_RPA_GCC,5141c408-df3d-456a-9878-a65119b0a750,Common Data Service Unattended RPA for Government +Power Automate unattended RPA add-on for Government,POWERAUTOMATE_UNATTENDED_RPA_GCC,086e9b70-4720-4442-ab6d-3ef32bfb4721,POWER_AUTOMATE_UNATTENDED_RPA_GCC,45e63e9f-6dd9-41fd-bd41-93bfa008c537,Power Automate Unattended RPA for Government +Power BI,POWER_BI_INDIVIDUAL_USER,e2767865-c3c9-4f09-9f99-6eee6eef861a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI,POWER_BI_INDIVIDUAL_USER,e2767865-c3c9-4f09-9f99-6eee6eef861a,SQL_IS_SSIM,fc0a60aa-feee-4746-a0e3-aecfe81a38dd,Microsoft Power BI Information Services Plan 1 +Power BI,POWER_BI_INDIVIDUAL_USER,e2767865-c3c9-4f09-9f99-6eee6eef861a,BI_AZURE_P1,2125cfd7-2110-4567-83c4-c1cd5275163d,Microsoft Power BI Reporting and Analytics Plan 1 +Power BI for Office 365 Add-On,POWER_BI_ADDON,45bc2c81-6072-436a-9b0b-3b12eefbc402,BI_AZURE_P1,2125cfd7-2110-4567-83c4-c1cd5275163d,MICROSOFT POWER BI REPORTING AND ANALYTICS PLAN 1 +Power BI for Office 365 Add-On,POWER_BI_ADDON,45bc2c81-6072-436a-9b0b-3b12eefbc402,SQL_IS_SSIM,fc0a60aa-feee-4746-a0e3-aecfe81a38dd,MICROSOFT POWER BI INFORMATION SERVICES PLAN +Power BI Premium P1,PBI_PREMIUM_P1_ADDON,7b26f5ab-a763-4c00-a1ac-f6c4b5506945,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Premium P1,PBI_PREMIUM_P1_ADDON,7b26f5ab-a763-4c00-a1ac-f6c4b5506945,PBI_PREMIUM_P1_ADDON,9da49a6d-707a-48a1-b44a-53dcde5267f8,Power BI Premium P +Power BI Premium P1 GCC,PBI_PREMIUM_P1_ADDON_GCC,f59b22a0-9819-48bf-b01d-715ef2b31027,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power BI Premium P1 GCC,PBI_PREMIUM_P1_ADDON_GCC,f59b22a0-9819-48bf-b01d-715ef2b31027,PBI_PREMIUM_P1_ADDON_GCC,30df3dbd-5bf6-4d74-9417-cccc096595e4,Power BI Premium P1 for GCC +Power BI Premium Per User,PBI_PREMIUM_PER_USER,c1d032e0-5619-4761-9b5c-75b6831e1711,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Premium Per User,PBI_PREMIUM_PER_USER,c1d032e0-5619-4761-9b5c-75b6831e1711,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User +Power BI Premium Per User,PBI_PREMIUM_PER_USER,c1d032e0-5619-4761-9b5c-75b6831e1711,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Premium Per User Add-On,PBI_PREMIUM_PER_USER_ADDON,de376a03-6e5b-42ec-855f-093fb50b8ca5,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User +Power BI Premium Per User Add-On for Faculty,PBI_PREMIUM_PER_USER_ADDON_FACULTY,c05b235f-be75-4029-8851-6a4170758eef,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User +Power BI Premium Per User Add-On for Faculty,PBI_PREMIUM_PER_USER_ADDON_FACULTY,c05b235f-be75-4029-8851-6a4170758eef,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Power BI Premium Per User Add-On for GCC,PBI_PREMIUM_PER_USER_ADDON_CE_GCC,66024bbf-4cd4-4329-95c8-c932e2ae01a8,BI_AZURE_P3_GOV,32d15238-9a8c-46da-af3f-21fc5351d365,Power BI Premium Per User for Government +Power BI Premium Per User Add-On for GCC,PBI_PREMIUM_PER_USER_ADDON_GCC,1b572d5e-1bf8-4b19-9259-f9eda31a6972,BI_AZURE_P3_GOV,32d15238-9a8c-46da-af3f-21fc5351d365,Power BI Premium Per User for Government +Power BI Premium Per User Dept,PBI_PREMIUM_PER_USER_DEPT,f168a3fb-7bcf-4a27-98c3-c235ea4b78b4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Premium Per User Dept,PBI_PREMIUM_PER_USER_DEPT,f168a3fb-7bcf-4a27-98c3-c235ea4b78b4,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User +Power BI Premium Per User Dept,PBI_PREMIUM_PER_USER_DEPT,f168a3fb-7bcf-4a27-98c3-c235ea4b78b4,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Premium Per User for Faculty,PBI_PREMIUM_PER_USER_FACULTY,060d8061-f606-4e69-a4e7-e8fff75ea1f5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Premium Per User for Faculty,PBI_PREMIUM_PER_USER_FACULTY,060d8061-f606-4e69-a4e7-e8fff75ea1f5,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User +Power BI Premium Per User for Faculty,PBI_PREMIUM_PER_USER_FACULTY,060d8061-f606-4e69-a4e7-e8fff75ea1f5,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Premium Per User for Government,PBI_PREMIUM_PER_USER_GCC,e53d92fc-778b-4a8b-83de-791240ebf88d,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power BI Premium Per User for Government,PBI_PREMIUM_PER_USER_GCC,e53d92fc-778b-4a8b-83de-791240ebf88d,BI_AZURE_P3_GOV,32d15238-9a8c-46da-af3f-21fc5351d365,Power BI Premium Per User for Government +Power BI Premium Per User for Government,PBI_PREMIUM_PER_USER_GCC,e53d92fc-778b-4a8b-83de-791240ebf88d,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government +Power BI Pro,POWER_BI_PRO,f8a1db68-be16-40ed-86d5-cb42ce701560,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Pro,POWER_BI_PRO,f8a1db68-be16-40ed-86d5-cb42ce701560,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Pro CE,POWER_BI_PRO_CE,420af87e-8177-4146-a780-3786adaffbca,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Pro CE,POWER_BI_PRO_CE,420af87e-8177-4146-a780-3786adaffbca,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Pro Dept,POWER_BI_PRO_DEPT,3a6a908c-09c5-406a-8170-8ebb63c42882,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Pro Dept,POWER_BI_PRO_DEPT,3a6a908c-09c5-406a-8170-8ebb63c42882,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Pro for Faculty,POWER_BI_PRO_FACULTY,de5f128b-46d7-4cfc-b915-a89ba060ea56,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Pro for Faculty,POWER_BI_PRO_FACULTY,de5f128b-46d7-4cfc-b915-a89ba060ea56,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Pro for GCC,POWERBI_PRO_GOV,f0612879-44ea-47fb-baf0-3d76d9235576,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power BI Pro for GCC,POWERBI_PRO_GOV,f0612879-44ea-47fb-baf0-3d76d9235576,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government +Power BI Premium EM2,PBI_PREMIUM_EM2_ADDON,8ecbd3c1-b108-437c-a859-e3c125e3f83f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Premium EM2,PBI_PREMIUM_EM2_ADDON,8ecbd3c1-b108-437c-a859-e3c125e3f83f,PBI_PREMIUM_EM2_ADDON,4e29abd1-ba96-44c0-8a72-e24e4fe9956e,Power BI Premium EM2 +Power BI Premium EM1,PBI_PREMIUM_EM1_ADDON,bc757c42-5622-4583-a483-a9e537fcb71c,EXCHANGE_S_FOUNDATION PBI_PREMIUM_EM1_ADDON,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Premium EM1,PBI_PREMIUM_EM1_ADDON,bc757c42-5622-4583-a483-a9e537fcb71c,EXCHANGE_S_FOUNDATION PBI_PREMIUM_EM1_ADDON,a64b30ba-f310-4065-b444-2670ef146db0,Power BI Premium EM1 +Power Pages authenticated users T1 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack,debc9e58-f2d7-412c-a0b6-575608564228,PowerPages_Authenticated_User,0d3366f3-266e-4117-b422-7cabbc165e7c,Power Pages Authenticated Users per site monthly capacity +Power Pages authenticated users T1 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack,debc9e58-f2d7-412c-a0b6-575608564228,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +Power Pages authenticated users T1 100 users/per site/month capacity pack CN_CN,Power Pages authenticated users T1_CN_CN,9a3c2a19-06c0-41b1-b2ea-13528d7b2e17,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T1 100 users/per site/month capacity pack CN_CN,Power Pages authenticated users T1_CN_CN,9a3c2a19-06c0-41b1-b2ea-13528d7b2e17,PowerPages_Authenticated_User_CN,967d9574-a076-4bb7-ab89-f41f64bc142e,Power Pages Authenticated Users per site monthly capacity China +Power Pages authenticated users T1 100 users/per site/month capacity pack_GCC,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_GCC,27cb5f12-2e3f-4997-a649-45298673e6a1,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T1 100 users/per site/month capacity pack_GCC,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_GCC,27cb5f12-2e3f-4997-a649-45298673e6a1,PowerPages_Authenticated_User_GCC,cdf787bd-1546-48d2-9e93-b21f9ea7067a,Power Pages Authenticated Users per site monthly capacity GCC +Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_DOD,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_DOD,b54f012e-69e1-43b1-87d0-666def064940,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_DOD,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_DOD,b54f012e-69e1-43b1-87d0-666def064940,PowerPages_Authenticated_User_DoD,03300fea-7a88-45a6-b5bd-29653803c591,Power Pages Authenticated Users per site monthly capacity DoD +Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,978ec396-f930-4ee1-85f3-e1d82e8f73a4,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,978ec396-f930-4ee1-85f3-e1d82e8f73a4,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,978ec396-f930-4ee1-85f3-e1d82e8f73a4,PowerPages_Authenticated_Users_GCCH,5410f688-68f2-47a5-9b8f-7466194a806a,Power Pages Authenticated Users per site mthly capacity GCCH New +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack,6fe1e61a-91e5-40d7-a547-0d2dcc81bce8,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack,6fe1e61a-91e5-40d7-a547-0d2dcc81bce8,PowerPages_Authenticated_User,0d3366f3-266e-4117-b422-7cabbc165e7c,Power Pages Authenticated Users per site monthly capacity +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack,6fe1e61a-91e5-40d7-a547-0d2dcc81bce8,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_GCC,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_GCC,5f43d48c-dd3d-4dd8-a059-70c2f040f979,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_GCC,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_GCC,5f43d48c-dd3d-4dd8-a059-70c2f040f979,PowerPages_Authenticated_User_GCC,cdf787bd-1546-48d2-9e93-b21f9ea7067a,Power Pages Authenticated Users per site monthly capacity GCC +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_DOD,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_DOD,f3d55e2d-4367-44fa-952e-83d0b5dd53fc,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_DOD,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_DOD,f3d55e2d-4367-44fa-952e-83d0b5dd53fc,PowerPages_Authenticated_User_DoD,03300fea-7a88-45a6-b5bd-29653803c591,Power Pages Authenticated Users per site monthly capacity DoD +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,7cae5432-61bb-48c3-b75c-831394ec13a0,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,7cae5432-61bb-48c3-b75c-831394ec13a0,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,7cae5432-61bb-48c3-b75c-831394ec13a0,PowerPages_Authenticated_Users_GCCH,5410f688-68f2-47a5-9b8f-7466194a806a,Power Pages Authenticated Users per site mthly capacity GCCH New +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack CN_CN,Power Pages authenticated users T2_CN_CN,7d2bb54a-a870-41c2-98d1-1f3b5b523275,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack CN_CN,Power Pages authenticated users T2_CN_CN,7d2bb54a-a870-41c2-98d1-1f3b5b523275,PowerPages_Authenticated_User_CN,967d9574-a076-4bb7-ab89-f41f64bc142e,Power Pages Authenticated Users per site monthly capacity China +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack CN_CN",Power Pages authenticated users T3_CN_CN,2cfd692f-a352-4fa8-b960-e3ad0c9b1178,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack CN_CN",Power Pages authenticated users T3_CN_CN,2cfd692f-a352-4fa8-b960-e3ad0c9b1178,PowerPages_Authenticated_User_CN,967d9574-a076-4bb7-ab89-f41f64bc142e,Power Pages Authenticated Users per site monthly capacity China +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack",878b8bbd-3cd0-4b44-9a56-3406741e65e0,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack",878b8bbd-3cd0-4b44-9a56-3406741e65e0,PowerPages_Authenticated_User,0d3366f3-266e-4117-b422-7cabbc165e7c,Power Pages Authenticated Users per site monthly capacity +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack",878b8bbd-3cd0-4b44-9a56-3406741e65e0,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_GCC","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_GCC",53265c61-c78c-4223-ab30-422da0c97fbb,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_GCC","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_GCC",53265c61-c78c-4223-ab30-422da0c97fbb,PowerPages_Authenticated_User_GCC,cdf787bd-1546-48d2-9e93-b21f9ea7067a,Power Pages Authenticated Users per site monthly capacity GCC +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_DOD","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_DOD",398d37b5-8deb-48db-8f7f-703eb2fb7c72,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_DOD","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_DOD",398d37b5-8deb-48db-8f7f-703eb2fb7c72,PowerPages_Authenticated_User_DoD,03300fea-7a88-45a6-b5bd-29653803c591,Power Pages Authenticated Users per site monthly capacity DoD +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH",01d46c34-3525-47d5-bd1a-5f19979938a0,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH",01d46c34-3525-47d5-bd1a-5f19979938a0,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH",01d46c34-3525-47d5-bd1a-5f19979938a0,PowerPages_Authenticated_Users_GCCH,5410f688-68f2-47a5-9b8f-7466194a806a,Power Pages Authenticated Users per site mthly capacity GCCH New +Power Pages vTrial for Makers,Power_Pages_vTrial_for_Makers,3f9f06f5-3c31-472c-985f-62d9c10ec167,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Pages vTrial for Makers,Power_Pages_vTrial_for_Makers,3f9f06f5-3c31-472c-985f-62d9c10ec167,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,Common Data Service +Power Pages vTrial for Makers,Power_Pages_vTrial_for_Makers,3f9f06f5-3c31-472c-985f-62d9c10ec167,POWER_PAGES_VTRIAL,6817d093-2d30-4249-8bd6-774f01efa78c,Power Pages vTrial for Makers +Power Virtual Agent,VIRTUAL_AGENT_BASE,e4e55366-9635-46f4-a907-fc8c3b5ec81f,CDS_VIRTUAL_AGENT_BASE,0a0a23fa-fea1-4195-bb89-b4789cb12f7f,Common Data Service for Virtual Agent Base +Power Virtual Agent,VIRTUAL_AGENT_BASE,e4e55366-9635-46f4-a907-fc8c3b5ec81f,FLOW_VIRTUAL_AGENT_BASE,4b81a949-69a1-4409-ad34-9791a6ec88aa,Power Automate for Virtual Agent +Power Virtual Agent,VIRTUAL_AGENT_BASE,e4e55366-9635-46f4-a907-fc8c3b5ec81f,VIRTUAL_AGENT_BASE,f6934f16-83d3-4f3b-ad27-c6e9c187b260,Virtual Agent Base +Power Virtual Agent for GCC,VIRTUAL_AGENT_BASE_GCC,9900a3e2-6660-4c52-9074-60c949991389,CDS_Virtual_Agent_Base_Gov,e4d0b25d-e440-4ee9-aac4-1d5a5db9f3ef,Dataverse for Virtual Agent Base for GCC +Power Virtual Agent for GCC,VIRTUAL_AGENT_BASE_GCC,9900a3e2-6660-4c52-9074-60c949991389,FLOW_Virtual_Agent_Base_Gov,f9f6db16-ace6-4838-b11c-892ee75e810a,Power Automate for Virtual Agent for GCC +Power Virtual Agent for GCC,VIRTUAL_AGENT_BASE_GCC,9900a3e2-6660-4c52-9074-60c949991389,Virtual_Agent_Base_GCC,e425b9f6-1543-45a0-8efb-f8fdaf18cba1,Virtual Agent Base for GCC +Power Virtual Agent User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,CDS_VIRTUAL_AGENT_USL,cb867b3c-7f38-4d0d-99ce-e29cd69812c8,Common Data Service +Power Virtual Agent User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,FLOW_VIRTUAL_AGENT_USL,82f141c9-2e87-4f43-8cb2-12d2701dc6b3,Power Automate for Virtual Agent +Power Virtual Agent User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,VIRTUAL_AGENT_USL,1263586c-59a4-4ad0-85e1-d50bc7149501,Virtual Agent +Power Virtual Agent User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,CDS_Virtual_Agent_Usl_GCC,95df1203-fee7-4726-b7e1-8037a8e899eb,Dataverse for Virtual Agent USL for GCC +Power Virtual Agent User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Flow_Virtual_Agent_Usl_Gov,0b939472-1861-45f1-ab6d-208f359c05cd,Flow for Virtual Agent for GCC +Power Virtual Agent User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,FLOW_Virtual_Agent_Base_Gov,f9f6db16-ace6-4838-b11c-892ee75e810a,Power Automate for Virtual Agent for GCC +Power Virtual Agent User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Power_Virtual_Agent_Usl_GCC,0bdd5466-65c3-470a-9fa6-f679b48286b0,Power Virtual Agent USL for GCC +Power Virtual Agents Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,DYN365_CDS_CCI_BOTS,cf7034ed-348f-42eb-8bbd-dddeea43ee81,Common Data Service for CCI Bots +Power Virtual Agents Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,CCIBOTS_PRIVPREV_VIRAL,ce312d15-8fdf-44c0-9974-a25a177125ee,Dynamics 365 AI for Customer Service Virtual Agents Viral +Power Virtual Agents Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,FLOW_CCI_BOTS,5d798708-6473-48ad-9776-3acc301c40af,Flow for CCI Bots +Privacy Management – risk,PRIVACY_MANAGEMENT_RISK,e42bc969-759a-4820-9283-6b73085b68e6,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Privacy Management – risk,PRIVACY_MANAGEMENT_RISK,e42bc969-759a-4820-9283-6b73085b68e6,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk +Privacy Management – risk,PRIVACY_MANAGEMENT_RISK,e42bc969-759a-4820-9283-6b73085b68e6,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) +Privacy Management - risk for EDU,PRIVACY_MANAGEMENT_RISK_EDU,dcdbaae7-d8c9-40cb-8bb1-62737b9e5a86,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Privacy Management - risk for EDU,PRIVACY_MANAGEMENT_RISK_EDU,dcdbaae7-d8c9-40cb-8bb1-62737b9e5a86,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk +Privacy Management - risk for EDU,PRIVACY_MANAGEMENT_RISK_EDU,dcdbaae7-d8c9-40cb-8bb1-62737b9e5a86,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) +Privacy Management - risk GCC,PRIVACY_MANAGEMENT_RISK_GCC,046f7d3b-9595-4685-a2e8-a2832d2b26aa,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Privacy Management - risk GCC,PRIVACY_MANAGEMENT_RISK_GCC,046f7d3b-9595-4685-a2e8-a2832d2b26aa,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk +Privacy Management - risk GCC,PRIVACY_MANAGEMENT_RISK_GCC,046f7d3b-9595-4685-a2e8-a2832d2b26aa,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) +Privacy Management - risk_USGOV_DOD,PRIVACY_MANAGEMENT_RISK_USGOV_DOD,83b30692-0d09-435c-a455-2ab220d504b9,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Privacy Management - risk_USGOV_DOD,PRIVACY_MANAGEMENT_RISK_USGOV_DOD,83b30692-0d09-435c-a455-2ab220d504b9,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk +Privacy Management - risk_USGOV_DOD,PRIVACY_MANAGEMENT_RISK_USGOV_DOD,83b30692-0d09-435c-a455-2ab220d504b9,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) +Privacy Management - risk_USGOV_GCCHIGH,PRIVACY_MANAGEMENT_RISK_USGOV_GCCHIGH,787d7e75-29ca-4b90-a3a9-0b780b35367c,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Privacy Management - risk_USGOV_GCCHIGH,PRIVACY_MANAGEMENT_RISK_USGOV_GCCHIGH,787d7e75-29ca-4b90-a3a9-0b780b35367c,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk +Privacy Management - risk_USGOV_GCCHIGH,PRIVACY_MANAGEMENT_RISK_USGOV_GCCHIGH,787d7e75-29ca-4b90-a3a9-0b780b35367c,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) +Privacy Management - subject rights request (1),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2,d9020d1c-94ef-495a-b6de-818cbbcaa3b8,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (1),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2,d9020d1c-94ef-495a-b6de-818cbbcaa3b8,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1) +Privacy Management - subject rights request (1),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2,d9020d1c-94ef-495a-b6de-818cbbcaa3b8,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1 - Exchange) +Privacy Management - subject rights request (1) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_EDU_V2,475e3e81-3c75-4e07-95b6-2fed374536c8,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (1) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_EDU_V2,475e3e81-3c75-4e07-95b6-2fed374536c8,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1 - Exchange) +Privacy Management - subject rights request (1) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_EDU_V2,475e3e81-3c75-4e07-95b6-2fed374536c8,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1) +Privacy Management - subject rights request (1) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_GCC,017fb6f8-00dd-4025-be2b-4eff067cae72,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (1) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_GCC,017fb6f8-00dd-4025-be2b-4eff067cae72,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1 - Exchange) +Privacy Management - subject rights request (1) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_GCC,017fb6f8-00dd-4025-be2b-4eff067cae72,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1) +Privacy Management - subject rights request (1) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_DOD,d3c841f3-ea93-4da2-8040-6f2348d20954,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (1) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_DOD,d3c841f3-ea93-4da2-8040-6f2348d20954,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1 - Exchange) +Privacy Management - subject rights request (1) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_DOD,d3c841f3-ea93-4da2-8040-6f2348d20954,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1) +Privacy Management - subject rights request (1) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_GCCHIGH,706d2425-6170-4818-ba08-2ad8f1d2d078,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (1) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_GCCHIGH,706d2425-6170-4818-ba08-2ad8f1d2d078,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1 - Exchange) +Privacy Management - subject rights request (1) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_GCCHIGH,706d2425-6170-4818-ba08-2ad8f1d2d078,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1) +Privacy Management - subject rights request (10),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2,78ea43ac-9e5d-474f-8537-4abb82dafe27,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (10),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2,78ea43ac-9e5d-474f-8537-4abb82dafe27,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) +Privacy Management - subject rights request (10),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2,78ea43ac-9e5d-474f-8537-4abb82dafe27,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) +Privacy Management - subject rights request (10) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_EDU_V2,e001d9f1-5047-4ebf-8927-148530491f83,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (10) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_EDU_V2,e001d9f1-5047-4ebf-8927-148530491f83,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) +Privacy Management - subject rights request (10) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_EDU_V2,e001d9f1-5047-4ebf-8927-148530491f83,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) +Privacy Management - subject rights request (10) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_GCC,a056b037-1fa0-4133-a583-d05cff47d551,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (10) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_GCC,a056b037-1fa0-4133-a583-d05cff47d551,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) +Privacy Management - subject rights request (10) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_GCC,a056b037-1fa0-4133-a583-d05cff47d551,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) +Privacy Management - subject rights request (10) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_DOD,ab28dfa1-853a-4f54-9315-f5146975ac9a,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (10) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_DOD,ab28dfa1-853a-4f54-9315-f5146975ac9a,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) +Privacy Management - subject rights request (10) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_DOD,ab28dfa1-853a-4f54-9315-f5146975ac9a,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) +Privacy Management - subject rights request (10) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_GCCHIGH,f6aa3b3d-62f4-4c1d-a44f-0550f40f729c,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (10) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_GCCHIGH,f6aa3b3d-62f4-4c1d-a44f-0550f40f729c,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) +Privacy Management - subject rights request (10) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_GCCHIGH,f6aa3b3d-62f4-4c1d-a44f-0550f40f729c,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50,c416b349-a83c-48cb-9529-c420841dedd6,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50,c416b349-a83c-48cb-9529-c420841dedd6,PRIVACY_MANGEMENT_DSR,8bbd1fea-6dc6-4aef-8abc-79af22d746e4,Privacy Management - Subject Rights Request +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50,c416b349-a83c-48cb-9529-c420841dedd6,PRIVACY_MANGEMENT_DSR_EXCHANGE,7ca7f875-98db-4458-ab1b-47503826dd73,Privacy Management - Subject Rights Request (Exchange) +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_V2,f6c82f13-9554-4da1-bed3-c024cc906e02,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_V2,f6c82f13-9554-4da1-bed3-c024cc906e02,PRIVACY_MANGEMENT_DSR,8bbd1fea-6dc6-4aef-8abc-79af22d746e4,Privacy Management - Subject Rights Request +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_V2,f6c82f13-9554-4da1-bed3-c024cc906e02,PRIVACY_MANGEMENT_DSR_EXCHANGE,7ca7f875-98db-4458-ab1b-47503826dd73,Privacy Management - Subject Rights Request (Exchange) +Privacy Management - subject rights request (50) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_EDU_V2,ed45d397-7d61-4110-acc0-95674917bb14,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (50) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_EDU_V2,ed45d397-7d61-4110-acc0-95674917bb14,PRIVACY_MANGEMENT_DSR,8bbd1fea-6dc6-4aef-8abc-79af22d746e4,Privacy Management - Subject Rights Request +Privacy Management - subject rights request (50) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_EDU_V2,ed45d397-7d61-4110-acc0-95674917bb14,PRIVACY_MANGEMENT_DSR_EXCHANGE,7ca7f875-98db-4458-ab1b-47503826dd73,Privacy Management - Subject Rights Request (Exchange) +Privacy Management - subject rights request (100),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2,cf4c6c3b-f863-4940-97e8-1d25e912f4c4,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (100),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2,cf4c6c3b-f863-4940-97e8-1d25e912f4c4,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) +Privacy Management - subject rights request (100),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2,cf4c6c3b-f863-4940-97e8-1d25e912f4c4,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) +Privacy Management - subject rights request (100) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_EDU_V2,9b85b4f0-92d9-4c3d-b230-041520cb1046,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (100) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_EDU_V2,9b85b4f0-92d9-4c3d-b230-041520cb1046,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) +Privacy Management - subject rights request (100) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_EDU_V2,9b85b4f0-92d9-4c3d-b230-041520cb1046,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) +Privacy Management - subject rights request (100) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_GCC,91bbc479-4c2c-4210-9c88-e5b468c35b83,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (100) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_GCC,91bbc479-4c2c-4210-9c88-e5b468c35b83,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) +Privacy Management - subject rights request (100) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_GCC,91bbc479-4c2c-4210-9c88-e5b468c35b83,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) +Privacy Management - subject rights request (100) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_DOD,ba6e69d5-ba2e-47a7-b081-66c1b8e7e7d4,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (100) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_DOD,ba6e69d5-ba2e-47a7-b081-66c1b8e7e7d4,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) +Privacy Management - subject rights request (100) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_DOD,ba6e69d5-ba2e-47a7-b081-66c1b8e7e7d4,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) +Privacy Management - subject rights request (100) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_GCCHIGH,cee36ce4-cc31-481f-8cab-02765d3e441f,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (100) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_GCCHIGH,cee36ce4-cc31-481f-8cab-02765d3e441f,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) +Privacy Management - subject rights request (100) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_GCCHIGH,cee36ce4-cc31-481f-8cab-02765d3e441f,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) +Project for Office 365,PROJECTCLIENT,a10d5e58-74da-4312-95c8-76be4e5b75a0,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,PROJECT ONLINE DESKTOP CLIENT +Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web +Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Project Online Essentials for GCC,PROJECTESSENTIALS_GOV,ca1a159a-f09e-42b8-bb82-cb6420f54c8e,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Project Online Essentials for GCC,PROJECTESSENTIALS_GOV,ca1a159a-f09e-42b8-bb82-cb6420f54c8e,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Project Online Essentials for GCC,PROJECTESSENTIALS_GOV,ca1a159a-f09e-42b8-bb82-cb6420f54c8e,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Project Online Essentials for GCC,PROJECTESSENTIALS_GOV,ca1a159a-f09e-42b8-bb82-cb6420f54c8e,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Project Online Premium,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,PROJECT ONLINE DESKTOP CLIENT +Project Online Premium,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,SHAREPOINT_PROJECT +Project Online Premium,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Project Online Premium,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,SHAREPOINT_PROJECT +Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,PROJECT ONLINE DESKTOP CLIENT +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,SHAREPOINT_PROJECT +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,DYN365_CDS_FOR_PROJECT_P1,a6f677b3-62a6-4644-93e7-2a85d240845e,COMMON DATA SERVICE FOR PROJECT P1 +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,Power_Automate_For_Project_P1,00283e6b-2bd8-440f-a2d5-87358e4c89a1,POWER AUTOMATE FOR PROJECT P1 +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,PROJECT ONLINE ESSENTIALS +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,PROJECT_P1,4a12c688-56c6-461a-87b1-30d6f32136f9,PROJECT P1 +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINT +Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,DYN365_CDS_FOR_PROJECT_P1,a6f677b3-62a6-4644-93e7-2a85d240845e,Common Data Service for Project P1 +Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,Power_Automate_For_Project_P1,00283e6b-2bd8-440f-a2d5-87358e4c89a1,Power Automate for Project P1 +Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,PROJECT_P1,4a12c688-56c6-461a-87b1-30d6f32136f9,Project P1 +Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINT STANDARD +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,FLOW_FOR_PROJECT,fa200448-008c-4acb-abd4-ea106ed2199d,Flow for Project +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,Project Online Service +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,PROJECT_PROFESSIONAL,818523f5-016b-4355-9be8-ed6944946ea7,Project P3 +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,FLOW_FOR_PROJECT,fa200448-008c-4acb-abd4-ea106ed2199d,Flow for Project +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,Project Online Service +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,PROJECT_PROFESSIONAL,818523f5-016b-4355-9be8-ed6944946ea7,Project P3 +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,SHAREPOINT_PROJECT_EDU,664a2fed-6c7a-468e-af35-d61740f0ec90,Project Online Service for Education +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,PROJECT_PROFESSIONAL_FACULTY,22572403-045f-432b-a660-af949c0a77b5,Project P3 for Faculty +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,FLOW_FOR_PROJECT,fa200448-008c-4acb-abd4-ea106ed2199d,Power Automate for Project +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,PROJECT_PROFESSIONAL_FOR_GOV,49c7bc16-7004-4df6-8cd5-4ec48b7e9ea0,Project P3 for GOV +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,MCOMEETBASIC_GOV,986d454b-9027-4d9f-880b-f1b68f920cc4,Microsoft Teams Audio Conferencing with dial-out to select geographies for GCC +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,PROJECT_PROFESSIONAL_FOR_GOV,49c7bc16-7004-4df6-8cd5-4ec48b7e9ea0,Project P3 for GOV +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,Project Online Service +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINT_PROJECT_EDU,664a2fed-6c7a-468e-af35-d61740f0ec90,Project Online Service for Education +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,PROJECT_PROFESSIONAL_FACULTY,22572403-045f-432b-a660-af949c0a77b5,Project P3 for Faculty +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office Online for Education +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Client +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,Project Online for Education,664a2fed-6c7a-468e-af35-d61740f0ec90,Project Online for Education +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint Plan 2 for EDU +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,FLOW_FOR_PROJECT,fa200448-008c-4acb-abd4-ea106ed2199d,Power Automate for Project +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,PROJECT_PROFESSIONAL_FOR_GOV,49c7bc16-7004-4df6-8cd5-4ec48b7e9ea0,Project P3 for GOV +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,SHAREPOINT_PROJECT_EDU,664a2fed-6c7a-468e-af35-d61740f0ec90,Project Online Service for Education +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Rights Management Adhoc,RIGHTSMANAGEMENT_ADHOC,8c4ce438-32a7-4ac5-91a6-e22ae08d9c8b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Rights Management Adhoc,RIGHTSMANAGEMENT_ADHOC,8c4ce438-32a7-4ac5-91a6-e22ae08d9c8b,RMS_S_ADHOC,7a39d7dd-e456-4e09-842a-0204ee08187b,Rights Management Adhoc +Rights Management Service Basic Content Protection,RMSBASIC,093e8d14-a334-43d9-93e3-30589a8b47d0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Rights Management Service Basic Content Protection,RMSBASIC,093e8d14-a334-43d9-93e3-30589a8b47d0,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Sensor Data Intelligence Additional Machines Add-in for Dynamics 365 Supply Chain Management,DYN365_IOT_INTELLIGENCE_ADDL_MACHINES,08e18479-4483-4f70-8f17-6f92156d8ea9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Sensor Data Intelligence Additional Machines Add-in for Dynamics 365 Supply Chain Management,DYN365_IOT_INTELLIGENCE_ADDL_MACHINES,08e18479-4483-4f70-8f17-6f92156d8ea9,D365_IOTFORSCM_ADDITIONAL,a5f38206-2f48-4d83-9957-525f4e75e9c0,IoT Intelligence Add-in Additional Machines +Sensor Data Intelligence Scenario Add-in for Dynamics 365 Supply Chain Management,DYN365_IOT_INTELLIGENCE_SCENARIO,9ea4bdef-a20b-4668-b4a7-73e1f7696e0a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Sensor Data Intelligence Scenario Add-in for Dynamics 365 Supply Chain Management,DYN365_IOT_INTELLIGENCE_SCENARIO,9ea4bdef-a20b-4668-b4a7-73e1f7696e0a,D365_IOTFORSCM,83dd9619-c7d5-44da-9250-dc4ee79fff7e,Iot Intelligence Add-in for D365 Supply Chain Management +SharePoint Online (Plan 1),SHAREPOINTSTANDARD,1fc08a02-8b3d-43b9-831e-f76859e04e1a,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD +SharePoint Online (Plan 2),SHAREPOINTENTERPRISE,a9732ec9-17d9-494c-a51c-d6b45b384dcb,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +SharePoint Syntex,Intelligent_Content_Services,f61d4aba-134f-44e9-a2a0-f81a5adb26e4,CDS_O365_E5_KM,3069d530-e41b-421c-ad59-fb1001a23e11,Common Data Service for SharePoint Syntex +SharePoint Syntex,Intelligent_Content_Services,f61d4aba-134f-44e9-a2a0-f81a5adb26e4,Intelligent_Content_Services,f00bd55e-1633-416e-97c0-03684e42bc42,SharePoint Syntex +SharePoint Syntex,Intelligent_Content_Services,f61d4aba-134f-44e9-a2a0-f81a5adb26e4,Intelligent_Content_Services_SPO_type,fd2e7f90-1010-487e-a11b-d2b1ae9651fc,SharePoint Syntex - SPO type +Skype for Business Online (Plan 1),MCOIMP,b8b749f8-a4ef-4887-9539-c95b1eaa5db7,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,SKYPE FOR BUSINESS ONLINE (PLAN 1) +Skype for Business Online (Plan 2),MCOSTANDARD,d42c793f-6c78-4f43-92ca-e8f6a02b035f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Skype for Business PSTN Calling Domestic Small,MCOPSTN5,d43177b5-475b-4880-92d4-d54c27b5efbd,Skype for Business PSTN Calling Domestic Small,9a0125a5-c8f8-4526-b231-49e2abe0ebce,Skype for Business PSTN Calling Domestic Small +Skype for Business PSTN Domestic and International Calling,MCOPSTN2,d3b4fe1f-9992-4930-8acb-ca6ec609365e,MCOPSTN2,5a10155d-f5c1-411a-a8ec-e99aae125390,DOMESTIC AND INTERNATIONAL CALLING PLAN +Skype for Business PSTN Domestic Calling,MCOPSTN1,0dab259f-bf13-4952-b7f8-7db8f131b28d,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,DOMESTIC CALLING PLAN +Skype for Business PSTN Domestic Calling (120 Minutes),MCOPSTN5,54a152dc-90de-4996-93d2-bc47e670fc06,MCOPSTN5,54a152dc-90de-4996-93d2-bc47e670fc06,DOMESTIC CALLING PLAN +Skype for Business PSTN Usage Calling Plan,MCOPSTNPP,06b48c5f-01d9-4b18-9015-03b52040f51a,MCOPSTN3,6b340437-d6f9-4dc5-8cc2-99163f7f83d6,MCOPSTN3 +Teams Phone Mobile,Operator_Connect_Mobile,b84d58c9-0a0d-46cf-8a4b-d9f23c1674d5,MCOFMC1,cb22fbd7-ed7d-4786-a27a-e4cd617b69c0,Teams Phone Mobile +Teams Phone with Calling Plan,MCOTEAMS_ESSENTIALS,ae2343d1-0999-43f6-ae18-d816516f6e78,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,Microsoft 365 Domestic Calling Plan +Teams Phone with Calling Plan,MCOTEAMS_ESSENTIALS,ae2343d1-0999-43f6-ae18-d816516f6e78,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,MICROSOFT_ECDN,85704d55-2e73-47ee-93b4-4b8ea14db92b,Microsoft eCDN +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,MESH_IMMERSIVE,acbca54f-c771-423b-a476-6d7a98cbbcec,Microsoft Mesh +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_MGMT,0504111f-feb8-4a3c-992a-70280f9a2869,Microsoft Teams Premium Intelligent +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_CUST,cc8c0802-a325-43df-8cba-995d0c6cb373,Microsoft Teams Premium Personalized +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_PROTECTION,f8b44f54-18bb-46a3-9658-44ab58712968,Microsoft Teams Premium Secure +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_VIRTUALAPPT,9104f592-f2a7-4f77-904c-ca5a5715883f,Microsoft Teams Premium Virtual Appointment +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,MCO_VIRTUAL_APPT,711413d0-b36e-4cd4-93db-0a50a4ab7ea3,Microsoft Teams Premium Virtual Appointments +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_WEBINAR,78b58230-ec7e-4309-913c-93a45cc4735b,Microsoft Teams Premium Webinar +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,MICROSOFT_ECDN,85704d55-2e73-47ee-93b4-4b8ea14db92b,Microsoft eCDN +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_MGMT,0504111f-feb8-4a3c-992a-70280f9a2869,Microsoft Teams Premium Intelligent +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_CUST,cc8c0802-a325-43df-8cba-995d0c6cb373,Microsoft Teams Premium Personalized +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_PROTECTION,f8b44f54-18bb-46a3-9658-44ab58712968,Microsoft Teams Premium Secure +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_VIRTUALAPPT,9104f592-f2a7-4f77-904c-ca5a5715883f,Microsoft Teams Premium Virtual Appointment +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,MCO_VIRTUAL_APPT,711413d0-b36e-4cd4-93db-0a50a4ab7ea3,Microsoft Teams Premium Virtual Appointments +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_WEBINAR,78b58230-ec7e-4309-913c-93a45cc4735b,Microsoft Teams Premium Webinar +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,QUEUES_APP,ab2d4fb5-f80a-4bf1-a11d-7f1da254041b,Queues app for Microsoft Teams +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MMR_P1,bdaa59a3-74fd-4137-981a-31d4f84eb8a0,Meeting Room Managed Services +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +TELSTRA Calling for O365,MCOPSTNEAU2,de3312e1-c7b0-46e6-a7c3-a515ff90bc86,MCOPSTNEAU,7861360b-dc3b-4eba-a3fc-0d323a035746,AUSTRALIA CALLING PLAN +Universal Print,UNIVERSAL_PRINT,9f3d9c1d-25a5-4aaa-8e59-23a1e6450a67,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Viva Learning,VIVA_LEARNING,c9d442fc-21fb-4bd7-89e0-a710d74987f6,VIVA_LEARNING_PREMIUM,7162bd38-edae-4022-83a7-c5837f951759,Viva Learning +Universal Print,UNIVERSAL_PRINT,9f3d9c1d-25a5-4aaa-8e59-23a1e6450a67,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Visio Plan 1,VISIO_PLAN1_DEPT,ca7f3140-d88c-455b-9a1c-7f0679e31a76,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Visio Plan 1,VISIO_PLAN1_DEPT,ca7f3140-d88c-455b-9a1c-7f0679e31a76,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,OneDrive for business Basic +Visio Plan 1,VISIO_PLAN1_DEPT,ca7f3140-d88c-455b-9a1c-7f0679e31a76,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,Visio web app +Visio Plan 2,VISIO_PLAN2_DEPT,38b434d2-a15e-4cde-9a98-e737c75623e1,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Visio Plan 2,VISIO_PLAN2_DEPT,38b434d2-a15e-4cde-9a98-e737c75623e1,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,OneDrive for Business (Basic) +Visio Plan 2,VISIO_PLAN2_DEPT,38b434d2-a15e-4cde-9a98-e737c75623e1,VISIO_CLIENT_SUBSCRIPTION,663a804f-1c30-4ff0-9915-9db84f0d1cea,Visio Desktop App +Visio Plan 2,VISIO_PLAN2_DEPT,38b434d2-a15e-4cde-9a98-e737c75623e1,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,Visio Web App +Visio Plan 2_USGOV_GCCHIGH,VISIOCLIENT_USGOV_GCCHIGH,80e52531-ad7f-44ea-abc3-28e389462f1b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Visio Plan 2_USGOV_GCCHIGH,VISIOCLIENT_USGOV_GCCHIGH,80e52531-ad7f-44ea-abc3-28e389462f1b,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,OneDrive for Business (Basic) +Visio Plan 2_USGOV_GCCHIGH,VISIOCLIENT_USGOV_GCCHIGH,80e52531-ad7f-44ea-abc3-28e389462f1b,VISIO_CLIENT_SUBSCRIPTION,663a804f-1c30-4ff0-9915-9db84f0d1cea,Visio Desktop App +Visio Plan 2_USGOV_GCCHIGH,VISIOCLIENT_USGOV_GCCHIGH,80e52531-ad7f-44ea-abc3-28e389462f1b,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,Visio Web App +Visio Plan 1,VISIOONLINE_PLAN1,4b244418-9658-4451-a2b8-b5e2b364e9bd,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Visio Plan 1,VISIOONLINE_PLAN1,4b244418-9658-4451-a2b8-b5e2b364e9bd,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,ONEDRIVE FOR BUSINESS BASIC +Visio Plan 1,VISIOONLINE_PLAN1,4b244418-9658-4451-a2b8-b5e2b364e9bd,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,VISIO WEB APP +Visio Plan 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Visio Plan 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,ONEDRIVE FOR BUSINESS BASIC +Visio Plan 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,VISIO_CLIENT_SUBSCRIPTION,663a804f-1c30-4ff0-9915-9db84f0d1cea,VISIO DESKTOP APP +Visio Plan 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,VISIO WEB APP +Visio Plan 2 for GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT +Visio Plan 2 for GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,ONEDRIVE_BASIC_GOV,98709c2e-96b5-4244-95f5-a0ebe139fb8a,ONEDRIVE FOR BUSINESS BASIC FOR GOVERNMENT +Visio Plan 2 for GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,VISIO_CLIENT_SUBSCRIPTION_GOV,f85945f4-7a55-4009-bc39-6a5f14a8eac1,VISIO DESKTOP APP FOR Government +Visio Plan 2 for GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,VISIOONLINE_GOV,8a9ecb07-cfc0-48ab-866c-f83c4d911576,VISIO WEB APP FOR GOVERNMENT +Visio Plan 2 for Faculty,VISIOCLIENT_FACULTY,bf95fd32-576a-4742-8d7a-6dc4940b9532,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Visio Plan 2 for Faculty,VISIOCLIENT_FACULTY,bf95fd32-576a-4742-8d7a-6dc4940b9532,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,OneDrive for Business (Basic) +Visio Plan 2 for Faculty,VISIOCLIENT_FACULTY,bf95fd32-576a-4742-8d7a-6dc4940b9532,VISIO_CLIENT_SUBSCRIPTION,663a804f-1c30-4ff0-9915-9db84f0d1cea,Visio Desktop App +Visio Plan 2 for Faculty,VISIOCLIENT_FACULTY,bf95fd32-576a-4742-8d7a-6dc4940b9532,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,Visio Web App +Viva Goals User-led,Viva_Goals_User_led,3a349c99-ffec-43d2-a2e8-6b97fcb71103,Viva_Goals_Premium,b44c6eaf-5c9f-478c-8f16-8cea26353bfb,Viva Goals +Viva Topics,TOPIC_EXPERIENCES,4016f256-b063-4864-816e-d818aad600c9,GRAPH_CONNECTORS_SEARCH_INDEX_TOPICEXP,b74d57b2-58e9-484a-9731-aeccbba954f0,Graph Connectors Search with Index (Viva Topics) +Viva Topics,TOPIC_EXPERIENCES,4016f256-b063-4864-816e-d818aad600c9,CORTEX,c815c93d-0759-4bb8-b857-bc921a71be83,Viva Topics +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,DATAVERSE_FOR_POWERAUTOMATE_DESKTOP,59231cdf-b40d-4534-a93e-14d0cd31d27e,Dataverse for PAD +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,POWERAUTOMATE_DESKTOP_FOR_WIN,2d589a15-b171-4e61-9b5f-31d15eeb2872,PAD for Windows +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) +Windows 10/11 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) +Windows 10/11 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,Virtualization Rights for Windows 10,e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise E3,WIN10_PRO_ENT_SUB,cb10e6cd-9da4-4992-867b-67546b1db821,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,WINDOWS 10 ENTERPRISE +Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,UNIVERSAL PRINT +Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,WINDOWS 10 ENTERPRISE (NEW) +Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,WINDOWS UPDATE FOR BUSINESS DEPLOYMENT SERVICE +Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender For Endpoint +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Windows 10/11 Enterprise E5 Commercial (GCC Compatible),WINE5_GCC_COMPAT,938fd547-d794-42a4-996c-1cc206619580,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Windows 10/11 Enterprise E5 Commercial (GCC Compatible),WINE5_GCC_COMPAT,938fd547-d794-42a4-996c-1cc206619580,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender For Endpoint +Windows 10/11 Enterprise E5 Commercial (GCC Compatible),WINE5_GCC_COMPAT,938fd547-d794-42a4-996c-1cc206619580,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,DATAVERSE_FOR_POWERAUTOMATE_DESKTOP,59231cdf-b40d-4534-a93e-14d0cd31d27e,Dataverse for PAD +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,POWERAUTOMATE_DESKTOP_FOR_WIN,2d589a15-b171-4e61-9b5f-31d15eeb2872,PAD for Windows +Windows 365 Business 1 vCPU 2 GB 64 GB,CPC_B_1C_2RAM_64GB,816eacd3-e1e3-46b3-83c8-1ffd37e053d9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 1 vCPU 2 GB 64 GB,CPC_B_1C_2RAM_64GB,816eacd3-e1e3-46b3-83c8-1ffd37e053d9,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 1 vCPU 2 GB 64 GB,CPC_B_1C_2RAM_64GB,816eacd3-e1e3-46b3-83c8-1ffd37e053d9,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 1 vCPU 2 GB 64 GB,CPC_B_1C_2RAM_64GB,816eacd3-e1e3-46b3-83c8-1ffd37e053d9,CPC_B_1C_2RAM_64GB,3b98b912-1720-4a1e-9630-c9a41dbb61d8,Windows 365 Business 1 vCPU 2 GB 64 GB +Windows 365 Business 2 vCPU 4 GB 128 GB,CPC_B_2C_4RAM_128GB,135bee78-485b-4181-ad6e-40286e311850,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 2 vCPU 4 GB 128 GB,CPC_B_2C_4RAM_128GB,135bee78-485b-4181-ad6e-40286e311850,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 2 vCPU 4 GB 128 GB,CPC_B_2C_4RAM_128GB,135bee78-485b-4181-ad6e-40286e311850,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 2 vCPU 4 GB 128 GB,CPC_B_2C_4RAM_128GB,135bee78-485b-4181-ad6e-40286e311850,CPC_B_2C_4RAM_128GB,1a13832e-cd79-497d-be76-24186f55c8b0,Windows 365 Business 2 vCPU 4 GB 128 GB +Windows 365 Business 2 vCPU 4 GB 256 GB,CPC_B_2C_4RAM_256GB,805d57c3-a97d-4c12-a1d0-858ffe5015d0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 2 vCPU 4 GB 256 GB,CPC_B_2C_4RAM_256GB,805d57c3-a97d-4c12-a1d0-858ffe5015d0,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 2 vCPU 4 GB 256 GB,CPC_B_2C_4RAM_256GB,805d57c3-a97d-4c12-a1d0-858ffe5015d0,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 2 vCPU 4 GB 256 GB,CPC_B_2C_4RAM_256GB,805d57c3-a97d-4c12-a1d0-858ffe5015d0,CPC_B_2C_4RAM_256GB,a0b1c075-51c9-4a42-b34c-308f3993bb7e,Windows 365 Business 2 vCPU 4 GB 256 GB +Windows 365 Business 2 vCPU 4 GB 64 GB,CPC_B_2C_4RAM_64GB,42e6818f-8966-444b-b7ac-0027c83fa8b5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 2 vCPU 4 GB 64 GB,CPC_B_2C_4RAM_64GB,42e6818f-8966-444b-b7ac-0027c83fa8b5,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 2 vCPU 4 GB 64 GB,CPC_B_2C_4RAM_64GB,42e6818f-8966-444b-b7ac-0027c83fa8b5,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 2 vCPU 4 GB 64 GB,CPC_B_2C_4RAM_64GB,42e6818f-8966-444b-b7ac-0027c83fa8b5,CPC_B_2C_4RAM_64GB,a790cd6e-a153-4461-83c7-e127037830b6,Windows 365 Business 2 vCPU 4 GB 64 GB +Windows 365 Business 2 vCPU 8 GB 128 GB,CPC_B_2C_8RAM_128GB,71f21848-f89b-4aaa-a2dc-780c8e8aac5b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 2 vCPU 8 GB 128 GB,CPC_B_2C_8RAM_128GB,71f21848-f89b-4aaa-a2dc-780c8e8aac5b,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 2 vCPU 8 GB 128 GB,CPC_B_2C_8RAM_128GB,71f21848-f89b-4aaa-a2dc-780c8e8aac5b,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 2 vCPU 8 GB 128 GB,CPC_B_2C_8RAM_128GB,71f21848-f89b-4aaa-a2dc-780c8e8aac5b,CPC_SS_2,9d2eed2c-b0c0-4a89-940c-bc303444a41b,"Windows 365 Business 2 vCPU, 8 GB, 128 GB" +Windows 365 Business 2 vCPU 8 GB 256 GB,CPC_B_2C_8RAM_256GB,750d9542-a2f8-41c7-8c81-311352173432,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 2 vCPU 8 GB 256 GB,CPC_B_2C_8RAM_256GB,750d9542-a2f8-41c7-8c81-311352173432,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 2 vCPU 8 GB 256 GB,CPC_B_2C_8RAM_256GB,750d9542-a2f8-41c7-8c81-311352173432,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 2 vCPU 8 GB 256 GB,CPC_B_2C_8RAM_256GB,750d9542-a2f8-41c7-8c81-311352173432,CPC_B_2C_8RAM_256GB,1a3ef005-2ef6-434b-8be1-faa56c892854,Windows 365 Business 2 vCPU 8 GB 256 GB +Windows 365 Business 4 vCPU 16 GB 128 GB,CPC_B_4C_16RAM_128GB,ad83ac17-4a5a-4ebb-adb2-079fb277e8b9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 4 vCPU 16 GB 128 GB,CPC_B_4C_16RAM_128GB,ad83ac17-4a5a-4ebb-adb2-079fb277e8b9,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 4 vCPU 16 GB 128 GB,CPC_B_4C_16RAM_128GB,ad83ac17-4a5a-4ebb-adb2-079fb277e8b9,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 4 vCPU 16 GB 128 GB,CPC_B_4C_16RAM_128GB,ad83ac17-4a5a-4ebb-adb2-079fb277e8b9,CPC_B_4C_16RAM_128GB,1d4f75d3-a19b-49aa-88cb-f1ea1690b550,Windows 365 Business 4 vCPU 16 GB 128 GB +Windows 365 Business 4 vCPU 16 GB 128 GB (with Windows Hybrid Benefit),CPC_B_4C_16RAM_128GB_WHB,439ac253-bfbc-49c7-acc0-6b951407b5ef,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 4 vCPU 16 GB 128 GB (with Windows Hybrid Benefit),CPC_B_4C_16RAM_128GB_WHB,439ac253-bfbc-49c7-acc0-6b951407b5ef,CPC_B_4C_16RAM_128GB,1d4f75d3-a19b-49aa-88cb-f1ea1690b550,Windows 365 Business 4 vCPU 16 GB 128 GB +Windows 365 Business 4 vCPU 16 GB 256 GB,CPC_B_4C_16RAM_256GB,b3891a9f-c7d9-463c-a2ec-0b2321bda6f9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 4 vCPU 16 GB 256 GB,CPC_B_4C_16RAM_256GB,b3891a9f-c7d9-463c-a2ec-0b2321bda6f9,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 4 vCPU 16 GB 256 GB,CPC_B_4C_16RAM_256GB,b3891a9f-c7d9-463c-a2ec-0b2321bda6f9,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 4 vCPU 16 GB 256 GB,CPC_B_4C_16RAM_256GB,b3891a9f-c7d9-463c-a2ec-0b2321bda6f9,CPC_B_4C_16RAM_256GB,30f6e561-8805-41d0-80ce-f82698b72d7d,Windows 365 Business 4 vCPU 16 GB 256 GB +Windows 365 Business 4 vCPU 16 GB 512 GB,CPC_B_4C_16RAM_512GB,1b3043ad-dfc6-427e-a2c0-5ca7a6c94a2b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 4 vCPU 16 GB 512 GB,CPC_B_4C_16RAM_512GB,1b3043ad-dfc6-427e-a2c0-5ca7a6c94a2b,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 4 vCPU 16 GB 512 GB,CPC_B_4C_16RAM_512GB,1b3043ad-dfc6-427e-a2c0-5ca7a6c94a2b,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 4 vCPU 16 GB 512 GB,CPC_B_4C_16RAM_512GB,1b3043ad-dfc6-427e-a2c0-5ca7a6c94a2b,CPC_B_4C_16RAM_512GB,15499661-b229-4a1f-b0f9-bd5832ef7b3e,Windows 365 Business 4 vCPU 16 GB 512 GB +Windows 365 Business 8 vCPU 32 GB 128 GB,CPC_B_8C_32RAM_128GB,3cb45fab-ae53-4ff6-af40-24c1915ca07b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 8 vCPU 32 GB 128 GB,CPC_B_8C_32RAM_128GB,3cb45fab-ae53-4ff6-af40-24c1915ca07b,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 8 vCPU 32 GB 128 GB,CPC_B_8C_32RAM_128GB,3cb45fab-ae53-4ff6-af40-24c1915ca07b,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 8 vCPU 32 GB 128 GB,CPC_B_8C_32RAM_128GB,3cb45fab-ae53-4ff6-af40-24c1915ca07b,CPC_B_8C_32RAM_128GB,648005fc-b330-4bd9-8af6-771f28958ac0,Windows 365 Business 8 vCPU 32 GB 128 GB +Windows 365 Business 8 vCPU 32 GB 256 GB,CPC_B_8C_32RAM_256GB,fbc79df2-da01-4c17-8d88-17f8c9493d8f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 8 vCPU 32 GB 256 GB,CPC_B_8C_32RAM_256GB,fbc79df2-da01-4c17-8d88-17f8c9493d8f,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 8 vCPU 32 GB 256 GB,CPC_B_8C_32RAM_256GB,fbc79df2-da01-4c17-8d88-17f8c9493d8f,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 8 vCPU 32 GB 256 GB,CPC_B_8C_32RAM_256GB,fbc79df2-da01-4c17-8d88-17f8c9493d8f,CPC_B_8C_32RAM_256GB,d7a5113a-0276-4dc2-94f8-ca9f2c5ae078,Windows 365 Business 8 vCPU 32 GB 256 GB +Windows 365 Business 8 vCPU 32 GB 512 GB,CPC_B_8C_32RAM_512GB,8ee402cd-e6a8-4b67-a411-54d1f37a2049,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 8 vCPU 32 GB 512 GB,CPC_B_8C_32RAM_512GB,8ee402cd-e6a8-4b67-a411-54d1f37a2049,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 8 vCPU 32 GB 512 GB,CPC_B_8C_32RAM_512GB,8ee402cd-e6a8-4b67-a411-54d1f37a2049,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 8 vCPU 32 GB 512 GB,CPC_B_8C_32RAM_512GB,8ee402cd-e6a8-4b67-a411-54d1f37a2049,CPC_B_8C_32RAM_512GB,4229a0b4-7f34-4835-b068-6dc8d10be57c,Windows 365 Business 8 vCPU 32 GB 512 GB +"Windows 365 Business 16 vCPU, 64 GB, 512 GB","Windows_365_Business_16_vCPU,_64_GB,_512_GB",93d9955a-ec70-44d5-8faa-a194492390f7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Windows 365 Business 16 vCPU, 64 GB, 512 GB","Windows_365_Business_16_vCPU,_64_GB,_512_GB",93d9955a-ec70-44d5-8faa-a194492390f7,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +"Windows 365 Business 16 vCPU, 64 GB, 512 GB","Windows_365_Business_16_vCPU,_64_GB,_512_GB",93d9955a-ec70-44d5-8faa-a194492390f7,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +"Windows 365 Business 16 vCPU, 64 GB, 512 GB","Windows_365_Business_16_vCPU,_64_GB,_512_GB",93d9955a-ec70-44d5-8faa-a194492390f7,CPC_B_16C_64GB_512GB,cbbedc49-52d5-4fd6-82ac-a5bc51634dc3,"Windows 365 Business 16 vCPU, 64 GB, 512 GB" +"Windows 365 Business 16 vCPU, 64 GB, 1 TB","Windows_365_Business_16_vCPU,_64_GB,_1_TB",24be3cd7-82ca-41a5-94a7-4903373cdcae,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Windows 365 Business 16 vCPU, 64 GB, 1 TB","Windows_365_Business_16_vCPU,_64_GB,_1_TB",24be3cd7-82ca-41a5-94a7-4903373cdcae,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +"Windows 365 Business 16 vCPU, 64 GB, 1 TB","Windows_365_Business_16_vCPU,_64_GB,_1_TB",24be3cd7-82ca-41a5-94a7-4903373cdcae,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +"Windows 365 Business 16 vCPU, 64 GB, 1 TB","Windows_365_Business_16_vCPU,_64_GB,_1_TB",24be3cd7-82ca-41a5-94a7-4903373cdcae,CPC_B_16C_64GB_1TB,37c961db-2cfd-4e13-b81e-b0059ce10e34,"Windows 365 Business 16 vCPU, 64 GB, 1 TB" +Windows 365 Enterprise 1 vCPU 2 GB 64 GB,CPC_E_1C_2GB_64GB,0c278af4-c9c1-45de-9f4b-cd929e747a2c,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 1 vCPU 2 GB 64 GB,CPC_E_1C_2GB_64GB,0c278af4-c9c1-45de-9f4b-cd929e747a2c,CPC_E_1C_2GB_64GB,86d70dbb-d4c6-4662-ba17-3014204cbb28,Windows 365 Enterprise 1 vCPU 2 GB 64 GB +Windows 365 Enterprise 2 vCPU 4 GB 64 GB,CPC_E_2C_4GB_64GB,7bb14422-3b90-4389-a7be-f1b745fc037f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 4 GB 64 GB,CPC_E_2C_4GB_64GB,7bb14422-3b90-4389-a7be-f1b745fc037f,CPC_E_2C_4GB_64GB,23a25099-1b2f-4e07-84bd-b84606109438,Windows 365 Enterprise 2 vCPU 4 GB 64 GB +Windows 365 Enterprise 2 vCPU 4 GB 128 GB,CPC_E_2C_4GB_128GB,226ca751-f0a4-4232-9be5-73c02a92555e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 4 GB 128 GB,CPC_E_2C_4GB_128GB,226ca751-f0a4-4232-9be5-73c02a92555e,CPC_1,545e3611-3af8-49a5-9a0a-b7867968f4b0,Windows 365 Enterprise 2 vCPU 4 GB 128 GB +Windows 365 Enterprise 2 vCPU 4 GB 128 GB (Preview),CPC_LVL_1,bce09f38-1800-4a51-8d50-5486380ba84a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 4 GB 128 GB (Preview),CPC_LVL_1,bce09f38-1800-4a51-8d50-5486380ba84a,CPC_1,545e3611-3af8-49a5-9a0a-b7867968f4b0,Windows 365 Enterprise 2 vCPU 4 GB 128 GB +Windows 365 Enterprise 2 vCPU 4 GB 256 GB,CPC_E_2C_4GB_256GB,5265a84e-8def-4fa2-ab4b-5dc278df5025,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 4 GB 256 GB,CPC_E_2C_4GB_256GB,5265a84e-8def-4fa2-ab4b-5dc278df5025,CPC_E_2C_4GB_256GB,0d143570-9b92-4f57-adb5-e4efcd23b3bb,Windows 365 Enterprise 2 vCPU 4 GB 256 GB +Windows 365 Enterprise 2 vCPU 8 GB 128 GB,CPC_E_2C_8GB_128GB,e2aebe6c-897d-480f-9d62-fff1381581f7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 8 GB 128 GB,CPC_E_2C_8GB_128GB,e2aebe6c-897d-480f-9d62-fff1381581f7,CPC_2,3efff3fe-528a-4fc5-b1ba-845802cc764f,Windows 365 Enterprise 2 vCPU 8 GB 128 GB +Windows 365 Enterprise 2 vCPU 8 GB 128 GB (Preview),CPC_LVL_2,461cb62c-6db7-41aa-bf3c-ce78236cdb9e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 8 GB 128 GB (Preview),CPC_LVL_2,461cb62c-6db7-41aa-bf3c-ce78236cdb9e,CPC_2,3efff3fe-528a-4fc5-b1ba-845802cc764f,Windows 365 Enterprise 2 vCPU 8 GB 128 GB +Windows 365 Enterprise 2 vCPU 8 GB 256 GB,CPC_E_2C_8GB_256GB,1c79494f-e170-431f-a409-428f6053fa35,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 8 GB 256 GB,CPC_E_2C_8GB_256GB,1c79494f-e170-431f-a409-428f6053fa35,CPC_E_2C_8GB_256GB,d3468c8c-3545-4f44-a32f-b465934d2498,Windows 365 Enterprise 2 vCPU 8 GB 256 GB +Windows 365 Enterprise 4 vCPU 16 GB 128 GB,CPC_E_4C_16GB_128GB,d201f153-d3b2-4057-be2f-fe25c8983e6f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 4 vCPU 16 GB 128 GB,CPC_E_4C_16GB_128GB,d201f153-d3b2-4057-be2f-fe25c8983e6f,CPC_E_4C_16GB_128GB,2de9c682-ca3f-4f2b-b360-dfc4775db133,Windows 365 Enterprise 4 vCPU 16 GB 128 GB +Windows 365 Enterprise 4 vCPU 16 GB 256 GB,CPC_E_4C_16GB_256GB,96d2951e-cb42-4481-9d6d-cad3baac177e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 4 vCPU 16 GB 256 GB,CPC_E_4C_16GB_256GB,96d2951e-cb42-4481-9d6d-cad3baac177e,CPC_E_4C_16GB_256GB,9ecf691d-8b82-46cb-b254-cd061b2c02fb,Windows 365 Enterprise 4 vCPU 16 GB 256 GB +Windows 365 Enterprise 4 vCPU 16 GB 256 GB (Preview),CPC_LVL_3,bbb4bf6e-3e12-4343-84a1-54d160c00f40,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 4 vCPU 16 GB 256 GB (Preview),CPC_LVL_3,bbb4bf6e-3e12-4343-84a1-54d160c00f40,CPC_E_4C_16GB_256GB,9ecf691d-8b82-46cb-b254-cd061b2c02fb,Windows 365 Enterprise 4 vCPU 16 GB 256 GB +Windows 365 Enterprise 4 vCPU 16 GB 512 GB,CPC_E_4C_16GB_512GB,0da63026-e422-4390-89e8-b14520d7e699,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 4 vCPU 16 GB 512 GB,CPC_E_4C_16GB_512GB,0da63026-e422-4390-89e8-b14520d7e699,CPC_E_4C_16GB_512GB,3bba9856-7cf2-4396-904a-00de74fba3a4,Windows 365 Enterprise 4 vCPU 16 GB 512 GB +Windows 365 Enterprise 8 vCPU 32 GB 128 GB,CPC_E_8C_32GB_128GB,c97d00e4-0c4c-4ec2-a016-9448c65de986,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 8 vCPU 32 GB 128 GB,CPC_E_8C_32GB_128GB,c97d00e4-0c4c-4ec2-a016-9448c65de986,CPC_E_8C_32GB_128GB,2f3cdb12-bcde-4e37-8529-e9e09ec09e23,Windows 365 Enterprise 8 vCPU 32 GB 128 GB +Windows 365 Enterprise 8 vCPU 32 GB 256 GB,CPC_E_8C_32GB_256GB,7818ca3e-73c8-4e49-bc34-1276a2d27918,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 8 vCPU 32 GB 256 GB,CPC_E_8C_32GB_256GB,7818ca3e-73c8-4e49-bc34-1276a2d27918,CPC_E_8C_32GB_256GB,69dc175c-dcff-4757-8389-d19e76acb45d,Windows 365 Enterprise 8 vCPU 32 GB 256 GB +Windows 365 Enterprise 8 vCPU 32 GB 512 GB,CPC_E_8C_32GB_512GB,9fb0ba5f-4825-4e84-b239-5167a3a5d4dc,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 8 vCPU 32 GB 512 GB,CPC_E_8C_32GB_512GB,9fb0ba5f-4825-4e84-b239-5167a3a5d4dc,CPC_E_8C_32GB_512GB,0e837228-8250-4047-8a80-d4a34ba11658,Windows 365 Enterprise 8 vCPU 32 GB 512 GB +Windows 365 Shared Use 2 vCPU 4 GB 64 GB,Windows_365_S_2vCPU_4GB_64GB,1f9990ca-45d9-4c8d-8d04-a79241924ce1,CPC_S_2C_4GB_64GB,64981bdb-a5a6-4a22-869f-a9455366d5bc,Windows 365 Shared Use 2 vCPU 4 GB 64 GB +Windows 365 Shared Use 2 vCPU 4 GB 128 GB,Windows_365_S_2vCPU_4GB_128GB,90369797-7141-4e75-8f5e-d13f4b6092c1,CPC_S_2C_4GB_128GB,51855c77-4d2e-4736-be67-6dca605f2b57,Windows 365 Shared Use 2 vCPU 4 GB 128 GB +Windows 365 Shared Use 2 vCPU 4 GB 256 GB,Windows_365_S_2vCPU_4GB_256GB,8fe96593-34d3-49bb-aeee-fb794fed0800,CPC_S_2C_4GB_256GB,aa8fbe7b-695c-4c05-8d45-d1dddf6f7616,Windows 365 Shared Use 2 vCPU 4 GB 256 GB +Windows 365 Shared Use 2 vCPU 8 GB 128 GB,Windows_365_S_2vCPU_8GB_128GB,2d21fc84-b918-491e-ad84-e24d61ccec94,CPC_S_2C_8GB_128GB,057efbfe-a95d-4263-acb0-12b4a31fed8d,Windows 365 Shared Use 2 vCPU 8 GB 128 GB +Windows 365 Shared Use 2 vCPU 8 GB 256 GB,Windows_365_S_2vCPU_8GB_256GB,2eaa4058-403e-4434-9da9-ea693f5d96dc,CPC_S_2C_8GB_256GB,50ef7026-6174-40ba-bff7-f0e4fcddbf65,Windows 365 Shared Use 2 vCPU 8 GB 256 GB +Windows 365 Shared Use 4 vCPU 16 GB 128 GB,Windows_365_S_4vCPU_16GB_128GB,1bf40e76-4065-4530-ac37-f1513f362f50,CPC_S_4C_16GB_128GB,dd3801e2-4aa1-4b16-a44b-243e55497584,Windows 365 Shared Use 4 vCPU 16 GB 128 GB +Windows 365 Shared Use 4 vCPU 16 GB 256 GB,Windows_365_S_4vCPU_16GB_256GB,a9d1e0df-df6f-48df-9386-76a832119cca,CPC_S_4C_16GB_256GB,2d1d344e-d10c-41bb-953b-b3a47521dca0,Windows 365 Shared Use 4 vCPU 16 GB 256 GB +Windows 365 Shared Use 4 vCPU 16 GB 512 GB,Windows_365_S_4vCPU_16GB_512GB,469af4da-121c-4529-8c85-9467bbebaa4b,CPC_S_4C_16GB_512GB,48b82071-99a5-4214-b493-406a637bd68d,Windows 365 Shared Use 4 vCPU 16 GB 512 GB +Windows 365 Shared Use 8 vCPU 32 GB 128 GB,Windows_365_S_8vCPU_32GB_128GB,f319c63a-61a9-42b7-b786-5695bc7edbaf,CPC_S_8C_32GB_128GB,e4dee41f-a5c5-457d-b7d3-c309986fdbb2,Windows 365 Shared Use 8 vCPU 32 GB 128 GB +Windows 365 Shared Use 8 vCPU 32 GB 256 GB,Windows_365_S_8vCPU_32GB_256GB,fb019e88-26a0-4218-bd61-7767d109ac26,CPC_S_8C_32GB_256GB,1e2321a0-f81c-4d43-a0d5-9895125706b8,Windows 365 Shared Use 8 vCPU 32 GB 256 GB +Windows 365 Shared Use 8 vCPU 32 GB 512 GB,Windows_365_S_8vCPU_32GB_512GB,f4dc1de8-8c94-4d37-af8a-1fca6675590a,CPC_S_8C_32GB_512GB,fa0b4021-0f60-4d95-bf68-95036285282a,Windows 365 Shared Use 8 vCPU 32 GB 512 GB +Windows Store for Business,WINDOWS_STORE,6470687e-a428-4b7a-bef2-8a291ad947c9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Windows Store for Business,WINDOWS_STORE,6470687e-a428-4b7a-bef2-8a291ad947c9,WINDOWS_STORE,a420f25f-a7b3-4ff5-a9d0-5d58f73b537d,WINDOWS STORE SERVICE +Windows Store for Business EDU Faculty,WSFB_EDU_FACULTY,c7e9d9e6-1981-4bf3-bb50-a5bdfaa06fb2,Windows Store for Business EDU Store_faculty,aaa2cd24-5519-450f-a1a0-160750710ca1,Windows Store for Business EDU Store_faculty +Microsoft Workplace Analytics,WORKPLACE_ANALYTICS,3d957427-ecdc-4df2-aacd-01cc9d519da8,WORKPLACE_ANALYTICS,f477b0f0-3bb1-4890-940c-40fcee6ce05f,Microsoft Workplace Analytics +Microsoft Workplace Analytics,WORKPLACE_ANALYTICS,3d957427-ecdc-4df2-aacd-01cc9d519da8,WORKPLACE_ANALYTICS_INSIGHTS_BACKEND,ff7b261f-d98b-415b-827c-42a3fdf015af,Microsoft Workplace Analytics Insights Backend +Microsoft Workplace Analytics,WORKPLACE_ANALYTICS,3d957427-ecdc-4df2-aacd-01cc9d519da8,WORKPLACE_ANALYTICS_INSIGHTS_USER,b622badb-1b45-48d5-920f-4b27a2c0996c,Microsoft Workplace Analytics Insights User +Workload Identities Premium,Workload_Identities_Premium_CN,73fa80b5-689f-4db9-bbe4-bd414bc41e44,AAD_WRKLDID_P1,84c289f0-efcb-486f-8581-07f44fc9efad,Azure Active Directory workload identities P1 +Workload Identities Premium,Workload_Identities_Premium_CN,73fa80b5-689f-4db9-bbe4-bd414bc41e44,AAD_WRKLDID_P2,7dc0e92d-bf15-401d-907e-0884efe7c760,Azure Active Directory workload identities P2 diff --git a/Modules/CIPPCore/Public/OrganizationManagementRoles.json b/Modules/CIPPCore/lib/data/OrganizationManagementRoles.json similarity index 100% rename from Modules/CIPPCore/Public/OrganizationManagementRoles.json rename to Modules/CIPPCore/lib/data/OrganizationManagementRoles.json diff --git a/Modules/CIPPCore/Public/PermissionsTranslator.json b/Modules/CIPPCore/lib/data/PermissionsTranslator.json similarity index 99% rename from Modules/CIPPCore/Public/PermissionsTranslator.json rename to Modules/CIPPCore/lib/data/PermissionsTranslator.json index 74fbcebe7cbe..52f29c119433 100644 --- a/Modules/CIPPCore/Public/PermissionsTranslator.json +++ b/Modules/CIPPCore/lib/data/PermissionsTranslator.json @@ -5328,12 +5328,12 @@ "value": "AllSites.FullControl" }, { - "description": "Allows to read the LAPs passwords.", - "displayName": "Manage LAPs passwords", + "description": "Allows to read the LAPS passwords.", + "displayName": "Manage LAPS passwords", "id": "280b3b69-0437-44b1-bc20-3b2fca1ee3e9", "Origin": "Delegated", - "userConsentDescription": "Allows to read the LAPs passwords.", - "userConsentDisplayName": "Manage LAPs passwords", + "userConsentDescription": "Allows to read the LAPS passwords.", + "userConsentDisplayName": "Manage LAPS passwords", "value": "DeviceLocalCredential.Read.All" }, { @@ -5353,5 +5353,23 @@ "userConsentDescription": "Access Microsoft Teams and Skype for Business data as the signed in user", "userConsentDisplayName": "Access Microsoft Teams and Skype for Business data based on the user's role membership", "value": "OnPremDirectorySynchronization.ReadWrite.All" + }, + { + "description": "Read and Modify Tenant-Acquired Telephone Number Details", + "displayName": "Read and Modify Tenant-Acquired Telephone Number Details", + "id": "424b07a8-1209-4d17-9fe4-9018a93a1024", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and modify your tenant's acquired telephone number details on behalf of the signed-in admin user. Acquired telephone numbers may include attributes related to assigned object, emergency location, network site, etc.", + "userConsentDisplayName": "Allows the app to read and modify your tenant's acquired telephone number details on behalf of the signed-in admin user. Acquired telephone numbers may include attributes related to assigned object, emergency location, network site, etc.", + "value": "TeamsTelephoneNumber.ReadWrite.All" + }, + { + "description": "Read and Modify Tenant-Acquired Telephone Number Details", + "displayName": "Read and Modify Tenant-Acquired Telephone Number Details", + "id": "0a42382f-155c-4eb1-9bdc-21548ccaa387", + "Origin": "Application", + "userConsentDescription": "Allows the app to read your tenant's acquired telephone number details, without a signed-in user. Acquired telephone numbers may include attributes related to assigned object, emergency location, network site, etc.", + "userConsentDisplayName": "Allows the app to read your tenant's acquired telephone number details, without a signed-in user. Acquired telephone numbers may include attributes related to assigned object, emergency location, network site, etc.", + "value": "TeamsTelephoneNumber.ReadWrite.All" } ] diff --git a/Modules/CIPPCore/Public/SAMManifest.json b/Modules/CIPPCore/lib/data/SAMManifest.json similarity index 95% rename from Modules/CIPPCore/Public/SAMManifest.json rename to Modules/CIPPCore/lib/data/SAMManifest.json index 12702b4c6beb..534b0a29e5de 100644 --- a/Modules/CIPPCore/Public/SAMManifest.json +++ b/Modules/CIPPCore/lib/data/SAMManifest.json @@ -11,6 +11,15 @@ ] }, "requiredResourceAccess": [ + { + "resourceAppId": "c5393580-f805-4401-95e8-94b7a6ef2fc2", + "resourceAccess": [ + { + "id": "594c1fb6-4f81-4475-ae41-0c394909246c", + "type": "Scope" + } + ] + }, { "resourceAppId": "aeb86249-8ea3-49e2-900b-54cc8e308f85", "resourceAccess": [ @@ -43,10 +52,6 @@ "id": "59a6b24b-4225-4393-8165-ebaec5f55d7a", "type": "Role" }, - { - "id": "3b55498e-47ec-484f-8136-9013221c06a9", - "type": "Role" - }, { "id": "35930dcf-aceb-4bd1-b99a-8ffed403c974", "type": "Role" @@ -71,18 +76,10 @@ "id": "5b07b0dd-2377-4e44-a38d-703f09a0dc3c", "type": "Role" }, - { - "id": "2f51be20-0bb4-4fed-bf7b-db946066c75e", - "type": "Role" - }, { "id": "243333ab-4d21-40cb-a475-36241daa0842", "type": "Role" }, - { - "id": "58ca0d9a-1575-47e1-a3cb-007ef2e4583b", - "type": "Role" - }, { "id": "e330c4f0-4170-414e-a55a-2f022ec2b57b", "type": "Role" @@ -92,17 +89,13 @@ "type": "Role" }, { - "id": "06a5fe6d-c49d-46a7-b082-56b1b14103c7", - "type": "Role" + "id": "8b9d79d0-ad75-4566-8619-f7500ecfcebe", + "type": "Scope" }, { "id": "5ac13192-7ace-4fcf-b828-1a26f28068ee", "type": "Role" }, - { - "id": "7ab1d382-f21e-4acd-a863-ba3e13f7da61", - "type": "Role" - }, { "id": "19dbc75e-c2e2-444c-a770-ec69d8559fc7", "type": "Role" @@ -119,10 +112,6 @@ "id": "bf7b1a76-6e77-406b-b258-bf5c7720e98f", "type": "Role" }, - { - "id": "5b567255-7703-4780-807c-7be8301ae99b", - "type": "Role" - }, { "id": "62a82d76-70ea-41e2-9197-370581804d09", "type": "Role" @@ -207,10 +196,6 @@ "id": "bf394140-e372-4bf9-a898-299cfc7564e5", "type": "Role" }, - { - "id": "45cc0394-e837-488b-a098-1918f48d186c", - "type": "Role" - }, { "id": "34bf0e97-1971-4929-b999-9e2442d941d7", "type": "Role" @@ -287,10 +272,6 @@ "id": "ebf0f66e-9fb1-49e4-a278-222f76911cf4", "type": "Scope" }, - { - "id": "233e0cf1-dd62-48bc-b65b-b38fe87fcf8e", - "type": "Scope" - }, { "id": "d649fb7c-72b4-4eec-b2b4-b15acf79e378", "type": "Scope" @@ -455,10 +436,6 @@ "id": "a8ead177-1889-4546-9387-f25e658e2a79", "type": "Scope" }, - { - "id": "1d89d70c-dcac-4248-b214-903c457af83a", - "type": "Scope" - }, { "id": "a84a9652-ffd3-496e-a991-22ba5529156a", "type": "Scope" @@ -527,10 +504,6 @@ "id": "0e755559-83fb-4b44-91d0-4cc721b9323e", "type": "Scope" }, - { - "id": "48638b3c-ad68-4383-8ac4-e6880ee6ca57", - "type": "Scope" - }, { "id": "39d65650-9d3e-4223-80db-a335590d027e", "type": "Scope" @@ -560,16 +533,32 @@ "type": "Scope" }, { - "id": "aec28ec7-4d02-4e8c-b864-50163aea77eb", + "id": "48971fc1-70d7-4245-af77-0beb29b53ee2", "type": "Scope" }, { - "id": "48971fc1-70d7-4245-af77-0beb29b53ee2", + "id": "b7887744-6746-4312-813d-72daeaee7e2d", "type": "Scope" }, { - "id": "b7887744-6746-4312-813d-72daeaee7e2d", + "id": "424b07a8-1209-4d17-9fe4-9018a93a1024", "type": "Scope" + }, + { + "id": "0a42382f-155c-4eb1-9bdc-21548ccaa387", + "type": "Role" + }, + { + "id": "2d9bd318-b883-40be-9df7-63ec4fcdc424", + "type": "Role" + }, + { + "id": "c8948c23-e66b-42db-83fd-770b71ab78d2", + "type": "Role" + }, + { + "id": "a94a502d-0281-4d15-8cd2-682ac9362c4c", + "type": "Role" } ] }, @@ -643,4 +632,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/Modules/CIPPCore/Public/blank.json b/Modules/CIPPCore/lib/data/blank.json similarity index 100% rename from Modules/CIPPCore/Public/blank.json rename to Modules/CIPPCore/lib/data/blank.json diff --git a/Modules/CippEntrypoints/CippEntrypoints.psm1 b/Modules/CippEntrypoints/CippEntrypoints.psm1 index 546ca1cebb7a..1f521af36c66 100644 --- a/Modules/CippEntrypoints/CippEntrypoints.psm1 +++ b/Modules/CippEntrypoints/CippEntrypoints.psm1 @@ -21,6 +21,7 @@ function Receive-CippHttpTrigger { if ($Request.Headers.'x-ms-coldstart' -eq 1) { Write-Information '** Function app cold start detected **' } + Write-Debug "CIPP_ACTION=$($Request.Params.CIPPEndpoint)" $ConfigTable = Get-CIPPTable -tablename Config $Config = Get-CIPPAzDataTableEntity @ConfigTable -Filter "PartitionKey eq 'OffloadFunctions' and RowKey eq 'OffloadFunctions'" @@ -38,38 +39,122 @@ function Receive-CippHttpTrigger { # Convert the request to a PSCustomObject because the httpContext is case sensitive since 7.3 $Request = $Request | ConvertTo-Json -Depth 100 | ConvertFrom-Json - Set-Location (Get-Item $PSScriptRoot).Parent.Parent.FullName - $FunctionName = 'Invoke-{0}' -f $Request.Params.CIPPEndpoint - Write-Information "Function: $($Request.Params.CIPPEndpoint)" - $HttpTrigger = @{ - Request = [pscustomobject]($Request) - TriggerMetadata = $TriggerMetadata - } - - if ((Get-Command -Name $FunctionName -ErrorAction SilentlyContinue) -or $FunctionName -eq 'Invoke-Me') { + if ($Request.Params.CIPPEndpoint -eq '$batch') { + # Implement batch processing in the style of graph api $batch try { - $Access = Test-CIPPAccess -Request $Request - if ($FunctionName -eq 'Invoke-Me') { + $BatchRequests = $Request.Body.requests + if (-not $BatchRequests -or $BatchRequests.Count -eq 0) { + Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{ error = @{ message = 'No requests found in batch body' } } + }) return } - Write-Information "Access: $Access" - if ($Access) { - & $FunctionName @HttpTrigger + # Validate batch request limit (this might need to be fine tuned for SWA timeouts) + if ($BatchRequests.Count -gt 20) { + Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{ error = @{ message = 'Batch request limit exceeded. Maximum 20 requests allowed per batch.' } } + }) + return } + + # Process batch requests in parallel for better performance + $BatchResponses = $BatchRequests | ForEach-Object -Parallel { + $BatchRequest = $_ + $RequestHeaders = $using:Request.Headers + $TriggerMeta = $using:TriggerMetadata + + try { + # Import required modules in the parallel thread + Import-Module CIPPCore -Force + Import-Module CippExtensions -Force -ErrorAction SilentlyContinue + Import-Module DNSHealth -Force -ErrorAction SilentlyContinue + Import-Module AzBobbyTables -Force -ErrorAction SilentlyContinue + + # Create individual request object for each batch item + $IndividualRequest = @{ + Params = @{ + CIPPEndpoint = $BatchRequest.url # Use batch request URL as endpoint + } + Body = $BatchRequest.body + Headers = $RequestHeaders + Query = $BatchRequest.query + Method = $BatchRequest.method + } + + # Process individual request using New-CippCoreRequest + $IndividualResponse = New-CippCoreRequest -Request $IndividualRequest -TriggerMetadata $TriggerMeta + + # Format response in Graph API batch style + $BatchResponse = @{ + id = $BatchRequest.id + status = [int]$IndividualResponse.StatusCode + body = $IndividualResponse.Body + } + + } catch { + # Handle individual request errors + $BatchResponse = @{ + id = $BatchRequest.id + status = 500 + body = @{ + error = @{ + code = 'InternalServerError' + message = $_.Exception.Message + } + } + } + } + + return $BatchResponse + } -ThrottleLimit 10 + + $BodyObj = @{ + responses = @($BatchResponses) + } + + $Body = ConvertTo-Json -InputObject $BodyObj -Depth 20 -Compress + + # Return batch response in Graph API format + Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) + } catch { - Write-Warning "Exception occurred on HTTP trigger ($FunctionName): $($_.Exception.Message)" + Write-Warning "Exception occurred during batch processing: $($_.Exception.Message)" Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::InternalServerError - Body = $_.Exception.Message + Body = @{ + error = @{ + code = 'InternalServerError' + message = "Batch processing failed: $($_.Exception.Message)" + } + } }) } + return } else { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::NotFound - Body = 'Endpoint not found' - }) + $Response = New-CippCoreRequest -Request $Request -TriggerMetadata $TriggerMetadata + if ($Response.StatusCode) { + if ($Response.Body -is [PSCustomObject]) { + $Response.Body = $Response.Body | ConvertTo-Json -Depth 20 -Compress + } + Push-OutputBinding -Name Response -Value ([HttpResponseContext]$Response) + } else { + Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = @{ + error = @{ + code = 'InternalServerError' + message = 'An error occurred processing the request' + } + } + }) + } } return } @@ -86,7 +171,7 @@ function Receive-CippOrchestrationTrigger { Entrypoint #> param($Context) - + Write-Debug "CIPP_ACTION=$($Item.Command ?? $Item.FunctionName)" try { if (Test-Json -Json $Context.Input) { $OrchestratorInput = $Context.Input | ConvertFrom-Json @@ -95,6 +180,7 @@ function Receive-CippOrchestrationTrigger { } Write-Information "Orchestrator started $($OrchestratorInput.OrchestratorName)" Write-Warning "Receive-CippOrchestrationTrigger - $($OrchestratorInput.OrchestratorName)" + Set-DurableCustomStatus -CustomStatus $OrchestratorInput.OrchestratorName $DurableRetryOptions = @{ FirstRetryInterval = (New-TimeSpan -Seconds 5) MaxNumberOfAttempts = if ($OrchestratorInput.MaxAttempts) { $OrchestratorInput.MaxAttempts } else { 1 } @@ -110,6 +196,10 @@ function Receive-CippOrchestrationTrigger { $DurableMode = 'Sequence' $NoWait = $false } + 'NoScaling' { + $DurableMode = 'NoScaling' + $NoWait = $false + } default { $DurableMode = 'FanOut (Default)' $NoWait = $true @@ -118,36 +208,65 @@ function Receive-CippOrchestrationTrigger { Write-Information "Durable Mode: $DurableMode" $RetryOptions = New-DurableRetryOptions @DurableRetryOptions - - if ($Context.IsReplaying -ne $true -and $OrchestratorInput.SkipLog -ne $true) { - Write-LogMessage -API $OrchestratorInput.OrchestratorName -tenant $OrchestratorInput.TenantFilter -message "Started $($OrchestratorInput.OrchestratorName)" -sev info - } - if (!$OrchestratorInput.Batch -or ($OrchestratorInput.Batch | Measure-Object).Count -eq 0) { - $Batch = (Invoke-ActivityFunction -FunctionName 'CIPPActivityFunction' -Input $OrchestratorInput.QueueFunction -ErrorAction Stop) + $Batch = (Invoke-ActivityFunction -FunctionName 'CIPPActivityFunction' -Input $OrchestratorInput.QueueFunction -ErrorAction Stop) | Where-Object { $null -ne $_.FunctionName } } else { - $Batch = $OrchestratorInput.Batch + $Batch = $OrchestratorInput.Batch | Where-Object { $null -ne $_.FunctionName } } if (($Batch | Measure-Object).Count -gt 0) { Write-Information "Batch Count: $($Batch.Count)" - $Tasks = foreach ($Item in $Batch) { - $DurableActivity = @{ - FunctionName = 'CIPPActivityFunction' - Input = $Item - NoWait = $NoWait - RetryOptions = $RetryOptions - ErrorAction = 'Stop' + $Output = foreach ($Item in $Batch) { + if ($DurableMode -eq 'NoScaling') { + $Activity = @{ + FunctionName = 'CIPPActivityFunction' + Input = $Item + ErrorAction = 'Stop' + } + Invoke-ActivityFunction @Activity + } else { + $DurableActivity = @{ + FunctionName = 'CIPPActivityFunction' + Input = $Item + NoWait = $NoWait + RetryOptions = $RetryOptions + ErrorAction = 'Stop' + } + Invoke-DurableActivity @DurableActivity } - Invoke-DurableActivity @DurableActivity } - if ($NoWait -and $Tasks) { - $null = Wait-ActivityFunction -Task $Tasks + + if ($NoWait -and $Output) { + $Output = $Output | Where-Object { $_.GetType().Name -eq 'ActivityInvocationTask' } + if (($Output | Measure-Object).Count -gt 0) { + Write-Information "Waiting for ($($Output.Count)) activity functions to complete..." + $Results = foreach ($Task in $Output) { + try { + Wait-ActivityFunction -Task $Task + } catch {} + } + } else { + $Results = @() + } + } else { + $Results = $Output } } - if ($Context.IsReplaying -ne $true -and $OrchestratorInput.SkipLog -ne $true) { - Write-LogMessage -API $OrchestratorInput.OrchestratorName -tenant $tenant -message "Finished $($OrchestratorInput.OrchestratorName)" -sev Info + if ($Results -and $OrchestratorInput.PostExecution) { + Write-Information "Running post execution function $($OrchestratorInput.PostExecution.FunctionName)" + $PostExecParams = @{ + FunctionName = $OrchestratorInput.PostExecution.FunctionName + Parameters = $OrchestratorInput.PostExecution.Parameters + Results = @($Results) + } + if ($null -ne $PostExecParams.FunctionName) { + $null = Invoke-ActivityFunction -FunctionName CIPPActivityFunction -Input $PostExecParams + Write-Information "Post execution function $($OrchestratorInput.PostExecution.FunctionName) completed" + } else { + Write-Information 'No post execution function name provided' + Write-Information ($PostExecParams | ConvertTo-Json -Depth 10) + } } } catch { Write-Information "Orchestrator error $($_.Exception.Message) line $($_.InvocationInfo.ScriptLineNumber)" @@ -167,11 +286,20 @@ function Receive-CippActivityTrigger { Entrypoint #> param($Item) + Write-Debug "CIPP_ACTION=$($Item.Command ?? $Item.FunctionName)" Write-Warning "Hey Boo, the activity function is running. Here's some info: $($Item | ConvertTo-Json -Depth 10 -Compress)" try { - $Start = Get-Date - Set-Location (Get-Item $PSScriptRoot).Parent.Parent.FullName + $Output = $null + $metric = @{ + Kind = 'CIPPCommandStart' + InvocationId = "$($ExecutionContext.InvocationId)" + Command = $Item.Command + Tenant = $Item.TenantFilter.defaultDomainName + TaskName = $Item.TaskName + JSONData = ($Item | ConvertTo-Json -Depth 10 -Compress) + } | ConvertTo-Json -Depth 10 -Compress + Write-Information -MessageData $metric -Tag 'CIPPCommandStart' if ($Item.QueueId) { if ($Item.QueueName) { $QueueName = $Item.QueueName @@ -191,51 +319,87 @@ function Receive-CippActivityTrigger { if ($Item.FunctionName) { $FunctionName = 'Push-{0}' -f $Item.FunctionName + + # Prepare telemetry metadata + $taskName = if ($Item.Command) { $Item.Command } else { $FunctionName } + $metadata = @{ + Command = if ($Item.Command) { $Item.Command } else { $FunctionName } + FunctionName = $FunctionName + } + + # Add tenant information if available + if ($Item.TaskInfo) { + if ($Item.TaskInfo.Tenant) { + $metadata['Tenant'] = $Item.TaskInfo.Tenant + } + if ($Item.TaskInfo.Name) { + $metadata['JobName'] = $Item.TaskInfo.Name + } + if ($Item.TaskInfo.Recurrence) { + $metadata['Recurrence'] = $Item.TaskInfo.Recurrence + } + } + + # Add tenant from other common fields + if (-not $metadata['Tenant']) { + if ($Item.TenantFilter) { + $metadata['Tenant'] = $Item.TenantFilter + } elseif ($Item.Tenant) { + $metadata['Tenant'] = $Item.Tenant + } + } + + # Add queue information + if ($Item.QueueId) { + $metadata['QueueId'] = $Item.QueueId + } + if ($Item.QueueName) { + $metadata['QueueName'] = $Item.QueueName + } + try { - Write-Warning "Activity starting Function: $FunctionName." + Write-Verbose "Activity starting Function: $FunctionName." Invoke-Command -ScriptBlock { & $FunctionName -Item $Item } - Write-Warning "Activity completed Function: $FunctionName." + $Status = 'Completed' + + Write-Verbose "Activity completed Function: $FunctionName." if ($TaskStatus) { $QueueTask.Status = 'Completed' $null = Set-CippQueueTask @QueueTask } } catch { $ErrorMsg = $_.Exception.Message + $Status = 'Failed' if ($TaskStatus) { $QueueTask.Status = 'Failed' + $QueueTask.Message = $ErrorMsg $null = Set-CippQueueTask @QueueTask } } } else { $ErrorMsg = 'Function not provided' + $Status = 'Failed' if ($TaskStatus) { $QueueTask.Status = 'Failed' $null = Set-CippQueueTask @QueueTask } } - - $End = Get-Date - - try { - $Stats = @{ - FunctionType = 'Durable' - Entity = $Item - Start = $Start - End = $End - ErrorMsg = $ErrorMsg - } - Write-CippFunctionStats @Stats - } catch { - Write-Information "Error adding activity stats: $($_.Exception.Message)" - } } catch { - Write-Information "Error in Receive-CippActivityTrigger: $($_.Exception.Message)" + Write-Error "Error in Receive-CippActivityTrigger: $($_.Exception.Message)" + $Status = 'Failed' + $Output = $null if ($TaskStatus) { $QueueTask.Status = 'Failed' $null = Set-CippQueueTask @QueueTask } } - return $true + + # Return the captured output if it exists and is not null + if ($null -ne $Output -and $Output -ne '') { + return $Output + } else { + return "Activity function ended with status $($Status)." + } } function Receive-CIPPTimerTrigger { @@ -280,9 +444,43 @@ function Receive-CIPPTimerTrigger { $Parameters = $Function.Parameters | ConvertTo-Json | ConvertFrom-Json -AsHashtable } - $Results = Invoke-Command -ScriptBlock { & $Function.Command @Parameters } + # Prepare telemetry metadata + $metadata = @{ + Command = $Function.Command + Cron = $Function.Cron + FunctionId = $Function.Id + TriggerType = 'Timer' + } + + # Add parameters if available + if ($Parameters.Count -gt 0) { + $metadata['ParameterCount'] = $Parameters.Count + # Add specific known parameters + Write-Host "CIPP TIMER PARAMETERS: $($Parameters | ConvertTo-Json -Depth 10 -Compress)" + if ($Parameters.Tenant) { + $metadata['Tenant'] = $Parameters.Tenant + } + if ($Parameters.TenantFilter) { + $metadata['Tenant'] = $Parameters.TenantFilter + } + if ($Parameters.TenantFilter.value) { + $metadata['Tenant'] = $Parameters.TenantFilter.value + } + if ($Parameters.Tenant.value) { + $metadata['Tenant'] = $Parameters.Tenant.value + } + if ($Parameters.Tenant.defaultDomainName) { + $metadata['Tenant'] = $Parameters.Tenant.defaultDomainName + } + } + + # Wrap the timer function execution with telemetry + + Invoke-Command -ScriptBlock { & $Function.Command @Parameters } + + if ($Results -match '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$') { - $FunctionStatus.OrchestratorId = $Results + $FunctionStatus.OrchestratorId = $Results -join ',' $Status = 'Started' } else { $Status = 'Completed' diff --git a/Modules/CippExtensions/CippExtensions.psm1 b/Modules/CippExtensions/CippExtensions.psm1 index ce47d5f7e719..633b97d8e97c 100644 --- a/Modules/CippExtensions/CippExtensions.psm1 +++ b/Modules/CippExtensions/CippExtensions.psm1 @@ -1,3 +1,5 @@ +# ModuleBuilder will concatenate all function files into this module +# This block is only used when running from source (not built) $Public = @(Get-ChildItem -Path (Join-Path $PSScriptRoot "Public\*.ps1") -Recurse -ErrorAction SilentlyContinue) $Private = @(Get-ChildItem -Path (Join-Path $PSScriptRoot "Private\*.ps1") -Recurse -ErrorAction SilentlyContinue) $Functions = $Public + $Private diff --git a/Modules/CippExtensions/ConversionTable.csv b/Modules/CippExtensions/ConversionTable.csv index 704f7c507d5f..27ee53d2fe35 100644 --- a/Modules/CippExtensions/ConversionTable.csv +++ b/Modules/CippExtensions/ConversionTable.csv @@ -20,6 +20,7 @@ Clipchamp Premium,Clipchamp_Premium,0fe440c5-f2bf-442b-a4f4-9a7af77a200b,ONEDRIV Clipchamp Standard,Clipchamp_Standard,481f3bc2-5756-4b28-9375-5c8c86b99e6b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Clipchamp Standard,Clipchamp_Standard,481f3bc2-5756-4b28-9375-5c8c86b99e6b,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp Clipchamp Standard,Clipchamp_Standard,481f3bc2-5756-4b28-9375-5c8c86b99e6b,ONEDRIVECLIPCHAMP,f7e5b77d-f293-410a-bae8-f941f19fe680,OneDrive for Business (Clipchamp) +Clipchamp Premium Add-on,Clipchamp_Premium_Add_on,4b2c20e4-939d-4bf4-9dd8-6870240cfe19,CLIPCHAMP_PREMIUM,430b908f-78e1-4812-b045-cf83320e7d5d,Microsoft Clipchamp Premium Microsoft 365 Audio Conferencing,MCOMEETADV,0c266dff-15dd-4b49-8397-2bb16070ed52,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing Microsoft Entra ID Basic,AAD_BASIC,2b9c8e7c-319c-43a2-a2a0-48c5c6161de7,AAD_BASIC,c4da7f8a-5ee2-4c99-a7e1-87d2df57f6fe,Microsoft Entra BASIC Microsoft Entra ID P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 @@ -64,6 +65,7 @@ Common Data Service Log Capacity,CDS_LOG_CAPACITY,448b063f-9cc6-42fc-a0e6-40e087 Communications Credits,MCOPSTNC,47794cd0-f0e5-45c5-9033-2eb6b5fc84e0,MCOPSTNC,505e180f-f7e0-4b65-91d4-00d670bbd18c,COMMUNICATIONS CREDITS Compliance Manager Premium Assessment Add-On,CMPA_addon,8a5fbbed-8b8c-41e5-907e-c50c471340fd,COMPLIANCE_MANAGER_PREMIUM_ASSESSMENT_ADDON,3a117d30-cfac-4f00-84ac-54f8b6a18d78,Compliance Manager Premium Assessment Add-On Compliance Manager Premium Assessment Add-On for GCC,CMPA_addon_GCC,a9d7ef53-9bea-4a2a-9650-fa7df58fe094,COMPLIANCE_MANAGER_PREMIUM_ASSESSMENT_ADDON,3a117d30-cfac-4f00-84ac-54f8b6a18d78,Compliance Manager Premium Assessment Add-On +Compliance Program for Microsoft Cloud,Compliance_Program_for_Microsoft_Cloud,10dd46b2-c5ad-4de3-865c-a6fa1363fb51,CPMC,1265e154-5544-4197-bba1-03ef69c3b180,Compliance Program for Microsoft Cloud Defender Threat Intelligence,Defender_Threat_Intelligence,a9c51c15-ffad-4c66-88c0-8771455c832d,THREAT_INTELLIGENCE_APP,fbdb91e6-7bfd-4a1f-8f7a-d27f4ef39702,Defender Threat Intelligence Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_CHAT_FPA_GOV,b9f7ce72-67ff-4695-a9d9-5ff620232024,Dynamics 365 Customer Service Chat Application Integration for Government Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government @@ -239,6 +241,9 @@ Dynamics 365 Enterprise Edition - Additional Production Instance for Government, "Dynamics 365 Field Service, Enterprise Edition - Resource Scheduling Optimization",CRM_AUTO_ROUTING_ADDON,977464c4-bfaf-4b67-b761-a9bb735a2196,CRM_AUTO_ROUTING_ENGINE_ADDON,24435e4b-87d0-4d7d-8beb-63a9b1573022,Field Service – Automated Routing Engine Add-On "Dynamics 365 Field Service, Enterprise Edition - Resource Scheduling Optimization",CRM_AUTO_ROUTING_ADDON,977464c4-bfaf-4b67-b761-a9bb735a2196,CRM_AUTO_ROUTING_ADDON,2ba394e0-6f18-4b77-b45f-a5663bbab540,RETIRED - Field Service – Automated Routing Engine Add-On "Dynamics 365 Field Service, Enterprise Edition - Resource Scheduling Optimization",CRM_AUTO_ROUTING_ADDON,977464c4-bfaf-4b67-b761-a9bb735a2196,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Field Service Contractor,D365_FIELD_SERVICE_CONTRACTOR,23e6e135-e869-4ce4-9ae4-5710cd69ac13,CDS_FIELD_SERVICE_CONTRACTOR,f4614a66-d632-443a-bc77-afe92987b322,Common Data Service Field service Part Time Contractors +Dynamics 365 Field Service Contractor,D365_FIELD_SERVICE_CONTRACTOR,23e6e135-e869-4ce4-9ae4-5710cd69ac13,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Field Service Contractor,D365_FIELD_SERVICE_CONTRACTOR,23e6e135-e869-4ce4-9ae4-5710cd69ac13,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 Dynamics 365 Field Service Contractor for Government,D365_FIELD_SERVICE_CONTRACTOR_GOV,e7965e3a-1f49-4d67-a3de-ad1ce460bbcc,CDS_FIELD_SERVICE_CONTRACTOR_GCC,2457fe40-65be-48a1-935f-924ad6e62dba,Common Data Service Field service Part Time Contractors for Government Dynamics 365 Field Service Contractor for Government,D365_FIELD_SERVICE_CONTRACTOR_GOV,e7965e3a-1f49-4d67-a3de-ad1ce460bbcc,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government Dynamics 365 Field Service Contractor for Government,D365_FIELD_SERVICE_CONTRACTOR_GOV,e7965e3a-1f49-4d67-a3de-ad1ce460bbcc,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government @@ -360,6 +365,17 @@ Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMIC Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,CDS_CUSTOMER_INSIGHTS_BASE,d04ca659-b119-4a92-b8fc-3ede584a9d65,Dataverse for Cust Insights BASE +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,CDS_CUSTOMER_INSIGHTS_COMBINED_BASE,d66ee5da-07d5-49d6-a1d8-45662c3f37be,Dataverse for Customer Insights Combined Base +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,DYN365_CUSTOMER_INSIGHTS_JOURNEYS_BASE,1720c3f7-7da3-4a11-8324-92aad283eb68,Dynamics 365 Customer Insights Journeys +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,Forms_Pro_Marketing_App,22b657cf-0a9e-467b-8a91-5e31f21bc570,Microsoft Dynamics 365 Customer Voice for Marketing Application +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Insights Journeys T3 Interacted People,Dynamics_365_Customer_Insights_Journeys_T3_Interacted_People,05735051-46c0-4c84-9107-bb13d77d0b88,CDS_CUSTOMER_INSIGHTS_JOURNEYS_ADD-ON,2f2e81a6-15de-4041-9f33-73c06fed3801,Dataverse for Customer Insights Journeys add-on +Dynamics 365 Customer Insights Journeys T3 Interacted People,Dynamics_365_Customer_Insights_Journeys_T3_Interacted_People,05735051-46c0-4c84-9107-bb13d77d0b88,DYN365_MARKETING_50K_CONTACT_ADDON,e626a4ec-1ba2-409e-bf75-9bc0bc30cca7,Dynamics 365 for Marketing 50K Addnl Contacts +Dynamics 365 Customer Insights Journeys T3 Interacted People,Dynamics_365_Customer_Insights_Journeys_T3_Interacted_People,05735051-46c0-4c84-9107-bb13d77d0b88,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Insights User License,Dynamics_365_Customer_Insights_User_License,12b5a442-a6f2-49e4-868b-2d7408c2356f,DYN365_MARKETING_MSE_USER,2824c69a-1ac5-4397-8592-eae51cb8b581,Dynamics 365 for Marketing MSE User +Dynamics 365 Customer Insights User License,Dynamics_365_Customer_Insights_User_License,12b5a442-a6f2-49e4-868b-2d7408c2356f,DYN365_MARKETING_USER,5d7a6abc-eebd-46ab-96e1-e4a2f54a2248,Dynamics 365 for Marketing USL +Dynamics 365 Customer Insights User License,Dynamics_365_Customer_Insights_User_License,12b5a442-a6f2-49e4-868b-2d7408c2356f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,DYN365_CS_CHAT_FPA,426ec19c-d5b1-4548-b894-6fe75028c30d,Dynamics 365 Customer Service Chat Application Integration Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,DYN365_CS_CHAT,f69129db-6dc1-4107-855e-0aaebbcd9dd4,Dynamics 365 for Customer Service Chat Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,POWER_VIRTUAL_AGENTS_D365_CS_CHAT,19e4c3a8-3ebe-455f-a294-4f3479873ae3,Power Virtual Agents for Chat @@ -418,10 +434,19 @@ Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-96 Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,Common Data Service Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,POWER_APPS_DYN365_VIRAL_TRIAL_MIXED_REALITY,066e2fd1-ba15-40e7-aa96-d6636b1cdf71,Power Apps for Dynamics 365 Mixed Reality Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,POWER_AUTOMATE_DYN365_VIRAL_TRIAL_MIXED_REALITY,26fa8a18-2812-4b3d-96b4-864818ce26be,Power Automate for Dynamics 365 Mixed Reality +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,Forms_Pro_Talent,1c4ae475-5608-43fa-b3f7-d20e07cf24b4,Microsoft Dynamics 365 Customer Voice for Talent +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,D365_HR_SELF_SERVICE_OPS,835b837b-63c1-410e-bf6b-bdef201ad129,Dynamics 365 Human Resource Self Service +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,D365_HR_OPS,8b21a5dc-5485-49ed-a2d4-0e772c830f6d,Dynamics 365 Human Resources +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,D365_HR_Attach,3219525a-4064-45ec-9c35-a33ea6b39a49,Dynamics 365 Human Resources Attach +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,D365_HR_ATTACH_OPS,90d8cb62-e98a-4639-8342-8c7d2c8215ba,Dynamics 365 Human Resources Attach License +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Dynamics 365 Hybrid Connector,CRM_HYBRIDCONNECTOR,de176c31-616d-4eae-829a-718918d7ec23,CRM_HYBRIDCONNECTOR,0210d5c8-49d2-4dd1-a01b-a91c7c14e0bf,CRM Hybrid Connector Dynamics 365 Hybrid Connector,CRM_HYBRIDCONNECTOR,de176c31-616d-4eae-829a-718918d7ec23,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Dynamics 365 for Marketing Additional Application,DYN365_MARKETING_APPLICATION_ADDON,99c5688b-6c75-4496-876f-07f0fbd69add,DYN365_MARKETING_APPLICATION_ADDON,51cf0638-4861-40c0-8b20-1161ab2f80be,Dynamics 365 for Marketing Additional Application Dynamics 365 for Marketing Additional Application,DYN365_MARKETING_APPLICATION_ADDON,99c5688b-6c75-4496-876f-07f0fbd69add,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Addnl Contacts Tier 1,DYN365_MARKETING_CONTACT_ADDON,fc4581aa-6b1f-459d-95b6-84bd49d6f843,DYN365_MARKETING_CONTACT_ADDON,18db5075-2c70-408d-a82b-929059d782af,Dynamics 365 for Marketing Additional Contacts Tier 1 +Dynamics 365 for Marketing Addnl Contacts Tier 1,DYN365_MARKETING_CONTACT_ADDON,fc4581aa-6b1f-459d-95b6-84bd49d6f843,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Dynamics 365 for Marketing Addnl Contacts Tier 3,DYN365_MARKETING_CONTACT_ADDON_T3,23053933-0fda-431f-9a5b-a00fd78444c1,DYN365_MARKETING_50K_CONTACT_ADDON,e626a4ec-1ba2-409e-bf75-9bc0bc30cca7,Dynamics 365 for Marketing 50K Addnl Contacts Dynamics 365 for Marketing Addnl Contacts Tier 3,DYN365_MARKETING_CONTACT_ADDON_T3,23053933-0fda-431f-9a5b-a00fd78444c1,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Dynamics 365 for Marketing Addnl Contacts Tier 5,DYN365_MARKETING_CONTACT_ADDON_T5,d8eec316-778c-4f14-a7d1-a0aca433b4e7,DYN365_MARKETING_50K_CONTACT_ADDON,e626a4ec-1ba2-409e-bf75-9bc0bc30cca7,Dynamics 365 for Marketing 50K Addnl Contacts @@ -967,111 +992,129 @@ Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSE Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,Microsoft Communications Compliance -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,Microsoft Insider Risk Management -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,COMMON_DEFENDER_PLATFORM_FOR_OFFICE,a312bdeb-1e21-40d0-84b1-0e73f128144f,Defender Platform for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,Microsoft Insider Risk Management - Exchange +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Retired - Microsoft Data Investigations +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Intune_ServiceNow,3eeb8536-fecf-41bf-a3f8-d6f17a9f3efc,Intune ServiceNow Integration +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune Plan 1 for Education +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,REMOTE_HELP,a4c6cf29-1168-4076-ba5c-e8fe0e62b17e,Remote help +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,COMMON_DEFENDER_PLATFORM_FOR_OFFICE,a312bdeb-1e21-40d0-84b1-0e73f128144f,Defender Platform for Office 365 Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,Microsoft Insider Risk Management - Exchange Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner @@ -1091,8 +1134,10 @@ Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3 Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Retired - Microsoft Data Investigations Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) @@ -1105,18 +1150,20 @@ Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3 Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Intune_ServiceNow,3eeb8536-fecf-41bf-a3f8-d6f17a9f3efc,Intune ServiceNow Integration Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune Plan 1 for Education Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,REMOTE_HELP,a4c6cf29-1168-4076-ba5c-e8fe0e62b17e,Remote help Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics @@ -2203,6 +2250,93 @@ Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,AAD_PREMIUM_P2,eec0 Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,Microsoft Insider Risk Management - Exchange +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PEOPLE_SKILLS_FOUNDATION,13b6da2c-0d84-450e-9f69-a33e221387ca,People Skills - Foundation +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Retired - Microsoft Data Investigations +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,RETIRED - Places Core +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 @@ -3633,19 +3767,28 @@ Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,M Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,NBPROFESSIONALFORCRM,3e58e97c-9abe-ebab-cd5f-d543d1529634,MICROSOFT SOCIAL ENGAGEMENT PROFESSIONAL - ELIGIBILITY CRITERIA APPLY Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 Microsoft Entra ID Governance,Microsoft_Entra_ID_Governance,cf6b0d46-4093-4546-a0ab-0b1546dcc10e,Entra_Identity_Governance,e866a266-3cff-43a3-acca-0c90a7e00c8b,Entra Identity Governance +Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Entra_Premium_Internet_Access,8d23cb83-ab07-418f-8517-d7aca77307dc,Microsoft Entra Internet Access +Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Entra_Premium_Private_Access,f057aab1-b184-49b2-85c0-881b02a405c5,Microsoft Entra Private Access +Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Verifiable_Credentials_Service_Request,aae826b7-14cd-4691-8178-2b312f7072ea,Verifiable Credentials Service Request +Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Entra_Identity_Governance,e866a266-3cff-43a3-acca-0c90a7e00c8b,Entra Identity Governance +Microsoft Entra Workload ID,Workload_Identities_P2,52cdf00e-8303-4223-a749-ff69a13e2dd0,AAD_WRKLDID_P2,7dc0e92d-bf15-401d-907e-0884efe7c760,Microsoft Entra Workload ID Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,BI_AZURE_P0,2049e525-b859-401b-b2a0-e0a31c4b1fe4,Power BI (free) +Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery Microsoft Fabric (Free) for faculty,POWER_BI_STANDARD_FACULTY,ade29b5f-397e-4eb9-a287-0344bd46c68d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE_S_FOUNDATION Microsoft Fabric (Free) for faculty,POWER_BI_STANDARD_FACULTY,ade29b5f-397e-4eb9-a287-0344bd46c68d,BI_AZURE_P0,2049e525-b859-401b-b2a0-e0a31c4b1fe4,BI_AZURE_P0 Microsoft Fabric (Free) for student,POWER_BI_STANDARD_STUDENT,bdcaf6aa-04c1-4b8f-b64e-6e3bd505ac64,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE_S_FOUNDATION Microsoft Fabric (Free) for student,POWER_BI_STANDARD_STUDENT,bdcaf6aa-04c1-4b8f-b64e-6e3bd505ac64,BI_AZURE_P0,2049e525-b859-401b-b2a0-e0a31c4b1fe4,BI_AZURE_P0 Microsoft Imagine Academy,IT_ACADEMY_AD,ba9a34de-4489-469d-879c-0f0f145321cd,IT_ACADEMY_AD,d736def0-1fde-43f0-a5be-e3f8b2de6e41,MS IMAGINE ACADEMY +Microsoft Intune Advanced Analytics,Microsoft_Intune_Advanced_Analytics,5e36d0d4-e9e5-4052-aba0-0257465c9b86,Intune_AdvancedEA,2a4baa0e-5e99-4c38-b1f2-6864960f1bd1,Microsoft Intune Advanced Analytics Microsoft Intune Device,INTUNE_A_D,2b317a4a-77a6-4188-9437-b68a77b4e2c6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Microsoft Intune Device,INTUNE_A_D,2b317a4a-77a6-4188-9437-b68a77b4e2c6,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Microsoft Intune Device for Government,INTUNE_A_D_GOV,2c21e77a-e0d6-4570-b38a-7ff2dc17d2ca,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government Microsoft Intune Device for Government,INTUNE_A_D_GOV,2c21e77a-e0d6-4570-b38a-7ff2dc17d2ca,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Microsoft Intune Government,INTUNE_A_GOV,2b26f637-35a0-4dbc-b69e-ff674782be9d,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government Microsoft Intune Government,INTUNE_A_GOV,2b26f637-35a0-4dbc-b69e-ff674782be9d,INTUNE_A_GOV,d216f254-796f-4dab-bbfa-710686e646b9,Microsoft Intune G +Microsoft Intune Plan 1 A VL,INTUNE_A_VL,99fc2803-fa72-42d3-ae78-b055e177d275,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Intune Plan 1 A VL,INTUNE_A_VL,99fc2803-fa72-42d3-ae78-b055e177d275,INTUNE_A_VL,3e170737-c728-4eae-bbb9-3f3360f7184c,Microsoft Intune Plan 1 Microsoft Intune Plan 1 A VL_USGOV_GCCHIGH,INTUNE_A_VL_USGOV_GCCHIGH,b4288abe-01be-47d9-ad20-311d6e83fc24,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Microsoft Intune Plan 1 A VL_USGOV_GCCHIGH,INTUNE_A_VL_USGOV_GCCHIGH,b4288abe-01be-47d9-ad20-311d6e83fc24,INTUNE_A_VL,3e170737-c728-4eae-bbb9-3f3360f7184c,Microsoft Intune Plan 1 Microsoft Power Apps for Developer,POWERAPPS_DEV,5b631642-bd26-49fe-bd20-1daaa972ef80,DYN365_CDS_DEV_VIRAL,d8c638e2-9508-40e3-9877-feb87603837b,Common Data Service - DEV VIRAL @@ -3696,6 +3839,10 @@ Microsoft Stream Storage Add-On (500 GB),STREAM_STORAGE,9bd7c846-9556-4453-a542- Microsoft Sustainability Manager Premium,Microsoft_Sustainability_Manager_Premium,aecb477b-2f56-4e38-b711-b752c24fc19b,CDS_CLOUD_FOR_SUSTAINABILITY_PLUS,ba80223c-e515-4642-a838-3e7d66f70cb6,Common Data Services for Cloud for Sustainability Plus Microsoft Sustainability Manager Premium,Microsoft_Sustainability_Manager_Premium,aecb477b-2f56-4e38-b711-b752c24fc19b,MCS_BIZAPPS_CLOUD_FOR_SUSTAINABILITY_PLUS,ed29ae92-ff5f-4446-8460-83c54d0e7088,MCS - BizApps Cloud for Sustainability Plus Microsoft Sustainability Manager Premium,Microsoft_Sustainability_Manager_Premium,aecb477b-2f56-4e38-b711-b752c24fc19b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Sustainability Manager Premium USL Plus,MICROSOFT_SUSTAINABILITY_MANAGER_PREMIUM_USL_ADDON,9d576ffb-dd32-4c33-91ee-91625b61424a,MCS_BIZAPPS_CLOUD_FOR_SUSTAINABILITY_USL_PLUS,beaf5b5c-d11c-4417-b5cb-cd9f9e6719b0,MCS - BizApps Cloud for Sustainability USL Plus +Microsoft Sustainability Manager Premium USL Plus,MICROSOFT_SUSTAINABILITY_MANAGER_PREMIUM_USL_ADDON,9d576ffb-dd32-4c33-91ee-91625b61424a,POWER_APPS_FOR_MCS_USL_PLUS,c5502fe7-406d-442a-827f-4948b821ba08,Power Apps for Cloud for Sustainability USL Plus +Microsoft Sustainability Manager Premium USL Plus,MICROSOFT_SUSTAINABILITY_MANAGER_PREMIUM_USL_ADDON,9d576ffb-dd32-4c33-91ee-91625b61424a,POWER_AUTOMATE_FOR_MCS_USL_PLUS,1c22bb50-96fb-49e5-baa6-195cab19eee2,Power Automate for Cloud for Sustainability USL Plus +Microsoft Sustainability Manager Premium USL Plus,MICROSOFT_SUSTAINABILITY_MANAGER_PREMIUM_USL_ADDON,9d576ffb-dd32-4c33-91ee-91625b61424a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,MCS_BizApps_Cloud_for_Sustainability_USL,c46c42af-d654-4385-8c85-29a84f3dfb22,MCS - BizApps - Cloud for Sustainability USL Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,POWER_APPS_FOR_MCS_USL,5ffd371c-037a-41a2-98a3-6452f8c5de17,Power Apps for Cloud for Sustainability USL Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,POWER_AUTOMATE_FOR_MCS_USL,ccbe468e-7973-442c-8ec4-5fbe16438711,Power Automate for Cloud for Sustainability USL @@ -3808,18 +3955,20 @@ Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003 Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MTRProManagement,ecc74eae-eeb7-4ad5-9c88-e8b2bfca75b8,Microsoft Teams Rooms Pro Management Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,Teams_Rooms_Pro,0374d34c-6be4-4dbb-b3f0-26105db0b28a,Teams Rooms Pro Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,Teams_Room_Basic,8081ca9c-188c-4b49-a8e5-c23b5e9463a8,Teams Rooms Test 1 Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,Teams_Room_Pro,ec17f317-f4bc-451e-b2da-0167e5c260f9,Teams Rooms Test 2 Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,SPECIALTY_DEVICES,cfce7ae3-4b41-4438-999c-c0e91f3b7fb9,Specialty devices Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government @@ -3914,14 +4063,14 @@ Office 365 Multi-Geo Capabilities,OFFICE365_MULTIGEO,84951599-62b7-46f3-9c9d-305 Office 365 Multi-Geo Capabilities,OFFICE365_MULTIGEO,84951599-62b7-46f3-9c9d-30551b2ad607,TEAMSMULTIGEO,41eda15d-6b52-453b-906f-bc4a5b25a26b,Teams Multi-Geo Nonprofit Portal,NONPROFIT_PORTAL,aa2695c9-8d59-4800-9dc8-12e01f1735af,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Nonprofit Portal,NONPROFIT_PORTAL,aa2695c9-8d59-4800-9dc8-12e01f1735af,NONPROFIT_PORTAL,7dbc2d88-20e2-4eb6-b065-4510b38d6eb2,Nonprofit Portal -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service - O365 P1 +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro Plan 2 +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub @@ -3931,9 +4080,8 @@ Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c897 Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) @@ -3942,6 +4090,9 @@ Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c897 Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service - O365 P1 Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics @@ -3969,14 +4120,14 @@ Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-89 Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service - O365 P1 +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro Plan 2 +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub @@ -3985,9 +4136,8 @@ Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4 Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) @@ -3995,6 +4145,9 @@ Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4 Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service - O365 P1 Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics @@ -4270,6 +4423,44 @@ Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,STREAM_O365_E1,7 Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFT_MYANALYTICS_FULL,0403bb98-9d17-4f94-b53e-eca56a7698a6,DO NOT USE - Microsoft MyAnalytics (Full) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,INSIGHTS_BY_MYANALYTICS,b088306e-925b-44ab-baa0-63291c629a91,Insights by MyAnalytics Backend +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PEOPLE_SKILLS_FOUNDATION,13b6da2c-0d84-450e-9f69-a33e221387ca,People Skills - Foundation +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,RETIRED - Places Core +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics @@ -5059,10 +5250,18 @@ Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-5 Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,CDS_ POWERAPPS_PER_USER_CUSTOM,2e8dde43-6986-479d-b179-7dbe31c31f60,CDS Power Apps Per User Custom Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,POWERAPPS_PER_USER,ea2cf03b-ac60-46ae-9c1d-eeaeb63cec86,Power Apps per User Plan Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,Flow_PowerApps_PerUser,dc789ed8-0170-4b65-a415-eb77d5bb350a,Power Automate for Power Apps per User Plan -Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,CDSAICAPACITY_PERUSER_NEW,74d93933-6f22-436e-9441-66d205435abb,AI Builder capacity Per User add-on +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,CDSAICAPACITY_PERUSER,91f50f7b-2204-4803-acac-5cf5668b8b39,DO NOT USE - AI Builder capacity Per User add-on Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,POWERAPPS_PER_USER,ea2cf03b-ac60-46ae-9c1d-eeaeb63cec86,Power Apps per User Plan Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,Flow_PowerApps_PerUser,dc789ed8-0170-4b65-a415-eb77d5bb350a,Power Automate for Power Apps per User Plan +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,POWERAPPS_PER_USER,ea2cf03b-ac60-46ae-9c1d-eeaeb63cec86,Power Apps per User Plan +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,Flow_PowerApps_PerUser,dc789ed8-0170-4b65-a415-eb77d5bb350a,Power Automate for Power Apps per User Plan Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,CDSAICAPACITY_PERUSER,91f50f7b-2204-4803-acac-5cf5668b8b39,AI Builder capacity Per User add-on Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,CDSAICAPACITY_PERUSER_NEW,74d93933-6f22-436e-9441-66d205435abb,AI Builder capacity Per User add-on Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,DYN365_CDS_P2_GOV,37396c73-2203-48e6-8be1-d882dae53275,Common Data Service for Government @@ -5130,6 +5329,8 @@ Power BI Premium Per User,PBI_PREMIUM_PER_USER,c1d032e0-5619-4761-9b5c-75b6831e1 Power BI Premium Per User,PBI_PREMIUM_PER_USER,c1d032e0-5619-4761-9b5c-75b6831e1711,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User Power BI Premium Per User,PBI_PREMIUM_PER_USER,c1d032e0-5619-4761-9b5c-75b6831e1711,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro Power BI Premium Per User Add-On,PBI_PREMIUM_PER_USER_ADDON,de376a03-6e5b-42ec-855f-093fb50b8ca5,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User +Power BI Premium Per User Add-On for Faculty,PBI_PREMIUM_PER_USER_ADDON_FACULTY,c05b235f-be75-4029-8851-6a4170758eef,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User +Power BI Premium Per User Add-On for Faculty,PBI_PREMIUM_PER_USER_ADDON_FACULTY,c05b235f-be75-4029-8851-6a4170758eef,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery Power BI Premium Per User Add-On for GCC,PBI_PREMIUM_PER_USER_ADDON_CE_GCC,66024bbf-4cd4-4329-95c8-c932e2ae01a8,BI_AZURE_P3_GOV,32d15238-9a8c-46da-af3f-21fc5351d365,Power BI Premium Per User for Government Power BI Premium Per User Add-On for GCC,PBI_PREMIUM_PER_USER_ADDON_GCC,1b572d5e-1bf8-4b19-9259-f9eda31a6972,BI_AZURE_P3_GOV,32d15238-9a8c-46da-af3f-21fc5351d365,Power BI Premium Per User for Government Power BI Premium Per User Dept,PBI_PREMIUM_PER_USER_DEPT,f168a3fb-7bcf-4a27-98c3-c235ea4b78b4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation @@ -5426,6 +5627,14 @@ Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-49 Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_VIRTUALAPPT,9104f592-f2a7-4f77-904c-ca5a5715883f,Microsoft Teams Premium Virtual Appointment Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,MCO_VIRTUAL_APPT,711413d0-b36e-4cd4-93db-0a50a4ab7ea3,Microsoft Teams Premium Virtual Appointments Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_WEBINAR,78b58230-ec7e-4309-913c-93a45cc4735b,Microsoft Teams Premium Webinar +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,MICROSOFT_ECDN,85704d55-2e73-47ee-93b4-4b8ea14db92b,Microsoft eCDN +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_MGMT,0504111f-feb8-4a3c-992a-70280f9a2869,Microsoft Teams Premium Intelligent +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_CUST,cc8c0802-a325-43df-8cba-995d0c6cb373,Microsoft Teams Premium Personalized +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_PROTECTION,f8b44f54-18bb-46a3-9658-44ab58712968,Microsoft Teams Premium Secure +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_VIRTUALAPPT,9104f592-f2a7-4f77-904c-ca5a5715883f,Microsoft Teams Premium Virtual Appointment +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,MCO_VIRTUAL_APPT,711413d0-b36e-4cd4-93db-0a50a4ab7ea3,Microsoft Teams Premium Virtual Appointments +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_WEBINAR,78b58230-ec7e-4309-913c-93a45cc4735b,Microsoft Teams Premium Webinar +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,QUEUES_APP,ab2d4fb5-f80a-4bf1-a11d-7f1da254041b,Queues app for Microsoft Teams Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MMR_P1,bdaa59a3-74fd-4137-981a-31d4f84eb8a0,Meeting Room Managed Services Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System diff --git a/Modules/CippExtensions/Private/Get-AssignedMap.ps1 b/Modules/CippExtensions/Private/Get-AssignedMap.ps1 new file mode 100644 index 000000000000..62dcab8ae20a --- /dev/null +++ b/Modules/CippExtensions/Private/Get-AssignedMap.ps1 @@ -0,0 +1,32 @@ +function Get-AssignedMap { + # Assigned Licenses Map + $AssignedMap = [pscustomobject]@{ + 'AADPremiumService' = 'o-skypeforbusiness' + 'MultiFactorService' = 'o-skypeforbusiness' + 'RMSOnline' = 'o-skypeforbusiness' + 'MicrosoftPrint' = 'o-yammer' + 'WindowsDefenderATP' = 'o-skypeforbusiness' + 'exchange' = 'o-exchange' + 'ProcessSimple' = 'o-onedrive' + 'OfficeForms' = 'o-yammer' + 'SCO' = 'o-skypeforbusiness' + 'MicrosoftKaizala' = 'o-yammer' + 'Adallom' = 'o-skypeforbusiness' + 'ProjectWorkManagement' = 'o-yammer' + 'TeamspaceAPI' = 'o-teams' + 'MicrosoftOffice' = 'o-yammer' + 'PowerAppsService' = 'o-onedrive' + 'SharePoint' = 'o-sharepoint' + 'MicrosoftCommunicationsOnline' = 'o-teams' + 'Deskless' = 'o-yammer' + 'MicrosoftStream' = 'o-yammer' + 'Sway' = 'o-yammer' + 'To-Do' = 'o-yammer' + 'WhiteboardServices' = 'o-yammer' + 'Windows' = 'o-skypeforbusiness' + 'YammerEnterprise' = 'o-yammer' + } + + return $AssignedMap + +} diff --git a/Modules/CippExtensions/Private/Get-AssignedNameMap.ps1 b/Modules/CippExtensions/Private/Get-AssignedNameMap.ps1 new file mode 100644 index 000000000000..fcb846e1ec82 --- /dev/null +++ b/Modules/CippExtensions/Private/Get-AssignedNameMap.ps1 @@ -0,0 +1,32 @@ +function Get-AssignedNameMap { + + $AssignedNameMap = @{ + 'AADPremiumService' = 'Azure Active Directory Premium' + 'MultiFactorService' = 'Azure Multi-Factor Authentication' + 'RMSOnline' = 'Azure Rights Management' + 'MicrosoftPrint' = 'Cloud Print' + 'WindowsDefenderATP' = 'Defender for Endpoint' + 'exchange' = 'Exchange Online' + 'ProcessSimple' = 'Flow' + 'OfficeForms' = 'Forms' + 'SCO' = 'Intune' + 'MicrosoftKaizala' = 'Kaizala' + 'Adallom' = 'Microsoft Cloud App Security' + 'ProjectWorkManagement' = 'Microsoft Planner' + 'TeamspaceAPI' = 'Microsoft Teams' + 'MicrosoftOffice' = 'Office 365' + 'PowerAppsService' = 'PowerApps' + 'SharePoint' = 'SharePoint Online' + 'MicrosoftCommunicationsOnline' = 'Skype for Business' + 'Deskless' = 'Staff Hub' + 'MicrosoftStream' = 'Stream' + 'Sway' = 'Sway' + 'To-Do' = 'To-Do' + 'WhiteboardServices' = 'Whiteboard' + 'Windows' = 'Windows' + 'YammerEnterprise' = 'Yammer' + } + + return $AssignedNameMap + +} diff --git a/Modules/CippExtensions/Public/ConversionTable.csv b/Modules/CippExtensions/Public/ConversionTable.csv index 704f7c507d5f..27ee53d2fe35 100644 --- a/Modules/CippExtensions/Public/ConversionTable.csv +++ b/Modules/CippExtensions/Public/ConversionTable.csv @@ -20,6 +20,7 @@ Clipchamp Premium,Clipchamp_Premium,0fe440c5-f2bf-442b-a4f4-9a7af77a200b,ONEDRIV Clipchamp Standard,Clipchamp_Standard,481f3bc2-5756-4b28-9375-5c8c86b99e6b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Clipchamp Standard,Clipchamp_Standard,481f3bc2-5756-4b28-9375-5c8c86b99e6b,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp Clipchamp Standard,Clipchamp_Standard,481f3bc2-5756-4b28-9375-5c8c86b99e6b,ONEDRIVECLIPCHAMP,f7e5b77d-f293-410a-bae8-f941f19fe680,OneDrive for Business (Clipchamp) +Clipchamp Premium Add-on,Clipchamp_Premium_Add_on,4b2c20e4-939d-4bf4-9dd8-6870240cfe19,CLIPCHAMP_PREMIUM,430b908f-78e1-4812-b045-cf83320e7d5d,Microsoft Clipchamp Premium Microsoft 365 Audio Conferencing,MCOMEETADV,0c266dff-15dd-4b49-8397-2bb16070ed52,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing Microsoft Entra ID Basic,AAD_BASIC,2b9c8e7c-319c-43a2-a2a0-48c5c6161de7,AAD_BASIC,c4da7f8a-5ee2-4c99-a7e1-87d2df57f6fe,Microsoft Entra BASIC Microsoft Entra ID P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 @@ -64,6 +65,7 @@ Common Data Service Log Capacity,CDS_LOG_CAPACITY,448b063f-9cc6-42fc-a0e6-40e087 Communications Credits,MCOPSTNC,47794cd0-f0e5-45c5-9033-2eb6b5fc84e0,MCOPSTNC,505e180f-f7e0-4b65-91d4-00d670bbd18c,COMMUNICATIONS CREDITS Compliance Manager Premium Assessment Add-On,CMPA_addon,8a5fbbed-8b8c-41e5-907e-c50c471340fd,COMPLIANCE_MANAGER_PREMIUM_ASSESSMENT_ADDON,3a117d30-cfac-4f00-84ac-54f8b6a18d78,Compliance Manager Premium Assessment Add-On Compliance Manager Premium Assessment Add-On for GCC,CMPA_addon_GCC,a9d7ef53-9bea-4a2a-9650-fa7df58fe094,COMPLIANCE_MANAGER_PREMIUM_ASSESSMENT_ADDON,3a117d30-cfac-4f00-84ac-54f8b6a18d78,Compliance Manager Premium Assessment Add-On +Compliance Program for Microsoft Cloud,Compliance_Program_for_Microsoft_Cloud,10dd46b2-c5ad-4de3-865c-a6fa1363fb51,CPMC,1265e154-5544-4197-bba1-03ef69c3b180,Compliance Program for Microsoft Cloud Defender Threat Intelligence,Defender_Threat_Intelligence,a9c51c15-ffad-4c66-88c0-8771455c832d,THREAT_INTELLIGENCE_APP,fbdb91e6-7bfd-4a1f-8f7a-d27f4ef39702,Defender Threat Intelligence Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_CHAT_FPA_GOV,b9f7ce72-67ff-4695-a9d9-5ff620232024,Dynamics 365 Customer Service Chat Application Integration for Government Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government @@ -239,6 +241,9 @@ Dynamics 365 Enterprise Edition - Additional Production Instance for Government, "Dynamics 365 Field Service, Enterprise Edition - Resource Scheduling Optimization",CRM_AUTO_ROUTING_ADDON,977464c4-bfaf-4b67-b761-a9bb735a2196,CRM_AUTO_ROUTING_ENGINE_ADDON,24435e4b-87d0-4d7d-8beb-63a9b1573022,Field Service – Automated Routing Engine Add-On "Dynamics 365 Field Service, Enterprise Edition - Resource Scheduling Optimization",CRM_AUTO_ROUTING_ADDON,977464c4-bfaf-4b67-b761-a9bb735a2196,CRM_AUTO_ROUTING_ADDON,2ba394e0-6f18-4b77-b45f-a5663bbab540,RETIRED - Field Service – Automated Routing Engine Add-On "Dynamics 365 Field Service, Enterprise Edition - Resource Scheduling Optimization",CRM_AUTO_ROUTING_ADDON,977464c4-bfaf-4b67-b761-a9bb735a2196,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Field Service Contractor,D365_FIELD_SERVICE_CONTRACTOR,23e6e135-e869-4ce4-9ae4-5710cd69ac13,CDS_FIELD_SERVICE_CONTRACTOR,f4614a66-d632-443a-bc77-afe92987b322,Common Data Service Field service Part Time Contractors +Dynamics 365 Field Service Contractor,D365_FIELD_SERVICE_CONTRACTOR,23e6e135-e869-4ce4-9ae4-5710cd69ac13,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Field Service Contractor,D365_FIELD_SERVICE_CONTRACTOR,23e6e135-e869-4ce4-9ae4-5710cd69ac13,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 Dynamics 365 Field Service Contractor for Government,D365_FIELD_SERVICE_CONTRACTOR_GOV,e7965e3a-1f49-4d67-a3de-ad1ce460bbcc,CDS_FIELD_SERVICE_CONTRACTOR_GCC,2457fe40-65be-48a1-935f-924ad6e62dba,Common Data Service Field service Part Time Contractors for Government Dynamics 365 Field Service Contractor for Government,D365_FIELD_SERVICE_CONTRACTOR_GOV,e7965e3a-1f49-4d67-a3de-ad1ce460bbcc,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government Dynamics 365 Field Service Contractor for Government,D365_FIELD_SERVICE_CONTRACTOR_GOV,e7965e3a-1f49-4d67-a3de-ad1ce460bbcc,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government @@ -360,6 +365,17 @@ Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMIC Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,CDS_CUSTOMER_INSIGHTS_BASE,d04ca659-b119-4a92-b8fc-3ede584a9d65,Dataverse for Cust Insights BASE +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,CDS_CUSTOMER_INSIGHTS_COMBINED_BASE,d66ee5da-07d5-49d6-a1d8-45662c3f37be,Dataverse for Customer Insights Combined Base +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,DYN365_CUSTOMER_INSIGHTS_JOURNEYS_BASE,1720c3f7-7da3-4a11-8324-92aad283eb68,Dynamics 365 Customer Insights Journeys +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,Forms_Pro_Marketing_App,22b657cf-0a9e-467b-8a91-5e31f21bc570,Microsoft Dynamics 365 Customer Voice for Marketing Application +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Insights Journeys T3 Interacted People,Dynamics_365_Customer_Insights_Journeys_T3_Interacted_People,05735051-46c0-4c84-9107-bb13d77d0b88,CDS_CUSTOMER_INSIGHTS_JOURNEYS_ADD-ON,2f2e81a6-15de-4041-9f33-73c06fed3801,Dataverse for Customer Insights Journeys add-on +Dynamics 365 Customer Insights Journeys T3 Interacted People,Dynamics_365_Customer_Insights_Journeys_T3_Interacted_People,05735051-46c0-4c84-9107-bb13d77d0b88,DYN365_MARKETING_50K_CONTACT_ADDON,e626a4ec-1ba2-409e-bf75-9bc0bc30cca7,Dynamics 365 for Marketing 50K Addnl Contacts +Dynamics 365 Customer Insights Journeys T3 Interacted People,Dynamics_365_Customer_Insights_Journeys_T3_Interacted_People,05735051-46c0-4c84-9107-bb13d77d0b88,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Insights User License,Dynamics_365_Customer_Insights_User_License,12b5a442-a6f2-49e4-868b-2d7408c2356f,DYN365_MARKETING_MSE_USER,2824c69a-1ac5-4397-8592-eae51cb8b581,Dynamics 365 for Marketing MSE User +Dynamics 365 Customer Insights User License,Dynamics_365_Customer_Insights_User_License,12b5a442-a6f2-49e4-868b-2d7408c2356f,DYN365_MARKETING_USER,5d7a6abc-eebd-46ab-96e1-e4a2f54a2248,Dynamics 365 for Marketing USL +Dynamics 365 Customer Insights User License,Dynamics_365_Customer_Insights_User_License,12b5a442-a6f2-49e4-868b-2d7408c2356f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,DYN365_CS_CHAT_FPA,426ec19c-d5b1-4548-b894-6fe75028c30d,Dynamics 365 Customer Service Chat Application Integration Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,DYN365_CS_CHAT,f69129db-6dc1-4107-855e-0aaebbcd9dd4,Dynamics 365 for Customer Service Chat Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,POWER_VIRTUAL_AGENTS_D365_CS_CHAT,19e4c3a8-3ebe-455f-a294-4f3479873ae3,Power Virtual Agents for Chat @@ -418,10 +434,19 @@ Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-96 Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,Common Data Service Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,POWER_APPS_DYN365_VIRAL_TRIAL_MIXED_REALITY,066e2fd1-ba15-40e7-aa96-d6636b1cdf71,Power Apps for Dynamics 365 Mixed Reality Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,POWER_AUTOMATE_DYN365_VIRAL_TRIAL_MIXED_REALITY,26fa8a18-2812-4b3d-96b4-864818ce26be,Power Automate for Dynamics 365 Mixed Reality +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,Forms_Pro_Talent,1c4ae475-5608-43fa-b3f7-d20e07cf24b4,Microsoft Dynamics 365 Customer Voice for Talent +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,D365_HR_SELF_SERVICE_OPS,835b837b-63c1-410e-bf6b-bdef201ad129,Dynamics 365 Human Resource Self Service +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,D365_HR_OPS,8b21a5dc-5485-49ed-a2d4-0e772c830f6d,Dynamics 365 Human Resources +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,D365_HR_Attach,3219525a-4064-45ec-9c35-a33ea6b39a49,Dynamics 365 Human Resources Attach +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,D365_HR_ATTACH_OPS,90d8cb62-e98a-4639-8342-8c7d2c8215ba,Dynamics 365 Human Resources Attach License +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Dynamics 365 Hybrid Connector,CRM_HYBRIDCONNECTOR,de176c31-616d-4eae-829a-718918d7ec23,CRM_HYBRIDCONNECTOR,0210d5c8-49d2-4dd1-a01b-a91c7c14e0bf,CRM Hybrid Connector Dynamics 365 Hybrid Connector,CRM_HYBRIDCONNECTOR,de176c31-616d-4eae-829a-718918d7ec23,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Dynamics 365 for Marketing Additional Application,DYN365_MARKETING_APPLICATION_ADDON,99c5688b-6c75-4496-876f-07f0fbd69add,DYN365_MARKETING_APPLICATION_ADDON,51cf0638-4861-40c0-8b20-1161ab2f80be,Dynamics 365 for Marketing Additional Application Dynamics 365 for Marketing Additional Application,DYN365_MARKETING_APPLICATION_ADDON,99c5688b-6c75-4496-876f-07f0fbd69add,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Addnl Contacts Tier 1,DYN365_MARKETING_CONTACT_ADDON,fc4581aa-6b1f-459d-95b6-84bd49d6f843,DYN365_MARKETING_CONTACT_ADDON,18db5075-2c70-408d-a82b-929059d782af,Dynamics 365 for Marketing Additional Contacts Tier 1 +Dynamics 365 for Marketing Addnl Contacts Tier 1,DYN365_MARKETING_CONTACT_ADDON,fc4581aa-6b1f-459d-95b6-84bd49d6f843,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Dynamics 365 for Marketing Addnl Contacts Tier 3,DYN365_MARKETING_CONTACT_ADDON_T3,23053933-0fda-431f-9a5b-a00fd78444c1,DYN365_MARKETING_50K_CONTACT_ADDON,e626a4ec-1ba2-409e-bf75-9bc0bc30cca7,Dynamics 365 for Marketing 50K Addnl Contacts Dynamics 365 for Marketing Addnl Contacts Tier 3,DYN365_MARKETING_CONTACT_ADDON_T3,23053933-0fda-431f-9a5b-a00fd78444c1,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Dynamics 365 for Marketing Addnl Contacts Tier 5,DYN365_MARKETING_CONTACT_ADDON_T5,d8eec316-778c-4f14-a7d1-a0aca433b4e7,DYN365_MARKETING_50K_CONTACT_ADDON,e626a4ec-1ba2-409e-bf75-9bc0bc30cca7,Dynamics 365 for Marketing 50K Addnl Contacts @@ -967,111 +992,129 @@ Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSE Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,Microsoft Communications Compliance -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,Microsoft Insider Risk Management -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,COMMON_DEFENDER_PLATFORM_FOR_OFFICE,a312bdeb-1e21-40d0-84b1-0e73f128144f,Defender Platform for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,Microsoft Insider Risk Management - Exchange +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Retired - Microsoft Data Investigations +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Intune_ServiceNow,3eeb8536-fecf-41bf-a3f8-d6f17a9f3efc,Intune ServiceNow Integration +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune Plan 1 for Education +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,REMOTE_HELP,a4c6cf29-1168-4076-ba5c-e8fe0e62b17e,Remote help +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,COMMON_DEFENDER_PLATFORM_FOR_OFFICE,a312bdeb-1e21-40d0-84b1-0e73f128144f,Defender Platform for Office 365 Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,Microsoft Insider Risk Management - Exchange Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner @@ -1091,8 +1134,10 @@ Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3 Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Retired - Microsoft Data Investigations Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) @@ -1105,18 +1150,20 @@ Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3 Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Intune_ServiceNow,3eeb8536-fecf-41bf-a3f8-d6f17a9f3efc,Intune ServiceNow Integration Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune Plan 1 for Education Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,REMOTE_HELP,a4c6cf29-1168-4076-ba5c-e8fe0e62b17e,Remote help Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics @@ -2203,6 +2250,93 @@ Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,AAD_PREMIUM_P2,eec0 Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,Microsoft Insider Risk Management - Exchange +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PEOPLE_SKILLS_FOUNDATION,13b6da2c-0d84-450e-9f69-a33e221387ca,People Skills - Foundation +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Retired - Microsoft Data Investigations +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,RETIRED - Places Core +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 @@ -3633,19 +3767,28 @@ Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,M Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,NBPROFESSIONALFORCRM,3e58e97c-9abe-ebab-cd5f-d543d1529634,MICROSOFT SOCIAL ENGAGEMENT PROFESSIONAL - ELIGIBILITY CRITERIA APPLY Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 Microsoft Entra ID Governance,Microsoft_Entra_ID_Governance,cf6b0d46-4093-4546-a0ab-0b1546dcc10e,Entra_Identity_Governance,e866a266-3cff-43a3-acca-0c90a7e00c8b,Entra Identity Governance +Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Entra_Premium_Internet_Access,8d23cb83-ab07-418f-8517-d7aca77307dc,Microsoft Entra Internet Access +Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Entra_Premium_Private_Access,f057aab1-b184-49b2-85c0-881b02a405c5,Microsoft Entra Private Access +Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Verifiable_Credentials_Service_Request,aae826b7-14cd-4691-8178-2b312f7072ea,Verifiable Credentials Service Request +Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Entra_Identity_Governance,e866a266-3cff-43a3-acca-0c90a7e00c8b,Entra Identity Governance +Microsoft Entra Workload ID,Workload_Identities_P2,52cdf00e-8303-4223-a749-ff69a13e2dd0,AAD_WRKLDID_P2,7dc0e92d-bf15-401d-907e-0884efe7c760,Microsoft Entra Workload ID Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,BI_AZURE_P0,2049e525-b859-401b-b2a0-e0a31c4b1fe4,Power BI (free) +Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery Microsoft Fabric (Free) for faculty,POWER_BI_STANDARD_FACULTY,ade29b5f-397e-4eb9-a287-0344bd46c68d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE_S_FOUNDATION Microsoft Fabric (Free) for faculty,POWER_BI_STANDARD_FACULTY,ade29b5f-397e-4eb9-a287-0344bd46c68d,BI_AZURE_P0,2049e525-b859-401b-b2a0-e0a31c4b1fe4,BI_AZURE_P0 Microsoft Fabric (Free) for student,POWER_BI_STANDARD_STUDENT,bdcaf6aa-04c1-4b8f-b64e-6e3bd505ac64,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE_S_FOUNDATION Microsoft Fabric (Free) for student,POWER_BI_STANDARD_STUDENT,bdcaf6aa-04c1-4b8f-b64e-6e3bd505ac64,BI_AZURE_P0,2049e525-b859-401b-b2a0-e0a31c4b1fe4,BI_AZURE_P0 Microsoft Imagine Academy,IT_ACADEMY_AD,ba9a34de-4489-469d-879c-0f0f145321cd,IT_ACADEMY_AD,d736def0-1fde-43f0-a5be-e3f8b2de6e41,MS IMAGINE ACADEMY +Microsoft Intune Advanced Analytics,Microsoft_Intune_Advanced_Analytics,5e36d0d4-e9e5-4052-aba0-0257465c9b86,Intune_AdvancedEA,2a4baa0e-5e99-4c38-b1f2-6864960f1bd1,Microsoft Intune Advanced Analytics Microsoft Intune Device,INTUNE_A_D,2b317a4a-77a6-4188-9437-b68a77b4e2c6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Microsoft Intune Device,INTUNE_A_D,2b317a4a-77a6-4188-9437-b68a77b4e2c6,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Microsoft Intune Device for Government,INTUNE_A_D_GOV,2c21e77a-e0d6-4570-b38a-7ff2dc17d2ca,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government Microsoft Intune Device for Government,INTUNE_A_D_GOV,2c21e77a-e0d6-4570-b38a-7ff2dc17d2ca,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Microsoft Intune Government,INTUNE_A_GOV,2b26f637-35a0-4dbc-b69e-ff674782be9d,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government Microsoft Intune Government,INTUNE_A_GOV,2b26f637-35a0-4dbc-b69e-ff674782be9d,INTUNE_A_GOV,d216f254-796f-4dab-bbfa-710686e646b9,Microsoft Intune G +Microsoft Intune Plan 1 A VL,INTUNE_A_VL,99fc2803-fa72-42d3-ae78-b055e177d275,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Intune Plan 1 A VL,INTUNE_A_VL,99fc2803-fa72-42d3-ae78-b055e177d275,INTUNE_A_VL,3e170737-c728-4eae-bbb9-3f3360f7184c,Microsoft Intune Plan 1 Microsoft Intune Plan 1 A VL_USGOV_GCCHIGH,INTUNE_A_VL_USGOV_GCCHIGH,b4288abe-01be-47d9-ad20-311d6e83fc24,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Microsoft Intune Plan 1 A VL_USGOV_GCCHIGH,INTUNE_A_VL_USGOV_GCCHIGH,b4288abe-01be-47d9-ad20-311d6e83fc24,INTUNE_A_VL,3e170737-c728-4eae-bbb9-3f3360f7184c,Microsoft Intune Plan 1 Microsoft Power Apps for Developer,POWERAPPS_DEV,5b631642-bd26-49fe-bd20-1daaa972ef80,DYN365_CDS_DEV_VIRAL,d8c638e2-9508-40e3-9877-feb87603837b,Common Data Service - DEV VIRAL @@ -3696,6 +3839,10 @@ Microsoft Stream Storage Add-On (500 GB),STREAM_STORAGE,9bd7c846-9556-4453-a542- Microsoft Sustainability Manager Premium,Microsoft_Sustainability_Manager_Premium,aecb477b-2f56-4e38-b711-b752c24fc19b,CDS_CLOUD_FOR_SUSTAINABILITY_PLUS,ba80223c-e515-4642-a838-3e7d66f70cb6,Common Data Services for Cloud for Sustainability Plus Microsoft Sustainability Manager Premium,Microsoft_Sustainability_Manager_Premium,aecb477b-2f56-4e38-b711-b752c24fc19b,MCS_BIZAPPS_CLOUD_FOR_SUSTAINABILITY_PLUS,ed29ae92-ff5f-4446-8460-83c54d0e7088,MCS - BizApps Cloud for Sustainability Plus Microsoft Sustainability Manager Premium,Microsoft_Sustainability_Manager_Premium,aecb477b-2f56-4e38-b711-b752c24fc19b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Sustainability Manager Premium USL Plus,MICROSOFT_SUSTAINABILITY_MANAGER_PREMIUM_USL_ADDON,9d576ffb-dd32-4c33-91ee-91625b61424a,MCS_BIZAPPS_CLOUD_FOR_SUSTAINABILITY_USL_PLUS,beaf5b5c-d11c-4417-b5cb-cd9f9e6719b0,MCS - BizApps Cloud for Sustainability USL Plus +Microsoft Sustainability Manager Premium USL Plus,MICROSOFT_SUSTAINABILITY_MANAGER_PREMIUM_USL_ADDON,9d576ffb-dd32-4c33-91ee-91625b61424a,POWER_APPS_FOR_MCS_USL_PLUS,c5502fe7-406d-442a-827f-4948b821ba08,Power Apps for Cloud for Sustainability USL Plus +Microsoft Sustainability Manager Premium USL Plus,MICROSOFT_SUSTAINABILITY_MANAGER_PREMIUM_USL_ADDON,9d576ffb-dd32-4c33-91ee-91625b61424a,POWER_AUTOMATE_FOR_MCS_USL_PLUS,1c22bb50-96fb-49e5-baa6-195cab19eee2,Power Automate for Cloud for Sustainability USL Plus +Microsoft Sustainability Manager Premium USL Plus,MICROSOFT_SUSTAINABILITY_MANAGER_PREMIUM_USL_ADDON,9d576ffb-dd32-4c33-91ee-91625b61424a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,MCS_BizApps_Cloud_for_Sustainability_USL,c46c42af-d654-4385-8c85-29a84f3dfb22,MCS - BizApps - Cloud for Sustainability USL Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,POWER_APPS_FOR_MCS_USL,5ffd371c-037a-41a2-98a3-6452f8c5de17,Power Apps for Cloud for Sustainability USL Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,POWER_AUTOMATE_FOR_MCS_USL,ccbe468e-7973-442c-8ec4-5fbe16438711,Power Automate for Cloud for Sustainability USL @@ -3808,18 +3955,20 @@ Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003 Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MTRProManagement,ecc74eae-eeb7-4ad5-9c88-e8b2bfca75b8,Microsoft Teams Rooms Pro Management Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,Teams_Rooms_Pro,0374d34c-6be4-4dbb-b3f0-26105db0b28a,Teams Rooms Pro Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,Teams_Room_Basic,8081ca9c-188c-4b49-a8e5-c23b5e9463a8,Teams Rooms Test 1 Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,Teams_Room_Pro,ec17f317-f4bc-451e-b2da-0167e5c260f9,Teams Rooms Test 2 Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,SPECIALTY_DEVICES,cfce7ae3-4b41-4438-999c-c0e91f3b7fb9,Specialty devices Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government @@ -3914,14 +4063,14 @@ Office 365 Multi-Geo Capabilities,OFFICE365_MULTIGEO,84951599-62b7-46f3-9c9d-305 Office 365 Multi-Geo Capabilities,OFFICE365_MULTIGEO,84951599-62b7-46f3-9c9d-30551b2ad607,TEAMSMULTIGEO,41eda15d-6b52-453b-906f-bc4a5b25a26b,Teams Multi-Geo Nonprofit Portal,NONPROFIT_PORTAL,aa2695c9-8d59-4800-9dc8-12e01f1735af,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Nonprofit Portal,NONPROFIT_PORTAL,aa2695c9-8d59-4800-9dc8-12e01f1735af,NONPROFIT_PORTAL,7dbc2d88-20e2-4eb6-b065-4510b38d6eb2,Nonprofit Portal -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service - O365 P1 +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro Plan 2 +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub @@ -3931,9 +4080,8 @@ Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c897 Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) @@ -3942,6 +4090,9 @@ Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c897 Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service - O365 P1 Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics @@ -3969,14 +4120,14 @@ Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-89 Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service - O365 P1 +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro Plan 2 +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub @@ -3985,9 +4136,8 @@ Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4 Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) @@ -3995,6 +4145,9 @@ Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4 Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service - O365 P1 Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics @@ -4270,6 +4423,44 @@ Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,STREAM_O365_E1,7 Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFT_MYANALYTICS_FULL,0403bb98-9d17-4f94-b53e-eca56a7698a6,DO NOT USE - Microsoft MyAnalytics (Full) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,INSIGHTS_BY_MYANALYTICS,b088306e-925b-44ab-baa0-63291c629a91,Insights by MyAnalytics Backend +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PEOPLE_SKILLS_FOUNDATION,13b6da2c-0d84-450e-9f69-a33e221387ca,People Skills - Foundation +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,RETIRED - Places Core +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics @@ -5059,10 +5250,18 @@ Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-5 Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,CDS_ POWERAPPS_PER_USER_CUSTOM,2e8dde43-6986-479d-b179-7dbe31c31f60,CDS Power Apps Per User Custom Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,POWERAPPS_PER_USER,ea2cf03b-ac60-46ae-9c1d-eeaeb63cec86,Power Apps per User Plan Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,Flow_PowerApps_PerUser,dc789ed8-0170-4b65-a415-eb77d5bb350a,Power Automate for Power Apps per User Plan -Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,CDSAICAPACITY_PERUSER_NEW,74d93933-6f22-436e-9441-66d205435abb,AI Builder capacity Per User add-on +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,CDSAICAPACITY_PERUSER,91f50f7b-2204-4803-acac-5cf5668b8b39,DO NOT USE - AI Builder capacity Per User add-on Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,POWERAPPS_PER_USER,ea2cf03b-ac60-46ae-9c1d-eeaeb63cec86,Power Apps per User Plan Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,Flow_PowerApps_PerUser,dc789ed8-0170-4b65-a415-eb77d5bb350a,Power Automate for Power Apps per User Plan +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,POWERAPPS_PER_USER,ea2cf03b-ac60-46ae-9c1d-eeaeb63cec86,Power Apps per User Plan +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,Flow_PowerApps_PerUser,dc789ed8-0170-4b65-a415-eb77d5bb350a,Power Automate for Power Apps per User Plan Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,CDSAICAPACITY_PERUSER,91f50f7b-2204-4803-acac-5cf5668b8b39,AI Builder capacity Per User add-on Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,CDSAICAPACITY_PERUSER_NEW,74d93933-6f22-436e-9441-66d205435abb,AI Builder capacity Per User add-on Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,DYN365_CDS_P2_GOV,37396c73-2203-48e6-8be1-d882dae53275,Common Data Service for Government @@ -5130,6 +5329,8 @@ Power BI Premium Per User,PBI_PREMIUM_PER_USER,c1d032e0-5619-4761-9b5c-75b6831e1 Power BI Premium Per User,PBI_PREMIUM_PER_USER,c1d032e0-5619-4761-9b5c-75b6831e1711,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User Power BI Premium Per User,PBI_PREMIUM_PER_USER,c1d032e0-5619-4761-9b5c-75b6831e1711,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro Power BI Premium Per User Add-On,PBI_PREMIUM_PER_USER_ADDON,de376a03-6e5b-42ec-855f-093fb50b8ca5,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User +Power BI Premium Per User Add-On for Faculty,PBI_PREMIUM_PER_USER_ADDON_FACULTY,c05b235f-be75-4029-8851-6a4170758eef,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User +Power BI Premium Per User Add-On for Faculty,PBI_PREMIUM_PER_USER_ADDON_FACULTY,c05b235f-be75-4029-8851-6a4170758eef,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery Power BI Premium Per User Add-On for GCC,PBI_PREMIUM_PER_USER_ADDON_CE_GCC,66024bbf-4cd4-4329-95c8-c932e2ae01a8,BI_AZURE_P3_GOV,32d15238-9a8c-46da-af3f-21fc5351d365,Power BI Premium Per User for Government Power BI Premium Per User Add-On for GCC,PBI_PREMIUM_PER_USER_ADDON_GCC,1b572d5e-1bf8-4b19-9259-f9eda31a6972,BI_AZURE_P3_GOV,32d15238-9a8c-46da-af3f-21fc5351d365,Power BI Premium Per User for Government Power BI Premium Per User Dept,PBI_PREMIUM_PER_USER_DEPT,f168a3fb-7bcf-4a27-98c3-c235ea4b78b4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation @@ -5426,6 +5627,14 @@ Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-49 Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_VIRTUALAPPT,9104f592-f2a7-4f77-904c-ca5a5715883f,Microsoft Teams Premium Virtual Appointment Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,MCO_VIRTUAL_APPT,711413d0-b36e-4cd4-93db-0a50a4ab7ea3,Microsoft Teams Premium Virtual Appointments Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_WEBINAR,78b58230-ec7e-4309-913c-93a45cc4735b,Microsoft Teams Premium Webinar +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,MICROSOFT_ECDN,85704d55-2e73-47ee-93b4-4b8ea14db92b,Microsoft eCDN +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_MGMT,0504111f-feb8-4a3c-992a-70280f9a2869,Microsoft Teams Premium Intelligent +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_CUST,cc8c0802-a325-43df-8cba-995d0c6cb373,Microsoft Teams Premium Personalized +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_PROTECTION,f8b44f54-18bb-46a3-9658-44ab58712968,Microsoft Teams Premium Secure +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_VIRTUALAPPT,9104f592-f2a7-4f77-904c-ca5a5715883f,Microsoft Teams Premium Virtual Appointment +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,MCO_VIRTUAL_APPT,711413d0-b36e-4cd4-93db-0a50a4ab7ea3,Microsoft Teams Premium Virtual Appointments +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_WEBINAR,78b58230-ec7e-4309-913c-93a45cc4735b,Microsoft Teams Premium Webinar +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,QUEUES_APP,ab2d4fb5-f80a-4bf1-a11d-7f1da254041b,Queues app for Microsoft Teams Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MMR_P1,bdaa59a3-74fd-4137-981a-31d4f84eb8a0,Meeting Room Managed Services Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System diff --git a/Modules/CippExtensions/Public/Extension Functions/Get-CippExtensionReportingData.ps1 b/Modules/CippExtensions/Public/Extension Functions/Get-CippExtensionReportingData.ps1 new file mode 100644 index 000000000000..894bb7a4469b --- /dev/null +++ b/Modules/CippExtensions/Public/Extension Functions/Get-CippExtensionReportingData.ps1 @@ -0,0 +1,110 @@ +function Get-CippExtensionReportingData { + <# + .SYNOPSIS + Retrieves cached data from CIPP Reporting DB for extension sync + + .DESCRIPTION + This function replaces Get-ExtensionCacheData by retrieving data from the new CIPP Reporting DB + instead of the legacy CacheExtensionSync table. It handles property mappings and data transformations + to maintain compatibility with existing extension sync code. + + .PARAMETER TenantFilter + The tenant to retrieve data for + + .PARAMETER IncludeMailboxes + Include mailbox data (requires separate cache run with Type 'Mailboxes') + + .EXAMPLE + $ExtensionCache = Get-CippExtensionReportingData -TenantFilter 'contoso.onmicrosoft.com' + + .EXAMPLE + $ExtensionCache = Get-CippExtensionReportingData -TenantFilter 'contoso.onmicrosoft.com' -IncludeMailboxes + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + [Parameter(Mandatory = $false)] + [switch]$IncludeMailboxes + ) + + try { + $Return = @{} + + # Direct mappings - loop through items and parse each .Data property (filter out count entries) + $UsersItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'Users' | Where-Object { $_.RowKey -notlike '*-Count' } + $Return.Users = if ($UsersItems) { $UsersItems | ForEach-Object { $_.Data | ConvertFrom-Json } } else { @() } + + $DomainsItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'Domains' | Where-Object { $_.RowKey -notlike '*-Count' } + $Return.Domains = if ($DomainsItems) { $DomainsItems | ForEach-Object { $_.Data | ConvertFrom-Json } } else { @() } + + $ConditionalAccessItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'ConditionalAccessPolicies' | Where-Object { $_.RowKey -notlike '*-Count' } + $Return.ConditionalAccess = if ($ConditionalAccessItems) { $ConditionalAccessItems | ForEach-Object { $_.Data | ConvertFrom-Json } } else { @() } + + $ManagedDevicesItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'ManagedDevices' | Where-Object { $_.RowKey -notlike '*-Count' } + $Return.Devices = if ($ManagedDevicesItems) { $ManagedDevicesItems | ForEach-Object { $_.Data | ConvertFrom-Json } } else { @() } + + $OrganizationItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'Organization' | Where-Object { $_.RowKey -notlike '*-Count' } + $Return.Organization = if ($OrganizationItems) { ($OrganizationItems | ForEach-Object { $_.Data | ConvertFrom-Json } | Select-Object -First 1) } else { $null } + + # Groups with inline members (members are now in each group object) + $GroupsItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'Groups' | Where-Object { $_.RowKey -notlike '*-Count' } + $Return.Groups = if ($GroupsItems) { $GroupsItems | ForEach-Object { $_.Data | ConvertFrom-Json } } else { @() } + + # Roles with inline members (members are now in each role object) + $RolesItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'Roles' | Where-Object { $_.RowKey -notlike '*-Count' } + $Return.AllRoles = if ($RolesItems) { $RolesItems | ForEach-Object { $_.Data | ConvertFrom-Json } } else { @() } + + # License mapping with property translation to maintain compatibility + $LicenseItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'LicenseOverview' | Where-Object { $_.RowKey -notlike '*-Count' } + if ($LicenseItems) { + $ParsedLicenseData = $LicenseItems | ForEach-Object { $_.Data | ConvertFrom-Json } + $Return.Licenses = $ParsedLicenseData | Select-Object @{N = 'skuId'; E = { $_.skuId } }, + @{N = 'skuPartNumber'; E = { $_.skuPartNumber } }, + @{N = 'consumedUnits'; E = { $_.CountUsed } }, + @{N = 'prepaidUnits'; E = { @{enabled = $_.TotalLicenses } } } + } else { + $Return.Licenses = @() + } + + # Intune policies (renamed from DeviceCompliancePolicies to IntuneDeviceCompliancePolicies) + $IntunePoliciesItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'IntuneDeviceCompliancePolicies' | Where-Object { $_.RowKey -notlike '*-Count' } + $Return.DeviceCompliancePolicies = if ($IntunePoliciesItems) { $IntunePoliciesItems | ForEach-Object { $_.Data | ConvertFrom-Json } } else { @() } + + # Secure Score + $SecureScoreItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'SecureScore' | Where-Object { $_.RowKey -notlike '*-Count' } + $Return.SecureScore = if ($SecureScoreItems) { $SecureScoreItems | ForEach-Object { $_.Data | ConvertFrom-Json } } else { @() } + + # Secure Score Control Profiles + $SecureScoreControlProfilesItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'SecureScoreControlProfiles' | Where-Object { $_.RowKey -notlike '*-Count' } + $Return.SecureScoreControlProfiles = if ($SecureScoreControlProfilesItems) { $SecureScoreControlProfilesItems | ForEach-Object { $_.Data | ConvertFrom-Json } } else { @() } + + # Mailboxes (optional - requires separate cache run) + if ($IncludeMailboxes) { + $MailboxesItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'Mailboxes' | Where-Object { $_.RowKey -notlike '*-Count' } + $Return.Mailboxes = if ($MailboxesItems) { $MailboxesItems | ForEach-Object { $_.Data | ConvertFrom-Json } } else { @() } + + $CASMailboxItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'CASMailbox' | Where-Object { $_.RowKey -notlike '*-Count' } + $Return.CASMailbox = if ($CASMailboxItems) { $CASMailboxItems | ForEach-Object { $_.Data | ConvertFrom-Json } } else { @() } + + $MailboxPermissionsItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'MailboxPermissions' | Where-Object { $_.RowKey -notlike '*-Count' } + $Return.MailboxPermissions = if ($MailboxPermissionsItems) { $MailboxPermissionsItems | ForEach-Object { $_.Data | ConvertFrom-Json } } else { @() } + + $OneDriveUsageItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'OneDriveUsage' | Where-Object { $_.RowKey -notlike '*-Count' } + $Return.OneDriveUsage = if ($OneDriveUsageItems) { $OneDriveUsageItems | ForEach-Object { $_.Data | ConvertFrom-Json } } else { @() } + + $MailboxUsageItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'MailboxUsage' | Where-Object { $_.RowKey -notlike '*-Count' } + $Return.MailboxUsage = if ($MailboxUsageItems) { $MailboxUsageItems | ForEach-Object { $_.Data | ConvertFrom-Json } } else { @() } + } + + return $Return + + } catch { + Write-LogMessage -API 'ExtensionCache' -tenant $TenantFilter -message "Failed to retrieve extension reporting data: $($_.Exception.Message)" -sev Error + throw + } +} diff --git a/Modules/CippExtensions/Public/Extension Functions/Get-ExtensionAPIKey.ps1 b/Modules/CippExtensions/Public/Extension Functions/Get-ExtensionAPIKey.ps1 index 856a9a4be1ef..561893aee457 100644 --- a/Modules/CippExtensions/Public/Extension Functions/Get-ExtensionAPIKey.ps1 +++ b/Modules/CippExtensions/Public/Extension Functions/Get-ExtensionAPIKey.ps1 @@ -12,25 +12,16 @@ function Get-ExtensionAPIKey { $Var = "Ext_$Extension" $APIKey = Get-Item -Path "env:$Var" -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Value - if ($APIKey) { + if ($APIKey -and -not $Force) { Write-Information "Using cached API Key for $Extension" } else { Write-Information "Retrieving API Key for $Extension" - if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true') { + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { $DevSecretsTable = Get-CIPPTable -tablename 'DevSecrets' $APIKey = (Get-CIPPAzDataTableEntity @DevSecretsTable -Filter "PartitionKey eq '$Extension' and RowKey eq '$Extension'").APIKey } else { $keyvaultname = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] - $null = Connect-AzAccount -Identity - $SubscriptionId = $env:WEBSITE_OWNER_NAME -split '\+' | Select-Object -First 1 - $Context = Get-AzContext - if ($Context.Subscription) { - if ($Context.Subscription.Id -ne $SubscriptionId) { - Write-Information "Setting context to subscription $SubscriptionId" - $null = Set-AzContext -SubscriptionId $SubscriptionId - } - } - $APIKey = (Get-AzKeyVaultSecret -VaultName $keyvaultname -Name $Extension -AsPlainText) + $APIKey = (Get-CippKeyVaultSecret -VaultName $keyvaultname -Name $Extension -AsPlainText) } Set-Item -Path "env:$Var" -Value $APIKey -Force -ErrorAction SilentlyContinue } diff --git a/Modules/CippExtensions/Public/Extension Functions/Register-CippExtensionScheduledTasks.ps1 b/Modules/CippExtensions/Public/Extension Functions/Register-CippExtensionScheduledTasks.ps1 index 2ddacf8392f4..1cef75d498fe 100644 --- a/Modules/CippExtensions/Public/Extension Functions/Register-CippExtensionScheduledTasks.ps1 +++ b/Modules/CippExtensions/Public/Extension Functions/Register-CippExtensionScheduledTasks.ps1 @@ -1,6 +1,8 @@ function Register-CIPPExtensionScheduledTasks { param( - [switch]$Reschedule + [switch]$Reschedule, + [int64]$NextSync = (([datetime]::UtcNow.AddMinutes(30)) - (Get-Date '1/1/1970')).TotalSeconds, + [string[]]$Extensions = @('Hudu', 'NinjaOne', 'CustomData') ) # get extension configuration and mappings table @@ -14,7 +16,15 @@ function Register-CIPPExtensionScheduledTasks { $PushTasks = Get-CIPPAzDataTableEntity @ScheduledTasksTable -Filter 'Hidden eq true' | Where-Object { $_.Command -match 'Push-CippExtensionData' } $Tenants = Get-Tenants -IncludeErrors - $Extensions = @('Hudu', 'NinjaOne', 'CustomData') + # Remove all legacy Sync-CippExtensionData tasks (now deprecated - extensions use CippReportingDB) + Write-Information "Removing $($ScheduledTasks.Count) legacy Sync-CippExtensionData scheduled tasks" + foreach ($Task in $ScheduledTasks) { + Write-Information "Removing legacy task: $($Task.Name) for tenant $($Task.Tenant)" + $Entity = $Task | Select-Object -Property PartitionKey, RowKey + Remove-AzDataTableEntity -Force @ScheduledTasksTable -Entity $Entity + } + $ScheduledTasks = @() # Clear the list since we removed them all + $MappedTenants = [System.Collections.Generic.List[string]]::new() foreach ($Extension in $Extensions) { $ExtensionConfig = $Config.$Extension @@ -23,7 +33,7 @@ function Register-CIPPExtensionScheduledTasks { $CustomDataMappingTable = Get-CIPPTable -TableName CustomDataMappings $Mappings = Get-CIPPAzDataTableEntity @CustomDataMappingTable | ForEach-Object { $Mapping = $_.JSON | ConvertFrom-Json - if ($Mapping.sourceType.value -eq 'extensionSync') { + if ($Mapping.sourceType.value -eq 'reportingDb' -or $Mapping.sourceType.value -eq 'extensionSync') { $TenantMappings = if ($Mapping.tenantFilter.value -contains 'AllTenants') { $Tenants } else { @@ -67,36 +77,14 @@ function Register-CIPPExtensionScheduledTasks { continue } $MappedTenants.Add($Tenant.defaultDomainName) - foreach ($SyncType in $SyncTypes) { - $ExistingTask = $ScheduledTasks | Where-Object { $_.Tenant -eq $Tenant.defaultDomainName -and $_.SyncType -eq $SyncType } - if (!$ExistingTask -or $Reschedule.IsPresent) { - $unixtime = [int64](([datetime]::UtcNow) - (Get-Date '1/1/1970')).TotalSeconds - $Task = [pscustomobject]@{ - Name = "Extension Sync - $SyncType" - Command = @{ - value = 'Sync-CippExtensionData' - label = 'Sync-CippExtensionData' - } - Parameters = [pscustomobject]@{ - TenantFilter = $Tenant.defaultDomainName - SyncType = $SyncType - } - Recurrence = '1d' - ScheduledTime = $unixtime - TenantFilter = $Tenant.defaultDomainName - } - if ($ExistingTask) { - $Task | Add-Member -NotePropertyName 'RowKey' -NotePropertyValue $ExistingTask.RowKey -Force - } - $null = Add-CIPPScheduledTask -Task $Task -hidden $true -SyncType $SyncType - Write-Information "Creating $SyncType task for tenant $($Tenant.defaultDomainName)" - } - } + + # Legacy Sync-CippExtensionData tasks are no longer needed - extensions now use CippReportingDB + # All cache data is now collected by Push-CIPPDBCacheData scheduled tasks $ExistingPushTask = $PushTasks | Where-Object { $_.Tenant -eq $Tenant.defaultDomainName -and $_.SyncType -eq $Extension } if ((!$ExistingPushTask -or $Reschedule.IsPresent) -and $Extension -ne 'NinjaOne') { # push cached data to extension - $in30mins = [int64](([datetime]::UtcNow.AddMinutes(30)) - (Get-Date '1/1/1970')).TotalSeconds + $Task = [pscustomobject]@{ Name = "$Extension Extension Sync" Command = @{ @@ -108,7 +96,7 @@ function Register-CIPPExtensionScheduledTasks { Extension = $Extension } Recurrence = '1d' - ScheduledTime = $in30mins + ScheduledTime = $NextSync TenantFilter = $Tenant.defaultDomainName } if ($ExistingPushTask) { diff --git a/Modules/CippExtensions/Public/Extension Functions/Set-ExtensionAPIKey.ps1 b/Modules/CippExtensions/Public/Extension Functions/Set-ExtensionAPIKey.ps1 index 6e6dc0ed6344..f8b0975bc963 100644 --- a/Modules/CippExtensions/Public/Extension Functions/Set-ExtensionAPIKey.ps1 +++ b/Modules/CippExtensions/Public/Extension Functions/Set-ExtensionAPIKey.ps1 @@ -14,7 +14,7 @@ function Set-ExtensionAPIKey { if ($PSCmdlet.ShouldProcess('API Key', "Set API Key for $Extension")) { $Var = "Ext_$Extension" - if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true') { + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { $DevSecretsTable = Get-CIPPTable -tablename 'DevSecrets' $Secret = [PSCustomObject]@{ 'PartitionKey' = $Extension @@ -24,16 +24,7 @@ function Set-ExtensionAPIKey { Add-CIPPAzDataTableEntity @DevSecretsTable -Entity $Secret -Force } else { $keyvaultname = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] - $null = Connect-AzAccount -Identity - $SubscriptionId = $env:WEBSITE_OWNER_NAME -split '\+' | Select-Object -First 1 - $Context = Get-AzContext - if ($Context.Subscription) { - if ($Context.Subscription.Id -ne $SubscriptionId) { - Write-Information "Setting context to subscription $SubscriptionId" - $null = Set-AzContext -SubscriptionId $SubscriptionId - } - } - $null = Set-AzKeyVaultSecret -VaultName $keyvaultname -Name $Extension -SecretValue (ConvertTo-SecureString -AsPlainText -Force -String $APIKey) + $null = Set-CippKeyVaultSecret -VaultName $keyvaultname -Name $Extension -SecretValue (ConvertTo-SecureString -AsPlainText -Force -String $APIKey) } Set-Item -Path "env:$Var" -Value $APIKey -Force -ErrorAction SilentlyContinue } diff --git a/Modules/CippExtensions/Public/Extension Functions/Sync-CippExtensionData.ps1 b/Modules/CippExtensions/Public/Extension Functions/Sync-CippExtensionData.ps1 index c5c5f4fa6f71..5de6978331df 100644 --- a/Modules/CippExtensions/Public/Extension Functions/Sync-CippExtensionData.ps1 +++ b/Modules/CippExtensions/Public/Extension Functions/Sync-CippExtensionData.ps1 @@ -9,6 +9,9 @@ function Sync-CippExtensionData { $SyncType ) + # Legacy cache system is deprecated - all extensions now use CippReportingDB + throw 'Sync-CippExtensionData is deprecated. This scheduled task should be removed. Extensions now use Push-CIPPDBCacheData and Get-CippExtensionReportingData.' + $Table = Get-CIPPTable -TableName ExtensionSync $Extensions = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$($SyncType)'" $LastSync = $Extensions | Where-Object { $_.RowKey -eq $TenantFilter } @@ -217,7 +220,7 @@ function Sync-CippExtensionData { try { $TenantResults = New-GraphBulkRequest -Requests @($TenantRequests) -tenantid $TenantFilter } catch { - Throw "Failed to fetch bulk company data: $_" + throw "Failed to fetch bulk company data: $_" } $TenantResults | Select-Object id, body | ForEach-Object { @@ -228,6 +231,15 @@ function Sync-CippExtensionData { $Data = $Data.Value } + # Filter out excluded licenses to respect the ExcludedLicenses table + if ($_.id -eq 'Licenses') { + $LicenseTable = Get-CIPPTable -TableName ExcludedLicenses + $ExcludedSkuList = Get-CIPPAzDataTableEntity @LicenseTable + if ($ExcludedSkuList) { + $Data = $Data | Where-Object { $_.skuId -notin $ExcludedSkuList.GUID } + } + } + $Entity = @{ PartitionKey = $TenantFilter RowKey = $_.id @@ -302,7 +314,6 @@ function Sync-CippExtensionData { } } - $LastSync.LastSync = [datetime]::UtcNow.ToString('yyyy-MM-ddTHH:mm:ssZ') $LastSync.Status = 'Completed' $LastSync.Error = '' @@ -313,4 +324,5 @@ function Sync-CippExtensionData { } finally { Add-CIPPAzDataTableEntity @Table -Entity $LastSync -Force } + return $LastSync } diff --git a/Modules/CippExtensions/Public/GitHub/Invoke-GitHubApiRequest.ps1 b/Modules/CippExtensions/Public/GitHub/Invoke-GitHubApiRequest.ps1 index 28c114d3d968..df7b1dec76a4 100644 --- a/Modules/CippExtensions/Public/GitHub/Invoke-GitHubApiRequest.ps1 +++ b/Modules/CippExtensions/Public/GitHub/Invoke-GitHubApiRequest.ps1 @@ -12,7 +12,12 @@ function Invoke-GitHubApiRequest { ) $Table = Get-CIPPTable -TableName Extensionsconfig - $Configuration = ((Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json).GitHub + $ExtensionConfig = (Get-CIPPAzDataTableEntity @Table).config + if ($ExtensionConfig -and (Test-Json -Json $ExtensionConfig)) { + $Configuration = ($ExtensionConfig | ConvertFrom-Json).GitHub + } else { + $Configuration = @{ Enabled = $false } + } if ($Configuration.Enabled) { $APIKey = Get-ExtensionAPIKey -Extension 'GitHub' @@ -59,6 +64,8 @@ function Invoke-GitHubApiRequest { Body = $Body Accept = $Accept } - (Invoke-RestMethod -Uri 'https://cippy.azurewebsites.net/api/ExecGitHubAction' -Method POST -Body ($Action | ConvertTo-Json -Depth 10) -ContentType 'application/json').Results + $Body = $Action | ConvertTo-Json -Depth 10 + + (Invoke-RestMethod -Uri 'https://cippy.azurewebsites.net/api/ExecGitHubAction' -Method POST -Body $Body -ContentType 'application/json').Results } } diff --git a/Modules/CippExtensions/Public/Gradient/Get-GradientToken.ps1 b/Modules/CippExtensions/Public/Gradient/Get-GradientToken.ps1 index 5965ec745c10..fc9968070e66 100644 --- a/Modules/CippExtensions/Public/Gradient/Get-GradientToken.ps1 +++ b/Modules/CippExtensions/Public/Gradient/Get-GradientToken.ps1 @@ -3,11 +3,8 @@ function Get-GradientToken { $Configuration ) if ($Configuration.vendorKey) { - $null = Connect-AzAccount -Identity - $SubscriptionId = $env:WEBSITE_OWNER_NAME -split '\+' | Select-Object -First 1 - $null = Set-AzContext -SubscriptionId $SubscriptionId $keyvaultname = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] - $partnerApiKey = (Get-AzKeyVaultSecret -VaultName $keyvaultname -Name 'Gradient' -AsPlainText) + $partnerApiKey = (Get-CippKeyVaultSecret -VaultName $keyvaultname -Name 'Gradient' -AsPlainText) $authorizationToken = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("$($configuration.vendorKey):$($partnerApiKey)")) $headers = [hashtable]@{ diff --git a/Modules/CippExtensions/Public/Gradient/New-GradientServiceSyncRun.ps1 b/Modules/CippExtensions/Public/Gradient/New-GradientServiceSyncRun.ps1 index cb85b1b60c74..b3e32933987b 100644 --- a/Modules/CippExtensions/Public/Gradient/New-GradientServiceSyncRun.ps1 +++ b/Modules/CippExtensions/Public/Gradient/New-GradientServiceSyncRun.ps1 @@ -27,8 +27,8 @@ function New-GradientServiceSyncRun { } - Set-Location (Get-Item $PSScriptRoot).Parent.FullName - $ConvertTable = Import-Csv ConversionTable.csv + Set-Location (Get-Item $PSScriptRoot).Parent.Parent.Parent.Parent.FullName + $ConvertTable = Import-Csv Resources\ConversionTable.csv $Table = Get-CIPPTable -TableName cachelicenses $LicenseTable = Get-CIPPTable -TableName ExcludedLicenses $ExcludedSkuList = Get-CIPPAzDataTableEntity @LicenseTable diff --git a/Modules/CippExtensions/Public/HIBP/Get-HIBPAuth.ps1 b/Modules/CippExtensions/Public/HIBP/Get-HIBPAuth.ps1 index c759e08ded55..365b387e09fc 100644 --- a/Modules/CippExtensions/Public/HIBP/Get-HIBPAuth.ps1 +++ b/Modules/CippExtensions/Public/HIBP/Get-HIBPAuth.ps1 @@ -5,27 +5,20 @@ function Get-HIBPAuth { Write-Information 'Using cached API Key for HIBP' $Secret = $APIKey } else { - if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true') { + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { $DevSecretsTable = Get-CIPPTable -tablename 'DevSecrets' $Secret = (Get-CIPPAzDataTableEntity @DevSecretsTable -Filter "PartitionKey eq 'HIBP' and RowKey eq 'HIBP'").APIKey } else { - $null = Connect-AzAccount -Identity - $SubscriptionId = $env:WEBSITE_OWNER_NAME -split '\+' | Select-Object -First 1 - $null = Set-AzContext -SubscriptionId $SubscriptionId - $VaultName = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] try { - $Secret = Get-AzKeyVaultSecret -VaultName $VaultName -Name 'HIBP' -AsPlainText -ErrorAction Stop + $Secret = Get-CippKeyVaultSecret -VaultName $VaultName -Name 'HIBP' -AsPlainText -ErrorAction Stop } catch { $Secret = $null } if ([string]::IsNullOrEmpty($Secret) -and $env:CIPP_HOSTED -eq 'true') { $VaultName = 'hibp-kv' - if ($SubscriptionId -ne $env:CIPP_HOSTED_KV_SUB -and $env:CIPP_HOSTED_KV_SUB -match '^[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}$') { - $null = Set-AzContext -SubscriptionId $env:CIPP_HOSTED_KV_SUB - } - $Secret = Get-AzKeyVaultSecret -VaultName $VaultName -Name 'HIBP' -AsPlainText + $Secret = Get-CippKeyVaultSecret -VaultName $VaultName -Name 'HIBP' -AsPlainText } } Set-Item -Path "env:$Var" -Value $APIKey -Force -ErrorAction SilentlyContinue diff --git a/Modules/CippExtensions/Public/HIBP/New-BreachTenantSearch.ps1 b/Modules/CippExtensions/Public/HIBP/New-BreachTenantSearch.ps1 index 96ce636256d0..661e4bddb48c 100644 --- a/Modules/CippExtensions/Public/HIBP/New-BreachTenantSearch.ps1 +++ b/Modules/CippExtensions/Public/HIBP/New-BreachTenantSearch.ps1 @@ -6,31 +6,42 @@ function New-BreachTenantSearch { ) $Table = Get-CIPPTable -TableName UserBreaches - $LatestBreach = Get-BreachInfo -TenantFilter $TenantFilter + $LatestBreach = Get-BreachInfo -TenantFilter $TenantFilter | ForEach-Object { + $_ | Where-Object { $_ -and $_.email } + } | Group-Object -Property clientDomain $usersResults = foreach ($domain in $LatestBreach) { - $ExistingBreaches = Get-CIPPAzDataTableEntity @Table -Filter "RowKey eq '$TenantFilter'" - if ($null -eq $domain.result) { - Write-Host "No breaches found for domain $($domain.domain)" + $ExistingBreaches = Get-CIPPAzDataTableEntity @Table -Filter "RowKey eq '$($domain.name)'" + if ($null -eq $domain.Group) { + Write-Host "No breaches found for domain $($domain.name)" continue } - $SumOfBreaches = ($LatestBreach | Measure-Object -Sum -Property found).sum - if ($ExistingBreaches.sum -eq $SumOfBreaches -and $Force.IsPresent -eq $false) { - Write-Host "No new breaches found for tenant $TenantFilter" - continue + $SumOfBreaches = $domain.Count + if ($ExistingBreaches.sum -eq $SumOfBreaches) { + if ($Force.IsPresent -eq $true) { + Write-Host "Forcing update for tenant $TenantFilter" + } else { + Write-Host "No new breaches found for tenant $TenantFilter" + continue + } } @{ - RowKey = $domain.domain + RowKey = $domain.name PartitionKey = $TenantFilter - breaches = "$($LatestBreach.Result | ConvertTo-Json -Depth 10 -Compress)" + breaches = "$($domain.Group | ConvertTo-Json -Depth 10 -Compress)" sum = $SumOfBreaches } } #Add user breaches to table if ($usersResults) { - $entity = Add-CIPPAzDataTableEntity @Table -Entity $usersResults -Force - return $LatestBreach.Result + try { + $null = Add-CIPPAzDataTableEntity @Table -Entity $usersResults -Force + return $LatestBreach.Group + } catch { + Write-Error "Failed to add breaches to table: $($_.Exception.Message)" + return $null + } } } diff --git a/Modules/CippExtensions/Public/Halo/Get-HaloTicketOutcome.ps1 b/Modules/CippExtensions/Public/Halo/Get-HaloTicketOutcome.ps1 new file mode 100644 index 000000000000..1ae15d4e4e5b --- /dev/null +++ b/Modules/CippExtensions/Public/Halo/Get-HaloTicketOutcome.ps1 @@ -0,0 +1,44 @@ +function Get-HaloTicketOutcome { + <# + .SYNOPSIS + Get Halo Ticket Outcome + .DESCRIPTION + Get Halo Ticket Outcome + .EXAMPLE + Get-HaloTicketOutcome + + #> + [CmdletBinding()] + param () + $Table = Get-CIPPTable -TableName Extensionsconfig + try { + $Configuration = ((Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json -ea stop).HaloPSA + $Token = Get-HaloToken -configuration $Configuration + $TicketType = $Configuration.TicketType.value ?? $Configuration.TicketType + if ($TicketType) { + $WorkflowId = (Invoke-RestMethod -Uri "$($Configuration.ResourceURL)/tickettype/$TicketType" -ContentType 'application/json' -Method GET -Headers @{Authorization = "Bearer $($Token.access_token)" }).workflow_id + $Workflow = Invoke-RestMethod -Uri "$($Configuration.ResourceURL)/workflow/$WorkflowId" -ContentType 'application/json' -Method GET -Headers @{Authorization = "Bearer $($Token.access_token)" } + $Outcomes = Invoke-RestMethod -Uri "$($Configuration.ResourceURL)/outcome" -ContentType 'application/json' -Method GET -Headers @{Authorization = "Bearer $($Token.access_token)" } + $Outcomes | Where-Object { $_.id -in $Workflow.steps.actions.action_id } | Sort-Object -Property buttonname + } + else { + # Invoke-RestMethod -Uri "$($Configuration.ResourceURL)/outcome" -ContentType 'application/json' -Method GET -Headers @{Authorization = "Bearer $($Token.access_token)" } + @( + @{ + buttonname = 'Select and save a Ticket Type first to see available outcomes' + value = -1 + } + ) + } + } + catch { + $Message = if ($_.ErrorDetails.Message) { + Get-NormalizedError -Message $_.ErrorDetails.Message + } + else { + $_.Exception.message + } + @(@{name = "Could not get HaloPSA Outcomes, error: $Message"; id = '' }) + } +} + diff --git a/Modules/CippExtensions/Public/Halo/New-HaloPSATicket.ps1 b/Modules/CippExtensions/Public/Halo/New-HaloPSATicket.ps1 index 537b6a72f438..0249248c88ec 100644 --- a/Modules/CippExtensions/Public/Halo/New-HaloPSATicket.ps1 +++ b/Modules/CippExtensions/Public/Halo/New-HaloPSATicket.ps1 @@ -1,110 +1,124 @@ function New-HaloPSATicket { - [CmdletBinding(SupportsShouldProcess)] - param ( - $title, - $description, - $client - ) - #Get HaloPSA Token based on the config we have. - $Table = Get-CIPPTable -TableName Extensionsconfig - $Configuration = ((Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json).HaloPSA - $TicketTable = Get-CIPPTable -TableName 'PSATickets' - $token = Get-HaloToken -configuration $Configuration - # sha hash title - $TitleHash = Get-StringHash -String $title + [CmdletBinding(SupportsShouldProcess)] + param ( + $title, + $description, + $client + ) + #Get HaloPSA Token based on the config we have. + $Table = Get-CIPPTable -TableName Extensionsconfig + $Configuration = ((Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json).HaloPSA + $TicketTable = Get-CIPPTable -TableName 'PSATickets' + $token = Get-HaloToken -configuration $Configuration + # sha hash title + $TitleHash = Get-StringHash -String $title - if ($Configuration.ConsolidateTickets) { - $ExistingTicket = Get-CIPPAzDataTableEntity @TicketTable -Filter "PartitionKey eq 'HaloPSA' and RowKey eq '$($client)-$($TitleHash)'" - if ($ExistingTicket) { - Write-Information "Ticket already exists in HaloPSA: $($ExistingTicket.TicketID)" + if ($Configuration.ConsolidateTickets) { + $ExistingTicket = Get-CIPPAzDataTableEntity @TicketTable -Filter "PartitionKey eq 'HaloPSA' and RowKey eq '$($client)-$($TitleHash)'" + if ($ExistingTicket) { + Write-Information "Ticket already exists in HaloPSA: $($ExistingTicket.TicketID)" - $Ticket = Invoke-RestMethod -Uri "$($Configuration.ResourceURL)/Tickets/$($ExistingTicket.TicketID)?includedetails=true&includelastaction=false&nocache=undefined&includeusersassets=false&isdetailscreen=true" -ContentType 'application/json; charset=utf-8' -Method Get -Headers @{Authorization = "Bearer $($token.access_token)" } - if (!$Ticket.hasbeenclosed) { - Write-Information 'Ticket is still open, adding new note' - $Object = [PSCustomObject]@{ - ticket_id = $ExistingTicket.TicketID - outcome = 'Private Note' - outcome_id = 7 - hiddenfromuser = $true - note_html = $description - } - $body = ConvertTo-Json -Compress -Depth 10 -InputObject @($Object) - try { - if ($PSCmdlet.ShouldProcess('Add note to HaloPSA ticket', 'Add note')) { - $Action = Invoke-RestMethod -Uri "$($Configuration.ResourceURL)/actions" -ContentType 'application/json; charset=utf-8' -Method Post -Body $body -Headers @{Authorization = "Bearer $($token.access_token)" } - Write-Information "Note added to ticket in HaloPSA: $($ExistingTicket.TicketID)" - } - return "Note added to ticket in HaloPSA: $($ExistingTicket.TicketID)" - } catch { - $Message = if ($_.ErrorDetails.Message) { - Get-NormalizedError -Message $_.ErrorDetails.Message - } else { - $_.Exception.message - } - Write-LogMessage -message "Failed to add note to HaloPSA ticket: $Message" -API 'HaloPSATicket' -sev Error -LogData (Get-CippException -Exception $_) - Write-Information "Failed to add note to HaloPSA ticket: $Message" - Write-Information "Body we tried to ship: $body" - return "Failed to add note to HaloPSA ticket: $Message" - } + $Ticket = Invoke-RestMethod -Uri "$($Configuration.ResourceURL)/Tickets/$($ExistingTicket.TicketID)?includedetails=true&includelastaction=false&nocache=undefined&includeusersassets=false&isdetailscreen=true" -ContentType 'application/json; charset=utf-8' -Method Get -Headers @{Authorization = "Bearer $($token.access_token)" } -SkipHttpErrorCheck + if ($Ticket.id) { + if (!$Ticket.hasbeenclosed) { + Write-Information 'Ticket is still open, adding new note' + $Object = [PSCustomObject]@{ + ticket_id = $ExistingTicket.TicketID + outcome_id = 7 + hiddenfromuser = $true + note_html = $description + } + + if ($Configuration.Outcome) { + $Outcome = $Configuration.Outcome.value ?? $Configuration.Outcome + $Object.outcome_id = $Outcome + } + + $body = ConvertTo-Json -Compress -Depth 10 -InputObject @($Object) + try { + if ($PSCmdlet.ShouldProcess('Add note to HaloPSA ticket', 'Add note')) { + $Action = Invoke-RestMethod -Uri "$($Configuration.ResourceURL)/actions" -ContentType 'application/json; charset=utf-8' -Method Post -Body $body -Headers @{Authorization = "Bearer $($token.access_token)" } + Write-Information "Note added to ticket in HaloPSA: $($ExistingTicket.TicketID)" } + return "Note added to ticket in HaloPSA: $($ExistingTicket.TicketID)" + } + catch { + $Message = if ($_.ErrorDetails.Message) { + Get-NormalizedError -Message $_.ErrorDetails.Message + } + else { + $_.Exception.message + } + Write-LogMessage -message "Failed to add note to HaloPSA ticket: $Message" -API 'HaloPSATicket' -sev Error -LogData (Get-CippException -Exception $_) + Write-Information "Failed to add note to HaloPSA ticket: $Message" + Write-Information "Body we tried to ship: $body" + return "Failed to add note to HaloPSA ticket: $Message" + } } + } + else { + Write-Information 'Existing ticket could not be found. Creating a new ticket instead.' + } } + } - $Object = [PSCustomObject]@{ - files = $null - usertype = 1 - userlookup = @{ - id = -1 - lookupdisplay = 'Enter Details Manually' - } - client_id = ($client | Select-Object -Last 1) - _forcereassign = $true - site_id = $null - user_name = $null - reportedby = $null - summary = $title - details_html = $description - donotapplytemplateintheapi = $true - attachments = @() - _novalidate = $true + $Object = [PSCustomObject]@{ + files = $null + usertype = 1 + userlookup = @{ + id = -1 + lookupdisplay = 'Enter Details Manually' } + client_id = ($client | Select-Object -Last 1) + _forcereassign = $true + site_id = $null + user_name = $null + reportedby = $null + summary = $title + details_html = $description + donotapplytemplateintheapi = $true + attachments = @() + _novalidate = $true + } - if ($Configuration.TicketType) { - $TicketType = $Configuration.TicketType.value ?? $Configuration.TicketType - $object | Add-Member -MemberType NoteProperty -Name 'tickettype_id' -Value $TicketType -Force - } - #use the token to create a new ticket in HaloPSA - $body = ConvertTo-Json -Compress -Depth 10 -InputObject @($Object) + if ($Configuration.TicketType) { + $TicketType = $Configuration.TicketType.value ?? $Configuration.TicketType + $object | Add-Member -MemberType NoteProperty -Name 'tickettype_id' -Value $TicketType -Force + } + #use the token to create a new ticket in HaloPSA + $body = ConvertTo-Json -Compress -Depth 10 -InputObject @($Object) - Write-Information 'Sending ticket to HaloPSA' - Write-Information $body - try { - if ($PSCmdlet.ShouldProcess('Send ticket to HaloPSA', 'Create ticket')) { - $Ticket = Invoke-RestMethod -Uri "$($Configuration.ResourceURL)/Tickets" -ContentType 'application/json; charset=utf-8' -Method Post -Body $body -Headers @{Authorization = "Bearer $($token.access_token)" } - Write-Information "Ticket created in HaloPSA: $($Ticket.id)" + Write-Information 'Sending ticket to HaloPSA' + Write-Information $body + try { + if ($PSCmdlet.ShouldProcess('Send ticket to HaloPSA', 'Create ticket')) { + $Ticket = Invoke-RestMethod -Uri "$($Configuration.ResourceURL)/Tickets" -ContentType 'application/json; charset=utf-8' -Method Post -Body $body -Headers @{Authorization = "Bearer $($token.access_token)" } + Write-Information "Ticket created in HaloPSA: $($Ticket.id)" - if ($Configuration.ConsolidateTickets) { - $TicketObject = [PSCustomObject]@{ - PartitionKey = 'HaloPSA' - RowKey = "$($client)-$($TitleHash)" - Title = $title - ClientId = $client - TicketID = $Ticket.id - } - Add-CIPPAzDataTableEntity @TicketTable -Entity $TicketObject -Force - Write-Information 'Ticket added to consolidation table' - } - return "Ticket created in HaloPSA: $($Ticket.id)" - } - } catch { - $Message = if ($_.ErrorDetails.Message) { - Get-NormalizedError -Message $_.ErrorDetails.Message - } else { - $_.Exception.message + if ($Configuration.ConsolidateTickets) { + $TicketObject = [PSCustomObject]@{ + PartitionKey = 'HaloPSA' + RowKey = "$($client)-$($TitleHash)" + Title = $title + ClientId = $client + TicketID = $Ticket.id } - Write-LogMessage -message "Failed to send ticket to HaloPSA: $Message" -API 'HaloPSATicket' -sev Error -LogData (Get-CippException -Exception $_) - Write-Information "Failed to send ticket to HaloPSA: $Message" - Write-Information "Body we tried to ship: $body" - return "Failed to send ticket to HaloPSA: $Message" + Add-CIPPAzDataTableEntity @TicketTable -Entity $TicketObject -Force + Write-Information 'Ticket added to consolidation table' + } + return "Ticket created in HaloPSA: $($Ticket.id)" + } + } + catch { + $Message = if ($_.ErrorDetails.Message) { + Get-NormalizedError -Message $_.ErrorDetails.Message + } + else { + $_.Exception.message } + Write-LogMessage -message "Failed to send ticket to HaloPSA: $Message" -API 'HaloPSATicket' -sev Error -LogData (Get-CippException -Exception $_) + Write-Information "Failed to send ticket to HaloPSA: $Message" + Write-Information "Body we tried to ship: $body" + return "Failed to send ticket to HaloPSA: $Message" + } } diff --git a/Modules/CippExtensions/Public/Hudu/Invoke-HuduExtensionSync.ps1 b/Modules/CippExtensions/Public/Hudu/Invoke-HuduExtensionSync.ps1 index 9e0b5cda5eb6..61b68e9e3b02 100644 --- a/Modules/CippExtensions/Public/Hudu/Invoke-HuduExtensionSync.ps1 +++ b/Modules/CippExtensions/Public/Hudu/Invoke-HuduExtensionSync.ps1 @@ -3,14 +3,14 @@ function Invoke-HuduExtensionSync { .FUNCTIONALITY Internal #> - Param( + param( $Configuration, $TenantFilter ) try { Connect-HuduAPI -configuration $Configuration $Configuration = $Configuration.Hudu - + $Tenant = Get-Tenants -TenantFilter $TenantFilter -IncludeErrors $CompanyResult = [PSCustomObject]@{ Name = $Tenant.displayName Users = 0 @@ -19,12 +19,14 @@ function Invoke-HuduExtensionSync { Logs = [System.Collections.Generic.List[string]]@() } + $AssignedNameMap = Get-AssignedNameMap + $AssignedMap = Get-AssignedMap + # Get mapping configuration $MappingTable = Get-CIPPTable -TableName 'CippMapping' $Mappings = Get-CIPPAzDataTableEntity @MappingTable -Filter "PartitionKey eq 'HuduMapping' or PartitionKey eq 'HuduFieldMapping'" $defaultdomain = $TenantFilter - $Tenant = Get-Tenants -IncludeErrors | Where-Object { $_.defaultDomainName -eq $TenantFilter } $TenantMap = $Mappings | Where-Object { $_.RowKey -eq $Tenant.customerId } # Get Asset cache @@ -32,7 +34,7 @@ function Invoke-HuduExtensionSync { # Import license mapping Set-Location (Get-Item $PSScriptRoot).Parent.Parent.Parent.Parent.FullName - $LicTable = Import-Csv ConversionTable.csv + $LicTable = Import-Csv Resources\ConversionTable.csv $CompanyResult.Logs.Add('Starting Hudu Extension Sync') @@ -42,8 +44,9 @@ function Invoke-HuduExtensionSync { $CIPPURL = 'https://{0}' -f $Config.Value $EnableCIPP = $true - # Get Hudu Extension Cache - $ExtensionCache = Get-ExtensionCacheData -TenantFilter $Tenant.defaultDomainName + # Get CIPP Extension Reporting Data (from new CippReportingDB) + # Include mailboxes if needed for Hudu sync + $ExtensionCache = Get-CippExtensionReportingData -TenantFilter $Tenant.defaultDomainName -IncludeMailboxes $company_id = $TenantMap.IntegrationId # If tenant not found in mapping table, return error @@ -81,7 +84,6 @@ function Invoke-HuduExtensionSync { Write-Host "Configuration: $($Configuration | ConvertTo-Json)" - try { if (![string]::IsNullOrEmpty($DeviceLayoutId)) { $null = Add-HuduAssetLayoutField -AssetLayoutId $DeviceLayoutId @@ -165,10 +167,10 @@ function Invoke-HuduExtensionSync { $Roles = foreach ($Role in $AllRoles) { - # Get members from cache - $Members = ($ExtensionCache."AllRoles_$($Role.id)") + # Members are now inline with each role object + $Members = $Role.members [PSCustomObject]@{ - ID = $Result.id + ID = $Role.id DisplayName = $Role.displayName Description = $Role.description Members = $Members @@ -253,22 +255,25 @@ function Invoke-HuduExtensionSync { $DeviceCompliancePolicies = $ExtensionCache.DeviceCompliancePolicies $DeviceComplianceDetails = foreach ($Policy in $DeviceCompliancePolicies) { - $DeviceStatuses = $ExtensionCache."DeviceCompliancePolicy_$($Policy.id)" + # Device statuses are cached per policy with new naming: IntuneDeviceCompliancePolicies_{policyId} + $DeviceStatusItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type "IntuneDeviceCompliancePolicies_$($Policy.id)" | Where-Object { $_.RowKey -notlike '*-Count' } + $DeviceStatuses = if ($DeviceStatusItems) { $DeviceStatusItems | ForEach-Object { $_.Data | ConvertFrom-Json } } else { @() } [pscustomobject]@{ ID = $Policy.id DisplayName = $Policy.displayName - DeviceStatuses = $DeviceStatuses + DeviceStatuses = @($DeviceStatuses) } } $AllGroups = $ExtensionCache.Groups $Groups = foreach ($Group in $AllGroups) { - $Members = $ExtensionCache."Groups_$($Result.id)" + # Members are now inline with each group object + $Members = $Group.members [pscustomobject]@{ ID = $Group.id DisplayName = $Group.displayName - Members = $Members + Members = @($Members) } } @@ -313,10 +318,66 @@ function Invoke-HuduExtensionSync { } } + # Enhanced policy information extraction based on API structure [pscustomobject]@{ - ID = $CAPolicy.id - DisplayName = $CAPolicy.displayName - Members = $CAMembers + ID = $CAPolicy.id + DisplayName = $CAPolicy.displayName + State = $CAPolicy.state + CreatedDateTime = $CAPolicy.createdDateTime + ModifiedDateTime = $CAPolicy.modifiedDateTime + Members = @($CAMembers) + + # Applications conditions + IncludeApplications = if ($CAPolicy.conditions.applications.includeApplications) { + $CAPolicy.conditions.applications.includeApplications -join ', ' + } else { 'None' } + ExcludeApplications = if ($CAPolicy.conditions.applications.excludeApplications) { + $CAPolicy.conditions.applications.excludeApplications -join ', ' + } else { 'None' } + + # Location conditions + IncludeLocations = if ($CAPolicy.conditions.locations.includeLocations) { + $CAPolicy.conditions.locations.includeLocations -join ', ' + } else { 'None' } + ExcludeLocations = if ($CAPolicy.conditions.locations.excludeLocations) { + $CAPolicy.conditions.locations.excludeLocations -join ', ' + } else { 'None' } + + # Platform conditions + Platforms = if ($CAPolicy.conditions.platforms -and $CAPolicy.conditions.platforms.includePlatforms) { + $CAPolicy.conditions.platforms.includePlatforms -join ', ' + } else { 'All' } + + # Client app types + ClientAppTypes = if ($CAPolicy.conditions.clientAppTypes) { + $CAPolicy.conditions.clientAppTypes -join ', ' + } else { 'All' } + + # Grant controls + GrantOperator = $CAPolicy.grantControls.operator + BuiltInControls = if ($CAPolicy.grantControls.builtInControls) { + $CAPolicy.grantControls.builtInControls -join ', ' + } else { 'None' } + AuthenticationStrength = if ($CAPolicy.grantControls.authenticationStrength) { + $CAPolicy.grantControls.authenticationStrength.displayName + } else { 'None' } + + # Session controls + SignInFrequency = if ($CAPolicy.sessionControls -and $CAPolicy.sessionControls.signInFrequency -and $CAPolicy.sessionControls.signInFrequency.isEnabled) { + "$($CAPolicy.sessionControls.signInFrequency.value) $($CAPolicy.sessionControls.signInFrequency.type)" + } else { 'Not configured' } + + PersistentBrowser = if ($CAPolicy.sessionControls -and $CAPolicy.sessionControls.persistentBrowser) { + $CAPolicy.sessionControls.persistentBrowser.mode + } else { 'Not configured' } + + # Risk levels + UserRiskLevels = if ($CAPolicy.conditions.userRiskLevels) { + $CAPolicy.conditions.userRiskLevels -join ', ' + } else { 'None' } + SignInRiskLevels = if ($CAPolicy.conditions.signInRiskLevels) { + $CAPolicy.conditions.signInRiskLevels -join ', ' + } else { 'None' } } } @@ -380,10 +441,17 @@ function Invoke-HuduExtensionSync { $UserPolicies = foreach ($cap in $ConditionalAccessMembers) { if ($User.id -in $Cap.Members) { - $temp = [PSCustomObject]@{ - displayName = $cap.displayName + [PSCustomObject]@{ + displayName = $cap.displayName + state = $cap.State + authenticationStrength = $cap.AuthenticationStrength + clientAppTypes = $cap.ClientAppTypes + includeApplications = $cap.IncludeApplications + includeLocations = $cap.IncludeLocations + signInFrequency = $cap.SignInFrequency + userRiskLevels = $cap.UserRiskLevels + signInRiskLevels = $cap.SignInRiskLevels } - $temp } } @@ -396,7 +464,6 @@ function Invoke-HuduExtensionSync { $MailboxDetailedRequest = $MailboxDetailedFull | Where-Object { $_.Id -eq $User.id } $StatsRequest = $MailboxStatsFull | Where-Object { $_.'userPrincipalName' -eq $User.userPrincipalName } - $PermsRequest = $Permissions | Where-Object { $_.Identity -eq $User.id } $ParsedPerms = foreach ($Perm in $PermsRequest) { @@ -426,10 +493,11 @@ function Invoke-HuduExtensionSync { MailboxPopEnabled = $CASRequest.PopEnabled MailboxActiveSyncEnabled = $CASRequest.ActiveSyncEnabled Permissions = $ParsedPerms - ProhibitSendQuota = [math]::Round([float]($MailboxDetailedRequest.ProhibitSendQuota -split ' GB')[0], 2) - ProhibitSendReceiveQuota = [math]::Round([float]($MailboxDetailedRequest.ProhibitSendReceiveQuota -split ' GB')[0], 2) + ProhibitSendQuota = $StatsRequest.prohibitSendQuotaInBytes + ProhibitSendReceiveQuota = $StatsRequest.prohibitSendReceiveQuotaInBytes ItemCount = [math]::Round($StatsRequest.'itemCount', 2) - TotalItemSize = $TotalItemSize + TotalItemSize = $StatsRequest.totalItemSize + StorageUsedInBytes = $StatsRequest.storageUsedInBytes } $userDevices = ($devices | Where-Object { $_.userPrincipalName -eq $user.userPrincipalName } | Select-Object @{N = 'Name'; E = { "$($_.deviceName) ($($_.operatingSystem))" } }).name -join '
' @@ -509,32 +577,50 @@ function Invoke-HuduExtensionSync { $UserMailboxDetailsFormatted.add($(Get-HuduFormattedField -Title 'Permissions' -Value "$($UserMailSettings.Permissions | ConvertTo-Html -Fragment | Out-String)")) - $UserMailboxDetailsFormatted.add($(Get-HuduFormattedField -Title 'Prohibit Send Quota' -Value "$($UserMailSettings.ProhibitSendQuota)")) - $UserMailboxDetailsFormatted.add($(Get-HuduFormattedField -Title 'Prohibit Send Receive Quota' -Value "$($UserMailSettings.ProhibitSendReceiveQuota)")) + $UserMailboxDetailsFormatted.add($(Get-HuduFormattedField -Title 'Item Count' -Value "$($UserMailSettings.ItemCount)")) - $UserMailboxDetailsFormatted.add($(Get-HuduFormattedField -Title 'Total Mailbox Size' -Value "$($UserMailSettings.TotalItemSize)")) + try { - $UserMailboxUsePercent = [math]::Round([float](($UserMailSettings.TotalItemSize / $UserMailSettings.ProhibitSendReceiveQuota) * 100), 2) + $UserMailboxUsePercent = [math]::Round([float](($UserMailSettings.StorageUsedInBytes / $UserMailSettings.prohibitSendReceiveQuota) * 100), 2) + $MailboxStorageUsed = [math]::Round($UserMailSettings.StorageUsedInBytes / 1024 / 1024 / 1024, 2) + $MailboxStorageAllocated = [math]::Round($UserMailSettings.prohibitSendReceiveQuota / 1024 / 1024 / 1024, 2) + $MailboxProhibitSendQuota = [math]::Round($UserMailSettings.ProhibitSendQuota / 1024 / 1024 / 1024, 2) } catch { $UserMailboxUsePercent = 100 + $MailboxStorageUsed = 0 + $MailboxStorageAllocated = 0 } + + $UserMailboxDetailsFormatted.add($(Get-HuduFormattedField -Title 'Prohibit Send Quota' -Value "$($MailboxProhibitSendQuota) GB")) + $UserMailboxDetailsFormatted.add($(Get-HuduFormattedField -Title 'Prohibit Send Receive Quota' -Value "$($MailboxStorageAllocated) GB")) + $UserMailboxDetailsFormatted.add($(Get-HuduFormattedField -Title 'Total Mailbox Size' -Value "$($MailboxStorageUsed) GB")) + $UserMailboxUsage = @"
-
$([math]::Round($UserMailSettings.TotalItemSize,2)) GB used, $UserMailboxUsePercent% of $([math]::Round($UserMailSettings.ProhibitSendReceiveQuota, 2)) GB
+
$MailboxStorageUsed GB used, $UserMailboxUsePercent% of $MailboxStorageAllocated GB
"@ $UserMailboxDetailsFormatted.add($(Get-HuduFormattedField -Title 'Mailbox Usage' -Value $UserMailboxUsage)) } - $UserPoliciesFormatted = '
    ' - foreach ($Policy in $UserPolicies) { - $UserPoliciesFormatted = $UserPoliciesFormatted + "
  • $($Policy.displayName)
  • " + # Enhanced Conditional Access Policy formatting + if ($UserPolicies) { + $UserPoliciesFormatted = $UserPolicies | ConvertTo-Html -Fragment -Property @( + @{ Name = 'Policy Name'; Expression = { $_.displayName } }, + @{ Name = 'State'; Expression = { $_.state } }, + @{ Name = 'MFA Requirement'; Expression = { $_.authenticationStrength } }, + @{ Name = 'Client Apps'; Expression = { $_.clientAppTypes } }, + @{ Name = 'Sign-in Frequency'; Expression = { $_.signInFrequency } }, + @{ Name = 'User Risk'; Expression = { $_.userRiskLevels } }, + @{ Name = 'Sign-in Risk'; Expression = { $_.signInRiskLevels } } + ) | Out-String + } else { + $UserPoliciesFormatted = '

    No Conditional Access policies assigned to this user.

    ' } - $UserPoliciesFormatted = $UserPoliciesFormatted + '
' [System.Collections.Generic.List[PSCustomObject]]$UserOverviewFormatted = @() $UserOverviewFormatted.add($(Get-HuduFormattedField -Title 'User Name' -Value "$($User.displayName)")) @@ -685,6 +771,8 @@ function Invoke-HuduExtensionSync { } } catch { $CompanyResult.Errors.add("User $($User.userPrincipalName): A fatal error occured while processing user $_") + Write-Warning "User $($User.userPrincipalName): A fatal error occured while processing user $_" + Write-Information $_.InvocationInfo.PositionMessage } } @@ -692,67 +780,112 @@ function Invoke-HuduExtensionSync { } - $CompanyResult.Logs.Add('Starting Device Processing') - foreach ($Device in $Devices) { - try { - [System.Collections.Generic.List[PSCustomObject]]$DeviceOverviewFormatted = @() - $DeviceOverviewFormatted.add($(Get-HuduFormattedField -Title 'Device Name' -Value "$($Device.deviceName)")) - $DeviceOverviewFormatted.add($(Get-HuduFormattedField -Title 'User' -Value "$($Device.userDisplayName)")) - $DeviceOverviewFormatted.add($(Get-HuduFormattedField -Title 'User Email' -Value "$($Device.userPrincipalName)")) - $DeviceOverviewFormatted.add($(Get-HuduFormattedField -Title 'Owner' -Value "$($Device.ownerType)")) - $DeviceOverviewFormatted.add($(Get-HuduFormattedField -Title 'Enrolled' -Value "$($Device.enrolledDateTime)")) - $DeviceOverviewFormatted.add($(Get-HuduFormattedField -Title 'Last Checkin' -Value "$($Device.lastSyncDateTime)")) - if ($Device.complianceState -eq 'compliant') { - $CompliantSymbol = '   ' - } else { - $CompliantSymbol = '   ' - } - $DeviceOverviewFormatted.add($(Get-HuduFormattedField -Title 'Compliant' -Value "$($CompliantSymbol)$($Device.complianceState)")) - $DeviceOverviewFormatted.add($(Get-HuduFormattedField -Title 'Management Type' -Value "$($Device.managementAgent)")) - - [System.Collections.Generic.List[PSCustomObject]]$DeviceHardwareFormatted = @() - $DeviceHardwareFormatted.add($(Get-HuduFormattedField -Title 'Serial Number' -Value "$($Device.serialNumber)")) - $DeviceHardwareFormatted.add($(Get-HuduFormattedField -Title 'OS' -Value "$($Device.operatingSystem)")) - $DeviceHardwareFormatted.add($(Get-HuduFormattedField -Title 'OS Versions' -Value "$($Device.osVersion)")) - $DeviceHardwareFormatted.add($(Get-HuduFormattedField -Title 'Chassis' -Value "$($Device.chassisType)")) - $DeviceHardwareFormatted.add($(Get-HuduFormattedField -Title 'Model' -Value "$($Device.model)")) - $DeviceHardwareFormatted.add($(Get-HuduFormattedField -Title 'Manufacturer' -Value "$($Device.manufacturer)")) - $DeviceHardwareFormatted.add($(Get-HuduFormattedField -Title 'Total Storage' -Value "$([math]::Round($Device.totalStorageSpaceInBytes /1024 /1024 /1024, 2))")) - $DeviceHardwareFormatted.add($(Get-HuduFormattedField -Title 'Free Storage' -Value "$([math]::Round($Device.freeStorageSpaceInBytes /1024 /1024 /1024, 2))")) - - [System.Collections.Generic.List[PSCustomObject]]$DeviceEnrollmentFormatted = @() - $DeviceEnrollmentFormatted.add($(Get-HuduFormattedField -Title 'Enrollment Type' -Value "$($Device.deviceEnrollmentType)")) - $DeviceEnrollmentFormatted.add($(Get-HuduFormattedField -Title 'Join Type' -Value "$($Device.joinType)")) - $DeviceEnrollmentFormatted.add($(Get-HuduFormattedField -Title 'Registration State' -Value "$($Device.deviceRegistrationState)")) - $DeviceEnrollmentFormatted.add($(Get-HuduFormattedField -Title 'Autopilot Enrolled' -Value "$($Device.autopilotEnrolled)")) - $DeviceEnrollmentFormatted.add($(Get-HuduFormattedField -Title 'Device Guard Requirements' -Value "$($Device.hardwareinformation.deviceGuardVirtualizationBasedSecurityHardwareRequirementState)")) - $DeviceEnrollmentFormatted.add($(Get-HuduFormattedField -Title 'Virtualistation Based Security' -Value "$($Device.hardwareinformation.deviceGuardVirtualizationBasedSecurityState)")) - $DeviceEnrollmentFormatted.add($(Get-HuduFormattedField -Title 'Credential Guard' -Value "$($Device.hardwareinformation.deviceGuardLocalSystemAuthorityCredentialGuardState)")) - - $DevicePoliciesTable = foreach ($Policy in $DeviceComplianceDetails) { - if ($device.deviceName -in $Policy.DeviceStatuses.deviceDisplayName) { - $Status = $Policy.DeviceStatuses | Where-Object { $_.deviceDisplayName -eq $device.deviceName } - if ($Status.status -ne 'unknown') { - [PSCustomObject]@{ - Name = $Policy.displayName - Status = ($Status.status | Select-Object -Unique) -join ', ' - 'Last Report' = "$(Get-Date($Status.lastReportedDateTime[0]) -Format 'yyyy-MM-dd HH:mm:ss')" - 'Grace Expiry' = "$(Get-Date($Status.complianceGracePeriodExpirationDateTime[0]) -Format 'yyyy-MM-dd HH:mm:ss')" + if (![string]::IsNullOrEmpty($DeviceLayoutId)) { + $CompanyResult.Logs.Add('Starting Device Processing') + Write-Information "### Processing Devices for $($Tenant.defaultDomainName)" + foreach ($Device in $Devices) { + try { + [System.Collections.Generic.List[PSCustomObject]]$DeviceOverviewFormatted = @() + $DeviceOverviewFormatted.add($(Get-HuduFormattedField -Title 'Device Name' -Value "$($Device.deviceName)")) + $DeviceOverviewFormatted.add($(Get-HuduFormattedField -Title 'User' -Value "$($Device.userDisplayName)")) + $DeviceOverviewFormatted.add($(Get-HuduFormattedField -Title 'User Email' -Value "$($Device.userPrincipalName)")) + $DeviceOverviewFormatted.add($(Get-HuduFormattedField -Title 'Owner' -Value "$($Device.ownerType)")) + $DeviceOverviewFormatted.add($(Get-HuduFormattedField -Title 'Enrolled' -Value "$($Device.enrolledDateTime)")) + $DeviceOverviewFormatted.add($(Get-HuduFormattedField -Title 'Last Checkin' -Value "$($Device.lastSyncDateTime)")) + if ($Device.complianceState -eq 'compliant') { + $CompliantSymbol = '   ' + } else { + $CompliantSymbol = '   ' + } + $DeviceOverviewFormatted.add($(Get-HuduFormattedField -Title 'Compliant' -Value "$($CompliantSymbol)$($Device.complianceState)")) + $DeviceOverviewFormatted.add($(Get-HuduFormattedField -Title 'Management Type' -Value "$($Device.managementAgent)")) + + [System.Collections.Generic.List[PSCustomObject]]$DeviceHardwareFormatted = @() + $DeviceHardwareFormatted.add($(Get-HuduFormattedField -Title 'Serial Number' -Value "$($Device.serialNumber)")) + $DeviceHardwareFormatted.add($(Get-HuduFormattedField -Title 'OS' -Value "$($Device.operatingSystem)")) + $DeviceHardwareFormatted.add($(Get-HuduFormattedField -Title 'OS Versions' -Value "$($Device.osVersion)")) + $DeviceHardwareFormatted.add($(Get-HuduFormattedField -Title 'Chassis' -Value "$($Device.chassisType)")) + $DeviceHardwareFormatted.add($(Get-HuduFormattedField -Title 'Model' -Value "$($Device.model)")) + $DeviceHardwareFormatted.add($(Get-HuduFormattedField -Title 'Manufacturer' -Value "$($Device.manufacturer)")) + $DeviceHardwareFormatted.add($(Get-HuduFormattedField -Title 'Total Storage' -Value "$([math]::Round($Device.totalStorageSpaceInBytes /1024 /1024 /1024, 2))")) + $DeviceHardwareFormatted.add($(Get-HuduFormattedField -Title 'Free Storage' -Value "$([math]::Round($Device.freeStorageSpaceInBytes /1024 /1024 /1024, 2))")) + + [System.Collections.Generic.List[PSCustomObject]]$DeviceEnrollmentFormatted = @() + $DeviceEnrollmentFormatted.add($(Get-HuduFormattedField -Title 'Enrollment Type' -Value "$($Device.deviceEnrollmentType)")) + $DeviceEnrollmentFormatted.add($(Get-HuduFormattedField -Title 'Join Type' -Value "$($Device.joinType)")) + $DeviceEnrollmentFormatted.add($(Get-HuduFormattedField -Title 'Registration State' -Value "$($Device.deviceRegistrationState)")) + $DeviceEnrollmentFormatted.add($(Get-HuduFormattedField -Title 'Autopilot Enrolled' -Value "$($Device.autopilotEnrolled)")) + $DeviceEnrollmentFormatted.add($(Get-HuduFormattedField -Title 'Device Guard Requirements' -Value "$($Device.hardwareinformation.deviceGuardVirtualizationBasedSecurityHardwareRequirementState)")) + $DeviceEnrollmentFormatted.add($(Get-HuduFormattedField -Title 'Virtualistation Based Security' -Value "$($Device.hardwareinformation.deviceGuardVirtualizationBasedSecurityState)")) + $DeviceEnrollmentFormatted.add($(Get-HuduFormattedField -Title 'Credential Guard' -Value "$($Device.hardwareinformation.deviceGuardLocalSystemAuthorityCredentialGuardState)")) + + $DevicePoliciesTable = foreach ($Policy in $DeviceComplianceDetails) { + # Handle DeviceStatuses as either array or single object + $DeviceStatuses = $Policy.DeviceStatuses + + # Enhanced device matching with multiple strategies + $MatchingStatuses = $DeviceStatuses | Where-Object { + # Primary match: deviceDisplayName to deviceName (most reliable) + ($_.deviceDisplayName -eq $device.deviceName) -or + # Secondary match: deviceDisplayName to managedDeviceName + ($_.deviceDisplayName -eq $device.managedDeviceName) -or + # Tertiary match: extract device ID from composite compliance ID and match to device.id + ($_.id -and $device.id -and $_.id -match ".*_$([regex]::Escape($device.id))$") -or + # Quaternary match: extract device ID from composite compliance ID and match to azureADDeviceId + ($_.id -and $device.azureADDeviceId -and $_.id -match ".*_$([regex]::Escape($device.azureADDeviceId))$") -or + # Alternative match: check if azureADDeviceId appears anywhere in the compliance ID + ($_.id -and $device.azureADDeviceId -and $_.id -like "*$($device.azureADDeviceId)*") + } + + if ($MatchingStatuses) { + foreach ($Status in $MatchingStatuses) { + Write-Information "Processing Status for Device $($device.deviceName), Policy $($Policy.displayName)" + # Filter out invalid statuses + if ($Status.status -and $Status.status -ne 'unknown' -and $Status.status -ne $null) { + try { + $LastReport = if ($Status.lastReportedDateTime) { + (Get-Date $Status.lastReportedDateTime -Format 'yyyy-MM-dd HH:mm:ss') + } else { 'N/A' } + + $GraceExpiry = if ($Status.complianceGracePeriodExpirationDateTime) { + (Get-Date $Status.complianceGracePeriodExpirationDateTime -Format 'yyyy-MM-dd HH:mm:ss') + } else { 'N/A' } + + [PSCustomObject]@{ + Name = $Policy.displayName + Status = $Status.status + 'Last Report' = $LastReport + 'Grace Expiry' = $GraceExpiry + 'Match Method' = if ($Status.deviceDisplayName -eq $device.deviceName) { 'Device Name' } + elseif ($Status.deviceDisplayName -eq $device.managedDeviceName) { 'Managed Name' } + else { 'Device ID' } + } + } catch { + # Log but continue processing if date parsing fails + Write-Warning "Failed to parse compliance policy dates for device $($device.deviceName), policy $($Policy.displayName): $_" + [PSCustomObject]@{ + Name = $Policy.displayName + Status = $Status.status + 'Last Report' = 'Parse Error' + 'Grace Expiry' = 'Parse Error' + 'Match Method' = 'Error' + } + } + } } } } - } - $DevicePoliciesFormatted = $DevicePoliciesTable | ConvertTo-Html -Fragment | Out-String + $DevicePoliciesFormatted = $DevicePoliciesTable | ConvertTo-Html -Fragment | Out-String - $DeviceGroupsTable = foreach ($Group in $Groups) { - if ($device.azureADDeviceId -in $Group.members.deviceId) { - [PSCustomObject]@{ - Name = $Group.displayName + $DeviceGroupsTable = foreach ($Group in $Groups) { + if ($device.azureADDeviceId -in $Group.members.deviceId) { + [PSCustomObject]@{ + Name = $Group.displayName + } } } - } - $DeviceGroupsFormatted = $DeviceGroupsTable | ConvertTo-Html -Fragment | Out-String - <# + $DeviceGroupsFormatted = $DeviceGroupsTable | ConvertTo-Html -Fragment | Out-String + <# $DeviceAppsTable = foreach ($App in $DeviceAppInstallDetails) { if ($device.id -in $App.InstalledAppDetails.deviceId) { $Status = $App.InstalledAppDetails | Where-Object { $_.deviceId -eq $device.id } @@ -764,117 +897,125 @@ function Invoke-HuduExtensionSync { } $DeviceAppsFormatted = $DeviceAppsTable | ConvertTo-Html -Fragment | Out-String #> - $DeviceOverviewBlock = Get-HuduFormattedBlock -Heading 'Device Details' -Body ($DeviceOverviewFormatted -join '') - $DeviceHardwareBlock = Get-HuduFormattedBlock -Heading 'Hardware Details' -Body ($DeviceHardwareFormatted -join '') - $DeviceEnrollmentBlock = Get-HuduFormattedBlock -Heading 'Device Enrollment Details' -Body ($DeviceEnrollmentFormatted -join '') - $DevicePolicyBlock = Get-HuduFormattedBlock -Heading 'Compliance Policies' -Body ($DevicePoliciesFormatted -join '') - #$DeviceAppsBlock = Get-HuduFormattedBlock -Heading 'App Details' -Body ($DeviceAppsFormatted -join '') - $DeviceGroupsBlock = Get-HuduFormattedBlock -Heading 'Device Groups' -Body ($DeviceGroupsFormatted -join '') - - if ("$($device.serialNumber)" -in $ExcludeSerials) { - $HuduDevice = $HuduDevices | Where-Object { $_.name -eq $device.deviceName -or ($_.cards.integrator_name -eq 'cw_manage' -and $_.cards.data.name -contains $device.deviceName) } - } else { - $HuduDevice = $HuduDevices | Where-Object { $_.primary_serial -eq $device.serialNumber -or ($_.cards.integrator_name -eq 'cw_manage' -and $_.cards.data.serialNumber -eq $device.serialNumber) } - if (!$HuduDevice) { + $DeviceOverviewBlock = Get-HuduFormattedBlock -Heading 'Device Details' -Body ($DeviceOverviewFormatted -join '') + $DeviceHardwareBlock = Get-HuduFormattedBlock -Heading 'Hardware Details' -Body ($DeviceHardwareFormatted -join '') + $DeviceEnrollmentBlock = Get-HuduFormattedBlock -Heading 'Device Enrollment Details' -Body ($DeviceEnrollmentFormatted -join '') + $DevicePolicyBlock = Get-HuduFormattedBlock -Heading 'Compliance Policies' -Body ($DevicePoliciesFormatted -join '') + #$DeviceAppsBlock = Get-HuduFormattedBlock -Heading 'App Details' -Body ($DeviceAppsFormatted -join '') + $DeviceGroupsBlock = Get-HuduFormattedBlock -Heading 'Device Groups' -Body ($DeviceGroupsFormatted -join '') + + if ("$($device.serialNumber)" -in $ExcludeSerials) { $HuduDevice = $HuduDevices | Where-Object { $_.name -eq $device.deviceName -or ($_.cards.integrator_name -eq 'cw_manage' -and $_.cards.data.name -contains $device.deviceName) } + } else { + $HuduDevice = $HuduDevices | Where-Object { $_.primary_serial -eq $device.serialNumber -or ($_.cards.integrator_name -eq 'cw_manage' -and $_.cards.data.serialNumber -eq $device.serialNumber) } + if (!$HuduDevice) { + $HuduDevice = $HuduDevices | Where-Object { $_.name -eq $device.deviceName -or ($_.cards.integrator_name -eq 'cw_manage' -and $_.cards.data.name -contains $device.deviceName) } + } } - } - [System.Collections.Generic.List[PSCustomObject]]$DeviceLinksFormatted = @() - $DeviceLinksFormatted.add((Get-HuduLinkBlock -URL "https://intune.microsoft.com/$($Tenant.defaultDomainName)/#blade/Microsoft_Intune_Devices/DeviceSettingsBlade/overview/mdmDeviceId/$($Device.id)" -Icon 'fas fa-laptop' -Title 'Endpoint Manager')) + [System.Collections.Generic.List[PSCustomObject]]$DeviceLinksFormatted = @() + $DeviceLinksFormatted.add((Get-HuduLinkBlock -URL "https://intune.microsoft.com/$($Tenant.defaultDomainName)/#blade/Microsoft_Intune_Devices/DeviceSettingsBlade/overview/mdmDeviceId/$($Device.id)" -Icon 'fas fa-laptop' -Title 'Endpoint Manager')) - if ($HuduDevice) { - $DRMMCard = $HuduDevice.cards | Where-Object { $_.integrator_name -eq 'dattormm' } - if ($DRMMCard) { - $DeviceLinksFormatted.add((Get-HuduLinkBlock -URL "$($RMMDeviceURL)$($DRMMCard.data.id)" -Icon 'fas fa-laptop-code' -Title 'Datto RMM')) - $DeviceLinksFormatted.add((Get-HuduLinkBlock -URL "$($RMMRemoteURL)$($DRMMCard.data.id)" -Icon 'fas fa-desktop' -Title 'Datto RMM Remote')) - } - $ManageCard = $HuduDevice.cards | Where-Object { $_.integrator_name -eq 'cw_manage' } - if ($ManageCard) { - $DeviceLinksFormatted.add((Get-HuduLinkBlock -URL $ManageCard.data.managementLink -Icon 'fas fa-laptop-code' -Title 'CW Automate')) - $DeviceLinksFormatted.add((Get-HuduLinkBlock -URL $ManageCard.data.remoteLink -Icon 'fas fa-desktop' -Title 'CW Control')) + if ($HuduDevice) { + $DRMMCard = $HuduDevice.cards | Where-Object { $_.integrator_name -eq 'dattormm' } + if ($DRMMCard) { + $DeviceLinksFormatted.add((Get-HuduLinkBlock -URL "$($RMMDeviceURL)$($DRMMCard.data.id)" -Icon 'fas fa-laptop-code' -Title 'Datto RMM')) + $DeviceLinksFormatted.add((Get-HuduLinkBlock -URL "$($RMMRemoteURL)$($DRMMCard.data.id)" -Icon 'fas fa-desktop' -Title 'Datto RMM Remote')) + } + $ManageCard = $HuduDevice.cards | Where-Object { $_.integrator_name -eq 'cw_manage' } + if ($ManageCard) { + $DeviceLinksFormatted.add((Get-HuduLinkBlock -URL $ManageCard.data.managementLink -Icon 'fas fa-laptop-code' -Title 'CW Automate')) + $DeviceLinksFormatted.add((Get-HuduLinkBlock -URL $ManageCard.data.remoteLink -Icon 'fas fa-desktop' -Title 'CW Control')) + } } - } - $DeviceLinksBlock = "
Management Links
$($DeviceLinksFormatted -join '')
" + $DeviceLinksBlock = "
Management Links
$($DeviceLinksFormatted -join '')
" - $DeviceIntuneDetailshtml = "
$DeviceLinksBlock
$($DeviceOverviewBlock)$($DeviceHardwareBlock)$($DeviceEnrollmentBlock)$($DevicePolicyBlock)$($DeviceAppsBlock)$($DeviceGroupsBlock)
" + $DeviceIntuneDetailshtml = "
$DeviceLinksBlock
$($DeviceOverviewBlock)$($DeviceHardwareBlock)$($DeviceEnrollmentBlock)$($DevicePolicyBlock)$($DeviceAppsBlock)$($DeviceGroupsBlock)
" - $DeviceAssetFields = @{ - microsoft_365 = $DeviceIntuneDetailshtml - } - $NewHash = Get-StringHash -String $DeviceIntuneDetailshtml + $DeviceAssetFields = @{ + microsoft_365 = $DeviceIntuneDetailshtml + } + $NewHash = Get-StringHash -String $DeviceIntuneDetailshtml - if (![string]::IsNullOrEmpty($DeviceLayoutId)) { - if ($HuduDevice) { - if (($HuduDevice | Measure-Object).count -eq 1) { - $ExistingAsset = Get-CIPPAzDataTableEntity @HuduAssetCache -Filter "PartitionKey eq 'HuduDevice' and CompanyId eq '$company_id' and RowKey eq '$($HuduDevice.id)'" - $ExistingHash = $ExistingAsset.Hash + if (![string]::IsNullOrEmpty($DeviceLayoutId)) { + if ($HuduDevice) { + if (($HuduDevice | Measure-Object).count -eq 1) { + $ExistingAsset = Get-CIPPAzDataTableEntity @HuduAssetCache -Filter "PartitionKey eq 'HuduDevice' and CompanyId eq '$company_id' and RowKey eq '$($HuduDevice.id)'" + $ExistingHash = $ExistingAsset.Hash - if (!$ExistingAsset -or $ExistingAsset.Hash -ne $NewHash) { - $CompanyResult.Logs.Add("Updating $($HuduDevice.name) in Hudu") - $null = Set-HuduAsset -asset_id $HuduDevice.id -Name $HuduDevice.name -company_id $company_id -asset_layout_id $HuduDevice.asset_layout_id -Fields $DeviceAssetFields -PrimarySerial $Device.serialNumber - $AssetCache = [PSCustomObject]@{ - PartitionKey = 'HuduDevice' - RowKey = [string]$HuduDevice.id - CompanyId = [string]$company_id - Hash = [string]$NewHash + if (!$ExistingAsset -or $ExistingAsset.Hash -ne $NewHash) { + $CompanyResult.Logs.Add("Updating $($HuduDevice.name) in Hudu") + $null = Set-HuduAsset -asset_id $HuduDevice.id -Name $HuduDevice.name -company_id $company_id -asset_layout_id $HuduDevice.asset_layout_id -Fields $DeviceAssetFields -PrimarySerial $Device.serialNumber + $AssetCache = [PSCustomObject]@{ + PartitionKey = 'HuduDevice' + RowKey = [string]$HuduDevice.id + CompanyId = [string]$company_id + Hash = [string]$NewHash + } + Add-CIPPAzDataTableEntity @HuduAssetCache -Entity $AssetCache -Force } - Add-CIPPAzDataTableEntity @HuduAssetCache -Entity $AssetCache -Force - $RelHuduUser = $People | Where-Object { $_.primary_mail -eq $Device.userPrincipalName -or ($_.cards.integrator_name -eq 'cw_manage' -and $_.cards.data.communicationItems.communicationType -eq 'Email' -and $_.cards.data.communicationItems.value -eq $Device.userPrincipalName) } - - if ($RelHuduUser) { - $Relation = $HuduRelations | Where-Object { $_.fromable_type -eq 'Asset' -and $_.fromable_id -eq $RelHuduUser.id -and $_.toable_type -eq 'Asset' -and $_toable_id -eq $HuduDevice.id } - if (-not $Relation) { - try { - $null = New-HuduRelation -FromableType 'Asset' -FromableID $RelHuduUser.id -ToableType 'Asset' -ToableID $HuduDevice.id -ea stop - } catch {} + if (![string]::IsNullOrEmpty($Device.userPrincipalName)) { + $RelHuduUser = $People | Where-Object { ($_.fields.label -eq 'Email Address' -and $_.fields.value -eq $Device.userPrincipalName) -or $_.primary_mail -eq $Device.userPrincipalName -or ($_.cards.integrator_name -eq 'cw_manage' -and $_.cards.data.communicationItems.communicationType -eq 'Email' -and $_.cards.data.communicationItems.value -eq $Device.userPrincipalName) } + + if ($RelHuduUser) { + $Relation = $HuduRelations | Where-Object { $_.fromable_type -eq 'Asset' -and $_.fromable_id -eq $RelHuduUser.id -and $_.toable_type -eq 'Asset' -and $_.toable_id -eq $HuduDevice.id } + if (-not $Relation) { + try { + Write-Information "Creating relation between $($RelHuduUser.name) and $($HuduDevice.name)" + $null = New-HuduRelation -FromableType 'Asset' -FromableID $RelHuduUser.id -ToableType 'Asset' -ToableID $HuduDevice.id -ea stop + } catch { + Write-Warning "Failed to create relation between $($RelHuduUser.name) and $($HuduDevice.name): $_" + $CompanyResult.Errors.add("Device $($device.deviceName): Failed to create relation between user and device: $_") + } + } } } + } else { + $CompanyResult.Errors.add("Device $($HuduDevice.name): Multiple devices matched on name or serial ($($device.serialNumber -join ', '))") } } else { - $CompanyResult.Errors.add("Device $($HuduDevice.name): Multiple devices matched on name or serial ($($device.serialNumber -join ', '))") - } - } else { - if ($device.deviceType -in $IntuneDesktopDeviceTypes) { - $DeviceLayoutID = $DesktopsLayout.id - $DeviceCreation = $CreateDevices - } else { - $DeviceLayoutID = $MobilesLayout.id - $DeviceCreation = $CreateMobileDevices - } - if ($DeviceCreation -eq $true) { - $CompanyResult.Logs.Add("Creating $($device.deviceName) in Hudu") - $CreateHuduDevice = (New-HuduAsset -Name $device.deviceName -company_id $company_id -asset_layout_id $DeviceLayoutID -Fields $DeviceAssetFields -PrimarySerial $Device.serialNumber).asset - - if (!$CreateHuduDevice) { - $CompanyResult.Errors.add("Device $($device.deviceName): Failed to create device in Hudu, check your device asset fields for 'Primary Serial'.") + if ($device.deviceType -in $IntuneDesktopDeviceTypes) { + $DeviceLayoutID = $DesktopsLayout.id + $DeviceCreation = $CreateDevices } else { - $AssetCache = [PSCustomObject]@{ - PartitionKey = 'HuduDevice' - RowKey = [string]$CreateHuduDevice.id - CompanyId = [string]$company_id - Hash = [string]$NewHash - } - Add-CIPPAzDataTableEntity @HuduAssetCache -Entity $AssetCache -Force + $DeviceLayoutID = $MobilesLayout.id + $DeviceCreation = $CreateMobileDevices + } + if ($DeviceCreation -eq $true) { + $CompanyResult.Logs.Add("Creating $($device.deviceName) in Hudu") + $CreateHuduDevice = (New-HuduAsset -Name $device.deviceName -company_id $company_id -asset_layout_id $DeviceLayoutID -Fields $DeviceAssetFields -PrimarySerial $Device.serialNumber).asset - $RelHuduUser = $People | Where-Object { $_.primary_mail -eq $Device.userPrincipalName -or ($_.cards.integrator_name -eq 'cw_manage' -and $_.cards.data.communicationItems.communicationType -eq 'Email' -and $_.cards.data.communicationItems.value -eq $Device.userPrincipalName) } - if ($RelHuduUser) { - try { - $null = New-HuduRelation -FromableType 'Asset' -FromableID $RelHuduUser.id -ToableType 'Asset' -ToableID $CreateHuduDevice.id -ea stop - } catch { - # No need to do anything here as its will be when relations already exist. + if (!$CreateHuduDevice) { + $CompanyResult.Errors.add("Device $($device.deviceName): Failed to create device in Hudu, check your device asset fields for 'Primary Serial'.") + } else { + $AssetCache = [PSCustomObject]@{ + PartitionKey = 'HuduDevice' + RowKey = [string]$CreateHuduDevice.id + CompanyId = [string]$company_id + Hash = [string]$NewHash + } + Add-CIPPAzDataTableEntity @HuduAssetCache -Entity $AssetCache -Force + + $RelHuduUser = $People | Where-Object { $_.primary_mail -eq $Device.userPrincipalName -or ($_.cards.integrator_name -eq 'cw_manage' -and $_.cards.data.communicationItems.communicationType -eq 'Email' -and $_.cards.data.communicationItems.value -eq $Device.userPrincipalName) } + if ($RelHuduUser) { + try { + $null = New-HuduRelation -FromableType 'Asset' -FromableID $RelHuduUser.id -ToableType 'Asset' -ToableID $CreateHuduDevice.id -ea stop + } catch { + # No need to do anything here as its will be when relations already exist. + } } } } } } + } catch { + $CompanyResult.Errors.add("Device $($device.deviceName): A Fatal Error occured while processing the device $_") } - } catch { - $CompanyResult.Errors.add("Device $($device.deviceName): A Fatal Error occured while processing the device $_") } - + } else { + $CompanyResult.Logs.Add('Skipping Device Processing - No Device Layout ID') } @@ -931,8 +1072,10 @@ function Invoke-HuduExtensionSync { Write-LogMessage -tenant $Tenant.defaultDomainName -tenantid $Tenant.customerId -API 'Hudu Sync' -message 'Company: Completed Sync' -level 'Information' $CompanyResult.Logs.Add('Hudu Sync Completed') } catch { - $CompanyResult.Errors.add("Company: A fatal error occured: $_") + Write-Warning "Company: A fatal error occured: $_" + Write-Information $_.InvocationInfo.PositionMessage Write-LogMessage -tenant $Tenant.defaultDomainName -tenantid $Tenant.customerId -API 'Hudu Sync' -message "Company: A fatal error occured: $_" -level 'Error' + $CompanyResult.Errors.add("Company: A fatal error occured: $_") } return $CompanyResult } diff --git a/Modules/CippExtensions/Public/New-CippExtAlert.ps1 b/Modules/CippExtensions/Public/New-CippExtAlert.ps1 index 28a4b957c2cb..bae549bf0719 100644 --- a/Modules/CippExtensions/Public/New-CippExtAlert.ps1 +++ b/Modules/CippExtensions/Public/New-CippExtAlert.ps1 @@ -6,13 +6,13 @@ function New-CippExtAlert { ) #Get the current CIPP Alerts table and see what system is configured to receive alerts $Table = Get-CIPPTable -TableName Extensionsconfig - $Configuration = (Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json -Depth 10 + $Configuration = (Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json -Depth 10 -ErrorAction SilentlyContinue $MappingTable = Get-CIPPTable -TableName CippMapping foreach ($ConfigItem in $Configuration.psobject.properties.name) { switch ($ConfigItem) { 'HaloPSA' { - If ($Configuration.HaloPSA.enabled) { + if ($Configuration.HaloPSA.enabled) { $MappingFile = Get-CIPPAzDataTableEntity @MappingTable -Filter "PartitionKey eq 'HaloMapping'" $TenantId = (Get-Tenants | Where-Object defaultDomainName -EQ $Alert.TenantId).customerId Write-Host "TenantId: $TenantId" @@ -24,7 +24,7 @@ function New-CippExtAlert { } } 'Gradient' { - If ($Configuration.Gradient.enabled) { + if ($Configuration.Gradient.enabled) { New-GradientAlert -Title $Alert.AlertTitle -Description $Alert.AlertText -Client $Alert.TenantId } } diff --git a/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneDeviceWebhook.ps1 b/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneDeviceWebhook.ps1 index 0a980c96291c..f230a6078d6b 100644 --- a/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneDeviceWebhook.ps1 +++ b/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneDeviceWebhook.ps1 @@ -13,7 +13,7 @@ function Invoke-NinjaOneDeviceWebhook { } if ($MappedFields.DeviceCompliance) { - Write-LogMessage -Headers $Headers -API $APIName -message "Webhook Recieved - Updating NinjaOne Device compliance for $($Data.resourceData.id) in $($Data.tenantId)" -Sev 'Info' -tenant $TenantFilter + Write-LogMessage -Headers $Headers -API $APIName -message "Webhook Received - Updating NinjaOne Device compliance for $($Data.resourceData.id) in $($Data.tenantId)" -Sev 'Info' -tenant $TenantFilter $tenantfilter = $Data.tenantId $M365DeviceID = $Data.resourceData.id diff --git a/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneTenantSync.ps1 b/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneTenantSync.ps1 index 245ff267103c..ca67d3b360e3 100644 --- a/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneTenantSync.ps1 +++ b/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneTenantSync.ps1 @@ -7,9 +7,21 @@ function Invoke-NinjaOneTenantSync { $StartQueueTime = Get-Date Write-Information "$(Get-Date) - Starting NinjaOne Sync" - # Stagger start - # Check Global Rate Limiting - $CurrentMap = Get-ExtensionRateLimit -ExtensionName 'NinjaOne' -ExtensionPartitionKey 'NinjaOneMapping' -RateLimit 5 -WaitTime 10 + $MappingTable = Get-CIPPTable -TableName CippMapping + $CurrentMap = (Get-CIPPAzDataTableEntity @MappingTable -Filter "PartitionKey eq 'NinjaOneMapping'") + $CurrentMap | ForEach-Object { + if ($Null -ne $_.lastEndTime -and $_.lastEndTime -ne '') { + $_.lastEndTime = (Get-Date($_.lastEndTime)) + } else { + $_ | Add-Member -NotePropertyName lastEndTime -NotePropertyValue $Null -Force + } + + if ($Null -ne $_.lastStartTime -and $_.lastStartTime -ne '') { + $_.lastStartTime = (Get-Date($_.lastStartTime)) + } else { + $_ | Add-Member -NotePropertyName lastStartTime -NotePropertyValue $Null -Force + } + } $StartTime = Get-Date @@ -48,7 +60,7 @@ function Invoke-NinjaOneTenantSync { Write-LogMessage -tenant $Customer.defaultDomainName -API 'NinjaOneSync' -message "Processing NinjaOne Synchronization for $($Customer.displayName) - Queued for $((New-TimeSpan -Start $StartQueueTime -End $StartTime).TotalSeconds)" -Sev 'Info' if (($Customer | Measure-Object).count -ne 1) { - throw "Unable to match the recieved ID to a tenant QueueItem: $($QueueItem | ConvertTo-Json -Depth 100 | Out-String) Matched Customer: $($Customer| ConvertTo-Json -Depth 100 | Out-String)" + throw "Unable to match the received ID to a tenant QueueItem: $($QueueItem | ConvertTo-Json -Depth 100 | Out-String) Matched Customer: $($Customer| ConvertTo-Json -Depth 100 | Out-String)" } $TenantFilter = $Customer.defaultDomainName @@ -275,7 +287,7 @@ function Invoke-NinjaOneTenantSync { [System.Collections.Generic.List[PSCustomObject]]$NinjaLicenseCreation = @() # Replace direct Graph/Exchange calls with cached data - $ExtensionCache = Get-ExtensionCacheData -TenantFilter $Customer.defaultDomainName + $ExtensionCache = Get-CippExtensionReportingData -TenantFilter $Customer.defaultDomainName -IncludeMailboxes # Map cached data to variables $Users = $ExtensionCache.Users @@ -289,14 +301,14 @@ function Invoke-NinjaOneTenantSync { $MailboxStatsFull = $ExtensionCache.MailboxUsage $Permissions = $ExtensionCache.MailboxPermissions $SecureScore = $ExtensionCache.SecureScore - $Subscriptions = $ExtensionCache.Subscriptions + $Subscriptions = if ($ExtensionCache.Licenses) { $ExtensionCache.Licenses.TermInfo | Where-Object { $null -ne $_ } } else { @() } $SecureScoreProfiles = $ExtensionCache.SecureScoreControlProfiles - $TenantDetails = $ExtensionCache.TenantDetails + $TenantDetails = $ExtensionCache.Organization $RawDomains = $ExtensionCache.Domains $AllGroups = $ExtensionCache.Groups $Licenses = $ExtensionCache.Licenses $RawDomains = $ExtensionCache.Domains - $AllConditionalAccessPolicies = $ExtensionCache.ConditionalAccessPolicies + $AllConditionalAccessPolicies = $ExtensionCache.ConditionalAccess $CurrentSecureScore = ($SecureScore | Sort-Object createDateTime -Descending | Select-Object -First 1) $MaxSecureScoreRank = ($SecureScoreProfiles.rank | Measure-Object -Maximum).maximum @@ -325,14 +337,14 @@ function Invoke-NinjaOneTenantSync { $licensedUsers = $Users | Where-Object { $null -ne $_.AssignedLicenses.SkuId } | Sort-Object UserPrincipalName $Roles = foreach ($Role in $AllRoles) { - # Get members from cache - $Members = ($ExtensionCache."AllRoles_$($Role.id)") + # Get members from inline property (no longer separate cache entries) + $Members = $Role.members [PSCustomObject]@{ - ID = $Result.id + ID = $Role.id DisplayName = $Role.displayName Description = $Role.description Members = $Members - ParsedMembers = $Members.displayName -join ', ' + ParsedMembers = if ($Members) { $Members.displayName -join ', ' } else { '' } } } @@ -352,7 +364,8 @@ function Invoke-NinjaOneTenantSync { Write-Verbose "$(Get-Date) - Parsing Device Compliance Policies" $DeviceComplianceDetails = foreach ($Policy in $DeviceCompliancePolicies) { - $DeviceStatuses = $ExtensionCache."DeviceCompliancePolicy_$($Policy.id)" + $StatusItems = Get-CIPPDbItem -TenantFilter $Customer.defaultDomainName -Type "IntuneDeviceCompliancePolicies_$($Policy.id)" | Where-Object { $_.RowKey -notlike '*-Count' } + $DeviceStatuses = if ($StatusItems) { $StatusItems | ForEach-Object { $_.Data | ConvertFrom-Json } } else { @() } [pscustomobject]@{ ID = $Policy.id DisplayName = $Policy.displayName @@ -363,7 +376,8 @@ function Invoke-NinjaOneTenantSync { Write-Verbose "$(Get-Date) - Parsing Groups" $Groups = foreach ($Group in $AllGroups) { - $Members = $ExtensionCache."Groups_$($Result.id)" + # Get members from inline property (no longer separate cache entries) + $Members = $Group.members [pscustomobject]@{ ID = $Group.id DisplayName = $Group.displayName @@ -611,7 +625,7 @@ function Invoke-NinjaOneTenantSync { if ($Device.complianceState -eq 'compliant') { $Compliance = '   Compliant' } else { - $Compliance = '   Not Compliant' + $Compliance = '   Not Compliant' } # Device Details @@ -780,7 +794,6 @@ function Invoke-NinjaOneTenantSync { } } - #$PermsRequest = '' $StatsRequest = '' $MailboxDetailedRequest = '' @@ -788,7 +801,7 @@ function Invoke-NinjaOneTenantSync { $CASRequest = $CASFull | Where-Object { $_.ExternalDirectoryObjectId -eq $User.iD } $MailboxDetailedRequest = $MailboxDetailedFull | Where-Object { $_.ExternalDirectoryObjectId -eq $User.iD } - $StatsRequest = $MailboxStatsFull | Where-Object { $_.'User Principal Name' -eq $User.UserPrincipalName } + $StatsRequest = $MailboxStatsFull | Where-Object { $_.userPrincipalName -eq $User.UserPrincipalName } $ParsedPerms = foreach ($Perm in $Permissions) { @@ -801,7 +814,7 @@ function Invoke-NinjaOneTenantSync { } try { - $TotalItemSize = [math]::Round($StatsRequest.'Storage Used (Byte)' / 1Gb, 2) + $TotalItemSize = [math]::Round($StatsRequest.storageUsedInBytes / 1Gb, 2) } catch { $TotalItemSize = 0 } @@ -809,7 +822,7 @@ function Invoke-NinjaOneTenantSync { $UserMailSettings = [pscustomobject]@{ ForwardAndDeliver = $MailboxDetailedRequest.DeliverToMailboxAndForward ForwardingAddress = $MailboxDetailedRequest.ForwardingAddress + ' ' + $MailboxDetailedRequest.ForwardingSmtpAddress - LitiationHold = $MailboxDetailedRequest.LitigationHoldEnabled + LitigationHold = $MailboxDetailedRequest.LitigationHoldEnabled HiddenFromAddressLists = $MailboxDetailedRequest.HiddenFromAddressListsEnabled EWSEnabled = $CASRequest.EwsEnabled MailboxMAPIEnabled = $CASRequest.MAPIEnabled @@ -818,10 +831,11 @@ function Invoke-NinjaOneTenantSync { MailboxPopEnabled = $CASRequest.PopEnabled MailboxActiveSyncEnabled = $CASRequest.ActiveSyncEnabled Permissions = $ParsedPerms - ProhibitSendQuota = [math]::Round([float]($MailboxDetailedRequest.ProhibitSendQuota -split ' GB')[0], 2) - ProhibitSendReceiveQuota = [math]::Round([float]($MailboxDetailedRequest.ProhibitSendReceiveQuota -split ' GB')[0], 2) - ItemCount = [math]::Round($StatsRequest.'Item Count', 2) - TotalItemSize = $TotalItemSize + ProhibitSendQuota = $StatsRequest.prohibitSendQuotaInBytes + ProhibitSendReceiveQuota = $StatsRequest.prohibitSendReceiveQuotaInBytes + ItemCount = [math]::Round($StatsRequest.itemCount, 2) + TotalItemSize = $StatsRequest.totalItemSize + StorageUsedInBytes = $StatsRequest.storageUsedInBytes } @@ -843,7 +857,7 @@ function Invoke-NinjaOneTenantSync { if ($UserDevice.Compliance -eq 'compliant') { $ComplianceIcon = '' } else { - $ComplianceIcon = '' + $ComplianceIcon = '' } # OS Icon @@ -872,9 +886,9 @@ function Invoke-NinjaOneTenantSync { - $UserOneDriveStats = $OneDriveDetails | Where-Object { $_.'Owner Principal Name' -eq $User.userPrincipalName } | Select-Object -First 1 - $UserOneDriveUse = $UserOneDriveStats.'Storage Used (Byte)' / 1GB - $UserOneDriveTotal = $UserOneDriveStats.'Storage Allocated (Byte)' / 1GB + $UserOneDriveStats = $OneDriveDetails | Where-Object { $_.ownerPrincipalName -eq $User.userPrincipalName } | Select-Object -First 1 + $UserOneDriveUse = $UserOneDriveStats.storageUsedInBytes / 1GB + $UserOneDriveTotal = $UserOneDriveStats.storageAllocatedInBytes / 1GB if ($UserOneDriveTotal) { $OneDriveUse = [PSCustomObject]@{ @@ -908,13 +922,13 @@ function Invoke-NinjaOneTenantSync { if ($UserOneDriveStats) { $OneDriveCardData = [PSCustomObject]@{ - 'One Drive URL' = '
' + ($UserOneDriveStats.'Site URL') + '' - 'Is Deleted' = "$($UserOneDriveStats.'Is Deleted')" - 'Last Activity Date' = "$($UserOneDriveStats.'Last Activity Date')" - 'File Count' = "$($UserOneDriveStats.'File Count')" - 'Active File Count' = "$($UserOneDriveStats.'Active File Count')" - 'Storage Used (Byte)' = "$($UserOneDriveStats.'Storage Used (Byte)')" - 'Storage Allocated (Byte)' = "$($UserOneDriveStats.'Storage Allocated (Byte)')" + 'One Drive URL' = '' + ($UserOneDriveStats.siteUrl) + '' + 'Is Deleted' = "$($UserOneDriveStats.isDeleted)" + 'Last Activity Date' = "$($UserOneDriveStats.lastActivityDate)" + 'File Count' = "$($UserOneDriveStats.fileCount)" + 'Active File Count' = "$($UserOneDriveStats.activeFileCount)" + 'Storage Used (Byte)' = "$($UserOneDriveStats.storageUsedInBytes)" + 'Storage Allocated (Byte)' = "$($UserOneDriveStats.storageAllocatedInBytes)" 'One Drive Usage' = $OneDriveParsed } @@ -925,9 +939,9 @@ function Invoke-NinjaOneTenantSync { } - $UserMailboxStats = $MailboxStatsFull | Where-Object { $_.'User Principal Name' -eq $User.userPrincipalName } | Select-Object -First 1 - $UserMailUse = $UserMailboxStats.'Storage Used (Byte)' / 1GB - $UserMailTotal = $UserMailboxStats.'Prohibit Send/Receive Quota (Byte)' / 1GB + $UserMailboxStats = $MailboxStatsFull | Where-Object { $_.userPrincipalName -eq $User.userPrincipalName } | Select-Object -First 1 + $UserMailUse = $UserMailboxStats.storageUsedInBytes / 1GB + $UserMailTotal = $UserMailboxStats.prohibitSendReceiveQuotaInBytes / 1GB if ($UserMailTotal) { @@ -961,19 +975,30 @@ function Invoke-NinjaOneTenantSync { if ($UserMailSettings.ProhibitSendQuota) { + # Calculate GB values for display + try { + $MailboxProhibitSendQuota = [math]::Round($UserMailSettings.ProhibitSendQuota / 1024 / 1024 / 1024, 2) + $MailboxProhibitSendReceiveQuota = [math]::Round($UserMailSettings.ProhibitSendReceiveQuota / 1024 / 1024 / 1024, 2) + $MailboxStorageUsed = [math]::Round($UserMailSettings.StorageUsedInBytes / 1024 / 1024 / 1024, 2) + } catch { + $MailboxProhibitSendQuota = 0 + $MailboxProhibitSendReceiveQuota = 0 + $MailboxStorageUsed = 0 + } + $MailboxDetailsCardData = [PSCustomObject]@{ #'Permissions' = "$($UserMailSettings.Permissions | ConvertTo-Html -Fragment | Out-String)" - 'Prohibit Send Quota' = "$($UserMailSettings.ProhibitSendQuota)" - 'Prohibit Send Receive Quota' = "$($UserMailSettings.ProhibitSendReceiveQuota)" - 'Item Count' = "$($UserMailSettings.ProhibitSendReceiveQuota)" - 'Total Mailbox Size' = "$($UserMailSettings.ItemCount)" + 'Prohibit Send Quota' = "$($MailboxProhibitSendQuota) GB" + 'Prohibit Send Receive Quota' = "$($MailboxProhibitSendReceiveQuota) GB" + 'Item Count' = "$($UserMailSettings.ItemCount)" + 'Total Mailbox Size' = "$($MailboxStorageUsed) GB" 'Mailbox Usage' = $MailboxParsed } $MailboxSettingsCard = [PSCustomObject]@{ 'Forward and Deliver' = "$($UserMailSettings.ForwardAndDeliver)" 'Forwarding Address' = "$($UserMailSettings.ForwardingAddress)" - 'Litiation Hold' = "$($UserMailSettings.LitiationHold)" + 'Litigation Hold' = "$($UserMailSettings.LitigationHold)" 'Hidden From Address Lists' = "$($UserMailSettings.HiddenFromAddressLists)" 'EWS Enabled' = "$($UserMailSettings.EWSEnabled)" 'MAPI Enabled' = "$($UserMailSettings.MailboxMAPIEnabled)" @@ -1236,7 +1261,7 @@ function Invoke-NinjaOneTenantSync { } } catch { - Write-Error "User $($User.UserPrincipalName): A fatal error occured while processing user $_" + Write-Error "User $($User.UserPrincipalName): A fatal error occurred while processing user $_" } } @@ -1565,6 +1590,16 @@ function Invoke-NinjaOneTenantSync { Name = 'Azure Portal' Link = "https://portal.azure.com/$($customer.defaultDomainName)" Icon = 'fas fa-server' + }, + @{ + Name = 'Power Platform Portal' + Link = "https://admin.powerplatform.microsoft.com/account/login/$($Customer.customerId)" + Icon = 'fa-solid fa-robot' + }, + @{ + Name = 'Power BI Portal' + Link = "https://app.powerbi.com/admin-portal?ctid=$($Customer.customerId)" + Icon = 'fas fa-bar-chart' } ) @@ -1575,7 +1610,7 @@ function Invoke-NinjaOneTenantSync { @{ Name = 'CIPP Tenant Dashboard' - Link = "https://$CIPPUrl?tenantFilter=$($Customer.defaultDomainName)" + Link = "https://$CIPPUrl/?tenantFilter=$($Customer.defaultDomainName)" Icon = 'fas fa-shield-halved' }, @{ @@ -1621,7 +1656,7 @@ function Invoke-NinjaOneTenantSync { $ParsedAdmins = [PSCustomObject]@{} $AdminUsers | Select-Object displayname, userPrincipalName -Unique | ForEach-Object { - $ParsedAdmins | Add-Member -NotePropertyName $_.displayname -NotePropertyValue $_.userPrincipalName + $ParsedAdmins | Add-Member -NotePropertyName $_.displayname -NotePropertyValue $_.userPrincipalName -Force } $TenantDetailsItems = [PSCustomObject]@{ @@ -1799,7 +1834,7 @@ function Invoke-NinjaOneTenantSync { } # Recommended Actions HTML - $RecommendedActionsHTML = $Top5Actions | Select-Object 'Recommended Action', @{n = 'Score Impact'; e = { "+$($_.'Score Impact')%" } }, Category, @{n = 'Link'; e = { '' } } | ConvertTo-Html -As Table -Fragment + $RecommendedActionsHTML = $Top5Actions | Select-Object 'Recommended Action', @{n = 'Score Impact'; e = { "+$($_.scoreImpact)%" } }, Category, @{n = 'Link'; e = { '' } } | ConvertTo-Html -As Table -Fragment $TitleLink = "https://security.microsoft.com/securescore?viewid=overview&tid=$($Customer.customerId)" @@ -1811,18 +1846,24 @@ function Invoke-NinjaOneTenantSync { ### CIPP Applied Standards Cards Write-Information 'Applied Standards' - $ModuleBase = Get-Module CIPPExtensions | Select-Object -ExpandProperty ModuleBase - $CIPPRoot = (Get-Item $ModuleBase).Parent.Parent.FullName - Set-Location $CIPPRoot try { $StandardsDefinitions = Invoke-RestMethod -Uri 'https://raw.githubusercontent.com/KelvinTegelaar/CIPP/refs/heads/main/src/data/standards.json' $AppliedStandards = Get-CIPPStandards -TenantFilter $Customer.defaultDomainName $Templates = Get-CIPPTable 'templates' - $StandardTemplates = Get-CIPPAzDataTableEntity @Templates | Where-Object { $_.PartitionKey -eq 'StandardsTemplateV2' } + $StandardTemplates = Get-CIPPAzDataTableEntity @Templates -Filter "PartitionKey eq 'StandardsTemplateV2'" $ParsedStandards = foreach ($Standard in $AppliedStandards) { - $Template = ($StandardTemplates | Where-Object { $_.RowKey -eq $Standard.TemplateId }).JSON | ConvertFrom-Json + Write-Information "Processing Standard: $($Standard | ConvertTo-Json -Depth 10)" + if ($Standard.TemplateId.Count -gt 1) { + $TemplateListTemplates = foreach ($TemplateId in $Standard.TemplateId) { + if ($TemplateId) { + ($StandardTemplates | Where-Object { $_.RowKey -eq $TemplateId }).JSON | ConvertFrom-Json + } + } + } else { + $Template = ($StandardTemplates | Where-Object { $_.RowKey -eq $Standard.TemplateId }).JSON | ConvertFrom-Json + } $StandardInfo = $StandardsDefinitions | Where-Object { ($_.name -replace 'standards.', '') -eq $Standard.Standard } $StandardLabel = $StandardInfo.label $ParsedActions = foreach ($Action in $Standard.Settings.PSObject.Properties) { @@ -1830,10 +1871,57 @@ function Invoke-NinjaOneTenantSync { (Get-Culture).TextInfo.ToTitleCase($Action.Name) } } - [PSCustomObject]@{ - Standard = $StandardLabel - Template = $Template.templateName - Actions = $ParsedActions -join ', ' + + # Handle template-based standards that have lists of templates + if ($Standard.Standard -in @('IntuneTemplate', 'ConditionalAccessTemplate', 'GroupTemplate')) { + # For template standards, create separate entries for each template + foreach ($Property in $Standard.Settings.PSObject.Properties) { + if ($Property.Value -is [Array]) { + $x = 0 + foreach ($TemplateItem in $Property.Value) { + $TemplateName = $null + $TemplateActions = @() + + Write-Information "Processing Template Item: $($TemplateItem | ConvertTo-Json -Depth 10)" + # Get template name + if ($TemplateItem.TemplateList.label) { + $TemplateName = $TemplateItem.TemplateList.label + } elseif ($TemplateItem.'TemplateList-Tags'.label) { + $TemplateName = $TemplateItem.'TemplateList-Tags'.label + } else { + $TemplateName = $TemplateItem.TemplateList.displayName + } + + # Get template-specific actions + foreach ($ItemAction in $TemplateItem.PSObject.Properties) { + if ($ItemAction.Value -eq $true -and $ItemAction.Name -in @('remediate', 'report', 'alert')) { + $TemplateActions += (Get-Culture).TextInfo.ToTitleCase($ItemAction.Name) + } + } + + # If no template-specific actions, use standard-level actions + if ($TemplateActions.Count -eq 0) { + $TemplateActions = $ParsedActions + } + + if ($TemplateName) { + [PSCustomObject]@{ + Standard = "$StandardLabel - $TemplateName" + Template = $TemplateListTemplates[$x].templateName + Actions = $TemplateActions -join ', ' + } + } + $x++ + } + } + } + } else { + # For non-template standards, use the original logic + [PSCustomObject]@{ + Standard = $StandardLabel + Template = $Template.templateName + Actions = $ParsedActions -join ', ' + } } } $ParsedStandardsHTML = $ParsedStandards | ConvertTo-Html -As Table -Fragment diff --git a/Modules/CippExtensions/Public/PwPush/Get-PwPushAccount.ps1 b/Modules/CippExtensions/Public/PwPush/Get-PwPushAccount.ps1 index f5e5198a1633..c0f429863035 100644 --- a/Modules/CippExtensions/Public/PwPush/Get-PwPushAccount.ps1 +++ b/Modules/CippExtensions/Public/PwPush/Get-PwPushAccount.ps1 @@ -1,7 +1,7 @@ function Get-PwPushAccount { $Table = Get-CIPPTable -TableName Extensionsconfig $Configuration = ((Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json).PWPush - if ($Configuration.Enabled -eq $true -and $Configuration.PWPushPro -eq $true) { + if ($Configuration.Enabled -eq $true -and $Configuration.UseBearerAuth -eq $true) { Set-PwPushConfig -Configuration $Configuration Get-PushAccount } else { diff --git a/Modules/CippExtensions/Public/PwPush/New-PwPushLink.ps1 b/Modules/CippExtensions/Public/PwPush/New-PwPushLink.ps1 index 3d2744355e60..ad58593c9676 100644 --- a/Modules/CippExtensions/Public/PwPush/New-PwPushLink.ps1 +++ b/Modules/CippExtensions/Public/PwPush/New-PwPushLink.ps1 @@ -3,9 +3,35 @@ function New-PwPushLink { Param( $Payload ) - $Table = Get-CIPPTable -TableName Extensionsconfig - $Configuration = ((Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json).PWPush - if ($Configuration.Enabled -eq $true) { + + try { + $Table = Get-CIPPTable -TableName Extensionsconfig + $ConfigEntity = Get-CIPPAzDataTableEntity @Table + + # Check if the config entity exists and has a config property + if (-not $ConfigEntity -or [string]::IsNullOrEmpty($ConfigEntity.config)) { + return $false + } + + # Safely parse the JSON configuration + try { + $ParsedConfig = $ConfigEntity.config | ConvertFrom-Json -ErrorAction Stop + $Configuration = $ParsedConfig.PWPush + } catch { + return $false + } + + # Check if PWPush section exists in configuration + if (-not $Configuration) { + return $false + } + + # Check if PwPush is enabled + if ($Configuration.Enabled -ne $true) { + return $false + } + + # Proceed with creating the PwPush link try { Set-PwPushConfig -Configuration $Configuration $PushParams = @{ @@ -25,13 +51,15 @@ function New-PwPushLink { } } catch { $LogData = [PSCustomObject]@{ - 'Response' = $Link + 'Response' = if ($Link) { $Link } else { 'No response' } 'Exception' = Get-CippException -Exception $_ } Write-LogMessage -API PwPush -Message "Failed to create a new PwPush link: $($_.Exception.Message)" -Sev 'Error' -LogData $LogData - throw 'Failed to create a new PwPush link, check the log book for more details' + Write-LogMessage -API PwPush -Message "Continuing without PwPush link due to error" -Sev 'Warning' + return $false } - } else { + } catch { + Write-LogMessage -API PwPush -Message "Unexpected error in PwPush configuration handling: $($_.Exception.Message)" -Sev 'Error' return $false } } diff --git a/Modules/CippExtensions/Public/Sherweb/Test-SherwebMigrationAccounts.ps1 b/Modules/CippExtensions/Public/Sherweb/Test-SherwebMigrationAccounts.ps1 index 5a44c7b5cf4d..1fdc01e00176 100644 --- a/Modules/CippExtensions/Public/Sherweb/Test-SherwebMigrationAccounts.ps1 +++ b/Modules/CippExtensions/Public/Sherweb/Test-SherwebMigrationAccounts.ps1 @@ -8,7 +8,7 @@ function Test-SherwebMigrationAccounts { $ExtensionConfig = (Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json $Config = $ExtensionConfig.Sherweb #First get a list of all subscribed skus for this tenant, that are in the transfer window. - $Licenses = (Get-CIPPLicenseOverview -TenantFilter $TenantFilter) | ForEach-Object { $_.terminfo = ($_.terminfo | ConvertFrom-Json -ErrorAction SilentlyContinue) ; $_ } | Where-Object { $_.terminfo -ne $null -and $_.terminfo.TransferWindow -le 7 } + $Licenses = (Get-CIPPLicenseOverview -TenantFilter $TenantFilter) | Where-Object { $null -ne $_.terminfo -and $_.terminfo.TransferWindow -le 7 } #now check if this exact count of licenses is available at Sherweb, if not, we need to migrate them. $SherwebLicenses = Get-SherwebCurrentSubscription -TenantFilter $TenantFilter diff --git a/Modules/CippExtensions/build.psd1 b/Modules/CippExtensions/build.psd1 new file mode 100644 index 000000000000..ca804a1fbdb1 --- /dev/null +++ b/Modules/CippExtensions/build.psd1 @@ -0,0 +1,11 @@ +@{ + Path = 'CippExtensions.psd1' + OutputDirectory = '../../Output' + VersionedOutputDirectory = $false + CopyPaths = @( + 'ConversionTable.csv' + ) + Encoding = 'UTF8' + Prefix = $null + Suffix = $null +} diff --git a/Modules/MicrosoftTeams/6.4.0/bin/BrotliSharpLib.dll b/Modules/MicrosoftTeams/6.4.0/bin/BrotliSharpLib.dll deleted file mode 100644 index 3d11e82cee64..000000000000 Binary files a/Modules/MicrosoftTeams/6.4.0/bin/BrotliSharpLib.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.4.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll b/Modules/MicrosoftTeams/6.4.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll deleted file mode 100644 index 76268f4a6d9f..000000000000 Binary files a/Modules/MicrosoftTeams/6.4.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.Applications.Events.Server.dll b/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.Applications.Events.Server.dll deleted file mode 100644 index 351bffba2977..000000000000 Binary files a/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.Applications.Events.Server.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.Abstractions.dll b/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.Abstractions.dll deleted file mode 100644 index 03dcf88c91f5..000000000000 Binary files a/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.Abstractions.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.dll b/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.dll deleted file mode 100644 index 5c450a374010..000000000000 Binary files a/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll b/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll deleted file mode 100644 index 70efb0b0ab53..000000000000 Binary files a/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.Identity.Client.dll b/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.Identity.Client.dll deleted file mode 100644 index a0bf109fe389..000000000000 Binary files a/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.Identity.Client.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.IdentityModel.JsonWebTokens.dll b/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.IdentityModel.JsonWebTokens.dll deleted file mode 100644 index 128620fa8001..000000000000 Binary files a/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.IdentityModel.JsonWebTokens.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.IdentityModel.Logging.dll b/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.IdentityModel.Logging.dll deleted file mode 100644 index c01484d09ee0..000000000000 Binary files a/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.IdentityModel.Logging.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.IdentityModel.Tokens.dll b/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.IdentityModel.Tokens.dll deleted file mode 100644 index a9951cd7ce97..000000000000 Binary files a/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.IdentityModel.Tokens.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll b/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll deleted file mode 100644 index fe3a196669e2..000000000000 Binary files a/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll b/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll deleted file mode 100644 index 9dd66a922eb4..000000000000 Binary files a/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll b/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll deleted file mode 100644 index fc94da922f2d..000000000000 Binary files a/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.dll b/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.dll deleted file mode 100644 index 7cc5b3332cf0..000000000000 Binary files a/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.dll b/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.dll deleted file mode 100644 index 0757328fb79e..000000000000 Binary files a/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.TeamsCmdlets.PowerShell.Connect.dll b/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.TeamsCmdlets.PowerShell.Connect.dll deleted file mode 100644 index 3c946afe94a7..000000000000 Binary files a/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.TeamsCmdlets.PowerShell.Connect.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/GetTeamSettings.format.ps1xml b/Modules/MicrosoftTeams/6.9.0/GetTeamSettings.format.ps1xml deleted file mode 100644 index 00c9545c5f39..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/GetTeamSettings.format.ps1xml +++ /dev/null @@ -1,273 +0,0 @@ - - - - TeamSettings - - Microsoft.Teams.PowerShell.TeamsCmdlets.Model.TeamSettings - - - - - 36 - - - 18 - - - 11 - - - 9 - - - 18 - - - 18 - - - - - - - GroupId - - - DisplayName - - - Visibility - - - Archived - - - MailNickName - - - Description - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.ConfigAPI.Cmdlets.psd1 b/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.ConfigAPI.Cmdlets.psd1 deleted file mode 100644 index bc10001b262c..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.ConfigAPI.Cmdlets.psd1 +++ /dev/null @@ -1,248 +0,0 @@ -@{ - GUID = '82b0bf19-c5cd-4c30-8db4-b458a4b84495' - RootModule = './Microsoft.Teams.ConfigAPI.Cmdlets.psm1' - ModuleVersion = '8.0228.3' - CompatiblePSEditions = 'Core', 'Desktop' - Author="Microsoft Corporation" - CompanyName="Microsoft Corporation" - Copyright="Copyright (c) Microsoft Corporation. All rights reserved." - Description="Microsoft Teams Configuration PowerShell module" - PowerShellVersion = '5.1' - DotNetFrameworkVersion = '4.7.2' - FormatsToProcess = @( - './Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml', - './Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml', - './SfbRpsModule.format.ps1xml') - CmdletsToExport = '*' - FunctionsToExport = '*' - AliasesToExport = '*' - PrivateData = @{ - PSData = @{ - # For dev test set Prerelease to preview. This will ensure devtest module get all preview ECS features. - Prerelease = 'preview' - Tags = '' - LicenseUri = '' - ProjectUri = '' - ReleaseNotes = '' - } - } -} - -# SIG # Begin signature block -# MIIoUgYJKoZIhvcNAQcCoIIoQzCCKD8CAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCASup5JvGHAt2Af -# foI4UJaxkRgQUI8k5rc9HezKii+ZfaCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIOMw -# YPK+2WA12f0aliV6qEAjT68O3VRgFh7ZBow8Jco2MEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAHF42my9dapEYUiYdLV43yq+KyVo7DHFhoRZw -# 4Enkg/w26h2GeK+jQAo40vucCw+YMPHItAKCiO0WowvmnopoxH3JXbYKHMR1AkXL -# MJEUxCB5SAJphdT+Ah95IBM2Z2T1oh6+glDC+NuN18fPyapoIZKTwonxYdfAwOCl -# 1UXyCTQXW9gKBZF/EePyW71A/T6NXyCMf1oVvEZf4H0ATpXDKOLsqeGaOsYBIR3V -# KUdb/rslqXXOO14NN9nSJatMnMLetDaTY99VGMlkzzI1oVK2f1LCO69oXeSkji1k -# GYc5JWEEA/fRZo4HUaAFDONetwRgwRoocfPiBC55TM90KsUu56GCF60wghepBgor -# BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCcDzNk4DJKjigTXszw+WhIGhdpcFJ5LKmx -# JlSgg0E3pgIGZ7YhYKLIGBMyMDI1MDMxMzA4NDcyMy43MTlaMASAAgH0oIHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo0QzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB/xI4 -# fPfBZdahAAEAAAH/MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExOVoXDTI1MTAyMjE4MzExOVowgdMxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv -# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs -# ZCBUU1MgRVNOOjRDMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA -# yeiV0pB7bg8/qc/mkiDdJXnzJWPYgk9mTGeI3pzQpsyrRJREWcKYHd/9db+g3z4d -# U4VCkAZEXqvkxP5QNTtBG5Ipexpph4PhbiJKwvX+US4KkSFhf1wflDAY1tu9CQqh -# hxfHFV7vhtmqHLCCmDxhZPmCBh9/XfFJQIUwVZR8RtUkgzmN9bmWiYgfX0R+bDAn -# ncUdtp1xjGmCpdBMygk/K0h3bUTUzQHb4kPf2ylkKPoWFYn2GNYgWw8PGBUO0vTM -# KjYD6pLeBP0hZDh5P3f4xhGLm6x98xuIQp/RFnzBbgthySXGl+NT1cZAqGyEhT7L -# 0SdR7qQlv5pwDNerbK3YSEDKk3sDh9S60hLJNqP71iHKkG175HAyg6zmE5p3fONr -# 9/fIEpPAlC8YisxXaGX4RpDBYVKpGj0FCZwisiZsxm0X9w6ZSk8OOXf8JxTYWIqf -# RuWzdUir0Z3jiOOtaDq7XdypB4gZrhr90KcPTDRwvy60zrQca/1D1J7PQJAJObbi -# aboi12usV8axtlT/dCePC4ndcFcar1v+fnClhs9u3Fn6LkHDRZfNzhXgLDEwb6dA -# 4y3s6G+gQ35o90j2i6amaa8JsV/cCF+iDSGzAxZY1sQ1mrdMmzxfWzXN6sPJMy49 -# tdsWTIgZWVOSS9uUHhSYkbgMxnLeiKXeB5MB9QMcOScCAwEAAaOCAUkwggFFMB0G -# A1UdDgQWBBTD+pXk/rT/d7E/0QE7hH0wz+6UYTAfBgNVHSMEGDAWgBSfpxVdAF5i -# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv -# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB -# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw -# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp -# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud -# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF -# AAOCAgEAOSNN5MpLiyunm866frWIi0hdazKNLgRp3WZPfhYgPC3K/DNMzLliYQUA -# p6WtgolIrativXjOG1lIjayG9r6ew4H1n5XZdDfJ12DLjopap5e1iU/Yk0eutPyf -# OievfbsIzTk/G51+uiUJk772nVzau6hI2KGyGBJOvAbAVFR0g8ppZwLghT4z3mkG -# Zjq/O4Z/PcmVGtjGps2TCtI4rZjPNW8O4c/4aJRmYQ/NdW91JRrOXRpyXrTKUPe3 -# kN8N56jpl9kotLhdvd89RbOsJNf2XzqbAV7XjV4caCglA2btzDxcyffwXhLu9HMU -# 3dLYTAI91gTNUF7BA9q1EvSlCKKlN8N10Y4iU0nyIkfpRxYyAbRyq5QPYPJHGA0T -# y0PD83aCt79Ra0IdDIMSuwXlpUnyIyxwrDylgfOGyysWBwQ/js249bqQOYPdpyOd -# gRe8tXdGrgDoBeuVOK+cRClXpimNYwr61oZ2/kPMzVrzRUYMkBXe9WqdSezh8tyt -# uulYYcRK95qihF0irQs6/WOQJltQX79lzFXE9FFln9Mix0as+C4HPzd+S0bBN3A3 -# XRROwAv016ICuT8hY1InyW7jwVmN+OkQ1zei66LrU5RtAz0nTxx5OePyjnTaItTS -# Y4OGuGU1SXaH49JSP3t8yGYA/vorbW4VneeD721FgwaJToHFkOIwggdxMIIFWaAD -# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD -# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe -# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv -# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy -# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 -# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 -# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu -# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl -# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg -# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I -# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 -# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ -# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy -# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y -# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H -# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB -# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW -# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B -# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB -# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB -# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL -# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv -# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr -# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS -# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq -# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 -# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv -# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak -# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK -# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 -# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ -# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep -# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk -# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg -# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ -# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo0QzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAqROMbMS8JcUl -# cnPkwRLFRPXFspmggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDANBgkqhkiG9w0BAQsFAAIFAOt89lMwIhgPMjAyNTAzMTMwNjE0NDNaGA8yMDI1 -# MDMxNDA2MTQ0M1owdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA63z2UwIBADAHAgEA -# AgITkjAHAgEAAgIS1DAKAgUA635H0wIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor -# BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUA -# A4IBAQBjXiBIfmb8mso3QC0jpfw1XLsgDe1J2GrBPz2l6zKhGwDlIiMTELS4L2tC -# NAr7hmJmddANUugQWbX1f5GzHi3VypC6ksc+penHzh49bE1w/FBqpNdId1FiKLRm -# QR6agt/A2B2FobCBQkrYuzArAXisQbk+wSzxolFAIX+FOrSM2clzrHsfy6c/PghN -# Fv1T8QFbi7JXOKUschlpoc5XstbdzqK7389WZoPDManxRTGXtk0seugmpcdQPh2S -# atzhbhPKKNEKOE5nXRR+XAiysXyR2n4cPmnSK3kOsTu0PwTxrOgxM6EZSqL/B5aE -# kYILIyzB31JuDSD6uOP+QWBsP2e5MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTACEzMAAAH/Ejh898Fl1qEAAQAAAf8wDQYJYIZIAWUD -# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B -# CQQxIgQgXlkMBiYOcASEns9L6eonyX+akrwNG9ZyM0/WvHdOQ2cwgfoGCyqGSIb3 -# DQEJEAIvMYHqMIHnMIHkMIG9BCDkMu++yQJ3aaycIuMT6vA7JNuMaVOI3qDjSEV8 -# upyn/TCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB -# /xI4fPfBZdahAAEAAAH/MCIEIOO8tJ20S/C8eXmg86ba0sIx4rnO9TTHCILkYZqF -# ABIgMA0GCSqGSIb3DQEBCwUABIICAF/hYoJ2Dj8OK+P/1kST55debhiKpL0Gsv8o -# Icii5E1Nha0rIMvkglk0cm+LmryX9mf9eKeMvSWcfZ/u5OrqbMe9CNifrvD80PVE -# oBd/apM/v+bmKBPidK2IYkOII0FPaeTIApEH+y9JndS0fNPkwPhyyVS2/vtwlgO4 -# DY9ExsDSUPgs9XUZCisLpOjOcLge28pJRwfTxeHYUk7q7gshjlDL0rt2u2wYboBD -# WcL5Sn0ubjdSqQS1ai4tZTd9GpvdNAr+WjK/tTTblTaxxcfFAiGgFQPWhyGt82F9 -# lM5g0JvKLv0cAhTxSrjkvijXfBdDW1O5zFcNuSAVroMEsIWOKjN2ug4BUF2GrSDd -# qh7ij7AHdp9M8ZEjsrPFhr73yWTeIwiQNQY3xgQRZ81vXppfSZULVLQOQuTQgsb7 -# dUE3Y2xqIukRxB0TaRe2PvHCoAgGye6s+d08I0VkI3/GVwg6jpmYDCWFgfQRHyur -# 9Ol6TThBgjged2Ss+zgSTOIsefVjCVSVCXbc9FUnfk71birKRZdhMdNDJZpJCop5 -# 5z4B/BpjPZZsbJikX+3acGmqHF2X6jTnPq/hkrOU8FJUWNVI2hjImUKHuMV82aVS -# f8lUTx7adX/Z/yABI/f9GJ3QisaEeWFZtjVNRWMgn/AVEbkDZBP7LkKJMV70lAaD -# tEujFyUr -# SIG # End signature block diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.ConfigAPI.Cmdlets.psm1 b/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.ConfigAPI.Cmdlets.psm1 deleted file mode 100644 index 3890eca2d6f5..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.ConfigAPI.Cmdlets.psm1 +++ /dev/null @@ -1,268 +0,0 @@ -# region Generated - # Load the private module dll - $null = Import-Module -Name (Join-Path $PSScriptRoot './bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll') - - # Get the private module's instance - $instance = [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Module]::Instance - - # Load the custom module - $customModulePath = Join-Path $PSScriptRoot './custom/Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1' - if(Test-Path $customModulePath) { - $null = Import-Module -Name $customModulePath - } - - # Export nothing to clear implicit exports - Export-ModuleMember - - # Export proxy cmdlet scripts - $exportsPath = Join-Path $PSScriptRoot './exports' - $directories = Get-ChildItem -Directory -Path $exportsPath - $profileDirectory = $null - if($instance.ProfileName) { - if(($directories | ForEach-Object { $_.Name }) -contains $instance.ProfileName) { - $profileDirectory = $directories | Where-Object { $_.Name -eq $instance.ProfileName } - } else { - # Don't export anything if the profile doesn't exist for the module - $exportsPath = $null - Write-Warning "Selected Azure profile '$($instance.ProfileName)' does not exist for module '$($instance.Name)'. No cmdlets were loaded." - } - } elseif(($directories | Measure-Object).Count -gt 0) { - # Load the last folder if no profile is selected - $profileDirectory = $directories | Select-Object -Last 1 - } - - if($profileDirectory) { - Write-Information "Loaded Azure profile '$($profileDirectory.Name)' for module '$($instance.Name)'" - $exportsPath = $profileDirectory.FullName - } - - if($exportsPath) { - Get-ChildItem -Path $exportsPath -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } - $cmdletNames = Get-ScriptCmdlet -ScriptFolder $exportsPath - #Export-ModuleMember -Function $cmdletNames -Alias (Get-ScriptCmdlet -ScriptFolder $exportsPath -AsAlias) - } - - # Finalize initialization of this module - $instance.Init(); - Export-ModuleMember -Function $instance.FunctionsToExport.Split(",") - Write-Information "Loaded Module '$($instance.Name)'" -# endregion - -# SIG # Begin signature block -# MIIoUgYJKoZIhvcNAQcCoIIoQzCCKD8CAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCA11zYyqhtEZno0 -# vnR835d32vg185cJKudkjxJ9lgIViKCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIL/X -# KtNBJBHJGGbe7wFtIYIfMWxPHreyoYsrh/7+1ayVMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAMfEdfyk52HmRebq6uO6SGaL4PYI/P2X++2uT -# JA9POK4hpZq8gnc6ldgsiR2Nw14FEbTDgaarpC9+DGUoepUqmr0aNnqbMNYGnyaV -# 3jAbSLPSAqdD7QPwAyViGT0B9n75eF7eHdk50zv87Wbst6sDMdNyaWHMcZ1Ot1qu -# LtU+g/NRumXqhCxrZVdoWE9CV+DBFsC9wF3Ce/1V9f+63KvoXrqwkms+oQ9HYM+W -# p2XMFPVqInOhrzI/kOfisfBsqsf1iDOURVsPtYphdnK02T/aEwt+MNk768ntfDQX -# 6+2ChH6yKTzo/mPWBBRymux2WgnySxxo0XIvM1mQ1ESnhbCouaGCF60wghepBgor -# BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCA01ZNgWX+yjt4VUad3H9dmP0++hbzbiKlK -# /x157EROwgIGZ7Yy6IKrGBMyMDI1MDMxMzA4NDcyNC43MzJaMASAAgH0oIHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo1MjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAACAAvX -# qn8bKhdWAAEAAAIAMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzEyMVoXDTI1MTAyMjE4MzEyMVowgdMxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv -# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs -# ZCBUU1MgRVNOOjUyMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA -# r1XaadKkP2TkunoTF573/tF7KJM9Doiv3ccv26mqnUhmv2DM59ikET4WnRfo5biF -# IHc6LqrIeqCgT9fT/Gks5VKO90ZQW2avh/PMHnl0kZfX/I5zdVooXHbdUUkPiZfN -# XszWswmL9UlWo8mzyv9Lp9TAtw/oXOYTAxdYSqOB5Uzz1Q3A8uCpNlumQNDJGDY6 -# cSn0MlYukXklArChq6l+KYrl6r/WnOqXSknABpggSsJ33oL3onmDiN9YUApZwjnN -# h9M6kDaneSz78/YtD/2pGpx9/LXELoazEUFxhyg4KdmoWGNYwdR7/id81geOER69 -# l5dJv71S/mH+Lxb6L692n8uEmAVw6fVvE+c8wjgYZblZCNPAynCnDduRLdk1jswC -# qjqNc3X/WIzA7GGs4HUS4YIrAUx8H2A94vDNiA8AWa7Z/HSwTCyIgeVbldXYM2Bt -# xMKq3kneRoT27NQ7Y7n8ZTaAje7Blfju83spGP/QWYNZ1wYzYVGRyOpdA8Wmxq5V -# 8f5r4HaG9zPcykOyJpRZy+V3RGighFmsCJXAcMziO76HinwCIjImnCFKGJ/IbLjH -# 6J7fJXqRPbg+H6rYLZ8XBpmXBFH4PTakZVYxB/P+EQbL5LNw0ZIM+eufxCljV4O+ -# nHkM+zgSx8+07BVZPBKslooebsmhIcBO0779kehciYMCAwEAAaOCAUkwggFFMB0G -# A1UdDgQWBBSAJSTavgkjKqge5xQOXn35fXd3OjAfBgNVHSMEGDAWgBSfpxVdAF5i -# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv -# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB -# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw -# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp -# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud -# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF -# AAOCAgEAKPCG9njRtIqQ+fuECgxzWMsQOI3HvW7sV9PmEWCCOWlTuGCIzNi3ibdL -# ZS0b2IDHg0yLrtdVuBi3FxVdesIXuzYyofIe/alTBdV4DhijLTXtB7NgOno7G12i -# O3t6jy1hPSquzGLry/2mEZBwIsSoS2D+H+3HCJxPDyhzMFqP+plltPACB/QNwZ7q -# +HGyZv3v8et+rQYg8sF3PTuWeDg3dR/zk1NawJ/dfFCDYlWNeCBCLvNPQBceMYXF -# RFKhcSUws7mFdIDDhZpxqyIKD2WDwFyNIGEezn+nd4kXRupeNEx+eSpJXylRD+1d -# 45hb6PzOIF7BkcPtRtFW2wXgkjLqtTWWlBkvzl2uNfYJ3CPZVaDyMDaaXgO+H6Di -# rsJ4IG9ikId941+mWDejkj5aYn9QN6ROfo/HNHg1timwpFoUivqAFu6irWZFw5V+ -# yLr8FLc7nbMa2lFSixzu96zdnDsPImz0c6StbYyhKSlM3uDRi9UWydSKqnEbtJ6M -# k+YuxvzprkuWQJYWfpPvug+wTnioykVwc0yRVcsd4xMznnnRtZDGMSUEl9tMVneb -# YRshwZIyJTsBgLZmHM7q2TFK/X9944SkIqyY22AcuLe0GqoNfASCIcZtzbZ/zP4l -# T2/N0pDbn2ffAzjZkhI+Qrqr983mQZWwZdr3Tk1MYElDThz2D0MwggdxMIIFWaAD -# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD -# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe -# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv -# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy -# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 -# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 -# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu -# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl -# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg -# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I -# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 -# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ -# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy -# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y -# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H -# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB -# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW -# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B -# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB -# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB -# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL -# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv -# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr -# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS -# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq -# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 -# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv -# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak -# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK -# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 -# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ -# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep -# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk -# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg -# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ -# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo1MjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAjJOfLZb3ivip -# L3sSLlWFbLrWjmSggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDANBgkqhkiG9w0BAQsFAAIFAOt9B9owIhgPMjAyNTAzMTMwNzI5MzBaGA8yMDI1 -# MDMxNDA3MjkzMFowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA630H2gIBADAHAgEA -# AgIDZzAHAgEAAgISBzAKAgUA635ZWgIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor -# BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUA -# A4IBAQCVEJHC+AnXHV9s6tO+oub/OObPaD9+v5F5SjN2Q7VMqNT+9+c4GJ0x65qw -# o+IRxnkyZrQA4Ochjogj2k64LwIi39SrqLWl4Zln4xAn9uNO2WiPzctgN7pfp5kw -# 5Qe/9nxJa7AzRzfVYSD7HNTjoxTUYSwMRJ+UUDbrv0WmuUsz7pbGo0fguLwO2Blz -# tl/ZG+qHLn71JKY3bvTn3vrun/+nI95yGVDkm/dcZFK9o2CartRGUzwPURhdEnVj -# JQz6VCaM5MVvLLqTgckJlmxJOXRebD6WGWSrNVoCisgsoB4I37vUJQKEI0NYDMKq -# L4YbCgjiHkIYcbnEPY8A4jsOAIzWMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTACEzMAAAIAC9eqfxsqF1YAAQAAAgAwDQYJYIZIAWUD -# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B -# CQQxIgQgjw+Fer9wTMInrSNFvDCmPtT4I5AczadHs6evHloc1WwwgfoGCyqGSIb3 -# DQEJEAIvMYHqMIHnMIHkMIG9BCDUyO3sNZ3burBNDGUCV4NfM2gH4aWuRudIk/9K -# Ak/ZJzCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAC -# AAvXqn8bKhdWAAEAAAIAMCIEIGDcE9syNzVtu2kd7LlU5esw2Nri7UrxXXYThAWg -# quYLMA0GCSqGSIb3DQEBCwUABIICAHfGs8Kfsl+rTTh+Eqoa3UbtXK6ggC+xIYD5 -# w1LD343A/nQYqOnv06068D1QGt40USAzrA+jnE2rDmEZhITLS9bMi9kLd+W6U8tE -# NhoT1WFupVYS8zqa/O/qwBqUjmfpJlzwkFkz83QhZc4zBBol+iwIfDh8YvzGwtGZ -# kzNE2ruI+sDTFYNq43ZUj70r8mfov+4aB5jr45HQa5IJfjCS1jKOhCetwH2lKkoE -# riv1iBwhc36Vw+CAjfmzppmuEvhCzat2F8SBFIAUVWsfB8VAp+3Vdj2kWfo8aQMd -# IsZkymuVedQJk4xE5/aVF6ZHGfuo3KiKmAtLH/ECoOHQVmRBUW7Z4McAV2msvNHA -# uIBETxarAlfRy0Oa6uL1uu309y6vYK9BiHwiIWwTFGzM0MAsZVkEGcBIC8Chnwld -# Axt0jPwYpCHyXGo549tztj+aIFuJ+P8Cx8iifsC+3J1wpKgbBIdIUdCARWXSptxP -# lJZubuPRInHdR4IM8yiI5afvyjsRX3eZVAXiVxta9M35mVgul+NVuK5/HTLzazPg -# J0/wJ4P9STYojLn0M1dF5at4vbT1vN44hLJG2h5jSxwtXVKrHRIWjGGsnhZyN0UJ -# kJbNJ/BVdoq3ZwZ5XMFczNgdtmvld5jZZFMEQWaMeelJyklxsrdxf/HJvlREZOTS -# +Fobw2gc -# SIG # End signature block diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml b/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml deleted file mode 100644 index 09e691089db7..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml +++ /dev/null @@ -1,252 +0,0 @@ - - - - - OnlineDialinConferencingPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.OnlineDialinConferencingPolicy - - - - - - - - - Identity - - - - AllowService - - - - Description - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoicemail.format.ps1xml b/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoicemail.format.ps1xml deleted file mode 100644 index 0e1c4025d444..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoicemail.format.ps1xml +++ /dev/null @@ -1,291 +0,0 @@ - - - - - OnlineVoicemailPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoicemail.OnlineVoicemailPolicy - - - - - - - - - Identity - - - - Description - - - - EnableTranscription - - - - ShareData - - - - EnableTranscriptionProfanityMasking - - - - EnableEditingCallAnswerRulesSetting - - - - MaximumRecordingLength - - - - EnableTranscriptionTranslation - - - - PrimarySystemPromptLanguage - - - - SecondarySystemPromptLanguage - - - - PreambleAudioFile - - - - PostambleAudioFile - - - - PreamblePostambleMandatory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml b/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml deleted file mode 100644 index 1e293353541d..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml +++ /dev/null @@ -1,252 +0,0 @@ - - - - - TeamsAppPolicyConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.TeamsAppPolicyConfiguration - - - - - - - - - Identity - - - - AppCatalogUri - - - - ResourceUri - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.format.ps1xml b/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.format.ps1xml deleted file mode 100644 index 7044da271008..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.format.ps1xml +++ /dev/null @@ -1,307 +0,0 @@ - - - - - TeamsMeetingConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.TeamsMeetingConfiguration - - - - - - - - - Identity - - - - LogoURL - - - - LegalURL - - - - HelpURL - - - - CustomFooterText - - - - DisableAnonymousJoin - - - - DisableAppInteractionForAnonymousUsers - - - - EnableQoS - - - - ClientAudioPort - - - - ClientAudioPortRange - - - - ClientVideoPort - - - - ClientVideoPortRange - - - - ClientAppSharingPort - - - - ClientAppSharingPortRange - - - - ClientMediaPortRangeEnabled - - - - LimitPresenterRolePermissions - - - - FeedbackSurveyForAnonymousUsers - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml b/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml deleted file mode 100644 index 6b4be06706e4..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml +++ /dev/null @@ -1,248 +0,0 @@ - - - - - TeamsMigrationConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.TeamsMigrationConfiguration - - - - - - - - - Identity - - - - EnableLegacyClientInterop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml b/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml deleted file mode 100644 index fa38c3c29585..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml +++ /dev/null @@ -1,248 +0,0 @@ - - - - - TeamsMultiTenantOrganizationConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.TeamsMultiTenantOrganizationConfiguration - - - - - - - - - Identity - - - - CopilotFromHomeTenant - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml b/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml deleted file mode 100644 index c8c8f6a75bc6..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml +++ /dev/null @@ -1,299 +0,0 @@ - - - - - TeamsRoutingConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.TeamsRoutingConfiguration - - - - - - - - - Identity - - - - VoiceGatewayFqdn - - - - EnableMessagingGatewayProxy - - - - MessagingConversationRequestUrl - - - - MessagingConversationResponseUrl - - - - MgwRedirectUrlTemplate - - - - EnablePoollessTeamsOnlyUserFlighting - - - - EnablePoollessTeamsOnlyCallingFlighting - - - - EnablePoollessTeamsOnlyMessagingFlighting - - - - EnablePoollessTeamsOnlyConferencingFlighting - - - - EnablePoollessTeamsOnlyPresenceFlighting - - - - HybridEdgeFqdn - - - - DisableTeamsOnlyUsersConfCreateFlighting - - - - TenantDisabledForTeamsOnlyUsersConfCreate - - - - EnableTenantLevelPolicyCheck - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSipDevicesConfiguration.format.ps1xml b/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSipDevicesConfiguration.format.ps1xml deleted file mode 100644 index 1aa94d889ee2..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSipDevicesConfiguration.format.ps1xml +++ /dev/null @@ -1,247 +0,0 @@ - - - - - TeamsSipDevicesConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSipDevicesConfiguration.TeamsSipDevicesConfiguration - - - - - - - - - Identity - - - - BulkSignIn - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.format.ps1xml b/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.format.ps1xml deleted file mode 100644 index 1cca235d6519..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.format.ps1xml +++ /dev/null @@ -1,298 +0,0 @@ - - - - - TenantConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.TenantConfiguration - - - - - - - - - Identity - - - - MaxAllowedDomains - - - - MaxBlockedDomains - - - - - - - - TenantLicensingConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.TenantLicensingConfiguration - - - - - - - - - Identity - - - - Status - - - - - - - - TenantWebServiceConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.TenantWebServiceConfiguration - - - - - - - - - Identity - - - - CertificateValidityPeriodInHours - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml b/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml deleted file mode 100644 index 88e26537fbe9..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml +++ /dev/null @@ -1,251 +0,0 @@ - - - - - OnlineVoicemailValidationConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.OnlineVoicemailValidationConfiguration - - - - - - - - - Identity - - - - AudioFileValidationEnabled - - - - AudioFileValidationUri - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1 b/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1 deleted file mode 100644 index 6c588c7f420b..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1 +++ /dev/null @@ -1,570 +0,0 @@ -# -# Module manifest for module 'Microsoft.Teams.Policy.Administration.Core' -# - -@{ -# Script module or binary module file associated with this manifest. -RootModule = './Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1' - -# Version number of this module. -ModuleVersion = '14.1.41' - -# Supported PSEditions -CompatiblePSEditions = 'Core', 'Desktop' - -# ID used to uniquely identify this module -GUID = '048c99d9-471a-4935-a810-542687c5f950' - -# Author of this module -Author = 'Microsoft Corporation' - -# Company or vendor of this module -CompanyName = 'Microsoft Corporation' - -# Copyright statement for this module -Copyright = 'Microsoft Corporation. All rights reserved.' - -# Description of the functionality provided by this module -Description = 'Microsoft Teams OCE cmdlets module for Policy Administration' - -# Minimum version of the Windows PowerShell engine required by this module -PowerShellVersion = '5.1' - -# Name of the Windows PowerShell host required by this module -# PowerShellHostName = '' - -# Minimum version of the Windows PowerShell host required by this module -# PowerShellHostVersion = '' - -# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -DotNetFrameworkVersion = '4.7.2' - -# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -CLRVersion = '4.0' - -# Processor architecture (None, X86, Amd64) required by this module -# ProcessorArchitecture = 'Amd64' - -# Modules that must be imported into the global environment prior to importing this module -# RequiredModules = @() - -# Assemblies that must be loaded prior to importing this module -# RequiredAssemblies = @() - -# Script files (.ps1) that are run in the caller's environment prior to importing this module. -# Removed this script from here because this module is used in SAW machines as well where Contraint Language Mode is on. -# Because of CLM constraint we were not able to import Teams module to SAW machines, that is why removing this script. -# ScriptsToProcess = @() - -# Type files (.ps1xml) to be loaded when importing this module -# TypesToProcess = @() - -# Format files (.ps1xml) to be loaded when importing this module -FormatsToProcess = @() - -# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess -NestedModules = @() - -# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. -FunctionsToExport = '*' - -# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. -CmdletsToExport = @( - 'New-CsTeamsAppSetupPolicy', - 'Get-CsTeamsAppSetupPolicy', - 'Remove-CsTeamsAppSetupPolicy', - 'Set-CsTeamsAppSetupPolicy', - 'Grant-CsTeamsAppSetupPolicy', - - - 'New-CsTeamsAppPermissionPolicy', - 'Get-CsTeamsAppPermissionPolicy', - 'Remove-CsTeamsAppPermissionPolicy', - 'Set-CsTeamsAppPermissionPolicy', - 'Grant-CsTeamsAppPermissionPolicy', - - 'New-CsTeamsMessagingPolicy', - 'Set-CsTeamsMessagingPolicy', - 'Get-CsTeamsMessagingPolicy', - 'Remove-CsTeamsMessagingPolicy', - - 'New-CsTeamsChannelsPolicy', - 'Get-CsTeamsChannelsPolicy', - 'Remove-CsTeamsChannelsPolicy', - 'Set-CsTeamsChannelsPolicy', - - 'New-CsTeamsUpdateManagementPolicy', - 'Get-CsTeamsUpdateManagementPolicy', - 'Remove-CsTeamsUpdateManagementPolicy', - 'Set-CsTeamsUpdateManagementPolicy', - - 'Get-CsTeamsUpgradeConfiguration', - 'Set-CsTeamsUpgradeConfiguration', - - 'New-CsTeamsMeetingPolicy', - 'Get-CsTeamsMeetingPolicy', - 'Remove-CsTeamsMeetingPolicy', - 'Set-CsTeamsMeetingPolicy', - - 'Get-CsOnlineVoicemailPolicy', - 'New-CsOnlineVoicemailPolicy', - 'Remove-CsOnlineVoicemailPolicy', - 'Set-CsOnlineVoicemailPolicy', - - 'Get-CsOnlineVoicemailValidationConfiguration', - 'Set-CsOnlineVoicemailValidationConfiguration', - - 'New-CsTeamsFeedbackPolicy', - 'Get-CsTeamsFeedbackPolicy', - 'Remove-CsTeamsFeedbackPolicy', - 'Set-CsTeamsFeedbackPolicy', - - 'New-CsTeamsMeetingBrandingPolicy', - 'Get-CsTeamsMeetingBrandingPolicy', - 'Remove-CsTeamsMeetingBrandingPolicy', - 'Set-CsTeamsMeetingBrandingPolicy', - 'Grant-CsTeamsMeetingBrandingPolicy' - - 'New-CsTeamsMeetingBrandingTheme', - 'New-CsTeamsMeetingBackgroundImage', - 'New-CsTeamsNdiAssuranceSlate', - - 'New-CsTeamsEmergencyCallingPolicy', - 'Get-CsTeamsEmergencyCallingPolicy', - 'Remove-CsTeamsEmergencyCallingPolicy', - 'Set-CsTeamsEmergencyCallingPolicy', - 'New-CsTeamsEmergencyCallingExtendedNotification', - - 'New-CsTeamsCallHoldPolicy', - 'Get-CsTeamsCallHoldPolicy', - 'Remove-CsTeamsCallHoldPolicy', - 'Set-CsTeamsCallHoldPolicy', - - 'Get-CsOnlineVoicemailValidationConfiguration', - 'Set-CsOnlineVoicemailValidationConfiguration', - 'Get-CsTeamsMessagingConfiguration', - 'Set-CsTeamsMessagingConfiguration', - - 'New-CsTeamsVoiceApplicationsPolicy', - 'Get-CsTeamsVoiceApplicationsPolicy', - 'Remove-CsTeamsVoiceApplicationsPolicy', - 'Set-CsTeamsVoiceApplicationsPolicy', - - 'New-CsTeamsHiddenMeetingTemplate', - - 'New-CsTeamsMeetingTemplatePermissionPolicy', - 'Get-CsTeamsMeetingTemplatePermissionPolicy', - 'Set-CsTeamsMeetingTemplatePermissionPolicy', - 'Remove-CsTeamsMeetingTemplatePermissionPolicy', - 'Grant-CsTeamsMeetingTemplatePermissionPolicy', - - "Get-CsTeamsAudioConferencingCustomPromptsConfiguration", - "Set-CsTeamsAudioConferencingCustomPromptsConfiguration", - "New-CsCustomPrompt", - "New-CsCustomPromptPackage", - - 'Get-CsTeamsMeetingTemplateConfiguration', - 'Get-CsTeamsFirstPartyMeetingTemplateConfiguration', - - 'New-CsTeamsEventsPolicy', - 'Get-CsTeamsEventsPolicy', - 'Remove-CsTeamsEventsPolicy', - 'Set-CsTeamsEventsPolicy', - 'Grant-CsTeamsEventsPolicy', - - 'New-CsTeamsCallingPolicy', - 'Get-CsTeamsCallingPolicy', - 'Remove-CsTeamsCallingPolicy', - 'Set-CsTeamsCallingPolicy', - 'Grant-CsTeamsCallingPolicy', - - 'New-CsExternalAccessPolicy', - 'Get-CsExternalAccessPolicy', - 'Remove-CsExternalAccessPolicy', - 'Set-CsExternalAccessPolicy', - 'Grant-CsExternalAccessPolicy', - - 'Get-CsTeamsMultiTenantOrganizationConfiguration', - 'Set-CsTeamsMultiTenantOrganizationConfiguration', - - 'New-CsLocationPolicy', - 'Get-CsLocationPolicy', - 'Remove-CsLocationPolicy', - 'Set-CsLocationPolicy', - - 'New-CsTeamsCarrierEmergencyCallRoutingPolicy', - 'Get-CsTeamsCarrierEmergencyCallRoutingPolicy', - 'Remove-CsTeamsCarrierEmergencyCallRoutingPolicy', - 'Set-CsTeamsCarrierEmergencyCallRoutingPolicy', - 'Grant-CsTeamsCarrierEmergencyCallRoutingPolicy', - - 'Get-CsTenantConfiguration', - 'Set-CsTenantConfiguration', - - 'Get-CsTenantNetworkSite', - - 'New-CsTeamsShiftsPolicy', - 'Get-CsTeamsShiftsPolicy', - 'Remove-CsTeamsShiftsPolicy', - 'Set-CsTeamsShiftsPolicy', - 'Grant-CsTeamsShiftsPolicy', - - 'New-CsTeamsHiddenTemplate', - - 'New-CsTeamsTemplatePermissionPolicy', - 'Get-CsTeamsTemplatePermissionPolicy', - 'Remove-CsTeamsTemplatePermissionPolicy', - 'Set-CsTeamsTemplatePermissionPolicy', - - 'Get-CsTeamsAppPolicyConfiguration', - 'Set-CsTeamsAppPolicyConfiguration', - - 'Get-CsTeamsSipDevicesConfiguration', - 'Set-CsTeamsSipDevicesConfiguration', - - 'New-CsTeamsVirtualAppointmentsPolicy', - 'Get-CsTeamsVirtualAppointmentsPolicy', - 'Remove-CsTeamsVirtualAppointmentsPolicy', - 'Set-CsTeamsVirtualAppointmentsPolicy', - 'Grant-CsTeamsVirtualAppointmentsPolicy', - - 'New-CsTeamsComplianceRecordingPolicy', - 'Get-CsTeamsComplianceRecordingPolicy', - 'Remove-CsTeamsComplianceRecordingPolicy', - 'Set-CsTeamsComplianceRecordingPolicy', - - 'New-CsTeamsComplianceRecordingApplication', - 'Get-CsTeamsComplianceRecordingApplication', - 'Remove-CsTeamsComplianceRecordingApplication', - 'Set-CsTeamsComplianceRecordingApplication', - - 'New-CsTeamsComplianceRecordingPairedApplication', - - 'New-CsTeamsSharedCallingRoutingPolicy', - 'Get-CsTeamsSharedCallingRoutingPolicy', - 'Remove-CsTeamsSharedCallingRoutingPolicy', - 'Set-CsTeamsSharedCallingRoutingPolicy', - 'Grant-CsTeamsSharedCallingRoutingPolicy', - - 'New-CsTeamsVdiPolicy', - 'Get-CsTeamsVdiPolicy', - 'Remove-CsTeamsVdiPolicy', - 'Set-CsTeamsVdiPolicy', - 'Grant-CsTeamsVdiPolicy', - - 'Get-CsTeamsMeetingConfiguration', - 'Set-CsTeamsMeetingConfiguration', - - 'New-CsTeamsCustomBannerText', - 'Get-CsTeamsCustomBannerText', - 'Set-CsTeamsCustomBannerText', - 'Remove-CsTeamsCustomBannerText', - - 'Get-CsTeamsEducationConfiguration', - 'Set-CsTeamsEducationConfiguration', - - 'New-CsTeamsWorkLocationDetectionPolicy', - 'Get-CsTeamsWorkLocationDetectionPolicy', - 'Remove-CsTeamsWorkLocationDetectionPolicy', - 'Set-CsTeamsWorkLocationDetectionPolicy', - 'Grant-CsTeamsWorkLocationDetectionPolicy', - - 'New-CsTeamsMediaConnectivityPolicy', - 'Get-CsTeamsMediaConnectivityPolicy', - 'Remove-CsTeamsMediaConnectivityPolicy', - 'Set-CsTeamsMediaConnectivityPolicy', - 'Grant-CsTeamsMediaConnectivityPolicy', - - 'New-CsTeamsRecordingRollOutPolicy', - 'Get-CsTeamsRecordingRollOutPolicy', - 'Remove-CsTeamsRecordingRollOutPolicy', - 'Set-CsTeamsRecordingRollOutPolicy', - 'Grant-CsTeamsRecordingRollOutPolicy', - - 'New-CsTeamsFilesPolicy', - 'Get-CsTeamsFilesPolicy', - 'Remove-CsTeamsFilesPolicy', - 'Set-CsTeamsFilesPolicy', - 'Grant-CsTeamsFilesPolicy', - - 'Get-CsTeamsExternalAccessConfiguration', - 'Set-CsTeamsExternalAccessConfiguration', - - 'New-CsConversationRole', - 'Remove-CsConversationRole', - 'Get-CsConversationRole', - 'Set-CsConversationRole', - - 'Get-CsConversationRolesSetting', - 'Set-CsConversationRolesSetting', - - 'Get-CsTeamsAIPolicy', - 'Set-CsTeamsAIPolicy', - 'New-CsTeamsAIPolicy', - 'Remove-CsTeamsAIPolicy', - 'Grant-CsTeamsAIPolicy', - - 'New-CsTeamsBYODAndDesksPolicy', - 'Get-CsTeamsBYODAndDesksPolicy', - 'Remove-CsTeamsBYODAndDesksPolicy', - 'Set-CsTeamsBYODAndDesksPolicy', - 'Grant-CsTeamsBYODAndDesksPolicy', - - 'Get-CsTeamsTenantAbuseConfiguration', - 'Set-CsTeamsTenantAbuseConfiguration', - - 'Get-CsTeamsEducationAssignmentsAppPolicy', - 'Set-CsTeamsEducationAssignmentsAppPolicy', - - 'Get-CsPrivacyConfiguration', - 'Set-CsPrivacyConfiguration', - - 'Get-CsTeamsNotificationAndFeedsPolicy', - 'Set-CsTeamsNotificationAndFeedsPolicy', - 'Remove-CsTeamsNotificationAndFeedsPolicy' - - 'Get-CsTeamsClientConfiguration', - 'Set-CsTeamsClientConfiguration' -) - -# Variables to export from this module -VariablesToExport = @() - -# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. -AliasesToExport = @() - -# DSC resources to export from this module -# DscResourcesToExport = @() - -# List of all modules packaged with this module -# ModuleList = @() - -# List of all files packaged with this module -# FileList = @() - -# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. -PrivateData = @{} - -# HelpInfo URI of this module -# HelpInfoURI = '' - -# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. -# DefaultCommandPrefix = '' -} -# SIG # Begin signature block -# MIIoRQYJKoZIhvcNAQcCoIIoNjCCKDICAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCANAK8NLwgKddO1 -# 9Yig7LqADOvFdgAd/ZjVP4Qk4mEa+6CCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGiUwghohAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIDvW1VEWkKR+opQJ0eNZagku -# BtzDJSdiqsBWxcY8oFA+MEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEASOXr5mkipagNQf0tik6FfDw1h8hgp3oYkYtdZYNypJrXeBPDHhryozc1 -# stXOSWx2DJTE5DMhxv8Qk0qTH4u/pXXvZ//p57MTV4Puw5G09v5yzLA5fNJFz+gA -# iSo1OeL5Chspa77YPYNk/cfYI7BzgM+kgEBdvJjpkHUNrqOykhyCasEY3mc1ea9k -# dHJh0aYReaBH7NWhZwY9dcOeZToTg5dz26293qVTmvyvD+Jvus+dE5NWPqYVSRfJ -# hoDBY39q4tIj+T8F8+U3O1/A6ATAiSLSkSc5VBLdjp8Q7u1nehV52AJ7YNWK98DC -# OVf6C98rVdamTVT20cbEwiwPwuz+iKGCF68wgherBgorBgEEAYI3AwMBMYIXmzCC -# F5cGCSqGSIb3DQEHAqCCF4gwgheEAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFZBgsq -# hkiG9w0BCRABBKCCAUgEggFEMIIBQAIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCC0YoIGIev5IeW7k0coL1hC0mtSBTJnRHltfVrOOued9AIGZ7Ypj94Y -# GBIyMDI1MDMxMzA4NDcyMi42NlowBIACAfSggdmkgdYwgdMxCzAJBgNVBAYTAlVT -# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVs -# YW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNO -# OjU5MUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBT -# ZXJ2aWNloIIR/jCCBygwggUQoAMCAQICEzMAAAH0F0aFwMs/OeUAAQAAAfQwDQYJ -# KoZIhvcNAQELBQAwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwHhcNMjQw -# NzI1MTgzMDU5WhcNMjUxMDIyMTgzMDU5WjCB0zELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEtMCsGA1UECxMkTWljcm9zb2Z0IElyZWxhbmQgT3Bl -# cmF0aW9ucyBMaW1pdGVkMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046NTkxQS0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Uw -# ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnCE4TptCAL2qriMkZfYDX -# Kg5t+TSp61DySSP7mbftYHEOWxnmgmeN/Meymo+I4RXNnbLbKAaA1nf/F1lA3t/0 -# DVanUB2HmoddlmHdIFfwAG5zr1NvdwnkoJlxcOy5/CZd4KPzUTMkQhmq5V1XxJOV -# C54H9vUwhi3lEqKze7DN2V9KXRyQdsbOg73VhMqDogTGopiiMat4KimcgrE6+Svl -# VmyPZ/3kFvUsYS+6EEib8LsnKy8m8FlY22uynPJdWe6j6QMTJnCmSmGxHxm92L6z -# +lCKh+Z1tbVSrNaWpdBWChhdtpiQTJpKH+F4G3CPW2574ty45wcA+BvBm9AuSwpo -# rjqiS2t6A5Hh7SJywaIBZH0gv6fLiaUJQ0DzgXsYQRY4S+JuKDvCytNrplvO4yzJ -# OLYDPio9XdBGQWDFJunhHg4QqeKfwnPhcsjXBeEGEikwZ8DcFPznSepqbNKIPkvm -# nH5W18KLQwlNLYsMXU9pVnCXJVkhWNUcryiHYdgb1PboWNH38jzmLkTHGaEenEzZ -# n5SEl5kDovPjnab/7GsDjGt1hqzlybsVSHLbis8tUf4XL5nLAcCn1z2hZOu2N8gq -# osi9i2AlzjVDxbFtk9HsHW5+3wEWy/PZ05IuTE8MtxdbLXoA3Lve/SKkLEDBQQL2 -# GyyLQt0HxOGI1//gD5FnywIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFCt0ZaEK0Sw+ -# J3UsnOxNotMpBt+bMB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8G -# A1UdHwRYMFYwVKBSoFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMv -# Y3JsL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBs -# BggrBgEFBQcBAQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0 -# LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUy -# MDIwMTAoMSkuY3J0MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUH -# AwgwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4ICAQDdwdIPEkpQOyBp -# wh9FfrS6A4NKGwGrC0RRFRtRd4OZhhJrmgWPfhG6NbeA54K385sM7jm9+mdgbk5L -# lijDCwXDX2CIIjolX5xwb+qozTyfEBJvPBa2q2ivNCImH26mwThNVl4pheZvLHtY -# 3211tUisJ6VWPs/qJ8wdNIu3oGbKhLbGULZx+Ao88DXe9Ld66pSXrPB7sYCGN+M1 -# eMqUThI1Ym92qCu/QZREqOqZqY2+GZIlqd7pNjOl0MJ6Crxp2UYfzkjURYqZ8RFv -# WXMrLk4w7Z70iQCW/J2lS6fQLew0S2nR6GWJPRKtqryNxhUMfgDYL8xssEjCKSPC -# IUZDhKUUtPZOBvga++lxZXMHHAOj0hEHCnOeBvLNuGH3lRU6tAvattYescNITd2B -# 0vbK5odGBjsdhguzku2zfTBT066Hw3nhFS1roYVkXHkDi4hODIlxV1ZVo3SqOzR4 -# SPATI1S/RxEu4dYkF6OQx7epECG8KOeGujsMZFZoiV3J/NmqWfoWyctDduX5m9Ul -# ZNgm4v4hksjZKLcishF+Nxyfb1fYFf+/PYpxi5siMrpd9i+tlA3hcpue9KoE0DAg -# 9jbEl4Hij08MQUjatw9otTLPkhXsk/clGmCDfGxSq8UeVIbq4whaPAfQZAgjCsLb -# NHL6U1mw4qeu7LIcxBM/uPLlT3aoQTCCB3EwggVZoAMCAQICEzMAAAAVxedrngKb -# SZkAAAAAABUwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQI -# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv -# ZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmlj -# YXRlIEF1dGhvcml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIy -# NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT -# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE -# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXI -# yjVX9gF/bErg4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjo -# YH1qUoNEt6aORmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1y -# aa8dq6z2Nr41JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v -# 3byNpOORj7I5LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pG -# ve2krnopN6zL64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viS -# kR4dPf0gz3N9QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYr -# bqgSUei/BQOj0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlM -# jgK8QmguEOqEUUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSL -# W6CmgyFdXzB0kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AF -# emzFER1y7435UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIu -# rQIDAQABo4IB3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIE -# FgQUKqdS/mTEmr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWn -# G1M1GelyMFwGA1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEW -# M2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5 -# Lmh0bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBi -# AEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV -# 9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3Js -# Lm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAx -# MC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2 -# LTIzLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv -# 6lwUtj5OR2R4sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZn -# OlNN3Zi6th542DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1 -# bSNU5HhTdSRXud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4 -# rPf5KYnDvBewVIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU -# 6ZGyqVvfSaN0DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDF -# NLB62FD+CljdQDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/ -# HltEAY5aGZFrDZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdU -# CbFpAUR+fKFhbHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKi -# excdFYmNcP7ntdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTm -# dHRbatGePu1+oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZq -# ELQdVTNYs6FwZvKhggNZMIICQQIBATCCAQGhgdmkgdYwgdMxCzAJBgNVBAYTAlVT -# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVs -# YW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNO -# OjU5MUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBT -# ZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQC/4tn9WDSzXtd6TiIb1H1z/v4AjqCBgzCB -# gKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUA -# AgUA63z+gTAiGA8yMDI1MDMxMzA2NDkzN1oYDzIwMjUwMzE0MDY0OTM3WjB3MD0G -# CisGAQQBhFkKBAExLzAtMAoCBQDrfP6BAgEAMAoCAQACAgb8AgH/MAcCAQACAhMe -# MAoCBQDrflABAgEAMDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwKgCjAI -# AgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZIhvcNAQELBQADggEBAJugOwKeAhMG -# OAjBxYtfOPkD/1lTdB5qTMa7Aya2e/5vGGvwMMwO7ACKcIgL2Bt43ehshHrJRRrt -# rGWwhjb02OSgc1mWJSUeAFsbOy7Kob8cjvhL8o1QOmOmX6lpIUp2OtefY1oTGELX -# Wb6K1XsWjdBFLRHXpOPFJkHLoB9ytwbWosmUHgwgIeEgDuSA24UX1bu34bsU4ciF -# P5c8T2GfBgSD/LMYIOCbXppgV9HDr1a5O8wTfPrJj/m6nmXNZIEqq3eVMjVDWQ8d -# A1csciDpllLU+MrE1cycO+85adsvtr4jmsOhiZcRrCL7Lhqw1D/lYy6cYGbxrQXd -# 77hx07DrMV8xggQNMIIECQIBATCBkzB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMK -# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 -# IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0Eg -# MjAxMAITMwAAAfQXRoXAyz855QABAAAB9DANBglghkgBZQMEAgEFAKCCAUowGgYJ -# KoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8GCSqGSIb3DQEJBDEiBCApLD6jPJnZ -# zK61UfDSoarUOuE190X3/u5jaKDRjYl+lTCB+gYLKoZIhvcNAQkQAi8xgeowgecw -# geQwgb0EID9YwnxuJpPqeO+SScHxDuFJAiLzKzq8gG9mDrREGNZrMIGYMIGApH4w -# fDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1Jl -# ZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMd -# TWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH0F0aFwMs/OeUAAQAA -# AfQwIgQgeyvumxbXmilnjXajcZKwkCkngQLQaAb7YPoPXSRjUCcwDQYJKoZIhvcN -# AQELBQAEggIAIx2BKQnTNsUdEcJRpObNP03hdV9aHf6DacA075s1rYKP1j8LPeKJ -# yoRzbbtkZuuY05XIXwzwk6y5JFRbmTnqLBhJlTISC1l6FJUs0rdeGc9sz226PEsm -# JatlPaxBh8s2dAhykKhqEq3HCnMC2jMtaH7e8elAj943agLzmwGF9/I1RVuCQSGk -# yzltB/RFURaffc1uKkRcmE/Fz4QckNRdK/U/63otWDlSFZz4+U8J6qWDmy7ZZcR+ -# x072UDS1bEeZeYRwDQ1xVmghfu2KZjFG2a8IyWD6bajV4IQgAeUG2qnKvzGYok7k -# viLdhNwR53PY8HL67Hu2I1jNb9Kt1nlIP573CW/6ISHBHWGdiUrKH/uFJZqYL72p -# 90qFV7yEUugGLs1hSPkS1kVMT+veNgE7kFEtAD3GE6v0ngLHKJNVaojpxmaWZWpH -# /3RYr6yrlxmrtErSTuTnzIEelQHTdAWSRDzdTNNBJqZLcyTaYAcWydUX2uYld3AK -# 5ebG7YcjarTz3NfA7rFpPv3Th//XRDMHgJ1lbUyNTPctmWO2NtgfpwKh934YyYzE -# NXGymWnuoGrM9ygiq5/X2XlRVpWrSn1XD6/SpI4Hd5PECCgWjIkabuNZvwY1kwvv -# 5EtSaGR3jKn2E5Go75wqZObN0VQWuDaGH9QF1F+nKePZ0NY4M+mWlJ0= -# SIG # End signature block diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1 b/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1 deleted file mode 100644 index 42b6ecf9a589..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1 +++ /dev/null @@ -1,529 +0,0 @@ -# -# Module manifest for module 'Microsoft.Teams.Policy.Administration.Core' -# - -@{ -# Script module or binary module file associated with this manifest. -RootModule = './Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1' - -# Version number of this module. -ModuleVersion = '14.1.41' - -# Supported PSEditions -CompatiblePSEditions = 'Core', 'Desktop' - -# ID used to uniquely identify this module -GUID = '048c99d9-471a-4935-a810-542687c5f950' - -# Author of this module -Author = 'Microsoft Corporation' - -# Company or vendor of this module -CompanyName = 'Microsoft Corporation' - -# Copyright statement for this module -Copyright = 'Microsoft Corporation. All rights reserved.' - -# Description of the functionality provided by this module -Description = 'Microsoft Teams preview cmdlets module for Policy Administration' - -# Minimum version of the Windows PowerShell engine required by this module -PowerShellVersion = '5.1' - -# Name of the Windows PowerShell host required by this module -# PowerShellHostName = '' - -# Minimum version of the Windows PowerShell host required by this module -# PowerShellHostVersion = '' - -# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -DotNetFrameworkVersion = '4.7.2' - -# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -CLRVersion = '4.0' - -# Processor architecture (None, X86, Amd64) required by this module -# ProcessorArchitecture = 'Amd64' - -# Modules that must be imported into the global environment prior to importing this module -# RequiredModules = @() - -# Assemblies that must be loaded prior to importing this module -# RequiredAssemblies = @() - -# Script files (.ps1) that are run in the caller's environment prior to importing this module. -# Removed this script from here because this module is used in SAW machines as well where Contraint Language Mode is on. -# Because of CLM constraint we were not able to import Teams module to SAW machines, that is why removing this script. -# ScriptsToProcess = @() - -# Type files (.ps1xml) to be loaded when importing this module -# TypesToProcess = @() - -# Format files (.ps1xml) to be loaded when importing this module -FormatsToProcess = @() - -# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess -NestedModules = @() - -# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. -FunctionsToExport = '*' - -# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. -CmdletsToExport = @( - 'New-CsTeamsAppSetupPolicy', - 'Get-CsTeamsAppSetupPolicy', - 'Remove-CsTeamsAppSetupPolicy', - 'Set-CsTeamsAppSetupPolicy', - 'Grant-CsTeamsAppSetupPolicy', - - 'New-CsTeamsAppPermissionPolicy', - 'Get-CsTeamsAppPermissionPolicy', - 'Remove-CsTeamsAppPermissionPolicy', - 'Set-CsTeamsAppPermissionPolicy', - 'Grant-CsTeamsAppPermissionPolicy', - - 'New-CsTeamsMessagingPolicy', - 'Get-CsTeamsMessagingPolicy', - 'Remove-CsTeamsMessagingPolicy', - 'Set-CsTeamsMessagingPolicy', - - 'New-CsTeamsChannelsPolicy', - 'Get-CsTeamsChannelsPolicy', - 'Remove-CsTeamsChannelsPolicy', - 'Set-CsTeamsChannelsPolicy', - - 'New-CsTeamsUpdateManagementPolicy', - 'Get-CsTeamsUpdateManagementPolicy', - 'Remove-CsTeamsUpdateManagementPolicy', - 'Set-CsTeamsUpdateManagementPolicy', - - 'Get-CsTeamsUpgradeConfiguration', - 'Set-CsTeamsUpgradeConfiguration', - - 'Get-CsTeamsSipDevicesConfiguration', - 'Set-CsTeamsSipDevicesConfiguration', - - 'New-CsTeamsMeetingPolicy', - 'Get-CsTeamsMeetingPolicy', - 'Remove-CsTeamsMeetingPolicy', - 'Set-CsTeamsMeetingPolicy', - - 'New-CsOnlineVoicemailPolicy', - 'Get-CsOnlineVoicemailPolicy', - 'Remove-CsOnlineVoicemailPolicy', - 'Set-CsOnlineVoicemailPolicy', - - 'New-CsTeamsFeedbackPolicy', - 'Get-CsTeamsFeedbackPolicy', - 'Remove-CsTeamsFeedbackPolicy', - 'Set-CsTeamsFeedbackPolicy', - - 'New-CsTeamsMeetingBrandingPolicy', - 'Get-CsTeamsMeetingBrandingPolicy', - 'Remove-CsTeamsMeetingBrandingPolicy', - 'Set-CsTeamsMeetingBrandingPolicy', - 'Grant-CsTeamsMeetingBrandingPolicy' - - 'New-CsTeamsMeetingBrandingTheme', - 'New-CsTeamsMeetingBackgroundImage', - 'New-CsTeamsNdiAssuranceSlate', - - 'New-CsTeamsEmergencyCallingPolicy', - 'Get-CsTeamsEmergencyCallingPolicy', - 'Remove-CsTeamsEmergencyCallingPolicy', - 'Set-CsTeamsEmergencyCallingPolicy', - 'New-CsTeamsEmergencyCallingExtendedNotification', - - 'New-CsTeamsCallHoldPolicy', - 'Get-CsTeamsCallHoldPolicy', - 'Remove-CsTeamsCallHoldPolicy', - 'Set-CsTeamsCallHoldPolicy', - - 'Get-CsTeamsMessagingConfiguration', - 'Set-CsTeamsMessagingConfiguration', - - 'New-CsTeamsVoiceApplicationsPolicy', - 'Get-CsTeamsVoiceApplicationsPolicy', - 'Remove-CsTeamsVoiceApplicationsPolicy', - 'Set-CsTeamsVoiceApplicationsPolicy', - - "Get-CsTeamsAudioConferencingCustomPromptsConfiguration", - "Set-CsTeamsAudioConferencingCustomPromptsConfiguration", - "New-CsCustomPrompt", - "New-CsCustomPromptPackage", - - 'New-CsTeamsEventsPolicy', - 'Get-CsTeamsEventsPolicy', - 'Remove-CsTeamsEventsPolicy', - 'Set-CsTeamsEventsPolicy', - 'Grant-CsTeamsEventsPolicy', - - 'New-CsTeamsCallingPolicy', - 'Get-CsTeamsCallingPolicy', - 'Remove-CsTeamsCallingPolicy', - 'Set-CsTeamsCallingPolicy', - 'Grant-CsTeamsCallingPolicy', - - 'New-CsExternalAccessPolicy', - 'Get-CsExternalAccessPolicy', - 'Remove-CsExternalAccessPolicy', - 'Set-CsExternalAccessPolicy', - 'Grant-CsExternalAccessPolicy', - - 'Get-CsTeamsMultiTenantOrganizationConfiguration', - 'Set-CsTeamsMultiTenantOrganizationConfiguration', - - 'New-CsTeamsHiddenMeetingTemplate', - - 'New-CsTeamsMeetingTemplatePermissionPolicy', - 'Get-CsTeamsMeetingTemplatePermissionPolicy', - 'Set-CsTeamsMeetingTemplatePermissionPolicy', - 'Remove-CsTeamsMeetingTemplatePermissionPolicy', - 'Grant-CsTeamsMeetingTemplatePermissionPolicy', - - 'Get-CsTeamsMeetingTemplateConfiguration', - 'Get-CsTeamsFirstPartyMeetingTemplateConfiguration', - - 'Get-CsTenantNetworkSite', - - 'New-CsTeamsShiftsPolicy', - 'Get-CsTeamsShiftsPolicy', - 'Remove-CsTeamsShiftsPolicy', - 'Set-CsTeamsShiftsPolicy', - 'Grant-CsTeamsShiftsPolicy', - - 'New-CsTeamsHiddenTemplate', - - 'New-CsTeamsTemplatePermissionPolicy', - 'Get-CsTeamsTemplatePermissionPolicy', - 'Remove-CsTeamsTemplatePermissionPolicy', - 'Set-CsTeamsTemplatePermissionPolicy', - - 'New-CsTeamsVirtualAppointmentsPolicy', - 'Get-CsTeamsVirtualAppointmentsPolicy', - 'Remove-CsTeamsVirtualAppointmentsPolicy', - 'Set-CsTeamsVirtualAppointmentsPolicy', - 'Grant-CsTeamsVirtualAppointmentsPolicy', - - 'New-CsTeamsComplianceRecordingPolicy', - 'Get-CsTeamsComplianceRecordingPolicy', - 'Remove-CsTeamsComplianceRecordingPolicy', - 'Set-CsTeamsComplianceRecordingPolicy', - - 'New-CsTeamsComplianceRecordingApplication', - 'Get-CsTeamsComplianceRecordingApplication', - 'Remove-CsTeamsComplianceRecordingApplication', - 'Set-CsTeamsComplianceRecordingApplication', - - 'New-CsTeamsComplianceRecordingPairedApplication', - - 'New-CsTeamsSharedCallingRoutingPolicy', - 'Get-CsTeamsSharedCallingRoutingPolicy', - 'Remove-CsTeamsSharedCallingRoutingPolicy', - 'Set-CsTeamsSharedCallingRoutingPolicy', - 'Grant-CsTeamsSharedCallingRoutingPolicy', - - 'New-CsTeamsVdiPolicy', - 'Get-CsTeamsVdiPolicy', - 'Remove-CsTeamsVdiPolicy', - 'Set-CsTeamsVdiPolicy', - 'Grant-CsTeamsVdiPolicy', - - - 'Get-CsTeamsMeetingConfiguration', - 'Set-CsTeamsMeetingConfiguration', - - 'New-CsTeamsCustomBannerText', - 'Get-CsTeamsCustomBannerText', - 'Remove-CsTeamsCustomBannerText', - 'Set-CsTeamsCustomBannerText', - - 'New-CsTeamsWorkLocationDetectionPolicy', - 'Get-CsTeamsWorkLocationDetectionPolicy', - 'Remove-CsTeamsWorkLocationDetectionPolicy', - 'Set-CsTeamsWorkLocationDetectionPolicy', - 'Grant-CsTeamsWorkLocationDetectionPolicy', - - 'New-CsTeamsMediaConnectivityPolicy', - 'Get-CsTeamsMediaConnectivityPolicy', - 'Remove-CsTeamsMediaConnectivityPolicy', - 'Set-CsTeamsMediaConnectivityPolicy', - 'Grant-CsTeamsMediaConnectivityPolicy', - - 'New-CsTeamsRecordingRollOutPolicy', - 'Get-CsTeamsRecordingRollOutPolicy', - 'Remove-CsTeamsRecordingRollOutPolicy', - 'Set-CsTeamsRecordingRollOutPolicy', - 'Grant-CsTeamsRecordingRollOutPolicy', - - 'New-CsTeamsFilesPolicy', - 'Get-CsTeamsFilesPolicy', - 'Remove-CsTeamsFilesPolicy', - 'Set-CsTeamsFilesPolicy', - 'Grant-CsTeamsFilesPolicy', - - 'Get-CsTeamsExternalAccessConfiguration', - 'Set-CsTeamsExternalAccessConfiguration', - - 'New-CsConversationRole', - 'Remove-CsConversationRole', - 'Get-CsConversationRole', - 'Set-CsConversationRole', - - 'New-CsTeamsBYODAndDesksPolicy', - 'Get-CsTeamsBYODAndDesksPolicy', - 'Remove-CsTeamsBYODAndDesksPolicy', - 'Set-CsTeamsBYODAndDesksPolicy', - 'Grant-CsTeamsBYODAndDesksPolicy', - - 'Get-CsTeamsAIPolicy', - 'Set-CsTeamsAIPolicy', - 'New-CsTeamsAIPolicy', - 'Remove-CsTeamsAIPolicy', - 'Grant-CsTeamsAIPolicy', - - 'Get-CsTeamsClientConfiguration', - 'Set-CsTeamsClientConfiguration' -) - -# Variables to export from this module -VariablesToExport = @() - -# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. -AliasesToExport = @() - -# DSC resources to export from this module -# DscResourcesToExport = @() - -# List of all modules packaged with this module -# ModuleList = @() - -# List of all files packaged with this module -# FileList = @() - -# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. -PrivateData = @{} - -# HelpInfo URI of this module -# HelpInfoURI = '' - -# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. -# DefaultCommandPrefix = '' -} -# SIG # Begin signature block -# MIIoPAYJKoZIhvcNAQcCoIIoLTCCKCkCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDX3YXgOeQPQ+Y1 -# Wfw9ZSDmrfnZmP3fLUhgBAxoxI8e/KCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGg0wghoJAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIBfF -# DkLSziC/peRPp4UPEYOYC3B4RTgpKJ4qWlbBglyxMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAdeCQuvxEEwDXqiWT8l+EX4QQx/3qb7+f4av3 -# UeZCI7l0aM1dXPHC/oG08ch2I6BHwVyu1xi/U/jKTFITpObOH6JfO8BAIc8Ecic1 -# G3P+Ss86QWhsBF7WwPk4w8ClrzelM13uw9nexRTeGbqrW5xTMZMnLUsmySHV3eU4 -# OAT7f7EaRq3G5avRYC2ZUIgy8NcaybiFdhG4ZL/uJoAWasTjB32ukZ5yeQ7h5DWn -# 1j30Q6LaDDWw+iX8Ne6UhloJ5GaGtlGzDIGDVeebFcKTfByw1KwlL5ELkNhixXjH -# F9nBFkFLwNznFw334AvbKF0uoMEOIF9Y8jjQuHphRZJ+Xff2B6GCF5cwgheTBgor -# BgEEAYI3AwMBMYIXgzCCF38GCSqGSIb3DQEHAqCCF3AwghdsAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFSBgsqhkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCvqydL+ho5nsVrYrmOi6J9t2Kg4nCaXXtS -# C6knlFDuAwIGZ7eqBCTLGBMyMDI1MDMxMzA4NDcyNS4wOTNaMASAAgH0oIHRpIHO -# MIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQL -# ExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxk -# IFRTUyBFU046MzcwMy0wNUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1l -# LVN0YW1wIFNlcnZpY2WgghHtMIIHIDCCBQigAwIBAgITMwAAAgpHshTZ7rKzDwAB -# AAACCjANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDAeFw0yNTAxMzAxOTQyNTdaFw0yNjA0MjIxOTQyNTdaMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046MzcwMy0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Uw -# ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCy7NzwEpb7BpwAk9LJ00Xq -# 30TcTjcwNZ80TxAtAbhSaJ2kwnJA1Au/Do9/fEBjAHv6Mmtt3fmPDeIJnQ7VBeIq -# 8RcfjcjrbPIg3wA5v5MQflPNSBNOvcXRP+fZnAy0ELDzfnJHnCkZNsQUZ7GF7LxU -# LTKOYY2YJw4TrmcHohkY6DjCZyxhqmGQwwdbjoPWRbYu/ozFem/yfJPyjVBql106 -# 8bcVh58A8c5CD6TWN/L3u+Ny+7O8+Dver6qBT44Ey7pfPZMZ1Hi7yvCLv5LGzSB6 -# o2OD5GIZy7z4kh8UYHdzjn9Wx+QZ2233SJQKtZhpI7uHf3oMTg0zanQfz7mgudef -# mGBrQEg1ox3n+3Tizh0D9zVmNQP9sFjsPQtNGZ9ID9H8A+kFInx4mrSxA2SyGMOQ -# cxlGM30ktIKM3iqCuFEU9CHVMpN94/1fl4T6PonJ+/oWJqFlatYuMKv2Z8uiprnF -# cAxCpOsDIVBO9K1vHeAMiQQUlcE9CD536I1YLnmO2qHagPPmXhdOGrHUnCUtop21 -# elukHh75q/5zH+OnNekp5udpjQNZCviYAZdHsLnkU0NfUAr6r1UqDcSq1yf5Riwi -# mB8SjsdmHll4gPjmqVi0/rmnM1oAEQm3PyWcTQQibYLiuKN7Y4io5bJTVwm+vRRb -# pJ5UL/D33C//7qnHbeoWBQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFAKvF0EEj4Ay -# PfY8W/qrsAvftZwkMB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8G -# A1UdHwRYMFYwVKBSoFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMv -# Y3JsL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBs -# BggrBgEFBQcBAQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0 -# LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUy -# MDIwMTAoMSkuY3J0MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUH -# AwgwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4ICAQCwk3PW0CyjOaqX -# CMOusTde7ep2CwP/xV1J3o9KAiKSdq8a2UR5RCHYhnJseemweMUH2kNefpnAh2Bn -# 8H2opDztDJkj8OYRd/KQysE12NwaY3KOwAW8Rg8OdXv5fUZIsOWgprkCQM0VoFHd -# XYExkJN3EzBbUCUw3yb4gAFPK56T+6cPpI8MJLJCQXHNMgti2QZhX9KkfRAffFYM -# FcpsbI+oziC5Brrk3361cJFHhgEJR0J42nqZTGSgUpDGHSZARGqNcAV5h+OQDLeF -# 2p3URx/P6McUg1nJ2gMPYBsD+bwd9B0c/XIZ9Mt3ujlELPpkijjCdSZxhzu2M3SZ -# WJr57uY+FC+LspvIOH1Opofanh3JGDosNcAEu9yUMWKsEBMngD6VWQSQYZ6X9F80 -# zCoeZwTq0i9AujnYzzx5W2fEgZejRu6K1GCASmztNlYJlACjqafWRofTqkJhV/J2 -# v97X3ruDvfpuOuQoUtVAwXrDsG2NOBuvVso5KdW54hBSsz/4+ORB4qLnq4/GNtaj -# UHorKRKHGOgFo8DKaXG+UNANwhGNxHbILSa59PxExMgCjBRP3828yGKsquSEzzLN -# Wnz5af9ZmeH4809fwIttI41JkuiY9X6hmMmLYv8OY34vvOK+zyxkS+9BULVAP6gt -# +yaHaBlrln8Gi4/dBr2y6Srr/56g0DCCB3EwggVZoAMCAQICEzMAAAAVxedrngKb -# SZkAAAAAABUwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQI -# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv -# ZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmlj -# YXRlIEF1dGhvcml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIy -# NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT -# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE -# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXI -# yjVX9gF/bErg4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjo -# YH1qUoNEt6aORmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1y -# aa8dq6z2Nr41JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v -# 3byNpOORj7I5LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pG -# ve2krnopN6zL64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viS -# kR4dPf0gz3N9QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYr -# bqgSUei/BQOj0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlM -# jgK8QmguEOqEUUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSL -# W6CmgyFdXzB0kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AF -# emzFER1y7435UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIu -# rQIDAQABo4IB3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIE -# FgQUKqdS/mTEmr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWn -# G1M1GelyMFwGA1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEW -# M2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5 -# Lmh0bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBi -# AEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV -# 9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3Js -# Lm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAx -# MC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2 -# LTIzLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv -# 6lwUtj5OR2R4sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZn -# OlNN3Zi6th542DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1 -# bSNU5HhTdSRXud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4 -# rPf5KYnDvBewVIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU -# 6ZGyqVvfSaN0DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDF -# NLB62FD+CljdQDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/ -# HltEAY5aGZFrDZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdU -# CbFpAUR+fKFhbHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKi -# excdFYmNcP7ntdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTm -# dHRbatGePu1+oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZq -# ELQdVTNYs6FwZvKhggNQMIICOAIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMx -# EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT -# FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJp -# Y2EgT3BlcmF0aW9uczEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjM3MDMtMDVF -# MC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMK -# AQEwBwYFKw4DAhoDFQDRAMVJlA6bKq93Vnu3UkJgm5HlYaCBgzCBgKR+MHwxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv -# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA63yE+jAi -# GA8yMDI1MDMxMjIyMTEwNloYDzIwMjUwMzEzMjIxMTA2WjB3MD0GCisGAQQBhFkK -# BAExLzAtMAoCBQDrfIT6AgEAMAoCAQACAgRLAgH/MAcCAQACAhOdMAoCBQDrfdZ6 -# AgEAMDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSCh -# CjAIAgEAAgMBhqAwDQYJKoZIhvcNAQELBQADggEBADmF8DMpxqadXzQ6OysabYTL -# KN8v2SyTKKavhPb3I6Uh/GCxQuk1Tiovox1ZBWTqjcQuwKSMYd2uVFBzmu4yigP3 -# I31daP874IGGqKnDLuo5mLTJAvf7LU4o8snDiv9CX6xtWvLtFr5JNeCT47hD/tNQ -# jUrGm+owzl2svFc1ZWmbRAInpMB3eZl70a80Ok4+K9ne4I/l6uNIhRXrPZXWRMgV -# 09O9FKxQ02Y5Y20y7GtVFSRz8DCSIFeWw4pw0P2iZsGIWMxRpUqEaWnKRGAJGAAZ -# l0e0N88p4BNJxnwkKLxMYXDfJO7KS22/iaZ/x6N945Ik2PTu6lGnuajLBCUTNz8x -# ggQNMIIECQIBATCBkzB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv -# bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0 -# aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAA -# AgpHshTZ7rKzDwABAAACCjANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkD -# MQ0GCyqGSIb3DQEJEAEEMC8GCSqGSIb3DQEJBDEiBCCUoZUvzkscBUwcq0K06YEg -# 068VdjyGlkAxdr+E1Ebw4jCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIE2a -# y/y0epK/X3Z03KTcloqE8u9IXRtdO7Mex0hw9+SaMIGYMIGApH4wfDELMAkGA1UE -# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc -# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 -# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAIKR7IU2e6ysw8AAQAAAgowIgQgs3Cc -# OatoW7AUmuxxJ5k7vLNVc8cNipV2s+QK3dptun8wDQYJKoZIhvcNAQELBQAEggIA -# ZJ8uUPJ+dond9JUX3Y6OETxQNzyAB2MJ0xuxRmty0glaSY0cUAtq5lScDp/oNUN1 -# 81N2IhhNr/B2kAsB1hViap2jLFJWDbBHgswWrXbVe4pLp4j6U6Ha6XRYLUv9cEV3 -# SAXcyef1cWykB5EtcQkAimhxeYKKYeCPV9672LQqIpIddWq8MIrf056Z1LvAq+YH -# 963j3Yy0am6YoiYlwMIEXzJQl+S3f+RVmX0riLX+9REO05XAmuS77noIGFpXOI6U -# 8w6+wuYeM/+Z9PWU6OFF4zAOrFD17SvYUti+1JkKXnUZ4koL0gN3gET2UmlxTj8E -# ta1Vvdn46kUum1UCdcAis4PS4KLQ1/oeBugugLlt/Zge/i5ieo5fVK3MGFU8NGS6 -# W84dV5P/G/AQs9+0JhtLc3tRMmzzOdN5Lqk2gJSH4qU24wSfwAmmwddlFUyuSQRV -# rq3xvZgQeps76rvtvBEzrZOgA034iiSRUdqw6f+kH4M99m3UT18CRwXauKwGYiYD -# s8pg0c5ceFIwbQ1RsZSLwCbsNaLGzDwfsDp0tDUJLzWERvZAQ3Ybr5TsXwEWyZ0q -# c7IkRz0SZCke0mGWcnqyIreOBmdDNGX/OmNVAuuMTBiSi/JEG/kkOq4M0pPy/3uu -# 7uukZZJIpT3v1sNxVY7PkRYTBE2qJXoDYbDUgHCAJ3w= -# SIG # End signature block diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1 b/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1 deleted file mode 100644 index 67275d82b924..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1 +++ /dev/null @@ -1,541 +0,0 @@ -# -# Module manifest for module 'Microsoft.Teams.Policy.Administration.Core' -# - -@{ -# Script module or binary module file associated with this manifest. -RootModule = './Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1' - -# Version number of this module. -ModuleVersion = '14.1.41' - -# Supported PSEditions -CompatiblePSEditions = 'Core', 'Desktop' - -# ID used to uniquely identify this module -GUID = '048c99d9-471a-4935-a810-542687c5f950' - -# Author of this module -Author = 'Microsoft Corporation' - -# Company or vendor of this module -CompanyName = 'Microsoft Corporation' - -# Copyright statement for this module -Copyright = 'Microsoft Corporation. All rights reserved.' - -# Description of the functionality provided by this module -Description = 'Microsoft Teams cmdlets module for Policy Administration' - -# Minimum version of the Windows PowerShell engine required by this module -PowerShellVersion = '5.1' - -# Name of the Windows PowerShell host required by this module -# PowerShellHostName = '' - -# Minimum version of the Windows PowerShell host required by this module -# PowerShellHostVersion = '' - -# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -DotNetFrameworkVersion = '4.7.2' - -# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -CLRVersion = '4.0' - -# Processor architecture (None, X86, Amd64) required by this module -# ProcessorArchitecture = 'Amd64' - -# Modules that must be imported into the global environment prior to importing this module -# RequiredModules = @() - -# Assemblies that must be loaded prior to importing this module -# RequiredAssemblies = @() - -# Script files (.ps1) that are run in the caller's environment prior to importing this module. -# Removed this script from here because this module is used in SAW machines as well where Contraint Language Mode is on. -# Because of CLM constraint we were not able to import Teams module to SAW machines, that is why removing this script. -# ScriptsToProcess = @() - -# Type files (.ps1xml) to be loaded when importing this module -# TypesToProcess = @() - -# Format files (.ps1xml) to be loaded when importing this module -FormatsToProcess = @() - -# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess -NestedModules = @() - -# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. -FunctionsToExport = '*' - -# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. -CmdletsToExport = @( - 'New-CsTeamsAppSetupPolicy', - 'Get-CsTeamsAppSetupPolicy', - 'Remove-CsTeamsAppSetupPolicy', - 'Set-CsTeamsAppSetupPolicy', - 'Grant-CsTeamsAppSetupPolicy', - - 'New-CsTeamsAppPermissionPolicy', - 'Get-CsTeamsAppPermissionPolicy', - 'Remove-CsTeamsAppPermissionPolicy', - 'Set-CsTeamsAppPermissionPolicy', - 'Grant-CsTeamsAppPermissionPolicy', - - 'New-CsTeamsMessagingPolicy', - 'Get-CsTeamsMessagingPolicy', - 'Remove-CsTeamsMessagingPolicy', - 'Set-CsTeamsMessagingPolicy', - - 'New-CsTeamsChannelsPolicy', - 'Get-CsTeamsChannelsPolicy', - 'Remove-CsTeamsChannelsPolicy', - 'Set-CsTeamsChannelsPolicy', - - 'New-CsTeamsUpdateManagementPolicy', - 'Get-CsTeamsUpdateManagementPolicy', - 'Remove-CsTeamsUpdateManagementPolicy', - 'Set-CsTeamsUpdateManagementPolicy', - - 'Get-CsTeamsUpgradeConfiguration', - 'Set-CsTeamsUpgradeConfiguration', - - 'Get-CsTeamsSipDevicesConfiguration', - 'Set-CsTeamsSipDevicesConfiguration', - - 'New-CsTeamsMeetingPolicy', - 'Get-CsTeamsMeetingPolicy', - 'Remove-CsTeamsMeetingPolicy', - 'Set-CsTeamsMeetingPolicy', - - 'New-CsOnlineVoicemailPolicy', - 'Get-CsOnlineVoicemailPolicy', - 'Remove-CsOnlineVoicemailPolicy', - 'Set-CsOnlineVoicemailPolicy', - - 'New-CsTeamsFeedbackPolicy', - 'Get-CsTeamsFeedbackPolicy', - 'Remove-CsTeamsFeedbackPolicy', - 'Set-CsTeamsFeedbackPolicy', - - 'New-CsTeamsMeetingBrandingPolicy', - 'Get-CsTeamsMeetingBrandingPolicy', - 'Remove-CsTeamsMeetingBrandingPolicy', - 'Set-CsTeamsMeetingBrandingPolicy', - 'Grant-CsTeamsMeetingBrandingPolicy' - - 'New-CsTeamsMeetingBrandingTheme', - 'New-CsTeamsMeetingBackgroundImage', - 'New-CsTeamsNdiAssuranceSlate', - - 'New-CsTeamsEmergencyCallingPolicy', - 'Get-CsTeamsEmergencyCallingPolicy', - 'Remove-CsTeamsEmergencyCallingPolicy', - 'Set-CsTeamsEmergencyCallingPolicy', - 'New-CsTeamsEmergencyCallingExtendedNotification', - - 'New-CsTeamsCallHoldPolicy', - 'Get-CsTeamsCallHoldPolicy', - 'Remove-CsTeamsCallHoldPolicy', - 'Set-CsTeamsCallHoldPolicy', - - 'Get-CsTeamsMessagingConfiguration', - 'Set-CsTeamsMessagingConfiguration', - - 'New-CsTeamsVoiceApplicationsPolicy', - 'Get-CsTeamsVoiceApplicationsPolicy', - 'Remove-CsTeamsVoiceApplicationsPolicy', - 'Set-CsTeamsVoiceApplicationsPolicy', - - 'Get-CsTeamsAudioConferencingCustomPromptsConfiguration', - 'Set-CsTeamsAudioConferencingCustomPromptsConfiguration', - 'New-CsCustomPrompt', - 'New-CsCustomPromptPackage', - - 'New-CsTeamsEventsPolicy', - 'Get-CsTeamsEventsPolicy', - 'Remove-CsTeamsEventsPolicy', - 'Set-CsTeamsEventsPolicy', - 'Grant-CsTeamsEventsPolicy', - - 'New-CsTeamsCallingPolicy', - 'Get-CsTeamsCallingPolicy', - 'Remove-CsTeamsCallingPolicy', - 'Set-CsTeamsCallingPolicy', - 'Grant-CsTeamsCallingPolicy', - - 'New-CsExternalAccessPolicy', - 'Get-CsExternalAccessPolicy', - 'Remove-CsExternalAccessPolicy', - 'Set-CsExternalAccessPolicy', - 'Grant-CsExternalAccessPolicy', - - 'Get-CsTeamsMultiTenantOrganizationConfiguration', - 'Set-CsTeamsMultiTenantOrganizationConfiguration', - - 'New-CsTeamsHiddenMeetingTemplate', - - 'New-CsTeamsMeetingTemplatePermissionPolicy', - 'Get-CsTeamsMeetingTemplatePermissionPolicy', - 'Set-CsTeamsMeetingTemplatePermissionPolicy', - 'Remove-CsTeamsMeetingTemplatePermissionPolicy', - 'Grant-CsTeamsMeetingTemplatePermissionPolicy', - - 'Get-CsTeamsMeetingTemplateConfiguration', - 'Get-CsTeamsFirstPartyMeetingTemplateConfiguration', - - 'Get-CsTenantNetworkSite', - - 'New-CsTeamsShiftsPolicy', - 'Get-CsTeamsShiftsPolicy', - 'Remove-CsTeamsShiftsPolicy', - 'Set-CsTeamsShiftsPolicy', - 'Grant-CsTeamsShiftsPolicy', - - 'New-CsTeamsHiddenTemplate', - - 'New-CsTeamsTemplatePermissionPolicy', - 'Get-CsTeamsTemplatePermissionPolicy', - 'Remove-CsTeamsTemplatePermissionPolicy', - 'Set-CsTeamsTemplatePermissionPolicy', - - 'New-CsTeamsVirtualAppointmentsPolicy', - 'Get-CsTeamsVirtualAppointmentsPolicy', - 'Remove-CsTeamsVirtualAppointmentsPolicy', - 'Set-CsTeamsVirtualAppointmentsPolicy', - 'Grant-CsTeamsVirtualAppointmentsPolicy', - - 'New-CsTeamsComplianceRecordingPolicy', - 'Get-CsTeamsComplianceRecordingPolicy', - 'Remove-CsTeamsComplianceRecordingPolicy', - 'Set-CsTeamsComplianceRecordingPolicy', - - 'New-CsTeamsComplianceRecordingApplication', - 'Get-CsTeamsComplianceRecordingApplication', - 'Remove-CsTeamsComplianceRecordingApplication', - 'Set-CsTeamsComplianceRecordingApplication', - - 'New-CsTeamsComplianceRecordingPairedApplication', - - 'New-CsTeamsSharedCallingRoutingPolicy', - 'Get-CsTeamsSharedCallingRoutingPolicy', - 'Remove-CsTeamsSharedCallingRoutingPolicy', - 'Set-CsTeamsSharedCallingRoutingPolicy', - 'Grant-CsTeamsSharedCallingRoutingPolicy', - - 'New-CsTeamsVdiPolicy', - 'Get-CsTeamsVdiPolicy', - 'Remove-CsTeamsVdiPolicy', - 'Set-CsTeamsVdiPolicy', - 'Grant-CsTeamsVdiPolicy', - - 'Get-CsTeamsMeetingConfiguration', - 'Set-CsTeamsMeetingConfiguration', - - 'New-CsTeamsCustomBannerText', - 'Get-CsTeamsCustomBannerText', - 'Remove-CsTeamsCustomBannerText', - 'Set-CsTeamsCustomBannerText', - - 'Get-CsTeamsEducationConfiguration', - 'Set-CsTeamsEducationConfiguration', - - 'New-CsTeamsWorkLocationDetectionPolicy', - 'Get-CsTeamsWorkLocationDetectionPolicy', - 'Remove-CsTeamsWorkLocationDetectionPolicy', - 'Set-CsTeamsWorkLocationDetectionPolicy', - 'Grant-CsTeamsWorkLocationDetectionPolicy', - - 'New-CsTeamsMediaConnectivityPolicy', - 'Get-CsTeamsMediaConnectivityPolicy', - 'Remove-CsTeamsMediaConnectivityPolicy', - 'Set-CsTeamsMediaConnectivityPolicy', - 'Grant-CsTeamsMediaConnectivityPolicy', - - 'New-CsTeamsRecordingRollOutPolicy', - 'Get-CsTeamsRecordingRollOutPolicy', - 'Remove-CsTeamsRecordingRollOutPolicy', - 'Set-CsTeamsRecordingRollOutPolicy', - 'Grant-CsTeamsRecordingRollOutPolicy', - - 'New-CsTeamsFilesPolicy', - 'Get-CsTeamsFilesPolicy', - 'Remove-CsTeamsFilesPolicy', - 'Set-CsTeamsFilesPolicy', - 'Grant-CsTeamsFilesPolicy', - - 'Get-CsTeamsExternalAccessConfiguration', - 'Set-CsTeamsExternalAccessConfiguration', - - 'New-CsConversationRole', - 'Remove-CsConversationRole', - 'Get-CsConversationRole', - 'Set-CsConversationRole', - - 'New-CsTeamsBYODAndDesksPolicy', - 'Get-CsTeamsBYODAndDesksPolicy', - 'Remove-CsTeamsBYODAndDesksPolicy', - 'Set-CsTeamsBYODAndDesksPolicy', - 'Grant-CsTeamsBYODAndDesksPolicy', - - 'Get-CsTeamsAIPolicy', - 'Set-CsTeamsAIPolicy', - 'New-CsTeamsAIPolicy', - 'Remove-CsTeamsAIPolicy', - 'Grant-CsTeamsAIPolicy', - - 'Get-CsTeamsEducationAssignmentsAppPolicy', - 'Set-CsTeamsEducationAssignmentsAppPolicy', - - 'Get-CsPrivacyConfiguration', - 'Set-CsPrivacyConfiguration', - - 'Get-CsTeamsNotificationAndFeedsPolicy', - 'Set-CsTeamsNotificationAndFeedsPolicy', - 'Remove-CsTeamsNotificationAndFeedsPolicy', - - 'Get-CsTeamsClientConfiguration', - 'Set-CsTeamsClientConfiguration' -) - -# Variables to export from this module -VariablesToExport = @() - -# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. -AliasesToExport = @() - -# DSC resources to export from this module -# DscResourcesToExport = @() - -# List of all modules packaged with this module -# ModuleList = @() - -# List of all files packaged with this module -# FileList = @() - -# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. -PrivateData = @{} - -# HelpInfo URI of this module -# HelpInfoURI = '' - -# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. -# DefaultCommandPrefix = '' -} -# SIG # Begin signature block -# MIIoQwYJKoZIhvcNAQcCoIIoNDCCKDACAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCA95QYKo+5XpBIi -# klqhZaGXjLZ7VnQ444jfujrExRBMdKCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIOZFLXcZwCPn/8aqMOuA2atc -# ULPe3DZoNq2q60yQrbQcMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAj4mHu6kegl9Ml26UB1UbVlMW+GWx55u9qKEZ8zAFq9dxOxTVJl+VisJ+ -# speujgwHju7+iMz8ML+fMzQLRVnrerYzfmzXrsmoK/VCMWLtt4B3wG5q52hGRSFQ -# OkuTiBD25BmcoAZlbkZHQIPhmJTEubGeIAft3aSyyDOajWPlaAXiq7eFTnwvFJDB -# rIDkH08QLasMZzRKpfSUKTkQwJbKx4dxoX4LhnXbTsH90g8WbpsfLqlXVxcV3VaB -# 6IqBZhGgf08XjJV8lSZYzagaMWpkyq+RWinv52M3AY/2RTH2IkLacoikwVm2zaVz -# Z6DOYeaRbwtN1eFf1gbClo9i7CKG7aGCF60wghepBgorBgEEAYI3AwMBMYIXmTCC -# F5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsq -# hkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCBvvqCiSpgQjMXHCwjJQkDuZIeTG48r+SGimwfqL2IQ5wIGZ7YyFXSC -# GBMyMDI1MDMxMzA4NDcyMi43OTRaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo2QjA1LTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB9oMvJmpUXSLBAAEAAAH2MA0G -# CSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI0 -# MDcyNTE4MzEwNFoXDTI1MTAyMjE4MzEwNFowgdMxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9w -# ZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjZCMDUt -# MDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0UJeLMR/N9WPBZhuKVFF -# +eWJZ68Wujdj4X6JR05cxO5CepNXo17rVazwWLkm5AjaVh19ZVjDChHzimxsoaXx -# Nu8IDggKwpXvpAAItv4Ux50e9S2uVwfKv57p9JKG+Q7VONShujl1NCMkcgSrPdmd -# /8zcsmhzcNobLomrCAIORZ8IwhYy4siVQlf1NKhlyAzmkWJD0N+60IiogFBzg3yI -# SsvroOx0x1xSi2PiRIQlTXE74MggZDIDKqH/hb9FT2kK/nV/aXjuo9LMrrRmn44o -# YYADe/rO95F+SG3uuuhf+H4IriXr0h9ptA6SwHJPS2VmbNWCjQWq5G4YkrcqbPMa -# x7vNXUwu7T65E8fFPd1IuE9RsG4TMAV7XkXBopmPNfvL0hjxg44kpQn384V46o+z -# dQqy5K9dDlWm/J6vZtp5yA1PyD3w+HbGubS0niEQ1L6wGOrPfzIm0FdOn+xFo48E -# Rl+Fxw/3OvXM5CY1EqnzEznPjzJc7OJwhJVR3VQDHjBcEFTOvS9E0diNu1eocw+Z -# Ckz4Pu/oQv+gqU+bfxL8e7PFktfRDlM6FyOzjP4zuI25gD8tO9zJg6g6fRpaZc43 -# 9mAbkl3zCVzTLDgchv6SxQajJtvvoQaZxQf0tRiPcbr2HWfMoqqd9uiQ0hTUEhG4 -# 4FBSTeUPZeEenRCWadCW4G8CAwEAAaOCAUkwggFFMB0GA1UdDgQWBBRIwZsJuOcJ -# fScPWcXZuBA4B89K8jAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBf -# BgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmww -# bAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29m -# dC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0El -# MjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUF -# BwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEA13kBirH1cHu1 -# WYR1ysj125omGtQ0PaQkEzwGb70xtqSoI+svQihsgdTYxaPfp2IVFdgjaMaBi81w -# B8/nu866FfFKKdhdp3wnMZ91PpP4Ooe7Ncf6qICkgSuwgdIdQvqE0h8VQ5QW5sDV -# 4Q0Jnj4f7KHYx4NiM8C4jTw8SQtsuxWiTH2Hikf3QYB71a7dB9zgHOkW0hgUEeWO -# 9mh2wWqYS/Q48ASjOqYw/ha54oVOff22WaoH+/Hxd9NTEU/4vlvsRIMWT0jsnNI7 -# 1jVArT4Q9Bt6VShWzyqraE6SKUoZrEwBpVsI0LMg2X3hOLblC1vxM3+wMyOh97aF -# Os7sFnuemtI2Mfj8qg16BZTJxXlpPurWrG+OBj4BoTDkC9AxXYB3yEtuwMs7pRWL -# yxIxw/wV9THKUGm+x+VE0POLwkrSMgjulSXkpfELHWWiCVslJbFIIB/4Alv+jQJS -# KAJuo9CErbm2qeDk/zjJYlYaVGMyKuYZ+uSRVKB2qkEPcEzG1dO9zIa1Mp32J+zz -# W3P7suJfjw62s3hDOLk+6lMQOR04x+2o17G3LceLkkxJm41ErdiTjAmdClen9yl6 -# HgMpGS4okjFCJX+CpOFX7gBA3PVxQWubisAQbL5HgTFBtQNEzcCdh1GYw/6nzzNN -# t+0GQnnobBddfOAiqkzvItqXjvGyK1QwggdxMIIFWaADAgECAhMzAAAAFcXna54C -# m0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp -# Y2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMy -# MjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0B -# AQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51 -# yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY -# 6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9 -# cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN -# 7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDua -# Rr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74 -# kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2 -# K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5 -# TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZk -# i1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9Q -# BXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3Pmri -# Lq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUC -# BBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJl -# pxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIB -# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9y -# eS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUA -# YgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU -# 1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2Ny -# bC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIw -# MTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0w -# Ni0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/yp -# b+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulm -# ZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM -# 9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECW -# OKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4 -# FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3Uw -# xTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPX -# fx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVX -# VAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGC -# onsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU -# 5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEG -# ahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo2QjA1LTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUAFU9eSpdxs0a06JFIuGFHIj/I+36ggYMw -# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsF -# AAIFAOt9BwkwIhgPMjAyNTAzMTMwNzI2MDFaGA8yMDI1MDMxNDA3MjYwMVowdDA6 -# BgorBgEEAYRZCgQBMSwwKjAKAgUA630HCQIBADAHAgEAAgITUTAHAgEAAgIT5TAK -# AgUA635YiQIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIB -# AAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQDXyA/hUGvZs2nG -# bs1klqgLerefElTJckEDysx/CM7VChe0p7bZWlQvl80X9pnx+a1G1g4/27mpTl3X -# WYVnoJelUSqz7KL+t9qTsz+BTPV3RE22JObhh5MeqTXPn++Wz8/PvvkLrLDfsgdK -# 8pRJciKHe0zrGFBj+U7n2J44YD51dBPdha6I1wBaDJKR7sNlDAsRbdUuShHtH6au -# vmwW35MOK7Qo2MrWfk7L5tas4jw34WjLi6x87+97XFfD5AiMh5snp8ArvIHCzdq1 -# Ji2wtT/dEdxd6SwR/LP7+GxLEOrXoXLX2meUXuh3AX5xsTk1rzVelU6fkejhe/XU -# s9PMDFRwMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAH2gy8malRdIsEAAQAAAfYwDQYJYIZIAWUDBAIBBQCgggFKMBoGCSqG -# SIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgKSS6rH8NwTaj -# mvwq9j1MX+VfZcHSJpzILU2BG06aWTswgfoGCyqGSIb3DQEJEAIvMYHqMIHnMIHk -# MIG9BCArYUzxlF6m5USLS4f8NXL/8aoNEVdsCZRmF+LlQjG2ojCBmDCBgKR+MHwx -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1p -# Y3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB9oMvJmpUXSLBAAEAAAH2 -# MCIEIGey5rZAEhLEiRqnc+nik58MWkwRnbCWDZvoss2fBJB/MA0GCSqGSIb3DQEB -# CwUABIICALNe6Ywqrb3ZBkii1OsM7NNaFcPFk23eU2jgjfaXBA4Xb3vxcIuYUEVL -# tEJEoPwIBvK9A+xtuobh+0Rg+W7gmIXGTYnFmrTBxOH84tM39t6VFrI0icwPLCqw -# a/ZEeQsVtyf7JZRDqXpG+PWDiE1p/ffjrZPqoQZXtEmGQUC0pp9JXpxJ9ZnOtB1D -# aOi1sJ1N6GdipAgN9lcqWsZzEqZS845zlwtH68OJAJT85x/DwEK2y0ElBEHKQB30 -# aI0AWBUHub0Ck2aEoLNtahLoRHy2w5YHrk7bamhA+afxealYw/iTZF3axF0XCZiX -# zBt6hdGZJB+uTBm3XZG4xsPyXi/q4K0xPqEj51Q9HcysYwMcDNRCoHw2451dyKW/ -# h+XpI/wn68pjdYZAOgh70e96kcmYzQg/JMtMyX7zDkCdcxNJYq6mcFVeTClWMDwE -# LwF+7sfemCWZLP8txN3ci7TvFwZzwKlM1cZZDY7lkV3e/M1S2ydHpVx7OkHAzVhb -# 07tMll7Mlmms0w1trrQCXBV2zBDE+u8h+vFijkGgN0/Ng0/n2FcZRI8ShUm87Mak -# E9un6Ye1op/D7PvMDaKcW1OfsADTZsd9XCow6/aYcnS5AwzBQEFR08Oy81CyNwye -# f4PAvlBZGhP+sJgO1wvutBaIcHbG9xfPLlJ0x86AcxwICgtnkZpG -# SIG # End signature block diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1 b/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1 deleted file mode 100644 index d0cea3e4d756..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1 +++ /dev/null @@ -1,238 +0,0 @@ -$path = Join-Path $PSScriptRoot 'Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll' - -if (test-path $path) -{ - $null = Import-Module -Name $path -} -else -{ - if ($PSEdition -ne 'Desktop') - { - $null = Import-Module -Name (Join-Path $PSScriptRoot 'netcoreapp3.1\Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll') - } - else - { - $null = Import-Module -Name (Join-Path $PSScriptRoot 'net472\Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll') - } -} - -gci (Join-Path $PSScriptRoot 'Microsoft.Teams.Policy.Administration.Cmdlets.Core.*.ps1xml') | % {Update-FormatData -PrependPath $_ } - -# SIG # Begin signature block -# MIIoUgYJKoZIhvcNAQcCoIIoQzCCKD8CAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAkAcLpsaJGFDbZ -# eSS41J6zw7DVHNDwNlPCWsROSiOFqaCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIPfa -# nlNFBOVfSygxXiGchjDoSjX9DIEVGb2vyXmTS6s/MEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAiT7XBa4WCXESAneGSyjV86KJfF5HB89pe0hl -# 44jlezli0Rum6fyMOtVvvHECwPgCftG4tKTygrKFAtskDdBur7lYmeQBSJyZc4lA -# 3TVRJSW1depu3gu0lISZ7lJUvPq1J0N89lr+ZoMmBT89jlNvoPjY4tK6VQbLSdaU -# Uf+TJDX9XCrpx3Th7mxue6d4WhmdgODlV6mjSUXwQ229ljQeFpHzcLrcHv1FqWSf -# vEg9nqQm32jBkwWYAGcq1NDVjKNleDShKilOqDmpNqNDn9V6P2+fGmT9Qm9tILD6 -# gX4YqIyj3gDoCBOpEEKorSyX2aTei7qpxXs2tfPqUmwCqUQ+J6GCF60wghepBgor -# BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCAjglzI47s9Ib3HLxBB2joHMGqjmTiyds78 -# Aj24I2b+bgIGZ7YcZkIyGBMyMDI1MDMxMzA4NDcyMy42MjFaMASAAgH0oIHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo0MzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB+vs7 -# RNN3M8bTAAEAAAH6MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExMVoXDTI1MTAyMjE4MzExMVowgdMxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv -# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs -# ZCBUU1MgRVNOOjQzMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA -# yhZVBM3PZcBfEpAf7fIIhygwYVVP64USeZbSlRR3pvJebva0LQCDW45yOrtpwIpG -# yDGX+EbCbHhS5Td4J0Ylc83ztLEbbQD7M6kqR0Xj+n82cGse/QnMH0WRZLnwggJd -# enpQ6UciM4nMYZvdQjybA4qejOe9Y073JlXv3VIbdkQH2JGyT8oB/LsvPL/kAnJ4 -# 5oQIp7Sx57RPQ/0O6qayJ2SJrwcjA8auMdAnZKOixFlzoooh7SyycI7BENHTpkVK -# rRV5YelRvWNTg1pH4EC2KO2bxsBN23btMeTvZFieGIr+D8mf1lQQs0Ht/tMOVdah -# 14t7Yk+xl5P4Tw3xfAGgHsvsa6ugrxwmKTTX1kqXH5XCdw3TVeKCax6JV+ygM5i1 -# NroJKwBCW11Pwi0z/ki90ZeO6XfEE9mCnJm76Qcxi3tnW/Y/3ZumKQ6X/iVIJo7L -# k0Z/pATRwAINqwdvzpdtX2hOJib4GR8is2bpKks04GurfweWPn9z6jY7GBC+js8p -# SwGewrffwgAbNKm82ZDFvqBGQQVJwIHSXpjkS+G39eyYOG2rcILBIDlzUzMFFJbN -# h5tDv3GeJ3EKvC4vNSAxtGfaG/mQhK43YjevsB72LouU78rxtNhuMXSzaHq5fFiG -# 3zcsYHaa4+w+YmMrhTEzD4SAish35BjoXP1P1Ct4Va0CAwEAAaOCAUkwggFFMB0G -# A1UdDgQWBBRjjHKbL5WV6kd06KocQHphK9U/vzAfBgNVHSMEGDAWgBSfpxVdAF5i -# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv -# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB -# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw -# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp -# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud -# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF -# AAOCAgEAuFbCorFrvodG+ZNJH3Y+Nz5QpUytQVObOyYFrgcGrxq6MUa4yLmxN4xW -# dL1kygaW5BOZ3xBlPY7Vpuf5b5eaXP7qRq61xeOrX3f64kGiSWoRi9EJawJWCzJf -# UQRThDL4zxI2pYc1wnPp7Q695bHqwZ02eaOBudh/IfEkGe0Ofj6IS3oyZsJP1yat -# cm4kBqIH6db1+weM4q46NhAfAf070zF6F+IpUHyhtMbQg5+QHfOuyBzrt67CiMJS -# KcJ3nMVyfNlnv6yvttYzLK3wS+0QwJUibLYJMI6FGcSuRxKlq6RjOhK9L3QOjh0V -# CM11rHM11ZmN0euJbbBCVfQEufOLNkG88MFCUNE10SSbM/Og/CbTko0M5wbVvQJ6 -# CqLKjtHSoeoAGPeeX24f5cPYyTcKlbM6LoUdO2P5JSdI5s1JF/On6LiUT50adpRs -# tZajbYEeX/N7RvSbkn0djD3BvT2Of3Wf9gIeaQIHbv1J2O/P5QOPQiVo8+0AKm6M -# 0TKOduihhKxAt/6Yyk17Fv3RIdjT6wiL2qRIEsgOJp3fILw4mQRPu3spRfakSoQe -# 5N0e4HWFf8WW2ZL0+c83Qzh3VtEPI6Y2e2BO/eWhTYbIbHpqYDfAtAYtaYIde87Z -# ymXG3MO2wUjhL9HvSQzjoquq+OoUmvfBUcB2e5L6QCHO6qTO7WowggdxMIIFWaAD -# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD -# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe -# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv -# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy -# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 -# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 -# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu -# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl -# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg -# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I -# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 -# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ -# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy -# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y -# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H -# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB -# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW -# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B -# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB -# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB -# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL -# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv -# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr -# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS -# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq -# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 -# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv -# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak -# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK -# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 -# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ -# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep -# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk -# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg -# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ -# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo0MzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUA94Z+bUJn+nKw -# BvII6sg0Ny7aPDaggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDANBgkqhkiG9w0BAQsFAAIFAOt88VYwIhgPMjAyNTAzMTMwNTUzMjZaGA8yMDI1 -# MDMxNDA1NTMyNlowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA63zxVgIBADAHAgEA -# AgIIgzAHAgEAAgISejAKAgUA635C1gIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor -# BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUA -# A4IBAQCOSuoiYG3A/J+tn/9xNnRtJHXTxK9fEhT5+EtA1G9C9yB68k9LYD9i9bQk -# StFBXD1VwcJXlx/4RMVNlpzISoN314oBJXC+lfpfaIJbgW5NZJGl9Zn6HUZtayB5 -# GQCcAPTnJLri3r9BPcfTTAaZsP/CHbfa3vNghgu66C7mA7gEHmcJQm8Fd2GftUYI -# 8oVLIS4isfn4WVz87IcrcHZgWs5RMyteDKlWSCQOuH/XcwT4c9NJ5gCi0wy9NwIq -# XoTJnEkQE1UF3rKKp7Lwx4/0cKzFmk4Ynz88ka6QQlpZavpyIdRHBr2w66l7ebCW -# 6ZD7cDmMXJbXq2yYYXAsYKmMTd5vMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTACEzMAAAH6+ztE03czxtMAAQAAAfowDQYJYIZIAWUD -# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B -# CQQxIgQgcu9FiMrEiwzVMozGR4B9oSBLooc+KJREt6gXRaWKdmAwgfoGCyqGSIb3 -# DQEJEAIvMYHqMIHnMIHkMIG9BCB98n8tya8+B2jjU/dpJRIwHwHHpco5ogNStYoc -# bkOeVjCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB -# +vs7RNN3M8bTAAEAAAH6MCIEIDJIRoeiHGIOMblR+Tw/9sb93Hl8S0tTvT3l3srT -# 2GC3MA0GCSqGSIb3DQEBCwUABIICAEVWKfCO0Cze2bBCRtP6qMNQDitmPNdKFJgx -# DOh+iTaiSQH4YLOxeETVve49xvT052HT+1UWuNCaXmjyFmehm0J7gSu/SF18YDBd -# 0RFJZNqeX2v22hqo6L7UvozGB83uGmqRyEpPbcvmTldnES1hw3MGlvsPCyWfT3QZ -# hd7KSoqMTJ2IwGz4BYrY332x7Xzt7IeMx8N8lhOM5RFmC2nlu+KIXjMeVXiGP4JP -# PTlHit+DPexQA4qUjODbEkTx0LKQgUtDDDHuL/4Y30QuVmuR1I82G0vJB/OOqwtJ -# plbHY1XHh3XOCJOGWtsJ0AxWpypb87yFGiVm7iJERgyTaaa19sRt3Hyj30sNRtyj -# Lqkfa3tZoVnfOfRSLY3P/nr03n8k4H3ajgVXZ8doOCdtewUjUmvK/Ie5sN4c/gJN -# QUInswmlBIgKFJIKZF0643oYROmwvzsP4zle6ftxYdcM9JVgKS2y5GrS/eqAtmer -# SkhSLdA64J+N8gvU0IMoCE2kY7Y6JyxIfnveUvoet0GJTpFxl9bTrm3CckXbMKxF -# ioaQeDGNuxSCnRacBd7/dgDXdC/udP4YLPKBrPS2uFd2cj6uR/PBcRoPhTK3ZFjI -# Uemo6AIE709hinHXboTPVTpA9jZVCztNhH+XBuS4bUr6mx95a5ueRGzWI0V2VdXH -# QM88Hfxx -# SIG # End signature block diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml b/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml deleted file mode 100644 index 68ca9c547070..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml +++ /dev/null @@ -1,255 +0,0 @@ - - - - - TeamsAIPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.TeamsAIPolicy - - - - - - - - - Identity - - - - Description - - - - EnrollFace - - - - EnrollVoice - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml b/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml deleted file mode 100644 index 0af28bf337c3..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml +++ /dev/null @@ -1,252 +0,0 @@ - - - - - TeamsAudioConferencingPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.TeamsAudioConferencingPolicy - - - - - - - - - Identity - - - - MeetingInvitePhoneNumbers - - - - AllowTollFreeDialin - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml b/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml deleted file mode 100644 index 1a27c3636bd3..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml +++ /dev/null @@ -1,247 +0,0 @@ - - - - - TeamsBYODAndDesksPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.TeamsBYODAndDesksPolicy - - - - - - - - - Identity - - - - DeviceDataCollection - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml b/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml deleted file mode 100644 index ce627bb42578..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml +++ /dev/null @@ -1,248 +0,0 @@ - - - - - TeamsMediaConnectivityPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.TeamsMediaConnectivityPolicy - - - - - - - - - Identity - - - - DirectConnection - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml b/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml deleted file mode 100644 index 1312614549ee..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml +++ /dev/null @@ -1,248 +0,0 @@ - - - - - TeamsRecordingRollOutPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.TeamsRecordingRollOutPolicy - - - - - - - - - Identity - - - - MeetingRecordingOwnership - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml b/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml deleted file mode 100644 index 1f8a3dfb9866..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml +++ /dev/null @@ -1,248 +0,0 @@ - - - - - TeamsVirtualAppointmentsPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.TeamsVirtualAppointmentsPolicy - - - - - - - - - Identity - - - - EnableSmsNotifications - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml b/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml deleted file mode 100644 index 46ec98f73d9a..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml +++ /dev/null @@ -1,247 +0,0 @@ - - - - - TeamsWorkLocationDetectionPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.TeamsWorkLocationDetectionPolicy - - - - - - - - - Identity - - - - EnableWorkLocationDetection - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.psm1 b/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.psm1 deleted file mode 100644 index e0bae0a4e7ab..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.psm1 +++ /dev/null @@ -1,247 +0,0 @@ -# Define which modules to load based on the environment -# These environment variables are set in TPM - -if ($env:MSTeamsContextInternal -eq "IsOCEModule") { - $mpaModule = 'Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1' -} -elseif ($env:MSTeamsReleaseEnvironment -eq 'TeamsPreview') { - $mpaModule = 'Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1' -} -else { - $mpaModule = 'Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1' -} - -$path = (Join-Path $PSScriptRoot $mpaModule) - -if (test-path $path) -{ - $null = Import-Module -Name $path -} -else -{ - if ($PSEdition -ne 'Desktop') - { - $null = Import-Module -Name (Join-Path $PSScriptRoot "netcoreapp3.1\$mpaModule") - } - else - { - $null = Import-Module -Name (Join-Path $PSScriptRoot "net472\$mpaModule") - } -} -# SIG # Begin signature block -# MIIoQgYJKoZIhvcNAQcCoIIoMzCCKC8CAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCY/3SaRU5aX7aK -# TQZJ6IK4Qt60ySomlFTBejL/fus5QaCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGiIwghoeAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIBMwq7DKEXveX/tYp75+TAPn -# yE5ZJziyHVTCrrAiSia5MEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAWa3ppCW4f+jbRGzCqJXrbyQ74HVXd1q4ZAGWIXEda5+Q7FA5REwhK3wO -# TiI2AhQVqazVTEQRhZNHtyyZ1vfuaToGP9Kw8PM9oII04lFC20yxP7hiyYGkISOE -# imYXr5fWQ7DCSscvRfaFK+HvvPSo0obOKGbPozj9B2KveoFLECkgAkRKjiyH5etn -# sWfBocXm/FBoZTr6Zfx/y6kzmq0Tgj4spOIE5Fq34esS9sS+aEi5rhFK2iRFZJoD -# w9cKq6T1Z/sM8iY2xe9slvNpADsM6ib9ExXRpBYQw7kp2UYnaqwfMROkofVIjw0t -# 7e6qIUI2qnhMk0REbr5lf9gjqaVPlaGCF6wwgheoBgorBgEEAYI3AwMBMYIXmDCC -# F5QGCSqGSIb3DQEHAqCCF4UwgheBAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFZBgsq -# hkiG9w0BCRABBKCCAUgEggFEMIIBQAIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCCIWY55mO7mYj62WVTynaEJrFq7TMSDW2UdhPF458fvowIGZ7Y0FbMj -# GBIyMDI1MDMxMzA4NDcyMy4xOFowBIACAfSggdmkgdYwgdMxCzAJBgNVBAYTAlVT -# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVs -# YW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNO -# OjQwMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBT -# ZXJ2aWNloIIR+zCCBygwggUQoAMCAQICEzMAAAH+0KjCezQhCwEAAQAAAf4wDQYJ -# KoZIhvcNAQELBQAwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwHhcNMjQw -# NzI1MTgzMTE4WhcNMjUxMDIyMTgzMTE4WjCB0zELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEtMCsGA1UECxMkTWljcm9zb2Z0IElyZWxhbmQgT3Bl -# cmF0aW9ucyBMaW1pdGVkMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046NDAxQS0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Uw -# ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC8vCEXFaWoDjeiWwTg8J6B -# niZJ+wfZhNIoRi/wafffrYGZrJx1/lPe1DGk/c1abrZgdSJ4hBfD7S7iqVrLgA3c -# iicj7js2mL1+jnbF0BcxfSkatzR6pbxFY3dt/Nc8q/Ts7XyLYeMPIu7LBjIoD0WZ -# Zt4+NqF/0zB3xCDKCQ+3AOtVAYvI6TIzdVOIcqqEa70EIZVF0db2WY8yutSU9aJh -# X0tUIHlVh34ARS11+oB2qXNXEDncSDFKqGnolt8QqdN1x8/pPwyKvQevBNO1XaHb -# IMG2NdtAhqrJwo5vrfcZ9GSfbXos4MGDfs//HCGh1dPzVkLZoc3t7EQOaZuJayyM -# a8UmSWLaDp23TV5KE6IaaFuievSpddwF6o1vpCgXyNf+4NW1j2m8viPxoRZLj2Ep -# QfSbOwK5wivBRL7Hwy5PS5/tVcIU0VuIJQ1FOh/EncHjnh4YmEvR/BRNFuDIJuku -# AowoOIJG5vrkOFp4O9QAAlP3cpIKh4UKiSU9q9uBDJqEZkMv+9YBWNflvwnOGXL2 -# AYJ0r+qLqL5zFnRLzHoHbKM9tl90FV8f80Gn/UufvFt44RMA6fs5P0PdQa3Sr4qJ -# aBjjYecuPKGXVsC7kd+CvIA7cMJoh1Xa2O+QlrLao6cXsOCPxrrQpBP1CB8l/Bee -# vdkqJtgyNpRsI0gOfHPbKQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFG/Oe4n1JTaD -# mX/n9v7kIGJtscXdMB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8G -# A1UdHwRYMFYwVKBSoFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMv -# Y3JsL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBs -# BggrBgEFBQcBAQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0 -# LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUy -# MDIwMTAoMSkuY3J0MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUH -# AwgwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4ICAQCJPg1S87aXD7R0 -# My2wG7GZfajeVVCqdCS4hMAYgYKAj6yXtmpk5MN3wurGwfgZYI9PO1ze2vwCAG+x -# gjNaMXCKgKMJA4OrWgExY3MSwrNyQfEDNijlLN7s4+QwDcMDFWrhJJHzL5NELYZw -# 53QlF5nWU+WGU+X1cj7Pw6C04+ZCcsuI/2rOlMfAXN76xupKfxx6R24xl0vIcmTc -# 2LDcCeCVT9ZPMaxAB1yH1JVXgseJ9SebBN/SLTuIq1OU2SrdvHWLJaDs3uMZkAFF -# ZPaZf5gBUeUrbu32f5a1hufpw4k1fouwfzE9UFFgAhFWRawzIQB2g/12p9pnPBca -# aO5VD3fU2HMeOMb4R/DXXwNeOTdWrepQjWt7fjMwxNHNlkTDzYW6kXe+Jc1HcNU6 -# VL0kfjHl6Z8g1rW65JpzoXgJ4kIPUZqR9LsPlrI2xpnZ76wFSHrYpVOWESxBEdlH -# AJPFuLHVjiInD48M0tzQd/X2pfZeJfS7ZIz0JZNOOzP1K8KMgpLEJkUI2//OkoiW -# wfHuFA1AdIxsqHT/DCfzq6IgAsSNrNSzMTT5fqtw5sN9TiH87/S+ZsXcExH7jmsB -# kwARMmxEM/EckKj/lcaFZ2D8ugnldYGs4Mvjhg2s3sVGccQACvTqx+Wpnx55XcW4 -# Mp0/mHX1ZScZbA7Uf9mNTM6hUaJXeDCCB3EwggVZoAMCAQICEzMAAAAVxedrngKb -# SZkAAAAAABUwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQI -# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv -# ZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmlj -# YXRlIEF1dGhvcml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIy -# NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT -# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE -# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXI -# yjVX9gF/bErg4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjo -# YH1qUoNEt6aORmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1y -# aa8dq6z2Nr41JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v -# 3byNpOORj7I5LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pG -# ve2krnopN6zL64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viS -# kR4dPf0gz3N9QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYr -# bqgSUei/BQOj0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlM -# jgK8QmguEOqEUUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSL -# W6CmgyFdXzB0kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AF -# emzFER1y7435UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIu -# rQIDAQABo4IB3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIE -# FgQUKqdS/mTEmr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWn -# G1M1GelyMFwGA1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEW -# M2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5 -# Lmh0bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBi -# AEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV -# 9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3Js -# Lm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAx -# MC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2 -# LTIzLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv -# 6lwUtj5OR2R4sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZn -# OlNN3Zi6th542DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1 -# bSNU5HhTdSRXud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4 -# rPf5KYnDvBewVIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU -# 6ZGyqVvfSaN0DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDF -# NLB62FD+CljdQDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/ -# HltEAY5aGZFrDZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdU -# CbFpAUR+fKFhbHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKi -# excdFYmNcP7ntdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTm -# dHRbatGePu1+oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZq -# ELQdVTNYs6FwZvKhggNWMIICPgIBATCCAQGhgdmkgdYwgdMxCzAJBgNVBAYTAlVT -# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVs -# YW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNO -# OjQwMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBT -# ZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQCEY0cP9rtDRtAtZUb0m4bGAtFex6CBgzCB -# gKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUA -# AgUA630JCTAiGA8yMDI1MDMxMzA3MzQzM1oYDzIwMjUwMzE0MDczNDMzWjB0MDoG -# CisGAQQBhFkKBAExLDAqMAoCBQDrfQkJAgEAMAcCAQACAiQXMAcCAQACAhKcMAoC -# BQDrflqJAgEAMDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEA -# AgMHoSChCjAIAgEAAgMBhqAwDQYJKoZIhvcNAQELBQADggEBAHAAUPualbJMd6ZH -# +6B2+XHH/eXv8zX/aVBNi+NmSyyZL7nRNvHXh8LoXYdZXGL4lRk35SaH5pgGd8B0 -# KHzylP7zSNc7ZzN+uowC2uwzOv6+X4Y6UavQRHvK+7ScTybctoFIEY5xR79+Xxsa -# Ye2EHJDAAdJuXhXMk/HIa/uff8vWbAp9JbJex31yKQf8BSIKnnGaRsgfMH63u10I -# IXhapaagoaLABgpr+KOtm9QJUOvU2U8n7s5ZegFhLMu5fWF/PcSysVzxJSc1ZMdi -# uRVRtyWX/ocsIivzNA+/THtc2TrFbSZNFSfnEFe08EytGzAnENimGqj3Dkt/aJ2N -# 6RaVbosxggQNMIIECQIBATCBkzB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MAITMwAAAf7QqMJ7NCELAQABAAAB/jANBglghkgBZQMEAgEFAKCCAUowGgYJKoZI -# hvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8GCSqGSIb3DQEJBDEiBCC9pYv3NWG0hjMm -# Yuhvj4GuvyBC76Bt6Py19zxhNUYQAjCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQw -# gb0EIBGFzN38U8ifGNH3abaE9apz68Y4bX78jRa2QKy3KHR5MIGYMIGApH4wfDEL -# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v -# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWlj -# cm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH+0KjCezQhCwEAAQAAAf4w -# IgQgNYz+2buZPA8NqIdoRJ8Pmh/jZN8zTfPAbmN6lIv+WwwwDQYJKoZIhvcNAQEL -# BQAEggIAmQKLUQP5P1wTgYLnC3fmkO9t4DDwpUEIIBI1bn3oPNeAYAEXi2Ppi8uy -# /TWDgWLfkb7AFtEks6VUWx3buGuanhe96mMcxmukYPq+m20C4jKvVRgmUdZgEv6G -# gB5urefhPaJplFhIeBXNupJI5Hd0o2wN4ohwd8WlupwkHdyWUtNueIwFCtGtHrWo -# nYq5zqSrsySHHhge74B8CqwBRLHBtESUaE4MbZ38KzHb+mTtyvepqxSlKLWcEvQF -# +8V9UyWhE56z758HhNg4ksi2jovT1ruP9X8PDZVzKAPSCrckaXm4BtO3un6ashG+ -# gasxTrqMoxtwwKBe+8PPX9aCEcWseH1AtXMY1PzY0LYDYGDoZgJzfbtarWFbUUP1 -# X6Kpk9KlcJF2yloZ5pOVVHgj3Sn5MB2S5Ug56D0Y4pvKpI0x9R70toeeUdWK2EDZ -# G8AUKsZtmOF5ZrAxjJbcGP2U32X30nYXj3We5da2MRKQGH9/We8GXvj8Uit9Mxpx -# 64VHRwqqgICgm/eLlcP2lYG6WawGrurjyuOhnin6JArd48Gx5sGt0zACbgvYXgq2 -# X0q09FSVpiRwD7GgEL9nSV5RVXu2oVhuLSuh53ouXddAvuwntezEhDooPtXn5uiZ -# myUx0epJMbRU9suEfJK6jPjh2bPrpLvoUYoCbrA/phklO9Lwfew= -# SIG # End signature block diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psd1 b/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psd1 deleted file mode 100644 index b4376c0c3ee6..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psd1 +++ /dev/null @@ -1,354 +0,0 @@ -# -# Module manifest for module 'Microsoft.Teams.PowerShell.TeamsCmdlets' -# -# Generated by: Microsoft Corporation -# -# Updated on: 6/30/2020 -# - -@{ -# Script module or binary module file associated with this manifest. -RootModule = './Microsoft.Teams.PowerShell.TeamsCmdlets.psm1' - -# Version number of this module. -# There's a string replace for the actual module version in the build pipeline -ModuleVersion = '1.3.8' - -# Supported PSEditions -CompatiblePSEditions = 'Core', 'Desktop' - -# ID used to uniquely identify this module -GUID = '3dfbed68-91ab-432e-b8bf-affe360d2c2f' - -# Author of this module -Author = 'Microsoft Corporation' - -# Company or vendor of this module -CompanyName = 'Microsoft Corporation' - -# Copyright statement for this module -Copyright = 'Microsoft Corporation. All rights reserved.' - -# Description of the functionality provided by this module -Description = 'Microsoft Teams cmdlets sub module for Windows PowerShell and PowerShell Core. - -For more information, please visit the following: https://docs.microsoft.com/MicrosoftTeams/teams-powershell-overview' - -# Minimum version of the Windows PowerShell engine required by this module -PowerShellVersion = '5.1' - -# Name of the Windows PowerShell host required by this module -# PowerShellHostName = '' - -# Minimum version of the Windows PowerShell host required by this module -# PowerShellHostVersion = '' - -# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -DotNetFrameworkVersion = '4.7.2' - -# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -CLRVersion = '4.0' - -# Processor architecture (None, X86, Amd64) required by this module -# ProcessorArchitecture = 'Amd64' - -# Modules that must be imported into the global environment prior to importing this module -# RequiredModules = @() - -# Assemblies that must be loaded prior to importing this module -# RequiredAssemblies = @() - -# Script files (.ps1) that are run in the caller's environment prior to importing this module. -# ScriptsToProcess = @() - -# Type files (.ps1xml) to be loaded when importing this module -# TypesToProcess = @() - -# Format files (.ps1xml) to be loaded when importing this module -FormatsToProcess = @('GetTeamSettings.format.ps1xml') - -# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. -CmdletsToExport = @( - 'Add-TeamChannelUser' - ,'Add-TeamUser' - ,'Get-AssociatedTeam' - ,'Get-MultiGeoRegion' - ,'Get-Operation' - ,'Get-SharedWithTeam' - ,'Get-SharedWithTeamUser' - ,'Get-Team' - ,'Get-TeamAllChannel' - ,'Get-TeamChannel' - ,'Get-TeamChannelUser' - ,'Get-TeamIncomingChannel' - ,'Get-TeamsApp' - ,'Get-TeamUser' - ,'Get-M365TeamsApp' - ,'Get-AllM365TeamsApps' - ,'Get-M365UnifiedTenantSettings' - ,'Get-M365UnifiedCustomPendingApps' - ,'New-Team' - ,'New-TeamChannel' - ,'New-TeamsApp' - ,'Remove-SharedWithTeam' - ,'Remove-Team' - ,'Remove-TeamChannel' - ,'Remove-TeamChannelUser' - ,'Remove-TeamsApp' - ,'Remove-TeamUser' - ,'Set-Team' - ,'Set-TeamArchivedState' - ,'Set-TeamChannel' - ,'Set-TeamPicture' - ,'Set-TeamsApp' - ,'Update-M365TeamsApp' - ,'Update-M365UnifiedTenantSettings' - ,'Update-M365UnifiedCustomPendingApp' - ,'Add-TeamsAppInstallation' - ,'Get-TeamsAppInstallation' - ,'Get-TeamTargetingHierarchyStatus' - ,'Remove-TeamsAppInstallation' - ,'Remove-TeamTargetingHierarchy' - ,'Set-TeamTargetingHierarchy' - ,'Update-TeamsAppInstallation' - ,'Get-LicenseReportForChangeNotificationSubscription' - ) - -# Variables to export from this module -VariablesToExport = '*' - -# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. -AliasesToExport = '*' - -# DSC resources to export from this module -# DscResourcesToExport = @() - -# List of all modules packaged with this module -# ModuleList = @() - -# List of all files packaged with this module -# FileList = @() - -# HelpInfo URI of this module -# HelpInfoURI = '' - -# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. -# DefaultCommandPrefix = '' -} -# SIG # Begin signature block -# MIIoQwYJKoZIhvcNAQcCoIIoNDCCKDACAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCjtlCHi1ZYyvXm -# 2/tbnUUaX7dEVEyQaervcfcrNzmBUaCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIKw4xiidaIIHsXJnrurQGxRD -# rgRSvUniGfTJyk5GKZjBMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAB9bx+c0zUqiEc1/hI5+q0AFy4XF01/1jMxIpxJ0jRMVB5lekS1o3KyXJ -# VIjUO/EBomd3GhDA9/CUvE5IofmiTNjRmlatF6W88FakQEMRVebgClDT3kagPCdz -# 99nCCgYax0gXn8VXRqMZxFDmOGi8XDYHgHu/gdeVXH4biG52r9K6Ya/VIOymJJtU -# kCsyB0pzN0nNKsRlj4ic1aNZ7w0UcqoAbsT6y5VrSgBvrKMLEuqluuYYtmwbriaF -# tAlmQKmT7L2qk8YS5F15TbuuVtMh6R4T5xZssMVQ/LshNROdlLzWuiOzIePoldz7 -# IZNii7wXxaNAGWfTFZz1XIn2Pe4uRaGCF60wghepBgorBgEEAYI3AwMBMYIXmTCC -# F5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsq -# hkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCDkpHsYcDr/NJQyrm6Y/9KA0g4Y7/pdrpXDS662/ye25QIGZ7YcZkIC -# GBMyMDI1MDMxMzA4NDcyMi40MTNaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo0MzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB+vs7RNN3M8bTAAEAAAH6MA0G -# CSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI0 -# MDcyNTE4MzExMVoXDTI1MTAyMjE4MzExMVowgdMxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9w -# ZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjQzMUEt -# MDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAyhZVBM3PZcBfEpAf7fII -# hygwYVVP64USeZbSlRR3pvJebva0LQCDW45yOrtpwIpGyDGX+EbCbHhS5Td4J0Yl -# c83ztLEbbQD7M6kqR0Xj+n82cGse/QnMH0WRZLnwggJdenpQ6UciM4nMYZvdQjyb -# A4qejOe9Y073JlXv3VIbdkQH2JGyT8oB/LsvPL/kAnJ45oQIp7Sx57RPQ/0O6qay -# J2SJrwcjA8auMdAnZKOixFlzoooh7SyycI7BENHTpkVKrRV5YelRvWNTg1pH4EC2 -# KO2bxsBN23btMeTvZFieGIr+D8mf1lQQs0Ht/tMOVdah14t7Yk+xl5P4Tw3xfAGg -# Hsvsa6ugrxwmKTTX1kqXH5XCdw3TVeKCax6JV+ygM5i1NroJKwBCW11Pwi0z/ki9 -# 0ZeO6XfEE9mCnJm76Qcxi3tnW/Y/3ZumKQ6X/iVIJo7Lk0Z/pATRwAINqwdvzpdt -# X2hOJib4GR8is2bpKks04GurfweWPn9z6jY7GBC+js8pSwGewrffwgAbNKm82ZDF -# vqBGQQVJwIHSXpjkS+G39eyYOG2rcILBIDlzUzMFFJbNh5tDv3GeJ3EKvC4vNSAx -# tGfaG/mQhK43YjevsB72LouU78rxtNhuMXSzaHq5fFiG3zcsYHaa4+w+YmMrhTEz -# D4SAish35BjoXP1P1Ct4Va0CAwEAAaOCAUkwggFFMB0GA1UdDgQWBBRjjHKbL5WV -# 6kd06KocQHphK9U/vzAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBf -# BgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmww -# bAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29m -# dC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0El -# MjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUF -# BwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEAuFbCorFrvodG -# +ZNJH3Y+Nz5QpUytQVObOyYFrgcGrxq6MUa4yLmxN4xWdL1kygaW5BOZ3xBlPY7V -# puf5b5eaXP7qRq61xeOrX3f64kGiSWoRi9EJawJWCzJfUQRThDL4zxI2pYc1wnPp -# 7Q695bHqwZ02eaOBudh/IfEkGe0Ofj6IS3oyZsJP1yatcm4kBqIH6db1+weM4q46 -# NhAfAf070zF6F+IpUHyhtMbQg5+QHfOuyBzrt67CiMJSKcJ3nMVyfNlnv6yvttYz -# LK3wS+0QwJUibLYJMI6FGcSuRxKlq6RjOhK9L3QOjh0VCM11rHM11ZmN0euJbbBC -# VfQEufOLNkG88MFCUNE10SSbM/Og/CbTko0M5wbVvQJ6CqLKjtHSoeoAGPeeX24f -# 5cPYyTcKlbM6LoUdO2P5JSdI5s1JF/On6LiUT50adpRstZajbYEeX/N7RvSbkn0d -# jD3BvT2Of3Wf9gIeaQIHbv1J2O/P5QOPQiVo8+0AKm6M0TKOduihhKxAt/6Yyk17 -# Fv3RIdjT6wiL2qRIEsgOJp3fILw4mQRPu3spRfakSoQe5N0e4HWFf8WW2ZL0+c83 -# Qzh3VtEPI6Y2e2BO/eWhTYbIbHpqYDfAtAYtaYIde87ZymXG3MO2wUjhL9HvSQzj -# oquq+OoUmvfBUcB2e5L6QCHO6qTO7WowggdxMIIFWaADAgECAhMzAAAAFcXna54C -# m0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp -# Y2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMy -# MjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0B -# AQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51 -# yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY -# 6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9 -# cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN -# 7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDua -# Rr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74 -# kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2 -# K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5 -# TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZk -# i1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9Q -# BXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3Pmri -# Lq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUC -# BBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJl -# pxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIB -# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9y -# eS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUA -# YgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU -# 1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2Ny -# bC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIw -# MTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0w -# Ni0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/yp -# b+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulm -# ZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM -# 9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECW -# OKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4 -# FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3Uw -# xTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPX -# fx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVX -# VAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGC -# onsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU -# 5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEG -# ahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo0MzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUA94Z+bUJn+nKwBvII6sg0Ny7aPDaggYMw -# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsF -# AAIFAOt88VYwIhgPMjAyNTAzMTMwNTUzMjZaGA8yMDI1MDMxNDA1NTMyNlowdDA6 -# BgorBgEEAYRZCgQBMSwwKjAKAgUA63zxVgIBADAHAgEAAgIIgzAHAgEAAgISejAK -# AgUA635C1gIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIB -# AAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQCOSuoiYG3A/J+t -# n/9xNnRtJHXTxK9fEhT5+EtA1G9C9yB68k9LYD9i9bQkStFBXD1VwcJXlx/4RMVN -# lpzISoN314oBJXC+lfpfaIJbgW5NZJGl9Zn6HUZtayB5GQCcAPTnJLri3r9BPcfT -# TAaZsP/CHbfa3vNghgu66C7mA7gEHmcJQm8Fd2GftUYI8oVLIS4isfn4WVz87Icr -# cHZgWs5RMyteDKlWSCQOuH/XcwT4c9NJ5gCi0wy9NwIqXoTJnEkQE1UF3rKKp7Lw -# x4/0cKzFmk4Ynz88ka6QQlpZavpyIdRHBr2w66l7ebCW6ZD7cDmMXJbXq2yYYXAs -# YKmMTd5vMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAH6+ztE03czxtMAAQAAAfowDQYJYIZIAWUDBAIBBQCgggFKMBoGCSqG -# SIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgWT+kFH5W3/vC -# Bhf+KitHsBzE49D2GGkp7t3aR01CoTcwgfoGCyqGSIb3DQEJEAIvMYHqMIHnMIHk -# MIG9BCB98n8tya8+B2jjU/dpJRIwHwHHpco5ogNStYocbkOeVjCBmDCBgKR+MHwx -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1p -# Y3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB+vs7RNN3M8bTAAEAAAH6 -# MCIEIDJIRoeiHGIOMblR+Tw/9sb93Hl8S0tTvT3l3srT2GC3MA0GCSqGSIb3DQEB -# CwUABIICAMafRpU6o+xttBr0NAOs7nl8tujlDarlIRun1ci+cEyYzE5lKvwPi5UG -# alxqOLJe1M0wWFd4/NVSOI0V3fEglOFOScKc4kjJ9k/cIqLIfDT1BbXGzpVoqzhR -# 7rMDTTUeYdE3w6HnGjhSlQRxiJFJKRO0hPk6EC1KaaW5frqX+Wgqp0VJReNtE3OM -# Qi/np6OLiSH0JnT6w0071rcKtIUnKNwgggBrKnaroz5/kcQiOfZ4gTBkBwMYHLRP -# dUENXUiY7Vj3CegGxgi8wjWiAZlR/TVFH/VN25u4636hvynbF05J7dfQRVQMx3Or -# GlPemM5qK5hsxrIOiuXST3FcVcpYomBCIcpydUC4fhl7pmE87b7IYX+ykTaOKYeh -# vEEU+zDdJkShc2xlGsC3MmGLtKZw7dee+phGxnrFogXqJowqqUOeWtCQF8KF3Lcv -# 2uLMkXAxUpfl2gDV2uEbpg/Pfq5swH4H9jKNv/XoqVM9SBl3m4PO0rlz40Nhz/8A -# Jw+ujaPxgOiHMv/GzmPgb7b8RpfdRGElSsYfEfczkwr4PsmeY35AlQz2Eeg8RYeP -# bF4zdoIMwsPgyEdLHCpPfQe9zv+UaEvXymbCa2i59P4ryDfThCEWH2F02cnjLfHJ -# SSN00w8y3y74DMEcGTUUxrBXj+0MtQ61Mt9Yo0XYZYItWFQ+7Buf -# SIG # End signature block diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psm1 b/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psm1 deleted file mode 100644 index 4cfcd08439f0..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psm1 +++ /dev/null @@ -1,226 +0,0 @@ -if($PSEdition -ne 'Desktop') -{ - Import-Module $('{0}\netcoreapp3.1\Microsoft.Teams.PowerShell.TeamsCmdlets.dll' -f $PSScriptRoot) -} -else -{ - Import-Module $('{0}\net472\Microsoft.Teams.PowerShell.TeamsCmdlets.dll' -f $PSScriptRoot) -} -# SIG # Begin signature block -# MIIoUgYJKoZIhvcNAQcCoIIoQzCCKD8CAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCtJNoep0vYvS0u -# zCBbwqBqybUYNuPYHWudLYoWOcLIVqCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIF3F -# viB5I/Ax1ZFPXrSiQ9VfQ9tIZcCOZ+89t8Pe2ekmMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEATznjiEztZTERI+EkRAl3T9SnKB3ulb+ASVSL -# y4CUx9aXUh9vS1ccVbaM2YKkNVHUKhqjJ70FzM4B/T6aWecabHoHoFrnrqL65By8 -# iCVwrjk/4EEJVbb14EVicLvgubSasV8Kezlhn0dnfH5xUhyRCQvvR5GzduppHP7K -# bVTPozv5VGKvNBZDc1IpiTpTZNbRa+zEaYSiZnDdOHe+7DK8FMkfkxOBKh8M7JEK -# hlCBWMh3qBw6K4G4GtCzdIAliYKdOcOoSmL8q6uXw218+N7ujq0y+no3w4cQsV3A -# iHkV+zoxGQw2Xu7fMyQO/Ji+00lLHfLnka7W2MPrP+tAD20I2qGCF60wghepBgor -# BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCwMsidz0tMlTuQSvsZWGkNHlKDz55HTk/w -# CDf2ipoWmAIGZ7YcZkIxGBMyMDI1MDMxMzA4NDcyMy41OTdaMASAAgH0oIHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo0MzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB+vs7 -# RNN3M8bTAAEAAAH6MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExMVoXDTI1MTAyMjE4MzExMVowgdMxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv -# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs -# ZCBUU1MgRVNOOjQzMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA -# yhZVBM3PZcBfEpAf7fIIhygwYVVP64USeZbSlRR3pvJebva0LQCDW45yOrtpwIpG -# yDGX+EbCbHhS5Td4J0Ylc83ztLEbbQD7M6kqR0Xj+n82cGse/QnMH0WRZLnwggJd -# enpQ6UciM4nMYZvdQjybA4qejOe9Y073JlXv3VIbdkQH2JGyT8oB/LsvPL/kAnJ4 -# 5oQIp7Sx57RPQ/0O6qayJ2SJrwcjA8auMdAnZKOixFlzoooh7SyycI7BENHTpkVK -# rRV5YelRvWNTg1pH4EC2KO2bxsBN23btMeTvZFieGIr+D8mf1lQQs0Ht/tMOVdah -# 14t7Yk+xl5P4Tw3xfAGgHsvsa6ugrxwmKTTX1kqXH5XCdw3TVeKCax6JV+ygM5i1 -# NroJKwBCW11Pwi0z/ki90ZeO6XfEE9mCnJm76Qcxi3tnW/Y/3ZumKQ6X/iVIJo7L -# k0Z/pATRwAINqwdvzpdtX2hOJib4GR8is2bpKks04GurfweWPn9z6jY7GBC+js8p -# SwGewrffwgAbNKm82ZDFvqBGQQVJwIHSXpjkS+G39eyYOG2rcILBIDlzUzMFFJbN -# h5tDv3GeJ3EKvC4vNSAxtGfaG/mQhK43YjevsB72LouU78rxtNhuMXSzaHq5fFiG -# 3zcsYHaa4+w+YmMrhTEzD4SAish35BjoXP1P1Ct4Va0CAwEAAaOCAUkwggFFMB0G -# A1UdDgQWBBRjjHKbL5WV6kd06KocQHphK9U/vzAfBgNVHSMEGDAWgBSfpxVdAF5i -# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv -# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB -# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw -# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp -# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud -# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF -# AAOCAgEAuFbCorFrvodG+ZNJH3Y+Nz5QpUytQVObOyYFrgcGrxq6MUa4yLmxN4xW -# dL1kygaW5BOZ3xBlPY7Vpuf5b5eaXP7qRq61xeOrX3f64kGiSWoRi9EJawJWCzJf -# UQRThDL4zxI2pYc1wnPp7Q695bHqwZ02eaOBudh/IfEkGe0Ofj6IS3oyZsJP1yat -# cm4kBqIH6db1+weM4q46NhAfAf070zF6F+IpUHyhtMbQg5+QHfOuyBzrt67CiMJS -# KcJ3nMVyfNlnv6yvttYzLK3wS+0QwJUibLYJMI6FGcSuRxKlq6RjOhK9L3QOjh0V -# CM11rHM11ZmN0euJbbBCVfQEufOLNkG88MFCUNE10SSbM/Og/CbTko0M5wbVvQJ6 -# CqLKjtHSoeoAGPeeX24f5cPYyTcKlbM6LoUdO2P5JSdI5s1JF/On6LiUT50adpRs -# tZajbYEeX/N7RvSbkn0djD3BvT2Of3Wf9gIeaQIHbv1J2O/P5QOPQiVo8+0AKm6M -# 0TKOduihhKxAt/6Yyk17Fv3RIdjT6wiL2qRIEsgOJp3fILw4mQRPu3spRfakSoQe -# 5N0e4HWFf8WW2ZL0+c83Qzh3VtEPI6Y2e2BO/eWhTYbIbHpqYDfAtAYtaYIde87Z -# ymXG3MO2wUjhL9HvSQzjoquq+OoUmvfBUcB2e5L6QCHO6qTO7WowggdxMIIFWaAD -# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD -# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe -# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv -# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy -# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 -# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 -# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu -# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl -# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg -# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I -# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 -# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ -# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy -# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y -# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H -# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB -# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW -# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B -# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB -# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB -# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL -# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv -# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr -# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS -# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq -# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 -# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv -# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak -# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK -# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 -# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ -# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep -# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk -# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg -# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ -# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo0MzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUA94Z+bUJn+nKw -# BvII6sg0Ny7aPDaggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDANBgkqhkiG9w0BAQsFAAIFAOt88VYwIhgPMjAyNTAzMTMwNTUzMjZaGA8yMDI1 -# MDMxNDA1NTMyNlowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA63zxVgIBADAHAgEA -# AgIIgzAHAgEAAgISejAKAgUA635C1gIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor -# BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUA -# A4IBAQCOSuoiYG3A/J+tn/9xNnRtJHXTxK9fEhT5+EtA1G9C9yB68k9LYD9i9bQk -# StFBXD1VwcJXlx/4RMVNlpzISoN314oBJXC+lfpfaIJbgW5NZJGl9Zn6HUZtayB5 -# GQCcAPTnJLri3r9BPcfTTAaZsP/CHbfa3vNghgu66C7mA7gEHmcJQm8Fd2GftUYI -# 8oVLIS4isfn4WVz87IcrcHZgWs5RMyteDKlWSCQOuH/XcwT4c9NJ5gCi0wy9NwIq -# XoTJnEkQE1UF3rKKp7Lwx4/0cKzFmk4Ynz88ka6QQlpZavpyIdRHBr2w66l7ebCW -# 6ZD7cDmMXJbXq2yYYXAsYKmMTd5vMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTACEzMAAAH6+ztE03czxtMAAQAAAfowDQYJYIZIAWUD -# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B -# CQQxIgQgBouQ3XjJaVlcPnS/Ze65m6rb+XpkMoKHLrbRhUGvqg4wgfoGCyqGSIb3 -# DQEJEAIvMYHqMIHnMIHkMIG9BCB98n8tya8+B2jjU/dpJRIwHwHHpco5ogNStYoc -# bkOeVjCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB -# +vs7RNN3M8bTAAEAAAH6MCIEIDJIRoeiHGIOMblR+Tw/9sb93Hl8S0tTvT3l3srT -# 2GC3MA0GCSqGSIb3DQEBCwUABIICAEacNRHFOabDQUyTv8u+h9sb4gCW/MPUjUcT -# e9b7HockBhu3h5ARavVAwrfA1iXK+g092g/hSHOeyAJsPfI8MC8VMuP7yBd3JrGK -# 81jQCWV/8+1MfTb5ZkklfwMtXrXX57sXiy0kaENB/xjzLtfNhJycSOuDRNsdKKeE -# 8GNXwDSnk9/xNxzlvGfckobpryygps+rZUL3/w+qdERnZlBGvRWMj8N6ZhnaLjdn -# LYR3TjB5OlUBACjxqRnk39+S4d4jeeoFeZheMzwoaY4eutckjiowO2jiLgPzZLDV -# pDYWItfav3rlUJwJtZhBqCX+peu9HWxeHN/Cg28X8wzS8EJxLGI3GaGTpIS/V54q -# vMVY4S6lMI3sYoG3wGTC1BgNV/swYUcg7FQXHkoOxnNEAYREDn/EXbzXGcBIZKry -# KMxmp+Ku2ZyVQ6b3/KI5i1YPYCYxvhe86f52hKmaqKQommn3C2F/bHdCc3olLGH5 -# MVdIpBkTL9FKh1dfisNbVvEBgJhfol+ym+1LAjEOtcaQpTB/X+Lat+HrW8GzW9CB -# E4N8Nb2aW9MmRlIzhD712asOIjfxXgUvDYFv4QC2GrITrUg2DZG0JnwVa8eoBQJo -# vzkBwUvnZzZioGnevwl1ypT5kRCAgtFLBlEtGEXN4nX8rT4hhO5B3ykXPwpP4sWE -# xHuvpYl8 -# SIG # End signature block diff --git a/Modules/MicrosoftTeams/6.9.0/MicrosoftTeams.psd1 b/Modules/MicrosoftTeams/6.9.0/MicrosoftTeams.psd1 deleted file mode 100644 index 9e2f0e4b5460..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/MicrosoftTeams.psd1 +++ /dev/null @@ -1,1013 +0,0 @@ -# -# Module manifest for module 'MicrosoftTeams' -# -# Generated by: Microsoft Corporation -# -# Updated on: 6/30/2020 -# - -@{ -# Script module or binary module file associated with this manifest. -RootModule = './MicrosoftTeams.psm1' - -# Version number of this module. -ModuleVersion = '6.9.0' - -# Supported PSEditions -CompatiblePSEditions = 'Core', 'Desktop' - -# ID used to uniquely identify this module -GUID = 'd910df43-3ca6-4c9c-a2e3-e9f45a8e2ad9' - -# Author of this module -Author = 'Microsoft Corporation' - -# Company or vendor of this module -CompanyName = 'Microsoft Corporation' - -# Copyright statement for this module -Copyright = 'Microsoft Corporation. All rights reserved.' - -# Description of the functionality provided by this module -Description = 'Microsoft Teams cmdlets module for Windows PowerShell and PowerShell Core. - -For more information, please visit the following: https://docs.microsoft.com/MicrosoftTeams/teams-powershell-overview' - -# Minimum version of the Windows PowerShell engine required by this module -PowerShellVersion = '5.1' - -# Name of the Windows PowerShell host required by this module -# PowerShellHostName = '' - -# Minimum version of the Windows PowerShell host required by this module -# PowerShellHostVersion = '' - -# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -DotNetFrameworkVersion = '4.7.2' - -# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -CLRVersion = '4.0' - -# Processor architecture (None, X86, Amd64) required by this module -# ProcessorArchitecture = 'Amd64' - -# Modules that must be imported into the global environment prior to importing this module -# RequiredModules = @() - -# Assemblies that must be loaded prior to importing this module -# RequiredAssemblies = @() - -# Script files (.ps1) that are run in the caller's environment prior to importing this module. -# Removed this script from here because this module is used in SAW machines as well where Contraint Language Mode is on. -# Because of CLM constraint we were not able to import Teams module to SAW machines, that is why removing this script. -# ScriptsToProcess = @() - -# Type files (.ps1xml) to be loaded when importing this module -# TypesToProcess = @() - -# Format files (.ps1xml) to be loaded when importing this module -FormatsToProcess = @() - -# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess -#NestedModules = @() - -# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. -FunctionsToExport = @( - 'Clear-CsOnlineTelephoneNumberOrder' - ,'Complete-CsOnlineTelephoneNumberOrder' - ,'Disable-CsOnlineSipDomain' -#preview ,'Disable-CsTeamsShiftsConnectionErrorReport' - ,'Enable-CsOnlineSipDomain' - ,'Export-CsAcquiredPhoneNumber' - ,'Export-CsAutoAttendantHolidays' - ,'Export-CsOnlineAudioFile' - ,'Find-CsGroup' - ,'Find-CsOnlineApplicationInstance' - ,'Get-CsApplicationAccessPolicy' - ,'Get-CsApplicationMeetingConfiguration' - ,'Get-CsAutoAttendant' - ,'Get-CsAutoAttendantHolidays' - ,'Get-CsAutoAttendantStatus' - ,'Get-CsAutoAttendantSupportedLanguage' - ,'Get-CsAutoAttendantSupportedTimeZone' - ,'Get-CsAutoAttendantTenantInformation' - ,'Get-CsBatchPolicyAssignmentOperation' - ,'Get-CsCallingLineIdentity' - ,'Get-CsCallQueue' - ,'Get-CsCloudCallDataConnection' - ,'Get-CsDialPlan' - ,'Get-CsEffectiveTenantDialPlan' - ,'Get-CsExportAcquiredPhoneNumberStatus' - ,'Get-CsGroupPolicyAssignment' - ,'Get-CsHybridTelephoneNumber' - ,'Get-CsInboundBlockedNumberPattern' - ,'Get-CsInboundExemptNumberPattern' - ,'Get-CsMeetingMigrationStatus' - ,'Get-CsOnlineApplicationInstance' - ,'Get-CsOnlineApplicationInstanceAssociation' - ,'Get-CsOnlineApplicationInstanceAssociationStatus' - ,'Get-CsOnlineAudioConferencingRoutingPolicy' - ,'Get-CsOnlineAudioFile' - ,'Get-CsOnlineDialInConferencingBridge' - ,'Get-CsOnlineDialInConferencingLanguagesSupported' - ,'Get-CsOnlineDialinConferencingPolicy' - ,'Get-CsOnlineDialInConferencingServiceNumber' - ,'Get-CsOnlineDialinConferencingTenantConfiguration' - ,'Get-CsOnlineDialInConferencingTenantSettings' - ,'Get-CsOnlineDialInConferencingUser' - ,'Get-CsOnlineDialOutPolicy' - ,'Get-CsOnlineDirectoryTenant' - ,'Get-CsOnlineEnhancedEmergencyServiceDisclaimer' - ,'Get-CsOnlineLisCivicAddress' - ,'Get-CsOnlineLisLocation' - ,'Get-CsOnlineLisPort' - ,'Get-CsOnlineLisSubnet' - ,'Get-CsOnlineLisSwitch' - ,'Get-CsOnlineLisWirelessAccessPoint' - ,'Get-CsOnlinePowerShellEndpoint' - ,'Get-CsOnlinePSTNGateway' - ,'Get-CsOnlinePstnUsage' - ,'Get-CsOnlineSchedule' - ,'Get-CsOnlineSipDomain' - ,'Get-CsOnlineTelephoneNumber' - ,'Get-CsOnlineTelephoneNumberCountry' - ,'Get-CsOnlineTelephoneNumberOrder' - ,'Get-CsOnlineTelephoneNumberType' - ,'Get-CsOnlineUser' - ,'Get-CsOnlineVoicemailUserSettings' - ,'Get-CsOnlineVoiceRoute' - ,'Get-CsOnlineVoiceRoutingPolicy' - ,'Get-CsOnlineVoiceUser' - ,'Get-CsPhoneNumberAssignment' - ,'Get-CsPolicyPackage' - ,'Get-CsSdgBulkSignInRequestStatus' - ,'Get-CsSDGBulkSignInRequestsSummary' - ,'Get-CsTeamsAcsFederationConfiguration' - ,'Get-CsTeamsAudioConferencingPolicy' - ,'Get-CsTeamsCallParkPolicy' - ,'Get-CsTeamsCortanaPolicy' - ,'Get-CsTeamsEmergencyCallRoutingPolicy' - ,'Get-CsTeamsEnhancedEncryptionPolicy' - ,'Get-CsTeamsGuestCallingConfiguration' - ,'Get-CsTeamsGuestMeetingConfiguration' - ,'Get-CsTeamsGuestMessagingConfiguration' - ,'Get-CsTeamsIPPhonePolicy' - ,'Get-CsTeamsMediaLoggingPolicy' - ,'Get-CsTeamsMeetingBroadcastConfiguration' - ,'Get-CsTeamsMeetingBroadcastPolicy' - ,'Get-CsTeamsMigrationConfiguration' - ,'Get-CsTeamsMobilityPolicy' - ,'Get-CsTeamsNetworkRoamingPolicy' - ,'Get-CsTeamsRoomVideoTeleConferencingPolicy' - ,'Get-CsTeamsSettingsCustomApp' - ,'Get-CsTeamsShiftsAppPolicy' - ,'Get-CsTeamsShiftsConnectionConnector' - ,'Get-CsTeamsShiftsConnectionErrorReport' - ,'Get-CsTeamsShiftsConnection' - ,'Get-CsTeamsShiftsConnectionInstance' - ,'Get-CsTeamsShiftsConnectionOperation' - ,'Get-CsTeamsShiftsConnectionSyncResult' - ,'Get-CsTeamsShiftsConnectionTeamMap' - ,'Get-CsTeamsShiftsConnectionWfmTeam' - ,'Get-CsTeamsShiftsConnectionWfmUser' - ,'Get-CsTeamsSurvivableBranchAppliance' - ,'Get-CsTeamsSurvivableBranchAppliancePolicy' - ,'Get-CsTeamsTargetingPolicy' - ,'Get-CsTeamsTranslationRule' - ,'Get-CsTeamsUnassignedNumberTreatment' - ,'Get-CsTeamsUpgradePolicy' - ,'Get-CsTeamsVdiPolicy' - ,'Get-CsTeamsVideoInteropServicePolicy' - ,'Get-CsTeamsWorkLoadPolicy' - ,'Get-CsTeamTemplate' - ,'Get-CsTeamTemplateList' - ,'Get-CsTenant' - ,'Get-CsTenantBlockedCallingNumbers' - ,'Get-CsTenantDialPlan' - ,'Get-CsTenantFederationConfiguration' - ,'Get-CsTenantLicensingConfiguration' - ,'Get-CsTenantMigrationConfiguration' - ,'Get-CsTenantNetworkConfiguration' - ,'Get-CsTenantNetworkRegion' - ,'Get-CsTenantNetworkSubnet' - ,'Get-CsTenantTrustedIPAddress' - ,'Get-CsUserCallingSettings' - ,'Get-CsUserPolicyAssignment' - ,'Get-CsUserPolicyPackage' - ,'Get-CsUserPolicyPackageRecommendation' - ,'Get-CsVideoInteropServiceProvider' - ,'Grant-CsApplicationAccessPolicy' - ,'Grant-CsCallingLineIdentity' - ,'Grant-CsDialoutPolicy' - ,'Grant-CsGroupPolicyPackageAssignment' - ,'Grant-CsOnlineAudioConferencingRoutingPolicy' - ,'Grant-CsOnlineVoicemailPolicy' - ,'Grant-CsOnlineVoiceRoutingPolicy' - ,'Grant-CsTeamsAudioConferencingPolicy' - ,'Grant-CsTeamsCallHoldPolicy' - ,'Grant-CsTeamsCallParkPolicy' - ,'Grant-CsTeamsChannelsPolicy' - ,'Grant-CsTeamsCortanaPolicy' - ,'Grant-CsTeamsEmergencyCallingPolicy' - ,'Grant-CsTeamsEmergencyCallRoutingPolicy' - ,'Grant-CsTeamsEnhancedEncryptionPolicy' - ,'Grant-CsTeamsFeedbackPolicy' - ,'Grant-CsTeamsIPPhonePolicy' - ,'Grant-CsTeamsMediaLoggingPolicy' - ,'Grant-CsTeamsMeetingBroadcastPolicy' - ,'Grant-CsTeamsMeetingPolicy' - ,'Grant-CsTeamsMessagingPolicy' - ,'Grant-CsTeamsMobilityPolicy' - ,'Grant-CsTeamsRoomVideoTeleConferencingPolicy' - ,'Grant-CsTeamsSurvivableBranchAppliancePolicy' - ,'Grant-CsTeamsUpdateManagementPolicy' - ,'Grant-CsTeamsUpgradePolicy' - ,'Grant-CsTeamsVideoInteropServicePolicy' - ,'Grant-CsTeamsVoiceApplicationsPolicy' - ,'Grant-CsTeamsWorkLoadPolicy' - ,'Grant-CsTenantDialPlan' - ,'Grant-CsUserPolicyPackage' - ,'Grant-CsTeamsComplianceRecordingPolicy' - ,'Import-CsAutoAttendantHolidays' - ,'Import-CsOnlineAudioFile' - ,'Invoke-CsInternalPSTelemetry' - ,'Move-CsInternalHelper' - ,'New-CsApplicationAccessPolicy' - ,'New-CsAutoAttendant' - ,'New-CsAutoAttendantCallableEntity' - ,'New-CsAutoAttendantCallFlow' - ,'New-CsAutoAttendantCallHandlingAssociation' - ,'New-CsAutoAttendantDialScope' - ,'New-CsAutoAttendantMenu' - ,'New-CsAutoAttendantMenuOption' - ,'New-CsAutoAttendantPrompt' - ,'New-CsBatchPolicyAssignmentOperation' - ,'New-CsBatchPolicyPackageAssignmentOperation' - ,'New-CsCallingLineIdentity' - ,'New-CsCallQueue' - ,'New-CsCloudCallDataConnection' - ,'New-CsCustomPolicyPackage' - ,'New-CsEdgeAllowAllKnownDomains' - ,'New-CsEdgeAllowList' - ,'New-CsEdgeDomainPattern' - ,'New-CsGroupPolicyAssignment' - ,'New-CsHybridTelephoneNumber' - ,'New-CsInboundBlockedNumberPattern' - ,'New-CsInboundExemptNumberPattern' - ,'New-CsOnlineApplicationInstance' - ,'New-CsOnlineApplicationInstanceAssociation' - ,'New-CsOnlineAudioConferencingRoutingPolicy' - ,'New-CsOnlineDateTimeRange' - ,'New-CsOnlineLisCivicAddress' - ,'New-CsOnlineLisLocation' - ,'New-CsOnlinePSTNGateway' - ,'New-CsOnlineSchedule' - ,'New-CsOnlineTelephoneNumberOrder' - ,'New-CsOnlineTimeRange' - ,'New-CsOnlineVoiceRoute' - ,'New-CsOnlineVoiceRoutingPolicy' - ,'New-CsSdgBulkSignInRequest' - ,'New-CsTeamsAudioConferencingPolicy' - ,'New-CsTeamsCallParkPolicy' - ,'New-CsTeamsCortanaPolicy' - ,'New-CsTeamsEmergencyCallRoutingPolicy' - ,'New-CsTeamsEmergencyNumber' - ,'New-CsTeamsEnhancedEncryptionPolicy' - ,'New-CsTeamsIPPhonePolicy' - ,'New-CsTeamsMeetingBroadcastPolicy' - ,'New-CsTeamsMobilityPolicy' - ,'New-CsTeamsNetworkRoamingPolicy' - ,'New-CsTeamsRoomVideoTeleConferencingPolicy' - ,'New-CsTeamsShiftsConnectionBatchTeamMap' - ,'New-CsTeamsShiftsConnection' - ,'New-CsTeamsShiftsConnectionInstance' - ,'New-CsTeamsSurvivableBranchAppliance' - ,'New-CsTeamsSurvivableBranchAppliancePolicy' - ,'New-CsTeamsTranslationRule' - ,'New-CsTeamsUnassignedNumberTreatment' - ,'New-CsTeamsVdiPolicy' - ,'New-CsTeamsWorkLoadPolicy' - ,'New-CsTeamTemplate' - ,'New-CsTenantDialPlan' - ,'New-CsTenantNetworkRegion' - ,'New-CsTenantNetworkSite' - ,'New-CsTenantNetworkSubnet' - ,'New-CsTenantTrustedIPAddress' - ,'New-CsUserCallingDelegate' - ,'New-CsVideoInteropServiceProvider' - ,'New-CsVoiceNormalizationRule' - ,'New-CsOnlineDirectRoutingTelephoneNumberUploadOrder' - ,'New-CsOnlineTelephoneNumberReleaseOrder' - ,'Register-CsOnlineDialInConferencingServiceNumber' - ,'Remove-CsApplicationAccessPolicy' - ,'Remove-CsAutoAttendant' - ,'Remove-CsCallingLineIdentity' - ,'Remove-CsCallQueue' - ,'Remove-CsCustomPolicyPackage' - ,'Remove-CsGroupPolicyAssignment' - ,'Remove-CsHybridTelephoneNumber' - ,'Remove-CsInboundBlockedNumberPattern' - ,'Remove-CsInboundExemptNumberPattern' - ,'Remove-CsOnlineApplicationInstanceAssociation' - ,'Remove-CsOnlineAudioConferencingRoutingPolicy' - ,'Remove-CsOnlineAudioFile' - ,'Remove-CsOnlineDialInConferencingTenantSettings' - ,'Remove-CsOnlineLisCivicAddress' - ,'Remove-CsOnlineLisLocation' - ,'Remove-CsOnlineLisPort' - ,'Remove-CsOnlineLisSubnet' - ,'Remove-CsOnlineLisSwitch' - ,'Remove-CsOnlineLisWirelessAccessPoint' - ,'Remove-CsOnlinePSTNGateway' - ,'Remove-CsOnlineSchedule' - ,'Remove-CsOnlineTelephoneNumber' - ,'Remove-CsOnlineVoiceRoute' - ,'Remove-CsOnlineVoiceRoutingPolicy' - ,'Remove-CsPhoneNumberAssignment' - ,'Remove-CsTeamsAudioConferencingPolicy' - ,'Remove-CsTeamsCallParkPolicy' - ,'Remove-CsTeamsCortanaPolicy' - ,'Remove-CsTeamsEmergencyCallRoutingPolicy' - ,'Remove-CsTeamsEnhancedEncryptionPolicy' - ,'Remove-CsTeamsIPPhonePolicy' - ,'Remove-CsTeamsMeetingBroadcastPolicy' - ,'Remove-CsTeamsMobilityPolicy' - ,'Remove-CsTeamsNetworkRoamingPolicy' - ,'Remove-CsTeamsRoomVideoTeleConferencingPolicy' - ,'Remove-CsTeamsShiftsConnection' - ,'Remove-CsTeamsShiftsConnectionInstance' - ,'Remove-CsTeamsShiftsConnectionTeamMap' - ,'Remove-CsTeamsShiftsScheduleRecord' - ,'Remove-CsTeamsSurvivableBranchAppliance' - ,'Remove-CsTeamsSurvivableBranchAppliancePolicy' - ,'Remove-CsTeamsTargetingPolicy' - ,'Remove-CsTeamsTranslationRule' - ,'Remove-CsTeamsUnassignedNumberTreatment' - ,'Remove-CsTeamsVdiPolicy' - ,'Remove-CsTeamsWorkLoadPolicy' - ,'Remove-CsTeamTemplate' - ,'Remove-CsTenantDialPlan' - ,'Remove-CsTenantNetworkRegion' - ,'Remove-CsTenantNetworkSite' - ,'Remove-CsTenantNetworkSubnet' - ,'Remove-CsTenantTrustedIPAddress' - ,'Remove-CsUserCallingDelegate' - ,'Remove-CsUserLicenseGracePeriod' - ,'Remove-CsVideoInteropServiceProvider' - ,'Set-CsApplicationAccessPolicy' - ,'Set-CsApplicationMeetingConfiguration' - ,'Set-CsAutoAttendant' - ,'Set-CsCallingLineIdentity' - ,'Set-CsCallQueue' - ,'Set-CsInboundBlockedNumberPattern' - ,'Set-CsInboundExemptNumberPattern' - ,'Set-CsInternalOnlinePowerShellEndpoint' - ,'Set-CsOnlineApplicationInstance' - ,'Set-CsOnlineAudioConferencingRoutingPolicy' - ,'Set-CsOnlineDialInConferencingBridge' - ,'Set-CsOnlineDialInConferencingServiceNumber' - ,'Set-CsOnlineDialInConferencingTenantSettings' - ,'Set-CsOnlineDialInConferencingUser' - ,'Set-CsOnlineDialInConferencingUserDefaultNumber' - ,'Set-CsOnlineEnhancedEmergencyServiceDisclaimer' - ,'Set-CsOnlineLisCivicAddress' - ,'Set-CsOnlineLisLocation' - ,'Set-CsOnlineLisPort' - ,'Set-CsOnlineLisSubnet' - ,'Set-CsOnlineLisSwitch' - ,'Set-CsOnlineLisWirelessAccessPoint' - ,'Set-CsOnlinePSTNGateway' - ,'Set-CsOnlinePstnUsage' - ,'Set-CsOnlineSchedule' - ,'Set-CsOnlineVoiceApplicationInstance' - ,'Set-CsOnlineVoicemailUserSettings' - ,'Set-CsOnlineVoiceRoute' - ,'Set-CsOnlineVoiceRoutingPolicy' - ,'Set-CsOnlineVoiceUser' - ,'Set-CsPhoneNumberAssignment' - ,'Set-CsTeamsAcsFederationConfiguration' - ,'Set-CsTeamsAudioConferencingPolicy' - ,'Set-CsTeamsCallParkPolicy' - ,'Set-CsTeamsCortanaPolicy' - ,'Set-CsTeamsEmergencyCallRoutingPolicy' - ,'Set-CsTeamsEnhancedEncryptionPolicy' - ,'Set-CsTeamsGuestCallingConfiguration' - ,'Set-CsTeamsGuestMeetingConfiguration' - ,'Set-CsTeamsGuestMessagingConfiguration' - ,'Set-CsTeamsIPPhonePolicy' - ,'Set-CsTeamsMeetingBroadcastConfiguration' - ,'Set-CsTeamsMeetingBroadcastPolicy' - ,'Set-CsTeamsMigrationConfiguration' - ,'Set-CsTeamsMobilityPolicy' - ,'Set-CsTeamsNetworkRoamingPolicy' - ,'Set-CsTeamsRoomVideoTeleConferencingPolicy' - ,'Set-CsTeamsSettingsCustomApp' - ,'Set-CsTeamsShiftsAppPolicy' - ,'Set-CsTeamsShiftsConnection' - ,'Set-CsTeamsShiftsConnectionInstance' - ,'Set-CsTeamsSurvivableBranchAppliance' - ,'Set-CsTeamsSurvivableBranchAppliancePolicy' - ,'Set-CsTeamsTargetingPolicy' - ,'Set-CsTeamsTranslationRule' - ,'Set-CsTeamsUnassignedNumberTreatment' - ,'Set-CsTeamsVdiPolicy' - ,'Set-CsTeamsWorkLoadPolicy' - ,'Set-CsTenantBlockedCallingNumbers' - ,'Set-CsTenantDialPlan' - ,'Set-CsTenantFederationConfiguration' - ,'Set-CsTenantMigrationConfiguration' - ,'Set-CsTenantNetworkRegion' - ,'Set-CsTenantNetworkSite' - ,'Set-CsTenantNetworkSubnet' - ,'Set-CsTenantTrustedIPAddress' - ,'Set-CsUser' - ,'Set-CsUserCallingDelegate' - ,'Set-CsUserCallingSettings' - ,'Set-CsVideoInteropServiceProvider' - ,'Start-CsExMeetingMigration' - ,'Sync-CsOnlineApplicationInstance' - ,'Test-CsEffectiveTenantDialPlan' - ,'Test-CsInboundBlockedNumberPattern' - ,'Test-CsTeamsShiftsConnectionValidate' - ,'Test-CsTeamsTranslationRule' - ,'Test-CsTeamsUnassignedNumberTreatment' - ,'Test-CsVoiceNormalizationRule' - ,'Unregister-CsOnlineDialInConferencingServiceNumber' - ,'Update-CsAutoAttendant' - ,'Update-CsCustomPolicyPackage' - ,'Update-CsTeamsShiftsConnection' - ,'Update-CsTeamsShiftsConnectionInstance' - ,'Update-CsTeamTemplate' - ,'New-CsBatchTeamsDeployment' - ,'Get-CsBatchTeamsDeploymentStatus' -#OCE related functions exports start here. DO NOT MODIFY! - ,'Set-CsOCEContext' - ,'Clear-CsOCEContext' - ,'Get-CsRegionContext' - ,'Set-CsRegionContext' - ,'Clear-CsRegionContext' - ,'Get-CsMeetingMigrationTransactionHistory' - ,'Get-CsMasVersionedSchemaData' - ,'Get-CsMasObjectChangelog' - ,'Get-CsBusinessVoiceDirectoryDiagnosticData' - ,'Get-CsCloudTenant' - ,'Get-CsCloudUser' - ,'Get-CsHostingProvider' - ,'Set-CsTenantUserBackfill' - ,'Invoke-CsCustomHandlerNgtprov' - ,'Invoke-CsCustomHandlerCallBackNgtprov' - ,'New-CsSdgDeviceTaggingRequest' - ,'Get-CsMoveTenantServiceInstanceTaskStatus' - ,'Move-CsTenantServiceInstance' - ,'Move-CsTenantCrossRegion' - ,'Invoke-CsDirectObjectSync' - ,'New-CsSDGDeviceTransferRequest' - ,'Get-CsAadTenant' - ,'Get-CsAadUser' - ,'Clear-CsCacheOperation' - ,'Move-CsAvsTenantPartition' - ,'Invoke-CsMsodsSync' - ,'Get-CsUssUserSettings' - ,'Set-CsUssUserSettings' - ,'Get-CsPhoneNumberPolicyAssignment' - ,'Set-CsPhoneNumberPolicyAssignment' - ,'Invoke-CsRehomeuser' -#OCE exports end -) -# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. -CmdletsToExport = @( - 'Add-TeamChannelUser' - ,'Add-TeamUser' - ,'Connect-MicrosoftTeams' - ,'Disconnect-MicrosoftTeams' - ,'Set-TeamsEnvironmentConfig' - ,'Clear-TeamsEnvironmentConfig' - ,'Get-AssociatedTeam' - ,'Get-MultiGeoRegion' - ,'Get-Operation' - ,'Get-SharedWithTeam' - ,'Get-SharedWithTeamUser' - ,'Get-Team' - ,'Get-TeamAllChannel' - ,'Get-TeamChannel' - ,'Get-TeamChannelUser' - ,'Get-TeamIncomingChannel' - ,'Get-TeamsApp' - ,'Get-TeamUser' - ,'Get-M365TeamsApp' - ,'Get-AllM365TeamsApps' - ,'Get-M365UnifiedTenantSettings' - ,'Get-M365UnifiedCustomPendingApps' - ,'Get-CsTeamsMessagingPolicy' - ,'Get-CsTeamsMeetingPolicy' - ,'Get-CsOnlineVoicemailPolicy' - ,'Get-CsOnlineVoicemailValidationConfiguration' - ,'Get-CsTeamsAIPolicy' - ,'Get-CsTeamsFeedbackPolicy' - ,'Get-CsTeamsUpdateManagementPolicy' - ,'Get-CsTeamsChannelsPolicy' - ,'Get-CsTeamsMeetingBrandingPolicy' - ,'Get-CsTeamsEmergencyCallingPolicy' - ,'Get-CsTeamsCallHoldPolicy' - ,'Get-CsTeamsMessagingConfiguration' - ,'Get-CsTeamsVoiceApplicationsPolicy' - ,'Get-CsTeamsEventsPolicy' - ,'Get-CsTeamsExternalAccessConfiguration' - ,'Get-CsTeamsFilesPolicy' - ,'Get-CsTeamsCallingPolicy' - ,'Get-CsTeamsClientConfiguration' - ,'Get-CsExternalAccessPolicy' - ,'Get-CsTeamsAppPermissionPolicy' - ,'Get-CsTeamsAppSetupPolicy' - ,'Get-CsTeamsFirstPartyMeetingTemplateConfiguration' - ,'Get-CsTeamsMeetingTemplatePermissionPolicy' - ,'Get-CsLocationPolicy' - ,'Get-CsTeamsShiftsPolicy' - ,'Get-CsTenantNetworkSite' - ,'Get-CsTeamsCarrierEmergencyCallRoutingPolicy' - ,'Get-CsTeamsMeetingTemplateConfiguration' - ,'Get-CsTeamsFirstPartyMeetingTemplateConfiguration' - ,'Get-CsTeamsVirtualAppointmentsPolicy' - ,'Get-CsTeamsSharedCallingRoutingPolicy' - ,'Get-CsTeamsTemplatePermissionPolicy' - ,'Get-CsTeamsComplianceRecordingPolicy' - ,'Get-CsTeamsComplianceRecordingApplication' - ,'Get-CsTeamsEducationAssignmentsAppPolicy' - ,'Get-CsTeamsUpgradeConfiguration' - ,'Get-CsTeamsAudioConferencingCustomPromptsConfiguration' - ,'Get-CsTeamsSipDevicesConfiguration' - ,'Get-CsTeamsCustomBannerText' - ,'Get-CsTeamsVdiPolicy' - ,'Get-CsTeamsMediaConnectivityPolicy' - ,'Get-CsTeamsMeetingConfiguration' - ,'Get-CsTeamsWorkLocationDetectionPolicy' - ,'Get-CsTeamsRecordingRollOutPolicy' - ,'Get-CsTeamsEducationConfiguration' - ,'Get-CsTeamsBYODAndDesksPolicy' - ,'Get-CsTeamsNotificationAndFeedsPolicy' - ,'Get-CsTeamsMultiTenantOrganizationConfiguration' - ,'Get-CsPrivacyConfiguration' - ,'Grant-CsTeamsAIPolicy' - ,'Grant-CsTeamsMeetingBrandingPolicy' - ,'Grant-CsExternalAccessPolicy' - ,'Grant-CsTeamsCallingPolicy' - ,'Grant-CsTeamsAppPermissionPolicy' - ,'Grant-CsTeamsAppSetupPolicy' - ,'Grant-CsTeamsEventsPolicy' - ,'Grant-CsTeamsFilesPolicy' - ,'Grant-CsTeamsMediaConnectivityPolicy' - ,'Grant-CsTeamsMeetingTemplatePermissionPolicy' - ,'Grant-CsTeamsCarrierEmergencyCallRoutingPolicy' - ,'Grant-CsTeamsVirtualAppointmentsPolicy' - ,'Grant-CsTeamsSharedCallingRoutingPolicy' - ,'Grant-CsTeamsShiftsPolicy' - ,'Grant-CsTeamsRecordingRollOutPolicy' - ,'Grant-CsTeamsVdiPolicy' - ,'Grant-CsTeamsWorkLocationDetectionPolicy' - ,'Grant-CsTeamsBYODAndDesksPolicy' - ,'New-Team' - ,'New-TeamChannel' - ,'New-TeamsApp' - ,'New-CsTeamsAIPolicy' - ,'New-CsTeamsMessagingPolicy' - ,'New-CsTeamsMeetingPolicy' - ,'New-CsOnlineVoicemailPolicy' - ,'New-CsTeamsFeedbackPolicy' - ,'New-CsTeamsUpdateManagementPolicy' - ,'New-CsTeamsChannelsPolicy' - ,'New-CsTeamsFilesPolicy' - ,'New-CsTeamsMediaConnectivityPolicy' - ,'New-CsTeamsMeetingBrandingTheme' - ,'New-CsTeamsMeetingBackgroundImage' - ,'New-CsTeamsNdiAssuranceSlate' - ,'New-CsTeamsMeetingBrandingPolicy' - ,'New-CsTeamsEmergencyCallingPolicy' - ,'New-CsTeamsEmergencyCallingExtendedNotification' - ,'New-CsTeamsCallHoldPolicy' - ,'New-CsTeamsVoiceApplicationsPolicy' - ,'New-CsTeamsEventsPolicy' - ,'New-CsTeamsCallingPolicy' - ,'New-CsExternalAccessPolicy' - ,'New-CsTeamsAppPermissionPolicy' - ,'New-CsTeamsAppSetupPolicy' - ,'New-CsTeamsMeetingTemplatePermissionPolicy' - ,'New-CsLocationPolicy' - ,'New-CsTeamsCarrierEmergencyCallRoutingPolicy' - ,'New-CsTeamsHiddenMeetingTemplate' - ,'New-CsTeamsVirtualAppointmentsPolicy' - ,'New-CsTeamsSharedCallingRoutingPolicy' - ,'New-CsTeamsHiddenTemplate' - ,'New-CsTeamsTemplatePermissionPolicy' - ,'New-CsTeamsComplianceRecordingPolicy' - ,'New-CsTeamsComplianceRecordingApplication' - ,'New-CsTeamsComplianceRecordingPairedApplication' - ,'New-CsTeamsWorkLocationDetectionPolicy' - ,'New-CsTeamsRecordingRollOutPolicy' - ,"New-CsCustomPrompt" - ,"New-CsCustomPromptPackage" - ,'New-CsTeamsShiftsPolicy' - ,'New-CsTeamsCustomBannerText' - ,'New-CsTeamsVdiPolicy' - ,'New-CsTeamsBYODAndDesksPolicy' - ,'Remove-SharedWithTeam' - ,'Remove-Team' - ,'Remove-TeamChannel' - ,'Remove-TeamChannelUser' - ,'Remove-TeamsApp' - ,'Remove-TeamUser' - ,'Remove-CsTeamsAIPolicy' - ,'Remove-CsTeamsMessagingPolicy' - ,'Remove-CsTeamsMeetingPolicy' - ,'Remove-CsOnlineVoicemailPolicy' - ,'Remove-CsTeamsFeedbackPolicy' - ,'Remove-CsTeamsFilesPolicy' - ,'Remove-CsTeamsUpdateManagementPolicy' - ,'Remove-CsTeamsChannelsPolicy' - ,'Remove-CsTeamsMediaConnectivityPolicy' - ,'Remove-CsTeamsMeetingBrandingPolicy' - ,'Remove-CsTeamsEmergencyCallingPolicy' - ,'Remove-CsTeamsCallHoldPolicy' - ,'Remove-CsTeamsVoiceApplicationsPolicy' - ,'Remove-CsTeamsEventsPolicy' - ,'Remove-CsTeamsCallingPolicy' - ,'Remove-CsExternalAccessPolicy' - ,'Remove-CsTeamsAppPermissionPolicy' - ,'Remove-CsTeamsAppSetupPolicy' - ,'Remove-CsTeamsMeetingTemplatePermissionPolicy' - ,'Remove-CsLocationPolicy' - ,'Remove-CsTeamsCarrierEmergencyCallRoutingPolicy' - ,'Remove-CsTeamsVirtualAppointmentsPolicy' - ,'Remove-CsTeamsSharedCallingRoutingPolicy' - ,'Remove-CsTeamsTemplatePermissionPolicy' - ,'Remove-CsTeamsComplianceRecordingPolicy' - ,'Remove-CsTeamsComplianceRecordingApplication' - ,'Remove-CsTeamsShiftsPolicy' - ,'Remove-CsTeamsCustomBannerText' - ,'Remove-CsTeamsVdiPolicy' - ,'Remove-CsTeamsWorkLocationDetectionPolicy' - ,'Remove-CsTeamsRecordingRollOutPolicy' - ,'Remove-CsTeamsBYODAndDesksPolicy' - ,'Remove-CsTeamsNotificationAndFeedsPolicy' - ,'Set-Team' - ,'Set-TeamArchivedState' - ,'Set-TeamChannel' - ,'Set-TeamPicture' - ,'Set-TeamsApp' - ,'Set-CsTeamsAIPolicy' - ,'Set-CsTeamsMessagingPolicy' - ,'Set-CsTeamsMeetingPolicy' - ,'Set-CsOnlineVoicemailPolicy' - ,'Set-CsTeamsFilesPolicy' - ,'Set-CsOnlineVoicemailValidationConfiguration' - ,'Set-CsTeamsFeedbackPolicy' - ,'Set-CsTeamsUpdateManagementPolicy' - ,'Set-CsTeamsChannelsPolicy' - ,'Set-CsTeamsMediaConnectivityPolicy' - ,'Set-CsTeamsMeetingBrandingPolicy' - ,'Set-CsTeamsEmergencyCallingPolicy' - ,'Set-CsTeamsEducationConfiguration' - ,'Set-CsTeamsCallHoldPolicy' - ,'Set-CsTeamsMessagingConfiguration' - ,'Set-CsTeamsVoiceApplicationsPolicy' - ,'Set-CsTeamsEventsPolicy' - ,'Set-CsTeamsExternalAccessConfiguration' - ,'Set-CsTeamsCallingPolicy' - ,'Set-CsTeamsClientConfiguration' - ,'Set-CsExternalAccessPolicy' - ,'Set-CsTeamsAppPermissionPolicy' - ,'Set-CsTeamsAppSetupPolicy' - ,'Set-CsTeamsFirstPartyMeetingTemplateConfiguration' - ,'Set-CsTeamsMeetingTemplatePermissionPolicy' - ,'Set-CsTeamsMultiTenantOrganizationConfiguration' - ,'Set-CsLocationPolicy' - ,'Set-CsTeamsCarrierEmergencyCallRoutingPolicy' - ,'Set-CsTeamsVirtualAppointmentsPolicy' - ,'Set-CsTeamsSharedCallingRoutingPolicy' - ,'Set-CsTeamsTemplatePermissionPolicy' - ,'Set-CsTeamsComplianceRecordingPolicy' - ,'Set-CsTeamsEducationAssignmentsAppPolicy' - ,'Set-CsTeamsComplianceRecordingApplication' - ,'Set-CsTeamsShiftsPolicy' - ,'Set-CsTeamsUpgradeConfiguration' - ,'Set-CsTeamsAudioConferencingCustomPromptsConfiguration' - ,'Set-CsTeamsSipDevicesConfiguration' - ,'Set-CsTeamsMeetingConfiguration' - ,'Set-CsTeamsVdiPolicy' - ,'Set-CsTeamsWorkLocationDetectionPolicy' - ,'Set-CsTeamsRecordingRollOutPolicy' - ,'Set-CsTeamsCustomBannerText' - ,'Set-CsTeamsBYODAndDesksPolicy' - ,'Set-CsTeamsNotificationAndFeedsPolicy' - ,'Set-CsPrivacyConfiguration' - ,'Update-M365TeamsApp' - ,'Update-M365UnifiedTenantSettings' - ,'Update-M365UnifiedCustomPendingApp' - - #MPA OCE cmdlets - ,'Get-CsBatchOperationDefinition' - ,'Get-CsBatchOperationStatus' - ,'Get-CsConfiguration' - ,'Get-CsGroupPolicyAssignments' - ,'Get-CsLoginInfo' - ,'Get-CsUserProvHistory' - ,'Get-GPAGroupMembers' - ,'Get-GPAUserMembership' - ,'Get-NgtProvInstanceFailOverStatus' - ,'Get-CsTeamsTenantAbuseConfiguration' - ,'Invoke-CsDirectoryObjectSync' - ,'Invoke-CsGenericNgtProvCommand' - ,'Invoke-CsRefreshGroupUsers' - ,'Invoke-CsReprocessBatchOperation' - ,'Invoke-CsReprocessGroupPolicyAssignment' - ,'Move-NgtProvInstance' - ,'New-CsConfiguration' - ,'Remove-CsConfiguration' - ,'Set-CsConfiguration' - ,'Set-CsTeamsTenantAbuseConfiguration' - ,'Set-CsPublishPolicySchemaDefaults' - - -#preview ,'Add-TeamsAppInstallation' -#preview ,'Get-TeamsAppInstallation' - ,'Get-TeamTargetingHierarchyStatus' -#preview ,'Remove-TeamsAppInstallation' - ,'Remove-TeamTargetingHierarchy' - ,'Set-TeamTargetingHierarchy' -#preview ,'Update-TeamsAppInstallation' -#preview ,'Get-LicenseReportForChangeNotificationSubscription' - ) - -# Variables to export from this module -VariablesToExport = '*' - -# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. -AliasesToExport = '*' - -# DSC resources to export from this module -# DscResourcesToExport = @() - -# List of all modules packaged with this module -# ModuleList = @() - -# List of all files packaged with this module -# FileList = @() - -# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. -PrivateData = @{ - PSData = @{ - # Tags applied to this module. These help with module discovery in online galleries. - Tags = 'Office365', 'MicrosoftTeams', 'Teams' - - # A URL to the license for this module. - LicenseUri = 'https://raw.githubusercontent.com/MicrosoftDocs/office-docs-powershell/master/teams/LICENSE.txt' - - # A URL to the main website for this project. - ProjectUri = 'https://github.com/MicrosoftDocs/office-docs-powershell/tree/master/teams' - - # A URL to an icon representing this module. - IconUri = 'https://statics.teams.microsoft.com/evergreen-assets/apps/teamscmdlets_largeimage.png' - - # Appends prerelease string to version - Prerelease = '' - - # ReleaseNotes of this module - ReleaseNotes = @' - **6.9.0** (The project - MicrosoftTeams contains changes till this release) -- Adds FileContent parameter to New-CsOnlineDirectRoutingTelephoneNumberUploadOrder cmdlet. -- Adds FileContent parameter to New-CsOnlineTelephoneNumberReleaseOrder cmdlet. -- Adds EnqueueReason output attribute to Get-CsMeetingMigrationStatus cmdlet. -- Fixes the AllowedTrialTenantDomains data type, for the Set-CsTenantFederationConfiguration cmdlet. Now it will match the public documentation examples. -- Fixes issues with the ForceAccept parameter in the Set-CsOnlineEnhancedEmergencyServiceDisclaimer cmdlet. -- Adds TelephoneNumbers output attribute to Get-CsOnlineUser cmdlet. This is currently supported only in commercial environments. -- Adds expand parameter to the Get-AllM365TeamsApp cmdlet. -- Adds Properties parameter to Get-CsOnlineUser cmdlet. -- The complete release notes can be found in the below link: -https://docs.microsoft.com/MicrosoftTeams/teams-powershell-release-notes -'@ - } # End of PSData hashtable -} # End of PrivateData hashtable - -# HelpInfo URI of this module -# HelpInfoURI = '' - -# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. -# DefaultCommandPrefix = '' -} - -# SIG # Begin signature block -# MIIoQwYJKoZIhvcNAQcCoIIoNDCCKDACAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAykhuuMvPDobmq -# uteCv9gejGok2aTqrqAWbMH9jtNiBKCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIF4XDf5WHlsj6W5pLuGnyFnx -# bgAs1f2rGTLQmKUjT5+2MEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAGNDkLXmnowQe7NFTF+zE3Q1UnCW9TXgIcS3sk9ggzpmbR8K3Vrcd6R4d -# k7m6VNnelYcqB1bGQsKeN5OFSERhx9Vko/jX6D4QC5mr72cvTqBF/uzN0HtEtobl -# mqjiMQ6unLLddmsuBhnSRQLrcWghG0k8PoCuELZ7P7oT5P/Pzi0YzTnI3oqTSoMh -# PxzadQOCNFQogPY1P4AyT65YkXeMcOZQWgZyRDyzyPWp1oZouw5uK3DQ5QBQudpm -# AAAE2Zx6MJ3zb34v2RlU8esu/WYNukEp/aVSTCjwDnaBL1vxy+35VZjAJgcScMnz -# NdrY0L3jc9d9m0n1fihLlpfYkrw/iaGCF60wghepBgorBgEEAYI3AwMBMYIXmTCC -# F5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsq -# hkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCAYrcWgiQXvUEJmt3QJgGGVy+ADEDAspc3mFGtBbAcyvQIGZ7Yy6IKy -# GBMyMDI1MDMxMzA4NDcyNC45OTRaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo1MjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAACAAvXqn8bKhdWAAEAAAIAMA0G -# CSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI0 -# MDcyNTE4MzEyMVoXDTI1MTAyMjE4MzEyMVowgdMxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9w -# ZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjUyMUEt -# MDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr1XaadKkP2TkunoTF573 -# /tF7KJM9Doiv3ccv26mqnUhmv2DM59ikET4WnRfo5biFIHc6LqrIeqCgT9fT/Gks -# 5VKO90ZQW2avh/PMHnl0kZfX/I5zdVooXHbdUUkPiZfNXszWswmL9UlWo8mzyv9L -# p9TAtw/oXOYTAxdYSqOB5Uzz1Q3A8uCpNlumQNDJGDY6cSn0MlYukXklArChq6l+ -# KYrl6r/WnOqXSknABpggSsJ33oL3onmDiN9YUApZwjnNh9M6kDaneSz78/YtD/2p -# Gpx9/LXELoazEUFxhyg4KdmoWGNYwdR7/id81geOER69l5dJv71S/mH+Lxb6L692 -# n8uEmAVw6fVvE+c8wjgYZblZCNPAynCnDduRLdk1jswCqjqNc3X/WIzA7GGs4HUS -# 4YIrAUx8H2A94vDNiA8AWa7Z/HSwTCyIgeVbldXYM2BtxMKq3kneRoT27NQ7Y7n8 -# ZTaAje7Blfju83spGP/QWYNZ1wYzYVGRyOpdA8Wmxq5V8f5r4HaG9zPcykOyJpRZ -# y+V3RGighFmsCJXAcMziO76HinwCIjImnCFKGJ/IbLjH6J7fJXqRPbg+H6rYLZ8X -# BpmXBFH4PTakZVYxB/P+EQbL5LNw0ZIM+eufxCljV4O+nHkM+zgSx8+07BVZPBKs -# looebsmhIcBO0779kehciYMCAwEAAaOCAUkwggFFMB0GA1UdDgQWBBSAJSTavgkj -# Kqge5xQOXn35fXd3OjAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBf -# BgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmww -# bAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29m -# dC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0El -# MjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUF -# BwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEAKPCG9njRtIqQ -# +fuECgxzWMsQOI3HvW7sV9PmEWCCOWlTuGCIzNi3ibdLZS0b2IDHg0yLrtdVuBi3 -# FxVdesIXuzYyofIe/alTBdV4DhijLTXtB7NgOno7G12iO3t6jy1hPSquzGLry/2m -# EZBwIsSoS2D+H+3HCJxPDyhzMFqP+plltPACB/QNwZ7q+HGyZv3v8et+rQYg8sF3 -# PTuWeDg3dR/zk1NawJ/dfFCDYlWNeCBCLvNPQBceMYXFRFKhcSUws7mFdIDDhZpx -# qyIKD2WDwFyNIGEezn+nd4kXRupeNEx+eSpJXylRD+1d45hb6PzOIF7BkcPtRtFW -# 2wXgkjLqtTWWlBkvzl2uNfYJ3CPZVaDyMDaaXgO+H6DirsJ4IG9ikId941+mWDej -# kj5aYn9QN6ROfo/HNHg1timwpFoUivqAFu6irWZFw5V+yLr8FLc7nbMa2lFSixzu -# 96zdnDsPImz0c6StbYyhKSlM3uDRi9UWydSKqnEbtJ6Mk+YuxvzprkuWQJYWfpPv -# ug+wTnioykVwc0yRVcsd4xMznnnRtZDGMSUEl9tMVnebYRshwZIyJTsBgLZmHM7q -# 2TFK/X9944SkIqyY22AcuLe0GqoNfASCIcZtzbZ/zP4lT2/N0pDbn2ffAzjZkhI+ -# Qrqr983mQZWwZdr3Tk1MYElDThz2D0MwggdxMIIFWaADAgECAhMzAAAAFcXna54C -# m0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp -# Y2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMy -# MjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0B -# AQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51 -# yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY -# 6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9 -# cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN -# 7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDua -# Rr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74 -# kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2 -# K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5 -# TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZk -# i1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9Q -# BXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3Pmri -# Lq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUC -# BBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJl -# pxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIB -# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9y -# eS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUA -# YgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU -# 1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2Ny -# bC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIw -# MTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0w -# Ni0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/yp -# b+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulm -# ZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM -# 9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECW -# OKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4 -# FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3Uw -# xTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPX -# fx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVX -# VAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGC -# onsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU -# 5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEG -# ahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo1MjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUAjJOfLZb3ivipL3sSLlWFbLrWjmSggYMw -# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsF -# AAIFAOt9B9owIhgPMjAyNTAzMTMwNzI5MzBaGA8yMDI1MDMxNDA3MjkzMFowdDA6 -# BgorBgEEAYRZCgQBMSwwKjAKAgUA630H2gIBADAHAgEAAgIDZzAHAgEAAgISBzAK -# AgUA635ZWgIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIB -# AAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQCVEJHC+AnXHV9s -# 6tO+oub/OObPaD9+v5F5SjN2Q7VMqNT+9+c4GJ0x65qwo+IRxnkyZrQA4Ochjogj -# 2k64LwIi39SrqLWl4Zln4xAn9uNO2WiPzctgN7pfp5kw5Qe/9nxJa7AzRzfVYSD7 -# HNTjoxTUYSwMRJ+UUDbrv0WmuUsz7pbGo0fguLwO2Blztl/ZG+qHLn71JKY3bvTn -# 3vrun/+nI95yGVDkm/dcZFK9o2CartRGUzwPURhdEnVjJQz6VCaM5MVvLLqTgckJ -# lmxJOXRebD6WGWSrNVoCisgsoB4I37vUJQKEI0NYDMKqL4YbCgjiHkIYcbnEPY8A -# 4jsOAIzWMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAIAC9eqfxsqF1YAAQAAAgAwDQYJYIZIAWUDBAIBBQCgggFKMBoGCSqG -# SIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgbP7juuPGNfuy -# W7UKYL9J8i8HqIhp+CNtV8VnAinbB58wgfoGCyqGSIb3DQEJEAIvMYHqMIHnMIHk -# MIG9BCDUyO3sNZ3burBNDGUCV4NfM2gH4aWuRudIk/9KAk/ZJzCBmDCBgKR+MHwx -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1p -# Y3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAACAAvXqn8bKhdWAAEAAAIA -# MCIEIGDcE9syNzVtu2kd7LlU5esw2Nri7UrxXXYThAWgquYLMA0GCSqGSIb3DQEB -# CwUABIICAGUy/wyrgyeeNlatPMRLQ5QVg/+yhPFmt0wrLXePxKUhJcFswm/TByIq -# bwsvOofZ7omIn8MenLPHGtr18Riax+zR2bnI0t+U7hR2w16iHFEnsSNSiDOsqCBL -# c7jvu87LVQ+XwPcNRv0f/zmDcFyVsVPmTWCbyROa2XGEPjnR0u1w60MCyzF3dFe0 -# nqvfZpB8n+lcD8TLGFoauMdhzcaUaFyCUqXHhgWDWcgIDx48ydrAliOnv1B+4CeK -# gFGGNs0EV1RjKbwIBRHG/Wzlx8FRMdHnqZIyyB/pbu8R9VBENg6/ZX2WYbqe4xvB -# BEOBTqV9PqUmn0p+vHkDC+gih3MtjdbqX1s7MH6nzORfcHfFdyr3WxqjXdpc4MVg -# GW6aCr3ZJREWDA22U9qiKzHZ+ycQUytGjz3OhWADt2pavE49G2QwCirtKPrxJ2dz -# /gFqErgUJUthtQo0o/ru35LyjPZ6iXnC1E8b3se0Hebp74Ms5AIwHEzBwf5TDD2D -# PpOfaqiM91DfoytS0H7dNmwcpdTo/0je1fnCUdsIlzkUkuGYCoTMtycbmt+9Yg7W -# Sna5lA3nbfV5Ws8YfTFP40gsugYCOUlJI8WJ7c1LVYukqKa8xyD7PPae7qy+Oi+1 -# 0AGnXySedK/VMgLdDD5tMfTSywpAciEZx0k2cpBzJA46FwdwWuxU -# SIG # End signature block diff --git a/Modules/MicrosoftTeams/6.9.0/MicrosoftTeams.psm1 b/Modules/MicrosoftTeams/6.9.0/MicrosoftTeams.psm1 deleted file mode 100644 index 8f825ba17d55..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/MicrosoftTeams.psm1 +++ /dev/null @@ -1,259 +0,0 @@ -#Check for the source module - Common Denominator -$moduleInfo = Get-Module -name "CommonDenominator" -#Check for the cmdlet -if($moduleInfo -ne $null) { -$dmsIdentifier = Get-command "Get-ClientType" -module "CommonDenominator" -ErrorAction SilentlyContinue -} -if($dmsIdentifier -ne $null) { -$isDms = & Get-ClientType - -if($isDms -eq "DMS") { - $env:MSTeamsContextInternal = "IsOCEModule" -} - -} -if($PSEdition -ne 'Desktop') -{ - Import-Module $('{0}\netcoreapp3.1\Microsoft.TeamsCmdlets.PowerShell.Connect.dll' -f $PSScriptRoot) - if ($env:MSTeamsContextInternal -ne "IsOCEModule") { - Import-Module $('{0}\Microsoft.Teams.PowerShell.TeamsCmdlets.psd1' -f $PSScriptRoot) - } - else - { - Import-Module $('{0}\net472\Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll' -f $PSScriptRoot) - } - Import-Module $('{0}\netcoreapp3.1\Microsoft.Teams.PowerShell.Module.dll' -f $PSScriptRoot) - -} -else -{ - Import-Module $('{0}\net472\Microsoft.TeamsCmdlets.PowerShell.Connect.dll' -f $PSScriptRoot) - [Reflection.Assembly]::Loadfrom($('{0}\net472\Newtonsoft.Json.dll' -f $PSScriptRoot)) - if ($env:MSTeamsContextInternal -ne "IsOCEModule") { - Import-Module $('{0}\Microsoft.Teams.PowerShell.TeamsCmdlets.psd1' -f $PSScriptRoot) - } - else - { - Import-Module $('{0}\net472\Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll' -f $PSScriptRoot) - } - Import-Module $('{0}\net472\Microsoft.Teams.PowerShell.Module.dll' -f $PSScriptRoot) -} -Import-Module $('{0}\Microsoft.Teams.Policy.Administration.psd1' -f $PSScriptRoot) -Import-Module $('{0}\Microsoft.Teams.ConfigAPI.Cmdlets.psd1' -f $PSScriptRoot) -# SIG # Begin signature block -# MIIoPAYJKoZIhvcNAQcCoIIoLTCCKCkCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBJponIg6/1vb48 -# stXuS4z8oBYcN1DNZwuhwmt7j7P5CaCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGg0wghoJAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIADB -# pasuVHSfoJTNR02qga8z3vkaj9V4PoBJXQ16dJ5RMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAJsQfOEyGqYn4O55Or00BLSlzeEJWpyXMxYvx -# qKn/ZGub2ke6NOqg4yH5m/RK0fiFe62B5u5uuKH5mDQF03NoFMo6v6EGviwYEfm4 -# YomNohZGNtE+vbFhItOROSbhDGnE8O4O3QvN91oe96Iz1+ZM/2uIZ0jij/7JCPMK -# 5hhZ6oCfefQiSUfuJ4v7xWe6xBa3lPs9hbGrNce4NqFyarVPqZuBSnQud7FVgzB6 -# ID2xf61I9pdH0VtPjC7UAtQ4/UaiDbqgFygvbeTquLWiGixQM8U/fSRiPkHC9OB2 -# UngIDo6Owvdn3UF6cN2brhqhfJD1l45PrrJ5FYUmfH3gZM/OAaGCF5cwgheTBgor -# BgEEAYI3AwMBMYIXgzCCF38GCSqGSIb3DQEHAqCCF3AwghdsAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFSBgsqhkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCWEywJIk8L5vGYWoVVt7lRe57qOQ+NhnLm -# SKv3dEFUmgIGZ7eqBCTQGBMyMDI1MDMxMzA4NDcyNS4yMzFaMASAAgH0oIHRpIHO -# MIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQL -# ExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxk -# IFRTUyBFU046MzcwMy0wNUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1l -# LVN0YW1wIFNlcnZpY2WgghHtMIIHIDCCBQigAwIBAgITMwAAAgpHshTZ7rKzDwAB -# AAACCjANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDAeFw0yNTAxMzAxOTQyNTdaFw0yNjA0MjIxOTQyNTdaMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046MzcwMy0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Uw -# ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCy7NzwEpb7BpwAk9LJ00Xq -# 30TcTjcwNZ80TxAtAbhSaJ2kwnJA1Au/Do9/fEBjAHv6Mmtt3fmPDeIJnQ7VBeIq -# 8RcfjcjrbPIg3wA5v5MQflPNSBNOvcXRP+fZnAy0ELDzfnJHnCkZNsQUZ7GF7LxU -# LTKOYY2YJw4TrmcHohkY6DjCZyxhqmGQwwdbjoPWRbYu/ozFem/yfJPyjVBql106 -# 8bcVh58A8c5CD6TWN/L3u+Ny+7O8+Dver6qBT44Ey7pfPZMZ1Hi7yvCLv5LGzSB6 -# o2OD5GIZy7z4kh8UYHdzjn9Wx+QZ2233SJQKtZhpI7uHf3oMTg0zanQfz7mgudef -# mGBrQEg1ox3n+3Tizh0D9zVmNQP9sFjsPQtNGZ9ID9H8A+kFInx4mrSxA2SyGMOQ -# cxlGM30ktIKM3iqCuFEU9CHVMpN94/1fl4T6PonJ+/oWJqFlatYuMKv2Z8uiprnF -# cAxCpOsDIVBO9K1vHeAMiQQUlcE9CD536I1YLnmO2qHagPPmXhdOGrHUnCUtop21 -# elukHh75q/5zH+OnNekp5udpjQNZCviYAZdHsLnkU0NfUAr6r1UqDcSq1yf5Riwi -# mB8SjsdmHll4gPjmqVi0/rmnM1oAEQm3PyWcTQQibYLiuKN7Y4io5bJTVwm+vRRb -# pJ5UL/D33C//7qnHbeoWBQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFAKvF0EEj4Ay -# PfY8W/qrsAvftZwkMB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8G -# A1UdHwRYMFYwVKBSoFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMv -# Y3JsL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBs -# BggrBgEFBQcBAQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0 -# LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUy -# MDIwMTAoMSkuY3J0MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUH -# AwgwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4ICAQCwk3PW0CyjOaqX -# CMOusTde7ep2CwP/xV1J3o9KAiKSdq8a2UR5RCHYhnJseemweMUH2kNefpnAh2Bn -# 8H2opDztDJkj8OYRd/KQysE12NwaY3KOwAW8Rg8OdXv5fUZIsOWgprkCQM0VoFHd -# XYExkJN3EzBbUCUw3yb4gAFPK56T+6cPpI8MJLJCQXHNMgti2QZhX9KkfRAffFYM -# FcpsbI+oziC5Brrk3361cJFHhgEJR0J42nqZTGSgUpDGHSZARGqNcAV5h+OQDLeF -# 2p3URx/P6McUg1nJ2gMPYBsD+bwd9B0c/XIZ9Mt3ujlELPpkijjCdSZxhzu2M3SZ -# WJr57uY+FC+LspvIOH1Opofanh3JGDosNcAEu9yUMWKsEBMngD6VWQSQYZ6X9F80 -# zCoeZwTq0i9AujnYzzx5W2fEgZejRu6K1GCASmztNlYJlACjqafWRofTqkJhV/J2 -# v97X3ruDvfpuOuQoUtVAwXrDsG2NOBuvVso5KdW54hBSsz/4+ORB4qLnq4/GNtaj -# UHorKRKHGOgFo8DKaXG+UNANwhGNxHbILSa59PxExMgCjBRP3828yGKsquSEzzLN -# Wnz5af9ZmeH4809fwIttI41JkuiY9X6hmMmLYv8OY34vvOK+zyxkS+9BULVAP6gt -# +yaHaBlrln8Gi4/dBr2y6Srr/56g0DCCB3EwggVZoAMCAQICEzMAAAAVxedrngKb -# SZkAAAAAABUwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQI -# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv -# ZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmlj -# YXRlIEF1dGhvcml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIy -# NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT -# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE -# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXI -# yjVX9gF/bErg4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjo -# YH1qUoNEt6aORmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1y -# aa8dq6z2Nr41JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v -# 3byNpOORj7I5LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pG -# ve2krnopN6zL64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viS -# kR4dPf0gz3N9QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYr -# bqgSUei/BQOj0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlM -# jgK8QmguEOqEUUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSL -# W6CmgyFdXzB0kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AF -# emzFER1y7435UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIu -# rQIDAQABo4IB3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIE -# FgQUKqdS/mTEmr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWn -# G1M1GelyMFwGA1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEW -# M2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5 -# Lmh0bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBi -# AEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV -# 9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3Js -# Lm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAx -# MC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2 -# LTIzLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv -# 6lwUtj5OR2R4sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZn -# OlNN3Zi6th542DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1 -# bSNU5HhTdSRXud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4 -# rPf5KYnDvBewVIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU -# 6ZGyqVvfSaN0DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDF -# NLB62FD+CljdQDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/ -# HltEAY5aGZFrDZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdU -# CbFpAUR+fKFhbHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKi -# excdFYmNcP7ntdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTm -# dHRbatGePu1+oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZq -# ELQdVTNYs6FwZvKhggNQMIICOAIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMx -# EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT -# FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJp -# Y2EgT3BlcmF0aW9uczEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjM3MDMtMDVF -# MC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMK -# AQEwBwYFKw4DAhoDFQDRAMVJlA6bKq93Vnu3UkJgm5HlYaCBgzCBgKR+MHwxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv -# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA63yE+jAi -# GA8yMDI1MDMxMjIyMTEwNloYDzIwMjUwMzEzMjIxMTA2WjB3MD0GCisGAQQBhFkK -# BAExLzAtMAoCBQDrfIT6AgEAMAoCAQACAgRLAgH/MAcCAQACAhOdMAoCBQDrfdZ6 -# AgEAMDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSCh -# CjAIAgEAAgMBhqAwDQYJKoZIhvcNAQELBQADggEBADmF8DMpxqadXzQ6OysabYTL -# KN8v2SyTKKavhPb3I6Uh/GCxQuk1Tiovox1ZBWTqjcQuwKSMYd2uVFBzmu4yigP3 -# I31daP874IGGqKnDLuo5mLTJAvf7LU4o8snDiv9CX6xtWvLtFr5JNeCT47hD/tNQ -# jUrGm+owzl2svFc1ZWmbRAInpMB3eZl70a80Ok4+K9ne4I/l6uNIhRXrPZXWRMgV -# 09O9FKxQ02Y5Y20y7GtVFSRz8DCSIFeWw4pw0P2iZsGIWMxRpUqEaWnKRGAJGAAZ -# l0e0N88p4BNJxnwkKLxMYXDfJO7KS22/iaZ/x6N945Ik2PTu6lGnuajLBCUTNz8x -# ggQNMIIECQIBATCBkzB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv -# bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0 -# aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAA -# AgpHshTZ7rKzDwABAAACCjANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkD -# MQ0GCyqGSIb3DQEJEAEEMC8GCSqGSIb3DQEJBDEiBCB5xTI2S4geID5N5jEMmXsw -# kXmStu2atT5OsYMZWDcb2TCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIE2a -# y/y0epK/X3Z03KTcloqE8u9IXRtdO7Mex0hw9+SaMIGYMIGApH4wfDELMAkGA1UE -# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc -# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 -# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAIKR7IU2e6ysw8AAQAAAgowIgQgs3Cc -# OatoW7AUmuxxJ5k7vLNVc8cNipV2s+QK3dptun8wDQYJKoZIhvcNAQELBQAEggIA -# hpm4kCtBa20qQrEPJ6KRUqlm0cyaCnG7h8tAYoRmnZFpGMKZxMyPU90re8pjCp1C -# H3Sya0O8Hwar3zDm/VKJGHDqrfDF6AO+XSUUxUxqM8AvtRjdptvWQKk8QOvIpkWx -# uPQQekMdQnbL1FW4TPlIESbQ3mffiWxhS6iCadhl+fbBOp6Qc8teov6ll6hG24Ke -# oJL91OuodfWtPsSjs0Wvi2sSrdBTh1UR6G6bTGG8aMRB8OzxZr+uGrLHL8wMXKB/ -# 20CCDnR9u9aKvT0ChvLSRx8KpJSaEk1AqMgz9f5zOcY9HuJCa66AF/EBhDP4tO00 -# YSpnloCJ0Mo5QCX2m8ySW8G9PLxjGlJo1y7gFAa8XCR4Jz7lEpsBNcEtZq8LQTzX -# /XphelhfASoAXtMWEP4PX1lwkbz54zCzZ7PgaPl7f67CWyi/y2cMNSUYq1ehbTAx -# TuPvhH0nao9S0FZUe2sJn/ikyyUp6Z10bouIO2MtqnkNLMeGQWo8QcPo7bnNwu2O -# CMNDxPIzdz/QzhjYwewQC16GOPcu15g9k9JtlHh4WV7HX5te3b9PwU+ETmG74eKw -# jS/fNgC7W/LA7fCbOjQENJ1UPUQpdb49SlkeyvaF7TmjInhGhdXnyDm+gIrw4MVT -# rEZAiwQaaG9N2GkCcmioQtz7lLFOqkgPw/2k7NnL/hU= -# SIG # End signature block diff --git a/Modules/MicrosoftTeams/6.9.0/PSGetModuleInfo.xml b/Modules/MicrosoftTeams/6.9.0/PSGetModuleInfo.xml deleted file mode 100644 index d59e59258172..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/PSGetModuleInfo.xml +++ /dev/null @@ -1,1423 +0,0 @@ - - - - Microsoft.PowerShell.Commands.PSRepositoryItemInfo - System.Management.Automation.PSCustomObject - System.Object - - - MicrosoftTeams - 6.9.0 - Module - Microsoft Teams cmdlets module for Windows PowerShell and PowerShell Core._x000D__x000A__x000D__x000A_For more information, please visit the following: https://docs.microsoft.com/MicrosoftTeams/teams-powershell-overview - Microsoft Corporation - MicrosoftTeams - Microsoft Corporation. All rights reserved. -
2025-03-13T10:57:33-04:00
- - - https://raw.githubusercontent.com/MicrosoftDocs/office-docs-powershell/master/teams/LICENSE.txt - https://github.com/MicrosoftDocs/office-docs-powershell/tree/master/teams - https://statics.teams.microsoft.com/evergreen-assets/apps/teamscmdlets_largeimage.png - - - System.Object[] - System.Array - System.Object - - - Office365 - MicrosoftTeams - Teams - PSModule - PSEdition_Core - PSEdition_Desktop - - - - - System.Collections.Hashtable - System.Object - - - - Cmdlet - - - - Add-TeamChannelUser - Add-TeamUser - Connect-MicrosoftTeams - Disconnect-MicrosoftTeams - Set-TeamsEnvironmentConfig - Clear-TeamsEnvironmentConfig - Get-AssociatedTeam - Get-MultiGeoRegion - Get-Operation - Get-SharedWithTeam - Get-SharedWithTeamUser - Get-Team - Get-TeamAllChannel - Get-TeamChannel - Get-TeamChannelUser - Get-TeamIncomingChannel - Get-TeamsApp - Get-TeamUser - Get-M365TeamsApp - Get-AllM365TeamsApps - Get-M365UnifiedTenantSettings - Get-M365UnifiedCustomPendingApps - Get-CsTeamsMessagingPolicy - Get-CsTeamsMeetingPolicy - Get-CsOnlineVoicemailPolicy - Get-CsOnlineVoicemailValidationConfiguration - Get-CsTeamsAIPolicy - Get-CsTeamsFeedbackPolicy - Get-CsTeamsUpdateManagementPolicy - Get-CsTeamsChannelsPolicy - Get-CsTeamsMeetingBrandingPolicy - Get-CsTeamsEmergencyCallingPolicy - Get-CsTeamsCallHoldPolicy - Get-CsTeamsMessagingConfiguration - Get-CsTeamsVoiceApplicationsPolicy - Get-CsTeamsEventsPolicy - Get-CsTeamsExternalAccessConfiguration - Get-CsTeamsFilesPolicy - Get-CsTeamsCallingPolicy - Get-CsTeamsClientConfiguration - Get-CsExternalAccessPolicy - Get-CsTeamsAppPermissionPolicy - Get-CsTeamsAppSetupPolicy - Get-CsTeamsFirstPartyMeetingTemplateConfiguration - Get-CsTeamsMeetingTemplatePermissionPolicy - Get-CsLocationPolicy - Get-CsTeamsShiftsPolicy - Get-CsTenantNetworkSite - Get-CsTeamsCarrierEmergencyCallRoutingPolicy - Get-CsTeamsMeetingTemplateConfiguration - Get-CsTeamsVirtualAppointmentsPolicy - Get-CsTeamsSharedCallingRoutingPolicy - Get-CsTeamsTemplatePermissionPolicy - Get-CsTeamsComplianceRecordingPolicy - Get-CsTeamsComplianceRecordingApplication - Get-CsTeamsEducationAssignmentsAppPolicy - Get-CsTeamsUpgradeConfiguration - Get-CsTeamsAudioConferencingCustomPromptsConfiguration - Get-CsTeamsSipDevicesConfiguration - Get-CsTeamsCustomBannerText - Get-CsTeamsVdiPolicy - Get-CsTeamsMediaConnectivityPolicy - Get-CsTeamsMeetingConfiguration - Get-CsTeamsWorkLocationDetectionPolicy - Get-CsTeamsRecordingRollOutPolicy - Get-CsTeamsEducationConfiguration - Get-CsTeamsBYODAndDesksPolicy - Get-CsTeamsNotificationAndFeedsPolicy - Get-CsTeamsMultiTenantOrganizationConfiguration - Get-CsPrivacyConfiguration - Grant-CsTeamsAIPolicy - Grant-CsTeamsMeetingBrandingPolicy - Grant-CsExternalAccessPolicy - Grant-CsTeamsCallingPolicy - Grant-CsTeamsAppPermissionPolicy - Grant-CsTeamsAppSetupPolicy - Grant-CsTeamsEventsPolicy - Grant-CsTeamsFilesPolicy - Grant-CsTeamsMediaConnectivityPolicy - Grant-CsTeamsMeetingTemplatePermissionPolicy - Grant-CsTeamsCarrierEmergencyCallRoutingPolicy - Grant-CsTeamsVirtualAppointmentsPolicy - Grant-CsTeamsSharedCallingRoutingPolicy - Grant-CsTeamsShiftsPolicy - Grant-CsTeamsRecordingRollOutPolicy - Grant-CsTeamsVdiPolicy - Grant-CsTeamsWorkLocationDetectionPolicy - Grant-CsTeamsBYODAndDesksPolicy - New-Team - New-TeamChannel - New-TeamsApp - New-CsTeamsAIPolicy - New-CsTeamsMessagingPolicy - New-CsTeamsMeetingPolicy - New-CsOnlineVoicemailPolicy - New-CsTeamsFeedbackPolicy - New-CsTeamsUpdateManagementPolicy - New-CsTeamsChannelsPolicy - New-CsTeamsFilesPolicy - New-CsTeamsMediaConnectivityPolicy - New-CsTeamsMeetingBrandingTheme - New-CsTeamsMeetingBackgroundImage - New-CsTeamsNdiAssuranceSlate - New-CsTeamsMeetingBrandingPolicy - New-CsTeamsEmergencyCallingPolicy - New-CsTeamsEmergencyCallingExtendedNotification - New-CsTeamsCallHoldPolicy - New-CsTeamsVoiceApplicationsPolicy - New-CsTeamsEventsPolicy - New-CsTeamsCallingPolicy - New-CsExternalAccessPolicy - New-CsTeamsAppPermissionPolicy - New-CsTeamsAppSetupPolicy - New-CsTeamsMeetingTemplatePermissionPolicy - New-CsLocationPolicy - New-CsTeamsCarrierEmergencyCallRoutingPolicy - New-CsTeamsHiddenMeetingTemplate - New-CsTeamsVirtualAppointmentsPolicy - New-CsTeamsSharedCallingRoutingPolicy - New-CsTeamsHiddenTemplate - New-CsTeamsTemplatePermissionPolicy - New-CsTeamsComplianceRecordingPolicy - New-CsTeamsComplianceRecordingApplication - New-CsTeamsComplianceRecordingPairedApplication - New-CsTeamsWorkLocationDetectionPolicy - New-CsTeamsRecordingRollOutPolicy - New-CsCustomPrompt - New-CsCustomPromptPackage - New-CsTeamsShiftsPolicy - New-CsTeamsCustomBannerText - New-CsTeamsVdiPolicy - New-CsTeamsBYODAndDesksPolicy - Remove-SharedWithTeam - Remove-Team - Remove-TeamChannel - Remove-TeamChannelUser - Remove-TeamsApp - Remove-TeamUser - Remove-CsTeamsAIPolicy - Remove-CsTeamsMessagingPolicy - Remove-CsTeamsMeetingPolicy - Remove-CsOnlineVoicemailPolicy - Remove-CsTeamsFeedbackPolicy - Remove-CsTeamsFilesPolicy - Remove-CsTeamsUpdateManagementPolicy - Remove-CsTeamsChannelsPolicy - Remove-CsTeamsMediaConnectivityPolicy - Remove-CsTeamsMeetingBrandingPolicy - Remove-CsTeamsEmergencyCallingPolicy - Remove-CsTeamsCallHoldPolicy - Remove-CsTeamsVoiceApplicationsPolicy - Remove-CsTeamsEventsPolicy - Remove-CsTeamsCallingPolicy - Remove-CsExternalAccessPolicy - Remove-CsTeamsAppPermissionPolicy - Remove-CsTeamsAppSetupPolicy - Remove-CsTeamsMeetingTemplatePermissionPolicy - Remove-CsLocationPolicy - Remove-CsTeamsCarrierEmergencyCallRoutingPolicy - Remove-CsTeamsVirtualAppointmentsPolicy - Remove-CsTeamsSharedCallingRoutingPolicy - Remove-CsTeamsTemplatePermissionPolicy - Remove-CsTeamsComplianceRecordingPolicy - Remove-CsTeamsComplianceRecordingApplication - Remove-CsTeamsShiftsPolicy - Remove-CsTeamsCustomBannerText - Remove-CsTeamsVdiPolicy - Remove-CsTeamsWorkLocationDetectionPolicy - Remove-CsTeamsRecordingRollOutPolicy - Remove-CsTeamsBYODAndDesksPolicy - Remove-CsTeamsNotificationAndFeedsPolicy - Set-Team - Set-TeamArchivedState - Set-TeamChannel - Set-TeamPicture - Set-TeamsApp - Set-CsTeamsAIPolicy - Set-CsTeamsMessagingPolicy - Set-CsTeamsMeetingPolicy - Set-CsOnlineVoicemailPolicy - Set-CsTeamsFilesPolicy - Set-CsOnlineVoicemailValidationConfiguration - Set-CsTeamsFeedbackPolicy - Set-CsTeamsUpdateManagementPolicy - Set-CsTeamsChannelsPolicy - Set-CsTeamsMediaConnectivityPolicy - Set-CsTeamsMeetingBrandingPolicy - Set-CsTeamsEmergencyCallingPolicy - Set-CsTeamsEducationConfiguration - Set-CsTeamsCallHoldPolicy - Set-CsTeamsMessagingConfiguration - Set-CsTeamsVoiceApplicationsPolicy - Set-CsTeamsEventsPolicy - Set-CsTeamsExternalAccessConfiguration - Set-CsTeamsCallingPolicy - Set-CsTeamsClientConfiguration - Set-CsExternalAccessPolicy - Set-CsTeamsAppPermissionPolicy - Set-CsTeamsAppSetupPolicy - Set-CsTeamsFirstPartyMeetingTemplateConfiguration - Set-CsTeamsMeetingTemplatePermissionPolicy - Set-CsTeamsMultiTenantOrganizationConfiguration - Set-CsLocationPolicy - Set-CsTeamsCarrierEmergencyCallRoutingPolicy - Set-CsTeamsVirtualAppointmentsPolicy - Set-CsTeamsSharedCallingRoutingPolicy - Set-CsTeamsTemplatePermissionPolicy - Set-CsTeamsComplianceRecordingPolicy - Set-CsTeamsEducationAssignmentsAppPolicy - Set-CsTeamsComplianceRecordingApplication - Set-CsTeamsShiftsPolicy - Set-CsTeamsUpgradeConfiguration - Set-CsTeamsAudioConferencingCustomPromptsConfiguration - Set-CsTeamsSipDevicesConfiguration - Set-CsTeamsMeetingConfiguration - Set-CsTeamsVdiPolicy - Set-CsTeamsWorkLocationDetectionPolicy - Set-CsTeamsRecordingRollOutPolicy - Set-CsTeamsCustomBannerText - Set-CsTeamsBYODAndDesksPolicy - Set-CsTeamsNotificationAndFeedsPolicy - Set-CsPrivacyConfiguration - Update-M365TeamsApp - Update-M365UnifiedTenantSettings - Update-M365UnifiedCustomPendingApp - Get-CsBatchOperationDefinition - Get-CsBatchOperationStatus - Get-CsConfiguration - Get-CsGroupPolicyAssignments - Get-CsLoginInfo - Get-CsUserProvHistory - Get-GPAGroupMembers - Get-GPAUserMembership - Get-NgtProvInstanceFailOverStatus - Get-CsTeamsTenantAbuseConfiguration - Invoke-CsDirectoryObjectSync - Invoke-CsGenericNgtProvCommand - Invoke-CsRefreshGroupUsers - Invoke-CsReprocessBatchOperation - Invoke-CsReprocessGroupPolicyAssignment - Move-NgtProvInstance - New-CsConfiguration - Remove-CsConfiguration - Set-CsConfiguration - Set-CsTeamsTenantAbuseConfiguration - Set-CsPublishPolicySchemaDefaults - Get-TeamTargetingHierarchyStatus - Remove-TeamTargetingHierarchy - Set-TeamTargetingHierarchy - - - - - RoleCapability - - - - - - - Function - - - - Clear-CsOnlineTelephoneNumberOrder - Complete-CsOnlineTelephoneNumberOrder - Disable-CsOnlineSipDomain - Enable-CsOnlineSipDomain - Export-CsAcquiredPhoneNumber - Export-CsAutoAttendantHolidays - Export-CsOnlineAudioFile - Find-CsGroup - Find-CsOnlineApplicationInstance - Get-CsApplicationAccessPolicy - Get-CsApplicationMeetingConfiguration - Get-CsAutoAttendant - Get-CsAutoAttendantHolidays - Get-CsAutoAttendantStatus - Get-CsAutoAttendantSupportedLanguage - Get-CsAutoAttendantSupportedTimeZone - Get-CsAutoAttendantTenantInformation - Get-CsBatchPolicyAssignmentOperation - Get-CsCallingLineIdentity - Get-CsCallQueue - Get-CsCloudCallDataConnection - Get-CsDialPlan - Get-CsEffectiveTenantDialPlan - Get-CsExportAcquiredPhoneNumberStatus - Get-CsGroupPolicyAssignment - Get-CsHybridTelephoneNumber - Get-CsInboundBlockedNumberPattern - Get-CsInboundExemptNumberPattern - Get-CsMeetingMigrationStatus - Get-CsOnlineApplicationInstance - Get-CsOnlineApplicationInstanceAssociation - Get-CsOnlineApplicationInstanceAssociationStatus - Get-CsOnlineAudioConferencingRoutingPolicy - Get-CsOnlineAudioFile - Get-CsOnlineDialInConferencingBridge - Get-CsOnlineDialInConferencingLanguagesSupported - Get-CsOnlineDialinConferencingPolicy - Get-CsOnlineDialInConferencingServiceNumber - Get-CsOnlineDialinConferencingTenantConfiguration - Get-CsOnlineDialInConferencingTenantSettings - Get-CsOnlineDialInConferencingUser - Get-CsOnlineDialOutPolicy - Get-CsOnlineDirectoryTenant - Get-CsOnlineEnhancedEmergencyServiceDisclaimer - Get-CsOnlineLisCivicAddress - Get-CsOnlineLisLocation - Get-CsOnlineLisPort - Get-CsOnlineLisSubnet - Get-CsOnlineLisSwitch - Get-CsOnlineLisWirelessAccessPoint - Get-CsOnlinePowerShellEndpoint - Get-CsOnlinePSTNGateway - Get-CsOnlinePstnUsage - Get-CsOnlineSchedule - Get-CsOnlineSipDomain - Get-CsOnlineTelephoneNumber - Get-CsOnlineTelephoneNumberCountry - Get-CsOnlineTelephoneNumberOrder - Get-CsOnlineTelephoneNumberType - Get-CsOnlineUser - Get-CsOnlineVoicemailUserSettings - Get-CsOnlineVoiceRoute - Get-CsOnlineVoiceRoutingPolicy - Get-CsOnlineVoiceUser - Get-CsPhoneNumberAssignment - Get-CsPolicyPackage - Get-CsSdgBulkSignInRequestStatus - Get-CsSDGBulkSignInRequestsSummary - Get-CsTeamsAcsFederationConfiguration - Get-CsTeamsAudioConferencingPolicy - Get-CsTeamsCallParkPolicy - Get-CsTeamsCortanaPolicy - Get-CsTeamsEmergencyCallRoutingPolicy - Get-CsTeamsEnhancedEncryptionPolicy - Get-CsTeamsGuestCallingConfiguration - Get-CsTeamsGuestMeetingConfiguration - Get-CsTeamsGuestMessagingConfiguration - Get-CsTeamsIPPhonePolicy - Get-CsTeamsMediaLoggingPolicy - Get-CsTeamsMeetingBroadcastConfiguration - Get-CsTeamsMeetingBroadcastPolicy - Get-CsTeamsMigrationConfiguration - Get-CsTeamsMobilityPolicy - Get-CsTeamsNetworkRoamingPolicy - Get-CsTeamsRoomVideoTeleConferencingPolicy - Get-CsTeamsSettingsCustomApp - Get-CsTeamsShiftsAppPolicy - Get-CsTeamsShiftsConnectionConnector - Get-CsTeamsShiftsConnectionErrorReport - Get-CsTeamsShiftsConnection - Get-CsTeamsShiftsConnectionInstance - Get-CsTeamsShiftsConnectionOperation - Get-CsTeamsShiftsConnectionSyncResult - Get-CsTeamsShiftsConnectionTeamMap - Get-CsTeamsShiftsConnectionWfmTeam - Get-CsTeamsShiftsConnectionWfmUser - Get-CsTeamsSurvivableBranchAppliance - Get-CsTeamsSurvivableBranchAppliancePolicy - Get-CsTeamsTargetingPolicy - Get-CsTeamsTranslationRule - Get-CsTeamsUnassignedNumberTreatment - Get-CsTeamsUpgradePolicy - Get-CsTeamsVdiPolicy - Get-CsTeamsVideoInteropServicePolicy - Get-CsTeamsWorkLoadPolicy - Get-CsTeamTemplate - Get-CsTeamTemplateList - Get-CsTenant - Get-CsTenantBlockedCallingNumbers - Get-CsTenantDialPlan - Get-CsTenantFederationConfiguration - Get-CsTenantLicensingConfiguration - Get-CsTenantMigrationConfiguration - Get-CsTenantNetworkConfiguration - Get-CsTenantNetworkRegion - Get-CsTenantNetworkSubnet - Get-CsTenantTrustedIPAddress - Get-CsUserCallingSettings - Get-CsUserPolicyAssignment - Get-CsUserPolicyPackage - Get-CsUserPolicyPackageRecommendation - Get-CsVideoInteropServiceProvider - Grant-CsApplicationAccessPolicy - Grant-CsCallingLineIdentity - Grant-CsDialoutPolicy - Grant-CsGroupPolicyPackageAssignment - Grant-CsOnlineAudioConferencingRoutingPolicy - Grant-CsOnlineVoicemailPolicy - Grant-CsOnlineVoiceRoutingPolicy - Grant-CsTeamsAudioConferencingPolicy - Grant-CsTeamsCallHoldPolicy - Grant-CsTeamsCallParkPolicy - Grant-CsTeamsChannelsPolicy - Grant-CsTeamsCortanaPolicy - Grant-CsTeamsEmergencyCallingPolicy - Grant-CsTeamsEmergencyCallRoutingPolicy - Grant-CsTeamsEnhancedEncryptionPolicy - Grant-CsTeamsFeedbackPolicy - Grant-CsTeamsIPPhonePolicy - Grant-CsTeamsMediaLoggingPolicy - Grant-CsTeamsMeetingBroadcastPolicy - Grant-CsTeamsMeetingPolicy - Grant-CsTeamsMessagingPolicy - Grant-CsTeamsMobilityPolicy - Grant-CsTeamsRoomVideoTeleConferencingPolicy - Grant-CsTeamsSurvivableBranchAppliancePolicy - Grant-CsTeamsUpdateManagementPolicy - Grant-CsTeamsUpgradePolicy - Grant-CsTeamsVideoInteropServicePolicy - Grant-CsTeamsVoiceApplicationsPolicy - Grant-CsTeamsWorkLoadPolicy - Grant-CsTenantDialPlan - Grant-CsUserPolicyPackage - Grant-CsTeamsComplianceRecordingPolicy - Import-CsAutoAttendantHolidays - Import-CsOnlineAudioFile - Invoke-CsInternalPSTelemetry - Move-CsInternalHelper - New-CsApplicationAccessPolicy - New-CsAutoAttendant - New-CsAutoAttendantCallableEntity - New-CsAutoAttendantCallFlow - New-CsAutoAttendantCallHandlingAssociation - New-CsAutoAttendantDialScope - New-CsAutoAttendantMenu - New-CsAutoAttendantMenuOption - New-CsAutoAttendantPrompt - New-CsBatchPolicyAssignmentOperation - New-CsBatchPolicyPackageAssignmentOperation - New-CsCallingLineIdentity - New-CsCallQueue - New-CsCloudCallDataConnection - New-CsCustomPolicyPackage - New-CsEdgeAllowAllKnownDomains - New-CsEdgeAllowList - New-CsEdgeDomainPattern - New-CsGroupPolicyAssignment - New-CsHybridTelephoneNumber - New-CsInboundBlockedNumberPattern - New-CsInboundExemptNumberPattern - New-CsOnlineApplicationInstance - New-CsOnlineApplicationInstanceAssociation - New-CsOnlineAudioConferencingRoutingPolicy - New-CsOnlineDateTimeRange - New-CsOnlineLisCivicAddress - New-CsOnlineLisLocation - New-CsOnlinePSTNGateway - New-CsOnlineSchedule - New-CsOnlineTelephoneNumberOrder - New-CsOnlineTimeRange - New-CsOnlineVoiceRoute - New-CsOnlineVoiceRoutingPolicy - New-CsSdgBulkSignInRequest - New-CsTeamsAudioConferencingPolicy - New-CsTeamsCallParkPolicy - New-CsTeamsCortanaPolicy - New-CsTeamsEmergencyCallRoutingPolicy - New-CsTeamsEmergencyNumber - New-CsTeamsEnhancedEncryptionPolicy - New-CsTeamsIPPhonePolicy - New-CsTeamsMeetingBroadcastPolicy - New-CsTeamsMobilityPolicy - New-CsTeamsNetworkRoamingPolicy - New-CsTeamsRoomVideoTeleConferencingPolicy - New-CsTeamsShiftsConnectionBatchTeamMap - New-CsTeamsShiftsConnection - New-CsTeamsShiftsConnectionInstance - New-CsTeamsSurvivableBranchAppliance - New-CsTeamsSurvivableBranchAppliancePolicy - New-CsTeamsTranslationRule - New-CsTeamsUnassignedNumberTreatment - New-CsTeamsVdiPolicy - New-CsTeamsWorkLoadPolicy - New-CsTeamTemplate - New-CsTenantDialPlan - New-CsTenantNetworkRegion - New-CsTenantNetworkSite - New-CsTenantNetworkSubnet - New-CsTenantTrustedIPAddress - New-CsUserCallingDelegate - New-CsVideoInteropServiceProvider - New-CsVoiceNormalizationRule - New-CsOnlineDirectRoutingTelephoneNumberUploadOrder - New-CsOnlineTelephoneNumberReleaseOrder - Register-CsOnlineDialInConferencingServiceNumber - Remove-CsApplicationAccessPolicy - Remove-CsAutoAttendant - Remove-CsCallingLineIdentity - Remove-CsCallQueue - Remove-CsCustomPolicyPackage - Remove-CsGroupPolicyAssignment - Remove-CsHybridTelephoneNumber - Remove-CsInboundBlockedNumberPattern - Remove-CsInboundExemptNumberPattern - Remove-CsOnlineApplicationInstanceAssociation - Remove-CsOnlineAudioConferencingRoutingPolicy - Remove-CsOnlineAudioFile - Remove-CsOnlineDialInConferencingTenantSettings - Remove-CsOnlineLisCivicAddress - Remove-CsOnlineLisLocation - Remove-CsOnlineLisPort - Remove-CsOnlineLisSubnet - Remove-CsOnlineLisSwitch - Remove-CsOnlineLisWirelessAccessPoint - Remove-CsOnlinePSTNGateway - Remove-CsOnlineSchedule - Remove-CsOnlineTelephoneNumber - Remove-CsOnlineVoiceRoute - Remove-CsOnlineVoiceRoutingPolicy - Remove-CsPhoneNumberAssignment - Remove-CsTeamsAudioConferencingPolicy - Remove-CsTeamsCallParkPolicy - Remove-CsTeamsCortanaPolicy - Remove-CsTeamsEmergencyCallRoutingPolicy - Remove-CsTeamsEnhancedEncryptionPolicy - Remove-CsTeamsIPPhonePolicy - Remove-CsTeamsMeetingBroadcastPolicy - Remove-CsTeamsMobilityPolicy - Remove-CsTeamsNetworkRoamingPolicy - Remove-CsTeamsRoomVideoTeleConferencingPolicy - Remove-CsTeamsShiftsConnection - Remove-CsTeamsShiftsConnectionInstance - Remove-CsTeamsShiftsConnectionTeamMap - Remove-CsTeamsShiftsScheduleRecord - Remove-CsTeamsSurvivableBranchAppliance - Remove-CsTeamsSurvivableBranchAppliancePolicy - Remove-CsTeamsTargetingPolicy - Remove-CsTeamsTranslationRule - Remove-CsTeamsUnassignedNumberTreatment - Remove-CsTeamsVdiPolicy - Remove-CsTeamsWorkLoadPolicy - Remove-CsTeamTemplate - Remove-CsTenantDialPlan - Remove-CsTenantNetworkRegion - Remove-CsTenantNetworkSite - Remove-CsTenantNetworkSubnet - Remove-CsTenantTrustedIPAddress - Remove-CsUserCallingDelegate - Remove-CsUserLicenseGracePeriod - Remove-CsVideoInteropServiceProvider - Set-CsApplicationAccessPolicy - Set-CsApplicationMeetingConfiguration - Set-CsAutoAttendant - Set-CsCallingLineIdentity - Set-CsCallQueue - Set-CsInboundBlockedNumberPattern - Set-CsInboundExemptNumberPattern - Set-CsInternalOnlinePowerShellEndpoint - Set-CsOnlineApplicationInstance - Set-CsOnlineAudioConferencingRoutingPolicy - Set-CsOnlineDialInConferencingBridge - Set-CsOnlineDialInConferencingServiceNumber - Set-CsOnlineDialInConferencingTenantSettings - Set-CsOnlineDialInConferencingUser - Set-CsOnlineDialInConferencingUserDefaultNumber - Set-CsOnlineEnhancedEmergencyServiceDisclaimer - Set-CsOnlineLisCivicAddress - Set-CsOnlineLisLocation - Set-CsOnlineLisPort - Set-CsOnlineLisSubnet - Set-CsOnlineLisSwitch - Set-CsOnlineLisWirelessAccessPoint - Set-CsOnlinePSTNGateway - Set-CsOnlinePstnUsage - Set-CsOnlineSchedule - Set-CsOnlineVoiceApplicationInstance - Set-CsOnlineVoicemailUserSettings - Set-CsOnlineVoiceRoute - Set-CsOnlineVoiceRoutingPolicy - Set-CsOnlineVoiceUser - Set-CsPhoneNumberAssignment - Set-CsTeamsAcsFederationConfiguration - Set-CsTeamsAudioConferencingPolicy - Set-CsTeamsCallParkPolicy - Set-CsTeamsCortanaPolicy - Set-CsTeamsEmergencyCallRoutingPolicy - Set-CsTeamsEnhancedEncryptionPolicy - Set-CsTeamsGuestCallingConfiguration - Set-CsTeamsGuestMeetingConfiguration - Set-CsTeamsGuestMessagingConfiguration - Set-CsTeamsIPPhonePolicy - Set-CsTeamsMeetingBroadcastConfiguration - Set-CsTeamsMeetingBroadcastPolicy - Set-CsTeamsMigrationConfiguration - Set-CsTeamsMobilityPolicy - Set-CsTeamsNetworkRoamingPolicy - Set-CsTeamsRoomVideoTeleConferencingPolicy - Set-CsTeamsSettingsCustomApp - Set-CsTeamsShiftsAppPolicy - Set-CsTeamsShiftsConnection - Set-CsTeamsShiftsConnectionInstance - Set-CsTeamsSurvivableBranchAppliance - Set-CsTeamsSurvivableBranchAppliancePolicy - Set-CsTeamsTargetingPolicy - Set-CsTeamsTranslationRule - Set-CsTeamsUnassignedNumberTreatment - Set-CsTeamsVdiPolicy - Set-CsTeamsWorkLoadPolicy - Set-CsTenantBlockedCallingNumbers - Set-CsTenantDialPlan - Set-CsTenantFederationConfiguration - Set-CsTenantMigrationConfiguration - Set-CsTenantNetworkRegion - Set-CsTenantNetworkSite - Set-CsTenantNetworkSubnet - Set-CsTenantTrustedIPAddress - Set-CsUser - Set-CsUserCallingDelegate - Set-CsUserCallingSettings - Set-CsVideoInteropServiceProvider - Start-CsExMeetingMigration - Sync-CsOnlineApplicationInstance - Test-CsEffectiveTenantDialPlan - Test-CsInboundBlockedNumberPattern - Test-CsTeamsShiftsConnectionValidate - Test-CsTeamsTranslationRule - Test-CsTeamsUnassignedNumberTreatment - Test-CsVoiceNormalizationRule - Unregister-CsOnlineDialInConferencingServiceNumber - Update-CsAutoAttendant - Update-CsCustomPolicyPackage - Update-CsTeamsShiftsConnection - Update-CsTeamsShiftsConnectionInstance - Update-CsTeamTemplate - New-CsBatchTeamsDeployment - Get-CsBatchTeamsDeploymentStatus - Set-CsOCEContext - Clear-CsOCEContext - Get-CsRegionContext - Set-CsRegionContext - Clear-CsRegionContext - Get-CsMeetingMigrationTransactionHistory - Get-CsMasVersionedSchemaData - Get-CsMasObjectChangelog - Get-CsBusinessVoiceDirectoryDiagnosticData - Get-CsCloudTenant - Get-CsCloudUser - Get-CsHostingProvider - Set-CsTenantUserBackfill - Invoke-CsCustomHandlerNgtprov - Invoke-CsCustomHandlerCallBackNgtprov - New-CsSdgDeviceTaggingRequest - Get-CsMoveTenantServiceInstanceTaskStatus - Move-CsTenantServiceInstance - Move-CsTenantCrossRegion - Invoke-CsDirectObjectSync - New-CsSDGDeviceTransferRequest - Get-CsAadTenant - Get-CsAadUser - Clear-CsCacheOperation - Move-CsAvsTenantPartition - Invoke-CsMsodsSync - Get-CsUssUserSettings - Set-CsUssUserSettings - Get-CsPhoneNumberPolicyAssignment - Set-CsPhoneNumberPolicyAssignment - Invoke-CsRehomeuser - - - - - DscResource - - - - Command - - - - Add-TeamChannelUser - Add-TeamUser - Connect-MicrosoftTeams - Disconnect-MicrosoftTeams - Set-TeamsEnvironmentConfig - Clear-TeamsEnvironmentConfig - Get-AssociatedTeam - Get-MultiGeoRegion - Get-Operation - Get-SharedWithTeam - Get-SharedWithTeamUser - Get-Team - Get-TeamAllChannel - Get-TeamChannel - Get-TeamChannelUser - Get-TeamIncomingChannel - Get-TeamsApp - Get-TeamUser - Get-M365TeamsApp - Get-AllM365TeamsApps - Get-M365UnifiedTenantSettings - Get-M365UnifiedCustomPendingApps - Get-CsTeamsMessagingPolicy - Get-CsTeamsMeetingPolicy - Get-CsOnlineVoicemailPolicy - Get-CsOnlineVoicemailValidationConfiguration - Get-CsTeamsAIPolicy - Get-CsTeamsFeedbackPolicy - Get-CsTeamsUpdateManagementPolicy - Get-CsTeamsChannelsPolicy - Get-CsTeamsMeetingBrandingPolicy - Get-CsTeamsEmergencyCallingPolicy - Get-CsTeamsCallHoldPolicy - Get-CsTeamsMessagingConfiguration - Get-CsTeamsVoiceApplicationsPolicy - Get-CsTeamsEventsPolicy - Get-CsTeamsExternalAccessConfiguration - Get-CsTeamsFilesPolicy - Get-CsTeamsCallingPolicy - Get-CsTeamsClientConfiguration - Get-CsExternalAccessPolicy - Get-CsTeamsAppPermissionPolicy - Get-CsTeamsAppSetupPolicy - Get-CsTeamsFirstPartyMeetingTemplateConfiguration - Get-CsTeamsMeetingTemplatePermissionPolicy - Get-CsLocationPolicy - Get-CsTeamsShiftsPolicy - Get-CsTenantNetworkSite - Get-CsTeamsCarrierEmergencyCallRoutingPolicy - Get-CsTeamsMeetingTemplateConfiguration - Get-CsTeamsVirtualAppointmentsPolicy - Get-CsTeamsSharedCallingRoutingPolicy - Get-CsTeamsTemplatePermissionPolicy - Get-CsTeamsComplianceRecordingPolicy - Get-CsTeamsComplianceRecordingApplication - Get-CsTeamsEducationAssignmentsAppPolicy - Get-CsTeamsUpgradeConfiguration - Get-CsTeamsAudioConferencingCustomPromptsConfiguration - Get-CsTeamsSipDevicesConfiguration - Get-CsTeamsCustomBannerText - Get-CsTeamsVdiPolicy - Get-CsTeamsMediaConnectivityPolicy - Get-CsTeamsMeetingConfiguration - Get-CsTeamsWorkLocationDetectionPolicy - Get-CsTeamsRecordingRollOutPolicy - Get-CsTeamsEducationConfiguration - Get-CsTeamsBYODAndDesksPolicy - Get-CsTeamsNotificationAndFeedsPolicy - Get-CsTeamsMultiTenantOrganizationConfiguration - Get-CsPrivacyConfiguration - Grant-CsTeamsAIPolicy - Grant-CsTeamsMeetingBrandingPolicy - Grant-CsExternalAccessPolicy - Grant-CsTeamsCallingPolicy - Grant-CsTeamsAppPermissionPolicy - Grant-CsTeamsAppSetupPolicy - Grant-CsTeamsEventsPolicy - Grant-CsTeamsFilesPolicy - Grant-CsTeamsMediaConnectivityPolicy - Grant-CsTeamsMeetingTemplatePermissionPolicy - Grant-CsTeamsCarrierEmergencyCallRoutingPolicy - Grant-CsTeamsVirtualAppointmentsPolicy - Grant-CsTeamsSharedCallingRoutingPolicy - Grant-CsTeamsShiftsPolicy - Grant-CsTeamsRecordingRollOutPolicy - Grant-CsTeamsVdiPolicy - Grant-CsTeamsWorkLocationDetectionPolicy - Grant-CsTeamsBYODAndDesksPolicy - New-Team - New-TeamChannel - New-TeamsApp - New-CsTeamsAIPolicy - New-CsTeamsMessagingPolicy - New-CsTeamsMeetingPolicy - New-CsOnlineVoicemailPolicy - New-CsTeamsFeedbackPolicy - New-CsTeamsUpdateManagementPolicy - New-CsTeamsChannelsPolicy - New-CsTeamsFilesPolicy - New-CsTeamsMediaConnectivityPolicy - New-CsTeamsMeetingBrandingTheme - New-CsTeamsMeetingBackgroundImage - New-CsTeamsNdiAssuranceSlate - New-CsTeamsMeetingBrandingPolicy - New-CsTeamsEmergencyCallingPolicy - New-CsTeamsEmergencyCallingExtendedNotification - New-CsTeamsCallHoldPolicy - New-CsTeamsVoiceApplicationsPolicy - New-CsTeamsEventsPolicy - New-CsTeamsCallingPolicy - New-CsExternalAccessPolicy - New-CsTeamsAppPermissionPolicy - New-CsTeamsAppSetupPolicy - New-CsTeamsMeetingTemplatePermissionPolicy - New-CsLocationPolicy - New-CsTeamsCarrierEmergencyCallRoutingPolicy - New-CsTeamsHiddenMeetingTemplate - New-CsTeamsVirtualAppointmentsPolicy - New-CsTeamsSharedCallingRoutingPolicy - New-CsTeamsHiddenTemplate - New-CsTeamsTemplatePermissionPolicy - New-CsTeamsComplianceRecordingPolicy - New-CsTeamsComplianceRecordingApplication - New-CsTeamsComplianceRecordingPairedApplication - New-CsTeamsWorkLocationDetectionPolicy - New-CsTeamsRecordingRollOutPolicy - New-CsCustomPrompt - New-CsCustomPromptPackage - New-CsTeamsShiftsPolicy - New-CsTeamsCustomBannerText - New-CsTeamsVdiPolicy - New-CsTeamsBYODAndDesksPolicy - Remove-SharedWithTeam - Remove-Team - Remove-TeamChannel - Remove-TeamChannelUser - Remove-TeamsApp - Remove-TeamUser - Remove-CsTeamsAIPolicy - Remove-CsTeamsMessagingPolicy - Remove-CsTeamsMeetingPolicy - Remove-CsOnlineVoicemailPolicy - Remove-CsTeamsFeedbackPolicy - Remove-CsTeamsFilesPolicy - Remove-CsTeamsUpdateManagementPolicy - Remove-CsTeamsChannelsPolicy - Remove-CsTeamsMediaConnectivityPolicy - Remove-CsTeamsMeetingBrandingPolicy - Remove-CsTeamsEmergencyCallingPolicy - Remove-CsTeamsCallHoldPolicy - Remove-CsTeamsVoiceApplicationsPolicy - Remove-CsTeamsEventsPolicy - Remove-CsTeamsCallingPolicy - Remove-CsExternalAccessPolicy - Remove-CsTeamsAppPermissionPolicy - Remove-CsTeamsAppSetupPolicy - Remove-CsTeamsMeetingTemplatePermissionPolicy - Remove-CsLocationPolicy - Remove-CsTeamsCarrierEmergencyCallRoutingPolicy - Remove-CsTeamsVirtualAppointmentsPolicy - Remove-CsTeamsSharedCallingRoutingPolicy - Remove-CsTeamsTemplatePermissionPolicy - Remove-CsTeamsComplianceRecordingPolicy - Remove-CsTeamsComplianceRecordingApplication - Remove-CsTeamsShiftsPolicy - Remove-CsTeamsCustomBannerText - Remove-CsTeamsVdiPolicy - Remove-CsTeamsWorkLocationDetectionPolicy - Remove-CsTeamsRecordingRollOutPolicy - Remove-CsTeamsBYODAndDesksPolicy - Remove-CsTeamsNotificationAndFeedsPolicy - Set-Team - Set-TeamArchivedState - Set-TeamChannel - Set-TeamPicture - Set-TeamsApp - Set-CsTeamsAIPolicy - Set-CsTeamsMessagingPolicy - Set-CsTeamsMeetingPolicy - Set-CsOnlineVoicemailPolicy - Set-CsTeamsFilesPolicy - Set-CsOnlineVoicemailValidationConfiguration - Set-CsTeamsFeedbackPolicy - Set-CsTeamsUpdateManagementPolicy - Set-CsTeamsChannelsPolicy - Set-CsTeamsMediaConnectivityPolicy - Set-CsTeamsMeetingBrandingPolicy - Set-CsTeamsEmergencyCallingPolicy - Set-CsTeamsEducationConfiguration - Set-CsTeamsCallHoldPolicy - Set-CsTeamsMessagingConfiguration - Set-CsTeamsVoiceApplicationsPolicy - Set-CsTeamsEventsPolicy - Set-CsTeamsExternalAccessConfiguration - Set-CsTeamsCallingPolicy - Set-CsTeamsClientConfiguration - Set-CsExternalAccessPolicy - Set-CsTeamsAppPermissionPolicy - Set-CsTeamsAppSetupPolicy - Set-CsTeamsFirstPartyMeetingTemplateConfiguration - Set-CsTeamsMeetingTemplatePermissionPolicy - Set-CsTeamsMultiTenantOrganizationConfiguration - Set-CsLocationPolicy - Set-CsTeamsCarrierEmergencyCallRoutingPolicy - Set-CsTeamsVirtualAppointmentsPolicy - Set-CsTeamsSharedCallingRoutingPolicy - Set-CsTeamsTemplatePermissionPolicy - Set-CsTeamsComplianceRecordingPolicy - Set-CsTeamsEducationAssignmentsAppPolicy - Set-CsTeamsComplianceRecordingApplication - Set-CsTeamsShiftsPolicy - Set-CsTeamsUpgradeConfiguration - Set-CsTeamsAudioConferencingCustomPromptsConfiguration - Set-CsTeamsSipDevicesConfiguration - Set-CsTeamsMeetingConfiguration - Set-CsTeamsVdiPolicy - Set-CsTeamsWorkLocationDetectionPolicy - Set-CsTeamsRecordingRollOutPolicy - Set-CsTeamsCustomBannerText - Set-CsTeamsBYODAndDesksPolicy - Set-CsTeamsNotificationAndFeedsPolicy - Set-CsPrivacyConfiguration - Update-M365TeamsApp - Update-M365UnifiedTenantSettings - Update-M365UnifiedCustomPendingApp - Get-CsBatchOperationDefinition - Get-CsBatchOperationStatus - Get-CsConfiguration - Get-CsGroupPolicyAssignments - Get-CsLoginInfo - Get-CsUserProvHistory - Get-GPAGroupMembers - Get-GPAUserMembership - Get-NgtProvInstanceFailOverStatus - Get-CsTeamsTenantAbuseConfiguration - Invoke-CsDirectoryObjectSync - Invoke-CsGenericNgtProvCommand - Invoke-CsRefreshGroupUsers - Invoke-CsReprocessBatchOperation - Invoke-CsReprocessGroupPolicyAssignment - Move-NgtProvInstance - New-CsConfiguration - Remove-CsConfiguration - Set-CsConfiguration - Set-CsTeamsTenantAbuseConfiguration - Set-CsPublishPolicySchemaDefaults - Get-TeamTargetingHierarchyStatus - Remove-TeamTargetingHierarchy - Set-TeamTargetingHierarchy - Clear-CsOnlineTelephoneNumberOrder - Complete-CsOnlineTelephoneNumberOrder - Disable-CsOnlineSipDomain - Enable-CsOnlineSipDomain - Export-CsAcquiredPhoneNumber - Export-CsAutoAttendantHolidays - Export-CsOnlineAudioFile - Find-CsGroup - Find-CsOnlineApplicationInstance - Get-CsApplicationAccessPolicy - Get-CsApplicationMeetingConfiguration - Get-CsAutoAttendant - Get-CsAutoAttendantHolidays - Get-CsAutoAttendantStatus - Get-CsAutoAttendantSupportedLanguage - Get-CsAutoAttendantSupportedTimeZone - Get-CsAutoAttendantTenantInformation - Get-CsBatchPolicyAssignmentOperation - Get-CsCallingLineIdentity - Get-CsCallQueue - Get-CsCloudCallDataConnection - Get-CsDialPlan - Get-CsEffectiveTenantDialPlan - Get-CsExportAcquiredPhoneNumberStatus - Get-CsGroupPolicyAssignment - Get-CsHybridTelephoneNumber - Get-CsInboundBlockedNumberPattern - Get-CsInboundExemptNumberPattern - Get-CsMeetingMigrationStatus - Get-CsOnlineApplicationInstance - Get-CsOnlineApplicationInstanceAssociation - Get-CsOnlineApplicationInstanceAssociationStatus - Get-CsOnlineAudioConferencingRoutingPolicy - Get-CsOnlineAudioFile - Get-CsOnlineDialInConferencingBridge - Get-CsOnlineDialInConferencingLanguagesSupported - Get-CsOnlineDialinConferencingPolicy - Get-CsOnlineDialInConferencingServiceNumber - Get-CsOnlineDialinConferencingTenantConfiguration - Get-CsOnlineDialInConferencingTenantSettings - Get-CsOnlineDialInConferencingUser - Get-CsOnlineDialOutPolicy - Get-CsOnlineDirectoryTenant - Get-CsOnlineEnhancedEmergencyServiceDisclaimer - Get-CsOnlineLisCivicAddress - Get-CsOnlineLisLocation - Get-CsOnlineLisPort - Get-CsOnlineLisSubnet - Get-CsOnlineLisSwitch - Get-CsOnlineLisWirelessAccessPoint - Get-CsOnlinePowerShellEndpoint - Get-CsOnlinePSTNGateway - Get-CsOnlinePstnUsage - Get-CsOnlineSchedule - Get-CsOnlineSipDomain - Get-CsOnlineTelephoneNumber - Get-CsOnlineTelephoneNumberCountry - Get-CsOnlineTelephoneNumberOrder - Get-CsOnlineTelephoneNumberType - Get-CsOnlineUser - Get-CsOnlineVoicemailUserSettings - Get-CsOnlineVoiceRoute - Get-CsOnlineVoiceRoutingPolicy - Get-CsOnlineVoiceUser - Get-CsPhoneNumberAssignment - Get-CsPolicyPackage - Get-CsSdgBulkSignInRequestStatus - Get-CsSDGBulkSignInRequestsSummary - Get-CsTeamsAcsFederationConfiguration - Get-CsTeamsAudioConferencingPolicy - Get-CsTeamsCallParkPolicy - Get-CsTeamsCortanaPolicy - Get-CsTeamsEmergencyCallRoutingPolicy - Get-CsTeamsEnhancedEncryptionPolicy - Get-CsTeamsGuestCallingConfiguration - Get-CsTeamsGuestMeetingConfiguration - Get-CsTeamsGuestMessagingConfiguration - Get-CsTeamsIPPhonePolicy - Get-CsTeamsMediaLoggingPolicy - Get-CsTeamsMeetingBroadcastConfiguration - Get-CsTeamsMeetingBroadcastPolicy - Get-CsTeamsMigrationConfiguration - Get-CsTeamsMobilityPolicy - Get-CsTeamsNetworkRoamingPolicy - Get-CsTeamsRoomVideoTeleConferencingPolicy - Get-CsTeamsSettingsCustomApp - Get-CsTeamsShiftsAppPolicy - Get-CsTeamsShiftsConnectionConnector - Get-CsTeamsShiftsConnectionErrorReport - Get-CsTeamsShiftsConnection - Get-CsTeamsShiftsConnectionInstance - Get-CsTeamsShiftsConnectionOperation - Get-CsTeamsShiftsConnectionSyncResult - Get-CsTeamsShiftsConnectionTeamMap - Get-CsTeamsShiftsConnectionWfmTeam - Get-CsTeamsShiftsConnectionWfmUser - Get-CsTeamsSurvivableBranchAppliance - Get-CsTeamsSurvivableBranchAppliancePolicy - Get-CsTeamsTargetingPolicy - Get-CsTeamsTranslationRule - Get-CsTeamsUnassignedNumberTreatment - Get-CsTeamsUpgradePolicy - Get-CsTeamsVdiPolicy - Get-CsTeamsVideoInteropServicePolicy - Get-CsTeamsWorkLoadPolicy - Get-CsTeamTemplate - Get-CsTeamTemplateList - Get-CsTenant - Get-CsTenantBlockedCallingNumbers - Get-CsTenantDialPlan - Get-CsTenantFederationConfiguration - Get-CsTenantLicensingConfiguration - Get-CsTenantMigrationConfiguration - Get-CsTenantNetworkConfiguration - Get-CsTenantNetworkRegion - Get-CsTenantNetworkSubnet - Get-CsTenantTrustedIPAddress - Get-CsUserCallingSettings - Get-CsUserPolicyAssignment - Get-CsUserPolicyPackage - Get-CsUserPolicyPackageRecommendation - Get-CsVideoInteropServiceProvider - Grant-CsApplicationAccessPolicy - Grant-CsCallingLineIdentity - Grant-CsDialoutPolicy - Grant-CsGroupPolicyPackageAssignment - Grant-CsOnlineAudioConferencingRoutingPolicy - Grant-CsOnlineVoicemailPolicy - Grant-CsOnlineVoiceRoutingPolicy - Grant-CsTeamsAudioConferencingPolicy - Grant-CsTeamsCallHoldPolicy - Grant-CsTeamsCallParkPolicy - Grant-CsTeamsChannelsPolicy - Grant-CsTeamsCortanaPolicy - Grant-CsTeamsEmergencyCallingPolicy - Grant-CsTeamsEmergencyCallRoutingPolicy - Grant-CsTeamsEnhancedEncryptionPolicy - Grant-CsTeamsFeedbackPolicy - Grant-CsTeamsIPPhonePolicy - Grant-CsTeamsMediaLoggingPolicy - Grant-CsTeamsMeetingBroadcastPolicy - Grant-CsTeamsMeetingPolicy - Grant-CsTeamsMessagingPolicy - Grant-CsTeamsMobilityPolicy - Grant-CsTeamsRoomVideoTeleConferencingPolicy - Grant-CsTeamsSurvivableBranchAppliancePolicy - Grant-CsTeamsUpdateManagementPolicy - Grant-CsTeamsUpgradePolicy - Grant-CsTeamsVideoInteropServicePolicy - Grant-CsTeamsVoiceApplicationsPolicy - Grant-CsTeamsWorkLoadPolicy - Grant-CsTenantDialPlan - Grant-CsUserPolicyPackage - Grant-CsTeamsComplianceRecordingPolicy - Import-CsAutoAttendantHolidays - Import-CsOnlineAudioFile - Invoke-CsInternalPSTelemetry - Move-CsInternalHelper - New-CsApplicationAccessPolicy - New-CsAutoAttendant - New-CsAutoAttendantCallableEntity - New-CsAutoAttendantCallFlow - New-CsAutoAttendantCallHandlingAssociation - New-CsAutoAttendantDialScope - New-CsAutoAttendantMenu - New-CsAutoAttendantMenuOption - New-CsAutoAttendantPrompt - New-CsBatchPolicyAssignmentOperation - New-CsBatchPolicyPackageAssignmentOperation - New-CsCallingLineIdentity - New-CsCallQueue - New-CsCloudCallDataConnection - New-CsCustomPolicyPackage - New-CsEdgeAllowAllKnownDomains - New-CsEdgeAllowList - New-CsEdgeDomainPattern - New-CsGroupPolicyAssignment - New-CsHybridTelephoneNumber - New-CsInboundBlockedNumberPattern - New-CsInboundExemptNumberPattern - New-CsOnlineApplicationInstance - New-CsOnlineApplicationInstanceAssociation - New-CsOnlineAudioConferencingRoutingPolicy - New-CsOnlineDateTimeRange - New-CsOnlineLisCivicAddress - New-CsOnlineLisLocation - New-CsOnlinePSTNGateway - New-CsOnlineSchedule - New-CsOnlineTelephoneNumberOrder - New-CsOnlineTimeRange - New-CsOnlineVoiceRoute - New-CsOnlineVoiceRoutingPolicy - New-CsSdgBulkSignInRequest - New-CsTeamsAudioConferencingPolicy - New-CsTeamsCallParkPolicy - New-CsTeamsCortanaPolicy - New-CsTeamsEmergencyCallRoutingPolicy - New-CsTeamsEmergencyNumber - New-CsTeamsEnhancedEncryptionPolicy - New-CsTeamsIPPhonePolicy - New-CsTeamsMeetingBroadcastPolicy - New-CsTeamsMobilityPolicy - New-CsTeamsNetworkRoamingPolicy - New-CsTeamsRoomVideoTeleConferencingPolicy - New-CsTeamsShiftsConnectionBatchTeamMap - New-CsTeamsShiftsConnection - New-CsTeamsShiftsConnectionInstance - New-CsTeamsSurvivableBranchAppliance - New-CsTeamsSurvivableBranchAppliancePolicy - New-CsTeamsTranslationRule - New-CsTeamsUnassignedNumberTreatment - New-CsTeamsVdiPolicy - New-CsTeamsWorkLoadPolicy - New-CsTeamTemplate - New-CsTenantDialPlan - New-CsTenantNetworkRegion - New-CsTenantNetworkSite - New-CsTenantNetworkSubnet - New-CsTenantTrustedIPAddress - New-CsUserCallingDelegate - New-CsVideoInteropServiceProvider - New-CsVoiceNormalizationRule - New-CsOnlineDirectRoutingTelephoneNumberUploadOrder - New-CsOnlineTelephoneNumberReleaseOrder - Register-CsOnlineDialInConferencingServiceNumber - Remove-CsApplicationAccessPolicy - Remove-CsAutoAttendant - Remove-CsCallingLineIdentity - Remove-CsCallQueue - Remove-CsCustomPolicyPackage - Remove-CsGroupPolicyAssignment - Remove-CsHybridTelephoneNumber - Remove-CsInboundBlockedNumberPattern - Remove-CsInboundExemptNumberPattern - Remove-CsOnlineApplicationInstanceAssociation - Remove-CsOnlineAudioConferencingRoutingPolicy - Remove-CsOnlineAudioFile - Remove-CsOnlineDialInConferencingTenantSettings - Remove-CsOnlineLisCivicAddress - Remove-CsOnlineLisLocation - Remove-CsOnlineLisPort - Remove-CsOnlineLisSubnet - Remove-CsOnlineLisSwitch - Remove-CsOnlineLisWirelessAccessPoint - Remove-CsOnlinePSTNGateway - Remove-CsOnlineSchedule - Remove-CsOnlineTelephoneNumber - Remove-CsOnlineVoiceRoute - Remove-CsOnlineVoiceRoutingPolicy - Remove-CsPhoneNumberAssignment - Remove-CsTeamsAudioConferencingPolicy - Remove-CsTeamsCallParkPolicy - Remove-CsTeamsCortanaPolicy - Remove-CsTeamsEmergencyCallRoutingPolicy - Remove-CsTeamsEnhancedEncryptionPolicy - Remove-CsTeamsIPPhonePolicy - Remove-CsTeamsMeetingBroadcastPolicy - Remove-CsTeamsMobilityPolicy - Remove-CsTeamsNetworkRoamingPolicy - Remove-CsTeamsRoomVideoTeleConferencingPolicy - Remove-CsTeamsShiftsConnection - Remove-CsTeamsShiftsConnectionInstance - Remove-CsTeamsShiftsConnectionTeamMap - Remove-CsTeamsShiftsScheduleRecord - Remove-CsTeamsSurvivableBranchAppliance - Remove-CsTeamsSurvivableBranchAppliancePolicy - Remove-CsTeamsTargetingPolicy - Remove-CsTeamsTranslationRule - Remove-CsTeamsUnassignedNumberTreatment - Remove-CsTeamsVdiPolicy - Remove-CsTeamsWorkLoadPolicy - Remove-CsTeamTemplate - Remove-CsTenantDialPlan - Remove-CsTenantNetworkRegion - Remove-CsTenantNetworkSite - Remove-CsTenantNetworkSubnet - Remove-CsTenantTrustedIPAddress - Remove-CsUserCallingDelegate - Remove-CsUserLicenseGracePeriod - Remove-CsVideoInteropServiceProvider - Set-CsApplicationAccessPolicy - Set-CsApplicationMeetingConfiguration - Set-CsAutoAttendant - Set-CsCallingLineIdentity - Set-CsCallQueue - Set-CsInboundBlockedNumberPattern - Set-CsInboundExemptNumberPattern - Set-CsInternalOnlinePowerShellEndpoint - Set-CsOnlineApplicationInstance - Set-CsOnlineAudioConferencingRoutingPolicy - Set-CsOnlineDialInConferencingBridge - Set-CsOnlineDialInConferencingServiceNumber - Set-CsOnlineDialInConferencingTenantSettings - Set-CsOnlineDialInConferencingUser - Set-CsOnlineDialInConferencingUserDefaultNumber - Set-CsOnlineEnhancedEmergencyServiceDisclaimer - Set-CsOnlineLisCivicAddress - Set-CsOnlineLisLocation - Set-CsOnlineLisPort - Set-CsOnlineLisSubnet - Set-CsOnlineLisSwitch - Set-CsOnlineLisWirelessAccessPoint - Set-CsOnlinePSTNGateway - Set-CsOnlinePstnUsage - Set-CsOnlineSchedule - Set-CsOnlineVoiceApplicationInstance - Set-CsOnlineVoicemailUserSettings - Set-CsOnlineVoiceRoute - Set-CsOnlineVoiceRoutingPolicy - Set-CsOnlineVoiceUser - Set-CsPhoneNumberAssignment - Set-CsTeamsAcsFederationConfiguration - Set-CsTeamsAudioConferencingPolicy - Set-CsTeamsCallParkPolicy - Set-CsTeamsCortanaPolicy - Set-CsTeamsEmergencyCallRoutingPolicy - Set-CsTeamsEnhancedEncryptionPolicy - Set-CsTeamsGuestCallingConfiguration - Set-CsTeamsGuestMeetingConfiguration - Set-CsTeamsGuestMessagingConfiguration - Set-CsTeamsIPPhonePolicy - Set-CsTeamsMeetingBroadcastConfiguration - Set-CsTeamsMeetingBroadcastPolicy - Set-CsTeamsMigrationConfiguration - Set-CsTeamsMobilityPolicy - Set-CsTeamsNetworkRoamingPolicy - Set-CsTeamsRoomVideoTeleConferencingPolicy - Set-CsTeamsSettingsCustomApp - Set-CsTeamsShiftsAppPolicy - Set-CsTeamsShiftsConnection - Set-CsTeamsShiftsConnectionInstance - Set-CsTeamsSurvivableBranchAppliance - Set-CsTeamsSurvivableBranchAppliancePolicy - Set-CsTeamsTargetingPolicy - Set-CsTeamsTranslationRule - Set-CsTeamsUnassignedNumberTreatment - Set-CsTeamsVdiPolicy - Set-CsTeamsWorkLoadPolicy - Set-CsTenantBlockedCallingNumbers - Set-CsTenantDialPlan - Set-CsTenantFederationConfiguration - Set-CsTenantMigrationConfiguration - Set-CsTenantNetworkRegion - Set-CsTenantNetworkSite - Set-CsTenantNetworkSubnet - Set-CsTenantTrustedIPAddress - Set-CsUser - Set-CsUserCallingDelegate - Set-CsUserCallingSettings - Set-CsVideoInteropServiceProvider - Start-CsExMeetingMigration - Sync-CsOnlineApplicationInstance - Test-CsEffectiveTenantDialPlan - Test-CsInboundBlockedNumberPattern - Test-CsTeamsShiftsConnectionValidate - Test-CsTeamsTranslationRule - Test-CsTeamsUnassignedNumberTreatment - Test-CsVoiceNormalizationRule - Unregister-CsOnlineDialInConferencingServiceNumber - Update-CsAutoAttendant - Update-CsCustomPolicyPackage - Update-CsTeamsShiftsConnection - Update-CsTeamsShiftsConnectionInstance - Update-CsTeamTemplate - New-CsBatchTeamsDeployment - Get-CsBatchTeamsDeploymentStatus - Set-CsOCEContext - Clear-CsOCEContext - Get-CsRegionContext - Set-CsRegionContext - Clear-CsRegionContext - Get-CsMeetingMigrationTransactionHistory - Get-CsMasVersionedSchemaData - Get-CsMasObjectChangelog - Get-CsBusinessVoiceDirectoryDiagnosticData - Get-CsCloudTenant - Get-CsCloudUser - Get-CsHostingProvider - Set-CsTenantUserBackfill - Invoke-CsCustomHandlerNgtprov - Invoke-CsCustomHandlerCallBackNgtprov - New-CsSdgDeviceTaggingRequest - Get-CsMoveTenantServiceInstanceTaskStatus - Move-CsTenantServiceInstance - Move-CsTenantCrossRegion - Invoke-CsDirectObjectSync - New-CsSDGDeviceTransferRequest - Get-CsAadTenant - Get-CsAadUser - Clear-CsCacheOperation - Move-CsAvsTenantPartition - Invoke-CsMsodsSync - Get-CsUssUserSettings - Set-CsUssUserSettings - Get-CsPhoneNumberPolicyAssignment - Set-CsPhoneNumberPolicyAssignment - Invoke-CsRehomeuser - - - - - Workflow - - - - - - **6.9.0** (The project - MicrosoftTeams contains changes till this release)_x000D__x000A_- Adds FileContent parameter to New-CsOnlineDirectRoutingTelephoneNumberUploadOrder cmdlet._x000D__x000A_- Adds FileContent parameter to New-CsOnlineTelephoneNumberReleaseOrder cmdlet._x000D__x000A_- Adds EnqueueReason output attribute to Get-CsMeetingMigrationStatus cmdlet._x000D__x000A_- Fixes the AllowedTrialTenantDomains data type, for the Set-CsTenantFederationConfiguration cmdlet. Now it will match the public documentation examples._x000D__x000A_- Fixes issues with the ForceAccept parameter in the Set-CsOnlineEnhancedEmergencyServiceDisclaimer cmdlet._x000D__x000A_- Adds TelephoneNumbers output attribute to Get-CsOnlineUser cmdlet. This is currently supported only in commercial environments._x000D__x000A_- Adds expand parameter to the Get-AllM365TeamsApp cmdlet._x000D__x000A_- Adds Properties parameter to Get-CsOnlineUser cmdlet._x000D__x000A_- The complete release notes can be found in the below link:_x000D__x000A_https://docs.microsoft.com/MicrosoftTeams/teams-powershell-release-notes - - - - - https://www.powershellgallery.com/api/v2 - PSGallery - NuGet - - - System.Management.Automation.PSCustomObject - System.Object - - - Microsoft Corporation. All rights reserved. - Microsoft Teams cmdlets module for Windows PowerShell and PowerShell Core._x000D__x000A__x000D__x000A_For more information, please visit the following: https://docs.microsoft.com/MicrosoftTeams/teams-powershell-overview - False - **6.9.0** (The project - MicrosoftTeams contains changes till this release)_x000D__x000A_- Adds FileContent parameter to New-CsOnlineDirectRoutingTelephoneNumberUploadOrder cmdlet._x000D__x000A_- Adds FileContent parameter to New-CsOnlineTelephoneNumberReleaseOrder cmdlet._x000D__x000A_- Adds EnqueueReason output attribute to Get-CsMeetingMigrationStatus cmdlet._x000D__x000A_- Fixes the AllowedTrialTenantDomains data type, for the Set-CsTenantFederationConfiguration cmdlet. Now it will match the public documentation examples._x000D__x000A_- Fixes issues with the ForceAccept parameter in the Set-CsOnlineEnhancedEmergencyServiceDisclaimer cmdlet._x000D__x000A_- Adds TelephoneNumbers output attribute to Get-CsOnlineUser cmdlet. This is currently supported only in commercial environments._x000D__x000A_- Adds expand parameter to the Get-AllM365TeamsApp cmdlet._x000D__x000A_- Adds Properties parameter to Get-CsOnlineUser cmdlet._x000D__x000A_- The complete release notes can be found in the below link:_x000D__x000A_https://docs.microsoft.com/MicrosoftTeams/teams-powershell-release-notes - True - True - 78436 - 13034327 - 20373366 - 3/13/2025 10:57:33 AM -04:00 - 3/13/2025 10:57:33 AM -04:00 - 3/27/2025 4:20:00 PM -04:00 - Office365 MicrosoftTeams Teams PSModule PSEdition_Core PSEdition_Desktop - False - 2025-03-27T16:20:00Z - 6.9.0 - Microsoft Corporation - false - Module - MicrosoftTeams.nuspec|GetTeamSettings.format.ps1xml|LICENSE.txt|Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml|Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml|Microsoft.Teams.ConfigAPI.Cmdlets.psd1|Microsoft.Teams.ConfigAPI.Cmdlets.psm1|Microsoft.Teams.Policy.Administration.Cmdlets.Core.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1|Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoicemail.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1|Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1|Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1|Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSipDevicesConfiguration.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.xml|Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml|Microsoft.Teams.Policy.Administration.psd1|Microsoft.Teams.Policy.Administration.psm1|Microsoft.Teams.Policy.Administration.xml|Microsoft.Teams.PowerShell.Module.xml|Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml|Microsoft.Teams.PowerShell.TeamsCmdlets.psd1|Microsoft.Teams.PowerShell.TeamsCmdlets.psm1|Microsoft.Teams.PowerShell.TeamsCmdlets.xml|MicrosoftTeams.psd1|MicrosoftTeams.psm1|SetMSTeamsReleaseEnvironment.ps1|SfbRpsModule.format.ps1xml|bin\BrotliSharpLib.dll|bin\Microsoft.IdentityModel.JsonWebTokens.dll|bin\Microsoft.IdentityModel.Logging.dll|bin\Microsoft.IdentityModel.Tokens.dll|bin\Microsoft.Teams.ConfigAPI.CmdletHostContract.dll|bin\Microsoft.Teams.ConfigAPI.Cmdlets.private.deps.json|bin\Microsoft.Teams.ConfigAPI.Cmdlets.private.dll|bin\System.IdentityModel.Tokens.Jwt.dll|custom\CmdletConfig.json|custom\Merged_custom_PsExt.ps1|custom\Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1|en-US\Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-Help.xml|en-US\Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml|en-US\Microsoft.TeamsCmdlets.PowerShell.Connect.dll-Help.xml|en-US\MicrosoftTeams-help.xml|exports\ProxyCmdletDefinitionsWithHelp.ps1|internal\Merged_internal.ps1|internal\Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1|net472\CmdletSettings.json|net472\Microsoft.ApplicationInsights.dll|net472\Microsoft.Applications.Events.Server.dll|net472\Microsoft.Azure.KeyVault.AzureServiceDeploy.dll|net472\Microsoft.Azure.KeyVault.Core.dll|net472\Microsoft.Azure.KeyVault.Cryptography.dll|net472\Microsoft.Azure.KeyVault.Jose.dll|net472\Microsoft.Data.Sqlite.dll|net472\Microsoft.Extensions.Configuration.Abstractions.dll|net472\Microsoft.Extensions.Configuration.dll|net472\Microsoft.Extensions.DependencyInjection.Abstractions.dll|net472\Microsoft.Extensions.Logging.Abstractions.dll|net472\Microsoft.Extensions.Logging.dll|net472\Microsoft.Extensions.Primitives.dll|net472\Microsoft.Ic3.TenantAdminApi.Common.Helper.dll|net472\Microsoft.Identity.Client.Broker.dll|net472\Microsoft.Identity.Client.Desktop.dll|net472\Microsoft.Identity.Client.dll|net472\Microsoft.Identity.Client.Extensions.Msal.dll|net472\Microsoft.Identity.Client.NativeInterop.dll|net472\Microsoft.IdentityModel.Abstractions.dll|net472\Microsoft.IdentityModel.JsonWebTokens.dll|net472\Microsoft.IdentityModel.Logging.dll|net472\Microsoft.IdentityModel.Tokens.dll|net472\Microsoft.Rest.ClientRuntime.Azure.dll|net472\Microsoft.Rest.ClientRuntime.dll|net472\Microsoft.Teams.ConfigAPI.CmdletHostContract.dll|net472\Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll|net472\Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll|net472\Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll|net472\Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll|net472\Microsoft.Teams.Policy.Administration.dll|net472\Microsoft.Teams.PowerShell.Module.dll|net472\Microsoft.Teams.PowerShell.Module.pdb|net472\Microsoft.Teams.PowerShell.Module.xml|net472\Microsoft.Teams.PowerShell.TeamsCmdlets.dll|net472\Microsoft.TeamsCmdlets.PowerShell.Connect.dll|net472\Microsoft.Web.WebView2.Core.dll|net472\Microsoft.Web.WebView2.WinForms.dll|net472\Microsoft.Web.WebView2.Wpf.dll|net472\Newtonsoft.Json.dll|net472\OneCollectorChannel.dll|net472\Polly.Contrib.WaitAndRetry.dll|net472\Polly.dll|net472\System.Buffers.dll|net472\System.Diagnostics.DiagnosticSource.dll|net472\System.IdentityModel.Tokens.Jwt.dll|net472\System.IO.FileSystem.AccessControl.dll|net472\System.Management.Automation.dll|net472\System.Memory.dll|net472\System.Numerics.Vectors.dll|net472\System.Runtime.CompilerServices.Unsafe.dll|net472\System.Security.AccessControl.dll|net472\System.Security.Cryptography.ProtectedData.dll|net472\System.Security.Principal.Windows.dll|net472\System.ValueTuple.dll|net472\runtimes\win-arm64\native\msalruntime_arm64.dll|net472\runtimes\win-x64\native\msalruntime.dll|net472\runtimes\win-x86\native\msalruntime_x005F_x86.dll|netcoreapp3.1\CmdletSettings.json|netcoreapp3.1\Microsoft.ApplicationInsights.dll|netcoreapp3.1\Microsoft.Applications.Events.Server.dll|netcoreapp3.1\Microsoft.Azure.KeyVault.AzureServiceDeploy.dll|netcoreapp3.1\Microsoft.Azure.KeyVault.Core.dll|netcoreapp3.1\Microsoft.Azure.KeyVault.Cryptography.dll|netcoreapp3.1\Microsoft.Azure.KeyVault.Jose.dll|netcoreapp3.1\Microsoft.Data.Sqlite.dll|netcoreapp3.1\Microsoft.Extensions.Configuration.Abstractions.dll|netcoreapp3.1\Microsoft.Extensions.Configuration.dll|netcoreapp3.1\Microsoft.Extensions.DependencyInjection.Abstractions.dll|netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.dll|netcoreapp3.1\Microsoft.Extensions.Logging.dll|netcoreapp3.1\Microsoft.Extensions.Primitives.dll|netcoreapp3.1\Microsoft.Ic3.TenantAdminApi.Common.Helper.dll|netcoreapp3.1\Microsoft.Identity.Client.Broker.dll|netcoreapp3.1\Microsoft.Identity.Client.Desktop.dll|netcoreapp3.1\Microsoft.Identity.Client.dll|netcoreapp3.1\Microsoft.Identity.Client.Extensions.Msal.dll|netcoreapp3.1\Microsoft.Identity.Client.NativeInterop.dll|netcoreapp3.1\Microsoft.IdentityModel.Abstractions.dll|netcoreapp3.1\Microsoft.IdentityModel.JsonWebTokens.dll|netcoreapp3.1\Microsoft.IdentityModel.Logging.dll|netcoreapp3.1\Microsoft.IdentityModel.Tokens.dll|netcoreapp3.1\Microsoft.Rest.ClientRuntime.Azure.dll|netcoreapp3.1\Microsoft.Rest.ClientRuntime.dll|netcoreapp3.1\Microsoft.Teams.ConfigAPI.CmdletHostContract.dll|netcoreapp3.1\Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll|netcoreapp3.1\Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll|netcoreapp3.1\Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll|netcoreapp3.1\Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll|netcoreapp3.1\Microsoft.Teams.Policy.Administration.dll|netcoreapp3.1\Microsoft.Teams.PowerShell.Module.deps.json|netcoreapp3.1\Microsoft.Teams.PowerShell.Module.dll|netcoreapp3.1\Microsoft.Teams.PowerShell.Module.pdb|netcoreapp3.1\Microsoft.Teams.PowerShell.Module.xml|netcoreapp3.1\Microsoft.Teams.PowerShell.TeamsCmdlets.dll|netcoreapp3.1\Microsoft.TeamsCmdlets.PowerShell.Connect.dll|netcoreapp3.1\Microsoft.Web.WebView2.Core.dll|netcoreapp3.1\Microsoft.Web.WebView2.WinForms.dll|netcoreapp3.1\Microsoft.Web.WebView2.Wpf.dll|netcoreapp3.1\Newtonsoft.Json.dll|netcoreapp3.1\OneCollectorChannel.dll|netcoreapp3.1\Polly.Contrib.WaitAndRetry.dll|netcoreapp3.1\Polly.dll|netcoreapp3.1\System.Diagnostics.DiagnosticSource.dll|netcoreapp3.1\System.IdentityModel.Tokens.Jwt.dll|netcoreapp3.1\System.IO.FileSystem.AccessControl.dll|netcoreapp3.1\System.Management.Automation.dll|netcoreapp3.1\System.Management.dll|netcoreapp3.1\System.Runtime.CompilerServices.Unsafe.dll|netcoreapp3.1\System.Security.AccessControl.dll|netcoreapp3.1\System.Security.Cryptography.ProtectedData.dll|netcoreapp3.1\System.Security.Principal.Windows.dll|netcoreapp3.1\runtimes\win-arm64\native\msalruntime_arm64.dll|netcoreapp3.1\runtimes\win-x64\native\msalruntime.dll|netcoreapp3.1\runtimes\win-x86\native\msalruntime_x005F_x86.dll|_manifest\spdx_2.2\bsi.cose|_manifest\spdx_2.2\bsi.json|_manifest\spdx_2.2\manifest.cat|_manifest\spdx_2.2\manifest.spdx.cose|_manifest\spdx_2.2\manifest.spdx.json|_manifest\spdx_2.2\manifest.spdx.json.sha256|_manifest\spdx_2.2\response-cose.json - Add-TeamChannelUser Add-TeamUser Connect-MicrosoftTeams Disconnect-MicrosoftTeams Set-TeamsEnvironmentConfig Clear-TeamsEnvironmentConfig Get-AssociatedTeam Get-MultiGeoRegion Get-Operation Get-SharedWithTeam Get-SharedWithTeamUser Get-Team Get-TeamAllChannel Get-TeamChannel Get-TeamChannelUser Get-TeamIncomingChannel Get-TeamsApp Get-TeamUser Get-M365TeamsApp Get-AllM365TeamsApps Get-M365UnifiedTenantSettings Get-M365UnifiedCustomPendingApps Get-CsTeamsMessagingPolicy Get-CsTeamsMeetingPolicy Get-CsOnlineVoicemailPolicy Get-CsOnlineVoicemailValidationConfiguration Get-CsTeamsAIPolicy Get-CsTeamsFeedbackPolicy Get-CsTeamsUpdateManagementPolicy Get-CsTeamsChannelsPolicy Get-CsTeamsMeetingBrandingPolicy Get-CsTeamsEmergencyCallingPolicy Get-CsTeamsCallHoldPolicy Get-CsTeamsMessagingConfiguration Get-CsTeamsVoiceApplicationsPolicy Get-CsTeamsEventsPolicy Get-CsTeamsExternalAccessConfiguration Get-CsTeamsFilesPolicy Get-CsTeamsCallingPolicy Get-CsTeamsClientConfiguration Get-CsExternalAccessPolicy Get-CsTeamsAppPermissionPolicy Get-CsTeamsAppSetupPolicy Get-CsTeamsFirstPartyMeetingTemplateConfiguration Get-CsTeamsMeetingTemplatePermissionPolicy Get-CsLocationPolicy Get-CsTeamsShiftsPolicy Get-CsTenantNetworkSite Get-CsTeamsCarrierEmergencyCallRoutingPolicy Get-CsTeamsMeetingTemplateConfiguration Get-CsTeamsVirtualAppointmentsPolicy Get-CsTeamsSharedCallingRoutingPolicy Get-CsTeamsTemplatePermissionPolicy Get-CsTeamsComplianceRecordingPolicy Get-CsTeamsComplianceRecordingApplication Get-CsTeamsEducationAssignmentsAppPolicy Get-CsTeamsUpgradeConfiguration Get-CsTeamsAudioConferencingCustomPromptsConfiguration Get-CsTeamsSipDevicesConfiguration Get-CsTeamsCustomBannerText Get-CsTeamsVdiPolicy Get-CsTeamsMediaConnectivityPolicy Get-CsTeamsMeetingConfiguration Get-CsTeamsWorkLocationDetectionPolicy Get-CsTeamsRecordingRollOutPolicy Get-CsTeamsEducationConfiguration Get-CsTeamsBYODAndDesksPolicy Get-CsTeamsNotificationAndFeedsPolicy Get-CsTeamsMultiTenantOrganizationConfiguration Get-CsPrivacyConfiguration Grant-CsTeamsAIPolicy Grant-CsTeamsMeetingBrandingPolicy Grant-CsExternalAccessPolicy Grant-CsTeamsCallingPolicy Grant-CsTeamsAppPermissionPolicy Grant-CsTeamsAppSetupPolicy Grant-CsTeamsEventsPolicy Grant-CsTeamsFilesPolicy Grant-CsTeamsMediaConnectivityPolicy Grant-CsTeamsMeetingTemplatePermissionPolicy Grant-CsTeamsCarrierEmergencyCallRoutingPolicy Grant-CsTeamsVirtualAppointmentsPolicy Grant-CsTeamsSharedCallingRoutingPolicy Grant-CsTeamsShiftsPolicy Grant-CsTeamsRecordingRollOutPolicy Grant-CsTeamsVdiPolicy Grant-CsTeamsWorkLocationDetectionPolicy Grant-CsTeamsBYODAndDesksPolicy New-Team New-TeamChannel New-TeamsApp New-CsTeamsAIPolicy New-CsTeamsMessagingPolicy New-CsTeamsMeetingPolicy New-CsOnlineVoicemailPolicy New-CsTeamsFeedbackPolicy New-CsTeamsUpdateManagementPolicy New-CsTeamsChannelsPolicy New-CsTeamsFilesPolicy New-CsTeamsMediaConnectivityPolicy New-CsTeamsMeetingBrandingTheme New-CsTeamsMeetingBackgroundImage New-CsTeamsNdiAssuranceSlate New-CsTeamsMeetingBrandingPolicy New-CsTeamsEmergencyCallingPolicy New-CsTeamsEmergencyCallingExtendedNotification New-CsTeamsCallHoldPolicy New-CsTeamsVoiceApplicationsPolicy New-CsTeamsEventsPolicy New-CsTeamsCallingPolicy New-CsExternalAccessPolicy New-CsTeamsAppPermissionPolicy New-CsTeamsAppSetupPolicy New-CsTeamsMeetingTemplatePermissionPolicy New-CsLocationPolicy New-CsTeamsCarrierEmergencyCallRoutingPolicy New-CsTeamsHiddenMeetingTemplate New-CsTeamsVirtualAppointmentsPolicy New-CsTeamsSharedCallingRoutingPolicy New-CsTeamsHiddenTemplate New-CsTeamsTemplatePermissionPolicy New-CsTeamsComplianceRecordingPolicy New-CsTeamsComplianceRecordingApplication New-CsTeamsComplianceRecordingPairedApplication New-CsTeamsWorkLocationDetectionPolicy New-CsTeamsRecordingRollOutPolicy New-CsCustomPrompt New-CsCustomPromptPackage New-CsTeamsShiftsPolicy New-CsTeamsCustomBannerText New-CsTeamsVdiPolicy New-CsTeamsBYODAndDesksPolicy Remove-SharedWithTeam Remove-Team Remove-TeamChannel Remove-TeamChannelUser Remove-TeamsApp Remove-TeamUser Remove-CsTeamsAIPolicy Remove-CsTeamsMessagingPolicy Remove-CsTeamsMeetingPolicy Remove-CsOnlineVoicemailPolicy Remove-CsTeamsFeedbackPolicy Remove-CsTeamsFilesPolicy Remove-CsTeamsUpdateManagementPolicy Remove-CsTeamsChannelsPolicy Remove-CsTeamsMediaConnectivityPolicy Remove-CsTeamsMeetingBrandingPolicy Remove-CsTeamsEmergencyCallingPolicy Remove-CsTeamsCallHoldPolicy Remove-CsTeamsVoiceApplicationsPolicy Remove-CsTeamsEventsPolicy Remove-CsTeamsCallingPolicy Remove-CsExternalAccessPolicy Remove-CsTeamsAppPermissionPolicy Remove-CsTeamsAppSetupPolicy Remove-CsTeamsMeetingTemplatePermissionPolicy Remove-CsLocationPolicy Remove-CsTeamsCarrierEmergencyCallRoutingPolicy Remove-CsTeamsVirtualAppointmentsPolicy Remove-CsTeamsSharedCallingRoutingPolicy Remove-CsTeamsTemplatePermissionPolicy Remove-CsTeamsComplianceRecordingPolicy Remove-CsTeamsComplianceRecordingApplication Remove-CsTeamsShiftsPolicy Remove-CsTeamsCustomBannerText Remove-CsTeamsVdiPolicy Remove-CsTeamsWorkLocationDetectionPolicy Remove-CsTeamsRecordingRollOutPolicy Remove-CsTeamsBYODAndDesksPolicy Remove-CsTeamsNotificationAndFeedsPolicy Set-Team Set-TeamArchivedState Set-TeamChannel Set-TeamPicture Set-TeamsApp Set-CsTeamsAIPolicy Set-CsTeamsMessagingPolicy Set-CsTeamsMeetingPolicy Set-CsOnlineVoicemailPolicy Set-CsTeamsFilesPolicy Set-CsOnlineVoicemailValidationConfiguration Set-CsTeamsFeedbackPolicy Set-CsTeamsUpdateManagementPolicy Set-CsTeamsChannelsPolicy Set-CsTeamsMediaConnectivityPolicy Set-CsTeamsMeetingBrandingPolicy Set-CsTeamsEmergencyCallingPolicy Set-CsTeamsEducationConfiguration Set-CsTeamsCallHoldPolicy Set-CsTeamsMessagingConfiguration Set-CsTeamsVoiceApplicationsPolicy Set-CsTeamsEventsPolicy Set-CsTeamsExternalAccessConfiguration Set-CsTeamsCallingPolicy Set-CsTeamsClientConfiguration Set-CsExternalAccessPolicy Set-CsTeamsAppPermissionPolicy Set-CsTeamsAppSetupPolicy Set-CsTeamsFirstPartyMeetingTemplateConfiguration Set-CsTeamsMeetingTemplatePermissionPolicy Set-CsTeamsMultiTenantOrganizationConfiguration Set-CsLocationPolicy Set-CsTeamsCarrierEmergencyCallRoutingPolicy Set-CsTeamsVirtualAppointmentsPolicy Set-CsTeamsSharedCallingRoutingPolicy Set-CsTeamsTemplatePermissionPolicy Set-CsTeamsComplianceRecordingPolicy Set-CsTeamsEducationAssignmentsAppPolicy Set-CsTeamsComplianceRecordingApplication Set-CsTeamsShiftsPolicy Set-CsTeamsUpgradeConfiguration Set-CsTeamsAudioConferencingCustomPromptsConfiguration Set-CsTeamsSipDevicesConfiguration Set-CsTeamsMeetingConfiguration Set-CsTeamsVdiPolicy Set-CsTeamsWorkLocationDetectionPolicy Set-CsTeamsRecordingRollOutPolicy Set-CsTeamsCustomBannerText Set-CsTeamsBYODAndDesksPolicy Set-CsTeamsNotificationAndFeedsPolicy Set-CsPrivacyConfiguration Update-M365TeamsApp Update-M365UnifiedTenantSettings Update-M365UnifiedCustomPendingApp Get-CsBatchOperationDefinition Get-CsBatchOperationStatus Get-CsConfiguration Get-CsGroupPolicyAssignments Get-CsLoginInfo Get-CsUserProvHistory Get-GPAGroupMembers Get-GPAUserMembership Get-NgtProvInstanceFailOverStatus Get-CsTeamsTenantAbuseConfiguration Invoke-CsDirectoryObjectSync Invoke-CsGenericNgtProvCommand Invoke-CsRefreshGroupUsers Invoke-CsReprocessBatchOperation Invoke-CsReprocessGroupPolicyAssignment Move-NgtProvInstance New-CsConfiguration Remove-CsConfiguration Set-CsConfiguration Set-CsTeamsTenantAbuseConfiguration Set-CsPublishPolicySchemaDefaults Get-TeamTargetingHierarchyStatus Remove-TeamTargetingHierarchy Set-TeamTargetingHierarchy - Clear-CsOnlineTelephoneNumberOrder Complete-CsOnlineTelephoneNumberOrder Disable-CsOnlineSipDomain Enable-CsOnlineSipDomain Export-CsAcquiredPhoneNumber Export-CsAutoAttendantHolidays Export-CsOnlineAudioFile Find-CsGroup Find-CsOnlineApplicationInstance Get-CsApplicationAccessPolicy Get-CsApplicationMeetingConfiguration Get-CsAutoAttendant Get-CsAutoAttendantHolidays Get-CsAutoAttendantStatus Get-CsAutoAttendantSupportedLanguage Get-CsAutoAttendantSupportedTimeZone Get-CsAutoAttendantTenantInformation Get-CsBatchPolicyAssignmentOperation Get-CsCallingLineIdentity Get-CsCallQueue Get-CsCloudCallDataConnection Get-CsDialPlan Get-CsEffectiveTenantDialPlan Get-CsExportAcquiredPhoneNumberStatus Get-CsGroupPolicyAssignment Get-CsHybridTelephoneNumber Get-CsInboundBlockedNumberPattern Get-CsInboundExemptNumberPattern Get-CsMeetingMigrationStatus Get-CsOnlineApplicationInstance Get-CsOnlineApplicationInstanceAssociation Get-CsOnlineApplicationInstanceAssociationStatus Get-CsOnlineAudioConferencingRoutingPolicy Get-CsOnlineAudioFile Get-CsOnlineDialInConferencingBridge Get-CsOnlineDialInConferencingLanguagesSupported Get-CsOnlineDialinConferencingPolicy Get-CsOnlineDialInConferencingServiceNumber Get-CsOnlineDialinConferencingTenantConfiguration Get-CsOnlineDialInConferencingTenantSettings Get-CsOnlineDialInConferencingUser Get-CsOnlineDialOutPolicy Get-CsOnlineDirectoryTenant Get-CsOnlineEnhancedEmergencyServiceDisclaimer Get-CsOnlineLisCivicAddress Get-CsOnlineLisLocation Get-CsOnlineLisPort Get-CsOnlineLisSubnet Get-CsOnlineLisSwitch Get-CsOnlineLisWirelessAccessPoint Get-CsOnlinePowerShellEndpoint Get-CsOnlinePSTNGateway Get-CsOnlinePstnUsage Get-CsOnlineSchedule Get-CsOnlineSipDomain Get-CsOnlineTelephoneNumber Get-CsOnlineTelephoneNumberCountry Get-CsOnlineTelephoneNumberOrder Get-CsOnlineTelephoneNumberType Get-CsOnlineUser Get-CsOnlineVoicemailUserSettings Get-CsOnlineVoiceRoute Get-CsOnlineVoiceRoutingPolicy Get-CsOnlineVoiceUser Get-CsPhoneNumberAssignment Get-CsPolicyPackage Get-CsSdgBulkSignInRequestStatus Get-CsSDGBulkSignInRequestsSummary Get-CsTeamsAcsFederationConfiguration Get-CsTeamsAudioConferencingPolicy Get-CsTeamsCallParkPolicy Get-CsTeamsCortanaPolicy Get-CsTeamsEmergencyCallRoutingPolicy Get-CsTeamsEnhancedEncryptionPolicy Get-CsTeamsGuestCallingConfiguration Get-CsTeamsGuestMeetingConfiguration Get-CsTeamsGuestMessagingConfiguration Get-CsTeamsIPPhonePolicy Get-CsTeamsMediaLoggingPolicy Get-CsTeamsMeetingBroadcastConfiguration Get-CsTeamsMeetingBroadcastPolicy Get-CsTeamsMigrationConfiguration Get-CsTeamsMobilityPolicy Get-CsTeamsNetworkRoamingPolicy Get-CsTeamsRoomVideoTeleConferencingPolicy Get-CsTeamsSettingsCustomApp Get-CsTeamsShiftsAppPolicy Get-CsTeamsShiftsConnectionConnector Get-CsTeamsShiftsConnectionErrorReport Get-CsTeamsShiftsConnection Get-CsTeamsShiftsConnectionInstance Get-CsTeamsShiftsConnectionOperation Get-CsTeamsShiftsConnectionSyncResult Get-CsTeamsShiftsConnectionTeamMap Get-CsTeamsShiftsConnectionWfmTeam Get-CsTeamsShiftsConnectionWfmUser Get-CsTeamsSurvivableBranchAppliance Get-CsTeamsSurvivableBranchAppliancePolicy Get-CsTeamsTargetingPolicy Get-CsTeamsTranslationRule Get-CsTeamsUnassignedNumberTreatment Get-CsTeamsUpgradePolicy Get-CsTeamsVdiPolicy Get-CsTeamsVideoInteropServicePolicy Get-CsTeamsWorkLoadPolicy Get-CsTeamTemplate Get-CsTeamTemplateList Get-CsTenant Get-CsTenantBlockedCallingNumbers Get-CsTenantDialPlan Get-CsTenantFederationConfiguration Get-CsTenantLicensingConfiguration Get-CsTenantMigrationConfiguration Get-CsTenantNetworkConfiguration Get-CsTenantNetworkRegion Get-CsTenantNetworkSubnet Get-CsTenantTrustedIPAddress Get-CsUserCallingSettings Get-CsUserPolicyAssignment Get-CsUserPolicyPackage Get-CsUserPolicyPackageRecommendation Get-CsVideoInteropServiceProvider Grant-CsApplicationAccessPolicy Grant-CsCallingLineIdentity Grant-CsDialoutPolicy Grant-CsGroupPolicyPackageAssignment Grant-CsOnlineAudioConferencingRoutingPolicy Grant-CsOnlineVoicemailPolicy Grant-CsOnlineVoiceRoutingPolicy Grant-CsTeamsAudioConferencingPolicy Grant-CsTeamsCallHoldPolicy Grant-CsTeamsCallParkPolicy Grant-CsTeamsChannelsPolicy Grant-CsTeamsCortanaPolicy Grant-CsTeamsEmergencyCallingPolicy Grant-CsTeamsEmergencyCallRoutingPolicy Grant-CsTeamsEnhancedEncryptionPolicy Grant-CsTeamsFeedbackPolicy Grant-CsTeamsIPPhonePolicy Grant-CsTeamsMediaLoggingPolicy Grant-CsTeamsMeetingBroadcastPolicy Grant-CsTeamsMeetingPolicy Grant-CsTeamsMessagingPolicy Grant-CsTeamsMobilityPolicy Grant-CsTeamsRoomVideoTeleConferencingPolicy Grant-CsTeamsSurvivableBranchAppliancePolicy Grant-CsTeamsUpdateManagementPolicy Grant-CsTeamsUpgradePolicy Grant-CsTeamsVideoInteropServicePolicy Grant-CsTeamsVoiceApplicationsPolicy Grant-CsTeamsWorkLoadPolicy Grant-CsTenantDialPlan Grant-CsUserPolicyPackage Grant-CsTeamsComplianceRecordingPolicy Import-CsAutoAttendantHolidays Import-CsOnlineAudioFile Invoke-CsInternalPSTelemetry Move-CsInternalHelper New-CsApplicationAccessPolicy New-CsAutoAttendant New-CsAutoAttendantCallableEntity New-CsAutoAttendantCallFlow New-CsAutoAttendantCallHandlingAssociation New-CsAutoAttendantDialScope New-CsAutoAttendantMenu New-CsAutoAttendantMenuOption New-CsAutoAttendantPrompt New-CsBatchPolicyAssignmentOperation New-CsBatchPolicyPackageAssignmentOperation New-CsCallingLineIdentity New-CsCallQueue New-CsCloudCallDataConnection New-CsCustomPolicyPackage New-CsEdgeAllowAllKnownDomains New-CsEdgeAllowList New-CsEdgeDomainPattern New-CsGroupPolicyAssignment New-CsHybridTelephoneNumber New-CsInboundBlockedNumberPattern New-CsInboundExemptNumberPattern New-CsOnlineApplicationInstance New-CsOnlineApplicationInstanceAssociation New-CsOnlineAudioConferencingRoutingPolicy New-CsOnlineDateTimeRange New-CsOnlineLisCivicAddress New-CsOnlineLisLocation New-CsOnlinePSTNGateway New-CsOnlineSchedule New-CsOnlineTelephoneNumberOrder New-CsOnlineTimeRange New-CsOnlineVoiceRoute New-CsOnlineVoiceRoutingPolicy New-CsSdgBulkSignInRequest New-CsTeamsAudioConferencingPolicy New-CsTeamsCallParkPolicy New-CsTeamsCortanaPolicy New-CsTeamsEmergencyCallRoutingPolicy New-CsTeamsEmergencyNumber New-CsTeamsEnhancedEncryptionPolicy New-CsTeamsIPPhonePolicy New-CsTeamsMeetingBroadcastPolicy New-CsTeamsMobilityPolicy New-CsTeamsNetworkRoamingPolicy New-CsTeamsRoomVideoTeleConferencingPolicy New-CsTeamsShiftsConnectionBatchTeamMap New-CsTeamsShiftsConnection New-CsTeamsShiftsConnectionInstance New-CsTeamsSurvivableBranchAppliance New-CsTeamsSurvivableBranchAppliancePolicy New-CsTeamsTranslationRule New-CsTeamsUnassignedNumberTreatment New-CsTeamsVdiPolicy New-CsTeamsWorkLoadPolicy New-CsTeamTemplate New-CsTenantDialPlan New-CsTenantNetworkRegion New-CsTenantNetworkSite New-CsTenantNetworkSubnet New-CsTenantTrustedIPAddress New-CsUserCallingDelegate New-CsVideoInteropServiceProvider New-CsVoiceNormalizationRule New-CsOnlineDirectRoutingTelephoneNumberUploadOrder New-CsOnlineTelephoneNumberReleaseOrder Register-CsOnlineDialInConferencingServiceNumber Remove-CsApplicationAccessPolicy Remove-CsAutoAttendant Remove-CsCallingLineIdentity Remove-CsCallQueue Remove-CsCustomPolicyPackage Remove-CsGroupPolicyAssignment Remove-CsHybridTelephoneNumber Remove-CsInboundBlockedNumberPattern Remove-CsInboundExemptNumberPattern Remove-CsOnlineApplicationInstanceAssociation Remove-CsOnlineAudioConferencingRoutingPolicy Remove-CsOnlineAudioFile Remove-CsOnlineDialInConferencingTenantSettings Remove-CsOnlineLisCivicAddress Remove-CsOnlineLisLocation Remove-CsOnlineLisPort Remove-CsOnlineLisSubnet Remove-CsOnlineLisSwitch Remove-CsOnlineLisWirelessAccessPoint Remove-CsOnlinePSTNGateway Remove-CsOnlineSchedule Remove-CsOnlineTelephoneNumber Remove-CsOnlineVoiceRoute Remove-CsOnlineVoiceRoutingPolicy Remove-CsPhoneNumberAssignment Remove-CsTeamsAudioConferencingPolicy Remove-CsTeamsCallParkPolicy Remove-CsTeamsCortanaPolicy Remove-CsTeamsEmergencyCallRoutingPolicy Remove-CsTeamsEnhancedEncryptionPolicy Remove-CsTeamsIPPhonePolicy Remove-CsTeamsMeetingBroadcastPolicy Remove-CsTeamsMobilityPolicy Remove-CsTeamsNetworkRoamingPolicy Remove-CsTeamsRoomVideoTeleConferencingPolicy Remove-CsTeamsShiftsConnection Remove-CsTeamsShiftsConnectionInstance Remove-CsTeamsShiftsConnectionTeamMap Remove-CsTeamsShiftsScheduleRecord Remove-CsTeamsSurvivableBranchAppliance Remove-CsTeamsSurvivableBranchAppliancePolicy Remove-CsTeamsTargetingPolicy Remove-CsTeamsTranslationRule Remove-CsTeamsUnassignedNumberTreatment Remove-CsTeamsVdiPolicy Remove-CsTeamsWorkLoadPolicy Remove-CsTeamTemplate Remove-CsTenantDialPlan Remove-CsTenantNetworkRegion Remove-CsTenantNetworkSite Remove-CsTenantNetworkSubnet Remove-CsTenantTrustedIPAddress Remove-CsUserCallingDelegate Remove-CsUserLicenseGracePeriod Remove-CsVideoInteropServiceProvider Set-CsApplicationAccessPolicy Set-CsApplicationMeetingConfiguration Set-CsAutoAttendant Set-CsCallingLineIdentity Set-CsCallQueue Set-CsInboundBlockedNumberPattern Set-CsInboundExemptNumberPattern Set-CsInternalOnlinePowerShellEndpoint Set-CsOnlineApplicationInstance Set-CsOnlineAudioConferencingRoutingPolicy Set-CsOnlineDialInConferencingBridge Set-CsOnlineDialInConferencingServiceNumber Set-CsOnlineDialInConferencingTenantSettings Set-CsOnlineDialInConferencingUser Set-CsOnlineDialInConferencingUserDefaultNumber Set-CsOnlineEnhancedEmergencyServiceDisclaimer Set-CsOnlineLisCivicAddress Set-CsOnlineLisLocation Set-CsOnlineLisPort Set-CsOnlineLisSubnet Set-CsOnlineLisSwitch Set-CsOnlineLisWirelessAccessPoint Set-CsOnlinePSTNGateway Set-CsOnlinePstnUsage Set-CsOnlineSchedule Set-CsOnlineVoiceApplicationInstance Set-CsOnlineVoicemailUserSettings Set-CsOnlineVoiceRoute Set-CsOnlineVoiceRoutingPolicy Set-CsOnlineVoiceUser Set-CsPhoneNumberAssignment Set-CsTeamsAcsFederationConfiguration Set-CsTeamsAudioConferencingPolicy Set-CsTeamsCallParkPolicy Set-CsTeamsCortanaPolicy Set-CsTeamsEmergencyCallRoutingPolicy Set-CsTeamsEnhancedEncryptionPolicy Set-CsTeamsGuestCallingConfiguration Set-CsTeamsGuestMeetingConfiguration Set-CsTeamsGuestMessagingConfiguration Set-CsTeamsIPPhonePolicy Set-CsTeamsMeetingBroadcastConfiguration Set-CsTeamsMeetingBroadcastPolicy Set-CsTeamsMigrationConfiguration Set-CsTeamsMobilityPolicy Set-CsTeamsNetworkRoamingPolicy Set-CsTeamsRoomVideoTeleConferencingPolicy Set-CsTeamsSettingsCustomApp Set-CsTeamsShiftsAppPolicy Set-CsTeamsShiftsConnection Set-CsTeamsShiftsConnectionInstance Set-CsTeamsSurvivableBranchAppliance Set-CsTeamsSurvivableBranchAppliancePolicy Set-CsTeamsTargetingPolicy Set-CsTeamsTranslationRule Set-CsTeamsUnassignedNumberTreatment Set-CsTeamsVdiPolicy Set-CsTeamsWorkLoadPolicy Set-CsTenantBlockedCallingNumbers Set-CsTenantDialPlan Set-CsTenantFederationConfiguration Set-CsTenantMigrationConfiguration Set-CsTenantNetworkRegion Set-CsTenantNetworkSite Set-CsTenantNetworkSubnet Set-CsTenantTrustedIPAddress Set-CsUser Set-CsUserCallingDelegate Set-CsUserCallingSettings Set-CsVideoInteropServiceProvider Start-CsExMeetingMigration Sync-CsOnlineApplicationInstance Test-CsEffectiveTenantDialPlan Test-CsInboundBlockedNumberPattern Test-CsTeamsShiftsConnectionValidate Test-CsTeamsTranslationRule Test-CsTeamsUnassignedNumberTreatment Test-CsVoiceNormalizationRule Unregister-CsOnlineDialInConferencingServiceNumber Update-CsAutoAttendant Update-CsCustomPolicyPackage Update-CsTeamsShiftsConnection Update-CsTeamsShiftsConnectionInstance Update-CsTeamTemplate New-CsBatchTeamsDeployment Get-CsBatchTeamsDeploymentStatus Set-CsOCEContext Clear-CsOCEContext Get-CsRegionContext Set-CsRegionContext Clear-CsRegionContext Get-CsMeetingMigrationTransactionHistory Get-CsMasVersionedSchemaData Get-CsMasObjectChangelog Get-CsBusinessVoiceDirectoryDiagnosticData Get-CsCloudTenant Get-CsCloudUser Get-CsHostingProvider Set-CsTenantUserBackfill Invoke-CsCustomHandlerNgtprov Invoke-CsCustomHandlerCallBackNgtprov New-CsSdgDeviceTaggingRequest Get-CsMoveTenantServiceInstanceTaskStatus Move-CsTenantServiceInstance Move-CsTenantCrossRegion Invoke-CsDirectObjectSync New-CsSDGDeviceTransferRequest Get-CsAadTenant Get-CsAadUser Clear-CsCacheOperation Move-CsAvsTenantPartition Invoke-CsMsodsSync Get-CsUssUserSettings Set-CsUssUserSettings Get-CsPhoneNumberPolicyAssignment Set-CsPhoneNumberPolicyAssignment Invoke-CsRehomeuser - d910df43-3ca6-4c9c-a2e3-e9f45a8e2ad9 - 5.1 - 4.7.2 - 4.0 - Microsoft Corporation - - - C:\GitHub\CIPP Workspace\CIPP-API\Modules\MicrosoftTeams\6.9.0 -
-
-
diff --git a/Modules/MicrosoftTeams/6.9.0/SetMSTeamsReleaseEnvironment.ps1 b/Modules/MicrosoftTeams/6.9.0/SetMSTeamsReleaseEnvironment.ps1 deleted file mode 100644 index cc585c555a17..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/SetMSTeamsReleaseEnvironment.ps1 +++ /dev/null @@ -1,236 +0,0 @@ -#This file is setting HostingEnvironment environment variable using which we can decide in nested modules, that which cmdlets it has to export. - -# We don't have access to the module at load time, since loading occurs last -# Instead we set up a one-time event to set the OnRemove scriptblock once the module has been loaded -$null = Register-EngineEvent -SourceIdentifier PowerShell.OnIdle -MaxTriggerCount 1 -Action { - $m = Get-Module MicrosoftTeams - $m.OnRemove = { - Write-Verbose "Removing MSTeamsReleaseEnvironment" - $env:MSTeamsReleaseEnvironment = $null - Disconnect-MicrosoftTeams - } -} - -$env:MSTeamsReleaseEnvironment = 'TeamsGA' - -#The below line will be uncommented by build process if its preview module - -#preview $env:MSTeamsReleaseEnvironment = 'TeamsPreview' - -# SIG # Begin signature block -# MIIoQwYJKoZIhvcNAQcCoIIoNDCCKDACAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCC6QSrbNq5qY4CX -# 15x6qVrEe3OnMqckrZDKvtChfXP5jaCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIKwhnAu5OLUmTWVzGDxzwu87 -# ECHdTJ+a4iX/WmYDn6qeMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAs7uFGupSoDM8XUaU2nz0x3yebic3jwrfN2xcDssvFGngvXuxDWssh/Qm -# yx2tXhkF26nfY+R8gxW6+3hv+L8TTdM5ZhjNym5RopMsF5zmFwVLuGT+bsmF0fk7 -# zO6twDDNQ7OllzKoWP78QL1TkhqrfSq/Gmfp3+Spc3yTxAqOh3lKbkjBamysYdSW -# 5Wvu7VxZMsI5DfdLh7JjvTf5kvuBTtv8cPlxugwaD098oTif3HxgaZQfPMTe63rl -# tBlUKX/r4cFWPM85QsPLyDZi0tGCNUMY04JbtX8Lp4x/pdqvYr9IMVIw7Rxydwn8 -# qMeiBlKSsoY9dc4nPravt9cW3g4RBqGCF60wghepBgorBgEEAYI3AwMBMYIXmTCC -# F5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsq -# hkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCAltdv+P7aaJ2/FavNXvl6off5DIHch4L7w3PoiCTpbZAIGZ7Yy6IJ0 -# GBMyMDI1MDMxMzA4NDcyMy4zOTZaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo1MjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAACAAvXqn8bKhdWAAEAAAIAMA0G -# CSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI0 -# MDcyNTE4MzEyMVoXDTI1MTAyMjE4MzEyMVowgdMxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9w -# ZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjUyMUEt -# MDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr1XaadKkP2TkunoTF573 -# /tF7KJM9Doiv3ccv26mqnUhmv2DM59ikET4WnRfo5biFIHc6LqrIeqCgT9fT/Gks -# 5VKO90ZQW2avh/PMHnl0kZfX/I5zdVooXHbdUUkPiZfNXszWswmL9UlWo8mzyv9L -# p9TAtw/oXOYTAxdYSqOB5Uzz1Q3A8uCpNlumQNDJGDY6cSn0MlYukXklArChq6l+ -# KYrl6r/WnOqXSknABpggSsJ33oL3onmDiN9YUApZwjnNh9M6kDaneSz78/YtD/2p -# Gpx9/LXELoazEUFxhyg4KdmoWGNYwdR7/id81geOER69l5dJv71S/mH+Lxb6L692 -# n8uEmAVw6fVvE+c8wjgYZblZCNPAynCnDduRLdk1jswCqjqNc3X/WIzA7GGs4HUS -# 4YIrAUx8H2A94vDNiA8AWa7Z/HSwTCyIgeVbldXYM2BtxMKq3kneRoT27NQ7Y7n8 -# ZTaAje7Blfju83spGP/QWYNZ1wYzYVGRyOpdA8Wmxq5V8f5r4HaG9zPcykOyJpRZ -# y+V3RGighFmsCJXAcMziO76HinwCIjImnCFKGJ/IbLjH6J7fJXqRPbg+H6rYLZ8X -# BpmXBFH4PTakZVYxB/P+EQbL5LNw0ZIM+eufxCljV4O+nHkM+zgSx8+07BVZPBKs -# looebsmhIcBO0779kehciYMCAwEAAaOCAUkwggFFMB0GA1UdDgQWBBSAJSTavgkj -# Kqge5xQOXn35fXd3OjAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBf -# BgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmww -# bAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29m -# dC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0El -# MjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUF -# BwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEAKPCG9njRtIqQ -# +fuECgxzWMsQOI3HvW7sV9PmEWCCOWlTuGCIzNi3ibdLZS0b2IDHg0yLrtdVuBi3 -# FxVdesIXuzYyofIe/alTBdV4DhijLTXtB7NgOno7G12iO3t6jy1hPSquzGLry/2m -# EZBwIsSoS2D+H+3HCJxPDyhzMFqP+plltPACB/QNwZ7q+HGyZv3v8et+rQYg8sF3 -# PTuWeDg3dR/zk1NawJ/dfFCDYlWNeCBCLvNPQBceMYXFRFKhcSUws7mFdIDDhZpx -# qyIKD2WDwFyNIGEezn+nd4kXRupeNEx+eSpJXylRD+1d45hb6PzOIF7BkcPtRtFW -# 2wXgkjLqtTWWlBkvzl2uNfYJ3CPZVaDyMDaaXgO+H6DirsJ4IG9ikId941+mWDej -# kj5aYn9QN6ROfo/HNHg1timwpFoUivqAFu6irWZFw5V+yLr8FLc7nbMa2lFSixzu -# 96zdnDsPImz0c6StbYyhKSlM3uDRi9UWydSKqnEbtJ6Mk+YuxvzprkuWQJYWfpPv -# ug+wTnioykVwc0yRVcsd4xMznnnRtZDGMSUEl9tMVnebYRshwZIyJTsBgLZmHM7q -# 2TFK/X9944SkIqyY22AcuLe0GqoNfASCIcZtzbZ/zP4lT2/N0pDbn2ffAzjZkhI+ -# Qrqr983mQZWwZdr3Tk1MYElDThz2D0MwggdxMIIFWaADAgECAhMzAAAAFcXna54C -# m0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp -# Y2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMy -# MjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0B -# AQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51 -# yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY -# 6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9 -# cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN -# 7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDua -# Rr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74 -# kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2 -# K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5 -# TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZk -# i1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9Q -# BXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3Pmri -# Lq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUC -# BBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJl -# pxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIB -# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9y -# eS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUA -# YgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU -# 1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2Ny -# bC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIw -# MTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0w -# Ni0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/yp -# b+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulm -# ZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM -# 9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECW -# OKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4 -# FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3Uw -# xTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPX -# fx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVX -# VAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGC -# onsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU -# 5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEG -# ahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo1MjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUAjJOfLZb3ivipL3sSLlWFbLrWjmSggYMw -# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsF -# AAIFAOt9B9owIhgPMjAyNTAzMTMwNzI5MzBaGA8yMDI1MDMxNDA3MjkzMFowdDA6 -# BgorBgEEAYRZCgQBMSwwKjAKAgUA630H2gIBADAHAgEAAgIDZzAHAgEAAgISBzAK -# AgUA635ZWgIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIB -# AAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQCVEJHC+AnXHV9s -# 6tO+oub/OObPaD9+v5F5SjN2Q7VMqNT+9+c4GJ0x65qwo+IRxnkyZrQA4Ochjogj -# 2k64LwIi39SrqLWl4Zln4xAn9uNO2WiPzctgN7pfp5kw5Qe/9nxJa7AzRzfVYSD7 -# HNTjoxTUYSwMRJ+UUDbrv0WmuUsz7pbGo0fguLwO2Blztl/ZG+qHLn71JKY3bvTn -# 3vrun/+nI95yGVDkm/dcZFK9o2CartRGUzwPURhdEnVjJQz6VCaM5MVvLLqTgckJ -# lmxJOXRebD6WGWSrNVoCisgsoB4I37vUJQKEI0NYDMKqL4YbCgjiHkIYcbnEPY8A -# 4jsOAIzWMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAIAC9eqfxsqF1YAAQAAAgAwDQYJYIZIAWUDBAIBBQCgggFKMBoGCSqG -# SIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgRVB+256RDjrV -# 4jzk8VKRvYQUGZ8lN+3f7CTU9tKUmxkwgfoGCyqGSIb3DQEJEAIvMYHqMIHnMIHk -# MIG9BCDUyO3sNZ3burBNDGUCV4NfM2gH4aWuRudIk/9KAk/ZJzCBmDCBgKR+MHwx -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1p -# Y3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAACAAvXqn8bKhdWAAEAAAIA -# MCIEIGDcE9syNzVtu2kd7LlU5esw2Nri7UrxXXYThAWgquYLMA0GCSqGSIb3DQEB -# CwUABIICAFTzpHGjNG53g0sFUqH/sV/yP8v5+KYv1r0ATOw4iGk4B27wsdg7+x29 -# QG6ZEXwveDVTEuezN5KCkKpgFhfeHAlsdtPzexzWalGAwoArgaOsetrHMdtcIIJT -# V3ZvBtxxgW8Diym5GVmqYQZkaLzp6BgAOyuTdKq1hXBjx5IlG1Ht4DI8fB3lwmqC -# EOX3aL3s/BqxZc9rALkGXcrq0XBkYJ5ResC+UtqI9uNRgqoqM1ZAVh27PIEYUgPz -# x/ndnvXoyBtwK5wsdGxbdj1Wgl8wxVMaNV3Gvhuf4OLqN6XyV7cCE2Ciinc1VivH -# nVaa4sBgx0nMyQwiBjfOaAMOoiI4F2XLpeAajaLPnt1JZi5Qye2zIvy22Bi/nLWg -# p2hxXUyr6/scKSU4V6QE6PMpyqCFPmz5VVKK8Ci+1JMpo76pFH8NwdAq4PlT8/eM -# 4AgEN4xXAnAyItYvAwVwE075WNdL+MRj5QiOzDfJ/5ZkL/urqGQLr+f5/MvfMC2s -# uMnut5NRHFJmn88XwlW2UeuCdMdqjL7ANondL3BHL3FFU8xh2xkMJaLgcpSG4e5b -# ejW1XIxwz77cbWegCzDSgd6HRXc7PuyS3mPcp8Ep7o2mNys/RyEB8QcuYvJ0AvrO -# nozRa610BmrNEiPZTp2RG7fMSW3vzchirkjqMG7EYqmrSg+2QyWG -# SIG # End signature block diff --git a/Modules/MicrosoftTeams/6.9.0/SfbRpsModule.format.ps1xml b/Modules/MicrosoftTeams/6.9.0/SfbRpsModule.format.ps1xml deleted file mode 100644 index e8e295a621b1..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/SfbRpsModule.format.ps1xml +++ /dev/null @@ -1,26518 +0,0 @@ - - - - - DeserializedAddressBookServicePolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.AddressBook.AddressBookServicePolicy - - - - - - - - Identity - - - - Description - - - - EnableAzureABS - - - - EnableAzureABSSideBySide - - - - EnableRankedResultsDisplay - - - - DisableAzureABSForUcwa - - - - - - - - DeserializedCallViaWorkPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.CallViaWork.CallViaWorkPolicy - - - - - - - - Identity - - - - Enabled - - - - UseAdminCallbackNumber - - - - AdminCallbackNumber - - - - - - - - DeserializedClientPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Client.ClientPolicy - - - - - - - - Identity - - - - PolicyEntry - - - - Description - - - - AddressBookAvailability - - - - AttendantSafeTransfer - - - - AutoDiscoveryRetryInterval - - - - BlockConversationFromFederatedContacts - - - - CalendarStatePublicationInterval - - - - ; - - - - CustomizedHelpUrl - - - - CustomLinkInErrorMessages - - - - CustomStateUrl - - - - DGRefreshInterval - - - - DisableCalendarPresence - - - - DisableContactCardOrganizationTab - - - - DisableEmailComparisonCheck - - - - DisableEmoticons - - - - DisableFeedsTab - - - - DisableFederatedPromptDisplayName - - - - DisableFreeBusyInfo - - - - DisableHandsetOnLockedMachine - - - - DisableMeetingSubjectAndLocation - - - - DisableHtmlIm - - - - DisableInkIM - - - - DisableOneNote12Integration - - - - DisableOnlineContextualSearch - - - - DisablePhonePresence - - - - DisablePICPromptDisplayName - - - - DisablePoorDeviceWarnings - - - - DisablePoorNetworkWarnings - - - - DisablePresenceNote - - - - DisableRTFIM - - - - DisableSavingIM - - - - DisplayPhoto - - - - EnableAppearOffline - - - - EnableCallLogAutoArchiving - - - - EnableClientAutoPopulateWithTeam - - - - EnableClientMusicOnHold - - - - EnableConversationWindowTabs - - - - EnableEnterpriseCustomizedHelp - - - - EnableEventLogging - - - - EnableExchangeContactSync - - - - EnableExchangeDelegateSync - - - - EnableExchangeContactsFolder - - - - EnableFullScreenVideo - - - - EnableHighPerformanceConferencingAppSharing - - - - EnableHotdesking - - - - EnableIMAutoArchiving - - - - EnableMediaRedirection - - - - EnableMeetingEngagement - - - - EnableNotificationForNewSubscribers - - - - EnableServerConversationHistory - - - - EnableSkypeUI - - - - EnableSQMData - - - - EnableTracing - - - - EnableURL - - - - EnableUnencryptedFileTransfer - - - - EnableVOIPCallDefault - - - - ExcludedContactFolders - - - - HotdeskingTimeout - - - - IMWarning - - - - MAPIPollInterval - - - - MaximumDGsAllowedInContactList - - - - MaximumNumberOfContacts - - - - MaxPhotoSizeKB - - - - MusicOnHoldAudioFile - - - - P2PAppSharingEncryption - - - - EnableHighPerformanceP2PAppSharing - - - - PlayAbbreviatedDialTone - - - - RequireContentPin - - - - SearchPrefixFlags - - - - ShowRecentContacts - - - - ShowManagePrivacyRelationships - - - - ShowSharepointPhotoEditLink - - - - SPSearchInternalURL - - - - SPSearchExternalURL - - - - SPSearchCenterInternalURL - - - - SPSearchCenterExternalURL - - - - TabURL - - - - TracingLevel - - - - TelemetryTier - - - - PublicationBatchDelay - - - - EnableViewBasedSubscriptionMode - - - - WebServicePollInterval - - - - HelpEnvironment - - - - RateMyCallDisplayPercentage - - - - RateMyCallAllowCustomUserFeedback - - - - IMLatencySpinnerDelay - - - - IMLatencyErrorThreshold - - - - SupportModernFilePicker - - - - EnableOnlineFeedback - - - - EnableOnlineFeedbackScreenshots - - - - - - - - DeserializedPolicyEntryTypeView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Client.PolicyEntryType - - - - - - - - Name - - - - Value - - - - - - - - DeserializedClientUpdatePolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.ClientUpdate.ClientUpdatePolicy - - - - - - - - Identity - - - - ShowNotification - - - - RedirectClient - - - - UpdateClient - - - - - - - - DeserializedClientUpdateOverridePolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.ClientUpdate.ClientUpdateOverridePolicy - - - - - - - - Identity - - - - Enabled - - - - ShowNotification - - - - RedirectClient - - - - UpdateClient - - - - - - - - DeserializedClientVersionPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.ClientVersion.ClientVersionPolicy - - - - - - - - Identity - - - - Rules - - - - Description - - - - - - - - DeserializedRuleView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.ClientVersion.Rule - - - - - - - - RuleId - - - - Description - - - - Action - - - - ActionUrl - - - - MajorVersion - - - - MinorVersion - - - - BuildNumber - - - - QfeNumber - - - - UserAgent - - - - UserAgentFullName - - - - Enabled - - - - CompareOp - - - - - - - - DeserializedRuleView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.ClientVersion.Rule#Decorated - - - - - - - - Identity - - - - Priority - - - - RuleId - - - - Description - - - - Action - - - - ActionUrl - - - - MajorVersion - - - - MinorVersion - - - - BuildNumber - - - - QfeNumber - - - - UserAgent - - - - UserAgentFullName - - - - Enabled - - - - CompareOp - - - - - - - - DeserializedClientVersionConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.ClientVersion.ClientVersionConfiguration - - - - - - - - Identity - - - - DefaultAction - - - - DefaultURL - - - - Enabled - - - - - - - - DeserializedExternalAccessPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.ExternalAccess.ExternalAccessPolicy - - - - - - - - Identity - - - - Description - - - - EnableFederationAccess - - - - EnableXmppAccess - - - - EnablePublicCloudAccess - - - - EnablePublicCloudAudioVideoAccess - - - - EnableOutsideAccess - - - - EnableAcsFederationAccess - - - - EnableTeamsConsumerAccess - - - - EnableTeamsConsumerInbound - - - - RestrictTeamsConsumerAccessToExternalUserProfiles - - - - - - - - DeserializedExternalUserCommunicationPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.ExternalUserCommunication.ExternalUserCommunicationPolicy - - - - - - - - Identity - - - - EnableFileTransfer - - - - EnableP2PFileTransfer - - - - AllowPresenceVisibility - - - - AllowTitleVisibility - - - - - - - - DeserializedGraphPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Graph.GraphPolicy - - - - - - - - Identity - - - - Description - - - - EnableMeetingsGraph - - - - EnableSharedLinks - - - - UseStorageService - - - - UseEWSDirectDownload - - - - - - - - DeserializedImArchivingPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Im.ImArchivingPolicy - - - - - - - - Identity - - - - Description - - - - ArchiveInternal - - - - ArchiveExternal - - - - - - - - DeserializedLegalInterceptPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Im.LegalInterceptPolicy - - - - - - - - Identity - - - - Description - - - - DeliverySMTPAddress - - - - ExpiryTime - - - - - - - - DeserializedIPPhonePolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.IPPhone.IPPhonePolicy - - - - - - - - Identity - - - - UserDialTimeoutMS - - - - KeyboardLockMaxPinRetry - - - - PrioritizedCodecsList - - - - EnablePowerSaveMode - - - - PowerSaveDuringOfficeHoursTimeoutMS - - - - PowerSavePostOfficeHoursTimeoutMS - - - - EnableOneTouchVoicemail - - - - DateTimeFormat - - - - EnableDeviceUpdate - - - - EnableExchangeCalendaring - - - - EnableBetterTogetherOverEthernet - - - - BetterTogetherOverEthernetPairingMode - - - - LocalProvisioningServerUser - - - - LocalProvisioningServerPassword - - - - LocalProvisioningServerAddress - - - - LocalProvisioningServerType - - - - - - - - DeserializedLocationPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Location.LocationPolicy - - - - - - - - Identity - - - - EmergencyNumbers - - - - Description - - - - EnhancedEmergencyServicesEnabled - - - - LocationRequired - - - - UseLocationForE911Only - - - - PstnUsage - - - - EmergencyDialString - - - - EmergencyDialMask - - - - NotificationUri - - - - ConferenceUri - - - - ConferenceMode - - - - LocationRefreshInterval - - - - EnhancedEmergencyServiceDisclaimer - - - - UseHybridVoiceForE911 - - - - EnablePlusPrefix - - - - AllowEmergencyCallsWithoutLineURI - - - - - - - - DeserializedEmergencyNumberView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Location.EmergencyNumber - - - - - - - - DialString - - - - DialMask - - - - - - - - DeserializedMeetingPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.MeetingPolicy - - - - - - - - Identity - - - - AllowIPAudio - - - - AllowIPVideo - - - - AllowMultiView - - - - Description - - - - AllowParticipantControl - - - - AllowAnnotations - - - - DisablePowerPointAnnotations - - - - AllowUserToScheduleMeetingsWithAppSharing - - - - ApplicationSharingMode - - - - AllowNonEnterpriseVoiceUsersToDialOut - - - - AllowAnonymousUsersToDialOut - - - - AllowAnonymousParticipantsInMeetings - - - - AllowFederatedParticipantJoinAsSameEnterprise - - - - AllowExternalUsersToSaveContent - - - - AllowExternalUserControl - - - - AllowExternalUsersToRecordMeeting - - - - AllowPolls - - - - AllowSharedNotes - - - - AllowQandA - - - - AllowOfficeContent - - - - EnableDialInConferencing - - - - EnableAppDesktopSharing - - - - AllowConferenceRecording - - - - EnableP2PRecording - - - - EnableFileTransfer - - - - EnableP2PFileTransfer - - - - EnableP2PVideo - - - - AllowLargeMeetings - - - - EnableOnlineMeetingPromptForLyncResources - - - - EnableDataCollaboration - - - - MaxVideoConferenceResolution - - - - MaxMeetingSize - - - - AudioBitRateKb - - - - VideoBitRateKb - - - - AppSharingBitRateKb - - - - FileTransferBitRateKb - - - - TotalReceiveVideoBitRateKb - - - - EnableMultiViewJoin - - - - CloudRecordingServiceSupport - - - - EnableReliableConferenceDeletion - - - - - - - - DeserializedBroadcastMeetingPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.BroadcastMeetingPolicy - - - - - - - - Identity - - - - AllowBroadcastMeeting - - - - AllowOpenBroadcastMeeting - - - - AllowBroadcastMeetingRecording - - - - AllowAnonymousBroadcastMeeting - - - - BroadcastMeetingRecordingEnforced - - - - - - - - DeserializedCloudMeetingPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.CloudMeetingPolicy - - - - - - - - Identity - - - - AllowAutoSchedule - - - - IsModernSchedulingEnabled - - - - - - - - DeserializedCloudMeetingOpsPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.CloudMeetingOpsPolicy - - - - - - - - Identity - - - - ActivationLocation - - - - - - - - DeserializedCloudVideoInteropPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.CloudVideoInteropPolicy - - - - - - - - Identity - - - - EnableCloudVideoInterop - - - - - - - - DeserializedApplicationAccessPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.ApplicationAccessPolicy - - - - - - - - Identity - - - - AppIds - - - - Description - - - - - - - - DeserializedTeamsMeetingPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.TeamsMeetingPolicy - - - - - - - - Identity - - - - Description - - - - AllowChannelMeetingScheduling - - - - AllowMeetNow - - - - AllowPrivateMeetNow - - - - MeetingChatEnabledType - - - - LiveCaptionsEnabledType - - - - DesignatedPresenterRoleMode - - - - AllowIPAudio - - - - AllowIPVideo - - - - AllowEngagementReport - - - - AllowTrackingInReport - - - - IPAudioMode - - - - IPVideoMode - - - - AllowAnonymousUsersToDialOut - - - - AllowAnonymousUsersToStartMeeting - - - - AllowAnonymousUsersToJoinMeeting - - - - BlockedAnonymousJoinClientTypes - - - - AllowedStreamingMediaInput - - - - AllowPrivateMeetingScheduling - - - - AutoAdmittedUsers - - - - AllowCloudRecording - - - - AllowRecordingStorageOutsideRegion - - - - RecordingStorageMode - - - - AllowOutlookAddIn - - - - AllowPowerPointSharing - - - - AllowParticipantGiveRequestControl - - - - AllowExternalParticipantGiveRequestControl - - - - AllowSharedNotes - - - - AllowWhiteboard - - - - AllowTranscription - - - - AllowNetworkConfigurationSettingsLookup - - - - MediaBitRateKb - - - - ScreenSharingMode - - - - VideoFiltersMode - - - - AllowPSTNUsersToBypassLobby - - - - AllowOrganizersToOverrideLobbySettings - - - - PreferredMeetingProviderForIslandsMode - - - - AllowNDIStreaming - - - - AllowUserToJoinExternalMeeting - - - - SpeakerAttributionMode - - - - EnrollUserOverride - - - - RoomAttributeUserOverride - - - - StreamingAttendeeMode - - - - AllowBreakoutRooms - - - - TeamsCameraFarEndPTZMode - - - - AllowMeetingReactions - - - - AllowMeetingRegistration - - - - WhoCanRegister - - - - AllowScreenContentDigitization - - - - AllowCarbonSummary - - - - RoomPeopleNameUserOverride - - - - AllowMeetingCoach - - - - NewMeetingRecordingExpirationDays - - - - LiveStreamingMode - - - - MeetingInviteLanguages - - - - ChannelRecordingDownload - - - - AllowCartCaptionsScheduling - - - - AllowTasksFromTranscript - - - - InfoShownInReportMode - - - - LiveInterpretationEnabledType - - - - QnAEngagementMode - - - - AllowImmersiveView - - - - AllowAvatarsInGallery - - - - AllowAnnotations - - - - AllowDocumentCollaboration - - - - AllowWatermarkForScreenSharing - - - - AllowWatermarkForCameraVideo - - - - AudibleRecordingNotification - - - - - - - - DeserializedMeetingBrandingThemeView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.MeetingBrandingTheme - - - - - - - - DisplayName - - - - LogoImageLightUri - - - - LogoImageDarkUri - - - - BackgroundImageLightUri - - - - BackgroundImageDarkUri - - - - BrandAccentColor - - - - Enabled - - - - Identity - - - - - - - - DeserializedTeamsEventsPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.TeamsEventsPolicy - - - - - - - - Identity - - - - AllowWebinars - - - - ForceStreamingAttendeeMode - - - - EventAccessType - - - - Description - - - - - - - - DeserializedMobilityPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Mobility.MobilityPolicy - - - - - - - - Identity - - - - Description - - - - EnableOutsideVoice - - - - EnableMobility - - - - EnableIPAudioVideo - - - - RequireWIFIForIPVideo - - - - AllowCustomerExperienceImprovementProgram - - - - RequireWiFiForSharing - - - - AllowSaveCallLogs - - - - AllowExchangeConnectivity - - - - AllowSaveIMHistory - - - - AllowSaveCredentials - - - - EnablePushNotifications - - - - EncryptAppData - - - - AllowDeviceContactsSync - - - - RequireIntune - - - - AllowAutomaticPstnFallback - - - - VoiceSettings - - - - - - - - DeserializedOnlineDialinConferencingPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.OnlineDialinConferencing.OnlineDialinConferencingPolicy - - - - - - - - Identity - - - - AllowService - - - - Description - - - - - - - - DeserializedOnlineDialOutPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.OnlineDialOut.OnlineDialOutPolicy - - - - - - - - Identity - - - - AllowPSTNConferencingDialOutType - - - - AllowPSTNOutboundCallingType - - - - - - - - DeserializedOnlineVoicemailPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.OnlineVoicemail.OnlineVoicemailPolicy - - - - - - - - Identity - - - - EnableTranscription - - - - ShareData - - - - EnableTranscriptionProfanityMasking - - - - EnableEditingCallAnswerRulesSetting - - - - MaximumRecordingLength - - - - EnableTranscriptionTranslation - - - - PrimarySystemPromptLanguage - - - - SecondarySystemPromptLanguage - - - - - - - - DeserializedPersistentChatPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.PersistentChat.PersistentChatPolicy - - - - - - - - Identity - - - - Description - - - - EnablePersistentChat - - - - - - - - DeserializedPresencePolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Presence.PresencePolicy - - - - - - - - Identity - - - - MaxPromptedSubscriber - - - - MaxCategorySubscription - - - - Description - - - - - - - - DeserializedTenantPowerShellPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.RemotePowershell.TenantPowerShellPolicy - - - - - - - - Identity - - - - EnableRemotePowerShellAccess - - - - MaxConnectionsPerTenant - - - - MaxConnectionsPerUser - - - - MaxCmdletsBeforePause - - - - MaxCmdletsPauseSeconds - - - - BypassSkuRestrictions - - - - - - - - DeserializedSmsServicePolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Sms.SmsServicePolicy - - - - - - - - Identity - - - - Description - - - - ProxyServiceUrl - - - - EnablePersonalInvite - - - - EnableOutboundIM - - - - SendIMMessageContent - - - - - - - - DeserializedTeamsCallingPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsCallingPolicy - - - - - - - - Identity - - - - Description - - - - AllowPrivateCalling - - - - AllowWebPSTNCalling - - - - AllowSIPDevicesCalling - - - - AllowVoicemail - - - - AllowCallGroups - - - - AllowDelegation - - - - AllowCallForwardingToUser - - - - AllowCallForwardingToPhone - - - - PreventTollBypass - - - - BusyOnBusyEnabledType - - - - MusicOnHoldEnabledType - - - - AllowCloudRecordingForCalls - - - - AllowTranscriptionForCalling - - - - PopoutForIncomingPstnCalls - - - - PopoutAppPathForIncomingPstnCalls - - - - LiveCaptionsEnabledTypeForCalling - - - - AutoAnswerEnabledType - - - - SpamFilteringEnabledType - - - - CallRecordingExpirationDays - - - - AllowCallRedirect - - - - - - - - DeserializedTeamsInteropPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsInteropPolicy - - - - - - - - Identity - - - - AllowEndUserClientOverride - - - - CallingDefaultClient - - - - ChatDefaultClient - - - - - - - - DeserializedTeamsMessagingPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsMessagingPolicy - - - - - - - - Identity - - - - Description - - - - AllowUrlPreviews - - - - AllowOwnerDeleteMessage - - - - AllowUserEditMessage - - - - AllowUserDeleteMessage - - - - AllowUserDeleteChat - - - - AllowUserChat - - - - AllowRemoveUser - - - - AllowGiphy - - - - GiphyRatingType - - - - AllowGiphyDisplay - - - - AllowPasteInternetImage - - - - AllowMemes - - - - AllowImmersiveReader - - - - AllowStickers - - - - AllowUserTranslation - - - - ReadReceiptsEnabledType - - - - AllowPriorityMessages - - - - AllowSmartReply - - - - AllowSmartCompose - - - - ChannelsInChatListEnabledType - - - - AudioMessageEnabledType - - - - ChatPermissionRole - - - - AllowFullChatPermissionUserToDeleteAnyMessage - - - - AllowFluidCollaborate - - - - AllowVideoMessages - - - - AllowCommunicationComplianceEndUserReporting - - - - - - - - DeserializedTeamsUpgradePolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsUpgradePolicy - - - - - - - - Identity - - - - Description - - - - Mode - - - - NotifySfbUsers - - - - Action - - - - - - - - DeserializedTeamsUpgradeOverridePolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsUpgradeOverridePolicy - - - - - - - - Identity - - - - Description - - - - ProvisionedAsTeamsOnly - - - - SkypePoolMode - - - - Action - - - - Enabled - - - - - - - - DeserializedTeamsMediaLoggingPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsMediaLoggingPolicy - - - - - - - - Identity - - - - Description - - - - AllowMediaLogging - - - - - - - - DeserializedTeamsVideoInteropServicePolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsVideoInteropServicePolicy - - - - - - - - Identity - - - - Description - - - - ProviderName - - - - Enabled - - - - - - - - DeserializedTeamsWorkLoadPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsWorkLoadPolicy - - - - - - - - Identity - - - - Description - - - - AllowMeeting - - - - AllowMeetingPinned - - - - AllowMessaging - - - - AllowMessagingPinned - - - - AllowCalling - - - - AllowCallingPinned - - - - - - - - DeserializedTeamsCortanaPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsCortanaPolicy - - - - - - - - Identity - - - - Description - - - - CortanaVoiceInvocationMode - - - - AllowCortanaVoiceInvocation - - - - AllowCortanaAmbientListening - - - - AllowCortanaInContextSuggestions - - - - - - - - DeserializedTeamsOwnersPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsOwnersPolicy - - - - - - - - Identity - - - - Description - - - - AllowPrivateTeams - - - - AllowOrgwideTeams - - - - AllowPublicTeams - - - - - - - - DeserializedTeamsMeetingBroadcastPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsMeetingBroadcastPolicy - - - - - - - - Identity - - - - Description - - - - AllowBroadcastScheduling - - - - AllowBroadcastTranscription - - - - BroadcastAttendeeVisibilityMode - - - - BroadcastRecordingMode - - - - - - - - DeserializedTeamsAppPermissionPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsAppPermissionPolicy - - - - - - - - Identity - - - - DefaultCatalogApps - - - - GlobalCatalogApps - - - - PrivateCatalogApps - - - - Description - - - - DefaultCatalogAppsType - - - - GlobalCatalogAppsType - - - - PrivateCatalogAppsType - - - - - - - - DeserializedDefaultCatalogAppView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.DefaultCatalogApp - - - - - - - - Id - - - - - - - - DeserializedDefaultCatalogAppView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.DefaultCatalogApp#Decorated - - - - - - - - Identity - - - - Priority - - - - Id - - - - - - - - DeserializedGlobalCatalogAppView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.GlobalCatalogApp - - - - - - - - Id - - - - - - - - DeserializedGlobalCatalogAppView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.GlobalCatalogApp#Decorated - - - - - - - - Identity - - - - Priority - - - - Id - - - - - - - - DeserializedPrivateCatalogAppView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.PrivateCatalogApp - - - - - - - - Id - - - - - - - - DeserializedPrivateCatalogAppView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.PrivateCatalogApp#Decorated - - - - - - - - Identity - - - - Priority - - - - Id - - - - - - - - DeserializedTeamsAppSetupPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsAppSetupPolicy - - - - - - - - Identity - - - - AppPresetList - - - - PinnedAppBarApps - - - - PinnedMessageBarApps - - - - AppPresetMeetingList - - - - Description - - - - AllowSideLoading - - - - AllowUserPinning - - - - - - - - DeserializedAppPresetView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.AppPreset - - - - - - - - Id - - - - - - - - DeserializedAppPresetView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.AppPreset#Decorated - - - - - - - - Identity - - - - Priority - - - - Id - - - - - - - - DeserializedPinnedAppView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.PinnedApp - - - - - - - - Id - - - - Order - - - - - - - - DeserializedPinnedAppView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.PinnedApp#Decorated - - - - - - - - Identity - - - - Priority - - - - Id - - - - Order - - - - - - - - DeserializedPinnedMessageBarAppView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.PinnedMessageBarApp - - - - - - - - Id - - - - Order - - - - - - - - DeserializedPinnedMessageBarAppView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.PinnedMessageBarApp#Decorated - - - - - - - - Identity - - - - Priority - - - - Id - - - - Order - - - - - - - - DeserializedAppPresetMeetingView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.AppPresetMeeting - - - - - - - - Id - - - - - - - - DeserializedAppPresetMeetingView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.AppPresetMeeting#Decorated - - - - - - - - Identity - - - - Priority - - - - Id - - - - - - - - DeserializedTeamsCallParkPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsCallParkPolicy - - - - - - - - Identity - - - - Description - - - - AllowCallPark - - - - PickupRangeStart - - - - PickupRangeEnd - - - - ParkTimeoutSeconds - - - - - - - - DeserializedTeamsEducationAssignmentsAppPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsEducationAssignmentsAppPolicy - - - - - - - - Identity - - - - ParentDigestEnabledType - - - - MakeCodeEnabledType - - - - TurnItInEnabledType - - - - TurnItInApiUrl - - - - TurnItInApiKey - - - - - - - - DeserializedTeamsEmergencyCallRoutingPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsEmergencyCallRoutingPolicy - - - - - - - - Identity - - - - EmergencyNumbers - - - - AllowEnhancedEmergencyServices - - - - Description - - - - - - - - DeserializedTeamsEmergencyNumberView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsEmergencyNumber - - - - - - - - EmergencyDialString - - - - EmergencyDialMask - - - - OnlinePSTNUsage - - - - - - - - DeserializedTeamsEmergencyCallingPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsEmergencyCallingPolicy - - - - - - - - Identity - - - - NotificationGroup - - - - NotificationDialOutNumber - - - - ExternalLocationLookupMode - - - - NotificationMode - - - - EnhancedEmergencyServiceDisclaimer - - - - Description - - - - - - - - DeserializedTeamsUpdateManagementPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsUpdateManagementPolicy - - - - - - - - Identity - - - - Description - - - - AllowManagedUpdates - - - - AllowPreview - - - - UpdateDayOfWeek - - - - UpdateTime - - - - UpdateTimeOfDay - - - - AllowPublicPreview - - - - - - - - DeserializedTeamsNotificationAndFeedsPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsNotificationAndFeedsPolicy - - - - - - - - Identity - - - - Description - - - - SuggestedFeedsEnabledType - - - - TrendingFeedsEnabledType - - - - - - - - DeserializedTeamsChannelsPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsChannelsPolicy - - - - - - - - Identity - - - - Description - - - - AllowOrgWideTeamCreation - - - - AllowPrivateTeamDiscovery - - - - AllowPrivateChannelCreation - - - - AllowSharedChannelCreation - - - - AllowChannelSharingToExternalUser - - - - AllowUserToParticipateInExternalSharedChannel - - - - - - - - DeserializedTeamsMobilityPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsMobilityPolicy - - - - - - - - Identity - - - - Description - - - - IPVideoMobileMode - - - - IPAudioMobileMode - - - - MobileDialerPreference - - - - - - - - DeserializedTeamsSyntheticAutomatedCallPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsSyntheticAutomatedCallPolicy - - - - - - - - Identity - - - - Description - - - - SyntheticAutomatedCallsMode - - - - - - - - DeserializedTeamsTargetingPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsTargetingPolicy - - - - - - - - Identity - - - - Description - - - - ManageTagsPermissionMode - - - - TeamOwnersEditWhoCanManageTagsMode - - - - SuggestedPresetTags - - - - CustomTagsMode - - - - ShiftBackedTagsMode - - - - - - - - DeserializedTeamsIPPhonePolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsIPPhonePolicy - - - - - - - - Identity - - - - Description - - - - SignInMode - - - - SearchOnCommonAreaPhoneMode - - - - AllowHomeScreen - - - - AllowBetterTogether - - - - AllowHotDesking - - - - HotDeskingIdleTimeoutInMinutes - - - - - - - - DeserializedTeamsVerticalPackagePolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsVerticalPackagePolicy - - - - - - - - Identity - - - - PackageIncludedPolices - - - - Description - - - - PackageId - - - - FirstRunExperienceId - - - - - - - - DeserializedPolicyTypeToPolicyInstanceView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.PolicyTypeToPolicyInstance - - - - - - - - PolicyType - - - - PolicyName - - - - - - - - DeserializedTeamsFeedbackPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsFeedbackPolicy - - - - - - - - Identity - - - - UserInitiatedMode - - - - ReceiveSurveysMode - - - - AllowScreenshotCollection - - - - AllowEmailCollection - - - - AllowLogCollection - - - - - - - - DeserializedTeamsComplianceRecordingPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsComplianceRecordingPolicy - - - - - - - - Identity - - - - ComplianceRecordingApplications - - - - Enabled - - - - WarnUserOnRemoval - - - - DisableComplianceRecordingAudioNotificationForCalls - - - - Description - - - - - - - - DeserializedComplianceRecordingApplicationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.ComplianceRecordingApplication - - - - - - - - ComplianceRecordingPairedApplications - - - - Id - - - - RequiredBeforeMeetingJoin - - - - RequiredBeforeCallEstablishment - - - - RequiredDuringMeeting - - - - RequiredDuringCall - - - - ConcurrentInvitationCount - - - - - - - - DeserializedComplianceRecordingApplicationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.ComplianceRecordingApplication#Decorated - - - - - - - - Identity - - - - Priority - - - - ComplianceRecordingPairedApplications - - - - Id - - - - RequiredBeforeMeetingJoin - - - - RequiredBeforeCallEstablishment - - - - RequiredDuringMeeting - - - - RequiredDuringCall - - - - ConcurrentInvitationCount - - - - - - - - DeserializedComplianceRecordingPairedApplicationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.ComplianceRecordingPairedApplication - - - - - - - - Id - - - - - - - - DeserializedTeamsShiftsAppPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsShiftsAppPolicy - - - - - - - - Identity - - - - AllowTimeClockLocationDetection - - - - - - - - DeserializedTeamsShiftsPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsShiftsPolicy - - - - - - - - Identity - - - - EnableShiftPresence - - - - ShiftNoticeFrequency - - - - ShiftNoticeMessageType - - - - ShiftNoticeMessageCustom - - - - AccessType - - - - AccessGracePeriodMinutes - - - - EnableScheduleOwnerPermissions - - - - - - - - DeserializedTeamsTasksPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsTasksPolicy - - - - - - - - Identity - - - - TasksMode - - - - AllowActivityWhenTasksPublished - - - - - - - - DeserializedTeamsVdiPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsVdiPolicy - - - - - - - - Identity - - - - DisableCallsAndMeetings - - - - DisableAudioVideoInCallsAndMeetings - - - - - - - - DeserializedTeamsNetworkRoamingPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsNetworkRoamingPolicy - - - - - - - - Identity - - - - AllowIPVideo - - - - MediaBitRateKb - - - - Description - - - - - - - - DeserializedTeamsCarrierEmergencyCallRoutingPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsCarrierEmergencyCallRoutingPolicy - - - - - - - - Identity - - - - LocationPolicyId - - - - Description - - - - - - - - DeserializedTeamsCallHoldPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsCallHoldPolicy - - - - - - - - Identity - - - - Description - - - - AudioFileId - - - - - - - - DeserializedTeamsEnhancedEncryptionPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsEnhancedEncryptionPolicy - - - - - - - - Identity - - - - CallingEndtoEndEncryptionEnabledType - - - - MeetingEndToEndEncryption - - - - Description - - - - - - - - DeserializedTeamsFilesPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsFilesPolicy - - - - - - - - Identity - - - - NativeFileEntryPoints - - - - SPChannelFilesTab - - - - - - - - DeserializedTeamsWatermarkPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsWatermarkPolicy - - - - - - - - Identity - - - - AllowForScreenSharing - - - - AllowForCameraVideo - - - - Description - - - - - - - - DeserializedTeamsVoiceApplicationsPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsVoiceApplicationsPolicy - - - - - - - - Identity - - - - Description - - - - AllowAutoAttendantBusinessHoursGreetingChange - - - - AllowAutoAttendantAfterHoursGreetingChange - - - - AllowAutoAttendantHolidayGreetingChange - - - - AllowAutoAttendantBusinessHoursChange - - - - AllowAutoAttendantTimeZoneChange - - - - AllowAutoAttendantLanguageChange - - - - AllowAutoAttendantHolidaysChange - - - - AllowAutoAttendantBusinessHoursRoutingChange - - - - AllowAutoAttendantAfterHoursRoutingChange - - - - AllowAutoAttendantHolidayRoutingChange - - - - AllowCallQueueWelcomeGreetingChange - - - - AllowCallQueueMusicOnHoldChange - - - - AllowCallQueueOverflowSharedVoicemailGreetingChange - - - - AllowCallQueueTimeoutSharedVoicemailGreetingChange - - - - AllowCallQueueOptOutChange - - - - AllowCallQueueAgentOptChange - - - - AllowCallQueueMembershipChange - - - - AllowCallQueueRoutingMethodChange - - - - AllowCallQueuePresenceBasedRoutingChange - - - - CallQueueAgentMonitorMode - - - - CallQueueAgentMonitorNotificationMode - - - - AllowCallQueueLanguageChange - - - - AllowCallQueueOverflowRoutingChange - - - - AllowCallQueueTimeoutRoutingChange - - - - AllowCallQueueNoAgentsRoutingChange - - - - AllowCallQueueConferenceModeChange - - - - - - - - DeserializedTeamsRoomVideoTeleConferencingPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsRoomVideoTeleConferencingPolicy - - - - - - - - Identity - - - - Description - - - - Enabled - - - - AreaCode - - - - ReceiveExternalCalls - - - - ReceiveInternalCalls - - - - PlaceExternalCalls - - - - PlaceInternalCalls - - - - - - - - DeserializedTeamsMeetingTemplatePermissionPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsMeetingTemplatePermissionPolicy - - - - - - - - Identity - - - - HiddenMeetingTemplates - - - - Description - - - - - - - - DeserializedHiddenMeetingTemplateView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.HiddenMeetingTemplate - - - - - - - - Id - - - - - - - - DeserializedTeamsAudioConferencingPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.TeamsAudioConferencing.TeamsAudioConferencingPolicy - - - - - - - - Identity - - - - MeetingInvitePhoneNumbers - - - - AllowTollFreeDialin - - - - - - - - DeserializedThirdPartyVideoSystemPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.ThirdPartyVideoSystem.ThirdPartyVideoSystemPolicy - - - - - - - - Identity - - - - SupportsSendingLowResolution - - - - - - - - DeserializedUserExperiencePolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.UserExperience.UserExperiencePolicy - - - - - - - - Identity - - - - UserExperienceVersion - - - - - - - - DeserializedUserPinPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.UserPin.UserPinPolicy - - - - - - - - Identity - - - - Description - - - - MinPasswordLength - - - - PINHistoryCount - - - - AllowCommonPatterns - - - - PINLifetime - - - - MaximumLogonAttempts - - - - - - - - DeserializedUserServicesPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.UserServices.UserServicesPolicy - - - - - - - - Identity - - - - UcsAllowed - - - - MigrationDelayInDays - - - - EnableAwaySinceIndication - - - - - - - - DeserializedPstnUsagesView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.PstnUsages - - - - - - - - Identity - - - - Usage - - - - - - - - DeserializedOnlinePstnUsagesView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.OnlinePstnUsages - - - - - - - - Identity - - - - Usage - - - - - - - - DeserializedRouteView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.Route - - - - - - - - Description - - - - NumberPattern - - - - PstnUsages - - - - PstnGatewayList - - - - Name - - - - SuppressCallerId - - - - AlternateCallerId - - - - - - - - DeserializedRouteView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.Route#Decorated - - - - - - - - Identity - - - - Priority - - - - Description - - - - NumberPattern - - - - PstnUsages - - - - PstnGatewayList - - - - Name - - - - SuppressCallerId - - - - AlternateCallerId - - - - - - - - DeserializedPstnRoutingSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.PstnRoutingSettings - - - - - - - - Identity - - - - Route - - - - EnableLocationBasedRouting - - - - CallViaWorkCallerId - - - - - - - - DeserializedHostedVoicemailPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.Hosted.HostedVoicemailPolicy - - - - - - - - Identity - - - - Description - - - - Destination - - - - Organization - - - - BusinessVoiceEnabled - - - - NgcEnabled - - - - - - - - DeserializedOnlineRouteView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.OnlineRoute - - - - - - - - Description - - - - NumberPattern - - - - OnlinePstnUsages - - - - OnlinePstnGatewayList - - - - BridgeSourcePhoneNumber - - - - Name - - - - - - - - DeserializedOnlineRouteView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.OnlineRoute#Decorated - - - - - - - - Identity - - - - Priority - - - - Description - - - - NumberPattern - - - - OnlinePstnUsages - - - - OnlinePstnGatewayList - - - - BridgeSourcePhoneNumber - - - - Name - - - - - - - - DeserializedOnlinePstnRoutingSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.OnlinePstnRoutingSettings - - - - - - - - Identity - - - - OnlineRoute - - - - - - - - DeserializedTenantBlockedCallingNumbersView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.TenantBlockedCallingNumbers - - - - - - - - Identity - - - - InboundBlockedNumberPatterns - - - - InboundExemptNumberPatterns - - - - Enabled - - - - Name - - - - - - - - DeserializedInboundBlockedNumberPatternView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.InboundBlockedNumberPattern - - - - - - - - Name - - - - Enabled - - - - Description - - - - Pattern - - - - - - - - DeserializedInboundBlockedNumberPatternView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.InboundBlockedNumberPattern#Decorated - - - - - - - - Identity - - - - Name - - - - Enabled - - - - Description - - - - Pattern - - - - - - - - DeserializedOutboundBlockedNumberPatternView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.OutboundBlockedNumberPattern - - - - - - - - Name - - - - Enabled - - - - Description - - - - Pattern - - - - - - - - DeserializedOutboundBlockedNumberPatternView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.OutboundBlockedNumberPattern#Decorated - - - - - - - - Identity - - - - Name - - - - Enabled - - - - Description - - - - Pattern - - - - - - - - DeserializedInboundExemptNumberPatternView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.InboundExemptNumberPattern - - - - - - - - Name - - - - Enabled - - - - Description - - - - Pattern - - - - - - - - DeserializedInboundExemptNumberPatternView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.InboundExemptNumberPattern#Decorated - - - - - - - - Identity - - - - Name - - - - Enabled - - - - Description - - - - Pattern - - - - - - - - DeserializedLocationProfileView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.LocationProfile - - - - - - - - Identity - - - - Description - - - - DialinConferencingRegion - - - - NormalizationRules - - - - PriorityNormalizationRules - - - - CountryCode - - - - State - - - - City - - - - SimpleName - - - - ITUCountryPrefix - - - - - - - - DeserializedNormalizationRuleView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.NormalizationRule - - - - - - - - Description - - - - Pattern - - - - Translation - - - - Name - - - - IsInternalExtension - - - - - - - - DeserializedNormalizationRuleView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.NormalizationRule#Decorated - - - - - - - - Identity - - - - Priority - - - - Description - - - - Pattern - - - - Translation - - - - Name - - - - IsInternalExtension - - - - - - - - DeserializedTenantDialPlanView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.TenantDialPlan - - - - - - - - Identity - - - - Description - - - - NormalizationRules - - - - SimpleName - - - - - - - - DeserializedVoicePolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.VoicePolicy - - - - - - - - Identity - - - - PstnUsages - - - - CustomCallForwardingSimulRingUsages - - - - Description - - - - AllowSimulRing - - - - AllowCallForwarding - - - - AllowPSTNReRouting - - - - Name - - - - EnableDelegation - - - - EnableTeamCall - - - - EnableCallTransfer - - - - EnableCallPark - - - - EnableBusyOptions - - - - EnableMaliciousCallTracing - - - - EnableBWPolicyOverride - - - - PreventPSTNTollBypass - - - - EnableFMC - - - - CallForwardingSimulRingUsageType - - - - EnableVoicemailEscapeTimer - - - - PSTNVoicemailEscapeTimer - - - - - - - - DeserializedCallerIdPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.CallerIdPolicy - - - - - - - - Identity - - - - Description - - - - Name - - - - EnableUserOverride - - - - ServiceNumber - - - - CallerIDSubstitute - - - - - - - - DeserializedCallingLineIdentityView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.CallingLineIdentity - - - - - - - - Identity - - - - Description - - - - EnableUserOverride - - - - ServiceNumber - - - - CallingIDSubstitute - - - - BlockIncomingPstnCallerID - - - - ResourceAccount - - - - CompanyName - - - - - - - - DeserializedNgcBvMigrationPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.NgcBvMigrationPolicy - - - - - - - - Identity - - - - Description - - - - PstnOut - - - - - - - - DeserializedTestConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.TestConfiguration - - - - - - - - Name - - - - DialedNumber - - - - TargetDialplan - - - - TargetVoicePolicy - - - - ExpectedTranslatedNumber - - - - ExpectedUsage - - - - ExpectedRoute - - - - - - - - DeserializedTestConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.TestConfiguration#Decorated - - - - - - - - Identity - - - - Name - - - - DialedNumber - - - - TargetDialplan - - - - TargetVoicePolicy - - - - ExpectedTranslatedNumber - - - - ExpectedUsage - - - - ExpectedRoute - - - - - - - - DeserializedVoiceConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.VoiceConfiguration - - - - - - - - Identity - - - - VoiceTestConfigurations - - - - - - - - DeserializedUcPhoneSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.UcPhoneSettings - - - - - - - - Identity - - - - CalendarPollInterval - - - - EnforcePhoneLock - - - - PhoneLockTimeout - - - - MinPhonePinLength - - - - SIPSecurityMode - - - - VoiceDiffServTag - - - - Voice8021p - - - - LoggingLevel - - - - - - - - DeserializedHostedVoicemailPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.HostedVoicemailPolicy - - - - - - - - Identity - - - - Description - - - - Destination - - - - Organization - - - - - - - - DeserializedVoiceRoutingPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.VoiceRoutingPolicy - - - - - - - - Identity - - - - PstnUsages - - - - Description - - - - Name - - - - - - - - DeserializedOnlineVoiceRoutingPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.OnlineVoiceRoutingPolicy - - - - - - - - Identity - - - - OnlinePstnUsages - - - - Description - - - - RouteType - - - - - - - - DeserializedOnlineAudioConferencingRoutingPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.OnlineAudioConferencingRoutingPolicy - - - - - - - - Identity - - - - OnlinePstnUsages - - - - Description - - - - RouteType - - - - - - - - DeserializedSurvivableBranchApplianceView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.SurvivableBranchAppliance - - - - - - - - Fqdn - - - - Site - - - - Description - - - - - - - - DeserializedSurvivableBranchApplianceView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.SurvivableBranchAppliance#Decorated - - - - - - - - Identity - - - - Fqdn - - - - Site - - - - Description - - - - - - - - DeserializedTeamsBranchSurvivabilityPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.TeamsBranchSurvivabilityPolicy - - - - - - - - Identity - - - - BranchApplianceFqdns - - - - - - - - DeserializedXForestMovePolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.XForestMove.XForestMovePolicy - - - - - - - - Identity - - - - FeaturePreferences - - - - DestinationServiceInstance - - - - MoveType - - - - Forced - - - - MoveDate - - - - OffPeakStartInUTC - - - - OffPeakEndInUTC - - - - - - - - DeserializedFeaturePreferenceView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.XForestMove.FeaturePreference - - - - - - - - Name - - - - Behaviour - - - - - - - - DeserializedServiceInstanceView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ProvisionService.ServiceInstance - - - - - - - - Name - - - - - - - - DeserializedPreferredDataLocationOverwritePolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.XForestMove.PreferredDataLocationOverwritePolicy - - - - - - - - Identity - - - - NewPreferredDataLocation - - - - OwnerServiceInstance - - - - OriginalPreferredDataLocation - - - - - - - - DeserializedACPIntegrationSettingView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ACPIntegration.ACPIntegrationSetting - - - - - - - - Identity - - - - Mode - - - - - - - - DeserializedTeamsAcsFederationConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AcsConfiguration.TeamsAcsFederationConfiguration - - - - - - - - Identity - - - - AllowedAcsResources - - - - EnableAcsUsers - - - - - - - - DeserializedTrunkConfigView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AcsResourceCallingConfiguration.TrunkConfig - - - - - - - - Fqdn - - - - SipSignalingPort - - - - - - - - DeserializedTrunkConfigView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AcsResourceCallingConfiguration.TrunkConfig#Decorated - - - - - - - - Identity - - - - Fqdn - - - - SipSignalingPort - - - - - - - - DeserializedOnlineRouteView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AcsResourceCallingConfiguration.OnlineRoute - - - - - - - - Description - - - - NumberPattern - - - - OnlinePstnGatewayList - - - - Name - - - - - - - - DeserializedOnlineRouteView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AcsResourceCallingConfiguration.OnlineRoute#Decorated - - - - - - - - Identity - - - - Description - - - - NumberPattern - - - - OnlinePstnGatewayList - - - - Name - - - - - - - - DeserializedAddressBookSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookSettings - - - - - - - - Identity - - - - RunTimeOfDay - - - - KeepDuration - - - - SynchronizePollingInterval - - - - MaxDeltaFileSizePercentage - - - - UseNormalizationRules - - - - IgnoreGenericRules - - - - EnableFileGeneration - - - - MaxFileShareThreadCount - - - - EnableSearchByDialPad - - - - EnablePhotoSearch - - - - PhotoCacheRefreshInterval - - - - - - - - DeserializedAddressBookNormalizationSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookNormalizationSettings - - - - - - - - Identity - - - - AddressBookNormalizationRules - - - - - - - - DeserializedAddressBookNormalizationRuleView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookNormalizationRule - - - - - - - - Description - - - - Pattern - - - - Translation - - - - Name - - - - - - - - DeserializedAddressBookNormalizationRuleView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookNormalizationRule#Decorated - - - - - - - - Identity - - - - Priority - - - - Description - - - - Pattern - - - - Translation - - - - Name - - - - - - - - DeserializedAddressBookGatingSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookGatingSettings - - - - - - - - Identity - - - - AddressBookGatingTenants - - - - AzureDirectoryForGroupExpansionEnabled - - - - AzureDirectoryForGroupExpansionPercent - - - - AzureDirectoryForUserSearchEnabled - - - - AzureDirectoryForUserSearchPercent - - - - AzureDirectoryForUserSearchServiceUrl - - - - - - - - DeserializedAddressBookGatingTenantView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookGatingTenant - - - - - - - - AzureDirectorySearchEnabledUsers - - - - TenantId - - - - AzureDirectoryForGroupExpansionEnabled - - - - AzureDirectoryForGroupExpansionPercent - - - - AzureDirectoryForUserSearchEnabled - - - - AzureDirectoryForUserSearchPercent - - - - - - - - DeserializedAddressBookGatingTenantView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookGatingTenant#Decorated - - - - - - - - Identity - - - - Priority - - - - AzureDirectorySearchEnabledUsers - - - - TenantId - - - - AzureDirectoryForGroupExpansionEnabled - - - - AzureDirectoryForGroupExpansionPercent - - - - AzureDirectoryForUserSearchEnabled - - - - AzureDirectoryForUserSearchPercent - - - - - - - - DeserializedAnnouncementView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AnnouncementServiceSettings.Announcement - - - - - - - - Name - - - - AudioFilePrompt - - - - TextToSpeechPrompt - - - - Language - - - - TargetUri - - - - AnnouncementId - - - - - - - - DeserializedAnnouncementView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AnnouncementServiceSettings.Announcement#Decorated - - - - - - - - Identity - - - - Name - - - - AudioFilePrompt - - - - TextToSpeechPrompt - - - - Language - - - - TargetUri - - - - AnnouncementId - - - - - - - - DeserializedVoicePolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.Hosted.VoicePolicy - - - - - - - - Identity - - - - PstnUsages - - - - CustomCallForwardingSimulRingUsages - - - - Description - - - - AllowSimulRing - - - - AllowCallForwarding - - - - AllowPSTNReRouting - - - - Name - - - - EnableDelegation - - - - EnableTeamCall - - - - EnableCallTransfer - - - - EnableCallPark - - - - EnableBusyOptions - - - - EnableMaliciousCallTracing - - - - EnableBWPolicyOverride - - - - PreventPSTNTollBypass - - - - EnableFMC - - - - CallForwardingSimulRingUsageType - - - - VoiceDeploymentMode - - - - EnableVoicemailEscapeTimer - - - - PSTNVoicemailEscapeTimer - - - - TenantAdminEnabled - - - - BusinessVoiceEnabled - - - - - - - - DeserializedArchivingSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Archiving.ArchivingSettings - - - - - - - - Identity - - - - EnableArchiving - - - - EnablePurging - - - - PurgeExportedArchivesOnly - - - - BlockOnArchiveFailure - - - - KeepArchivingDataForDays - - - - PurgeHourOfDay - - - - ArchiveDuplicateMessages - - - - CachePurgingInterval - - - - EnableExchangeArchiving - - - - EnableExchangeFileAttachmentCompression - - - - ExchangeFileAttachmentSizeLimit - - - - PurgeMinuteOfPurgeHourOfDay - - - - PurgeTaskWakeupIntervalMinutes - - - - V2PurgeReportingIntervalMinutes - - - - V2PurgeTimeoutMinutes - - - - V2PurgeMaxRetries - - - - V2PurgeMaxDegreeOfParallelism - - - - UseV2PurgingAlgorithm - - - - - - - - DeserializedAudioConferencingProviderView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AudioConferencingProvider.AudioConferencingProvider - - - - - - - - Name - - - - Url - - - - Domain - - - - Port - - - - - - - - DeserializedAudioConferencingProviderView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AudioConferencingProvider.AudioConferencingProvider#Decorated - - - - - - - - Identity - - - - Name - - - - Url - - - - Domain - - - - Port - - - - - - - - DeserializedAudioConferencingFeatureConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AudioConferencingProvider.AudioConferencingFeatureConfiguration - - - - - - - - Identity - - - - EnableAutoSessionsControl - - - - EnableHttpNotifications - - - - EnableConferencingLobby - - - - - - - - DeserializedAudioTeleconferencingServiceConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AudioTeleconferencing.AudioTeleconferencingServiceConfiguration - - - - - - - - Identity - - - - AllowedClientCertificates - - - - ConversationServiceUri - - - - - - - - DeserializedAutodiscoverConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AutodiscoverConfiguration.AutodiscoverConfiguration - - - - - - - - Identity - - - - WebLinks - - - - ExternalSipClientAccessFqdn - - - - ExternalSipClientAccessPort - - - - EnableCertificateProvisioningServiceUrl - - - - EnableCORS - - - - - - - - DeserializedWebLinkView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AutodiscoverConfiguration.WebLink - - - - - - - - Token - - - - Href - - - - - - - - DeserializedTrunkConfigView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AzurePSTNTrunkConfiguration.TrunkConfig - - - - - - - - InboundTeamsNumberTranslationRules - - - - InboundPstnNumberTranslationRules - - - - OutboundPstnNumberTranslationRules - - - - Fqdn - - - - SipSignalingPort - - - - FailoverTimeSeconds - - - - ForwardCallHistory - - - - ForwardPai - - - - SendSipOptions - - - - MaxConcurrentSessions - - - - Enabled - - - - MediaBypass - - - - GatewaySiteId - - - - GatewaySiteLbrEnabled - - - - GatewayLbrEnabledUserOverride - - - - FailoverResponseCodes - - - - PidfLoSupported - - - - MediaRelayRoutingLocationOverride - - - - ProxySbc - - - - BypassMode - - - - Description - - - - IPAddressVersion - - - - - - - - DeserializedTrunkConfigView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AzurePSTNTrunkConfiguration.TrunkConfig#Decorated - - - - - - - - Identity - - - - InboundTeamsNumberTranslationRules - - - - InboundPstnNumberTranslationRules - - - - OutboundPstnNumberTranslationRules - - - - Fqdn - - - - SipSignalingPort - - - - FailoverTimeSeconds - - - - ForwardCallHistory - - - - ForwardPai - - - - SendSipOptions - - - - MaxConcurrentSessions - - - - Enabled - - - - MediaBypass - - - - GatewaySiteId - - - - GatewaySiteLbrEnabled - - - - GatewayLbrEnabledUserOverride - - - - FailoverResponseCodes - - - - PidfLoSupported - - - - MediaRelayRoutingLocationOverride - - - - ProxySbc - - - - BypassMode - - - - Description - - - - IPAddressVersion - - - - - - - - DeserializedPstnTranslationRuleView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AzurePSTNTrunkConfiguration.PstnTranslationRule - - - - - - - - Name - - - - Description - - - - Pattern - - - - Translation - - - - - - - - DeserializedPstnTranslationRuleView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AzurePSTNTrunkConfiguration.PstnTranslationRule#Decorated - - - - - - - - Identity - - - - Name - - - - Description - - - - Pattern - - - - Translation - - - - - - - - DeserializedBackupServiceConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BackupService.BackupServiceConfiguration - - - - - - - - Identity - - - - SyncInterval - - - - MaxConcurrentCalls - - - - AuthorizedUniversalGroups - - - - AuthorizedLocalAccounts - - - - MaxBatchesPerCmsSync - - - - MaxBatchesPerUserStoreSync - - - - MaxDataConfPackageSizeKB - - - - MaxHighPriQueuePercentagePerUserStoreSync - - - - CmsMaintenanceInterval - - - - - - - - DeserializedBandwidthPolicyServiceConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BandwidthPolicyServiceConfiguration.BandwidthPolicyServiceConfiguration - - - - - - - - Identity - - - - MaxTokenLifetime - - - - LogCleanUpInterval - - - - MaxLogFileSizeMb - - - - EnableLogging - - - - - - - - DeserializedBIConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BIConfiguration.BIConfiguration - - - - - - - - Identity - - - - EnableBI - - - - CosmosVirtualClusterPath - - - - KeepCosmosSummaryDataForDays - - - - KeepCosmosRawDataForDays - - - - CosmosCredentialUserName - - - - CosmosCredentialPassword - - - - PrimaryCosmosCredentialUserName - - - - PrimaryCosmosCredentialPassword - - - - SecondaryCosmosCredentialUserName - - - - SecondaryCosmosCredentialPassword - - - - SyncIntervalInSeconds - - - - EnableFlag - - - - PrimaryCosmosCredentialExpirationDate - - - - SecondaryCosmosCredentialExpirationDate - - - - - - - - DeserializedAzureConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BRB.AzureConfiguration - - - - - - - - Identity - - - - AzureStorageAccountName - - - - AzureStorageAccountKey - - - - AzureStorageAccountKeyNew - - - - TMXStorageAccountName - - - - TMXStorageAccountKey - - - - TMXStorageAccountKeyNew - - - - SQLStorageSource - - - - SQLStorageDatabase - - - - SQLStorageUserId - - - - AzureSQLStoragePassword - - - - AzureSQLStoragePasswordNew - - - - - - - - DeserializedBusinessVoiceTenantFlightingSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BusinessVoice.BusinessVoiceTenantFlightingSettings - - - - - - - - Identity - - - - DefaultRing - - - - - - - - DeserializedPstnEntitlementSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BusinessVoice.PstnEntitlementSettings - - - - - - - - Identity - - - - Regions - - - - EnableChecks - - - - MaximumTickRequests - - - - SyncInboundCalls - - - - SyncOutboundCalls - - - - - - - - DeserializedPstnEntitlementRegionView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BusinessVoice.PstnEntitlementRegion - - - - - - - - Region - - - - EnableChecks - - - - Url - - - - - - - - DeserializedBusinessVoiceFeatureConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BusinessVoice.BusinessVoiceFeatureConfiguration - - - - - - - - Identity - - - - EnableAnnouncements - - - - EnableCarrierProfileFlighting - - - - EnableMedSrvRingBasedRouting - - - - EnableRingBasedBVRouting - - - - EnableCallerIdFlighting - - - - DefaultMediationServerRing - - - - EnableDiagCodesWhitelistForAnsServiceSupport - - - - DiagCodesForAnsService - - - - EnableTenantDialPlans - - - - EnableAcmsReadForTranslationService - - - - OverrideDefaultProfile - - - - EnableEcsFlighting - - - - EnableSmartRetry - - - - - - - - DeserializedBusinessVoiceCarrierProfileView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BusinessVoice.BusinessVoiceCarrierProfile - - - - - - - - RingRules - - - - Provider - - - - ProviderGuid - - - - DefaultPstnUsage - - - - - - - - DeserializedBusinessVoiceCarrierProfileView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BusinessVoice.BusinessVoiceCarrierProfile#Decorated - - - - - - - - Identity - - - - RingRules - - - - Provider - - - - ProviderGuid - - - - DefaultPstnUsage - - - - - - - - DeserializedBusinessVoiceCarrierProfileRingRuleView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BusinessVoice.BusinessVoiceCarrierProfileRingRule - - - - - - - - Ring - - - - CallType - - - - PstnUsage - - - - - - - - DeserializedBusinessVoiceCarrierProfileConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BusinessVoice.BusinessVoiceCarrierProfileConfiguration - - - - - - - - Identity - - - - BusinessVoiceCarrierProfile - - - - - - - - DeserializedCdrSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CallDetailRecording.CdrSettings - - - - - - - - Identity - - - - EnableCDR - - - - EnableUdcLite - - - - EnablePurging - - - - KeepCallDetailForDays - - - - KeepErrorReportForDays - - - - PurgeHourOfDay - - - - - - - - DeserializedCallParkServiceSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CallParkServiceSettings.CallParkServiceSettings - - - - - - - - Identity - - - - OnTimeoutURI - - - - MaxCallPickupAttempts - - - - CallPickupTimeoutThreshold - - - - EnableMusicOnHold - - - - - - - - DeserializedCentralizedLoggingConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLoggingConfig.CentralizedLoggingConfiguration - - - - - - - - Identity - - - - Scenarios - - - - SearchTerms - - - - SecurityGroups - - - - Regions - - - - EtlModeEnabled - - - - EtlFileFolder - - - - EtlFileRolloverSizeMB - - - - EtlFileRolloverMinutes - - - - ZipEtlEnabled - - - - LocalSearchMode - - - - EtlNtfsCompressionEnabled - - - - TmfFileSearchPath - - - - CacheFileLocalFolders - - - - CacheFileNetworkFolder - - - - CacheFileLocalRetentionPeriod - - - - CacheFileLocalMaxDiskUsage - - - - ComponentThrottleLimit - - - - ComponentThrottleSample - - - - MinimumClsAgentServiceVersion - - - - NetworkUsagePacketSize - - - - NetworkUsageThreshold - - - - Version - - - - InsertTypesForSubstringMatch - - - - ETLMinFreeSpaceInDiskInBytes - - - - ETLEnoughFreeSpaceInDiskInBytes - - - - ETLMaxQuotaInBytes - - - - ETLEnoughQuotaInBytes - - - - EtlMaxRetentionInDays - - - - EtlModeRevision - - - - ETLMinQuotaInBytes - - - - LocalSearchModeRevision - - - - - - - - DeserializedScenarioView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLoggingConfig.Scenario - - - - - - - - Provider - - - - Name - - - - - - - - DeserializedScenarioView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLoggingConfig.Scenario#Decorated - - - - - - - - Identity - - - - Provider - - - - Name - - - - - - - - DeserializedProviderView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLoggingConfig.Provider - - - - - - - - Name - - - - Type - - - - Level - - - - Flags - - - - Guid - - - - Role - - - - - - - - DeserializedSearchTermView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLoggingConfig.SearchTerm - - - - - - - - Type - - - - Inserts - - - - - - - - DeserializedSearchTermView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLoggingConfig.SearchTerm#Decorated - - - - - - - - Identity - - - - Type - - - - Inserts - - - - - - - - DeserializedSecurityGroupView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLoggingConfig.SecurityGroup - - - - - - - - Name - - - - AccessLevel - - - - - - - - DeserializedSecurityGroupView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLoggingConfig.SecurityGroup#Decorated - - - - - - - - Identity - - - - Name - - - - AccessLevel - - - - - - - - DeserializedRegionView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLoggingConfig.Region - - - - - - - - Name - - - - SecurityGroupSuffix - - - - Sites - - - - OtherRegionAccess - - - - - - - - DeserializedRegionView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLoggingConfig.Region#Decorated - - - - - - - - Identity - - - - Name - - - - SecurityGroupSuffix - - - - Sites - - - - OtherRegionAccess - - - - - - - - DeserializedCloudPresenceServiceConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CloudPresenceService.CloudPresenceServiceConfiguration - - - - - - - - Identity - - - - ServiceUri - - - - EnableCloudPresenceForwarding - - - - BatchSize - - - - BatchDelay - - - - MaxRetries - - - - RetryBackoff - - - - - - - - DeserializedCMSConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CMSConfiguration.CMSConfiguration - - - - - - - - Identity - - - - IOFailureAlertThreshold - - - - OutOfDateAlertThreshold - - - - ReplicationSyntheticTransactionInterval - - - - CheckVersionMismatch - - - - QueryConfigChangesMinimumInterval - - - - QueryConfigChangesInterval - - - - UpdateReplicaStatusTimeout - - - - EnableReplicationSynchronization - - - - EnableUpdateIsActiveFlag - - - - EnableServiceConsumerMdsLogging - - - - EnableAcmsReaderMdsLogging - - - - EnableAcmsToCmsMncTenantSync - - - - AcmsToCmsMncTenantSyncInterval - - - - UseAcmsOnlyForRegistrarConfig - - - - MaxConsecutiveAcmsToCmsMncSyncTransientFailures - - - - AcmsClientHttpClientTimeout - - - - CleanupOrphanedDocsTaskIntervalInSecs - - - - CleanupOrphanedDocsTaskRetryCount - - - - CleanupOrphanedDocsTaskRetryIntervalInSecs - - - - ConcurrentHttpConnectionLimit - - - - MaximumReplicationBatchSize - - - - - - - - DeserializedCMSReplicationSyntheticTransactionView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CMSReplicationSyntheticTransaction.CMSReplicationSyntheticTransaction - - - - - - - - Identity - - - - TimeStamp - - - - - - - - DeserializedConferencingGatewayConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ConferencingGatewayConfiguration.ConferencingGatewayConfiguration - - - - - - - - Identity - - - - ConferencingGatewayEndpoint - - - - EnableAudioVideoToConferencingGateway - - - - - - - - DeserializedConversationHistorySettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ConversationHistory.ConversationHistorySettings - - - - - - - - Identity - - - - EnableServerConversationHistory - - - - MaxContinuedConversationRetry - - - - EnableDisplayNameResolution - - - - - - - - DeserializedDeploymentConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.DeploymentConfiguration.DeploymentConfiguration - - - - - - - - Identity - - - - DeploymentType - - - - - - - - DeserializedDeviceUpdateConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.DeviceUpdate.DeviceUpdateConfiguration - - - - - - - - Identity - - - - ValidLogFileTypes - - - - ValidLogFileExtensions - - - - MaxLogFileSize - - - - MaxLogCacheLimit - - - - LogCleanUpInterval - - - - LogFlushInterval - - - - LogCleanUpTimeOfDay - - - - - - - - DeserializedRuleView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.DeviceUpdate.Rule - - - - - - - - Id - - - - DeviceType - - - - Brand - - - - Model - - - - Revision - - - - Locale - - - - UpdateType - - - - ApprovedVersion - - - - RestoreVersion - - - - PendingVersion - - - - - - - - DeserializedRuleView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.DeviceUpdate.Rule#Decorated - - - - - - - - Identity - - - - Id - - - - DeviceType - - - - Brand - - - - Model - - - - Revision - - - - Locale - - - - UpdateType - - - - ApprovedVersion - - - - RestoreVersion - - - - PendingVersion - - - - - - - - DeserializedDeviceView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.DeviceUpdate.Device - - - - - - - - Name - - - - IdentifierType - - - - Identifier - - - - - - - - DeserializedDeviceView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.DeviceUpdate.Device#Decorated - - - - - - - - Identity - - - - Name - - - - IdentifierType - - - - Identifier - - - - - - - - DeserializedDiagnosticFilterSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Diagnostics.DiagnosticFilterSettings - - - - - - - - Identity - - - - Filter - - - - LoggingShare - - - - LogAllSipHeaders - - - - - - - - DeserializedFilterView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Diagnostics.Filter - - - - - - - - Fqdn - - - - Uri - - - - Enabled - - - - ExcludeRegisterMessages - - - - ExcludeConferenceMessages - - - - ExcludePresenceNotifications - - - - ExcludeSubscribeMessages - - - - ExcludeSuccessfulRequests - - - - ExcludeMidDialogRequests - - - - ExcludeTypingNotifications - - - - - - - - DeserializedDiagnosticHeaderSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Diagnostics.DiagnosticHeaderSettings - - - - - - - - Identity - - - - SendToOutsideUnauthenticatedUsers - - - - SendToExternalNetworks - - - - SendToExternalNetworksOnServiceEdge - - - - - - - - DeserializedDialInConferencingDtmfConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.DialInConferencingSettings.DialInConferencingDtmfConfiguration - - - - - - - - Identity - - - - CommandCharacter - - - - MuteUnmuteCommand - - - - AudienceMuteCommand - - - - LockUnlockConferenceCommand - - - - HelpCommand - - - - PrivateRollCallCommand - - - - EnableDisableAnnouncementsCommand - - - - AdmitAll - - - - OperatorLineUri - - - - - - - - DeserializedDialInConferencingConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.DialInConferencingSettings.DialInConferencingConfiguration - - - - - - - - Identity - - - - EntryExitAnnouncementsType - - - - BatchToneAnnouncements - - - - EnableNameRecording - - - - EntryExitAnnouncementsEnabledByDefault - - - - PinAuthType - - - - EnableAccessibilityOptions - - - - - - - - DeserializedDialInConferencingLanguageListView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.DialInConferencingSettings.DialInConferencingLanguageList - - - - - - - - Identity - - - - Languages - - - - - - - - DeserializedTenantFederationSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.TenantFederationSettings - - - - - - - - Identity - - - - AllowedDomains - - - - BlockedDomains - - - - AllowedTrialTenantDomains - - - - AllowFederatedUsers - - - - AllowPublicUsers - - - - AllowTeamsConsumer - - - - AllowTeamsConsumerInbound - - - - TreatDiscoveredPartnersAsUnverified - - - - SharedSipAddressSpace - - - - RestrictTeamsConsumerToExternalUserProfiles - - - - BlockAllSubdomains - - - - ExternalAccessWithTrialTenants - - - - CustomizeFederation - - - - - - - - DeserializedAllowedDomainsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AllowedDomains - - - - - - - - AllowedDomainsChoice - - - - - - - - DeserializedAllowListView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AllowList - - - - - - - - AllowedDomain - - - - - - - - DeserializedDomainPatternView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DomainPattern - - - - - - - - Domain - - - - - - - - DeserializedAllowedDomainView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AllowedDomain - - - - - - - - Domain - - - - ProxyFqdn - - - - VerificationLevel - - - - Comment - - - - MarkForMonitoring - - - - - - - - DeserializedAllowedDomainView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AllowedDomain#Decorated - - - - - - - - Identity - - - - Domain - - - - ProxyFqdn - - - - VerificationLevel - - - - Comment - - - - MarkForMonitoring - - - - - - - - DeserializedBlockedDomainView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.BlockedDomain - - - - - - - - Domain - - - - Comment - - - - - - - - DeserializedBlockedDomainView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.BlockedDomain#Decorated - - - - - - - - Identity - - - - Domain - - - - Comment - - - - - - - - DeserializedAdditionalInternalDomainView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AdditionalInternalDomain - - - - - - - - Domain - - - - - - - - DeserializedAdditionalInternalDomainView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AdditionalInternalDomain#Decorated - - - - - - - - Identity - - - - Domain - - - - - - - - DeserializedMediaRelaySettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.MediaRelaySettings - - - - - - - - Identity - - - - MaxTokenLifetime - - - - MaxBandwidthPerUserKb - - - - MaxBandwidthPerPortKb - - - - PermissionListIgnoreSeconds - - - - - - - - DeserializedEmailConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Email.EmailConfiguration - - - - - - - - Identity - - - - EmailAccountName - - - - EmailAccountPassword - - - - EmailAccountDomain - - - - - - - - DeserializedEventServiceSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.EventServiceSettings.EventServiceSettings - - - - - - - - Identity - - - - EnableRemoteEventChannelService - - - - EventChannelServiceUrl - - - - EventChannelAudienceUrl - - - - - - - - DeserializedVoicemailReroutingConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ExumRouting.VoicemailReroutingConfiguration - - - - - - - - Identity - - - - Enabled - - - - AutoAttendantNumber - - - - SubscriberAccessNumber - - - - - - - - DeserializedFIPSConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.FIPSConfiguration.FIPSConfiguration - - - - - - - - Identity - - - - RequireFIPSCompliantMedia - - - - - - - - DeserializedFlightConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.FlightConfiguration.FlightConfiguration - - - - - - - - Identity - - - - FlightDefinitions - - - - - - - - DeserializedFlightDefinitionView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.FlightConfiguration.FlightDefinition - - - - - - - - Cmdlet - - - - Name - - - - - - - - DeserializedFlightDefinitionView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.FlightConfiguration.FlightDefinition#Decorated - - - - - - - - Identity - - - - Priority - - - - Cmdlet - - - - Name - - - - - - - - DeserializedFlightingUserConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.FlightingUserConfiguration.FlightingUserConfiguration - - - - - - - - Identity - - - - Tenant1PercentList - - - - Tenant5PercentList - - - - Tenant10PercentList - - - - Tenant15PercentList - - - - Tenant20PercentList - - - - Tenant25PercentList - - - - Tenant30PercentList - - - - Tenant35PercentList - - - - Tenant40PercentList - - - - Tenant45PercentList - - - - Tenant50PercentList - - - - Tenant55PercentList - - - - Tenant60PercentList - - - - Tenant65PercentList - - - - Tenant70PercentList - - - - Tenant75PercentList - - - - Tenant80PercentList - - - - Tenant85PercentList - - - - Tenant90PercentList - - - - Tenant95PercentList - - - - UserAllowlist - - - - TenantAllowlist - - - - TenantDenylist - - - - - - - - DeserializedGraphApiConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.GraphApiConfiguration.GraphApiConfiguration - - - - - - - - Identity - - - - LoginUri - - - - GraphUri - - - - ClientId - - - - GraphLookupEnabled - - - - GraphReadWriteEnabled - - - - AdminAuthGraphEnabled - - - - TenantRemotePowershellClientId - - - - TestToken - - - - - - - - DeserializedGraphSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Graph.GraphSettings - - - - - - - - Identity - - - - EnableMeetingsGraph - - - - StorageServiceUrl - - - - DisableEmbeddedDocChat - - - - EnableFileAttachmentsFromCalendar - - - - FileAttachmentExtensionsBlacklist - - - - EnableInlineFileAttachmentsFromCalendar - - - - InlineFileAttachmentExtensionsBlacklist - - - - EnableReferenceAttachmentsFromCalendar - - - - ReferenceAttachmentExtensionsBlacklist - - - - EnableInlineReferenceAttachmentsFromCalendar - - - - InlineReferenceAttachmentExtensionsBlacklist - - - - AriaTenantToken - - - - EcsAgentName - - - - EcsInProduction - - - - EcsRefreshIntervalInMinutes - - - - - - - - DeserializedHealthAgentConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HealthAgentConfiguration.HealthAgentConfiguration - - - - - - - - Identity - - - - EnableCosmosUpload - - - - HLBListenerPort - - - - ForceHLBPortOpen - - - - - - - - DeserializedRegistrarView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HealthMonitoring.Registrar - - - - - - - - FirstTestUserSipUri - - - - FirstTestSamAccountName - - - - SecondTestUserSipUri - - - - SecondTestSamAccountName - - - - TargetFqdn - - - - - - - - DeserializedRegistrarView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HealthMonitoring.Registrar#Decorated - - - - - - - - Identity - - - - FirstTestUserSipUri - - - - FirstTestSamAccountName - - - - SecondTestUserSipUri - - - - SecondTestSamAccountName - - - - TargetFqdn - - - - - - - - DeserializedHostedUserMigrationConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HostedUserMigration.HostedUserMigrationConfiguration - - - - - - - - Identity - - - - AuthorizedTenantWellKnownGroups - - - - MaxSessionsInTotal - - - - MaxSessionsPerTenant - - - - SessionTimeoutInSecond - - - - PublishRoutingGroupDocumentInterval - - - - AuthorizedAdminCacheExpirationMinutes - - - - MigrateConfTableFromOnPremToOnline - - - - MigrateConfTableFromOnlineToOnPrem - - - - ClearPstnLocalId - - - - EnableMeetingMigration - - - - EnableSfbToTeamsMeetingMigration - - - - TeamsContactsEndpoint - - - - TeamsContactsAudience - - - - IsEcsProdEnvironment - - - - EnableMMSServiceInHMS - - - - EcsEnvironment - - - - - - - - DeserializedHuntGroupConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HuntGroupConfiguration.HuntGroupConfiguration - - - - - - - - Identity - - - - ApplicationId - - - - DefaultMusicOnHoldId - - - - CallbackUri - - - - DistributionListExpansionUri - - - - ClientAudience - - - - LineUriValidationRules - - - - MaxNumberOfHuntGroupsPerTenant - - - - - - - - DeserializedTenantHybridConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HybridConfiguration.TenantHybridConfiguration - - - - - - - - Identity - - - - HybridPSTNSites - - - - HybridPSTNAppliances - - - - TenantUpdateTimeWindows - - - - PeerDestination - - - - HybridConfigServiceInternalUrl - - - - HybridConfigServiceExternalUrl - - - - UseOnPremDialPlan - - - - - - - - DeserializedHybridPSTNSiteView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HybridConfiguration.HybridPSTNSite - - - - - - - - Index - - - - Name - - - - EdgeFQDN - - - - EnableAutoUpdate - - - - LastTopologyUpdateTime - - - - BitsUpdateTimeWindowList - - - - OsUpdateTimeWindowList - - - - - - - - DeserializedHybridPSTNSiteView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HybridConfiguration.HybridPSTNSite#Decorated - - - - - - - - Identity - - - - Index - - - - Name - - - - EdgeFQDN - - - - EnableAutoUpdate - - - - LastTopologyUpdateTime - - - - BitsUpdateTimeWindowList - - - - OsUpdateTimeWindowList - - - - - - - - DeserializedHybridPSTNApplianceView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HybridConfiguration.HybridPSTNAppliance - - - - - - - - Identity - - - - Name - - - - SiteIndex - - - - MediationServerIPAddress - - - - MediationServerFqdn - - - - MediationServerGruu - - - - MaintenanceMode - - - - ConfigurationReplicatedOn - - - - ConfigurationSnapshot - - - - ConfigurationSnapshotUpdatedOn - - - - RegistrationStatus - - - - RegistrationAction - - - - RunningVersion - - - - RunningStatus - - - - RunningError - - - - OsUpdatedOn - - - - DeployedOn - - - - StatusUpdatedOn - - - - DeploymentVersion - - - - DeploymentStatus - - - - DeploymentError - - - - DeploymentStartTime - - - - OsUpdateStatus - - - - OsUpdateError - - - - OsUpdateStartTime - - - - - - - - DeserializedHybridPSTNApplianceView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HybridConfiguration.HybridPSTNAppliance#Decorated - - - - - - - - Identity - - - - Identity - - - - Name - - - - SiteIndex - - - - MediationServerIPAddress - - - - MediationServerFqdn - - - - MediationServerGruu - - - - MaintenanceMode - - - - ConfigurationReplicatedOn - - - - ConfigurationSnapshot - - - - ConfigurationSnapshotUpdatedOn - - - - RegistrationStatus - - - - RegistrationAction - - - - RunningVersion - - - - RunningStatus - - - - RunningError - - - - OsUpdatedOn - - - - DeployedOn - - - - StatusUpdatedOn - - - - DeploymentVersion - - - - DeploymentStatus - - - - DeploymentError - - - - DeploymentStartTime - - - - OsUpdateStatus - - - - OsUpdateError - - - - OsUpdateStartTime - - - - - - - - DeserializedTenantUpdateTimeWindowView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HybridConfiguration.TenantUpdateTimeWindow - - - - - - - - Name - - - - Type - - - - StartTime - - - - Duration - - - - DayOfMonth - - - - WeeksOfMonth - - - - DaysOfWeek - - - - - - - - DeserializedTenantUpdateTimeWindowView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HybridConfiguration.TenantUpdateTimeWindow#Decorated - - - - - - - - Identity - - - - Name - - - - Type - - - - StartTime - - - - Duration - - - - DayOfMonth - - - - WeeksOfMonth - - - - DaysOfWeek - - - - - - - - DeserializedIfxLogSipMessageView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.IfxLogSipMessage.IfxLogSipMessage - - - - - - - - Identity - - - - Enable - - - - MethodFilter - - - - ResponseCodeFilter - - - - EnableInboundMessages - - - - EnableOutboundMessages - - - - EnableSipRequests - - - - EnableSipResponses - - - - IgnorePollingSubscribe - - - - Office365HashCertFingerprint - - - - - - - - DeserializedImConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Im.ImConfiguration - - - - - - - - Identity - - - - EnableOfflineIm - - - - - - - - DeserializedImFilterConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ImFilter.ImFilterConfiguration - - - - - - - - Identity - - - - Prefixes - - - - AllowMessage - - - - WarnMessage - - - - Enabled - - - - IgnoreLocal - - - - BlockFileExtension - - - - Action - - - - - - - - DeserializedFileTransferFilterConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ImFilter.FileTransferFilterConfiguration - - - - - - - - Identity - - - - Extensions - - - - Enabled - - - - Action - - - - - - - - DeserializedImTranslationConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ImTranslation.ImTranslationConfiguration - - - - - - - - Identity - - - - TranslationType - - - - ClientId - - - - ClientSecret - - - - AccessTokenUri - - - - ServiceUri - - - - ApplicationId - - - - - - - - DeserializedKerberosAccountAssignmentView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.KerberosAccount.KerberosAccountAssignment - - - - - - - - Identity - - - - UserAccount - - - - - - - - DeserializedLegalInterceptServiceConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.LegalInterceptService.LegalInterceptServiceConfiguration - - - - - - - - Identity - - - - RunInterval - - - - MaxQueueItemSize - - - - MaxADRetrieveCount - - - - QueryStartTimeSpan - - - - SMTPServer - - - - SMTPServerPort - - - - EmailFrom - - - - EndSessionDetectTimeSpan - - - - EnableLegalIntercept - - - - RetryCount - - - - - - - - DeserializedLogRetentionServiceConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.LogRetentionService.LogRetentionServiceConfiguration - - - - - - - - Identity - - - - RetryInterval - - - - RunInterval - - - - MaxQueueItemSize - - - - QueryStartTimeSpan - - - - LogRetentionDiscoveryUrl - - - - WebProxy - - - - ReceiveTimeout - - - - SendTimeout - - - - MaxReceivedMessageByte - - - - MaxBufferPoolByte - - - - MaxStringContentByte - - - - MaxADRetrieveCount - - - - - - - - DeserializedManagementConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Management.ManagementConfiguration - - - - - - - - Identity - - - - Office365DomainSuffixes - - - - MaxConnectionCountPerServer - - - - MaxConnectionCountPerUser - - - - RbacCacheRefreshInterval - - - - ControlPanelMaxConnectionCountPerServer - - - - ControlPanelMaxRunspaceCountPerUser - - - - ControlPanelRunspaceIdleTimeout - - - - ControlPanelClientPoolSize - - - - ControlPanelWebProxy - - - - ControlPanelFooterTextResourcePrefix - - - - ControlPanelFooterLinkResourcePrefix - - - - ControlPanelHelpLinkNamespace - - - - MsoShellServiceUrl - - - - FeedbackEndPointUrl - - - - FenixUrl - - - - TelephoneNumberProviderUrl - - - - SkypeInternationalVoicePolicyName - - - - RebrandDate - - - - PicServiceEnabled - - - - TenantGroupMapping - - - - IsAriaEnabled - - - - UspTelemetryEnv - - - - AriaToken - - - - AppInsightKey - - - - GeographyClientEndPointUrl - - - - - - - - DeserializedMcxConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.McxConfiguration.McxConfiguration - - - - - - - - Identity - - - - SessionExpirationInterval - - - - SessionShortExpirationInterval - - - - ExposedWebURL - - - - PushNotificationProxyUri - - - - - - - - DeserializedMdmLogSipMessageView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.MdmLogSipMessage.MdmLogSipMessage - - - - - - - - Identity - - - - Enable - - - - MethodFilter - - - - ResponseCodeFilter - - - - EnableInboundMessages - - - - EnableOutboundMessages - - - - EnableSipRequests - - - - EnableSipResponses - - - - IgnorePollingSubscribe - - - - - - - - DeserializedMdmRtcSrvView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.MdmRtcSrv.MdmRtcSrv - - - - - - - - Identity - - - - Enable - - - - Account - - - - Namespace - - - - - - - - DeserializedMediaSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Media.MediaSettings - - - - - - - - Identity - - - - EnableQoS - - - - EncryptionLevel - - - - EnableSiren - - - - MaxVideoRateAllowed - - - - EnableH264StdCodec - - - - EnableInCallQoS - - - - InCallQoSIntervalSeconds - - - - EnableRtpRtcpMultiplexing - - - - EnableVideoBasedSharing - - - - WaitIceCompletedToAddDialOutUser - - - - EnableDtls - - - - EnableRtx - - - - EnableSilkForAudioVideoConferences - - - - EnableAVBundling - - - - EnableServerFecForVideoInterop - - - - EnableReceiveAgc - - - - EnableDelayStartAudioReceiveStream - - - - - - - - DeserializedMeetingContentSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.MeetingContent.MeetingContentSettings - - - - - - - - Identity - - - - MaxContentStorageMb - - - - MaxUploadFileSizeMb - - - - ContentGracePeriod - - - - - - - - DeserializedMeetingMigrationConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.MeetingMigration.MeetingMigrationConfiguration - - - - - - - - Identity - - - - TaskInterval - - - - MeetingMigrationEnabled - - - - AllowedObjects - - - - AzureQueueServiceEndpointUrl - - - - EnqueueEnabled - - - - UserRetryLimit - - - - PlatformServiceAudienceUri - - - - SchedulingServiceAudienceUri - - - - PlatformServiceTokenIssuerUrl - - - - PlatformServiceClientId - - - - PlatformServiceDiscoverUrl - - - - SchedulingServiceMeetingUrl - - - - BackupCoordinateCollectorEnabled - - - - MmsDisabledFeatureList - - - - PlatformServicePayloadWithExpirationTime - - - - ExchangeOnlineUsersOnly - - - - DirectCallToSchedulingServiceEnabled - - - - MaximumNumberOfExtraThreads - - - - QueueSizeTriggerExtraThread - - - - EnabledFqdns - - - - ACPMeetingMigrationTriggerEnabled - - - - MmsSourceMeetingTypes - - - - MmsTargetMeetingTypes - - - - TeamsMeetingUserPolicyUrl - - - - SchedulingServiceTeamsMeetingUrl - - - - IsEcsProdEnvironment - - - - EcsEnvironment - - - - - - - - DeserializedMeetingPoolConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.MeetingPool.MeetingPoolConfiguration - - - - - - - - Identity - - - - TenantId - - - - ConsistentBotUserStartIndex - - - - ConsistentBotUserEndIndex - - - - ConsistentBotUserEnabledPoolPrefixes - - - - ConsistentBotUserPrefix - - - - ConsistentBotUserDomain - - - - PoolState - - - - - - - - DeserializedNetworkConfigurationSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.NetworkConfigurationSettings - - - - - - - - Identity - - - - MediaBypassSettings - - - - BWPolicyProfiles - - - - NetworkRegions - - - - NetworkRegionLinks - - - - InterNetworkRegionRoutes - - - - NetworkSites - - - - InterNetworkSitePolicies - - - - Subnets - - - - EnableBandwidthPolicyCheck - - - - - - - - DeserializedMediaBypassSettingsTypeView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.MediaBypassSettingsType - - - - - - - - Enabled - - - - InternalBypassMode - - - - ExternalBypassMode - - - - AlwaysBypass - - - - BypassID - - - - EnabledForAudioVideoConferences - - - - - - - - DeserializedBWPolicyProfileTypeView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.BWPolicyProfileType - - - - - - - - BWPolicy - - - - BWPolicyProfileID - - - - Description - - - - - - - - DeserializedBWPolicyProfileTypeView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.BWPolicyProfileType#Decorated - - - - - - - - Identity - - - - BWPolicy - - - - BWPolicyProfileID - - - - Description - - - - - - - - DeserializedBWPolicyTypeView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.BWPolicyType - - - - - - - - BWLimit - - - - BWSessionLimit - - - - BWPolicyModality - - - - - - - - DeserializedNetworkRegionTypeView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.NetworkRegionType - - - - - - - - Description - - - - BypassID - - - - CentralSite - - - - BWAlternatePaths - - - - NetworkRegionID - - - - - - - - DeserializedNetworkRegionTypeView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.NetworkRegionType#Decorated - - - - - - - - Identity - - - - Description - - - - BypassID - - - - CentralSite - - - - BWAlternatePaths - - - - NetworkRegionID - - - - - - - - DeserializedBWAlternatePathTypeView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.BWAlternatePathType - - - - - - - - BWPolicyModality - - - - AlternatePath - - - - - - - - DeserializedNetworkRegionLinkTypeView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.NetworkRegionLinkType - - - - - - - - BWPolicyProfileID - - - - NetworkRegionLinkID - - - - NetworkRegionID1 - - - - NetworkRegionID2 - - - - - - - - DeserializedNetworkRegionLinkTypeView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.NetworkRegionLinkType#Decorated - - - - - - - - Identity - - - - BWPolicyProfileID - - - - NetworkRegionLinkID - - - - NetworkRegionID1 - - - - NetworkRegionID2 - - - - - - - - DeserializedInterNetworkRegionRouteTypeView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.InterNetworkRegionRouteType - - - - - - - - NetworkRegionLinks - - - - InterNetworkRegionRouteID - - - - NetworkRegionID1 - - - - NetworkRegionID2 - - - - - - - - DeserializedInterNetworkRegionRouteTypeView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.InterNetworkRegionRouteType#Decorated - - - - - - - - Identity - - - - NetworkRegionLinks - - - - InterNetworkRegionRouteID - - - - NetworkRegionID1 - - - - NetworkRegionID2 - - - - - - - - DeserializedNetworkSiteTypeView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.NetworkSiteType - - - - - - - - Description - - - - NetworkRegionID - - - - BypassID - - - - BWPolicyProfileID - - - - LocationPolicyTagID - - - - NetworkSiteID - - - - VoiceRoutingPolicyTagID - - - - EnableLocationBasedRouting - - - - - - - - DeserializedNetworkSiteTypeView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.NetworkSiteType#Decorated - - - - - - - - Identity - - - - Description - - - - NetworkRegionID - - - - BypassID - - - - BWPolicyProfileID - - - - LocationPolicyTagID - - - - NetworkSiteID - - - - VoiceRoutingPolicyTagID - - - - EnableLocationBasedRouting - - - - - - - - DeserializedInterNetworkSitePolicyTypeView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.InterNetworkSitePolicyType - - - - - - - - BWPolicyProfileID - - - - InterNetworkSitePolicyID - - - - NetworkSiteID1 - - - - NetworkSiteID2 - - - - - - - - DeserializedInterNetworkSitePolicyTypeView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.InterNetworkSitePolicyType#Decorated - - - - - - - - Identity - - - - BWPolicyProfileID - - - - InterNetworkSitePolicyID - - - - NetworkSiteID1 - - - - NetworkSiteID2 - - - - - - - - DeserializedSubnetTypeView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.SubnetType - - - - - - - - MaskBits - - - - Description - - - - NetworkSiteID - - - - SubnetID - - - - - - - - DeserializedSubnetTypeView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.SubnetType#Decorated - - - - - - - - Identity - - - - MaskBits - - - - Description - - - - NetworkSiteID - - - - SubnetID - - - - - - - - DeserializedOnlineDialinPageConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialinPageConfiguration - - - - - - - - Identity - - - - MaximumConcurrentBvdGetSipResourceRequests - - - - MaximumConcurrentBvdGetBridgeRequests - - - - EnablePinServicesUserLookup - - - - EnableRedirectToAzureDialinPage - - - - AzureDialinPageUrl - - - - - - - - DeserializedOnlineDialinConferencingTenantConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialinConferencingTenantConfiguration - - - - - - - - Identity - - - - Status - - - - EnableCustomTrunking - - - - ThirdPartyNumberStatus - - - - - - - - DeserializedSharedResourcesConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.SharedResourcesConfiguration - - - - - - - - Identity - - - - SupportedRings - - - - TelephoneNumberManagementV2ServiceUrl - - - - TenantAdminApiServiceUrl - - - - BusinessVoiceDirectoryUrl - - - - TgsServiceUrl - - - - AgentProvisioningServiceUrl - - - - SipDomain - - - - ProxyFqdn - - - - EmailServiceUrl - - - - MicrosoftEmailServiceUrl - - - - MicrosoftAuthenticationUrl - - - - EmailFlightPercentage - - - - DialOutInformationLink - - - - MediaStorageServiceUrl - - - - GlobalMediaStorageServiceUrl - - - - MediaStorageServiceRegion - - - - TelephoneNumberManagementServiceUrl - - - - NameDictionaryServiceUrl - - - - OrganizationalAutoAttendantAdminServiceUrl - - - - IsEcsProdEnvironment - - - - DialinBridgeFormatEnabled - - - - ApplicationConfigurationServiceUrl - - - - RecognizeServiceEndpointUrl - - - - RecognizeServiceAadResourceUrl - - - - AuthorityUrl - - - - ConferenceAutoAttendantApplicationId - - - - SchedulerMaxBvdConcurrentCalls - - - - - - - - DeserializedOnlineDialinConferencingServiceConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialinConferencingServiceConfiguration - - - - - - - - Identity - - - - AnonymousCallerGracePeriod - - - - AnonymousCallerMeetingRuntime - - - - AuthenticatedCallerMeetingRuntime - - - - - - - - DeserializedOnlineDialInConferencingNumberMapView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialInConferencingNumberMap - - - - - - - - Geocodes - - - - Name - - - - Shared - - - - - - - - DeserializedOnlineDialInConferencingNumberMapView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialInConferencingNumberMap#Decorated - - - - - - - - Identity - - - - Priority - - - - Geocodes - - - - Name - - - - Shared - - - - - - - - DeserializedOnlineDialInConferencingMarketProfileView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialInConferencingMarketProfile - - - - - - - - NumberMaps - - - - Name - - - - Code - - - - Region - - - - DefaultBridgeGeocode - - - - - - - - DeserializedOnlineDialInConferencingMarketProfileView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialInConferencingMarketProfile#Decorated - - - - - - - - Identity - - - - Priority - - - - NumberMaps - - - - Name - - - - Code - - - - Region - - - - DefaultBridgeGeocode - - - - - - - - DeserializedOnlineDialinConferencingDefaultLanguageView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialinConferencingDefaultLanguage - - - - - - - - Identity - - - - DefaultLanguages - - - - - - - - DeserializedDefaultLanguageEntryView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.DefaultLanguageEntry - - - - - - - - SecondaryLanguages - - - - Geocode - - - - PrimaryLanguage - - - - - - - - DeserializedOnlineDialInConferencingTenantSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialInConferencingTenantSettings - - - - - - - - Identity - - - - AllowedDialOutExternalDomains - - - - EnableEntryExitNotifications - - - - EntryExitAnnouncementsType - - - - EnableNameRecording - - - - IncludeTollFreeNumberInMeetingInvites - - - - MaskPstnNumbersType - - - - PinLength - - - - AllowPSTNOnlyMeetingsByDefault - - - - AutomaticallySendEmailsToUsers - - - - SendEmailFromOverride - - - - SendEmailFromAddress - - - - SendEmailFromDisplayName - - - - AutomaticallyReplaceAcpProvider - - - - UseUniqueConferenceIds - - - - AutomaticallyMigrateUserMeetings - - - - MigrateServiceNumbersOnCrossForestMove - - - - EnableDialOutJoinConfirmation - - - - AllowFederatedUsersToDialOutToSelf - - - - AllowFederatedUsersToDialOutToThirdParty - - - - - - - - DeserializedOnlineDialInConferencingAllowedDomainView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialInConferencingAllowedDomain - - - - - - - - Domain - - - - - - - - DeserializedOnlineDialInConferencingAllowedDomainView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialInConferencingAllowedDomain#Decorated - - - - - - - - Identity - - - - Domain - - - - - - - - DeserializedSharedLisResourcesConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineLocationInformation.SharedLisResourcesConfiguration - - - - - - - - Identity - - - - LocationInformationServiceUrl - - - - NCSLocationInformationServiceUrl - - - - EnableNCS - - - - EnableNCSforEmergencyDisclaimer - - - - - - - - DeserializedOnlineVoiceCapabilityMappingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineVoiceCapabilityMapConfiguration.OnlineVoiceCapabilityMappings - - - - - - - - SupportedCapabilities - - - - PartnerID - - - - Description - - - - - - - - DeserializedOnlineVoiceCapabilityMappingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineVoiceCapabilityMapConfiguration.OnlineVoiceCapabilityMappings#Decorated - - - - - - - - Identity - - - - SupportedCapabilities - - - - PartnerID - - - - Description - - - - - - - - DeserializedOperationalLogConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OperationalLog.OperationalLogConfiguration - - - - - - - - Identity - - - - Enable - - - - UploadIntervalSeconds - - - - MaximumQueueSize - - - - NumberOfItemsForImmediateDataUpload - - - - AzureOperationalLogServiceEndpointUrl - - - - - - - - DeserializedOrganizationalAutoAttendantConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OrganizationalAutoAttendantConfiguration.OrganizationalAutoAttendantConfiguration - - - - - - - - Identity - - - - ApplicationId - - - - CallbackUrl - - - - MaxOrgAutoAttendantsPerTenant - - - - ClientAudience - - - - FlightedFeatures - - - - AriaTelemetryToken - - - - - - - - DeserializedPersistentChatConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PersistentChat.PersistentChatConfiguration - - - - - - - - Identity - - - - MaxFileSizeKB - - - - ParticipantUpdateLimit - - - - DefaultChatHistory - - - - RoomManagementUrl - - - - - - - - DeserializedPersistentChatComplianceConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PersistentChat.PersistentChatComplianceConfiguration - - - - - - - - Identity - - - - AdapterName - - - - RunInterval - - - - AdapterOutputDirectory - - - - AdapterType - - - - OneChatRoomPerOutputFile - - - - CreateFileAttachmentsManifest - - - - AddUserDetails - - - - AddChatRoomDetails - - - - CustomConfiguration - - - - - - - - DeserializedPersistentChatStateView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PersistentChat.PersistentChatState - - - - - - - - Identity - - - - PoolState - - - - - - - - DeserializedPlatformConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Platform.PlatformConfiguration - - - - - - - - Identity - - - - RingConfigurations - - - - RegionConfigurations - - - - EnableBroadcastFunctionality - - - - SkipRegistrationForMeetingApplication - - - - EnableConversationExtensionFunctionality - - - - PushNotificationBlockedHours - - - - ExchangeSearchEnabled - - - - StorageServiceCreationRetryTimeSpan - - - - AnonApplicationTokenLifeSpan - - - - EnableConsistentBotUserSelectionFunctionality - - - - ConsistentBotUserSelectionMode - - - - ActivationServiceUri - - - - GlobalPlatformUrl - - - - EnableFlightingFunctionality - - - - MaxEventChannelsPerApplication - - - - MaxPendingBatchRequestsPerUser - - - - AllowPlatformAnonToken - - - - EnableCORS - - - - EnableUcwaScopeCheck - - - - MaxRegistrationsPerPublicApplication - - - - MediaPresenceStateExpiration - - - - TrapServiceUrl - - - - - - - - DeserializedRingConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Platform.RingConfiguration - - - - - - - - Name - - - - Url - - - - DeploymentPreference - - - - Region - - - - - - - - DeserializedRegionConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Platform.RegionConfiguration - - - - - - - - Name - - - - Url - - - - ServiceInstanceIds - - - - - - - - DeserializedPlatformApplicationsConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PlatformApplications.PlatformApplicationsConfiguration - - - - - - - - Identity - - - - PublicApplicationList - - - - PublicApplicationListMode - - - - - - - - DeserializedApplicationMeetingConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PlatformApplications.ApplicationMeetingConfiguration - - - - - - - - Identity - - - - AllowRemoveParticipantAppIds - - - - - - - - DeserializedPlatformExceptionSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PlatformExceptionSettings.PlatformExceptionSettings - - - - - - - - Identity - - - - KnownExceptions - - - - - - - - DeserializedKnownExceptionView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PlatformExceptionSettings.KnownException - - - - - - - - Name - - - - Type - - - - MatchText - - - - ExpirationInUtc - - - - - - - - DeserializedKnownExceptionView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PlatformExceptionSettings.KnownException#Decorated - - - - - - - - Identity - - - - Priority - - - - Name - - - - Type - - - - MatchText - - - - ExpirationInUtc - - - - - - - - DeserializedPlatformServiceNGCSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PlatformServiceNGCSettings.PlatformServiceNGCSettings - - - - - - - - Identity - - - - EnableGeneratingTeamsIdentity - - - - RegistrarUrl - - - - ConversationServiceUrl - - - - TrouterUrl - - - - CallControllerUrl - - - - TpcProdUrl - - - - - - - - DeserializedPlatformServiceSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PlatformServiceSettings.PlatformServiceSettings - - - - - - - - Identity - - - - EnablePushNotifications - - - - UseLegacyPushNotifications - - - - EnableE911 - - - - EnableFileTransfer - - - - AllowCallsFromNonContactsInPrivatePrivacyMode - - - - BvdPortalWhitelistedApp - - - - EnablePreDrainingForIncomingCalls - - - - EnableE911RequestXmlEncoding - - - - ContactCardUpdateAfterSignInMs - - - - ContactCardUpdateCheckInSeconds - - - - - - - - DeserializedPlatformThrottlingSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PlatformThrottlingSettings.PlatformThrottlingSettings - - - - - - - - Identity - - - - UcwaThrottlingConfigurations - - - - UcapThrottlingConfigurations - - - - EnableUcwaThrottling - - - - UcwaThrottlingThresholdPercentageForInternal - - - - UcwaThrottlingThresholdPercentageForPublic - - - - EnableUcapThrottling - - - - UcapThrottlingThresholdPercentageForInternal - - - - UcapThrottlingThresholdPercentageForPublic - - - - EnableUcwaThrottlingToExchange - - - - MaxConcurrentUcwaRequestsToExchange - - - - - - - - DeserializedPlatformThrottlingConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PlatformThrottlingSettings.PlatformThrottlingConfiguration - - - - - - - - Name - - - - ThrottlingTargetType - - - - ThrottlingMode - - - - ThrottlingScope - - - - TimeRangeInMinutes - - - - TargetNumber - - - - ExcludedApiNames - - - - IncludedApiNames - - - - OverrideThresholdPercentageForPublic - - - - SkipInBatchRequest - - - - - - - - DeserializedPnchServiceConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PnchServiceConfiguration.PnchServiceConfiguration - - - - - - - - Identity - - - - PnchApplications - - - - ApplePushServiceFQDN - - - - ApplePushServicePort - - - - AppleFeedbackServiceFQDN - - - - AppleFeedbackServicePort - - - - PnhServiceUri - - - - VerboseDiagnostics - - - - EnableGenevaLogging - - - - - - - - DeserializedPnchApplicationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PnchServiceConfiguration.PnchApplication - - - - - - - - Name - - - - Provider - - - - ApplicationId - - - - MaxConnections - - - - Certificate - - - - - - - - DeserializedPnchApplicationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PnchServiceConfiguration.PnchApplication#Decorated - - - - - - - - Identity - - - - Name - - - - Provider - - - - ApplicationId - - - - MaxConnections - - - - Certificate - - - - - - - - DeserializedPnchAllowedDomainView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PnchServiceConfiguration.PnchAllowedDomain - - - - - - - - Domain - - - - Comment - - - - - - - - DeserializedPnchAllowedDomainView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PnchServiceConfiguration.PnchAllowedDomain#Decorated - - - - - - - - Identity - - - - Domain - - - - Comment - - - - - - - - DeserializedPnchBlockedDomainView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PnchServiceConfiguration.PnchBlockedDomain - - - - - - - - Domain - - - - Comment - - - - - - - - DeserializedPnchBlockedDomainView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PnchServiceConfiguration.PnchBlockedDomain#Decorated - - - - - - - - Identity - - - - Domain - - - - Comment - - - - - - - - DeserializedPolicyRestrictionsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PolicyRules.PolicyRestrictions - - - - - - - - Identity - - - - SkuGroups - - - - PolicyRules - - - - - - - - DeserializedSkuGroupView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PolicyRules.SkuGroup - - - - - - - - ServicePlans - - - - SkuName - - - - - - - - DeserializedSkuGroupView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PolicyRules.SkuGroup#Decorated - - - - - - - - Identity - - - - ServicePlans - - - - SkuName - - - - - - - - DeserializedPolicyRuleView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PolicyRules.PolicyRule - - - - - - - - AttributeRules - - - - PolicyName - - - - - - - - DeserializedPolicyRuleView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PolicyRules.PolicyRule#Decorated - - - - - - - - Identity - - - - AttributeRules - - - - PolicyName - - - - - - - - DeserializedAttributeRuleView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PolicyRules.AttributeRule - - - - - - - - SkuRules - - - - CountryRules - - - - AttributeName - - - - - - - - DeserializedSkuRuleView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PolicyRules.SkuRule - - - - - - - - Sku - - - - Permission - - - - Type - - - - Value - - - - - - - - DeserializedCountryRuleView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PolicyRules.CountryRule - - - - - - - - CountryGroup - - - - Permission - - - - Type - - - - Value - - - - - - - - DeserializedPowershellInfraConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PowershellInfraConfiguration.PowershellInfraConfiguration - - - - - - - - Identity - - - - EnableDirectAcmsConnections - - - - EnableAcmsEcsConnections - - - - EcsEnvironment - - - - EnableReadWriteTopologyFromAcms - - - - EnableWriteAuditRecord - - - - EnableDirectWriteRegistrarConfig - - - - EnableEcsCmdletFiltering - - - - UseEcsProdEnvironment - - - - LrosApplicationId - - - - LrosTokenAuthorityUri - - - - LrosEndpointUri - - - - LrosResourceUri - - - - LrosJobStatusTimeOut - - - - - - - - DeserializedProvisionServiceConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ProvisionService.ProvisionServiceConfiguration - - - - - - - - Identity - - - - ServiceInstances - - - - UserServicePools - - - - MsoUrl - - - - PublicProviderUrl - - - - SMPDNSWebserviceUrl - - - - SMPDNSsipdirSRVRecordData - - - - SMPDNSsipCNAMERecordData - - - - SMPDNSsipfedSRVRecordData - - - - SMPDNSwebdirCNAMERecordData - - - - WebProxy - - - - SyncInterval - - - - PublishInterval - - - - PublishRetryInterval - - - - PersistCookieInterval - - - - ThreadNoActivityTimeout - - - - MeetingMigrationThreadNoActivityTimeout - - - - MaxPublishBatchSize - - - - MaxADResultBatchSize - - - - ProvisionInterval - - - - ProvisionRetryInterval - - - - PoolUserRefreshInterval - - - - QueuesPerCPU - - - - PoolThreshold - - - - PrimaryDomainController - - - - SecondaryDomainController - - - - DCReplicaWaitTime - - - - PersistCookieThreshold - - - - SimpleUrlDNSName - - - - TenantMOREADomainSuffix - - - - LegacyTenantMOREADomainSuffix - - - - ReceiveTimeout - - - - SendTimeout - - - - MaxReceivedMessageSize - - - - MaxBufferPoolSize - - - - MaxStringContentLength - - - - ConnectionLimit - - - - ExchangeOnline - - - - RecoverTaskTimeInterval - - - - MaxNumberOfSyncErrorObjects - - - - MaxReSyncErrorObjectsBeforeWarning - - - - IgnorePICProvision - - - - EnableAsyncPICProvision - - - - IgnoreDNSProvision - - - - EnableAsyncDNSProvision - - - - EnableLightWeightSync - - - - DropUserAndFPOInLightWeightSync - - - - LightWeightSyncTenantList - - - - SendMNCTenantToBVD - - - - SendAllTenantsToBVD - - - - SendAllUsersToBVD - - - - DisabledFeatureList - - - - ConfirmedCookieAgeFailureThreshold - - - - ConfirmedCookieAgeWarningThreshold - - - - IntermediateCookieAgeFailureThreshold - - - - MoreFalseCookieAgeFailureThreshold - - - - MoreFalseCookieAgeWarningThreshold - - - - EnableSkypeEntitlement - - - - SkypeEntitlementHost - - - - SkypeEntitlementPort - - - - UnlicensedUserGracePeriod - - - - UnlicensedUserDeletionEnabled - - - - PersistRemotePoolForUsers - - - - PublishLyncAttributesForAllTenants - - - - SyncLatencyCounterThreshold - - - - MaxConcurrentDeleteOperations - - - - EnableBVDProvision - - - - EnableCPCProvision - - - - WriteAcpInfoForCpcUsersInAd - - - - CPCDisabledCountryList - - - - AdminPoolUrl - - - - EnableTenantPoolAssociationTracking - - - - EnableExoPlanProvisioning - - - - EnableEduExoPlanProvisioning - - - - ExoPlanProvisioningTenantList - - - - ExoPlanProvisioningStartDate - - - - TenantDNSCacheTimeout - - - - SyncOnlySkypeEnabledDomains - - - - HostMNCUsersInOtherRegionCoolDownTime - - - - EnableMAForNewTenant - - - - EnableBVDUpdateInMove - - - - SendOnPremHostedUsersToBvd - - - - EnableLastUserSipDomainSearch - - - - EnableTeamsProvisioning - - - - Deployment - - - - TeamsProvisioningTenantList - - - - EnableDNSDualWrite - - - - ApplicationId - - - - AzureSubscriptionId - - - - AzureDNSResourceGroup - - - - AzureDnsTenantId - - - - AzureDnsLoginUrl - - - - AzureDnsManagementCoreApiEndpoint - - - - EnableOnPremDNSDetector - - - - EnableOnPremCPC - - - - EnableECSConfig - - - - IsEcsProdEnvironment - - - - EcsEnvironment - - - - - - - - DeserializedUserServicePoolView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ProvisionService.UserServicePool - - - - - - - - ServiceId - - - - ReservedForLegacyTenant - - - - StandbyMode - - - - - - - - DeserializedPstnEmulatorConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PstnEmulator.PstnEmulatorConfiguration - - - - - - - - Identity - - - - PstnGatewayGruu - - - - EnteringDtmfDelay - - - - CallDuration - - - - IsTLS - - - - CertificateSubjectName - - - - CertificateIssuerName - - - - ListenToQueue - - - - TestMachine - - - - ECSEnabled - - - - - - - - DeserializedPushNotificationConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PushNotificationConfiguration.PushNotificationConfiguration - - - - - - - - Identity - - - - EnableApplePushNotificationService - - - - EnableMicrosoftPushNotificationService - - - - - - - - DeserializedQoESettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.QoE.QoESettings - - - - - - - - Identity - - - - ExternalConsumerIssuedCertId - - - - EnablePurging - - - - KeepQoEDataForDays - - - - PurgeHourOfDay - - - - EnableExternalConsumer - - - - ExternalConsumerName - - - - ExternalConsumerURL - - - - EnableQoE - - - - - - - - DeserializedIssuedCertIdView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.BaseTypes.IssuedCertId - - - - - - - - Issuer - - - - SerialNumber - - - - - - - - DeserializedRecordingServiceConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.RecordingService.RecordingServiceConfiguration - - - - - - - - Identity - - - - - - - - DeserializedRegistrarSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Registrar.RegistrarSettings - - - - - - - - Identity - - - - MinEndpointExpiration - - - - MaxEndpointExpiration - - - - DefaultEndpointExpiration - - - - MaxEndpointsPerUser - - - - EnableDHCPServer - - - - PoolState - - - - BackupStoreUnavailableThreshold - - - - MaxUserCount - - - - UserCertificateReplicationThreshold - - - - ReplicateUserCertsToBackend - - - - EnableWinFabLogUpload - - - - WinFabMaxLogsSizeMb - - - - IPPhoneUserAgents - - - - - - - - DeserializedReportingConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Reporting.ReportingConfiguration - - - - - - - - Identity - - - - ReportingUrl - - - - - - - - DeserializedRoutingInfoDirConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.RoutingInfoDirService.RoutingInfoDirConfiguration - - - - - - - - Identity - - - - MaxSnapshotsToKeep - - - - MaxConcurrentDownloadCount - - - - LocalCacheFolderLocation - - - - NewSnapshotPollingIntervalInSeconds - - - - EnableLocalSnapshotDownloads - - - - UseSnapshots - - - - MaxOutstandingProviderRequests - - - - PositiveInMemoryCacheTimeoutSeconds - - - - NegativeInMemoryCacheTimeoutSeconds - - - - EnableAcmsRead - - - - RemoteTopologyRefreshIntervalSeconds - - - - EnableOnPremUserLookupResult - - - - PercentMemoryForProviderCache - - - - DomainLookupInMemoryCacheRecordCount - - - - TenantLookupInMemoryCacheRecordCount - - - - UserLookupInMemoryCacheRecordCount - - - - PhoneLookupInMemoryCacheRecordCount - - - - - - - - DeserializedOAuthSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SSAuth.OAuthSettings - - - - - - - - Identity - - - - PartnerApplications - - - - OAuthServers - - - - Realm - - - - ServiceName - - - - ClientAuthorizationOAuthServerIdentity - - - - ExchangeAutodiscoverUrl - - - - ExchangeAutodiscoverAllowedDomains - - - - - - - - DeserializedPartnerApplicationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SSAuth.PartnerApplication - - - - - - - - AuthToken - - - - Name - - - - ApplicationIdentifier - - - - Realm - - - - ApplicationTrustLevel - - - - AcceptSecurityIdentifierInformation - - - - Enabled - - - - - - - - DeserializedPartnerApplicationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SSAuth.PartnerApplication#Decorated - - - - - - - - Identity - - - - AuthToken - - - - Name - - - - ApplicationIdentifier - - - - Realm - - - - ApplicationTrustLevel - - - - AcceptSecurityIdentifierInformation - - - - Enabled - - - - - - - - DeserializedOAuthServerView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SSAuth.OAuthServer - - - - - - - - Name - - - - IssuerIdentifier - - - - Realm - - - - MetadataUrl - - - - AuthorizationUriOverride - - - - Type - - - - AcceptSecurityIdentifierInformation - - - - - - - - DeserializedOAuthServerView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SSAuth.OAuthServer#Decorated - - - - - - - - Identity - - - - Name - - - - IssuerIdentifier - - - - Realm - - - - MetadataUrl - - - - AuthorizationUriOverride - - - - Type - - - - AcceptSecurityIdentifierInformation - - - - - - - - DeserializedSchedulerServiceSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SchedulerServiceSettings.SchedulerServiceSettings - - - - - - - - Identity - - - - SchedulerServiceUrl - - - - ApplicationAudience - - - - AuthType - - - - - - - - DeserializedApplicationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ServerApplication.Application - - - - - - - - Uri - - - - Name - - - - Enabled - - - - Critical - - - - ScriptName - - - - Script - - - - - - - - DeserializedApplicationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ServerApplication.Application#Decorated - - - - - - - - Identity - - - - Priority - - - - Uri - - - - Name - - - - Enabled - - - - Critical - - - - ScriptName - - - - Script - - - - - - - - DeserializedSignInTelemetryConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SignInTelemetry.SignInTelemetryConfiguration - - - - - - - - Identity - - - - EnableClientTelemetry - - - - - - - - DeserializedSimpleUrlConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SimpleUrl.SimpleUrlConfiguration - - - - - - - - Identity - - - - SimpleUrl - - - - - - - - DeserializedSimpleUrlView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SimpleUrl.SimpleUrl - - - - - - - - SimpleUrlEntry - - - - Component - - - - Domain - - - - ActiveUrl - - - - - - - - DeserializedSimpleUrlEntryView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SimpleUrl.SimpleUrlEntry - - - - - - - - Url - - - - - - - - DeserializedProxySettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.ProxySettings - - - - - - - - Identity - - - - Realm - - - - MaxClientMessageBodySizeKb - - - - MaxServerMessageBodySizeKb - - - - TreatAllClientsAsRemote - - - - OutgoingTlsCount - - - - DnsCacheRecordCount - - - - AllowPartnerPollingSubscribes - - - - EnableLoggingAllMessageBodies - - - - EnableWhiteSpaceKeepAlive - - - - MaxKeepAliveInterval - - - - UseKerberosForClientToProxyAuth - - - - UseNtlmForClientToProxyAuth - - - - DisableNtlmFor2010AndLaterClients - - - - UseCertificateForClientToProxyAuth - - - - AcceptClientCompression - - - - MaxClientCompressionCount - - - - AcceptServerCompression - - - - MaxServerCompressionCount - - - - RequestServerCompression - - - - LoadBalanceInternalServers - - - - LoadBalanceEdgeServers - - - - TestFeatureList - - - - TestParameterList - - - - SpecialConfigurationList - - - - UseCertificatePinningForInternalConnections - - - - - - - - DeserializedRealmView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.Realm - - - - - - - - RealmChoice - - - - - - - - DeserializedCustomView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.Custom - - - - - - - - CustomValue - - - - - - - - DeserializedRoutingSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.RoutingSettings - - - - - - - - Identity - - - - Route - - - - - - - - DeserializedTransportView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.Transport - - - - - - - - TransportChoice - - - - Port - - - - - - - - DeserializedTCPView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.TCP - - - - - - - - IPAddress - - - - - - - - DeserializedTLSView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.TLS - - - - - - - - Certificate - - - - Fqdn - - - - - - - - DeserializedSkypeEdgeProvisionServiceConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SkypeEdgeProvisionService.SkypeEdgeProvisionServiceConfiguration - - - - - - - - Identity - - - - SyncInterval - - - - PICProvisionServerUrl - - - - WebProxy - - - - OpenCloseTimeout - - - - SendTimeout - - - - MaxReceivedMessageSizeBytes - - - - MaxArrayLength - - - - - - - - DeserializedStorageServiceSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.StorageService.StorageServiceSettings - - - - - - - - Identity - - - - EnableAutoImportFlushedData - - - - EnableFabricReplicationSetReduction - - - - EnableAsyncAdaptorTaskAbort - - - - FabricInvalidStateTimeoutDuration - - - - SingleSecondaryMissingTimeoutDuration - - - - SingleSecondaryQuorumEventLogInterval - - - - EnableLightweightFinalization - - - - EnableEwsTaskTimeout - - - - FilteredAdapterIdList - - - - EnableAttachmentCache - - - - AttachmentCacheTimeout - - - - MaxTotalMemoryForActiveFileUploadsInGB - - - - MemoryToFileSizeRatioForExArchUpload - - - - EnableAggressiveGC - - - - EnableWCFSelfHeal - - - - - - - - DeserializedTeamsAppPolicyConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsAppPolicyConfiguration.TeamsAppPolicyConfiguration - - - - - - - - Identity - - - - AppCatalogUri - - - - ResourceUri - - - - - - - - DeserializedTeamsConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsConfiguration - - - - - - - - Identity - - - - EnabledForVoice - - - - EnabledForMessaging - - - - - - - - DeserializedTeamsUpgradeConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsUpgradeConfiguration - - - - - - - - Identity - - - - DownloadTeams - - - - SfBMeetingJoinUx - - - - - - - - DeserializedTeamsClientConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsClientConfiguration - - - - - - - - Identity - - - - AllowEmailIntoChannel - - - - RestrictedSenderList - - - - AllowDropBox - - - - AllowBox - - - - AllowGoogleDrive - - - - AllowShareFile - - - - AllowEgnyte - - - - AllowOrganizationTab - - - - AllowSkypeBusinessInterop - - - - ContentPin - - - - AllowResourceAccountSendMessage - - - - ResourceAccountContentAccess - - - - AllowGuestUser - - - - AllowScopedPeopleSearchandAccess - - - - AllowRoleBasedChatPermissions - - - - - - - - DeserializedTeamsGuestMessagingConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsGuestMessagingConfiguration - - - - - - - - Identity - - - - AllowUserEditMessage - - - - AllowUserDeleteMessage - - - - AllowUserDeleteChat - - - - AllowUserChat - - - - AllowGiphy - - - - GiphyRatingType - - - - AllowMemes - - - - AllowImmersiveReader - - - - AllowStickers - - - - - - - - DeserializedTeamsGuestMeetingConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsGuestMeetingConfiguration - - - - - - - - Identity - - - - AllowIPVideo - - - - ScreenSharingMode - - - - AllowMeetNow - - - - LiveCaptionsEnabledType - - - - AllowTranscription - - - - - - - - DeserializedTeamsGuestCallingConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsGuestCallingConfiguration - - - - - - - - Identity - - - - AllowPrivateCalling - - - - - - - - DeserializedTeamsMeetingBroadcastConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsMeetingBroadcastConfiguration - - - - - - - - Identity - - - - SupportURL - - - - AllowSdnProviderForBroadcastMeeting - - - - - - - - DeserializedTeamsEffectiveMeetingSurveyConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsEffectiveMeetingSurveyConfiguration - - - - - - - - Identity - - - - Survey - - - - DefaultOrganizerMode - - - - - - - - DeserializedTeamsCallHoldValidationConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsCallHoldValidationConfiguration - - - - - - - - Identity - - - - AudioFileValidationEnabled - - - - AudioFileValidationUri - - - - - - - - DeserializedTeamsEducationConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsEducationConfiguration - - - - - - - - Identity - - - - ParentGuardianPreferredContactMethod - - - - - - - - DeserializedTeamsMeetingTemplateConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsMeetingTemplateConfiguration - - - - - - - - Identity - - - - TeamsMeetingTemplates - - - - Description - - - - - - - - DeserializedTeamsMeetingTemplateTypeView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsMeetingTemplateType - - - - - - - - TeamsMeetingOptions - - - - Description - - - - Name - - - - - - - - DeserializedTeamsMeetingTemplateTypeView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsMeetingTemplateType#Decorated - - - - - - - - Identity - - - - TeamsMeetingOptions - - - - Description - - - - Name - - - - - - - - DeserializedTeamsMeetingOptionView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsMeetingOption - - - - - - - - IsLocked - - - - IsHidden - - - - Value - - - - Name - - - - - - - - DeserializedTeamsFirstPartyMeetingTemplateConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsFirstPartyMeetingTemplateConfiguration - - - - - - - - Identity - - - - TeamsMeetingTemplates - - - - Description - - - - - - - - DeserializedTeamsMeetingConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsMeetingConfiguration.TeamsMeetingConfiguration - - - - - - - - Identity - - - - LogoURL - - - - LegalURL - - - - HelpURL - - - - CustomFooterText - - - - DisableAnonymousJoin - - - - DisableAppInteractionForAnonymousUsers - - - - EnableQoS - - - - ClientAudioPort - - - - ClientAudioPortRange - - - - ClientVideoPort - - - - ClientVideoPortRange - - - - ClientAppSharingPort - - - - ClientAppSharingPortRange - - - - ClientMediaPortRangeEnabled - - - - - - - - DeserializedTeamsMigrationConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsMigrationConfiguration.TeamsMigrationConfiguration - - - - - - - - Identity - - - - EnableLegacyClientInterop - - - - - - - - DeserializedTeamsRoutingConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsRoutingConfiguration.TeamsRoutingConfiguration - - - - - - - - Identity - - - - VoiceGatewayFqdn - - - - EnableMessagingGatewayProxy - - - - MessagingConversationRequestUrl - - - - MessagingConversationResponseUrl - - - - MgwRedirectUrlTemplate - - - - EnablePoollessTeamsOnlyUserFlighting - - - - EnablePoollessTeamsOnlyCallingFlighting - - - - EnablePoollessTeamsOnlyMessagingFlighting - - - - EnablePoollessTeamsOnlyConferencingFlighting - - - - EnablePoollessTeamsOnlyPresenceFlighting - - - - HybridEdgeFqdn - - - - DisableTeamsOnlyUsersConfCreateFlighting - - - - TenantDisabledForTeamsOnlyUsersConfCreate - - - - EnableTenantLevelPolicyCheck - - - - - - - - DeserializedTelemetrySenderConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TelemetrySender.TelemetrySenderConfiguration - - - - - - - - Identity - - - - Enabled - - - - EncryptedAriaDataToken - - - - EncryptedAriaTraceToken - - - - TraceLevels - - - - TokenDecryptThumbprint - - - - AriaEndpointUri - - - - QoEHashThumbprint - - - - QoEEncryptThumbprint - - - - - - - - DeserializedTenantConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantConfiguration.TenantConfiguration - - - - - - - - Identity - - - - MaxAllowedDomains - - - - MaxBlockedDomains - - - - - - - - DeserializedTenantLicensingConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantConfiguration.TenantLicensingConfiguration - - - - - - - - Identity - - - - Status - - - - - - - - DeserializedTenantWebServiceConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantConfiguration.TenantWebServiceConfiguration - - - - - - - - Identity - - - - CertificateValidityPeriodInHours - - - - - - - - DeserializedTenantFlightAssignmentsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantFlightAssignment.TenantFlightAssignments - - - - - - - - Identity - - - - Flights - - - - - - - - DeserializedFlightView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantFlightAssignment.Flight - - - - - - - - Name - - - - - - - - DeserializedFlightView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantFlightAssignment.Flight#Decorated - - - - - - - - Identity - - - - Priority - - - - Name - - - - - - - - DeserializedTenantMigrationConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantMigration.TenantMigrationConfiguration - - - - - - - - Identity - - - - MeetingMigrationEnabled - - - - - - - - DeserializedTenantNetworkConfigurationSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.TenantNetworkConfigurationSettings - - - - - - - - Identity - - - - NetworkRegions - - - - NetworkSites - - - - Subnets - - - - PostalCodes - - - - - - - - DeserializedNetworkRegionTypeView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.NetworkRegionType - - - - - - - - Description - - - - CentralSite - - - - NetworkRegionID - - - - - - - - DeserializedNetworkRegionTypeView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.NetworkRegionType#Decorated - - - - - - - - Identity - - - - Description - - - - CentralSite - - - - NetworkRegionID - - - - - - - - DeserializedNetworkSiteTypeView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.NetworkSiteType - - - - - - - - Description - - - - NetworkRegionID - - - - LocationPolicyID - - - - SiteAddress - - - - NetworkSiteID - - - - OnlineVoiceRoutingPolicyTagID - - - - EnableLocationBasedRouting - - - - EmergencyCallRoutingPolicyTagID - - - - EmergencyCallingPolicyTagID - - - - NetworkRoamingPolicyTagID - - - - EmergencyCallRoutingPolicyName - - - - EmergencyCallingPolicyName - - - - NetworkRoamingPolicyName - - - - - - - - DeserializedNetworkSiteTypeView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.NetworkSiteType#Decorated - - - - - - - - Identity - - - - Description - - - - NetworkRegionID - - - - LocationPolicyID - - - - SiteAddress - - - - NetworkSiteID - - - - OnlineVoiceRoutingPolicyTagID - - - - EnableLocationBasedRouting - - - - EmergencyCallRoutingPolicyTagID - - - - EmergencyCallingPolicyTagID - - - - NetworkRoamingPolicyTagID - - - - EmergencyCallRoutingPolicyName - - - - EmergencyCallingPolicyName - - - - NetworkRoamingPolicyName - - - - - - - - DeserializedSubnetTypeView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.SubnetType - - - - - - - - Description - - - - NetworkSiteID - - - - MaskBits - - - - SubnetID - - - - - - - - DeserializedSubnetTypeView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.SubnetType#Decorated - - - - - - - - Identity - - - - Description - - - - NetworkSiteID - - - - MaskBits - - - - SubnetID - - - - - - - - DeserializedPostalCodeTypeView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.PostalCodeType - - - - - - - - Description - - - - NetworkSiteID - - - - PostalCode - - - - CountryCode - - - - - - - - DeserializedPostalCodeTypeView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.PostalCodeType#Decorated - - - - - - - - Identity - - - - Description - - - - NetworkSiteID - - - - PostalCode - - - - CountryCode - - - - - - - - DeserializedTrustedIPView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.TrustedIP - - - - - - - - MaskBits - - - - Description - - - - IPAddress - - - - - - - - DeserializedTrustedIPView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.TrustedIP#Decorated - - - - - - - - Identity - - - - MaskBits - - - - Description - - - - IPAddress - - - - - - - - DeserializedTenantPartnerRoleView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantPartnerRole.TenantPartnerRole - - - - - - - - BlockedCmdlets - - - - Name - - - - PartnerType - - - - - - - - DeserializedTenantPartnerRoleView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantPartnerRole.TenantPartnerRole#Decorated - - - - - - - - Identity - - - - BlockedCmdlets - - - - Name - - - - PartnerType - - - - - - - - DeserializedTenantVideoInteropConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantVideoInteropConfiguration.TenantVideoInteropConfiguration - - - - - - - - Identity - - - - VideoTeleconferencingDeviceProviders - - - - - - - - DeserializedVideoTeleconferencingDeviceProviderView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantVideoInteropConfiguration.VideoTeleconferencingDeviceProvider - - - - - - - - Name - - - - TenantKey - - - - InstructionUri - - - - - - - - DeserializedVideoTeleconferencingDeviceProviderView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantVideoInteropConfiguration.VideoTeleconferencingDeviceProvider#Decorated - - - - - - - - Identity - - - - Name - - - - TenantKey - - - - InstructionUri - - - - - - - - DeserializedVideoInteropServiceProviderView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantVideoInteropServiceConfiguration.VideoInteropServiceProvider - - - - - - - - Name - - - - AadApplicationIds - - - - TenantKey - - - - InstructionUri - - - - AllowAppGuestJoinsAsAuthenticated - - - - - - - - DeserializedVideoInteropServiceProviderView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantVideoInteropServiceConfiguration.VideoInteropServiceProvider#Decorated - - - - - - - - Identity - - - - Name - - - - AadApplicationIds - - - - TenantKey - - - - InstructionUri - - - - AllowAppGuestJoinsAsAuthenticated - - - - - - - - DeserializedTrunkConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.TrunkConfiguration - - - - - - - - Identity - - - - OutboundTranslationRulesList - - - - SipResponseCodeTranslationRulesList - - - - OutboundCallingNumberTranslationRulesList - - - - PstnUsages - - - - Description - - - - ConcentratedTopology - - - - EnableBypass - - - - EnableMobileTrunkSupport - - - - EnableReferSupport - - - - EnableSessionTimer - - - - EnableSignalBoost - - - - MaxEarlyDialogs - - - - RemovePlusFromUri - - - - RTCPActiveCalls - - - - RTCPCallsOnHold - - - - SRTPMode - - - - EnablePIDFLOSupport - - - - EnableRTPLatching - - - - EnableOnlineVoice - - - - ForwardCallHistory - - - - Enable3pccRefer - - - - ForwardPAI - - - - EnableFastFailoverTimer - - - - EnableLocationRestriction - - - - NetworkSiteID - - - - - - - - DeserializedTranslationRuleView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.TranslationRule - - - - - - - - Description - - - - Pattern - - - - Translation - - - - Name - - - - - - - - DeserializedTranslationRuleView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.TranslationRule#Decorated - - - - - - - - Identity - - - - Priority - - - - Description - - - - Pattern - - - - Translation - - - - Name - - - - - - - - DeserializedSipResponseCodeTranslationRuleView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.SipResponseCodeTranslationRule - - - - - - - - ReceivedResponseCode - - - - ReceivedISUPCauseValue - - - - TranslatedResponseCode - - - - Name - - - - - - - - DeserializedSipResponseCodeTranslationRuleView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.SipResponseCodeTranslationRule#Decorated - - - - - - - - Identity - - - - Priority - - - - ReceivedResponseCode - - - - ReceivedISUPCauseValue - - - - TranslatedResponseCode - - - - Name - - - - - - - - DeserializedCallingNumberTranslationRuleView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.CallingNumberTranslationRule - - - - - - - - Description - - - - Pattern - - - - Translation - - - - Name - - - - - - - - DeserializedCallingNumberTranslationRuleView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.CallingNumberTranslationRule#Decorated - - - - - - - - Identity - - - - Priority - - - - Description - - - - Pattern - - - - Translation - - - - Name - - - - - - - - DeserializedUcapConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Ucap.UcapConfiguration - - - - - - - - Identity - - - - UcapActivateConferenceUrl - - - - UcapHostUrl - - - - - - - - DeserializedUnassignedNumberTreatmentView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UnassignedNumberTreatmentConfiguration.UnassignedNumberTreatment - - - - - - - - TreatmentId - - - - Pattern - - - - TargetType - - - - Target - - - - TreatmentPriority - - - - Description - - - - - - - - DeserializedUnassignedNumberTreatmentView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UnassignedNumberTreatmentConfiguration.UnassignedNumberTreatment#Decorated - - - - - - - - Identity - - - - TreatmentId - - - - Pattern - - - - TargetType - - - - Target - - - - TreatmentPriority - - - - Description - - - - - - - - DeserializedUpgradeEngineHandlerConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UpgradeEngineHandler.UpgradeEngineHandlerConfiguration - - - - - - - - Identity - - - - UpgradeEngineUrl - - - - TurnOnUpgradeEngineHandler - - - - TurnOnTenantReadinessUpload - - - - WebProxy - - - - QueryInterval - - - - UpgradeErrorRetryInterval - - - - TenantReadinessUploadInterval - - - - QueryWorkItemBatchSize - - - - UpdateTenantReadinessBatchSize - - - - MaxUpgradeRetryTimes - - - - PreUpgradeVersion - - - - PostUpgradeVersion - - - - ReceiveTimeout - - - - SendTimeout - - - - MaxReceivedMessageSize - - - - MaxBufferPoolSize - - - - MaxStringContentLength - - - - - - - - DeserializedUserReplicatorConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserReplicator.UserReplicatorConfiguration - - - - - - - - Identity - - - - ADDomainNamingContextList - - - - DomainControllerList - - - - ReplicationCycleInterval - - - - SkipFirstSyncAllowedDowntime - - - - - - - - DeserializedDomainControllerTypeView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserReplicator.DomainControllerType - - - - - - - - ADDomainNamingContext - - - - DomainControllerFqdn - - - - - - - - DeserializedUserRoutingGroupConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserRoutingGroup.UserRoutingGroupConfiguration - - - - - - - - Identity - - - - Groups - - - - MaxUserCountPerGroup - - - - WarningThresholdPerGroup - - - - - - - - DeserializedUserServicesSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.UserServicesSettings - - - - - - - - Identity - - - - PresenceProviders - - - - MaintenanceTimeOfDay - - - - MinSubscriptionExpiration - - - - MaxSubscriptionExpiration - - - - DefaultSubscriptionExpiration - - - - AnonymousUserGracePeriod - - - - DeactivationGracePeriod - - - - MaxScheduledMeetingsPerOrganizer - - - - AllowNonRoomSystemNotification - - - - MaxSubscriptions - - - - MaxContacts - - - - MaxPersonalNotes - - - - SubscribeToCollapsedDG - - - - StateReplicationFlag - - - - TestFeatureList - - - - TestParameterList - - - - - - - - DeserializedPresenceProviderView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.PresenceProvider - - - - - - - - Fqdn - - - - - - - - DeserializedPresenceProviderView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.PresenceProvider#Decorated - - - - - - - - Identity - - - - Fqdn - - - - - - - - DeserializedPrivacyConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.PrivacyConfiguration - - - - - - - - Identity - - - - EnablePrivacyMode - - - - AutoInitiateContacts - - - - PublishLocationDataDefault - - - - DisplayPublishedPhotoDefault - - - - - - - - DeserializedMeetingConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.MeetingConfiguration - - - - - - - - Identity - - - - PstnCallersBypassLobby - - - - EnableAssignedConferenceType - - - - DesignateAsPresenter - - - - AssignedConferenceTypeByDefault - - - - AdmitAnonymousUsersByDefault - - - - RequireRoomSystemsAuthorization - - - - LogoURL - - - - LegalURL - - - - HelpURL - - - - CustomFooterText - - - - AllowConferenceRecording - - - - AllowCloudRecordingService - - - - EnableMeetingReport - - - - UserUriFormatForStUser - - - - - - - - DeserializedRoutingDataSyncAgentConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.RoutingDataSyncAgentConfiguration - - - - - - - - Identity - - - - Enabled - - - - BatchesPerTransaction - - - - - - - - DeserializedUserStoreConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.UserStoreConfiguration - - - - - - - - Identity - - - - UserStoreServiceUri - - - - UserStoreSyncAgentSyncIntervalSeconds - - - - UserStoreSyncAgentSyncIntervalSecondsForPush - - - - UserStoreSyncAgentSyncIntervalTimeoutSeconds - - - - UserStoreClientRetryCount - - - - UserStoreClientWaitBeforeRetryMilliseconds - - - - UserStoreClientTimeoutPerTrySeconds - - - - UserStoreClientRetryCountForPush - - - - UserStoreClientWaitBeforeRetryMillisecondsForPush - - - - UserStoreClientTimeoutPerTrySecondsForPush - - - - MaxConcurrentPulls - - - - MaxConfDocsToPull - - - - HealthProbeRtcSrvIntervalSeconds - - - - HealthProbeReplicationAppIntervalSeconds - - - - UserStoreClientUseIfxLogging - - - - UserStoreClientLoggingIfxSessionName - - - - UserStoreClientLoggingFileLocation - - - - UserStoreClientEnableHttpTracing - - - - UserStoreClientHttpTimeoutSeconds - - - - UserStoreClientConnectionLimit - - - - UserStorePhase - - - - BackfillFrequencySeconds - - - - BackfillQueueSizeThreshold - - - - BackfillBatchSize - - - - RoutingGroupPartitionHealthExpirationInMinutes - - - - RoutingGroupPartitionUnhealthyThresholdInMinutes - - - - RoutingGroupPartitionFailuresThreshold - - - - PartitionKeySuffix - - - - EnablePullStatusReporting - - - - EnableSlowPullBackOff - - - - BackOffValueMaximumThresholdInSeconds - - - - BackOffInitialValueInSeconds - - - - BackOffFactor - - - - PushControllerBatchSize - - - - HttpIdleConnectionTimeInSeconds - - - - - - - - DeserializedBroadcastMeetingConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.BroadcastMeetingConfiguration - - - - - - - - Identity - - - - EnableBroadcastMeeting - - - - EnableOpenBroadcastMeeting - - - - EnableBroadcastMeetingRecording - - - - EnableAnonymousBroadcastMeeting - - - - EnforceBroadcastMeetingRecording - - - - BroadcastMeetingSupportUrl - - - - EnableSdnProviderForBroadcastMeeting - - - - SdnFallbackAttendeeThresholdCountForBroadcastMeeting - - - - EnableTechPreviewFeatures - - - - - - - - DeserializedCloudMeetingConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.CloudMeetingConfiguration - - - - - - - - Identity - - - - EnableAutoSchedule - - - - - - - - DeserializedCloudVideoInteropConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.CloudVideoInteropConfiguration - - - - - - - - Identity - - - - EnableCloudVideoInterop - - - - AllowLobbyBypass - - - - - - - - DeserializedCloudMeetingServiceConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.CloudMeetingServiceConfiguration - - - - - - - - Identity - - - - SchedulingUrl - - - - DiscoveryUrl - - - - - - - - DeserializedUserSettingsPageConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserSettingsPage.UserSettingsPageConfiguration - - - - - - - - Identity - - - - PstnCallingUri - - - - PstnConferencingUri - - - - VoicemailUri - - - - - - - - DeserializedVideoInteropServerConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.VideoInteropServer.VideoInteropServerConfiguration - - - - - - - - Identity - - - - EnableEnhancedVideoExperience - - - - - - - - DeserializedVideoInteropServerSyntheticTransactionConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.VideoInteropServerSyntheticTransaction.VideoInteropServerSyntheticTransactionConfiguration - - - - - - - - Identity - - - - WatcherNodeFqdns - - - - - - - - DeserializedVideoTrunkConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.VideoTrunkConfiguration.VideoTrunkConfiguration - - - - - - - - Identity - - - - GatewaySendsRtcpForActiveCalls - - - - GatewaySendsRtcpForCallsOnHold - - - - EnableMediaEncryptionForSipOverTls - - - - EnableSessionTimer - - - - ForwardErrorCorrectionType - - - - - - - - DeserializedTargetPoolView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.WatcherNode.TargetPool - - - - - - - - TestUsers - - - - Tests - - - - ExtendedTests - - - - TargetFqdn - - - - PortNumber - - - - UseInternalWebUrls - - - - XmppTestReceiverMailAddress - - - - Enabled - - - - UseAutoDiscovery - - - - - - - - DeserializedTargetPoolView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.WatcherNode.TargetPool#Decorated - - - - - - - - Identity - - - - TestUsers - - - - Tests - - - - ExtendedTests - - - - TargetFqdn - - - - PortNumber - - - - UseInternalWebUrls - - - - XmppTestReceiverMailAddress - - - - Enabled - - - - UseAutoDiscovery - - - - - - - - DeserializedExtendedTestView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.WatcherNode.ExtendedTest - - - - - - - - TestUsers - - - - Name - - - - TestType - - - - - - - - DeserializedWebServiceSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Web.WebServiceSettings - - - - - - - - Identity - - - - TrustedCACerts - - - - CrossDomainAuthorizationList - - - - MaxGroupSizeToExpand - - - - EnableGroupExpansion - - - - UseLocalWebClient - - - - UseWindowsAuth - - - - UseCertificateAuth - - - - UsePinAuth - - - - UseDomainAuthInLWA - - - - EnableMediaBasicAuth - - - - AllowAnonymousAccessToLWAConference - - - - EnableCertChainDownload - - - - InferCertChainFromSSL - - - - CASigningKeyLength - - - - MaxCSRKeySize - - - - MinCSRKeySize - - - - MaxValidityPeriodHours - - - - MinValidityPeriodHours - - - - DefaultValidityPeriodHours - - - - MACResolverUrl - - - - SecondaryLocationSourceUrl - - - - ShowJoinUsingLegacyClientLink - - - - ShowDownloadCommunicatorAttendeeLink - - - - AutoLaunchLyncWebAccess - - - - ShowAlternateJoinOptionsExpanded - - - - UseWsFedPassiveAuth - - - - WsFedPassiveMetadataUri - - - - AllowExternalAuthentication - - - - ExcludedUserAgents - - - - OverrideAuthTypeForInternalClients - - - - OverrideAuthTypeForExternalClients - - - - MobilePreferredAuthType - - - - EnableStatisticsInResponse - - - - HstsMaxAgeInSeconds - - - - EnableCORS - - - - CorsPreflightResponseMaxAgeInSeconds - - - - CrossDomainAuthorizationRegularExpressionList - - - - - - - - DeserializedCACertIdView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Web.CACertId - - - - - - - - Thumbprint - - - - CAStore - - - - - - - - DeserializedOriginView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Web.Origin - - - - - - - - Url - - - - - - - - DeserializedHostedWebAuthSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Web.HostedWebAuthSettings - - - - - - - - Identity - - - - UseWsFedAuth - - - - WsFedMetadataUri - - - - WsFedEnvironment - - - - UseClientCertAuthForWindowsAuth - - - - WsFederationProvider - - - - CompactWebTicketUserIdentiferType - - - - AddTenantIdToCompactWebTicket - - - - - - - - DeserializedWebAppHealthView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.WebAppHealth.WebAppHealth - - - - - - - - Identity - - - - - - - - DeserializedConfSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.WebConf.ConfSettings - - - - - - - - Identity - - - - MaxContentStorageMb - - - - MaxUploadFileSizeMb - - - - MaxBandwidthPerAppSharingServiceMb - - - - ContentGracePeriod - - - - ClientMediaPortRangeEnabled - - - - ClientMediaPort - - - - ClientMediaPortRange - - - - ClientAudioPort - - - - ClientAudioPortRange - - - - ClientVideoPort - - - - ClientVideoPortRange - - - - ClientAppSharingPort - - - - ClientAppSharingPortRange - - - - ClientFileTransferPort - - - - ClientFileTransferPortRange - - - - ClientSipDynamicPort - - - - ClientSipDynamicPortRange - - - - Organization - - - - HelpdeskInternalUrl - - - - HelpdeskExternalUrl - - - - ConsoleDownloadInternalUrl - - - - ConsoleDownloadExternalUrl - - - - CloudPollServicePrimaryUrl - - - - CloudPollServiceSecondaryUrl - - - - - - - - DeserializedConferenceDisclaimerView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.WebConf.ConferenceDisclaimer - - - - - - - - Identity - - - - Header - - - - Body - - - - - - - - DeserializedXForestMigrationConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.XForestMigration.XForestMigrationConfiguration - - - - - - - - Identity - - - - ReportErrorDetailBackToClient - - - - MaxSessionPerPool - - - - ThreadsPerTenant - - - - ThreadsPerFE - - - - PublishRoutingGroupDocumentInterval - - - - MoveHandlerEnabled - - - - MoveHandlerRequestInAsyncMode - - - - MoveHandlerQueryBatchSize - - - - MoveHandlerMaxDualSyncTenants - - - - MoveHandlerUserMoveBatchSize - - - - MoveHandlerStatusRetryLimitSinceLastStateChange - - - - MoveHandlerTenantRetryLimit - - - - MoveHandlerFinalizeTimeSpan - - - - MoveHandlerQueryInterval - - - - MoveHandlerErrorRetryInterval - - - - MoveHandlerStatusRetryInterval - - - - MoveHandlerUserMovePerSecond - - - - SHDMessageCenterEndpoint - - - - TenantNotificationEndMonth - - - - TenantNotificationStartDay - - - - EnableTenantNotification - - - - TenantNotificationExpirationDay - - - - UserMovesRetryPattern - - - - - - - - DeserializedXmppGatewaySettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.XmppFederation.XmppGatewaySettings - - - - - - - - Identity - - - - ConnectionLimit - - - - DialbackPassphrase - - - - EnableLoggingAllMessageBodies - - - - KeepAliveInterval - - - - PartnerConnectionLimit - - - - StreamEstablishmentTimeout - - - - StreamInactivityTimeout - - - - SubscriptionRefreshInterval - - - - - - - - DeserializedXmppAllowedPartnerView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.XmppFederation.XmppAllowedPartner - - - - - - - - AdditionalDomains - - - - Domain - - - - ConnectionLimit - - - - Description - - - - EnableKeepAlive - - - - ProxyFqdn - - - - SaslNegotiation - - - - SupportDialbackNegotiation - - - - TlsNegotiation - - - - PartnerType - - - - - - - - DeserializedXmppAllowedPartnerView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.XmppFederation.XmppAllowedPartner#Decorated - - - - - - - - Identity - - - - AdditionalDomains - - - - Domain - - - - ConnectionLimit - - - - Description - - - - EnableKeepAlive - - - - ProxyFqdn - - - - SaslNegotiation - - - - SupportDialbackNegotiation - - - - TlsNegotiation - - - - PartnerType - - - - - - - - DeserializedVoiceRoutingPolicyView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.Hosted.VoiceRoutingPolicy - - - - - - - - Identity - - - - PstnUsages - - - - Description - - - - Name - - - - AllowInternationalCalls - - - - HybridPSTNSiteIndex - - - - - - - - DeserializedAddressBookSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.Hosted.AddressBookSettings - - - - - - - - Identity - - - - RunTimeOfDay - - - - KeepDuration - - - - SynchronizePollingInterval - - - - MaxDeltaFileSizePercentage - - - - UseNormalizationRules - - - - IgnoreGenericRules - - - - EnableFileGeneration - - - - MaxFileShareThreadCount - - - - EnableSearchByDialPad - - - - EnablePhotoSearch - - - - PhotoCacheRefreshInterval - - - - AzureAddressBookPrimaryServiceUrl - - - - AzureAddressBookSecondaryServiceUrl - - - - AzureAddressBookHealthPollingInterval - - - - DisableUserReplicationForAddressBook - - - - - - - - DeserializedCdrSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CallDetailRecording.Hosted.CdrSettings - - - - - - - - Identity - - - - MessageTypes - - - - EnableCDR - - - - EnableUdcLite - - - - EnablePurging - - - - KeepCallDetailForDays - - - - KeepErrorReportForDays - - - - PurgeHourOfDay - - - - EnableQueueBypassForErrorReport - - - - DataStore - - - - - - - - DeserializedCentralizedLoggingConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLoggingConfig.Hosted.CentralizedLoggingConfiguration - - - - - - - - Identity - - - - Scenarios - - - - SearchTerms - - - - SecurityGroups - - - - Regions - - - - EtlModeEnabled - - - - EtlFileFolder - - - - EtlFileRolloverSizeMB - - - - EtlFileRolloverMinutes - - - - ZipEtlEnabled - - - - LocalSearchMode - - - - EtlNtfsCompressionEnabled - - - - TmfFileSearchPath - - - - CacheFileLocalFolders - - - - CacheFileNetworkFolder - - - - CacheFileLocalRetentionPeriod - - - - CacheFileLocalMaxDiskUsage - - - - ComponentThrottleLimit - - - - ComponentThrottleSample - - - - MinimumClsAgentServiceVersion - - - - NetworkUsagePacketSize - - - - NetworkUsageThreshold - - - - KrakenDBConnectionString - - - - SupportedRolesFromKrakenDB - - - - SupportedNonTopologyRolesFromKrakenDB - - - - Version - - - - InsertTypesForSubstringMatch - - - - ETLMinFreeSpaceInDiskInBytes - - - - ETLEnoughFreeSpaceInDiskInBytes - - - - ETLMaxQuotaInBytes - - - - ETLEnoughQuotaInBytes - - - - EtlMaxRetentionInDays - - - - EtlModeRevision - - - - ETLMinQuotaInBytes - - - - EtlMdsUploadEnabled - - - - EtlMdsUploadProviders - - - - LocalSearchModeRevision - - - - DisableTargetScenarios - - - - CloudOutputEnabled - - - - CloudOutputCpu - - - - CloudOutputUploadLimit - - - - CloudOutputUploadRatio - - - - - - - - DeserializedDialInConferencingConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.DialInConferencingSettings.Hosted.DialInConferencingConfiguration - - - - - - - - Identity - - - - EntryExitAnnouncementsType - - - - BatchToneAnnouncements - - - - EnableNameRecording - - - - EntryExitAnnouncementsEnabledByDefault - - - - UsePinAuth - - - - PinAuthType - - - - EnableInterpoolTransfer - - - - EnableAccessibilityOptions - - - - EnableAnnouncementServiceTransfer - - - - - - - - DeserializedMediaRelaySettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.Hosted.MediaRelaySettings - - - - - - - - Identity - - - - MaxTokenLifetime - - - - MaxBandwidthPerUserKb - - - - MaxBandwidthPerPortKb - - - - PermissionListIgnoreSeconds - - - - MaxAverageConnPps - - - - MaxPeakConnPps - - - - TRAPUrl - - - - TRAPCallDistribution - - - - TRAPHttpclientRetryCount - - - - TRAPHttpclientTimeoutInMilliSeconds - - - - HideMrasInternalFqdnForClientRequest - - - - - - - - DeserializedMediaSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Media.Hosted.MediaSettings - - - - - - - - Identity - - - - EnableQoS - - - - EncryptionLevel - - - - EnableSiren - - - - MaxVideoRateAllowed - - - - EnableG722StereoCodec - - - - EnableSirenForAudioVideoConferences - - - - EnableH264Codec - - - - EnableH264StdCodec - - - - EnableAdaptiveBandWidthEstimation - - - - EnableG722Codec - - - - EnableInCallQoS - - - - InCallQoSIntervalSeconds - - - - MediaPaaSBaseUrl - - - - MediaPaaSAuthenticationScheme - - - - MediaPaaSAppId - - - - MediaPaaSAudience - - - - ; - - - - EnableRtpRtcpMultiplexing - - - - EnableVideoBasedSharing - - - - WaitIceCompletedToAddDialOutUser - - - - EnableDtls - - - - EnableRtx - - - - EnableSilkForAudioVideoConferences - - - - EnableMTurnAllocationForAudioVideoConferences - - - - EnableAVBundling - - - - EnableServerFecForVideoInterop - - - - EnableReceiveAgc - - - - EnableDelayStartAudioReceiveStream - - - - - - - - DeserializedPlatformServiceSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PlatformServiceSettings.Hosted.PlatformServiceSettings - - - - - - - - Identity - - - - UcwaThrottlingConfigurations - - - - EnableScopes - - - - EnableCORS - - - - EnableApplicationRoles - - - - WebPoolFqdnDomainSuffix - - - - EnableAnonymousMeetingJoin - - - - EnableAnonymousMeetingJoinTokensAcrossTenants - - - - MeetingUrlAuthorizationList - - - - ServicePointManagerDefaultConnectionLimit - - - - MaxRegistrationsPerPublicApplication - - - - MaxEventChannelsPerApplication - - - - EnableUcwaThrottling - - - - EnableUcwaMessageFailureNotifications - - - - UcwaThrottlingThresholdPercentageForInternal - - - - UcwaThrottlingThresholdPercentageForPublic - - - - ApplicationProviderMode - - - - ApplicationProviderRefreshTimeSpanInMinutes - - - - EnableDelegateManagement - - - - EnableExternalAccessCheck - - - - ReplayApplicationEndpointUri - - - - EnableReplayMessage - - - - EnableMyOrganizationGroup - - - - EnableUcwaThrottlingToExchange - - - - HideRequireIntunePolicy - - - - MaxConcurrentUcwaRequestsToExchange - - - - BlockUnauthenticatedDiscover - - - - BlockUnlicensedTenantInFirstPartyDiscover - - - - ReplaceNamespaceHosts - - - - AlternateTokenNamespace - - - - EnablePushNotifications - - - - UseLegacyPushNotifications - - - - ConferenceChatInactivityTimeoutInHours - - - - EnableE911 - - - - EnableFileTransfer - - - - AllowCallsFromNonContactsInPrivatePrivacyMode - - - - BvdPortalWhitelistedApp - - - - BlacklistedApps - - - - TestParameters - - - - AutodiscoverBaseUrl - - - - ClusterFqdnForAutodiscover - - - - EWSTimeoutInSeconds - - - - EnablePreDrainingForIncomingCalls - - - - EnableMdsLogging - - - - EnableBotframeworkChannel - - - - BlockCrossTenantChannelForBotframework - - - - BotframeworkReportingServiceBusConnectionString - - - - GenevaTelemetryAccountName - - - - GenevaTelemetryAccountNamespace - - - - BotframeworkManagementServiceBusConnectionString - - - - EnableSendServerLogs - - - - EnableE911RequestXmlEncoding - - - - SendServerLogsServiceUrl - - - - TrouterCallbackBaseUrl - - - - EnableUcwaEscalateIncomingAvCallOnWebRtc - - - - EnableUcwaMdsLogging - - - - ContactCardUpdateAfterSignInMs - - - - ContactCardUpdateCheckInSeconds - - - - - - - - DeserializedThrottlingConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PlatformServiceSettings.ThrottlingConfiguration - - - - - - - - Name - - - - ThrottlingTargetType - - - - ThrottlingMode - - - - ThrottlingScope - - - - TimeRangeInMinutes - - - - TargetNumber - - - - ExcludedApiNames - - - - IncludedApiNames - - - - OverrideThresholdPercentageForPublic - - - - SkipInBatchRequest - - - - - - - - DeserializedQoESettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.QoE.Hosted.QoESettings - - - - - - - - Identity - - - - ExternalConsumerIssuedCertId - - - - EnablePurging - - - - KeepQoEDataForDays - - - - PurgeHourOfDay - - - - EnableExternalConsumer - - - - ExternalConsumerName - - - - ExternalConsumerURL - - - - EnableQoE - - - - EnableQueueBypass - - - - DataStore - - - - - - - - DeserializedRecordingServiceConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.RecordingService.Hosted.RecordingServiceConfiguration - - - - - - - - Identity - - - - RecordingServiceAuthenticationScheme - - - - RecordingServiceBaseUrl - - - - RecordingServiceAppId - - - - RecordingServiceAudience - - - - - - - - DeserializedOAuthSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SSAuth.Hosted.OAuthSettings - - - - - - - - Identity - - - - PartnerApplications - - - - OAuthServers - - - - Realm - - - - ServiceName - - - - ClientAuthorizationOAuthServerIdentity - - - - ExchangeAutodiscoverUrl - - - - ExchangeAutodiscoverAllowedDomains - - - - ClientAdalAuthOverride - - - - AlternateAudienceUrl - - - - AdditionalAudienceUrls - - - - - - - - DeserializedSignInTelemetryConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SignInTelemetry.Hosted.SignInTelemetryConfiguration - - - - - - - - Identity - - - - EnableClientTelemetry - - - - SignInTelemetryUrl - - - - SkypeTelemetryUrl - - - - - - - - DeserializedSimpleUrlConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SimpleUrl.Hosted.SimpleUrlConfiguration - - - - - - - - Identity - - - - SimpleUrl - - - - UseBackendDatabase - - - - WebSchedulerUrl - - - - - - - - DeserializedSimpleUrlView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SimpleUrl.Hosted.SimpleUrl - - - - - - - - SimpleUrlEntry - - - - Component - - - - Domain - - - - ActiveUrl - - - - MoreaDomain - - - - LegacyMoreaDomain - - - - - - - - DeserializedStorageServiceSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.StorageService.Hosted.StorageServiceSettings - - - - - - - - Identity - - - - EnableAutoImportFlushedData - - - - EnableFabricReplicationSetReduction - - - - EnableAsyncAdaptorTaskAbort - - - - FabricInvalidStateTimeoutDuration - - - - SingleSecondaryMissingTimeoutDuration - - - - SingleSecondaryQuorumEventLogInterval - - - - EnableLightweightFinalization - - - - EnableGenevaLogging - - - - EnableEwsTaskTimeout - - - - FilteredAdapterIdList - - - - EnableAttachmentCache - - - - AttachmentCacheTimeout - - - - MaxTotalMemoryForActiveFileUploadsInGB - - - - MemoryToFileSizeRatioForExArchUpload - - - - EnableAggressiveGC - - - - EnableWCFSelfHeal - - - - - - - - DeserializedTrunkConfigurationView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.Hosted.TrunkConfiguration - - - - - - - - Identity - - - - OutboundTranslationRulesList - - - - SipResponseCodeTranslationRulesList - - - - OutboundCallingNumberTranslationRulesList - - - - PstnUsages - - - - Description - - - - ConcentratedTopology - - - - EnableBypass - - - - EnableMobileTrunkSupport - - - - EnableReferSupport - - - - EnableSessionTimer - - - - EnableSignalBoost - - - - MaxEarlyDialogs - - - - RemovePlusFromUri - - - - RTCPActiveCalls - - - - RTCPCallsOnHold - - - - SRTPMode - - - - EnablePIDFLOSupport - - - - EnableRTPLatching - - - - EnableOnlineVoice - - - - ForwardCallHistory - - - - Enable3pccRefer - - - - ForwardPAI - - - - EnableFastFailoverTimer - - - - EnablePassThrough - - - - IndicatePstnGateway - - - - EnableG722Codec - - - - EnableLocationRestriction - - - - NetworkSiteID - - - - EnableEntitlementChecks - - - - WildcardCertDomainSuffix - - - - EnableOptionsAlerting - - - - EnableImmediateRinging - - - - ProvisionalResponseInterval - - - - OfferIncomingCallGatewaySDP - - - - Suppress183WithoutSdpToGateway - - - - - - - - DeserializedWebServiceSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Web.Hosted.WebServiceSettings - - - - - - - - Identity - - - - TrustedCACerts - - - - CrossDomainAuthorizationList - - - - MaxGroupSizeToExpand - - - - EnableGroupExpansion - - - - UseLocalWebClient - - - - UseWindowsAuth - - - - UseCertificateAuth - - - - UsePinAuth - - - - UseDomainAuthInLWA - - - - EnableMediaBasicAuth - - - - AllowAnonymousAccessToLWAConference - - - - EnableCertChainDownload - - - - InferCertChainFromSSL - - - - CASigningKeyLength - - - - MaxCSRKeySize - - - - MinCSRKeySize - - - - MaxValidityPeriodHours - - - - MinValidityPeriodHours - - - - DefaultValidityPeriodHours - - - - MACResolverUrl - - - - SecondaryLocationSourceUrl - - - - ShowJoinUsingLegacyClientLink - - - - MakeHtmlLyncWebAppPrimaryMeetingClient - - - - ShowDownloadCommunicatorAttendeeLink - - - - AutoLaunchLyncWebAccess - - - - ShowAlternateJoinOptionsExpanded - - - - IsPublicDisclosureAllowed - - - - JoinIdentifierRegularExpression - - - - UseWsFedPassiveAuth - - - - WsFedPassiveMetadataUri - - - - AllowExternalAuthentication - - - - ExcludedUserAgents - - - - OverrideAuthTypeForInternalClients - - - - OverrideAuthTypeForExternalClients - - - - MobilePreferredAuthType - - - - EnableStatisticsInResponse - - - - HstsMaxAgeInSeconds - - - - HelpUrlLyncWebAccess - - - - PrivacyUrlLyncWebAccess - - - - EnableCosmosUploadOnEdge - - - - EnableCosmosUploadForWebComponents - - - - PrivacyUrlLyncWebScheduler - - - - XFrameJavascriptUri - - - - PlatformServiceTokenIssuerCertificateMetadataUri - - - - AzureActiveDirectoryGraphApiBaseUri - - - - EnableAzureActiveDirectoryLookup - - - - AadServicePrincipalListForTenantDomainLookup - - - - EnableCORS - - - - CorsPreflightResponseMaxAgeInSeconds - - - - AllowCrossForestWebRequestProxy - - - - TestFeatureList - - - - TestParameterList - - - - CrossDomainAuthorizationRegularExpressionList - - - - DisableClientCertificateStorage - - - - - - - - DeserializedOriginView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Web.Hosted.Origin - - - - - - - - Url - - - - OriginVerificationMethod - - - - - - - - DeserializedConfSettingsView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.WebConf.Hosted.ConfSettings - - - - - - - - Identity - - - - MaxContentStorageMb - - - - MaxUploadFileSizeMb - - - - MaxBandwidthPerAppSharingServiceMb - - - - ContentGracePeriod - - - - ClientMediaPortRangeEnabled - - - - ClientMediaPort - - - - ClientMediaPortRange - - - - ClientAudioPort - - - - ClientAudioPortRange - - - - ClientVideoPort - - - - ClientVideoPortRange - - - - ClientAppSharingPort - - - - ClientAppSharingPortRange - - - - ClientFileTransferPort - - - - ClientFileTransferPortRange - - - - ClientSipDynamicPort - - - - ClientSipDynamicPortRange - - - - Organization - - - - HelpdeskInternalUrl - - - - HelpdeskExternalUrl - - - - ConsoleDownloadInternalUrl - - - - ConsoleDownloadExternalUrl - - - - CloudPollServicePrimaryUrl - - - - CloudPollServiceSecondaryUrl - - - - DataRvCollectorUrl - - - - SupportLyncServer2010RtmDataMcuUserDirectories - - - - AriaTenantToken - - - - UseConnectedConnections - - - - EnableLwaRecording - - - - PsomEventReportLevel - - - - PurgingMode - - - - AlwaysUseExternalUrls - - - - UseStorageService - - - - UseTenantLevelMeetingSettings - - - - UseJitLocking - - - - JitLockingRetryIntervalSeconds - - - - JitLockingMaxRetryCount - - - - EncryptArchivedData - - - - CreateBackCompatUnencryptedFiles - - - - - - - - ServiceCmdlets - - Microsoft.Rtc.Management.Deployment.Core.NTService - - - - - - 8 - - - - 15 - - - - 120 - - - - - - - ServiceStatus - - - ServiceName - - - ActivityLevel - - - - - - - - NTServiceView - - Microsoft.Rtc.Management.Deployment.Core.NTServiceView - - - - - - 8 - - - - 15 - - - - 120 - - - - - - - Status - - - Name - - - ActivityLevel - - - - - - - - AbAttributeValues - - Microsoft.Rtc.SyntheticTransactions.Activities.Database.AbAttributeValue - - - - - - 30 - - - - 70 - - - - - - - Name - - - Value - - - - - - - - AbServerHeartbeats - - Microsoft.Rtc.SyntheticTransactions.Activities.Database.AbServerHeartbeat - - - - - - 30 - - - - 22 - - - - 22 - - - - 22 - - - - - - - Fqdn - - - LastHeartbeat - - - LastRegister - - - LastUnregister - - - - - - - - ManagementConnectionView - - Microsoft.Rtc.Management.Xds.ManagementConnection - - - - - - - - StoreProvider - - - - Connection - - - - ReadOnly - - - - SqlServer - - - - SqlInstance - - - - - - - - ServiceTypeView - - Microsoft.Rtc.Management.Fabric.ServiceTypeData - - - - - - 20 - - - - 100 - - - - - - - ServiceType - - - ServiceTable - - - - - - - - ReplicaStateView - - Microsoft.Rtc.Management.Xds.ReplicaState - - - - - - - - UpToDate - - - - ReplicaFqdn - - - - LastStatusReport - - - - LastUpdateCreation - - - - ProductVersion - - - - - - - - DisplayAccessEdgeSettingsDefaultRouteView - - Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DisplayAccessEdgeSettingsDefaultRoute - - - - - - - - Identity - - - - AllowAnonymousUsers - - - - AllowFederatedUsers - - - - AllowOutsideUsers - - - - DefaultRouteFqdn - - - - EnableArchivingDisclaimer - - - - EnableUserReplicator - - - - IsPublicProvider - - - - KeepCrlsUpToDateForPeers - - - - MarkSourceVerifiableOnOutgoingMessages - - - - OutgoingTlsCountForFederatedPartners - - - - DnsSrvCacheRecordCount - - - - DiscoveredPartnerStandardRate - - - - EnableDiscoveredPartnerContactsLimit - - - - MaxContactsPerDiscoveredPartner - - - - EnableDiscoveredPartnerResponseMonitor - - - - DiscoveredPartnerReportPeriodMinutes - - - - EnablePartnerMonitoringCosmosOutput - - - - EnablePartnerMonitoringIfxLog - - - - MaxAcceptedCertificatesStored - - - - MaxRejectedCertificatesStored - - - - CertificatesDeletedPercentage - - - - SkypeSearchUrl - - - - RoutingMethod - - - - VerificationLevel - - - - - - - - DisplayAccessEdgeSettingsDnsSrvRoutingView - - Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DisplayAccessEdgeSettingsDnsSrvRouting - - - - - - - - Identity - - - - AllowAnonymousUsers - - - - AllowFederatedUsers - - - - AllowOutsideUsers - - - - BeClearingHouse - - - - EnablePartnerDiscovery - - - - DiscoveredPartnerVerificationLevel - - - - EnableArchivingDisclaimer - - - - EnableUserReplicator - - - - KeepCrlsUpToDateForPeers - - - - MarkSourceVerifiableOnOutgoingMessages - - - - OutgoingTlsCountForFederatedPartners - - - - DnsSrvCacheRecordCount - - - - DiscoveredPartnerStandardRate - - - - EnableDiscoveredPartnerContactsLimit - - - - MaxContactsPerDiscoveredPartner - - - - EnableDiscoveredPartnerResponseMonitor - - - - DiscoveredPartnerReportPeriodMinutes - - - - EnablePartnerMonitoringCosmosOutput - - - - EnablePartnerMonitoringIfxLog - - - - MaxAcceptedCertificatesStored - - - - MaxRejectedCertificatesStored - - - - CertificatesDeletedPercentage - - - - SkypeSearchUrl - - - - RoutingMethod - - - - - - - - RoleView - - Microsoft.Rtc.Management.Authorization.OnPremDisplayRole - - - - - - - - Identity - - - - SID - - - - IsStandardRole - - - - Cmdlets - - - - ScriptModules - - - - ConfigScopes - - - - UserScopes - - - - TemplateName - - - - - - - - RoleView - - Microsoft.Rtc.Management.WritableConfig.Settings.Roles.Role - - - - - - - - Identity - - - - SID - - - - IsStandardRole - - - - Cmdlets - - - - ScriptModules - - - - ConfigScopes - - - - UserScopes - - - - TemplateName - - - - MSODSTemplateId - - - - - - - - CmdletTypeView - - Deserialized.Microsoft.Rtc.Management.Authorization.OnPremDisplayCmdletType - - - - - - - - Name - - - - - - - - CmdletTypeView - - Microsoft.Rtc.Management.Authorization.OnPremDisplayCmdletType - - - - - - - - Name - - - - - - - - CmdletTypeView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Roles.CmdletType - - - - - - - - Name - - - - AllowedParameters - - - - - - - - CmdletTypeView - - Microsoft.Rtc.Management.WritableConfig.Settings.Roles.CmdletType - - - - - - - - Name - - - - AllowedParameters - - - - - - - - ScriptCmdletTypeView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Roles.ScriptCmdletType - - - - - - - - ScriptFile - - - - FunctionName - - - - - - - - ConfigScopeView - - Microsoft.Rtc.Management.Core.ConfigScope - - - - - - - - Scope - - - - Value - - - - - - - - UserScopeView - - Microsoft.Rtc.Management.Core.UserScope - - - - - - - - Scope - - - - Value - - - - - - - - DisplayPublicProviderView - - Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DisplayPublicProvider - - - - - - - - Identity - - - - Name - - - - ProxyFqdn - - - - IconUrl - - - - NameDecorationDomain - - - - NameDecorationRoutingDomain - - - - NameDecorationExcludedDomainList - - - - VerificationLevel - - - - Enabled - - - - EnableSkypeIdRouting - - - - EnableSkypeDirectorySearch - - - - - - - - DisplayHostingProviderView - - Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DisplayHostingProvider - - - - - - - - Identity - - - - Name - - - - ProxyFqdn - - - - VerificationLevel - - - - Enabled - - - - EnabledSharedAddressSpace - - - - HostsOCSUsers - - - - IsLocal - - - - AutodiscoverUrl - - - - - - - - CertificateReferenceView - - Microsoft.Rtc.Management.Deployment.CertificateReference - - - - - - - - Issuer - - - - NotAfter - - - - NotBefore - - - - SerialNumber - - - - Subject - - - - AlternativeNames - - - - Thumbprint - - - - EffectiveDate - - - - PreviousThumbprint - - - - UpdateTime - - - - Use - - - - SourceScope - - - - - - - - DisplaySiteView - - Microsoft.Rtc.Management.Xds.DisplaySite - - - - - - - - Identity - - - - SiteId - - - - Services - - - - Pools - - - - FederationRoute - - - - XmppFederationRoute - - - - Description - - - - DisplayName - - - - SiteType - - - - ParentSite - - - - - - - - DisplayPoolView - - Microsoft.Rtc.Management.Xds.DisplayPool#Decorated - - - - - - - - Identity - - - - Services - - - - Computers - - - - Fqdn - - - - BackupPoolFqdn - - - - Site - - - - - - - - DisplayComputerView - - Microsoft.Rtc.Management.Xds.DisplayComputer#Decorated - - - - - - - - Identity - - - - Pool - - - - Fqdn - - - - - - - - DisplayTeamsUpgradePolicy - - Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsUpgradePolicy#Decorated - - - - - - - - Identity - - - - Description - - - - Mode - - - - NotifySfbUsers - - - - - - - - DisplayDeserializedTeamsUpgradePolicy - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsUpgradePolicy#Decorated - - - - - - - - Identity - - - - Description - - - - Mode - - - - NotifySfbUsers - - - - - - - - MirrorUserStoreStateView - - Microsoft.Rtc.Management.Xds.MirrorUserStoreState - - - - - - - - Identity - - - - Mirror - - - - Online - - - - - - - - UserStoreStateView - - Microsoft.Rtc.Management.Xds.UserStoreState - - - - - - - - Identity - - - - Online - - - - - - - - SyntheticTransactionsTaskOutputView - - Microsoft.Rtc.SyntheticTransactions.TaskOutput - - - - - - - - TargetFqdn - - - - Result - - - - Latency - - - - Error - - - - Diagnosis - - - - - - - - SyntheticTransactionsWebTaskOutputView - - Microsoft.Rtc.SyntheticTransactions.WebTaskOutput - - - - - - - - TargetFqdn - - - - TargetUri - - - - Result - - - - Latency - - - - Error - - - - Diagnosis - - - - - - - - SyntheticTransactionsAddressBookReplicationUserTaskOutputView - - Microsoft.Rtc.SyntheticTransactions.Activities.Database.AddressBookReplicationUserTaskOutput - - - - - - - - TargetFqdn - - - - ReplicationState - - - - TaskOwnerFqdn - - - - BackupFqdn - - - - LastModified - - - - LastModifiedAD - - - - ServerHeartbeats - - - - IndexedObjects - - - - TotalObjects - - - - ShouldBeIndexedObjects - - - - AbandondedObjects - - - - FailedResourceCount - - - - AdObjectId - - - - DistinguishedName - - - - SipAddress - - - - AttributeValues - - - - IsIndexed - - - - ShouldBeIndexed - - - - IsProcessed - - - - NormalizationSucceeded - - - - ManagerDn - - - - NormalizationFailureCount - - - - NormalizationFailures - - - - DatabaseErrorCount - - - - DatabaseErrors - - - - - - - - SyntheticTransactionsAddressBookReplicationTaskOutputView - - Microsoft.Rtc.SyntheticTransactions.Activities.Database.AddressBookReplicationTaskOutput - - - - - - - - TargetFqdn - - - - ReplicationState - - - - TaskOwnerFqdn - - - - BackupFqdn - - - - ServerHeartbeats - - - - IndexedObjects - - - - TotalObjects - - - - ShouldBeIndexedObjects - - - - AbandondedObjects - - - - FailedResourceCount - - - - NormalizationFailureCount - - - - NormalizationFailures - - - - DatabaseErrorCount - - - - DatabaseErrors - - - - - - - - SyntheticTransactionsSprocExecuteErrorView - - Microsoft.Rtc.SyntheticTransactions.Activities.Database.SprocExecuteErrorInfo - - - - - - - - ErrorCode - - - - Severity - - - - Count - - - - FirstOccurred - - - - LastOccurred - - - - SprocName - - - - ErrorText - - - - Example - - - - - - - - FedSyntheticTransactionsTaskOutputView - - Microsoft.Rtc.SyntheticTransactions.Extended.FedTaskOutput - - - - - - - - Endpoints - - - - Result - - - - Latency - - - - Error - - - - Diagnosis - - - - - - - - LegalInterceptView - - Microsoft.Rtc.Management.ADConnect.Schema.ADOCOnlineLegalIntercept - - - - - - - - Identity - - - - SipAddress - - - - LegalInterceptEnabled - - - - LegalInterceptDestination - - - - LegalInterceptExpiryTime - - - - - - - - ClientAccessLicenseView - - Microsoft.Rtc.Server.Cdr.ClientAccessLicense - - - - - - 48 - - - - - - - - - - - - - - - - UserUri - - - IpAddress - - - LicenseDisplayName - - - DisplayDate - - - - - - - - LicenseView - - Microsoft.Rtc.Server.Cdr.License - - - - - - - - - - - - DisplayName - - - - - - - - PoolUpgradeReadinessView - - Microsoft.Rtc.Management.Hadr.PoolUpgradeState - - - - - - - - PoolFqdn - - - State - - - TotalFrontends - - - TotalActiveFrontends - - - UpgradeDomains - - - - - - - - InterPoolReplicationComparisonResultFailedView - - Microsoft.Rtc.Management.Hadr.InterPoolReplication.ComparisonResultFailure - - - - - - - Identity - - - OwnerPoolFqdn - - - ReplicateFrom - - - ReplicateTo - - - Exception - - - - - - - - DatabaseComparisonResultView - - Microsoft.Rtc.Management.Hadr.InterPoolReplication.DatabaseComparisonResult - - - - - - - Identity - - - OwnerPoolFqdn - - - ReplicateFrom - - - ReplicateTo - - - NumberOfBatchesOnSource - - - NumberOfBatchesOnBackup - - - NumberOfBatchesInSync - - - NumberOfBatchesWithSyncInProgress - - - NumberOfBatchesOutOfSync - - - NumberOfItemsOnSource - - - NumberOfItemsOnBackup - - - NumberOfItemsInSync - - - NumberOfItemsWithSyncInProgress - - - NumberOfItemsOutOfSync - - - - ; - - - - ; - - - - - - - - UserFabricStateView - - Microsoft.Rtc.Management.HADR.FabricState.DisplayUserFabricState - - - - - - - SipAddress - - - TenantId - - - RoutingGroupId - - - HomePool - - - CurrentPool - - - Replicas - - - FabricServiceWriteStatus - - - - - - - - TenantFabricStateView - - Microsoft.Rtc.Management.HADR.FabricState.DisplayTenantFabricState - - - - - - - TenantId - - - TotalUsers - - - ActiveUsers - - - ActiveEndpoints - - - - ; - - - - - - - - RoutingGroupFabricStateView - - Microsoft.Rtc.Management.HADR.FabricState.DisplayRoutingGroupFabricState - - - - - - - RoutingGroupId - - - TotalUsers - - - ActiveUsers - - - ActiveEndpoints - - - HomePool - - - CurrentPool - - - Replicas - - - FabricServiceWriteStatus - - - - - - - - RoutingGroupFabricStateWithTenantsView - - Microsoft.Rtc.Management.HADR.FabricState.DisplayRoutingGroupFabricStateWithTenants - - - - - - - RoutingGroupId - - - TotalUsers - - - ActiveUsers - - - ActiveEndpoints - - - HomePool - - - CurrentPool - - - Replicas - - - FabricServiceWriteStatus - - - - ; - - - - ; - - - - - - - - ResponseElementView - - Microsoft.Rtc.ClsControllerLib.ResponseElement - - - - - - 8 - - - - 70 - - - - 30 - - - - - - - Code - - - Message - - - Data - - - - - - - - ClsStateMachineView - - Microsoft.Rtc.ClsControllerLib.ClsStateMachine - - - PoolFqdn - - - - - - 28 - Left - - - - 30 - Left - - - - 8 - Left - - - - 16 - Left - - - - 9 - Left - - - - 14 - Left - - - - - - - - MachineFqdn - - - ResponseMessage - - - AlwaysOn - - - ScenarioName - - - RemainingMins - - - ProductVersion - - - - - - - - ClsSearchOutputView - - Microsoft.Rtc.Management.Cls.ClsSearchOutput - - - - - - - ResponseMessage - - - OutputFile - - - StartTime - - - EndTime - - - SuccessfulAgents - - - FailedAgents - - - - - - - - ClsAgentStatusOutputView - - Microsoft.Rtc.Management.Cls.AgentInfoETL - - - - - - - CoreVersion - - - ClsAgentExeVersion - - - ServiceStatus - - - TracingFolder - - - ServiceStartStop - - - AgentState - - - LogPath - - - OldestFile - - - NewestFile - - - DaysOfLogs - - - LogFileCount - - - LogAge - - - LogDateRanges - - - - ; - - - - ; - - - ByDayLogMB - - - ByHourLogMB - - - Last24HourLogMB - - - Last1HourLogMB - - - Drives - - - EtlModeRevision - - - - ; - - - ZipEtlEnabled - - - EtlNtfsCompressionEnabled - - - EtlMaxRetentionInDays - - - - ; - - - - ; - - - - ; - - - - ; - - - - ; - - - TmxFiles - - - TmxCount - - - LogFiles - - - - - - - - SlaConfiguration - - Microsoft.Rtc.Management.SlaConfiguration - - - - - - - - BusyOption - - - - Target - - - - MissedCallOption - - - - MissedCallForwardTarget - - - - MaxNumberOfCalls - - - - ; - - - - - - - - BobConfiguration - - Microsoft.Rtc.Management.Bob.Cmdlets.BobConfiguration - - - - - - - Identity - - - ActionType - - - - - - - - ReplicaBuildProgressView - - Microsoft.Rtc.Management.HADR.FabricState.DisplayReplicaBuildProgress - - - - - - - AsOfTime - - - StartSequenceNum - - - EndSequenceNum - - - CurrentSequenceNum - - - BuildState - - - - - - - - DeserializedTrunkConfigView - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AzurePSTNTrunkConfiguration.TrunkConfig#Decorated2 - - - - - - - - Identity - - - - InboundTeamsNumberTranslationRules - - - - InboundPstnNumberTranslationRules - - - - OutboundTeamsNumberTranslationRules - - - - OutboundPstnNumberTranslationRules - - - - Fqdn - - - - SipSignalingPort - - - - FailoverTimeSeconds - - - - ForwardCallHistory - - - - ForwardPai - - - - SendSipOptions - - - - MaxConcurrentSessions - - - - Enabled - - - - MediaBypass - - - - GatewaySiteId - - - - GatewaySiteLbrEnabled - - - - GatewayLbrEnabledUserOverride - - - - FailoverResponseCodes - - - - PidfLoSupported - - - - MediaRelayRoutingLocationOverride - - - - ProxySbc - - - - BypassMode - - - - Description - - - - IPAddressVersion - - - - - - - - TrunkConfigView - - Microsoft.Rtc.Management.WritableConfig.Settings.AzurePSTNTrunkConfiguration.TrunkConfig#Decorated2 - - - - - - - - Identity - - - - InboundTeamsNumberTranslationRules - - - - InboundPstnNumberTranslationRules - - - - OutboundTeamsNumberTranslationRules - - - - OutboundPstnNumberTranslationRules - - - - Fqdn - - - - SipSignalingPort - - - - FailoverTimeSeconds - - - - ForwardCallHistory - - - - ForwardPai - - - - SendSipOptions - - - - MaxConcurrentSessions - - - - Enabled - - - - MediaBypass - - - - GatewaySiteId - - - - GatewaySiteLbrEnabled - - - - GatewayLbrEnabledUserOverride - - - - FailoverResponseCodes - - - - PidfLoSupported - - - - MediaRelayRoutingLocationOverride - - - - ProxySbc - - - - BypassMode - - - - Description - - - - IPAddressVersion - - - - - - - - DisplayHostingProviderBaseView - - Microsoft.Rtc.Management.WritableConfig.Settings.Edge.Hosted.DisplayHostingProvider - - - - - - - - Identity - - - - Name - - - - ProxyFqdn - - - - VerificationLevel - - - - Enabled - - - - EnabledSharedAddressSpace - - - - HostsOCSUsers - - - - IsLocal - - - - AutodiscoverUrl - - - - - - - - DisplayHostingProviderExtendedView - - Microsoft.Rtc.Management.WritableConfig.Settings.Edge.Hosted.DisplayHostingProviderExtended - - - - - - - - Identity - - - - Name - - - - ProxyFqdn - - - - VerificationLevel - - - - Enabled - - - - EnabledSharedAddressSpace - - - - HostsOCSUsers - - - - IsLocal - - - - AutodiscoverUrl - - - - IsTenantVisible - - - - - - - - ClsTest - - Microsoft.Rtc.Management.Hosted.Cls.TestOutput - - - - - - - - TestName - - - - Value - - - - Result - - - - Passed - - - - - - - - ClsCacheFileInfo - - Microsoft.Rtc.Management.Hosted.Cls.ClsCacheFileInfo - - - - - - 35 - - - - 24 - - - - - - - - - - File - - - LastWriteTimeUtc - - - Length - - - - - - - - MachineProcess - - Microsoft.Rtc.Management.Hosted.Common.MachineProcess - - - - - - 35 - - - - 10 - - - - 18 - - - - 12 - - - - 12 - - - - 25 - - - - 85 - - - - - - - Name - - - ProcessId - - - WorkingSetSizeMB - - - Threads - - - Handles - - - ; - - - CommandLine - - - - - - - - MachineService - - Microsoft.Rtc.Management.Hosted.Common.MachineService - - - - - - 8 - - - - 30 - - - - 50 - - - - - - - Status - - - Name - - - DisplayName - - - - - - - - QFE - - Microsoft.Rtc.Management.Hosted.Common.QFE - - - - - - 12 - - - - 22 - - - - 27 - - - - 28 - - - - - - - HotFixId - - - Description - - - InstalledBy - - - InstalledOn - - - - - - - - Summary - - Microsoft.Rtc.Management.Hosted.MeetingMigration.Types.Summary - - - - - - 12 - - - - 22 - - - - - - - State - - - UserCount - - - - - - - - HDInfo - - Microsoft.Rtc.Management.Hosted.Common.HDInfo - - - - - - 15 - - - - 15 - - - - 15 - - - - 15 - - - - - - - Id - - - FreeMB - - - SizeMB - - - ; - - - - - - - - MachineStatus - - Microsoft.Rtc.Management.Hosted.Common.MachineStatus - - - - - - - - ComputerName - - - - ProductVersion - - - - BuildBranch - - - - OSVersion - - - - MSSQLVersion - - - - Uptime - - - - ; - - - - ProcessorUsage - - - - ; - - - - ; - - - - ; - - - - ; - - - - ; - - - - ; - - - - - - - - MaintenanceModeMachines - - Microsoft.Rtc.Management.Hosted.Cls.MaintenanceModeMachineInfo - - - - - - 35 - - - - 20 - - - - 30 - - - - 30 - - - - 30 - - - - - - - DisplayName - - - InMaintenanceMode - - - StartTime - - - User - - - Reason - - - - - - - - SyntheticTransactionsDebugPresenceTaskOutputView - - Microsoft.Rtc.SyntheticTransactions.Activities.Database.UserPresenceStateTaskOutput - - - - - - - - PublisherFrontEnds - - - - SubscriberFrontEnds - - - - PublisherFeFqdn - - - - PublisherPoolFqdn - - - - SubscriberFeFqdn - - - - SubscriberPoolFqdn - - - - SubscribeContainerInfo - - - - ; - - - - ; - - - - ; - - - - Discrepancies - - - - - - - - PublisherContainerInfo - - Microsoft.Rtc.SyntheticTransactions.Activities.Database.PublisherContainerInfo - - - - - - 25 - - - - 10 - - - - 10 - - - - 27 - - - - 25 - - - - - - - CategoryName - - - ContainerNum - - - Version - - - LastPubTime - - - OriginatedFrontEnd - - - - - - - - SubscribeContainerInfo - - Microsoft.Rtc.SyntheticTransactions.Activities.Database.SubscribeContainerInfo - - - - - - 10 - - - - 15 - - - - 10 - - - - 10 - - - - 25 - - - - - - - ContainerNum - - - HowMatched - - - Rank1 - - - Rank2 - - - OriginatedFrontEnd - - - - - - - - ConferencingBridge - - Microsoft.Rtc.Management.Hosted.Cbd.ConferencingBridge - - - - - - - Identity - - - Name - - - Region - - - - DisplayDefaultServiceNumber - - - IsDefault - - - - DisplayServiceNumbers - - - TenantId - - - - - - - - ConferencingTenant - - Microsoft.Rtc.Management.Hosted.Cbd.ConferencingTenant - - - - - - - TenantId - - - - DisplayDefaultBridge - - - - DisplayBridges - - - AnnoucementsEnabled - - - NameRecordingEnabled - - - - - - - - ConferencingUserState - - Microsoft.Rtc.Management.Hosted.Cbd.ConferencingUserState - - - - - - - Identity - - - SipAddress - - - DisplayName - - - PstnConferencingLicenseState - - - Provider - - - Domain - - - TollNumber - - - TollFreeNumbers - - - ConferenceId - - - Url - - - - - - - - OnlineDialinConferencingServiceConfiguration - - Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialinConferencingServiceConfiguration - - - - - - - AnonymousCallerGracePeriod - - - AnonymousCallerMeetingRuntime - - - AuthenticatedCallerMeetingRuntime - - - AvailableCountries - - - - - - - - LocalSubscribeInfo - - Microsoft.Rtc.SyntheticTransactions.Activities.Database.LocalSubscribeInfo - - - - - - 10 - - - - 10 - - - - 15 - - - - 27 - - - - 25 - - - - - - - DeliveryId - - - ContainerNum - - - CategoryName - - - LastChanged - - - OriginatedFrontEnd - - - - - - - - OnlineDialinNumberMap - - Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialInConferencingNumberMap - - - - - - - Identity - - - Geocodes - - - - - - - - OnlineDialInConferencingMarketProfile - - Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialInConferencingMarketProfile - - - - - - - Identity - - - Code - - - NumberMaps - - - - - - - - DisplayGraphApiConfigurationView - - Microsoft.Rtc.Management.WritableConfig.Settings.GraphApiConfiguration.DisplayGraphApiConfiguration - - - - - - - Identity - - - LoginUri - - - GraphUri - - - ClientId - - - GraphLookupEnabled - - - GraphReadWriteEnabled - - - AdminAuthGraphEnabled - - - TenantRemotePowershellClientId - - - - - - - - PersonName - - Microsoft.Rtc.Management.Hosted.Online.Models.PersonName - - - - - - - FirstName - - - MiddleName - - - LastName - - - DisplayName - - - - - - - - StatusRecord - - Microsoft.Rtc.Management.Hosted.Online.Models.StatusRecord - - - - - - - Type - - - Status - - - Id - - - StatusCode - - - Message - - - StatusTimestamp - - - - - - - - ApplicationInstanceSummary - - Microsoft.Rtc.Management.Hosted.Online.Models.ApplicationInstanceSummary - - - - - - - Id - - - TenantId - - - UserPrincipalName - - - ApplicationId - - - ConfigurationType - - - DisplayName - - - PhoneNumber - - - ConfigurationId - - - ConfigurationName - - - IsOnprem - - - - - - - - FindApplicationInstanceResult - - Microsoft.Rtc.Management.Hosted.Online.Models.FindApplicationInstanceResult - - - - - - - Id - - - Name - - - TelephoneNumber - - - - - - - - ApplicationInstanceAssociation - - Microsoft.Rtc.Management.Hosted.Online.Models.ApplicationInstanceAssociation - - - - - - - Id - - - ConfigurationType - - - ConfigurationId - - - CallPriority - - - - - - - - AssociationOperationOutput - - Microsoft.Rtc.Management.Hosted.Online.Models.AssociationOperationOutput - - - - - - - - DisplayResults - - - - - - - - AssociationOperationResult - - Microsoft.Rtc.Management.Hosted.Online.Models.AssociationOperationResult - - - - - - - Id - - - ConfigurationType - - - ConfigurationId - - - Result - - - StatusCode - - - StatusMessage - - - - - - - - BatchAssignPolicyOutput - - Microsoft.Rtc.Management.Hosted.Online.Models.BatchAssignPolicyOutput - - - - - - - PolicyName - - - PolicyType - - - Succeeded - - - - DisplayFailedResults - - - - - - - - BatchAssignPolicyFailedResult - - Microsoft.Rtc.Management.Hosted.Online.Models.BatchAssignPolicyFailedResult - - - - - - - Identity - - - ErrorCategory - - - ErrorDetails - - - - - - - - AudioFile - - Microsoft.Rtc.Management.Hosted.Online.Models.AudioFile - - - - - - - Id - - - FileName - - - ApplicationId - - - - - - - - TimeRange - - Microsoft.Rtc.Management.Hosted.Online.Models.TimeRange - - - - - - - Start - - - End - - - - - - - - DateTimeRange - - Microsoft.Rtc.Management.Hosted.Online.Models.DateTimeRange - - - - - - - - DisplayStart - - - - DisplayEnd - - - - - - - - WeeklyRecurrentSchedule - - Microsoft.Rtc.Management.Hosted.Online.Models.WeeklyRecurrentSchedule - - - - - - - ComplementEnabled - - - - DisplayMondayHours - - - - DisplayTuesdayHours - - - - DisplayWednesdayHours - - - - DisplayThursdayHours - - - - DisplayFridayHours - - - - DisplaySaturdayHours - - - - DisplaySundayHours - - - - - - - - FixedSchedule - - Microsoft.Rtc.Management.Hosted.Online.Models.FixedSchedule - - - - - - - - DisplayDateTimeRanges - - - - - - - - Schedule - - Microsoft.Rtc.Management.Hosted.Online.Models.Schedule - - - - - - - Id - - - Name - - - Type - - - - DisplayWeeklyRecurrentSchedule - - - - DisplayFixedSchedule - - - - DisplayAssociatedConfigurationIds - - - - - - - - Voice - - Microsoft.Rtc.Management.Hosted.OAA.Models.Voice - - - - - - - Name - - - Id - - - - - - - - Language - - Microsoft.Rtc.Management.Hosted.OAA.Models.Language - - - - - - - Id - - - DisplayName - - - - DisplayVoices - - - VoiceResponseSupported - - - - - - - - Prompt - - Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt - - - - - - - ActiveType - - - TextToSpeechPrompt - - - - DisplayAudioFilePrompt - - - - - - - - MenuOption - - Microsoft.Rtc.Management.Hosted.OAA.Models.MenuOption - - - - - - - Action - - - DtmfResponse - - - VoiceResponses - - - - DisplayCallTarget - - - - DisplayPrompt - - - - - - - - Menu - - Microsoft.Rtc.Management.Hosted.OAA.Models.Menu - - - - - - - Name - - - - DisplayPrompts - - - - DisplayMenuOptions - - - DialByNameEnabled - - - DirectorySearchMethod - - - - - - - - CallFlow - - Microsoft.Rtc.Management.Hosted.OAA.Models.CallFlow - - - - - - - Id - - - Name - - - - DisplayGreetings - - - - DisplayMenu - - - ForceListenMenuEnabled - - - - - - - - TimeZone - - Microsoft.Rtc.Management.Hosted.OAA.Models.TimeZone - - - - - - - Id - - - DisplayName - - - - - - - - CallableEntity - - Microsoft.Rtc.Management.Hosted.OAA.Models.CallableEntity - - - - - - - Id - - - Type - - - EnableTranscription - - - EnableSharedVoicemailSystemPromptSuppression - - - CallPriority - - - - - - - - CallHandlingAssociation - - Microsoft.Rtc.Management.Hosted.OAA.Models.CallHandlingAssociation - - - - - - - Type - - - ScheduleId - - - CallFlowId - - - Enabled - - - - - - - - DialScope - - Microsoft.Rtc.Management.Hosted.OAA.Models.DialScope - - - - - - - Type - - - - DisplayGroupScope - - - - - - - - GroupDialScope - - Microsoft.Rtc.Management.Hosted.OAA.Models.GroupDialScope - - - - - - - GroupIds - - - - - - - - DirectoryLookupScope - - Microsoft.Rtc.Management.Hosted.OAA.Models.DirectoryLookupScope - - - - - - - - DisplayInclusionScope - - - - DisplayExclusionScope - - - - - - - - TenantInformation - - Microsoft.Rtc.Management.Hosted.OAA.Models.TenantInformation - - - - - - - DefaultLanguageId - - - DefaultTimeZoneId - - - FlightedFeatures - - - - - - - - StatusRecord - - Microsoft.Rtc.Management.Hosted.OAA.Models.StatusRecord - - - - - - - Type - - - Status - - - Id - - - ErrorCode - - - Message - - - StatusTimestamp - - - - - - - - Endpoint - - Microsoft.Rtc.Management.Hosted.Online.Models.Endpoint - - - - - - - Id - - - DisplayName - - - SipUri - - - LineUri - - - - - - - - - AutoAttendant - - Microsoft.Rtc.Management.Hosted.OAA.Models.AutoAttendant - - - - - - - Identity - - - TenantId - - - Name - - - LanguageId - - - VoiceId - - - - DisplayDefaultCallFlow - - - - DisplayOperator - - - TimeZoneId - - - VoiceResponseEnabled - - - - DisplayCallFlows - - - - DisplaySchedules - - - - DisplayCallHandlingAssociations - - - - DisplayStatus - - - DialByNameResourceId - - - - DisplayDirectoryLookupScope - - - ApplicationInstances - - - GreetingsSettingAuthorizedUsers - - - UserNameExtension - - - - - - - - OrgAutoAttendant - - Microsoft.Rtc.Management.Hosted.OAA.Models.OrgAutoAttendant - - - - - - - PrimaryUri - - - TenantId - - - Name - - - LineUris - - - LanguageId - - - VoiceId - - - - DisplayDefaultCallFlow - - - - DisplayOperator - - - TimeZoneId - - - VoiceResponseEnabled - - - - DisplayCallFlows - - - - DisplaySchedules - - - - DisplayCallHandlingAssociations - - - - DisplayStatus - - - DialByNameResourceId - - - - DisplayDirectoryLookupScope - - - - - - - - OaaHolidayImportResult - - Microsoft.Rtc.Management.Hosted.OAA.Models.HolidayImportResult - - - - - - - Name - - - - DisplayDateTimeRanges - - - Succeeded - - - FailureReason - - - - - - - - Summary - - Microsoft.Rtc.Management.Hosted.OAA.Models.HolidayImportResult - - - - - - 24 - - - - 40 - - - - 10 - - - - 60 - - - - - - - Name - - - DisplayDateTimeRanges - - - Succeeded - - - FailureReason - - - - - - - - OaaHolidays - - Microsoft.Rtc.Management.Hosted.OAA.Models.HolidayVisRecord - - - - - - - Year - - - Name - - - - DisplayDateTimeRanges - - - - DisplayGreetings - - - - DisplayCallAction - - - - - - - - Year - - Microsoft.Rtc.Management.Hosted.OAA.Models.HolidayVisRecord - - - Year - - - - - - 24 - - - - 40 - - - - 60 - - - - 60 - - - - - - - Name - - - DisplayDateTimeRanges - - - DisplayGreetings - - - DisplayCallAction - - - - - - - - TransferTarget - - Microsoft.Rtc.Management.Hosted.Voicemail.Models.TransferTarget - - - - - - - TenantId - - - SipUri - - - TelUri - - - ObjectId - - - Type - - - RawInput - - - - - - - - VoicemailUserSettings - - Microsoft.Rtc.Management.Hosted.Voicemail.Models.VoicemailUserSettings - - - - - - - VoicemailEnabled - - - PromptLanguage - - - OofGreetingEnabled - - - OofGreetingFollowAutomaticRepliesEnabled - - - ShareData - - - CallAnswerRule - - - DefaultGreetingPromptOverwrite - - - DefaultOofGreetingPromptOverwrite - - - - DisplayTransferTarget - - - - - - - - HuntGroup - - Microsoft.Rtc.Management.Hosted.HuntGroup.Models.HuntGroup - - - - - - - - TenantId - - - - Name - - - - PrimaryUri - - - - LineUri - - - - RoutingMethod - - - - DisplayDistributionLists - - - - DistributionListsLastExpanded - - - - DisplayAgents - - - - AllowOptOut - - - - AgentsCapped - - - - AgentsInSyncWithDistributionLists - - - - AgentAlertTime - - - - OverflowThreshold - - - - OverflowAction - - - - OverflowActionTarget - - - - TimeoutThreshold - - - - TimeoutAction - - - - TimeoutActionTarget - - - - WelcomeMusicFileName - - - - UseDefaultMusicOnHold - - - - MusicOnHoldFileName - - - - DisplayStatistics - - - - - - - - CallQueue - - Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue - - - - - - - - TenantId - - - - Name - - - - Identity - - - - RoutingMethod - - - - DisplayDistributionLists - - - - DisplayUsers - - - - DistributionListsLastExpanded - - - - DisplayAgents - - - - AllowOptOut - - - - ConferenceMode - - - - PresenceBasedRouting - - - - AgentsCapped - - - - AgentsInSyncWithDistributionLists - - - - AgentAlertTime - - - - LanguageId - - - - OverflowThreshold - - - - OverflowAction - - - - OverflowActionTargetId - - - - OverflowSharedVoicemailTextToSpeechPrompt - - - - OverflowSharedVoicemailAudioFilePrompt - - - - OverflowSharedVoicemailAudioFilePromptFileName - - - - EnableOverflowSharedVoicemailTranscription - - - - TimeoutThreshold - - - - TimeoutAction - - - - TimeoutActionTargetId - - - - TimeoutSharedVoicemailTextToSpeechPrompt - - - - TimeoutSharedVoicemailAudioFilePrompt - - - - TimeoutSharedVoicemailAudioFilePromptFileName - - - - EnableTimeoutSharedVoicemailTranscription - - - - WelcomeMusicFileName - - - - UseDefaultMusicOnHold - - - - MusicOnHoldFileName - - - - DisplayStatistics - - - - DisplayApplicationInstances - - - - ChannelId - - - IsCallbackEnabled - - - CallbackRequestDtmf - - - WaitTimeBeforeOfferingCallbackInSecond - - - NumberOfCallsInQueueBeforeOfferingCallback - - - CallToAgentRatioThresholdBeforeOfferingCallback - - - CallbackOfferAudioFilePromptResourceId - - - CallbackOfferAudioFilePromptFileName - - - CallbackOfferTextToSpeechPrompt - - - ServiceLevelThresholdResponseTimeInSecond - - - - CallbackEmailNotificationTargetId - - - - DisplayOboResourceAccounts - - - - - - - - HuntGroupTenantInformation - - Microsoft.Rtc.Management.Hosted.HuntGroup.Models.HuntGroupTenantInformation - - - - - - - FlightedFeatures - - - - - - - - StatusRecord - - Microsoft.Rtc.Management.Hosted.HuntGroup.Models.StatusRecord - - - - - - - WarningCode - - - Message - - - - - - - - ServiceIdView - - Microsoft.Rtc.Management.Core.WritableConfig.PstnGatewayWritableServiceId - - - - - - - - ; - - - - - - - - OcsAdApplicationContactView - - Microsoft.Rtc.Management.ADConnect.Schema.OCSADApplicationContact - - - - - - - - Identity - - - - RegistrarPool - - - - HomeServer - - - - OwnerUrn - - - - SipAddress - - - - DisplayName - - - - DisplayNumber - - - - LineURI - - - - PrimaryLanguage - - - - SecondaryLanguages - - - - EnterpriseVoiceEnabled - - - - ExUmEnabled - - - - Enabled - - - - - - - - OcsVideoRoomSystemView - - Microsoft.Rtc.Management.ADConnect.Schema.OCSADVideoRoomSystem - - - - - - - - Identity - - - - RegistrarPool - - - - SipAddress - - - - DisplayName - - - - LineURI - - - - Enabled - - - - - - - - OcsHybridApplicationEndpointView - - Microsoft.Rtc.Management.ADConnect.Schema.OCSADApplicationEndpoint - - - - - - - - Identity - - - - ApplicationId - - - - OwnerUrn - - - - EnterpriseVoiceEnabled - - - - Enabled - - - - SipAddress - - - - DisplayName - - - - LineURI - - - - - - - - OcsUserView - - Microsoft.Rtc.Management.ADConnect.Schema.OCSADUser - - - - - - - - Identity - - - - VoicePolicy - - - - VoiceRoutingPolicy - - - - ConferencingPolicy - - - - PresencePolicy - - - - DialPlan - - - - LocationPolicy - - - - ClientPolicy - - - - ClientVersionPolicy - - - - ArchivingPolicy - - - - ExchangeArchivingPolicy - - - - PinPolicy - - - - ExternalAccessPolicy - - - - MobilityPolicy - - - - UserServicesPolicy - - - - CallViaWorkPolicy - - - - ThirdPartyVideoSystemPolicy - - - - HostedVoiceMail - - - - HostedVoicemailPolicy - - - - IPPhonePolicy - - - - HostingProvider - - - - RegistrarPool - - - - Enabled - - - - SipAddress - - - - LineURI - - - - EnterpriseVoiceEnabled - - - - ExUmEnabled - - - - HomeServer - - - - DisplayName - - - - SamAccountName - - - - - - - - OcsAnalogDeviceView - - Microsoft.Rtc.Management.ADConnect.Schema.OCSADAnalogDeviceContact - - - - - - - - Identity - - - - VoicePolicy - - - - VoiceRoutingPolicy - - - - RegistrarPool - - - - Gateway - - - - AnalogFax - - - - Enabled - - - - SipAddress - - - - LineURI - - - - DisplayName - - - - DisplayNumber - - - - ExUmEnabled - - - - - - - - OcsExUmContactView - - Microsoft.Rtc.Management.ADConnect.Schema.OCSADExUmContact - - - - - - - - Identity - - - - RegistrarPool - - - - HomeServer - - - - Enabled - - - - SipAddress - - - - LineURI - - - - OtherIpPhone - - - - AutoAttendant - - - - IsSubscriberAccess - - - - Description - - - - DisplayName - - - - DisplayNumber - - - - HostedVoicemailPolicy - - - - ExUmEnabled - - - - - - - - OcsCommonAreaPhoneView - - Microsoft.Rtc.Management.ADConnect.Schema.OCSADCommonAreaPhoneContact - - - - - - - - Identity - - - - RegistrarPool - - - - Enabled - - - - SipAddress - - - - ClientPolicy - - - - PinPolicy - - - - VoicePolicy - - - - VoiceRoutingPolicy - - - - MobilityPolicy - - - - ConferencingPolicy - - - - LineURI - - - - DisplayNumber - - - - DisplayName - - - - Description - - - - ExUmEnabled - - - - - - - - OcsAccessNumberView - - Microsoft.Rtc.Management.Xds.AccessNumber - - - - - - - - Identity - - - - PrimaryUri - - - - DisplayName - - - - DisplayNumber - - - - LineUri - - - - PrimaryLanguage - - - - SecondaryLanguages - - - - Pool - - - - HostingProvider - - - - Regions - - - - ExternalAccessPolicy - - - - - - - - AgentView - - Microsoft.Rtc.Rgs.Management.WritableSettings.Agent - - - - - - - - UserSid - - - - DisplayName - - - - SipAddress - - - - - - - - AnswerView - - Microsoft.Rtc.Rgs.Management.WritableSettings.Answer - - - - - - - - VoiceResponseList - - - - Action - - - - Name - - - - DtmfResponse - - - - - - - - CallActionView - - Microsoft.Rtc.Rgs.Management.WritableSettings.CallAction - - - - - - - - Prompt - - - - Question - - - - Action - - - - QueueID - - - - Uri - - - - - - - - PromptView - - Microsoft.Rtc.Rgs.Management.WritableSettings.Prompt - - - - - - - - AudioFilePrompt - - - - TextToSpeechPrompt - - - - - - - - AudioFileView - - Microsoft.Rtc.Rgs.Management.WritableSettings.AudioFile - - - - - - - - OriginalFileName - - - - UniqueName - - - - - - - - QuestionView - - Microsoft.Rtc.Rgs.Management.WritableSettings.Question - - - - - - - - Prompt - - - - InvalidAnswerPrompt - - - - NoAnswerPrompt - - - - AnswerList - - - - Name - - - - - - - - BusinessHoursView - - Microsoft.Rtc.Rgs.Management.WritableSettings.BusinessHours - - - - - - - - Identity - - - - MondayHours1 - - - - MondayHours2 - - - - TuesdayHours1 - - - - TuesdayHours2 - - - - WednesdayHours1 - - - - WednesdayHours2 - - - - ThursdayHours1 - - - - ThursdayHours2 - - - - FridayHours1 - - - - FridayHours2 - - - - SaturdayHours1 - - - - SaturdayHours2 - - - - SundayHours1 - - - - SundayHours2 - - - - Name - - - - Description - - - - Custom - - - - OwnerPool - - - - - - - - TimeRangeView - - Microsoft.Rtc.Rgs.Management.WritableSettings.TimeRange - - - - - - - - Name - - - - OpenTime - - - - CloseTime - - - - - - - - AgentGroupView - - Microsoft.Rtc.Rgs.Management.WritableSettings.AgentGroup - - - - - - - - Identity - - - - Name - - - - Description - - - - ParticipationPolicy - - - - AgentAlertTime - - - - RoutingMethod - - - - DistributionGroupAddress - - - - OwnerPool - - - - AgentsByUri - - - - - - - - AgentGroupsToAgentsMapView - - Microsoft.Rtc.Rgs.Management.WritableSettings.AgentGroupsToAgentsMap - - - - - - - - Position - - - - - - - - HolidayView - - Microsoft.Rtc.Rgs.Management.WritableSettings.Holiday - - - - - - - - Name - - - - StartDate - - - - EndDate - - - - - - - - HolidaySetView - - Microsoft.Rtc.Rgs.Management.WritableSettings.HolidaySet - - - - - - - - Identity - - - - HolidayList - - - - Name - - - - OwnerPool - - - - - - - - ManagerView - - Microsoft.Rtc.Rgs.Management.WritableSettings.Manager - - - - - - - - UserSid - - - - SipAddress - - - - - - - - OwnerPoolView - - Microsoft.Rtc.Rgs.Management.WritableSettings.OwnerPool - - - - - - - - Fqdn - - - - - - - - QueueView - - Microsoft.Rtc.Rgs.Management.WritableSettings.Queue - - - - - - - - Identity - - - - TimeoutAction - - - - OverflowAction - - - - Name - - - - Description - - - - TimeoutThreshold - - - - OverflowThreshold - - - - OverflowCandidate - - - - OwnerPool - - - - AgentGroupIDList - - - - - - - - QueuesToAgentGroupsMapView - - Microsoft.Rtc.Rgs.Management.WritableSettings.QueuesToAgentGroupsMap - - - - - - - - Position - - - - - - - - ServiceSettingsView - - Microsoft.Rtc.Rgs.Management.WritableSettings.ServiceSettings - - - - - - - - Identity - - - - DefaultMusicOnHoldFile - - - - AgentRingbackGracePeriod - - - - DisableCallContext - - - - - - - - WorkflowView - - Microsoft.Rtc.Rgs.Management.WritableSettings.Workflow - - - - - - - - Identity - - - - NonBusinessHoursAction - - - - HolidayAction - - - - DefaultAction - - - - CustomMusicOnHoldFile - - - - Name - - - - Description - - - - PrimaryUri - - - - Active - - - - Language - - - - TimeZone - - - - BusinessHoursID - - - - Anonymous - - - - Managed - - - - OwnerPool - - - - DisplayNumber - - - - EnabledForFederation - - - - LineUri - - - - HolidaySetIDList - - - - ManagersByUri - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/6.9.0/_manifest/spdx_2.2/bsi.json b/Modules/MicrosoftTeams/6.9.0/_manifest/spdx_2.2/bsi.json deleted file mode 100644 index 4e26b5075f89..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/_manifest/spdx_2.2/bsi.json +++ /dev/null @@ -1 +0,0 @@ -{"Source":"InternalBuild","Data":{"System.CollectionId":"2ce6486e-7d3b-47bb-8e16-5f19a43015c9","System.DefinitionId":"17372","System.TeamProjectId":"81cf09ca-992f-4cab-9a5f-96d728b4c339","System.TeamProject":"SBS","Build.BuildId":"68341517","Build.BuildNumber":"2.250313.1","Build.DefinitionName":"infrastructure_itpro_teamspowershellmodule","Build.DefinitionRevision":"90","Build.Repository.Name":"infrastructure_itpro_teamspowershellmodule","Build.Repository.Provider":"TfsGit","Build.Repository.Id":"fe62ea1f-ff64-4287-87a3-b6184a6fc36c","Build.SourceBranch":"refs/heads/release/6.9.0","Build.SourceBranchName":"6.9.0","Build.SourceVersion":"8e0915efef4b74a8ac6c8cdf3f27206acfebc8eb","Build.Repository.Uri":"https://skype.visualstudio.com/SBS/_git/infrastructure_itpro_teamspowershellmodule","EbomId":"c57f5d62-8a80-538d-8884-af0d13fcaf61","1ES.PT.TemplateType":"official"},"Feed":null} \ No newline at end of file diff --git a/Modules/MicrosoftTeams/6.9.0/_manifest/spdx_2.2/manifest.cat b/Modules/MicrosoftTeams/6.9.0/_manifest/spdx_2.2/manifest.cat deleted file mode 100644 index 0a09776d262e..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/_manifest/spdx_2.2/manifest.cat and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/_manifest/spdx_2.2/manifest.spdx.json b/Modules/MicrosoftTeams/6.9.0/_manifest/spdx_2.2/manifest.spdx.json deleted file mode 100644 index 8d3cd1283c4f..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/_manifest/spdx_2.2/manifest.spdx.json +++ /dev/null @@ -1,7874 +0,0 @@ -{ - "files": [ - { - "fileName": "./../../_manifest/spdx_2.2/manifest.spdx.json", - "SPDXID": "SPDXRef-File--..-..--manifest-spdx-2.2-manifest.spdx.json-2728245FEFA2734980680C32B0058F0D4EF20118", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "c81849041a508889e2a8516b530f17a6bba6e992b7c4b833829d9bf98ca4891b" - }, - { - "algorithm": "SHA1", - "checksumValue": "2728245fefa2734980680c32b0058f0d4ef20118" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION", - "fileTypes": [ - "SPDX" - ] - }, - { - "fileName": "./Microsoft.Teams.ConfigAPI.Cmdlets.psm1", - "SPDXID": "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.psm1-F5B16B05E0F5067A5F131E9152E4F7E9CCE40C84", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "6f56f273889883ec106c7e74a59af4febf6ca33cf3ac4cb19ba0597418f53723" - }, - { - "algorithm": "SHA1", - "checksumValue": "f5b16b05e0f5067a5f131e9152e4f7e9cce40c84" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./Microsoft.Teams.ConfigAPI.Cmdlets.psd1", - "SPDXID": "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.psd1-E7DA3B0D86B9CB991864AE03C6CC2424A1FEC399", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "56f696b2f8c9825d42f774e2b98a8356d4f8c2c8d6b7b812cfacd52eba7c9897" - }, - { - "algorithm": "SHA1", - "checksumValue": "e7da3b0d86b9cb991864ae03c6cc2424a1fec399" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./LICENSE.txt", - "SPDXID": "SPDXRef-File--LICENSE.txt-AB40082210620A2914D58B309A048459E784E962", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "1cd91cba185bdde7d815c11eb1fd9ec359715d9c071172dc964755c5801ad905" - }, - { - "algorithm": "SHA1", - "checksumValue": "ab40082210620a2914d58b309a048459e784e962" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1-C4489D915FBB8DCC6AEACFB0320504FE81DB08FC", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "c2a053276dc1060455d2d86137b0b1321859dc8f91b74485056f5459cabd34ea" - }, - { - "algorithm": "SHA1", - "checksumValue": "c4489d915fbb8dcc6aeacfb0320504fe81db08fc" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./GetTeamSettings.format.ps1xml", - "SPDXID": "SPDXRef-File--GetTeamSettings.format.ps1xml-E66927F7AE3DE7DEAACFF01335F05CDB0C13F28F", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "21618c3391e39dbf42e5b4b5ec580cda7c2b48edf7c5fe2f2d0498e79411e13a" - }, - { - "algorithm": "SHA1", - "checksumValue": "e66927f7ae3de7deaacff01335f05cdb0c13f28f" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1-6412E37995E4B4D9D097DD64B39A6CC6CE676668", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "ee59d882b04cbbb358dc2b5080e9b30601a971125e55f9f7a9754177dbf69bd9" - }, - { - "algorithm": "SHA1", - "checksumValue": "6412e37995e4b4d9d097dd64b39a6cc6ce676668" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml-32B487D0909CAB4D1948F9F376714285E81A8DB0", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "33396aeb06b51657b6f412ceab39c94e707e7e57794a5cf00a15a1a5975ebe69" - }, - { - "algorithm": "SHA1", - "checksumValue": "32b487d0909cab4d1948f9f376714285e81a8db0" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml-71DC7937163DA27B00EC15A28CAED3D78FE29DD2", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "fa9039a6cba0aff93072948955e2c889f5b7c4c3ee5fb2bc8d32779c82b78e1e" - }, - { - "algorithm": "SHA1", - "checksumValue": "71dc7937163da27b00ec15a28caed3d78fe29dd2" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml-930E9644B040B411D2F46CB26AF7A4C2265151A7", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "441fe38dc7da1565b57a7f7f4a37cb246bd304adca136374a63f29877dd12ff9" - }, - { - "algorithm": "SHA1", - "checksumValue": "930e9644b040b411d2f46cb26af7a4c2265151a7" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoicemail.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoicemail.format.ps1xml-2FDA4D69648167DDD7297B4A1A997DACFF095B28", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "1c1a8a01e735c0b7512230db8aa91fd16d6bccae7147281ab148f68c254d39f7" - }, - { - "algorithm": "SHA1", - "checksumValue": "2fda4d69648167ddd7297b4a1a997dacff095b28" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml-C4DDB17318183C00A5E5770902D1A3EB6AAF5261", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "7423e61b4636ce5c2158aab827f22a0e61695476d6630dc71b71d2be43427bca" - }, - { - "algorithm": "SHA1", - "checksumValue": "c4ddb17318183c00a5e5770902d1a3eb6aaf5261" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml-A46F3035EEFEDF00B8CDE21DE343EEFD83E446D2", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "b628ca06ec637ceee4e9b07f44c8d3832c66c41354162233172377c7ed86b6f2" - }, - { - "algorithm": "SHA1", - "checksumValue": "a46f3035eefedf00b8cde21de343eefd83e446d2" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml-DA393D2FAB3D188D7F6776B6C9C45070D08AC9BB", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "15937fad13112170385ec6b7a3dc1efbd5ddf5e5b5e98e95f5fd9d8bd8cedffa" - }, - { - "algorithm": "SHA1", - "checksumValue": "da393d2fab3d188d7f6776b6c9c45070d08ac9bb" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml-1BC047D58F3C687DBF2A59343F32AC199FD3D639", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "c3846842ca5e4ba13369df86cbcbe527c5965d067bf572704cecbd0d08f07846" - }, - { - "algorithm": "SHA1", - "checksumValue": "1bc047d58f3c687dbf2a59343f32ac199fd3d639" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.xml-88C2B299A3EFEDAD1899AA8B26920DDE35863A3C", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "4a314344b36ff15c11166f2aa5d1b5e313448cda0ddf2fbc1eeed8d0f78b6f65" - }, - { - "algorithm": "SHA1", - "checksumValue": "88c2b299a3efedad1899aa8b26920dde35863a3c" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1-B31677218781C20421DEB4AC2E47AC30080D5295", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "24a4c07043ba2e4546bb4a270a3e653e141e3c2bb09f5bac0ed84eaf28764de6" - }, - { - "algorithm": "SHA1", - "checksumValue": "b31677218781c20421deb4ac2e47ac30080d5295" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml-D04E07A66948CADD7EBB83F95043FDE053988372", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "6d9743d5676d44d739c7ae2275bbd163e1c84ee26afd33510c1e8551503fc346" - }, - { - "algorithm": "SHA1", - "checksumValue": "d04e07a66948cadd7ebb83f95043fde053988372" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml-88BCBD1D58A1AC9900E59525862974D9DEE1BF59", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "d267a3474a2b006765e9e2ceabd43d3dc5681a0e651a1d1b47c8b0ff703e885d" - }, - { - "algorithm": "SHA1", - "checksumValue": "88bcbd1d58a1ac9900e59525862974d9dee1bf59" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./Microsoft.Teams.Policy.Administration.xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.xml-56E8BFB9F020ADF074710972F5AFD1B1CED156FD", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "6e11132a8afa44b044667064190ba3e354f5a705eaf6952bccd22b1100c4dc16" - }, - { - "algorithm": "SHA1", - "checksumValue": "56e8bfb9f020adf074710972f5afd1b1ced156fd" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml-AF10A9A63811B95CB21A02E6A60D284CEECD0702", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "32913ab24cea0e4665312f67d3ec18af0090ea387972922b2588ada3279a610c" - }, - { - "algorithm": "SHA1", - "checksumValue": "af10a9a63811b95cb21a02e6a60d284ceecd0702" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSipDevicesConfiguration.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSipDevicesConfiguration.format.ps1xml-B9B6853D0B588AC40F40E59E8B28541AC4E94A01", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "684a37d178d988b2e400d0a06daed20839da5c68c7cdeb0f091a431ac0ee3c14" - }, - { - "algorithm": "SHA1", - "checksumValue": "b9b6853d0b588ac40f40e59e8b28541ac4e94a01" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./Microsoft.Teams.Policy.Administration.psd1", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.psd1-BDB249356E8211BC630905E16BCF5C1124AF0FD0", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "b0f5c12071bd19db7605ab7f591337b5a986debb713bd333a9efc0701debb459" - }, - { - "algorithm": "SHA1", - "checksumValue": "bdb249356e8211bc630905e16bcf5c1124af0fd0" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml-616B04ECFAC318530AFB8ED3860C4B29F2E266E0", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "e94d22fe3a11cf86dac0af8972542d32dc8422d934bc3bbb3f8d840fef52f3f5" - }, - { - "algorithm": "SHA1", - "checksumValue": "616b04ecfac318530afb8ed3860c4b29f2e266e0" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.format.ps1xml-EDB8F8E8596114280342B76A7D9541CE9D1BA87D", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "6eaecd9b9a1d300612349a2ca7bf5f089b85bbb83e9220e9f15f12ccfc23d69b" - }, - { - "algorithm": "SHA1", - "checksumValue": "edb8f8e8596114280342b76a7d9541ce9d1ba87d" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./SetMSTeamsReleaseEnvironment.ps1", - "SPDXID": "SPDXRef-File--SetMSTeamsReleaseEnvironment.ps1-87F8D8BFAA46BECF27650ACAEEA5D003C6290442", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "f37702621eec81c5babe14dedce7745d5319fc1f749945a7bfbeeb5e9dd205f7" - }, - { - "algorithm": "SHA1", - "checksumValue": "87f8d8bfaa46becf27650acaeea5d003c6290442" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml-0CB075DAB1855A7400A1E15A2B51C9D2EFF46CE0", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "a2cdc68f403c16b5b8df92707c1d66b864319e697135328cd3146637dfbeaf4e" - }, - { - "algorithm": "SHA1", - "checksumValue": "0cb075dab1855a7400a1e15a2b51c9d2eff46ce0" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./Microsoft.Teams.PowerShell.TeamsCmdlets.xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.PowerShell.TeamsCmdlets.xml-5DBC199B8EB3CF8EAEBE7DCBAC617202D699C3C1", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "ad1068cd8e26c1f4e6430b29fd3b8712417286bea022e9460fdcae0e9b0bd52f" - }, - { - "algorithm": "SHA1", - "checksumValue": "5dbc199b8eb3cf8eaebe7dcbac617202d699c3c1" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./MicrosoftTeams.psd1", - "SPDXID": "SPDXRef-File--MicrosoftTeams.psd1-D58D866A23501E523FBD656C4CC720D5EBCE02EC", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "c03d8bacbefba314b1cf721af1831f94e92c73f8525e95c3ad9b5897ab6ae0e2" - }, - { - "algorithm": "SHA1", - "checksumValue": "d58d866a23501e523fbd656c4cc720d5ebce02ec" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./Microsoft.Teams.PowerShell.Module.xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.PowerShell.Module.xml-EB2B86D36ADE4E37542F46AC4AF2A0E81087E582", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "14e403c1b3082085432ca2f1ae0d47c0491bd4cfd3234bc819493a7b4254c971" - }, - { - "algorithm": "SHA1", - "checksumValue": "eb2b86d36ade4e37542f46ac4af2a0e81087e582" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.format.ps1xml-71EADDADD1B9D91DC54BA78C523F1CACF61C2B8D", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "e228f7c66ec9decb6ba12efb45d5f15992213014f22a2f2228670eeab3067c98" - }, - { - "algorithm": "SHA1", - "checksumValue": "71eaddadd1b9d91dc54ba78c523f1cacf61c2b8d" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./Microsoft.Teams.PowerShell.TeamsCmdlets.psd1", - "SPDXID": "SPDXRef-File--Microsoft.Teams.PowerShell.TeamsCmdlets.psd1-EBB0E74C42A70956C0CA5244D621AB81DA10B85C", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "26dd72021e2aaf37642d9dffab1a4e719005ea2cdaacd2a84fe61daba408ea05" - }, - { - "algorithm": "SHA1", - "checksumValue": "ebb0e74c42a70956c0ca5244d621ab81da10b85c" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./bin/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll", - "SPDXID": "SPDXRef-File--bin-Microsoft.Teams.ConfigAPI.CmdletHostContract.dll-6F3F98C18838CBB8DACE08FF4ECC30EFE3A197AA", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "8e63810be73780366cf742d29d814177179b7a305c3cddfd67e0febffee5e2ae" - }, - { - "algorithm": "SHA1", - "checksumValue": "6f3f98c18838cbb8dace08ff4ecc30efe3a197aa" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml-BD8DFBE00DFAA0D0E6AF7E506E72587AD3707949", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "8264185014bc6fc6b1d12ae167af907d854244a01e5ca073da127a74c2a10343" - }, - { - "algorithm": "SHA1", - "checksumValue": "bd8dfbe00dfaa0d0e6af7e506e72587ad3707949" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml-98FB01D72EBCC9822A8F2D2B371A67F5EB68FFD9", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "45436033258db265663a1248e0e3eb4e9cbbabd5f9491ca74841b969af55f91a" - }, - { - "algorithm": "SHA1", - "checksumValue": "98fb01d72ebcc9822a8f2d2b371a67f5eb68ffd9" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml-9417D46A85A911FA23CE8E775EAF663D47E8B91E", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "87ad52a24061b66a5f8b09a2770132bcb4706cbc7a516c5908bbcab2f62b78d6" - }, - { - "algorithm": "SHA1", - "checksumValue": "9417d46a85a911fa23ce8e775eaf663d47e8b91e" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./bin/Microsoft.IdentityModel.JsonWebTokens.dll", - "SPDXID": "SPDXRef-File--bin-Microsoft.IdentityModel.JsonWebTokens.dll-227778A7338B81B1F88A8C55C969788F3383CA68", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "5f14c5dec7d869e0ae275e4641f08260bc59a8d950b6ad7d98b8ae020c514473" - }, - { - "algorithm": "SHA1", - "checksumValue": "227778a7338b81b1f88a8c55c969788f3383ca68" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./Microsoft.Teams.Policy.Administration.psm1", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.psm1-AE8669C62DFEE408211B63FE289AE73FB7CB8226", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "a74595cfdb00e91f8d829a6a0ab32c231c898b9c0c0614feeafc8e14f8d90093" - }, - { - "algorithm": "SHA1", - "checksumValue": "ae8669c62dfee408211b63fe289ae73fb7cb8226" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1-3645045DB00FB7936728DB289A751F140C40C2F4", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "c4c985b34afbee03fbe5fd8907f749528a0d61bc5351c14ea25ca3ea6d9b2b3c" - }, - { - "algorithm": "SHA1", - "checksumValue": "3645045db00fb7936728db289a751f140c40c2f4" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./MicrosoftTeams.psm1", - "SPDXID": "SPDXRef-File--MicrosoftTeams.psm1-677F340F6A09AF90028872DA008A7FCAA276A712", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "42880c975b1e0dbb8fc4d8bd30b4285c810a98e0ec25c70b4676a294a3c9ad70" - }, - { - "algorithm": "SHA1", - "checksumValue": "677f340f6a09af90028872da008a7fcaa276a712" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.format.ps1xml-7CE7E09C5E96B365C6F8EB212DA643B9DD5DE240", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "8b26f2d3134239011517416fa73d523894e3d4288e4c0fd248df013308ec39e3" - }, - { - "algorithm": "SHA1", - "checksumValue": "7ce7e09c5e96b365c6f8eb212da643b9dd5de240" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.deps.json", - "SPDXID": "SPDXRef-File--bin-Microsoft.Teams.ConfigAPI.Cmdlets.private.deps.json-CAB9DE08F21E8916314D36604F06D249C2A83626", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "84fbee4df9163945da6f06785e34c9c4a0d3067d911cae7e733bd437ced413cf" - }, - { - "algorithm": "SHA1", - "checksumValue": "cab9de08f21e8916314d36604f06d249c2a83626" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml-24E642012530FA743ADD7F903D0165BB29E00604", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "e07372e41c9e9af982552c5e540ad585676701092f009b201460203a5c1e1b21" - }, - { - "algorithm": "SHA1", - "checksumValue": "24e642012530fa743add7f903d0165bb29e00604" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./Microsoft.Teams.PowerShell.TeamsCmdlets.psm1", - "SPDXID": "SPDXRef-File--Microsoft.Teams.PowerShell.TeamsCmdlets.psm1-F98549806F61CDB2530B101B2B69BD035DF85B2A", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "ab5f4a723e287091dd41c105e2b87cf9f9ee6cc43e9b99d81fecdce6b593e2b6" - }, - { - "algorithm": "SHA1", - "checksumValue": "f98549806f61cdb2530b101b2b69bd035df85b2a" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./en-US/Microsoft.TeamsCmdlets.PowerShell.Connect.dll-Help.xml", - "SPDXID": "SPDXRef-File--en-US-Microsoft.TeamsCmdlets.PowerShell.Connect.dll-Help.xml-947B614808FBC38EB26AFF3605D9ACDED0A6335E", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "2de3dbead81c3f1691e1d8156751388c50e9544ab3b50009777289b92ed40286" - }, - { - "algorithm": "SHA1", - "checksumValue": "947b614808fbc38eb26aff3605d9acded0a6335e" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./bin/Microsoft.IdentityModel.Logging.dll", - "SPDXID": "SPDXRef-File--bin-Microsoft.IdentityModel.Logging.dll-76154A6F904907CE1DF9EF3FC1DD3F113D7D9563", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "f795f8daebf38157155627e4d4ad8d91316f84ca388dd56518cb31df72b6d7a2" - }, - { - "algorithm": "SHA1", - "checksumValue": "76154a6f904907ce1df9ef3fc1dd3f113d7d9563" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./custom/Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1", - "SPDXID": "SPDXRef-File--custom-Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1-53627F621AE9B37AC5FF3E2150695AFFEB8006CE", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "9bbf56d5841fdb340ea8565f4f8363e2e0c1e7aa498a88cf460ec4eb5344f141" - }, - { - "algorithm": "SHA1", - "checksumValue": "53627f621ae9b37ac5ff3e2150695affeb8006ce" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Azure.KeyVault.AzureServiceDeploy.dll-EB2F293B5498B17F986E3F753D6287D7513BFC98", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "a5614dde1eb7f43314ebd1dee8dfe59b0f5cddb9ce5465ccd505835022eee696" - }, - { - "algorithm": "SHA1", - "checksumValue": "eb2f293b5498b17f986e3f753d6287d7513bfc98" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/CmdletSettings.json", - "SPDXID": "SPDXRef-File--net472-CmdletSettings.json-98919B572DB8494892B52408CD0FE23531388E32", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "c0549eba3a249ef431b0d0c61ee232c815b74fe0cfa1b41b0860a8531f33e6dd" - }, - { - "algorithm": "SHA1", - "checksumValue": "98919b572db8494892b52408cd0fe23531388e32" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.Extensions.Configuration.Abstractions.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Extensions.Configuration.Abstractions.dll-0599C3335163FEE0DB7FDDAF8AA1AC37D4527BD8", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "bd764f70919ac9157adb1aac5f1f326b4310344b99f4d8c60016267189c1cff3" - }, - { - "algorithm": "SHA1", - "checksumValue": "0599c3335163fee0db7fddaf8aa1ac37d4527bd8" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.Extensions.Logging.Abstractions.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Extensions.Logging.Abstractions.dll-97C127F56F765DB81C20B79EBF0C5EC77FCA91DE", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "b7ec55848825d3399a53c8face1207372d92b740e51085433f9040e88d64b844" - }, - { - "algorithm": "SHA1", - "checksumValue": "97c127f56f765db81c20b79ebf0c5ec77fca91de" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./en-US/Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml", - "SPDXID": "SPDXRef-File--en-US-Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml-9333D21AB69E71AAF15772ED7435627BE249B962", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "7ef423072ff3bd97322481486c2e232d463c0b1796b5ada049a862bc6733d85f" - }, - { - "algorithm": "SHA1", - "checksumValue": "9333d21ab69e71aaf15772ed7435627be249b962" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.Identity.Client.Desktop.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Identity.Client.Desktop.dll-19B7935AA3C1CA1DFD4119490458010F151FCB58", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "a78b5b0d157bf1034fd8e08f97f3b214f3d9a618e93043f48af90b0597bed1c5" - }, - { - "algorithm": "SHA1", - "checksumValue": "19b7935aa3c1ca1dfd4119490458010f151fcb58" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.Identity.Client.NativeInterop.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Identity.Client.NativeInterop.dll-68FE4586FE952A566810CB6557B05FDBBCB198AA", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "de87a9120bcad8f9da3eb3121b36d67f436e2400a3b3d4fe53071a3a278cd316" - }, - { - "algorithm": "SHA1", - "checksumValue": "68fe4586fe952a566810cb6557b05fdbbcb198aa" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./custom/Merged_custom_PsExt.ps1", - "SPDXID": "SPDXRef-File--custom-Merged-custom-PsExt.ps1-B1391EFA13A93486F43B11FD790B54470B2DC895", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "60dfb901f8b886eeb0cc588a95a73226e7181342a1fcc3e7e3910bae3209b923" - }, - { - "algorithm": "SHA1", - "checksumValue": "b1391efa13a93486f43b11fd790b54470b2dc895" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.Rest.ClientRuntime.Azure.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Rest.ClientRuntime.Azure.dll-AF10C1178CC1CD17419135A97C984C16860E92A2", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "da11e4feeeec387f731859c276fbbc9bb5ed2c8a44697ab98f5ce9ce89184fcc" - }, - { - "algorithm": "SHA1", - "checksumValue": "af10c1178cc1cd17419135a97c984c16860e92a2" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.Teams.PowerShell.Module.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.PowerShell.Module.dll-190ECA374CB2BFE8E610B036FA68708AF9197C48", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "b9b2c3dbbed1fb5503f233e05469ab8c8f81cd16be8521d12c16614e262b4af8" - }, - { - "algorithm": "SHA1", - "checksumValue": "190eca374cb2bfe8e610b036fa68708af9197c48" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./internal/Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1", - "SPDXID": "SPDXRef-File--internal-Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1-210392184B7BFCB88C5058A5E4588CB31E88BD31", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "a7a072ddbd20722f70e87131190b9d836a6c1e85874436bcb8f52f91c2369fa8" - }, - { - "algorithm": "SHA1", - "checksumValue": "210392184b7bfcb88c5058a5e4588cb31e88bd31" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.Applications.Events.Server.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Applications.Events.Server.dll-40FA262F6E55B9E686E39E7C9CFF906167758D0B", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "9e048d339b0bf6233a9599d5f2ecb052af672f74e80d69a0a0704e458b4c9932" - }, - { - "algorithm": "SHA1", - "checksumValue": "40fa262f6e55b9e686e39e7c9cff906167758d0b" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.Data.Sqlite.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Data.Sqlite.dll-32A7F518AAFAA63ACF21DBE5B3D003AA4FDF13FE", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "7d8f6301f9ac77fd70ca34bf9830377a847208dd52da6d5b1c4c46696a42b779" - }, - { - "algorithm": "SHA1", - "checksumValue": "32a7f518aafaa63acf21dbe5b3d003aa4fdf13fe" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.Extensions.DependencyInjection.Abstractions.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Extensions.DependencyInjection.Abstractions.dll-E34966A2959329E48292C1C855499904646E1FDF", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "2196b48c3423ea323c2ee57e129f49d177cc7112b94e90b1d0c548f18b36e71b" - }, - { - "algorithm": "SHA1", - "checksumValue": "e34966a2959329e48292c1c855499904646e1fdf" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.Identity.Client.Broker.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Identity.Client.Broker.dll-6A6F1AC4BF10239703FB38E3E232A945D4985483", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "1b34f0f973d0937e383b428fcace1373fc6c2d94b503f46a9fe0a62fee375c66" - }, - { - "algorithm": "SHA1", - "checksumValue": "6a6f1ac4bf10239703fb38e3e232a945d4985483" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./bin/Microsoft.IdentityModel.Tokens.dll", - "SPDXID": "SPDXRef-File--bin-Microsoft.IdentityModel.Tokens.dll-1CCD6BBFECE7E4CEBE0EAD6264DF0BF80598268E", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "62d33c41ab9d7940b8b6598192c724d3f85a2998c2cf73cf412b29885c8abf21" - }, - { - "algorithm": "SHA1", - "checksumValue": "1ccd6bbfece7e4cebe0ead6264df0bf80598268e" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./SfbRpsModule.format.ps1xml", - "SPDXID": "SPDXRef-File--SfbRpsModule.format.ps1xml-E8F2A420864141D37909CAF2C5171EEB0CE007FC", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "f0046a0d666a0e9b5967feeed51ad7163668fbaf508ac42f71e3b2ea35cc5212" - }, - { - "algorithm": "SHA1", - "checksumValue": "e8f2a420864141d37909caf2c5171eeb0ce007fc" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.Identity.Client.Extensions.Msal.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Identity.Client.Extensions.Msal.dll-E3B240BD80D33F5CAD398AA523888690070A4105", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "52c61ebf43dbcb404efc7332beb42cc35f372b2bc77485e264b30a211eb3570c" - }, - { - "algorithm": "SHA1", - "checksumValue": "e3b240bd80d33f5cad398aa523888690070a4105" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.ConfigAPI.CmdletHostContract.dll-4BABFB7B56B7286779BE1286C8C79A79591FED16", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "2cf59564b93425d757173399aeed2d7d05b69b3900caedf7681990b1dd30de0a" - }, - { - "algorithm": "SHA1", - "checksumValue": "4babfb7b56b7286779be1286c8c79a79591fed16" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./bin/System.IdentityModel.Tokens.Jwt.dll", - "SPDXID": "SPDXRef-File--bin-System.IdentityModel.Tokens.Jwt.dll-0D4C32592D75A8670AE477B9DC2FAAAFB427C6BE", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "c106e27eb9eb4741fbe959dce3caad7095682edcba141a3f38a31495b9b34118" - }, - { - "algorithm": "SHA1", - "checksumValue": "0d4c32592d75a8670ae477b9dc2faaafb427c6be" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.Teams.PowerShell.Module.xml", - "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.PowerShell.Module.xml-EB2B86D36ADE4E37542F46AC4AF2A0E81087E582", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "14e403c1b3082085432ca2f1ae0d47c0491bd4cfd3234bc819493a7b4254c971" - }, - { - "algorithm": "SHA1", - "checksumValue": "eb2b86d36ade4e37542f46ac4af2a0e81087e582" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Polly.Contrib.WaitAndRetry.dll", - "SPDXID": "SPDXRef-File--net472-Polly.Contrib.WaitAndRetry.dll-FFB8199A13EE7EFDB9F9944C785C1FFCA2BFCBDC", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "16f9f2f18e4e01dca14f7ab4b36eb1ef7489da701a6f32c1a11e5a1ed8022629" - }, - { - "algorithm": "SHA1", - "checksumValue": "ffb8199a13ee7efdb9f9944c785c1ffca2bfcbdc" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/System.Numerics.Vectors.dll", - "SPDXID": "SPDXRef-File--net472-System.Numerics.Vectors.dll-452E8A01C01F07F3F969ADD822D5C9EE3B06F8F5", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "49fd6d74c86015d2bc4adc75704b1efc804b53b0b382690b0e01ea350ec1bac2" - }, - { - "algorithm": "SHA1", - "checksumValue": "452e8a01c01f07f3f969add822d5c9ee3b06f8f5" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Newtonsoft.Json.dll", - "SPDXID": "SPDXRef-File--net472-Newtonsoft.Json.dll-1383D41BBE5C43CCF55FAF43AFAD52EC8FF8D046", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "650fd546b291680f356259dd4efff172d5836c36a796ecd14c599c20bb2f46dc" - }, - { - "algorithm": "SHA1", - "checksumValue": "1383d41bbe5c43ccf55faf43afad52ec8ff8d046" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./bin/BrotliSharpLib.dll", - "SPDXID": "SPDXRef-File--bin-BrotliSharpLib.dll-A0EECE0BAEC39F6F8ADF0BEF32291DA277F2982E", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "67edf00c8ea741d8d0fafc0de734c4771690b533b6b1c788dfab802908ce2e17" - }, - { - "algorithm": "SHA1", - "checksumValue": "a0eece0baec39f6f8adf0bef32291da277f2982e" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-868314BED8B479DB1F76FB47405A2600E77A8E9F", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "5ed823f3391713aa831684977f93b6415ef1b72ff89c77af0a81fc475b32e19e" - }, - { - "algorithm": "SHA1", - "checksumValue": "868314bed8b479db1f76fb47405a2600e77a8e9f" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./custom/CmdletConfig.json", - "SPDXID": "SPDXRef-File--custom-CmdletConfig.json-FDD965EFBE7CE49A2E98B4A4A01AD5AF6014A332", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "1dfed75dcb3ef78372e5d1e0129cc49d7c59be1e2924cd0411566600da83176e" - }, - { - "algorithm": "SHA1", - "checksumValue": "fdd965efbe7ce49a2e98b4a4a01ad5af6014a332" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.IdentityModel.Tokens.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.IdentityModel.Tokens.dll-7B80E570F9FEE8A2D72D97864F1BF068FC5B4862", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "ac3f60fe0f285e142909f2117c681c0e7944fadcbe6741376f7d9119c4e860fd" - }, - { - "algorithm": "SHA1", - "checksumValue": "7b80e570f9fee8a2d72d97864f1bf068fc5b4862" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.Teams.Policy.Administration.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.dll-F19C0690D369E263E54B3550829B3BC3B3373EAB", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "f4031c1667a3a864c39db8df24a1561a224fa2e0134070334d3b2c952066ddc9" - }, - { - "algorithm": "SHA1", - "checksumValue": "f19c0690d369e263e54b3550829b3bc3b3373eab" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.Teams.PowerShell.TeamsCmdlets.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.PowerShell.TeamsCmdlets.dll-C8DBCB77D73D0EC26C1A2DDB394CAEB0764EE148", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "012e7c050caaa1fbd91af70929dd37fff30175c794fc6a9da5e7bde231978ba9" - }, - { - "algorithm": "SHA1", - "checksumValue": "c8dbcb77d73d0ec26c1a2ddb394caeb0764ee148" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.Web.WebView2.Wpf.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Web.WebView2.Wpf.dll-59C3DBCF980D39BDF493FD88F95D18B950561FFC", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "cbc3e0a6668d3d90070d7956306b499c043cb8753dc860a8a4cb95bbb4a52c66" - }, - { - "algorithm": "SHA1", - "checksumValue": "59c3dbcf980d39bdf493fd88f95d18b950561ffc" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/System.IO.FileSystem.AccessControl.dll", - "SPDXID": "SPDXRef-File--net472-System.IO.FileSystem.AccessControl.dll-452E03039B5CA030281EEB3D4D6D30573CDDA0EA", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "39eaa3f31d90cfab378cf6278aad48b81475586325fcc790d5689fd95e19b4cc" - }, - { - "algorithm": "SHA1", - "checksumValue": "452e03039b5ca030281eeb3d4d6d30573cdda0ea" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/System.ValueTuple.dll", - "SPDXID": "SPDXRef-File--net472-System.ValueTuple.dll-56A9064127A01A81A522C8E1EEB8485FAE0027C1", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "e1e2bd0e5c724a1ed2bce52ee7286b817bb65d9066eb3371f3bd1da10536af35" - }, - { - "algorithm": "SHA1", - "checksumValue": "56a9064127a01a81a522c8e1eeb8485fae0027c1" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.Azure.KeyVault.Core.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.Core.dll-7844DE4C536065FD3C1F75646F5CFB6BC35045F1", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "4cdf6571f75869cafe99e308e5a2341672d8fe8b05fb1ba01f9a0e2ad70bddaf" - }, - { - "algorithm": "SHA1", - "checksumValue": "7844de4c536065fd3c1f75646f5cfb6bc35045f1" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.Extensions.Logging.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Logging.dll-2613C67F44653C7EF038FD3D344704636F9C458C", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "aed2d6be0a20038571da0f622780d4e12002092538d0e80c6c0e277304ee1b6a" - }, - { - "algorithm": "SHA1", - "checksumValue": "2613c67f44653c7ef038fd3d344704636f9c458c" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.IdentityModel.Abstractions.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.Abstractions.dll-8FA25EE7B7E421667AB078CEFBEE748F8DCE9C07", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "d8d9909f5be5993529f8ddcf995ecd0d41ff327eb222f8e848b96cfb5fd22b9b" - }, - { - "algorithm": "SHA1", - "checksumValue": "8fa25ee7b7e421667ab078cefbee748f8dce9c07" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Polly.dll", - "SPDXID": "SPDXRef-File--net472-Polly.dll-3FFDBCBCD72E454682F91DC4A1594D1DD647387A", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "97b216714bbeabbdb36db32e26d91d5d1751c0912f4f06d6fd6bfabc933b92d4" - }, - { - "algorithm": "SHA1", - "checksumValue": "3ffdbcbcd72e454682f91dc4a1594d1dd647387a" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/System.Runtime.CompilerServices.Unsafe.dll", - "SPDXID": "SPDXRef-File--net472-System.Runtime.CompilerServices.Unsafe.dll-DDE81CDE5080F8156E025A8F1A01729BE95B5807", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "7aacd0a9d10b227cafb540955dccf14f46a2eca8fa6cc7600084a4cac74d508d" - }, - { - "algorithm": "SHA1", - "checksumValue": "dde81cde5080f8156e025a8f1a01729be95b5807" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll-9FEC219620969095B92E01834CF187E9F62D1DDB", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "4cdcaa311ddb813f891caeb5a0e1b1128a89b24b96a6aba3684379e6acafb471" - }, - { - "algorithm": "SHA1", - "checksumValue": "9fec219620969095b92e01834cf187e9f62d1ddb" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/CmdletSettings.json", - "SPDXID": "SPDXRef-File--netcoreapp3.1-CmdletSettings.json-98919B572DB8494892B52408CD0FE23531388E32", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "c0549eba3a249ef431b0d0c61ee232c815b74fe0cfa1b41b0860a8531f33e6dd" - }, - { - "algorithm": "SHA1", - "checksumValue": "98919b572db8494892b52408cd0fe23531388e32" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Configuration.Abstractions.dll-80F5A0681144323256503260FEBF939B9B42048C", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "3cdf3d7afea2be289049b210634b05335fd1cd0440b616200da0439901c8af13" - }, - { - "algorithm": "SHA1", - "checksumValue": "80f5a0681144323256503260febf939b9b42048c" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.Identity.Client.Desktop.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.Desktop.dll-DBC6A8AEF95BB1D4B4A0ECF9F942BA6A72BD4F6D", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "d674bd32f4ed6c21ba577576e1c694b31cc5b84346388a9e0ed4fc3b6c990666" - }, - { - "algorithm": "SHA1", - "checksumValue": "dbc6a8aef95bb1d4b4a0ecf9f942ba6a72bd4f6d" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.TeamsCmdlets.dll-93D5F6EDEAD30A1A06AA64AA00281973163F54BB", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "fa05e6e1bc1f67fff34ad19650baa5cf2d8b20f6f1a9caa83c42c04c0ee57d23" - }, - { - "algorithm": "SHA1", - "checksumValue": "93d5f6edead30a1a06aa64aa00281973163f54bb" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.Rest.ClientRuntime.Azure.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Rest.ClientRuntime.Azure.dll-49CC004D4F9BD6AB0E63CAEB3AE82A0D8DD06153", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "a3257470a8f1f7381b88bc7cdff01fa09e8ab59518906ef8a4e64634729ac608" - }, - { - "algorithm": "SHA1", - "checksumValue": "49cc004d4f9bd6ab0e63caeb3ae82a0d8dd06153" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.Teams.PowerShell.Module.deps.json", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.Module.deps.json-D4914D28F1FBA7C989BE2399783C479E7119825D", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "0a14e3199650416cce0fae7e198e0f2fb327f3e69c19e182f77bfcb57d857d06" - }, - { - "algorithm": "SHA1", - "checksumValue": "d4914d28f1fba7c989be2399783c479e7119825d" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.Web.WebView2.Wpf.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Web.WebView2.Wpf.dll-805068CFD0D0F3CE39C24E069A29A0FA498C912E", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "a6b6b446c9206649b7e5e89774b09197dc1c0912f689aa9a3eba952d0ecc98e5" - }, - { - "algorithm": "SHA1", - "checksumValue": "805068cfd0d0f3ce39c24e069a29a0fa498c912e" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Polly.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Polly.dll-7A9F299BAD62E45CEC06C5F787F6F26A74B28C50", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "5c750b0e7d842b08a14967aa15180093cacea0dd209092123e24c50d4d2316e4" - }, - { - "algorithm": "SHA1", - "checksumValue": "7a9f299bad62e45cec06c5f787f6f26a74b28c50" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/System.Security.Cryptography.ProtectedData.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-System.Security.Cryptography.ProtectedData.dll-5B8C2565E4A82BEA9A35B0164F22CC29B7909A22", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "ac72c81169c24838f7cf3d9c239b991f1fa890a9352fd3a12e3b943530359dc9" - }, - { - "algorithm": "SHA1", - "checksumValue": "5b8c2565e4a82bea9a35b0164f22cc29b7909a22" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/System.Management.Automation.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-System.Management.Automation.dll-F5099C1E1256DFCFD4E594D44DFC9641533B84BC", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "5fc51fb22529ba7ed83661fe6d380e75536f480e351269e9d3cfec9eee2bdc11" - }, - { - "algorithm": "SHA1", - "checksumValue": "f5099c1e1256dfcfd4e594d44dfc9641533b84bc" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./exports/ProxyCmdletDefinitionsWithHelp.ps1", - "SPDXID": "SPDXRef-File--exports-ProxyCmdletDefinitionsWithHelp.ps1-B21C22B608B985806D2B1D947AB81EEBDB33D1E6", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "dc172585c0e04f75e9343a9c438777331c712a2f676f6e143d7ceed1259619c7" - }, - { - "algorithm": "SHA1", - "checksumValue": "b21c22b608b985806d2b1d947ab81eebdb33d1e6" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.Azure.KeyVault.Cryptography.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Azure.KeyVault.Cryptography.dll-1529C65059103BD15EC46D9D116A8661F36AEF78", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "a3d1b1fca08fffe592eacc7c733cd3f7b9ecc8c91975cbe150ea490f3dbaf745" - }, - { - "algorithm": "SHA1", - "checksumValue": "1529c65059103bd15ec46d9d116a8661f36aef78" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.Extensions.Primitives.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Extensions.Primitives.dll-A3FDA086C43113F8A6675CC03EC1A997883961F0", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "4475bf0a564917108c5ec8df647c61c4d5f273340f5a0472287af4c5848bf1f5" - }, - { - "algorithm": "SHA1", - "checksumValue": "a3fda086c43113f8a6675cc03ec1a997883961f0" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./internal/Merged_internal.ps1", - "SPDXID": "SPDXRef-File--internal-Merged-internal.ps1-8B6A6A32D0E25A9AA490B302C1B3B95C16EAB50B", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "cdd39e55b716e2ac93c85e4e3c23bd0a26c1dc3c01b99247e40542a71e5e148f" - }, - { - "algorithm": "SHA1", - "checksumValue": "8b6a6a32d0e25a9aa490b302c1b3b95c16eab50b" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.IdentityModel.JsonWebTokens.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.IdentityModel.JsonWebTokens.dll-42266F6E29E26934C4659749BED13EC55CE54B02", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "521ee07339f4bf4d7aec791df462d5ec30282231dc3a27fee6ca903b55143479" - }, - { - "algorithm": "SHA1", - "checksumValue": "42266f6e29e26934c4659749bed13ec55ce54b02" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll-641DF755825BAF4FD636AFF34518A6A2D97523C1", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "28b6eec05b98f96e11924282cab532ee3e5026328693041de67fc9948e0020ba" - }, - { - "algorithm": "SHA1", - "checksumValue": "641df755825baf4fd636aff34518a6a2d97523c1" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.Azure.KeyVault.Jose.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Azure.KeyVault.Jose.dll-209355D64FC20BE3ABD020675DA878FDAB57C898", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "ea859c3323e06ec8469e9effc2b42d949f22b07d6518bc5de22e815ecb10a872" - }, - { - "algorithm": "SHA1", - "checksumValue": "209355d64fc20be3abd020675da878fdab57c898" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/runtimes/win-x86/native/msalruntime_x86.dll", - "SPDXID": "SPDXRef-File--net472-runtimes-win-x86-native-msalruntime-x86.dll-6C6D745B8F64E24F4DE854274B706AA7D4FA022B", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "e055681d769a23e0b78eb52aaff825c0b7eb8f832795bc2d7c1c7493a46473ed" - }, - { - "algorithm": "SHA1", - "checksumValue": "6c6d745b8f64e24f4de854274b706aa7d4fa022b" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Ic3.TenantAdminApi.Common.Helper.dll-4155FD14ADB09888213D20D177239FA86C7401D9", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "dab859816c8bff6fc9b994aee47780e25edd466fe37f7e2ba9d28aada61e4cb8" - }, - { - "algorithm": "SHA1", - "checksumValue": "4155fd14adb09888213d20d177239fa86c7401d9" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.IdentityModel.Logging.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.IdentityModel.Logging.dll-2F5AAEE65B40587D8A1EA2C64E9B85FD8879515C", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "6019845de90126369b5d520220e9c2ede231af04ecd04742fa264c54db78b4ec" - }, - { - "algorithm": "SHA1", - "checksumValue": "2f5aaee65b40587d8a1ea2c64e9b85fd8879515c" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.Data.Sqlite.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Data.Sqlite.dll-91A07EAE2AED9262D93132E6F9675C4710DAB18C", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "acff6e394ce93400ee001f1f47396d519d65f1ca9f3e8bf8f1e7f341a0b31e4b" - }, - { - "algorithm": "SHA1", - "checksumValue": "91a07eae2aed9262d93132e6f9675c4710dab18c" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.Identity.Client.Broker.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.Broker.dll-2C7F7478065DE9E116C2046201D2F5F3FA88DAF8", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "3b17ca9375a5fe19e9c40eb3287859611ea909fdfaf8f456c41e6bb2d52cced5" - }, - { - "algorithm": "SHA1", - "checksumValue": "2c7f7478065de9e116c2046201d2f5f3fa88daf8" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.Web.WebView2.Core.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Web.WebView2.Core.dll-C5E5287145FD2F278B79A4DC1D82ED29BE4E85C0", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "7152e1341d089a3ac1252fb42ce23beb945eba74e2e9e1510265a17b82990671" - }, - { - "algorithm": "SHA1", - "checksumValue": "c5e5287145fd2f278b79a4dc1d82ed29be4e85c0" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll-971223E90936B738B74BB212CA4FFFB78283E8A8", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "3c76e8fc20ef96d70a6fa4882fc24b6b5c7cbeb8637eab7d814830576c2ed156" - }, - { - "algorithm": "SHA1", - "checksumValue": "971223e90936b738b74bb212ca4fffb78283e8a8" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.Web.WebView2.WinForms.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Web.WebView2.WinForms.dll-789D14D02BD8DC49E8AB1A8FB298E0514F84F92C", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "a96f572b909d82c2a30bfdd16d214e81beca18abfb983e79f707219019fe280c" - }, - { - "algorithm": "SHA1", - "checksumValue": "789d14d02bd8dc49e8ab1a8fb298e0514f84f92c" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/System.Diagnostics.DiagnosticSource.dll", - "SPDXID": "SPDXRef-File--net472-System.Diagnostics.DiagnosticSource.dll-F16FAA5B1F03B2B9B825361DE6BF2B8464C0816B", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "892ede95ba14c00babc3f48c62d1f07d4c01d1fd1e4bcea9807c9ecefefc50b7" - }, - { - "algorithm": "SHA1", - "checksumValue": "f16faa5b1f03b2b9b825361de6bf2b8464c0816b" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/System.IdentityModel.Tokens.Jwt.dll", - "SPDXID": "SPDXRef-File--net472-System.IdentityModel.Tokens.Jwt.dll-F885850D349FD1CCC319A67C577B54AAB7F1D561", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "23f8508180e905ef1cadb8ad6dc9cc9372ece6e9ba13570eb59eb62b3a1ccba4" - }, - { - "algorithm": "SHA1", - "checksumValue": "f885850d349fd1ccc319a67c577b54aab7f1d561" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/System.Security.Principal.Windows.dll", - "SPDXID": "SPDXRef-File--net472-System.Security.Principal.Windows.dll-0E0AACC5E62B8B14D2C2E038B3FA2AFCEB974D42", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "9d092843a6b26b03883e10190c5ca6ea988310f03ae1187793e3e30eee753ee7" - }, - { - "algorithm": "SHA1", - "checksumValue": "0e0aacc5e62b8b14d2c2e038b3fa2afceb974d42" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/System.Security.Cryptography.ProtectedData.dll", - "SPDXID": "SPDXRef-File--net472-System.Security.Cryptography.ProtectedData.dll-E7DD8D5EF9EA37CF058D57927FCA459BA3C931C0", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "226563f2da2948c187264b8aad4e8245644dbfcab1a9646a94dabfd41cd59aa5" - }, - { - "algorithm": "SHA1", - "checksumValue": "e7dd8d5ef9ea37cf058d57927fca459ba3c931c0" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.AzureServiceDeploy.dll-838E72D0988D64CA093AFFE26B42E47D3F2A2B9A", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "0d1c119b6fcb3df24beee58b4760f0a5170ef87883656619163e1ab621651537" - }, - { - "algorithm": "SHA1", - "checksumValue": "838e72d0988d64ca093affe26b42e47d3f2a2b9a" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.Extensions.Logging.Abstractions.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Logging.Abstractions.dll-97C127F56F765DB81C20B79EBF0C5EC77FCA91DE", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "b7ec55848825d3399a53c8face1207372d92b740e51085433f9040e88d64b844" - }, - { - "algorithm": "SHA1", - "checksumValue": "97c127f56f765db81c20b79ebf0c5ec77fca91de" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.Identity.Client.NativeInterop.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.NativeInterop.dll-380415AA8E6892AC0FD9A1893C1EC749CED14875", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "a2b609c7820f42d24a9b02905c196ba69cf49acb1324bcb2bdecf84965379bc1" - }, - { - "algorithm": "SHA1", - "checksumValue": "380415aa8e6892ac0fd9a1893c1ec749ced14875" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./en-US/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-Help.xml", - "SPDXID": "SPDXRef-File--en-US-Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-Help.xml-D11C7D9AC3EF730C07F5D5B6E9BE3C1034CE448E", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "557333e9ae424acc27b453a637a135bc8a2888b4da706ede1ebf257867454bfa" - }, - { - "algorithm": "SHA1", - "checksumValue": "d11c7d9ac3ef730c07f5d5b6e9be3c1034ce448e" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.Applications.Events.Server.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Applications.Events.Server.dll-40FA262F6E55B9E686E39E7C9CFF906167758D0B", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "9e048d339b0bf6233a9599d5f2ecb052af672f74e80d69a0a0704e458b4c9932" - }, - { - "algorithm": "SHA1", - "checksumValue": "40fa262f6e55b9e686e39e7c9cff906167758d0b" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.IdentityModel.Tokens.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.Tokens.dll-81AF1CABB5511C3998C9A107A4D237AF69F5EB55", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "ca1af6584daf198c00743630939e18f1d49f57ee210b642ac2f3a748053c3aa9" - }, - { - "algorithm": "SHA1", - "checksumValue": "81af1cabb5511c3998c9a107a4d237af69f5eb55" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.DependencyInjection.Abstractions.dll-E34966A2959329E48292C1C855499904646E1FDF", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "2196b48c3423ea323c2ee57e129f49d177cc7112b94e90b1d0c548f18b36e71b" - }, - { - "algorithm": "SHA1", - "checksumValue": "e34966a2959329e48292c1c855499904646e1fdf" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.Teams.Policy.Administration.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.dll-DF38D064D1DBF8FE183115F375426532B3EFF1E3", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "7b49c14af8d769433ed518b47f8b43df86c904024ef46485c30c51adfd8b25d3" - }, - { - "algorithm": "SHA1", - "checksumValue": "df38d064d1dbf8fe183115f375426532b3eff1e3" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.Web.WebView2.WinForms.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Web.WebView2.WinForms.dll-8F8132C6251A4DDB94162D2983B91532BAB13421", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "b59ddd257f9f181f07f7042fdd868d5f3d5e45716b685c8b1b65c7fd6536c7f8" - }, - { - "algorithm": "SHA1", - "checksumValue": "8f8132c6251a4ddb94162d2983b91532bab13421" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.Identity.Client.Extensions.Msal.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.Extensions.Msal.dll-E3B240BD80D33F5CAD398AA523888690070A4105", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "52c61ebf43dbcb404efc7332beb42cc35f372b2bc77485e264b30a211eb3570c" - }, - { - "algorithm": "SHA1", - "checksumValue": "e3b240bd80d33f5cad398aa523888690070a4105" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/System.IO.FileSystem.AccessControl.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-System.IO.FileSystem.AccessControl.dll-0B09EF058246FFD8261CBC0B570F8F4D1B13E6CF", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "e8bda9a8e5a2657b721ae51c4494f3a07e1bb73157657727ab501d0fed33b02a" - }, - { - "algorithm": "SHA1", - "checksumValue": "0b09ef058246ffd8261cbc0b570f8f4d1b13e6cf" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.ConfigAPI.CmdletHostContract.dll-4BABFB7B56B7286779BE1286C8C79A79591FED16", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "2cf59564b93425d757173399aeed2d7d05b69b3900caedf7681990b1dd30de0a" - }, - { - "algorithm": "SHA1", - "checksumValue": "4babfb7b56b7286779be1286c8c79a79591fed16" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.Teams.PowerShell.Module.pdb", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.Module.pdb-33314DB756ADC1D5E92D48D1470C7708A4119A0E", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "40a158ea724442d69f2599fc18690afe157ad297b44e5420c013dfff2b24c087" - }, - { - "algorithm": "SHA1", - "checksumValue": "33314db756adc1d5e92d48d1470c7708a4119a0e" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.ApplicationInsights.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.ApplicationInsights.dll-72FF3FE6DE7FA706F3CC4A378E3887E36ACC6CD2", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "d07c898ee6b2fddc7c5fa51f15fda78c6738f1f003f41d0c7eaf7c04a3239a84" - }, - { - "algorithm": "SHA1", - "checksumValue": "72ff3fe6de7fa706f3cc4a378e3887e36acc6cd2" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/OneCollectorChannel.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-OneCollectorChannel.dll-303F90F5F3CA66A75A202833C2BF0BE7B5D7E600", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "bbe16a5d82f27c4ce2ec1f0e04cb8e715d510b23b8939657a24f0fb0936cef48" - }, - { - "algorithm": "SHA1", - "checksumValue": "303f90f5f3ca66a75a202833c2bf0be7b5d7e600" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.Extensions.Configuration.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Extensions.Configuration.dll-FAE399FBEC32BB50FB819A5B6BC674A4422A89B7", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "ce4e465023d488c6280f7156edd23348724297ac43db5518d6b5974440eb42fe" - }, - { - "algorithm": "SHA1", - "checksumValue": "fae399fbec32bb50fb819a5b6bc674a4422a89b7" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-System.Runtime.CompilerServices.Unsafe.dll-1EFDABD7273A676BC4EB23D82B890F7010353DD4", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "ab78cdbccabc188ee33830018fd65b5cb248375f6a761c2382e6c0c3f852f3de" - }, - { - "algorithm": "SHA1", - "checksumValue": "1efdabd7273a676bc4eb23d82b890f7010353dd4" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/runtimes/win-x86/native/msalruntime_x86.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-runtimes-win-x86-native-msalruntime-x86.dll-6C6D745B8F64E24F4DE854274B706AA7D4FA022B", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "e055681d769a23e0b78eb52aaff825c0b7eb8f832795bc2d7c1c7493a46473ed" - }, - { - "algorithm": "SHA1", - "checksumValue": "6c6d745b8f64e24f4de854274b706aa7d4fa022b" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-9AD479754666088C068F682F0FC6499353C7BB72", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "843b18c570162697aa748f71b7d633d4c0354fb3d4ad2f081aa5f22a351408d5" - }, - { - "algorithm": "SHA1", - "checksumValue": "9ad479754666088c068f682f0fc6499353c7bb72" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.Teams.PowerShell.Module.xml", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.Module.xml-EB2B86D36ADE4E37542F46AC4AF2A0E81087E582", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "14e403c1b3082085432ca2f1ae0d47c0491bd4cfd3234bc819493a7b4254c971" - }, - { - "algorithm": "SHA1", - "checksumValue": "eb2b86d36ade4e37542f46ac4af2a0e81087e582" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Polly.Contrib.WaitAndRetry.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Polly.Contrib.WaitAndRetry.dll-B003FE0431ACD8DA6BDB56522A77706B1F31C951", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "52298fb8b514b9a5f7b21dac3aef4dfbd5e1587bb10efd1406abb9877ee38204" - }, - { - "algorithm": "SHA1", - "checksumValue": "b003fe0431acd8da6bdb56522a77706b1f31c951" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/System.Security.AccessControl.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-System.Security.AccessControl.dll-360C7E6BD3345A67D63ECFEE49DFC3A9D24E74B0", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "f5aac7bd45387524c06d23af36129d74375d6bde8ab315a9648e7eca1f84ca0e" - }, - { - "algorithm": "SHA1", - "checksumValue": "360c7e6bd3345a67d63ecfee49dfc3a9d24e74b0" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.Identity.Client.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Identity.Client.dll-0FD18148FC72EF58335A746CFA6206425CC5894B", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "e8959bcf3812081b7b562477b309847072dc197c053ebbe79c99893c8b0d8905" - }, - { - "algorithm": "SHA1", - "checksumValue": "0fd18148fc72ef58335a746cfa6206425cc5894b" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.Rest.ClientRuntime.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Rest.ClientRuntime.dll-EFB8BD7A1EEDDD91098127A63D74C5B9FC41B58F", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "e96b7f70de60bec5a253f4f045cc7221e3bb0a4bccb5bc9d7d8cbb05bb64a7c1" - }, - { - "algorithm": "SHA1", - "checksumValue": "efb8bd7a1eeddd91098127a63d74c5b9fc41b58f" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.Teams.PowerShell.Module.pdb", - "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.PowerShell.Module.pdb-ADF08AEA101B2FA1935D5EC3235AD7E223C1DC8D", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "fce3a55fb2ebaa5d120d6e67f3973dd2359e1d3fc6d60f45004e354b2b67f236" - }, - { - "algorithm": "SHA1", - "checksumValue": "adf08aea101b2fa1935d5ec3235ad7e223c1dc8d" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/OneCollectorChannel.dll", - "SPDXID": "SPDXRef-File--net472-OneCollectorChannel.dll-303F90F5F3CA66A75A202833C2BF0BE7B5D7E600", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "bbe16a5d82f27c4ce2ec1f0e04cb8e715d510b23b8939657a24f0fb0936cef48" - }, - { - "algorithm": "SHA1", - "checksumValue": "303f90f5f3ca66a75a202833c2bf0be7b5d7e600" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/System.Memory.dll", - "SPDXID": "SPDXRef-File--net472-System.Memory.dll-148CC7C88A6C06371DEA6B195D37E6C1702B7031", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "8b66ef28dad62192e6ba03c19a4f973898073716a73251f9c390e6e5cbd16e99" - }, - { - "algorithm": "SHA1", - "checksumValue": "148cc7c88a6c06371dea6b195d37e6c1702b7031" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/runtimes/win-x64/native/msalruntime.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-runtimes-win-x64-native-msalruntime.dll-36C50AB03FC1A6C5B6990F98A012AB529B2B2F39", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "d6e7ba08c3a44552a341d3714f8cb6d2b760325ae767d8cc007d0c7c9898d1a7" - }, - { - "algorithm": "SHA1", - "checksumValue": "36c50ab03fc1a6c5b6990f98a012ab529b2b2f39" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/runtimes/win-x64/native/msalruntime.dll", - "SPDXID": "SPDXRef-File--net472-runtimes-win-x64-native-msalruntime.dll-36C50AB03FC1A6C5B6990F98A012AB529B2B2F39", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "d6e7ba08c3a44552a341d3714f8cb6d2b760325ae767d8cc007d0c7c9898d1a7" - }, - { - "algorithm": "SHA1", - "checksumValue": "36c50ab03fc1a6c5b6990f98a012ab529b2b2f39" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.Azure.KeyVault.Jose.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.Jose.dll-F43D97A3D12FDD53BBAB5DCAA3C96462F77506E0", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "e1905021292385d1c713cc0f00057afba74a1dfb176eb78f61050def7d0c8c64" - }, - { - "algorithm": "SHA1", - "checksumValue": "f43d97a3d12fdd53bbab5dcaa3c96462f77506e0" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Ic3.TenantAdminApi.Common.Helper.dll-4155FD14ADB09888213D20D177239FA86C7401D9", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "dab859816c8bff6fc9b994aee47780e25edd466fe37f7e2ba9d28aada61e4cb8" - }, - { - "algorithm": "SHA1", - "checksumValue": "4155fd14adb09888213d20d177239fa86c7401d9" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.IdentityModel.Logging.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.Logging.dll-FD18CF8A5FF408350DA404A5B77C5BF7CF73CF51", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "1df84e0e1eabc5c16fa787b0384d2545a7f68329c4e8b6042028e922d976c141" - }, - { - "algorithm": "SHA1", - "checksumValue": "fd18cf8a5ff408350da404a5b77c5bf7cf73cf51" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll-F2A832B87C163A58000AD0F474976E80F03D82A1", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "786b3786135ac22fe35a400db4cd5a20d8af13efcbf8fc10fc3a2603e645cb46" - }, - { - "algorithm": "SHA1", - "checksumValue": "f2a832b87c163a58000ad0f474976e80f03d82a1" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.Web.WebView2.Core.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Web.WebView2.Core.dll-C5E5287145FD2F278B79A4DC1D82ED29BE4E85C0", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "7152e1341d089a3ac1252fb42ce23beb945eba74e2e9e1510265a17b82990671" - }, - { - "algorithm": "SHA1", - "checksumValue": "c5e5287145fd2f278b79a4dc1d82ed29be4e85c0" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/System.IdentityModel.Tokens.Jwt.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-System.IdentityModel.Tokens.Jwt.dll-BAE1FA3DB2C2C0C59871DEEBF5D31EEE07DC11B8", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "2fbcfc65f616c058405135b2136ce94d28f5855bb68fa97ed559527206411306" - }, - { - "algorithm": "SHA1", - "checksumValue": "bae1fa3db2c2c0c59871deebf5d31eee07dc11b8" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/System.Management.Automation.dll", - "SPDXID": "SPDXRef-File--net472-System.Management.Automation.dll-C95629D2AB39BAA124C0312FE6369362EB85A09E", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "1170811c78462a92a813374bdb4a0e7cea8e225ff854c0314d3e708ee5ba6872" - }, - { - "algorithm": "SHA1", - "checksumValue": "c95629d2ab39baa124c0312fe6369362eb85a09e" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/runtimes/win-arm64/native/msalruntime_arm64.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-runtimes-win-arm64-native-msalruntime-arm64.dll-1CC0FE51939CF9FD7198838B62056B251D6C4DBE", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "7088b450438e52f326266830c635783d9ec51d55d7b3619112186b68146b59b0" - }, - { - "algorithm": "SHA1", - "checksumValue": "1cc0fe51939cf9fd7198838b62056b251d6c4dbe" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/runtimes/win-arm64/native/msalruntime_arm64.dll", - "SPDXID": "SPDXRef-File--net472-runtimes-win-arm64-native-msalruntime-arm64.dll-1CC0FE51939CF9FD7198838B62056B251D6C4DBE", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "7088b450438e52f326266830c635783d9ec51d55d7b3619112186b68146b59b0" - }, - { - "algorithm": "SHA1", - "checksumValue": "1cc0fe51939cf9fd7198838b62056b251d6c4dbe" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.Azure.KeyVault.Cryptography.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.Cryptography.dll-C5FF1F00248B6EBF80AD2EEA9671697044C699A2", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "76fc01d9c04802f7b16e960a2e5649722bda1dc5ad5562dff5e77422353366c5" - }, - { - "algorithm": "SHA1", - "checksumValue": "c5ff1f00248b6ebf80ad2eea9671697044c699a2" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.Extensions.Primitives.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Primitives.dll-18E477B888D61439E51B5AE7E409ACC7FFD513CA", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "3f4c6d55f5e4956d46a17860c2de74f6716dd4d9228ac6a4d8051ab634c80ba8" - }, - { - "algorithm": "SHA1", - "checksumValue": "18e477b888d61439e51b5ae7e409acc7ffd513ca" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.IdentityModel.JsonWebTokens.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.JsonWebTokens.dll-9A6E7DAF73C54789A2712F0AE4FE092FD4DB036C", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "b672a71602c5c871087d2767677ce4a7616af2ae59c51e41472091dd64fe0464" - }, - { - "algorithm": "SHA1", - "checksumValue": "9a6e7daf73c54789a2712f0ae4fe092fd4db036c" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll-151017D645A810842D552A73417F138464763638", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "61851660cc313cf10324f2324a22e5b7ad1e850a55f26f4be3340cfe2c0f9f5a" - }, - { - "algorithm": "SHA1", - "checksumValue": "151017d645a810842d552a73417f138464763638" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.TeamsCmdlets.PowerShell.Connect.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.TeamsCmdlets.PowerShell.Connect.dll-426FB094B2C28B9987B314DF0872A4F8885603F8", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "b414160ecef63b8e94f32a605c6a1b101580328f6f450550114c7569c9632afc" - }, - { - "algorithm": "SHA1", - "checksumValue": "426fb094b2c28b9987b314df0872a4f8885603f8" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/System.Diagnostics.DiagnosticSource.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-System.Diagnostics.DiagnosticSource.dll-B218254B7D6779AE4BA137F76F54065D0AA91427", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "49432b920c354edd1692a2ae40faf9ce0462bc046fd01956bcbbb88a6f3dcbed" - }, - { - "algorithm": "SHA1", - "checksumValue": "b218254b7d6779ae4ba137f76f54065d0aa91427" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/System.Security.Principal.Windows.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-System.Security.Principal.Windows.dll-857B9F1AA672BEDEFD50E29EC71EFA165CDF92D8", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "90a41509c2d1c0acf6242fd5b3927baba2c3f038d8e21cde4360261b4ae75c46" - }, - { - "algorithm": "SHA1", - "checksumValue": "857b9f1aa672bedefd50e29ec71efa165cdf92d8" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll", - "SPDXID": "SPDXRef-File--bin-Microsoft.Teams.ConfigAPI.Cmdlets.private.dll-0B5A46970BFEFBABFBF21AB882AE8A9CA56F0FAA", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "3043387dbdc099cb139ef4faf88906d22b7c34dffaf7ea3096026ff9e0327a7f" - }, - { - "algorithm": "SHA1", - "checksumValue": "0b5a46970bfefbabfbf21ab882ae8a9ca56f0faa" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./en-US/MicrosoftTeams-help.xml", - "SPDXID": "SPDXRef-File--en-US-MicrosoftTeams-help.xml-3B4AD5C5CB0120B16C23C4A279B0BCC15AF5312D", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "bb6004e0cb6d4bae1997e5555ed4cbeae898002565a950a89d633fce895a27fa" - }, - { - "algorithm": "SHA1", - "checksumValue": "3b4ad5c5cb0120b16c23c4a279b0bcc15af5312d" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.Azure.KeyVault.Core.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Azure.KeyVault.Core.dll-7C5834A34DD1E42A788D1D902B41DA24420E6A5A", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "3f2b348fe8044df4f67e68cf20bef899148a7376d5c08f37e0a289ba361397f8" - }, - { - "algorithm": "SHA1", - "checksumValue": "7c5834a34dd1e42a788d1d902b41da24420e6a5a" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.Extensions.Logging.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Extensions.Logging.dll-2613C67F44653C7EF038FD3D344704636F9C458C", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "aed2d6be0a20038571da0f622780d4e12002092538d0e80c6c0e277304ee1b6a" - }, - { - "algorithm": "SHA1", - "checksumValue": "2613c67f44653c7ef038fd3d344704636f9c458c" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.IdentityModel.Abstractions.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.IdentityModel.Abstractions.dll-DDB25C41DE98D617AE024F9846EF426264D84EE0", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "c41a0f4a342b216d274056d52a029beadf9d75277c333b12a79e4a42607e01c6" - }, - { - "algorithm": "SHA1", - "checksumValue": "ddb25c41de98d617ae024f9846ef426264d84ee0" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll-F3E5B689229FC333CAF6D4F6EA41757927E2D503", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "43ff8277fc8a913b3eba23a5892f4b90de342b6cfec69e4da50ff0f77cb1e311" - }, - { - "algorithm": "SHA1", - "checksumValue": "f3e5b689229fc333caf6d4f6ea41757927e2d503" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.TeamsCmdlets.PowerShell.Connect.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.TeamsCmdlets.PowerShell.Connect.dll-C141C27A2551FC498861FA2A977F6DD03B0BF171", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "2c81800fdd2615abaccd495f0dab78e07531768777f2c271b21f344ceb38dc9f" - }, - { - "algorithm": "SHA1", - "checksumValue": "c141c27a2551fc498861fa2a977f6dd03b0bf171" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/System.Buffers.dll", - "SPDXID": "SPDXRef-File--net472-System.Buffers.dll-1AF039AEE64B83CCCCFCB91745B7493B58DD0777", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "346cb925c0ac12abefd080aedb934e745c1c40cd9f00b5c8e96a141a5c421949" - }, - { - "algorithm": "SHA1", - "checksumValue": "1af039aee64b83ccccfcb91745b7493b58dd0777" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/System.Security.AccessControl.dll", - "SPDXID": "SPDXRef-File--net472-System.Security.AccessControl.dll-6F4D4B289EB107942BB226AD98675B1D3DA00913", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "924a55c6f6621ac1cad7b6198d12a2ca0d5158b7ab43bacc8eea1c92ee2a9862" - }, - { - "algorithm": "SHA1", - "checksumValue": "6f4d4b289eb107942bb226ad98675b1d3da00913" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.ApplicationInsights.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.ApplicationInsights.dll-3E712CBB784D3D69AAE6B3CF90E6D24D546E5332", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "74a3bc96f4eae27bd69bf260041d84c8998f5cbf7a38359adc08fb38676b4bc6" - }, - { - "algorithm": "SHA1", - "checksumValue": "3e712cbb784d3d69aae6b3cf90e6d24d546e5332" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.Extensions.Configuration.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Configuration.dll-C539CC1E42C9DDB2FA5F256701C30C3988FA6F6E", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "1b32b9149aa54f18aef9f9f909360bcc571efe5c3ebd6ccf798bdfaf3840966f" - }, - { - "algorithm": "SHA1", - "checksumValue": "c539cc1e42c9ddb2fa5f256701c30c3988fa6f6e" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.Identity.Client.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.dll-20D2DEACBC8B38D5FCC48751334421D46D5EB01C", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "97f76bad44181c8fa2670e1b8ec6dfda53dc404c0a60a11150c7a0c70677da5a" - }, - { - "algorithm": "SHA1", - "checksumValue": "20d2deacbc8b38d5fcc48751334421d46d5eb01c" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.Rest.ClientRuntime.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Rest.ClientRuntime.dll-54F19790D565CB2B3BA60C7592E6A12B2CE1A51C", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "1c71f3ebc798249c46e9dfc8854a8d6eb42f27b28019f5e75b16e24e0916d5e0" - }, - { - "algorithm": "SHA1", - "checksumValue": "54f19790d565cb2b3ba60c7592e6a12b2ce1a51c" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Microsoft.Teams.PowerShell.Module.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.Module.dll-9E4AF0E5B0B182841BA237A47D59CEA1B797E16B", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "21cd0cf7adc38d4ed1f5be995aff87f5086219356a9c32ae1ae12db1d5cbbd09" - }, - { - "algorithm": "SHA1", - "checksumValue": "9e4af0e5b0b182841ba237a47d59cea1b797e16b" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/Newtonsoft.Json.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Newtonsoft.Json.dll-0E73C8DFEE384EC574ABAD8FFEE855871B7C91D7", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "4c2bd7bf7271f5f51cab784e54086b422e403f7de047f01b283558676709153f" - }, - { - "algorithm": "SHA1", - "checksumValue": "0e73c8dfee384ec574abad8ffee855871b7c91d7" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./netcoreapp3.1/System.Management.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-System.Management.dll-9F491DB17BCED8C986362448BFF0C26C8414762B", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "16dd1ffc3e98cb9cb9b395882ba238febdb537d05125c6022ca69c62784c95e7" - }, - { - "algorithm": "SHA1", - "checksumValue": "9f491db17bced8c986362448bff0c26c8414762b" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - } - ], - "packages": [ - { - "name": "Microsoft.Teams.PowerShell.Module", - "SPDXID": "SPDXRef-Package-E26095C80EBEB7A2BAE8D320D089887B75ED06F16FAE8110701E769FB395C3DE", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "6.9.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Teams.PowerShell.Module@6.9.0" - } - ], - "supplier": "Organization: Microsoft Corporation" - }, - { - "name": "Azure Pipelines Hosted Image win22", - "SPDXID": "SPDXRef-Package-2E7E04B2E51D7C6CB26093B26F8F38FA0191A3B0BE6B8047AA42CC8049D34AEF", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "20250224.5.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "https://github.com/actions/virtual-environments" - } - ], - "supplier": "Organization: Microsoft/GitHub" - }, - { - "name": "Microsoft.Teams.PowerShell.Connect", - "SPDXID": "SPDXRef-Package-D236087235658AA9E95BF408F2AB357C328799ADEC4D6626FB45AE1F7D06CA75", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "1.6.3", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Teams.PowerShell.Connect@1.6.3" - } - ], - "supplier": "Organization: Skype Admin Tenant Interfaces team" - }, - { - "name": "Microsoft.IdentityModel.Abstractions", - "SPDXID": "SPDXRef-Package-DA2AF0572DFE796D5ED4CBA3C0D769A0AEB1D2D1712BA876E8ACB41B661353B4", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "8.2.1", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.IdentityModel.Abstractions@8.2.1" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "office-cmdlet-updater", - "SPDXID": "SPDXRef-Package-2B845BD152273D72FE2AFC20FA987AF1A6499713ECA5A9C6306E0B5B4C72DA3B", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "1.0.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:npm/office-cmdlet-updater@1.0.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Ic3.AdminConfig.RP.Policy.FunctionalTest", - "SPDXID": "SPDXRef-Package-F94C457D4E382F047AEC8F6AE230E7221D2480FBAB40677C132D929CBE0595B5", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "14.1.30", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Ic3.AdminConfig.RP.Policy.FunctionalTest@14.1.30" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "MSTest.TestFramework", - "SPDXID": "SPDXRef-Package-B7D63C69227797DAB4E0B488D700205A02ABA2C1D1A6841FF891E5F417797B09", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "2.1.1", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/MSTest.TestFramework@2.1.1" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "MSTest.TestAdapter", - "SPDXID": "SPDXRef-Package-8DF9F1DC6CCE99BCAB81EC8023E1ED3CD940A36704E358DAE8362D08FAFD45B0", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "2.1.1", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/MSTest.TestAdapter@2.1.1" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Identity.Client", - "SPDXID": "SPDXRef-Package-ADB7709704AD696A0D5E4AF644F04461E0875F8649A92467263B8B71399B2B3D", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.66.2", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Identity.Client@4.66.2" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Polly", - "SPDXID": "SPDXRef-Package-D87A871D9DCC8A4B4DC16C993FF9320F3AAB938B64A6EC2472FC2C1CBF3F7219", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "7.2.4", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Polly@7.2.4" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Skype.Security.Lorenz", - "SPDXID": "SPDXRef-Package-CE645B91D1E102C5ADFA2FE9FA88293752E1ED47F685D9D5DC5E03075280E0E3", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "0.2.1", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Skype.Security.Lorenz@0.2.1" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Diagnostics.DiagnosticSource", - "SPDXID": "SPDXRef-Package-A092770E8354CA90D85493FC4F2941F25FCE4214BAF8EB9A9E4383C495E133E9", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "9.0.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Diagnostics.DiagnosticSource@9.0.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Newtonsoft.Json", - "SPDXID": "SPDXRef-Package-A7749B3F7443A0F0AFF64F71746F18D670D8D4FBF18B2138A4AD85A6BC9A810F", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "13.0.2", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Newtonsoft.Json@13.0.2" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.NETCore.Platforms", - "SPDXID": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "1.1.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.NETCore.Platforms@1.1.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "OneCollectorChannel", - "SPDXID": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "1.1.0.234", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/OneCollectorChannel@1.1.0.234" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.AppContext", - "SPDXID": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.AppContext@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Security.Principal.Windows", - "SPDXID": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "5.0.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Security.Principal.Windows@5.0.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "NETStandard.Library", - "SPDXID": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "1.6.1", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/NETStandard.Library@1.6.1" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Net.Primitives", - "SPDXID": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Net.Primitives@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.IdentityModel.Logging", - "SPDXID": "SPDXRef-Package-9C5EC1F429A13E295E10F319F6A0EF6D3498213116DA080E8BB3B075E7C04EC5", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "6.8.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.IdentityModel.Logging@6.8.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Reflection.Metadata", - "SPDXID": "SPDXRef-Package-1699161828195A03FDB363E7F903B609D236C7AAADF0F4BC0BA1A33D4F1ADFD3", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "1.4.1", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Reflection.Metadata@1.4.1" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl", - "SPDXID": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.2", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Reflection.TypeExtensions", - "SPDXID": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Reflection.TypeExtensions@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.IO", - "SPDXID": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.IO@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Azure.KeyVault.Core", - "SPDXID": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "3.0.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Azure.KeyVault.Core@3.0.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl", - "SPDXID": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.2", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Console", - "SPDXID": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Console@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Diagnostics.Debug", - "SPDXID": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Diagnostics.Debug@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.NETCore.App.Ref", - "SPDXID": "SPDXRef-Package-8F4F099CF0C93C778298B3BBCE55BF07CA151A2C35C8535BDA77B9D9C17898ED", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "3.1.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.NETCore.App.Ref@3.1.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Runtime", - "SPDXID": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.1", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Runtime@4.3.1" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Text.Encoding.Extensions", - "SPDXID": "SPDXRef-Package-22BC1B62603E565BA5827501118C102A4E869955E3DB43D001A4ADA2384D657B", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Text.Encoding.Extensions@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Resources.ResourceManager", - "SPDXID": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Resources.ResourceManager@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Runtime.InteropServices.RuntimeInformation", - "SPDXID": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Runtime.InteropServices.RuntimeInformation@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl", - "SPDXID": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.2", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Win32.Registry", - "SPDXID": "SPDXRef-Package-CDAAFFA05EBF9CB4769A0302D45C4994A3310E518046D8A5549AFEE765ADFD9C", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.5.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Win32.Registry@4.5.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Win32.Registry.AccessControl", - "SPDXID": "SPDXRef-Package-0FC7C18C18F48CA2321CCA8E088120C9CCCCBE93BCC1BF1CC39C9C81C6243BBC", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.5.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Win32.Registry.AccessControl@4.5.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Text.RegularExpressions", - "SPDXID": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.1", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Text.RegularExpressions@4.3.1" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Net.Http", - "SPDXID": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.4", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Net.Http@4.3.4" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Private.DataContractSerialization", - "SPDXID": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Private.DataContractSerialization@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Runtime", - "SPDXID": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Runtime@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Azure.KeyVault.Cryptography", - "SPDXID": "SPDXRef-Package-F5B1FB353339B8697A0ED2F54610AD24DBB36C6215C9B0F18F0BD2159D8766DB", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "3.0.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Azure.KeyVault.Cryptography@3.0.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Extensions.Primitives", - "SPDXID": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "8.0.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Extensions.Primitives@8.0.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "runtime.native.System.Net.Http", - "SPDXID": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/runtime.native.System.Net.Http@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Reflection.Emit.ILGeneration", - "SPDXID": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Reflection.Emit.ILGeneration@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Security.Cryptography.ProtectedData", - "SPDXID": "SPDXRef-Package-DA0AF8340DCB876C7A8B0C3746460DBC5EE231998B283C8070BAB226E6C9182E", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "7.0.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Security.Cryptography.ProtectedData@7.0.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Buffers", - "SPDXID": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Buffers@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Xml.ReaderWriter", - "SPDXID": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Xml.ReaderWriter@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Diagnostics.Tracing", - "SPDXID": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Diagnostics.Tracing@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Security.Cryptography.OpenSsl", - "SPDXID": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Security.Cryptography.OpenSsl@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Extensions.Logging.Abstractions", - "SPDXID": "SPDXRef-Package-97A4624F33F0891481314670BD6833AC9E478270C8E9BE83E71715A09CD435FC", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "1.1.2", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Extensions.Logging.Abstractions@1.1.2" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Net.Http", - "SPDXID": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Net.Http@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Xml.XmlSerializer", - "SPDXID": "SPDXRef-Package-51B112946B53F473049CC515F08F27E227C044A2E330920154720B3FCA47D0A9", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Xml.XmlSerializer@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.ApplicationInsights", - "SPDXID": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "2.9.1", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.ApplicationInsights@2.9.1" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Reflection", - "SPDXID": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Reflection@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Data.Common", - "SPDXID": "SPDXRef-Package-8CC68F5976CDE9EF39F904D527CADE89A54B7CCAD5368FC3E839D23A3ACD50B0", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Data.Common@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.IdentityModel.Tokens", - "SPDXID": "SPDXRef-Package-56FB670D33987C301B2779D33E9778876DA14F5F4E15B6F68A7D4E62B36CEDE4", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "6.8.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.IdentityModel.Tokens@6.8.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Identity.Client", - "SPDXID": "SPDXRef-Package-53016EDEC3811948DFE357884F2D5F3AF322730FF9B1A766B94CB2EA206EE7C3", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.62.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Identity.Client@4.62.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Win32.Primitives", - "SPDXID": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Win32.Primitives@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Reflection.Emit", - "SPDXID": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Reflection.Emit@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.IO.Compression", - "SPDXID": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.IO.Compression@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Extensions.DependencyInjection.Abstractions", - "SPDXID": "SPDXRef-Package-06B1FE03E3B06D8AB8CFF2AD4FC31D4A3796628ED49E9E383C7F1B7350B01C17", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "1.1.1", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Extensions.DependencyInjection.Abstractions@1.1.1" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Security.Cryptography.Algorithms", - "SPDXID": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Security.Cryptography.Algorithms@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Globalization", - "SPDXID": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Globalization@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Runtime.InteropServices", - "SPDXID": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Runtime.InteropServices@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Buffers", - "SPDXID": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.5.1", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Buffers@4.5.1" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl", - "SPDXID": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.2", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Runtime.CompilerServices.Unsafe", - "SPDXID": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "6.0.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Runtime.CompilerServices.Unsafe@6.0.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Net.Requests", - "SPDXID": "SPDXRef-Package-71F0727D1B02C5BEA2BE2C6985E0093660DAEC028DB347AB157E3CFFC6779892", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Net.Requests@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Security.Cryptography.Encoding", - "SPDXID": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Security.Cryptography.Encoding@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "NuGet.Build.Tasks.Pack", - "SPDXID": "SPDXRef-Package-C5208AC43A9B8525DA67EA002836F84382F0C16587D945CE108125CDC4492B2A", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "5.2.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/NuGet.Build.Tasks.Pack@5.2.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Security.Cryptography.Primitives", - "SPDXID": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Security.Cryptography.Primitives@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Security.Cryptography.Pkcs", - "SPDXID": "SPDXRef-Package-96C6F4964A911ECC8415520C77654FAF06CF5E4E3529948D9A3EE44CAB576A1E", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.5.2", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Security.Cryptography.Pkcs@4.5.2" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Xml.XPath", - "SPDXID": "SPDXRef-Package-43357C895306E69902F1DB752C436B0CD3BF18128E7FBCD01CF1056589153BE0", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Xml.XPath@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Extensions.Configuration", - "SPDXID": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "8.0.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Extensions.Configuration@8.0.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Data.Sqlite", - "SPDXID": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "1.1.1", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Data.Sqlite@1.1.1" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Newtonsoft.Json", - "SPDXID": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "13.0.3", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Newtonsoft.Json@13.0.3" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.CSharp", - "SPDXID": "SPDXRef-Package-751D58F61F982C3D7B11602BBEB943F9251AE4EFF8B6A12F0EC98F276D20C730", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.5.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.CSharp@4.5.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Teams.Policy.Administration.Cmdlets.OCE", - "SPDXID": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "0.1.12", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Teams.Policy.Administration.Cmdlets.OCE@0.1.12" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Ic3.TenantAdminApi.Common.Helper", - "SPDXID": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "1.0.28", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Ic3.TenantAdminApi.Common.Helper@1.0.28" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Identity.Client.NativeInterop", - "SPDXID": "SPDXRef-Package-95F4C5AD336F2F37AEE65BA24C870A5DA8F1D94E445A9A10A2F5F63A3A0F2BFA", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "0.16.1", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Identity.Client.NativeInterop@0.16.1" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Linq.Expressions", - "SPDXID": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Linq.Expressions@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Diagnostics.DiagnosticSource", - "SPDXID": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "6.0.1", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Diagnostics.DiagnosticSource@6.0.1" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.NETCore.Platforms", - "SPDXID": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "5.0.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.NETCore.Platforms@5.0.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Rest.ClientRuntime.Azure", - "SPDXID": "SPDXRef-Package-270ED84947C7777BB807C511A9593856711C3D4CDD93E10AC7AEFEE203559CC1", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "3.3.19", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Rest.ClientRuntime.Azure@3.3.19" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Diagnostics.StackTrace", - "SPDXID": "SPDXRef-Package-3BB6EBDC93E34DB9728F390186CC96E21CEA3F6204694FE88B4E928DA5F590A2", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Diagnostics.StackTrace@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Text.Encoding", - "SPDXID": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Text.Encoding@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.PowerShell.Native", - "SPDXID": "SPDXRef-Package-98974C6C7FFEA0934A0B49276F784EF7433A314B8F4352E602465184EE7B9350", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "6.2.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.PowerShell.Native@6.2.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Collections.Concurrent", - "SPDXID": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Collections.Concurrent@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Azure.KeyVault.AzureServiceDeploy", - "SPDXID": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "3.0.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Azure.KeyVault.AzureServiceDeploy@3.0.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Rest.ClientRuntime", - "SPDXID": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "2.3.21", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Rest.ClientRuntime@2.3.21" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Globalization.Extensions", - "SPDXID": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Globalization.Extensions@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.CodeDom", - "SPDXID": "SPDXRef-Package-9BEFA8934C7016259385BFDA2906F038610220B7BCF08D5AA651BE6CB1541E51", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.5.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.CodeDom@4.5.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Identity.Client.Extensions.Msal", - "SPDXID": "SPDXRef-Package-5836368BE1AB0E0727240521F7F166AF02634436A36865C545C20939C7D5D0C4", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.62.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Identity.Client.Extensions.Msal@4.62.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "runtime.native.System", - "SPDXID": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/runtime.native.System@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Security.Cryptography.Csp", - "SPDXID": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Security.Cryptography.Csp@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.IO.FileSystem.AccessControl", - "SPDXID": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "5.0.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.IO.FileSystem.AccessControl@5.0.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.IdentityModel.Tokens.Jwt", - "SPDXID": "SPDXRef-Package-8422F607B8266110A546C45992F70A0FB1B2A891E18E98FBBB9C7C5297435350", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "6.8.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.IdentityModel.Tokens.Jwt@6.8.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Web.WebView2", - "SPDXID": "SPDXRef-Package-BB5EED84C09683F587843DDAFC814F4B010F56955D0A82584767D72B99ABD849", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "1.0.864.35", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Web.WebView2@1.0.864.35" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl", - "SPDXID": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.2", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl", - "SPDXID": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.2", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Net.Sockets", - "SPDXID": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Net.Sockets@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.ComponentModel", - "SPDXID": "SPDXRef-Package-0466CE9286D5381D3008D7C7F928AD9A6CA431DB44B3090C1AC076F27AEF1BDC", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.ComponentModel@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Teams.ConfigAPI.CmdletHostContract", - "SPDXID": "SPDXRef-Package-286C6C3EE620982A6E1C362D82664FBF995415D6234E3ADD0D2D997B418705A7", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "3.1.2", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Teams.ConfigAPI.CmdletHostContract@3.1.2" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "PowerShellStandard.Library", - "SPDXID": "SPDXRef-Package-B512828296F96786715767A9D629FA4E02BEACAC0CC0BE4A7A1CFF55AF155FB6", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "5.1.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/PowerShellStandard.Library@5.1.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple", - "SPDXID": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "runtime.native.System.Security.Cryptography.OpenSsl", - "SPDXID": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.2", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Globalization.Calendars", - "SPDXID": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Globalization.Calendars@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Runtime.CompilerServices.VisualC", - "SPDXID": "SPDXRef-Package-74783B1098990678258F1B4E741A3CAF2954BDB52AB144B4550E60FBB11A594C", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Runtime.CompilerServices.VisualC@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Configuration.ConfigurationManager", - "SPDXID": "SPDXRef-Package-48265A488C29B4798425AAB3E6AB86C51F61DA2EC4140043AB6467A6D1E98574", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.5.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Configuration.ConfigurationManager@4.5.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Collections", - "SPDXID": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Collections@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.IdentityModel.JsonWebTokens", - "SPDXID": "SPDXRef-Package-99204549ED77ED47F9DF4D5E0F37A740DDCC7A2DE11C6CA47CEA1E5F014BA159", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "6.8.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.IdentityModel.JsonWebTokens@6.8.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl", - "SPDXID": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.2", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Management", - "SPDXID": "SPDXRef-Package-2D315204EDF1805A0597A6B2DA6C5F35A222859A45FDEC22A15E70E4B966EEC2", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.5.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Management@4.5.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Teams.PowerShell.TeamsCmdlets", - "SPDXID": "SPDXRef-Package-ABA4D9F7DE0C64E732AAB950319D329AC4637C2C708F323531E6E4E4DD57C672", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "1.3.8", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Teams.PowerShell.TeamsCmdlets@1.3.8" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.PowerShell.CoreCLR.Eventing", - "SPDXID": "SPDXRef-Package-2BD1526E06B0F242413706B6514589398B1723F2A354DCCBF1BCCF210693E051", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "6.2.7", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.PowerShell.CoreCLR.Eventing@6.2.7" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.IO.FileSystem.Primitives", - "SPDXID": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.IO.FileSystem.Primitives@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Reflection.Primitives", - "SPDXID": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Reflection.Primitives@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Linq", - "SPDXID": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Linq@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Runtime.Serialization.Xml", - "SPDXID": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Runtime.Serialization.Xml@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Management.Automation", - "SPDXID": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "6.2.7", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Management.Automation@6.2.7" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Teams.Policy.Administration.Configurations", - "SPDXID": "SPDXRef-Package-B421A049D84918A1509D87157C10713A7AB4A5875825A80B6DEA4A96C3685E82", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "12.2.29", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Teams.Policy.Administration.Configurations@12.2.29" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl", - "SPDXID": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.2", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.IO.Compression.ZipFile", - "SPDXID": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.IO.Compression.ZipFile@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Threading.ThreadPool", - "SPDXID": "SPDXRef-Package-6B07767B8D24067A9C860F27DE2655663A6187C7DCB86797C0F07D5D2827293E", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Threading.ThreadPool@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Text.RegularExpressions", - "SPDXID": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Text.RegularExpressions@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Teams.Policy.Administration", - "SPDXID": "SPDXRef-Package-3C980CCD824C5227F138880F4153A2342720807A805D217B247BBAA9C92F0E83", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "14.1.41", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Teams.Policy.Administration@14.1.41" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl", - "SPDXID": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.2", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Management.Automation.dll", - "SPDXID": "SPDXRef-Package-D86E73E2A842C9E39146AF02D6F6F7F644FFE8FCEAA8CA0B28292D6396191B82", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "10.0.10586", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Management.Automation.dll@10.0.10586" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.DirectoryServices", - "SPDXID": "SPDXRef-Package-CC37C138AFE3FD56BAF5242097421D8A247510DAC602473C0F908356A935DFBA", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.5.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.DirectoryServices@4.5.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Xml.XmlDocument", - "SPDXID": "SPDXRef-Package-DDE5C44E3BD87F8156A218CD1BA03D4DA71B87C82336BF66C024F3A0F49CE80C", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Xml.XmlDocument@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Threading", - "SPDXID": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Threading@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "runtime.native.System.Security.Cryptography.Apple", - "SPDXID": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/runtime.native.System.Security.Cryptography.Apple@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Threading.Timer", - "SPDXID": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Threading.Timer@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Security.SecureString", - "SPDXID": "SPDXRef-Package-556E04674AB21C6E689B621B54F3C112DD3673B2C5F20B63EE80559940B575CD", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Security.SecureString@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Reflection.Extensions", - "SPDXID": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Reflection.Extensions@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Runtime.Extensions", - "SPDXID": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Runtime.Extensions@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Runtime.Handles", - "SPDXID": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Runtime.Handles@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Identity.Client.Broker", - "SPDXID": "SPDXRef-Package-29B61FAD063D6EE99BA8CB752B12EF10BB76D56418183E3DCAD32A267BEC6433", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.62.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Identity.Client.Broker@4.62.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Identity.Client.Desktop", - "SPDXID": "SPDXRef-Package-E2EA3E910DA44E73A47577D64A778A781F72A8BF1A30C328A735084D8AE1BDF7", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.62.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Identity.Client.Desktop@4.62.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Reflection.Emit.Lightweight", - "SPDXID": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Reflection.Emit.Lightweight@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "coverlet.collector", - "SPDXID": "SPDXRef-Package-4C3B9EAB65F57A8012A61AB041013CC14DDEF227C8C011C485D68401ED4A33A1", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "1.0.1", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/coverlet.collector@1.0.1" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "SQLite", - "SPDXID": "SPDXRef-Package-9CFCE4B97775AC5FBD999304EF6211E727EC46AB197CE4281A857627376B4AE3", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "3.13.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/SQLite@3.13.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Management.Infrastructure", - "SPDXID": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "1.0.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Management.Infrastructure@1.0.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Memory", - "SPDXID": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.5.4", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Memory@4.5.4" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.NET.Test.Sdk", - "SPDXID": "SPDXRef-Package-BD049C5100B248F06EBEC66C3BE118753E842489EC3E40AF36E080A56CF8286E", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "16.2.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.NET.Test.Sdk@16.2.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Polly.Contrib.WaitAndRetry", - "SPDXID": "SPDXRef-Package-65F3BB807AF49E7AD397E2DCDE7E8152B0F742044FF2ABFB7B8136F4D77F3E3D", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "1.1.1", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Polly.Contrib.WaitAndRetry@1.1.1" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Text.Encoding.CodePages", - "SPDXID": "SPDXRef-Package-E389C196CC3B31F9F0F95EF8A726F64453E62013B00C3C8B8C248EA8F581C52E", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.5.1", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Text.Encoding.CodePages@4.5.1" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Memory", - "SPDXID": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.5.5", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Memory@4.5.5" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Extensions.Logging", - "SPDXID": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "1.1.2", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Extensions.Logging@1.1.2" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Extensions.Configuration.Abstractions", - "SPDXID": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "8.0.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Extensions.Configuration.Abstractions@8.0.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Moq", - "SPDXID": "SPDXRef-Package-3248038335932D1D4047F57731B65A00918297ABB00C3DCFB05FB8A456FB63A2", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.5.28", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Moq@4.5.28" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.NETCore.Targets", - "SPDXID": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "1.1.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.NETCore.Targets@1.1.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Security.Permissions", - "SPDXID": "SPDXRef-Package-422B168409BFFB6195EFFC810AEE94179F01C0BEFB6D8F78809CB9B8E5990035", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.5.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Security.Permissions@4.5.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Numerics.Vectors", - "SPDXID": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.5.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Numerics.Vectors@4.5.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Applications.Events.Server", - "SPDXID": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "1.1.2.97", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Applications.Events.Server@1.1.2.97" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Security.AccessControl", - "SPDXID": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "5.0.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Security.AccessControl@5.0.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Azure.KeyVault.Jose", - "SPDXID": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "3.0.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Azure.KeyVault.Jose@3.0.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "NuGet.CommandLine", - "SPDXID": "SPDXRef-Package-33B1D8F98040445C1C019996980972FB5A3DA85A789108E0440ED021F416AB88", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "5.11.6", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/NuGet.CommandLine@5.11.6" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Xml.XDocument", - "SPDXID": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Xml.XDocument@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.IO.FileSystem", - "SPDXID": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.IO.FileSystem@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Runtime.Serialization.Primitives", - "SPDXID": "SPDXRef-Package-5D34709A26D1F9AB9ACF1533059FF2089C126911B090DF3B9961364420E01C7E", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Runtime.Serialization.Primitives@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Threading.Thread", - "SPDXID": "SPDXRef-Package-EB28CDD241D6CCBF0718B9E555251C41DF66A198C6ECC693D09211542C656620", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Threading.Thread@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "runtime.native.System.IO.Compression", - "SPDXID": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/runtime.native.System.IO.Compression@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.IdentityModel.Abstractions", - "SPDXID": "SPDXRef-Package-48B8396376BA44575395CB75027CF1F5E11012452DBD38F7C1D615CC57EC31E4", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "6.35.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.IdentityModel.Abstractions@6.35.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Security.Cryptography.X509Certificates", - "SPDXID": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Security.Cryptography.X509Certificates@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Security.Cryptography.Cng", - "SPDXID": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.5.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Security.Cryptography.Cng@4.5.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Threading.Tasks.Extensions", - "SPDXID": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Threading.Tasks.Extensions@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Threading.Tasks", - "SPDXID": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Threading.Tasks@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.NETCore.Targets", - "SPDXID": "SPDXRef-Package-1D191B13C73F7AA570C121E8ACCAD625116B8267E418ECDD7222AAAB63A76A84", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "3.1.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.NETCore.Targets@3.1.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Teams.ConfigAPI.Cmdlets", - "SPDXID": "SPDXRef-Package-99AE2A6EF6038704F29BA2F00C6D96AE3AF9212E4DD5032147E125A05A20E40B", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "8.228.3", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Teams.ConfigAPI.Cmdlets@8.228.3" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Runtime.Numerics", - "SPDXID": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Runtime.Numerics@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Diagnostics.Tools", - "SPDXID": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Diagnostics.Tools@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.WindowsDesktop.App.Ref", - "SPDXID": "SPDXRef-Package-85FB27F5A68228D1E9331D9E7057200D9845B178A51F7F40560E070D910A3E78", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "3.1.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.WindowsDesktop.App.Ref@3.1.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.AspNetCore.App.Ref", - "SPDXID": "SPDXRef-Package-960414DA8719C10D04651A042C6327736F11D52FA2FCB8501240FBA2B4B8FA57", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "3.1.10", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.AspNetCore.App.Ref@3.1.10" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Collections.Immutable", - "SPDXID": "SPDXRef-Package-8D6E0C5870BF65665DE70BE60EBDBCAE0A4EF9BFBD566A07D2FF53D2429D3D8A", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "1.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Collections.Immutable@1.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.Net.WebHeaderCollection", - "SPDXID": "SPDXRef-Package-5343B694E9E8D06887CF8F4008BE0581FC0BD9BD2D28FC4370905FB693F311F8", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Net.WebHeaderCollection@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.CodeCoverage", - "SPDXID": "SPDXRef-Package-288304B4D65CA653A9F91AEEED832C8EDBDE12D62998B237EDD814A65B0F11CE", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "16.2.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.CodeCoverage@16.2.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "MSTest.TestFramework", - "SPDXID": "SPDXRef-Package-BD578492E1B6D65E73FA738A546B0E31220C520674A7812D79178EADA585420A", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "2.0.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/MSTest.TestFramework@2.0.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.ValueTuple", - "SPDXID": "SPDXRef-Package-C1475C5380732C85127A15B8BADF74D2619786E90578875B650082AE4497BC14", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.5.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.ValueTuple@4.5.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "MSTest.TestAdapter", - "SPDXID": "SPDXRef-Package-74671EB8E35B4A22DF14E3B027232B1C75778285F2258802720CA2F93AC9490D", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "2.0.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/MSTest.TestAdapter@2.0.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Extensions.Configuration.Abstractions", - "SPDXID": "SPDXRef-Package-E8D0184AED843C8B48D3348C34E510C1AECCD9E05D002C20871C83F97B6A7A93", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "3.1.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Extensions.Configuration.Abstractions@3.1.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "System.ObjectModel", - "SPDXID": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.ObjectModel@4.3.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Castle.Core", - "SPDXID": "SPDXRef-Package-4EC77DE72DF7856001C57E24CCB11F437B92DC6132B2272D5765CC62E1851102", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "3.3.3", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Castle.Core@3.3.3" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Extensions.Configuration", - "SPDXID": "SPDXRef-Package-3AA91AC82BC50105BAA785EFA25675A27458E28F643BC4289A18DDC937DFB505", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "3.1.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Extensions.Configuration@3.1.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl", - "SPDXID": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "4.3.2", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "Microsoft.Extensions.Primitives", - "SPDXID": "SPDXRef-Package-44DB18E004D7C51DDF86DF1293D672335A4845195A2E9FD5A2759AC640E455F3", - "downloadLocation": "NOASSERTION", - "filesAnalyzed": false, - "licenseConcluded": "NOASSERTION", - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "3.1.0", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Extensions.Primitives@3.1.0" - } - ], - "supplier": "NOASSERTION" - }, - { - "name": "infrastructure_itpro_teamspowershellmodule", - "SPDXID": "SPDXRef-RootPackage", - "downloadLocation": "NOASSERTION", - "packageVerificationCode": { - "packageVerificationCodeValue": "e76b61a1eb3c315eb50820bd811610dfd6e3b9be" - }, - "filesAnalyzed": true, - "licenseConcluded": "NOASSERTION", - "licenseInfoFromFiles": [ - "NOASSERTION" - ], - "licenseDeclared": "NOASSERTION", - "copyrightText": "NOASSERTION", - "versionInfo": "68341517", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceType": "purl", - "referenceLocator": "pkg:swid/Microsoft/sbom.microsoft/infrastructure_itpro_teamspowershellmodule@68341517?tag_id=12e71d00-f8d2-42bc-a86b-f39dc05fd75a" - } - ], - "supplier": "Organization: Microsoft", - "hasFiles": [ - "SPDXRef-File--netcoreapp3.1-System.Management.dll-9F491DB17BCED8C986362448BFF0C26C8414762B", - "SPDXRef-File--netcoreapp3.1-Newtonsoft.Json.dll-0E73C8DFEE384EC574ABAD8FFEE855871B7C91D7", - "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.dll-20D2DEACBC8B38D5FCC48751334421D46D5EB01C", - "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Configuration.dll-C539CC1E42C9DDB2FA5F256701C30C3988FA6F6E", - "SPDXRef-File--netcoreapp3.1-Microsoft.ApplicationInsights.dll-3E712CBB784D3D69AAE6B3CF90E6D24D546E5332", - "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll-F3E5B689229FC333CAF6D4F6EA41757927E2D503", - "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.Module.dll-9E4AF0E5B0B182841BA237A47D59CEA1B797E16B", - "SPDXRef-File--netcoreapp3.1-Microsoft.Rest.ClientRuntime.dll-54F19790D565CB2B3BA60C7592E6A12B2CE1A51C", - "SPDXRef-File--net472-Microsoft.TeamsCmdlets.PowerShell.Connect.dll-C141C27A2551FC498861FA2A977F6DD03B0BF171", - "SPDXRef-File--net472-Microsoft.IdentityModel.Abstractions.dll-DDB25C41DE98D617AE024F9846EF426264D84EE0", - "SPDXRef-File--net472-Microsoft.Extensions.Logging.dll-2613C67F44653C7EF038FD3D344704636F9C458C", - "SPDXRef-File--net472-Microsoft.Azure.KeyVault.Core.dll-7C5834A34DD1E42A788D1D902B41DA24420E6A5A", - "SPDXRef-File--en-US-MicrosoftTeams-help.xml-3B4AD5C5CB0120B16C23C4A279B0BCC15AF5312D", - "SPDXRef-File--netcoreapp3.1-System.Security.Principal.Windows.dll-857B9F1AA672BEDEFD50E29EC71EFA165CDF92D8", - "SPDXRef-File--netcoreapp3.1-runtimes-win-arm64-native-msalruntime-arm64.dll-1CC0FE51939CF9FD7198838B62056B251D6C4DBE", - "SPDXRef-File--net472-System.Security.AccessControl.dll-6F4D4B289EB107942BB226AD98675B1D3DA00913", - "SPDXRef-File--net472-System.Buffers.dll-1AF039AEE64B83CCCCFCB91745B7493B58DD0777", - "SPDXRef-File--bin-Microsoft.Teams.ConfigAPI.Cmdlets.private.dll-0B5A46970BFEFBABFBF21AB882AE8A9CA56F0FAA", - "SPDXRef-File--netcoreapp3.1-System.Diagnostics.DiagnosticSource.dll-B218254B7D6779AE4BA137F76F54065D0AA91427", - "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll-151017D645A810842D552A73417F138464763638", - "SPDXRef-File--net472-runtimes-win-arm64-native-msalruntime-arm64.dll-1CC0FE51939CF9FD7198838B62056B251D6C4DBE", - "SPDXRef-File--net472-Microsoft.Identity.Client.dll-0FD18148FC72EF58335A746CFA6206425CC5894B", - "SPDXRef-File--netcoreapp3.1-runtimes-win-x64-native-msalruntime.dll-36C50AB03FC1A6C5B6990F98A012AB529B2B2F39", - "SPDXRef-File--net472-System.Memory.dll-148CC7C88A6C06371DEA6B195D37E6C1702B7031", - "SPDXRef-File--net472-OneCollectorChannel.dll-303F90F5F3CA66A75A202833C2BF0BE7B5D7E600", - "SPDXRef-File--net472-Microsoft.Teams.PowerShell.Module.pdb-ADF08AEA101B2FA1935D5EC3235AD7E223C1DC8D", - "SPDXRef-File--net472-Microsoft.Rest.ClientRuntime.dll-EFB8BD7A1EEDDD91098127A63D74C5B9FC41B58F", - "SPDXRef-File--netcoreapp3.1-System.Security.AccessControl.dll-360C7E6BD3345A67D63ECFEE49DFC3A9D24E74B0", - "SPDXRef-File--netcoreapp3.1-runtimes-win-x86-native-msalruntime-x86.dll-6C6D745B8F64E24F4DE854274B706AA7D4FA022B", - "SPDXRef-File--netcoreapp3.1-System.Runtime.CompilerServices.Unsafe.dll-1EFDABD7273A676BC4EB23D82B890F7010353DD4", - "SPDXRef-File--net472-Microsoft.Extensions.Configuration.dll-FAE399FBEC32BB50FB819A5B6BC674A4422A89B7", - "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.dll-DF38D064D1DBF8FE183115F375426532B3EFF1E3", - "SPDXRef-File--net472-System.Diagnostics.DiagnosticSource.dll-F16FAA5B1F03B2B9B825361DE6BF2B8464C0816B", - "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.Broker.dll-2C7F7478065DE9E116C2046201D2F5F3FA88DAF8", - "SPDXRef-File--net472-runtimes-win-x86-native-msalruntime-x86.dll-6C6D745B8F64E24F4DE854274B706AA7D4FA022B", - "SPDXRef-File--netcoreapp3.1-System.Security.Cryptography.ProtectedData.dll-5B8C2565E4A82BEA9A35B0164F22CC29B7909A22", - "SPDXRef-File--net472-Microsoft.Web.WebView2.Wpf.dll-59C3DBCF980D39BDF493FD88F95D18B950561FFC", - "SPDXRef-File--net472-Microsoft.IdentityModel.Tokens.dll-7B80E570F9FEE8A2D72D97864F1BF068FC5B4862", - "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-868314BED8B479DB1F76FB47405A2600E77A8E9F", - "SPDXRef-File--bin-Microsoft.IdentityModel.Tokens.dll-1CCD6BBFECE7E4CEBE0EAD6264DF0BF80598268E", - "SPDXRef-File--net472-Microsoft.Applications.Events.Server.dll-40FA262F6E55B9E686E39E7C9CFF906167758D0B", - "SPDXRef-File--net472-Microsoft.Teams.PowerShell.Module.dll-190ECA374CB2BFE8E610B036FA68708AF9197C48", - "SPDXRef-File--net472-Microsoft.Rest.ClientRuntime.Azure.dll-AF10C1178CC1CD17419135A97C984C16860E92A2", - "SPDXRef-File--net472-Microsoft.Extensions.Configuration.Abstractions.dll-0599C3335163FEE0DB7FDDAF8AA1AC37D4527BD8", - "SPDXRef-File--net472-Microsoft.Azure.KeyVault.AzureServiceDeploy.dll-EB2F293B5498B17F986E3F753D6287D7513BFC98", - "SPDXRef-File--Microsoft.Teams.PowerShell.TeamsCmdlets.psm1-F98549806F61CDB2530B101B2B69BD035DF85B2A", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml-24E642012530FA743ADD7F903D0165BB29E00604", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.format.ps1xml-7CE7E09C5E96B365C6F8EB212DA643B9DD5DE240", - "SPDXRef-File--en-US-Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-Help.xml-D11C7D9AC3EF730C07F5D5B6E9BE3C1034CE448E", - "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.NativeInterop.dll-380415AA8E6892AC0FD9A1893C1EC749CED14875", - "SPDXRef-File--net472-System.Security.Cryptography.ProtectedData.dll-E7DD8D5EF9EA37CF058D57927FCA459BA3C931C0", - "SPDXRef-File--net472-Newtonsoft.Json.dll-1383D41BBE5C43CCF55FAF43AFAD52EC8FF8D046", - "SPDXRef-File--net472-Microsoft.Teams.PowerShell.Module.xml-EB2B86D36ADE4E37542F46AC4AF2A0E81087E582", - "SPDXRef-File--net472-Microsoft.Extensions.Logging.Abstractions.dll-97C127F56F765DB81C20B79EBF0C5EC77FCA91DE", - "SPDXRef-File--bin-Microsoft.Teams.ConfigAPI.Cmdlets.private.deps.json-CAB9DE08F21E8916314D36604F06D249C2A83626", - "SPDXRef-File--MicrosoftTeams.psm1-677F340F6A09AF90028872DA008A7FCAA276A712", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.psm1-AE8669C62DFEE408211B63FE289AE73FB7CB8226", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml-BD8DFBE00DFAA0D0E6AF7E506E72587AD3707949", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.format.ps1xml-71EADDADD1B9D91DC54BA78C523F1CACF61C2B8D", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.format.ps1xml-EDB8F8E8596114280342B76A7D9541CE9D1BA87D", - "SPDXRef-File--netcoreapp3.1-OneCollectorChannel.dll-303F90F5F3CA66A75A202833C2BF0BE7B5D7E600", - "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.Module.pdb-33314DB756ADC1D5E92D48D1470C7708A4119A0E", - "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.ConfigAPI.CmdletHostContract.dll-4BABFB7B56B7286779BE1286C8C79A79591FED16", - "SPDXRef-File--netcoreapp3.1-System.IO.FileSystem.AccessControl.dll-0B09EF058246FFD8261CBC0B570F8F4D1B13E6CF", - "SPDXRef-File--netcoreapp3.1-Microsoft.Web.WebView2.WinForms.dll-8F8132C6251A4DDB94162D2983B91532BAB13421", - "SPDXRef-File--netcoreapp3.1-Microsoft.Applications.Events.Server.dll-40FA262F6E55B9E686E39E7C9CFF906167758D0B", - "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Logging.Abstractions.dll-97C127F56F765DB81C20B79EBF0C5EC77FCA91DE", - "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.AzureServiceDeploy.dll-838E72D0988D64CA093AFFE26B42E47D3F2A2B9A", - "SPDXRef-File--net472-System.Security.Principal.Windows.dll-0E0AACC5E62B8B14D2C2E038B3FA2AFCEB974D42", - "SPDXRef-File--net472-System.IdentityModel.Tokens.Jwt.dll-F885850D349FD1CCC319A67C577B54AAB7F1D561", - "SPDXRef-File--net472-Microsoft.Web.WebView2.WinForms.dll-789D14D02BD8DC49E8AB1A8FB298E0514F84F92C", - "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll-971223E90936B738B74BB212CA4FFFB78283E8A8", - "SPDXRef-File--net472-Microsoft.Web.WebView2.Core.dll-C5E5287145FD2F278B79A4DC1D82ED29BE4E85C0", - "SPDXRef-File--net472-Microsoft.IdentityModel.Logging.dll-2F5AAEE65B40587D8A1EA2C64E9B85FD8879515C", - "SPDXRef-File--net472-Microsoft.Ic3.TenantAdminApi.Common.Helper.dll-4155FD14ADB09888213D20D177239FA86C7401D9", - "SPDXRef-File--net472-Microsoft.Azure.KeyVault.Jose.dll-209355D64FC20BE3ABD020675DA878FDAB57C898", - "SPDXRef-File--net472-Microsoft.Extensions.Primitives.dll-A3FDA086C43113F8A6675CC03EC1A997883961F0", - "SPDXRef-File--net472-Microsoft.Azure.KeyVault.Cryptography.dll-1529C65059103BD15EC46D9D116A8661F36AEF78", - "SPDXRef-File--exports-ProxyCmdletDefinitionsWithHelp.ps1-B21C22B608B985806D2B1D947AB81EEBDB33D1E6", - "SPDXRef-File--netcoreapp3.1-Polly.dll-7A9F299BAD62E45CEC06C5F787F6F26A74B28C50", - "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.Module.deps.json-D4914D28F1FBA7C989BE2399783C479E7119825D", - "SPDXRef-File--net472-Polly.dll-3FFDBCBCD72E454682F91DC4A1594D1DD647387A", - "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.Abstractions.dll-8FA25EE7B7E421667AB078CEFBEE748F8DCE9C07", - "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Logging.dll-2613C67F44653C7EF038FD3D344704636F9C458C", - "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.Core.dll-7844DE4C536065FD3C1F75646F5CFB6BC35045F1", - "SPDXRef-File--net472-System.ValueTuple.dll-56A9064127A01A81A522C8E1EEB8485FAE0027C1", - "SPDXRef-File--net472-System.IO.FileSystem.AccessControl.dll-452E03039B5CA030281EEB3D4D6D30573CDDA0EA", - "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.dll-F19C0690D369E263E54B3550829B3BC3B3373EAB", - "SPDXRef-File--custom-CmdletConfig.json-FDD965EFBE7CE49A2E98B4A4A01AD5AF6014A332", - "SPDXRef-File--bin-BrotliSharpLib.dll-A0EECE0BAEC39F6F8ADF0BEF32291DA277F2982E", - "SPDXRef-File--bin-System.IdentityModel.Tokens.Jwt.dll-0D4C32592D75A8670AE477B9DC2FAAAFB427C6BE", - "SPDXRef-File--net472-Microsoft.Teams.ConfigAPI.CmdletHostContract.dll-4BABFB7B56B7286779BE1286C8C79A79591FED16", - "SPDXRef-File--SfbRpsModule.format.ps1xml-E8F2A420864141D37909CAF2C5171EEB0CE007FC", - "SPDXRef-File--net472-Microsoft.Extensions.DependencyInjection.Abstractions.dll-E34966A2959329E48292C1C855499904646E1FDF", - "SPDXRef-File--bin-Microsoft.IdentityModel.Logging.dll-76154A6F904907CE1DF9EF3FC1DD3F113D7D9563", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1-3645045DB00FB7936728DB289A751F140C40C2F4", - "SPDXRef-File--Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml-98FB01D72EBCC9822A8F2D2B371A67F5EB68FFD9", - "SPDXRef-File--Microsoft.Teams.PowerShell.TeamsCmdlets.psd1-EBB0E74C42A70956C0CA5244D621AB81DA10B85C", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml-0CB075DAB1855A7400A1E15A2B51C9D2EFF46CE0", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSipDevicesConfiguration.format.ps1xml-B9B6853D0B588AC40F40E59E8B28541AC4E94A01", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1-B31677218781C20421DEB4AC2E47AC30080D5295", - "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml-930E9644B040B411D2F46CB26AF7A4C2265151A7", - "SPDXRef-File--netcoreapp3.1-Microsoft.TeamsCmdlets.PowerShell.Connect.dll-426FB094B2C28B9987B314DF0872A4F8885603F8", - "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.JsonWebTokens.dll-9A6E7DAF73C54789A2712F0AE4FE092FD4DB036C", - "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Primitives.dll-18E477B888D61439E51B5AE7E409ACC7FFD513CA", - "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.Cryptography.dll-C5FF1F00248B6EBF80AD2EEA9671697044C699A2", - "SPDXRef-File--net472-System.Management.Automation.dll-C95629D2AB39BAA124C0312FE6369362EB85A09E", - "SPDXRef-File--netcoreapp3.1-System.IdentityModel.Tokens.Jwt.dll-BAE1FA3DB2C2C0C59871DEEBF5D31EEE07DC11B8", - "SPDXRef-File--netcoreapp3.1-Microsoft.Web.WebView2.Core.dll-C5E5287145FD2F278B79A4DC1D82ED29BE4E85C0", - "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll-F2A832B87C163A58000AD0F474976E80F03D82A1", - "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.Logging.dll-FD18CF8A5FF408350DA404A5B77C5BF7CF73CF51", - "SPDXRef-File--netcoreapp3.1-Microsoft.Ic3.TenantAdminApi.Common.Helper.dll-4155FD14ADB09888213D20D177239FA86C7401D9", - "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.Jose.dll-F43D97A3D12FDD53BBAB5DCAA3C96462F77506E0", - "SPDXRef-File--net472-runtimes-win-x64-native-msalruntime.dll-36C50AB03FC1A6C5B6990F98A012AB529B2B2F39", - "SPDXRef-File--netcoreapp3.1-Polly.Contrib.WaitAndRetry.dll-B003FE0431ACD8DA6BDB56522A77706B1F31C951", - "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.Module.xml-EB2B86D36ADE4E37542F46AC4AF2A0E81087E582", - "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-9AD479754666088C068F682F0FC6499353C7BB72", - "SPDXRef-File--net472-Microsoft.ApplicationInsights.dll-72FF3FE6DE7FA706F3CC4A378E3887E36ACC6CD2", - "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.Extensions.Msal.dll-E3B240BD80D33F5CAD398AA523888690070A4105", - "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.DependencyInjection.Abstractions.dll-E34966A2959329E48292C1C855499904646E1FDF", - "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.Tokens.dll-81AF1CABB5511C3998C9A107A4D237AF69F5EB55", - "SPDXRef-File--netcoreapp3.1-Microsoft.Data.Sqlite.dll-91A07EAE2AED9262D93132E6F9675C4710DAB18C", - "SPDXRef-File--internal-Merged-internal.ps1-8B6A6A32D0E25A9AA490B302C1B3B95C16EAB50B", - "SPDXRef-File--netcoreapp3.1-System.Management.Automation.dll-F5099C1E1256DFCFD4E594D44DFC9641533B84BC", - "SPDXRef-File--netcoreapp3.1-Microsoft.Web.WebView2.Wpf.dll-805068CFD0D0F3CE39C24E069A29A0FA498C912E", - "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll-9FEC219620969095B92E01834CF187E9F62D1DDB", - "SPDXRef-File--net472-Microsoft.Teams.PowerShell.TeamsCmdlets.dll-C8DBCB77D73D0EC26C1A2DDB394CAEB0764EE148", - "SPDXRef-File--net472-System.Numerics.Vectors.dll-452E8A01C01F07F3F969ADD822D5C9EE3B06F8F5", - "SPDXRef-File--net472-Polly.Contrib.WaitAndRetry.dll-FFB8199A13EE7EFDB9F9944C785C1FFCA2BFCBDC", - "SPDXRef-File--net472-Microsoft.Identity.Client.Extensions.Msal.dll-E3B240BD80D33F5CAD398AA523888690070A4105", - "SPDXRef-File--net472-Microsoft.Identity.Client.NativeInterop.dll-68FE4586FE952A566810CB6557B05FDBBCB198AA", - "SPDXRef-File--en-US-Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml-9333D21AB69E71AAF15772ED7435627BE249B962", - "SPDXRef-File--Microsoft.Teams.PowerShell.Module.xml-EB2B86D36ADE4E37542F46AC4AF2A0E81087E582", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml-616B04ECFAC318530AFB8ED3860C4B29F2E266E0", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml-88BCBD1D58A1AC9900E59525862974D9DEE1BF59", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml-DA393D2FAB3D188D7F6776B6C9C45070D08AC9BB", - "SPDXRef-File--GetTeamSettings.format.ps1xml-E66927F7AE3DE7DEAACFF01335F05CDB0C13F28F", - "SPDXRef-File--SetMSTeamsReleaseEnvironment.ps1-87F8D8BFAA46BECF27650ACAEEA5D003C6290442", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.xml-56E8BFB9F020ADF074710972F5AFD1B1CED156FD", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml-1BC047D58F3C687DBF2A59343F32AC199FD3D639", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml-71DC7937163DA27B00EC15A28CAED3D78FE29DD2", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1-C4489D915FBB8DCC6AEACFB0320504FE81DB08FC", - "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll-641DF755825BAF4FD636AFF34518A6A2D97523C1", - "SPDXRef-File--net472-Microsoft.IdentityModel.JsonWebTokens.dll-42266F6E29E26934C4659749BED13EC55CE54B02", - "SPDXRef-File--netcoreapp3.1-Microsoft.Rest.ClientRuntime.Azure.dll-49CC004D4F9BD6AB0E63CAEB3AE82A0D8DD06153", - "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.TeamsCmdlets.dll-93D5F6EDEAD30A1A06AA64AA00281973163F54BB", - "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.Desktop.dll-DBC6A8AEF95BB1D4B4A0ECF9F942BA6A72BD4F6D", - "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Configuration.Abstractions.dll-80F5A0681144323256503260FEBF939B9B42048C", - "SPDXRef-File--netcoreapp3.1-CmdletSettings.json-98919B572DB8494892B52408CD0FE23531388E32", - "SPDXRef-File--net472-System.Runtime.CompilerServices.Unsafe.dll-DDE81CDE5080F8156E025A8F1A01729BE95B5807", - "SPDXRef-File--net472-CmdletSettings.json-98919B572DB8494892B52408CD0FE23531388E32", - "SPDXRef-File--custom-Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1-53627F621AE9B37AC5FF3E2150695AFFEB8006CE", - "SPDXRef-File--bin-Microsoft.IdentityModel.JsonWebTokens.dll-227778A7338B81B1F88A8C55C969788F3383CA68", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml-D04E07A66948CADD7EBB83F95043FDE053988372", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml-C4DDB17318183C00A5E5770902D1A3EB6AAF5261", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoicemail.format.ps1xml-2FDA4D69648167DDD7297B4A1A997DACFF095B28", - "SPDXRef-File--LICENSE.txt-AB40082210620A2914D58B309A048459E784E962", - "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml-9417D46A85A911FA23CE8E775EAF663D47E8B91E", - "SPDXRef-File--Microsoft.Teams.PowerShell.TeamsCmdlets.xml-5DBC199B8EB3CF8EAEBE7DCBAC617202D699C3C1", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml-AF10A9A63811B95CB21A02E6A60D284CEECD0702", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml-32B487D0909CAB4D1948F9F376714285E81A8DB0", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1-6412E37995E4B4D9D097DD64B39A6CC6CE676668", - "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.psd1-E7DA3B0D86B9CB991864AE03C6CC2424A1FEC399", - "SPDXRef-File--net472-Microsoft.Identity.Client.Broker.dll-6A6F1AC4BF10239703FB38E3E232A945D4985483", - "SPDXRef-File--net472-Microsoft.Data.Sqlite.dll-32A7F518AAFAA63ACF21DBE5B3D003AA4FDF13FE", - "SPDXRef-File--internal-Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1-210392184B7BFCB88C5058A5E4588CB31E88BD31", - "SPDXRef-File--custom-Merged-custom-PsExt.ps1-B1391EFA13A93486F43B11FD790B54470B2DC895", - "SPDXRef-File--net472-Microsoft.Identity.Client.Desktop.dll-19B7935AA3C1CA1DFD4119490458010F151FCB58", - "SPDXRef-File--en-US-Microsoft.TeamsCmdlets.PowerShell.Connect.dll-Help.xml-947B614808FBC38EB26AFF3605D9ACDED0A6335E", - "SPDXRef-File--bin-Microsoft.Teams.ConfigAPI.CmdletHostContract.dll-6F3F98C18838CBB8DACE08FF4ECC30EFE3A197AA", - "SPDXRef-File--MicrosoftTeams.psd1-D58D866A23501E523FBD656C4CC720D5EBCE02EC", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.psd1-BDB249356E8211BC630905E16BCF5C1124AF0FD0", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.xml-88C2B299A3EFEDAD1899AA8B26920DDE35863A3C", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml-A46F3035EEFEDF00B8CDE21DE343EEFD83E446D2", - "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.psm1-F5B16B05E0F5067A5F131E9152E4F7E9CCE40C84" - ] - } - ], - "externalDocumentRefs": [ - { - "externalDocumentId": "DocumentRef-infrastructure-itpro-teamspowershellmodule-68341517-2728245fefa2734980680c32b0058f0d4ef20118", - "spdxDocument": "https://sbom.microsoft/1:bkjmLDt9u0eOFl8ZpDAVyQ:ygnPgS-Zq0yaX5bXKLTDOQ/17372:68341517/HcDpImxcS0ygyFTisynwCA", - "checksum": { - "algorithm": "SHA1", - "checksumValue": "2728245fefa2734980680c32b0058f0d4ef20118" - } - } - ], - "relationships": [ - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3AA91AC82BC50105BAA785EFA25675A27458E28F643BC4289A18DDC937DFB505", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" - }, - { - "relationshipType": "DESCRIBES", - "relatedSpdxElement": "SPDXRef-RootPackage", - "spdxElementId": "SPDXRef-DOCUMENT" - }, - { - "relationshipType": "PREREQUISITE_FOR", - "relatedSpdxElement": "DocumentRef-infrastructure-itpro-teamspowershellmodule-68341517-2728245fefa2734980680c32b0058f0d4ef20118:SPDXRef-RootPackage", - "spdxElementId": "SPDXRef-RootPackage" - }, - { - "relationshipType": "DESCRIBED_BY", - "relatedSpdxElement": "SPDXRef-DOCUMENT", - "spdxElementId": "SPDXRef-File--..-..--manifest-spdx-2.2-manifest.spdx.json-2728245FEFA2734980680C32B0058F0D4EF20118" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-74671EB8E35B4A22DF14E3B027232B1C75778285F2258802720CA2F93AC9490D", - "spdxElementId": "SPDXRef-RootPackage" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-8D6E0C5870BF65665DE70BE60EBDBCAE0A4EF9BFBD566A07D2FF53D2429D3D8A", - "spdxElementId": "SPDXRef-Package-1699161828195A03FDB363E7F903B609D236C7AAADF0F4BC0BA1A33D4F1ADFD3" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", - "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", - "spdxElementId": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", - "spdxElementId": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-65F3BB807AF49E7AD397E2DCDE7E8152B0F742044FF2ABFB7B8136F4D77F3E3D", - "spdxElementId": "SPDXRef-Package-ABA4D9F7DE0C64E732AAB950319D329AC4637C2C708F323531E6E4E4DD57C672" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", - "spdxElementId": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-6B07767B8D24067A9C860F27DE2655663A6187C7DCB86797C0F07D5D2827293E", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", - "spdxElementId": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", - "spdxElementId": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BB5EED84C09683F587843DDAFC814F4B010F56955D0A82584767D72B99ABD849", - "spdxElementId": "SPDXRef-Package-E2EA3E910DA44E73A47577D64A778A781F72A8BF1A30C328A735084D8AE1BDF7" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-98974C6C7FFEA0934A0B49276F784EF7433A314B8F4352E602465184EE7B9350", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-43357C895306E69902F1DB752C436B0CD3BF18128E7FBCD01CF1056589153BE0", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", - "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", - "spdxElementId": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-F5B1FB353339B8697A0ED2F54610AD24DBB36C6215C9B0F18F0BD2159D8766DB", - "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", - "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CDAAFFA05EBF9CB4769A0302D45C4994A3310E518046D8A5549AFEE765ADFD9C", - "spdxElementId": "SPDXRef-Package-0FC7C18C18F48CA2321CCA8E088120C9CCCCBE93BCC1BF1CC39C9C81C6243BBC" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", - "spdxElementId": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-ADB7709704AD696A0D5E4AF644F04461E0875F8649A92467263B8B71399B2B3D", - "spdxElementId": "SPDXRef-RootPackage" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-44DB18E004D7C51DDF86DF1293D672335A4845195A2E9FD5A2759AC640E455F3", - "spdxElementId": "SPDXRef-Package-E8D0184AED843C8B48D3348C34E510C1AECCD9E05D002C20871C83F97B6A7A93" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", - "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C1475C5380732C85127A15B8BADF74D2619786E90578875B650082AE4497BC14", - "spdxElementId": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-85FB27F5A68228D1E9331D9E7057200D9845B178A51F7F40560E070D910A3E78", - "spdxElementId": "SPDXRef-RootPackage" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-99AE2A6EF6038704F29BA2F00C6D96AE3AF9212E4DD5032147E125A05A20E40B", - "spdxElementId": "SPDXRef-RootPackage" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", - "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-EB28CDD241D6CCBF0718B9E555251C41DF66A198C6ECC693D09211542C656620", - "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004", - "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4", - "spdxElementId": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", - "spdxElementId": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", - "spdxElementId": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", - "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B512828296F96786715767A9D629FA4E02BEACAC0CC0BE4A7A1CFF55AF155FB6", - "spdxElementId": "SPDXRef-Package-286C6C3EE620982A6E1C362D82664FBF995415D6234E3ADD0D2D997B418705A7" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-5836368BE1AB0E0727240521F7F166AF02634436A36865C545C20939C7D5D0C4", - "spdxElementId": "SPDXRef-Package-D236087235658AA9E95BF408F2AB357C328799ADEC4D6626FB45AE1F7D06CA75" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3BB6EBDC93E34DB9728F390186CC96E21CEA3F6204694FE88B4E928DA5F590A2", - "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", - "spdxElementId": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-DA0AF8340DCB876C7A8B0C3746460DBC5EE231998B283C8070BAB226E6C9182E", - "spdxElementId": "SPDXRef-Package-5836368BE1AB0E0727240521F7F166AF02634436A36865C545C20939C7D5D0C4" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-8DF9F1DC6CCE99BCAB81EC8023E1ED3CD940A36704E358DAE8362D08FAFD45B0", - "spdxElementId": "SPDXRef-RootPackage" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BD578492E1B6D65E73FA738A546B0E31220C520674A7812D79178EADA585420A", - "spdxElementId": "SPDXRef-RootPackage" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-960414DA8719C10D04651A042C6327736F11D52FA2FCB8501240FBA2B4B8FA57", - "spdxElementId": "SPDXRef-RootPackage" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1D191B13C73F7AA570C121E8ACCAD625116B8267E418ECDD7222AAAB63A76A84", - "spdxElementId": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-5D34709A26D1F9AB9ACF1533059FF2089C126911B090DF3B9961364420E01C7E", - "spdxElementId": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-422B168409BFFB6195EFFC810AEE94179F01C0BEFB6D8F78809CB9B8E5990035", - "spdxElementId": "SPDXRef-Package-48265A488C29B4798425AAB3E6AB86C51F61DA2EC4140043AB6467A6D1E98574" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", - "spdxElementId": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", - "spdxElementId": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CC37C138AFE3FD56BAF5242097421D8A247510DAC602473C0F908356A935DFBA", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-99204549ED77ED47F9DF4D5E0F37A740DDCC7A2DE11C6CA47CEA1E5F014BA159", - "spdxElementId": "SPDXRef-Package-8422F607B8266110A546C45992F70A0FB1B2A891E18E98FBBB9C7C5297435350" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", - "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-270ED84947C7777BB807C511A9593856711C3D4CDD93E10AC7AEFEE203559CC1", - "spdxElementId": "SPDXRef-Package-F5B1FB353339B8697A0ED2F54610AD24DBB36C6215C9B0F18F0BD2159D8766DB" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", - "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C5208AC43A9B8525DA67EA002836F84382F0C16587D945CE108125CDC4492B2A", - "spdxElementId": "SPDXRef-RootPackage" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", - "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-71F0727D1B02C5BEA2BE2C6985E0093660DAEC028DB347AB157E3CFFC6779892", - "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", - "spdxElementId": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", - "spdxElementId": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", - "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B7D63C69227797DAB4E0B488D700205A02ABA2C1D1A6841FF891E5F417797B09", - "spdxElementId": "SPDXRef-RootPackage" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E8D0184AED843C8B48D3348C34E510C1AECCD9E05D002C20871C83F97B6A7A93", - "spdxElementId": "SPDXRef-Package-3AA91AC82BC50105BAA785EFA25675A27458E28F643BC4289A18DDC937DFB505" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-288304B4D65CA653A9F91AEEED832C8EDBDE12D62998B237EDD814A65B0F11CE", - "spdxElementId": "SPDXRef-Package-BD049C5100B248F06EBEC66C3BE118753E842489EC3E40AF36E080A56CF8286E" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", - "spdxElementId": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", - "spdxElementId": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-33B1D8F98040445C1C019996980972FB5A3DA85A789108E0440ED021F416AB88", - "spdxElementId": "SPDXRef-RootPackage" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693", - "spdxElementId": "SPDXRef-Package-D236087235658AA9E95BF408F2AB357C328799ADEC4D6626FB45AE1F7D06CA75" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E389C196CC3B31F9F0F95EF8A726F64453E62013B00C3C8B8C248EA8F581C52E", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-29B61FAD063D6EE99BA8CB752B12EF10BB76D56418183E3DCAD32A267BEC6433", - "spdxElementId": "SPDXRef-Package-D236087235658AA9E95BF408F2AB357C328799ADEC4D6626FB45AE1F7D06CA75" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-DDE5C44E3BD87F8156A218CD1BA03D4DA71B87C82336BF66C024F3A0F49CE80C", - "spdxElementId": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", - "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", - "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9BEFA8934C7016259385BFDA2906F038610220B7BCF08D5AA651BE6CB1541E51", - "spdxElementId": "SPDXRef-Package-2D315204EDF1805A0597A6B2DA6C5F35A222859A45FDEC22A15E70E4B966EEC2" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", - "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", - "spdxElementId": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", - "spdxElementId": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-06B1FE03E3B06D8AB8CFF2AD4FC31D4A3796628ED49E9E383C7F1B7350B01C17", - "spdxElementId": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-22BC1B62603E565BA5827501118C102A4E869955E3DB43D001A4ADA2384D657B", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1699161828195A03FDB363E7F903B609D236C7AAADF0F4BC0BA1A33D4F1ADFD3", - "spdxElementId": "SPDXRef-Package-3BB6EBDC93E34DB9728F390186CC96E21CEA3F6204694FE88B4E928DA5F590A2" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E", - "spdxElementId": "SPDXRef-Package-D236087235658AA9E95BF408F2AB357C328799ADEC4D6626FB45AE1F7D06CA75" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-F94C457D4E382F047AEC8F6AE230E7221D2480FBAB40677C132D929CBE0595B5", - "spdxElementId": "SPDXRef-RootPackage" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", - "spdxElementId": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BD049C5100B248F06EBEC66C3BE118753E842489EC3E40AF36E080A56CF8286E", - "spdxElementId": "SPDXRef-RootPackage" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9CFCE4B97775AC5FBD999304EF6211E727EC46AB197CE4281A857627376B4AE3", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-556E04674AB21C6E689B621B54F3C112DD3673B2C5F20B63EE80559940B575CD", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", - "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", - "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2BD1526E06B0F242413706B6514589398B1723F2A354DCCBF1BCCF210693E051", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-48265A488C29B4798425AAB3E6AB86C51F61DA2EC4140043AB6467A6D1E98574", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-286C6C3EE620982A6E1C362D82664FBF995415D6234E3ADD0D2D997B418705A7", - "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308", - "spdxElementId": "SPDXRef-Package-5836368BE1AB0E0727240521F7F166AF02634436A36865C545C20939C7D5D0C4" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", - "spdxElementId": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-53016EDEC3811948DFE357884F2D5F3AF322730FF9B1A766B94CB2EA206EE7C3", - "spdxElementId": "SPDXRef-Package-D236087235658AA9E95BF408F2AB357C328799ADEC4D6626FB45AE1F7D06CA75" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-56FB670D33987C301B2779D33E9778876DA14F5F4E15B6F68A7D4E62B36CEDE4", - "spdxElementId": "SPDXRef-Package-99204549ED77ED47F9DF4D5E0F37A740DDCC7A2DE11C6CA47CEA1E5F014BA159" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-8CC68F5976CDE9EF39F904D527CADE89A54B7CCAD5368FC3E839D23A3ACD50B0", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", - "spdxElementId": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", - "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", - "spdxElementId": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-A092770E8354CA90D85493FC4F2941F25FCE4214BAF8EB9A9E4383C495E133E9", - "spdxElementId": "SPDXRef-RootPackage" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2B845BD152273D72FE2AFC20FA987AF1A6499713ECA5A9C6306E0B5B4C72DA3B", - "spdxElementId": "SPDXRef-RootPackage" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4EC77DE72DF7856001C57E24CCB11F437B92DC6132B2272D5765CC62E1851102", - "spdxElementId": "SPDXRef-Package-3248038335932D1D4047F57731B65A00918297ABB00C3DCFB05FB8A456FB63A2" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", - "spdxElementId": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-5343B694E9E8D06887CF8F4008BE0581FC0BD9BD2D28FC4370905FB693F311F8", - "spdxElementId": "SPDXRef-Package-71F0727D1B02C5BEA2BE2C6985E0093660DAEC028DB347AB157E3CFFC6779892" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-48B8396376BA44575395CB75027CF1F5E11012452DBD38F7C1D615CC57EC31E4", - "spdxElementId": "SPDXRef-Package-53016EDEC3811948DFE357884F2D5F3AF322730FF9B1A766B94CB2EA206EE7C3" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", - "spdxElementId": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", - "spdxElementId": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D86E73E2A842C9E39146AF02D6F6F7F644FFE8FCEAA8CA0B28292D6396191B82", - "spdxElementId": "SPDXRef-Package-D236087235658AA9E95BF408F2AB357C328799ADEC4D6626FB45AE1F7D06CA75" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", - "spdxElementId": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", - "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-8422F607B8266110A546C45992F70A0FB1B2A891E18E98FBBB9C7C5297435350", - "spdxElementId": "SPDXRef-Package-D236087235658AA9E95BF408F2AB357C328799ADEC4D6626FB45AE1F7D06CA75" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", - "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB", - "spdxElementId": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", - "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0FC7C18C18F48CA2321CCA8E088120C9CCCCBE93BCC1BF1CC39C9C81C6243BBC", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", - "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4", - "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-A7749B3F7443A0F0AFF64F71746F18D670D8D4FBF18B2138A4AD85A6BC9A810F", - "spdxElementId": "SPDXRef-RootPackage" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D236087235658AA9E95BF408F2AB357C328799ADEC4D6626FB45AE1F7D06CA75", - "spdxElementId": "SPDXRef-RootPackage" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2E7E04B2E51D7C6CB26093B26F8F38FA0191A3B0BE6B8047AA42CC8049D34AEF", - "spdxElementId": "SPDXRef-RootPackage" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", - "spdxElementId": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4C3B9EAB65F57A8012A61AB041013CC14DDEF227C8C011C485D68401ED4A33A1", - "spdxElementId": "SPDXRef-RootPackage" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3C980CCD824C5227F138880F4153A2342720807A805D217B247BBAA9C92F0E83", - "spdxElementId": "SPDXRef-RootPackage" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B421A049D84918A1509D87157C10713A7AB4A5875825A80B6DEA4A96C3685E82", - "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-ABA4D9F7DE0C64E732AAB950319D329AC4637C2C708F323531E6E4E4DD57C672", - "spdxElementId": "SPDXRef-RootPackage" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-74783B1098990678258F1B4E741A3CAF2954BDB52AB144B4550E60FBB11A594C", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0466CE9286D5381D3008D7C7F928AD9A6CA431DB44B3090C1AC076F27AEF1BDC", - "spdxElementId": "SPDXRef-Package-06B1FE03E3B06D8AB8CFF2AD4FC31D4A3796628ED49E9E383C7F1B7350B01C17" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", - "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", - "spdxElementId": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC", - "spdxElementId": "SPDXRef-RootPackage" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", - "spdxElementId": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-51B112946B53F473049CC515F08F27E227C044A2E330920154720B3FCA47D0A9", - "spdxElementId": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-97A4624F33F0891481314670BD6833AC9E478270C8E9BE83E71715A09CD435FC", - "spdxElementId": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", - "spdxElementId": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-8F4F099CF0C93C778298B3BBCE55BF07CA151A2C35C8535BDA77B9D9C17898ED", - "spdxElementId": "SPDXRef-RootPackage" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", - "spdxElementId": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D87A871D9DCC8A4B4DC16C993FF9320F3AAB938B64A6EC2472FC2C1CBF3F7219", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-DA2AF0572DFE796D5ED4CBA3C0D769A0AEB1D2D1712BA876E8ACB41B661353B4", - "spdxElementId": "SPDXRef-RootPackage" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3248038335932D1D4047F57731B65A00918297ABB00C3DCFB05FB8A456FB63A2", - "spdxElementId": "SPDXRef-RootPackage" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E2EA3E910DA44E73A47577D64A778A781F72A8BF1A30C328A735084D8AE1BDF7", - "spdxElementId": "SPDXRef-Package-D236087235658AA9E95BF408F2AB357C328799ADEC4D6626FB45AE1F7D06CA75" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", - "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D", - "spdxElementId": "SPDXRef-Package-D236087235658AA9E95BF408F2AB357C328799ADEC4D6626FB45AE1F7D06CA75" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2D315204EDF1805A0597A6B2DA6C5F35A222859A45FDEC22A15E70E4B966EEC2", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", - "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", - "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B", - "spdxElementId": "SPDXRef-Package-F5B1FB353339B8697A0ED2F54610AD24DBB36C6215C9B0F18F0BD2159D8766DB" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-95F4C5AD336F2F37AEE65BA24C870A5DA8F1D94E445A9A10A2F5F63A3A0F2BFA", - "spdxElementId": "SPDXRef-Package-29B61FAD063D6EE99BA8CB752B12EF10BB76D56418183E3DCAD32A267BEC6433" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012", - "spdxElementId": "SPDXRef-Package-D236087235658AA9E95BF408F2AB357C328799ADEC4D6626FB45AE1F7D06CA75" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-751D58F61F982C3D7B11602BBEB943F9251AE4EFF8B6A12F0EC98F276D20C730", - "spdxElementId": "SPDXRef-Package-56FB670D33987C301B2779D33E9778876DA14F5F4E15B6F68A7D4E62B36CEDE4" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", - "spdxElementId": "SPDXRef-Package-286C6C3EE620982A6E1C362D82664FBF995415D6234E3ADD0D2D997B418705A7" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320", - "spdxElementId": "SPDXRef-Package-3C980CCD824C5227F138880F4153A2342720807A805D217B247BBAA9C92F0E83" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-96C6F4964A911ECC8415520C77654FAF06CF5E4E3529948D9A3EE44CAB576A1E", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9C5EC1F429A13E295E10F319F6A0EF6D3498213116DA080E8BB3B075E7C04EC5", - "spdxElementId": "SPDXRef-Package-56FB670D33987C301B2779D33E9778876DA14F5F4E15B6F68A7D4E62B36CEDE4" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CE645B91D1E102C5ADFA2FE9FA88293752E1ED47F685D9D5DC5E03075280E0E3", - "spdxElementId": "SPDXRef-RootPackage" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E26095C80EBEB7A2BAE8D320D089887B75ED06F16FAE8110701E769FB395C3DE", - "spdxElementId": "SPDXRef-RootPackage" - } - ], - "spdxVersion": "SPDX-2.2", - "dataLicense": "CC0-1.0", - "SPDXID": "SPDXRef-DOCUMENT", - "name": "infrastructure_itpro_teamspowershellmodule 68341517", - "documentNamespace": "https://sbom.microsoft/1:bkjmLDt9u0eOFl8ZpDAVyQ:ygnPgS-Zq0yaX5bXKLTDOQ/17372:68341517/M4qhHErwrEautpg0G2kGyw", - "creationInfo": { - "created": "2025-03-13T09:17:15Z", - "creators": [ - "Organization: Microsoft", - "Tool: Microsoft.SBOMTool-3.1.0" - ] - }, - "documentDescribes": [ - "SPDXRef-RootPackage" - ] -} \ No newline at end of file diff --git a/Modules/MicrosoftTeams/6.9.0/_manifest/spdx_2.2/manifest.spdx.json.sha256 b/Modules/MicrosoftTeams/6.9.0/_manifest/spdx_2.2/manifest.spdx.json.sha256 deleted file mode 100644 index 420b7f3355b9..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/_manifest/spdx_2.2/manifest.spdx.json.sha256 +++ /dev/null @@ -1 +0,0 @@ -a1abb92e3945c81b905f3ac784df0a1c37e6623eaceba0303316844240448f19 \ No newline at end of file diff --git a/Modules/MicrosoftTeams/6.9.0/_manifest/spdx_2.2/response-cose.json b/Modules/MicrosoftTeams/6.9.0/_manifest/spdx_2.2/response-cose.json deleted file mode 100644 index 698759576eca..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/_manifest/spdx_2.2/response-cose.json +++ /dev/null @@ -1 +0,0 @@ -{"CustomerCorrelationId":"c372c994-80a7-4941-b40f-81beb0c42c46","Result":"Success"} \ No newline at end of file diff --git a/Modules/MicrosoftTeams/6.9.0/bin/BrotliSharpLib.dll b/Modules/MicrosoftTeams/6.9.0/bin/BrotliSharpLib.dll deleted file mode 100644 index 3dbceeaf9c26..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/bin/BrotliSharpLib.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/bin/Microsoft.IdentityModel.JsonWebTokens.dll b/Modules/MicrosoftTeams/6.9.0/bin/Microsoft.IdentityModel.JsonWebTokens.dll deleted file mode 100644 index 57cf6a0dd968..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/bin/Microsoft.IdentityModel.JsonWebTokens.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/bin/Microsoft.IdentityModel.Logging.dll b/Modules/MicrosoftTeams/6.9.0/bin/Microsoft.IdentityModel.Logging.dll deleted file mode 100644 index 1c39858f0a61..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/bin/Microsoft.IdentityModel.Logging.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/bin/Microsoft.IdentityModel.Tokens.dll b/Modules/MicrosoftTeams/6.9.0/bin/Microsoft.IdentityModel.Tokens.dll deleted file mode 100644 index 0920a371c26d..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/bin/Microsoft.IdentityModel.Tokens.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/bin/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll b/Modules/MicrosoftTeams/6.9.0/bin/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll deleted file mode 100644 index 1b1acf28c556..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/bin/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll b/Modules/MicrosoftTeams/6.9.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll deleted file mode 100644 index 95dd5f6af9bd..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/bin/System.IdentityModel.Tokens.Jwt.dll b/Modules/MicrosoftTeams/6.9.0/bin/System.IdentityModel.Tokens.Jwt.dll deleted file mode 100644 index bd41c5efa0dc..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/bin/System.IdentityModel.Tokens.Jwt.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/custom/Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1 b/Modules/MicrosoftTeams/6.9.0/custom/Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1 deleted file mode 100644 index e35e7fb32915..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/custom/Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1 +++ /dev/null @@ -1,235 +0,0 @@ -# region Generated - # Load the private module dll - $null = Import-Module -PassThru -Name (Join-Path $PSScriptRoot '..\bin\Microsoft.Teams.ConfigAPI.Cmdlets.private.dll') - - # Load the internal module - $internalModulePath = Join-Path $PSScriptRoot '..\internal\Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1' - if(Test-Path $internalModulePath) { - $null = Import-Module -Name $internalModulePath - } - - # Export nothing to clear implicit exports - Export-ModuleMember - - # Export script cmdlets - Get-ChildItem -Path $PSScriptRoot -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } - Export-ModuleMember -Function (Get-ScriptCmdlet -ScriptFolder $PSScriptRoot) -Alias (Get-ScriptCmdlet -ScriptFolder $PSScriptRoot -AsAlias) -# endregion - -# SIG # Begin signature block -# MIIoQwYJKoZIhvcNAQcCoIIoNDCCKDACAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBOycrzQVq6CnNY -# rK5l5Eg2CcKYocwkesaom45CeipKo6CCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIJjwtTQPVUIPxEfl/cH44G64 -# tSZU5xH8iTxSrE/PWkOGMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAV/33PZAeLR0BS+56noPLrZ/ASE4rRNKP30sSDtLOkGISkg5RZaz3pWAU -# dsS6qMznwUQ+EWoAkMVTbWSDnwI/gf02oUrIDvweqPFpybDG6gGXsXjZB3CTfGxz -# /VNSfJyfqKdznv3bUmEnHAVHJ5kX95Ck7la7oKQ3Ci5vAEQLwtRhc686BwasTkUy -# IvU+0CgP4dEYEaS77h0dfIu1lQYL5LXAPItUaYlGL0gojKpTA3Lr/XeQVX80+ltP -# vvbVa15nTRteZj0IiukcssyY5NuZfe7Y4MMDal3s9HMRjzH9DOifrf2jgVpLESfr -# oJvo3gBrk56NaJUFsdrRbou0oItciaGCF60wghepBgorBgEEAYI3AwMBMYIXmTCC -# F5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsq -# hkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCBU5xMN0fwB0U8q19PFNzfUOi9rUzlZOcIBj2lLNe+ySwIGZ7Y1x3T5 -# GBMyMDI1MDMxMzA4NDcyMy43MDNaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# TjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB+R9njXWrpPGxAAEAAAH5MA0G -# CSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI0 -# MDcyNTE4MzEwOVoXDTI1MTAyMjE4MzEwOVowgdMxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9w -# ZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjJBMUEt -# MDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtD1MH3yAHWHNVslC+CBT -# j/Mpd55LDPtQrhN7WeqFhReC9xKXSjobW1ZHzHU8V2BOJUiYg7fDJ2AxGVGyovUt -# gGZg2+GauFKk3ZjjsLSsqehYIsUQrgX+r/VATaW8/ONWy6lOyGZwZpxfV2EX4qAh -# 6mb2hadAuvdbRl1QK1tfBlR3fdeCBQG+ybz9JFZ45LN2ps8Nc1xr41N8Qi3KVJLY -# X0ibEbAkksR4bbszCzvY+vdSrjWyKAjR6YgYhaBaDxE2KDJ2sQRFFF/egCxKgogd -# F3VIJoCE/Wuy9MuEgypea1Hei7lFGvdLQZH5Jo2QR5uN8hiMc8Z47RRJuIWCOeyI -# J1YnRiiibpUZ72+wpv8LTov0yH6C5HR/D8+AT4vqtP57ITXsD9DPOob8tjtsefPc -# QJebUNiqyfyTL5j5/J+2d+GPCcXEYoeWZ+nrsZSfrd5DHM4ovCmD3lifgYnzjOry -# 4ghQT/cvmdHwFr6yJGphW/HG8GQd+cB4w7wGpOhHVJby44kGVK8MzY9s32Dy1THn -# Jg8p7y1sEGz/A1y84Zt6gIsITYaccHhBKp4cOVNrfoRVUx2G/0Tr7Dk3fpCU8u+5 -# olqPPwKgZs57jl+lOrRVsX1AYEmAnyCyGrqRAzpGXyk1HvNIBpSNNuTBQk7FBvu+ -# Ypi6A7S2V2Tj6lzYWVBvuGECAwEAAaOCAUkwggFFMB0GA1UdDgQWBBSJ7aO6nJXJ -# I9eijzS5QkR2RlngADAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBf -# BgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmww -# bAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29m -# dC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0El -# MjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUF -# BwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEAZiAJgFbkf7jf -# hx/mmZlnGZrpae+HGpxWxs8I79vUb8GQou50M1ns7iwG2CcdoXaq7VgpVkNf1uvI -# hrGYpKCBXQ+SaJ2O0BvwuJR7UsgTaKN0j/yf3fpHD0ktH+EkEuGXs9DBLyt71iut -# Vkwow9iQmSk4oIK8S8ArNGpSOzeuu9TdJjBjsasmuJ+2q5TjmrgEKyPe3TApAio8 -# cdw/b1cBAmjtI7tpNYV5PyRI3K1NhuDgfEj5kynGF/uizP1NuHSxF/V1ks/2tCEo -# riicM4k1PJTTA0TCjNbkpmBcsAMlxTzBnWsqnBCt9d+Ud9Va3Iw9Bs4ccrkgBjLt -# g3vYGYar615ofYtU+dup+LuU0d2wBDEG1nhSWHaO+u2y6Si3AaNINt/pOMKU6l4A -# W0uDWUH39OHH3EqFHtTssZXaDOjtyRgbqMGmkf8KI3qIVBZJ2XQpnhEuRbh+Agpm -# Rn/a410Dk7VtPg2uC422WLC8H8IVk/FeoiSS4vFodhncFetJ0ZK36wxAa3FiPgBe -# bRWyVtZ763qDDzxDb0mB6HL9HEfTbN+4oHCkZa1HKl8B0s8RiFBMf/W7+O7EPZ+w -# MH8wdkjZ7SbsddtdRgRARqR8IFPWurQ+sn7ftEifaojzuCEahSAcq86yjwQeTPN9 -# YG9b34RTurnkpD+wPGTB1WccMpsLlM0wggdxMIIFWaADAgECAhMzAAAAFcXna54C -# m0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp -# Y2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMy -# MjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0B -# AQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51 -# yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY -# 6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9 -# cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN -# 7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDua -# Rr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74 -# kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2 -# K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5 -# TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZk -# i1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9Q -# BXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3Pmri -# Lq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUC -# BBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJl -# pxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIB -# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9y -# eS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUA -# YgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU -# 1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2Ny -# bC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIw -# MTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0w -# Ni0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/yp -# b+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulm -# ZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM -# 9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECW -# OKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4 -# FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3Uw -# xTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPX -# fx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVX -# VAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGC -# onsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU -# 5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEG -# ahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# TjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUAqs5WjWO7zVAKmIcdwhqgZvyp6UaggYMw -# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsF -# AAIFAOt9CrswIhgPMjAyNTAzMTMwNzQxNDdaGA8yMDI1MDMxNDA3NDE0N1owdDA6 -# BgorBgEEAYRZCgQBMSwwKjAKAgUA630KuwIBADAHAgEAAgIPkjAHAgEAAgISUjAK -# AgUA635cOwIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIB -# AAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQBPToyfp6Ixu2Ed -# TOI43SVySVQtE7qaCjFsjmE7QVEUqnkeM7BlzjdRK03oDz+aGAmsA4cX8gbQ2/1O -# dJfQYDNzIt2emeRCWiWadOWzrU39WTvURucKo3nYbKo7h9+P0otBXs6XIrsu1E1q -# 8KTwzkMV+qTcJ0p077nYXgTWYyinUS0hSxYx0g4mmFAJaW3Nhccs1Z657IBM1GnF -# 8hLegzLQj7zm1ESU/RGeyFiONEgPU8ZByAKm5vE74Ecy7QHMj/HncNRNiTX2sl67 -# QFHwpT0mfjzXvN+9U5dWVl9Wbxv7rLiIyYLCgqmZN3kOGjw1MSF3hr+J3zx+ogMQ -# SNcq0xtHMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAH5H2eNdauk8bEAAQAAAfkwDQYJYIZIAWUDBAIBBQCgggFKMBoGCSqG -# SIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQglFoXcwZmQK93 -# 7+wq0eGZS84vBETyrrJrUuUJKw+kw8QwgfoGCyqGSIb3DQEJEAIvMYHqMIHnMIHk -# MIG9BCA5I4zIHvCN+2T66RUOLCZrUEVdoKlKl8VeCO5SbGLYEDCBmDCBgKR+MHwx -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1p -# Y3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB+R9njXWrpPGxAAEAAAH5 -# MCIEIOwwq9kkNhEZXimi5g5/8pUbqoqiLXVIAkWn5Dl3iXxYMA0GCSqGSIb3DQEB -# CwUABIICADahxIUERkZ0vEeAaEaCZVNrWfXlWoIurR8VuyCgrq9Nu/C1oOTD990S -# OkHb7955CyLj55pqSb/flYUenQ1vaT53LohmL3Ubycls3k8Plhkmmf3NHtlHcvUv -# ytkbeeIrKjtFbdCgtj2f5ZzjReihhmXdIq3836Rf5PPTuIVnHAH63Tsayr6mecU/ -# lt5h8Iwk+qu9UjMbEfq1YOC3RfWrwth67RQCKPEAXNa+XyfrFmsBxLEzaDxZo5on -# R2ZQKoA7aUHX8OoRNsuRbtKBGintL6o3mSqXhHHm3bYjhfhDpxdgddTOy+GDJvTP -# QSquVda3dg2aSuxxnyV1nULjOgKL+whLnoEdYZwzaQNXMoW9cvAb5KYD53P0QX1I -# +IiWF36Ty3ckvPUkE8xUpA7eBgOVbmqa+Tb2SkIs3j1KEsDj58bVz6aTUoZiVf1S -# pLjkhmmFzSpmXnb+CSmBi/p+/bp+qfj0YRkNz4plLnORQmk7V7Ez9jJUvv+VQ9Y/ -# ngT6ynKK/DN5f87UKkJraYB6iuQTkeG1jgYUvgcqkhgkY7kdcyHpGvN/LePj6cbu -# uQNWmZIlllFAaWMtw/7R3OwjkdlVJfoAZPRV+oy/K+T9eWBIktOrb3CH0GIsx43c -# d3VQCxJssh7hkCPEQRYlLMd/NHTizaVSgEIdduAJJD7C75V3uCg9 -# SIG # End signature block diff --git a/Modules/MicrosoftTeams/6.9.0/internal/Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1 b/Modules/MicrosoftTeams/6.9.0/internal/Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1 deleted file mode 100644 index 04af412ba5f6..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/internal/Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1 +++ /dev/null @@ -1,256 +0,0 @@ -# region Generated - # Load the private module dll - $null = Import-Module -PassThru -Name (Join-Path $PSScriptRoot '..\bin\Microsoft.Teams.ConfigAPI.Cmdlets.private.dll') - - # Get the private module's instance - $instance = [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Module]::Instance - - # Export nothing to clear implicit exports - Export-ModuleMember - - # Export proxy cmdlet scripts - $exportsPath = $PSScriptRoot - $directories = Get-ChildItem -Directory -Path $exportsPath - $profileDirectory = $null - if($instance.ProfileName) { - if(($directories | ForEach-Object { $_.Name }) -contains $instance.ProfileName) { - $profileDirectory = $directories | Where-Object { $_.Name -eq $instance.ProfileName } - } else { - # Don't export anything if the profile doesn't exist for the module - $exportsPath = $null - Write-Warning "Selected Azure profile '$($instance.ProfileName)' does not exist for module '$($instance.Name)'. No cmdlets were loaded." - } - } elseif(($directories | Measure-Object).Count -gt 0) { - # Load the last folder if no profile is selected - $profileDirectory = $directories | Select-Object -Last 1 - } - - if($profileDirectory) { - Write-Information "Loaded Azure profile '$($profileDirectory.Name)' for module '$($instance.Name)'" - $exportsPath = $profileDirectory.FullName - } - - if($exportsPath) { - Get-ChildItem -Path $exportsPath -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } - $cmdletNames = Get-ScriptCmdlet -ScriptFolder $exportsPath - Export-ModuleMember -Function $cmdletNames -Alias (Get-ScriptCmdlet -ScriptFolder $exportsPath -AsAlias) - } -# endregion - -# SIG # Begin signature block -# MIIoOQYJKoZIhvcNAQcCoIIoKjCCKCYCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBinYxDco4Ms/jt -# y2SUOAGGFlsJymQ7B0Ay6+tcGLbG9KCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIATt -# akQutmXgLMF/GbL8NirDQVtbkIOFqy28LZj0qbtlMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAfNkcwSo8fYBL+rQsBiRA5cZTCL+4Au3p5qUG -# TAif9ZngyVJZsXD+hzI/eVS21ZU4D+ecnLGQJTPN+gfvrZpHNMO0g7SHZugcyR/5 -# yvcKdeRD/zdrUDWe0R4JEXWy9eIth7M47JgsudxB/B3sTNOy93UaB2A1/Xta4nzB -# uptkBlOuFn5wlFIMSF0DePexyF2vfNNQUtxRWQYhI+2lfld1KRY363/EqQIOTQgB -# YQDx9COsM4o8JaWUXwl6g5oKLCM/zPMks0ThgOeb4IYeSMLDMeZmT+Pf4n9sxQHp -# Y9adDU9SRL2b9OCXMnOQIA0jPTvEkU8jF07Owmo9wlTCa75ZJqGCF5QwgheQBgor -# BgEEAYI3AwMBMYIXgDCCF3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFSBgsqhkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCAgmwQB+WhvgT73yAh+sV/hGSP93EF6iNje -# dTWdGEQxrAIGZ7exD5ieGBMyMDI1MDMxMzA4NDczMC43NTZaMASAAgH0oIHRpIHO -# MIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQL -# ExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxk -# IFRTUyBFU046RTAwMi0wNUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1l -# LVN0YW1wIFNlcnZpY2WgghHqMIIHIDCCBQigAwIBAgITMwAAAgsRnVYpkvm/hQAB -# AAACCzANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDAeFw0yNTAxMzAxOTQyNThaFw0yNjA0MjIxOTQyNThaMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046RTAwMi0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Uw -# ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCqrPitRjAXqFh2IHzQYD3u -# ykDPyJF+79e5CkY4aYsb93QVun4fZ3Ju/0WHrtAF3JswSiAVl7p1H2zFKrvyhaVu -# RYcSc7YuyP0GHEVq7YVS5uF3YLlLeoyGOPKSXGs6agW60CqVBhPQ+2n49e6YD9wG -# v6Y0HmBKmnQqY/AKJijgUiRulb1ovNEcTZmTNRu1mY+0JjiEus+eF66VNoBv1a2M -# W0JPYbFBhPzFHlddFXcjf2qIkb5BYWsFL7QlBjXApf2HmNrPzG36g1ybo/KnRjSg -# IRpHeYXxBIaCEGtR1EmpJ90OSFHxUu7eIjVfenqnVtag0yAQY7zEWSXMN6+CHjv3 -# SBNtm5ZIRyyCsUZG8454K+865bw7FwuH8vk5Q+07K5lFY02eBDw3UKzWjWvqTp2p -# K8MTa4kozvlKgrSGp5sh57GnkjlvNvt78NXbZTVIrwS7xcIGjbvS/2r5lRDT+Q3P -# 2tT+g6KDPdLntlcbFdHuuzyJyx0WfCr8zHv8wGCB3qPObRXK4opAInSQ4j5iS28K -# ATJGwQabRueZvhvd9Od0wcFYOb4orUv1dD5XwFyKlGDPMcTPOQr0gxmEQVrLiJEo -# LyyW8EV/aDFUXToxyhfzWZ6Dc0l9eeth1Et2NQ3A/qBR5x33pjKdHJVJ5xpp2AI3 -# ZzNYLDCqO1lthz1GaSz+PQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFGZcLIjfr+l6 -# WeMuhE9gsxe98j/+MB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8G -# A1UdHwRYMFYwVKBSoFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMv -# Y3JsL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBs -# BggrBgEFBQcBAQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0 -# LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUy -# MDIwMTAoMSkuY3J0MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUH -# AwgwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4ICAQCaKPVn6GLcnkbP -# EdM0R9q4Zm0+7JfG05+pmqP6nA4SwT26k9HlJQjqw/+WkiQLD4owJxooIr9MDZbi -# ZX6ypPhF+g1P5u8BOEXPYYkOWpzFGLRLtlZHvfxpqAIa7mjLGHDzKr/102AXaD4m -# GydEwaLGhUn9DBGdMm5dhiisWAqb/LN4lm4OuX4YLqKcW/0yScHKgprGgLY+6pqv -# 0zPU74j7eCr+PDTNYM8tFJ/btUnBNLyOE4WZwBIq4tnvXjd2cCOtgUnoQjFU1ZY7 -# ZWdny3BJbf3hBrb3NB2IU4nu622tVrb1fNkwdvT501WRUBMd9oFf4xifj2j2Clbv -# 1XGljXmd6yJjvt+bBuvJLUuc9m+vMKOWyRwUdvOl/E5a8zV3MrjCnY6fIrLQNzBO -# Z6klICPCi+2GqbViM0CI6CbZypei5Rr9hJbH8rZEzjaYWLnr/XPsU0wr2Tn6L9dJ -# x2q/LAoK+oviAInj0aP4iRrMyUSO6KL2KwY6zJc6SDxbHkwYHdQRrPNP3SutMg6L -# gBSvtmfqwgaXIHkCoiUFEAz9cGIqvgjGpGppKTcTuoo3EEgp/zRd0wxW0QqmV3yg -# YGicen30KAWHrKFC8Sbwc6qC4podVZYJZmirHBP/uo7sQne5H0xtdvDmXDUfy5gN -# jLljQIUsJhQSyyXbSjSb2a5jhOUfxzCCB3EwggVZoAMCAQICEzMAAAAVxedrngKb -# SZkAAAAAABUwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQI -# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv -# ZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmlj -# YXRlIEF1dGhvcml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIy -# NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT -# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE -# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXI -# yjVX9gF/bErg4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjo -# YH1qUoNEt6aORmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1y -# aa8dq6z2Nr41JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v -# 3byNpOORj7I5LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pG -# ve2krnopN6zL64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viS -# kR4dPf0gz3N9QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYr -# bqgSUei/BQOj0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlM -# jgK8QmguEOqEUUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSL -# W6CmgyFdXzB0kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AF -# emzFER1y7435UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIu -# rQIDAQABo4IB3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIE -# FgQUKqdS/mTEmr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWn -# G1M1GelyMFwGA1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEW -# M2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5 -# Lmh0bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBi -# AEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV -# 9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3Js -# Lm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAx -# MC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2 -# LTIzLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv -# 6lwUtj5OR2R4sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZn -# OlNN3Zi6th542DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1 -# bSNU5HhTdSRXud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4 -# rPf5KYnDvBewVIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU -# 6ZGyqVvfSaN0DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDF -# NLB62FD+CljdQDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/ -# HltEAY5aGZFrDZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdU -# CbFpAUR+fKFhbHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKi -# excdFYmNcP7ntdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTm -# dHRbatGePu1+oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZq -# ELQdVTNYs6FwZvKhggNNMIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMx -# EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT -# FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJp -# Y2EgT3BlcmF0aW9uczEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOkUwMDItMDVF -# MC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMK -# AQEwBwYFKw4DAhoDFQCoQndUJN3Ppq2xh8RhtsR35NCZwaCBgzCBgKR+MHwxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv -# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA63yMBzAi -# GA8yMDI1MDMxMjIyNDExMVoYDzIwMjUwMzEzMjI0MTExWjB0MDoGCisGAQQBhFkK -# BAExLDAqMAoCBQDrfIwHAgEAMAcCAQACAgWpMAcCAQACAhNOMAoCBQDrfd2HAgEA -# MDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAI -# AgEAAgMBhqAwDQYJKoZIhvcNAQELBQADggEBAF8Uz0geSzRGeRBSnVpQoSiN1l3O -# VYD5VGAqc2iQ1TbFY8Asyiwj09xwda/Aa9GrNPXztcY4p7+ANzG7IBEz1NQ/qZb0 -# VGWLwu9AkeXpQ4YJEHZuQaSXHdJ2u87fxph0fp3sN1+Qct+c6wybPdRDsal9u8dA -# G5Vmnz8+bjHkh3eoULY6wbVgIWtt+45MuF1s4QW0nTH5uKg1ZyFwi94VJgHd9sfo -# EmsJSaFHnitB/ck9SZY6VOOGkRjzjPQ6KPIqb7CmMhbxkkmq/kpXK9xKZs1n3nVS -# v9FxTnprKTaJtSbe8q+fkUzx8sPj2ZudGeUGrBmqnnurzeglDb4NXfJlBJwxggQN -# MIIECQIBATCBkzB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ -# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u -# MSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAgsR -# nVYpkvm/hQABAAACCzANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0G -# CyqGSIb3DQEJEAEEMC8GCSqGSIb3DQEJBDEiBCDsyDobHAiMtYB0oG4BYz3uHgb1 -# ojTFMFc/nc20Pzz5DzCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIDTVdKu6 -# N77bh0wdOyF+ogRN8vKJcw5jnf2/EussYkozMIGYMIGApH4wfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTACEzMAAAILEZ1WKZL5v4UAAQAAAgswIgQgG6QBce43 -# LYvVAlA6pIBruvoIeCK14eQBhUXOHoVFpJgwDQYJKoZIhvcNAQELBQAEggIAhJIz -# LdDRLhValArMRMVr0D66kH8XkUemfzlnT60Iy+Aity9xNX4x+a7gN+XIMvVDmDMg -# ZACX+mHCvGpbPPfZhy6QlDD+USB+o2itJlzu2WKpEedJu8qYWqrCsqYZdVC06kCn -# IISPoayJBkfEescOCFHvW/Nq9syEXP3M2T4B+CZxkSb6Hu28lD5LJK2tW+reHI1P -# OBhp7Pat2iqvnwsBiJiiKOG9uRIAXPHSEtljwsmm1n7mNFqUzqYFsapgiH0+nP+5 -# PcXYuO8da0pywvamF/SuG7t3ony6VuQOG4oN7qvn3BQjxrJ1yD9DyJLVmLkXvmLd -# YNHFJIEy2npR0bc4SuLGSBEqKRX5VckqRZJza0HMgpJJYPq3MkxbZPiUsUmna8wk -# 7QJqNOPKHzu1+SGAdQEsyemdpL6/WCK/yoUMZsHoiN2lgcQTjRAEFp6b8NW4cI3j -# jFH5KrTZQ7Dx52PdjGyq1sYl43hZ/DTbKLj5DGSwWElwsks4H5Yo/DEfObhYES73 -# MJulsiuHvUhN7MZ50xd1jLYbtLpHOd4rYKKtf3NMSjEc/zIZfBjv+9zyQ5bG/swa -# 5uBC5t+TeIZX69ooKnHu76qLvJWkSJw5VnblKUF6n145BlTyyBTkFc7sybiGn0yW -# 6gAgoRLcBDUIkoAftavD/sJMWoY3CypxB6OeRlg= -# SIG # End signature block diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.ApplicationInsights.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.ApplicationInsights.dll deleted file mode 100644 index 7909777099b0..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.ApplicationInsights.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Applications.Events.Server.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Applications.Events.Server.dll deleted file mode 100644 index fea3e4adec19..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Applications.Events.Server.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll deleted file mode 100644 index c09f9db55da0..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Azure.KeyVault.Core.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Azure.KeyVault.Core.dll deleted file mode 100644 index 344169591855..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Azure.KeyVault.Core.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Azure.KeyVault.Cryptography.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Azure.KeyVault.Cryptography.dll deleted file mode 100644 index 8ba897b2175d..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Azure.KeyVault.Cryptography.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Azure.KeyVault.Jose.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Azure.KeyVault.Jose.dll deleted file mode 100644 index 738c57681ac5..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Azure.KeyVault.Jose.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Data.Sqlite.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Data.Sqlite.dll deleted file mode 100644 index 94f456102f2b..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Data.Sqlite.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Extensions.Configuration.Abstractions.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Extensions.Configuration.Abstractions.dll deleted file mode 100644 index fd1c975885d8..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Extensions.Configuration.Abstractions.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Extensions.Configuration.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Extensions.Configuration.dll deleted file mode 100644 index 47a4953f5db1..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Extensions.Configuration.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Extensions.DependencyInjection.Abstractions.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Extensions.DependencyInjection.Abstractions.dll deleted file mode 100644 index 0e1c3efc8553..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Extensions.DependencyInjection.Abstractions.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Extensions.Logging.Abstractions.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Extensions.Logging.Abstractions.dll deleted file mode 100644 index 90d86fc336d1..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Extensions.Logging.Abstractions.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Extensions.Logging.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Extensions.Logging.dll deleted file mode 100644 index 2fe26340fe07..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Extensions.Logging.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Extensions.Primitives.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Extensions.Primitives.dll deleted file mode 100644 index 69193e069ed9..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Extensions.Primitives.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll deleted file mode 100644 index 398daa83bac9..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Identity.Client.Broker.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Identity.Client.Broker.dll deleted file mode 100644 index bb4095716ad9..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Identity.Client.Broker.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Identity.Client.Desktop.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Identity.Client.Desktop.dll deleted file mode 100644 index cddb2d388f11..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Identity.Client.Desktop.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Identity.Client.Extensions.Msal.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Identity.Client.Extensions.Msal.dll deleted file mode 100644 index 6a2202a8626c..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Identity.Client.Extensions.Msal.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Identity.Client.NativeInterop.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Identity.Client.NativeInterop.dll deleted file mode 100644 index ea9730e67372..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Identity.Client.NativeInterop.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Identity.Client.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Identity.Client.dll deleted file mode 100644 index 0d9f3a7e1b43..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Identity.Client.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.IdentityModel.Abstractions.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.IdentityModel.Abstractions.dll deleted file mode 100644 index 3e63a4442608..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.IdentityModel.Abstractions.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.IdentityModel.JsonWebTokens.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.IdentityModel.JsonWebTokens.dll deleted file mode 100644 index 61a43d4b53e1..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.IdentityModel.JsonWebTokens.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.IdentityModel.Logging.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.IdentityModel.Logging.dll deleted file mode 100644 index 7bd65b0f04ce..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.IdentityModel.Logging.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.IdentityModel.Tokens.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.IdentityModel.Tokens.dll deleted file mode 100644 index 7db7a2aba131..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.IdentityModel.Tokens.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Rest.ClientRuntime.Azure.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Rest.ClientRuntime.Azure.dll deleted file mode 100644 index 6353cb2c44d4..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Rest.ClientRuntime.Azure.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Rest.ClientRuntime.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Rest.ClientRuntime.dll deleted file mode 100644 index a91445689d37..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Rest.ClientRuntime.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll deleted file mode 100644 index 565efaf3bf9c..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll deleted file mode 100644 index 963afa523dff..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll deleted file mode 100644 index 3785fdcdbb2b..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll deleted file mode 100644 index 20713f49f6b2..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll deleted file mode 100644 index 4d99318798ec..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Teams.Policy.Administration.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Teams.Policy.Administration.dll deleted file mode 100644 index fb3fcdd85299..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Teams.Policy.Administration.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Teams.PowerShell.Module.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Teams.PowerShell.Module.dll deleted file mode 100644 index b8d5460b388a..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Teams.PowerShell.Module.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Teams.PowerShell.Module.pdb b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Teams.PowerShell.Module.pdb deleted file mode 100644 index 88dc4985c02b..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Teams.PowerShell.Module.pdb and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Teams.PowerShell.TeamsCmdlets.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Teams.PowerShell.TeamsCmdlets.dll deleted file mode 100644 index bef804e7d887..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Teams.PowerShell.TeamsCmdlets.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.TeamsCmdlets.PowerShell.Connect.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.TeamsCmdlets.PowerShell.Connect.dll deleted file mode 100644 index b2f698a7fa46..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.TeamsCmdlets.PowerShell.Connect.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Web.WebView2.Core.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Web.WebView2.Core.dll deleted file mode 100644 index 2d6380f7d8de..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Web.WebView2.Core.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Web.WebView2.WinForms.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Web.WebView2.WinForms.dll deleted file mode 100644 index 6c2402db83f4..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Web.WebView2.WinForms.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Web.WebView2.Wpf.dll b/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Web.WebView2.Wpf.dll deleted file mode 100644 index 9c8be66602f5..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Web.WebView2.Wpf.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Newtonsoft.Json.dll b/Modules/MicrosoftTeams/6.9.0/net472/Newtonsoft.Json.dll deleted file mode 100644 index a40ea11c8d4b..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Newtonsoft.Json.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/OneCollectorChannel.dll b/Modules/MicrosoftTeams/6.9.0/net472/OneCollectorChannel.dll deleted file mode 100644 index fa5d596efd06..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/OneCollectorChannel.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Polly.Contrib.WaitAndRetry.dll b/Modules/MicrosoftTeams/6.9.0/net472/Polly.Contrib.WaitAndRetry.dll deleted file mode 100644 index 1fd9fe20046c..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Polly.Contrib.WaitAndRetry.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Polly.dll b/Modules/MicrosoftTeams/6.9.0/net472/Polly.dll deleted file mode 100644 index 4a8ad686ca7e..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Polly.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/System.Buffers.dll b/Modules/MicrosoftTeams/6.9.0/net472/System.Buffers.dll deleted file mode 100644 index 28c84c2e09da..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/System.Buffers.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/System.Diagnostics.DiagnosticSource.dll b/Modules/MicrosoftTeams/6.9.0/net472/System.Diagnostics.DiagnosticSource.dll deleted file mode 100644 index 737aee640458..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/System.Diagnostics.DiagnosticSource.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/System.IO.FileSystem.AccessControl.dll b/Modules/MicrosoftTeams/6.9.0/net472/System.IO.FileSystem.AccessControl.dll deleted file mode 100644 index 948561a79045..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/System.IO.FileSystem.AccessControl.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/System.IdentityModel.Tokens.Jwt.dll b/Modules/MicrosoftTeams/6.9.0/net472/System.IdentityModel.Tokens.Jwt.dll deleted file mode 100644 index f7d075e5fc4f..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/System.IdentityModel.Tokens.Jwt.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/System.Management.Automation.dll b/Modules/MicrosoftTeams/6.9.0/net472/System.Management.Automation.dll deleted file mode 100644 index 11c75a63ffa7..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/System.Management.Automation.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/System.Memory.dll b/Modules/MicrosoftTeams/6.9.0/net472/System.Memory.dll deleted file mode 100644 index 655b17e5cfa5..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/System.Memory.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/System.Numerics.Vectors.dll b/Modules/MicrosoftTeams/6.9.0/net472/System.Numerics.Vectors.dll deleted file mode 100644 index e58a10fb2b14..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/System.Numerics.Vectors.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/System.Runtime.CompilerServices.Unsafe.dll b/Modules/MicrosoftTeams/6.9.0/net472/System.Runtime.CompilerServices.Unsafe.dll deleted file mode 100644 index ca6661111873..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/System.Runtime.CompilerServices.Unsafe.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/System.Security.AccessControl.dll b/Modules/MicrosoftTeams/6.9.0/net472/System.Security.AccessControl.dll deleted file mode 100644 index 1aaaccc406cf..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/System.Security.AccessControl.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/System.Security.Cryptography.ProtectedData.dll b/Modules/MicrosoftTeams/6.9.0/net472/System.Security.Cryptography.ProtectedData.dll deleted file mode 100644 index 5fb68a65457c..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/System.Security.Cryptography.ProtectedData.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/System.Security.Principal.Windows.dll b/Modules/MicrosoftTeams/6.9.0/net472/System.Security.Principal.Windows.dll deleted file mode 100644 index 295600f7c1c1..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/System.Security.Principal.Windows.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/System.ValueTuple.dll b/Modules/MicrosoftTeams/6.9.0/net472/System.ValueTuple.dll deleted file mode 100644 index 3f4ca8259394..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/System.ValueTuple.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/runtimes/win-arm64/native/msalruntime_arm64.dll b/Modules/MicrosoftTeams/6.9.0/net472/runtimes/win-arm64/native/msalruntime_arm64.dll deleted file mode 100644 index 6482921b6b22..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/runtimes/win-arm64/native/msalruntime_arm64.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/runtimes/win-x64/native/msalruntime.dll b/Modules/MicrosoftTeams/6.9.0/net472/runtimes/win-x64/native/msalruntime.dll deleted file mode 100644 index 03184b6c4631..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/runtimes/win-x64/native/msalruntime.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/runtimes/win-x86/native/msalruntime_x86.dll b/Modules/MicrosoftTeams/6.9.0/net472/runtimes/win-x86/native/msalruntime_x86.dll deleted file mode 100644 index 42ffd9b7d7db..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/runtimes/win-x86/native/msalruntime_x86.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/CmdletSettings.json b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/CmdletSettings.json deleted file mode 100644 index fbfce66a5c53..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/CmdletSettings.json +++ /dev/null @@ -1,255 +0,0 @@ -{ - "EnvironmentConfigurations": [ - { - "environmentType": "INT", - "configApiBaseUrl": "https://dev.api.interfaces.records.teams.microsoft.com", - "resourceId": "4cdeebb1-712e-4b2c-b450-eeef9fc1bc18", - "authority": "https://login.microsoftonline.com/common", - "serviceConfigurations": { - "GPA": { - "clientId": "10b74c53-e4d3-40f9-87ff-b46c872c329b", - "redirectUri": "https://login.microsoftonline.com/common/oauth2/nativeclient", - "extensions": {} - }, - "DSSYNC": { - "clientId": "c3d9ab47-b29a-4acb-9935-70f216a3deb3", - "redirectUri": "https://login.microsoftonline.com/common/oauth2/nativeclient", - "extensions": {} - }, - "LROS": { - "clientId": "ec73d46d-93d3-49b1-86e4-996b33fca112", - "redirectUri": "https://login.microsoftonline.com/common/oauth2/nativeclient", - "extensions": {} - }, - "NGTPROV": { - "clientId": "036102b5-b27c-4591-91aa-1e1eb70bdb1a", - "redirectUri": "https://login.microsoftonline.com/common/oauth2/nativeclient", - "extensions": {} - } - } - }, - { - "environmentType": "MultiTenant", - "configApiBaseUrl": "https://api.interfaces.records.teams.microsoft.com", - "resourceId": "48ac35b8-9aa8-4d74-927d-1f4a14a0b239", - "authority": "https://login.microsoftonline.com/common", - "serviceConfigurations": { - "GPA": { - "clientId": "e6fe3e2b-7019-44bf-a0e8-e1e2745081fb", - "redirectUri": "https://login.microsoftonline.com/common/oauth2/nativeclient", - "extensions": {} - }, - "DSSYNC": { - "clientId": "22e233c6-8873-48e8-a1b7-d363357d706d", - "redirectUri": "https://login.microsoftonline.com/common/oauth2/nativeclient", - "extensions": {} - }, - "LROS": { - "clientId": "0f7fe8a8-182d-4625-8e95-4cbc7a4384e0", - "redirectUri": "https://login.microsoftonline.com/common/oauth2/nativeclient", - "extensions": {} - }, - "NGTPROV": { - "clientId": "a4d23afe-0054-4eba-b30f-c99bd5314e9c", - "redirectUri": "https://login.microsoftonline.com/common/oauth2/nativeclient", - "extensions": {} - } - } - }, - { - "environmentType": "Ag08", - "configApiBaseUrl": "https://api.interfaces.records.teams.eaglex.ic.gov", - "resourceId": "48ac35b8-9aa8-4d74-927d-1f4a14a0b239", - "authority": "https://login.microsoftonline.eaglex.ic.gov/common", - "serviceConfigurations": { - "GPA": { - "clientId": "7cd1687e-80b2-41a8-9fe3-9bd47a36fd77", - "redirectUri": "https://login.microsoftonline.eaglex.ic.gov/common/oauth2/nativeclient", - "extensions": {} - }, - "DSSYNC": { - "clientId": "7cd1687e-80b2-41a8-9fe3-9bd47a36fd77", - "redirectUri": "https://login.microsoftonline.eaglex.ic.gov/common/oauth2/nativeclient", - "extensions": {} - }, - "LROS": { - "clientId": "7cd1687e-80b2-41a8-9fe3-9bd47a36fd77", - "redirectUri": "https://login.microsoftonline.eaglex.ic.gov/common/oauth2/nativeclient", - "extensions": {} - }, - "NGTPROV": { - "clientId": "7cd1687e-80b2-41a8-9fe3-9bd47a36fd77", - "redirectUri": "https://login.microsoftonline.eaglex.ic.gov/common/oauth2/nativeclient", - "extensions": {} - } - } - }, - { - "environmentType": "Ag09", - "configApiBaseUrl": "https://api.interfaces.records.teams.microsoft.scloud", - "resourceId": "48ac35b8-9aa8-4d74-927d-1f4a14a0b239", - "authority": "https://login.microsoftonline.microsoft.scloud/common", - "serviceConfigurations": { - "GPA": { - "clientId": "26f9beea-b439-45e6-88fe-b3fe6ff4387c", - "redirectUri": "https://login.microsoftonline.microsoft.scloud/common/oauth2/nativeclient", - "extensions": {} - }, - "DSSYNC": { - "clientId": "26f9beea-b439-45e6-88fe-b3fe6ff4387c", - "redirectUri": "https://login.microsoftonline.microsoft.scloud/common/oauth2/nativeclient", - "extensions": {} - }, - "LROS": { - "clientId": "26f9beea-b439-45e6-88fe-b3fe6ff4387c", - "redirectUri": "https://login.microsoftonline.microsoft.scloud/common/oauth2/nativeclient", - "extensions": {} - }, - "NGTPROV": { - "clientId": "26f9beea-b439-45e6-88fe-b3fe6ff4387c", - "redirectUri": "https://login.microsoftonline.microsoft.scloud/common/oauth2/nativeclient", - "extensions": {} - } - } - }, - { - "environmentType": "Gallatin", - "configApiBaseUrl": "https://api.interfaces.records.teams.microsoftonline.cn", - "resourceId": "48ac35b8-9aa8-4d74-927d-1f4a14a0b239", - "authority": "https://login.partner.microsoftonline.cn/common", - "serviceConfigurations": { - "GPA": { - "clientId": "3eeff3ec-e916-439a-bea9-d6768b4bc311", - "redirectUri": "https://login.partner.microsoftonline.cn/common/oauth2/nativeclient", - "extensions": {} - }, - "DSSYNC": { - "clientId": "3eeff3ec-e916-439a-bea9-d6768b4bc311", - "redirectUri": "https://login.partner.microsoftonline.cn/common/oauth2/nativeclient", - "extensions": {} - }, - "LROS": { - "clientId": "3eeff3ec-e916-439a-bea9-d6768b4bc311", - "redirectUri": "https://login.partner.microsoftonline.cn/common/oauth2/nativeclient", - "extensions": {} - }, - "NGTPROV": { - "clientId": "3eeff3ec-e916-439a-bea9-d6768b4bc311", - "redirectUri": "https://login.partner.microsoftonline.cn/common/oauth2/nativeclient", - "extensions": {} - } - } - }, - { - "environmentType": "Itar", - "configApiBaseUrl": "https://api.interfaces.records.gov.teams.microsoft.us", - "resourceId": "48ac35b8-9aa8-4d74-927d-1f4a14a0b239", - "authority": "https://login.microsoftonline.us/common", - "serviceConfigurations": { - "GPA": { - "clientId": "b72af4de-f00a-45a5-8378-aec2f317cf27", - "redirectUri": "https://login.microsoftonline.us/common/oauth2/nativeclient", - "extensions": {} - }, - "DSSYNC": { - "clientId": "b72af4de-f00a-45a5-8378-aec2f317cf27", - "redirectUri": "https://login.microsoftonline.us/common/oauth2/nativeclient", - "extensions": {} - }, - "LROS": { - "clientId": "b72af4de-f00a-45a5-8378-aec2f317cf27", - "redirectUri": "https://login.microsoftonline.us/common/oauth2/nativeclient", - "extensions": {} - }, - "NGTPROV": { - "clientId": "b72af4de-f00a-45a5-8378-aec2f317cf27", - "redirectUri": "https://login.microsoftonline.us/common/oauth2/nativeclient", - "extensions": {} - } - } - }, - { - "environmentType": "GCCH", - "configApiBaseUrl": "https://api.interfaces.records.gov.teams.microsoft.us", - "resourceId": "48ac35b8-9aa8-4d74-927d-1f4a14a0b239", - "authority": "https://login.microsoftonline.us/common", - "serviceConfigurations": { - "GPA": { - "clientId": "b72af4de-f00a-45a5-8378-aec2f317cf27", - "redirectUri": "https://login.microsoftonline.us/common/oauth2/nativeclient", - "extensions": {} - }, - "DSSYNC": { - "clientId": "b72af4de-f00a-45a5-8378-aec2f317cf27", - "redirectUri": "https://login.microsoftonline.us/common/oauth2/nativeclient", - "extensions": {} - }, - "LROS": { - "clientId": "b72af4de-f00a-45a5-8378-aec2f317cf27", - "redirectUri": "https://login.microsoftonline.us/common/oauth2/nativeclient", - "extensions": {} - }, - "NGTPROV": { - "clientId": "b72af4de-f00a-45a5-8378-aec2f317cf27", - "redirectUri": "https://login.microsoftonline.us/common/oauth2/nativeclient", - "extensions": {} - } - } - }, - { - "environmentType": "DOD", - "configApiBaseUrl": "https://api.interfaces.records.dod.teams.microsoft.us", - "resourceId": "48ac35b8-9aa8-4d74-927d-1f4a14a0b239", - "authority": "https://login.microsoftonline.us/common", - "serviceConfigurations": { - "GPA": { - "clientId": "0a0e38c7-8ce5-4e77-a099-9a9f3c5d09aa", - "redirectUri": "https://login.microsoftonline.us/common/oauth2/nativeclient", - "extensions": {} - }, - "DSSYNC": { - "clientId": "0a0e38c7-8ce5-4e77-a099-9a9f3c5d09aa", - "redirectUri": "https://login.microsoftonline.us/common/oauth2/nativeclient", - "extensions": {} - }, - "LROS": { - "clientId": "0a0e38c7-8ce5-4e77-a099-9a9f3c5d09aa", - "redirectUri": "https://login.microsoftonline.us/common/oauth2/nativeclient", - "extensions": {} - }, - "NGTPROV": { - "clientId": "0a0e38c7-8ce5-4e77-a099-9a9f3c5d09aa", - "redirectUri": "https://login.microsoftonline.us/common/oauth2/nativeclient", - "extensions": {} - } - } - } - ], - "ServiceUriSuffixes": { - "GPA": { - "ReprocessGroupPolicyAssignment": "Skype.Policy/groupPolicyAssignments/{groupId}/policyTypes/{policyType}/reprocess?tenantRegion={region}", - "RefreshGroupUsers": "Skype.Policy/groupPolicyAssignments/{groupId}/refresh/users?tenantRegion={region}&userId={userId}&policyType={policyType}", - "GetGPAGroupMembers": "Teams.InternalSupport/groups/{groupId}/users?all={all}", - "GetGPAUserMembership": "Teams.InternalSupport/users/{userId}/memberOf", - "GetGroupPolicyAssignment": "Skype.Policy/groupPolicyAssignments/oce/{groupId}/policyTypes/{policyType}", - "GetGroupPolicyAssignments": "Skype.Policy/groupPolicyAssignments/oce/{groupId}/policyTypes", - "GetPolicyAssignmentForGroups": "Skype.Policy/groupPolicyAssignments/oce?policyType={policyType}", - "GetAllGroupPolicyAssignments": "Skype.Policy/groupPolicyAssignments/oce" - }, - "DSSYNC": { - "DirectoryObjectSync": "Teams.InternalSupport/ProvisioningOperations/DsRequest" - }, - "LROS": { - "GetBatchOperationStatusForRegion": "Skype.Policy/assignments/operations/status/{operationId}?region={region}", - "GetAllBatchOperationStatusForRegion": "Skype.Policy/assignments/operations/status?region={region}", - "GetBatchOperationDefinitionForRegion": "Skype.Policy/assignments/operations/definition/{operationId}?region={region}", - "ReprocessBatchOperationForRegion": "Skype.Policy/assignments/operations/reprocess/{operationId}?region={region}" - }, - "NGTPROV": { - "MoveNgtProvInstance": "Teams.InternalSupport/NgtProvOperations/Failover/{sideA}/{sideB}?region={region}", - "NgtProvInstanceFailOverStatus": "Teams.InternalSupport/NgtProvOperations/FailoverStatus?region={region}", - "UserProvHistory": "Teams.InternalSupport/AdminStoreOperations/userHistory/{userId}/{region}", - "GenericNgtProvCommand": "Teams.InternalSupport/ProvisioningOperations/runHandler/{region}?handler={handler}?tenant={tenant}?target={target}?serviceInstance={serviceInstance}" - } - } -} \ No newline at end of file diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.ApplicationInsights.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.ApplicationInsights.dll deleted file mode 100644 index 5401bdf804b5..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.ApplicationInsights.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Applications.Events.Server.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Applications.Events.Server.dll deleted file mode 100644 index fea3e4adec19..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Applications.Events.Server.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll deleted file mode 100644 index d66cfaee29b9..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Core.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Core.dll deleted file mode 100644 index ac71544977cc..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Core.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Cryptography.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Cryptography.dll deleted file mode 100644 index 5672833e192c..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Cryptography.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Jose.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Jose.dll deleted file mode 100644 index dd026d2ceed0..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Jose.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Data.Sqlite.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Data.Sqlite.dll deleted file mode 100644 index c1d60c9d0ed8..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Data.Sqlite.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll deleted file mode 100644 index d64b849c814a..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Extensions.Configuration.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Extensions.Configuration.dll deleted file mode 100644 index fb9b9660e6cf..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Extensions.Configuration.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll deleted file mode 100644 index 0e1c3efc8553..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Extensions.Logging.Abstractions.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Extensions.Logging.Abstractions.dll deleted file mode 100644 index 90d86fc336d1..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Extensions.Logging.Abstractions.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Extensions.Logging.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Extensions.Logging.dll deleted file mode 100644 index 2fe26340fe07..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Extensions.Logging.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Extensions.Primitives.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Extensions.Primitives.dll deleted file mode 100644 index da8569032421..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Extensions.Primitives.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll deleted file mode 100644 index 398daa83bac9..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Identity.Client.Broker.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Identity.Client.Broker.dll deleted file mode 100644 index 9cd15ace8a03..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Identity.Client.Broker.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Identity.Client.Desktop.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Identity.Client.Desktop.dll deleted file mode 100644 index 7db2c1268106..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Identity.Client.Desktop.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Identity.Client.Extensions.Msal.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Identity.Client.Extensions.Msal.dll deleted file mode 100644 index 6a2202a8626c..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Identity.Client.Extensions.Msal.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Identity.Client.NativeInterop.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Identity.Client.NativeInterop.dll deleted file mode 100644 index fab2fee8a6ab..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Identity.Client.NativeInterop.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Identity.Client.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Identity.Client.dll deleted file mode 100644 index 3264ddce85dc..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Identity.Client.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.IdentityModel.Abstractions.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.IdentityModel.Abstractions.dll deleted file mode 100644 index c1d0bcb11c18..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.IdentityModel.Abstractions.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.IdentityModel.JsonWebTokens.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.IdentityModel.JsonWebTokens.dll deleted file mode 100644 index 4dcc08b73a6b..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.IdentityModel.JsonWebTokens.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.IdentityModel.Logging.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.IdentityModel.Logging.dll deleted file mode 100644 index 42908de12abf..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.IdentityModel.Logging.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.IdentityModel.Tokens.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.IdentityModel.Tokens.dll deleted file mode 100644 index 06fa1e26f742..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.IdentityModel.Tokens.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.Azure.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.Azure.dll deleted file mode 100644 index 28a066d44b3e..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.Azure.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.dll deleted file mode 100644 index 818eb66d544d..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll deleted file mode 100644 index 565efaf3bf9c..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll deleted file mode 100644 index 5509b56450e6..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll deleted file mode 100644 index 0002715872b3..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll deleted file mode 100644 index 7f200d1ebf5e..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll deleted file mode 100644 index 7f5bb456910e..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.dll deleted file mode 100644 index 0312a686b731..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.dll deleted file mode 100644 index 020a3cb1d39d..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.pdb b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.pdb deleted file mode 100644 index 9731637d4128..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.pdb and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.xml b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.xml deleted file mode 100644 index 9c5b7f84166a..000000000000 --- a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - Microsoft.Teams.PowerShell.Module - - - - diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.dll deleted file mode 100644 index e598464f2dc7..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.TeamsCmdlets.PowerShell.Connect.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.TeamsCmdlets.PowerShell.Connect.dll deleted file mode 100644 index 518fdc8c6ca7..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.TeamsCmdlets.PowerShell.Connect.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Web.WebView2.Core.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Web.WebView2.Core.dll deleted file mode 100644 index 2d6380f7d8de..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Web.WebView2.Core.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Web.WebView2.WinForms.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Web.WebView2.WinForms.dll deleted file mode 100644 index 04b1827d01e3..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Web.WebView2.WinForms.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Web.WebView2.Wpf.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Web.WebView2.Wpf.dll deleted file mode 100644 index 6f9d2c330502..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Web.WebView2.Wpf.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Newtonsoft.Json.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Newtonsoft.Json.dll deleted file mode 100644 index 0ed2a14f40bf..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Newtonsoft.Json.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/OneCollectorChannel.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/OneCollectorChannel.dll deleted file mode 100644 index fa5d596efd06..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/OneCollectorChannel.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Polly.Contrib.WaitAndRetry.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Polly.Contrib.WaitAndRetry.dll deleted file mode 100644 index 7f3566d6ca8d..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Polly.Contrib.WaitAndRetry.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Polly.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Polly.dll deleted file mode 100644 index b23214b20b8e..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Polly.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Diagnostics.DiagnosticSource.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Diagnostics.DiagnosticSource.dll deleted file mode 100644 index 67b43defa44f..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Diagnostics.DiagnosticSource.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.IO.FileSystem.AccessControl.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.IO.FileSystem.AccessControl.dll deleted file mode 100644 index f103d72594c8..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.IO.FileSystem.AccessControl.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.IdentityModel.Tokens.Jwt.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.IdentityModel.Tokens.Jwt.dll deleted file mode 100644 index 452f93eb0f7a..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.IdentityModel.Tokens.Jwt.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Management.Automation.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Management.Automation.dll deleted file mode 100644 index 6ea22f2134a0..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Management.Automation.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll deleted file mode 100644 index 1d2cbad4285a..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Security.AccessControl.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Security.AccessControl.dll deleted file mode 100644 index 5adf78b454ae..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Security.AccessControl.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Security.Cryptography.ProtectedData.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Security.Cryptography.ProtectedData.dll deleted file mode 100644 index e3a0c1219224..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Security.Cryptography.ProtectedData.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Security.Principal.Windows.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Security.Principal.Windows.dll deleted file mode 100644 index d72308a4669c..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Security.Principal.Windows.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/runtimes/win-arm64/native/msalruntime_arm64.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/runtimes/win-arm64/native/msalruntime_arm64.dll deleted file mode 100644 index 6482921b6b22..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/runtimes/win-arm64/native/msalruntime_arm64.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/runtimes/win-x64/native/msalruntime.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/runtimes/win-x64/native/msalruntime.dll deleted file mode 100644 index 03184b6c4631..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/runtimes/win-x64/native/msalruntime.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/runtimes/win-x86/native/msalruntime_x86.dll b/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/runtimes/win-x86/native/msalruntime_x86.dll deleted file mode 100644 index 42ffd9b7d7db..000000000000 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/runtimes/win-x86/native/msalruntime_x86.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/GetTeamSettings.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/GetTeamSettings.format.ps1xml new file mode 100644 index 000000000000..d2ff920950f6 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/GetTeamSettings.format.ps1xml @@ -0,0 +1,274 @@ + + + + TeamSettings + + Microsoft.Teams.PowerShell.TeamsCmdlets.Model.TeamSettings + + + + + 36 + + + 18 + + + 11 + + + 9 + + + 18 + + + 18 + + + + + + + GroupId + + + DisplayName + + + Visibility + + + Archived + + + MailNickName + + + Description + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/6.9.0/LICENSE.txt b/Modules/MicrosoftTeams/7.4.0/LICENSE.txt similarity index 100% rename from Modules/MicrosoftTeams/6.9.0/LICENSE.txt rename to Modules/MicrosoftTeams/7.4.0/LICENSE.txt diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml similarity index 78% rename from Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml index f60ea011171b..a44cdaf81c63 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml and b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml differ diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml similarity index 90% rename from Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml index 9de136f188ff..4c0e60bf87d4 100644 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml @@ -415,6 +415,28 @@ + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.EffectivePolicyAssignment + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.EffectivePolicyAssignment + + + + + + + + + + + + PolicyType + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Number @@ -521,6 +543,46 @@ + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PolicyAssignment + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PolicyAssignment + + + + + + + + + + + + + + + + + + + + + DisplayName + + + AssignmentType + + + PolicyId + + + GroupId + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ProvisionedPlan @@ -1632,6 +1694,12 @@ + + + + + + @@ -1672,6 +1740,12 @@ LanguageId + + MainlineAttendantAgentVoiceId + + + MainlineAttendantEnabled + Name @@ -2193,9 +2267,18 @@ + + + + + + + + + @@ -2388,12 +2471,27 @@ + + + + + + + + + + + + + + + @@ -2518,9 +2616,18 @@ CallbackRequestDtmf + + ComplianceRecordingForCallQueueTemplateId + ConferenceMode + + CustomAudioFileAnnouncementForCr + + + CustomAudioFileAnnouncementForCrFailure + Description @@ -2713,12 +2820,27 @@ ServiceLevelThresholdResponseTimeInSecond + + SharedCallQueueHistoryTemplateId + + + ShiftsSchedulingGroupId + + + ShiftsTeamId + ShouldOverwriteCallableChannelProperty TenantId + + TextAnnouncementForCr + + + TextAnnouncementForCrFailure + ThreadId @@ -3377,6 +3499,134 @@ + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ComplianceRecordingForCallQueueDomainModel + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ComplianceRecordingForCallQueueDomainModel + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + BotConcurrentInvitationCount + + + BotId + + + BotRequiredBeforeCall + + + BotRequiredDuringCall + + + Description + + + Id + + + Name + + + PairedApplication + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ComplianceRecordingForCallQueueDtoModel + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ComplianceRecordingForCallQueueDtoModel + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + BotId + + + ConcurrentInvitationCount + + + Description + + + Id + + + Name + + + PairedApplication + + + RequiredBeforeCall + + + RequiredDuringCall + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingBridge @@ -4371,6 +4621,52 @@ + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateAppointmentBookingFlowRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateAppointmentBookingFlowRequest + + + + + + + + + + + + + + + + + + + + + + + + ApiAuthenticationType + + + ApiDefinition + + + CallerAuthenticationMethod + + + Description + + + Name + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateAutoAttendantRequest @@ -4387,6 +4683,12 @@ + + + + + + @@ -4415,6 +4717,12 @@ LanguageId + + MainlineAttendantAgentVoiceId + + + MainlineAttendantEnabled + Name @@ -4580,9 +4888,18 @@ + + + + + + + + + @@ -4734,16 +5051,31 @@ - + - + - + - + + + + + + + + + + + + + + + + @@ -4830,9 +5162,18 @@ CallbackRequestDtmf + + ComplianceRecordingForCallQueueId + ConferenceMode + + CustomAudioFileAnnouncementForCr + + + CustomAudioFileAnnouncementForCrFailure + DistributionList @@ -4983,9 +5324,24 @@ ServiceLevelThresholdResponseTimeInSecond + + SharedCallQueueHistoryId + + + ShiftsSchedulingGroupId + + + ShiftsTeamId + ShouldOverwriteCallableChannelProperty + + TextAnnouncementForCr + + + TextAnnouncementForCrFailure + ThreadId @@ -5057,6 +5413,64 @@ + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateComplianceRecordingForCallQueueRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateComplianceRecordingForCallQueueRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + BotId + + + ConcurrentInvitationCount + + + Description + + + Name + + + PairedApplication + + + RequiredBeforeCall + + + RequiredDuringCall + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateDateTimeRangeRequest @@ -5107,6 +5521,56 @@ + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateIvrTagRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateIvrTagRequest + + + + + + + + + + + + TagName + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateIvrTagsTemplateRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateIvrTagsTemplateRequest + + + + + + + + + + + + + + + Description + + + Name + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateMenuOptionRequest @@ -5117,9 +5581,24 @@ + + + + + + + + + + + + + + + @@ -5130,9 +5609,24 @@ Action + + AgentTarget + + + AgentTargetTagTemplateId + + + AgentTargetType + + + Description + DtmfResponse + + MainlineAttendantTarget + VoiceResponse @@ -5243,6 +5737,46 @@ + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateQuestionAnswerFlowRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateQuestionAnswerFlowRequest + + + + + + + + + + + + + + + + + + + + + ApiAuthenticationType + + + Description + + + KnowledgeBase + + + Name + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateScheduleRequest @@ -5265,6 +5799,46 @@ + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateSharedCallQueueHistoryRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateSharedCallQueueHistoryRequest + + + + + + + + + + + + + + + + + + + + + AnsweredAndOutboundCall + + + Description + + + IncomingMissedCall + + + Name + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateTeamFromTemplateResponse @@ -7587,6 +8161,62 @@ + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IvrTagDtoModel + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IvrTagDtoModel + + + + + + + + + + + + TagName + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IvrTagsTemplateDtoModel + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IvrTagsTemplateDtoModel + + + + + + + + + + + + + + + + + + Description + + + Id + + + Name + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.KeyValuePairStringItem @@ -8176,31 +8806,223 @@ NumberOfVoiceUsers - PartnerId + PartnerId + + + PostDirectional + + + PostalCode + + + PreDirectional + + + StateOrProvince + + + StreetName + + + StreetSuffix + + + TenantId + + + ValidationStatus + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MainlineAttendantAppointmentBookingFlow + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MainlineAttendantAppointmentBookingFlow + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ApiAuthenticationType + + + ApiDefinition + + + CallerAuthenticationMethod + + + ConfigurationId + + + Description + + + Identity + + + Name + + + Type + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MainlineAttendantFlowDomainModel + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MainlineAttendantFlowDomainModel + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ApiAuthenticationType + + + ApiDefinition + + + CallerAuthenticationMethod + + + ConfigurationId + + + Description + + + Identity + + + KnowledgeBase + + + Name - PostDirectional + Type + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MainlineAttendantQuestionAnswerFlow + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MainlineAttendantQuestionAnswerFlow + + + + + + + + + + + + + + + + + + + + + + + + + + + + - PostalCode + ApiAuthenticationType - PreDirectional + ConfigurationId - StateOrProvince + Description - StreetName + Identity - StreetSuffix + KnowledgeBase - TenantId + Name - ValidationStatus + Type @@ -8957,9 +9779,24 @@ + + + + + + + + + + + + + + + @@ -8970,9 +9807,24 @@ Action + + AgentTarget + + + AgentTargetTagTemplateId + + + AgentTargetType + + + Description + DtmfResponse + + MainlineAttendantTarget + VoiceResponse @@ -10035,6 +10887,106 @@ + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PersonalAttendantSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PersonalAttendantSettings + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AllowInboundFederatedCalls + + + AllowInboundInternalCalls + + + AllowInboundPSTNCalls + + + BookingCalendarId + + + CalleeName + + + DefaultLanguage + + + DefaultTone + + + DefaultVoice + + + IsAutomaticRecordingEnabled + + + IsAutomaticTranscriptionEnabled + + + IsBookingCalendarEnabled + + + IsCallScreeningEnabled + + + IsNonContactCallbackEnabled + + + IsPersonalAttendantEnabled + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PolicyDefinition @@ -11377,20 +12329,158 @@ - + + + + + + + + + + + MajorVersion + + + UserSipUri + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SharedCallQueueHistory + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SharedCallQueueHistory + + + + + + + + + + + + + + + + + + + + + + + + AnsweredAndOutboundCall + + + Description + + + Id + + + IncomingMissedCall + + + Name + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SharedCallQueueHistoryDomainModel + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SharedCallQueueHistoryDomainModel + + + + + + + + + + + + + + + + + + + + + + + + AnsweredAndOutboundCall + + + Description + + + Id + + + IncomingMissedCall + + + Name + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SharedCallQueueHistoryDtoModel + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SharedCallQueueHistoryDtoModel + + + + + + + + + + + + + + - + - MajorVersion + AnsweredAndOutboundCall - UserSipUri + Description + + + Id + + + IncomingMissedCall + + + Name @@ -11621,6 +12711,9 @@ + + + @@ -11685,6 +12778,9 @@ ReverseNumberLookup + + Tag + TelephoneNumber @@ -11757,6 +12853,52 @@ + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletDirectRoutingNumberCreationRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletDirectRoutingNumberCreationRequest + + + + + + + + + + + + + + + + + + + + + + + + Description + + + EndingNumber + + + FileContent + + + StartingNumber + + + TelephoneNumber + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletReleaseOrderRequest @@ -12005,6 +13147,28 @@ + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletTenantTagRecord + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletTenantTagRecord + + + + + + + + + + + + TagValue + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCountry @@ -12173,6 +13337,28 @@ + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtPhoneNumberPolicyAssignmentCmdletResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtPhoneNumberPolicyAssignmentCmdletResponse + + + + + + + + + + + + NextLink + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtPhoneNumberPolicyAssignmentCmdletResult @@ -12189,12 +13375,6 @@ - - - - - - @@ -12211,12 +13391,6 @@ PolicyName - - Authority - - - AssignmentType - Reference @@ -14050,6 +15224,70 @@ + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateAppointmentBookingFlowRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateAppointmentBookingFlowRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ApiAuthenticationType + + + ApiDefinition + + + CallerAuthenticationMethod + + + ConfigurationId + + + Description + + + Identity + + + Name + + + Type + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateCallQueueRequest @@ -14081,9 +15319,18 @@ + + + + + + + + + @@ -14234,9 +15481,24 @@ + + + + + + + + + + + + + + + @@ -14331,9 +15593,18 @@ CallbackRequestDtmf + + ComplianceRecordingForCallQueueId + ConferenceMode + + CustomAudioFileAnnouncementForCr + + + CustomAudioFileAnnouncementForCrFailure + DistributionList @@ -14484,9 +15755,24 @@ ServiceLevelThresholdResponseTimeInSecond + + SharedCallQueueHistoryId + + + ShiftsSchedulingGroupId + + + ShiftsTeamId + ShouldOverwriteCallableChannelProperty + + TextAnnouncementForCr + + + TextAnnouncementForCrFailure + ThreadId @@ -14784,6 +16070,64 @@ + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateQuestionAnswerFlowRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateQuestionAnswerFlowRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ApiAuthenticationType + + + ConfigurationId + + + Description + + + Identity + + + KnowledgeBase + + + Name + + + Type + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateWfmConnectionFieldsRequest @@ -15789,42 +17133,42 @@ - + - - - + + + - + - - - - - - - + + + + + + + - + - - - - - - - - - - - + + + + + + + + + + + @@ -15864,145 +17208,144 @@ - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.psd1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.psd1 new file mode 100644 index 000000000000..9c7bb88202e0 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.psd1 @@ -0,0 +1,248 @@ +@{ + GUID = '82b0bf19-c5cd-4c30-8db4-b458a4b84495' + RootModule = './Microsoft.Teams.ConfigAPI.Cmdlets.psm1' + ModuleVersion = '8.0925.3' + CompatiblePSEditions = 'Core', 'Desktop' + Author="Microsoft Corporation" + CompanyName="Microsoft Corporation" + Copyright="Copyright (c) Microsoft Corporation. All rights reserved." + Description="Microsoft Teams Configuration PowerShell module" + PowerShellVersion = '5.1' + DotNetFrameworkVersion = '4.7.2' + FormatsToProcess = @( + './Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml', + './Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml', + './SfbRpsModule.format.ps1xml') + CmdletsToExport = '*' + FunctionsToExport = '*' + AliasesToExport = '*' + PrivateData = @{ + PSData = @{ + # For dev test set Prerelease to preview. This will ensure devtest module get all preview ECS features. + Prerelease = 'preview' + Tags = '' + LicenseUri = '' + ProjectUri = '' + ReleaseNotes = '' + } + } +} + +# SIG # Begin signature block +# MIIoUgYJKoZIhvcNAQcCoIIoQzCCKD8CAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBktHhsDTXfF+ev +# CEOifc2ZOGc/dSGpB/zVLNO52F9TmKCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIPut +# cUIVxIBB0ImJ9vNQxSoMsyFmk7rGJjFLPFygEQ4fMEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEAsxdF6ENPMlJBY2pbMZwVrEjJbJIGoUXtTffs +# m5VHACdQcbJJtDlfJ8MZ53d5semg0/AHj917b4LWkILIhdFYVsZ3RuwM1aIFEzBw +# xrAM77PTv+cFXmVrYlif65+8R3tflJk2wyayruH4+qtkjjkMcW6OHQaEDWLpcwUW +# 6tk6ltgpusJebP2I9xWL5gG4oIn4XLS+FYDsizxXOTcGdaByLhMrdJxCSA003066 +# VEMapPs6sosMDnFWi37qHCbTdXYweq52x8zvOQINOclOxOucJhxoB/1BWI8ADhZ2 +# agohjS9bFJtBG6oic2iY8l+p8akRPQwHVQTrsGgmku1OFw3nSKGCF60wghepBgor +# BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCJwUibtIbzfPo/UBmxGxTeOcZrF+LqIi5L +# oeQGKL82VgIGaKOxdLnYGBMyMDI1MTAwMTA4MzMwMy4wNThaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo0MDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB/tCo +# wns0IQsBAAEAAAH+MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExOFoXDTI1MTAyMjE4MzExOFowgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjQwMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# vLwhFxWlqA43olsE4PCegZ4mSfsH2YTSKEYv8Gn3362Bmaycdf5T3tQxpP3NWm62 +# YHUieIQXw+0u4qlay4AN3IonI+47Npi9fo52xdAXMX0pGrc0eqW8RWN3bfzXPKv0 +# 7O18i2HjDyLuywYyKA9FmWbePjahf9Mwd8QgygkPtwDrVQGLyOkyM3VTiHKqhGu9 +# BCGVRdHW9lmPMrrUlPWiYV9LVCB5VYd+AEUtdfqAdqlzVxA53EgxSqhp6JbfEKnT +# dcfP6T8Mir0HrwTTtV2h2yDBtjXbQIaqycKOb633GfRkn216LODBg37P/xwhodXT +# 81ZC2aHN7exEDmmbiWssjGvFJkli2g6dt01eShOiGmhbonr0qXXcBeqNb6QoF8jX +# /uDVtY9pvL4j8aEWS49hKUH0mzsCucIrwUS+x8MuT0uf7VXCFNFbiCUNRTofxJ3B +# 454eGJhL0fwUTRbgyCbpLgKMKDiCRub65DhaeDvUAAJT93KSCoeFCoklPavbgQya +# hGZDL/vWAVjX5b8Jzhly9gGCdK/qi6i+cxZ0S8x6B2yjPbZfdBVfH/NBp/1Ln7xb +# eOETAOn7OT9D3UGt0q+KiWgY42HnLjyhl1bAu5HfgryAO3DCaIdV2tjvkJay2qOn +# F7Dgj8a60KQT9QgfJfwXnr3ZKibYMjaUbCNIDnxz2ykCAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBRvznuJ9SU2g5l/5/b+5CBibbHF3TAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAiT4NUvO2lw+0dDMtsBuxmX2o3lVQqnQkuITAGIGCgI+sl7ZqZOTDd8Lq +# xsH4GWCPTztc3tr8AgBvsYIzWjFwioCjCQODq1oBMWNzEsKzckHxAzYo5Sze7OPk +# MA3DAxVq4SSR8y+TRC2GcOd0JReZ1lPlhlPl9XI+z8OgtOPmQnLLiP9qzpTHwFze +# +sbqSn8cekduMZdLyHJk3Niw3AnglU/WTzGsQAdch9SVV4LHifUnmwTf0i07iKtT +# lNkq3bx1iyWg7N7jGZABRWT2mX+YAVHlK27t9n+WtYbn6cOJNX6LsH8xPVBRYAIR +# VkWsMyEAdoP9dqfaZzwXGmjuVQ931NhzHjjG+Efw118DXjk3Vq3qUI1re34zMMTR +# zZZEw82FupF3viXNR3DVOlS9JH4x5emfINa1uuSac6F4CeJCD1GakfS7D5ayNsaZ +# 2e+sBUh62KVTlhEsQRHZRwCTxbix1Y4iJw+PDNLc0Hf19qX2XiX0u2SM9CWTTjsz +# 9SvCjIKSxCZFCNv/zpKIlsHx7hQNQHSMbKh0/wwn86uiIALEjazUszE0+X6rcObD +# fU4h/O/0vmbF3BMR+45rAZMAETJsRDPxHJCo/5XGhWdg/LoJ5XWBrODL44YNrN7F +# RnHEAAr06sflqZ8eeV3FuDKdP5h19WUnGWwO1H/ZjUzOoVGiV3gwggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo0MDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAhGNHD/a7Q0bQ +# LWVG9JuGxgLRXseggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyG3EAwIhgPMjAyNTA5MzAyMjQ2MjRaGA8yMDI1 +# MTAwMTIyNDYyNFowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA7IbcQAIBADAHAgEA +# AgI/SzAHAgEAAgISWzAKAgUA7IgtwAIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor +# BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUA +# A4IBAQAD/NthVx290gnyfPIhSE9lwc9eWlT8TkCe0jExSnZh8CcFl3AuFYuKzWJU +# agkUZmAXk2Jd0ReNgabW3NtqAlQ1cO/WGUEyp+hizsblzulC1P+pfNfFDfx6IM2O +# aWWzt8xBHA+UwO9ikxd6WQFZlaVCHYPQXYy46lPLvxSpI9Zs3TYkG/6ULP/+y3n2 +# xDYfkKGMl47cDlUd5vSQ/5t7y+RlW5jsOLoMC7R49YQnRf1qeHvYmDcgx6lFbD4H +# H+2Lf1pDKx6V251oLs02QiVMvp+MMErUpGfrSAb09ngYfq47WSLbjLwZWV/n30LZ +# u3592g9gFKouk6SFAmLg3nrQ7hEOMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC +# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV +# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp +# bWUtU3RhbXAgUENBIDIwMTACEzMAAAH+0KjCezQhCwEAAQAAAf4wDQYJYIZIAWUD +# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B +# CQQxIgQgFlZ2O/GRfAXYA5v3qpRwM4QCr0GSQZI0ycmuzAREOxgwgfoGCyqGSIb3 +# DQEJEAIvMYHqMIHnMIHkMIG9BCARhczd/FPInxjR92m2hPWqc+vGOG1+/I0WtkCs +# tyh0eTCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u +# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp +# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB +# /tCowns0IQsBAAEAAAH+MCIEIHl8bRCAEGD1nFgaXp67WN1I3z8m7ZUmowEzGTjb +# iSIqMA0GCSqGSIb3DQEBCwUABIICACKy7a3MJz+G2ukx3dDkAruMy/tF7Qgp7Xze +# fAp1nlXD5YHYePeCwWXd5Fke7/UtQhxW0xASRhCDMYmzhp3iHDj/OG87bvtUyi09 +# eVcw483MQttaqYkNQN/ICV9PBS/dmUPI/Kpi4iac1ADHTlt7COB21FGzVftfvotj +# UlveOmScT4sjAGLOcAbVZ1M5GolWEKQJ9J3GvtnMuoC1ZIupmw99AFaPmmuS9N62 +# mvaDOLnOqPi9FBg0cVS31kUNzNbePAU2dSuLLKyMy1auel/oSYFSiTPu7AVPm2hd +# 6DM98XJSfLVFIH6N1GBFGI6pmlstAw7+ZhRFRUwvJcKSTPyu9Xx2nsM7HQ3uPeGW +# D0VXVJAAj0vgBF/eUkadua5hUfRiSEzThlXyea7swcRZejZC4Lj9RW6D/q2y0bt9 +# E4h0e85IT2c5G7z3S9ZdmYsqZ9KebZoYd4UFCKQCrkP77v1JNu8oedia4hN0CiFW +# Cr2HB6eidHjjb++hXUzyUfggkmP3hFIbjw8rVojGABTveG5SiamGwwS5fUnwntah +# UOKilkF9PTI9IyppeXwTnCKnm95dbnO/eKQ0wrI+Fgq6v20GZcOOq8JtsExxrjmv +# V9JMkBOo+Gzky3qjiW7VYFAccQSG+x2emQ7yYeHccbWdMLpcZX5To3L9y6jgRu8c +# ZS80/H7S +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.psm1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.psm1 new file mode 100644 index 000000000000..cf8c5fc5721f --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.psm1 @@ -0,0 +1,268 @@ +# region Generated + # Load the private module dll + $null = Import-Module -Name (Join-Path $PSScriptRoot './bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll') + + # Get the private module's instance + $instance = [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Module]::Instance + + # Load the custom module + $customModulePath = Join-Path $PSScriptRoot './custom/Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1' + if(Test-Path $customModulePath) { + $null = Import-Module -Name $customModulePath + } + + # Export nothing to clear implicit exports + Export-ModuleMember + + # Export proxy cmdlet scripts + $exportsPath = Join-Path $PSScriptRoot './exports' + $directories = Get-ChildItem -Directory -Path $exportsPath + $profileDirectory = $null + if($instance.ProfileName) { + if(($directories | ForEach-Object { $_.Name }) -contains $instance.ProfileName) { + $profileDirectory = $directories | Where-Object { $_.Name -eq $instance.ProfileName } + } else { + # Don't export anything if the profile doesn't exist for the module + $exportsPath = $null + Write-Warning "Selected Azure profile '$($instance.ProfileName)' does not exist for module '$($instance.Name)'. No cmdlets were loaded." + } + } elseif(($directories | Measure-Object).Count -gt 0) { + # Load the last folder if no profile is selected + $profileDirectory = $directories | Select-Object -Last 1 + } + + if($profileDirectory) { + Write-Information "Loaded Azure profile '$($profileDirectory.Name)' for module '$($instance.Name)'" + $exportsPath = $profileDirectory.FullName + } + + if($exportsPath) { + Get-ChildItem -Path $exportsPath -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } + $cmdletNames = Get-ScriptCmdlet -ScriptFolder $exportsPath + #Export-ModuleMember -Function $cmdletNames -Alias (Get-ScriptCmdlet -ScriptFolder $exportsPath -AsAlias) + } + + # Finalize initialization of this module + $instance.Init(); + Export-ModuleMember -Function $instance.FunctionsToExport.Split(",") + Write-Information "Loaded Module '$($instance.Name)'" +# endregion + +# SIG # Begin signature block +# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCA11zYyqhtEZno0 +# vnR835d32vg185cJKudkjxJ9lgIViKCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIL/X +# KtNBJBHJGGbe7wFtIYIfMWxPHreyoYsrh/7+1ayVMEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEAjLRSPEgl+jV1neYu3nTNYAt12NPx9CSBS0in +# W3lTJ3li3JivLsglZyHAkpOry8UCfN85dJPmCcuA1ZaTOCb+tWpbGX391ZQki5mu +# m4278BFouVx3+kiDDClF4PoDwkUT80GSCUnkbLw4DeTuY4GdiLb+0sTv9RMcKPAn +# gdirrxrAsuUOqgJHrIxoQMQQd4xkF3Zwjdx78hYDd6aX0d1aPjlRTdEd/Op4GXN5 +# f0ogHVMc6dBNMAH1Mf7U7pDK4OfAB59j9OWRo96m9CwFfJBxVqtEr4VDq/2xQgPD +# 9eMyf6nIc/MQ9p6gQDaJbVyUbotuRcofvthfqaw+yx7cqLav+6GCF7AwghesBgor +# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCBtQ25Wdua/9MRhw3iNu1aZ/OELMsRHLdxZ +# y8rLeBbzfAIGaKOvjL6AGBMyMDI1MTAwMTA4MzMwMi4zMDNaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+R9n +# jXWrpPGxAAEAAAH5MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzEwOVoXDTI1MTAyMjE4MzEwOVowgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjJBMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# tD1MH3yAHWHNVslC+CBTj/Mpd55LDPtQrhN7WeqFhReC9xKXSjobW1ZHzHU8V2BO +# JUiYg7fDJ2AxGVGyovUtgGZg2+GauFKk3ZjjsLSsqehYIsUQrgX+r/VATaW8/ONW +# y6lOyGZwZpxfV2EX4qAh6mb2hadAuvdbRl1QK1tfBlR3fdeCBQG+ybz9JFZ45LN2 +# ps8Nc1xr41N8Qi3KVJLYX0ibEbAkksR4bbszCzvY+vdSrjWyKAjR6YgYhaBaDxE2 +# KDJ2sQRFFF/egCxKgogdF3VIJoCE/Wuy9MuEgypea1Hei7lFGvdLQZH5Jo2QR5uN +# 8hiMc8Z47RRJuIWCOeyIJ1YnRiiibpUZ72+wpv8LTov0yH6C5HR/D8+AT4vqtP57 +# ITXsD9DPOob8tjtsefPcQJebUNiqyfyTL5j5/J+2d+GPCcXEYoeWZ+nrsZSfrd5D +# HM4ovCmD3lifgYnzjOry4ghQT/cvmdHwFr6yJGphW/HG8GQd+cB4w7wGpOhHVJby +# 44kGVK8MzY9s32Dy1THnJg8p7y1sEGz/A1y84Zt6gIsITYaccHhBKp4cOVNrfoRV +# Ux2G/0Tr7Dk3fpCU8u+5olqPPwKgZs57jl+lOrRVsX1AYEmAnyCyGrqRAzpGXyk1 +# HvNIBpSNNuTBQk7FBvu+Ypi6A7S2V2Tj6lzYWVBvuGECAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBSJ7aO6nJXJI9eijzS5QkR2RlngADAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAZiAJgFbkf7jfhx/mmZlnGZrpae+HGpxWxs8I79vUb8GQou50M1ns7iwG +# 2CcdoXaq7VgpVkNf1uvIhrGYpKCBXQ+SaJ2O0BvwuJR7UsgTaKN0j/yf3fpHD0kt +# H+EkEuGXs9DBLyt71iutVkwow9iQmSk4oIK8S8ArNGpSOzeuu9TdJjBjsasmuJ+2 +# q5TjmrgEKyPe3TApAio8cdw/b1cBAmjtI7tpNYV5PyRI3K1NhuDgfEj5kynGF/ui +# zP1NuHSxF/V1ks/2tCEoriicM4k1PJTTA0TCjNbkpmBcsAMlxTzBnWsqnBCt9d+U +# d9Va3Iw9Bs4ccrkgBjLtg3vYGYar615ofYtU+dup+LuU0d2wBDEG1nhSWHaO+u2y +# 6Si3AaNINt/pOMKU6l4AW0uDWUH39OHH3EqFHtTssZXaDOjtyRgbqMGmkf8KI3qI +# VBZJ2XQpnhEuRbh+AgpmRn/a410Dk7VtPg2uC422WLC8H8IVk/FeoiSS4vFodhnc +# FetJ0ZK36wxAa3FiPgBebRWyVtZ763qDDzxDb0mB6HL9HEfTbN+4oHCkZa1HKl8B +# 0s8RiFBMf/W7+O7EPZ+wMH8wdkjZ7SbsddtdRgRARqR8IFPWurQ+sn7ftEifaojz +# uCEahSAcq86yjwQeTPN9YG9b34RTurnkpD+wPGTB1WccMpsLlM0wggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAqs5WjWO7zVAK +# mIcdwhqgZvyp6UaggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyG2lkwIhgPMjAyNTA5MzAyMjM4MTdaGA8yMDI1 +# MTAwMTIyMzgxN1owdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA7IbaWQIBADAKAgEA +# AgInWgIB/zAHAgEAAgISRDAKAgUA7Igr2QIBADA2BgorBgEEAYRZCgQCMSgwJjAM +# BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB +# CwUAA4IBAQA0HygGCzYYEljnRjZKmlyq8BlFLyeDqjIsf+eW9udW0nwpYvks0ztw +# xcaklxi1JIufA2sghpxfO1DRxR/rkZvRt0N4b6+meKsltQSnJyY6A7LOg169vl4I +# h4F80N3N244nRix969BPnYvMd94lXyhwLRk0vygjWuhF5VJIn+oJQ89bR2Qr+k1c +# EzI5Hypvq/WH0ZzZF7BSPu2zhWTJrNuAefu02ATEKZh8YydBYJdQ9qT2SjXDDQoX +# xW6kWpyX51pxERwDxHfeYKGyp3xuGmIOtBT8jFD/bzNCUIAxAKYmggqdJI1IoRQO +# hyj/efZBnp2gn+TMH95Q84INFZ6tWtSWMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE +# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc +# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 +# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH5H2eNdauk8bEAAQAAAfkwDQYJYIZI +# AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG +# 9w0BCQQxIgQgn933r4y0jU2arKizHfLHMs2a9X1exP9Cl7jLD/ABcBAwgfoGCyqG +# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCA5I4zIHvCN+2T66RUOLCZrUEVdoKlKl8Ve +# CO5SbGLYEDCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n +# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y +# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz +# AAAB+R9njXWrpPGxAAEAAAH5MCIEIImoK59ZPcOXI5dNWhrN9BtaZ8YzydRxG6Oc +# pV+4JnCfMA0GCSqGSIb3DQEBCwUABIICAB+4x6ZA5QY+bna8YicpD0DzAulLDQnL +# Hb4OxW/6OyHwQyt4vSzjsPVDcItAdm/hdII9pmhyz7jqBSMbkj1WR5K3YXKE0aUf +# V9AX4DzXE0Ea1vgwmLPTAwbF1+18An3px43SmkA3GQU9bU+XFQEreW5O0LdYHYnM +# MFk0tqMk0WU79Hc2976GrAOhNvcgrj2Rt89BE149XuOmyYLQmezqGpeH+opJXOrt +# 1SnW7LX9hl22GKO4aMsqRk/vWh+2zZZ5Htlv8uHj/Adc1VFTY9CI2FX2bQ7NPD66 +# dbtAKNPWH+OxO34MMFyXPHAMwvUTMz7cWY+t7sYf078aww/v87Du0Gd3p60fIoDF +# 5J/8L++LdHOWhGjUS6hrvqOlMxXToj/F8Yv4bqllkDUjLHTY+1MYECDnzfLzVjEe +# Bvnm7oKM5cBMeSIGg/9yJOOhbd8UdQN0D3QAfTNWeFg6CPEh1uCRj4+rv3wwTRlh +# J7H5PugpLfO2z590YxbAd4rzHQI91jZFWt+Pbz/haTCb17KbdCxKPYvg47HfZtJS +# z5/CgEfdcMRLTR8mTPHotQft0P41P9/17d9xI1hAAuqywhPEmN64ePMfRmRcISf/ +# 6NMnb7aXJuHLsdDkggrs74QqE+CbY/0tsdGUX1o7w7T4VyxYguINJy/OcMTweJ05 +# W4s9oCZxKCr3 +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml new file mode 100644 index 000000000000..3599bf890d9d --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml @@ -0,0 +1,251 @@ + + + + + OnlineDialinConferencingPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.OnlineDialinConferencingPolicy + + + + + + + + + Identity + + + + AllowService + + + + Description + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoicemail.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoicemail.format.ps1xml new file mode 100644 index 000000000000..fad03a18d6b6 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoicemail.format.ps1xml @@ -0,0 +1,291 @@ + + + + + OnlineVoicemailPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoicemail.OnlineVoicemailPolicy + + + + + + + + + Identity + + + + Description + + + + EnableTranscription + + + + ShareData + + + + EnableTranscriptionProfanityMasking + + + + EnableEditingCallAnswerRulesSetting + + + + MaximumRecordingLength + + + + EnableTranscriptionTranslation + + + + PrimarySystemPromptLanguage + + + + SecondarySystemPromptLanguage + + + + PreambleAudioFile + + + + PostambleAudioFile + + + + PreamblePostambleMandatory + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml new file mode 100644 index 000000000000..08e10ad35582 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml @@ -0,0 +1,251 @@ + + + + + TeamsAppPolicyConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.TeamsAppPolicyConfiguration + + + + + + + + + Identity + + + + AppCatalogUri + + + + ResourceUri + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.format.ps1xml new file mode 100644 index 000000000000..6e9a622bf6bc --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.format.ps1xml @@ -0,0 +1,307 @@ + + + + + TeamsMeetingConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.TeamsMeetingConfiguration + + + + + + + + + Identity + + + + LogoURL + + + + LegalURL + + + + HelpURL + + + + CustomFooterText + + + + DisableAnonymousJoin + + + + DisableAppInteractionForAnonymousUsers + + + + EnableQoS + + + + ClientAudioPort + + + + ClientAudioPortRange + + + + ClientVideoPort + + + + ClientVideoPortRange + + + + ClientAppSharingPort + + + + ClientAppSharingPortRange + + + + ClientMediaPortRangeEnabled + + + + LimitPresenterRolePermissions + + + + FeedbackSurveyForAnonymousUsers + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml new file mode 100644 index 000000000000..ef3228e9efb1 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml @@ -0,0 +1,248 @@ + + + + + TeamsMigrationConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.TeamsMigrationConfiguration + + + + + + + + + Identity + + + + EnableLegacyClientInterop + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml new file mode 100644 index 000000000000..600c43210093 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml @@ -0,0 +1,247 @@ + + + + + TeamsMultiTenantOrganizationConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.TeamsMultiTenantOrganizationConfiguration + + + + + + + + + Identity + + + + CopilotFromHomeTenant + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml new file mode 100644 index 000000000000..36f60c0bfc9e --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml @@ -0,0 +1,300 @@ + + + + + TeamsRoutingConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.TeamsRoutingConfiguration + + + + + + + + + Identity + + + + VoiceGatewayFqdn + + + + EnableMessagingGatewayProxy + + + + MessagingConversationRequestUrl + + + + MessagingConversationResponseUrl + + + + MgwRedirectUrlTemplate + + + + EnablePoollessTeamsOnlyUserFlighting + + + + EnablePoollessTeamsOnlyCallingFlighting + + + + EnablePoollessTeamsOnlyMessagingFlighting + + + + EnablePoollessTeamsOnlyConferencingFlighting + + + + EnablePoollessTeamsOnlyPresenceFlighting + + + + HybridEdgeFqdn + + + + DisableTeamsOnlyUsersConfCreateFlighting + + + + TenantDisabledForTeamsOnlyUsersConfCreate + + + + EnableTenantLevelPolicyCheck + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSipDevicesConfiguration.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSipDevicesConfiguration.format.ps1xml new file mode 100644 index 000000000000..234bed9e33a6 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSipDevicesConfiguration.format.ps1xml @@ -0,0 +1,247 @@ + + + + + TeamsSipDevicesConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSipDevicesConfiguration.TeamsSipDevicesConfiguration + + + + + + + + + Identity + + + + BulkSignIn + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.format.ps1xml new file mode 100644 index 000000000000..94f3e5482809 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.format.ps1xml @@ -0,0 +1,298 @@ + + + + + TenantConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.TenantConfiguration + + + + + + + + + Identity + + + + MaxAllowedDomains + + + + MaxBlockedDomains + + + + + + + + TenantLicensingConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.TenantLicensingConfiguration + + + + + + + + + Identity + + + + Status + + + + + + + + TenantWebServiceConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.TenantWebServiceConfiguration + + + + + + + + + Identity + + + + CertificateValidityPeriodInHours + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml new file mode 100644 index 000000000000..0b8baea0d378 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml @@ -0,0 +1,252 @@ + + + + + OnlineVoicemailValidationConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.OnlineVoicemailValidationConfiguration + + + + + + + + + Identity + + + + AudioFileValidationEnabled + + + + AudioFileValidationUri + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.format.ps1xml similarity index 94% rename from Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.format.ps1xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.format.ps1xml index e16c636054f3..7aed5a7029b5 100644 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.format.ps1xml +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.format.ps1xml @@ -2,6 +2,231 @@ + ApplicationAccessPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.ApplicationAccessPolicy + + + + + + + + + Identity + + + + AppIds + + + + Description + + + + + + + + BroadcastMeetingPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.BroadcastMeetingPolicy + + + + + + + + + Identity + + + + AllowBroadcastMeeting + + + + AllowOpenBroadcastMeeting + + + + AllowBroadcastMeetingRecording + + + + AllowAnonymousBroadcastMeeting + + + + BroadcastMeetingRecordingEnforced + + + + + + + + CallerIdPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.CallerIdPolicy + + + + + + + + + Identity + + + + Description + + + + Name + + + + EnableUserOverride + + + + ServiceNumber + + + + CallerIDSubstitute + + + + + + + + CallingLineIdentityView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.CallingLineIdentity + + + + + + + + + Identity + + + + Description + + + + EnableUserOverride + + + + ServiceNumber + + + + CallingIDSubstitute + + + + BlockIncomingPstnCallerID + + + + ResourceAccount + + + + CompanyName + + + + + + + + CloudMeetingOpsPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.CloudMeetingOpsPolicy + + + + + + + + + Identity + + + + ActivationLocation + + + + + + + + CloudMeetingPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.CloudMeetingPolicy + + + + + + + + + Identity + + + + AllowAutoSchedule + + + + IsModernSchedulingEnabled + + + + + + + + CloudVideoInteropPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.CloudVideoInteropPolicy + + + + + + + + + Identity + + + + EnableCloudVideoInterop + + + + + + + ConversationRolesSettingView Microsoft.Teams.Policy.Administration.Cmdlets.Core.ConversationRolesSetting @@ -278,10 +503,6 @@ EnableXmppAccess - - - EnablePublicCloudAccess - EnablePublicCloudAudioVideoAccess @@ -324,9 +545,9 @@ - LocationPolicyView + HostedVoicemailPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.LocationPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.HostedVoicemailPolicy @@ -337,35 +558,74 @@ Identity - - - EmergencyNumbers - Description - - EnhancedEmergencyServicesEnabled - - - - LocationRequired + + Destination - - UseLocationForE911Only + + Organization - - PstnUsage + + BusinessVoiceEnabled - - EmergencyDialString + + NgcEnabled - + + + + + + + LocationPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.LocationPolicy + + + + + + + + + Identity + + + + EmergencyNumbers + + + + Description + + + + EnhancedEmergencyServicesEnabled + + + + LocationRequired + + + + UseLocationForE911Only + + + + PstnUsage + + + + EmergencyDialString + + EmergencyDialMask @@ -429,6 +689,111 @@ + + LocationProfileView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.LocationProfile + + + + + + + + + Identity + + + + Description + + + + DialinConferencingRegion + + + + NormalizationRules + + + + PriorityNormalizationRules + + + + CountryCode + + + + State + + + + City + + + + ExternalAccessPrefix + + + + SimpleName + + + + OptimizeDeviceDialing + + + + ITUCountryPrefix + + + + + + + + NormalizationRuleView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.NormalizationRule + + + + + + + + + Identity + + + Priority + + + + Description + + + + Pattern + + + + Translation + + + + Name + + + + IsInternalExtension + + + + + + MeetingPolicyView @@ -609,9 +974,9 @@ - BroadcastMeetingPolicyView + NgcBvMigrationPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.BroadcastMeetingPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.NgcBvMigrationPolicy @@ -623,24 +988,12 @@ Identity - - AllowBroadcastMeeting - - - - AllowOpenBroadcastMeeting - - - - AllowBroadcastMeetingRecording - - - - AllowAnonymousBroadcastMeeting + + Description - - BroadcastMeetingRecordingEnforced + + PstnOut @@ -648,9 +1001,9 @@ - CloudMeetingPolicyView + OnlineAudioConferencingRoutingPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.CloudMeetingPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineAudioConferencingRoutingPolicy @@ -662,12 +1015,16 @@ Identity - - AllowAutoSchedule + + OnlinePstnUsages - - IsModernSchedulingEnabled + + Description + + + + RouteType @@ -675,9 +1032,9 @@ - CloudMeetingOpsPolicyView + OnlinePstnUsagesView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.CloudMeetingOpsPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlinePstnUsages @@ -689,8 +1046,8 @@ Identity - - ActivationLocation + + Usage @@ -698,9 +1055,9 @@ - CloudVideoInteropPolicyView + OnlineDialOutPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.CloudVideoInteropPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialOutPolicy @@ -712,8 +1069,12 @@ Identity - - EnableCloudVideoInterop + + AllowPSTNConferencingDialOutType + + + + AllowPSTNOutboundCallingType @@ -721,9 +1082,9 @@ - ApplicationAccessPolicyView + OnlineRouteView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.ApplicationAccessPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineRoute @@ -733,14 +1094,33 @@ Identity - - - - AppIds + + + Priority Description + + + + NumberPattern + + + + OnlinePstnUsages + + + + OnlinePstnGatewayList + + + + BridgeSourcePhoneNumber + + + + Name @@ -748,9 +1128,9 @@ - TeamsMeetingPolicyView + OnlinePstnRoutingSettingsView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlinePstnRoutingSettings @@ -762,833 +1142,8 @@ Identity - - Description - - - - AllowChannelMeetingScheduling - - - - AllowMeetNow - - - - AllowPrivateMeetNow - - - - MeetingChatEnabledType - - - - AllowExternalNonTrustedMeetingChat - - - - CopyRestriction - - - - LiveCaptionsEnabledType - - - - DesignatedPresenterRoleMode - - - - AllowIPAudio - - - - AllowIPVideo - - - - AllowEngagementReport - - - - AllowTrackingInReport - - - - IPAudioMode - - - - IPVideoMode - - - - AllowAnonymousUsersToDialOut - - - - AllowAnonymousUsersToStartMeeting - - - - AllowAnonymousUsersToJoinMeeting - - - - BlockedAnonymousJoinClientTypes - - - - AllowedStreamingMediaInput - - - - ExplicitRecordingConsent - - - - AllowLocalRecording - - - - AutoRecording - - - - ParticipantNameChange - - - - AllowPrivateMeetingScheduling - - - - AutoAdmittedUsers - - - - AllowCloudRecording - - - - AllowRecordingStorageOutsideRegion - - - - RecordingStorageMode - - - - AllowOutlookAddIn - - - - AllowPowerPointSharing - - - - AllowParticipantGiveRequestControl - - - - AllowExternalParticipantGiveRequestControl - - - - AllowSharedNotes - - - - AllowWhiteboard - - - - AllowTranscription - - - - AllowNetworkConfigurationSettingsLookup - - - - MediaBitRateKb - - - - ScreenSharingMode - - - - VideoFiltersMode - - - - AllowPSTNUsersToBypassLobby - - - - AllowOrganizersToOverrideLobbySettings - - - - PreferredMeetingProviderForIslandsMode - - - - AllowNDIStreaming - - - - SpeakerAttributionMode - - - - EnrollUserOverride - - - - RoomAttributeUserOverride - - - - StreamingAttendeeMode - - - - AttendeeIdentityMasking - - - - AllowBreakoutRooms - - - - TeamsCameraFarEndPTZMode - - - - AllowMeetingReactions - - - - AllowMeetingRegistration - - - - WhoCanRegister - - - - AllowScreenContentDigitization - - - - AllowCarbonSummary - - - - RoomPeopleNameUserOverride - - - - AllowMeetingCoach - - - - NewMeetingRecordingExpirationDays - - - - LiveStreamingMode - - - - MeetingInviteLanguages - - - - ChannelRecordingDownload - - - - AllowCartCaptionsScheduling - - - - AllowTasksFromTranscript - - - - InfoShownInReportMode - - - - LiveInterpretationEnabledType - - - - QnAEngagementMode - - - - AllowImmersiveView - - - - AllowAvatarsInGallery - - - - AllowAnnotations - - - - AllowDocumentCollaboration - - - - AllowWatermarkForScreenSharing - - - - AllowWatermarkForCameraVideo - - - - AllowWatermarkCustomizationForCameraVideo - - - - WatermarkForCameraVideoOpacity - - - - WatermarkForCameraVideoPattern - - - - AllowWatermarkCustomizationForScreenSharing - - - - WatermarkForScreenSharingOpacity - - - - WatermarkForScreenSharingPattern - - - - WatermarkForAnonymousUsers - - - - DetectSensitiveContentDuringScreenSharing - - - - AudibleRecordingNotification - - - - ConnectToMeetingControls - - - - Copilot - - - - AutomaticallyStartCopilot - - - - VoiceIsolation - - - - ExternalMeetingJoin - - - - ContentSharingInExternalMeetings - - - - AllowedUsersForMeetingContext - - - - SmsNotifications - - - - CaptchaVerificationForMeetingJoin - - - - UsersCanAdmitFromLobby - - - - LobbyChat - - - - AnonymousUserAuthenticationMethod - - - - NoiseSuppressionForDialInParticipants - - - - AIInterpreter - - - - VoiceSimulationInInterpreter - - - - - - - - TeamsMeetingBrandingPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingBrandingPolicy - - - - - - - - - Identity - - - - NdiAssuranceSlateImages - - - - MeetingBackgroundImages - - - - MeetingBrandingThemes - - - - DefaultTheme - - - - EnableMeetingOptionsThemeOverride - - - - EnableNdiAssuranceSlate - - - - EnableMeetingBackgroundImages - - - - RequireBackgroundEffect - - - - - - - - NdiAssuranceSlateView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.NdiAssuranceSlate - - - - - - - - - Id - - - - Name - - - - NdiImageUri - - - - IsDefault - - - - - - - - MeetingBackgroundImageView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.MeetingBackgroundImage - - - - - - - - - Id - - - - Order - - - - Name - - - - IsRequired - - - - IsHidden - - - - ImageUri - - - - - - - - MeetingBrandingThemeView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.MeetingBrandingTheme - - - - - - - - - DisplayName - - - - LogoImageLightUri - - - - LogoImageDarkUri - - - - BackgroundImageLightUri - - - - BackgroundImageDarkUri - - - - LogoImageLightPreAuthUri - - - - LogoImageDarkPreAuthUri - - - - MeetingInviteLogoImageLightPreAuthUri - - - - MeetingInviteLogoImageDarkPreAuthUri - - - - BackgroundImageLightPreAuthUri - - - - BackgroundImageDarkPreAuthUri - - - - BrandAccentColor - - - - Enabled - - - - Identity - - - - - - - - TeamsEventsPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEventsPolicy - - - - - - - - - Identity - - - - AllowWebinars - - - - EventAccessType - - - - AllowTownhalls - - - - AllowEmailEditing - - - - AllowedQuestionTypesInRegistrationForm - - - - AllowEventIntegrations - - - - AllowedWebinarTypesForRecordingPublish - - - - AllowedTownhallTypesForRecordingPublish - - - - RecordingForTownhall - - - - RecordingForWebinar - - - - TranscriptionForTownhall - - - - TranscriptionForWebinar - - - - TownhallChatExperience - - - - UseMicrosoftECDN - - - - ImmersiveEvents - - - - Description - - - - - - - - OnlineDialOutPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialOutPolicy - - - - - - - - - Identity - - - - AllowPSTNConferencingDialOutType - - - - AllowPSTNOutboundCallingType - - - - - - - - TeamsCallingPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsCallingPolicy - - - - - - - - - Identity - - - - Description - - - - AllowPrivateCalling - - - - AllowWebPSTNCalling - - - - AllowSIPDevicesCalling - - - - AllowVoicemail - - - - AllowCallGroups - - - - AllowDelegation - - - - AllowCallForwardingToUser - - - - AllowCallForwardingToPhone - - - - PreventTollBypass - - - - BusyOnBusyEnabledType - - - - MusicOnHoldEnabledType - - - - AllowCloudRecordingForCalls - - - - AllowTranscriptionForCalling - - - - PopoutForIncomingPstnCalls - - - - PopoutAppPathForIncomingPstnCalls - - - - LiveCaptionsEnabledTypeForCalling - - - - AutoAnswerEnabledType - - - - SpamFilteringEnabledType - - - - CallRecordingExpirationDays - - - - AllowCallRedirect - - - - InboundPstnCallRoutingTreatment - - - - InboundFederatedCallRoutingTreatment - - - - EnableWebPstnMediaBypass - - - - EnableSpendLimits - - - - CallingSpendUserLimit - - - - Copilot - - - - ShowTeamsCallsInCallLog - - - - AIInterpreter - - - - VoiceSimulationInInterpreter + + OnlineRoute @@ -1596,9 +1151,9 @@ - TeamsInteropPolicyView + OnlineVoiceRoutingPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsInteropPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoiceRoutingPolicy @@ -1610,16 +1165,16 @@ Identity - - AllowEndUserClientOverride + + OnlinePstnUsages - - CallingDefaultClient + + Description - - ChatDefaultClient + + RouteType @@ -1627,9 +1182,9 @@ - TeamsMessagingPolicyView + PstnUsagesView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMessagingPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PstnUsages @@ -1641,144 +1196,274 @@ Identity - - Description - - - - AllowUrlPreviews - - - - AllowOwnerDeleteMessage + + Usage + + + + + + + TeamsAppPermissionPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPermissionPolicy + + + + + + - - AllowUserEditMessage + + Identity - - AllowUserDeleteMessage + + DefaultCatalogApps - - AllowUserDeleteChat + + GlobalCatalogApps - - AllowUserChat + + PrivateCatalogApps - - AllowRemoveUser + + Description - - AllowGiphy + + DefaultCatalogAppsType - - GiphyRatingType + + GlobalCatalogAppsType - - AllowGiphyDisplay + + PrivateCatalogAppsType + + + + + + + DefaultCatalogAppView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.DefaultCatalogApp + + + + + + - - AllowPasteInternetImage + + Identity + + + Priority - - AllowMemes + + Id + + + + + + + GlobalCatalogAppView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.GlobalCatalogApp + + + + + + - - AllowImmersiveReader + + Identity + + + Priority - - AllowStickers + + Id + + + + + + + PrivateCatalogAppView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PrivateCatalogApp + + + + + + - - AllowUserTranslation + + Identity + + + Priority - - ReadReceiptsEnabledType + + Id + + + + + + + TeamsAppSetupPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppSetupPolicy + + + + + + - - AllowPriorityMessages + + Identity - - AllowSmartReply + + AppPresetList - - AllowSmartCompose + + PinnedAppBarApps - - ChannelsInChatListEnabledType + + PinnedMessageBarApps - - AudioMessageEnabledType + + AppPresetMeetingList - - ChatPermissionRole + + AdditionalCustomizationApps - - AllowFullChatPermissionUserToDeleteAnyMessage + + PinnedCallingBarApps - - AllowFluidCollaborate + + Description - - AllowVideoMessages + + AllowSideLoading - - AllowCommunicationComplianceEndUserReporting + + AllowUserPinning + + + + + + + AppPresetView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPreset + + + + + + - - AllowChatWithGroup + + Identity + + + Priority - - AllowSecurityEndUserReporting + + Id + + + + + + + PinnedAppView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp + + + + + + - - InOrganizationChatControl + + Identity + + + Priority - - AllowGroupChatJoinLinks + + Id - - CreateCustomEmojis + + Order + + + + + + + PinnedMessageBarAppView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedMessageBarApp + + + + + + - - DeleteCustomEmojis + + Identity + + + Priority - - DesignerForBackgroundsAndImages + + Id - - AllowCustomGroupChatAvatars + + Order @@ -1786,9 +1471,9 @@ - TeamsUpgradePolicyView + AppPresetMeetingView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsUpgradePolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPresetMeeting @@ -1798,22 +1483,43 @@ Identity + + + Priority - - Description + + Id + + + + + + + AdditionalCustomizationAppView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalCustomizationApp + + + + + + - - Mode + + Identity + + + Priority - - NotifySfbUsers + + Id - - Action + + AdditionalCustomizationId @@ -1821,9 +1527,9 @@ - TeamsUpgradeOverridePolicyView + PinnedCallingBarAppView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsUpgradeOverridePolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedCallingBarApp @@ -1833,26 +1539,36 @@ Identity + + + Priority - - Description - - - - ProvisionedAsTeamsOnly - - - - SkypePoolMode + + Id + + + + + + + TeamsBranchSurvivabilityPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsBranchSurvivabilityPolicy + + + + + + - - Action + + Identity - - Enabled + + BranchApplianceFqdns @@ -1860,9 +1576,9 @@ - TeamsMediaLoggingPolicyView + TeamsCallHoldPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMediaLoggingPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsCallHoldPolicy @@ -1878,8 +1594,16 @@ Description - - AllowMediaLogging + + AudioFileId + + + + StreamingSourceUrl + + + + StreamingSourceAuthType @@ -1887,9 +1611,9 @@ - TeamsVideoInteropServicePolicyView + TeamsCallingPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsVideoInteropServicePolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsCallingPolicy @@ -1905,59 +1629,128 @@ Description - - ProviderName + + AllowPrivateCalling + + + + AllowWebPSTNCalling + + + + AllowSIPDevicesCalling + + + + AllowVoicemail + + + + AllowCallGroups + + + + AllowDelegation + + + + AllowCallForwardingToUser + + + + AllowCallForwardingToPhone + + + + PreventTollBypass + + + + BusyOnBusyEnabledType + + + + MusicOnHoldEnabledType + + + + AllowCloudRecordingForCalls + + + + ExplicitRecordingConsent + + + + AllowTranscriptionForCalling + + + + PopoutForIncomingPstnCalls + + + + PopoutAppPathForIncomingPstnCalls + + + + LiveCaptionsEnabledTypeForCalling + + + + AutoAnswerEnabledType + + + + SpamFilteringEnabledType + + + + CallRecordingExpirationDays + + + + AllowCallRedirect + + + + InboundPstnCallRoutingTreatment - - Enabled + + InboundFederatedCallRoutingTreatment - - - - - - - TeamsWorkLoadPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsWorkLoadPolicy - - - - - - - - Identity + + EnableWebPstnMediaBypass - - Description + + EnableSpendLimits - - AllowMeeting + + CallingSpendUserLimit - - AllowMeetingPinned + + Copilot - - AllowMessaging + + ShowTeamsCallsInCallLog - - AllowMessagingPinned + + RealTimeText - - AllowCalling + + AIInterpreter - - AllowCallingPinned + + VoiceSimulationInInterpreter @@ -1965,9 +1758,9 @@ - TeamsCortanaPolicyView + TeamsCallParkPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsCortanaPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsCallParkPolicy @@ -1983,20 +1776,20 @@ Description - - CortanaVoiceInvocationMode + + AllowCallPark - - AllowCortanaVoiceInvocation + + PickupRangeStart - - AllowCortanaAmbientListening + + PickupRangeEnd - - AllowCortanaInContextSuggestions + + ParkTimeoutSeconds @@ -2004,9 +1797,9 @@ - TeamsOwnersPolicyView + TeamsCarrierEmergencyCallRoutingPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsOwnersPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsCarrierEmergencyCallRoutingPolicy @@ -2018,20 +1811,12 @@ Identity - - Description - - - - AllowPrivateTeams - - - - AllowOrgwideTeams + + LocationPolicyId - - AllowPublicTeams + + Description @@ -2039,9 +1824,9 @@ - TeamsMeetingBroadcastPolicyView + TeamsChannelsPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingBroadcastPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsChannelsPolicy @@ -2057,20 +1842,32 @@ Description - - AllowBroadcastScheduling + + AllowOrgWideTeamCreation - - AllowBroadcastTranscription + + EnablePrivateTeamDiscovery - - BroadcastAttendeeVisibilityMode + + AllowPrivateChannelCreation - - BroadcastRecordingMode + + AllowSharedChannelCreation + + + + AllowChannelSharingToExternalUser + + + + AllowUserToParticipateInExternalSharedChannel + + + + ThreadedChannelCreation @@ -2078,9 +1875,9 @@ - TeamsAppPermissionPolicyView + TeamsComplianceRecordingPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPermissionPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsComplianceRecordingPolicy @@ -2092,32 +1889,40 @@ Identity - - DefaultCatalogApps + + ComplianceRecordingApplications - - GlobalCatalogApps + + Enabled - - PrivateCatalogApps + + WarnUserOnRemoval + + + + DisableComplianceRecordingAudioNotificationForCalls Description - - DefaultCatalogAppsType + + RecordReroutedCalls - - GlobalCatalogAppsType + + CustomPromptsEnabled - - PrivateCatalogAppsType + + CustomPromptsPackageId + + + + CustomBanner @@ -2125,9 +1930,9 @@ - DefaultCatalogAppView + ComplianceRecordingApplicationView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.DefaultCatalogApp + Microsoft.Teams.Policy.Administration.Cmdlets.Core.ComplianceRecordingApplication @@ -2141,35 +1946,33 @@ Priority + + + ComplianceRecordingPairedApplications + Id - - - - - - - GlobalCatalogAppView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.GlobalCatalogApp - - - - - - - - Identity - - - Priority + + RequiredBeforeMeetingJoin - - Id + + RequiredBeforeCallEstablishment + + + + RequiredDuringMeeting + + + + RequiredDuringCall + + + + ConcurrentInvitationCount @@ -2177,22 +1980,15 @@ - PrivateCatalogAppView + ComplianceRecordingPairedApplicationView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PrivateCatalogApp + Microsoft.Teams.Policy.Administration.Cmdlets.Core.ComplianceRecordingPairedApplication - - - Identity - - - Priority - Id @@ -2203,9 +1999,9 @@ - TeamsAppSetupPolicyView + TeamsCortanaPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppSetupPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsCortanaPolicy @@ -2217,40 +2013,24 @@ Identity - - AppPresetList - - - - PinnedAppBarApps - - - - PinnedMessageBarApps - - - - AppPresetMeetingList - - - - AdditionalCustomizationApps + + Description - - PinnedCallingBarApps + + CortanaVoiceInvocationMode - - Description + + AllowCortanaVoiceInvocation - - AllowSideLoading + + AllowCortanaAmbientListening - - AllowUserPinning + + AllowCortanaInContextSuggestions @@ -2258,9 +2038,9 @@ - AppPresetView + TeamsEducationAssignmentsAppPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPreset + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEducationAssignmentsAppPolicy @@ -2270,13 +2050,26 @@ Identity - - - Priority - - Id + + ParentDigestEnabledType + + + + MakeCodeEnabledType + + + + TurnItInEnabledType + + + + TurnItInApiUrl + + + + TurnItInApiKey @@ -2284,9 +2077,9 @@ - PinnedAppView + TeamsEmergencyCallingPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEmergencyCallingPolicy @@ -2296,17 +2089,34 @@ Identity - - - Priority - - Id + + ExtendedNotifications - - Order + + NotificationGroup + + + + NotificationDialOutNumber + + + + ExternalLocationLookupMode + + + + NotificationMode + + + + EnhancedEmergencyServiceDisclaimer + + + + Description @@ -2314,9 +2124,9 @@ - PinnedMessageBarAppView + TeamsEmergencyCallingExtendedNotificationView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedMessageBarApp + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEmergencyCallingExtendedNotification @@ -2324,19 +2134,20 @@ - - Identity - - - Priority + + EmergencyDialString - - Id + + NotificationGroup - - Order + + NotificationDialOutNumber + + + + NotificationMode @@ -2344,9 +2155,9 @@ - AppPresetMeetingView + TeamsEmergencyCallRoutingPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPresetMeeting + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEmergencyCallRoutingPolicy @@ -2356,13 +2167,18 @@ Identity - - - Priority - - Id + + EmergencyNumbers + + + + AllowEnhancedEmergencyServices + + + + Description @@ -2370,9 +2186,9 @@ - AdditionalCustomizationAppView + TeamsEmergencyNumberView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalCustomizationApp + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEmergencyNumber @@ -2380,19 +2196,16 @@ - - Identity - - - Priority + + EmergencyDialString - - Id + + EmergencyDialMask - - AdditionalCustomizationId + + OnlinePSTNUsage @@ -2400,9 +2213,9 @@ - PinnedCallingBarAppView + TeamsEnhancedEncryptionPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedCallingBarApp + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEnhancedEncryptionPolicy @@ -2412,13 +2225,18 @@ Identity - - - Priority - - Id + + CallingEndtoEndEncryptionEnabledType + + + + MeetingEndToEndEncryption + + + + Description @@ -2426,9 +2244,9 @@ - TeamsCallParkPolicyView + TeamsEventsPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsCallParkPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEventsPolicy @@ -2440,24 +2258,84 @@ Identity - - Description + + AllowWebinars - - AllowCallPark + + EventAccessType - - PickupRangeStart + + AllowTownhalls - - PickupRangeEnd + + TownhallEventAttendeeAccess - - ParkTimeoutSeconds + + AllowEmailEditing + + + + AllowedQuestionTypesInRegistrationForm + + + + AllowEventIntegrations + + + + AllowedWebinarTypesForRecordingPublish + + + + AllowedTownhallTypesForRecordingPublish + + + + RecordingForTownhall + + + + RecordingForWebinar + + + + TranscriptionForTownhall + + + + TranscriptionForWebinar + + + + TownhallChatExperience + + + + BroadcastPremiumApps + + + + UseMicrosoftECDN + + + + ImmersiveEvents + + + + MaxResolutionForTownhall + + + + HighBitrateForTownhall + + + + Description @@ -2465,9 +2343,9 @@ - TeamsEducationAssignmentsAppPolicyView + TeamsFeedbackPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEducationAssignmentsAppPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsFeedbackPolicy @@ -2479,24 +2357,28 @@ Identity - - ParentDigestEnabledType + + UserInitiatedMode - - MakeCodeEnabledType + + ReceiveSurveysMode - - TurnItInEnabledType + + AllowScreenshotCollection - - TurnItInApiUrl + + AllowEmailCollection - - TurnItInApiKey + + AllowLogCollection + + + + EnableFeatureSuggestions @@ -2504,9 +2386,9 @@ - TeamsEmergencyCallRoutingPolicyView + TeamsFilesPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEmergencyCallRoutingPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsFilesPolicy @@ -2518,16 +2400,20 @@ Identity - - EmergencyNumbers + + NativeFileEntryPoints + + + + SPChannelFilesTab - - AllowEnhancedEmergencyServices + + DefaultFileUploadAppId - - Description + + FileSharingInChatswithExternalUsers @@ -2535,9 +2421,9 @@ - TeamsEmergencyNumberView + TeamsInteropPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEmergencyNumber + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsInteropPolicy @@ -2545,16 +2431,20 @@ - - EmergencyDialString + + Identity - - EmergencyDialMask + + AllowEndUserClientOverride - - OnlinePSTNUsage + + CallingDefaultClient + + + + ChatDefaultClient @@ -2562,9 +2452,9 @@ - TeamsEmergencyCallingPolicyView + TeamsIPPhonePolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEmergencyCallingPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsIPPhonePolicy @@ -2576,32 +2466,32 @@ Identity - - ExtendedNotifications + + Description - - NotificationGroup + + SignInMode - - NotificationDialOutNumber + + SearchOnCommonAreaPhoneMode - - ExternalLocationLookupMode + + AllowHomeScreen - - NotificationMode + + AllowBetterTogether - - EnhancedEmergencyServiceDisclaimer + + AllowHotDesking - - Description + + HotDeskingIdleTimeoutInMinutes @@ -2609,9 +2499,9 @@ - TeamsEmergencyCallingExtendedNotificationView + TeamsMediaLoggingPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEmergencyCallingExtendedNotification + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMediaLoggingPolicy @@ -2619,20 +2509,16 @@ - - EmergencyDialString - - - - NotificationGroup + + Identity - - NotificationDialOutNumber + + Description - - NotificationMode + + AllowMediaLogging @@ -2640,9 +2526,9 @@ - TeamsUpdateManagementPolicyView + TeamsMeetingBrandingPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsUpdateManagementPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingBrandingPolicy @@ -2654,44 +2540,36 @@ Identity - - DisabledInProductMessages - - - - Description - - - - AllowManagedUpdates + + NdiAssuranceSlateImages - - AllowPreview + + MeetingBackgroundImages - - UpdateDayOfWeek + + MeetingBrandingThemes - - UpdateTime + + DefaultTheme - - $_.UpdateTimeOfDay.ToShortTimeString() + + EnableMeetingOptionsThemeOverride - - AllowPublicPreview + + EnableNdiAssuranceSlate - - UseNewTeamsClient + + EnableMeetingBackgroundImages - - BlockLegacyAuthorization + + RequireBackgroundEffect @@ -2699,9 +2577,9 @@ - TeamsNotificationAndFeedsPolicyView + NdiAssuranceSlateView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsNotificationAndFeedsPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.NdiAssuranceSlate @@ -2709,20 +2587,20 @@ - - Identity + + Id - - Description + + Name - - SuggestedFeedsEnabledType + + NdiImageUri - - TrendingFeedsEnabledType + + IsDefault @@ -2730,9 +2608,9 @@ - TeamsChannelsPolicyView + MeetingBackgroundImageView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsChannelsPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.MeetingBackgroundImage @@ -2740,36 +2618,28 @@ - - Identity - - - - Description - - - - AllowOrgWideTeamCreation + + Id - - EnablePrivateTeamDiscovery + + Order - - AllowPrivateChannelCreation + + Name - - AllowSharedChannelCreation + + IsRequired - - AllowChannelSharingToExternalUser + + IsHidden - - AllowUserToParticipateInExternalSharedChannel + + ImageUri @@ -2777,9 +2647,9 @@ - TeamsMobilityPolicyView + MeetingBrandingThemeView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMobilityPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.MeetingBrandingTheme @@ -2787,24 +2657,60 @@ - - Identity + + DisplayName - - Description + + LogoImageLightUri - - IPVideoMobileMode + + LogoImageDarkUri - - IPAudioMobileMode + + BackgroundImageLightUri - - MobileDialerPreference + + BackgroundImageDarkUri + + + + LogoImageLightPreAuthUri + + + + LogoImageDarkPreAuthUri + + + + MeetingInviteLogoImageLightPreAuthUri + + + + MeetingInviteLogoImageDarkPreAuthUri + + + + BackgroundImageLightPreAuthUri + + + + BackgroundImageDarkPreAuthUri + + + + BrandAccentColor + + + + Enabled + + + + Identity @@ -2812,9 +2718,9 @@ - TeamsSyntheticAutomatedCallPolicyView + TeamsMeetingBroadcastPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSyntheticAutomatedCallPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingBroadcastPolicy @@ -2830,8 +2736,20 @@ Description - - SyntheticAutomatedCallsMode + + AllowBroadcastScheduling + + + + AllowBroadcastTranscription + + + + BroadcastAttendeeVisibilityMode + + + + BroadcastRecordingMode @@ -2839,9 +2757,9 @@ - TeamsTargetingPolicyView + TeamsMeetingPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsTargetingPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingPolicy @@ -2857,571 +2775,396 @@ Description - - ManageTagsPermissionMode + + AllowChannelMeetingScheduling - - TeamOwnersEditWhoCanManageTagsMode + + AllowMeetNow - - SuggestedPresetTags + + AllowPrivateMeetNow - - CustomTagsMode + + MeetingChatEnabledType - - ShiftBackedTagsMode + + AllowExternalNonTrustedMeetingChat - - AutomaticTagsMode + + CopyRestriction - - - - - - - TeamsIPPhonePolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsIPPhonePolicy - - - - - - - - Identity + + LiveCaptionsEnabledType - - Description + + DesignatedPresenterRoleMode - - SignInMode + + AllowIPAudio - - SearchOnCommonAreaPhoneMode + + AllowIPVideo - - AllowHomeScreen + + AllowEngagementReport - - AllowBetterTogether + + AllowTrackingInReport - - AllowHotDesking + + IPAudioMode - - HotDeskingIdleTimeoutInMinutes + + IPVideoMode - - - - - - - TeamsVerticalPackagePolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsVerticalPackagePolicy - - - - - - - - Identity + + AllowAnonymousUsersToDialOut - - PackageIncludedPolices + + AllowAnonymousUsersToStartMeeting - - Description + + AllowAnonymousUsersToJoinMeeting - - PackageId + + BlockedAnonymousJoinClientTypes - - FirstRunExperienceId + + AllowedStreamingMediaInput - - - - - - - PolicyTypeToPolicyInstanceView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PolicyTypeToPolicyInstance - - - - - - - - PolicyType + + ExplicitRecordingConsent - - PolicyName + + AllowLocalRecording - - - - - - - TeamsFeedbackPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsFeedbackPolicy - - - - - - - - Identity + + AutoRecording - - UserInitiatedMode + + ParticipantNameChange - - ReceiveSurveysMode + + AllowPrivateMeetingScheduling - - AllowScreenshotCollection + + AutoAdmittedUsers - - AllowEmailCollection + + AllowCloudRecording - - AllowLogCollection + + AllowRecordingStorageOutsideRegion - - EnableFeatureSuggestions + + RecordingStorageMode - - - - - - - TeamsComplianceRecordingPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsComplianceRecordingPolicy - - - - - - - - Identity + + AllowOutlookAddIn + + + + AllowPowerPointSharing + + + + AllowParticipantGiveRequestControl + + + + AllowExternalParticipantGiveRequestControl + + + + AllowSharedNotes + + + + AllowWhiteboard + + + + AllowTranscription + + + + AllowNetworkConfigurationSettingsLookup + + + + MediaBitRateKb + + + + ScreenSharingMode + + + + VideoFiltersMode + + + + AllowPSTNUsersToBypassLobby + + + + AllowOrganizersToOverrideLobbySettings + + + + PreferredMeetingProviderForIslandsMode + + + + AllowNDIStreaming - - ComplianceRecordingApplications + + SpeakerAttributionMode - - Enabled + + EnrollUserOverride - - WarnUserOnRemoval + + RoomAttributeUserOverride - - DisableComplianceRecordingAudioNotificationForCalls + + StreamingAttendeeMode - - Description + + AttendeeIdentityMasking - - RecordReroutedCalls + + AllowBreakoutRooms - - CustomPromptsEnabled + + TeamsCameraFarEndPTZMode - - CustomPromptsPackageId + + AllowMeetingReactions - - CustomBanner + + AllowMeetingRegistration - - - - - - - ComplianceRecordingApplicationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.ComplianceRecordingApplication - - - - - - - - Identity - - - Priority + + WhoCanRegister - - ComplianceRecordingPairedApplications + + AllowScreenContentDigitization - - Id + + AllowCarbonSummary - - RequiredBeforeMeetingJoin + + RoomPeopleNameUserOverride - - RequiredBeforeCallEstablishment + + AllowMeetingCoach - - RequiredDuringMeeting + + NewMeetingRecordingExpirationDays - - RequiredDuringCall + + LiveStreamingMode - - ConcurrentInvitationCount + + MeetingInviteLanguages - - - - - - - ComplianceRecordingPairedApplicationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.ComplianceRecordingPairedApplication - - - - - - - - Id + + ChannelRecordingDownload - - - - - - - TeamsShiftsPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsShiftsPolicy - - - - - - - - Identity + + AllowCartCaptionsScheduling - - ShiftNoticeFrequency + + AllowTasksFromTranscript - - ShiftNoticeMessageType + + InfoShownInReportMode - - ShiftNoticeMessageCustom + + LiveInterpretationEnabledType - - AccessType + + QnAEngagementMode - - AccessGracePeriodMinutes + + AllowImmersiveView - - EnableScheduleOwnerPermissions + + AllowAvatarsInGallery - - - - - - - TeamsTasksPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsTasksPolicy - - - - - - - - Identity + + AllowAnnotations - - TasksMode + + AllowDocumentCollaboration - - AllowActivityWhenTasksPublished + + AllowWatermarkForScreenSharing - - - - - - - TeamsVdiPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsVdiPolicy - - - - - - - - Identity + + AllowWatermarkForCameraVideo - - DisableCallsAndMeetings + + AllowWatermarkCustomizationForCameraVideo - - DisableAudioVideoInCallsAndMeetings + + WatermarkForCameraVideoOpacity - - VDI2Optimization + + WatermarkForCameraVideoPattern - - - - - - - TeamsNetworkRoamingPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsNetworkRoamingPolicy - - - - - - - - Identity + + AllowWatermarkCustomizationForScreenSharing - - AllowIPVideo + + WatermarkForScreenSharingOpacity - - MediaBitRateKb + + WatermarkForScreenSharingPattern - - Description + + WatermarkForAnonymousUsers + + + + DetectSensitiveContentDuringScreenSharing - - - - - - - TeamsTemplatePermissionPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsTemplatePermissionPolicy - - - - - - - - Identity + + AudibleRecordingNotification - - HiddenTemplates + + ConnectToMeetingControls - - Description + + Copilot - - - - - - - HiddenTemplateView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.HiddenTemplate - - - - - - - - Id + + AutomaticallyStartCopilot - - - - - - - TeamsCarrierEmergencyCallRoutingPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsCarrierEmergencyCallRoutingPolicy - - - - - - - - Identity + + VoiceIsolation - - LocationPolicyId + + ExternalMeetingJoin - - Description + + ContentSharingInExternalMeetings - - - - - - - TeamsCallHoldPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsCallHoldPolicy - - - - - - - - Identity + + AllowedUsersForMeetingDetails - - Description + + SmsNotifications - - AudioFileId + + CaptchaVerificationForMeetingJoin - - StreamingSourceUrl + + UsersCanAdmitFromLobby - - StreamingSourceAuthType + + LobbyChat - - - - - - - TeamsEnhancedEncryptionPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEnhancedEncryptionPolicy - - - - - - - - Identity + + AnonymousUserAuthenticationMethod - - CallingEndtoEndEncryptionEnabledType + + NoiseSuppressionForDialInParticipants - - MeetingEndToEndEncryption + + RealTimeText - - Description + + AIInterpreter + + + + VoiceSimulationInInterpreter + + + + ParticipantSlideControl @@ -3429,9 +3172,9 @@ - TeamsFilesPolicyView + TeamsMeetingTemplatePermissionPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsFilesPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingTemplatePermissionPolicy @@ -3443,20 +3186,12 @@ Identity - - NativeFileEntryPoints - - - - SPChannelFilesTab - - - - DefaultFileUploadAppId + + HiddenMeetingTemplates - - FileSharingInChatswithExternalUsers + + Description @@ -3464,9 +3199,9 @@ - TeamsWatermarkPolicyView + HiddenMeetingTemplateView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsWatermarkPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.HiddenMeetingTemplate @@ -3474,20 +3209,8 @@ - - Identity - - - - AllowForScreenSharing - - - - AllowForCameraVideo - - - - Description + + Id @@ -3495,9 +3218,9 @@ - TeamsVoiceApplicationsPolicyView + TeamsMessagingPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsVoiceApplicationsPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMessagingPolicy @@ -3513,183 +3236,152 @@ Description - - AllowAutoAttendantBusinessHoursGreetingChange - - - - AllowAutoAttendantAfterHoursGreetingChange - - - - AllowAutoAttendantHolidayGreetingChange - - - - AllowAutoAttendantBusinessHoursChange - - - - AllowAutoAttendantTimeZoneChange + + AllowUrlPreviews - - AllowAutoAttendantLanguageChange + + AllowOwnerDeleteMessage - - AllowAutoAttendantHolidaysChange + + AllowUserEditMessage - - AllowAutoAttendantBusinessHoursRoutingChange + + AllowUserDeleteMessage - - AllowAutoAttendantAfterHoursRoutingChange + + UsersCanDeleteBotMessages - - AllowAutoAttendantHolidayRoutingChange + + AllowUserDeleteChat - - AllowCallQueueWelcomeGreetingChange + + AllowUserChat - - AllowCallQueueMusicOnHoldChange + + AllowRemoveUser - - AllowCallQueueOverflowSharedVoicemailGreetingChange + + AllowGiphy - - AllowCallQueueTimeoutSharedVoicemailGreetingChange + + GiphyRatingType - - AllowCallQueueOptOutChange + + AllowGiphyDisplay - - AllowCallQueueAgentOptChange + + AllowPasteInternetImage - - AllowCallQueueMembershipChange + + AllowMemes - - AllowCallQueueRoutingMethodChange + + AllowImmersiveReader - - AllowCallQueuePresenceBasedRoutingChange + + AllowStickers - - CallQueueAgentMonitorMode + + AllowUserTranslation - - CallQueueAgentMonitorNotificationMode + + ReadReceiptsEnabledType - - - AllowCallQueueLanguageChange + + + AllowPriorityMessages - - AllowCallQueueOverflowRoutingChange + + AllowSmartReply - - AllowCallQueueTimeoutRoutingChange + + AllowSmartCompose - - AllowCallQueueNoAgentsRoutingChange + + ChannelsInChatListEnabledType - - AllowCallQueueConferenceModeChange + + AudioMessageEnabledType - - AllowCallQueueNoAgentSharedVoicemailGreetingChange + + ChatPermissionRole - - RealTimeAutoAttendantMetricsPermission + + AllowFullChatPermissionUserToDeleteAnyMessage - - RealTimeCallQueueMetricsPermission + + AllowFluidCollaborate - - RealTimeAgentMetricsPermission + + AllowVideoMessages - - HistoricalAutoAttendantMetricsPermission + + AllowCommunicationComplianceEndUserReporting - - HistoricalCallQueueMetricsPermission + + AllowChatWithGroup - - HistoricalAgentMetricsPermission + + AllowSecurityEndUserReporting - - - - - - - TeamsRoomVideoTeleConferencingPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoomVideoTeleConferencingPolicy - - - - - - - - Identity + + InOrganizationChatControl - - Description + + AllowGroupChatJoinLinks - - Enabled + + CreateCustomEmojis - - AreaCode + + UseB2BInvitesToAddExternalUsers - - ReceiveExternalCalls + + DeleteCustomEmojis - - ReceiveInternalCalls + + AutoShareFilesInExternalChats - - PlaceExternalCalls + + DesignerForBackgroundsAndImages - - PlaceInternalCalls + + AllowCustomGroupChatAvatars @@ -3697,9 +3389,9 @@ - TeamsMeetingTemplatePermissionPolicyView + TeamsMobilityPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingTemplatePermissionPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMobilityPolicy @@ -3710,55 +3402,21 @@ Identity - - - HiddenMeetingTemplates - Description - - - - - - - HiddenMeetingTemplateView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.HiddenMeetingTemplate - - - - - - - - Id + + IPVideoMobileMode - - - - - - - TeamsShiftsAppPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsShiftsAppPolicy - - - - - - - - Identity + + IPAudioMobileMode - - AllowTimeClockLocationDetection + + MobileDialerPreference @@ -3766,9 +3424,9 @@ - PstnUsagesView + TeamsNetworkRoamingPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PstnUsages + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsNetworkRoamingPolicy @@ -3780,31 +3438,16 @@ Identity - - Usage + + AllowIPVideo - - - - - - - OnlinePstnUsagesView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlinePstnUsages - - - - - - - - Identity + + MediaBitRateKb - - Usage + + Description @@ -3812,9 +3455,9 @@ - RouteView + TeamsNotificationAndFeedsPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.Route + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsNotificationAndFeedsPolicy @@ -3824,64 +3467,18 @@ Identity - - - Priority Description - - NumberPattern - - - - PstnUsages - - - - PstnGatewayList - - - - Name - - - - SuppressCallerId - - - - AlternateCallerId - - - - - - - - PstnGatewayServiceIdView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PstnGatewayServiceId - - - - - - - - - SiteId - - - - RoleName + + SuggestedFeedsEnabledType - - Instance + + TrendingFeedsEnabledType @@ -3889,9 +3486,9 @@ - PstnRoutingSettingsView + TeamsOwnersPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PstnRoutingSettings + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsOwnersPolicy @@ -3903,16 +3500,20 @@ Identity - - Route + + Description + + + + AllowPrivateTeams - - EnableLocationBasedRouting + + AllowOrgwideTeams - - CallViaWorkCallerId + + AllowPublicTeams @@ -3920,9 +3521,9 @@ - OnlineRouteView + TeamsRoomVideoTeleConferencingPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineRoute + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoomVideoTeleConferencingPolicy @@ -3932,33 +3533,34 @@ Identity - - - Priority Description - - NumberPattern + + Enabled - - OnlinePstnUsages + + AreaCode - - OnlinePstnGatewayList + + ReceiveExternalCalls - - BridgeSourcePhoneNumber + + ReceiveInternalCalls - - Name + + PlaceExternalCalls + + + + PlaceInternalCalls @@ -3966,9 +3568,9 @@ - OnlinePstnRoutingSettingsView + TeamsSharedCallingRoutingPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlinePstnRoutingSettings + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSharedCallingRoutingPolicy @@ -3980,8 +3582,16 @@ Identity - - OnlineRoute + + EmergencyNumbers + + + + ResourceAccount + + + + Description @@ -3989,9 +3599,9 @@ - TenantBlockedCallingNumbersView + TeamsShiftsAppPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantBlockedCallingNumbers + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsShiftsAppPolicy @@ -4003,20 +3613,8 @@ Identity - - InboundBlockedNumberPatterns - - - - InboundExemptNumberPatterns - - - - Enabled - - - - Name + + AllowTimeClockLocationDetection @@ -4024,9 +3622,9 @@ - InboundBlockedNumberPatternView + TeamsShiftsPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.InboundBlockedNumberPattern + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsShiftsPolicy @@ -4038,20 +3636,28 @@ Identity - - Name + + ShiftNoticeFrequency - - Enabled + + ShiftNoticeMessageType - - Description + + ShiftNoticeMessageCustom - - Pattern + + AccessType + + + + AccessGracePeriodMinutes + + + + EnableScheduleOwnerPermissions @@ -4059,9 +3665,9 @@ - InboundExemptNumberPatternView + TeamsSyntheticAutomatedCallPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.InboundExemptNumberPattern + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSyntheticAutomatedCallPolicy @@ -4072,21 +3678,13 @@ Identity - - - Name - - - - Enabled - Description - - Pattern + + SyntheticAutomatedCallsMode @@ -4094,9 +3692,9 @@ - LocationProfileView + TeamsTargetingPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.LocationProfile + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsTargetingPolicy @@ -4112,44 +3710,28 @@ Description - - DialinConferencingRegion - - - - NormalizationRules - - - - PriorityNormalizationRules - - - - CountryCode - - - - State + + ManageTagsPermissionMode - - City + + TeamOwnersEditWhoCanManageTagsMode - - ExternalAccessPrefix + + SuggestedPresetTags - - SimpleName + + CustomTagsMode - - OptimizeDeviceDialing + + ShiftBackedTagsMode - - ITUCountryPrefix + + AutomaticTagsMode @@ -4157,9 +3739,9 @@ - NormalizationRuleView + TeamsTasksPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.NormalizationRule + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsTasksPolicy @@ -4169,29 +3751,14 @@ Identity - - - Priority - - - - Description - - - - Pattern - - - - Translation - - Name + + TasksMode - - IsInternalExtension + + AllowActivityWhenTasksPublished @@ -4199,9 +3766,9 @@ - TenantDialPlanView + TeamsTemplatePermissionPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantDialPlan + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsTemplatePermissionPolicy @@ -4213,24 +3780,31 @@ Identity - - Description - - - - NormalizationRules - - - - ExternalAccessPrefix + + HiddenTemplates - - SimpleName + + Description + + + + + + + HiddenTemplateView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.HiddenTemplate + + + + + + - - OptimizeDeviceDialing + + Id @@ -4238,9 +3812,9 @@ - VoicePolicyView + TeamsUpdateManagementPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicePolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsUpdateManagementPolicy @@ -4252,92 +3826,122 @@ Identity - - PstnUsages - - - - CustomCallForwardingSimulRingUsages + + DisabledInProductMessages Description - - AllowSimulRing + + AllowManagedUpdates - - AllowCallForwarding + + AllowPreview - - AllowPSTNReRouting + + UpdateDayOfWeek - - Name + + UpdateTime - - EnableDelegation + + $_.UpdateTimeOfDay.ToShortTimeString() - - EnableTeamCall + + AllowPublicPreview - - EnableCallTransfer + + UseNewTeamsClient - - EnableCallPark + + OCDIRedirect - - EnableBusyOptions + + BlockLegacyAuthorization + + + + + + + + TeamsUpgradeOverridePolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsUpgradeOverridePolicy + + + + + + + + + Identity - - EnableMaliciousCallTracing + + Description - - EnableBWPolicyOverride + + ProvisionedAsTeamsOnly - - PreventPSTNTollBypass + + SkypePoolMode - - EnableFMC + + Action - - CallForwardingSimulRingUsageType + + Enabled + + + + + + + TeamsUpgradePolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsUpgradePolicy + + + + + + - - VoiceDeploymentMode + + Identity - - EnableVoicemailEscapeTimer + + Description - - PSTNVoicemailEscapeTimer + + Mode - - TenantAdminEnabled + + NotifySfbUsers - - BusinessVoiceEnabled + + Action @@ -4345,9 +3949,9 @@ - CallerIdPolicyView + TeamsVdiPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.CallerIdPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsVdiPolicy @@ -4359,24 +3963,16 @@ Identity - - Description - - - - Name - - - - EnableUserOverride + + DisableCallsAndMeetings - - ServiceNumber + + DisableAudioVideoInCallsAndMeetings - - CallerIDSubstitute + + VDI2Optimization @@ -4384,9 +3980,9 @@ - CallingLineIdentityView + TeamsVerticalPackagePolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.CallingLineIdentity + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsVerticalPackagePolicy @@ -4398,32 +3994,43 @@ Identity - - Description - - - - EnableUserOverride + + PackageIncludedPolices - - ServiceNumber + + Description - - CallingIDSubstitute + + PackageId - - BlockIncomingPstnCallerID + + FirstRunExperienceId + + + + + + + PolicyTypeToPolicyInstanceView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PolicyTypeToPolicyInstance + + + + + + - - ResourceAccount + + PolicyType - - CompanyName + + PolicyName @@ -4431,9 +4038,9 @@ - NgcBvMigrationPolicyView + TeamsVideoInteropServicePolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.NgcBvMigrationPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsVideoInteropServicePolicy @@ -4449,8 +4056,12 @@ Description - - PstnOut + + ProviderName + + + + Enabled @@ -4458,9 +4069,9 @@ - TestConfigurationView + TeamsVoiceApplicationsPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TestConfiguration + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsVoiceApplicationsPolicy @@ -4472,32 +4083,140 @@ Identity - - Name + + Description - - DialedNumber + + AllowAutoAttendantBusinessHoursGreetingChange + + + + AllowAutoAttendantAfterHoursGreetingChange + + + + AllowAutoAttendantHolidayGreetingChange + + + + AllowAutoAttendantBusinessHoursChange + + + + AllowAutoAttendantTimeZoneChange + + + + AllowAutoAttendantLanguageChange + + + + AllowAutoAttendantHolidaysChange + + + + AllowAutoAttendantBusinessHoursRoutingChange + + + + AllowAutoAttendantAfterHoursRoutingChange + + + + AllowAutoAttendantHolidayRoutingChange + + + + AllowCallQueueWelcomeGreetingChange + + + + AllowCallQueueMusicOnHoldChange + + + + AllowCallQueueOverflowSharedVoicemailGreetingChange + + + + AllowCallQueueTimeoutSharedVoicemailGreetingChange + + + + AllowCallQueueOptOutChange + + + + AllowCallQueueAgentOptChange + + + + AllowCallQueueMembershipChange + + + + AllowCallQueueRoutingMethodChange + + + + AllowCallQueuePresenceBasedRoutingChange + + + + CallQueueAgentMonitorMode + + + + CallQueueAgentMonitorNotificationMode + + + + AllowCallQueueLanguageChange + + + + AllowCallQueueOverflowRoutingChange + + + + AllowCallQueueTimeoutRoutingChange + + + + AllowCallQueueNoAgentsRoutingChange + + + + AllowCallQueueConferenceModeChange + + + + AllowCallQueueNoAgentSharedVoicemailGreetingChange + + + + RealTimeAutoAttendantMetricsPermission - - TargetDialplan + + RealTimeCallQueueMetricsPermission - - TargetVoicePolicy + + RealTimeAgentMetricsPermission - - ExpectedTranslatedNumber + + HistoricalAutoAttendantMetricsPermission - - ExpectedUsage + + HistoricalCallQueueMetricsPermission - - ExpectedRoute + + HistoricalAgentMetricsPermission @@ -4505,9 +4224,9 @@ - VoiceConfigurationView + TeamsWatermarkPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoiceConfiguration + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsWatermarkPolicy @@ -4519,8 +4238,16 @@ Identity - - VoiceTestConfigurations + + AllowForScreenSharing + + + + AllowForCameraVideo + + + + Description @@ -4528,9 +4255,9 @@ - UcPhoneSettingsView + TeamsWorkLoadPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.UcPhoneSettings + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsWorkLoadPolicy @@ -4542,36 +4269,32 @@ Identity - - CalendarPollInterval - - - - EnforcePhoneLock + + Description - - PhoneLockTimeout + + AllowMeeting - - MinPhonePinLength + + AllowMeetingPinned - - SIPSecurityMode + + AllowMessaging - - VoiceDiffServTag + + AllowMessagingPinned - - Voice8021p + + AllowCalling - - LoggingLevel + + AllowCallingPinned @@ -4579,9 +4302,9 @@ - HostedVoicemailPolicyView + TenantBlockedCallingNumbersView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.HostedVoicemailPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantBlockedCallingNumbers @@ -4593,24 +4316,20 @@ Identity - - Description - - - - Destination + + InboundBlockedNumberPatterns - - Organization + + InboundExemptNumberPatterns - - BusinessVoiceEnabled + + Enabled - - NgcEnabled + + Name @@ -4618,9 +4337,9 @@ - VoiceRoutingPolicyView + InboundBlockedNumberPatternView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoiceRoutingPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.InboundBlockedNumberPattern @@ -4631,25 +4350,21 @@ Identity - - - PstnUsages - - - - Description - Name - - AllowInternationalCalls + + Enabled - - HybridPSTNSiteIndex + + Description + + + + Pattern @@ -4657,9 +4372,9 @@ - OnlineVoiceRoutingPolicyView + InboundExemptNumberPatternView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoiceRoutingPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.InboundExemptNumberPattern @@ -4671,16 +4386,20 @@ Identity - - OnlinePstnUsages + + Name + + + + Enabled Description - - RouteType + + Pattern @@ -4688,9 +4407,9 @@ - OnlineAudioConferencingRoutingPolicyView + TenantDialPlanView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineAudioConferencingRoutingPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantDialPlan @@ -4701,17 +4420,25 @@ Identity - - - OnlinePstnUsages - Description - - RouteType + + NormalizationRules + + + + ExternalAccessPrefix + + + + SimpleName + + + + OptimizeDeviceDialing @@ -4719,9 +4446,9 @@ - SurvivableBranchApplianceView + VoicePolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.SurvivableBranchAppliance + Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicePolicy @@ -4733,47 +4460,92 @@ Identity - - Fqdn + + PstnUsages - - Site + + CustomCallForwardingSimulRingUsages Description - - - - - - - TeamsSharedCallingRoutingPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSharedCallingRoutingPolicy - - - - - - - - Identity + + AllowSimulRing - - EmergencyNumbers + + AllowCallForwarding + + + + AllowPSTNReRouting + + + + Name + + + + EnableDelegation + + + + EnableTeamCall + + + + EnableCallTransfer + + + + EnableCallPark + + + + EnableBusyOptions + + + + EnableMaliciousCallTracing + + + + EnableBWPolicyOverride + + + + PreventPSTNTollBypass + + + + EnableFMC + + + + CallForwardingSimulRingUsageType + + + + VoiceDeploymentMode + + + + EnableVoicemailEscapeTimer + + + + PSTNVoicemailEscapeTimer - - ResourceAccount + + TenantAdminEnabled - - Description + + BusinessVoiceEnabled @@ -4781,9 +4553,9 @@ - TeamsBranchSurvivabilityPolicyView + VoiceRoutingPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsBranchSurvivabilityPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoiceRoutingPolicy @@ -4795,8 +4567,24 @@ Identity - - BranchApplianceFqdns + + PstnUsages + + + + Description + + + + Name + + + + AllowInternationalCalls + + + + HybridPSTNSiteIndex @@ -4821,17 +4609,21 @@ AllowedAcsResources - - - BlockedAcsResources - EnableAcsUsers - - AllowAllAcsResources + + RequireAcsFederationForMeeting + + + + LabelForAllowedAcsUsers + + + + HideBannerForAllowedAcsUsers @@ -5001,10 +4793,6 @@ AllowFederatedUsers - - - AllowPublicUsers - AllowTeamsSms @@ -5038,8 +4826,8 @@ ExternalAccessWithTrialTenants - - CustomizeFederation + + DomainBlockingForMDOAdminsInTeams @@ -6057,6 +5845,10 @@ AllowUserDeleteMessage + + + UsersCanDeleteBotMessages + AllowUserDeleteChat @@ -6123,6 +5915,14 @@ AllowTranscription + + + + AllowParticipantGiveRequestControl + + + + AllowExternalParticipantGiveRequestControl @@ -6425,6 +6225,14 @@ UrlReputationCheck + + + + ContentBasedPhishingCheck + + + + ReportIncorrectSecurityDetections @@ -6489,6 +6297,95 @@ + + TeamsRemoteLogCollectionConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRemoteLogCollectionConfiguration + + + + + + + + + Identity + + + + Devices + + + + + + + + TeamsRemoteLogCollectionDeviceView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRemoteLogCollectionDevice + + + + + + + + + Identity + + + + Id + + + + DeviceId + + + + ExpireAfter + + + + UserId + + + + + + + + SurvivableBranchApplianceView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.SurvivableBranchAppliance + + + + + + + + + Identity + + + + Fqdn + + + + Site + + + + Description + + + + + + TeamsTenantAbuseConfigurationView @@ -6848,6 +6745,57 @@ + + UcPhoneSettingsView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.UcPhoneSettings + + + + + + + + + Identity + + + + CalendarPollInterval + + + + EnforcePhoneLock + + + + PhoneLockTimeout + + + + MinPhonePinLength + + + + SIPSecurityMode + + + + VoiceDiffServTag + + + + Voice8021p + + + + LoggingLevel + + + + + + UnassignedNumberTreatmentView @@ -7425,225 +7373,294 @@ + + TestConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TestConfiguration + + + + + + + + + Identity + + + + Name + + + + DialedNumber + + + + TargetDialplan + + + + TargetVoicePolicy + + + + ExpectedTranslatedNumber + + + + ExpectedUsage + + + + ExpectedRoute + + + + + + + + VoiceConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoiceConfiguration + + + + + + + + + Identity + + + + VoiceTestConfigurations + + + + + + - + - - - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1 new file mode 100644 index 000000000000..47d429e8c11d --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1 @@ -0,0 +1,579 @@ +# +# Module manifest for module 'Microsoft.Teams.Policy.Administration.Core' +# + +@{ +# Script module or binary module file associated with this manifest. +RootModule = './Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1' + +# Version number of this module. +ModuleVersion = '21.4.4' + +# Supported PSEditions +CompatiblePSEditions = 'Core', 'Desktop' + +# ID used to uniquely identify this module +GUID = '048c99d9-471a-4935-a810-542687c5f950' + +# Author of this module +Author = 'Microsoft Corporation' + +# Company or vendor of this module +CompanyName = 'Microsoft Corporation' + +# Copyright statement for this module +Copyright = 'Microsoft Corporation. All rights reserved.' + +# Description of the functionality provided by this module +Description = 'Microsoft Teams OCE cmdlets module for Policy Administration' + +# Minimum version of the Windows PowerShell engine required by this module +PowerShellVersion = '5.1' + +# Name of the Windows PowerShell host required by this module +# PowerShellHostName = '' + +# Minimum version of the Windows PowerShell host required by this module +# PowerShellHostVersion = '' + +# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +DotNetFrameworkVersion = '4.7.2' + +# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +CLRVersion = '4.0' + +# Processor architecture (None, X86, Amd64) required by this module +# ProcessorArchitecture = 'Amd64' + +# Modules that must be imported into the global environment prior to importing this module +# RequiredModules = @() + +# Assemblies that must be loaded prior to importing this module +# RequiredAssemblies = @() + +# Script files (.ps1) that are run in the caller's environment prior to importing this module. +# Removed this script from here because this module is used in SAW machines as well where Contraint Language Mode is on. +# Because of CLM constraint we were not able to import Teams module to SAW machines, that is why removing this script. +# ScriptsToProcess = @() + +# Type files (.ps1xml) to be loaded when importing this module +# TypesToProcess = @() + +# Format files (.ps1xml) to be loaded when importing this module +FormatsToProcess = @() + +# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess +NestedModules = @() + +# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. +FunctionsToExport = '*' + +# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. +CmdletsToExport = @( + 'New-CsTeamsAppSetupPolicy', + 'Get-CsTeamsAppSetupPolicy', + 'Remove-CsTeamsAppSetupPolicy', + 'Set-CsTeamsAppSetupPolicy', + 'Grant-CsTeamsAppSetupPolicy', + + + 'New-CsTeamsAppPermissionPolicy', + 'Get-CsTeamsAppPermissionPolicy', + 'Remove-CsTeamsAppPermissionPolicy', + 'Set-CsTeamsAppPermissionPolicy', + 'Grant-CsTeamsAppPermissionPolicy', + + 'New-CsTeamsMessagingPolicy', + 'Set-CsTeamsMessagingPolicy', + 'Get-CsTeamsMessagingPolicy', + 'Remove-CsTeamsMessagingPolicy', + + 'New-CsTeamsChannelsPolicy', + 'Get-CsTeamsChannelsPolicy', + 'Remove-CsTeamsChannelsPolicy', + 'Set-CsTeamsChannelsPolicy', + + 'New-CsTeamsUpdateManagementPolicy', + 'Get-CsTeamsUpdateManagementPolicy', + 'Remove-CsTeamsUpdateManagementPolicy', + 'Set-CsTeamsUpdateManagementPolicy', + + 'Get-CsTeamsUpgradeConfiguration', + 'Set-CsTeamsUpgradeConfiguration', + + 'New-CsTeamsMeetingPolicy', + 'Get-CsTeamsMeetingPolicy', + 'Remove-CsTeamsMeetingPolicy', + 'Set-CsTeamsMeetingPolicy', + + 'Get-CsOnlineVoicemailPolicy', + 'New-CsOnlineVoicemailPolicy', + 'Remove-CsOnlineVoicemailPolicy', + 'Set-CsOnlineVoicemailPolicy', + + 'Get-CsOnlineVoicemailValidationConfiguration', + 'Set-CsOnlineVoicemailValidationConfiguration', + + 'New-CsTeamsFeedbackPolicy', + 'Get-CsTeamsFeedbackPolicy', + 'Remove-CsTeamsFeedbackPolicy', + 'Set-CsTeamsFeedbackPolicy', + + 'New-CsTeamsMeetingBrandingPolicy', + 'Get-CsTeamsMeetingBrandingPolicy', + 'Remove-CsTeamsMeetingBrandingPolicy', + 'Set-CsTeamsMeetingBrandingPolicy', + 'Grant-CsTeamsMeetingBrandingPolicy' + + 'New-CsTeamsMeetingBrandingTheme', + 'New-CsTeamsMeetingBackgroundImage', + 'New-CsTeamsNdiAssuranceSlate', + + 'New-CsTeamsEmergencyCallingPolicy', + 'Get-CsTeamsEmergencyCallingPolicy', + 'Remove-CsTeamsEmergencyCallingPolicy', + 'Set-CsTeamsEmergencyCallingPolicy', + 'New-CsTeamsEmergencyCallingExtendedNotification', + + 'New-CsTeamsCallHoldPolicy', + 'Get-CsTeamsCallHoldPolicy', + 'Remove-CsTeamsCallHoldPolicy', + 'Set-CsTeamsCallHoldPolicy', + + 'Get-CsOnlineVoicemailValidationConfiguration', + 'Set-CsOnlineVoicemailValidationConfiguration', + 'Get-CsTeamsMessagingConfiguration', + 'Set-CsTeamsMessagingConfiguration', + + 'New-CsTeamsVoiceApplicationsPolicy', + 'Get-CsTeamsVoiceApplicationsPolicy', + 'Remove-CsTeamsVoiceApplicationsPolicy', + 'Set-CsTeamsVoiceApplicationsPolicy', + + 'New-CsTeamsHiddenMeetingTemplate', + + 'New-CsTeamsMeetingTemplatePermissionPolicy', + 'Get-CsTeamsMeetingTemplatePermissionPolicy', + 'Set-CsTeamsMeetingTemplatePermissionPolicy', + 'Remove-CsTeamsMeetingTemplatePermissionPolicy', + 'Grant-CsTeamsMeetingTemplatePermissionPolicy', + + "Get-CsTeamsAudioConferencingCustomPromptsConfiguration", + "Set-CsTeamsAudioConferencingCustomPromptsConfiguration", + "New-CsCustomPrompt", + "New-CsCustomPromptPackage", + + 'Get-CsTeamsMeetingTemplateConfiguration', + 'Get-CsTeamsFirstPartyMeetingTemplateConfiguration', + + 'New-CsTeamsEventsPolicy', + 'Get-CsTeamsEventsPolicy', + 'Remove-CsTeamsEventsPolicy', + 'Set-CsTeamsEventsPolicy', + 'Grant-CsTeamsEventsPolicy', + + 'New-CsTeamsCallingPolicy', + 'Get-CsTeamsCallingPolicy', + 'Remove-CsTeamsCallingPolicy', + 'Set-CsTeamsCallingPolicy', + 'Grant-CsTeamsCallingPolicy', + + 'New-CsTeamsPersonalAttendantPolicy', + 'Get-CsTeamsPersonalAttendantPolicy', + 'Remove-CsTeamsPersonalAttendantPolicy', + 'Set-CsTeamsPersonalAttendantPolicy', + 'Grant-CsTeamsPersonalAttendantPolicy', + + 'New-CsExternalAccessPolicy', + 'Get-CsExternalAccessPolicy', + 'Remove-CsExternalAccessPolicy', + 'Set-CsExternalAccessPolicy', + 'Grant-CsExternalAccessPolicy', + + 'Get-CsTeamsMultiTenantOrganizationConfiguration', + 'Set-CsTeamsMultiTenantOrganizationConfiguration', + + 'New-CsLocationPolicy', + 'Get-CsLocationPolicy', + 'Remove-CsLocationPolicy', + 'Set-CsLocationPolicy', + + 'New-CsTeamsCarrierEmergencyCallRoutingPolicy', + 'Get-CsTeamsCarrierEmergencyCallRoutingPolicy', + 'Remove-CsTeamsCarrierEmergencyCallRoutingPolicy', + 'Set-CsTeamsCarrierEmergencyCallRoutingPolicy', + 'Grant-CsTeamsCarrierEmergencyCallRoutingPolicy', + + 'Get-CsTenantConfiguration', + 'Set-CsTenantConfiguration', + + 'Get-CsTenantNetworkSite', + + 'New-CsTeamsShiftsPolicy', + 'Get-CsTeamsShiftsPolicy', + 'Remove-CsTeamsShiftsPolicy', + 'Set-CsTeamsShiftsPolicy', + 'Grant-CsTeamsShiftsPolicy', + + 'New-CsTeamsHiddenTemplate', + + 'New-CsTeamsTemplatePermissionPolicy', + 'Get-CsTeamsTemplatePermissionPolicy', + 'Remove-CsTeamsTemplatePermissionPolicy', + 'Set-CsTeamsTemplatePermissionPolicy', + + 'Get-CsTeamsAppPolicyConfiguration', + 'Set-CsTeamsAppPolicyConfiguration', + + 'Get-CsTeamsSipDevicesConfiguration', + 'Set-CsTeamsSipDevicesConfiguration', + + 'New-CsTeamsVirtualAppointmentsPolicy', + 'Get-CsTeamsVirtualAppointmentsPolicy', + 'Remove-CsTeamsVirtualAppointmentsPolicy', + 'Set-CsTeamsVirtualAppointmentsPolicy', + 'Grant-CsTeamsVirtualAppointmentsPolicy', + + 'New-CsTeamsComplianceRecordingPolicy', + 'Get-CsTeamsComplianceRecordingPolicy', + 'Remove-CsTeamsComplianceRecordingPolicy', + 'Set-CsTeamsComplianceRecordingPolicy', + + 'New-CsTeamsComplianceRecordingApplication', + 'Get-CsTeamsComplianceRecordingApplication', + 'Remove-CsTeamsComplianceRecordingApplication', + 'Set-CsTeamsComplianceRecordingApplication', + + 'New-CsTeamsComplianceRecordingPairedApplication', + + 'New-CsTeamsSharedCallingRoutingPolicy', + 'Get-CsTeamsSharedCallingRoutingPolicy', + 'Remove-CsTeamsSharedCallingRoutingPolicy', + 'Set-CsTeamsSharedCallingRoutingPolicy', + 'Grant-CsTeamsSharedCallingRoutingPolicy', + + 'New-CsTeamsVdiPolicy', + 'Get-CsTeamsVdiPolicy', + 'Remove-CsTeamsVdiPolicy', + 'Set-CsTeamsVdiPolicy', + 'Grant-CsTeamsVdiPolicy', + + 'Get-CsTeamsMeetingConfiguration', + 'Set-CsTeamsMeetingConfiguration', + + 'New-CsTeamsCustomBannerText', + 'Get-CsTeamsCustomBannerText', + 'Set-CsTeamsCustomBannerText', + 'Remove-CsTeamsCustomBannerText', + + 'Get-CsTeamsEducationConfiguration', + 'Set-CsTeamsEducationConfiguration', + + 'New-CsTeamsWorkLocationDetectionPolicy', + 'Get-CsTeamsWorkLocationDetectionPolicy', + 'Remove-CsTeamsWorkLocationDetectionPolicy', + 'Set-CsTeamsWorkLocationDetectionPolicy', + 'Grant-CsTeamsWorkLocationDetectionPolicy', + + 'New-CsTeamsMediaConnectivityPolicy', + 'Get-CsTeamsMediaConnectivityPolicy', + 'Remove-CsTeamsMediaConnectivityPolicy', + 'Set-CsTeamsMediaConnectivityPolicy', + 'Grant-CsTeamsMediaConnectivityPolicy', + + 'New-CsTeamsRecordingRollOutPolicy', + 'Get-CsTeamsRecordingRollOutPolicy', + 'Remove-CsTeamsRecordingRollOutPolicy', + 'Set-CsTeamsRecordingRollOutPolicy', + 'Grant-CsTeamsRecordingRollOutPolicy', + + 'New-CsTeamsFilesPolicy', + 'Get-CsTeamsFilesPolicy', + 'Remove-CsTeamsFilesPolicy', + 'Set-CsTeamsFilesPolicy', + 'Grant-CsTeamsFilesPolicy', + + 'Get-CsTeamsExternalAccessConfiguration', + 'Set-CsTeamsExternalAccessConfiguration', + + 'New-CsConversationRole', + 'Remove-CsConversationRole', + 'Get-CsConversationRole', + 'Set-CsConversationRole', + + 'Get-CsConversationRolesSetting', + 'Set-CsConversationRolesSetting', + + 'Get-CsTeamsAIPolicy', + 'Set-CsTeamsAIPolicy', + 'New-CsTeamsAIPolicy', + 'Remove-CsTeamsAIPolicy', + 'Grant-CsTeamsAIPolicy', + + 'New-CsTeamsBYODAndDesksPolicy', + 'Get-CsTeamsBYODAndDesksPolicy', + 'Remove-CsTeamsBYODAndDesksPolicy', + 'Set-CsTeamsBYODAndDesksPolicy', + 'Grant-CsTeamsBYODAndDesksPolicy', + + 'Get-CsTeamsTenantAbuseConfiguration', + 'Set-CsTeamsTenantAbuseConfiguration', + + 'Get-CsTeamsEducationAssignmentsAppPolicy', + 'Set-CsTeamsEducationAssignmentsAppPolicy', + + 'Get-CsPrivacyConfiguration', + 'Set-CsPrivacyConfiguration', + + 'Get-CsTeamsNotificationAndFeedsPolicy', + 'Set-CsTeamsNotificationAndFeedsPolicy', + 'Remove-CsTeamsNotificationAndFeedsPolicy' + + 'Get-CsTeamsClientConfiguration', + 'Set-CsTeamsClientConfiguration', + + 'Get-CsTeamsAcsFederationConfiguration', + 'Set-CsTeamsAcsFederationConfiguration' +) + +# Variables to export from this module +VariablesToExport = @() + +# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. +AliasesToExport = @() + +# DSC resources to export from this module +# DscResourcesToExport = @() + +# List of all modules packaged with this module +# ModuleList = @() + +# List of all files packaged with this module +# FileList = @() + +# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. +PrivateData = @{} + +# HelpInfo URI of this module +# HelpInfoURI = '' + +# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. +# DefaultCommandPrefix = '' +} +# SIG # Begin signature block +# MIIoRgYJKoZIhvcNAQcCoIIoNzCCKDMCAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDDXuHz1JaXPYkJ +# QDhNbRvXPHHPibt4v/Y646nlvU08sqCCDXYwggX0MIID3KADAgECAhMzAAAEhV6Z +# 7A5ZL83XAAAAAASFMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM3WhcNMjYwNjE3MTgyMTM3WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDASkh1cpvuUqfbqxele7LCSHEamVNBfFE4uY1FkGsAdUF/vnjpE1dnAD9vMOqy +# 5ZO49ILhP4jiP/P2Pn9ao+5TDtKmcQ+pZdzbG7t43yRXJC3nXvTGQroodPi9USQi +# 9rI+0gwuXRKBII7L+k3kMkKLmFrsWUjzgXVCLYa6ZH7BCALAcJWZTwWPoiT4HpqQ +# hJcYLB7pfetAVCeBEVZD8itKQ6QA5/LQR+9X6dlSj4Vxta4JnpxvgSrkjXCz+tlJ +# 67ABZ551lw23RWU1uyfgCfEFhBfiyPR2WSjskPl9ap6qrf8fNQ1sGYun2p4JdXxe +# UAKf1hVa/3TQXjvPTiRXCnJPAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUuCZyGiCuLYE0aU7j5TFqY05kko0w +# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW +# MBQGA1UEBRMNMjMwMDEyKzUwNTM1OTAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci +# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG +# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu +# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 +# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBACjmqAp2Ci4sTHZci+qk +# tEAKsFk5HNVGKyWR2rFGXsd7cggZ04H5U4SV0fAL6fOE9dLvt4I7HBHLhpGdE5Uj +# Ly4NxLTG2bDAkeAVmxmd2uKWVGKym1aarDxXfv3GCN4mRX+Pn4c+py3S/6Kkt5eS +# DAIIsrzKw3Kh2SW1hCwXX/k1v4b+NH1Fjl+i/xPJspXCFuZB4aC5FLT5fgbRKqns +# WeAdn8DsrYQhT3QXLt6Nv3/dMzv7G/Cdpbdcoul8FYl+t3dmXM+SIClC3l2ae0wO +# lNrQ42yQEycuPU5OoqLT85jsZ7+4CaScfFINlO7l7Y7r/xauqHbSPQ1r3oIC+e71 +# 5s2G3ClZa3y99aYx2lnXYe1srcrIx8NAXTViiypXVn9ZGmEkfNcfDiqGQwkml5z9 +# nm3pWiBZ69adaBBbAFEjyJG4y0a76bel/4sDCVvaZzLM3TFbxVO9BQrjZRtbJZbk +# C3XArpLqZSfx53SuYdddxPX8pvcqFuEu8wcUeD05t9xNbJ4TtdAECJlEi0vvBxlm +# M5tzFXy2qZeqPMXHSQYqPgZ9jvScZ6NwznFD0+33kbzyhOSz/WuGbAu4cHZG8gKn +# lQVT4uA2Diex9DMs2WHiokNknYlLoUeWXW1QrJLpqO82TLyKTbBM/oZHAdIc0kzo +# STro9b3+vjn2809D0+SOOCVZMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq +# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x +# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv +# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 +# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG +# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG +# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg +# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC +# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 +# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr +# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg +# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy +# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 +# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh +# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k +# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB +# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn +# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 +# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w +# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o +# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD +# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa +# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny +# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG +# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV +# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG +# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl +# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb +# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l +# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 +# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 +# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 +# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam +# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa +# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah +# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA +# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt +# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr +# /Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw +# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN +# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp +# Z25pbmcgUENBIDIwMTECEzMAAASFXpnsDlkvzdcAAAAABIUwDQYJYIZIAWUDBAIB +# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO +# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIBdiKccaQG4X/u061i5uhu0n +# Ywb27AT8bsv5He1eQ2r7MEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A +# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB +# BQAEggEAKuf/iSExCIw3oJlOtgwtA37Krdnwlp+UcXjIdx1TQwZylQYJqQVVQSqX +# F9TL1JkJLzxCJCAirAkdnbi9QFM9ta3LZWDeT7lJ+6wNwiHTnLh5b/GcOfA6ELiY +# oWDdRwxGtEnzUVm6AVKrJzy2dpE6j6gh+xfZfArdBH40PwwSu4nx4mNCLaiVA9KI +# UgjvhgPlBCC73fkpD+5HyYncGISj7cjFVw4rfUcVJyGUj1HkwTZ6QJHHUdS2rjaG +# 6OJpTMS2uVr/p9IxF33VpdFE8jGpTicuXUgShEqdDy0S0cmgVu3iGfxcYddbc0Gy +# DBcPBtTYmPXYAhQD81DlfcEK7KIogqGCF7AwghesBgorBgEEAYI3AwMBMYIXnDCC +# F5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsq +# hkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl +# AwQCAQUABCBhv5RIaqJJyUFCk1NBe+Z7LNL5oc9PS5qo577DdQkVNwIGaKOvjL6J +# GBMyMDI1MTAwMTA4MzMwMi40ODZaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJV +# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE +# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl +# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT +# TjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg +# U2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+R9njXWrpPGxAAEAAAH5MA0G +# CSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u +# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp +# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI0 +# MDcyNTE4MzEwOVoXDTI1MTAyMjE4MzEwOVowgdMxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9w +# ZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjJBMUEt +# MDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtD1MH3yAHWHNVslC+CBT +# j/Mpd55LDPtQrhN7WeqFhReC9xKXSjobW1ZHzHU8V2BOJUiYg7fDJ2AxGVGyovUt +# gGZg2+GauFKk3ZjjsLSsqehYIsUQrgX+r/VATaW8/ONWy6lOyGZwZpxfV2EX4qAh +# 6mb2hadAuvdbRl1QK1tfBlR3fdeCBQG+ybz9JFZ45LN2ps8Nc1xr41N8Qi3KVJLY +# X0ibEbAkksR4bbszCzvY+vdSrjWyKAjR6YgYhaBaDxE2KDJ2sQRFFF/egCxKgogd +# F3VIJoCE/Wuy9MuEgypea1Hei7lFGvdLQZH5Jo2QR5uN8hiMc8Z47RRJuIWCOeyI +# J1YnRiiibpUZ72+wpv8LTov0yH6C5HR/D8+AT4vqtP57ITXsD9DPOob8tjtsefPc +# QJebUNiqyfyTL5j5/J+2d+GPCcXEYoeWZ+nrsZSfrd5DHM4ovCmD3lifgYnzjOry +# 4ghQT/cvmdHwFr6yJGphW/HG8GQd+cB4w7wGpOhHVJby44kGVK8MzY9s32Dy1THn +# Jg8p7y1sEGz/A1y84Zt6gIsITYaccHhBKp4cOVNrfoRVUx2G/0Tr7Dk3fpCU8u+5 +# olqPPwKgZs57jl+lOrRVsX1AYEmAnyCyGrqRAzpGXyk1HvNIBpSNNuTBQk7FBvu+ +# Ypi6A7S2V2Tj6lzYWVBvuGECAwEAAaOCAUkwggFFMB0GA1UdDgQWBBSJ7aO6nJXJ +# I9eijzS5QkR2RlngADAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBf +# BgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmww +# bAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29m +# dC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0El +# MjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUF +# BwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEAZiAJgFbkf7jf +# hx/mmZlnGZrpae+HGpxWxs8I79vUb8GQou50M1ns7iwG2CcdoXaq7VgpVkNf1uvI +# hrGYpKCBXQ+SaJ2O0BvwuJR7UsgTaKN0j/yf3fpHD0ktH+EkEuGXs9DBLyt71iut +# Vkwow9iQmSk4oIK8S8ArNGpSOzeuu9TdJjBjsasmuJ+2q5TjmrgEKyPe3TApAio8 +# cdw/b1cBAmjtI7tpNYV5PyRI3K1NhuDgfEj5kynGF/uizP1NuHSxF/V1ks/2tCEo +# riicM4k1PJTTA0TCjNbkpmBcsAMlxTzBnWsqnBCt9d+Ud9Va3Iw9Bs4ccrkgBjLt +# g3vYGYar615ofYtU+dup+LuU0d2wBDEG1nhSWHaO+u2y6Si3AaNINt/pOMKU6l4A +# W0uDWUH39OHH3EqFHtTssZXaDOjtyRgbqMGmkf8KI3qIVBZJ2XQpnhEuRbh+Agpm +# Rn/a410Dk7VtPg2uC422WLC8H8IVk/FeoiSS4vFodhncFetJ0ZK36wxAa3FiPgBe +# bRWyVtZ763qDDzxDb0mB6HL9HEfTbN+4oHCkZa1HKl8B0s8RiFBMf/W7+O7EPZ+w +# MH8wdkjZ7SbsddtdRgRARqR8IFPWurQ+sn7ftEifaojzuCEahSAcq86yjwQeTPN9 +# YG9b34RTurnkpD+wPGTB1WccMpsLlM0wggdxMIIFWaADAgECAhMzAAAAFcXna54C +# m0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UE +# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z +# b2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp +# Y2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMy +# MjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH +# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV +# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0B +# AQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51 +# yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY +# 6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9 +# cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN +# 7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDua +# Rr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74 +# kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2 +# K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5 +# TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZk +# i1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9Q +# BXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3Pmri +# Lq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUC +# BBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJl +# pxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIB +# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9y +# eS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUA +# YgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU +# 1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2Ny +# bC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIw +# MTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0w +# Ni0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/yp +# b+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulm +# ZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM +# 9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECW +# OKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4 +# FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3Uw +# xTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPX +# fx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVX +# VAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGC +# onsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU +# 5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEG +# ahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJV +# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE +# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl +# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT +# TjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg +# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUAqs5WjWO7zVAKmIcdwhqgZvyp6UaggYMw +# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD +# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsF +# AAIFAOyG2lkwIhgPMjAyNTA5MzAyMjM4MTdaGA8yMDI1MTAwMTIyMzgxN1owdzA9 +# BgorBgEEAYRZCgQBMS8wLTAKAgUA7IbaWQIBADAKAgEAAgInWgIB/zAHAgEAAgIS +# RDAKAgUA7Igr2QIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAow +# CAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQA0HygGCzYY +# EljnRjZKmlyq8BlFLyeDqjIsf+eW9udW0nwpYvks0ztwxcaklxi1JIufA2sghpxf +# O1DRxR/rkZvRt0N4b6+meKsltQSnJyY6A7LOg169vl4Ih4F80N3N244nRix969BP +# nYvMd94lXyhwLRk0vygjWuhF5VJIn+oJQ89bR2Qr+k1cEzI5Hypvq/WH0ZzZF7BS +# Pu2zhWTJrNuAefu02ATEKZh8YydBYJdQ9qT2SjXDDQoXxW6kWpyX51pxERwDxHfe +# YKGyp3xuGmIOtBT8jFD/bzNCUIAxAKYmggqdJI1IoRQOhyj/efZBnp2gn+TMH95Q +# 84INFZ6tWtSWMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT +# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m +# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB +# IDIwMTACEzMAAAH5H2eNdauk8bEAAQAAAfkwDQYJYIZIAWUDBAIBBQCgggFKMBoG +# CSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgdt9mntJj +# RBBWyP56rXOrvH2NmW5HQz5/jRtbgga5YPUwgfoGCyqGSIb3DQEJEAIvMYHqMIHn +# MIHkMIG9BCA5I4zIHvCN+2T66RUOLCZrUEVdoKlKl8VeCO5SbGLYEDCBmDCBgKR+ +# MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS +# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMT +# HU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB+R9njXWrpPGxAAEA +# AAH5MCIEIImoK59ZPcOXI5dNWhrN9BtaZ8YzydRxG6OcpV+4JnCfMA0GCSqGSIb3 +# DQEBCwUABIICAFjI+sbIrIaktP9RfROriM1eSOHmoZ05V5eKCM48uBgqw1KEomYa +# d2cgcf0RVoKwNEl4X5t+DCIdzNFL30Hfw9WvPkcBuoiEisCL7edhiENRVEGYEqXg +# ACQj64vM7zwyP4IHiPJZmsp6QCzO2kMbzyBNUkR86nW76L/6D3WhAmdTkdZDaPSJ +# MR7ZSIQnM3UowGho2xJbb75nslbQuxFyafeePjS82nT5NIjXuMJZ/SBD95oXBG3U +# AGL8hMe5S5gL1+xlrQm88LBKj3GMUUNotJGHjpxbIeInCZDi63LPwp/AY/w2UOtN +# MbJXwZaiSglyHxzXD8fD3gewJElRz7oxwmw6n8hEEtyTwiC1npgOJIb03Ha1ziDs +# 0rKGbrWKPgs27vcI3QFnMhWVYx2M5SywMy5DBLGttnS0ZA0xfHHo9abRAw/oZ0X9 +# mCub1465EFSW6l5ZxqGRfIDW0p9U5jKLeF9x4OP7vtMeaRz5/FlpC7cHhrJmD3uh +# xH5CZCK8p5/Rb7kD1kzf166XIB5Xt0Jdd8x900lANSY7wDuSaVWk7iWTfrzzOLiD +# nnPBoOEsGJ1hEEZlPIisXL04A4mkVxzsx7Rod8J8IgDXw9Zl8yqOt2Xh8F5zbXfB +# Ch5Yj/mLAW1CeMCNaTZHUKfmj54J+lnHmC7vXXiuVz/sdC71uegGlaMF +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1 new file mode 100644 index 000000000000..3e77a59da4b9 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1 @@ -0,0 +1,536 @@ +# +# Module manifest for module 'Microsoft.Teams.Policy.Administration.Core' +# + +@{ +# Script module or binary module file associated with this manifest. +RootModule = './Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1' + +# Version number of this module. +ModuleVersion = '21.4.4' + +# Supported PSEditions +CompatiblePSEditions = 'Core', 'Desktop' + +# ID used to uniquely identify this module +GUID = '048c99d9-471a-4935-a810-542687c5f950' + +# Author of this module +Author = 'Microsoft Corporation' + +# Company or vendor of this module +CompanyName = 'Microsoft Corporation' + +# Copyright statement for this module +Copyright = 'Microsoft Corporation. All rights reserved.' + +# Description of the functionality provided by this module +Description = 'Microsoft Teams preview cmdlets module for Policy Administration' + +# Minimum version of the Windows PowerShell engine required by this module +PowerShellVersion = '5.1' + +# Name of the Windows PowerShell host required by this module +# PowerShellHostName = '' + +# Minimum version of the Windows PowerShell host required by this module +# PowerShellHostVersion = '' + +# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +DotNetFrameworkVersion = '4.7.2' + +# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +CLRVersion = '4.0' + +# Processor architecture (None, X86, Amd64) required by this module +# ProcessorArchitecture = 'Amd64' + +# Modules that must be imported into the global environment prior to importing this module +# RequiredModules = @() + +# Assemblies that must be loaded prior to importing this module +# RequiredAssemblies = @() + +# Script files (.ps1) that are run in the caller's environment prior to importing this module. +# Removed this script from here because this module is used in SAW machines as well where Contraint Language Mode is on. +# Because of CLM constraint we were not able to import Teams module to SAW machines, that is why removing this script. +# ScriptsToProcess = @() + +# Type files (.ps1xml) to be loaded when importing this module +# TypesToProcess = @() + +# Format files (.ps1xml) to be loaded when importing this module +FormatsToProcess = @() + +# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess +NestedModules = @() + +# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. +FunctionsToExport = '*' + +# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. +CmdletsToExport = @( + 'New-CsTeamsAppSetupPolicy', + 'Get-CsTeamsAppSetupPolicy', + 'Remove-CsTeamsAppSetupPolicy', + 'Set-CsTeamsAppSetupPolicy', + 'Grant-CsTeamsAppSetupPolicy', + + 'New-CsTeamsAppPermissionPolicy', + 'Get-CsTeamsAppPermissionPolicy', + 'Remove-CsTeamsAppPermissionPolicy', + 'Set-CsTeamsAppPermissionPolicy', + 'Grant-CsTeamsAppPermissionPolicy', + + 'New-CsTeamsMessagingPolicy', + 'Get-CsTeamsMessagingPolicy', + 'Remove-CsTeamsMessagingPolicy', + 'Set-CsTeamsMessagingPolicy', + + 'New-CsTeamsChannelsPolicy', + 'Get-CsTeamsChannelsPolicy', + 'Remove-CsTeamsChannelsPolicy', + 'Set-CsTeamsChannelsPolicy', + + 'New-CsTeamsUpdateManagementPolicy', + 'Get-CsTeamsUpdateManagementPolicy', + 'Remove-CsTeamsUpdateManagementPolicy', + 'Set-CsTeamsUpdateManagementPolicy', + + 'Get-CsTeamsUpgradeConfiguration', + 'Set-CsTeamsUpgradeConfiguration', + + 'Get-CsTeamsSipDevicesConfiguration', + 'Set-CsTeamsSipDevicesConfiguration', + + 'New-CsTeamsMeetingPolicy', + 'Get-CsTeamsMeetingPolicy', + 'Remove-CsTeamsMeetingPolicy', + 'Set-CsTeamsMeetingPolicy', + + 'New-CsOnlineVoicemailPolicy', + 'Get-CsOnlineVoicemailPolicy', + 'Remove-CsOnlineVoicemailPolicy', + 'Set-CsOnlineVoicemailPolicy', + + 'New-CsTeamsFeedbackPolicy', + 'Get-CsTeamsFeedbackPolicy', + 'Remove-CsTeamsFeedbackPolicy', + 'Set-CsTeamsFeedbackPolicy', + + 'New-CsTeamsMeetingBrandingPolicy', + 'Get-CsTeamsMeetingBrandingPolicy', + 'Remove-CsTeamsMeetingBrandingPolicy', + 'Set-CsTeamsMeetingBrandingPolicy', + 'Grant-CsTeamsMeetingBrandingPolicy' + + 'New-CsTeamsMeetingBrandingTheme', + 'New-CsTeamsMeetingBackgroundImage', + 'New-CsTeamsNdiAssuranceSlate', + + 'New-CsTeamsEmergencyCallingPolicy', + 'Get-CsTeamsEmergencyCallingPolicy', + 'Remove-CsTeamsEmergencyCallingPolicy', + 'Set-CsTeamsEmergencyCallingPolicy', + 'New-CsTeamsEmergencyCallingExtendedNotification', + + 'New-CsTeamsCallHoldPolicy', + 'Get-CsTeamsCallHoldPolicy', + 'Remove-CsTeamsCallHoldPolicy', + 'Set-CsTeamsCallHoldPolicy', + + 'Get-CsTeamsMessagingConfiguration', + 'Set-CsTeamsMessagingConfiguration', + + 'New-CsTeamsVoiceApplicationsPolicy', + 'Get-CsTeamsVoiceApplicationsPolicy', + 'Remove-CsTeamsVoiceApplicationsPolicy', + 'Set-CsTeamsVoiceApplicationsPolicy', + + "Get-CsTeamsAudioConferencingCustomPromptsConfiguration", + "Set-CsTeamsAudioConferencingCustomPromptsConfiguration", + "New-CsCustomPrompt", + "New-CsCustomPromptPackage", + + 'New-CsTeamsEventsPolicy', + 'Get-CsTeamsEventsPolicy', + 'Remove-CsTeamsEventsPolicy', + 'Set-CsTeamsEventsPolicy', + 'Grant-CsTeamsEventsPolicy', + + 'New-CsTeamsCallingPolicy', + 'Get-CsTeamsCallingPolicy', + 'Remove-CsTeamsCallingPolicy', + 'Set-CsTeamsCallingPolicy', + 'Grant-CsTeamsCallingPolicy', + + 'New-CsTeamsPersonalAttendantPolicy', + 'Get-CsTeamsPersonalAttendantPolicy', + 'Remove-CsTeamsPersonalAttendantPolicy', + 'Set-CsTeamsPersonalAttendantPolicy', + 'Grant-CsTeamsPersonalAttendantPolicy', + + 'New-CsExternalAccessPolicy', + 'Get-CsExternalAccessPolicy', + 'Remove-CsExternalAccessPolicy', + 'Set-CsExternalAccessPolicy', + 'Grant-CsExternalAccessPolicy', + + 'Get-CsTeamsMultiTenantOrganizationConfiguration', + 'Set-CsTeamsMultiTenantOrganizationConfiguration', + + 'New-CsTeamsHiddenMeetingTemplate', + + 'New-CsTeamsMeetingTemplatePermissionPolicy', + 'Get-CsTeamsMeetingTemplatePermissionPolicy', + 'Set-CsTeamsMeetingTemplatePermissionPolicy', + 'Remove-CsTeamsMeetingTemplatePermissionPolicy', + 'Grant-CsTeamsMeetingTemplatePermissionPolicy', + + 'Get-CsTeamsMeetingTemplateConfiguration', + 'Get-CsTeamsFirstPartyMeetingTemplateConfiguration', + + 'Get-CsTenantNetworkSite', + + 'New-CsTeamsShiftsPolicy', + 'Get-CsTeamsShiftsPolicy', + 'Remove-CsTeamsShiftsPolicy', + 'Set-CsTeamsShiftsPolicy', + 'Grant-CsTeamsShiftsPolicy', + + 'New-CsTeamsHiddenTemplate', + + 'New-CsTeamsTemplatePermissionPolicy', + 'Get-CsTeamsTemplatePermissionPolicy', + 'Remove-CsTeamsTemplatePermissionPolicy', + 'Set-CsTeamsTemplatePermissionPolicy', + + 'New-CsTeamsVirtualAppointmentsPolicy', + 'Get-CsTeamsVirtualAppointmentsPolicy', + 'Remove-CsTeamsVirtualAppointmentsPolicy', + 'Set-CsTeamsVirtualAppointmentsPolicy', + 'Grant-CsTeamsVirtualAppointmentsPolicy', + + 'New-CsTeamsComplianceRecordingPolicy', + 'Get-CsTeamsComplianceRecordingPolicy', + 'Remove-CsTeamsComplianceRecordingPolicy', + 'Set-CsTeamsComplianceRecordingPolicy', + + 'New-CsTeamsComplianceRecordingApplication', + 'Get-CsTeamsComplianceRecordingApplication', + 'Remove-CsTeamsComplianceRecordingApplication', + 'Set-CsTeamsComplianceRecordingApplication', + + 'New-CsTeamsComplianceRecordingPairedApplication', + + 'New-CsTeamsSharedCallingRoutingPolicy', + 'Get-CsTeamsSharedCallingRoutingPolicy', + 'Remove-CsTeamsSharedCallingRoutingPolicy', + 'Set-CsTeamsSharedCallingRoutingPolicy', + 'Grant-CsTeamsSharedCallingRoutingPolicy', + + 'New-CsTeamsVdiPolicy', + 'Get-CsTeamsVdiPolicy', + 'Remove-CsTeamsVdiPolicy', + 'Set-CsTeamsVdiPolicy', + 'Grant-CsTeamsVdiPolicy', + + + 'Get-CsTeamsMeetingConfiguration', + 'Set-CsTeamsMeetingConfiguration', + + 'New-CsTeamsCustomBannerText', + 'Get-CsTeamsCustomBannerText', + 'Remove-CsTeamsCustomBannerText', + 'Set-CsTeamsCustomBannerText', + + 'New-CsTeamsWorkLocationDetectionPolicy', + 'Get-CsTeamsWorkLocationDetectionPolicy', + 'Remove-CsTeamsWorkLocationDetectionPolicy', + 'Set-CsTeamsWorkLocationDetectionPolicy', + 'Grant-CsTeamsWorkLocationDetectionPolicy', + + 'New-CsTeamsMediaConnectivityPolicy', + 'Get-CsTeamsMediaConnectivityPolicy', + 'Remove-CsTeamsMediaConnectivityPolicy', + 'Set-CsTeamsMediaConnectivityPolicy', + 'Grant-CsTeamsMediaConnectivityPolicy', + + 'New-CsTeamsRecordingRollOutPolicy', + 'Get-CsTeamsRecordingRollOutPolicy', + 'Remove-CsTeamsRecordingRollOutPolicy', + 'Set-CsTeamsRecordingRollOutPolicy', + 'Grant-CsTeamsRecordingRollOutPolicy', + + 'New-CsTeamsFilesPolicy', + 'Get-CsTeamsFilesPolicy', + 'Remove-CsTeamsFilesPolicy', + 'Set-CsTeamsFilesPolicy', + 'Grant-CsTeamsFilesPolicy', + + 'Get-CsTeamsExternalAccessConfiguration', + 'Set-CsTeamsExternalAccessConfiguration', + + 'New-CsConversationRole', + 'Remove-CsConversationRole', + 'Get-CsConversationRole', + 'Set-CsConversationRole', + + 'New-CsTeamsBYODAndDesksPolicy', + 'Get-CsTeamsBYODAndDesksPolicy', + 'Remove-CsTeamsBYODAndDesksPolicy', + 'Set-CsTeamsBYODAndDesksPolicy', + 'Grant-CsTeamsBYODAndDesksPolicy', + + 'Get-CsTeamsAIPolicy', + 'Set-CsTeamsAIPolicy', + 'New-CsTeamsAIPolicy', + 'Remove-CsTeamsAIPolicy', + 'Grant-CsTeamsAIPolicy', + + 'Get-CsTeamsClientConfiguration', + 'Set-CsTeamsClientConfiguration' +) + +# Variables to export from this module +VariablesToExport = @() + +# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. +AliasesToExport = @() + +# DSC resources to export from this module +# DscResourcesToExport = @() + +# List of all modules packaged with this module +# ModuleList = @() + +# List of all files packaged with this module +# FileList = @() + +# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. +PrivateData = @{} + +# HelpInfo URI of this module +# HelpInfoURI = '' + +# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. +# DefaultCommandPrefix = '' +} +# SIG # Begin signature block +# MIIoUgYJKoZIhvcNAQcCoIIoQzCCKD8CAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDZT140sYjdx0xT +# /LXVDzxAIHBwkBc+dXfdw3U0HvLrt6CCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIF51 +# 3pH+UdCT12R9jVwu74EHcpGG7d4aN3iDZEQNfgxdMEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEAH8BBNHdNNVbblxSN/8sHNWXySlnV3pbJtttx +# KRvxL5qNf3TKG03C0WvENi/BakEb8PHJ+RpprPLm5lP6tLN68DXwzifuLhRVM9Xi +# 9b3V+rac09dFPJV6X6e1CjhCKKMHscarPY/yH9dqFQfu28IDTDG5gW1xuTZTKgHx +# 0ubpBYhXGT78QKZsY9U/FG0gtqzWsaC9jPpL2V2xvboE4zwMcjqVb83MdOaBa/Hu +# vhAvvfvNEfPEpfhV7t4D14QAVuDtrftCMmlZ8l4Zh7bk6jpO9bsmJefXBTMex01z +# 3GUDadwSDgZBz5zZTIvy4pkWnlb6vUMlkB+AYgwreajt03Bv7aGCF60wghepBgor +# BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCDXvW2jxcaTJb5RlYetEjiJ1+8nVX5pUDvc +# Lr4K3Oa2YQIGaKOvGf91GBMyMDI1MTAwMTA4MzQwOS43NzRaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyRDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB/XP5 +# aFrNDGHtAAEAAAH9MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExNloXDTI1MTAyMjE4MzExNlowgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjJEMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# oWWs+D+Ou4JjYnRHRedu0MTFYzNJEVPnILzc02R3qbnujvhZgkhp+p/lymYLzkQy +# G2zpxYceTjIF7HiQWbt6FW3ARkBrthJUz05ZnKpcF31lpUEb8gUXiD2xIpo8YM+S +# D0S+hTP1TCA/we38yZ3BEtmZtcVnaLRp/Avsqg+5KI0Kw6TDJpKwTLl0VW0/23sK +# ikeWDSnHQeTprO0zIm/btagSYm3V/8zXlfxy7s/EVFdSglHGsUq8EZupUO8XbHzz +# 7tURyiD3kOxNnw5ox1eZX/c/XmW4H6b4yNmZF0wTZuw37yA1PJKOySSrXrWEh+H6 +# ++Wb6+1ltMCPoMJHUtPP3Cn0CNcNvrPyJtDacqjnITrLzrsHdOLqjsH229Zkvndk +# 0IqxBDZgMoY+Ef7ffFRP2pPkrF1F9IcBkYz8hL+QjX+u4y4Uqq4UtT7VRnsqvR/x +# /+QLE0pcSEh/XE1w1fcp6Jmq8RnHEXikycMLN/a/KYxpSP3FfFbLZuf+qIryFL0g +# EDytapGn1ONjVkiKpVP2uqVIYj4ViCjy5pLUceMeqiKgYqhpmUHCE2WssLLhdQBH +# dpl28+k+ZY6m4dPFnEoGcJHuMcIZnw4cOwixojROr+Nq71cJj7Q4L0XwPvuTHQt0 +# oH7RKMQgmsy7CVD7v55dOhdHXdYsyO69dAdK+nWlyYcCAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBTpDMXA4ZW8+yL2+3vA6RmU7oEKpDAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAY9hYX+T5AmCrYGaH96TdR5T52/PNOG7ySYeopv4flnDWQLhBlravAg+p +# jlNv5XSXZrKGv8e4s5dJ5WdhfC9ywFQq4TmXnUevPXtlubZk+02BXK6/23hM0TSK +# s2KlhYiqzbRe8QbMfKXEDtvMoHSZT7r+wI2IgjYQwka+3P9VXgERwu46/czz8IR/ +# Zq+vO5523Jld6ssVuzs9uwIrJhfcYBj50mXWRBcMhzajLjWDgcih0DuykPcBpoTL +# lOL8LpXooqnr+QLYE4BpUep3JySMYfPz2hfOL3g02WEfsOxp8ANbcdiqM31dm3vS +# heEkmjHA2zuM+Tgn4j5n+Any7IODYQkIrNVhLdML09eu1dIPhp24lFtnWTYNaFTO +# fMqFa3Ab8KDKicmp0AthRNZVg0BPAL58+B0UcoBGKzS9jscwOTu1JmNlisOKkVUV +# kSJ5Fo/ctfDSPdCTVaIXXF7l40k1cM/X2O0JdAS97T78lYjtw/PybuzX5shxBh/R +# qTPvCyAhIxBVKfN/hfs4CIoFaqWJ0r/8SB1CGsyyIcPfEgMo8ceq1w5Zo0JfnyFi +# 6Guo+z3LPFl/exQaRubErsAUTfyBY5/5liyvjAgyDYnEB8vHO7c7Fg2tGd5hGgYs +# +AOoWx24+XcyxpUkAajDhky9Dl+8JZTjts6BcT9sYTmOodk/SgIwggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyRDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAoj0WtVVQUNSK +# oqtrjinRAsBUdoOggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyG2eQwIhgPMjAyNTA5MzAyMjM2MjBaGA8yMDI1 +# MTAwMTIyMzYyMFowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA7IbZ5AIBADAHAgEA +# AgIgyTAHAgEAAgITKzAKAgUA7IgrZAIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor +# BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUA +# A4IBAQAmufR59ho6kKb6B6MxWsOHLIcIVkeFSze45Y0exPCewXA8iw/M8LFcBaeQ +# /Oobtf4rOQu4WfVKBaYxB8teo9PGRIhX5lIxnpnVlYgcoLGp1vRELlujDfuqEhkb +# sg/E2EumO3gWJIAG/EVhYLtA1Goo5JKff2mHi8hHixo0ujIH7ySMXPuHLVbzo6rE +# hYI0g8HFS4UsBgIy3v/KYO0JXiXLxtzi0Jhfhnqx1MM4RKvfttKMg/MzA/YkvssB +# SdevnKK72czbS6S+JlH+FF/5j5K+TS2xZrkptJFmH2oRtVep8mgEgbhKJEiERJeP +# EBqIWwTP4s08gtlCGMGQsLSkMh79MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC +# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV +# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp +# bWUtU3RhbXAgUENBIDIwMTACEzMAAAH9c/loWs0MYe0AAQAAAf0wDQYJYIZIAWUD +# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B +# CQQxIgQgzEidHs2UZH6bSpXLsyaY+KDuM3lniHsStSWhmgMVPrcwgfoGCyqGSIb3 +# DQEJEAIvMYHqMIHnMIHkMIG9BCCAKEgNyUowvIfx/eDfYSupHkeF1p6GFwjKBs8l +# RB4NRzCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u +# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp +# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB +# /XP5aFrNDGHtAAEAAAH9MCIEICOKE9Y+s7jpA8mr/KuDUPYVTcdXrhgkUSP/NDoK +# qskwMA0GCSqGSIb3DQEBCwUABIICAJLdXgOEzv43WFXih4PbVrXDZ6C4bv/7+pq0 +# zIXavVhkfixoeCEFixh6cJ6osaLXO4ZLyaDRVX2/nzysxMCarwP9AF1KAt2tmUP/ +# Ldlmu/Z8nvfG9Rx+wPKuXMYtNLfb3Uv0VN8nLICMuaR/J9ebYtOJXrN811qaHNNg +# R9GqIncW1p85rSKmD5+P8zKHvELQB3G/mwX3Wu8yw5GVWbBF+LM5R0Sv/T2nsVsV +# DT3ociqn+UN+E17v2pqUZ9AThTWitba76pyZ2vnvafDEmsKsF7dvgAbeZqTZVYgx +# GAfGI9Lp9Llx29m5mwZkzACbc21LOoM0FTEyRaHjLVmpBi6CQdxKaWRubgIVMbdg +# 1Fs/rdXDdENwvgFt4VVoj/CF8K3vFLgj8SbrZbl63+XMmHFxFlWVgOZiP9HlXUfp +# JVYMtxqc531URNDT6YN43qGiySCL6ErRGoVdH78IcN+kzR0jouKgqaS+7QZMi8wx +# Xnh6twFH4J8smVILUuD9S21wlgCxwVMVcg3x3K6xmOHD3IzERO2yvZoxnBgRzhlr +# wlD3jKON6cqYj4wvbIM3SXjfCNlH1zTgclv6lTDoouuOvxotZH3BJw50Yu5JxKud +# PJZQVglDBV2DefNdegyaas82XCxe1+ZWn1TBuEZM4NLxhAchdZL0RXPe8EV4mrfQ +# hFJJFhX4 +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1 new file mode 100644 index 000000000000..fbe62dc7b448 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1 @@ -0,0 +1,558 @@ +# +# Module manifest for module 'Microsoft.Teams.Policy.Administration.Core' +# + +@{ +# Script module or binary module file associated with this manifest. +RootModule = './Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1' + +# Version number of this module. +ModuleVersion = '21.4.4' + +# Supported PSEditions +CompatiblePSEditions = 'Core', 'Desktop' + +# ID used to uniquely identify this module +GUID = '048c99d9-471a-4935-a810-542687c5f950' + +# Author of this module +Author = 'Microsoft Corporation' + +# Company or vendor of this module +CompanyName = 'Microsoft Corporation' + +# Copyright statement for this module +Copyright = 'Microsoft Corporation. All rights reserved.' + +# Description of the functionality provided by this module +Description = 'Microsoft Teams cmdlets module for Policy Administration' + +# Minimum version of the Windows PowerShell engine required by this module +PowerShellVersion = '5.1' + +# Name of the Windows PowerShell host required by this module +# PowerShellHostName = '' + +# Minimum version of the Windows PowerShell host required by this module +# PowerShellHostVersion = '' + +# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +DotNetFrameworkVersion = '4.7.2' + +# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +CLRVersion = '4.0' + +# Processor architecture (None, X86, Amd64) required by this module +# ProcessorArchitecture = 'Amd64' + +# Modules that must be imported into the global environment prior to importing this module +# RequiredModules = @() + +# Assemblies that must be loaded prior to importing this module +# RequiredAssemblies = @() + +# Script files (.ps1) that are run in the caller's environment prior to importing this module. +# Removed this script from here because this module is used in SAW machines as well where Contraint Language Mode is on. +# Because of CLM constraint we were not able to import Teams module to SAW machines, that is why removing this script. +# ScriptsToProcess = @() + +# Type files (.ps1xml) to be loaded when importing this module +# TypesToProcess = @() + +# Format files (.ps1xml) to be loaded when importing this module +FormatsToProcess = @() + +# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess +NestedModules = @() + +# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. +FunctionsToExport = '*' + +# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. +CmdletsToExport = @( + 'New-CsTeamsAppSetupPolicy', + 'Get-CsTeamsAppSetupPolicy', + 'Remove-CsTeamsAppSetupPolicy', + 'Set-CsTeamsAppSetupPolicy', + 'Grant-CsTeamsAppSetupPolicy', + + 'New-CsTeamsAppPermissionPolicy', + 'Get-CsTeamsAppPermissionPolicy', + 'Remove-CsTeamsAppPermissionPolicy', + 'Set-CsTeamsAppPermissionPolicy', + 'Grant-CsTeamsAppPermissionPolicy', + + 'New-CsTeamsMessagingPolicy', + 'Get-CsTeamsMessagingPolicy', + 'Remove-CsTeamsMessagingPolicy', + 'Set-CsTeamsMessagingPolicy', + + 'New-CsTeamsChannelsPolicy', + 'Get-CsTeamsChannelsPolicy', + 'Remove-CsTeamsChannelsPolicy', + 'Set-CsTeamsChannelsPolicy', + + 'New-CsTeamsUpdateManagementPolicy', + 'Get-CsTeamsUpdateManagementPolicy', + 'Remove-CsTeamsUpdateManagementPolicy', + 'Set-CsTeamsUpdateManagementPolicy', + + 'Get-CsTeamsUpgradeConfiguration', + 'Set-CsTeamsUpgradeConfiguration', + + 'Get-CsTeamsSipDevicesConfiguration', + 'Set-CsTeamsSipDevicesConfiguration', + + 'New-CsTeamsMeetingPolicy', + 'Get-CsTeamsMeetingPolicy', + 'Remove-CsTeamsMeetingPolicy', + 'Set-CsTeamsMeetingPolicy', + + 'New-CsOnlineVoicemailPolicy', + 'Get-CsOnlineVoicemailPolicy', + 'Remove-CsOnlineVoicemailPolicy', + 'Set-CsOnlineVoicemailPolicy', + + 'New-CsTeamsFeedbackPolicy', + 'Get-CsTeamsFeedbackPolicy', + 'Remove-CsTeamsFeedbackPolicy', + 'Set-CsTeamsFeedbackPolicy', + + 'New-CsTeamsMeetingBrandingPolicy', + 'Get-CsTeamsMeetingBrandingPolicy', + 'Remove-CsTeamsMeetingBrandingPolicy', + 'Set-CsTeamsMeetingBrandingPolicy', + 'Grant-CsTeamsMeetingBrandingPolicy' + + 'New-CsTeamsMeetingBrandingTheme', + 'New-CsTeamsMeetingBackgroundImage', + 'New-CsTeamsNdiAssuranceSlate', + + 'New-CsTeamsEmergencyCallingPolicy', + 'Get-CsTeamsEmergencyCallingPolicy', + 'Remove-CsTeamsEmergencyCallingPolicy', + 'Set-CsTeamsEmergencyCallingPolicy', + 'New-CsTeamsEmergencyCallingExtendedNotification', + + 'New-CsTeamsCallHoldPolicy', + 'Get-CsTeamsCallHoldPolicy', + 'Remove-CsTeamsCallHoldPolicy', + 'Set-CsTeamsCallHoldPolicy', + + 'Get-CsTeamsMessagingConfiguration', + 'Set-CsTeamsMessagingConfiguration', + + 'New-CsTeamsVoiceApplicationsPolicy', + 'Get-CsTeamsVoiceApplicationsPolicy', + 'Remove-CsTeamsVoiceApplicationsPolicy', + 'Set-CsTeamsVoiceApplicationsPolicy', + + 'Get-CsTeamsAudioConferencingCustomPromptsConfiguration', + 'Set-CsTeamsAudioConferencingCustomPromptsConfiguration', + 'New-CsCustomPrompt', + 'New-CsCustomPromptPackage', + + 'New-CsTeamsEventsPolicy', + 'Get-CsTeamsEventsPolicy', + 'Remove-CsTeamsEventsPolicy', + 'Set-CsTeamsEventsPolicy', + 'Grant-CsTeamsEventsPolicy', + + 'New-CsTeamsCallingPolicy', + 'Get-CsTeamsCallingPolicy', + 'Remove-CsTeamsCallingPolicy', + 'Set-CsTeamsCallingPolicy', + 'Grant-CsTeamsCallingPolicy', + + 'New-CsTeamsPersonalAttendantPolicy', + 'Get-CsTeamsPersonalAttendantPolicy', + 'Remove-CsTeamsPersonalAttendantPolicy', + 'Set-CsTeamsPersonalAttendantPolicy', + 'Grant-CsTeamsPersonalAttendantPolicy', + + 'New-CsExternalAccessPolicy', + 'Get-CsExternalAccessPolicy', + 'Remove-CsExternalAccessPolicy', + 'Set-CsExternalAccessPolicy', + 'Grant-CsExternalAccessPolicy', + + 'Get-CsTeamsMultiTenantOrganizationConfiguration', + 'Set-CsTeamsMultiTenantOrganizationConfiguration', + + 'New-CsTeamsHiddenMeetingTemplate', + + 'New-CsTeamsMeetingTemplatePermissionPolicy', + 'Get-CsTeamsMeetingTemplatePermissionPolicy', + 'Set-CsTeamsMeetingTemplatePermissionPolicy', + 'Remove-CsTeamsMeetingTemplatePermissionPolicy', + 'Grant-CsTeamsMeetingTemplatePermissionPolicy', + + 'Get-CsTeamsMeetingTemplateConfiguration', + 'Get-CsTeamsFirstPartyMeetingTemplateConfiguration', + + 'Get-CsTenantNetworkSite', + + 'New-CsTeamsShiftsPolicy', + 'Get-CsTeamsShiftsPolicy', + 'Remove-CsTeamsShiftsPolicy', + 'Set-CsTeamsShiftsPolicy', + 'Grant-CsTeamsShiftsPolicy', + + 'New-CsTeamsHiddenTemplate', + + 'New-CsTeamsTemplatePermissionPolicy', + 'Get-CsTeamsTemplatePermissionPolicy', + 'Remove-CsTeamsTemplatePermissionPolicy', + 'Set-CsTeamsTemplatePermissionPolicy', + + 'New-CsTeamsVirtualAppointmentsPolicy', + 'Get-CsTeamsVirtualAppointmentsPolicy', + 'Remove-CsTeamsVirtualAppointmentsPolicy', + 'Set-CsTeamsVirtualAppointmentsPolicy', + 'Grant-CsTeamsVirtualAppointmentsPolicy', + + 'New-CsTeamsComplianceRecordingPolicy', + 'Get-CsTeamsComplianceRecordingPolicy', + 'Remove-CsTeamsComplianceRecordingPolicy', + 'Set-CsTeamsComplianceRecordingPolicy', + + 'New-CsTeamsComplianceRecordingApplication', + 'Get-CsTeamsComplianceRecordingApplication', + 'Remove-CsTeamsComplianceRecordingApplication', + 'Set-CsTeamsComplianceRecordingApplication', + + 'New-CsTeamsComplianceRecordingPairedApplication', + + 'New-CsTeamsSharedCallingRoutingPolicy', + 'Get-CsTeamsSharedCallingRoutingPolicy', + 'Remove-CsTeamsSharedCallingRoutingPolicy', + 'Set-CsTeamsSharedCallingRoutingPolicy', + 'Grant-CsTeamsSharedCallingRoutingPolicy', + + 'New-CsTeamsVdiPolicy', + 'Get-CsTeamsVdiPolicy', + 'Remove-CsTeamsVdiPolicy', + 'Set-CsTeamsVdiPolicy', + 'Grant-CsTeamsVdiPolicy', + + 'Get-CsTeamsMeetingConfiguration', + 'Set-CsTeamsMeetingConfiguration', + + 'New-CsTeamsCustomBannerText', + 'Get-CsTeamsCustomBannerText', + 'Remove-CsTeamsCustomBannerText', + 'Set-CsTeamsCustomBannerText', + + 'Get-CsTeamsEducationConfiguration', + 'Set-CsTeamsEducationConfiguration', + + 'New-CsTeamsWorkLocationDetectionPolicy', + 'Get-CsTeamsWorkLocationDetectionPolicy', + 'Remove-CsTeamsWorkLocationDetectionPolicy', + 'Set-CsTeamsWorkLocationDetectionPolicy', + 'Grant-CsTeamsWorkLocationDetectionPolicy', + + 'New-CsTeamsMediaConnectivityPolicy', + 'Get-CsTeamsMediaConnectivityPolicy', + 'Remove-CsTeamsMediaConnectivityPolicy', + 'Set-CsTeamsMediaConnectivityPolicy', + 'Grant-CsTeamsMediaConnectivityPolicy', + + 'New-CsTeamsRecordingRollOutPolicy', + 'Get-CsTeamsRecordingRollOutPolicy', + 'Remove-CsTeamsRecordingRollOutPolicy', + 'Set-CsTeamsRecordingRollOutPolicy', + 'Grant-CsTeamsRecordingRollOutPolicy', + + 'New-CsTeamsFilesPolicy', + 'Get-CsTeamsFilesPolicy', + 'Remove-CsTeamsFilesPolicy', + 'Set-CsTeamsFilesPolicy', + 'Grant-CsTeamsFilesPolicy', + + 'Get-CsTeamsExternalAccessConfiguration', + 'Set-CsTeamsExternalAccessConfiguration', + + 'New-CsConversationRole', + 'Remove-CsConversationRole', + 'Get-CsConversationRole', + 'Set-CsConversationRole', + + 'New-CsTeamsBYODAndDesksPolicy', + 'Get-CsTeamsBYODAndDesksPolicy', + 'Remove-CsTeamsBYODAndDesksPolicy', + 'Set-CsTeamsBYODAndDesksPolicy', + 'Grant-CsTeamsBYODAndDesksPolicy', + + 'Get-CsTeamsAIPolicy', + 'Set-CsTeamsAIPolicy', + 'New-CsTeamsAIPolicy', + 'Remove-CsTeamsAIPolicy', + 'Grant-CsTeamsAIPolicy', + + 'Get-CsTeamsEducationAssignmentsAppPolicy', + 'Set-CsTeamsEducationAssignmentsAppPolicy', + + 'Get-CsPrivacyConfiguration', + 'Set-CsPrivacyConfiguration', + + 'Get-CsTeamsNotificationAndFeedsPolicy', + 'Set-CsTeamsNotificationAndFeedsPolicy', + 'Remove-CsTeamsNotificationAndFeedsPolicy', + + 'Get-CsTeamsClientConfiguration', + 'Set-CsTeamsClientConfiguration', + + 'Get-CsTeamsRemoteLogCollectionConfiguration', + + 'Get-CsTeamsRemoteLogCollectionDevice', + 'Set-CsTeamsRemoteLogCollectionDevice', + 'New-CsTeamsRemoteLogCollectionDevice', + 'Remove-CsTeamsRemoteLogCollectionDevice', + + 'Get-CsTeamsAcsFederationConfiguration', + 'Set-CsTeamsAcsFederationConfiguration' +) + +# Variables to export from this module +VariablesToExport = @() + +# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. +AliasesToExport = @() + +# DSC resources to export from this module +# DscResourcesToExport = @() + +# List of all modules packaged with this module +# ModuleList = @() + +# List of all files packaged with this module +# FileList = @() + +# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. +PrivateData = @{} + +# HelpInfo URI of this module +# HelpInfoURI = '' + +# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. +# DefaultCommandPrefix = '' +} +# SIG # Begin signature block +# MIIoUgYJKoZIhvcNAQcCoIIoQzCCKD8CAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDCgJaCEvpZAhVn +# byaLYV87TB9Mec7gDMf1rtO/Z7+9gaCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIC7X +# AzX4HLJ1VGMqh4bK3Nb+o/Q+oLjbyq+RTiW8OeMQMEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEAd5I2z4E9ZsfXaa+6GSMmIOMyqMwbZ+LfJc1X +# y1htKMkxSB1ZTp7q8g44mYASDV44WEOCsHBv6AHwZDcQjukWa/C5gXytGlqbDj1E +# 5JY0WQ0XN2eAoJbUDOR16JPbpoEhWB+WSb7/ZAWobyEIACuhCBANB4eUGn5VJswN +# slwdf0bj+v7lxw41b7+VZw7QAar+ZWDclQDpFLW+mUc9wup8cXDogdh/iS8XYYmr +# jhQ8fYD6ViYp4tyBBvUaqtof96f8oAdHBlTQsVcTc+4NKwrq66i6UeQlVoqWt68a +# zfE8N9m80hdVjN5WY4btJsSpf9qp1dT0yqET+fMsMQYT2o+2GKGCF60wghepBgor +# BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCAQvjfmXHoXih20jvFe4frfvyrouhf6Jlvd +# 2PKY5BI02QIGaKOvGfVpGBMyMDI1MTAwMTA4MzMwMS4zNTlaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyRDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB/XP5 +# aFrNDGHtAAEAAAH9MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExNloXDTI1MTAyMjE4MzExNlowgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjJEMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# oWWs+D+Ou4JjYnRHRedu0MTFYzNJEVPnILzc02R3qbnujvhZgkhp+p/lymYLzkQy +# G2zpxYceTjIF7HiQWbt6FW3ARkBrthJUz05ZnKpcF31lpUEb8gUXiD2xIpo8YM+S +# D0S+hTP1TCA/we38yZ3BEtmZtcVnaLRp/Avsqg+5KI0Kw6TDJpKwTLl0VW0/23sK +# ikeWDSnHQeTprO0zIm/btagSYm3V/8zXlfxy7s/EVFdSglHGsUq8EZupUO8XbHzz +# 7tURyiD3kOxNnw5ox1eZX/c/XmW4H6b4yNmZF0wTZuw37yA1PJKOySSrXrWEh+H6 +# ++Wb6+1ltMCPoMJHUtPP3Cn0CNcNvrPyJtDacqjnITrLzrsHdOLqjsH229Zkvndk +# 0IqxBDZgMoY+Ef7ffFRP2pPkrF1F9IcBkYz8hL+QjX+u4y4Uqq4UtT7VRnsqvR/x +# /+QLE0pcSEh/XE1w1fcp6Jmq8RnHEXikycMLN/a/KYxpSP3FfFbLZuf+qIryFL0g +# EDytapGn1ONjVkiKpVP2uqVIYj4ViCjy5pLUceMeqiKgYqhpmUHCE2WssLLhdQBH +# dpl28+k+ZY6m4dPFnEoGcJHuMcIZnw4cOwixojROr+Nq71cJj7Q4L0XwPvuTHQt0 +# oH7RKMQgmsy7CVD7v55dOhdHXdYsyO69dAdK+nWlyYcCAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBTpDMXA4ZW8+yL2+3vA6RmU7oEKpDAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAY9hYX+T5AmCrYGaH96TdR5T52/PNOG7ySYeopv4flnDWQLhBlravAg+p +# jlNv5XSXZrKGv8e4s5dJ5WdhfC9ywFQq4TmXnUevPXtlubZk+02BXK6/23hM0TSK +# s2KlhYiqzbRe8QbMfKXEDtvMoHSZT7r+wI2IgjYQwka+3P9VXgERwu46/czz8IR/ +# Zq+vO5523Jld6ssVuzs9uwIrJhfcYBj50mXWRBcMhzajLjWDgcih0DuykPcBpoTL +# lOL8LpXooqnr+QLYE4BpUep3JySMYfPz2hfOL3g02WEfsOxp8ANbcdiqM31dm3vS +# heEkmjHA2zuM+Tgn4j5n+Any7IODYQkIrNVhLdML09eu1dIPhp24lFtnWTYNaFTO +# fMqFa3Ab8KDKicmp0AthRNZVg0BPAL58+B0UcoBGKzS9jscwOTu1JmNlisOKkVUV +# kSJ5Fo/ctfDSPdCTVaIXXF7l40k1cM/X2O0JdAS97T78lYjtw/PybuzX5shxBh/R +# qTPvCyAhIxBVKfN/hfs4CIoFaqWJ0r/8SB1CGsyyIcPfEgMo8ceq1w5Zo0JfnyFi +# 6Guo+z3LPFl/exQaRubErsAUTfyBY5/5liyvjAgyDYnEB8vHO7c7Fg2tGd5hGgYs +# +AOoWx24+XcyxpUkAajDhky9Dl+8JZTjts6BcT9sYTmOodk/SgIwggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyRDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAoj0WtVVQUNSK +# oqtrjinRAsBUdoOggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyG2eQwIhgPMjAyNTA5MzAyMjM2MjBaGA8yMDI1 +# MTAwMTIyMzYyMFowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA7IbZ5AIBADAHAgEA +# AgIgyTAHAgEAAgITKzAKAgUA7IgrZAIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor +# BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUA +# A4IBAQAmufR59ho6kKb6B6MxWsOHLIcIVkeFSze45Y0exPCewXA8iw/M8LFcBaeQ +# /Oobtf4rOQu4WfVKBaYxB8teo9PGRIhX5lIxnpnVlYgcoLGp1vRELlujDfuqEhkb +# sg/E2EumO3gWJIAG/EVhYLtA1Goo5JKff2mHi8hHixo0ujIH7ySMXPuHLVbzo6rE +# hYI0g8HFS4UsBgIy3v/KYO0JXiXLxtzi0Jhfhnqx1MM4RKvfttKMg/MzA/YkvssB +# SdevnKK72czbS6S+JlH+FF/5j5K+TS2xZrkptJFmH2oRtVep8mgEgbhKJEiERJeP +# EBqIWwTP4s08gtlCGMGQsLSkMh79MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC +# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV +# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp +# bWUtU3RhbXAgUENBIDIwMTACEzMAAAH9c/loWs0MYe0AAQAAAf0wDQYJYIZIAWUD +# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B +# CQQxIgQgdWG1vHEKIQ4zqVCTD9rZnRpWW0Uz9SF3S+E0nAZFbYcwgfoGCyqGSIb3 +# DQEJEAIvMYHqMIHnMIHkMIG9BCCAKEgNyUowvIfx/eDfYSupHkeF1p6GFwjKBs8l +# RB4NRzCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u +# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp +# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB +# /XP5aFrNDGHtAAEAAAH9MCIEICOKE9Y+s7jpA8mr/KuDUPYVTcdXrhgkUSP/NDoK +# qskwMA0GCSqGSIb3DQEBCwUABIICABZUtPgsW6Wzyq0zeb/hewt+lvx8TBzOcC7C +# nVLNiQTvgTI9rZqlvpBx5x2bbLCNKRb63gZKYIhb7HL4TVKWWPh9f3nKz+ulre3x +# l/OYdQHHdUkq/WmJHYRXs+iC1SbEmgDqXrTjUhYtWhXjYPFBKSYrWMwYUYNJNDfe +# evI/th9PiCwnLG3ltlqjH41a1SD4aNfrf8p3ePn+BEEv+tDREyBSBgKMoBJqCUDt +# hZ/7kfzJ9jUkb4xYeRPpRLfo7taOUSSg5lTT1oA7ESxjmOFng/KBu5OaQ/N9nfZj +# 75ywiaJXWSTxRNEWpn3I7J/gvnTyyi+g0e872HEzA8Zdt6kz16D8gx3kfrEsBJ6w +# 9+o7fsTtmxPya60HbTFAPUhDeBZtNM18x7C3IEMV/W5Yihl7JitykWPE1BFMkmz8 +# Uw9WEccFKAUeUtfKJip70mnsyp3Hx7h49QHGh5WUFt/2psI5hDxoaEqpf2/hgmGH +# MB0+5r6GGJBQ8v+rO93ThSOwzEOL9pDCwa21abxhepL6jrvOtZohdnWumSxhAECx +# 4+a/ZDOKwUvY6wPyn2OGaLTgjHF6hUYWI9+Obeaq3XN7Ezodmtm8fxrAkDPYRUzx +# 74HU1RRPTk3Gjk0cFqbE6iR3ztC3S75czMXcoZhE92Q/XXNLAxCjNbBJQ9Gorr5c +# qhrkJiAV +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1 new file mode 100644 index 000000000000..c47ea7790267 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1 @@ -0,0 +1,238 @@ +$path = Join-Path $PSScriptRoot 'Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll' + +if (test-path $path) +{ + $null = Import-Module -Name $path +} +else +{ + if ($PSEdition -ne 'Desktop') + { + $null = Import-Module -Name (Join-Path $PSScriptRoot 'netcoreapp3.1\Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll') + } + else + { + $null = Import-Module -Name (Join-Path $PSScriptRoot 'net472\Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll') + } +} + +gci (Join-Path $PSScriptRoot 'Microsoft.Teams.Policy.Administration.Cmdlets.Core.*.ps1xml') | % {Update-FormatData -PrependPath $_ } + +# SIG # Begin signature block +# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAkAcLpsaJGFDbZ +# eSS41J6zw7DVHNDwNlPCWsROSiOFqaCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIPfa +# nlNFBOVfSygxXiGchjDoSjX9DIEVGb2vyXmTS6s/MEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEAA176FYIkYhqlx8OEjQJlGLc49iKq7lbheDiw +# BF6cuLugHW6dZeXd8PnoCoVUeVie6XbbWcDWk8NqNu07BAVYBhp076g9NcSKi0lY +# fjmbTmyf4pjm4aslKLJ0fQHU8hdvosgtWgMMC5ND/eSBHnYjcURBrLrWa287QaWZ +# uDXJed63PFdNxtE4iSN6N/aJg0bSBR1VAnFrAuEVZoNP46lx8eBCnEc7LSVxdgzH +# UcNFvCa5SLy4PzPFk9NZbcBXhQYyUvyJlfLrwAVcX3BQZVfN6gid7fKBTvAUUw1M +# VvrZOofSkMD4F0cx3R8LKGYPUWutrRFz8CkFMa7lZEyaTkSGGKGCF7AwghesBgor +# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCWDnwCLYYGWnQyanINXSBz+tl6/PPaRbdX +# f5OKF3Q/IgIGaKSPMrGdGBMyMDI1MTAwMTA4MzMwMi4xMTFaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo1NzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+8vL +# bDdn5TCVAAEAAAH7MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExM1oXDTI1MTAyMjE4MzExM1owgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjU3MUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# qMJWQeWAq4LwvSjYsjP0Uvhvm0j0aAOJiMLg0sLfxKoTXAdKD6oMuq5rF5oEiOxV +# +9ox0H95Q8fhoZq3x9lxguZyTOK4l2xtcgtJCtjXRllM2bTpjOg35RUrBy0cAloB +# U9GJBs7LBNrcbH6rBiOvqDQNicPRZwq16xyjMidU1J1AJuat9yLn7taifoD58blY +# EcBvkj5dH1la9zU846QDeOoRO6NcqHLsDx8/zVKZxP30mW6Y7RMsqtB8cGCgGwVV +# urOnaNLXs31qTRTyVHX8ppOdoSihCXeqebgJCRzG8zG/e/k0oaBjFFGl+8uFELwC +# yh4wK9Z5+azTzfa2GD4p6ihtskXs3lnW05UKfDJhAADt6viOc0Rk/c8zOiqzh0lK +# pf/eWUY2o/hvcDPZNgLaHvyfDqb8AWaKvO36iRZSXqhSw8SxJo0TCpsbCjmtx0Lp +# Hnqbb1UF7cq09kCcfWTDPcN12pbYLqck0bIIfPKbc7HnrkNQks/mSbVZTnDyT3O8 +# zF9q4DCfWesSr1akycDduGxCdKBvgtJh1YxDq1skTweYx5iAWXnB7KMyls3WQZbT +# ubTCLLt8Xn8t+slcKm5DkvobubmHSriuTA3wTyIy4FxamTKm0VDu9mWds8MtjUSJ +# VwNVVlBXaQ3ZMcVjijyVoUNVuBY9McwYcIQK62wQ20ECAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBRHVSGYUNQ3RwOl71zIAuUjIKg1KjAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAwzoIKOY2dnUjfWuMiGoz/ovoc1e86VwWaZNFdgRmOoQuRe4nLdtZONtT +# HNk3Sj3nkyBszzxSbZEQ0DduyKHHI5P8V87jFttGnlR0wPP22FAebbvAbutkMMVQ +# MFzhVBWiWD0VAnu9x0fjifLKDAVXLwoun5rCFqwbasXFc7H/0DPiC+DBn3tUxefv +# cxUCys4+DC3s8CYp7WWXpZ8Wb/vdBhDliHmB7pWcmsB83uc4/P2GmAI3HMkOEu7f +# CaSYoQhouWOr07l/KM4TndylIirm8f2WwXQcFEzmUvISM6ludUwGlVNfTTJUq2bT +# DEd3tlDKtV9AUY3rrnFwHTwJryLtT4IFhvgBfND3mL1eeSakKf7xTII4Jyt15SXh +# Hd5oI/XGjSgykgJrWA57rGnAC7ru3/ZbFNCMK/Jj6X8X4L6mBOYa2NGKwH4A37YG +# DrecJ/qXXWUYvfLYqHGf8ThYl12Yg1rwSKpWLolA/B1eqBw4TRcvVY0IvNNi5sm+ +# //HJ9Aw6NJuR/uDR7X7vDXicpXMlRNgFMyADb8AFIvQPdHqcRpRorY+YUGlvzeJx +# /2gNYyezAokbrFhACsJ2BfyeLyCEo6AuwEHn511PKE8dK4JvlmLSoHj7VFR3NHDk +# 3zRkx0ExkmF8aOdpvoKhuwBCxoZ/JhbzSzrvZ74GVjKKIyt5FA0wggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo1NzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUABHHn7NCGusZz +# 2RfVbyuwYwPykBWggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyHEVEwIhgPMjAyNTEwMDEwMjMyNDlaGA8yMDI1 +# MTAwMjAyMzI0OVowdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA7IcRUQIBADAKAgEA +# AgIC4QIB/zAHAgEAAgISTDAKAgUA7Ihi0QIBADA2BgorBgEEAYRZCgQCMSgwJjAM +# BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB +# CwUAA4IBAQB2rJUBbV82zv/fG68I5fhMRRSkgirfFrnlWvW6RfzPd+5iYKdth6dU +# 6IOUUkXT8dO0qMuoHqkbT04FjLzmTDVMz/HkKyWOnfzbgSfBdr627tuQfCEGAwNV +# ucTR8DvaCruh9rBA7ZrkdmVxSbNWAKHET4DRUNE04kCzDtcJRlH+6DET6vv0aaWh +# 8jP2P7qVYhNnf2EbzfEphwGpR2qf12umLBqw3UuOLP409MRmZbnWF7ektopLFB0Q +# q2MmM3MvEuHDKHeP9zk2uDYd/JBwf4FNbMFJE/290pXYfcRhctqSoSE6hLmab8Cb +# xUvtPV6BaJ52RwxeSWsAM3GSZBGPrS0IMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE +# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc +# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 +# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH7y8tsN2flMJUAAQAAAfswDQYJYIZI +# AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG +# 9w0BCQQxIgQgEiESkj19FIoUPhMunHleTDnL/vf3NQU3SuPeEOeclPQwgfoGCyqG +# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCA52wKr/KCFlVNYiWsCLsB4qhjEYEP3xHqY +# qDu1SSTlGDCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n +# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y +# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz +# AAAB+8vLbDdn5TCVAAEAAAH7MCIEICnkwtMY6H2GmiCyEEz1OMgXS5ZXQyQ7h2mA +# fwdrbCjpMA0GCSqGSIb3DQEBCwUABIICAGxUpYVK6wtcpGfx4YQZn1mr+B3rb603 +# Bp7ZmQ2JsVccrBGW70H+iLguDhudJhAzfvvBujGippd+TP58jx3lQbLAQOag9lcR +# xhEeDHY6BC+IGXaJrzJX7iE5WXiZF1pn27sDPo7EyvR+2j/GyXaA6Dy59sCO2qXU +# VOAqOQruTAlJzr7ZisjEUzdg2FQ41M+iZetv5gPG44t6HgWaaUxECKIeUFZFQiP8 +# XXz0HaDTSiB1VrRRs4fnIA7N0UFBzQOZ/D5ko0+n0TXPoPcv7y/WadDfQ+RUymP8 +# AowHQmDmC8EBOUZs/F7pwFC1RnF6cEhI5/zutEbmEw05sGCm9zFBbxuuJepOMqLj +# SsCPTi+IvDf0M93qLoxCO6Zcj9V/d7T3c6MR3X3O8UM5nNjWjEjkwDeX//Fd1us8 +# M0XA2tlo3o6ssd9wUPJSIc/T5r+qPHtzgIUAbC7k8Fh+Q48X0bECTc5UzYyTs+2/ +# CqjLWJPA0vBsDPV2CkwRZtSC3aKWjNWxX7+3hTl2MV2DtfmJ/4aeKWNEXeE8PoFh +# ZGUF160rbdZOET9mz/A8VGzCXKs0kBuDlBGEFQGchzRchdP+VtC7VmF/1HHgomDo +# sNdGNYQJB2EPSWHG0CzHu/OxHmRn69yJhHfDBmFstm4lq78CeVDSiJ0vW4TJt1G8 +# JPbiUx/mCCDS +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.xml similarity index 100% rename from Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.xml diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml new file mode 100644 index 000000000000..4858d2a33c16 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml @@ -0,0 +1,260 @@ + + + + + TeamsAIPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.TeamsAIPolicy + + + + + + + + + Identity + + + + Description + + + + EnrollFace + + + + EnrollVoice + + + + SpeakerAttributionForBYOD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml new file mode 100644 index 000000000000..b9ec3ea42369 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml @@ -0,0 +1,252 @@ + + + + + TeamsAudioConferencingPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.TeamsAudioConferencingPolicy + + + + + + + + + Identity + + + + MeetingInvitePhoneNumbers + + + + AllowTollFreeDialin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml new file mode 100644 index 000000000000..83440f7bcb43 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml @@ -0,0 +1,248 @@ + + + + + TeamsBYODAndDesksPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.TeamsBYODAndDesksPolicy + + + + + + + + + Identity + + + + DeviceDataCollection + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml new file mode 100644 index 000000000000..c38cc9747d74 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml @@ -0,0 +1,247 @@ + + + + + TeamsMediaConnectivityPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.TeamsMediaConnectivityPolicy + + + + + + + + + Identity + + + + DirectConnection + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CorePersonalAttendantPolicy.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CorePersonalAttendantPolicy.format.ps1xml new file mode 100644 index 000000000000..4ab7d366facd --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CorePersonalAttendantPolicy.format.ps1xml @@ -0,0 +1,276 @@ + + + + + TeamsPersonalAttendantPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.CorePersonalAttendantPolicy.TeamsPersonalAttendantPolicy + + + + + + + + + Identity + + + + PersonalAttendant + + + + CallScreening + + + + CalendarBookings + + + + InboundInternalCalls + + + + InboundFederatedCalls + + + + InboundPSTNCalls + + + + AutomaticTranscription + + + + AutomaticRecording + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml new file mode 100644 index 000000000000..a2b5ce7c42be --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml @@ -0,0 +1,248 @@ + + + + + TeamsRecordingRollOutPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.TeamsRecordingRollOutPolicy + + + + + + + + + Identity + + + + MeetingRecordingOwnership + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml new file mode 100644 index 000000000000..cd725d2167a6 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml @@ -0,0 +1,247 @@ + + + + + TeamsVirtualAppointmentsPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.TeamsVirtualAppointmentsPolicy + + + + + + + + + Identity + + + + EnableSmsNotifications + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml new file mode 100644 index 000000000000..0931a82b11e9 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml @@ -0,0 +1,247 @@ + + + + + TeamsWorkLocationDetectionPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.TeamsWorkLocationDetectionPolicy + + + + + + + + + Identity + + + + EnableWorkLocationDetection + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.psd1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.psd1 similarity index 79% rename from Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.psd1 rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.psd1 index ea6162e26b61..0d82e99848a1 100644 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.psd1 +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.psd1 @@ -11,7 +11,7 @@ RootModule = './Microsoft.Teams.Policy.Administration.psm1' # Version number of this module. -ModuleVersion = '14.1.41' +ModuleVersion = '21.4.4' # Supported PSEditions CompatiblePSEditions = 'Core', 'Desktop' @@ -102,40 +102,40 @@ PrivateData = @{} # SIG # Begin signature block # MIIoUgYJKoZIhvcNAQcCoIIoQzCCKD8CAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAAdJmkZ1O+iu04 -# RZGPjoGuni8ww8R3n9BF4CFndbKGI6CCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAizEF7EthEfKhr +# v64YI3/+SMJkAC9oh3WCsRWG4pdusqCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw # CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u # ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw # VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW # gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v # d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw # MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov # L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx # XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK # YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV # BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv # c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm @@ -178,21 +178,21 @@ PrivateData = @{} # cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x # CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt # b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEICRs -# UoJqZRoZaz67egWFTsL44lE63HzhdkghJHhDC/etMEIGCisGAQQBgjcCAQwxNDAy +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIN0s +# HqoqWu/70zfwRQjHbRI9tcwpjpUnzXMkIHBvxTZHMEIGCisGAQQBgjcCAQwxNDAy # oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAG7K92X3s94BeTTImrQFl6SeCzDToI+00z4Xx -# 4cQB3vhumUmRKivQWTyDLGV/zUSlBr1dBOf4OD6FlpgxLooBk4sjbBu6NsdOivxT -# rNZyUf0xQko85CnDAPRc53DJpM2K0NAX8+KAVcYtilNDOBd6ck6dadj70fhPOGNC -# /WpAURWjx42OpopJxTJeK6EXPIOUULnB/2Vfi93tbt15LaVAN2bK05cB9TGcQEcT -# 7ADaW5YwksZkGISNAG7z3zZlCViNmlzqc4LILNl41NIBcD+vu/1DpVPdxh83mu0s -# kIsLMYruphdryGP12E1hwFiVpUGk1PHvcONQOEhm1NYO5gonpaGCF60wghepBgor +# b20wDQYJKoZIhvcNAQEBBQAEggEAI886RwfaaT8kZaw3qXMyp4W63nmO5MUXdY5A +# gS41vNrTI9mB9OxxyZarmrAnVzWBP0f1bUnzWZjB3B7Ny0ZRFwdtdklKTQ4FSqsZ +# vcGSXJDiv8SxkC9mF3/BfUCSkerw8yWq6At3BmwI9pvp733ZzrYCgNG4FperZanw +# ec2wp2Sz8swhEqf8wlTKcFfhRDRWQWhCWVD2E0UJ1IgHxPpSot6poO3FI6xivTdN +# 2UXMBX6iVv1qARJBCnVxegYeY4ED/5u37weNXkL6HSpoaXHQKJ7C1KzNyTWcYFGo +# dL4IIyQwr+EjtwdbyrekXLByF4Ji5CLCKcJDtVyEEC4NmFD+f6GCF60wghepBgor # BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI # AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCDbHZhUGyxaMsGl8VcSyVYbo8I7WL9oSzCA -# Q5cD9Q3K4wIGZ7Y0FbOZGBMyMDI1MDMxMzA4NDcyNi44NTNaMASAAgH0oIHZpIHW +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCVdIAtLPSOGpzb8gas4wIWLavonKF3GMvt +# GcIwAuELzQIGaKOxdLn0GBMyMDI1MTAwMTA4MzMwMy43MDdaMASAAgH0oIHZpIHW # MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH # UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL # EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT @@ -284,36 +284,36 @@ PrivateData = @{} # LWVG9JuGxgLRXseggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz # aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv # cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDANBgkqhkiG9w0BAQsFAAIFAOt9CQkwIhgPMjAyNTAzMTMwNzM0MzNaGA8yMDI1 -# MDMxNDA3MzQzM1owdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA630JCQIBADAHAgEA -# AgIkFzAHAgEAAgISnDAKAgUA635aiQIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor +# MDANBgkqhkiG9w0BAQsFAAIFAOyG3EAwIhgPMjAyNTA5MzAyMjQ2MjRaGA8yMDI1 +# MTAwMTIyNDYyNFowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA7IbcQAIBADAHAgEA +# AgI/SzAHAgEAAgISWzAKAgUA7IgtwAIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor # BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUA -# A4IBAQBwAFD7mpWyTHemR/ugdvlxx/3l7/M1/2lQTYvjZkssmS+50Tbx14fC6F2H -# WVxi+JUZN+Umh+aYBnfAdCh88pT+80jXO2czfrqMAtrsMzr+vl+GOlGr0ER7yvu0 -# nE8m3LaBSBGOcUe/fl8bGmHthByQwAHSbl4VzJPxyGv7n3/L1mwKfSWyXsd9cikH -# /AUiCp5xmkbIHzB+t7tdCCF4WqWmoKGiwAYKa/ijrZvUCVDr1NlPJ+7OWXoBYSzL -# uX1hfz3EsrFc8SUnNWTHYrkVUbcll/6HLCIr8zQPv0x7XNk6xW0mTRUn5xBXtPBM -# rRswJxDYphqo9w5Lf2idjekWlW6LMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC +# A4IBAQAD/NthVx290gnyfPIhSE9lwc9eWlT8TkCe0jExSnZh8CcFl3AuFYuKzWJU +# agkUZmAXk2Jd0ReNgabW3NtqAlQ1cO/WGUEyp+hizsblzulC1P+pfNfFDfx6IM2O +# aWWzt8xBHA+UwO9ikxd6WQFZlaVCHYPQXYy46lPLvxSpI9Zs3TYkG/6ULP/+y3n2 +# xDYfkKGMl47cDlUd5vSQ/5t7y+RlW5jsOLoMC7R49YQnRf1qeHvYmDcgx6lFbD4H +# H+2Lf1pDKx6V251oLs02QiVMvp+MMErUpGfrSAb09ngYfq47WSLbjLwZWV/n30LZ +# u3592g9gFKouk6SFAmLg3nrQ7hEOMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC # VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV # BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp # bWUtU3RhbXAgUENBIDIwMTACEzMAAAH+0KjCezQhCwEAAQAAAf4wDQYJYIZIAWUD # BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B -# CQQxIgQgketZk/e7Dv/Hfole/m0CAiFMisJWiQjyIoBchzkCF2cwgfoGCyqGSIb3 +# CQQxIgQgcWvCA7syJSQRcPP6J3M3qUoHDuPVV3NRhh21Dj8LHpEwgfoGCyqGSIb3 # DQEJEAIvMYHqMIHnMIHkMIG9BCARhczd/FPInxjR92m2hPWqc+vGOG1+/I0WtkCs # tyh0eTCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u # MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp # b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB -# /tCowns0IQsBAAEAAAH+MCIEIDWM/tm7mTwPDaiHaESfD5of42TfM03zwG5jepSL -# /lsMMA0GCSqGSIb3DQEBCwUABIICAHupwfRFGL5mF+f6oC+MDo8gDMlUUG/gsjMV -# uCTn0PQBW6F2nS7m/Nu9VqIhE1R+SrUABdhOw50cHKfBOErp/Q+nuCsLXAKCxMb+ -# CpwFGEFcf0R464vlAeSYYL5lCJdoz/ygKgbh9VH4d6OBbTwOL8RG4R8xhLPEfKka -# Pya+fIN3s3B/jpeUtbnDqo4016mJtfxhUCNu8p65QwfG0UtpP5qvTCYFxEPr+yWD -# 97/JNHTkkuM/dEBnJbamiW0lbC7ZRH1qmWa6QpzjLW7HNIKNPEpAhNHAoL9opBLF -# E8OTUpQfjAolVGZLndshj0J60Buzvhw2/1ptgB/CLtxRXIGUxoS8Ua+FEXd/NQfO -# 7gMhpz9mymwWE6g07YR4fjf9vU3RJDkXv+SiRI/uzSDjLAcTtOQfKqei7ADtkhot -# 9JF5R+oTEdxG7+RRN3qE+Kft5+6zZKEwkcDIU8Pmkn/bZVjdbPE/Px+w2uiUrKx8 -# iYYNat7E3pDtgMkfVH0QNTNJTAcqCg1K8ay7kHg2o6n/TKhnzV1HJFWorzc786dF -# Tp8YLSHUevUFXtvCwn9d+UyYBhqyjTNaTWU9wKcY1k3uyYe7UI6+XTuoUhtU/SUd -# fniMtW9W/aSM4boy0K+kjhNYJ1MjD0jOAQKF3VbUHesY+rwEpq7WZO8fFrjSK4ET -# e7AVos/O +# /tCowns0IQsBAAEAAAH+MCIEIHl8bRCAEGD1nFgaXp67WN1I3z8m7ZUmowEzGTjb +# iSIqMA0GCSqGSIb3DQEBCwUABIICAIT+2wgOhfO9dGRSJlOAVksO6aJR8upaTR8O +# lPfuukTdRc2OjjJlrq1/4U4DFrzF+5fgX2ryRlyidqASC9IhIenDLyB9swL1p3Up +# u8PdUhsHo/gtkpNvshjFSsgSl24Cl5gqCTdgE7u9ia0Td0uNzyp4micmnHFSlL5e +# xmoBq8PrGPlfz59r2DwEiL0ncfyprkypUu8lkFL4Ze6Did3kdud39Lfo9mYi3Q9P +# 72QH+7NlUcsF5HMeojQS2knq+DQEKcOA7Easo6MG199hoj0GGsUxATj9kZX9aOs0 +# tMT5LAiY+Jo1Z6k7/yJqR6hDnPLN7k8EKp91X/MgwrGgTEPQWJvP68bVrGFQHTAp +# R1TCMV7hZgYR9AX8FI+82M1rEz/gl5vjXrvCB3hKglht71Xh/Y3Zroue5s3aUb8X +# PB30drTrXerrtNZ73CLDHN/g6z1Hh5XPgCmvbncgCjll5gqjoj/nHQkKIXbnijwD +# D7+bfnoOpHqlNw1PJqgjCZm2fhsLEHKXDnxuwiuScMvqGRdWOTUD/vj8KAs1q8ka +# HkJzKXckUagiGXUEfRkrGFbJleXRjeety7ZiefzrH/fghoOmOSUsd2P4jxLMUsNZ +# 9LZcBtVWHWwVBIt/xfVfFSkU5WbhOoz9PudW1pG9l0PbcUSmOXAQKH9FwcT3Tqf3 +# HIchFvHN # SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.psm1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.psm1 new file mode 100644 index 000000000000..dac2ec5284fe --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.psm1 @@ -0,0 +1,248 @@ +# Define which modules to load based on the environment +# These environment variables are set in TPM + +if ($env:MSTeamsContextInternal -eq "IsOCEModule") { + $mpaModule = 'Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1' +} +elseif ($env:MSTeamsReleaseEnvironment -eq 'TeamsPreview') { + $mpaModule = 'Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1' +} +else { + $mpaModule = 'Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1' +} + +$path = (Join-Path $PSScriptRoot $mpaModule) + +if (test-path $path) +{ + $null = Import-Module -Name $path +} +else +{ + if ($PSEdition -ne 'Desktop') + { + $null = Import-Module -Name (Join-Path $PSScriptRoot "netcoreapp3.1\$mpaModule") + } + else + { + $null = Import-Module -Name (Join-Path $PSScriptRoot "net472\$mpaModule") + } +} +# SIG # Begin signature block +# MIIoUgYJKoZIhvcNAQcCoIIoQzCCKD8CAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCY/3SaRU5aX7aK +# TQZJ6IK4Qt60ySomlFTBejL/fus5QaCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIBMw +# q7DKEXveX/tYp75+TAPnyE5ZJziyHVTCrrAiSia5MEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEAeDguijEeixlAKE2HfhTxBw93mfPIgX3jhc63 +# 7TiIYsweHWRj9AIx7n84Y6MTVh4qP6J9F31lXZkjKr2uRxORWfcdzgPDlEk0ilDb +# bdUFUg1NP0C8DwxUsKxQMw+YY71Vimgg284U6CYu+u2xXH4ZRVakUtmabmzWsu7k +# PSwWAmd0N9y4d1tlAgmf+Z/WPiry/P0AOBz7gpxJEncFrj7WIv2WHYitB/K8ElJ5 +# +riHLuYm1pPT6Vaj4bc8JAV+Iioq7SN4wvtDbNDF6C5Qq/YyUKBHJD+1XZXyXdgi +# NwdCfOqPb9DejbDdmchQE8sDHEItCP9Tyko890AIpiNanWPLB6GCF60wghepBgor +# BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCCV7ZelKBHXN1ogHtX5KieQqUnxtjGIceZ +# A6wVYjKWzAIGaKOvGfWVGBMyMDI1MTAwMTA4MzMwMi4zMzlaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyRDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB/XP5 +# aFrNDGHtAAEAAAH9MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExNloXDTI1MTAyMjE4MzExNlowgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjJEMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# oWWs+D+Ou4JjYnRHRedu0MTFYzNJEVPnILzc02R3qbnujvhZgkhp+p/lymYLzkQy +# G2zpxYceTjIF7HiQWbt6FW3ARkBrthJUz05ZnKpcF31lpUEb8gUXiD2xIpo8YM+S +# D0S+hTP1TCA/we38yZ3BEtmZtcVnaLRp/Avsqg+5KI0Kw6TDJpKwTLl0VW0/23sK +# ikeWDSnHQeTprO0zIm/btagSYm3V/8zXlfxy7s/EVFdSglHGsUq8EZupUO8XbHzz +# 7tURyiD3kOxNnw5ox1eZX/c/XmW4H6b4yNmZF0wTZuw37yA1PJKOySSrXrWEh+H6 +# ++Wb6+1ltMCPoMJHUtPP3Cn0CNcNvrPyJtDacqjnITrLzrsHdOLqjsH229Zkvndk +# 0IqxBDZgMoY+Ef7ffFRP2pPkrF1F9IcBkYz8hL+QjX+u4y4Uqq4UtT7VRnsqvR/x +# /+QLE0pcSEh/XE1w1fcp6Jmq8RnHEXikycMLN/a/KYxpSP3FfFbLZuf+qIryFL0g +# EDytapGn1ONjVkiKpVP2uqVIYj4ViCjy5pLUceMeqiKgYqhpmUHCE2WssLLhdQBH +# dpl28+k+ZY6m4dPFnEoGcJHuMcIZnw4cOwixojROr+Nq71cJj7Q4L0XwPvuTHQt0 +# oH7RKMQgmsy7CVD7v55dOhdHXdYsyO69dAdK+nWlyYcCAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBTpDMXA4ZW8+yL2+3vA6RmU7oEKpDAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAY9hYX+T5AmCrYGaH96TdR5T52/PNOG7ySYeopv4flnDWQLhBlravAg+p +# jlNv5XSXZrKGv8e4s5dJ5WdhfC9ywFQq4TmXnUevPXtlubZk+02BXK6/23hM0TSK +# s2KlhYiqzbRe8QbMfKXEDtvMoHSZT7r+wI2IgjYQwka+3P9VXgERwu46/czz8IR/ +# Zq+vO5523Jld6ssVuzs9uwIrJhfcYBj50mXWRBcMhzajLjWDgcih0DuykPcBpoTL +# lOL8LpXooqnr+QLYE4BpUep3JySMYfPz2hfOL3g02WEfsOxp8ANbcdiqM31dm3vS +# heEkmjHA2zuM+Tgn4j5n+Any7IODYQkIrNVhLdML09eu1dIPhp24lFtnWTYNaFTO +# fMqFa3Ab8KDKicmp0AthRNZVg0BPAL58+B0UcoBGKzS9jscwOTu1JmNlisOKkVUV +# kSJ5Fo/ctfDSPdCTVaIXXF7l40k1cM/X2O0JdAS97T78lYjtw/PybuzX5shxBh/R +# qTPvCyAhIxBVKfN/hfs4CIoFaqWJ0r/8SB1CGsyyIcPfEgMo8ceq1w5Zo0JfnyFi +# 6Guo+z3LPFl/exQaRubErsAUTfyBY5/5liyvjAgyDYnEB8vHO7c7Fg2tGd5hGgYs +# +AOoWx24+XcyxpUkAajDhky9Dl+8JZTjts6BcT9sYTmOodk/SgIwggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyRDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAoj0WtVVQUNSK +# oqtrjinRAsBUdoOggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyG2eQwIhgPMjAyNTA5MzAyMjM2MjBaGA8yMDI1 +# MTAwMTIyMzYyMFowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA7IbZ5AIBADAHAgEA +# AgIgyTAHAgEAAgITKzAKAgUA7IgrZAIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor +# BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUA +# A4IBAQAmufR59ho6kKb6B6MxWsOHLIcIVkeFSze45Y0exPCewXA8iw/M8LFcBaeQ +# /Oobtf4rOQu4WfVKBaYxB8teo9PGRIhX5lIxnpnVlYgcoLGp1vRELlujDfuqEhkb +# sg/E2EumO3gWJIAG/EVhYLtA1Goo5JKff2mHi8hHixo0ujIH7ySMXPuHLVbzo6rE +# hYI0g8HFS4UsBgIy3v/KYO0JXiXLxtzi0Jhfhnqx1MM4RKvfttKMg/MzA/YkvssB +# SdevnKK72czbS6S+JlH+FF/5j5K+TS2xZrkptJFmH2oRtVep8mgEgbhKJEiERJeP +# EBqIWwTP4s08gtlCGMGQsLSkMh79MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC +# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV +# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp +# bWUtU3RhbXAgUENBIDIwMTACEzMAAAH9c/loWs0MYe0AAQAAAf0wDQYJYIZIAWUD +# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B +# CQQxIgQg9EUi0GwdI7f5VNLcGjHgsFQ3coZvNRAk3QmJ0eEdcvcwgfoGCyqGSIb3 +# DQEJEAIvMYHqMIHnMIHkMIG9BCCAKEgNyUowvIfx/eDfYSupHkeF1p6GFwjKBs8l +# RB4NRzCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u +# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp +# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB +# /XP5aFrNDGHtAAEAAAH9MCIEICOKE9Y+s7jpA8mr/KuDUPYVTcdXrhgkUSP/NDoK +# qskwMA0GCSqGSIb3DQEBCwUABIICAF6dRTMCVnCbetbuA/BYOcM5F71+HqL3mf0L +# s40lxJ/uZnotyAAau6Gp4920uacdvB8P03CAkcZxDqn8B4bi0+yB/NlLi9tI1j/a +# gzdyspoSxWWr0g3462YzXBnCRb5Yh3y6Gc2PQ5hhU2aLtZR2rJwpx+oh2QgUu3lW +# DOZRR/rDUGiqyxqrnqNerlzYGAXGfv05p9D9bU1rRRU7R53yrlRwkASQslEvGDnM +# qplUsLdyeJFNiXB95b4GAdeuTNgR/KGdqdyPH0If5d9kl8dZ7oI00baNY3HRTB1n +# vodZ94XWpCm64bM97N5LTompSa9+fDlgf1KGJGtYPuOq0nkvBWazeq5pgAolbnvK +# BryXrqhMUS3/bXnscmdI6jWKcBXUFQZ0x0xS13AbLqkK99/dLJ0cqplhOLJTo45g +# LF6meVVKzd8pg1QZvc5poE54tSgsRHSUxreFb8xd8c+6NW+jhnQQH2PQSQG9kW+m +# MDCqAAgvjXH/Li0aIvqY5ZElx1m2vnC7kNoqH+SPin8m/Mm4G2qxSZLcuvN2i3o/ +# r0JEYaWyqLM7Bs2K6aC6ZuoRo4vWKEsiuaPuI3c1lI5mYVjt8nleYvrMDr071T51 +# 2RiUdRNglEW6wdIhUDy78pISuyxFRcPoWR4NWEhNBJCG8mFHwTlBvGsfsA+Jt3FY +# sGHurA7y +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.xml similarity index 100% rename from Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.xml diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.PowerShell.Module.xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.Module.xml similarity index 100% rename from Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.PowerShell.Module.xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.Module.xml diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml similarity index 100% rename from Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psd1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psd1 new file mode 100644 index 000000000000..5f48fd5cf213 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psd1 @@ -0,0 +1,357 @@ +# +# Module manifest for module 'Microsoft.Teams.PowerShell.TeamsCmdlets' +# +# Generated by: Microsoft Corporation +# +# Updated on: 6/30/2020 +# + +@{ +# Script module or binary module file associated with this manifest. +RootModule = './Microsoft.Teams.PowerShell.TeamsCmdlets.psm1' + +# Version number of this module. +# There's a string replace for the actual module version in the build pipeline +ModuleVersion = '1.5.6' + +# Supported PSEditions +CompatiblePSEditions = 'Core', 'Desktop' + +# ID used to uniquely identify this module +GUID = '3dfbed68-91ab-432e-b8bf-affe360d2c2f' + +# Author of this module +Author = 'Microsoft Corporation' + +# Company or vendor of this module +CompanyName = 'Microsoft Corporation' + +# Copyright statement for this module +Copyright = 'Microsoft Corporation. All rights reserved.' + +# Description of the functionality provided by this module +Description = 'Microsoft Teams cmdlets sub module for Windows PowerShell and PowerShell Core. + +For more information, please visit the following: https://docs.microsoft.com/MicrosoftTeams/teams-powershell-overview' + +# Minimum version of the Windows PowerShell engine required by this module +PowerShellVersion = '5.1' + +# Name of the Windows PowerShell host required by this module +# PowerShellHostName = '' + +# Minimum version of the Windows PowerShell host required by this module +# PowerShellHostVersion = '' + +# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +DotNetFrameworkVersion = '4.7.2' + +# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +CLRVersion = '4.0' + +# Processor architecture (None, X86, Amd64) required by this module +# ProcessorArchitecture = 'Amd64' + +# Modules that must be imported into the global environment prior to importing this module +# RequiredModules = @() + +# Assemblies that must be loaded prior to importing this module +# RequiredAssemblies = @() + +# Script files (.ps1) that are run in the caller's environment prior to importing this module. +# ScriptsToProcess = @() + +# Type files (.ps1xml) to be loaded when importing this module +# TypesToProcess = @() + +# Format files (.ps1xml) to be loaded when importing this module +FormatsToProcess = @('GetTeamSettings.format.ps1xml') + +# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. +CmdletsToExport = @( + 'Add-TeamChannelUser' + ,'Add-TeamUser' + ,'Get-AssociatedTeam' + ,'Get-MultiGeoRegion' + ,'Get-Operation' + ,'Get-SharedWithTeam' + ,'Get-SharedWithTeamUser' + ,'Get-Team' + ,'Get-TeamAllChannel' + ,'Get-TeamChannel' + ,'Get-TeamChannelUser' + ,'Get-TeamIncomingChannel' + ,'Get-TeamsApp' + ,'Get-TeamsArtifacts' + ,'Get-TeamUser' + ,'Get-M365TeamsApp' + ,'Get-AllM365TeamsApps' + ,'Get-M365UnifiedTenantSettings' + ,'Get-M365UnifiedCustomPendingApps' + ,'Get-TenantPrivateChannelMigrationStatus' + ,'New-Team' + ,'New-TeamChannel' + ,'New-TeamsApp' + ,'Remove-SharedWithTeam' + ,'Remove-Team' + ,'Remove-TeamChannel' + ,'Remove-TeamChannelUser' + ,'Remove-TeamsApp' + ,'Remove-TeamUser' + ,'Set-Team' + ,'Set-TeamArchivedState' + ,'Set-TeamChannel' + ,'Set-TeamPicture' + ,'Set-TeamsApp' + ,'Update-M365TeamsApp' + ,'Update-M365UnifiedTenantSettings' + ,'Update-M365UnifiedCustomPendingApp' + ,'Add-TeamsAppInstallation' + ,'Get-TeamsAppInstallation' + ,'Get-TeamTargetingHierarchyStatus' + ,'Remove-TeamsAppInstallation' + ,'Remove-TeamTargetingHierarchy' + ,'Set-TeamTargetingHierarchy' + ,'Update-TeamsAppInstallation' + ,'Get-LicenseReportForChangeNotificationSubscription' + ) + +# Variables to export from this module +VariablesToExport = '*' + +# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. +AliasesToExport = '*' + +# DSC resources to export from this module +# DscResourcesToExport = @() + +# List of all modules packaged with this module +# ModuleList = @() + +# List of all files packaged with this module +# FileList = @() + +# HelpInfo URI of this module +# HelpInfoURI = '' + +# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. +# DefaultCommandPrefix = '' +} +# SIG # Begin signature block +# MIIoUgYJKoZIhvcNAQcCoIIoQzCCKD8CAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCACn9eUplYLXu2e +# 7fBVQlUN4wKwx8YYH35YeUyOD2ECn6CCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIPWS +# kmHJhyB6ldbqxbegGg+2fHDqHbOC06HJfFp2XPa2MEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEAmLjSkS/EXKuMXZ+jVZvo0PxZYambtSg3hD+H +# YD28l4bJFO76hYHVdpQkMzqsgseZQkzv0T4OZzTOVHlMOpOZJ66JTBeDonWUDoCF +# eeUAChDRTa7JrgGGY2hXjYiuNGlXKQEhmm9PJDBPTiaIJAusqurTjSHqzvU5rkBU +# u6QQTJUk47QqatH5Aq2nFwG/hA6wLwG4iRt8MD857UbyJRpO6jLXxypulMpFulMe +# mhsltWanOy12BnIbnB6Iop2YWWFS9Ze2WsiOglUpadH1xPl7G/gGW2gh/KnncJq6 +# hrZ30Y/AlM0VJceiURWUCj/VBd23pj/BbtGO82bkdWs1ZBCaCqGCF60wghepBgor +# BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCypOf4C4hBjE9rlokTgfqxG9laaRqmtnJP +# Y3LpveiDogIGaKOvGfXMGBMyMDI1MTAwMTA4MzMwMy40OTJaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyRDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB/XP5 +# aFrNDGHtAAEAAAH9MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExNloXDTI1MTAyMjE4MzExNlowgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjJEMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# oWWs+D+Ou4JjYnRHRedu0MTFYzNJEVPnILzc02R3qbnujvhZgkhp+p/lymYLzkQy +# G2zpxYceTjIF7HiQWbt6FW3ARkBrthJUz05ZnKpcF31lpUEb8gUXiD2xIpo8YM+S +# D0S+hTP1TCA/we38yZ3BEtmZtcVnaLRp/Avsqg+5KI0Kw6TDJpKwTLl0VW0/23sK +# ikeWDSnHQeTprO0zIm/btagSYm3V/8zXlfxy7s/EVFdSglHGsUq8EZupUO8XbHzz +# 7tURyiD3kOxNnw5ox1eZX/c/XmW4H6b4yNmZF0wTZuw37yA1PJKOySSrXrWEh+H6 +# ++Wb6+1ltMCPoMJHUtPP3Cn0CNcNvrPyJtDacqjnITrLzrsHdOLqjsH229Zkvndk +# 0IqxBDZgMoY+Ef7ffFRP2pPkrF1F9IcBkYz8hL+QjX+u4y4Uqq4UtT7VRnsqvR/x +# /+QLE0pcSEh/XE1w1fcp6Jmq8RnHEXikycMLN/a/KYxpSP3FfFbLZuf+qIryFL0g +# EDytapGn1ONjVkiKpVP2uqVIYj4ViCjy5pLUceMeqiKgYqhpmUHCE2WssLLhdQBH +# dpl28+k+ZY6m4dPFnEoGcJHuMcIZnw4cOwixojROr+Nq71cJj7Q4L0XwPvuTHQt0 +# oH7RKMQgmsy7CVD7v55dOhdHXdYsyO69dAdK+nWlyYcCAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBTpDMXA4ZW8+yL2+3vA6RmU7oEKpDAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAY9hYX+T5AmCrYGaH96TdR5T52/PNOG7ySYeopv4flnDWQLhBlravAg+p +# jlNv5XSXZrKGv8e4s5dJ5WdhfC9ywFQq4TmXnUevPXtlubZk+02BXK6/23hM0TSK +# s2KlhYiqzbRe8QbMfKXEDtvMoHSZT7r+wI2IgjYQwka+3P9VXgERwu46/czz8IR/ +# Zq+vO5523Jld6ssVuzs9uwIrJhfcYBj50mXWRBcMhzajLjWDgcih0DuykPcBpoTL +# lOL8LpXooqnr+QLYE4BpUep3JySMYfPz2hfOL3g02WEfsOxp8ANbcdiqM31dm3vS +# heEkmjHA2zuM+Tgn4j5n+Any7IODYQkIrNVhLdML09eu1dIPhp24lFtnWTYNaFTO +# fMqFa3Ab8KDKicmp0AthRNZVg0BPAL58+B0UcoBGKzS9jscwOTu1JmNlisOKkVUV +# kSJ5Fo/ctfDSPdCTVaIXXF7l40k1cM/X2O0JdAS97T78lYjtw/PybuzX5shxBh/R +# qTPvCyAhIxBVKfN/hfs4CIoFaqWJ0r/8SB1CGsyyIcPfEgMo8ceq1w5Zo0JfnyFi +# 6Guo+z3LPFl/exQaRubErsAUTfyBY5/5liyvjAgyDYnEB8vHO7c7Fg2tGd5hGgYs +# +AOoWx24+XcyxpUkAajDhky9Dl+8JZTjts6BcT9sYTmOodk/SgIwggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyRDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAoj0WtVVQUNSK +# oqtrjinRAsBUdoOggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyG2eQwIhgPMjAyNTA5MzAyMjM2MjBaGA8yMDI1 +# MTAwMTIyMzYyMFowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA7IbZ5AIBADAHAgEA +# AgIgyTAHAgEAAgITKzAKAgUA7IgrZAIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor +# BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUA +# A4IBAQAmufR59ho6kKb6B6MxWsOHLIcIVkeFSze45Y0exPCewXA8iw/M8LFcBaeQ +# /Oobtf4rOQu4WfVKBaYxB8teo9PGRIhX5lIxnpnVlYgcoLGp1vRELlujDfuqEhkb +# sg/E2EumO3gWJIAG/EVhYLtA1Goo5JKff2mHi8hHixo0ujIH7ySMXPuHLVbzo6rE +# hYI0g8HFS4UsBgIy3v/KYO0JXiXLxtzi0Jhfhnqx1MM4RKvfttKMg/MzA/YkvssB +# SdevnKK72czbS6S+JlH+FF/5j5K+TS2xZrkptJFmH2oRtVep8mgEgbhKJEiERJeP +# EBqIWwTP4s08gtlCGMGQsLSkMh79MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC +# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV +# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp +# bWUtU3RhbXAgUENBIDIwMTACEzMAAAH9c/loWs0MYe0AAQAAAf0wDQYJYIZIAWUD +# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B +# CQQxIgQgkaMEs6O9ga5mzUDZmkwp1tvB4Gb8MO3yy9/wDS4fIf4wgfoGCyqGSIb3 +# DQEJEAIvMYHqMIHnMIHkMIG9BCCAKEgNyUowvIfx/eDfYSupHkeF1p6GFwjKBs8l +# RB4NRzCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u +# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp +# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB +# /XP5aFrNDGHtAAEAAAH9MCIEICOKE9Y+s7jpA8mr/KuDUPYVTcdXrhgkUSP/NDoK +# qskwMA0GCSqGSIb3DQEBCwUABIICADU2mek75KAjLj8j5o0jogSEHX69AgsLuMzE +# LXlcJFJUpGCIs9KEn6Z9OL18AyXFthdYxVTyOxAngLgq/6bo05wBJmQLB9oqeM2D +# WOBDxlea0jOKVwCIpHaPDisTrS04WFj0Peyhjw8HotLyH2Gdkj9iKlKwuworlbfx +# R2w5+9DChGi0FvDw9eKIpnzT/7y1IWkTyFwqnjjQBeq558APfdavyrKklMeyuliv +# 06N2baSYYqm/iiPqHkUwa8tEotB9wE8Q7JkQwJpzNwkXkqlnib/V2BkrOb90oDvm +# TZWob41SxHvNxoq5YjU4GkAh2254PjXTAWktBCIsZU93H3UI3yC45baNbHVd0Giy +# fwc0o+1EEND+yqjzBlx4HM7Eni2KJTN3eDqCVONmwC4T9E5iqO1s65b941w44LjC +# qGrFkE85GAVKcGtT/ZnNCUIgD8uleA/WSkBjrBLoD2pKnp1kDtjiFDtoAHdWnAVf +# SbzU++f3AxdhIfvAweGBrAphGeAODV/wob95+tC96LoJGV9kTj988HrEO9dNkAz5 +# IlxKXKOjv1vkU+ERnxHCBPLxsO/K9qVrV+ZAUOoh2gY4NAO/wncfcy6aZbV868x7 +# +uhBw4TzO7wkCEQq1Eo9r+D6EwZaFcecr38CFzj6OK/jQvMsKbDv33EhJ+VNUgns +# RyAvZ0oW +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psm1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psm1 new file mode 100644 index 000000000000..d423f0bc1702 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psm1 @@ -0,0 +1,226 @@ +if($PSEdition -ne 'Desktop') +{ + Import-Module $('{0}\netcoreapp3.1\Microsoft.Teams.PowerShell.TeamsCmdlets.dll' -f $PSScriptRoot) +} +else +{ + Import-Module $('{0}\net472\Microsoft.Teams.PowerShell.TeamsCmdlets.dll' -f $PSScriptRoot) +} +# SIG # Begin signature block +# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCtJNoep0vYvS0u +# zCBbwqBqybUYNuPYHWudLYoWOcLIVqCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIF3F +# viB5I/Ax1ZFPXrSiQ9VfQ9tIZcCOZ+89t8Pe2ekmMEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEA6TuOvRDRWgSB20of7Bc0HNzscdou+QEljnZy +# iUjzm8nstTBeX8C8ZzHZAW9ZAyyUcc5btohoi/w4sYFbnzUM/4PGcfMnMwWOiO82 +# baFd1/M6EqK6cfN0svpDfF9xlz4D55LpqkHwvSQ1o4/B6qJxZNX3GT9XfXRF+R+7 +# +hEQXWAULWVXLNgr0/wPG36A65VVKzJirMhoeEujWdTe5NxTwM6nPP/s2Kx/5EFb +# wd8owyknEPWGNP6q+QCStKiPHU7yLT2S2Syvva3HkTV4xiONhJPrXrANoHyz7VRs +# ww21m0PSuEb1zk/49ub68VZ1q/sVrnujGl1XEBOPtDvmiqJ0A6GCF7AwghesBgor +# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCD8tLi1+mhEnfJS/P2mXfQHMUEkPsE6F1S5 +# QTI4uAsUjgIGaKR4CbFTGBMyMDI1MTAwMTA4MzMwNy41MDdaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo0MzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+vs7 +# RNN3M8bTAAEAAAH6MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExMVoXDTI1MTAyMjE4MzExMVowgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjQzMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# yhZVBM3PZcBfEpAf7fIIhygwYVVP64USeZbSlRR3pvJebva0LQCDW45yOrtpwIpG +# yDGX+EbCbHhS5Td4J0Ylc83ztLEbbQD7M6kqR0Xj+n82cGse/QnMH0WRZLnwggJd +# enpQ6UciM4nMYZvdQjybA4qejOe9Y073JlXv3VIbdkQH2JGyT8oB/LsvPL/kAnJ4 +# 5oQIp7Sx57RPQ/0O6qayJ2SJrwcjA8auMdAnZKOixFlzoooh7SyycI7BENHTpkVK +# rRV5YelRvWNTg1pH4EC2KO2bxsBN23btMeTvZFieGIr+D8mf1lQQs0Ht/tMOVdah +# 14t7Yk+xl5P4Tw3xfAGgHsvsa6ugrxwmKTTX1kqXH5XCdw3TVeKCax6JV+ygM5i1 +# NroJKwBCW11Pwi0z/ki90ZeO6XfEE9mCnJm76Qcxi3tnW/Y/3ZumKQ6X/iVIJo7L +# k0Z/pATRwAINqwdvzpdtX2hOJib4GR8is2bpKks04GurfweWPn9z6jY7GBC+js8p +# SwGewrffwgAbNKm82ZDFvqBGQQVJwIHSXpjkS+G39eyYOG2rcILBIDlzUzMFFJbN +# h5tDv3GeJ3EKvC4vNSAxtGfaG/mQhK43YjevsB72LouU78rxtNhuMXSzaHq5fFiG +# 3zcsYHaa4+w+YmMrhTEzD4SAish35BjoXP1P1Ct4Va0CAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBRjjHKbL5WV6kd06KocQHphK9U/vzAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAuFbCorFrvodG+ZNJH3Y+Nz5QpUytQVObOyYFrgcGrxq6MUa4yLmxN4xW +# dL1kygaW5BOZ3xBlPY7Vpuf5b5eaXP7qRq61xeOrX3f64kGiSWoRi9EJawJWCzJf +# UQRThDL4zxI2pYc1wnPp7Q695bHqwZ02eaOBudh/IfEkGe0Ofj6IS3oyZsJP1yat +# cm4kBqIH6db1+weM4q46NhAfAf070zF6F+IpUHyhtMbQg5+QHfOuyBzrt67CiMJS +# KcJ3nMVyfNlnv6yvttYzLK3wS+0QwJUibLYJMI6FGcSuRxKlq6RjOhK9L3QOjh0V +# CM11rHM11ZmN0euJbbBCVfQEufOLNkG88MFCUNE10SSbM/Og/CbTko0M5wbVvQJ6 +# CqLKjtHSoeoAGPeeX24f5cPYyTcKlbM6LoUdO2P5JSdI5s1JF/On6LiUT50adpRs +# tZajbYEeX/N7RvSbkn0djD3BvT2Of3Wf9gIeaQIHbv1J2O/P5QOPQiVo8+0AKm6M +# 0TKOduihhKxAt/6Yyk17Fv3RIdjT6wiL2qRIEsgOJp3fILw4mQRPu3spRfakSoQe +# 5N0e4HWFf8WW2ZL0+c83Qzh3VtEPI6Y2e2BO/eWhTYbIbHpqYDfAtAYtaYIde87Z +# ymXG3MO2wUjhL9HvSQzjoquq+OoUmvfBUcB2e5L6QCHO6qTO7WowggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo0MzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUA94Z+bUJn+nKw +# BvII6sg0Ny7aPDaggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyG+iMwIhgPMjAyNTEwMDEwMDUzNTVaGA8yMDI1 +# MTAwMjAwNTM1NVowdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA7Ib6IwIBADAKAgEA +# AgItJAIB/zAHAgEAAgIZEzAKAgUA7IhLowIBADA2BgorBgEEAYRZCgQCMSgwJjAM +# BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB +# CwUAA4IBAQA583XbQoKh/10MA7+Ujzrcdwv4sL0mvb8WSmgA4kJCPmh14/C3jvzy +# RpcSNYxQbRkMEclEpVCXRsfgrmGL5p52U8qKEGXyvGAp8XaxhklYYuWfACDfCKdH +# T0KhlXTQrGiZP2m+F0Di5QKstoDY/fq5m7Y5b3UYa3lEi6n3Lms0ezpf9rXWusot +# K0SVpTayoddl986SLKLVzqvlEUSdF4jFJp6KZ/flzIE00qqvoRE3jESffoTNMI6c +# fShEm1O3Fg0ubJanNSHN+xNLFF+wE87TzV59AP/Ixwwt4BFsQn4lL1kUKs81VzHp +# XsO6bcaF5N2PtFKTmtAt3qVZEpio+Dj4MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE +# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc +# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 +# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH6+ztE03czxtMAAQAAAfowDQYJYIZI +# AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG +# 9w0BCQQxIgQgqO2PTggYwTiT3pA4tzgBhRKPPqUxuknOaODh8BQgXVYwgfoGCyqG +# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCB98n8tya8+B2jjU/dpJRIwHwHHpco5ogNS +# tYocbkOeVjCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n +# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y +# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz +# AAAB+vs7RNN3M8bTAAEAAAH6MCIEICgabd0aMglwPIRAQpeLtPTt+Pmsi4Ljxvse +# jujm3TVJMA0GCSqGSIb3DQEBCwUABIICAEjZyxTJhvjHoA9iDaTr+1pSztIzKFSG +# 7qjunlzeWxu5AmgMuHBcxawIXI1dWfEax1V1TO4fe02ZOSH3zTNYgV9TOVKRnruW +# pGwb9U85sn2nIE0fCMC2BkYexq2z4L+gacKoTgvvkTL4taEB706HOJpqbuSRWFTH +# 9tStaisprRQRTso2C7I89EwWmgro2SNJlQMU2qP8lr8nSSwCMlnaNyEfv4CIqJJb +# aBA30yHYLgcnChSRUqGeEkqR3VxiprTmw/B2FlCM9tVsT3jeBoQd1irjzCSZMbUW +# g6Q4DjMNdn3jDG0IHBuecqG16tNIsVcCFePfH73Klo8KtDXhB4bs+HfmctJy9Eh5 +# Ps8rjfzQpmGaF+1kAxAZ9WVPJoSQOQ01+PrRAkW83nzT6S/1asgXthKyIaVApV7B +# 7yabWsECdCoIb2+qrmghpr78/Pmt0baT97W/WmxPinB8ZW2pSwWLc9QTCVPNjR32 +# L5hVfTgi0mHl9Hptz/iurKnr9NlRdV/Dsa0zfM0Ve/HDo7M/BsNk/Po4RYWvcnhA +# Ls4vFmY7L4bS+/RVVyEmXFBWUE5QaR6/Dasnb+zEaKGMYk5XLYfKCWE9QDrSNK2D +# SmI1O/Xk93xvov99uBYdkhjNMThQcKgUXRTzXd6aceBdbqHsC6s1sezM/GdlNhbT +# DoOtI5N2m/gY +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.PowerShell.TeamsCmdlets.xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.xml similarity index 93% rename from Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.PowerShell.TeamsCmdlets.xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.xml index 4a57406f73cd..b19a7caf7fea 100644 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.PowerShell.TeamsCmdlets.xml +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.xml @@ -893,6 +893,46 @@ Teams App identifier in MS Teams. + + Represents the type of call, used to filter export requests. + Represents the type of artifact. + + + Recording/Transcript artifact type. + + + Notes artifact type. + + + Whiteboard artifact type. + + + Implements the Get-TeamsArtifacts cmdlet. + + + Gets or sets User. + + + Gets or sets Teams. + + + Gets or sets ArtifactType. + + + Gets or sets StartTime. + + + Gets or sets EndTime. + + + Gets or sets Usage. + + + Shows the cmdlet usage information. + + + Handles an invocation of the Get-TeamsArtifacts cmdlet. + Default constructor necessary for cmdlet. @@ -932,6 +972,71 @@ + + + Cmdlet to verify the status of tenant for Private channel migration. + + + + + The resource uri for Teams and Channels service. + + + + + Default constructor. + + + + + Constructor with IHttpClientFactory. + + + + + + Cmdlet name. + + + + + + + + Represents the response model for tenant Private channel migration status. + Includes status, timestamps, and details about the migration process. + + + + + The Azure AD tenant identifier. + + + + + The current migration status for Private channels. + + + + + The timestamp when the migration status was last checked. + + + + + Additional details about the migration status. + + + + + The timestamp when the migration started. + + + + + The timestamp when the migration completed. + + Get the Unified App from UAM service. @@ -1356,6 +1461,11 @@ creation Options + + + Resource Behavior Options + + Education Object Type @@ -1980,6 +2090,66 @@ Model for import hierarchy operation status comming from Teams Hierarchy service. + + + Enum for the long running operation status. + + + + + Not Started Graph Long Running Operation status. + + + + + Running Graph Long Running Operation status. + + + + + Succeeded Graph Long Running Operation status. + + + + + Failed Graph Long Running Operation status. + + + + + Unknown Graph Long Running Operation status. + + + + + Enum for the retail operation status. + + + + + Starting Retail Operation status. + + + + + Ingesting Retail Operation status. + + + + + Successful Retail Operation status. + + + + + Failed Graph Long Running Operation status. + + + + + Unknown Graph Long Running Operation status. + + Template @@ -2017,6 +2187,11 @@ Gets or sets the app Deploy to data. + + + Gets or sets the app name for the Enhanced teams app or Teams app. + + available To data for the pscmdlet response (V2). @@ -2154,6 +2329,11 @@ Gets or sets the app Deployed to data. + + + Gets or sets the app name for the Enhanced teams app or Teams app. + + AvailableTo details for the unified app (V2). @@ -3198,6 +3378,51 @@ + + + HttpClient handler class that handles token refresh and retries due to throttling. + + + + + Initializes a new instance of the class. + + The "Application (client) ID" (GUID) for this app from the Entra portal. + The tenantId (GUID) where this will be run. + The client secret generated for this app from the Entra portal. + + + + Sends an HTTP request with authentication and retries in the event of throttling, and handles token refresh. + + The HTTP request message to send. + The cancellation token to cancel operation. + The task object representing the asynchronous operation. + + + + Represents a single export job. + + + + + Initializes a new instance of the class. + + The HTTP client to be used for requests. + Where to output the data. + Optionally limit single to a single user's ODB. + Optionally limit search to SharePoint and not ODB. + Optional single type of artifact to be exported (default is all types). + Optional start time to return artifacts created on or after this time. + Optional end time to return artifacts created on or before this time. + + + + Starts the export job. + + The number of artifacts found. + The number of errors encountered during the export. + The utilities of graph APIs. diff --git a/Modules/MicrosoftTeams/7.4.0/MicrosoftTeams.psd1 b/Modules/MicrosoftTeams/7.4.0/MicrosoftTeams.psd1 new file mode 100644 index 000000000000..64c48ed59315 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/MicrosoftTeams.psd1 @@ -0,0 +1,1051 @@ +# +# Module manifest for module 'MicrosoftTeams' +# +# Generated by: Microsoft Corporation +# +# Updated on: 6/30/2020 +# + +@{ +# Script module or binary module file associated with this manifest. +RootModule = './MicrosoftTeams.psm1' + +# Version number of this module. +ModuleVersion = '7.4.0' + +# Supported PSEditions +CompatiblePSEditions = 'Core', 'Desktop' + +# ID used to uniquely identify this module +GUID = 'd910df43-3ca6-4c9c-a2e3-e9f45a8e2ad9' + +# Author of this module +Author = 'Microsoft Corporation' + +# Company or vendor of this module +CompanyName = 'Microsoft Corporation' + +# Copyright statement for this module +Copyright = 'Microsoft Corporation. All rights reserved.' + +# Description of the functionality provided by this module +Description = 'Microsoft Teams cmdlets module for Windows PowerShell and PowerShell Core. + +For more information, please visit the following: https://docs.microsoft.com/MicrosoftTeams/teams-powershell-overview' + +# Minimum version of the Windows PowerShell engine required by this module +PowerShellVersion = '5.1' + +# Name of the Windows PowerShell host required by this module +# PowerShellHostName = '' + +# Minimum version of the Windows PowerShell host required by this module +# PowerShellHostVersion = '' + +# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +DotNetFrameworkVersion = '4.7.2' + +# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +CLRVersion = '4.0' + +# Processor architecture (None, X86, Amd64) required by this module +# ProcessorArchitecture = 'Amd64' + +# Modules that must be imported into the global environment prior to importing this module +# RequiredModules = @() + +# Assemblies that must be loaded prior to importing this module +# RequiredAssemblies = @() + +# Script files (.ps1) that are run in the caller's environment prior to importing this module. +# Removed this script from here because this module is used in SAW machines as well where Contraint Language Mode is on. +# Because of CLM constraint we were not able to import Teams module to SAW machines, that is why removing this script. +# ScriptsToProcess = @() + +# Type files (.ps1xml) to be loaded when importing this module +# TypesToProcess = @() + +# Format files (.ps1xml) to be loaded when importing this module +FormatsToProcess = @() + +# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess +#NestedModules = @() + +# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. +FunctionsToExport = @( + 'Clear-CsOnlineTelephoneNumberOrder' + ,'Complete-CsOnlineTelephoneNumberOrder' + ,'Disable-CsOnlineSipDomain' +#preview ,'Disable-CsTeamsShiftsConnectionErrorReport' + ,'Enable-CsOnlineSipDomain' + ,'Export-CsAcquiredPhoneNumber' + ,'Export-CsAutoAttendantHolidays' + ,'Export-CsOnlineAudioFile' + ,'Find-CsGroup' + ,'Find-CsOnlineApplicationInstance' + ,'Get-CsApplicationAccessPolicy' + ,'Get-CsApplicationMeetingConfiguration' + ,'Get-CsAutoAttendant' + ,'Get-CsAutoAttendantHolidays' + ,'Get-CsAutoAttendantStatus' + ,'Get-CsAutoAttendantSupportedLanguage' + ,'Get-CsAutoAttendantSupportedTimeZone' + ,'Get-CsAutoAttendantTenantInformation' + ,'Get-CsBatchPolicyAssignmentOperation' + ,'Get-CsCallingLineIdentity' + ,'Get-CsCallQueue' + ,'Get-CsCloudCallDataConnection' + ,'Get-CsEffectiveTenantDialPlan' + ,'Get-CsExportAcquiredPhoneNumberStatus' + ,'Get-CsGroupPolicyAssignment' + ,'Get-CsHybridTelephoneNumber' + ,'Get-CsInboundBlockedNumberPattern' + ,'Get-CsInboundExemptNumberPattern' + ,'Get-CsMainlineAttendantAppointmentBookingFlow' + ,'Get-CsMainlineAttendantFlow' + ,'Get-CsMainlineAttendantQuestionAnswerFlow' + ,'Get-CsMeetingMigrationStatus' + ,'Get-CsOnlineApplicationInstance' + ,'Get-CsOnlineApplicationInstanceAssociation' + ,'Get-CsOnlineApplicationInstanceAssociationStatus' + ,'Get-CsOnlineAudioConferencingRoutingPolicy' + ,'Get-CsOnlineAudioFile' + ,'Get-CsOnlineDialInConferencingBridge' + ,'Get-CsOnlineDialInConferencingLanguagesSupported' + ,'Get-CsOnlineDialinConferencingPolicy' + ,'Get-CsOnlineDialInConferencingServiceNumber' + ,'Get-CsOnlineDialinConferencingTenantConfiguration' + ,'Get-CsOnlineDialInConferencingTenantSettings' + ,'Get-CsOnlineDialInConferencingUser' + ,'Get-CsOnlineDialOutPolicy' + ,'Get-CsOnlineDirectoryTenant' + ,'Get-CsOnlineEnhancedEmergencyServiceDisclaimer' + ,'Get-CsOnlineLisCivicAddress' + ,'Get-CsOnlineLisLocation' + ,'Get-CsOnlineLisPort' + ,'Get-CsOnlineLisSubnet' + ,'Get-CsOnlineLisSwitch' + ,'Get-CsOnlineLisWirelessAccessPoint' + ,'Get-CsOnlinePSTNGateway' + ,'Get-CsOnlinePstnUsage' + ,'Get-CsOnlineSchedule' + ,'Get-CsOnlineSipDomain' + ,'Get-CsOnlineTelephoneNumber' + ,'Get-CsOnlineTelephoneNumberCountry' + ,'Get-CsOnlineTelephoneNumberOrder' + ,'Get-CsOnlineTelephoneNumberType' + ,'Get-CsOnlineUser' + ,'Get-CsOnlineVoicemailUserSettings' + ,'Get-CsOnlineVoiceRoute' + ,'Get-CsOnlineVoiceRoutingPolicy' + ,'Get-CsOnlineVoiceUser' + ,'Get-CsPhoneNumberAssignment' + ,'Get-CsPhoneNumberPolicyAssignment' + ,'Get-CsPhoneNumberTag' + ,'Get-CsPolicyPackage' + ,'Get-CsSdgBulkSignInRequestStatus' + ,'Get-CsSDGBulkSignInRequestsSummary' + ,'Get-CsTeamsAudioConferencingPolicy' + ,'Get-CsTeamsCallParkPolicy' + ,'Get-CsTeamsCortanaPolicy' + ,'Get-CsTeamsEmergencyCallRoutingPolicy' + ,'Get-CsTeamsEnhancedEncryptionPolicy' + ,'Get-CsTeamsGuestCallingConfiguration' + ,'Get-CsTeamsGuestMeetingConfiguration' + ,'Get-CsTeamsGuestMessagingConfiguration' + ,'Get-CsTeamsIPPhonePolicy' + ,'Get-CsTeamsMediaLoggingPolicy' + ,'Get-CsTeamsMeetingBroadcastConfiguration' + ,'Get-CsTeamsMeetingBroadcastPolicy' + ,'Get-CsTeamsMigrationConfiguration' + ,'Get-CsTeamsMobilityPolicy' + ,'Get-CsTeamsNetworkRoamingPolicy' + ,'Get-CsTeamsRoomVideoTeleConferencingPolicy' + ,'Get-CsTeamsSettingsCustomApp' + ,'Get-CsTeamsShiftsAppPolicy' + ,'Get-CsTeamsShiftsConnectionConnector' + ,'Get-CsTeamsShiftsConnectionErrorReport' + ,'Get-CsTeamsShiftsConnection' + ,'Get-CsTeamsShiftsConnectionInstance' + ,'Get-CsTeamsShiftsConnectionOperation' + ,'Get-CsTeamsShiftsConnectionSyncResult' + ,'Get-CsTeamsShiftsConnectionTeamMap' + ,'Get-CsTeamsShiftsConnectionWfmTeam' + ,'Get-CsTeamsShiftsConnectionWfmUser' + ,'Get-CsTeamsSurvivableBranchAppliance' + ,'Get-CsTeamsSurvivableBranchAppliancePolicy' + ,'Get-CsTeamsTargetingPolicy' + ,'Get-CsTeamsTranslationRule' + ,'Get-CsTeamsUnassignedNumberTreatment' + ,'Get-CsTeamsUpgradePolicy' + ,'Get-CsTeamsVdiPolicy' + ,'Get-CsTeamsVideoInteropServicePolicy' + ,'Get-CsTeamsWorkLoadPolicy' + ,'Get-CsTeamTemplate' + ,'Get-CsTeamTemplateList' + ,'Get-CsTenant' + ,'Get-CsTenantBlockedCallingNumbers' + ,'Get-CsTenantDialPlan' + ,'Get-CsTenantFederationConfiguration' + ,'Get-CsTenantLicensingConfiguration' + ,'Get-CsTenantMigrationConfiguration' + ,'Get-CsTenantNetworkConfiguration' + ,'Get-CsTenantNetworkRegion' + ,'Get-CsTenantNetworkSubnet' + ,'Get-CsTenantTrustedIPAddress' + ,'Get-CsUserCallingSettings' + ,'Get-CsUserPolicyAssignment' + ,'Get-CsUserPolicyPackage' + ,'Get-CsUserPolicyPackageRecommendation' + ,'Get-CsVideoInteropServiceProvider' + ,'Grant-CsApplicationAccessPolicy' + ,'Get-CsComplianceRecordingForCallQueueTemplate' + ,'Get-CsSharedCallQueueHistoryTemplate' + ,'Get-CsTagsTemplate' + ,'Grant-CsCallingLineIdentity' + ,'Grant-CsDialoutPolicy' + ,'Grant-CsGroupPolicyPackageAssignment' + ,'Grant-CsOnlineAudioConferencingRoutingPolicy' + ,'Grant-CsOnlineVoicemailPolicy' + ,'Grant-CsOnlineVoiceRoutingPolicy' + ,'Grant-CsTeamsAudioConferencingPolicy' + ,'Grant-CsTeamsCallHoldPolicy' + ,'Grant-CsTeamsCallParkPolicy' + ,'Grant-CsTeamsChannelsPolicy' + ,'Grant-CsTeamsCortanaPolicy' + ,'Grant-CsTeamsEmergencyCallingPolicy' + ,'Grant-CsTeamsEmergencyCallRoutingPolicy' + ,'Grant-CsTeamsEnhancedEncryptionPolicy' + ,'Grant-CsTeamsFeedbackPolicy' + ,'Grant-CsTeamsIPPhonePolicy' + ,'Grant-CsTeamsMediaLoggingPolicy' + ,'Grant-CsTeamsMeetingBroadcastPolicy' + ,'Grant-CsTeamsMeetingPolicy' + ,'Grant-CsTeamsMessagingPolicy' + ,'Grant-CsTeamsMobilityPolicy' + ,'Grant-CsTeamsRoomVideoTeleConferencingPolicy' + ,'Grant-CsTeamsSurvivableBranchAppliancePolicy' + ,'Grant-CsTeamsUpdateManagementPolicy' + ,'Grant-CsTeamsUpgradePolicy' + ,'Grant-CsTeamsVideoInteropServicePolicy' + ,'Grant-CsTeamsVoiceApplicationsPolicy' + ,'Grant-CsTeamsWorkLoadPolicy' + ,'Grant-CsTenantDialPlan' + ,'Grant-CsUserPolicyPackage' + ,'Grant-CsTeamsComplianceRecordingPolicy' + ,'Import-CsAutoAttendantHolidays' + ,'Import-CsOnlineAudioFile' + ,'Invoke-CsInternalPSTelemetry' + ,'Move-CsInternalHelper' + ,'New-CsApplicationAccessPolicy' + ,'New-CsAutoAttendant' + ,'New-CsAutoAttendantCallableEntity' + ,'New-CsAutoAttendantCallFlow' + ,'New-CsAutoAttendantCallHandlingAssociation' + ,'New-CsAutoAttendantDialScope' + ,'New-CsAutoAttendantMenu' + ,'New-CsAutoAttendantMenuOption' + ,'New-CsAutoAttendantPrompt' + ,'New-CsBatchPolicyAssignmentOperation' + ,'New-CsBatchPolicyPackageAssignmentOperation' + ,'New-CsCallingLineIdentity' + ,'New-CsCallQueue' + ,'New-CsCloudCallDataConnection' + ,'New-CsCustomPolicyPackage' + ,'New-CsEdgeAllowAllKnownDomains' + ,'New-CsEdgeAllowList' + ,'New-CsEdgeDomainPattern' + ,'New-CsGroupPolicyAssignment' + ,'New-CsHybridTelephoneNumber' + ,'New-CsInboundBlockedNumberPattern' + ,'New-CsInboundExemptNumberPattern' + ,'New-CsMainlineAttendantAppointmentBookingFlow' + ,'New-CsMainlineAttendantQuestionAnswerFlow' + ,'New-CsOnlineApplicationInstance' + ,'New-CsOnlineApplicationInstanceAssociation' + ,'New-CsOnlineAudioConferencingRoutingPolicy' + ,'New-CsOnlineDateTimeRange' + ,'New-CsOnlineLisCivicAddress' + ,'New-CsOnlineLisLocation' + ,'New-CsOnlinePSTNGateway' + ,'New-CsOnlineSchedule' + ,'New-CsOnlineTelephoneNumberOrder' + ,'New-CsOnlineTimeRange' + ,'New-CsOnlineVoiceRoute' + ,'New-CsOnlineVoiceRoutingPolicy' + ,'New-CsSdgBulkSignInRequest' + ,'New-CsTeamsAudioConferencingPolicy' + ,'New-CsTeamsCallParkPolicy' + ,'New-CsTeamsCortanaPolicy' + ,'New-CsTeamsEmergencyCallRoutingPolicy' + ,'New-CsTeamsEmergencyNumber' + ,'New-CsTeamsEnhancedEncryptionPolicy' + ,'New-CsTeamsIPPhonePolicy' + ,'New-CsTeamsMeetingBroadcastPolicy' + ,'New-CsTeamsMobilityPolicy' + ,'New-CsTeamsNetworkRoamingPolicy' + ,'New-CsTeamsRoomVideoTeleConferencingPolicy' + ,'New-CsTeamsShiftsConnectionBatchTeamMap' + ,'New-CsTeamsShiftsConnection' + ,'New-CsTeamsShiftsConnectionInstance' + ,'New-CsTeamsSurvivableBranchAppliance' + ,'New-CsTeamsSurvivableBranchAppliancePolicy' + ,'New-CsTeamsTranslationRule' + ,'New-CsTeamsUnassignedNumberTreatment' + ,'New-CsTeamsVdiPolicy' + ,'New-CsTeamsWorkLoadPolicy' + ,'New-CsTeamTemplate' + ,'New-CsTenantDialPlan' + ,'New-CsTenantNetworkRegion' + ,'New-CsTenantNetworkSite' + ,'New-CsTenantNetworkSubnet' + ,'New-CsTenantTrustedIPAddress' + ,'New-CsUserCallingDelegate' + ,'New-CsVideoInteropServiceProvider' + ,'New-CsVoiceNormalizationRule' + ,'New-CsOnlineDirectRoutingTelephoneNumberUploadOrder' + ,'New-CsOnlineTelephoneNumberReleaseOrder' + ,'New-CsComplianceRecordingForCallQueueTemplate' + ,'New-CsTagsTemplate' + ,'New-CsTag' + ,'New-CsSharedCallQueueHistoryTemplate' + ,'Register-CsOnlineDialInConferencingServiceNumber' + ,'Remove-CsApplicationAccessPolicy' + ,'Remove-CsAutoAttendant' + ,'Remove-CsCallingLineIdentity' + ,'Remove-CsCallQueue' + ,'Remove-CsCustomPolicyPackage' + ,'Remove-CsGroupPolicyAssignment' + ,'Remove-CsHybridTelephoneNumber' + ,'Remove-CsInboundBlockedNumberPattern' + ,'Remove-CsInboundExemptNumberPattern' + ,'Remove-CsMainlineAttendantAppointmentBookingFlow' + ,'Remove-CsMainlineAttendantQuestionAnswerFlow' + ,'Remove-CsOnlineApplicationInstanceAssociation' + ,'Remove-CsOnlineAudioConferencingRoutingPolicy' + ,'Remove-CsOnlineAudioFile' + ,'Remove-CsOnlineDialInConferencingTenantSettings' + ,'Remove-CsOnlineLisCivicAddress' + ,'Remove-CsOnlineLisLocation' + ,'Remove-CsOnlineLisPort' + ,'Remove-CsOnlineLisSubnet' + ,'Remove-CsOnlineLisSwitch' + ,'Remove-CsOnlineLisWirelessAccessPoint' + ,'Remove-CsOnlinePSTNGateway' + ,'Remove-CsOnlineSchedule' + ,'Remove-CsOnlineTelephoneNumber' + ,'Remove-CsOnlineVoiceRoute' + ,'Remove-CsOnlineVoiceRoutingPolicy' + ,'Remove-CsPhoneNumberAssignment' + ,'Remove-CsPhoneNumberTag' + ,'Remove-CsTeamsAudioConferencingPolicy' + ,'Remove-CsTeamsCallParkPolicy' + ,'Remove-CsTeamsCortanaPolicy' + ,'Remove-CsTeamsEmergencyCallRoutingPolicy' + ,'Remove-CsTeamsEnhancedEncryptionPolicy' + ,'Remove-CsTeamsIPPhonePolicy' + ,'Remove-CsTeamsMeetingBroadcastPolicy' + ,'Remove-CsTeamsMobilityPolicy' + ,'Remove-CsTeamsNetworkRoamingPolicy' + ,'Remove-CsTeamsRoomVideoTeleConferencingPolicy' + ,'Remove-CsTeamsShiftsConnection' + ,'Remove-CsTeamsShiftsConnectionInstance' + ,'Remove-CsTeamsShiftsConnectionTeamMap' + ,'Remove-CsTeamsShiftsScheduleRecord' + ,'Remove-CsTeamsSurvivableBranchAppliance' + ,'Remove-CsTeamsSurvivableBranchAppliancePolicy' + ,'Remove-CsTeamsTargetingPolicy' + ,'Remove-CsTeamsTranslationRule' + ,'Remove-CsTeamsUnassignedNumberTreatment' + ,'Remove-CsTeamsVdiPolicy' + ,'Remove-CsTeamsWorkLoadPolicy' + ,'Remove-CsTeamTemplate' + ,'Remove-CsTenantDialPlan' + ,'Remove-CsTenantNetworkRegion' + ,'Remove-CsTenantNetworkSite' + ,'Remove-CsTenantNetworkSubnet' + ,'Remove-CsTenantTrustedIPAddress' + ,'Remove-CsUserCallingDelegate' + ,'Remove-CsUserLicenseGracePeriod' + ,'Remove-CsVideoInteropServiceProvider' + ,'Remove-CsComplianceRecordingForCallQueueTemplate' + ,'Remove-CsTagsTemplate' + ,'Remove-CsSharedCallQueueHistoryTemplate' + ,'Set-CsApplicationAccessPolicy' + ,'Set-CsApplicationMeetingConfiguration' + ,'Set-CsAutoAttendant' + ,'Set-CsCallingLineIdentity' + ,'Set-CsCallQueue' + ,'Set-CsInboundBlockedNumberPattern' + ,'Set-CsInboundExemptNumberPattern' + ,'Set-CsMainlineAttendantAppointmentBookingFlow' + ,'Set-CsMainlineAttendantQuestionAnswerFlow' + ,'Set-CsOnlineApplicationInstance' + ,'Set-CsOnlineAudioConferencingRoutingPolicy' + ,'Set-CsOnlineDialInConferencingBridge' + ,'Set-CsOnlineDialInConferencingServiceNumber' + ,'Set-CsOnlineDialInConferencingTenantSettings' + ,'Set-CsOnlineDialInConferencingUser' + ,'Set-CsOnlineDialInConferencingUserDefaultNumber' + ,'Set-CsOnlineEnhancedEmergencyServiceDisclaimer' + ,'Set-CsOnlineLisCivicAddress' + ,'Set-CsOnlineLisLocation' + ,'Set-CsOnlineLisPort' + ,'Set-CsOnlineLisSubnet' + ,'Set-CsOnlineLisSwitch' + ,'Set-CsOnlineLisWirelessAccessPoint' + ,'Set-CsOnlinePSTNGateway' + ,'Set-CsOnlinePstnUsage' + ,'Set-CsOnlineSchedule' + ,'Set-CsOnlineVoiceApplicationInstance' + ,'Set-CsOnlineVoicemailUserSettings' + ,'Set-CsOnlineVoiceRoute' + ,'Set-CsOnlineVoiceRoutingPolicy' + ,'Set-CsOnlineVoiceUser' + ,'Set-CsPhoneNumberAssignment' + ,'Set-CsPhoneNumberPolicyAssignment' + ,'Set-CsPhoneNumberTag' + ,'Set-CsTeamsAudioConferencingPolicy' + ,'Set-CsTeamsCallParkPolicy' + ,'Set-CsTeamsCortanaPolicy' + ,'Set-CsTeamsEmergencyCallRoutingPolicy' + ,'Set-CsTeamsEnhancedEncryptionPolicy' + ,'Set-CsTeamsGuestCallingConfiguration' + ,'Set-CsTeamsGuestMeetingConfiguration' + ,'Set-CsTeamsGuestMessagingConfiguration' + ,'Set-CsTeamsIPPhonePolicy' + ,'Set-CsTeamsMeetingBroadcastConfiguration' + ,'Set-CsTeamsMeetingBroadcastPolicy' + ,'Set-CsTeamsMigrationConfiguration' + ,'Set-CsTeamsMobilityPolicy' + ,'Set-CsTeamsNetworkRoamingPolicy' + ,'Set-CsTeamsRoomVideoTeleConferencingPolicy' + ,'Set-CsTeamsSettingsCustomApp' + ,'Set-CsTeamsShiftsAppPolicy' + ,'Set-CsTeamsShiftsConnection' + ,'Set-CsTeamsShiftsConnectionInstance' + ,'Set-CsTeamsSurvivableBranchAppliance' + ,'Set-CsTeamsSurvivableBranchAppliancePolicy' + ,'Set-CsTeamsTargetingPolicy' + ,'Set-CsTeamsTranslationRule' + ,'Set-CsTeamsUnassignedNumberTreatment' + ,'Set-CsTeamsVdiPolicy' + ,'Set-CsTeamsWorkLoadPolicy' + ,'Set-CsTenantBlockedCallingNumbers' + ,'Set-CsTenantDialPlan' + ,'Set-CsTenantFederationConfiguration' + ,'Set-CsTenantMigrationConfiguration' + ,'Set-CsTenantNetworkRegion' + ,'Set-CsTenantNetworkSite' + ,'Set-CsTenantNetworkSubnet' + ,'Set-CsTenantTrustedIPAddress' + ,'Set-CsUser' + ,'Set-CsUserCallingDelegate' + ,'Set-CsUserCallingSettings' + ,'Set-CsVideoInteropServiceProvider' + ,'Set-CsComplianceRecordingForCallQueueTemplate' + ,'Set-CsTagsTemplate' + ,'Set-CsSharedCallQueueHistoryTemplate' + ,'Start-CsExMeetingMigration' + ,'Sync-CsOnlineApplicationInstance' + ,'Test-CsEffectiveTenantDialPlan' + ,'Test-CsInboundBlockedNumberPattern' + ,'Test-CsTeamsShiftsConnectionValidate' + ,'Test-CsTeamsTranslationRule' + ,'Test-CsTeamsUnassignedNumberTreatment' + ,'Test-CsVoiceNormalizationRule' + ,'Unregister-CsOnlineDialInConferencingServiceNumber' + ,'Update-CsAutoAttendant' + ,'Update-CsCustomPolicyPackage' + ,'Update-CsPhoneNumberTag' + ,'Update-CsTeamsShiftsConnection' + ,'Update-CsTeamsShiftsConnectionInstance' + ,'Update-CsTeamTemplate' + ,'New-CsBatchTeamsDeployment' + ,'Get-CsBatchTeamsDeploymentStatus' + ,'Get-CsPersonalAttendantSettings' + ,'Set-CsPersonalAttendantSettings' +#OCE related functions exports start here. DO NOT MODIFY! + ,'Set-CsOCEContext' + ,'Clear-CsOCEContext' + ,'Get-CsRegionContext' + ,'Set-CsRegionContext' + ,'Clear-CsRegionContext' + ,'Get-CsMeetingMigrationTransactionHistory' + ,'Get-CsMasVersionedSchemaData' + ,'Get-CsMasObjectChangelog' + ,'Get-CsBusinessVoiceDirectoryDiagnosticData' + ,'Get-CsCloudTenant' + ,'Get-CsCloudUser' + ,'Get-CsHostingProvider' + ,'Set-CsTenantUserBackfill' + ,'Invoke-CsCustomHandlerNgtprov' + ,'Invoke-CsCustomHandlerCallBackNgtprov' + ,'New-CsSdgDeviceTaggingRequest' + ,'Get-CsMoveTenantServiceInstanceTaskStatus' + ,'Move-CsTenantServiceInstance' + ,'Move-CsTenantCrossRegion' + ,'Invoke-CsDirectObjectSync' + ,'New-CsSDGDeviceTransferRequest' + ,'Get-CsAadTenant' + ,'Get-CsAadUser' + ,'Clear-CsCacheOperation' + ,'Move-CsAvsTenantPartition' + ,'Invoke-CsMsodsSync' + ,'Get-CsUssUserSettings' + ,'Set-CsUssUserSettings' + ,'Invoke-CsRehomeuser' + ,'Set-CsNotifyCache' +#OCE exports end +) +# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. +CmdletsToExport = @( + 'Add-TeamChannelUser' + ,'Add-TeamUser' + ,'Connect-MicrosoftTeams' + ,'Disconnect-MicrosoftTeams' + ,'Set-TeamsEnvironmentConfig' + ,'Clear-TeamsEnvironmentConfig' + ,'Get-AssociatedTeam' + ,'Get-MultiGeoRegion' + ,'Get-Operation' + ,'Get-SharedWithTeam' + ,'Get-SharedWithTeamUser' + ,'Get-Team' + ,'Get-TeamAllChannel' + ,'Get-TeamChannel' + ,'Get-TeamChannelUser' + ,'Get-TeamIncomingChannel' + ,'Get-TeamsApp' + ,'Get-TeamsArtifacts' + ,'Get-TeamUser' + ,'Get-M365TeamsApp' + ,'Get-AllM365TeamsApps' + ,'Get-M365UnifiedTenantSettings' + ,'Get-M365UnifiedCustomPendingApps' + ,'Get-CsTeamsAcsFederationConfiguration' + ,'Get-CsTeamsMessagingPolicy' + ,'Get-CsTeamsMeetingPolicy' + ,'Get-CsOnlineVoicemailPolicy' + ,'Get-CsOnlineVoicemailValidationConfiguration' + ,'Get-CsTeamsAIPolicy' + ,'Get-CsTeamsFeedbackPolicy' + ,'Get-CsTeamsUpdateManagementPolicy' + ,'Get-CsTeamsChannelsPolicy' + ,'Get-CsTeamsMeetingBrandingPolicy' + ,'Get-CsTeamsEmergencyCallingPolicy' + ,'Get-CsTeamsCallHoldPolicy' + ,'Get-CsTeamsMessagingConfiguration' + ,'Get-CsTeamsVoiceApplicationsPolicy' + ,'Get-CsTeamsEventsPolicy' + ,'Get-CsTeamsExternalAccessConfiguration' + ,'Get-CsTeamsFilesPolicy' + ,'Get-CsTeamsCallingPolicy' + ,'Get-CsTeamsClientConfiguration' + ,'Get-CsExternalAccessPolicy' + ,'Get-CsTeamsAppPermissionPolicy' + ,'Get-CsTeamsAppSetupPolicy' + ,'Get-CsTeamsFirstPartyMeetingTemplateConfiguration' + ,'Get-CsTeamsMeetingTemplatePermissionPolicy' + ,'Get-CsLocationPolicy' + ,'Get-CsTeamsShiftsPolicy' + ,'Get-CsTenantNetworkSite' + ,'Get-CsTeamsCarrierEmergencyCallRoutingPolicy' + ,'Get-CsTeamsMeetingTemplateConfiguration' + ,'Get-CsTeamsFirstPartyMeetingTemplateConfiguration' + ,'Get-CsTeamsVirtualAppointmentsPolicy' + ,'Get-CsTeamsSharedCallingRoutingPolicy' + ,'Get-CsTeamsTemplatePermissionPolicy' + ,'Get-CsTeamsComplianceRecordingPolicy' + ,'Get-CsTeamsComplianceRecordingApplication' + ,'Get-CsTeamsEducationAssignmentsAppPolicy' + ,'Get-CsTeamsUpgradeConfiguration' + ,'Get-CsTeamsAudioConferencingCustomPromptsConfiguration' + ,'Get-CsTeamsSipDevicesConfiguration' + ,'Get-CsTeamsCustomBannerText' + ,'Get-CsTeamsVdiPolicy' + ,'Get-CsTeamsMediaConnectivityPolicy' + ,'Get-CsTeamsMeetingConfiguration' + ,'Get-CsTeamsWorkLocationDetectionPolicy' + ,'Get-CsTeamsRecordingRollOutPolicy' + ,'Get-CsTeamsRemoteLogCollectionConfiguration' + ,'Get-CsTeamsRemoteLogCollectionDevice' + ,'Get-CsTeamsEducationConfiguration' + ,'Get-CsTeamsBYODAndDesksPolicy' + ,'Get-CsTeamsNotificationAndFeedsPolicy' + ,'Get-CsTeamsMultiTenantOrganizationConfiguration' + ,'Get-CsTeamsPersonalAttendantPolicy' + ,'Get-CsPrivacyConfiguration' + ,'Grant-CsTeamsAIPolicy' + ,'Grant-CsTeamsMeetingBrandingPolicy' + ,'Grant-CsExternalAccessPolicy' + ,'Grant-CsTeamsCallingPolicy' + ,'Grant-CsTeamsAppPermissionPolicy' + ,'Grant-CsTeamsAppSetupPolicy' + ,'Grant-CsTeamsEventsPolicy' + ,'Grant-CsTeamsFilesPolicy' + ,'Grant-CsTeamsMediaConnectivityPolicy' + ,'Grant-CsTeamsMeetingTemplatePermissionPolicy' + ,'Grant-CsTeamsCarrierEmergencyCallRoutingPolicy' + ,'Grant-CsTeamsVirtualAppointmentsPolicy' + ,'Grant-CsTeamsSharedCallingRoutingPolicy' + ,'Grant-CsTeamsShiftsPolicy' + ,'Grant-CsTeamsRecordingRollOutPolicy' + ,'Grant-CsTeamsVdiPolicy' + ,'Grant-CsTeamsWorkLocationDetectionPolicy' + ,'Grant-CsTeamsBYODAndDesksPolicy' + ,'Grant-CsTeamsPersonalAttendantPolicy' + ,'New-Team' + ,'New-TeamChannel' + ,'New-TeamsApp' + ,'New-CsTeamsAIPolicy' + ,'New-CsTeamsMessagingPolicy' + ,'New-CsTeamsMeetingPolicy' + ,'New-CsOnlineVoicemailPolicy' + ,'New-CsTeamsFeedbackPolicy' + ,'New-CsTeamsUpdateManagementPolicy' + ,'New-CsTeamsChannelsPolicy' + ,'New-CsTeamsFilesPolicy' + ,'New-CsTeamsMediaConnectivityPolicy' + ,'New-CsTeamsMeetingBrandingTheme' + ,'New-CsTeamsMeetingBackgroundImage' + ,'New-CsTeamsNdiAssuranceSlate' + ,'New-CsTeamsMeetingBrandingPolicy' + ,'New-CsTeamsEmergencyCallingPolicy' + ,'New-CsTeamsEmergencyCallingExtendedNotification' + ,'New-CsTeamsCallHoldPolicy' + ,'New-CsTeamsVoiceApplicationsPolicy' + ,'New-CsTeamsEventsPolicy' + ,'New-CsTeamsCallingPolicy' + ,'New-CsExternalAccessPolicy' + ,'New-CsTeamsAppPermissionPolicy' + ,'New-CsTeamsAppSetupPolicy' + ,'New-CsTeamsMeetingTemplatePermissionPolicy' + ,'New-CsLocationPolicy' + ,'New-CsTeamsCarrierEmergencyCallRoutingPolicy' + ,'New-CsTeamsHiddenMeetingTemplate' + ,'New-CsTeamsVirtualAppointmentsPolicy' + ,'New-CsTeamsSharedCallingRoutingPolicy' + ,'New-CsTeamsHiddenTemplate' + ,'New-CsTeamsTemplatePermissionPolicy' + ,'New-CsTeamsComplianceRecordingPolicy' + ,'New-CsTeamsComplianceRecordingApplication' + ,'New-CsTeamsComplianceRecordingPairedApplication' + ,'New-CsTeamsWorkLocationDetectionPolicy' + ,'New-CsTeamsRecordingRollOutPolicy' + ,'New-CsTeamsRemoteLogCollectionDevice' + ,"New-CsCustomPrompt" + ,"New-CsCustomPromptPackage" + ,'New-CsTeamsShiftsPolicy' + ,'New-CsTeamsCustomBannerText' + ,'New-CsTeamsVdiPolicy' + ,'New-CsTeamsBYODAndDesksPolicy' + ,'New-CsTeamsPersonalAttendantPolicy' + ,'Remove-SharedWithTeam' + ,'Remove-Team' + ,'Remove-TeamChannel' + ,'Remove-TeamChannelUser' + ,'Remove-TeamsApp' + ,'Remove-TeamUser' + ,'Remove-CsTeamsAIPolicy' + ,'Remove-CsTeamsMessagingPolicy' + ,'Remove-CsTeamsMeetingPolicy' + ,'Remove-CsOnlineVoicemailPolicy' + ,'Remove-CsTeamsFeedbackPolicy' + ,'Remove-CsTeamsFilesPolicy' + ,'Remove-CsTeamsUpdateManagementPolicy' + ,'Remove-CsTeamsChannelsPolicy' + ,'Remove-CsTeamsMediaConnectivityPolicy' + ,'Remove-CsTeamsMeetingBrandingPolicy' + ,'Remove-CsTeamsEmergencyCallingPolicy' + ,'Remove-CsTeamsCallHoldPolicy' + ,'Remove-CsTeamsVoiceApplicationsPolicy' + ,'Remove-CsTeamsEventsPolicy' + ,'Remove-CsTeamsCallingPolicy' + ,'Remove-CsExternalAccessPolicy' + ,'Remove-CsTeamsAppPermissionPolicy' + ,'Remove-CsTeamsAppSetupPolicy' + ,'Remove-CsTeamsMeetingTemplatePermissionPolicy' + ,'Remove-CsLocationPolicy' + ,'Remove-CsTeamsCarrierEmergencyCallRoutingPolicy' + ,'Remove-CsTeamsVirtualAppointmentsPolicy' + ,'Remove-CsTeamsSharedCallingRoutingPolicy' + ,'Remove-CsTeamsTemplatePermissionPolicy' + ,'Remove-CsTeamsComplianceRecordingPolicy' + ,'Remove-CsTeamsComplianceRecordingApplication' + ,'Remove-CsTeamsShiftsPolicy' + ,'Remove-CsTeamsCustomBannerText' + ,'Remove-CsTeamsVdiPolicy' + ,'Remove-CsTeamsWorkLocationDetectionPolicy' + ,'Remove-CsTeamsRecordingRollOutPolicy' + ,'Remove-CsTeamsRemoteLogCollectionDevice' + ,'Remove-CsTeamsBYODAndDesksPolicy' + ,'Remove-CsTeamsNotificationAndFeedsPolicy' + ,'Remove-CsTeamsPersonalAttendantPolicy' + ,'Set-Team' + ,'Set-TeamArchivedState' + ,'Set-TeamChannel' + ,'Set-TeamPicture' + ,'Set-TeamsApp' + ,'Set-CsTeamsAcsFederationConfiguration' + ,'Set-CsTeamsAIPolicy' + ,'Set-CsTeamsMessagingPolicy' + ,'Set-CsTeamsMeetingPolicy' + ,'Set-CsOnlineVoicemailPolicy' + ,'Set-CsTeamsFilesPolicy' + ,'Set-CsOnlineVoicemailValidationConfiguration' + ,'Set-CsTeamsFeedbackPolicy' + ,'Set-CsTeamsUpdateManagementPolicy' + ,'Set-CsTeamsChannelsPolicy' + ,'Set-CsTeamsMediaConnectivityPolicy' + ,'Set-CsTeamsMeetingBrandingPolicy' + ,'Set-CsTeamsEmergencyCallingPolicy' + ,'Set-CsTeamsEducationConfiguration' + ,'Set-CsTeamsCallHoldPolicy' + ,'Set-CsTeamsMessagingConfiguration' + ,'Set-CsTeamsVoiceApplicationsPolicy' + ,'Set-CsTeamsEventsPolicy' + ,'Set-CsTeamsExternalAccessConfiguration' + ,'Set-CsTeamsCallingPolicy' + ,'Set-CsTeamsClientConfiguration' + ,'Set-CsExternalAccessPolicy' + ,'Set-CsTeamsAppPermissionPolicy' + ,'Set-CsTeamsAppSetupPolicy' + ,'Set-CsTeamsFirstPartyMeetingTemplateConfiguration' + ,'Set-CsTeamsMeetingTemplatePermissionPolicy' + ,'Set-CsTeamsMultiTenantOrganizationConfiguration' + ,'Set-CsLocationPolicy' + ,'Set-CsTeamsCarrierEmergencyCallRoutingPolicy' + ,'Set-CsTeamsVirtualAppointmentsPolicy' + ,'Set-CsTeamsSharedCallingRoutingPolicy' + ,'Set-CsTeamsTemplatePermissionPolicy' + ,'Set-CsTeamsComplianceRecordingPolicy' + ,'Set-CsTeamsEducationAssignmentsAppPolicy' + ,'Set-CsTeamsComplianceRecordingApplication' + ,'Set-CsTeamsShiftsPolicy' + ,'Set-CsTeamsUpgradeConfiguration' + ,'Set-CsTeamsAudioConferencingCustomPromptsConfiguration' + ,'Set-CsTeamsSipDevicesConfiguration' + ,'Set-CsTeamsMeetingConfiguration' + ,'Set-CsTeamsVdiPolicy' + ,'Set-CsTeamsWorkLocationDetectionPolicy' + ,'Set-CsTeamsRemoteLogCollectionDevice' + ,'Set-CsTeamsRecordingRollOutPolicy' + ,'Set-CsTeamsCustomBannerText' + ,'Set-CsTeamsBYODAndDesksPolicy' + ,'Set-CsTeamsNotificationAndFeedsPolicy' + ,'Set-CsTeamsPersonalAttendantPolicy' + ,'Set-CsPrivacyConfiguration' + ,'Update-M365TeamsApp' + ,'Update-M365UnifiedTenantSettings' + ,'Update-M365UnifiedCustomPendingApp' + + #MPA OCE cmdlets + ,'Get-CsBatchOperationDefinition' + ,'Get-CsBatchOperationStatus' + ,'Get-CsConfiguration' + ,'Get-CsGroupPolicyAssignments' + ,'Get-CsLoginInfo' + ,'Get-CsUserProvHistory' + ,'Get-GPAGroupMembers' + ,'Get-GPAUserMembership' + ,'Get-NgtProvInstanceFailOverStatus' + ,'Get-CsTeamsTenantAbuseConfiguration' + ,'Invoke-CsDirectoryObjectSync' + ,'Invoke-CsGenericNgtProvCommand' + ,'Invoke-CsRefreshGroupUsers' + ,'Invoke-CsReprocessBatchOperation' + ,'Invoke-CsReprocessGroupPolicyAssignment' + ,'Move-NgtProvInstance' + ,'New-CsConfiguration' + ,'Remove-CsConfiguration' + ,'Set-CsConfiguration' + ,'Set-CsTeamsTenantAbuseConfiguration' + ,'Set-CsPublishPolicySchemaDefaults' + + +#preview ,'Add-TeamsAppInstallation' +#preview ,'Get-TeamsAppInstallation' + ,'Get-TeamTargetingHierarchyStatus' +#preview ,'Remove-TeamsAppInstallation' + ,'Remove-TeamTargetingHierarchy' + ,'Set-TeamTargetingHierarchy' +#preview ,'Update-TeamsAppInstallation' +#preview ,'Get-LicenseReportForChangeNotificationSubscription' +#preview ,'Get-TenantPrivateChannelMigrationStatus' + ) + +# Variables to export from this module +VariablesToExport = '*' + +# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. +AliasesToExport = '*' + +# DSC resources to export from this module +# DscResourcesToExport = @() + +# List of all modules packaged with this module +# ModuleList = @() + +# List of all files packaged with this module +# FileList = @() + +# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. +PrivateData = @{ + PSData = @{ + # Tags applied to this module. These help with module discovery in online galleries. + Tags = 'Office365', 'MicrosoftTeams', 'Teams' + + # A URL to the license for this module. + LicenseUri = 'https://raw.githubusercontent.com/MicrosoftDocs/office-docs-powershell/master/teams/LICENSE.txt' + + # A URL to the main website for this project. + ProjectUri = 'https://github.com/MicrosoftDocs/office-docs-powershell/tree/master/teams' + + # A URL to an icon representing this module. + IconUri = 'https://statics.teams.microsoft.com/evergreen-assets/apps/teamscmdlets_largeimage.png' + + # Appends prerelease string to version + Prerelease = '' + + # ReleaseNotes of this module + ReleaseNotes = @' + **7.4.0-GA** (The project - MicrosoftTeams contains changes till this release) +- Releases Get-TeamsArtifacts cmdlet. +- Adds MainlineAttendantAgentVoiceId parameter to New-CsAutoAttendant cmdlet. +- Releases [New|Set|Remove|Get]-CsTagsTemplate cmdlets. +- Releases New-CsTag cmdlet. +- [BREAKING CHANGE] Renames BotId and PairedApplication parameters in [New|Set|Get]-CsComplianceRecordingForCallQueueTemplate cmdlets to BotApplicationInstanceObjectId and PairedApplicationInstanceObjectId respectively. +- Releases Get-TeamsRemoteLogCollectionConfiguration and [Get|Set|New|Remove]-TeamsRemoteLogCollectionDevice cmdlets. + +- The complete release notes can be found in the below link: +https://docs.microsoft.com/MicrosoftTeams/teams-powershell-release-notes +'@ + } # End of PSData hashtable +} # End of PrivateData hashtable + +# HelpInfo URI of this module +# HelpInfoURI = '' + +# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. +# DefaultCommandPrefix = '' +} + +# SIG # Begin signature block +# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBNq+ogYcufhkVf +# wL/SIsi1+eZ0W6XKQrhMITXDH9ZwfKCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIK8C +# wHKJ8d1KCNpUMQTC76irpoI05q/v3ByKkfj0E6mhMEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEAQxLeGSKr79UYnDswJ8kNGEymGBTkCK/m9gwN +# dgeSTDJrRbKeBpVKPM5sRX1qvWdpwPUmNcHxntATDBVNxk6PS9/u3DPNhQ+I8aML +# ths+KGErpUHCU58uFz0ovB0+wSp6//c1dDsNcx1unn30AmMNL3YG6hYKsIPtxQOo +# k3MDN9dZd3xIBXu3q9pQYaNfriddtGk/Fu1MOMcamQiVy9dxXM4rv+nEnHQ2zHg4 +# sqYP65iIkVLfyFVLRmzfH8R7xRJxXUTVFHRgKUpWDg/FKaaSBkrFiOMiZLw8v8G1 +# esj/jBLaTsP9g3bbjptldfCJGsqnZB6rlOXPE+l8+Auzd7vYE6GCF7AwghesBgor +# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCBGWHA1fMqSZ+iA0klB+5upK5O1Dx56VI8e +# M3bfl2YaiwIGaKSPMrLjGBMyMDI1MTAwMTA4MzMwOS43NjJaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo1NzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+8vL +# bDdn5TCVAAEAAAH7MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExM1oXDTI1MTAyMjE4MzExM1owgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjU3MUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# qMJWQeWAq4LwvSjYsjP0Uvhvm0j0aAOJiMLg0sLfxKoTXAdKD6oMuq5rF5oEiOxV +# +9ox0H95Q8fhoZq3x9lxguZyTOK4l2xtcgtJCtjXRllM2bTpjOg35RUrBy0cAloB +# U9GJBs7LBNrcbH6rBiOvqDQNicPRZwq16xyjMidU1J1AJuat9yLn7taifoD58blY +# EcBvkj5dH1la9zU846QDeOoRO6NcqHLsDx8/zVKZxP30mW6Y7RMsqtB8cGCgGwVV +# urOnaNLXs31qTRTyVHX8ppOdoSihCXeqebgJCRzG8zG/e/k0oaBjFFGl+8uFELwC +# yh4wK9Z5+azTzfa2GD4p6ihtskXs3lnW05UKfDJhAADt6viOc0Rk/c8zOiqzh0lK +# pf/eWUY2o/hvcDPZNgLaHvyfDqb8AWaKvO36iRZSXqhSw8SxJo0TCpsbCjmtx0Lp +# Hnqbb1UF7cq09kCcfWTDPcN12pbYLqck0bIIfPKbc7HnrkNQks/mSbVZTnDyT3O8 +# zF9q4DCfWesSr1akycDduGxCdKBvgtJh1YxDq1skTweYx5iAWXnB7KMyls3WQZbT +# ubTCLLt8Xn8t+slcKm5DkvobubmHSriuTA3wTyIy4FxamTKm0VDu9mWds8MtjUSJ +# VwNVVlBXaQ3ZMcVjijyVoUNVuBY9McwYcIQK62wQ20ECAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBRHVSGYUNQ3RwOl71zIAuUjIKg1KjAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAwzoIKOY2dnUjfWuMiGoz/ovoc1e86VwWaZNFdgRmOoQuRe4nLdtZONtT +# HNk3Sj3nkyBszzxSbZEQ0DduyKHHI5P8V87jFttGnlR0wPP22FAebbvAbutkMMVQ +# MFzhVBWiWD0VAnu9x0fjifLKDAVXLwoun5rCFqwbasXFc7H/0DPiC+DBn3tUxefv +# cxUCys4+DC3s8CYp7WWXpZ8Wb/vdBhDliHmB7pWcmsB83uc4/P2GmAI3HMkOEu7f +# CaSYoQhouWOr07l/KM4TndylIirm8f2WwXQcFEzmUvISM6ludUwGlVNfTTJUq2bT +# DEd3tlDKtV9AUY3rrnFwHTwJryLtT4IFhvgBfND3mL1eeSakKf7xTII4Jyt15SXh +# Hd5oI/XGjSgykgJrWA57rGnAC7ru3/ZbFNCMK/Jj6X8X4L6mBOYa2NGKwH4A37YG +# DrecJ/qXXWUYvfLYqHGf8ThYl12Yg1rwSKpWLolA/B1eqBw4TRcvVY0IvNNi5sm+ +# //HJ9Aw6NJuR/uDR7X7vDXicpXMlRNgFMyADb8AFIvQPdHqcRpRorY+YUGlvzeJx +# /2gNYyezAokbrFhACsJ2BfyeLyCEo6AuwEHn511PKE8dK4JvlmLSoHj7VFR3NHDk +# 3zRkx0ExkmF8aOdpvoKhuwBCxoZ/JhbzSzrvZ74GVjKKIyt5FA0wggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo1NzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUABHHn7NCGusZz +# 2RfVbyuwYwPykBWggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyHEVEwIhgPMjAyNTEwMDEwMjMyNDlaGA8yMDI1 +# MTAwMjAyMzI0OVowdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA7IcRUQIBADAKAgEA +# AgIC4QIB/zAHAgEAAgISTDAKAgUA7Ihi0QIBADA2BgorBgEEAYRZCgQCMSgwJjAM +# BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB +# CwUAA4IBAQB2rJUBbV82zv/fG68I5fhMRRSkgirfFrnlWvW6RfzPd+5iYKdth6dU +# 6IOUUkXT8dO0qMuoHqkbT04FjLzmTDVMz/HkKyWOnfzbgSfBdr627tuQfCEGAwNV +# ucTR8DvaCruh9rBA7ZrkdmVxSbNWAKHET4DRUNE04kCzDtcJRlH+6DET6vv0aaWh +# 8jP2P7qVYhNnf2EbzfEphwGpR2qf12umLBqw3UuOLP409MRmZbnWF7ektopLFB0Q +# q2MmM3MvEuHDKHeP9zk2uDYd/JBwf4FNbMFJE/290pXYfcRhctqSoSE6hLmab8Cb +# xUvtPV6BaJ52RwxeSWsAM3GSZBGPrS0IMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE +# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc +# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 +# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH7y8tsN2flMJUAAQAAAfswDQYJYIZI +# AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG +# 9w0BCQQxIgQgEmeF5oaa0lat8s66k9I6ahFYw/sboKYMj6AsWdn7CokwgfoGCyqG +# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCA52wKr/KCFlVNYiWsCLsB4qhjEYEP3xHqY +# qDu1SSTlGDCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n +# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y +# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz +# AAAB+8vLbDdn5TCVAAEAAAH7MCIEICnkwtMY6H2GmiCyEEz1OMgXS5ZXQyQ7h2mA +# fwdrbCjpMA0GCSqGSIb3DQEBCwUABIICABJYVuOYY/FMZA+QTn5JWEO958iX7TnK +# ikVBtXDVT/BuDoA3Hd83YiUbf+NHgqQG1gPSRrF/T0F95JYEXh6dJAYQP2nAbna8 +# lYhljI26hhfaicf/RUxZZawTPCtm7ArQgtxlBh21J4tvfiaQJLGrAeLcsXPWDpXP +# uGzujnhPxFXWWUveWyYco8QRWLXXP6Geq6UxjfnxZooEbQ//Tw9TC/wOtyD/1Y5G +# gpFqdOYmRR5EamDMS+PI7oK4nfcfiz7EcslzDHcxw4VxDay0nEq4dMaNxqvnEu4v +# kaxHU2m12RNO8VZ4mbYCMLL0GQ7f4KiIqf0V+faAVBhLXUxJxWRt1aC8jtg5cuWg +# 3KqzG9ZB8CikzH4ufED8qrmm9UDdUN4ZK9XYm5oEAtAwZnTgVwsNT19dRErU5wMK +# O9M4NFaGRD2k4KpXn7ogwMyavCthN6YNO7r+Pud/31NnsFdpH+xomEvZR48dzVkY +# i6YsoxiIMxwfU0aTp6W/Sr3SAS1n84pOXMNb+93m2VxiUUV/ZCgdUWxxkgb5yhTg +# rNMaS2BJXnQu9AK34SWWLdyzethKbzK/iii14nZjeBbbhLNTNkqMeFrpc7HMso/Q +# WO0e1BtDnKWP7sCb1VLCXUkgaB93SZHV+NFtr/KzkA8wK5G7RqdlkGkHB8lSsLFr +# s50HQ1MxRiV4 +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/MicrosoftTeams.psm1 b/Modules/MicrosoftTeams/7.4.0/MicrosoftTeams.psm1 new file mode 100644 index 000000000000..69f91f7186eb --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/MicrosoftTeams.psm1 @@ -0,0 +1,260 @@ +#Check for the source module - Common Denominator +$moduleInfo = Get-Module -name "CommonDenominator" +#Check for the cmdlet +if($moduleInfo -ne $null) { +$dmsIdentifier = Get-command "Get-ClientType" -module "CommonDenominator" -ErrorAction SilentlyContinue +} +if($dmsIdentifier -ne $null) { +$isDms = & Get-ClientType + +if($isDms -eq "DMS") { + $env:MSTeamsContextInternal = "IsOCEModule" +} + +} +if($PSEdition -ne 'Desktop') +{ + Import-Module $('{0}\netcoreapp3.1\Microsoft.TeamsCmdlets.PowerShell.Connect.dll' -f $PSScriptRoot) + if ($env:MSTeamsContextInternal -ne "IsOCEModule") { + Import-Module $('{0}\Microsoft.Teams.PowerShell.TeamsCmdlets.psd1' -f $PSScriptRoot) + } + else + { + Import-Module $('{0}\net472\Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll' -f $PSScriptRoot) + } + Import-Module $('{0}\netcoreapp3.1\Microsoft.Teams.PowerShell.Module.dll' -f $PSScriptRoot) + +} +else +{ + Import-Module $('{0}\net472\Microsoft.TeamsCmdlets.PowerShell.Connect.dll' -f $PSScriptRoot) + [Reflection.Assembly]::Loadfrom($('{0}\net472\Newtonsoft.Json.dll' -f $PSScriptRoot)) + if ($env:MSTeamsContextInternal -ne "IsOCEModule") { + Import-Module $('{0}\Microsoft.Teams.PowerShell.TeamsCmdlets.psd1' -f $PSScriptRoot) + } + else + { + Import-Module $('{0}\net472\Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll' -f $PSScriptRoot) + } + Import-Module $('{0}\net472\Microsoft.Teams.PowerShell.Module.dll' -f $PSScriptRoot) +} +Import-Module $('{0}\Microsoft.Teams.Policy.Administration.psd1' -f $PSScriptRoot) +Import-Module $('{0}\Microsoft.Teams.ConfigAPI.Cmdlets.psd1' -f $PSScriptRoot) +# SIG # Begin signature block +# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBJponIg6/1vb48 +# stXuS4z8oBYcN1DNZwuhwmt7j7P5CaCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIADB +# pasuVHSfoJTNR02qga8z3vkaj9V4PoBJXQ16dJ5RMEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEAUCezCbF74ISaWt46BJFpza6IglV2oUrfAu7c +# DKwuwxT1Abbxm/kSmf82Y6ykKNYKaNYQUIXk0XkqiZtytafGatB4/xvAWTV249Er +# X+DjrqkIyOCOeybGoEA07cZHJPm+g4odBbOMFDUXcu4F0Yla1G2moY3mzouXqPEd +# FD8Wrj9U4tyHdZoTntqHr/x/76G5a75PLkPFAtNo69QBDhq6mhFXSduE73OoKGdf +# l5U5Nh9Xeoyq9KbGulyF/2W2u5gY68zS5Ci15ra+Zu4n2A+DQ8GIdlVFeUvoenwb +# 8sXj/1wJ9mocwQ2M4P6W2Axu0g8AQPKjbXVZEulEN3xQ54ETAqGCF7AwghesBgor +# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCBMvtJAAlMM5GjgeF5DL27oDcouSzPvyXQ/ +# bQU0xQ/8owIGaKOvjMMzGBMyMDI1MTAwMTA4MzM0NC42NDNaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+R9n +# jXWrpPGxAAEAAAH5MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzEwOVoXDTI1MTAyMjE4MzEwOVowgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjJBMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# tD1MH3yAHWHNVslC+CBTj/Mpd55LDPtQrhN7WeqFhReC9xKXSjobW1ZHzHU8V2BO +# JUiYg7fDJ2AxGVGyovUtgGZg2+GauFKk3ZjjsLSsqehYIsUQrgX+r/VATaW8/ONW +# y6lOyGZwZpxfV2EX4qAh6mb2hadAuvdbRl1QK1tfBlR3fdeCBQG+ybz9JFZ45LN2 +# ps8Nc1xr41N8Qi3KVJLYX0ibEbAkksR4bbszCzvY+vdSrjWyKAjR6YgYhaBaDxE2 +# KDJ2sQRFFF/egCxKgogdF3VIJoCE/Wuy9MuEgypea1Hei7lFGvdLQZH5Jo2QR5uN +# 8hiMc8Z47RRJuIWCOeyIJ1YnRiiibpUZ72+wpv8LTov0yH6C5HR/D8+AT4vqtP57 +# ITXsD9DPOob8tjtsefPcQJebUNiqyfyTL5j5/J+2d+GPCcXEYoeWZ+nrsZSfrd5D +# HM4ovCmD3lifgYnzjOry4ghQT/cvmdHwFr6yJGphW/HG8GQd+cB4w7wGpOhHVJby +# 44kGVK8MzY9s32Dy1THnJg8p7y1sEGz/A1y84Zt6gIsITYaccHhBKp4cOVNrfoRV +# Ux2G/0Tr7Dk3fpCU8u+5olqPPwKgZs57jl+lOrRVsX1AYEmAnyCyGrqRAzpGXyk1 +# HvNIBpSNNuTBQk7FBvu+Ypi6A7S2V2Tj6lzYWVBvuGECAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBSJ7aO6nJXJI9eijzS5QkR2RlngADAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAZiAJgFbkf7jfhx/mmZlnGZrpae+HGpxWxs8I79vUb8GQou50M1ns7iwG +# 2CcdoXaq7VgpVkNf1uvIhrGYpKCBXQ+SaJ2O0BvwuJR7UsgTaKN0j/yf3fpHD0kt +# H+EkEuGXs9DBLyt71iutVkwow9iQmSk4oIK8S8ArNGpSOzeuu9TdJjBjsasmuJ+2 +# q5TjmrgEKyPe3TApAio8cdw/b1cBAmjtI7tpNYV5PyRI3K1NhuDgfEj5kynGF/ui +# zP1NuHSxF/V1ks/2tCEoriicM4k1PJTTA0TCjNbkpmBcsAMlxTzBnWsqnBCt9d+U +# d9Va3Iw9Bs4ccrkgBjLtg3vYGYar615ofYtU+dup+LuU0d2wBDEG1nhSWHaO+u2y +# 6Si3AaNINt/pOMKU6l4AW0uDWUH39OHH3EqFHtTssZXaDOjtyRgbqMGmkf8KI3qI +# VBZJ2XQpnhEuRbh+AgpmRn/a410Dk7VtPg2uC422WLC8H8IVk/FeoiSS4vFodhnc +# FetJ0ZK36wxAa3FiPgBebRWyVtZ763qDDzxDb0mB6HL9HEfTbN+4oHCkZa1HKl8B +# 0s8RiFBMf/W7+O7EPZ+wMH8wdkjZ7SbsddtdRgRARqR8IFPWurQ+sn7ftEifaojz +# uCEahSAcq86yjwQeTPN9YG9b34RTurnkpD+wPGTB1WccMpsLlM0wggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAqs5WjWO7zVAK +# mIcdwhqgZvyp6UaggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyG2lkwIhgPMjAyNTA5MzAyMjM4MTdaGA8yMDI1 +# MTAwMTIyMzgxN1owdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA7IbaWQIBADAKAgEA +# AgInWgIB/zAHAgEAAgISRDAKAgUA7Igr2QIBADA2BgorBgEEAYRZCgQCMSgwJjAM +# BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB +# CwUAA4IBAQA0HygGCzYYEljnRjZKmlyq8BlFLyeDqjIsf+eW9udW0nwpYvks0ztw +# xcaklxi1JIufA2sghpxfO1DRxR/rkZvRt0N4b6+meKsltQSnJyY6A7LOg169vl4I +# h4F80N3N244nRix969BPnYvMd94lXyhwLRk0vygjWuhF5VJIn+oJQ89bR2Qr+k1c +# EzI5Hypvq/WH0ZzZF7BSPu2zhWTJrNuAefu02ATEKZh8YydBYJdQ9qT2SjXDDQoX +# xW6kWpyX51pxERwDxHfeYKGyp3xuGmIOtBT8jFD/bzNCUIAxAKYmggqdJI1IoRQO +# hyj/efZBnp2gn+TMH95Q84INFZ6tWtSWMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE +# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc +# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 +# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH5H2eNdauk8bEAAQAAAfkwDQYJYIZI +# AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG +# 9w0BCQQxIgQgpWAlZNXWAN7nQT/FGDrJJdqMmFbmsK+cS4fUtV0o9MMwgfoGCyqG +# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCA5I4zIHvCN+2T66RUOLCZrUEVdoKlKl8Ve +# CO5SbGLYEDCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n +# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y +# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz +# AAAB+R9njXWrpPGxAAEAAAH5MCIEIImoK59ZPcOXI5dNWhrN9BtaZ8YzydRxG6Oc +# pV+4JnCfMA0GCSqGSIb3DQEBCwUABIICAFosbXb3BCNc+HiV5DVrFRw8TzmyDPNH +# r5VDxzMNKc0M1DPf/YBsAA6Mrl8PK+1IY9tZa0+EEfoGNDLSssyIOuPgqmoADTMl +# 7PyWdAQkwjmgO1H6pPafJP93PPTKI2PmVaqeyQyqlaCR+nuLl4/upUI+p9eEVWuu +# GqyOMdABvzC9x9WChQoWvnwMUGeBJpAD90nWHH0nPYNDb2BVuTGB9yMNwK7Dxrzj +# Eh5ZcSvkUE4a5ZqbL074lEAMvso4TaGsdLwOUryls9RJO+GLMSK5QS4/Uj5YrZu3 +# 4VVTNgMzGWSzSzFXtPF+qGFwyZJmGcl4clFaHIXzQuS/SVP+REBKbNJ45Qd5E2+i +# Ql/j3fvg4Ft7LhRmdkWZd1omPvTrOkiIYM4b09yEGvZKYFR86hgaG/FakeRZ7eGL +# UTjBJn26KNU1GuI0ywx80FpH72N5n9+CMWnDttwPv6bKcg+Ntx9rKAaym/WKdoJh +# majmmsyNNBlYRQMoOjyXkSQIeQ/nacPY+v0SvEtkfEtDr5tOTwiTymOoSsMNyHzr +# L6CkN69yYgHI9IU6RCQlsgmA52SxdGDcjUO3lIHZ1YhdH7tk8hks2hzaCkidY20e +# RWMUFxrD4h6XxU9YPuDX4AnCkLIkwVnapn3GU+PjrYL6uPyXAVv0i9DgpUtgIpI8 +# kr6V7l86zYBm +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/PSGetModuleInfo.xml b/Modules/MicrosoftTeams/7.4.0/PSGetModuleInfo.xml new file mode 100644 index 000000000000..536164676025 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/PSGetModuleInfo.xml @@ -0,0 +1,1497 @@ + + + + Microsoft.PowerShell.Commands.PSRepositoryItemInfo + System.Management.Automation.PSCustomObject + System.Object + + + MicrosoftTeams + 7.4.0 + Module + Microsoft Teams cmdlets module for Windows PowerShell and PowerShell Core._x000D__x000A__x000D__x000A_For more information, please visit the following: https://docs.microsoft.com/MicrosoftTeams/teams-powershell-overview + Microsoft Corporation + MicrosoftTeams + Microsoft Corporation. All rights reserved. +
2025-10-06T13:29:35+02:00
+ + + https://raw.githubusercontent.com/MicrosoftDocs/office-docs-powershell/master/teams/LICENSE.txt + https://github.com/MicrosoftDocs/office-docs-powershell/tree/master/teams + https://statics.teams.microsoft.com/evergreen-assets/apps/teamscmdlets_largeimage.png + + + System.Object[] + System.Array + System.Object + + + Office365 + MicrosoftTeams + Teams + PSModule + PSEdition_Core + PSEdition_Desktop + + + + + System.Collections.Hashtable + System.Object + + + + Function + + + + Clear-CsOnlineTelephoneNumberOrder + Complete-CsOnlineTelephoneNumberOrder + Disable-CsOnlineSipDomain + Enable-CsOnlineSipDomain + Export-CsAcquiredPhoneNumber + Export-CsAutoAttendantHolidays + Export-CsOnlineAudioFile + Find-CsGroup + Find-CsOnlineApplicationInstance + Get-CsApplicationAccessPolicy + Get-CsApplicationMeetingConfiguration + Get-CsAutoAttendant + Get-CsAutoAttendantHolidays + Get-CsAutoAttendantStatus + Get-CsAutoAttendantSupportedLanguage + Get-CsAutoAttendantSupportedTimeZone + Get-CsAutoAttendantTenantInformation + Get-CsBatchPolicyAssignmentOperation + Get-CsCallingLineIdentity + Get-CsCallQueue + Get-CsCloudCallDataConnection + Get-CsEffectiveTenantDialPlan + Get-CsExportAcquiredPhoneNumberStatus + Get-CsGroupPolicyAssignment + Get-CsHybridTelephoneNumber + Get-CsInboundBlockedNumberPattern + Get-CsInboundExemptNumberPattern + Get-CsMainlineAttendantAppointmentBookingFlow + Get-CsMainlineAttendantFlow + Get-CsMainlineAttendantQuestionAnswerFlow + Get-CsMeetingMigrationStatus + Get-CsOnlineApplicationInstance + Get-CsOnlineApplicationInstanceAssociation + Get-CsOnlineApplicationInstanceAssociationStatus + Get-CsOnlineAudioConferencingRoutingPolicy + Get-CsOnlineAudioFile + Get-CsOnlineDialInConferencingBridge + Get-CsOnlineDialInConferencingLanguagesSupported + Get-CsOnlineDialinConferencingPolicy + Get-CsOnlineDialInConferencingServiceNumber + Get-CsOnlineDialinConferencingTenantConfiguration + Get-CsOnlineDialInConferencingTenantSettings + Get-CsOnlineDialInConferencingUser + Get-CsOnlineDialOutPolicy + Get-CsOnlineDirectoryTenant + Get-CsOnlineEnhancedEmergencyServiceDisclaimer + Get-CsOnlineLisCivicAddress + Get-CsOnlineLisLocation + Get-CsOnlineLisPort + Get-CsOnlineLisSubnet + Get-CsOnlineLisSwitch + Get-CsOnlineLisWirelessAccessPoint + Get-CsOnlinePSTNGateway + Get-CsOnlinePstnUsage + Get-CsOnlineSchedule + Get-CsOnlineSipDomain + Get-CsOnlineTelephoneNumber + Get-CsOnlineTelephoneNumberCountry + Get-CsOnlineTelephoneNumberOrder + Get-CsOnlineTelephoneNumberType + Get-CsOnlineUser + Get-CsOnlineVoicemailUserSettings + Get-CsOnlineVoiceRoute + Get-CsOnlineVoiceRoutingPolicy + Get-CsOnlineVoiceUser + Get-CsPhoneNumberAssignment + Get-CsPhoneNumberPolicyAssignment + Get-CsPhoneNumberTag + Get-CsPolicyPackage + Get-CsSdgBulkSignInRequestStatus + Get-CsSDGBulkSignInRequestsSummary + Get-CsTeamsAudioConferencingPolicy + Get-CsTeamsCallParkPolicy + Get-CsTeamsCortanaPolicy + Get-CsTeamsEmergencyCallRoutingPolicy + Get-CsTeamsEnhancedEncryptionPolicy + Get-CsTeamsGuestCallingConfiguration + Get-CsTeamsGuestMeetingConfiguration + Get-CsTeamsGuestMessagingConfiguration + Get-CsTeamsIPPhonePolicy + Get-CsTeamsMediaLoggingPolicy + Get-CsTeamsMeetingBroadcastConfiguration + Get-CsTeamsMeetingBroadcastPolicy + Get-CsTeamsMigrationConfiguration + Get-CsTeamsMobilityPolicy + Get-CsTeamsNetworkRoamingPolicy + Get-CsTeamsRoomVideoTeleConferencingPolicy + Get-CsTeamsSettingsCustomApp + Get-CsTeamsShiftsAppPolicy + Get-CsTeamsShiftsConnectionConnector + Get-CsTeamsShiftsConnectionErrorReport + Get-CsTeamsShiftsConnection + Get-CsTeamsShiftsConnectionInstance + Get-CsTeamsShiftsConnectionOperation + Get-CsTeamsShiftsConnectionSyncResult + Get-CsTeamsShiftsConnectionTeamMap + Get-CsTeamsShiftsConnectionWfmTeam + Get-CsTeamsShiftsConnectionWfmUser + Get-CsTeamsSurvivableBranchAppliance + Get-CsTeamsSurvivableBranchAppliancePolicy + Get-CsTeamsTargetingPolicy + Get-CsTeamsTranslationRule + Get-CsTeamsUnassignedNumberTreatment + Get-CsTeamsUpgradePolicy + Get-CsTeamsVdiPolicy + Get-CsTeamsVideoInteropServicePolicy + Get-CsTeamsWorkLoadPolicy + Get-CsTeamTemplate + Get-CsTeamTemplateList + Get-CsTenant + Get-CsTenantBlockedCallingNumbers + Get-CsTenantDialPlan + Get-CsTenantFederationConfiguration + Get-CsTenantLicensingConfiguration + Get-CsTenantMigrationConfiguration + Get-CsTenantNetworkConfiguration + Get-CsTenantNetworkRegion + Get-CsTenantNetworkSubnet + Get-CsTenantTrustedIPAddress + Get-CsUserCallingSettings + Get-CsUserPolicyAssignment + Get-CsUserPolicyPackage + Get-CsUserPolicyPackageRecommendation + Get-CsVideoInteropServiceProvider + Grant-CsApplicationAccessPolicy + Get-CsComplianceRecordingForCallQueueTemplate + Get-CsSharedCallQueueHistoryTemplate + Get-CsTagsTemplate + Grant-CsCallingLineIdentity + Grant-CsDialoutPolicy + Grant-CsGroupPolicyPackageAssignment + Grant-CsOnlineAudioConferencingRoutingPolicy + Grant-CsOnlineVoicemailPolicy + Grant-CsOnlineVoiceRoutingPolicy + Grant-CsTeamsAudioConferencingPolicy + Grant-CsTeamsCallHoldPolicy + Grant-CsTeamsCallParkPolicy + Grant-CsTeamsChannelsPolicy + Grant-CsTeamsCortanaPolicy + Grant-CsTeamsEmergencyCallingPolicy + Grant-CsTeamsEmergencyCallRoutingPolicy + Grant-CsTeamsEnhancedEncryptionPolicy + Grant-CsTeamsFeedbackPolicy + Grant-CsTeamsIPPhonePolicy + Grant-CsTeamsMediaLoggingPolicy + Grant-CsTeamsMeetingBroadcastPolicy + Grant-CsTeamsMeetingPolicy + Grant-CsTeamsMessagingPolicy + Grant-CsTeamsMobilityPolicy + Grant-CsTeamsRoomVideoTeleConferencingPolicy + Grant-CsTeamsSurvivableBranchAppliancePolicy + Grant-CsTeamsUpdateManagementPolicy + Grant-CsTeamsUpgradePolicy + Grant-CsTeamsVideoInteropServicePolicy + Grant-CsTeamsVoiceApplicationsPolicy + Grant-CsTeamsWorkLoadPolicy + Grant-CsTenantDialPlan + Grant-CsUserPolicyPackage + Grant-CsTeamsComplianceRecordingPolicy + Import-CsAutoAttendantHolidays + Import-CsOnlineAudioFile + Invoke-CsInternalPSTelemetry + Move-CsInternalHelper + New-CsApplicationAccessPolicy + New-CsAutoAttendant + New-CsAutoAttendantCallableEntity + New-CsAutoAttendantCallFlow + New-CsAutoAttendantCallHandlingAssociation + New-CsAutoAttendantDialScope + New-CsAutoAttendantMenu + New-CsAutoAttendantMenuOption + New-CsAutoAttendantPrompt + New-CsBatchPolicyAssignmentOperation + New-CsBatchPolicyPackageAssignmentOperation + New-CsCallingLineIdentity + New-CsCallQueue + New-CsCloudCallDataConnection + New-CsCustomPolicyPackage + New-CsEdgeAllowAllKnownDomains + New-CsEdgeAllowList + New-CsEdgeDomainPattern + New-CsGroupPolicyAssignment + New-CsHybridTelephoneNumber + New-CsInboundBlockedNumberPattern + New-CsInboundExemptNumberPattern + New-CsMainlineAttendantAppointmentBookingFlow + New-CsMainlineAttendantQuestionAnswerFlow + New-CsOnlineApplicationInstance + New-CsOnlineApplicationInstanceAssociation + New-CsOnlineAudioConferencingRoutingPolicy + New-CsOnlineDateTimeRange + New-CsOnlineLisCivicAddress + New-CsOnlineLisLocation + New-CsOnlinePSTNGateway + New-CsOnlineSchedule + New-CsOnlineTelephoneNumberOrder + New-CsOnlineTimeRange + New-CsOnlineVoiceRoute + New-CsOnlineVoiceRoutingPolicy + New-CsSdgBulkSignInRequest + New-CsTeamsAudioConferencingPolicy + New-CsTeamsCallParkPolicy + New-CsTeamsCortanaPolicy + New-CsTeamsEmergencyCallRoutingPolicy + New-CsTeamsEmergencyNumber + New-CsTeamsEnhancedEncryptionPolicy + New-CsTeamsIPPhonePolicy + New-CsTeamsMeetingBroadcastPolicy + New-CsTeamsMobilityPolicy + New-CsTeamsNetworkRoamingPolicy + New-CsTeamsRoomVideoTeleConferencingPolicy + New-CsTeamsShiftsConnectionBatchTeamMap + New-CsTeamsShiftsConnection + New-CsTeamsShiftsConnectionInstance + New-CsTeamsSurvivableBranchAppliance + New-CsTeamsSurvivableBranchAppliancePolicy + New-CsTeamsTranslationRule + New-CsTeamsUnassignedNumberTreatment + New-CsTeamsVdiPolicy + New-CsTeamsWorkLoadPolicy + New-CsTeamTemplate + New-CsTenantDialPlan + New-CsTenantNetworkRegion + New-CsTenantNetworkSite + New-CsTenantNetworkSubnet + New-CsTenantTrustedIPAddress + New-CsUserCallingDelegate + New-CsVideoInteropServiceProvider + New-CsVoiceNormalizationRule + New-CsOnlineDirectRoutingTelephoneNumberUploadOrder + New-CsOnlineTelephoneNumberReleaseOrder + New-CsComplianceRecordingForCallQueueTemplate + New-CsTagsTemplate + New-CsTag + New-CsSharedCallQueueHistoryTemplate + Register-CsOnlineDialInConferencingServiceNumber + Remove-CsApplicationAccessPolicy + Remove-CsAutoAttendant + Remove-CsCallingLineIdentity + Remove-CsCallQueue + Remove-CsCustomPolicyPackage + Remove-CsGroupPolicyAssignment + Remove-CsHybridTelephoneNumber + Remove-CsInboundBlockedNumberPattern + Remove-CsInboundExemptNumberPattern + Remove-CsMainlineAttendantAppointmentBookingFlow + Remove-CsMainlineAttendantQuestionAnswerFlow + Remove-CsOnlineApplicationInstanceAssociation + Remove-CsOnlineAudioConferencingRoutingPolicy + Remove-CsOnlineAudioFile + Remove-CsOnlineDialInConferencingTenantSettings + Remove-CsOnlineLisCivicAddress + Remove-CsOnlineLisLocation + Remove-CsOnlineLisPort + Remove-CsOnlineLisSubnet + Remove-CsOnlineLisSwitch + Remove-CsOnlineLisWirelessAccessPoint + Remove-CsOnlinePSTNGateway + Remove-CsOnlineSchedule + Remove-CsOnlineTelephoneNumber + Remove-CsOnlineVoiceRoute + Remove-CsOnlineVoiceRoutingPolicy + Remove-CsPhoneNumberAssignment + Remove-CsPhoneNumberTag + Remove-CsTeamsAudioConferencingPolicy + Remove-CsTeamsCallParkPolicy + Remove-CsTeamsCortanaPolicy + Remove-CsTeamsEmergencyCallRoutingPolicy + Remove-CsTeamsEnhancedEncryptionPolicy + Remove-CsTeamsIPPhonePolicy + Remove-CsTeamsMeetingBroadcastPolicy + Remove-CsTeamsMobilityPolicy + Remove-CsTeamsNetworkRoamingPolicy + Remove-CsTeamsRoomVideoTeleConferencingPolicy + Remove-CsTeamsShiftsConnection + Remove-CsTeamsShiftsConnectionInstance + Remove-CsTeamsShiftsConnectionTeamMap + Remove-CsTeamsShiftsScheduleRecord + Remove-CsTeamsSurvivableBranchAppliance + Remove-CsTeamsSurvivableBranchAppliancePolicy + Remove-CsTeamsTargetingPolicy + Remove-CsTeamsTranslationRule + Remove-CsTeamsUnassignedNumberTreatment + Remove-CsTeamsVdiPolicy + Remove-CsTeamsWorkLoadPolicy + Remove-CsTeamTemplate + Remove-CsTenantDialPlan + Remove-CsTenantNetworkRegion + Remove-CsTenantNetworkSite + Remove-CsTenantNetworkSubnet + Remove-CsTenantTrustedIPAddress + Remove-CsUserCallingDelegate + Remove-CsUserLicenseGracePeriod + Remove-CsVideoInteropServiceProvider + Remove-CsComplianceRecordingForCallQueueTemplate + Remove-CsTagsTemplate + Remove-CsSharedCallQueueHistoryTemplate + Set-CsApplicationAccessPolicy + Set-CsApplicationMeetingConfiguration + Set-CsAutoAttendant + Set-CsCallingLineIdentity + Set-CsCallQueue + Set-CsInboundBlockedNumberPattern + Set-CsInboundExemptNumberPattern + Set-CsMainlineAttendantAppointmentBookingFlow + Set-CsMainlineAttendantQuestionAnswerFlow + Set-CsOnlineApplicationInstance + Set-CsOnlineAudioConferencingRoutingPolicy + Set-CsOnlineDialInConferencingBridge + Set-CsOnlineDialInConferencingServiceNumber + Set-CsOnlineDialInConferencingTenantSettings + Set-CsOnlineDialInConferencingUser + Set-CsOnlineDialInConferencingUserDefaultNumber + Set-CsOnlineEnhancedEmergencyServiceDisclaimer + Set-CsOnlineLisCivicAddress + Set-CsOnlineLisLocation + Set-CsOnlineLisPort + Set-CsOnlineLisSubnet + Set-CsOnlineLisSwitch + Set-CsOnlineLisWirelessAccessPoint + Set-CsOnlinePSTNGateway + Set-CsOnlinePstnUsage + Set-CsOnlineSchedule + Set-CsOnlineVoiceApplicationInstance + Set-CsOnlineVoicemailUserSettings + Set-CsOnlineVoiceRoute + Set-CsOnlineVoiceRoutingPolicy + Set-CsOnlineVoiceUser + Set-CsPhoneNumberAssignment + Set-CsPhoneNumberPolicyAssignment + Set-CsPhoneNumberTag + Set-CsTeamsAudioConferencingPolicy + Set-CsTeamsCallParkPolicy + Set-CsTeamsCortanaPolicy + Set-CsTeamsEmergencyCallRoutingPolicy + Set-CsTeamsEnhancedEncryptionPolicy + Set-CsTeamsGuestCallingConfiguration + Set-CsTeamsGuestMeetingConfiguration + Set-CsTeamsGuestMessagingConfiguration + Set-CsTeamsIPPhonePolicy + Set-CsTeamsMeetingBroadcastConfiguration + Set-CsTeamsMeetingBroadcastPolicy + Set-CsTeamsMigrationConfiguration + Set-CsTeamsMobilityPolicy + Set-CsTeamsNetworkRoamingPolicy + Set-CsTeamsRoomVideoTeleConferencingPolicy + Set-CsTeamsSettingsCustomApp + Set-CsTeamsShiftsAppPolicy + Set-CsTeamsShiftsConnection + Set-CsTeamsShiftsConnectionInstance + Set-CsTeamsSurvivableBranchAppliance + Set-CsTeamsSurvivableBranchAppliancePolicy + Set-CsTeamsTargetingPolicy + Set-CsTeamsTranslationRule + Set-CsTeamsUnassignedNumberTreatment + Set-CsTeamsVdiPolicy + Set-CsTeamsWorkLoadPolicy + Set-CsTenantBlockedCallingNumbers + Set-CsTenantDialPlan + Set-CsTenantFederationConfiguration + Set-CsTenantMigrationConfiguration + Set-CsTenantNetworkRegion + Set-CsTenantNetworkSite + Set-CsTenantNetworkSubnet + Set-CsTenantTrustedIPAddress + Set-CsUser + Set-CsUserCallingDelegate + Set-CsUserCallingSettings + Set-CsVideoInteropServiceProvider + Set-CsComplianceRecordingForCallQueueTemplate + Set-CsTagsTemplate + Set-CsSharedCallQueueHistoryTemplate + Start-CsExMeetingMigration + Sync-CsOnlineApplicationInstance + Test-CsEffectiveTenantDialPlan + Test-CsInboundBlockedNumberPattern + Test-CsTeamsShiftsConnectionValidate + Test-CsTeamsTranslationRule + Test-CsTeamsUnassignedNumberTreatment + Test-CsVoiceNormalizationRule + Unregister-CsOnlineDialInConferencingServiceNumber + Update-CsAutoAttendant + Update-CsCustomPolicyPackage + Update-CsPhoneNumberTag + Update-CsTeamsShiftsConnection + Update-CsTeamsShiftsConnectionInstance + Update-CsTeamTemplate + New-CsBatchTeamsDeployment + Get-CsBatchTeamsDeploymentStatus + Get-CsPersonalAttendantSettings + Set-CsPersonalAttendantSettings + Set-CsOCEContext + Clear-CsOCEContext + Get-CsRegionContext + Set-CsRegionContext + Clear-CsRegionContext + Get-CsMeetingMigrationTransactionHistory + Get-CsMasVersionedSchemaData + Get-CsMasObjectChangelog + Get-CsBusinessVoiceDirectoryDiagnosticData + Get-CsCloudTenant + Get-CsCloudUser + Get-CsHostingProvider + Set-CsTenantUserBackfill + Invoke-CsCustomHandlerNgtprov + Invoke-CsCustomHandlerCallBackNgtprov + New-CsSdgDeviceTaggingRequest + Get-CsMoveTenantServiceInstanceTaskStatus + Move-CsTenantServiceInstance + Move-CsTenantCrossRegion + Invoke-CsDirectObjectSync + New-CsSDGDeviceTransferRequest + Get-CsAadTenant + Get-CsAadUser + Clear-CsCacheOperation + Move-CsAvsTenantPartition + Invoke-CsMsodsSync + Get-CsUssUserSettings + Set-CsUssUserSettings + Invoke-CsRehomeuser + Set-CsNotifyCache + + + + + RoleCapability + + + + + + + DscResource + + + + Command + + + + Add-TeamChannelUser + Add-TeamUser + Connect-MicrosoftTeams + Disconnect-MicrosoftTeams + Set-TeamsEnvironmentConfig + Clear-TeamsEnvironmentConfig + Get-AssociatedTeam + Get-MultiGeoRegion + Get-Operation + Get-SharedWithTeam + Get-SharedWithTeamUser + Get-Team + Get-TeamAllChannel + Get-TeamChannel + Get-TeamChannelUser + Get-TeamIncomingChannel + Get-TeamsApp + Get-TeamsArtifacts + Get-TeamUser + Get-M365TeamsApp + Get-AllM365TeamsApps + Get-M365UnifiedTenantSettings + Get-M365UnifiedCustomPendingApps + Get-CsTeamsAcsFederationConfiguration + Get-CsTeamsMessagingPolicy + Get-CsTeamsMeetingPolicy + Get-CsOnlineVoicemailPolicy + Get-CsOnlineVoicemailValidationConfiguration + Get-CsTeamsAIPolicy + Get-CsTeamsFeedbackPolicy + Get-CsTeamsUpdateManagementPolicy + Get-CsTeamsChannelsPolicy + Get-CsTeamsMeetingBrandingPolicy + Get-CsTeamsEmergencyCallingPolicy + Get-CsTeamsCallHoldPolicy + Get-CsTeamsMessagingConfiguration + Get-CsTeamsVoiceApplicationsPolicy + Get-CsTeamsEventsPolicy + Get-CsTeamsExternalAccessConfiguration + Get-CsTeamsFilesPolicy + Get-CsTeamsCallingPolicy + Get-CsTeamsClientConfiguration + Get-CsExternalAccessPolicy + Get-CsTeamsAppPermissionPolicy + Get-CsTeamsAppSetupPolicy + Get-CsTeamsFirstPartyMeetingTemplateConfiguration + Get-CsTeamsMeetingTemplatePermissionPolicy + Get-CsLocationPolicy + Get-CsTeamsShiftsPolicy + Get-CsTenantNetworkSite + Get-CsTeamsCarrierEmergencyCallRoutingPolicy + Get-CsTeamsMeetingTemplateConfiguration + Get-CsTeamsVirtualAppointmentsPolicy + Get-CsTeamsSharedCallingRoutingPolicy + Get-CsTeamsTemplatePermissionPolicy + Get-CsTeamsComplianceRecordingPolicy + Get-CsTeamsComplianceRecordingApplication + Get-CsTeamsEducationAssignmentsAppPolicy + Get-CsTeamsUpgradeConfiguration + Get-CsTeamsAudioConferencingCustomPromptsConfiguration + Get-CsTeamsSipDevicesConfiguration + Get-CsTeamsCustomBannerText + Get-CsTeamsVdiPolicy + Get-CsTeamsMediaConnectivityPolicy + Get-CsTeamsMeetingConfiguration + Get-CsTeamsWorkLocationDetectionPolicy + Get-CsTeamsRecordingRollOutPolicy + Get-CsTeamsRemoteLogCollectionConfiguration + Get-CsTeamsRemoteLogCollectionDevice + Get-CsTeamsEducationConfiguration + Get-CsTeamsBYODAndDesksPolicy + Get-CsTeamsNotificationAndFeedsPolicy + Get-CsTeamsMultiTenantOrganizationConfiguration + Get-CsTeamsPersonalAttendantPolicy + Get-CsPrivacyConfiguration + Grant-CsTeamsAIPolicy + Grant-CsTeamsMeetingBrandingPolicy + Grant-CsExternalAccessPolicy + Grant-CsTeamsCallingPolicy + Grant-CsTeamsAppPermissionPolicy + Grant-CsTeamsAppSetupPolicy + Grant-CsTeamsEventsPolicy + Grant-CsTeamsFilesPolicy + Grant-CsTeamsMediaConnectivityPolicy + Grant-CsTeamsMeetingTemplatePermissionPolicy + Grant-CsTeamsCarrierEmergencyCallRoutingPolicy + Grant-CsTeamsVirtualAppointmentsPolicy + Grant-CsTeamsSharedCallingRoutingPolicy + Grant-CsTeamsShiftsPolicy + Grant-CsTeamsRecordingRollOutPolicy + Grant-CsTeamsVdiPolicy + Grant-CsTeamsWorkLocationDetectionPolicy + Grant-CsTeamsBYODAndDesksPolicy + Grant-CsTeamsPersonalAttendantPolicy + New-Team + New-TeamChannel + New-TeamsApp + New-CsTeamsAIPolicy + New-CsTeamsMessagingPolicy + New-CsTeamsMeetingPolicy + New-CsOnlineVoicemailPolicy + New-CsTeamsFeedbackPolicy + New-CsTeamsUpdateManagementPolicy + New-CsTeamsChannelsPolicy + New-CsTeamsFilesPolicy + New-CsTeamsMediaConnectivityPolicy + New-CsTeamsMeetingBrandingTheme + New-CsTeamsMeetingBackgroundImage + New-CsTeamsNdiAssuranceSlate + New-CsTeamsMeetingBrandingPolicy + New-CsTeamsEmergencyCallingPolicy + New-CsTeamsEmergencyCallingExtendedNotification + New-CsTeamsCallHoldPolicy + New-CsTeamsVoiceApplicationsPolicy + New-CsTeamsEventsPolicy + New-CsTeamsCallingPolicy + New-CsExternalAccessPolicy + New-CsTeamsAppPermissionPolicy + New-CsTeamsAppSetupPolicy + New-CsTeamsMeetingTemplatePermissionPolicy + New-CsLocationPolicy + New-CsTeamsCarrierEmergencyCallRoutingPolicy + New-CsTeamsHiddenMeetingTemplate + New-CsTeamsVirtualAppointmentsPolicy + New-CsTeamsSharedCallingRoutingPolicy + New-CsTeamsHiddenTemplate + New-CsTeamsTemplatePermissionPolicy + New-CsTeamsComplianceRecordingPolicy + New-CsTeamsComplianceRecordingApplication + New-CsTeamsComplianceRecordingPairedApplication + New-CsTeamsWorkLocationDetectionPolicy + New-CsTeamsRecordingRollOutPolicy + New-CsTeamsRemoteLogCollectionDevice + New-CsCustomPrompt + New-CsCustomPromptPackage + New-CsTeamsShiftsPolicy + New-CsTeamsCustomBannerText + New-CsTeamsVdiPolicy + New-CsTeamsBYODAndDesksPolicy + New-CsTeamsPersonalAttendantPolicy + Remove-SharedWithTeam + Remove-Team + Remove-TeamChannel + Remove-TeamChannelUser + Remove-TeamsApp + Remove-TeamUser + Remove-CsTeamsAIPolicy + Remove-CsTeamsMessagingPolicy + Remove-CsTeamsMeetingPolicy + Remove-CsOnlineVoicemailPolicy + Remove-CsTeamsFeedbackPolicy + Remove-CsTeamsFilesPolicy + Remove-CsTeamsUpdateManagementPolicy + Remove-CsTeamsChannelsPolicy + Remove-CsTeamsMediaConnectivityPolicy + Remove-CsTeamsMeetingBrandingPolicy + Remove-CsTeamsEmergencyCallingPolicy + Remove-CsTeamsCallHoldPolicy + Remove-CsTeamsVoiceApplicationsPolicy + Remove-CsTeamsEventsPolicy + Remove-CsTeamsCallingPolicy + Remove-CsExternalAccessPolicy + Remove-CsTeamsAppPermissionPolicy + Remove-CsTeamsAppSetupPolicy + Remove-CsTeamsMeetingTemplatePermissionPolicy + Remove-CsLocationPolicy + Remove-CsTeamsCarrierEmergencyCallRoutingPolicy + Remove-CsTeamsVirtualAppointmentsPolicy + Remove-CsTeamsSharedCallingRoutingPolicy + Remove-CsTeamsTemplatePermissionPolicy + Remove-CsTeamsComplianceRecordingPolicy + Remove-CsTeamsComplianceRecordingApplication + Remove-CsTeamsShiftsPolicy + Remove-CsTeamsCustomBannerText + Remove-CsTeamsVdiPolicy + Remove-CsTeamsWorkLocationDetectionPolicy + Remove-CsTeamsRecordingRollOutPolicy + Remove-CsTeamsRemoteLogCollectionDevice + Remove-CsTeamsBYODAndDesksPolicy + Remove-CsTeamsNotificationAndFeedsPolicy + Remove-CsTeamsPersonalAttendantPolicy + Set-Team + Set-TeamArchivedState + Set-TeamChannel + Set-TeamPicture + Set-TeamsApp + Set-CsTeamsAcsFederationConfiguration + Set-CsTeamsAIPolicy + Set-CsTeamsMessagingPolicy + Set-CsTeamsMeetingPolicy + Set-CsOnlineVoicemailPolicy + Set-CsTeamsFilesPolicy + Set-CsOnlineVoicemailValidationConfiguration + Set-CsTeamsFeedbackPolicy + Set-CsTeamsUpdateManagementPolicy + Set-CsTeamsChannelsPolicy + Set-CsTeamsMediaConnectivityPolicy + Set-CsTeamsMeetingBrandingPolicy + Set-CsTeamsEmergencyCallingPolicy + Set-CsTeamsEducationConfiguration + Set-CsTeamsCallHoldPolicy + Set-CsTeamsMessagingConfiguration + Set-CsTeamsVoiceApplicationsPolicy + Set-CsTeamsEventsPolicy + Set-CsTeamsExternalAccessConfiguration + Set-CsTeamsCallingPolicy + Set-CsTeamsClientConfiguration + Set-CsExternalAccessPolicy + Set-CsTeamsAppPermissionPolicy + Set-CsTeamsAppSetupPolicy + Set-CsTeamsFirstPartyMeetingTemplateConfiguration + Set-CsTeamsMeetingTemplatePermissionPolicy + Set-CsTeamsMultiTenantOrganizationConfiguration + Set-CsLocationPolicy + Set-CsTeamsCarrierEmergencyCallRoutingPolicy + Set-CsTeamsVirtualAppointmentsPolicy + Set-CsTeamsSharedCallingRoutingPolicy + Set-CsTeamsTemplatePermissionPolicy + Set-CsTeamsComplianceRecordingPolicy + Set-CsTeamsEducationAssignmentsAppPolicy + Set-CsTeamsComplianceRecordingApplication + Set-CsTeamsShiftsPolicy + Set-CsTeamsUpgradeConfiguration + Set-CsTeamsAudioConferencingCustomPromptsConfiguration + Set-CsTeamsSipDevicesConfiguration + Set-CsTeamsMeetingConfiguration + Set-CsTeamsVdiPolicy + Set-CsTeamsWorkLocationDetectionPolicy + Set-CsTeamsRemoteLogCollectionDevice + Set-CsTeamsRecordingRollOutPolicy + Set-CsTeamsCustomBannerText + Set-CsTeamsBYODAndDesksPolicy + Set-CsTeamsNotificationAndFeedsPolicy + Set-CsTeamsPersonalAttendantPolicy + Set-CsPrivacyConfiguration + Update-M365TeamsApp + Update-M365UnifiedTenantSettings + Update-M365UnifiedCustomPendingApp + Get-CsBatchOperationDefinition + Get-CsBatchOperationStatus + Get-CsConfiguration + Get-CsGroupPolicyAssignments + Get-CsLoginInfo + Get-CsUserProvHistory + Get-GPAGroupMembers + Get-GPAUserMembership + Get-NgtProvInstanceFailOverStatus + Get-CsTeamsTenantAbuseConfiguration + Invoke-CsDirectoryObjectSync + Invoke-CsGenericNgtProvCommand + Invoke-CsRefreshGroupUsers + Invoke-CsReprocessBatchOperation + Invoke-CsReprocessGroupPolicyAssignment + Move-NgtProvInstance + New-CsConfiguration + Remove-CsConfiguration + Set-CsConfiguration + Set-CsTeamsTenantAbuseConfiguration + Set-CsPublishPolicySchemaDefaults + Get-TeamTargetingHierarchyStatus + Remove-TeamTargetingHierarchy + Set-TeamTargetingHierarchy + Clear-CsOnlineTelephoneNumberOrder + Complete-CsOnlineTelephoneNumberOrder + Disable-CsOnlineSipDomain + Enable-CsOnlineSipDomain + Export-CsAcquiredPhoneNumber + Export-CsAutoAttendantHolidays + Export-CsOnlineAudioFile + Find-CsGroup + Find-CsOnlineApplicationInstance + Get-CsApplicationAccessPolicy + Get-CsApplicationMeetingConfiguration + Get-CsAutoAttendant + Get-CsAutoAttendantHolidays + Get-CsAutoAttendantStatus + Get-CsAutoAttendantSupportedLanguage + Get-CsAutoAttendantSupportedTimeZone + Get-CsAutoAttendantTenantInformation + Get-CsBatchPolicyAssignmentOperation + Get-CsCallingLineIdentity + Get-CsCallQueue + Get-CsCloudCallDataConnection + Get-CsEffectiveTenantDialPlan + Get-CsExportAcquiredPhoneNumberStatus + Get-CsGroupPolicyAssignment + Get-CsHybridTelephoneNumber + Get-CsInboundBlockedNumberPattern + Get-CsInboundExemptNumberPattern + Get-CsMainlineAttendantAppointmentBookingFlow + Get-CsMainlineAttendantFlow + Get-CsMainlineAttendantQuestionAnswerFlow + Get-CsMeetingMigrationStatus + Get-CsOnlineApplicationInstance + Get-CsOnlineApplicationInstanceAssociation + Get-CsOnlineApplicationInstanceAssociationStatus + Get-CsOnlineAudioConferencingRoutingPolicy + Get-CsOnlineAudioFile + Get-CsOnlineDialInConferencingBridge + Get-CsOnlineDialInConferencingLanguagesSupported + Get-CsOnlineDialinConferencingPolicy + Get-CsOnlineDialInConferencingServiceNumber + Get-CsOnlineDialinConferencingTenantConfiguration + Get-CsOnlineDialInConferencingTenantSettings + Get-CsOnlineDialInConferencingUser + Get-CsOnlineDialOutPolicy + Get-CsOnlineDirectoryTenant + Get-CsOnlineEnhancedEmergencyServiceDisclaimer + Get-CsOnlineLisCivicAddress + Get-CsOnlineLisLocation + Get-CsOnlineLisPort + Get-CsOnlineLisSubnet + Get-CsOnlineLisSwitch + Get-CsOnlineLisWirelessAccessPoint + Get-CsOnlinePSTNGateway + Get-CsOnlinePstnUsage + Get-CsOnlineSchedule + Get-CsOnlineSipDomain + Get-CsOnlineTelephoneNumber + Get-CsOnlineTelephoneNumberCountry + Get-CsOnlineTelephoneNumberOrder + Get-CsOnlineTelephoneNumberType + Get-CsOnlineUser + Get-CsOnlineVoicemailUserSettings + Get-CsOnlineVoiceRoute + Get-CsOnlineVoiceRoutingPolicy + Get-CsOnlineVoiceUser + Get-CsPhoneNumberAssignment + Get-CsPhoneNumberPolicyAssignment + Get-CsPhoneNumberTag + Get-CsPolicyPackage + Get-CsSdgBulkSignInRequestStatus + Get-CsSDGBulkSignInRequestsSummary + Get-CsTeamsAudioConferencingPolicy + Get-CsTeamsCallParkPolicy + Get-CsTeamsCortanaPolicy + Get-CsTeamsEmergencyCallRoutingPolicy + Get-CsTeamsEnhancedEncryptionPolicy + Get-CsTeamsGuestCallingConfiguration + Get-CsTeamsGuestMeetingConfiguration + Get-CsTeamsGuestMessagingConfiguration + Get-CsTeamsIPPhonePolicy + Get-CsTeamsMediaLoggingPolicy + Get-CsTeamsMeetingBroadcastConfiguration + Get-CsTeamsMeetingBroadcastPolicy + Get-CsTeamsMigrationConfiguration + Get-CsTeamsMobilityPolicy + Get-CsTeamsNetworkRoamingPolicy + Get-CsTeamsRoomVideoTeleConferencingPolicy + Get-CsTeamsSettingsCustomApp + Get-CsTeamsShiftsAppPolicy + Get-CsTeamsShiftsConnectionConnector + Get-CsTeamsShiftsConnectionErrorReport + Get-CsTeamsShiftsConnection + Get-CsTeamsShiftsConnectionInstance + Get-CsTeamsShiftsConnectionOperation + Get-CsTeamsShiftsConnectionSyncResult + Get-CsTeamsShiftsConnectionTeamMap + Get-CsTeamsShiftsConnectionWfmTeam + Get-CsTeamsShiftsConnectionWfmUser + Get-CsTeamsSurvivableBranchAppliance + Get-CsTeamsSurvivableBranchAppliancePolicy + Get-CsTeamsTargetingPolicy + Get-CsTeamsTranslationRule + Get-CsTeamsUnassignedNumberTreatment + Get-CsTeamsUpgradePolicy + Get-CsTeamsVdiPolicy + Get-CsTeamsVideoInteropServicePolicy + Get-CsTeamsWorkLoadPolicy + Get-CsTeamTemplate + Get-CsTeamTemplateList + Get-CsTenant + Get-CsTenantBlockedCallingNumbers + Get-CsTenantDialPlan + Get-CsTenantFederationConfiguration + Get-CsTenantLicensingConfiguration + Get-CsTenantMigrationConfiguration + Get-CsTenantNetworkConfiguration + Get-CsTenantNetworkRegion + Get-CsTenantNetworkSubnet + Get-CsTenantTrustedIPAddress + Get-CsUserCallingSettings + Get-CsUserPolicyAssignment + Get-CsUserPolicyPackage + Get-CsUserPolicyPackageRecommendation + Get-CsVideoInteropServiceProvider + Grant-CsApplicationAccessPolicy + Get-CsComplianceRecordingForCallQueueTemplate + Get-CsSharedCallQueueHistoryTemplate + Get-CsTagsTemplate + Grant-CsCallingLineIdentity + Grant-CsDialoutPolicy + Grant-CsGroupPolicyPackageAssignment + Grant-CsOnlineAudioConferencingRoutingPolicy + Grant-CsOnlineVoicemailPolicy + Grant-CsOnlineVoiceRoutingPolicy + Grant-CsTeamsAudioConferencingPolicy + Grant-CsTeamsCallHoldPolicy + Grant-CsTeamsCallParkPolicy + Grant-CsTeamsChannelsPolicy + Grant-CsTeamsCortanaPolicy + Grant-CsTeamsEmergencyCallingPolicy + Grant-CsTeamsEmergencyCallRoutingPolicy + Grant-CsTeamsEnhancedEncryptionPolicy + Grant-CsTeamsFeedbackPolicy + Grant-CsTeamsIPPhonePolicy + Grant-CsTeamsMediaLoggingPolicy + Grant-CsTeamsMeetingBroadcastPolicy + Grant-CsTeamsMeetingPolicy + Grant-CsTeamsMessagingPolicy + Grant-CsTeamsMobilityPolicy + Grant-CsTeamsRoomVideoTeleConferencingPolicy + Grant-CsTeamsSurvivableBranchAppliancePolicy + Grant-CsTeamsUpdateManagementPolicy + Grant-CsTeamsUpgradePolicy + Grant-CsTeamsVideoInteropServicePolicy + Grant-CsTeamsVoiceApplicationsPolicy + Grant-CsTeamsWorkLoadPolicy + Grant-CsTenantDialPlan + Grant-CsUserPolicyPackage + Grant-CsTeamsComplianceRecordingPolicy + Import-CsAutoAttendantHolidays + Import-CsOnlineAudioFile + Invoke-CsInternalPSTelemetry + Move-CsInternalHelper + New-CsApplicationAccessPolicy + New-CsAutoAttendant + New-CsAutoAttendantCallableEntity + New-CsAutoAttendantCallFlow + New-CsAutoAttendantCallHandlingAssociation + New-CsAutoAttendantDialScope + New-CsAutoAttendantMenu + New-CsAutoAttendantMenuOption + New-CsAutoAttendantPrompt + New-CsBatchPolicyAssignmentOperation + New-CsBatchPolicyPackageAssignmentOperation + New-CsCallingLineIdentity + New-CsCallQueue + New-CsCloudCallDataConnection + New-CsCustomPolicyPackage + New-CsEdgeAllowAllKnownDomains + New-CsEdgeAllowList + New-CsEdgeDomainPattern + New-CsGroupPolicyAssignment + New-CsHybridTelephoneNumber + New-CsInboundBlockedNumberPattern + New-CsInboundExemptNumberPattern + New-CsMainlineAttendantAppointmentBookingFlow + New-CsMainlineAttendantQuestionAnswerFlow + New-CsOnlineApplicationInstance + New-CsOnlineApplicationInstanceAssociation + New-CsOnlineAudioConferencingRoutingPolicy + New-CsOnlineDateTimeRange + New-CsOnlineLisCivicAddress + New-CsOnlineLisLocation + New-CsOnlinePSTNGateway + New-CsOnlineSchedule + New-CsOnlineTelephoneNumberOrder + New-CsOnlineTimeRange + New-CsOnlineVoiceRoute + New-CsOnlineVoiceRoutingPolicy + New-CsSdgBulkSignInRequest + New-CsTeamsAudioConferencingPolicy + New-CsTeamsCallParkPolicy + New-CsTeamsCortanaPolicy + New-CsTeamsEmergencyCallRoutingPolicy + New-CsTeamsEmergencyNumber + New-CsTeamsEnhancedEncryptionPolicy + New-CsTeamsIPPhonePolicy + New-CsTeamsMeetingBroadcastPolicy + New-CsTeamsMobilityPolicy + New-CsTeamsNetworkRoamingPolicy + New-CsTeamsRoomVideoTeleConferencingPolicy + New-CsTeamsShiftsConnectionBatchTeamMap + New-CsTeamsShiftsConnection + New-CsTeamsShiftsConnectionInstance + New-CsTeamsSurvivableBranchAppliance + New-CsTeamsSurvivableBranchAppliancePolicy + New-CsTeamsTranslationRule + New-CsTeamsUnassignedNumberTreatment + New-CsTeamsVdiPolicy + New-CsTeamsWorkLoadPolicy + New-CsTeamTemplate + New-CsTenantDialPlan + New-CsTenantNetworkRegion + New-CsTenantNetworkSite + New-CsTenantNetworkSubnet + New-CsTenantTrustedIPAddress + New-CsUserCallingDelegate + New-CsVideoInteropServiceProvider + New-CsVoiceNormalizationRule + New-CsOnlineDirectRoutingTelephoneNumberUploadOrder + New-CsOnlineTelephoneNumberReleaseOrder + New-CsComplianceRecordingForCallQueueTemplate + New-CsTagsTemplate + New-CsTag + New-CsSharedCallQueueHistoryTemplate + Register-CsOnlineDialInConferencingServiceNumber + Remove-CsApplicationAccessPolicy + Remove-CsAutoAttendant + Remove-CsCallingLineIdentity + Remove-CsCallQueue + Remove-CsCustomPolicyPackage + Remove-CsGroupPolicyAssignment + Remove-CsHybridTelephoneNumber + Remove-CsInboundBlockedNumberPattern + Remove-CsInboundExemptNumberPattern + Remove-CsMainlineAttendantAppointmentBookingFlow + Remove-CsMainlineAttendantQuestionAnswerFlow + Remove-CsOnlineApplicationInstanceAssociation + Remove-CsOnlineAudioConferencingRoutingPolicy + Remove-CsOnlineAudioFile + Remove-CsOnlineDialInConferencingTenantSettings + Remove-CsOnlineLisCivicAddress + Remove-CsOnlineLisLocation + Remove-CsOnlineLisPort + Remove-CsOnlineLisSubnet + Remove-CsOnlineLisSwitch + Remove-CsOnlineLisWirelessAccessPoint + Remove-CsOnlinePSTNGateway + Remove-CsOnlineSchedule + Remove-CsOnlineTelephoneNumber + Remove-CsOnlineVoiceRoute + Remove-CsOnlineVoiceRoutingPolicy + Remove-CsPhoneNumberAssignment + Remove-CsPhoneNumberTag + Remove-CsTeamsAudioConferencingPolicy + Remove-CsTeamsCallParkPolicy + Remove-CsTeamsCortanaPolicy + Remove-CsTeamsEmergencyCallRoutingPolicy + Remove-CsTeamsEnhancedEncryptionPolicy + Remove-CsTeamsIPPhonePolicy + Remove-CsTeamsMeetingBroadcastPolicy + Remove-CsTeamsMobilityPolicy + Remove-CsTeamsNetworkRoamingPolicy + Remove-CsTeamsRoomVideoTeleConferencingPolicy + Remove-CsTeamsShiftsConnection + Remove-CsTeamsShiftsConnectionInstance + Remove-CsTeamsShiftsConnectionTeamMap + Remove-CsTeamsShiftsScheduleRecord + Remove-CsTeamsSurvivableBranchAppliance + Remove-CsTeamsSurvivableBranchAppliancePolicy + Remove-CsTeamsTargetingPolicy + Remove-CsTeamsTranslationRule + Remove-CsTeamsUnassignedNumberTreatment + Remove-CsTeamsVdiPolicy + Remove-CsTeamsWorkLoadPolicy + Remove-CsTeamTemplate + Remove-CsTenantDialPlan + Remove-CsTenantNetworkRegion + Remove-CsTenantNetworkSite + Remove-CsTenantNetworkSubnet + Remove-CsTenantTrustedIPAddress + Remove-CsUserCallingDelegate + Remove-CsUserLicenseGracePeriod + Remove-CsVideoInteropServiceProvider + Remove-CsComplianceRecordingForCallQueueTemplate + Remove-CsTagsTemplate + Remove-CsSharedCallQueueHistoryTemplate + Set-CsApplicationAccessPolicy + Set-CsApplicationMeetingConfiguration + Set-CsAutoAttendant + Set-CsCallingLineIdentity + Set-CsCallQueue + Set-CsInboundBlockedNumberPattern + Set-CsInboundExemptNumberPattern + Set-CsMainlineAttendantAppointmentBookingFlow + Set-CsMainlineAttendantQuestionAnswerFlow + Set-CsOnlineApplicationInstance + Set-CsOnlineAudioConferencingRoutingPolicy + Set-CsOnlineDialInConferencingBridge + Set-CsOnlineDialInConferencingServiceNumber + Set-CsOnlineDialInConferencingTenantSettings + Set-CsOnlineDialInConferencingUser + Set-CsOnlineDialInConferencingUserDefaultNumber + Set-CsOnlineEnhancedEmergencyServiceDisclaimer + Set-CsOnlineLisCivicAddress + Set-CsOnlineLisLocation + Set-CsOnlineLisPort + Set-CsOnlineLisSubnet + Set-CsOnlineLisSwitch + Set-CsOnlineLisWirelessAccessPoint + Set-CsOnlinePSTNGateway + Set-CsOnlinePstnUsage + Set-CsOnlineSchedule + Set-CsOnlineVoiceApplicationInstance + Set-CsOnlineVoicemailUserSettings + Set-CsOnlineVoiceRoute + Set-CsOnlineVoiceRoutingPolicy + Set-CsOnlineVoiceUser + Set-CsPhoneNumberAssignment + Set-CsPhoneNumberPolicyAssignment + Set-CsPhoneNumberTag + Set-CsTeamsAudioConferencingPolicy + Set-CsTeamsCallParkPolicy + Set-CsTeamsCortanaPolicy + Set-CsTeamsEmergencyCallRoutingPolicy + Set-CsTeamsEnhancedEncryptionPolicy + Set-CsTeamsGuestCallingConfiguration + Set-CsTeamsGuestMeetingConfiguration + Set-CsTeamsGuestMessagingConfiguration + Set-CsTeamsIPPhonePolicy + Set-CsTeamsMeetingBroadcastConfiguration + Set-CsTeamsMeetingBroadcastPolicy + Set-CsTeamsMigrationConfiguration + Set-CsTeamsMobilityPolicy + Set-CsTeamsNetworkRoamingPolicy + Set-CsTeamsRoomVideoTeleConferencingPolicy + Set-CsTeamsSettingsCustomApp + Set-CsTeamsShiftsAppPolicy + Set-CsTeamsShiftsConnection + Set-CsTeamsShiftsConnectionInstance + Set-CsTeamsSurvivableBranchAppliance + Set-CsTeamsSurvivableBranchAppliancePolicy + Set-CsTeamsTargetingPolicy + Set-CsTeamsTranslationRule + Set-CsTeamsUnassignedNumberTreatment + Set-CsTeamsVdiPolicy + Set-CsTeamsWorkLoadPolicy + Set-CsTenantBlockedCallingNumbers + Set-CsTenantDialPlan + Set-CsTenantFederationConfiguration + Set-CsTenantMigrationConfiguration + Set-CsTenantNetworkRegion + Set-CsTenantNetworkSite + Set-CsTenantNetworkSubnet + Set-CsTenantTrustedIPAddress + Set-CsUser + Set-CsUserCallingDelegate + Set-CsUserCallingSettings + Set-CsVideoInteropServiceProvider + Set-CsComplianceRecordingForCallQueueTemplate + Set-CsTagsTemplate + Set-CsSharedCallQueueHistoryTemplate + Start-CsExMeetingMigration + Sync-CsOnlineApplicationInstance + Test-CsEffectiveTenantDialPlan + Test-CsInboundBlockedNumberPattern + Test-CsTeamsShiftsConnectionValidate + Test-CsTeamsTranslationRule + Test-CsTeamsUnassignedNumberTreatment + Test-CsVoiceNormalizationRule + Unregister-CsOnlineDialInConferencingServiceNumber + Update-CsAutoAttendant + Update-CsCustomPolicyPackage + Update-CsPhoneNumberTag + Update-CsTeamsShiftsConnection + Update-CsTeamsShiftsConnectionInstance + Update-CsTeamTemplate + New-CsBatchTeamsDeployment + Get-CsBatchTeamsDeploymentStatus + Get-CsPersonalAttendantSettings + Set-CsPersonalAttendantSettings + Set-CsOCEContext + Clear-CsOCEContext + Get-CsRegionContext + Set-CsRegionContext + Clear-CsRegionContext + Get-CsMeetingMigrationTransactionHistory + Get-CsMasVersionedSchemaData + Get-CsMasObjectChangelog + Get-CsBusinessVoiceDirectoryDiagnosticData + Get-CsCloudTenant + Get-CsCloudUser + Get-CsHostingProvider + Set-CsTenantUserBackfill + Invoke-CsCustomHandlerNgtprov + Invoke-CsCustomHandlerCallBackNgtprov + New-CsSdgDeviceTaggingRequest + Get-CsMoveTenantServiceInstanceTaskStatus + Move-CsTenantServiceInstance + Move-CsTenantCrossRegion + Invoke-CsDirectObjectSync + New-CsSDGDeviceTransferRequest + Get-CsAadTenant + Get-CsAadUser + Clear-CsCacheOperation + Move-CsAvsTenantPartition + Invoke-CsMsodsSync + Get-CsUssUserSettings + Set-CsUssUserSettings + Invoke-CsRehomeuser + Set-CsNotifyCache + + + + + Cmdlet + + + + Add-TeamChannelUser + Add-TeamUser + Connect-MicrosoftTeams + Disconnect-MicrosoftTeams + Set-TeamsEnvironmentConfig + Clear-TeamsEnvironmentConfig + Get-AssociatedTeam + Get-MultiGeoRegion + Get-Operation + Get-SharedWithTeam + Get-SharedWithTeamUser + Get-Team + Get-TeamAllChannel + Get-TeamChannel + Get-TeamChannelUser + Get-TeamIncomingChannel + Get-TeamsApp + Get-TeamsArtifacts + Get-TeamUser + Get-M365TeamsApp + Get-AllM365TeamsApps + Get-M365UnifiedTenantSettings + Get-M365UnifiedCustomPendingApps + Get-CsTeamsAcsFederationConfiguration + Get-CsTeamsMessagingPolicy + Get-CsTeamsMeetingPolicy + Get-CsOnlineVoicemailPolicy + Get-CsOnlineVoicemailValidationConfiguration + Get-CsTeamsAIPolicy + Get-CsTeamsFeedbackPolicy + Get-CsTeamsUpdateManagementPolicy + Get-CsTeamsChannelsPolicy + Get-CsTeamsMeetingBrandingPolicy + Get-CsTeamsEmergencyCallingPolicy + Get-CsTeamsCallHoldPolicy + Get-CsTeamsMessagingConfiguration + Get-CsTeamsVoiceApplicationsPolicy + Get-CsTeamsEventsPolicy + Get-CsTeamsExternalAccessConfiguration + Get-CsTeamsFilesPolicy + Get-CsTeamsCallingPolicy + Get-CsTeamsClientConfiguration + Get-CsExternalAccessPolicy + Get-CsTeamsAppPermissionPolicy + Get-CsTeamsAppSetupPolicy + Get-CsTeamsFirstPartyMeetingTemplateConfiguration + Get-CsTeamsMeetingTemplatePermissionPolicy + Get-CsLocationPolicy + Get-CsTeamsShiftsPolicy + Get-CsTenantNetworkSite + Get-CsTeamsCarrierEmergencyCallRoutingPolicy + Get-CsTeamsMeetingTemplateConfiguration + Get-CsTeamsVirtualAppointmentsPolicy + Get-CsTeamsSharedCallingRoutingPolicy + Get-CsTeamsTemplatePermissionPolicy + Get-CsTeamsComplianceRecordingPolicy + Get-CsTeamsComplianceRecordingApplication + Get-CsTeamsEducationAssignmentsAppPolicy + Get-CsTeamsUpgradeConfiguration + Get-CsTeamsAudioConferencingCustomPromptsConfiguration + Get-CsTeamsSipDevicesConfiguration + Get-CsTeamsCustomBannerText + Get-CsTeamsVdiPolicy + Get-CsTeamsMediaConnectivityPolicy + Get-CsTeamsMeetingConfiguration + Get-CsTeamsWorkLocationDetectionPolicy + Get-CsTeamsRecordingRollOutPolicy + Get-CsTeamsRemoteLogCollectionConfiguration + Get-CsTeamsRemoteLogCollectionDevice + Get-CsTeamsEducationConfiguration + Get-CsTeamsBYODAndDesksPolicy + Get-CsTeamsNotificationAndFeedsPolicy + Get-CsTeamsMultiTenantOrganizationConfiguration + Get-CsTeamsPersonalAttendantPolicy + Get-CsPrivacyConfiguration + Grant-CsTeamsAIPolicy + Grant-CsTeamsMeetingBrandingPolicy + Grant-CsExternalAccessPolicy + Grant-CsTeamsCallingPolicy + Grant-CsTeamsAppPermissionPolicy + Grant-CsTeamsAppSetupPolicy + Grant-CsTeamsEventsPolicy + Grant-CsTeamsFilesPolicy + Grant-CsTeamsMediaConnectivityPolicy + Grant-CsTeamsMeetingTemplatePermissionPolicy + Grant-CsTeamsCarrierEmergencyCallRoutingPolicy + Grant-CsTeamsVirtualAppointmentsPolicy + Grant-CsTeamsSharedCallingRoutingPolicy + Grant-CsTeamsShiftsPolicy + Grant-CsTeamsRecordingRollOutPolicy + Grant-CsTeamsVdiPolicy + Grant-CsTeamsWorkLocationDetectionPolicy + Grant-CsTeamsBYODAndDesksPolicy + Grant-CsTeamsPersonalAttendantPolicy + New-Team + New-TeamChannel + New-TeamsApp + New-CsTeamsAIPolicy + New-CsTeamsMessagingPolicy + New-CsTeamsMeetingPolicy + New-CsOnlineVoicemailPolicy + New-CsTeamsFeedbackPolicy + New-CsTeamsUpdateManagementPolicy + New-CsTeamsChannelsPolicy + New-CsTeamsFilesPolicy + New-CsTeamsMediaConnectivityPolicy + New-CsTeamsMeetingBrandingTheme + New-CsTeamsMeetingBackgroundImage + New-CsTeamsNdiAssuranceSlate + New-CsTeamsMeetingBrandingPolicy + New-CsTeamsEmergencyCallingPolicy + New-CsTeamsEmergencyCallingExtendedNotification + New-CsTeamsCallHoldPolicy + New-CsTeamsVoiceApplicationsPolicy + New-CsTeamsEventsPolicy + New-CsTeamsCallingPolicy + New-CsExternalAccessPolicy + New-CsTeamsAppPermissionPolicy + New-CsTeamsAppSetupPolicy + New-CsTeamsMeetingTemplatePermissionPolicy + New-CsLocationPolicy + New-CsTeamsCarrierEmergencyCallRoutingPolicy + New-CsTeamsHiddenMeetingTemplate + New-CsTeamsVirtualAppointmentsPolicy + New-CsTeamsSharedCallingRoutingPolicy + New-CsTeamsHiddenTemplate + New-CsTeamsTemplatePermissionPolicy + New-CsTeamsComplianceRecordingPolicy + New-CsTeamsComplianceRecordingApplication + New-CsTeamsComplianceRecordingPairedApplication + New-CsTeamsWorkLocationDetectionPolicy + New-CsTeamsRecordingRollOutPolicy + New-CsTeamsRemoteLogCollectionDevice + New-CsCustomPrompt + New-CsCustomPromptPackage + New-CsTeamsShiftsPolicy + New-CsTeamsCustomBannerText + New-CsTeamsVdiPolicy + New-CsTeamsBYODAndDesksPolicy + New-CsTeamsPersonalAttendantPolicy + Remove-SharedWithTeam + Remove-Team + Remove-TeamChannel + Remove-TeamChannelUser + Remove-TeamsApp + Remove-TeamUser + Remove-CsTeamsAIPolicy + Remove-CsTeamsMessagingPolicy + Remove-CsTeamsMeetingPolicy + Remove-CsOnlineVoicemailPolicy + Remove-CsTeamsFeedbackPolicy + Remove-CsTeamsFilesPolicy + Remove-CsTeamsUpdateManagementPolicy + Remove-CsTeamsChannelsPolicy + Remove-CsTeamsMediaConnectivityPolicy + Remove-CsTeamsMeetingBrandingPolicy + Remove-CsTeamsEmergencyCallingPolicy + Remove-CsTeamsCallHoldPolicy + Remove-CsTeamsVoiceApplicationsPolicy + Remove-CsTeamsEventsPolicy + Remove-CsTeamsCallingPolicy + Remove-CsExternalAccessPolicy + Remove-CsTeamsAppPermissionPolicy + Remove-CsTeamsAppSetupPolicy + Remove-CsTeamsMeetingTemplatePermissionPolicy + Remove-CsLocationPolicy + Remove-CsTeamsCarrierEmergencyCallRoutingPolicy + Remove-CsTeamsVirtualAppointmentsPolicy + Remove-CsTeamsSharedCallingRoutingPolicy + Remove-CsTeamsTemplatePermissionPolicy + Remove-CsTeamsComplianceRecordingPolicy + Remove-CsTeamsComplianceRecordingApplication + Remove-CsTeamsShiftsPolicy + Remove-CsTeamsCustomBannerText + Remove-CsTeamsVdiPolicy + Remove-CsTeamsWorkLocationDetectionPolicy + Remove-CsTeamsRecordingRollOutPolicy + Remove-CsTeamsRemoteLogCollectionDevice + Remove-CsTeamsBYODAndDesksPolicy + Remove-CsTeamsNotificationAndFeedsPolicy + Remove-CsTeamsPersonalAttendantPolicy + Set-Team + Set-TeamArchivedState + Set-TeamChannel + Set-TeamPicture + Set-TeamsApp + Set-CsTeamsAcsFederationConfiguration + Set-CsTeamsAIPolicy + Set-CsTeamsMessagingPolicy + Set-CsTeamsMeetingPolicy + Set-CsOnlineVoicemailPolicy + Set-CsTeamsFilesPolicy + Set-CsOnlineVoicemailValidationConfiguration + Set-CsTeamsFeedbackPolicy + Set-CsTeamsUpdateManagementPolicy + Set-CsTeamsChannelsPolicy + Set-CsTeamsMediaConnectivityPolicy + Set-CsTeamsMeetingBrandingPolicy + Set-CsTeamsEmergencyCallingPolicy + Set-CsTeamsEducationConfiguration + Set-CsTeamsCallHoldPolicy + Set-CsTeamsMessagingConfiguration + Set-CsTeamsVoiceApplicationsPolicy + Set-CsTeamsEventsPolicy + Set-CsTeamsExternalAccessConfiguration + Set-CsTeamsCallingPolicy + Set-CsTeamsClientConfiguration + Set-CsExternalAccessPolicy + Set-CsTeamsAppPermissionPolicy + Set-CsTeamsAppSetupPolicy + Set-CsTeamsFirstPartyMeetingTemplateConfiguration + Set-CsTeamsMeetingTemplatePermissionPolicy + Set-CsTeamsMultiTenantOrganizationConfiguration + Set-CsLocationPolicy + Set-CsTeamsCarrierEmergencyCallRoutingPolicy + Set-CsTeamsVirtualAppointmentsPolicy + Set-CsTeamsSharedCallingRoutingPolicy + Set-CsTeamsTemplatePermissionPolicy + Set-CsTeamsComplianceRecordingPolicy + Set-CsTeamsEducationAssignmentsAppPolicy + Set-CsTeamsComplianceRecordingApplication + Set-CsTeamsShiftsPolicy + Set-CsTeamsUpgradeConfiguration + Set-CsTeamsAudioConferencingCustomPromptsConfiguration + Set-CsTeamsSipDevicesConfiguration + Set-CsTeamsMeetingConfiguration + Set-CsTeamsVdiPolicy + Set-CsTeamsWorkLocationDetectionPolicy + Set-CsTeamsRemoteLogCollectionDevice + Set-CsTeamsRecordingRollOutPolicy + Set-CsTeamsCustomBannerText + Set-CsTeamsBYODAndDesksPolicy + Set-CsTeamsNotificationAndFeedsPolicy + Set-CsTeamsPersonalAttendantPolicy + Set-CsPrivacyConfiguration + Update-M365TeamsApp + Update-M365UnifiedTenantSettings + Update-M365UnifiedCustomPendingApp + Get-CsBatchOperationDefinition + Get-CsBatchOperationStatus + Get-CsConfiguration + Get-CsGroupPolicyAssignments + Get-CsLoginInfo + Get-CsUserProvHistory + Get-GPAGroupMembers + Get-GPAUserMembership + Get-NgtProvInstanceFailOverStatus + Get-CsTeamsTenantAbuseConfiguration + Invoke-CsDirectoryObjectSync + Invoke-CsGenericNgtProvCommand + Invoke-CsRefreshGroupUsers + Invoke-CsReprocessBatchOperation + Invoke-CsReprocessGroupPolicyAssignment + Move-NgtProvInstance + New-CsConfiguration + Remove-CsConfiguration + Set-CsConfiguration + Set-CsTeamsTenantAbuseConfiguration + Set-CsPublishPolicySchemaDefaults + Get-TeamTargetingHierarchyStatus + Remove-TeamTargetingHierarchy + Set-TeamTargetingHierarchy + + + + + Workflow + + + + + + **7.4.0-GA** (The project - MicrosoftTeams contains changes till this release)_x000D__x000A_- Releases Get-TeamsArtifacts cmdlet._x000D__x000A_- Adds MainlineAttendantAgentVoiceId parameter to New-CsAutoAttendant cmdlet._x000D__x000A_- Releases [New|Set|Remove|Get]-CsTagsTemplate cmdlets._x000D__x000A_- Releases New-CsTag cmdlet._x000D__x000A_- [BREAKING CHANGE] Renames BotId and PairedApplication parameters in [New|Set|Get]-CsComplianceRecordingForCallQueueTemplate cmdlets to BotApplicationInstanceObjectId and PairedApplicationInstanceObjectId respectively._x000D__x000A_- Releases Get-TeamsRemoteLogCollectionConfiguration and [Get|Set|New|Remove]-TeamsRemoteLogCollectionDevice cmdlets._x000D__x000A__x000D__x000A_- The complete release notes can be found in the below link:_x000D__x000A_https://docs.microsoft.com/MicrosoftTeams/teams-powershell-release-notes + + + + + https://www.powershellgallery.com/api/v2 + PSGallery + NuGet + + + System.Management.Automation.PSCustomObject + System.Object + + + Microsoft Corporation. All rights reserved. + Microsoft Teams cmdlets module for Windows PowerShell and PowerShell Core._x000D__x000A__x000D__x000A_For more information, please visit the following: https://docs.microsoft.com/MicrosoftTeams/teams-powershell-overview + False + **7.4.0-GA** (The project - MicrosoftTeams contains changes till this release)_x000D__x000A_- Releases Get-TeamsArtifacts cmdlet._x000D__x000A_- Adds MainlineAttendantAgentVoiceId parameter to New-CsAutoAttendant cmdlet._x000D__x000A_- Releases [New|Set|Remove|Get]-CsTagsTemplate cmdlets._x000D__x000A_- Releases New-CsTag cmdlet._x000D__x000A_- [BREAKING CHANGE] Renames BotId and PairedApplication parameters in [New|Set|Get]-CsComplianceRecordingForCallQueueTemplate cmdlets to BotApplicationInstanceObjectId and PairedApplicationInstanceObjectId respectively._x000D__x000A_- Releases Get-TeamsRemoteLogCollectionConfiguration and [Get|Set|New|Remove]-TeamsRemoteLogCollectionDevice cmdlets._x000D__x000A__x000D__x000A_- The complete release notes can be found in the below link:_x000D__x000A_https://docs.microsoft.com/MicrosoftTeams/teams-powershell-release-notes + True + True + 95457 + 14350974 + 18512054 + 06-10-2025 13:29:35 +02:00 + 06-10-2025 13:29:35 +02:00 + 03-11-2025 17:30:00 +01:00 + Office365 MicrosoftTeams Teams PSModule PSEdition_Core PSEdition_Desktop + False + 2025-11-03T17:30:00Z + 7.4.0 + Microsoft Corporation + false + Module + MicrosoftTeams.nuspec|GetTeamSettings.format.ps1xml|LICENSE.txt|Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml|Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml|Microsoft.Teams.ConfigAPI.Cmdlets.psd1|Microsoft.Teams.ConfigAPI.Cmdlets.psm1|Microsoft.Teams.Policy.Administration.Cmdlets.Core.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1|Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoicemail.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1|Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1|Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1|Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSipDevicesConfiguration.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.xml|Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.CorePersonalAttendantPolicy.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml|Microsoft.Teams.Policy.Administration.psd1|Microsoft.Teams.Policy.Administration.psm1|Microsoft.Teams.Policy.Administration.xml|Microsoft.Teams.PowerShell.Module.xml|Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml|Microsoft.Teams.PowerShell.TeamsCmdlets.psd1|Microsoft.Teams.PowerShell.TeamsCmdlets.psm1|Microsoft.Teams.PowerShell.TeamsCmdlets.xml|MicrosoftTeams.psd1|MicrosoftTeams.psm1|SetMSTeamsReleaseEnvironment.ps1|SfbRpsModule.format.ps1xml|bin\BrotliSharpLib.dll|bin\Microsoft.IdentityModel.JsonWebTokens.dll|bin\Microsoft.IdentityModel.Logging.dll|bin\Microsoft.IdentityModel.Tokens.dll|bin\Microsoft.Teams.ConfigAPI.CmdletHostContract.dll|bin\Microsoft.Teams.ConfigAPI.Cmdlets.private.deps.json|bin\Microsoft.Teams.ConfigAPI.Cmdlets.private.dll|bin\System.IdentityModel.Tokens.Jwt.dll|custom\CmdletConfig.json|custom\Merged_custom_PsExt.ps1|custom\Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1|en-US\Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-Help.xml|en-US\Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml|en-US\Microsoft.TeamsCmdlets.PowerShell.Connect.dll-Help.xml|en-US\MicrosoftTeams-help.xml|exports\ProxyCmdletDefinitionsWithHelp.ps1|internal\Merged_internal.ps1|internal\Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1|net472\CmdletSettings.json|net472\Microsoft.ApplicationInsights.dll|net472\Microsoft.Applications.Events.Server.dll|net472\Microsoft.Azure.KeyVault.AzureServiceDeploy.dll|net472\Microsoft.Azure.KeyVault.Core.dll|net472\Microsoft.Azure.KeyVault.Cryptography.dll|net472\Microsoft.Azure.KeyVault.Jose.dll|net472\Microsoft.Data.Sqlite.dll|net472\Microsoft.Extensions.Configuration.Abstractions.dll|net472\Microsoft.Extensions.Configuration.dll|net472\Microsoft.Extensions.DependencyInjection.Abstractions.dll|net472\Microsoft.Extensions.Logging.Abstractions.dll|net472\Microsoft.Extensions.Logging.dll|net472\Microsoft.Extensions.Primitives.dll|net472\Microsoft.Ic3.TenantAdminApi.Common.Helper.dll|net472\Microsoft.Identity.Client.Broker.dll|net472\Microsoft.Identity.Client.Desktop.dll|net472\Microsoft.Identity.Client.dll|net472\Microsoft.Identity.Client.Extensions.Msal.dll|net472\Microsoft.Identity.Client.NativeInterop.dll|net472\Microsoft.IdentityModel.Abstractions.dll|net472\Microsoft.IdentityModel.JsonWebTokens.dll|net472\Microsoft.IdentityModel.Logging.dll|net472\Microsoft.IdentityModel.Tokens.dll|net472\Microsoft.Rest.ClientRuntime.Azure.dll|net472\Microsoft.Rest.ClientRuntime.dll|net472\Microsoft.Teams.ConfigAPI.CmdletHostContract.dll|net472\Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll|net472\Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll|net472\Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll|net472\Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll|net472\Microsoft.Teams.Policy.Administration.dll|net472\Microsoft.Teams.PowerShell.Module.dll|net472\Microsoft.Teams.PowerShell.Module.pdb|net472\Microsoft.Teams.PowerShell.Module.xml|net472\Microsoft.Teams.PowerShell.TeamsCmdlets.dll|net472\Microsoft.TeamsCmdlets.PowerShell.Connect.dll|net472\Microsoft.Web.WebView2.Core.dll|net472\Microsoft.Web.WebView2.WinForms.dll|net472\Microsoft.Web.WebView2.Wpf.dll|net472\Newtonsoft.Json.dll|net472\OneCollectorChannel.dll|net472\Polly.Contrib.WaitAndRetry.dll|net472\Polly.dll|net472\System.Buffers.dll|net472\System.Diagnostics.DiagnosticSource.dll|net472\System.IdentityModel.Tokens.Jwt.dll|net472\System.IO.FileSystem.AccessControl.dll|net472\System.Management.Automation.dll|net472\System.Memory.dll|net472\System.Numerics.Vectors.dll|net472\System.Runtime.CompilerServices.Unsafe.dll|net472\System.Security.AccessControl.dll|net472\System.Security.Cryptography.ProtectedData.dll|net472\System.Security.Principal.Windows.dll|net472\System.ValueTuple.dll|net472\runtimes\win-arm64\native\msalruntime_arm64.dll|net472\runtimes\win-x64\native\msalruntime.dll|net472\runtimes\win-x86\native\msalruntime_x005F_x86.dll|netcoreapp3.1\CmdletSettings.json|netcoreapp3.1\Microsoft.ApplicationInsights.dll|netcoreapp3.1\Microsoft.Applications.Events.Server.dll|netcoreapp3.1\Microsoft.Azure.KeyVault.AzureServiceDeploy.dll|netcoreapp3.1\Microsoft.Azure.KeyVault.Core.dll|netcoreapp3.1\Microsoft.Azure.KeyVault.Cryptography.dll|netcoreapp3.1\Microsoft.Azure.KeyVault.Jose.dll|netcoreapp3.1\Microsoft.Data.Sqlite.dll|netcoreapp3.1\Microsoft.Extensions.Configuration.Abstractions.dll|netcoreapp3.1\Microsoft.Extensions.Configuration.dll|netcoreapp3.1\Microsoft.Extensions.DependencyInjection.Abstractions.dll|netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.dll|netcoreapp3.1\Microsoft.Extensions.Logging.dll|netcoreapp3.1\Microsoft.Extensions.Primitives.dll|netcoreapp3.1\Microsoft.Ic3.TenantAdminApi.Common.Helper.dll|netcoreapp3.1\Microsoft.Identity.Client.Broker.dll|netcoreapp3.1\Microsoft.Identity.Client.Desktop.dll|netcoreapp3.1\Microsoft.Identity.Client.dll|netcoreapp3.1\Microsoft.Identity.Client.Extensions.Msal.dll|netcoreapp3.1\Microsoft.Identity.Client.NativeInterop.dll|netcoreapp3.1\Microsoft.IdentityModel.Abstractions.dll|netcoreapp3.1\Microsoft.IdentityModel.JsonWebTokens.dll|netcoreapp3.1\Microsoft.IdentityModel.Logging.dll|netcoreapp3.1\Microsoft.IdentityModel.Tokens.dll|netcoreapp3.1\Microsoft.Rest.ClientRuntime.Azure.dll|netcoreapp3.1\Microsoft.Rest.ClientRuntime.dll|netcoreapp3.1\Microsoft.Teams.ConfigAPI.CmdletHostContract.dll|netcoreapp3.1\Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll|netcoreapp3.1\Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll|netcoreapp3.1\Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll|netcoreapp3.1\Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll|netcoreapp3.1\Microsoft.Teams.Policy.Administration.dll|netcoreapp3.1\Microsoft.Teams.PowerShell.Module.deps.json|netcoreapp3.1\Microsoft.Teams.PowerShell.Module.dll|netcoreapp3.1\Microsoft.Teams.PowerShell.Module.pdb|netcoreapp3.1\Microsoft.Teams.PowerShell.Module.xml|netcoreapp3.1\Microsoft.Teams.PowerShell.TeamsCmdlets.dll|netcoreapp3.1\Microsoft.TeamsCmdlets.PowerShell.Connect.dll|netcoreapp3.1\Microsoft.Web.WebView2.Core.dll|netcoreapp3.1\Microsoft.Web.WebView2.WinForms.dll|netcoreapp3.1\Microsoft.Web.WebView2.Wpf.dll|netcoreapp3.1\Newtonsoft.Json.dll|netcoreapp3.1\OneCollectorChannel.dll|netcoreapp3.1\Polly.Contrib.WaitAndRetry.dll|netcoreapp3.1\Polly.dll|netcoreapp3.1\System.Diagnostics.DiagnosticSource.dll|netcoreapp3.1\System.IdentityModel.Tokens.Jwt.dll|netcoreapp3.1\System.IO.FileSystem.AccessControl.dll|netcoreapp3.1\System.Management.Automation.dll|netcoreapp3.1\System.Management.dll|netcoreapp3.1\System.Runtime.CompilerServices.Unsafe.dll|netcoreapp3.1\System.Security.AccessControl.dll|netcoreapp3.1\System.Security.Cryptography.ProtectedData.dll|netcoreapp3.1\System.Security.Principal.Windows.dll|netcoreapp3.1\runtimes\win-arm64\native\msalruntime_arm64.dll|netcoreapp3.1\runtimes\win-x64\native\msalruntime.dll|netcoreapp3.1\runtimes\win-x86\native\msalruntime_x005F_x86.dll|_manifest\spdx_2.2\bsi.cose|_manifest\spdx_2.2\bsi.json|_manifest\spdx_2.2\ESRPClientLogs1001085417078.json|_manifest\spdx_2.2\manifest.cat|_manifest\spdx_2.2\manifest.spdx.cose|_manifest\spdx_2.2\manifest.spdx.json|_manifest\spdx_2.2\manifest.spdx.json.sha256 + Add-TeamChannelUser Add-TeamUser Connect-MicrosoftTeams Disconnect-MicrosoftTeams Set-TeamsEnvironmentConfig Clear-TeamsEnvironmentConfig Get-AssociatedTeam Get-MultiGeoRegion Get-Operation Get-SharedWithTeam Get-SharedWithTeamUser Get-Team Get-TeamAllChannel Get-TeamChannel Get-TeamChannelUser Get-TeamIncomingChannel Get-TeamsApp Get-TeamsArtifacts Get-TeamUser Get-M365TeamsApp Get-AllM365TeamsApps Get-M365UnifiedTenantSettings Get-M365UnifiedCustomPendingApps Get-CsTeamsAcsFederationConfiguration Get-CsTeamsMessagingPolicy Get-CsTeamsMeetingPolicy Get-CsOnlineVoicemailPolicy Get-CsOnlineVoicemailValidationConfiguration Get-CsTeamsAIPolicy Get-CsTeamsFeedbackPolicy Get-CsTeamsUpdateManagementPolicy Get-CsTeamsChannelsPolicy Get-CsTeamsMeetingBrandingPolicy Get-CsTeamsEmergencyCallingPolicy Get-CsTeamsCallHoldPolicy Get-CsTeamsMessagingConfiguration Get-CsTeamsVoiceApplicationsPolicy Get-CsTeamsEventsPolicy Get-CsTeamsExternalAccessConfiguration Get-CsTeamsFilesPolicy Get-CsTeamsCallingPolicy Get-CsTeamsClientConfiguration Get-CsExternalAccessPolicy Get-CsTeamsAppPermissionPolicy Get-CsTeamsAppSetupPolicy Get-CsTeamsFirstPartyMeetingTemplateConfiguration Get-CsTeamsMeetingTemplatePermissionPolicy Get-CsLocationPolicy Get-CsTeamsShiftsPolicy Get-CsTenantNetworkSite Get-CsTeamsCarrierEmergencyCallRoutingPolicy Get-CsTeamsMeetingTemplateConfiguration Get-CsTeamsVirtualAppointmentsPolicy Get-CsTeamsSharedCallingRoutingPolicy Get-CsTeamsTemplatePermissionPolicy Get-CsTeamsComplianceRecordingPolicy Get-CsTeamsComplianceRecordingApplication Get-CsTeamsEducationAssignmentsAppPolicy Get-CsTeamsUpgradeConfiguration Get-CsTeamsAudioConferencingCustomPromptsConfiguration Get-CsTeamsSipDevicesConfiguration Get-CsTeamsCustomBannerText Get-CsTeamsVdiPolicy Get-CsTeamsMediaConnectivityPolicy Get-CsTeamsMeetingConfiguration Get-CsTeamsWorkLocationDetectionPolicy Get-CsTeamsRecordingRollOutPolicy Get-CsTeamsRemoteLogCollectionConfiguration Get-CsTeamsRemoteLogCollectionDevice Get-CsTeamsEducationConfiguration Get-CsTeamsBYODAndDesksPolicy Get-CsTeamsNotificationAndFeedsPolicy Get-CsTeamsMultiTenantOrganizationConfiguration Get-CsTeamsPersonalAttendantPolicy Get-CsPrivacyConfiguration Grant-CsTeamsAIPolicy Grant-CsTeamsMeetingBrandingPolicy Grant-CsExternalAccessPolicy Grant-CsTeamsCallingPolicy Grant-CsTeamsAppPermissionPolicy Grant-CsTeamsAppSetupPolicy Grant-CsTeamsEventsPolicy Grant-CsTeamsFilesPolicy Grant-CsTeamsMediaConnectivityPolicy Grant-CsTeamsMeetingTemplatePermissionPolicy Grant-CsTeamsCarrierEmergencyCallRoutingPolicy Grant-CsTeamsVirtualAppointmentsPolicy Grant-CsTeamsSharedCallingRoutingPolicy Grant-CsTeamsShiftsPolicy Grant-CsTeamsRecordingRollOutPolicy Grant-CsTeamsVdiPolicy Grant-CsTeamsWorkLocationDetectionPolicy Grant-CsTeamsBYODAndDesksPolicy Grant-CsTeamsPersonalAttendantPolicy New-Team New-TeamChannel New-TeamsApp New-CsTeamsAIPolicy New-CsTeamsMessagingPolicy New-CsTeamsMeetingPolicy New-CsOnlineVoicemailPolicy New-CsTeamsFeedbackPolicy New-CsTeamsUpdateManagementPolicy New-CsTeamsChannelsPolicy New-CsTeamsFilesPolicy New-CsTeamsMediaConnectivityPolicy New-CsTeamsMeetingBrandingTheme New-CsTeamsMeetingBackgroundImage New-CsTeamsNdiAssuranceSlate New-CsTeamsMeetingBrandingPolicy New-CsTeamsEmergencyCallingPolicy New-CsTeamsEmergencyCallingExtendedNotification New-CsTeamsCallHoldPolicy New-CsTeamsVoiceApplicationsPolicy New-CsTeamsEventsPolicy New-CsTeamsCallingPolicy New-CsExternalAccessPolicy New-CsTeamsAppPermissionPolicy New-CsTeamsAppSetupPolicy New-CsTeamsMeetingTemplatePermissionPolicy New-CsLocationPolicy New-CsTeamsCarrierEmergencyCallRoutingPolicy New-CsTeamsHiddenMeetingTemplate New-CsTeamsVirtualAppointmentsPolicy New-CsTeamsSharedCallingRoutingPolicy New-CsTeamsHiddenTemplate New-CsTeamsTemplatePermissionPolicy New-CsTeamsComplianceRecordingPolicy New-CsTeamsComplianceRecordingApplication New-CsTeamsComplianceRecordingPairedApplication New-CsTeamsWorkLocationDetectionPolicy New-CsTeamsRecordingRollOutPolicy New-CsTeamsRemoteLogCollectionDevice New-CsCustomPrompt New-CsCustomPromptPackage New-CsTeamsShiftsPolicy New-CsTeamsCustomBannerText New-CsTeamsVdiPolicy New-CsTeamsBYODAndDesksPolicy New-CsTeamsPersonalAttendantPolicy Remove-SharedWithTeam Remove-Team Remove-TeamChannel Remove-TeamChannelUser Remove-TeamsApp Remove-TeamUser Remove-CsTeamsAIPolicy Remove-CsTeamsMessagingPolicy Remove-CsTeamsMeetingPolicy Remove-CsOnlineVoicemailPolicy Remove-CsTeamsFeedbackPolicy Remove-CsTeamsFilesPolicy Remove-CsTeamsUpdateManagementPolicy Remove-CsTeamsChannelsPolicy Remove-CsTeamsMediaConnectivityPolicy Remove-CsTeamsMeetingBrandingPolicy Remove-CsTeamsEmergencyCallingPolicy Remove-CsTeamsCallHoldPolicy Remove-CsTeamsVoiceApplicationsPolicy Remove-CsTeamsEventsPolicy Remove-CsTeamsCallingPolicy Remove-CsExternalAccessPolicy Remove-CsTeamsAppPermissionPolicy Remove-CsTeamsAppSetupPolicy Remove-CsTeamsMeetingTemplatePermissionPolicy Remove-CsLocationPolicy Remove-CsTeamsCarrierEmergencyCallRoutingPolicy Remove-CsTeamsVirtualAppointmentsPolicy Remove-CsTeamsSharedCallingRoutingPolicy Remove-CsTeamsTemplatePermissionPolicy Remove-CsTeamsComplianceRecordingPolicy Remove-CsTeamsComplianceRecordingApplication Remove-CsTeamsShiftsPolicy Remove-CsTeamsCustomBannerText Remove-CsTeamsVdiPolicy Remove-CsTeamsWorkLocationDetectionPolicy Remove-CsTeamsRecordingRollOutPolicy Remove-CsTeamsRemoteLogCollectionDevice Remove-CsTeamsBYODAndDesksPolicy Remove-CsTeamsNotificationAndFeedsPolicy Remove-CsTeamsPersonalAttendantPolicy Set-Team Set-TeamArchivedState Set-TeamChannel Set-TeamPicture Set-TeamsApp Set-CsTeamsAcsFederationConfiguration Set-CsTeamsAIPolicy Set-CsTeamsMessagingPolicy Set-CsTeamsMeetingPolicy Set-CsOnlineVoicemailPolicy Set-CsTeamsFilesPolicy Set-CsOnlineVoicemailValidationConfiguration Set-CsTeamsFeedbackPolicy Set-CsTeamsUpdateManagementPolicy Set-CsTeamsChannelsPolicy Set-CsTeamsMediaConnectivityPolicy Set-CsTeamsMeetingBrandingPolicy Set-CsTeamsEmergencyCallingPolicy Set-CsTeamsEducationConfiguration Set-CsTeamsCallHoldPolicy Set-CsTeamsMessagingConfiguration Set-CsTeamsVoiceApplicationsPolicy Set-CsTeamsEventsPolicy Set-CsTeamsExternalAccessConfiguration Set-CsTeamsCallingPolicy Set-CsTeamsClientConfiguration Set-CsExternalAccessPolicy Set-CsTeamsAppPermissionPolicy Set-CsTeamsAppSetupPolicy Set-CsTeamsFirstPartyMeetingTemplateConfiguration Set-CsTeamsMeetingTemplatePermissionPolicy Set-CsTeamsMultiTenantOrganizationConfiguration Set-CsLocationPolicy Set-CsTeamsCarrierEmergencyCallRoutingPolicy Set-CsTeamsVirtualAppointmentsPolicy Set-CsTeamsSharedCallingRoutingPolicy Set-CsTeamsTemplatePermissionPolicy Set-CsTeamsComplianceRecordingPolicy Set-CsTeamsEducationAssignmentsAppPolicy Set-CsTeamsComplianceRecordingApplication Set-CsTeamsShiftsPolicy Set-CsTeamsUpgradeConfiguration Set-CsTeamsAudioConferencingCustomPromptsConfiguration Set-CsTeamsSipDevicesConfiguration Set-CsTeamsMeetingConfiguration Set-CsTeamsVdiPolicy Set-CsTeamsWorkLocationDetectionPolicy Set-CsTeamsRemoteLogCollectionDevice Set-CsTeamsRecordingRollOutPolicy Set-CsTeamsCustomBannerText Set-CsTeamsBYODAndDesksPolicy Set-CsTeamsNotificationAndFeedsPolicy Set-CsTeamsPersonalAttendantPolicy Set-CsPrivacyConfiguration Update-M365TeamsApp Update-M365UnifiedTenantSettings Update-M365UnifiedCustomPendingApp Get-CsBatchOperationDefinition Get-CsBatchOperationStatus Get-CsConfiguration Get-CsGroupPolicyAssignments Get-CsLoginInfo Get-CsUserProvHistory Get-GPAGroupMembers Get-GPAUserMembership Get-NgtProvInstanceFailOverStatus Get-CsTeamsTenantAbuseConfiguration Invoke-CsDirectoryObjectSync Invoke-CsGenericNgtProvCommand Invoke-CsRefreshGroupUsers Invoke-CsReprocessBatchOperation Invoke-CsReprocessGroupPolicyAssignment Move-NgtProvInstance New-CsConfiguration Remove-CsConfiguration Set-CsConfiguration Set-CsTeamsTenantAbuseConfiguration Set-CsPublishPolicySchemaDefaults Get-TeamTargetingHierarchyStatus Remove-TeamTargetingHierarchy Set-TeamTargetingHierarchy + Clear-CsOnlineTelephoneNumberOrder Complete-CsOnlineTelephoneNumberOrder Disable-CsOnlineSipDomain Enable-CsOnlineSipDomain Export-CsAcquiredPhoneNumber Export-CsAutoAttendantHolidays Export-CsOnlineAudioFile Find-CsGroup Find-CsOnlineApplicationInstance Get-CsApplicationAccessPolicy Get-CsApplicationMeetingConfiguration Get-CsAutoAttendant Get-CsAutoAttendantHolidays Get-CsAutoAttendantStatus Get-CsAutoAttendantSupportedLanguage Get-CsAutoAttendantSupportedTimeZone Get-CsAutoAttendantTenantInformation Get-CsBatchPolicyAssignmentOperation Get-CsCallingLineIdentity Get-CsCallQueue Get-CsCloudCallDataConnection Get-CsEffectiveTenantDialPlan Get-CsExportAcquiredPhoneNumberStatus Get-CsGroupPolicyAssignment Get-CsHybridTelephoneNumber Get-CsInboundBlockedNumberPattern Get-CsInboundExemptNumberPattern Get-CsMainlineAttendantAppointmentBookingFlow Get-CsMainlineAttendantFlow Get-CsMainlineAttendantQuestionAnswerFlow Get-CsMeetingMigrationStatus Get-CsOnlineApplicationInstance Get-CsOnlineApplicationInstanceAssociation Get-CsOnlineApplicationInstanceAssociationStatus Get-CsOnlineAudioConferencingRoutingPolicy Get-CsOnlineAudioFile Get-CsOnlineDialInConferencingBridge Get-CsOnlineDialInConferencingLanguagesSupported Get-CsOnlineDialinConferencingPolicy Get-CsOnlineDialInConferencingServiceNumber Get-CsOnlineDialinConferencingTenantConfiguration Get-CsOnlineDialInConferencingTenantSettings Get-CsOnlineDialInConferencingUser Get-CsOnlineDialOutPolicy Get-CsOnlineDirectoryTenant Get-CsOnlineEnhancedEmergencyServiceDisclaimer Get-CsOnlineLisCivicAddress Get-CsOnlineLisLocation Get-CsOnlineLisPort Get-CsOnlineLisSubnet Get-CsOnlineLisSwitch Get-CsOnlineLisWirelessAccessPoint Get-CsOnlinePSTNGateway Get-CsOnlinePstnUsage Get-CsOnlineSchedule Get-CsOnlineSipDomain Get-CsOnlineTelephoneNumber Get-CsOnlineTelephoneNumberCountry Get-CsOnlineTelephoneNumberOrder Get-CsOnlineTelephoneNumberType Get-CsOnlineUser Get-CsOnlineVoicemailUserSettings Get-CsOnlineVoiceRoute Get-CsOnlineVoiceRoutingPolicy Get-CsOnlineVoiceUser Get-CsPhoneNumberAssignment Get-CsPhoneNumberPolicyAssignment Get-CsPhoneNumberTag Get-CsPolicyPackage Get-CsSdgBulkSignInRequestStatus Get-CsSDGBulkSignInRequestsSummary Get-CsTeamsAudioConferencingPolicy Get-CsTeamsCallParkPolicy Get-CsTeamsCortanaPolicy Get-CsTeamsEmergencyCallRoutingPolicy Get-CsTeamsEnhancedEncryptionPolicy Get-CsTeamsGuestCallingConfiguration Get-CsTeamsGuestMeetingConfiguration Get-CsTeamsGuestMessagingConfiguration Get-CsTeamsIPPhonePolicy Get-CsTeamsMediaLoggingPolicy Get-CsTeamsMeetingBroadcastConfiguration Get-CsTeamsMeetingBroadcastPolicy Get-CsTeamsMigrationConfiguration Get-CsTeamsMobilityPolicy Get-CsTeamsNetworkRoamingPolicy Get-CsTeamsRoomVideoTeleConferencingPolicy Get-CsTeamsSettingsCustomApp Get-CsTeamsShiftsAppPolicy Get-CsTeamsShiftsConnectionConnector Get-CsTeamsShiftsConnectionErrorReport Get-CsTeamsShiftsConnection Get-CsTeamsShiftsConnectionInstance Get-CsTeamsShiftsConnectionOperation Get-CsTeamsShiftsConnectionSyncResult Get-CsTeamsShiftsConnectionTeamMap Get-CsTeamsShiftsConnectionWfmTeam Get-CsTeamsShiftsConnectionWfmUser Get-CsTeamsSurvivableBranchAppliance Get-CsTeamsSurvivableBranchAppliancePolicy Get-CsTeamsTargetingPolicy Get-CsTeamsTranslationRule Get-CsTeamsUnassignedNumberTreatment Get-CsTeamsUpgradePolicy Get-CsTeamsVdiPolicy Get-CsTeamsVideoInteropServicePolicy Get-CsTeamsWorkLoadPolicy Get-CsTeamTemplate Get-CsTeamTemplateList Get-CsTenant Get-CsTenantBlockedCallingNumbers Get-CsTenantDialPlan Get-CsTenantFederationConfiguration Get-CsTenantLicensingConfiguration Get-CsTenantMigrationConfiguration Get-CsTenantNetworkConfiguration Get-CsTenantNetworkRegion Get-CsTenantNetworkSubnet Get-CsTenantTrustedIPAddress Get-CsUserCallingSettings Get-CsUserPolicyAssignment Get-CsUserPolicyPackage Get-CsUserPolicyPackageRecommendation Get-CsVideoInteropServiceProvider Grant-CsApplicationAccessPolicy Get-CsComplianceRecordingForCallQueueTemplate Get-CsSharedCallQueueHistoryTemplate Get-CsTagsTemplate Grant-CsCallingLineIdentity Grant-CsDialoutPolicy Grant-CsGroupPolicyPackageAssignment Grant-CsOnlineAudioConferencingRoutingPolicy Grant-CsOnlineVoicemailPolicy Grant-CsOnlineVoiceRoutingPolicy Grant-CsTeamsAudioConferencingPolicy Grant-CsTeamsCallHoldPolicy Grant-CsTeamsCallParkPolicy Grant-CsTeamsChannelsPolicy Grant-CsTeamsCortanaPolicy Grant-CsTeamsEmergencyCallingPolicy Grant-CsTeamsEmergencyCallRoutingPolicy Grant-CsTeamsEnhancedEncryptionPolicy Grant-CsTeamsFeedbackPolicy Grant-CsTeamsIPPhonePolicy Grant-CsTeamsMediaLoggingPolicy Grant-CsTeamsMeetingBroadcastPolicy Grant-CsTeamsMeetingPolicy Grant-CsTeamsMessagingPolicy Grant-CsTeamsMobilityPolicy Grant-CsTeamsRoomVideoTeleConferencingPolicy Grant-CsTeamsSurvivableBranchAppliancePolicy Grant-CsTeamsUpdateManagementPolicy Grant-CsTeamsUpgradePolicy Grant-CsTeamsVideoInteropServicePolicy Grant-CsTeamsVoiceApplicationsPolicy Grant-CsTeamsWorkLoadPolicy Grant-CsTenantDialPlan Grant-CsUserPolicyPackage Grant-CsTeamsComplianceRecordingPolicy Import-CsAutoAttendantHolidays Import-CsOnlineAudioFile Invoke-CsInternalPSTelemetry Move-CsInternalHelper New-CsApplicationAccessPolicy New-CsAutoAttendant New-CsAutoAttendantCallableEntity New-CsAutoAttendantCallFlow New-CsAutoAttendantCallHandlingAssociation New-CsAutoAttendantDialScope New-CsAutoAttendantMenu New-CsAutoAttendantMenuOption New-CsAutoAttendantPrompt New-CsBatchPolicyAssignmentOperation New-CsBatchPolicyPackageAssignmentOperation New-CsCallingLineIdentity New-CsCallQueue New-CsCloudCallDataConnection New-CsCustomPolicyPackage New-CsEdgeAllowAllKnownDomains New-CsEdgeAllowList New-CsEdgeDomainPattern New-CsGroupPolicyAssignment New-CsHybridTelephoneNumber New-CsInboundBlockedNumberPattern New-CsInboundExemptNumberPattern New-CsMainlineAttendantAppointmentBookingFlow New-CsMainlineAttendantQuestionAnswerFlow New-CsOnlineApplicationInstance New-CsOnlineApplicationInstanceAssociation New-CsOnlineAudioConferencingRoutingPolicy New-CsOnlineDateTimeRange New-CsOnlineLisCivicAddress New-CsOnlineLisLocation New-CsOnlinePSTNGateway New-CsOnlineSchedule New-CsOnlineTelephoneNumberOrder New-CsOnlineTimeRange New-CsOnlineVoiceRoute New-CsOnlineVoiceRoutingPolicy New-CsSdgBulkSignInRequest New-CsTeamsAudioConferencingPolicy New-CsTeamsCallParkPolicy New-CsTeamsCortanaPolicy New-CsTeamsEmergencyCallRoutingPolicy New-CsTeamsEmergencyNumber New-CsTeamsEnhancedEncryptionPolicy New-CsTeamsIPPhonePolicy New-CsTeamsMeetingBroadcastPolicy New-CsTeamsMobilityPolicy New-CsTeamsNetworkRoamingPolicy New-CsTeamsRoomVideoTeleConferencingPolicy New-CsTeamsShiftsConnectionBatchTeamMap New-CsTeamsShiftsConnection New-CsTeamsShiftsConnectionInstance New-CsTeamsSurvivableBranchAppliance New-CsTeamsSurvivableBranchAppliancePolicy New-CsTeamsTranslationRule New-CsTeamsUnassignedNumberTreatment New-CsTeamsVdiPolicy New-CsTeamsWorkLoadPolicy New-CsTeamTemplate New-CsTenantDialPlan New-CsTenantNetworkRegion New-CsTenantNetworkSite New-CsTenantNetworkSubnet New-CsTenantTrustedIPAddress New-CsUserCallingDelegate New-CsVideoInteropServiceProvider New-CsVoiceNormalizationRule New-CsOnlineDirectRoutingTelephoneNumberUploadOrder New-CsOnlineTelephoneNumberReleaseOrder New-CsComplianceRecordingForCallQueueTemplate New-CsTagsTemplate New-CsTag New-CsSharedCallQueueHistoryTemplate Register-CsOnlineDialInConferencingServiceNumber Remove-CsApplicationAccessPolicy Remove-CsAutoAttendant Remove-CsCallingLineIdentity Remove-CsCallQueue Remove-CsCustomPolicyPackage Remove-CsGroupPolicyAssignment Remove-CsHybridTelephoneNumber Remove-CsInboundBlockedNumberPattern Remove-CsInboundExemptNumberPattern Remove-CsMainlineAttendantAppointmentBookingFlow Remove-CsMainlineAttendantQuestionAnswerFlow Remove-CsOnlineApplicationInstanceAssociation Remove-CsOnlineAudioConferencingRoutingPolicy Remove-CsOnlineAudioFile Remove-CsOnlineDialInConferencingTenantSettings Remove-CsOnlineLisCivicAddress Remove-CsOnlineLisLocation Remove-CsOnlineLisPort Remove-CsOnlineLisSubnet Remove-CsOnlineLisSwitch Remove-CsOnlineLisWirelessAccessPoint Remove-CsOnlinePSTNGateway Remove-CsOnlineSchedule Remove-CsOnlineTelephoneNumber Remove-CsOnlineVoiceRoute Remove-CsOnlineVoiceRoutingPolicy Remove-CsPhoneNumberAssignment Remove-CsPhoneNumberTag Remove-CsTeamsAudioConferencingPolicy Remove-CsTeamsCallParkPolicy Remove-CsTeamsCortanaPolicy Remove-CsTeamsEmergencyCallRoutingPolicy Remove-CsTeamsEnhancedEncryptionPolicy Remove-CsTeamsIPPhonePolicy Remove-CsTeamsMeetingBroadcastPolicy Remove-CsTeamsMobilityPolicy Remove-CsTeamsNetworkRoamingPolicy Remove-CsTeamsRoomVideoTeleConferencingPolicy Remove-CsTeamsShiftsConnection Remove-CsTeamsShiftsConnectionInstance Remove-CsTeamsShiftsConnectionTeamMap Remove-CsTeamsShiftsScheduleRecord Remove-CsTeamsSurvivableBranchAppliance Remove-CsTeamsSurvivableBranchAppliancePolicy Remove-CsTeamsTargetingPolicy Remove-CsTeamsTranslationRule Remove-CsTeamsUnassignedNumberTreatment Remove-CsTeamsVdiPolicy Remove-CsTeamsWorkLoadPolicy Remove-CsTeamTemplate Remove-CsTenantDialPlan Remove-CsTenantNetworkRegion Remove-CsTenantNetworkSite Remove-CsTenantNetworkSubnet Remove-CsTenantTrustedIPAddress Remove-CsUserCallingDelegate Remove-CsUserLicenseGracePeriod Remove-CsVideoInteropServiceProvider Remove-CsComplianceRecordingForCallQueueTemplate Remove-CsTagsTemplate Remove-CsSharedCallQueueHistoryTemplate Set-CsApplicationAccessPolicy Set-CsApplicationMeetingConfiguration Set-CsAutoAttendant Set-CsCallingLineIdentity Set-CsCallQueue Set-CsInboundBlockedNumberPattern Set-CsInboundExemptNumberPattern Set-CsMainlineAttendantAppointmentBookingFlow Set-CsMainlineAttendantQuestionAnswerFlow Set-CsOnlineApplicationInstance Set-CsOnlineAudioConferencingRoutingPolicy Set-CsOnlineDialInConferencingBridge Set-CsOnlineDialInConferencingServiceNumber Set-CsOnlineDialInConferencingTenantSettings Set-CsOnlineDialInConferencingUser Set-CsOnlineDialInConferencingUserDefaultNumber Set-CsOnlineEnhancedEmergencyServiceDisclaimer Set-CsOnlineLisCivicAddress Set-CsOnlineLisLocation Set-CsOnlineLisPort Set-CsOnlineLisSubnet Set-CsOnlineLisSwitch Set-CsOnlineLisWirelessAccessPoint Set-CsOnlinePSTNGateway Set-CsOnlinePstnUsage Set-CsOnlineSchedule Set-CsOnlineVoiceApplicationInstance Set-CsOnlineVoicemailUserSettings Set-CsOnlineVoiceRoute Set-CsOnlineVoiceRoutingPolicy Set-CsOnlineVoiceUser Set-CsPhoneNumberAssignment Set-CsPhoneNumberPolicyAssignment Set-CsPhoneNumberTag Set-CsTeamsAudioConferencingPolicy Set-CsTeamsCallParkPolicy Set-CsTeamsCortanaPolicy Set-CsTeamsEmergencyCallRoutingPolicy Set-CsTeamsEnhancedEncryptionPolicy Set-CsTeamsGuestCallingConfiguration Set-CsTeamsGuestMeetingConfiguration Set-CsTeamsGuestMessagingConfiguration Set-CsTeamsIPPhonePolicy Set-CsTeamsMeetingBroadcastConfiguration Set-CsTeamsMeetingBroadcastPolicy Set-CsTeamsMigrationConfiguration Set-CsTeamsMobilityPolicy Set-CsTeamsNetworkRoamingPolicy Set-CsTeamsRoomVideoTeleConferencingPolicy Set-CsTeamsSettingsCustomApp Set-CsTeamsShiftsAppPolicy Set-CsTeamsShiftsConnection Set-CsTeamsShiftsConnectionInstance Set-CsTeamsSurvivableBranchAppliance Set-CsTeamsSurvivableBranchAppliancePolicy Set-CsTeamsTargetingPolicy Set-CsTeamsTranslationRule Set-CsTeamsUnassignedNumberTreatment Set-CsTeamsVdiPolicy Set-CsTeamsWorkLoadPolicy Set-CsTenantBlockedCallingNumbers Set-CsTenantDialPlan Set-CsTenantFederationConfiguration Set-CsTenantMigrationConfiguration Set-CsTenantNetworkRegion Set-CsTenantNetworkSite Set-CsTenantNetworkSubnet Set-CsTenantTrustedIPAddress Set-CsUser Set-CsUserCallingDelegate Set-CsUserCallingSettings Set-CsVideoInteropServiceProvider Set-CsComplianceRecordingForCallQueueTemplate Set-CsTagsTemplate Set-CsSharedCallQueueHistoryTemplate Start-CsExMeetingMigration Sync-CsOnlineApplicationInstance Test-CsEffectiveTenantDialPlan Test-CsInboundBlockedNumberPattern Test-CsTeamsShiftsConnectionValidate Test-CsTeamsTranslationRule Test-CsTeamsUnassignedNumberTreatment Test-CsVoiceNormalizationRule Unregister-CsOnlineDialInConferencingServiceNumber Update-CsAutoAttendant Update-CsCustomPolicyPackage Update-CsPhoneNumberTag Update-CsTeamsShiftsConnection Update-CsTeamsShiftsConnectionInstance Update-CsTeamTemplate New-CsBatchTeamsDeployment Get-CsBatchTeamsDeploymentStatus Get-CsPersonalAttendantSettings Set-CsPersonalAttendantSettings Set-CsOCEContext Clear-CsOCEContext Get-CsRegionContext Set-CsRegionContext Clear-CsRegionContext Get-CsMeetingMigrationTransactionHistory Get-CsMasVersionedSchemaData Get-CsMasObjectChangelog Get-CsBusinessVoiceDirectoryDiagnosticData Get-CsCloudTenant Get-CsCloudUser Get-CsHostingProvider Set-CsTenantUserBackfill Invoke-CsCustomHandlerNgtprov Invoke-CsCustomHandlerCallBackNgtprov New-CsSdgDeviceTaggingRequest Get-CsMoveTenantServiceInstanceTaskStatus Move-CsTenantServiceInstance Move-CsTenantCrossRegion Invoke-CsDirectObjectSync New-CsSDGDeviceTransferRequest Get-CsAadTenant Get-CsAadUser Clear-CsCacheOperation Move-CsAvsTenantPartition Invoke-CsMsodsSync Get-CsUssUserSettings Set-CsUssUserSettings Invoke-CsRehomeuser Set-CsNotifyCache + d910df43-3ca6-4c9c-a2e3-e9f45a8e2ad9 + 5.1 + 4.7.2 + 4.0 + Microsoft Corporation + + + C:\Users\kris6\Documents\Programming\CIPP-Project\CIPP-API\Modules\MicrosoftTeams\MicrosoftTeams\7.4.0 +
+
+
diff --git a/Modules/MicrosoftTeams/7.4.0/SetMSTeamsReleaseEnvironment.ps1 b/Modules/MicrosoftTeams/7.4.0/SetMSTeamsReleaseEnvironment.ps1 new file mode 100644 index 000000000000..933a7990f95a --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/SetMSTeamsReleaseEnvironment.ps1 @@ -0,0 +1,237 @@ +#This file is setting HostingEnvironment environment variable using which we can decide in nested modules, that which cmdlets it has to export. + +# We don't have access to the module at load time, since loading occurs last +# Instead we set up a one-time event to set the OnRemove scriptblock once the module has been loaded +$null = Register-EngineEvent -SourceIdentifier PowerShell.OnIdle -MaxTriggerCount 1 -Action { + $m = Get-Module MicrosoftTeams + $m.OnRemove = { + Write-Verbose "Removing MSTeamsReleaseEnvironment" + $env:MSTeamsReleaseEnvironment = $null + Disconnect-MicrosoftTeams + } +} + +$env:MSTeamsReleaseEnvironment = 'TeamsGA' + +#The below line will be uncommented by build process if its preview module + +#preview $env:MSTeamsReleaseEnvironment = 'TeamsPreview' + +# SIG # Begin signature block +# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCC6QSrbNq5qY4CX +# 15x6qVrEe3OnMqckrZDKvtChfXP5jaCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIKwh +# nAu5OLUmTWVzGDxzwu87ECHdTJ+a4iX/WmYDn6qeMEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEAGAFmuGT0xYp48V7BoXX6c89KcPLcocoWe9yk +# OsZ2mM0SV8SDsDRat3chIFt6CQlTBXdfH/0kHRTKmp5a9zPdfiqOEfpcSIfM1spN +# EfChvGCHMmj6tm9rVOiTm/ACgZ/a36TYoO/Xk2qLB5LR8RceaGaJktbddSv2HmVw +# t2T0Y3p2Wb/NdaaxfibTrbis1pf4UFkndDUrsBN9xntUYr+2s9Lb46uB8CMItikt +# 5+eKPnrWrjU/sTq2Z8FyRt5t24eGJJJhBkXBFMuqgCHzezt+iayOKjPlHBVQgQlu +# 1pLfVECoeblhROX5wExp4DSg2/bNqGMPgq7Q8RPTECU992WI2aGCF7AwghesBgor +# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCybXx942s9ucM9RAj+edkEKhgA/IQAl6IT +# JKKbMorgnwIGaKR4CbEBGBMyMDI1MTAwMTA4MzMwNi4wODJaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo0MzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+vs7 +# RNN3M8bTAAEAAAH6MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExMVoXDTI1MTAyMjE4MzExMVowgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjQzMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# yhZVBM3PZcBfEpAf7fIIhygwYVVP64USeZbSlRR3pvJebva0LQCDW45yOrtpwIpG +# yDGX+EbCbHhS5Td4J0Ylc83ztLEbbQD7M6kqR0Xj+n82cGse/QnMH0WRZLnwggJd +# enpQ6UciM4nMYZvdQjybA4qejOe9Y073JlXv3VIbdkQH2JGyT8oB/LsvPL/kAnJ4 +# 5oQIp7Sx57RPQ/0O6qayJ2SJrwcjA8auMdAnZKOixFlzoooh7SyycI7BENHTpkVK +# rRV5YelRvWNTg1pH4EC2KO2bxsBN23btMeTvZFieGIr+D8mf1lQQs0Ht/tMOVdah +# 14t7Yk+xl5P4Tw3xfAGgHsvsa6ugrxwmKTTX1kqXH5XCdw3TVeKCax6JV+ygM5i1 +# NroJKwBCW11Pwi0z/ki90ZeO6XfEE9mCnJm76Qcxi3tnW/Y/3ZumKQ6X/iVIJo7L +# k0Z/pATRwAINqwdvzpdtX2hOJib4GR8is2bpKks04GurfweWPn9z6jY7GBC+js8p +# SwGewrffwgAbNKm82ZDFvqBGQQVJwIHSXpjkS+G39eyYOG2rcILBIDlzUzMFFJbN +# h5tDv3GeJ3EKvC4vNSAxtGfaG/mQhK43YjevsB72LouU78rxtNhuMXSzaHq5fFiG +# 3zcsYHaa4+w+YmMrhTEzD4SAish35BjoXP1P1Ct4Va0CAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBRjjHKbL5WV6kd06KocQHphK9U/vzAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAuFbCorFrvodG+ZNJH3Y+Nz5QpUytQVObOyYFrgcGrxq6MUa4yLmxN4xW +# dL1kygaW5BOZ3xBlPY7Vpuf5b5eaXP7qRq61xeOrX3f64kGiSWoRi9EJawJWCzJf +# UQRThDL4zxI2pYc1wnPp7Q695bHqwZ02eaOBudh/IfEkGe0Ofj6IS3oyZsJP1yat +# cm4kBqIH6db1+weM4q46NhAfAf070zF6F+IpUHyhtMbQg5+QHfOuyBzrt67CiMJS +# KcJ3nMVyfNlnv6yvttYzLK3wS+0QwJUibLYJMI6FGcSuRxKlq6RjOhK9L3QOjh0V +# CM11rHM11ZmN0euJbbBCVfQEufOLNkG88MFCUNE10SSbM/Og/CbTko0M5wbVvQJ6 +# CqLKjtHSoeoAGPeeX24f5cPYyTcKlbM6LoUdO2P5JSdI5s1JF/On6LiUT50adpRs +# tZajbYEeX/N7RvSbkn0djD3BvT2Of3Wf9gIeaQIHbv1J2O/P5QOPQiVo8+0AKm6M +# 0TKOduihhKxAt/6Yyk17Fv3RIdjT6wiL2qRIEsgOJp3fILw4mQRPu3spRfakSoQe +# 5N0e4HWFf8WW2ZL0+c83Qzh3VtEPI6Y2e2BO/eWhTYbIbHpqYDfAtAYtaYIde87Z +# ymXG3MO2wUjhL9HvSQzjoquq+OoUmvfBUcB2e5L6QCHO6qTO7WowggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo0MzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUA94Z+bUJn+nKw +# BvII6sg0Ny7aPDaggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyG+iMwIhgPMjAyNTEwMDEwMDUzNTVaGA8yMDI1 +# MTAwMjAwNTM1NVowdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA7Ib6IwIBADAKAgEA +# AgItJAIB/zAHAgEAAgIZEzAKAgUA7IhLowIBADA2BgorBgEEAYRZCgQCMSgwJjAM +# BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB +# CwUAA4IBAQA583XbQoKh/10MA7+Ujzrcdwv4sL0mvb8WSmgA4kJCPmh14/C3jvzy +# RpcSNYxQbRkMEclEpVCXRsfgrmGL5p52U8qKEGXyvGAp8XaxhklYYuWfACDfCKdH +# T0KhlXTQrGiZP2m+F0Di5QKstoDY/fq5m7Y5b3UYa3lEi6n3Lms0ezpf9rXWusot +# K0SVpTayoddl986SLKLVzqvlEUSdF4jFJp6KZ/flzIE00qqvoRE3jESffoTNMI6c +# fShEm1O3Fg0ubJanNSHN+xNLFF+wE87TzV59AP/Ixwwt4BFsQn4lL1kUKs81VzHp +# XsO6bcaF5N2PtFKTmtAt3qVZEpio+Dj4MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE +# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc +# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 +# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH6+ztE03czxtMAAQAAAfowDQYJYIZI +# AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG +# 9w0BCQQxIgQg7HjPTEjWdbHC5DbQT2CRTnCRPtHiIR1bwkSqcqBdea4wgfoGCyqG +# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCB98n8tya8+B2jjU/dpJRIwHwHHpco5ogNS +# tYocbkOeVjCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n +# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y +# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz +# AAAB+vs7RNN3M8bTAAEAAAH6MCIEICgabd0aMglwPIRAQpeLtPTt+Pmsi4Ljxvse +# jujm3TVJMA0GCSqGSIb3DQEBCwUABIICAKftgUAhg5jy45bSUwWDwbN2MyiesyeP +# EbW/RtV5SWp04Sh8iODjU2kr16FqEYRLcQiFngcx7nulT2HZS2PjxNRMdYEZQhDu +# Bw0rrcusqyGYqwrdwOuphEEtSyDX9o99H3ZWhJLWEtH63dNeBg/t+y9JOcD1EoIa +# iUPLcQSrJ8W13tuRDLAfQ+4EKH6F1l8mePWB8tbV8ukD8yqu46TxSUj3ssuMzm5x +# Ry1attYEp+HiHFvAX8zq5RR0flTziW23ytEy3VXSDaUb3pghGXMQ6WjDcQYxmPII +# Wle+N7Q4S2DBOEAf7/5DNUrDEMLCDpOv6qMurDbA1RCxKARtgPY01o/7nlrqn2ET +# 2rEgJGNmB0LMIW64Es4aIr8w3IZSvPzYYNonkf3PfMFoS08eysKN7g3z0RuR67rE +# ol4Q7/6JMbcvTaK/ha5nr08PnPDdhFQXxx2OU9SeAwmTpz3ESeXyjSq1qeGE4mUc +# a4GaQcRLCOgGACt2F7mZuy8c/D6MEAl1wUYeHHwVBj1hpP30q2fL8dXTVEQPR7hL +# bR9gVoy7xHb3jrqhcQiy/N9ys3kt6B3H6iNgUOhKnJcRFIZ9NBn35/Y7dZ3tzovy +# r8BNizclS3wvtMoaDn4i+zaqqUMpGnlf+nw6MDk5p/04fGzjMUT5mTa1blP+ODvu +# hmtke0jN2dH2 +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/SfbRpsModule.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/SfbRpsModule.format.ps1xml new file mode 100644 index 000000000000..e35f4203faf1 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/SfbRpsModule.format.ps1xml @@ -0,0 +1,26537 @@ + + + + + DeserializedAddressBookServicePolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.AddressBook.AddressBookServicePolicy + + + + + + + + Identity + + + + Description + + + + EnableAzureABS + + + + EnableAzureABSSideBySide + + + + EnableRankedResultsDisplay + + + + DisableAzureABSForUcwa + + + + + + + + DeserializedCallViaWorkPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.CallViaWork.CallViaWorkPolicy + + + + + + + + Identity + + + + Enabled + + + + UseAdminCallbackNumber + + + + AdminCallbackNumber + + + + + + + + DeserializedClientPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Client.ClientPolicy + + + + + + + + Identity + + + + PolicyEntry + + + + Description + + + + AddressBookAvailability + + + + AttendantSafeTransfer + + + + AutoDiscoveryRetryInterval + + + + BlockConversationFromFederatedContacts + + + + CalendarStatePublicationInterval + + + + ; + + + + CustomizedHelpUrl + + + + CustomLinkInErrorMessages + + + + CustomStateUrl + + + + DGRefreshInterval + + + + DisableCalendarPresence + + + + DisableContactCardOrganizationTab + + + + DisableEmailComparisonCheck + + + + DisableEmoticons + + + + DisableFeedsTab + + + + DisableFederatedPromptDisplayName + + + + DisableFreeBusyInfo + + + + DisableHandsetOnLockedMachine + + + + DisableMeetingSubjectAndLocation + + + + DisableHtmlIm + + + + DisableInkIM + + + + DisableOneNote12Integration + + + + DisableOnlineContextualSearch + + + + DisablePhonePresence + + + + DisablePICPromptDisplayName + + + + DisablePoorDeviceWarnings + + + + DisablePoorNetworkWarnings + + + + DisablePresenceNote + + + + DisableRTFIM + + + + DisableSavingIM + + + + DisplayPhoto + + + + EnableAppearOffline + + + + EnableCallLogAutoArchiving + + + + EnableClientAutoPopulateWithTeam + + + + EnableClientMusicOnHold + + + + EnableConversationWindowTabs + + + + EnableEnterpriseCustomizedHelp + + + + EnableEventLogging + + + + EnableExchangeContactSync + + + + EnableExchangeDelegateSync + + + + EnableExchangeContactsFolder + + + + EnableFullScreenVideo + + + + EnableHighPerformanceConferencingAppSharing + + + + EnableHotdesking + + + + EnableIMAutoArchiving + + + + EnableMediaRedirection + + + + EnableMeetingEngagement + + + + EnableNotificationForNewSubscribers + + + + EnableServerConversationHistory + + + + EnableSkypeUI + + + + EnableSQMData + + + + EnableTracing + + + + EnableURL + + + + EnableUnencryptedFileTransfer + + + + EnableVOIPCallDefault + + + + ExcludedContactFolders + + + + HotdeskingTimeout + + + + IMWarning + + + + MAPIPollInterval + + + + MaximumDGsAllowedInContactList + + + + MaximumNumberOfContacts + + + + MaxPhotoSizeKB + + + + MusicOnHoldAudioFile + + + + P2PAppSharingEncryption + + + + EnableHighPerformanceP2PAppSharing + + + + PlayAbbreviatedDialTone + + + + RequireContentPin + + + + SearchPrefixFlags + + + + ShowRecentContacts + + + + ShowManagePrivacyRelationships + + + + ShowSharepointPhotoEditLink + + + + SPSearchInternalURL + + + + SPSearchExternalURL + + + + SPSearchCenterInternalURL + + + + SPSearchCenterExternalURL + + + + TabURL + + + + TracingLevel + + + + TelemetryTier + + + + PublicationBatchDelay + + + + EnableViewBasedSubscriptionMode + + + + WebServicePollInterval + + + + HelpEnvironment + + + + RateMyCallDisplayPercentage + + + + RateMyCallAllowCustomUserFeedback + + + + IMLatencySpinnerDelay + + + + IMLatencyErrorThreshold + + + + SupportModernFilePicker + + + + EnableOnlineFeedback + + + + EnableOnlineFeedbackScreenshots + + + + + + + + DeserializedPolicyEntryTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Client.PolicyEntryType + + + + + + + + Name + + + + Value + + + + + + + + DeserializedClientUpdatePolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.ClientUpdate.ClientUpdatePolicy + + + + + + + + Identity + + + + ShowNotification + + + + RedirectClient + + + + UpdateClient + + + + + + + + DeserializedClientUpdateOverridePolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.ClientUpdate.ClientUpdateOverridePolicy + + + + + + + + Identity + + + + Enabled + + + + ShowNotification + + + + RedirectClient + + + + UpdateClient + + + + + + + + DeserializedClientVersionPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.ClientVersion.ClientVersionPolicy + + + + + + + + Identity + + + + Rules + + + + Description + + + + + + + + DeserializedRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.ClientVersion.Rule + + + + + + + + RuleId + + + + Description + + + + Action + + + + ActionUrl + + + + MajorVersion + + + + MinorVersion + + + + BuildNumber + + + + QfeNumber + + + + UserAgent + + + + UserAgentFullName + + + + Enabled + + + + CompareOp + + + + + + + + DeserializedRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.ClientVersion.Rule#Decorated + + + + + + + + Identity + + + + Priority + + + + RuleId + + + + Description + + + + Action + + + + ActionUrl + + + + MajorVersion + + + + MinorVersion + + + + BuildNumber + + + + QfeNumber + + + + UserAgent + + + + UserAgentFullName + + + + Enabled + + + + CompareOp + + + + + + + + DeserializedClientVersionConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.ClientVersion.ClientVersionConfiguration + + + + + + + + Identity + + + + DefaultAction + + + + DefaultURL + + + + Enabled + + + + + + + + DeserializedExternalAccessPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.ExternalAccess.ExternalAccessPolicy + + + + + + + + Identity + + + + Description + + + + EnableFederationAccess + + + + EnableXmppAccess + + + + EnablePublicCloudAudioVideoAccess + + + + EnableOutsideAccess + + + + EnableAcsFederationAccess + + + + EnableTeamsConsumerAccess + + + + EnableTeamsConsumerInbound + + + + RestrictTeamsConsumerAccessToExternalUserProfiles + + + + + + + + DeserializedExternalUserCommunicationPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.ExternalUserCommunication.ExternalUserCommunicationPolicy + + + + + + + + Identity + + + + EnableFileTransfer + + + + EnableP2PFileTransfer + + + + AllowPresenceVisibility + + + + AllowTitleVisibility + + + + + + + + DeserializedGraphPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Graph.GraphPolicy + + + + + + + + Identity + + + + Description + + + + EnableMeetingsGraph + + + + EnableSharedLinks + + + + UseStorageService + + + + UseEWSDirectDownload + + + + + + + + DeserializedImArchivingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Im.ImArchivingPolicy + + + + + + + + Identity + + + + Description + + + + ArchiveInternal + + + + ArchiveExternal + + + + + + + + DeserializedLegalInterceptPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Im.LegalInterceptPolicy + + + + + + + + Identity + + + + Description + + + + DeliverySMTPAddress + + + + ExpiryTime + + + + + + + + DeserializedIPPhonePolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.IPPhone.IPPhonePolicy + + + + + + + + Identity + + + + UserDialTimeoutMS + + + + KeyboardLockMaxPinRetry + + + + PrioritizedCodecsList + + + + EnablePowerSaveMode + + + + PowerSaveDuringOfficeHoursTimeoutMS + + + + PowerSavePostOfficeHoursTimeoutMS + + + + EnableOneTouchVoicemail + + + + DateTimeFormat + + + + EnableDeviceUpdate + + + + EnableExchangeCalendaring + + + + EnableBetterTogetherOverEthernet + + + + BetterTogetherOverEthernetPairingMode + + + + LocalProvisioningServerUser + + + + LocalProvisioningServerPassword + + + + LocalProvisioningServerAddress + + + + LocalProvisioningServerType + + + + + + + + DeserializedLocationPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Location.LocationPolicy + + + + + + + + Identity + + + + EmergencyNumbers + + + + Description + + + + EnhancedEmergencyServicesEnabled + + + + LocationRequired + + + + UseLocationForE911Only + + + + PstnUsage + + + + EmergencyDialString + + + + EmergencyDialMask + + + + NotificationUri + + + + ConferenceUri + + + + ConferenceMode + + + + LocationRefreshInterval + + + + EnhancedEmergencyServiceDisclaimer + + + + UseHybridVoiceForE911 + + + + EnablePlusPrefix + + + + AllowEmergencyCallsWithoutLineURI + + + + + + + + DeserializedEmergencyNumberView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Location.EmergencyNumber + + + + + + + + DialString + + + + DialMask + + + + + + + + DeserializedMeetingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.MeetingPolicy + + + + + + + + Identity + + + + AllowIPAudio + + + + AllowIPVideo + + + + AllowMultiView + + + + Description + + + + AllowParticipantControl + + + + AllowAnnotations + + + + DisablePowerPointAnnotations + + + + AllowUserToScheduleMeetingsWithAppSharing + + + + ApplicationSharingMode + + + + AllowNonEnterpriseVoiceUsersToDialOut + + + + AllowAnonymousUsersToDialOut + + + + AllowAnonymousParticipantsInMeetings + + + + AllowFederatedParticipantJoinAsSameEnterprise + + + + AllowExternalUsersToSaveContent + + + + AllowExternalUserControl + + + + AllowExternalUsersToRecordMeeting + + + + AllowPolls + + + + AllowSharedNotes + + + + AllowQandA + + + + AllowOfficeContent + + + + EnableDialInConferencing + + + + EnableAppDesktopSharing + + + + AllowConferenceRecording + + + + EnableP2PRecording + + + + EnableFileTransfer + + + + EnableP2PFileTransfer + + + + EnableP2PVideo + + + + AllowLargeMeetings + + + + EnableOnlineMeetingPromptForLyncResources + + + + EnableDataCollaboration + + + + MaxVideoConferenceResolution + + + + MaxMeetingSize + + + + AudioBitRateKb + + + + VideoBitRateKb + + + + AppSharingBitRateKb + + + + FileTransferBitRateKb + + + + TotalReceiveVideoBitRateKb + + + + EnableMultiViewJoin + + + + CloudRecordingServiceSupport + + + + EnableReliableConferenceDeletion + + + + + + + + DeserializedBroadcastMeetingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.BroadcastMeetingPolicy + + + + + + + + Identity + + + + AllowBroadcastMeeting + + + + AllowOpenBroadcastMeeting + + + + AllowBroadcastMeetingRecording + + + + AllowAnonymousBroadcastMeeting + + + + BroadcastMeetingRecordingEnforced + + + + + + + + DeserializedCloudMeetingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.CloudMeetingPolicy + + + + + + + + Identity + + + + AllowAutoSchedule + + + + IsModernSchedulingEnabled + + + + + + + + DeserializedCloudMeetingOpsPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.CloudMeetingOpsPolicy + + + + + + + + Identity + + + + ActivationLocation + + + + + + + + DeserializedCloudVideoInteropPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.CloudVideoInteropPolicy + + + + + + + + Identity + + + + EnableCloudVideoInterop + + + + + + + + DeserializedApplicationAccessPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.ApplicationAccessPolicy + + + + + + + + Identity + + + + AppIds + + + + Description + + + + + + + + DeserializedTeamsMeetingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.TeamsMeetingPolicy + + + + + + + + Identity + + + + Description + + + + AllowChannelMeetingScheduling + + + + AllowMeetNow + + + + AllowPrivateMeetNow + + + + MeetingChatEnabledType + + + + LiveCaptionsEnabledType + + + + DesignatedPresenterRoleMode + + + + AllowIPAudio + + + + AllowIPVideo + + + + AllowEngagementReport + + + + AllowTrackingInReport + + + + IPAudioMode + + + + IPVideoMode + + + + AllowAnonymousUsersToDialOut + + + + AllowAnonymousUsersToStartMeeting + + + + AllowAnonymousUsersToJoinMeeting + + + + BlockedAnonymousJoinClientTypes + + + + AllowedStreamingMediaInput + + + + AllowPrivateMeetingScheduling + + + + AutoAdmittedUsers + + + + AllowCloudRecording + + + + AllowRecordingStorageOutsideRegion + + + + RecordingStorageMode + + + + AllowOutlookAddIn + + + + AllowPowerPointSharing + + + + AllowParticipantGiveRequestControl + + + + AllowExternalParticipantGiveRequestControl + + + + AllowSharedNotes + + + + AllowWhiteboard + + + + AllowTranscription + + + + AllowNetworkConfigurationSettingsLookup + + + + MediaBitRateKb + + + + ScreenSharingMode + + + + VideoFiltersMode + + + + AllowPSTNUsersToBypassLobby + + + + AllowOrganizersToOverrideLobbySettings + + + + PreferredMeetingProviderForIslandsMode + + + + AllowNDIStreaming + + + + AllowUserToJoinExternalMeeting + + + + SpeakerAttributionMode + + + + EnrollUserOverride + + + + RoomAttributeUserOverride + + + + StreamingAttendeeMode + + + + AllowBreakoutRooms + + + + TeamsCameraFarEndPTZMode + + + + AllowMeetingReactions + + + + AllowMeetingRegistration + + + + WhoCanRegister + + + + AllowScreenContentDigitization + + + + AllowCarbonSummary + + + + RoomPeopleNameUserOverride + + + + AllowMeetingCoach + + + + NewMeetingRecordingExpirationDays + + + + LiveStreamingMode + + + + MeetingInviteLanguages + + + + ChannelRecordingDownload + + + + AllowCartCaptionsScheduling + + + + AllowTasksFromTranscript + + + + InfoShownInReportMode + + + + LiveInterpretationEnabledType + + + + QnAEngagementMode + + + + AllowImmersiveView + + + + AllowAvatarsInGallery + + + + AllowAnnotations + + + + AllowDocumentCollaboration + + + + AllowWatermarkForScreenSharing + + + + AllowWatermarkForCameraVideo + + + + AudibleRecordingNotification + + + + + + + + DeserializedMeetingBrandingThemeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.MeetingBrandingTheme + + + + + + + + DisplayName + + + + LogoImageLightUri + + + + LogoImageDarkUri + + + + BackgroundImageLightUri + + + + BackgroundImageDarkUri + + + + BrandAccentColor + + + + Enabled + + + + Identity + + + + + + + + DeserializedTeamsEventsPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.TeamsEventsPolicy + + + + + + + + Identity + + + + AllowWebinars + + + + ForceStreamingAttendeeMode + + + + EventAccessType + + + + Description + + + + + + + + DeserializedMobilityPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Mobility.MobilityPolicy + + + + + + + + Identity + + + + Description + + + + EnableOutsideVoice + + + + EnableMobility + + + + EnableIPAudioVideo + + + + RequireWIFIForIPVideo + + + + AllowCustomerExperienceImprovementProgram + + + + RequireWiFiForSharing + + + + AllowSaveCallLogs + + + + AllowExchangeConnectivity + + + + AllowSaveIMHistory + + + + AllowSaveCredentials + + + + EnablePushNotifications + + + + EncryptAppData + + + + AllowDeviceContactsSync + + + + RequireIntune + + + + AllowAutomaticPstnFallback + + + + VoiceSettings + + + + + + + + DeserializedOnlineDialinConferencingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.OnlineDialinConferencing.OnlineDialinConferencingPolicy + + + + + + + + Identity + + + + AllowService + + + + Description + + + + + + + + DeserializedOnlineDialOutPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.OnlineDialOut.OnlineDialOutPolicy + + + + + + + + Identity + + + + AllowPSTNConferencingDialOutType + + + + AllowPSTNOutboundCallingType + + + + + + + + DeserializedOnlineVoicemailPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.OnlineVoicemail.OnlineVoicemailPolicy + + + + + + + + Identity + + + + EnableTranscription + + + + ShareData + + + + EnableTranscriptionProfanityMasking + + + + EnableEditingCallAnswerRulesSetting + + + + MaximumRecordingLength + + + + EnableTranscriptionTranslation + + + + PrimarySystemPromptLanguage + + + + SecondarySystemPromptLanguage + + + + + + + + DeserializedPersistentChatPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.PersistentChat.PersistentChatPolicy + + + + + + + + Identity + + + + Description + + + + EnablePersistentChat + + + + + + + + DeserializedPresencePolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Presence.PresencePolicy + + + + + + + + Identity + + + + MaxPromptedSubscriber + + + + MaxCategorySubscription + + + + Description + + + + + + + + DeserializedTenantPowerShellPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.RemotePowershell.TenantPowerShellPolicy + + + + + + + + Identity + + + + EnableRemotePowerShellAccess + + + + MaxConnectionsPerTenant + + + + MaxConnectionsPerUser + + + + MaxCmdletsBeforePause + + + + MaxCmdletsPauseSeconds + + + + BypassSkuRestrictions + + + + + + + + DeserializedSmsServicePolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Sms.SmsServicePolicy + + + + + + + + Identity + + + + Description + + + + ProxyServiceUrl + + + + EnablePersonalInvite + + + + EnableOutboundIM + + + + SendIMMessageContent + + + + + + + + DeserializedTeamsCallingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsCallingPolicy + + + + + + + + Identity + + + + Description + + + + AllowPrivateCalling + + + + AllowWebPSTNCalling + + + + AllowSIPDevicesCalling + + + + AllowVoicemail + + + + AllowCallGroups + + + + AllowDelegation + + + + AllowCallForwardingToUser + + + + AllowCallForwardingToPhone + + + + PreventTollBypass + + + + BusyOnBusyEnabledType + + + + MusicOnHoldEnabledType + + + + AllowCloudRecordingForCalls + + + + AllowTranscriptionForCalling + + + + PopoutForIncomingPstnCalls + + + + PopoutAppPathForIncomingPstnCalls + + + + LiveCaptionsEnabledTypeForCalling + + + + AutoAnswerEnabledType + + + + SpamFilteringEnabledType + + + + CallRecordingExpirationDays + + + + AllowCallRedirect + + + + + + + + DeserializedTeamsInteropPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsInteropPolicy + + + + + + + + Identity + + + + AllowEndUserClientOverride + + + + CallingDefaultClient + + + + ChatDefaultClient + + + + + + + + DeserializedTeamsMessagingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsMessagingPolicy + + + + + + + + Identity + + + + Description + + + + AllowUrlPreviews + + + + AllowOwnerDeleteMessage + + + + AllowUserEditMessage + + + + AllowUserDeleteMessage + + + + AllowUserDeleteChat + + + + AllowUserChat + + + + AllowRemoveUser + + + + AllowGiphy + + + + GiphyRatingType + + + + AllowGiphyDisplay + + + + AllowPasteInternetImage + + + + AllowMemes + + + + AllowImmersiveReader + + + + AllowStickers + + + + AllowUserTranslation + + + + ReadReceiptsEnabledType + + + + AllowPriorityMessages + + + + AllowSmartReply + + + + AllowSmartCompose + + + + ChannelsInChatListEnabledType + + + + AudioMessageEnabledType + + + + ChatPermissionRole + + + + AllowFullChatPermissionUserToDeleteAnyMessage + + + + AllowFluidCollaborate + + + + AllowVideoMessages + + + + AllowCommunicationComplianceEndUserReporting + + + + + + + + DeserializedTeamsUpgradePolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsUpgradePolicy + + + + + + + + Identity + + + + Description + + + + Mode + + + + NotifySfbUsers + + + + Action + + + + + + + + DeserializedTeamsUpgradeOverridePolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsUpgradeOverridePolicy + + + + + + + + Identity + + + + Description + + + + ProvisionedAsTeamsOnly + + + + SkypePoolMode + + + + Action + + + + Enabled + + + + + + + + DeserializedTeamsMediaLoggingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsMediaLoggingPolicy + + + + + + + + Identity + + + + Description + + + + AllowMediaLogging + + + + + + + + DeserializedTeamsVideoInteropServicePolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsVideoInteropServicePolicy + + + + + + + + Identity + + + + Description + + + + ProviderName + + + + Enabled + + + + + + + + DeserializedTeamsWorkLoadPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsWorkLoadPolicy + + + + + + + + Identity + + + + Description + + + + AllowMeeting + + + + AllowMeetingPinned + + + + AllowMessaging + + + + AllowMessagingPinned + + + + AllowCalling + + + + AllowCallingPinned + + + + + + + + DeserializedTeamsCortanaPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsCortanaPolicy + + + + + + + + Identity + + + + Description + + + + CortanaVoiceInvocationMode + + + + AllowCortanaVoiceInvocation + + + + AllowCortanaAmbientListening + + + + AllowCortanaInContextSuggestions + + + + + + + + DeserializedTeamsOwnersPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsOwnersPolicy + + + + + + + + Identity + + + + Description + + + + AllowPrivateTeams + + + + AllowOrgwideTeams + + + + AllowPublicTeams + + + + + + + + DeserializedTeamsMeetingBroadcastPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsMeetingBroadcastPolicy + + + + + + + + Identity + + + + Description + + + + AllowBroadcastScheduling + + + + AllowBroadcastTranscription + + + + BroadcastAttendeeVisibilityMode + + + + BroadcastRecordingMode + + + + + + + + DeserializedTeamsAppPermissionPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsAppPermissionPolicy + + + + + + + + Identity + + + + DefaultCatalogApps + + + + GlobalCatalogApps + + + + PrivateCatalogApps + + + + Description + + + + DefaultCatalogAppsType + + + + GlobalCatalogAppsType + + + + PrivateCatalogAppsType + + + + + + + + DeserializedDefaultCatalogAppView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.DefaultCatalogApp + + + + + + + + Id + + + + + + + + DeserializedDefaultCatalogAppView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.DefaultCatalogApp#Decorated + + + + + + + + Identity + + + + Priority + + + + Id + + + + + + + + DeserializedGlobalCatalogAppView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.GlobalCatalogApp + + + + + + + + Id + + + + + + + + DeserializedGlobalCatalogAppView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.GlobalCatalogApp#Decorated + + + + + + + + Identity + + + + Priority + + + + Id + + + + + + + + DeserializedPrivateCatalogAppView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.PrivateCatalogApp + + + + + + + + Id + + + + + + + + DeserializedPrivateCatalogAppView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.PrivateCatalogApp#Decorated + + + + + + + + Identity + + + + Priority + + + + Id + + + + + + + + DeserializedTeamsAppSetupPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsAppSetupPolicy + + + + + + + + Identity + + + + AppPresetList + + + + PinnedAppBarApps + + + + PinnedMessageBarApps + + + + AppPresetMeetingList + + + + Description + + + + AllowSideLoading + + + + AllowUserPinning + + + + + + + + DeserializedAppPresetView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.AppPreset + + + + + + + + Id + + + + + + + + DeserializedAppPresetView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.AppPreset#Decorated + + + + + + + + Identity + + + + Priority + + + + Id + + + + + + + + DeserializedPinnedAppView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.PinnedApp + + + + + + + + Id + + + + Order + + + + + + + + DeserializedPinnedAppView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.PinnedApp#Decorated + + + + + + + + Identity + + + + Priority + + + + Id + + + + Order + + + + + + + + DeserializedPinnedMessageBarAppView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.PinnedMessageBarApp + + + + + + + + Id + + + + Order + + + + + + + + DeserializedPinnedMessageBarAppView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.PinnedMessageBarApp#Decorated + + + + + + + + Identity + + + + Priority + + + + Id + + + + Order + + + + + + + + DeserializedAppPresetMeetingView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.AppPresetMeeting + + + + + + + + Id + + + + + + + + DeserializedAppPresetMeetingView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.AppPresetMeeting#Decorated + + + + + + + + Identity + + + + Priority + + + + Id + + + + + + + + DeserializedTeamsCallParkPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsCallParkPolicy + + + + + + + + Identity + + + + Description + + + + AllowCallPark + + + + PickupRangeStart + + + + PickupRangeEnd + + + + ParkTimeoutSeconds + + + + + + + + DeserializedTeamsEducationAssignmentsAppPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsEducationAssignmentsAppPolicy + + + + + + + + Identity + + + + ParentDigestEnabledType + + + + MakeCodeEnabledType + + + + TurnItInEnabledType + + + + TurnItInApiUrl + + + + TurnItInApiKey + + + + + + + + DeserializedTeamsEmergencyCallRoutingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsEmergencyCallRoutingPolicy + + + + + + + + Identity + + + + EmergencyNumbers + + + + AllowEnhancedEmergencyServices + + + + Description + + + + + + + + DeserializedTeamsEmergencyNumberView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsEmergencyNumber + + + + + + + + EmergencyDialString + + + + EmergencyDialMask + + + + OnlinePSTNUsage + + + + + + + + DeserializedTeamsEmergencyCallingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsEmergencyCallingPolicy + + + + + + + + Identity + + + + NotificationGroup + + + + NotificationDialOutNumber + + + + ExternalLocationLookupMode + + + + NotificationMode + + + + EnhancedEmergencyServiceDisclaimer + + + + Description + + + + + + + + DeserializedTeamsUpdateManagementPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsUpdateManagementPolicy + + + + + + + + Identity + + + + Description + + + + AllowManagedUpdates + + + + AllowPreview + + + + UpdateDayOfWeek + + + + UpdateTime + + + + UpdateTimeOfDay + + + + AllowPublicPreview + + + + + + + + DeserializedTeamsNotificationAndFeedsPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsNotificationAndFeedsPolicy + + + + + + + + Identity + + + + Description + + + + SuggestedFeedsEnabledType + + + + TrendingFeedsEnabledType + + + + + + + + DeserializedTeamsChannelsPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsChannelsPolicy + + + + + + + + Identity + + + + Description + + + + AllowOrgWideTeamCreation + + + + AllowPrivateTeamDiscovery + + + + AllowPrivateChannelCreation + + + + AllowSharedChannelCreation + + + + AllowChannelSharingToExternalUser + + + + AllowUserToParticipateInExternalSharedChannel + + + + + + + + DeserializedTeamsMobilityPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsMobilityPolicy + + + + + + + + Identity + + + + Description + + + + IPVideoMobileMode + + + + IPAudioMobileMode + + + + MobileDialerPreference + + + + + + + + DeserializedTeamsSyntheticAutomatedCallPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsSyntheticAutomatedCallPolicy + + + + + + + + Identity + + + + Description + + + + SyntheticAutomatedCallsMode + + + + + + + + DeserializedTeamsTargetingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsTargetingPolicy + + + + + + + + Identity + + + + Description + + + + ManageTagsPermissionMode + + + + TeamOwnersEditWhoCanManageTagsMode + + + + SuggestedPresetTags + + + + CustomTagsMode + + + + ShiftBackedTagsMode + + + + + + + + DeserializedTeamsIPPhonePolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsIPPhonePolicy + + + + + + + + Identity + + + + Description + + + + SignInMode + + + + SearchOnCommonAreaPhoneMode + + + + AllowHomeScreen + + + + AllowBetterTogether + + + + AllowHotDesking + + + + HotDeskingIdleTimeoutInMinutes + + + + + + + + DeserializedTeamsVerticalPackagePolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsVerticalPackagePolicy + + + + + + + + Identity + + + + PackageIncludedPolices + + + + Description + + + + PackageId + + + + FirstRunExperienceId + + + + + + + + DeserializedPolicyTypeToPolicyInstanceView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.PolicyTypeToPolicyInstance + + + + + + + + PolicyType + + + + PolicyName + + + + + + + + DeserializedTeamsFeedbackPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsFeedbackPolicy + + + + + + + + Identity + + + + UserInitiatedMode + + + + ReceiveSurveysMode + + + + AllowScreenshotCollection + + + + AllowEmailCollection + + + + AllowLogCollection + + + + + + + + DeserializedTeamsComplianceRecordingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsComplianceRecordingPolicy + + + + + + + + Identity + + + + ComplianceRecordingApplications + + + + Enabled + + + + WarnUserOnRemoval + + + + DisableComplianceRecordingAudioNotificationForCalls + + + + Description + + + + + + + + DeserializedComplianceRecordingApplicationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.ComplianceRecordingApplication + + + + + + + + ComplianceRecordingPairedApplications + + + + Id + + + + RequiredBeforeMeetingJoin + + + + RequiredBeforeCallEstablishment + + + + RequiredDuringMeeting + + + + RequiredDuringCall + + + + ConcurrentInvitationCount + + + + + + + + DeserializedComplianceRecordingApplicationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.ComplianceRecordingApplication#Decorated + + + + + + + + Identity + + + + Priority + + + + ComplianceRecordingPairedApplications + + + + Id + + + + RequiredBeforeMeetingJoin + + + + RequiredBeforeCallEstablishment + + + + RequiredDuringMeeting + + + + RequiredDuringCall + + + + ConcurrentInvitationCount + + + + + + + + DeserializedComplianceRecordingPairedApplicationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.ComplianceRecordingPairedApplication + + + + + + + + Id + + + + + + + + DeserializedTeamsShiftsAppPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsShiftsAppPolicy + + + + + + + + Identity + + + + AllowTimeClockLocationDetection + + + + + + + + DeserializedTeamsShiftsPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsShiftsPolicy + + + + + + + + Identity + + + + EnableShiftPresence + + + + ShiftNoticeFrequency + + + + ShiftNoticeMessageType + + + + ShiftNoticeMessageCustom + + + + AccessType + + + + AccessGracePeriodMinutes + + + + EnableScheduleOwnerPermissions + + + + + + + + DeserializedTeamsTasksPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsTasksPolicy + + + + + + + + Identity + + + + TasksMode + + + + AllowActivityWhenTasksPublished + + + + + + + + DeserializedTeamsVdiPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsVdiPolicy + + + + + + + + Identity + + + + DisableCallsAndMeetings + + + + DisableAudioVideoInCallsAndMeetings + + + + + + + + DeserializedTeamsNetworkRoamingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsNetworkRoamingPolicy + + + + + + + + Identity + + + + AllowIPVideo + + + + MediaBitRateKb + + + + Description + + + + + + + + DeserializedTeamsCarrierEmergencyCallRoutingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsCarrierEmergencyCallRoutingPolicy + + + + + + + + Identity + + + + LocationPolicyId + + + + Description + + + + + + + + DeserializedTeamsCallHoldPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsCallHoldPolicy + + + + + + + + Identity + + + + Description + + + + AudioFileId + + + + + + + + DeserializedTeamsEnhancedEncryptionPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsEnhancedEncryptionPolicy + + + + + + + + Identity + + + + CallingEndtoEndEncryptionEnabledType + + + + MeetingEndToEndEncryption + + + + Description + + + + + + + + DeserializedTeamsFilesPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsFilesPolicy + + + + + + + + Identity + + + + NativeFileEntryPoints + + + + SPChannelFilesTab + + + + + + + + DeserializedTeamsWatermarkPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsWatermarkPolicy + + + + + + + + Identity + + + + AllowForScreenSharing + + + + AllowForCameraVideo + + + + Description + + + + + + + + DeserializedTeamsVoiceApplicationsPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsVoiceApplicationsPolicy + + + + + + + + Identity + + + + Description + + + + AllowAutoAttendantBusinessHoursGreetingChange + + + + AllowAutoAttendantAfterHoursGreetingChange + + + + AllowAutoAttendantHolidayGreetingChange + + + + AllowAutoAttendantBusinessHoursChange + + + + AllowAutoAttendantTimeZoneChange + + + + AllowAutoAttendantLanguageChange + + + + AllowAutoAttendantHolidaysChange + + + + AllowAutoAttendantBusinessHoursRoutingChange + + + + AllowAutoAttendantAfterHoursRoutingChange + + + + AllowAutoAttendantHolidayRoutingChange + + + + AllowCallQueueWelcomeGreetingChange + + + + AllowCallQueueMusicOnHoldChange + + + + AllowCallQueueOverflowSharedVoicemailGreetingChange + + + + AllowCallQueueTimeoutSharedVoicemailGreetingChange + + + + AllowCallQueueOptOutChange + + + + AllowCallQueueAgentOptChange + + + + AllowCallQueueMembershipChange + + + + AllowCallQueueRoutingMethodChange + + + + AllowCallQueuePresenceBasedRoutingChange + + + + CallQueueAgentMonitorMode + + + + CallQueueAgentMonitorNotificationMode + + + + AllowCallQueueLanguageChange + + + + AllowCallQueueOverflowRoutingChange + + + + AllowCallQueueTimeoutRoutingChange + + + + AllowCallQueueNoAgentsRoutingChange + + + + AllowCallQueueConferenceModeChange + + + + + + + + DeserializedTeamsRoomVideoTeleConferencingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsRoomVideoTeleConferencingPolicy + + + + + + + + Identity + + + + Description + + + + Enabled + + + + AreaCode + + + + ReceiveExternalCalls + + + + ReceiveInternalCalls + + + + PlaceExternalCalls + + + + PlaceInternalCalls + + + + + + + + DeserializedTeamsMeetingTemplatePermissionPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsMeetingTemplatePermissionPolicy + + + + + + + + Identity + + + + HiddenMeetingTemplates + + + + Description + + + + + + + + DeserializedHiddenMeetingTemplateView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.HiddenMeetingTemplate + + + + + + + + Id + + + + + + + + DeserializedTeamsAudioConferencingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.TeamsAudioConferencing.TeamsAudioConferencingPolicy + + + + + + + + Identity + + + + MeetingInvitePhoneNumbers + + + + AllowTollFreeDialin + + + + + + + + DeserializedThirdPartyVideoSystemPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.ThirdPartyVideoSystem.ThirdPartyVideoSystemPolicy + + + + + + + + Identity + + + + SupportsSendingLowResolution + + + + + + + + DeserializedUserExperiencePolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.UserExperience.UserExperiencePolicy + + + + + + + + Identity + + + + UserExperienceVersion + + + + + + + + DeserializedUserPinPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.UserPin.UserPinPolicy + + + + + + + + Identity + + + + Description + + + + MinPasswordLength + + + + PINHistoryCount + + + + AllowCommonPatterns + + + + PINLifetime + + + + MaximumLogonAttempts + + + + + + + + DeserializedUserServicesPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.UserServices.UserServicesPolicy + + + + + + + + Identity + + + + UcsAllowed + + + + MigrationDelayInDays + + + + EnableAwaySinceIndication + + + + + + + + DeserializedPstnUsagesView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.PstnUsages + + + + + + + + Identity + + + + Usage + + + + + + + + DeserializedOnlinePstnUsagesView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.OnlinePstnUsages + + + + + + + + Identity + + + + Usage + + + + + + + + DeserializedRouteView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.Route + + + + + + + + Description + + + + NumberPattern + + + + PstnUsages + + + + PstnGatewayList + + + + Name + + + + SuppressCallerId + + + + AlternateCallerId + + + + + + + + DeserializedRouteView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.Route#Decorated + + + + + + + + Identity + + + + Priority + + + + Description + + + + NumberPattern + + + + PstnUsages + + + + PstnGatewayList + + + + Name + + + + SuppressCallerId + + + + AlternateCallerId + + + + + + + + DeserializedPstnRoutingSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.PstnRoutingSettings + + + + + + + + Identity + + + + Route + + + + EnableLocationBasedRouting + + + + CallViaWorkCallerId + + + + + + + + DeserializedHostedVoicemailPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.Hosted.HostedVoicemailPolicy + + + + + + + + Identity + + + + Description + + + + Destination + + + + Organization + + + + BusinessVoiceEnabled + + + + NgcEnabled + + + + + + + + DeserializedOnlineRouteView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.OnlineRoute + + + + + + + + Description + + + + NumberPattern + + + + OnlinePstnUsages + + + + OnlinePstnGatewayList + + + + BridgeSourcePhoneNumber + + + + Name + + + + + + + + DeserializedOnlineRouteView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.OnlineRoute#Decorated + + + + + + + + Identity + + + + Priority + + + + Description + + + + NumberPattern + + + + OnlinePstnUsages + + + + OnlinePstnGatewayList + + + + BridgeSourcePhoneNumber + + + + Name + + + + + + + + DeserializedOnlinePstnRoutingSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.OnlinePstnRoutingSettings + + + + + + + + Identity + + + + OnlineRoute + + + + + + + + DeserializedTenantBlockedCallingNumbersView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.TenantBlockedCallingNumbers + + + + + + + + Identity + + + + InboundBlockedNumberPatterns + + + + InboundExemptNumberPatterns + + + + Enabled + + + + Name + + + + + + + + DeserializedInboundBlockedNumberPatternView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.InboundBlockedNumberPattern + + + + + + + + Name + + + + Enabled + + + + Description + + + + Pattern + + + + + + + + DeserializedInboundBlockedNumberPatternView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.InboundBlockedNumberPattern#Decorated + + + + + + + + Identity + + + + Name + + + + Enabled + + + + Description + + + + Pattern + + + + + + + + DeserializedOutboundBlockedNumberPatternView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.OutboundBlockedNumberPattern + + + + + + + + Name + + + + Enabled + + + + Description + + + + Pattern + + + + + + + + DeserializedOutboundBlockedNumberPatternView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.OutboundBlockedNumberPattern#Decorated + + + + + + + + Identity + + + + Name + + + + Enabled + + + + Description + + + + Pattern + + + + + + + + DeserializedInboundExemptNumberPatternView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.InboundExemptNumberPattern + + + + + + + + Name + + + + Enabled + + + + Description + + + + Pattern + + + + + + + + DeserializedInboundExemptNumberPatternView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.InboundExemptNumberPattern#Decorated + + + + + + + + Identity + + + + Name + + + + Enabled + + + + Description + + + + Pattern + + + + + + + + DeserializedLocationProfileView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.LocationProfile + + + + + + + + Identity + + + + Description + + + + DialinConferencingRegion + + + + NormalizationRules + + + + PriorityNormalizationRules + + + + CountryCode + + + + State + + + + City + + + + SimpleName + + + + ITUCountryPrefix + + + + + + + + DeserializedNormalizationRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.NormalizationRule + + + + + + + + Description + + + + Pattern + + + + Translation + + + + Name + + + + IsInternalExtension + + + + + + + + DeserializedNormalizationRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.NormalizationRule#Decorated + + + + + + + + Identity + + + + Priority + + + + Description + + + + Pattern + + + + Translation + + + + Name + + + + IsInternalExtension + + + + + + + + DeserializedTenantDialPlanView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.TenantDialPlan + + + + + + + + Identity + + + + Description + + + + NormalizationRules + + + + SimpleName + + + + + + + + DeserializedVoicePolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.VoicePolicy + + + + + + + + Identity + + + + PstnUsages + + + + CustomCallForwardingSimulRingUsages + + + + Description + + + + AllowSimulRing + + + + AllowCallForwarding + + + + AllowPSTNReRouting + + + + Name + + + + EnableDelegation + + + + EnableTeamCall + + + + EnableCallTransfer + + + + EnableCallPark + + + + EnableBusyOptions + + + + EnableMaliciousCallTracing + + + + EnableBWPolicyOverride + + + + PreventPSTNTollBypass + + + + EnableFMC + + + + CallForwardingSimulRingUsageType + + + + EnableVoicemailEscapeTimer + + + + PSTNVoicemailEscapeTimer + + + + + + + + DeserializedCallerIdPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.CallerIdPolicy + + + + + + + + Identity + + + + Description + + + + Name + + + + EnableUserOverride + + + + ServiceNumber + + + + CallerIDSubstitute + + + + + + + + DeserializedCallingLineIdentityView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.CallingLineIdentity + + + + + + + + Identity + + + + Description + + + + EnableUserOverride + + + + ServiceNumber + + + + CallingIDSubstitute + + + + BlockIncomingPstnCallerID + + + + ResourceAccount + + + + CompanyName + + + + + + + + DeserializedNgcBvMigrationPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.NgcBvMigrationPolicy + + + + + + + + Identity + + + + Description + + + + PstnOut + + + + + + + + DeserializedTestConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.TestConfiguration + + + + + + + + Name + + + + DialedNumber + + + + TargetDialplan + + + + TargetVoicePolicy + + + + ExpectedTranslatedNumber + + + + ExpectedUsage + + + + ExpectedRoute + + + + + + + + DeserializedTestConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.TestConfiguration#Decorated + + + + + + + + Identity + + + + Name + + + + DialedNumber + + + + TargetDialplan + + + + TargetVoicePolicy + + + + ExpectedTranslatedNumber + + + + ExpectedUsage + + + + ExpectedRoute + + + + + + + + DeserializedVoiceConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.VoiceConfiguration + + + + + + + + Identity + + + + VoiceTestConfigurations + + + + + + + + DeserializedUcPhoneSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.UcPhoneSettings + + + + + + + + Identity + + + + CalendarPollInterval + + + + EnforcePhoneLock + + + + PhoneLockTimeout + + + + MinPhonePinLength + + + + SIPSecurityMode + + + + VoiceDiffServTag + + + + Voice8021p + + + + LoggingLevel + + + + + + + + DeserializedHostedVoicemailPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.HostedVoicemailPolicy + + + + + + + + Identity + + + + Description + + + + Destination + + + + Organization + + + + + + + + DeserializedVoiceRoutingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.VoiceRoutingPolicy + + + + + + + + Identity + + + + PstnUsages + + + + Description + + + + Name + + + + + + + + DeserializedOnlineVoiceRoutingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.OnlineVoiceRoutingPolicy + + + + + + + + Identity + + + + OnlinePstnUsages + + + + Description + + + + RouteType + + + + + + + + DeserializedOnlineAudioConferencingRoutingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.OnlineAudioConferencingRoutingPolicy + + + + + + + + Identity + + + + OnlinePstnUsages + + + + Description + + + + RouteType + + + + + + + + DeserializedSurvivableBranchApplianceView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.SurvivableBranchAppliance + + + + + + + + Fqdn + + + + Site + + + + Description + + + + + + + + DeserializedSurvivableBranchApplianceView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.SurvivableBranchAppliance#Decorated + + + + + + + + Identity + + + + Fqdn + + + + Site + + + + Description + + + + + + + + DeserializedTeamsBranchSurvivabilityPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.TeamsBranchSurvivabilityPolicy + + + + + + + + Identity + + + + BranchApplianceFqdns + + + + + + + + DeserializedXForestMovePolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.XForestMove.XForestMovePolicy + + + + + + + + Identity + + + + FeaturePreferences + + + + DestinationServiceInstance + + + + MoveType + + + + Forced + + + + MoveDate + + + + OffPeakStartInUTC + + + + OffPeakEndInUTC + + + + + + + + DeserializedFeaturePreferenceView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.XForestMove.FeaturePreference + + + + + + + + Name + + + + Behaviour + + + + + + + + DeserializedServiceInstanceView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ProvisionService.ServiceInstance + + + + + + + + Name + + + + + + + + DeserializedPreferredDataLocationOverwritePolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.XForestMove.PreferredDataLocationOverwritePolicy + + + + + + + + Identity + + + + NewPreferredDataLocation + + + + OwnerServiceInstance + + + + OriginalPreferredDataLocation + + + + + + + + DeserializedACPIntegrationSettingView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ACPIntegration.ACPIntegrationSetting + + + + + + + + Identity + + + + Mode + + + + + + + + DeserializedTeamsAcsFederationConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AcsConfiguration.TeamsAcsFederationConfiguration + + + + + + + + Identity + + + + AllowedAcsResources + + + + EnableAcsUsers + + + + + + + + DeserializedTrunkConfigView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AcsResourceCallingConfiguration.TrunkConfig + + + + + + + + Fqdn + + + + SipSignalingPort + + + + + + + + DeserializedTrunkConfigView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AcsResourceCallingConfiguration.TrunkConfig#Decorated + + + + + + + + Identity + + + + Fqdn + + + + SipSignalingPort + + + + + + + + DeserializedOnlineRouteView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AcsResourceCallingConfiguration.OnlineRoute + + + + + + + + Description + + + + NumberPattern + + + + OnlinePstnGatewayList + + + + Name + + + + + + + + DeserializedOnlineRouteView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AcsResourceCallingConfiguration.OnlineRoute#Decorated + + + + + + + + Identity + + + + Description + + + + NumberPattern + + + + OnlinePstnGatewayList + + + + Name + + + + + + + + DeserializedAddressBookSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookSettings + + + + + + + + Identity + + + + RunTimeOfDay + + + + KeepDuration + + + + SynchronizePollingInterval + + + + MaxDeltaFileSizePercentage + + + + UseNormalizationRules + + + + IgnoreGenericRules + + + + EnableFileGeneration + + + + MaxFileShareThreadCount + + + + EnableSearchByDialPad + + + + EnablePhotoSearch + + + + PhotoCacheRefreshInterval + + + + + + + + DeserializedAddressBookNormalizationSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookNormalizationSettings + + + + + + + + Identity + + + + AddressBookNormalizationRules + + + + + + + + DeserializedAddressBookNormalizationRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookNormalizationRule + + + + + + + + Description + + + + Pattern + + + + Translation + + + + Name + + + + + + + + DeserializedAddressBookNormalizationRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookNormalizationRule#Decorated + + + + + + + + Identity + + + + Priority + + + + Description + + + + Pattern + + + + Translation + + + + Name + + + + + + + + DeserializedAddressBookGatingSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookGatingSettings + + + + + + + + Identity + + + + AddressBookGatingTenants + + + + AzureDirectoryForGroupExpansionEnabled + + + + AzureDirectoryForGroupExpansionPercent + + + + AzureDirectoryForUserSearchEnabled + + + + AzureDirectoryForUserSearchPercent + + + + AzureDirectoryForUserSearchServiceUrl + + + + + + + + DeserializedAddressBookGatingTenantView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookGatingTenant + + + + + + + + AzureDirectorySearchEnabledUsers + + + + TenantId + + + + AzureDirectoryForGroupExpansionEnabled + + + + AzureDirectoryForGroupExpansionPercent + + + + AzureDirectoryForUserSearchEnabled + + + + AzureDirectoryForUserSearchPercent + + + + + + + + DeserializedAddressBookGatingTenantView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookGatingTenant#Decorated + + + + + + + + Identity + + + + Priority + + + + AzureDirectorySearchEnabledUsers + + + + TenantId + + + + AzureDirectoryForGroupExpansionEnabled + + + + AzureDirectoryForGroupExpansionPercent + + + + AzureDirectoryForUserSearchEnabled + + + + AzureDirectoryForUserSearchPercent + + + + + + + + DeserializedAnnouncementView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AnnouncementServiceSettings.Announcement + + + + + + + + Name + + + + AudioFilePrompt + + + + TextToSpeechPrompt + + + + Language + + + + TargetUri + + + + AnnouncementId + + + + + + + + DeserializedAnnouncementView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AnnouncementServiceSettings.Announcement#Decorated + + + + + + + + Identity + + + + Name + + + + AudioFilePrompt + + + + TextToSpeechPrompt + + + + Language + + + + TargetUri + + + + AnnouncementId + + + + + + + + DeserializedVoicePolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.Hosted.VoicePolicy + + + + + + + + Identity + + + + PstnUsages + + + + CustomCallForwardingSimulRingUsages + + + + Description + + + + AllowSimulRing + + + + AllowCallForwarding + + + + AllowPSTNReRouting + + + + Name + + + + EnableDelegation + + + + EnableTeamCall + + + + EnableCallTransfer + + + + EnableCallPark + + + + EnableBusyOptions + + + + EnableMaliciousCallTracing + + + + EnableBWPolicyOverride + + + + PreventPSTNTollBypass + + + + EnableFMC + + + + CallForwardingSimulRingUsageType + + + + VoiceDeploymentMode + + + + EnableVoicemailEscapeTimer + + + + PSTNVoicemailEscapeTimer + + + + TenantAdminEnabled + + + + BusinessVoiceEnabled + + + + + + + + DeserializedArchivingSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Archiving.ArchivingSettings + + + + + + + + Identity + + + + EnableArchiving + + + + EnablePurging + + + + PurgeExportedArchivesOnly + + + + BlockOnArchiveFailure + + + + KeepArchivingDataForDays + + + + PurgeHourOfDay + + + + ArchiveDuplicateMessages + + + + CachePurgingInterval + + + + EnableExchangeArchiving + + + + EnableExchangeFileAttachmentCompression + + + + ExchangeFileAttachmentSizeLimit + + + + PurgeMinuteOfPurgeHourOfDay + + + + PurgeTaskWakeupIntervalMinutes + + + + V2PurgeReportingIntervalMinutes + + + + V2PurgeTimeoutMinutes + + + + V2PurgeMaxRetries + + + + V2PurgeMaxDegreeOfParallelism + + + + UseV2PurgingAlgorithm + + + + + + + + DeserializedAudioConferencingProviderView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AudioConferencingProvider.AudioConferencingProvider + + + + + + + + Name + + + + Url + + + + Domain + + + + Port + + + + + + + + DeserializedAudioConferencingProviderView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AudioConferencingProvider.AudioConferencingProvider#Decorated + + + + + + + + Identity + + + + Name + + + + Url + + + + Domain + + + + Port + + + + + + + + DeserializedAudioConferencingFeatureConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AudioConferencingProvider.AudioConferencingFeatureConfiguration + + + + + + + + Identity + + + + EnableAutoSessionsControl + + + + EnableHttpNotifications + + + + EnableConferencingLobby + + + + + + + + DeserializedAudioTeleconferencingServiceConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AudioTeleconferencing.AudioTeleconferencingServiceConfiguration + + + + + + + + Identity + + + + AllowedClientCertificates + + + + ConversationServiceUri + + + + + + + + DeserializedAutodiscoverConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AutodiscoverConfiguration.AutodiscoverConfiguration + + + + + + + + Identity + + + + WebLinks + + + + ExternalSipClientAccessFqdn + + + + ExternalSipClientAccessPort + + + + EnableCertificateProvisioningServiceUrl + + + + EnableCORS + + + + + + + + DeserializedWebLinkView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AutodiscoverConfiguration.WebLink + + + + + + + + Token + + + + Href + + + + + + + + DeserializedTrunkConfigView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AzurePSTNTrunkConfiguration.TrunkConfig + + + + + + + + InboundTeamsNumberTranslationRules + + + + InboundPstnNumberTranslationRules + + + + OutboundPstnNumberTranslationRules + + + + Fqdn + + + + SipSignalingPort + + + + FailoverTimeSeconds + + + + ForwardCallHistory + + + + ForwardPai + + + + SendSipOptions + + + + MaxConcurrentSessions + + + + Enabled + + + + MediaBypass + + + + GatewaySiteId + + + + GatewaySiteLbrEnabled + + + + GatewayLbrEnabledUserOverride + + + + FailoverResponseCodes + + + + PidfLoSupported + + + + MediaRelayRoutingLocationOverride + + + + ProxySbc + + + + BypassMode + + + + Description + + + + IPAddressVersion + + + + + + + + DeserializedTrunkConfigView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AzurePSTNTrunkConfiguration.TrunkConfig#Decorated + + + + + + + + Identity + + + + InboundTeamsNumberTranslationRules + + + + InboundPstnNumberTranslationRules + + + + OutboundPstnNumberTranslationRules + + + + Fqdn + + + + SipSignalingPort + + + + FailoverTimeSeconds + + + + ForwardCallHistory + + + + ForwardPai + + + + SendSipOptions + + + + MaxConcurrentSessions + + + + Enabled + + + + MediaBypass + + + + GatewaySiteId + + + + GatewaySiteLbrEnabled + + + + GatewayLbrEnabledUserOverride + + + + FailoverResponseCodes + + + + PidfLoSupported + + + + MediaRelayRoutingLocationOverride + + + + ProxySbc + + + + BypassMode + + + + Description + + + + IPAddressVersion + + + + + + + + DeserializedPstnTranslationRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AzurePSTNTrunkConfiguration.PstnTranslationRule + + + + + + + + Name + + + + Description + + + + Pattern + + + + Translation + + + + + + + + DeserializedPstnTranslationRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AzurePSTNTrunkConfiguration.PstnTranslationRule#Decorated + + + + + + + + Identity + + + + Name + + + + Description + + + + Pattern + + + + Translation + + + + + + + + DeserializedBackupServiceConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BackupService.BackupServiceConfiguration + + + + + + + + Identity + + + + SyncInterval + + + + MaxConcurrentCalls + + + + AuthorizedUniversalGroups + + + + AuthorizedLocalAccounts + + + + MaxBatchesPerCmsSync + + + + MaxBatchesPerUserStoreSync + + + + MaxDataConfPackageSizeKB + + + + MaxHighPriQueuePercentagePerUserStoreSync + + + + CmsMaintenanceInterval + + + + + + + + DeserializedBandwidthPolicyServiceConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BandwidthPolicyServiceConfiguration.BandwidthPolicyServiceConfiguration + + + + + + + + Identity + + + + MaxTokenLifetime + + + + LogCleanUpInterval + + + + MaxLogFileSizeMb + + + + EnableLogging + + + + + + + + DeserializedBIConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BIConfiguration.BIConfiguration + + + + + + + + Identity + + + + EnableBI + + + + CosmosVirtualClusterPath + + + + KeepCosmosSummaryDataForDays + + + + KeepCosmosRawDataForDays + + + + CosmosCredentialUserName + + + + CosmosCredentialPassword + + + + PrimaryCosmosCredentialUserName + + + + PrimaryCosmosCredentialPassword + + + + SecondaryCosmosCredentialUserName + + + + SecondaryCosmosCredentialPassword + + + + SyncIntervalInSeconds + + + + EnableFlag + + + + PrimaryCosmosCredentialExpirationDate + + + + SecondaryCosmosCredentialExpirationDate + + + + + + + + DeserializedAzureConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BRB.AzureConfiguration + + + + + + + + Identity + + + + AzureStorageAccountName + + + + AzureStorageAccountKey + + + + AzureStorageAccountKeyNew + + + + TMXStorageAccountName + + + + TMXStorageAccountKey + + + + TMXStorageAccountKeyNew + + + + SQLStorageSource + + + + SQLStorageDatabase + + + + SQLStorageUserId + + + + AzureSQLStoragePassword + + + + AzureSQLStoragePasswordNew + + + + + + + + DeserializedBusinessVoiceTenantFlightingSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BusinessVoice.BusinessVoiceTenantFlightingSettings + + + + + + + + Identity + + + + DefaultRing + + + + + + + + DeserializedPstnEntitlementSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BusinessVoice.PstnEntitlementSettings + + + + + + + + Identity + + + + Regions + + + + EnableChecks + + + + MaximumTickRequests + + + + SyncInboundCalls + + + + SyncOutboundCalls + + + + + + + + DeserializedPstnEntitlementRegionView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BusinessVoice.PstnEntitlementRegion + + + + + + + + Region + + + + EnableChecks + + + + Url + + + + + + + + DeserializedBusinessVoiceFeatureConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BusinessVoice.BusinessVoiceFeatureConfiguration + + + + + + + + Identity + + + + EnableAnnouncements + + + + EnableCarrierProfileFlighting + + + + EnableMedSrvRingBasedRouting + + + + EnableRingBasedBVRouting + + + + EnableCallerIdFlighting + + + + DefaultMediationServerRing + + + + EnableDiagCodesWhitelistForAnsServiceSupport + + + + DiagCodesForAnsService + + + + EnableTenantDialPlans + + + + EnableAcmsReadForTranslationService + + + + OverrideDefaultProfile + + + + EnableEcsFlighting + + + + EnableSmartRetry + + + + + + + + DeserializedBusinessVoiceCarrierProfileView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BusinessVoice.BusinessVoiceCarrierProfile + + + + + + + + RingRules + + + + Provider + + + + ProviderGuid + + + + DefaultPstnUsage + + + + + + + + DeserializedBusinessVoiceCarrierProfileView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BusinessVoice.BusinessVoiceCarrierProfile#Decorated + + + + + + + + Identity + + + + RingRules + + + + Provider + + + + ProviderGuid + + + + DefaultPstnUsage + + + + + + + + DeserializedBusinessVoiceCarrierProfileRingRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BusinessVoice.BusinessVoiceCarrierProfileRingRule + + + + + + + + Ring + + + + CallType + + + + PstnUsage + + + + + + + + DeserializedBusinessVoiceCarrierProfileConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BusinessVoice.BusinessVoiceCarrierProfileConfiguration + + + + + + + + Identity + + + + BusinessVoiceCarrierProfile + + + + + + + + DeserializedCdrSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CallDetailRecording.CdrSettings + + + + + + + + Identity + + + + EnableCDR + + + + EnableUdcLite + + + + EnablePurging + + + + KeepCallDetailForDays + + + + KeepErrorReportForDays + + + + PurgeHourOfDay + + + + + + + + DeserializedCallParkServiceSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CallParkServiceSettings.CallParkServiceSettings + + + + + + + + Identity + + + + OnTimeoutURI + + + + MaxCallPickupAttempts + + + + CallPickupTimeoutThreshold + + + + EnableMusicOnHold + + + + + + + + DeserializedCentralizedLoggingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLoggingConfig.CentralizedLoggingConfiguration + + + + + + + + Identity + + + + Scenarios + + + + SearchTerms + + + + SecurityGroups + + + + Regions + + + + EtlModeEnabled + + + + EtlFileFolder + + + + EtlFileRolloverSizeMB + + + + EtlFileRolloverMinutes + + + + ZipEtlEnabled + + + + LocalSearchMode + + + + EtlNtfsCompressionEnabled + + + + TmfFileSearchPath + + + + CacheFileLocalFolders + + + + CacheFileNetworkFolder + + + + CacheFileLocalRetentionPeriod + + + + CacheFileLocalMaxDiskUsage + + + + ComponentThrottleLimit + + + + ComponentThrottleSample + + + + MinimumClsAgentServiceVersion + + + + NetworkUsagePacketSize + + + + NetworkUsageThreshold + + + + Version + + + + InsertTypesForSubstringMatch + + + + ETLMinFreeSpaceInDiskInBytes + + + + ETLEnoughFreeSpaceInDiskInBytes + + + + ETLMaxQuotaInBytes + + + + ETLEnoughQuotaInBytes + + + + EtlMaxRetentionInDays + + + + EtlModeRevision + + + + ETLMinQuotaInBytes + + + + LocalSearchModeRevision + + + + + + + + DeserializedScenarioView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLoggingConfig.Scenario + + + + + + + + Provider + + + + Name + + + + + + + + DeserializedScenarioView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLoggingConfig.Scenario#Decorated + + + + + + + + Identity + + + + Provider + + + + Name + + + + + + + + DeserializedProviderView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLoggingConfig.Provider + + + + + + + + Name + + + + Type + + + + Level + + + + Flags + + + + Guid + + + + Role + + + + + + + + DeserializedSearchTermView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLoggingConfig.SearchTerm + + + + + + + + Type + + + + Inserts + + + + + + + + DeserializedSearchTermView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLoggingConfig.SearchTerm#Decorated + + + + + + + + Identity + + + + Type + + + + Inserts + + + + + + + + DeserializedSecurityGroupView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLoggingConfig.SecurityGroup + + + + + + + + Name + + + + AccessLevel + + + + + + + + DeserializedSecurityGroupView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLoggingConfig.SecurityGroup#Decorated + + + + + + + + Identity + + + + Name + + + + AccessLevel + + + + + + + + DeserializedRegionView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLoggingConfig.Region + + + + + + + + Name + + + + SecurityGroupSuffix + + + + Sites + + + + OtherRegionAccess + + + + + + + + DeserializedRegionView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLoggingConfig.Region#Decorated + + + + + + + + Identity + + + + Name + + + + SecurityGroupSuffix + + + + Sites + + + + OtherRegionAccess + + + + + + + + DeserializedCloudPresenceServiceConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CloudPresenceService.CloudPresenceServiceConfiguration + + + + + + + + Identity + + + + ServiceUri + + + + EnableCloudPresenceForwarding + + + + BatchSize + + + + BatchDelay + + + + MaxRetries + + + + RetryBackoff + + + + + + + + DeserializedCMSConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CMSConfiguration.CMSConfiguration + + + + + + + + Identity + + + + IOFailureAlertThreshold + + + + OutOfDateAlertThreshold + + + + ReplicationSyntheticTransactionInterval + + + + CheckVersionMismatch + + + + QueryConfigChangesMinimumInterval + + + + QueryConfigChangesInterval + + + + UpdateReplicaStatusTimeout + + + + EnableReplicationSynchronization + + + + EnableUpdateIsActiveFlag + + + + EnableServiceConsumerMdsLogging + + + + EnableAcmsReaderMdsLogging + + + + EnableAcmsToCmsMncTenantSync + + + + AcmsToCmsMncTenantSyncInterval + + + + UseAcmsOnlyForRegistrarConfig + + + + MaxConsecutiveAcmsToCmsMncSyncTransientFailures + + + + AcmsClientHttpClientTimeout + + + + CleanupOrphanedDocsTaskIntervalInSecs + + + + CleanupOrphanedDocsTaskRetryCount + + + + CleanupOrphanedDocsTaskRetryIntervalInSecs + + + + ConcurrentHttpConnectionLimit + + + + MaximumReplicationBatchSize + + + + + + + + DeserializedCMSReplicationSyntheticTransactionView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CMSReplicationSyntheticTransaction.CMSReplicationSyntheticTransaction + + + + + + + + Identity + + + + TimeStamp + + + + + + + + DeserializedConferencingGatewayConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ConferencingGatewayConfiguration.ConferencingGatewayConfiguration + + + + + + + + Identity + + + + ConferencingGatewayEndpoint + + + + EnableAudioVideoToConferencingGateway + + + + + + + + DeserializedConversationHistorySettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ConversationHistory.ConversationHistorySettings + + + + + + + + Identity + + + + EnableServerConversationHistory + + + + MaxContinuedConversationRetry + + + + EnableDisplayNameResolution + + + + + + + + DeserializedDeploymentConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.DeploymentConfiguration.DeploymentConfiguration + + + + + + + + Identity + + + + DeploymentType + + + + + + + + DeserializedDeviceUpdateConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.DeviceUpdate.DeviceUpdateConfiguration + + + + + + + + Identity + + + + ValidLogFileTypes + + + + ValidLogFileExtensions + + + + MaxLogFileSize + + + + MaxLogCacheLimit + + + + LogCleanUpInterval + + + + LogFlushInterval + + + + LogCleanUpTimeOfDay + + + + + + + + DeserializedRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.DeviceUpdate.Rule + + + + + + + + Id + + + + DeviceType + + + + Brand + + + + Model + + + + Revision + + + + Locale + + + + UpdateType + + + + ApprovedVersion + + + + RestoreVersion + + + + PendingVersion + + + + + + + + DeserializedRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.DeviceUpdate.Rule#Decorated + + + + + + + + Identity + + + + Id + + + + DeviceType + + + + Brand + + + + Model + + + + Revision + + + + Locale + + + + UpdateType + + + + ApprovedVersion + + + + RestoreVersion + + + + PendingVersion + + + + + + + + DeserializedDeviceView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.DeviceUpdate.Device + + + + + + + + Name + + + + IdentifierType + + + + Identifier + + + + + + + + DeserializedDeviceView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.DeviceUpdate.Device#Decorated + + + + + + + + Identity + + + + Name + + + + IdentifierType + + + + Identifier + + + + + + + + DeserializedDiagnosticFilterSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Diagnostics.DiagnosticFilterSettings + + + + + + + + Identity + + + + Filter + + + + LoggingShare + + + + LogAllSipHeaders + + + + + + + + DeserializedFilterView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Diagnostics.Filter + + + + + + + + Fqdn + + + + Uri + + + + Enabled + + + + ExcludeRegisterMessages + + + + ExcludeConferenceMessages + + + + ExcludePresenceNotifications + + + + ExcludeSubscribeMessages + + + + ExcludeSuccessfulRequests + + + + ExcludeMidDialogRequests + + + + ExcludeTypingNotifications + + + + + + + + DeserializedDiagnosticHeaderSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Diagnostics.DiagnosticHeaderSettings + + + + + + + + Identity + + + + SendToOutsideUnauthenticatedUsers + + + + SendToExternalNetworks + + + + SendToExternalNetworksOnServiceEdge + + + + + + + + DeserializedDialInConferencingDtmfConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.DialInConferencingSettings.DialInConferencingDtmfConfiguration + + + + + + + + Identity + + + + CommandCharacter + + + + MuteUnmuteCommand + + + + AudienceMuteCommand + + + + LockUnlockConferenceCommand + + + + HelpCommand + + + + PrivateRollCallCommand + + + + EnableDisableAnnouncementsCommand + + + + AdmitAll + + + + OperatorLineUri + + + + + + + + DeserializedDialInConferencingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.DialInConferencingSettings.DialInConferencingConfiguration + + + + + + + + Identity + + + + EntryExitAnnouncementsType + + + + BatchToneAnnouncements + + + + EnableNameRecording + + + + EntryExitAnnouncementsEnabledByDefault + + + + PinAuthType + + + + EnableAccessibilityOptions + + + + + + + + DeserializedDialInConferencingLanguageListView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.DialInConferencingSettings.DialInConferencingLanguageList + + + + + + + + Identity + + + + Languages + + + + + + + + DeserializedTenantFederationSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.TenantFederationSettings + + + + + + + + Identity + + + + AllowedDomains + + + + BlockedDomains + + + + AllowedTrialTenantDomains + + + + AllowFederatedUsers + + + + AllowTeamsConsumer + + + + AllowTeamsConsumerInbound + + + + TreatDiscoveredPartnersAsUnverified + + + + SharedSipAddressSpace + + + + RestrictTeamsConsumerToExternalUserProfiles + + + + BlockAllSubdomains + + + + ExternalAccessWithTrialTenants + + + + DomainBlockingForMDOAdminsInTeams + + + + + + + + DeserializedAllowedDomainsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AllowedDomains + + + + + + + + AllowedDomainsChoice + + + + + + + + DeserializedAllowListView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AllowList + + + + + + + + AllowedDomain + + + + + + + + DeserializedDomainPatternView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DomainPattern + + + + + + + + Domain + + + + + + + + DeserializedAllowedDomainView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AllowedDomain + + + + + + + + Domain + + + + ProxyFqdn + + + + VerificationLevel + + + + Comment + + + + MarkForMonitoring + + + + + + + + DeserializedAllowedDomainView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AllowedDomain#Decorated + + + + + + + + Identity + + + + Domain + + + + ProxyFqdn + + + + VerificationLevel + + + + Comment + + + + MarkForMonitoring + + + + + + + + DeserializedBlockedDomainView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.BlockedDomain + + + + + + + + Domain + + + + Comment + + + + + + + + DeserializedBlockedDomainView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.BlockedDomain#Decorated + + + + + + + + Identity + + + + Domain + + + + Comment + + + + + + + + DeserializedAdditionalInternalDomainView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AdditionalInternalDomain + + + + + + + + Domain + + + + + + + + DeserializedAdditionalInternalDomainView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AdditionalInternalDomain#Decorated + + + + + + + + Identity + + + + Domain + + + + + + + + DeserializedMediaRelaySettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.MediaRelaySettings + + + + + + + + Identity + + + + MaxTokenLifetime + + + + MaxBandwidthPerUserKb + + + + MaxBandwidthPerPortKb + + + + PermissionListIgnoreSeconds + + + + + + + + DeserializedEmailConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Email.EmailConfiguration + + + + + + + + Identity + + + + EmailAccountName + + + + EmailAccountPassword + + + + EmailAccountDomain + + + + + + + + DeserializedEventServiceSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.EventServiceSettings.EventServiceSettings + + + + + + + + Identity + + + + EnableRemoteEventChannelService + + + + EventChannelServiceUrl + + + + EventChannelAudienceUrl + + + + + + + + DeserializedVoicemailReroutingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ExumRouting.VoicemailReroutingConfiguration + + + + + + + + Identity + + + + Enabled + + + + AutoAttendantNumber + + + + SubscriberAccessNumber + + + + + + + + DeserializedFIPSConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.FIPSConfiguration.FIPSConfiguration + + + + + + + + Identity + + + + RequireFIPSCompliantMedia + + + + + + + + DeserializedFlightConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.FlightConfiguration.FlightConfiguration + + + + + + + + Identity + + + + FlightDefinitions + + + + + + + + DeserializedFlightDefinitionView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.FlightConfiguration.FlightDefinition + + + + + + + + Cmdlet + + + + Name + + + + + + + + DeserializedFlightDefinitionView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.FlightConfiguration.FlightDefinition#Decorated + + + + + + + + Identity + + + + Priority + + + + Cmdlet + + + + Name + + + + + + + + DeserializedFlightingUserConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.FlightingUserConfiguration.FlightingUserConfiguration + + + + + + + + Identity + + + + Tenant1PercentList + + + + Tenant5PercentList + + + + Tenant10PercentList + + + + Tenant15PercentList + + + + Tenant20PercentList + + + + Tenant25PercentList + + + + Tenant30PercentList + + + + Tenant35PercentList + + + + Tenant40PercentList + + + + Tenant45PercentList + + + + Tenant50PercentList + + + + Tenant55PercentList + + + + Tenant60PercentList + + + + Tenant65PercentList + + + + Tenant70PercentList + + + + Tenant75PercentList + + + + Tenant80PercentList + + + + Tenant85PercentList + + + + Tenant90PercentList + + + + Tenant95PercentList + + + + UserAllowlist + + + + TenantAllowlist + + + + TenantDenylist + + + + + + + + DeserializedGraphApiConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.GraphApiConfiguration.GraphApiConfiguration + + + + + + + + Identity + + + + LoginUri + + + + GraphUri + + + + ClientId + + + + GraphLookupEnabled + + + + GraphReadWriteEnabled + + + + AdminAuthGraphEnabled + + + + TenantRemotePowershellClientId + + + + TestToken + + + + + + + + DeserializedGraphSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Graph.GraphSettings + + + + + + + + Identity + + + + EnableMeetingsGraph + + + + StorageServiceUrl + + + + DisableEmbeddedDocChat + + + + EnableFileAttachmentsFromCalendar + + + + FileAttachmentExtensionsBlacklist + + + + EnableInlineFileAttachmentsFromCalendar + + + + InlineFileAttachmentExtensionsBlacklist + + + + EnableReferenceAttachmentsFromCalendar + + + + ReferenceAttachmentExtensionsBlacklist + + + + EnableInlineReferenceAttachmentsFromCalendar + + + + InlineReferenceAttachmentExtensionsBlacklist + + + + AriaTenantToken + + + + EcsAgentName + + + + EcsInProduction + + + + EcsRefreshIntervalInMinutes + + + + + + + + DeserializedHealthAgentConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HealthAgentConfiguration.HealthAgentConfiguration + + + + + + + + Identity + + + + EnableCosmosUpload + + + + HLBListenerPort + + + + ForceHLBPortOpen + + + + + + + + DeserializedRegistrarView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HealthMonitoring.Registrar + + + + + + + + FirstTestUserSipUri + + + + FirstTestSamAccountName + + + + SecondTestUserSipUri + + + + SecondTestSamAccountName + + + + TargetFqdn + + + + + + + + DeserializedRegistrarView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HealthMonitoring.Registrar#Decorated + + + + + + + + Identity + + + + FirstTestUserSipUri + + + + FirstTestSamAccountName + + + + SecondTestUserSipUri + + + + SecondTestSamAccountName + + + + TargetFqdn + + + + + + + + DeserializedHostedUserMigrationConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HostedUserMigration.HostedUserMigrationConfiguration + + + + + + + + Identity + + + + AuthorizedTenantWellKnownGroups + + + + MaxSessionsInTotal + + + + MaxSessionsPerTenant + + + + SessionTimeoutInSecond + + + + PublishRoutingGroupDocumentInterval + + + + AuthorizedAdminCacheExpirationMinutes + + + + MigrateConfTableFromOnPremToOnline + + + + MigrateConfTableFromOnlineToOnPrem + + + + ClearPstnLocalId + + + + EnableMeetingMigration + + + + EnableSfbToTeamsMeetingMigration + + + + TeamsContactsEndpoint + + + + TeamsContactsAudience + + + + IsEcsProdEnvironment + + + + EnableMMSServiceInHMS + + + + EcsEnvironment + + + + + + + + DeserializedHuntGroupConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HuntGroupConfiguration.HuntGroupConfiguration + + + + + + + + Identity + + + + ApplicationId + + + + DefaultMusicOnHoldId + + + + CallbackUri + + + + DistributionListExpansionUri + + + + ClientAudience + + + + LineUriValidationRules + + + + MaxNumberOfHuntGroupsPerTenant + + + + + + + + DeserializedTenantHybridConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HybridConfiguration.TenantHybridConfiguration + + + + + + + + Identity + + + + HybridPSTNSites + + + + HybridPSTNAppliances + + + + TenantUpdateTimeWindows + + + + PeerDestination + + + + HybridConfigServiceInternalUrl + + + + HybridConfigServiceExternalUrl + + + + UseOnPremDialPlan + + + + + + + + DeserializedHybridPSTNSiteView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HybridConfiguration.HybridPSTNSite + + + + + + + + Index + + + + Name + + + + EdgeFQDN + + + + EnableAutoUpdate + + + + LastTopologyUpdateTime + + + + BitsUpdateTimeWindowList + + + + OsUpdateTimeWindowList + + + + + + + + DeserializedHybridPSTNSiteView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HybridConfiguration.HybridPSTNSite#Decorated + + + + + + + + Identity + + + + Index + + + + Name + + + + EdgeFQDN + + + + EnableAutoUpdate + + + + LastTopologyUpdateTime + + + + BitsUpdateTimeWindowList + + + + OsUpdateTimeWindowList + + + + + + + + DeserializedHybridPSTNApplianceView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HybridConfiguration.HybridPSTNAppliance + + + + + + + + Identity + + + + Name + + + + SiteIndex + + + + MediationServerIPAddress + + + + MediationServerFqdn + + + + MediationServerGruu + + + + MaintenanceMode + + + + ConfigurationReplicatedOn + + + + ConfigurationSnapshot + + + + ConfigurationSnapshotUpdatedOn + + + + RegistrationStatus + + + + RegistrationAction + + + + RunningVersion + + + + RunningStatus + + + + RunningError + + + + OsUpdatedOn + + + + DeployedOn + + + + StatusUpdatedOn + + + + DeploymentVersion + + + + DeploymentStatus + + + + DeploymentError + + + + DeploymentStartTime + + + + OsUpdateStatus + + + + OsUpdateError + + + + OsUpdateStartTime + + + + + + + + DeserializedHybridPSTNApplianceView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HybridConfiguration.HybridPSTNAppliance#Decorated + + + + + + + + Identity + + + + Identity + + + + Name + + + + SiteIndex + + + + MediationServerIPAddress + + + + MediationServerFqdn + + + + MediationServerGruu + + + + MaintenanceMode + + + + ConfigurationReplicatedOn + + + + ConfigurationSnapshot + + + + ConfigurationSnapshotUpdatedOn + + + + RegistrationStatus + + + + RegistrationAction + + + + RunningVersion + + + + RunningStatus + + + + RunningError + + + + OsUpdatedOn + + + + DeployedOn + + + + StatusUpdatedOn + + + + DeploymentVersion + + + + DeploymentStatus + + + + DeploymentError + + + + DeploymentStartTime + + + + OsUpdateStatus + + + + OsUpdateError + + + + OsUpdateStartTime + + + + + + + + DeserializedTenantUpdateTimeWindowView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HybridConfiguration.TenantUpdateTimeWindow + + + + + + + + Name + + + + Type + + + + StartTime + + + + Duration + + + + DayOfMonth + + + + WeeksOfMonth + + + + DaysOfWeek + + + + + + + + DeserializedTenantUpdateTimeWindowView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HybridConfiguration.TenantUpdateTimeWindow#Decorated + + + + + + + + Identity + + + + Name + + + + Type + + + + StartTime + + + + Duration + + + + DayOfMonth + + + + WeeksOfMonth + + + + DaysOfWeek + + + + + + + + DeserializedIfxLogSipMessageView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.IfxLogSipMessage.IfxLogSipMessage + + + + + + + + Identity + + + + Enable + + + + MethodFilter + + + + ResponseCodeFilter + + + + EnableInboundMessages + + + + EnableOutboundMessages + + + + EnableSipRequests + + + + EnableSipResponses + + + + IgnorePollingSubscribe + + + + Office365HashCertFingerprint + + + + + + + + DeserializedImConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Im.ImConfiguration + + + + + + + + Identity + + + + EnableOfflineIm + + + + + + + + DeserializedImFilterConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ImFilter.ImFilterConfiguration + + + + + + + + Identity + + + + Prefixes + + + + AllowMessage + + + + WarnMessage + + + + Enabled + + + + IgnoreLocal + + + + BlockFileExtension + + + + Action + + + + + + + + DeserializedFileTransferFilterConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ImFilter.FileTransferFilterConfiguration + + + + + + + + Identity + + + + Extensions + + + + Enabled + + + + Action + + + + + + + + DeserializedImTranslationConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ImTranslation.ImTranslationConfiguration + + + + + + + + Identity + + + + TranslationType + + + + ClientId + + + + ClientSecret + + + + AccessTokenUri + + + + ServiceUri + + + + ApplicationId + + + + + + + + DeserializedKerberosAccountAssignmentView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.KerberosAccount.KerberosAccountAssignment + + + + + + + + Identity + + + + UserAccount + + + + + + + + DeserializedLegalInterceptServiceConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.LegalInterceptService.LegalInterceptServiceConfiguration + + + + + + + + Identity + + + + RunInterval + + + + MaxQueueItemSize + + + + MaxADRetrieveCount + + + + QueryStartTimeSpan + + + + SMTPServer + + + + SMTPServerPort + + + + EmailFrom + + + + EndSessionDetectTimeSpan + + + + EnableLegalIntercept + + + + RetryCount + + + + + + + + DeserializedLogRetentionServiceConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.LogRetentionService.LogRetentionServiceConfiguration + + + + + + + + Identity + + + + RetryInterval + + + + RunInterval + + + + MaxQueueItemSize + + + + QueryStartTimeSpan + + + + LogRetentionDiscoveryUrl + + + + WebProxy + + + + ReceiveTimeout + + + + SendTimeout + + + + MaxReceivedMessageByte + + + + MaxBufferPoolByte + + + + MaxStringContentByte + + + + MaxADRetrieveCount + + + + + + + + DeserializedManagementConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Management.ManagementConfiguration + + + + + + + + Identity + + + + Office365DomainSuffixes + + + + MaxConnectionCountPerServer + + + + MaxConnectionCountPerUser + + + + RbacCacheRefreshInterval + + + + ControlPanelMaxConnectionCountPerServer + + + + ControlPanelMaxRunspaceCountPerUser + + + + ControlPanelRunspaceIdleTimeout + + + + ControlPanelClientPoolSize + + + + ControlPanelWebProxy + + + + ControlPanelFooterTextResourcePrefix + + + + ControlPanelFooterLinkResourcePrefix + + + + ControlPanelHelpLinkNamespace + + + + MsoShellServiceUrl + + + + FeedbackEndPointUrl + + + + FenixUrl + + + + TelephoneNumberProviderUrl + + + + SkypeInternationalVoicePolicyName + + + + RebrandDate + + + + PicServiceEnabled + + + + TenantGroupMapping + + + + IsAriaEnabled + + + + UspTelemetryEnv + + + + AriaToken + + + + AppInsightKey + + + + GeographyClientEndPointUrl + + + + + + + + DeserializedMcxConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.McxConfiguration.McxConfiguration + + + + + + + + Identity + + + + SessionExpirationInterval + + + + SessionShortExpirationInterval + + + + ExposedWebURL + + + + PushNotificationProxyUri + + + + + + + + DeserializedMdmLogSipMessageView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.MdmLogSipMessage.MdmLogSipMessage + + + + + + + + Identity + + + + Enable + + + + MethodFilter + + + + ResponseCodeFilter + + + + EnableInboundMessages + + + + EnableOutboundMessages + + + + EnableSipRequests + + + + EnableSipResponses + + + + IgnorePollingSubscribe + + + + + + + + DeserializedMdmRtcSrvView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.MdmRtcSrv.MdmRtcSrv + + + + + + + + Identity + + + + Enable + + + + Account + + + + Namespace + + + + + + + + DeserializedMediaSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Media.MediaSettings + + + + + + + + Identity + + + + EnableQoS + + + + EncryptionLevel + + + + EnableSiren + + + + MaxVideoRateAllowed + + + + EnableH264StdCodec + + + + EnableInCallQoS + + + + InCallQoSIntervalSeconds + + + + EnableRtpRtcpMultiplexing + + + + EnableVideoBasedSharing + + + + WaitIceCompletedToAddDialOutUser + + + + EnableDtls + + + + EnableRtx + + + + EnableSilkForAudioVideoConferences + + + + EnableAVBundling + + + + EnableServerFecForVideoInterop + + + + EnableReceiveAgc + + + + EnableDelayStartAudioReceiveStream + + + + + + + + DeserializedMeetingContentSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.MeetingContent.MeetingContentSettings + + + + + + + + Identity + + + + MaxContentStorageMb + + + + MaxUploadFileSizeMb + + + + ContentGracePeriod + + + + + + + + DeserializedMeetingMigrationConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.MeetingMigration.MeetingMigrationConfiguration + + + + + + + + Identity + + + + TaskInterval + + + + MeetingMigrationEnabled + + + + AllowedObjects + + + + AzureQueueServiceEndpointUrl + + + + EnqueueEnabled + + + + UserRetryLimit + + + + PlatformServiceAudienceUri + + + + SchedulingServiceAudienceUri + + + + PlatformServiceTokenIssuerUrl + + + + PlatformServiceClientId + + + + PlatformServiceDiscoverUrl + + + + SchedulingServiceMeetingUrl + + + + BackupCoordinateCollectorEnabled + + + + MmsDisabledFeatureList + + + + PlatformServicePayloadWithExpirationTime + + + + ExchangeOnlineUsersOnly + + + + DirectCallToSchedulingServiceEnabled + + + + MaximumNumberOfExtraThreads + + + + QueueSizeTriggerExtraThread + + + + EnabledFqdns + + + + ACPMeetingMigrationTriggerEnabled + + + + MmsSourceMeetingTypes + + + + MmsTargetMeetingTypes + + + + TeamsMeetingUserPolicyUrl + + + + SchedulingServiceTeamsMeetingUrl + + + + IsEcsProdEnvironment + + + + EcsEnvironment + + + + + + + + DeserializedMeetingPoolConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.MeetingPool.MeetingPoolConfiguration + + + + + + + + Identity + + + + TenantId + + + + ConsistentBotUserStartIndex + + + + ConsistentBotUserEndIndex + + + + ConsistentBotUserEnabledPoolPrefixes + + + + ConsistentBotUserPrefix + + + + ConsistentBotUserDomain + + + + PoolState + + + + + + + + DeserializedNetworkConfigurationSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.NetworkConfigurationSettings + + + + + + + + Identity + + + + MediaBypassSettings + + + + BWPolicyProfiles + + + + NetworkRegions + + + + NetworkRegionLinks + + + + InterNetworkRegionRoutes + + + + NetworkSites + + + + InterNetworkSitePolicies + + + + Subnets + + + + EnableBandwidthPolicyCheck + + + + + + + + DeserializedMediaBypassSettingsTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.MediaBypassSettingsType + + + + + + + + Enabled + + + + InternalBypassMode + + + + ExternalBypassMode + + + + AlwaysBypass + + + + BypassID + + + + EnabledForAudioVideoConferences + + + + + + + + DeserializedBWPolicyProfileTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.BWPolicyProfileType + + + + + + + + BWPolicy + + + + BWPolicyProfileID + + + + Description + + + + + + + + DeserializedBWPolicyProfileTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.BWPolicyProfileType#Decorated + + + + + + + + Identity + + + + BWPolicy + + + + BWPolicyProfileID + + + + Description + + + + + + + + DeserializedBWPolicyTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.BWPolicyType + + + + + + + + BWLimit + + + + BWSessionLimit + + + + BWPolicyModality + + + + + + + + DeserializedNetworkRegionTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.NetworkRegionType + + + + + + + + Description + + + + BypassID + + + + CentralSite + + + + BWAlternatePaths + + + + NetworkRegionID + + + + + + + + DeserializedNetworkRegionTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.NetworkRegionType#Decorated + + + + + + + + Identity + + + + Description + + + + BypassID + + + + CentralSite + + + + BWAlternatePaths + + + + NetworkRegionID + + + + + + + + DeserializedBWAlternatePathTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.BWAlternatePathType + + + + + + + + BWPolicyModality + + + + AlternatePath + + + + + + + + DeserializedNetworkRegionLinkTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.NetworkRegionLinkType + + + + + + + + BWPolicyProfileID + + + + NetworkRegionLinkID + + + + NetworkRegionID1 + + + + NetworkRegionID2 + + + + + + + + DeserializedNetworkRegionLinkTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.NetworkRegionLinkType#Decorated + + + + + + + + Identity + + + + BWPolicyProfileID + + + + NetworkRegionLinkID + + + + NetworkRegionID1 + + + + NetworkRegionID2 + + + + + + + + DeserializedInterNetworkRegionRouteTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.InterNetworkRegionRouteType + + + + + + + + NetworkRegionLinks + + + + InterNetworkRegionRouteID + + + + NetworkRegionID1 + + + + NetworkRegionID2 + + + + + + + + DeserializedInterNetworkRegionRouteTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.InterNetworkRegionRouteType#Decorated + + + + + + + + Identity + + + + NetworkRegionLinks + + + + InterNetworkRegionRouteID + + + + NetworkRegionID1 + + + + NetworkRegionID2 + + + + + + + + DeserializedNetworkSiteTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.NetworkSiteType + + + + + + + + Description + + + + NetworkRegionID + + + + BypassID + + + + BWPolicyProfileID + + + + LocationPolicyTagID + + + + NetworkSiteID + + + + VoiceRoutingPolicyTagID + + + + EnableLocationBasedRouting + + + + + + + + DeserializedNetworkSiteTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.NetworkSiteType#Decorated + + + + + + + + Identity + + + + Description + + + + NetworkRegionID + + + + BypassID + + + + BWPolicyProfileID + + + + LocationPolicyTagID + + + + NetworkSiteID + + + + VoiceRoutingPolicyTagID + + + + EnableLocationBasedRouting + + + + + + + + DeserializedInterNetworkSitePolicyTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.InterNetworkSitePolicyType + + + + + + + + BWPolicyProfileID + + + + InterNetworkSitePolicyID + + + + NetworkSiteID1 + + + + NetworkSiteID2 + + + + + + + + DeserializedInterNetworkSitePolicyTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.InterNetworkSitePolicyType#Decorated + + + + + + + + Identity + + + + BWPolicyProfileID + + + + InterNetworkSitePolicyID + + + + NetworkSiteID1 + + + + NetworkSiteID2 + + + + + + + + DeserializedSubnetTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.SubnetType + + + + + + + + MaskBits + + + + Description + + + + NetworkSiteID + + + + SubnetID + + + + + + + + DeserializedSubnetTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.SubnetType#Decorated + + + + + + + + Identity + + + + MaskBits + + + + Description + + + + NetworkSiteID + + + + SubnetID + + + + + + + + DeserializedOnlineDialinPageConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialinPageConfiguration + + + + + + + + Identity + + + + MaximumConcurrentBvdGetSipResourceRequests + + + + MaximumConcurrentBvdGetBridgeRequests + + + + EnablePinServicesUserLookup + + + + EnableRedirectToAzureDialinPage + + + + AzureDialinPageUrl + + + + + + + + DeserializedOnlineDialinConferencingTenantConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialinConferencingTenantConfiguration + + + + + + + + Identity + + + + Status + + + + EnableCustomTrunking + + + + ThirdPartyNumberStatus + + + + + + + + DeserializedSharedResourcesConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.SharedResourcesConfiguration + + + + + + + + Identity + + + + SupportedRings + + + + TelephoneNumberManagementV2ServiceUrl + + + + TenantAdminApiServiceUrl + + + + BusinessVoiceDirectoryUrl + + + + TgsServiceUrl + + + + AgentProvisioningServiceUrl + + + + SipDomain + + + + ProxyFqdn + + + + EmailServiceUrl + + + + MicrosoftEmailServiceUrl + + + + MicrosoftAuthenticationUrl + + + + EmailFlightPercentage + + + + DialOutInformationLink + + + + MediaStorageServiceUrl + + + + GlobalMediaStorageServiceUrl + + + + MediaStorageServiceRegion + + + + TelephoneNumberManagementServiceUrl + + + + NameDictionaryServiceUrl + + + + OrganizationalAutoAttendantAdminServiceUrl + + + + IsEcsProdEnvironment + + + + DialinBridgeFormatEnabled + + + + ApplicationConfigurationServiceUrl + + + + RecognizeServiceEndpointUrl + + + + RecognizeServiceAadResourceUrl + + + + AuthorityUrl + + + + ConferenceAutoAttendantApplicationId + + + + SchedulerMaxBvdConcurrentCalls + + + + + + + + DeserializedOnlineDialinConferencingServiceConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialinConferencingServiceConfiguration + + + + + + + + Identity + + + + AnonymousCallerGracePeriod + + + + AnonymousCallerMeetingRuntime + + + + AuthenticatedCallerMeetingRuntime + + + + + + + + DeserializedOnlineDialInConferencingNumberMapView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialInConferencingNumberMap + + + + + + + + Geocodes + + + + Name + + + + Shared + + + + + + + + DeserializedOnlineDialInConferencingNumberMapView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialInConferencingNumberMap#Decorated + + + + + + + + Identity + + + + Priority + + + + Geocodes + + + + Name + + + + Shared + + + + + + + + DeserializedOnlineDialInConferencingMarketProfileView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialInConferencingMarketProfile + + + + + + + + NumberMaps + + + + Name + + + + Code + + + + Region + + + + DefaultBridgeGeocode + + + + + + + + DeserializedOnlineDialInConferencingMarketProfileView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialInConferencingMarketProfile#Decorated + + + + + + + + Identity + + + + Priority + + + + NumberMaps + + + + Name + + + + Code + + + + Region + + + + DefaultBridgeGeocode + + + + + + + + DeserializedOnlineDialinConferencingDefaultLanguageView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialinConferencingDefaultLanguage + + + + + + + + Identity + + + + DefaultLanguages + + + + + + + + DeserializedDefaultLanguageEntryView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.DefaultLanguageEntry + + + + + + + + SecondaryLanguages + + + + Geocode + + + + PrimaryLanguage + + + + + + + + DeserializedOnlineDialInConferencingTenantSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialInConferencingTenantSettings + + + + + + + + Identity + + + + AllowedDialOutExternalDomains + + + + EnableEntryExitNotifications + + + + EntryExitAnnouncementsType + + + + EnableNameRecording + + + + IncludeTollFreeNumberInMeetingInvites + + + + MaskPstnNumbersType + + + + PinLength + + + + AllowPSTNOnlyMeetingsByDefault + + + + AutomaticallySendEmailsToUsers + + + + SendEmailFromOverride + + + + SendEmailFromAddress + + + + SendEmailFromDisplayName + + + + AutomaticallyReplaceAcpProvider + + + + UseUniqueConferenceIds + + + + AutomaticallyMigrateUserMeetings + + + + MigrateServiceNumbersOnCrossForestMove + + + + EnableDialOutJoinConfirmation + + + + AllowFederatedUsersToDialOutToSelf + + + + AllowFederatedUsersToDialOutToThirdParty + + + + + + + + DeserializedOnlineDialInConferencingAllowedDomainView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialInConferencingAllowedDomain + + + + + + + + Domain + + + + + + + + DeserializedOnlineDialInConferencingAllowedDomainView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialInConferencingAllowedDomain#Decorated + + + + + + + + Identity + + + + Domain + + + + + + + + DeserializedSharedLisResourcesConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineLocationInformation.SharedLisResourcesConfiguration + + + + + + + + Identity + + + + LocationInformationServiceUrl + + + + NCSLocationInformationServiceUrl + + + + EnableNCS + + + + EnableNCSforEmergencyDisclaimer + + + + + + + + DeserializedOnlineVoiceCapabilityMappingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineVoiceCapabilityMapConfiguration.OnlineVoiceCapabilityMappings + + + + + + + + SupportedCapabilities + + + + PartnerID + + + + Description + + + + + + + + DeserializedOnlineVoiceCapabilityMappingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineVoiceCapabilityMapConfiguration.OnlineVoiceCapabilityMappings#Decorated + + + + + + + + Identity + + + + SupportedCapabilities + + + + PartnerID + + + + Description + + + + + + + + DeserializedOperationalLogConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OperationalLog.OperationalLogConfiguration + + + + + + + + Identity + + + + Enable + + + + UploadIntervalSeconds + + + + MaximumQueueSize + + + + NumberOfItemsForImmediateDataUpload + + + + AzureOperationalLogServiceEndpointUrl + + + + + + + + DeserializedOrganizationalAutoAttendantConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OrganizationalAutoAttendantConfiguration.OrganizationalAutoAttendantConfiguration + + + + + + + + Identity + + + + ApplicationId + + + + CallbackUrl + + + + MaxOrgAutoAttendantsPerTenant + + + + ClientAudience + + + + FlightedFeatures + + + + AriaTelemetryToken + + + + + + + + DeserializedPersistentChatConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PersistentChat.PersistentChatConfiguration + + + + + + + + Identity + + + + MaxFileSizeKB + + + + ParticipantUpdateLimit + + + + DefaultChatHistory + + + + RoomManagementUrl + + + + + + + + DeserializedPersistentChatComplianceConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PersistentChat.PersistentChatComplianceConfiguration + + + + + + + + Identity + + + + AdapterName + + + + RunInterval + + + + AdapterOutputDirectory + + + + AdapterType + + + + OneChatRoomPerOutputFile + + + + CreateFileAttachmentsManifest + + + + AddUserDetails + + + + AddChatRoomDetails + + + + CustomConfiguration + + + + + + + + DeserializedPersistentChatStateView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PersistentChat.PersistentChatState + + + + + + + + Identity + + + + PoolState + + + + + + + + DeserializedPlatformConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Platform.PlatformConfiguration + + + + + + + + Identity + + + + RingConfigurations + + + + RegionConfigurations + + + + EnableBroadcastFunctionality + + + + SkipRegistrationForMeetingApplication + + + + EnableConversationExtensionFunctionality + + + + PushNotificationBlockedHours + + + + ExchangeSearchEnabled + + + + StorageServiceCreationRetryTimeSpan + + + + AnonApplicationTokenLifeSpan + + + + EnableConsistentBotUserSelectionFunctionality + + + + ConsistentBotUserSelectionMode + + + + ActivationServiceUri + + + + GlobalPlatformUrl + + + + EnableFlightingFunctionality + + + + MaxEventChannelsPerApplication + + + + MaxPendingBatchRequestsPerUser + + + + AllowPlatformAnonToken + + + + EnableCORS + + + + EnableUcwaScopeCheck + + + + MaxRegistrationsPerPublicApplication + + + + MediaPresenceStateExpiration + + + + TrapServiceUrl + + + + + + + + DeserializedRingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Platform.RingConfiguration + + + + + + + + Name + + + + Url + + + + DeploymentPreference + + + + Region + + + + + + + + DeserializedRegionConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Platform.RegionConfiguration + + + + + + + + Name + + + + Url + + + + ServiceInstanceIds + + + + + + + + DeserializedPlatformApplicationsConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PlatformApplications.PlatformApplicationsConfiguration + + + + + + + + Identity + + + + PublicApplicationList + + + + PublicApplicationListMode + + + + + + + + DeserializedApplicationMeetingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PlatformApplications.ApplicationMeetingConfiguration + + + + + + + + Identity + + + + AllowRemoveParticipantAppIds + + + + + + + + DeserializedPlatformExceptionSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PlatformExceptionSettings.PlatformExceptionSettings + + + + + + + + Identity + + + + KnownExceptions + + + + + + + + DeserializedKnownExceptionView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PlatformExceptionSettings.KnownException + + + + + + + + Name + + + + Type + + + + MatchText + + + + ExpirationInUtc + + + + + + + + DeserializedKnownExceptionView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PlatformExceptionSettings.KnownException#Decorated + + + + + + + + Identity + + + + Priority + + + + Name + + + + Type + + + + MatchText + + + + ExpirationInUtc + + + + + + + + DeserializedPlatformServiceNGCSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PlatformServiceNGCSettings.PlatformServiceNGCSettings + + + + + + + + Identity + + + + EnableGeneratingTeamsIdentity + + + + RegistrarUrl + + + + ConversationServiceUrl + + + + TrouterUrl + + + + CallControllerUrl + + + + TpcProdUrl + + + + + + + + DeserializedPlatformServiceSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PlatformServiceSettings.PlatformServiceSettings + + + + + + + + Identity + + + + EnablePushNotifications + + + + UseLegacyPushNotifications + + + + EnableE911 + + + + EnableFileTransfer + + + + AllowCallsFromNonContactsInPrivatePrivacyMode + + + + BvdPortalWhitelistedApp + + + + EnablePreDrainingForIncomingCalls + + + + EnableE911RequestXmlEncoding + + + + ContactCardUpdateAfterSignInMs + + + + ContactCardUpdateCheckInSeconds + + + + + + + + DeserializedPlatformThrottlingSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PlatformThrottlingSettings.PlatformThrottlingSettings + + + + + + + + Identity + + + + UcwaThrottlingConfigurations + + + + UcapThrottlingConfigurations + + + + EnableUcwaThrottling + + + + UcwaThrottlingThresholdPercentageForInternal + + + + UcwaThrottlingThresholdPercentageForPublic + + + + EnableUcapThrottling + + + + UcapThrottlingThresholdPercentageForInternal + + + + UcapThrottlingThresholdPercentageForPublic + + + + EnableUcwaThrottlingToExchange + + + + MaxConcurrentUcwaRequestsToExchange + + + + + + + + DeserializedPlatformThrottlingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PlatformThrottlingSettings.PlatformThrottlingConfiguration + + + + + + + + Name + + + + ThrottlingTargetType + + + + ThrottlingMode + + + + ThrottlingScope + + + + TimeRangeInMinutes + + + + TargetNumber + + + + ExcludedApiNames + + + + IncludedApiNames + + + + OverrideThresholdPercentageForPublic + + + + SkipInBatchRequest + + + + + + + + DeserializedPnchServiceConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PnchServiceConfiguration.PnchServiceConfiguration + + + + + + + + Identity + + + + PnchApplications + + + + ApplePushServiceFQDN + + + + ApplePushServicePort + + + + AppleFeedbackServiceFQDN + + + + AppleFeedbackServicePort + + + + PnhServiceUri + + + + VerboseDiagnostics + + + + EnableGenevaLogging + + + + + + + + DeserializedPnchApplicationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PnchServiceConfiguration.PnchApplication + + + + + + + + Name + + + + Provider + + + + ApplicationId + + + + MaxConnections + + + + Certificate + + + + + + + + DeserializedPnchApplicationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PnchServiceConfiguration.PnchApplication#Decorated + + + + + + + + Identity + + + + Name + + + + Provider + + + + ApplicationId + + + + MaxConnections + + + + Certificate + + + + + + + + DeserializedPnchAllowedDomainView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PnchServiceConfiguration.PnchAllowedDomain + + + + + + + + Domain + + + + Comment + + + + + + + + DeserializedPnchAllowedDomainView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PnchServiceConfiguration.PnchAllowedDomain#Decorated + + + + + + + + Identity + + + + Domain + + + + Comment + + + + + + + + DeserializedPnchBlockedDomainView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PnchServiceConfiguration.PnchBlockedDomain + + + + + + + + Domain + + + + Comment + + + + + + + + DeserializedPnchBlockedDomainView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PnchServiceConfiguration.PnchBlockedDomain#Decorated + + + + + + + + Identity + + + + Domain + + + + Comment + + + + + + + + DeserializedPolicyRestrictionsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PolicyRules.PolicyRestrictions + + + + + + + + Identity + + + + SkuGroups + + + + PolicyRules + + + + + + + + DeserializedSkuGroupView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PolicyRules.SkuGroup + + + + + + + + ServicePlans + + + + SkuName + + + + + + + + DeserializedSkuGroupView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PolicyRules.SkuGroup#Decorated + + + + + + + + Identity + + + + ServicePlans + + + + SkuName + + + + + + + + DeserializedPolicyRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PolicyRules.PolicyRule + + + + + + + + AttributeRules + + + + PolicyName + + + + + + + + DeserializedPolicyRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PolicyRules.PolicyRule#Decorated + + + + + + + + Identity + + + + AttributeRules + + + + PolicyName + + + + + + + + DeserializedAttributeRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PolicyRules.AttributeRule + + + + + + + + SkuRules + + + + CountryRules + + + + AttributeName + + + + + + + + DeserializedSkuRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PolicyRules.SkuRule + + + + + + + + Sku + + + + Permission + + + + Type + + + + Value + + + + + + + + DeserializedCountryRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PolicyRules.CountryRule + + + + + + + + CountryGroup + + + + Permission + + + + Type + + + + Value + + + + + + + + DeserializedPowershellInfraConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PowershellInfraConfiguration.PowershellInfraConfiguration + + + + + + + + Identity + + + + EnableDirectAcmsConnections + + + + EnableAcmsEcsConnections + + + + EcsEnvironment + + + + EnableReadWriteTopologyFromAcms + + + + EnableWriteAuditRecord + + + + EnableDirectWriteRegistrarConfig + + + + EnableEcsCmdletFiltering + + + + UseEcsProdEnvironment + + + + LrosApplicationId + + + + LrosTokenAuthorityUri + + + + LrosEndpointUri + + + + LrosResourceUri + + + + LrosJobStatusTimeOut + + + + + + + + DeserializedProvisionServiceConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ProvisionService.ProvisionServiceConfiguration + + + + + + + + Identity + + + + ServiceInstances + + + + UserServicePools + + + + MsoUrl + + + + PublicProviderUrl + + + + SMPDNSWebserviceUrl + + + + SMPDNSsipdirSRVRecordData + + + + SMPDNSsipCNAMERecordData + + + + SMPDNSsipfedSRVRecordData + + + + SMPDNSwebdirCNAMERecordData + + + + WebProxy + + + + SyncInterval + + + + PublishInterval + + + + PublishRetryInterval + + + + PersistCookieInterval + + + + ThreadNoActivityTimeout + + + + MeetingMigrationThreadNoActivityTimeout + + + + MaxPublishBatchSize + + + + MaxADResultBatchSize + + + + ProvisionInterval + + + + ProvisionRetryInterval + + + + PoolUserRefreshInterval + + + + QueuesPerCPU + + + + PoolThreshold + + + + PrimaryDomainController + + + + SecondaryDomainController + + + + DCReplicaWaitTime + + + + PersistCookieThreshold + + + + SimpleUrlDNSName + + + + TenantMOREADomainSuffix + + + + LegacyTenantMOREADomainSuffix + + + + ReceiveTimeout + + + + SendTimeout + + + + MaxReceivedMessageSize + + + + MaxBufferPoolSize + + + + MaxStringContentLength + + + + ConnectionLimit + + + + ExchangeOnline + + + + RecoverTaskTimeInterval + + + + MaxNumberOfSyncErrorObjects + + + + MaxReSyncErrorObjectsBeforeWarning + + + + IgnorePICProvision + + + + EnableAsyncPICProvision + + + + IgnoreDNSProvision + + + + EnableAsyncDNSProvision + + + + EnableLightWeightSync + + + + DropUserAndFPOInLightWeightSync + + + + LightWeightSyncTenantList + + + + SendMNCTenantToBVD + + + + SendAllTenantsToBVD + + + + SendAllUsersToBVD + + + + DisabledFeatureList + + + + ConfirmedCookieAgeFailureThreshold + + + + ConfirmedCookieAgeWarningThreshold + + + + IntermediateCookieAgeFailureThreshold + + + + MoreFalseCookieAgeFailureThreshold + + + + MoreFalseCookieAgeWarningThreshold + + + + EnableSkypeEntitlement + + + + SkypeEntitlementHost + + + + SkypeEntitlementPort + + + + UnlicensedUserGracePeriod + + + + UnlicensedUserDeletionEnabled + + + + PersistRemotePoolForUsers + + + + PublishLyncAttributesForAllTenants + + + + SyncLatencyCounterThreshold + + + + MaxConcurrentDeleteOperations + + + + EnableBVDProvision + + + + EnableCPCProvision + + + + WriteAcpInfoForCpcUsersInAd + + + + CPCDisabledCountryList + + + + AdminPoolUrl + + + + EnableTenantPoolAssociationTracking + + + + EnableExoPlanProvisioning + + + + EnableEduExoPlanProvisioning + + + + ExoPlanProvisioningTenantList + + + + ExoPlanProvisioningStartDate + + + + TenantDNSCacheTimeout + + + + SyncOnlySkypeEnabledDomains + + + + HostMNCUsersInOtherRegionCoolDownTime + + + + EnableMAForNewTenant + + + + EnableBVDUpdateInMove + + + + SendOnPremHostedUsersToBvd + + + + EnableLastUserSipDomainSearch + + + + EnableTeamsProvisioning + + + + Deployment + + + + TeamsProvisioningTenantList + + + + EnableDNSDualWrite + + + + ApplicationId + + + + AzureSubscriptionId + + + + AzureDNSResourceGroup + + + + AzureDnsTenantId + + + + AzureDnsLoginUrl + + + + AzureDnsManagementCoreApiEndpoint + + + + EnableOnPremDNSDetector + + + + EnableOnPremCPC + + + + EnableECSConfig + + + + IsEcsProdEnvironment + + + + EcsEnvironment + + + + + + + + DeserializedUserServicePoolView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ProvisionService.UserServicePool + + + + + + + + ServiceId + + + + ReservedForLegacyTenant + + + + StandbyMode + + + + + + + + DeserializedPstnEmulatorConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PstnEmulator.PstnEmulatorConfiguration + + + + + + + + Identity + + + + PstnGatewayGruu + + + + EnteringDtmfDelay + + + + CallDuration + + + + IsTLS + + + + CertificateSubjectName + + + + CertificateIssuerName + + + + ListenToQueue + + + + TestMachine + + + + ECSEnabled + + + + + + + + DeserializedPushNotificationConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PushNotificationConfiguration.PushNotificationConfiguration + + + + + + + + Identity + + + + EnableApplePushNotificationService + + + + EnableMicrosoftPushNotificationService + + + + + + + + DeserializedQoESettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.QoE.QoESettings + + + + + + + + Identity + + + + ExternalConsumerIssuedCertId + + + + EnablePurging + + + + KeepQoEDataForDays + + + + PurgeHourOfDay + + + + EnableExternalConsumer + + + + ExternalConsumerName + + + + ExternalConsumerURL + + + + EnableQoE + + + + + + + + DeserializedIssuedCertIdView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.BaseTypes.IssuedCertId + + + + + + + + Issuer + + + + SerialNumber + + + + + + + + DeserializedRecordingServiceConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.RecordingService.RecordingServiceConfiguration + + + + + + + + Identity + + + + + + + + DeserializedRegistrarSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Registrar.RegistrarSettings + + + + + + + + Identity + + + + MinEndpointExpiration + + + + MaxEndpointExpiration + + + + DefaultEndpointExpiration + + + + MaxEndpointsPerUser + + + + EnableDHCPServer + + + + PoolState + + + + BackupStoreUnavailableThreshold + + + + MaxUserCount + + + + UserCertificateReplicationThreshold + + + + ReplicateUserCertsToBackend + + + + EnableWinFabLogUpload + + + + WinFabMaxLogsSizeMb + + + + IPPhoneUserAgents + + + + + + + + DeserializedReportingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Reporting.ReportingConfiguration + + + + + + + + Identity + + + + ReportingUrl + + + + + + + + DeserializedRoutingInfoDirConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.RoutingInfoDirService.RoutingInfoDirConfiguration + + + + + + + + Identity + + + + MaxSnapshotsToKeep + + + + MaxConcurrentDownloadCount + + + + LocalCacheFolderLocation + + + + NewSnapshotPollingIntervalInSeconds + + + + EnableLocalSnapshotDownloads + + + + UseSnapshots + + + + MaxOutstandingProviderRequests + + + + PositiveInMemoryCacheTimeoutSeconds + + + + NegativeInMemoryCacheTimeoutSeconds + + + + EnableAcmsRead + + + + RemoteTopologyRefreshIntervalSeconds + + + + EnableOnPremUserLookupResult + + + + PercentMemoryForProviderCache + + + + DomainLookupInMemoryCacheRecordCount + + + + TenantLookupInMemoryCacheRecordCount + + + + UserLookupInMemoryCacheRecordCount + + + + PhoneLookupInMemoryCacheRecordCount + + + + + + + + DeserializedOAuthSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SSAuth.OAuthSettings + + + + + + + + Identity + + + + PartnerApplications + + + + OAuthServers + + + + Realm + + + + ServiceName + + + + ClientAuthorizationOAuthServerIdentity + + + + ExchangeAutodiscoverUrl + + + + ExchangeAutodiscoverAllowedDomains + + + + + + + + DeserializedPartnerApplicationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SSAuth.PartnerApplication + + + + + + + + AuthToken + + + + Name + + + + ApplicationIdentifier + + + + Realm + + + + ApplicationTrustLevel + + + + AcceptSecurityIdentifierInformation + + + + Enabled + + + + + + + + DeserializedPartnerApplicationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SSAuth.PartnerApplication#Decorated + + + + + + + + Identity + + + + AuthToken + + + + Name + + + + ApplicationIdentifier + + + + Realm + + + + ApplicationTrustLevel + + + + AcceptSecurityIdentifierInformation + + + + Enabled + + + + + + + + DeserializedOAuthServerView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SSAuth.OAuthServer + + + + + + + + Name + + + + IssuerIdentifier + + + + Realm + + + + MetadataUrl + + + + AuthorizationUriOverride + + + + Type + + + + AcceptSecurityIdentifierInformation + + + + + + + + DeserializedOAuthServerView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SSAuth.OAuthServer#Decorated + + + + + + + + Identity + + + + Name + + + + IssuerIdentifier + + + + Realm + + + + MetadataUrl + + + + AuthorizationUriOverride + + + + Type + + + + AcceptSecurityIdentifierInformation + + + + + + + + DeserializedSchedulerServiceSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SchedulerServiceSettings.SchedulerServiceSettings + + + + + + + + Identity + + + + SchedulerServiceUrl + + + + ApplicationAudience + + + + AuthType + + + + + + + + DeserializedApplicationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ServerApplication.Application + + + + + + + + Uri + + + + Name + + + + Enabled + + + + Critical + + + + ScriptName + + + + Script + + + + + + + + DeserializedApplicationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ServerApplication.Application#Decorated + + + + + + + + Identity + + + + Priority + + + + Uri + + + + Name + + + + Enabled + + + + Critical + + + + ScriptName + + + + Script + + + + + + + + DeserializedSignInTelemetryConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SignInTelemetry.SignInTelemetryConfiguration + + + + + + + + Identity + + + + EnableClientTelemetry + + + + + + + + DeserializedSimpleUrlConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SimpleUrl.SimpleUrlConfiguration + + + + + + + + Identity + + + + SimpleUrl + + + + + + + + DeserializedSimpleUrlView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SimpleUrl.SimpleUrl + + + + + + + + SimpleUrlEntry + + + + Component + + + + Domain + + + + ActiveUrl + + + + + + + + DeserializedSimpleUrlEntryView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SimpleUrl.SimpleUrlEntry + + + + + + + + Url + + + + + + + + DeserializedProxySettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.ProxySettings + + + + + + + + Identity + + + + Realm + + + + MaxClientMessageBodySizeKb + + + + MaxServerMessageBodySizeKb + + + + TreatAllClientsAsRemote + + + + OutgoingTlsCount + + + + DnsCacheRecordCount + + + + AllowPartnerPollingSubscribes + + + + EnableLoggingAllMessageBodies + + + + EnableWhiteSpaceKeepAlive + + + + MaxKeepAliveInterval + + + + UseKerberosForClientToProxyAuth + + + + UseNtlmForClientToProxyAuth + + + + DisableNtlmFor2010AndLaterClients + + + + UseCertificateForClientToProxyAuth + + + + AcceptClientCompression + + + + MaxClientCompressionCount + + + + AcceptServerCompression + + + + MaxServerCompressionCount + + + + RequestServerCompression + + + + LoadBalanceInternalServers + + + + LoadBalanceEdgeServers + + + + TestFeatureList + + + + TestParameterList + + + + SpecialConfigurationList + + + + UseCertificatePinningForInternalConnections + + + + + + + + DeserializedRealmView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.Realm + + + + + + + + RealmChoice + + + + + + + + DeserializedCustomView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.Custom + + + + + + + + CustomValue + + + + + + + + DeserializedRoutingSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.RoutingSettings + + + + + + + + Identity + + + + Route + + + + + + + + DeserializedTransportView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.Transport + + + + + + + + TransportChoice + + + + Port + + + + + + + + DeserializedTCPView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.TCP + + + + + + + + IPAddress + + + + + + + + DeserializedTLSView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.TLS + + + + + + + + Certificate + + + + Fqdn + + + + + + + + DeserializedSkypeEdgeProvisionServiceConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SkypeEdgeProvisionService.SkypeEdgeProvisionServiceConfiguration + + + + + + + + Identity + + + + SyncInterval + + + + PICProvisionServerUrl + + + + WebProxy + + + + OpenCloseTimeout + + + + SendTimeout + + + + MaxReceivedMessageSizeBytes + + + + MaxArrayLength + + + + + + + + DeserializedStorageServiceSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.StorageService.StorageServiceSettings + + + + + + + + Identity + + + + EnableAutoImportFlushedData + + + + EnableFabricReplicationSetReduction + + + + EnableAsyncAdaptorTaskAbort + + + + FabricInvalidStateTimeoutDuration + + + + SingleSecondaryMissingTimeoutDuration + + + + SingleSecondaryQuorumEventLogInterval + + + + EnableLightweightFinalization + + + + EnableEwsTaskTimeout + + + + FilteredAdapterIdList + + + + EnableAttachmentCache + + + + AttachmentCacheTimeout + + + + MaxTotalMemoryForActiveFileUploadsInGB + + + + MemoryToFileSizeRatioForExArchUpload + + + + EnableAggressiveGC + + + + EnableWCFSelfHeal + + + + + + + + DeserializedTeamsAppPolicyConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsAppPolicyConfiguration.TeamsAppPolicyConfiguration + + + + + + + + Identity + + + + AppCatalogUri + + + + ResourceUri + + + + + + + + DeserializedTeamsConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsConfiguration + + + + + + + + Identity + + + + EnabledForVoice + + + + EnabledForMessaging + + + + + + + + DeserializedTeamsUpgradeConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsUpgradeConfiguration + + + + + + + + Identity + + + + DownloadTeams + + + + SfBMeetingJoinUx + + + + + + + + DeserializedTeamsClientConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsClientConfiguration + + + + + + + + Identity + + + + AllowEmailIntoChannel + + + + RestrictedSenderList + + + + AllowDropBox + + + + AllowBox + + + + AllowGoogleDrive + + + + AllowShareFile + + + + AllowEgnyte + + + + AllowOrganizationTab + + + + AllowSkypeBusinessInterop + + + + ContentPin + + + + AllowResourceAccountSendMessage + + + + ResourceAccountContentAccess + + + + AllowGuestUser + + + + AllowScopedPeopleSearchandAccess + + + + AllowRoleBasedChatPermissions + + + + + + + + DeserializedTeamsGuestMessagingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsGuestMessagingConfiguration + + + + + + + + Identity + + + + AllowUserEditMessage + + + + AllowUserDeleteMessage + + + + AllowUserDeleteChat + + + + AllowUserChat + + + + AllowGiphy + + + + GiphyRatingType + + + + AllowMemes + + + + AllowImmersiveReader + + + + AllowStickers + + + + + + + + DeserializedTeamsGuestMeetingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsGuestMeetingConfiguration + + + + + + + + Identity + + + + AllowIPVideo + + + + ScreenSharingMode + + + + AllowMeetNow + + + + LiveCaptionsEnabledType + + + + AllowTranscription + + + + + + + + DeserializedTeamsGuestCallingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsGuestCallingConfiguration + + + + + + + + Identity + + + + AllowPrivateCalling + + + + + + + + DeserializedTeamsMeetingBroadcastConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsMeetingBroadcastConfiguration + + + + + + + + Identity + + + + SupportURL + + + + AllowSdnProviderForBroadcastMeeting + + + + + + + + DeserializedTeamsEffectiveMeetingSurveyConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsEffectiveMeetingSurveyConfiguration + + + + + + + + Identity + + + + Survey + + + + DefaultOrganizerMode + + + + + + + + DeserializedTeamsCallHoldValidationConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsCallHoldValidationConfiguration + + + + + + + + Identity + + + + AudioFileValidationEnabled + + + + AudioFileValidationUri + + + + + + + + DeserializedTeamsEducationConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsEducationConfiguration + + + + + + + + Identity + + + + ParentGuardianPreferredContactMethod + + + + + + + + DeserializedTeamsMeetingTemplateConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsMeetingTemplateConfiguration + + + + + + + + Identity + + + + TeamsMeetingTemplates + + + + Description + + + + + + + + DeserializedTeamsMeetingTemplateTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsMeetingTemplateType + + + + + + + + TeamsMeetingOptions + + + + Description + + + + Name + + + + + + + + DeserializedTeamsMeetingTemplateTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsMeetingTemplateType#Decorated + + + + + + + + Identity + + + + TeamsMeetingOptions + + + + Description + + + + Name + + + + + + + + DeserializedTeamsMeetingOptionView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsMeetingOption + + + + + + + + IsLocked + + + + IsHidden + + + + Value + + + + Name + + + + + + + + DeserializedTeamsFirstPartyMeetingTemplateConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsFirstPartyMeetingTemplateConfiguration + + + + + + + + Identity + + + + TeamsMeetingTemplates + + + + Description + + + + + + + + DeserializedTeamsMeetingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsMeetingConfiguration.TeamsMeetingConfiguration + + + + + + + + Identity + + + + LogoURL + + + + LegalURL + + + + HelpURL + + + + CustomFooterText + + + + DisableAnonymousJoin + + + + DisableAppInteractionForAnonymousUsers + + + + EnableQoS + + + + ClientAudioPort + + + + ClientAudioPortRange + + + + ClientVideoPort + + + + ClientVideoPortRange + + + + ClientAppSharingPort + + + + ClientAppSharingPortRange + + + + ClientMediaPortRangeEnabled + + + + + + + + DeserializedTeamsMigrationConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsMigrationConfiguration.TeamsMigrationConfiguration + + + + + + + + Identity + + + + EnableLegacyClientInterop + + + + + + + + DeserializedTeamsRoutingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsRoutingConfiguration.TeamsRoutingConfiguration + + + + + + + + Identity + + + + VoiceGatewayFqdn + + + + EnableMessagingGatewayProxy + + + + MessagingConversationRequestUrl + + + + MessagingConversationResponseUrl + + + + MgwRedirectUrlTemplate + + + + EnablePoollessTeamsOnlyUserFlighting + + + + EnablePoollessTeamsOnlyCallingFlighting + + + + EnablePoollessTeamsOnlyMessagingFlighting + + + + EnablePoollessTeamsOnlyConferencingFlighting + + + + EnablePoollessTeamsOnlyPresenceFlighting + + + + HybridEdgeFqdn + + + + DisableTeamsOnlyUsersConfCreateFlighting + + + + TenantDisabledForTeamsOnlyUsersConfCreate + + + + EnableTenantLevelPolicyCheck + + + + + + + + DeserializedTelemetrySenderConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TelemetrySender.TelemetrySenderConfiguration + + + + + + + + Identity + + + + Enabled + + + + EncryptedAriaDataToken + + + + EncryptedAriaTraceToken + + + + TraceLevels + + + + TokenDecryptThumbprint + + + + AriaEndpointUri + + + + QoEHashThumbprint + + + + QoEEncryptThumbprint + + + + + + + + DeserializedTenantConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantConfiguration.TenantConfiguration + + + + + + + + Identity + + + + MaxAllowedDomains + + + + MaxBlockedDomains + + + + + + + + DeserializedTenantLicensingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantConfiguration.TenantLicensingConfiguration + + + + + + + + Identity + + + + Status + + + + + + + + DeserializedTenantWebServiceConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantConfiguration.TenantWebServiceConfiguration + + + + + + + + Identity + + + + CertificateValidityPeriodInHours + + + + + + + + DeserializedTenantFlightAssignmentsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantFlightAssignment.TenantFlightAssignments + + + + + + + + Identity + + + + Flights + + + + + + + + DeserializedFlightView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantFlightAssignment.Flight + + + + + + + + Name + + + + + + + + DeserializedFlightView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantFlightAssignment.Flight#Decorated + + + + + + + + Identity + + + + Priority + + + + Name + + + + + + + + DeserializedTenantMigrationConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantMigration.TenantMigrationConfiguration + + + + + + + + Identity + + + + MeetingMigrationEnabled + + + + + + + + DeserializedTenantNetworkConfigurationSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.TenantNetworkConfigurationSettings + + + + + + + + Identity + + + + NetworkRegions + + + + NetworkSites + + + + Subnets + + + + PostalCodes + + + + + + + + DeserializedNetworkRegionTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.NetworkRegionType + + + + + + + + Description + + + + CentralSite + + + + NetworkRegionID + + + + + + + + DeserializedNetworkRegionTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.NetworkRegionType#Decorated + + + + + + + + Identity + + + + Description + + + + CentralSite + + + + NetworkRegionID + + + + + + + + DeserializedNetworkSiteTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.NetworkSiteType + + + + + + + + Description + + + + NetworkRegionID + + + + LocationPolicyID + + + + SiteAddress + + + + NetworkSiteID + + + + OnlineVoiceRoutingPolicyTagID + + + + EnableLocationBasedRouting + + + + EmergencyCallRoutingPolicyTagID + + + + EmergencyCallingPolicyTagID + + + + NetworkRoamingPolicyTagID + + + + EmergencyCallRoutingPolicyName + + + + EmergencyCallingPolicyName + + + + NetworkRoamingPolicyName + + + + + + + + DeserializedNetworkSiteTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.NetworkSiteType#Decorated + + + + + + + + Identity + + + + Description + + + + NetworkRegionID + + + + LocationPolicyID + + + + SiteAddress + + + + NetworkSiteID + + + + OnlineVoiceRoutingPolicyTagID + + + + EnableLocationBasedRouting + + + + EmergencyCallRoutingPolicyTagID + + + + EmergencyCallingPolicyTagID + + + + NetworkRoamingPolicyTagID + + + + EmergencyCallRoutingPolicyName + + + + EmergencyCallingPolicyName + + + + NetworkRoamingPolicyName + + + + + + + + DeserializedSubnetTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.SubnetType + + + + + + + + Description + + + + NetworkSiteID + + + + MaskBits + + + + SubnetID + + + + + + + + DeserializedSubnetTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.SubnetType#Decorated + + + + + + + + Identity + + + + Description + + + + NetworkSiteID + + + + MaskBits + + + + SubnetID + + + + + + + + DeserializedPostalCodeTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.PostalCodeType + + + + + + + + Description + + + + NetworkSiteID + + + + PostalCode + + + + CountryCode + + + + + + + + DeserializedPostalCodeTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.PostalCodeType#Decorated + + + + + + + + Identity + + + + Description + + + + NetworkSiteID + + + + PostalCode + + + + CountryCode + + + + + + + + DeserializedTrustedIPView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.TrustedIP + + + + + + + + MaskBits + + + + Description + + + + IPAddress + + + + + + + + DeserializedTrustedIPView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.TrustedIP#Decorated + + + + + + + + Identity + + + + MaskBits + + + + Description + + + + IPAddress + + + + + + + + DeserializedTenantPartnerRoleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantPartnerRole.TenantPartnerRole + + + + + + + + BlockedCmdlets + + + + Name + + + + PartnerType + + + + + + + + DeserializedTenantPartnerRoleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantPartnerRole.TenantPartnerRole#Decorated + + + + + + + + Identity + + + + BlockedCmdlets + + + + Name + + + + PartnerType + + + + + + + + DeserializedTenantVideoInteropConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantVideoInteropConfiguration.TenantVideoInteropConfiguration + + + + + + + + Identity + + + + VideoTeleconferencingDeviceProviders + + + + + + + + DeserializedVideoTeleconferencingDeviceProviderView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantVideoInteropConfiguration.VideoTeleconferencingDeviceProvider + + + + + + + + Name + + + + TenantKey + + + + InstructionUri + + + + + + + + DeserializedVideoTeleconferencingDeviceProviderView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantVideoInteropConfiguration.VideoTeleconferencingDeviceProvider#Decorated + + + + + + + + Identity + + + + Name + + + + TenantKey + + + + InstructionUri + + + + + + + + DeserializedVideoInteropServiceProviderView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantVideoInteropServiceConfiguration.VideoInteropServiceProvider + + + + + + + + Name + + + + AadApplicationIds + + + + TenantKey + + + + InstructionUri + + + + AllowAppGuestJoinsAsAuthenticated + + + + + + + + DeserializedVideoInteropServiceProviderView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantVideoInteropServiceConfiguration.VideoInteropServiceProvider#Decorated + + + + + + + + Identity + + + + Name + + + + AadApplicationIds + + + + TenantKey + + + + InstructionUri + + + + AllowAppGuestJoinsAsAuthenticated + + + + + + + + DeserializedTrunkConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.TrunkConfiguration + + + + + + + + Identity + + + + OutboundTranslationRulesList + + + + SipResponseCodeTranslationRulesList + + + + OutboundCallingNumberTranslationRulesList + + + + PstnUsages + + + + Description + + + + ConcentratedTopology + + + + EnableBypass + + + + EnableMobileTrunkSupport + + + + EnableReferSupport + + + + EnableSessionTimer + + + + EnableSignalBoost + + + + MaxEarlyDialogs + + + + RemovePlusFromUri + + + + RTCPActiveCalls + + + + RTCPCallsOnHold + + + + SRTPMode + + + + EnablePIDFLOSupport + + + + EnableRTPLatching + + + + EnableOnlineVoice + + + + ForwardCallHistory + + + + Enable3pccRefer + + + + ForwardPAI + + + + EnableFastFailoverTimer + + + + EnableLocationRestriction + + + + NetworkSiteID + + + + + + + + DeserializedTranslationRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.TranslationRule + + + + + + + + Description + + + + Pattern + + + + Translation + + + + Name + + + + + + + + DeserializedTranslationRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.TranslationRule#Decorated + + + + + + + + Identity + + + + Priority + + + + Description + + + + Pattern + + + + Translation + + + + Name + + + + + + + + DeserializedSipResponseCodeTranslationRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.SipResponseCodeTranslationRule + + + + + + + + ReceivedResponseCode + + + + ReceivedISUPCauseValue + + + + TranslatedResponseCode + + + + Name + + + + + + + + DeserializedSipResponseCodeTranslationRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.SipResponseCodeTranslationRule#Decorated + + + + + + + + Identity + + + + Priority + + + + ReceivedResponseCode + + + + ReceivedISUPCauseValue + + + + TranslatedResponseCode + + + + Name + + + + + + + + DeserializedCallingNumberTranslationRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.CallingNumberTranslationRule + + + + + + + + Description + + + + Pattern + + + + Translation + + + + Name + + + + + + + + DeserializedCallingNumberTranslationRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.CallingNumberTranslationRule#Decorated + + + + + + + + Identity + + + + Priority + + + + Description + + + + Pattern + + + + Translation + + + + Name + + + + + + + + DeserializedUcapConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Ucap.UcapConfiguration + + + + + + + + Identity + + + + UcapActivateConferenceUrl + + + + UcapHostUrl + + + + + + + + DeserializedUnassignedNumberTreatmentView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UnassignedNumberTreatmentConfiguration.UnassignedNumberTreatment + + + + + + + + TreatmentId + + + + Pattern + + + + TargetType + + + + Target + + + + TreatmentPriority + + + + Description + + + + + + + + DeserializedUnassignedNumberTreatmentView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UnassignedNumberTreatmentConfiguration.UnassignedNumberTreatment#Decorated + + + + + + + + Identity + + + + TreatmentId + + + + Pattern + + + + TargetType + + + + Target + + + + TreatmentPriority + + + + Description + + + + + + + + DeserializedUpgradeEngineHandlerConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UpgradeEngineHandler.UpgradeEngineHandlerConfiguration + + + + + + + + Identity + + + + UpgradeEngineUrl + + + + TurnOnUpgradeEngineHandler + + + + TurnOnTenantReadinessUpload + + + + WebProxy + + + + QueryInterval + + + + UpgradeErrorRetryInterval + + + + TenantReadinessUploadInterval + + + + QueryWorkItemBatchSize + + + + UpdateTenantReadinessBatchSize + + + + MaxUpgradeRetryTimes + + + + PreUpgradeVersion + + + + PostUpgradeVersion + + + + ReceiveTimeout + + + + SendTimeout + + + + MaxReceivedMessageSize + + + + MaxBufferPoolSize + + + + MaxStringContentLength + + + + + + + + DeserializedUserReplicatorConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserReplicator.UserReplicatorConfiguration + + + + + + + + Identity + + + + ADDomainNamingContextList + + + + DomainControllerList + + + + ReplicationCycleInterval + + + + SkipFirstSyncAllowedDowntime + + + + + + + + DeserializedDomainControllerTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserReplicator.DomainControllerType + + + + + + + + ADDomainNamingContext + + + + DomainControllerFqdn + + + + + + + + DeserializedUserRoutingGroupConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserRoutingGroup.UserRoutingGroupConfiguration + + + + + + + + Identity + + + + Groups + + + + MaxUserCountPerGroup + + + + WarningThresholdPerGroup + + + + + + + + DeserializedUserServicesSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.UserServicesSettings + + + + + + + + Identity + + + + PresenceProviders + + + + MaintenanceTimeOfDay + + + + MinSubscriptionExpiration + + + + MaxSubscriptionExpiration + + + + DefaultSubscriptionExpiration + + + + AnonymousUserGracePeriod + + + + DeactivationGracePeriod + + + + MaxScheduledMeetingsPerOrganizer + + + + AllowNonRoomSystemNotification + + + + MaxSubscriptions + + + + MaxContacts + + + + MaxPersonalNotes + + + + SubscribeToCollapsedDG + + + + StateReplicationFlag + + + + TestFeatureList + + + + TestParameterList + + + + + + + + DeserializedPresenceProviderView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.PresenceProvider + + + + + + + + Fqdn + + + + + + + + DeserializedPresenceProviderView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.PresenceProvider#Decorated + + + + + + + + Identity + + + + Fqdn + + + + + + + + DeserializedPrivacyConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.PrivacyConfiguration + + + + + + + + Identity + + + + EnablePrivacyMode + + + + AutoInitiateContacts + + + + PublishLocationDataDefault + + + + DisplayPublishedPhotoDefault + + + + + + + + DeserializedMeetingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.MeetingConfiguration + + + + + + + + Identity + + + + PstnCallersBypassLobby + + + + EnableAssignedConferenceType + + + + DesignateAsPresenter + + + + AssignedConferenceTypeByDefault + + + + AdmitAnonymousUsersByDefault + + + + RequireRoomSystemsAuthorization + + + + LogoURL + + + + LegalURL + + + + HelpURL + + + + CustomFooterText + + + + AllowConferenceRecording + + + + AllowCloudRecordingService + + + + EnableMeetingReport + + + + UserUriFormatForStUser + + + + + + + + DeserializedRoutingDataSyncAgentConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.RoutingDataSyncAgentConfiguration + + + + + + + + Identity + + + + Enabled + + + + BatchesPerTransaction + + + + + + + + DeserializedUserStoreConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.UserStoreConfiguration + + + + + + + + Identity + + + + UserStoreServiceUri + + + + UserStoreSyncAgentSyncIntervalSeconds + + + + UserStoreSyncAgentSyncIntervalSecondsForPush + + + + UserStoreSyncAgentSyncIntervalTimeoutSeconds + + + + UserStoreClientRetryCount + + + + UserStoreClientWaitBeforeRetryMilliseconds + + + + UserStoreClientTimeoutPerTrySeconds + + + + UserStoreClientRetryCountForPush + + + + UserStoreClientWaitBeforeRetryMillisecondsForPush + + + + UserStoreClientTimeoutPerTrySecondsForPush + + + + MaxConcurrentPulls + + + + MaxConfDocsToPull + + + + HealthProbeRtcSrvIntervalSeconds + + + + HealthProbeReplicationAppIntervalSeconds + + + + UserStoreClientUseIfxLogging + + + + UserStoreClientLoggingIfxSessionName + + + + UserStoreClientLoggingFileLocation + + + + UserStoreClientEnableHttpTracing + + + + UserStoreClientHttpTimeoutSeconds + + + + UserStoreClientConnectionLimit + + + + UserStorePhase + + + + BackfillFrequencySeconds + + + + BackfillQueueSizeThreshold + + + + BackfillBatchSize + + + + RoutingGroupPartitionHealthExpirationInMinutes + + + + RoutingGroupPartitionUnhealthyThresholdInMinutes + + + + RoutingGroupPartitionFailuresThreshold + + + + PartitionKeySuffix + + + + EnablePullStatusReporting + + + + EnableSlowPullBackOff + + + + BackOffValueMaximumThresholdInSeconds + + + + BackOffInitialValueInSeconds + + + + BackOffFactor + + + + PushControllerBatchSize + + + + HttpIdleConnectionTimeInSeconds + + + + + + + + DeserializedBroadcastMeetingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.BroadcastMeetingConfiguration + + + + + + + + Identity + + + + EnableBroadcastMeeting + + + + EnableOpenBroadcastMeeting + + + + EnableBroadcastMeetingRecording + + + + EnableAnonymousBroadcastMeeting + + + + EnforceBroadcastMeetingRecording + + + + BroadcastMeetingSupportUrl + + + + EnableSdnProviderForBroadcastMeeting + + + + SdnFallbackAttendeeThresholdCountForBroadcastMeeting + + + + EnableTechPreviewFeatures + + + + + + + + DeserializedCloudMeetingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.CloudMeetingConfiguration + + + + + + + + Identity + + + + EnableAutoSchedule + + + + + + + + DeserializedCloudVideoInteropConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.CloudVideoInteropConfiguration + + + + + + + + Identity + + + + EnableCloudVideoInterop + + + + AllowLobbyBypass + + + + + + + + DeserializedCloudMeetingServiceConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.CloudMeetingServiceConfiguration + + + + + + + + Identity + + + + SchedulingUrl + + + + DiscoveryUrl + + + + + + + + DeserializedUserSettingsPageConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserSettingsPage.UserSettingsPageConfiguration + + + + + + + + Identity + + + + PstnCallingUri + + + + PstnConferencingUri + + + + VoicemailUri + + + + + + + + DeserializedVideoInteropServerConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.VideoInteropServer.VideoInteropServerConfiguration + + + + + + + + Identity + + + + EnableEnhancedVideoExperience + + + + + + + + DeserializedVideoInteropServerSyntheticTransactionConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.VideoInteropServerSyntheticTransaction.VideoInteropServerSyntheticTransactionConfiguration + + + + + + + + Identity + + + + WatcherNodeFqdns + + + + + + + + DeserializedVideoTrunkConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.VideoTrunkConfiguration.VideoTrunkConfiguration + + + + + + + + Identity + + + + GatewaySendsRtcpForActiveCalls + + + + GatewaySendsRtcpForCallsOnHold + + + + EnableMediaEncryptionForSipOverTls + + + + EnableSessionTimer + + + + ForwardErrorCorrectionType + + + + + + + + DeserializedTargetPoolView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.WatcherNode.TargetPool + + + + + + + + TestUsers + + + + Tests + + + + ExtendedTests + + + + TargetFqdn + + + + PortNumber + + + + UseInternalWebUrls + + + + XmppTestReceiverMailAddress + + + + Enabled + + + + UseAutoDiscovery + + + + + + + + DeserializedTargetPoolView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.WatcherNode.TargetPool#Decorated + + + + + + + + Identity + + + + TestUsers + + + + Tests + + + + ExtendedTests + + + + TargetFqdn + + + + PortNumber + + + + UseInternalWebUrls + + + + XmppTestReceiverMailAddress + + + + Enabled + + + + UseAutoDiscovery + + + + + + + + DeserializedExtendedTestView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.WatcherNode.ExtendedTest + + + + + + + + TestUsers + + + + Name + + + + TestType + + + + + + + + DeserializedWebServiceSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Web.WebServiceSettings + + + + + + + + Identity + + + + TrustedCACerts + + + + CrossDomainAuthorizationList + + + + MaxGroupSizeToExpand + + + + EnableGroupExpansion + + + + UseLocalWebClient + + + + UseWindowsAuth + + + + UseCertificateAuth + + + + UsePinAuth + + + + UseDomainAuthInLWA + + + + EnableMediaBasicAuth + + + + AllowAnonymousAccessToLWAConference + + + + EnableCertChainDownload + + + + InferCertChainFromSSL + + + + CASigningKeyLength + + + + MaxCSRKeySize + + + + MinCSRKeySize + + + + MaxValidityPeriodHours + + + + MinValidityPeriodHours + + + + DefaultValidityPeriodHours + + + + MACResolverUrl + + + + SecondaryLocationSourceUrl + + + + ShowJoinUsingLegacyClientLink + + + + ShowDownloadCommunicatorAttendeeLink + + + + AutoLaunchLyncWebAccess + + + + ShowAlternateJoinOptionsExpanded + + + + UseWsFedPassiveAuth + + + + WsFedPassiveMetadataUri + + + + AllowExternalAuthentication + + + + ExcludedUserAgents + + + + OverrideAuthTypeForInternalClients + + + + OverrideAuthTypeForExternalClients + + + + MobilePreferredAuthType + + + + EnableStatisticsInResponse + + + + HstsMaxAgeInSeconds + + + + EnableCORS + + + + CorsPreflightResponseMaxAgeInSeconds + + + + CrossDomainAuthorizationRegularExpressionList + + + + + + + + DeserializedCACertIdView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Web.CACertId + + + + + + + + Thumbprint + + + + CAStore + + + + + + + + DeserializedOriginView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Web.Origin + + + + + + + + Url + + + + + + + + DeserializedHostedWebAuthSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Web.HostedWebAuthSettings + + + + + + + + Identity + + + + UseWsFedAuth + + + + WsFedMetadataUri + + + + WsFedEnvironment + + + + UseClientCertAuthForWindowsAuth + + + + WsFederationProvider + + + + CompactWebTicketUserIdentiferType + + + + AddTenantIdToCompactWebTicket + + + + + + + + DeserializedWebAppHealthView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.WebAppHealth.WebAppHealth + + + + + + + + Identity + + + + + + + + DeserializedConfSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.WebConf.ConfSettings + + + + + + + + Identity + + + + MaxContentStorageMb + + + + MaxUploadFileSizeMb + + + + MaxBandwidthPerAppSharingServiceMb + + + + ContentGracePeriod + + + + ClientMediaPortRangeEnabled + + + + ClientMediaPort + + + + ClientMediaPortRange + + + + ClientAudioPort + + + + ClientAudioPortRange + + + + ClientVideoPort + + + + ClientVideoPortRange + + + + ClientAppSharingPort + + + + ClientAppSharingPortRange + + + + ClientFileTransferPort + + + + ClientFileTransferPortRange + + + + ClientSipDynamicPort + + + + ClientSipDynamicPortRange + + + + Organization + + + + HelpdeskInternalUrl + + + + HelpdeskExternalUrl + + + + ConsoleDownloadInternalUrl + + + + ConsoleDownloadExternalUrl + + + + CloudPollServicePrimaryUrl + + + + CloudPollServiceSecondaryUrl + + + + + + + + DeserializedConferenceDisclaimerView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.WebConf.ConferenceDisclaimer + + + + + + + + Identity + + + + Header + + + + Body + + + + + + + + DeserializedXForestMigrationConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.XForestMigration.XForestMigrationConfiguration + + + + + + + + Identity + + + + ReportErrorDetailBackToClient + + + + MaxSessionPerPool + + + + ThreadsPerTenant + + + + ThreadsPerFE + + + + PublishRoutingGroupDocumentInterval + + + + MoveHandlerEnabled + + + + MoveHandlerRequestInAsyncMode + + + + MoveHandlerQueryBatchSize + + + + MoveHandlerMaxDualSyncTenants + + + + MoveHandlerUserMoveBatchSize + + + + MoveHandlerStatusRetryLimitSinceLastStateChange + + + + MoveHandlerTenantRetryLimit + + + + MoveHandlerFinalizeTimeSpan + + + + MoveHandlerQueryInterval + + + + MoveHandlerErrorRetryInterval + + + + MoveHandlerStatusRetryInterval + + + + MoveHandlerUserMovePerSecond + + + + SHDMessageCenterEndpoint + + + + TenantNotificationEndMonth + + + + TenantNotificationStartDay + + + + EnableTenantNotification + + + + TenantNotificationExpirationDay + + + + UserMovesRetryPattern + + + + + + + + DeserializedXmppGatewaySettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.XmppFederation.XmppGatewaySettings + + + + + + + + Identity + + + + ConnectionLimit + + + + DialbackPassphrase + + + + EnableLoggingAllMessageBodies + + + + KeepAliveInterval + + + + PartnerConnectionLimit + + + + StreamEstablishmentTimeout + + + + StreamInactivityTimeout + + + + SubscriptionRefreshInterval + + + + + + + + DeserializedXmppAllowedPartnerView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.XmppFederation.XmppAllowedPartner + + + + + + + + AdditionalDomains + + + + Domain + + + + ConnectionLimit + + + + Description + + + + EnableKeepAlive + + + + ProxyFqdn + + + + SaslNegotiation + + + + SupportDialbackNegotiation + + + + TlsNegotiation + + + + PartnerType + + + + + + + + DeserializedXmppAllowedPartnerView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.XmppFederation.XmppAllowedPartner#Decorated + + + + + + + + Identity + + + + AdditionalDomains + + + + Domain + + + + ConnectionLimit + + + + Description + + + + EnableKeepAlive + + + + ProxyFqdn + + + + SaslNegotiation + + + + SupportDialbackNegotiation + + + + TlsNegotiation + + + + PartnerType + + + + + + + + DeserializedVoiceRoutingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.Hosted.VoiceRoutingPolicy + + + + + + + + Identity + + + + PstnUsages + + + + Description + + + + Name + + + + AllowInternationalCalls + + + + HybridPSTNSiteIndex + + + + + + + + DeserializedAddressBookSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.Hosted.AddressBookSettings + + + + + + + + Identity + + + + RunTimeOfDay + + + + KeepDuration + + + + SynchronizePollingInterval + + + + MaxDeltaFileSizePercentage + + + + UseNormalizationRules + + + + IgnoreGenericRules + + + + EnableFileGeneration + + + + MaxFileShareThreadCount + + + + EnableSearchByDialPad + + + + EnablePhotoSearch + + + + PhotoCacheRefreshInterval + + + + AzureAddressBookPrimaryServiceUrl + + + + AzureAddressBookSecondaryServiceUrl + + + + AzureAddressBookHealthPollingInterval + + + + DisableUserReplicationForAddressBook + + + + + + + + DeserializedCdrSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CallDetailRecording.Hosted.CdrSettings + + + + + + + + Identity + + + + MessageTypes + + + + EnableCDR + + + + EnableUdcLite + + + + EnablePurging + + + + KeepCallDetailForDays + + + + KeepErrorReportForDays + + + + PurgeHourOfDay + + + + EnableQueueBypassForErrorReport + + + + DataStore + + + + + + + + DeserializedCentralizedLoggingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLoggingConfig.Hosted.CentralizedLoggingConfiguration + + + + + + + + Identity + + + + Scenarios + + + + SearchTerms + + + + SecurityGroups + + + + Regions + + + + EtlModeEnabled + + + + EtlFileFolder + + + + EtlFileRolloverSizeMB + + + + EtlFileRolloverMinutes + + + + ZipEtlEnabled + + + + LocalSearchMode + + + + EtlNtfsCompressionEnabled + + + + TmfFileSearchPath + + + + CacheFileLocalFolders + + + + CacheFileNetworkFolder + + + + CacheFileLocalRetentionPeriod + + + + CacheFileLocalMaxDiskUsage + + + + ComponentThrottleLimit + + + + ComponentThrottleSample + + + + MinimumClsAgentServiceVersion + + + + NetworkUsagePacketSize + + + + NetworkUsageThreshold + + + + KrakenDBConnectionString + + + + SupportedRolesFromKrakenDB + + + + SupportedNonTopologyRolesFromKrakenDB + + + + Version + + + + InsertTypesForSubstringMatch + + + + ETLMinFreeSpaceInDiskInBytes + + + + ETLEnoughFreeSpaceInDiskInBytes + + + + ETLMaxQuotaInBytes + + + + ETLEnoughQuotaInBytes + + + + EtlMaxRetentionInDays + + + + EtlModeRevision + + + + ETLMinQuotaInBytes + + + + EtlMdsUploadEnabled + + + + EtlMdsUploadProviders + + + + LocalSearchModeRevision + + + + DisableTargetScenarios + + + + CloudOutputEnabled + + + + CloudOutputCpu + + + + CloudOutputUploadLimit + + + + CloudOutputUploadRatio + + + + + + + + DeserializedDialInConferencingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.DialInConferencingSettings.Hosted.DialInConferencingConfiguration + + + + + + + + Identity + + + + EntryExitAnnouncementsType + + + + BatchToneAnnouncements + + + + EnableNameRecording + + + + EntryExitAnnouncementsEnabledByDefault + + + + UsePinAuth + + + + PinAuthType + + + + EnableInterpoolTransfer + + + + EnableAccessibilityOptions + + + + EnableAnnouncementServiceTransfer + + + + + + + + DeserializedMediaRelaySettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.Hosted.MediaRelaySettings + + + + + + + + Identity + + + + MaxTokenLifetime + + + + MaxBandwidthPerUserKb + + + + MaxBandwidthPerPortKb + + + + PermissionListIgnoreSeconds + + + + MaxAverageConnPps + + + + MaxPeakConnPps + + + + TRAPUrl + + + + TRAPCallDistribution + + + + TRAPHttpclientRetryCount + + + + TRAPHttpclientTimeoutInMilliSeconds + + + + HideMrasInternalFqdnForClientRequest + + + + + + + + DeserializedMediaSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Media.Hosted.MediaSettings + + + + + + + + Identity + + + + EnableQoS + + + + EncryptionLevel + + + + EnableSiren + + + + MaxVideoRateAllowed + + + + EnableG722StereoCodec + + + + EnableSirenForAudioVideoConferences + + + + EnableH264Codec + + + + EnableH264StdCodec + + + + EnableAdaptiveBandWidthEstimation + + + + EnableG722Codec + + + + EnableInCallQoS + + + + InCallQoSIntervalSeconds + + + + MediaPaaSBaseUrl + + + + MediaPaaSAuthenticationScheme + + + + MediaPaaSAppId + + + + MediaPaaSAudience + + + + ; + + + + EnableRtpRtcpMultiplexing + + + + EnableVideoBasedSharing + + + + WaitIceCompletedToAddDialOutUser + + + + EnableDtls + + + + EnableRtx + + + + EnableSilkForAudioVideoConferences + + + + EnableMTurnAllocationForAudioVideoConferences + + + + EnableAVBundling + + + + EnableServerFecForVideoInterop + + + + EnableReceiveAgc + + + + EnableDelayStartAudioReceiveStream + + + + + + + + DeserializedPlatformServiceSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PlatformServiceSettings.Hosted.PlatformServiceSettings + + + + + + + + Identity + + + + UcwaThrottlingConfigurations + + + + EnableScopes + + + + EnableCORS + + + + EnableApplicationRoles + + + + WebPoolFqdnDomainSuffix + + + + EnableAnonymousMeetingJoin + + + + EnableAnonymousMeetingJoinTokensAcrossTenants + + + + MeetingUrlAuthorizationList + + + + ServicePointManagerDefaultConnectionLimit + + + + MaxRegistrationsPerPublicApplication + + + + MaxEventChannelsPerApplication + + + + EnableUcwaThrottling + + + + EnableUcwaMessageFailureNotifications + + + + UcwaThrottlingThresholdPercentageForInternal + + + + UcwaThrottlingThresholdPercentageForPublic + + + + ApplicationProviderMode + + + + ApplicationProviderRefreshTimeSpanInMinutes + + + + EnableDelegateManagement + + + + EnableExternalAccessCheck + + + + ReplayApplicationEndpointUri + + + + EnableReplayMessage + + + + EnableMyOrganizationGroup + + + + EnableUcwaThrottlingToExchange + + + + HideRequireIntunePolicy + + + + MaxConcurrentUcwaRequestsToExchange + + + + BlockUnauthenticatedDiscover + + + + BlockUnlicensedTenantInFirstPartyDiscover + + + + ReplaceNamespaceHosts + + + + AlternateTokenNamespace + + + + EnablePushNotifications + + + + UseLegacyPushNotifications + + + + ConferenceChatInactivityTimeoutInHours + + + + EnableE911 + + + + EnableFileTransfer + + + + AllowCallsFromNonContactsInPrivatePrivacyMode + + + + BvdPortalWhitelistedApp + + + + BlacklistedApps + + + + TestParameters + + + + AutodiscoverBaseUrl + + + + ClusterFqdnForAutodiscover + + + + EWSTimeoutInSeconds + + + + EnablePreDrainingForIncomingCalls + + + + EnableMdsLogging + + + + EnableBotframeworkChannel + + + + BlockCrossTenantChannelForBotframework + + + + BotframeworkReportingServiceBusConnectionString + + + + GenevaTelemetryAccountName + + + + GenevaTelemetryAccountNamespace + + + + BotframeworkManagementServiceBusConnectionString + + + + EnableSendServerLogs + + + + EnableE911RequestXmlEncoding + + + + SendServerLogsServiceUrl + + + + TrouterCallbackBaseUrl + + + + EnableUcwaEscalateIncomingAvCallOnWebRtc + + + + EnableUcwaMdsLogging + + + + ContactCardUpdateAfterSignInMs + + + + ContactCardUpdateCheckInSeconds + + + + + + + + DeserializedThrottlingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PlatformServiceSettings.ThrottlingConfiguration + + + + + + + + Name + + + + ThrottlingTargetType + + + + ThrottlingMode + + + + ThrottlingScope + + + + TimeRangeInMinutes + + + + TargetNumber + + + + ExcludedApiNames + + + + IncludedApiNames + + + + OverrideThresholdPercentageForPublic + + + + SkipInBatchRequest + + + + + + + + DeserializedQoESettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.QoE.Hosted.QoESettings + + + + + + + + Identity + + + + ExternalConsumerIssuedCertId + + + + EnablePurging + + + + KeepQoEDataForDays + + + + PurgeHourOfDay + + + + EnableExternalConsumer + + + + ExternalConsumerName + + + + ExternalConsumerURL + + + + EnableQoE + + + + EnableQueueBypass + + + + DataStore + + + + + + + + DeserializedRecordingServiceConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.RecordingService.Hosted.RecordingServiceConfiguration + + + + + + + + Identity + + + + RecordingServiceAuthenticationScheme + + + + RecordingServiceBaseUrl + + + + RecordingServiceAppId + + + + RecordingServiceAudience + + + + + + + + DeserializedOAuthSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SSAuth.Hosted.OAuthSettings + + + + + + + + Identity + + + + PartnerApplications + + + + OAuthServers + + + + Realm + + + + ServiceName + + + + ClientAuthorizationOAuthServerIdentity + + + + ExchangeAutodiscoverUrl + + + + ExchangeAutodiscoverAllowedDomains + + + + ClientAdalAuthOverride + + + + AlternateAudienceUrl + + + + AdditionalAudienceUrls + + + + + + + + DeserializedSignInTelemetryConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SignInTelemetry.Hosted.SignInTelemetryConfiguration + + + + + + + + Identity + + + + EnableClientTelemetry + + + + SignInTelemetryUrl + + + + SkypeTelemetryUrl + + + + + + + + DeserializedSimpleUrlConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SimpleUrl.Hosted.SimpleUrlConfiguration + + + + + + + + Identity + + + + SimpleUrl + + + + UseBackendDatabase + + + + WebSchedulerUrl + + + + + + + + DeserializedSimpleUrlView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SimpleUrl.Hosted.SimpleUrl + + + + + + + + SimpleUrlEntry + + + + Component + + + + Domain + + + + ActiveUrl + + + + MoreaDomain + + + + LegacyMoreaDomain + + + + + + + + DeserializedStorageServiceSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.StorageService.Hosted.StorageServiceSettings + + + + + + + + Identity + + + + EnableAutoImportFlushedData + + + + EnableFabricReplicationSetReduction + + + + EnableAsyncAdaptorTaskAbort + + + + FabricInvalidStateTimeoutDuration + + + + SingleSecondaryMissingTimeoutDuration + + + + SingleSecondaryQuorumEventLogInterval + + + + EnableLightweightFinalization + + + + EnableGenevaLogging + + + + EnableEwsTaskTimeout + + + + FilteredAdapterIdList + + + + EnableAttachmentCache + + + + AttachmentCacheTimeout + + + + MaxTotalMemoryForActiveFileUploadsInGB + + + + MemoryToFileSizeRatioForExArchUpload + + + + EnableAggressiveGC + + + + EnableWCFSelfHeal + + + + + + + + DeserializedTrunkConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.Hosted.TrunkConfiguration + + + + + + + + Identity + + + + OutboundTranslationRulesList + + + + SipResponseCodeTranslationRulesList + + + + OutboundCallingNumberTranslationRulesList + + + + PstnUsages + + + + Description + + + + ConcentratedTopology + + + + EnableBypass + + + + EnableMobileTrunkSupport + + + + EnableReferSupport + + + + EnableSessionTimer + + + + EnableSignalBoost + + + + MaxEarlyDialogs + + + + RemovePlusFromUri + + + + RTCPActiveCalls + + + + RTCPCallsOnHold + + + + SRTPMode + + + + EnablePIDFLOSupport + + + + EnableRTPLatching + + + + EnableOnlineVoice + + + + ForwardCallHistory + + + + Enable3pccRefer + + + + ForwardPAI + + + + EnableFastFailoverTimer + + + + EnablePassThrough + + + + IndicatePstnGateway + + + + EnableG722Codec + + + + EnableLocationRestriction + + + + NetworkSiteID + + + + EnableEntitlementChecks + + + + WildcardCertDomainSuffix + + + + EnableOptionsAlerting + + + + EnableImmediateRinging + + + + ProvisionalResponseInterval + + + + OfferIncomingCallGatewaySDP + + + + Suppress183WithoutSdpToGateway + + + + + + + + DeserializedWebServiceSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Web.Hosted.WebServiceSettings + + + + + + + + Identity + + + + TrustedCACerts + + + + CrossDomainAuthorizationList + + + + MaxGroupSizeToExpand + + + + EnableGroupExpansion + + + + UseLocalWebClient + + + + UseWindowsAuth + + + + UseCertificateAuth + + + + UsePinAuth + + + + UseDomainAuthInLWA + + + + EnableMediaBasicAuth + + + + AllowAnonymousAccessToLWAConference + + + + EnableCertChainDownload + + + + InferCertChainFromSSL + + + + CASigningKeyLength + + + + MaxCSRKeySize + + + + MinCSRKeySize + + + + MaxValidityPeriodHours + + + + MinValidityPeriodHours + + + + DefaultValidityPeriodHours + + + + MACResolverUrl + + + + SecondaryLocationSourceUrl + + + + ShowJoinUsingLegacyClientLink + + + + MakeHtmlLyncWebAppPrimaryMeetingClient + + + + ShowDownloadCommunicatorAttendeeLink + + + + AutoLaunchLyncWebAccess + + + + ShowAlternateJoinOptionsExpanded + + + + IsPublicDisclosureAllowed + + + + JoinIdentifierRegularExpression + + + + UseWsFedPassiveAuth + + + + WsFedPassiveMetadataUri + + + + AllowExternalAuthentication + + + + ExcludedUserAgents + + + + OverrideAuthTypeForInternalClients + + + + OverrideAuthTypeForExternalClients + + + + MobilePreferredAuthType + + + + EnableStatisticsInResponse + + + + HstsMaxAgeInSeconds + + + + HelpUrlLyncWebAccess + + + + PrivacyUrlLyncWebAccess + + + + EnableCosmosUploadOnEdge + + + + EnableCosmosUploadForWebComponents + + + + PrivacyUrlLyncWebScheduler + + + + XFrameJavascriptUri + + + + PlatformServiceTokenIssuerCertificateMetadataUri + + + + AzureActiveDirectoryGraphApiBaseUri + + + + EnableAzureActiveDirectoryLookup + + + + AadServicePrincipalListForTenantDomainLookup + + + + EnableCORS + + + + CorsPreflightResponseMaxAgeInSeconds + + + + AllowCrossForestWebRequestProxy + + + + TestFeatureList + + + + TestParameterList + + + + CrossDomainAuthorizationRegularExpressionList + + + + DisableClientCertificateStorage + + + + + + + + DeserializedOriginView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Web.Hosted.Origin + + + + + + + + Url + + + + OriginVerificationMethod + + + + + + + + DeserializedConfSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.WebConf.Hosted.ConfSettings + + + + + + + + Identity + + + + MaxContentStorageMb + + + + MaxUploadFileSizeMb + + + + MaxBandwidthPerAppSharingServiceMb + + + + ContentGracePeriod + + + + ClientMediaPortRangeEnabled + + + + ClientMediaPort + + + + ClientMediaPortRange + + + + ClientAudioPort + + + + ClientAudioPortRange + + + + ClientVideoPort + + + + ClientVideoPortRange + + + + ClientAppSharingPort + + + + ClientAppSharingPortRange + + + + ClientFileTransferPort + + + + ClientFileTransferPortRange + + + + ClientSipDynamicPort + + + + ClientSipDynamicPortRange + + + + Organization + + + + HelpdeskInternalUrl + + + + HelpdeskExternalUrl + + + + ConsoleDownloadInternalUrl + + + + ConsoleDownloadExternalUrl + + + + CloudPollServicePrimaryUrl + + + + CloudPollServiceSecondaryUrl + + + + DataRvCollectorUrl + + + + SupportLyncServer2010RtmDataMcuUserDirectories + + + + AriaTenantToken + + + + UseConnectedConnections + + + + EnableLwaRecording + + + + PsomEventReportLevel + + + + PurgingMode + + + + AlwaysUseExternalUrls + + + + UseStorageService + + + + UseTenantLevelMeetingSettings + + + + UseJitLocking + + + + JitLockingRetryIntervalSeconds + + + + JitLockingMaxRetryCount + + + + EncryptArchivedData + + + + CreateBackCompatUnencryptedFiles + + + + + + + + ServiceCmdlets + + Microsoft.Rtc.Management.Deployment.Core.NTService + + + + + + 8 + + + + 15 + + + + 120 + + + + + + + ServiceStatus + + + ServiceName + + + ActivityLevel + + + + + + + + NTServiceView + + Microsoft.Rtc.Management.Deployment.Core.NTServiceView + + + + + + 8 + + + + 15 + + + + 120 + + + + + + + Status + + + Name + + + ActivityLevel + + + + + + + + AbAttributeValues + + Microsoft.Rtc.SyntheticTransactions.Activities.Database.AbAttributeValue + + + + + + 30 + + + + 70 + + + + + + + Name + + + Value + + + + + + + + AbServerHeartbeats + + Microsoft.Rtc.SyntheticTransactions.Activities.Database.AbServerHeartbeat + + + + + + 30 + + + + 22 + + + + 22 + + + + 22 + + + + + + + Fqdn + + + LastHeartbeat + + + LastRegister + + + LastUnregister + + + + + + + + ManagementConnectionView + + Microsoft.Rtc.Management.Xds.ManagementConnection + + + + + + + + StoreProvider + + + + Connection + + + + ReadOnly + + + + SqlServer + + + + SqlInstance + + + + + + + + ServiceTypeView + + Microsoft.Rtc.Management.Fabric.ServiceTypeData + + + + + + 20 + + + + 100 + + + + + + + ServiceType + + + ServiceTable + + + + + + + + ReplicaStateView + + Microsoft.Rtc.Management.Xds.ReplicaState + + + + + + + + UpToDate + + + + ReplicaFqdn + + + + LastStatusReport + + + + LastUpdateCreation + + + + ProductVersion + + + + + + + + DisplayAccessEdgeSettingsDefaultRouteView + + Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DisplayAccessEdgeSettingsDefaultRoute + + + + + + + + Identity + + + + AllowAnonymousUsers + + + + AllowFederatedUsers + + + + AllowOutsideUsers + + + + DefaultRouteFqdn + + + + EnableArchivingDisclaimer + + + + EnableUserReplicator + + + + IsPublicProvider + + + + KeepCrlsUpToDateForPeers + + + + MarkSourceVerifiableOnOutgoingMessages + + + + OutgoingTlsCountForFederatedPartners + + + + DnsSrvCacheRecordCount + + + + DiscoveredPartnerStandardRate + + + + EnableDiscoveredPartnerContactsLimit + + + + MaxContactsPerDiscoveredPartner + + + + EnableDiscoveredPartnerResponseMonitor + + + + DiscoveredPartnerReportPeriodMinutes + + + + EnablePartnerMonitoringCosmosOutput + + + + EnablePartnerMonitoringIfxLog + + + + MaxAcceptedCertificatesStored + + + + MaxRejectedCertificatesStored + + + + CertificatesDeletedPercentage + + + + SkypeSearchUrl + + + + RoutingMethod + + + + VerificationLevel + + + + + + + + DisplayAccessEdgeSettingsDnsSrvRoutingView + + Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DisplayAccessEdgeSettingsDnsSrvRouting + + + + + + + + Identity + + + + AllowAnonymousUsers + + + + AllowFederatedUsers + + + + AllowOutsideUsers + + + + BeClearingHouse + + + + EnablePartnerDiscovery + + + + DiscoveredPartnerVerificationLevel + + + + EnableArchivingDisclaimer + + + + EnableUserReplicator + + + + KeepCrlsUpToDateForPeers + + + + MarkSourceVerifiableOnOutgoingMessages + + + + OutgoingTlsCountForFederatedPartners + + + + DnsSrvCacheRecordCount + + + + DiscoveredPartnerStandardRate + + + + EnableDiscoveredPartnerContactsLimit + + + + MaxContactsPerDiscoveredPartner + + + + EnableDiscoveredPartnerResponseMonitor + + + + DiscoveredPartnerReportPeriodMinutes + + + + EnablePartnerMonitoringCosmosOutput + + + + EnablePartnerMonitoringIfxLog + + + + MaxAcceptedCertificatesStored + + + + MaxRejectedCertificatesStored + + + + CertificatesDeletedPercentage + + + + SkypeSearchUrl + + + + RoutingMethod + + + + + + + + RoleView + + Microsoft.Rtc.Management.Authorization.OnPremDisplayRole + + + + + + + + Identity + + + + SID + + + + IsStandardRole + + + + Cmdlets + + + + ScriptModules + + + + ConfigScopes + + + + UserScopes + + + + TemplateName + + + + + + + + RoleView + + Microsoft.Rtc.Management.WritableConfig.Settings.Roles.Role + + + + + + + + Identity + + + + SID + + + + IsStandardRole + + + + Cmdlets + + + + ScriptModules + + + + ConfigScopes + + + + UserScopes + + + + TemplateName + + + + MSODSTemplateId + + + + + + + + CmdletTypeView + + Deserialized.Microsoft.Rtc.Management.Authorization.OnPremDisplayCmdletType + + + + + + + + Name + + + + + + + + CmdletTypeView + + Microsoft.Rtc.Management.Authorization.OnPremDisplayCmdletType + + + + + + + + Name + + + + + + + + CmdletTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Roles.CmdletType + + + + + + + + Name + + + + AllowedParameters + + + + + + + + CmdletTypeView + + Microsoft.Rtc.Management.WritableConfig.Settings.Roles.CmdletType + + + + + + + + Name + + + + AllowedParameters + + + + + + + + ScriptCmdletTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Roles.ScriptCmdletType + + + + + + + + ScriptFile + + + + FunctionName + + + + + + + + ConfigScopeView + + Microsoft.Rtc.Management.Core.ConfigScope + + + + + + + + Scope + + + + Value + + + + + + + + UserScopeView + + Microsoft.Rtc.Management.Core.UserScope + + + + + + + + Scope + + + + Value + + + + + + + + DisplayPublicProviderView + + Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DisplayPublicProvider + + + + + + + + Identity + + + + Name + + + + ProxyFqdn + + + + IconUrl + + + + NameDecorationDomain + + + + NameDecorationRoutingDomain + + + + NameDecorationExcludedDomainList + + + + VerificationLevel + + + + Enabled + + + + EnableSkypeIdRouting + + + + EnableSkypeDirectorySearch + + + + + + + + DisplayHostingProviderView + + Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DisplayHostingProvider + + + + + + + + Identity + + + + Name + + + + ProxyFqdn + + + + VerificationLevel + + + + Enabled + + + + EnabledSharedAddressSpace + + + + HostsOCSUsers + + + + IsLocal + + + + AutodiscoverUrl + + + + + + + + CertificateReferenceView + + Microsoft.Rtc.Management.Deployment.CertificateReference + + + + + + + + Issuer + + + + NotAfter + + + + NotBefore + + + + SerialNumber + + + + Subject + + + + AlternativeNames + + + + Thumbprint + + + + EffectiveDate + + + + PreviousThumbprint + + + + UpdateTime + + + + Use + + + + SourceScope + + + + + + + + DisplaySiteView + + Microsoft.Rtc.Management.Xds.DisplaySite + + + + + + + + Identity + + + + SiteId + + + + Services + + + + Pools + + + + FederationRoute + + + + XmppFederationRoute + + + + Description + + + + DisplayName + + + + SiteType + + + + ParentSite + + + + + + + + DisplayPoolView + + Microsoft.Rtc.Management.Xds.DisplayPool#Decorated + + + + + + + + Identity + + + + Services + + + + Computers + + + + Fqdn + + + + BackupPoolFqdn + + + + Site + + + + + + + + DisplayComputerView + + Microsoft.Rtc.Management.Xds.DisplayComputer#Decorated + + + + + + + + Identity + + + + Pool + + + + Fqdn + + + + + + + + DisplayTeamsUpgradePolicy + + Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsUpgradePolicy#Decorated + + + + + + + + Identity + + + + Description + + + + Mode + + + + NotifySfbUsers + + + + + + + + DisplayDeserializedTeamsUpgradePolicy + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsUpgradePolicy#Decorated + + + + + + + + Identity + + + + Description + + + + Mode + + + + NotifySfbUsers + + + + + + + + MirrorUserStoreStateView + + Microsoft.Rtc.Management.Xds.MirrorUserStoreState + + + + + + + + Identity + + + + Mirror + + + + Online + + + + + + + + UserStoreStateView + + Microsoft.Rtc.Management.Xds.UserStoreState + + + + + + + + Identity + + + + Online + + + + + + + + SyntheticTransactionsTaskOutputView + + Microsoft.Rtc.SyntheticTransactions.TaskOutput + + + + + + + + TargetFqdn + + + + Result + + + + Latency + + + + Error + + + + Diagnosis + + + + + + + + SyntheticTransactionsWebTaskOutputView + + Microsoft.Rtc.SyntheticTransactions.WebTaskOutput + + + + + + + + TargetFqdn + + + + TargetUri + + + + Result + + + + Latency + + + + Error + + + + Diagnosis + + + + + + + + SyntheticTransactionsAddressBookReplicationUserTaskOutputView + + Microsoft.Rtc.SyntheticTransactions.Activities.Database.AddressBookReplicationUserTaskOutput + + + + + + + + TargetFqdn + + + + ReplicationState + + + + TaskOwnerFqdn + + + + BackupFqdn + + + + LastModified + + + + LastModifiedAD + + + + ServerHeartbeats + + + + IndexedObjects + + + + TotalObjects + + + + ShouldBeIndexedObjects + + + + AbandondedObjects + + + + FailedResourceCount + + + + AdObjectId + + + + DistinguishedName + + + + SipAddress + + + + AttributeValues + + + + IsIndexed + + + + ShouldBeIndexed + + + + IsProcessed + + + + NormalizationSucceeded + + + + ManagerDn + + + + NormalizationFailureCount + + + + NormalizationFailures + + + + DatabaseErrorCount + + + + DatabaseErrors + + + + + + + + SyntheticTransactionsAddressBookReplicationTaskOutputView + + Microsoft.Rtc.SyntheticTransactions.Activities.Database.AddressBookReplicationTaskOutput + + + + + + + + TargetFqdn + + + + ReplicationState + + + + TaskOwnerFqdn + + + + BackupFqdn + + + + ServerHeartbeats + + + + IndexedObjects + + + + TotalObjects + + + + ShouldBeIndexedObjects + + + + AbandondedObjects + + + + FailedResourceCount + + + + NormalizationFailureCount + + + + NormalizationFailures + + + + DatabaseErrorCount + + + + DatabaseErrors + + + + + + + + SyntheticTransactionsSprocExecuteErrorView + + Microsoft.Rtc.SyntheticTransactions.Activities.Database.SprocExecuteErrorInfo + + + + + + + + ErrorCode + + + + Severity + + + + Count + + + + FirstOccurred + + + + LastOccurred + + + + SprocName + + + + ErrorText + + + + Example + + + + + + + + FedSyntheticTransactionsTaskOutputView + + Microsoft.Rtc.SyntheticTransactions.Extended.FedTaskOutput + + + + + + + + Endpoints + + + + Result + + + + Latency + + + + Error + + + + Diagnosis + + + + + + + + LegalInterceptView + + Microsoft.Rtc.Management.ADConnect.Schema.ADOCOnlineLegalIntercept + + + + + + + + Identity + + + + SipAddress + + + + LegalInterceptEnabled + + + + LegalInterceptDestination + + + + LegalInterceptExpiryTime + + + + + + + + ClientAccessLicenseView + + Microsoft.Rtc.Server.Cdr.ClientAccessLicense + + + + + + 48 + + + + + + + + + + + + + + + + UserUri + + + IpAddress + + + LicenseDisplayName + + + DisplayDate + + + + + + + + LicenseView + + Microsoft.Rtc.Server.Cdr.License + + + + + + + + + + + + DisplayName + + + + + + + + PoolUpgradeReadinessView + + Microsoft.Rtc.Management.Hadr.PoolUpgradeState + + + + + + + + PoolFqdn + + + State + + + TotalFrontends + + + TotalActiveFrontends + + + UpgradeDomains + + + + + + + + InterPoolReplicationComparisonResultFailedView + + Microsoft.Rtc.Management.Hadr.InterPoolReplication.ComparisonResultFailure + + + + + + + Identity + + + OwnerPoolFqdn + + + ReplicateFrom + + + ReplicateTo + + + Exception + + + + + + + + DatabaseComparisonResultView + + Microsoft.Rtc.Management.Hadr.InterPoolReplication.DatabaseComparisonResult + + + + + + + Identity + + + OwnerPoolFqdn + + + ReplicateFrom + + + ReplicateTo + + + NumberOfBatchesOnSource + + + NumberOfBatchesOnBackup + + + NumberOfBatchesInSync + + + NumberOfBatchesWithSyncInProgress + + + NumberOfBatchesOutOfSync + + + NumberOfItemsOnSource + + + NumberOfItemsOnBackup + + + NumberOfItemsInSync + + + NumberOfItemsWithSyncInProgress + + + NumberOfItemsOutOfSync + + + + ; + + + + ; + + + + + + + + UserFabricStateView + + Microsoft.Rtc.Management.HADR.FabricState.DisplayUserFabricState + + + + + + + SipAddress + + + TenantId + + + RoutingGroupId + + + HomePool + + + CurrentPool + + + Replicas + + + FabricServiceWriteStatus + + + + + + + + TenantFabricStateView + + Microsoft.Rtc.Management.HADR.FabricState.DisplayTenantFabricState + + + + + + + TenantId + + + TotalUsers + + + ActiveUsers + + + ActiveEndpoints + + + + ; + + + + + + + + RoutingGroupFabricStateView + + Microsoft.Rtc.Management.HADR.FabricState.DisplayRoutingGroupFabricState + + + + + + + RoutingGroupId + + + TotalUsers + + + ActiveUsers + + + ActiveEndpoints + + + HomePool + + + CurrentPool + + + Replicas + + + FabricServiceWriteStatus + + + + + + + + RoutingGroupFabricStateWithTenantsView + + Microsoft.Rtc.Management.HADR.FabricState.DisplayRoutingGroupFabricStateWithTenants + + + + + + + RoutingGroupId + + + TotalUsers + + + ActiveUsers + + + ActiveEndpoints + + + HomePool + + + CurrentPool + + + Replicas + + + FabricServiceWriteStatus + + + + ; + + + + ; + + + + + + + + ResponseElementView + + Microsoft.Rtc.ClsControllerLib.ResponseElement + + + + + + 8 + + + + 70 + + + + 30 + + + + + + + Code + + + Message + + + Data + + + + + + + + ClsStateMachineView + + Microsoft.Rtc.ClsControllerLib.ClsStateMachine + + + PoolFqdn + + + + + + 28 + Left + + + + 30 + Left + + + + 8 + Left + + + + 16 + Left + + + + 9 + Left + + + + 14 + Left + + + + + + + + MachineFqdn + + + ResponseMessage + + + AlwaysOn + + + ScenarioName + + + RemainingMins + + + ProductVersion + + + + + + + + ClsSearchOutputView + + Microsoft.Rtc.Management.Cls.ClsSearchOutput + + + + + + + ResponseMessage + + + OutputFile + + + StartTime + + + EndTime + + + SuccessfulAgents + + + FailedAgents + + + + + + + + ClsAgentStatusOutputView + + Microsoft.Rtc.Management.Cls.AgentInfoETL + + + + + + + CoreVersion + + + ClsAgentExeVersion + + + ServiceStatus + + + TracingFolder + + + ServiceStartStop + + + AgentState + + + LogPath + + + OldestFile + + + NewestFile + + + DaysOfLogs + + + LogFileCount + + + LogAge + + + LogDateRanges + + + + ; + + + + ; + + + ByDayLogMB + + + ByHourLogMB + + + Last24HourLogMB + + + Last1HourLogMB + + + Drives + + + EtlModeRevision + + + + ; + + + ZipEtlEnabled + + + EtlNtfsCompressionEnabled + + + EtlMaxRetentionInDays + + + + ; + + + + ; + + + + ; + + + + ; + + + + ; + + + TmxFiles + + + TmxCount + + + LogFiles + + + + + + + + SlaConfiguration + + Microsoft.Rtc.Management.SlaConfiguration + + + + + + + + BusyOption + + + + Target + + + + MissedCallOption + + + + MissedCallForwardTarget + + + + MaxNumberOfCalls + + + + ; + + + + + + + + BobConfiguration + + Microsoft.Rtc.Management.Bob.Cmdlets.BobConfiguration + + + + + + + Identity + + + ActionType + + + + + + + + ReplicaBuildProgressView + + Microsoft.Rtc.Management.HADR.FabricState.DisplayReplicaBuildProgress + + + + + + + AsOfTime + + + StartSequenceNum + + + EndSequenceNum + + + CurrentSequenceNum + + + BuildState + + + + + + + + DeserializedTrunkConfigView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AzurePSTNTrunkConfiguration.TrunkConfig#Decorated2 + + + + + + + + Identity + + + + InboundTeamsNumberTranslationRules + + + + InboundPstnNumberTranslationRules + + + + OutboundTeamsNumberTranslationRules + + + + OutboundPstnNumberTranslationRules + + + + Fqdn + + + + SipSignalingPort + + + + FailoverTimeSeconds + + + + ForwardCallHistory + + + + ForwardPai + + + + SendSipOptions + + + + MaxConcurrentSessions + + + + Enabled + + + + MediaBypass + + + + GatewaySiteId + + + + GatewaySiteLbrEnabled + + + + GatewayLbrEnabledUserOverride + + + + FailoverResponseCodes + + + + PidfLoSupported + + + + MediaRelayRoutingLocationOverride + + + + ProxySbc + + + + BypassMode + + + + Description + + + + IPAddressVersion + + + + + + + + TrunkConfigView + + Microsoft.Rtc.Management.WritableConfig.Settings.AzurePSTNTrunkConfiguration.TrunkConfig#Decorated2 + + + + + + + + Identity + + + + InboundTeamsNumberTranslationRules + + + + InboundPstnNumberTranslationRules + + + + OutboundTeamsNumberTranslationRules + + + + OutboundPstnNumberTranslationRules + + + + Fqdn + + + + SipSignalingPort + + + + FailoverTimeSeconds + + + + ForwardCallHistory + + + + ForwardPai + + + + SendSipOptions + + + + MaxConcurrentSessions + + + + Enabled + + + + MediaBypass + + + + GatewaySiteId + + + + GatewaySiteLbrEnabled + + + + GatewayLbrEnabledUserOverride + + + + FailoverResponseCodes + + + + PidfLoSupported + + + + MediaRelayRoutingLocationOverride + + + + ProxySbc + + + + BypassMode + + + + Description + + + + IPAddressVersion + + + + + + + + DisplayHostingProviderBaseView + + Microsoft.Rtc.Management.WritableConfig.Settings.Edge.Hosted.DisplayHostingProvider + + + + + + + + Identity + + + + Name + + + + ProxyFqdn + + + + VerificationLevel + + + + Enabled + + + + EnabledSharedAddressSpace + + + + HostsOCSUsers + + + + IsLocal + + + + AutodiscoverUrl + + + + + + + + DisplayHostingProviderExtendedView + + Microsoft.Rtc.Management.WritableConfig.Settings.Edge.Hosted.DisplayHostingProviderExtended + + + + + + + + Identity + + + + Name + + + + ProxyFqdn + + + + VerificationLevel + + + + Enabled + + + + EnabledSharedAddressSpace + + + + HostsOCSUsers + + + + IsLocal + + + + AutodiscoverUrl + + + + IsTenantVisible + + + + + + + + ClsTest + + Microsoft.Rtc.Management.Hosted.Cls.TestOutput + + + + + + + + TestName + + + + Value + + + + Result + + + + Passed + + + + + + + + ClsCacheFileInfo + + Microsoft.Rtc.Management.Hosted.Cls.ClsCacheFileInfo + + + + + + 35 + + + + 24 + + + + + + + + + + File + + + LastWriteTimeUtc + + + Length + + + + + + + + MachineProcess + + Microsoft.Rtc.Management.Hosted.Common.MachineProcess + + + + + + 35 + + + + 10 + + + + 18 + + + + 12 + + + + 12 + + + + 25 + + + + 85 + + + + + + + Name + + + ProcessId + + + WorkingSetSizeMB + + + Threads + + + Handles + + + ; + + + CommandLine + + + + + + + + MachineService + + Microsoft.Rtc.Management.Hosted.Common.MachineService + + + + + + 8 + + + + 30 + + + + 50 + + + + + + + Status + + + Name + + + DisplayName + + + + + + + + QFE + + Microsoft.Rtc.Management.Hosted.Common.QFE + + + + + + 12 + + + + 22 + + + + 27 + + + + 28 + + + + + + + HotFixId + + + Description + + + InstalledBy + + + InstalledOn + + + + + + + + Summary + + Microsoft.Rtc.Management.Hosted.MeetingMigration.Types.Summary + + + + + + 12 + + + + 22 + + + + + + + State + + + UserCount + + + + + + + + HDInfo + + Microsoft.Rtc.Management.Hosted.Common.HDInfo + + + + + + 15 + + + + 15 + + + + 15 + + + + 15 + + + + + + + Id + + + FreeMB + + + SizeMB + + + ; + + + + + + + + MachineStatus + + Microsoft.Rtc.Management.Hosted.Common.MachineStatus + + + + + + + + ComputerName + + + + ProductVersion + + + + BuildBranch + + + + OSVersion + + + + MSSQLVersion + + + + Uptime + + + + ; + + + + ProcessorUsage + + + + ; + + + + ; + + + + ; + + + + ; + + + + ; + + + + ; + + + + + + + + MaintenanceModeMachines + + Microsoft.Rtc.Management.Hosted.Cls.MaintenanceModeMachineInfo + + + + + + 35 + + + + 20 + + + + 30 + + + + 30 + + + + 30 + + + + + + + DisplayName + + + InMaintenanceMode + + + StartTime + + + User + + + Reason + + + + + + + + SyntheticTransactionsDebugPresenceTaskOutputView + + Microsoft.Rtc.SyntheticTransactions.Activities.Database.UserPresenceStateTaskOutput + + + + + + + + PublisherFrontEnds + + + + SubscriberFrontEnds + + + + PublisherFeFqdn + + + + PublisherPoolFqdn + + + + SubscriberFeFqdn + + + + SubscriberPoolFqdn + + + + SubscribeContainerInfo + + + + ; + + + + ; + + + + ; + + + + Discrepancies + + + + + + + + PublisherContainerInfo + + Microsoft.Rtc.SyntheticTransactions.Activities.Database.PublisherContainerInfo + + + + + + 25 + + + + 10 + + + + 10 + + + + 27 + + + + 25 + + + + + + + CategoryName + + + ContainerNum + + + Version + + + LastPubTime + + + OriginatedFrontEnd + + + + + + + + SubscribeContainerInfo + + Microsoft.Rtc.SyntheticTransactions.Activities.Database.SubscribeContainerInfo + + + + + + 10 + + + + 15 + + + + 10 + + + + 10 + + + + 25 + + + + + + + ContainerNum + + + HowMatched + + + Rank1 + + + Rank2 + + + OriginatedFrontEnd + + + + + + + + ConferencingBridge + + Microsoft.Rtc.Management.Hosted.Cbd.ConferencingBridge + + + + + + + Identity + + + Name + + + Region + + + + DisplayDefaultServiceNumber + + + IsDefault + + + + DisplayServiceNumbers + + + TenantId + + + + + + + + ConferencingTenant + + Microsoft.Rtc.Management.Hosted.Cbd.ConferencingTenant + + + + + + + TenantId + + + + DisplayDefaultBridge + + + + DisplayBridges + + + AnnoucementsEnabled + + + NameRecordingEnabled + + + + + + + + ConferencingUserState + + Microsoft.Rtc.Management.Hosted.Cbd.ConferencingUserState + + + + + + + Identity + + + SipAddress + + + DisplayName + + + PstnConferencingLicenseState + + + Provider + + + Domain + + + TollNumber + + + TollFreeNumbers + + + ConferenceId + + + Url + + + + + + + + OnlineDialinConferencingServiceConfiguration + + Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialinConferencingServiceConfiguration + + + + + + + AnonymousCallerGracePeriod + + + AnonymousCallerMeetingRuntime + + + AuthenticatedCallerMeetingRuntime + + + AvailableCountries + + + + + + + + LocalSubscribeInfo + + Microsoft.Rtc.SyntheticTransactions.Activities.Database.LocalSubscribeInfo + + + + + + 10 + + + + 10 + + + + 15 + + + + 27 + + + + 25 + + + + + + + DeliveryId + + + ContainerNum + + + CategoryName + + + LastChanged + + + OriginatedFrontEnd + + + + + + + + OnlineDialinNumberMap + + Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialInConferencingNumberMap + + + + + + + Identity + + + Geocodes + + + + + + + + OnlineDialInConferencingMarketProfile + + Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialInConferencingMarketProfile + + + + + + + Identity + + + Code + + + NumberMaps + + + + + + + + DisplayGraphApiConfigurationView + + Microsoft.Rtc.Management.WritableConfig.Settings.GraphApiConfiguration.DisplayGraphApiConfiguration + + + + + + + Identity + + + LoginUri + + + GraphUri + + + ClientId + + + GraphLookupEnabled + + + GraphReadWriteEnabled + + + AdminAuthGraphEnabled + + + TenantRemotePowershellClientId + + + + + + + + PersonName + + Microsoft.Rtc.Management.Hosted.Online.Models.PersonName + + + + + + + FirstName + + + MiddleName + + + LastName + + + DisplayName + + + + + + + + StatusRecord + + Microsoft.Rtc.Management.Hosted.Online.Models.StatusRecord + + + + + + + Type + + + Status + + + Id + + + StatusCode + + + Message + + + StatusTimestamp + + + + + + + + ApplicationInstanceSummary + + Microsoft.Rtc.Management.Hosted.Online.Models.ApplicationInstanceSummary + + + + + + + Id + + + TenantId + + + UserPrincipalName + + + ApplicationId + + + ConfigurationType + + + DisplayName + + + PhoneNumber + + + ConfigurationId + + + ConfigurationName + + + IsOnprem + + + + + + + + FindApplicationInstanceResult + + Microsoft.Rtc.Management.Hosted.Online.Models.FindApplicationInstanceResult + + + + + + + Id + + + Name + + + TelephoneNumber + + + + + + + + ApplicationInstanceAssociation + + Microsoft.Rtc.Management.Hosted.Online.Models.ApplicationInstanceAssociation + + + + + + + Id + + + ConfigurationType + + + ConfigurationId + + + CallPriority + + + + + + + + AssociationOperationOutput + + Microsoft.Rtc.Management.Hosted.Online.Models.AssociationOperationOutput + + + + + + + + DisplayResults + + + + + + + + AssociationOperationResult + + Microsoft.Rtc.Management.Hosted.Online.Models.AssociationOperationResult + + + + + + + Id + + + ConfigurationType + + + ConfigurationId + + + Result + + + StatusCode + + + StatusMessage + + + + + + + + BatchAssignPolicyOutput + + Microsoft.Rtc.Management.Hosted.Online.Models.BatchAssignPolicyOutput + + + + + + + PolicyName + + + PolicyType + + + Succeeded + + + + DisplayFailedResults + + + + + + + + BatchAssignPolicyFailedResult + + Microsoft.Rtc.Management.Hosted.Online.Models.BatchAssignPolicyFailedResult + + + + + + + Identity + + + ErrorCategory + + + ErrorDetails + + + + + + + + AudioFile + + Microsoft.Rtc.Management.Hosted.Online.Models.AudioFile + + + + + + + Id + + + FileName + + + ApplicationId + + + + + + + + TimeRange + + Microsoft.Rtc.Management.Hosted.Online.Models.TimeRange + + + + + + + Start + + + End + + + + + + + + DateTimeRange + + Microsoft.Rtc.Management.Hosted.Online.Models.DateTimeRange + + + + + + + + DisplayStart + + + + DisplayEnd + + + + + + + + WeeklyRecurrentSchedule + + Microsoft.Rtc.Management.Hosted.Online.Models.WeeklyRecurrentSchedule + + + + + + + ComplementEnabled + + + + DisplayMondayHours + + + + DisplayTuesdayHours + + + + DisplayWednesdayHours + + + + DisplayThursdayHours + + + + DisplayFridayHours + + + + DisplaySaturdayHours + + + + DisplaySundayHours + + + + + + + + FixedSchedule + + Microsoft.Rtc.Management.Hosted.Online.Models.FixedSchedule + + + + + + + + DisplayDateTimeRanges + + + + + + + + Schedule + + Microsoft.Rtc.Management.Hosted.Online.Models.Schedule + + + + + + + Id + + + Name + + + Type + + + + DisplayWeeklyRecurrentSchedule + + + + DisplayFixedSchedule + + + + DisplayAssociatedConfigurationIds + + + + + + + + Voice + + Microsoft.Rtc.Management.Hosted.OAA.Models.Voice + + + + + + + Name + + + Id + + + + + + + + Language + + Microsoft.Rtc.Management.Hosted.OAA.Models.Language + + + + + + + Id + + + DisplayName + + + + DisplayVoices + + + VoiceResponseSupported + + + + + + + + Prompt + + Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt + + + + + + + ActiveType + + + TextToSpeechPrompt + + + + DisplayAudioFilePrompt + + + + + + + + MenuOption + + Microsoft.Rtc.Management.Hosted.OAA.Models.MenuOption + + + + + + + Action + + + DtmfResponse + + + VoiceResponses + + + + DisplayCallTarget + + + + DisplayPrompt + + + Description + + + + + + + + Menu + + Microsoft.Rtc.Management.Hosted.OAA.Models.Menu + + + + + + + Name + + + + DisplayPrompts + + + + DisplayMenuOptions + + + DialByNameEnabled + + + DirectorySearchMethod + + + + + + + + CallFlow + + Microsoft.Rtc.Management.Hosted.OAA.Models.CallFlow + + + + + + + Id + + + Name + + + + DisplayGreetings + + + + DisplayMenu + + + ForceListenMenuEnabled + + + + + + + + TimeZone + + Microsoft.Rtc.Management.Hosted.OAA.Models.TimeZone + + + + + + + Id + + + DisplayName + + + + + + + + CallableEntity + + Microsoft.Rtc.Management.Hosted.OAA.Models.CallableEntity + + + + + + + Id + + + Type + + + EnableTranscription + + + EnableSharedVoicemailSystemPromptSuppression + + + CallPriority + + + + + + + + CallHandlingAssociation + + Microsoft.Rtc.Management.Hosted.OAA.Models.CallHandlingAssociation + + + + + + + Type + + + ScheduleId + + + CallFlowId + + + Enabled + + + + + + + + DialScope + + Microsoft.Rtc.Management.Hosted.OAA.Models.DialScope + + + + + + + Type + + + + DisplayGroupScope + + + + + + + + GroupDialScope + + Microsoft.Rtc.Management.Hosted.OAA.Models.GroupDialScope + + + + + + + GroupIds + + + + + + + + DirectoryLookupScope + + Microsoft.Rtc.Management.Hosted.OAA.Models.DirectoryLookupScope + + + + + + + + DisplayInclusionScope + + + + DisplayExclusionScope + + + + + + + + TenantInformation + + Microsoft.Rtc.Management.Hosted.OAA.Models.TenantInformation + + + + + + + DefaultLanguageId + + + DefaultTimeZoneId + + + FlightedFeatures + + + + + + + + StatusRecord + + Microsoft.Rtc.Management.Hosted.OAA.Models.StatusRecord + + + + + + + Type + + + Status + + + Id + + + ErrorCode + + + Message + + + StatusTimestamp + + + + + + + + Endpoint + + Microsoft.Rtc.Management.Hosted.Online.Models.Endpoint + + + + + + + Id + + + DisplayName + + + SipUri + + + LineUri + + + + + + + + + AutoAttendant + + Microsoft.Rtc.Management.Hosted.OAA.Models.AutoAttendant + + + + + + + Identity + + + TenantId + + + Name + + + LanguageId + + + VoiceId + + + + DisplayDefaultCallFlow + + + + DisplayOperator + + + TimeZoneId + + + VoiceResponseEnabled + + + + DisplayCallFlows + + + + DisplaySchedules + + + + DisplayCallHandlingAssociations + + + + DisplayStatus + + + DialByNameResourceId + + + + DisplayDirectoryLookupScope + + + ApplicationInstances + + + GreetingsSettingAuthorizedUsers + + + UserNameExtension + + + + + + + + OrgAutoAttendant + + Microsoft.Rtc.Management.Hosted.OAA.Models.OrgAutoAttendant + + + + + + + PrimaryUri + + + TenantId + + + Name + + + LineUris + + + LanguageId + + + VoiceId + + + + DisplayDefaultCallFlow + + + + DisplayOperator + + + TimeZoneId + + + VoiceResponseEnabled + + + + DisplayCallFlows + + + + DisplaySchedules + + + + DisplayCallHandlingAssociations + + + + DisplayStatus + + + DialByNameResourceId + + + + DisplayDirectoryLookupScope + + + + + + + + OaaHolidayImportResult + + Microsoft.Rtc.Management.Hosted.OAA.Models.HolidayImportResult + + + + + + + Name + + + + DisplayDateTimeRanges + + + Succeeded + + + FailureReason + + + + + + + + Summary + + Microsoft.Rtc.Management.Hosted.OAA.Models.HolidayImportResult + + + + + + 24 + + + + 40 + + + + 10 + + + + 60 + + + + + + + Name + + + DisplayDateTimeRanges + + + Succeeded + + + FailureReason + + + + + + + + OaaHolidays + + Microsoft.Rtc.Management.Hosted.OAA.Models.HolidayVisRecord + + + + + + + Year + + + Name + + + + DisplayDateTimeRanges + + + + DisplayGreetings + + + + DisplayCallAction + + + + + + + + Year + + Microsoft.Rtc.Management.Hosted.OAA.Models.HolidayVisRecord + + + Year + + + + + + 24 + + + + 40 + + + + 60 + + + + 60 + + + + + + + Name + + + DisplayDateTimeRanges + + + DisplayGreetings + + + DisplayCallAction + + + + + + + + TransferTarget + + Microsoft.Rtc.Management.Hosted.Voicemail.Models.TransferTarget + + + + + + + TenantId + + + SipUri + + + TelUri + + + ObjectId + + + Type + + + RawInput + + + + + + + + VoicemailUserSettings + + Microsoft.Rtc.Management.Hosted.Voicemail.Models.VoicemailUserSettings + + + + + + + VoicemailEnabled + + + PromptLanguage + + + OofGreetingEnabled + + + OofGreetingFollowAutomaticRepliesEnabled + + + ShareData + + + CallAnswerRule + + + DefaultGreetingPromptOverwrite + + + DefaultOofGreetingPromptOverwrite + + + + DisplayTransferTarget + + + + + + + + HuntGroup + + Microsoft.Rtc.Management.Hosted.HuntGroup.Models.HuntGroup + + + + + + + + TenantId + + + + Name + + + + PrimaryUri + + + + LineUri + + + + RoutingMethod + + + + DisplayDistributionLists + + + + DistributionListsLastExpanded + + + + DisplayAgents + + + + AllowOptOut + + + + AgentsCapped + + + + AgentsInSyncWithDistributionLists + + + + AgentAlertTime + + + + OverflowThreshold + + + + OverflowAction + + + + OverflowActionTarget + + + + TimeoutThreshold + + + + TimeoutAction + + + + TimeoutActionTarget + + + + WelcomeMusicFileName + + + + UseDefaultMusicOnHold + + + + MusicOnHoldFileName + + + + DisplayStatistics + + + + + + + + CallQueue + + Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue + + + + + + + + TenantId + + + + Name + + + + Identity + + + + RoutingMethod + + + + DisplayDistributionLists + + + + DisplayUsers + + + + DistributionListsLastExpanded + + + + DisplayAgents + + + + AllowOptOut + + + + ConferenceMode + + + + PresenceBasedRouting + + + + AgentsCapped + + + + AgentsInSyncWithDistributionLists + + + + AgentAlertTime + + + + LanguageId + + + + OverflowThreshold + + + + OverflowAction + + + + OverflowActionTargetId + + + + OverflowSharedVoicemailTextToSpeechPrompt + + + + OverflowSharedVoicemailAudioFilePrompt + + + + OverflowSharedVoicemailAudioFilePromptFileName + + + + EnableOverflowSharedVoicemailTranscription + + + + TimeoutThreshold + + + + TimeoutAction + + + + TimeoutActionTargetId + + + + TimeoutSharedVoicemailTextToSpeechPrompt + + + + TimeoutSharedVoicemailAudioFilePrompt + + + + TimeoutSharedVoicemailAudioFilePromptFileName + + + + EnableTimeoutSharedVoicemailTranscription + + + + WelcomeMusicFileName + + + + UseDefaultMusicOnHold + + + + MusicOnHoldFileName + + + + DisplayStatistics + + + + DisplayApplicationInstances + + + + ChannelId + + + IsCallbackEnabled + + + CallbackRequestDtmf + + + WaitTimeBeforeOfferingCallbackInSecond + + + NumberOfCallsInQueueBeforeOfferingCallback + + + CallToAgentRatioThresholdBeforeOfferingCallback + + + CallbackOfferAudioFilePromptResourceId + + + CallbackOfferAudioFilePromptFileName + + + CallbackOfferTextToSpeechPrompt + + + ServiceLevelThresholdResponseTimeInSecond + + + + CallbackEmailNotificationTargetId + + + + DisplayOboResourceAccounts + + + ShiftsTeamId + + + ShiftsSchedulingGroupId + + + ComplianceRecordingForCallQueueTemplateId + + + TextAnnouncementForCR + + + CustomAudioFileAnnouncementForCR + + + TextAnnouncementForCRFailure + + + CustomAudioFileAnnouncementForCRFailure + + + SharedCallQueueHistoryTemplateId + + + + + + + + HuntGroupTenantInformation + + Microsoft.Rtc.Management.Hosted.HuntGroup.Models.HuntGroupTenantInformation + + + + + + + FlightedFeatures + + + + + + + + StatusRecord + + Microsoft.Rtc.Management.Hosted.HuntGroup.Models.StatusRecord + + + + + + + WarningCode + + + Message + + + + + + + + ServiceIdView + + Microsoft.Rtc.Management.Core.WritableConfig.PstnGatewayWritableServiceId + + + + + + + + ; + + + + + + + + OcsAdApplicationContactView + + Microsoft.Rtc.Management.ADConnect.Schema.OCSADApplicationContact + + + + + + + + Identity + + + + RegistrarPool + + + + HomeServer + + + + OwnerUrn + + + + SipAddress + + + + DisplayName + + + + DisplayNumber + + + + LineURI + + + + PrimaryLanguage + + + + SecondaryLanguages + + + + EnterpriseVoiceEnabled + + + + ExUmEnabled + + + + Enabled + + + + + + + + OcsVideoRoomSystemView + + Microsoft.Rtc.Management.ADConnect.Schema.OCSADVideoRoomSystem + + + + + + + + Identity + + + + RegistrarPool + + + + SipAddress + + + + DisplayName + + + + LineURI + + + + Enabled + + + + + + + + OcsHybridApplicationEndpointView + + Microsoft.Rtc.Management.ADConnect.Schema.OCSADApplicationEndpoint + + + + + + + + Identity + + + + ApplicationId + + + + OwnerUrn + + + + EnterpriseVoiceEnabled + + + + Enabled + + + + SipAddress + + + + DisplayName + + + + LineURI + + + + + + + + OcsUserView + + Microsoft.Rtc.Management.ADConnect.Schema.OCSADUser + + + + + + + + Identity + + + + VoicePolicy + + + + VoiceRoutingPolicy + + + + ConferencingPolicy + + + + PresencePolicy + + + + DialPlan + + + + LocationPolicy + + + + ClientPolicy + + + + ClientVersionPolicy + + + + ArchivingPolicy + + + + ExchangeArchivingPolicy + + + + PinPolicy + + + + ExternalAccessPolicy + + + + MobilityPolicy + + + + UserServicesPolicy + + + + CallViaWorkPolicy + + + + ThirdPartyVideoSystemPolicy + + + + HostedVoiceMail + + + + HostedVoicemailPolicy + + + + IPPhonePolicy + + + + HostingProvider + + + + RegistrarPool + + + + Enabled + + + + SipAddress + + + + LineURI + + + + EnterpriseVoiceEnabled + + + + ExUmEnabled + + + + HomeServer + + + + DisplayName + + + + SamAccountName + + + + + + + + OcsAnalogDeviceView + + Microsoft.Rtc.Management.ADConnect.Schema.OCSADAnalogDeviceContact + + + + + + + + Identity + + + + VoicePolicy + + + + VoiceRoutingPolicy + + + + RegistrarPool + + + + Gateway + + + + AnalogFax + + + + Enabled + + + + SipAddress + + + + LineURI + + + + DisplayName + + + + DisplayNumber + + + + ExUmEnabled + + + + + + + + OcsExUmContactView + + Microsoft.Rtc.Management.ADConnect.Schema.OCSADExUmContact + + + + + + + + Identity + + + + RegistrarPool + + + + HomeServer + + + + Enabled + + + + SipAddress + + + + LineURI + + + + OtherIpPhone + + + + AutoAttendant + + + + IsSubscriberAccess + + + + Description + + + + DisplayName + + + + DisplayNumber + + + + HostedVoicemailPolicy + + + + ExUmEnabled + + + + + + + + OcsCommonAreaPhoneView + + Microsoft.Rtc.Management.ADConnect.Schema.OCSADCommonAreaPhoneContact + + + + + + + + Identity + + + + RegistrarPool + + + + Enabled + + + + SipAddress + + + + ClientPolicy + + + + PinPolicy + + + + VoicePolicy + + + + VoiceRoutingPolicy + + + + MobilityPolicy + + + + ConferencingPolicy + + + + LineURI + + + + DisplayNumber + + + + DisplayName + + + + Description + + + + ExUmEnabled + + + + + + + + OcsAccessNumberView + + Microsoft.Rtc.Management.Xds.AccessNumber + + + + + + + + Identity + + + + PrimaryUri + + + + DisplayName + + + + DisplayNumber + + + + LineUri + + + + PrimaryLanguage + + + + SecondaryLanguages + + + + Pool + + + + HostingProvider + + + + Regions + + + + ExternalAccessPolicy + + + + + + + + AgentView + + Microsoft.Rtc.Rgs.Management.WritableSettings.Agent + + + + + + + + UserSid + + + + DisplayName + + + + SipAddress + + + + + + + + AnswerView + + Microsoft.Rtc.Rgs.Management.WritableSettings.Answer + + + + + + + + VoiceResponseList + + + + Action + + + + Name + + + + DtmfResponse + + + + + + + + CallActionView + + Microsoft.Rtc.Rgs.Management.WritableSettings.CallAction + + + + + + + + Prompt + + + + Question + + + + Action + + + + QueueID + + + + Uri + + + + + + + + PromptView + + Microsoft.Rtc.Rgs.Management.WritableSettings.Prompt + + + + + + + + AudioFilePrompt + + + + TextToSpeechPrompt + + + + + + + + AudioFileView + + Microsoft.Rtc.Rgs.Management.WritableSettings.AudioFile + + + + + + + + OriginalFileName + + + + UniqueName + + + + + + + + QuestionView + + Microsoft.Rtc.Rgs.Management.WritableSettings.Question + + + + + + + + Prompt + + + + InvalidAnswerPrompt + + + + NoAnswerPrompt + + + + AnswerList + + + + Name + + + + + + + + BusinessHoursView + + Microsoft.Rtc.Rgs.Management.WritableSettings.BusinessHours + + + + + + + + Identity + + + + MondayHours1 + + + + MondayHours2 + + + + TuesdayHours1 + + + + TuesdayHours2 + + + + WednesdayHours1 + + + + WednesdayHours2 + + + + ThursdayHours1 + + + + ThursdayHours2 + + + + FridayHours1 + + + + FridayHours2 + + + + SaturdayHours1 + + + + SaturdayHours2 + + + + SundayHours1 + + + + SundayHours2 + + + + Name + + + + Description + + + + Custom + + + + OwnerPool + + + + + + + + TimeRangeView + + Microsoft.Rtc.Rgs.Management.WritableSettings.TimeRange + + + + + + + + Name + + + + OpenTime + + + + CloseTime + + + + + + + + AgentGroupView + + Microsoft.Rtc.Rgs.Management.WritableSettings.AgentGroup + + + + + + + + Identity + + + + Name + + + + Description + + + + ParticipationPolicy + + + + AgentAlertTime + + + + RoutingMethod + + + + DistributionGroupAddress + + + + OwnerPool + + + + AgentsByUri + + + + + + + + AgentGroupsToAgentsMapView + + Microsoft.Rtc.Rgs.Management.WritableSettings.AgentGroupsToAgentsMap + + + + + + + + Position + + + + + + + + HolidayView + + Microsoft.Rtc.Rgs.Management.WritableSettings.Holiday + + + + + + + + Name + + + + StartDate + + + + EndDate + + + + + + + + HolidaySetView + + Microsoft.Rtc.Rgs.Management.WritableSettings.HolidaySet + + + + + + + + Identity + + + + HolidayList + + + + Name + + + + OwnerPool + + + + + + + + ManagerView + + Microsoft.Rtc.Rgs.Management.WritableSettings.Manager + + + + + + + + UserSid + + + + SipAddress + + + + + + + + OwnerPoolView + + Microsoft.Rtc.Rgs.Management.WritableSettings.OwnerPool + + + + + + + + Fqdn + + + + + + + + QueueView + + Microsoft.Rtc.Rgs.Management.WritableSettings.Queue + + + + + + + + Identity + + + + TimeoutAction + + + + OverflowAction + + + + Name + + + + Description + + + + TimeoutThreshold + + + + OverflowThreshold + + + + OverflowCandidate + + + + OwnerPool + + + + AgentGroupIDList + + + + + + + + QueuesToAgentGroupsMapView + + Microsoft.Rtc.Rgs.Management.WritableSettings.QueuesToAgentGroupsMap + + + + + + + + Position + + + + + + + + ServiceSettingsView + + Microsoft.Rtc.Rgs.Management.WritableSettings.ServiceSettings + + + + + + + + Identity + + + + DefaultMusicOnHoldFile + + + + AgentRingbackGracePeriod + + + + DisableCallContext + + + + + + + + WorkflowView + + Microsoft.Rtc.Rgs.Management.WritableSettings.Workflow + + + + + + + + Identity + + + + NonBusinessHoursAction + + + + HolidayAction + + + + DefaultAction + + + + CustomMusicOnHoldFile + + + + Name + + + + Description + + + + PrimaryUri + + + + Active + + + + Language + + + + TimeZone + + + + BusinessHoursID + + + + Anonymous + + + + Managed + + + + OwnerPool + + + + DisplayNumber + + + + EnabledForFederation + + + + LineUri + + + + HolidaySetIDList + + + + ManagersByUri + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/ESRPClientLogs1001085417078.json b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/ESRPClientLogs1001085417078.json new file mode 100644 index 000000000000..0bcf9b1b11d5 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/ESRPClientLogs1001085417078.json @@ -0,0 +1 @@ +{"StdOut":"******************************************************************************\r\nMachine Information\r\nMachine Name: at-greenXRHDM6\r\nMachine Ip: 10.211.0.35\r\nOperating System: Microsoft Windows NT 10.0.26100.0\r\nUser Name: at-greenXRHDM6$\r\nProcessor Count: 16\r\nProcess Name: EsrpClient\r\nProcess Id: 12620\r\nCaller Program: EsrpClient.exe\r\nIdentity: NT AUTHORITY\\NETWORK SERVICE\r\nProcess Version: 1.2.142+Branch.master.Sha.90404b43284ec55b3e2251d0e272f8932aa583e2\r\nProcess Bitness: 64 bit\r\n******************************************************************************\r\nCommandline received: Sign | -a | c:\\Temp\\AzureTemp\\TFSTemp\\vctmp3836_732621.json | -p | c:\\Temp\\AzureTemp\\TFSTemp\\vctmp3836_111037.json | -c | c:\\Temp\\AzureTemp\\TFSTemp\\vctmp3836_983718.json | -i | c:\\Temp\\AzureTemp\\TFSTemp\\vctmp16552_249474.json | -o | c:\\Temp\\AzureTemp\\TFSTemp\\v3AFC7.tmp | -l | Verbose ESRP session Id is: 66dab103-b92d-4f32-9b63-9c12aa64e33f\r\n2025-10-01T08:54:04.7640203Z:Command you are trying to use is: Sign\r\n2025-10-01T08:54:04.7708276Z:Correlation Vector for this run is: 09677df8-c683-43ee-a868-1ff194b9c298\r\n2025-10-01T08:54:04.7708276Z:Groupid for this run is empty\r\n2025-10-01T08:54:04.8956931Z:request signing cert being used is this thumbprint: F388C0BB292D7EA97B143D697E3A06B712A7DA78 in store LocalMachine\\My\r\n2025-10-01T08:54:04.8956931Z:Both certificates validation passed.\r\n2025-10-01T08:54:04.8977020Z:The auth cert we choose to use, subject name is: CN=0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f.microsoft.com, thumbprint is: 7C97C9D92D40890074C31B2FE8A8C25E7DB98A78\r\n2025-10-01T08:54:05.0004372Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:04Z] ConfidentialClientApplication 37368736 created\r\n2025-10-01T08:54:05.0024508Z:Gateway Client: Enter AuthenticationProvider, no calls to AAD yet, client id is 0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f, and resource url is https://msazurecloud.onmicrosoft.com/api.esrp.microsoft.com, tenant id is 33e01921-4d64-4f8c-a055-5bdaffd5e33d\r\n2025-10-01T08:54:05.0231481Z:There is no memory mapped file accociated with this name: api.esrp.microsoft.com_0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f_33e01921-4d64-4f8c-a055-5bdaffd5e33d\r\n2025-10-01T08:54:05.0283815Z:AAD auth caching is in use with this name: api.esrp.microsoft.com_0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f_33e01921-4d64-4f8c-a055-5bdaffd5e33d\r\n2025-10-01T08:54:05.0630559Z:Validate and Renew Token if necessary finished: 00:00:00.0309379\r\n2025-10-01T08:54:05.1802170Z:Session request is: {\r\n \"expiresAfter\": \"3.00:00:00\",\r\n \"partitionCount\": 0,\r\n \"isProvisionStorage\": true,\r\n \"isLegacyCopsModel\": false,\r\n \"commandName\": \"Sign\",\r\n \"intent\": \"digestsign\",\r\n \"contentType\": \"Bin\",\r\n \"contentOrigin\": \"3rd Party\",\r\n \"productState\": null,\r\n \"audience\": \"External Broad\"\r\n}\r\n2025-10-01T08:54:05.2142799Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z] ConfidentialClientApplication 29578451 created\r\n2025-10-01T08:54:05.2142799Z:Gateway Client: Enter AuthenticationProvider, no calls to AAD yet, client id is 0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f, and resource url is https://msazurecloud.onmicrosoft.com/api.esrp.microsoft.com, tenant id is 33e01921-4d64-4f8c-a055-5bdaffd5e33d\r\n2025-10-01T08:54:05.2214329Z:Gateway Client: a new client and client id is created: 657591f3-1578-4b8a-ae04-ed5b1d2bacd2\r\n2025-10-01T08:54:05.2833584Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] MSAL MSAL.Desktop with assembly version '4.70.0.0'. CorrelationId(ab77b488-0329-4456-8a76-4141701ccbbe)\r\n2025-10-01T08:54:05.2984143Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] === AcquireTokenForClientParameters ===\r\nSendX5C: True\r\nForceRefresh: False\r\nAccessTokenHashToRefresh: False\r\n\r\n2025-10-01T08:54:05.3126256Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] \r\n=== Request Data ===\r\nAuthority Provided? - True\r\nScopes - https://msazurecloud.onmicrosoft.com/api.esrp.microsoft.com/.default\r\nExtra Query Params Keys (space separated) - \r\nApiId - AcquireTokenForClient\r\nIsConfidentialClient - True\r\nSendX5C - True\r\nLoginHint ? False\r\nIsBrokerConfigured - False\r\nHomeAccountId - False\r\nCorrelationId - ab77b488-0329-4456-8a76-4141701ccbbe\r\nUserAssertion set: False\r\nLongRunningOboCacheKey set: False\r\nRegion configured: \r\n\r\n2025-10-01T08:54:05.3135235Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] === Token Acquisition (ClientCredentialRequest) started:\r\n\t Scopes: https://msazurecloud.onmicrosoft.com/api.esrp.microsoft.com/.default\r\n\tAuthority Host: login.microsoftonline.com\r\n2025-10-01T08:54:05.3313856Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [Internal cache] Total number of cache partitions found while getting access tokens: 0\r\n2025-10-01T08:54:05.3313856Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [FindAccessTokenAsync] Discovered 0 access tokens in cache using partition key: 0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f_33e01921-4d64-4f8c-a055-5bdaffd5e33d_AppTokenCache\r\n2025-10-01T08:54:05.3313856Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [FindAccessTokenAsync] No access tokens found in the cache. Skipping filtering. \r\n2025-10-01T08:54:05.3420748Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [Instance Discovery] Instance discovery is enabled and will be performed\r\n2025-10-01T08:54:05.3464079Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [Region discovery] WithAzureRegion not configured. \r\n2025-10-01T08:54:05.3464079Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [Region discovery] Not using a regional authority. \r\n2025-10-01T08:54:05.3501710Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [Instance Discovery] Tried to use network cache provider for login.microsoftonline.com. Success? False. \r\n2025-10-01T08:54:05.3608975Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Fetching instance discovery from the network from host login.microsoftonline.com. \r\n2025-10-01T08:54:05.3798361Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Starting [Oauth2Client] Sending GET request \r\n2025-10-01T08:54:05.3840050Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Starting [HttpManager] ExecuteAsync\r\n2025-10-01T08:54:05.3900338Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [HttpManager] Sending request. Method: GET. Host: https://login.microsoftonline.com. Binding Certificate: False \r\n2025-10-01T08:54:05.7221789Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [HttpManager] Received response. Status code: OK. \r\n2025-10-01T08:54:05.7327215Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Finished [HttpManager] ExecuteAsync in 350 ms\r\n2025-10-01T08:54:05.7339629Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Finished [Oauth2Client] Sending GET request in 355 ms\r\n2025-10-01T08:54:05.7464599Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Starting [OAuth2Client] Deserializing response\r\n2025-10-01T08:54:05.9299240Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Finished [OAuth2Client] Deserializing response in 184 ms\r\n2025-10-01T08:54:05.9319285Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [Instance Discovery] Tried to use network cache provider for login.microsoftonline.com. Success? True. \r\n2025-10-01T08:54:05.9319285Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [Instance Discovery] After hitting the discovery endpoint, the network provider found an entry for login.microsoftonline.com ? True. \r\n2025-10-01T08:54:05.9355197Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Authority validation enabled? True. \r\n2025-10-01T08:54:05.9355197Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Authority validation - is known env? True. \r\n2025-10-01T08:54:05.9527328Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Starting TokenClient:SendTokenRequestAsync\r\n2025-10-01T08:54:05.9568333Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [TokenClient] Before adding the client assertion / secret\r\n2025-10-01T08:54:05.9578390Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Building assertion from certificate with clientId: 0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f at endpoint: https://login.microsoftonline.com/33e01921-4d64-4f8c-a055-5bdaffd5e33d/oauth2/v2.0/token\r\n2025-10-01T08:54:05.9578390Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Proceeding with JWT token creation and adding client assertion.\r\n2025-10-01T08:54:05.9940457Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [TokenClient] After adding the client assertion / secret\r\n2025-10-01T08:54:06.0032118Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] [Token Client] Fetching MsalTokenResponse .... \r\n2025-10-01T08:54:06.0032118Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Starting [Oauth2Client] Sending POST request \r\n2025-10-01T08:54:06.0095336Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Starting [HttpManager] ExecuteAsync\r\n2025-10-01T08:54:06.0095336Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] [HttpManager] Sending request. Method: POST. Host: https://login.microsoftonline.com. Binding Certificate: False \r\n2025-10-01T08:54:06.1059773Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] [HttpManager] Received response. Status code: OK. \r\n2025-10-01T08:54:06.1059773Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Finished [HttpManager] ExecuteAsync in 97 ms\r\n2025-10-01T08:54:06.1059773Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Finished [Oauth2Client] Sending POST request in 102 ms\r\n2025-10-01T08:54:06.1059773Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Starting [OAuth2Client] Deserializing response\r\n2025-10-01T08:54:06.1231308Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Finished [OAuth2Client] Deserializing response in 17 ms\r\n2025-10-01T08:54:06.1231308Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] ScopeSet was missing from the token response, so using developer provided scopes in the result. \r\n2025-10-01T08:54:06.1231308Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Finished TokenClient:SendTokenRequestAsync in 170 ms\r\n2025-10-01T08:54:06.1249866Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Checking client info returned from the server..\r\n2025-10-01T08:54:06.1253352Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Saving token response to cache..\r\n2025-10-01T08:54:06.1339807Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] \r\n[MsalTokenResponse]\r\nError: \r\nErrorDescription: \r\nScopes: https://msazurecloud.onmicrosoft.com/api.esrp.microsoft.com/.default\r\nExpiresIn: 86399\r\nRefreshIn: 43199\r\nAccessToken returned: True\r\nAccessToken Type: Bearer\r\nRefreshToken returned: False\r\nIdToken returned: False\r\nClientInfo returned: False\r\nFamilyId: \r\nWamAccountId exists: False\r\n2025-10-01T08:54:06.1350240Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] [SaveTokenResponseAsync] ID Token not present in response. \r\n2025-10-01T08:54:06.1362438Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Cannot determine home account ID - or id token or no client info and no subject \r\n2025-10-01T08:54:06.1411213Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] [SaveTokenResponseAsync] Entering token cache semaphore. Count Real semaphore: True. Count: 1.\r\n2025-10-01T08:54:06.1411213Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] [SaveTokenResponseAsync] Entered token cache semaphore. \r\n2025-10-01T08:54:06.1411213Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] [SaveTokenResponseAsync] Saving AT in cache and removing overlapping ATs...\r\n2025-10-01T08:54:06.1431259Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Looking for scopes for the authority in the cache which intersect with https://msazurecloud.onmicrosoft.com/api.esrp.microsoft.com/.default\r\n2025-10-01T08:54:06.1431259Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z] [Internal cache] Total number of cache partitions found while getting access tokens: 0\r\n2025-10-01T08:54:06.1431259Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Intersecting scope entries count - 0\r\n2025-10-01T08:54:06.1449186Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Not saving to ADAL legacy cache. \r\n2025-10-01T08:54:06.1449186Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] [SaveTokenResponseAsync] Released token cache semaphore. \r\n2025-10-01T08:54:06.1486739Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] \r\n\t=== Token Acquisition finished successfully:\r\n2025-10-01T08:54:06.1491522Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] AT expiration time: 10/2/2025 8:54:05 AM +00:00, scopes: https://msazurecloud.onmicrosoft.com/api.esrp.microsoft.com/.default. source: IdentityProvider\r\n2025-10-01T08:54:06.1491522Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Fetched access token from host login.microsoftonline.com. \r\n2025-10-01T08:54:06.1511578Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] \r\n[LogMetricsFromAuthResult] Cache Refresh Reason: NoCachedAccessToken\r\n[LogMetricsFromAuthResult] DurationInCacheInMs: 0\r\n[LogMetricsFromAuthResult] DurationTotalInMs: 846\r\n[LogMetricsFromAuthResult] DurationInHttpInMs: 426\r\n2025-10-01T08:54:06.1511578Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] TokenEndpoint: ****\r\n2025-10-01T08:54:06.1654484Z:Use AAD token. CERT\r\n2025-10-01T08:54:06.1750036Z:New Token Acquisition Time: 00:00:00.9366187\r\n2025-10-01T08:54:06.2075678Z:Gateway Client: the client id that is sending a request is: 657591f3-1578-4b8a-ae04-ed5b1d2bacd2\r\n2025-10-01T08:54:07.4024972Z:Gateway Client: response send time from cloud gateway: 2025-10-01T08:54:07.0409063+00:00\r\n2025-10-01T08:54:07.4024972Z:Gateway Client: response receive time from client SendAsync: 2025-10-01T08:54:07.4024972+00:00\r\n2025-10-01T08:54:07.4024972Z:Gateway Client: response duration time between cloud gateway and client SendAsync: 00:00:00.3615909\r\n2025-10-01T08:54:07.4893906Z:Session request requestid: 0cd4a227-2e49-4831-91bc-e5b7b1f0be66, and submission status is: Pass\r\n2025-10-01T08:54:07.5499219Z:Provision storage complete. Total shards: 100\r\n2025-10-01T08:54:07.5544544Z:Loading DigestSignErrorMappingCache mapping info\r\n2025-10-01T08:54:07.5804830Z:DigestSignErrorMappingCache from server, # of DigestSignOperationErrorPatterns object we get is :: \r\n2025-10-01T08:54:07.6335888Z:Consolidate DigestSignErrorMappingCache, # of DigestSignOperationErrorPatterns object we get is :: 34\r\n2025-10-01T08:54:07.6343279Z:Successfully retrieved policy: policy is {\"policy\":{\"id\":\"0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f-0\",\"workflowExecutionType\":3}}\r\n2025-10-01T08:54:07.6446930Z:Successfully get telemetry connection string: Endpo......\r\n2025-10-01T08:54:07.6466995Z:Warning: \r\n2025-10-01T08:54:07.6501437Z:IAuthInfo constructed: {\r\n \"authenticationType\": \"AAD_CERT\",\r\n \"clientId\": \"0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f\",\r\n \"tenantId\": \"33e01921-4d64-4f8c-a055-5bdaffd5e33d\",\r\n \"aadAuthorityBaseUri\": \"https://login.microsoftonline.com/\",\r\n \"authCert\": {\r\n \"storeLocation\": \"LocalMachine\",\r\n \"storeName\": \"My\",\r\n \"subjectName\": \"CN=0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f.microsoft.com\",\r\n \"sendX5c\": true,\r\n \"withAzureRegion\": false,\r\n \"getCertFromKeyVault\": false,\r\n \"keyVaultName\": null,\r\n \"keyVaultCertName\": null\r\n },\r\n \"requestSigningCert\": {\r\n \"storeLocation\": \"LocalMachine\",\r\n \"storeName\": \"My\",\r\n \"subjectName\": \"CN=0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f\",\r\n \"sendX5c\": false,\r\n \"withAzureRegion\": false,\r\n \"getCertFromKeyVault\": false,\r\n \"keyVaultName\": null,\r\n \"keyVaultCertName\": null\r\n },\r\n \"oAuthToken\": null,\r\n \"version\": \"1.0.0\",\r\n \"esrpClientId\": \"0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f\",\r\n \"federatedTokenData\": null,\r\n \"federatedTokenPath\": null\r\n}\r\n2025-10-01T08:54:07.6512257Z:IPolicyInfo constructed: {\r\n \"intent\": \"digestsign\",\r\n \"contentType\": \"Bin\",\r\n \"contentOrigin\": \"3rd Party\",\r\n \"productState\": null,\r\n \"audience\": \"External Broad\",\r\n \"version\": \"1.0.0\"\r\n}\r\n2025-10-01T08:54:07.6559153Z:IConfigInfo constructed: {\r\n \"esrpApiBaseUri\": \"https://api.esrp.microsoft.com/api/v2/\",\r\n \"esrpSessionTimeoutInSec\": 60,\r\n \"minThreadPoolThreads\": 64,\r\n \"maxDegreeOfParallelism\": 64,\r\n \"exponentialFirstFastRetry\": true,\r\n \"exponentialRetryCount\": 2,\r\n \"exponentialRetryDeltaBackOff\": \"00:00:05\",\r\n \"exponentialRetryMaxBackOff\": \"00:01:00\",\r\n \"exponentialRetryMinBackOff\": \"00:00:03\",\r\n \"appDataFolder\": \"C:\\\\Windows\\\\ServiceProfiles\\\\NetworkService\\\\AppData\\\\Local\",\r\n \"certificateCacheFolder\": null,\r\n \"version\": \"1.0.0\",\r\n \"exitOnFlaggedFile\": false,\r\n \"flaggedFileClientWaitTimeout\": \"1.00:00:00\",\r\n \"servicePointManagerDefaultConnectionLimit\": 64,\r\n \"isOnPremGateway\": false,\r\n \"diagnosticListeners\": null,\r\n \"securityProtocolType\": \"Tls12\",\r\n \"parallelOperationsInFileUploadDownload\": 300,\r\n \"maxTelemetryBuffer\": 200000,\r\n \"telemetryTimeoutInSec\": 0,\r\n \"resourceUri\": \"https://msazurecloud.onmicrosoft.com/api.esrp.microsoft.com\",\r\n \"cacheRootFolder\": null,\r\n \"cachedFileTTLInMin\": 7200\r\n}\r\n2025-10-01T08:54:07.9315962Z:Client Telemetry: Xpert agent is not running on the machine. Using events hub for processing client telemetry.\r\n2025-10-01T08:54:08.1322038Z:Key: TotalSignOperationDataCount, Value: 1\r\n2025-10-01T08:54:08.1520078Z:Start Time:10/1/2025 8:54:08 AM, Starting the sign workflow...\r\n2025-10-01T08:54:08.1638281Z:some input info: {\r\n \"contextData\": {\r\n \"build_buildnumber\": \"AzureDevOps_M261_20250915.2\",\r\n \"esrpClientVersion\": \"1.2.142+Branch.master.Sha.90404b43284ec55b3e2251d0e272f8932aa583e2\",\r\n \"userIpAddress\": \"10.211.0.35\",\r\n \"userAgent\": \"at-greenXRHDM6\"\r\n },\r\n \"sourceDirectory\": null,\r\n \"sourceLocation\": \"c:\\\\Temp\\\\AzureTemp\\\\o5t2bhbn.gqh\\\\manifest.cat\",\r\n \"destinationDirectory\": null,\r\n \"destinationLocation\": \"c:\\\\Temp\\\\AzureTemp\\\\o5t2bhbn.gqh\\\\manifest.cat\",\r\n \"sizeInBytes\": 0,\r\n \"name\": \"manifest.cat\",\r\n \"isSuccess\": null,\r\n \"operationStartedAt\": \"0001-01-01T00:00:00+00:00\",\r\n \"operationEndedAt\": \"0001-01-01T00:00:00+00:00\",\r\n \"operationDurationMS\": 0,\r\n \"processName\": \"EsrpClient\",\r\n \"processId\": 12620,\r\n \"processVersion\": \"1.2.142+Branch.master.Sha.90404b43284ec55b3e2251d0e272f8932aa583e2\",\r\n \"customerCorrelationId\": null,\r\n \"esrpClientSessionGuid\": \"66dab103-b92d-4f32-9b63-9c12aa64e33f\",\r\n \"callerProgram\": \"EsrpClient\",\r\n \"indentity\": \"NT AUTHORITY\\\\NETWORK SERVICE\",\r\n \"clientId\": \"0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f\",\r\n \"exceptionData\": null,\r\n \"apiBaseUrl\": \"https://api.esrp.microsoft.com/api/v2/\",\r\n \"handlerWorkflow\": \"Sign\",\r\n \"submissionRequest\": {\r\n \"contextData\": {\r\n \"build_buildnumber\": \"AzureDevOps_M261_20250915.2\",\r\n \"esrpClientVersion\": \"1.2.142+Branch.master.Sha.90404b43284ec55b3e2251d0e272f8932aa583e2\",\r\n \"userIpAddress\": \"10.211.0.35\",\r\n \"userAgent\": \"at-greenXRHDM6\"\r\n },\r\n \"groupId\": null,\r\n \"correlationVector\": \"09677df8-c683-43ee-a868-1ff194b9c298\",\r\n \"driEmail\": null,\r\n \"version\": \"1.0.0\"\r\n },\r\n \"policyInfo\": {\r\n \"intent\": \"digestsign\",\r\n \"contentType\": \"Bin\",\r\n \"contentOrigin\": \"3rd Party\",\r\n \"productState\": null,\r\n \"audience\": \"External Broad\",\r\n \"version\": \"1.0.0\"\r\n },\r\n \"osVersion\": \"Microsoft Windows NT 10.0.26100.0\",\r\n \"executingMachineIPAddress\": \"10.211.0.35\"\r\n}\r\n2025-10-01T08:54:08.2134377Z:Executing SignWorkflowType is DigestSignStaticAzure\r\n2025-10-01T08:54:08.2332335Z:Source file \"c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\" hashed in 4 ms\r\n2025-10-01T08:54:08.2878722Z:Thread: 1 - Certificate file mutex \"AYe1piBMWl6c+yAfCCK+GYCJgWyyp4b/mXvqszRe4cs=_CP-464321\" acquired (waited 0 ms).\r\nMSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:08Z] ConfidentialClientApplication 44123454 created\r\n2025-10-01T08:54:08.3065632Z:Gateway Client: Enter AuthenticationProvider, no calls to AAD yet, client id is 0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f, and resource url is https://msazurecloud.onmicrosoft.com/api.esrp.microsoft.com, tenant id is 33e01921-4d64-4f8c-a055-5bdaffd5e33d\r\n2025-10-01T08:54:08.3070274Z:Cached token found with name: api.esrp.microsoft.com_0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f_33e01921-4d64-4f8c-a055-5bdaffd5e33d\r\n2025-10-01T08:54:08.3070274Z:AAD auth caching is in use with this name: api.esrp.microsoft.com_0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f_33e01921-4d64-4f8c-a055-5bdaffd5e33d\r\n2025-10-01T08:54:08.5082531Z:Global cached token is valid from 10/1/2025 8:49:06 AM to 10/2/2025 8:54:06 AM (UTC). Total validity from current time is 86397.4917469 seconds\r\n2025-10-01T08:54:08.5082531Z:Validate and Renew Token if necessary finished: 00:00:00.2016961\r\nMSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:08Z] ConfidentialClientApplication 20852350 created\r\n2025-10-01T08:54:08.5082531Z:Gateway Client: Enter AuthenticationProvider, no calls to AAD yet, client id is 0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f, and resource url is https://msazurecloud.onmicrosoft.com/api.esrp.microsoft.com, tenant id is 33e01921-4d64-4f8c-a055-5bdaffd5e33d\r\n2025-10-01T08:54:08.5082531Z:Gateway Client: a new client and client id is created: 248a4185-e5d4-4157-9d2f-97af0dc508c7\r\n2025-10-01T08:54:08.5082531Z:10/1/2025 8:54:08 AM +00:00:Digest Signing Factory Client type loaded is - [AzureGatewaySubmitter].\r\n2025-10-01T08:54:08.5183009Z:Existing Token Acquisition Time: 00:00:00.0004403\r\n2025-10-01T08:54:08.5964809Z:Gateway Client: the client id that is sending a request is: 248a4185-e5d4-4157-9d2f-97af0dc508c7\r\n2025-10-01T08:54:09.1072230Z:Gateway Client: response send time from cloud gateway: 2025-10-01T08:54:09.0435903+00:00\r\n2025-10-01T08:54:09.1072230Z:Gateway Client: response receive time from client SendAsync: 2025-10-01T08:54:09.1072230+00:00\r\n2025-10-01T08:54:09.1072230Z:Gateway Client: response duration time between cloud gateway and client SendAsync: 00:00:00.0636327\r\n2025-10-01T08:54:09.1092296Z:Gateway Client: response time after converting from http response to object: 2025-10-01T08:54:09.1092296+00:00\r\n2025-10-01T08:54:09.6351902Z:Existing Token Acquisition Time: 00:00:00.0005160\r\n2025-10-01T08:54:09.6397527Z:Gateway Client: the client id that is sending a request is: 248a4185-e5d4-4157-9d2f-97af0dc508c7\r\n2025-10-01T08:54:10.2161062Z:Gateway Client: response send time from cloud gateway: 2025-10-01T08:54:10.1268031+00:00\r\n2025-10-01T08:54:10.2161062Z:Gateway Client: response receive time from client SendAsync: 2025-10-01T08:54:10.2161062+00:00\r\n2025-10-01T08:54:10.2161062Z:Gateway Client: response duration time between cloud gateway and client SendAsync: 00:00:00.0893031\r\n2025-10-01T08:54:10.2197530Z:Gateway Client: response time after converting from http response to object: 2025-10-01T08:54:10.2197530+00:00\r\n2025-10-01T08:54:10.2208065Z:10/1/2025 8:54:10 AM +00:00: Status Request - Non-successful status returned: Inprogress, operation id is: 5224c384-4c8c-40ae-853d-3f26b84c0514 - Attempt 1 (Delaying 00:00:00.5000000)...\r\n2025-10-01T08:54:10.2208065Z:Existing Token Acquisition Time: 00:00:00.0003484\r\n2025-10-01T08:54:10.2208065Z:Gateway Client: the client id that is sending a request is: 248a4185-e5d4-4157-9d2f-97af0dc508c7\r\n2025-10-01T08:54:10.6908402Z:Gateway Client: response send time from cloud gateway: 2025-10-01T08:54:10.6355854+00:00\r\n2025-10-01T08:54:10.6908402Z:Gateway Client: response receive time from client SendAsync: 2025-10-01T08:54:10.6908402+00:00\r\n2025-10-01T08:54:10.6908402Z:Gateway Client: response duration time between cloud gateway and client SendAsync: 00:00:00.0552548\r\n2025-10-01T08:54:10.6908402Z:Gateway Client: response time after converting from http response to object: 2025-10-01T08:54:10.6908402+00:00\r\n2025-10-01T08:54:10.6908402Z:10/1/2025 8:54:10 AM +00:00: Status Request - Non-successful status returned: Inprogress, operation id is: 5224c384-4c8c-40ae-853d-3f26b84c0514 - Attempt 2 (Delaying 00:00:00.5000000)...\r\n2025-10-01T08:54:10.8068224Z:Client Telemetry: Events published in this batch: 4\r\n2025-10-01T08:54:10.8068224Z:Client Telemetry: Events received so far in this session: 4\r\n2025-10-01T08:54:10.8068224Z:Client Telemetry: Events published so far in this session: 4\r\n2025-10-01T08:54:11.2019208Z:Existing Token Acquisition Time: 00:00:00.0007189\r\n2025-10-01T08:54:11.2019208Z:Gateway Client: the client id that is sending a request is: 248a4185-e5d4-4157-9d2f-97af0dc508c7\r\n2025-10-01T08:54:11.7060125Z:Gateway Client: response send time from cloud gateway: 2025-10-01T08:54:11.6262840+00:00\r\n2025-10-01T08:54:11.7060125Z:Gateway Client: response receive time from client SendAsync: 2025-10-01T08:54:11.7060125+00:00\r\n2025-10-01T08:54:11.7060125Z:Gateway Client: response duration time between cloud gateway and client SendAsync: 00:00:00.0797285\r\n2025-10-01T08:54:11.7108793Z:Gateway Client: response time after converting from http response to object: 2025-10-01T08:54:11.7100838+00:00\r\n2025-10-01T08:54:11.7149424Z:Reading thumbprint from \"C:\\Windows\\ServiceProfiles\\NetworkService\\AppData\\Local\\EsrpClient_66dab103b92d4f329b639c12aa64e33f\\Certificates\\CP-464321.p7b\" (9692 bytes)...\r\n2025-10-01T08:54:11.7376912Z:Thread: 1 - Wrote new certificate file to \"C:\\Windows\\ServiceProfiles\\NetworkService\\AppData\\Local\\EsrpClient_66dab103b92d4f329b639c12aa64e33f\\Certificates\\CP-464321.p7b\".\r\n2025-10-01T08:54:11.7376912Z:Thread: 1 - Certificate file mutex \"AYe1piBMWl6c+yAfCCK+GYCJgWyyp4b/mXvqszRe4cs=_CP-464321\" released (held for 3449 ms).\r\n2025-10-01T08:54:11.7376912Z:digest sign request expire time is: 10/1/2025 8:55:07 AM\r\n2025-10-01T08:54:15.6252656Z:Operation: c:\\AT\\sitesroot\\0\\bin\\Plugins\\ESRPClient\\Win10.x86\\signtool.exe sign /NPH /fd \"SHA256\" /f \"C:\\Windows\\ServiceProfiles\\NetworkService\\AppData\\Local\\EsrpClient_66dab103b92d4f329b639c12aa64e33f\\Certificates\\CP-464321.p7b\" /sha1 \"AD95D3F9C0F944EB9243147B346F8B93A7A6BB67\" /du \"https://www.1eswiki.com/wiki/ADO_Manifest_Generator\" /d \"Packaging SSSC Codesign - DigestSign\" /tr \"http://aztss.trafficmanager.net/TSS/HttpTspServer\" /td sha256 /dlib \"c:\\AT\\sitesroot\\0\\bin\\Plugins\\ESRPClient\\Win10.x86\\EsrpClient.Sign.DigestSignLib.dll\" /dmdf \"C:\\Windows\\ServiceProfiles\\NetworkService\\AppData\\Local\\EsrpClient_66dab103b92d4f329b639c12aa64e33f\\C3333C0DFCC7410D886C4B72FA96BB94.json\" \"c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\" completed in 3885 ms\r\nExit Code: 0\r\nStdOut:\r\nDone Adding Additional Store\r\n\r\nESRP Digest Signing\r\n\r\n2025-10-01T08:54:12.6750185Z:Digest Signer : SecurityProtocolType used from the metadata info is : Tls12\r\nMSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:12Z] ConfidentialClientApplication 654897 created\r\n2025-10-01T08:54:12.8131862Z:Cached token found with name: api.esrp.microsoft.com_0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f_33e01921-4d64-4f8c-a055-5bdaffd5e33d\r\n2025-10-01T08:54:12.8149316Z:AAD auth caching is in use with this name: api.esrp.microsoft.com_0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f_33e01921-4d64-4f8c-a055-5bdaffd5e33d\r\n2025-10-01T08:54:12.9258856Z:Global cached token is valid from 10/1/2025 8:49:06 AM to 10/2/2025 8:54:06 AM (UTC). Total validity from current time is 86393.0741144 seconds\r\n2025-10-01T08:54:12.9258856Z:Validate and Renew Token if necessary finished: 00:00:00.1111354\r\nMSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:12Z] ConfidentialClientApplication 49044892 created\r\n2025-10-01T08:54:12.9892728Z:Existing Token Acquisition Time: 00:00:00.0024867\r\n2025-10-01T08:54:14.1082545Z:Gateway Submission Request Signing Time: 00:00:00.1160404\r\n2025-10-01T08:54:14.1082545Z:Gateway Submission Request Send Time: 00:00:00.9840257\r\n2025-10-01T08:54:14.1082545Z:Gateway Submission Overall Submission Time: 00:00:01.1164695\r\n2025-10-01T08:54:14.1082545Z:Operation ID: f937b610-6299-480d-b6ca-7661e84e5156\r\n2025-10-01T08:54:14.6213390Z:Gateway Status Delay Time: 00:00:00.5123966\r\n2025-10-01T08:54:14.6334345Z:Existing Token Acquisition Time: 00:00:00.0005967\r\n2025-10-01T08:54:15.0550435Z:Gateway Status Request Send Time: 00:00:00.4156499\r\n2025-10-01T08:54:15.0550435Z:Gateway Status Overall Time: 00:00:00.4190311\r\n2025-10-01T08:54:15.0645058Z:Gateway Submission Duration: 1431\r\n2025-10-01T08:54:15.0645058Z:Gateway Submission Attempts: 1\r\n2025-10-01T08:54:15.0645058Z:Gateway GetStatus Duration: 433\r\n2025-10-01T08:54:15.0645058Z:Gateway GetStatus Attempts: 1\r\n2025-10-01T08:54:15.0645058Z:$$5a9f5111cf8f42a0a0edc419862b95dc##_ThrottleCount: 0\r\n2025-10-01T08:54:15.0645058Z:$$65265a48891640eb86e148d3c9a627fa##_ThrottledTimeInSec: 0\r\n2025-10-01T08:54:15.0645058Z:Service Call: 2544.6251 ms\r\nSuccessfully signed: c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\r\n\r\n\r\n\r\nStdErr:\r\n\r\n\r\n\r\n\r\n2025-10-01T08:54:15.8072720Z:Warning: Operation: c:\\AT\\sitesroot\\0\\bin\\Plugins\\ESRPClient\\Win10.x86\\signtool.exe verify /pa /tw \"c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\" failed\r\nExit Code: 1\r\nStdOut:\r\nFile: c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\r\nIndex Algorithm Timestamp \r\n========================================\r\n\r\nNumber of errors: 1\r\n\r\n\r\n\r\nStdErr:\r\nSignTool Error: A certificate chain processed, but terminated in a root\r\n\tcertificate which is not trusted by the trust provider.\r\n\r\n\r\n\r\n\r\n2025-10-01T08:54:15.8086553Z:Warning: Warning: Operation Error (1) - Operation: signtool.exe verify /pa /tw \"c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\" - Retrying in 500 ms...\r\n2025-10-01T08:54:15.9287132Z:Warning: Operation: c:\\AT\\sitesroot\\0\\bin\\Plugins\\ESRPClient\\Win10.x86\\signtool.exe verify /pa /tw \"c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\" failed\r\nExit Code: 1\r\nStdOut:\r\nFile: c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\r\nIndex Algorithm Timestamp \r\n========================================\r\n\r\nNumber of errors: 1\r\n\r\n\r\n\r\nStdErr:\r\nSignTool Error: A certificate chain processed, but terminated in a root\r\n\tcertificate which is not trusted by the trust provider.\r\n\r\n\r\n\r\n\r\n2025-10-01T08:54:15.9287132Z:Warning: Warning: Operation Error (2) - Operation: signtool.exe verify /pa /tw \"c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\" - Retrying in 500 ms...\r\n2025-10-01T08:54:16.0112497Z:Client Telemetry: Events published in this batch: 2\r\n2025-10-01T08:54:16.0112497Z:Client Telemetry: Events received so far in this session: 7\r\n2025-10-01T08:54:16.0112497Z:Client Telemetry: Events published so far in this session: 6\r\n2025-10-01T08:54:16.5204567Z:Warning: Operation: c:\\AT\\sitesroot\\0\\bin\\Plugins\\ESRPClient\\Win10.x86\\signtool.exe verify /pa /tw \"c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\" failed\r\nExit Code: 1\r\nStdOut:\r\nFile: c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\r\nIndex Algorithm Timestamp \r\n========================================\r\n\r\nNumber of errors: 1\r\n\r\n\r\n\r\nStdErr:\r\nSignTool Error: A certificate chain processed, but terminated in a root\r\n\tcertificate which is not trusted by the trust provider.\r\n\r\n\r\n\r\n\r\n2025-10-01T08:54:16.5519160Z:\r\n2025-10-01T08:54:16.5535963Z:Error: System.AggregateException: One or more errors occurred. ---> MS.Ess.EsrpClient.Sign.Exceptions.EsrpDigestSignExecuteProcessFailedException: Operation: c:\\AT\\sitesroot\\0\\bin\\Plugins\\ESRPClient\\Win10.x86\\signtool.exe verify /pa /tw \"c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\" failed\r\nExit Code: 1\r\nStdOut:\r\nFile: c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\r\nIndex Algorithm Timestamp \r\n========================================\r\n\r\nNumber of errors: 1\r\n\r\n\r\n\r\nStdErr:\r\nSignTool Error: A certificate chain processed, but terminated in a root\r\n\tcertificate which is not trusted by the trust provider.\r\n\r\n\r\n\r\n\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.<>c__DisplayClass27_0.b__1()\r\n at Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.RetryPolicy.<>c__DisplayClass1.b__0()\r\n at Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.RetryPolicy.ExecuteAction[TResult](Func`1 func)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.ExecuteDigestSignOperation(Input digestSignInput, Operation digestSignOperation, SignOperationData fileEntry, SignStatusResponse completionResponse, SignCommandDefinition param, Guid correlationId, String correlationVector, CancellationToken cancellationToken, String requestId, String tmpDestinationLocation)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.DigestSignInternal(Input digestSignInput, SignCommandDefinition param, Guid& correlationId, String correlationVector, CancellationToken cancellationToken, String groupId, SignOperationData fileEntry, Int32& signedFileCount, Int32& certRefreshCount, ConcurrentBag`1 completionResponses, RetryPolicy`1 operationRetryPolicy, String dynamicCertificateFile, String dynamicCertificateThumbprint, String requestId)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.<>c__DisplayClass23_3.b__6(SignOperationData fileEntry)\r\n --- End of inner exception stack trace ---\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.d__23.MoveNext()\r\n---> (Inner Exception #0) MS.Ess.EsrpClient.Sign.Exceptions.EsrpDigestSignExecuteProcessFailedException: Operation: c:\\AT\\sitesroot\\0\\bin\\Plugins\\ESRPClient\\Win10.x86\\signtool.exe verify /pa /tw \"c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\" failed\r\nExit Code: 1\r\nStdOut:\r\nFile: c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\r\nIndex Algorithm Timestamp \r\n========================================\r\n\r\nNumber of errors: 1\r\n\r\n\r\n\r\nStdErr:\r\nSignTool Error: A certificate chain processed, but terminated in a root\r\n\tcertificate which is not trusted by the trust provider.\r\n\r\n\r\n\r\n\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.<>c__DisplayClass27_0.b__1()\r\n at Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.RetryPolicy.<>c__DisplayClass1.b__0()\r\n at Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.RetryPolicy.ExecuteAction[TResult](Func`1 func)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.ExecuteDigestSignOperation(Input digestSignInput, Operation digestSignOperation, SignOperationData fileEntry, SignStatusResponse completionResponse, SignCommandDefinition param, Guid correlationId, String correlationVector, CancellationToken cancellationToken, String requestId, String tmpDestinationLocation)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.DigestSignInternal(Input digestSignInput, SignCommandDefinition param, Guid& correlationId, String correlationVector, CancellationToken cancellationToken, String groupId, SignOperationData fileEntry, Int32& signedFileCount, Int32& certRefreshCount, ConcurrentBag`1 completionResponses, RetryPolicy`1 operationRetryPolicy, String dynamicCertificateFile, String dynamicCertificateThumbprint, String requestId)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.<>c__DisplayClass23_3.b__6(SignOperationData fileEntry)<---\r\n\r\n2025-10-01T08:54:16.5847103Z:Constructing EsrpClientResponse\r\n2025-10-01T08:54:16.5851950Z:EsrpClientResponse is constructed\r\n2025-10-01T08:54:16.6167319Z:OperationDurationMs: 8380\r\n2025-10-01T08:54:16.6167319Z:DynamicCertGenerationTimeMs: 0\r\n2025-10-01T08:54:16.6167319Z:TimeToGetStorageShradsMs: 0\r\n2025-10-01T08:54:16.6167319Z:TotalScanSubmissionTimeMs: 0\r\n2025-10-01T08:54:16.6167319Z:ThrottleCount: 0\r\n2025-10-01T08:54:16.6167319Z:ThrottledTimeInSec: 0\r\n2025-10-01T08:54:16.6167319Z:\r\n2025-10-01T08:54:16.6167319Z:0/1 files signed in 00:00:08.380 (0 files/s, total number of certs refreshed: 0)\r\n2025-10-01T08:54:16.6194710Z:result json is: {\r\n \"submissionResponses\": [\r\n {\r\n \"fileStatusDetail\": [\r\n {\r\n \"sourceHash\": \"6L9bS5hm8BqIMDFl6QFcoxjrnEcawUuHYDPkw1cTjj8=\",\r\n \"hashType\": \"sha256\",\r\n \"destinationHash\": null,\r\n \"certificateThumbprint\": null,\r\n \"destinationLocation\": \"c:\\\\Temp\\\\AzureTemp\\\\o5t2bhbn.gqh\\\\manifest.cat\",\r\n \"destinationFileSizeInBytes\": 0,\r\n \"sourceLocation\": \"c:\\\\Temp\\\\AzureTemp\\\\o5t2bhbn.gqh\\\\manifest.cat\"\r\n }\r\n ],\r\n \"operationId\": \"f937b610-6299-480d-b6ca-7661e84e5156\",\r\n \"customerCorrelationId\": \"09677df8-c683-43ee-a868-1ff194b9c298\",\r\n \"statusCode\": \"failCanRetry\",\r\n \"errorInfo\": {\r\n \"code\": \"3138\",\r\n \"details\": {\r\n \"operation\": \"c:\\\\AT\\\\sitesroot\\\\0\\\\bin\\\\Plugins\\\\ESRPClient\\\\Win10.x86\\\\signtool.exe verify /pa /tw \\\"c:\\\\Temp\\\\AzureTemp\\\\o5t2bhbn.gqh\\\\manifest.cat\\\"\",\r\n \"exitCode\": \"1\",\r\n \"stdOut\": \"File: c:\\\\Temp\\\\AzureTemp\\\\o5t2bhbn.gqh\\\\manifest.cat\\r\\nIndex Algorithm Timestamp \\r\\n========================================\\r\\n\\r\\nNumber of errors: 1\\r\\n\\r\\n\\r\\n\",\r\n \"stdErr\": \"SignTool Error: A certificate chain processed, but terminated in a root\\r\\n\\tcertificate which is not trusted by the trust provider.\\r\\n\\r\\n\"\r\n },\r\n \"innerError\": null\r\n }\r\n }\r\n ],\r\n \"esrpClientSessionGuid\": \"66dab103-b92d-4f32-9b63-9c12aa64e33f\",\r\n \"version\": \"1.0.0\"\r\n}\r\n2025-10-01T08:54:16.6629484Z:Warning: \r\n\r\n2025-10-01T08:54:16.6629484Z:esrp-client-finalTime: 12772.3093\r\n2025-10-01T08:54:16.6629484Z:Final return code is: 1\r\n2025-10-01T08:54:16.6629484Z:ClientTelemetryDispose started, this is not affecting Exe reliability, only lost telemetry if error happens ***********************\r\n2025-10-01T08:54:16.6681609Z:Client Telemetry: Flushing telemetry buffer with timeout 0 ms\r\n2025-10-01T08:54:16.6712004Z:Client Telemetry: Flushing telemetry buffer completed within timeout (true/false): False\r\n2025-10-01T08:54:16.6712004Z:Client Telemetry: Disposing telemetry buffer and event hub client\r\n2025-10-01T08:54:16.6743576Z:Client Telemetry: Events published in this batch: 1\r\n2025-10-01T08:54:16.6750734Z:Client Telemetry: Events received so far in this session: 11\r\n2025-10-01T08:54:16.6750734Z:Client Telemetry: Events published so far in this session: 7\r\n2025-10-01T08:54:17.0123717Z:Warning: event lost number: 4\r\n2025-10-01T08:54:17.0123717Z:total event processed number: 7\r\n2025-10-01T08:54:17.0123717Z:total event received number: 11\r\n2025-10-01T08:54:17.0123717Z:##EsrpClientTelemetry.TotalEventsProcessed##: 7\r\n2025-10-01T08:54:17.0123717Z:##EsrpClientTelemetry.TotalEventsReceived##: 11\r\n2025-10-01T08:54:17.0123717Z:##EsrpClientTelemetry.DisposeTimeMilliseconds##: 349\r\n2025-10-01T08:54:17.0123717Z:ClientTelemetryDispose ended ***********************\r\n","StdErr":"2025-10-01T08:54:16.5535963Z:Error: System.AggregateException: One or more errors occurred. ---> MS.Ess.EsrpClient.Sign.Exceptions.EsrpDigestSignExecuteProcessFailedException: Operation: c:\\AT\\sitesroot\\0\\bin\\Plugins\\ESRPClient\\Win10.x86\\signtool.exe verify /pa /tw \"c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\" failed\r\nExit Code: 1\r\nStdOut:\r\nFile: c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\r\nIndex Algorithm Timestamp \r\n========================================\r\n\r\nNumber of errors: 1\r\n\r\n\r\n\r\nStdErr:\r\nSignTool Error: A certificate chain processed, but terminated in a root\r\n\tcertificate which is not trusted by the trust provider.\r\n\r\n\r\n\r\n\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.<>c__DisplayClass27_0.b__1()\r\n at Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.RetryPolicy.<>c__DisplayClass1.b__0()\r\n at Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.RetryPolicy.ExecuteAction[TResult](Func`1 func)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.ExecuteDigestSignOperation(Input digestSignInput, Operation digestSignOperation, SignOperationData fileEntry, SignStatusResponse completionResponse, SignCommandDefinition param, Guid correlationId, String correlationVector, CancellationToken cancellationToken, String requestId, String tmpDestinationLocation)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.DigestSignInternal(Input digestSignInput, SignCommandDefinition param, Guid& correlationId, String correlationVector, CancellationToken cancellationToken, String groupId, SignOperationData fileEntry, Int32& signedFileCount, Int32& certRefreshCount, ConcurrentBag`1 completionResponses, RetryPolicy`1 operationRetryPolicy, String dynamicCertificateFile, String dynamicCertificateThumbprint, String requestId)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.<>c__DisplayClass23_3.b__6(SignOperationData fileEntry)\r\n --- End of inner exception stack trace ---\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.d__23.MoveNext()\r\n---> (Inner Exception #0) MS.Ess.EsrpClient.Sign.Exceptions.EsrpDigestSignExecuteProcessFailedException: Operation: c:\\AT\\sitesroot\\0\\bin\\Plugins\\ESRPClient\\Win10.x86\\signtool.exe verify /pa /tw \"c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\" failed\r\nExit Code: 1\r\nStdOut:\r\nFile: c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\r\nIndex Algorithm Timestamp \r\n========================================\r\n\r\nNumber of errors: 1\r\n\r\n\r\n\r\nStdErr:\r\nSignTool Error: A certificate chain processed, but terminated in a root\r\n\tcertificate which is not trusted by the trust provider.\r\n\r\n\r\n\r\n\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.<>c__DisplayClass27_0.b__1()\r\n at Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.RetryPolicy.<>c__DisplayClass1.b__0()\r\n at Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.RetryPolicy.ExecuteAction[TResult](Func`1 func)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.ExecuteDigestSignOperation(Input digestSignInput, Operation digestSignOperation, SignOperationData fileEntry, SignStatusResponse completionResponse, SignCommandDefinition param, Guid correlationId, String correlationVector, CancellationToken cancellationToken, String requestId, String tmpDestinationLocation)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.DigestSignInternal(Input digestSignInput, SignCommandDefinition param, Guid& correlationId, String correlationVector, CancellationToken cancellationToken, String groupId, SignOperationData fileEntry, Int32& signedFileCount, Int32& certRefreshCount, ConcurrentBag`1 completionResponses, RetryPolicy`1 operationRetryPolicy, String dynamicCertificateFile, String dynamicCertificateThumbprint, String requestId)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.<>c__DisplayClass23_3.b__6(SignOperationData fileEntry)<---\r\n\r\n","ExitCode":1,"RunningTime":"00:00:13.9788515"} \ No newline at end of file diff --git a/Modules/MicrosoftTeams/6.9.0/_manifest/spdx_2.2/bsi.cose b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/bsi.cose similarity index 90% rename from Modules/MicrosoftTeams/6.9.0/_manifest/spdx_2.2/bsi.cose rename to Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/bsi.cose index 7ddbac87d6a5..a0e730c8c710 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/_manifest/spdx_2.2/bsi.cose and b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/bsi.cose differ diff --git a/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/bsi.json b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/bsi.json new file mode 100644 index 000000000000..26f241cd93d5 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/bsi.json @@ -0,0 +1 @@ +{"Source":"InternalBuild","Data":{"System.CollectionId":"2ce6486e-7d3b-47bb-8e16-5f19a43015c9","System.DefinitionId":"17372","System.TeamProjectId":"81cf09ca-992f-4cab-9a5f-96d728b4c339","System.TeamProject":"SBS","Build.BuildId":"72855948","Build.BuildNumber":"2.251001.2","Build.DefinitionName":"infrastructure_itpro_teamspowershellmodule","Build.DefinitionRevision":"133","Build.Repository.Name":"infrastructure_itpro_teamspowershellmodule","Build.Repository.Provider":"TfsGit","Build.Repository.Id":"fe62ea1f-ff64-4287-87a3-b6184a6fc36c","Build.SourceBranch":"refs/heads/release/7.4.0-GA","Build.SourceBranchName":"7.4.0-GA","Build.SourceVersion":"94bae19a76521c4ce4aec4a421dda93eeda9337b","Build.Repository.Uri":"https://skype.visualstudio.com/SBS/_git/infrastructure_itpro_teamspowershellmodule","EbomId":"0a43dfb1-b70b-5f20-9da2-10c9c55b951c","1ES.PT.TemplateType":"official"},"Feed":null} \ No newline at end of file diff --git a/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.cat b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.cat new file mode 100644 index 000000000000..5a0b504e91d0 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.cat differ diff --git a/Modules/MicrosoftTeams/6.9.0/_manifest/spdx_2.2/manifest.spdx.cose b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.spdx.cose similarity index 90% rename from Modules/MicrosoftTeams/6.9.0/_manifest/spdx_2.2/manifest.spdx.cose rename to Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.spdx.cose index c4c4b4aad787..55ebc2964d73 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/_manifest/spdx_2.2/manifest.spdx.cose and b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.spdx.cose differ diff --git a/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.spdx.json b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.spdx.json new file mode 100644 index 000000000000..8d7834b0ce09 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.spdx.json @@ -0,0 +1,17762 @@ +{ + "files": [ + { + "fileName": "./../../_manifest/spdx_2.2/manifest.spdx.json", + "SPDXID": "SPDXRef-File--..-..--manifest-spdx-2.2-manifest.spdx.json-DF0BA998C710F21E197664508D999D436F9101B6", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "641bf4f36bd0ab896c4dc013a00539ef9161447d85f6949218765ee4818753fb" + }, + { + "algorithm": "SHA1", + "checksumValue": "df0ba998c710f21e197664508d999d436f9101b6" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION", + "fileTypes": [ + "SPDX" + ] + }, + { + "fileName": "./Microsoft.Teams.ConfigAPI.Cmdlets.psd1", + "SPDXID": "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.psd1-358D6795FF6A747404383425E64D23D1336CB1C0", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "85509c83f8048ae73d6488c1dc698fb86635f3b6921d4b35bf4246d1cb0354d0" + }, + { + "algorithm": "SHA1", + "checksumValue": "358d6795ff6a747404383425e64d23d1336cb1c0" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.ConfigAPI.Cmdlets.psm1", + "SPDXID": "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.psm1-06F2DE05C56549DA9A8C48D6BD6D237AC1B2F3DB", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "0a09f7df982a6cf4baaf9c97431adcacb16bb3d54be9a4ad47a3fdc335facbd6" + }, + { + "algorithm": "SHA1", + "checksumValue": "06f2de05c56549da9a8c48d6bd6d237ac1b2f3db" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./GetTeamSettings.format.ps1xml", + "SPDXID": "SPDXRef-File--GetTeamSettings.format.ps1xml-0E61084BD489773DFB45DB5991C5901CB7A5EFE1", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "e395f9a23e1b13f067cdea2f143455c2ea7cc798292f55f65f8bc90c2ee59e2e" + }, + { + "algorithm": "SHA1", + "checksumValue": "0e61084bd489773dfb45db5991c5901cb7a5efe1" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1-C9A8BEE198E3F026B489127B8693505E98B051AE", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "71e2b01c74b6ba03885df8b0dd09f9d0bbccde414c16bfa6a61b031dd2d923f2" + }, + { + "algorithm": "SHA1", + "checksumValue": "c9a8bee198e3f026b489127b8693505e98b051ae" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./LICENSE.txt", + "SPDXID": "SPDXRef-File--LICENSE.txt-AB40082210620A2914D58B309A048459E784E962", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "1cd91cba185bdde7d815c11eb1fd9ec359715d9c071172dc964755c5801ad905" + }, + { + "algorithm": "SHA1", + "checksumValue": "ab40082210620a2914d58b309a048459e784e962" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1-29654B497D19C8508ABA749E8A25890FB166F3D3", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "27bc1c17ad463c97af6237cef277a58bbd65d0ed56d3acf13fbb16edea38d0fe" + }, + { + "algorithm": "SHA1", + "checksumValue": "29654b497d19c8508aba749e8a25890fb166f3d3" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml-963D4C2F388DECE045FD19E22F7DA7F85931807F", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "0934ee941a91c53e56375e0f850e2589a8e6afbd5b1c20f464dae16c2a7a9645" + }, + { + "algorithm": "SHA1", + "checksumValue": "963d4c2f388dece045fd19e22f7da7f85931807f" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml-A5C9ABD7C91C563124045980DBF5688288EA007F", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "9ed7777bd38057277a0fa4f9b279448d8b272c7750f17aff5df821456e428f7b" + }, + { + "algorithm": "SHA1", + "checksumValue": "a5c9abd7c91c563124045980dbf5688288ea007f" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml-4683A04476426B5AF5BCB26B98C17CA2B5CBFB02", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "171359032e4bfd63b6f4664dbb86d1c14aeea4c93d1c8d2f038c12675b25c57e" + }, + { + "algorithm": "SHA1", + "checksumValue": "4683a04476426b5af5bcb26b98c17ca2b5cbfb02" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml-2B971324EA70583EF0B37D0DC6E0DA6D02060D2E", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "d03608c9b950fcc154a84b6185fc38b484be022cb715af7ec296f8472b8ea05c" + }, + { + "algorithm": "SHA1", + "checksumValue": "2b971324ea70583ef0b37d0dc6e0da6d02060d2e" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml-EB263FF298D384DFD53520A387339547CAD10294", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "df2a6630db615ab8dfd353eafe2bb63deb5f401366bcb2892abf6b4c4b1707c4" + }, + { + "algorithm": "SHA1", + "checksumValue": "eb263ff298d384dfd53520a387339547cad10294" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.xml-88C2B299A3EFEDAD1899AA8B26920DDE35863A3C", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "4a314344b36ff15c11166f2aa5d1b5e313448cda0ddf2fbc1eeed8d0f78b6f65" + }, + { + "algorithm": "SHA1", + "checksumValue": "88c2b299a3efedad1899aa8b26920dde35863a3c" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml-CF6D5EA1DB485C9B63EA6DA6AEAC79D6A2C0249F", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "1ba34db541a6b7673882078d196aa0d9cc165b95cbf7df707005f820944c8c9b" + }, + { + "algorithm": "SHA1", + "checksumValue": "cf6d5ea1db485c9b63ea6da6aeac79d6a2c0249f" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml-037B8BD58EE4DA3AAA0F696446289AED702B569E", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "9a6af3ee1b05ac3514b8ec5c52547a0cb4cc979e08791dd6d38221e50a365011" + }, + { + "algorithm": "SHA1", + "checksumValue": "037b8bd58ee4da3aaa0f696446289aed702b569e" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.psm1", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.psm1-AD8AC869067A6601073B9C0EC4406C1A08DD7AED", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "130d281b15aa9989041f200751a9b7cbbfd1c6964d12db1cf1a82478056827f2" + }, + { + "algorithm": "SHA1", + "checksumValue": "ad8ac869067a6601073b9c0ec4406c1a08dd7aed" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml-12984994444338BBAF1E1597874FE6D8AEA40BCA", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "a7a276f14f21521ab98395a0b51e7fa41ab2574616d8a27da097b191335b1eed" + }, + { + "algorithm": "SHA1", + "checksumValue": "12984994444338bbaf1e1597874fe6d8aea40bca" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml-B954F5ED1ECC7BE8740624D48ED04222953C8139", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "849d6fd93333ce839f9593b0420581090de7a6543f79e59e1a0962ef4659065b" + }, + { + "algorithm": "SHA1", + "checksumValue": "b954f5ed1ecc7be8740624d48ed04222953c8139" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml-E04D2C01142905ABBB85203DF7BBC17A146FAA1D", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "7b389faa9392f7cba03aa6de7cbb19d7989cbef18113955c6641c7df12d1a83c" + }, + { + "algorithm": "SHA1", + "checksumValue": "e04d2c01142905abbb85203df7bbc17a146faa1d" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./MicrosoftTeams.psm1", + "SPDXID": "SPDXRef-File--MicrosoftTeams.psm1-CE47D645C9A82231AD62188F14704A6DFC34C77A", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "7a5ac37ad548a7c04e67e0c71d4bf3d20ac5df21f0dd2d207373b0fc4e90edd0" + }, + { + "algorithm": "SHA1", + "checksumValue": "ce47d645c9a82231ad62188f14704a6dfc34c77a" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.format.ps1xml-8FE74E08BC9D801BDD0E388AB369EE06C0CF45EF", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "b44ce79fabd3753ce7c7f2ea4a542b8da575123b4097292687d4217567879db8" + }, + { + "algorithm": "SHA1", + "checksumValue": "8fe74e08bc9d801bdd0e388ab369ee06c0cf45ef" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.xml-56E8BFB9F020ADF074710972F5AFD1B1CED156FD", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "6e11132a8afa44b044667064190ba3e354f5a705eaf6952bccd22b1100c4dc16" + }, + { + "algorithm": "SHA1", + "checksumValue": "56e8bfb9f020adf074710972f5afd1b1ced156fd" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.PowerShell.TeamsCmdlets.psm1", + "SPDXID": "SPDXRef-File--Microsoft.Teams.PowerShell.TeamsCmdlets.psm1-DC1D08C8126D965B23565174CEF4A81366FF0F5E", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "216feb979cc06e1bff6354dedbda0c457d241c352c200207a4fa93051ab5ae89" + }, + { + "algorithm": "SHA1", + "checksumValue": "dc1d08c8126d965b23565174cef4a81366ff0f5e" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.PowerShell.TeamsCmdlets.xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.PowerShell.TeamsCmdlets.xml-88D15FB2F26191E1A37F10E60DF4CEE1F9BD0F17", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "a65fa456458c161c0308c9c1d666f65dbfa6816618024b4706227e5327ac51ec" + }, + { + "algorithm": "SHA1", + "checksumValue": "88d15fb2f26191e1a37f10e60df4cee1f9bd0f17" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./SetMSTeamsReleaseEnvironment.ps1", + "SPDXID": "SPDXRef-File--SetMSTeamsReleaseEnvironment.ps1-F7DEE6409FCFBCFDA09733084816A3E3E46BCDEC", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "5f9755d39eebffcaced62973e22395a17aba72c589f8ce0052dc958617178a64" + }, + { + "algorithm": "SHA1", + "checksumValue": "f7dee6409fcfbcfda09733084816a3e3e46bcdec" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoicemail.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoicemail.format.ps1xml-341891343CB3B9B8E207A7225210AEF601E6C779", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "12206134876e1bde11edb2bd7bdf651d1cf7a979c8509392074f169a5938bf81" + }, + { + "algorithm": "SHA1", + "checksumValue": "341891343cb3b9b8e207a7225210aef601e6c779" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.format.ps1xml-4C798B7AC19201899CBF18D0D9BC4145D5C0DCE1", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "bc86d3c5b77059a51e3e7fde6099b419696c3208d491439a8c8a20faef5a9718" + }, + { + "algorithm": "SHA1", + "checksumValue": "4c798b7ac19201899cbf18d0d9bc4145d5c0dce1" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1-CA346C864AFA6A636E57FBAF71010CAC45D122D1", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "9d95994cad4659d3fc2a0a6c93d6c262f09ea078bdbb25432435134ae0143e53" + }, + { + "algorithm": "SHA1", + "checksumValue": "ca346c864afa6a636e57fbaf71010cac45d122d1" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./bin/Microsoft.IdentityModel.Logging.dll", + "SPDXID": "SPDXRef-File--bin-Microsoft.IdentityModel.Logging.dll-6209CAFD403DF6FB9DA046F36D7D89635FAE41A4", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "3909aa735f98f4c57edc81a8e674364d085db13b1f10734377259e0f6c35c97a" + }, + { + "algorithm": "SHA1", + "checksumValue": "6209cafd403df6fb9da046f36d7d89635fae41a4" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml-C9D1A219945A688828BE50FC9E0FF4C663334995", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "07ad1ffefa084c9bd05bf2ee0a98155499c17c005b653a88d709770941067a1f" + }, + { + "algorithm": "SHA1", + "checksumValue": "c9d1a219945a688828be50fc9e0ff4c663334995" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.deps.json", + "SPDXID": "SPDXRef-File--bin-Microsoft.Teams.ConfigAPI.Cmdlets.private.deps.json-796CAF23506427ABFD0CBB113FDCC1D690D70890", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "2165e86e3adb0f410f299a0eb5dc8e73818d6c9497db71b31b600a8fde438347" + }, + { + "algorithm": "SHA1", + "checksumValue": "796caf23506427abfd0cbb113fdcc1d690d70890" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml-AF55F0C8AE06AF16DA52F63F8DD7CE43689A71A2", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "94c3c284350b1d8d1da4ace9f258ff6a0b0a841ca1bee1456518990c3376066a" + }, + { + "algorithm": "SHA1", + "checksumValue": "af55f0c8ae06af16da52f63f8dd7ce43689a71a2" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSipDevicesConfiguration.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSipDevicesConfiguration.format.ps1xml-EDC75B30DF78641733D30DCDE1276706A601AB19", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "563f21803a0eb0cbb466ce4f6e299e7bf387aa0663c6ccc71306d8ac50ca2f63" + }, + { + "algorithm": "SHA1", + "checksumValue": "edc75b30df78641733d30dcde1276706a601ab19" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml-58AE49EF1B2AF7DE983D1CAF24B20B5143D39652", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "527766ba7d1df9011aaf3926dcb69b6d4dcd78c180a20ee04e89a38b9a852a2a" + }, + { + "algorithm": "SHA1", + "checksumValue": "58ae49ef1b2af7de983d1caf24b20b5143d39652" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.psd1", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.psd1-CAA75251D6858155BFB20A66AB60474F844BE319", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "2fbd06d6136c841d154150afb4864c0987bc1c77a3900def23543597920d9217" + }, + { + "algorithm": "SHA1", + "checksumValue": "caa75251d6858155bfb20a66ab60474f844be319" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.PowerShell.Module.xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.PowerShell.Module.xml-EB2B86D36ADE4E37542F46AC4AF2A0E81087E582", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "14e403c1b3082085432ca2f1ae0d47c0491bd4cfd3234bc819493a7b4254c971" + }, + { + "algorithm": "SHA1", + "checksumValue": "eb2b86d36ade4e37542f46ac4af2a0e81087e582" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.CorePersonalAttendantPolicy.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CorePersonalAttendantPolicy.format.ps1xml-086D2A71368A70C95D7C14EB16E1E8AB9D85A950", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "af1b6ac42469c1497fef14463898f65ad7be09f84f66d9637c5c5b405b3cc97f" + }, + { + "algorithm": "SHA1", + "checksumValue": "086d2a71368a70c95d7c14eb16e1e8ab9d85a950" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./MicrosoftTeams.psd1", + "SPDXID": "SPDXRef-File--MicrosoftTeams.psd1-8419998A42D801598EE6BF96F39993FDFA043632", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "b6097f6019a5789486d425c35a92d7bcbc9eda36ad1acfb82639a1d1ccfe055f" + }, + { + "algorithm": "SHA1", + "checksumValue": "8419998a42d801598ee6bf96f39993fdfa043632" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./custom/Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1", + "SPDXID": "SPDXRef-File--custom-Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1-A507BC7A295AC14035F81E138A39F9CAA03DA5A2", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "ccdfb4a2b9439941d75be19cfc0347f4861b43c94ab8223615208514cafae2fe" + }, + { + "algorithm": "SHA1", + "checksumValue": "a507bc7a295ac14035f81e138a39f9caa03da5a2" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./bin/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll", + "SPDXID": "SPDXRef-File--bin-Microsoft.Teams.ConfigAPI.CmdletHostContract.dll-06ECDF615E407E69513D3771EEF0678ECCAFA269", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "d14796fbbd20f0ed206c1db80faca50e353b1bca306c2ae21f03a2649d6720e0" + }, + { + "algorithm": "SHA1", + "checksumValue": "06ecdf615e407e69513d3771eef0678eccafa269" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml-DBFCA41EABFFE3B81453F66B9C37667D5CD777B6", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "7dcc7523ee28be53b078dfd793ea11f081a7cb51393fd17ed514c00bee849800" + }, + { + "algorithm": "SHA1", + "checksumValue": "dbfca41eabffe3b81453f66b9c37667d5cd777b6" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1-32022DFD0447DA7210CABCB550C0B5834D73BE83", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "11f673efe46c3a6adb5fec3f92ea7a4769e565244503721210ba19eeecfdffd8" + }, + { + "algorithm": "SHA1", + "checksumValue": "32022dfd0447da7210cabcb550c0b5834d73be83" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./en-US/Microsoft.TeamsCmdlets.PowerShell.Connect.dll-Help.xml", + "SPDXID": "SPDXRef-File--en-US-Microsoft.TeamsCmdlets.PowerShell.Connect.dll-Help.xml-FEFA595D1ECC65F8818C1A38F2BFEE3CF7E0575E", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "345bab954c5ae4f9a52420f3b88e78d96080dc4a4d0a8db76d50dd9af571eaa9" + }, + { + "algorithm": "SHA1", + "checksumValue": "fefa595d1ecc65f8818c1a38f2bfee3cf7e0575e" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml-98FB01D72EBCC9822A8F2D2B371A67F5EB68FFD9", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "45436033258db265663a1248e0e3eb4e9cbbabd5f9491ca74841b969af55f91a" + }, + { + "algorithm": "SHA1", + "checksumValue": "98fb01d72ebcc9822a8f2d2b371a67f5eb68ffd9" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.format.ps1xml-0031CFCDA71FB7B73ED2BCA2DDAD351018824C28", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "5b29b0f5298699972d9479c42e9156933e33def8524f94b0470718e758cced30" + }, + { + "algorithm": "SHA1", + "checksumValue": "0031cfcda71fb7b73ed2bca2ddad351018824c28" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml-34BB735EAEB2987A8AA72C522173DBDFCDE15331", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "c771bf28f755eaede1ff2222db9e23c2d603928f9cf170cf05bb37f0ec458fec" + }, + { + "algorithm": "SHA1", + "checksumValue": "34bb735eaeb2987a8aa72c522173dbdfcde15331" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.PowerShell.TeamsCmdlets.psd1", + "SPDXID": "SPDXRef-File--Microsoft.Teams.PowerShell.TeamsCmdlets.psd1-3D8B6E0C11BD6300FFF53D1C1A7A32B6AA20EEDA", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "58b2ea0cdcabcb8862f9ebebe9ec12b5c6e728343e9b02d742a2addaf594c5d5" + }, + { + "algorithm": "SHA1", + "checksumValue": "3d8b6e0c11bd6300fff53d1c1a7a32b6aa20eeda" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/CmdletSettings.json", + "SPDXID": "SPDXRef-File--net472-CmdletSettings.json-98919B572DB8494892B52408CD0FE23531388E32", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "c0549eba3a249ef431b0d0c61ee232c815b74fe0cfa1b41b0860a8531f33e6dd" + }, + { + "algorithm": "SHA1", + "checksumValue": "98919b572db8494892b52408cd0fe23531388e32" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Azure.KeyVault.AzureServiceDeploy.dll-B68459369627DCCF555526C5B1385DB735A6B596", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "94488e5191be3a39e010f9f8ffbd1d36046d91d46ab316cb1495232afc8554a1" + }, + { + "algorithm": "SHA1", + "checksumValue": "b68459369627dccf555526c5b1385db735a6b596" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./bin/Microsoft.IdentityModel.JsonWebTokens.dll", + "SPDXID": "SPDXRef-File--bin-Microsoft.IdentityModel.JsonWebTokens.dll-87551F36BC46BFCBCC035626DBB42C764F085B3F", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "a8b0dd2c74857b93aea6fd37ff1cc5ad8f9d081918994fb73bca5000cbb8a557" + }, + { + "algorithm": "SHA1", + "checksumValue": "87551f36bc46bfcbcc035626dbb42c764f085b3f" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Extensions.Configuration.Abstractions.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Extensions.Configuration.Abstractions.dll-4D43E8350E71147AD6970E9F0DE4782470A76A0D", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "e2882c6ff3eb35ad16048d6099b7a4ea4213072157bdb47f10b451c88b3fe17e" + }, + { + "algorithm": "SHA1", + "checksumValue": "4d43e8350e71147ad6970e9f0de4782470a76a0d" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Extensions.Logging.Abstractions.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Extensions.Logging.Abstractions.dll-35EA89F23C780B1575B2066DB0D59F255971EB3D", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "3c786c0b64c0f71eb099960804ca311660046e919925a42841bb3be1a7c547f7" + }, + { + "algorithm": "SHA1", + "checksumValue": "35ea89f23c780b1575b2066db0d59f255971eb3d" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./en-US/Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml", + "SPDXID": "SPDXRef-File--en-US-Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml-0A3B265D20E863CBDCB264974391CA7D26766C0E", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "caabdcf997a01b83f22b8509fc2d23f21add76585cc1cf0821dbe34b45d7e8e5" + }, + { + "algorithm": "SHA1", + "checksumValue": "0a3b265d20e863cbdcb264974391ca7d26766c0e" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Identity.Client.Desktop.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Identity.Client.Desktop.dll-F2B3DF67CE4F9D0963240B693154CBBEFC74ACF3", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "fd4dcec737f97be913f194997293983d3f9444832134aad357e8b29621a9e5b9" + }, + { + "algorithm": "SHA1", + "checksumValue": "f2b3df67ce4f9d0963240b693154cbbefc74acf3" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./SfbRpsModule.format.ps1xml", + "SPDXID": "SPDXRef-File--SfbRpsModule.format.ps1xml-95C93BA2237F52307E16FD0011B73A8A17198988", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "c0449db803d01bcb24822326197f90b4f34b347c93cb0b940b0ddaa6d04d053e" + }, + { + "algorithm": "SHA1", + "checksumValue": "95c93ba2237f52307e16fd0011b73a8a17198988" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Identity.Client.NativeInterop.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Identity.Client.NativeInterop.dll-3C40B6CE463B6BBAACA4AEA0A2DE8B0BE9CFEA3D", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "496ee225a7ca6e65d3153f277b853a55c4528be2541a6514baecf10822145342" + }, + { + "algorithm": "SHA1", + "checksumValue": "3c40b6ce463b6bbaaca4aea0a2de8b0be9cfea3d" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Rest.ClientRuntime.Azure.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Rest.ClientRuntime.Azure.dll-8070B48D5F4D2FDDDAC48DA510BC149691B59500", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "840919b961d621a14815de0d23195d8843fb747fceba72664208a96c01324fa1" + }, + { + "algorithm": "SHA1", + "checksumValue": "8070b48d5f4d2fdddac48da510bc149691b59500" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./bin/System.IdentityModel.Tokens.Jwt.dll", + "SPDXID": "SPDXRef-File--bin-System.IdentityModel.Tokens.Jwt.dll-3A24CC14199BFC426F29EF91DE9EF8614248CE87", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "c6bee905346157559f26648f1c772ad25ecd7000621830557c628059966c0e3b" + }, + { + "algorithm": "SHA1", + "checksumValue": "3a24cc14199bfc426f29ef91de9ef8614248ce87" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Teams.PowerShell.Module.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.PowerShell.Module.dll-C00F202A7BBEBFB084966C3BE0027F9DF0BD47E6", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "3e9e8e61308067a627bd07d673c18104357f577713ff0ed054d206a6e96759f5" + }, + { + "algorithm": "SHA1", + "checksumValue": "c00f202a7bbebfb084966c3be0027f9df0bd47e6" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./bin/Microsoft.IdentityModel.Tokens.dll", + "SPDXID": "SPDXRef-File--bin-Microsoft.IdentityModel.Tokens.dll-55E4A13A430919E0B5EBF5FFEDBDAA0D66F84629", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "40a73a31ce1dd5b6bd3593edddd6831e6aab2078053d65cb6eca32f761076dc2" + }, + { + "algorithm": "SHA1", + "checksumValue": "55e4a13a430919e0b5ebf5ffedbdaa0d66f84629" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Applications.Events.Server.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Applications.Events.Server.dll-8784D6C77EFA3361390F5BA5F5F56A62434A4A35", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "c1eaa5d9c465ab18d7ca530d8f79b4c762044c81e35ceda7f4a3a00e9280fbca" + }, + { + "algorithm": "SHA1", + "checksumValue": "8784d6c77efa3361390f5ba5f5f56a62434a4a35" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Extensions.DependencyInjection.Abstractions.dll-B82F9689F6C16FB1F5DB89A0E92F2B9F756AEC48", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "68dcce73772f4109e08106d5117516aad682f12b359809d1c0d84d2a132ac4f7" + }, + { + "algorithm": "SHA1", + "checksumValue": "b82f9689f6c16fb1f5db89a0e92f2b9f756aec48" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Identity.Client.Extensions.Msal.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Identity.Client.Extensions.Msal.dll-C328ACF08DE3E229E48083958D9DF2A0EB25511A", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "ada85e7854037947f14cf746aecf6945193b4cf15d12193ef385f77e5b8bcf74" + }, + { + "algorithm": "SHA1", + "checksumValue": "c328acf08de3e229e48083958d9df2a0eb25511a" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.ConfigAPI.CmdletHostContract.dll-2598CBE499A5C56E7EB9715E1BF6F19ECBCFDA02", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "6457a00dbe141bb431c32b375c52ab61e1552beb50f27f8cf9706f7761448480" + }, + { + "algorithm": "SHA1", + "checksumValue": "2598cbe499a5c56e7eb9715e1bf6f19ecbcfda02" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./custom/Merged_custom_PsExt.ps1", + "SPDXID": "SPDXRef-File--custom-Merged-custom-PsExt.ps1-1236406BE9FE7B860E27990A63905951D267C513", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "88590f32f2dee7c9eccbf4d73724b418fdfa64d71bdf43fd2a30e5b3422a87eb" + }, + { + "algorithm": "SHA1", + "checksumValue": "1236406be9fe7b860e27990a63905951d267c513" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Teams.PowerShell.Module.xml", + "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.PowerShell.Module.xml-EB2B86D36ADE4E37542F46AC4AF2A0E81087E582", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "14e403c1b3082085432ca2f1ae0d47c0491bd4cfd3234bc819493a7b4254c971" + }, + { + "algorithm": "SHA1", + "checksumValue": "eb2b86d36ade4e37542f46ac4af2a0e81087e582" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./internal/Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1", + "SPDXID": "SPDXRef-File--internal-Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1-37C5B051DBA7F642F313F10B87F53660153EB0B0", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "b41768b1431f31f1bf663dfe60c76da46523a17800c019a6c940af61746cd568" + }, + { + "algorithm": "SHA1", + "checksumValue": "37c5b051dba7f642f313f10b87f53660153eb0b0" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Polly.Contrib.WaitAndRetry.dll", + "SPDXID": "SPDXRef-File--net472-Polly.Contrib.WaitAndRetry.dll-BA74DF33836959F34518B64921D3A3F95D481BC1", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "3eefec0b280c7366d5a6ff01a32ba6572ec2d2bef8788d16250de8a68b15136f" + }, + { + "algorithm": "SHA1", + "checksumValue": "ba74df33836959f34518b64921d3a3f95d481bc1" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Data.Sqlite.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Data.Sqlite.dll-C1C86EBD194F15E1B21368632ADE968F775F0F37", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "d3d696ae0e0d7f00ae0081a1c66b9e0ca508a27314f438f2dfa044ce92463df8" + }, + { + "algorithm": "SHA1", + "checksumValue": "c1c86ebd194f15e1b21368632ade968f775f0f37" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/System.Numerics.Vectors.dll", + "SPDXID": "SPDXRef-File--net472-System.Numerics.Vectors.dll-80AE1F43F3E94A2A56E47E6526200311BE91EBFE", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "365af158d47210ac1e5d29b96ef1f18391757c7b4a11e941c56fec55ea45693c" + }, + { + "algorithm": "SHA1", + "checksumValue": "80ae1f43f3e94a2a56e47e6526200311be91ebfe" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Identity.Client.Broker.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Identity.Client.Broker.dll-D95D3FA029242D0F219083345D3D6F6C3FBFBE05", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "86937552711efd1d1702bd6c39a5f58400bd58ea5acdda28b8d542da14e886be" + }, + { + "algorithm": "SHA1", + "checksumValue": "d95d3fa029242d0f219083345d3d6f6c3fbfbe05" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Newtonsoft.Json.dll", + "SPDXID": "SPDXRef-File--net472-Newtonsoft.Json.dll-4D4776CD97BB5000F70D8847BFF3E83C9D485329", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "aaefac1d3466c290411a4be582e61912fd2dff9c8bbdd5e85d5799b6fad8abe1" + }, + { + "algorithm": "SHA1", + "checksumValue": "4d4776cd97bb5000f70d8847bff3e83c9d485329" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-E78625F5200A1A718EBB5B704C14E3FFADFA00B4", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "c9e38ee30d156c0d4cd21b4bb2c4c81b26ec105267dab767e563611b63809441" + }, + { + "algorithm": "SHA1", + "checksumValue": "e78625f5200a1a718ebb5b704c14e3ffadfa00b4" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./bin/BrotliSharpLib.dll", + "SPDXID": "SPDXRef-File--bin-BrotliSharpLib.dll-2E24506AA5F40ED36F6AD2BBA1A2330F3162E86B", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "8d2c843a44c601e4d430e3a514c702122a466de1d6c57ed7859e28a109631cc0" + }, + { + "algorithm": "SHA1", + "checksumValue": "2e24506aa5f40ed36f6ad2bba1a2330f3162e86b" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/System.Management.Automation.dll", + "SPDXID": "SPDXRef-File--net472-System.Management.Automation.dll-DF8EA78867A1F793EF49C71021B9B08B59B22B2E", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "9606e20b33aa0900d2e786327ae312072741627cc64f4108a5e1a2e0239368c5" + }, + { + "algorithm": "SHA1", + "checksumValue": "df8ea78867a1f793ef49c71021b9b08b59b22b2e" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./custom/CmdletConfig.json", + "SPDXID": "SPDXRef-File--custom-CmdletConfig.json-50F9EB97C3280FCB17FE7A71ED3B07B7CC8E2A4A", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "6999d64a2c6b9298616f00c2db2991977b2e74de249abcf39c02d5844e5876a4" + }, + { + "algorithm": "SHA1", + "checksumValue": "50f9eb97c3280fcb17fe7a71ed3b07b7cc8e2a4a" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Teams.PowerShell.TeamsCmdlets.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.PowerShell.TeamsCmdlets.dll-65142F147116D0CF25DFE4A603B2394C32FA0F86", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "b7e93d99b1ff526c562594ca4d0c1edb3295b72f99d6062d86722a6d8f626d1a" + }, + { + "algorithm": "SHA1", + "checksumValue": "65142f147116d0cf25dfe4a603b2394c32fa0f86" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Polly.dll", + "SPDXID": "SPDXRef-File--net472-Polly.dll-8674FDDBD9533EE718DDF9F49729036ED105462B", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "fc643fc147802081296c9abc580976a5fdf0eccb72cedd051ad26c99081bea14" + }, + { + "algorithm": "SHA1", + "checksumValue": "8674fddbd9533ee718ddf9f49729036ed105462b" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.IdentityModel.Tokens.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.IdentityModel.Tokens.dll-786A002F9A95D3A31FA7B5632AF548BD1ABE5719", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "f0b4bc9817145d88b2e7c8dfbe0df3b153f610a2c1ebc01843d606bd451d1af1" + }, + { + "algorithm": "SHA1", + "checksumValue": "786a002f9a95d3a31fa7b5632af548bd1abe5719" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/System.Runtime.CompilerServices.Unsafe.dll", + "SPDXID": "SPDXRef-File--net472-System.Runtime.CompilerServices.Unsafe.dll-4D6EA8EA4CEFD6236BDAE18A9714C415CE9E8E80", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "bdc470dc0cfb496e3f9a9cbd718b91cb354eec5f584d4ddf4c1e25f60c27b963" + }, + { + "algorithm": "SHA1", + "checksumValue": "4d6ea8ea4cefd6236bdae18a9714c415ce9e8e80" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Teams.Policy.Administration.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.dll-7A086CCCEF5693535BD3CB8A45C139118B0408B2", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "65625ea53b67d3901a633d013afd8b9f8e2c80261fe33b9417aac44fc7192cff" + }, + { + "algorithm": "SHA1", + "checksumValue": "7a086cccef5693535bd3cb8a45c139118b0408b2" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/CmdletSettings.json", + "SPDXID": "SPDXRef-File--netcoreapp3.1-CmdletSettings.json-98919B572DB8494892B52408CD0FE23531388E32", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "c0549eba3a249ef431b0d0c61ee232c815b74fe0cfa1b41b0860a8531f33e6dd" + }, + { + "algorithm": "SHA1", + "checksumValue": "98919b572db8494892b52408cd0fe23531388e32" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Web.WebView2.Wpf.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Web.WebView2.Wpf.dll-01489D64D3B9A1C6A8A0B7E0631B2B9BDD6173ED", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "4b23f4a7e9a5eb2fab4319c482efce1f03e702ee24128d70bbe7a029b097f3fb" + }, + { + "algorithm": "SHA1", + "checksumValue": "01489d64d3b9a1c6a8a0b7e0631b2b9bdd6173ed" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Configuration.Abstractions.dll-C74ADA74AB08D0A7C7FC30E62C8ADA166348F348", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "9b0d21d7f5456a327be6fc96b473033c2ccc4046f662fddcece228fbd68c470e" + }, + { + "algorithm": "SHA1", + "checksumValue": "c74ada74ab08d0a7c7fc30e62c8ada166348f348" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/System.IO.FileSystem.AccessControl.dll", + "SPDXID": "SPDXRef-File--net472-System.IO.FileSystem.AccessControl.dll-E201A6C3418738171437D08CE031AF7BE2581673", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "4eef61d4ecfb30bffec8ed73b92aee0c3e1f5b80f24b4a7864393c9ec5bdd6b8" + }, + { + "algorithm": "SHA1", + "checksumValue": "e201a6c3418738171437d08ce031af7be2581673" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/System.ValueTuple.dll", + "SPDXID": "SPDXRef-File--net472-System.ValueTuple.dll-FA705C62A84C9F1B1A73ECD9413ABFDBB2894C90", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "d574be0f1f0dd4411688c9f27fd5d42c7cf2cc858903566404d6dff0e5042b21" + }, + { + "algorithm": "SHA1", + "checksumValue": "fa705c62a84c9f1b1a73ecd9413abfdbb2894c90" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Identity.Client.Desktop.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.Desktop.dll-6F84B6E012BAFF57A4653E61727CABA01EA53C43", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "23c4ec59531f791e3dca7589659e9fbec44b1e07e5e522299d2cada177e284f2" + }, + { + "algorithm": "SHA1", + "checksumValue": "6f84b6e012baff57a4653e61727caba01ea53c43" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Azure.KeyVault.Core.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.Core.dll-CCDE9D64C0DAA1FB6F941E56E3A27909CE3FCF26", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "129e13e98133357d7e2a9525264bef9ea8a8905cfd869bf38cb720b02734640e" + }, + { + "algorithm": "SHA1", + "checksumValue": "ccde9d64c0daa1fb6f941e56e3a27909ce3fcf26" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Extensions.Logging.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Logging.dll-473DD93C24A86081D72EB2907A81DBE77989E072", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "d67870aeb4c480d5c7feed71e40dbcfd207d15269ad6bb71643a9e8dc66993db" + }, + { + "algorithm": "SHA1", + "checksumValue": "473dd93c24a86081d72eb2907a81dbe77989e072" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Rest.ClientRuntime.Azure.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Rest.ClientRuntime.Azure.dll-465A18651303F41BEC9371C24DDDF788E7E73C95", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "7ec5cf66fbcf3b362d33aee2e4cd9de7d3d93cc02085f1207aeb85c65e6b03d1" + }, + { + "algorithm": "SHA1", + "checksumValue": "465a18651303f41bec9371c24dddf788e7e73c95" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.IdentityModel.Abstractions.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.Abstractions.dll-7F05017570427CC8F35A41E8AD7B9C3C21E37041", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "cf06eaa9bedb73acd0fc79ca2ef6fcd39f5d1addb50c2e5a661953e658dc366d" + }, + { + "algorithm": "SHA1", + "checksumValue": "7f05017570427cc8f35a41e8ad7b9c3c21e37041" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./exports/ProxyCmdletDefinitionsWithHelp.ps1", + "SPDXID": "SPDXRef-File--exports-ProxyCmdletDefinitionsWithHelp.ps1-B55EA4708B83CBBC31C7C11573733B97558A9E44", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "7b69d14b84baaa2f4c9a7fc2b3685bb355d7fa5967708eebd235cef029d30ec3" + }, + { + "algorithm": "SHA1", + "checksumValue": "b55ea4708b83cbbc31c7c11573733b97558a9e44" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Azure.KeyVault.Cryptography.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Azure.KeyVault.Cryptography.dll-AA228C30A6E65B7C339BE70888E598F15384C7A6", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "d72ec87e8b67bf41c58e3274de605d44b8179fadf9a855dfc1ef282197c03057" + }, + { + "algorithm": "SHA1", + "checksumValue": "aa228c30a6e65b7c339be70888e598f15384c7a6" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Teams.PowerShell.Module.deps.json", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.Module.deps.json-C4B88E80F962180082211BFFE828518C999D28AC", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "338b410d27376b6fcc24a0fe13b58987b7b4a5f9b7f9a5610dc4d08c9ab76aee" + }, + { + "algorithm": "SHA1", + "checksumValue": "c4b88e80f962180082211bffe828518c999d28ac" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Extensions.Primitives.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Extensions.Primitives.dll-7CCB6B0AE1BE62E3111E575AD5D98D36E00695C5", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "e6d842132f776afea56db3225592e16c389c9edfb3cf8e8e7b66c9836b361774" + }, + { + "algorithm": "SHA1", + "checksumValue": "7ccb6b0ae1be62e3111e575ad5d98d36e00695c5" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll-DD1C2FD1FDCD6D3C5F23BB016802D1184E701B19", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "5c2a0c5441cbfa11e60ff1ff539f862b7304dfd194e27f7e8c80f3d4a149eb76" + }, + { + "algorithm": "SHA1", + "checksumValue": "dd1c2fd1fdcd6d3c5f23bb016802d1184e701b19" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Web.WebView2.Wpf.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Web.WebView2.Wpf.dll-F3A537C2581B037B3E5D6593319921D2A5377BB7", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "2125b041cae14c58336aa40d7093a8065c70e3a4c3c1bee43a8facd7a7164538" + }, + { + "algorithm": "SHA1", + "checksumValue": "f3a537c2581b037b3e5d6593319921d2a5377bb7" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.IdentityModel.JsonWebTokens.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.IdentityModel.JsonWebTokens.dll-B843B060F4CA7284C5598E05F71A16F0DC8C0E94", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "8d2f8ba457ea9552305548232bfcb0947b14b0896157058d02734ca1c70576da" + }, + { + "algorithm": "SHA1", + "checksumValue": "b843b060f4ca7284c5598e05f71a16f0dc8c0e94" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll-75691941EA0487A403C0F0A61CEBD63306A574DF", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "8df32615e41188f9fb9d0e97f79ba454a359e0d1b74018cb39cb08c624c872ab" + }, + { + "algorithm": "SHA1", + "checksumValue": "75691941ea0487a403c0f0a61cebd63306a574df" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.TeamsCmdlets.dll-23C4DE58B7ADF208D7FD5707E1641C1470D5298A", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "79a69ad418c503629214890a798609d91e1978d11183b5080f480dcb48b34cac" + }, + { + "algorithm": "SHA1", + "checksumValue": "23c4de58b7adf208d7fd5707e1641c1470d5298a" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/System.Management.Automation.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-System.Management.Automation.dll-A99AAEE15D9D52519310409F2D40C3FFA58C5868", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "2a418ff4da207623b23d1b9300c6482f5c2a04655c28ca5f56e6f00b9c5e8d48" + }, + { + "algorithm": "SHA1", + "checksumValue": "a99aaee15d9d52519310409f2d40c3ffa58c5868" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Web.WebView2.Core.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Web.WebView2.Core.dll-83EFC5EB7EF030C0FD97D30280196FA8DB7A2CAE", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "d253b4fcf246561878d64a4bedbe8db1d1b733bd30b0ca8a19dd18f4610afaff" + }, + { + "algorithm": "SHA1", + "checksumValue": "83efc5eb7ef030c0fd97d30280196fa8db7a2cae" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/System.Diagnostics.DiagnosticSource.dll", + "SPDXID": "SPDXRef-File--net472-System.Diagnostics.DiagnosticSource.dll-BB1ECBBB6CB7498AD99B15ED2A0ED4080ECC2624", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "46b9717b423a1abad67a498a7a5ee3b23209393f6a6709f0d4bd325d706b39b9" + }, + { + "algorithm": "SHA1", + "checksumValue": "bb1ecbbb6cb7498ad99b15ed2a0ed4080ecc2624" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Polly.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Polly.dll-B4A339D19EBAB0CF38FEC6BC92386A3B84CDFCBA", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "4eafaac13b6bf332e9bdc2375a1d330da65148c3cb8248bef71312c25b4932d1" + }, + { + "algorithm": "SHA1", + "checksumValue": "b4a339d19ebab0cf38fec6bc92386a3b84cdfcba" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/System.Security.Cryptography.ProtectedData.dll", + "SPDXID": "SPDXRef-File--net472-System.Security.Cryptography.ProtectedData.dll-F78C51196CE15F975FCAF3BC8BC8F07AE0633B34", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "abe09e765bcc0f25039632f91f2514d1e8fa5febb9815750a582007a9654eebc" + }, + { + "algorithm": "SHA1", + "checksumValue": "f78c51196ce15f975fcaf3bc8bc8f07ae0633b34" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/System.Security.Cryptography.ProtectedData.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-System.Security.Cryptography.ProtectedData.dll-C4C40D89C47D7FDE0B4CB5FBDC4E0DE650B843C4", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "2d2ddb2fa4b628162aad2d512abd47d8747eb43fc214b6a0b529a95d05ac5d5f" + }, + { + "algorithm": "SHA1", + "checksumValue": "c4c40d89c47d7fde0b4cb5fbdc4e0de650b843c4" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Applications.Events.Server.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Applications.Events.Server.dll-8784D6C77EFA3361390F5BA5F5F56A62434A4A35", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "c1eaa5d9c465ab18d7ca530d8f79b4c762044c81e35ceda7f4a3a00e9280fbca" + }, + { + "algorithm": "SHA1", + "checksumValue": "8784d6c77efa3361390f5ba5f5f56a62434a4a35" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.DependencyInjection.Abstractions.dll-B82F9689F6C16FB1F5DB89A0E92F2B9F756AEC48", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "68dcce73772f4109e08106d5117516aad682f12b359809d1c0d84d2a132ac4f7" + }, + { + "algorithm": "SHA1", + "checksumValue": "b82f9689f6c16fb1f5db89a0e92f2b9f756aec48" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/runtimes/win-x86/native/msalruntime_x86.dll", + "SPDXID": "SPDXRef-File--net472-runtimes-win-x86-native-msalruntime-x86.dll-26052D68A220E9F37A9368BACB54F73F5EEC9ACD", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "6be5f612da3c75c28a4bcab6b68c166b7252498cb01b65d65965d2b6d1ccee66" + }, + { + "algorithm": "SHA1", + "checksumValue": "26052d68a220e9f37a9368bacb54f73f5eec9acd" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Identity.Client.Extensions.Msal.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.Extensions.Msal.dll-C328ACF08DE3E229E48083958D9DF2A0EB25511A", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "ada85e7854037947f14cf746aecf6945193b4cf15d12193ef385f77e5b8bcf74" + }, + { + "algorithm": "SHA1", + "checksumValue": "c328acf08de3e229e48083958d9df2a0eb25511a" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Data.Sqlite.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Data.Sqlite.dll-B0A60E1148FB6EA35B8E807976E8C59561308280", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "1a96380bb969a5d671c5e3c7a667aa3fc30d41e2ecb2f64c62767adf2bc54a82" + }, + { + "algorithm": "SHA1", + "checksumValue": "b0a60e1148fb6ea35b8e807976e8c59561308280" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.ConfigAPI.CmdletHostContract.dll-2598CBE499A5C56E7EB9715E1BF6F19ECBCFDA02", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "6457a00dbe141bb431c32b375c52ab61e1552beb50f27f8cf9706f7761448480" + }, + { + "algorithm": "SHA1", + "checksumValue": "2598cbe499a5c56e7eb9715e1bf6f19ecbcfda02" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Teams.PowerShell.Module.pdb", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.Module.pdb-0D4A3F7CE6D8EC4D0E39617E91AE19F5E950E36C", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "67754af73201a54cf3c5dab744ebbd500d2f0687b1729f1b3283df84b7f3dc23" + }, + { + "algorithm": "SHA1", + "checksumValue": "0d4a3f7ce6d8ec4d0e39617e91ae19f5e950e36c" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Identity.Client.Broker.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.Broker.dll-BC752E36771DD07FE8844E846F5FBF63EF3F688F", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "f0210c30716c33cb16bb668f27915de1f95de0195f879e4ea6ba13b392ac3aa6" + }, + { + "algorithm": "SHA1", + "checksumValue": "bc752e36771dd07fe8844e846f5fbf63ef3f688f" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/OneCollectorChannel.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-OneCollectorChannel.dll-DB64576FB1DCA60F06B2A4524BC1CDE3046AB333", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "02b9bc991c22c83254aa190eaa3cd0cabcbf33f7a12187e5e98ef8c66dde8559" + }, + { + "algorithm": "SHA1", + "checksumValue": "db64576fb1dca60f06b2a4524bc1cde3046ab333" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./internal/Merged_internal.ps1", + "SPDXID": "SPDXRef-File--internal-Merged-internal.ps1-E61D882264080326303E91B96F3D947BC4CE44D5", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "169bc0d1817f61efb8da852b377987b0c8345a77e0fcb5378ddd543aca642e33" + }, + { + "algorithm": "SHA1", + "checksumValue": "e61d882264080326303e91b96f3d947bc4ce44d5" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-System.Runtime.CompilerServices.Unsafe.dll-99E811FB4338B59A38E10E5790B9F665158FACCA", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "72d483d32a3294370102083a12156fbe8f4ebb35fe9bd5004a038d927ba6ccd9" + }, + { + "algorithm": "SHA1", + "checksumValue": "99e811fb4338b59a38e10e5790b9f665158facca" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Azure.KeyVault.Jose.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Azure.KeyVault.Jose.dll-3C0B02C0F1457FE7C40A5BEAB2B2C2D604D26BC7", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "15e03afaf392e8236d199fa3bdfc5cda92b9fb75ddb875ab19943aaf728e77e9" + }, + { + "algorithm": "SHA1", + "checksumValue": "3c0b02c0f1457fe7c40a5beab2b2c2d604d26bc7" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Ic3.TenantAdminApi.Common.Helper.dll-37EED298BE541E9888717199B6A6C290CB4F1CC5", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "0ab543a64f80c74a0f7f6b5d6c3a10bac1e3d459d155b1577d8b42b04a5991fb" + }, + { + "algorithm": "SHA1", + "checksumValue": "37eed298be541e9888717199b6a6c290cb4f1cc5" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.IdentityModel.Logging.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.IdentityModel.Logging.dll-636BFD185EF171BFCEA938D30DEE7C496CB8DE5F", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "b03c64926a7ef4c7d55c863aee3d4acacf1f58bdc724a88654443d519358cd48" + }, + { + "algorithm": "SHA1", + "checksumValue": "636bfd185ef171bfcea938d30dee7c496cb8de5f" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./en-US/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-Help.xml", + "SPDXID": "SPDXRef-File--en-US-Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-Help.xml-8BCEFDA393D3F235296BFE9C300E9F0F024D76D9", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "cc48863967e5f859292a84f611617d55f53dfb89573a34c553645aec6152f407" + }, + { + "algorithm": "SHA1", + "checksumValue": "8bcefda393d3f235296bfe9c300e9f0f024d76d9" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll-F36BD5E7284A5D5FCA8641A61FE121503F672441", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "5bd7ede386bb794e42e04531ce1977d633183df8a26ad351456b4daf62731a26" + }, + { + "algorithm": "SHA1", + "checksumValue": "f36bd5e7284a5d5fca8641a61fe121503f672441" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Web.WebView2.WinForms.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Web.WebView2.WinForms.dll-5170D70FD93BFF35EEB85C330C9AEABC9F8CA3B8", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "5375c74198f884774894c9b7f9605ce29f48660e558ee6bc46f66e8dd48f3794" + }, + { + "algorithm": "SHA1", + "checksumValue": "5170d70fd93bff35eeb85c330c9aeabc9f8ca3b8" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.IdentityModel.Tokens.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.Tokens.dll-CAD68BAE9B1A3B1DB3DBC4D80F403E0CD152B0BE", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "241dcb210328f4a9f96a482f524450b99707ad6644c447a30b10636906d611b0" + }, + { + "algorithm": "SHA1", + "checksumValue": "cad68bae9b1a3b1db3dbc4d80f403e0cd152b0be" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/System.IdentityModel.Tokens.Jwt.dll", + "SPDXID": "SPDXRef-File--net472-System.IdentityModel.Tokens.Jwt.dll-2E6D418B7395C63920B41918530730E8E52E9931", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "1ed46cfb484e9841f0106ac02f6ce0524cc8d8f398f4864f87f815b41f5ae603" + }, + { + "algorithm": "SHA1", + "checksumValue": "2e6d418b7395c63920b41918530730e8e52e9931" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.ApplicationInsights.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.ApplicationInsights.dll-420C8DE42CA4E69F2C55DA3E4C7DBE60C80D6BD3", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "599ae5f978129e01b3e61ec0591c00e6f920e54b4635e57404df509193b5175f" + }, + { + "algorithm": "SHA1", + "checksumValue": "420c8de42ca4e69f2c55da3e4c7dbe60c80d6bd3" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Teams.Policy.Administration.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.dll-B92B8AA4660C723AFF249CB777A49B3C4DB2F6AF", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "3da20251956291da4add2bd1755982b7ecd08d5a4b80057ed8bf8d5e1357c838" + }, + { + "algorithm": "SHA1", + "checksumValue": "b92b8aa4660c723aff249cb777a49b3c4db2f6af" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/System.Security.Principal.Windows.dll", + "SPDXID": "SPDXRef-File--net472-System.Security.Principal.Windows.dll-8CBBBFE9705845C66E2E677E4077F4F50A794AAC", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "a19df5f448d5ddeb604621393a9f280286d28f7ce8e8da295409ef950632fe60" + }, + { + "algorithm": "SHA1", + "checksumValue": "8cbbbfe9705845c66e2e677e4077f4f50a794aac" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.AzureServiceDeploy.dll-3B4E33D47C0608E26B6AE871C6F17AD90B373D54", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "a15a591429b54f69e096f63076660eb4ba5bfb6691848fdeb35b48bf8c7dd678" + }, + { + "algorithm": "SHA1", + "checksumValue": "3b4e33d47c0608e26b6ae871c6f17ad90b373d54" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Web.WebView2.WinForms.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Web.WebView2.WinForms.dll-CC6A7DA721C22FEB1C7790083B86485BE62F4E65", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "cb1b86875efc199c92f15ec8eacda965fe5f636392465c4cfaacfaf643305f6c" + }, + { + "algorithm": "SHA1", + "checksumValue": "cc6a7da721c22feb1c7790083b86485be62f4e65" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Extensions.Configuration.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Extensions.Configuration.dll-378F9B613338528123DAB3A8A06387BF8D4A05B1", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "d881e17666583e3133f524d631b4777b1d1666299074f2ef429d338e70a9401e" + }, + { + "algorithm": "SHA1", + "checksumValue": "378f9b613338528123dab3a8a06387bf8d4a05b1" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Extensions.Logging.Abstractions.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Logging.Abstractions.dll-35EA89F23C780B1575B2066DB0D59F255971EB3D", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "3c786c0b64c0f71eb099960804ca311660046e919925a42841bb3be1a7c547f7" + }, + { + "algorithm": "SHA1", + "checksumValue": "35ea89f23c780b1575b2066db0d59f255971eb3d" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/System.IO.FileSystem.AccessControl.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-System.IO.FileSystem.AccessControl.dll-32D4A92D76DEA1CAEB25B3AA0515AE0FCC277D15", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "e09130c521554d251e706e1a1c026f4210e848d7c76a4768a5443856afcb869d" + }, + { + "algorithm": "SHA1", + "checksumValue": "32d4a92d76dea1caeb25b3aa0515ae0fcc277d15" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Identity.Client.NativeInterop.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.NativeInterop.dll-3D7B4623B6D2C977926245CA18E62B56CFD71ADA", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "bcf9fa7016be91642b55cd04dd285e57e0f411088615d909964dacdbac19dd0e" + }, + { + "algorithm": "SHA1", + "checksumValue": "3d7b4623b6d2c977926245ca18e62b56cfd71ada" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/runtimes/win-x86/native/msalruntime_x86.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-runtimes-win-x86-native-msalruntime-x86.dll-26052D68A220E9F37A9368BACB54F73F5EEC9ACD", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "6be5f612da3c75c28a4bcab6b68c166b7252498cb01b65d65965d2b6d1ccee66" + }, + { + "algorithm": "SHA1", + "checksumValue": "26052d68a220e9f37a9368bacb54f73f5eec9acd" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/runtimes/win-arm64/native/msalruntime_arm64.dll", + "SPDXID": "SPDXRef-File--net472-runtimes-win-arm64-native-msalruntime-arm64.dll-3F2E251D14303409EE92A72AE340D0F32797874A", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "d5c764b7c759d4ded84b552375551729bd754be8b55d9ec5ccc1d9ac75fc6509" + }, + { + "algorithm": "SHA1", + "checksumValue": "3f2e251d14303409ee92a72ae340d0f32797874a" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Azure.KeyVault.Cryptography.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.Cryptography.dll-A25754D83B145F2002D8B5F60042E0B23185828D", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "18c5988ce64c60ec2ab84eb2309e5b976e9844f74939e066e9c7cac0d2d8e0fc" + }, + { + "algorithm": "SHA1", + "checksumValue": "a25754d83b145f2002d8b5f60042e0b23185828d" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Extensions.Primitives.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Primitives.dll-97AEE7B6EE71F83486E1F1FCEDDCEC1BFA920713", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "a032e017cc2074057665056ab43c0cb7009361aa6c0d135c985dc51373fac4c4" + }, + { + "algorithm": "SHA1", + "checksumValue": "97aee7b6ee71f83486e1f1fceddcec1bfa920713" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.IdentityModel.JsonWebTokens.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.JsonWebTokens.dll-1E2DA042507433930C43192F1467547E7B540736", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "a18958cbd19cdeaba433cdc4422475ec3886a50c01caca58f09b4db69db35c1c" + }, + { + "algorithm": "SHA1", + "checksumValue": "1e2da042507433930c43192f1467547e7b540736" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll-75C87DA718FCE8604B436B93334B19E933510B93", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "de0e6c65094fc7a8a93135507d7c1540b0e0ded0226eab68afe1acaf47604916" + }, + { + "algorithm": "SHA1", + "checksumValue": "75c87da718fce8604b436b93334b19e933510b93" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.TeamsCmdlets.PowerShell.Connect.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.TeamsCmdlets.PowerShell.Connect.dll-970F383030BFB9CEAC762BD27C6C6BFC3805BFA7", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "94acd3a93bc404386e7650469175a14c7ebda75fba443545eb431f00431f2909" + }, + { + "algorithm": "SHA1", + "checksumValue": "970f383030bfb9ceac762bd27c6c6bfc3805bfa7" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-F0CAF63174AA6C5C7E4FB89ACFE5509AA348183F", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "48228f1f16238ac9d4e0271504eb53d519c648dcc961c6138ab88f2557a005bd" + }, + { + "algorithm": "SHA1", + "checksumValue": "f0caf63174aa6c5c7e4fb89acfe5509aa348183f" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Teams.PowerShell.Module.xml", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.Module.xml-EB2B86D36ADE4E37542F46AC4AF2A0E81087E582", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "14e403c1b3082085432ca2f1ae0d47c0491bd4cfd3234bc819493a7b4254c971" + }, + { + "algorithm": "SHA1", + "checksumValue": "eb2b86d36ade4e37542f46ac4af2a0e81087e582" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Polly.Contrib.WaitAndRetry.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Polly.Contrib.WaitAndRetry.dll-3DFCB287BE86C6727210CA8E49F182F27C3D006B", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "7fe73226748c6ecd7fb87b272320a4a6e2a79dd804f39131c6954f2c5629c3e4" + }, + { + "algorithm": "SHA1", + "checksumValue": "3dfcb287be86c6727210ca8e49f182f27c3d006b" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/System.Diagnostics.DiagnosticSource.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-System.Diagnostics.DiagnosticSource.dll-BF41BE7A3FBF94A3A364E82A7F554B766299675A", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "476dd818c1e47dcff2c610f037a4d0efd5024dbe8bd14e09eb4ee8b407cf53dc" + }, + { + "algorithm": "SHA1", + "checksumValue": "bf41be7a3fbf94a3a364e82a7f554b766299675a" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/System.Security.AccessControl.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-System.Security.AccessControl.dll-C37E8BADAD875C1B1D1351DDAF60F40D5CF5D96D", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "528f2cdbe00191e04466c95b6fcfd64e6b8960d9e8dd91f08a907411406603d2" + }, + { + "algorithm": "SHA1", + "checksumValue": "c37e8badad875c1b1d1351ddaf60f40d5cf5d96d" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/System.Security.Principal.Windows.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-System.Security.Principal.Windows.dll-1C6BC4E9F23295FF0BD3548533E381F311B9C19B", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "55697eaeb67c6997ddd92c16cd6bac4d47f2b1263bd69bcd01fa544459fb7ea0" + }, + { + "algorithm": "SHA1", + "checksumValue": "1c6bc4e9f23295ff0bd3548533e381f311b9c19b" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Identity.Client.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Identity.Client.dll-2E1F79B0BA029DFB3F3ADE53355AB13E3CDDE06B", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "0ba6d8700b8430cc72df021adb7d847b2997737711dd5b86e98efd9fe2f748f4" + }, + { + "algorithm": "SHA1", + "checksumValue": "2e1f79b0ba029dfb3f3ade53355ab13e3cdde06b" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Rest.ClientRuntime.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Rest.ClientRuntime.dll-74ABE77CF7A2CD9EDA543DA2B0F13EC41B66B326", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "2248bcefe293bbbdfc82624dc691830c9929f37ee5ebb0a8a60f915e5d69099d" + }, + { + "algorithm": "SHA1", + "checksumValue": "74abe77cf7a2cd9eda543da2b0f13ec41b66b326" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Teams.PowerShell.Module.pdb", + "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.PowerShell.Module.pdb-AE076B4C7317FBCC4FD99B448582170E794EFB34", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "1b161793a92a3ba3e3ec9b28f1dbd92714116026adbbab51058ddbdbf619bf68" + }, + { + "algorithm": "SHA1", + "checksumValue": "ae076b4c7317fbcc4fd99b448582170e794efb34" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/OneCollectorChannel.dll", + "SPDXID": "SPDXRef-File--net472-OneCollectorChannel.dll-DB64576FB1DCA60F06B2A4524BC1CDE3046AB333", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "02b9bc991c22c83254aa190eaa3cd0cabcbf33f7a12187e5e98ef8c66dde8559" + }, + { + "algorithm": "SHA1", + "checksumValue": "db64576fb1dca60f06b2a4524bc1cde3046ab333" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/System.Memory.dll", + "SPDXID": "SPDXRef-File--net472-System.Memory.dll-38EFB7650125235941F18A6AFA994B6BCBF8A126", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "badfc86389ea07ef70ede33210eea29efeb31bcbd9f6c34aa66f00b96d764101" + }, + { + "algorithm": "SHA1", + "checksumValue": "38efb7650125235941f18a6afa994b6bcbf8a126" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/runtimes/win-x64/native/msalruntime.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-runtimes-win-x64-native-msalruntime.dll-4D896DD09CD5597248077CF75D7B0F23B5F79EEC", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "9ca37d8aa1a7345c692856f30fbbb5abf7d15bcb1c06798987c3c9bd7813e971" + }, + { + "algorithm": "SHA1", + "checksumValue": "4d896dd09cd5597248077cf75d7b0f23b5f79eec" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/runtimes/win-x64/native/msalruntime.dll", + "SPDXID": "SPDXRef-File--net472-runtimes-win-x64-native-msalruntime.dll-4D896DD09CD5597248077CF75D7B0F23B5F79EEC", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "9ca37d8aa1a7345c692856f30fbbb5abf7d15bcb1c06798987c3c9bd7813e971" + }, + { + "algorithm": "SHA1", + "checksumValue": "4d896dd09cd5597248077cf75d7b0f23b5f79eec" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Azure.KeyVault.Jose.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.Jose.dll-FBD4C66A7D647627801101BB5E5952EA2682A82D", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "34d25b9ee596fdd5b4515bb2dd5da8fc8a68d19cb7c6f9ea45ce0ea94f1400b1" + }, + { + "algorithm": "SHA1", + "checksumValue": "fbd4c66a7d647627801101bb5e5952ea2682a82d" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Ic3.TenantAdminApi.Common.Helper.dll-37EED298BE541E9888717199B6A6C290CB4F1CC5", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "0ab543a64f80c74a0f7f6b5d6c3a10bac1e3d459d155b1577d8b42b04a5991fb" + }, + { + "algorithm": "SHA1", + "checksumValue": "37eed298be541e9888717199b6a6c290cb4f1cc5" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.IdentityModel.Logging.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.Logging.dll-ED6DD7AB91351309FFE9EE1BDFAC4E85E1AF4698", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "d0564435f400e298cf8613b589ea9622da3f087e9f050c9fc81dd326aefd714c" + }, + { + "algorithm": "SHA1", + "checksumValue": "ed6dd7ab91351309ffe9ee1bdfac4e85e1af4698" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll-151FE8CE0B4594B78184D8BC5432860EA629A03C", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "ed22d4475dcc6cdd75fe4def9344206ae288ee3613e5a40955a04e3688e7d9b3" + }, + { + "algorithm": "SHA1", + "checksumValue": "151fe8ce0b4594b78184d8bc5432860ea629a03c" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Web.WebView2.Core.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Web.WebView2.Core.dll-83EFC5EB7EF030C0FD97D30280196FA8DB7A2CAE", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "d253b4fcf246561878d64a4bedbe8db1d1b733bd30b0ca8a19dd18f4610afaff" + }, + { + "algorithm": "SHA1", + "checksumValue": "83efc5eb7ef030c0fd97d30280196fa8db7a2cae" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/System.IdentityModel.Tokens.Jwt.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-System.IdentityModel.Tokens.Jwt.dll-EF874D772069AC284BA293697664622E64170DBF", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "3be13ed666612440ca6745952388594ef911a06b55ca24ed3fea1a7fe7707ed6" + }, + { + "algorithm": "SHA1", + "checksumValue": "ef874d772069ac284ba293697664622e64170dbf" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/runtimes/win-arm64/native/msalruntime_arm64.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-runtimes-win-arm64-native-msalruntime-arm64.dll-3F2E251D14303409EE92A72AE340D0F32797874A", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "d5c764b7c759d4ded84b552375551729bd754be8b55d9ec5ccc1d9ac75fc6509" + }, + { + "algorithm": "SHA1", + "checksumValue": "3f2e251d14303409ee92a72ae340d0f32797874a" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll", + "SPDXID": "SPDXRef-File--bin-Microsoft.Teams.ConfigAPI.Cmdlets.private.dll-3E74DA17753E821EF5AAE6BFEFAADB035BCAEF6B", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "c05d847947f17e8dc08288fe4656444cfb81b96bb4a37277d1ba6fd63903187c" + }, + { + "algorithm": "SHA1", + "checksumValue": "3e74da17753e821ef5aae6bfefaadb035bcaef6b" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./en-US/MicrosoftTeams-help.xml", + "SPDXID": "SPDXRef-File--en-US-MicrosoftTeams-help.xml-6D89F3274A55AB62E3AB0B2AC9A20739643BBCBE", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "804880e3e6cedf24ec1b4f4e6bcdaeb8f578bd1fa2faf8ffbf45b2da6a59c559" + }, + { + "algorithm": "SHA1", + "checksumValue": "6d89f3274a55ab62e3ab0b2ac9a20739643bbcbe" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Azure.KeyVault.Core.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Azure.KeyVault.Core.dll-A14CEEF9ED164364F0E4D7E55A18F4D31CFCA4B3", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "51bc23e9944a5a8b14ea9778713065ffe090439a67c850e5e4deffc36f8e3d9a" + }, + { + "algorithm": "SHA1", + "checksumValue": "a14ceef9ed164364f0e4d7e55a18f4d31cfca4b3" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Extensions.Logging.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Extensions.Logging.dll-473DD93C24A86081D72EB2907A81DBE77989E072", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "d67870aeb4c480d5c7feed71e40dbcfd207d15269ad6bb71643a9e8dc66993db" + }, + { + "algorithm": "SHA1", + "checksumValue": "473dd93c24a86081d72eb2907a81dbe77989e072" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.IdentityModel.Abstractions.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.IdentityModel.Abstractions.dll-A212A6AB27FAC32F1D8FD7EE29C88E580F98B9DA", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "73b7c8d51042e852801456d1c69fafe7120868e9764023b04683845674c59f2e" + }, + { + "algorithm": "SHA1", + "checksumValue": "a212a6ab27fac32f1d8fd7ee29c88e580f98b9da" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll-AFE595802B070E7650F0E04F954C871401F7A9B9", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "6d6ca15658871fa82ce18c12b82213fb06941b1b27d29f7bd2b542a12daa6702" + }, + { + "algorithm": "SHA1", + "checksumValue": "afe595802b070e7650f0e04f954c871401f7a9b9" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.TeamsCmdlets.PowerShell.Connect.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.TeamsCmdlets.PowerShell.Connect.dll-1864C10656CB87F8BEDD21C31AFEE920D8C79F62", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "3a1128914317f95ed7d466b515f3a2cf83d8a1b4d4de09f064b2531fa4eec4f1" + }, + { + "algorithm": "SHA1", + "checksumValue": "1864c10656cb87f8bedd21c31afee920d8c79f62" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/System.Buffers.dll", + "SPDXID": "SPDXRef-File--net472-System.Buffers.dll-4ADAD327F7966812A2D4E6E0DF6700DCE90D9203", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "f4487985145c63d97161e6d63a55d30f512a1edbc1dd791369ee89aec126f09a" + }, + { + "algorithm": "SHA1", + "checksumValue": "4adad327f7966812a2d4e6e0df6700dce90d9203" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/System.Security.AccessControl.dll", + "SPDXID": "SPDXRef-File--net472-System.Security.AccessControl.dll-F62A4919CC8B15281D35357041B164B88D95B053", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "ed4801e0a5c04badc091f66f49f969f06c57dab7f14ed665295bca121b680634" + }, + { + "algorithm": "SHA1", + "checksumValue": "f62a4919cc8b15281d35357041b164b88d95b053" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.ApplicationInsights.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.ApplicationInsights.dll-F5557B0BCCE6B5D6B0D4821A34FE7EA37095DA1F", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "66530079f19f93685c42a0db9513b56cf2992bb32bd0ac50610a39f5ef69998b" + }, + { + "algorithm": "SHA1", + "checksumValue": "f5557b0bcce6b5d6b0d4821a34fe7ea37095da1f" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Extensions.Configuration.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Configuration.dll-B674B5BEB662BA07143DC3F659376A833DE3B307", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "ea3135eefa4db734fc127cd55f9173ccd3b2e94b420018b66e7be62a2ad4517d" + }, + { + "algorithm": "SHA1", + "checksumValue": "b674b5beb662ba07143dc3f659376a833de3b307" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Identity.Client.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.dll-86DD428AFC26F53C46E0DBEBB9418CFD119BB0C2", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "ad98e90b4d3b500ddf28ebe942d602a232e77af619ef7c596db2281ba5d08cac" + }, + { + "algorithm": "SHA1", + "checksumValue": "86dd428afc26f53c46e0dbebb9418cfd119bb0c2" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Rest.ClientRuntime.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Rest.ClientRuntime.dll-D8FEB8261C16FB4D543DDC73EB653E6D8ECBC0E5", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "adf0277056c72cf8e1ead97b36613282c775108f309b8435c8d5c323f38f9747" + }, + { + "algorithm": "SHA1", + "checksumValue": "d8feb8261c16fb4d543ddc73eb653e6d8ecbc0e5" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Teams.PowerShell.Module.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.Module.dll-328751D7D0346D5EC70041B8D24E612BEAE1F07C", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "b81725e14212a8e14909442d047e452051186e4239315fec5da0415af99272df" + }, + { + "algorithm": "SHA1", + "checksumValue": "328751d7d0346d5ec70041b8d24e612beae1f07c" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Newtonsoft.Json.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Newtonsoft.Json.dll-85B414A60C00D1ED5755F7F9D50ADDBE348A3614", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "5b934141b35a4dc966ef0c25159c90b88e289164dbbc01103244a5099741eb12" + }, + { + "algorithm": "SHA1", + "checksumValue": "85b414a60c00d1ed5755f7f9d50addbe348a3614" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/System.Management.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-System.Management.dll-07309D9DA1C5F7B5F50C73438067CF0083D64DC7", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "a6f0440c16310aa8bfd4970bc29612287e6a3a7d707d7b48c5b6442719e8c64c" + }, + { + "algorithm": "SHA1", + "checksumValue": "07309d9da1c5f7b5f50c73438067cf0083d64dc7" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + } + ], + "packages": [ + { + "name": "Microsoft.Skype.Security.Lorenz", + "SPDXID": "SPDXRef-Package-CE645B91D1E102C5ADFA2FE9FA88293752E1ED47F685D9D5DC5E03075280E0E3", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "0.2.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Skype.Security.Lorenz@0.2.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Azure Pipelines Hosted Image win22", + "SPDXID": "SPDXRef-Package-87DBC129E46E77857F5ECA3AB3A5EB8B516E2E67F885F6BB6243D1CA004FB440", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "20250831.1.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "https://github.com/actions/virtual-environments" + } + ], + "supplier": "Organization: Microsoft/GitHub" + }, + { + "name": "Microsoft.Teams.PowerShell.Connect", + "SPDXID": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.7.4", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Teams.PowerShell.Connect@1.7.4" + } + ], + "supplier": "Organization: Skype Admin Tenant Interfaces team" + }, + { + "name": "Microsoft.Teams.PowerShell.Module", + "SPDXID": "SPDXRef-Package-73F10AFE7A15AD6A85D18E5BEF5166AF2CCCC9AAF7E7C46F8AC2C216AE865D01", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "7.4.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Teams.PowerShell.Module@7.4.0" + } + ], + "supplier": "Organization: Microsoft Corporation" + }, + { + "name": "Microsoft.Ic3.AdminConfig.RP.Policy.FunctionalTest", + "SPDXID": "SPDXRef-Package-C3272C18BDE138977A4F6A28245A4662BEE080BD471EC1BC9C740232B877DC5F", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "21.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Ic3.AdminConfig.RP.Policy.FunctionalTest@21.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "MSTest.TestAdapter", + "SPDXID": "SPDXRef-Package-8DF9F1DC6CCE99BCAB81EC8023E1ED3CD940A36704E358DAE8362D08FAFD45B0", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "2.1.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/MSTest.TestAdapter@2.1.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "ServiceTopology", + "SPDXID": "SPDXRef-Package-51859863AD2341A201A718E83102C31AD33750C7FDCCCABDA897001A4B4ADAC1", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/ServiceTopology@1.0.0" + } + ], + "supplier": "Organization: ServiceTopology" + }, + { + "name": "office-cmdlet-updater", + "SPDXID": "SPDXRef-Package-2B845BD152273D72FE2AFC20FA987AF1A6499713ECA5A9C6306E0B5B4C72DA3B", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/office-cmdlet-updater@1.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "MSTest.TestFramework", + "SPDXID": "SPDXRef-Package-B7D63C69227797DAB4E0B488D700205A02ABA2C1D1A6841FF891E5F417797B09", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "2.1.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/MSTest.TestFramework@2.1.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Diagnostics.DiagnosticSource", + "SPDXID": "SPDXRef-Package-A092770E8354CA90D85493FC4F2941F25FCE4214BAF8EB9A9E4383C495E133E9", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "9.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Diagnostics.DiagnosticSource@9.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Newtonsoft.Json", + "SPDXID": "SPDXRef-Package-A7749B3F7443A0F0AFF64F71746F18D670D8D4FBF18B2138A4AD85A6BC9A810F", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "13.0.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Newtonsoft.Json@13.0.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "MSTest.TestAdapter", + "SPDXID": "SPDXRef-Package-74671EB8E35B4A22DF14E3B027232B1C75778285F2258802720CA2F93AC9490D", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "2.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/MSTest.TestAdapter@2.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.IdentityModel.Abstractions", + "SPDXID": "SPDXRef-Package-DA2AF0572DFE796D5ED4CBA3C0D769A0AEB1D2D1712BA876E8ACB41B661353B4", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.2.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.IdentityModel.Abstractions@8.2.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Identity.Client", + "SPDXID": "SPDXRef-Package-EF2D54FA98EC031265B142FF80780E498D62AF1FBF37D1B881F4D1528A8A8A0E", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.70.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Identity.Client@4.70.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "coverlet.collector", + "SPDXID": "SPDXRef-Package-4C3B9EAB65F57A8012A61AB041013CC14DDEF227C8C011C485D68401ED4A33A1", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.0.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/coverlet.collector@1.0.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Moq", + "SPDXID": "SPDXRef-Package-3248038335932D1D4047F57731B65A00918297ABB00C3DCFB05FB8A456FB63A2", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.5.28", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Moq@4.5.28" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.NET.Test.Sdk", + "SPDXID": "SPDXRef-Package-BD049C5100B248F06EBEC66C3BE118753E842489EC3E40AF36E080A56CF8286E", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "16.2.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.NET.Test.Sdk@16.2.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "NuGet.CommandLine", + "SPDXID": "SPDXRef-Package-33B1D8F98040445C1C019996980972FB5A3DA85A789108E0440ED021F416AB88", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "5.11.6", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/NuGet.CommandLine@5.11.6" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "MSTest.TestFramework", + "SPDXID": "SPDXRef-Package-BD578492E1B6D65E73FA738A546B0E31220C520674A7812D79178EADA585420A", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "2.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/MSTest.TestFramework@2.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Castle.Core", + "SPDXID": "SPDXRef-Package-4EC77DE72DF7856001C57E24CCB11F437B92DC6132B2272D5765CC62E1851102", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.3.3", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Castle.Core@3.3.3" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Identity.Client.Desktop", + "SPDXID": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.70.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Identity.Client.Desktop@4.70.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.CodeCoverage", + "SPDXID": "SPDXRef-Package-288304B4D65CA653A9F91AEEED832C8EDBDE12D62998B237EDD814A65B0F11CE", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "16.2.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.CodeCoverage@16.2.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Runtime.Serialization.Primitives", + "SPDXID": "SPDXRef-Package-5D34709A26D1F9AB9ACF1533059FF2089C126911B090DF3B9961364420E01C7E", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Runtime.Serialization.Primitives@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.PowerShell.Native", + "SPDXID": "SPDXRef-Package-98974C6C7FFEA0934A0B49276F784EF7433A314B8F4352E602465184EE7B9350", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "6.2.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.PowerShell.Native@6.2.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Configuration.ConfigurationManager", + "SPDXID": "SPDXRef-Package-48265A488C29B4798425AAB3E6AB86C51F61DA2EC4140043AB6467A6D1E98574", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.5.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Configuration.ConfigurationManager@4.5.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.Logging.Abstractions", + "SPDXID": "SPDXRef-Package-97A4624F33F0891481314670BD6833AC9E478270C8E9BE83E71715A09CD435FC", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.1.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Logging.Abstractions@1.1.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Applications.Events.Server", + "SPDXID": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.1.2.97", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Applications.Events.Server@1.1.2.97" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.IO", + "SPDXID": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.IO@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Data.Sqlite", + "SPDXID": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.1.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Data.Sqlite@1.1.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.IdentityModel.Tokens.Jwt", + "SPDXID": "SPDXRef-Package-8422F607B8266110A546C45992F70A0FB1B2A891E18E98FBBB9C7C5297435350", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "6.8.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.IdentityModel.Tokens.Jwt@6.8.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Threading.ThreadPool", + "SPDXID": "SPDXRef-Package-6B07767B8D24067A9C860F27DE2655663A6187C7DCB86797C0F07D5D2827293E", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Threading.ThreadPool@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Reflection.Extensions", + "SPDXID": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Reflection.Extensions@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Polly", + "SPDXID": "SPDXRef-Package-D87A871D9DCC8A4B4DC16C993FF9320F3AAB938B64A6EC2472FC2C1CBF3F7219", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "7.2.4", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Polly@7.2.4" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.ValueTuple", + "SPDXID": "SPDXRef-Package-C1475C5380732C85127A15B8BADF74D2619786E90578875B650082AE4497BC14", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.5.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.ValueTuple@4.5.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "SPDXID": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "NETStandard.Library", + "SPDXID": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.6.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/NETStandard.Library@1.6.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Identity.Client.NativeInterop", + "SPDXID": "SPDXRef-Package-8B6BB4F25EBC9904AE608061A1BCC884C55CF433714CB4E1F9F0AA3B8CA6D9FD", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "0.18.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Identity.Client.NativeInterop@0.18.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "SPDXID": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Diagnostics.Tracing", + "SPDXID": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Diagnostics.Tracing@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Reflection.Emit.Lightweight", + "SPDXID": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Reflection.Emit.Lightweight@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Resources.ResourceManager", + "SPDXID": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Resources.ResourceManager@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Web.WebView2", + "SPDXID": "SPDXRef-Package-BB5EED84C09683F587843DDAFC814F4B010F56955D0A82584767D72B99ABD849", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.0.864.35", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Web.WebView2@1.0.864.35" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Runtime.Extensions", + "SPDXID": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Runtime.Extensions@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Xml.XPath", + "SPDXID": "SPDXRef-Package-43357C895306E69902F1DB752C436B0CD3BF18128E7FBCD01CF1056589153BE0", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Xml.XPath@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Memory", + "SPDXID": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.5.5", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Memory@4.5.5" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "runtime.native.System.IO.Compression", + "SPDXID": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/runtime.native.System.IO.Compression@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Text.Encoding.Extensions", + "SPDXID": "SPDXRef-Package-22BC1B62603E565BA5827501118C102A4E869955E3DB43D001A4ADA2384D657B", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Text.Encoding.Extensions@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Runtime.Serialization.Xml", + "SPDXID": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Runtime.Serialization.Xml@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple", + "SPDXID": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "SPDXID": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Management.Automation", + "SPDXID": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "6.2.7", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Management.Automation@6.2.7" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Reflection", + "SPDXID": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Reflection@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Text.Encoding.CodePages", + "SPDXID": "SPDXRef-Package-E389C196CC3B31F9F0F95EF8A726F64453E62013B00C3C8B8C248EA8F581C52E", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.5.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Text.Encoding.CodePages@4.5.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Azure.KeyVault.AzureServiceDeploy", + "SPDXID": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Azure.KeyVault.AzureServiceDeploy@3.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Runtime.InteropServices.RuntimeInformation", + "SPDXID": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Runtime.InteropServices.RuntimeInformation@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.Configuration.Abstractions", + "SPDXID": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Configuration.Abstractions@8.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Teams.Policy.Administration.Configurations", + "SPDXID": "SPDXRef-Package-B421A049D84918A1509D87157C10713A7AB4A5875825A80B6DEA4A96C3685E82", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "12.2.29", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Teams.Policy.Administration.Configurations@12.2.29" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Numerics.Vectors", + "SPDXID": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.5.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Numerics.Vectors@4.5.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Xml.XmlDocument", + "SPDXID": "SPDXRef-Package-DDE5C44E3BD87F8156A218CD1BA03D4DA71B87C82336BF66C024F3A0F49CE80C", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Xml.XmlDocument@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Management.Infrastructure", + "SPDXID": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Management.Infrastructure@1.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Data.Common", + "SPDXID": "SPDXRef-Package-8CC68F5976CDE9EF39F904D527CADE89A54B7CCAD5368FC3E839D23A3ACD50B0", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Data.Common@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.CSharp", + "SPDXID": "SPDXRef-Package-751D58F61F982C3D7B11602BBEB943F9251AE4EFF8B6A12F0EC98F276D20C730", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.5.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.CSharp@4.5.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Runtime.CompilerServices.Unsafe", + "SPDXID": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "6.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Runtime.CompilerServices.Unsafe@6.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Security.Cryptography.X509Certificates", + "SPDXID": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Security.Cryptography.X509Certificates@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Azure.KeyVault.Core", + "SPDXID": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Azure.KeyVault.Core@3.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.NETCore.Platforms", + "SPDXID": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.1.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.NETCore.Platforms@1.1.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Security.Cryptography.Cng", + "SPDXID": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.5.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Security.Cryptography.Cng@4.5.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.IdentityModel.Logging", + "SPDXID": "SPDXRef-Package-9C5EC1F429A13E295E10F319F6A0EF6D3498213116DA080E8BB3B075E7C04EC5", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "6.8.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.IdentityModel.Logging@6.8.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "SPDXID": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Globalization", + "SPDXID": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Globalization@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Net.Http", + "SPDXID": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Net.Http@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.Logging", + "SPDXID": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.1.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Logging@1.1.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Buffers", + "SPDXID": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.5.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Buffers@4.5.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.AspNetCore.App.Ref", + "SPDXID": "SPDXRef-Package-960414DA8719C10D04651A042C6327736F11D52FA2FCB8501240FBA2B4B8FA57", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.1.10", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.AspNetCore.App.Ref@3.1.10" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.DirectoryServices", + "SPDXID": "SPDXRef-Package-CC37C138AFE3FD56BAF5242097421D8A247510DAC602473C0F908356A935DFBA", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.5.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.DirectoryServices@4.5.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "runtime.native.System.Net.Http", + "SPDXID": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/runtime.native.System.Net.Http@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Runtime.CompilerServices.VisualC", + "SPDXID": "SPDXRef-Package-74783B1098990678258F1B4E741A3CAF2954BDB52AB144B4550E60FBB11A594C", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Runtime.CompilerServices.VisualC@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.ComponentModel", + "SPDXID": "SPDXRef-Package-0466CE9286D5381D3008D7C7F928AD9A6CA431DB44B3090C1AC076F27AEF1BDC", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.ComponentModel@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Security.AccessControl", + "SPDXID": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "5.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Security.AccessControl@5.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Diagnostics.Tools", + "SPDXID": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Diagnostics.Tools@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "SPDXID": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Collections.Concurrent", + "SPDXID": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Collections.Concurrent@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Azure.KeyVault.Cryptography", + "SPDXID": "SPDXRef-Package-F5B1FB353339B8697A0ED2F54610AD24DBB36C6215C9B0F18F0BD2159D8766DB", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Azure.KeyVault.Cryptography@3.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Text.RegularExpressions", + "SPDXID": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Text.RegularExpressions@4.3.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.IO.Compression", + "SPDXID": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.IO.Compression@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Linq.Expressions", + "SPDXID": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Linq.Expressions@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "NuGet.Build.Tasks.Pack", + "SPDXID": "SPDXRef-Package-C5208AC43A9B8525DA67EA002836F84382F0C16587D945CE108125CDC4492B2A", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "5.2.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/NuGet.Build.Tasks.Pack@5.2.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.IdentityModel.Abstractions", + "SPDXID": "SPDXRef-Package-48B8396376BA44575395CB75027CF1F5E11012452DBD38F7C1D615CC57EC31E4", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "6.35.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.IdentityModel.Abstractions@6.35.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Threading", + "SPDXID": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Threading@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.IdentityModel.Tokens", + "SPDXID": "SPDXRef-Package-56FB670D33987C301B2779D33E9778876DA14F5F4E15B6F68A7D4E62B36CEDE4", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "6.8.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.IdentityModel.Tokens@6.8.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Runtime.InteropServices", + "SPDXID": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Runtime.InteropServices@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Security.Cryptography.ProtectedData", + "SPDXID": "SPDXRef-Package-DA0AF8340DCB876C7A8B0C3746460DBC5EE231998B283C8070BAB226E6C9182E", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "7.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Security.Cryptography.ProtectedData@7.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Reflection.TypeExtensions", + "SPDXID": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Reflection.TypeExtensions@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "SPDXID": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.IO.FileSystem.Primitives", + "SPDXID": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.IO.FileSystem.Primitives@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Management.Automation", + "SPDXID": "SPDXRef-Package-BEF799D6C49E27B8BA7EBAB371D28EC846DDA74F24BF0C17F527B7FAD829502F", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Management.Automation@3.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Globalization.Extensions", + "SPDXID": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Globalization.Extensions@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "PowerShellStandard.Library", + "SPDXID": "SPDXRef-Package-B512828296F96786715767A9D629FA4E02BEACAC0CC0BE4A7A1CFF55AF155FB6", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "5.1.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/PowerShellStandard.Library@5.1.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.IO.FileSystem.AccessControl", + "SPDXID": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "5.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.IO.FileSystem.AccessControl@5.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Diagnostics.DiagnosticSource", + "SPDXID": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "6.0.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Diagnostics.DiagnosticSource@6.0.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "OneCollectorChannel", + "SPDXID": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.1.0.234", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/OneCollectorChannel@1.1.0.234" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.IO.FileSystem", + "SPDXID": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.IO.FileSystem@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Security.SecureString", + "SPDXID": "SPDXRef-Package-556E04674AB21C6E689B621B54F3C112DD3673B2C5F20B63EE80559940B575CD", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Security.SecureString@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "SQLite", + "SPDXID": "SPDXRef-Package-9CFCE4B97775AC5FBD999304EF6211E727EC46AB197CE4281A857627376B4AE3", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.13.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/SQLite@3.13.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Win32.Registry.AccessControl", + "SPDXID": "SPDXRef-Package-0FC7C18C18F48CA2321CCA8E088120C9CCCCBE93BCC1BF1CC39C9C81C6243BBC", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.5.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Win32.Registry.AccessControl@4.5.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Net.Sockets", + "SPDXID": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Net.Sockets@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Xml.ReaderWriter", + "SPDXID": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Xml.ReaderWriter@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Identity.Client.Extensions.Msal", + "SPDXID": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.70.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Identity.Client.Extensions.Msal@4.70.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Azure.KeyVault.Jose", + "SPDXID": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Azure.KeyVault.Jose@3.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Net.WebHeaderCollection", + "SPDXID": "SPDXRef-Package-5343B694E9E8D06887CF8F4008BE0581FC0BD9BD2D28FC4370905FB693F311F8", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Net.WebHeaderCollection@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Rest.ClientRuntime", + "SPDXID": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "2.3.21", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Rest.ClientRuntime@2.3.21" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Win32.Registry", + "SPDXID": "SPDXRef-Package-CDAAFFA05EBF9CB4769A0302D45C4994A3310E518046D8A5549AFEE765ADFD9C", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.5.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Win32.Registry@4.5.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Runtime", + "SPDXID": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Runtime@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Xml.XDocument", + "SPDXID": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Xml.XDocument@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Globalization.Calendars", + "SPDXID": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Globalization.Calendars@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Reflection.Primitives", + "SPDXID": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Reflection.Primitives@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Polly.Contrib.WaitAndRetry", + "SPDXID": "SPDXRef-Package-65F3BB807AF49E7AD397E2DCDE7E8152B0F742044FF2ABFB7B8136F4D77F3E3D", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.1.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Polly.Contrib.WaitAndRetry@1.1.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Runtime.Numerics", + "SPDXID": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Runtime.Numerics@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Reflection.Metadata", + "SPDXID": "SPDXRef-Package-1699161828195A03FDB363E7F903B609D236C7AAADF0F4BC0BA1A33D4F1ADFD3", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.4.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Reflection.Metadata@1.4.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.WindowsDesktop.App.Ref", + "SPDXID": "SPDXRef-Package-85FB27F5A68228D1E9331D9E7057200D9845B178A51F7F40560E070D910A3E78", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.1.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.WindowsDesktop.App.Ref@3.1.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Private.DataContractSerialization", + "SPDXID": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Private.DataContractSerialization@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.DependencyInjection.Abstractions", + "SPDXID": "SPDXRef-Package-06B1FE03E3B06D8AB8CFF2AD4FC31D4A3796628ED49E9E383C7F1B7350B01C17", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.1.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.DependencyInjection.Abstractions@1.1.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Runtime", + "SPDXID": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Runtime@4.3.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Management", + "SPDXID": "SPDXRef-Package-2D315204EDF1805A0597A6B2DA6C5F35A222859A45FDEC22A15E70E4B966EEC2", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.5.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Management@4.5.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "SPDXID": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Ic3.TenantAdminApi.Common.Helper", + "SPDXID": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.0.28", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Ic3.TenantAdminApi.Common.Helper@1.0.28" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Security.Permissions", + "SPDXID": "SPDXRef-Package-422B168409BFFB6195EFFC810AEE94179F01C0BEFB6D8F78809CB9B8E5990035", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.5.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Security.Permissions@4.5.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.NETCore.Targets", + "SPDXID": "SPDXRef-Package-1D191B13C73F7AA570C121E8ACCAD625116B8267E418ECDD7222AAAB63A76A84", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.1.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.NETCore.Targets@3.1.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Newtonsoft.Json", + "SPDXID": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "13.0.3", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Newtonsoft.Json@13.0.3" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Threading.Timer", + "SPDXID": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Threading.Timer@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.ObjectModel", + "SPDXID": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.ObjectModel@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "SPDXID": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Diagnostics.StackTrace", + "SPDXID": "SPDXRef-Package-3BB6EBDC93E34DB9728F390186CC96E21CEA3F6204694FE88B4E928DA5F590A2", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Diagnostics.StackTrace@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "runtime.native.System.Security.Cryptography.OpenSsl", + "SPDXID": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.PowerShell.CoreCLR.Eventing", + "SPDXID": "SPDXRef-Package-2BD1526E06B0F242413706B6514589398B1723F2A354DCCBF1BCCF210693E051", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "6.2.7", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.PowerShell.CoreCLR.Eventing@6.2.7" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Win32.Primitives", + "SPDXID": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Win32.Primitives@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Security.Cryptography.Pkcs", + "SPDXID": "SPDXRef-Package-96C6F4964A911ECC8415520C77654FAF06CF5E4E3529948D9A3EE44CAB576A1E", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.5.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Security.Cryptography.Pkcs@4.5.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Reflection.Emit", + "SPDXID": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Reflection.Emit@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Collections", + "SPDXID": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Collections@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.CodeDom", + "SPDXID": "SPDXRef-Package-9BEFA8934C7016259385BFDA2906F038610220B7BCF08D5AA651BE6CB1541E51", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.5.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.CodeDom@4.5.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Reflection.Emit.ILGeneration", + "SPDXID": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Reflection.Emit.ILGeneration@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Security.Cryptography.Encoding", + "SPDXID": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Security.Cryptography.Encoding@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Net.Http", + "SPDXID": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.4", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Net.Http@4.3.4" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Teams.Policy.Administration.Cmdlets.OCE", + "SPDXID": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "0.1.12", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Teams.Policy.Administration.Cmdlets.OCE@0.1.12" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Threading.Tasks", + "SPDXID": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Threading.Tasks@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Text.Encoding", + "SPDXID": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Text.Encoding@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.AppContext", + "SPDXID": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.AppContext@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Newtonsoft.Json.Schema", + "SPDXID": "SPDXRef-Package-4253C15F4CFBF421ED9475A1ECC51B7D5AB8AAFB29FAA89F5A7CAD36B3E238BF", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.0.11", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Newtonsoft.Json.Schema@3.0.11" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Identity.Client.Broker", + "SPDXID": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.70.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Identity.Client.Broker@4.70.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Teams.ConfigAPI.CmdletHostContract", + "SPDXID": "SPDXRef-Package-0EC7DBA7DBE5D68E1291F1C50E81D40065F3E5A67A3F6B442E615B2410034A07", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.2.4", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Teams.ConfigAPI.CmdletHostContract@3.2.4" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.Primitives", + "SPDXID": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Primitives@8.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Security.Cryptography.Primitives", + "SPDXID": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Security.Cryptography.Primitives@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Rest.ClientRuntime.Azure", + "SPDXID": "SPDXRef-Package-270ED84947C7777BB807C511A9593856711C3D4CDD93E10AC7AEFEE203559CC1", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.3.19", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Rest.ClientRuntime.Azure@3.3.19" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.Logging.Configuration", + "SPDXID": "SPDXRef-Package-60E34765351FF197560F23F5A33487CE6A9CDAB7B864D630D385B30962F69264", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.0.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Logging.Configuration@8.0.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.ApplicationInsights", + "SPDXID": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "2.9.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.ApplicationInsights@2.9.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Teams.ConfigAPI.Cmdlets", + "SPDXID": "SPDXRef-Package-C4075941FB03650FDCD59B46A8581619ADCD07F99EFE70194DBA9592C3E1FA26", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.925.3", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Teams.ConfigAPI.Cmdlets@8.925.3" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.NETCore.Platforms", + "SPDXID": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "5.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.NETCore.Platforms@5.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Collections.Immutable", + "SPDXID": "SPDXRef-Package-8D6E0C5870BF65665DE70BE60EBDBCAE0A4EF9BFBD566A07D2FF53D2429D3D8A", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Collections.Immutable@1.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Text.RegularExpressions", + "SPDXID": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Text.RegularExpressions@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.DependencyInjection.Abstractions", + "SPDXID": "SPDXRef-Package-D45E310E2C14FFDECCB77BD34DCB98F27CC8FD0868B7FC5852809E9398F9DBBB", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.0.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.DependencyInjection.Abstractions@8.0.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "EV2.ArtifactsGenerator.M365", + "SPDXID": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "6.13.3069.1548", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/EV2.ArtifactsGenerator.M365@6.13.3069.1548" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Net.Primitives", + "SPDXID": "SPDXRef-Package-4A772E41F4A6EAB3FE426188D806207AA324762A1E8660E13FE72401D48FAA62", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.0.11", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Net.Primitives@4.0.11" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.Primitives", + "SPDXID": "SPDXRef-Package-44DB18E004D7C51DDF86DF1293D672335A4845195A2E9FD5A2759AC640E455F3", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.1.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Primitives@3.1.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.IC3.IaC.ServiceTopology", + "SPDXID": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.38.0-beta0.dev6", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.IC3.IaC.ServiceTopology@1.38.0-beta0.dev6" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "runtime.native.System.Security.Cryptography.Apple", + "SPDXID": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/runtime.native.System.Security.Cryptography.Apple@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Runtime.Handles", + "SPDXID": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Runtime.Handles@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "NJsonSchema", + "SPDXID": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "10.6.6", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/NJsonSchema@10.6.6" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.IC3.Resilience.ResilientAKV", + "SPDXID": "SPDXRef-Package-40690A07BFA5376B7B03E215586CF3C2EB068AC0A65919F6944423643354D09C", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.38.0-beta0.dev6", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.IC3.Resilience.ResilientAKV@1.38.0-beta0.dev6" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Ev2.PipeGen", + "SPDXID": "SPDXRef-Package-F1B6BB0BB534A7DBDD941A4FC083166529EB0E4AE0436D03BF9A19DF39568682", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.9.3116.14", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Ev2.PipeGen@3.9.3116.14" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.Logging.Abstractions", + "SPDXID": "SPDXRef-Package-97BC400C410A127EA0A6F1E477C40574387AA14FF569FF0CFC3D1E557EF6B346", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.0.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Logging.Abstractions@8.0.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.Options", + "SPDXID": "SPDXRef-Package-38EB9C1270DDB3C49EB53BA52C164FE55D40DE5425BDD41EA43CAF4CEE32F946", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.0.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Options@8.0.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.IC3.IaC.ServiceTopologyDataConnector", + "SPDXID": "SPDXRef-Package-87282A7A87A76DE572F9692A8F47DBB1F03CF570E45C9FC0B0310E8D6478FE19", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.38.0-beta0.dev6", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.IC3.IaC.ServiceTopologyDataConnector@1.38.0-beta0.dev6" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "FluentValidation", + "SPDXID": "SPDXRef-Package-D575E218E1AD9C06A5DB8DB369BA731FF160790530E672CE197C7A756E60F275", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.6.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/FluentValidation@8.6.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "SPDXID": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.M365.ConfigManagement.SAGE", + "SPDXID": "SPDXRef-Package-2EB7C341BA0E8C29E8E7D403BD2E1AC0BF0D499083C5EA6C264531D44D1DB591", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.0.3", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.M365.ConfigManagement.SAGE@3.0.3" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Security.Cryptography.Algorithms", + "SPDXID": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Security.Cryptography.Algorithms@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.IO.Compression.ZipFile", + "SPDXID": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.IO.Compression.ZipFile@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "EV2.ArtifactsGenerator.Stubs", + "SPDXID": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "6.13.3069.1548", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/EV2.ArtifactsGenerator.Stubs@6.13.3069.1548" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.Logging", + "SPDXID": "SPDXRef-Package-516B1175E3D416CA4328C97F94B8F3B3E28B0CB287494AAD09779F55F1DD33B5", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.0.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Logging@8.0.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "EV2.ArtifactsGenerator.Arm", + "SPDXID": "SPDXRef-Package-A55FFA0033D6824E362612DD7487681403BD255B228F8228120800797DDBF595", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "6.13.3069.1548", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/EV2.ArtifactsGenerator.Arm@6.13.3069.1548" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Buffers", + "SPDXID": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Buffers@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "YamlDotNet", + "SPDXID": "SPDXRef-Package-E9A7D272BEB1E5E7E2F201094675F616632FBFBDCBC919F56E63E2050698EFEA", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "16.2.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/YamlDotNet@16.2.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "EV2.ArtifactsGenerator", + "SPDXID": "SPDXRef-Package-07CF9D53D5D4D5E805493E9E69850AE6F3EE8BF6912290B58FBB9989E99FE550", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "6.13.3069.1548", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/EV2.ArtifactsGenerator@6.13.3069.1548" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Threading.Tasks.Extensions", + "SPDXID": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Threading.Tasks.Extensions@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.Configuration", + "SPDXID": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Configuration@8.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Xml.XmlSerializer", + "SPDXID": "SPDXRef-Package-51B112946B53F473049CC515F08F27E227C044A2E330920154720B3FCA47D0A9", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Xml.XmlSerializer@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.DependencyInjection", + "SPDXID": "SPDXRef-Package-50552D21DF380D2099AFC1BBDC3E90D648B6A631AC6A5912BB03D103DBD4C61F", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.0.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.DependencyInjection@8.0.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Net.Primitives", + "SPDXID": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Net.Primitives@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.NETCore.Targets", + "SPDXID": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.1.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.NETCore.Targets@1.1.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Security.Principal.Windows", + "SPDXID": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "5.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Security.Principal.Windows@5.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Teams.Policy.Administration", + "SPDXID": "SPDXRef-Package-D558AFB2CAD0E7DBCD0E628F69A6F76A18AEF3F674D04B5206B53D08F9C8FCFB", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "21.4.4", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Teams.Policy.Administration@21.4.4" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.Options.ConfigurationExtensions", + "SPDXID": "SPDXRef-Package-E66C6C3453F877C7645FD43F03250C16CF932A10D88048D6D91237A3B0CD7D79", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Options.ConfigurationExtensions@8.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Net.Requests", + "SPDXID": "SPDXRef-Package-71F0727D1B02C5BEA2BE2C6985E0093660DAEC028DB347AB157E3CFFC6779892", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Net.Requests@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "runtime.native.System", + "SPDXID": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/runtime.native.System@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.Logging.Console", + "SPDXID": "SPDXRef-Package-0C807593FD29954BC8F35B130404576B5EFB1BE225BA5CE0D4D6982EBBDFA51A", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.0.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Logging.Console@8.0.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.Configuration.Abstractions", + "SPDXID": "SPDXRef-Package-E8D0184AED843C8B48D3348C34E510C1AECCD9E05D002C20871C83F97B6A7A93", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.1.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Configuration.Abstractions@3.1.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Teams.PowerShell.TeamsCmdlets", + "SPDXID": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.5.6", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Teams.PowerShell.TeamsCmdlets@1.5.6" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Security.Cryptography.ProtectedData", + "SPDXID": "SPDXRef-Package-01FBE39297615D5615DCAF2AB4E213D489A90F4CC6E7CAA4E1F22CC76BA02C6A", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Security.Cryptography.ProtectedData@8.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "EV2.ArtifactsGenerator.Arm.CodeGen", + "SPDXID": "SPDXRef-Package-19657174A611A55D249468976305B5C48B4BCB2F4799785E382B139741337943", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "7.0.2775.279", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/EV2.ArtifactsGenerator.Arm.CodeGen@7.0.2775.279" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Security.Cryptography.OpenSsl", + "SPDXID": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Security.Cryptography.OpenSsl@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.IC3.Resilience.ResilientATM", + "SPDXID": "SPDXRef-Package-4E51A8116E7C39A9C87837BD3B1C17B8322CEA23323DD29B2E41173CD8E4D5B7", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.38.0-beta0.dev6", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.IC3.Resilience.ResilientATM@1.38.0-beta0.dev6" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.ComponentModel.Annotations", + "SPDXID": "SPDXRef-Package-6C4A577336DCEC1BFF078EE13466E604E8E8E1BCFDF5260E7493C92E8A3CB3D8", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.4.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.ComponentModel.Annotations@4.4.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.IdentityModel.JsonWebTokens", + "SPDXID": "SPDXRef-Package-99204549ED77ED47F9DF4D5E0F37A740DDCC7A2DE11C6CA47CEA1E5F014BA159", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "6.8.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.IdentityModel.JsonWebTokens@6.8.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Text.Encodings.Web", + "SPDXID": "SPDXRef-Package-D595C7CA243D238A94C6D0F9277EB98AE42EDA370259D4615A58E5BE78BAD562", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Text.Encodings.Web@8.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Namotion.Reflection", + "SPDXID": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "2.0.9", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Namotion.Reflection@2.0.9" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Threading.Thread", + "SPDXID": "SPDXRef-Package-EB28CDD241D6CCBF0718B9E555251C41DF66A198C6ECC693D09211542C656620", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Threading.Thread@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.NETCore.App.Ref", + "SPDXID": "SPDXRef-Package-8F4F099CF0C93C778298B3BBCE55BF07CA151A2C35C8535BDA77B9D9C17898ED", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.1.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.NETCore.App.Ref@3.1.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Diagnostics.Debug", + "SPDXID": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Diagnostics.Debug@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Security.Cryptography.Csp", + "SPDXID": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Security.Cryptography.Csp@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Linq", + "SPDXID": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Linq@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Memory", + "SPDXID": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.5.4", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Memory@4.5.4" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "SPDXID": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Configuration.ConfigurationManager", + "SPDXID": "SPDXRef-Package-B3D5F30C6F4C897DA31933117BFB391A9177287CC31D26072129972E47E06996", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Configuration.ConfigurationManager@8.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Console", + "SPDXID": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Console@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Castle.Core", + "SPDXID": "SPDXRef-Package-C6794715F4D3BB5F1392158FD713732FBB3814F34B6E0A7BB46F8C3FF448143C", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "5.1.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Castle.Core@5.1.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "ncrontab.signed", + "SPDXID": "SPDXRef-Package-0699C5B5BDA6C36E045C7CF5007C875DB68042CC8C566010576A760C9A8836BA", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/ncrontab.signed@3.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.Configuration", + "SPDXID": "SPDXRef-Package-3AA91AC82BC50105BAA785EFA25675A27458E28F643BC4289A18DDC937DFB505", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.1.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Configuration@3.1.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Text.Json", + "SPDXID": "SPDXRef-Package-2B70DCBDC91EBEE336A1E16DB1DB1C8D526FA433CB119E1CEBEC78CF76C2F429", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.0.5", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Text.Json@8.0.5" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Dynamic.Runtime", + "SPDXID": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Dynamic.Runtime@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.Configuration.Binder", + "SPDXID": "SPDXRef-Package-FA6524D4327177392F48D12F631FFB032EB1A9664E0130A4D5FC2DF650DAF25A", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.0.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Configuration.Binder@8.0.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.CSharp", + "SPDXID": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.CSharp@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Diagnostics.EventLog", + "SPDXID": "SPDXRef-Package-E74BE45208CF0E8CC846214160452E430DEA41E9714DB021F198D887076066F1", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Diagnostics.EventLog@8.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "infrastructure_itpro_teamspowershellmodule", + "SPDXID": "SPDXRef-RootPackage", + "downloadLocation": "NOASSERTION", + "packageVerificationCode": { + "packageVerificationCodeValue": "e0976f46eed5b66272e5ccaa96c512125456c77b" + }, + "filesAnalyzed": true, + "licenseConcluded": "NOASSERTION", + "licenseInfoFromFiles": [ + "NOASSERTION" + ], + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "72855948", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:swid/Microsoft/sbom.microsoft/infrastructure_itpro_teamspowershellmodule@72855948?tag_id=3d0b5a6e-cb38-49a0-b29f-af0f90a5ff5c" + } + ], + "supplier": "Organization: Microsoft", + "hasFiles": [ + "SPDXRef-File--netcoreapp3.1-runtimes-win-arm64-native-msalruntime-arm64.dll-3F2E251D14303409EE92A72AE340D0F32797874A", + "SPDXRef-File--netcoreapp3.1-runtimes-win-x64-native-msalruntime.dll-4D896DD09CD5597248077CF75D7B0F23B5F79EEC", + "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.Module.dll-328751D7D0346D5EC70041B8D24E612BEAE1F07C", + "SPDXRef-File--netcoreapp3.1-Microsoft.Rest.ClientRuntime.dll-D8FEB8261C16FB4D543DDC73EB653E6D8ECBC0E5", + "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.dll-86DD428AFC26F53C46E0DBEBB9418CFD119BB0C2", + "SPDXRef-File--netcoreapp3.1-Microsoft.ApplicationInsights.dll-F5557B0BCCE6B5D6B0D4821A34FE7EA37095DA1F", + "SPDXRef-File--net472-System.Buffers.dll-4ADAD327F7966812A2D4E6E0DF6700DCE90D9203", + "SPDXRef-File--net472-Microsoft.TeamsCmdlets.PowerShell.Connect.dll-1864C10656CB87F8BEDD21C31AFEE920D8C79F62", + "SPDXRef-File--net472-Microsoft.IdentityModel.Abstractions.dll-A212A6AB27FAC32F1D8FD7EE29C88E580F98B9DA", + "SPDXRef-File--net472-Microsoft.Extensions.Logging.dll-473DD93C24A86081D72EB2907A81DBE77989E072", + "SPDXRef-File--net472-Microsoft.Azure.KeyVault.Core.dll-A14CEEF9ED164364F0E4D7E55A18F4D31CFCA4B3", + "SPDXRef-File--netcoreapp3.1-System.Security.AccessControl.dll-C37E8BADAD875C1B1D1351DDAF60F40D5CF5D96D", + "SPDXRef-File--netcoreapp3.1-System.Runtime.CompilerServices.Unsafe.dll-99E811FB4338B59A38E10E5790B9F665158FACCA", + "SPDXRef-File--netcoreapp3.1-System.IdentityModel.Tokens.Jwt.dll-EF874D772069AC284BA293697664622E64170DBF", + "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.Logging.dll-ED6DD7AB91351309FFE9EE1BDFAC4E85E1AF4698", + "SPDXRef-File--netcoreapp3.1-Microsoft.Ic3.TenantAdminApi.Common.Helper.dll-37EED298BE541E9888717199B6A6C290CB4F1CC5", + "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.Jose.dll-FBD4C66A7D647627801101BB5E5952EA2682A82D", + "SPDXRef-File--net472-runtimes-win-x64-native-msalruntime.dll-4D896DD09CD5597248077CF75D7B0F23B5F79EEC", + "SPDXRef-File--net472-Microsoft.Teams.PowerShell.Module.pdb-AE076B4C7317FBCC4FD99B448582170E794EFB34", + "SPDXRef-File--net472-Microsoft.Rest.ClientRuntime.dll-74ABE77CF7A2CD9EDA543DA2B0F13EC41B66B326", + "SPDXRef-File--netcoreapp3.1-System.Security.Principal.Windows.dll-1C6BC4E9F23295FF0BD3548533E381F311B9C19B", + "SPDXRef-File--netcoreapp3.1-System.Diagnostics.DiagnosticSource.dll-BF41BE7A3FBF94A3A364E82A7F554B766299675A", + "SPDXRef-File--netcoreapp3.1-runtimes-win-x86-native-msalruntime-x86.dll-26052D68A220E9F37A9368BACB54F73F5EEC9ACD", + "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.NativeInterop.dll-3D7B4623B6D2C977926245CA18E62B56CFD71ADA", + "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Logging.Abstractions.dll-35EA89F23C780B1575B2066DB0D59F255971EB3D", + "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.Tokens.dll-CAD68BAE9B1A3B1DB3DBC4D80F403E0CD152B0BE", + "SPDXRef-File--net472-Microsoft.Web.WebView2.WinForms.dll-5170D70FD93BFF35EEB85C330C9AEABC9F8CA3B8", + "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll-F36BD5E7284A5D5FCA8641A61FE121503F672441", + "SPDXRef-File--en-US-Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-Help.xml-8BCEFDA393D3F235296BFE9C300E9F0F024D76D9", + "SPDXRef-File--net472-Microsoft.IdentityModel.Logging.dll-636BFD185EF171BFCEA938D30DEE7C496CB8DE5F", + "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.Module.pdb-0D4A3F7CE6D8EC4D0E39617E91AE19F5E950E36C", + "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.ConfigAPI.CmdletHostContract.dll-2598CBE499A5C56E7EB9715E1BF6F19ECBCFDA02", + "SPDXRef-File--net472-Microsoft.Extensions.Configuration.dll-378F9B613338528123DAB3A8A06387BF8D4A05B1", + "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.AzureServiceDeploy.dll-3B4E33D47C0608E26B6AE871C6F17AD90B373D54", + "SPDXRef-File--net472-System.Security.Principal.Windows.dll-8CBBBFE9705845C66E2E677E4077F4F50A794AAC", + "SPDXRef-File--netcoreapp3.1-OneCollectorChannel.dll-DB64576FB1DCA60F06B2A4524BC1CDE3046AB333", + "SPDXRef-File--net472-System.Diagnostics.DiagnosticSource.dll-BB1ECBBB6CB7498AD99B15ED2A0ED4080ECC2624", + "SPDXRef-File--net472-Microsoft.Extensions.Primitives.dll-7CCB6B0AE1BE62E3111E575AD5D98D36E00695C5", + "SPDXRef-File--netcoreapp3.1-Microsoft.Rest.ClientRuntime.Azure.dll-465A18651303F41BEC9371C24DDDF788E7E73C95", + "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.Desktop.dll-6F84B6E012BAFF57A4653E61727CABA01EA53C43", + "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Configuration.Abstractions.dll-C74ADA74AB08D0A7C7FC30E62C8ADA166348F348", + "SPDXRef-File--net472-Microsoft.IdentityModel.Tokens.dll-786A002F9A95D3A31FA7B5632AF548BD1ABE5719", + "SPDXRef-File--SfbRpsModule.format.ps1xml-95C93BA2237F52307E16FD0011B73A8A17198988", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.format.ps1xml-0031CFCDA71FB7B73ED2BCA2DDAD351018824C28", + "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.Core.dll-CCDE9D64C0DAA1FB6F941E56E3A27909CE3FCF26", + "SPDXRef-File--net472-Microsoft.Web.WebView2.Wpf.dll-01489D64D3B9A1C6A8A0B7E0631B2B9BDD6173ED", + "SPDXRef-File--netcoreapp3.1-CmdletSettings.json-98919B572DB8494892B52408CD0FE23531388E32", + "SPDXRef-File--net472-System.Runtime.CompilerServices.Unsafe.dll-4D6EA8EA4CEFD6236BDAE18A9714C415CE9E8E80", + "SPDXRef-File--custom-CmdletConfig.json-50F9EB97C3280FCB17FE7A71ED3B07B7CC8E2A4A", + "SPDXRef-File--net472-System.Management.Automation.dll-DF8EA78867A1F793EF49C71021B9B08B59B22B2E", + "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-E78625F5200A1A718EBB5B704C14E3FFADFA00B4", + "SPDXRef-File--net472-Newtonsoft.Json.dll-4D4776CD97BB5000F70D8847BFF3E83C9D485329", + "SPDXRef-File--net472-Microsoft.Identity.Client.Broker.dll-D95D3FA029242D0F219083345D3D6F6C3FBFBE05", + "SPDXRef-File--net472-Polly.Contrib.WaitAndRetry.dll-BA74DF33836959F34518B64921D3A3F95D481BC1", + "SPDXRef-File--net472-Microsoft.Teams.PowerShell.Module.xml-EB2B86D36ADE4E37542F46AC4AF2A0E81087E582", + "SPDXRef-File--net472-Microsoft.Teams.ConfigAPI.CmdletHostContract.dll-2598CBE499A5C56E7EB9715E1BF6F19ECBCFDA02", + "SPDXRef-File--net472-CmdletSettings.json-98919B572DB8494892B52408CD0FE23531388E32", + "SPDXRef-File--Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml-98FB01D72EBCC9822A8F2D2B371A67F5EB68FFD9", + "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml-DBFCA41EABFFE3B81453F66B9C37667D5CD777B6", + "SPDXRef-File--bin-Microsoft.Teams.ConfigAPI.Cmdlets.private.deps.json-796CAF23506427ABFD0CBB113FDCC1D690D70890", + "SPDXRef-File--net472-Microsoft.Data.Sqlite.dll-C1C86EBD194F15E1B21368632ADE968F775F0F37", + "SPDXRef-File--internal-Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1-37C5B051DBA7F642F313F10B87F53660153EB0B0", + "SPDXRef-File--custom-Merged-custom-PsExt.ps1-1236406BE9FE7B860E27990A63905951D267C513", + "SPDXRef-File--net472-Microsoft.Applications.Events.Server.dll-8784D6C77EFA3361390F5BA5F5F56A62434A4A35", + "SPDXRef-File--bin-System.IdentityModel.Tokens.Jwt.dll-3A24CC14199BFC426F29EF91DE9EF8614248CE87", + "SPDXRef-File--net472-Microsoft.Identity.Client.NativeInterop.dll-3C40B6CE463B6BBAACA4AEA0A2DE8B0BE9CFEA3D", + "SPDXRef-File--net472-Microsoft.Extensions.Configuration.Abstractions.dll-4D43E8350E71147AD6970E9F0DE4782470A76A0D", + "SPDXRef-File--net472-Microsoft.Azure.KeyVault.AzureServiceDeploy.dll-B68459369627DCCF555526C5B1385DB735A6B596", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.psd1-CAA75251D6858155BFB20A66AB60474F844BE319", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml-AF55F0C8AE06AF16DA52F63F8DD7CE43689A71A2", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.format.ps1xml-4C798B7AC19201899CBF18D0D9BC4145D5C0DCE1", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.format.ps1xml-8FE74E08BC9D801BDD0E388AB369EE06C0CF45EF", + "SPDXRef-File--netcoreapp3.1-Microsoft.TeamsCmdlets.PowerShell.Connect.dll-970F383030BFB9CEAC762BD27C6C6BFC3805BFA7", + "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll-75C87DA718FCE8604B436B93334B19E933510B93", + "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.JsonWebTokens.dll-1E2DA042507433930C43192F1467547E7B540736", + "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Primitives.dll-97AEE7B6EE71F83486E1F1FCEDDCEC1BFA920713", + "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.Cryptography.dll-A25754D83B145F2002D8B5F60042E0B23185828D", + "SPDXRef-File--net472-runtimes-win-arm64-native-msalruntime-arm64.dll-3F2E251D14303409EE92A72AE340D0F32797874A", + "SPDXRef-File--netcoreapp3.1-System.IO.FileSystem.AccessControl.dll-32D4A92D76DEA1CAEB25B3AA0515AE0FCC277D15", + "SPDXRef-File--netcoreapp3.1-Microsoft.Web.WebView2.WinForms.dll-CC6A7DA721C22FEB1C7790083B86485BE62F4E65", + "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.dll-B92B8AA4660C723AFF249CB777A49B3C4DB2F6AF", + "SPDXRef-File--internal-Merged-internal.ps1-E61D882264080326303E91B96F3D947BC4CE44D5", + "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.Broker.dll-BC752E36771DD07FE8844E846F5FBF63EF3F688F", + "SPDXRef-File--netcoreapp3.1-Microsoft.Data.Sqlite.dll-B0A60E1148FB6EA35B8E807976E8C59561308280", + "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.Extensions.Msal.dll-C328ACF08DE3E229E48083958D9DF2A0EB25511A", + "SPDXRef-File--net472-runtimes-win-x86-native-msalruntime-x86.dll-26052D68A220E9F37A9368BACB54F73F5EEC9ACD", + "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.DependencyInjection.Abstractions.dll-B82F9689F6C16FB1F5DB89A0E92F2B9F756AEC48", + "SPDXRef-File--netcoreapp3.1-Microsoft.Applications.Events.Server.dll-8784D6C77EFA3361390F5BA5F5F56A62434A4A35", + "SPDXRef-File--netcoreapp3.1-System.Security.Cryptography.ProtectedData.dll-C4C40D89C47D7FDE0B4CB5FBDC4E0DE650B843C4", + "SPDXRef-File--netcoreapp3.1-Polly.dll-B4A339D19EBAB0CF38FEC6BC92386A3B84CDFCBA", + "SPDXRef-File--net472-Microsoft.Web.WebView2.Core.dll-83EFC5EB7EF030C0FD97D30280196FA8DB7A2CAE", + "SPDXRef-File--netcoreapp3.1-System.Management.Automation.dll-A99AAEE15D9D52519310409F2D40C3FFA58C5868", + "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.TeamsCmdlets.dll-23C4DE58B7ADF208D7FD5707E1641C1470D5298A", + "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll-75691941EA0487A403C0F0A61CEBD63306A574DF", + "SPDXRef-File--net472-Microsoft.IdentityModel.JsonWebTokens.dll-B843B060F4CA7284C5598E05F71A16F0DC8C0E94", + "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.Module.deps.json-C4B88E80F962180082211BFFE828518C999D28AC", + "SPDXRef-File--net472-Microsoft.Azure.KeyVault.Cryptography.dll-AA228C30A6E65B7C339BE70888E598F15384C7A6", + "SPDXRef-File--exports-ProxyCmdletDefinitionsWithHelp.ps1-B55EA4708B83CBBC31C7C11573733B97558A9E44", + "SPDXRef-File--net472-System.ValueTuple.dll-FA705C62A84C9F1B1A73ECD9413ABFDBB2894C90", + "SPDXRef-File--net472-System.IO.FileSystem.AccessControl.dll-E201A6C3418738171437D08CE031AF7BE2581673", + "SPDXRef-File--net472-Microsoft.Identity.Client.Desktop.dll-F2B3DF67CE4F9D0963240B693154CBBEFC74ACF3", + "SPDXRef-File--en-US-Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml-0A3B265D20E863CBDCB264974391CA7D26766C0E", + "SPDXRef-File--Microsoft.Teams.PowerShell.TeamsCmdlets.psd1-3D8B6E0C11BD6300FFF53D1C1A7A32B6AA20EEDA", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1-32022DFD0447DA7210CABCB550C0B5834D73BE83", + "SPDXRef-File--bin-Microsoft.Teams.ConfigAPI.CmdletHostContract.dll-06ECDF615E407E69513D3771EEF0678ECCAFA269", + "SPDXRef-File--MicrosoftTeams.psd1-8419998A42D801598EE6BF96F39993FDFA043632", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CorePersonalAttendantPolicy.format.ps1xml-086D2A71368A70C95D7C14EB16E1E8AB9D85A950", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSipDevicesConfiguration.format.ps1xml-EDC75B30DF78641733D30DCDE1276706A601AB19", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1-CA346C864AFA6A636E57FBAF71010CAC45D122D1", + "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml-12984994444338BBAF1E1597874FE6D8AEA40BCA", + "SPDXRef-File--Microsoft.Teams.PowerShell.Module.xml-EB2B86D36ADE4E37542F46AC4AF2A0E81087E582", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml-58AE49EF1B2AF7DE983D1CAF24B20B5143D39652", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml-C9D1A219945A688828BE50FC9E0FF4C663334995", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoicemail.format.ps1xml-341891343CB3B9B8E207A7225210AEF601E6C779", + "SPDXRef-File--LICENSE.txt-AB40082210620A2914D58B309A048459E784E962", + "SPDXRef-File--netcoreapp3.1-Newtonsoft.Json.dll-85B414A60C00D1ED5755F7F9D50ADDBE348A3614", + "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Configuration.dll-B674B5BEB662BA07143DC3F659376A833DE3B307", + "SPDXRef-File--net472-System.Security.AccessControl.dll-F62A4919CC8B15281D35357041B164B88D95B053", + "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll-AFE595802B070E7650F0E04F954C871401F7A9B9", + "SPDXRef-File--en-US-MicrosoftTeams-help.xml-6D89F3274A55AB62E3AB0B2AC9A20739643BBCBE", + "SPDXRef-File--bin-Microsoft.Teams.ConfigAPI.Cmdlets.private.dll-3E74DA17753E821EF5AAE6BFEFAADB035BCAEF6B", + "SPDXRef-File--netcoreapp3.1-Microsoft.Web.WebView2.Core.dll-83EFC5EB7EF030C0FD97D30280196FA8DB7A2CAE", + "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll-151FE8CE0B4594B78184D8BC5432860EA629A03C", + "SPDXRef-File--net472-System.Memory.dll-38EFB7650125235941F18A6AFA994B6BCBF8A126", + "SPDXRef-File--net472-OneCollectorChannel.dll-DB64576FB1DCA60F06B2A4524BC1CDE3046AB333", + "SPDXRef-File--net472-Microsoft.Identity.Client.dll-2E1F79B0BA029DFB3F3ADE53355AB13E3CDDE06B", + "SPDXRef-File--SetMSTeamsReleaseEnvironment.ps1-F7DEE6409FCFBCFDA09733084816A3E3E46BCDEC", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.xml-56E8BFB9F020ADF074710972F5AFD1B1CED156FD", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml-B954F5ED1ECC7BE8740624D48ED04222953C8139", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml-CF6D5EA1DB485C9B63EA6DA6AEAC79D6A2C0249F", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml-4683A04476426B5AF5BCB26B98C17CA2B5CBFB02", + "SPDXRef-File--GetTeamSettings.format.ps1xml-0E61084BD489773DFB45DB5991C5901CB7A5EFE1", + "SPDXRef-File--netcoreapp3.1-Polly.Contrib.WaitAndRetry.dll-3DFCB287BE86C6727210CA8E49F182F27C3D006B", + "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.Module.xml-EB2B86D36ADE4E37542F46AC4AF2A0E81087E582", + "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-F0CAF63174AA6C5C7E4FB89ACFE5509AA348183F", + "SPDXRef-File--net472-Microsoft.ApplicationInsights.dll-420C8DE42CA4E69F2C55DA3E4C7DBE60C80D6BD3", + "SPDXRef-File--net472-System.IdentityModel.Tokens.Jwt.dll-2E6D418B7395C63920B41918530730E8E52E9931", + "SPDXRef-File--net472-Microsoft.Ic3.TenantAdminApi.Common.Helper.dll-37EED298BE541E9888717199B6A6C290CB4F1CC5", + "SPDXRef-File--net472-Microsoft.Azure.KeyVault.Jose.dll-3C0B02C0F1457FE7C40A5BEAB2B2C2D604D26BC7", + "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll-DD1C2FD1FDCD6D3C5F23BB016802D1184E701B19", + "SPDXRef-File--net472-System.Numerics.Vectors.dll-80AE1F43F3E94A2A56E47E6526200311BE91EBFE", + "SPDXRef-File--net472-Microsoft.Extensions.Logging.Abstractions.dll-35EA89F23C780B1575B2066DB0D59F255971EB3D", + "SPDXRef-File--bin-Microsoft.IdentityModel.JsonWebTokens.dll-87551F36BC46BFCBCC035626DBB42C764F085B3F", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml-34BB735EAEB2987A8AA72C522173DBDFCDE15331", + "SPDXRef-File--en-US-Microsoft.TeamsCmdlets.PowerShell.Connect.dll-Help.xml-FEFA595D1ECC65F8818C1A38F2BFEE3CF7E0575E", + "SPDXRef-File--custom-Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1-A507BC7A295AC14035F81E138A39F9CAA03DA5A2", + "SPDXRef-File--Microsoft.Teams.PowerShell.TeamsCmdlets.xml-88D15FB2F26191E1A37F10E60DF4CEE1F9BD0F17", + "SPDXRef-File--MicrosoftTeams.psm1-CE47D645C9A82231AD62188F14704A6DFC34C77A", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.psm1-AD8AC869067A6601073B9C0EC4406C1A08DD7AED", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml-EB263FF298D384DFD53520A387339547CAD10294", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml-963D4C2F388DECE045FD19E22F7DA7F85931807F", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1-C9A8BEE198E3F026B489127B8693505E98B051AE", + "SPDXRef-File--netcoreapp3.1-System.Management.dll-07309D9DA1C5F7B5F50C73438067CF0083D64DC7", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml-E04D2C01142905ABBB85203DF7BBC17A146FAA1D", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.xml-88C2B299A3EFEDAD1899AA8B26920DDE35863A3C", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml-A5C9ABD7C91C563124045980DBF5688288EA007F", + "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.psm1-06F2DE05C56549DA9A8C48D6BD6D237AC1B2F3DB", + "SPDXRef-File--net472-System.Security.Cryptography.ProtectedData.dll-F78C51196CE15F975FCAF3BC8BC8F07AE0633B34", + "SPDXRef-File--netcoreapp3.1-Microsoft.Web.WebView2.Wpf.dll-F3A537C2581B037B3E5D6593319921D2A5377BB7", + "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.Abstractions.dll-7F05017570427CC8F35A41E8AD7B9C3C21E37041", + "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Logging.dll-473DD93C24A86081D72EB2907A81DBE77989E072", + "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.dll-7A086CCCEF5693535BD3CB8A45C139118B0408B2", + "SPDXRef-File--net472-Polly.dll-8674FDDBD9533EE718DDF9F49729036ED105462B", + "SPDXRef-File--net472-Microsoft.Teams.PowerShell.TeamsCmdlets.dll-65142F147116D0CF25DFE4A603B2394C32FA0F86", + "SPDXRef-File--bin-BrotliSharpLib.dll-2E24506AA5F40ED36F6AD2BBA1A2330F3162E86B", + "SPDXRef-File--net472-Microsoft.Identity.Client.Extensions.Msal.dll-C328ACF08DE3E229E48083958D9DF2A0EB25511A", + "SPDXRef-File--net472-Microsoft.Extensions.DependencyInjection.Abstractions.dll-B82F9689F6C16FB1F5DB89A0E92F2B9F756AEC48", + "SPDXRef-File--bin-Microsoft.IdentityModel.Tokens.dll-55E4A13A430919E0B5EBF5FFEDBDAA0D66F84629", + "SPDXRef-File--net472-Microsoft.Teams.PowerShell.Module.dll-C00F202A7BBEBFB084966C3BE0027F9DF0BD47E6", + "SPDXRef-File--net472-Microsoft.Rest.ClientRuntime.Azure.dll-8070B48D5F4D2FDDDAC48DA510BC149691B59500", + "SPDXRef-File--bin-Microsoft.IdentityModel.Logging.dll-6209CAFD403DF6FB9DA046F36D7D89635FAE41A4", + "SPDXRef-File--Microsoft.Teams.PowerShell.TeamsCmdlets.psm1-DC1D08C8126D965B23565174CEF4A81366FF0F5E", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml-037B8BD58EE4DA3AAA0F696446289AED702B569E", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml-2B971324EA70583EF0B37D0DC6E0DA6D02060D2E", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1-29654B497D19C8508ABA749E8A25890FB166F3D3", + "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.psd1-358D6795FF6A747404383425E64D23D1336CB1C0" + ] + } + ], + "externalDocumentRefs": [ + { + "externalDocumentId": "DocumentRef-infrastructure-itpro-teamspowershellmodule-72855948-df0ba998c710f21e197664508d999d436f9101b6", + "spdxDocument": "https://sbom.microsoft/1:bkjmLDt9u0eOFl8ZpDAVyQ:ygnPgS-Zq0yaX5bXKLTDOQ/17372:72855948/TieF5svXXUyH6Wd04k7CaQ", + "checksum": { + "algorithm": "SHA1", + "checksumValue": "df0ba998c710f21e197664508d999d436f9101b6" + } + } + ], + "relationships": [ + { + "relationshipType": "PREREQUISITE_FOR", + "relatedSpdxElement": "DocumentRef-infrastructure-itpro-teamspowershellmodule-72855948-df0ba998c710f21e197664508d999d436f9101b6:SPDXRef-RootPackage", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-50552D21DF380D2099AFC1BBDC3E90D648B6A631AC6A5912BB03D103DBD4C61F", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DESCRIBED_BY", + "relatedSpdxElement": "SPDXRef-DOCUMENT", + "spdxElementId": "SPDXRef-File--..-..--manifest-spdx-2.2-manifest.spdx.json-DF0BA998C710F21E197664508D999D436F9101B6" + }, + { + "relationshipType": "DESCRIBES", + "relatedSpdxElement": "SPDXRef-RootPackage", + "spdxElementId": "SPDXRef-DOCUMENT" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-07CF9D53D5D4D5E805493E9E69850AE6F3EE8BF6912290B58FBB9989E99FE550", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-516B1175E3D416CA4328C97F94B8F3B3E28B0CB287494AAD09779F55F1DD33B5", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D575E218E1AD9C06A5DB8DB369BA731FF160790530E672CE197C7A756E60F275", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D575E218E1AD9C06A5DB8DB369BA731FF160790530E672CE197C7A756E60F275", + "spdxElementId": "SPDXRef-Package-07CF9D53D5D4D5E805493E9E69850AE6F3EE8BF6912290B58FBB9989E99FE550" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F1B6BB0BB534A7DBDD941A4FC083166529EB0E4AE0436D03BF9A19DF39568682", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-44DB18E004D7C51DDF86DF1293D672335A4845195A2E9FD5A2759AC640E455F3", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-44DB18E004D7C51DDF86DF1293D672335A4845195A2E9FD5A2759AC640E455F3", + "spdxElementId": "SPDXRef-Package-3AA91AC82BC50105BAA785EFA25675A27458E28F643BC4289A18DDC937DFB505" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-44DB18E004D7C51DDF86DF1293D672335A4845195A2E9FD5A2759AC640E455F3", + "spdxElementId": "SPDXRef-Package-E8D0184AED843C8B48D3348C34E510C1AECCD9E05D002C20871C83F97B6A7A93" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-0FC7C18C18F48CA2321CCA8E088120C9CCCCBE93BCC1BF1CC39C9C81C6243BBC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-CC37C138AFE3FD56BAF5242097421D8A247510DAC602473C0F908356A935DFBA" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-CDAAFFA05EBF9CB4769A0302D45C4994A3310E518046D8A5549AFEE765ADFD9C" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-65F3BB807AF49E7AD397E2DCDE7E8152B0F742044FF2ABFB7B8136F4D77F3E3D", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5343B694E9E8D06887CF8F4008BE0581FC0BD9BD2D28FC4370905FB693F311F8", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5343B694E9E8D06887CF8F4008BE0581FC0BD9BD2D28FC4370905FB693F311F8", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5343B694E9E8D06887CF8F4008BE0581FC0BD9BD2D28FC4370905FB693F311F8", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5343B694E9E8D06887CF8F4008BE0581FC0BD9BD2D28FC4370905FB693F311F8", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5343B694E9E8D06887CF8F4008BE0581FC0BD9BD2D28FC4370905FB693F311F8", + "spdxElementId": "SPDXRef-Package-71F0727D1B02C5BEA2BE2C6985E0093660DAEC028DB347AB157E3CFFC6779892" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B512828296F96786715767A9D629FA4E02BEACAC0CC0BE4A7A1CFF55AF155FB6", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B512828296F96786715767A9D629FA4E02BEACAC0CC0BE4A7A1CFF55AF155FB6", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B512828296F96786715767A9D629FA4E02BEACAC0CC0BE4A7A1CFF55AF155FB6", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B512828296F96786715767A9D629FA4E02BEACAC0CC0BE4A7A1CFF55AF155FB6", + "spdxElementId": "SPDXRef-Package-0EC7DBA7DBE5D68E1291F1C50E81D40065F3E5A67A3F6B442E615B2410034A07" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DA0AF8340DCB876C7A8B0C3746460DBC5EE231998B283C8070BAB226E6C9182E", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DA0AF8340DCB876C7A8B0C3746460DBC5EE231998B283C8070BAB226E6C9182E", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DA0AF8340DCB876C7A8B0C3746460DBC5EE231998B283C8070BAB226E6C9182E", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DA0AF8340DCB876C7A8B0C3746460DBC5EE231998B283C8070BAB226E6C9182E", + "spdxElementId": "SPDXRef-Package-48265A488C29B4798425AAB3E6AB86C51F61DA2EC4140043AB6467A6D1E98574" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DA0AF8340DCB876C7A8B0C3746460DBC5EE231998B283C8070BAB226E6C9182E", + "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-56FB670D33987C301B2779D33E9778876DA14F5F4E15B6F68A7D4E62B36CEDE4", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-56FB670D33987C301B2779D33E9778876DA14F5F4E15B6F68A7D4E62B36CEDE4", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-56FB670D33987C301B2779D33E9778876DA14F5F4E15B6F68A7D4E62B36CEDE4", + "spdxElementId": "SPDXRef-Package-8422F607B8266110A546C45992F70A0FB1B2A891E18E98FBBB9C7C5297435350" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-56FB670D33987C301B2779D33E9778876DA14F5F4E15B6F68A7D4E62B36CEDE4", + "spdxElementId": "SPDXRef-Package-99204549ED77ED47F9DF4D5E0F37A740DDCC7A2DE11C6CA47CEA1E5F014BA159" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F5B1FB353339B8697A0ED2F54610AD24DBB36C6215C9B0F18F0BD2159D8766DB", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F5B1FB353339B8697A0ED2F54610AD24DBB36C6215C9B0F18F0BD2159D8766DB", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F5B1FB353339B8697A0ED2F54610AD24DBB36C6215C9B0F18F0BD2159D8766DB", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F5B1FB353339B8697A0ED2F54610AD24DBB36C6215C9B0F18F0BD2159D8766DB", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F5B1FB353339B8697A0ED2F54610AD24DBB36C6215C9B0F18F0BD2159D8766DB", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-74783B1098990678258F1B4E741A3CAF2954BDB52AB144B4550E60FBB11A594C", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-74783B1098990678258F1B4E741A3CAF2954BDB52AB144B4550E60FBB11A594C", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-74783B1098990678258F1B4E741A3CAF2954BDB52AB144B4550E60FBB11A594C", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-74783B1098990678258F1B4E741A3CAF2954BDB52AB144B4550E60FBB11A594C", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-751D58F61F982C3D7B11602BBEB943F9251AE4EFF8B6A12F0EC98F276D20C730", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-751D58F61F982C3D7B11602BBEB943F9251AE4EFF8B6A12F0EC98F276D20C730", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-751D58F61F982C3D7B11602BBEB943F9251AE4EFF8B6A12F0EC98F276D20C730", + "spdxElementId": "SPDXRef-Package-8422F607B8266110A546C45992F70A0FB1B2A891E18E98FBBB9C7C5297435350" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-751D58F61F982C3D7B11602BBEB943F9251AE4EFF8B6A12F0EC98F276D20C730", + "spdxElementId": "SPDXRef-Package-99204549ED77ED47F9DF4D5E0F37A740DDCC7A2DE11C6CA47CEA1E5F014BA159" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-751D58F61F982C3D7B11602BBEB943F9251AE4EFF8B6A12F0EC98F276D20C730", + "spdxElementId": "SPDXRef-Package-56FB670D33987C301B2779D33E9778876DA14F5F4E15B6F68A7D4E62B36CEDE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B421A049D84918A1509D87157C10713A7AB4A5875825A80B6DEA4A96C3685E82", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-6B07767B8D24067A9C860F27DE2655663A6187C7DCB86797C0F07D5D2827293E", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-6B07767B8D24067A9C860F27DE2655663A6187C7DCB86797C0F07D5D2827293E", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-6B07767B8D24067A9C860F27DE2655663A6187C7DCB86797C0F07D5D2827293E", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-6B07767B8D24067A9C860F27DE2655663A6187C7DCB86797C0F07D5D2827293E", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-288304B4D65CA653A9F91AEEED832C8EDBDE12D62998B237EDD814A65B0F11CE", + "spdxElementId": "SPDXRef-Package-BD049C5100B248F06EBEC66C3BE118753E842489EC3E40AF36E080A56CF8286E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B7D63C69227797DAB4E0B488D700205A02ABA2C1D1A6841FF891E5F417797B09", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E9A7D272BEB1E5E7E2F201094675F616632FBFBDCBC919F56E63E2050698EFEA", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E9A7D272BEB1E5E7E2F201094675F616632FBFBDCBC919F56E63E2050698EFEA", + "spdxElementId": "SPDXRef-Package-07CF9D53D5D4D5E805493E9E69850AE6F3EE8BF6912290B58FBB9989E99FE550" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-87282A7A87A76DE572F9692A8F47DBB1F03CF570E45C9FC0B0310E8D6478FE19", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-40690A07BFA5376B7B03E215586CF3C2EB068AC0A65919F6944423643354D09C", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4A772E41F4A6EAB3FE426188D806207AA324762A1E8660E13FE72401D48FAA62", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4A772E41F4A6EAB3FE426188D806207AA324762A1E8660E13FE72401D48FAA62", + "spdxElementId": "SPDXRef-Package-F1B6BB0BB534A7DBDD941A4FC083166529EB0E4AE0436D03BF9A19DF39568682" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4A772E41F4A6EAB3FE426188D806207AA324762A1E8660E13FE72401D48FAA62", + "spdxElementId": "SPDXRef-Package-0699C5B5BDA6C36E045C7CF5007C875DB68042CC8C566010576A760C9A8836BA" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C4075941FB03650FDCD59B46A8581619ADCD07F99EFE70194DBA9592C3E1FA26", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-270ED84947C7777BB807C511A9593856711C3D4CDD93E10AC7AEFEE203559CC1", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-270ED84947C7777BB807C511A9593856711C3D4CDD93E10AC7AEFEE203559CC1", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-270ED84947C7777BB807C511A9593856711C3D4CDD93E10AC7AEFEE203559CC1", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-270ED84947C7777BB807C511A9593856711C3D4CDD93E10AC7AEFEE203559CC1", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-270ED84947C7777BB807C511A9593856711C3D4CDD93E10AC7AEFEE203559CC1", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-270ED84947C7777BB807C511A9593856711C3D4CDD93E10AC7AEFEE203559CC1", + "spdxElementId": "SPDXRef-Package-F5B1FB353339B8697A0ED2F54610AD24DBB36C6215C9B0F18F0BD2159D8766DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "spdxElementId": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "spdxElementId": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "spdxElementId": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9CFCE4B97775AC5FBD999304EF6211E727EC46AB197CE4281A857627376B4AE3", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9CFCE4B97775AC5FBD999304EF6211E727EC46AB197CE4281A857627376B4AE3", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9CFCE4B97775AC5FBD999304EF6211E727EC46AB197CE4281A857627376B4AE3", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9CFCE4B97775AC5FBD999304EF6211E727EC46AB197CE4281A857627376B4AE3", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9CFCE4B97775AC5FBD999304EF6211E727EC46AB197CE4281A857627376B4AE3", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-48B8396376BA44575395CB75027CF1F5E11012452DBD38F7C1D615CC57EC31E4", + "spdxElementId": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-48B8396376BA44575395CB75027CF1F5E11012452DBD38F7C1D615CC57EC31E4", + "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-48B8396376BA44575395CB75027CF1F5E11012452DBD38F7C1D615CC57EC31E4", + "spdxElementId": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-48B8396376BA44575395CB75027CF1F5E11012452DBD38F7C1D615CC57EC31E4", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-48B8396376BA44575395CB75027CF1F5E11012452DBD38F7C1D615CC57EC31E4", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-48B8396376BA44575395CB75027CF1F5E11012452DBD38F7C1D615CC57EC31E4", + "spdxElementId": "SPDXRef-Package-EF2D54FA98EC031265B142FF80780E498D62AF1FBF37D1B881F4D1528A8A8A0E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", + "spdxElementId": "SPDXRef-Package-0FC7C18C18F48CA2321CCA8E088120C9CCCCBE93BCC1BF1CC39C9C81C6243BBC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", + "spdxElementId": "SPDXRef-Package-CC37C138AFE3FD56BAF5242097421D8A247510DAC602473C0F908356A935DFBA" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", + "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", + "spdxElementId": "SPDXRef-Package-CDAAFFA05EBF9CB4769A0302D45C4994A3310E518046D8A5549AFEE765ADFD9C" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", + "spdxElementId": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-8422F607B8266110A546C45992F70A0FB1B2A891E18E98FBBB9C7C5297435350" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-99204549ED77ED47F9DF4D5E0F37A740DDCC7A2DE11C6CA47CEA1E5F014BA159" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-56FB670D33987C301B2779D33E9778876DA14F5F4E15B6F68A7D4E62B36CEDE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D87A871D9DCC8A4B4DC16C993FF9320F3AAB938B64A6EC2472FC2C1CBF3F7219", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D87A871D9DCC8A4B4DC16C993FF9320F3AAB938B64A6EC2472FC2C1CBF3F7219", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D87A871D9DCC8A4B4DC16C993FF9320F3AAB938B64A6EC2472FC2C1CBF3F7219", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BD578492E1B6D65E73FA738A546B0E31220C520674A7812D79178EADA585420A", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EF2D54FA98EC031265B142FF80780E498D62AF1FBF37D1B881F4D1528A8A8A0E", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-51859863AD2341A201A718E83102C31AD33750C7FDCCCABDA897001A4B4ADAC1", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D595C7CA243D238A94C6D0F9277EB98AE42EDA370259D4615A58E5BE78BAD562", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E51A8116E7C39A9C87837BD3B1C17B8322CEA23323DD29B2E41173CD8E4D5B7", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-19657174A611A55D249468976305B5C48B4BCB2F4799785E382B139741337943", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E8D0184AED843C8B48D3348C34E510C1AECCD9E05D002C20871C83F97B6A7A93", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E8D0184AED843C8B48D3348C34E510C1AECCD9E05D002C20871C83F97B6A7A93", + "spdxElementId": "SPDXRef-Package-3AA91AC82BC50105BAA785EFA25675A27458E28F643BC4289A18DDC937DFB505" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D558AFB2CAD0E7DBCD0E628F69A6F76A18AEF3F674D04B5206B53D08F9C8FCFB", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", + "spdxElementId": "SPDXRef-Package-0FC7C18C18F48CA2321CCA8E088120C9CCCCBE93BCC1BF1CC39C9C81C6243BBC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", + "spdxElementId": "SPDXRef-Package-CC37C138AFE3FD56BAF5242097421D8A247510DAC602473C0F908356A935DFBA" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", + "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", + "spdxElementId": "SPDXRef-Package-CDAAFFA05EBF9CB4769A0302D45C4994A3310E518046D8A5549AFEE765ADFD9C" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", + "spdxElementId": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", + "spdxElementId": "SPDXRef-Package-2BD1526E06B0F242413706B6514589398B1723F2A354DCCBF1BCCF210693E051" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", + "spdxElementId": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320", + "spdxElementId": "SPDXRef-Package-0C807593FD29954BC8F35B130404576B5EFB1BE225BA5CE0D4D6982EBBDFA51A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320", + "spdxElementId": "SPDXRef-Package-60E34765351FF197560F23F5A33487CE6A9CDAB7B864D630D385B30962F69264" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0", + "spdxElementId": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-06B1FE03E3B06D8AB8CFF2AD4FC31D4A3796628ED49E9E383C7F1B7350B01C17", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-06B1FE03E3B06D8AB8CFF2AD4FC31D4A3796628ED49E9E383C7F1B7350B01C17", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-06B1FE03E3B06D8AB8CFF2AD4FC31D4A3796628ED49E9E383C7F1B7350B01C17", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-06B1FE03E3B06D8AB8CFF2AD4FC31D4A3796628ED49E9E383C7F1B7350B01C17", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-06B1FE03E3B06D8AB8CFF2AD4FC31D4A3796628ED49E9E383C7F1B7350B01C17", + "spdxElementId": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1699161828195A03FDB363E7F903B609D236C7AAADF0F4BC0BA1A33D4F1ADFD3", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1699161828195A03FDB363E7F903B609D236C7AAADF0F4BC0BA1A33D4F1ADFD3", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1699161828195A03FDB363E7F903B609D236C7AAADF0F4BC0BA1A33D4F1ADFD3", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1699161828195A03FDB363E7F903B609D236C7AAADF0F4BC0BA1A33D4F1ADFD3", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1699161828195A03FDB363E7F903B609D236C7AAADF0F4BC0BA1A33D4F1ADFD3", + "spdxElementId": "SPDXRef-Package-3BB6EBDC93E34DB9728F390186CC96E21CEA3F6204694FE88B4E928DA5F590A2" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B", + "spdxElementId": "SPDXRef-Package-270ED84947C7777BB807C511A9593856711C3D4CDD93E10AC7AEFEE203559CC1" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B", + "spdxElementId": "SPDXRef-Package-F5B1FB353339B8697A0ED2F54610AD24DBB36C6215C9B0F18F0BD2159D8766DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-3AA91AC82BC50105BAA785EFA25675A27458E28F643BC4289A18DDC937DFB505" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-E8D0184AED843C8B48D3348C34E510C1AECCD9E05D002C20871C83F97B6A7A93" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-EF2D54FA98EC031265B142FF80780E498D62AF1FBF37D1B881F4D1528A8A8A0E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-44DB18E004D7C51DDF86DF1293D672335A4845195A2E9FD5A2759AC640E455F3" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-43357C895306E69902F1DB752C436B0CD3BF18128E7FBCD01CF1056589153BE0", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-43357C895306E69902F1DB752C436B0CD3BF18128E7FBCD01CF1056589153BE0", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-43357C895306E69902F1DB752C436B0CD3BF18128E7FBCD01CF1056589153BE0", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-43357C895306E69902F1DB752C436B0CD3BF18128E7FBCD01CF1056589153BE0", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B6BB4F25EBC9904AE608061A1BCC884C55CF433714CB4E1F9F0AA3B8CA6D9FD", + "spdxElementId": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B6BB4F25EBC9904AE608061A1BCC884C55CF433714CB4E1F9F0AA3B8CA6D9FD", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B6BB4F25EBC9904AE608061A1BCC884C55CF433714CB4E1F9F0AA3B8CA6D9FD", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B6BB4F25EBC9904AE608061A1BCC884C55CF433714CB4E1F9F0AA3B8CA6D9FD", + "spdxElementId": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C1475C5380732C85127A15B8BADF74D2619786E90578875B650082AE4497BC14", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C1475C5380732C85127A15B8BADF74D2619786E90578875B650082AE4497BC14", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C1475C5380732C85127A15B8BADF74D2619786E90578875B650082AE4497BC14", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C1475C5380732C85127A15B8BADF74D2619786E90578875B650082AE4497BC14", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C1475C5380732C85127A15B8BADF74D2619786E90578875B650082AE4497BC14", + "spdxElementId": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C1475C5380732C85127A15B8BADF74D2619786E90578875B650082AE4497BC14", + "spdxElementId": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-97A4624F33F0891481314670BD6833AC9E478270C8E9BE83E71715A09CD435FC", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-97A4624F33F0891481314670BD6833AC9E478270C8E9BE83E71715A09CD435FC", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-97A4624F33F0891481314670BD6833AC9E478270C8E9BE83E71715A09CD435FC", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-97A4624F33F0891481314670BD6833AC9E478270C8E9BE83E71715A09CD435FC", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-97A4624F33F0891481314670BD6833AC9E478270C8E9BE83E71715A09CD435FC", + "spdxElementId": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4C3B9EAB65F57A8012A61AB041013CC14DDEF227C8C011C485D68401ED4A33A1", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8DF9F1DC6CCE99BCAB81EC8023E1ED3CD940A36704E358DAE8362D08FAFD45B0", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-6C4A577336DCEC1BFF078EE13466E604E8E8E1BCFDF5260E7493C92E8A3CB3D8", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-6C4A577336DCEC1BFF078EE13466E604E8E8E1BCFDF5260E7493C92E8A3CB3D8", + "spdxElementId": "SPDXRef-Package-07CF9D53D5D4D5E805493E9E69850AE6F3EE8BF6912290B58FBB9989E99FE550" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-6C4A577336DCEC1BFF078EE13466E604E8E8E1BCFDF5260E7493C92E8A3CB3D8", + "spdxElementId": "SPDXRef-Package-D575E218E1AD9C06A5DB8DB369BA731FF160790530E672CE197C7A756E60F275" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-01FBE39297615D5615DCAF2AB4E213D489A90F4CC6E7CAA4E1F22CC76BA02C6A", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-01FBE39297615D5615DCAF2AB4E213D489A90F4CC6E7CAA4E1F22CC76BA02C6A", + "spdxElementId": "SPDXRef-Package-40690A07BFA5376B7B03E215586CF3C2EB068AC0A65919F6944423643354D09C" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-01FBE39297615D5615DCAF2AB4E213D489A90F4CC6E7CAA4E1F22CC76BA02C6A", + "spdxElementId": "SPDXRef-Package-B3D5F30C6F4C897DA31933117BFB391A9177287CC31D26072129972E47E06996" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0C807593FD29954BC8F35B130404576B5EFB1BE225BA5CE0D4D6982EBBDFA51A", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E66C6C3453F877C7645FD43F03250C16CF932A10D88048D6D91237A3B0CD7D79", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E66C6C3453F877C7645FD43F03250C16CF932A10D88048D6D91237A3B0CD7D79", + "spdxElementId": "SPDXRef-Package-0C807593FD29954BC8F35B130404576B5EFB1BE225BA5CE0D4D6982EBBDFA51A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E66C6C3453F877C7645FD43F03250C16CF932A10D88048D6D91237A3B0CD7D79", + "spdxElementId": "SPDXRef-Package-60E34765351FF197560F23F5A33487CE6A9CDAB7B864D630D385B30962F69264" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", + "spdxElementId": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9BEFA8934C7016259385BFDA2906F038610220B7BCF08D5AA651BE6CB1541E51", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9BEFA8934C7016259385BFDA2906F038610220B7BCF08D5AA651BE6CB1541E51", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9BEFA8934C7016259385BFDA2906F038610220B7BCF08D5AA651BE6CB1541E51", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9BEFA8934C7016259385BFDA2906F038610220B7BCF08D5AA651BE6CB1541E51", + "spdxElementId": "SPDXRef-Package-2D315204EDF1805A0597A6B2DA6C5F35A222859A45FDEC22A15E70E4B966EEC2" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-422B168409BFFB6195EFFC810AEE94179F01C0BEFB6D8F78809CB9B8E5990035", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-422B168409BFFB6195EFFC810AEE94179F01C0BEFB6D8F78809CB9B8E5990035", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-422B168409BFFB6195EFFC810AEE94179F01C0BEFB6D8F78809CB9B8E5990035", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-422B168409BFFB6195EFFC810AEE94179F01C0BEFB6D8F78809CB9B8E5990035", + "spdxElementId": "SPDXRef-Package-48265A488C29B4798425AAB3E6AB86C51F61DA2EC4140043AB6467A6D1E98574" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2D315204EDF1805A0597A6B2DA6C5F35A222859A45FDEC22A15E70E4B966EEC2", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2D315204EDF1805A0597A6B2DA6C5F35A222859A45FDEC22A15E70E4B966EEC2", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2D315204EDF1805A0597A6B2DA6C5F35A222859A45FDEC22A15E70E4B966EEC2", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CDAAFFA05EBF9CB4769A0302D45C4994A3310E518046D8A5549AFEE765ADFD9C", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CDAAFFA05EBF9CB4769A0302D45C4994A3310E518046D8A5549AFEE765ADFD9C", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CDAAFFA05EBF9CB4769A0302D45C4994A3310E518046D8A5549AFEE765ADFD9C", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CDAAFFA05EBF9CB4769A0302D45C4994A3310E518046D8A5549AFEE765ADFD9C", + "spdxElementId": "SPDXRef-Package-0FC7C18C18F48CA2321CCA8E088120C9CCCCBE93BCC1BF1CC39C9C81C6243BBC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-556E04674AB21C6E689B621B54F3C112DD3673B2C5F20B63EE80559940B575CD", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-556E04674AB21C6E689B621B54F3C112DD3673B2C5F20B63EE80559940B575CD", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-556E04674AB21C6E689B621B54F3C112DD3673B2C5F20B63EE80559940B575CD", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-556E04674AB21C6E689B621B54F3C112DD3673B2C5F20B63EE80559940B575CD", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BEF799D6C49E27B8BA7EBAB371D28EC846DDA74F24BF0C17F527B7FAD829502F", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BEF799D6C49E27B8BA7EBAB371D28EC846DDA74F24BF0C17F527B7FAD829502F", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-3AA91AC82BC50105BAA785EFA25675A27458E28F643BC4289A18DDC937DFB505" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-E8D0184AED843C8B48D3348C34E510C1AECCD9E05D002C20871C83F97B6A7A93" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-EF2D54FA98EC031265B142FF80780E498D62AF1FBF37D1B881F4D1528A8A8A0E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-44DB18E004D7C51DDF86DF1293D672335A4845195A2E9FD5A2759AC640E455F3" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DDE5C44E3BD87F8156A218CD1BA03D4DA71B87C82336BF66C024F3A0F49CE80C", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DDE5C44E3BD87F8156A218CD1BA03D4DA71B87C82336BF66C024F3A0F49CE80C", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DDE5C44E3BD87F8156A218CD1BA03D4DA71B87C82336BF66C024F3A0F49CE80C", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DDE5C44E3BD87F8156A218CD1BA03D4DA71B87C82336BF66C024F3A0F49CE80C", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DDE5C44E3BD87F8156A218CD1BA03D4DA71B87C82336BF66C024F3A0F49CE80C", + "spdxElementId": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DDE5C44E3BD87F8156A218CD1BA03D4DA71B87C82336BF66C024F3A0F49CE80C", + "spdxElementId": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8422F607B8266110A546C45992F70A0FB1B2A891E18E98FBBB9C7C5297435350", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8422F607B8266110A546C45992F70A0FB1B2A891E18E98FBBB9C7C5297435350", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4EC77DE72DF7856001C57E24CCB11F437B92DC6132B2272D5765CC62E1851102", + "spdxElementId": "SPDXRef-Package-3248038335932D1D4047F57731B65A00918297ABB00C3DCFB05FB8A456FB63A2" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DA2AF0572DFE796D5ED4CBA3C0D769A0AEB1D2D1712BA876E8ACB41B661353B4", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2B845BD152273D72FE2AFC20FA987AF1A6499713ECA5A9C6306E0B5B4C72DA3B", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2B70DCBDC91EBEE336A1E16DB1DB1C8D526FA433CB119E1CEBEC78CF76C2F429", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2B70DCBDC91EBEE336A1E16DB1DB1C8D526FA433CB119E1CEBEC78CF76C2F429", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2B70DCBDC91EBEE336A1E16DB1DB1C8D526FA433CB119E1CEBEC78CF76C2F429", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2B70DCBDC91EBEE336A1E16DB1DB1C8D526FA433CB119E1CEBEC78CF76C2F429", + "spdxElementId": "SPDXRef-Package-2EB7C341BA0E8C29E8E7D403BD2E1AC0BF0D499083C5EA6C264531D44D1DB591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0699C5B5BDA6C36E045C7CF5007C875DB68042CC8C566010576A760C9A8836BA", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0699C5B5BDA6C36E045C7CF5007C875DB68042CC8C566010576A760C9A8836BA", + "spdxElementId": "SPDXRef-Package-F1B6BB0BB534A7DBDD941A4FC083166529EB0E4AE0436D03BF9A19DF39568682" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C6794715F4D3BB5F1392158FD713732FBB3814F34B6E0A7BB46F8C3FF448143C", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C6794715F4D3BB5F1392158FD713732FBB3814F34B6E0A7BB46F8C3FF448143C", + "spdxElementId": "SPDXRef-Package-07CF9D53D5D4D5E805493E9E69850AE6F3EE8BF6912290B58FBB9989E99FE550" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B3D5F30C6F4C897DA31933117BFB391A9177287CC31D26072129972E47E06996", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B3D5F30C6F4C897DA31933117BFB391A9177287CC31D26072129972E47E06996", + "spdxElementId": "SPDXRef-Package-40690A07BFA5376B7B03E215586CF3C2EB068AC0A65919F6944423643354D09C" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-3AA91AC82BC50105BAA785EFA25675A27458E28F643BC4289A18DDC937DFB505" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-E8D0184AED843C8B48D3348C34E510C1AECCD9E05D002C20871C83F97B6A7A93" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-EF2D54FA98EC031265B142FF80780E498D62AF1FBF37D1B881F4D1528A8A8A0E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-44DB18E004D7C51DDF86DF1293D672335A4845195A2E9FD5A2759AC640E455F3" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8F4F099CF0C93C778298B3BBCE55BF07CA151A2C35C8535BDA77B9D9C17898ED", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EB28CDD241D6CCBF0718B9E555251C41DF66A198C6ECC693D09211542C656620", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EB28CDD241D6CCBF0718B9E555251C41DF66A198C6ECC693D09211542C656620", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EB28CDD241D6CCBF0718B9E555251C41DF66A198C6ECC693D09211542C656620", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EB28CDD241D6CCBF0718B9E555251C41DF66A198C6ECC693D09211542C656620", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-51B112946B53F473049CC515F08F27E227C044A2E330920154720B3FCA47D0A9", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-51B112946B53F473049CC515F08F27E227C044A2E330920154720B3FCA47D0A9", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-51B112946B53F473049CC515F08F27E227C044A2E330920154720B3FCA47D0A9", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-51B112946B53F473049CC515F08F27E227C044A2E330920154720B3FCA47D0A9", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-51B112946B53F473049CC515F08F27E227C044A2E330920154720B3FCA47D0A9", + "spdxElementId": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-51B112946B53F473049CC515F08F27E227C044A2E330920154720B3FCA47D0A9", + "spdxElementId": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "spdxElementId": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", + "spdxElementId": "SPDXRef-Package-516B1175E3D416CA4328C97F94B8F3B3E28B0CB287494AAD09779F55F1DD33B5" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", + "spdxElementId": "SPDXRef-Package-38EB9C1270DDB3C49EB53BA52C164FE55D40DE5425BDD41EA43CAF4CEE32F946" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", + "spdxElementId": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", + "spdxElementId": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-07CF9D53D5D4D5E805493E9E69850AE6F3EE8BF6912290B58FBB9989E99FE550" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-270ED84947C7777BB807C511A9593856711C3D4CDD93E10AC7AEFEE203559CC1" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-F5B1FB353339B8697A0ED2F54610AD24DBB36C6215C9B0F18F0BD2159D8766DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-0EC7DBA7DBE5D68E1291F1C50E81D40065F3E5A67A3F6B442E615B2410034A07" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C5208AC43A9B8525DA67EA002836F84382F0C16587D945CE108125CDC4492B2A", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-3AA91AC82BC50105BAA785EFA25675A27458E28F643BC4289A18DDC937DFB505" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-E8D0184AED843C8B48D3348C34E510C1AECCD9E05D002C20871C83F97B6A7A93" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-44DB18E004D7C51DDF86DF1293D672335A4845195A2E9FD5A2759AC640E455F3" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-EF2D54FA98EC031265B142FF80780E498D62AF1FBF37D1B881F4D1528A8A8A0E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-98974C6C7FFEA0934A0B49276F784EF7433A314B8F4352E602465184EE7B9350", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-98974C6C7FFEA0934A0B49276F784EF7433A314B8F4352E602465184EE7B9350", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-98974C6C7FFEA0934A0B49276F784EF7433A314B8F4352E602465184EE7B9350", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-74671EB8E35B4A22DF14E3B027232B1C75778285F2258802720CA2F93AC9490D", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C3272C18BDE138977A4F6A28245A4662BEE080BD471EC1BC9C740232B877DC5F", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A55FFA0033D6824E362612DD7487681403BD255B228F8228120800797DDBF595", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2EB7C341BA0E8C29E8E7D403BD2E1AC0BF0D499083C5EA6C264531D44D1DB591", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2EB7C341BA0E8C29E8E7D403BD2E1AC0BF0D499083C5EA6C264531D44D1DB591", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2EB7C341BA0E8C29E8E7D403BD2E1AC0BF0D499083C5EA6C264531D44D1DB591", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-97BC400C410A127EA0A6F1E477C40574387AA14FF569FF0CFC3D1E557EF6B346", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-97BC400C410A127EA0A6F1E477C40574387AA14FF569FF0CFC3D1E557EF6B346", + "spdxElementId": "SPDXRef-Package-516B1175E3D416CA4328C97F94B8F3B3E28B0CB287494AAD09779F55F1DD33B5" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D45E310E2C14FFDECCB77BD34DCB98F27CC8FD0868B7FC5852809E9398F9DBBB", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D45E310E2C14FFDECCB77BD34DCB98F27CC8FD0868B7FC5852809E9398F9DBBB", + "spdxElementId": "SPDXRef-Package-50552D21DF380D2099AFC1BBDC3E90D648B6A631AC6A5912BB03D103DBD4C61F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0EC7DBA7DBE5D68E1291F1C50E81D40065F3E5A67A3F6B442E615B2410034A07", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0EC7DBA7DBE5D68E1291F1C50E81D40065F3E5A67A3F6B442E615B2410034A07", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0EC7DBA7DBE5D68E1291F1C50E81D40065F3E5A67A3F6B442E615B2410034A07", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2BD1526E06B0F242413706B6514589398B1723F2A354DCCBF1BCCF210693E051", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2BD1526E06B0F242413706B6514589398B1723F2A354DCCBF1BCCF210693E051", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2BD1526E06B0F242413706B6514589398B1723F2A354DCCBF1BCCF210693E051", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB", + "spdxElementId": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308", + "spdxElementId": "SPDXRef-Package-CC37C138AFE3FD56BAF5242097421D8A247510DAC602473C0F908356A935DFBA" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308", + "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-960414DA8719C10D04651A042C6327736F11D52FA2FCB8501240FBA2B4B8FA57", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9C5EC1F429A13E295E10F319F6A0EF6D3498213116DA080E8BB3B075E7C04EC5", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9C5EC1F429A13E295E10F319F6A0EF6D3498213116DA080E8BB3B075E7C04EC5", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9C5EC1F429A13E295E10F319F6A0EF6D3498213116DA080E8BB3B075E7C04EC5", + "spdxElementId": "SPDXRef-Package-8422F607B8266110A546C45992F70A0FB1B2A891E18E98FBBB9C7C5297435350" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9C5EC1F429A13E295E10F319F6A0EF6D3498213116DA080E8BB3B075E7C04EC5", + "spdxElementId": "SPDXRef-Package-99204549ED77ED47F9DF4D5E0F37A740DDCC7A2DE11C6CA47CEA1E5F014BA159" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9C5EC1F429A13E295E10F319F6A0EF6D3498213116DA080E8BB3B075E7C04EC5", + "spdxElementId": "SPDXRef-Package-56FB670D33987C301B2779D33E9778876DA14F5F4E15B6F68A7D4E62B36CEDE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4", + "spdxElementId": "SPDXRef-Package-0C807593FD29954BC8F35B130404576B5EFB1BE225BA5CE0D4D6982EBBDFA51A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4", + "spdxElementId": "SPDXRef-Package-60E34765351FF197560F23F5A33487CE6A9CDAB7B864D630D385B30962F69264" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4", + "spdxElementId": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-33B1D8F98040445C1C019996980972FB5A3DA85A789108E0440ED021F416AB88", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A7749B3F7443A0F0AFF64F71746F18D670D8D4FBF18B2138A4AD85A6BC9A810F", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-73F10AFE7A15AD6A85D18E5BEF5166AF2CCCC9AAF7E7C46F8AC2C216AE865D01", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-38EB9C1270DDB3C49EB53BA52C164FE55D40DE5425BDD41EA43CAF4CEE32F946", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-38EB9C1270DDB3C49EB53BA52C164FE55D40DE5425BDD41EA43CAF4CEE32F946", + "spdxElementId": "SPDXRef-Package-516B1175E3D416CA4328C97F94B8F3B3E28B0CB287494AAD09779F55F1DD33B5" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-60E34765351FF197560F23F5A33487CE6A9CDAB7B864D630D385B30962F69264", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-60E34765351FF197560F23F5A33487CE6A9CDAB7B864D630D385B30962F69264", + "spdxElementId": "SPDXRef-Package-0C807593FD29954BC8F35B130404576B5EFB1BE225BA5CE0D4D6982EBBDFA51A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4253C15F4CFBF421ED9475A1ECC51B7D5AB8AAFB29FAA89F5A7CAD36B3E238BF", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4253C15F4CFBF421ED9475A1ECC51B7D5AB8AAFB29FAA89F5A7CAD36B3E238BF", + "spdxElementId": "SPDXRef-Package-07CF9D53D5D4D5E805493E9E69850AE6F3EE8BF6912290B58FBB9989E99FE550" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96C6F4964A911ECC8415520C77654FAF06CF5E4E3529948D9A3EE44CAB576A1E", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96C6F4964A911ECC8415520C77654FAF06CF5E4E3529948D9A3EE44CAB576A1E", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96C6F4964A911ECC8415520C77654FAF06CF5E4E3529948D9A3EE44CAB576A1E", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3BB6EBDC93E34DB9728F390186CC96E21CEA3F6204694FE88B4E928DA5F590A2", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3BB6EBDC93E34DB9728F390186CC96E21CEA3F6204694FE88B4E928DA5F590A2", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3BB6EBDC93E34DB9728F390186CC96E21CEA3F6204694FE88B4E928DA5F590A2", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3BB6EBDC93E34DB9728F390186CC96E21CEA3F6204694FE88B4E928DA5F590A2", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-85FB27F5A68228D1E9331D9E7057200D9845B178A51F7F40560E070D910A3E78", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0FC7C18C18F48CA2321CCA8E088120C9CCCCBE93BCC1BF1CC39C9C81C6243BBC", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0FC7C18C18F48CA2321CCA8E088120C9CCCCBE93BCC1BF1CC39C9C81C6243BBC", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0FC7C18C18F48CA2321CCA8E088120C9CCCCBE93BCC1BF1CC39C9C81C6243BBC", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-EF2D54FA98EC031265B142FF80780E498D62AF1FBF37D1B881F4D1528A8A8A0E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0466CE9286D5381D3008D7C7F928AD9A6CA431DB44B3090C1AC076F27AEF1BDC", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0466CE9286D5381D3008D7C7F928AD9A6CA431DB44B3090C1AC076F27AEF1BDC", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0466CE9286D5381D3008D7C7F928AD9A6CA431DB44B3090C1AC076F27AEF1BDC", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0466CE9286D5381D3008D7C7F928AD9A6CA431DB44B3090C1AC076F27AEF1BDC", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0466CE9286D5381D3008D7C7F928AD9A6CA431DB44B3090C1AC076F27AEF1BDC", + "spdxElementId": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0466CE9286D5381D3008D7C7F928AD9A6CA431DB44B3090C1AC076F27AEF1BDC", + "spdxElementId": "SPDXRef-Package-06B1FE03E3B06D8AB8CFF2AD4FC31D4A3796628ED49E9E383C7F1B7350B01C17" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CC37C138AFE3FD56BAF5242097421D8A247510DAC602473C0F908356A935DFBA", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CC37C138AFE3FD56BAF5242097421D8A247510DAC602473C0F908356A935DFBA", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CC37C138AFE3FD56BAF5242097421D8A247510DAC602473C0F908356A935DFBA", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8CC68F5976CDE9EF39F904D527CADE89A54B7CCAD5368FC3E839D23A3ACD50B0", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8CC68F5976CDE9EF39F904D527CADE89A54B7CCAD5368FC3E839D23A3ACD50B0", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8CC68F5976CDE9EF39F904D527CADE89A54B7CCAD5368FC3E839D23A3ACD50B0", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8CC68F5976CDE9EF39F904D527CADE89A54B7CCAD5368FC3E839D23A3ACD50B0", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8CC68F5976CDE9EF39F904D527CADE89A54B7CCAD5368FC3E839D23A3ACD50B0", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E389C196CC3B31F9F0F95EF8A726F64453E62013B00C3C8B8C248EA8F581C52E", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E389C196CC3B31F9F0F95EF8A726F64453E62013B00C3C8B8C248EA8F581C52E", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E389C196CC3B31F9F0F95EF8A726F64453E62013B00C3C8B8C248EA8F581C52E", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BB5EED84C09683F587843DDAFC814F4B010F56955D0A82584767D72B99ABD849", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BB5EED84C09683F587843DDAFC814F4B010F56955D0A82584767D72B99ABD849", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BB5EED84C09683F587843DDAFC814F4B010F56955D0A82584767D72B99ABD849", + "spdxElementId": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5D34709A26D1F9AB9ACF1533059FF2089C126911B090DF3B9961364420E01C7E", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5D34709A26D1F9AB9ACF1533059FF2089C126911B090DF3B9961364420E01C7E", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5D34709A26D1F9AB9ACF1533059FF2089C126911B090DF3B9961364420E01C7E", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5D34709A26D1F9AB9ACF1533059FF2089C126911B090DF3B9961364420E01C7E", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5D34709A26D1F9AB9ACF1533059FF2089C126911B090DF3B9961364420E01C7E", + "spdxElementId": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5D34709A26D1F9AB9ACF1533059FF2089C126911B090DF3B9961364420E01C7E", + "spdxElementId": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3248038335932D1D4047F57731B65A00918297ABB00C3DCFB05FB8A456FB63A2", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A092770E8354CA90D85493FC4F2941F25FCE4214BAF8EB9A9E4383C495E133E9", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-87DBC129E46E77857F5ECA3AB3A5EB8B516E2E67F885F6BB6243D1CA004FB440", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E74BE45208CF0E8CC846214160452E430DEA41E9714DB021F198D887076066F1", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E74BE45208CF0E8CC846214160452E430DEA41E9714DB021F198D887076066F1", + "spdxElementId": "SPDXRef-Package-07CF9D53D5D4D5E805493E9E69850AE6F3EE8BF6912290B58FBB9989E99FE550" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E74BE45208CF0E8CC846214160452E430DEA41E9714DB021F198D887076066F1", + "spdxElementId": "SPDXRef-Package-C6794715F4D3BB5F1392158FD713732FBB3814F34B6E0A7BB46F8C3FF448143C" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FA6524D4327177392F48D12F631FFB032EB1A9664E0130A4D5FC2DF650DAF25A", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FA6524D4327177392F48D12F631FFB032EB1A9664E0130A4D5FC2DF650DAF25A", + "spdxElementId": "SPDXRef-Package-0C807593FD29954BC8F35B130404576B5EFB1BE225BA5CE0D4D6982EBBDFA51A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FA6524D4327177392F48D12F631FFB032EB1A9664E0130A4D5FC2DF650DAF25A", + "spdxElementId": "SPDXRef-Package-60E34765351FF197560F23F5A33487CE6A9CDAB7B864D630D385B30962F69264" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3AA91AC82BC50105BAA785EFA25675A27458E28F643BC4289A18DDC937DFB505", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-99204549ED77ED47F9DF4D5E0F37A740DDCC7A2DE11C6CA47CEA1E5F014BA159", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-99204549ED77ED47F9DF4D5E0F37A740DDCC7A2DE11C6CA47CEA1E5F014BA159", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-99204549ED77ED47F9DF4D5E0F37A740DDCC7A2DE11C6CA47CEA1E5F014BA159", + "spdxElementId": "SPDXRef-Package-8422F607B8266110A546C45992F70A0FB1B2A891E18E98FBBB9C7C5297435350" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-71F0727D1B02C5BEA2BE2C6985E0093660DAEC028DB347AB157E3CFFC6779892", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-71F0727D1B02C5BEA2BE2C6985E0093660DAEC028DB347AB157E3CFFC6779892", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-71F0727D1B02C5BEA2BE2C6985E0093660DAEC028DB347AB157E3CFFC6779892", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-71F0727D1B02C5BEA2BE2C6985E0093660DAEC028DB347AB157E3CFFC6779892", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8D6E0C5870BF65665DE70BE60EBDBCAE0A4EF9BFBD566A07D2FF53D2429D3D8A", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8D6E0C5870BF65665DE70BE60EBDBCAE0A4EF9BFBD566A07D2FF53D2429D3D8A", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8D6E0C5870BF65665DE70BE60EBDBCAE0A4EF9BFBD566A07D2FF53D2429D3D8A", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8D6E0C5870BF65665DE70BE60EBDBCAE0A4EF9BFBD566A07D2FF53D2429D3D8A", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8D6E0C5870BF65665DE70BE60EBDBCAE0A4EF9BFBD566A07D2FF53D2429D3D8A", + "spdxElementId": "SPDXRef-Package-3BB6EBDC93E34DB9728F390186CC96E21CEA3F6204694FE88B4E928DA5F590A2" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8D6E0C5870BF65665DE70BE60EBDBCAE0A4EF9BFBD566A07D2FF53D2429D3D8A", + "spdxElementId": "SPDXRef-Package-1699161828195A03FDB363E7F903B609D236C7AAADF0F4BC0BA1A33D4F1ADFD3" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1D191B13C73F7AA570C121E8ACCAD625116B8267E418ECDD7222AAAB63A76A84", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1D191B13C73F7AA570C121E8ACCAD625116B8267E418ECDD7222AAAB63A76A84", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1D191B13C73F7AA570C121E8ACCAD625116B8267E418ECDD7222AAAB63A76A84", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1D191B13C73F7AA570C121E8ACCAD625116B8267E418ECDD7222AAAB63A76A84", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1D191B13C73F7AA570C121E8ACCAD625116B8267E418ECDD7222AAAB63A76A84", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1D191B13C73F7AA570C121E8ACCAD625116B8267E418ECDD7222AAAB63A76A84", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1D191B13C73F7AA570C121E8ACCAD625116B8267E418ECDD7222AAAB63A76A84", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1D191B13C73F7AA570C121E8ACCAD625116B8267E418ECDD7222AAAB63A76A84", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1D191B13C73F7AA570C121E8ACCAD625116B8267E418ECDD7222AAAB63A76A84", + "spdxElementId": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1D191B13C73F7AA570C121E8ACCAD625116B8267E418ECDD7222AAAB63A76A84", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1D191B13C73F7AA570C121E8ACCAD625116B8267E418ECDD7222AAAB63A76A84", + "spdxElementId": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1D191B13C73F7AA570C121E8ACCAD625116B8267E418ECDD7222AAAB63A76A84", + "spdxElementId": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1D191B13C73F7AA570C121E8ACCAD625116B8267E418ECDD7222AAAB63A76A84", + "spdxElementId": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "spdxElementId": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "spdxElementId": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-22BC1B62603E565BA5827501118C102A4E869955E3DB43D001A4ADA2384D657B", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-22BC1B62603E565BA5827501118C102A4E869955E3DB43D001A4ADA2384D657B", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-22BC1B62603E565BA5827501118C102A4E869955E3DB43D001A4ADA2384D657B", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-22BC1B62603E565BA5827501118C102A4E869955E3DB43D001A4ADA2384D657B", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-22BC1B62603E565BA5827501118C102A4E869955E3DB43D001A4ADA2384D657B", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-22BC1B62603E565BA5827501118C102A4E869955E3DB43D001A4ADA2384D657B", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-22BC1B62603E565BA5827501118C102A4E869955E3DB43D001A4ADA2384D657B", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-22BC1B62603E565BA5827501118C102A4E869955E3DB43D001A4ADA2384D657B", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-22BC1B62603E565BA5827501118C102A4E869955E3DB43D001A4ADA2384D657B", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-22BC1B62603E565BA5827501118C102A4E869955E3DB43D001A4ADA2384D657B", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-22BC1B62603E565BA5827501118C102A4E869955E3DB43D001A4ADA2384D657B", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-22BC1B62603E565BA5827501118C102A4E869955E3DB43D001A4ADA2384D657B", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-22BC1B62603E565BA5827501118C102A4E869955E3DB43D001A4ADA2384D657B", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-48265A488C29B4798425AAB3E6AB86C51F61DA2EC4140043AB6467A6D1E98574", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-48265A488C29B4798425AAB3E6AB86C51F61DA2EC4140043AB6467A6D1E98574", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-48265A488C29B4798425AAB3E6AB86C51F61DA2EC4140043AB6467A6D1E98574", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BD049C5100B248F06EBEC66C3BE118753E842489EC3E40AF36E080A56CF8286E", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CE645B91D1E102C5ADFA2FE9FA88293752E1ED47F685D9D5DC5E03075280E0E3", + "spdxElementId": "SPDXRef-RootPackage" + } + ], + "spdxVersion": "SPDX-2.2", + "dataLicense": "CC0-1.0", + "SPDXID": "SPDXRef-DOCUMENT", + "name": "infrastructure_itpro_teamspowershellmodule 72855948", + "documentNamespace": "https://sbom.microsoft/1:bkjmLDt9u0eOFl8ZpDAVyQ:ygnPgS-Zq0yaX5bXKLTDOQ/17372:72855948/sCCNxYUcl0KQ-_AZ9OaqhA", + "creationInfo": { + "created": "2025-10-01T08:53:50Z", + "creators": [ + "Organization: Microsoft", + "Tool: Microsoft.SBOMTool-4.1.2" + ] + }, + "documentDescribes": [ + "SPDXRef-RootPackage" + ] +} \ No newline at end of file diff --git a/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.spdx.json.sha256 b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.spdx.json.sha256 new file mode 100644 index 000000000000..4a6965367575 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.spdx.json.sha256 @@ -0,0 +1 @@ +663b4d504debf6479010de4d619fb15b9d84d87f6b36704b3c6a0bf61f9b848d \ No newline at end of file diff --git a/Modules/MicrosoftTeams/7.4.0/bin/BrotliSharpLib.dll b/Modules/MicrosoftTeams/7.4.0/bin/BrotliSharpLib.dll new file mode 100644 index 000000000000..9c516c3749ae Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/bin/BrotliSharpLib.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.JsonWebTokens.dll b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.JsonWebTokens.dll new file mode 100644 index 000000000000..00838f3421bd Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.JsonWebTokens.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.Logging.dll b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.Logging.dll new file mode 100644 index 000000000000..00f9303f6572 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.Logging.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.Tokens.dll b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.Tokens.dll new file mode 100644 index 000000000000..47da8dcd8f31 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.Tokens.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll new file mode 100644 index 000000000000..046a68764c04 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.deps.json b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.deps.json similarity index 94% rename from Modules/MicrosoftTeams/6.9.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.deps.json rename to Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.deps.json index 0b44b325ffef..115635f737e6 100644 --- a/Modules/MicrosoftTeams/6.9.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.deps.json +++ b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.deps.json @@ -11,7 +11,7 @@ "dependencies": { "BrotliSharpLib": "0.3.3", "Microsoft.CSharp": "4.7.0", - "Microsoft.Teams.ConfigAPI.CmdletHostContract": "3.1.2", + "Microsoft.Teams.ConfigAPI.CmdletHostContract": "3.2.4", "NETStandard.Library": "2.0.3", "Newtonsoft.Json": "13.0.3", "PowerShellStandard.Library": "5.1.0", @@ -74,15 +74,15 @@ } }, "Microsoft.NETCore.Platforms/1.1.0": {}, - "Microsoft.Teams.ConfigAPI.CmdletHostContract/3.1.2": { + "Microsoft.Teams.ConfigAPI.CmdletHostContract/3.2.4": { "dependencies": { "Newtonsoft.Json": "13.0.3", "PowerShellStandard.Library": "5.1.0" }, "runtime": { "lib/netstandard2.0/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll": { - "assemblyVersion": "3.1.2.0", - "fileVersion": "3.1.2.0" + "assemblyVersion": "3.2.4.0", + "fileVersion": "3.2.4.0" } } }, @@ -186,12 +186,12 @@ "path": "microsoft.netcore.platforms/1.1.0", "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512" }, - "Microsoft.Teams.ConfigAPI.CmdletHostContract/3.1.2": { + "Microsoft.Teams.ConfigAPI.CmdletHostContract/3.2.4": { "type": "package", "serviceable": true, - "sha512": "sha512-PSssDGKJlVP0bHei+NDBpDPVEQOOkgH75Wv5XAgRV1XxIus/1zoRZBmzrlu+f8n3oYN3Ao4zqsN+Z+0xZUEmkg==", - "path": "microsoft.teams.configapi.cmdlethostcontract/3.1.2", - "hashPath": "microsoft.teams.configapi.cmdlethostcontract.3.1.2.nupkg.sha512" + "sha512": "sha512-6Dt9GnaRhKGPF2Z0qB+TwWzKbGT2JyuiCH6RumH7nA9jIK+HK2reZIYz2YMeVfpeZd3Cy5yAgt6S5acDEEGiiA==", + "path": "microsoft.teams.configapi.cmdlethostcontract/3.2.4", + "hashPath": "microsoft.teams.configapi.cmdlethostcontract.3.2.4.nupkg.sha512" }, "NETStandard.Library/2.0.3": { "type": "package", diff --git a/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll new file mode 100644 index 000000000000..4497151fb53e Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/bin/System.IdentityModel.Tokens.Jwt.dll b/Modules/MicrosoftTeams/7.4.0/bin/System.IdentityModel.Tokens.Jwt.dll new file mode 100644 index 000000000000..55d1996f9666 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/bin/System.IdentityModel.Tokens.Jwt.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/custom/CmdletConfig.json b/Modules/MicrosoftTeams/7.4.0/custom/CmdletConfig.json similarity index 96% rename from Modules/MicrosoftTeams/6.9.0/custom/CmdletConfig.json rename to Modules/MicrosoftTeams/7.4.0/custom/CmdletConfig.json index dcec27a7a6b8..057d44fd8896 100644 --- a/Modules/MicrosoftTeams/6.9.0/custom/CmdletConfig.json +++ b/Modules/MicrosoftTeams/7.4.0/custom/CmdletConfig.json @@ -537,14 +537,6 @@ "SelfHost" ] }, - "Get-CsOnlinePowerShellEndpoint": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, "Move-CsInternalHelper": { "CmdletType": "AutoRest", "ExportsTo": [ @@ -560,15 +552,6 @@ "SelfHost" ] }, - "Set-CsInternalOnlinePowerShellEndpoint": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, "Invoke-CsInternalPSTelemetry": { "CmdletType": "AutoRest", "ExportsTo": [ @@ -659,6 +642,38 @@ "Torus" ] }, + "Get-CsPhoneNumberTag": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Set-CsPhoneNumberTag": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Remove-CsPhoneNumberTag": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Update-CsPhoneNumberTag": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, "Export-CsAcquiredPhoneNumber": { "CmdletType": "AutoRest", "ExportsTo": [ @@ -680,6 +695,8 @@ "Get-CsPhoneNumberPolicyAssignment": { "CmdletType": "AutoRest", "ExportsTo": [ + "TeamsGA", + "TeamsPreview", "SelfHost", "Torus" ] @@ -687,6 +704,8 @@ "Set-CsPhoneNumberPolicyAssignment": { "CmdletType": "AutoRest", "ExportsTo": [ + "TeamsGA", + "TeamsPreview", "SelfHost", "Torus" ] @@ -873,6 +892,33 @@ "Torus" ] }, + "Get-CsComplianceRecordingForCallQueueTemplate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsTagsTemplate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsSharedCallQueueHistoryTemplate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, "Get-CsCloudCallDataConnection": { "CmdletType": "Remoting", "ModernCmdlet": "Get-CsCloudCallDataConnectionModern", @@ -1384,20 +1430,6 @@ "Torus" ] }, - "Get-CsTeamsAcsFederationConfiguration": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsAcsFederationConfiguration" - } - }, "Get-CsTeamsAudioConferencingPolicy": { "CmdletType": "Remoting", "ModernCmdlet": "Get-CsConfigurationModern", @@ -1856,6 +1888,15 @@ "ConfigType": "VideoInteropServiceProvider" } }, + "Get-CsMainlineAttendantFlow": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, "Grant-CsApplicationAccessPolicy": { "CmdletType": "Remoting", "ModernCmdlet": "Grant-CsTeamsPolicy", @@ -2394,6 +2435,24 @@ "Torus" ] }, + "New-CsTagsTemplate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsTag": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, "New-CsCallingLineIdentity": { "CmdletType": "Remoting", "ModernCmdlet": "New-CsConfigurationModern", @@ -2417,6 +2476,96 @@ "Torus" ] }, + "New-CsComplianceRecordingForCallQueueTemplate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsSharedCallQueueHistoryTemplate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsMainlineAttendantAppointmentBookingFlow": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsMainlineAttendantAppointmentBookingFlow": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Set-CsMainlineAttendantAppointmentBookingFlow": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Remove-CsMainlineAttendantAppointmentBookingFlow": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsMainlineAttendantQuestionAnswerFlow": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsMainlineAttendantQuestionAnswerFlow": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Set-CsMainlineAttendantQuestionAnswerFlow": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Remove-CsMainlineAttendantQuestionAnswerFlow": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, "New-CsCloudCallDataConnection": { "CmdletType": "Remoting", "ModernCmdlet": "New-CsCloudCallDataConnectionModern", @@ -2965,6 +3114,33 @@ "Torus" ] }, + "Remove-CsComplianceRecordingForCallQueueTemplate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Remove-CsTagsTemplate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Remove-CsSharedCallQueueHistoryTemplate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, "Remove-CsHybridTelephoneNumber": { "CmdletType": "AutoRest", "ExportsTo": [ @@ -3524,6 +3700,33 @@ "Torus" ] }, + "Set-CsComplianceRecordingForCallQueueTemplate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Set-CsTagsTemplate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Set-CsSharedCallQueueHistoryTemplate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, "Set-CsInboundBlockedNumberPattern": { "CmdletType": "Remoting", "ModernCmdlet": "Set-CsConfigurationModern", @@ -3800,20 +4003,6 @@ "Torus" ] }, - "Set-CsTeamsAcsFederationConfiguration": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsAcsFederationConfiguration" - } - }, "Set-CsTeamsAudioConferencingPolicy": { "CmdletType": "Remoting", "ModernCmdlet": "Set-CsConfigurationModern", @@ -4673,6 +4862,22 @@ "SelfHost", "Torus" ] + }, + "Get-CsPersonalAttendantSettings": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Set-CsPersonalAttendantSettings": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] } } -} \ No newline at end of file +} diff --git a/Modules/MicrosoftTeams/6.9.0/custom/Merged_custom_PsExt.ps1 b/Modules/MicrosoftTeams/7.4.0/custom/Merged_custom_PsExt.ps1 similarity index 80% rename from Modules/MicrosoftTeams/6.9.0/custom/Merged_custom_PsExt.ps1 rename to Modules/MicrosoftTeams/7.4.0/custom/Merged_custom_PsExt.ps1 index 4f51bce1dd30..dcc801138e2a 100644 --- a/Modules/MicrosoftTeams/6.9.0/custom/Merged_custom_PsExt.ps1 +++ b/Modules/MicrosoftTeams/7.4.0/custom/Merged_custom_PsExt.ps1 @@ -1438,6 +1438,11 @@ function Remove-CsPhoneNumberAssignment { [Parameter(Mandatory=$true, ParameterSetName='RemoveAll')] [Switch] ${RemoveAll}, + + [Parameter(Mandatory=$false, ParameterSetName='RemoveSome')] + [Parameter(Mandatory=$false, ParameterSetName='RemoveAll')] + [Switch] + ${Notify}, [Parameter(DontShow)] [ValidateNotNull()] @@ -1530,6 +1535,10 @@ function Set-CsPhoneNumberAssignment { [System.Boolean] ${EnterpriseVoiceEnabled}, + [Parameter(ParameterSetName='Assignment')] + [Switch] + ${Notify}, + [Parameter(DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] @@ -4514,6 +4523,129 @@ function Remove-CsUserCallingDelegate { # limitations under the License. # ---------------------------------------------------------------------------------- +function Set-CsPersonalAttendantSettings { + [CmdletBinding(DefaultParameterSetName="Identity")] + param( + [Parameter(Mandatory=$true, ParameterSetName='PersonalAttendant')] + [Parameter(Mandatory=$true, ParameterSetName='PersonalAttendantOnOff')] + [Parameter(Mandatory=$true, ParameterSetName='Identity')] + [System.String] + ${Identity}, + + [Parameter(Mandatory=$true, ParameterSetName='PersonalAttendant')] + [Parameter(Mandatory=$true, ParameterSetName='PersonalAttendantOnOff')] + [System.Boolean] + ${IsPersonalAttendantEnabled}, + + [Parameter(Mandatory=$true, ParameterSetName='PersonalAttendant')] + [ValidateSet('en-US', 'fr-FR', 'ar-SA', 'zh-CN', 'zh-TW', 'cs-CZ', 'da-DK', 'nl-NL', 'en-AU', 'en-GB', 'fi-FI', 'fr-CA', 'de-DE', 'el-GR', 'hi-IN', 'id-ID', 'it-IT', 'ja-JP', 'ko-KR', 'nb-NO', 'pl-PL', 'pt-BR', 'ru-RU', 'es-ES', 'es-US', 'sv-SE', 'th-TH', 'tr-TR')] + [System.String] + ${DefaultLanguage}, + + [Parameter(Mandatory=$false, ParameterSetName='PersonalAttendant')] + [ValidateSet('Female','Male')] + [System.String] + ${DefaultVoice}, + + [Parameter(Mandatory=$false, ParameterSetName='PersonalAttendant')] + [System.String] + [AllowNull()] + ${CalleeName}, + + [Parameter(Mandatory=$false, ParameterSetName='PersonalAttendant')] + [ValidateSet('Formal','Casual')] + [System.String] + ${DefaultTone}, + + [Parameter(Mandatory=$true, ParameterSetName='PersonalAttendant')] + [System.Boolean] + ${IsBookingCalendarEnabled}, + + [Parameter(Mandatory=$false, ParameterSetName='PersonalAttendant')] + [System.Boolean] + ${IsNonContactCallbackEnabled}, + + [Parameter(Mandatory=$true, ParameterSetName='PersonalAttendant')] + [System.Boolean] + ${IsCallScreeningEnabled}, + + [Parameter(Mandatory=$true, ParameterSetName='PersonalAttendant')] + [System.Boolean] + ${AllowInboundInternalCalls}, + + [Parameter(Mandatory=$true, ParameterSetName='PersonalAttendant')] + [System.Boolean] + ${AllowInboundFederatedCalls}, + + [Parameter(Mandatory=$true, ParameterSetName='PersonalAttendant')] + [System.Boolean] + ${AllowInboundPSTNCalls}, + + [Parameter(Mandatory=$true, ParameterSetName='PersonalAttendant')] + [System.Boolean] + ${IsAutomaticTranscriptionEnabled}, + + [Parameter(Mandatory=$true, ParameterSetName='PersonalAttendant')] + [System.Boolean] + ${IsAutomaticRecordingEnabled}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + if ($PSBoundParameters.ContainsKey('IsPersonalAttendantEnabled') -and $PSBoundParameters.ContainsKey('AllowInboundInternalCalls') -and $PSBoundParameters.ContainsKey('AllowInboundFederatedCalls') -and $PSBoundParameters.ContainsKey('AllowInboundPSTNCalls')) + { + if($IsPersonalAttendantEnabled -eq $true -and ($AllowInboundInternalCalls -eq $true -or $AllowInboundFederatedCalls -eq $true -or $AllowInboundPSTNCalls -eq $true)) + { + $IsPersonalAttendantEnabled = $IsPersonalAttendantEnabled + $AllowInboundInternalCalls = $AllowInboundInternalCalls + $AllowInboundFederatedCalls = $AllowInboundFederatedCalls + $AllowInboundPSTNCalls = $AllowInboundPSTNCalls + } + else + { + write-warning "Personal attendant is enabled but no inbound calls are enabled" + return + } + } + + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsPersonalAttendantSettings @PSBoundParameters @httpPipelineArgs + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + function Set-CsUserCallingDelegate { [CmdletBinding(DefaultParameterSetName="Identity")] param( @@ -5940,27 +6072,27 @@ function Get-CsCallQueue { # limitations under the License. # ---------------------------------------------------------------------------------- -# Objective of this custom file: Print error message in case of error - -function Get-CsOnlineApplicationInstanceAssociation { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$true, position=0)] - [System.String] - # The identity for the application instance whose association is to be retrieved. - ${Identity}, +# Objective of this custom file: transforming the results to the custom objects - [Parameter(Mandatory=$false, position=1)] - [Switch] - ${Force}, +function Get-CsComplianceRecordingForCallQueueTemplate { + [CmdletBinding()] + param( + [Parameter(Mandatory=$false)] + [System.String] + # The identity of the compliance recording for CR4CQ template which is retrieved. + ${Id}, + + [Parameter(Mandatory=$false)] + [Switch] + ${Force}, - [Parameter(DontShow)] + [Parameter(DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] ${HttpPipelinePrepend} ) - begin { + begin { $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) } @@ -5973,29 +6105,33 @@ function Get-CsOnlineApplicationInstanceAssociation { if (!$PSBoundParameters.ContainsKey("ErrorAction")) { $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) } - - # We want to flight our cmdlet if Force param is passed, but AutoRest doesn't support Force param. - # Force param doesn't seem to do anything, so remove it if it's passed. - if ($PSBoundParameters.ContainsKey('Force')) { - $PSBoundParameters.Remove('Force') | Out-Null + + if ($PSBoundParameters.ContainsKey("Force")) { + $PSBoundParameters.Remove("Force") | Out-Null } - # Encode the given "Identity" if it is a SIP URI (aka User Principle Name (UPN)) - $PSBoundParameters['Identity'] = EncodeSipUri($PSBoundParameters['Identity']) + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsComplianceRecordingForCallQueueTemplate @PSBoundParameters @httpPipelineArgs - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsOnlineApplicationInstanceAssociation @PSBoundParameters @httpPipelineArgs # Stop execution if internal cmdlet is failing - if ($internalOutput -eq $null) { + if ($result -eq $null) { return $null } - Write-AdminServiceDiagnostic($internalOutput.Diagnostic) - - $output = [Microsoft.Rtc.Management.Hosted.Online.Models.ApplicationInstanceAssociation]::new() - $output.ParseFrom($internalOutput) + Write-AdminServiceDiagnostic($result.Diagnostic) - $output + if (![string]::IsNullOrEmpty(${Id})) { + $ComplianceRecordingForCallQueue = [Microsoft.Rtc.Management.Hosted.Online.Models.ComplianceRecordingForCallQueue]::new() + $ComplianceRecordingForCallQueue.ParseFromGetResponse($result) + } + else { + $ComplianceRecordingForCallQueues = @() + foreach ($model in $result.ComplianceRecording) { + $ComplianceRecordingForCallQueue = [Microsoft.Rtc.Management.Hosted.Online.Models.ComplianceRecordingForCallQueue]::new() + $ComplianceRecordingForCallQueues += $ComplianceRecordingForCallQueue.ParseFromDtoModel($model) + } + $ComplianceRecordingForCallQueues + } } catch { $customCmdletUtils.SendTelemetry() @@ -6021,19 +6157,40 @@ function Get-CsOnlineApplicationInstanceAssociation { # limitations under the License. # ---------------------------------------------------------------------------------- -# Objective of this custom file: Format output of the cmdlet +# Objective of this custom file: transforming the results to the custom objects -function Get-CsOnlineApplicationInstanceAssociationStatus { - [CmdletBinding(PositionalBinding=$true)] +function Get-CsMainlineAttendantAppointmentBookingFlow { + [CmdletBinding()] param( - [Parameter(Mandatory=$true, position=0)] + [Parameter(Mandatory=$false)] [System.String] - # The identity for the application instance whose association provisioning status is to be retrieved. + # The identity of the mainline attendant flow which is retrieved. ${Identity}, - [Parameter(Mandatory=$false, position=1)] - [Switch] - ${Force}, + [Parameter(Mandatory=$false)] + [int] + # The First parameter gets the first N mainline attendant flows. + ${First}, + + [Parameter(Mandatory=$false)] + [int] + # The Skip parameter skips the first N mainline attendant flows. It is intended to be used for pagination purposes. + ${Skip}, + + [Parameter(Mandatory=$false)] + [System.String] + # The SortBy parameter specifies the property used to sort. + ${SortBy}, + + [Parameter(Mandatory=$false)] + [switch] + # The Descending parameter is used to sort descending. + ${Descending}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NameFilter parameter returns mainline attendant flows where name contains specified string + ${NameFilter}, [Parameter(DontShow)] [ValidateNotNull()] @@ -6041,7 +6198,7 @@ function Get-CsOnlineApplicationInstanceAssociationStatus { ${HttpPipelinePrepend} ) - begin { + begin { $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) } @@ -6055,25 +6212,26 @@ function Get-CsOnlineApplicationInstanceAssociationStatus { $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) } - # We want to flight our cmdlet if Force param is passed, but AutoRest doesn't support Force param. - # Force param doesn't seem to do anything, so remove it if it's passed. - if ($PSBoundParameters.ContainsKey('Force')) { - $PSBoundParameters.Remove('Force') | Out-Null - } - - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsOnlineApplicationInstanceAssociationStatus @PSBoundParameters @httpPipelineArgs + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsMainlineAttendantAppointmentBookingFlow @PSBoundParameters @httpPipelineArgs # Stop execution if internal cmdlet is failing - if ($internalOutput -eq $null) { + if ($result -eq $null) { return $null } - Write-AdminServiceDiagnostic($internalOutput.Diagnostic) - - $output = [Microsoft.Rtc.Management.Hosted.Online.Models.StatusRecord]::new() - $output.ParseFrom($internalOutput) + Write-AdminServiceDiagnostic($result.Diagnostic) - $output + if (${Identity} -ne '') { + $appointmentBookingFlow = [Microsoft.Rtc.Management.Hosted.Online.Models.MainlineAttendantAppointmentBookingFlow]::new() + $appointmentBookingFlow.ParseFromGetResponse($result) + } else { + $appointmentBookingFlows = @() + foreach ($model in $result.MainlineAttendantFlowResponse) { + $appointmentBookingFlow = [Microsoft.Rtc.Management.Hosted.Online.Models.MainlineAttendantAppointmentBookingFlow]::new() + $appointmentBookingFlows += $appointmentBookingFlow.ParseFromDomainModel($model) + } + $appointmentBookingFlows + } } catch { $customCmdletUtils.SendTelemetry() @@ -6099,20 +6257,50 @@ function Get-CsOnlineApplicationInstanceAssociationStatus { # limitations under the License. # ---------------------------------------------------------------------------------- -# Objective of this custom file: Format output of Get-CsOnlineAudioFile +# Objective of this custom file: transforming the results to the custom objects -function Get-CsOnlineAudioFile { - [CmdletBinding(PositionalBinding=$true)] +function Get-CsMainlineAttendantFlow { + [CmdletBinding()] param( - [Parameter(Mandatory=$false, position=0)] + [Parameter(Mandatory=$false)] [System.String] - # The Identity parameter is the identifier for the audio file. + # The identity of the mainline attendant flow which is retrieved. ${Identity}, - [Parameter(Mandatory=$false, position=1)] + [Parameter(Mandatory=$false)] [System.String] - # The ApplicationId parameter is the identifier for the application which will use this audio file. - ${ApplicationId}, + # The identity of the mainline attendant flow which is retrieved. + ${Type}, + + [Parameter(Mandatory=$false)] + [System.String] + # The identity of the mainline attendant flow which is retrieved. + ${ConfigurationId}, + + [Parameter(Mandatory=$false)] + [int] + # The First parameter gets the first N mainline attendant flows. + ${First}, + + [Parameter(Mandatory=$false)] + [int] + # The Skip parameter skips the first N mainline attendant flows. It is intended to be used for pagination purposes. + ${Skip}, + + [Parameter(Mandatory=$false)] + [System.String] + # The SortBy parameter specifies the property used to sort. + ${SortBy}, + + [Parameter(Mandatory=$false)] + [switch] + # The Descending parameter is used to sort descending. + ${Descending}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NameFilter parameter returns mainline attendant flows where name contains specified string + ${NameFilter}, [Parameter(DontShow)] [ValidateNotNull()] @@ -6120,7 +6308,7 @@ function Get-CsOnlineAudioFile { ${HttpPipelinePrepend} ) - begin { + begin { $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) } @@ -6129,57 +6317,40 @@ function Get-CsOnlineAudioFile { $httpPipelineArgs = $customCmdletUtils.ProcessArgs() - # Default Application ID to TenantGlobal and make it to the correct case - if ($ApplicationId -eq "" -or $ApplicationId -like "TenantGlobal") - { - $ApplicationId = "TenantGlobal" - } - elseif ($ApplicationId -like "OrgAutoAttendant") - { - $ApplicationId = "OrgAutoAttendant" - } - elseif ($ApplicationId -like "HuntGroup") - { - $ApplicationId = "HuntGroup" - } - - $null = $PSBoundParameters.Remove("ApplicationId") - $PSBoundParameters.Add("ApplicationId", $ApplicationId) - # Default ErrorAction to $ErrorActionPreference if (!$PSBoundParameters.ContainsKey("ErrorAction")) { $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) } - if ($Identity -ne "") { - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsOnlineAudioFile @PSBoundParameters @httpPipelineArgs - - # Stop execution if internal cmdlet is failing - if ($internalOutput -eq $null) { - return $null - } + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsMainlineAttendantFlow @PSBoundParameters @httpPipelineArgs - $output = [Microsoft.Rtc.Management.Hosted.Online.Models.AudioFile]::new() - $output.ParseFrom($internalOutput) + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null } - else { - $internalOutputs = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsOnlineAudioFile @PSBoundParameters @httpPipelineArgs - # Stop execution if internal cmdlet is failing - if ($internalOutputs -eq $null) { - return $null - } + Write-AdminServiceDiagnostic($result.Diagnostic) - $output = New-Object Collections.Generic.List[Microsoft.Rtc.Management.Hosted.Online.Models.AudioFile] - foreach($internalOutput in $internalOutputs) { - $audioFile = [Microsoft.Rtc.Management.Hosted.Online.Models.AudioFile]::new() - $audioFile.ParseFrom($internalOutput) - $output.Add($audioFile) + if (${Identity} -ne '') { + if ($result.MainlineAttendantFlowResponseType -eq "AppointmentBooking") { + $mainlineAttendantFlow = [Microsoft.Rtc.Management.Hosted.Online.Models.MainlineAttendantAppointmentBookingFlow]::new() + } else { + $mainlineAttendantFlow = [Microsoft.Rtc.Management.Hosted.Online.Models.MainlineAttendantQuestionAnswerFlow]::new() + } + $mainlineAttendantFlow.ParseFromGetResponse($result) + } else { + $mainlineAttendantFlows = @() + foreach ($model in $result.MainlineAttendantFlowResponse) { + if ($model.Type -eq "AppointmentBooking") { + $mainlineAttendantFlow = [Microsoft.Rtc.Management.Hosted.Online.Models.MainlineAttendantAppointmentBookingFlow]::new() + } else { + $mainlineAttendantFlow = [Microsoft.Rtc.Management.Hosted.Online.Models.MainlineAttendantQuestionAnswerFlow]::new() + } + $mainlineAttendantFlows += $mainlineAttendantFlow.ParseFromDomainModel($model) } + $mainlineAttendantFlows } - $output - } catch { $customCmdletUtils.SendTelemetry() throw @@ -6206,17 +6377,38 @@ function Get-CsOnlineAudioFile { # Objective of this custom file: transforming the results to the custom objects -function Get-CsOnlineSchedule { +function Get-CsMainlineAttendantQuestionAnswerFlow { [CmdletBinding()] param( [Parameter(Mandatory=$false)] [System.String] - # The identity of the schedule which is retrieved. - ${Id}, - + # The identity of the mainline attendant flow which is retrieved. + ${Identity}, + [Parameter(Mandatory=$false)] - [Switch] - ${Force}, + [int] + # The First parameter gets the first N mainline attendant flows. + ${First}, + + [Parameter(Mandatory=$false)] + [int] + # The Skip parameter skips the first N mainline attendant flows. It is intended to be used for pagination purposes. + ${Skip}, + + [Parameter(Mandatory=$false)] + [System.String] + # The SortBy parameter specifies the property used to sort. + ${SortBy}, + + [Parameter(Mandatory=$false)] + [switch] + # The Descending parameter is used to sort descending. + ${Descending}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NameFilter parameter returns mainline attendant flows where name contains specified string + ${NameFilter}, [Parameter(DontShow)] [ValidateNotNull()] @@ -6224,7 +6416,7 @@ function Get-CsOnlineSchedule { ${HttpPipelinePrepend} ) - begin { + begin { $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) } @@ -6237,12 +6429,8 @@ function Get-CsOnlineSchedule { if (!$PSBoundParameters.ContainsKey("ErrorAction")) { $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) } - - if ($PSBoundParameters.ContainsKey("Force")) { - $PSBoundParameters.Remove("Force") | Out-Null - } - $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsOnlineSchedule @PSBoundParameters @httpPipelineArgs + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsMainlineAttendantQuestionAnswerFlow @PSBoundParameters @httpPipelineArgs # Stop execution if internal cmdlet is failing if ($result -eq $null) { @@ -6251,16 +6439,16 @@ function Get-CsOnlineSchedule { Write-AdminServiceDiagnostic($result.Diagnostic) - if (${Id} -ne '') { - $schedule = [Microsoft.Rtc.Management.Hosted.Online.Models.Schedule]::new() - $schedule.ParseFrom($result) + if (${Identity} -ne '') { + $questionAnswerFlow = [Microsoft.Rtc.Management.Hosted.Online.Models.MainlineAttendantQuestionAnswerFlow]::new() + $questionAnswerFlow.ParseFromGetResponse($result) } else { - $schedules = @() - foreach ($model in $result.Schedule) { - $schedule = [Microsoft.Rtc.Management.Hosted.Online.Models.Schedule]::new() - $schedules += $schedule.ParseFrom($model) + $questionAnswerFlows = @() + foreach ($model in $result.MainlineAttendantFlowResponse) { + $questionAnswerFlow = [Microsoft.Rtc.Management.Hosted.Online.Models.MainlineAttendantQuestionAnswerFlow]::new() + $questionAnswerFlows += $questionAnswerFlow.ParseFromDomainModel($model) } - $schedules + $questionAnswerFlows } } catch { @@ -6289,12 +6477,12 @@ function Get-CsOnlineSchedule { # Objective of this custom file: Print error message in case of error -function Get-CsOnlineVoicemailUserSettings { +function Get-CsOnlineApplicationInstanceAssociation { [CmdletBinding(PositionalBinding=$true)] param( [Parameter(Mandatory=$true, position=0)] [System.String] - # The identity for the user for the voice mail settings + # The identity for the application instance whose association is to be retrieved. ${Identity}, [Parameter(Mandatory=$false, position=1)] @@ -6321,19 +6509,29 @@ function Get-CsOnlineVoicemailUserSettings { $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) } - if ($PSBoundParameters.ContainsKey("Force")) { - $PSBoundParameters.Remove("Force") | Out-Null + # We want to flight our cmdlet if Force param is passed, but AutoRest doesn't support Force param. + # Force param doesn't seem to do anything, so remove it if it's passed. + if ($PSBoundParameters.ContainsKey('Force')) { + $PSBoundParameters.Remove('Force') | Out-Null } - $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsOnlineVMUserSetting @PSBoundParameters @httpPipelineArgs + # Encode the given "Identity" if it is a SIP URI (aka User Principle Name (UPN)) + $PSBoundParameters['Identity'] = EncodeSipUri($PSBoundParameters['Identity']) + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsOnlineApplicationInstanceAssociation @PSBoundParameters @httpPipelineArgs # Stop execution if internal cmdlet is failing - if ($result -eq $null) { + if ($internalOutput -eq $null) { return $null } - $result - + Write-AdminServiceDiagnostic($internalOutput.Diagnostic) + + $output = [Microsoft.Rtc.Management.Hosted.Online.Models.ApplicationInstanceAssociation]::new() + $output.ParseFrom($internalOutput) + + $output + } catch { $customCmdletUtils.SendTelemetry() throw @@ -6358,24 +6556,18 @@ function Get-CsOnlineVoicemailUserSettings { # limitations under the License. # ---------------------------------------------------------------------------------- -# Objective of this custom file: Print error message in case of error +# Objective of this custom file: Format output of the cmdlet -function Import-CsAutoAttendantHolidays { +function Get-CsOnlineApplicationInstanceAssociationStatus { [CmdletBinding(PositionalBinding=$true)] param( [Parameter(Mandatory=$true, position=0)] [System.String] - # The identity for the AA whose holiday schedules are to be imported. + # The identity for the application instance whose association provisioning status is to be retrieved. ${Identity}, - [Alias('Input')] - [Parameter(Mandatory=$true, position=1)] - [System.Byte[]] - ${InputBytes}, - - [Parameter(Mandatory=$false, position=2)] + [Parameter(Mandatory=$false, position=1)] [Switch] - # The Force parameter indicates if we force the action to be performed. (Deprecated) ${Force}, [Parameter(DontShow)] @@ -6393,18 +6585,18 @@ function Import-CsAutoAttendantHolidays { $httpPipelineArgs = $customCmdletUtils.ProcessArgs() - $null = $PSBoundParameters.Remove("Force") - - $base64input = [System.Convert]::ToBase64String($InputBytes) - $PSBoundParameters.Add("SerializedHolidayRecord", $base64input) - $null = $PSBoundParameters.Remove("InputBytes") - # Default ErrorAction to $ErrorActionPreference if (!$PSBoundParameters.ContainsKey("ErrorAction")) { $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) } - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Import-CsAutoAttendantHolidays @PSBoundParameters @httpPipelineArgs + # We want to flight our cmdlet if Force param is passed, but AutoRest doesn't support Force param. + # Force param doesn't seem to do anything, so remove it if it's passed. + if ($PSBoundParameters.ContainsKey('Force')) { + $PSBoundParameters.Remove('Force') | Out-Null + } + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsOnlineApplicationInstanceAssociationStatus @PSBoundParameters @httpPipelineArgs # Stop execution if internal cmdlet is failing if ($internalOutput -eq $null) { @@ -6412,14 +6604,9 @@ function Import-CsAutoAttendantHolidays { } Write-AdminServiceDiagnostic($internalOutput.Diagnostic) - - $output = @() - foreach($internalImportHolidayStatus in $internalOutput.ImportAutoAttendantHolidayResultImportHolidayStatusRecord) - { - $importHolidayStatus = [Microsoft.Rtc.Management.Hosted.OAA.Models.HolidayImportResult]::new() - $importHolidayStatus.ParseFrom($internalImportHolidayStatus) - $output += $importHolidayStatus - } + + $output = [Microsoft.Rtc.Management.Hosted.Online.Models.StatusRecord]::new() + $output.ParseFrom($internalOutput) $output @@ -6447,30 +6634,20 @@ function Import-CsAutoAttendantHolidays { # limitations under the License. # ---------------------------------------------------------------------------------- -# Objective of this custom file: Base64 encode the content for the audio file +# Objective of this custom file: Format output of Get-CsOnlineAudioFile -function Import-CsOnlineAudioFile { +function Get-CsOnlineAudioFile { [CmdletBinding(PositionalBinding=$true)] param( [Parameter(Mandatory=$false, position=0)] [System.String] - # The ApplicationId parameter is the identifier for the application which will use this audio file. - ${ApplicationId}, + # The Identity parameter is the identifier for the audio file. + ${Identity}, - [Parameter(Mandatory=$true, position=1)] + [Parameter(Mandatory=$false, position=1)] [System.String] - # The FileName parameter is the name of the audio file. - ${FileName}, - - [Parameter(Mandatory=$true, position=2)] - [System.Byte[]] - # The Content parameter represents the content of the audio file. - ${Content}, - - [Parameter(Mandatory=$false, position=3)] - [Switch] - # The Force parameter indicates if we force the action to be performed. (Deprecated) - ${Force}, + # The ApplicationId parameter is the identifier for the application which will use this audio file. + ${ApplicationId}, [Parameter(DontShow)] [ValidateNotNull()] @@ -6487,12 +6664,6 @@ function Import-CsOnlineAudioFile { $httpPipelineArgs = $customCmdletUtils.ProcessArgs() - $null = $PSBoundParameters.Remove("Force") - - $base64content = [System.Convert]::ToBase64String($Content) - $null = $PSBoundParameters.Remove("Content") - $PSBoundParameters.Add("Content", $base64content) - # Default Application ID to TenantGlobal and make it to the correct case if ($ApplicationId -eq "" -or $ApplicationId -like "TenantGlobal") { @@ -6506,6 +6677,7 @@ function Import-CsOnlineAudioFile { { $ApplicationId = "HuntGroup" } + $null = $PSBoundParameters.Remove("ApplicationId") $PSBoundParameters.Add("ApplicationId", $ApplicationId) @@ -6514,15 +6686,32 @@ function Import-CsOnlineAudioFile { $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) } - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Import-CsOnlineAudioFile @PSBoundParameters @httpPipelineArgs + if ($Identity -ne "") { + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsOnlineAudioFile @PSBoundParameters @httpPipelineArgs - # Stop execution if internal cmdlet is failing - if ($internalOutput -eq $null) { - return $null + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + $output = [Microsoft.Rtc.Management.Hosted.Online.Models.AudioFile]::new() + $output.ParseFrom($internalOutput) } + else { + $internalOutputs = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsOnlineAudioFile @PSBoundParameters @httpPipelineArgs - $output = [Microsoft.Rtc.Management.Hosted.Online.Models.AudioFile]::new() - $output.ParseFrom($internalOutput) + # Stop execution if internal cmdlet is failing + if ($internalOutputs -eq $null) { + return $null + } + + $output = New-Object Collections.Generic.List[Microsoft.Rtc.Management.Hosted.Online.Models.AudioFile] + foreach($internalOutput in $internalOutputs) { + $audioFile = [Microsoft.Rtc.Management.Hosted.Online.Models.AudioFile]::new() + $audioFile.ParseFrom($internalOutput) + $output.Add($audioFile) + } + } $output @@ -6550,86 +6739,20 @@ function Import-CsOnlineAudioFile { # limitations under the License. # ---------------------------------------------------------------------------------- -# Objective of this custom file: Format output of cmdlet +# Objective of this custom file: transforming the results to the custom objects -function New-CsAutoAttendant { - [CmdletBinding(PositionalBinding=$true)] +function Get-CsOnlineSchedule { + [CmdletBinding()] param( - [Parameter(Mandatory=$true, position=0)] - [System.String] - # The Name parameter is a friendly name that is assigned to the AA. - ${Name}, - - [Parameter(Mandatory=$true, position=1)] - [System.String] - # The LanguageId parameter is the language that is used to read text-to-speech (TTS) prompts. - ${LanguageId}, - - [Parameter(Mandatory=$false, position=2)] - [System.String] - # The VoiceId parameter represents the voice that is used to read text-to-speech (TTS) prompts. - ${VoiceId}, - - [Parameter(Mandatory=$true, position=3)] - [Microsoft.Rtc.Management.Hosted.OAA.Models.CallFlow] - # The DefaultCallFlow parameter is the flow to be executed when no other call flow is in effect (for example, during business hours). - ${DefaultCallFlow}, - - [Parameter(Mandatory=$false, position=4)] - [Microsoft.Rtc.Management.Hosted.OAA.Models.CallableEntity] - # The Operator parameter represents the address or PSTN number of the operator. - ${Operator}, - - [Parameter(Mandatory=$false, position=5)] - [Switch] - # The EnableVoiceResponse parameter indicates whether voice response for AA is enabled. - ${EnableVoiceResponse}, - - [Parameter(Mandatory=$true, position=6)] + [Parameter(Mandatory=$false)] [System.String] - # The TimeZoneId parameter represents the AA time zone. - ${TimeZoneId}, - - [Parameter(Mandatory=$false, position=7)] - [Microsoft.Rtc.Management.Hosted.OAA.Models.CallFlow[]] - # The CallFlows parameter represents call flows, which are required if they are referenced in the CallHandlingAssociations parameter. - ${CallFlows}, - - [Parameter(Mandatory=$false, position=8)] - [Microsoft.Rtc.Management.Hosted.OAA.Models.CallHandlingAssociation[]] - # The CallHandlingAssociations parameter represents the call handling associations. - ${CallHandlingAssociations}, - - [Parameter(Mandatory=$false, position=9)] - [Microsoft.Rtc.Management.Hosted.OAA.Models.DialScope] - # Specifies the users to which call transfers are allowed through directory lookup feature. - ${InclusionScope}, - - [Parameter(Mandatory=$false, position=10)] - [Microsoft.Rtc.Management.Hosted.OAA.Models.DialScope] - # Specifies the users to which call transfers are not allowed through directory lookup feature. - ${ExclusionScope}, - - [Parameter(Mandatory=$false, position=11)] - [System.Guid[]] - # The list of authorized users. - ${AuthorizedUsers}, - - [Parameter(Mandatory=$false, position=12)] - [System.Guid[]] - # The list of hidden authorized users. - ${HideAuthorizedUsers}, - - [Parameter(Mandatory=$false, position=13)] + # The identity of the schedule which is retrieved. + ${Id}, + + [Parameter(Mandatory=$false)] [Switch] - # The Force parameter indicates if we force the action to be performed. (Deprecated) ${Force}, - [Parameter(Mandatory=$false, position=14)] - [System.String] - # The UserNameExtension parameter represents how username could be extended in dial search, by appending additional info (None, Office, Department). - ${UserNameExtension}, - [Parameter(DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] @@ -6645,147 +6768,36 @@ function New-CsAutoAttendant { $httpPipelineArgs = $customCmdletUtils.ProcessArgs() - $null = $PSBoundParameters.Remove("Force") - # Default ErrorAction to $ErrorActionPreference if (!$PSBoundParameters.ContainsKey("ErrorAction")) { $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) } - - # Get common parameters - $PSBoundCommonParameters = @{} - foreach($p in $PSBoundParameters.GetEnumerator()) - { - $PSBoundCommonParameters += @{$p.Key = $p.Value} - } - $null = $PSBoundCommonParameters.Remove("Name") - $null = $PSBoundCommonParameters.Remove("LanguageId") - $null = $PSBoundCommonParameters.Remove("VoiceId") - $null = $PSBoundCommonParameters.Remove("DefaultCallFlow") - $null = $PSBoundCommonParameters.Remove("Operator") - $null = $PSBoundCommonParameters.Remove("EnableVoiceResponse") - $null = $PSBoundCommonParameters.Remove("TimeZoneId") - $null = $PSBoundCommonParameters.Remove("CallFlows") - $null = $PSBoundCommonParameters.Remove("CallHandlingAssociations") - $null = $PSBoundCommonParameters.Remove("InclusionScope") - $null = $PSBoundCommonParameters.Remove("ExclusionScope") - $null = $PSBoundCommonParameters.Remove("AuthorizedUsers") - $null = $PSBoundCommonParameters.Remove("HideAuthorizedUsers") - - if ($DefaultCallFlow -ne $null) { - $null = $PSBoundParameters.Remove('DefaultCallFlow') - if ($DefaultCallFlow.Id -ne $null) { - $PSBoundParameters.Add('DefaultCallFlowId', $DefaultCallFlow.Id) - } - if ($DefaultCallFlow.Greetings -ne $null) { - $defaultCallFlowGreetings = @() - foreach ($defaultCallFlowGreeting in $DefaultCallFlow.Greetings) { - $defaultCallFlowGreetings += $defaultCallFlowGreeting.ParseToAutoGeneratedModel() - } - $PSBoundParameters.Add('DefaultCallFlowGreeting', $defaultCallFlowGreetings) - } - if ($DefaultCallFlow.Name -ne $null) { - $PSBoundParameters.Add('DefaultCallFlowName', $DefaultCallFlow.Name) - } - if ($DefaultCallFlow.ForceListenMenuEnabled -eq $true) { - $PSBoundParameters.Add('DefaultCallFlowForceListenMenuEnabled', $true) - } - if ($DefaultCallFlow.Menu -ne $null) { - if ($DefaultCallFlow.Menu.DialByNameEnabled) { - $PSBoundParameters.Add('MenuDialByNameEnabled', $true) - } - $PSBoundParameters.Add('MenuDirectorySearchMethod', $DefaultCallFlow.Menu.DirectorySearchMethod.ToString()) - if ($DefaultCallFlow.Menu.Name -ne $null) { - $PSBoundParameters.Add('MenuName', $DefaultCallFlow.Menu.Name) - } - if ($DefaultCallFlow.Menu.MenuOptions -ne $null) { - $defaultCallFlowMenuOptions = @() - foreach ($defaultCallFlowMenuOption in $DefaultCallFlow.Menu.MenuOptions) { - $defaultCallFlowMenuOptions += $defaultCallFlowMenuOption.ParseToAutoGeneratedModel() - } - $PSBoundParameters.Add('MenuOption', $defaultCallFlowMenuOptions) - } - if ($DefaultCallFlow.Menu.Prompts -ne $null) { - $defaultCallFlowMenuPrompts = @() - foreach ($defaultCallFlowMenuPrompt in $DefaultCallFlow.Menu.Prompts) { - $defaultCallFlowMenuPrompts += $defaultCallFlowMenuPrompt.ParseToAutoGeneratedModel() - } - $PSBoundParameters.Add('MenuPrompt', $defaultCallFlowMenuPrompts) - } - } - } - if ($CallFlows -ne $null) { - $null = $PSBoundParameters.Remove('CallFlows') - $inputCallFlows = @() - foreach ($callFlow in $CallFlows) { - $inputCallFlows += $callFlow.ParseToAutoGeneratedModel() - } - $PSBoundParameters.Add('CallFlow', $inputCallFlows) - } - if ($CallHandlingAssociations -ne $null) { - $null = $PSBoundParameters.Remove('CallHandlingAssociations') - $inputCallHandlingAssociations = @() - foreach ($callHandlingAssociation in $CallHandlingAssociations) { - $inputCallHandlingAssociations += $callHandlingAssociation.ParseToAutoGeneratedModel() - } - $PSBoundParameters.Add('CallHandlingAssociation', $inputCallHandlingAssociations) - } - if ($Operator -ne $null) { - $null = $PSBoundParameters.Remove('Operator') - $PSBoundParameters.Add('OperatorEnableTranscription', $Operator.EnableTranscription) - $PSBoundParameters.Add('OperatorId', $Operator.Id) - $PSBoundParameters.Add('OperatorType', $Operator.Type.ToString()) - } - if ($InclusionScope -ne $null) { - $null = $PSBoundParameters.Remove('InclusionScope') - $PSBoundParameters.Add('InclusionScopeType', $InclusionScope.Type.ToString()) - $PSBoundParameters.Add('InclusionScopeGroupDialScopeGroupId', $InclusionScope.GroupScope.GroupIds) - } - if ($ExclusionScope -ne $null) { - $null = $PSBoundParameters.Remove('ExclusionScope') - $PSBoundParameters.Add('ExclusionScopeType', $ExclusionScope.Type.ToString()) - $PSBoundParameters.Add('ExclusionScopeGroupDialScopeGroupId', $ExclusionScope.GroupScope.GroupIds) - } - if ($AuthorizedUsers -ne $null) { - $null = $PSBoundParameters.Remove('AuthorizedUsers') - $inputAuthorizedUsers = @() - foreach ($authorizedUser in $AuthorizedUsers) { - $inputAuthorizedUsers += $authorizedUser.ToString() - } - $PSBoundParameters.Add('AuthorizedUser', $inputAuthorizedUsers) - } - if ($HideAuthorizedUsers -ne $null) { - $null = $PSBoundParameters.Remove('HideAuthorizedUsers') - $inputHideAuthorizedUsers = @() - foreach ($hiddenAuthorizedUser in $HideAuthorizedUsers) { - $inputHideAuthorizedUsers += $hiddenAuthorizedUser.ToString() - } - $PSBoundParameters.Add('HideAuthorizedUser', $inputHideAuthorizedUsers) + + if ($PSBoundParameters.ContainsKey("Force")) { + $PSBoundParameters.Remove("Force") | Out-Null } - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsAutoAttendant @PSBoundParameters @httpPipelineArgs + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsOnlineSchedule @PSBoundParameters @httpPipelineArgs # Stop execution if internal cmdlet is failing - if ($internalOutput -eq $null) { + if ($result -eq $null) { return $null } - Write-AdminServiceDiagnostic($internalOutput.Diagnostic) - - $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.AutoAttendant]::new() - $output.ParseFrom($internalOutput.AutoAttendant) + Write-AdminServiceDiagnostic($result.Diagnostic) - $getCsAutoAttendantStatusParameters = @{Identity = $output.Identity} - foreach($p in $PSBoundCommonParameters.GetEnumerator()) - { - $getCsAutoAttendantStatusParameters += @{$p.Key = $p.Value} + if (${Id} -ne '') { + $schedule = [Microsoft.Rtc.Management.Hosted.Online.Models.Schedule]::new() + $schedule.ParseFrom($result) + } else { + $schedules = @() + foreach ($model in $result.Schedule) { + $schedule = [Microsoft.Rtc.Management.Hosted.Online.Models.Schedule]::new() + $schedules += $schedule.ParseFrom($model) + } + $schedules } - $internalStatus = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsAutoAttendantStatus @getCsAutoAttendantStatusParameters @httpPipelineArgs - $output.AmendStatus($internalStatus) - - $output - } catch { $customCmdletUtils.SendTelemetry() throw @@ -6810,39 +6822,18 @@ function New-CsAutoAttendant { # limitations under the License. # ---------------------------------------------------------------------------------- -# Objective of this custom file: Format output of cmdlet +# Objective of this custom file: Print error message in case of error -function New-CsAutoAttendantCallableEntity { +function Get-CsOnlineVoicemailUserSettings { [CmdletBinding(PositionalBinding=$true)] param( [Parameter(Mandatory=$true, position=0)] [System.String] - # The Identity parameter represents the ID of the callable entity + # The identity for the user for the voice mail settings ${Identity}, - [Parameter(Mandatory=$true, position=1)] - [Microsoft.Rtc.Management.Hosted.OAA.Models.CallableEntityType] - # The Type parameter represents the type of the callable entity - ${Type}, - - [Parameter(Mandatory=$false, position=2)] - [Switch] - # Enables the email transcription of voicemail, this is only supported with shared voicemail callable entities. - ${EnableTranscription}, - - [Parameter(Mandatory=$false, position=3)] - [Switch] - # Suppresses the "Please leave a message after the tone" system prompt when transferring to shared voicemail. - ${EnableSharedVoicemailSystemPromptSuppression}, - - [Parameter(Mandatory=$false, position=4)] - [System.Int16] - # The Call Priority of the MenuOption, only applies when the CallableEntityType (Type) is ApplicationEndpoint. - ${CallPriority}, - - [Parameter(Mandatory=$false, position=5)] + [Parameter(Mandatory=$false, position=1)] [Switch] - # The Force parameter indicates if we force the action to be performed. (Deprecated) ${Force}, [Parameter(DontShow)] @@ -6860,41 +6851,24 @@ function New-CsAutoAttendantCallableEntity { $httpPipelineArgs = $customCmdletUtils.ProcessArgs() - $null = $PSBoundParameters.Remove("Force") - # Default ErrorAction to $ErrorActionPreference if (!$PSBoundParameters.ContainsKey("ErrorAction")) { $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) } - # CallPriority is only applicable for the 'ApplicationEndpoint' and 'ConfigurationEndpoint' type. - # For all other cases, an error message should be displayed when a value is provided. - if ($Type -ne 'ApplicationEndpoint' -and $Type -ne 'ConfigurationEndpoint' -and ([Math]::Abs($CallPriority) -ge 1)) - { - throw "CallPriority is only applicable when the 'Type' is 'ApplicationEndpoint' or 'ConfigurationEndpoint'. Please remove the CallPriority."; - } - - # Making sure the user provides the correct CallPriority value. The valid values are 1 to 5. - # Zero is also allowed which means the user wants to use the default CallPriority or doesn't want to use the CallPriority feature. - if (($Type -eq 'ApplicationEndpoint' -or $Type -eq 'ConfigurationEndpoint') -and ($CallPriority -lt 0 -or $CallPriority -gt 5)) - { - throw "Invalid CallPriority. The valid values are 1 to 5 (default is 3). Please provide the correct value."; + if ($PSBoundParameters.ContainsKey("Force")) { + $PSBoundParameters.Remove("Force") | Out-Null } - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsAutoAttendantCallableEntity @PSBoundParameters @httpPipelineArgs + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsOnlineVMUserSetting @PSBoundParameters @httpPipelineArgs # Stop execution if internal cmdlet is failing - if ($internalOutput -eq $null) { + if ($result -eq $null) { return $null } - Write-AdminServiceDiagnostic($internalOutput.Diagnostic) - - $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.CallableEntity]::new() - $output.ParseFrom($internalOutput) - - $output - + $result + } catch { $customCmdletUtils.SendTelemetry() throw @@ -6919,43 +6893,27 @@ function New-CsAutoAttendantCallableEntity { # limitations under the License. # ---------------------------------------------------------------------------------- -# Objective of this custom file: Put nested ApplicationInstance object as first layer object - -function New-CsAutoAttendantCallFlow { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$true, position=0)] - [System.String] - # The Name parameter represents a unique friendly name for the call flow. - ${Name}, - - [Parameter(Mandatory=$false, position=1)] - [PSObject[]] - # If present, the prompts specified by the Greetings parameter (either TTS or Audio) are played before the call flow's menu is rendered. - ${Greetings}, - - [Parameter(Mandatory=$true, position=2)] - [PSObject] - # The Menu parameter identifies the menu to render when the call flow is executed. - ${Menu}, - - [Parameter(Mandatory=$false, position=3)] - [Switch] - # The ForceListenMenuEnabled parameter indicates whether the caller will be forced to listen to the menu. - ${ForceListenMenuEnabled}, +# Objective of this custom file: transforming the results to the custom objects - [Parameter(Mandatory=$false, position=4)] - [Switch] - # The Force parameter indicates if we force the action to be performed. (Deprecated) - ${Force}, +function Get-CsSharedCallQueueHistoryTemplate { + [CmdletBinding()] + param( + [Parameter(Mandatory=$false)] + [System.String] + # The identity of the shared call queue history template which is retrieved. + ${Id}, + + [Parameter(Mandatory=$false)] + [Switch] + ${Force}, - [Parameter(DontShow)] + [Parameter(DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] ${HttpPipelinePrepend} ) - begin { + begin { $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) } @@ -6964,59 +6922,38 @@ function New-CsAutoAttendantCallFlow { $httpPipelineArgs = $customCmdletUtils.ProcessArgs() - $null = $PSBoundParameters.Remove("Force") - - If ($ForceListenMenuEnabled -ne $null){ - $null = $PSBoundParameters.Remove("ForceListenMenuEnabled") - $PSBoundParameters.Add('ForceListenMenuEnabled', $ForceListenMenuEnabled) - } # Default ErrorAction to $ErrorActionPreference if (!$PSBoundParameters.ContainsKey("ErrorAction")) { $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) } + + if ($PSBoundParameters.ContainsKey("Force")) { + $PSBoundParameters.Remove("Force") | Out-Null + } - if ($Greetings -ne $null) { - $null = $PSBoundParameters.Remove('Greetings') - $inputGreetings = @() - foreach ($greeting in $Greetings) { - $inputGreetings += [Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt]::CreateAutoGeneratedFromObject($greeting) - } - $PSBoundParameters.Add('Greeting', $inputGreetings) + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsSharedCallQueueHistoryTemplate @PSBoundParameters @httpPipelineArgs + + + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null } - if ($Menu -ne $null) { - $null = $PSBoundParameters.Remove('Menu') - if ($Menu.DialByNameEnabled) { - $PSBoundParameters.Add('MenuDialByNameEnabled', $true) + Write-AdminServiceDiagnostic($result.Diagnostic) + + if (![string]::IsNullOrEmpty(${Id})) { + $SharedCallQueueHistory = [Microsoft.Rtc.Management.Hosted.Online.Models.SharedCallQueueHistory]::new() + $SharedCallQueueHistory.ParseFromGetResponse($result) + } + else { + $AllSharedCallQueueHistory = @() + foreach ($model in $result.AllSharedCallQueueHistory) { + $SharedCallQueueHistory = [Microsoft.Rtc.Management.Hosted.Online.Models.SharedCallQueueHistory]::new() + $AllSharedCallQueueHistory += $SharedCallQueueHistory.ParseFromDtoModel($model) } - $PSBoundParameters.Add('MenuDirectorySearchMethod', $Menu.DirectorySearchMethod) - $PSBoundParameters.Add('MenuName', $Menu.Name) - $inputMenuOptions = @() - foreach ($menuOption in $Menu.MenuOptions) { - $inputMenuOptions += [Microsoft.Rtc.Management.Hosted.OAA.Models.MenuOption]::CreateAutoGeneratedFromObject($menuOption) - } - $PSBoundParameters.Add('MenuOption', $inputMenuOptions) - $inputMenuPrompts = @() - foreach ($menuPrompt in $Menu.Prompts) { - $inputMenuPrompts += [Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt]::CreateAutoGeneratedFromObject($menuPrompt) - } - $PSBoundParameters.Add('MenuPrompt', $inputMenuPrompts) - } - - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsAutoAttendantCallFlow @PSBoundParameters @httpPipelineArgs - - # Stop execution if internal cmdlet is failing - if ($internalOutput -eq $null) { - return $null + $AllSharedCallQueueHistory } - Write-AdminServiceDiagnostic($internalOutput.Diagnostic) - - $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.CallFlow]::new() - $output.ParseFrom($internalOutput) - - $output - } catch { $customCmdletUtils.SendTelemetry() throw @@ -7041,43 +6978,27 @@ function New-CsAutoAttendantCallFlow { # limitations under the License. # ---------------------------------------------------------------------------------- -# Objective of this custom file: Print diagnostic message from service - -function New-CsAutoAttendantCallHandlingAssociation { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$true, position=0)] - [Microsoft.Rtc.Management.Hosted.OAA.Models.CallHandlingAssociationType] - # The Type parameter represents the type of the call handling association. - ${Type}, - - [Parameter(Mandatory=$true, position=1)] - [System.String] - # The ScheduleId parameter represents the schedule to be associated with the call flow. - ${ScheduleId}, - - [Parameter(Mandatory=$true, position=2)] - [System.String] - # The CallFlowId parameter represents the call flow to be associated with the schedule. - ${CallFlowId}, - - [Parameter(Mandatory=$false, position=3)] - [Switch] - # The Disable parameter, if set, establishes that the call handling association is created as disabled. - ${Disable}, +# Objective of this custom file: transforming the results to the custom objects - [Parameter(Mandatory=$false, position=4)] - [Switch] - # The Force parameter indicates if we force the action to be performed. (Deprecated) - ${Force}, +function Get-CsTagsTemplate { + [CmdletBinding()] + param( + [Parameter(Mandatory=$false)] + [System.String] + # The identity of the shared tags template which is retrieved. + ${Id}, + + [Parameter(Mandatory=$false)] + [Switch] + ${Force}, - [Parameter(DontShow)] + [Parameter(DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] ${HttpPipelinePrepend} ) - begin { + begin { $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) } @@ -7086,32 +7007,36 @@ function New-CsAutoAttendantCallHandlingAssociation { $httpPipelineArgs = $customCmdletUtils.ProcessArgs() - $null = $PSBoundParameters.Remove("Force") - - if ($Disable -eq $true) { - $null = $PSBoundParameters.Remove('Disable') - } else { - $PSBoundParameters.Add('Enable', $true) - } - # Default ErrorAction to $ErrorActionPreference if (!$PSBoundParameters.ContainsKey("ErrorAction")) { $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) } + + if ($PSBoundParameters.ContainsKey("Force")) { + $PSBoundParameters.Remove("Force") | Out-Null + } - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsAutoAttendantCallHandlingAssociation @PSBoundParameters @httpPipelineArgs + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsTagsTemplate @PSBoundParameters @httpPipelineArgs # Stop execution if internal cmdlet is failing - if ($internalOutput -eq $null) { + if ($result -eq $null) { return $null } - Write-AdminServiceDiagnostic($internalOutput.Diagnostic) - - $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.CallHandlingAssociation]::new() - $output.ParseFrom($internalOutput) + Write-AdminServiceDiagnostic($result.Diagnostic) - $output + if (![string]::IsNullOrEmpty(${Id})) { + $TagsTemplate = [Microsoft.Rtc.Management.Hosted.OAA.Models.IvrTagsTemplate]::new() + $TagsTemplate.ParseFromGetResponse($result) + } + else { + $AllIvrTagsTemplates = @() + foreach ($model in $result.IvrTagsTemplate) { + $TagsTemplate = [Microsoft.Rtc.Management.Hosted.OAA.Models.IvrTagsTemplate]::new() + $AllIvrTagsTemplates += $TagsTemplate.MapFromAutoGeneratedModel($model) + } + $AllIvrTagsTemplates + } } catch { $customCmdletUtils.SendTelemetry() @@ -7137,20 +7062,20 @@ function New-CsAutoAttendantCallHandlingAssociation { # limitations under the License. # ---------------------------------------------------------------------------------- -# Objective of this custom file: Print diagnostic message from server respond +# Objective of this custom file: Print error message in case of error -function New-CsAutoAttendantDialScope { +function Import-CsAutoAttendantHolidays { [CmdletBinding(PositionalBinding=$true)] param( [Parameter(Mandatory=$true, position=0)] - [Switch] - # Indicates that a dial-scope based on groups (distribution lists, security groups) is to be created. - ${GroupScope}, + [System.String] + # The identity for the AA whose holiday schedules are to be imported. + ${Identity}, + [Alias('Input')] [Parameter(Mandatory=$true, position=1)] - [System.String[]] - # Refers to the IDs of the groups that are to be included in the dial-scope. - ${GroupIds}, + [System.Byte[]] + ${InputBytes}, [Parameter(Mandatory=$false, position=2)] [Switch] @@ -7174,16 +7099,16 @@ function New-CsAutoAttendantDialScope { $null = $PSBoundParameters.Remove("Force") - if ($GroupScope -eq $true) { - $null = $PSBoundParameters.Remove('GroupScope') - } + $base64input = [System.Convert]::ToBase64String($InputBytes) + $PSBoundParameters.Add("SerializedHolidayRecord", $base64input) + $null = $PSBoundParameters.Remove("InputBytes") # Default ErrorAction to $ErrorActionPreference if (!$PSBoundParameters.ContainsKey("ErrorAction")) { $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) } - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsAutoAttendantDialScope @PSBoundParameters @httpPipelineArgs + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Import-CsAutoAttendantHolidays @PSBoundParameters @httpPipelineArgs # Stop execution if internal cmdlet is failing if ($internalOutput -eq $null) { @@ -7192,8 +7117,13 @@ function New-CsAutoAttendantDialScope { Write-AdminServiceDiagnostic($internalOutput.Diagnostic) - $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.DialScope]::new() - $output.ParseFrom($internalOutput) + $output = @() + foreach($internalImportHolidayStatus in $internalOutput.ImportAutoAttendantHolidayResultImportHolidayStatusRecord) + { + $importHolidayStatus = [Microsoft.Rtc.Management.Hosted.OAA.Models.HolidayImportResult]::new() + $importHolidayStatus.ParseFrom($internalImportHolidayStatus) + $output += $importHolidayStatus + } $output @@ -7221,38 +7151,28 @@ function New-CsAutoAttendantDialScope { # limitations under the License. # ---------------------------------------------------------------------------------- -# Objective of this custom file: Format input of the cmdlet +# Objective of this custom file: Base64 encode the content for the audio file -function New-CsAutoAttendantMenu { +function Import-CsOnlineAudioFile { [CmdletBinding(PositionalBinding=$true)] param( - [Parameter(Mandatory=$true, position=0)] + [Parameter(Mandatory=$false, position=0)] [System.String] - # The Name parameter represents a friendly name for the menu. - ${Name}, + # The ApplicationId parameter is the identifier for the application which will use this audio file. + ${ApplicationId}, - [Parameter(Mandatory=$false, position=1)] - [PSObject[]] - # The Prompts parameter reflects the prompts to play when the menu is activated. - ${Prompts}, + [Parameter(Mandatory=$true, position=1)] + [System.String] + # The FileName parameter is the name of the audio file. + ${FileName}, - [Parameter(Mandatory=$false, position=2)] - [PSObject[]] - # The MenuOptions parameter is a list of menu options for this menu. - ${MenuOptions}, + [Parameter(Mandatory=$true, position=2)] + [System.Byte[]] + # The Content parameter represents the content of the audio file. + ${Content}, [Parameter(Mandatory=$false, position=3)] [Switch] - # The EnableDialByName parameter lets users do a directory search by recipient name and get transferred to the party. - ${EnableDialByName}, - - [Parameter(Mandatory=$false, position=4)] - [Microsoft.Rtc.Management.Hosted.OAA.Models.DirectorySearchMethod] - # The DirectorySearchMethod parameter lets you define the type of Directory Search Method for the Auto Attendant menu. - ${DirectorySearchMethod}, - - [Parameter(Mandatory=$false, position=5)] - [Switch] # The Force parameter indicates if we force the action to be performed. (Deprecated) ${Force}, @@ -7273,39 +7193,39 @@ function New-CsAutoAttendantMenu { $null = $PSBoundParameters.Remove("Force") - # Default ErrorAction to $ErrorActionPreference - if (!$PSBoundParameters.ContainsKey("ErrorAction")) { - $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) - } + $base64content = [System.Convert]::ToBase64String($Content) + $null = $PSBoundParameters.Remove("Content") + $PSBoundParameters.Add("Content", $base64content) - if ($Prompts -ne $null) { - $null = $PSBoundParameters.Remove('Prompts') - $inputPrompts = @() - foreach ($prompt in $Prompts) { - $inputPrompts += [Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt]::CreateAutoGeneratedFromObject($prompt) - } - $PSBoundParameters.Add('Prompt', $inputPrompts) + # Default Application ID to TenantGlobal and make it to the correct case + if ($ApplicationId -eq "" -or $ApplicationId -like "TenantGlobal") + { + $ApplicationId = "TenantGlobal" + } + elseif ($ApplicationId -like "OrgAutoAttendant") + { + $ApplicationId = "OrgAutoAttendant" } + elseif ($ApplicationId -like "HuntGroup") + { + $ApplicationId = "HuntGroup" + } + $null = $PSBoundParameters.Remove("ApplicationId") + $PSBoundParameters.Add("ApplicationId", $ApplicationId) - if ($MenuOptions -ne $null) { - $null = $PSBoundParameters.Remove('MenuOptions') - $inputMenuOptions = @() - foreach ($menuOption in $MenuOptions) { - $inputMenuOptions += [Microsoft.Rtc.Management.Hosted.OAA.Models.MenuOption]::CreateAutoGeneratedFromObject($menuOption) - } - $PSBoundParameters.Add('MenuOption', $inputMenuOptions) + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) } - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsAutoAttendantMenu @PSBoundParameters @httpPipelineArgs + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Import-CsOnlineAudioFile @PSBoundParameters @httpPipelineArgs # Stop execution if internal cmdlet is failing if ($internalOutput -eq $null) { return $null } - Write-AdminServiceDiagnostic($internalOutput.Diagnostic) - - $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.Menu]::new() + $output = [Microsoft.Rtc.Management.Hosted.Online.Models.AudioFile]::new() $output.ParseFrom($internalOutput) $output @@ -7334,95 +7254,272 @@ function New-CsAutoAttendantMenu { # limitations under the License. # ---------------------------------------------------------------------------------- -# Objective of this custom file: Format input of the cmdlet +# Objective of this custom file: Format output of cmdlet -function New-CsAutoAttendantMenuOption { +function New-CsAutoAttendant { [CmdletBinding(PositionalBinding=$true)] param( [Parameter(Mandatory=$true, position=0)] - [Microsoft.Rtc.Management.Hosted.OAA.Models.ActionType] - # The Action parameter represents the action to be taken when the menu option is activated. - ${Action}, + [System.String] + # The Name parameter is a friendly name that is assigned to the AA. + ${Name}, [Parameter(Mandatory=$true, position=1)] - [Microsoft.Rtc.Management.Hosted.OAA.Models.DtmfTone] - # The DtmfResponse parameter indicates the key on the telephone keypad to be pressed to activate the menu option. - ${DtmfResponse}, + [System.String] + # The LanguageId parameter is the language that is used to read text-to-speech (TTS) prompts. + ${LanguageId}, [Parameter(Mandatory=$false, position=2)] - [System.String[]] - # The VoiceResponses parameter represents the voice responses to select a menu option when Voice Responses are enabled for the auto attendant. - ${VoiceResponses}, + [System.String] + # The VoiceId parameter represents the voice that is used to read text-to-speech (TTS) prompts. + ${VoiceId}, - [Parameter(Mandatory=$false, position=3)] - [Microsoft.Rtc.Management.Hosted.OAA.Models.CallableEntity] - # The CallTarget parameter represents the target for call transfer after the menu option is selected. - ${CallTarget}, + [Parameter(Mandatory=$true, position=3)] + [Microsoft.Rtc.Management.Hosted.OAA.Models.CallFlow] + # The DefaultCallFlow parameter is the flow to be executed when no other call flow is in effect (for example, during business hours). + ${DefaultCallFlow}, [Parameter(Mandatory=$false, position=4)] - [PSObject] - # The Prompt parameter represents the announcement prompt. - ${Prompt}, + [Microsoft.Rtc.Management.Hosted.OAA.Models.CallableEntity] + # The Operator parameter represents the address or PSTN number of the operator. + ${Operator}, [Parameter(Mandatory=$false, position=5)] [Switch] - # The Force parameter indicates if we force the action to be performed. (Deprecated) - ${Force}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend} - ) - - begin { - $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) - } + # The EnableVoiceResponse parameter indicates whether voice response for AA is enabled. + ${EnableVoiceResponse}, - process { - try { + [Parameter(Mandatory=$true, position=6)] + [System.String] + # The TimeZoneId parameter represents the AA time zone. + ${TimeZoneId}, - $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + [Parameter(Mandatory=$false, position=7)] + [Microsoft.Rtc.Management.Hosted.OAA.Models.CallFlow[]] + # The CallFlows parameter represents call flows, which are required if they are referenced in the CallHandlingAssociations parameter. + ${CallFlows}, - $null = $PSBoundParameters.Remove("Force") + [Parameter(Mandatory=$false, position=8)] + [Microsoft.Rtc.Management.Hosted.OAA.Models.CallHandlingAssociation[]] + # The CallHandlingAssociations parameter represents the call handling associations. + ${CallHandlingAssociations}, + + [Parameter(Mandatory=$false, position=9)] + [Microsoft.Rtc.Management.Hosted.OAA.Models.DialScope] + # Specifies the users to which call transfers are allowed through directory lookup feature. + ${InclusionScope}, + + [Parameter(Mandatory=$false, position=10)] + [Microsoft.Rtc.Management.Hosted.OAA.Models.DialScope] + # Specifies the users to which call transfers are not allowed through directory lookup feature. + ${ExclusionScope}, + + [Parameter(Mandatory=$false, position=11)] + [System.Guid[]] + # The list of authorized users. + ${AuthorizedUsers}, + + [Parameter(Mandatory=$false, position=12)] + [System.Guid[]] + # The list of hidden authorized users. + ${HideAuthorizedUsers}, + + [Parameter(Mandatory=$false, position=13)] + [Switch] + # The Force parameter indicates if we force the action to be performed. (Deprecated) + ${Force}, + + [Parameter(Mandatory=$false, position=14)] + [System.String] + # The UserNameExtension parameter represents how username could be extended in dial search, by appending additional info (None, Office, Department). + ${UserNameExtension}, + + [Parameter(Mandatory=$false, position=15)] + [Switch] + # The EnableMainlineAttendant parameter indicates whether mainline attendant is enabled or not. + ${EnableMainlineAttendant}, + + [Parameter(Mandatory=$false, position=16)] + [System.String] + # The MainlineAttendantAgentVoiceId parameter represents the voice that is used for Mainline Attendant. + ${MainlineAttendantAgentVoiceId}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $null = $PSBoundParameters.Remove("Force") # Default ErrorAction to $ErrorActionPreference if (!$PSBoundParameters.ContainsKey("ErrorAction")) { $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) } - if ($CallTarget -ne $null) { - $null = $PSBoundParameters.Remove('CallTarget') - $PSBoundParameters.Add('CallTargetId', $CallTarget.Id) - $PSBoundParameters.Add('CallTargetType', $CallTarget.Type) - if ($CallTarget.EnableTranscription) { - $PSBoundParameters.Add('CallTargetEnableTranscription', $True) + # Get common parameters + $PSBoundCommonParameters = @{} + foreach($p in $PSBoundParameters.GetEnumerator()) + { + $PSBoundCommonParameters += @{$p.Key = $p.Value} + } + $null = $PSBoundCommonParameters.Remove("Name") + $null = $PSBoundCommonParameters.Remove("LanguageId") + $null = $PSBoundCommonParameters.Remove("VoiceId") + $null = $PSBoundCommonParameters.Remove("DefaultCallFlow") + $null = $PSBoundCommonParameters.Remove("Operator") + $null = $PSBoundCommonParameters.Remove("EnableVoiceResponse") + $null = $PSBoundCommonParameters.Remove("TimeZoneId") + $null = $PSBoundCommonParameters.Remove("CallFlows") + $null = $PSBoundCommonParameters.Remove("CallHandlingAssociations") + $null = $PSBoundCommonParameters.Remove("InclusionScope") + $null = $PSBoundCommonParameters.Remove("ExclusionScope") + $null = $PSBoundCommonParameters.Remove("AuthorizedUsers") + $null = $PSBoundCommonParameters.Remove("HideAuthorizedUsers") + $null = $PSBoundCommonParameters.Remove("EnableMainlineAttendant") + $null = $PSBoundCommonParameters.Remove("MainlineAttendantAgentVoiceId") + + if ($DefaultCallFlow -ne $null) { + $null = $PSBoundParameters.Remove('DefaultCallFlow') + if ($DefaultCallFlow.Id -ne $null) { + $PSBoundParameters.Add('DefaultCallFlowId', $DefaultCallFlow.Id) } - if ($CallTarget.EnableSharedVoicemailSystemPromptSuppression) { - $PSBoundParameters.Add('CallTargetEnableSharedVoicemailSystemPromptSuppression', $True) + if ($DefaultCallFlow.Greetings -ne $null) { + $defaultCallFlowGreetings = @() + foreach ($defaultCallFlowGreeting in $DefaultCallFlow.Greetings) { + $defaultCallFlowGreetings += $defaultCallFlowGreeting.ParseToAutoGeneratedModel() + } + $PSBoundParameters.Add('DefaultCallFlowGreeting', $defaultCallFlowGreetings) } - if ($CallTarget.Type -eq 'ApplicationEndpoint' -or $CallTarget.Type -eq 'ConfigurationEndpoint') { - $PSBoundParameters.Add('CallTargetCallPriority', $CallTarget.CallPriority) + if ($DefaultCallFlow.Name -ne $null) { + $PSBoundParameters.Add('DefaultCallFlowName', $DefaultCallFlow.Name) + } + if ($DefaultCallFlow.ForceListenMenuEnabled -eq $true) { + $PSBoundParameters.Add('DefaultCallFlowForceListenMenuEnabled', $true) + } + if ($DefaultCallFlow.Menu -ne $null) { + if ($DefaultCallFlow.Menu.DialByNameEnabled) { + $PSBoundParameters.Add('MenuDialByNameEnabled', $true) + } + $PSBoundParameters.Add('MenuDirectorySearchMethod', $DefaultCallFlow.Menu.DirectorySearchMethod.ToString()) + if ($DefaultCallFlow.Menu.Name -ne $null) { + $PSBoundParameters.Add('MenuName', $DefaultCallFlow.Menu.Name) + } + if ($DefaultCallFlow.Menu.MenuOptions -ne $null) { + $defaultCallFlowMenuOptions = @() + foreach ($defaultCallFlowMenuOption in $DefaultCallFlow.Menu.MenuOptions) { + $defaultCallFlowMenuOptions += $defaultCallFlowMenuOption.ParseToAutoGeneratedModel() + } + $PSBoundParameters.Add('MenuOption', $defaultCallFlowMenuOptions) + } + if ($DefaultCallFlow.Menu.Prompts -ne $null) { + $defaultCallFlowMenuPrompts = @() + foreach ($defaultCallFlowMenuPrompt in $DefaultCallFlow.Menu.Prompts) { + $defaultCallFlowMenuPrompts += $defaultCallFlowMenuPrompt.ParseToAutoGeneratedModel() + } + $PSBoundParameters.Add('MenuPrompt', $defaultCallFlowMenuPrompts) + } + } + } + if ($CallFlows -ne $null) { + $null = $PSBoundParameters.Remove('CallFlows') + $inputCallFlows = @() + foreach ($callFlow in $CallFlows) { + $inputCallFlows += $callFlow.ParseToAutoGeneratedModel() + } + $PSBoundParameters.Add('CallFlow', $inputCallFlows) + } + if ($CallHandlingAssociations -ne $null) { + $null = $PSBoundParameters.Remove('CallHandlingAssociations') + $inputCallHandlingAssociations = @() + foreach ($callHandlingAssociation in $CallHandlingAssociations) { + $inputCallHandlingAssociations += $callHandlingAssociation.ParseToAutoGeneratedModel() + } + $PSBoundParameters.Add('CallHandlingAssociation', $inputCallHandlingAssociations) + } + if ($Operator -ne $null) { + $null = $PSBoundParameters.Remove('Operator') + $PSBoundParameters.Add('OperatorEnableTranscription', $Operator.EnableTranscription) + $PSBoundParameters.Add('OperatorId', $Operator.Id) + $PSBoundParameters.Add('OperatorType', $Operator.Type.ToString()) + } + if ($InclusionScope -ne $null) { + $null = $PSBoundParameters.Remove('InclusionScope') + $PSBoundParameters.Add('InclusionScopeType', $InclusionScope.Type.ToString()) + $PSBoundParameters.Add('InclusionScopeGroupDialScopeGroupId', $InclusionScope.GroupScope.GroupIds) + } + if ($ExclusionScope -ne $null) { + $null = $PSBoundParameters.Remove('ExclusionScope') + $PSBoundParameters.Add('ExclusionScopeType', $ExclusionScope.Type.ToString()) + $PSBoundParameters.Add('ExclusionScopeGroupDialScopeGroupId', $ExclusionScope.GroupScope.GroupIds) + } + if ($AuthorizedUsers -ne $null) { + $null = $PSBoundParameters.Remove('AuthorizedUsers') + $inputAuthorizedUsers = @() + foreach ($authorizedUser in $AuthorizedUsers) { + $inputAuthorizedUsers += $authorizedUser.ToString() + } + $PSBoundParameters.Add('AuthorizedUser', $inputAuthorizedUsers) + } + if ($HideAuthorizedUsers -ne $null) { + $null = $PSBoundParameters.Remove('HideAuthorizedUsers') + $inputHideAuthorizedUsers = @() + foreach ($hiddenAuthorizedUser in $HideAuthorizedUsers) { + $inputHideAuthorizedUsers += $hiddenAuthorizedUser.ToString() } + $PSBoundParameters.Add('HideAuthorizedUser', $inputHideAuthorizedUsers) } - if ($Prompt -ne $null) { - $typeNames = $Prompt.PSObject.TypeNames - if ($typeNames -NotContains "Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt" -and $typeNames -NotContains "Deserialized.Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt") { - throw "PSObject must be type of Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt or Deserialized.Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt" + if ($EnableMainlineAttendant -eq $true) { + # Check whether the greetings is provided by the customer or should we use the default greeting. + if ($DefaultCallFlow.Greetings -eq $null) { + Write-Warning "Greetings is not set for the DefaultCallFlow. The system default greeting will be used for mainline attendant." + $defaultCallFlowGreetings = @() + $defaultCallFlowGreetings += [Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt]::CreateAutoGeneratedFromObject( + @{ + ActiveType = [Microsoft.Rtc.Management.Hosted.OAA.Models.PromptType]::TextToSpeech; + TextToSpeechPrompt = "Hello, and thank you for calling $Name. How can I assist you today? Please note that this call may be recorded for compliance purposes." + } + ) + $PSBoundParameters.Add('DefaultCallFlowGreeting', $defaultCallFlowGreetings) } - - $null = $PSBoundParameters.Remove('Prompt') - $PSBoundParameters.Add('PromptActiveType', $Prompt.ActiveType) - $PSBoundParameters.Add('PromptTextToSpeechPrompt', $Prompt.TextToSpeechPrompt) - if ($Prompt.AudioFilePrompt -ne $null -and $Prompt.AudioFilePrompt.Id -ne $null) { - $PSBoundParameters.Add('AudioFilePromptId', $Prompt.AudioFilePrompt.Id) - $PSBoundParameters.Add('AudioFilePromptFileName', $Prompt.AudioFilePrompt.FileName) - $PSBoundParameters.Add('AudioFilePromptDownloadUri', $Prompt.AudioFilePrompt.DownloadUri) + + # For mainline attendant as of now, we only support "en-US" language. + $supportedLanguageId = "en-US" + if ($LanguageId -ne $supportedLanguageId) { + Write-Warning "The provided LanguageId '$LanguageId' is not supported for mainline attendant. Defaulting to 'en-US'." + $null = $PSBoundParameters.Remove('LanguageId') + $PSBoundParameters.Add('LanguageId', $supportedLanguageId) + } + + # For mainline attendant, we only support specific voice ids. + $mainlineAttendantVoiceIds = [Microsoft.Rtc.Management.Hosted.OAA.Models.MainlineAttendantSupportedVoiceIds] + if ([string]::IsNullOrWhiteSpace($MainlineAttendantAgentVoiceId) -or + -not [System.Enum]::IsDefined($mainlineAttendantVoiceIds, $MainlineAttendantAgentVoiceId)) { + throw "The provided MainlineAttendantAgentVoiceId '$MainlineAttendantAgentVoiceId' is not supported for Mainline Attendant. Supported values are: $([string]::Join(', ', [System.Enum]::GetNames($mainlineAttendantVoiceIds)))." + } + $mainlineAttendantVoiceId = $mainlineAttendantVoiceIds::$($MainlineAttendantAgentVoiceId) + $null = $PSBoundParameters.Remove('MainlineAttendantAgentVoiceId') + $PSBoundParameters.Add("MainlineAttendantAgentVoiceId", $mainlineAttendantVoiceId) + + # For Mainline Attendant, EnableVoiceResponse should must be true. + if ($EnableVoiceResponse -ne $true) { + Write-Warning "`$EnableVoiceResponse` is not set. Defaulting to 'true' for mainline attendant." + $null = $PSBoundParameters.Remove('EnableVoiceResponse') + $PSBoundParameters.Add('EnableVoiceResponse', $true) } } - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsAutoAttendantMenuOption @PSBoundParameters @httpPipelineArgs + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsAutoAttendant @PSBoundParameters @httpPipelineArgs # Stop execution if internal cmdlet is failing if ($internalOutput -eq $null) { @@ -7431,8 +7528,17 @@ function New-CsAutoAttendantMenuOption { Write-AdminServiceDiagnostic($internalOutput.Diagnostic) - $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.MenuOption]::new() - $output.ParseFrom($internalOutput) + $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.AutoAttendant]::new() + $output.ParseFrom($internalOutput.AutoAttendant) + + $getCsAutoAttendantStatusParameters = @{Identity = $output.Identity} + foreach($p in $PSBoundCommonParameters.GetEnumerator()) + { + $getCsAutoAttendantStatusParameters += @{$p.Key = $p.Value} + } + + $internalStatus = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsAutoAttendantStatus @getCsAutoAttendantStatusParameters @httpPipelineArgs + $output.AmendStatus($internalStatus) $output @@ -7460,27 +7566,40 @@ function New-CsAutoAttendantMenuOption { # limitations under the License. # ---------------------------------------------------------------------------------- -# Objective of this custom file: Base64 encode the content for the audio file +# Objective of this custom file: Format output of cmdlet -function New-CsAutoAttendantPrompt { - [CmdletBinding(PositionalBinding=$true, DefaultParameterSetName='TextToSpeechParamSet')] +function New-CsAutoAttendantCallableEntity { + [CmdletBinding(PositionalBinding=$true)] param( - [Parameter(Mandatory=$true, position=0, ParameterSetName="DualParamSet")] + [Parameter(Mandatory=$true, position=0)] [System.String] - # The ActiveType parameter identifies the active type (modality) of the AA prompt. - ${ActiveType}, + # The Identity parameter represents the ID of the callable entity + ${Identity}, - [Parameter(Mandatory=$true, position=0, ParameterSetName="AudioFileParamSet")] - [Parameter(Mandatory=$false, position=1, ParameterSetName="DualParamSet")] - [Microsoft.Rtc.Management.Hosted.Online.Models.AudioFile] - # The AudioFilePrompt parameter represents the audio to play when the prompt is activated (rendered). - ${AudioFilePrompt}, + [Parameter(Mandatory=$true, position=1)] + [Microsoft.Rtc.Management.Hosted.OAA.Models.CallableEntityType] + # The Type parameter represents the type of the callable entity + ${Type}, - [Parameter(Mandatory=$true, position=0, ParameterSetName="TextToSpeechParamSet")] - [Parameter(Mandatory=$false, position=2, ParameterSetName="DualParamSet")] - [System.String] - # The TextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt that is to be read when the prompt is activated. - ${TextToSpeechPrompt}, + [Parameter(Mandatory=$false, position=2)] + [Switch] + # Enables the email transcription of voicemail, this is only supported with shared voicemail callable entities. + ${EnableTranscription}, + + [Parameter(Mandatory=$false, position=3)] + [Switch] + # Suppresses the "Please leave a message after the tone" system prompt when transferring to shared voicemail. + ${EnableSharedVoicemailSystemPromptSuppression}, + + [Parameter(Mandatory=$false, position=4)] + [System.Int16] + # The Call Priority of the MenuOption, only applies when the CallableEntityType (Type) is ApplicationEndpoint. + ${CallPriority}, + + [Parameter(Mandatory=$false, position=5)] + [Switch] + # The Force parameter indicates if we force the action to be performed. (Deprecated) + ${Force}, [Parameter(DontShow)] [ValidateNotNull()] @@ -7497,32 +7616,28 @@ function New-CsAutoAttendantPrompt { $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + $null = $PSBoundParameters.Remove("Force") + # Default ErrorAction to $ErrorActionPreference if (!$PSBoundParameters.ContainsKey("ErrorAction")) { $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) } - if ($ActiveType -eq "") { - $PSBoundParameters.Remove("ActiveType") | Out-Null - if ($TextToSpeechPrompt -ne "") { - $PSBoundParameters.Add("ActiveType", "TextToSpeech") - } elseif ($AudioFilePrompt -ne $null) { - $PSBoundParameters.Add("ActiveType", "AudioFile") - } else { - $PSBoundParameters.Add("ActiveType", "None") - } + # CallPriority is only applicable for the 'ApplicationEndpoint' and 'ConfigurationEndpoint' type. + # For all other cases, an error message should be displayed when a value is provided. + if ($Type -ne 'ApplicationEndpoint' -and $Type -ne 'ConfigurationEndpoint' -and ([Math]::Abs($CallPriority) -ge 1)) + { + throw "CallPriority is only applicable when the 'Type' is 'ApplicationEndpoint' or 'ConfigurationEndpoint'. Please remove the CallPriority."; } - $ActiveType = "TextToSpeech" - - if ($AudioFilePrompt -ne $null) { - $PSBoundParameters.Add('AudioFilePromptId', $AudioFilePrompt.Id) - $PSBoundParameters.Add('AudioFilePromptFileName', $AudioFilePrompt.FileName) - $PSBoundParameters.Add('AudioFilePromptDownloadUri', $AudioFilePrompt.DownloadUri) - $PSBoundParameters.Remove('AudioFilePrompt') | Out-Null + # Making sure the user provides the correct CallPriority value. The valid values are 1 to 5. + # Zero is also allowed which means the user wants to use the default CallPriority or doesn't want to use the CallPriority feature. + if (($Type -eq 'ApplicationEndpoint' -or $Type -eq 'ConfigurationEndpoint') -and ($CallPriority -lt 0 -or $CallPriority -gt 5)) + { + throw "Invalid CallPriority. The valid values are 1 to 5 (default is 3). Please provide the correct value."; } - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsAutoAttendantPrompt @PSBoundParameters @httpPipelineArgs + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsAutoAttendantCallableEntity @PSBoundParameters @httpPipelineArgs # Stop execution if internal cmdlet is failing if ($internalOutput -eq $null) { @@ -7531,10 +7646,10 @@ function New-CsAutoAttendantPrompt { Write-AdminServiceDiagnostic($internalOutput.Diagnostic) - $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt]::new() + $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.CallableEntity]::new() $output.ParseFrom($internalOutput) - return $output + $output } catch { $customCmdletUtils.SendTelemetry() @@ -7560,429 +7675,2086 @@ function New-CsAutoAttendantPrompt { # limitations under the License. # ---------------------------------------------------------------------------------- -# Objective of this custom file: parsing the return result to the CallQueue object type. +# Objective of this custom file: Put nested ApplicationInstance object as first layer object -function New-CsCallQueue { +function New-CsAutoAttendantCallFlow { [CmdletBinding(PositionalBinding=$true)] param( [Parameter(Mandatory=$true, position=0)] [System.String] - # The Name of the call queue to be created. + # The Name parameter represents a unique friendly name for the call flow. ${Name}, - [Parameter(Mandatory=$false)] - [System.Int16] - # The AgentAlertTime parameter represents the time (in seconds) that a call can remain unanswered before it is automatically routed to the next agent. - ${AgentAlertTime}, + [Parameter(Mandatory=$false, position=1)] + [PSObject[]] + # If present, the prompts specified by the Greetings parameter (either TTS or Audio) are played before the call flow's menu is rendered. + ${Greetings}, - [Parameter(Mandatory=$false)] - [bool] - # The AllowOptOut parameter indicates whether or not agents can opt in or opt out from taking calls from a Call Queue. - ${AllowOptOut}, + [Parameter(Mandatory=$true, position=2)] + [PSObject] + # The Menu parameter identifies the menu to render when the call flow is executed. + ${Menu}, - [Parameter(Mandatory=$false)] - [System.Guid[]] - # The DistributionLists parameter lets you add all the members of the distribution lists to the Call Queue. This is a list of distribution list GUIDs. - ${DistributionLists}, + [Parameter(Mandatory=$false, position=3)] + [Switch] + # The ForceListenMenuEnabled parameter indicates whether the caller will be forced to listen to the menu. + ${ForceListenMenuEnabled}, - [Parameter(Mandatory=$false)] - [bool] - # The UseDefaultMusicOnHold parameter indicates that this Call Queue uses the default music on hold. - ${UseDefaultMusicOnHold}, + [Parameter(Mandatory=$false, position=4)] + [Switch] + # The Force parameter indicates if we force the action to be performed. (Deprecated) + ${Force}, - [Parameter(Mandatory=$false)] - [System.String] - # The WelcomeMusicAudioFileId parameter represents the audio file to play when callers are connected with the Call Queue. - ${WelcomeMusicAudioFileId}, + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) - [Parameter(Mandatory=$false)] - [System.String] - # The WelcomeTextToSpeechPrompt parameter represents the text to speech content to play when callers are connected with the Call Queue. - ${WelcomeTextToSpeechPrompt}, + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } - [Parameter(Mandatory=$false)] - [System.String] - # The MusicOnHoldAudioFileId parameter represents music to play when callers are placed on hold. - ${MusicOnHoldAudioFileId}, + process { + try { - [Parameter(Mandatory=$false)] - [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.OverflowAction] - # The OverflowAction parameter designates the action to take if the overflow threshold is reached. - ${OverflowAction}, + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() - [Parameter(Mandatory=$false)] - [System.String] - # The OverflowActionTarget parameter represents the target of the overflow action. - ${OverflowActionTarget}, + $null = $PSBoundParameters.Remove("Force") - [Parameter(Mandatory=$false)] - [System.Int16] - # The OverflowThreshold parameter defines the number of calls that can be in the queue at any one time before the overflow action is triggered. - ${OverflowThreshold}, + If ($ForceListenMenuEnabled -ne $null){ + $null = $PSBoundParameters.Remove("ForceListenMenuEnabled") + $PSBoundParameters.Add('ForceListenMenuEnabled', $ForceListenMenuEnabled) + } + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } - [Parameter(Mandatory=$false)] - [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.TimeoutAction] - # The TimeoutAction parameter defines the action to take if the timeout threshold is reached. - ${TimeoutAction}, + if ($Greetings -ne $null) { + $null = $PSBoundParameters.Remove('Greetings') + $inputGreetings = @() + foreach ($greeting in $Greetings) { + $inputGreetings += [Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt]::CreateAutoGeneratedFromObject($greeting) + } + $PSBoundParameters.Add('Greeting', $inputGreetings) + } - [Parameter(Mandatory=$false)] - [System.String] - # The TimeoutActionTarget represents the target of the timeout action. - ${TimeoutActionTarget}, + if ($Menu -ne $null) { + $null = $PSBoundParameters.Remove('Menu') + if ($Menu.DialByNameEnabled) { + $PSBoundParameters.Add('MenuDialByNameEnabled', $true) + } + $PSBoundParameters.Add('MenuDirectorySearchMethod', $Menu.DirectorySearchMethod) + $PSBoundParameters.Add('MenuName', $Menu.Name) + $inputMenuOptions = @() + foreach ($menuOption in $Menu.MenuOptions) { + $inputMenuOptions += [Microsoft.Rtc.Management.Hosted.OAA.Models.MenuOption]::CreateAutoGeneratedFromObject($menuOption) + } + $PSBoundParameters.Add('MenuOption', $inputMenuOptions) + $inputMenuPrompts = @() + foreach ($menuPrompt in $Menu.Prompts) { + $inputMenuPrompts += [Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt]::CreateAutoGeneratedFromObject($menuPrompt) + } + $PSBoundParameters.Add('MenuPrompt', $inputMenuPrompts) + } - [Parameter(Mandatory=$false)] - [System.Int16] - # The TimeoutThreshold parameter defines the time (in seconds) that a call can be in the queue before that call times out. - ${TimeoutThreshold}, + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsAutoAttendantCallFlow @PSBoundParameters @httpPipelineArgs - [Parameter(Mandatory=$false)] - [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.RoutingMethod] - # The RoutingMethod defines how agents will be called in a Call Queue. - ${RoutingMethod}, + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } - [Parameter(Mandatory=$false)] - [bool] - # The PresenceBasedRouting parameter indicates whether or not presence based routing will be applied while call being routed to Call Queue agents. - ${PresenceBasedRouting} = $true, + Write-AdminServiceDiagnostic($internalOutput.Diagnostic) - [Parameter(Mandatory=$false)] - [bool] - # The ConferenceMode parameter indicates whether or not Conference mode will be applied on calls for current call queue. - ${ConferenceMode} = $true, + $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.CallFlow]::new() + $output.ParseFrom($internalOutput) - [Parameter(Mandatory=$false)] - [System.Guid[]] - # The Users parameter lets you add agents to the Call Queue. - ${Users}, + $output - [Parameter(Mandatory=$false)] - [System.String] - # The LanguageId parameter indicates the language that is used to play shared voicemail prompts. - ${LanguageId}, + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } - [Parameter(Mandatory=$false)] - [System.String] - # This parameter is reserved for Microsoft internal use only. - ${LineUri}, + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- - [Parameter(Mandatory=$false)] - [System.Guid[]] - # The OboResourceAccountIds parameter lets you add resource account with phone number to the Call Queue. - ${OboResourceAccountIds}, +# Objective of this custom file: Print diagnostic message from service - [Parameter(Mandatory=$false)] - [System.String] - # The OverflowSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on overflow. - ${OverflowSharedVoicemailTextToSpeechPrompt}, +function New-CsAutoAttendantCallHandlingAssociation { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [Microsoft.Rtc.Management.Hosted.OAA.Models.CallHandlingAssociationType] + # The Type parameter represents the type of the call handling association. + ${Type}, - [Parameter(Mandatory=$false)] + [Parameter(Mandatory=$true, position=1)] [System.String] - # The OverflowSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on overflow. - ${OverflowSharedVoicemailAudioFilePrompt}, - - [Parameter(Mandatory=$false)] - [bool] - # The EnableOverflowSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on overflow. - ${EnableOverflowSharedVoicemailTranscription}, - - [Parameter(Mandatory=$false)] - [bool] - # The EnableOverflowSharedVoicemailSystemPromptSuppression parameter is used to disable voicemail system message on overflow. - ${EnableOverflowSharedVoicemailSystemPromptSuppression}, + # The ScheduleId parameter represents the schedule to be associated with the call flow. + ${ScheduleId}, - [Parameter(Mandatory=$false)] + [Parameter(Mandatory=$true, position=2)] [System.String] - # The OverflowDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is disconnected due to overflow. - ${OverflowDisconnectAudioFilePrompt}, + # The CallFlowId parameter represents the call flow to be associated with the schedule. + ${CallFlowId}, - [Parameter(Mandatory=$false)] - [System.String] - # The OverflowDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is disconnected due to overflow. - ${OverflowDisconnectTextToSpeechPrompt}, + [Parameter(Mandatory=$false, position=3)] + [Switch] + # The Disable parameter, if set, establishes that the call handling association is created as disabled. + ${Disable}, - [Parameter(Mandatory=$false)] - [System.String] - # The OverflowRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to person on overflow. - ${OverflowRedirectPersonAudioFilePrompt}, + [Parameter(Mandatory=$false, position=4)] + [Switch] + # The Force parameter indicates if we force the action to be performed. (Deprecated) + ${Force}, - [Parameter(Mandatory=$false)] - [System.String] - # The OverflowRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to person on overflow. - ${OverflowRedirectPersonTextToSpeechPrompt}, + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) - [Parameter(Mandatory=$false)] - [System.String] - # The OverflowRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to VoiceApp on overflow. - ${OverflowRedirectVoiceAppAudioFilePrompt}, + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } - [Parameter(Mandatory=$false)] - [System.String] - # The OverflowRedirectVoiceAppTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to VoiceApp on overflow. - ${OverflowRedirectVoiceAppTextToSpeechPrompt}, + process { + try { - [Parameter(Mandatory=$false)] - [System.String] - # The OverflowRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to PhoneNumber on overflow. - ${OverflowRedirectPhoneNumberAudioFilePrompt}, + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() - [Parameter(Mandatory=$false)] - [System.String] - # The OverflowRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to PhoneNumber on overflow. - ${OverflowRedirectPhoneNumberTextToSpeechPrompt}, + $null = $PSBoundParameters.Remove("Force") - [Parameter(Mandatory=$false)] - [System.String] - # The OverflowRedirectVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to Voicemail on overflow. - ${OverflowRedirectVoicemailAudioFilePrompt}, + if ($Disable -eq $true) { + $null = $PSBoundParameters.Remove('Disable') + } else { + $PSBoundParameters.Add('Enable', $true) + } - [Parameter(Mandatory=$false)] - [System.String] - # The OverflowRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to Voicemail on overflow. - ${OverflowRedirectVoicemailTextToSpeechPrompt}, + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } - [Parameter(Mandatory=$false)] - [System.String] - # The TimeoutSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on timeout. - ${TimeoutSharedVoicemailTextToSpeechPrompt}, + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsAutoAttendantCallHandlingAssociation @PSBoundParameters @httpPipelineArgs - [Parameter(Mandatory=$false)] - [System.String] - # The TimeoutSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on timeout. - ${TimeoutSharedVoicemailAudioFilePrompt}, + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } - [Parameter(Mandatory=$false)] - [bool] - # The EnableTimeoutSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on timeout. - ${EnableTimeoutSharedVoicemailTranscription}, + Write-AdminServiceDiagnostic($internalOutput.Diagnostic) - [Parameter(Mandatory=$false)] - [bool] - # The EnableTimeoutSharedVoicemailSystemPromptSuppression parameter is used to disable voicemail system message on timeout. - ${EnableTimeoutSharedVoicemailSystemPromptSuppression}, + $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.CallHandlingAssociation]::new() + $output.ParseFrom($internalOutput) - [Parameter(Mandatory=$false)] - [System.String] - # The TimeoutDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is disconnected due to Timeout. - ${TimeoutDisconnectAudioFilePrompt}, + $output - [Parameter(Mandatory=$false)] - [System.String] - # The TimeoutDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is disconnected due to Timeout. - ${TimeoutDisconnectTextToSpeechPrompt}, + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } - [Parameter(Mandatory=$false)] - [System.String] - # The TimeoutRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to person on Timeout. - ${TimeoutRedirectPersonAudioFilePrompt}, + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- - [Parameter(Mandatory=$false)] - [System.String] - # The TimeoutRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to person on Timeout. - ${TimeoutRedirectPersonTextToSpeechPrompt}, +# Objective of this custom file: Print diagnostic message from server respond - [Parameter(Mandatory=$false)] - [System.String] - # The TimeoutRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to VoiceApp on Timeout. - ${TimeoutRedirectVoiceAppAudioFilePrompt}, +function New-CsAutoAttendantDialScope { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [Switch] + # Indicates that a dial-scope based on groups (distribution lists, security groups) is to be created. + ${GroupScope}, - [Parameter(Mandatory=$false)] - [System.String] - # The TimeoutRedirectVoiceAppTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to VoiceApp on Timeout. - ${TimeoutRedirectVoiceAppTextToSpeechPrompt}, + [Parameter(Mandatory=$true, position=1)] + [System.String[]] + # Refers to the IDs of the groups that are to be included in the dial-scope. + ${GroupIds}, - [Parameter(Mandatory=$false)] - [System.String] - # The TimeoutRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to PhoneNumber on Timeout. - ${TimeoutRedirectPhoneNumberAudioFilePrompt}, + [Parameter(Mandatory=$false, position=2)] + [Switch] + # The Force parameter indicates if we force the action to be performed. (Deprecated) + ${Force}, - [Parameter(Mandatory=$false)] - [System.String] - # The TimeoutRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to PhoneNumber on Timeout. - ${TimeoutRedirectPhoneNumberTextToSpeechPrompt}, + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) - [Parameter(Mandatory=$false)] - [System.String] - # The TimeoutRedirectVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to Voicemail on Timeout. - ${TimeoutRedirectVoicemailAudioFilePrompt}, + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } - [Parameter(Mandatory=$false)] - [System.String] - # The TimeoutRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to Voicemail on Timeout. - ${TimeoutRedirectVoicemailTextToSpeechPrompt}, + process { + try { - [Parameter(Mandatory=$false)] - [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.NoAgentAction] - # The NoAgentAction parameter defines the action to take if the NoAgents are LoggedIn/OptedIn. - ${NoAgentAction}, + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() - [Parameter(Mandatory=$false)] - [System.String] - # The NoAgentActionTarget represents the target of the NoAgent action. - ${NoAgentActionTarget}, + $null = $PSBoundParameters.Remove("Force") - [Parameter(Mandatory=$false)] - [System.String] - # The NoAgentSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail when NoAgents are Opted/LoggedIn to take calls. - ${NoAgentSharedVoicemailTextToSpeechPrompt}, + if ($GroupScope -eq $true) { + $null = $PSBoundParameters.Remove('GroupScope') + } - [Parameter(Mandatory=$false)] - [System.String] - # The NoAgentSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail when NoAgents are Opted/LoggedIn to take calls. - ${NoAgentSharedVoicemailAudioFilePrompt}, + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } - [Parameter(Mandatory=$false)] - [bool] - # The EnableNoAgentSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller when NoAgents are LoggedIn/OptedIn to take calls. - ${EnableNoAgentSharedVoicemailTranscription}, + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsAutoAttendantDialScope @PSBoundParameters @httpPipelineArgs - [Parameter(Mandatory=$false)] - [bool] - # The EnableNoAgentSharedVoicemailSystemPromptSuppression parameter is used to disable voicemail system message when NoAgents are LoggedIn/OptedIn to take calls. - ${EnableNoAgentSharedVoicemailSystemPromptSuppression}, + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } - [Parameter(Mandatory=$false)] - [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.NoAgentApplyTo] - # The NoAgentApplyTo parameter determines whether the NoAgent action applies to All Calls or only New calls. - ${NoAgentApplyTo}, + Write-AdminServiceDiagnostic($internalOutput.Diagnostic) - [Parameter(Mandatory=$false)] - [System.String] - # The NoAgentDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is disconnected due to NoAgent. - ${NoAgentDisconnectAudioFilePrompt}, + $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.DialScope]::new() + $output.ParseFrom($internalOutput) - [Parameter(Mandatory=$false)] - [System.String] - # The NoAgentDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is disconnected due to NoAgent. - ${NoAgentDisconnectTextToSpeechPrompt}, + $output - [Parameter(Mandatory=$false)] - [System.String] - # The NoAgentRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to person on NoAgent. - ${NoAgentRedirectPersonAudioFilePrompt}, + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } - [Parameter(Mandatory=$false)] - [System.String] - # The NoAgentRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to person on NoAgent. - ${NoAgentRedirectPersonTextToSpeechPrompt}, + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- - [Parameter(Mandatory=$false)] - [System.String] - # The NoAgentRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to VoiceApp on NoAgent. - ${NoAgentRedirectVoiceAppAudioFilePrompt}, +# Objective of this custom file: Format input of the cmdlet - [Parameter(Mandatory=$false)] +function New-CsAutoAttendantMenu { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] [System.String] - # The NoAgentRedirectVoiceAppTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to VoiceApp on NoAgent. - ${NoAgentRedirectVoiceAppTextToSpeechPrompt}, + # The Name parameter represents a friendly name for the menu. + ${Name}, - [Parameter(Mandatory=$false)] - [System.String] - # The NoAgentRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to PhoneNumber on NoAgent. - ${NoAgentRedirectPhoneNumberAudioFilePrompt}, + [Parameter(Mandatory=$false, position=1)] + [PSObject[]] + # The Prompts parameter reflects the prompts to play when the menu is activated. + ${Prompts}, - [Parameter(Mandatory=$false)] + [Parameter(Mandatory=$false, position=2)] + [PSObject[]] + # The MenuOptions parameter is a list of menu options for this menu. + ${MenuOptions}, + + [Parameter(Mandatory=$false, position=3)] + [Switch] + # The EnableDialByName parameter lets users do a directory search by recipient name and get transferred to the party. + ${EnableDialByName}, + + [Parameter(Mandatory=$false, position=4)] + [Microsoft.Rtc.Management.Hosted.OAA.Models.DirectorySearchMethod] + # The DirectorySearchMethod parameter lets you define the type of Directory Search Method for the Auto Attendant menu. + ${DirectorySearchMethod}, + + [Parameter(Mandatory=$false, position=5)] + [Switch] + # The Force parameter indicates if we force the action to be performed. (Deprecated) + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $null = $PSBoundParameters.Remove("Force") + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + if ($Prompts -ne $null) { + $null = $PSBoundParameters.Remove('Prompts') + $inputPrompts = @() + foreach ($prompt in $Prompts) { + $inputPrompts += [Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt]::CreateAutoGeneratedFromObject($prompt) + } + $PSBoundParameters.Add('Prompt', $inputPrompts) + } + + if ($MenuOptions -ne $null) { + $null = $PSBoundParameters.Remove('MenuOptions') + $inputMenuOptions = @() + foreach ($menuOption in $MenuOptions) { + $inputMenuOptions += [Microsoft.Rtc.Management.Hosted.OAA.Models.MenuOption]::CreateAutoGeneratedFromObject($menuOption) + } + $PSBoundParameters.Add('MenuOption', $inputMenuOptions) + } + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsAutoAttendantMenu @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($internalOutput.Diagnostic) + + $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.Menu]::new() + $output.ParseFrom($internalOutput) + + $output + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Format input of the cmdlet + +function New-CsAutoAttendantMenuOption { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [Microsoft.Rtc.Management.Hosted.OAA.Models.ActionType] + # The Action parameter represents the action to be taken when the menu option is activated. + ${Action}, + + [Parameter(Mandatory=$true, position=1)] + [Microsoft.Rtc.Management.Hosted.OAA.Models.DtmfTone] + # The DtmfResponse parameter indicates the key on the telephone keypad to be pressed to activate the menu option. + ${DtmfResponse}, + + [Parameter(Mandatory=$false, position=2)] + [System.String[]] + # The VoiceResponses parameter represents the voice responses to select a menu option when Voice Responses are enabled for the auto attendant. + ${VoiceResponses}, + + [Parameter(Mandatory=$false, position=3)] + [Microsoft.Rtc.Management.Hosted.OAA.Models.CallableEntity] + # The CallTarget parameter represents the target for call transfer after the menu option is selected. + ${CallTarget}, + + [Parameter(Mandatory=$false, position=4)] + [PSObject] + # The Prompt parameter represents the announcement prompt. + ${Prompt}, + + [Parameter(Mandatory=$false, position=5)] + [Switch] + # The Force parameter indicates if we force the action to be performed. (Deprecated) + ${Force}, + + [Parameter(Mandatory=$false, position=6)] [System.String] - # The NoAgentRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to PhoneNumber on NoAgent. - ${NoAgentRedirectPhoneNumberTextToSpeechPrompt}, + # Description of the menu option. + ${Description}, - [Parameter(Mandatory=$false)] + [Parameter(Mandatory=$false, position=7)] [System.String] - # The NoAgentRedirectVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to Voicemail on NoAgent. - ${NoAgentRedirectVoicemailAudioFilePrompt}, + # The mainline attendant target only when the action is MainlineAttendantFlow. + ${MainlineAttendantTarget}, - [Parameter(Mandatory=$false)] + [Parameter(Mandatory=$false, position=8)] + [Microsoft.Rtc.Management.Hosted.OAA.Models.AgentTargetType] + # The mainline attendant target only when the action is MainlineAttendantFlow. + ${AgentTargetType}, + + [Parameter(Mandatory=$false, position=9)] [System.String] - # The NoAgentRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to Voicemail on NoAgent. - ${NoAgentRedirectVoicemailTextToSpeechPrompt}, + # The mainline attendant target only when the action is MainlineAttendantFlow. + ${AgentTarget}, - [Parameter(Mandatory=$false)] + [Parameter(Mandatory=$false, position=10)] [System.String] - # Id of the channel to connect a call queue to. - ${ChannelId}, + # The mainline attendant target only when the action is MainlineAttendantFlow. + ${AgentTargetTagTemplateId}, - [Parameter(Mandatory=$false)] - [System.Guid] - # Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). - ${ChannelUserObjectId}, + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) - [Parameter(Mandatory=$false)] - [bool] - # The ShouldOverwriteCallableChannelProperty indicates user intention to whether overwirte the current callableChannel property value on chat service or not. - ${ShouldOverwriteCallableChannelProperty}, + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } - [Parameter(Mandatory=$false)] - [System.Guid[]] - # The list of authorized users. - ${AuthorizedUsers}, + process { + try { - [Parameter(Mandatory=$false)] - [System.Guid[]] - # The list of hidden authorized users. - ${HideAuthorizedUsers}, + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() - [Parameter(Mandatory=$false)] - [System.Int16] - # The Call Priority for the overflow action, only applies when the OverflowAction is an `Forward`. - ${OverflowActionCallPriority}, + $null = $PSBoundParameters.Remove("Force") - [Parameter(Mandatory=$false)] - [System.Int16] - # The Call Priority for the timeout action, only applies when the TimeoutAction is an `Forward`. - ${TimeoutActionCallPriority}, + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + if ($CallTarget -ne $null) { + $null = $PSBoundParameters.Remove('CallTarget') + $PSBoundParameters.Add('CallTargetId', $CallTarget.Id) + $PSBoundParameters.Add('CallTargetType', $CallTarget.Type) + if ($CallTarget.EnableTranscription) { + $PSBoundParameters.Add('CallTargetEnableTranscription', $True) + } + if ($CallTarget.EnableSharedVoicemailSystemPromptSuppression) { + $PSBoundParameters.Add('CallTargetEnableSharedVoicemailSystemPromptSuppression', $True) + } + if ($CallTarget.Type -eq 'ApplicationEndpoint' -or $CallTarget.Type -eq 'ConfigurationEndpoint') { + $PSBoundParameters.Add('CallTargetCallPriority', $CallTarget.CallPriority) + } + } + + if ($Prompt -ne $null) { + $typeNames = $Prompt.PSObject.TypeNames + if ($typeNames -NotContains "Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt" -and $typeNames -NotContains "Deserialized.Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt") { + throw "PSObject must be type of Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt or Deserialized.Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt" + } + + $null = $PSBoundParameters.Remove('Prompt') + $PSBoundParameters.Add('PromptActiveType', $Prompt.ActiveType) + $PSBoundParameters.Add('PromptTextToSpeechPrompt', $Prompt.TextToSpeechPrompt) + if ($Prompt.AudioFilePrompt -ne $null -and $Prompt.AudioFilePrompt.Id -ne $null) { + $PSBoundParameters.Add('AudioFilePromptId', $Prompt.AudioFilePrompt.Id) + $PSBoundParameters.Add('AudioFilePromptFileName', $Prompt.AudioFilePrompt.FileName) + $PSBoundParameters.Add('AudioFilePromptDownloadUri', $Prompt.AudioFilePrompt.DownloadUri) + } + } + + if ($Action -eq [Microsoft.Rtc.Management.Hosted.OAA.Models.ActionType]::MainlineAttendantFlow -and [string]::IsNullOrWhiteSpace($MainlineAttendantTarget)) + { + throw "The value of `MainlineAttendantTarget` cannot be null when the `Action` is '$Action'" + } + + if ($Action -eq [Microsoft.Rtc.Management.Hosted.OAA.Models.ActionType]::AgentsAndQueues -and [string]::IsNullOrWhiteSpace($AgentTargetType)) + { + throw "The value of `AgentTargetType` cannot be null when the `Action` is '$Action'" + } + + if ($Action -eq [Microsoft.Rtc.Management.Hosted.OAA.Models.ActionType]::AgentsAndQueues -and [string]::IsNullOrWhiteSpace($AgentTarget)) + { + throw "The value of `AgentTarget` cannot be null when the `Action` is '$Action'" + } + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsAutoAttendantMenuOption @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($internalOutput.Diagnostic) + + $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.MenuOption]::new() + $output.ParseFrom($internalOutput) + + $output + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Base64 encode the content for the audio file + +function New-CsAutoAttendantPrompt { + [CmdletBinding(PositionalBinding=$true, DefaultParameterSetName='TextToSpeechParamSet')] + param( + [Parameter(Mandatory=$true, position=0, ParameterSetName="DualParamSet")] + [System.String] + # The ActiveType parameter identifies the active type (modality) of the AA prompt. + ${ActiveType}, + + [Parameter(Mandatory=$true, position=0, ParameterSetName="AudioFileParamSet")] + [Parameter(Mandatory=$false, position=1, ParameterSetName="DualParamSet")] + [Microsoft.Rtc.Management.Hosted.Online.Models.AudioFile] + # The AudioFilePrompt parameter represents the audio to play when the prompt is activated (rendered). + ${AudioFilePrompt}, + + [Parameter(Mandatory=$true, position=0, ParameterSetName="TextToSpeechParamSet")] + [Parameter(Mandatory=$false, position=2, ParameterSetName="DualParamSet")] + [System.String] + # The TextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt that is to be read when the prompt is activated. + ${TextToSpeechPrompt}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + if ($ActiveType -eq "") { + $PSBoundParameters.Remove("ActiveType") | Out-Null + if ($TextToSpeechPrompt -ne "") { + $PSBoundParameters.Add("ActiveType", "TextToSpeech") + } elseif ($AudioFilePrompt -ne $null) { + $PSBoundParameters.Add("ActiveType", "AudioFile") + } else { + $PSBoundParameters.Add("ActiveType", "None") + } + } + + $ActiveType = "TextToSpeech" + + if ($AudioFilePrompt -ne $null) { + $PSBoundParameters.Add('AudioFilePromptId', $AudioFilePrompt.Id) + $PSBoundParameters.Add('AudioFilePromptFileName', $AudioFilePrompt.FileName) + $PSBoundParameters.Add('AudioFilePromptDownloadUri', $AudioFilePrompt.DownloadUri) + $PSBoundParameters.Remove('AudioFilePrompt') | Out-Null + } + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsAutoAttendantPrompt @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($internalOutput.Diagnostic) + + $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt]::new() + $output.ParseFrom($internalOutput) + + return $output + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: parsing the return result to the CallQueue object type. + +function New-CsCallQueue { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The Name of the call queue to be created. + ${Name}, + + [Parameter(Mandatory=$false)] + [System.Int16] + # The AgentAlertTime parameter represents the time (in seconds) that a call can remain unanswered before it is automatically routed to the next agent. + ${AgentAlertTime}, + + [Parameter(Mandatory=$false)] + [bool] + # The AllowOptOut parameter indicates whether or not agents can opt in or opt out from taking calls from a Call Queue. + ${AllowOptOut}, + + [Parameter(Mandatory=$false)] + [System.Guid[]] + # The DistributionLists parameter lets you add all the members of the distribution lists to the Call Queue. This is a list of distribution list GUIDs. + ${DistributionLists}, + + [Parameter(Mandatory=$false)] + [bool] + # The UseDefaultMusicOnHold parameter indicates that this Call Queue uses the default music on hold. + ${UseDefaultMusicOnHold}, + + [Parameter(Mandatory=$false)] + [System.String] + # The WelcomeMusicAudioFileId parameter represents the audio file to play when callers are connected with the Call Queue. + ${WelcomeMusicAudioFileId}, + + [Parameter(Mandatory=$false)] + [System.String] + # The WelcomeTextToSpeechPrompt parameter represents the text to speech content to play when callers are connected with the Call Queue. + ${WelcomeTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The MusicOnHoldAudioFileId parameter represents music to play when callers are placed on hold. + ${MusicOnHoldAudioFileId}, + + [Parameter(Mandatory=$false)] + [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.OverflowAction] + # The OverflowAction parameter designates the action to take if the overflow threshold is reached. + ${OverflowAction}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowActionTarget parameter represents the target of the overflow action. + ${OverflowActionTarget}, + + [Parameter(Mandatory=$false)] + [System.Int16] + # The OverflowThreshold parameter defines the number of calls that can be in the queue at any one time before the overflow action is triggered. + ${OverflowThreshold}, + + [Parameter(Mandatory=$false)] + [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.TimeoutAction] + # The TimeoutAction parameter defines the action to take if the timeout threshold is reached. + ${TimeoutAction}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutActionTarget represents the target of the timeout action. + ${TimeoutActionTarget}, + + [Parameter(Mandatory=$false)] + [System.Int16] + # The TimeoutThreshold parameter defines the time (in seconds) that a call can be in the queue before that call times out. + ${TimeoutThreshold}, + + [Parameter(Mandatory=$false)] + [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.RoutingMethod] + # The RoutingMethod defines how agents will be called in a Call Queue. + ${RoutingMethod}, + + [Parameter(Mandatory=$false)] + [bool] + # The PresenceBasedRouting parameter indicates whether or not presence based routing will be applied while call being routed to Call Queue agents. + ${PresenceBasedRouting} = $true, + + [Parameter(Mandatory=$false)] + [bool] + # The ConferenceMode parameter indicates whether or not Conference mode will be applied on calls for current call queue. + ${ConferenceMode} = $true, + + [Parameter(Mandatory=$false)] + [System.Guid[]] + # The Users parameter lets you add agents to the Call Queue. + ${Users}, + + [Parameter(Mandatory=$false)] + [System.String] + # The LanguageId parameter indicates the language that is used to play shared voicemail prompts. + ${LanguageId}, + + [Parameter(Mandatory=$false)] + [System.String] + # This parameter is reserved for Microsoft internal use only. + ${LineUri}, + + [Parameter(Mandatory=$false)] + [System.Guid[]] + # The OboResourceAccountIds parameter lets you add resource account with phone number to the Call Queue. + ${OboResourceAccountIds}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on overflow. + ${OverflowSharedVoicemailTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on overflow. + ${OverflowSharedVoicemailAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [bool] + # The EnableOverflowSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on overflow. + ${EnableOverflowSharedVoicemailTranscription}, + + [Parameter(Mandatory=$false)] + [bool] + # The EnableOverflowSharedVoicemailSystemPromptSuppression parameter is used to disable voicemail system message on overflow. + ${EnableOverflowSharedVoicemailSystemPromptSuppression}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is disconnected due to overflow. + ${OverflowDisconnectAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is disconnected due to overflow. + ${OverflowDisconnectTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to person on overflow. + ${OverflowRedirectPersonAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to person on overflow. + ${OverflowRedirectPersonTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to VoiceApp on overflow. + ${OverflowRedirectVoiceAppAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowRedirectVoiceAppTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to VoiceApp on overflow. + ${OverflowRedirectVoiceAppTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to PhoneNumber on overflow. + ${OverflowRedirectPhoneNumberAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to PhoneNumber on overflow. + ${OverflowRedirectPhoneNumberTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowRedirectVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to Voicemail on overflow. + ${OverflowRedirectVoicemailAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to Voicemail on overflow. + ${OverflowRedirectVoicemailTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on timeout. + ${TimeoutSharedVoicemailTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on timeout. + ${TimeoutSharedVoicemailAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [bool] + # The EnableTimeoutSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on timeout. + ${EnableTimeoutSharedVoicemailTranscription}, + + [Parameter(Mandatory=$false)] + [bool] + # The EnableTimeoutSharedVoicemailSystemPromptSuppression parameter is used to disable voicemail system message on timeout. + ${EnableTimeoutSharedVoicemailSystemPromptSuppression}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is disconnected due to Timeout. + ${TimeoutDisconnectAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is disconnected due to Timeout. + ${TimeoutDisconnectTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to person on Timeout. + ${TimeoutRedirectPersonAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to person on Timeout. + ${TimeoutRedirectPersonTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to VoiceApp on Timeout. + ${TimeoutRedirectVoiceAppAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutRedirectVoiceAppTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to VoiceApp on Timeout. + ${TimeoutRedirectVoiceAppTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to PhoneNumber on Timeout. + ${TimeoutRedirectPhoneNumberAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to PhoneNumber on Timeout. + ${TimeoutRedirectPhoneNumberTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutRedirectVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to Voicemail on Timeout. + ${TimeoutRedirectVoicemailAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to Voicemail on Timeout. + ${TimeoutRedirectVoicemailTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.NoAgentAction] + # The NoAgentAction parameter defines the action to take if the NoAgents are LoggedIn/OptedIn. + ${NoAgentAction}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentActionTarget represents the target of the NoAgent action. + ${NoAgentActionTarget}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail when NoAgents are Opted/LoggedIn to take calls. + ${NoAgentSharedVoicemailTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail when NoAgents are Opted/LoggedIn to take calls. + ${NoAgentSharedVoicemailAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [bool] + # The EnableNoAgentSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller when NoAgents are LoggedIn/OptedIn to take calls. + ${EnableNoAgentSharedVoicemailTranscription}, + + [Parameter(Mandatory=$false)] + [bool] + # The EnableNoAgentSharedVoicemailSystemPromptSuppression parameter is used to disable voicemail system message when NoAgents are LoggedIn/OptedIn to take calls. + ${EnableNoAgentSharedVoicemailSystemPromptSuppression}, + + [Parameter(Mandatory=$false)] + [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.NoAgentApplyTo] + # The NoAgentApplyTo parameter determines whether the NoAgent action applies to All Calls or only New calls. + ${NoAgentApplyTo}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is disconnected due to NoAgent. + ${NoAgentDisconnectAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is disconnected due to NoAgent. + ${NoAgentDisconnectTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to person on NoAgent. + ${NoAgentRedirectPersonAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to person on NoAgent. + ${NoAgentRedirectPersonTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to VoiceApp on NoAgent. + ${NoAgentRedirectVoiceAppAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentRedirectVoiceAppTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to VoiceApp on NoAgent. + ${NoAgentRedirectVoiceAppTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to PhoneNumber on NoAgent. + ${NoAgentRedirectPhoneNumberAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to PhoneNumber on NoAgent. + ${NoAgentRedirectPhoneNumberTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentRedirectVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to Voicemail on NoAgent. + ${NoAgentRedirectVoicemailAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to Voicemail on NoAgent. + ${NoAgentRedirectVoicemailTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # Id of the channel to connect a call queue to. + ${ChannelId}, + + [Parameter(Mandatory=$false)] + [System.Guid] + # Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). + ${ChannelUserObjectId}, + + [Parameter(Mandatory=$false)] + [bool] + # The ShouldOverwriteCallableChannelProperty indicates user intention to whether overwirte the current callableChannel property value on chat service or not. + ${ShouldOverwriteCallableChannelProperty}, + + [Parameter(Mandatory=$false)] + [System.Guid[]] + # The list of authorized users. + ${AuthorizedUsers}, + + [Parameter(Mandatory=$false)] + [System.Guid[]] + # The list of hidden authorized users. + ${HideAuthorizedUsers}, + + [Parameter(Mandatory=$false)] + [System.Int16] + # The Call Priority for the overflow action, only applies when the OverflowAction is an `Forward`. + ${OverflowActionCallPriority}, + + [Parameter(Mandatory=$false)] + [System.Int16] + # The Call Priority for the timeout action, only applies when the TimeoutAction is an `Forward`. + ${TimeoutActionCallPriority}, + + [Parameter(Mandatory=$false)] + [System.Int16] + # The Call Priority for the no agent opted in action, only applies when the NoAgentAction is an `Forward`. + ${NoAgentActionCallPriority}, + + [parameter(Mandatory=$false)] + [System.Nullable[System.Boolean]] + # The IsCallbackEnabled parameter for enabling and disabling the Courtesy Callback feature. + ${IsCallbackEnabled}, + + [parameter(Mandatory=$false)] + [System.String] + # The DTMF tone to press to start requesting callback, as part of the Courtesy Callback feature. + ${CallbackRequestDtmf}, + + [parameter(Mandatory=$false)] + [System.Nullable[System.Int32]] + # The wait time before offering callback in seconds, as part of the Courtesy Callback feature. + ${WaitTimeBeforeOfferingCallbackInSecond}, + + [parameter(Mandatory=$false)] + [System.Nullable[System.Int32]] + # The number of calls in queue before offering callback, as part of the Courtesy Callback feature. + ${NumberOfCallsInQueueBeforeOfferingCallback}, + + [parameter(Mandatory=$false)] + [System.Nullable[System.Int32]] + # The call to agent ratio threshold before offering callback, as part of the Courtesy Callback feature. + ${CallToAgentRatioThresholdBeforeOfferingCallback}, + + [parameter(Mandatory=$false)] + [System.String] + # The identifier of the offer callback audio file to be played when offering callback to caller, as part of the Courtesy Callback feature. + ${CallbackOfferAudioFilePromptResourceId}, + + [parameter(Mandatory=$false)] + [System.String] + # The text-to-speech string to be converted to a speech and played when offering callback to caller, as part of the Courtesy Callback feature. + ${CallbackOfferTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The CallbackEmailNotificationTarget parameter for callback feature. + ${CallbackEmailNotificationTarget}, + + [Parameter(Mandatory=$false)] + [System.Nullable[System.Int32]] + # Service level threshold in seconds for the call queue. Used for monitor calls in the call queue is handled within this threshold or not. + ${ServiceLevelThresholdResponseTimeInSecond}, + + [Parameter(Mandatory=$false)] + [System.String] + # Shifts Team identity to use as Call queues answer target. + ${ShiftsTeamId}, + + [Parameter(Mandatory=$false)] + [System.String] + # Shifts Scheduling Group identity to use as Call queues answer target. + ${ShiftsSchedulingGroupId}, + + [Parameter(Mandatory=$false)] + [System.String] + # Text annnouncement thats played before CR bot joins the call. + ${TextAnnouncementForCR}, + + [Parameter(Mandatory=$false)] + [System.String] + # Custom Audio announcement that is played before CR bot joins the call. + ${CustomAudioFileAnnouncementForCR}, + + [Parameter(Mandatory=$false)] + [System.String] + # Text announcement that is played if CR bot is unable to join the call. + ${TextAnnouncementForCRFailure}, + + [Parameter(Mandatory=$false)] + [System.String] + # Custom audio file announcement for compliance recording if CR bot is unable to join the call. + ${CustomAudioFileAnnouncementForCRFailure}, + + [Parameter(Mandatory=$false)] + [System.String[]] + # Ids for Compliance Recording template for Callqueue. + ${ComplianceRecordingForCallQueueTemplateId}, + + [Parameter(Mandatory=$false)] + [System.String] + # Id for Shared Call Queue History template. + ${SharedCallQueueHistoryTemplateId}, + + [Parameter(Mandatory=$false)] + [Switch] + # Allow the cmdlet to run anyway + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + if ($PSBoundParameters.ContainsKey('Force')) { + $PSBoundParameters.Remove('Force') | Out-Null + } + + if ($PSBoundParameters.ContainsKey('LineUri')) { + # Stick with the current TRPS cmdlet policy of silently ignoring the LineUri. Later, we need to remove this param from + # TRPS and ConfigAPI based cmdlets. Public facing document must be updated as well. + $PSBoundParameters.Remove('LineUri') | Out-Null + } + + #Setting PresenceAwareRouting to $false when LongestIdle is enabled as RoutingMethod + #Since having both conditions enabled is not supported in backend service. + if($RoutingMethod -eq 'LongestIdle') { + $PresenceBasedRouting = $false + $PSBoundParameters.Add('PresenceAwareRouting', $PresenceBasedRouting) + $PSBoundParameters.Remove('PresenceBasedRouting') | Out-Null + } + elseif ( $PSBoundParameters.ContainsKey('PresenceBasedRouting')) { + $PSBoundParameters.Add('PresenceAwareRouting', $PresenceBasedRouting) + $PSBoundParameters.Remove('PresenceBasedRouting') | Out-Null + } + + if ($ChannelId -ne '') { + $PSBoundParameters.Add('ThreadId', $ChannelId) + $PSBoundParameters.Remove('ChannelId') | Out-Null + } + + # Making sure the user provides the correct CallPriority values for CQ exceptions (overflow, timeout, NoAgent etc.) handling. + # The valid values are 1 to 5. Zero is also allowed which means the user wants to use the default value (3). + # (elseif) The CallPriority does not apply when the Action is not `Forward`. + if ($OverflowAction -eq 'Forward' -and ($OverflowActionCallPriority -lt 0 -or $OverflowActionCallPriority -gt 5)) { + throw "Invalid `OverflowActionCallPriority` value. The valid values are 1 to 5 (default is 3). Please provide the correct value." + } + elseif ($OverflowAction -ne 'Forward' -and ([Math]::Abs($OverflowActionCallPriority) -ge 1)) { + throw "OverflowActionCallPriority is only applicable when the 'OverflowAction' is 'Forward'. Please remove the OverflowActionCallPriority." + } + + if ($TimeoutAction -eq 'Forward' -and ($TimeoutActionCallPriority -lt 0 -or $TimeoutActionCallPriority -gt 5)) { + throw "Invalid `TimeoutActionCallPriority` value. The valid values are 1 to 5 (default is 3). Please provide the correct value." + } + elseif ($TimeoutAction -ne 'Forward' -and ([Math]::Abs($TimeoutActionCallPriority) -ge 1)) { + throw "TimeoutActionCallPriority is only applicable when the 'TimeoutAction' is 'Forward'. Please remove the TimeoutActionCallPriority." + } + + if ($NoagentAction -eq 'Forward' -and ($NoAgentActionCallPriority -lt 0 -or $NoAgentActionCallPriority -gt 5)) { + throw "Invalid `NoAgentActionCallPriority` value. The valid values are 1 to 5 (default is 3). Please provide the correct value." + } + elseif ($NoAgentAction -ne 'Forward' -and ([Math]::Abs($NoAgentActionCallPriority) -ge 1)) { + throw "NoAgentActionCallPriority is only applicable when the 'NoAgentAction' is 'Forward'. Please remove the NoAgentActionCallPriority." + } + + if ($PSBoundParameters.ContainsKey('IsCallbackEnabled') -and $IsCallbackEnabled -eq $null) { + $null = $PSBoundParameters.Remove('IsCallbackEnabled') + } + + if ($PSBoundParameters.ContainsKey('CallbackRequestDtmf') -and [string]::IsNullOrWhiteSpace($CallbackRequestDtmf)) { + $null = $PSBoundParameters.Remove('CallbackRequestDtmf') + } + + if ($PSBoundParameters.ContainsKey('WaitTimeBeforeOfferingCallbackInSecond') -and $WaitTimeBeforeOfferingCallbackInSecond -eq $null) { + $null = $PSBoundParameters.Remove('WaitTimeBeforeOfferingCallbackInSecond') + } + + if ($PSBoundParameters.ContainsKey('NumberOfCallsInQueueBeforeOfferingCallback') -and $NumberOfCallsInQueueBeforeOfferingCallback -eq $null) { + $null = $PSBoundParameters.Remove('NumberOfCallsInQueueBeforeOfferingCallback') + } + + if ($PSBoundParameters.ContainsKey('CallToAgentRatioThresholdBeforeOfferingCallback') -and $CallToAgentRatioThresholdBeforeOfferingCallback -eq $null) { + $null = $PSBoundParameters.Remove('CallToAgentRatioThresholdBeforeOfferingCallback') + } + + if ($PSBoundParameters.ContainsKey('CallbackOfferAudioFilePromptResourceId') -and [string]::IsNullOrWhiteSpace($CallbackOfferAudioFilePromptResourceId)) { + $null = $PSBoundParameters.Remove('CallbackOfferAudioFilePromptResourceId') + } + + if ($PSBoundParameters.ContainsKey('CallbackOfferTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($CallbackOfferTextToSpeechPrompt)) { + $null = $PSBoundParameters.Remove('CallbackOfferTextToSpeechPrompt') + } + + if ($PSBoundParameters.ContainsKey('CallbackEmailNotificationTarget') -and [string]::IsNullOrWhiteSpace($CallbackEmailNotificationTarget)) { + $null = $PSBoundParameters.Remove('CallbackEmailNotificationTarget') + } + + if ($PSBoundParameters.ContainsKey('ServiceLevelThresholdResponseTimeInSecond') -and $ServiceLevelThresholdResponseTimeInSecond -eq $null) { + $null = $PSBoundParameters.Remove('ServiceLevelThresholdResponseTimeInSecond') + } + + if ($PSBoundParameters.ContainsKey('ShiftsTeamId') -and [string]::IsNullOrWhiteSpace($ShiftsTeamId)) { + $null = $PSBoundParameters.Remove('ShiftsTeamId') + } + + if ($PSBoundParameters.ContainsKey('ShiftsSchedulingGroupId') -and [string]::IsNullOrWhiteSpace($ShiftsSchedulingGroupId)) { + $null = $PSBoundParameters.Remove('ShiftsSchedulingGroupId') + } + + if ($PSBoundParameters.ContainsKey('TextAnnouncementForCR') -and [string]::IsNullOrWhiteSpace($TextAnnouncementForCR)) { + $null = $PSBoundParameters.Remove('TextAnnouncementForCR') + } + + if ($PSBoundParameters.ContainsKey('CustomAudioFileAnnouncementForCR') -and [string]::IsNullOrWhiteSpace($CustomAudioFileAnnouncementForCR)) { + $null = $PSBoundParameters.Remove('CustomAudioFileAnnouncementForCR') + } + + if ($PSBoundParameters.ContainsKey('TextAnnouncementForCRFailure') -and [string]::IsNullOrWhiteSpace($TextAnnouncementForCRFailure)) { + $null = $PSBoundParameters.Remove('TextAnnouncementForCRFailure') + } + + if ($PSBoundParameters.ContainsKey('CustomAudioFileAnnouncementForCRFailure') -and [string]::IsNullOrWhiteSpace($CustomAudioFileAnnouncementForCRFailure)) { + $null = $PSBoundParameters.Remove('CustomAudioFileAnnouncementForCRFailure') + } + + if ($PSBoundParameters.ContainsKey('ComplianceRecordingForCallQueueTemplateId') -and $ComplianceRecordingForCallQueueTemplateId -eq $null) { + $null = $PSBoundParameters.Remove('ComplianceRecordingForCallQueueTemplateId') + } + + if ($PSBoundParameters.ContainsKey('SharedCallQueueHistoryTemplateId') -and $SharedCallQueueHistoryTemplateId -eq $null) { + $null = $PSBoundParameters.Remove('SharedCallQueueHistoryTemplateId') + } + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsCallQueue @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($result.Diagnostic) + + $output = [Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue]::new() + $output.ParseFrom($result.CallQueue) + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: transforming the results to the custom objects + +function New-CsComplianceRecordingForCallQueueTemplate { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The Name parameter is a friendly name that is assigned to the CR4CQ template. + ${Name}, + + [Parameter(Mandatory=$true, position=1)] + [System.String] + # The Description parameter provides a description for the CR4CQ template. + ${Description}, + + [Parameter(Mandatory=$true, position=2)] + [System.String] + # The BotApplicationInstanceObjectId parameter represents the ID of the CR bot + ${BotApplicationInstanceObjectId}, + + [Parameter(Mandatory=$false, position=3)] + [Switch] + # The RequiredDuringCall parameter indicates if compliance recording bot is required during the call. + ${RequiredDuringCall}, + + [Parameter(Mandatory=$false, position=4)] + [Switch] + # The RequiredBeforeCall parameter indicates if compliance recording bot is required before the call. + ${RequiredBeforeCall}, + + [Parameter(Mandatory=$false, position=5)] + [System.Int32] + # The ConcurrentInvitationCount parameter specifies the number of concurrent invitations to the CR bot. + ${ConcurrentInvitationCount}, + + [Parameter(Mandatory=$false, position=6)] + [System.String] + # The PairedApplication parameter specifies the paired application for the call queue. + ${PairedApplicationInstanceObjectId}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # The HttpPipelinePrepend parameter allows for custom HTTP pipeline steps to be prepended. + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + if ($RequiredDuringCall -eq $true){ + $null = $PSBoundParameters.Remove("RequiredDuringCall") + $PSBoundParameters.Add('RequiredDuringCall', $true) + } + + if ($RequiredBeforeCall -eq $true){ + $null = $PSBoundParameters.Remove("RequiredBeforeCall") + $PSBoundParameters.Add('RequiredBeforeCall', $true) + } + + if ($PairedApplication -ne $null){ + $null = $PSBoundParameters.Remove("PairedApplicationInstanceObjectId") + $PSBoundParameters.Add('PairedApplicationInstanceObjectId', $PairedApplication) + } + + if ($ConcurrentInvitationCount -eq 0){ + $null = $PSBoundParameters.Remove("ConcurrentInvitationCount") + $PSBoundParameters.Add('ConcurrentInvitationCount', 1) + } elseif ($ConcurrentInvitationCount -ne $null){ + # Validate the value of ConcurrentInvitationCount + if ($ConcurrentInvitationCount -lt 1 -or $ConcurrentInvitationCount -gt 2) { + Write-Error "The value of ConcurrentInvitationCount must be 1 or 2." + throw + } + $null = $PSBoundParameters.Remove("ConcurrentInvitationCount") + $PSBoundParameters.Add('ConcurrentInvitationCount', $ConcurrentInvitationCount) + } + + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsComplianceRecordingForCallQueueTemplate @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + $output = [Microsoft.Rtc.Management.Hosted.Online.Models.ComplianceRecordingForCallQueue]::new() + $output.ParseFromCreateResponse($internalOutput) + } + catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Base64 encode the content for the audio file + +function New-CsMainlineAttendantAppointmentBookingFlow { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # Name of the mainline attendant appointment booking flow. + ${Name}, + + [Parameter(Mandatory=$true, position=1)] + [System.String] + # The Description of the flow. + ${Description}, + + [Parameter(Mandatory=$true, position=2)] + [Microsoft.Rtc.Management.Hosted.Online.Models.CallerAuthenticationMethod] + # One of the predefined method to authenticate a caller: “Sms”, “Email”, “VerificationLink”,“Voiceprint”,“UserDetails” + ${CallerAuthenticationMethod}, + + [Parameter(Mandatory=$true, position=3)] + [Microsoft.Rtc.Management.Hosted.Online.Models.ApiAuthenticationType] + # The authentication type of API and the possible values are: “Basic”, “ApiKey”, “BearerTokenStatic”, “BearerTokenDynamic” + ${ApiAuthenticationType}, + + [Parameter(Mandatory=$true, position=4)] + [System.String] + # The file path of API template JSON. + ${ApiDefinitions}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + try { + # Check if ApiDefinitions is a JSON file path + if (![string]::IsNullOrWhiteSpace($ApiDefinitions) -and $ApiDefinitions -match '\.json$') + { + # Read the JSON file into a PowerShell object + $ApiDefinitionsJsonObject = Get-Content -Path $ApiDefinitions | ConvertFrom-Json + + # Convert the PowerShell object back into a JSON string + $ApiDefinitionsJsonString = $ApiDefinitionsJsonObject | ConvertTo-Json -Depth 10 + + # The user input of `ApiDefinitions` parameter is the template file path, + # but we need to provide the content of the template to the downstream backend service. + $PSBoundParameters.Remove('ApiDefinitions') | Out-Null + $PSBoundParameters.Add("ApiDefinitions", $ApiDefinitionsJsonString) + } + else + { + throw "ApiDefinitions parameter must be a valid JSON file path." + } + } catch { + throw "Failed to read API Definitions file: $_" + } + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsMainlineAttendantAppointmentBookingFlow @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($internalOutput.Diagnostic) + + $output = [Microsoft.Rtc.Management.Hosted.Online.Models.MainlineAttendantAppointmentBookingFlow]::new() + $output.ParseFromCreateResponse($internalOutput) + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +function New-CsMainlineAttendantQuestionAnswerFlow { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # Name of the mainline attendant question and answer flow. + ${Name}, + + [Parameter(Mandatory=$true, position=1)] + [System.String] + # The Description of the flow. + ${Description}, + + [Parameter(Mandatory=$false, position=2)] + [Microsoft.Rtc.Management.Hosted.Online.Models.ApiAuthenticationType] + # The authentication type of API and the possible values are: “Basic”, “ApiKey”, “BearerTokenStatic”, “BearerTokenDynamic” + ${ApiAuthenticationType}, + + [Parameter(Mandatory=$true, position=3)] + [System.String] + # The file path of KnowledgeBase JSON. + ${KnowledgeBase}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + try + { + # Check if KnowledgeBase is a JSON file path + if (![string]::IsNullOrWhiteSpace($KnowledgeBase) -and $KnowledgeBase -match '\.json$') + { + # Read the JSON file into a PowerShell object + $KnowledgeBaseJsonObject = Get-Content -Path $KnowledgeBase | ConvertFrom-Json + + # Convert the PowerShell object back into a JSON string + $KnowledgeBaseJsonString = $KnowledgeBaseJsonObject | ConvertTo-Json -Depth 10 + + # Create an instance of MainlineAttendantQuestionAnswerFlow to get the local file content + $mainlineAttendantQuestionAnswerFlow = [Microsoft.Rtc.Management.Hosted.Online.Models.MainlineAttendantQuestionAnswerFlow]::new() + $KnowledgeBaseContentLocalFileContent = $mainlineAttendantQuestionAnswerFlow.ReadKnowledgeBaseContent($KnowledgeBaseJsonString, "local_file") + + # The user input of `KnowledgeBase` parameter is the knowledge-base file path, + # but we need to provide the content of the knowledge-base to the downstream backend service. + $PSBoundParameters.Remove('KnowledgeBase') | Out-Null + $PSBoundParameters.Add("KnowledgeBase", $KnowledgeBaseContentLocalFileContent) + } + else + { + throw "KnowledgeBase parameter must be a valid JSON file path." + } + } catch { + throw "Failed to read KnowledgeBase file: $_" + } + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsMainlineAttendantQuestionAnswerFlow @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($internalOutput.Diagnostic) + + $output = [Microsoft.Rtc.Management.Hosted.Online.Models.MainlineAttendantQuestionAnswerFlow]::new() + $output.ParseFromCreateResponse($internalOutput) + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Format output of the cmdlet + +function New-CsOnlineApplicationInstanceAssociation { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String[]] + # The Identities parameter is the identities of application instances to be associated with the provided configuration ID. + ${Identities}, + + [Parameter(Mandatory=$true, position=1)] + [System.String] + # The ConfigurationId parameter is the identity of the configuration that would be associatied with the provided application instances. + ${ConfigurationId}, + + [Parameter(Mandatory=$true, position=2)] + [System.String] + # The ConfigurationType parameter denotes the type of the configuration that would be associated with the provided application instances. + ${ConfigurationType}, + + [Parameter(Mandatory=$false, position=3)] + [System.Int16] + # The Call Priority of the MenuOption, only applies when the CallableEntityType (Type) is ApplicationEndpoint or ConfigurationEndpoint. + ${CallPriority}, + + [Parameter(Mandatory=$false, position=4)] + [Switch] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + # We want to flight our cmdlet if Force param is passed, but AutoRest doesn't support Force param. + # Force param doesn't seem to do anything, so remove it if it's passed. + if ($PSBoundParameters.ContainsKey('Force')) { + $PSBoundParameters.Remove('Force') | Out-Null + } + + # Making sure the user provides the correct CallPriority value. The valid values are 1 to 5. + # Zero is also allowed which means the user wants to use the default CallPriority or doesn't want to use the CallPriority feature. + if ($CallPriority -lt 0 -or $CallPriority -gt 5) + { + throw "Invalid CallPriority. The valid values are 1 to 5. Please provide the correct value."; + } + + $internalOutputs = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsOnlineApplicationInstanceAssociation @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutputs -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($internalOutputs.Diagnostic) + + $output = [Microsoft.Rtc.Management.Hosted.Online.Models.AssociationOperationOutput]::new() + $output.ParseFrom($internalOutputs) + + $output + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: transforming the return result to the custom object + +function New-CsOnlineDateTimeRange { + [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The Start parameter represents the start bound of the date-time range. + ${Start}, + + [Parameter(Mandatory=$false, position=1)] + [System.String] + # The End parameter represents the end bound of the date-time range. + ${End}, + + [Parameter(Mandatory=$false, position=2)] + [Switch] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + if ($PSBoundParameters.ContainsKey("Force")) { + $PSBoundParameters.Remove("Force") | Out-Null + } + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsOnlineDateTimeRange @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($result.Diagnostic) + $output = [Microsoft.Rtc.Management.Hosted.Online.Models.DateTimeRange]::new() + $output.ParseFrom($result) + + $output + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: assign parameters' values and customize output + +function New-CsOnlineSchedule { + [CmdletBinding(DefaultParameterSetName="UnresolvedParamSet", SupportsShouldProcess, ConfirmImpact='Medium')] + param( + [Parameter(Mandatory=$true)] + [System.String] + # The name of the schedule which is created. + ${Name}, + + [Parameter(Mandatory=$true, ParameterSetName = "FixedScheduleParamSet")] + [switch] + # The FixedSchedule parameter indicates that a fixed schedule is to be created. + ${FixedSchedule}, + + [Parameter(Mandatory=$false, ParameterSetName = "FixedScheduleParamSet")] + # List of date-time ranges for a fixed schedule. + ${DateTimeRanges}, + + [Parameter(Mandatory=$true, ParameterSetName = "WeeklyRecurrentScheduleParamSet")] + [switch] + # The WeeklyRecurrentSchedule parameter indicates that a weekly recurrent schedule is to be created. + ${WeeklyRecurrentSchedule}, + + [Parameter(Mandatory=$false, ParameterSetName = "WeeklyRecurrentScheduleParamSet")] + # List of time ranges for Monday. + ${MondayHours}, + + [Parameter(Mandatory=$false, ParameterSetName = "WeeklyRecurrentScheduleParamSet")] + # List of time ranges for Tuesday. + ${TuesdayHours}, + + [Parameter(Mandatory=$false, ParameterSetName = "WeeklyRecurrentScheduleParamSet")] + # List of time ranges for Wednesday. + ${WednesdayHours}, + + [Parameter(Mandatory=$false, ParameterSetName = "WeeklyRecurrentScheduleParamSet")] + # List of time ranges for Thursday. + ${ThursdayHours}, + + [Parameter(Mandatory=$false, ParameterSetName = "WeeklyRecurrentScheduleParamSet")] + # List of time ranges for Friday. + ${FridayHours}, + + [Parameter(Mandatory=$false, ParameterSetName = "WeeklyRecurrentScheduleParamSet")] + # List of time ranges for Saturday. + ${SaturdayHours}, + + [Parameter(Mandatory=$false, ParameterSetName = "WeeklyRecurrentScheduleParamSet")] + # List of time ranges for Sunday. + ${SundayHours}, + + [Parameter(Mandatory=$false, ParameterSetName = "WeeklyRecurrentScheduleParamSet")] + [switch] + # The flag for Complement enabled or not + ${Complement}, + + [Parameter(Mandatory=$false)] + [Switch] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + if ($PSBoundParameters.ContainsKey("Force")) { + $PSBoundParameters.Remove("Force") | Out-Null + } + + $dateTimeRangeStandardFormat = 'yyyy-MM-ddTHH:mm:ss'; + + # Get common parameters + $params = @{} + foreach($p in $PSBoundParameters.GetEnumerator()) + { + $params += @{$p.Key = $p.Value} + } + $null = $params.Remove("FixedSchedule") + $null = $params.Remove("DateTimeRanges") + $null = $params.Remove("WeeklyRecurrentSchedule") + $null = $params.Remove("MondayHours") + $null = $params.Remove("TuesdayHours") + $null = $params.Remove("WednesdayHours") + $null = $params.Remove("ThursdayHours") + $null = $params.Remove("FridayHours") + $null = $params.Remove("SaturdayHours") + $null = $params.Remove("SundayHours") + $null = $params.Remove("Complement") + + + if ($PsCmdlet.ParameterSetName -eq "UnresolvedParamSet") { + throw "A schedule type must be specified. Please use -WeeklyRecurrentSchedule or -FixedSchedule parameters to create the appropriate type of schedule." + } + + if ($PsCmdlet.ParameterSetName -eq "FixedScheduleParamSet") { + $fixedScheduleDateTimeRanges = @() + foreach ($dateTimeRange in $DateTimeRanges) { + $fixedScheduleDateTimeRanges += @{ + Start = $dateTimeRange.Start.ToString($dateTimeRangeStandardFormat, [System.Globalization.CultureInfo]::InvariantCulture) + End = $dateTimeRange.End.ToString($dateTimeRangeStandardFormat, [System.Globalization.CultureInfo]::InvariantCulture) + } + } + $params['FixedScheduleDateTimeRange'] = $fixedScheduleDateTimeRanges + } + + if ($PsCmdlet.ParameterSetName -eq "WeeklyRecurrentScheduleParamSet") { + if ($MondayHours -ne $null -and $MondayHours.Length -gt 0) { + $params['WeeklyRecurrentScheduleMondayHour'] = @() + foreach ($mondayHour in $MondayHours){ + $params['WeeklyRecurrentScheduleMondayHour'] += @{ + Start = $mondayHour.Start + End = $mondayHour.End + } + } + } + if ($TuesdayHours -ne $null -and $TuesdayHours.Length -gt 0) { + $params['WeeklyRecurrentScheduleTuesdayHour'] = @() + foreach ($tuesdayHour in $TuesdayHours){ + $params['WeeklyRecurrentScheduleTuesdayHour'] += @{ + Start = $tuesdayHour.Start + End = $tuesdayHour.End + } + } + } + if ($WednesdayHours -ne $null -and $WednesdayHours.Length -gt 0) { + $params['WeeklyRecurrentScheduleWednesdayHour'] = @() + foreach ($wednesdayHour in $WednesdayHours){ + $params['WeeklyRecurrentScheduleWednesdayHour'] += @{ + Start = $wednesdayHour.Start + End = $wednesdayHour.End + } + } + } + if ($ThursdayHours -ne $null -and $ThursdayHours.Length -gt 0) { + $params['WeeklyRecurrentScheduleThursdayHour'] = @() + foreach ($thursdayHour in $ThursdayHours){ + $params['WeeklyRecurrentScheduleThursdayHour'] += @{ + Start = $thursdayHour.Start + End = $thursdayHour.End + } + } + } + if ($FridayHours -ne $null -and $FridayHours.Length -gt 0) { + $params['WeeklyRecurrentScheduleFridayHour'] = @() + foreach ($fridayHour in $FridayHours){ + $params['WeeklyRecurrentScheduleFridayHour'] += @{ + Start = $fridayHour.Start + End = $fridayHour.End + } + } + } + if ($SaturdayHours -ne $null -and $SaturdayHours.Length -gt 0) { + $params['WeeklyRecurrentScheduleSaturdayHour'] = @() + foreach ($saturdayHour in $SaturdayHours){ + $params['WeeklyRecurrentScheduleSaturdayHour'] += @{ + Start = $saturdayHour.Start + End = $saturdayHour.End + } + } + } + if ($SundayHours -ne $null -and $SundayHours.Length -gt 0) { + $params['WeeklyRecurrentScheduleSundayHour'] = @() + foreach ($sundayHour in $SundayHours){ + $params['WeeklyRecurrentScheduleSundayHour'] += @{ + Start = $sundayHour.Start + End = $sundayHour.End + } + } + } + if ($Complement) { $params['WeeklyRecurrentScheduleIsComplemented'] = $true } + } - [Parameter(Mandatory=$false)] - [System.Int16] - # The Call Priority for the no agent opted in action, only applies when the NoAgentAction is an `Forward`. - ${NoAgentActionCallPriority}, + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsOnlineSchedule @params @httpPipelineArgs - [parameter(Mandatory=$false)] - [System.Nullable[System.Boolean]] - # The IsCallbackEnabled parameter for enabling and disabling the Courtesy Callback feature. - ${IsCallbackEnabled}, + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null + } - [parameter(Mandatory=$false)] - [System.String] - # The DTMF tone to press to start requesting callback, as part of the Courtesy Callback feature. - ${CallbackRequestDtmf}, + Write-AdminServiceDiagnostic($result.Diagnostic) - [parameter(Mandatory=$false)] - [System.Nullable[System.Int32]] - # The wait time before offering callback in seconds, as part of the Courtesy Callback feature. - ${WaitTimeBeforeOfferingCallbackInSecond}, + $schedule = [Microsoft.Rtc.Management.Hosted.Online.Models.Schedule]::new() + $schedule.ParseFrom($result) - [parameter(Mandatory=$false)] - [System.Nullable[System.Int32]] - # The number of calls in queue before offering callback, as part of the Courtesy Callback feature. - ${NumberOfCallsInQueueBeforeOfferingCallback}, + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } - [parameter(Mandatory=$false)] - [System.Nullable[System.Int32]] - # The call to agent ratio threshold before offering callback, as part of the Courtesy Callback feature. - ${CallToAgentRatioThresholdBeforeOfferingCallback}, + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- - [parameter(Mandatory=$false)] - [System.String] - # The identifier of the offer callback audio file to be played when offering callback to caller, as part of the Courtesy Callback feature. - ${CallbackOfferAudioFilePromptResourceId}, +# Objective of this custom file: transforming the return result to the custom object - [parameter(Mandatory=$false)] +function New-CsOnlineTimeRange { + [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] + param( + [Parameter(Mandatory=$true, position=0)] [System.String] - # The text-to-speech string to be converted to a speech and played when offering callback to caller, as part of the Courtesy Callback feature. - ${CallbackOfferTextToSpeechPrompt}, + # The Start parameter represents the start bound of the time range. + ${Start}, - [Parameter(Mandatory=$false)] + [Parameter(Mandatory=$true, position=1)] [System.String] - # The CallbackEmailNotificationTarget parameter for callback feature. - ${CallbackEmailNotificationTarget}, - - [Parameter(Mandatory=$false)] - [System.Nullable[System.Int32]] - # Service level threshold in seconds for the call queue. Used for monitor calls in the call queue is handled within this threshold or not. - ${ServiceLevelThresholdResponseTimeInSecond}, + # The End parameter represents the end bound of the time range. + ${End}, - [Parameter(Mandatory=$false)] + [Parameter(Mandatory=$false, position=2)] [Switch] - # Allow the cmdlet to run anyway ${Force}, [Parameter(DontShow)] @@ -8005,111 +9777,107 @@ function New-CsCallQueue { $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) } - if ($PSBoundParameters.ContainsKey('Force')) { - $PSBoundParameters.Remove('Force') | Out-Null + if ($PSBoundParameters.ContainsKey("Force")) { + $PSBoundParameters.Remove("Force") | Out-Null } - if ($PSBoundParameters.ContainsKey('LineUri')) { - # Stick with the current TRPS cmdlet policy of silently ignoring the LineUri. Later, we need to remove this param from - # TRPS and ConfigAPI based cmdlets. Public facing document must be updated as well. - $PSBoundParameters.Remove('LineUri') | Out-Null - } + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsOnlineTimeRange @PSBoundParameters @httpPipelineArgs - #Setting PresenceAwareRouting to $false when LongestIdle is enabled as RoutingMethod - #Since having both conditions enabled is not supported in backend service. - if($RoutingMethod -eq 'LongestIdle') { - $PresenceBasedRouting = $false - $PSBoundParameters.Add('PresenceAwareRouting', $PresenceBasedRouting) - $PSBoundParameters.Remove('PresenceBasedRouting') | Out-Null - } - elseif ( $PSBoundParameters.ContainsKey('PresenceBasedRouting')) { - $PSBoundParameters.Add('PresenceAwareRouting', $PresenceBasedRouting) - $PSBoundParameters.Remove('PresenceBasedRouting') | Out-Null + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null } - if ($ChannelId -ne '') { - $PSBoundParameters.Add('ThreadId', $ChannelId) - $PSBoundParameters.Remove('ChannelId') | Out-Null - } + Write-AdminServiceDiagnostic($result.Diagnostic) + $output = [Microsoft.Rtc.Management.Hosted.Online.Models.TimeRange]::new() + $output.ParseFrom($result) - # Making sure the user provides the correct CallPriority values for CQ exceptions (overflow, timeout, NoAgent etc.) handling. - # The valid values are 1 to 5. Zero is also allowed which means the user wants to use the default value (3). - # (elseif) The CallPriority does not apply when the Action is not `Forward`. - if ($OverflowAction -eq 'Forward' -and ($OverflowActionCallPriority -lt 0 -or $OverflowActionCallPriority -gt 5)) { - throw "Invalid `OverflowActionCallPriority` value. The valid values are 1 to 5 (default is 3). Please provide the correct value." - } - elseif ($OverflowAction -ne 'Forward' -and ([Math]::Abs($OverflowActionCallPriority) -ge 1)) { - throw "OverflowActionCallPriority is only applicable when the 'OverflowAction' is 'Forward'. Please remove the OverflowActionCallPriority." - } + $output - if ($TimeoutAction -eq 'Forward' -and ($TimeoutActionCallPriority -lt 0 -or $TimeoutActionCallPriority -gt 5)) { - throw "Invalid `TimeoutActionCallPriority` value. The valid values are 1 to 5 (default is 3). Please provide the correct value." - } - elseif ($TimeoutAction -ne 'Forward' -and ([Math]::Abs($TimeoutActionCallPriority) -ge 1)) { - throw "TimeoutActionCallPriority is only applicable when the 'TimeoutAction' is 'Forward'. Please remove the TimeoutActionCallPriority." - } + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } - if ($NoagentAction -eq 'Forward' -and ($NoAgentActionCallPriority -lt 0 -or $NoAgentActionCallPriority -gt 5)) { - throw "Invalid `NoAgentActionCallPriority` value. The valid values are 1 to 5 (default is 3). Please provide the correct value." - } - elseif ($NoAgentAction -ne 'Forward' -and ([Math]::Abs($NoAgentActionCallPriority) -ge 1)) { - throw "NoAgentActionCallPriority is only applicable when the 'NoAgentAction' is 'Forward'. Please remove the NoAgentActionCallPriority." - } + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- - if ($PSBoundParameters.ContainsKey('IsCallbackEnabled') -and $IsCallbackEnabled -eq $null) { - $null = $PSBoundParameters.Remove('IsCallbackEnabled') - } +# Objective of this custom file: transforming the results to the custom objects - if ($PSBoundParameters.ContainsKey('CallbackRequestDtmf') -and [string]::IsNullOrWhiteSpace($CallbackRequestDtmf)) { - $null = $PSBoundParameters.Remove('CallbackRequestDtmf') - } +function New-CsSharedCallQueueHistoryTemplate { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The Name parameter is a friendly name that is assigned to the shared call queue history template. + ${Name}, - if ($PSBoundParameters.ContainsKey('WaitTimeBeforeOfferingCallbackInSecond') -and $WaitTimeBeforeOfferingCallbackInSecond -eq $null) { - $null = $PSBoundParameters.Remove('WaitTimeBeforeOfferingCallbackInSecond') - } + [Parameter(Mandatory=$true, position=1)] + [System.String] + # The Description parameter provides a description for the shared call queue history template. + ${Description}, - if ($PSBoundParameters.ContainsKey('NumberOfCallsInQueueBeforeOfferingCallback') -and $NumberOfCallsInQueueBeforeOfferingCallback -eq $null) { - $null = $PSBoundParameters.Remove('NumberOfCallsInQueueBeforeOfferingCallback') - } + [Parameter(Mandatory=$false, position=2)] + [Microsoft.Rtc.Management.Hosted.Online.Models.IncomingMissedCalls] + # The IncomingMissedCalls parameter determines whether the Shared Call Queue history is to be delivered to supervisors, agents and supervisors or none. + ${IncomingMissedCalls}, - if ($PSBoundParameters.ContainsKey('CallToAgentRatioThresholdBeforeOfferingCallback') -and $CallToAgentRatioThresholdBeforeOfferingCallback -eq $null) { - $null = $PSBoundParameters.Remove('CallToAgentRatioThresholdBeforeOfferingCallback') - } + [Parameter(Mandatory=$false, position=3)] + [Microsoft.Rtc.Management.Hosted.Online.Models.AnsweredAndOutboundCalls] + # The AnsweredAndOutboundCalls parameter determines whether the Shared Call Queue history is to be delivered to supervisors, agents and supervisors or none. + ${AnsweredAndOutboundCalls}, - if ($PSBoundParameters.ContainsKey('CallbackOfferAudioFilePromptResourceId') -and [string]::IsNullOrWhiteSpace($CallbackOfferAudioFilePromptResourceId)) { - $null = $PSBoundParameters.Remove('CallbackOfferAudioFilePromptResourceId') - } + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # The HttpPipelinePrepend parameter allows for custom HTTP pipeline steps to be prepended. + ${HttpPipelinePrepend} + ) - if ($PSBoundParameters.ContainsKey('CallbackOfferTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($CallbackOfferTextToSpeechPrompt)) { - $null = $PSBoundParameters.Remove('CallbackOfferTextToSpeechPrompt') - } + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } - if ($PSBoundParameters.ContainsKey('CallbackEmailNotificationTarget') -and [string]::IsNullOrWhiteSpace($CallbackEmailNotificationTarget)) { - $null = $PSBoundParameters.Remove('CallbackEmailNotificationTarget') - } + process { + try { + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() - if ($PSBoundParameters.ContainsKey('ServiceLevelThresholdResponseTimeInSecond') -and $ServiceLevelThresholdResponseTimeInSecond -eq $null) { - $null = $PSBoundParameters.Remove('ServiceLevelThresholdResponseTimeInSecond') + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) } - $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsCallQueue @PSBoundParameters @httpPipelineArgs + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsSharedCallQueueHistoryTemplate @PSBoundParameters @httpPipelineArgs # Stop execution if internal cmdlet is failing - if ($result -eq $null) { + if ($internalOutput -eq $null) { return $null } - Write-AdminServiceDiagnostic($result.Diagnostic) - - $output = [Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue]::new() - $output.ParseFrom($result.CallQueue) - - } catch { + $output = [Microsoft.Rtc.Management.Hosted.Online.Models.SharedCallQueueHistory]::new() + $output.ParseFromCreateResponse($internalOutput) + } + catch { $customCmdletUtils.SendTelemetry() throw } } - end { $customCmdletUtils.SendTelemetry() } @@ -8128,39 +9896,20 @@ function New-CsCallQueue { # limitations under the License. # ---------------------------------------------------------------------------------- -# Objective of this custom file: Format output of the cmdlet - -function New-CsOnlineApplicationInstanceAssociation { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$true, position=0)] - [System.String[]] - # The Identities parameter is the identities of application instances to be associated with the provided configuration ID. - ${Identities}, - - [Parameter(Mandatory=$true, position=1)] - [System.String] - # The ConfigurationId parameter is the identity of the configuration that would be associatied with the provided application instances. - ${ConfigurationId}, - - [Parameter(Mandatory=$true, position=2)] - [System.String] - # The ConfigurationType parameter denotes the type of the configuration that would be associated with the provided application instances. - ${ConfigurationType}, - - [Parameter(Mandatory=$false, position=3)] - [System.Int16] - # The Call Priority of the MenuOption, only applies when the CallableEntityType (Type) is ApplicationEndpoint or ConfigurationEndpoint. - ${CallPriority}, - - [Parameter(Mandatory=$false, position=4)] - [Switch] - ${Force}, +# Objective of this custom file: transforming the results to the custom objects - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend} +function New-CsTag { + [CmdletBinding(PositionalBinding = $true)] + param( + [Parameter(Mandatory = $true, Position = 0)] + [System.String] + # The Name parameter is a name assigned to a given tag. + ${TagName}, + + [Parameter(Mandatory = $false, Position = 1)] + [Microsoft.Rtc.Management.Hosted.OAA.Models.CallableEntity] + # The CallTarget parameter represents the target for call transfer after the menu option is selected. + ${TagDetails} ) begin { @@ -8169,47 +9918,50 @@ function New-CsOnlineApplicationInstanceAssociation { process { try { - $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + $null = $PSBoundParameters.Remove("Force") + # Default ErrorAction to $ErrorActionPreference - if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + if (-not $PSBoundParameters.ContainsKey("ErrorAction")) { $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) } + } catch { + $customCmdletUtils.SendTelemetry() + throw + } - # We want to flight our cmdlet if Force param is passed, but AutoRest doesn't support Force param. - # Force param doesn't seem to do anything, so remove it if it's passed. - if ($PSBoundParameters.ContainsKey('Force')) { - $PSBoundParameters.Remove('Force') | Out-Null + if ($TagDetails -ne $null) { + $null = $PSBoundParameters.Remove('TagDetails') + $PSBoundParameters.Add('TagDetailId', $TagDetails.Id) + $PSBoundParameters.Add('TagDetailType', $TagDetails.Type) + if ($TagDetails.EnableTranscription) { + $PSBoundParameters.Add('TagDetailEnableTranscription', $true) } - - # Making sure the user provides the correct CallPriority value. The valid values are 1 to 5. - # Zero is also allowed which means the user wants to use the default CallPriority or doesn't want to use the CallPriority feature. - if ($CallPriority -lt 0 -or $CallPriority -gt 5) - { - throw "Invalid CallPriority. The valid values are 1 to 5. Please provide the correct value."; + if ($TagDetails.EnableSharedVoicemailSystemPromptSuppression) { + $PSBoundParameters.Add('TagDetailEnableSharedVoicemailSystemPromptSuppression', $true) } + if ($TagDetails.Type -eq 'ApplicationEndpoint' -or $TagDetails.Type -eq 'ConfigurationEndpoint') { + $PSBoundParameters.Add('TagDetailCallPriority', $TagDetails.CallPriority) + } + } - $internalOutputs = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsOnlineApplicationInstanceAssociation @PSBoundParameters @httpPipelineArgs - + try { + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsTag @PSBoundParameters @httpPipelineArgs # Stop execution if internal cmdlet is failing - if ($internalOutputs -eq $null) { + if ($internalOutput -eq $null) { return $null } - Write-AdminServiceDiagnostic($internalOutputs.Diagnostic) - - $output = [Microsoft.Rtc.Management.Hosted.Online.Models.AssociationOperationOutput]::new() - $output.ParseFrom($internalOutputs) - - $output + Write-AdminServiceDiagnostic $internalOutput.Diagnostic + $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.IvrTag]::new() + $output.MapFromCreateResponse($internalOutput) } catch { $customCmdletUtils.SendTelemetry() throw } } - end { $customCmdletUtils.SendTelemetry() } @@ -8228,28 +9980,30 @@ function New-CsOnlineApplicationInstanceAssociation { # limitations under the License. # ---------------------------------------------------------------------------------- -# Objective of this custom file: transforming the return result to the custom object +# Objective of this custom file: transforming the results to the custom objects -function New-CsOnlineDateTimeRange { - [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] +function New-CsTagsTemplate { + [CmdletBinding(PositionalBinding=$true)] param( [Parameter(Mandatory=$true, position=0)] [System.String] - # The Start parameter represents the start bound of the date-time range. - ${Start}, + # The Name parameter is a friendly name that is assigned to the IVR tags template. + ${Name}, - [Parameter(Mandatory=$false, position=1)] + [Parameter(Mandatory=$true, position=1)] [System.String] - # The End parameter represents the end bound of the date-time range. - ${End}, + # The Description parameter provides a description for the IVR tags template. + ${Description}, - [Parameter(Mandatory=$false, position=2)] - [Switch] - ${Force}, + [Parameter(Mandatory=$true, position=2)] + [PSObject[]] + # The Tags parameter specifies the tags for the IVR tags template. + ${Tags}, [Parameter(DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # The HttpPipelinePrepend parameter allows for custom HTTP pipeline steps to be prepended. ${HttpPipelinePrepend} ) @@ -8259,7 +10013,6 @@ function New-CsOnlineDateTimeRange { process { try { - $httpPipelineArgs = $customCmdletUtils.ProcessArgs() # Default ErrorAction to $ErrorActionPreference @@ -8267,29 +10020,30 @@ function New-CsOnlineDateTimeRange { $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) } - if ($PSBoundParameters.ContainsKey("Force")) { - $PSBoundParameters.Remove("Force") | Out-Null + if ($Tags -ne $null) { + $inputTags = @() + foreach ($tag in $Tags) { + $inputTags += [Microsoft.Rtc.Management.Hosted.OAA.Models.IvrTag]::CreateAutoGeneratedFromObject($tag) + } + $null = $PSBoundParameters.Remove('Tags') + $PSBoundParameters.Add('Tags', $inputTags) } - $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsOnlineDateTimeRange @PSBoundParameters @httpPipelineArgs + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsTagsTemplate @PSBoundParameters @httpPipelineArgs # Stop execution if internal cmdlet is failing - if ($result -eq $null) { + if ($internalOutput -eq $null) { return $null } - Write-AdminServiceDiagnostic($result.Diagnostic) - $output = [Microsoft.Rtc.Management.Hosted.Online.Models.DateTimeRange]::new() - $output.ParseFrom($result) - - $output - - } catch { + $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.IvrTagsTemplate]::new() + $output.MapFromCreateResponseModel($internalOutput) + } + catch { $customCmdletUtils.SendTelemetry() throw } } - end { $customCmdletUtils.SendTelemetry() } @@ -8308,65 +10062,19 @@ function New-CsOnlineDateTimeRange { # limitations under the License. # ---------------------------------------------------------------------------------- -# Objective of this custom file: assign parameters' values and customize output +# Objective of this custom file: Display the diagnostic if any -function New-CsOnlineSchedule { - [CmdletBinding(DefaultParameterSetName="UnresolvedParamSet", SupportsShouldProcess, ConfirmImpact='Medium')] +function Remove-CsAutoAttendant { + [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(Mandatory=$true)] + [Parameter(Mandatory=$true, position=0)] [System.String] - # The name of the schedule which is created. - ${Name}, - - [Parameter(Mandatory=$true, ParameterSetName = "FixedScheduleParamSet")] - [switch] - # The FixedSchedule parameter indicates that a fixed schedule is to be created. - ${FixedSchedule}, - - [Parameter(Mandatory=$false, ParameterSetName = "FixedScheduleParamSet")] - # List of date-time ranges for a fixed schedule. - ${DateTimeRanges}, - - [Parameter(Mandatory=$true, ParameterSetName = "WeeklyRecurrentScheduleParamSet")] - [switch] - # The WeeklyRecurrentSchedule parameter indicates that a weekly recurrent schedule is to be created. - ${WeeklyRecurrentSchedule}, - - [Parameter(Mandatory=$false, ParameterSetName = "WeeklyRecurrentScheduleParamSet")] - # List of time ranges for Monday. - ${MondayHours}, - - [Parameter(Mandatory=$false, ParameterSetName = "WeeklyRecurrentScheduleParamSet")] - # List of time ranges for Tuesday. - ${TuesdayHours}, - - [Parameter(Mandatory=$false, ParameterSetName = "WeeklyRecurrentScheduleParamSet")] - # List of time ranges for Wednesday. - ${WednesdayHours}, - - [Parameter(Mandatory=$false, ParameterSetName = "WeeklyRecurrentScheduleParamSet")] - # List of time ranges for Thursday. - ${ThursdayHours}, - - [Parameter(Mandatory=$false, ParameterSetName = "WeeklyRecurrentScheduleParamSet")] - # List of time ranges for Friday. - ${FridayHours}, - - [Parameter(Mandatory=$false, ParameterSetName = "WeeklyRecurrentScheduleParamSet")] - # List of time ranges for Saturday. - ${SaturdayHours}, - - [Parameter(Mandatory=$false, ParameterSetName = "WeeklyRecurrentScheduleParamSet")] - # List of time ranges for Sunday. - ${SundayHours}, - - [Parameter(Mandatory=$false, ParameterSetName = "WeeklyRecurrentScheduleParamSet")] - [switch] - # The flag for Complement enabled or not - ${Complement}, + # The identity for the AA to be removed. + ${Identity}, - [Parameter(Mandatory=$false)] + [Parameter(Mandatory=$false, position=1)] [Switch] + # The Force parameter indicates if we force the action to be performed. (Deprecated) ${Force}, [Parameter(DontShow)] @@ -8384,129 +10092,95 @@ function New-CsOnlineSchedule { $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + $null = $PSBoundParameters.Remove("Force") + # Default ErrorAction to $ErrorActionPreference if (!$PSBoundParameters.ContainsKey("ErrorAction")) { $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) } - if ($PSBoundParameters.ContainsKey("Force")) { - $PSBoundParameters.Remove("Force") | Out-Null - } - - $dateTimeRangeStandardFormat = 'yyyy-MM-ddTHH:mm:ss'; + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Remove-CsAutoAttendant @PSBoundParameters @httpPipelineArgs - # Get common parameters - $params = @{} - foreach($p in $PSBoundParameters.GetEnumerator()) - { - $params += @{$p.Key = $p.Value} + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null } - $null = $params.Remove("FixedSchedule") - $null = $params.Remove("DateTimeRanges") - $null = $params.Remove("WeeklyRecurrentSchedule") - $null = $params.Remove("MondayHours") - $null = $params.Remove("TuesdayHours") - $null = $params.Remove("WednesdayHours") - $null = $params.Remove("ThursdayHours") - $null = $params.Remove("FridayHours") - $null = $params.Remove("SaturdayHours") - $null = $params.Remove("SundayHours") - $null = $params.Remove("Complement") - - if ($PsCmdlet.ParameterSetName -eq "UnresolvedParamSet") { - throw "A schedule type must be specified. Please use -WeeklyRecurrentSchedule or -FixedSchedule parameters to create the appropriate type of schedule." - } + Write-AdminServiceDiagnostic($internalOutput.Diagnostic) - if ($PsCmdlet.ParameterSetName -eq "FixedScheduleParamSet") { - $fixedScheduleDateTimeRanges = @() - foreach ($dateTimeRange in $DateTimeRanges) { - $fixedScheduleDateTimeRanges += @{ - Start = $dateTimeRange.Start.ToString($dateTimeRangeStandardFormat, [System.Globalization.CultureInfo]::InvariantCulture) - End = $dateTimeRange.End.ToString($dateTimeRangeStandardFormat, [System.Globalization.CultureInfo]::InvariantCulture) - } - } - $params['FixedScheduleDateTimeRange'] = $fixedScheduleDateTimeRanges - } + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } - if ($PsCmdlet.ParameterSetName -eq "WeeklyRecurrentScheduleParamSet") { - if ($MondayHours -ne $null -and $MondayHours.Length -gt 0) { - $params['WeeklyRecurrentScheduleMondayHour'] = @() - foreach ($mondayHour in $MondayHours){ - $params['WeeklyRecurrentScheduleMondayHour'] += @{ - Start = $mondayHour.Start - End = $mondayHour.End - } - } - } - if ($TuesdayHours -ne $null -and $TuesdayHours.Length -gt 0) { - $params['WeeklyRecurrentScheduleTuesdayHour'] = @() - foreach ($tuesdayHour in $TuesdayHours){ - $params['WeeklyRecurrentScheduleTuesdayHour'] += @{ - Start = $tuesdayHour.Start - End = $tuesdayHour.End - } - } - } - if ($WednesdayHours -ne $null -and $WednesdayHours.Length -gt 0) { - $params['WeeklyRecurrentScheduleWednesdayHour'] = @() - foreach ($wednesdayHour in $WednesdayHours){ - $params['WeeklyRecurrentScheduleWednesdayHour'] += @{ - Start = $wednesdayHour.Start - End = $wednesdayHour.End - } - } - } - if ($ThursdayHours -ne $null -and $ThursdayHours.Length -gt 0) { - $params['WeeklyRecurrentScheduleThursdayHour'] = @() - foreach ($thursdayHour in $ThursdayHours){ - $params['WeeklyRecurrentScheduleThursdayHour'] += @{ - Start = $thursdayHour.Start - End = $thursdayHour.End - } - } - } - if ($FridayHours -ne $null -and $FridayHours.Length -gt 0) { - $params['WeeklyRecurrentScheduleFridayHour'] = @() - foreach ($fridayHour in $FridayHours){ - $params['WeeklyRecurrentScheduleFridayHour'] += @{ - Start = $fridayHour.Start - End = $fridayHour.End - } - } - } - if ($SaturdayHours -ne $null -and $SaturdayHours.Length -gt 0) { - $params['WeeklyRecurrentScheduleSaturdayHour'] = @() - foreach ($saturdayHour in $SaturdayHours){ - $params['WeeklyRecurrentScheduleSaturdayHour'] += @{ - Start = $saturdayHour.Start - End = $saturdayHour.End - } - } - } - if ($SundayHours -ne $null -and $SundayHours.Length -gt 0) { - $params['WeeklyRecurrentScheduleSundayHour'] = @() - foreach ($sundayHour in $SundayHours){ - $params['WeeklyRecurrentScheduleSundayHour'] += @{ - Start = $sundayHour.Start - End = $sundayHour.End - } - } - } - if ($Complement) { $params['WeeklyRecurrentScheduleIsComplemented'] = $true } - } + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- - $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsOnlineSchedule @params @httpPipelineArgs +# Objective of this custom file: print out the diagnostics - # Stop execution if internal cmdlet is failing - if ($result -eq $null) { - return $null +function Remove-CsCallQueue { + [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The identifier of the call queue to be removed. + ${Identity}, + + [Parameter(Mandatory=$false)] + [Switch] + # Allow the cmdlet to run anyway + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to Stop + if (!$PSBoundParameters.ContainsKey('ErrorAction')) { + $PSBoundParameters.Add('ErrorAction', 'Stop') } - Write-AdminServiceDiagnostic($result.Diagnostic) + if ($PSBoundParameters.ContainsKey('Force')) { + $PSBoundParameters.Remove('Force') | Out-Null + } - $schedule = [Microsoft.Rtc.Management.Hosted.Online.Models.Schedule]::new() - $schedule.ParseFrom($result) + # Get the CallQueue to be deleted by Identity. + $getParams = @{Identity = $Identity; FilterInvalidObos = $false} + $getResult = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsCallQueue @getParams -ErrorAction Stop @httpPipelineArgs + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Remove-CsCallQueue @PSBoundParameters @httpPipelineArgs + Write-AdminServiceDiagnostic($result.Diagnostics) + + # Convert the fecthed CallQueue DTO to domain model and print. + $deletedCallQueue= [Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue]::new() + $deletedCallQueue.ParseFrom($getResult.CallQueue) } catch { $customCmdletUtils.SendTelemetry() @@ -8532,22 +10206,17 @@ function New-CsOnlineSchedule { # limitations under the License. # ---------------------------------------------------------------------------------- -# Objective of this custom file: transforming the return result to the custom object +# Objective of this custom file: print out the diagnostic -function New-CsOnlineTimeRange { +function Remove-CsComplianceRecordingForCallQueueTemplate { [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(Mandatory=$true, position=0)] [System.String] - # The Start parameter represents the start bound of the time range. - ${Start}, - - [Parameter(Mandatory=$true, position=1)] - [System.String] - # The End parameter represents the end bound of the time range. - ${End}, + # The identifier of the CR4CQ template to be removed. + ${Id}, - [Parameter(Mandatory=$false, position=2)] + [Parameter(Mandatory=$false, position=1)] [Switch] ${Force}, @@ -8575,7 +10244,7 @@ function New-CsOnlineTimeRange { $PSBoundParameters.Remove("Force") | Out-Null } - $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsOnlineTimeRange @PSBoundParameters @httpPipelineArgs + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Remove-CsComplianceRecordingForCallQueueTemplate @PSBoundParameters @httpPipelineArgs # Stop execution if internal cmdlet is failing if ($result -eq $null) { @@ -8583,10 +10252,7 @@ function New-CsOnlineTimeRange { } Write-AdminServiceDiagnostic($result.Diagnostic) - $output = [Microsoft.Rtc.Management.Hosted.Online.Models.TimeRange]::new() - $output.ParseFrom($result) - - $output + $result } catch { $customCmdletUtils.SendTelemetry() @@ -8612,19 +10278,18 @@ function New-CsOnlineTimeRange { # limitations under the License. # ---------------------------------------------------------------------------------- -# Objective of this custom file: Display the diagnostic if any +# Objective of this custom file: print out the diagnostic -function Remove-CsAutoAttendant { +function Remove-CsMainlineAttendantAppointmentBookingFlow { [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(Mandatory=$true, position=0)] [System.String] - # The identity for the AA to be removed. + # The identifier of the mainline attendant appointment booking flow to be removed. ${Identity}, [Parameter(Mandatory=$false, position=1)] [Switch] - # The Force parameter indicates if we force the action to be performed. (Deprecated) ${Force}, [Parameter(DontShow)] @@ -8642,21 +10307,24 @@ function Remove-CsAutoAttendant { $httpPipelineArgs = $customCmdletUtils.ProcessArgs() - $null = $PSBoundParameters.Remove("Force") - # Default ErrorAction to $ErrorActionPreference if (!$PSBoundParameters.ContainsKey("ErrorAction")) { $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) } - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Remove-CsAutoAttendant @PSBoundParameters @httpPipelineArgs + if ($PSBoundParameters.ContainsKey("Force")) { + $PSBoundParameters.Remove("Force") | Out-Null + } + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Remove-CsMainlineAttendantAppointmentBookingFlow @PSBoundParameters @httpPipelineArgs # Stop execution if internal cmdlet is failing - if ($internalOutput -eq $null) { + if ($result -eq $null) { return $null } - Write-AdminServiceDiagnostic($internalOutput.Diagnostic) + Write-AdminServiceDiagnostic($result.Diagnostic) + $result } catch { $customCmdletUtils.SendTelemetry() @@ -8682,19 +10350,18 @@ function Remove-CsAutoAttendant { # limitations under the License. # ---------------------------------------------------------------------------------- -# Objective of this custom file: print out the diagnostics +# Objective of this custom file: print out the diagnostic -function Remove-CsCallQueue { +function Remove-CsMainlineAttendantQuestionAnswerFlow { [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(Mandatory=$true, position=0)] [System.String] - # The identifier of the call queue to be removed. + # The identifier of the mainline attendant question answer flow to be removed. ${Identity}, - [Parameter(Mandatory=$false)] + [Parameter(Mandatory=$false, position=1)] [Switch] - # Allow the cmdlet to run anyway ${Force}, [Parameter(DontShow)] @@ -8712,25 +10379,24 @@ function Remove-CsCallQueue { $httpPipelineArgs = $customCmdletUtils.ProcessArgs() - # Default ErrorAction to Stop - if (!$PSBoundParameters.ContainsKey('ErrorAction')) { - $PSBoundParameters.Add('ErrorAction', 'Stop') + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) } - if ($PSBoundParameters.ContainsKey('Force')) { - $PSBoundParameters.Remove('Force') | Out-Null + if ($PSBoundParameters.ContainsKey("Force")) { + $PSBoundParameters.Remove("Force") | Out-Null } - # Get the CallQueue to be deleted by Identity. - $getParams = @{Identity = $Identity; FilterInvalidObos = $false} - $getResult = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsCallQueue @getParams -ErrorAction Stop @httpPipelineArgs + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Remove-CsMainlineAttendantQuestionAnswerFlow @PSBoundParameters @httpPipelineArgs - $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Remove-CsCallQueue @PSBoundParameters @httpPipelineArgs - Write-AdminServiceDiagnostic($result.Diagnostics) + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null + } - # Convert the fecthed CallQueue DTO to domain model and print. - $deletedCallQueue= [Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue]::new() - $deletedCallQueue.ParseFrom($getResult.CallQueue) + Write-AdminServiceDiagnostic($result.Diagnostic) + $result } catch { $customCmdletUtils.SendTelemetry() @@ -8820,14 +10486,152 @@ function Remove-CsOnlineApplicationInstanceAssociation { return $null } - Write-AdminServiceDiagnostic($internalOutputs.Diagnostic) + Write-AdminServiceDiagnostic($internalOutputs.Diagnostic) + + $output = [Microsoft.Rtc.Management.Hosted.Online.Models.AssociationOperationOutput]::new() + $output.ParseFrom($internalOutputs) + + $output + } + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Add default App ID for Remove-CsOnlineAudioFile + +function Remove-CsOnlineAudioFile { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The Identity parameter is the identifier for the audio file. + ${Identity}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $null = $PSBoundParameters.Remove("ApplicationId") + $PSBoundParameters.Add("ApplicationId", "TenantGlobal") + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Remove-CsOnlineAudioFile @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + $internalOutput + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: print out the diagnostic + +function Remove-CsOnlineSchedule { + [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The identifier of the schedule to be removed. + ${Id}, + + [Parameter(Mandatory=$false, position=1)] + [Switch] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() - $output = [Microsoft.Rtc.Management.Hosted.Online.Models.AssociationOperationOutput]::new() - $output.ParseFrom($internalOutputs) + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } - $output + if ($PSBoundParameters.ContainsKey("Force")) { + $PSBoundParameters.Remove("Force") | Out-Null + } + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Remove-CsOnlineSchedule @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null } + Write-AdminServiceDiagnostic($result.Diagnostic) + $result + } catch { $customCmdletUtils.SendTelemetry() throw @@ -8852,15 +10656,19 @@ function Remove-CsOnlineApplicationInstanceAssociation { # limitations under the License. # ---------------------------------------------------------------------------------- -# Objective of this custom file: Add default App ID for Remove-CsOnlineAudioFile +# Objective of this custom file: print out the diagnostic -function Remove-CsOnlineAudioFile { - [CmdletBinding(PositionalBinding=$true)] +function Remove-CsSharedCallQueueHistoryTemplate { + [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(Mandatory=$true, position=0)] [System.String] - # The Identity parameter is the identifier for the audio file. - ${Identity}, + # The identifier of the shared call queue history template to be removed. + ${Id}, + + [Parameter(Mandatory=$false, position=1)] + [Switch] + ${Force}, [Parameter(DontShow)] [ValidateNotNull()] @@ -8877,22 +10685,24 @@ function Remove-CsOnlineAudioFile { $httpPipelineArgs = $customCmdletUtils.ProcessArgs() - $null = $PSBoundParameters.Remove("ApplicationId") - $PSBoundParameters.Add("ApplicationId", "TenantGlobal") - # Default ErrorAction to $ErrorActionPreference if (!$PSBoundParameters.ContainsKey("ErrorAction")) { $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) } - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Remove-CsOnlineAudioFile @PSBoundParameters @httpPipelineArgs + if ($PSBoundParameters.ContainsKey("Force")) { + $PSBoundParameters.Remove("Force") | Out-Null + } + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Remove-CsSharedCallQueueHistoryTemplate @PSBoundParameters @httpPipelineArgs # Stop execution if internal cmdlet is failing - if ($internalOutput -eq $null) { + if ($result -eq $null) { return $null } - $internalOutput + Write-AdminServiceDiagnostic($result.Diagnostic) + $result } catch { $customCmdletUtils.SendTelemetry() @@ -8920,12 +10730,12 @@ function Remove-CsOnlineAudioFile { # Objective of this custom file: print out the diagnostic -function Remove-CsOnlineSchedule { +function Remove-CsTagsTemplate { [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(Mandatory=$true, position=0)] [System.String] - # The identifier of the schedule to be removed. + # The identifier of the tags template to be removed. ${Id}, [Parameter(Mandatory=$false, position=1)] @@ -8956,7 +10766,7 @@ function Remove-CsOnlineSchedule { $PSBoundParameters.Remove("Force") | Out-Null } - $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Remove-CsOnlineSchedule @PSBoundParameters @httpPipelineArgs + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Remove-CsTagsTemplate @PSBoundParameters @httpPipelineArgs # Stop execution if internal cmdlet is failing if ($result -eq $null) { @@ -9065,7 +10875,7 @@ function Set-CsAutoAttendant { if ($Instance.ApplicationInstances -ne $null) { $PSBoundParameters.Add('ApplicationInstance', $Instance.ApplicationInstances) } - if ($Instance.VoiceResponseEnabled -eq $true) { + if ($Instance.VoiceResponseEnabled -eq $true) { $PSBoundParameters.Add('VoiceResponseEnabled', $true) } if ($Instance.DefaultCallFlow -ne $null) { @@ -9178,6 +10988,50 @@ function Set-CsAutoAttendant { $PSBoundParameters.Add('Schedule', $schedules) } + if ($Instance.MainlineAttendantEnabled -eq $true) { + # Check whether the greetings is provided by the customer or should we use the default greeting. + if ($Instance.DefaultCallFlow.Greetings -eq $null) { + Write-Warning "Greetings is not set for the DefaultCallFlow. The system default greeting will be used for mainline attendant." + $defaultCallFlowGreetings = @() + $defaultCallFlowGreetings += [Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt]::CreateAutoGeneratedFromObject( + @{ + ActiveType = [Microsoft.Rtc.Management.Hosted.OAA.Models.PromptType]::TextToSpeech; + TextToSpeechPrompt = "Hello, and thank you for calling '{0}'. How can I assist you today? Please note that this call may be recorded for compliance purposes." -f $Instance.Name + } + ) + $PSBoundParameters.Add('DefaultCallFlowGreeting', $defaultCallFlowGreetings) + } + + # For mainline attendant as of now, we only support "en-US" language. + $supportedLanguageId = "en-US" + if ($Instance.LanguageId -ne $supportedLanguageId) { + Write-Warning ("The provided LanguageId '{0}' is not supported for mainline attendant. Defaulting to 'en-US'." -f $Instance.LanguageId) + $null = $PSBoundParameters.Remove('LanguageId') + $PSBoundParameters.Add('LanguageId', $supportedLanguageId) + } + + # For mainline attendant, we only support specific voice ids. + $mainlineAttendantVoiceIds = [Microsoft.Rtc.Management.Hosted.OAA.Models.MainlineAttendantSupportedVoiceIds] + if ([string]::IsNullOrWhiteSpace($Instance.MainlineAttendantAgentVoiceId) -or + -not [System.Enum]::IsDefined($mainlineAttendantVoiceIds, $Instance.MainlineAttendantAgentVoiceId)) { + throw "The provided MainlineAttendantAgentVoiceId '{0}' is not supported for Mainline Attendant. Supported values are: $([string]::Join(', ', [System.Enum]::GetNames($mainlineAttendantVoiceIds)))." -f $Instance.MainlineAttendantAgentVoiceId + } + $mainlineAttendantVoiceId = $mainlineAttendantVoiceIds::$($Instance.MainlineAttendantAgentVoiceId) + $null = $PSBoundParameters.Remove('MainlineAttendantAgentVoiceId') + $PSBoundParameters.Add("MainlineAttendantAgentVoiceId", $mainlineAttendantVoiceId) + + # For Mainline Attendant, VoiceResponseEnabled should must be true. + if ($Instance.VoiceResponseEnabled -ne $true) { + Write-Warning "`$VoiceResponseEnabled` is not set. Defaulting to 'true' for mainline attendant." + $null = $PSBoundParameters.Remove('VoiceResponseEnabled') + $PSBoundParameters.Add('VoiceResponseEnabled', $true) + } + + # Finally, add MainlineAttendantEnabled is true to the powershell parameters list. + $null = $PSBoundParameters.Remove('MainlineAttendantEnabled') + $PSBoundParameters.Add('MainlineAttendantEnabled', $true) + } + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsAutoAttendant @PSBoundParameters @httpPipelineArgs # Stop execution if internal cmdlet is failing @@ -9650,6 +11504,46 @@ function Set-CsCallQueue { # Service level threshold in seconds for the call queue. Used for monitor calls in the call queue is handled within this threshold or not. ${ServiceLevelThresholdResponseTimeInSecond}, + [Parameter(Mandatory=$false)] + [System.String] + # Shifts Team identity to use as Call queues answer target. + ${ShiftsTeamId}, + + [Parameter(Mandatory=$false)] + [System.String] + # Text announcement that is played before CR bot joins the call + ${TextAnnouncementForCR}, + + [Parameter(Mandatory=$false)] + [System.String] + # Custom audio file announcement for compliance recording + ${CustomAudioFileAnnouncementForCR}, + + [Parameter(Mandatory=$false)] + [System.String] + # Text announcement that is played if CR bot is unable to join the call. + ${TextAnnouncementForCRFailure}, + + [Parameter(Mandatory=$false)] + [System.String] + # Custom audio file announcement for compliance recording if CR bot is unable to join the call. + ${CustomAudioFileAnnouncementForCRFailure}, + + [Parameter(Mandatory=$false)] + [System.String[]] + # Ids for Compliance Recording template for Callqueue. + ${ComplianceRecordingForCallQueueTemplateId}, + + [Parameter(Mandatory=$false)] + [System.String] + # Id for Shared Call Queue History template. + ${SharedCallQueueHistoryTemplateId}, + + [Parameter(Mandatory=$false)] + [System.String] + # Shifts Scheduling Group identity to use as Call queues answer target. + ${ShiftsSchedulingGroupId}, + [Parameter(Mandatory=$false)] [Switch] # Allow the cmdlet to run anyway @@ -10018,211 +11912,573 @@ function Set-CsCallQueue { } } - if (!$PSBoundParameters.ContainsKey('EnableNoAgentSharedVoicemailSystemPromptSuppression') -and $null -ne $existingCallQueue.EnableNoAgentSharedVoicemailSystemPromptSuppression) { - $PSBoundParameters.Add('EnableNoAgentSharedVoicemailSystemPromptSuppression', $existingCallQueue.EnableNoAgentSharedVoicemailSystemPromptSuppression) + if (!$PSBoundParameters.ContainsKey('EnableNoAgentSharedVoicemailSystemPromptSuppression') -and $null -ne $existingCallQueue.EnableNoAgentSharedVoicemailSystemPromptSuppression) { + $PSBoundParameters.Add('EnableNoAgentSharedVoicemailSystemPromptSuppression', $existingCallQueue.EnableNoAgentSharedVoicemailSystemPromptSuppression) + } + + if (!$PSBoundParameters.ContainsKey('NoAgentApplyTo')) { + if ($existingCallQueue.NoAgentApplyTo -ne $null) { + $PSBoundParameters.Add('NoAgentApplyTo', $existingCallQueue.NoAgentApplyTo) + } + } + + if (!$PSBoundParameters.ContainsKey('NoAgentDisconnectAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentDisconnectAudioFilePrompt)) { + $PSBoundParameters.Add('NoAgentDisconnectAudioFilePrompt', $existingCallQueue.NoAgentDisconnectAudioFilePrompt) + } + elseif ($PSBoundParameters.ContainsKey('NoAgentDisconnectAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($NoAgentDisconnectAudioFilePrompt)) { + $null = $PSBoundParameters.Remove('NoAgentDisconnectAudioFilePrompt') + } + + if (!$PSBoundParameters.ContainsKey('NoAgentDisconnectTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentDisconnectTextToSpeechPrompt)) { + $PSBoundParameters.Add('NoAgentDisconnectTextToSpeechPrompt', $existingCallQueue.NoAgentDisconnectTextToSpeechPrompt) + } + elseif ($PSBoundParameters.ContainsKey('NoAgentDisconnectTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($NoAgentDisconnectTextToSpeechPrompt)) { + $null = $PSBoundParameters.Remove('NoAgentDisconnectTextToSpeechPrompt') + } + + if (!$PSBoundParameters.ContainsKey('NoAgentRedirectPersonAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentRedirectPersonAudioFilePrompt)) { + $PSBoundParameters.Add('NoAgentRedirectPersonAudioFilePrompt', $existingCallQueue.NoAgentRedirectPersonAudioFilePrompt) + } + elseif ($PSBoundParameters.ContainsKey('NoAgentRedirectPersonAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($NoAgentRedirectPersonAudioFilePrompt)) { + $null = $PSBoundParameters.Remove('NoAgentRedirectPersonAudioFilePrompt') + } + + if (!$PSBoundParameters.ContainsKey('NoAgentRedirectPersonTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentRedirectPersonTextToSpeechPrompt)) { + $PSBoundParameters.Add('NoAgentRedirectPersonTextToSpeechPrompt', $existingCallQueue.NoAgentRedirectPersonTextToSpeechPrompt) + } + elseif ($PSBoundParameters.ContainsKey('NoAgentRedirectPersonTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($NoAgentRedirectPersonTextToSpeechPrompt)) { + $null = $PSBoundParameters.Remove('NoAgentRedirectPersonTextToSpeechPrompt') + } + + if (!$PSBoundParameters.ContainsKey('NoAgentRedirectVoiceAppAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentRedirectVoiceAppAudioFilePrompt)) { + $PSBoundParameters.Add('NoAgentRedirectVoiceAppAudioFilePrompt', $existingCallQueue.NoAgentRedirectVoiceAppAudioFilePrompt) + } + elseif ($PSBoundParameters.ContainsKey('NoAgentRedirectVoiceAppAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($NoAgentRedirectVoiceAppAudioFilePrompt)) { + $null = $PSBoundParameters.Remove('NoAgentRedirectVoiceAppAudioFilePrompt') + } + + if (!$PSBoundParameters.ContainsKey('NoAgentRedirectVoiceAppTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentRedirectVoiceAppTextToSpeechPrompt)) { + $PSBoundParameters.Add('NoAgentRedirectVoiceAppTextToSpeechPrompt', $existingCallQueue.NoAgentRedirectVoiceAppTextToSpeechPrompt) + } + elseif ($PSBoundParameters.ContainsKey('NoAgentRedirectVoiceAppTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($NoAgentRedirectVoiceAppTextToSpeechPrompt)) { + $null = $PSBoundParameters.Remove('NoAgentRedirectVoiceAppTextToSpeechPrompt') + } + + if (!$PSBoundParameters.ContainsKey('NoAgentRedirectPhoneNumberAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentRedirectPhoneNumberAudioFilePrompt)) { + $PSBoundParameters.Add('NoAgentRedirectPhoneNumberAudioFilePrompt', $existingCallQueue.NoAgentRedirectPhoneNumberAudioFilePrompt) + } + elseif ($PSBoundParameters.ContainsKey('NoAgentRedirectPhoneNumberAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($NoAgentRedirectPhoneNumberAudioFilePrompt)) { + $null = $PSBoundParameters.Remove('NoAgentRedirectPhoneNumberAudioFilePrompt') + } + + if (!$PSBoundParameters.ContainsKey('NoAgentRedirectPhoneNumberTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentRedirectPhoneNumberTextToSpeechPrompt)) { + $PSBoundParameters.Add('NoAgentRedirectPhoneNumberTextToSpeechPrompt', $existingCallQueue.NoAgentRedirectPhoneNumberTextToSpeechPrompt) + } + elseif ($PSBoundParameters.ContainsKey('NoAgentRedirectPhoneNumberTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($NoAgentRedirectPhoneNumberTextToSpeechPrompt)) { + $null = $PSBoundParameters.Remove('NoAgentRedirectPhoneNumberTextToSpeechPrompt') + } + + if (!$PSBoundParameters.ContainsKey('NoAgentRedirectVoicemailAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentRedirectVoicemailAudioFilePrompt)) { + $PSBoundParameters.Add('NoAgentRedirectVoicemailAudioFilePrompt', $existingCallQueue.NoAgentRedirectVoicemailAudioFilePrompt) + } + elseif ($PSBoundParameters.ContainsKey('NoAgentRedirectVoicemailAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($NoAgentRedirectVoicemailAudioFilePrompt)) { + $null = $PSBoundParameters.Remove('NoAgentRedirectVoicemailAudioFilePrompt') + } + + if (!$PSBoundParameters.ContainsKey('NoAgentRedirectVoicemailTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentRedirectVoicemailTextToSpeechPrompt)) { + $PSBoundParameters.Add('NoAgentRedirectVoicemailTextToSpeechPrompt', $existingCallQueue.NoAgentRedirectVoicemailTextToSpeechPrompt) + } + elseif ($PSBoundParameters.ContainsKey('NoAgentRedirectVoicemailTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($NoAgentRedirectVoicemailTextToSpeechPrompt)) { + $null = $PSBoundParameters.Remove('NoAgentRedirectVoicemailTextToSpeechPrompt') + } + + if (!$PSBoundParameters.ContainsKey('AuthorizedUsers')) { + $PSBoundParameters.Add('AuthorizedUsers', $existingCallQueue.AuthorizedUsers) + } + + if (!$PSBoundParameters.ContainsKey('HideAuthorizedUsers')) { + $PSBoundParameters.Add('HideAuthorizedUsers', $existingCallQueue.HideAuthorizedUsers) + } + + # Making sure the user provides the correct CallPriority values for CQ exceptions (overflow, timeout, NoAgent etc.) handling. + # The valid values are 1 to 5. Zero is also allowed which means the user wants to use the default value (3). + # (elseif) The CallPriority does not apply when the Action is not `Forward`. + # (elseif) If user doesn't provide CallPriority value but in the existing CallQueue there is a value then we have the following two scenarios: + # a) User provides a new Target and we should not take the existing priority instead it should be the default CallPriority (3). + # b) In case of existing CQ with ActionTarget, user might want to only update the CallPriority. + if ($PSBoundParameters["OverflowAction"] -eq 'Forward' -and ($OverflowActionCallPriority -lt 0 -or $OverflowActionCallPriority -gt 5)) { + throw "Invalid `OverflowActionCallPriority` value. The valid values are 1 to 5 (default is 3). Please provide the correct value." + } + elseif ($PSBoundParameters["OverflowAction"] -ne 'Forward' -and ([Math]::Abs($OverflowActionCallPriority) -ge 1)) { + throw "OverflowActionCallPriority is only applicable when the 'OverflowAction' is 'Forward'. Please remove the OverflowActionCallPriority." + } + elseif (!$PSBoundParameters.ContainsKey('OverflowActionCallPriority') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.OverflowActionCallPriority)) { + if ($PSBoundParameters["OverflowAction"] -eq 'Forward' -and $PSBoundParameters["OverflowActionTarget"] -eq $existingCallQueue.OverflowActionTarget.Id -and $existingCallQueue.OverflowActionCallPriority -ge 1) { + $PSBoundParameters.Add('OverflowActionCallPriority', $existingCallQueue.OverflowActionCallPriority) + } + } + + if ($PSBoundParameters["TimeoutAction"] -eq 'Forward' -and ($TimeoutActionCallPriority -lt 0 -or $TimeoutActionCallPriority -gt 5)) { + throw "Invalid `TimeoutActionCallPriority` value. The valid values are 1 to 5 (default is 3). Please provide the correct value." + } + elseif ($PSBoundParameters["TimeoutAction"] -ne 'Forward' -and ([Math]::Abs($TimeoutActionCallPriority) -ge 1)) { + throw "TimeoutActionCallPriority is only applicable when the 'TimeoutAction' is 'Forward'. Please remove the TimeoutActionCallPriority." + } + elseif (!$PSBoundParameters.ContainsKey('TimeoutActionCallPriority') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.TimeoutActionCallPriority)) { + if ($PSBoundParameters["TimeoutAction"] -eq 'Forward' -and $PSBoundParameters["TimeoutActionTarget"] -eq $existingCallQueue.TimeoutActionTarget.Id -and $existingCallQueue.TimeoutActionCallPriority -ge 1) { + $PSBoundParameters.Add('TimeoutActionCallPriority', $existingCallQueue.TimeoutActionCallPriority) + } + } + + if ($PSBoundParameters["NoAgentAction"] -eq 'Forward' -and ($NoAgentActionCallPriority -lt 0 -or $NoAgentActionCallPriority -gt 5)) { + throw "Invalid `NoAgentActionCallPriority` value. The valid values are 1 to 5 (default is 3). Please provide the correct value." + } + elseif ($PSBoundParameters["NoAgentAction"] -ne 'Forward' -and ([Math]::Abs($NoAgentActionCallPriority) -ge 1)) { + throw "NoAgentActionCallPriority is only applicable when the 'NoAgentAction' is 'Forward'. Please remove the NoAgentActionCallPriority." + } + elseif (!$PSBoundParameters.ContainsKey('NoAgentActionCallPriority') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentActionCallPriority)) { + if ($PSBoundParameters["NoAgentAction"] -eq 'Forward' -and $PSBoundParameters["NoAgentActionTarget"] -eq $existingCallQueue.NoAgentActionTarget.Id -and $existingCallQueue.NoAgentActionCallPriority -ge 1) { + $PSBoundParameters.Add('NoAgentActionCallPriority', $existingCallQueue.NoAgentActionCallPriority) + } + } + + if (!$PSBoundParameters.ContainsKey('IsCallbackEnabled') -and $null -ne $existingCallQueue.IsCallbackEnabled) { + $PSBoundParameters.Add('IsCallbackEnabled', $existingCallQueue.IsCallbackEnabled) + } + elseif ($PSBoundParameters.ContainsKey('IsCallbackEnabled') -and $IsCallbackEnabled -eq $null) { + $null = $PSBoundParameters.Remove('IsCallbackEnabled') + } + + if (!$PSBoundParameters.ContainsKey('CallbackRequestDtmf') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.CallbackRequestDtmf)) { + $PSBoundParameters.Add('CallbackRequestDtmf', $existingCallQueue.CallbackRequestDtmf) + } + elseif ($PSBoundParameters.ContainsKey('CallbackRequestDtmf') -and [string]::IsNullOrWhiteSpace($CallbackRequestDtmf)) { + $null = $PSBoundParameters.Remove('CallbackRequestDtmf') + } + + if (!$PSBoundParameters.ContainsKey('WaitTimeBeforeOfferingCallbackInSecond') -and $null -ne $existingCallQueue.WaitTimeBeforeOfferingCallbackInSecond) { + $PSBoundParameters.Add('WaitTimeBeforeOfferingCallbackInSecond', $existingCallQueue.WaitTimeBeforeOfferingCallbackInSecond) + } + elseif ($PSBoundParameters.ContainsKey('WaitTimeBeforeOfferingCallbackInSecond') -and $WaitTimeBeforeOfferingCallbackInSecond -eq $null) { + $null = $PSBoundParameters.Remove('WaitTimeBeforeOfferingCallbackInSecond') + } + + if (!$PSBoundParameters.ContainsKey('NumberOfCallsInQueueBeforeOfferingCallback') -and $null -ne $existingCallQueue.NumberOfCallsInQueueBeforeOfferingCallback) { + $PSBoundParameters.Add('NumberOfCallsInQueueBeforeOfferingCallback', $existingCallQueue.NumberOfCallsInQueueBeforeOfferingCallback) + } + elseif ($PSBoundParameters.ContainsKey('NumberOfCallsInQueueBeforeOfferingCallback') -and $NumberOfCallsInQueueBeforeOfferingCallback -eq $null) { + $null = $PSBoundParameters.Remove('NumberOfCallsInQueueBeforeOfferingCallback') + } + + if (!$PSBoundParameters.ContainsKey('CallToAgentRatioThresholdBeforeOfferingCallback') -and $null -ne $existingCallQueue.CallToAgentRatioThresholdBeforeOfferingCallback) { + $PSBoundParameters.Add('CallToAgentRatioThresholdBeforeOfferingCallback', $existingCallQueue.CallToAgentRatioThresholdBeforeOfferingCallback) + } + elseif ($PSBoundParameters.ContainsKey('CallToAgentRatioThresholdBeforeOfferingCallback') -and $CallToAgentRatioThresholdBeforeOfferingCallback -eq $null) { + $null = $PSBoundParameters.Remove('CallToAgentRatioThresholdBeforeOfferingCallback') + } + + if (!$PSBoundParameters.ContainsKey('CallbackOfferAudioFilePromptResourceId') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.CallbackOfferAudioFilePromptResourceId)) { + $PSBoundParameters.Add('CallbackOfferAudioFilePromptResourceId', $existingCallQueue.CallbackOfferAudioFilePromptResourceId) + } + elseif ($PSBoundParameters.ContainsKey('CallbackOfferAudioFilePromptResourceId') -and [string]::IsNullOrWhiteSpace($CallbackOfferAudioFilePromptResourceId)) { + $null = $PSBoundParameters.Remove('CallbackOfferAudioFilePromptResourceId') + } + + if (!$PSBoundParameters.ContainsKey('CallbackOfferTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.CallbackOfferTextToSpeechPrompt)) { + $PSBoundParameters.Add('CallbackOfferTextToSpeechPrompt', $existingCallQueue.CallbackOfferTextToSpeechPrompt) } - - if (!$PSBoundParameters.ContainsKey('NoAgentApplyTo')) { - if ($existingCallQueue.NoAgentApplyTo -ne $null) { - $PSBoundParameters.Add('NoAgentApplyTo', $existingCallQueue.NoAgentApplyTo) - } + elseif ($PSBoundParameters.ContainsKey('CallbackOfferTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($CallbackOfferTextToSpeechPrompt)) { + $null = $PSBoundParameters.Remove('CallbackOfferTextToSpeechPrompt') } - if (!$PSBoundParameters.ContainsKey('NoAgentDisconnectAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentDisconnectAudioFilePrompt)) { - $PSBoundParameters.Add('NoAgentDisconnectAudioFilePrompt', $existingCallQueue.NoAgentDisconnectAudioFilePrompt) + if (!$PSBoundParameters.ContainsKey('CallbackEmailNotificationTarget') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.CallbackEmailNotificationTargetId)) { + $PSBoundParameters.Add('CallbackEmailNotificationTarget', $existingCallQueue.CallbackEmailNotificationTargetId) } - elseif ($PSBoundParameters.ContainsKey('NoAgentDisconnectAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($NoAgentDisconnectAudioFilePrompt)) { - $null = $PSBoundParameters.Remove('NoAgentDisconnectAudioFilePrompt') + elseif ($PSBoundParameters.ContainsKey('CallbackEmailNotificationTarget') -and [string]::IsNullOrWhiteSpace($CallbackEmailNotificationTarget)) { + $null = $PSBoundParameters.Remove('CallbackEmailNotificationTarget') } - if (!$PSBoundParameters.ContainsKey('NoAgentDisconnectTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentDisconnectTextToSpeechPrompt)) { - $PSBoundParameters.Add('NoAgentDisconnectTextToSpeechPrompt', $existingCallQueue.NoAgentDisconnectTextToSpeechPrompt) - } - elseif ($PSBoundParameters.ContainsKey('NoAgentDisconnectTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($NoAgentDisconnectTextToSpeechPrompt)) { - $null = $PSBoundParameters.Remove('NoAgentDisconnectTextToSpeechPrompt') + if ($PSBoundParameters.ContainsKey('ServiceLevelThresholdResponseTimeInSecond') -and $ServiceLevelThresholdResponseTimeInSecond -eq $null) { + $null = $PSBoundParameters.Remove('ServiceLevelThresholdResponseTimeInSecond') } - if (!$PSBoundParameters.ContainsKey('NoAgentRedirectPersonAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentRedirectPersonAudioFilePrompt)) { - $PSBoundParameters.Add('NoAgentRedirectPersonAudioFilePrompt', $existingCallQueue.NoAgentRedirectPersonAudioFilePrompt) + if (!$PSBoundParameters.ContainsKey('ShiftsTeamId') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.ShiftsTeamId)) { + $PSBoundParameters.Add('ShiftsTeamId', $existingCallQueue.ShiftsTeamId) } - elseif ($PSBoundParameters.ContainsKey('NoAgentRedirectPersonAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($NoAgentRedirectPersonAudioFilePrompt)) { - $null = $PSBoundParameters.Remove('NoAgentRedirectPersonAudioFilePrompt') + elseif ($PSBoundParameters.ContainsKey('ShiftsTeamId') -and [string]::IsNullOrWhiteSpace($ShiftsTeamId)) { + $null = $PSBoundParameters.Remove('ShiftsTeamId') } - if (!$PSBoundParameters.ContainsKey('NoAgentRedirectPersonTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentRedirectPersonTextToSpeechPrompt)) { - $PSBoundParameters.Add('NoAgentRedirectPersonTextToSpeechPrompt', $existingCallQueue.NoAgentRedirectPersonTextToSpeechPrompt) + if (!$PSBoundParameters.ContainsKey('ShiftsSchedulingGroupId') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.ShiftsSchedulingGroupId)) { + $PSBoundParameters.Add('ShiftsSchedulingGroupId', $existingCallQueue.ShiftsSchedulingGroupId) } - elseif ($PSBoundParameters.ContainsKey('NoAgentRedirectPersonTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($NoAgentRedirectPersonTextToSpeechPrompt)) { - $null = $PSBoundParameters.Remove('NoAgentRedirectPersonTextToSpeechPrompt') + elseif ($PSBoundParameters.ContainsKey('ShiftsSchedulingGroupId') -and [string]::IsNullOrWhiteSpace($ShiftsSchedulingGroupId)) { + $null = $PSBoundParameters.Remove('ShiftsSchedulingGroupId') } - if (!$PSBoundParameters.ContainsKey('NoAgentRedirectVoiceAppAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentRedirectVoiceAppAudioFilePrompt)) { - $PSBoundParameters.Add('NoAgentRedirectVoiceAppAudioFilePrompt', $existingCallQueue.NoAgentRedirectVoiceAppAudioFilePrompt) + if (!$PSBoundParameters.ContainsKey('TextAnnouncementForCR') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.TextAnnouncementForCR)) { + $PSBoundParameters.Add('TextAnnouncementForCR', $existingCallQueue.TextAnnouncementForCR) } - elseif ($PSBoundParameters.ContainsKey('NoAgentRedirectVoiceAppAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($NoAgentRedirectVoiceAppAudioFilePrompt)) { - $null = $PSBoundParameters.Remove('NoAgentRedirectVoiceAppAudioFilePrompt') + elseif ($PSBoundParameters.ContainsKey('TextAnnouncementForCR') -and [string]::IsNullOrWhiteSpace($TextAnnouncementForCR)) { + $null = $PSBoundParameters.Remove('TextAnnouncementForCR') } - if (!$PSBoundParameters.ContainsKey('NoAgentRedirectVoiceAppTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentRedirectVoiceAppTextToSpeechPrompt)) { - $PSBoundParameters.Add('NoAgentRedirectVoiceAppTextToSpeechPrompt', $existingCallQueue.NoAgentRedirectVoiceAppTextToSpeechPrompt) + if (!$PSBoundParameters.ContainsKey('AudioFileAnnouncementForCR') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.AudioFileAnnouncementForCR)) { + $PSBoundParameters.Add('AudioFileAnnouncementForCR', $existingCallQueue.AudioFileAnnouncementForCR) } - elseif ($PSBoundParameters.ContainsKey('NoAgentRedirectVoiceAppTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($NoAgentRedirectVoiceAppTextToSpeechPrompt)) { - $null = $PSBoundParameters.Remove('NoAgentRedirectVoiceAppTextToSpeechPrompt') + elseif ($PSBoundParameters.ContainsKey('AudioFileAnnouncementForCR') -and [string]::IsNullOrWhiteSpace($AudioFileAnnouncementForCR)) { + $null = $PSBoundParameters.Remove('AudioFileAnnouncementForCR') } - if (!$PSBoundParameters.ContainsKey('NoAgentRedirectPhoneNumberAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentRedirectPhoneNumberAudioFilePrompt)) { - $PSBoundParameters.Add('NoAgentRedirectPhoneNumberAudioFilePrompt', $existingCallQueue.NoAgentRedirectPhoneNumberAudioFilePrompt) + if (!$PSBoundParameters.ContainsKey('TextAnnouncementForCRFailure') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.TextAnnouncementForCRFailure)) { + $PSBoundParameters.Add('TextAnnouncementForCRFailure', $existingCallQueue.TextAnnouncementForCRFailure) } - elseif ($PSBoundParameters.ContainsKey('NoAgentRedirectPhoneNumberAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($NoAgentRedirectPhoneNumberAudioFilePrompt)) { - $null = $PSBoundParameters.Remove('NoAgentRedirectPhoneNumberAudioFilePrompt') + elseif ($PSBoundParameters.ContainsKey('TextAnnouncementForCRFailure') -and [string]::IsNullOrWhiteSpace($TextAnnouncementForCRFailure)) { + $null = $PSBoundParameters.Remove('TextAnnouncementForCRFailure') } - if (!$PSBoundParameters.ContainsKey('NoAgentRedirectPhoneNumberTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentRedirectPhoneNumberTextToSpeechPrompt)) { - $PSBoundParameters.Add('NoAgentRedirectPhoneNumberTextToSpeechPrompt', $existingCallQueue.NoAgentRedirectPhoneNumberTextToSpeechPrompt) + if (!$PSBoundParameters.ContainsKey('AudioFileAnnouncementForCRFailure') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.AudioFileAnnouncementForCRFailure)) { + $PSBoundParameters.Add('AudioFileAnnouncementForCRFailure', $existingCallQueue.AudioFileAnnouncementForCRFailure) } - elseif ($PSBoundParameters.ContainsKey('NoAgentRedirectPhoneNumberTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($NoAgentRedirectPhoneNumberTextToSpeechPrompt)) { - $null = $PSBoundParameters.Remove('NoAgentRedirectPhoneNumberTextToSpeechPrompt') + elseif ($PSBoundParameters.ContainsKey('AudioFileAnnouncementForCRFailure') -and [string]::IsNullOrWhiteSpace($AudioFileAnnouncementForCRFailure)) { + $null = $PSBoundParameters.Remove('AudioFileAnnouncementForCRFailure') } - if (!$PSBoundParameters.ContainsKey('NoAgentRedirectVoicemailAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentRedirectVoicemailAudioFilePrompt)) { - $PSBoundParameters.Add('NoAgentRedirectVoicemailAudioFilePrompt', $existingCallQueue.NoAgentRedirectVoicemailAudioFilePrompt) + if (!$PSBoundParameters.ContainsKey('ComplianceRecordingForCallQueueTemplateId') -and $null -ne $existingCallQueue.ComplianceRecordingForCallQueueTemplateId) { + $PSBoundParameters.Add('ComplianceRecordingForCallQueueTemplateId', $existingCallQueue.ComplianceRecordingForCallQueueTemplateId) } - elseif ($PSBoundParameters.ContainsKey('NoAgentRedirectVoicemailAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($NoAgentRedirectVoicemailAudioFilePrompt)) { - $null = $PSBoundParameters.Remove('NoAgentRedirectVoicemailAudioFilePrompt') + + if (!$PSBoundParameters.ContainsKey('SharedCallQueueHistoryTemplateId') -and $null -ne $existingCallQueue.SharedCallQueueHistoryTemplateId) { + $PSBoundParameters.Add('SharedCallQueueHistoryTemplateId', $existingCallQueue.SharedCallQueueHistoryTemplateId) } + - if (!$PSBoundParameters.ContainsKey('NoAgentRedirectVoicemailTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentRedirectVoicemailTextToSpeechPrompt)) { - $PSBoundParameters.Add('NoAgentRedirectVoicemailTextToSpeechPrompt', $existingCallQueue.NoAgentRedirectVoicemailTextToSpeechPrompt) + # Update the CallQueue. + $updateResult = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsCallQueue @PSBoundParameters @httpPipelineArgs + # The response of the Update API is only the list of `Diagnostics` which can be directly used in + # the following method instead of accessing the `Diagnostic` like we do for other CMDLets. + Write-AdminServiceDiagnostic($updateResult) + + # Unfortunately, CallQueue PUT API does not return a CallQueue DTO model. We need to GET the CallQueue again + # to print the updated model. + $getResult = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsCallQueue @getParams @httpPipelineArgs + + $updatedCallQueue = [Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue]::new() + $updatedCallQueue.ParseFrom($getResult.CallQueue) + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: transforming the results to the custom objects + +function Set-CsComplianceRecordingForCallQueueTemplate { + [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] + param( + [Parameter(Mandatory=$true, position=0)] + [PSObject] + # The Instance parameter is the object reference to the CR4CQ template to be modified. + ${Instance}, + + [Parameter(Mandatory=$false, position=1)] + [Switch] + # The Force parameter indicates if we force the action to be performed. (Deprecated) + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process{ + try { + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) } - elseif ($PSBoundParameters.ContainsKey('NoAgentRedirectVoicemailTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($NoAgentRedirectVoicemailTextToSpeechPrompt)) { - $null = $PSBoundParameters.Remove('NoAgentRedirectVoicemailTextToSpeechPrompt') + if ($PSBoundParameters.ContainsKey("Force")) { + $PSBoundParameters.Remove("Force") | Out-Null } - if (!$PSBoundParameters.ContainsKey('AuthorizedUsers')) { - $PSBoundParameters.Add('AuthorizedUsers', $existingCallQueue.AuthorizedUsers) + $params = @{ + Name = ${Instance}.Name + Identity = ${Instance}.Id + Description = ${Instance}.Description + BotApplicationInstanceObjectId = ${Instance}.BotApplicationInstanceObjectId + RequiredDuringCall = ${Instance}.RequiredDuringCall + RequiredBeforeCall = ${Instance}.RequiredBeforeCall + ConcurrentInvitationCount = ${Instance}.ConcurrentInvitationCount + PairedApplicationInstanceObjectId = ${Instance}.PairedApplicationInstanceObjectId } - if (!$PSBoundParameters.ContainsKey('HideAuthorizedUsers')) { - $PSBoundParameters.Add('HideAuthorizedUsers', $existingCallQueue.HideAuthorizedUsers) + # Get common parameters + $PSBoundCommonParameters = @{} + foreach($p in $PSBoundParameters.GetEnumerator()) + { + $params += @{$p.Key = $p.Value} } - # Making sure the user provides the correct CallPriority values for CQ exceptions (overflow, timeout, NoAgent etc.) handling. - # The valid values are 1 to 5. Zero is also allowed which means the user wants to use the default value (3). - # (elseif) The CallPriority does not apply when the Action is not `Forward`. - # (elseif) If user doesn't provide CallPriority value but in the existing CallQueue there is a value then we have the following two scenarios: - # a) User provides a new Target and we should not take the existing priority instead it should be the default CallPriority (3). - # b) In case of existing CQ with ActionTarget, user might want to only update the CallPriority. - if ($PSBoundParameters["OverflowAction"] -eq 'Forward' -and ($OverflowActionCallPriority -lt 0 -or $OverflowActionCallPriority -gt 5)) { - throw "Invalid `OverflowActionCallPriority` value. The valid values are 1 to 5 (default is 3). Please provide the correct value." + $null = $params.Remove("Instance") + + if ($ConcurrentInvitationCount -eq 0){ + $null = $params.Remove("ConcurrentInvitationCount") + $params.Add('ConcurrentInvitationCount', 1) + } elseif ($ConcurrentInvitationCount -ne $null){ + # Validate the value of ConcurrentInvitationCount + if ($ConcurrentInvitationCount -lt 1 -or $ConcurrentInvitationCount -gt 2) { + Write-Error "The value of ConcurrentInvitationCount must be 1 or 2." + throw + } + $null = $params.Remove("ConcurrentInvitationCount") + $params.Add('ConcurrentInvitationCount', $ConcurrentInvitationCount) + } + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsComplianceRecordingForCallQueueTemplate @params @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null } - elseif ($PSBoundParameters["OverflowAction"] -ne 'Forward' -and ([Math]::Abs($OverflowActionCallPriority) -ge 1)) { - throw "OverflowActionCallPriority is only applicable when the 'OverflowAction' is 'Forward'. Please remove the OverflowActionCallPriority." + + $output = [Microsoft.Rtc.Management.Hosted.Online.Models.ComplianceRecordingForCallQueue]::new() + $output.ParseFromUpdateResponse($result) + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: transforming the results to the custom objects + +function Set-CsMainlineAttendantAppointmentBookingFlow { + [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] + param( + [Parameter(Mandatory=$true, position=0)] + [PSObject] + # The Instance parameter is the object reference to the mainline attendant appointment booking flow to be modified. + ${Instance}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process{ + try { + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) } - elseif (!$PSBoundParameters.ContainsKey('OverflowActionCallPriority') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.OverflowActionCallPriority)) { - if ($PSBoundParameters["OverflowAction"] -eq 'Forward' -and $PSBoundParameters["OverflowActionTarget"] -eq $existingCallQueue.OverflowActionTarget.Id -and $existingCallQueue.OverflowActionCallPriority -ge 1) { - $PSBoundParameters.Add('OverflowActionCallPriority', $existingCallQueue.OverflowActionCallPriority) + + try { + # Check if ApiDefinitions is a JSON file path + if (![string]::IsNullOrWhiteSpace($Instance.ApiDefinitions) -and $Instance.ApiDefinitions -match '\.json$') + { + # Read the JSON file into a PowerShell object + $ApiDefinitionsJsonObject = Get-Content -Path $Instance.ApiDefinitions | ConvertFrom-Json + + # Convert the PowerShell object back into a JSON string + $Instance.ApiDefinitions = $ApiDefinitionsJsonObject | ConvertTo-Json -Depth 10 + + $Instance.ApiDefinitions } + } catch { + throw "Failed to read API Definitions file: $_" } - if ($PSBoundParameters["TimeoutAction"] -eq 'Forward' -and ($TimeoutActionCallPriority -lt 0 -or $TimeoutActionCallPriority -gt 5)) { - throw "Invalid `TimeoutActionCallPriority` value. The valid values are 1 to 5 (default is 3). Please provide the correct value." + $params = @{ + Name = ${Instance}.Name + Identity = ${Instance}.Identity + Type = ${Instance}.Type + ConfigurationId = ${Instance}.ConfigurationId + Description = ${Instance}.Description + CallerAuthenticationMethod = ${Instance}.CallerAuthenticationMethod + ApiAuthenticationType = ${Instance}.ApiAuthenticationType + ApiDefinitions = ${Instance}.ApiDefinitions } - elseif ($PSBoundParameters["TimeoutAction"] -ne 'Forward' -and ([Math]::Abs($TimeoutActionCallPriority) -ge 1)) { - throw "TimeoutActionCallPriority is only applicable when the 'TimeoutAction' is 'Forward'. Please remove the TimeoutActionCallPriority." + + # Get common parameters + $PSBoundCommonParameters = @{} + foreach($p in $PSBoundParameters.GetEnumerator()) + { + $params += @{$p.Key = $p.Value} } - elseif (!$PSBoundParameters.ContainsKey('TimeoutActionCallPriority') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.TimeoutActionCallPriority)) { - if ($PSBoundParameters["TimeoutAction"] -eq 'Forward' -and $PSBoundParameters["TimeoutActionTarget"] -eq $existingCallQueue.TimeoutActionTarget.Id -and $existingCallQueue.TimeoutActionCallPriority -ge 1) { - $PSBoundParameters.Add('TimeoutActionCallPriority', $existingCallQueue.TimeoutActionCallPriority) - } + + $null = $params.Remove("Instance") + + # Ensure Identity is not null or empty + if ([string]::IsNullOrWhiteSpace($params['Identity'])) { + throw "Identity parameter cannot be null or empty." + } + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsMainlineAttendantAppointmentBookingFlow @params @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null } - if ($PSBoundParameters["NoAgentAction"] -eq 'Forward' -and ($NoAgentActionCallPriority -lt 0 -or $NoAgentActionCallPriority -gt 5)) { - throw "Invalid `NoAgentActionCallPriority` value. The valid values are 1 to 5 (default is 3). Please provide the correct value." - } - elseif ($PSBoundParameters["NoAgentAction"] -ne 'Forward' -and ([Math]::Abs($NoAgentActionCallPriority) -ge 1)) { - throw "NoAgentActionCallPriority is only applicable when the 'NoAgentAction' is 'Forward'. Please remove the NoAgentActionCallPriority." - } - elseif (!$PSBoundParameters.ContainsKey('NoAgentActionCallPriority') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentActionCallPriority)) { - if ($PSBoundParameters["NoAgentAction"] -eq 'Forward' -and $PSBoundParameters["NoAgentActionTarget"] -eq $existingCallQueue.NoAgentActionTarget.Id -and $existingCallQueue.NoAgentActionCallPriority -ge 1) { - $PSBoundParameters.Add('NoAgentActionCallPriority', $existingCallQueue.NoAgentActionCallPriority) - } - } + $output = [Microsoft.Rtc.Management.Hosted.Online.Models.MainlineAttendantAppointmentBookingFlow]::new() + $output.ParseFromUpdateResponse($result) + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: transforming the results to the custom objects - if (!$PSBoundParameters.ContainsKey('IsCallbackEnabled') -and $null -ne $existingCallQueue.IsCallbackEnabled) { - $PSBoundParameters.Add('IsCallbackEnabled', $existingCallQueue.IsCallbackEnabled) - } - elseif ($PSBoundParameters.ContainsKey('IsCallbackEnabled') -and $IsCallbackEnabled -eq $null) { - $null = $PSBoundParameters.Remove('IsCallbackEnabled') - } +function Set-CsMainlineAttendantQuestionAnswerFlow { + [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] + param( + [Parameter(Mandatory=$true, position=0)] + [PSObject] + # The Instance parameter is the object reference to the mainline attendant question answer flow to be modified. + ${Instance}, - if (!$PSBoundParameters.ContainsKey('CallbackRequestDtmf') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.CallbackRequestDtmf)) { - $PSBoundParameters.Add('CallbackRequestDtmf', $existingCallQueue.CallbackRequestDtmf) - } - elseif ($PSBoundParameters.ContainsKey('CallbackRequestDtmf') -and [string]::IsNullOrWhiteSpace($CallbackRequestDtmf)) { - $null = $PSBoundParameters.Remove('CallbackRequestDtmf') - } + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) - if (!$PSBoundParameters.ContainsKey('WaitTimeBeforeOfferingCallbackInSecond') -and $null -ne $existingCallQueue.WaitTimeBeforeOfferingCallbackInSecond) { - $PSBoundParameters.Add('WaitTimeBeforeOfferingCallbackInSecond', $existingCallQueue.WaitTimeBeforeOfferingCallbackInSecond) - } - elseif ($PSBoundParameters.ContainsKey('WaitTimeBeforeOfferingCallbackInSecond') -and $WaitTimeBeforeOfferingCallbackInSecond -eq $null) { - $null = $PSBoundParameters.Remove('WaitTimeBeforeOfferingCallbackInSecond') - } + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } - if (!$PSBoundParameters.ContainsKey('NumberOfCallsInQueueBeforeOfferingCallback') -and $null -ne $existingCallQueue.NumberOfCallsInQueueBeforeOfferingCallback) { - $PSBoundParameters.Add('NumberOfCallsInQueueBeforeOfferingCallback', $existingCallQueue.NumberOfCallsInQueueBeforeOfferingCallback) - } - elseif ($PSBoundParameters.ContainsKey('NumberOfCallsInQueueBeforeOfferingCallback') -and $NumberOfCallsInQueueBeforeOfferingCallback -eq $null) { - $null = $PSBoundParameters.Remove('NumberOfCallsInQueueBeforeOfferingCallback') - } + process{ + try { + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() - if (!$PSBoundParameters.ContainsKey('CallToAgentRatioThresholdBeforeOfferingCallback') -and $null -ne $existingCallQueue.CallToAgentRatioThresholdBeforeOfferingCallback) { - $PSBoundParameters.Add('CallToAgentRatioThresholdBeforeOfferingCallback', $existingCallQueue.CallToAgentRatioThresholdBeforeOfferingCallback) - } - elseif ($PSBoundParameters.ContainsKey('CallToAgentRatioThresholdBeforeOfferingCallback') -and $CallToAgentRatioThresholdBeforeOfferingCallback -eq $null) { - $null = $PSBoundParameters.Remove('CallToAgentRatioThresholdBeforeOfferingCallback') + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) } - if (!$PSBoundParameters.ContainsKey('CallbackOfferAudioFilePromptResourceId') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.CallbackOfferAudioFilePromptResourceId)) { - $PSBoundParameters.Add('CallbackOfferAudioFilePromptResourceId', $existingCallQueue.CallbackOfferAudioFilePromptResourceId) - } - elseif ($PSBoundParameters.ContainsKey('CallbackOfferAudioFilePromptResourceId') -and [string]::IsNullOrWhiteSpace($CallbackOfferAudioFilePromptResourceId)) { - $null = $PSBoundParameters.Remove('CallbackOfferAudioFilePromptResourceId') - } + try + { + # Check if KnowledgeBase is a JSON file path + if (![string]::IsNullOrWhiteSpace($Instance.KnowledgeBase) -and $Instance.KnowledgeBase -match '\.json$') + { + # Read the JSON file into a PowerShell object + $KnowledgeBaseJsonObject = Get-Content -Path $Instance.KnowledgeBase | ConvertFrom-Json - if (!$PSBoundParameters.ContainsKey('CallbackOfferTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.CallbackOfferTextToSpeechPrompt)) { - $PSBoundParameters.Add('CallbackOfferTextToSpeechPrompt', $existingCallQueue.CallbackOfferTextToSpeechPrompt) - } - elseif ($PSBoundParameters.ContainsKey('CallbackOfferTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($CallbackOfferTextToSpeechPrompt)) { - $null = $PSBoundParameters.Remove('CallbackOfferTextToSpeechPrompt') - } + # Convert the PowerShell object back into a JSON string + $KnowledgeBaseJsonString = $KnowledgeBaseJsonObject | ConvertTo-Json -Depth 10 + + # Create an instance of MainlineAttendantQuestionAnswerFlow to get the local file content + $mainlineAttendantQuestionAnswerFlow = [Microsoft.Rtc.Management.Hosted.Online.Models.MainlineAttendantQuestionAnswerFlow]::new() + $Instance.KnowledgeBase = $mainlineAttendantQuestionAnswerFlow.ReadKnowledgeBaseContent($KnowledgeBaseJsonString, "local_file") - if (!$PSBoundParameters.ContainsKey('CallbackEmailNotificationTarget') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.CallbackEmailNotificationTargetId)) { - $PSBoundParameters.Add('CallbackEmailNotificationTarget', $existingCallQueue.CallbackEmailNotificationTargetId) + $Instance.KnowledgeBase + } + } catch { + throw "Failed to read KnowledgeBase file: $_" } - elseif ($PSBoundParameters.ContainsKey('CallbackEmailNotificationTarget') -and [string]::IsNullOrWhiteSpace($CallbackEmailNotificationTarget)) { - $null = $PSBoundParameters.Remove('CallbackEmailNotificationTarget') + + + $params = @{ + Name = ${Instance}.Name + Identity = ${Instance}.Identity + Type = ${Instance}.Type + ConfigurationId = ${Instance}.ConfigurationId + Description = ${Instance}.Description + ApiAuthenticationType = ${Instance}.ApiAuthenticationType + KnowledgeBase = ${Instance}.KnowledgeBase } - if ($PSBoundParameters.ContainsKey('ServiceLevelThresholdResponseTimeInSecond') -and $ServiceLevelThresholdResponseTimeInSecond -eq $null) { - $null = $PSBoundParameters.Remove('ServiceLevelThresholdResponseTimeInSecond') + # Get common parameters + $PSBoundCommonParameters = @{} + foreach($p in $PSBoundParameters.GetEnumerator()) + { + $params += @{$p.Key = $p.Value} } - # Update the CallQueue. - $updateResult = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsCallQueue @PSBoundParameters @httpPipelineArgs - # The response of the Update API is only the list of `Diagnostics` which can be directly used in - # the following method instead of accessing the `Diagnostic` like we do for other CMDLets. - Write-AdminServiceDiagnostic($updateResult) + # Remove Instance from params as it is not a valid parameter for the internal cmdlet + $null = $params.Remove("Instance") - # Unfortunately, CallQueue PUT API does not return a CallQueue DTO model. We need to GET the CallQueue again - # to print the updated model. - $getResult = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsCallQueue @getParams @httpPipelineArgs + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsMainlineAttendantQuestionAnswerFlow @params @httpPipelineArgs - $updatedCallQueue = [Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue]::new() - $updatedCallQueue.ParseFrom($getResult.CallQueue) + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null + } + + $output = [Microsoft.Rtc.Management.Hosted.Online.Models.MainlineAttendantQuestionAnswerFlow]::new() + $output.ParseFromUpdateResponse($result) } catch { - $customCmdletUtils.SendTelemetry() + $customCmdletUtils.SendTelemetry() throw } } @@ -10636,6 +12892,179 @@ function Set-CsOnlineVoicemailUserSettings { # limitations under the License. # ---------------------------------------------------------------------------------- +# Objective of this custom file: transforming the results to the custom objects + +function Set-CsSharedCallQueueHistoryTemplate { + [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] + param( + [Parameter(Mandatory=$true, position=0)] + [PSObject] + # The Instance parameter is the object reference to the shared call queue history template to be modified. + ${Instance}, + + [Parameter(Mandatory=$false, position=1)] + [Switch] + # The Force parameter indicates if we force the action to be performed. (Deprecated) + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process{ + try { + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + if ($PSBoundParameters.ContainsKey("Force")) { + $PSBoundParameters.Remove("Force") | Out-Null + } + + $params = @{ + Name = ${Instance}.Name + Identity = ${Instance}.Id + Description = ${Instance}.Description + IncomingMissedCalls = ${Instance}.IncomingMissedCalls + AnsweredAndOutboundCalls = ${Instance}.AnsweredAndOutboundCalls + } + + # Get common parameters + $PSBoundCommonParameters = @{} + foreach($p in $PSBoundParameters.GetEnumerator()) + { + $params += @{$p.Key = $p.Value} + } + + $null = $params.Remove("Instance") + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsSharedCallQueueHistoryTemplate @params @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null + } + + $output = [Microsoft.Rtc.Management.Hosted.Online.Models.SharedCallQueueHistory]::new() + $output.ParseFromUpdateResponse($result) + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: transforming the results to the custom objects + +function Set-CsTagsTemplate { + [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] + param( + [Parameter(Mandatory=$true, position=0)] + [PSObject] + # The Instance parameter is the object reference to the Tags template to be modified. + ${Instance}, + + [Parameter(Mandatory=$false, position=1)] + [Switch] + # The Force parameter indicates if we force the action to be performed. (Deprecated) + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process{ + try { + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + if ($PSBoundParameters.ContainsKey("Force")) { + $PSBoundParameters.Remove("Force") | Out-Null + } + + $params = @{ + Name = ${Instance}.Name + Identity = ${Instance}.Id + Description = ${Instance}.Description + Tag = ${Instance}.Tags.MapToAutoGeneratedModel() + } + + # Get common parameters + $PSBoundCommonParameters = @{} + foreach($p in $PSBoundParameters.GetEnumerator()) + { + $params += @{$p.Key = $p.Value} + } + + $null = $params.Remove("Instance") + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsTagsTemplate @params @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null + } + + $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.IvrTagsTemplate]::new() + $output.MapFromUpdateResponseModel($result) + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + # Objective of this custom file: Format output of the cmdlet function Update-CsAutoAttendant { @@ -10864,219 +13293,220 @@ function EncodeSipUri { } # SIG # Begin signature block -# MIIoRgYJKoZIhvcNAQcCoIIoNzCCKDMCAQExDzANBglghkgBZQMEAgEFADB5Bgor +# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCMRjFgU+5wqso2 -# iq1J4mbdzym1zu9G9rhjm8RchfuAmKCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBIzgYBO9cwSOta +# qQrIdA0xrme0aWPoNiYVqVkWCcHICqCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw # CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u # ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIFcE8NAonzJi7FSaEtbRqqtS -# B9su7xnW865wFFMYxcR0MEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAHQfUGD0wjj4mRRqrHN2SkFN9pHfUmG7JyGhN1peXHkd6W7ySAZYRbCf2 -# zGhr1J7koqMd/JHJUpaqcg9dDgHJsR0jQm62oCfi3IsWESBK/iArz2qNd7Lb9Nma -# k9HVugjF2Bmpoi2U3XUSTPMoay5EoCPIuBFxs9XS/Wm61U3xjzMy9cO6YDf0eBG8 -# +MPwIyM2CRMqLb3aNkMxpEVvgwH1Iv6Pw5s0ydsmBmH1l4Vx5Hq6PF8dDLCnogRU -# DpsIHQr6Qd6TYVTLOfhzUb2K2XiXgvvEs5Kg2AnHUqELpAThzyvWhuF7ZBZvEkWn -# u70CBL6lwiQK3Te64cB+ZllHcWrBpKGCF7AwghesBgorBgEEAYI3AwMBMYIXnDCC -# F5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsq -# hkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCDiKVWQINnn6+7jqVrxImzYpI375tKmbQraKndVE30CUgIGZ7YtpKox -# GBMyMDI1MDMxMzA4NDcyNS40ODVaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# TjozMjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+KOhJgwMQEj+AAEAAAH4MA0G -# CSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI0 -# MDcyNTE4MzEwOFoXDTI1MTAyMjE4MzEwOFowgdMxCzAJBgNVBAYTAlVTMRMwEQYD +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIKmd +# xEWoMIxGMuEh4n+NAdj3ygcr0yIeOfH7II1XDdz3MEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEAOkj3Fv6/lJRxFrebhPdNguYFyVKcPKznWejf +# 7D5v4ep1gHvLixSXiPzUAuMfW8zLN6H1V5jIRU8Uel4h7A51hMFSKRYg5MguQCk6 +# MXjo7EK8UunG6Ya+n1o0CJZzM8rJqtv1Jz7s1EK1+icFHeR6lteCpgbRrQhxx46E +# AFOCIFXgFeDFlfSVJup90mYf3mAJx4a0A0Sl8930RIGAOGoMaAYndY+2zpyUGni+ +# uJvj3D+uHZkHDrYHV/4uLXBsqY0q3tRqfOkg1xPnwxEjkUva4RUUmPr6HEf7Z+i6 +# gmn9b+cGLEMqYdzcU1c+ZF2nq317Z2hUSM1fY6/cxzJRF7UfuqGCF7AwghesBgor +# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCC/NqTy9keF2NwFAu5InBPDQccwjm84junW +# ayO+WaiieQIGaKSChGLFGBMyMDI1MTAwMTA4MzMxMS42NzRaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo1MjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAACAAvX +# qn8bKhdWAAEAAAIAMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9w -# ZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjMyMUEt -# MDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxR23pXYnD2BuODdeXs2C -# u/T5kKI+bAw8cbtN50Cm/FArjXyL4RTqMe6laQ/CqeMTxgckvZr1JrW0Mi4F15rx -# /VveGhKBmob45DmOcV5xyx7h9Tk59NAl5PNMAWKAIWf270SWAAWxQbpVIhhPWCnV -# V3otVvahEad8pMmoSXrT5Z7Nk1RnB70A2bq9Hk8wIeC3vBuxEX2E8X50IgAHsyaR -# 9roFq3ErzUEHlS8YnSq33ui5uBcrFOcFOCZILuVFVTgEqSrX4UiX0etqi7jUtKyp -# gIflaZcV5cI5XI/eCxY8wDNmBprhYMNlYxdmQ9aLRDcTKWtddWpnJtyl5e3gHuYo -# j8xuDQ0XZNy7ESRwJIK03+rTZqfaYyM4XSK1s0aa+mO69vo/NmJ4R/f1+KucBPJ4 -# yUdbqJWM3xMvBwLYycvigI/WK4kgPog0UBNczaQwDVXpcU+TMcOvWP8HBWmWJQIm -# TZInAFivXqUaBbo3wAfPNbsQpvNNGu/12pg0F8O/CdRfgPHfOhIWQ0D8ALCY+Lsi -# wbzcejbrVl4N9fn2wOg2sDa8RfNoD614I0pFjy/lq1NsBo9V4GZBikzX7ZjWCRgd -# 1FCBXGpfpDikHjQ05YOkAakdWDT2bGSaUZJGVYtepIpPTAs1gd/vUogcdiL51o7s -# huHIlB6QSUiQ24XYhRbbQCECAwEAAaOCAUkwggFFMB0GA1UdDgQWBBS9zsZzz57Q -# lT5nrt/oitLv1OQ7tjAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBf -# BgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmww -# bAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29m -# dC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0El -# MjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUF -# BwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEAYfk8GzzpEVnG -# l7y6oXoytCb42Hx6TOA0+dkaBI36ftDE9tLubUa/xMbHB5rcNiRhFHZ93RefdPpc -# 4+FF0DAl5lP8xKAO+293RWPKDFOFIxgtZY08t8D9cSQpgGUzyw3lETZebNLEA17A -# /CTpA2F9uh8j84KygeEbj+bidWDiEfayoH2A5/5ywJJxIuLzFVHacvWxSCKoF9hl -# SrZSG5fXWS3namf4tt690UT6AGyWLFWe895coFPxm/m0UIMjjp9VRFH7nb3Ng2Q4 -# gPS9E5ZTMZ6nAlmUicDj0NXAs2wQuQrnYnbRAJ/DQW35qLo7Daw9AsItqjFhbMcG -# 68gDc4j74L2KYe/2goBHLwzSn5UDftS1HZI0ZRsqmNHI0TZvvUWX9ajm6SfLBTEt -# oTo6gLOX0UD/9rrhGjdkiCw4SwU5osClgqgiNMK5ndk2gxFlDXHCyLp5qB6BoPpc -# 82RhO0yCzoP9gv7zv2EocAWEsqE5+0Wmu5uarmfvcziLfU1SY240OZW8ld4sS8fn -# ybn/jDMmFAhazV1zH0QERWEsfLSpwkOXaImWNFJ5lmcnf1VTm6cmfasScYtElpjq -# Z9GooCmk1XFApORPs/PO43IcFmPRwagt00iQSw+rBeIH00KQq+FJT/62SB70g9g/ -# R8TS6k6b/wt2UWhqrW+Q8lw6Xzgex/YwggdxMIIFWaADAgECAhMzAAAAFcXna54C -# m0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp -# Y2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMy -# MjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0B -# AQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51 -# yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY -# 6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9 -# cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN -# 7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDua -# Rr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74 -# kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2 -# K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5 -# TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZk -# i1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9Q -# BXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3Pmri -# Lq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUC -# BBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJl -# pxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIB -# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9y -# eS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUA -# YgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU -# 1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2Ny -# bC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIw -# MTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0w -# Ni0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/yp -# b+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulm -# ZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM -# 9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECW -# OKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4 -# FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3Uw -# xTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPX -# fx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVX -# VAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGC -# onsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU -# 5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEG -# ahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# TjozMjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUAtkQt/ebWSQ5DnG+aKRzPELCFE9GggYMw -# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsF -# AAIFAOt9ApcwIhgPMjAyNTAzMTMwNzA3MDNaGA8yMDI1MDMxNDA3MDcwM1owdzA9 -# BgorBgEEAYRZCgQBMS8wLTAKAgUA630ClwIBADAKAgEAAgIp7gIB/zAHAgEAAgIT -# dTAKAgUA635UFwIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAow -# CAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQBvtg0M97u7 -# zlJ/fod300aGsHMvJTkYMNOH8GNES9ZiyhKXyiV4zfZNUMSmhw5b21CvFCpvNiGV -# cf22INKJzNwIVROBVKXCnRIztAdoSQ1SqyGWtVpabJk9I+yVfTARmHEWga6fxo1e -# +AyoIR1RegopIgnmjiLwQTlVB5+Jv8r/5HlhXm7cKHNaWLd5jcMc36svwhCSTzn+ -# BxVpeO++f9eeFZ8sfDUKN1WZpWNiVxh3cR/i78Zo1Rb96uE/+K25/g3nNiLLEZhG -# 8ccvOwMvi3SCq+xpoATPfDvs+u0crsA/W3rA/dDZoCihdn55BSAJAds68HPsdhOL -# mGXU7IErnpxKMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB -# IDIwMTACEzMAAAH4o6EmDAxASP4AAQAAAfgwDQYJYIZIAWUDBAIBBQCgggFKMBoG -# CSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgmnx6dtt0 -# w/z2upgP1NhGnNpf53Nm0HTIyBPaA6O6W/8wgfoGCyqGSIb3DQEJEAIvMYHqMIHn -# MIHkMIG9BCDvzDPyXw1UkAUFYt8bR4UdjM90Qv5xnVaiKD3I0Zz3WjCBmDCBgKR+ -# MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS -# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMT -# HU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB+KOhJgwMQEj+AAEA -# AAH4MCIEILA7B0spaWImsNB6lUb3bk5lRWO6HcKWYG4LTHY5kFDoMA0GCSqGSIb3 -# DQEBCwUABIICAD2b7kZrlyILRugvAtEQ/EQyjSv57tsVJp/IXP61LqmuqP6eX3Or -# ENeQl60YayM2pqjYegN43oMyRv83EiMnU23HKvnSP553YvxMJVmRyhUmfyKUxhfC -# GIIm2spb/7cq3Vs/O5NInXYj4dd/Obd3qLcp/kDqbF1wnAG8EyhMn+W/Dd22hQmw -# qH+lsCiCi8vR2Vgqf+MnXkVeBp2YuXBx/l86aDogzjzpPQx/Euguzhe3IR7U8+7A -# eEKRwJRXEKxNlipwkpojBX/AlVTZnrdPsboWK9FhR2WFpUYIPVup3zRVvEBLc3l0 -# kiLOt0NUa2cGKmqLh4BEjhnlvx7nJQe7otNbB97xoqm1zYf0NpWVwYxUORPpvlZL -# ILURBeeM9j+31Zpaez7ukmxKPm0rcoA50rbg4Aw3Go1hJWR7QSjY6kYwSf63af7T -# 8ASSERmFmR4VbeXg7j9cUjbkEpasMd7LWXGP/KWKVYq2jY5KXRzwn3Xau50LqxgQ -# iIpsH8N7zQI/sxFxzeOudC9BmMr8yCjezadRCMLZyW6BHZoxiFozoM7nnyfQgYGf -# gwLaxwcoEexqIX7UblXC6jiqa7V8XsXcsxH/RBpmoAFwkNXmejzTOs4O35jPXpUe -# Lgva5Srgi70ERTwoVr9cqNJ8qvKIlWQWe5BgPxi0kaDGMojJuiHOyqY1 +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzEyMVoXDTI1MTAyMjE4MzEyMVowgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjUyMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# r1XaadKkP2TkunoTF573/tF7KJM9Doiv3ccv26mqnUhmv2DM59ikET4WnRfo5biF +# IHc6LqrIeqCgT9fT/Gks5VKO90ZQW2avh/PMHnl0kZfX/I5zdVooXHbdUUkPiZfN +# XszWswmL9UlWo8mzyv9Lp9TAtw/oXOYTAxdYSqOB5Uzz1Q3A8uCpNlumQNDJGDY6 +# cSn0MlYukXklArChq6l+KYrl6r/WnOqXSknABpggSsJ33oL3onmDiN9YUApZwjnN +# h9M6kDaneSz78/YtD/2pGpx9/LXELoazEUFxhyg4KdmoWGNYwdR7/id81geOER69 +# l5dJv71S/mH+Lxb6L692n8uEmAVw6fVvE+c8wjgYZblZCNPAynCnDduRLdk1jswC +# qjqNc3X/WIzA7GGs4HUS4YIrAUx8H2A94vDNiA8AWa7Z/HSwTCyIgeVbldXYM2Bt +# xMKq3kneRoT27NQ7Y7n8ZTaAje7Blfju83spGP/QWYNZ1wYzYVGRyOpdA8Wmxq5V +# 8f5r4HaG9zPcykOyJpRZy+V3RGighFmsCJXAcMziO76HinwCIjImnCFKGJ/IbLjH +# 6J7fJXqRPbg+H6rYLZ8XBpmXBFH4PTakZVYxB/P+EQbL5LNw0ZIM+eufxCljV4O+ +# nHkM+zgSx8+07BVZPBKslooebsmhIcBO0779kehciYMCAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBSAJSTavgkjKqge5xQOXn35fXd3OjAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAKPCG9njRtIqQ+fuECgxzWMsQOI3HvW7sV9PmEWCCOWlTuGCIzNi3ibdL +# ZS0b2IDHg0yLrtdVuBi3FxVdesIXuzYyofIe/alTBdV4DhijLTXtB7NgOno7G12i +# O3t6jy1hPSquzGLry/2mEZBwIsSoS2D+H+3HCJxPDyhzMFqP+plltPACB/QNwZ7q +# +HGyZv3v8et+rQYg8sF3PTuWeDg3dR/zk1NawJ/dfFCDYlWNeCBCLvNPQBceMYXF +# RFKhcSUws7mFdIDDhZpxqyIKD2WDwFyNIGEezn+nd4kXRupeNEx+eSpJXylRD+1d +# 45hb6PzOIF7BkcPtRtFW2wXgkjLqtTWWlBkvzl2uNfYJ3CPZVaDyMDaaXgO+H6Di +# rsJ4IG9ikId941+mWDejkj5aYn9QN6ROfo/HNHg1timwpFoUivqAFu6irWZFw5V+ +# yLr8FLc7nbMa2lFSixzu96zdnDsPImz0c6StbYyhKSlM3uDRi9UWydSKqnEbtJ6M +# k+YuxvzprkuWQJYWfpPvug+wTnioykVwc0yRVcsd4xMznnnRtZDGMSUEl9tMVneb +# YRshwZIyJTsBgLZmHM7q2TFK/X9944SkIqyY22AcuLe0GqoNfASCIcZtzbZ/zP4l +# T2/N0pDbn2ffAzjZkhI+Qrqr983mQZWwZdr3Tk1MYElDThz2D0MwggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo1MjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAjJOfLZb3ivip +# L3sSLlWFbLrWjmSggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyHBJ4wIhgPMjAyNTEwMDEwMTM4MzhaGA8yMDI1 +# MTAwMjAxMzgzOFowdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA7IcEngIBADAKAgEA +# AgIGlwIB/zAHAgEAAgIScjAKAgUA7IhWHgIBADA2BgorBgEEAYRZCgQCMSgwJjAM +# BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB +# CwUAA4IBAQAdaXY8v9U/NzKV16+VoFilpCMuEVCWleGhL3ffLhOEHkg2VAop6cmg +# fPYJ646YmB7Iy3irtfHqdSfqUWZposIvzZ1NJoBPbnfN24VZV1Z6Xcf+qkS3Jksg +# yAFJ6GmZ7rpAnsSlJtFg5zmB+isPjhxaMff15FBCenjxxy2mW11CU8XecTgoT1PP +# WK5Mi5A6XOW3A8Gt4/HFr/cdobC9TSyM/FRWoUlzJN+ApghTP8PUwVLw1LI5agH0 +# /0jkpDNJg49gtTYaWf+FZFFKpebRA1yoDYogeKEiQ3G3f7SyMM3WxlwA7vn/jQg3 +# MzyhDF8/UjPjoTJ2p8dYcMQQHsYXDbbaMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE +# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc +# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 +# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAIAC9eqfxsqF1YAAQAAAgAwDQYJYIZI +# AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG +# 9w0BCQQxIgQgnBOmXy5RwewKsCbYCAAA7JHmJhq6Tx+ZQAOmNbi45nEwgfoGCyqG +# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCDUyO3sNZ3burBNDGUCV4NfM2gH4aWuRudI +# k/9KAk/ZJzCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n +# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y +# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz +# AAACAAvXqn8bKhdWAAEAAAIAMCIEIKe6vgAD9J4jknLccJMNceGpt3UdZjDsFHHU +# ESpVUeFoMA0GCSqGSIb3DQEBCwUABIICAHH5RJtZ+KxoyyXyYGjqUIFWoP8t40eP +# LCMomsaJOw+NzGo8fO+eb1rb4/yonAQlys6dClS6Ass9sAnxXfmvTOY36nrAQnDp +# rhAMFdo5uE+J0v99VAo/NAiCp4lM7qSsOKhPMmvd4j0k4/X1oyKF7I/5Vj+5xVa0 +# uFLC7LUrrYwmaL0hdaDODe28qUf0k1C4se9s6WbZGbSSPcTHdhF3x35Puug8hSOB +# roY2iErahiHdtkd0XgI4DD/8FZsvX3Zyo61b2Nh1XxAVQmhNzsUGO6OZURhOSaO7 +# O/kOFHAoaIve2ulRo+x/w0DnLO8H79uE/HVC9p0JIjt+zpbk2ttC06L0RQj+4iwZ +# ZMesDHfL179DlhiPXVbgDEAPe/TKJVpegf4lQSB5QX65WBHkEKsisOiTHvrC0Rfp +# tqHU3ndyQJ/GYLb0RLWAxWzB/E2bxLZiC0K0pdohMNhwN9/D2J8L5hcWRgk5zIhg +# t85SWShRdbSQja2i7Cv8mrM8LeOJ5WC6CLKUX+67FCaWtFobHFUn/0S74G7sU6rd +# KFjdFMxp/pOii77zzzcKByoSZ5AmhZU1UGfi3Kq4+sjOqH/Z8yUNMp2XivC8f+nO +# 1tmpbOUZDXfPrGCgtiVFMgWoP+womi/2xzUH2DvH/2jLGxQn5Go8xuQ3kXeIEkyl +# vXxGnkvctmSI # SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/custom/Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1 b/Modules/MicrosoftTeams/7.4.0/custom/Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1 new file mode 100644 index 000000000000..8d65d2ee6a4e --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/custom/Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1 @@ -0,0 +1,236 @@ +# region Generated + # Load the private module dll + $null = Import-Module -PassThru -Name (Join-Path $PSScriptRoot '..\bin\Microsoft.Teams.ConfigAPI.Cmdlets.private.dll') + + # Load the internal module + $internalModulePath = Join-Path $PSScriptRoot '..\internal\Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1' + if(Test-Path $internalModulePath) { + $null = Import-Module -Name $internalModulePath + } + + # Export nothing to clear implicit exports + Export-ModuleMember + + # Export script cmdlets + Get-ChildItem -Path $PSScriptRoot -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } + Export-ModuleMember -Function (Get-ScriptCmdlet -ScriptFolder $PSScriptRoot) -Alias (Get-ScriptCmdlet -ScriptFolder $PSScriptRoot -AsAlias) +# endregion + +# SIG # Begin signature block +# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBOycrzQVq6CnNY +# rK5l5Eg2CcKYocwkesaom45CeipKo6CCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIJjw +# tTQPVUIPxEfl/cH44G64tSZU5xH8iTxSrE/PWkOGMEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEAHARwEACGgeo1ixh3JYE5UqAJpnNZy7L99o1/ +# jMDzCitGGDwl8FXAXO0zGJJl4vrJjtnqU0eDmqxPHiG7PoBco+cky3oPK4HTgxxk +# cFWrAm6+0ZmtdLPKZ2NphUZ2v/QNj9Q/XlnPbyKdKpvqXLlmBoxSFiAKh8JemN6c +# f8iTH3mln3xQL6xXN7Wdfzbj3l45AFk4TWLepJKn0F9RxvtW8iHS/8kFZlhwIXHz +# eNxfI9yPfF4Ht+LzLtnherw93yO68ohxPuq6tcKpAf6ilsc3NA0NKrC9nAHLODkx +# mZQ0vR1OYw2Cwy1DmV0MyoJoYKkGZ735C6pl8fy8dx/WlzFWAqGCF7AwghesBgor +# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCAOCQpRRepj6EZa/HAux1KL/0wunCfJBimY +# 3dc7ak5UdQIGaKSChGIoGBMyMDI1MTAwMTA4MzMwNi4zMzJaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo1MjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAACAAvX +# qn8bKhdWAAEAAAIAMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzEyMVoXDTI1MTAyMjE4MzEyMVowgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjUyMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# r1XaadKkP2TkunoTF573/tF7KJM9Doiv3ccv26mqnUhmv2DM59ikET4WnRfo5biF +# IHc6LqrIeqCgT9fT/Gks5VKO90ZQW2avh/PMHnl0kZfX/I5zdVooXHbdUUkPiZfN +# XszWswmL9UlWo8mzyv9Lp9TAtw/oXOYTAxdYSqOB5Uzz1Q3A8uCpNlumQNDJGDY6 +# cSn0MlYukXklArChq6l+KYrl6r/WnOqXSknABpggSsJ33oL3onmDiN9YUApZwjnN +# h9M6kDaneSz78/YtD/2pGpx9/LXELoazEUFxhyg4KdmoWGNYwdR7/id81geOER69 +# l5dJv71S/mH+Lxb6L692n8uEmAVw6fVvE+c8wjgYZblZCNPAynCnDduRLdk1jswC +# qjqNc3X/WIzA7GGs4HUS4YIrAUx8H2A94vDNiA8AWa7Z/HSwTCyIgeVbldXYM2Bt +# xMKq3kneRoT27NQ7Y7n8ZTaAje7Blfju83spGP/QWYNZ1wYzYVGRyOpdA8Wmxq5V +# 8f5r4HaG9zPcykOyJpRZy+V3RGighFmsCJXAcMziO76HinwCIjImnCFKGJ/IbLjH +# 6J7fJXqRPbg+H6rYLZ8XBpmXBFH4PTakZVYxB/P+EQbL5LNw0ZIM+eufxCljV4O+ +# nHkM+zgSx8+07BVZPBKslooebsmhIcBO0779kehciYMCAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBSAJSTavgkjKqge5xQOXn35fXd3OjAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAKPCG9njRtIqQ+fuECgxzWMsQOI3HvW7sV9PmEWCCOWlTuGCIzNi3ibdL +# ZS0b2IDHg0yLrtdVuBi3FxVdesIXuzYyofIe/alTBdV4DhijLTXtB7NgOno7G12i +# O3t6jy1hPSquzGLry/2mEZBwIsSoS2D+H+3HCJxPDyhzMFqP+plltPACB/QNwZ7q +# +HGyZv3v8et+rQYg8sF3PTuWeDg3dR/zk1NawJ/dfFCDYlWNeCBCLvNPQBceMYXF +# RFKhcSUws7mFdIDDhZpxqyIKD2WDwFyNIGEezn+nd4kXRupeNEx+eSpJXylRD+1d +# 45hb6PzOIF7BkcPtRtFW2wXgkjLqtTWWlBkvzl2uNfYJ3CPZVaDyMDaaXgO+H6Di +# rsJ4IG9ikId941+mWDejkj5aYn9QN6ROfo/HNHg1timwpFoUivqAFu6irWZFw5V+ +# yLr8FLc7nbMa2lFSixzu96zdnDsPImz0c6StbYyhKSlM3uDRi9UWydSKqnEbtJ6M +# k+YuxvzprkuWQJYWfpPvug+wTnioykVwc0yRVcsd4xMznnnRtZDGMSUEl9tMVneb +# YRshwZIyJTsBgLZmHM7q2TFK/X9944SkIqyY22AcuLe0GqoNfASCIcZtzbZ/zP4l +# T2/N0pDbn2ffAzjZkhI+Qrqr983mQZWwZdr3Tk1MYElDThz2D0MwggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo1MjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAjJOfLZb3ivip +# L3sSLlWFbLrWjmSggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyHBJ4wIhgPMjAyNTEwMDEwMTM4MzhaGA8yMDI1 +# MTAwMjAxMzgzOFowdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA7IcEngIBADAKAgEA +# AgIGlwIB/zAHAgEAAgIScjAKAgUA7IhWHgIBADA2BgorBgEEAYRZCgQCMSgwJjAM +# BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB +# CwUAA4IBAQAdaXY8v9U/NzKV16+VoFilpCMuEVCWleGhL3ffLhOEHkg2VAop6cmg +# fPYJ646YmB7Iy3irtfHqdSfqUWZposIvzZ1NJoBPbnfN24VZV1Z6Xcf+qkS3Jksg +# yAFJ6GmZ7rpAnsSlJtFg5zmB+isPjhxaMff15FBCenjxxy2mW11CU8XecTgoT1PP +# WK5Mi5A6XOW3A8Gt4/HFr/cdobC9TSyM/FRWoUlzJN+ApghTP8PUwVLw1LI5agH0 +# /0jkpDNJg49gtTYaWf+FZFFKpebRA1yoDYogeKEiQ3G3f7SyMM3WxlwA7vn/jQg3 +# MzyhDF8/UjPjoTJ2p8dYcMQQHsYXDbbaMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE +# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc +# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 +# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAIAC9eqfxsqF1YAAQAAAgAwDQYJYIZI +# AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG +# 9w0BCQQxIgQgKS4xY4F0SFgFVdz5xBuDN5LVksjmExyb9nmnsd+uKIswgfoGCyqG +# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCDUyO3sNZ3burBNDGUCV4NfM2gH4aWuRudI +# k/9KAk/ZJzCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n +# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y +# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz +# AAACAAvXqn8bKhdWAAEAAAIAMCIEIKe6vgAD9J4jknLccJMNceGpt3UdZjDsFHHU +# ESpVUeFoMA0GCSqGSIb3DQEBCwUABIICAHDuZCYheJqhVbanWwhss0S4bbd+sB8j +# xiIT3HgAR+Eo1zQdql56eU8zD4yoYodSYT2FHP8QT2SWKipGjExHjEvlclymGbXc +# a+WBgpw+fr5fIR7dCeSFLqoMgBrRwnCm3UCM6WTQDZuK/+9JYW684mHo/fmoYWfH +# T3W0NJbJgW90nVcA7pKiiHqQwdsIW+E1fYmFtTqvipQEa7TxFGAUToi7nhF0kavU +# XIYnd2ZO7HTHpVXh4koAEZPWMUvtN0wgoOxNSGqjoBvwn8VzouoMygJQck/WgbJO +# eZxf0fvIkuHRxP1zg7PkF61KjKu0cwjLXyI/ijD/85GO5hzpKBV03BEEf40ZTTuB +# avaGL4K0PBvVcP7flMUAjOASaKiNkFJ2w3v+qw6KNfMEdXa2n0wwPndpnRd8cETy +# 3BueO7wFk9/xTsywj/BpTmh+QU0y/3JT36A/tNYjiNZLXr4C39xGnz9o1PHTIjL4 +# vg3gycOOi8a+Z7Sygwyij6tq1BhXpcX3kCMoeEla2+A/yPAZyZ5H2fDVJPAlzJjL +# 6crSkfMfdxDYaLlSaA+bAWKIv//GlNB5JpHP0OS14P3jx64LI5olgCH/8AaMU8Uk +# BVsBrVOL5Nl/BJqh6++jsTH1Jh6B26/BXdBvDHVrHvpsLKNwTl0OMnK00i7ROmT0 +# QGKTj4J3Ehld +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/6.9.0/en-US/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-Help.xml b/Modules/MicrosoftTeams/7.4.0/en-US/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-Help.xml similarity index 91% rename from Modules/MicrosoftTeams/6.9.0/en-US/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-Help.xml rename to Modules/MicrosoftTeams/7.4.0/en-US/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-Help.xml index 604864e4f1ed..9d883dfb0e42 100644 --- a/Modules/MicrosoftTeams/6.9.0/en-US/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-Help.xml +++ b/Modules/MicrosoftTeams/7.4.0/en-US/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-Help.xml @@ -6,16 +6,17 @@ Get CsExternalAccessPolicy - Returns information about the external access policies that have been configured for use in your organization. External access policies determine whether or not your users can: 1) communicate with users who have Session Initiation Protocol (SIP) accounts with a federated organization; 2) communicate with users who are using custom applications built with Azure Communication Services (ACS) (https://learn.microsoft.com/azure/communication-services/concepts/teams-interop); 3) access Skype for Business Server over the Internet, without having to log on to your internal network; and, 4) communicate with users who have SIP accounts with a public instant messaging (IM)provider such as Skype. - This cmdlet was introduced in Lync Server 2010. + Returns information about the external access policies that have been configured for use in your organization. + External access policies determine whether or not your users can: 1) communicate with users who have Session Initiation Protocol (SIP) accounts with a federated organization; 2) communicate with users who are using custom applications built with Azure Communication Services (ACS) (https://learn.microsoft.com/azure/communication-services/concepts/teams-interop); 3) access Skype for Business Server over the Internet, without having to log on to your internal network; and, 4) communicate with users who have SIP accounts with a public instant messaging (IM)provider such as Skype. + This cmdlet was introduced in Lync Server 2010. When you first configure Skype for Business Online your users are only allowed to exchange instant messages and presence information among themselves: by default, they can only communicate with other people who have SIP accounts in your Online organization or in your Active Directory Domain Services for on-premises deployments. For on-premises deployments, users are not allowed to access Skype for Business Server over the Internet; instead, they must be logged on to your internal network before they will be able to log on to Skype for Business Server. That might be sufficient to meet your communication needs. If it doesn't meet your needs, you can use external access policies to extend the ability of your users to communicate and collaborate. External access policies can grant (or revoke) the ability of your users to do any or all of the following: 1. Communicate with people who have SIP accounts with a federated organization. Note that enabling federation alone will not provide users with this capability. Instead, you must enable federation and then assign users an external access policy that gives them the right to communicate with federated users. - 2. (Microsoft Teams only) Communicate with users who are using custom applications built with Azure Communication Services (ACS) (https://learn.microsoft.com/azure/communication-services/concepts/teams-interop). This policy setting only applies if ACS federation has been enabled at the tenant level using the cmdlet [Set-CsTeamsAcsFederationConfiguration](https://learn.microsoft.com/powershell/module/teams/set-csteamsacsfederationconfiguration). + 2. (Microsoft Teams only) Communicate with users who are using custom applications built with Azure Communication Services (ACS) (https://learn.microsoft.com/azure/communication-services/concepts/teams-interop). This policy setting only applies if ACS federation has been enabled at the tenant level using the cmdlet [Set-CsTeamsAcsFederationConfiguration](https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsacsfederationconfiguration). 3. Access Skype for Business Server over the Internet, without having to first log on to your internal network. This enables your users to use Skype for Business and log on to Skype for Business Server from an Internet café or other remote location. 4. Communicate with people who have SIP accounts with a public instant messaging service such as Skype. The Get-CsExternalAccessPolicy cmdlet provides a way for you to return information about all of the external access policies that have been configured for use in your organization. @@ -23,62 +24,73 @@ Get-CsExternalAccessPolicy - - Identity + + ApplicableTo - Unique Identity assigned to the policy when it was created. External access policies can be assigned at the global, site, or per-user scope. To refer to the global instance use this syntax: -Identity global. To refer to a policy at the site scope, use this syntax: -Identity site:Redmond. To refer to a policy at the per-user scope, use syntax similar to this: -Identity RedmondPolicy. - Note that wildcard characters such as the asterisk (*) cannot be used with the Identity parameter. To do a wildcard search for policies, use the Filter parameter instead. - If neither the Identity nor Filter parameters are specified, then the Get-CsExternalAccessPolicy cmdlet will bring back a collection of all the external access policies configured for use in the organization. + > Applicable: Microsoft Teams + Returns a list of the external access policies that can be assigned to the specified user. For example, to return a collection of policies that can be assigned to the user kenmyer@litwareinc.com, use this command: + `Get-CsExternalAccessPolicy -ApplicableTo "kenmyer@litwareinc.com"` + The ApplicableTo parameter is useful because it's possible that only some of the available per-user external access policies can be assigned to a given user. This is due to the fact that different licensing agreements and different country/region restrictions might limit the policies that can be assigned to a user. For example, if Ken Myer works in China, country/region restrictions might limit his access to policies A, B, D, and E, Meanwhile, similar restrictions might limit Pilar Ackerman, who works in the United States, to policies A, B, C, and F. If you call Get-CsExternalAccessPolicy without using the ApplicableTo parameter you will get back a collection of all the available policies, including any policies that can't actually be assigned to a specific user. + The ApplicableTo parameter applies only to Skype for Business Online. This parameter is not intended for use with the on-premises version of Skype for Business Server 2015. - XdsIdentity + UserIdParameter - XdsIdentity + UserIdParameter None - LocalStore + Filter - Retrieves the external access policy data from the local replica of the Central Management store rather than from the Central Management store itself. - NOTE: This parameter is not used with Skype for Business Online. + Below Content Applies To: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015 + Enables you to do a wildcard search for external access policies. For example, to find all the policies configured at the site scope, use this Filter: + `site:*` + To find the per-user policies Seattle, Seville, and Saskatoon (all of which start with the letter "S") use this Filter: + `"S*".` + Note that the Filter parameter can only be applied to the policy Identity. Below Content Applies To: Skype for Business Online + Enables you to do a wildcard search for external access policies. For example, to find all the policies configured at the per-user scope, use this Filter: + `"tag:*"` + To find the per-user policies Seattle, Seville, and Saskatoon (all of which start with the letter "S") use this Filter: + `"tag:S*"` + Note that the Filter parameter can only be applied to the policy Identity. + String - SwitchParameter + String - False + None - ApplicableTo + Include - Returns a list of the external access policies that can be assigned to the specified user. For example, to return a collection of policies that can be assigned to the user kenmyer@litwareinc.com, use this command: - `Get-CsExternalAccessPolicy -ApplicableTo "kenmyer@litwareinc.com"` - The ApplicableTo parameter is useful because it's possible that only some of the available per-user external access policies can be assigned to a given user. This is due to the fact that different licensing agreements and different country/region restrictions might limit the policies that can be assigned to a user. For example, if Ken Myer works in China, country/region restrictions might limit his access to policies A, B, D, and E, Meanwhile, similar restrictions might limit Pilar Ackerman, who works in the United States, to policies A, B, C, and F. If you call Get-CsExternalAccessPolicy without using the ApplicableTo parameter you will get back a collection of all the available policies, including any policies that can't actually be assigned to a specific user. - The ApplicableTo parameter applies only to Skype for Business Online. This parameter is not intended for use with the on-premises version of Skype for Business Server 2015. + > Applicable: Microsoft Teams + PARAMVALUE: Automatic | All | SubscriptionDefaults | TenantDefinedOnly - UserIdParameter + PolicyFilter - UserIdParameter + PolicyFilter None - Include + LocalStore - PARAMVALUE: Automatic | All | SubscriptionDefaults | TenantDefinedOnly + Retrieves the external access policy data from the local replica of the Central Management store rather than from the Central Management store itself. + NOTE: This parameter is not used with Skype for Business Online. - PolicyFilter - PolicyFilter + SwitchParameter - None + False Tenant + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Guid @@ -91,43 +103,24 @@ Get-CsExternalAccessPolicy - - Filter + + Identity - Below Content Applies To: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015 - Enables you to do a wildcard search for external access policies. For example, to find all the policies configured at the site scope, use this Filter: - `site:*` - To find the per-user policies Seattle, Seville, and Saskatoon (all of which start with the letter "S") use this Filter: - `"S*".` - Note that the Filter parameter can only be applied to the policy Identity. Below Content Applies To: Skype for Business Online - Enables you to do a wildcard search for external access policies. For example, to find all the policies configured at the per-user scope, use this Filter: - `"tag:*"` - To find the per-user policies Seattle, Seville, and Saskatoon (all of which start with the letter "S") use this Filter: - `"tag:S*"` - Note that the Filter parameter can only be applied to the policy Identity. + Unique Identity assigned to the policy when it was created. External access policies can be assigned at the global, site, or per-user scope. To refer to the global instance use this syntax: -Identity global. To refer to a policy at the site scope, use this syntax: -Identity site:Redmond. To refer to a policy at the per-user scope, use syntax similar to this: -Identity RedmondPolicy. + Note that wildcard characters such as the asterisk (*) cannot be used with the Identity parameter. To do a wildcard search for policies, use the Filter parameter instead. + If neither the Identity nor Filter parameters are specified, then the Get-CsExternalAccessPolicy cmdlet will bring back a collection of all the external access policies configured for use in the organization. - String + XdsIdentity - String + XdsIdentity None - - LocalStore - - Retrieves the external access policy data from the local replica of the Central Management store rather than from the Central Management store itself. - NOTE: This parameter is not used with Skype for Business Online. - - - SwitchParameter - - - False - ApplicableTo + > Applicable: Microsoft Teams Returns a list of the external access policies that can be assigned to the specified user. For example, to return a collection of policies that can be assigned to the user kenmyer@litwareinc.com, use this command: `Get-CsExternalAccessPolicy -ApplicableTo "kenmyer@litwareinc.com"` The ApplicableTo parameter is useful because it's possible that only some of the available per-user external access policies can be assigned to a given user. This is due to the fact that different licensing agreements and different country/region restrictions might limit the policies that can be assigned to a user. For example, if Ken Myer works in China, country/region restrictions might limit his access to policies A, B, D, and E, Meanwhile, similar restrictions might limit Pilar Ackerman, who works in the United States, to policies A, B, C, and F. If you call Get-CsExternalAccessPolicy without using the ApplicableTo parameter you will get back a collection of all the available policies, including any policies that can't actually be assigned to a specific user. @@ -143,6 +136,7 @@ Include + > Applicable: Microsoft Teams PARAMVALUE: Automatic | All | SubscriptionDefaults | TenantDefinedOnly PolicyFilter @@ -152,9 +146,22 @@ None + + LocalStore + + Retrieves the external access policy data from the local replica of the Central Management store rather than from the Central Management store itself. + NOTE: This parameter is not used with Skype for Business Online. + + + SwitchParameter + + + False + Tenant + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Guid @@ -167,16 +174,18 @@ - - Identity + + ApplicableTo - Unique Identity assigned to the policy when it was created. External access policies can be assigned at the global, site, or per-user scope. To refer to the global instance use this syntax: -Identity global. To refer to a policy at the site scope, use this syntax: -Identity site:Redmond. To refer to a policy at the per-user scope, use syntax similar to this: -Identity RedmondPolicy. - Note that wildcard characters such as the asterisk (*) cannot be used with the Identity parameter. To do a wildcard search for policies, use the Filter parameter instead. - If neither the Identity nor Filter parameters are specified, then the Get-CsExternalAccessPolicy cmdlet will bring back a collection of all the external access policies configured for use in the organization. + > Applicable: Microsoft Teams + Returns a list of the external access policies that can be assigned to the specified user. For example, to return a collection of policies that can be assigned to the user kenmyer@litwareinc.com, use this command: + `Get-CsExternalAccessPolicy -ApplicableTo "kenmyer@litwareinc.com"` + The ApplicableTo parameter is useful because it's possible that only some of the available per-user external access policies can be assigned to a given user. This is due to the fact that different licensing agreements and different country/region restrictions might limit the policies that can be assigned to a user. For example, if Ken Myer works in China, country/region restrictions might limit his access to policies A, B, D, and E, Meanwhile, similar restrictions might limit Pilar Ackerman, who works in the United States, to policies A, B, C, and F. If you call Get-CsExternalAccessPolicy without using the ApplicableTo parameter you will get back a collection of all the available policies, including any policies that can't actually be assigned to a specific user. + The ApplicableTo parameter applies only to Skype for Business Online. This parameter is not intended for use with the on-premises version of Skype for Business Server 2015. - XdsIdentity + UserIdParameter - XdsIdentity + UserIdParameter None @@ -203,49 +212,50 @@ None - - LocalStore + + Identity - Retrieves the external access policy data from the local replica of the Central Management store rather than from the Central Management store itself. - NOTE: This parameter is not used with Skype for Business Online. + Unique Identity assigned to the policy when it was created. External access policies can be assigned at the global, site, or per-user scope. To refer to the global instance use this syntax: -Identity global. To refer to a policy at the site scope, use this syntax: -Identity site:Redmond. To refer to a policy at the per-user scope, use syntax similar to this: -Identity RedmondPolicy. + Note that wildcard characters such as the asterisk (*) cannot be used with the Identity parameter. To do a wildcard search for policies, use the Filter parameter instead. + If neither the Identity nor Filter parameters are specified, then the Get-CsExternalAccessPolicy cmdlet will bring back a collection of all the external access policies configured for use in the organization. - SwitchParameter + XdsIdentity - SwitchParameter + XdsIdentity - False + None - ApplicableTo + Include - Returns a list of the external access policies that can be assigned to the specified user. For example, to return a collection of policies that can be assigned to the user kenmyer@litwareinc.com, use this command: - `Get-CsExternalAccessPolicy -ApplicableTo "kenmyer@litwareinc.com"` - The ApplicableTo parameter is useful because it's possible that only some of the available per-user external access policies can be assigned to a given user. This is due to the fact that different licensing agreements and different country/region restrictions might limit the policies that can be assigned to a user. For example, if Ken Myer works in China, country/region restrictions might limit his access to policies A, B, D, and E, Meanwhile, similar restrictions might limit Pilar Ackerman, who works in the United States, to policies A, B, C, and F. If you call Get-CsExternalAccessPolicy without using the ApplicableTo parameter you will get back a collection of all the available policies, including any policies that can't actually be assigned to a specific user. - The ApplicableTo parameter applies only to Skype for Business Online. This parameter is not intended for use with the on-premises version of Skype for Business Server 2015. + > Applicable: Microsoft Teams + PARAMVALUE: Automatic | All | SubscriptionDefaults | TenantDefinedOnly - UserIdParameter + PolicyFilter - UserIdParameter + PolicyFilter None - Include + LocalStore - PARAMVALUE: Automatic | All | SubscriptionDefaults | TenantDefinedOnly + Retrieves the external access policy data from the local replica of the Central Management store rather than from the Central Management store itself. + NOTE: This parameter is not used with Skype for Business Online. - PolicyFilter + SwitchParameter - PolicyFilter + SwitchParameter - None + False Tenant + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Guid @@ -290,14 +300,14 @@ - -------------------------- EXAMPLE 2 -------------------------- (Skype for Business Online) + ------------ EXAMPLE 2 (Skype for Business Online) ------------ Get-CsExternalAccessPolicy -Identity "tag:RedmondExternalAccessPolicy" Example 2 uses the Identity parameter to return the external access policy that has the Identity tag:RedmondExternalAccessPolicy. Because access policy Identities must be unique, this command will never return more than one item. - -------------------------- EXAMPLE 2 -------------------------- (Skype for Business Server 2015) + ---------- EXAMPLE 2 (Skype for Business Server 2015) ---------- Get-CsExternalAccessPolicy -Identity site:Redmond Example 2 uses the Identity parameter to return the external access policy that has the Identity site:Redmond. Because access policy Identities must be unique, this command will never return more than one item. @@ -337,23 +347,23 @@ Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csexternalaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csexternalaccesspolicy Grant-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csexternalaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csexternalaccesspolicy New-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/teams/new-csexternalaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csexternalaccesspolicy Remove-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csexternalaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csexternalaccesspolicy Set-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/teams/set-csexternalaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csexternalaccesspolicy @@ -375,6 +385,7 @@ Identity + > Applicable: Microsoft Teams A unique identifier specifying the scope, and in some cases the name, of the policy. If this parameter is omitted, all voicemail policies available for use are returned. String @@ -387,6 +398,7 @@ Filter + > Applicable: Microsoft Teams This parameter accepts a wildcard string and returns all voicemail policies with identities matching that string. For example, a Filter value of Tag:* will return all preconfigured voicemail policy instances (excluding forest default "Global") available to use by the tenant admins. String @@ -399,10 +411,11 @@ - - Identity + + Filter - A unique identifier specifying the scope, and in some cases the name, of the policy. If this parameter is omitted, all voicemail policies available for use are returned. + > Applicable: Microsoft Teams + This parameter accepts a wildcard string and returns all voicemail policies with identities matching that string. For example, a Filter value of Tag:* will return all preconfigured voicemail policy instances (excluding forest default "Global") available to use by the tenant admins. String @@ -411,10 +424,11 @@ None - - Filter + + Identity - This parameter accepts a wildcard string and returns all voicemail policies with identities matching that string. For example, a Filter value of Tag:* will return all preconfigured voicemail policy instances (excluding forest default "Global") available to use by the tenant admins. + > Applicable: Microsoft Teams + A unique identifier specifying the scope, and in some cases the name, of the policy. If this parameter is omitted, all voicemail policies available for use are returned. String @@ -475,23 +489,23 @@ Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csonlinevoicemailpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoicemailpolicy Set-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/teams/set-csonlinevoicemailpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailpolicy New-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/teams/new-csonlinevoicemailpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoicemailpolicy Remove-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csonlinevoicemailpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoicemailpolicy Grant-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csonlinevoicemailpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csonlinevoicemailpolicy @@ -516,6 +530,7 @@ Identity + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 Unique identifier for the privacy configuration settings to be retrieved. To return the global settings, use this syntax: `-Identity global` To return settings configured at the site scope, use syntax similar to this: @@ -534,6 +549,7 @@ Filter + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 Enables you to use wildcards to return one or more collections of privacy configuration settings. For example, to return all the settings configured at the site scope, you can use this syntax: `-Filter "site:*"` To return all the settings configured at the service scope, use this syntax: @@ -546,9 +562,22 @@ None + + LocalStore + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Retrieves the privacy configuration data from the local replica of the Central Management store rather than from the Central Management store itself. + + + SwitchParameter + + + False + Tenant + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 Globally unique identifier (GUID) of the Skype for Business Online tenant account whose privacy configuration settings are to be retrieved. For example: `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"` @@ -563,23 +592,29 @@ None - - LocalStore - - Retrieves the privacy configuration data from the local replica of the Central Management store rather than from the Central Management store itself. - - - SwitchParameter - - - False - + + Filter + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Enables you to use wildcards to return one or more collections of privacy configuration settings. For example, to return all the settings configured at the site scope, you can use this syntax: + `-Filter "site:*"` + To return all the settings configured at the service scope, use this syntax: + `-Filter "service:*"` + + String + + String + + + None + Identity + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 Unique identifier for the privacy configuration settings to be retrieved. To return the global settings, use this syntax: `-Identity global` To return settings configured at the site scope, use syntax similar to this: @@ -596,23 +631,22 @@ None - Filter + LocalStore - Enables you to use wildcards to return one or more collections of privacy configuration settings. For example, to return all the settings configured at the site scope, you can use this syntax: - `-Filter "site:*"` - To return all the settings configured at the service scope, use this syntax: - `-Filter "service:*"` + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Retrieves the privacy configuration data from the local replica of the Central Management store rather than from the Central Management store itself. - String + SwitchParameter - String + SwitchParameter - None + False Tenant + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 Globally unique identifier (GUID) of the Skype for Business Online tenant account whose privacy configuration settings are to be retrieved. For example: `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"` @@ -627,18 +661,6 @@ None - - LocalStore - - Retrieves the privacy configuration data from the local replica of the Central Management store rather than from the Central Management store itself. - - SwitchParameter - - SwitchParameter - - - False - @@ -698,7 +720,7 @@ Online Version: - https://learn.microsoft.com/powershell/module/skype/get-csprivacyconfiguration + https://learn.microsoft.com/powershell/module/skypeforbusiness/get-csprivacyconfiguration New-CsPrivacyConfiguration @@ -716,24 +738,25 @@ - Get-CsTeamsAIPolicy + Get-CsTeamsAcsFederationConfiguration Get - CsTeamsAIPolicy + CsTeamsAcsFederationConfiguration - This cmdlet retrieves all Teams AI policies for the tenant. + This cmdlet is used to retrieve the federation configuration between Teams and Azure Communication Services. - The new csTeamsAIPolicy will replace the existing enrollment settings in csTeamsMeetingPolicy, providing enhanced flexibility and control for Teams meeting administrators. Unlike the current single setting, EnrollUserOverride, which applies to both face and voice enrollment, the new policy introduces two distinct settings: EnrollFace and EnrollVoice. These can be individually set to Enabled or Disabled, offering more granular control over biometric enrollments. In addition to improving the management of face and voice data, the csTeamsAIPolicy is designed to support future AI-related settings in Teams, making it a scalable solution for evolving needs. - This cmdlet retrieves all Teams AI policies for the tenant. + Federation between Teams and Azure Communication Services (ACS) allows users of custom solutions built with ACS to connect and communicate with Teams users over voice, video, Teams users over voice, video and screen sharing, and more. For more information, see Teams interoperability (https://learn.microsoft.com/azure/communication-services/concepts/teams-interop). + This cmdlet is used retrieve the Teams and ACS federation configuration for a Teams tenant. + You must be a Teams service admin or a Teams communication admin for your organization to run the cmdlet. - Get-CsTeamsAIPolicy - - Identity + Get-CsTeamsAcsFederationConfiguration + + Filter - Identity of the Teams AI policy. + Enables you to use wildcards when specifying the Teams and ACS federation configuration settings to be returned. Because you can only have a single, global instance of these settings there is little reason to use the Filter parameter. However, if you prefer, you can use syntax similar to this to retrieve the global settings: -Identity "g*". String @@ -742,10 +765,14 @@ None + + + Get-CsTeamsAcsFederationConfiguration - Filter + Identity - Enables you to use wildcard characters when indicating the policy (or policies) to be returned. To return a collection of all the per-user policies, use this syntax: -Filter "tag:*". + Specifies the collection of tenant federation configuration settings to be modified. Because each tenant is limited to a single, global collection of federation settings there is no need include this parameter when calling the Set-CsTenantFederationConfiguration cmdlet. If you do choose to use the Identity parameter you must also include the Tenant parameter. For example: + `Set-CsTenantFederationConfiguration -Tenant "bf19b7db-6960-41e5-a139-2aa373474354" -Identity "global"` String @@ -757,10 +784,23 @@ - + + Filter + + Enables you to use wildcards when specifying the Teams and ACS federation configuration settings to be returned. Because you can only have a single, global instance of these settings there is little reason to use the Filter parameter. However, if you prefer, you can use syntax similar to this to retrieve the global settings: -Identity "g*". + + String + + String + + + None + + Identity - Identity of the Teams AI policy. + Specifies the collection of tenant federation configuration settings to be modified. Because each tenant is limited to a single, global collection of federation settings there is no need include this parameter when calling the Set-CsTenantFederationConfiguration cmdlet. If you do choose to use the Identity parameter you must also include the Tenant parameter. For example: + `Set-CsTenantFederationConfiguration -Tenant "bf19b7db-6960-41e5-a139-2aa373474354" -Identity "global"` String @@ -769,6 +809,104 @@ None + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsAcsFederationConfiguration + +Identity : Global +AllowedAcsResources : {'faced04c-2ced-433d-90db-063e424b87b1'} +EnableAcsUsers : True + + In this example, federation has been enabled for just one ACS resource. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsTeamsAcsFederationConfiguration + +Identity : Global +AllowedAcsResources : {} +EnableAcsUsers : False + + In this example, federation is disabled for all ACS resources. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsacsfederationconfiguration + + + Set-CsTeamsAcsFederationConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsacsfederationconfiguration + + + New-CsExternalAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csexternalaccesspolicy + + + Set-CsExternalAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csexternalaccesspolicy + + + Grant-CsExternalAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csexternalaccesspolicy + + + + + + Get-CsTeamsAIPolicy + Get + CsTeamsAIPolicy + + This cmdlet retrieves all Teams AI policies for the tenant. + + + + The new csTeamsAIPolicy will replace the existing enrollment settings in csTeamsMeetingPolicy, providing enhanced flexibility and control for Teams meeting administrators. Unlike the current single setting, EnrollUserOverride, which applies to both face and voice enrollment, the new policy introduces two distinct settings: EnrollFace and EnrollVoice. These can be individually set to Enabled or Disabled, offering more granular control over biometric enrollments. A new setting, SpeakerAttributionBYOD, is also being added to csTeamsAIPolicy. This allows IT admins to turn off speaker attribution in BYOD scenarios, giving them greater control over how voice data is managed in such environments. This setting can be set to Enabled or Disabled, and will be Enabled by default. In addition to improving the management of face and voice data, the csTeamsAIPolicy is designed to support future AI-related settings in Teams, making it a scalable solution for evolving needs. + This cmdlet retrieves all Teams AI policies for the tenant. + + + + Get-CsTeamsAIPolicy + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. To return a collection of all the per-user policies, use this syntax: -Filter "tag:*". + + String + + String + + + None + + + Identity + + Identity of the Teams AI policy. + + String + + String + + + None + + + + Filter @@ -781,6 +919,18 @@ None + + Identity + + Identity of the Teams AI policy. + + String + + String + + + None + @@ -794,30 +944,30 @@ -------------------------- Example 1 -------------------------- PS C:\> Get-CsTeamsAIPolicy - Retrieves Teams AI policies and shows "EnrollFace" and "EnrollVoice" values. + Retrieves Teams AI policies and shows "EnrollFace", "EnrollVoice" and "SpeakerAttributionBYOD" values. Online Version: - https://learn.microsoft.com/powershell/module/teams/Get-CsTeamsAIPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/Get-CsTeamsAIPolicy New-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsaipolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsaipolicy Remove-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsaipolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsaipolicy Set-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsaipolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsaipolicy Grant-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsaipolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsaipolicy @@ -827,13 +977,12 @@ Get CsTeamsAppPermissionPolicy - NOTE : The existence of this cmdlet is being documented for completeness, but do not use this cmdlet. We require that all creation and modification of app permission polices (not including the assignment or removal of policies from users) happens in the Microsoft Teams & Skype for Business Admin Center to ensure that the policy matches your expectations for the end user experience. This cmdlet is not supported for tenants that migrated to app centric management feature as it replaced permission policies. While the cmdlet may succeed, the changes aren't applied to the tenant. - As an admin, you can use app permission policies to allow or block apps for your users. Learn more about the app permission policies at <https://learn.microsoft.com/microsoftteams/teams-app-permission-policies> and about app centric management at <https://learn.microsoft.com/microsoftteams/app-centric-management>. This is only applicable for tenants who have not been migrated to ACM or UAM. + As an admin, you can use app permission policies to allow or block apps for your users. NOTE : The existence of this cmdlet is being documented for completeness, but do not use this cmdlet. We require that all creation and modification of app permission polices (not including the assignment or removal of policies from users) happens in the Microsoft Teams & Skype for Business Admin Center to ensure that the policy matches your expectations for the end user experience. - As an admin, you can use app permission policies to enable or block specific apps for your users. Learn more about the App Setup Policies: <https://learn.microsoft.com/microsoftteams/teams-app-permission-policies>. + As an admin, you can use app permission policies to enable or block specific apps for your users. Learn more about the App Setup Policies: <https://learn.microsoft.com/microsoftteams/teams-app-permission-policies>. This is only applicable for tenants who have not been migrated to ACM or UAM. @@ -1034,7 +1183,7 @@ PrivateCatalogAppsType : AllowedAppList Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsapppermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsapppermissionpolicy @@ -1044,9 +1193,7 @@ PrivateCatalogAppsType : AllowedAppList Get CsTeamsAppSetupPolicy - NOTE : The existence of this cmdlet is being documented for completeness, but do not use this cmdlet. We require that all creation and modification of app setup polices (not including the assignment or removal of policies from users) happens in the Microsoft Teams & Skype for Business Admin Center to ensure that the policy matches your expectations for the end user experience. - As an admin, you can use app setup policies to customize Microsoft Teams to highlight the apps that are most important for your users. You choose the apps to pin and set the order that they appear. App setup policies let you showcase apps that users in your organization need, including ones built by third parties or by developers in your organization. You can also use app setup policies to manage how built-in features appear. - Apps are pinned to the app bar. This is the bar on the side of the Teams desktop client and at the bottom of the Teams mobile clients (iOS and Android). Learn more about the App Setup Policies: <https://learn.microsoft.com/MicrosoftTeams/teams-app-setup-policies>. + As an admin, you can use app setup policies to customize Microsoft Teams to highlight the apps that are most important for your users. @@ -1253,7 +1400,7 @@ AllowUserPinning : True Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsappsetuppolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsappsetuppolicy @@ -1391,23 +1538,23 @@ AllowUserPinning : True Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamscallholdpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallholdpolicy New-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamscallholdpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallholdpolicy Set-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamscallholdpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallholdpolicy Grant-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamscallholdpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscallholdpolicy Remove-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamscallholdpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallholdpolicy @@ -1453,10 +1600,10 @@ AllowUserPinning : True - - Identity + + Filter - Specify the TeamsCallingPolicy that you would like to retrieve. + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. To return a collection of all the per-user policies, use this syntax: -Filter "tag:*". String @@ -1465,10 +1612,10 @@ AllowUserPinning : True None - - Filter + + Identity - Enables you to use wildcard characters when indicating the policy (or policies) to be returned. To return a collection of all the per-user policies, use this syntax: -Filter "tag:*". + Specify the TeamsCallingPolicy that you would like to retrieve. String @@ -1522,23 +1669,23 @@ AllowUserPinning : True Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamscallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallingpolicy Set-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamscallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallingpolicy Remove-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamscallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallingpolicy Grant-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamscallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscallingpolicy New-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamscallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallingpolicy @@ -1557,17 +1704,14 @@ AllowUserPinning : True Get-CsTeamsChannelsPolicy - - Identity + + Filter - Specify the unique name of a policy you would like to retrieve. Use one of the following values: - - `Global` - - The name of a custom policy you've created. If the value contains spaces, enclose the value in quotation marks ("). Note that the Identity value shows as `Tag:<Name>`, but the `<Name>` value also works. - - `Default`: This is a template that's used to populate the default property values when you create a new policy or to reset the property values in the global policy in case you delete it. Note that the Identity value shows as `Tag:Default`, but the `Default` value also works. + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. For example, to return a collection of all the per-user policies, use this syntax: -Filter "tag:". - XdsIdentity + String - XdsIdentity + String None @@ -1598,14 +1742,17 @@ AllowUserPinning : True Get-CsTeamsChannelsPolicy - - Filter + + Identity - Enables you to use wildcard characters when indicating the policy (or policies) to be returned. For example, to return a collection of all the per-user policies, use this syntax: -Filter "tag:". + Specify the unique name of a policy you would like to retrieve. Use one of the following values: + - `Global` + - The name of a custom policy you've created. If the value contains spaces, enclose the value in quotation marks ("). Note that the Identity value shows as `Tag:<Name>`, but the `<Name>` value also works. + - `Default`: This is a template that's used to populate the default property values when you create a new policy or to reset the property values in the global policy in case you delete it. Note that the Identity value shows as `Tag:Default`, but the `Default` value also works. - String + XdsIdentity - String + XdsIdentity None @@ -1636,6 +1783,18 @@ AllowUserPinning : True + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. For example, to return a collection of all the per-user policies, use this syntax: -Filter "tag:". + + String + + String + + + None + Identity @@ -1651,18 +1810,6 @@ AllowUserPinning : True None - - Filter - - Enables you to use wildcard characters when indicating the policy (or policies) to be returned. For example, to return a collection of all the per-user policies, use this syntax: -Filter "tag:". - - String - - String - - - None - LocalStore @@ -1725,7 +1872,7 @@ AllowUserPinning : True Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamschannelspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamschannelspolicy @@ -1735,7 +1882,7 @@ AllowUserPinning : True Get CsTeamsClientConfiguration - The TeamsClientConfiguration allows IT admins to control the settings that can be accessed via Teams clients across their organization. This configuration includes settings like which third party cloud storage your organization allows, whether or not guest users can access the teams client, and how Surface Hub devices can interact with Skype for Business meetings. This cmdlet allows IT admins to retrieve the effective configuration for their organization. + This cmdlet allows IT admins to retrieve the effective configuration for their organization. @@ -1907,7 +2054,7 @@ AllowUserPinning : True Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsclientconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsclientconfiguration @@ -1917,11 +2064,11 @@ AllowUserPinning : True Get CsTeamsComplianceRecordingApplication - Returns information about the application instances of policy-based recording applications that have been configured for administering automatic policy-based recording in your tenant. Automatic policy-based recording is only applicable to Microsoft Teams users. + Returns information about the application instances of policy-based recording applications that have been configured for administering automatic policy-based recording in your tenant. - Policy-based recording applications are used in automatic policy-based recording scenarios. When Microsoft Teams users participate in meetings or make or receive calls, the policy-based recording applications i.e. bots associated with the user's Teams recording policy are invited into the call or meeting to enforce compliance with the administrative set policy. + Policy-based recording applications are used in automatic policy-based recording scenarios. Automatic policy-based recording is only applicable to Microsoft Teams users. When Microsoft Teams users participate in meetings or make or receive calls, the policy-based recording applications i.e. bots associated with the user's Teams recording policy are invited into the call or meeting to enforce compliance with the administrative set policy. Instances of these applications are created using CsOnlineApplicationInstance cmdlets and are then associated with Teams recording policies. Note that application instances of policy-based recording applications must be associated with a Teams recording policy using the CsTeamsComplianceRecordingApplication cmdlets. Once the association is done, the Identity of these application instances becomes <Identity of the associated Teams recording policy>/<ObjectId of the application instance>. For example, the Identity of an application instance can be \"Tag:ContosoPartnerComplianceRecordingPolicy/39dc3ede-c80e-4f19-9153-417a65a1f144\", which indicates that the application instance with ObjectId 39dc3ede-c80e-4f19-9153-417a65a1f144 is associated with the Teams recording policy with Identity ContosoPartnerComplianceRecordingPolicy. Note that if neither the Identity nor the Filter parameters are specified, then Get-CsTeamsComplianceRecordingApplication returns all application instances of policy-based recording applications that are associated with a Teams recording policy. @@ -2131,43 +2278,43 @@ AllowUserPinning : True Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingapplication Get-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingpolicy New-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpolicy Set-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingpolicy Grant-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscompliancerecordingpolicy Remove-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingpolicy New-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/new-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingapplication Set-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/set-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingapplication Remove-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/remove-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingapplication New-CsTeamsComplianceRecordingPairedApplication - https://learn.microsoft.com/powershell/module/teams/new-csteamscompliancerecordingpairedapplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpairedapplication @@ -2388,43 +2535,43 @@ AllowUserPinning : True Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingpolicy New-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpolicy Set-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingpolicy Grant-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscompliancerecordingpolicy Remove-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingpolicy Get-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/get-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingapplication New-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/new-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingapplication Set-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/set-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingapplication Remove-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/remove-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingapplication New-CsTeamsComplianceRecordingPairedApplication - https://learn.microsoft.com/powershell/module/teams/new-csteamscompliancerecordingpairedapplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpairedapplication @@ -2446,6 +2593,7 @@ AllowUserPinning : True Identity + > Applicable: Microsoft Teams Policy instance name (optional). String @@ -2461,6 +2609,7 @@ AllowUserPinning : True Identity + > Applicable: Microsoft Teams Policy instance name (optional). String @@ -2515,19 +2664,19 @@ AllowUserPinning : True Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamscustombannertext + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscustombannertext Set-CsTeamsCustomBannerText - https://learn.microsoft.com/powershell/module/teams/set-csteamscustombannertext + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscustombannertext New-CsTeamsCustomBannerText - https://learn.microsoft.com/powershell/module/teams/new-csteamscustombannertext + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscustombannertext Remove-CsTeamsCustomBannerText - https://learn.microsoft.com/powershell/module/teams/remove-csteamscustombannertext + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscustombannertext @@ -2537,11 +2686,11 @@ AllowUserPinning : True Get CsTeamsEducationAssignmentsAppPolicy - This policy is controlled by Global and Teams Service Administrators, and is used to turn on/off certain features only related to the Assignments Service, which runs for tenants with EDU licenses. This cmdlet allows you to retrieve the current values of your Education Assignments App Policy. At this time, you can only modify your global policy - this policy type does not support user-level custom policies. + This cmdlet allows you to retrieve the current values of your Education Assignments App Policy. - This policy is controlled by Global and Teams Service Administrators, and is used to turn on/off certain features only related to the Assignments Service, which runs for tenants with EDU licenses. This cmdlet allows you to retrieve the current values of your Education Assignments App Policy. At this time, you can only modify your global policy - this policy type does not support user-level custom policies. + This policy is controlled by Global and Teams Service Administrators, and is used to turn on/off certain features only related to the Assignments Service, which runs for tenants with EDU licenses. At this time, you can only modify your global policy - this policy type does not support user-level custom policies. @@ -2708,7 +2857,7 @@ AllowUserPinning : True Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamseducationassignmentsapppolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamseducationassignmentsapppolicy @@ -2808,11 +2957,11 @@ UpdateParentInformation : Enabled Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamseducationconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamseducationconfiguration Set-CsTeamsEducationConfiguration - https://learn.microsoft.com/powershell/module/teams/set-csteamseducationconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamseducationconfiguration @@ -2831,10 +2980,10 @@ UpdateParentInformation : Enabled Get-CsTeamsEmergencyCallingPolicy - - Identity + + Filter - Specify the policy that you would like to retrieve. + The Filter parameter allows you to limit the number of results based on filters on Identity you specify. String @@ -2846,10 +2995,10 @@ UpdateParentInformation : Enabled Get-CsTeamsEmergencyCallingPolicy - - Filter + + Identity - The Filter parameter allows you to limit the number of results based on filters on Identity you specify. + Specify the policy that you would like to retrieve. String @@ -2861,10 +3010,10 @@ UpdateParentInformation : Enabled - - Identity + + Filter - Specify the policy that you would like to retrieve. + The Filter parameter allows you to limit the number of results based on filters on Identity you specify. String @@ -2873,10 +3022,10 @@ UpdateParentInformation : Enabled None - - Filter + + Identity - The Filter parameter allows you to limit the number of results based on filters on Identity you specify. + Specify the policy that you would like to retrieve. String @@ -2954,23 +3103,23 @@ NotificationMode : NotificationOnly Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsemergencycallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsemergencycallingpolicy New-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsemergencycallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallingpolicy Grant-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsemergencycallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsemergencycallingpolicy Remove-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsemergencycallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsemergencycallingpolicy Set-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsemergencycallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallingpolicy @@ -3088,7 +3237,7 @@ NotificationMode : NotificationOnly Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamseventspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamseventspolicy @@ -3098,7 +3247,7 @@ NotificationMode : NotificationOnly Get CsTeamsExternalAccessConfiguration - The TeamsExternalAccessConfiguration contains all configurations that can be used to enhance the security of the entire organization, such as managing blocked users. This cmdlet returns the current settings of your organization. + This cmdlet returns the current settings of your organization. @@ -3196,7 +3345,7 @@ NotificationMode : NotificationOnly Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsexternalaccessconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsexternalaccessconfiguration @@ -3215,10 +3364,10 @@ NotificationMode : NotificationOnly Get-CsTeamsFeedbackPolicy - - Identity + + Filter - The unique identifier of the policy. + Internal Microsoft use String @@ -3230,10 +3379,10 @@ NotificationMode : NotificationOnly Get-CsTeamsFeedbackPolicy - - Filter + + Identity - Internal Microsoft use + The unique identifier of the policy. String @@ -3245,10 +3394,10 @@ NotificationMode : NotificationOnly - - Identity + + Filter - The unique identifier of the policy. + Internal Microsoft use String @@ -3257,10 +3406,10 @@ NotificationMode : NotificationOnly None - - Filter + + Identity - Internal Microsoft use + The unique identifier of the policy. String @@ -3307,7 +3456,7 @@ NotificationMode : NotificationOnly Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsfeedbackpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsfeedbackpolicy @@ -3317,7 +3466,7 @@ NotificationMode : NotificationOnly Get CsTeamsFilesPolicy - Use the `Get-CsTeamsFilesPolicy` cmdlet to get a list of all pre-configured policy instances related to teams files. + Get a list of all pre-configured policy instances related to teams files. @@ -3326,10 +3475,10 @@ NotificationMode : NotificationOnly Get-CsTeamsFilesPolicy - - Identity + + Filter - A unique identifier specifying the scope, and in some cases the name, of the policy. If this parameter is omitted, all teams files policies available for use are returned. + This parameter accepts a wildcard string and returns all teams files policies with identities matching that string. For example, a Filter value of Tag:* will return all preconfigured teams files policy instances (excluding forest default "Global") available to use by the tenant admins. String @@ -3341,10 +3490,10 @@ NotificationMode : NotificationOnly Get-CsTeamsFilesPolicy - - Filter + + Identity - This parameter accepts a wildcard string and returns all teams files policies with identities matching that string. For example, a Filter value of Tag:* will return all preconfigured teams files policy instances (excluding forest default "Global") available to use by the tenant admins. + A unique identifier specifying the scope, and in some cases the name, of the policy. If this parameter is omitted, all teams files policies available for use are returned. String @@ -3356,10 +3505,10 @@ NotificationMode : NotificationOnly - - Identity + + Filter - A unique identifier specifying the scope, and in some cases the name, of the policy. If this parameter is omitted, all teams files policies available for use are returned. + This parameter accepts a wildcard string and returns all teams files policies with identities matching that string. For example, a Filter value of Tag:* will return all preconfigured teams files policy instances (excluding forest default "Global") available to use by the tenant admins. String @@ -3368,10 +3517,10 @@ NotificationMode : NotificationOnly None - - Filter + + Identity - This parameter accepts a wildcard string and returns all teams files policies with identities matching that string. For example, a Filter value of Tag:* will return all preconfigured teams files policy instances (excluding forest default "Global") available to use by the tenant admins. + A unique identifier specifying the scope, and in some cases the name, of the policy. If this parameter is omitted, all teams files policies available for use are returned. String @@ -3432,23 +3581,23 @@ NotificationMode : NotificationOnly Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsfilespolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsfilespolicy Get-CsTeamsFilesPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsfilespolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsfilespolicy Get-CsTeamsFilesPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsfilespolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsfilespolicy Get-CsTeamsFilesPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsfilespolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsfilespolicy Get-CsTeamsFilesPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsfilespolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsfilespolicy @@ -3471,6 +3620,7 @@ NotificationMode : NotificationOnly Identity + > Applicable: Microsoft Teams This parameter can be used to fetch a specific instance of the configuration. Note: This configuration is read only and will only have the Global instance. @@ -3487,6 +3637,7 @@ NotificationMode : NotificationOnly Identity + > Applicable: Microsoft Teams This parameter can be used to fetch a specific instance of the configuration. Note: This configuration is read only and will only have the Global instance. @@ -3534,11 +3685,11 @@ Category : Online Version: - https://learn.microsoft.com/powershell/module/teams/Get-CsTeamsFirstPartyMeetingTemplateConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/Get-CsTeamsFirstPartyMeetingTemplateConfiguration Get-CsTeamsMeetingTemplateConfiguration - https://learn.microsoft.com/powershell/module/teams/get-csteamsmeetingtemplateconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingtemplateconfiguration @@ -3635,23 +3786,23 @@ Tag:Test Enabled Online Version: - https://learn.microsoft.com/powershell/module/teams/Get-CsTeamsMediaConnectivityPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/Get-CsTeamsMediaConnectivityPolicy New-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsmediaconnectivitypolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmediaconnectivitypolicy Remove-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsmediaconnectivitypolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmediaconnectivitypolicy Set-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsmediaconnectivitypolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmediaconnectivitypolicy Grant-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsmediaconnectivitypolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmediaconnectivitypolicy @@ -3760,23 +3911,23 @@ Tag:Test Enabled Get-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsmeetingbrandingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingbrandingpolicy Grant-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsmeetingbrandingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingbrandingpolicy New-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsmeetingbrandingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingbrandingpolicy Remove-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsmeetingbrandingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingbrandingpolicy Set-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsmeetingbrandingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingbrandingpolicy @@ -3931,7 +4082,7 @@ Tag:Test Enabled Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsmeetingconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingconfiguration @@ -3978,7 +4129,7 @@ Tag:Test Enabled LocalStore - + {{ Fill LocalStore Description }} SwitchParameter @@ -3989,7 +4140,7 @@ Tag:Test Enabled Tenant - + {{ Fill Tenant Description }} Guid @@ -4028,7 +4179,7 @@ Tag:Test Enabled LocalStore - + {{ Fill LocalStore Description }} SwitchParameter @@ -4040,7 +4191,7 @@ Tag:Test Enabled Tenant - + {{ Fill Tenant Description }} Guid @@ -4110,7 +4261,7 @@ NewMeetingRecordingExpirationDays : 60 Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsmeetingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingpolicy @@ -4132,6 +4283,7 @@ NewMeetingRecordingExpirationDays : 60 Identity + > Applicable: Microsoft Teams This parameter can be used to fetch a specific instance of the configuration. Note: This configuration is read only and will only have the Global instance. @@ -4148,6 +4300,7 @@ NewMeetingRecordingExpirationDays : 60 Identity + > Applicable: Microsoft Teams This parameter can be used to fetch a specific instance of the configuration. Note: This configuration is read only and will only have the Global instance. @@ -4195,11 +4348,11 @@ Category : Online Version: - https://learn.microsoft.com/powershell/module/teams/Get-CsTeamsMeetingTemplateConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/Get-CsTeamsMeetingTemplateConfiguration Get-CsTeamsFirstPartyMeetingTemplateConfiguration - https://learn.microsoft.com/powershell/module/teams/get-csteamsfirstpartymeetingtemplateconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsfirstpartymeetingtemplateconfiguration @@ -4218,10 +4371,11 @@ Category : Get-CsTeamsMeetingTemplatePermissionPolicy - - Identity + + Filter - This parameter can be used to fetch a specific instance of the policy. + > Applicable: Microsoft Teams + This parameter can be used to fetch policy instances based on partial matches on the `Identity` field. String @@ -4230,10 +4384,11 @@ Category : None - - Filter + + Identity - This parameter can be used to fetch policy instances based on partial matches on the `Identity` field. + > Applicable: Microsoft Teams + This parameter can be used to fetch a specific instance of the policy. String @@ -4245,10 +4400,11 @@ Category : - - Identity + + Filter - This parameter can be used to fetch a specific instance of the policy. + > Applicable: Microsoft Teams + This parameter can be used to fetch policy instances based on partial matches on the `Identity` field. String @@ -4257,10 +4413,11 @@ Category : None - - Filter + + Identity - This parameter can be used to fetch policy instances based on partial matches on the `Identity` field. + > Applicable: Microsoft Teams + This parameter can be used to fetch a specific instance of the policy. String @@ -4328,23 +4485,23 @@ Description : Online Version: - https://learn.microsoft.com/powershell/module/teams/Get-CsTeamsMeetingTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/Get-CsTeamsMeetingTemplatePermissionPolicy Set-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsmeetingtemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingtemplatepermissionpolicy New-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsmeetingtemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingtemplatepermissionpolicy Remove-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsmeetingtemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingtemplatepermissionpolicy Grant-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsmeetingtemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingtemplatepermissionpolicy @@ -4455,11 +4612,11 @@ Description : Online Version: - https://learn.microsoft.com/powershell/module/teams/Get-CsTeamsMessagingConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/Get-CsTeamsMessagingConfiguration Set-CsTeamsMessagingConfiguration - https://learn.microsoft.com/powershell/module/teams/set-csteamsmessagingconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmessagingconfiguration @@ -4507,7 +4664,7 @@ Description : LocalStore - + {{ Fill LocalStore Description }} SwitchParameter @@ -4518,7 +4675,7 @@ Description : Tenant - + {{ Fill Tenant Description }} Guid @@ -4559,7 +4716,7 @@ Description : LocalStore - + {{ Fill LocalStore Description }} SwitchParameter @@ -4571,7 +4728,7 @@ Description : Tenant - + {{ Fill Tenant Description }} Guid @@ -4619,7 +4776,7 @@ PS C:\> Get-CsTeamsMessagingPolicy Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsmessagingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmessagingpolicy @@ -4660,7 +4817,7 @@ PS C:\> Get-CsTeamsMessagingPolicy Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsmultitenantorganizationconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmultitenantorganizationconfiguration Set-CsTeamsMultiTenantOrganizationConfiguration @@ -4811,7 +4968,139 @@ PS C:\> Get-CsTeamsMessagingPolicy Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsnotificationandfeedspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsnotificationandfeedspolicy + + + + + + Get-CsTeamsPersonalAttendantPolicy + Get + CsTeamsPersonalAttendantPolicy + + Limited Preview: Functionality described in this document is currently in limited preview and only authorized organizations have access. + Returns information about the Teams personal attendant policies configured for use in your organization. Teams personal attendant policies help determine which users are able to use personal attendant and its functionalities within Microsoft Teams. + + + + Returns information about the Teams personal attendant policies configured for use in your organization. Teams personal attendant policies help determine which users are able to use personal attendant and its functionalities within Microsoft Teams. + + + + Get-CsTeamsPersonalAttendantPolicy + + Identity + + Specify the TeamsPersonalAttendantPolicy that you would like to retrieve. + + String + + String + + + None + + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. To return a collection of all the per-user policies, use this syntax: -Filter "tag:*". + + String + + String + + + None + + + + + + Identity + + Specify the TeamsPersonalAttendantPolicy that you would like to retrieve. + + String + + String + + + None + + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. To return a collection of all the per-user policies, use this syntax: -Filter "tag:*". + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + The cmdlet is available in Teams PowerShell module 7.2.1-preview or later. + + + + + -------------------------- Example 1 -------------------------- + Get-CsTeamsPersonalAttendantPolicy -Identity SalesPersonalAttendantPolicy + + Retrieves the personal attendant policy with the Identity "SalesPersonalAttendantPolicy". + + + + -------------------------- Example 2 -------------------------- + Get-CsTeamsPersonalAttendantPolicy -Filter "tag:Sales*" + + Retrieves the personal attendant policies with Identity starting with Sales. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamspersonalattendantpolicy + + + New-CsTeamsPersonalAttendantPolicy + + + + Set-CsTeamsPersonalAttendantPolicy + + + + Grant-CsTeamsPersonalAttendantPolicy + + + + Remove-CsTeamsPersonalAttendantPolicy + @@ -4924,7 +5213,7 @@ PS C:\> Get-CsTeamsMessagingPolicy Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsrecordingrolloutpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsrecordingrolloutpolicy @@ -4943,11 +5232,10 @@ PS C:\> Get-CsTeamsMessagingPolicy Get-CsTeamsSharedCallingRoutingPolicy - - Identity + + Filter - Unique identifier of the Teams shared calling routing policy to be retrieved. - You cannot use wildcard characters when specifying the Identity. If neither the Identity nor the Filter parameters are specified, then Get-CsTeamsSharedCallingRoutingPolicy returns all the Teams shared calling routing policies configured for use in the organization. + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. To return a collection of all the per-user policies, use this syntax: -Filter "tag:*". String @@ -4959,10 +5247,11 @@ PS C:\> Get-CsTeamsMessagingPolicy Get-CsTeamsSharedCallingRoutingPolicy - - Filter + + Identity - Enables you to use wildcard characters when indicating the policy (or policies) to be returned. To return a collection of all the per-user policies, use this syntax: -Filter "tag:*". + Unique identifier of the Teams shared calling routing policy to be retrieved. + You cannot use wildcard characters when specifying the Identity. If neither the Identity nor the Filter parameters are specified, then Get-CsTeamsSharedCallingRoutingPolicy returns all the Teams shared calling routing policies configured for use in the organization. String @@ -4974,11 +5263,10 @@ PS C:\> Get-CsTeamsMessagingPolicy - - Identity + + Filter - Unique identifier of the Teams shared calling routing policy to be retrieved. - You cannot use wildcard characters when specifying the Identity. If neither the Identity nor the Filter parameters are specified, then Get-CsTeamsSharedCallingRoutingPolicy returns all the Teams shared calling routing policies configured for use in the organization. + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. To return a collection of all the per-user policies, use this syntax: -Filter "tag:*". String @@ -4987,10 +5275,11 @@ PS C:\> Get-CsTeamsMessagingPolicy None - - Filter + + Identity - Enables you to use wildcard characters when indicating the policy (or policies) to be returned. To return a collection of all the per-user policies, use this syntax: -Filter "tag:*". + Unique identifier of the Teams shared calling routing policy to be retrieved. + You cannot use wildcard characters when specifying the Identity. If neither the Identity nor the Filter parameters are specified, then Get-CsTeamsSharedCallingRoutingPolicy returns all the Teams shared calling routing policies configured for use in the organization. String @@ -5040,23 +5329,23 @@ PS C:\> Get-CsTeamsMessagingPolicy Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamssharedcallingroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamssharedcallingroutingpolicy Set-CsTeamsSharedCallingRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamssharedcallingroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamssharedcallingroutingpolicy Grant-CsTeamsSharedCallingRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamssharedcallingroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamssharedcallingroutingpolicy Remove-CsTeamsSharedCallingRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamssharedcallingroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamssharedcallingroutingpolicy New-CsTeamsSharedCallingRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamssharedcallingroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamssharedcallingroutingpolicy @@ -5075,14 +5364,14 @@ PS C:\> Get-CsTeamsMessagingPolicy Get-CsTeamsShiftsPolicy - - Identity + + Filter - Policy instance name. Optional. + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. To return a collection of all the policies, use this syntax: -Filter "tag:*". - XdsIdentity + String - XdsIdentity + String None @@ -5090,14 +5379,15 @@ PS C:\> Get-CsTeamsMessagingPolicy Get-CsTeamsShiftsPolicy - - Filter + + Identity - Enables you to use wildcard characters when indicating the policy (or policies) to be returned. To return a collection of all the policies, use this syntax: -Filter "tag:*". + > Applicable: Microsoft Teams + Policy instance name. Optional. - String + XdsIdentity - String + XdsIdentity None @@ -5105,26 +5395,27 @@ PS C:\> Get-CsTeamsMessagingPolicy - - Identity + + Filter - Policy instance name. Optional. + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. To return a collection of all the policies, use this syntax: -Filter "tag:*". - XdsIdentity + String - XdsIdentity + String None - - Filter + + Identity - Enables you to use wildcard characters when indicating the policy (or policies) to be returned. To return a collection of all the policies, use this syntax: -Filter "tag:*". + > Applicable: Microsoft Teams + Policy instance name. Optional. - String + XdsIdentity - String + XdsIdentity None @@ -5174,23 +5465,23 @@ PS C:\> Get-CsTeamsMessagingPolicy Online Version: - https://learn.microsoft.com/powershell/module/teams/get-teamsshiftspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-teamsshiftspolicy Set-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsshiftspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftspolicy New-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsshiftspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftspolicy Remove-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsshiftspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftspolicy Grant-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsshiftspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsshiftspolicy @@ -5231,22 +5522,15 @@ BulkSignIn : Enabled In this example, the organization has Bulk SignIn enabled for their SIP devices. - - ----------------------- CommonParameters ----------------------- - - - - - Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamssipdevicesconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamssipdevicesconfiguration Set-CsTeamsSipDevicesConfiguration - https://learn.microsoft.com/powershell/module/teams/set-csteamssipdevicesconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamssipdevicesconfiguration @@ -5385,19 +5669,19 @@ Tag:Foobar {com.microsoft.teams.template.ManageAProject, com.microsoft.teams.tem Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamstemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamstemplatepermissionpolicy New-CsTeamsTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamstemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamstemplatepermissionpolicy Remove-CsTeamsTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamstemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamstemplatepermissionpolicy Set-CsTeamsTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamstemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstemplatepermissionpolicy @@ -5416,10 +5700,10 @@ Tag:Foobar {com.microsoft.teams.template.ManageAProject, com.microsoft.teams.tem Get-CsTeamsUpdateManagementPolicy - - Identity + + Filter - The unique identifier of the policy. + This parameter accepts a wildcard string and returns all policies with identities matching that string. For example, a Filter value of tag:* will return all policies defined at the per-user level. String @@ -5431,10 +5715,10 @@ Tag:Foobar {com.microsoft.teams.template.ManageAProject, com.microsoft.teams.tem Get-CsTeamsUpdateManagementPolicy - - Filter + + Identity - This parameter accepts a wildcard string and returns all policies with identities matching that string. For example, a Filter value of tag:* will return all policies defined at the per-user level. + The unique identifier of the policy. String @@ -5446,10 +5730,10 @@ Tag:Foobar {com.microsoft.teams.template.ManageAProject, com.microsoft.teams.tem - - Identity + + Filter - The unique identifier of the policy. + This parameter accepts a wildcard string and returns all policies with identities matching that string. For example, a Filter value of tag:* will return all policies defined at the per-user level. String @@ -5458,10 +5742,10 @@ Tag:Foobar {com.microsoft.teams.template.ManageAProject, com.microsoft.teams.tem None - - Filter + + Identity - This parameter accepts a wildcard string and returns all policies with identities matching that string. For example, a Filter value of tag:* will return all policies defined at the per-user level. + The unique identifier of the policy. String @@ -5508,7 +5792,7 @@ Tag:Foobar {com.microsoft.teams.template.ManageAProject, com.microsoft.teams.tem Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsupdatemanagementpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsupdatemanagementpolicy @@ -5518,7 +5802,7 @@ Tag:Foobar {com.microsoft.teams.template.ManageAProject, com.microsoft.teams.tem Get CsTeamsUpgradeConfiguration - Returns information related to managing the upgrade to Teams from Skype for Business. TeamsUpgradeConfiguration should be used in conjunction with TeamsUpgradePolicy. The settings in TeamsUpgradeConfiguration allow administrators to configure whether users subject to upgrade and who are running on Windows clients should automatically download Teams. For Office 365 users, it allows administrators to determine which application end users should use to join Skype for Business meetings. + Returns information related to managing the upgrade to Teams from Skype for Business. @@ -5646,15 +5930,15 @@ Tag:Foobar {com.microsoft.teams.template.ManageAProject, com.microsoft.teams.tem Set-CsTeamsUpgradeConfiguration - https://learn.microsoft.com/powershell/module/teams/set-csteamsupgradeconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsupgradeconfiguration Get-CsTeamsUpgradePolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsupgradepolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsupgradepolicy Grant-CsTeamsUpgradePolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsupgradepolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsupgradepolicy Migration and interoperability guidance for organizations using Teams together with Skype for Business @@ -5668,12 +5952,12 @@ Tag:Foobar {com.microsoft.teams.template.ManageAProject, com.microsoft.teams.tem Get CsTeamsVdiPolicy - The CsTeamsVdiPolicy cmdlets enable administrators to control the type of meetings that users can create or the features that they can access while in a meeting specifically on an unoptimized VDI environment. It also controls whether a user can be in VDI 2.0 optimization mode. + The Get-CsTeamsVdiPolicy cmdlet enables you to return infomration about all the Vdi policies that have been configured for use in your organization. The CsTeamsVdiPolicy cmdlets enable administrators to control the type of meetings that users can create or the features that they can access while in a meeting specifically on an unoptimized VDI environment. It also controls whether a user can be in VDI 2.0 optimization mode. - Teams Vdi policies can be configured at the global and per-user scopes. The Get-CsTeamsVdiPolicy cmdlet enables you to return infomration about all the Vdi policies that have been configured for use in your organization. + Teams Vdi policies can be configured at the global and per-user scopes. @@ -5784,7 +6068,7 @@ Tag:Foobar {com.microsoft.teams.template.ManageAProject, com.microsoft.teams.tem Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsvdipolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsvdipolicy @@ -5925,23 +6209,23 @@ Tag:sms-disabled False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsvirtualappointmentspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsvirtualappointmentspolicy New-CsTeamsVirtualAppointmentsPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsvirtualappointmentspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsvirtualappointmentspolicy Remove-CsTeamsVirtualAppointmentsPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsvirtualappointmentspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsvirtualappointmentspolicy Set-CsTeamsVirtualAppointmentsPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsvirtualappointmentspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsvirtualappointmentspolicy Grant-CsTeamsVirtualAppointmentsPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsvirtualappointmentspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsvirtualappointmentspolicy @@ -5960,15 +6244,11 @@ Tag:sms-disabled False Get-CsTeamsVoiceApplicationsPolicy - - Identity + + Filter - Unique identifier of the Teams voice applications policy to be retrieved. To return the global policy, use this syntax: - -Identity global - To return a policy configured at the per-user scope, use syntax like this: - -Identity "SDA-Allow-All" - You cannot use wildcard characters when specifying the Identity. - If neither the Identity nor the Filter parameters are specified, then Get-CsTeamsVoiceApplicationsPolicy returns all the Teams voice applications policies configured for use in the tenant. + Enables you to use wildcards when retrieving one or more Teams voice applications policies. For example, to return all the policies configured at the per-user scope, use this syntax: + -Filter "tag:*" String @@ -5980,11 +6260,15 @@ Tag:sms-disabled False Get-CsTeamsVoiceApplicationsPolicy - - Filter + + Identity - Enables you to use wildcards when retrieving one or more Teams voice applications policies. For example, to return all the policies configured at the per-user scope, use this syntax: - -Filter "tag:*" + Unique identifier of the Teams voice applications policy to be retrieved. To return the global policy, use this syntax: + -Identity global + To return a policy configured at the per-user scope, use syntax like this: + -Identity "SDA-Allow-All" + You cannot use wildcard characters when specifying the Identity. + If neither the Identity nor the Filter parameters are specified, then Get-CsTeamsVoiceApplicationsPolicy returns all the Teams voice applications policies configured for use in the tenant. String @@ -5996,15 +6280,11 @@ Tag:sms-disabled False - - Identity + + Filter - Unique identifier of the Teams voice applications policy to be retrieved. To return the global policy, use this syntax: - -Identity global - To return a policy configured at the per-user scope, use syntax like this: - -Identity "SDA-Allow-All" - You cannot use wildcard characters when specifying the Identity. - If neither the Identity nor the Filter parameters are specified, then Get-CsTeamsVoiceApplicationsPolicy returns all the Teams voice applications policies configured for use in the tenant. + Enables you to use wildcards when retrieving one or more Teams voice applications policies. For example, to return all the policies configured at the per-user scope, use this syntax: + -Filter "tag:*" String @@ -6013,11 +6293,15 @@ Tag:sms-disabled False None - - Filter + + Identity - Enables you to use wildcards when retrieving one or more Teams voice applications policies. For example, to return all the policies configured at the per-user scope, use this syntax: - -Filter "tag:*" + Unique identifier of the Teams voice applications policy to be retrieved. To return the global policy, use this syntax: + -Identity global + To return a policy configured at the per-user scope, use syntax like this: + -Identity "SDA-Allow-All" + You cannot use wildcard characters when specifying the Identity. + If neither the Identity nor the Filter parameters are specified, then Get-CsTeamsVoiceApplicationsPolicy returns all the Teams voice applications policies configured for use in the tenant. String @@ -6069,23 +6353,23 @@ Tag:sms-disabled False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsvoiceapplicationspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsvoiceapplicationspolicy Set-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsvoiceapplicationspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsvoiceapplicationspolicy Grant-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsvoiceapplicationspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsvoiceapplicationspolicy Remove-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsvoiceapplicationspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsvoiceapplicationspolicy New-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsvoiceapplicationspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsvoiceapplicationspolicy @@ -6226,23 +6510,23 @@ Tag:wld-policy2 False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsworklocationdetectionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsworklocationdetectionpolicy New-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsworklocationdetectionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsworklocationdetectionpolicy Remove-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsworklocationdetectionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsworklocationdetectionpolicy Set-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsworklocationdetectionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsworklocationdetectionpolicy Grant-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsworklocationdetectionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsworklocationdetectionpolicy @@ -6509,19 +6793,19 @@ Tag:wld-policy2 False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-cstenantnetworksite + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworksite New-CsTenantNetworkSite - https://learn.microsoft.com/powershell/module/teams/new-cstenantnetworksite + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworksite Remove-CsTenantNetworkSite - https://learn.microsoft.com/powershell/module/teams/remove-cstenantnetworksite + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworksite Set-CsTenantNetworkSite - https://learn.microsoft.com/powershell/module/teams/set-cstenantnetworksite + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworksite @@ -6531,15 +6815,15 @@ Tag:wld-policy2 False Grant CsExternalAccessPolicy - Enables you to assign an external access policy to a user or a group of users. External access policies determine whether or not your users can: 1) communicate with users who have Session Initiation Protocol (SIP) accounts with a federated organization; 2) communicate with users who are using custom applications built with Azure Communication Services (ACS) (https://learn.microsoft.com/azure/communication-services/concepts/teams-interop); 3) access Skype for Business Server over the Internet, without having to log on to your internal network; and, 4) communicate with users who have SIP accounts with a public instant messaging (IM)provider such as Skype. - This cmdlet was introduced in Lync Server 2010. + Enables you to assign an external access policy to a user or a group of users. + This cmdlet was introduced in Lync Server 2010. When you install Microsoft Teams or Skype for Business Server, your users are only allowed to exchange instant messages and presence information among themselves: by default, they can only communicate with other people who have SIP accounts in your Active Directory Domain Services. In addition, users are not allowed to access Skype for Business Server over the Internet; instead, they must be logged on to your internal network before they will be able to log on to Skype for Business Server. That might be sufficient to meet your communication needs. If it doesn't meet your needs you can use external access policies to extend the ability of your users to communicate and collaborate. External access policies can grant (or revoke) the ability of your users to do any or all of the following: 1. Communicate with people who have SIP accounts with a federated organization. Note that enabling federation will not automatically provide users with this capability. Instead, you must enable federation, and then assign users an external access policy that gives them the right to communicate with federated users. - 2. (Microsoft Teams only) Communicate with users who are using custom applications built with Azure Communication Services (ACS) (https://learn.microsoft.com/azure/communication-services/concepts/teams-interop). This policy setting only applies if ACS federation has been enabled at the tenant level using the cmdlet [Set-CsTeamsAcsFederationConfiguration](https://learn.microsoft.com/powershell/module/teams/set-csteamsacsfederationconfiguration). + 2. (Microsoft Teams only) Communicate with users who are using custom applications built with Azure Communication Services (ACS) (https://learn.microsoft.com/azure/communication-services/concepts/teams-interop). This policy setting only applies if ACS federation has been enabled at the tenant level using the cmdlet [Set-CsTeamsAcsFederationConfiguration](https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsacsfederationconfiguration). 3. Communicate with people who have SIP accounts with a public instant messaging service such as Skype. 4. Access Skype for Business Server over the Internet, without having to first log on to your internal network. This enables your users to use Skype for Business and log on to Skype for Business Server from an Internet café or other remote location. When you install Skype for Business Server, a global external access policy is automatically created for you. In addition to this global policy, you can use the New-CsExternalAccessPolicy cmdlet to create additional external access policies configured at either the site or the per-user scope. @@ -6549,22 +6833,21 @@ Tag:wld-policy2 False Grant-CsExternalAccessPolicy - - Identity + + Global - Identity of the user account the policy should be assigned to. User Identities can be specified by using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. - In addition, you can use the asterisk (*) wildcard character when specifying the user Identity. For example, the Identity "* Smith" returns all the users with a display name that ends with the string value " Smith." + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". - UserIdParameter - UserIdParameter + SwitchParameter - None + False PolicyName + > Applicable: Microsoft Teams, Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 "Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; a policy with the Identity tag:RedmondAccessPolicy has a PolicyName equal to RedmondAccessPolicy. To unassign a per-user policy previously assigned to a user, set the PolicyName parameter to $Null. @@ -6578,6 +6861,7 @@ Tag:wld-policy2 False DomainController + > Applicable: Microsoft Teams, Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 Enables you to specify the fully qualified domain name (FQDN) of a domain controller to be contacted when assigning the new policy. If this parameter is not specified, then the Grant-CsExternalAccessPolicy cmdlet will contact the first available domain controller. Fqdn @@ -6590,6 +6874,7 @@ Tag:wld-policy2 False PassThru + > Applicable: Microsoft Teams, Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsExternalAccessPolicy cmdlet does not pass objects through the pipeline. @@ -6601,6 +6886,7 @@ Tag:wld-policy2 False Tenant + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Guid @@ -6628,6 +6914,7 @@ Tag:wld-policy2 False PolicyName + > Applicable: Microsoft Teams, Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 "Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; a policy with the Identity tag:RedmondAccessPolicy has a PolicyName equal to RedmondAccessPolicy. To unassign a per-user policy previously assigned to a user, set the PolicyName parameter to $Null. @@ -6641,6 +6928,7 @@ Tag:wld-policy2 False DomainController + > Applicable: Microsoft Teams, Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 Enables you to specify the fully qualified domain name (FQDN) of a domain controller to be contacted when assigning the new policy. If this parameter is not specified, then the Grant-CsExternalAccessPolicy cmdlet will contact the first available domain controller. Fqdn @@ -6653,6 +6941,7 @@ Tag:wld-policy2 False PassThru + > Applicable: Microsoft Teams, Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsExternalAccessPolicy cmdlet does not pass objects through the pipeline. @@ -6661,26 +6950,27 @@ Tag:wld-policy2 False False - - Tenant + + Rank - This parameter is reserved for internal Microsoft use. + The rank of the policy assignment, relative to other group policy assignments for the same policy type. - Guid + Int32 - Guid + Int32 None - - Rank + + Tenant - The rank of the policy assignment, relative to other group policy assignments for the same policy type. + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. - Int32 + Guid - Int32 + Guid None @@ -6688,20 +6978,24 @@ Tag:wld-policy2 False Grant-CsExternalAccessPolicy - - Global + + Identity - When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". + > Applicable: Microsoft Teams, Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Identity of the user account the policy should be assigned to. User Identities can be specified by using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. + In addition, you can use the asterisk (*) wildcard character when specifying the user Identity. For example, the Identity "* Smith" returns all the users with a display name that ends with the string value " Smith." + UserIdParameter - SwitchParameter + UserIdParameter - False + None PolicyName + > Applicable: Microsoft Teams, Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 "Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; a policy with the Identity tag:RedmondAccessPolicy has a PolicyName equal to RedmondAccessPolicy. To unassign a per-user policy previously assigned to a user, set the PolicyName parameter to $Null. @@ -6715,6 +7009,7 @@ Tag:wld-policy2 False DomainController + > Applicable: Microsoft Teams, Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 Enables you to specify the fully qualified domain name (FQDN) of a domain controller to be contacted when assigning the new policy. If this parameter is not specified, then the Grant-CsExternalAccessPolicy cmdlet will contact the first available domain controller. Fqdn @@ -6727,6 +7022,7 @@ Tag:wld-policy2 False PassThru + > Applicable: Microsoft Teams, Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsExternalAccessPolicy cmdlet does not pass objects through the pipeline. @@ -6738,6 +7034,7 @@ Tag:wld-policy2 False Tenant + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Guid @@ -6750,24 +7047,35 @@ Tag:wld-policy2 False - - Identity + + DomainController - Identity of the user account the policy should be assigned to. User Identities can be specified by using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. - In addition, you can use the asterisk (*) wildcard character when specifying the user Identity. For example, the Identity "* Smith" returns all the users with a display name that ends with the string value " Smith." + > Applicable: Microsoft Teams, Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Enables you to specify the fully qualified domain name (FQDN) of a domain controller to be contacted when assigning the new policy. If this parameter is not specified, then the Grant-CsExternalAccessPolicy cmdlet will contact the first available domain controller. - UserIdParameter + Fqdn - UserIdParameter + Fqdn None - - PolicyName + + Global - "Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; a policy with the Identity tag:RedmondAccessPolicy has a PolicyName equal to RedmondAccessPolicy. - To unassign a per-user policy previously assigned to a user, set the PolicyName parameter to $Null. + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. String @@ -6776,14 +7084,16 @@ Tag:wld-policy2 False None - - DomainController + + Identity - Enables you to specify the fully qualified domain name (FQDN) of a domain controller to be contacted when assigning the new policy. If this parameter is not specified, then the Grant-CsExternalAccessPolicy cmdlet will contact the first available domain controller. + > Applicable: Microsoft Teams, Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Identity of the user account the policy should be assigned to. User Identities can be specified by using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. + In addition, you can use the asterisk (*) wildcard character when specifying the user Identity. For example, the Identity "* Smith" returns all the users with a display name that ends with the string value " Smith." - Fqdn + UserIdParameter - Fqdn + UserIdParameter None @@ -6791,6 +7101,7 @@ Tag:wld-policy2 False PassThru + > Applicable: Microsoft Teams, Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsExternalAccessPolicy cmdlet does not pass objects through the pipeline. SwitchParameter @@ -6800,14 +7111,16 @@ Tag:wld-policy2 False False - - Tenant + + PolicyName - This parameter is reserved for internal Microsoft use. + > Applicable: Microsoft Teams, Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + "Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; a policy with the Identity tag:RedmondAccessPolicy has a PolicyName equal to RedmondAccessPolicy. + To unassign a per-user policy previously assigned to a user, set the PolicyName parameter to $Null. - Guid + String - Guid + String None @@ -6824,30 +7137,19 @@ Tag:wld-policy2 False None - - Group + + Tenant - Specifies the group used for the group policy assignment. + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. - String + Guid - String + Guid None - - Global - - When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". - - SwitchParameter - - SwitchParameter - - - False - @@ -6923,23 +7225,23 @@ Tag:wld-policy2 False Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csexternalaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csexternalaccesspolicy Get-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/teams/get-csexternalaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csexternalaccesspolicy New-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/teams/new-csexternalaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csexternalaccesspolicy Remove-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csexternalaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csexternalaccesspolicy Set-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/teams/set-csexternalaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csexternalaccesspolicy @@ -6953,7 +7255,7 @@ Tag:wld-policy2 False - The new csTeamsAIPolicy will replace the existing enrollment settings in csTeamsMeetingPolicy, providing enhanced flexibility and control for Teams meeting administrators. Unlike the current single setting, EnrollUserOverride, which applies to both face and voice enrollment, the new policy introduces two distinct settings: EnrollFace and EnrollVoice. These can be individually set to Enabled or Disabled, offering more granular control over biometric enrollments. In addition to improving the management of face and voice data, the csTeamsAIPolicy is designed to support future AI-related settings in Teams, making it a scalable solution for evolving needs. + The new csTeamsAIPolicy will replace the existing enrollment settings in csTeamsMeetingPolicy, providing enhanced flexibility and control for Teams meeting administrators. Unlike the current single setting, EnrollUserOverride, which applies to both face and voice enrollment, the new policy introduces two distinct settings: EnrollFace and EnrollVoice. These can be individually set to Enabled or Disabled, offering more granular control over biometric enrollments. A new setting, SpeakerAttributionBYOD, is also being added to csTeamsAIPolicy. This allows IT admins to turn off speaker attribution in BYOD scenarios, giving them greater control over how voice data is managed in such environments. This setting can be set to Enabled or Disabled, and will be Enabled by default. In addition to improving the management of face and voice data, the csTeamsAIPolicy is designed to support future AI-related settings in Teams, making it a scalable solution for evolving needs. This cmdlet applies an instance of the Teams AI policy to users or groups in a tenant. Passes in the `Identity` of the policy instance in the `PolicyName` parameter and the user identifier in the `Identity` parameter or the group name in the `Group` parameter. One of either `Identity` or `Group` needs to be passed. @@ -7182,23 +7484,23 @@ Tag:wld-policy2 False Online Version: - https://learn.microsoft.com/powershell/module/teams/Grant-CsTeamsAIPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/Grant-CsTeamsAIPolicy New-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsaipolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsaipolicy Remove-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsaipolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsaipolicy Get-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsaipolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsaipolicy Set-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsaipolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsaipolicy @@ -7208,14 +7510,13 @@ Tag:wld-policy2 False Grant CsTeamsAppPermissionPolicy - NOTE : You can use this cmdlet to assign a specific custom policy to a user. We require that all creation and modification of app setup polices (not including the assignment or removal of policies from users) happens in the Microsoft Teams & Skype for Business Admin Center to ensure that the policy matches your expectations for the end user experience. This cmdlet is not supported for tenants that migrated to app centric management feature as it replaced permission policies. While the cmdlet may succeed, the changes aren't applied to the tenant. - As an admin, you can use app permission policies to allow or block apps for your users. Learn more about the app permission policies at <https://learn.microsoft.com/microsoftteams/teams-app-permission-policies> and about app centric management at <https://learn.microsoft.com/microsoftteams/app-centric-management>. - This is only applicable for tenants who have not been migrated to ACM or UAM. + As an admin, you can use app permission policies to allow or block apps for your users. NOTE : You can use this cmdlet to assign a specific custom policy to a user. We require that all creation and modification of app setup polices (not including the assignment or removal of policies from users) happens in the Microsoft Teams & Skype for Business Admin Center to ensure that the policy matches your expectations for the end user experience. As an admin, you can use app permission policies to enable or block specific apps for your users. Learn more about the App Permission Policies: <https://learn.microsoft.com/microsoftteams/teams-app-permission-policies>. + This is only applicable for tenants who have not been migrated to ACM or UAM. @@ -7269,7 +7570,7 @@ Tag:wld-policy2 False PassThru - + {{ Fill PassThru Description }} SwitchParameter @@ -7303,14 +7604,14 @@ Tag:wld-policy2 False Grant-CsTeamsAppPermissionPolicy - - Identity + + Group - The user to whom the policy should be assigned. + Specifies the group used for the group policy assignment. - UserIdParameter + String - UserIdParameter + String None @@ -7353,7 +7654,7 @@ Tag:wld-policy2 False PassThru - + {{ Fill PassThru Description }} SwitchParameter @@ -7361,6 +7662,18 @@ Tag:wld-policy2 False False + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + Tenant @@ -7387,14 +7700,14 @@ Tag:wld-policy2 False Grant-CsTeamsAppPermissionPolicy - - Group + + Identity - Specifies the group used for the group policy assignment. + The user to whom the policy should be assigned. - String + UserIdParameter - String + UserIdParameter None @@ -7437,7 +7750,7 @@ Tag:wld-policy2 False PassThru - + {{ Fill PassThru Description }} SwitchParameter @@ -7468,18 +7781,6 @@ Tag:wld-policy2 False False - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - @@ -7519,6 +7820,18 @@ Tag:wld-policy2 False False + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + Identity @@ -7534,7 +7847,7 @@ Tag:wld-policy2 False PassThru - + {{ Fill PassThru Description }} SwitchParameter @@ -7555,6 +7868,18 @@ Tag:wld-policy2 False None + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + Tenant @@ -7579,30 +7904,6 @@ Tag:wld-policy2 False False - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - @@ -7641,7 +7942,7 @@ Tag:wld-policy2 False Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csteamsapppermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsapppermissionpolicy @@ -7651,9 +7952,7 @@ Tag:wld-policy2 False Grant CsTeamsAppSetupPolicy - NOTE : You can use this cmdlet to assign a specific custom policy to a user. We require that all creation and modification of app setup polices (not including the assignment or removal of policies from users) happens in the Microsoft Teams & Skype for Business Admin Center to ensure that the policy matches your expectations for the end user experience. - As an admin, you can use app setup policies to customize Microsoft Teams to highlight the apps that are most important for your users. You choose the apps to pin and set the order that they appear. App setup policies let you showcase apps that users in your organization need, including ones built by third parties or by developers in your organization. You can also use app setup policies to manage how built-in features appear. - Apps are pinned to the app bar. This is the bar on the side of the Teams desktop client and at the bottom of the Teams mobile clients (iOS and Android). Learn more about the App Setup Policies: <https://learn.microsoft.com/MicrosoftTeams/teams-app-setup-policies>. + As an admin, you can use app setup policies to customize Microsoft Teams to highlight the apps that are most important for your users. @@ -7713,7 +8012,7 @@ Tag:wld-policy2 False PassThru - + {{ Fill PassThru Description }} SwitchParameter @@ -7747,14 +8046,14 @@ Tag:wld-policy2 False Grant-CsTeamsAppSetupPolicy - - Identity + + Group - The user to whom the policy should be assigned. + Specifies the group used for the group policy assignment. - UserIdParameter + String - UserIdParameter + String None @@ -7797,7 +8096,7 @@ Tag:wld-policy2 False PassThru - + {{ Fill PassThru Description }} SwitchParameter @@ -7805,6 +8104,18 @@ Tag:wld-policy2 False False + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + Tenant @@ -7831,14 +8142,14 @@ Tag:wld-policy2 False Grant-CsTeamsAppSetupPolicy - - Group + + Identity - Specifies the group used for the group policy assignment. + The user to whom the policy should be assigned. - String + UserIdParameter - String + UserIdParameter None @@ -7881,7 +8192,7 @@ Tag:wld-policy2 False PassThru - + {{ Fill PassThru Description }} SwitchParameter @@ -7912,18 +8223,6 @@ Tag:wld-policy2 False False - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - @@ -7963,6 +8262,18 @@ Tag:wld-policy2 False False + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + Identity @@ -7978,7 +8289,7 @@ Tag:wld-policy2 False PassThru - + {{ Fill PassThru Description }} SwitchParameter @@ -7999,6 +8310,18 @@ Tag:wld-policy2 False None + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + Tenant @@ -8023,30 +8346,6 @@ Tag:wld-policy2 False False - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - @@ -8085,7 +8384,7 @@ Tag:wld-policy2 False Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csteamsappsetuppolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsappsetuppolicy @@ -8104,10 +8403,47 @@ Tag:wld-policy2 False Grant-CsTeamsCallingPolicy - - Identity + + PolicyName - The user object to whom the policy is being assigned. + The name of the policy being assigned. To remove an existing user level policy assignment, specify PolicyName as $null. + + String + + String + + + None + + + Global + + Sets the parameters of the Global policy instance to the values in the specified policy instance. + + + SwitchParameter + + + False + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsCallingPolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + + Grant-CsTeamsCallingPolicy + + Group + + Specifies the group used for the group policy assignment. String @@ -8139,9 +8475,33 @@ Tag:wld-policy2 False False + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + Grant-CsTeamsCallingPolicy + + Identity + + The user object to whom the policy is being assigned. + + String + + String + + + None + PolicyName @@ -8165,98 +8525,37 @@ Tag:wld-policy2 False False - - Global - - Sets the parameters of the Global policy instance to the values in the specified policy instance. - - - SwitchParameter - - - False - - - - Grant-CsTeamsCallingPolicy - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - PolicyName - - The name of the policy being assigned. To remove an existing user level policy assignment, specify PolicyName as $null. - - String - - String - - - None - - - PassThru - - Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsCallingPolicy cmdlet does not pass objects through the pipeline. - - - SwitchParameter - - - False - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - Identity + + Global - The user object to whom the policy is being assigned. + Sets the parameters of the Global policy instance to the values in the specified policy instance. - String + SwitchParameter - String + SwitchParameter - None + False - - PassThru + + Group - Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsCallingPolicy cmdlet does not pass objects through the pipeline. + Specifies the group used for the group policy assignment. - SwitchParameter + String - SwitchParameter + String - False + None - - PolicyName + + Identity - The name of the policy being assigned. To remove an existing user level policy assignment, specify PolicyName as $null. + The user object to whom the policy is being assigned. String @@ -8266,9 +8565,9 @@ Tag:wld-policy2 False None - Global + PassThru - Sets the parameters of the Global policy instance to the values in the specified policy instance. + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsCallingPolicy cmdlet does not pass objects through the pipeline. SwitchParameter @@ -8277,10 +8576,10 @@ Tag:wld-policy2 False False - - Group + + PolicyName - Specifies the group used for the group policy assignment. + The name of the policy being assigned. To remove an existing user level policy assignment, specify PolicyName as $null. String @@ -8344,23 +8643,23 @@ Tag:wld-policy2 False Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csteamscallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscallingpolicy Set-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamscallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallingpolicy Remove-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamscallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallingpolicy Get-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamscallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallingpolicy New-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamscallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallingpolicy @@ -8731,7 +9030,7 @@ Tag:wld-policy2 False Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csteamseventspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamseventspolicy @@ -8990,7 +9289,7 @@ Tag:wld-policy2 False Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csteamsfilespolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsfilespolicy Grant-CsTeamsFilesPolicy @@ -9252,23 +9551,23 @@ Tag:wld-policy2 False Online Version: - https://learn.microsoft.com/powershell/module/teams/Grant-CsTeamsMediaConnectivityPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/Grant-CsTeamsMediaConnectivityPolicy New-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsmediaconnectivitypolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmediaconnectivitypolicy Remove-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsmediaconnectivitypolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmediaconnectivitypolicy Get-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsmediaconnectivitypolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmediaconnectivitypolicy Set-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsmediaconnectivitypolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmediaconnectivitypolicy @@ -9348,28 +9647,28 @@ Tag:wld-policy2 False None - - Rank + + Force - The rank of the policy assignment, relative to other group policy assignments for the same policy type. + Suppresses any confirmation prompts that would otherwise be displayed before making changes. - Int32 - Int32 + SwitchParameter - None + False - - Force + + Rank - Suppresses any confirmation prompts that would otherwise be displayed before making changes. + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + Int32 - SwitchParameter + Int32 - False + None @@ -9386,32 +9685,44 @@ Tag:wld-policy2 False None - - Identity + + Force - The user you want to grant policy to. This can be specified as an SIP address, UserPrincipalName, or ObjectId. + Suppresses any confirmation prompts that would otherwise be displayed before making changes. - String - String + SwitchParameter - None + False - - Force + + Identity - Suppresses any confirmation prompts that would otherwise be displayed before making changes. + The user you want to grant policy to. This can be specified as an SIP address, UserPrincipalName, or ObjectId. + String - SwitchParameter + String - False + None + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + SwitchParameter + + SwitchParameter + + + False + Global @@ -9472,18 +9783,6 @@ Tag:wld-policy2 False None - - Force - - Suppresses any confirmation prompts that would otherwise be displayed before making changes. - - SwitchParameter - - SwitchParameter - - - False - @@ -9511,27 +9810,27 @@ Tag:wld-policy2 False Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csteamsmeetingbrandingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingbrandingpolicy Get-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsmeetingbrandingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingbrandingpolicy Grant-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsmeetingbrandingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingbrandingpolicy New-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsmeetingbrandingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingbrandingpolicy Remove-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsmeetingbrandingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingbrandingpolicy Set-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsmeetingbrandingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingbrandingpolicy @@ -9552,32 +9851,33 @@ Tag:wld-policy2 False Grant-CsTeamsMeetingTemplatePermissionPolicy - PolicyName + Force - Specifies the Identity of the policy to assign to the user or group. + > Applicable: Microsoft Teams + Forces the policy assignment. - String - String + SwitchParameter - None + False - - Identity + + Global - This is the identifier of the user that the policy should be assigned to. + > Applicable: Microsoft Teams + This is the equivalent to `-Identity Global`. - String - String + SwitchParameter - None + False Group + > Applicable: Microsoft Teams This is the identifier of the group that the policy should be assigned to. String @@ -9587,27 +9887,31 @@ Tag:wld-policy2 False None - - Global + + Identity - This is the equivalent to `-Identity Global`. + > Applicable: Microsoft Teams + This is the identifier of the user that the policy should be assigned to. + String - SwitchParameter + String - False + None - Force + PolicyName - Forces the policy assignment. + > Applicable: Microsoft Teams + Specifies the Identity of the policy to assign to the user or group. + String - SwitchParameter + String - False + None Rank @@ -9625,32 +9929,35 @@ Tag:wld-policy2 False - PolicyName + Force - Specifies the Identity of the policy to assign to the user or group. + > Applicable: Microsoft Teams + Forces the policy assignment. - String + SwitchParameter - String + SwitchParameter - None + False - - Identity + + Global - This is the identifier of the user that the policy should be assigned to. + > Applicable: Microsoft Teams + This is the equivalent to `-Identity Global`. - String + SwitchParameter - String + SwitchParameter - None + False Group + > Applicable: Microsoft Teams This is the identifier of the group that the policy should be assigned to. String @@ -9660,29 +9967,31 @@ Tag:wld-policy2 False None - - Global + + Identity - This is the equivalent to `-Identity Global`. + > Applicable: Microsoft Teams + This is the identifier of the user that the policy should be assigned to. - SwitchParameter + String - SwitchParameter + String - False + None - Force + PolicyName - Forces the policy assignment. + > Applicable: Microsoft Teams + Specifies the Identity of the policy to assign to the user or group. - SwitchParameter + String - SwitchParameter + String - False + None Rank @@ -9716,47 +10025,46 @@ Tag:wld-policy2 False Online Version: - https://learn.microsoft.com/powershell/module/teams/Grant-CsTeamsMeetingTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/Grant-CsTeamsMeetingTemplatePermissionPolicy Get-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsmeetingtemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingtemplatepermissionpolicy New-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsmeetingtemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingtemplatepermissionpolicy Set-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsmeetingtemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingtemplatepermissionpolicy Remove-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsmeetingtemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingtemplatepermissionpolicy - Grant-CsTeamsRecordingRollOutPolicy + Grant-CsTeamsPersonalAttendantPolicy Grant - CsTeamsRecordingRollOutPolicy + CsTeamsPersonalAttendantPolicy - The CsTeamsRecordingRollOutPolicy controls roll out of the change that governs the storage for meeting recordings. + Limited Preview: Functionality described in this document is currently in limited preview and only authorized organizations have access. + Assigns a specific Teams Personal Attendant Policy to a user, a group of users, or sets the Global policy instance. - The CsTeamsRecordingRollOutPolicy controls roll out of the change that governs the storage for meeting recordings. This policy would be deprecated over time as this is only to allow IT admins to phase the roll out of this breaking change. - The Grant-CsTeamsRecordingRollOutPolicy cmdlet allows administrators to assign a CsTeamsRecordingRollOutPolicy at the per-user scope. - This command is available from Teams powershell module 6.1.1-preview and above. + The Teams Personal Attendant Policies designate how users are able to use personal attendant and its functionalities within Microsoft Teams. This cmdlet allows admins to grant user level policies to individual users, to members of a group, or to set the Global policy instance. - Grant-CsTeamsRecordingRollOutPolicy - + Grant-CsTeamsPersonalAttendantPolicy + Identity - Indicates the Identity of the user account the policy should be assigned to. User Identities can be specified using one of four formats: 1) the user's SIP address; 2) the user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. + The user object to whom the policy is being assigned. String @@ -9765,10 +10073,96 @@ Tag:wld-policy2 False None - + PolicyName - The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + The name of the policy being assigned. To remove an existing user level policy assignment, specify PolicyName as $null. + + String + + String + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsPersonalAttendantPolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + + Grant-CsTeamsPersonalAttendantPolicy + + PolicyName + + The name of the policy being assigned. To remove an existing user level policy assignment, specify PolicyName as $null. + + String + + String + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsPersonalAttendantPolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + Global + + Sets the parameters of the Global policy instance to the values in the specified policy instance. + + + SwitchParameter + + + False + + + + Grant-CsTeamsPersonalAttendantPolicy + + PolicyName + + The name of the policy being assigned. To remove an existing user level policy assignment, specify PolicyName as $null. + + String + + String + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsPersonalAttendantPolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. String @@ -9777,13 +10171,25 @@ Tag:wld-policy2 False None + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + - + Identity - Indicates the Identity of the user account the policy should be assigned to. User Identities can be specified using one of four formats: 1) the user's SIP address; 2) the user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. + The user object to whom the policy is being assigned. String @@ -9792,10 +10198,10 @@ Tag:wld-policy2 False None - + PolicyName - The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + The name of the policy being assigned. To remove an existing user level policy assignment, specify PolicyName as $null. String @@ -9804,6 +10210,54 @@ Tag:wld-policy2 False None + + PassThru + + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsPersonalAttendantPolicy cmdlet does not pass objects through the pipeline. + + SwitchParameter + + SwitchParameter + + + False + + + Global + + Sets the parameters of the Global policy instance to the values in the specified policy instance. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + @@ -9827,42 +10281,76 @@ Tag:wld-policy2 False - + The cmdlet is available in Teams PowerShell module 7.2.1-preview or later. -------------------------- Example 1 -------------------------- - PS C:\> Grant-CsTeamsMeetingPolicy -identity "Ken Myer" -PolicyName OrganizerPolicy + Grant-CsTeamsPersonalAttendantPolicy -identity user1@contoso.com -PolicyName SalesPersonalAttendantPolicy - In this example, a user with identity "Ken Myer" is being assigned the OrganizerPolicy + Assigns the TeamsPersonalAttendantPolicy called "SalesPersonalAttendantPolicy" to user1@contoso.com + + + + -------------------------- Example 2 -------------------------- + Grant-CsTeamsPersonalAttendantPolicy -Global -PolicyName SalesPersonalAttendantPolicy + + Assigns the TeamsPersonalAttendantPolicy called "SalesPersonalAttendantPolicy" to the Global policy instance. This sets the parameters in the Global policy instance to the values found in the SalesPersonalAttendantPolicy instance. + + + + -------------------------- Example 3 -------------------------- + Grant-CsTeamsPersonalAttendantPolicy -Group sales@contoso.com -Rank 10 -PolicyName SalesPersonalAttendantPolicy + + Assigns the TeamsPersonalAttendantPolicy called "SalesPersonalAttendantPolicy" to the members of the group sales@contoso.com. Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csteamsrecordingrolloutpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamspersonalattendantpolicy + + + New-CsTeamsPersonalAttendantPolicy + + + + Set-CsTeamsPersonalAttendantPolicy + + + + Get-CsTeamsPersonalAttendantPolicy + + + + Remove-CsTeamsPersonalAttendantPolicy + - Grant-CsTeamsSharedCallingRoutingPolicy + Grant-CsTeamsRecordingRollOutPolicy Grant - CsTeamsSharedCallingRoutingPolicy + CsTeamsRecordingRollOutPolicy - Assigns a specific Teams shared calling routing policy to a user, a group of users, or sets the Global policy instance. + The CsTeamsRecordingRollOutPolicy controls roll out of the change that governs the storage for meeting recordings. - + + The CsTeamsRecordingRollOutPolicy controls roll out of the change that governs the storage for meeting recordings. This policy would be deprecated over time as this is only to allow IT admins to phase the roll out of this breaking change. + The Grant-CsTeamsRecordingRollOutPolicy cmdlet allows administrators to assign a CsTeamsRecordingRollOutPolicy at the per-user scope. + This command is available from Teams powershell module 6.1.1-preview and above. + - Grant-CsTeamsSharedCallingRoutingPolicy - + Grant-CsTeamsRecordingRollOutPolicy + Identity - Indicates the Identity of the user account to be assigned the per-user Teams shared calling routing policy. User identities can be specified using one of the following formats: the user's SIP address, the user's user principal name (UPN), or the user's ObjectId or Identity. + Indicates the Identity of the user account the policy should be assigned to. User Identities can be specified using one of four formats: 1) the user's SIP address; 2) the user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. String @@ -9871,11 +10359,10 @@ Tag:wld-policy2 False None - + PolicyName - Name of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Seattle has a PolicyName equal to Seattle. - To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. String @@ -9884,9 +10371,94 @@ Tag:wld-policy2 False None + + + + + Identity + + Indicates the Identity of the user account the policy should be assigned to. User Identities can be specified using one of four formats: 1) the user's SIP address; 2) the user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. + + String + + String + + + None + + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Grant-CsTeamsMeetingPolicy -identity "Ken Myer" -PolicyName OrganizerPolicy + + In this example, a user with identity "Ken Myer" is being assigned the OrganizerPolicy + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsrecordingrolloutpolicy + + + + + + Grant-CsTeamsSharedCallingRoutingPolicy + Grant + CsTeamsSharedCallingRoutingPolicy + + Assigns a specific Teams shared calling routing policy to a user, a group of users, or sets the Global policy instance. + + + + The `Grant-CsTeamsSharedCallingRoutingPolicy` cmdlet assigns a Teams shared calling routing policy to a user, a group of users, or sets the Global policy instance. This cmdlet is used to manage how calls are routed in Microsoft Teams, allowing administrators to control call handling and routing behavior for users within their organization. + + + + Grant-CsTeamsSharedCallingRoutingPolicy Force + > Applicable: Microsoft Teams Suppresses any confirmation prompts that would otherwise be displayed before making changes. @@ -9895,22 +10467,6 @@ Tag:wld-policy2 False False - - - Grant-CsTeamsSharedCallingRoutingPolicy - - PolicyName - - Name of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Seattle has a PolicyName equal to Seattle. - To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). - - String - - String - - - None - Global @@ -9922,16 +10478,18 @@ Tag:wld-policy2 False False - - Force + + PolicyName - Suppresses any confirmation prompts that would otherwise be displayed before making changes. + Name of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Seattle has a PolicyName equal to Seattle. + To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). + String - SwitchParameter + String - False + None @@ -9948,6 +10506,18 @@ Tag:wld-policy2 False None + + Force + + > Applicable: Microsoft Teams + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + + SwitchParameter + + + False + PolicyName @@ -9973,9 +10543,13 @@ Tag:wld-policy2 False None + + + Grant-CsTeamsSharedCallingRoutingPolicy Force + > Applicable: Microsoft Teams Suppresses any confirmation prompts that would otherwise be displayed before making changes. @@ -9984,33 +10558,46 @@ Tag:wld-policy2 False False + + Identity + + Indicates the Identity of the user account to be assigned the per-user Teams shared calling routing policy. User identities can be specified using one of the following formats: the user's SIP address, the user's user principal name (UPN), or the user's ObjectId or Identity. + + String + + String + + + None + + + PolicyName + + Name of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Seattle has a PolicyName equal to Seattle. + To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). + + String + + String + + + None + - - Identity - - Indicates the Identity of the user account to be assigned the per-user Teams shared calling routing policy. User identities can be specified using one of the following formats: the user's SIP address, the user's user principal name (UPN), or the user's ObjectId or Identity. - - String - - String - - - None - - - PolicyName + + Force - Name of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Seattle has a PolicyName equal to Seattle. - To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). + > Applicable: Microsoft Teams + Suppresses any confirmation prompts that would otherwise be displayed before making changes. - String + SwitchParameter - String + SwitchParameter - None + False Global @@ -10036,29 +10623,42 @@ Tag:wld-policy2 False None + + Identity + + Indicates the Identity of the user account to be assigned the per-user Teams shared calling routing policy. User identities can be specified using one of the following formats: the user's SIP address, the user's user principal name (UPN), or the user's ObjectId or Identity. + + String + + String + + + None + - Rank + PolicyName - The rank of the policy assignment, relative to other group policy assignments for the same policy type. + Name of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Seattle has a PolicyName equal to Seattle. + To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). - Int32 + String - Int32 + String None - - Force + + Rank - Suppresses any confirmation prompts that would otherwise be displayed before making changes. + The rank of the policy assignment, relative to other group policy assignments for the same policy type. - SwitchParameter + Int32 - SwitchParameter + Int32 - False + None @@ -10087,23 +10687,23 @@ Tag:wld-policy2 False Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csteamssharedcallingroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamssharedcallingroutingpolicy Get-CsTeamsSharedCallingRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamssharedcallingroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamssharedcallingroutingpolicy Set-CsTeamsSharedCallingRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamssharedcallingroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamssharedcallingroutingpolicy Remove-CsTeamsSharedCallingRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamssharedcallingroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamssharedcallingroutingpolicy New-CsTeamsSharedCallingRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamssharedcallingroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamssharedcallingroutingpolicy @@ -10122,21 +10722,21 @@ Tag:wld-policy2 False Grant-CsTeamsShiftsPolicy - - Identity + + Global - UserId to whom the policy is granted. Email id is acceptable. + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". - UserIdParameter - UserIdParameter + SwitchParameter - None + False PolicyName + > Applicable: Microsoft Teams The name of the TeamsShiftsPolicy instance that is being applied to the user. String @@ -10146,6 +10746,17 @@ Tag:wld-policy2 False None + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + Grant-CsTeamsShiftsPolicy @@ -10164,6 +10775,7 @@ Tag:wld-policy2 False PolicyName + > Applicable: Microsoft Teams The name of the TeamsShiftsPolicy instance that is being applied to the user. String @@ -10188,20 +10800,23 @@ Tag:wld-policy2 False Grant-CsTeamsShiftsPolicy - - Global + + Identity - When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". + > Applicable: Microsoft Teams + UserId to whom the policy is granted. Email id is acceptable. + UserIdParameter - SwitchParameter + UserIdParameter - False + None PolicyName + > Applicable: Microsoft Teams The name of the TeamsShiftsPolicy instance that is being applied to the user. String @@ -10211,91 +10826,82 @@ Tag:wld-policy2 False None - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - - SwitchParameter - - - False - - - Identity + + Force - UserId to whom the policy is granted. Email id is acceptable. + Suppresses the display of any non-fatal error message that might arise when running the command. - UserIdParameter + SwitchParameter - UserIdParameter + SwitchParameter - None + False - - PolicyName + + Global - The name of the TeamsShiftsPolicy instance that is being applied to the user. + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". - String + SwitchParameter - String + SwitchParameter - None + False - - Rank + + Group - The rank of the policy assignment, relative to other group policy assignments for the same policy type. + Specifies the group used for the group policy assignment. - Int32 + String - Int32 + String None - - Group + + Identity - Specifies the group used for the group policy assignment. + > Applicable: Microsoft Teams + UserId to whom the policy is granted. Email id is acceptable. - String + UserIdParameter - String + UserIdParameter None - - Global + + PolicyName - When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". + > Applicable: Microsoft Teams + The name of the TeamsShiftsPolicy instance that is being applied to the user. - SwitchParameter + String - SwitchParameter + String - False + None - - Force + + Rank - Suppresses the display of any non-fatal error message that might arise when running the command. + The rank of the policy assignment, relative to other group policy assignments for the same policy type. - SwitchParameter + Int32 - SwitchParameter + Int32 - False + None @@ -10335,23 +10941,23 @@ Tag:wld-policy2 False Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-teamsshiftspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-teamsshiftspolicy Get-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftspolicy New-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsshiftspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftspolicy Set-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsshiftspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftspolicy Remove-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsshiftspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftspolicy @@ -10583,7 +11189,7 @@ Tag:wld-policy2 False Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csteamsvdipolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsvdipolicy @@ -10843,23 +11449,23 @@ Tag:wld-policy2 False Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csteamsvirtualappointmentspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsvirtualappointmentspolicy Get-CsTeamsVirtualAppointmentsPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsvirtualappointmentspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsvirtualappointmentspolicy New-CsTeamsVirtualAppointmentsPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsvirtualappointmentspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsvirtualappointmentspolicy Set-CsTeamsVirtualAppointmentsPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsvirtualappointmentspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsvirtualappointmentspolicy Remove-CsTeamsVirtualAppointmentsPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsvirtualappointmentspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsvirtualappointmentspolicy @@ -11119,23 +11725,23 @@ Tag:wld-policy2 False Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csteamsworklocationdetectionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsworklocationdetectionpolicy Get-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsworklocationdetectionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsworklocationdetectionpolicy New-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsworklocationdetectionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsworklocationdetectionpolicy Set-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsworklocationdetectionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsworklocationdetectionpolicy Remove-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsworklocationdetectionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsworklocationdetectionpolicy @@ -11146,19 +11752,17 @@ Tag:wld-policy2 False CsExternalAccessPolicy Enables you to create a new external access policy. - External access policies determine whether or not your users can: 1) communicate with users who have Session Initiation Protocol (SIP) accounts with a federated organization; 2) communicate with users who are using custom applications built with Azure Communication Services (https://learn.microsoft.com/azure/communication-services/concepts/teams-interop); 3) access Skype for Business Server over the Internet, without having to log on to your internal network; 4) communicate with users who have SIP accounts with a public instant messaging (IM) provider such as Skype; and, 5)communicate with people who are using Teams with an account that's not managed by an organization. - This cmdlet was introduced in Lync Server 2010. - For information about external access in Microsoft Teams, see Manage external access in Microsoft Teams (https://learn.microsoft.com/microsoftteams/manage-external-access) and [Teams and Skype interoperability](https://learn.microsoft.com/microsoftteams/teams-skype-interop)for specific details. - When you install Skype for Business Server your users are only allowed to exchange instant messages and presence information among themselves: by default, they can only communicate with other people who have SIP accounts in your Active Directory Domain Services. In addition, users are not allowed to access Skype for Business Server over the Internet; instead, they must be logged on to your internal network before they will be able to log on to Skype for Business Server. + This cmdlet was introduced in Lync Server 2010. + For information about external access in Microsoft Teams, see Manage external access in Microsoft Teams (https://learn.microsoft.com/microsoftteams/manage-external-access) and [Teams and Skype interoperability](https://learn.microsoft.com/microsoftteams/teams-skype-interop)for specific details. When you install Skype for Business Server your users are only allowed to exchange instant messages and presence information among themselves: by default, they can only communicate with other people who have SIP accounts in your Active Directory Domain Services. In addition, users are not allowed to access Skype for Business Server over the Internet; instead, they must be logged on to your internal network before they will be able to log on to Skype for Business Server. That might be sufficient to meet your communication needs. If it doesn't meet your needs you can use external access policies to extend the ability of your users to communicate and collaborate. External access policies can grant (or revoke) the ability of your users to do any or all of the following: 1. Communicate with people who have SIP accounts with a federated organization. Note that enabling federation alone will not provide users with this capability. Instead, you must enable federation and then assign users an external access policy that gives them the right to communicate with federated users. - 2. (Microsoft Teams only) Communicate with users who are using custom applications built with Azure Communication Services (ACS) (https://learn.microsoft.com/azure/communication-services/concepts/teams-interop). this policy setting only applies if acs federation has been enabled at the tenant level using the cmdlet [Set-CsTeamsAcsFederationConfiguration](https://learn.microsoft.com/powershell/module/teams/set-csteamsacsfederationconfiguration). + 2. (Microsoft Teams only) Communicate with users who are using custom applications built with Azure Communication Services (ACS) (https://learn.microsoft.com/azure/communication-services/concepts/teams-interop). this policy setting only applies if acs federation has been enabled at the tenant level using the cmdlet [Set-CsTeamsAcsFederationConfiguration](https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsacsfederationconfiguration). 3. Access Skype for Business Server over the Internet, without having to first log on to your internal network. This enables your users to use Skype for Business and log on to Skype for Business Server from an Internet café or other remote location. 4. Communicate with people who have SIP accounts with a public instant messaging service such as Skype. - 5. (Microsoft Teams Only) Communicate with people who are using Teams with an account that's not managed by an organization. This policy only applies if Teams Consumer Federation has been enabled at the tenant level using the cmdlet Set-CsTenantFederationConfiguration (https://learn.microsoft.com/powershell/module/teams/set-cstenantfederationconfiguration)or Teams Admin Center under the External Access setting. + 5. (Microsoft Teams Only) Communicate with people who are using Teams with an account that's not managed by an organization. This policy only applies if Teams Consumer Federation has been enabled at the tenant level using the cmdlet Set-CsTenantFederationConfiguration (https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantfederationconfiguration)or Teams Admin Center under the External Access setting. When you install Skype for Business Server, a global external access policy is automatically created for you. In addition to the global policy, you can also create custom external access policies at either the site or the per-user scope. If you create an external access policy at the site scope, that policy will automatically be assigned to the site upon creation. If you create an external access policy at the per-user scope, that policy will be created but will not be assigned to any users. To assign the policy to a user or group of users, use the Grant-CsExternalAccessPolicy cmdlet. New external access policies can be created by using the New-CsExternalAccessPolicy cmdlet. Note that these policies can only be created at the site or the per-user scope; you cannot create a new policy at the global scope. In addition, you can have only one external access policy per site: if the Redmond site already has been assigned an external access policy you cannot create a second policy for the site. The following parameters are not applicable to Skype for Business Online/Microsoft Teams: Description, EnableXmppAccess, Force, Identity, InMemory, PipelineVariable, and Tenant @@ -11186,7 +11790,9 @@ Tag:wld-policy2 False AllowedExternalDomains - Indicates the domains that are allowed to communicate with the users of this policy. This is referenced only when `CommunicationWithExternalOrgs` is set to be `AllowSpecificExternalDomains`. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + > [!NOTE] > Please note that this parameter is in Private Preview. + Specifies the external domains allowed to communicate with users assigned to this policy. This setting is applicable only when `CommunicationWithExternalOrgs` is configured to `AllowSpecificExternalDomains`. This setting can be modified only in custom policy. In Global (default) policy `CommunicationWithExternalOrgs` can only be set to `OrganizationDefault` and cannot be changed. List @@ -11198,7 +11804,9 @@ Tag:wld-policy2 False BlockedExternalDomains - Indicates the domains that are blocked from communicating with the users of this policy. This is referenced only when `CommunicationWithExternalOrgs` is set to be `BlockSpecificExternalDomains`. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + > [!NOTE] > Please note that this parameter is in Private Preview. + Specifies the external domains blocked from communicating with users assigned to this policy. This setting is applicable only when `CommunicationWithExternalOrgs` is configured to `BlockSpecificExternalDomains`. This setting can be modified only in custom policy. In Global (default) policy `CommunicationWithExternalOrgs` can only be set to `OrganizationDefault` and cannot be changed. List @@ -11210,12 +11818,16 @@ Tag:wld-policy2 False CommunicationWithExternalOrgs - Indicates how the users get assigned by this policy can communicate with the external orgs. There are 5 options: - - OrganizationDefault: the users of this policy will follow the federation settings defined in TenantFederationConfiguration - - AllowAllExternalDomains: the users are open to communicate with all domains - - AllowSpecificExternalDomains: the users can only communicate with the users of the domains defined in `AllowedExternalDomains` - - BlockSpecificExternalDomains: only users from the domains defined in `BlockedExternalDomains` are blocked from communicating with the users of this policy - - BlockAllExternalDomains: the users are not able to communicate with any external domains + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + > [!NOTE] > Please note that this parameter is in Private Preview. + Indicates how users assigned to the policy can communicate with external organizations (domains). This setting has 5 possible values: + - OrganizationDefault: users follow the federation settings specified in `TenantFederationConfiguration`. This is the default value. + - AllowAllExternalDomains: users are allowed to communicate with all domains. + - AllowSpecificExternalDomains: users can communicate with external domains listed in `AllowedExternalDomains`. + - BlockSpecificExternalDomains: users are blocked from communicating with domains listed in `BlockedExternalDomains`. + - BlockAllExternalDomains: users cannot communicate with any external domains. + + The setting is only applicable when `EnableFederationAccess` is set to true. This setting can only be modified in custom policies. In the Global (default) policy, it is fixed to `OrganizationDefault` and cannot be changed. String @@ -11250,6 +11862,7 @@ Tag:wld-policy2 False EnableAcsFederationAccess + > Applicable: Microsoft Teams Indicates whether Teams meetings organized by the user can be joined by users of customer applications built using Azure Communication Services (ACS). This policy setting only applies if ACS Teams federation has been enabled at the tenant level using the cmdlet Set-CsTeamsAcsFederationConfiguration. Additionally, Azure Communication Services users would be able to call Microsoft 365 users that have assigned policies with enabled federation. To enable for all users, use the Set-CsExternalAccessPolicy cmdlet to update the global policy, setting the value to True. It can be disabled for selected users by assigning them a policy with federation disabled. To enable just for a selected set of users, use the Set-CsExternalAccessPolicy cmdlet to update the global policy, setting the value to False. Then assign selected users a policy with federation enabled. @@ -11285,18 +11898,6 @@ Tag:wld-policy2 False None - - EnablePublicCloudAccess - - Indicates whether the user is allowed to communicate with people who have SIP accounts with a public Internet connectivity provider such as MSN. Read Manage external access in Microsoft Teams (https://learn.microsoft.com/microsoftteams/manage-external-access)to get more information about the effect of this parameter in Microsoft Teams. The default value is False. - - Boolean - - Boolean - - - None - EnablePublicCloudAudioVideoAccess @@ -11366,13 +11967,17 @@ Tag:wld-policy2 False FederatedBilateralChats This setting enables bi-lateral chats for the users included in the messaging policy. + Some organizations may want to restrict who users are able to message in Teams. While organizations have always been able to limit users' chats to only other internal users, organizations can now limit users' chat ability to only chat with other internal users and users in one other organization via the bilateral chat policy. + Once external access and bilateral policy is set up, users with the policy can be in external group chats only with a maximum of two organizations. When they try to create a new external chat with users from more than two tenants or add a user from a third tenant to an existing external chat, a system message will be shown preventing this action. + Users with bilateral policy applied are also removed from existing external group chats with more than two organizations. + This policy doesn't apply to meetings, meeting chats, or channels. Boolean Boolean - True + False Force @@ -11438,27 +12043,12 @@ Tag:wld-policy2 False - - Identity - - Unique Identity to be assigned to the policy. New external access policies can be created at the site or per-user scope. - To create a new site policy, use the prefix "site:" and the name of the site as your Identity. - For example, use this syntax to create a new policy for the Redmond site: `-Identity site:Redmond.` - To create a new per-user policy, use an Identity similar to this: `-Identity SalesAccessPolicy.` - Note that you cannot create a new global policy; if you want to make changes to the global policy, use the Set-CsExternalAccessPolicy cmdlet instead. - Likewise, you cannot create a new site or per-user policy if a policy with that Identity already exists. If you need to make changes to an existing policy, use the Set-CsExternalAccessPolicy cmdlet. - - XdsIdentity - - XdsIdentity - - - None - AllowedExternalDomains - Indicates the domains that are allowed to communicate with the users of this policy. This is referenced only when `CommunicationWithExternalOrgs` is set to be `AllowSpecificExternalDomains`. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + > [!NOTE] > Please note that this parameter is in Private Preview. + Specifies the external domains allowed to communicate with users assigned to this policy. This setting is applicable only when `CommunicationWithExternalOrgs` is configured to `AllowSpecificExternalDomains`. This setting can be modified only in custom policy. In Global (default) policy `CommunicationWithExternalOrgs` can only be set to `OrganizationDefault` and cannot be changed. List @@ -11470,7 +12060,9 @@ Tag:wld-policy2 False BlockedExternalDomains - Indicates the domains that are blocked from communicating with the users of this policy. This is referenced only when `CommunicationWithExternalOrgs` is set to be `BlockSpecificExternalDomains`. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + > [!NOTE] > Please note that this parameter is in Private Preview. + Specifies the external domains blocked from communicating with users assigned to this policy. This setting is applicable only when `CommunicationWithExternalOrgs` is configured to `BlockSpecificExternalDomains`. This setting can be modified only in custom policy. In Global (default) policy `CommunicationWithExternalOrgs` can only be set to `OrganizationDefault` and cannot be changed. List @@ -11482,12 +12074,16 @@ Tag:wld-policy2 False CommunicationWithExternalOrgs - Indicates how the users get assigned by this policy can communicate with the external orgs. There are 5 options: - - OrganizationDefault: the users of this policy will follow the federation settings defined in TenantFederationConfiguration - - AllowAllExternalDomains: the users are open to communicate with all domains - - AllowSpecificExternalDomains: the users can only communicate with the users of the domains defined in `AllowedExternalDomains` - - BlockSpecificExternalDomains: only users from the domains defined in `BlockedExternalDomains` are blocked from communicating with the users of this policy - - BlockAllExternalDomains: the users are not able to communicate with any external domains + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + > [!NOTE] > Please note that this parameter is in Private Preview. + Indicates how users assigned to the policy can communicate with external organizations (domains). This setting has 5 possible values: + - OrganizationDefault: users follow the federation settings specified in `TenantFederationConfiguration`. This is the default value. + - AllowAllExternalDomains: users are allowed to communicate with all domains. + - AllowSpecificExternalDomains: users can communicate with external domains listed in `AllowedExternalDomains`. + - BlockSpecificExternalDomains: users are blocked from communicating with domains listed in `BlockedExternalDomains`. + - BlockAllExternalDomains: users cannot communicate with any external domains. + + The setting is only applicable when `EnableFederationAccess` is set to true. This setting can only be modified in custom policies. In the Global (default) policy, it is fixed to `OrganizationDefault` and cannot be changed. String @@ -11523,6 +12119,7 @@ Tag:wld-policy2 False EnableAcsFederationAccess + > Applicable: Microsoft Teams Indicates whether Teams meetings organized by the user can be joined by users of customer applications built using Azure Communication Services (ACS). This policy setting only applies if ACS Teams federation has been enabled at the tenant level using the cmdlet Set-CsTeamsAcsFederationConfiguration. Additionally, Azure Communication Services users would be able to call Microsoft 365 users that have assigned policies with enabled federation. To enable for all users, use the Set-CsExternalAccessPolicy cmdlet to update the global policy, setting the value to True. It can be disabled for selected users by assigning them a policy with federation disabled. To enable just for a selected set of users, use the Set-CsExternalAccessPolicy cmdlet to update the global policy, setting the value to False. Then assign selected users a policy with federation enabled. @@ -11558,18 +12155,6 @@ Tag:wld-policy2 False None - - EnablePublicCloudAccess - - Indicates whether the user is allowed to communicate with people who have SIP accounts with a public Internet connectivity provider such as MSN. Read Manage external access in Microsoft Teams (https://learn.microsoft.com/microsoftteams/manage-external-access)to get more information about the effect of this parameter in Microsoft Teams. The default value is False. - - Boolean - - Boolean - - - None - EnablePublicCloudAudioVideoAccess @@ -11639,13 +12224,17 @@ Tag:wld-policy2 False FederatedBilateralChats This setting enables bi-lateral chats for the users included in the messaging policy. + Some organizations may want to restrict who users are able to message in Teams. While organizations have always been able to limit users' chats to only other internal users, organizations can now limit users' chat ability to only chat with other internal users and users in one other organization via the bilateral chat policy. + Once external access and bilateral policy is set up, users with the policy can be in external group chats only with a maximum of two organizations. When they try to create a new external chat with users from more than two tenants or add a user from a third tenant to an existing external chat, a system message will be shown preventing this action. + Users with bilateral policy applied are also removed from existing external group chats with more than two organizations. + This policy doesn't apply to meetings, meeting chats, or channels. Boolean Boolean - True + False Force @@ -11659,6 +12248,23 @@ Tag:wld-policy2 False False + + Identity + + Unique Identity to be assigned to the policy. New external access policies can be created at the site or per-user scope. + To create a new site policy, use the prefix "site:" and the name of the site as your Identity. + For example, use this syntax to create a new policy for the Redmond site: `-Identity site:Redmond.` + To create a new per-user policy, use an Identity similar to this: `-Identity SalesAccessPolicy.` + Note that you cannot create a new global policy; if you want to make changes to the global policy, use the Set-CsExternalAccessPolicy cmdlet instead. + Likewise, you cannot create a new site or per-user policy if a policy with that Identity already exists. If you need to make changes to an existing policy, use the Set-CsExternalAccessPolicy cmdlet. + + XdsIdentity + + XdsIdentity + + + None + InMemory @@ -11754,7 +12360,7 @@ Tag:wld-policy2 False - -------------------------- Example 2 ------------------------ + -------------------------- Example 2 -------------------------- Set-CsExternalAccessPolicy -Identity Global -EnableAcsFederationAccess $true New-CsExternalAccessPolicy -Identity AcsFederationNotAllowed -EnableAcsFederationAccess $false @@ -11762,7 +12368,7 @@ New-CsExternalAccessPolicy -Identity AcsFederationNotAllowed -EnableAcsFederatio - -------------------------- Example 3 ------------------------ + -------------------------- Example 3 -------------------------- New-CsExternalAccessPolicy -Identity site:Redmond -EnableTeamsConsumerAccess $True -EnableTeamsConsumerInbound $False The command shown in Example 3 creates a new external access policy that has the Identity site:Redmond; upon creation, this policy will automatically be assigned to the Redmond site. Note that this new policy enables communication with people using Teams with an account that's not managed by an organization and limits this to only be initiated by people in your organization. This means that people using Teams with an account that's not managed by an organization will not be able to discover or start a conversation with people with this policy assigned. @@ -11774,45 +12380,43 @@ New-CsExternalAccessPolicy -Identity AcsFederationNotAllowed -EnableAcsFederatio $x.EnableFederationAccess = $True -$x.EnablePublicCloudAccess = $True - $x.EnableOutsideAccess = $True Set-CsExternalAccessPolicy -Instance $x Example 4 demonstrates the use of the InMemory parameter; this parameter enables you to create an in-memory-only instance of an external access policy. After it has been created, you can modify the in-memory-only instance, then use the Set-CsExternalAccessPolicy cmdlet to transform the virtual policy into a real external access policy. - To do this, the first command in the example uses the New-CsExternalAccessPolicy cmdlet and the InMemory parameter to create a virtual policy with the Identity RedmondAccessPolicy; this virtual policy is stored in a variable named $x. The next three commands are used to modify three properties of the virtual policy: EnableFederationAccess, EnablePublicCloudAccess, and the EnableOutsideAccess. Finally, the last command uses the Set-CsExternalAccessPolicy cmdlet to create an actual per-user external access policy with the Identity RedmondAccessPolicy. If you do not call the Set-CsExternalAccessPolicy cmdlet, then the virtual policy will disappear as soon as you end your Windows PowerShell session or delete the variable $x. Should that happen, an external access policy with the Identity RedmondAccessPolicy will never be created. + To do this, the first command in the example uses the New-CsExternalAccessPolicy cmdlet and the InMemory parameter to create a virtual policy with the Identity RedmondAccessPolicy; this virtual policy is stored in a variable named $x. The next three commands are used to modify two properties of the virtual policy: EnableFederationAccess and the EnableOutsideAccess. Finally, the last command uses the Set-CsExternalAccessPolicy cmdlet to create an actual per-user external access policy with the Identity RedmondAccessPolicy. If you do not call the Set-CsExternalAccessPolicy cmdlet, then the virtual policy will disappear as soon as you end your Windows PowerShell session or delete the variable $x. Should that happen, an external access policy with the Identity RedmondAccessPolicy will never be created. - -------------------------- Example 5 ------------------------ + -------------------------- Example 5 -------------------------- New-CsExternalAccessPolicy -Identity GranularFederationExample -CommunicationWithExternalOrgs "AllowSpecificExternalDomains" -AllowedExternalDomains @("example1.com", "example2.com") Set-CsTenantFederationConfiguration -CustomizeFederation $true - In this example, we create an ExternalAccessPolicy named "GranularFederationExample" that allows communication with specific external domains, namely `example1.com` and `example2.com`. The federation policy is set to restrict communication to only these allowed domains. After that, we still have to enable the `CustomizeFederation` setting in the TenantFederationConfiguration to allow the federation settings as defined in the ExternalAccessPolicy to work. + In this example, we create an ExternalAccessPolicy named "GranularFederationExample" that allows communication with specific external domains, namely `example1.com` and `example2.com`. The federation policy is set to restrict communication to only these allowed domains. Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csexternalaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csexternalaccesspolicy Get-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/teams/get-csexternalaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csexternalaccesspolicy Grant-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csexternalaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csexternalaccesspolicy Remove-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csexternalaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csexternalaccesspolicy Set-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/teams/set-csexternalaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csexternalaccesspolicy @@ -11822,7 +12426,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true New CsOnlineVoicemailPolicy - Creates a new Online Voicemail policy. Online Voicemail policies determine whether or not voicemail transcription, profanity masking for the voicemail transcriptions, translation for the voicemail transcriptions, and editing call answer rule settings are enabled for a user. The policies also specify voicemail maximum recording length for a user and the primary and secondary voicemail system prompt languages. + Creates a new Online Voicemail policy. @@ -11843,6 +12447,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true Identity + > Applicable: Microsoft Teams A unique identifier specifying the scope, and in some cases the name, of the policy. String @@ -11852,9 +12457,34 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true None + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. + + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text about the policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + EnableEditingCallAnswerRulesSetting + > Applicable: Microsoft Teams Controls if editing call answer rule settings are enabled or disabled for a user. Possible values are $true or $false. Boolean @@ -11867,6 +12497,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true EnableTranscription + > Applicable: Microsoft Teams Allows you to disable or enable voicemail transcription. Possible values are $true or $false. Boolean @@ -11879,6 +12510,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true EnableTranscriptionProfanityMasking + > Applicable: Microsoft Teams Allows you to disable or enable profanity masking for the voicemail transcriptions. Possible values are $true or $false. Boolean @@ -11891,6 +12523,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true EnableTranscriptionTranslation + > Applicable: Microsoft Teams Allows you to disable or enable translation for the voicemail transcriptions. Possible values are $true or $false. Boolean @@ -11903,6 +12536,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true MaximumRecordingLength + > Applicable: Microsoft Teams A duration of voicemail maximum recording length. The length should be between 30 seconds to 10 minutes. Duration @@ -11915,6 +12549,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true PostambleAudioFile + > Applicable: Microsoft Teams The audio file to play to the caller after the user's voicemail greeting has played and before the caller is allowed to leave a voicemail message. String @@ -11927,6 +12562,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true PreambleAudioFile + > Applicable: Microsoft Teams The audio file to play to the caller before the user's voicemail greeting is played. String @@ -11939,6 +12575,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true PreamblePostambleMandatory + > Applicable: Microsoft Teams Is playing the Pre- or Post-amble mandatory before the caller can leave a message. Boolean @@ -11951,7 +12588,8 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true PrimarySystemPromptLanguage - The primary (or first) language that voicemail system prompts will be presented in. Must also set SecondarySystemPromptLanguage. When set, this overrides the user language choice. Please see Set-CsOnlineVoicemailUserSettings (https://learn.microsoft.com/powershell/module/teams/set-csonlinevoicemailusersettings)-PromptLanguage for supported languages. + > Applicable: Microsoft Teams + The primary (or first) language that voicemail system prompts will be presented in. Must also set SecondarySystemPromptLanguage. When set, this overrides the user language choice. Please see Set-CsOnlineVoicemailUserSettings (https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailusersettings)-PromptLanguage for supported languages. String @@ -11963,7 +12601,8 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true SecondarySystemPromptLanguage - The secondary language that voicemail system prompts will be presented in. Must also set PrimarySystemPromptLanguage and may not be the same value as PrimarySystemPromptanguage. When set, this overrides the user language choice. Please see Set-CsOnlineVoicemailUserSettings (https://learn.microsoft.com/powershell/module/teams/set-csonlinevoicemailusersettings)-PromptLanguage for supported languages. + > Applicable: Microsoft Teams + The secondary language that voicemail system prompts will be presented in. Must also set PrimarySystemPromptLanguage and may not be the same value as PrimarySystemPromptanguage. When set, this overrides the user language choice. Please see Set-CsOnlineVoicemailUserSettings (https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailusersettings)-PromptLanguage for supported languages. String @@ -11975,6 +12614,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true ShareData + > Applicable: Microsoft Teams Specifies whether voicemail and transcription data are shared with the service for training and improving accuracy. Possible values are Defer and Deny. String @@ -11987,6 +12627,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true WhatIf + > Applicable: Microsoft Teams Describes what would happen if you executed the command without actually executing the command. @@ -11995,36 +12636,26 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true False - - Confirm - - Prompts you for confirmation before executing the command. - - - SwitchParameter - - - False - - - Description - - Enables administrators to provide explanatory text about the policy. For example, the Description might indicate the users the policy should be assigned to. - - String - - String - - - None - - - Identity + + Confirm - A unique identifier specifying the scope, and in some cases the name, of the policy. + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text about the policy. For example, the Description might indicate the users the policy should be assigned to. String @@ -12036,6 +12667,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true EnableEditingCallAnswerRulesSetting + > Applicable: Microsoft Teams Controls if editing call answer rule settings are enabled or disabled for a user. Possible values are $true or $false. Boolean @@ -12048,6 +12680,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true EnableTranscription + > Applicable: Microsoft Teams Allows you to disable or enable voicemail transcription. Possible values are $true or $false. Boolean @@ -12060,6 +12693,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true EnableTranscriptionProfanityMasking + > Applicable: Microsoft Teams Allows you to disable or enable profanity masking for the voicemail transcriptions. Possible values are $true or $false. Boolean @@ -12072,6 +12706,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true EnableTranscriptionTranslation + > Applicable: Microsoft Teams Allows you to disable or enable translation for the voicemail transcriptions. Possible values are $true or $false. Boolean @@ -12081,9 +12716,23 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true None + + Identity + + > Applicable: Microsoft Teams + A unique identifier specifying the scope, and in some cases the name, of the policy. + + String + + String + + + None + MaximumRecordingLength + > Applicable: Microsoft Teams A duration of voicemail maximum recording length. The length should be between 30 seconds to 10 minutes. Duration @@ -12096,6 +12745,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true PostambleAudioFile + > Applicable: Microsoft Teams The audio file to play to the caller after the user's voicemail greeting has played and before the caller is allowed to leave a voicemail message. String @@ -12108,6 +12758,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true PreambleAudioFile + > Applicable: Microsoft Teams The audio file to play to the caller before the user's voicemail greeting is played. String @@ -12120,6 +12771,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true PreamblePostambleMandatory + > Applicable: Microsoft Teams Is playing the Pre- or Post-amble mandatory before the caller can leave a message. Boolean @@ -12132,7 +12784,8 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true PrimarySystemPromptLanguage - The primary (or first) language that voicemail system prompts will be presented in. Must also set SecondarySystemPromptLanguage. When set, this overrides the user language choice. Please see Set-CsOnlineVoicemailUserSettings (https://learn.microsoft.com/powershell/module/teams/set-csonlinevoicemailusersettings)-PromptLanguage for supported languages. + > Applicable: Microsoft Teams + The primary (or first) language that voicemail system prompts will be presented in. Must also set SecondarySystemPromptLanguage. When set, this overrides the user language choice. Please see Set-CsOnlineVoicemailUserSettings (https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailusersettings)-PromptLanguage for supported languages. String @@ -12144,7 +12797,8 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true SecondarySystemPromptLanguage - The secondary language that voicemail system prompts will be presented in. Must also set PrimarySystemPromptLanguage and may not be the same value as PrimarySystemPromptanguage. When set, this overrides the user language choice. Please see Set-CsOnlineVoicemailUserSettings (https://learn.microsoft.com/powershell/module/teams/set-csonlinevoicemailusersettings)-PromptLanguage for supported languages. + > Applicable: Microsoft Teams + The secondary language that voicemail system prompts will be presented in. Must also set PrimarySystemPromptLanguage and may not be the same value as PrimarySystemPromptanguage. When set, this overrides the user language choice. Please see Set-CsOnlineVoicemailUserSettings (https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailusersettings)-PromptLanguage for supported languages. String @@ -12156,6 +12810,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true ShareData + > Applicable: Microsoft Teams Specifies whether voicemail and transcription data are shared with the service for training and improving accuracy. Possible values are Defer and Deny. String @@ -12168,6 +12823,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true WhatIf + > Applicable: Microsoft Teams Describes what would happen if you executed the command without actually executing the command. SwitchParameter @@ -12177,30 +12833,6 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true False - - Confirm - - Prompts you for confirmation before executing the command. - - SwitchParameter - - SwitchParameter - - - False - - - Description - - Enables administrators to provide explanatory text about the policy. For example, the Description might indicate the users the policy should be assigned to. - - String - - String - - - None - @@ -12221,23 +12853,23 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csonlinevoicemailpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoicemailpolicy Get-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/teams/get-csonlinevoicemailpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoicemailpolicy Set-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/teams/set-csonlinevoicemailpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailpolicy Remove-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csonlinevoicemailpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoicemailpolicy Grant-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csonlinevoicemailpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csonlinevoicemailpolicy @@ -12251,16 +12883,16 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true - The new csTeamsAIPolicy will replace the existing enrollment settings in csTeamsMeetingPolicy, providing enhanced flexibility and control for Teams meeting administrators. Unlike the current single setting, EnrollUserOverride, which applies to both face and voice enrollment, the new policy introduces two distinct settings: EnrollFace and EnrollVoice. These can be individually set to Enabled or Disabled, offering more granular control over biometric enrollments. In addition to improving the management of face and voice data, the csTeamsAIPolicy is designed to support future AI-related settings in Teams, making it a scalable solution for evolving needs. + The new csTeamsAIPolicy will replace the existing enrollment settings in csTeamsMeetingPolicy, providing enhanced flexibility and control for Teams meeting administrators. Unlike the current single setting, EnrollUserOverride, which applies to both face and voice enrollment, the new policy introduces two distinct settings: EnrollFace and EnrollVoice. These can be individually set to Enabled or Disabled, offering more granular control over biometric enrollments. A new setting, SpeakerAttributionBYOD, is also being added to csTeamsAIPolicy. This allows IT admins to turn off speaker attribution in BYOD scenarios, giving them greater control over how voice data is managed in such environments. This setting can be set to Enabled or Disabled, and will be Enabled by default. In addition to improving the management of face and voice data, the csTeamsAIPolicy is designed to support future AI-related settings in Teams, making it a scalable solution for evolving needs. This cmdlet creates a Teams AI policy. If you get an error that the policy already exists, it means that the policy already exists for your tenant. In this case, run Get-CsTeamsAIPolicy. New-CsTeamsAIPolicy - - Identity + + Description - Identity of the Teams AI policy. + Enables administrators to provide explanatory text about the Teams AI policy. For example, the Description might indicate the users the policy should be assigned to. String @@ -12274,9 +12906,9 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true Policy value of the Teams AI EnrollFace policy. EnrollFace controls user access to user face enrollment in the Teams app settings. - Boolean + String - Boolean + String Enabled @@ -12286,17 +12918,17 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true Policy value of the Teams AI EnrollVoice policy. EnrollVoice controls user access to user voice enrollment in the Teams app settings. - Boolean + String - Boolean + String Enabled - - Description + + Identity - Enables administrators to provide explanatory text about the Teams AI policy. For example, the Description might indicate the users the policy should be assigned to. + Identity of the Teams AI policy. String @@ -12305,13 +12937,25 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true None + + SpeakerAttributionBYOD + + Policy value of the Teams AI SpeakerAttributionBYOD policy. Setting to "Enabled" turns on speaker attribution in BYOD scenarios while "Disabled" will turn off the function. + + String + + String + + + Enabled + New-CsTeamsAIPolicy - - Identity + + Description - Identity of the Teams AI policy. + Enables administrators to provide explanatory text about the Teams AI policy. For example, the Description might indicate the users the policy should be assigned to. String @@ -12325,9 +12969,9 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true Policy value of the Teams AI EnrollFace policy. EnrollFace controls user access to user face enrollment in the Teams app settings. - Boolean + String - Boolean + String Enabled @@ -12337,17 +12981,17 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true Policy value of the Teams AI EnrollVoice policy. EnrollVoice controls user access to user voice enrollment in the Teams app settings. - Boolean + String - Boolean + String Enabled - - Description + + Identity - Enables administrators to provide explanatory text about the Teams AI policy. For example, the Description might indicate the users the policy should be assigned to. + Identity of the Teams AI policy. String @@ -12356,13 +13000,25 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true None + + SpeakerAttributionBYOD + + Policy value of the Teams AI SpeakerAttributionBYOD policy. Setting to "Enabled" turns on speaker attribution in BYOD scenarios while "Disabled" will turn off the function. + + String + + String + + + Enabled + - - Identity + + Description - Identity of the Teams AI policy. + Enables administrators to provide explanatory text about the Teams AI policy. For example, the Description might indicate the users the policy should be assigned to. String @@ -12376,9 +13032,9 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true Policy value of the Teams AI EnrollFace policy. EnrollFace controls user access to user face enrollment in the Teams app settings. - Boolean + String - Boolean + String Enabled @@ -12388,17 +13044,17 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true Policy value of the Teams AI EnrollVoice policy. EnrollVoice controls user access to user voice enrollment in the Teams app settings. - Boolean + String - Boolean + String Enabled - - Description + + Identity - Enables administrators to provide explanatory text about the Teams AI policy. For example, the Description might indicate the users the policy should be assigned to. + Identity of the Teams AI policy. String @@ -12407,6 +13063,18 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true None + + SpeakerAttributionBYOD + + Policy value of the Teams AI SpeakerAttributionBYOD policy. Setting to "Enabled" turns on speaker attribution in BYOD scenarios while "Disabled" will turn off the function. + + String + + String + + + Enabled + @@ -12427,23 +13095,23 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true Online Version: - https://learn.microsoft.com/powershell/module/teams/New-CsTeamsAIPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/New-CsTeamsAIPolicy Remove-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsaipolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsaipolicy Get-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsaipolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsaipolicy Set-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsaipolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsaipolicy Grant-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsaipolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsaipolicy @@ -12453,13 +13121,12 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true New CsTeamsAppPermissionPolicy - NOTE : The existence of this cmdlet is being documented for completeness, but do not use this cmdlet. We require that all creation and modification of app permission polices (not including the assignment or removal of policies from users) happens in the Microsoft Teams & Skype for Business Admin Center to ensure that the policy matches your expectations for the end user experience. This cmdlet is not supported for tenants that migrated to app centric management feature as it replaced permission policies. While the cmdlet may succeed, the changes aren't applied to the tenant. - As an admin, you can use app permission policies to allow or block apps for your users. Learn more about the app permission policies at <https://learn.microsoft.com/microsoftteams/teams-app-permission-policies> and about app centric management at <https://learn.microsoft.com/microsoftteams/app-centric-management>. This is only applicable for tenants who have not been migrated to ACM or UAM. + As an admin, you can use app permission policies to allow or block apps for your users. - NOTE : The existence of this cmdlet is being documented for completeness, but do not use this cmdlet. We require that all creation and modification of app permission polices (not including the assignment or removal of policies from users) happens in the Microsoft Teams & Skype for Business Admin Center to ensure that the policy matches your expectations for the end user experience. - As an admin, you can use app permission policies to enable or block specific apps for your users. Learn more about the App Setup Policies: <https://learn.microsoft.com/microsoftteams/teams-app-permission-policies>. + NOTE : The existence of this cmdlet is being documented for completeness, but do not use this cmdlet. We require that all creation and modification of app permission polices (not including the assignment or removal of policies from users) happens in the Microsoft Teams & Skype for Business Admin Center to ensure that the policy matches your expectations for the end user experience. While the cmdlet may succeed, the changes aren't applied to the tenant. + As an admin, you can use app permission policies to enable or block specific apps for your users. Learn more about the App Setup Policies: <https://learn.microsoft.com/microsoftteams/teams-app-permission-policies>. This is only applicable for tenants who have not been migrated to ACM or UAM. @@ -12504,7 +13171,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamsapppermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsapppermissionpolicy @@ -12514,15 +13181,13 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true New CsTeamsAppSetupPolicy - NOTE : The existence of this cmdlet is being documented for completeness, but do not use this cmdlet. We require that all creation and modification of app setup polices (not including the assignment or removal of policies from users) happens in the Microsoft Teams & Skype for Business Admin Center to ensure that the policy matches your expectations for the end user experience. - As an admin, you can use app setup policies to customize Microsoft Teams to highlight the apps that are most important for your users. You choose the apps to pin and set the order that they appear. App setup policies let you showcase apps that users in your organization need, including ones built by third parties or by developers in your organization. You can also use app setup policies to manage how built-in features appear. - Apps are pinned to the app bar. This is the bar on the side of the Teams desktop client and at the bottom of the Teams mobile clients (iOS and Android). Learn more about the App Setup Policies: <https://learn.microsoft.com/MicrosoftTeams/teams-app-setup-policies>. + As an admin, you can use app setup policies to customize Microsoft Teams to highlight the apps that are most important for your users. You choose the apps to pin and set the order that they appear. NOTE : The existence of this cmdlet is being documented for completeness, but do not use this cmdlet. We require that all creation and modification of app setup polices (not including the assignment or removal of policies from users) happens in the Microsoft Teams & Skype for Business Admin Center to ensure that the policy matches your expectations for the end user experience. As an admin, you can use app setup policies to customize Microsoft Teams to highlight the apps that are most important for your users. You choose the apps to pin and set the order that they appear. App setup policies let you showcase apps that users in your organization need, including ones built by third parties or by developers in your organization. You can also use app setup policies to manage how built-in features appear. - Apps are pinned to the app bar. This is the bar on the side of the Teams desktop client and at the bottom of the Teams mobile clients (iOS and Android). Learn more about the App Setup Policies: <https://learn.microsoft.com/MicrosoftTeams/teams-app-setup-policies>. + Apps are pinned to the app bar. This is the bar on the side of the Teams desktop client and at the bottom of the Teams mobile clients (iOS and Android). Learn more about the App Setup Policies: <https://learn.microsoft.com/MicrosoftTeams/teams-app-setup-policies>. @@ -12539,6 +13204,18 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true None + + AdditionalCustomizationApps + + This parameter allows IT admins to create multiple customized versions of their apps and assign these customized versions to users and groups via setup policies. It enables customization of app icons and names for supportive first-party (1P) and third-party (3P) apps, enhancing corporate connections to employees through brand expression and stimulating app awareness and usage. + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalCustomizationApp] + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalCustomizationApp] + + + None + AllowSideLoading @@ -12575,6 +13252,18 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true None + + AppPresetMeetingList + + This parameter is used to manage the list of preset apps that are available during meetings. It allows admins to control which apps are pinned and set the order in which they appear, ensuring that users have quick access to the relevant apps during meetings. + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPresetMeeting] + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPresetMeeting] + + + None + Confirm @@ -12634,30 +13323,6 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true None - - AdditionalCustomizationApps - - This parameter allows IT admins to create multiple customized versions of their apps and assign these customized versions to users and groups via setup policies. It enables customization of app icons and names for supportive first-party (1P) and third-party (3P) apps, enhancing corporate connections to employees through brand expression and stimulating app awareness and usage. - - System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalCustomizationApp] - - System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalCustomizationApp] - - - None - - - AppPresetMeetingList - - This parameter is used to manage the list of preset apps that are available during meetings. It allows admins to control which apps are pinned and set the order in which they appear, ensuring that users have quick access to the relevant apps during meetings. - - System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPresetMeeting] - - System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPresetMeeting] - - - None - Tenant @@ -12684,14 +13349,14 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true - - Identity + + AdditionalCustomizationApps - Name of App setup policy. If empty, all Identities will be used by default. + This parameter allows IT admins to create multiple customized versions of their apps and assign these customized versions to users and groups via setup policies. It enables customization of app icons and names for supportive first-party (1P) and third-party (3P) apps, enhancing corporate connections to employees through brand expression and stimulating app awareness and usage. - String + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalCustomizationApp] - String + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalCustomizationApp] None @@ -12732,6 +13397,18 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true None + + AppPresetMeetingList + + This parameter is used to manage the list of preset apps that are available during meetings. It allows admins to control which apps are pinned and set the order in which they appear, ensuring that users have quick access to the relevant apps during meetings. + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPresetMeeting] + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPresetMeeting] + + + None + Confirm @@ -12756,6 +13433,18 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true None + + Identity + + Name of App setup policy. If empty, all Identities will be used by default. + + String + + String + + + None + PinnedAppBarApps @@ -12792,30 +13481,6 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true None - - AdditionalCustomizationApps - - This parameter allows IT admins to create multiple customized versions of their apps and assign these customized versions to users and groups via setup policies. It enables customization of app icons and names for supportive first-party (1P) and third-party (3P) apps, enhancing corporate connections to employees through brand expression and stimulating app awareness and usage. - - System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalCustomizationApp] - - System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalCustomizationApp] - - - None - - - AppPresetMeetingList - - This parameter is used to manage the list of preset apps that are available during meetings. It allows admins to control which apps are pinned and set the order in which they appear, ensuring that users have quick access to the relevant apps during meetings. - - System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPresetMeeting] - - System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPresetMeeting] - - - None - Tenant @@ -12937,7 +13602,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamsappsetuppolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsappsetuppolicy @@ -12970,10 +13635,9 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al None - Description + AudioFileId - Enables administrators to provide explanatory text to accompany a Teams call hold policy. - For example, the Description might include information about the users the policy should be assigned to. + A string representing the ID referencing an audio file uploaded via the Import-CsOnlineAudioFile cmdlet. String @@ -12982,10 +13646,22 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + - AudioFileId + Description - A string representing the ID referencing an audio file uploaded via the Import-CsOnlineAudioFile cmdlet. + Enables administrators to provide explanatory text to accompany a Teams call hold policy. + For example, the Description might include information about the users the policy should be assigned to. String @@ -12995,16 +13671,15 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al None - StreamingSourceUrl + Force - This parameter is reserved for internal Microsoft use. + Suppresses the display of any non-fatal error message that might arise when running the command. - String - String + SwitchParameter - None + False StreamingSourceAuthType @@ -13019,15 +13694,16 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al None - Force + StreamingSourceUrl - Suppresses the display of any non-fatal error message that might arise when running the command. + This parameter is reserved for internal Microsoft use. + String - SwitchParameter + String - False + None WhatIf @@ -13040,24 +13716,13 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Identity + + AudioFileId - Unique identifier to be assigned to the new Teams call hold policy. + A string representing the ID referencing an audio file uploaded via the Import-CsOnlineAudioFile cmdlet. String @@ -13066,6 +13731,18 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + Description @@ -13080,21 +13757,21 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al None - AudioFileId + Force - A string representing the ID referencing an audio file uploaded via the Import-CsOnlineAudioFile cmdlet. + Suppresses the display of any non-fatal error message that might arise when running the command. - String + SwitchParameter - String + SwitchParameter - None + False - - StreamingSourceUrl + + Identity - This parameter is reserved for internal Microsoft use. + Unique identifier to be assigned to the new Teams call hold policy. String @@ -13116,16 +13793,16 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al None - Force + StreamingSourceUrl - Suppresses the display of any non-fatal error message that might arise when running the command. + This parameter is reserved for internal Microsoft use. - SwitchParameter + String - SwitchParameter + String - False + None WhatIf @@ -13139,18 +13816,6 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - @@ -13190,27 +13855,27 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamscallholdpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallholdpolicy Get-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamscallholdpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallholdpolicy Set-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamscallholdpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallholdpolicy Grant-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamscallholdpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscallholdpolicy Remove-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamscallholdpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallholdpolicy Import-CsOnlineAudioFile - https://learn.microsoft.com/powershell/module/teams/import-csonlineaudiofile + https://learn.microsoft.com/powershell/module/microsoftteams/import-csonlineaudiofile @@ -13244,6 +13909,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al AIInterpreter + > Applicable: Microsoft Teams > [!NOTE] > This feature has not been released yet and will have no changes if it is enabled or disabled. Enables the user to use the AI Interpreter related features Possible values: @@ -13260,6 +13926,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al AllowCallForwardingToPhone + > Applicable: Microsoft Teams Enables the user to configure in the Microsoft Teams client call forwarding or simultaneous ringing of inbound calls to any phone number. Boolean @@ -13272,6 +13939,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al AllowCallForwardingToUser + > Applicable: Microsoft Teams Enables the user to configure in the Microsoft Teams client call forwarding or simultaneous ringing of inbound calls to other users in your tenant. Boolean @@ -13284,6 +13952,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al AllowCallGroups + > Applicable: Microsoft Teams Enables the user to configure call groups in the Microsoft Teams client and that inbound calls should be routed to call groups. Boolean @@ -13296,6 +13965,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al AllowCallRedirect + > Applicable: Microsoft Teams Setting this parameter enables local call redirection for SIP devices connecting via the Microsoft Teams SIP gateway. Valid options are: - Enabled: Enables the user to redirect an incoming call. - Disabled: The user is not enabled to redirect an incoming call. @@ -13312,6 +13982,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al AllowCloudRecordingForCalls + > Applicable: Microsoft Teams Determines whether cloud recording is allowed in a user's 1:1 Teams or PSTN calls. Set this to True to allow the user to be able to record 1:1 calls. Set this to False to prohibit the user from recording 1:1 calls. Boolean @@ -13324,6 +13995,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al AllowDelegation + > Applicable: Microsoft Teams Enables the user to configure delegation in the Microsoft Teams client and that inbound calls to be routed to delegates; allows delegates to make outbound calls on behalf of the users for whom they have delegated permissions. Boolean @@ -13336,6 +14008,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al AllowPrivateCalling + > Applicable: Microsoft Teams Controls all calling capabilities in Teams. Turning this off will turn off all calling functionality in Teams. If you use Skype for Business for calling, this policy will not affect calling functionality in Skype for Business. Boolean @@ -13348,6 +14021,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al AllowSIPDevicesCalling + > Applicable: Microsoft Teams Determines whether the user is allowed to use a SIP device for calling on behalf of a Teams client. Boolean @@ -13360,6 +14034,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al AllowTranscriptionForCalling + > Applicable: Microsoft Teams Determines whether post-call transcriptions are allowed. Set this to True to allow. Set this to False to prohibit. Boolean @@ -13372,6 +14047,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al AllowVoicemail + > Applicable: Microsoft Teams Enables inbound calls to be routed to voicemail. Valid options are: - AlwaysEnabled: Calls are always forwarded to voicemail on unanswered after ringing for thirty seconds, regardless of the unanswered call forward setting for the user. @@ -13388,6 +14064,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al AllowWebPSTNCalling + > Applicable: Microsoft Teams Allows PSTN calling from the Team web client. Object @@ -13400,6 +14077,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al AutoAnswerEnabledType + > Applicable: Microsoft Teams Setting this parameter allows you to enable or disable auto-answer for incoming meeting invites on Teams Phones. This setting applies only to incoming meeting invites and does not include support for other call types. Valid options are: - Enabled: Auto-answer is enabled. @@ -13415,6 +14093,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al BusyOnBusyEnabledType + > Applicable: Microsoft Teams Setting this parameter lets you configure how incoming calls are handled when a user is already in a call or conference or has a call placed on hold. Valid options are: - Enabled: New or incoming calls will be rejected with a busy signal. @@ -13432,6 +14111,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al CallingSpendUserLimit + > Applicable: Microsoft Teams The maximum amount a user can spend on outgoing PSTN calls, including all calls made through Pay-as-you-go Calling Plans and any overages on plans with bundled minutes. Possible values: any positive integer @@ -13445,6 +14125,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al CallRecordingExpirationDays + > Applicable: Microsoft Teams Sets the expiration of the recorded 1:1 calls. Default is 60 days. Long @@ -13457,6 +14138,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al Confirm + > Applicable: Microsoft Teams Prompts you for confirmation before running the cmdlet. @@ -13468,9 +14150,10 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al Copilot + > Applicable: Microsoft Teams Setting this parameter lets you control how Copilot is used during calls and if transcription is needed to be turned on and saved after the call. - Valid options are: - Enabled: Copilot can work with or without transcription during calls. - - EnabledWithTranscript: Copilot will only work when transcription is enabled during calls. This is the default value. + Valid options are: - Enabled: Copilot can work with or without transcription during calls. This is the default value. + - EnabledWithTranscript: Copilot will only work when transcription is enabled during calls. - Disabled: Copilot is disabled for calls. String @@ -13483,6 +14166,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al Description + > Applicable: Microsoft Teams Enables administrators to provide explanatory text about the calling policy. For example, the Description might indicate the users to whom the policy should be assigned. String @@ -13495,6 +14179,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al EnableSpendLimits + > Applicable: Microsoft Teams This setting allows an admin to enable or disable spend limits on PSTN calls for their user base. Possible values: - True @@ -13522,6 +14207,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al Force + > Applicable: Microsoft Teams Suppresses any confirmation prompts that would otherwise be displayed before making changes. @@ -13533,6 +14219,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al InboundFederatedCallRoutingTreatment + > Applicable: Microsoft Teams Setting this parameter lets you control how inbound federated calls should be routed. Valid options are: - RegularIncoming: No changes are made to default inbound routing. This is the default setting. @@ -13551,6 +14238,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al InboundPstnCallRoutingTreatment + > Applicable: Microsoft Teams Setting this parameter lets you control how inbound PSTN calls should be routed. Valid options are: - RegularIncoming: No changes are made to default inbound routing. This is the default setting. @@ -13570,6 +14258,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al LiveCaptionsEnabledTypeForCalling + > Applicable: Microsoft Teams Determines whether real-time captions are available for the user in Teams calls. Valid options are: - DisabledUserOverride: Allows the user to turn on live captions. @@ -13585,6 +14274,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al MusicOnHoldEnabledType + > Applicable: Microsoft Teams Setting this parameter allows you to turn on or turn off the music on hold when a caller is placed on hold. Valid options are: - Enabled: Music on hold is enabled. This is the default. @@ -13601,6 +14291,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al PopoutAppPathForIncomingPstnCalls + > Applicable: Microsoft Teams Setting this parameter allows you to set the PopoutForIncomingPstnCalls setting's URL path of the website to launch upon receiving incoming PSTN calls. This parameter accepts an HTTPS URL with less than 1024 characters. The URL can contain a `{phone}` placeholder that is replaced with the caller's PSTN number in E.164 format when launched. String @@ -13613,6 +14304,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al PopoutForIncomingPstnCalls + > Applicable: Microsoft Teams Setting this parameter allows you to control the tenant users' ability to launch an external website URL automatically in the browser window upon incoming PSTN calls for specific users or user groups. Valid options are Enabled and Disabled. String @@ -13625,6 +14317,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al PreventTollBypass + > Applicable: Microsoft Teams Setting this parameter to True will send calls through PSTN and incur charges rather than going through the network and bypassing the tolls. > [!NOTE] > Do not set this parameter to True for Calling Plan or Operator Connect users as it will prevent successful call routing. This setting only works with Direct Routing which is configured to handle location-based routing restrictions. @@ -13635,9 +14328,25 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al None + + RealTimeText + + > Applicable: Microsoft Teams + Allows users to use real time text during a call, allowing them to communicate by typing their messages in real time. + Possible Values: - Enabled: User is allowed to turn on real time text. + - Disabled: User is not allowed to turn on real time text. + + String + + String + + + Enabled + SpamFilteringEnabledType + > Applicable: Microsoft Teams Determines Spam filtering mode. Possible values: - Enabled: Spam Filtering is fully enabled. Both Basic and Captcha Interactive Voice Response (IVR) checks are performed. In case the call is considered spam, the user will get a "Spam Likely" notification in Teams. @@ -13654,6 +14363,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al VoiceSimulationInInterpreter + > Applicable: Microsoft Teams >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. Enables the user to use the voice simulation feature while being AI interpreted. Possible Values: @@ -13668,22 +14378,25 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al Disabled - RealTimeText + ExplicitRecordingConsent - Allows users to use real time text during a meeting, allowing them to communicate by typing their messages in real time. - Possible Values: - Enabled: User is allowed to turn on real time text. - - Disabled: User is not allowed to turn on real time text. + > Applicable: Microsoft Teams + >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. + This setting controls whether users must provide or obtain explicit consent before recording a 1:1 PSTN or Teams call. When enabled, both parties will receive a notification, and consent must be given before recording starts. + Possible values: + - Enabled : Requires users to give and obtain explicit consent before starting a call recording. - Disabled : Users are not required to obtain explicit consent before recording starts. String String - Enabled + Disabled WhatIf + > Applicable: Microsoft Teams Shows what would happen if the cmdlet runs. The cmdlet is not run. @@ -13695,21 +14408,10 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al - - Identity - - Name of the policy instance being created. - - String - - String - - - None - AIInterpreter + > Applicable: Microsoft Teams > [!NOTE] > This feature has not been released yet and will have no changes if it is enabled or disabled. Enables the user to use the AI Interpreter related features Possible values: @@ -13726,6 +14428,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al AllowCallForwardingToPhone + > Applicable: Microsoft Teams Enables the user to configure in the Microsoft Teams client call forwarding or simultaneous ringing of inbound calls to any phone number. Boolean @@ -13738,6 +14441,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al AllowCallForwardingToUser + > Applicable: Microsoft Teams Enables the user to configure in the Microsoft Teams client call forwarding or simultaneous ringing of inbound calls to other users in your tenant. Boolean @@ -13750,6 +14454,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al AllowCallGroups + > Applicable: Microsoft Teams Enables the user to configure call groups in the Microsoft Teams client and that inbound calls should be routed to call groups. Boolean @@ -13762,6 +14467,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al AllowCallRedirect + > Applicable: Microsoft Teams Setting this parameter enables local call redirection for SIP devices connecting via the Microsoft Teams SIP gateway. Valid options are: - Enabled: Enables the user to redirect an incoming call. - Disabled: The user is not enabled to redirect an incoming call. @@ -13778,6 +14484,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al AllowCloudRecordingForCalls + > Applicable: Microsoft Teams Determines whether cloud recording is allowed in a user's 1:1 Teams or PSTN calls. Set this to True to allow the user to be able to record 1:1 calls. Set this to False to prohibit the user from recording 1:1 calls. Boolean @@ -13790,6 +14497,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al AllowDelegation + > Applicable: Microsoft Teams Enables the user to configure delegation in the Microsoft Teams client and that inbound calls to be routed to delegates; allows delegates to make outbound calls on behalf of the users for whom they have delegated permissions. Boolean @@ -13802,6 +14510,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al AllowPrivateCalling + > Applicable: Microsoft Teams Controls all calling capabilities in Teams. Turning this off will turn off all calling functionality in Teams. If you use Skype for Business for calling, this policy will not affect calling functionality in Skype for Business. Boolean @@ -13814,6 +14523,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al AllowSIPDevicesCalling + > Applicable: Microsoft Teams Determines whether the user is allowed to use a SIP device for calling on behalf of a Teams client. Boolean @@ -13826,6 +14536,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al AllowTranscriptionForCalling + > Applicable: Microsoft Teams Determines whether post-call transcriptions are allowed. Set this to True to allow. Set this to False to prohibit. Boolean @@ -13838,6 +14549,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al AllowVoicemail + > Applicable: Microsoft Teams Enables inbound calls to be routed to voicemail. Valid options are: - AlwaysEnabled: Calls are always forwarded to voicemail on unanswered after ringing for thirty seconds, regardless of the unanswered call forward setting for the user. @@ -13854,6 +14566,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al AllowWebPSTNCalling + > Applicable: Microsoft Teams Allows PSTN calling from the Team web client. Object @@ -13866,6 +14579,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al AutoAnswerEnabledType + > Applicable: Microsoft Teams Setting this parameter allows you to enable or disable auto-answer for incoming meeting invites on Teams Phones. This setting applies only to incoming meeting invites and does not include support for other call types. Valid options are: - Enabled: Auto-answer is enabled. @@ -13881,6 +14595,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al BusyOnBusyEnabledType + > Applicable: Microsoft Teams Setting this parameter lets you configure how incoming calls are handled when a user is already in a call or conference or has a call placed on hold. Valid options are: - Enabled: New or incoming calls will be rejected with a busy signal. @@ -13898,6 +14613,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al CallingSpendUserLimit + > Applicable: Microsoft Teams The maximum amount a user can spend on outgoing PSTN calls, including all calls made through Pay-as-you-go Calling Plans and any overages on plans with bundled minutes. Possible values: any positive integer @@ -13911,6 +14627,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al CallRecordingExpirationDays + > Applicable: Microsoft Teams Sets the expiration of the recorded 1:1 calls. Default is 60 days. Long @@ -13923,6 +14640,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al Confirm + > Applicable: Microsoft Teams Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -13935,9 +14653,10 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al Copilot + > Applicable: Microsoft Teams Setting this parameter lets you control how Copilot is used during calls and if transcription is needed to be turned on and saved after the call. - Valid options are: - Enabled: Copilot can work with or without transcription during calls. - - EnabledWithTranscript: Copilot will only work when transcription is enabled during calls. This is the default value. + Valid options are: - Enabled: Copilot can work with or without transcription during calls. This is the default value. + - EnabledWithTranscript: Copilot will only work when transcription is enabled during calls. - Disabled: Copilot is disabled for calls. String @@ -13950,6 +14669,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al Description + > Applicable: Microsoft Teams Enables administrators to provide explanatory text about the calling policy. For example, the Description might indicate the users to whom the policy should be assigned. String @@ -13962,6 +14682,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al EnableSpendLimits + > Applicable: Microsoft Teams This setting allows an admin to enable or disable spend limits on PSTN calls for their user base. Possible values: - True @@ -13989,6 +14710,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al Force + > Applicable: Microsoft Teams Suppresses any confirmation prompts that would otherwise be displayed before making changes. SwitchParameter @@ -13998,9 +14720,22 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al False + + Identity + + Name of the policy instance being created. + + String + + String + + + None + InboundFederatedCallRoutingTreatment + > Applicable: Microsoft Teams Setting this parameter lets you control how inbound federated calls should be routed. Valid options are: - RegularIncoming: No changes are made to default inbound routing. This is the default setting. @@ -14019,6 +14754,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al InboundPstnCallRoutingTreatment + > Applicable: Microsoft Teams Setting this parameter lets you control how inbound PSTN calls should be routed. Valid options are: - RegularIncoming: No changes are made to default inbound routing. This is the default setting. @@ -14038,6 +14774,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al LiveCaptionsEnabledTypeForCalling + > Applicable: Microsoft Teams Determines whether real-time captions are available for the user in Teams calls. Valid options are: - DisabledUserOverride: Allows the user to turn on live captions. @@ -14053,6 +14790,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al MusicOnHoldEnabledType + > Applicable: Microsoft Teams Setting this parameter allows you to turn on or turn off the music on hold when a caller is placed on hold. Valid options are: - Enabled: Music on hold is enabled. This is the default. @@ -14069,6 +14807,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al PopoutAppPathForIncomingPstnCalls + > Applicable: Microsoft Teams Setting this parameter allows you to set the PopoutForIncomingPstnCalls setting's URL path of the website to launch upon receiving incoming PSTN calls. This parameter accepts an HTTPS URL with less than 1024 characters. The URL can contain a `{phone}` placeholder that is replaced with the caller's PSTN number in E.164 format when launched. String @@ -14081,6 +14820,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al PopoutForIncomingPstnCalls + > Applicable: Microsoft Teams Setting this parameter allows you to control the tenant users' ability to launch an external website URL automatically in the browser window upon incoming PSTN calls for specific users or user groups. Valid options are Enabled and Disabled. String @@ -14093,6 +14833,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al PreventTollBypass + > Applicable: Microsoft Teams Setting this parameter to True will send calls through PSTN and incur charges rather than going through the network and bypassing the tolls. > [!NOTE] > Do not set this parameter to True for Calling Plan or Operator Connect users as it will prevent successful call routing. This setting only works with Direct Routing which is configured to handle location-based routing restrictions. @@ -14103,9 +14844,25 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al None + + RealTimeText + + > Applicable: Microsoft Teams + Allows users to use real time text during a call, allowing them to communicate by typing their messages in real time. + Possible Values: - Enabled: User is allowed to turn on real time text. + - Disabled: User is not allowed to turn on real time text. + + String + + String + + + Enabled + SpamFilteringEnabledType + > Applicable: Microsoft Teams Determines Spam filtering mode. Possible values: - Enabled: Spam Filtering is fully enabled. Both Basic and Captcha Interactive Voice Response (IVR) checks are performed. In case the call is considered spam, the user will get a "Spam Likely" notification in Teams. @@ -14122,6 +14879,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al VoiceSimulationInInterpreter + > Applicable: Microsoft Teams >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. Enables the user to use the voice simulation feature while being AI interpreted. Possible Values: @@ -14136,22 +14894,25 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al Disabled - RealTimeText + ExplicitRecordingConsent - Allows users to use real time text during a meeting, allowing them to communicate by typing their messages in real time. - Possible Values: - Enabled: User is allowed to turn on real time text. - - Disabled: User is not allowed to turn on real time text. + > Applicable: Microsoft Teams + >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. + This setting controls whether users must provide or obtain explicit consent before recording a 1:1 PSTN or Teams call. When enabled, both parties will receive a notification, and consent must be given before recording starts. + Possible values: + - Enabled : Requires users to give and obtain explicit consent before starting a call recording. - Disabled : Users are not required to obtain explicit consent before recording starts. String String - Enabled + Disabled WhatIf + > Applicable: Microsoft Teams Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -14190,23 +14951,23 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamscallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallingpolicy Get-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamscallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallingpolicy Remove-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamscallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallingpolicy Grant-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamscallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscallingpolicy Set-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamscallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallingpolicy @@ -14239,9 +15000,9 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al None - EnablePrivateTeamDiscovery + AllowChannelSharingToExternalUser - Determines whether a user is allowed to discover private teams in suggestions and search results. Set this to TRUE to allow. Set this FALSE to prohibit. + Owners of a shared channel can invite external users to join the channel if Microsoft Entra external sharing policies are configured. If the channel has been shared with an external member or team, they will continue to have access to the channel even if this parameter is set to FALSE. For more information, see Manage channel policies in Microsoft Teams (https://learn.microsoft.com/microsoftteams/teams-policies). Boolean @@ -14250,79 +15011,81 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al None - - Confirm + + AllowOrgWideTeamCreation - Prompts you for confirmation before running the cmdlet. + Determines whether a user is allowed to create an org-wide team. Set this to TRUE to allow. Set this FALSE to prohibit. + Boolean - SwitchParameter + Boolean - False + None - Force + AllowPrivateChannelCreation - Bypasses all non-fatal errors. + Determines whether a user is allowed to create a private channel. Set this to TRUE to allow. Set this FALSE to prohibit. + Boolean - SwitchParameter + Boolean - False + None - Tenant + AllowSharedChannelCreation - Internal Microsoft use only. + Team owners can create shared channels for people within and outside the organization. Only people added to the shared channel can read and write messages. - System.Guid + Boolean - System.Guid + Boolean None - - WhatIf + + AllowUserToParticipateInExternalSharedChannel - Shows what would happen if the cmdlet runs. The cmdlet is not run. + Users and teams can be invited to external shared channels if Microsoft Entra external sharing policies are configured. If a team in your organization is part of an external shared channel, new team members will have access to the channel even if this parameter is set to FALSE. For more information, see Manage channel policies in Microsoft Teams (https://learn.microsoft.com/microsoftteams/teams-policies). + Boolean - SwitchParameter + Boolean - False + None - - AllowOrgWideTeamCreation + + Confirm - Determines whether a user is allowed to create an org-wide team. Set this to TRUE to allow. Set this FALSE to prohibit. + Prompts you for confirmation before running the cmdlet. - Boolean - Boolean + SwitchParameter - None + False - AllowPrivateChannelCreation + Description - Determines whether a user is allowed to create a private channel. Set this to TRUE to allow. Set this FALSE to prohibit. + Specifies the description of the policy. - Boolean + String - Boolean + String None - AllowChannelSharingToExternalUser + EnablePrivateTeamDiscovery - Owners of a shared channel can invite external users to join the channel if Microsoft Entra external sharing policies are configured. If the channel has been shared with an external member or team, they will continue to have access to the channel even if this parameter is set to FALSE. For more information, see Manage channel policies in Microsoft Teams (https://learn.microsoft.com/microsoftteams/teams-policies). + Determines whether a user is allowed to discover private teams in suggestions and search results. Set this to TRUE to allow. Set this FALSE to prohibit. Boolean @@ -14332,48 +15095,61 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al None - AllowSharedChannelCreation + Force - Team owners can create shared channels for people within and outside the organization. Only people added to the shared channel can read and write messages. + Bypasses all non-fatal errors. - Boolean - Boolean + SwitchParameter - None + False - AllowUserToParticipateInExternalSharedChannel + Tenant - Users and teams can be invited to external shared channels if Microsoft Entra external sharing policies are configured. If a team in your organization is part of an external shared channel, new team members will have access to the channel even if this parameter is set to FALSE. For more information, see Manage channel policies in Microsoft Teams (https://learn.microsoft.com/microsoftteams/teams-policies). + Internal Microsoft use only. - Boolean + System.Guid - Boolean + System.Guid None - Description + ThreadedChannelCreation - Specifies the description of the policy. + > [!NOTE] > This parameter is reserved for internal Microsoft use. + This setting enables/disables Threaded Channel creation and editing. + Possible Values: - Enabled: Users are allowed to create and edit Threaded Channels. + - Disabled: Users are not allowed to create and edit Threaded Channels. String String - None + Enabled + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False - EnablePrivateTeamDiscovery + AllowChannelSharingToExternalUser - Determines whether a user is allowed to discover private teams in suggestions and search results. Set this to TRUE to allow. Set this FALSE to prohibit. + Owners of a shared channel can invite external users to join the channel if Microsoft Entra external sharing policies are configured. If the channel has been shared with an external member or team, they will continue to have access to the channel even if this parameter is set to FALSE. For more information, see Manage channel policies in Microsoft Teams (https://learn.microsoft.com/microsoftteams/teams-policies). Boolean @@ -14382,58 +15158,58 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al None - - Confirm + + AllowOrgWideTeamCreation - Prompts you for confirmation before running the cmdlet. + Determines whether a user is allowed to create an org-wide team. Set this to TRUE to allow. Set this FALSE to prohibit. - SwitchParameter + Boolean - SwitchParameter + Boolean - False + None - Force + AllowPrivateChannelCreation - Bypasses all non-fatal errors. + Determines whether a user is allowed to create a private channel. Set this to TRUE to allow. Set this FALSE to prohibit. - SwitchParameter + Boolean - SwitchParameter + Boolean - False + None - - Identity + + AllowSharedChannelCreation - Specify the name of the policy that you are creating. + Team owners can create shared channels for people within and outside the organization. Only people added to the shared channel can read and write messages. - String + Boolean - String + Boolean None - Tenant + AllowUserToParticipateInExternalSharedChannel - Internal Microsoft use only. + Users and teams can be invited to external shared channels if Microsoft Entra external sharing policies are configured. If a team in your organization is part of an external shared channel, new team members will have access to the channel even if this parameter is set to FALSE. For more information, see Manage channel policies in Microsoft Teams (https://learn.microsoft.com/microsoftteams/teams-policies). - System.Guid + Boolean - System.Guid + Boolean None - - WhatIf + + Confirm - Shows what would happen if the cmdlet runs. The cmdlet is not run. + Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -14443,21 +15219,21 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al False - AllowOrgWideTeamCreation + Description - Determines whether a user is allowed to create an org-wide team. Set this to TRUE to allow. Set this FALSE to prohibit. + Specifies the description of the policy. - Boolean + String - Boolean + String None - AllowPrivateChannelCreation + EnablePrivateTeamDiscovery - Determines whether a user is allowed to create a private channel. Set this to TRUE to allow. Set this FALSE to prohibit. + Determines whether a user is allowed to discover private teams in suggestions and search results. Set this to TRUE to allow. Set this FALSE to prohibit. Boolean @@ -14467,52 +15243,67 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al None - AllowChannelSharingToExternalUser + Force - Owners of a shared channel can invite external users to join the channel if Microsoft Entra external sharing policies are configured. If the channel has been shared with an external member or team, they will continue to have access to the channel even if this parameter is set to FALSE. For more information, see Manage channel policies in Microsoft Teams (https://learn.microsoft.com/microsoftteams/teams-policies). + Bypasses all non-fatal errors. - Boolean + SwitchParameter - Boolean + SwitchParameter - None + False - - AllowSharedChannelCreation + + Identity - Team owners can create shared channels for people within and outside the organization. Only people added to the shared channel can read and write messages. + Specify the name of the policy that you are creating. - Boolean + String - Boolean + String None - AllowUserToParticipateInExternalSharedChannel + Tenant - Users and teams can be invited to external shared channels if Microsoft Entra external sharing policies are configured. If a team in your organization is part of an external shared channel, new team members will have access to the channel even if this parameter is set to FALSE. For more information, see Manage channel policies in Microsoft Teams (https://learn.microsoft.com/microsoftteams/teams-policies). + Internal Microsoft use only. - Boolean + System.Guid - Boolean + System.Guid None - Description + ThreadedChannelCreation - Specifies the description of the policy. + > [!NOTE] > This parameter is reserved for internal Microsoft use. + This setting enables/disables Threaded Channel creation and editing. + Possible Values: - Enabled: Users are allowed to create and edit Threaded Channels. + - Disabled: Users are not allowed to create and edit Threaded Channels. String String - None + Enabled + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False @@ -14552,23 +15343,23 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamschannelspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamschannelspolicy Set-CsTeamsChannelsPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamschannelspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamschannelspolicy Remove-CsTeamsChannelsPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamschannelspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamschannelspolicy Grant-CsTeamsChannelsPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamschannelspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamschannelspolicy Get-CsTeamsChannelsPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamschannelspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamschannelspolicy @@ -14590,93 +15381,6 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al New-CsTeamsComplianceRecordingApplication - - Identity - - A name that uniquely identifies the application instance of the policy-based recording application. - Application instances of policy-based recording applications must be associated with a Teams recording policy using the CsTeamsComplianceRecordingApplication cmdlets. To do this association correctly, the Identity of these application instances must be <Identity of the associated Teams recording policy>/<ObjectId of the application instance>. For example, the Identity of an application instance can be \"Tag:ContosoPartnerComplianceRecordingPolicy/39dc3ede-c80e-4f19-9153-417a65a1f144\", which indicates that the application instance with ObjectId 39dc3ede-c80e-4f19-9153-417a65a1f144 is associated with the Teams recording policy with Identity ContosoPartnerComplianceRecordingPolicy. - - XdsIdentity - - XdsIdentity - - - None - - - RequiredBeforeMeetingJoin - - Indicates whether the policy-based recording application must be in the meeting before the user is allowed to join the meeting. - If this is set to True, the user will not be allowed to join the meeting if the policy-based recording application fails to join the meeting. The meeting will still continue for users who are in the meeting. - If this is set to False, the user will be allowed to join the meeting even if the policy-based recording application fails to join the meeting. - - Boolean - - Boolean - - - True - - - RequiredDuringMeeting - - Indicates whether the policy-based recording application must be in the meeting while the user is in the meeting. - If this is set to True, the user will be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. The meeting will still continue for users who are in the meeting. - If this is set to False, the user will not be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. - - Boolean - - Boolean - - - True - - - RequiredBeforeCallEstablishment - - Indicates whether the policy-based recording application must be in the call before the call is allowed to establish. - If this is set to True, the call will be cancelled if the policy-based recording application fails to join the call. - If this is set to False, call establishment will proceed normally if the policy-based recording application fails to join the call. - - Boolean - - Boolean - - - True - - - RequiredDuringCall - - Indicates whether the policy-based recording application must be in the call while the call is active. - If this is set to True, the call will be cancelled if the policy-based recording application leaves the call or is dropped from the call. - If this is set to False, call establishment will proceed normally if the policy-based recording application leaves the call or is dropped from the call. - - Boolean - - Boolean - - - True - - - ConcurrentInvitationCount - - Determines the number of invites to send out to the application instance of the policy-based recording application. Can be set to 1 or 2 only. - In situations where application resiliency is a necessity, multiple invites can be sent to the same application for the same call or meeting. If multiple such invites are accepted, then it means that multiple instances of this application are in the call or meeting and each of those instances can record independent of the others. - If all of the invites are rejected, the application invitation process is deemed a failure and the other flags for this application control what happens next. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredBeforeCallEstablishment parameters. - If at least one of the invites is accepted and the others are rejected, the application invitation process is still deemed a success. - If multiple invites are accepted and all of the instances leave or get dropped from the call or meeting, then the application is no longer in the call or meeting and the other flags for this application control what happens next. Please refer to the documentation of the RequiredDuringMeeting and RequiredDuringCall parameters. - If multiple invites are accepted and at least one of the instances remains in the call or meeting, then the application is in the call or meeting. - Note that application resiliency can be achieved either by sending multiple invites to the same application using ConcurrentInvitationCount or by sending invites to separate paired applications using ComplianceRecordingPairedApplications. However, you cannot do both. Please work with your Microsoft certified policy-based recording application provider to determine if application resiliency is needed for your workflows and how best to achieve application resiliency. - - UInt32 - - UInt32 - - - 1 - ComplianceRecordingPairedApplications @@ -14696,33 +15400,22 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al None - Priority - - This priority determines the order in which the policy-based recording applications are displayed in the output of the Get-CsTeamsComplianceRecordingPolicy cmdlet. - All policy-based recording applications are invited in parallel to ensure low call setup and meeting join latencies. So this parameter does not affect the order of invitations to the applications, or any other routing. - - Int32 - - Int32 - - - None - - - Tenant + ConcurrentInvitationCount - Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: - -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" - You can return your tenant ID by running this command: - Get-CsTenant | Select-Object DisplayName, TenantID - If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + Determines the number of invites to send out to the application instance of the policy-based recording application. Can be set to 1 or 2 only. + In situations where application resiliency is a necessity, multiple invites can be sent to the same application for the same call or meeting. If multiple such invites are accepted, then it means that multiple instances of this application are in the call or meeting and each of those instances can record independent of the others. + If all of the invites are rejected, the application invitation process is deemed a failure and the other flags for this application control what happens next. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredBeforeCallEstablishment parameters. + If at least one of the invites is accepted and the others are rejected, the application invitation process is still deemed a success. + If multiple invites are accepted and all of the instances leave or get dropped from the call or meeting, then the application is no longer in the call or meeting and the other flags for this application control what happens next. Please refer to the documentation of the RequiredDuringMeeting and RequiredDuringCall parameters. + If multiple invites are accepted and at least one of the instances remains in the call or meeting, then the application is in the call or meeting. + Note that application resiliency can be achieved either by sending multiple invites to the same application using ConcurrentInvitationCount or by sending invites to separate paired applications using ComplianceRecordingPairedApplications. However, you cannot do both. Please work with your Microsoft certified policy-based recording application provider to determine if application resiliency is needed for your workflows and how best to achieve application resiliency. - System.Guid + UInt32 - System.Guid + UInt32 - None + 1 Confirm @@ -14746,21 +15439,22 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al False - - InMemory + + Id - Creates an object reference without actually committing the object as a permanent change. If you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling this cmdlet's matching Set- cmdlet. + The ObjectId of the application instance of a policy-based recording application as exposed by the Get-CsOnlineApplicationInstance cmdlet. For example, the Id of an application instance can be \"39dc3ede-c80e-4f19-9153-417a65a1f144\", which indicates that the application instance has ObjectId 39dc3ede-c80e-4f19-9153-417a65a1f144. + String - SwitchParameter + String - False + None - - WhatIf + + InMemory - Shows what would happen if the cmdlet runs. The cmdlet is not run. + Creates an object reference without actually committing the object as a permanent change. If you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling this cmdlet's matching Set- cmdlet. SwitchParameter @@ -14768,9 +15462,6 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al False - - - New-CsTeamsComplianceRecordingApplication Parent @@ -14783,24 +15474,25 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al None - - Id + + Priority - The ObjectId of the application instance of a policy-based recording application as exposed by the Get-CsOnlineApplicationInstance cmdlet. For example, the Id of an application instance can be \"39dc3ede-c80e-4f19-9153-417a65a1f144\", which indicates that the application instance has ObjectId 39dc3ede-c80e-4f19-9153-417a65a1f144. + This priority determines the order in which the policy-based recording applications are displayed in the output of the Get-CsTeamsComplianceRecordingPolicy cmdlet. + All policy-based recording applications are invited in parallel to ensure low call setup and meeting join latencies. So this parameter does not affect the order of invitations to the applications, or any other routing. - String + Int32 - String + Int32 None - RequiredBeforeMeetingJoin + RequiredBeforeCallEstablishment - Indicates whether the policy-based recording application must be in the meeting before the user is allowed to join the meeting. - If this is set to True, the user will not be allowed to join the meeting if the policy-based recording application fails to join the meeting. The meeting will still continue for users who are in the meeting. - If this is set to False, the user will be allowed to join the meeting even if the policy-based recording application fails to join the meeting. + Indicates whether the policy-based recording application must be in the call before the call is allowed to establish. + If this is set to True, the call will be cancelled if the policy-based recording application fails to join the call. + If this is set to False, call establishment will proceed normally if the policy-based recording application fails to join the call. Boolean @@ -14810,11 +15502,11 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al True - RequiredDuringMeeting + RequiredBeforeMeetingJoin - Indicates whether the policy-based recording application must be in the meeting while the user is in the meeting. - If this is set to True, the user will be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. The meeting will still continue for users who are in the meeting. - If this is set to False, the user will not be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. + Indicates whether the policy-based recording application must be in the meeting before the user is allowed to join the meeting. + If this is set to True, the user will not be allowed to join the meeting if the policy-based recording application fails to join the meeting. The meeting will still continue for users who are in the meeting. + If this is set to False, the user will be allowed to join the meeting even if the policy-based recording application fails to join the meeting. Boolean @@ -14824,11 +15516,11 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al True - RequiredBeforeCallEstablishment + RequiredDuringCall - Indicates whether the policy-based recording application must be in the call before the call is allowed to establish. - If this is set to True, the call will be cancelled if the policy-based recording application fails to join the call. - If this is set to False, call establishment will proceed normally if the policy-based recording application fails to join the call. + Indicates whether the policy-based recording application must be in the call while the call is active. + If this is set to True, the call will be cancelled if the policy-based recording application leaves the call or is dropped from the call. + If this is set to False, call establishment will proceed normally if the policy-based recording application leaves the call or is dropped from the call. Boolean @@ -14838,11 +15530,11 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al True - RequiredDuringCall + RequiredDuringMeeting - Indicates whether the policy-based recording application must be in the call while the call is active. - If this is set to True, the call will be cancelled if the policy-based recording application leaves the call or is dropped from the call. - If this is set to False, call establishment will proceed normally if the policy-based recording application leaves the call or is dropped from the call. + Indicates whether the policy-based recording application must be in the meeting while the user is in the meeting. + If this is set to True, the user will be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. The meeting will still continue for users who are in the meeting. + If this is set to False, the user will not be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. Boolean @@ -14852,22 +15544,47 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al True - ConcurrentInvitationCount + Tenant - Determines the number of invites to send out to the application instance of the policy-based recording application. Can be set to 1 or 2 only. - In situations where application resiliency is a necessity, multiple invites can be sent to the same application for the same call or meeting. If multiple such invites are accepted, then it means that multiple instances of this application are in the call or meeting and each of those instances can record independent of the others. - If all of the invites are rejected, the application invitation process is deemed a failure and the other flags for this application control what happens next. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredBeforeCallEstablishment parameters. - If at least one of the invites is accepted and the others are rejected, the application invitation process is still deemed a success. - If multiple invites are accepted and all of the instances leave or get dropped from the call or meeting, then the application is no longer in the call or meeting and the other flags for this application control what happens next. Please refer to the documentation of the RequiredDuringMeeting and RequiredDuringCall parameters. - If multiple invites are accepted and at least one of the instances remains in the call or meeting, then the application is in the call or meeting. - Note that application resiliency can be achieved either by sending multiple invites to the same application using ConcurrentInvitationCount or by sending invites to separate paired applications using ComplianceRecordingPairedApplications. However, you cannot do both. Please work with your Microsoft certified policy-based recording application provider to determine if application resiliency is needed for your workflows and how best to achieve application resiliency. + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. - UInt32 + System.Guid - UInt32 + System.Guid - 1 + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + New-CsTeamsComplianceRecordingApplication + + Identity + + A name that uniquely identifies the application instance of the policy-based recording application. + Application instances of policy-based recording applications must be associated with a Teams recording policy using the CsTeamsComplianceRecordingApplication cmdlets. To do this association correctly, the Identity of these application instances must be <Identity of the associated Teams recording policy>/<ObjectId of the application instance>. For example, the Identity of an application instance can be \"Tag:ContosoPartnerComplianceRecordingPolicy/39dc3ede-c80e-4f19-9153-417a65a1f144\", which indicates that the application instance with ObjectId 39dc3ede-c80e-4f19-9153-417a65a1f144 is associated with the Teams recording policy with Identity ContosoPartnerComplianceRecordingPolicy. + + XdsIdentity + + XdsIdentity + + + None ComplianceRecordingPairedApplications @@ -14888,33 +15605,22 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al None - Priority - - This priority determines the order in which the policy-based recording applications are displayed in the output of the Get-CsTeamsComplianceRecordingPolicy cmdlet. - All policy-based recording applications are invited in parallel to ensure low call setup and meeting join latencies. So this parameter does not affect the order of invitations to the applications, or any other routing. - - Int32 - - Int32 - - - None - - - Tenant + ConcurrentInvitationCount - Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: - -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" - You can return your tenant ID by running this command: - Get-CsTenant | Select-Object DisplayName, TenantID - If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + Determines the number of invites to send out to the application instance of the policy-based recording application. Can be set to 1 or 2 only. + In situations where application resiliency is a necessity, multiple invites can be sent to the same application for the same call or meeting. If multiple such invites are accepted, then it means that multiple instances of this application are in the call or meeting and each of those instances can record independent of the others. + If all of the invites are rejected, the application invitation process is deemed a failure and the other flags for this application control what happens next. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredBeforeCallEstablishment parameters. + If at least one of the invites is accepted and the others are rejected, the application invitation process is still deemed a success. + If multiple invites are accepted and all of the instances leave or get dropped from the call or meeting, then the application is no longer in the call or meeting and the other flags for this application control what happens next. Please refer to the documentation of the RequiredDuringMeeting and RequiredDuringCall parameters. + If multiple invites are accepted and at least one of the instances remains in the call or meeting, then the application is in the call or meeting. + Note that application resiliency can be achieved either by sending multiple invites to the same application using ConcurrentInvitationCount or by sending invites to separate paired applications using ComplianceRecordingPairedApplications. However, you cannot do both. Please work with your Microsoft certified policy-based recording application provider to determine if application resiliency is needed for your workflows and how best to achieve application resiliency. - System.Guid + UInt32 - System.Guid + UInt32 - None + 1 Confirm @@ -14949,145 +15655,210 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al False - - WhatIf + + Priority - Shows what would happen if the cmdlet runs. The cmdlet is not run. + This priority determines the order in which the policy-based recording applications are displayed in the output of the Get-CsTeamsComplianceRecordingPolicy cmdlet. + All policy-based recording applications are invited in parallel to ensure low call setup and meeting join latencies. So this parameter does not affect the order of invitations to the applications, or any other routing. + Int32 - SwitchParameter + Int32 - False + None - - - - - Identity - - A name that uniquely identifies the application instance of the policy-based recording application. - Application instances of policy-based recording applications must be associated with a Teams recording policy using the CsTeamsComplianceRecordingApplication cmdlets. To do this association correctly, the Identity of these application instances must be <Identity of the associated Teams recording policy>/<ObjectId of the application instance>. For example, the Identity of an application instance can be \"Tag:ContosoPartnerComplianceRecordingPolicy/39dc3ede-c80e-4f19-9153-417a65a1f144\", which indicates that the application instance with ObjectId 39dc3ede-c80e-4f19-9153-417a65a1f144 is associated with the Teams recording policy with Identity ContosoPartnerComplianceRecordingPolicy. - - XdsIdentity - - XdsIdentity - - - None - - - Parent + + RequiredBeforeCallEstablishment + + Indicates whether the policy-based recording application must be in the call before the call is allowed to establish. + If this is set to True, the call will be cancelled if the policy-based recording application fails to join the call. + If this is set to False, call establishment will proceed normally if the policy-based recording application fails to join the call. + + Boolean + + Boolean + + + True + + + RequiredBeforeMeetingJoin + + Indicates whether the policy-based recording application must be in the meeting before the user is allowed to join the meeting. + If this is set to True, the user will not be allowed to join the meeting if the policy-based recording application fails to join the meeting. The meeting will still continue for users who are in the meeting. + If this is set to False, the user will be allowed to join the meeting even if the policy-based recording application fails to join the meeting. + + Boolean + + Boolean + + + True + + + RequiredDuringCall + + Indicates whether the policy-based recording application must be in the call while the call is active. + If this is set to True, the call will be cancelled if the policy-based recording application leaves the call or is dropped from the call. + If this is set to False, call establishment will proceed normally if the policy-based recording application leaves the call or is dropped from the call. + + Boolean + + Boolean + + + True + + + RequiredDuringMeeting + + Indicates whether the policy-based recording application must be in the meeting while the user is in the meeting. + If this is set to True, the user will be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. The meeting will still continue for users who are in the meeting. + If this is set to False, the user will not be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. + + Boolean + + Boolean + + + True + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + ComplianceRecordingPairedApplications - The Identity of the Teams recording policy that this application instance of a policy-based recording application is associated with. For example, the Parent of an application instance can be \"Tag:ContosoPartnerComplianceRecordingPolicy\", which indicates that the application instance is associated with the Teams recording policy with Identity ContosoPartnerComplianceRecordingPolicy. + Determines the other policy-based recording applications to pair with this application to achieve application resiliency. Can only have one paired application. + In situations where application resiliency is a necessity, invites can be sent to separate paired applications for the same call or meeting. If multiple such invites are accepted, then it means that multiple instances of this application are in the call or meeting and each of those instances can record independent of the others. + If all of the invites are rejected, the application invitation process is deemed a failure and the other flags for this application control what happens next. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredBeforeCallEstablishment parameters. + If at least one of the invites is accepted and the others are rejected, the application invitation process is still deemed a success. + If multiple invites are accepted and all of the instances leave or get dropped from the call or meeting, then the application is no longer in the call or meeting and the other flags for this application control what happens next. Please refer to the documentation of the RequiredDuringMeeting and RequiredDuringCall parameters. + If multiple invites are accepted and at least one of the instances remains in the call or meeting, then the application is in the call or meeting. + Note that application resiliency can be achieved either by sending multiple invites to the same application using ConcurrentInvitationCount or by sending invites to separate paired applications using ComplianceRecordingPairedApplications. However, you cannot do both. Please work with your Microsoft certified policy-based recording application provider to determine if application resiliency is needed for your workflows and how best to achieve application resiliency. - String + ComplianceRecordingPairedApplication[] - String + ComplianceRecordingPairedApplication[] None - - Id + + ConcurrentInvitationCount - The ObjectId of the application instance of a policy-based recording application as exposed by the Get-CsOnlineApplicationInstance cmdlet. For example, the Id of an application instance can be \"39dc3ede-c80e-4f19-9153-417a65a1f144\", which indicates that the application instance has ObjectId 39dc3ede-c80e-4f19-9153-417a65a1f144. + Determines the number of invites to send out to the application instance of the policy-based recording application. Can be set to 1 or 2 only. + In situations where application resiliency is a necessity, multiple invites can be sent to the same application for the same call or meeting. If multiple such invites are accepted, then it means that multiple instances of this application are in the call or meeting and each of those instances can record independent of the others. + If all of the invites are rejected, the application invitation process is deemed a failure and the other flags for this application control what happens next. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredBeforeCallEstablishment parameters. + If at least one of the invites is accepted and the others are rejected, the application invitation process is still deemed a success. + If multiple invites are accepted and all of the instances leave or get dropped from the call or meeting, then the application is no longer in the call or meeting and the other flags for this application control what happens next. Please refer to the documentation of the RequiredDuringMeeting and RequiredDuringCall parameters. + If multiple invites are accepted and at least one of the instances remains in the call or meeting, then the application is in the call or meeting. + Note that application resiliency can be achieved either by sending multiple invites to the same application using ConcurrentInvitationCount or by sending invites to separate paired applications using ComplianceRecordingPairedApplications. However, you cannot do both. Please work with your Microsoft certified policy-based recording application provider to determine if application resiliency is needed for your workflows and how best to achieve application resiliency. - String + UInt32 - String + UInt32 - None + 1 - - RequiredBeforeMeetingJoin + + Confirm - Indicates whether the policy-based recording application must be in the meeting before the user is allowed to join the meeting. - If this is set to True, the user will not be allowed to join the meeting if the policy-based recording application fails to join the meeting. The meeting will still continue for users who are in the meeting. - If this is set to False, the user will be allowed to join the meeting even if the policy-based recording application fails to join the meeting. + Prompts you for confirmation before running the cmdlet. - Boolean + SwitchParameter - Boolean + SwitchParameter - True + False - RequiredDuringMeeting + Force - Indicates whether the policy-based recording application must be in the meeting while the user is in the meeting. - If this is set to True, the user will be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. The meeting will still continue for users who are in the meeting. - If this is set to False, the user will not be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. + Suppresses the display of any non-fatal error message that might arise when running the command. - Boolean + SwitchParameter - Boolean + SwitchParameter - True + False - - RequiredBeforeCallEstablishment + + Id - Indicates whether the policy-based recording application must be in the call before the call is allowed to establish. - If this is set to True, the call will be cancelled if the policy-based recording application fails to join the call. - If this is set to False, call establishment will proceed normally if the policy-based recording application fails to join the call. + The ObjectId of the application instance of a policy-based recording application as exposed by the Get-CsOnlineApplicationInstance cmdlet. For example, the Id of an application instance can be \"39dc3ede-c80e-4f19-9153-417a65a1f144\", which indicates that the application instance has ObjectId 39dc3ede-c80e-4f19-9153-417a65a1f144. - Boolean + String - Boolean + String - True + None - - RequiredDuringCall + + Identity - Indicates whether the policy-based recording application must be in the call while the call is active. - If this is set to True, the call will be cancelled if the policy-based recording application leaves the call or is dropped from the call. - If this is set to False, call establishment will proceed normally if the policy-based recording application leaves the call or is dropped from the call. + A name that uniquely identifies the application instance of the policy-based recording application. + Application instances of policy-based recording applications must be associated with a Teams recording policy using the CsTeamsComplianceRecordingApplication cmdlets. To do this association correctly, the Identity of these application instances must be <Identity of the associated Teams recording policy>/<ObjectId of the application instance>. For example, the Identity of an application instance can be \"Tag:ContosoPartnerComplianceRecordingPolicy/39dc3ede-c80e-4f19-9153-417a65a1f144\", which indicates that the application instance with ObjectId 39dc3ede-c80e-4f19-9153-417a65a1f144 is associated with the Teams recording policy with Identity ContosoPartnerComplianceRecordingPolicy. - Boolean + XdsIdentity - Boolean + XdsIdentity - True + None - ConcurrentInvitationCount + InMemory - Determines the number of invites to send out to the application instance of the policy-based recording application. Can be set to 1 or 2 only. - In situations where application resiliency is a necessity, multiple invites can be sent to the same application for the same call or meeting. If multiple such invites are accepted, then it means that multiple instances of this application are in the call or meeting and each of those instances can record independent of the others. - If all of the invites are rejected, the application invitation process is deemed a failure and the other flags for this application control what happens next. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredBeforeCallEstablishment parameters. - If at least one of the invites is accepted and the others are rejected, the application invitation process is still deemed a success. - If multiple invites are accepted and all of the instances leave or get dropped from the call or meeting, then the application is no longer in the call or meeting and the other flags for this application control what happens next. Please refer to the documentation of the RequiredDuringMeeting and RequiredDuringCall parameters. - If multiple invites are accepted and at least one of the instances remains in the call or meeting, then the application is in the call or meeting. - Note that application resiliency can be achieved either by sending multiple invites to the same application using ConcurrentInvitationCount or by sending invites to separate paired applications using ComplianceRecordingPairedApplications. However, you cannot do both. Please work with your Microsoft certified policy-based recording application provider to determine if application resiliency is needed for your workflows and how best to achieve application resiliency. + Creates an object reference without actually committing the object as a permanent change. If you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling this cmdlet's matching Set- cmdlet. - UInt32 + SwitchParameter - UInt32 + SwitchParameter - 1 + False - - ComplianceRecordingPairedApplications + + Parent - Determines the other policy-based recording applications to pair with this application to achieve application resiliency. Can only have one paired application. - In situations where application resiliency is a necessity, invites can be sent to separate paired applications for the same call or meeting. If multiple such invites are accepted, then it means that multiple instances of this application are in the call or meeting and each of those instances can record independent of the others. - If all of the invites are rejected, the application invitation process is deemed a failure and the other flags for this application control what happens next. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredBeforeCallEstablishment parameters. - If at least one of the invites is accepted and the others are rejected, the application invitation process is still deemed a success. - If multiple invites are accepted and all of the instances leave or get dropped from the call or meeting, then the application is no longer in the call or meeting and the other flags for this application control what happens next. Please refer to the documentation of the RequiredDuringMeeting and RequiredDuringCall parameters. - If multiple invites are accepted and at least one of the instances remains in the call or meeting, then the application is in the call or meeting. - Note that application resiliency can be achieved either by sending multiple invites to the same application using ConcurrentInvitationCount or by sending invites to separate paired applications using ComplianceRecordingPairedApplications. However, you cannot do both. Please work with your Microsoft certified policy-based recording application provider to determine if application resiliency is needed for your workflows and how best to achieve application resiliency. + The Identity of the Teams recording policy that this application instance of a policy-based recording application is associated with. For example, the Parent of an application instance can be \"Tag:ContosoPartnerComplianceRecordingPolicy\", which indicates that the application instance is associated with the Teams recording policy with Identity ContosoPartnerComplianceRecordingPolicy. - ComplianceRecordingPairedApplication[] + String - ComplianceRecordingPairedApplication[] + String None @@ -15106,56 +15877,76 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al None - Tenant + RequiredBeforeCallEstablishment - Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: - -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" - You can return your tenant ID by running this command: - Get-CsTenant | Select-Object DisplayName, TenantID - If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + Indicates whether the policy-based recording application must be in the call before the call is allowed to establish. + If this is set to True, the call will be cancelled if the policy-based recording application fails to join the call. + If this is set to False, call establishment will proceed normally if the policy-based recording application fails to join the call. - System.Guid + Boolean - System.Guid + Boolean - None + True - - Confirm + + RequiredBeforeMeetingJoin - Prompts you for confirmation before running the cmdlet. + Indicates whether the policy-based recording application must be in the meeting before the user is allowed to join the meeting. + If this is set to True, the user will not be allowed to join the meeting if the policy-based recording application fails to join the meeting. The meeting will still continue for users who are in the meeting. + If this is set to False, the user will be allowed to join the meeting even if the policy-based recording application fails to join the meeting. - SwitchParameter + Boolean - SwitchParameter + Boolean - False + True - Force + RequiredDuringCall - Suppresses the display of any non-fatal error message that might arise when running the command. + Indicates whether the policy-based recording application must be in the call while the call is active. + If this is set to True, the call will be cancelled if the policy-based recording application leaves the call or is dropped from the call. + If this is set to False, call establishment will proceed normally if the policy-based recording application leaves the call or is dropped from the call. - SwitchParameter + Boolean - SwitchParameter + Boolean - False + True - InMemory + RequiredDuringMeeting - Creates an object reference without actually committing the object as a permanent change. If you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling this cmdlet's matching Set- cmdlet. + Indicates whether the policy-based recording application must be in the meeting while the user is in the meeting. + If this is set to True, the user will be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. The meeting will still continue for users who are in the meeting. + If this is set to False, the user will not be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. - SwitchParameter + Boolean - SwitchParameter + Boolean - False + True + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + System.Guid + + System.Guid + + + None WhatIf @@ -15246,43 +16037,43 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingapplication Get-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingpolicy New-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpolicy Set-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingpolicy Grant-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscompliancerecordingpolicy Remove-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingpolicy Get-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/get-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingapplication Set-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/set-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingapplication Remove-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/remove-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingapplication New-CsTeamsComplianceRecordingPairedApplication - https://learn.microsoft.com/powershell/module/teams/new-csteamscompliancerecordingpairedapplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpairedapplication @@ -15374,43 +16165,43 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamscompliancerecordingpairedapplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpairedapplication Get-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingpolicy New-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpolicy Set-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingpolicy Grant-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscompliancerecordingpolicy Remove-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingpolicy Get-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/get-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingapplication Set-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/set-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingapplication New-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/new-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingapplication Remove-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/remove-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingapplication @@ -15446,15 +16237,25 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al None - Enabled + ComplianceRecordingApplications - Controls whether this Teams recording policy is active or not. - Setting this to True and having the right set of ComplianceRecordingApplications will initiate automatic policy-based recording for all new calls and meetings of all Microsoft Teams users who are assigned this policy. Existing calls and meetings are unaffected. - Setting this to False will stop automatic policy-based recording for any new calls or meetings of all Microsoft Teams users who are assigned this policy. Existing calls and meetings are unaffected. + A list of application instances of policy-based recording applications to assign to this policy. The Id of each of these application instances must be the ObjectId of the application instance as obtained by the Get-CsOnlineApplicationInstance cmdlet. + Please work with your Microsoft certified policy-based recording application provider to obtain an instance of their recording application. Please refer to the documentation of the CsOnlineApplicationInstance cmdlets for information on how to create an application instance of a policy-based recording application. - Boolean + ComplianceRecordingApplication[] - Boolean + ComplianceRecordingApplication[] + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter False @@ -15472,21 +16273,21 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al None - WarnUserOnRemoval + CustomPromptsEnabled - This parameter is reserved for future use. + Indicates whether compliance recording custom prompts feature is enabled for this tenant / user. Boolean Boolean - True + None - Description + CustomPromptsPackageId - Enables administrators to provide explanatory text to accompany a Teams recording policy. For example, the Description might include information about the users the policy should be assigned to. + Reference to custom prompts package. String @@ -15496,14 +16297,13 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al None - ComplianceRecordingApplications + Description - A list of application instances of policy-based recording applications to assign to this policy. The Id of each of these application instances must be the ObjectId of the application instance as obtained by the Get-CsOnlineApplicationInstance cmdlet. - Please work with your Microsoft certified policy-based recording application provider to obtain an instance of their recording application. Please refer to the documentation of the CsOnlineApplicationInstance cmdlets for information on how to create an application instance of a policy-based recording application. + Enables administrators to provide explanatory text to accompany a Teams recording policy. For example, the Description might include information about the users the policy should be assigned to. - ComplianceRecordingApplication[] + String - ComplianceRecordingApplication[] + String None @@ -15521,9 +16321,11 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al False - RecordReroutedCalls + Enabled - Setting this attribute to true enables compliance recording for calls that have been re-routed from a compliance recording-enabled user. Supported call scenarios include forward, transfer, delegation, call groups, and simultaneous ring. + Controls whether this Teams recording policy is active or not. + Setting this to True and having the right set of ComplianceRecordingApplications will initiate automatic policy-based recording for all new calls and meetings of all Microsoft Teams users who are assigned this policy. Existing calls and meetings are unaffected. + Setting this to False will stop automatic policy-based recording for any new calls or meetings of all Microsoft Teams users who are assigned this policy. Existing calls and meetings are unaffected. Boolean @@ -15533,25 +16335,9 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al False - Tenant - - Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: - -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" - You can return your tenant ID by running this command: - Get-CsTenant | Select-Object DisplayName, TenantID - If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. - - System.Guid - - System.Guid - - - None - - - Confirm + Force - Prompts you for confirmation before running the cmdlet. + Suppresses the display of any non-fatal error message that might arise when running the command. SwitchParameter @@ -15560,9 +16346,9 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al False - Force + InMemory - Suppresses the display of any non-fatal error message that might arise when running the command. + Creates an object reference without actually committing the object as a permanent change. If you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling this cmdlet's matching Set- cmdlet. SwitchParameter @@ -15571,39 +16357,44 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al False - InMemory + RecordReroutedCalls - Creates an object reference without actually committing the object as a permanent change. If you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling this cmdlet's matching Set- cmdlet. + Setting this attribute to true enables compliance recording for calls that have been re-routed from a compliance recording-enabled user. Supported call scenarios include forward, transfer, delegation, call groups, and simultaneous ring. + Boolean - SwitchParameter + Boolean False - CustomPromptsEnabled + Tenant - Indicates whether compliance recording custom prompts feature is enabled for this tenant / user. + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. - Boolean + System.Guid - Boolean + System.Guid None - CustomPromptsPackageId + WarnUserOnRemoval - Reference to custom prompts package. + This parameter is reserved for future use. - String + Boolean - String + Boolean - None + True WhatIf @@ -15619,29 +16410,27 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al - - Identity + + ComplianceRecordingApplications - Unique identifier to be assigned to the new Teams recording policy. - Use the "Global" Identity if you wish to assign this policy to the entire tenant. + A list of application instances of policy-based recording applications to assign to this policy. The Id of each of these application instances must be the ObjectId of the application instance as obtained by the Get-CsOnlineApplicationInstance cmdlet. + Please work with your Microsoft certified policy-based recording application provider to obtain an instance of their recording application. Please refer to the documentation of the CsOnlineApplicationInstance cmdlets for information on how to create an application instance of a policy-based recording application. - XdsIdentity + ComplianceRecordingApplication[] - XdsIdentity + ComplianceRecordingApplication[] None - - Enabled + + Confirm - Controls whether this Teams recording policy is active or not. - Setting this to True and having the right set of ComplianceRecordingApplications will initiate automatic policy-based recording for all new calls and meetings of all Microsoft Teams users who are assigned this policy. Existing calls and meetings are unaffected. - Setting this to False will stop automatic policy-based recording for any new calls or meetings of all Microsoft Teams users who are assigned this policy. Existing calls and meetings are unaffected. + Prompts you for confirmation before running the cmdlet. - Boolean + SwitchParameter - Boolean + SwitchParameter False @@ -15659,21 +16448,21 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al None - WarnUserOnRemoval + CustomPromptsEnabled - This parameter is reserved for future use. + Indicates whether compliance recording custom prompts feature is enabled for this tenant / user. Boolean Boolean - True + None - Description + CustomPromptsPackageId - Enables administrators to provide explanatory text to accompany a Teams recording policy. For example, the Description might include information about the users the policy should be assigned to. + Reference to custom prompts package. String @@ -15683,14 +16472,13 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al None - ComplianceRecordingApplications + Description - A list of application instances of policy-based recording applications to assign to this policy. The Id of each of these application instances must be the ObjectId of the application instance as obtained by the Get-CsOnlineApplicationInstance cmdlet. - Please work with your Microsoft certified policy-based recording application provider to obtain an instance of their recording application. Please refer to the documentation of the CsOnlineApplicationInstance cmdlets for information on how to create an application instance of a policy-based recording application. + Enables administrators to provide explanatory text to accompany a Teams recording policy. For example, the Description might include information about the users the policy should be assigned to. - ComplianceRecordingApplication[] + String - ComplianceRecordingApplication[] + String None @@ -15708,9 +16496,11 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al False - RecordReroutedCalls + Enabled - Setting this attribute to true enables compliance recording for calls that have been re-routed from a compliance recording-enabled user. Supported call scenarios include forward, transfer, delegation, call groups, and simultaneous ring. + Controls whether this Teams recording policy is active or not. + Setting this to True and having the right set of ComplianceRecordingApplications will initiate automatic policy-based recording for all new calls and meetings of all Microsoft Teams users who are assigned this policy. Existing calls and meetings are unaffected. + Setting this to False will stop automatic policy-based recording for any new calls or meetings of all Microsoft Teams users who are assigned this policy. Existing calls and meetings are unaffected. Boolean @@ -15720,37 +16510,34 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al False - Tenant + Force - Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: - -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" - You can return your tenant ID by running this command: - Get-CsTenant | Select-Object DisplayName, TenantID - If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + Suppresses the display of any non-fatal error message that might arise when running the command. - System.Guid + SwitchParameter - System.Guid + SwitchParameter - None + False - - Confirm + + Identity - Prompts you for confirmation before running the cmdlet. + Unique identifier to be assigned to the new Teams recording policy. + Use the "Global" Identity if you wish to assign this policy to the entire tenant. - SwitchParameter + XdsIdentity - SwitchParameter + XdsIdentity - False + None - Force + InMemory - Suppresses the display of any non-fatal error message that might arise when running the command. + Creates an object reference without actually committing the object as a permanent change. If you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling this cmdlet's matching Set- cmdlet. SwitchParameter @@ -15760,40 +16547,44 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al False - InMemory + RecordReroutedCalls - Creates an object reference without actually committing the object as a permanent change. If you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling this cmdlet's matching Set- cmdlet. + Setting this attribute to true enables compliance recording for calls that have been re-routed from a compliance recording-enabled user. Supported call scenarios include forward, transfer, delegation, call groups, and simultaneous ring. - SwitchParameter + Boolean - SwitchParameter + Boolean False - CustomPromptsEnabled + Tenant - Indicates whether compliance recording custom prompts feature is enabled for this tenant / user. + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. - Boolean + System.Guid - Boolean + System.Guid None - CustomPromptsPackageId + WarnUserOnRemoval - Reference to custom prompts package. + This parameter is reserved for future use. - String + Boolean - String + Boolean - None + True WhatIf @@ -15854,43 +16645,43 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpolicy Get-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingpolicy Set-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingpolicy Grant-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscompliancerecordingpolicy Remove-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingpolicy Get-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/get-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingapplication New-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/new-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingapplication Set-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/set-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingapplication Remove-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/remove-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingapplication New-CsTeamsComplianceRecordingPairedApplication - https://learn.microsoft.com/powershell/module/teams/new-csteamscompliancerecordingpairedapplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpairedapplication @@ -15912,6 +16703,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al Id + > Applicable: Microsoft Teams The Identity of the CustomBannerText. You do not need to provide an ID as the backend will generate it for you. However, if you wish to provide your own ID, you can provide your own GUID. Note that you have to provide a unique ID for every CsTeamsCustomBannerText you create. Guid @@ -15922,9 +16714,9 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al None - Text + Description - The text that the global admin would like to set in the policy. + The description that the global admin would like to set to identify what this text represents. String @@ -15934,9 +16726,9 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al None - Description + Text - The description that the global admin would like to set to identify what this text represents. + The text that the global admin would like to set in the policy. String @@ -15948,9 +16740,22 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al + + Description + + The description that the global admin would like to set to identify what this text represents. + + String + + String + + + None + Id + > Applicable: Microsoft Teams The Identity of the CustomBannerText. You do not need to provide an ID as the backend will generate it for you. However, if you wish to provide your own ID, you can provide your own GUID. Note that you have to provide a unique ID for every CsTeamsCustomBannerText you create. Guid @@ -15972,18 +16777,6 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al None - - Description - - The description that the global admin would like to set to identify what this text represents. - - String - - String - - - None - @@ -16022,19 +16815,19 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamscustombannertext + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscustombannertext Set-CsTeamsCustomBannerText - https://learn.microsoft.com/powershell/module/teams/set-csteamscustombannertext + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscustombannertext New-CsTeamsCustomBannerText - https://learn.microsoft.com/powershell/module/teams/new-csteamscustombannertext + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscustombannertext Remove-CsTeamsCustomBannerText - https://learn.microsoft.com/powershell/module/teams/remove-csteamscustombannertext + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscustombannertext @@ -16066,9 +16859,9 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al None - NotificationGroup + NotificationDialOutNumber - NotificationGroup is an email list of users and groups to be notified of an emergency call. Individual users or groups are separated by ";", for instance, "group1@contoso.com;group2@contoso.com". A maximum of 10 entries consisting of users and/or groups can be added to the NotificationGroup. The total number of users notified cannot exceed 50. + This parameter represents the PSTN number which can be dialed out if NotificationMode is set to either of the two Conference values. The PSTN phone cannot be unmuted even when the NotificationMode is set to ConferenceUnMuted. String @@ -16078,9 +16871,9 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al None - NotificationDialOutNumber + NotificationGroup - This parameter represents the PSTN number which can be dialed out if NotificationMode is set to either of the two Conference values. The PSTN phone cannot be unmuted even when the NotificationMode is set to ConferenceUnMuted. + NotificationGroup is an email list of users and groups to be notified of an emergency call. Individual users or groups are separated by ";", for instance, "group1@contoso.com;group2@contoso.com". A maximum of 10 entries consisting of users and/or groups can be added to the NotificationGroup. The total number of users notified cannot exceed 50. String @@ -16122,9 +16915,9 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al None - NotificationGroup + NotificationDialOutNumber - NotificationGroup is an email list of users and groups to be notified of an emergency call. Individual users or groups are separated by ";", for instance, "group1@contoso.com;group2@contoso.com". A maximum of 10 entries consisting of users and/or groups can be added to the NotificationGroup. The total number of users notified cannot exceed 50. + This parameter represents the PSTN number which can be dialed out if NotificationMode is set to either of the two Conference values. The PSTN phone cannot be unmuted even when the NotificationMode is set to ConferenceUnMuted. String @@ -16134,9 +16927,9 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al None - NotificationDialOutNumber + NotificationGroup - This parameter represents the PSTN number which can be dialed out if NotificationMode is set to either of the two Conference values. The PSTN phone cannot be unmuted even when the NotificationMode is set to ConferenceUnMuted. + NotificationGroup is an email list of users and groups to be notified of an emergency call. Individual users or groups are separated by ";", for instance, "group1@contoso.com;group2@contoso.com". A maximum of 10 entries consisting of users and/or groups can be added to the NotificationGroup. The total number of users notified cannot exceed 50. String @@ -16195,15 +16988,15 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamsemergencycallingextendednotification + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallingextendednotification Set-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsemergencycallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallingpolicy New-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsemergencycallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallingpolicy @@ -16234,6 +17027,17 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + Description @@ -16339,31 +17143,20 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Identity + + Confirm - The Identity parameter is a unique identifier that designates the name of the policy + Prompts you for confirmation before running the cmdlet. - String + SwitchParameter - String + SwitchParameter - None + False Description @@ -16414,6 +17207,18 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al None + + Identity + + The Identity parameter is a unique identifier that designates the name of the policy + + String + + String + + + None + NotificationDialOutNumber @@ -16462,18 +17267,6 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - @@ -16522,27 +17315,27 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamsemergencycallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallingpolicy Get-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsemergencycallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsemergencycallingpolicy Grant-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsemergencycallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsemergencycallingpolicy Remove-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsemergencycallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsemergencycallingpolicy Set-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsemergencycallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallingpolicy New-CsTeamsEmergencyCallingExtendedNotification - https://learn.microsoft.com/powershell/module/teams/new-csteamsemergencycallingextendednotification + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallingextendednotification @@ -16573,22 +17366,37 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter None - - AllowWebinars + + AllowedQuestionTypesInRegistrationForm - This setting governs if a user can create webinars using Teams Events. Possible values are: - Enabled : Enables creating webinars. - Disabled : Disables creating webinars. + This setting governs which users in a tenant can add which registration form questions to an event registration page for attendees to answer when registering for the event. + Possible values are: DefaultOnly, DefaultAndPredefinedOnly, AllQuestions. String String - Enabled + None - UseMicrosoftECDN + AllowedTownhallTypesForRecordingPublish - This setting governs whether the admin disables this property and prevents the organizers from creating town halls that use Microsoft eCDN even though they have been assigned a Teams Premium license. + This setting governs which types of town halls can have their recordings published. + Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. + + String + + String + + + None + + + AllowedWebinarTypesForRecordingPublish + + This setting governs which types of webinars can have their recordings published. + Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. String @@ -16598,9 +17406,9 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter None - AllowTownhalls + AllowEmailEditing - This setting governs if a user can create town halls using Teams Events. Possible values are: - Enabled : Enables creating town halls. - Disabled : Disables creating town hall. + This setting governs if a user is allowed to edit the communication emails in Teams Town Hall or Teams Webinar events. Possible values are: - Enabled : Enables editing of communication emails. - Disabled : Disables editing of communication emails. String @@ -16610,21 +17418,33 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter Enabled - TownhallEventAttendeeAccess + AllowEventIntegrations - This setting governs what identity types may attend a Town hall that is scheduled by a particular person or group that is assigned this policy. Possible values are: - Everyone : Anyone with the join link may enter the event. - EveryoneInOrganizationAndGuests : Only those who are Guests to the tenant, MTO users, and internal AAD users may enter the event. + This setting governs the access to the integrations tab in the event creation workflow. + + Boolean + + Boolean + + + None + + + AllowTownhalls + + This setting governs if a user can create town halls using Teams Events. Possible values are: - Enabled : Enables creating town halls. - Disabled : Disables creating town hall. String String - Everyone + Enabled - AllowEmailEditing + AllowWebinars - This setting governs if a user is allowed to edit the communication emails in Teams Town Hall or Teams Webinar events. Possible values are: - Enabled : Enables editing of communication emails. - Disabled : Disables editing of communication emails. + This setting governs if a user can create webinars using Teams Events. Possible values are: - Enabled : Enables creating webinars. - Disabled : Disables creating webinars. String @@ -16634,24 +17454,33 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter Enabled - EventAccessType + BroadcastPremiumApps - This setting governs which users can access the Town hall event and access the event registration page or the event site to register for a Webinar. It also governs which user type is allowed to join the session or sessions in the event for both event types. - Possible values are: - Everyone : Enables creating events to allow in-tenant, guests, federated, and anonymous (external to the tenant) users to register and join the event. - - EveryoneInCompanyExcludingGuests : For Webinar - enables creating events to allow only in-tenant users to register and join the event. For Town hall - enables creating events to allow only in-tenant users to join the event (Note: for Town hall, in-tenant users include guests; this parameter will disable public Town halls). + This setting will enable Tenant Admins to specify if an organizer of a Teams Premium town hall may add an app that is accessible by everyone, including attendees, in a broadcast style Event including a Town hall. This does not include control over apps (such as AI Producer and Custom Streaming Apps) that are only accessible by the Event group. + Possible values are: - Enabled : An organizer of a Premium town hall can add a Premium App such as Polls to the Town hall - Disabled : An organizer of a Premium town hall CANNOT add a Premium App such as Polls to the Town hall String String - Everyone + Enabled + + + Confirm + + The Confirm switch does not work with this cmdlet. + + + SwitchParameter + + + False - AllowedQuestionTypesInRegistrationForm + Description - This setting governs which users in a tenant can add which registration form questions to an event registration page for attendees to answer when registering for the event. - Possible values are: DefaultOnly, DefaultAndPredefinedOnly, AllQuestions. + Enables administrators to provide explanatory text to accompany a Teams Events policy. String @@ -16661,30 +17490,30 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter None - AllowedTownhallTypesForRecordingPublish + EventAccessType - This setting governs which types of town halls can have their recordings published. - Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. + This setting governs which users can access the Town hall event and access the event registration page or the event site to register for a Webinar. It also governs which user type is allowed to join the session or sessions in the event for both event types. + Possible values are: - Everyone : Enables creating events to allow in-tenant, guests, federated, and anonymous (external to the tenant) users to register and join the event. + - EveryoneInCompanyExcludingGuests : For Webinar - enables creating events to allow only in-tenant users to register and join the event. For Town hall - enables creating events to allow only in-tenant users to join the event (Note: for Town hall, in-tenant users include guests; this parameter will disable public Town halls). String String - None + Everyone - AllowedWebinarTypesForRecordingPublish + ImmersiveEvents - This setting governs which types of webinars can have their recordings published. - Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. + This setting governs if a user can create Immersive Events using Teams Events. Possible values are: - Enabled : Enables creating Immersive Events. - Disabled : Disables creating Immersive Events. String String - None + Enabled RecordingForTownhall @@ -16711,21 +17540,33 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter Enabled - TranscriptionForTownhall + TownhallChatExperience - Determines whether transcriptions are allowed in a user's townhall. Possible values are: - Enabled : Allow transcriptions in user's townhalls. - Disabled : Prohibit transcriptions in user's townhalls. + This setting governs if the user can enable the Comment Stream chat experience for Townhalls. String String - Enabled + None - TranscriptionForWebinar + TownhallEventAttendeeAccess - Determines whether transcriptions are allowed in a user's webinar. Possible values are: - Enabled : Allow transcriptions in user's webinars. - Disabled : Prohibit transcriptions in user's webinars. + This setting governs what identity types may attend a Town hall that is scheduled by a particular person or group that is assigned this policy. Possible values are: - Everyone : Anyone with the join link may enter the event. - EveryoneInOrganizationAndGuests : Only those who are Guests to the tenant, MTO users, and internal AAD users may enter the event. + + String + + String + + + Everyone + + + TranscriptionForTownhall + + Determines whether transcriptions are allowed in a user's townhall. Possible values are: - Enabled : Allow transcriptions in user's townhalls. - Disabled : Prohibit transcriptions in user's townhalls. String @@ -16735,21 +17576,21 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter Enabled - AllowEventIntegrations + TranscriptionForWebinar - This setting governs the access to the integrations tab in the event creation workflow. + Determines whether transcriptions are allowed in a user's webinar. Possible values are: - Enabled : Allow transcriptions in user's webinars. - Disabled : Prohibit transcriptions in user's webinars. - Boolean + String - Boolean + String - None + Enabled - TownhallChatExperience + UseMicrosoftECDN - This setting governs if the user can enable the Comment Stream chat experience for Townhalls. + This setting governs whether the admin disables this property and prevents the organizers from creating town halls that use Microsoft eCDN even though they have been assigned a Teams Premium license. String @@ -16758,28 +17599,31 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter None - - Confirm + + MaxResolutionForTownhall - The Confirm switch does not work with this cmdlet. + This policy sets the maximum video resolution supported in Town hall events. + Possible values are: - Max720p : Town halls support video resolution up to 720p. - Max1080p : Town halls support video resolution up to 1080p. + String - SwitchParameter + String - False + Max1080p - Description + HighBitrateForTownhall - Enables administrators to provide explanatory text to accompany a Teams Events policy. + This policy controls whether high-bitrate streaming is enabled for Town hall events. + Possible values are: - Enabled : Enables high bitrate for Town hall events. - Disabled : Disables high bitrate for Town hall events. String String - None + Disabled WhatIf @@ -16795,80 +17639,6 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter - - AllowWebinars - - This setting governs if a user can create webinars using Teams Events. Possible values are: - Enabled : Enables creating webinars. - Disabled : Disables creating webinars. - - String - - String - - - Enabled - - - UseMicrosoftECDN - - This setting governs whether the admin disables this property and prevents the organizers from creating town halls that use Microsoft eCDN even though they have been assigned a Teams Premium license. - - String - - String - - - None - - - AllowTownhalls - - This setting governs if a user can create town halls using Teams Events. Possible values are: - Enabled : Enables creating town halls. - Disabled : Disables creating town hall. - - String - - String - - - Enabled - - - TownhallEventAttendeeAccess - - This setting governs what identity types may attend a Town hall that is scheduled by a particular person or group that is assigned this policy. Possible values are: - Everyone : Anyone with the join link may enter the event. - EveryoneInOrganizationAndGuests : Only those who are Guests to the tenant, MTO users, and internal AAD users may enter the event. - - String - - String - - - Everyone - - - AllowEmailEditing - - This setting governs if a user is allowed to edit the communication emails in Teams Town Hall or Teams Webinar events. Possible values are: - Enabled : Enables editing of communication emails. - Disabled : Disables editing of communication emails. - - String - - String - - - Enabled - - - EventAccessType - - This setting governs which users can access the Town hall event and access the event registration page or the event site to register for a Webinar. It also governs which user type is allowed to join the session or sessions in the event for both event types. - Possible values are: - Everyone : Enables creating events to allow in-tenant, guests, federated, and anonymous (external to the tenant) users to register and join the event. - - EveryoneInCompanyExcludingGuests : For Webinar - enables creating events to allow only in-tenant users to register and join the event. For Town hall - enables creating events to allow only in-tenant users to join the event (Note: for Town hall, in-tenant users include guests; this parameter will disable public Town halls). - - String - - String - - - Everyone - AllowedQuestionTypesInRegistrationForm @@ -16908,10 +17678,46 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter None + + AllowEmailEditing + + This setting governs if a user is allowed to edit the communication emails in Teams Town Hall or Teams Webinar events. Possible values are: - Enabled : Enables editing of communication emails. - Disabled : Disables editing of communication emails. + + String + + String + + + Enabled + - RecordingForTownhall + AllowEventIntegrations - Determines whether recording is allowed in a user's townhall. Possible values are: - Enabled : Allow recording in user's townhalls. - Disabled : Prohibit recording in user's townhalls. + This setting governs the access to the integrations tab in the event creation workflow. + + Boolean + + Boolean + + + None + + + AllowTownhalls + + This setting governs if a user can create town halls using Teams Events. Possible values are: - Enabled : Enables creating town halls. - Disabled : Disables creating town hall. + + String + + String + + + Enabled + + + AllowWebinars + + This setting governs if a user can create webinars using Teams Events. Possible values are: - Enabled : Enables creating webinars. - Disabled : Disables creating webinars. String @@ -16921,9 +17727,10 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter Enabled - RecordingForWebinar + BroadcastPremiumApps - Determines whether recording is allowed in a user's webinar. Possible values are: - Enabled : Allow recording in user's webinars. - Disabled : Prohibit recording in user's webinars. + This setting will enable Tenant Admins to specify if an organizer of a Teams Premium town hall may add an app that is accessible by everyone, including attendees, in a broadcast style Event including a Town hall. This does not include control over apps (such as AI Producer and Custom Streaming Apps) that are only accessible by the Event group. + Possible values are: - Enabled : An organizer of a Premium town hall can add a Premium App such as Polls to the Town hall - Disabled : An organizer of a Premium town hall CANNOT add a Premium App such as Polls to the Town hall String @@ -16932,10 +17739,60 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter Enabled + + Confirm + + The Confirm switch does not work with this cmdlet. + + SwitchParameter + + SwitchParameter + + + False + - TranscriptionForTownhall + Description - Determines whether transcriptions are allowed in a user's townhall. Possible values are: - Enabled : Allow transcriptions in user's townhalls. - Disabled : Prohibit transcriptions in user's townhalls. + Enables administrators to provide explanatory text to accompany a Teams Events policy. + + String + + String + + + None + + + EventAccessType + + This setting governs which users can access the Town hall event and access the event registration page or the event site to register for a Webinar. It also governs which user type is allowed to join the session or sessions in the event for both event types. + Possible values are: - Everyone : Enables creating events to allow in-tenant, guests, federated, and anonymous (external to the tenant) users to register and join the event. + - EveryoneInCompanyExcludingGuests : For Webinar - enables creating events to allow only in-tenant users to register and join the event. For Town hall - enables creating events to allow only in-tenant users to join the event (Note: for Town hall, in-tenant users include guests; this parameter will disable public Town halls). + + String + + String + + + Everyone + + + Identity + + Unique identifier assigned to the Teams Events policy. + + String + + String + + + None + + + ImmersiveEvents + + This setting governs if a user can create Immersive Events using Teams Events. Possible values are: - Enabled : Enables creating Immersive Events. - Disabled : Disables creating Immersive Events. String @@ -16945,9 +17802,9 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter Enabled - TranscriptionForWebinar + RecordingForTownhall - Determines whether transcriptions are allowed in a user's webinar. Possible values are: - Enabled : Allow transcriptions in user's webinars. - Disabled : Prohibit transcriptions in user's webinars. + Determines whether recording is allowed in a user's townhall. Possible values are: - Enabled : Allow recording in user's townhalls. - Disabled : Prohibit recording in user's townhalls. String @@ -16957,16 +17814,16 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter Enabled - AllowEventIntegrations + RecordingForWebinar - This setting governs the access to the integrations tab in the event creation workflow. + Determines whether recording is allowed in a user's webinar. Possible values are: - Enabled : Allow recording in user's webinars. - Disabled : Prohibit recording in user's webinars. - Boolean + String - Boolean + String - None + Enabled TownhallChatExperience @@ -16980,34 +17837,46 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter None - - Confirm + + TownhallEventAttendeeAccess - The Confirm switch does not work with this cmdlet. + This setting governs what identity types may attend a Town hall that is scheduled by a particular person or group that is assigned this policy. Possible values are: - Everyone : Anyone with the join link may enter the event. - EveryoneInOrganizationAndGuests : Only those who are Guests to the tenant, MTO users, and internal AAD users may enter the event. - SwitchParameter + String - SwitchParameter + String - False + Everyone - Description + TranscriptionForTownhall - Enables administrators to provide explanatory text to accompany a Teams Events policy. + Determines whether transcriptions are allowed in a user's townhall. Possible values are: - Enabled : Allow transcriptions in user's townhalls. - Disabled : Prohibit transcriptions in user's townhalls. String String - None + Enabled - - Identity + + TranscriptionForWebinar - Unique identifier assigned to the Teams Events policy. + Determines whether transcriptions are allowed in a user's webinar. Possible values are: - Enabled : Allow transcriptions in user's webinars. - Disabled : Prohibit transcriptions in user's webinars. + + String + + String + + + Enabled + + + UseMicrosoftECDN + + This setting governs whether the admin disables this property and prevents the organizers from creating town halls that use Microsoft eCDN even though they have been assigned a Teams Premium license. String @@ -17016,6 +17885,32 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter None + + MaxResolutionForTownhall + + This policy sets the maximum video resolution supported in Town hall events. + Possible values are: - Max720p : Town halls support video resolution up to 720p. - Max1080p : Town halls support video resolution up to 1080p. + + String + + String + + + Max1080p + + + HighBitrateForTownhall + + This policy controls whether high-bitrate streaming is enabled for Town hall events. + Possible values are: - Enabled : Enables high bitrate for Town hall events. - Disabled : Disables high bitrate for Town hall events. + + String + + String + + + Disabled + WhatIf @@ -17073,7 +17968,7 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamseventspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamseventspolicy @@ -17104,6 +17999,42 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter None + + AllowEmailCollection + + Set this to TRUE to enable Email collection. + + Boolean + + Boolean + + + None + + + AllowLogCollection + + Set this to TRUE to enable log collection. + + Boolean + + Boolean + + + None + + + AllowScreenshotCollection + + Set this to TRUE to enable Screenshot collection. + + Boolean + + Boolean + + + None + Confirm @@ -17115,6 +18046,18 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter False + + EnableFeatureSuggestions + + This setting will enable Tenant Admins to hide or show the Teams menu item “Help | Suggest a Feature”. + + Boolean + + Boolean + + + None + Force @@ -17175,54 +18118,6 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter Enabled - - AllowEmailCollection - - Set this to TRUE to enable Email collection. - - Boolean - - Boolean - - - None - - - AllowLogCollection - - Set this to TRUE to enable log collection. - - Boolean - - Boolean - - - None - - - AllowScreenshotCollection - - Set this to TRUE to enable Screenshot collection. - - Boolean - - Boolean - - - None - - - EnableFeatureSuggestions - - This setting will enable Tenant Admins to hide or show the Teams menu item “Help | Suggest a Feature”. - - Boolean - - Boolean - - - None - WhatIf @@ -17237,6 +18132,42 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter + + AllowEmailCollection + + Set this to TRUE to enable Email collection. + + Boolean + + Boolean + + + None + + + AllowLogCollection + + Set this to TRUE to enable log collection. + + Boolean + + Boolean + + + None + + + AllowScreenshotCollection + + Set this to TRUE to enable Screenshot collection. + + Boolean + + Boolean + + + None + Confirm @@ -17249,6 +18180,18 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter False + + EnableFeatureSuggestions + + This setting will enable Tenant Admins to hide or show the Teams menu item “Help | Suggest a Feature”. + + Boolean + + Boolean + + + None + Force @@ -17323,54 +18266,6 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter Enabled - - AllowEmailCollection - - Set this to TRUE to enable Email collection. - - Boolean - - Boolean - - - None - - - AllowLogCollection - - Set this to TRUE to enable log collection. - - Boolean - - Boolean - - - None - - - AllowScreenshotCollection - - Set this to TRUE to enable Screenshot collection. - - Boolean - - Boolean - - - None - - - EnableFeatureSuggestions - - This setting will enable Tenant Admins to hide or show the Teams menu item “Help | Suggest a Feature”. - - Boolean - - Boolean - - - None - WhatIf @@ -17421,7 +18316,7 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamsfeedbackpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsfeedbackpolicy @@ -17431,7 +18326,7 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter New CsTeamsFilesPolicy - Creates a new teams files policy. teams files policies determine whether or not files entry points to sharepoint enabled for a user. The policies also specify third party app id to allow file storage(eg. Box). + Creates a new teams files policy. @@ -17453,9 +18348,9 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter None - NativeFileEntryPoints + DefaultFileUploadAppId - This parameter is enabled by default, which shows the option to upload content from ODSP to Teams chats or channels. . Possible values are Enabled or Disabled. + This can be used by the 3p apps to configure their app, so when the files will be dragged and dropped in compose, it will get uploaded in that 3P app. String @@ -17465,16 +18360,18 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter None - DefaultFileUploadAppId + FileSharingInChatswithExternalUsers - This can be used by the 3p apps to configure their app, so when the files will be dragged and dropped in compose, it will get uploaded in that 3P app. + Indicates if file sharing in chats with external users is enabled. It is by default enabled, to disable admins can run following command. + + Set-CsTeamsFilesPolicy -Identity Global -FileSharingInChatswithExternalUsers Disabled String String - None + Enabled Force @@ -17488,9 +18385,9 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter False - FileSharingInChatswithExternalUsers + NativeFileEntryPoints - Indicates if file sharing in chats with external users is enabled. + This parameter is enabled by default, which shows the option to upload content from ODSP to Teams chats or channels. . Possible values are Enabled or Disabled. String @@ -17525,22 +18422,10 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter - - Identity - - A unique identifier specifying the scope, and in some cases the name, of the policy. - - String - - String - - - None - - NativeFileEntryPoints + DefaultFileUploadAppId - This parameter is enabled by default, which shows the option to upload content from ODSP to Teams chats or channels. . Possible values are Enabled or Disabled. + This can be used by the 3p apps to configure their app, so when the files will be dragged and dropped in compose, it will get uploaded in that 3P app. String @@ -17550,16 +18435,18 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter None - DefaultFileUploadAppId + FileSharingInChatswithExternalUsers - This can be used by the 3p apps to configure their app, so when the files will be dragged and dropped in compose, it will get uploaded in that 3P app. + Indicates if file sharing in chats with external users is enabled. It is by default enabled, to disable admins can run following command. + + Set-CsTeamsFilesPolicy -Identity Global -FileSharingInChatswithExternalUsers Disabled String String - None + Enabled Force @@ -17573,10 +18460,22 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter False + + Identity + + A unique identifier specifying the scope, and in some cases the name, of the policy. + + String + + String + + + None + - FileSharingInChatswithExternalUsers + NativeFileEntryPoints - Indicates if file sharing in chats with external users is enabled. + This parameter is enabled by default, which shows the option to upload content from ODSP to Teams chats or channels. . Possible values are Enabled or Disabled. String @@ -17629,23 +18528,23 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamsfilespolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsfilespolicy Get-CsTeamsFilesPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsfilespolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsfilespolicy Get-CsTeamsFilesPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsfilespolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsfilespolicy Get-CsTeamsFilesPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsfilespolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsfilespolicy Get-CsTeamsFilesPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsfilespolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsfilespolicy @@ -17655,11 +18554,11 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter New CsTeamsHiddenMeetingTemplate - This cmdlet is used to create a `HiddenMeetingTemplate` object for use with the New-CsTeamsMeetingTemplatePermissionPolicy (https://learn.microsoft.com/powershell/module/teams/new-csteamsmeetingtemplatepermissionpolicy) and [Set-CsTeamsMeetingTemplatePermissionPolicy](https://learn.microsoft.com/powershell/module/teams/set-csteamsmeetingtemplatepermissionpolicy)cmdlets. + This cmdlet is used to create a `HiddenMeetingTemplate` object. - Creates an object that can be supplied as `HiddenMeetingTemplate` to the New-CsTeamsMeetingTemplatePermissionPolicy (https://learn.microsoft.com/powershell/module/teams/new-csteamsmeetingtemplatepermissionpolicy) and [Set-CsTeamsMeetingTemplatePermissionPolicy](https://learn.microsoft.com/powershell/module/teams/set-csteamsmeetingtemplatepermissionpolicy)cmdlets. + Creates an object that can be supplied as `HiddenMeetingTemplate` to the New-CsTeamsMeetingTemplatePermissionPolicy (new-csteamsmeetingtemplatepermissionpolicy.md)and Set-CsTeamsMeetingTemplatePermissionPolicy (set-csteamsmeetingtemplatepermissionpolicy.md)cmdlets. @@ -17667,6 +18566,7 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter Id + > Applicable: Microsoft Teams ID of the meeting template to hide. String @@ -17682,6 +18582,7 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter Id + > Applicable: Microsoft Teams ID of the meeting template to hide. String @@ -17705,26 +18606,26 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter PS> $hiddentemplate_1 = New-CsTeamsHiddenMeetingTemplate -Id customtemplate_9ab0014a-bba4-4ad6-b816-0b42104b5056 Creates a new HiddenMeetingTemplate object with the given template ID. - For more examples of how this can be used, see the examples for New-CsTeamsMeetingTemplatePermissionPolicy (https://learn.microsoft.com/powershell/module/teams/new-csteamsmeetingtemplatepermissionpolicy). + For more examples of how this can be used, see the examples for New-CsTeamsMeetingTemplatePermissionPolicy (https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingtemplatepermissionpolicy). Online Version: - https://learn.microsoft.com/powershell/module/teams/New-CsTeamsHiddenMeetingTemplate + https://learn.microsoft.com/powershell/module/microsoftteams/New-CsTeamsHiddenMeetingTemplate Get-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsmeetingtemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingtemplatepermissionpolicy New-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsmeetingtemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingtemplatepermissionpolicy Set-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsmeetingtemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingtemplatepermissionpolicy @@ -17734,11 +18635,11 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter New CsTeamsHiddenTemplate - This cmdlet is used to create a `HiddenTemplate` object for use with the New-CsTeamsTemplatePermissionPolicy (https://learn.microsoft.com/powershell/module/teams/new-csteamstemplatepermissionpolicy) and [Set-CsTeamsTemplatePermissionPolicy](https://learn.microsoft.com/powershell/module/teams/set-csteamstemplatepermissionpolicy)cmdlets. + This cmdlet is used to create a `HiddenTemplate` object. - Creates an object that can be supplied as `HiddenTemplate` to the New-CsTeamsTemplatePermissionPolicy (https://learn.microsoft.com/powershell/module/teams/new-csteamstemplatepermissionpolicy) and [Set-CsTeamsTemplatePermissionPolicy](https://learn.microsoft.com/powershell/module/teams/set-csteamstemplatepermissionpolicy)cmdlets. + Creates an object that can be supplied as `HiddenTemplate` to the New-CsTeamsTemplatePermissionPolicy (new-csteamstemplatepermissionpolicy.md) and [Set-CsTeamsTemplatePermissionPolicy](set-csteamstemplatepermissionpolicy.md)cmdlets. @@ -17801,22 +18702,22 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter -------------------------- Example 1 -------------------------- PS >$manageProjectTemplate = New-CsTeamsHiddenTemplate -Id com.microsoft.teams.template.ManageAProject - Creates a new hidden Teams template object. For more examples of how this can be used, see the examples for New-CsTeamsTemplatePermissionPolicy (https://learn.microsoft.com/powershell/module/teams/new-csteamstemplatepermissionpolicy). + Creates a new hidden Teams template object. For more examples of how this can be used, see the examples for New-CsTeamsTemplatePermissionPolicy (https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamstemplatepermissionpolicy). Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamshiddentemplate + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamshiddentemplate New-CsTeamsTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamstemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamstemplatepermissionpolicy Set-CsTeamsTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamstemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstemplatepermissionpolicy @@ -17835,10 +18736,10 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter New-CsTeamsMediaConnectivityPolicy - - Identity + + DirectConnection - Identity of the Teams media connectivity policy. + This setting will enable Tenant Admins to control the Teams media connectivity behavior in Teams for both Meetings and 1:1 calls. If this setting is set to true, a direct media connection between the current user and a remote user is allowed which may improve the meeting quality and reduce the egress bandwidth usage for the customer. If this setting is set to disabled, no direct media connection will be allowed for the current user. String @@ -17847,10 +18748,10 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter None - - DirectConnection + + Identity - This setting will enable Tenant Admins to control the Teams media connectivity behavior in Teams for both Meetings and 1:1 calls. If this setting is set to true, a direct media connection between the current user and a remote user is allowed which may improve the meeting quality and reduce the egress bandwidth usage for the customer. If this setting is set to disabled, no direct media connection will be allowed for the current user. + Identity of the Teams media connectivity policy. String @@ -17862,10 +18763,10 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter - - Identity + + DirectConnection - Identity of the Teams media connectivity policy. + This setting will enable Tenant Admins to control the Teams media connectivity behavior in Teams for both Meetings and 1:1 calls. If this setting is set to true, a direct media connection between the current user and a remote user is allowed which may improve the meeting quality and reduce the egress bandwidth usage for the customer. If this setting is set to disabled, no direct media connection will be allowed for the current user. String @@ -17874,10 +18775,10 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter None - - DirectConnection + + Identity - This setting will enable Tenant Admins to control the Teams media connectivity behavior in Teams for both Meetings and 1:1 calls. If this setting is set to true, a direct media connection between the current user and a remote user is allowed which may improve the meeting quality and reduce the egress bandwidth usage for the customer. If this setting is set to disabled, no direct media connection will be allowed for the current user. + Identity of the Teams media connectivity policy. String @@ -17910,23 +18811,23 @@ Tag:Test Enabled Online Version: - https://learn.microsoft.com/powershell/module/teams/New-CsTeamsMediaConnectivityPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/New-CsTeamsMediaConnectivityPolicy Remove-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsmediaconnectivitypolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmediaconnectivitypolicy Get-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsmediaconnectivitypolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmediaconnectivitypolicy Set-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsmediaconnectivitypolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmediaconnectivitypolicy Grant-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsmediaconnectivitypolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmediaconnectivitypolicy @@ -17957,6 +18858,17 @@ Tag:Test Enabled None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + DefaultTheme @@ -17994,21 +18906,32 @@ Tag:Test Enabled None - MeetingBackgroundImages + EnableNdiAssuranceSlate - This parameter is reserved for Microsoft internal use only. List of meeting background images. Image upload is not possible via cmdlets. You should upload background images via Teams Admin Center. + This enables meeting Network Device Interface Assurance Slate branding. - PSListModifier + Boolean - PSListModifier + Boolean None - MeetingBrandingThemes + Force - This parameter is reserved for Microsoft internal use only. List of meeting branding themes. Image upload is not possible via cmdlets. You should create meeting themes via Teams Admin Center. + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + + SwitchParameter + + + False + + + MeetingBackgroundImages + + This parameter is reserved for Microsoft internal use only. List of meeting background images. Image upload is not possible via cmdlets. You should upload background images via Teams Admin Center. PSListModifier @@ -18018,13 +18941,13 @@ Tag:Test Enabled None - EnableNdiAssuranceSlate + MeetingBrandingThemes - This enables meeting Network Device Interface Assurance Slate branding. + This parameter is reserved for Microsoft internal use only. List of meeting branding themes. Image upload is not possible via cmdlets. You should create meeting themes via Teams Admin Center. - Boolean + PSListModifier - Boolean + PSListModifier None @@ -18053,28 +18976,6 @@ Tag:Test Enabled None - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Force - - Suppresses any confirmation prompts that would otherwise be displayed before making changes. - - - SwitchParameter - - - False - WhatIf @@ -18089,6 +18990,18 @@ Tag:Test Enabled + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + DefaultTheme @@ -18125,6 +19038,30 @@ Tag:Test Enabled None + + EnableNdiAssuranceSlate + + This enables meeting Network Device Interface Assurance Slate branding. + + Boolean + + Boolean + + + None + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + SwitchParameter + + SwitchParameter + + + False + Identity @@ -18161,18 +19098,6 @@ Tag:Test Enabled None - - EnableNdiAssuranceSlate - - This enables meeting Network Device Interface Assurance Slate branding. - - Boolean - - Boolean - - - None - NdiAssuranceSlateImages @@ -18197,30 +19122,6 @@ Tag:Test Enabled None - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Force - - Suppresses any confirmation prompts that would otherwise be displayed before making changes. - - SwitchParameter - - SwitchParameter - - - False - WhatIf @@ -18253,27 +19154,27 @@ Tag:Test Enabled Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamsmeetingbrandingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingbrandingpolicy Get-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsmeetingbrandingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingbrandingpolicy Grant-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsmeetingbrandingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingbrandingpolicy New-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsmeetingbrandingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingbrandingpolicy Remove-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsmeetingbrandingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingbrandingpolicy Set-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsmeetingbrandingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingbrandingpolicy @@ -18283,12 +19184,11 @@ Tag:Test Enabled New CsTeamsMeetingPolicy - The CsTeamsMeetingPolicy cmdlets enable administrators to control the type of meetings that users can create or the features that they can access while in a meeting. It also helps determine how meetings deal with anonymous or external users. + The New-CsTeamsMeetingPolicy cmdlet allows administrators to define new meeting policies that can be assigned to particular users to control Teams features related to meetings. The CsTeamsMeetingPolicy cmdlets enable administrators to control the type of meetings that users can create or the features that they can access while in a meeting. It also helps determine how meetings deal with anonymous or external users. - The New-CsTeamsMeetingPolicy cmdlet allows administrators to define new meeting policies that can be assigned to particular users to control Teams features related to meetings. @@ -18308,6 +19208,7 @@ Tag:Test Enabled AIInterpreter + > Applicable: Microsoft Teams >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. Enables the user to use the AI Interpreter related features Possible values: @@ -18322,10 +19223,9 @@ Tag:Test Enabled Enabled - AllowAnonymousUsersToDialOut + AllowAnnotations - Determines whether anonymous users are allowed to dial out to a PSTN number. Set this to TRUE to allow anonymous users to dial out. Set this to FALSE to #prohibit anonymous users from dialing out. - > [!NOTE] > This parameter is temporarily disabled. + This setting will allow admins to choose which users will be able to use the Annotation feature. Boolean @@ -18335,34 +19235,35 @@ Tag:Test Enabled None - AllowAnonymousUsersToJoinMeeting + AllowAnonymousUsersToDialOut - > [!NOTE] > The experience for users is dependent on both the value of -DisableAnonymousJoin (the old tenant-wide setting) and -AllowAnonymousUsersToJoinMeeting (the new per-organizer policy). Please check <https://learn.microsoft.com/microsoftteams/meeting-settings-in-teams> for details. - Determines whether anonymous users can join the meetings that impacted users organize. Set this to TRUE to allow anonymous users to join a meeting. Set this to FALSE to prohibit them from joining a meeting. + Determines whether anonymous users are allowed to dial out to a PSTN number. Set this to TRUE to allow anonymous users to dial out. Set this to FALSE to #prohibit anonymous users from dialing out. + > [!NOTE] > This parameter is temporarily disabled. Boolean Boolean - True + None - AllowAnonymousUsersToStartMeeting + AllowAnonymousUsersToJoinMeeting - Determines whether anonymous users can initiate a meeting. Set this to TRUE to allow anonymous users to initiate a meeting. Set this to FALSE to prohibit them from initiating a meeting + > [!NOTE] > The experience for users is dependent on both the value of -DisableAnonymousJoin (the old tenant-wide setting) and -AllowAnonymousUsersToJoinMeeting (the new per-organizer policy). Please check <https://learn.microsoft.com/microsoftteams/meeting-settings-in-teams> for details. + Determines whether anonymous users can join the meetings that impacted users organize. Set this to TRUE to allow anonymous users to join a meeting. Set this to FALSE to prohibit them from joining a meeting. Boolean Boolean - None + True - AllowAnnotations + AllowAnonymousUsersToStartMeeting - This setting will allow admins to choose which users will be able to use the Annotation feature. + Determines whether anonymous users can initiate a meeting. Set this to TRUE to allow anonymous users to initiate a meeting. Set this to FALSE to prohibit them from initiating a meeting Boolean @@ -18458,6 +19359,21 @@ Tag:Test Enabled None + + AllowedStreamingMediaInput + + Enables the use of RTMP-In in Teams meetings. + Possible values are: + - <blank> + - RTMP + + String + + String + + + None + AllowedUsersForMeetingContext @@ -18470,6 +19386,20 @@ Tag:Test Enabled None + + AllowedUsersForMeetingDetails + + Controls which users should have ability to see the meeting info details on join screen. 'None' option should disable the feature completely. + Possible Values: - UsersAllowedToByPassTheLobby: Users who are able to bypass lobby can see the meeting info details. + - Everyone: All meeting participants can see the meeting info details. + + String + + String + + + UsersAllowedToByPassTheLobby + AllowEngagementReport @@ -18558,18 +19488,6 @@ Tag:Test Enabled None - - AllowMeetNow - - Determines whether a user can start ad-hoc meetings in a channel. Set this to TRUE to allow a user to start ad-hoc meetings in a channel. Set this to FALSE to prohibit the user from starting ad-hoc meetings in a channel. - - Boolean - - Boolean - - - TRUE - AllowMeetingCoach @@ -18609,6 +19527,18 @@ Tag:Test Enabled None + + AllowMeetNow + + Determines whether a user can start ad-hoc meetings in a channel. Set this to TRUE to allow a user to start ad-hoc meetings in a channel. Set this to FALSE to prohibit the user from starting ad-hoc meetings in a channel. + + Boolean + + Boolean + + + TRUE + AllowNDIStreaming @@ -18658,21 +19588,21 @@ Tag:Test Enabled None - AllowPrivateMeetNow + AllowParticipantGiveRequestControl - Determines whether a user can start ad-hoc meetings. Set this to TRUE to allow a user to start ad-hoc private meetings. Set this to FALSE to prohibit the user from starting ad-hoc private meetings. + Determines whether participants can request or give control of screen sharing during meetings scheduled by this user. Set this to TRUE to allow the user to be able to give or request control. Set this to FALSE to prohibit the user from giving, requesting control in a meeting Boolean Boolean - TRUE + None - AllowParticipantGiveRequestControl + AllowPowerPointSharing - Determines whether participants can request or give control of screen sharing during meetings scheduled by this user. Set this to TRUE to allow the user to be able to give or request control. Set this to FALSE to prohibit the user from giving, requesting control in a meeting + Determines whether Powerpoint sharing is allowed in a user's meetings. Set this to TRUE to allow. Set this to FALSE to prohibit Boolean @@ -18682,9 +19612,9 @@ Tag:Test Enabled None - AllowPowerPointSharing + AllowPrivateMeetingScheduling - Determines whether Powerpoint sharing is allowed in a user's meetings. Set this to TRUE to allow. Set this to FALSE to prohibit + Determines whether a user can schedule private meetings. Set this to TRUE to allow a user to schedule private meetings. Set this to FALSE to prohibit the user from scheduling private meetings. Note this only restricts from scheduling and not from joining a meeting scheduled by another user. Boolean @@ -18694,16 +19624,16 @@ Tag:Test Enabled None - AllowPrivateMeetingScheduling + AllowPrivateMeetNow - Determines whether a user can schedule private meetings. Set this to TRUE to allow a user to schedule private meetings. Set this to FALSE to prohibit the user from scheduling private meetings. Note this only restricts from scheduling and not from joining a meeting scheduled by another user. + Determines whether a user can start ad-hoc meetings. Set this to TRUE to allow a user to start ad-hoc private meetings. Set this to FALSE to prohibit the user from starting ad-hoc private meetings. Boolean Boolean - None + TRUE AllowPSTNUsersToBypassLobby @@ -18829,9 +19759,9 @@ Tag:Test Enabled None - AllowWatermarkForScreenSharing + AllowWatermarkForCameraVideo - This setting allows scheduling meetings with watermarking for screen sharing enabled. + This setting allows scheduling meetings with watermarking for video enabled. Boolean @@ -18841,9 +19771,9 @@ Tag:Test Enabled False - AllowWatermarkForCameraVideo + AllowWatermarkForScreenSharing - This setting allows scheduling meetings with watermarking for video enabled. + This setting allows scheduling meetings with watermarking for screen sharing enabled. Boolean @@ -18864,21 +19794,6 @@ Tag:Test Enabled None - - AllowedStreamingMediaInput - - Enables the use of RTMP-In in Teams meetings. - Possible values are: - - <blank> - - RTMP - - String - - String - - - None - AnonymousUserAuthenticationMethod @@ -18986,6 +19901,17 @@ Tag:Test Enabled None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + ConnectToMeetingControls @@ -19000,17 +19926,6 @@ Tag:Test Enabled None - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - ContentSharingInExternalMeetings @@ -19106,7 +20021,7 @@ Tag:Test Enabled ExplicitRecordingConsent Set participant agreement and notification for Recording, Transcript, Copilot in Teams meetings. - Possible Values: + Possible Values: - Enabled: Explicit consent, requires participant agreement. - Disabled: Implicit consent, does not require participant agreement. - LegitimateInterest: Legitimate interest, less restrictive consent to meet legitimate interest without requiring explicit agreement from participants. @@ -19192,11 +20107,9 @@ Tag:Test Enabled None - LiveInterpretationEnabledType + LiveCaptionsEnabledType - Allows meeting organizers to configure a meeting for language interpretation, selecting attendees of the meeting to become interpreters that other attendees can select and listen to the real-time translation they provide. - Possible values are: - DisabledUserOverride, if you would like users to be able to use interpretation in meetings but by default it is disabled. Disabled, prevents the option to be enabled in Meeting Options. + Determines whether real-time captions are available for the user in Teams meetings. Set this to DisabledUserOverride to allow user to turn on live captions. Set this to Disabled to prohibit. String @@ -19206,9 +20119,11 @@ Tag:Test Enabled None - LiveCaptionsEnabledType + LiveInterpretationEnabledType - Determines whether real-time captions are available for the user in Teams meetings. Set this to DisabledUserOverride to allow user to turn on live captions. Set this to Disabled to prohibit. + Allows meeting organizers to configure a meeting for language interpretation, selecting attendees of the meeting to become interpreters that other attendees can select and listen to the real-time translation they provide. + Possible values are: + DisabledUserOverride, if you would like users to be able to use interpretation in meetings but by default it is disabled. Disabled, prevents the option to be enabled in Meeting Options. String @@ -19275,6 +20190,7 @@ Tag:Test Enabled MeetingInviteLanguages + > Applicable: Microsoft Teams Controls how the join information in meeting invitations is displayed by enforcing a common language or enabling up to two languages to be displayed. > [!NOTE] > All Teams supported languages can be specified using language codes. For more information about its delivery date, see the roadmap (Feature ID: 81521) (https://www.microsoft.com/microsoft-365/roadmap?filters=&searchterms=81521). The preliminary list of available languages is shown below: @@ -19303,6 +20219,7 @@ Tag:Test Enabled NoiseSuppressionForDialInParticipants + > Applicable: Microsoft Teams >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. Control Noises Supression Feature for PST legs joining a meeting. Possible Values: @@ -19330,6 +20247,24 @@ Tag:Test Enabled None + + ParticipantSlideControl + + > Applicable: Microsoft Teams + >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. + Determines whether participants can give control of presentation slides during meetings scheduled by this user. Set the type of users you want to be able to give control and be given control of presentation slides in meetings. Users excluded from the selected group will be prohibited from giving control, or being given control, in a meeting. + Possible Values: - Everyone: Anyone in the meeting can give or take control + - EveryoneInOrganization: Only internal AAD users and Multi-Tenant Organization (MTO) users can give or take control + - EveryoneInOrganizationAndGuests: Only those who are Guests to the tenant, MTO users, and internal AAD users can give or take control + - None: No one in the meeting can give or take control + + String + + String + + + Enabled + PreferredMeetingProviderForIslandsMode @@ -19354,6 +20289,21 @@ Tag:Test Enabled None + + RealTimeText + + > Applicable: Microsoft Teams + Allows users to use real time text during a meeting, allowing them to communicate by typing their messages in real time. + Possible Values: - Enabled: User is allowed to turn on real time text. + - Disabled: User is not allowed to turn on real time text. + + String + + String + + + Enabled + RecordingStorageMode @@ -19528,6 +20478,7 @@ Tag:Test Enabled VoiceSimulationInInterpreter + > Applicable: Microsoft Teams > [!NOTE] > This feature has not been released yet and will have no changes if it is enabled or disabled. Enables the user to use the voice simulation feature while being AI interpreted. Possible Values: @@ -19601,34 +20552,6 @@ Tag:Test Enabled None - - AllowedUsersForMeetingDetails - - Controls which users should have ability to see the meeting info details on join screen. 'None' option should disable the feature completely. - Possible Values: - UsersAllowedToByPassTheLobby: Users who are able to bypass lobby can see the meeting info details. - - Everyone: All meeting participants can see the meeting info details. - - String - - String - - - UsersAllowedToByPassTheLobby - - - RealTimeText - - Allows users to use real time text during a meeting, allowing them to communicate by typing their messages in real time. - Possible Values: - Enabled: User is allowed to turn on real time text. - - Disabled: User is not allowed to turn on real time text. - - String - - String - - - Enabled - WhatIf @@ -19658,21 +20581,10 @@ Tag:Test Enabled - - Identity - - Specify the name of the policy being created. - - XdsIdentity - - XdsIdentity - - - None - AIInterpreter + > Applicable: Microsoft Teams >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. Enables the user to use the AI Interpreter related features Possible values: @@ -19687,10 +20599,9 @@ Tag:Test Enabled Enabled - AllowAnonymousUsersToDialOut + AllowAnnotations - Determines whether anonymous users are allowed to dial out to a PSTN number. Set this to TRUE to allow anonymous users to dial out. Set this to FALSE to #prohibit anonymous users from dialing out. - > [!NOTE] > This parameter is temporarily disabled. + This setting will allow admins to choose which users will be able to use the Annotation feature. Boolean @@ -19700,34 +20611,35 @@ Tag:Test Enabled None - AllowAnonymousUsersToJoinMeeting + AllowAnonymousUsersToDialOut - > [!NOTE] > The experience for users is dependent on both the value of -DisableAnonymousJoin (the old tenant-wide setting) and -AllowAnonymousUsersToJoinMeeting (the new per-organizer policy). Please check <https://learn.microsoft.com/microsoftteams/meeting-settings-in-teams> for details. - Determines whether anonymous users can join the meetings that impacted users organize. Set this to TRUE to allow anonymous users to join a meeting. Set this to FALSE to prohibit them from joining a meeting. + Determines whether anonymous users are allowed to dial out to a PSTN number. Set this to TRUE to allow anonymous users to dial out. Set this to FALSE to #prohibit anonymous users from dialing out. + > [!NOTE] > This parameter is temporarily disabled. Boolean Boolean - True + None - AllowAnonymousUsersToStartMeeting + AllowAnonymousUsersToJoinMeeting - Determines whether anonymous users can initiate a meeting. Set this to TRUE to allow anonymous users to initiate a meeting. Set this to FALSE to prohibit them from initiating a meeting + > [!NOTE] > The experience for users is dependent on both the value of -DisableAnonymousJoin (the old tenant-wide setting) and -AllowAnonymousUsersToJoinMeeting (the new per-organizer policy). Please check <https://learn.microsoft.com/microsoftteams/meeting-settings-in-teams> for details. + Determines whether anonymous users can join the meetings that impacted users organize. Set this to TRUE to allow anonymous users to join a meeting. Set this to FALSE to prohibit them from joining a meeting. Boolean Boolean - None + True - AllowAnnotations + AllowAnonymousUsersToStartMeeting - This setting will allow admins to choose which users will be able to use the Annotation feature. + Determines whether anonymous users can initiate a meeting. Set this to TRUE to allow anonymous users to initiate a meeting. Set this to FALSE to prohibit them from initiating a meeting Boolean @@ -19823,6 +20735,21 @@ Tag:Test Enabled None + + AllowedStreamingMediaInput + + Enables the use of RTMP-In in Teams meetings. + Possible values are: + - <blank> + - RTMP + + String + + String + + + None + AllowedUsersForMeetingContext @@ -19835,6 +20762,20 @@ Tag:Test Enabled None + + AllowedUsersForMeetingDetails + + Controls which users should have ability to see the meeting info details on join screen. 'None' option should disable the feature completely. + Possible Values: - UsersAllowedToByPassTheLobby: Users who are able to bypass lobby can see the meeting info details. + - Everyone: All meeting participants can see the meeting info details. + + String + + String + + + UsersAllowedToByPassTheLobby + AllowEngagementReport @@ -19923,18 +20864,6 @@ Tag:Test Enabled None - - AllowMeetNow - - Determines whether a user can start ad-hoc meetings in a channel. Set this to TRUE to allow a user to start ad-hoc meetings in a channel. Set this to FALSE to prohibit the user from starting ad-hoc meetings in a channel. - - Boolean - - Boolean - - - TRUE - AllowMeetingCoach @@ -19974,6 +20903,18 @@ Tag:Test Enabled None + + AllowMeetNow + + Determines whether a user can start ad-hoc meetings in a channel. Set this to TRUE to allow a user to start ad-hoc meetings in a channel. Set this to FALSE to prohibit the user from starting ad-hoc meetings in a channel. + + Boolean + + Boolean + + + TRUE + AllowNDIStreaming @@ -20023,21 +20964,21 @@ Tag:Test Enabled None - AllowPrivateMeetNow + AllowParticipantGiveRequestControl - Determines whether a user can start ad-hoc meetings. Set this to TRUE to allow a user to start ad-hoc private meetings. Set this to FALSE to prohibit the user from starting ad-hoc private meetings. + Determines whether participants can request or give control of screen sharing during meetings scheduled by this user. Set this to TRUE to allow the user to be able to give or request control. Set this to FALSE to prohibit the user from giving, requesting control in a meeting Boolean Boolean - TRUE + None - AllowParticipantGiveRequestControl + AllowPowerPointSharing - Determines whether participants can request or give control of screen sharing during meetings scheduled by this user. Set this to TRUE to allow the user to be able to give or request control. Set this to FALSE to prohibit the user from giving, requesting control in a meeting + Determines whether Powerpoint sharing is allowed in a user's meetings. Set this to TRUE to allow. Set this to FALSE to prohibit Boolean @@ -20047,9 +20988,9 @@ Tag:Test Enabled None - AllowPowerPointSharing + AllowPrivateMeetingScheduling - Determines whether Powerpoint sharing is allowed in a user's meetings. Set this to TRUE to allow. Set this to FALSE to prohibit + Determines whether a user can schedule private meetings. Set this to TRUE to allow a user to schedule private meetings. Set this to FALSE to prohibit the user from scheduling private meetings. Note this only restricts from scheduling and not from joining a meeting scheduled by another user. Boolean @@ -20059,16 +21000,16 @@ Tag:Test Enabled None - AllowPrivateMeetingScheduling + AllowPrivateMeetNow - Determines whether a user can schedule private meetings. Set this to TRUE to allow a user to schedule private meetings. Set this to FALSE to prohibit the user from scheduling private meetings. Note this only restricts from scheduling and not from joining a meeting scheduled by another user. + Determines whether a user can start ad-hoc meetings. Set this to TRUE to allow a user to start ad-hoc private meetings. Set this to FALSE to prohibit the user from starting ad-hoc private meetings. Boolean Boolean - None + TRUE AllowPSTNUsersToBypassLobby @@ -20194,9 +21135,9 @@ Tag:Test Enabled None - AllowWatermarkForScreenSharing + AllowWatermarkForCameraVideo - This setting allows scheduling meetings with watermarking for screen sharing enabled. + This setting allows scheduling meetings with watermarking for video enabled. Boolean @@ -20206,9 +21147,9 @@ Tag:Test Enabled False - AllowWatermarkForCameraVideo + AllowWatermarkForScreenSharing - This setting allows scheduling meetings with watermarking for video enabled. + This setting allows scheduling meetings with watermarking for screen sharing enabled. Boolean @@ -20229,21 +21170,6 @@ Tag:Test Enabled None - - AllowedStreamingMediaInput - - Enables the use of RTMP-In in Teams meetings. - Possible values are: - - <blank> - - RTMP - - String - - String - - - None - AnonymousUserAuthenticationMethod @@ -20351,6 +21277,18 @@ Tag:Test Enabled None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + ConnectToMeetingControls @@ -20365,18 +21303,6 @@ Tag:Test Enabled None - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - ContentSharingInExternalMeetings @@ -20472,7 +21398,7 @@ Tag:Test Enabled ExplicitRecordingConsent Set participant agreement and notification for Recording, Transcript, Copilot in Teams meetings. - Possible Values: + Possible Values: - Enabled: Explicit consent, requires participant agreement. - Disabled: Implicit consent, does not require participant agreement. - LegitimateInterest: Legitimate interest, less restrictive consent to meet legitimate interest without requiring explicit agreement from participants. @@ -20511,6 +21437,18 @@ Tag:Test Enabled False + + Identity + + Specify the name of the policy being created. + + XdsIdentity + + XdsIdentity + + + None + InfoShownInReportMode @@ -20560,11 +21498,9 @@ Tag:Test Enabled None - LiveInterpretationEnabledType + LiveCaptionsEnabledType - Allows meeting organizers to configure a meeting for language interpretation, selecting attendees of the meeting to become interpreters that other attendees can select and listen to the real-time translation they provide. - Possible values are: - DisabledUserOverride, if you would like users to be able to use interpretation in meetings but by default it is disabled. Disabled, prevents the option to be enabled in Meeting Options. + Determines whether real-time captions are available for the user in Teams meetings. Set this to DisabledUserOverride to allow user to turn on live captions. Set this to Disabled to prohibit. String @@ -20574,9 +21510,11 @@ Tag:Test Enabled None - LiveCaptionsEnabledType + LiveInterpretationEnabledType - Determines whether real-time captions are available for the user in Teams meetings. Set this to DisabledUserOverride to allow user to turn on live captions. Set this to Disabled to prohibit. + Allows meeting organizers to configure a meeting for language interpretation, selecting attendees of the meeting to become interpreters that other attendees can select and listen to the real-time translation they provide. + Possible values are: + DisabledUserOverride, if you would like users to be able to use interpretation in meetings but by default it is disabled. Disabled, prevents the option to be enabled in Meeting Options. String @@ -20643,6 +21581,7 @@ Tag:Test Enabled MeetingInviteLanguages + > Applicable: Microsoft Teams Controls how the join information in meeting invitations is displayed by enforcing a common language or enabling up to two languages to be displayed. > [!NOTE] > All Teams supported languages can be specified using language codes. For more information about its delivery date, see the roadmap (Feature ID: 81521) (https://www.microsoft.com/microsoft-365/roadmap?filters=&searchterms=81521). The preliminary list of available languages is shown below: @@ -20671,6 +21610,7 @@ Tag:Test Enabled NoiseSuppressionForDialInParticipants + > Applicable: Microsoft Teams >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. Control Noises Supression Feature for PST legs joining a meeting. Possible Values: @@ -20698,6 +21638,24 @@ Tag:Test Enabled None + + ParticipantSlideControl + + > Applicable: Microsoft Teams + >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. + Determines whether participants can give control of presentation slides during meetings scheduled by this user. Set the type of users you want to be able to give control and be given control of presentation slides in meetings. Users excluded from the selected group will be prohibited from giving control, or being given control, in a meeting. + Possible Values: - Everyone: Anyone in the meeting can give or take control + - EveryoneInOrganization: Only internal AAD users and Multi-Tenant Organization (MTO) users can give or take control + - EveryoneInOrganizationAndGuests: Only those who are Guests to the tenant, MTO users, and internal AAD users can give or take control + - None: No one in the meeting can give or take control + + String + + String + + + Enabled + PreferredMeetingProviderForIslandsMode @@ -20722,6 +21680,21 @@ Tag:Test Enabled None + + RealTimeText + + > Applicable: Microsoft Teams + Allows users to use real time text during a meeting, allowing them to communicate by typing their messages in real time. + Possible Values: - Enabled: User is allowed to turn on real time text. + - Disabled: User is not allowed to turn on real time text. + + String + + String + + + Enabled + RecordingStorageMode @@ -20896,6 +21869,7 @@ Tag:Test Enabled VoiceSimulationInInterpreter + > Applicable: Microsoft Teams > [!NOTE] > This feature has not been released yet and will have no changes if it is enabled or disabled. Enables the user to use the voice simulation feature while being AI interpreted. Possible Values: @@ -20969,34 +21943,6 @@ Tag:Test Enabled None - - AllowedUsersForMeetingDetails - - Controls which users should have ability to see the meeting info details on join screen. 'None' option should disable the feature completely. - Possible Values: - UsersAllowedToByPassTheLobby: Users who are able to bypass lobby can see the meeting info details. - - Everyone: All meeting participants can see the meeting info details. - - String - - String - - - UsersAllowedToByPassTheLobby - - - RealTimeText - - Allows users to use real time text during a meeting, allowing them to communicate by typing their messages in real time. - Possible Values: - Enabled: User is allowed to turn on real time text. - - Disabled: User is not allowed to turn on real time text. - - String - - String - - - Enabled - WhatIf @@ -21069,7 +22015,7 @@ Tag:Test Enabled Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamsmeetingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingpolicy @@ -21083,15 +22029,16 @@ Tag:Test Enabled - Creates a new instance of the policy with a name and a list of hidden meeting template IDs. The template IDs passed into the `HiddenMeetingTemplates` object must be valid existing template IDs. The current custom and first-party templates on a tenant can be fetched by Get-CsTeamsMeetingTemplateConfiguration (https://learn.microsoft.com/powershell/module/teams/get-csteamsmeetingtemplateconfiguration) and [Get-CsTeamsFirstPartyMeetingTemplateConfiguration](https://learn.microsoft.com/powershell/module/teams/get-csteamsfirstpartymeetingtemplateconfiguration)respectively. + Creates a new instance of the policy with a name and a list of hidden meeting template IDs. The template IDs passed into the `HiddenMeetingTemplates` object must be valid existing template IDs. The current custom and first-party templates on a tenant can be fetched by Get-CsTeamsMeetingTemplateConfiguration (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingtemplateconfiguration) and [Get-CsTeamsFirstPartyMeetingTemplateConfiguration](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsfirstpartymeetingtemplateconfiguration)respectively. New-CsTeamsMeetingTemplatePermissionPolicy - Identity + Description - Name of the new policy instance to be created. + > Applicable: Microsoft Teams + Description of the new policy instance to be created. String @@ -21103,7 +22050,8 @@ Tag:Test Enabled HiddenMeetingTemplates - The list of meeting template IDs to hide. The HiddenMeetingTemplate objects are created with New-CsTeamsHiddenMeetingTemplate (https://learn.microsoft.com/powershell/module/teams/new-csteamshiddenmeetingtemplate). + > Applicable: Microsoft Teams + The list of meeting template IDs to hide. The HiddenMeetingTemplate objects are created with New-CsTeamsHiddenMeetingTemplate (https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamshiddenmeetingtemplate). HiddenMeetingTemplate[] @@ -21113,9 +22061,10 @@ Tag:Test Enabled None - Description + Identity - Description of the new policy instance to be created. + > Applicable: Microsoft Teams + Name of the new policy instance to be created. String @@ -21128,9 +22077,10 @@ Tag:Test Enabled - Identity + Description - Name of the new policy instance to be created. + > Applicable: Microsoft Teams + Description of the new policy instance to be created. String @@ -21142,7 +22092,8 @@ Tag:Test Enabled HiddenMeetingTemplates - The list of meeting template IDs to hide. The HiddenMeetingTemplate objects are created with New-CsTeamsHiddenMeetingTemplate (https://learn.microsoft.com/powershell/module/teams/new-csteamshiddenmeetingtemplate). + > Applicable: Microsoft Teams + The list of meeting template IDs to hide. The HiddenMeetingTemplate objects are created with New-CsTeamsHiddenMeetingTemplate (https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamshiddenmeetingtemplate). HiddenMeetingTemplate[] @@ -21152,9 +22103,10 @@ Tag:Test Enabled None - Description + Identity - Description of the new policy instance to be created. + > Applicable: Microsoft Teams + Name of the new policy instance to be created. String @@ -21190,27 +22142,27 @@ Description : This is a test policy Online Version: - https://learn.microsoft.com/powershell/module/teams/New-CsTeamsMeetingTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/New-CsTeamsMeetingTemplatePermissionPolicy New-CsTeamsHiddenMeetingTemplate - https://learn.microsoft.com/powershell/module/teams/new-csteamshiddenmeetingtemplate + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamshiddenmeetingtemplate Set-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsmeetingtemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingtemplatepermissionpolicy Get-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsmeetingtemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingtemplatepermissionpolicy Remove-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsmeetingtemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingtemplatepermissionpolicy Grant-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsmeetingtemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingtemplatepermissionpolicy @@ -21736,6 +22688,36 @@ Description : This is a test policy False + + UseB2BInvitesToAddExternalUsers + + Indicates whether B2B invites should be used to add external users when necessary. + Possible values: + - `Enabled`: External users will be added using B2B invites. + - `Disabled`: External users will not be added using B2B invites. + + System.String + + System.String + + + Disabled + + + AutoShareFilesInExternalChats + + Determines whether files are automatically shared in external chats. + Possible values: + - `Enabled`: Files are automatically shared in external chats. + - `Disabled`: Files are not automatically shared in external chats. + + System.String + + System.String + + + Enabled + WhatIf @@ -21750,18 +22732,6 @@ Description : This is a test policy - - Identity - - Unique identifier for the teams messaging policy to be created. - - XdsIdentity - - XdsIdentity - - - None - AllowChatWithGroup @@ -22197,6 +23167,18 @@ Description : This is a test policy None + + Identity + + Unique identifier for the teams messaging policy to be created. + + XdsIdentity + + XdsIdentity + + + None + InMemory @@ -22260,202 +23242,35 @@ Description : This is a test policy False - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> New-CsTeamsMessagingPolicy -Identity StudentMessagingPolicy -AllowGiphy $false -AllowMemes $false - - In this example two different property values are configured: AllowGiphy is set to false and AllowMemes is set to False. All other policy properties will use the default values. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamsmessagingpolicy - - - Set-CsTeamsMessagingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsmessagingpolicy - - - Get-CsTeamsMessagingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsmessagingpolicy - - - Grant-CsTeamsMessagingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsmessagingpolicy - - - Remove-CsTeamsMessagingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsmessagingpolicy - - - - - - New-CsTeamsRecordingRollOutPolicy - New - CsTeamsRecordingRollOutPolicy - - The CsTeamsRecordingRollOutPolicy controls roll out of the change that governs the storage for meeting recordings. - - - - The CsTeamsRecordingRollOutPolicy controls roll out of the change that governs the storage for meeting recordings. This policy would be deprecated over time as this is only to allow IT admins to phase the roll out of this breaking change. - The New-CsTeamsRecordingRollOutPolicy cmdlet allows administrators to define new CsTeamsRecordingRollOutPolicy that can be assigned to particular users to control Teams features related to meetings. - This command is available from Teams powershell module 6.1.1-preview and above. - - - - New-CsTeamsRecordingRollOutPolicy - - Identity - - Specify the name of the policy being created. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Force - - Specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the switch isn't provided in the command, you're prompted for administrative input if required. - - - SwitchParameter - - - False - - - MeetingRecordingOwnership - - Specifies where the meeting recording get stored. Possible values are: - MeetingOrganizer - - RecordingInitiator - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - Force - - Specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the switch isn't provided in the command, you're prompted for administrative input if required. - - SwitchParameter - - SwitchParameter - - - False - - - Identity + UseB2BInvitesToAddExternalUsers - Specify the name of the policy being created. + Indicates whether B2B invites should be used to add external users when necessary. + Possible values: + - `Enabled`: External users will be added using B2B invites. + - `Disabled`: External users will not be added using B2B invites. - String + System.String - String + System.String - None + Disabled - MeetingRecordingOwnership + AutoShareFilesInExternalChats - Specifies where the meeting recording get stored. Possible values are: - MeetingOrganizer - - RecordingInitiator + Determines whether files are automatically shared in external chats. + Possible values: + - `Enabled`: Files are automatically shared in external chats. + - `Disabled`: Files are not automatically shared in external chats. - String + System.String - String + System.String - None + Enabled WhatIf @@ -22483,7 +23298,7 @@ Description : This is a test policy - TeamsRecordingRollOutPolicy.Cmdlets.TeamsRecordingRollOutPolicy + System.Object @@ -22498,41 +23313,55 @@ Description : This is a test policy -------------------------- Example 1 -------------------------- - PS C:\> New-CsTeamsRecordingRollOutPolicy -Identity OrganizerPolicy -MeetingRecordingOwnership MeetingOrganizer + PS C:\> New-CsTeamsMessagingPolicy -Identity StudentMessagingPolicy -AllowGiphy $false -AllowMemes $false - The command shown in Example 1 uses the New-CsTeamsRecordingRollOutPolicy cmdlet to create a new TeamsRecordingRollOutPolicy with the Identity OrganizerPolicy. This policy will set MeetingRecordingOwnership to MeetingOrganizer. Recordings for this policy group's users as organizer would get saved to organizers' own OneDrive. + In this example two different property values are configured: AllowGiphy is set to false and AllowMemes is set to False. All other policy properties will use the default values. Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamsrecordingrolloutpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmessagingpolicy + + + Set-CsTeamsMessagingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmessagingpolicy + + + Get-CsTeamsMessagingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmessagingpolicy + + + Grant-CsTeamsMessagingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmessagingpolicy + + + Remove-CsTeamsMessagingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmessagingpolicy - New-CsTeamsSharedCallingRoutingPolicy + New-CsTeamsPersonalAttendantPolicy New - CsTeamsSharedCallingRoutingPolicy + CsTeamsPersonalAttendantPolicy - Use the New-CsTeamsSharedCallingRoutingPolicy cmdlet to configure a shared calling routing policy. + Limited Preview: Functionality described in this document is currently in limited preview and only authorized organizations have access. + Use this cmdlet to create a new instance of a Teams Personal Attendant Policy. - The Teams shared calling routing policy configures the caller ID for normal outbound PSTN and emergency calls made by users enabled for Shared Calling using this policy instance. - The caller ID for normal outbound PSTN calls is the phone number assigned to the resource account specified in the policy instance. Typically this is the organization's main auto attendant phone number. Callbacks will go to the auto attendant and the PSTN caller can use the auto attendant to be transferred to the shared calling user. - When a shared calling user makes an emergency call, the emergency services need to be able to make a direct callback to the user who placed the emergency call. One of the defined emergency numbers is used for this purpose as caller ID for the emergency call. It will be reserved for the next 60 minutes and any inbound call to that number will directly ring the shared calling user who made the emergency call. If no emergency numbers are defined, the phone number of the resource account is used as caller ID. If no free emergency numbers are available, the first number in the list is reused. - The emergency call will contain the location of the shared calling user. The location will be either the dynamic emergency location obtained by the Teams client or if that is not available the static location assigned to the phone number of the resource account used in the shared calling policy instance. + The Teams Personal Attendant Policy controls personal attendant and its functionalities available to users in Microsoft Teams. This cmdlet allows admins to create new policy instances. - New-CsTeamsSharedCallingRoutingPolicy - + New-CsTeamsPersonalAttendantPolicy + Identity - Unique identifier of the Teams shared calling routing policy to be created. + Name of the policy instance being created. String @@ -22542,324 +23371,132 @@ Description : This is a test policy None - Description + PersonalAttendant - The description of the new policy instance. + Enables the user to use the personal attendant + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. String String - None + EnabledUserOverride - EmergencyNumbers - - An array of phone numbers used as caller ID on emergency calls. - The emergency numbers must be routable for inbound PSTN calls, and for Calling Plan and Operator Connect phone numbers, must be available within the organization. - The emergency numbers specified must all be of the same phone number type and country as the phone number assigned to the specified resource account. If the resource account has a Calling Plan service number assigned, the emergency numbers need to be Calling Plan subscriber numbers. - The emergency numbers must be unique and can't be reused in other shared calling policy instances. The emergency numbers can't be assigned to any user or resource account. - If no emergency numbers are configured, the phone number of the resource account is used as the Caller ID for the emergency call. - - System.Management.Automation.PSListModifier[String] - - System.Management.Automation.PSListModifier[String] - - - None - - - ResourceAccount + CallScreening - The Identity of the resource account. Can only be specified using the Identity or ObjectId of the resource account. - The phone number assigned to the resource account must: - Have the same phone number type and country as the emergency numbers configured in this policy instance. - - Must have an emergency location assigned. You can use the Teams PowerShell Module Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/teams/set-csphonenumberassignment)and the -LocationId parameter to set the location. - If the resource account is using a Calling Plan service number, you must have a Pay-As-You-Go Calling Plan, and assign it to the resource account. In addition, you need to assign a Communications credits license to the resource account and fund it to support outbound shared calling calls via the Pay-As-You-Go Calling Plan. - The same resource account can be used in multiple shared calling policy instances. + Enables the user to use the personal attendant call context evaluation features + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. String String - None - - - Force - - Suppresses any confirmation prompts that would otherwise be displayed before making changes. - - - SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - - - - Identity - - Unique identifier of the Teams shared calling routing policy to be created. - - String - - String - - - None - - - Description - - The description of the new policy instance. - - String - - String - - - None - - - EmergencyNumbers - - An array of phone numbers used as caller ID on emergency calls. - The emergency numbers must be routable for inbound PSTN calls, and for Calling Plan and Operator Connect phone numbers, must be available within the organization. - The emergency numbers specified must all be of the same phone number type and country as the phone number assigned to the specified resource account. If the resource account has a Calling Plan service number assigned, the emergency numbers need to be Calling Plan subscriber numbers. - The emergency numbers must be unique and can't be reused in other shared calling policy instances. The emergency numbers can't be assigned to any user or resource account. - If no emergency numbers are configured, the phone number of the resource account is used as the Caller ID for the emergency call. - - System.Management.Automation.PSListModifier[String] - - System.Management.Automation.PSListModifier[String] - - - None - - - ResourceAccount - - The Identity of the resource account. Can only be specified using the Identity or ObjectId of the resource account. - The phone number assigned to the resource account must: - Have the same phone number type and country as the emergency numbers configured in this policy instance. - - Must have an emergency location assigned. You can use the Teams PowerShell Module Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/teams/set-csphonenumberassignment)and the -LocationId parameter to set the location. - If the resource account is using a Calling Plan service number, you must have a Pay-As-You-Go Calling Plan, and assign it to the resource account. In addition, you need to assign a Communications credits license to the resource account and fund it to support outbound shared calling calls via the Pay-As-You-Go Calling Plan. - The same resource account can be used in multiple shared calling policy instances. - - String - - String - - - None - - - Force - - Suppresses any confirmation prompts that would otherwise be displayed before making changes. - - SwitchParameter - - SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - In some Calling Plan markets, you are not allowed to set the location on service numbers. In this instance, kindly contact the Telephone Number Services service desk (https://learn.microsoft.com/microsoftteams/phone-reference/manage-numbers/contact-tns-service-desk). - If you are attempting to use a resource account with an Operator Connect phone number assigned, you should confirm support for Shared Calling with your operator. - Shared Calling is not supported for Calling Plan service phone numbers in Romania, the Czech Republic, Hungary, Singapore, New Zealand, Australia, and Japan. A limited number of existing Calling Plan service phone numbers in other countries are also not supported for Shared Calling. For such service phone numbers, please contact the Telephone Number Services service desk (https://learn.microsoft.com/microsoftteams/phone-reference/manage-numbers/contact-tns-service-desk). - This cmdlet was introduced in Teams PowerShell Module 5.5.0. - - - - - -------------------------- Example 1 -------------------------- - $ra = Get-CsOnlineUser -Identity ra1@contoso.com -$PhoneNumber=Get-CsPhoneNumberAssignment -AssignedPstnTargetId ra1@contoso.com -$CivicAddress = Get-CsOnlineLisCivicAddress -City Seattle -Set-CsPhoneNumberAssignment -LocationId $CivicAddress.DefaultLocationId -PhoneNumber $PhoneNumber.TelephoneNumber -New-CsTeamsSharedCallingRoutingPolicy -Identity Seattle -ResourceAccount $ra.Identity -EmergencyNumbers @{add='+14255556677','+14255554321'} -Description 'Seattle' - - The command shown in Example 1 gets the identity and phone number assigned to the Teams resource account ra1@contoso.com, sets the location of the phone number to be the Seattle location, and creates a new Shared Calling policy called Seattle that is using the Teams resource account ra1@contoso.com and the emergency numbers +14255556677 and +14255554321. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamssharedcallingroutingpolicy - - - Set-CsTeamsSharedCallingRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamssharedcallingroutingpolicy - - - Grant-CsTeamsSharedCallingRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamssharedcallingroutingpolicy - - - Remove-CsTeamsSharedCallingRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamssharedcallingroutingpolicy - - - Get-CsTeamsSharedCallingRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamssharedcallingroutingpolicy - - - Set-CsPhoneNumberAssignment - https://learn.microsoft.com/powershell/module/teams/set-csphonenumberassignment - - - - - - New-CsTeamsShiftsPolicy - New - CsTeamsShiftsPolicy - - This cmdlet allows you to create a new TeamsShiftPolicy instance and set it's properties. - - - - This cmdlet allows you to create a TeamsShiftPolicy instance. Use this to also set the policy name, schedule owner permissions, and Teams off shift warning message-specific settings (ShiftNoticeMessageType, ShiftNoticeMessageCustom, ShiftNoticeFrequency, AccessGracePeriodMinutes). - - - - New-CsTeamsShiftsPolicy - - Identity - - Policy instance name. - - XdsIdentity - - XdsIdentity - - - None + EnabledUserOverride - AccessType + CalendarBookings - Indicates the Teams access type granted to the user. Today, only unrestricted access to Teams app is supported. Use 'UnrestrictedAccess_TeamsApp' as the value for this setting, or is set by default. For Teams Off Shift Access Control, the option to show the user a blocking dialog message is supported. Once the user accepts this message, it is audit logged and the user has usual access to Teams. Set other off shift warning message-specific settings to configure off shift access controls for the user. + Enables the user to use the personal attendant calendar related features + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. String String - UnrestrictedAccess_TeamsApp + EnabledUserOverride - ShiftNoticeFrequency + InboundInternalCalls - Frequency of warning dialog displayed when user opens Teams. Select one of Always, ShowOnceOnChange, Never. + Enables the user to use the personal attendant for incoming domain calls + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. String String - None + EnabledUserOverride - ShiftNoticeMessageType + InboundFederatedCalls - The warning message is shown in the blocking dialog when a user access Teams off shift hours. Select one of 7 Microsoft provided messages, a default message or a custom message. 'Message1' - Your employer does not authorize or approve of the use of its network, applications, systems, or tools by non-exempt or hourly employees during their non-working hours. By accepting, you acknowledge that your use of Teams while off shift is not authorized and you will not be compensated. 'Message2' - Accessing this app outside working hours is voluntary. You won't be compensated for time spent on Teams. Refer to your employer's guidelines on using this app outside working hours. By accepting, you acknowledge that you understand the statement above. 'Message3' - You won't be compensated for time using Teams. By accepting, you acknowledge that you understand the statement above. 'Message4' - You're not authorized to use Teams while off shift. By accepting, you acknowledge your use of Teams is against your employer's policy. 'Message5' - Access to Teams is turned off during non-working hours. You will be able to access the app when your next shift starts. 'Message6' - Your employer does not authorize or approve of the use of its network, applications, systems, or tools by non-exempt or hourly employees during their non-working hours. Access to corporate resources are only allowed during approved working hours and should be recorded as hours worked in your employer's timekeeping system. 'Message7' - Your employer has turned off access to Teams during non-working hours. Refer to your employer's guidelines on using this app outside working hours. 'DefaultMessage' - You aren't authorized to use Microsoft Teams during non-working hours and will only be compensated for using it during approved working hours. 'CustomMessage' + Enables the user to use the personal attendant for incoming calls from other domains + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. String String - DefaultMessage + EnabledUserOverride - ShiftNoticeMessageCustom + InboundPSTNCalls - Provide a custom message. Must set ShiftNoticeMessageType to 'CustomMessage' to enforce this. + Enables the user to use the personal attendant for incoming PSTN calls + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. String String - None + EnabledUserOverride - AccessGracePeriodMinutes + AutomaticTranscription - Indicates the grace period time in minutes between when the first shift starts or last shift ends and when access is blocked. + Enables the user to use the automatic storing of personal attendant call transcriptions + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. - Int64 + String - Int64 + String - None + EnabledUserOverride - EnableScheduleOwnerPermissions + AutomaticRecording - Indicates whether a user can manage a Shifts schedule as a team member. + Enables the user to use the automatic storing of personal attendant call recordings + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. - Boolean + String - Boolean + String - False + EnabledUserOverride Confirm @@ -22872,10 +23509,10 @@ New-CsTeamsSharedCallingRoutingPolicy -Identity Seattle -ResourceAccount $ra.Ide False - + Force - Suppresses the display of any non-fatal error message that might arise when running the command. + Suppresses any confirmation prompts that would otherwise be displayed before making changes. SwitchParameter @@ -22897,89 +23534,145 @@ New-CsTeamsSharedCallingRoutingPolicy -Identity Seattle -ResourceAccount $ra.Ide - + Identity - Policy instance name. + Name of the policy instance being created. - XdsIdentity + String - XdsIdentity + String None - AccessType + PersonalAttendant - Indicates the Teams access type granted to the user. Today, only unrestricted access to Teams app is supported. Use 'UnrestrictedAccess_TeamsApp' as the value for this setting, or is set by default. For Teams Off Shift Access Control, the option to show the user a blocking dialog message is supported. Once the user accepts this message, it is audit logged and the user has usual access to Teams. Set other off shift warning message-specific settings to configure off shift access controls for the user. + Enables the user to use the personal attendant + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. String String - UnrestrictedAccess_TeamsApp + EnabledUserOverride - ShiftNoticeFrequency + CallScreening - Frequency of warning dialog displayed when user opens Teams. Select one of Always, ShowOnceOnChange, Never. + Enables the user to use the personal attendant call context evaluation features + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. String String - None + EnabledUserOverride - ShiftNoticeMessageType + CalendarBookings - The warning message is shown in the blocking dialog when a user access Teams off shift hours. Select one of 7 Microsoft provided messages, a default message or a custom message. 'Message1' - Your employer does not authorize or approve of the use of its network, applications, systems, or tools by non-exempt or hourly employees during their non-working hours. By accepting, you acknowledge that your use of Teams while off shift is not authorized and you will not be compensated. 'Message2' - Accessing this app outside working hours is voluntary. You won't be compensated for time spent on Teams. Refer to your employer's guidelines on using this app outside working hours. By accepting, you acknowledge that you understand the statement above. 'Message3' - You won't be compensated for time using Teams. By accepting, you acknowledge that you understand the statement above. 'Message4' - You're not authorized to use Teams while off shift. By accepting, you acknowledge your use of Teams is against your employer's policy. 'Message5' - Access to Teams is turned off during non-working hours. You will be able to access the app when your next shift starts. 'Message6' - Your employer does not authorize or approve of the use of its network, applications, systems, or tools by non-exempt or hourly employees during their non-working hours. Access to corporate resources are only allowed during approved working hours and should be recorded as hours worked in your employer's timekeeping system. 'Message7' - Your employer has turned off access to Teams during non-working hours. Refer to your employer's guidelines on using this app outside working hours. 'DefaultMessage' - You aren't authorized to use Microsoft Teams during non-working hours and will only be compensated for using it during approved working hours. 'CustomMessage' + Enables the user to use the personal attendant calendar related features + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. String String - DefaultMessage + EnabledUserOverride - ShiftNoticeMessageCustom + InboundInternalCalls - Provide a custom message. Must set ShiftNoticeMessageType to 'CustomMessage' to enforce this. + Enables the user to use the personal attendant for incoming domain calls + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. String String - None + EnabledUserOverride - AccessGracePeriodMinutes + InboundFederatedCalls - Indicates the grace period time in minutes between when the first shift starts or last shift ends and when access is blocked. + Enables the user to use the personal attendant for incoming calls from other domains + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. - Int64 + String - Int64 + String - None + EnabledUserOverride - EnableScheduleOwnerPermissions + InboundPSTNCalls - Indicates whether a user can manage a Shifts schedule as a team member. + Enables the user to use the personal attendant for incoming PSTN calls + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. - Boolean + String - Boolean + String - False + EnabledUserOverride + + + AutomaticTranscription + + Enables the user to use the automatic storing of personal attendant call transcriptions + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + AutomaticRecording + + Enables the user to use the automatic storing of personal attendant call recordings + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride Confirm @@ -22993,10 +23686,10 @@ New-CsTeamsSharedCallingRoutingPolicy -Identity Seattle -ResourceAccount $ra.Ide False - + Force - Suppresses the display of any non-fatal error message that might arise when running the command. + Suppresses any confirmation prompts that would otherwise be displayed before making changes. SwitchParameter @@ -23021,7 +23714,7 @@ New-CsTeamsSharedCallingRoutingPolicy -Identity Seattle -ResourceAccount $ra.Ide - None + System.Management.Automation.PSObject @@ -23040,67 +23733,62 @@ New-CsTeamsSharedCallingRoutingPolicy -Identity Seattle -ResourceAccount $ra.Ide - + The cmdlet is available in Teams PowerShell module 7.2.1-preview or later. -------------------------- Example 1 -------------------------- - PS C:\> New-CsTeamsShiftsPolicy -Identity OffShiftAccessMessage1Always - - Creates a new instance of TeamsShiftsPolicy called OffShiftAccessMessage1Always and applies the default values to its settings. - - - - -------------------------- Example 2 -------------------------- - PS C:\> New-CsTeamsShiftsPolicy -Identity OffShiftAccessMessage1Always -ShiftNoticeFrequency always -ShiftNoticeMessageType Message1 -AccessType UnrestrictedAccess_TeamsApp -AccessGracePeriodMinutes 5 -EnableScheduleOwnerPermissions $false + New-CsTeamsPersonalAttendantPolicy -Identity SalesPersonalAttendantPolicy -CallScreening Enabled - Creates a new instance of TeamsShiftsPolicy called OffShiftAccessMessage1Always and applies the provided values to its settings. + The cmdlet create the policy instance SalesPersonalAttendantPolicy and sets the value of the parameter CallScreening to Enabled. The rest of the parameters are set to the corresponding values in the Global policy instance. Online Version: - https://learn.microsoft.com/powershell/module/teams/new-teamsshiftspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamspersonalattendantpolicy - Get-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftspolicy + Get-CsTeamsPersonalAttendantPolicy + - Set-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsshiftspolicy + Set-CsTeamsPersonalAttendantPolicy + - Remove-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsshiftspolicy + Grant-CsTeamsPersonalAttendantPolicy + - Grant-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsshiftspolicy + Remove-CsTeamsPersonalAttendantPolicy + - New-CsTeamsTemplatePermissionPolicy + New-CsTeamsRecordingRollOutPolicy New - CsTeamsTemplatePermissionPolicy + CsTeamsRecordingRollOutPolicy - Creates a new instance of the TeamsTemplatePermissionPolicy. + The CsTeamsRecordingRollOutPolicy controls roll out of the change that governs the storage for meeting recordings. - Creates a new instance of the policy with a name and a list of hidden Teams template IDs. The template IDs passed into the `HiddenTemplates` object must be valid existing template IDs. The current custom and first-party templates on a tenant can be fetched by Get-CsTeamTemplateList (https://learn.microsoft.com/powershell/module/teams/get-csteamtemplatelist). + The CsTeamsRecordingRollOutPolicy controls roll out of the change that governs the storage for meeting recordings. This policy would be deprecated over time as this is only to allow IT admins to phase the roll out of this breaking change. + The New-CsTeamsRecordingRollOutPolicy cmdlet allows administrators to define new CsTeamsRecordingRollOutPolicy that can be assigned to particular users to control Teams features related to meetings. + This command is available from Teams powershell module 6.1.1-preview and above. - New-CsTeamsTemplatePermissionPolicy + New-CsTeamsRecordingRollOutPolicy Identity - Name of the new policy instance to be created. + Specify the name of the policy being created. String @@ -23120,23 +23808,10 @@ New-CsTeamsSharedCallingRoutingPolicy -Identity Seattle -ResourceAccount $ra.Ide False - - Description - - Description of the new policy instance to be created. - - String - - String - - - None - Force - The Force switch hides warning or confirmation messages. You don't need to specify a value with this switch. - You can use this switch to run tasks programmatically where prompting for administrative input is inappropriate. + Specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the switch isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -23145,13 +23820,14 @@ New-CsTeamsSharedCallingRoutingPolicy -Identity Seattle -ResourceAccount $ra.Ide False - HiddenTemplates + MeetingRecordingOwnership - The list of Teams template IDs to hide. The HiddenTemplate objects are created with New-CsTeamsHiddenTemplate (https://learn.microsoft.com/powershell/module/teams/new-csteamshiddentemplate). + Specifies where the meeting recording get stored. Possible values are: - MeetingOrganizer + - RecordingInitiator - System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.HiddenTemplate] + String - System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.HiddenTemplate] + String None @@ -23182,23 +23858,10 @@ New-CsTeamsSharedCallingRoutingPolicy -Identity Seattle -ResourceAccount $ra.Ide False - - Description - - Description of the new policy instance to be created. - - String - - String - - - None - Force - The Force switch hides warning or confirmation messages. You don't need to specify a value with this switch. - You can use this switch to run tasks programmatically where prompting for administrative input is inappropriate. + Specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the switch isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -23207,22 +23870,23 @@ New-CsTeamsSharedCallingRoutingPolicy -Identity Seattle -ResourceAccount $ra.Ide False - - HiddenTemplates + + Identity - The list of Teams template IDs to hide. The HiddenTemplate objects are created with New-CsTeamsHiddenTemplate (https://learn.microsoft.com/powershell/module/teams/new-csteamshiddentemplate). + Specify the name of the policy being created. - System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.HiddenTemplate] + String - System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.HiddenTemplate] + String None - - Identity + + MeetingRecordingOwnership - Name of the new policy instance to be created. + Specifies where the meeting recording get stored. Possible values are: - MeetingOrganizer + - RecordingInitiator String @@ -23257,7 +23921,7 @@ New-CsTeamsSharedCallingRoutingPolicy -Identity Seattle -ResourceAccount $ra.Ide - TeamsTemplatePermissionPolicy.Cmdlets.TeamsTemplatePermissionPolicy + TeamsRecordingRollOutPolicy.Cmdlets.TeamsRecordingRollOutPolicy @@ -23272,58 +23936,41 @@ New-CsTeamsSharedCallingRoutingPolicy -Identity Seattle -ResourceAccount $ra.Ide -------------------------- Example 1 -------------------------- - PS >$manageEventTemplate = New-CsTeamsHiddenTemplate -Id com.microsoft.teams.template.ManageAnEvent -PS >$manageProjectTemplate = New-CsTeamsHiddenTemplate -Id com.microsoft.teams.template.ManageAProject -PS >$HiddenList = @($manageProjectTemplate, $manageEventTemplate) -PS >New-CsTeamsTemplatePermissionPolicy -Identity Foobar -HiddenTemplates $HiddenList - -Identity HiddenTemplates Description --------- --------------- ----------- -Tag:Foobar {com.microsoft.teams.template.ManageAProject, com.microsoft.teams.template.ManageAnEvent} + PS C:\> New-CsTeamsRecordingRollOutPolicy -Identity OrganizerPolicy -MeetingRecordingOwnership MeetingOrganizer - + The command shown in Example 1 uses the New-CsTeamsRecordingRollOutPolicy cmdlet to create a new TeamsRecordingRollOutPolicy with the Identity OrganizerPolicy. This policy will set MeetingRecordingOwnership to MeetingOrganizer. Recordings for this policy group's users as organizer would get saved to organizers' own OneDrive. Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamstemplatepermissionpolicy - - - Get-CsTeamsTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamstemplatepermissionpolicy - - - Remove-CsTeamsTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamstemplatepermissionpolicy - - - Set-CsTeamsTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamstemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsrecordingrolloutpolicy - New-CsTeamsUpdateManagementPolicy + New-CsTeamsSharedCallingRoutingPolicy New - CsTeamsUpdateManagementPolicy + CsTeamsSharedCallingRoutingPolicy - Use this cmdlet to create Teams Update Management policy. + Use the New-CsTeamsSharedCallingRoutingPolicy cmdlet to configure a shared calling routing policy. - The Teams Update Management Policy allows admins to specify if a given user is enabled to preview features in Teams. - This cmdlet can be used to create a new policy to manage the visibility of some Teams in-product messages. Executing the cmdlet will suppress the corresponding category of messages from appearing for the specified user group. + The Teams shared calling routing policy configures the caller ID for normal outbound PSTN and emergency calls made by users enabled for Shared Calling using this policy instance. + The caller ID for normal outbound PSTN calls is the phone number assigned to the resource account specified in the policy instance. Typically this is the organization's main auto attendant phone number. Callbacks will go to the auto attendant and the PSTN caller can use the auto attendant to be transferred to the shared calling user. + When a shared calling user makes an emergency call, the emergency services need to be able to make a direct callback to the user who placed the emergency call. One of the defined emergency numbers is used for this purpose as caller ID for the emergency call. It will be reserved for the next 60 minutes and any inbound call to that number will directly ring the shared calling user who made the emergency call. If no emergency numbers are defined, the phone number of the resource account is used as caller ID. If no free emergency numbers are available, the first number in the list is reused. + The emergency call will contain the location of the shared calling user. The location will be either the dynamic emergency location obtained by the Teams client or if that is not available the static location assigned to the phone number of the resource account used in the shared calling policy instance. - New-CsTeamsUpdateManagementPolicy + New-CsTeamsSharedCallingRoutingPolicy Identity - A unique identifier. + Unique identifier of the Teams shared calling routing policy to be created. String @@ -23335,6 +23982,7 @@ Tag:Foobar {com.microsoft.teams.template.ManageAProject, com.microsoft.teams.tem Confirm + > Applicable: Microsoft Teams Prompts you for confirmation before running the cmdlet. @@ -23344,82 +23992,314 @@ Tag:Foobar {com.microsoft.teams.template.ManageAProject, com.microsoft.teams.tem False - DisabledInProductMessages + Description - List of IDs of the categories of the in-product messages that will be disabled. You can choose one of the categories from this table: - | ID | Campaign Category | | -- | -- | | 91382d07-8b89-444c-bbcb-cfe43133af33| What's New | | edf2633e-9827-44de-b34c-8b8b9717e84c | Conferences | + The description of the new policy instance. - System.Management.Automation.PSListModifier`1[System.String] + String - System.Management.Automation.PSListModifier`1[System.String] + String None - AllowManagedUpdates + EmergencyNumbers - Enables/Disables managed updates for the user. + An array of phone numbers used as caller ID on emergency calls. + The emergency numbers must be routable for inbound PSTN calls, and for Calling Plan and Operator Connect phone numbers, must be available within the organization. + The emergency numbers specified must all be of the same phone number type and country as the phone number assigned to the specified resource account. If the resource account has a Calling Plan service number assigned, the emergency numbers need to be Calling Plan subscriber numbers. + The emergency numbers must be unique and can't be reused in other shared calling policy instances. The emergency numbers can't be assigned to any user or resource account. + If no emergency numbers are configured, the phone number of the resource account is used as the Caller ID for the emergency call. - Boolean + System.Management.Automation.PSListModifier[String] - Boolean + System.Management.Automation.PSListModifier[String] None - - AllowPreview + + Force - Indicates whether all feature flags are switched on or off. Can be set only when AllowManagedUpdates is set to True. + > Applicable: Microsoft Teams + Suppresses any confirmation prompts that would otherwise be displayed before making changes. - Boolean - Boolean + SwitchParameter - None + False - - AllowPrivatePreview + + ResourceAccount - This setting will allow admins to allow users in their tenant to opt in to Private Preview. If it is Disabled, then users will not be able to opt in and the ring switcher UI will be hidden in the Desktop Client. If it is Enabled, then users will be able to opt in and the ring switcher UI will be available in the Desktop Client. If it is Forced, then users will be switched to Private Preview. + The Identity of the resource account. Can only be specified using the Identity or ObjectId of the resource account. + The phone number assigned to the resource account must: - Have the same phone number type and country as the emergency numbers configured in this policy instance. + - Must have an emergency location assigned. You can use the Teams PowerShell Module Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberassignment)and the -LocationId parameter to set the location. - If the resource account is using a Calling Plan service number, you must have a Pay-As-You-Go Calling Plan, and assign it to the resource account. In addition, you need to assign a Communications credits license to the resource account and fund it to support outbound shared calling calls via the Pay-As-You-Go Calling Plan. + The same resource account can be used in multiple shared calling policy instances. - AllowPrivatePreview + String - AllowPrivatePreview + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + The description of the new policy instance. + + String + + String + + + None + + + EmergencyNumbers + + An array of phone numbers used as caller ID on emergency calls. + The emergency numbers must be routable for inbound PSTN calls, and for Calling Plan and Operator Connect phone numbers, must be available within the organization. + The emergency numbers specified must all be of the same phone number type and country as the phone number assigned to the specified resource account. If the resource account has a Calling Plan service number assigned, the emergency numbers need to be Calling Plan subscriber numbers. + The emergency numbers must be unique and can't be reused in other shared calling policy instances. The emergency numbers can't be assigned to any user or resource account. + If no emergency numbers are configured, the phone number of the resource account is used as the Caller ID for the emergency call. + + System.Management.Automation.PSListModifier[String] + + System.Management.Automation.PSListModifier[String] + + + None + + + Force + + > Applicable: Microsoft Teams + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier of the Teams shared calling routing policy to be created. + + String + + String + + + None + + + ResourceAccount + + The Identity of the resource account. Can only be specified using the Identity or ObjectId of the resource account. + The phone number assigned to the resource account must: - Have the same phone number type and country as the emergency numbers configured in this policy instance. + - Must have an emergency location assigned. You can use the Teams PowerShell Module Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberassignment)and the -LocationId parameter to set the location. - If the resource account is using a Calling Plan service number, you must have a Pay-As-You-Go Calling Plan, and assign it to the resource account. In addition, you need to assign a Communications credits license to the resource account and fund it to support outbound shared calling calls via the Pay-As-You-Go Calling Plan. + The same resource account can be used in multiple shared calling policy instances. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + In some Calling Plan markets, you are not allowed to set the location on service numbers. In this instance, kindly contact the Telephone Number Services service desk (https://learn.microsoft.com/microsoftteams/phone-reference/manage-numbers/contact-tns-service-desk). + If you are attempting to use a resource account with an Operator Connect phone number assigned, you should confirm support for Shared Calling with your operator. + Shared Calling is not supported for Calling Plan service phone numbers in Romania, the Czech Republic, Hungary, Singapore, New Zealand, Australia, and Japan. A limited number of existing Calling Plan service phone numbers in other countries are also not supported for Shared Calling. For such service phone numbers, please contact the Telephone Number Services service desk (https://learn.microsoft.com/microsoftteams/phone-reference/manage-numbers/contact-tns-service-desk). + This cmdlet was introduced in Teams PowerShell Module 5.5.0. + + + + + -------------------------- Example 1 -------------------------- + $ra = Get-CsOnlineUser -Identity ra1@contoso.com +$PhoneNumber=Get-CsPhoneNumberAssignment -AssignedPstnTargetId ra1@contoso.com +$CivicAddress = Get-CsOnlineLisCivicAddress -City Seattle +Set-CsPhoneNumberAssignment -LocationId $CivicAddress.DefaultLocationId -PhoneNumber $PhoneNumber.TelephoneNumber +New-CsTeamsSharedCallingRoutingPolicy -Identity Seattle -ResourceAccount $ra.Identity -EmergencyNumbers @{add='+14255556677','+14255554321'} -Description 'Seattle' + + The command shown in Example 1 gets the identity and phone number assigned to the Teams resource account ra1@contoso.com, sets the location of the phone number to be the Seattle location, and creates a new Shared Calling policy called Seattle that is using the Teams resource account ra1@contoso.com and the emergency numbers +14255556677 and +14255554321. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamssharedcallingroutingpolicy + + + Set-CsTeamsSharedCallingRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamssharedcallingroutingpolicy + + + Grant-CsTeamsSharedCallingRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamssharedcallingroutingpolicy + + + Remove-CsTeamsSharedCallingRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamssharedcallingroutingpolicy + + + Get-CsTeamsSharedCallingRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamssharedcallingroutingpolicy + + + Set-CsPhoneNumberAssignment + https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberassignment + + + + + + New-CsTeamsShiftsPolicy + New + CsTeamsShiftsPolicy + + This cmdlet allows you to create a new TeamsShiftPolicy instance and set it's properties. + + + + This cmdlet allows you to create a TeamsShiftPolicy instance. Use this to also set the policy name, schedule owner permissions, and Teams off shift warning message-specific settings (ShiftNoticeMessageType, ShiftNoticeMessageCustom, ShiftNoticeFrequency, AccessGracePeriodMinutes). + + + + New-CsTeamsShiftsPolicy + + Identity + + > Applicable: Microsoft Teams + Policy instance name. + + XdsIdentity + + XdsIdentity None - AllowPublicPreview + AccessGracePeriodMinutes - This setting will allow admins to allow users in their tenant to opt in to Public Preview. If it is Disabled, then users will not be able to opt in and the ring switcher UI will be hidden in the Desktop Client. If it is Enabled, then users will be able to opt in and the ring switcher UI will be available in the Desktop Client. If it is FollowOfficePreview, then users will not be able to opt in and instead follow their Office channel, and be switched to Public Preview if their Office channel is CC (Preview). The ring switcher UI will be hidden in the Desktop Client. This is not applicable to the Web Client. If it is Forced, then users will be switched to Public Preview. + > Applicable: Microsoft Teams + Indicates the grace period time in minutes between when the first shift starts or last shift ends and when access is blocked. + + Int64 + + Int64 + + + None + + + AccessType + + > Applicable: Microsoft Teams + Indicates the Teams access type granted to the user. Today, only unrestricted access to Teams app is supported. Use 'UnrestrictedAccess_TeamsApp' as the value for this setting, or is set by default. For Teams Off Shift Access Control, the option to show the user a blocking dialog message is supported. Once the user accepts this message, it is audit logged and the user has usual access to Teams. Set other off shift warning message-specific settings to configure off shift access controls for the user. String String - None + UnrestrictedAccess_TeamsApp + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False - BlockLegacyAuthorization + EnableScheduleOwnerPermissions - This setting will force Teams clients to enforce session revocation for core Messaging and Calling/Meeting scenarios. If turned ON, session revocation will be enforced for calls, chats and meetings for opted-in users. If turned OFF, session revocation will not be enforced for calls, chats and meetings for opted-in users. + > Applicable: Microsoft Teams + Indicates whether a user can manage a Shifts schedule as a team member. Boolean Boolean - None + False - Description + Force - Enables administrators to provide explanatory text about the policy. For example, the Description might indicate the users the policy should be assigned to. + Suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + ShiftNoticeFrequency + + > Applicable: Microsoft Teams + Frequency of warning dialog displayed when user opens Teams. Select one of Always, ShowOnceOnChange, Never. String @@ -23429,45 +24309,279 @@ Tag:Foobar {com.microsoft.teams.template.ManageAProject, com.microsoft.teams.tem None - UpdateDayOfWeek + ShiftNoticeMessageCustom - Machine local day. 0-6(Sun-Sat) Can be set only when AllowManagedUpdates is set to True. + > Applicable: Microsoft Teams + Provide a custom message. Must set ShiftNoticeMessageType to 'CustomMessage' to enforce this. - Int64 + String - Int64 + String None - UpdateTime + ShiftNoticeMessageType - Machine local time in HH:MM format. Can be set only when AllowManagedUpdates is set to True. + > Applicable: Microsoft Teams + The warning message is shown in the blocking dialog when a user access Teams off shift hours. Select one of 7 Microsoft provided messages, a default message or a custom message. 'Message1' - Your employer does not authorize or approve of the use of its network, applications, systems, or tools by non-exempt or hourly employees during their non-working hours. By accepting, you acknowledge that your use of Teams while off shift is not authorized and you will not be compensated. 'Message2' - Accessing this app outside working hours is voluntary. You won't be compensated for time spent on Teams. Refer to your employer's guidelines on using this app outside working hours. By accepting, you acknowledge that you understand the statement above. 'Message3' - You won't be compensated for time using Teams. By accepting, you acknowledge that you understand the statement above. 'Message4' - You're not authorized to use Teams while off shift. By accepting, you acknowledge your use of Teams is against your employer's policy. 'Message5' - Access to Teams is turned off during non-working hours. You will be able to access the app when your next shift starts. 'Message6' - Your employer does not authorize or approve of the use of its network, applications, systems, or tools by non-exempt or hourly employees during their non-working hours. Access to corporate resources are only allowed during approved working hours and should be recorded as hours worked in your employer's timekeeping system. 'Message7' - Your employer has turned off access to Teams during non-working hours. Refer to your employer's guidelines on using this app outside working hours. 'DefaultMessage' - You aren't authorized to use Microsoft Teams during non-working hours and will only be compensated for using it during approved working hours. 'CustomMessage' String String - None + DefaultMessage - - UpdateTimeOfDay + + WhatIf - Machine local time. Can be set only when AllowManagedUpdates is set to True + Shows what would happen if the cmdlet runs. The cmdlet is not run. - DateTime - DateTime + SwitchParameter + + + False + + + + + + AccessGracePeriodMinutes + + > Applicable: Microsoft Teams + Indicates the grace period time in minutes between when the first shift starts or last shift ends and when access is blocked. + + Int64 + + Int64 + + + None + + + AccessType + + > Applicable: Microsoft Teams + Indicates the Teams access type granted to the user. Today, only unrestricted access to Teams app is supported. Use 'UnrestrictedAccess_TeamsApp' as the value for this setting, or is set by default. For Teams Off Shift Access Control, the option to show the user a blocking dialog message is supported. Once the user accepts this message, it is audit logged and the user has usual access to Teams. Set other off shift warning message-specific settings to configure off shift access controls for the user. + + String + + String + + + UnrestrictedAccess_TeamsApp + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + EnableScheduleOwnerPermissions + + > Applicable: Microsoft Teams + Indicates whether a user can manage a Shifts schedule as a team member. + + Boolean + + Boolean + + + False + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + Policy instance name. + + XdsIdentity + + XdsIdentity + + + None + + + ShiftNoticeFrequency + + > Applicable: Microsoft Teams + Frequency of warning dialog displayed when user opens Teams. Select one of Always, ShowOnceOnChange, Never. + + String + + String + + + None + + + ShiftNoticeMessageCustom + + > Applicable: Microsoft Teams + Provide a custom message. Must set ShiftNoticeMessageType to 'CustomMessage' to enforce this. + + String + + String + + + None + + + ShiftNoticeMessageType + + > Applicable: Microsoft Teams + The warning message is shown in the blocking dialog when a user access Teams off shift hours. Select one of 7 Microsoft provided messages, a default message or a custom message. 'Message1' - Your employer does not authorize or approve of the use of its network, applications, systems, or tools by non-exempt or hourly employees during their non-working hours. By accepting, you acknowledge that your use of Teams while off shift is not authorized and you will not be compensated. 'Message2' - Accessing this app outside working hours is voluntary. You won't be compensated for time spent on Teams. Refer to your employer's guidelines on using this app outside working hours. By accepting, you acknowledge that you understand the statement above. 'Message3' - You won't be compensated for time using Teams. By accepting, you acknowledge that you understand the statement above. 'Message4' - You're not authorized to use Teams while off shift. By accepting, you acknowledge your use of Teams is against your employer's policy. 'Message5' - Access to Teams is turned off during non-working hours. You will be able to access the app when your next shift starts. 'Message6' - Your employer does not authorize or approve of the use of its network, applications, systems, or tools by non-exempt or hourly employees during their non-working hours. Access to corporate resources are only allowed during approved working hours and should be recorded as hours worked in your employer's timekeeping system. 'Message7' - Your employer has turned off access to Teams during non-working hours. Refer to your employer's guidelines on using this app outside working hours. 'DefaultMessage' - You aren't authorized to use Microsoft Teams during non-working hours and will only be compensated for using it during approved working hours. 'CustomMessage' + + String + + String + + + DefaultMessage + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsTeamsShiftsPolicy -Identity OffShiftAccessMessage1Always + + Creates a new instance of TeamsShiftsPolicy called OffShiftAccessMessage1Always and applies the default values to its settings. + + + + -------------------------- Example 2 -------------------------- + PS C:\> New-CsTeamsShiftsPolicy -Identity OffShiftAccessMessage1Always -ShiftNoticeFrequency always -ShiftNoticeMessageType Message1 -AccessType UnrestrictedAccess_TeamsApp -AccessGracePeriodMinutes 5 -EnableScheduleOwnerPermissions $false + + Creates a new instance of TeamsShiftsPolicy called OffShiftAccessMessage1Always and applies the provided values to its settings. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-teamsshiftspolicy + + + Get-CsTeamsShiftsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftspolicy + + + Set-CsTeamsShiftsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftspolicy + + + Remove-CsTeamsShiftsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftspolicy + + + Grant-CsTeamsShiftsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsshiftspolicy + + + + + + New-CsTeamsTemplatePermissionPolicy + New + CsTeamsTemplatePermissionPolicy + + Creates a new instance of the TeamsTemplatePermissionPolicy. + + + + Creates a new instance of the policy with a name and a list of hidden Teams template IDs. The template IDs passed into the `HiddenTemplates` object must be valid existing template IDs. The current custom and first-party templates on a tenant can be fetched by Get-CsTeamTemplateList (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplatelist). + + + + New-CsTeamsTemplatePermissionPolicy + + Identity + + Name of the new policy instance to be created. + + String + + String None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + - UseNewTeamsClient + Description - This setting will enable admins to show or hide which users see the Teams preview toggle on the current Teams client. If it is AdminDisabled, then users will not be able to see the Teams preview toggle in the Desktop Client. If it is UserChoice, then users will be able to see the Teams preview toggle in the Desktop Client. If it is MicrosoftChoice, then Microsoft will configure/ manage whether user sees or does not see this feature if the admin has set nothing. If it is NewTeamsAsDefault, then New Teams will be default for users, and they will be able to switch back to Classic Teams via the toggle in the Desktop Client. If it is NewTeamsOnly, then New Teams will be the only Teams client installed for users. + Description of the new policy instance to be created. String @@ -23479,7 +24593,8 @@ Tag:Foobar {com.microsoft.teams.template.ManageAProject, com.microsoft.teams.tem Force - Suppress all non-fatal errors. + The Force switch hides warning or confirmation messages. You don't need to specify a value with this switch. + You can use this switch to run tasks programmatically where prompting for administrative input is inappropriate. SwitchParameter @@ -23487,6 +24602,18 @@ Tag:Foobar {com.microsoft.teams.template.ManageAProject, com.microsoft.teams.tem False + + HiddenTemplates + + The list of Teams template IDs to hide. The HiddenTemplate objects are created with New-CsTeamsHiddenTemplate (https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamshiddentemplate). + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.HiddenTemplate] + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.HiddenTemplate] + + + None + WhatIf @@ -23514,18 +24641,336 @@ Tag:Foobar {com.microsoft.teams.template.ManageAProject, com.microsoft.teams.tem False - DisabledInProductMessages + Description - List of IDs of the categories of the in-product messages that will be disabled. You can choose one of the categories from this table: - | ID | Campaign Category | | -- | -- | | 91382d07-8b89-444c-bbcb-cfe43133af33| What's New | | edf2633e-9827-44de-b34c-8b8b9717e84c | Conferences | + Description of the new policy instance to be created. - System.Management.Automation.PSListModifier`1[System.String] + String - System.Management.Automation.PSListModifier`1[System.String] + String None + + Force + + The Force switch hides warning or confirmation messages. You don't need to specify a value with this switch. + You can use this switch to run tasks programmatically where prompting for administrative input is inappropriate. + + SwitchParameter + + SwitchParameter + + + False + + + HiddenTemplates + + The list of Teams template IDs to hide. The HiddenTemplate objects are created with New-CsTeamsHiddenTemplate (https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamshiddentemplate). + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.HiddenTemplate] + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.HiddenTemplate] + + + None + + + Identity + + Name of the new policy instance to be created. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + TeamsTemplatePermissionPolicy.Cmdlets.TeamsTemplatePermissionPolicy + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS >$manageEventTemplate = New-CsTeamsHiddenTemplate -Id com.microsoft.teams.template.ManageAnEvent +PS >$manageProjectTemplate = New-CsTeamsHiddenTemplate -Id com.microsoft.teams.template.ManageAProject +PS >$HiddenList = @($manageProjectTemplate, $manageEventTemplate) +PS >New-CsTeamsTemplatePermissionPolicy -Identity Foobar -HiddenTemplates $HiddenList + +Identity HiddenTemplates Description +-------- --------------- ----------- +Tag:Foobar {com.microsoft.teams.template.ManageAProject, com.microsoft.teams.template.ManageAnEvent} + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamstemplatepermissionpolicy + + + Get-CsTeamsTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamstemplatepermissionpolicy + + + Remove-CsTeamsTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamstemplatepermissionpolicy + + + Set-CsTeamsTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstemplatepermissionpolicy + + + + + + New-CsTeamsUpdateManagementPolicy + New + CsTeamsUpdateManagementPolicy + + Use this cmdlet to create Teams Update Management policy. + + + + The Teams Update Management Policy allows admins to specify if a given user is enabled to preview features in Teams. + This cmdlet can be used to create a new policy to manage the visibility of some Teams in-product messages. Executing the cmdlet will suppress the corresponding category of messages from appearing for the specified user group. + + + + New-CsTeamsUpdateManagementPolicy + + Identity + + A unique identifier. + + String + + String + + + None + + + AllowManagedUpdates + + Enables/Disables managed updates for the user. + + Boolean + + Boolean + + + None + + + AllowPreview + + Indicates whether all feature flags are switched on or off. Can be set only when AllowManagedUpdates is set to True. + + Boolean + + Boolean + + + None + + + AllowPrivatePreview + + This setting will allow admins to allow users in their tenant to opt in to Private Preview. If it is Disabled, then users will not be able to opt in and the ring switcher UI will be hidden in the Desktop Client. If it is Enabled, then users will be able to opt in and the ring switcher UI will be available in the Desktop Client. If it is Forced, then users will be switched to Private Preview. + + AllowPrivatePreview + + AllowPrivatePreview + + + None + + + AllowPublicPreview + + This setting will allow admins to allow users in their tenant to opt in to Public Preview. If it is Disabled, then users will not be able to opt in and the ring switcher UI will be hidden in the Desktop Client. If it is Enabled, then users will be able to opt in and the ring switcher UI will be available in the Desktop Client. If it is FollowOfficePreview, then users will not be able to opt in and instead follow their Office channel, and be switched to Public Preview if their Office channel is CC (Preview). The ring switcher UI will be hidden in the Desktop Client. This is not applicable to the Web Client. If it is Forced, then users will be switched to Public Preview. + + String + + String + + + None + + + BlockLegacyAuthorization + + This setting will force Teams clients to enforce session revocation for core Messaging and Calling/Meeting scenarios. If turned ON, session revocation will be enforced for calls, chats and meetings for opted-in users. If turned OFF, session revocation will not be enforced for calls, chats and meetings for opted-in users. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text about the policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + + + DisabledInProductMessages + + List of IDs of the categories of the in-product messages that will be disabled. You can choose one of the categories from this table: + | ID | Campaign Category | | -- | -- | | 91382d07-8b89-444c-bbcb-cfe43133af33| What's New | | edf2633e-9827-44de-b34c-8b8b9717e84c | Conferences | + + System.Management.Automation.PSListModifier`1[System.String] + + System.Management.Automation.PSListModifier`1[System.String] + + + None + + + Force + + Suppress all non-fatal errors. + + + SwitchParameter + + + False + + + OCDIRedirect + + This setting controls whether users are redirected from teams.microsoft.com to the unified domain teams.cloud.microsoft. Possible values are: - Microsoft Default , Microsoft will manage redirection behavior. If no explicit admin configuration is set, users may be redirected automatically. - Disabled , Users will remain on teams.microsoft.com. Use this if your organization's apps are incompatible with the unified domain. - Enabled , Users will be redirected to teams.cloud.microsoft. Use this only if your organization had previously opted out of redirection and now wants to opt back in. + + String + + String + + + None + + + UpdateDayOfWeek + + Machine local day. 0-6(Sun-Sat) Can be set only when AllowManagedUpdates is set to True. + + Int64 + + Int64 + + + None + + + UpdateTime + + Machine local time in HH:MM format. Can be set only when AllowManagedUpdates is set to True. + + String + + String + + + None + + + UpdateTimeOfDay + + Machine local time. Can be set only when AllowManagedUpdates is set to True + + DateTime + + DateTime + + + None + + + UseNewTeamsClient + + This setting will enable admins to show or hide which users see the Teams preview toggle on the current Teams client. If it is AdminDisabled, then users will not be able to see the Teams preview toggle in the Desktop Client. If it is UserChoice, then users will be able to see the Teams preview toggle in the Desktop Client. If it is MicrosoftChoice, then Microsoft will configure/ manage whether user sees or does not see this feature if the admin has set nothing. If it is NewTeamsAsDefault, then New Teams will be default for users, and they will be able to switch back to Classic Teams via the toggle in the Desktop Client. If it is NewTeamsOnly, then New Teams will be the only Teams client installed for users. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + AllowManagedUpdates @@ -23586,6 +25031,18 @@ Tag:Foobar {com.microsoft.teams.template.ManageAProject, com.microsoft.teams.tem None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + Description @@ -23599,21 +25056,34 @@ Tag:Foobar {com.microsoft.teams.template.ManageAProject, com.microsoft.teams.tem None - UpdateDayOfWeek + DisabledInProductMessages - Machine local day. 0-6(Sun-Sat) Can be set only when AllowManagedUpdates is set to True. + List of IDs of the categories of the in-product messages that will be disabled. You can choose one of the categories from this table: + | ID | Campaign Category | | -- | -- | | 91382d07-8b89-444c-bbcb-cfe43133af33| What's New | | edf2633e-9827-44de-b34c-8b8b9717e84c | Conferences | - Int64 + System.Management.Automation.PSListModifier`1[System.String] - Int64 + System.Management.Automation.PSListModifier`1[System.String] None - UpdateTime + Force - Machine local time in HH:MM format. Can be set only when AllowManagedUpdates is set to True. + Suppress all non-fatal errors. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + A unique identifier. String @@ -23623,21 +25093,33 @@ Tag:Foobar {com.microsoft.teams.template.ManageAProject, com.microsoft.teams.tem None - UpdateTimeOfDay + OCDIRedirect - Machine local time. Can be set only when AllowManagedUpdates is set to True + This setting controls whether users are redirected from teams.microsoft.com to the unified domain teams.cloud.microsoft. Possible values are: - Microsoft Default , Microsoft will manage redirection behavior. If no explicit admin configuration is set, users may be redirected automatically. - Disabled , Users will remain on teams.microsoft.com. Use this if your organization's apps are incompatible with the unified domain. - Enabled , Users will be redirected to teams.cloud.microsoft. Use this only if your organization had previously opted out of redirection and now wants to opt back in. - DateTime + String - DateTime + String None - UseNewTeamsClient + UpdateDayOfWeek - This setting will enable admins to show or hide which users see the Teams preview toggle on the current Teams client. If it is AdminDisabled, then users will not be able to see the Teams preview toggle in the Desktop Client. If it is UserChoice, then users will be able to see the Teams preview toggle in the Desktop Client. If it is MicrosoftChoice, then Microsoft will configure/ manage whether user sees or does not see this feature if the admin has set nothing. If it is NewTeamsAsDefault, then New Teams will be default for users, and they will be able to switch back to Classic Teams via the toggle in the Desktop Client. If it is NewTeamsOnly, then New Teams will be the only Teams client installed for users. + Machine local day. 0-6(Sun-Sat) Can be set only when AllowManagedUpdates is set to True. + + Int64 + + Int64 + + + None + + + UpdateTime + + Machine local time in HH:MM format. Can be set only when AllowManagedUpdates is set to True. String @@ -23647,21 +25129,21 @@ Tag:Foobar {com.microsoft.teams.template.ManageAProject, com.microsoft.teams.tem None - Force + UpdateTimeOfDay - Suppress all non-fatal errors. + Machine local time. Can be set only when AllowManagedUpdates is set to True - SwitchParameter + DateTime - SwitchParameter + DateTime - False + None - - Identity + + UseNewTeamsClient - A unique identifier. + This setting will enable admins to show or hide which users see the Teams preview toggle on the current Teams client. If it is AdminDisabled, then users will not be able to see the Teams preview toggle in the Desktop Client. If it is UserChoice, then users will be able to see the Teams preview toggle in the Desktop Client. If it is MicrosoftChoice, then Microsoft will configure/ manage whether user sees or does not see this feature if the admin has set nothing. If it is NewTeamsAsDefault, then New Teams will be default for users, and they will be able to switch back to Classic Teams via the toggle in the Desktop Client. If it is NewTeamsOnly, then New Teams will be the only Teams client installed for users. String @@ -23720,7 +25202,7 @@ Tag:Foobar {com.microsoft.teams.template.ManageAProject, com.microsoft.teams.tem Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamsupdatemanagementpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsupdatemanagementpolicy @@ -23730,12 +25212,11 @@ Tag:Foobar {com.microsoft.teams.template.ManageAProject, com.microsoft.teams.tem New CsTeamsVdiPolicy - The CsTeamsVdiPolicy cmdlets enable administrators to control the type of meetings that users can create or the features that they can access while in a meeting specifically on an unoptimized VDI environment. It also controls whether a user can be in VDI 2.0 optimization mode. + The New-CsTeamsVdiPolicy cmdlet allows administrators to define new Vdi policies that can be assigned to particular users to control Teams features related to meetings on a VDI environment. - The CsTeamsVdiPolicy cmdlets enable administrators to control the type of meetings that users can create or the features that they can access while in a meeting specifically on an unoptimized VDI environment. It also controls whether a user can be in VDI 2.0 optimization mode. - The New-CsTeamsVdiPolicy cmdlet allows administrators to define new Vdi policies that can be assigned to particular users to control Teams features related to meetings on a VDI environment. + The CsTeamsVdiPolicy cmdlets enable administrators to control the type of meetings that users can create or the features that they can access while in a meeting for an unoptimized VDI environment. It also controls whether a user can be in VDI 2.0 optimization mode. @@ -23955,7 +25436,7 @@ Tag:Foobar {com.microsoft.teams.template.ManageAProject, com.microsoft.teams.tem Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamsvdipolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsvdipolicy @@ -24000,6 +25481,7 @@ Tag:Foobar {com.microsoft.teams.template.ManageAProject, com.microsoft.teams.tem EnableSmsNotifications + > Applicable: Microsoft Teams This property specifies whether your users can choose to send SMS text notifications to external guests in meetings that they schedule using a virtual appointment template meeting. Boolean @@ -24049,6 +25531,7 @@ Tag:Foobar {com.microsoft.teams.template.ManageAProject, com.microsoft.teams.tem EnableSmsNotifications + > Applicable: Microsoft Teams This property specifies whether your users can choose to send SMS text notifications to external guests in meetings that they schedule using a virtual appointment template meeting. Boolean @@ -24147,23 +25630,23 @@ Tag:sms-enabled False Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamsvirtualappointmentspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsvirtualappointmentspolicy Get-CsTeamsVirtualAppointmentsPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsvirtualappointmentspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsvirtualappointmentspolicy Remove-CsTeamsVirtualAppointmentsPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsvirtualappointmentspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsvirtualappointmentspolicy Set-CsTeamsVirtualAppointmentsPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsvirtualappointmentspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsvirtualappointmentspolicy Grant-CsTeamsVirtualAppointmentsPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsvirtualappointmentspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsvirtualappointmentspolicy @@ -24194,18 +25677,6 @@ Tag:sms-enabled False None - - AllowAutoAttendantBusinessHoursGreetingChange - - When set to `True`, users affected by the policy will be allowed to change the auto attendant's business hours greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's business hours greeting. - - Boolean - - Boolean - - - False - AllowAutoAttendantAfterHoursGreetingChange @@ -24219,9 +25690,9 @@ Tag:sms-enabled False False - AllowAutoAttendantHolidayGreetingChange + AllowAutoAttendantAfterHoursRoutingChange - When set to `True`, users affected by the policy will be allowed to change the auto attendant's holiday greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's holiday greeting. + When set to `True`, users affected by the policy will be allowed to change the auto attendant's after-hours call flow. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's after-hours call flow. Boolean @@ -24243,33 +25714,9 @@ Tag:sms-enabled False False - AllowAutoAttendantHolidaysChange - - When set to `True`, users affected by the policy will be allowed to change the auto attendant's holiday schedules. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's holiday schedules. - - Boolean - - Boolean - - - False - - - AllowAutoAttendantTimeZoneChange - - This option is not currently available in Queues app. When set to `True`, users affected by the policy will be allowed to change the auto attendant's time zone. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's time zone. - - Boolean - - Boolean - - - False - - - AllowAutoAttendantLanguageChange + AllowAutoAttendantBusinessHoursGreetingChange - This option is not currently available in Queues app. When set to `True`, users affected by the policy will be allowed to change the auto attendant's language. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's language. + When set to `True`, users affected by the policy will be allowed to change the auto attendant's business hours greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's business hours greeting. Boolean @@ -24291,9 +25738,9 @@ Tag:sms-enabled False False - AllowAutoAttendantAfterHoursRoutingChange + AllowAutoAttendantHolidayGreetingChange - When set to `True`, users affected by the policy will be allowed to change the auto attendant's after-hours call flow. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's after-hours call flow. + When set to `True`, users affected by the policy will be allowed to change the auto attendant's holiday greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's holiday greeting. Boolean @@ -24315,9 +25762,9 @@ Tag:sms-enabled False False - AllowCallQueueWelcomeGreetingChange + AllowAutoAttendantHolidaysChange - When set to `True`, users affected by the policy will be allowed to change the call queue's welcome greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's welcome greeting. + When set to `True`, users affected by the policy will be allowed to change the auto attendant's holiday schedules. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's holiday schedules. Boolean @@ -24327,9 +25774,9 @@ Tag:sms-enabled False False - AllowCallQueueMusicOnHoldChange + AllowAutoAttendantLanguageChange - When set to `True`, users affected by the policy will be allowed to change the call queue's music on hold information. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's music on hold. + This feature is not currently available to authorized users. When set to `True`, users affected by the policy will be allowed to change the auto attendant's language. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's language. Boolean @@ -24339,9 +25786,9 @@ Tag:sms-enabled False False - AllowCallQueueOverflowSharedVoicemailGreetingChange + AllowAutoAttendantTimeZoneChange - When set to `True`, users affected by the policy will be allowed to change the call queue's overflow shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's overflow shared voicemail greeting. + This feature is not currently available to authorized users. When set to `True`, users affected by the policy will be allowed to change the auto attendant's time zone. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's time zone. Boolean @@ -24351,9 +25798,9 @@ Tag:sms-enabled False False - AllowCallQueueTimeoutSharedVoicemailGreetingChange + AllowCallQueueAgentOptChange - When set to `True`, users affected by the policy will be allowed to change the call queue's timeout shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's timeout shared voicemail greeting. + When set to `True`, users affected by the policy will be allowed to change an agent's opt-in status in the call queue. When set to `False` (the default value), users affected by the policy won't be allowed to change an agent's opt-in status in the call queue. Boolean @@ -24363,9 +25810,9 @@ Tag:sms-enabled False False - AllowCallQueueNoAgentSharedVoicemailGreetingChange + AllowCallQueueConferenceModeChange - This option is not currently available in Queues app. When set to `True`, users affected by the policy will be allowed to change the call queue's no agent shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's no agent shared voicemail greeting. + When set to `True`, users affected by the policy will be allowed to change the call queue's conference mode. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's conference mode. Boolean @@ -24377,7 +25824,7 @@ Tag:sms-enabled False AllowCallQueueLanguageChange - This option is not currently available in Queues app. When set to `True`, users affected by the policy will be allowed to change the call queue's language. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's language. + This feature is not currently available to authorized users. When set to `True`, users affected by the policy will be allowed to change the call queue's language. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's language. Boolean @@ -24399,9 +25846,9 @@ Tag:sms-enabled False False - AllowCallQueueConferenceModeChange + AllowCallQueueMusicOnHoldChange - When set to `True`, users affected by the policy will be allowed to change the call queue's conference mode. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's conference mode. + When set to `True`, users affected by the policy will be allowed to change the call queue's music on hold information. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's music on hold. Boolean @@ -24411,9 +25858,9 @@ Tag:sms-enabled False False - AllowCallQueueRoutingMethodChange + AllowCallQueueNoAgentSharedVoicemailGreetingChange - When set to `True`, users affected by the policy will be allowed to change the call queue's routing method. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's routing method. + This option is not currently available in Queues app. When set to `True`, users affected by the policy will be allowed to change the call queue's no agent shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's no agent shared voicemail greeting. Boolean @@ -24423,9 +25870,9 @@ Tag:sms-enabled False False - AllowCallQueuePresenceBasedRoutingChange + AllowCallQueueNoAgentsRoutingChange - When set to `True`, users affected by the policy will be allowed to change the call queue's presence-based routing option. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's presence-based routing option. + When set to `True`, users affected by the policy will be allowed to change the call queue's no-agent handling properties. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's no-agent handling properties. Boolean @@ -24458,6 +25905,42 @@ Tag:sms-enabled False False + + AllowCallQueueOverflowSharedVoicemailGreetingChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's overflow shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's overflow shared voicemail greeting. + + Boolean + + Boolean + + + False + + + AllowCallQueuePresenceBasedRoutingChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's presence-based routing option. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's presence-based routing option. + + Boolean + + Boolean + + + False + + + AllowCallQueueRoutingMethodChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's routing method. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's routing method. + + Boolean + + Boolean + + + False + AllowCallQueueTimeoutRoutingChange @@ -24471,9 +25954,9 @@ Tag:sms-enabled False False - AllowCallQueueNoAgentsRoutingChange + AllowCallQueueTimeoutSharedVoicemailGreetingChange - When set to `True`, users affected by the policy will be allowed to change the call queue's no-agent handling properties. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's no-agent handling properties. + When set to `True`, users affected by the policy will be allowed to change the call queue's timeout shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's timeout shared voicemail greeting. Boolean @@ -24483,9 +25966,9 @@ Tag:sms-enabled False False - AllowCallQueueAgentOptChange + AllowCallQueueWelcomeGreetingChange - When set to `True`, users affected by the policy will be allowed to change an agent's opt-in status in the call queue. When set to `False` (the default value), users affected by the policy won't be allowed to change an agent's opt-in status in the call queue. + When set to `True`, users affected by the policy will be allowed to change the call queue's welcome greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's welcome greeting. Boolean @@ -24497,7 +25980,8 @@ Tag:sms-enabled False CallQueueAgentMonitorMode - This option is not currently available in Queues app. PARAMVALUE: Disabled | Monitor | Whisper | Barge | Takeover + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | Monitor | Whisper | Barge | Takeover When set to `Disabled` (the default value), users affected by the policy won't be allowed to monitor call sessions. When set to `Monitor`, users affected by the policy will be allowed to monitor and listen to call sessions. When set to `Whisper`, users affected by the policy will be allowed to monitor call sessions and whisper to an agent in the call. @@ -24514,7 +25998,8 @@ Tag:sms-enabled False CallQueueAgentMonitorNotificationMode - This option is not currently available in Queues app. PARAMVALUE: Disabled | Agent + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | Agent When set to `Disabled` (the default value), users affected by the policy won't be allowed to monitor agents during call sessions. When set to `Agent`, users affected by the policy will be allowed to monitor agents during call sessions. @@ -24525,43 +26010,37 @@ Tag:sms-enabled False Disabled - - RealTimeAutoAttendantMetricsPermission + + Confirm - PARAMVALUE: Disabled | AuthorizedOnly | All - When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for auto attendants. - When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for auto attendants they are authorized for. - > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved, however, any user assigned a policy with RealTimeAutoAttendantMetricsPermission set to `All` won't be able to access real-time metrics. + Prompts you for confirmation before running the cmdlet. - Object - Object + SwitchParameter - None + False - RealTimeCallQueueMetricsPermission + Description - PARAMVALUE: Disabled | AuthorizedOnly | All - When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for call queues. - When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for call queues they are authorized for. - > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved, however, any user assigned a policy with RealTimeCallQueueMetricsPermission set to `All` won't be able to access real-time metrics. + Enables administrators to provide explanatory text about the policy. For example, the Description might indicate the users the policy should be assigned to. - Object + String - Object + String None - RealTimeAgentMetricsPermission + HistoricalAgentMetricsPermission + > Applicable: Microsoft Teams PARAMVALUE: Disabled | AuthorizedOnly | All - When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for agents. - When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for agents who are members in the call queues they are authorized for. - > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved, however, any user assigned a policy with RealTimeAgentMetricsPermission set to `All` won't be able to access real-time metrics. + When set to `Disabled` (the default value), users affected by the policy won't receive historical metrics for agents. + When set to `AuthorizedOnly`, users affected by the policy will receive historical metrics for agents who are members in the call queues they are authorized for. + When set to `All`, users affected by the policy will receive historical metrics for all agents in all call queues in the organization. Object @@ -24573,6 +26052,7 @@ Tag:sms-enabled False HistoricalAutoAttendantMetricsPermission + > Applicable: Microsoft Teams PARAMVALUE: Disabled | AuthorizedOnly | All When set to `Disabled` (the default value), users affected by the policy won't receive historical metrics for auto attendants. When set to `AuthorizedOnly`, users affected by the policy will receive historical metrics for auto attendants they are authorized for. @@ -24588,6 +26068,7 @@ Tag:sms-enabled False HistoricalCallQueueMetricsPermission + > Applicable: Microsoft Teams PARAMVALUE: Disabled | AuthorizedOnly | All When set to `Disabled` (the default value), users affected by the policy won't receive historical metrics for call queues. When set to `AuthorizedOnly`, users affected by the policy will receive historical metrics for call queues they are authorized for. @@ -24601,12 +26082,13 @@ Tag:sms-enabled False None - HistoricalAgentMetricsPermission + RealTimeAgentMetricsPermission + > Applicable: Microsoft Teams PARAMVALUE: Disabled | AuthorizedOnly | All - When set to `Disabled` (the default value), users affected by the policy won't receive historical metrics for agents. - When set to `AuthorizedOnly`, users affected by the policy will receive historical metrics for agents who are members in the call queues they are authorized for. - When set to `All`, users affected by the policy will receive historical metrics for all agents in all call queues in the organization. + When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for agents. + When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for agents who are members in the call queues they are authorized for. + > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved, however, any user assigned a policy with RealTimeAgentMetricsPermission set to `All` won't be able to access real-time metrics. Object @@ -24615,59 +26097,56 @@ Tag:sms-enabled False None - - WhatIf + + RealTimeAutoAttendantMetricsPermission - Shows what would happen if the cmdlet runs. The cmdlet is not run. + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | AuthorizedOnly | All + When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for auto attendants. + When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for auto attendants they are authorized for. + > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved, however, any user assigned a policy with RealTimeAutoAttendantMetricsPermission set to `All` won't be able to access real-time metrics. + Object - SwitchParameter + Object - False + None - - Confirm + + RealTimeCallQueueMetricsPermission - Prompts you for confirmation before running the cmdlet. + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | AuthorizedOnly | All + When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for call queues. + When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for call queues they are authorized for. + > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved, however, any user assigned a policy with RealTimeCallQueueMetricsPermission set to `All` won't be able to access real-time metrics. + Object - SwitchParameter + Object - False + None - - Description + + WhatIf - Enables administrators to provide explanatory text about the policy. For example, the Description might indicate the users the policy should be assigned to. + Shows what would happen if the cmdlet runs. The cmdlet is not run. - String - String + SwitchParameter - None + False - - Identity - - Unique identifier assigned to the policy when it was created. - - String - - String - - - None - - AllowAutoAttendantBusinessHoursGreetingChange + AllowAutoAttendantAfterHoursGreetingChange - When set to `True`, users affected by the policy will be allowed to change the auto attendant's business hours greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's business hours greeting. + When set to `True`, users affected by the policy will be allowed to change the auto attendant's after-hours greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's after-hours greeting. Boolean @@ -24677,9 +26156,9 @@ Tag:sms-enabled False False - AllowAutoAttendantAfterHoursGreetingChange + AllowAutoAttendantAfterHoursRoutingChange - When set to `True`, users affected by the policy will be allowed to change the auto attendant's after-hours greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's after-hours greeting. + When set to `True`, users affected by the policy will be allowed to change the auto attendant's after-hours call flow. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's after-hours call flow. Boolean @@ -24689,9 +26168,9 @@ Tag:sms-enabled False False - AllowAutoAttendantHolidayGreetingChange + AllowAutoAttendantBusinessHoursChange - When set to `True`, users affected by the policy will be allowed to change the auto attendant's holiday greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's holiday greeting. + When set to `True`, users affected by the policy will be allowed to change the auto attendant's business hours schedule. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's business hours schedule. Boolean @@ -24701,9 +26180,9 @@ Tag:sms-enabled False False - AllowAutoAttendantBusinessHoursChange + AllowAutoAttendantBusinessHoursGreetingChange - When set to `True`, users affected by the policy will be allowed to change the auto attendant's business hours schedule. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's business hours schedule. + When set to `True`, users affected by the policy will be allowed to change the auto attendant's business hours greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's business hours greeting. Boolean @@ -24713,9 +26192,9 @@ Tag:sms-enabled False False - AllowAutoAttendantHolidaysChange + AllowAutoAttendantBusinessHoursRoutingChange - When set to `True`, users affected by the policy will be allowed to change the auto attendant's holiday schedules. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's holiday schedules. + When set to `True`, users affected by the policy will be allowed to change the auto attendant's business hours call flow. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's business hours call flow. Boolean @@ -24725,9 +26204,9 @@ Tag:sms-enabled False False - AllowAutoAttendantTimeZoneChange + AllowAutoAttendantHolidayGreetingChange - This option is not currently available in Queues app. When set to `True`, users affected by the policy will be allowed to change the auto attendant's time zone. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's time zone. + When set to `True`, users affected by the policy will be allowed to change the auto attendant's holiday greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's holiday greeting. Boolean @@ -24737,9 +26216,9 @@ Tag:sms-enabled False False - AllowAutoAttendantLanguageChange + AllowAutoAttendantHolidayRoutingChange - This option is not currently available in Queues app. When set to `True`, users affected by the policy will be allowed to change the auto attendant's language. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's language. + When set to `True`, users affected by the policy will be allowed to change the auto attendant's holiday call flows. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's holiday call flows. Boolean @@ -24749,9 +26228,9 @@ Tag:sms-enabled False False - AllowAutoAttendantBusinessHoursRoutingChange + AllowAutoAttendantHolidaysChange - When set to `True`, users affected by the policy will be allowed to change the auto attendant's business hours call flow. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's business hours call flow. + When set to `True`, users affected by the policy will be allowed to change the auto attendant's holiday schedules. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's holiday schedules. Boolean @@ -24761,9 +26240,9 @@ Tag:sms-enabled False False - AllowAutoAttendantAfterHoursRoutingChange + AllowAutoAttendantLanguageChange - When set to `True`, users affected by the policy will be allowed to change the auto attendant's after-hours call flow. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's after-hours call flow. + This feature is not currently available to authorized users. When set to `True`, users affected by the policy will be allowed to change the auto attendant's language. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's language. Boolean @@ -24773,9 +26252,9 @@ Tag:sms-enabled False False - AllowAutoAttendantHolidayRoutingChange + AllowAutoAttendantTimeZoneChange - When set to `True`, users affected by the policy will be allowed to change the auto attendant's holiday call flows. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's holiday call flows. + This feature is not currently available to authorized users. When set to `True`, users affected by the policy will be allowed to change the auto attendant's time zone. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's time zone. Boolean @@ -24785,9 +26264,9 @@ Tag:sms-enabled False False - AllowCallQueueWelcomeGreetingChange + AllowCallQueueAgentOptChange - When set to `True`, users affected by the policy will be allowed to change the call queue's welcome greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's welcome greeting. + When set to `True`, users affected by the policy will be allowed to change an agent's opt-in status in the call queue. When set to `False` (the default value), users affected by the policy won't be allowed to change an agent's opt-in status in the call queue. Boolean @@ -24797,9 +26276,9 @@ Tag:sms-enabled False False - AllowCallQueueMusicOnHoldChange + AllowCallQueueConferenceModeChange - When set to `True`, users affected by the policy will be allowed to change the call queue's music on hold information. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's music on hold. + When set to `True`, users affected by the policy will be allowed to change the call queue's conference mode. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's conference mode. Boolean @@ -24809,9 +26288,9 @@ Tag:sms-enabled False False - AllowCallQueueOverflowSharedVoicemailGreetingChange + AllowCallQueueLanguageChange - When set to `True`, users affected by the policy will be allowed to change the call queue's overflow shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's overflow shared voicemail greeting. + This feature is not currently available to authorized users. When set to `True`, users affected by the policy will be allowed to change the call queue's language. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's language. Boolean @@ -24821,9 +26300,9 @@ Tag:sms-enabled False False - AllowCallQueueTimeoutSharedVoicemailGreetingChange + AllowCallQueueMembershipChange - When set to `True`, users affected by the policy will be allowed to change the call queue's timeout shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's timeout shared voicemail greeting. + When set to `True`, users affected by the policy will be allowed to change the call queue's users. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's users. Boolean @@ -24833,9 +26312,9 @@ Tag:sms-enabled False False - AllowCallQueueNoAgentSharedVoicemailGreetingChange + AllowCallQueueMusicOnHoldChange - This option is not currently available in Queues app. When set to `True`, users affected by the policy will be allowed to change the call queue's no agent shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's no agent shared voicemail greeting. + When set to `True`, users affected by the policy will be allowed to change the call queue's music on hold information. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's music on hold. Boolean @@ -24845,9 +26324,9 @@ Tag:sms-enabled False False - AllowCallQueueLanguageChange + AllowCallQueueNoAgentSharedVoicemailGreetingChange - This option is not currently available in Queues app. When set to `True`, users affected by the policy will be allowed to change the call queue's language. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's language. + This option is not currently available in Queues app. When set to `True`, users affected by the policy will be allowed to change the call queue's no agent shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's no agent shared voicemail greeting. Boolean @@ -24857,9 +26336,9 @@ Tag:sms-enabled False False - AllowCallQueueMembershipChange + AllowCallQueueNoAgentsRoutingChange - When set to `True`, users affected by the policy will be allowed to change the call queue's users. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's users. + When set to `True`, users affected by the policy will be allowed to change the call queue's no-agent handling properties. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's no-agent handling properties. Boolean @@ -24869,9 +26348,9 @@ Tag:sms-enabled False False - AllowCallQueueConferenceModeChange + AllowCallQueueOptOutChange - When set to `True`, users affected by the policy will be allowed to change the call queue's conference mode. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's conference mode. + When set to `True`, users affected by the policy will be allowed to change the call queue opt-out setting that allows agents to opt out of receiving calls. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue opt-out setting. Boolean @@ -24881,9 +26360,9 @@ Tag:sms-enabled False False - AllowCallQueueRoutingMethodChange + AllowCallQueueOverflowRoutingChange - When set to `True`, users affected by the policy will be allowed to change the call queue's routing method. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's routing method. + When set to `True`, users affected by the policy will be allowed to change the call queue's overflow handling properties. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's overflow handling properties. Boolean @@ -24893,9 +26372,9 @@ Tag:sms-enabled False False - AllowCallQueuePresenceBasedRoutingChange + AllowCallQueueOverflowSharedVoicemailGreetingChange - When set to `True`, users affected by the policy will be allowed to change the call queue's presence-based routing option. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's presence-based routing option. + When set to `True`, users affected by the policy will be allowed to change the call queue's overflow shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's overflow shared voicemail greeting. Boolean @@ -24905,9 +26384,9 @@ Tag:sms-enabled False False - AllowCallQueueOptOutChange + AllowCallQueuePresenceBasedRoutingChange - When set to `True`, users affected by the policy will be allowed to change the call queue opt-out setting that allows agents to opt out of receiving calls. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue opt-out setting. + When set to `True`, users affected by the policy will be allowed to change the call queue's presence-based routing option. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's presence-based routing option. Boolean @@ -24917,9 +26396,9 @@ Tag:sms-enabled False False - AllowCallQueueOverflowRoutingChange + AllowCallQueueRoutingMethodChange - When set to `True`, users affected by the policy will be allowed to change the call queue's overflow handling properties. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's overflow handling properties. + When set to `True`, users affected by the policy will be allowed to change the call queue's routing method. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's routing method. Boolean @@ -24941,9 +26420,9 @@ Tag:sms-enabled False False - AllowCallQueueNoAgentsRoutingChange + AllowCallQueueTimeoutSharedVoicemailGreetingChange - When set to `True`, users affected by the policy will be allowed to change the call queue's no-agent handling properties. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's no-agent handling properties. + When set to `True`, users affected by the policy will be allowed to change the call queue's timeout shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's timeout shared voicemail greeting. Boolean @@ -24953,9 +26432,9 @@ Tag:sms-enabled False False - AllowCallQueueAgentOptChange + AllowCallQueueWelcomeGreetingChange - When set to `True`, users affected by the policy will be allowed to change an agent's opt-in status in the call queue. When set to `False` (the default value), users affected by the policy won't be allowed to change an agent's opt-in status in the call queue. + When set to `True`, users affected by the policy will be allowed to change the call queue's welcome greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's welcome greeting. Boolean @@ -24967,7 +26446,8 @@ Tag:sms-enabled False CallQueueAgentMonitorMode - This option is not currently available in Queues app. PARAMVALUE: Disabled | Monitor | Whisper | Barge | Takeover + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | Monitor | Whisper | Barge | Takeover When set to `Disabled` (the default value), users affected by the policy won't be allowed to monitor call sessions. When set to `Monitor`, users affected by the policy will be allowed to monitor and listen to call sessions. When set to `Whisper`, users affected by the policy will be allowed to monitor call sessions and whisper to an agent in the call. @@ -24984,7 +26464,8 @@ Tag:sms-enabled False CallQueueAgentMonitorNotificationMode - This option is not currently available in Queues app. PARAMVALUE: Disabled | Agent + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | Agent When set to `Disabled` (the default value), users affected by the policy won't be allowed to monitor agents during call sessions. When set to `Agent`, users affected by the policy will be allowed to monitor agents during call sessions. @@ -24995,43 +26476,38 @@ Tag:sms-enabled False Disabled - - RealTimeAutoAttendantMetricsPermission + + Confirm - PARAMVALUE: Disabled | AuthorizedOnly | All - When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for auto attendants. - When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for auto attendants they are authorized for. - > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved, however, any user assigned a policy with RealTimeAutoAttendantMetricsPermission set to `All` won't be able to access real-time metrics. + Prompts you for confirmation before running the cmdlet. - Object + SwitchParameter - Object + SwitchParameter - None + False - RealTimeCallQueueMetricsPermission + Description - PARAMVALUE: Disabled | AuthorizedOnly | All - When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for call queues. - When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for call queues they are authorized for. - > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved, however, any user assigned a policy with RealTimeCallQueueMetricsPermission set to `All` won't be able to access real-time metrics. + Enables administrators to provide explanatory text about the policy. For example, the Description might indicate the users the policy should be assigned to. - Object + String - Object + String None - RealTimeAgentMetricsPermission + HistoricalAgentMetricsPermission + > Applicable: Microsoft Teams PARAMVALUE: Disabled | AuthorizedOnly | All - When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for agents. - When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for agents who are members in the call queues they are authorized for. - > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved, however, any user assigned a policy with RealTimeAgentMetricsPermission set to `All` won't be able to access real-time metrics. + When set to `Disabled` (the default value), users affected by the policy won't receive historical metrics for agents. + When set to `AuthorizedOnly`, users affected by the policy will receive historical metrics for agents who are members in the call queues they are authorized for. + When set to `All`, users affected by the policy will receive historical metrics for all agents in all call queues in the organization. Object @@ -25043,6 +26519,7 @@ Tag:sms-enabled False HistoricalAutoAttendantMetricsPermission + > Applicable: Microsoft Teams PARAMVALUE: Disabled | AuthorizedOnly | All When set to `Disabled` (the default value), users affected by the policy won't receive historical metrics for auto attendants. When set to `AuthorizedOnly`, users affected by the policy will receive historical metrics for auto attendants they are authorized for. @@ -25058,6 +26535,7 @@ Tag:sms-enabled False HistoricalCallQueueMetricsPermission + > Applicable: Microsoft Teams PARAMVALUE: Disabled | AuthorizedOnly | All When set to `Disabled` (the default value), users affected by the policy won't receive historical metrics for call queues. When set to `AuthorizedOnly`, users affected by the policy will receive historical metrics for call queues they are authorized for. @@ -25070,13 +26548,26 @@ Tag:sms-enabled False None + + Identity + + Unique identifier assigned to the policy when it was created. + + String + + String + + + None + - HistoricalAgentMetricsPermission + RealTimeAgentMetricsPermission + > Applicable: Microsoft Teams PARAMVALUE: Disabled | AuthorizedOnly | All - When set to `Disabled` (the default value), users affected by the policy won't receive historical metrics for agents. - When set to `AuthorizedOnly`, users affected by the policy will receive historical metrics for agents who are members in the call queues they are authorized for. - When set to `All`, users affected by the policy will receive historical metrics for all agents in all call queues in the organization. + When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for agents. + When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for agents who are members in the call queues they are authorized for. + > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved, however, any user assigned a policy with RealTimeAgentMetricsPermission set to `All` won't be able to access real-time metrics. Object @@ -25085,41 +26576,49 @@ Tag:sms-enabled False None - - WhatIf + + RealTimeAutoAttendantMetricsPermission - Shows what would happen if the cmdlet runs. The cmdlet is not run. + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | AuthorizedOnly | All + When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for auto attendants. + When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for auto attendants they are authorized for. + > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved, however, any user assigned a policy with RealTimeAutoAttendantMetricsPermission set to `All` won't be able to access real-time metrics. - SwitchParameter + Object - SwitchParameter + Object - False + None - - Confirm + + RealTimeCallQueueMetricsPermission - Prompts you for confirmation before running the cmdlet. + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | AuthorizedOnly | All + When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for call queues. + When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for call queues they are authorized for. + > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved, however, any user assigned a policy with RealTimeCallQueueMetricsPermission set to `All` won't be able to access real-time metrics. - SwitchParameter + Object - SwitchParameter + Object - False + None - - Description + + WhatIf - Enables administrators to provide explanatory text about the policy. For example, the Description might indicate the users the policy should be assigned to. + Shows what would happen if the cmdlet runs. The cmdlet is not run. - String + SwitchParameter - String + SwitchParameter - None + False @@ -25157,23 +26656,23 @@ Tag:sms-enabled False Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamsvoiceapplicationspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsvoiceapplicationspolicy Get-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsvoiceapplicationspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsvoiceapplicationspolicy Grant-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsvoiceapplicationspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsvoiceapplicationspolicy Remove-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsvoiceapplicationspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsvoiceapplicationspolicy Set-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsvoiceapplicationspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsvoiceapplicationspolicy @@ -25183,11 +26682,12 @@ Tag:sms-enabled False New CsTeamsWorkLocationDetectionPolicy - This cmdlet is used to create a new instance of the TeamsWorkLocationDetectionPolicy. The end user experience utilizing this policy has rolled out to the general public. You can see updates at Microsoft 365 Roadmap | Microsoft 365 (https://www.microsoft.com/en-us/microsoft-365/roadmap?msockid=287ab43847c06d0008cca05b46076c18&filters=&searchterms=automatically%2Cset%2Cwork%2Clocation%22https://www.microsoft.com/en-us/microsoft-365/roadmap?msockid=287ab43847c06d0008cca05b46076c18&filters=&searchterms=automatically%2cset%2cwork%2clocation%22) and to learn more on how to enable the end user experience, please see [Setting up Bookable Desks in Microsoft Teams - Microsoft Teams | Microsoft Learn.](https://learn.microsoft.com/microsoftteams/rooms/bookable-desks) + This cmdlet is used to create a new instance of the TeamsWorkLocationDetectionPolicy. Creates a new instance of the TeamsWorkLocationDetectionPolicy. This policy can be used to tailor the work location detection experience. The parameter `EnableWorkLocationDetection` allows your organization to collect the work location of users when they connect, interact, or are detected near your organization's networks and devices. It also captures the geographic location information users share from personal and mobile devices. This gives users the ability to consent to the use of this location data to set their current work location.Microsoft collects this information to provide users with a consistent location-based experience and to improve the hybrid work experience in Microsoft 365 according to the Microsoft Privacy Statement (https://go.microsoft.com/fwlink/?LinkId=521839). + The end user experience utilizing this policy has rolled out to the general public. You can see updates at Microsoft 365 Roadmap | Microsoft 365 (https://www.microsoft.com/en-us/microsoft-365/roadmap?msockid=287ab43847c06d0008cca05b46076c18&filters=&searchterms=automatically%2Cset%2Cwork%2Clocation%22https://www.microsoft.com/en-us/microsoft-365/roadmap?msockid=287ab43847c06d0008cca05b46076c18&filters=&searchterms=automatically%2cset%2cwork%2clocation%22) and to learn more on how to enable the end user experience, please see [Setting up Bookable Desks in Microsoft Teams - Microsoft Teams | Microsoft Learn.](https://learn.microsoft.com/microsoftteams/rooms/bookable-desks). @@ -25365,23 +26865,23 @@ Tag:wld-policy False Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamsworklocationdetectionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsworklocationdetectionpolicy Get-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsworklocationdetectionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsworklocationdetectionpolicy Remove-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsworklocationdetectionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsworklocationdetectionpolicy Set-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsworklocationdetectionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsworklocationdetectionpolicy Grant-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsworklocationdetectionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsworklocationdetectionpolicy @@ -25391,14 +26891,15 @@ Tag:wld-policy False Remove CsExternalAccessPolicy - Enables you to remove an existing external access policy. External access policies determine whether or not your users can: 1) Communicate with users who have Session Initiation Protocol (SIP) accounts with a federated organization; 2) Communicate with users who have SIP accounts with a public instant messaging (IM) provider such as Windows Live; 3) Communicate with users who are using custom applications built with Azure Communication Services (ACS) (https://learn.microsoft.com/azure/communication-services/concepts/teams-interop) and 4)Access Skype for Business Server over the Internet, without having to log on to your internal network. This cmdlet was introduced in Lync Server 2010. + Enables you to remove an existing external access policy. + This cmdlet was introduced in Lync Server 2010. When you install Skype for Business Server your users are only allowed to exchange instant messages and presence information among themselves: by default, they can only communicate with other people who have SIP accounts in your Active Directory Domain Services. In addition, users are not allowed to access Skype for Business Server over the Internet; instead, they must be logged on to your internal network before they will be able to log on to Skype for Business Server. 1. That might be sufficient to meet your communication needs. If it doesn't meet your needs you can use external access policies to extend the ability of your users to communicate and collaborate. External access policies can grant (or revoke) the ability of your users to do any or all of the following: 2. Communicate with people who have SIP accounts with a federated organization. Note that enabling federation alone will not provide users with this capability. Instead, you must enable federation and then assign users an external access policy that gives them the right to communicate with federated users. - 3. (Microsoft Teams only) Communicate with users who are using custom applications built with Azure Communication Services (ACS) (https://learn.microsoft.com/azure/communication-services/concepts/teams-interop). This policy setting only applies if ACS federation has been enabled at the tenant level using the cmdlet [Set-CsTeamsAcsFederationConfiguration](https://learn.microsoft.com/powershell/module/teams/set-csteamsacsfederationconfiguration). + 3. (Microsoft Teams only) Communicate with users who are using custom applications built with Azure Communication Services (ACS) (https://learn.microsoft.com/azure/communication-services/concepts/teams-interop). This policy setting only applies if ACS federation has been enabled at the tenant level using the cmdlet [Set-CsTeamsAcsFederationConfiguration](https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsacsfederationconfiguration). 4. Communicate with people who have SIP accounts with a public instant messaging service such as Windows Live. Access Skype for Business Server over the Internet, without having to first log on to your internal network. This enables your users to use Skype for Business and log on to Skype for Business Server from an Internet café or other remote location. When you install Skype for Business Server, a global external access policy is automatically created for you. In addition to the global policy, you can use the `New-CsExternalAccessPolicy` cmdlet to create external access policies configured at the site or per-user scopes. @@ -25410,6 +26911,7 @@ Tag:wld-policy False Identity + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 Unique identifier for the external access policy to be removed. External access policies can be configured at the global, site, or per-user scopes. To "remove" the global policy, use this syntax: `-Identity global`. (Note that the global policy cannot actually be removed. Instead, all the properties in the global policy will be reset to their default values.) To remove a site policy, use syntax similar to this: `-Identity site:Redmond`. To remove a per-user policy, use syntax similar to this: `-Identity SalesAccessPolicy`. Note that wildcards are not allowed when specifying an Identity. @@ -25420,21 +26922,11 @@ Tag:wld-policy False None - - Force - - Suppresses the display of any non-fatal error message that might occur when running the command. - - - SwitchParameter - - - False - - - WhatIf + + Confirm - Describes what would happen if you executed the command without actually executing the command. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Prompts you for confirmation before executing the command. SwitchParameter @@ -25442,10 +26934,11 @@ Tag:wld-policy False False - - Confirm + + Force - Prompts you for confirmation before executing the command. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Suppresses the display of any non-fatal error message that might occur when running the command. SwitchParameter @@ -25468,26 +26961,26 @@ Tag:wld-policy False None + + WhatIf + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Describes what would happen if you executed the command without actually executing the command. + + + SwitchParameter + + + False + - - Identity - - Unique identifier for the external access policy to be removed. External access policies can be configured at the global, site, or per-user scopes. To "remove" the global policy, use this syntax: `-Identity global`. (Note that the global policy cannot actually be removed. Instead, all the properties in the global policy will be reset to their default values.) To remove a site policy, use syntax similar to this: `-Identity site:Redmond`. To remove a per-user policy, use syntax similar to this: `-Identity SalesAccessPolicy`. - Note that wildcards are not allowed when specifying an Identity. - - XdsIdentity - - XdsIdentity - - - None - - - Force + + Confirm - Suppresses the display of any non-fatal error message that might occur when running the command. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Prompts you for confirmation before executing the command. SwitchParameter @@ -25496,10 +26989,11 @@ Tag:wld-policy False False - - WhatIf + + Force - Describes what would happen if you executed the command without actually executing the command. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Suppresses the display of any non-fatal error message that might occur when running the command. SwitchParameter @@ -25508,17 +27002,19 @@ Tag:wld-policy False False - - Confirm + + Identity - Prompts you for confirmation before executing the command. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Unique identifier for the external access policy to be removed. External access policies can be configured at the global, site, or per-user scopes. To "remove" the global policy, use this syntax: `-Identity global`. (Note that the global policy cannot actually be removed. Instead, all the properties in the global policy will be reset to their default values.) To remove a site policy, use syntax similar to this: `-Identity site:Redmond`. To remove a per-user policy, use syntax similar to this: `-Identity SalesAccessPolicy`. + Note that wildcards are not allowed when specifying an Identity. - SwitchParameter + XdsIdentity - SwitchParameter + XdsIdentity - False + None Tenant @@ -25535,6 +27031,19 @@ Tag:wld-policy False None + + WhatIf + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Describes what would happen if you executed the command without actually executing the command. + + SwitchParameter + + SwitchParameter + + + False + @@ -25563,28 +27072,28 @@ Tag:wld-policy False - -------------------------- Example 1 ------------------------ + -------------------------- Example 1 -------------------------- Remove-CsExternalAccessPolicy -Identity site:Redmond In Example 1, the external access policy with the Identity site:Redmond is deleted. After the policy is removed, users in the Redmond site will have their external access permissions governed by the global policy. - -------------------------- Example 2 ------------------------ + -------------------------- Example 2 -------------------------- Get-CsExternalAccessPolicy -Filter site:* | Remove-CsExternalAccessPolicy Example 2 deletes all the external access policies that have been configured at the site scope. To carry out this task, the command first uses the `Get-CsExternalAccessPolicy` cmdlet and the Filter parameter to return a collection of policies configured at the site scope; the filter value "site:*" limits the returned data to external access policies that have an Identity that begins with the string value "site:". The filtered collection is then piped to the `Remove-CsExternalAccessPolicy` cmdlet, which deletes each policy in the collection. - -------------------------- Example 3 ------------------------ + -------------------------- Example 3 -------------------------- Get-CsExternalAccessPolicy | Where-Object {$_.EnableFederationAccess -eq $True} | Remove-CsExternalAccessPolicy In Example 3, all the external access policies that allow federation access are deleted. To do this, the command first calls the `Get-CsExternalAccessPolicy` cmdlet to return a collection of all the external access policies configured for use in the organization. This collection is then piped to the `Where-Object` cmdlet, which picks out only those policies where the EnableFederationAccess property is equal to True. This filtered collection is then piped to the `Remove-CsExternalAccessPolicy` cmdlet, which deletes each policy in the collection. - -------------------------- Example 4 ------------------------ + -------------------------- Example 4 -------------------------- Get-CsExternalAccessPolicy | Where-Object {$_.EnableFederationAccess -eq $True -or $_.EnablePublicCloudAccess -eq $True} | Remove-CsExternalAccessPolicy Example 4 deletes all the external access policies that meet at least one of two criteria: federation access is allowed, public cloud access is allowed, or both are allowed. To carry out this task, the command first uses the `Get-CsExternalAccessPolicy` cmdlet to return a collection of all the external access policies configured for use in the organization. This collection is then piped to the `Where-Object` cmdlet, which selects only those policies that meet the following criteria: either EnableFederationAccess is equal to True and/or EnablePublicCloudAccess is equal to True. Policies meeting one (or both) of those criteria are then piped to and removed by, the `Remove-CsExternalAccessPolicy` cmdlet. @@ -25596,23 +27105,23 @@ Tag:wld-policy False Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csexternalaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csexternalaccesspolicy Get-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/teams/get-csexternalaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csexternalaccesspolicy Grant-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csexternalaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csexternalaccesspolicy New-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/teams/new-csexternalaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csexternalaccesspolicy Set-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/teams/set-csexternalaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csexternalaccesspolicy @@ -25634,6 +27143,7 @@ Tag:wld-policy False Identity + > Applicable: Microsoft Teams A unique identifier specifying the scope, and in some cases the name, of the policy. String @@ -25643,10 +27153,11 @@ Tag:wld-policy False None - - WhatIf + + Confirm - Describes what would happen if you executed the command without actually executing the command. + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. SwitchParameter @@ -25654,10 +27165,11 @@ Tag:wld-policy False False - - Confirm + + WhatIf - Prompts you for confirmation before executing the command. + > Applicable: Microsoft Teams + Describes what would happen if you executed the command without actually executing the command. SwitchParameter @@ -25668,9 +27180,23 @@ Tag:wld-policy False + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. + + SwitchParameter + + SwitchParameter + + + False + Identity + > Applicable: Microsoft Teams A unique identifier specifying the scope, and in some cases the name, of the policy. String @@ -25683,6 +27209,7 @@ Tag:wld-policy False WhatIf + > Applicable: Microsoft Teams Describes what would happen if you executed the command without actually executing the command. SwitchParameter @@ -25692,18 +27219,6 @@ Tag:wld-policy False False - - Confirm - - Prompts you for confirmation before executing the command. - - SwitchParameter - - SwitchParameter - - - False - @@ -25724,23 +27239,23 @@ Tag:wld-policy False Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csonlinevoicemailpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoicemailpolicy Get-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/teams/get-csonlinevoicemailpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoicemailpolicy Set-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/teams/set-csonlinevoicemailpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailpolicy New-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/teams/new-csonlinevoicemailpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoicemailpolicy Grant-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csonlinevoicemailpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csonlinevoicemailpolicy @@ -25754,7 +27269,7 @@ Tag:wld-policy False - The new csTeamsAIPolicy will replace the existing enrollment settings in csTeamsMeetingPolicy, providing enhanced flexibility and control for Teams meeting administrators. Unlike the current single setting, EnrollUserOverride, which applies to both face and voice enrollment, the new policy introduces two distinct settings: EnrollFace and EnrollVoice. These can be individually set to Enabled or Disabled, offering more granular control over biometric enrollments. In addition to improving the management of face and voice data, the csTeamsAIPolicy is designed to support future AI-related settings in Teams, making it a scalable solution for evolving needs. + The new csTeamsAIPolicy will replace the existing enrollment settings in csTeamsMeetingPolicy, providing enhanced flexibility and control for Teams meeting administrators. Unlike the current single setting, EnrollUserOverride, which applies to both face and voice enrollment, the new policy introduces two distinct settings: EnrollFace and EnrollVoice. These can be individually set to Enabled or Disabled, offering more granular control over biometric enrollments. A new setting, SpeakerAttributionBYOD, is also being added to csTeamsAIPolicy. This allows IT admins to turn off speaker attribution in BYOD scenarios, giving them greater control over how voice data is managed in such environments. This setting can be set to Enabled or Disabled, and will be Enabled by default. In addition to improving the management of face and voice data, the csTeamsAIPolicy is designed to support future AI-related settings in Teams, making it a scalable solution for evolving needs. This cmdlet deletes a Teams AI policy with the specified identity string. @@ -25807,23 +27322,23 @@ Tag:wld-policy False Online Version: - https://learn.microsoft.com/powershell/module/teams/Remove-CsTeamsAIPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/Remove-CsTeamsAIPolicy New-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsaipolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsaipolicy Get-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsaipolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsaipolicy Grant-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsaipolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsaipolicy Set-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsaipolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsaipolicy @@ -25833,15 +27348,13 @@ Tag:wld-policy False Remove CsTeamsAppPermissionPolicy - NOTE : You can use this cmdlet to remove a specific custom policy from a user. We require that all creation and modification of app permission polices (not including the assignment or removal of policies from users) happens in the Microsoft Teams & Skype for Business Admin Center to ensure that the policy matches your expectations for the end user experience. This cmdlet is not supported for tenants that migrated to app centric management feature as it replaced permission policies. While the cmdlet may succeed, the changes aren't applied to the tenant. - As an admin, you can use app permission policies to allow or block apps for your users. Learn more about the app permission policies at <https://learn.microsoft.com/microsoftteams/teams-app-permission-policies> and about app centric management at <https://learn.microsoft.com/microsoftteams/app-centric-management>. - This cmdlet allows you to remove app permission policies that have been created within your organization. If you run `Remove-CsTeamsAppPermissionPolicy` on the Global policy, it will be reset to the defaults provided for new organizations. This is only applicable for tenants who have not been migrated to ACM or UAM. + This cmdlet allows you to remove app permission policies that have been created within your organization. NOTE : You can use this cmdlet to remove a specific custom policy from a user. We require that all creation and modification of app permission polices (not including the assignment or removal of policies from users) happens in the Microsoft Teams & Skype for Business Admin Center to ensure that the policy matches your expectations for the end user experience. As an admin, you can use app permission policies to enable or block specific apps for your users. Learn more about the App Permission Policies: <https://learn.microsoft.com/microsoftteams/teams-app-permission-policies>. - This cmdlet allows you to remove app permission policies that have been created within your organization. If you run Remove-CsTeamsAppPermissionPolicy on the Global policy, it will be reset to the defaults provided for new organizations. + This cmdlet allows you to remove app permission policies that have been created within your organization. If you run Remove-CsTeamsAppPermissionPolicy on the Global policy, it will be reset to the defaults provided for new organizations. This is only applicable for tenants who have not been migrated to ACM or UAM. @@ -25849,6 +27362,7 @@ Tag:wld-policy False Identity + > Applicable: Microsoft Teams Unique identifier for the policy to be removed. To "remove" the global policy, use the following syntax: `-Identity global`. (Note that the global policy cannot actually be removed. Instead, all the properties in that policy will be reset to their default values.) To remove a per-user policy, use syntax similar to this: `-Identity "SalesDepartmentPolicy"`. You cannot use wildcards when specifying a policy Identity. XdsIdentity @@ -25858,21 +27372,11 @@ Tag:wld-policy False None - - Force - - Suppresses all non-fatal errors. - - - SwitchParameter - - - False - - - WhatIf + + Confirm - Describes what would happen if you executed the command without actually executing the command. + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. SwitchParameter @@ -25880,10 +27384,11 @@ Tag:wld-policy False False - - Confirm + + Force - Prompts you for confirmation before executing the command. + > Applicable: Microsoft Teams + Suppresses all non-fatal errors. SwitchParameter @@ -25894,6 +27399,7 @@ Tag:wld-policy False Tenant + > Applicable: Microsoft Teams Internal Microsoft use only. Guid @@ -25903,25 +27409,26 @@ Tag:wld-policy False None + + WhatIf + + > Applicable: Microsoft Teams + Describes what would happen if you executed the command without actually executing the command. + + + SwitchParameter + + + False + - - Identity - - Unique identifier for the policy to be removed. To "remove" the global policy, use the following syntax: `-Identity global`. (Note that the global policy cannot actually be removed. Instead, all the properties in that policy will be reset to their default values.) To remove a per-user policy, use syntax similar to this: `-Identity "SalesDepartmentPolicy"`. You cannot use wildcards when specifying a policy Identity. - - XdsIdentity - - XdsIdentity - - - None - - - Force + + Confirm - Suppresses all non-fatal errors. + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. SwitchParameter @@ -25930,10 +27437,11 @@ Tag:wld-policy False False - - WhatIf + + Force - Describes what would happen if you executed the command without actually executing the command. + > Applicable: Microsoft Teams + Suppresses all non-fatal errors. SwitchParameter @@ -25942,21 +27450,23 @@ Tag:wld-policy False False - - Confirm + + Identity - Prompts you for confirmation before executing the command. + > Applicable: Microsoft Teams + Unique identifier for the policy to be removed. To "remove" the global policy, use the following syntax: `-Identity global`. (Note that the global policy cannot actually be removed. Instead, all the properties in that policy will be reset to their default values.) To remove a per-user policy, use syntax similar to this: `-Identity "SalesDepartmentPolicy"`. You cannot use wildcards when specifying a policy Identity. - SwitchParameter + XdsIdentity - SwitchParameter + XdsIdentity - False + None Tenant + > Applicable: Microsoft Teams Internal Microsoft use only. Guid @@ -25966,6 +27476,19 @@ Tag:wld-policy False None + + WhatIf + + > Applicable: Microsoft Teams + Describes what would happen if you executed the command without actually executing the command. + + SwitchParameter + + SwitchParameter + + + False + @@ -26004,7 +27527,7 @@ Tag:wld-policy False Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamsapppermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsapppermissionpolicy @@ -26014,10 +27537,7 @@ Tag:wld-policy False Remove CsTeamsAppSetupPolicy - NOTE : You can use this cmdlet to remove custom app setup policies. We require that all creation and modification of app setup polices (not including the assignment or removal of policies from users) happens in the Microsoft Teams & Skype for Business Admin Center to ensure that the policy matches your expectations for the end user experience. - As an admin, you can use app setup policies to customize Microsoft Teams to highlight the apps that are most important for your users. You choose the apps to pin and set the order that they appear. App setup policies let you showcase apps that users in your organization need, including ones built by third parties or by developers in your organization. You can also use app setup policies to manage how built-in features appear. - Apps are pinned to the app bar. This is the bar on the side of the Teams desktop client and at the bottom of the Teams mobile clients (iOS and Android). Learn more about the App Setup Policies: <https://learn.microsoft.com/MicrosoftTeams/teams-app-setup-policies>. - If you run Remove-CsTeamsAppSetupPolicy on the Global policy, it will be reset to the defaults provided for new organizations. + You can use this cmdlet to remove custom app setup policies. @@ -26032,6 +27552,7 @@ Tag:wld-policy False Identity + > Applicable: Microsoft Teams Unique identifier for the policy to be removed. To "remove" the global policy, use the following syntax: `-Identity global`. (Note that the global policy cannot actually be removed. Instead, all the properties in that policy will be reset to their default values.) To remove a per-user policy, use syntax similar to this: `-Identity "SalesDepartmentPolicy"`. You cannot use wildcards when specifying a policy Identity. XdsIdentity @@ -26041,21 +27562,11 @@ Tag:wld-policy False None - - Force - - Suppresses all non-fatal errors. - - - SwitchParameter - - - False - - - WhatIf + + Confirm - Describes what would happen if you executed the command without actually executing the command. + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. SwitchParameter @@ -26063,10 +27574,11 @@ Tag:wld-policy False False - - Confirm + + Force - Prompts you for confirmation before executing the command. + > Applicable: Microsoft Teams + Suppresses all non-fatal errors. SwitchParameter @@ -26077,6 +27589,7 @@ Tag:wld-policy False Tenant + > Applicable: Microsoft Teams Internal Microsoft use only. Guid @@ -26086,25 +27599,26 @@ Tag:wld-policy False None + + WhatIf + + > Applicable: Microsoft Teams + Describes what would happen if you executed the command without actually executing the command. + + + SwitchParameter + + + False + - - Identity - - Unique identifier for the policy to be removed. To "remove" the global policy, use the following syntax: `-Identity global`. (Note that the global policy cannot actually be removed. Instead, all the properties in that policy will be reset to their default values.) To remove a per-user policy, use syntax similar to this: `-Identity "SalesDepartmentPolicy"`. You cannot use wildcards when specifying a policy Identity. - - XdsIdentity - - XdsIdentity - - - None - - - Force + + Confirm - Suppresses all non-fatal errors. + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. SwitchParameter @@ -26113,10 +27627,11 @@ Tag:wld-policy False False - - WhatIf + + Force - Describes what would happen if you executed the command without actually executing the command. + > Applicable: Microsoft Teams + Suppresses all non-fatal errors. SwitchParameter @@ -26125,21 +27640,23 @@ Tag:wld-policy False False - - Confirm + + Identity - Prompts you for confirmation before executing the command. + > Applicable: Microsoft Teams + Unique identifier for the policy to be removed. To "remove" the global policy, use the following syntax: `-Identity global`. (Note that the global policy cannot actually be removed. Instead, all the properties in that policy will be reset to their default values.) To remove a per-user policy, use syntax similar to this: `-Identity "SalesDepartmentPolicy"`. You cannot use wildcards when specifying a policy Identity. - SwitchParameter + XdsIdentity - SwitchParameter + XdsIdentity - False + None Tenant + > Applicable: Microsoft Teams Internal Microsoft use only. Guid @@ -26149,6 +27666,19 @@ Tag:wld-policy False None + + WhatIf + + > Applicable: Microsoft Teams + Describes what would happen if you executed the command without actually executing the command. + + SwitchParameter + + SwitchParameter + + + False + @@ -26187,7 +27717,7 @@ Tag:wld-policy False Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamsappsetuppolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsappsetuppolicy @@ -26219,10 +27749,10 @@ Tag:wld-policy False None - - Force + + Confirm - Suppresses the display of any non-fatal error message that might arise when running the command. + Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -26230,10 +27760,10 @@ Tag:wld-policy False False - - WhatIf + + Force - Shows what would happen if the cmdlet runs. The cmdlet is not run. + Suppresses the display of any non-fatal error message that might arise when running the command. SwitchParameter @@ -26241,10 +27771,10 @@ Tag:wld-policy False False - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -26255,17 +27785,17 @@ Tag:wld-policy False - - Identity + + Confirm - Unique identifier of the Teams call hold policy to be removed. + Prompts you for confirmation before running the cmdlet. - String + SwitchParameter - String + SwitchParameter - None + False Force @@ -26279,22 +27809,22 @@ Tag:wld-policy False False - - WhatIf + + Identity - Shows what would happen if the cmdlet runs. The cmdlet is not run. + Unique identifier of the Teams call hold policy to be removed. - SwitchParameter + String - SwitchParameter + String - False + None - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -26339,23 +27869,23 @@ Tag:wld-policy False Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamscallholdpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallholdpolicy New-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamscallholdpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallholdpolicy Get-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamscallholdpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallholdpolicy Set-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamscallholdpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallholdpolicy Grant-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamscallholdpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscallholdpolicy @@ -26411,18 +27941,6 @@ Tag:wld-policy False - - Identity - - The Identity parameter is the unique identifier of the Teams Calling Policy instance to remove or reset. - - String - - String - - - None - Confirm @@ -26435,6 +27953,18 @@ Tag:wld-policy False False + + Identity + + The Identity parameter is the unique identifier of the Teams Calling Policy instance to remove or reset. + + String + + String + + + None + WhatIf @@ -26483,23 +28013,23 @@ Tag:wld-policy False Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamscallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallingpolicy Set-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamscallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallingpolicy Get-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamscallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallingpolicy Grant-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamscallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscallingpolicy New-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamscallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallingpolicy @@ -26522,6 +28052,7 @@ Tag:wld-policy False Identity + > Applicable: Microsoft Teams The name of the policy to be removed. Wildcards are not supported. To remove a custom policy, use syntax similar to this: `-Identity "Student Policy"`. To "remove" the global policy, use the following syntax: `-Identity Global`. You can't actually remove the global policy. Instead, all properties will be reset to their default values as shown in the default policy (`Tag:Default`). @@ -26536,6 +28067,7 @@ Tag:wld-policy False Confirm + > Applicable: Microsoft Teams Prompts you for confirmation before executing the command. @@ -26547,6 +28079,7 @@ Tag:wld-policy False Force + > Applicable: Microsoft Teams Suppresses all non-fatal errors. @@ -26558,6 +28091,7 @@ Tag:wld-policy False Tenant + > Applicable: Microsoft Teams Internal Microsoft use only. Guid @@ -26570,6 +28104,7 @@ Tag:wld-policy False WhatIf + > Applicable: Microsoft Teams Describes what would happen if you executed the command without actually executing the command. @@ -26581,23 +28116,10 @@ Tag:wld-policy False - - Identity - - The name of the policy to be removed. Wildcards are not supported. - To remove a custom policy, use syntax similar to this: `-Identity "Student Policy"`. - To "remove" the global policy, use the following syntax: `-Identity Global`. You can't actually remove the global policy. Instead, all properties will be reset to their default values as shown in the default policy (`Tag:Default`). - - XdsIdentity - - XdsIdentity - - - None - Confirm + > Applicable: Microsoft Teams Prompts you for confirmation before executing the command. SwitchParameter @@ -26610,6 +28132,7 @@ Tag:wld-policy False Force + > Applicable: Microsoft Teams Suppresses all non-fatal errors. SwitchParameter @@ -26619,9 +28142,25 @@ Tag:wld-policy False False + + Identity + + > Applicable: Microsoft Teams + The name of the policy to be removed. Wildcards are not supported. + To remove a custom policy, use syntax similar to this: `-Identity "Student Policy"`. + To "remove" the global policy, use the following syntax: `-Identity Global`. You can't actually remove the global policy. Instead, all properties will be reset to their default values as shown in the default policy (`Tag:Default`). + + XdsIdentity + + XdsIdentity + + + None + Tenant + > Applicable: Microsoft Teams Internal Microsoft use only. Guid @@ -26634,6 +28173,7 @@ Tag:wld-policy False WhatIf + > Applicable: Microsoft Teams Describes what would happen if you executed the command without actually executing the command. SwitchParameter @@ -26681,7 +28221,7 @@ Tag:wld-policy False Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamschannelspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamschannelspolicy @@ -26716,22 +28256,6 @@ Tag:wld-policy False None - - Tenant - - Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: - -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" - You can return your tenant ID by running this command: - Get-CsTenant | Select-Object DisplayName, TenantID - If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. - - System.Guid - - System.Guid - - - None - Confirm @@ -26754,6 +28278,22 @@ Tag:wld-policy False False + + Tenant + + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + System.Guid + + System.Guid + + + None + WhatIf @@ -26768,6 +28308,30 @@ Tag:wld-policy False + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + Identity @@ -26797,30 +28361,6 @@ Tag:wld-policy False None - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - SwitchParameter - - SwitchParameter - - - False - WhatIf @@ -26878,43 +28418,43 @@ Tag:wld-policy False Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingapplication Get-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingpolicy New-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpolicy Set-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingpolicy Grant-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscompliancerecordingpolicy Remove-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingpolicy Get-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/get-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingapplication New-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/new-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingapplication Set-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/set-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingapplication New-CsTeamsComplianceRecordingPairedApplication - https://learn.microsoft.com/powershell/module/teams/new-csteamscompliancerecordingpairedapplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpairedapplication @@ -26949,22 +28489,6 @@ Tag:wld-policy False None - - Tenant - - Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: - -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" - You can return your tenant ID by running this command: - Get-CsTenant | Select-Object DisplayName, TenantID - If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. - - System.Guid - - System.Guid - - - None - Confirm @@ -26987,6 +28511,22 @@ Tag:wld-policy False False + + Tenant + + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + System.Guid + + System.Guid + + + None + WhatIf @@ -27001,6 +28541,30 @@ Tag:wld-policy False + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + Identity @@ -27030,30 +28594,6 @@ Tag:wld-policy False None - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - SwitchParameter - - SwitchParameter - - - False - WhatIf @@ -27111,43 +28651,43 @@ Tag:wld-policy False Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingpolicy Get-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingpolicy New-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpolicy Set-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingpolicy Grant-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscompliancerecordingpolicy Get-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/get-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingapplication New-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/new-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingapplication Set-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/set-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingapplication Remove-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/remove-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingapplication New-CsTeamsComplianceRecordingPairedApplication - https://learn.microsoft.com/powershell/module/teams/new-csteamscompliancerecordingpairedapplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpairedapplication @@ -27166,9 +28706,36 @@ Tag:wld-policy False Remove-CsTeamsCustomBannerText + + Identity + + > Applicable: Microsoft Teams + Policy instance name (optional). + + String + + String + + + None + - + + + Identity + + > Applicable: Microsoft Teams + Policy instance name (optional). + + String + + String + + + None + + @@ -27197,40 +28764,28 @@ Tag:wld-policy False -------------------------- Example 1 -------------------------- - This example removes a TeamsCustomBannerText instance with the name "CustomText". - -## PARAMETERS - -### -Identity -Policy instance name (optional). + PS C:\> Remove-CsTeamsCustomBannerText -Identity CustomText - yaml Type: String Parameter Sets: Identity Aliases: Applicable: Microsoft Teams Required: False Position: 1 Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - - - - ----------------------- CommonParameters ----------------------- - - - + This example removes a TeamsCustomBannerText instance with the name "CustomText". Online Version: - https://learn.microsoft.com/powershell/module/teams/Remove-CsTeamsCustomBannerText + https://learn.microsoft.com/powershell/module/microsoftteams/Remove-CsTeamsCustomBannerText Set-CsTeamsCustomBannerText - https://learn.microsoft.com/powershell/module/teams/set-csteamscustombannertext + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscustombannertext New-CsTeamsCustomBannerText - https://learn.microsoft.com/powershell/module/teams/new-csteamscustombannertext + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscustombannertext Remove-CsTeamsCustomBannerText - https://learn.microsoft.com/powershell/module/teams/remove-csteamscustombannertext + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscustombannertext @@ -27261,10 +28816,10 @@ Policy instance name (optional). None - - WhatIf + + Confirm - Shows what would happen if the cmdlet runs. The cmdlet is not run. + Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -27272,10 +28827,10 @@ Policy instance name (optional). False - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -27286,6 +28841,18 @@ Policy instance name (optional). + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + Identity @@ -27310,18 +28877,6 @@ Policy instance name (optional). False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - @@ -27367,23 +28922,23 @@ Policy instance name (optional). Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamsemergencycallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsemergencycallingpolicy New-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsemergencycallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallingpolicy Grant-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsemergencycallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsemergencycallingpolicy Get-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsemergencycallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsemergencycallingpolicy Set-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsemergencycallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallingpolicy @@ -27513,7 +29068,7 @@ Policy instance name (optional). Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamseventspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamseventspolicy @@ -27690,7 +29245,7 @@ Policy instance name (optional). Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamsfeedbackpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsfeedbackpolicy @@ -27756,23 +29311,23 @@ Policy instance name (optional). Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamsfilespolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsfilespolicy Get-CsTeamsFilesPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsfilespolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsfilespolicy Get-CsTeamsFilesPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsfilespolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsfilespolicy Get-CsTeamsFilesPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsfilespolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsfilespolicy Get-CsTeamsFilesPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsfilespolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsfilespolicy @@ -27838,19 +29393,19 @@ Policy instance name (optional). Online Version: - https://learn.microsoft.com/powershell/module/teams/Remove-CsTeamsMediaConnectivityPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/Remove-CsTeamsMediaConnectivityPolicy New-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsmediaconnectivitypolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmediaconnectivitypolicy Get-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsmediaconnectivitypolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmediaconnectivitypolicy Set-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsmediaconnectivitypolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmediaconnectivitypolicy @@ -27917,18 +29472,6 @@ Policy instance name (optional). - - Identity - - Unique identifier of the policy to be deleted. - - String - - String - - - None - Confirm @@ -27953,6 +29496,18 @@ Policy instance name (optional). False + + Identity + + Unique identifier of the policy to be deleted. + + String + + String + + + None + WhatIf @@ -27985,27 +29540,27 @@ Policy instance name (optional). Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamsmeetingbrandingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingbrandingpolicy Get-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsmeetingbrandingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingbrandingpolicy Grant-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsmeetingbrandingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingbrandingpolicy New-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsmeetingbrandingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingbrandingpolicy Remove-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsmeetingbrandingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingbrandingpolicy Set-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsmeetingbrandingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingbrandingpolicy @@ -28190,7 +29745,7 @@ Policy instance name (optional). Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamsmeetingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingpolicy @@ -28212,6 +29767,7 @@ Policy instance name (optional). Identity + > Applicable: Microsoft Teams Identity of the policy instance to be deleted. String @@ -28227,6 +29783,7 @@ Policy instance name (optional). Identity + > Applicable: Microsoft Teams Identity of the policy instance to be deleted. String @@ -28271,23 +29828,23 @@ At line:1 char:1 Online Version: - https://learn.microsoft.com/powershell/module/teams/Remove-CsTeamsMeetingTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/Remove-CsTeamsMeetingTemplatePermissionPolicy Set-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsmeetingtemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingtemplatepermissionpolicy Get-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsmeetingtemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingtemplatepermissionpolicy New-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsmeetingtemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingtemplatepermissionpolicy Grant-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsmeetingtemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingtemplatepermissionpolicy @@ -28332,7 +29889,7 @@ At line:1 char:1 Force - + Suppresses all non-fatal errors. SwitchParameter @@ -28343,7 +29900,7 @@ At line:1 char:1 Tenant - + {{ Fill Tenant Description }} Guid @@ -28381,7 +29938,7 @@ At line:1 char:1 Force - + Suppresses all non-fatal errors. SwitchParameter @@ -28405,7 +29962,7 @@ At line:1 char:1 Tenant - + {{ Fill Tenant Description }} Guid @@ -28455,38 +30012,193 @@ At line:1 char:1 -------------------------- Example 1 -------------------------- - PS C:\> Remove-CsTeamsMessagingPolicy -Identity StudentMessagingPolicy + PS C:\> Remove-CsTeamsMessagingPolicy -Identity StudentMessagingPolicy + + In the example shown above, the command will delete the student messaging policy from the organization's list of policies. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmessagingpolicy + + + + + + Remove-CsTeamsNotificationAndFeedsPolicy + Remove + CsTeamsNotificationAndFeedsPolicy + + Deletes an existing Teams Notification and Feeds Policy + + + + The Microsoft Teams notifications and feeds policy allows administrators to manage how notifications and activity feeds are handled within Teams. This policy includes settings that control the types of notifications users receive, how they are delivered, and which activities are highlighted in their feeds. + + + + Remove-CsTeamsNotificationAndFeedsPolicy + + Identity + + Unique identifier assigned to the policy when it was created. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier assigned to the policy when it was created. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTeamsNotificationAndFeedsPolicy - In the example shown above, the command will delete the student messaging policy from the organization's list of policies. + Remove an existing Notifications and Feeds Policy Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamsmessagingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsnotificationandfeedspolicy - Remove-CsTeamsNotificationAndFeedsPolicy + Remove-CsTeamsPersonalAttendantPolicy Remove - CsTeamsNotificationAndFeedsPolicy + CsTeamsPersonalAttendantPolicy - Deletes an existing Teams Notification and Feeds Policy + Limited Preview: Functionality described in this document is currently in limited preview and only authorized organizations have access. + Use this cmdlet to remove an existing instance of a Teams Personal Attendant Policy or reset the Global policy instance to the default values. - The Microsoft Teams notifications and feeds policy allows administrators to manage how notifications and activity feeds are handled within Teams. This policy includes settings that control the types of notifications users receive, how they are delivered, and which activities are highlighted in their feeds. + This cmdlet removes an existing Teams Personal Attendant Policy instance or resets the Global policy instance to the default values. - Remove-CsTeamsNotificationAndFeedsPolicy - + Remove-CsTeamsPersonalAttendantPolicy + Identity - Unique identifier assigned to the policy when it was created. + The Identity parameter is the unique identifier of the Teams Personal Attendant Policy instance to remove or reset. String @@ -28495,10 +30207,10 @@ At line:1 char:1 None - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -28506,22 +30218,10 @@ At line:1 char:1 False - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - WhatIf + + Confirm - Shows what would happen if the cmdlet runs. The cmdlet is not run. + Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -28532,22 +30232,10 @@ At line:1 char:1 - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - + Identity - Unique identifier assigned to the policy when it was created. + The Identity parameter is the unique identifier of the Teams Personal Attendant Policy instance to remove or reset. String @@ -28556,22 +30244,22 @@ At line:1 char:1 None - - MsftInternalProcessingMode + + WhatIf - For internal use only. + Shows what would happen if the cmdlet runs. The cmdlet is not run. - String + SwitchParameter - String + SwitchParameter - None + False - - WhatIf + + Confirm - Shows what would happen if the cmdlet runs. The cmdlet is not run. + Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -28584,7 +30272,7 @@ At line:1 char:1 - System.String + None @@ -28603,22 +30291,45 @@ At line:1 char:1 - + The cmdlet is available in Teams PowerShell module 7.2.1-preview or later. -------------------------- Example 1 -------------------------- - PS C:\> Remove-CsTeamsNotificationAndFeedsPolicy + Remove-CsTeamsPersonalAttendantPolicy -Identity SalesPersonalAttendantPolicy - Remove an existing Notifications and Feeds Policy + This example removes the Teams Personal Attendant Policy with identity SalesPersonalAttendantPolicy + + + + -------------------------- Example 2 -------------------------- + Remove-CsTeamsPersonalAttendantPolicy -Identity Global + + This example resets the Global Personal Attendant Policy instance to the default values. Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamsnotificationandfeedspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamspersonalattendantpolicy + + + New-CsTeamsPersonalAttendantPolicy + + + + Get-CsTeamsPersonalAttendantPolicy + + + + Set-CsTeamsPersonalAttendantPolicy + + + + Grant-CsTeamsPersonalAttendantPolicy + @@ -28772,7 +30483,7 @@ At line:1 char:1 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamsrecordingrolloutpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsrecordingrolloutpolicy @@ -28791,21 +30502,21 @@ At line:1 char:1 Remove-CsTeamsSharedCallingRoutingPolicy - - Identity + + Confirm - Unique identifier assigned to the policy when it is created. + Prompts you for confirmation before running the cmdlet. - String - String + SwitchParameter - None + False Force + > Applicable: Microsoft Teams Suppresses any confirmation prompts that would otherwise be displayed before making changes. @@ -28814,21 +30525,22 @@ At line:1 char:1 False - - WhatIf + + Identity - Shows what would happen if the cmdlet runs. The cmdlet is not run. + Unique identifier assigned to the policy when it is created. + String - SwitchParameter + String - False + None - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -28839,21 +30551,22 @@ At line:1 char:1 - - Identity + + Confirm - Unique identifier assigned to the policy when it is created. + Prompts you for confirmation before running the cmdlet. - String + SwitchParameter - String + SwitchParameter - None + False Force + > Applicable: Microsoft Teams Suppresses any confirmation prompts that would otherwise be displayed before making changes. SwitchParameter @@ -28863,22 +30576,22 @@ At line:1 char:1 False - - WhatIf + + Identity - Shows what would happen if the cmdlet runs. The cmdlet is not run. + Unique identifier assigned to the policy when it is created. - SwitchParameter + String - SwitchParameter + String - False + None - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -28914,23 +30627,23 @@ At line:1 char:1 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamssharedcallingroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamssharedcallingroutingpolicy Get-CsTeamsSharedCallingRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamssharedcallingroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamssharedcallingroutingpolicy Grant-CsTeamsSharedCallingRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamssharedcallingroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamssharedcallingroutingpolicy Set-CsTeamsSharedCallingRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamssharedcallingroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamssharedcallingroutingpolicy New-CsTeamsSharedCallingRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamssharedcallingroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamssharedcallingroutingpolicy @@ -28941,16 +30654,18 @@ At line:1 char:1 CsTeamsShiftsPolicy The `Remove-CsTeamsShiftsPolicy` cmdlet removes a previously created TeamsShiftsPolicy. - Note: A TeamsShiftsPolicy needs to be unassigned from all the users before it can be deleted. - + + Note: A TeamsShiftsPolicy needs to be unassigned from all the users before it can be deleted. + Remove-CsTeamsShiftsPolicy Identity + > Applicable: Microsoft Teams Policy instance name. XdsIdentity @@ -28966,6 +30681,7 @@ At line:1 char:1 Identity + > Applicable: Microsoft Teams Policy instance name. XdsIdentity @@ -29013,23 +30729,23 @@ At line:1 char:1 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-teamsshiftspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-teamsshiftspolicy Get-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftspolicy New-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsshiftspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftspolicy Set-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsshiftspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftspolicy Grant-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsshiftspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsshiftspolicy @@ -29198,19 +30914,19 @@ At line:1 char:1 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamstemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamstemplatepermissionpolicy Get-CsTeamsTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamstemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamstemplatepermissionpolicy New-CsTeamsTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamstemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamstemplatepermissionpolicy Set-CsTeamsTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamstemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstemplatepermissionpolicy @@ -29363,7 +31079,7 @@ At line:1 char:1 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamsupdatemanagementpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsupdatemanagementpolicy @@ -29516,7 +31232,7 @@ At line:1 char:1 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamsvdipolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsvdipolicy @@ -29595,152 +31311,164 @@ At line:1 char:1 False - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - Name of the new policy instance to be created. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - System.String - - - - - - - - - - System.Void - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\>Remove-CsTeamsVirtualAppointmentsPolicy -Identity Foobar - - Deletes a given policy instance with the Identity Foobar. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamsvirtualappointmentspolicy - - - Get-CsTeamsVirtualAppointmentsPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsvirtualappointmentspolicy - - - New-CsTeamsVirtualAppointmentsPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsvirtualappointmentspolicy - - - Set-CsTeamsVirtualAppointmentsPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsvirtualappointmentspolicy - - - Grant-CsTeamsVirtualAppointmentsPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsvirtualappointmentspolicy - - - - - - Remove-CsTeamsVoiceApplicationsPolicy - Remove - CsTeamsVoiceApplicationsPolicy - - Deletes an existing Teams voice applications policy. - - - - TeamsVoiceApplicationsPolicy is used for Supervisor Delegated Administration which allows tenant admins to permit certain users to make changes to auto attendant and call queue configurations. - - - - Remove-CsTeamsVoiceApplicationsPolicy - - Identity - - Unique identifier assigned to the policy when it was created. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - - + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Name of the new policy instance to be created. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + System.Void + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\>Remove-CsTeamsVirtualAppointmentsPolicy -Identity Foobar + + Deletes a given policy instance with the Identity Foobar. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsvirtualappointmentspolicy + + + Get-CsTeamsVirtualAppointmentsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsvirtualappointmentspolicy + + + New-CsTeamsVirtualAppointmentsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsvirtualappointmentspolicy + + + Set-CsTeamsVirtualAppointmentsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsvirtualappointmentspolicy + + + Grant-CsTeamsVirtualAppointmentsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsvirtualappointmentspolicy + + + + + + Remove-CsTeamsVoiceApplicationsPolicy + Remove + CsTeamsVoiceApplicationsPolicy + + Deletes an existing Teams voice applications policy. + + + + TeamsVoiceApplicationsPolicy is used for Supervisor Delegated Administration which allows tenant admins to permit certain users to make changes to auto attendant and call queue configurations. + + + + Remove-CsTeamsVoiceApplicationsPolicy + + Identity + + Unique identifier assigned to the policy when it was created. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + Identity @@ -29765,18 +31493,6 @@ At line:1 char:1 False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - @@ -29822,23 +31538,23 @@ At line:1 char:1 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamsvoiceapplicationspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsvoiceapplicationspolicy Get-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsvoiceapplicationspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsvoiceapplicationspolicy Grant-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsvoiceapplicationspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsvoiceapplicationspolicy Set-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsvoiceapplicationspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsvoiceapplicationspolicy New-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsvoiceapplicationspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsvoiceapplicationspolicy @@ -29991,23 +31707,23 @@ At line:1 char:1 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamsworklocationdetectionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsworklocationdetectionpolicy Get-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsworklocationdetectionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsworklocationdetectionpolicy New-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsworklocationdetectionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsworklocationdetectionpolicy Set-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsworklocationdetectionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsworklocationdetectionpolicy Grant-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsworklocationdetectionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsworklocationdetectionpolicy @@ -30017,20 +31733,21 @@ At line:1 char:1 Set CsExternalAccessPolicy - Enables you to modify the properties of an existing external access policy. External access policies determine whether or not your users can: 1) communicate with users who have Session Initiation Protocol (SIP) accounts with a federated organization; 2) communicate with users who are using custom applications built with Azure Communication Services (https://learn.microsoft.com/azure/communication-services/concepts/teams-interop); 3) access Skype for Business Server over the Internet, without having to log on to your internal network; 4) communicate with users who have SIP accounts with a public instant messaging (IM) provider such as Skype; and, 5)communicate with people who are using Teams with an account that's not managed by an organization. - This cmdlet was introduced in Lync Server 2010. + Enables you to modify the properties of an existing external access policy. + This cmdlet was introduced in Lync Server 2010. When you install Skype for Business Server your users are only allowed to exchange instant messages and presence information among themselves: by default, they can only communicate with people who have SIP accounts in your Active Directory Domain Services. In addition, users are not allowed to access Skype for Business Server over the Internet; instead, they must be logged on to your internal network before they will be able to log on to Skype for Business Server. That might be sufficient to meet your communication needs. If it doesn't meet your needs, you can use external access policies to extend the ability of your users to communicate and collaborate. External access policies can grant (or revoke) the ability of your users to do any or all of the following: 1. Communicate with people who have SIP accounts with a federated organization. Note that enabling federation alone will not provide users with this capability. Instead, you must enable federation and then assign users an external access policy that gives them the right to communicate with federated users. - 2. (Microsoft Teams only) Communicate with users who are using custom applications built with Azure Communication Services (ACS) (https://learn.microsoft.com/azure/communication-services/concepts/teams-interop). this policy setting only applies if acs federation has been enabled at the tenant level using the [Set-CsTeamsAcsFederationConfiguration](https://learn.microsoft.com/powershell/module/teams/set-csteamsacsfederationconfiguration)cmdlet. + 2. (Microsoft Teams only) Communicate with users who are using custom applications built with Azure Communication Services (ACS) (https://learn.microsoft.com/azure/communication-services/concepts/teams-interop). this policy setting only applies if acs federation has been enabled at the tenant level using the [Set-CsTeamsAcsFederationConfiguration](https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsacsfederationconfiguration)cmdlet. 3. Access Skype for Business Server over the Internet, without having to first log on to your internal network. This enables your users to use Skype for Business and log on to Skype for Business Server from an Internet café or other remote location. 4. Communicate with people who have SIP accounts with a public instant messaging service such as Skype. The following parameters are not applicable to Skype for Business Online/Microsoft Teams: Description, EnableXmppAccess, Force, Identity, Instance, PipelineVariable, and Tenant - 5. (Microsoft Teams Only) Communicate with people who are using Teams with an account that's not managed by an organization. This policy only applies if Teams Consumer Federation has been enabled at the tenant level using the Set-CsTeamsAcsFederationConfiguration (https://learn.microsoft.com/powershell/module/teams/set-csteamsacsfederationconfiguration)cmdlet or Teams admin center under the External Access setting. - After an external access policy has been created, you can use the `Set-CsExternalAccessPolicy` cmdlet to change the property values of that policy. For example, by default the global policy does not allow users to communicate with people who have accounts with a federated organization. If you would like to grant this capability to all of your users you can call the `Set-CsExternalAccessPolicy` cmdlet and set the value of the global policy's EnableFederationAccess property to True. + 5. (Microsoft Teams Only) Communicate with people who are using Teams with an account that's not managed by an organization. This policy only applies if Teams Consumer Federation has been enabled at the tenant level using the Set-CsTeamsAcsFederationConfiguration (https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsacsfederationconfiguration)cmdlet or Teams admin center under the External Access setting. + After an external access policy has been created, you can use the `Set-CsExternalAccessPolicy` cmdlet to change the property values of that policy. For example, by default the global policy does not allow users to communicate with people who have accounts with a federated organization. If you would like to grant this capability to all of your users you can call the `Set-CsExternalAccessPolicy` cmdlet and set the value of the global policy's EnableFederationAccess property to True. + > [!NOTE] > For the domain settings defined under `AllowFederatedUsers` to be applied, the value of the property `AllowedFederatedUsers` under `TenantFederationConfiguration` should be set to `True` for the Tenant. @@ -30038,6 +31755,7 @@ At line:1 char:1 Identity + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 Unique identifier for the external access policy to be modified. External access policies can be configured at the global, site, or per-user scopes. To modify the global policy, use this syntax: `-Identity global`. To modify a site policy, use syntax similar to this: `-Identity site:Redmond`. To modify a per-user policy, use syntax similar to this: `-Identity SalesAccessPolicy`. If this parameter is not specified then the global policy will be modified. Note that wildcards are not allowed when specifying an Identity. @@ -30048,22 +31766,12 @@ At line:1 char:1 None - - Instance - - Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. - - PSObject - - PSObject - - - None - AllowedExternalDomains - Indicates the domains that are allowed to communicate with the users of this policy. This is referenced only when `CommunicationWithExternalOrgs` is set to be `AllowSpecificExternalDomains` + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + > [!NOTE] > Please note that this parameter is in Public Preview. + Specifies the external domains allowed to communicate with users assigned to this policy. This setting is applicable only when `CommunicationWithExternalOrgs` is configured to `AllowSpecificExternalDomains`. This setting can be modified only in custom policy. In Global (default) policy `CommunicationWithExternalOrgs` can only be set to `OrganizationDefault` and cannot be changed. List @@ -30075,7 +31783,9 @@ At line:1 char:1 BlockedExternalDomains - Indicates the domains that are blocked from communicating with the users of this policy. This is referenced only when `CommunicationWithExternalOrgs` is set to be `BlockSpecificExternalDomains` + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + > [!NOTE] > Please note that this parameter is in Public Preview. + Specifies the external domains blocked from communicating with users assigned to this policy. This setting is applicable only when `CommunicationWithExternalOrgs` is configured to `BlockSpecificExternalDomains`. This setting can be modified only in custom policy. In Global (default) policy `CommunicationWithExternalOrgs` can only be set to `OrganizationDefault` and cannot be changed. List @@ -30087,12 +31797,16 @@ At line:1 char:1 CommunicationWithExternalOrgs + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + > [!NOTE] > Please note that this parameter is in Public Preview. Indicates how the users get assigned by this policy can communicate with the external orgs. There are 5 options: - - OrganizationDefault: the users of this policy will follow the federation settings defined in TenantFederationConfiguration. - - AllowAllExternalDomains: the users are open to communicate with all domains. - - AllowSpecificExternalDomains: the users can only communicate with the users of the domains defined in `AllowedExternalDomains`. - - BlockSpecificExternalDomains: only users from the domains defined in `BlockedExternalDomains` are blocked from communicating with the users of this policy. - - BlockAllExternalDomains: the users are not able to communicate with any external domains. + - OrganizationDefault: users follow the federation settings specified in `TenantFederationConfiguration`. This is the default value. + - AllowAllExternalDomains: users are allowed to communicate with all domains. + - AllowSpecificExternalDomains: users can communicate with external domains listed in `AllowedExternalDomains`. + - BlockSpecificExternalDomains: users are blocked from communicating with domains listed in `BlockedExternalDomains`. + - BlockAllExternalDomains: users cannot communicate with any external domains. + + The setting is only applicable when `EnableFederationAccess` is set to true. This setting can only be modified in custom policies. In the Global (default) policy, it is fixed to `OrganizationDefault` and cannot be changed. String @@ -30104,6 +31818,7 @@ At line:1 char:1 Confirm + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 Prompts you for confirmation before executing the command. @@ -30115,6 +31830,7 @@ At line:1 char:1 Description + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 Enables administrators to provide additional text to accompany the policy. For example, the Description might include information about the users the policy should be assigned to. String @@ -30127,6 +31843,7 @@ At line:1 char:1 EnableAcsFederationAccess + > Applicable: Microsoft Teams Indicates whether Teams meeting organized by the user can be joined by users of customer applications built using Azure Communication Services (ACS). This policy setting only applies if ACS Teams federation has been enabled at the tenant level using the cmdlet Set-CsTeamsAcsFederationConfiguration. Additionally, Azure Communication Services users would be able to call Microsoft 365 users that have assigned policies with enabled federation. To enable for all users, use the Set-CsExternalAccessPolicy cmdlet to update the global policy, setting the value to True. It can be disabled for selected users by assigning them a policy with federation disabled. @@ -30142,6 +31859,7 @@ At line:1 char:1 EnableFederationAccess + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 Indicates whether the user is allowed to communicate with people who have SIP accounts with a federated organization. Read Manage external access in Microsoft Teams (https://learn.microsoft.com/microsoftteams/manage-external-access)to get more information about the effect of this parameter in Microsoft Teams. The default value is True. Boolean @@ -30154,6 +31872,7 @@ At line:1 char:1 EnableOutsideAccess + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 Indicates whether the user is allowed to connect to Skype for Business Server over the Internet, without logging on to the organization's internal network. The default value is False. Boolean @@ -30163,21 +31882,10 @@ At line:1 char:1 None - - EnablePublicCloudAccess - - Indicates whether the user is allowed to communicate with people who have SIP accounts with a public Internet connectivity provider such as MSN. Read Manage external access in Microsoft Teams (https://learn.microsoft.com/microsoftteams/manage-external-access)to get more information about the effect of this parameter in Microsoft Teams. The default value is False. - - Boolean - - Boolean - - - None - EnablePublicCloudAudioVideoAccess + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 Indicates whether the user is allowed to conduct audio/video conversations with people who have SIP accounts with a public Internet connectivity provider such as MSN. When set to False, audio and video options in Skype for Business will be disabled any time a user is communicating with a public Internet connectivity contact. The default value is False. Boolean @@ -30190,6 +31898,7 @@ At line:1 char:1 EnableTeamsConsumerAccess + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 (Microsoft Teams Only) Indicates whether the user is allowed to communicate with people who have who are using Teams with an account that's not managed by an organization. To enable just for a selected set of users, use the Set-CsExternalAccessPolicy cmdlet to update the global policy, setting the value to False. Then assign selected users a policy with federation enabled. Read Manage external access in Microsoft Teams (https://learn.microsoft.com/microsoftteams/manage-external-access)to get more information about the effect of this parameter in Microsoft Teams. The default value is True. @@ -30204,6 +31913,7 @@ At line:1 char:1 EnableTeamsConsumerInbound + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 (Microsoft Teams Only) Indicates whether the user is allowed to be discoverable by people who are using Teams with an account that's not managed by an organization. It also controls if people who have who are using Teams with an account that's not managed by an organization can start the communication with the user. To enable just for a selected set of users, use the Set-CsExternalAccessPolicy cmdlet to update the global policy, setting the value to False. Then assign selected users a policy with federation enabled. Read Manage external access in Microsoft Teams (https://learn.microsoft.com/microsoftteams/manage-external-access)to get more information about the effect of this parameter in Microsoft Teams. The default value is True. @@ -30230,6 +31940,7 @@ At line:1 char:1 EnableXmppAccess + > Applicable: Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 Indicates whether the user is allowed to communicate with users who have SIP accounts with a federated XMPP (Extensible Messaging and Presence Protocol) partner. The default value is False. Boolean @@ -30243,17 +31954,22 @@ At line:1 char:1 FederatedBilateralChats This setting enables bi-lateral chats for the users included in the messaging policy. + Some organizations may want to restrict who users are able to message in Teams. While organizations have always been able to limit users' chats to only other internal users, organizations can now limit users' chat ability to only chat with other internal users and users in one other organization via the bilateral chat policy. + Once external access and bilateral policy is set up, users with the policy can be in external group chats only with a maximum of two organizations. When they try to create a new external chat with users from more than two tenants or add a user from a third tenant to an existing external chat, a system message will be shown preventing this action. + Users with bilateral policy applied are also removed from existing external group chats with more than two organizations. + This policy doesn't apply to meetings, meeting chats, or channels. Boolean Boolean - True + False Force + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 Suppresses the display of any non-fatal error message that might occur when running the command. @@ -30262,6 +31978,19 @@ At line:1 char:1 False + + Instance + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. + + PSObject + + PSObject + + + None + RestrictTeamsConsumerAccessToExternalUserProfiles @@ -30292,6 +32021,7 @@ At line:1 char:1 WhatIf + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 Describes what would happen if you executed the command without actually executing the command. @@ -30303,35 +32033,12 @@ At line:1 char:1 - - Identity - - Unique identifier for the external access policy to be modified. External access policies can be configured at the global, site, or per-user scopes. To modify the global policy, use this syntax: `-Identity global`. To modify a site policy, use syntax similar to this: `-Identity site:Redmond`. To modify a per-user policy, use syntax similar to this: `-Identity SalesAccessPolicy`. If this parameter is not specified then the global policy will be modified. - Note that wildcards are not allowed when specifying an Identity. - - XdsIdentity - - XdsIdentity - - - None - - - Instance - - Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. - - PSObject - - PSObject - - - None - AllowedExternalDomains - Indicates the domains that are allowed to communicate with the users of this policy. This is referenced only when `CommunicationWithExternalOrgs` is set to be `AllowSpecificExternalDomains` + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + > [!NOTE] > Please note that this parameter is in Public Preview. + Specifies the external domains allowed to communicate with users assigned to this policy. This setting is applicable only when `CommunicationWithExternalOrgs` is configured to `AllowSpecificExternalDomains`. This setting can be modified only in custom policy. In Global (default) policy `CommunicationWithExternalOrgs` can only be set to `OrganizationDefault` and cannot be changed. List @@ -30343,7 +32050,9 @@ At line:1 char:1 BlockedExternalDomains - Indicates the domains that are blocked from communicating with the users of this policy. This is referenced only when `CommunicationWithExternalOrgs` is set to be `BlockSpecificExternalDomains` + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + > [!NOTE] > Please note that this parameter is in Public Preview. + Specifies the external domains blocked from communicating with users assigned to this policy. This setting is applicable only when `CommunicationWithExternalOrgs` is configured to `BlockSpecificExternalDomains`. This setting can be modified only in custom policy. In Global (default) policy `CommunicationWithExternalOrgs` can only be set to `OrganizationDefault` and cannot be changed. List @@ -30355,12 +32064,16 @@ At line:1 char:1 CommunicationWithExternalOrgs + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + > [!NOTE] > Please note that this parameter is in Public Preview. Indicates how the users get assigned by this policy can communicate with the external orgs. There are 5 options: - - OrganizationDefault: the users of this policy will follow the federation settings defined in TenantFederationConfiguration. - - AllowAllExternalDomains: the users are open to communicate with all domains. - - AllowSpecificExternalDomains: the users can only communicate with the users of the domains defined in `AllowedExternalDomains`. - - BlockSpecificExternalDomains: only users from the domains defined in `BlockedExternalDomains` are blocked from communicating with the users of this policy. - - BlockAllExternalDomains: the users are not able to communicate with any external domains. + - OrganizationDefault: users follow the federation settings specified in `TenantFederationConfiguration`. This is the default value. + - AllowAllExternalDomains: users are allowed to communicate with all domains. + - AllowSpecificExternalDomains: users can communicate with external domains listed in `AllowedExternalDomains`. + - BlockSpecificExternalDomains: users are blocked from communicating with domains listed in `BlockedExternalDomains`. + - BlockAllExternalDomains: users cannot communicate with any external domains. + + The setting is only applicable when `EnableFederationAccess` is set to true. This setting can only be modified in custom policies. In the Global (default) policy, it is fixed to `OrganizationDefault` and cannot be changed. String @@ -30372,6 +32085,7 @@ At line:1 char:1 Confirm + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 Prompts you for confirmation before executing the command. SwitchParameter @@ -30384,6 +32098,7 @@ At line:1 char:1 Description + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 Enables administrators to provide additional text to accompany the policy. For example, the Description might include information about the users the policy should be assigned to. String @@ -30396,6 +32111,7 @@ At line:1 char:1 EnableAcsFederationAccess + > Applicable: Microsoft Teams Indicates whether Teams meeting organized by the user can be joined by users of customer applications built using Azure Communication Services (ACS). This policy setting only applies if ACS Teams federation has been enabled at the tenant level using the cmdlet Set-CsTeamsAcsFederationConfiguration. Additionally, Azure Communication Services users would be able to call Microsoft 365 users that have assigned policies with enabled federation. To enable for all users, use the Set-CsExternalAccessPolicy cmdlet to update the global policy, setting the value to True. It can be disabled for selected users by assigning them a policy with federation disabled. @@ -30411,6 +32127,7 @@ At line:1 char:1 EnableFederationAccess + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 Indicates whether the user is allowed to communicate with people who have SIP accounts with a federated organization. Read Manage external access in Microsoft Teams (https://learn.microsoft.com/microsoftteams/manage-external-access)to get more information about the effect of this parameter in Microsoft Teams. The default value is True. Boolean @@ -30423,6 +32140,7 @@ At line:1 char:1 EnableOutsideAccess + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 Indicates whether the user is allowed to connect to Skype for Business Server over the Internet, without logging on to the organization's internal network. The default value is False. Boolean @@ -30432,21 +32150,10 @@ At line:1 char:1 None - - EnablePublicCloudAccess - - Indicates whether the user is allowed to communicate with people who have SIP accounts with a public Internet connectivity provider such as MSN. Read Manage external access in Microsoft Teams (https://learn.microsoft.com/microsoftteams/manage-external-access)to get more information about the effect of this parameter in Microsoft Teams. The default value is False. - - Boolean - - Boolean - - - None - EnablePublicCloudAudioVideoAccess + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 Indicates whether the user is allowed to conduct audio/video conversations with people who have SIP accounts with a public Internet connectivity provider such as MSN. When set to False, audio and video options in Skype for Business will be disabled any time a user is communicating with a public Internet connectivity contact. The default value is False. Boolean @@ -30459,6 +32166,7 @@ At line:1 char:1 EnableTeamsConsumerAccess + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 (Microsoft Teams Only) Indicates whether the user is allowed to communicate with people who have who are using Teams with an account that's not managed by an organization. To enable just for a selected set of users, use the Set-CsExternalAccessPolicy cmdlet to update the global policy, setting the value to False. Then assign selected users a policy with federation enabled. Read Manage external access in Microsoft Teams (https://learn.microsoft.com/microsoftteams/manage-external-access)to get more information about the effect of this parameter in Microsoft Teams. The default value is True. @@ -30473,6 +32181,7 @@ At line:1 char:1 EnableTeamsConsumerInbound + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 (Microsoft Teams Only) Indicates whether the user is allowed to be discoverable by people who are using Teams with an account that's not managed by an organization. It also controls if people who have who are using Teams with an account that's not managed by an organization can start the communication with the user. To enable just for a selected set of users, use the Set-CsExternalAccessPolicy cmdlet to update the global policy, setting the value to False. Then assign selected users a policy with federation enabled. Read Manage external access in Microsoft Teams (https://learn.microsoft.com/microsoftteams/manage-external-access)to get more information about the effect of this parameter in Microsoft Teams. The default value is True. @@ -30499,6 +32208,7 @@ At line:1 char:1 EnableXmppAccess + > Applicable: Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 Indicates whether the user is allowed to communicate with users who have SIP accounts with a federated XMPP (Extensible Messaging and Presence Protocol) partner. The default value is False. Boolean @@ -30512,17 +32222,22 @@ At line:1 char:1 FederatedBilateralChats This setting enables bi-lateral chats for the users included in the messaging policy. + Some organizations may want to restrict who users are able to message in Teams. While organizations have always been able to limit users' chats to only other internal users, organizations can now limit users' chat ability to only chat with other internal users and users in one other organization via the bilateral chat policy. + Once external access and bilateral policy is set up, users with the policy can be in external group chats only with a maximum of two organizations. When they try to create a new external chat with users from more than two tenants or add a user from a third tenant to an existing external chat, a system message will be shown preventing this action. + Users with bilateral policy applied are also removed from existing external group chats with more than two organizations. + This policy doesn't apply to meetings, meeting chats, or channels. Boolean Boolean - True + False Force + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 Suppresses the display of any non-fatal error message that might occur when running the command. SwitchParameter @@ -30532,6 +32247,33 @@ At line:1 char:1 False + + Identity + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Unique identifier for the external access policy to be modified. External access policies can be configured at the global, site, or per-user scopes. To modify the global policy, use this syntax: `-Identity global`. To modify a site policy, use syntax similar to this: `-Identity site:Redmond`. To modify a per-user policy, use syntax similar to this: `-Identity SalesAccessPolicy`. If this parameter is not specified then the global policy will be modified. + Note that wildcards are not allowed when specifying an Identity. + + XdsIdentity + + XdsIdentity + + + None + + + Instance + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. + + PSObject + + PSObject + + + None + RestrictTeamsConsumerAccessToExternalUserProfiles @@ -30562,6 +32304,7 @@ At line:1 char:1 WhatIf + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 Describes what would happen if you executed the command without actually executing the command. SwitchParameter @@ -30599,35 +32342,28 @@ At line:1 char:1 - -------------------------- Example 1 ------------------------ + -------------------------- Example 1 -------------------------- Set-CsExternalAccessPolicy -Identity RedmondExternalAccessPolicy -EnableFederationAccess $True The command shown in Example 1 modifies the per-user external access policy that has the Identity RedmondExternalAccessPolicy. In this example, the command changes the value of the EnableFederationAccess property to True. - -------------------------- Example 2 ------------------------ + -------------------------- Example 2 -------------------------- Get-CsExternalAccessPolicy | Set-CsExternalAccessPolicy -EnableFederationAccess $True In Example 2, federation access is enabled for all the external access policies configured for use in the organization. To do this, the command first calls the `Get-CsExternalAccessPolicy` cmdlet without any parameters; this returns a collection of all the external policies currently configured for use. That collection is then piped to the `Set-CsExternalAccessPolicy` cmdlet, which changes the value of the EnableFederationAccess property for each policy in the collection. - -------------------------- Example 3 ------------------------ + -------------------------- Example 3 -------------------------- Get-CsExternalAccessPolicy -Filter tag:* | Set-CsExternalAccessPolicy -EnableFederationAccess $True - Example 3 enables federation access for all the external access policies that have been configured at the per-user scope. To carry out this task, the first thing the command does is use the `Get-CsExternalAcessPolicy` cmdlet and the Filter parameter to return a collection of all the policies that have been configured at the per-user scope. (The filter value "tag:*" limits returned data to policies that have an Identity that begins with the string value "tag:". Any policy with an Identity that begins with "tag:" has been configured at the per-user scope.) The filtered collection is then piped to the `Set-CsExternalAccessPolicy` cmdlet, which modifies the EnableFederationAccess property for each policy in the collection. - - - - -------------------------- Example 4 ------------------------ - Get-CsExternalAccessPolicy | Where-Object {$_.EnablePublicCloudAccess -eq $True} | Set-CsExternalAccessPolicy -EnableFederationAccess $True - - In Example 4, federation access is enabled for all the external access policies that allow public cloud access. To do this, the command first uses the `Get-CsExternalAccessPolicy` cmdlet to return a collection of all the external access policies currently configured for use in the organization. This collection is piped to the `Where-Object` cmdlet, which picks out only those policies where the EnablePublicCloudAccess property is equal to True. The filtered collection is then piped to the `Set-CsExternalAccessPolicy` cmdlet, which takes each policy and sets the EnableFederationAccess property to True. The net result: all external access policies that allow public cloud access will also allow federation access. + Example 3 enables federation access for all the external access policies that have been configured at the per-user scope. To carry out this task, the first thing the command does is use the `Get-CsExternalAccessPolicy` cmdlet and the Filter parameter to return a collection of all the policies that have been configured at the per-user scope. (The filter value "tag:*" limits returned data to policies that have an Identity that begins with the string value "tag:". Any policy with an Identity that begins with "tag:" has been configured at the per-user scope.) The filtered collection is then piped to the `Set-CsExternalAccessPolicy` cmdlet, which modifies the EnableFederationAccess property for each policy in the collection. - -------------------------- Example 5 ------------------------ + -------------------------- Example 4 -------------------------- Set-CsExternalAccessPolicy -Identity Global -EnableAcsFederationAccess $false New-CsExternalAccessPolicy -Identity AcsFederationAllowed -EnableAcsFederationAccess $true @@ -30635,7 +32371,7 @@ New-CsExternalAccessPolicy -Identity AcsFederationAllowed -EnableAcsFederationAc - -------------------------- Example 5 ------------------------ + -------------------------- Example 5 -------------------------- Set-CsExternalAccessPolicy -Identity Global -EnableAcsFederationAccess $true New-CsExternalAccessPolicy -Identity AcsFederationNotAllowed -EnableAcsFederationAccess $false @@ -30643,34 +32379,34 @@ New-CsExternalAccessPolicy -Identity AcsFederationNotAllowed -EnableAcsFederatio - -------------------------- Example 6 ------------------------ + -------------------------- Example 6 -------------------------- New-CsExternalAccessPolicy -Identity GranularFederationExample -CommunicationWithExternalOrgs "AllowSpecificExternalDomains" -AllowedExternalDomains @("example1.com", "example2.com") Set-CsTenantFederationConfiguration -CustomizeFederation $true - In this example, we create an ExternalAccessPolicy named "GranularFederationExample" that allows communication with specific external domains, namely `example1.com` and `example2.com`. The federation policy is set to restrict communication to only these allowed domains. After that, we still have to enable the `CustomizeFederation` setting in the TenantFederationConfiguration to allow the federation settings as defined in the ExternalAccessPolicy to work. + In this example, we create an ExternalAccessPolicy named "GranularFederationExample" that allows communication with specific external domains, namely `example1.com` and `example2.com`. The federation policy is set to restrict communication to only these allowed domains. Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csexternalaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csexternalaccesspolicy Get-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/teams/get-csexternalaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csexternalaccesspolicy Grant-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csexternalaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csexternalaccesspolicy New-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/teams/new-csexternalaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csexternalaccesspolicy Remove-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csexternalaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csexternalaccesspolicy @@ -30680,7 +32416,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true Set CsOnlineVoicemailPolicy - Modifies an existing Online Voicemail policy. Online Voicemail policies determine whether or not voicemail transcription, profanity masking for the voicemail transcriptions, translation for the voicemail transcriptions, and editing call answer rule settings are enabled for a user. The policies also specify the voicemail maximum recording length for a user and the primary and secondary voicemail system prompt languages. + Modifies an existing Online Voicemail policy. @@ -30701,6 +32437,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true Identity + > Applicable: Microsoft Teams A unique identifier specifying the scope, and in some cases the name, of the policy. String @@ -30710,9 +32447,34 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true None + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. + + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text about the policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + EnableEditingCallAnswerRulesSetting + > Applicable: Microsoft Teams Controls if editing call answer rule settings are enabled or disabled for a user. Possible values are $true or $false. Boolean @@ -30725,6 +32487,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true EnableTranscription + > Applicable: Microsoft Teams Allows you to disable or enable voicemail transcription. Possible values are $true or $false. Boolean @@ -30737,6 +32500,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true EnableTranscriptionProfanityMasking + > Applicable: Microsoft Teams Allows you to disable or enable profanity masking for the voicemail transcriptions. Possible values are $true or $false. Boolean @@ -30749,6 +32513,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true EnableTranscriptionTranslation + > Applicable: Microsoft Teams Allows you to disable or enable translation for the voicemail transcriptions. Possible values are $true or $false. Boolean @@ -30761,6 +32526,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true MaximumRecordingLength + > Applicable: Microsoft Teams A duration of voicemail maximum recording length. The length should be between 30 seconds to 10 minutes. Duration @@ -30773,6 +32539,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true PostambleAudioFile + > Applicable: Microsoft Teams The audio file to play to the caller after the user's voicemail greeting has played and before the caller is allowed to leave a voicemail message. String @@ -30785,6 +32552,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true PreambleAudioFile + > Applicable: Microsoft Teams The audio file to play to the caller before the user's voicemail greeting is played. String @@ -30797,6 +32565,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true PreamblePostambleMandatory + > Applicable: Microsoft Teams Is playing the Pre- or Post-amble mandatory before the caller can leave a message. Boolean @@ -30809,7 +32578,8 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true PrimarySystemPromptLanguage - The primary (or first) language that voicemail system prompts will be presented in. Must also set SecondarySystemPromptLanguage. When set, this overrides the user language choice. See Set-CsOnlineVoicemailUserSettings (https://learn.microsoft.com/powershell/module/teams/set-csonlinevoicemailusersettings)-PromptLanguage for supported languages. + > Applicable: Microsoft Teams + The primary (or first) language that voicemail system prompts will be presented in. Must also set SecondarySystemPromptLanguage. When set, this overrides the user language choice. See Set-CsOnlineVoicemailUserSettings (https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailusersettings)-PromptLanguage for supported languages. String @@ -30821,7 +32591,8 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true SecondarySystemPromptLanguage - The secondary language that voicemail system prompts will be presented in. Must also set PrimarySystemPromptLanguage and may not be the same value as PrimarySystemPromptanguage. When set, this overrides the user language choice. See Set-CsOnlineVoicemailUserSettings (https://learn.microsoft.com/powershell/module/teams/set-csonlinevoicemailusersettings)-PromptLanguage for supported languages. + > Applicable: Microsoft Teams + The secondary language that voicemail system prompts will be presented in. Must also set PrimarySystemPromptLanguage and may not be the same value as PrimarySystemPromptanguage. When set, this overrides the user language choice. See Set-CsOnlineVoicemailUserSettings (https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailusersettings)-PromptLanguage for supported languages. String @@ -30833,6 +32604,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true ShareData + > Applicable: Microsoft Teams Specifies whether voicemail and transcription data are shared with the service for training and improving accuracy. Possible values are Defer and Deny. String @@ -30845,6 +32617,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true WhatIf + > Applicable: Microsoft Teams Describes what would happen if you executed the command without actually executing the command. @@ -30853,36 +32626,26 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true False - - Confirm - - Prompts you for confirmation before executing the command. - - - SwitchParameter - - - False - - - Description - - Enables administrators to provide explanatory text about the policy. For example, the Description might indicate the users the policy should be assigned to. - - String - - String - - - None - - - Identity + + Confirm - A unique identifier specifying the scope, and in some cases the name, of the policy. + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text about the policy. For example, the Description might indicate the users the policy should be assigned to. String @@ -30894,6 +32657,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true EnableEditingCallAnswerRulesSetting + > Applicable: Microsoft Teams Controls if editing call answer rule settings are enabled or disabled for a user. Possible values are $true or $false. Boolean @@ -30906,6 +32670,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true EnableTranscription + > Applicable: Microsoft Teams Allows you to disable or enable voicemail transcription. Possible values are $true or $false. Boolean @@ -30918,6 +32683,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true EnableTranscriptionProfanityMasking + > Applicable: Microsoft Teams Allows you to disable or enable profanity masking for the voicemail transcriptions. Possible values are $true or $false. Boolean @@ -30930,6 +32696,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true EnableTranscriptionTranslation + > Applicable: Microsoft Teams Allows you to disable or enable translation for the voicemail transcriptions. Possible values are $true or $false. Boolean @@ -30939,9 +32706,23 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true None + + Identity + + > Applicable: Microsoft Teams + A unique identifier specifying the scope, and in some cases the name, of the policy. + + String + + String + + + None + MaximumRecordingLength + > Applicable: Microsoft Teams A duration of voicemail maximum recording length. The length should be between 30 seconds to 10 minutes. Duration @@ -30954,6 +32735,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true PostambleAudioFile + > Applicable: Microsoft Teams The audio file to play to the caller after the user's voicemail greeting has played and before the caller is allowed to leave a voicemail message. String @@ -30966,6 +32748,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true PreambleAudioFile + > Applicable: Microsoft Teams The audio file to play to the caller before the user's voicemail greeting is played. String @@ -30978,6 +32761,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true PreamblePostambleMandatory + > Applicable: Microsoft Teams Is playing the Pre- or Post-amble mandatory before the caller can leave a message. Boolean @@ -30990,7 +32774,8 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true PrimarySystemPromptLanguage - The primary (or first) language that voicemail system prompts will be presented in. Must also set SecondarySystemPromptLanguage. When set, this overrides the user language choice. See Set-CsOnlineVoicemailUserSettings (https://learn.microsoft.com/powershell/module/teams/set-csonlinevoicemailusersettings)-PromptLanguage for supported languages. + > Applicable: Microsoft Teams + The primary (or first) language that voicemail system prompts will be presented in. Must also set SecondarySystemPromptLanguage. When set, this overrides the user language choice. See Set-CsOnlineVoicemailUserSettings (https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailusersettings)-PromptLanguage for supported languages. String @@ -31002,7 +32787,8 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true SecondarySystemPromptLanguage - The secondary language that voicemail system prompts will be presented in. Must also set PrimarySystemPromptLanguage and may not be the same value as PrimarySystemPromptanguage. When set, this overrides the user language choice. See Set-CsOnlineVoicemailUserSettings (https://learn.microsoft.com/powershell/module/teams/set-csonlinevoicemailusersettings)-PromptLanguage for supported languages. + > Applicable: Microsoft Teams + The secondary language that voicemail system prompts will be presented in. Must also set PrimarySystemPromptLanguage and may not be the same value as PrimarySystemPromptanguage. When set, this overrides the user language choice. See Set-CsOnlineVoicemailUserSettings (https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailusersettings)-PromptLanguage for supported languages. String @@ -31014,6 +32800,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true ShareData + > Applicable: Microsoft Teams Specifies whether voicemail and transcription data are shared with the service for training and improving accuracy. Possible values are Defer and Deny. String @@ -31026,6 +32813,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true WhatIf + > Applicable: Microsoft Teams Describes what would happen if you executed the command without actually executing the command. SwitchParameter @@ -31035,30 +32823,6 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true False - - Confirm - - Prompts you for confirmation before executing the command. - - SwitchParameter - - SwitchParameter - - - False - - - Description - - Enables administrators to provide explanatory text about the policy. For example, the Description might indicate the users the policy should be assigned to. - - String - - String - - - None - @@ -31086,23 +32850,23 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csonlinevoicemailpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailpolicy Get-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/teams/get-csonlinevoicemailpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoicemailpolicy New-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/teams/new-csonlinevoicemailpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoicemailpolicy Remove-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csonlinevoicemailpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoicemailpolicy Grant-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csonlinevoicemailpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csonlinevoicemailpolicy @@ -31127,6 +32891,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true Identity + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 Unique identifier for the privacy configuration settings to be modified. To modify the global settings, use this syntax: `-Identity global` To modify settings configured at the site scope, use syntax similar to this: @@ -31146,6 +32911,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true AutoInitiateContacts + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 If True, Skype for Business will automatically add your manager and your direct reports to your Contacts list. The default value is True. Boolean @@ -31158,6 +32924,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true DisplayPublishedPhotoDefault + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 If True, the user's photo will automatically be published in Skype for Business. If False, the user's photo will not be available unless he or she explicitly selects the option Let others see my photo. The default value is True. Boolean @@ -31170,6 +32937,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true EnablePrivacyMode + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 If True, gives users the opportunity to enable the advanced privacy mode. In advanced privacy mode, only people on your Contacts list will be allowed to view your presence information. If False, your presence information will be available to anyone in your organization. The default value is False. For information about privacy mode in Microsoft Teams, see User presence in Teams (/microsoftteams/presence-admins). @@ -31180,21 +32948,10 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true None - - PublishLocationDataDefault - - If True, location data will automatically be published in Skype for Business. If False, location data will not be available unless the user explicitly selects the option Show Contacts My Location. The default value is True. - - Boolean - - Boolean - - - None - Force + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 Suppresses the display of any non-fatal error message that might occur when running the command. @@ -31203,20 +32960,23 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true False - - WhatIf + + PublishLocationDataDefault - Describes what would happen if you executed the command without actually executing the command. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + If True, location data will automatically be published in Skype for Business. If False, location data will not be available unless the user explicitly selects the option Show Contacts My Location. The default value is True. + Boolean - SwitchParameter + Boolean - False + None Confirm + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 Prompts you for confirmation before executing the command. @@ -31225,24 +32985,25 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true False - - - Set-CsPrivacyConfiguration - - Instance + + WhatIf - Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Describes what would happen if you executed the command without actually executing the command. - PSObject - PSObject + SwitchParameter - None + False + + + Set-CsPrivacyConfiguration AutoInitiateContacts + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 If True, Skype for Business will automatically add your manager and your direct reports to your Contacts list. The default value is True. Boolean @@ -31255,6 +33016,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true DisplayPublishedPhotoDefault + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 If True, the user's photo will automatically be published in Skype for Business. If False, the user's photo will not be available unless he or she explicitly selects the option Let others see my photo. The default value is True. Boolean @@ -31267,6 +33029,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true EnablePrivacyMode + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 If True, gives users the opportunity to enable the advanced privacy mode. In advanced privacy mode, only people on your Contacts list will be allowed to view your presence information. If False, your presence information will be available to anyone in your organization. The default value is False. For information about privacy mode in Microsoft Teams, see User presence in Teams (/microsoftteams/presence-admins). @@ -31278,32 +33041,48 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true None - PublishLocationDataDefault + Force - If True, location data will automatically be published in Skype for Business. If False, location data will not be available unless the user explicitly selects the option Show Contacts My Location. The default value is True. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Suppresses the display of any non-fatal error message that might occur when running the command. - Boolean - Boolean + SwitchParameter + + + False + + + Instance + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. + + PSObject + + PSObject None - Force + PublishLocationDataDefault - Suppresses the display of any non-fatal error message that might occur when running the command. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + If True, location data will automatically be published in Skype for Business. If False, location data will not be available unless the user explicitly selects the option Show Contacts My Location. The default value is True. + Boolean - SwitchParameter + Boolean - False + None - - WhatIf + + Confirm - Describes what would happen if you executed the command without actually executing the command. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Prompts you for confirmation before executing the command. SwitchParameter @@ -31311,10 +33090,11 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true False - - Confirm + + WhatIf - Prompts you for confirmation before executing the command. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Describes what would happen if you executed the command without actually executing the command. SwitchParameter @@ -31325,41 +33105,38 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true - - Identity + + AutoInitiateContacts - Unique identifier for the privacy configuration settings to be modified. To modify the global settings, use this syntax: - `-Identity global` - To modify settings configured at the site scope, use syntax similar to this: - `-Identity site:Redmond` - To modify settings at the service level, use syntax like this: - `-Identity service:Redmond-UserServices-1` - Note that privacy settings can only be applied to the User Server service. An error will occur if you try to apply these settings to any other service. - If this parameter is not specified then the global settings will be updated when you call the `Set-CsPrivacyConfiguration` cmdlet. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + If True, Skype for Business will automatically add your manager and your direct reports to your Contacts list. The default value is True. - XdsIdentity + Boolean - XdsIdentity + Boolean None - - Instance + + DisplayPublishedPhotoDefault - Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + If True, the user's photo will automatically be published in Skype for Business. If False, the user's photo will not be available unless he or she explicitly selects the option Let others see my photo. The default value is True. - PSObject + Boolean - PSObject + Boolean None - AutoInitiateContacts + EnablePrivacyMode - If True, Skype for Business will automatically add your manager and your direct reports to your Contacts list. The default value is True. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + If True, gives users the opportunity to enable the advanced privacy mode. In advanced privacy mode, only people on your Contacts list will be allowed to view your presence information. If False, your presence information will be available to anyone in your organization. The default value is False. + For information about privacy mode in Microsoft Teams, see User presence in Teams (/microsoftteams/presence-admins). Boolean @@ -31369,26 +33146,47 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true None - DisplayPublishedPhotoDefault + Force - If True, the user's photo will automatically be published in Skype for Business. If False, the user's photo will not be available unless he or she explicitly selects the option Let others see my photo. The default value is True. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Suppresses the display of any non-fatal error message that might occur when running the command. - Boolean + SwitchParameter - Boolean + SwitchParameter + + + False + + + Identity + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Unique identifier for the privacy configuration settings to be modified. To modify the global settings, use this syntax: + `-Identity global` + To modify settings configured at the site scope, use syntax similar to this: + `-Identity site:Redmond` + To modify settings at the service level, use syntax like this: + `-Identity service:Redmond-UserServices-1` + Note that privacy settings can only be applied to the User Server service. An error will occur if you try to apply these settings to any other service. + If this parameter is not specified then the global settings will be updated when you call the `Set-CsPrivacyConfiguration` cmdlet. + + XdsIdentity + + XdsIdentity None - - EnablePrivacyMode + + Instance - If True, gives users the opportunity to enable the advanced privacy mode. In advanced privacy mode, only people on your Contacts list will be allowed to view your presence information. If False, your presence information will be available to anyone in your organization. The default value is False. - For information about privacy mode in Microsoft Teams, see User presence in Teams (/microsoftteams/presence-admins). + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. - Boolean + PSObject - Boolean + PSObject None @@ -31396,6 +33194,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true PublishLocationDataDefault + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 If True, location data will automatically be published in Skype for Business. If False, location data will not be available unless the user explicitly selects the option Show Contacts My Location. The default value is True. Boolean @@ -31405,10 +33204,11 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true None - - Force + + Confirm - Suppresses the display of any non-fatal error message that might occur when running the command. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Prompts you for confirmation before executing the command. SwitchParameter @@ -31420,6 +33220,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true WhatIf + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 Describes what would happen if you executed the command without actually executing the command. SwitchParameter @@ -31429,33 +33230,21 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true False - - Confirm - - Prompts you for confirmation before executing the command. - - SwitchParameter - - SwitchParameter - - - False - - + Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.PrivacyConfiguration - Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.PrivacyConfiguration object. The `Set-CsPrivacyConfiguration` cmdlet accepts pipelined input of the privacy configuration object. + The `Set-CsPrivacyConfiguration` cmdlet accepts pipelined input of the privacy configuration object. - + None The `Set-CsPrivacyConfiguration` cmdlet does not return any objects or values. Instead, the cmdlet modifies existing instances of the Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.PrivacyConfiguration object. @@ -31469,21 +33258,21 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true - -------------------------- Example 1 ------------------------ + -------------------------- Example 1 -------------------------- Set-CsPrivacyConfiguration -Identity site:Redmond -EnablePrivacyMode $False -AutoInitiateContacts $True -PublishLocationDataDefault $True -DisplayPublishedPhotoDefault $True The command shown in Example 1 modifies three property values for the privacy configuration settings with the Identity site:Redmond. The three property values modified are AutoInitiateContacts, PublishLocationDataDefault and DisplayPublishedPhotoDefault. - -------------------------- Example 2 ------------------------ + -------------------------- Example 2 -------------------------- Get-CsPrivacyConfiguration | Set-CsPrivacyConfiguration -EnablePrivacyMode $True Example 2 enables privacy mode for all the privacy configuration settings currently in use in the organization. To do this, the command first calls the `Get-CsPrivacyConfiguration` cmdlet without any parameters; this returns the complete collection of privacy settings. This collection is then piped to the `Set-CsPrivacyConfiguration` cmdlet, which takes each item in the collection and sets the EnablePrivacyMode property to True. - -------------------------- Example 3 ------------------------ + -------------------------- Example 3 -------------------------- Get-CsPrivacyConfiguration | Where-Object {$_.EnablePrivacyMode -eq $False} | Set-CsPrivacyConfiguration -AutoInitiateContacts $True -PublishLocationDataDefault $True -DisplayPublishedPhotoDefault $True In Example 3, modifications are made to all the privacy configuration settings that are not currently using privacy mode. To carry out this task, the `Get-CsPrivacyConfiguration` cmdlet is first used in order to return a collection of all the privacy configuration settings. This collection is piped to the `Where-Object` cmdlet, which selects only those settings where the EnablePrivacyMode property is equal to False. The filtered collection is then piped to the `Set-CsPrivacyConfiguration` cmdlet, which assigns values to the AutoInitiateContacts, PublishLocationDataDefault, and DisplayPublishedPhotoDefault properties for each item in the collection. @@ -31493,7 +33282,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true Online Version: - https://learn.microsoft.com/powershell/module/skype/set-csprivacyconfiguration + https://learn.microsoft.com/powershell/module/skypeforbusiness/set-csprivacyconfiguration Get-CsPrivacyConfiguration @@ -31509,6 +33298,222 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true + + + Set-CsTeamsAcsFederationConfiguration + Set + CsTeamsAcsFederationConfiguration + + This cmdlet is used to manage the federation configuration between Teams and Azure Communication Services. For more information, please see Azure Communication Services and Teams Interoperability (https://learn.microsoft.com/azure/communication-services/concepts/teams-interop). + + + + Federation between Teams and Azure Communication Services (ACS) allows external users from ACS to connect and communicate with Teams users over voice and video. These custom applications may be used by end users or by bots, and there is no differentiation in how they appear to Teams users unless the developer of the application explicitly indicates this as part of the communication. For more information, see Teams interoperability (https://learn.microsoft.com/azure/communication-services/concepts/teams-interop). + This cmdlet is used to enable or disable Teams and ACS federation for a Teams tenant, and to specify which ACS resources can connect to Teams. Only listed ACS resources can be allowed. + You must be a Teams service admin or a Teams communication admin for your organization to run the cmdlet. + + + + Set-CsTeamsAcsFederationConfiguration + + AllowedAcsResources + + The list of the ACS resources (at least one) for which federation is enabled, when EnableAcsUsers is set to true. If EnableAcsUsers is set to false, then this list is ignored and should be null/empty. + The ACS resources are listed using their immutable resource id, which is a guid that can be found on the Azure portal. + + String[] + + String[] + + + Empty/Null + + + EnableAcsUsers + + Set to True to enable federation between Teams and ACS. When set to False, all other parameters are ignored. + + Boolean + + Boolean + + + False + + + HideBannerForAllowedAcsUsers + + This configuration controls the display of the 'limited call features' banner for Azure Communication Services users participating in Teams meetings or calls. Possible values are: True, False. Set to True to hide the banner for allowed ACS users in Teams meetings or calls. + + Boolean + + Boolean + + + False + + + Identity + + Specifies the collection of tenant federation configuration settings to be modified. Because each tenant is limited to a single, global collection of federation settings there is no need include this parameter when calling the Set-CsTenantFederationConfiguration cmdlet. If you do choose to use the Identity parameter, you must also include the Tenant parameter. For example: + `Set-CsTenantFederationConfiguration -Tenant "bf19b7db-6960-41e5-a139-2aa373474354" -Identity "global"` + + String + + String + + + None + + + LabelForAllowedAcsUsers + + This configuration controls the user label that is displayed for Azure Communication Services users when they join Teams meetings or calls. Possible values are: Unverified, External. When the value is set to Unverified, the ACS user label is displayed as 'Unverified' when an ACS user joins Teams meetings or calls. When the value is set to External, if an ACS user joins a Teams meeting or call from a resource listed in AllowAcsResources, their label should be displayed as 'External'. + + String + + String + + + Unverified + + + RequireAcsFederationForMeeting + + This configuration controls whether ACS Federation is required for meetings. Possible values are: True, False. + + Boolean + + Boolean + + + False + + + + + + AllowedAcsResources + + The list of the ACS resources (at least one) for which federation is enabled, when EnableAcsUsers is set to true. If EnableAcsUsers is set to false, then this list is ignored and should be null/empty. + The ACS resources are listed using their immutable resource id, which is a guid that can be found on the Azure portal. + + String[] + + String[] + + + Empty/Null + + + EnableAcsUsers + + Set to True to enable federation between Teams and ACS. When set to False, all other parameters are ignored. + + Boolean + + Boolean + + + False + + + HideBannerForAllowedAcsUsers + + This configuration controls the display of the 'limited call features' banner for Azure Communication Services users participating in Teams meetings or calls. Possible values are: True, False. Set to True to hide the banner for allowed ACS users in Teams meetings or calls. + + Boolean + + Boolean + + + False + + + Identity + + Specifies the collection of tenant federation configuration settings to be modified. Because each tenant is limited to a single, global collection of federation settings there is no need include this parameter when calling the Set-CsTenantFederationConfiguration cmdlet. If you do choose to use the Identity parameter, you must also include the Tenant parameter. For example: + `Set-CsTenantFederationConfiguration -Tenant "bf19b7db-6960-41e5-a139-2aa373474354" -Identity "global"` + + String + + String + + + None + + + LabelForAllowedAcsUsers + + This configuration controls the user label that is displayed for Azure Communication Services users when they join Teams meetings or calls. Possible values are: Unverified, External. When the value is set to Unverified, the ACS user label is displayed as 'Unverified' when an ACS user joins Teams meetings or calls. When the value is set to External, if an ACS user joins a Teams meeting or call from a resource listed in AllowAcsResources, their label should be displayed as 'External'. + + String + + String + + + Unverified + + + RequireAcsFederationForMeeting + + This configuration controls whether ACS Federation is required for meetings. Possible values are: True, False. + + Boolean + + Boolean + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-CsTeamsAcsFederationConfiguration -EnableAcsUsers $False + + + + + + -------------------------- Example 2 -------------------------- + $allowlist = @('faced04c-2ced-433d-90db-063e424b87b1') +Set-CsTeamsAcsFederationConfiguration -EnableAcsUsers $True -AllowedAcsResources $allowlist + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsacsfederationconfiguration + + + Get-CsTeamsAcsFederationConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsacsfederationconfiguration + + + New-CsExternalAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csexternalaccesspolicy + + + Set-CsExternalAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csexternalaccesspolicy + + + Grant-CsExternalAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csexternalaccesspolicy + + + Set-CsTeamsAIPolicy @@ -31519,16 +33524,16 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true - The new csTeamsAIPolicy will replace the existing enrollment settings in csTeamsMeetingPolicy, providing enhanced flexibility and control for Teams meeting administrators. Unlike the current single setting, EnrollUserOverride, which applies to both face and voice enrollment, the new policy introduces two distinct settings: EnrollFace and EnrollVoice. These can be individually set to Enabled or Disabled, offering more granular control over biometric enrollments. In addition to improving the management of face and voice data, the csTeamsAIPolicy is designed to support future AI-related settings in Teams, making it a scalable solution for evolving needs. - This cmdlet sets the Teams AI policy EnrollFace and EnrollVoice value for the tenant. The values of EnrollFace and EnrollVoice can be set to "Enabled" or "Disabled". + The new csTeamsAIPolicy will replace the existing enrollment settings in csTeamsMeetingPolicy, providing enhanced flexibility and control for Teams meeting administrators. Unlike the current single setting, EnrollUserOverride, which applies to both face and voice enrollment, the new policy introduces two distinct settings: EnrollFace and EnrollVoice. These can be individually set to Enabled or Disabled, offering more granular control over biometric enrollments. A new setting, SpeakerAttributionBYOD, is also being added to csTeamsAIPolicy. This allows IT admins to turn off speaker attribution in BYOD scenarios, giving them greater control over how voice data is managed in such environments. This setting can be set to Enabled or Disabled, and will be Enabled by default. In addition to improving the management of face and voice data, the csTeamsAIPolicy is designed to support future AI-related settings in Teams, making it a scalable solution for evolving needs. + This cmdlet sets the EnrollFace, EnrollVoice, and SpeakerAttributionBYOD values within the csTeamsAIPolicy. These policies can be assigned to users, and each setting can be configured as "Enabled" or "Disabled". " Set-CsTeamsAIPolicy - - Identity + + Description - Identity of the Teams AI policy. + Enables administrators to provide explanatory text about the Teams AI policy. For example, the Description might indicate the users the policy should be assigned to. String @@ -31542,9 +33547,9 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true Policy value of the Teams AI EnrollFace policy. EnrollFace controls user access to user face enrollment in the Teams app settings. - Boolean + String - Boolean + String Enabled @@ -31554,17 +33559,17 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true Policy value of the Teams AI EnrollVoice policy. EnrollVoice controls user access to user voice enrollment in the Teams app settings. - Boolean + String - Boolean + String Enabled - - Description + + Identity - Enables administrators to provide explanatory text about the Teams AI policy. For example, the Description might indicate the users the policy should be assigned to. + Identity of the Teams AI policy. String @@ -31573,13 +33578,25 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true None + + SpeakerAttributionBYOD + + Policy value of the Teams AI SpeakerAttributionBYOD policy. Setting to "Enabled" turns on speaker attribution in BYOD scenarios while "Disabled" will turn off the function. + + String + + String + + + Enabled + Set-CsTeamsAIPolicy - - Identity + + Description - Identity of the Teams AI policy. + Enables administrators to provide explanatory text about the Teams AI policy. For example, the Description might indicate the users the policy should be assigned to. String @@ -31593,9 +33610,9 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true Policy value of the Teams AI EnrollFace policy. EnrollFace controls user access to user face enrollment in the Teams app settings. - Boolean + String - Boolean + String Enabled @@ -31605,17 +33622,17 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true Policy value of the Teams AI EnrollVoice policy. EnrollVoice controls user access to user voice enrollment in the Teams app settings. - Boolean + String - Boolean + String Enabled - - Description + + Identity - Enables administrators to provide explanatory text about the Teams AI policy. For example, the Description might indicate the users the policy should be assigned to. + Identity of the Teams AI policy. String @@ -31624,13 +33641,25 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true None + + SpeakerAttributionBYOD + + Policy value of the Teams AI SpeakerAttributionBYOD policy. Setting to "Enabled" turns on speaker attribution in BYOD scenarios while "Disabled" will turn off the function. + + String + + String + + + Enabled + - - Identity + + Description - Identity of the Teams AI policy. + Enables administrators to provide explanatory text about the Teams AI policy. For example, the Description might indicate the users the policy should be assigned to. String @@ -31644,9 +33673,9 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true Policy value of the Teams AI EnrollFace policy. EnrollFace controls user access to user face enrollment in the Teams app settings. - Boolean + String - Boolean + String Enabled @@ -31656,17 +33685,17 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true Policy value of the Teams AI EnrollVoice policy. EnrollVoice controls user access to user voice enrollment in the Teams app settings. - Boolean + String - Boolean + String Enabled - - Description + + Identity - Enables administrators to provide explanatory text about the Teams AI policy. For example, the Description might indicate the users the policy should be assigned to. + Identity of the Teams AI policy. String @@ -31675,6 +33704,18 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true None + + SpeakerAttributionBYOD + + Policy value of the Teams AI SpeakerAttributionBYOD policy. Setting to "Enabled" turns on speaker attribution in BYOD scenarios while "Disabled" will turn off the function. + + String + + String + + + Enabled + @@ -31700,53 +33741,74 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true -------------------------- Example 3 -------------------------- + PS C:\> Set-CsTeamsAIPolicy -Identity Global -SpeakerAttributionBYOD Disabled + + Set Teams AI policy "SpeakerAttributionBYOD" value to "Disabled" for global as default. + + + + -------------------------- Example 4 -------------------------- PS C:\> Set-CsTeamsAIPolicy -Identity Test -EnrollFace Enabled Set Teams AI policy "EnrollFace" value to "Enabled" for identity "Test". - -------------------------- Example 4 -------------------------- + -------------------------- Example 5 -------------------------- PS C:\> Set-CsTeamsAIPolicy -Identity Test -EnrollVoice Enabled Set Teams AI policy "EnrollVoice" value to "Enabled" for identity "Test". - -------------------------- Example 5 -------------------------- + -------------------------- Example 6 -------------------------- + PS C:\> Set-CsTeamsAIPolicy -Identity Test -SpeakerAttributionBYOD Enabled + + Set Teams AI policy "SpeakerAttributionBYOD" value to "Enabled" for identity "Test". + + + + -------------------------- Example 7 -------------------------- PS C:\> Set-CsTeamsAIPolicy -Identity Test -EnrollFace Disabled Set Teams AI policy "EnrollFace" value to "Disabled" for identity "Test". - -------------------------- Example 6 -------------------------- + -------------------------- Example 8 -------------------------- PS C:\> Set-CsTeamsAIPolicy -Identity Test -EnrollVoice Disabled Set Teams AI policy "EnrollVoice" value to "Disabled" for identity "Test". + + -------------------------- Example 9 -------------------------- + PS C:\> Set-CsTeamsAIPolicy -Identity Test -SpeakerAttributionBYOD Disabled + + Set Teams AI policy "SpeakerAttributionBYOD" value to "Disabled" for identity "Test". + + Online Version: - https://learn.microsoft.com/powershell/module/teams/Set-CsTeamsAIPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/Set-CsTeamsAIPolicy New-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsaipolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsaipolicy Remove-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsaipolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsaipolicy Get-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsaipolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsaipolicy Grant-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsaipolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsaipolicy @@ -31756,8 +33818,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true Set CsTeamsAppPermissionPolicy - NOTE : The existence of this cmdlet is being documented for completeness, but do not use this cmdlet. We require that all creation and modification of app permission polices (not including the assignment or removal of policies from users) happens in the Microsoft Teams & Skype for Business Admin Center to ensure that the policy matches your expectations for the end user experience. This cmdlet is not supported for tenants that migrated to app centric management feature as it replaced permission policies. While the cmdlet may succeed, the changes aren't applied to the tenant. - As an admin, you can use app permission policies to allow or block apps for your users. Learn more about the app permission policies at <https://learn.microsoft.com/microsoftteams/teams-app-permission-policies> and about app centric management at <https://learn.microsoft.com/microsoftteams/app-centric-management>. + Cmdlet to set the app permission policy for Teams. @@ -32319,7 +34380,7 @@ Set-CsTeamsAppPermissionPolicy -Identity Set-$identity -PrivateCatalogAppsType A Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsapppermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsapppermissionpolicy @@ -32329,9 +34390,7 @@ Set-CsTeamsAppPermissionPolicy -Identity Set-$identity -PrivateCatalogAppsType A Set CsTeamsAppSetupPolicy - NOTE : The existence of this cmdlet is being documented for completeness, but do not use this cmdlet. We require that all creation and modification of app setup polices (not including the assignment or removal of policies from users) happens in the Microsoft Teams & Skype for Business Admin Center to ensure that the policy matches your expectations for the end user experience. - As an admin, you can use app setup policies to customize Microsoft Teams to highlight the apps that are most important for your users. You choose the apps to pin and set the order that they appear. App setup policies let you showcase apps that users in your organization need, including ones built by third parties or by developers in your organization. You can also use app setup policies to manage how built-in features appear. - Apps are pinned to the app bar. This is the bar on the side of the Teams desktop client and at the bottom of the Teams mobile clients (iOS and Android). Learn more about the App Setup Policies: <https://learn.microsoft.com/MicrosoftTeams/teams-app-setup-policies>. + Cmdlet to set the app setup policy for Teams. @@ -32354,6 +34413,18 @@ Set-CsTeamsAppPermissionPolicy -Identity Set-$identity -PrivateCatalogAppsType A None + + AdditionalCustomizationApps + + This parameter allows IT admins to create multiple customized versions of their apps and assign these customized versions to users and groups via setup policies. It enables customization of app icons and names for supportive first-party (1P) and third-party (3P) apps, enhancing corporate connections to employees through brand expression and stimulating app awareness and usage. + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalCustomizationApp] + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalCustomizationApp] + + + None + AllowSideLoading @@ -32390,18 +34461,6 @@ Set-CsTeamsAppPermissionPolicy -Identity Set-$identity -PrivateCatalogAppsType A None - - AdditionalCustomizationApps - - This parameter allows IT admins to create multiple customized versions of their apps and assign these customized versions to users and groups via setup policies. It enables customization of app icons and names for supportive first-party (1P) and third-party (3P) apps, enhancing corporate connections to employees through brand expression and stimulating app awareness and usage. - - System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalCustomizationApp] - - System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalCustomizationApp] - - - None - AppPresetMeetingList @@ -32510,14 +34569,14 @@ Set-CsTeamsAppPermissionPolicy -Identity Set-$identity -PrivateCatalogAppsType A Set-CsTeamsAppSetupPolicy - - Instance + + AdditionalCustomizationApps - Do not use. + This parameter allows IT admins to create multiple customized versions of their apps and assign these customized versions to users and groups via setup policies. It enables customization of app icons and names for supportive first-party (1P) and third-party (3P) apps, enhancing corporate connections to employees through brand expression and stimulating app awareness and usage. - PSObject + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalCustomizationApp] - PSObject + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalCustomizationApp] None @@ -32558,18 +34617,6 @@ Set-CsTeamsAppPermissionPolicy -Identity Set-$identity -PrivateCatalogAppsType A None - - AdditionalCustomizationApps - - This parameter allows IT admins to create multiple customized versions of their apps and assign these customized versions to users and groups via setup policies. It enables customization of app icons and names for supportive first-party (1P) and third-party (3P) apps, enhancing corporate connections to employees through brand expression and stimulating app awareness and usage. - - System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalCustomizationApp] - - System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalCustomizationApp] - - - None - AppPresetMeetingList @@ -32616,6 +34663,18 @@ Set-CsTeamsAppPermissionPolicy -Identity Set-$identity -PrivateCatalogAppsType A False + + Instance + + Do not use. + + PSObject + + PSObject + + + None + PinnedAppBarApps @@ -32678,26 +34737,14 @@ Set-CsTeamsAppPermissionPolicy -Identity Set-$identity -PrivateCatalogAppsType A - - Identity - - Name of app setup policy. If empty, all identities will be used by default. - - XdsIdentity - - XdsIdentity - - - None - - - Instance + + AdditionalCustomizationApps - Do not use. + This parameter allows IT admins to create multiple customized versions of their apps and assign these customized versions to users and groups via setup policies. It enables customization of app icons and names for supportive first-party (1P) and third-party (3P) apps, enhancing corporate connections to employees through brand expression and stimulating app awareness and usage. - PSObject + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalCustomizationApp] - PSObject + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalCustomizationApp] None @@ -32738,18 +34785,6 @@ Set-CsTeamsAppPermissionPolicy -Identity Set-$identity -PrivateCatalogAppsType A None - - AdditionalCustomizationApps - - This parameter allows IT admins to create multiple customized versions of their apps and assign these customized versions to users and groups via setup policies. It enables customization of app icons and names for supportive first-party (1P) and third-party (3P) apps, enhancing corporate connections to employees through brand expression and stimulating app awareness and usage. - - System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalCustomizationApp] - - System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalCustomizationApp] - - - None - AppPresetMeetingList @@ -32798,6 +34833,30 @@ Set-CsTeamsAppPermissionPolicy -Identity Set-$identity -PrivateCatalogAppsType A False + + Identity + + Name of app setup policy. If empty, all identities will be used by default. + + XdsIdentity + + XdsIdentity + + + None + + + Instance + + Do not use. + + PSObject + + PSObject + + + None + PinnedAppBarApps @@ -32946,7 +35005,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsappsetuppolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsappsetuppolicy @@ -32980,10 +35039,9 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetListNone - Description + AudioFileId - Enables administrators to provide explanatory text to accompany a Teams call hold policy. - For example, the Description might include information about the users the policy should be assigned to. + A string representing the ID referencing an audio file uploaded via the Import-CsOnlineAudioFile cmdlet. String @@ -32992,10 +35050,22 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + - AudioFileId + Description - A string representing the ID referencing an audio file uploaded via the Import-CsOnlineAudioFile cmdlet. + Enables administrators to provide explanatory text to accompany a Teams call hold policy. + For example, the Description might include information about the users the policy should be assigned to. String @@ -33005,16 +35075,15 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetListNone - StreamingSourceUrl + Force - This parameter is reserved for internal Microsoft use. + Suppresses the display of any non-fatal error message that might arise when running the command. - String - String + SwitchParameter - None + False StreamingSourceAuthType @@ -33029,15 +35098,16 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetListNone - Force + StreamingSourceUrl - Suppresses the display of any non-fatal error message that might arise when running the command. + This parameter is reserved for internal Microsoft use. + String - SwitchParameter + String - False + None WhatIf @@ -33050,24 +35120,13 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Identity + + AudioFileId - Unique identifier of the Teams call hold policy being modified. + A string representing the ID referencing an audio file uploaded via the Import-CsOnlineAudioFile cmdlet. String @@ -33076,6 +35135,18 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + Description @@ -33090,21 +35161,21 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetListNone - AudioFileId + Force - A string representing the ID referencing an audio file uploaded via the Import-CsOnlineAudioFile cmdlet. + Suppresses the display of any non-fatal error message that might arise when running the command. - String + SwitchParameter - String + SwitchParameter - None + False - - StreamingSourceUrl + + Identity - This parameter is reserved for internal Microsoft use. + Unique identifier of the Teams call hold policy being modified. String @@ -33126,16 +35197,16 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetListNone - Force + StreamingSourceUrl - Suppresses the display of any non-fatal error message that might arise when running the command. + This parameter is reserved for internal Microsoft use. - SwitchParameter + String - SwitchParameter + String - False + None WhatIf @@ -33149,18 +35220,6 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - @@ -33209,27 +35268,27 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamscallholdpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallholdpolicy Get-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamscallholdpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallholdpolicy New-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamscallholdpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallholdpolicy Grant-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamscallholdpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscallholdpolicy Remove-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamscallholdpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallholdpolicy Import-CsOnlineAudioFile - https://learn.microsoft.com/powershell/module/teams/import-csonlineaudiofile + https://learn.microsoft.com/powershell/module/microsoftteams/import-csonlineaudiofile @@ -33264,6 +35323,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList AIInterpreter + > Applicable: Microsoft Teams >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. Enables the user to use the AI Interpreter related features Possible values: @@ -33280,6 +35340,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList AllowCallForwardingToPhone + > Applicable: Microsoft Teams Enables the user to configure in the Microsoft Teams client call forwarding or simultaneous ringing of inbound calls to any phone number. Boolean @@ -33292,6 +35353,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList AllowCallForwardingToUser + > Applicable: Microsoft Teams Enables the user to configure in the Microsoft Teams client call forwarding or simultaneous ringing of inbound calls to other users in your tenant. Boolean @@ -33304,6 +35366,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList AllowCallGroups + > Applicable: Microsoft Teams Enables the user to configure call groups in the Microsoft Teams client and that inbound calls should be routed to call groups. Boolean @@ -33316,6 +35379,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList AllowCallRedirect + > Applicable: Microsoft Teams Setting this parameter enables local call redirection for SIP devices connecting via the Microsoft Teams SIP gateway. Valid options are: - Enabled: Enables the user to redirect an incoming call. @@ -33332,6 +35396,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList AllowCloudRecordingForCalls + > Applicable: Microsoft Teams Determines whether cloud recording is allowed in a user's 1:1 Teams or PSTN calls. Set this to True to allow the user to be able to record 1:1 calls. Set this to False to prohibit the user from recording 1:1 calls. Boolean @@ -33344,6 +35409,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList AllowDelegation + > Applicable: Microsoft Teams Enables the user to configure delegation in the Microsoft Teams client and that inbound calls to be routed to delegates; allows delegates to make outbound calls on behalf of the users for whom they have delegated permissions. Boolean @@ -33356,6 +35422,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList AllowPrivateCalling + > Applicable: Microsoft Teams Controls all calling capabilities in Teams. Turning this off will turn off all calling functionality in Teams. If you use Skype for Business for calling, this policy will not affect calling functionality in Skype for Business. Boolean @@ -33368,6 +35435,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList AllowSIPDevicesCalling + > Applicable: Microsoft Teams Determines whether the user is allowed to use a SIP device for calling on behalf of a Teams client. Boolean @@ -33380,6 +35448,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList AllowTranscriptionForCalling + > Applicable: Microsoft Teams Determines whether post-call transcriptions are allowed. Set this to True to allow. Set this to False to prohibit. Boolean @@ -33392,6 +35461,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList AllowVoicemail + > Applicable: Microsoft Teams Enables inbound calls to be routed to voicemail. Valid options are: - AlwaysEnabled: Calls are always forwarded to voicemail on unanswered after ringing for thirty seconds, regardless of the unanswered call forward setting for the user. @@ -33408,6 +35478,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList AllowWebPSTNCalling + > Applicable: Microsoft Teams Allows PSTN calling from the Teams web client. Object @@ -33432,6 +35503,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList BusyOnBusyEnabledType + > Applicable: Microsoft Teams Setting this parameter lets you configure how incoming calls are handled when a user is already in a call or conference or has a call placed on hold. Valid options are: - Enabled: New or incoming calls will be rejected with a busy signal. @@ -33449,6 +35521,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList CallingSpendUserLimit + > Applicable: Microsoft Teams The maximum amount a user can spend on outgoing PSTN calls, including all calls made through Pay-as-you-go Calling Plans and any overages on plans with bundled minutes. Possible values: any positive integer @@ -33462,6 +35535,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList CallRecordingExpirationDays + > Applicable: Microsoft Teams Sets the expiration of the recorded 1:1 calls. Default is 60 days. Long @@ -33474,6 +35548,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList Confirm + > Applicable: Microsoft Teams Prompts you for confirmation before running the cmdlet. @@ -33485,9 +35560,10 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList Copilot + > Applicable: Microsoft Teams Setting this parameter lets you control how Copilot is used during calls and if transcription is needed to be turned on and saved after the call. - Valid options are: - Enabled: Copilot can work with or without transcription during calls. - - EnabledWithTranscript: Copilot will only work when transcription is enabled during calls. This is the default value. + Valid options are: - Enabled: Copilot can work with or without transcription during calls. This is the default value. + - EnabledWithTranscript: Copilot will only work when transcription is enabled during calls. - Disabled: Copilot is disabled for calls. String @@ -33500,6 +35576,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList Description + > Applicable: Microsoft Teams Enables administrators to provide explanatory text about the calling policy. For example, the Description might indicate the users to whom the policy should be assigned. String @@ -33512,6 +35589,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList EnableSpendLimits + > Applicable: Microsoft Teams This setting allows an admin to enable or disable spend limits on PSTN calls for their user base. Possible values: - True @@ -33539,6 +35617,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList Force + > Applicable: Microsoft Teams Suppresses any confirmation prompts that would otherwise be displayed before making changes. @@ -33550,6 +35629,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList InboundFederatedCallRoutingTreatment + > Applicable: Microsoft Teams Setting this parameter lets you control how inbound federated calls should be routed. Valid options are: - RegularIncoming: No changes are made to default inbound routing. This is the default setting. @@ -33568,6 +35648,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList InboundPstnCallRoutingTreatment + > Applicable: Microsoft Teams Setting this parameter lets you control how inbound PSTN calls should be routed. Valid options are: - RegularIncoming: No changes are made to default inbound routing. This is the default setting. @@ -33587,6 +35668,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList LiveCaptionsEnabledTypeForCalling + > Applicable: Microsoft Teams Determines whether real-time captions are available for the user in Teams calls. Valid options are: - DisabledUserOverride: Allows the user to turn on live captions. @@ -33602,6 +35684,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList MusicOnHoldEnabledType + > Applicable: Microsoft Teams Setting this parameter allows you to turn on or turn off the music on hold when a caller is placed on hold. Valid options are: - Enabled: Music on hold is enabled. This is the default. @@ -33618,6 +35701,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList PopoutAppPathForIncomingPstnCalls + > Applicable: Microsoft Teams Setting this parameter allows you to set the PopoutForIncomingPstnCalls setting's URL path of the website to launch upon receiving incoming PSTN calls. This parameter accepts an HTTPS URL with less than 1024 characters. The URL can contain a `{phone}` placeholder that is replaced with the caller's PSTN number in E.164 format when launched. String @@ -33630,6 +35714,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList PopoutForIncomingPstnCalls + > Applicable: Microsoft Teams Setting this parameter allows you to control the tenant users' ability to launch an external website URL automatically in the browser window upon incoming PSTN calls for specific users or user groups. Valid options are Enabled and Disabled. String @@ -33642,6 +35727,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList PreventTollBypass + > Applicable: Microsoft Teams Setting this parameter to True will send calls through PSTN and incur charges rather than going through the network and bypassing the tolls. > [!NOTE] > Do not set this parameter to True for Calling Plan or Operator Connect users as it will prevent successful call routing. This setting only works with Direct Routing which is configured to handle location-based routing restrictions. @@ -33652,9 +35738,25 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList None + + RealTimeText + + > Applicable: Microsoft Teams + Allows users to use real time text during a call, allowing them to communicate by typing their messages in real time. + Possible Values: - Enabled: User is allowed to turn on real time text. + - Disabled: User is not allowed to turn on real time text. + + String + + String + + + Enabled + SpamFilteringEnabledType + > Applicable: Microsoft Teams Determines if spam detection is enabled for inbound PSTN calls. Possible values: - Enabled: Spam detection is enabled. In case the inbound call is considered spam, the user will get a "Spam Likely" label in Teams. @@ -33670,6 +35772,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList VoiceSimulationInInterpreter + > Applicable: Microsoft Teams > [!NOTE] > This feature has not been released yet and will have no changes if it is enabled or disabled. Enables the user to use the voice simulation feature while being AI interpreted. Possible Values: @@ -33684,22 +35787,25 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetListDisabled - RealTimeText + ExplicitRecordingConsent - Allows users to use real time text during a meeting, allowing them to communicate by typing their messages in real time. - Possible Values: - Enabled: User is allowed to turn on real time text. - - Disabled: User is not allowed to turn on real time text. + > Applicable: Microsoft Teams + >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. + This setting controls whether users must provide or obtain explicit consent before recording a 1:1 PSTN or Teams call. When enabled, both parties will receive a notification, and consent must be given before recording starts. + Possible values: + - Enabled : Requires users to give and obtain explicit consent before starting a call recording. - Disabled : Users are not required to obtain explicit consent before recording starts. String String - Enabled + Disabled WhatIf + > Applicable: Microsoft Teams Shows what would happen if the cmdlet runs. The cmdlet is not run. @@ -33711,21 +35817,10 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList - - Identity - - Name of the policy instance being created. - - String - - String - - - None - AIInterpreter + > Applicable: Microsoft Teams >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. Enables the user to use the AI Interpreter related features Possible values: @@ -33742,6 +35837,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList AllowCallForwardingToPhone + > Applicable: Microsoft Teams Enables the user to configure in the Microsoft Teams client call forwarding or simultaneous ringing of inbound calls to any phone number. Boolean @@ -33754,6 +35850,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList AllowCallForwardingToUser + > Applicable: Microsoft Teams Enables the user to configure in the Microsoft Teams client call forwarding or simultaneous ringing of inbound calls to other users in your tenant. Boolean @@ -33766,6 +35863,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList AllowCallGroups + > Applicable: Microsoft Teams Enables the user to configure call groups in the Microsoft Teams client and that inbound calls should be routed to call groups. Boolean @@ -33778,6 +35876,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList AllowCallRedirect + > Applicable: Microsoft Teams Setting this parameter enables local call redirection for SIP devices connecting via the Microsoft Teams SIP gateway. Valid options are: - Enabled: Enables the user to redirect an incoming call. @@ -33794,6 +35893,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList AllowCloudRecordingForCalls + > Applicable: Microsoft Teams Determines whether cloud recording is allowed in a user's 1:1 Teams or PSTN calls. Set this to True to allow the user to be able to record 1:1 calls. Set this to False to prohibit the user from recording 1:1 calls. Boolean @@ -33806,6 +35906,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList AllowDelegation + > Applicable: Microsoft Teams Enables the user to configure delegation in the Microsoft Teams client and that inbound calls to be routed to delegates; allows delegates to make outbound calls on behalf of the users for whom they have delegated permissions. Boolean @@ -33818,6 +35919,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList AllowPrivateCalling + > Applicable: Microsoft Teams Controls all calling capabilities in Teams. Turning this off will turn off all calling functionality in Teams. If you use Skype for Business for calling, this policy will not affect calling functionality in Skype for Business. Boolean @@ -33830,6 +35932,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList AllowSIPDevicesCalling + > Applicable: Microsoft Teams Determines whether the user is allowed to use a SIP device for calling on behalf of a Teams client. Boolean @@ -33842,6 +35945,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList AllowTranscriptionForCalling + > Applicable: Microsoft Teams Determines whether post-call transcriptions are allowed. Set this to True to allow. Set this to False to prohibit. Boolean @@ -33854,6 +35958,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList AllowVoicemail + > Applicable: Microsoft Teams Enables inbound calls to be routed to voicemail. Valid options are: - AlwaysEnabled: Calls are always forwarded to voicemail on unanswered after ringing for thirty seconds, regardless of the unanswered call forward setting for the user. @@ -33870,6 +35975,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList AllowWebPSTNCalling + > Applicable: Microsoft Teams Allows PSTN calling from the Teams web client. Object @@ -33894,6 +36000,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList BusyOnBusyEnabledType + > Applicable: Microsoft Teams Setting this parameter lets you configure how incoming calls are handled when a user is already in a call or conference or has a call placed on hold. Valid options are: - Enabled: New or incoming calls will be rejected with a busy signal. @@ -33911,6 +36018,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList CallingSpendUserLimit + > Applicable: Microsoft Teams The maximum amount a user can spend on outgoing PSTN calls, including all calls made through Pay-as-you-go Calling Plans and any overages on plans with bundled minutes. Possible values: any positive integer @@ -33924,6 +36032,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList CallRecordingExpirationDays + > Applicable: Microsoft Teams Sets the expiration of the recorded 1:1 calls. Default is 60 days. Long @@ -33936,6 +36045,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList Confirm + > Applicable: Microsoft Teams Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -33948,9 +36058,10 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList Copilot + > Applicable: Microsoft Teams Setting this parameter lets you control how Copilot is used during calls and if transcription is needed to be turned on and saved after the call. - Valid options are: - Enabled: Copilot can work with or without transcription during calls. - - EnabledWithTranscript: Copilot will only work when transcription is enabled during calls. This is the default value. + Valid options are: - Enabled: Copilot can work with or without transcription during calls. This is the default value. + - EnabledWithTranscript: Copilot will only work when transcription is enabled during calls. - Disabled: Copilot is disabled for calls. String @@ -33963,6 +36074,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList Description + > Applicable: Microsoft Teams Enables administrators to provide explanatory text about the calling policy. For example, the Description might indicate the users to whom the policy should be assigned. String @@ -33975,6 +36087,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList EnableSpendLimits + > Applicable: Microsoft Teams This setting allows an admin to enable or disable spend limits on PSTN calls for their user base. Possible values: - True @@ -34002,6 +36115,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList Force + > Applicable: Microsoft Teams Suppresses any confirmation prompts that would otherwise be displayed before making changes. SwitchParameter @@ -34011,9 +36125,22 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList False + + Identity + + Name of the policy instance being created. + + String + + String + + + None + InboundFederatedCallRoutingTreatment + > Applicable: Microsoft Teams Setting this parameter lets you control how inbound federated calls should be routed. Valid options are: - RegularIncoming: No changes are made to default inbound routing. This is the default setting. @@ -34032,6 +36159,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList InboundPstnCallRoutingTreatment + > Applicable: Microsoft Teams Setting this parameter lets you control how inbound PSTN calls should be routed. Valid options are: - RegularIncoming: No changes are made to default inbound routing. This is the default setting. @@ -34051,6 +36179,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList LiveCaptionsEnabledTypeForCalling + > Applicable: Microsoft Teams Determines whether real-time captions are available for the user in Teams calls. Valid options are: - DisabledUserOverride: Allows the user to turn on live captions. @@ -34066,6 +36195,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList MusicOnHoldEnabledType + > Applicable: Microsoft Teams Setting this parameter allows you to turn on or turn off the music on hold when a caller is placed on hold. Valid options are: - Enabled: Music on hold is enabled. This is the default. @@ -34082,6 +36212,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList PopoutAppPathForIncomingPstnCalls + > Applicable: Microsoft Teams Setting this parameter allows you to set the PopoutForIncomingPstnCalls setting's URL path of the website to launch upon receiving incoming PSTN calls. This parameter accepts an HTTPS URL with less than 1024 characters. The URL can contain a `{phone}` placeholder that is replaced with the caller's PSTN number in E.164 format when launched. String @@ -34094,6 +36225,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList PopoutForIncomingPstnCalls + > Applicable: Microsoft Teams Setting this parameter allows you to control the tenant users' ability to launch an external website URL automatically in the browser window upon incoming PSTN calls for specific users or user groups. Valid options are Enabled and Disabled. String @@ -34106,6 +36238,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList PreventTollBypass + > Applicable: Microsoft Teams Setting this parameter to True will send calls through PSTN and incur charges rather than going through the network and bypassing the tolls. > [!NOTE] > Do not set this parameter to True for Calling Plan or Operator Connect users as it will prevent successful call routing. This setting only works with Direct Routing which is configured to handle location-based routing restrictions. @@ -34116,9 +36249,25 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList None + + RealTimeText + + > Applicable: Microsoft Teams + Allows users to use real time text during a call, allowing them to communicate by typing their messages in real time. + Possible Values: - Enabled: User is allowed to turn on real time text. + - Disabled: User is not allowed to turn on real time text. + + String + + String + + + Enabled + SpamFilteringEnabledType + > Applicable: Microsoft Teams Determines if spam detection is enabled for inbound PSTN calls. Possible values: - Enabled: Spam detection is enabled. In case the inbound call is considered spam, the user will get a "Spam Likely" label in Teams. @@ -34134,6 +36283,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList VoiceSimulationInInterpreter + > Applicable: Microsoft Teams > [!NOTE] > This feature has not been released yet and will have no changes if it is enabled or disabled. Enables the user to use the voice simulation feature while being AI interpreted. Possible Values: @@ -34148,22 +36298,25 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetListDisabled - RealTimeText + ExplicitRecordingConsent - Allows users to use real time text during a meeting, allowing them to communicate by typing their messages in real time. - Possible Values: - Enabled: User is allowed to turn on real time text. - - Disabled: User is not allowed to turn on real time text. + > Applicable: Microsoft Teams + >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. + This setting controls whether users must provide or obtain explicit consent before recording a 1:1 PSTN or Teams call. When enabled, both parties will receive a notification, and consent must be given before recording starts. + Possible values: + - Enabled : Requires users to give and obtain explicit consent before starting a call recording. - Disabled : Users are not required to obtain explicit consent before recording starts. String String - Enabled + Disabled WhatIf + > Applicable: Microsoft Teams Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -34218,23 +36371,23 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamscallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallingpolicy Get-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamscallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallingpolicy Remove-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamscallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallingpolicy Grant-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamscallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscallingpolicy New-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamscallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallingpolicy @@ -34267,9 +36420,9 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetListNone - EnablePrivateTeamDiscovery + AllowChannelSharingToExternalUser - Determines whether a user is allowed to discover private teams in suggestions and search results. Set this to TRUE to allow. Set this FALSE to prohibit. + Owners of a shared channel can invite external users to join the channel if Microsoft Entra external sharing policies are configured. If the channel has been shared with an external member or team, they will continue to have access to the channel even if this parameter is set to FALSE. For more information, see Manage channel policies in Microsoft Teams (https://learn.microsoft.com/microsoftteams/teams-policies). Boolean @@ -34278,51 +36431,6 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList None - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Force - - Bypass all non-fatal errors. - - - SwitchParameter - - - False - - - Tenant - - Internal Microsoft use only. - - System.Guid - - System.Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - AllowOrgWideTeamCreation @@ -34347,18 +36455,6 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList None - - AllowChannelSharingToExternalUser - - Owners of a shared channel can invite external users to join the channel if Microsoft Entra external sharing policies are configured. If the channel has been shared with an external member or team, they will continue to have access to the channel even if this parameter is set to FALSE. For more information, see Manage channel policies in Microsoft Teams (https://learn.microsoft.com/microsoftteams/teams-policies). - - Boolean - - Boolean - - - None - AllowSharedChannelCreation @@ -34383,31 +36479,28 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList None - - - Set-CsTeamsChannelsPolicy - - EnablePrivateTeamDiscovery + + Confirm - Determines whether a user is allowed to discover private teams in suggestions and search results. Set this to TRUE to allow. Set this FALSE to prohibit. + Prompts you for confirmation before running the cmdlet. - Boolean - Boolean + SwitchParameter - None + False - - Confirm + + EnablePrivateTeamDiscovery - Prompts you for confirmation before running the cmdlet. + Determines whether a user is allowed to discover private teams in suggestions and search results. Set this to TRUE to allow. Set this FALSE to prohibit. + Boolean - SwitchParameter + Boolean - False + None Force @@ -34420,29 +36513,32 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList False - - Instance + + Tenant - Use this parameter to pass the policy object output of Get-CsTeamsChannelsPolicy to update that policy. + Internal Microsoft use only. - PSObject + System.Guid - PSObject + System.Guid None - Tenant + ThreadedChannelCreation - Internal Microsoft use only. + > [!NOTE] > This parameter is reserved for internal Microsoft use. + This setting enables/disables Threaded Channel creation and editing. + Possible Values: - Enabled: Users are allowed to create and edit Threaded Channels. + - Disabled: Users are not allowed to create and edit Threaded Channels. - System.Guid + String - System.Guid + String - None + Enabled WhatIf @@ -34455,10 +36551,13 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList False + + + Set-CsTeamsChannelsPolicy - AllowOrgWideTeamCreation + AllowChannelSharingToExternalUser - Determines whether a user is allowed to create an org-wide team. Set this to TRUE to allow. Set this FALSE to prohibit. + Owners of a shared channel can invite external users to join the channel if Microsoft Entra external sharing policies are configured. If the channel has been shared with an external member or team, they will continue to have access to the channel even if this parameter is set to FALSE. For more information, see Manage channel policies in Microsoft Teams (https://learn.microsoft.com/microsoftteams/teams-policies). Boolean @@ -34468,9 +36567,9 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetListNone - AllowPrivateChannelCreation + AllowOrgWideTeamCreation - Determines whether a user is allowed to create a private channel. Set this to TRUE to allow. Set this FALSE to prohibit. + Determines whether a user is allowed to create an org-wide team. Set this to TRUE to allow. Set this FALSE to prohibit. Boolean @@ -34480,9 +36579,9 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetListNone - AllowChannelSharingToExternalUser + AllowPrivateChannelCreation - Owners of a shared channel can invite external users to join the channel if Microsoft Entra external sharing policies are configured. If the channel has been shared with an external member or team, they will continue to have access to the channel even if this parameter is set to FALSE. For more information, see Manage channel policies in Microsoft Teams (https://learn.microsoft.com/microsoftteams/teams-policies). + Determines whether a user is allowed to create a private channel. Set this to TRUE to allow. Set this FALSE to prohibit. Boolean @@ -34515,13 +36614,97 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + EnablePrivateTeamDiscovery + + Determines whether a user is allowed to discover private teams in suggestions and search results. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + Force + + Bypass all non-fatal errors. + + + SwitchParameter + + + False + + + Instance + + Use this parameter to pass the policy object output of Get-CsTeamsChannelsPolicy to update that policy. + + PSObject + + PSObject + + + None + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + ThreadedChannelCreation + + > [!NOTE] > This parameter is reserved for internal Microsoft use. + This setting enables/disables Threaded Channel creation and editing. + Possible Values: - Enabled: Users are allowed to create and edit Threaded Channels. + - Disabled: Users are not allowed to create and edit Threaded Channels. + + String + + String + + + Enabled + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + - EnablePrivateTeamDiscovery + AllowChannelSharingToExternalUser - Determines whether a user is allowed to discover private teams in suggestions and search results. Set this to TRUE to allow. Set this FALSE to prohibit. + Owners of a shared channel can invite external users to join the channel if Microsoft Entra external sharing policies are configured. If the channel has been shared with an external member or team, they will continue to have access to the channel even if this parameter is set to FALSE. For more information, see Manage channel policies in Microsoft Teams (https://learn.microsoft.com/microsoftteams/teams-policies). Boolean @@ -34530,70 +36713,82 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList None - - Confirm + + AllowOrgWideTeamCreation - Prompts you for confirmation before running the cmdlet. + Determines whether a user is allowed to create an org-wide team. Set this to TRUE to allow. Set this FALSE to prohibit. - SwitchParameter + Boolean - SwitchParameter + Boolean - False + None - Force + AllowPrivateChannelCreation - Bypass all non-fatal errors. + Determines whether a user is allowed to create a private channel. Set this to TRUE to allow. Set this FALSE to prohibit. - SwitchParameter + Boolean - SwitchParameter + Boolean - False + None - - Identity + + AllowSharedChannelCreation - Use this parameter to specify the name of the policy being updated. + Team owners can create shared channels for people within and outside the organization. Only people added to the shared channel can read and write messages. - XdsIdentity + Boolean - XdsIdentity + Boolean None - - Instance + + AllowUserToParticipateInExternalSharedChannel - Use this parameter to pass the policy object output of Get-CsTeamsChannelsPolicy to update that policy. + Users and teams can be invited to external shared channels if Microsoft Entra external sharing policies are configured. If a team in your organization is part of an external shared channel, new team members will have access to the channel even if this parameter is set to FALSE. For more information, see Manage channel policies in Microsoft Teams (https://learn.microsoft.com/microsoftteams/teams-policies). - PSObject + Boolean - PSObject + Boolean None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + - Tenant + EnablePrivateTeamDiscovery - Internal Microsoft use only. + Determines whether a user is allowed to discover private teams in suggestions and search results. Set this to TRUE to allow. Set this FALSE to prohibit. - System.Guid + Boolean - System.Guid + Boolean None - - WhatIf + + Force - Shows what would happen if the cmdlet runs. The cmdlet is not run. + Bypass all non-fatal errors. SwitchParameter @@ -34602,65 +36797,68 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList False - - AllowOrgWideTeamCreation + + Identity - Determines whether a user is allowed to create an org-wide team. Set this to TRUE to allow. Set this FALSE to prohibit. + Use this parameter to specify the name of the policy being updated. - Boolean + XdsIdentity - Boolean + XdsIdentity None - - AllowPrivateChannelCreation + + Instance - Determines whether a user is allowed to create a private channel. Set this to TRUE to allow. Set this FALSE to prohibit. + Use this parameter to pass the policy object output of Get-CsTeamsChannelsPolicy to update that policy. - Boolean + PSObject - Boolean + PSObject None - AllowChannelSharingToExternalUser + Tenant - Owners of a shared channel can invite external users to join the channel if Microsoft Entra external sharing policies are configured. If the channel has been shared with an external member or team, they will continue to have access to the channel even if this parameter is set to FALSE. For more information, see Manage channel policies in Microsoft Teams (https://learn.microsoft.com/microsoftteams/teams-policies). + Internal Microsoft use only. - Boolean + System.Guid - Boolean + System.Guid None - AllowSharedChannelCreation + ThreadedChannelCreation - Team owners can create shared channels for people within and outside the organization. Only people added to the shared channel can read and write messages. + > [!NOTE] > This parameter is reserved for internal Microsoft use. + This setting enables/disables Threaded Channel creation and editing. + Possible Values: - Enabled: Users are allowed to create and edit Threaded Channels. + - Disabled: Users are not allowed to create and edit Threaded Channels. - Boolean + String - Boolean + String - None + Enabled - - AllowUserToParticipateInExternalSharedChannel + + WhatIf - Users and teams can be invited to external shared channels if Microsoft Entra external sharing policies are configured. If a team in your organization is part of an external shared channel, new team members will have access to the channel even if this parameter is set to FALSE. For more information, see Manage channel policies in Microsoft Teams (https://learn.microsoft.com/microsoftteams/teams-policies). + Shows what would happen if the cmdlet runs. The cmdlet is not run. - Boolean + SwitchParameter - Boolean + SwitchParameter - None + False @@ -34700,23 +36898,23 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamschannelspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamschannelspolicy New-CsTeamsChannelsPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamschannelspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamschannelspolicy Remove-CsTeamsChannelsPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamschannelspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamschannelspolicy Grant-CsTeamsChannelsPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamschannelspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamschannelspolicy Get-CsTeamsChannelsPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamschannelspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamschannelspolicy @@ -34726,7 +36924,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetListSet CsTeamsClientConfiguration - The TeamsClientConfiguration allows IT admins to control the settings that can be accessed via Teams clients across their organization. This configuration includes settings like which third party cloud storage your organization allows, whether or not guest users can access the teams client, and how Surface Hub devices can interact with Skype for Business meetings. The parameter descriptions below describe what settings are managed by this configuration and how they are enforced. + Changes the Teams client configuration settings for the specified tenant. @@ -35552,7 +37750,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsclientconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsclientconfiguration @@ -35577,43 +37775,86 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList Identity - A name that uniquely identifies the application instance of the policy-based recording application. - Application instances of policy-based recording applications must be associated with a Teams recording policy using the CsTeamsComplianceRecordingApplication cmdlets. To do this association correctly, the Identity of these application instances must be <Identity of the associated Teams recording policy>/<ObjectId of the application instance>. For example, the Identity of an application instance can be \"Tag:ContosoPartnerComplianceRecordingPolicy/39dc3ede-c80e-4f19-9153-417a65a1f144\", which indicates that the application instance with ObjectId 39dc3ede-c80e-4f19-9153-417a65a1f144 is associated with the Teams recording policy with Identity ContosoPartnerComplianceRecordingPolicy. + A name that uniquely identifies the application instance of the policy-based recording application. + Application instances of policy-based recording applications must be associated with a Teams recording policy using the CsTeamsComplianceRecordingApplication cmdlets. To do this association correctly, the Identity of these application instances must be <Identity of the associated Teams recording policy>/<ObjectId of the application instance>. For example, the Identity of an application instance can be \"Tag:ContosoPartnerComplianceRecordingPolicy/39dc3ede-c80e-4f19-9153-417a65a1f144\", which indicates that the application instance with ObjectId 39dc3ede-c80e-4f19-9153-417a65a1f144 is associated with the Teams recording policy with Identity ContosoPartnerComplianceRecordingPolicy. + + XdsIdentity + + XdsIdentity + + + None + + + ComplianceRecordingPairedApplications + + Determines the other policy-based recording applications to pair with this application to achieve application resiliency. Can only have one paired application. + In situations where application resiliency is a necessity, invites can be sent to separate paired applications for the same call or meeting. If multiple such invites are accepted, then it means that multiple instances of this application are in the call or meeting and each of those instances can record independent of the others. + If all of the invites are rejected, the application invitation process is deemed a failure and the other flags for this application control what happens next. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredBeforeCallEstablishment parameters. + If at least one of the invites is accepted and the others are rejected, the application invitation process is still deemed a success. + If multiple invites are accepted and all of the instances leave or get dropped from the call or meeting, then the application is no longer in the call or meeting and the other flags for this application control what happens next. Please refer to the documentation of the RequiredDuringMeeting and RequiredDuringCall parameters. + If multiple invites are accepted and at least one of the instances remains in the call or meeting, then the application is in the call or meeting. + Note that application resiliency can be achieved either by sending multiple invites to the same application using ConcurrentInvitationCount or by sending invites to separate paired applications using ComplianceRecordingPairedApplications. However, you cannot do both. Please work with your Microsoft certified policy-based recording application provider to determine if application resiliency is needed for your workflows and how best to achieve application resiliency. - XdsIdentity + ComplianceRecordingPairedApplication[] - XdsIdentity + ComplianceRecordingPairedApplication[] None - RequiredBeforeMeetingJoin + ConcurrentInvitationCount - Indicates whether the policy-based recording application must be in the meeting before the user is allowed to join the meeting. - If this is set to True, the user will not be allowed to join the meeting if the policy-based recording application fails to join the meeting. The meeting will still continue for users who are in the meeting. - If this is set to False, the user will be allowed to join the meeting even if the policy-based recording application fails to join the meeting. + Determines the number of invites to send out to the application instance of the policy-based recording application. Can be set to 1 or 2 only. + In situations where application resiliency is a necessity, multiple invites can be sent to the same application for the same call or meeting. If multiple such invites are accepted, then it means that multiple instances of this application are in the call or meeting and each of those instances can record independent of the others. + If all of the invites are rejected, the application invitation process is deemed a failure and the other flags for this application control what happens next. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredBeforeCallEstablishment parameters. + If at least one of the invites is accepted and the others are rejected, the application invitation process is still deemed a success. + If multiple invites are accepted and all of the instances leave or get dropped from the call or meeting, then the application is no longer in the call or meeting and the other flags for this application control what happens next. Please refer to the documentation of the RequiredDuringMeeting and RequiredDuringCall parameters. + If multiple invites are accepted and at least one of the instances remains in the call or meeting, then the application is in the call or meeting. + Note that application resiliency can be achieved either by sending multiple invites to the same application using ConcurrentInvitationCount or by sending invites to separate paired applications using ComplianceRecordingPairedApplications. However, you cannot do both. Please work with your Microsoft certified policy-based recording application provider to determine if application resiliency is needed for your workflows and how best to achieve application resiliency. - Boolean + UInt32 - Boolean + UInt32 - True + 1 + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False - RequiredDuringMeeting + Force - Indicates whether the policy-based recording application must be in the meeting while the user is in the meeting. - If this is set to True, the user will be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. The meeting will still continue for users who are in the meeting. - If this is set to False, the user will not be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. + Suppresses the display of any non-fatal error message that might arise when running the command. - Boolean - Boolean + SwitchParameter - True + False + + + Priority + + This priority determines the order in which the policy-based recording applications are displayed in the output of the Get-CsTeamsComplianceRecordingPolicy cmdlet. + All policy-based recording applications are invited in parallel to ensure low call setup and meeting join latencies. So this parameter does not affect the order of invitations to the applications, or any other routing. + + Int32 + + Int32 + + + None RequiredBeforeCallEstablishment @@ -35629,6 +37870,20 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList True + + RequiredBeforeMeetingJoin + + Indicates whether the policy-based recording application must be in the meeting before the user is allowed to join the meeting. + If this is set to True, the user will not be allowed to join the meeting if the policy-based recording application fails to join the meeting. The meeting will still continue for users who are in the meeting. + If this is set to False, the user will be allowed to join the meeting even if the policy-based recording application fails to join the meeting. + + Boolean + + Boolean + + + True + RequiredDuringCall @@ -35644,23 +37899,49 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetListTrue - ConcurrentInvitationCount + RequiredDuringMeeting - Determines the number of invites to send out to the application instance of the policy-based recording application. Can be set to 1 or 2 only. - In situations where application resiliency is a necessity, multiple invites can be sent to the same application for the same call or meeting. If multiple such invites are accepted, then it means that multiple instances of this application are in the call or meeting and each of those instances can record independent of the others. - If all of the invites are rejected, the application invitation process is deemed a failure and the other flags for this application control what happens next. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredBeforeCallEstablishment parameters. - If at least one of the invites is accepted and the others are rejected, the application invitation process is still deemed a success. - If multiple invites are accepted and all of the instances leave or get dropped from the call or meeting, then the application is no longer in the call or meeting and the other flags for this application control what happens next. Please refer to the documentation of the RequiredDuringMeeting and RequiredDuringCall parameters. - If multiple invites are accepted and at least one of the instances remains in the call or meeting, then the application is in the call or meeting. - Note that application resiliency can be achieved either by sending multiple invites to the same application using ConcurrentInvitationCount or by sending invites to separate paired applications using ComplianceRecordingPairedApplications. However, you cannot do both. Please work with your Microsoft certified policy-based recording application provider to determine if application resiliency is needed for your workflows and how best to achieve application resiliency. + Indicates whether the policy-based recording application must be in the meeting while the user is in the meeting. + If this is set to True, the user will be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. The meeting will still continue for users who are in the meeting. + If this is set to False, the user will not be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. - UInt32 + Boolean - UInt32 + Boolean - 1 + True + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + Set-CsTeamsComplianceRecordingApplication ComplianceRecordingPairedApplications @@ -35680,33 +37961,22 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetListNone - Priority - - This priority determines the order in which the policy-based recording applications are displayed in the output of the Get-CsTeamsComplianceRecordingPolicy cmdlet. - All policy-based recording applications are invited in parallel to ensure low call setup and meeting join latencies. So this parameter does not affect the order of invitations to the applications, or any other routing. - - Int32 - - Int32 - - - None - - - Tenant + ConcurrentInvitationCount - Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: - -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" - You can return your tenant ID by running this command: - Get-CsTenant | Select-Object DisplayName, TenantID - If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + Determines the number of invites to send out to the application instance of the policy-based recording application. Can be set to 1 or 2 only. + In situations where application resiliency is a necessity, multiple invites can be sent to the same application for the same call or meeting. If multiple such invites are accepted, then it means that multiple instances of this application are in the call or meeting and each of those instances can record independent of the others. + If all of the invites are rejected, the application invitation process is deemed a failure and the other flags for this application control what happens next. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredBeforeCallEstablishment parameters. + If at least one of the invites is accepted and the others are rejected, the application invitation process is still deemed a success. + If multiple invites are accepted and all of the instances leave or get dropped from the call or meeting, then the application is no longer in the call or meeting and the other flags for this application control what happens next. Please refer to the documentation of the RequiredDuringMeeting and RequiredDuringCall parameters. + If multiple invites are accepted and at least one of the instances remains in the call or meeting, then the application is in the call or meeting. + Note that application resiliency can be achieved either by sending multiple invites to the same application using ConcurrentInvitationCount or by sending invites to separate paired applications using ComplianceRecordingPairedApplications. However, you cannot do both. Please work with your Microsoft certified policy-based recording application provider to determine if application resiliency is needed for your workflows and how best to achieve application resiliency. - System.Guid + UInt32 - System.Guid + UInt32 - None + 1 Confirm @@ -35730,20 +38000,6 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList False - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Set-CsTeamsComplianceRecordingApplication Instance @@ -35757,25 +38013,24 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetListNone - RequiredBeforeMeetingJoin + Priority - Indicates whether the policy-based recording application must be in the meeting before the user is allowed to join the meeting. - If this is set to True, the user will not be allowed to join the meeting if the policy-based recording application fails to join the meeting. The meeting will still continue for users who are in the meeting. - If this is set to False, the user will be allowed to join the meeting even if the policy-based recording application fails to join the meeting. + This priority determines the order in which the policy-based recording applications are displayed in the output of the Get-CsTeamsComplianceRecordingPolicy cmdlet. + All policy-based recording applications are invited in parallel to ensure low call setup and meeting join latencies. So this parameter does not affect the order of invitations to the applications, or any other routing. - Boolean + Int32 - Boolean + Int32 - True + None - RequiredDuringMeeting + RequiredBeforeCallEstablishment - Indicates whether the policy-based recording application must be in the meeting while the user is in the meeting. - If this is set to True, the user will be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. The meeting will still continue for users who are in the meeting. - If this is set to False, the user will not be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. + Indicates whether the policy-based recording application must be in the call before the call is allowed to establish. + If this is set to True, the call will be cancelled if the policy-based recording application fails to join the call. + If this is set to False, call establishment will proceed normally if the policy-based recording application fails to join the call. Boolean @@ -35785,11 +38040,11 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetListTrue - RequiredBeforeCallEstablishment + RequiredBeforeMeetingJoin - Indicates whether the policy-based recording application must be in the call before the call is allowed to establish. - If this is set to True, the call will be cancelled if the policy-based recording application fails to join the call. - If this is set to False, call establishment will proceed normally if the policy-based recording application fails to join the call. + Indicates whether the policy-based recording application must be in the meeting before the user is allowed to join the meeting. + If this is set to True, the user will not be allowed to join the meeting if the policy-based recording application fails to join the meeting. The meeting will still continue for users who are in the meeting. + If this is set to False, the user will be allowed to join the meeting even if the policy-based recording application fails to join the meeting. Boolean @@ -35813,53 +38068,18 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetListTrue - ConcurrentInvitationCount - - Determines the number of invites to send out to the application instance of the policy-based recording application. Can be set to 1 or 2 only. - In situations where application resiliency is a necessity, multiple invites can be sent to the same application for the same call or meeting. If multiple such invites are accepted, then it means that multiple instances of this application are in the call or meeting and each of those instances can record independent of the others. - If all of the invites are rejected, the application invitation process is deemed a failure and the other flags for this application control what happens next. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredBeforeCallEstablishment parameters. - If at least one of the invites is accepted and the others are rejected, the application invitation process is still deemed a success. - If multiple invites are accepted and all of the instances leave or get dropped from the call or meeting, then the application is no longer in the call or meeting and the other flags for this application control what happens next. Please refer to the documentation of the RequiredDuringMeeting and RequiredDuringCall parameters. - If multiple invites are accepted and at least one of the instances remains in the call or meeting, then the application is in the call or meeting. - Note that application resiliency can be achieved either by sending multiple invites to the same application using ConcurrentInvitationCount or by sending invites to separate paired applications using ComplianceRecordingPairedApplications. However, you cannot do both. Please work with your Microsoft certified policy-based recording application provider to determine if application resiliency is needed for your workflows and how best to achieve application resiliency. - - UInt32 - - UInt32 - - - 1 - - - ComplianceRecordingPairedApplications - - Determines the other policy-based recording applications to pair with this application to achieve application resiliency. Can only have one paired application. - In situations where application resiliency is a necessity, invites can be sent to separate paired applications for the same call or meeting. If multiple such invites are accepted, then it means that multiple instances of this application are in the call or meeting and each of those instances can record independent of the others. - If all of the invites are rejected, the application invitation process is deemed a failure and the other flags for this application control what happens next. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredBeforeCallEstablishment parameters. - If at least one of the invites is accepted and the others are rejected, the application invitation process is still deemed a success. - If multiple invites are accepted and all of the instances leave or get dropped from the call or meeting, then the application is no longer in the call or meeting and the other flags for this application control what happens next. Please refer to the documentation of the RequiredDuringMeeting and RequiredDuringCall parameters. - If multiple invites are accepted and at least one of the instances remains in the call or meeting, then the application is in the call or meeting. - Note that application resiliency can be achieved either by sending multiple invites to the same application using ConcurrentInvitationCount or by sending invites to separate paired applications using ComplianceRecordingPairedApplications. However, you cannot do both. Please work with your Microsoft certified policy-based recording application provider to determine if application resiliency is needed for your workflows and how best to achieve application resiliency. - - ComplianceRecordingPairedApplication[] - - ComplianceRecordingPairedApplication[] - - - None - - - Priority + RequiredDuringMeeting - This priority determines the order in which the policy-based recording applications are displayed in the output of the Get-CsTeamsComplianceRecordingPolicy cmdlet. - All policy-based recording applications are invited in parallel to ensure low call setup and meeting join latencies. So this parameter does not affect the order of invitations to the applications, or any other routing. + Indicates whether the policy-based recording application must be in the meeting while the user is in the meeting. + If this is set to True, the user will be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. The meeting will still continue for users who are in the meeting. + If this is set to False, the user will not be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. - Int32 + Boolean - Int32 + Boolean - None + True Tenant @@ -35877,28 +38097,6 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList None - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - - SwitchParameter - - - False - WhatIf @@ -35913,6 +38111,66 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList + + ComplianceRecordingPairedApplications + + Determines the other policy-based recording applications to pair with this application to achieve application resiliency. Can only have one paired application. + In situations where application resiliency is a necessity, invites can be sent to separate paired applications for the same call or meeting. If multiple such invites are accepted, then it means that multiple instances of this application are in the call or meeting and each of those instances can record independent of the others. + If all of the invites are rejected, the application invitation process is deemed a failure and the other flags for this application control what happens next. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredBeforeCallEstablishment parameters. + If at least one of the invites is accepted and the others are rejected, the application invitation process is still deemed a success. + If multiple invites are accepted and all of the instances leave or get dropped from the call or meeting, then the application is no longer in the call or meeting and the other flags for this application control what happens next. Please refer to the documentation of the RequiredDuringMeeting and RequiredDuringCall parameters. + If multiple invites are accepted and at least one of the instances remains in the call or meeting, then the application is in the call or meeting. + Note that application resiliency can be achieved either by sending multiple invites to the same application using ConcurrentInvitationCount or by sending invites to separate paired applications using ComplianceRecordingPairedApplications. However, you cannot do both. Please work with your Microsoft certified policy-based recording application provider to determine if application resiliency is needed for your workflows and how best to achieve application resiliency. + + ComplianceRecordingPairedApplication[] + + ComplianceRecordingPairedApplication[] + + + None + + + ConcurrentInvitationCount + + Determines the number of invites to send out to the application instance of the policy-based recording application. Can be set to 1 or 2 only. + In situations where application resiliency is a necessity, multiple invites can be sent to the same application for the same call or meeting. If multiple such invites are accepted, then it means that multiple instances of this application are in the call or meeting and each of those instances can record independent of the others. + If all of the invites are rejected, the application invitation process is deemed a failure and the other flags for this application control what happens next. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredBeforeCallEstablishment parameters. + If at least one of the invites is accepted and the others are rejected, the application invitation process is still deemed a success. + If multiple invites are accepted and all of the instances leave or get dropped from the call or meeting, then the application is no longer in the call or meeting and the other flags for this application control what happens next. Please refer to the documentation of the RequiredDuringMeeting and RequiredDuringCall parameters. + If multiple invites are accepted and at least one of the instances remains in the call or meeting, then the application is in the call or meeting. + Note that application resiliency can be achieved either by sending multiple invites to the same application using ConcurrentInvitationCount or by sending invites to separate paired applications using ComplianceRecordingPairedApplications. However, you cannot do both. Please work with your Microsoft certified policy-based recording application provider to determine if application resiliency is needed for your workflows and how best to achieve application resiliency. + + UInt32 + + UInt32 + + + 1 + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + Identity @@ -35939,25 +38197,24 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetListNone - RequiredBeforeMeetingJoin + Priority - Indicates whether the policy-based recording application must be in the meeting before the user is allowed to join the meeting. - If this is set to True, the user will not be allowed to join the meeting if the policy-based recording application fails to join the meeting. The meeting will still continue for users who are in the meeting. - If this is set to False, the user will be allowed to join the meeting even if the policy-based recording application fails to join the meeting. + This priority determines the order in which the policy-based recording applications are displayed in the output of the Get-CsTeamsComplianceRecordingPolicy cmdlet. + All policy-based recording applications are invited in parallel to ensure low call setup and meeting join latencies. So this parameter does not affect the order of invitations to the applications, or any other routing. - Boolean + Int32 - Boolean + Int32 - True + None - RequiredDuringMeeting + RequiredBeforeCallEstablishment - Indicates whether the policy-based recording application must be in the meeting while the user is in the meeting. - If this is set to True, the user will be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. The meeting will still continue for users who are in the meeting. - If this is set to False, the user will not be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. + Indicates whether the policy-based recording application must be in the call before the call is allowed to establish. + If this is set to True, the call will be cancelled if the policy-based recording application fails to join the call. + If this is set to False, call establishment will proceed normally if the policy-based recording application fails to join the call. Boolean @@ -35967,11 +38224,11 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetListTrue - RequiredBeforeCallEstablishment + RequiredBeforeMeetingJoin - Indicates whether the policy-based recording application must be in the call before the call is allowed to establish. - If this is set to True, the call will be cancelled if the policy-based recording application fails to join the call. - If this is set to False, call establishment will proceed normally if the policy-based recording application fails to join the call. + Indicates whether the policy-based recording application must be in the meeting before the user is allowed to join the meeting. + If this is set to True, the user will not be allowed to join the meeting if the policy-based recording application fails to join the meeting. The meeting will still continue for users who are in the meeting. + If this is set to False, the user will be allowed to join the meeting even if the policy-based recording application fails to join the meeting. Boolean @@ -35995,53 +38252,18 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetListTrue - ConcurrentInvitationCount - - Determines the number of invites to send out to the application instance of the policy-based recording application. Can be set to 1 or 2 only. - In situations where application resiliency is a necessity, multiple invites can be sent to the same application for the same call or meeting. If multiple such invites are accepted, then it means that multiple instances of this application are in the call or meeting and each of those instances can record independent of the others. - If all of the invites are rejected, the application invitation process is deemed a failure and the other flags for this application control what happens next. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredBeforeCallEstablishment parameters. - If at least one of the invites is accepted and the others are rejected, the application invitation process is still deemed a success. - If multiple invites are accepted and all of the instances leave or get dropped from the call or meeting, then the application is no longer in the call or meeting and the other flags for this application control what happens next. Please refer to the documentation of the RequiredDuringMeeting and RequiredDuringCall parameters. - If multiple invites are accepted and at least one of the instances remains in the call or meeting, then the application is in the call or meeting. - Note that application resiliency can be achieved either by sending multiple invites to the same application using ConcurrentInvitationCount or by sending invites to separate paired applications using ComplianceRecordingPairedApplications. However, you cannot do both. Please work with your Microsoft certified policy-based recording application provider to determine if application resiliency is needed for your workflows and how best to achieve application resiliency. - - UInt32 - - UInt32 - - - 1 - - - ComplianceRecordingPairedApplications - - Determines the other policy-based recording applications to pair with this application to achieve application resiliency. Can only have one paired application. - In situations where application resiliency is a necessity, invites can be sent to separate paired applications for the same call or meeting. If multiple such invites are accepted, then it means that multiple instances of this application are in the call or meeting and each of those instances can record independent of the others. - If all of the invites are rejected, the application invitation process is deemed a failure and the other flags for this application control what happens next. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredBeforeCallEstablishment parameters. - If at least one of the invites is accepted and the others are rejected, the application invitation process is still deemed a success. - If multiple invites are accepted and all of the instances leave or get dropped from the call or meeting, then the application is no longer in the call or meeting and the other flags for this application control what happens next. Please refer to the documentation of the RequiredDuringMeeting and RequiredDuringCall parameters. - If multiple invites are accepted and at least one of the instances remains in the call or meeting, then the application is in the call or meeting. - Note that application resiliency can be achieved either by sending multiple invites to the same application using ConcurrentInvitationCount or by sending invites to separate paired applications using ComplianceRecordingPairedApplications. However, you cannot do both. Please work with your Microsoft certified policy-based recording application provider to determine if application resiliency is needed for your workflows and how best to achieve application resiliency. - - ComplianceRecordingPairedApplication[] - - ComplianceRecordingPairedApplication[] - - - None - - - Priority + RequiredDuringMeeting - This priority determines the order in which the policy-based recording applications are displayed in the output of the Get-CsTeamsComplianceRecordingPolicy cmdlet. - All policy-based recording applications are invited in parallel to ensure low call setup and meeting join latencies. So this parameter does not affect the order of invitations to the applications, or any other routing. + Indicates whether the policy-based recording application must be in the meeting while the user is in the meeting. + If this is set to True, the user will be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. The meeting will still continue for users who are in the meeting. + If this is set to False, the user will not be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. - Int32 + Boolean - Int32 + Boolean - None + True Tenant @@ -36059,30 +38281,6 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList None - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - SwitchParameter - - SwitchParameter - - - False - WhatIf @@ -36174,43 +38372,43 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingapplication Get-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingpolicy New-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpolicy Set-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingpolicy Grant-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscompliancerecordingpolicy Remove-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingpolicy Get-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/get-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingapplication New-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/new-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingapplication Remove-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/remove-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingapplication New-CsTeamsComplianceRecordingPairedApplication - https://learn.microsoft.com/powershell/module/teams/new-csteamscompliancerecordingpairedapplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpairedapplication @@ -36246,43 +38444,29 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetListNone - CustomBanner + ComplianceRecordingApplications - References the Custom Banner text in the storage. + A list of application instances of policy-based recording applications to assign to this policy. The Id of each of these application instances must be the ObjectId of the application instance as obtained by the Get-CsOnlineApplicationInstance cmdlet. + Please work with your Microsoft certified policy-based recording application provider to obtain an instance of their recording application. Please refer to the documentation of the CsOnlineApplicationInstance cmdlets for information on how to create an application instance of a policy-based recording application. - Guid + ComplianceRecordingApplication[] - Guid + ComplianceRecordingApplication[] None - - Enabled + + Confirm - Controls whether this Teams recording policy is active or not. - Setting this to True and having the right set of ComplianceRecordingApplications will initiate automatic policy-based recording for all new calls and meetings of all Microsoft Teams users who are assigned this policy. Existing calls and meetings are unaffected. - Setting this to False will stop automatic policy-based recording for any new calls or meetings of all Microsoft Teams users who are assigned this policy. Existing calls and meetings are unaffected. + Prompts you for confirmation before running the cmdlet. - Boolean - Boolean + SwitchParameter False - - WarnUserOnRemoval - - This parameter is reserved for future use. - - Boolean - - Boolean - - - True - Description @@ -36296,22 +38480,21 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetListNone - ComplianceRecordingApplications + DisableComplianceRecordingAudioNotificationForCalls - A list of application instances of policy-based recording applications to assign to this policy. The Id of each of these application instances must be the ObjectId of the application instance as obtained by the Get-CsOnlineApplicationInstance cmdlet. - Please work with your Microsoft certified policy-based recording application provider to obtain an instance of their recording application. Please refer to the documentation of the CsOnlineApplicationInstance cmdlets for information on how to create an application instance of a policy-based recording application. + Setting this attribute to true disables recording audio notifications for 1:1 calls that are under compliance recording - ComplianceRecordingApplication[] + Boolean - ComplianceRecordingApplication[] + Boolean - None + False DisableComplianceRecordingAudioNotificationForCalls - Setting this attribute to true disables recording audio notifications for 1:1 calls that are under compliance recording + Setting this attribute to true disables recording audio notifications for 1:1 calls that are under compliance recording. Boolean @@ -36321,9 +38504,11 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetListFalse - DisableComplianceRecordingAudioNotificationForCalls + Enabled - Setting this attribute to true disables recording audio notifications for 1:1 calls that are under compliance recording. + Controls whether this Teams recording policy is active or not. + Setting this to True and having the right set of ComplianceRecordingApplications will initiate automatic policy-based recording for all new calls and meetings of all Microsoft Teams users who are assigned this policy. Existing calls and meetings are unaffected. + Setting this to False will stop automatic policy-based recording for any new calls or meetings of all Microsoft Teams users who are assigned this policy. Existing calls and meetings are unaffected. Boolean @@ -36332,6 +38517,29 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList False + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + CustomBanner + + References the Custom Banner text in the storage. + + Guid + + Guid + + + None + RecordReroutedCalls @@ -36360,27 +38568,17 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList None - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - Force + WarnUserOnRemoval - Suppresses the display of any non-fatal error message that might arise when running the command. + This parameter is reserved for future use. + Boolean - SwitchParameter + Boolean - False + True WhatIf @@ -36396,36 +38594,46 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList Set-CsTeamsComplianceRecordingPolicy - - Instance + + ComplianceRecordingApplications - Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. + A list of application instances of policy-based recording applications to assign to this policy. The Id of each of these application instances must be the ObjectId of the application instance as obtained by the Get-CsOnlineApplicationInstance cmdlet. + Please work with your Microsoft certified policy-based recording application provider to obtain an instance of their recording application. Please refer to the documentation of the CsOnlineApplicationInstance cmdlets for information on how to create an application instance of a policy-based recording application. - PSObject + ComplianceRecordingApplication[] - PSObject + ComplianceRecordingApplication[] None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + - CustomBanner + Description - References the Custom Banner text in the storage. + Enables administrators to provide explanatory text to accompany a Teams recording policy. For example, the Description might include information about the users the policy should be assigned to. - Guid + String - Guid + String None - Enabled + DisableComplianceRecordingAudioNotificationForCalls - Controls whether this Teams recording policy is active or not. - Setting this to True and having the right set of ComplianceRecordingApplications will initiate automatic policy-based recording for all new calls and meetings of all Microsoft Teams users who are assigned this policy. Existing calls and meetings are unaffected. - Setting this to False will stop automatic policy-based recording for any new calls or meetings of all Microsoft Teams users who are assigned this policy. Existing calls and meetings are unaffected. + Setting this attribute to true disables recording audio notifications for 1:1 calls that are under compliance recording Boolean @@ -36435,65 +38643,65 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetListFalse - WarnUserOnRemoval + DisableComplianceRecordingAudioNotificationForCalls - This parameter is reserved for future use. + Setting this attribute to true disables recording audio notifications for 1:1 calls that are under compliance recording. Boolean Boolean - True + False - Description + Enabled - Enables administrators to provide explanatory text to accompany a Teams recording policy. For example, the Description might include information about the users the policy should be assigned to. + Controls whether this Teams recording policy is active or not. + Setting this to True and having the right set of ComplianceRecordingApplications will initiate automatic policy-based recording for all new calls and meetings of all Microsoft Teams users who are assigned this policy. Existing calls and meetings are unaffected. + Setting this to False will stop automatic policy-based recording for any new calls or meetings of all Microsoft Teams users who are assigned this policy. Existing calls and meetings are unaffected. - String + Boolean - String + Boolean - None + False - ComplianceRecordingApplications + Force - A list of application instances of policy-based recording applications to assign to this policy. The Id of each of these application instances must be the ObjectId of the application instance as obtained by the Get-CsOnlineApplicationInstance cmdlet. - Please work with your Microsoft certified policy-based recording application provider to obtain an instance of their recording application. Please refer to the documentation of the CsOnlineApplicationInstance cmdlets for information on how to create an application instance of a policy-based recording application. + Suppresses the display of any non-fatal error message that might arise when running the command. - ComplianceRecordingApplication[] - ComplianceRecordingApplication[] + SwitchParameter - None + False - - DisableComplianceRecordingAudioNotificationForCalls + + Instance - Setting this attribute to true disables recording audio notifications for 1:1 calls that are under compliance recording + Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. - Boolean + PSObject - Boolean + PSObject - False + None - DisableComplianceRecordingAudioNotificationForCalls + CustomBanner - Setting this attribute to true disables recording audio notifications for 1:1 calls that are under compliance recording. + References the Custom Banner text in the storage. - Boolean + Guid - Boolean + Guid - False + None RecordReroutedCalls @@ -36523,27 +38731,17 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList None - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - Force + WarnUserOnRemoval - Suppresses the display of any non-fatal error message that might arise when running the command. + This parameter is reserved for future use. + Boolean - SwitchParameter + Boolean - False + True WhatIf @@ -36559,49 +38757,47 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList - - Identity + + ComplianceRecordingApplications - Unique identifier to be assigned to the new Teams recording policy. - Use the "Global" Identity if you wish to assign this policy to the entire tenant. + A list of application instances of policy-based recording applications to assign to this policy. The Id of each of these application instances must be the ObjectId of the application instance as obtained by the Get-CsOnlineApplicationInstance cmdlet. + Please work with your Microsoft certified policy-based recording application provider to obtain an instance of their recording application. Please refer to the documentation of the CsOnlineApplicationInstance cmdlets for information on how to create an application instance of a policy-based recording application. - XdsIdentity + ComplianceRecordingApplication[] - XdsIdentity + ComplianceRecordingApplication[] None - - Instance + + Confirm - Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. + Prompts you for confirmation before running the cmdlet. - PSObject + SwitchParameter - PSObject + SwitchParameter - None + False - CustomBanner + Description - References the Custom Banner text in the storage. + Enables administrators to provide explanatory text to accompany a Teams recording policy. For example, the Description might include information about the users the policy should be assigned to. - Guid + String - Guid + String None - Enabled + DisableComplianceRecordingAudioNotificationForCalls - Controls whether this Teams recording policy is active or not. - Setting this to True and having the right set of ComplianceRecordingApplications will initiate automatic policy-based recording for all new calls and meetings of all Microsoft Teams users who are assigned this policy. Existing calls and meetings are unaffected. - Setting this to False will stop automatic policy-based recording for any new calls or meetings of all Microsoft Teams users who are assigned this policy. Existing calls and meetings are unaffected. + Setting this attribute to true disables recording audio notifications for 1:1 calls that are under compliance recording Boolean @@ -36611,65 +38807,79 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetListFalse - WarnUserOnRemoval + DisableComplianceRecordingAudioNotificationForCalls - This parameter is reserved for future use. + Setting this attribute to true disables recording audio notifications for 1:1 calls that are under compliance recording. Boolean Boolean - True + False - Description + Enabled - Enables administrators to provide explanatory text to accompany a Teams recording policy. For example, the Description might include information about the users the policy should be assigned to. + Controls whether this Teams recording policy is active or not. + Setting this to True and having the right set of ComplianceRecordingApplications will initiate automatic policy-based recording for all new calls and meetings of all Microsoft Teams users who are assigned this policy. Existing calls and meetings are unaffected. + Setting this to False will stop automatic policy-based recording for any new calls or meetings of all Microsoft Teams users who are assigned this policy. Existing calls and meetings are unaffected. - String + Boolean - String + Boolean - None + False - ComplianceRecordingApplications + Force - A list of application instances of policy-based recording applications to assign to this policy. The Id of each of these application instances must be the ObjectId of the application instance as obtained by the Get-CsOnlineApplicationInstance cmdlet. - Please work with your Microsoft certified policy-based recording application provider to obtain an instance of their recording application. Please refer to the documentation of the CsOnlineApplicationInstance cmdlets for information on how to create an application instance of a policy-based recording application. + Suppresses the display of any non-fatal error message that might arise when running the command. - ComplianceRecordingApplication[] + SwitchParameter - ComplianceRecordingApplication[] + SwitchParameter + + + False + + + Identity + + Unique identifier to be assigned to the new Teams recording policy. + Use the "Global" Identity if you wish to assign this policy to the entire tenant. + + XdsIdentity + + XdsIdentity None - - DisableComplianceRecordingAudioNotificationForCalls + + Instance - Setting this attribute to true disables recording audio notifications for 1:1 calls that are under compliance recording + Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. - Boolean + PSObject - Boolean + PSObject - False + None - DisableComplianceRecordingAudioNotificationForCalls + CustomBanner - Setting this attribute to true disables recording audio notifications for 1:1 calls that are under compliance recording. + References the Custom Banner text in the storage. - Boolean + Guid - Boolean + Guid - False + None RecordReroutedCalls @@ -36699,29 +38909,17 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList None - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - Force + WarnUserOnRemoval - Suppresses the display of any non-fatal error message that might arise when running the command. + This parameter is reserved for future use. - SwitchParameter + Boolean - SwitchParameter + Boolean - False + True WhatIf @@ -36803,43 +39001,43 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingpolicy Get-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingpolicy New-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpolicy Grant-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscompliancerecordingpolicy Remove-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingpolicy Get-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/get-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingapplication New-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/new-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingapplication Set-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/set-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingapplication Remove-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/remove-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingapplication New-CsTeamsComplianceRecordingPairedApplication - https://learn.microsoft.com/powershell/module/teams/new-csteamscompliancerecordingpairedapplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpairedapplication @@ -37003,7 +39201,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList Instance - Pass in the policy fetched from Get-CsTeamsEducationAssignmentsAppPolicy + Pass in the policy fetched from Get-CsTeamsEducationAssignmentsAppPolicy. PSObject @@ -37137,7 +39335,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList Instance - Pass in the policy fetched from Get-CsTeamsEducationAssignmentsAppPolicy + Pass in the policy fetched from Get-CsTeamsEducationAssignmentsAppPolicy. PSObject @@ -37268,15 +39466,15 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamseducationassignmentsapppolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamseducationassignmentsapppolicy - Set-CsTeamsEdcuationConfiguration + Set-CsTeamsEducationConfiguration Set - CsTeamsEdcuationConfiguration + CsTeamsEducationConfiguration This cmdlet is used to manage the organization-wide education configuration for Teams. @@ -37287,15 +39485,15 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList - Set-CsTeamsEdcuationConfiguration + Set-CsTeamsEducationConfiguration ParentGuardianPreferredContactMethod Indicates whether Email or SMS is the preferred contact method used for parent communication invitations. Possible values are 'Email' and 'SMS'. - String + System.String - String + System.String Email @@ -37305,13 +39503,40 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList Indicates whether updating parents contact information is Enabled/Disabled by educators. Possible values are 'Enabled' and 'Disabled'. - String + System.String - String + System.String Enabled + + EduGenerativeAIEnhancements + + Controls whether generative AI enhancements are enabled in the education environment. + Possible values: + - `Enabled`: Generative AI features are available to educators and students. + - `Disabled`: Generative AI features are disabled across the tenant. + + System.String + + System.String + + + Enabled + + + Identity + + Specifies the identity of the education configuration to set. + + System.String + + System.String + + + Global + @@ -37320,9 +39545,9 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList Indicates whether Email or SMS is the preferred contact method used for parent communication invitations. Possible values are 'Email' and 'SMS'. - String + System.String - String + System.String Email @@ -37332,13 +39557,40 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList Indicates whether updating parents contact information is Enabled/Disabled by educators. Possible values are 'Enabled' and 'Disabled'. - String + System.String - String + System.String Enabled + + EduGenerativeAIEnhancements + + Controls whether generative AI enhancements are enabled in the education environment. + Possible values: + - `Enabled`: Generative AI features are available to educators and students. + - `Disabled`: Generative AI features are disabled across the tenant. + + System.String + + System.String + + + Enabled + + + Identity + + Specifies the identity of the education configuration to set. + + System.String + + System.String + + + Global + @@ -37380,11 +39632,11 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamseducationconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamseducationconfiguration Get-CsTeamsEducationConfiguration - https://learn.microsoft.com/powershell/module/teams/get-csteamseducationconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamseducationconfiguration @@ -37415,6 +39667,17 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + Description @@ -37520,20 +39783,21 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + Description @@ -37643,18 +39907,6 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - @@ -37692,27 +39944,27 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsemergencycallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallingpolicy New-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsemergencycallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallingpolicy Get-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsemergencycallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsemergencycallingpolicy Remove-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsemergencycallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsemergencycallingpolicy Grant-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsemergencycallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsemergencycallingpolicy New-CsTeamsEmergencyCallingExtendedNotification - https://learn.microsoft.com/powershell/module/teams/new-csteamsemergencycallingextendednotification + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallingextendednotification @@ -37744,9 +39996,10 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a None - AllowWebinars + AllowedQuestionTypesInRegistrationForm - This setting governs if a user can create webinars using Teams Events. Possible values are: - Enabled : Enables creating webinars. - Disabled : Disables creating webinars. + This setting governs which users in a tenant can add which registration form questions to an event registration page for attendees to answer when registering for the event. + Possible values are: DefaultOnly, DefaultAndPredefinedOnly, AllQuestions. String @@ -37756,9 +40009,10 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a None - Description + AllowedTownhallTypesForRecordingPublish - Enables administrators to provide explanatory text to accompany a Teams Events policy. + This setting describes how IT admins can control which types of Town Hall attendees can have their recordings published. + Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. String @@ -37768,21 +40022,22 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a None - UseMicrosoftECDN + AllowedWebinarTypesForRecordingPublish - This setting governs whether the admin disables this property and prevents the organizers from creating town halls that use Microsoft eCDN even though they have been assigned a Teams Premium license. + This setting describes how IT admins can control which types of webinar attendees can have their recordings published. + Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. - Boolean + String - Boolean + String None - AllowTownhalls + AllowEmailEditing - This setting governs if a user can create town halls using Teams Events. Possible values are: - Enabled : Enables creating town halls. - Disabled : Disables creating town halls. + This setting governs if a user is allowed to edit the communication emails in Teams Town Hall or Teams Webinar events. Possible values are: - Enabled : Enables editing of communication emails. - Disabled : Disables editing of communication emails. String @@ -37792,21 +40047,34 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a None - TownhallEventAttendeeAccess + AllowEventIntegrations - This setting governs what identity types may attend a Town hall that is scheduled by a particular person or group that is assigned this policy. Possible values are: - Everyone : Anyone with the join link may enter the event. - EveryoneInOrganizationAndGuests : Only those who are Guests to the tenant, MTO users, and internal AAD users may enter the event. + This setting governs access to the integrations tab in the event creation workflow. + Possible values true, false. + + Boolean + + Boolean + + + None + + + AllowTownhalls + + This setting governs if a user can create town halls using Teams Events. Possible values are: - Enabled : Enables creating town halls. - Disabled : Disables creating town halls. String String - Everyone + None - Description + AllowWebinars - Enables administrators to provide explanatory text to accompany a Teams Events policy. + This setting governs if a user can create webinars using Teams Events. Possible values are: - Enabled : Enables creating webinars. - Disabled : Disables creating webinars. String @@ -37816,16 +40084,28 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a None - AllowEmailEditing + BroadcastPremiumApps - This setting governs if a user is allowed to edit the communication emails in Teams Town Hall or Teams Webinar events. Possible values are: - Enabled : Enables editing of communication emails. - Disabled : Disables editing of communication emails. + This setting will enable Tenant Admins to specify if an organizer of a Teams Premium town hall may add an app that is accessible by everyone, including attendees, in a broadcast style Event including a Town hall. This does not include control over apps (such as AI Producer and Custom Streaming Apps) that are only accessible by the Event group. + Possible values are: - Enabled : An organizer of a Premium town hall can add a Premium App such as Polls to the Town hall - Disabled : An organizer of a Premium town hall CANNOT add a Premium App such as Polls to the Town hall String String - None + Enabled + + + Confirm + + The Confirm switch does not work with this cmdlet. + + + SwitchParameter + + + False Confirm @@ -37851,10 +40131,9 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a None - EventAccessType + Description - > [!NOTE] > Currently, webinar and town hall event access is managed together via EventAccessType. - This setting governs which users can access the event registration page or the event site to register. It also governs which user type is allowed to join the session/s in the event. Possible values are: - Everyone : Enables creating events to allow in-tenant, guests, federated, and anonymous (external to the tenant) users to register and join the event. - EveryoneInCompanyExcludingGuests : Enables creating events to allow only in-tenant users to register and join the event. + Enables administrators to provide explanatory text to accompany a Teams Events policy. String @@ -37864,10 +40143,9 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a None - AllowedQuestionTypesInRegistrationForm + Description - This setting governs which users in a tenant can add which registration form questions to an event registration page for attendees to answer when registering for the event. - Possible values are: DefaultOnly, DefaultAndPredefinedOnly, AllQuestions. + Enables administrators to provide explanatory text to accompany a Teams Events policy. String @@ -37877,10 +40155,10 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a None - AllowedTownhallTypesForRecordingPublish + EventAccessType - This setting describes how IT admins can control which types of Town Hall attendees can have their recordings published. - Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. + > [!NOTE] > Currently, webinar and town hall event access is managed together via EventAccessType. + This setting governs which users can access the event registration page or the event site to register. It also governs which user type is allowed to join the session/s in the event. Possible values are: - Everyone : Enables creating events to allow in-tenant, guests, federated, and anonymous (external to the tenant) users to register and join the event. - EveryoneInCompanyExcludingGuests : Enables creating events to allow only in-tenant users to register and join the event. String @@ -37890,69 +40168,67 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a None - AllowedWebinarTypesForRecordingPublish + ImmersiveEvents - This setting describes how IT admins can control which types of webinar attendees can have their recordings published. - Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. + This setting governs if a user can create Immersive Events using Teams Events. Possible values are: - Enabled : Enables creating Immersive Events. - Disabled : Disables creating Immersive Events. String String - None + Enabled - AllowEventIntegrations + RecordingForTownhall - This setting governs access to the integrations tab in the event creation workflow. - Possible values true, false. + Determines whether recording is allowed in a user's townhall. + Possible values are: - Enabled : Allow recording in user's townhalls. - Disabled : Prohibit recording in user's townhalls. - Boolean + String - Boolean + String - None + Enabled - TownhallChatExperience + RecordingForWebinar - This setting governs whether the user can enable the Comment Stream chat experience for Town Halls. - Possible values are: Optimized, None. + Determines whether recording is allowed in a user's webinar. + Possible values are: - Enabled : Allow recording in user's webinars. - Disabled : Prohibit recording in user's webinars. String String - None + Enabled - RecordingForTownhall + TownhallChatExperience - Determines whether recording is allowed in a user's townhall. - Possible values are: - Enabled : Allow recording in user's townhalls. - Disabled : Prohibit recording in user's townhalls. + This setting governs whether the user can enable the Comment Stream chat experience for Town Halls. + Possible values are: Optimized, None. String String - Enabled + None - RecordingForWebinar + TownhallEventAttendeeAccess - Determines whether recording is allowed in a user's webinar. - Possible values are: - Enabled : Allow recording in user's webinars. - Disabled : Prohibit recording in user's webinars. + This setting governs what identity types may attend a Town hall that is scheduled by a particular person or group that is assigned this policy. Possible values are: - Everyone : Anyone with the join link may enter the event. - EveryoneInOrganizationAndGuests : Only those who are Guests to the tenant, MTO users, and internal AAD users may enter the event. String String - Enabled + Everyone TranscriptionForTownhall @@ -37980,16 +40256,43 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a Enabled - - Confirm + + UseMicrosoftECDN - The Confirm switch does not work with this cmdlet. + This setting governs whether the admin disables this property and prevents the organizers from creating town halls that use Microsoft eCDN even though they have been assigned a Teams Premium license. + Boolean - SwitchParameter + Boolean - False + None + + + MaxResolutionForTownhall + + This policy sets the maximum video resolution supported in Town hall events. + Possible values are: - Max720p : Town halls support video resolution up to 720p. - Max1080p : Town halls support video resolution up to 1080p. + + String + + String + + + Max1080p + + + HighBitrateForTownhall + + This policy controls whether high-bitrate streaming is enabled for Town hall events. + Possible values are: - Enabled : Enables high bitrate for Town hall events. - Disabled : Disables high bitrate for Town hall events. + + String + + String + + + Disabled WhatIf @@ -38006,9 +40309,10 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a - AllowWebinars + AllowedQuestionTypesInRegistrationForm - This setting governs if a user can create webinars using Teams Events. Possible values are: - Enabled : Enables creating webinars. - Disabled : Disables creating webinars. + This setting governs which users in a tenant can add which registration form questions to an event registration page for attendees to answer when registering for the event. + Possible values are: DefaultOnly, DefaultAndPredefinedOnly, AllQuestions. String @@ -38018,9 +40322,10 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a None - Description + AllowedTownhallTypesForRecordingPublish - Enables administrators to provide explanatory text to accompany a Teams Events policy. + This setting describes how IT admins can control which types of Town Hall attendees can have their recordings published. + Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. String @@ -38030,21 +40335,22 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a None - UseMicrosoftECDN + AllowedWebinarTypesForRecordingPublish - This setting governs whether the admin disables this property and prevents the organizers from creating town halls that use Microsoft eCDN even though they have been assigned a Teams Premium license. + This setting describes how IT admins can control which types of webinar attendees can have their recordings published. + Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. - Boolean + String - Boolean + String None - AllowTownhalls + AllowEmailEditing - This setting governs if a user can create town halls using Teams Events. Possible values are: - Enabled : Enables creating town halls. - Disabled : Disables creating town halls. + This setting governs if a user is allowed to edit the communication emails in Teams Town Hall or Teams Webinar events. Possible values are: - Enabled : Enables editing of communication emails. - Disabled : Disables editing of communication emails. String @@ -38054,21 +40360,34 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a None - TownhallEventAttendeeAccess + AllowEventIntegrations - This setting governs what identity types may attend a Town hall that is scheduled by a particular person or group that is assigned this policy. Possible values are: - Everyone : Anyone with the join link may enter the event. - EveryoneInOrganizationAndGuests : Only those who are Guests to the tenant, MTO users, and internal AAD users may enter the event. + This setting governs access to the integrations tab in the event creation workflow. + Possible values true, false. + + Boolean + + Boolean + + + None + + + AllowTownhalls + + This setting governs if a user can create town halls using Teams Events. Possible values are: - Enabled : Enables creating town halls. - Disabled : Disables creating town halls. String String - Everyone + None - Description + AllowWebinars - Enables administrators to provide explanatory text to accompany a Teams Events policy. + This setting governs if a user can create webinars using Teams Events. Possible values are: - Enabled : Enables creating webinars. - Disabled : Disables creating webinars. String @@ -38078,16 +40397,17 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a None - AllowEmailEditing + BroadcastPremiumApps - This setting governs if a user is allowed to edit the communication emails in Teams Town Hall or Teams Webinar events. Possible values are: - Enabled : Enables editing of communication emails. - Disabled : Disables editing of communication emails. + This setting will enable Tenant Admins to specify if an organizer of a Teams Premium town hall may add an app that is accessible by everyone, including attendees, in a broadcast style Event including a Town hall. This does not include control over apps (such as AI Producer and Custom Streaming Apps) that are only accessible by the Event group. + Possible values are: - Enabled : An organizer of a Premium town hall can add a Premium App such as Polls to the Town hall - Disabled : An organizer of a Premium town hall CANNOT add a Premium App such as Polls to the Town hall String String - None + Enabled Confirm @@ -38101,6 +40421,42 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a False + + Confirm + + The Confirm switch does not work with this cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text to accompany a Teams Events policy. + + String + + String + + + None + + + Description + + Enables administrators to provide explanatory text to accompany a Teams Events policy. + + String + + String + + + None + Description @@ -38139,75 +40495,73 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a None - AllowedQuestionTypesInRegistrationForm + ImmersiveEvents - This setting governs which users in a tenant can add which registration form questions to an event registration page for attendees to answer when registering for the event. - Possible values are: DefaultOnly, DefaultAndPredefinedOnly, AllQuestions. + This setting governs if a user can create Immersive Events using Teams Events. Possible values are: - Enabled : Enables creating Immersive Events. - Disabled : Disables creating Immersive Events. String String - None + Enabled - AllowedTownhallTypesForRecordingPublish + RecordingForTownhall - This setting describes how IT admins can control which types of Town Hall attendees can have their recordings published. - Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. + Determines whether recording is allowed in a user's townhall. + Possible values are: - Enabled : Allow recording in user's townhalls. - Disabled : Prohibit recording in user's townhalls. String String - None + Enabled - AllowedWebinarTypesForRecordingPublish + RecordingForWebinar - This setting describes how IT admins can control which types of webinar attendees can have their recordings published. - Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. + Determines whether recording is allowed in a user's webinar. + Possible values are: - Enabled : Allow recording in user's webinars. - Disabled : Prohibit recording in user's webinars. String String - None + Enabled - AllowEventIntegrations + TownhallChatExperience - This setting governs access to the integrations tab in the event creation workflow. - Possible values true, false. + This setting governs whether the user can enable the Comment Stream chat experience for Town Halls. + Possible values are: Optimized, None. - Boolean + String - Boolean + String None - TownhallChatExperience + TownhallEventAttendeeAccess - This setting governs whether the user can enable the Comment Stream chat experience for Town Halls. - Possible values are: Optimized, None. + This setting governs what identity types may attend a Town hall that is scheduled by a particular person or group that is assigned this policy. Possible values are: - Everyone : Anyone with the join link may enter the event. - EveryoneInOrganizationAndGuests : Only those who are Guests to the tenant, MTO users, and internal AAD users may enter the event. String String - None + Everyone - RecordingForTownhall + TranscriptionForTownhall - Determines whether recording is allowed in a user's townhall. - Possible values are: - Enabled : Allow recording in user's townhalls. - Disabled : Prohibit recording in user's townhalls. + Determines whether transcriptions are allowed in a user's townhall. + Possible values are: - Enabled : Allow transcriptions in user's townhalls. - Disabled : Prohibit transcriptions in user's townhalls. String @@ -38217,10 +40571,10 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a Enabled - RecordingForWebinar + TranscriptionForWebinar - Determines whether recording is allowed in a user's webinar. - Possible values are: - Enabled : Allow recording in user's webinars. - Disabled : Prohibit recording in user's webinars. + Determines whether transcriptions are allowed in a user's webinar. + Possible values are: - Enabled : Allow transcriptions in user's webinars. - Disabled : Prohibit transcriptions in user's webinars. String @@ -38230,42 +40584,42 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a Enabled - TranscriptionForTownhall + UseMicrosoftECDN - Determines whether transcriptions are allowed in a user's townhall. - Possible values are: - Enabled : Allow transcriptions in user's townhalls. - Disabled : Prohibit transcriptions in user's townhalls. + This setting governs whether the admin disables this property and prevents the organizers from creating town halls that use Microsoft eCDN even though they have been assigned a Teams Premium license. - String + Boolean - String + Boolean - Enabled + None - TranscriptionForWebinar + MaxResolutionForTownhall - Determines whether transcriptions are allowed in a user's webinar. - Possible values are: - Enabled : Allow transcriptions in user's webinars. - Disabled : Prohibit transcriptions in user's webinars. + This policy sets the maximum video resolution supported in Town hall events. + Possible values are: - Max720p : Town halls support video resolution up to 720p. - Max1080p : Town halls support video resolution up to 1080p. String String - Enabled + Max1080p - - Confirm + + HighBitrateForTownhall - The Confirm switch does not work with this cmdlet. + This policy controls whether high-bitrate streaming is enabled for Town hall events. + Possible values are: - Enabled : Enables high bitrate for Town hall events. - Disabled : Disables high bitrate for Town hall events. - SwitchParameter + String - SwitchParameter + String - False + Disabled WhatIf @@ -38317,7 +40671,7 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamseventspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamseventspolicy @@ -38349,28 +40703,28 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a None - BlockExternalAccessUserAccess + BlockedUsers - Designates whether BlockedUsers list is taking effect or not. $true means BlockedUsers are blocked and can't communicate with internal users. + You can specify blocked users using a List object that contains either the user email or the MRI from the external user you want to block. The user in the list will not able to communicate with the internal users in your organization. - Boolean + List - Boolean + List - False + None - BlockedUsers + BlockExternalAccessUserAccess - You can specify blocked users using a List object that contains either the user email or the MRI from the external user you want to block. The user in the list will not able to communicate with the internal users in your organization. + Designates whether BlockedUsers list is taking effect or not. $true means BlockedUsers are blocked and can't communicate with internal users. - List + Boolean - List + Boolean - None + False Force @@ -38398,28 +40752,28 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a - BlockExternalAccessUserAccess + BlockedUsers - Designates whether BlockedUsers list is taking effect or not. $true means BlockedUsers are blocked and can't communicate with internal users. + You can specify blocked users using a List object that contains either the user email or the MRI from the external user you want to block. The user in the list will not able to communicate with the internal users in your organization. - Boolean + List - Boolean + List - False + None - BlockedUsers + BlockExternalAccessUserAccess - You can specify blocked users using a List object that contains either the user email or the MRI from the external user you want to block. The user in the list will not able to communicate with the internal users in your organization. + Designates whether BlockedUsers list is taking effect or not. $true means BlockedUsers are blocked and can't communicate with internal users. - List + Boolean - List + Boolean - None + False Force @@ -38502,7 +40856,7 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsexternalaccessconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsexternalaccessconfiguration @@ -38533,125 +40887,125 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a None - - Confirm + + AllowEmailCollection - Prompts you for confirmation before running the cmdlet. + Set this to TRUE to enable Email collection. + Boolean - SwitchParameter + Boolean - False + None - Force + AllowLogCollection - Suppresses any confirmation prompts that would otherwise be displayed before making changes and suppresses the display of any non-fatal error message that might arise when running the command. + Set this to TRUE to enable log collection. + Boolean - SwitchParameter + Boolean - False + None - Instance + AllowScreenshotCollection - Internal Microsoft use. + Set this to TRUE to enable Screenshot collection. - Object + Boolean - Object + Boolean None - - ReceiveSurveysMode + + Confirm - Set the receiveSurveysMode parameter to enabled to allow users who are assigned the policy to receive the survey. Set it to EnabledUserOverride to have users receive the survey and allow them to opt out. - Possible values: - Enabled - Disabled - EnabledUserOverride + Prompts you for confirmation before running the cmdlet. - String - String + SwitchParameter - Enabled + False - Tenant + EnableFeatureSuggestions - Internal Microsoft use. + This setting will enable Tenant Admins to hide or show the Teams menu item "Help | Suggest a Feature". Possible Values: True, False - Object + Boolean - Object + Boolean None - UserInitiatedMode + Force - Set the userInitiatedMode parameter to enabled to allow users who are assigned the policy to give feedback. Setting the parameter to disabled turns off the feature and users who are assigned the policy don't have the option to give feedback. - Possible values: - Enabled - Disabled + Suppresses any confirmation prompts that would otherwise be displayed before making changes and suppresses the display of any non-fatal error message that might arise when running the command. - String - String + SwitchParameter - Enabled + False - AllowEmailCollection + Instance - Set this to TRUE to enable Email collection. + Internal Microsoft use. - Boolean + Object - Boolean + Object None - AllowLogCollection + ReceiveSurveysMode - Set this to TRUE to enable log collection. + Set the receiveSurveysMode parameter to enabled to allow users who are assigned the policy to receive the survey. Set it to EnabledUserOverride to have users receive the survey and allow them to opt out. + Possible values: - Enabled - Disabled - EnabledUserOverride - Boolean + String - Boolean + String - None + Enabled - AllowScreenshotCollection + Tenant - Set this to TRUE to enable Screenshot collection. + Internal Microsoft use. - Boolean + Object - Boolean + Object None - EnableFeatureSuggestions + UserInitiatedMode - This setting will enable Tenant Admins to hide or show the Teams menu item "Help | Suggest a Feature". Possible Values: True, False + Set the userInitiatedMode parameter to enabled to allow users who are assigned the policy to give feedback. Setting the parameter to disabled turns off the feature and users who are assigned the policy don't have the option to give feedback. + Possible values: - Enabled - Disabled - Boolean + String - Boolean + String - None + Enabled WhatIf @@ -38667,14 +41021,38 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a - - Identity + + AllowEmailCollection - The unique identifier of the policy. + Set this to TRUE to enable Email collection. - String + Boolean - String + Boolean + + + None + + + AllowLogCollection + + Set this to TRUE to enable log collection. + + Boolean + + Boolean + + + None + + + AllowScreenshotCollection + + Set this to TRUE to enable Screenshot collection. + + Boolean + + Boolean None @@ -38691,6 +41069,18 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a False + + EnableFeatureSuggestions + + This setting will enable Tenant Admins to hide or show the Teams menu item "Help | Suggest a Feature". Possible Values: True, False + + Boolean + + Boolean + + + None + Force @@ -38703,6 +41093,18 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a False + + Identity + + The unique identifier of the policy. + + String + + String + + + None + Instance @@ -38753,54 +41155,6 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a Enabled - - AllowEmailCollection - - Set this to TRUE to enable Email collection. - - Boolean - - Boolean - - - None - - - AllowLogCollection - - Set this to TRUE to enable log collection. - - Boolean - - Boolean - - - None - - - AllowScreenshotCollection - - Set this to TRUE to enable Screenshot collection. - - Boolean - - Boolean - - - None - - - EnableFeatureSuggestions - - This setting will enable Tenant Admins to hide or show the Teams menu item "Help | Suggest a Feature". Possible Values: True, False - - Boolean - - Boolean - - - None - WhatIf @@ -38851,7 +41205,7 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsfeedbackpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsfeedbackpolicy @@ -38882,17 +41236,16 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a None - - NativeFileEntryPoints + + Confirm - This parameter is enabled by default, which shows the option to upload content from ODSP to Teams chats or channels. . Possible values are Enabled or Disabled. + Prompts you for confirmation before executing the command. - String - String + SwitchParameter - None + False DefaultFileUploadAppId @@ -38906,27 +41259,19 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a None - - WhatIf - - Describes what would happen if you executed the command without actually executing the command. - - - SwitchParameter - - - False - - - Confirm + + FileSharingInChatswithExternalUsers - Prompts you for confirmation before executing the command. + Indicates if file sharing in chats with external users is enabled. It is by default enabled, to disable admins can run following command. + + Set-CsTeamsFilesPolicy -Identity Global -FileSharingInChatswithExternalUsers Disabled + String - SwitchParameter + String - False + Enabled Force @@ -38940,9 +41285,9 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a False - FileSharingInChatswithExternalUsers + NativeFileEntryPoints - Indicates if file sharing in chats with external users is enabled. + This parameter is enabled by default, which shows the option to upload content from ODSP to Teams chats or channels. . Possible values are Enabled or Disabled. String @@ -38963,25 +41308,36 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a None + + WhatIf + + Describes what would happen if you executed the command without actually executing the command. + + + SwitchParameter + + + False + - - Identity + + Confirm - A unique identifier specifying the scope, and in some cases the name, of the policy. + Prompts you for confirmation before executing the command. - String + SwitchParameter - String + SwitchParameter - None + False - NativeFileEntryPoints + DefaultFileUploadAppId - This parameter is enabled by default, which shows the option to upload content from ODSP to Teams chats or channels. . Possible values are Enabled or Disabled. + This can be used by the 3p apps to configure their app, so when the files will be dragged and dropped in compose, it will get uploaded in that 3P app. String @@ -38991,21 +41347,23 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a None - DefaultFileUploadAppId + FileSharingInChatswithExternalUsers - This can be used by the 3p apps to configure their app, so when the files will be dragged and dropped in compose, it will get uploaded in that 3P app. + Indicates if file sharing in chats with external users is enabled. It is by default enabled, to disable admins can run following command. + + Set-CsTeamsFilesPolicy -Identity Global -FileSharingInChatswithExternalUsers Disabled String String - None + Enabled - - WhatIf + + Force - Describes what would happen if you executed the command without actually executing the command. + Suppresses the display of any non-fatal error message that might arise when running the command. SwitchParameter @@ -39014,34 +41372,34 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a False - - Confirm + + Identity - Prompts you for confirmation before executing the command. + A unique identifier specifying the scope, and in some cases the name, of the policy. - SwitchParameter + String - SwitchParameter + String - False + None - Force + NativeFileEntryPoints - Suppresses the display of any non-fatal error message that might arise when running the command. + This parameter is enabled by default, which shows the option to upload content from ODSP to Teams chats or channels. . Possible values are Enabled or Disabled. - SwitchParameter + String - SwitchParameter + String - False + None - FileSharingInChatswithExternalUsers + SPChannelFilesTab - Indicates if file sharing in chats with external users is enabled. + Indicates whether Iframe channel files tab is enabled, if not, integrated channel files tab will be enabled. String @@ -39050,17 +41408,17 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a None - - SPChannelFilesTab + + WhatIf - Indicates whether Iframe channel files tab is enabled, if not, integrated channel files tab will be enabled. + Describes what would happen if you executed the command without actually executing the command. - String + SwitchParameter - String + SwitchParameter - None + False @@ -39089,23 +41447,23 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsfilespolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsfilespolicy Get-CsTeamsFilesPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsfilespolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsfilespolicy Get-CsTeamsFilesPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsfilespolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsfilespolicy Get-CsTeamsFilesPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsfilespolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsfilespolicy Get-CsTeamsFilesPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsfilespolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsfilespolicy @@ -39124,18 +41482,6 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a Set-CsTeamsMediaConnectivityPolicy - - Identity - - Identity of the Teams media connectivity policy. - - String - - String - - - None - DirectConnection @@ -39148,9 +41494,6 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a Enabled - - - Set-CsTeamsMediaConnectivityPolicy Identity @@ -39163,6 +41506,9 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a None + + + Set-CsTeamsMediaConnectivityPolicy DirectConnection @@ -39175,32 +41521,44 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a Enabled + + Identity + + Identity of the Teams media connectivity policy. + + String + + String + + + None + - Identity + DirectConnection - Identity of the Teams media connectivity policy. + Policy value of the Teams media connectivity DirectConnection policy. - String + Boolean - String + Boolean - None + Enabled - DirectConnection + Identity - Policy value of the Teams media connectivity DirectConnection policy. + Identity of the Teams media connectivity policy. - Boolean + String - Boolean + String - Enabled + None @@ -39227,23 +41585,23 @@ Tag:Test Disabled Online Version: - https://learn.microsoft.com/powershell/module/teams/Set-CsTeamsMediaConnectivityPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/Set-CsTeamsMediaConnectivityPolicy New-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsmediaconnectivitypolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmediaconnectivitypolicy Remove-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsmediaconnectivitypolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmediaconnectivitypolicy Get-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsmediaconnectivitypolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmediaconnectivitypolicy Grant-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsmediaconnectivitypolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmediaconnectivitypolicy @@ -39274,6 +41632,17 @@ Tag:Test Disabled None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + DefaultTheme @@ -39311,21 +41680,20 @@ Tag:Test Disabled None - MeetingBackgroundImages + Force - This parameter is reserved for Microsoft internal use only. List of meeting background images. It is not possible to add or remove background images using cmdlets. You should use Teams Admin Center for that purpose. + Suppresses any confirmation prompts that would otherwise be displayed before making changes. - PSListModifier - PSListModifier + SwitchParameter - None + False - MeetingBrandingThemes + MeetingBackgroundImages - List of meeting branding themes. You can alter the list returned by the `Get-CsTeamsMeetingBrandingPolicy` cmdlet and pass it to this parameter. It is not possible to add or remove meeting branding themes using cmdlets. You should use Teams Admin Center for that purpose. + This parameter is reserved for Microsoft internal use only. List of meeting background images. It is not possible to add or remove background images using cmdlets. You should use Teams Admin Center for that purpose. PSListModifier @@ -39334,27 +41702,17 @@ Tag:Test Disabled None - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - Force + MeetingBrandingThemes - Suppresses any confirmation prompts that would otherwise be displayed before making changes. + List of meeting branding themes. You can alter the list returned by the `Get-CsTeamsMeetingBrandingPolicy` cmdlet and pass it to this parameter. It is not possible to add or remove meeting branding themes using cmdlets. You should use Teams Admin Center for that purpose. + PSListModifier - SwitchParameter + PSListModifier - False + None WhatIf @@ -39370,6 +41728,18 @@ Tag:Test Disabled + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + DefaultTheme @@ -39406,6 +41776,18 @@ Tag:Test Disabled None + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + SwitchParameter + + SwitchParameter + + + False + Identity @@ -39442,30 +41824,6 @@ Tag:Test Disabled None - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Force - - Suppresses any confirmation prompts that would otherwise be displayed before making changes. - - SwitchParameter - - SwitchParameter - - - False - WhatIf @@ -39501,27 +41859,27 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsmeetingbrandingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingbrandingpolicy Get-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsmeetingbrandingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingbrandingpolicy Grant-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsmeetingbrandingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingbrandingpolicy New-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsmeetingbrandingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingbrandingpolicy Remove-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsmeetingbrandingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingbrandingpolicy Set-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsmeetingbrandingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingbrandingpolicy @@ -39671,6 +42029,20 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None + + DisableAppInteractionForAnonymousUsers + + Determines if anonymous users can interact with apps in meetings. Set to TRUE to disable App interaction. Possible values: + - True + - False + + Boolean + + Boolean + + + None + EnableQoS @@ -39683,6 +42055,20 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None + + FeedbackSurveyForAnonymousUsers + + Determines if anonymous participants receive surveys to provide feedback about their meeting experience. Set to Disabled to disable anonymous meeting participants to receive surveys. Set to Enabled to allow anonymous meeting participants to receive surveys. Possible values: + - Enabled + - Disabled + + String + + String + + + Enabled + Force @@ -39731,27 +42117,25 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None - LogoURL + LimitPresenterRolePermissions - URL to a logo image. This would be included in the meeting invite. Please ensure this URL is publicly accessible for invites that go beyond your federation boundaries + When set to True, users within the Tenant will have their presenter role capabilities limited. When set to False, the presenter role capabilities will not be impacted and will remain as is. - String + Boolean - String + Boolean None - DisableAppInteractionForAnonymousUsers + LogoURL - Determines if anonymous users can interact with apps in meetings. Set to TRUE to disable App interaction. Possible values: - - True - - False + URL to a logo image. This would be included in the meeting invite. Please ensure this URL is publicly accessible for invites that go beyond your federation boundaries - Boolean + String - Boolean + String None @@ -39768,32 +42152,6 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None - - FeedbackSurveyForAnonymousUsers - - Determines if anonymous participants receive surveys to provide feedback about their meeting experience. Set to Disabled to disable anonymous meeting participants to receive surveys. Set to Enabled to allow anonymous meeting participants to receive surveys. Possible values: - - Enabled - - Disabled - - String - - String - - - Enabled - - - LimitPresenterRolePermissions - - When set to True, users within the Tenant will have their presenter role capabilities limited. When set to False, the presenter role capabilities will not be impacted and will remain as is. - - Boolean - - Boolean - - - None - WhatIf @@ -39928,6 +42286,20 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None + + DisableAppInteractionForAnonymousUsers + + Determines if anonymous users can interact with apps in meetings. Set to TRUE to disable App interaction. Possible values: + - True + - False + + Boolean + + Boolean + + + None + EnableQoS @@ -39940,6 +42312,20 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None + + FeedbackSurveyForAnonymousUsers + + Determines if anonymous participants receive surveys to provide feedback about their meeting experience. Set to Disabled to disable anonymous meeting participants to receive surveys. Set to Enabled to allow anonymous meeting participants to receive surveys. Possible values: + - Enabled + - Disabled + + String + + String + + + Enabled + Force @@ -40001,27 +42387,25 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None - LogoURL + LimitPresenterRolePermissions - URL to a logo image. This would be included in the meeting invite. Please ensure this URL is publicly accessible for invites that go beyond your federation boundaries + When set to True, users within the Tenant will have their presenter role capabilities limited. When set to False, the presenter role capabilities will not be impacted and will remain as is. - String + Boolean - String + Boolean None - DisableAppInteractionForAnonymousUsers + LogoURL - Determines if anonymous users can interact with apps in meetings. Set to TRUE to disable App interaction. Possible values: - - True - - False + URL to a logo image. This would be included in the meeting invite. Please ensure this URL is publicly accessible for invites that go beyond your federation boundaries - Boolean + String - Boolean + String None @@ -40038,32 +42422,6 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None - - FeedbackSurveyForAnonymousUsers - - Determines if anonymous participants receive surveys to provide feedback about their meeting experience. Set to Disabled to disable anonymous meeting participants to receive surveys. Set to Enabled to allow anonymous meeting participants to receive surveys. Possible values: - - Enabled - - Disabled - - String - - String - - - Enabled - - - LimitPresenterRolePermissions - - When set to True, users within the Tenant will have their presenter role capabilities limited. When set to False, the presenter role capabilities will not be impacted and will remain as is. - - Boolean - - Boolean - - - None - WhatIf @@ -40114,7 +42472,7 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsmeetingconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingconfiguration @@ -40149,6 +42507,7 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr AIInterpreter + > Applicable: Microsoft Teams >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. Enables the user to use the AI Interpreter related features Possible values: @@ -40178,7 +42537,6 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr AllowAnonymousUsersToDialOut Determines whether anonymous users are allowed to dial out to a PSTN number. Set this to TRUE to allow anonymous users to dial out. Set this to FALSE to prohibit anonymous users from dialing out. - > [!NOTE] > This parameter is temporarily disabled. Boolean @@ -40224,6 +42582,18 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None + + AllowBreakoutRooms + + Set to true to enable Breakout Rooms, set to false to disable the Breakout Rooms functionality. + + Boolean + + Boolean + + + True + AllowCarbonSummary @@ -40250,18 +42620,6 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr DisabledUserOverride - - AllowBreakoutRooms - - Set to true to enable Breakout Rooms, set to false to disable the Breakout Rooms functionality. - - Boolean - - Boolean - - - True - AllowChannelMeetingScheduling @@ -40299,6 +42657,59 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None + + AllowedStreamingMediaInput + + Enables the use of RTMP-In in Teams meetings. + Possible values are: + - <blank> + - RTMP + + String + + String + + + None + + + AllowedUsersForMeetingContext + + This policy controls which users should have the ability to see the meeting info details on the join screen. 'None' option should disable the feature completely. + + String + + String + + + None + + + AllowedUsersForMeetingContext + + This policy controls which users should have the ability to see the meeting info details on the join screen. 'None' option should disable the feature completely. + + String + + String + + + None + + + AllowedUsersForMeetingDetails + + Controls which users should have ability to see the meeting info details on join screen. 'None' option should disable the feature completely. + Possible Values: - UsersAllowedToByPassTheLobby: Users who are able to bypass lobby can see the meeting info details. + - Everyone: All meeting participants can see the meeting info details. + + String + + String + + + UsersAllowedToByPassTheLobby + AllowEngagementReport @@ -40328,6 +42739,18 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None + + AllowExternalNonTrustedMeetingChat + + This field controls whether a user is allowed to chat in external meetings with users from non-trusted organizations. + + Boolean + + Boolean + + + None + AllowExternalParticipantGiveRequestControl @@ -40440,28 +42863,28 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None - AllowNetworkConfigurationSettingsLookup + AllowNDIStreaming - Determines whether network configuration setting lookup can be made for users who are not Enterprise Voice enabled. It is used to enable Network Roaming policy. + This parameter enables the use of NDI technology to capture and deliver broadcast-quality audio and video over your network. Boolean Boolean - False + None - AllowNDIStreaming + AllowNetworkConfigurationSettingsLookup - This parameter enables the use of NDI technology to capture and deliver broadcast-quality audio and video over your network. + Determines whether network configuration setting lookup can be made for users who are not Enterprise Voice enabled. It is used to enable Network Roaming policy. Boolean Boolean - None + False AllowOrganizersToOverrideLobbySettings @@ -40512,9 +42935,10 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None - AllowPrivateMeetNow + AllowPrivateMeetingScheduling - This setting controls whether a user can start an ad hoc private meeting. + Determines whether a user can schedule private meetings. Set this to TRUE to allow a user to schedule private meetings. Set this to FALSE to prohibit the user from scheduling private meetings. + > [!NOTE] > This only restricts from scheduling and not from joining a meeting scheduled by another user. Boolean @@ -40524,10 +42948,9 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None - AllowPrivateMeetingScheduling + AllowPrivateMeetNow - Determines whether a user can schedule private meetings. Set this to TRUE to allow a user to schedule private meetings. Set this to FALSE to prohibit the user from scheduling private meetings. - > [!NOTE] > This only restricts from scheduling and not from joining a meeting scheduled by another user. + This setting controls whether a user can start an ad hoc private meeting. Boolean @@ -40620,18 +43043,6 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None - - AllowedUsersForMeetingContext - - This policy controls which users should have the ability to see the meeting info details on the join screen. 'None' option should disable the feature completely. - - String - - String - - - None - AllowUserToJoinExternalMeeting @@ -40649,28 +43060,16 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr Disabled - AllowedUsersForMeetingContext - - This policy controls which users should have the ability to see the meeting info details on the join screen. 'None' option should disable the feature completely. - - String - - String - - - None - - - AllowExternalNonTrustedMeetingChat + AllowWatermarkForCameraVideo - This field controls whether a user is allowed to chat in external meetings with users from non-trusted organizations. + This setting allows scheduling meetings with watermarking for video enabled. Boolean Boolean - None + False AllowWatermarkForScreenSharing @@ -40684,18 +43083,6 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr False - - AllowWatermarkForCameraVideo - - This setting allows scheduling meetings with watermarking for video enabled. - - Boolean - - Boolean - - - False - AllowWhiteboard @@ -40708,25 +43095,10 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None - - AllowedStreamingMediaInput - - Enables the use of RTMP-In in Teams meetings. - Possible values are: - - <blank> - - RTMP - - String - - String - - - None - AnonymousUserAuthenticationMethod - Determines how anonymous users will be authenticated when joining a meeting. Possible values are: + Determines how anonymous users will be authenticated when joining a meeting. Possible values are: - OneTimePasscode , if you would like anonymous users to be sent a one time passcode to their email when joining a meeting - None , if you would like to disable authentication for anonymous users joining a meeting String @@ -40761,18 +43133,6 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None - - AutoRecording - - This setting will enable Tenant Admins to turn on/off the auto recording feature. - - String - - String - - - None - AutoAdmittedUsers @@ -40803,6 +43163,18 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None + + AutoRecording + + This setting allows admins to control the visibility of the auto recording feature in the organizer's Meeting options . If the you enable this setting, the Record and transcribe automatically setting appears in Meeting options with the default value set to Off (except for webinars and townhalls). Organizers need to manually toggle this setting to On to for their meetings to be automatically recorded. If you disable this setting, Record and transcribe automatically is hidden, preventing organizers from setting any meetings to be auto-recorded. + + String + + String + + + None + BlockedAnonymousJoinClientTypes @@ -40964,7 +43336,7 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr ExplicitRecordingConsent Set participant agreement and notification for Recording, Transcript, Copilot in Teams meetings. - Possible Values: + Possible Values: - Enabled: Explicit consent, requires participant agreement. - Disabled: Implicit consent, does not require participant agreement. - LegitimateInterest: Legitimate interest, less restrictive consent to meet legitimate interest without requiring explicit agreement from participants. @@ -41123,6 +43495,7 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr MeetingInviteLanguages + > Applicable: Microsoft Teams Controls how the join information in meeting invitations is displayed by enforcing a common language or enabling up to two languages to be displayed. > [!NOTE] > All Teams supported languages can be specified using language codes. For more information about its delivery date, see the roadmap (Feature ID: 81521) (https://www.microsoft.com/microsoft-365/roadmap?filters=&searchterms=81521). The preliminary list of available languages is shown below: @@ -41151,6 +43524,7 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr NoiseSuppressionForDialInParticipants + > Applicable: Microsoft Teams >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. Control Noises Supression Feature for PST legs joining a meeting. Possible Values: @@ -41178,6 +43552,24 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None + + ParticipantSlideControl + + > Applicable: Microsoft Teams + >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. + Determines whether participants can give control of presentation slides during meetings scheduled by this user. Set the type of users you want to be able to give control and be given control of presentation slides in meetings. Users excluded from the selected group will be prohibited from giving control, or being given control, in a meeting. + Possible Values: - Everyone: Anyone in the meeting can give or take control + - EveryoneInOrganization: Only internal AAD users and Multi-Tenant Organization (MTO) users can give or take control + - EveryoneInOrganizationAndGuests: Only those who are Guests to the tenant, MTO users, and internal AAD users can give or take control + - None: No one in the meeting can give or take control + + String + + String + + + Enabled + PreferredMeetingProviderForIslandsMode @@ -41202,6 +43594,21 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None + + RealTimeText + + > Applicable: Microsoft Teams + Allows users to use real time text during a meeting, allowing them to communicate by typing their messages in real time. + Possible Values: - Enabled: User is allowed to turn on real time text. + - Disabled: User is not allowed to turn on real time text. + + String + + String + + + Enabled + RecordingStorageMode @@ -41292,7 +43699,7 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr - Disabled - Enabled - Set this to Enabled to allow up to 20,000 extra view-only attendees to join. + Set this to Enabled to allow up to 10,000 extra view-only attendees to join. String @@ -41376,6 +43783,7 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr VoiceSimulationInInterpreter + > Applicable: Microsoft Teams > [!NOTE] > This feature has not been released yet and will have no changes if it is enabled or disabled. Enables the user to use the voice simulation feature while being AI interpreted. Possible Values: @@ -41449,34 +43857,6 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None - - AllowedUsersForMeetingDetails - - Controls which users should have ability to see the meeting info details on join screen. 'None' option should disable the feature completely. - Possible Values: - UsersAllowedToByPassTheLobby: Users who are able to bypass lobby can see the meeting info details. - - Everyone: All meeting participants can see the meeting info details. - - String - - String - - - UsersAllowedToByPassTheLobby - - - RealTimeText - - Allows users to use real time text during a meeting, allowing them to communicate by typing their messages in real time. - Possible Values: - Enabled: User is allowed to turn on real time text. - - Disabled: User is not allowed to turn on real time text. - - String - - String - - - Enabled - WhatIf @@ -41506,21 +43886,10 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr - - Identity - - Specify the name of the policy being created. - - XdsIdentity - - XdsIdentity - - - None - AIInterpreter + > Applicable: Microsoft Teams >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. Enables the user to use the AI Interpreter related features Possible values: @@ -41550,7 +43919,6 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr AllowAnonymousUsersToDialOut Determines whether anonymous users are allowed to dial out to a PSTN number. Set this to TRUE to allow anonymous users to dial out. Set this to FALSE to prohibit anonymous users from dialing out. - > [!NOTE] > This parameter is temporarily disabled. Boolean @@ -41596,6 +43964,18 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None + + AllowBreakoutRooms + + Set to true to enable Breakout Rooms, set to false to disable the Breakout Rooms functionality. + + Boolean + + Boolean + + + True + AllowCarbonSummary @@ -41622,18 +44002,6 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr DisabledUserOverride - - AllowBreakoutRooms - - Set to true to enable Breakout Rooms, set to false to disable the Breakout Rooms functionality. - - Boolean - - Boolean - - - True - AllowChannelMeetingScheduling @@ -41671,6 +44039,59 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None + + AllowedStreamingMediaInput + + Enables the use of RTMP-In in Teams meetings. + Possible values are: + - <blank> + - RTMP + + String + + String + + + None + + + AllowedUsersForMeetingContext + + This policy controls which users should have the ability to see the meeting info details on the join screen. 'None' option should disable the feature completely. + + String + + String + + + None + + + AllowedUsersForMeetingContext + + This policy controls which users should have the ability to see the meeting info details on the join screen. 'None' option should disable the feature completely. + + String + + String + + + None + + + AllowedUsersForMeetingDetails + + Controls which users should have ability to see the meeting info details on join screen. 'None' option should disable the feature completely. + Possible Values: - UsersAllowedToByPassTheLobby: Users who are able to bypass lobby can see the meeting info details. + - Everyone: All meeting participants can see the meeting info details. + + String + + String + + + UsersAllowedToByPassTheLobby + AllowEngagementReport @@ -41700,6 +44121,18 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None + + AllowExternalNonTrustedMeetingChat + + This field controls whether a user is allowed to chat in external meetings with users from non-trusted organizations. + + Boolean + + Boolean + + + None + AllowExternalParticipantGiveRequestControl @@ -41812,28 +44245,28 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None - AllowNetworkConfigurationSettingsLookup + AllowNDIStreaming - Determines whether network configuration setting lookup can be made for users who are not Enterprise Voice enabled. It is used to enable Network Roaming policy. + This parameter enables the use of NDI technology to capture and deliver broadcast-quality audio and video over your network. Boolean Boolean - False + None - AllowNDIStreaming + AllowNetworkConfigurationSettingsLookup - This parameter enables the use of NDI technology to capture and deliver broadcast-quality audio and video over your network. + Determines whether network configuration setting lookup can be made for users who are not Enterprise Voice enabled. It is used to enable Network Roaming policy. Boolean Boolean - None + False AllowOrganizersToOverrideLobbySettings @@ -41884,9 +44317,10 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None - AllowPrivateMeetNow + AllowPrivateMeetingScheduling - This setting controls whether a user can start an ad hoc private meeting. + Determines whether a user can schedule private meetings. Set this to TRUE to allow a user to schedule private meetings. Set this to FALSE to prohibit the user from scheduling private meetings. + > [!NOTE] > This only restricts from scheduling and not from joining a meeting scheduled by another user. Boolean @@ -41896,10 +44330,9 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None - AllowPrivateMeetingScheduling + AllowPrivateMeetNow - Determines whether a user can schedule private meetings. Set this to TRUE to allow a user to schedule private meetings. Set this to FALSE to prohibit the user from scheduling private meetings. - > [!NOTE] > This only restricts from scheduling and not from joining a meeting scheduled by another user. + This setting controls whether a user can start an ad hoc private meeting. Boolean @@ -41992,18 +44425,6 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None - - AllowedUsersForMeetingContext - - This policy controls which users should have the ability to see the meeting info details on the join screen. 'None' option should disable the feature completely. - - String - - String - - - None - AllowUserToJoinExternalMeeting @@ -42021,28 +44442,16 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr Disabled - AllowedUsersForMeetingContext - - This policy controls which users should have the ability to see the meeting info details on the join screen. 'None' option should disable the feature completely. - - String - - String - - - None - - - AllowExternalNonTrustedMeetingChat + AllowWatermarkForCameraVideo - This field controls whether a user is allowed to chat in external meetings with users from non-trusted organizations. + This setting allows scheduling meetings with watermarking for video enabled. Boolean Boolean - None + False AllowWatermarkForScreenSharing @@ -42056,18 +44465,6 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr False - - AllowWatermarkForCameraVideo - - This setting allows scheduling meetings with watermarking for video enabled. - - Boolean - - Boolean - - - False - AllowWhiteboard @@ -42080,25 +44477,10 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None - - AllowedStreamingMediaInput - - Enables the use of RTMP-In in Teams meetings. - Possible values are: - - <blank> - - RTMP - - String - - String - - - None - AnonymousUserAuthenticationMethod - Determines how anonymous users will be authenticated when joining a meeting. Possible values are: + Determines how anonymous users will be authenticated when joining a meeting. Possible values are: - OneTimePasscode , if you would like anonymous users to be sent a one time passcode to their email when joining a meeting - None , if you would like to disable authentication for anonymous users joining a meeting String @@ -42133,18 +44515,6 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None - - AutoRecording - - This setting will enable Tenant Admins to turn on/off the auto recording feature. - - String - - String - - - None - AutoAdmittedUsers @@ -42175,6 +44545,18 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None + + AutoRecording + + This setting allows admins to control the visibility of the auto recording feature in the organizer's Meeting options . If the you enable this setting, the Record and transcribe automatically setting appears in Meeting options with the default value set to Off (except for webinars and townhalls). Organizers need to manually toggle this setting to On to for their meetings to be automatically recorded. If you disable this setting, Record and transcribe automatically is hidden, preventing organizers from setting any meetings to be auto-recorded. + + String + + String + + + None + BlockedAnonymousJoinClientTypes @@ -42337,7 +44719,7 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr ExplicitRecordingConsent Set participant agreement and notification for Recording, Transcript, Copilot in Teams meetings. - Possible Values: + Possible Values: - Enabled: Explicit consent, requires participant agreement. - Disabled: Implicit consent, does not require participant agreement. - LegitimateInterest: Legitimate interest, less restrictive consent to meet legitimate interest without requiring explicit agreement from participants. @@ -42377,6 +44759,18 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr False + + Identity + + Specify the name of the policy being created. + + XdsIdentity + + XdsIdentity + + + None + InfoShownInReportMode @@ -42497,6 +44891,7 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr MeetingInviteLanguages + > Applicable: Microsoft Teams Controls how the join information in meeting invitations is displayed by enforcing a common language or enabling up to two languages to be displayed. > [!NOTE] > All Teams supported languages can be specified using language codes. For more information about its delivery date, see the roadmap (Feature ID: 81521) (https://www.microsoft.com/microsoft-365/roadmap?filters=&searchterms=81521). The preliminary list of available languages is shown below: @@ -42525,6 +44920,7 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr NoiseSuppressionForDialInParticipants + > Applicable: Microsoft Teams >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. Control Noises Supression Feature for PST legs joining a meeting. Possible Values: @@ -42552,6 +44948,24 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None + + ParticipantSlideControl + + > Applicable: Microsoft Teams + >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. + Determines whether participants can give control of presentation slides during meetings scheduled by this user. Set the type of users you want to be able to give control and be given control of presentation slides in meetings. Users excluded from the selected group will be prohibited from giving control, or being given control, in a meeting. + Possible Values: - Everyone: Anyone in the meeting can give or take control + - EveryoneInOrganization: Only internal AAD users and Multi-Tenant Organization (MTO) users can give or take control + - EveryoneInOrganizationAndGuests: Only those who are Guests to the tenant, MTO users, and internal AAD users can give or take control + - None: No one in the meeting can give or take control + + String + + String + + + Enabled + PreferredMeetingProviderForIslandsMode @@ -42576,6 +44990,21 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None + + RealTimeText + + > Applicable: Microsoft Teams + Allows users to use real time text during a meeting, allowing them to communicate by typing their messages in real time. + Possible Values: - Enabled: User is allowed to turn on real time text. + - Disabled: User is not allowed to turn on real time text. + + String + + String + + + Enabled + RecordingStorageMode @@ -42666,7 +45095,7 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr - Disabled - Enabled - Set this to Enabled to allow up to 20,000 extra view-only attendees to join. + Set this to Enabled to allow up to 10,000 extra view-only attendees to join. String @@ -42750,6 +45179,7 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr VoiceSimulationInInterpreter + > Applicable: Microsoft Teams > [!NOTE] > This feature has not been released yet and will have no changes if it is enabled or disabled. Enables the user to use the voice simulation feature while being AI interpreted. Possible Values: @@ -42823,34 +45253,6 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None - - AllowedUsersForMeetingDetails - - Controls which users should have ability to see the meeting info details on join screen. 'None' option should disable the feature completely. - Possible Values: - UsersAllowedToByPassTheLobby: Users who are able to bypass lobby can see the meeting info details. - - Everyone: All meeting participants can see the meeting info details. - - String - - String - - - UsersAllowedToByPassTheLobby - - - RealTimeText - - Allows users to use real time text during a meeting, allowing them to communicate by typing their messages in real time. - Possible Values: - Enabled: User is allowed to turn on real time text. - - Disabled: User is not allowed to turn on real time text. - - String - - String - - - Enabled - WhatIf @@ -42930,7 +45332,7 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsmeetingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingpolicy @@ -42950,9 +45352,10 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr Set-CsTeamsMeetingTemplatePermissionPolicy - Identity + Description - Name of the policy instance to be updated. + > Applicable: Microsoft Teams + Pass in a new description if that field needs to be updated. String @@ -42964,7 +45367,8 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr HiddenMeetingTemplates - The updated list of meeting template IDs to hide. The HiddenMeetingTemplate objects are created with New-CsTeamsHiddenMeetingTemplate (https://learn.microsoft.com/powershell/module/teams/new-csteamshiddenmeetingtemplate). + > Applicable: Microsoft Teams + The updated list of meeting template IDs to hide. The HiddenMeetingTemplate objects are created with New-CsTeamsHiddenMeetingTemplate (https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamshiddenmeetingtemplate). HiddenMeetingTemplate[] @@ -42974,9 +45378,10 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None - Description + Identity - Pass in a new description if that field needs to be updated. + > Applicable: Microsoft Teams + Name of the policy instance to be updated. String @@ -42989,9 +45394,10 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr - Identity + Description - Name of the policy instance to be updated. + > Applicable: Microsoft Teams + Pass in a new description if that field needs to be updated. String @@ -43003,7 +45409,8 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr HiddenMeetingTemplates - The updated list of meeting template IDs to hide. The HiddenMeetingTemplate objects are created with New-CsTeamsHiddenMeetingTemplate (https://learn.microsoft.com/powershell/module/teams/new-csteamshiddenmeetingtemplate). + > Applicable: Microsoft Teams + The updated list of meeting template IDs to hide. The HiddenMeetingTemplate objects are created with New-CsTeamsHiddenMeetingTemplate (https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamshiddenmeetingtemplate). HiddenMeetingTemplate[] @@ -43013,9 +45420,10 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None - Description + Identity - Pass in a new description if that field needs to be updated. + > Applicable: Microsoft Teams + Name of the policy instance to be updated. String @@ -43051,23 +45459,23 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr Online Version: - https://learn.microsoft.com/powershell/module/teams/Set-CsTeamsMeetingTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/Set-CsTeamsMeetingTemplatePermissionPolicy Get-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsmeetingtemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingtemplatepermissionpolicy New-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsmeetingtemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingtemplatepermissionpolicy Remove-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsmeetingtemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingtemplatepermissionpolicy Grant-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsmeetingtemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingtemplatepermissionpolicy @@ -43109,6 +45517,21 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr False + + ContentBasedPhishingCheck + + > [!NOTE] > This feature has not been released. + This setting enables content-based phishing detection for Teams messages in the tenant. + Possible Values: - Enabled + - Disabled + + String + + String + + + Enabled + CustomEmojis @@ -43148,8 +45571,8 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr FileTypeCheck - >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. - This setting determines if FileType check in teams messaging across the whole tenant + > [!NOTE] > This parameter is in Private Preview. + This setting enables weaponizable file detection in Teams messages in the tenant. Possible Values: - Enabled - Disabled @@ -43183,11 +45606,26 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr Enabled + + ReportIncorrectSecurityDetections + + > [!NOTE] > This parameter is in Private Preview. + This setting enables the end users to Report incorrect security detections in Teams messages in the tenant. + Possible Values: - Enabled + - Disabled + + String + + String + + + Enabled + UrlReputationCheck - >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. - This setting determines if UrlReputationCheck check in teams messaging across the whole tenant + > [!NOTE] > This parameter is in Private Preview. + This setting enables malicious URL detection in Teams messages in the tenant. Possible Values: - Enabled - Disabled @@ -43212,18 +45650,6 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr - - Identity - - Specifies the collection of tenant messaging configuration settings to be returned. Because each tenant is limited to a single, global collection of messaging settings there is no need include this parameter when calling the cmdlet. If you do choose to use the Identity parameter you must also include the Tenant parameter. - - String - - String - - - None - Confirm @@ -43236,6 +45662,21 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr False + + ContentBasedPhishingCheck + + > [!NOTE] > This feature has not been released. + This setting enables content-based phishing detection for Teams messages in the tenant. + Possible Values: - Enabled + - Disabled + + String + + String + + + Enabled + CustomEmojis @@ -43275,8 +45716,8 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr FileTypeCheck - >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. - This setting determines if FileType check in teams messaging across the whole tenant + > [!NOTE] > This parameter is in Private Preview. + This setting enables weaponizable file detection in Teams messages in the tenant. Possible Values: - Enabled - Disabled @@ -43299,6 +45740,18 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr False + + Identity + + Specifies the collection of tenant messaging configuration settings to be returned. Because each tenant is limited to a single, global collection of messaging settings there is no need include this parameter when calling the cmdlet. If you do choose to use the Identity parameter you must also include the Tenant parameter. + + String + + String + + + None + MessagingNotes @@ -43311,11 +45764,26 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr Enabled + + ReportIncorrectSecurityDetections + + > [!NOTE] > This parameter is in Private Preview. + This setting enables the end users to Report incorrect security detections in Teams messages in the tenant. + Possible Values: - Enabled + - Disabled + + String + + String + + + Enabled + UrlReputationCheck - >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. - This setting determines if UrlReputationCheck check in teams messaging across the whole tenant + > [!NOTE] > This parameter is in Private Preview. + This setting enables malicious URL detection in Teams messages in the tenant. Possible Values: - Enabled - Disabled @@ -43376,11 +45844,11 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr Online Version: - https://learn.microsoft.com/powershell/module/teams/Set-CsTeamsMessagingConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/Set-CsTeamsMessagingConfiguration Get-CsTeamsMessagingConfiguration - https://learn.microsoft.com/powershell/module/teams/get-csteamsmessagingconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmessagingconfiguration @@ -43424,18 +45892,6 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None - - Instance - - Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. - - PSObject - - PSObject - - - None - AllowChatWithGroup @@ -43869,6 +46325,18 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None + + Instance + + Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. + + PSObject + + PSObject + + + None + ReadReceiptsEnabledType @@ -43909,6 +46377,36 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr False + + UseB2BInvitesToAddExternalUsers + + Indicates whether B2B invites should be used to add external users when necessary. + Possible values: + - `Enabled`: External users will be added using B2B invites. + - `Disabled`: External users will not be added using B2B invites. + + System.String + + System.String + + + Disabled + + + AutoShareFilesInExternalChats + + Determines whether files are automatically shared in external chats. + Possible values: + - `Enabled`: Files are automatically shared in external chats. + - `Disabled`: Files are not automatically shared in external chats. + + System.String + + System.String + + + Enabled + WhatIf @@ -43923,31 +46421,6 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr - - Identity - - Identity for the teams messaging policy you're modifying. To modify the global policy, use this syntax: -Identity global. To modify a per-user policy, use syntax similar to this: `-Identity TeamsMessagingPolicy`. - If you do not specify an Identity the Set-CsTeamsMessagingPolicy cmdlet will automatically modify the global policy. - - XdsIdentity - - XdsIdentity - - - None - - - Instance - - Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. - - PSObject - - PSObject - - - None - AllowChatWithGroup @@ -44383,6 +46856,19 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None + + Identity + + Identity for the teams messaging policy you're modifying. To modify the global policy, use this syntax: -Identity global. To modify a per-user policy, use syntax similar to this: `-Identity TeamsMessagingPolicy`. + If you do not specify an Identity the Set-CsTeamsMessagingPolicy cmdlet will automatically modify the global policy. + + XdsIdentity + + XdsIdentity + + + None + InOrganizationChatControl @@ -44395,6 +46881,18 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None + + Instance + + Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. + + PSObject + + PSObject + + + None + ReadReceiptsEnabledType @@ -44435,6 +46933,36 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr False + + UseB2BInvitesToAddExternalUsers + + Indicates whether B2B invites should be used to add external users when necessary. + Possible values: + - `Enabled`: External users will be added using B2B invites. + - `Disabled`: External users will not be added using B2B invites. + + System.String + + System.String + + + Disabled + + + AutoShareFilesInExternalChats + + Determines whether files are automatically shared in external chats. + Possible values: + - `Enabled`: Files are automatically shared in external chats. + - `Disabled`: Files are not automatically shared in external chats. + + System.String + + System.String + + + Enabled + WhatIf @@ -44492,7 +47020,7 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsmessagingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmessagingpolicy @@ -44511,18 +47039,6 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr Set-CsTeamsMultiTenantOrganizationConfiguration - - Identity - - Identity of the Teams Multi-tenant Organization Setting. - - String - - String - - - None - CopilotFromHomeTenant @@ -44535,9 +47051,6 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr Enabled - - - Set-CsTeamsMultiTenantOrganizationConfiguration Identity @@ -44550,6 +47063,9 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None + + + Set-CsTeamsMultiTenantOrganizationConfiguration CopilotFromHomeTenant @@ -44562,32 +47078,44 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr Enabled + + Identity + + Identity of the Teams Multi-tenant Organization Setting. + + String + + String + + + None + - Identity + CopilotFromHomeTenant - Identity of the Teams Multi-tenant Organization Setting. + Setting value of the Teams Multi-tenant Organization Setting. CopilotFromHomeTenant controls user access to Copilot license in their home tenant during cross-tenant meetings. - String + Boolean - String + Boolean - None + Enabled - CopilotFromHomeTenant + Identity - Setting value of the Teams Multi-tenant Organization Setting. CopilotFromHomeTenant controls user access to Copilot license in their home tenant during cross-tenant meetings. + Identity of the Teams Multi-tenant Organization Setting. - Boolean + String - Boolean + String - Enabled + None @@ -44616,7 +47144,7 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsmultitenantorganizationconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmultitenantorganizationconfiguration Get-CsTeamsMultiTenantOrganizationConfiguration @@ -44846,7 +47374,441 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsnotificationandfeedspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsnotificationandfeedspolicy + + + + + + Set-CsTeamsPersonalAttendantPolicy + Set + CsTeamsPersonalAttendantPolicy + + Limited Preview: Functionality described in this document is currently in limited preview and only authorized organizations have access. + Use this cmdlet to update values in existing Teams Personal Attendant Policies. + + + + The Teams Personal Attendant Policy controls personal attendant and its functionalities available to users in Microsoft Teams. This cmdlet allows admins to set values in a given Personal Attendant Policy instance. + Only the parameters specified are changed. Other parameters keep their existing values. + + + + Set-CsTeamsPersonalAttendantPolicy + + Identity + + Name of the policy instance being created. + + String + + String + + + None + + + PersonalAttendant + + Enables the user to use the personal attendant + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + CallScreening + + Enables the user to use the personal attendant call context evaluation features + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + CalendarBookings + + Enables the user to use the personal attendant calendar related features + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + InboundInternalCalls + + Enables the user to use the personal attendant for incoming domain calls + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + InboundFederatedCalls + + Enables the user to use the personal attendant for incoming calls from other domains + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + InboundPSTNCalls + + Enables the user to use the personal attendant for incoming PSTN calls + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + AutomaticTranscription + + Enables the user to use the automatic storing of personal attendant call transcriptions + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + AutomaticRecording + + Enables the user to use the automatic storing of personal attendant call recordings + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Identity + + Name of the policy instance being created. + + String + + String + + + None + + + PersonalAttendant + + Enables the user to use the personal attendant + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + CallScreening + + Enables the user to use the personal attendant call context evaluation features + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + CalendarBookings + + Enables the user to use the personal attendant calendar related features + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + InboundInternalCalls + + Enables the user to use the personal attendant for incoming domain calls + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + InboundFederatedCalls + + Enables the user to use the personal attendant for incoming calls from other domains + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + InboundPSTNCalls + + Enables the user to use the personal attendant for incoming PSTN calls + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + AutomaticTranscription + + Enables the user to use the automatic storing of personal attendant call transcriptions + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + AutomaticRecording + + Enables the user to use the automatic storing of personal attendant call recordings + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + SwitchParameter + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Management.Automation.PSObject + + + + + + + + + + System.Object + + + + + + + + + The cmdlet is available in Teams PowerShell module 7.2.1-preview or later. + + + + + -------------------------- Example 1 -------------------------- + Set-CsTeamsPersonalAttendantPolicy -Identity Global -CallScreening Disabled + + Sets the value of the parameter CallScreening in the Global (default) Teams Personal Attendant Policy instance. + + + + -------------------------- Example 2 -------------------------- + Set-CsTeamsPersonalAttendantPolicy -Identity SalesPersonalAttendantPolicy -CalendarBookings Disabled + + Sets the value of the parameter CalendarBookings to Disabled in the Teams Personal Attendant Policy instance called SalesPersonalAttendantPolicy. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamspersonalattendantpolicy + + + New-CsTeamsPersonalAttendantPolicy + + + + Get-CsTeamsPersonalAttendantPolicy + + + + Grant-CsTeamsPersonalAttendantPolicy + + + + Remove-CsTeamsPersonalAttendantPolicy + @@ -45027,7 +47989,7 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsrecordingrolloutpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsrecordingrolloutpolicy @@ -45061,6 +48023,18 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + Description @@ -45089,24 +48063,10 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None - - ResourceAccount - - The Identity of the resource account. Can only be specified using the Identity or ObjectId of the resource account. - The phone number assigned to the resource account must: - Have the same phone number type and country as the emergency numbers configured in this policy instance. - - Must have an emergency location assigned. You can use the Teams PowerShell Module Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/teams/set-csphonenumberassignment)and the -LocationId parameter to set the location. - If the resource account is using a Calling Plan service number, you must have a Pay-As-You-Go Calling Plan, and assign it to the resource account. In addition, you need to assign a Communications credits license to the resource account and fund it to support outbound shared calling calls via the Pay-As-You-Go Calling Plan. - The same resource account can be used in multiple shared calling policy instances. - - String - - String - - - None - Force + > Applicable: Microsoft Teams Suppresses any confirmation prompts that would otherwise be displayed before making changes. @@ -45115,21 +48075,26 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr False - - WhatIf + + ResourceAccount - Shows what would happen if the cmdlet runs. The cmdlet is not run. + The Identity of the resource account. Can only be specified using the Identity or ObjectId of the resource account. + The phone number assigned to the resource account must: - Have the same phone number type and country as the emergency numbers configured in this policy instance. + - Must have an emergency location assigned. You can use the Teams PowerShell Module Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberassignment)and the -LocationId parameter to set the location. - If the resource account is using a Calling Plan service number, you must have a Pay-As-You-Go Calling Plan, and assign it to the resource account. In addition, you need to assign a Communications credits license to the resource account and fund it to support outbound shared calling calls via the Pay-As-You-Go Calling Plan. + The same resource account can be used in multiple shared calling policy instances. + String - SwitchParameter + String - False + None - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -45140,17 +48105,18 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr - - Identity + + Confirm - Unique identifier of the Teams shared calling routing policy to be created. + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. - String + SwitchParameter - String + SwitchParameter - None + False Description @@ -45180,24 +48146,10 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None - - ResourceAccount - - The Identity of the resource account. Can only be specified using the Identity or ObjectId of the resource account. - The phone number assigned to the resource account must: - Have the same phone number type and country as the emergency numbers configured in this policy instance. - - Must have an emergency location assigned. You can use the Teams PowerShell Module Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/teams/set-csphonenumberassignment)and the -LocationId parameter to set the location. - If the resource account is using a Calling Plan service number, you must have a Pay-As-You-Go Calling Plan, and assign it to the resource account. In addition, you need to assign a Communications credits license to the resource account and fund it to support outbound shared calling calls via the Pay-As-You-Go Calling Plan. - The same resource account can be used in multiple shared calling policy instances. - - String - - String - - - None - Force + > Applicable: Microsoft Teams Suppresses any confirmation prompts that would otherwise be displayed before making changes. SwitchParameter @@ -45207,22 +48159,38 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr False - - WhatIf + + Identity - Shows what would happen if the cmdlet runs. The cmdlet is not run. + Unique identifier of the Teams shared calling routing policy to be created. - SwitchParameter + String - SwitchParameter + String - False + None - - Confirm + + ResourceAccount - Prompts you for confirmation before running the cmdlet. + The Identity of the resource account. Can only be specified using the Identity or ObjectId of the resource account. + The phone number assigned to the resource account must: - Have the same phone number type and country as the emergency numbers configured in this policy instance. + - Must have an emergency location assigned. You can use the Teams PowerShell Module Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberassignment)and the -LocationId parameter to set the location. - If the resource account is using a Calling Plan service number, you must have a Pay-As-You-Go Calling Plan, and assign it to the resource account. In addition, you need to assign a Communications credits license to the resource account and fund it to support outbound shared calling calls via the Pay-As-You-Go Calling Plan. + The same resource account can be used in multiple shared calling policy instances. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -45254,27 +48222,27 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamssharedcallingroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamssharedcallingroutingpolicy New-CsTeamsSharedCallingRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamssharedcallingroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamssharedcallingroutingpolicy Grant-CsTeamsSharedCallingRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamssharedcallingroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamssharedcallingroutingpolicy Remove-CsTeamsSharedCallingRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamssharedcallingroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamssharedcallingroutingpolicy Get-CsTeamsSharedCallingRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamssharedcallingroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamssharedcallingroutingpolicy Set-CsPhoneNumberAssignment - https://learn.microsoft.com/powershell/module/teams/set-csphonenumberassignment + https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberassignment @@ -45296,6 +48264,7 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr Identity + > Applicable: Microsoft Teams Policy instance name. XdsIdentity @@ -45306,98 +48275,104 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr None - AccessType + AccessGracePeriodMinutes - Indicates the Teams access type granted to the user. Today, only unrestricted access to Teams app is supported. Use 'UnrestrictedAccess_TeamsApp' as the value for this setting, or is set by default. For Teams Off Shift Access Control, the option to show the user a blocking dialog message is supported. Once the user accepts this message, it is audit logged and the user has usual access to Teams. Set other off shift warning message-specific settings to configure off shift access controls for the user. + > Applicable: Microsoft Teams + Indicates the grace period time in minutes between when the first shift starts, or last shift ends and when access is blocked. - String + Int64 - String + Int64 - UnrestrictedAccess_TeamsApp + None - ShiftNoticeMessageType + AccessType - The warning message is shown in the blocking dialog when a user access Teams off shift hours. Select one of 7 Microsoft provided messages, a default message or a custom message. 'Message1' - Your employer does not authorize or approve of the use of its network, applications, systems, or tools by non-exempt or hourly employees during their non-working hours. By accepting, you acknowledge that your use of Teams while off shift is not authorized and you will not be compensated. 'Message2' - Accessing this app outside working hours is voluntary. You won't be compensated for time spent on Teams. Refer to your employer's guidelines on using this app outside working hours. By accepting, you acknowledge that you understand the statement above. 'Message3' - You won't be compensated for time using Teams. By accepting, you acknowledge that you understand the statement above. 'Message4' - You're not authorized to use Teams while off shift. By accepting, you acknowledge your use of Teams is against your employer's policy. 'Message5' - Access to Teams is turned off during non-working hours. You will be able to access the app when your next shift starts. 'Message6' - Your employer does not authorize or approve of the use of its network, applications, systems, or tools by non-exempt or hourly employees during their non-working hours. Access to corporate resources are only allowed during approved working hours and should be recorded as hours worked in your employer's timekeeping system. 'Message7' - Your employer has turned off access to Teams during non-working hours. Refer to your employer's guidelines on using this app outside working hours. 'DefaultMessage' - You aren't authorized to use Microsoft Teams during non-working hours and will only be compensated for using it during approved working hours. 'CustomMessage' + > Applicable: Microsoft Teams + Indicates the Teams access type granted to the user. Today, only unrestricted access to Teams app is supported. Use 'UnrestrictedAccess_TeamsApp' as the value for this setting, or is set by default. For Teams Off Shift Access Control, the option to show the user a blocking dialog message is supported. Once the user accepts this message, it is audit logged and the user has usual access to Teams. Set other off shift warning message-specific settings to configure off shift access controls for the user. String String - DefaultMessage + UnrestrictedAccess_TeamsApp - - ShiftNoticeMessageCustom + + Confirm - Provide a custom message. Must set ShiftNoticeMessageType to 'CustomMessage' to enforce this. + Prompts you for confirmation before running the cmdlet. - String - String + SwitchParameter - None + False - ShiftNoticeFrequency + EnableScheduleOwnerPermissions - Frequency of warning dialog displayed when user opens Teams. Set one of Always, ShowOnceOnChange, Never. + > Applicable: Microsoft Teams + Indicates whether a user can manage a Shifts schedule as a team member. - String + Boolean - String + Boolean - Always + False - AccessGracePeriodMinutes + Force - Indicates the grace period time in minutes between when the first shift starts, or last shift ends and when access is blocked. + Suppresses the display of any non-fatal error message that might arise when running the command. - Int64 - Int64 + SwitchParameter - None + False - EnableScheduleOwnerPermissions + ShiftNoticeFrequency - Indicates whether a user can manage a Shifts schedule as a team member. + > Applicable: Microsoft Teams + Frequency of warning dialog displayed when user opens Teams. Set one of Always, ShowOnceOnChange, Never. - Boolean + String - Boolean + String - False + Always - - Confirm + + ShiftNoticeMessageCustom - Prompts you for confirmation before running the cmdlet. + > Applicable: Microsoft Teams + Provide a custom message. Must set ShiftNoticeMessageType to 'CustomMessage' to enforce this. + String - SwitchParameter + String - False + None - Force + ShiftNoticeMessageType - Suppresses the display of any non-fatal error message that might arise when running the command. + > Applicable: Microsoft Teams + The warning message is shown in the blocking dialog when a user access Teams off shift hours. Select one of 7 Microsoft provided messages, a default message or a custom message. 'Message1' - Your employer does not authorize or approve of the use of its network, applications, systems, or tools by non-exempt or hourly employees during their non-working hours. By accepting, you acknowledge that your use of Teams while off shift is not authorized and you will not be compensated. 'Message2' - Accessing this app outside working hours is voluntary. You won't be compensated for time spent on Teams. Refer to your employer's guidelines on using this app outside working hours. By accepting, you acknowledge that you understand the statement above. 'Message3' - You won't be compensated for time using Teams. By accepting, you acknowledge that you understand the statement above. 'Message4' - You're not authorized to use Teams while off shift. By accepting, you acknowledge your use of Teams is against your employer's policy. 'Message5' - Access to Teams is turned off during non-working hours. You will be able to access the app when your next shift starts. 'Message6' - Your employer does not authorize or approve of the use of its network, applications, systems, or tools by non-exempt or hourly employees during their non-working hours. Access to corporate resources are only allowed during approved working hours and should be recorded as hours worked in your employer's timekeeping system. 'Message7' - Your employer has turned off access to Teams during non-working hours. Refer to your employer's guidelines on using this app outside working hours. 'DefaultMessage' - You aren't authorized to use Microsoft Teams during non-working hours and will only be compensated for using it during approved working hours. 'CustomMessage' + String - SwitchParameter + String - False + DefaultMessage WhatIf @@ -45413,14 +48388,15 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr - - Identity + + AccessGracePeriodMinutes - Policy instance name. + > Applicable: Microsoft Teams + Indicates the grace period time in minutes between when the first shift starts, or last shift ends and when access is blocked. - XdsIdentity + Int64 - XdsIdentity + Int64 None @@ -45428,6 +48404,7 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr AccessType + > Applicable: Microsoft Teams Indicates the Teams access type granted to the user. Today, only unrestricted access to Teams app is supported. Use 'UnrestrictedAccess_TeamsApp' as the value for this setting, or is set by default. For Teams Off Shift Access Control, the option to show the user a blocking dialog message is supported. Once the user accepts this message, it is audit logged and the user has usual access to Teams. Set other off shift warning message-specific settings to configure off shift access controls for the user. String @@ -45437,89 +48414,94 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr UnrestrictedAccess_TeamsApp - - ShiftNoticeMessageType + + Confirm - The warning message is shown in the blocking dialog when a user access Teams off shift hours. Select one of 7 Microsoft provided messages, a default message or a custom message. 'Message1' - Your employer does not authorize or approve of the use of its network, applications, systems, or tools by non-exempt or hourly employees during their non-working hours. By accepting, you acknowledge that your use of Teams while off shift is not authorized and you will not be compensated. 'Message2' - Accessing this app outside working hours is voluntary. You won't be compensated for time spent on Teams. Refer to your employer's guidelines on using this app outside working hours. By accepting, you acknowledge that you understand the statement above. 'Message3' - You won't be compensated for time using Teams. By accepting, you acknowledge that you understand the statement above. 'Message4' - You're not authorized to use Teams while off shift. By accepting, you acknowledge your use of Teams is against your employer's policy. 'Message5' - Access to Teams is turned off during non-working hours. You will be able to access the app when your next shift starts. 'Message6' - Your employer does not authorize or approve of the use of its network, applications, systems, or tools by non-exempt or hourly employees during their non-working hours. Access to corporate resources are only allowed during approved working hours and should be recorded as hours worked in your employer's timekeeping system. 'Message7' - Your employer has turned off access to Teams during non-working hours. Refer to your employer's guidelines on using this app outside working hours. 'DefaultMessage' - You aren't authorized to use Microsoft Teams during non-working hours and will only be compensated for using it during approved working hours. 'CustomMessage' + Prompts you for confirmation before running the cmdlet. - String + SwitchParameter - String + SwitchParameter - DefaultMessage + False - ShiftNoticeMessageCustom + EnableScheduleOwnerPermissions - Provide a custom message. Must set ShiftNoticeMessageType to 'CustomMessage' to enforce this. + > Applicable: Microsoft Teams + Indicates whether a user can manage a Shifts schedule as a team member. - String + Boolean - String + Boolean - None + False - ShiftNoticeFrequency + Force - Frequency of warning dialog displayed when user opens Teams. Set one of Always, ShowOnceOnChange, Never. + Suppresses the display of any non-fatal error message that might arise when running the command. - String + SwitchParameter - String + SwitchParameter - Always + False - - AccessGracePeriodMinutes + + Identity - Indicates the grace period time in minutes between when the first shift starts, or last shift ends and when access is blocked. + > Applicable: Microsoft Teams + Policy instance name. - Int64 + XdsIdentity - Int64 + XdsIdentity None - EnableScheduleOwnerPermissions + ShiftNoticeFrequency - Indicates whether a user can manage a Shifts schedule as a team member. + > Applicable: Microsoft Teams + Frequency of warning dialog displayed when user opens Teams. Set one of Always, ShowOnceOnChange, Never. - Boolean + String - Boolean + String - False + Always - - Confirm + + ShiftNoticeMessageCustom - Prompts you for confirmation before running the cmdlet. + > Applicable: Microsoft Teams + Provide a custom message. Must set ShiftNoticeMessageType to 'CustomMessage' to enforce this. - SwitchParameter + String - SwitchParameter + String - False + None - Force + ShiftNoticeMessageType - Suppresses the display of any non-fatal error message that might arise when running the command. + > Applicable: Microsoft Teams + The warning message is shown in the blocking dialog when a user access Teams off shift hours. Select one of 7 Microsoft provided messages, a default message or a custom message. 'Message1' - Your employer does not authorize or approve of the use of its network, applications, systems, or tools by non-exempt or hourly employees during their non-working hours. By accepting, you acknowledge that your use of Teams while off shift is not authorized and you will not be compensated. 'Message2' - Accessing this app outside working hours is voluntary. You won't be compensated for time spent on Teams. Refer to your employer's guidelines on using this app outside working hours. By accepting, you acknowledge that you understand the statement above. 'Message3' - You won't be compensated for time using Teams. By accepting, you acknowledge that you understand the statement above. 'Message4' - You're not authorized to use Teams while off shift. By accepting, you acknowledge your use of Teams is against your employer's policy. 'Message5' - Access to Teams is turned off during non-working hours. You will be able to access the app when your next shift starts. 'Message6' - Your employer does not authorize or approve of the use of its network, applications, systems, or tools by non-exempt or hourly employees during their non-working hours. Access to corporate resources are only allowed during approved working hours and should be recorded as hours worked in your employer's timekeeping system. 'Message7' - Your employer has turned off access to Teams during non-working hours. Refer to your employer's guidelines on using this app outside working hours. 'DefaultMessage' - You aren't authorized to use Microsoft Teams during non-working hours and will only be compensated for using it during approved working hours. 'CustomMessage' - SwitchParameter + String - SwitchParameter + String - False + DefaultMessage WhatIf @@ -45571,23 +48553,23 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr Online Version: - https://learn.microsoft.com/powershell/module/teams/set-teamsshiftspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-teamsshiftspolicy Get-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftspolicy New-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsshiftspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftspolicy Remove-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsshiftspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftspolicy Grant-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsshiftspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsshiftspolicy @@ -45707,11 +48689,11 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamssipdevicesconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamssipdevicesconfiguration Get-CsTeamsSipDevicesConfiguration - https://learn.microsoft.com/powershell/module/teams/get-csteamssipdevicesconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamssipdevicesconfiguration @@ -45780,7 +48762,7 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr HiddenTemplates - The updated list of Teams template IDs to hide. The HiddenTemplate objects are created with New-CsTeamsHiddenTemplate (https://learn.microsoft.com/powershell/module/teams/new-csteamshiddentemplate). + The updated list of Teams template IDs to hide. The HiddenTemplate objects are created with New-CsTeamsHiddenTemplate (https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamshiddentemplate). System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.HiddenTemplate] @@ -45843,7 +48825,7 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr HiddenTemplates - The updated list of Teams template IDs to hide. The HiddenTemplate objects are created with New-CsTeamsHiddenTemplate (https://learn.microsoft.com/powershell/module/teams/new-csteamshiddentemplate). + The updated list of Teams template IDs to hide. The HiddenTemplate objects are created with New-CsTeamsHiddenTemplate (https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamshiddentemplate). System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.HiddenTemplate] @@ -45917,19 +48899,19 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamstemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstemplatepermissionpolicy Get-CsTeamsTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamstemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamstemplatepermissionpolicy New-CsTeamsTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamstemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamstemplatepermissionpolicy Remove-CsTeamsTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamstemplatepermissionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamstemplatepermissionpolicy @@ -45960,30 +48942,6 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi None - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DisabledInProductMessages - - List of IDs of the categories of the in-product messages that will be disabled. You can choose one of the categories from this table: - | ID | Campaign Category | | -- | -- | | 91382d07-8b89-444c-bbcb-cfe43133af33 | What's New | | edf2633e-9827-44de-b34c-8b8b9717e84c | Conferences | - - System.Management.Automation.PSListModifier`1[System.String] - - System.Management.Automation.PSListModifier`1[System.String] - - - None - AllowManagedUpdates @@ -46044,6 +49002,17 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + Description @@ -46056,6 +49025,42 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi None + + DisabledInProductMessages + + List of IDs of the categories of the in-product messages that will be disabled. You can choose one of the categories from this table: + | ID | Campaign Category | | -- | -- | | 91382d07-8b89-444c-bbcb-cfe43133af33 | What's New | | edf2633e-9827-44de-b34c-8b8b9717e84c | Conferences | + + System.Management.Automation.PSListModifier`1[System.String] + + System.Management.Automation.PSListModifier`1[System.String] + + + None + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes and suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + OCDIRedirect + + This setting controls whether users are redirected from teams.microsoft.com to the unified domain teams.cloud.microsoft. Possible values are: - Microsoft Default , Microsoft will manage redirection behavior. If no explicit admin configuration is set, users may be redirected automatically. - Disabled , Users will remain on teams.microsoft.com. Use this if your organization's apps are incompatible with the unified domain. - Enabled , Users will be redirected to teams.cloud.microsoft. Use this only if your organization had previously opted out of redirection and now wants to opt back in. + + String + + String + + + None + UpdateDayOfWeek @@ -46104,17 +49109,6 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi None - - Force - - Suppresses any confirmation prompts that would otherwise be displayed before making changes and suppresses the display of any non-fatal error message that might arise when running the command. - - - SwitchParameter - - - False - WhatIf @@ -46129,31 +49123,6 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - DisabledInProductMessages - - List of IDs of the categories of the in-product messages that will be disabled. You can choose one of the categories from this table: - | ID | Campaign Category | | -- | -- | | 91382d07-8b89-444c-bbcb-cfe43133af33 | What's New | | edf2633e-9827-44de-b34c-8b8b9717e84c | Conferences | - - System.Management.Automation.PSListModifier`1[System.String] - - System.Management.Automation.PSListModifier`1[System.String] - - - None - AllowManagedUpdates @@ -46214,6 +49183,18 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + Description @@ -46227,21 +49208,34 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi None - UpdateDayOfWeek + DisabledInProductMessages - Machine local day. 0-6(Sun-Sat) Can be set only when AllowManagedUpdates is set to True. + List of IDs of the categories of the in-product messages that will be disabled. You can choose one of the categories from this table: + | ID | Campaign Category | | -- | -- | | 91382d07-8b89-444c-bbcb-cfe43133af33 | What's New | | edf2633e-9827-44de-b34c-8b8b9717e84c | Conferences | - Int64 + System.Management.Automation.PSListModifier`1[System.String] - Int64 + System.Management.Automation.PSListModifier`1[System.String] None - UpdateTime + Force - Machine local time in HH:MM format. Can be set only when AllowManagedUpdates is set to True. + Suppresses any confirmation prompts that would otherwise be displayed before making changes and suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + The unique identifier of the policy. String @@ -46251,21 +49245,33 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi None - UpdateTimeOfDay + OCDIRedirect - Machine local time. Can be set only when AllowManagedUpdates is set to True + This setting controls whether users are redirected from teams.microsoft.com to the unified domain teams.cloud.microsoft. Possible values are: - Microsoft Default , Microsoft will manage redirection behavior. If no explicit admin configuration is set, users may be redirected automatically. - Disabled , Users will remain on teams.microsoft.com. Use this if your organization's apps are incompatible with the unified domain. - Enabled , Users will be redirected to teams.cloud.microsoft. Use this only if your organization had previously opted out of redirection and now wants to opt back in. - DateTime + String - DateTime + String None - UseNewTeamsClient + UpdateDayOfWeek - This setting will enable admins to show or hide which users see the Teams preview toggle on the current Teams client. If it is AdminDisabled, then users will not be able to see the Teams preview toggle in the Desktop Client. If it is UserChoice, then users will be able to see the Teams preview toggle in the Desktop Client. If it is MicrosoftChoice, then Microsoft will configure/ manage whether user sees or does not see this feature if the admin has set nothing. If it is NewTeamsAsDefault, then New Teams will be default for users, and they will be able to switch back to Classic Teams via the toggle in the Desktop Client. If it is NewTeamsOnly, then New Teams will be the only Teams client installed for users. + Machine local day. 0-6(Sun-Sat) Can be set only when AllowManagedUpdates is set to True. + + Int64 + + Int64 + + + None + + + UpdateTime + + Machine local time in HH:MM format. Can be set only when AllowManagedUpdates is set to True. String @@ -46275,21 +49281,21 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi None - Force + UpdateTimeOfDay - Suppresses any confirmation prompts that would otherwise be displayed before making changes and suppresses the display of any non-fatal error message that might arise when running the command. + Machine local time. Can be set only when AllowManagedUpdates is set to True - SwitchParameter + DateTime - SwitchParameter + DateTime - False + None - - Identity + + UseNewTeamsClient - The unique identifier of the policy. + This setting will enable admins to show or hide which users see the Teams preview toggle on the current Teams client. If it is AdminDisabled, then users will not be able to see the Teams preview toggle in the Desktop Client. If it is UserChoice, then users will be able to see the Teams preview toggle in the Desktop Client. If it is MicrosoftChoice, then Microsoft will configure/ manage whether user sees or does not see this feature if the admin has set nothing. If it is NewTeamsAsDefault, then New Teams will be default for users, and they will be able to switch back to Classic Teams via the toggle in the Desktop Client. If it is NewTeamsOnly, then New Teams will be the only Teams client installed for users. String @@ -46348,7 +49354,7 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsupdatemanagementpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsupdatemanagementpolicy @@ -46358,7 +49364,7 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi Set CsTeamsUpgradeConfiguration - Administrators can use Set-CsTeamsUpgradeConfiguration to manage certain aspects of client behavior for users being upgraded from Skype for Business to Teams. TeamsUpgradeConfiguration should be used in conjunction with TeamsUpgradePolicy. The settings in TeamsUpgradeConfiguration allow administrators to configure whether users subject to upgrade and who are running on Windows clients should automatically download Teams. It allows administrators to determine which application end users should use to join Skype for Business meetings. + Manage certain aspects of client behavior for users being upgraded from Skype for Business to Teams. @@ -46372,6 +49378,7 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi Identity + > Applicable: Microsoft Teams For internal use only. XdsIdentity @@ -46381,9 +49388,22 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi None + + BlockLegacyAuthorization + + This setting will force Teams clients to enforce session revocation for core Messaging and Calling/Meeting scenarios. If turned ON, session revocation will be enforced for calls, chats and meetings for opted-in users. If turned OFF, session revocation will not be enforced for calls, chats and meetings for opted-in users + + Boolean + + Boolean + + + None + Confirm + > Applicable: Microsoft Teams Prompts you for confirmation before running the cmdlet. @@ -46395,6 +49415,7 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi DownloadTeams + > Applicable: Microsoft Teams The DownloadTeams property allows admins to control whether the Skype for Business client should automatically download Teams in the background. This Boolean setting is only honored on Windows clients, and only for certain values of the user's TeamsUpgradePolicy. If NotifySfbUser=true or if Mode=TeamsOnly in TeamsUpgradePolicy, this setting is honored. Otherwise it is ignored. Boolean @@ -46405,31 +49426,34 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi True - SfBMeetingJoinUx + Force - The SfBMeetingJoinUx property allows admins to specify which app is used to join Skype for Business meetings, even after the user has been upgraded to Teams. Allowed values are: "SkypeMeetingsApp" and "NativeLimitedClient". "NativeLimitedClient" means the existing Skype for Business rich client will be used, but since the user is upgraded, only meeting functionality is available. Calling and Messaging are done via Teams. "SkypeMeetingsApp" means use the web-downloadable app. This setting can be useful for organizations that have upgraded to Teams and no longer want to install Skype for Business on their users' computers. + > Applicable: Microsoft Teams + Suppresses the display of any non-fatal error message that might arise when running the command. - string - string + SwitchParameter - NativeLimitedClient + False - Force + SfBMeetingJoinUx - Suppresses the display of any non-fatal error message that might arise when running the command. + > Applicable: Microsoft Teams + The SfBMeetingJoinUx property allows admins to specify which app is used to join Skype for Business meetings, even after the user has been upgraded to Teams. Allowed values are: "SkypeMeetingsApp" and "NativeLimitedClient". "NativeLimitedClient" means the existing Skype for Business rich client will be used, but since the user is upgraded, only meeting functionality is available. Calling and Messaging are done via Teams. "SkypeMeetingsApp" means use the web-downloadable app. This setting can be useful for organizations that have upgraded to Teams and no longer want to install Skype for Business on their users' computers. + string - SwitchParameter + string - False + NativeLimitedClient Tenant + > Applicable: Microsoft Teams For internal use only. Guid @@ -46442,6 +49466,7 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi WhatIf + > Applicable: Microsoft Teams Shows what would happen if the cmdlet runs. The cmdlet is not run. @@ -46450,25 +49475,25 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - - BlockLegacyAuthorization - - This setting will force Teams clients to enforce session revocation for core Messaging and Calling/Meeting scenarios. If turned ON, session revocation will be enforced for calls, chats and meetings for opted-in users. If turned OFF, session revocation will not be enforced for calls, chats and meetings for opted-in users - - - Boolean - - Boolean - - - None - + + BlockLegacyAuthorization + + This setting will force Teams clients to enforce session revocation for core Messaging and Calling/Meeting scenarios. If turned ON, session revocation will be enforced for calls, chats and meetings for opted-in users. If turned OFF, session revocation will not be enforced for calls, chats and meetings for opted-in users + + Boolean + + Boolean + + + None + Confirm + > Applicable: Microsoft Teams Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -46481,6 +49506,7 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi DownloadTeams + > Applicable: Microsoft Teams The DownloadTeams property allows admins to control whether the Skype for Business client should automatically download Teams in the background. This Boolean setting is only honored on Windows clients, and only for certain values of the user's TeamsUpgradePolicy. If NotifySfbUser=true or if Mode=TeamsOnly in TeamsUpgradePolicy, this setting is honored. Otherwise it is ignored. Boolean @@ -46490,21 +49516,10 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi True - - SfBMeetingJoinUx - - The SfBMeetingJoinUx property allows admins to specify which app is used to join Skype for Business meetings, even after the user has been upgraded to Teams. Allowed values are: "SkypeMeetingsApp" and "NativeLimitedClient". "NativeLimitedClient" means the existing Skype for Business rich client will be used, but since the user is upgraded, only meeting functionality is available. Calling and Messaging are done via Teams. "SkypeMeetingsApp" means use the web-downloadable app. This setting can be useful for organizations that have upgraded to Teams and no longer want to install Skype for Business on their users' computers. - - string - - string - - - NativeLimitedClient - Force + > Applicable: Microsoft Teams Suppresses the display of any non-fatal error message that might arise when running the command. SwitchParameter @@ -46517,6 +49532,7 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi Identity + > Applicable: Microsoft Teams For internal use only. XdsIdentity @@ -46526,9 +49542,23 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi None + + SfBMeetingJoinUx + + > Applicable: Microsoft Teams + The SfBMeetingJoinUx property allows admins to specify which app is used to join Skype for Business meetings, even after the user has been upgraded to Teams. Allowed values are: "SkypeMeetingsApp" and "NativeLimitedClient". "NativeLimitedClient" means the existing Skype for Business rich client will be used, but since the user is upgraded, only meeting functionality is available. Calling and Messaging are done via Teams. "SkypeMeetingsApp" means use the web-downloadable app. This setting can be useful for organizations that have upgraded to Teams and no longer want to install Skype for Business on their users' computers. + + string + + string + + + NativeLimitedClient + Tenant + > Applicable: Microsoft Teams For internal use only. Guid @@ -46541,6 +49571,7 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi WhatIf + > Applicable: Microsoft Teams Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -46550,19 +49581,6 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - - BlockLegacyAuthorization - - This setting will force Teams clients to enforce session revocation for core Messaging and Calling/Meeting scenarios. If turned ON, session revocation will be enforced for calls, chats and meetings for opted-in users. If turned OFF, session revocation will not be enforced for calls, chats and meetings for opted-in users - - - Boolean - - Boolean - - - None - @@ -46601,19 +49619,19 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsupgradeconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsupgradeconfiguration Get-CsTeamsUpgradeConfiguration - https://learn.microsoft.com/powershell/module/teams/get-csteamsupgradeconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsupgradeconfiguration Get-CsTeamsUpgradePolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsupgradepolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsupgradepolicy Grant-CsTeamsUpgradePolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsupgradepolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsupgradepolicy Migration and interoperability guidance for organizations using Teams together with Skype for Business @@ -46627,12 +49645,11 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi Set CsTeamsVdiPolicy - The CsTeamsVdiPolicy cmdlets enable administrators to control the type of meetings that users can create or the features that they can access while in a meeting specifically on an unoptimized VDI environment. It also controls whether a user can be in VDI 2.0 optimization mode. + The SetCsTeamsVdiPolicy cmdlet allows administrators to update existing Vdi policies that can be assigned to particular users to control Teams features related to Vdi. The CsTeamsVdiPolicy cmdlets enable administrators to control the type of meetings that users can create or the features that they can access while in a meeting specifically on an unoptimized VDI environment. It also controls whether a user can be in VDI 2.0 optimization mode. - The SetCsTeamsVdiPolicy cmdlet allows administrators to update existing Vdi policies that can be assigned to particular users to control Teams features related to Vdi. @@ -46852,7 +49869,7 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi Online Version: - https://learn.microsoft.com/powershell/module/teams/set-cteamsvdipolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-cteamsvdipolicy @@ -46897,6 +49914,7 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi EnableSmsNotifications + > Applicable: Microsoft Teams This property specifies whether your users can choose to send SMS text notifications to external guests in meetings that they schedule using a virtual appointment template meeting. Boolean @@ -46946,6 +49964,7 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi EnableSmsNotifications + > Applicable: Microsoft Teams This property specifies whether your users can choose to send SMS text notifications to external guests in meetings that they schedule using a virtual appointment template meeting. Boolean @@ -47029,23 +50048,23 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsvirtualappointmentspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsvirtualappointmentspolicy Get-CsTeamsVirtualAppointmentsPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsvirtualappointmentspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsvirtualappointmentspolicy New-CsTeamsVirtualAppointmentsPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsvirtualappointmentspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsvirtualappointmentspolicy Remove-CsTeamsVirtualAppointmentsPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsvirtualappointmentspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsvirtualappointmentspolicy Grant-CsTeamsVirtualAppointmentsPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsvirtualappointmentspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsvirtualappointmentspolicy @@ -47081,9 +50100,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi None - AllowAutoAttendantBusinessHoursGreetingChange + AllowAutoAttendantAfterHoursGreetingChange - When set to `True`, users affected by the policy will be allowed to change the auto attendant's business hours greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's business hours greeting. + When set to `True`, users affected by the policy will be allowed to change the auto attendant's after-hours greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's after-hours greeting. Boolean @@ -47093,9 +50112,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowAutoAttendantAfterHoursGreetingChange + AllowAutoAttendantAfterHoursRoutingChange - When set to `True`, users affected by the policy will be allowed to change the auto attendant's after-hours greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's after-hours greeting. + When set to `True`, users affected by the policy will be allowed to change the auto attendant's after-hours call flow. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's after-hours call flow. Boolean @@ -47105,9 +50124,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowAutoAttendantHolidayGreetingChange + AllowAutoAttendantBusinessHoursChange - When set to `True`, users affected by the policy will be allowed to change the auto attendant's holiday greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's holiday greeting. + When set to `True`, users affected by the policy will be allowed to change the auto attendant's business hours schedule. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's business hours schedule. Boolean @@ -47117,9 +50136,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowAutoAttendantBusinessHoursChange + AllowAutoAttendantBusinessHoursGreetingChange - When set to `True`, users affected by the policy will be allowed to change the auto attendant's business hours schedule. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's business hours schedule. + When set to `True`, users affected by the policy will be allowed to change the auto attendant's business hours greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's business hours greeting. Boolean @@ -47129,9 +50148,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowAutoAttendantHolidaysChange + AllowAutoAttendantBusinessHoursRoutingChange - When set to `True`, users affected by the policy will be allowed to change the auto attendant's holiday schedules. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's holiday schedules. + When set to `True`, users affected by the policy will be allowed to change the auto attendant's business hours call flow. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's business hours call flow. Boolean @@ -47141,9 +50160,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowAutoAttendantTimeZoneChange + AllowAutoAttendantHolidayGreetingChange - This option is not currently available in Queues app. When set to `True`, users affected by the policy will be allowed to change the auto attendant's time zone. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's time zone. + When set to `True`, users affected by the policy will be allowed to change the auto attendant's holiday greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's holiday greeting. Boolean @@ -47153,9 +50172,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowAutoAttendantLanguageChange + AllowAutoAttendantHolidayRoutingChange - This option is not currently available in Queues app. When set to `True`, users affected by the policy will be allowed to change the auto attendant's language. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's language. + When set to `True`, users affected by the policy will be allowed to change the auto attendant's holiday call flows. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's holiday call flows. Boolean @@ -47165,9 +50184,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowAutoAttendantBusinessHoursRoutingChange + AllowAutoAttendantHolidaysChange - When set to `True`, users affected by the policy will be allowed to change the auto attendant's business hours call flow. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's business hours call flow. + When set to `True`, users affected by the policy will be allowed to change the auto attendant's holiday schedules. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's holiday schedules. Boolean @@ -47177,9 +50196,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowAutoAttendantAfterHoursRoutingChange + AllowAutoAttendantLanguageChange - When set to `True`, users affected by the policy will be allowed to change the auto attendant's after-hours call flow. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's after-hours call flow. + This feature is not currently available to authorized users. When set to `True`, users affected by the policy will be allowed to change the auto attendant's language. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's language. Boolean @@ -47189,9 +50208,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowAutoAttendantHolidayRoutingChange + AllowAutoAttendantTimeZoneChange - When set to `True`, users affected by the policy will be allowed to change the auto attendant's holiday call flows. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's holiday call flows. + This feature is not currently available to authorized users. When set to `True`, users affected by the policy will be allowed to change the auto attendant's time zone. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's time zone. Boolean @@ -47201,9 +50220,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowCallQueueWelcomeGreetingChange + AllowCallQueueAgentOptChange - When set to `True`, users affected by the policy will be allowed to change the call queue's welcome greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's welcome greeting. + When set to `True`, users affected by the policy will be allowed to change an agent's opt-in status in the call queue. When set to `False` (the default value), users affected by the policy won't be allowed to change an agent's opt-in status in the call queue. Boolean @@ -47213,9 +50232,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowCallQueueMusicOnHoldChange + AllowCallQueueConferenceModeChange - When set to `True`, users affected by the policy will be allowed to change the call queue's music on hold information. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's music on hold. + When set to `True`, users affected by the policy will be allowed to change the call queue's conference mode. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's conference mode. Boolean @@ -47225,9 +50244,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowCallQueueOverflowSharedVoicemailGreetingChange + AllowCallQueueLanguageChange - When set to `True`, users affected by the policy will be allowed to change the call queue's overflow shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's overflow shared voicemail greeting. + This feature is not currently available to authorized users. When set to `True`, users affected by the policy will be allowed to change the call queue's language. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's language. Boolean @@ -47237,9 +50256,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowCallQueueTimeoutSharedVoicemailGreetingChange + AllowCallQueueMembershipChange - When set to `True`, users affected by the policy will be allowed to change the call queue's timeout shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's timeout shared voicemail greeting. + When set to `True`, users affected by the policy will be allowed to change the call queue's users. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's users. Boolean @@ -47249,9 +50268,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowCallQueueNoAgentSharedVoicemailGreetingChange + AllowCallQueueMusicOnHoldChange - This option is not currently available in Queues app. When set to `True`, users affected by the policy will be allowed to change the call queue's no agent shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's no agent shared voicemail greeting. + When set to `True`, users affected by the policy will be allowed to change the call queue's music on hold information. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's music on hold. Boolean @@ -47261,9 +50280,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowCallQueueLanguageChange + AllowCallQueueNoAgentSharedVoicemailGreetingChange - This option is not currently available in Queues app. When set to `True`, users affected by the policy will be allowed to change the call queue's language. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's language. + This feature is not currently available to authorized users. When set to `True`, users affected by the policy will be allowed to change the call queue's no agent shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's no agent shared voicemail greeting. Boolean @@ -47273,9 +50292,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowCallQueueMembershipChange + AllowCallQueueNoAgentsRoutingChange - When set to `True`, users affected by the policy will be allowed to change the call queue's users. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's users. + When set to `True`, users affected by the policy will be allowed to change the call queue's no-agent handling properties. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's no-agent handling properties. Boolean @@ -47285,9 +50304,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowCallQueueConferenceModeChange + AllowCallQueueOptOutChange - When set to `True`, users affected by the policy will be allowed to change the call queue's conference mode. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's conference mode. + When set to `True`, users affected by the policy will be allowed to change the call queue opt-out setting that allows agents to opt out of receiving calls. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue opt-out setting. Boolean @@ -47297,9 +50316,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowCallQueueRoutingMethodChange + AllowCallQueueOverflowRoutingChange - When set to `True`, users affected by the policy will be allowed to change the call queue's routing method. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's routing method. + When set to `True`, users affected by the policy will be allowed to change the call queue's overflow handling properties. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's overflow handling properties. Boolean @@ -47309,9 +50328,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowCallQueuePresenceBasedRoutingChange + AllowCallQueueOverflowSharedVoicemailGreetingChange - When set to `True`, users affected by the policy will be allowed to change the call queue's presence-based routing option. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's presence-based routing option. + When set to `True`, users affected by the policy will be allowed to change the call queue's overflow shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's overflow shared voicemail greeting. Boolean @@ -47321,9 +50340,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowCallQueueOptOutChange + AllowCallQueuePresenceBasedRoutingChange - When set to `True`, users affected by the policy will be allowed to change the call queue opt-out setting that allows agents to opt out of receiving calls. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue opt-out setting. + When set to `True`, users affected by the policy will be allowed to change the call queue's presence-based routing option. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's presence-based routing option. Boolean @@ -47333,9 +50352,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowCallQueueOverflowRoutingChange + AllowCallQueueRoutingMethodChange - When set to `True`, users affected by the policy will be allowed to change the call queue's overflow handling properties. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's overflow handling properties. + When set to `True`, users affected by the policy will be allowed to change the call queue's routing method. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's routing method. Boolean @@ -47357,9 +50376,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowCallQueueNoAgentsRoutingChange + AllowCallQueueTimeoutSharedVoicemailGreetingChange - When set to `True`, users affected by the policy will be allowed to change the call queue's no-agent handling properties. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's no-agent handling properties. + When set to `True`, users affected by the policy will be allowed to change the call queue's timeout shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's timeout shared voicemail greeting. Boolean @@ -47369,9 +50388,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowCallQueueAgentOptChange + AllowCallQueueWelcomeGreetingChange - When set to `True`, users affected by the policy will be allowed to change an agent's opt-in status in the call queue. When set to `False` (the default value), users affected by the policy won't be allowed to change an agent's opt-in status in the call queue. + When set to `True`, users affected by the policy will be allowed to change the call queue's welcome greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's welcome greeting. Boolean @@ -47383,7 +50402,8 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi CallQueueAgentMonitorMode - This option is not currently available in Queues app. PARAMVALUE: Disabled | Monitor | Whisper | Barge | Takeover + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | Monitor | Whisper | Barge | Takeover When set to `Disabled` (the default value), users affected by the policy won't be allowed to monitor call sessions. When set to `Monitor`, users affected by the policy will be allowed to monitor and listen to call sessions. When set to `Whisper`, users affected by the policy will be allowed to monitor call sessions and whisper to an agent in the call. @@ -47400,7 +50420,8 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi CallQueueAgentMonitorNotificationMode - This option is not currently available in Queues app. PARAMVALUE: Disabled | Agent + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | Agent When set to `Disabled` (the default value), users affected by the policy won't be allowed to monitor agents during call sessions. When set to `Agent`, users affected by the policy will be allowed to monitor agents during call sessions. @@ -47411,13 +50432,25 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi Disabled + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + - RealTimeAutoAttendantMetricsPermission + HistoricalAgentMetricsPermission + > Applicable: Microsoft Teams PARAMVALUE: Disabled | AuthorizedOnly | All - When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for auto attendants. - When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for auto attendants they are authorized for. - > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved however any user assigned a policy with RealTimeAutoAttendantMetricsPermission set to `All` will not be able to access real-time metrics. + When set to `Disabled` (the default value), users affected by the policy won't receive historical metrics for agents. + When set to `AuthorizedOnly`, users affected by the policy will receive historical metrics for agents who are members in the call queues they are authorized for. + When set to `All`, users affected by the policy will receive historical metrics for all agents in all call queues in the organization. Object @@ -47427,12 +50460,13 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi None - RealTimeCallQueueMetricsPermission + HistoricalAutoAttendantMetricsPermission + > Applicable: Microsoft Teams PARAMVALUE: Disabled | AuthorizedOnly | All - When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for call queues. - When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for call queues they are authorized for. - > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved however any user assigned a policy with RealTimeCallQueueMetricsPermission set to `All` will not be able to access real-time metrics. + When set to `Disabled` (the default value), users affected by the policy won't receive historical metrics for auto attendants. + When set to `AuthorizedOnly`, users affected by the policy will receive historical metrics for auto attendants they are authorized for. + When set to `All`, users affected by the policy will receive historical metrics for all auto attendants in the organization. Object @@ -47442,12 +50476,13 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi None - RealTimeAgentMetricsPermission + HistoricalCallQueueMetricsPermission + > Applicable: Microsoft Teams PARAMVALUE: Disabled | AuthorizedOnly | All - When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for agents. - When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for agents who are members in the call queues they are authorized for. - > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved however any user assigned a policy with RealTimeAgentMetricsPermission set to `All` will not be able to access real-time metrics. + When set to `Disabled` (the default value), users affected by the policy won't receive historical metrics for call queues. + When set to `AuthorizedOnly`, users affected by the policy will receive historical metrics for call queues they are authorized for. + When set to `All`, users affected by the policy will receive historical metrics for all call queues in the organization. Object @@ -47457,12 +50492,13 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi None - HistoricalAutoAttendantMetricsPermission + RealTimeAgentMetricsPermission + > Applicable: Microsoft Teams PARAMVALUE: Disabled | AuthorizedOnly | All - When set to `Disabled` (the default value), users affected by the policy won't receive historical metrics for auto attendants. - When set to `AuthorizedOnly`, users affected by the policy will receive historical metrics for auto attendants they are authorized for. - When set to `All`, users affected by the policy will receive historical metrics for all auto attendants in the organization. + When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for agents. + When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for agents who are members in the call queues they are authorized for. + > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved however any user assigned a policy with RealTimeAgentMetricsPermission set to `All` will not be able to access real-time metrics. Object @@ -47472,12 +50508,13 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi None - HistoricalCallQueueMetricsPermission + RealTimeAutoAttendantMetricsPermission + > Applicable: Microsoft Teams PARAMVALUE: Disabled | AuthorizedOnly | All - When set to `Disabled` (the default value), users affected by the policy won't receive historical metrics for call queues. - When set to `AuthorizedOnly`, users affected by the policy will receive historical metrics for call queues they are authorized for. - When set to `All`, users affected by the policy will receive historical metrics for all call queues in the organization. + When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for auto attendants. + When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for auto attendants they are authorized for. + > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved however any user assigned a policy with RealTimeAutoAttendantMetricsPermission set to `All` will not be able to access real-time metrics. Object @@ -47487,12 +50524,13 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi None - HistoricalAgentMetricsPermission + RealTimeCallQueueMetricsPermission + > Applicable: Microsoft Teams PARAMVALUE: Disabled | AuthorizedOnly | All - When set to `Disabled` (the default value), users affected by the policy won't receive historical metrics for agents. - When set to `AuthorizedOnly`, users affected by the policy will receive historical metrics for agents who are members in the call queues they are authorized for. - When set to `All`, users affected by the policy will receive historical metrics for all agents in all call queues in the organization. + When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for call queues. + When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for call queues they are authorized for. + > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved however any user assigned a policy with RealTimeCallQueueMetricsPermission set to `All` will not be able to access real-time metrics. Object @@ -47512,24 +50550,13 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - AllowAutoAttendantBusinessHoursGreetingChange + AllowAutoAttendantAfterHoursGreetingChange - When set to `True`, users affected by the policy will be allowed to change the auto attendant's business hours greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's business hours greeting. + When set to `True`, users affected by the policy will be allowed to change the auto attendant's after-hours greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's after-hours greeting. Boolean @@ -47539,9 +50566,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowAutoAttendantAfterHoursGreetingChange + AllowAutoAttendantAfterHoursRoutingChange - When set to `True`, users affected by the policy will be allowed to change the auto attendant's after-hours greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's after-hours greeting. + When set to `True`, users affected by the policy will be allowed to change the auto attendant's after-hours call flow. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's after-hours call flow. Boolean @@ -47551,9 +50578,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowAutoAttendantHolidayGreetingChange + AllowAutoAttendantBusinessHoursChange - When set to `True`, users affected by the policy will be allowed to change the auto attendant's holiday greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's holiday greeting. + When set to `True`, users affected by the policy will be allowed to change the auto attendant's business hours schedule. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's business hours schedule. Boolean @@ -47563,9 +50590,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowAutoAttendantBusinessHoursChange + AllowAutoAttendantBusinessHoursGreetingChange - When set to `True`, users affected by the policy will be allowed to change the auto attendant's business hours schedule. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's business hours schedule. + When set to `True`, users affected by the policy will be allowed to change the auto attendant's business hours greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's business hours greeting. Boolean @@ -47575,9 +50602,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowAutoAttendantHolidaysChange + AllowAutoAttendantBusinessHoursRoutingChange - When set to `True`, users affected by the policy will be allowed to change the auto attendant's holiday schedules. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's holiday schedules. + When set to `True`, users affected by the policy will be allowed to change the auto attendant's business hours call flow. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's business hours call flow. Boolean @@ -47587,9 +50614,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowAutoAttendantTimeZoneChange + AllowAutoAttendantHolidayGreetingChange - This option is not currently available in Queues app. When set to `True`, users affected by the policy will be allowed to change the auto attendant's time zone. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's time zone. + When set to `True`, users affected by the policy will be allowed to change the auto attendant's holiday greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's holiday greeting. Boolean @@ -47599,9 +50626,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowAutoAttendantLanguageChange + AllowAutoAttendantHolidayRoutingChange - This option is not currently available in Queues app. When set to `True`, users affected by the policy will be allowed to change the auto attendant's language. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's language. + When set to `True`, users affected by the policy will be allowed to change the auto attendant's holiday call flows. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's holiday call flows. Boolean @@ -47611,9 +50638,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowAutoAttendantBusinessHoursRoutingChange + AllowAutoAttendantHolidaysChange - When set to `True`, users affected by the policy will be allowed to change the auto attendant's business hours call flow. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's business hours call flow. + When set to `True`, users affected by the policy will be allowed to change the auto attendant's holiday schedules. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's holiday schedules. Boolean @@ -47623,9 +50650,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowAutoAttendantAfterHoursRoutingChange + AllowAutoAttendantLanguageChange - When set to `True`, users affected by the policy will be allowed to change the auto attendant's after-hours call flow. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's after-hours call flow. + This feature is not currently available to authorized users. When set to `True`, users affected by the policy will be allowed to change the auto attendant's language. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's language. Boolean @@ -47635,9 +50662,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowAutoAttendantHolidayRoutingChange + AllowAutoAttendantTimeZoneChange - When set to `True`, users affected by the policy will be allowed to change the auto attendant's holiday call flows. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's holiday call flows. + This feature is not currently available to authorized users. When set to `True`, users affected by the policy will be allowed to change the auto attendant's time zone. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's time zone. Boolean @@ -47647,9 +50674,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowCallQueueWelcomeGreetingChange + AllowCallQueueAgentOptChange - When set to `True`, users affected by the policy will be allowed to change the call queue's welcome greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's welcome greeting. + When set to `True`, users affected by the policy will be allowed to change an agent's opt-in status in the call queue. When set to `False` (the default value), users affected by the policy won't be allowed to change an agent's opt-in status in the call queue. Boolean @@ -47659,9 +50686,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowCallQueueMusicOnHoldChange + AllowCallQueueConferenceModeChange - When set to `True`, users affected by the policy will be allowed to change the call queue's music on hold information. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's music on hold. + When set to `True`, users affected by the policy will be allowed to change the call queue's conference mode. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's conference mode. Boolean @@ -47671,9 +50698,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowCallQueueOverflowSharedVoicemailGreetingChange + AllowCallQueueLanguageChange - When set to `True`, users affected by the policy will be allowed to change the call queue's overflow shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's overflow shared voicemail greeting. + This feature is not currently available to authorized users. When set to `True`, users affected by the policy will be allowed to change the call queue's language. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's language. Boolean @@ -47683,9 +50710,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowCallQueueTimeoutSharedVoicemailGreetingChange + AllowCallQueueMembershipChange - When set to `True`, users affected by the policy will be allowed to change the call queue's timeout shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's timeout shared voicemail greeting. + When set to `True`, users affected by the policy will be allowed to change the call queue's users. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's users. Boolean @@ -47695,9 +50722,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowCallQueueNoAgentSharedVoicemailGreetingChange + AllowCallQueueMusicOnHoldChange - This option is not currently available in Queues app. When set to `True`, users affected by the policy will be allowed to change the call queue's no agent shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's no agent shared voicemail greeting. + When set to `True`, users affected by the policy will be allowed to change the call queue's music on hold information. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's music on hold. Boolean @@ -47707,9 +50734,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowCallQueueLanguageChange + AllowCallQueueNoAgentSharedVoicemailGreetingChange - This option is not currently available in Queues app. When set to `True`, users affected by the policy will be allowed to change the call queue's language. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's language. + This feature is not currently available to authorized users. When set to `True`, users affected by the policy will be allowed to change the call queue's no agent shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's no agent shared voicemail greeting. Boolean @@ -47719,9 +50746,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowCallQueueMembershipChange + AllowCallQueueNoAgentsRoutingChange - When set to `True`, users affected by the policy will be allowed to change the call queue's users. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's users. + When set to `True`, users affected by the policy will be allowed to change the call queue's no-agent handling properties. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's no-agent handling properties. Boolean @@ -47731,9 +50758,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowCallQueueConferenceModeChange + AllowCallQueueOptOutChange - When set to `True`, users affected by the policy will be allowed to change the call queue's conference mode. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's conference mode. + When set to `True`, users affected by the policy will be allowed to change the call queue opt-out setting that allows agents to opt out of receiving calls. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue opt-out setting. Boolean @@ -47743,9 +50770,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowCallQueueRoutingMethodChange + AllowCallQueueOverflowRoutingChange - When set to `True`, users affected by the policy will be allowed to change the call queue's routing method. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's routing method. + When set to `True`, users affected by the policy will be allowed to change the call queue's overflow handling properties. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's overflow handling properties. Boolean @@ -47755,9 +50782,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowCallQueuePresenceBasedRoutingChange + AllowCallQueueOverflowSharedVoicemailGreetingChange - When set to `True`, users affected by the policy will be allowed to change the call queue's presence-based routing option. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's presence-based routing option. + When set to `True`, users affected by the policy will be allowed to change the call queue's overflow shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's overflow shared voicemail greeting. Boolean @@ -47767,9 +50794,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowCallQueueOptOutChange + AllowCallQueuePresenceBasedRoutingChange - When set to `True`, users affected by the policy will be allowed to change the call queue opt-out setting that allows agents to opt out of receiving calls. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue opt-out setting. + When set to `True`, users affected by the policy will be allowed to change the call queue's presence-based routing option. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's presence-based routing option. Boolean @@ -47779,9 +50806,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowCallQueueOverflowRoutingChange + AllowCallQueueRoutingMethodChange - When set to `True`, users affected by the policy will be allowed to change the call queue's overflow handling properties. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's overflow handling properties. + When set to `True`, users affected by the policy will be allowed to change the call queue's routing method. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's routing method. Boolean @@ -47803,9 +50830,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowCallQueueNoAgentsRoutingChange + AllowCallQueueTimeoutSharedVoicemailGreetingChange - When set to `True`, users affected by the policy will be allowed to change the call queue's no-agent handling properties. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's no-agent handling properties. + When set to `True`, users affected by the policy will be allowed to change the call queue's timeout shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's timeout shared voicemail greeting. Boolean @@ -47815,9 +50842,9 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - AllowCallQueueAgentOptChange + AllowCallQueueWelcomeGreetingChange - When set to `True`, users affected by the policy will be allowed to change an agent's opt-in status in the call queue. When set to `False` (the default value), users affected by the policy won't be allowed to change an agent's opt-in status in the call queue. + When set to `True`, users affected by the policy will be allowed to change the call queue's welcome greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's welcome greeting. Boolean @@ -47829,7 +50856,8 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi CallQueueAgentMonitorMode - This option is not currently available in Queues app. PARAMVALUE: Disabled | Monitor | Whisper | Barge | Takeover + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | Monitor | Whisper | Barge | Takeover When set to `Disabled` (the default value), users affected by the policy won't be allowed to monitor call sessions. When set to `Monitor`, users affected by the policy will be allowed to monitor and listen to call sessions. When set to `Whisper`, users affected by the policy will be allowed to monitor call sessions and whisper to an agent in the call. @@ -47846,7 +50874,8 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi CallQueueAgentMonitorNotificationMode - This option is not currently available in Queues app. PARAMVALUE: Disabled | Agent + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | Agent When set to `Disabled` (the default value), users affected by the policy won't be allowed to monitor agents during call sessions. When set to `Agent`, users affected by the policy will be allowed to monitor agents during call sessions. @@ -47857,13 +50886,26 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi Disabled + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + - RealTimeAutoAttendantMetricsPermission + HistoricalAgentMetricsPermission + > Applicable: Microsoft Teams PARAMVALUE: Disabled | AuthorizedOnly | All - When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for auto attendants. - When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for auto attendants they are authorized for. - > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved however any user assigned a policy with RealTimeAutoAttendantMetricsPermission set to `All` will not be able to access real-time metrics. + When set to `Disabled` (the default value), users affected by the policy won't receive historical metrics for agents. + When set to `AuthorizedOnly`, users affected by the policy will receive historical metrics for agents who are members in the call queues they are authorized for. + When set to `All`, users affected by the policy will receive historical metrics for all agents in all call queues in the organization. Object @@ -47873,12 +50915,13 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi None - RealTimeCallQueueMetricsPermission + HistoricalAutoAttendantMetricsPermission + > Applicable: Microsoft Teams PARAMVALUE: Disabled | AuthorizedOnly | All - When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for call queues. - When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for call queues they are authorized for. - > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved however any user assigned a policy with RealTimeCallQueueMetricsPermission set to `All` will not be able to access real-time metrics. + When set to `Disabled` (the default value), users affected by the policy won't receive historical metrics for auto attendants. + When set to `AuthorizedOnly`, users affected by the policy will receive historical metrics for auto attendants they are authorized for. + When set to `All`, users affected by the policy will receive historical metrics for all auto attendants in the organization. Object @@ -47888,12 +50931,13 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi None - RealTimeAgentMetricsPermission + HistoricalCallQueueMetricsPermission + > Applicable: Microsoft Teams PARAMVALUE: Disabled | AuthorizedOnly | All - When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for agents. - When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for agents who are members in the call queues they are authorized for. - > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved however any user assigned a policy with RealTimeAgentMetricsPermission set to `All` will not be able to access real-time metrics. + When set to `Disabled` (the default value), users affected by the policy won't receive historical metrics for call queues. + When set to `AuthorizedOnly`, users affected by the policy will receive historical metrics for call queues they are authorized for. + When set to `All`, users affected by the policy will receive historical metrics for all call queues in the organization. Object @@ -47902,28 +50946,30 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi None - - HistoricalAutoAttendantMetricsPermission + + Identity - PARAMVALUE: Disabled | AuthorizedOnly | All - When set to `Disabled` (the default value), users affected by the policy won't receive historical metrics for auto attendants. - When set to `AuthorizedOnly`, users affected by the policy will receive historical metrics for auto attendants they are authorized for. - When set to `All`, users affected by the policy will receive historical metrics for all auto attendants in the organization. + Unique identifier assigned to the policy when it was created. Teams voice applications policies can be assigned at the global scope or the per-user scope. To refer to the global instance, use this syntax: + -Identity global + To refer to a per-user policy, use syntax similar to this: + -Identity "SDA-Allow-All" + If you do not specify an Identity, then the `Set-CsTeamsVoiceApplicationsPolicy` cmdlet will modify the global policy. - Object + String - Object + String None - HistoricalCallQueueMetricsPermission + RealTimeAgentMetricsPermission + > Applicable: Microsoft Teams PARAMVALUE: Disabled | AuthorizedOnly | All - When set to `Disabled` (the default value), users affected by the policy won't receive historical metrics for call queues. - When set to `AuthorizedOnly`, users affected by the policy will receive historical metrics for call queues they are authorized for. - When set to `All`, users affected by the policy will receive historical metrics for all call queues in the organization. + When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for agents. + When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for agents who are members in the call queues they are authorized for. + > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved however any user assigned a policy with RealTimeAgentMetricsPermission set to `All` will not be able to access real-time metrics. Object @@ -47933,12 +50979,13 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi None - HistoricalAgentMetricsPermission + RealTimeAutoAttendantMetricsPermission + > Applicable: Microsoft Teams PARAMVALUE: Disabled | AuthorizedOnly | All - When set to `Disabled` (the default value), users affected by the policy won't receive historical metrics for agents. - When set to `AuthorizedOnly`, users affected by the policy will receive historical metrics for agents who are members in the call queues they are authorized for. - When set to `All`, users affected by the policy will receive historical metrics for all agents in all call queues in the organization. + When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for auto attendants. + When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for auto attendants they are authorized for. + > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved however any user assigned a policy with RealTimeAutoAttendantMetricsPermission set to `All` will not be able to access real-time metrics. Object @@ -47947,18 +50994,18 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi None - - Identity + + RealTimeCallQueueMetricsPermission - Unique identifier assigned to the policy when it was created. Teams voice applications policies can be assigned at the global scope or the per-user scope. To refer to the global instance, use this syntax: - -Identity global - To refer to a per-user policy, use syntax similar to this: - -Identity "SDA-Allow-All" - If you do not specify an Identity, then the `Set-CsTeamsVoiceApplicationsPolicy` cmdlet will modify the global policy. + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | AuthorizedOnly | All + When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for call queues. + When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for call queues they are authorized for. + > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved however any user assigned a policy with RealTimeCallQueueMetricsPermission set to `All` will not be able to access real-time metrics. - String + Object - String + Object None @@ -47975,18 +51022,6 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - @@ -48016,23 +51051,23 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsvoiceapplicationspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsvoiceapplicationspolicy Get-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsvoiceapplicationspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsvoiceapplicationspolicy Grant-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsvoiceapplicationspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsvoiceapplicationspolicy Remove-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsvoiceapplicationspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsvoiceapplicationspolicy New-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsvoiceapplicationspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsvoiceapplicationspolicy @@ -48209,23 +51244,23 @@ PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $Hi Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsworklocationdetectionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsworklocationdetectionpolicy Get-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsworklocationdetectionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsworklocationdetectionpolicy New-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsworklocationdetectionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsworklocationdetectionpolicy Remove-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsworklocationdetectionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsworklocationdetectionpolicy Grant-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsworklocationdetectionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsworklocationdetectionpolicy diff --git a/Modules/MicrosoftTeams/6.9.0/en-US/Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml b/Modules/MicrosoftTeams/7.4.0/en-US/Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml similarity index 88% rename from Modules/MicrosoftTeams/6.9.0/en-US/Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml rename to Modules/MicrosoftTeams/7.4.0/en-US/Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml index 839786455311..8e88c0d023be 100644 --- a/Modules/MicrosoftTeams/6.9.0/en-US/Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml +++ b/Modules/MicrosoftTeams/7.4.0/en-US/Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml @@ -7,20 +7,20 @@ TeamChannelUser Adds an owner or member to the private channel. - The command will return immediately, but the Teams application will not reflect the update immediately. To see the update you should refresh the members page. - Note: Technical limitations of private channels apply. To add a user as a member to a channel, they need to first be a member of the team. To make a user an owner of a channel, they need to first be a member of the channel. + The command will return immediately, but the Teams application will not reflect the update immediately. To see the update you should refresh the members page. + Note: Technical limitations of private channels apply. To add a user as a member to a channel, they need to first be a member of the team. To make a user an owner of a channel, they need to first be a member of the channel. Note: This cmdlet is part of the Public Preview version of Teams PowerShell Module, for more information see Install Teams PowerShell public preview (https://learn.microsoft.com/microsoftteams/teams-powershell-install#install-teams-powershell-public-preview) and also see [Microsoft Teams PowerShell Release Notes](https://learn.microsoft.com/microsoftteams/teams-powershell-release-notes). Add-TeamChannelUser - GroupId + DisplayName - GroupId of the parent team + Display name of the private channel String @@ -30,9 +30,9 @@ None - DisplayName + GroupId - Display name of the private channel + GroupId of the parent team String @@ -41,10 +41,10 @@ None - - User + + Role - User's UPN (user principal name - e.g. johndoe@example.com) + Owner String @@ -54,9 +54,9 @@ None - Role + TenantId - Owner + TenantId of the external user String @@ -65,10 +65,10 @@ None - - TenantId + + User - TenantId of the external user + User's UPN (user principal name - e.g. johndoe@example.com) String @@ -80,18 +80,6 @@ - - GroupId - - GroupId of the parent team - - String - - String - - - None - DisplayName @@ -105,9 +93,9 @@ None - User + GroupId - User's UPN (user principal name - e.g. johndoe@example.com) + GroupId of the parent team String @@ -140,151 +128,10 @@ None - - - - - GroupId, DisplayName, User, Role, TenantId - - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Add-TeamChannelUser -GroupId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df -DisplayName "Engineering" -User dmx@example.com - - Add user dmx@example.com to private channel with name "Engineering" under the given group. - - - - -------------------------- Example 2 -------------------------- - Add-TeamChannelUser -GroupId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df -DisplayName "Engineering" -User dmx@example.com -Role Owner - - Promote user dmx@example.com to an owner of private channel with name "Engineering" under the given group. - - - - -------------------------- Example 3 -------------------------- - Add-TeamChannelUser -GroupId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df -DisplayName "Engineering" -User 0e4249a7-6cfd-8c93-a510-91cda44c8c73 -TenantId dcd143cb-c4ae-4364-9faf-e1c3242bf4ff - - Adds external user 0e4249a7-6cfd-8c93-a510-91cda44c8c73 to a shared channel. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/teams/add-teamchanneluser - - - - - - Add-TeamsAppInstallation - Add - TeamsAppInstallation - - Add a Teams App to Microsoft Teams. - - - - Add a Teams App to Microsoft Teams. - Note: This cmdlet is part of the Public Preview version of Teams PowerShell Module, for more information see Install Teams PowerShell public preview (https://learn.microsoft.com/microsoftteams/teams-powershell-install#install-teams-powershell-public-preview) and also see [Microsoft Teams PowerShell Release Notes](https://learn.microsoft.com/microsoftteams/teams-powershell-release-notes). - - - - Add-TeamsAppInstallation - - AppId - - Teams App identifier in Microsoft Teams. - - String - - String - - - None - - - Permissions - - RSC permissions for the Teams App. - - String - - String - - - None - - - TeamId - - Team identifier in Microsoft Teams. - - String - - String - - - None - - - - Add-TeamsAppInstallation - - AppId - - Teams App identifier in Microsoft Teams. - - String - - String - - - None - - - Permissions - - RSC permissions for the Teams App. - - String - - String - - - None - - - UserId - - User identifier in Microsoft Teams. - - String - - String - - - None - - - - - AppId + User - Teams App identifier in Microsoft Teams. + User's UPN (user principal name - e.g. johndoe@example.com) String @@ -293,63 +140,50 @@ None - - Permissions - - RSC permissions for the Teams App. - - String + + + - String - + GroupId - None - - - TeamId - Team identifier in Microsoft Teams. + - String + + - String - + DisplayName - None - - - UserId - User identifier in Microsoft Teams. + - String + + - String - + User - None - - - + + + + - System.String + Role - - - + - System.Object + TenantId - - + + + @@ -358,23 +192,30 @@ -------------------------- Example 1 -------------------------- - PS C:\> Add-TeamsAppInstallation -AppId b9cc7986-dd56-4b57-ab7d-9c4e5288b775 -TeamId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df + Add-TeamChannelUser -GroupId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df -DisplayName "Engineering" -User dmx@example.com - This example adds a Teams App to Microsoft Teams. + Add user dmx@example.com to private channel with name "Engineering" under the given group. -------------------------- Example 2 -------------------------- - PS C:\> Add-TeamsAppInstallation -AppId b9cc7986-dd56-4b57-ab7d-9c4e5288b775 -TeamId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df -Permissions "TeamSettings.Read.Group ChannelMessage.Read.Group" + Add-TeamChannelUser -GroupId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df -DisplayName "Engineering" -User dmx@example.com -Role Owner - This example adds a Teams App to Microsoft Teams with RSC Permissions. + Promote user dmx@example.com to an owner of private channel with name "Engineering" under the given group. + + + + -------------------------- Example 3 -------------------------- + Add-TeamChannelUser -GroupId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df -DisplayName "Engineering" -User 0e4249a7-6cfd-8c93-a510-91cda44c8c73 -TenantId dcd143cb-c4ae-4364-9faf-e1c3242bf4ff + + Adds external user 0e4249a7-6cfd-8c93-a510-91cda44c8c73 to a shared channel. Online Version: - https://learn.microsoft.com/powershell/module/teams/add-teamsappinstallation + https://learn.microsoft.com/powershell/module/microsoftteams/add-teamchanneluser @@ -406,29 +247,29 @@ None - - User + + Role - UPN of a user of the organization (user principal name - e.g. johndoe@example.com). + Member or Owner. If Owner is specified then the user is also added as a member to the Team backed by unified group. String String - None + Member - - Role + + User - Member or Owner. If Owner is specified then the user is also added as a member to the Team backed by unified group. + UPN of a user of the organization (user principal name - e.g. johndoe@example.com). String String - Member + None @@ -445,35 +286,51 @@ None - - User + + Role - UPN of a user of the organization (user principal name - e.g. johndoe@example.com). + Member or Owner. If Owner is specified then the user is also added as a member to the Team backed by unified group. String String - None + Member - - Role + + User - Member or Owner. If Owner is specified then the user is also added as a member to the Team backed by unified group. + UPN of a user of the organization (user principal name - e.g. johndoe@example.com). String String - Member + None - GroupId, User, Role + GroupId + + + + + + + + User + + + + + + + + Role @@ -498,7 +355,7 @@ Online Version: - https://learn.microsoft.com/powershell/module/teams/add-teamuser + https://learn.microsoft.com/powershell/module/microsoftteams/add-teamuser @@ -579,15 +436,15 @@ Online Version: - https://docs.microsoft.com/powershell/module/teams/Get-ALLM365TeamsApps + https://docs.microsoft.com/powershell/module/microsoftteams/Get-AllM365TeamsApps Get-M365TeamsApp - https://learn.microsoft.com/powershell/module/teams/get-m365teamsapp + https://learn.microsoft.com/powershell/module/microsoftteams/get-m365teamsapp Update-M365TeamsApp - https://learn.microsoft.com/powershell/module/teams/get-m365teamsapp + https://learn.microsoft.com/powershell/module/microsoftteams/get-m365teamsapp @@ -685,69 +542,15 @@ Online Version: - https://learn.microsoft.com/powershell/module/teams/get-associatedteam + https://learn.microsoft.com/powershell/module/microsoftteams/get-associatedteam Get-Team - https://learn.microsoft.com/powershell/module/teams/get-team + https://learn.microsoft.com/powershell/module/microsoftteams/get-team Get-SharedWithTeam - https://learn.microsoft.com/powershell/module/teams/get-team - - - - - - Get-LicenseReportForChangeNotificationSubscription - Get - LicenseReportForChangeNotificationSubscription - - This cmdlet tells whether a user has the required license to export their messages via change notification subscription (https://learn.microsoft.com/graph/teams-licenses). - - - - This cmdlet supports retrieving the total number of messages sent by a user in chat/channel and whether a user has the required license(s) to send change notification events when subscribed for chat or channel messages. For more details, please review Licenses for subscribing to chat messages (https://learn.microsoft.com/graph/teams-licenses). This cmdlet is currently supported in preview version only. - - - - Get-LicenseReportForChangeNotificationSubscription - - - - - Period - - Number of days prior to today. Acceptable values are 7, 30, 90 and 180. - - - - - - - None - - - - - - - - - - - - --------------------------- Example --------------------------- - PS C:\> Get-LicenseReportForChangeNotificationSubscription -Period 7 - - Returns license info and total messages sent by users in the last 7 days. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/teams/get-licensereportforchangenotificationsubscription + https://learn.microsoft.com/powershell/module/microsoftteams/get-team @@ -840,15 +643,15 @@ Online Version: - https://docs.microsoft.com/powershell/module/teams/Get-M365TeamsApp + https://docs.microsoft.com/powershell/module/microsoftteams/Get-M365TeamsApp Get-AllM365TeamsApps - https://learn.microsoft.com/powershell/module/teams/get-allm365teamsapps + https://learn.microsoft.com/powershell/module/microsoftteams/get-allm365teamsapps Update-M365TeamsApp - https://learn.microsoft.com/powershell/module/teams/get-allm365teamsapps + https://learn.microsoft.com/powershell/module/microsoftteams/get-allm365teamsapps @@ -886,18 +689,18 @@ System.Object - Id : Application ID of the Teams app. ExternalId : External ID of the Teams app. Iteration : The Staged App Definition Etag of the app. This is a unique tag created everytime the staged app is updated, to help track changes. CreatedBy : The User ID of the user that created the app. LastUpdateDateTime : The date and time the app was last updated. ReviewStatus : The review status of the app. Values: - - PendingPublishing: A new custom app was requested that hasn't been published before. - - PendingUpdate: An existing custom app that was previously published and now has an update. Metadata : The metadata of the app. + - Id : Application ID of the Teams app. - ExternalId : External ID of the Teams app. - Iteration : The Staged App Definition Etag of the app. This is a unique tag created every time the staged app is updated, to help track changes. - CreatedBy : The User ID of the user that created the app. - LastUpdateDateTime : The date and time the app was last updated. - ReviewStatus : The review status of the app. Values: - PendingPublishing: A new custom app was requested that hasn't been published before. - PendingUpdate: An existing custom app that was previously published and now has an update. - Metadata : The metadata of the app. - + + + - --------------------------- Example --------------------------- + -------------------------- Example 1 -------------------------- PS C:\> Get-M365UnifiedCustomPendingApps Returns a complete list of all custom Microsoft Teams apps that are pending review, and their review statuses. @@ -907,7 +710,7 @@ Online Version: - https://docs.microsoft.com/powershell/module/teams/Get-M365UnifiedCustomPendingApps + https://docs.microsoft.com/powershell/module/microsoftteams/Get-M365UnifiedCustomPendingApps @@ -1008,7 +811,7 @@ Online Version: - https://docs.microsoft.com/powershell/module/teams/Get-M365UnifiedTenantSettings + https://docs.microsoft.com/powershell/module/microsoftteams/Get-M365UnifiedTenantSettings @@ -1028,9 +831,9 @@ Get-SharedWithTeam - HostTeamId + ChannelId - Team ID of the host team (Group ID). + Thread ID of the shared channel. String @@ -1040,9 +843,9 @@ None - ChannelId + HostTeamId - Thread ID of the shared channel. + Team ID of the host team (Group ID). String @@ -1067,9 +870,9 @@ - HostTeamId + ChannelId - Team ID of the host team (Group ID). + Thread ID of the shared channel. String @@ -1079,9 +882,9 @@ None - ChannelId + HostTeamId - Thread ID of the shared channel. + Team ID of the host team (Group ID). String @@ -1106,7 +909,23 @@ - HostTeamId, ChannelId, SharedWithTeamId + HostTeamId + + + + + + + + ChannelId + + + + + + + + SharedWithTeamId @@ -1148,15 +967,15 @@ Online Version: - https://learn.microsoft.com/powershell/module/teams/get-sharedwithteam + https://learn.microsoft.com/powershell/module/microsoftteams/get-sharedwithteam Get-Team - https://learn.microsoft.com/powershell/module/teams/get-team + https://learn.microsoft.com/powershell/module/microsoftteams/get-team Get-AssociatedTeam - https://learn.microsoft.com/powershell/module/teams/get-team + https://learn.microsoft.com/powershell/module/microsoftteams/get-team @@ -1176,9 +995,9 @@ Get-SharedWithTeamUser - HostTeamId + ChannelId - Team ID of the host team (Group ID). + Thread ID of the shared channel. String @@ -1188,9 +1007,9 @@ None - ChannelId + HostTeamId - Thread ID of the shared channel. + Team ID of the host team (Group ID). String @@ -1199,10 +1018,10 @@ None - - SharedWithTeamId + + Role - Team ID of the shared with team. + Filters the results to only users with the given role of "Owner" or "Member". String @@ -1211,10 +1030,10 @@ None - - Role + + SharedWithTeamId - Filters the results to only users with the given role of "Owner" or "Member". + Team ID of the shared with team. String @@ -1227,9 +1046,9 @@ - HostTeamId + ChannelId - Team ID of the host team (Group ID). + Thread ID of the shared channel. String @@ -1239,9 +1058,9 @@ None - ChannelId + HostTeamId - Thread ID of the shared channel. + Team ID of the host team (Group ID). String @@ -1250,10 +1069,10 @@ None - - SharedWithTeamId + + Role - Team ID of the shared with team. + Filters the results to only users with the given role of "Owner" or "Member". String @@ -1262,10 +1081,10 @@ None - - Role + + SharedWithTeamId - Filters the results to only users with the given role of "Owner" or "Member". + Team ID of the shared with team. String @@ -1278,7 +1097,23 @@ - HostTeamId, ChannelId, SharedWithTeamId + HostTeamId + + + + + + + + ChannelId + + + + + + + + SharedWithTeamId @@ -1321,11 +1156,11 @@ Online Version: - https://learn.microsoft.com/powershell/module/teams/get-sharedwithteamuser + https://learn.microsoft.com/powershell/module/microsoftteams/get-sharedwithteamuser Get-TeamUser - https://learn.microsoft.com/powershell/module/teams/get-teamuser + https://learn.microsoft.com/powershell/module/microsoftteams/get-teamuser @@ -1335,7 +1170,7 @@ Get Team - This cmdlet supports retrieving teams with particular properties/information, including all teams that a specific user belongs to, all teams that have been archived, all teams with a specific display name, or all teams in the organization. + Get Team information based on particular properties. @@ -1345,18 +1180,6 @@ Get-Team - - User - - User's UPN (user principal name - e.g. johndoe@example.com) - - String - - String - - - None - Archived @@ -1406,9 +1229,9 @@ None - Visibility + User - Filters to return teams with a set "visibility" value. Accepted values are "Public", "Private" or "HiddenMembership". Do not specify any value to return teams that match filter regardless of visibility. This is a filter rather than an exact match. + User's UPN (user principal name - e.g. johndoe@example.com) String @@ -1417,13 +1240,10 @@ None - - - Get-Team - User + Visibility - User's UPN (user principal name - e.g. johndoe@example.com) + Filters to return teams with a set "visibility" value. Accepted values are "Public", "Private" or "HiddenMembership". Do not specify any value to return teams that match filter regardless of visibility. This is a filter rather than an exact match. String @@ -1432,6 +1252,9 @@ None + + + Get-Team Archived @@ -1468,6 +1291,18 @@ None + + User + + User's UPN (user principal name - e.g. johndoe@example.com) + + String + + String + + + None + Visibility @@ -1499,9 +1334,21 @@ - User + Archived - User's UPN (user principal name - e.g. johndoe@example.com) + If $true, filters to return teams that have been archived. If $false, filters to return teams that have not been archived. Do not specify any value to return teams that match filter regardless of archived state. This is a filter rather than an exact match. + + Boolean + + Boolean + + + None + + + DisplayName + + Specify this parameter to return teams with the provided display name as a filter. As the display name is not unique, multiple values can be returned. Note that this filter value is case-sensitive. String @@ -1510,22 +1357,22 @@ None - - Archived + + GroupId - If $true, filters to return teams that have been archived. If $false, filters to return teams that have not been archived. Do not specify any value to return teams that match filter regardless of archived state. This is a filter rather than an exact match. + Specify the specific GroupId (as a string) of the team to be returned. This is a unique identifier and returns exact match. - Boolean + String - Boolean + String None - DisplayName + MailNickName - Specify this parameter to return teams with the provided display name as a filter. As the display name is not unique, multiple values can be returned. Note that this filter value is case-sensitive. + Specify the mailnickname of the team that is being returned. This acts as a filter instead of being an exact match. String @@ -1534,22 +1381,22 @@ None - - GroupId + + NumberOfThreads - Specify the specific GroupId (as a string) of the team to be returned. This is a unique identifier and returns exact match. + Specifies the number of threads to use. If you have sufficient network bandwidth and want to decrease the time required to retrieve the list of teams, use the -NumberOfThreads parameter, which supports a value from 1 through 20. - String + Int32 - String + Int32 - None + 20 - MailNickName + User - Specify the mailnickname of the team that is being returned. This acts as a filter instead of being an exact match. + User's UPN (user principal name - e.g. johndoe@example.com) String @@ -1570,23 +1417,19 @@ None - - NumberOfThreads - - Specifies the number of threads to use. If you have sufficient network bandwidth and want to decrease the time required to retrieve the list of teams, use the -NumberOfThreads parameter, which supports a value from 1 through 20. - - Int32 - - Int32 - - - 20 - - UPN, UserID + UPN + + + + + + + + UserID @@ -1649,15 +1492,15 @@ PS> Get-Team -DisplayName $team Online Version: - https://learn.microsoft.com/powershell/module/teams/get-team + https://learn.microsoft.com/powershell/module/microsoftteams/get-team New-Team - https://learn.microsoft.com/powershell/module/teams/new-team + https://learn.microsoft.com/powershell/module/microsoftteams/new-team Set-Team - https://learn.microsoft.com/powershell/module/teams/set-team + https://learn.microsoft.com/powershell/module/microsoftteams/set-team @@ -1731,7 +1574,15 @@ PS> Get-Team -DisplayName $team - GroupId, MembershipType + GroupId + + + + + + + + MembershipType @@ -1772,15 +1623,15 @@ PS> Get-Team -DisplayName $team Online Version: - https://learn.microsoft.com/powershell/module/teams/get-teamallchannel + https://learn.microsoft.com/powershell/module/microsoftteams/get-teamallchannel Get-TeamChannel - https://learn.microsoft.com/powershell/module/teams/get-teamchannel + https://learn.microsoft.com/powershell/module/microsoftteams/get-teamchannel Get-TeamIncomingChannel - https://learn.microsoft.com/powershell/module/teams/get-teamchannel + https://learn.microsoft.com/powershell/module/microsoftteams/get-teamchannel @@ -1877,7 +1728,7 @@ PS> Get-Team -DisplayName $team Online Version: - https://learn.microsoft.com/powershell/module/teams/get-teamchannel + https://learn.microsoft.com/powershell/module/microsoftteams/get-teamchannel @@ -1897,9 +1748,9 @@ PS> Get-Team -DisplayName $team Get-TeamChannelUser - GroupId + DisplayName - GroupId of the team + Display name of the channel String @@ -1909,9 +1760,9 @@ PS> Get-Team -DisplayName $team None - DisplayName + GroupId - Display name of the channel + GroupId of the team String @@ -1936,9 +1787,9 @@ PS> Get-Team -DisplayName $team - GroupId + DisplayName - GroupId of the team + Display name of the channel String @@ -1948,9 +1799,9 @@ PS> Get-Team -DisplayName $team None - DisplayName + GroupId - Display name of the channel + GroupId of the team String @@ -1991,7 +1842,7 @@ PS> Get-Team -DisplayName $team Online Version: - https://learn.microsoft.com/powershell/module/teams/get-teamchanneluser + https://learn.microsoft.com/powershell/module/microsoftteams/get-teamchanneluser @@ -2075,232 +1926,37 @@ PS> Get-Team -DisplayName $team Online Version: - https://learn.microsoft.com/powershell/module/teams/get-teamincomingchannel + https://learn.microsoft.com/powershell/module/microsoftteams/get-teamincomingchannel Get-TeamChannel - https://learn.microsoft.com/powershell/module/teams/get-teamchannel + https://learn.microsoft.com/powershell/module/microsoftteams/get-teamchannel Get-TeamAllChannel - https://learn.microsoft.com/powershell/module/teams/get-teamchannel - - - - - - Get-TeamsApp - Get - TeamsApp - - Returns app information from the Teams tenant app store. - - - - Use any optional parameter to retrieve app information from the Teams tenant app store. - - - - Get-TeamsApp - - DisplayName - - Name of the app visible to users - - String - - String - - - None - - - DistributionMethod - - The type of app in Teams: global or organization. For LOB apps, use "organization" - - String - - String - - - None - - - ExternalId - - The external ID of the app, provided by the app developer and used by Microsoft Entra ID - - String - - String - - - None - - - Id - - The app's ID generated by Teams (different from the external ID) - - String - - String - - - None - - - - - - DisplayName - - Name of the app visible to users - - String - - String - - - None - - - DistributionMethod - - The type of app in Teams: global or organization. For LOB apps, use "organization" - - String - - String - - - None - - - ExternalId - - The external ID of the app, provided by the app developer and used by Microsoft Entra ID - - String - - String - - - None - - - Id - - The app's ID generated by Teams (different from the external ID) - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-TeamsApp -Id b9cc7986-dd56-4b57-ab7d-9c4e5288b775 - - - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-TeamsApp -ExternalId b00080be-9b31-4927-9e3e-fa8024a7d98a -DisplayName <String>] [-DistributionMethod <String>] - - - - - - -------------------------- Example 3 -------------------------- - PS C:\> Get-TeamsApp -DisplayName SampleApp -DistributionMethod organization - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/teams/get-teamsapp + https://learn.microsoft.com/powershell/module/microsoftteams/get-teamchannel - - Get-TeamsAppInstallation - Get - TeamsAppInstallation - - Get a Teams App installed in Microsoft Teams. - - - - Get a Teams App installed in Microsoft Teams. - Note: This cmdlet is part of the Public Preview version of Teams PowerShell Module, for more information see Install Teams PowerShell public preview (https://learn.microsoft.com/microsoftteams/teams-powershell-install#install-teams-powershell-public-preview) and also see [Microsoft Teams PowerShell Release Notes](https://learn.microsoft.com/microsoftteams/teams-powershell-release-notes). - - - - Get-TeamsAppInstallation - - AppId - - Teams App identifier in Microsoft Teams. - - String - - String - - - None - - - AppInstallationId - - Installation identifier of the Teams App. - - String - - String - - - None - - - TeamId + + Get-TeamsApp + Get + TeamsApp + + Returns app information from the Teams tenant app store. + + + + Use any optional parameter to retrieve app information from the Teams tenant app store. + + + + Get-TeamsApp + + DisplayName - Team identifier in Microsoft Teams. + Name of the app visible to users String @@ -2309,13 +1965,10 @@ PS> Get-Team -DisplayName $team None - - - Get-TeamsAppInstallation - - AppId + + DistributionMethod - Teams App identifier in Microsoft Teams. + The type of app in Teams: global or organization. For LOB apps, use "organization" String @@ -2324,10 +1977,10 @@ PS> Get-Team -DisplayName $team None - - AppInstallationId + + ExternalId - Installation identifier of the Teams App. + The external ID of the app, provided by the app developer and used by Microsoft Entra ID String @@ -2336,10 +1989,10 @@ PS> Get-Team -DisplayName $team None - - UserId + + Id - User identifier in Microsoft Teams. + The app's ID generated by Teams (different from the external ID) String @@ -2351,10 +2004,10 @@ PS> Get-Team -DisplayName $team - - AppId + + DisplayName - Teams App identifier in Microsoft Teams. + Name of the app visible to users String @@ -2363,10 +2016,10 @@ PS> Get-Team -DisplayName $team None - - AppInstallationId + + DistributionMethod - Installation identifier of the Teams App. + The type of app in Teams: global or organization. For LOB apps, use "organization" String @@ -2375,10 +2028,10 @@ PS> Get-Team -DisplayName $team None - - TeamId + + ExternalId - Team identifier in Microsoft Teams. + The external ID of the app, provided by the app developer and used by Microsoft Entra ID String @@ -2387,10 +2040,10 @@ PS> Get-Team -DisplayName $team None - - UserId + + Id - User identifier in Microsoft Teams. + The app's ID generated by Teams (different from the external ID) String @@ -2403,7 +2056,7 @@ PS> Get-Team -DisplayName $team - System.String + None @@ -2428,16 +2081,30 @@ PS> Get-Team -DisplayName $team -------------------------- Example 1 -------------------------- - PS C:\> Get-TeamsAppInstallation -AppId b9cc7986-dd56-4b57-ab7d-9c4e5288b775 -TeamId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df + PS C:\> Get-TeamsApp -Id b9cc7986-dd56-4b57-ab7d-9c4e5288b775 + + + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-TeamsApp -ExternalId b00080be-9b31-4927-9e3e-fa8024a7d98a -DisplayName <String>] [-DistributionMethod <String>] - This example gets a Teams App specifying its AppId and the TeamId. + + + + + -------------------------- Example 3 -------------------------- + PS C:\> Get-TeamsApp -DisplayName SampleApp -DistributionMethod organization + + Online Version: - https://learn.microsoft.com/powershell/module/teams/get-teamsappinstallation + https://learn.microsoft.com/powershell/module/microsoftteams/get-teamsapp @@ -2447,65 +2114,67 @@ PS> Get-Team -DisplayName $team Get TeamTargetingHierarchyStatus - Get the status of a hierarchy upload (see Set-TeamTargetingHierarchy (https://learn.microsoft.com/powershell/module/teams/set-teamtargetinghierarchy)) + Get the status of a hierarchy upload (see Set-TeamTargetingHierarchy (https://learn.microsoft.com/powershell/module/microsoftteams/set-teamtargetinghierarchy)) - + + The `Get-TeamTargetingHierarchyStatus` cmdlet retrieves the status of a hierarchy upload initiated by the `Set-TeamTargetingHierarchy` cmdlet. It provides information about the success or failure of the upload, including any errors encountered during the process. + Get-TeamTargetingHierarchyStatus - - RequestId + + ApiVersion - Specifies the ID returned by the Set-TeamTargetingHierarchy cmdlet. This parameter is optional and the status of the most recent upload will be retrieved. + The version of the Hierarchy APIs to use. Valid values are: 1 or 2. + Currently only available in preview from version 6.6.1-preview. Specifying "-ApiVersion 2" will direct cmdlet requests to the newer version of the Hierarchy APIs. This integration is currently in preview/beta mode so customers should not try it on their production workloads but are welcome to try it on test workloads. This is an optional parameter and not specifying it will be interpreted as specifying "-ApiVersion 1", which will continue to direct cmdlet requests to the original version of the Hierarchy APIs until we upgrade production to v2, at which time we will set the default to 2. We do not expect this to have any impact on your cmdlet usage or existing scripts. String String - None + 1 - - ApiVersion + + RequestId - The version of the Hierarchy APIs to use. Valid values are: 1 or 2. - Currently only available in preview from version 6.6.1-preview. Specifying "-ApiVersion 2" will direct cmdlet requests to the newer version of the Hierarchy APIs. This integration is currently in preview/beta mode so customers should not try it on their production workloads but are welcome to try it on test workloads. This is an optional parameter and not specifying it will be interpreted as specifying "-ApiVersion 1", which will continue to direct cmdlet requests to the original version of the Hierarchy APIs until we upgrade production to v2, at which time we will set the default to 2. We do not expect this to have any impact on your cmdlet usage or existing scripts. + Specifies the ID returned by the Set-TeamTargetingHierarchy cmdlet. This parameter is optional and the status of the most recent upload will be retrieved. String String - 1 + None - - RequestId + + ApiVersion - Specifies the ID returned by the Set-TeamTargetingHierarchy cmdlet. This parameter is optional and the status of the most recent upload will be retrieved. + The version of the Hierarchy APIs to use. Valid values are: 1 or 2. + Currently only available in preview from version 6.6.1-preview. Specifying "-ApiVersion 2" will direct cmdlet requests to the newer version of the Hierarchy APIs. This integration is currently in preview/beta mode so customers should not try it on their production workloads but are welcome to try it on test workloads. This is an optional parameter and not specifying it will be interpreted as specifying "-ApiVersion 1", which will continue to direct cmdlet requests to the original version of the Hierarchy APIs until we upgrade production to v2, at which time we will set the default to 2. We do not expect this to have any impact on your cmdlet usage or existing scripts. String String - None + 1 - - ApiVersion + + RequestId - The version of the Hierarchy APIs to use. Valid values are: 1 or 2. - Currently only available in preview from version 6.6.1-preview. Specifying "-ApiVersion 2" will direct cmdlet requests to the newer version of the Hierarchy APIs. This integration is currently in preview/beta mode so customers should not try it on their production workloads but are welcome to try it on test workloads. This is an optional parameter and not specifying it will be interpreted as specifying "-ApiVersion 1", which will continue to direct cmdlet requests to the original version of the Hierarchy APIs until we upgrade production to v2, at which time we will set the default to 2. We do not expect this to have any impact on your cmdlet usage or existing scripts. + Specifies the ID returned by the Set-TeamTargetingHierarchy cmdlet. This parameter is optional and the status of the most recent upload will be retrieved. String String - 1 + None @@ -2562,11 +2231,11 @@ FileName : hier.csv Online Version: - https://learn.microsoft.com/powershell/module/teams/get-teamtargetinghierarchystatus + https://learn.microsoft.com/powershell/module/microsoftteams/get-teamtargetinghierarchystatus Set-TeamTargetingHierarchy - https://learn.microsoft.com/powershell/module/teams/set-teamtargetinghierarchy + https://learn.microsoft.com/powershell/module/microsoftteams/set-teamtargetinghierarchy @@ -2656,7 +2325,7 @@ FileName : hier.csv Online Version: - https://learn.microsoft.com/powershell/module/teams/get-teamuser + https://learn.microsoft.com/powershell/module/microsoftteams/get-teamuser @@ -2666,95 +2335,34 @@ FileName : hier.csv New Team - This cmdlet lets you provision a new Team for use in Microsoft Teams and will create an O365 Unified Group to back the team. Groups created through teams cmdlets, APIs, or clients will not show up in Outlook by default. - If you want these groups to appear in Outlook clients, you can use the Set-UnifiedGroup (https://learn.microsoft.com/powershell/module/exchange/set-unifiedgroup) cmdlet in the Exchange Powershell Module to disable the switch parameter `HiddenFromExchangeClientsEnabled` (-HiddenFromExchangeClientsEnabled:$false). - Note: The Teams application may need to be open by an Owner for up to two hours before changes are reflected. + This cmdlet lets you provision a new Team for use in Microsoft Teams and will create an O365 Unified Group to back the team. Creates a new team with user specified settings, and returns a Group object with a GroupID property. + Groups created through teams cmdlets, APIs, or clients will not show up in Outlook by default. + If you want these groups to appear in Outlook clients, you can use the Set-UnifiedGroup (https://learn.microsoft.com/powershell/module/exchangepowershell/set-unifiedgroup) cmdlet in the Exchange Powershell Module to disable the switch parameter `HiddenFromExchangeClientsEnabled` (-HiddenFromExchangeClientsEnabled:$false). + Note: The Teams application may need to be open by an Owner for up to two hours before changes are reflected. New-Team - - MailNickName - - The MailNickName parameter specifies the alias for the associated Office 365 Group. This value will be used for the mail enabled object and will be used as PrimarySmtpAddress for this Office 365 Group. The value of the MailNickName parameter has to be unique across your tenant. Note: If Microsoft 365 groups naming policies are enabled in your tenant, this parameter is required and must also comply with the naming policy. - For more details about the naming conventions see here: New-UnifiedGroup (https://learn.microsoft.com/powershell/module/exchange/new-unifiedgroup#parameters), Parameter: -Alias. - - String - - String - - - None - - - Classification - - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - Description - - Team description. Characters Limit - 1024. - - String - - String - - - None - - - DisplayName - - Team display name. Characters Limit - 256. - - String - - String - - - None - - - Template - - If you have an EDU license, you can use this parameter to specify which template you'd like to use for creating your group. Do not use this parameter when converting an existing group. - Valid values are: "EDU_Class" or "EDU_PLC" - - String - - String - - - None - - - Owner + + AllowAddRemoveApps - An admin who is allowed to create on behalf of another user should use this flag to specify the desired owner of the group. This user will be added as both a member and an owner of the group. If not specified, the user who creates the team will be added as both a member and an owner. Please note: This parameter is mandatory, if connected using Certificate Based Authentication. + Boolean value that determines whether or not members (not only owners) are allowed to add apps to the team. - String + Boolean - String + Boolean - None + True - AllowAddRemoveApps + AllowChannelMentions - Boolean value that determines whether or not members (not only owners) are allowed to add apps to the team. + Boolean value that determines whether or not channels in the team can be @ mentioned so that all users who follow the channel are notified. Boolean @@ -2764,16 +2372,16 @@ FileName : hier.csv True - AllowChannelMentions + AllowCreatePrivateChannels - Boolean value that determines whether or not channels in the team can be @ mentioned so that all users who follow the channel are notified. + Determines whether private channel creation is allowed for the team. Boolean Boolean - True + None AllowCreateUpdateChannels @@ -2931,6 +2539,42 @@ FileName : hier.csv True + + Classification + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Description + + Team description. Characters Limit - 1024. + + String + + String + + + None + + + DisplayName + + Team display name. Characters Limit - 256. + + String + + String + + + None + GiphyContentRating @@ -2944,28 +2588,29 @@ FileName : hier.csv Moderate - Visibility + MailNickName - Set to Public to allow all users in your organization to join the group by default. Set to Private to require that an owner approve the join request. + The MailNickName parameter specifies the alias for the associated Office 365 Group. This value will be used for the mail enabled object and will be used as PrimarySmtpAddress for this Office 365 Group. The value of the MailNickName parameter has to be unique across your tenant. Note: If Microsoft 365 groups naming policies are enabled in your tenant, this parameter is required and must also comply with the naming policy. + For more details about the naming conventions see here: New-UnifiedGroup (https://learn.microsoft.com/powershell/module/exchangepowershell/new-unifiedgroup#parameters), Parameter: -Alias. String String - Private + None - - ShowInTeamsSearchAndSuggestions + + Owner - Setting that determines whether or not private teams should be searchable from Teams clients for users who do not belong to that team. Set to $false to make those teams not discoverable from Teams clients. + An admin who is allowed to create on behalf of another user should use this flag to specify the desired owner of the group. This user will be added as both a member and an owner of the group. If not specified, the user who creates the team will be added as both a member and an owner. Please note: This parameter is mandatory, if connected using Certificate Based Authentication. - Boolean + String - Boolean + String - True + None RetainCreatedGroup @@ -2979,32 +2624,45 @@ FileName : hier.csv False - AllowCreatePrivateChannels + ShowInTeamsSearchAndSuggestions - Determines whether private channel creation is allowed for the team. + Setting that determines whether or not private teams should be searchable from Teams clients for users who do not belong to that team. Set to $false to make those teams not discoverable from Teams clients. Boolean Boolean + True + + + Template + + If you have an EDU license, you can use this parameter to specify which template you'd like to use for creating your group. Do not use this parameter when converting an existing group. + Valid values are: "EDU_Class" or "EDU_PLC" + + String + + String + + None - - - New-Team - Owner + Visibility - An admin who is allowed to create on behalf of another user should use this flag to specify the desired owner of the group. This user will be added as both a member and an owner of the group. If not specified, the user who creates the team will be added as both a member and an owner. Please note: This parameter is mandatory, if connected using Certificate Based Authentication. + Set to Public to allow all users in your organization to join the group by default. Set to Private to require that an owner approve the join request. String String - None + Private + + + New-Team AllowAddRemoveApps @@ -3200,7 +2858,7 @@ FileName : hier.csv GroupId - Specify a GroupId to convert to a Team. If specified, you cannot provide the other values that are already specified by the existing group, namely: Visibility, Alias, Description, or DisplayName. If, for example, you need to create a Team from an existing Microsoft 365 Group, use the ExternalDirectoryObjectId property value returned by Get-UnifiedGroup (https://learn.microsoft.com/powershell/module/exchange/get-unifiedgroup?view=exchange-ps). + Specify a GroupId to convert to a Team. If specified, you cannot provide the other values that are already specified by the existing group, namely: Visibility, Alias, Description, or DisplayName. If, for example, you need to create a Team from an existing Microsoft 365 Group, use the ExternalDirectoryObjectId property value returned by Get-UnifiedGroup (https://learn.microsoft.com/powershell/module/exchangepowershell/get-unifiedgroup). String @@ -3209,17 +2867,17 @@ FileName : hier.csv None - - ShowInTeamsSearchAndSuggestions + + Owner - Setting that determines whether or not private teams should be searchable from Teams clients for users who do not belong to that team. Set to $false to make those teams not discoverable from Teams clients. + An admin who is allowed to create on behalf of another user should use this flag to specify the desired owner of the group. This user will be added as both a member and an owner of the group. If not specified, the user who creates the team will be added as both a member and an owner. Please note: This parameter is mandatory, if connected using Certificate Based Authentication. - Boolean + String - Boolean + String - True + None RetainCreatedGroup @@ -3232,87 +2890,37 @@ FileName : hier.csv False + + ShowInTeamsSearchAndSuggestions + + Setting that determines whether or not private teams should be searchable from Teams clients for users who do not belong to that team. Set to $false to make those teams not discoverable from Teams clients. + + Boolean + + Boolean + + + True + - - MailNickName - - The MailNickName parameter specifies the alias for the associated Office 365 Group. This value will be used for the mail enabled object and will be used as PrimarySmtpAddress for this Office 365 Group. The value of the MailNickName parameter has to be unique across your tenant. Note: If Microsoft 365 groups naming policies are enabled in your tenant, this parameter is required and must also comply with the naming policy. - For more details about the naming conventions see here: New-UnifiedGroup (https://learn.microsoft.com/powershell/module/exchange/new-unifiedgroup#parameters), Parameter: -Alias. - - String - - String - - - None - - - Classification - - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - Description - - Team description. Characters Limit - 1024. - - String - - String - - - None - - - DisplayName - - Team display name. Characters Limit - 256. - - String - - String - - - None - - - Template - - If you have an EDU license, you can use this parameter to specify which template you'd like to use for creating your group. Do not use this parameter when converting an existing group. - Valid values are: "EDU_Class" or "EDU_PLC" - - String - - String - - - None - - - Owner + + AllowAddRemoveApps - An admin who is allowed to create on behalf of another user should use this flag to specify the desired owner of the group. This user will be added as both a member and an owner of the group. If not specified, the user who creates the team will be added as both a member and an owner. Please note: This parameter is mandatory, if connected using Certificate Based Authentication. + Boolean value that determines whether or not members (not only owners) are allowed to add apps to the team. - String + Boolean - String + Boolean - None + True - AllowAddRemoveApps + AllowChannelMentions - Boolean value that determines whether or not members (not only owners) are allowed to add apps to the team. + Boolean value that determines whether or not channels in the team can be @ mentioned so that all users who follow the channel are notified. Boolean @@ -3322,16 +2930,16 @@ FileName : hier.csv True - AllowChannelMentions + AllowCreatePrivateChannels - Boolean value that determines whether or not channels in the team can be @ mentioned so that all users who follow the channel are notified. + Determines whether private channel creation is allowed for the team. Boolean Boolean - True + None AllowCreateUpdateChannels @@ -3489,6 +3097,42 @@ FileName : hier.csv True + + Classification + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Description + + Team description. Characters Limit - 1024. + + String + + String + + + None + + + DisplayName + + Team display name. Characters Limit - 256. + + String + + String + + + None + GiphyContentRating @@ -3504,7 +3148,7 @@ FileName : hier.csv GroupId - Specify a GroupId to convert to a Team. If specified, you cannot provide the other values that are already specified by the existing group, namely: Visibility, Alias, Description, or DisplayName. If, for example, you need to create a Team from an existing Microsoft 365 Group, use the ExternalDirectoryObjectId property value returned by Get-UnifiedGroup (https://learn.microsoft.com/powershell/module/exchange/get-unifiedgroup?view=exchange-ps). + Specify a GroupId to convert to a Team. If specified, you cannot provide the other values that are already specified by the existing group, namely: Visibility, Alias, Description, or DisplayName. If, for example, you need to create a Team from an existing Microsoft 365 Group, use the ExternalDirectoryObjectId property value returned by Get-UnifiedGroup (https://learn.microsoft.com/powershell/module/exchangepowershell/get-unifiedgroup). String @@ -3514,28 +3158,29 @@ FileName : hier.csv None - Visibility + MailNickName - Set to Public to allow all users in your organization to join the group by default. Set to Private to require that an owner approve the join request. + The MailNickName parameter specifies the alias for the associated Office 365 Group. This value will be used for the mail enabled object and will be used as PrimarySmtpAddress for this Office 365 Group. The value of the MailNickName parameter has to be unique across your tenant. Note: If Microsoft 365 groups naming policies are enabled in your tenant, this parameter is required and must also comply with the naming policy. + For more details about the naming conventions see here: New-UnifiedGroup (https://learn.microsoft.com/powershell/module/exchangepowershell/new-unifiedgroup#parameters), Parameter: -Alias. String String - Private + None - - ShowInTeamsSearchAndSuggestions + + Owner - Setting that determines whether or not private teams should be searchable from Teams clients for users who do not belong to that team. Set to $false to make those teams not discoverable from Teams clients. + An admin who is allowed to create on behalf of another user should use this flag to specify the desired owner of the group. This user will be added as both a member and an owner of the group. If not specified, the user who creates the team will be added as both a member and an owner. Please note: This parameter is mandatory, if connected using Certificate Based Authentication. - Boolean + String - Boolean + String - True + None RetainCreatedGroup @@ -3550,17 +3195,42 @@ FileName : hier.csv False - AllowCreatePrivateChannels + ShowInTeamsSearchAndSuggestions - Determines whether private channel creation is allowed for the team. + Setting that determines whether or not private teams should be searchable from Teams clients for users who do not belong to that team. Set to $false to make those teams not discoverable from Teams clients. Boolean Boolean + True + + + Template + + If you have an EDU license, you can use this parameter to specify which template you'd like to use for creating your group. Do not use this parameter when converting an existing group. + Valid values are: "EDU_Class" or "EDU_PLC" + + String + + String + + None + + Visibility + + Set to Public to allow all users in your organization to join the group by default. Set to Private to require that an owner approve the join request. + + String + + String + + + Private + @@ -3610,19 +3280,19 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" Online Version: - https://learn.microsoft.com/powershell/module/teams/new-team + https://learn.microsoft.com/powershell/module/microsoftteams/new-team Remove-Team - https://learn.microsoft.com/powershell/module/teams/remove-team + https://learn.microsoft.com/powershell/module/microsoftteams/remove-team Get-Team - https://learn.microsoft.com/powershell/module/teams/get-team + https://learn.microsoft.com/powershell/module/microsoftteams/get-team Set-Team - https://learn.microsoft.com/powershell/module/teams/set-team + https://learn.microsoft.com/powershell/module/microsoftteams/set-team @@ -3641,10 +3311,10 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" New-TeamChannel - - GroupId + + Description - GroupId of the team + Channel description. Channel description can be up to 1024 characters. String @@ -3665,10 +3335,10 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - - Description + + GroupId - Channel description. Channel description can be up to 1024 characters. + GroupId of the team String @@ -3704,10 +3374,10 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" - - GroupId + + Description - GroupId of the team + Channel description. Channel description can be up to 1024 characters. String @@ -3728,10 +3398,10 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - - Description + + GroupId - Channel description. Channel description can be up to 1024 characters. + GroupId of the team String @@ -3762,13 +3432,45 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" String - None - - - + None + + + + + + GroupId + + + + + + + + DisplayName + + + + + + + + Description + + + + + + + + MembershipType + + + + + - GroupId, DisplayName, Description, MembershipType, Owner + Owner @@ -3809,7 +3511,7 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" Online Version: - https://learn.microsoft.com/powershell/module/teams/new-teamchannel + https://learn.microsoft.com/powershell/module/microsoftteams/new-teamchannel @@ -3917,7 +3619,7 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" Online Version: - https://learn.microsoft.com/powershell/module/teams/new-teamsapp + https://learn.microsoft.com/powershell/module/microsoftteams/new-teamsapp @@ -3937,9 +3639,9 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" Remove-SharedWithTeam - HostTeamId + ChannelId - Team ID of the host team (Group ID). + Thread ID of the shared channel. String @@ -3949,9 +3651,9 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - ChannelId + HostTeamId - Thread ID of the shared channel. + Team ID of the host team (Group ID). String @@ -3976,9 +3678,9 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" - HostTeamId + ChannelId - Team ID of the host team (Group ID). + Thread ID of the shared channel. String @@ -3988,9 +3690,9 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - ChannelId + HostTeamId - Thread ID of the shared channel. + Team ID of the host team (Group ID). String @@ -4015,7 +3717,23 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" - HostTeamId, ChannelId, SharedWithTeamId + HostTeamId + + + + + + + + ChannelId + + + + + + + + SharedWithTeamId @@ -4041,11 +3759,11 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-sharedwithteam + https://learn.microsoft.com/powershell/module/microsoftteams/remove-sharedwithteam Remove-Team - https://learn.microsoft.com/powershell/module/teams/remove-team + https://learn.microsoft.com/powershell/module/microsoftteams/remove-team @@ -4112,11 +3830,11 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-team + https://learn.microsoft.com/powershell/module/microsoftteams/remove-team New-Team - https://learn.microsoft.com/powershell/module/teams/new-team + https://learn.microsoft.com/powershell/module/microsoftteams/new-team @@ -4126,28 +3844,17 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" Remove TeamChannel - Delete a channel. This will not delete content in associated tabs. - Note: The channel will be "soft deleted", meaning the contents are not permanently deleted for a time. So a subsequent call to Add-TeamChannel using the same channel name will fail if enough time has not passed. + Delete a channel. + This will not delete content in associated tabs. + Note: The channel will be "soft deleted", meaning the contents are not permanently deleted for a time. So a subsequent call to Add-TeamChannel using the same channel name will fail if enough time has not passed. > [!IMPORTANT] > Modules in the PS INT gallery for Microsoft Teams run on the /beta version in Microsoft Graph and are subject to change. Int modules can be install from here `https://www.poshtestgallery.com/packages/MicrosoftTeams`. Remove-TeamChannel - - GroupId - - GroupId of the team - - String - - String - - - None - DisplayName @@ -4160,74 +3867,6 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - - - - - GroupId - - GroupId of the team - - String - - String - - - None - - - DisplayName - - Channel name to be deleted - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Remove-TeamChannel -GroupId 2f162b0e-36d2-4e15-8ba3-ba229cecdccf -DisplayName "Tech Reads" - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-teamchannel - - - - - - Remove-TeamChannelUser - Remove - TeamChannelUser - - > [!Note] > The command will return immediately, but the Teams application will not reflect the update immediately, please refresh the members page to see the update. - To turn an existing Owner into a Member, specify role parameter as Owner. - > [!Note] > Last owner cannot be removed from the private channel. - - - - > [!Note] > This cmdlet is part of the Public Preview version of Teams PowerShell Module, for more information see Install Teams PowerShell public preview (https://learn.microsoft.com/microsoftteams/teams-powershell-install#install-teams-powershell-public-preview) and also see [Microsoft Teams PowerShell Release Notes](https://learn.microsoft.com/microsoftteams/teams-powershell-release-notes). - - - - Remove-TeamChannelUser GroupId @@ -4240,151 +3879,13 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - - DisplayName - - Display name of the private channel - - String - - String - - - None - - - User - - User's email address (e.g. johndoe@example.com) - - String - - String - - - None - - - Role - - Use this to demote a user from owner to member of the team - - String - - String - - - None - - - - - - GroupId - - GroupId of the team - - String - - String - - - None - - - DisplayName - - Display name of the private channel - - String - - String - - - None - - - User - - User's email address (e.g. johndoe@example.com) - - String - - String - - - None - - - Role - - Use this to demote a user from owner to member of the team - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Remove-TeamChannelUser -GroupId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df -DisplayName "Engineering" -User dmx@example.com - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-teamchanneluser - - - - - - Remove-TeamsApp - Remove - TeamsApp - - Removes an app in the Teams tenant app store. - - - - Removes an app in the Teams tenant app store. - - - - Remove-TeamsApp - - Id - - The app's ID generated by Teams (different from the external ID) - - String - - String - - - None - - - Id + + DisplayName - The app's ID generated by Teams (different from the external ID) + Channel name to be deleted String @@ -4393,27 +3894,21 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - - - - - None - + + GroupId - + GroupId of the team - - - - + String - System.Object + String + - - - - - + None + + + + @@ -4422,7 +3917,7 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" -------------------------- Example 1 -------------------------- - PS C:\> Remove-TeamsApp -Id b9cc7986-dd56-4b57-ab7d-9c4e5288b775 + Remove-TeamChannel -GroupId 2f162b0e-36d2-4e15-8ba3-ba229cecdccf -DisplayName "Tech Reads" @@ -4431,54 +3926,32 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-teamsapp + https://learn.microsoft.com/powershell/module/microsoftteams/remove-teamchannel - Remove-TeamsAppInstallation + Remove-TeamChannelUser Remove - TeamsAppInstallation + TeamChannelUser - Removes a Teams App installed in Microsoft Teams. + Removes a user from a channel in Microsoft Teams. - Removes a Teams App installed in Microsoft Teams. - Note: This cmdlet is part of the Public Preview version of Teams PowerShell Module, for more information see Install Teams PowerShell public preview (https://learn.microsoft.com/microsoftteams/teams-powershell-install#install-teams-powershell-public-preview) and also see [Microsoft Teams PowerShell Release Notes](https://learn.microsoft.com/microsoftteams/teams-powershell-release-notes). + > [!NOTE] > This cmdlet is part of the Public Preview version of Teams PowerShell Module, for more information see Install Teams PowerShell public preview (/microsoftteams/teams-powershell-install#install-teams-powershell-public-preview) and also see [Microsoft Teams PowerShell Release Notes](/microsoftteams/teams-powershell-release-notes). + The command will return immediately, but the Teams application will not reflect the update immediately, please refresh the members page to see the update. + To turn an existing Owner into a Member, specify role parameter as Owner. + > [!NOTE] > Last owner cannot be removed from the private channel. - Remove-TeamsAppInstallation - - AppId - - Teams App identifier in Microsoft Teams. - - String - - String - - - None - - - AppInstallationId - - Installation identifier of the Teams App. - - String - - String - - - None - - - TeamId + Remove-TeamChannelUser + + DisplayName - Team identifier in Microsoft Teams. + Display name of the private channel String @@ -4487,13 +3960,10 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - - - Remove-TeamsAppInstallation - - AppId + + GroupId - Teams App identifier in Microsoft Teams. + GroupId of the team String @@ -4503,9 +3973,9 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - AppInstallationId + Role - Installation identifier of the Teams App. + Use this to demote a user from owner to member of the team String @@ -4515,9 +3985,9 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - UserId + User - User identifier in Microsoft Teams. + User's email address (e.g. johndoe@example.com) String @@ -4529,10 +3999,10 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" - - AppId + + DisplayName - Teams App identifier in Microsoft Teams. + Display name of the private channel String @@ -4541,10 +4011,10 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - - AppInstallationId + + GroupId - Installation identifier of the Teams App. + GroupId of the team String @@ -4553,10 +4023,10 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - - TeamId + + Role - Team identifier in Microsoft Teams. + Use this to demote a user from owner to member of the team String @@ -4566,9 +4036,75 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - UserId + User + + User's email address (e.g. johndoe@example.com) + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Remove-TeamChannelUser -GroupId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df -DisplayName "Engineering" -User dmx@example.com + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-teamchanneluser + + + + + + Remove-TeamsApp + Remove + TeamsApp + + Removes an app in the Teams tenant app store. + + + + Removes an app in the Teams tenant app store. + + + + Remove-TeamsApp + + Id + + The app's ID generated by Teams (different from the external ID) + + String + + String + + + None + + + + + + Id - User identifier in Microsoft Teams. + The app's ID generated by Teams (different from the external ID) String @@ -4581,7 +4117,7 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" - System.String + None @@ -4606,16 +4142,16 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" -------------------------- Example 1 -------------------------- - PS C:\> Remove-TeamsAppInstallation -AppId b9cc7986-dd56-4b57-ab7d-9c4e5288b775 -TeamId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df + PS C:\> Remove-TeamsApp -Id b9cc7986-dd56-4b57-ab7d-9c4e5288b775 - This example removes a Teams App in Microsoft Teams specifying its AppId and TeamId. + Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-teamsappinstallation + https://learn.microsoft.com/powershell/module/microsoftteams/remove-teamsapp @@ -4683,11 +4219,11 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" Online Version: - https://learn.microsoft.com/powershell/module/teams/connect-microsoftteams + https://learn.microsoft.com/powershell/module/microsoftteams/connect-microsoftteams Set-TeamTargetingHierarchy - https://learn.microsoft.com/powershell/module/teams/set-teamtargetinghierarchy + https://learn.microsoft.com/powershell/module/microsoftteams/set-teamtargetinghierarchy @@ -4698,12 +4234,11 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" TeamUser Remove an owner or member from a team, and from the unified group which backs the team. - Note: the command will return immediately, but the Teams application will not reflect the update immediately. The Teams application may need to be open for up to an hour before changes are reflected. - Note: last owner cannot be removed from the team. - + Note: The command will return immediately, but the Teams application will not reflect the update immediately. The Teams application may need to be open for up to an hour before changes are reflected. + Note: The last owner cannot be removed from the team. @@ -4721,9 +4256,11 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - User + Role - User's UPN (user principal name - e.g. johndoe@example.com) + If cmdlet is called with -Role parameter as "Owner", the specified user is removed as an owner of the team but stays as a team member. + If cmdlet is called with -Role parameter as "Member", the specified user will be removed as an owner and member. + Note: The last owner cannot be removed from the team. String @@ -4733,10 +4270,9 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - Role + User - If cmdlet is called with -Role parameter as "Owner", the specified user is removed as an owner of the team but stays as a team member. - Note: The last owner cannot be removed from the team. + User's UPN (user principal name - e.g. johndoe@example.com) String @@ -4761,9 +4297,11 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - User + Role - User's UPN (user principal name - e.g. johndoe@example.com) + If cmdlet is called with -Role parameter as "Owner", the specified user is removed as an owner of the team but stays as a team member. + If cmdlet is called with -Role parameter as "Member", the specified user will be removed as an owner and member. + Note: The last owner cannot be removed from the team. String @@ -4773,10 +4311,9 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - Role + User - If cmdlet is called with -Role parameter as "Owner", the specified user is removed as an owner of the team but stays as a team member. - Note: The last owner cannot be removed from the team. + User's UPN (user principal name - e.g. johndoe@example.com) String @@ -4812,7 +4349,7 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-teamuser + https://learn.microsoft.com/powershell/module/microsoftteams/remove-teamuser @@ -4831,82 +4368,82 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" Set-Team - - GroupId + + AllowAddRemoveApps - GroupId of the team + Boolean value that determines whether or not members (not only owners) are allowed to add apps to the team. - String + Boolean - String + Boolean None - DisplayName + AllowChannelMentions - Team display name. Team Name Characters Limit - 256. + Boolean value that determines whether or not channels in the team can be @ mentioned so that all users who follow the channel are notified. - String + Boolean - String + Boolean None - Description + AllowCreatePrivateChannels - Team description. Team Description Characters Limit - 1024. + Determines whether private channel creation is allowed for the team. - String + Boolean - String + Boolean None - MailNickName + AllowCreateUpdateChannels - The MailNickName parameter specifies the alias for the associated Office 365 Group. This value will be used for the mail enabled object and will be used as PrimarySmtpAddress for this Office 365 Group. The value of the MailNickName parameter has to be unique across your tenant. + Setting that determines whether or not members (and not just owners) are allowed to create channels. - String + Boolean - String + Boolean None - Classification + AllowCreateUpdateRemoveConnectors - This parameter is reserved for internal Microsoft use. + Setting that determines whether or not members (and not only owners) can manage connectors in the team. - String + Boolean - String + Boolean None - Visibility + AllowCreateUpdateRemoveTabs - Team visibility. Valid values are "Private" and "Public" + Setting that determines whether or not members (and not only owners) can manage tabs in channels. - String + Boolean - String + Boolean None - AllowAddRemoveApps + AllowCustomMemes - Boolean value that determines whether or not members (not only owners) are allowed to add apps to the team. + Setting that determines whether or not members can use the custom memes functionality in teams. Boolean @@ -4916,9 +4453,9 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - AllowChannelMentions + AllowDeleteChannels - Boolean value that determines whether or not channels in the team can be @ mentioned so that all users who follow the channel are notified. + Setting that determines whether or not members (and not only owners) can delete channels in the team. Boolean @@ -4928,9 +4465,9 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - AllowCreateUpdateChannels + AllowGiphy - Setting that determines whether or not members (and not just owners) are allowed to create channels. + Setting that determines whether or not giphy can be used in the team. Boolean @@ -4940,9 +4477,9 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - AllowCreateUpdateRemoveConnectors + AllowGuestCreateUpdateChannels - Setting that determines whether or not members (and not only owners) can manage connectors in the team. + Setting that determines whether or not guests can create channels in the team. Boolean @@ -4952,9 +4489,9 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - AllowCreateUpdateRemoveTabs + AllowGuestDeleteChannels - Setting that determines whether or not members (and not only owners) can manage tabs in channels. + Setting that determines whether or not guests can delete in the team. Boolean @@ -4964,9 +4501,9 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - AllowCustomMemes + AllowOwnerDeleteMessages - Setting that determines whether or not members can use the custom memes functionality in teams. + Setting that determines whether or not owners can delete messages that they or other members of the team have posted. Boolean @@ -4976,9 +4513,9 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - AllowDeleteChannels + AllowStickersAndMemes - Setting that determines whether or not members (and not only owners) can delete channels in the team. + Setting that determines whether stickers and memes usage is allowed in the team. Boolean @@ -4988,9 +4525,9 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - AllowGiphy + AllowTeamMentions - Setting that determines whether or not giphy can be used in the team. + Setting that determines whether the entire team can be @ mentioned (which means that all users will be notified) Boolean @@ -5000,9 +4537,9 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - AllowGuestCreateUpdateChannels + AllowUserDeleteMessages - Setting that determines whether or not guests can create channels in the team. + Setting that determines whether or not members can delete messages that they have posted. Boolean @@ -5012,9 +4549,9 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - AllowGuestDeleteChannels + AllowUserEditMessages - Setting that determines whether or not guests can delete in the team. + Setting that determines whether or not users can edit messages that they have posted. Boolean @@ -5024,69 +4561,69 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - AllowOwnerDeleteMessages + Classification - Setting that determines whether or not owners can delete messages that they or other members of the team have posted. + This parameter is reserved for internal Microsoft use. - Boolean + String - Boolean + String None - AllowStickersAndMemes + Description - Setting that determines whether stickers and memes usage is allowed in the team. + Team description. Team Description Characters Limit - 1024. - Boolean + String - Boolean + String None - AllowTeamMentions + DisplayName - Setting that determines whether the entire team can be @ mentioned (which means that all users will be notified) + Team display name. Team Name Characters Limit - 256. - Boolean + String - Boolean + String None - AllowUserDeleteMessages + GiphyContentRating - Setting that determines whether or not members can delete messages that they have posted. + Setting that determines the level of sensitivity of giphy usage that is allowed in the team. Accepted values are "Strict" or "Moderate" - Boolean + String - Boolean + String None - - AllowUserEditMessages + + GroupId - Setting that determines whether or not users can edit messages that they have posted. + GroupId of the team - Boolean + String - Boolean + String None - GiphyContentRating + MailNickName - Setting that determines the level of sensitivity of giphy usage that is allowed in the team. Accepted values are "Strict" or "Moderate" + The MailNickName parameter specifies the alias for the associated Office 365 Group. This value will be used for the mail enabled object and will be used as PrimarySmtpAddress for this Office 365 Group. The value of the MailNickName parameter has to be unique across your tenant. String @@ -5108,13 +4645,13 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - AllowCreatePrivateChannels + Visibility - Determines whether private channel creation is allowed for the team. + Team visibility. Valid values are "Private" and "Public" - Boolean + String - Boolean + String None @@ -5122,82 +4659,22 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" - - GroupId - - GroupId of the team - - String - - String - - - None - - - DisplayName - - Team display name. Team Name Characters Limit - 256. - - String - - String - - - None - - - Description - - Team description. Team Description Characters Limit - 1024. - - String - - String - - - None - - - MailNickName - - The MailNickName parameter specifies the alias for the associated Office 365 Group. This value will be used for the mail enabled object and will be used as PrimarySmtpAddress for this Office 365 Group. The value of the MailNickName parameter has to be unique across your tenant. - - String - - String - - - None - - - Classification - - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - Visibility + AllowAddRemoveApps - Team visibility. Valid values are "Private" and "Public" + Boolean value that determines whether or not members (not only owners) are allowed to add apps to the team. - String + Boolean - String + Boolean None - AllowAddRemoveApps + AllowChannelMentions - Boolean value that determines whether or not members (not only owners) are allowed to add apps to the team. + Boolean value that determines whether or not channels in the team can be @ mentioned so that all users who follow the channel are notified. Boolean @@ -5207,9 +4684,9 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - AllowChannelMentions + AllowCreatePrivateChannels - Boolean value that determines whether or not channels in the team can be @ mentioned so that all users who follow the channel are notified. + Determines whether private channel creation is allowed for the team. Boolean @@ -5374,6 +4851,42 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None + + Classification + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Description + + Team description. Team Description Characters Limit - 1024. + + String + + String + + + None + + + DisplayName + + Team display name. Team Name Characters Limit - 256. + + String + + String + + + None + GiphyContentRating @@ -5386,6 +4899,30 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None + + GroupId + + GroupId of the team + + String + + String + + + None + + + MailNickName + + The MailNickName parameter specifies the alias for the associated Office 365 Group. This value will be used for the mail enabled object and will be used as PrimarySmtpAddress for this Office 365 Group. The value of the MailNickName parameter has to be unique across your tenant. + + String + + String + + + None + ShowInTeamsSearchAndSuggestions @@ -5399,13 +4936,13 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - AllowCreatePrivateChannels + Visibility - Determines whether private channel creation is allowed for the team. + Team visibility. Valid values are "Private" and "Public" - Boolean + String - Boolean + String None @@ -5430,15 +4967,15 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" Online Version: - https://learn.microsoft.com/powershell/module/teams/set-team + https://learn.microsoft.com/powershell/module/microsoftteams/set-team Get-Team - https://learn.microsoft.com/powershell/module/teams/get-team + https://learn.microsoft.com/powershell/module/microsoftteams/get-team New-Team - https://learn.microsoft.com/powershell/module/teams/new-team + https://learn.microsoft.com/powershell/module/microsoftteams/new-team @@ -5584,7 +5121,7 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" Online Version: - https://learn.microsoft.com/powershell/module/teams/set-teamarchivedstate + https://learn.microsoft.com/powershell/module/microsoftteams/set-teamarchivedstate @@ -5604,9 +5141,9 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" Set-TeamChannel - GroupId + CurrentDisplayName - GroupId of the team + Current channel name String @@ -5615,10 +5152,10 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - - CurrentDisplayName + + Description - Current channel name + Updated Channel description. Channel Description Characters Limit - 1024. String @@ -5627,10 +5164,10 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - - NewDisplayName + + GroupId - New Channel display name. Names must be 50 characters or less, and can't contain the characters # % & * { } / \ : < > ? + | ' " + GroupId of the team String @@ -5640,9 +5177,9 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - Description + NewDisplayName - Updated Channel description. Channel Description Characters Limit - 1024. + New Channel display name. Names must be 50 characters or less, and can't contain the characters # % & * { } / \ : < > ? + | ' " String @@ -5655,9 +5192,9 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" - GroupId + CurrentDisplayName - GroupId of the team + Current channel name String @@ -5666,10 +5203,10 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - - CurrentDisplayName + + Description - Current channel name + Updated Channel description. Channel Description Characters Limit - 1024. String @@ -5678,10 +5215,10 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - - NewDisplayName + + GroupId - New Channel display name. Names must be 50 characters or less, and can't contain the characters # % & * { } / \ : < > ? + | ' " + GroupId of the team String @@ -5691,9 +5228,9 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" None - Description + NewDisplayName - Updated Channel description. Channel Description Characters Limit - 1024. + New Channel display name. Names must be 50 characters or less, and can't contain the characters # % & * { } / \ : < > ? + | ' " String @@ -5722,7 +5259,7 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" Online Version: - https://learn.microsoft.com/powershell/module/teams/set-teamchannel + https://learn.microsoft.com/powershell/module/microsoftteams/set-teamchannel @@ -5733,12 +5270,11 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" TeamPicture Update the team picture. - Note: the command will return immediately, but the Teams application will not reflect the update immediately. The Teams application may need to be open for up to an hour before changes are reflected. - Note: this cmdlet is not support in special government environments (TeamsGCCH and TeamsDoD) and is currently only supported in our beta release. - + Note: the command will return immediately, but the Teams application will not reflect the update immediately. The Teams application may need to be open for up to an hour before changes are reflected. + Note: this cmdlet is not support in special government environments (TeamsGCCH and TeamsDoD) and is currently only supported in our beta release. @@ -5814,7 +5350,7 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" Online Version: - https://learn.microsoft.com/powershell/module/teams/set-teampicture + https://learn.microsoft.com/powershell/module/microsoftteams/set-teampicture @@ -5922,7 +5458,7 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" Online Version: - https://learn.microsoft.com/powershell/module/teams/set-teamsapp + https://learn.microsoft.com/powershell/module/microsoftteams/set-teamsapp @@ -5947,58 +5483,58 @@ New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" Set-TeamTargetingHierarchy - - FilePath + + ApiVersion - Specifies the path to a CSV file that defines the hierarchy. + The version of the Hierarchy APIs to use. Valid values are: 1 or 2. + Currently only available in preview from version 6.6.1-preview. Specifying "-ApiVersion 2" will direct cmdlet requests to the newer version of the Hierarchy APIs. This integration is currently in preview/beta mode so customers should not try it on their production workloads but are welcome to try it on test workloads. This is an optional parameter and not specifying it will be interpreted as specifying "-ApiVersion 1", which will continue to direct cmdlet requests to the original version of the Hierarchy APIs until we upgrade production to v2, at which time we will set the default to 2. We do not expect this to have any impact on your cmdlet usage or existing scripts. String String - None + 1 - - ApiVersion + + FilePath - The version of the Hierarchy APIs to use. Valid values are: 1 or 2. - Currently only available in preview from version 6.6.1-preview. Specifying "-ApiVersion 2" will direct cmdlet requests to the newer version of the Hierarchy APIs. This integration is currently in preview/beta mode so customers should not try it on their production workloads but are welcome to try it on test workloads. This is an optional parameter and not specifying it will be interpreted as specifying "-ApiVersion 1", which will continue to direct cmdlet requests to the original version of the Hierarchy APIs until we upgrade production to v2, at which time we will set the default to 2. We do not expect this to have any impact on your cmdlet usage or existing scripts. + Specifies the path to a CSV file that defines the hierarchy. String String - 1 + None - - FilePath + + ApiVersion - Specifies the path to a CSV file that defines the hierarchy. + The version of the Hierarchy APIs to use. Valid values are: 1 or 2. + Currently only available in preview from version 6.6.1-preview. Specifying "-ApiVersion 2" will direct cmdlet requests to the newer version of the Hierarchy APIs. This integration is currently in preview/beta mode so customers should not try it on their production workloads but are welcome to try it on test workloads. This is an optional parameter and not specifying it will be interpreted as specifying "-ApiVersion 1", which will continue to direct cmdlet requests to the original version of the Hierarchy APIs until we upgrade production to v2, at which time we will set the default to 2. We do not expect this to have any impact on your cmdlet usage or existing scripts. String String - None + 1 - - ApiVersion + + FilePath - The version of the Hierarchy APIs to use. Valid values are: 1 or 2. - Currently only available in preview from version 6.6.1-preview. Specifying "-ApiVersion 2" will direct cmdlet requests to the newer version of the Hierarchy APIs. This integration is currently in preview/beta mode so customers should not try it on their production workloads but are welcome to try it on test workloads. This is an optional parameter and not specifying it will be interpreted as specifying "-ApiVersion 1", which will continue to direct cmdlet requests to the original version of the Hierarchy APIs until we upgrade production to v2, at which time we will set the default to 2. We do not expect this to have any impact on your cmdlet usage or existing scripts. + Specifies the path to a CSV file that defines the hierarchy. String String - 1 + None @@ -6024,11 +5560,11 @@ requestId c67e86109d88479e9708c3b7e8ff7217 Online Version: - https://learn.microsoft.com/powershell/module/teams/connect-microsoftteams + https://learn.microsoft.com/powershell/module/microsoftteams/connect-microsoftteams Get-TeamTargetingHierarchyStatus - https://learn.microsoft.com/powershell/module/teams/get-teamtargetinghierarchystatus + https://learn.microsoft.com/powershell/module/microsoftteams/get-teamtargetinghierarchystatus @@ -6059,22 +5595,10 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - - Groups - - List of all the groups for whom the app is enabled or disabled. - - String[] - - String[] - - - None - - Id + AppInstallType - Application ID of Microsoft Teams app. + App installation type. String @@ -6084,9 +5608,9 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - Users + Groups - List of all the users for whom the app is enabled or disabled. + List of all the groups for whom the app is enabled or disabled. String[] @@ -6096,9 +5620,9 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - AppInstallType + Id - App installation type. + Application ID of Microsoft Teams app. String @@ -6108,9 +5632,9 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - InstallForUsers + InstallForGroups - List of all the users for whom the app is installed. + List of all the groups for whom the app is installed. String[] @@ -6120,9 +5644,9 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - InstallForGroups + InstallForUsers - List of all the groups for whom the app is installed. + List of all the users for whom the app is installed. String[] @@ -6143,6 +5667,18 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None + + Users + + List of all the users for whom the app is enabled or disabled. + + String[] + + String[] + + + None + Update-M365TeamsApp @@ -6158,22 +5694,10 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - - Groups - - List of all the groups for whom the app is enabled or disabled. - - String[] - - String[] - - - None - - Id + AppInstallType - Application ID of Microsoft Teams app. + App installation type. String @@ -6183,9 +5707,9 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - Users + Groups - List of all the users for whom the app is enabled or disabled. + List of all the groups for whom the app is enabled or disabled. String[] @@ -6195,9 +5719,9 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - AppInstallType + Id - App installation type. + Application ID of Microsoft Teams app. String @@ -6207,9 +5731,9 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - InstallForUsers + InstallForGroups - List of all the users for whom the app is installed. + List of all the groups for whom the app is installed. String[] @@ -6219,9 +5743,9 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - InstallForGroups + InstallForUsers - List of all the groups for whom the app is installed. + List of all the users for whom the app is installed. String[] @@ -6242,6 +5766,18 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None + + Users + + List of all the users for whom the app is enabled or disabled. + + String[] + + String[] + + + None + Update-M365TeamsApp @@ -6257,22 +5793,10 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - - Groups - - List of all the groups for whom the app is enabled or disabled. - - String[] - - String[] - - - None - - Id + AppInstallType - Application ID of Microsoft Teams app. + App installation type. String @@ -6282,9 +5806,9 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - Users + Groups - List of all the users for whom the app is enabled or disabled. + List of all the groups for whom the app is enabled or disabled. String[] @@ -6294,9 +5818,9 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - AppInstallType + Id - App installation type. + Application ID of Microsoft Teams app. String @@ -6306,9 +5830,9 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - InstallForUsers + InstallForGroups - List of all the users for whom the app is installed. + List of all the groups for whom the app is installed. String[] @@ -6318,9 +5842,9 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - InstallForGroups + InstallForUsers - List of all the groups for whom the app is installed. + List of all the users for whom the app is installed. String[] @@ -6341,6 +5865,18 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None + + Users + + List of all the users for whom the app is enabled or disabled. + + String[] + + String[] + + + None + Update-M365TeamsApp @@ -6369,25 +5905,25 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - IsBlocked + InstallForGroups - The state of the app in the tenant. + List of all the groups for whom the app is installed. - Boolean + String[] - Boolean + String[] None - - Users + + InstallForOperationType - List of all the users for whom the app is enabled or disabled. + Operation performed on the app installation. - String[] + String - String[] + String None @@ -6404,22 +5940,22 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - - InstallForGroups + + InstallVersion - List of all the groups for whom the app is installed. + App version to be installed. - String[] + String - String[] + String None - InstallVersion + OperationType - App version to be installed. + Operation performed on the app assigment. String @@ -6428,6 +5964,18 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None + + Users + + List of all the users for whom the app is enabled or disabled. + + String[] + + String[] + + + None + Update-M365TeamsApp @@ -6456,25 +6004,25 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - IsBlocked + InstallForGroups - The state of the app in the tenant. + List of all the groups for whom the app is installed. - Boolean + String[] - Boolean + String[] None - - Users + + InstallForOperationType - List of all the users for whom the app is enabled or disabled. + Operation performed on the app installation. - String[] + String - String[] + String None @@ -6491,22 +6039,22 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - - InstallForGroups + + InstallVersion - List of all the groups for whom the app is installed. + App version to be installed. - String[] + String - String[] + String None - InstallVersion + OperationType - App version to be installed. + Operation performed on the app assigment. String @@ -6515,6 +6063,18 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None + + Users + + List of all the users for whom the app is enabled or disabled. + + String[] + + String[] + + + None + Update-M365TeamsApp @@ -6542,22 +6102,22 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - - OperationType + + InstallForGroups - Operation performed on the app assigment. + List of all the groups for whom the app is installed. - String + String[] - String + String[] None - Users + InstallForUsers - List of all the users for whom the app is enabled or disabled. + List of all the users for whom the app is installed. String[] @@ -6567,9 +6127,9 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - InstallForOperationType + InstallVersion - Operation performed on the app installation. + App version to be installed. String @@ -6579,21 +6139,21 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - InstallForUsers + IsBlocked - List of all the users for whom the app is installed. + The state of the app in the tenant. - String[] + Boolean - String[] + Boolean None - InstallForGroups + Users - List of all the groups for whom the app is installed. + List of all the users for whom the app is enabled or disabled. String[] @@ -6602,18 +6162,6 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - - InstallVersion - - App version to be installed. - - String - - String - - - None - Update-M365TeamsApp @@ -6641,22 +6189,22 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - - OperationType + + InstallForGroups - Operation performed on the app assigment. + List of all the groups for whom the app is installed. - String + String[] - String + String[] None - Users + InstallForUsers - List of all the users for whom the app is enabled or disabled. + List of all the users for whom the app is installed. String[] @@ -6666,9 +6214,9 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - InstallForOperationType + InstallVersion - Operation performed on the app installation. + App version to be installed. String @@ -6678,21 +6226,21 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - InstallForUsers + IsBlocked - List of all the users for whom the app is installed. + The state of the app in the tenant. - String[] + Boolean - String[] + Boolean None - InstallForGroups + Users - List of all the groups for whom the app is installed. + List of all the users for whom the app is enabled or disabled. String[] @@ -6701,18 +6249,6 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - - InstallVersion - - App version to be installed. - - String - - String - - - None - @@ -6728,6 +6264,18 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None + + AppInstallType + + App installation type. + + String + + String + + + None + Groups @@ -6753,21 +6301,21 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - IsBlocked + InstallForGroups - The state of the app in the tenant. + List of all the groups for whom the app is installed. - Boolean + String[] - Boolean + String[] None - OperationType + InstallForOperationType - Operation performed on the app assigment. + Operation performed on the app installation. String @@ -6777,9 +6325,9 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - Users + InstallForUsers - List of all the users for whom the app is enabled or disabled. + List of all the users for whom the app is installed. String[] @@ -6789,9 +6337,9 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - AppInstallType + InstallVersion - App installation type. + App version to be installed. String @@ -6800,34 +6348,34 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - - InstallForOperationType + + IsBlocked - Operation performed on the app installation. + The state of the app in the tenant. - String + Boolean - String + Boolean None - - InstallForUsers + + OperationType - List of all the users for whom the app is installed. + Operation performed on the app assigment. - String[] + String - String[] + String None - InstallForGroups + Users - List of all the groups for whom the app is installed. + List of all the users for whom the app is enabled or disabled. String[] @@ -6836,18 +6384,6 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - - InstallVersion - - App version to be installed. - - String - - String - - - None - @@ -6907,15 +6443,15 @@ requestId c67e86109d88479e9708c3b7e8ff7217 Online Version: - https://docs.microsoft.com/powershell/module/teams/Update-M365TeamsApp + https://docs.microsoft.com/powershell/module/microsoftteams/Update-M365TeamsApp Get-AllM365TeamsApps - https://learn.microsoft.com/powershell/module/teams/get-allm365teamsapps + https://learn.microsoft.com/powershell/module/microsoftteams/get-allm365teamsapps Get-M365TeamsApp - https://learn.microsoft.com/powershell/module/teams/get-allm365teamsapps + https://learn.microsoft.com/powershell/module/microsoftteams/get-allm365teamsapps @@ -7035,7 +6571,7 @@ requestId c67e86109d88479e9708c3b7e8ff7217 - + ## RELATED LINKS @@ -7057,7 +6593,7 @@ requestId c67e86109d88479e9708c3b7e8ff7217 Online Version: - https://docs.microsoft.com/powershell/module/teams/Update-M365UnifiedCustomPendingApp + https://docs.microsoft.com/powershell/module/microsoftteams/Update-M365UnifiedCustomPendingApp @@ -7076,30 +6612,6 @@ requestId c67e86109d88479e9708c3b7e8ff7217 Update-M365UnifiedTenantSettings - - SettingName - - Setting Name to be changed. - - String - - String - - - None - - - Users - - List of all the users for whom the app is enabled or disabled. - - String[] - - String[] - - - None - Groups @@ -7112,13 +6624,10 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - - - Update-M365UnifiedTenantSettings - SettingName + Operation - Setting Name to be changed. + Operation performed (whether we are adding or removing users/groups). String @@ -7139,45 +6648,9 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - - Groups - - List of all the groups for whom the app is enabled or disabled. - - String[] - - String[] - - - None - Update-M365UnifiedTenantSettings - - SettingName - - Setting Name to be changed. - - String - - String - - - None - - - Users - - List of all the users for whom the app is enabled or disabled. - - String[] - - String[] - - - None - Groups @@ -7190,13 +6663,10 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - - - Update-M365UnifiedTenantSettings - SettingName + Operation - Setting Name to be changed. + Operation performed (whether we are adding or removing users/groups). String @@ -7217,45 +6687,9 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - - Groups - - List of all the groups for whom the app is enabled or disabled. - - String[] - - String[] - - - None - - - Update-M365UnifiedTenantSettings - - SettingValue - - Setting Value to be changed. - - String - - String - - - None - - - Users - - List of all the users for whom the app is enabled or disabled. - - String[] - - String[] - - - None - + + Update-M365UnifiedTenantSettings Groups @@ -7268,13 +6702,10 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - - - Update-M365UnifiedTenantSettings - SettingValue + SettingName - Setting Value to be changed. + Setting Name to be changed. String @@ -7295,6 +6726,9 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None + + + Update-M365UnifiedTenantSettings Groups @@ -7307,13 +6741,10 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - - - Update-M365UnifiedTenantSettings - SettingValue + SettingName - Setting Value to be changed. + Setting Name to be changed. String @@ -7334,6 +6765,9 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None + + + Update-M365UnifiedTenantSettings Groups @@ -7346,13 +6780,10 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - - - Update-M365UnifiedTenantSettings - Operation + SettingName - Operation performed (whether we are adding or removing users/groups). + Setting Name to be changed. String @@ -7373,6 +6804,9 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None + + + Update-M365UnifiedTenantSettings Groups @@ -7385,13 +6819,10 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - - - Update-M365UnifiedTenantSettings - Operation + SettingName - Operation performed (whether we are adding or removing users/groups). + Setting Name to be changed. String @@ -7412,6 +6843,9 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None + + + Update-M365UnifiedTenantSettings Groups @@ -7424,138 +6858,10 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - - - - - SettingName - - Setting Name to be changed. - - String - - String - - - None - - - SettingValue - - Setting Value to be changed. - - String - - String - - - None - - - Operation - - Operation performed (whether we are adding or removing users/groups). - - String - - String - - - None - - - Users - - List of all the users for whom the app is enabled or disabled. - - String[] - - String[] - - - None - - - Groups - - List of all the groups for whom the app is enabled or disabled. - - String[] - - String[] - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> PS C:\> Update-M365UnifiedTenantSettings -SettingName EnableCopilotExtensibility -SettingValue Some -Users d156010d-fb18-497f-804c-155ec2aa06d3,a62fba7e-e362-493c-a094-fdec17e2fee8 -Groups 37da2d58-fc14-453e-9a14-5065ebd63a1d, 37da2d58-fc14-453e-9a14-5065ebd63a1e -Operation add - - Updates the tenant setting for EnableCopilotExtensibility to 2 users and 2 groups. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Update-M365UnifiedTenantSettings -SettingName GlobalApp -SettingValue None - - Updates the tenant setting for GlobalApp to None - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/teams/Update-M365UnifiedTenantSettings - - - - - - Update-TeamsAppInstallation - Update - TeamsAppInstallation - - Update a Teams App in Microsoft Teams. - - - - Update a Teams App in Microsoft Teams. This won't update teams client; this will update an application installed on the user/team. - Note: This cmdlet is part of the Public Preview version of Teams PowerShell Module, for more information see Install Teams PowerShell public preview (https://learn.microsoft.com/microsoftteams/teams-powershell-install#install-teams-powershell-public-preview) and also see [Microsoft Teams PowerShell Release Notes](https://learn.microsoft.com/microsoftteams/teams-powershell-release-notes). - - - - Update-TeamsAppInstallation - - AppId + + SettingValue - Teams App identifier in Microsoft Teams. + Setting Value to be changed. String @@ -7564,34 +6870,37 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - - AppInstallationId + + Users - Installation identifier of the Teams App. + List of all the users for whom the app is enabled or disabled. - String + String[] - String + String[] None - - Permissions + + + Update-M365UnifiedTenantSettings + + Groups - RSC permissions for the Teams App. + List of all the groups for whom the app is enabled or disabled. - String + String[] - String + String[] None - - TeamId + + SettingValue - Team identifier in Microsoft Teams. + Setting Value to be changed. String @@ -7600,37 +6909,37 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - - - Update-TeamsAppInstallation - - AppId + + Users - Teams App identifier in Microsoft Teams. + List of all the users for whom the app is enabled or disabled. - String + String[] - String + String[] None - - AppInstallationId + + + Update-M365UnifiedTenantSettings + + Groups - Installation identifier of the Teams App. + List of all the groups for whom the app is enabled or disabled. - String + String[] - String + String[] None - - Permissions + + SettingValue - RSC permissions for the Teams App. + Setting Value to be changed. String @@ -7639,14 +6948,14 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - - UserId + + Users - User identifier in Microsoft Teams. + List of all the users for whom the app is enabled or disabled. - String + String[] - String + String[] None @@ -7654,22 +6963,22 @@ requestId c67e86109d88479e9708c3b7e8ff7217 - - AppId + + Groups - Teams App identifier in Microsoft Teams. + List of all the groups for whom the app is enabled or disabled. - String + String[] - String + String[] None - - AppInstallationId + + Operation - Installation identifier of the Teams App. + Operation performed (whether we are adding or removing users/groups). String @@ -7678,10 +6987,10 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - - Permissions + + SettingName - RSC permissions for the Teams App. + Setting Name to be changed. String @@ -7690,10 +6999,10 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - - TeamId + + SettingValue - Team identifier in Microsoft Teams. + Setting Value to be changed. String @@ -7702,14 +7011,14 @@ requestId c67e86109d88479e9708c3b7e8ff7217 None - - UserId + + Users - User identifier in Microsoft Teams. + List of all the users for whom the app is enabled or disabled. - String + String[] - String + String[] None @@ -7718,7 +7027,7 @@ requestId c67e86109d88479e9708c3b7e8ff7217 - System.String + None @@ -7743,23 +7052,23 @@ requestId c67e86109d88479e9708c3b7e8ff7217 -------------------------- Example 1 -------------------------- - PS C:\> Update-TeamsAppInstallation -AppId b9cc7986-dd56-4b57-ab7d-9c4e5288b775 -TeamId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df + PS C:\> PS C:\> Update-M365UnifiedTenantSettings -SettingName EnableCopilotExtensibility -SettingValue Some -Users d156010d-fb18-497f-804c-155ec2aa06d3,a62fba7e-e362-493c-a094-fdec17e2fee8 -Groups 37da2d58-fc14-453e-9a14-5065ebd63a1d, 37da2d58-fc14-453e-9a14-5065ebd63a1e -Operation add - This example updates a Teams App in Microsoft Teams specifying its AppId and TeamId. + Updates the tenant setting for EnableCopilotExtensibility to 2 users and 2 groups. -------------------------- Example 2 -------------------------- - PS C:\> Update-TeamsAppInstallation -AppId b9cc7986-dd56-4b57-ab7d-9c4e5288b775 -TeamId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df -Permissions "TeamSettings.Read.Group ChannelMessage.Read.Group" + PS C:\> Update-M365UnifiedTenantSettings -SettingName GlobalApp -SettingValue None - This example updates a Teams App in Microsoft Teams specifying its AppId and TeamId and RSC Permissions. + Updates the tenant setting for GlobalApp to None Online Version: - https://learn.microsoft.com/powershell/module/teams/update-teamsappinstallation + https://docs.microsoft.com/powershell/module/microsoftteams/Update-M365UnifiedTenantSettings diff --git a/Modules/MicrosoftTeams/6.9.0/en-US/Microsoft.TeamsCmdlets.PowerShell.Connect.dll-Help.xml b/Modules/MicrosoftTeams/7.4.0/en-US/Microsoft.TeamsCmdlets.PowerShell.Connect.dll-Help.xml similarity index 99% rename from Modules/MicrosoftTeams/6.9.0/en-US/Microsoft.TeamsCmdlets.PowerShell.Connect.dll-Help.xml rename to Modules/MicrosoftTeams/7.4.0/en-US/Microsoft.TeamsCmdlets.PowerShell.Connect.dll-Help.xml index 7af87430eea4..7ac73b087926 100644 --- a/Modules/MicrosoftTeams/6.9.0/en-US/Microsoft.TeamsCmdlets.PowerShell.Connect.dll-Help.xml +++ b/Modules/MicrosoftTeams/7.4.0/en-US/Microsoft.TeamsCmdlets.PowerShell.Connect.dll-Help.xml @@ -55,7 +55,7 @@ Online Version: - https://learn.microsoft.com/powershell/module/teams/clear-teamsenvironmentconfig + https://learn.microsoft.com/powershell/module/microsoftteams/clear-teamsenvironmentconfig @@ -303,12 +303,11 @@ None - - TenantId + + TeamsEnvironmentName - Specifies the ID of a tenant. - If you do not specify this parameter, the account is authenticated with the home tenant. - You must specify the TenantId parameter to authenticate as a service principal or when using Microsoft account. + Specifies the Teams environment. The following environments are supported: + - Commercial or GCC environments: Don't use this parameter, this is the default. - GCC High environment: TeamsGCCH - DoD environment: TeamsDOD - Microsoft Teams operated by 21Vianet: TeamsChina String @@ -317,34 +316,35 @@ None - - WhatIf + + TenantId - Shows what would happen if the cmdlet runs. The cmdlet is not run. + Specifies the ID of a tenant. + If you do not specify this parameter, the account is authenticated with the home tenant. + You must specify the TenantId parameter to authenticate as a service principal or when using Microsoft account. + String - SwitchParameter + String - False + None - TeamsEnvironmentName + UseDeviceAuthentication - Specifies the Teams environment. The following environments are supported: - - Commercial or GCC environments: Don't use this parameter, this is the default. - GCC High environment: TeamsGCCH - DoD environment: TeamsDOD - Microsoft Teams operated by 21Vianet: TeamsChina + Use device code authentication instead of a browser control. - String - String + SwitchParameter - None + False - - UseDeviceAuthentication + + WhatIf - Use device code authentication instead of a browser control. + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -435,7 +435,7 @@ None - + TenantId Specifies the ID of a tenant. @@ -474,6 +474,18 @@ False + + Identity + + Login using managed service identity in the current environment. For *-Cs cmdlets, this is supported from version 5.8.1-preview onwards. + > [!Note] > This is currently only supported in commercial environments. A few cmdlets (https://learn.microsoft.com/microsoftteams/teams-powershell-application-authentication#cmdlets-supported)that don't support application-based authentication are not supported either. + + + SwitchParameter + + + False + LogFilePath @@ -504,29 +516,6 @@ None - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - Identity - - Login using managed service identity in the current environment. For *-Cs cmdlets, this is supported from version 5.8.1-preview onwards. - > [!Note] > This is currently only supported in commercial environments. A few cmdlets (https://learn.microsoft.com/microsoftteams/teams-powershell-application-authentication#cmdlets-supported)that don't support application-based authentication are not supported either. - - - SwitchParameter - - - False - ManagedServiceHostName @@ -563,6 +552,17 @@ None + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + @@ -669,6 +669,19 @@ None + + Identity + + Login using managed service identity in the current environment. For *-Cs cmdlets, this is supported from version 5.8.1-preview onwards. + > [!Note] > This is currently only supported in commercial environments. A few cmdlets (https://learn.microsoft.com/microsoftteams/teams-powershell-application-authentication#cmdlets-supported)that don't support application-based authentication are not supported either. + + SwitchParameter + + SwitchParameter + + + False + LogFilePath @@ -700,9 +713,9 @@ None - MsAccessToken (Removed from version 2.3.2-preview) + ManagedServiceHostName - Specifies a Microsoft Graph access token. > [!WARNING] >This parameter has been removed from version 2.3.2-preview. + Host name for managed service login. String @@ -711,37 +724,34 @@ None - - TenantId + + ManagedServicePort - Specifies the ID of a tenant. - If you do not specify this parameter, the account is authenticated with the home tenant. - You must specify the TenantId parameter to authenticate as a service principal or when using Microsoft account. + Port number for managed service login. - String + Int32 - String + Int32 None - - WhatIf + + ManagedServiceSecret - Shows what would happen if the cmdlet runs. The cmdlet is not run. + Secret, used for some kinds of managed service login. - SwitchParameter + SecureString - SwitchParameter + SecureString - False + None - TeamsEnvironmentName + MsAccessToken (Removed from version 2.3.2-preview) - Specifies the Teams environment. The following environments are supported: - - Commercial or GCC environments: Don't use this parameter, this is the default. - GCC High environment: TeamsGCCH - DoD environment: TeamsDOD - Microsoft Teams operated by 21Vianet: TeamsChina + Specifies a Microsoft Graph access token. > [!WARNING] >This parameter has been removed from version 2.3.2-preview. String @@ -750,23 +760,11 @@ None - - Identity - - Login using managed service identity in the current environment. For *-Cs cmdlets, this is supported from version 5.8.1-preview onwards. - > [!Note] > This is currently only supported in commercial environments. A few cmdlets (https://learn.microsoft.com/microsoftteams/teams-powershell-application-authentication#cmdlets-supported)that don't support application-based authentication are not supported either. - - SwitchParameter - - SwitchParameter - - - False - - ManagedServiceHostName + TeamsEnvironmentName - Host name for managed service login. + Specifies the Teams environment. The following environments are supported: + - Commercial or GCC environments: Don't use this parameter, this is the default. - GCC High environment: TeamsGCCH - DoD environment: TeamsDOD - Microsoft Teams operated by 21Vianet: TeamsChina String @@ -775,34 +773,36 @@ None - - ManagedServicePort + + TenantId - Port number for managed service login. + Specifies the ID of a tenant. + If you do not specify this parameter, the account is authenticated with the home tenant. + You must specify the TenantId parameter to authenticate as a service principal or when using Microsoft account. - Int32 + String - Int32 + String None - ManagedServiceSecret + UseDeviceAuthentication - Secret, used for some kinds of managed service login. + Use device code authentication instead of a browser control. - SecureString + SwitchParameter - SecureString + SwitchParameter - None + False - - UseDeviceAuthentication + + WhatIf - Use device code authentication instead of a browser control. + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -927,7 +927,7 @@ user@contoso.com AzureCloud xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx xxxxx Online Version: - https://learn.microsoft.com/powershell/module/teams/connect-microsoftteams + https://learn.microsoft.com/powershell/module/microsoftteams/connect-microsoftteams @@ -946,10 +946,10 @@ user@contoso.com AzureCloud xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx xxxxx Disconnect-MicrosoftTeams - - WhatIf + + Confirm - Simulates what would happen if the cmdlet is run. The cmdlet is not run. + Proactively accepts any confirmation prompts. SwitchParameter @@ -957,10 +957,10 @@ user@contoso.com AzureCloud xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx xxxxx False - - Confirm + + WhatIf - Proactively accepts any confirmation prompts. + Simulates what would happen if the cmdlet is run. The cmdlet is not run. SwitchParameter @@ -971,10 +971,10 @@ user@contoso.com AzureCloud xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx xxxxx - - WhatIf + + Confirm - Simulates what would happen if the cmdlet is run. The cmdlet is not run. + Proactively accepts any confirmation prompts. SwitchParameter @@ -983,10 +983,10 @@ user@contoso.com AzureCloud xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx xxxxx False - - Confirm + + WhatIf - Proactively accepts any confirmation prompts. + Simulates what would happen if the cmdlet is run. The cmdlet is not run. SwitchParameter @@ -1015,7 +1015,7 @@ user@contoso.com AzureCloud xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx xxxxx Online Version: - https://learn.microsoft.com/powershell/module/teams/disconnect-microsoftteams + https://learn.microsoft.com/powershell/module/microsoftteams/disconnect-microsoftteams @@ -1192,7 +1192,7 @@ Move-CsUser -Identity "PilarA@contoso.com" -Target "sipfed.online.lync.com" -Cre Online Version: - https://learn.microsoft.com/powershell/module/teams/set-teamsenvironmentconfig + https://learn.microsoft.com/powershell/module/microsoftteams/set-teamsenvironmentconfig diff --git a/Modules/MicrosoftTeams/6.9.0/en-US/MicrosoftTeams-help.xml b/Modules/MicrosoftTeams/7.4.0/en-US/MicrosoftTeams-help.xml similarity index 88% rename from Modules/MicrosoftTeams/6.9.0/en-US/MicrosoftTeams-help.xml rename to Modules/MicrosoftTeams/7.4.0/en-US/MicrosoftTeams-help.xml index 6a7106ea4e7a..93998357f5db 100644 --- a/Modules/MicrosoftTeams/6.9.0/en-US/MicrosoftTeams-help.xml +++ b/Modules/MicrosoftTeams/7.4.0/en-US/MicrosoftTeams-help.xml @@ -88,31 +88,31 @@ New York City +17182000004 Online Version: - https://learn.microsoft.com/powershell/module/teams/clear-csonlinetelephonenumberorder + https://learn.microsoft.com/powershell/module/microsoftteams/clear-csonlinetelephonenumberorder Get-CsOnlineTelephoneNumberCountry - https://learn.microsoft.com/powershell/module/teams/get-csonlinetelephonenumbercountry + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbercountry Get-CsOnlineTelephoneNumberType - https://learn.microsoft.com/powershell/module/teams/get-csonlinetelephonenumbertype + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbertype New-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/teams/new-csonlinetelephonenumberorder + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetelephonenumberorder Get-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/teams/get-csonlinetelephonenumberorder + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumberorder Complete-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/teams/complete-csonlinetelephonenumberorder + https://learn.microsoft.com/powershell/module/microsoftteams/complete-csonlinetelephonenumberorder Clear-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/teams/clear-csonlinetelephonenumberorder + https://learn.microsoft.com/powershell/module/microsoftteams/clear-csonlinetelephonenumberorder @@ -204,31 +204,31 @@ New York City +17182000004 Online Version: - https://learn.microsoft.com/powershell/module/teams/complete-csonlinetelephonenumberorder + https://learn.microsoft.com/powershell/module/microsoftteams/complete-csonlinetelephonenumberorder Get-CsOnlineTelephoneNumberCountry - https://learn.microsoft.com/powershell/module/teams/get-csonlinetelephonenumbercountry + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbercountry Get-CsOnlineTelephoneNumberType - https://learn.microsoft.com/powershell/module/teams/get-csonlinetelephonenumbertype + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbertype New-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/teams/new-csonlinetelephonenumberorder + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetelephonenumberorder Get-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/teams/get-csonlinetelephonenumberorder + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumberorder Complete-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/teams/complete-csonlinetelephonenumberorder + https://learn.microsoft.com/powershell/module/microsoftteams/complete-csonlinetelephonenumberorder Clear-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/teams/clear-csonlinetelephonenumberorder + https://learn.microsoft.com/powershell/module/microsoftteams/clear-csonlinetelephonenumberorder @@ -238,10 +238,11 @@ New York City +17182000004 Disable CsOnlineSipDomain - This cmdlet prevents provisioning of users in Skype for Business Online for the specified domain. This cmdlet allows organizations with multiple on-premises deployments of Skype For Business Server or Lync Server to safely synchronize users from multiple forests into a single Office 365 tenant. + This cmdlet prevents provisioning of users in Skype for Business Online for the specified domain. + This cmdlet allows organizations with multiple on-premises deployments of Skype For Business Server or Lync Server to safely synchronize users from multiple forests into a single Office 365 tenant. Note: Only one Skype for Business forest can be in hybrid mode at a given time. For full details on this scenario, including step-by-step instructions, see Cloud consolidation for Teams and Skype for Business (https://learn.microsoft.com/skypeforbusiness/hybrid/cloud-consolidation). This cmdlet enables organizations with multiple on-premises deployments of Skype for Business Server (or Lync Server) to safely synchronize users from multiple forests into a single Office 365 tenant. When an online SIP domain is disabled in Skype for Business Online, provisioning is blocked for users in this SIP domain. This ensures routing for any on-premises users in this SIP domain continues to function properly. This cmdlet facilitates consolidation of multiple Skype for Business Server deployments into a single Office 365 tenant. Consolidation can be achieved by moving one deployment at a time into Office 365, provided the following key requirements are met : @@ -260,32 +261,34 @@ New York City +17182000004 Disable-CsOnlineSipDomain - - Domain + + Confirm - The SIP domain to be disabled for online provisioning in Skype for Business Online. + Prompts you for confirmation before running the cmdlet. - String - String + SwitchParameter - None + False - - Confirm + + Domain - Prompts you for confirmation before running the cmdlet. + > Applicable: Microsoft Teams + The SIP domain to be disabled for online provisioning in Skype for Business Online. + String - SwitchParameter + String - False + None Force + > Applicable: Microsoft Teams Suppresses all confirmation prompts that might occur when running the command. @@ -297,18 +300,6 @@ New York City +17182000004 - - Domain - - The SIP domain to be disabled for online provisioning in Skype for Business Online. - - String - - String - - - None - Confirm @@ -321,9 +312,23 @@ New York City +17182000004 False + + Domain + + > Applicable: Microsoft Teams + The SIP domain to be disabled for online provisioning in Skype for Business Online. + + String + + String + + + None + Force + > Applicable: Microsoft Teams Suppresses all confirmation prompts that might occur when running the command. SwitchParameter @@ -371,15 +376,15 @@ New York City +17182000004 Online Version: - https://learn.microsoft.com/powershell/module/teams/disable-csonlinesipdomain + https://learn.microsoft.com/powershell/module/microsoftteams/disable-csonlinesipdomain Enable-CsOnlineSipDomain - https://learn.microsoft.com/powershell/module/teams/enable-csonlinesipdomain + https://learn.microsoft.com/powershell/module/microsoftteams/enable-csonlinesipdomain Get-CsOnlineSipDomain - https://learn.microsoft.com/powershell/module/teams/get-csonlinesipdomain + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinesipdomain Cloud consolidation for Teams and Skype for Business @@ -393,12 +398,12 @@ New York City +17182000004 Disable CsTeamsShiftsConnectionErrorReport - Note: This cmdlet is currently in public preview. This cmdlet disables an error report. - This cmdlet disables an error report. All available instances can be found by running Get-CsTeamsShiftsConnectionErrorReport (https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectionerrorreport). + Note: This cmdlet is currently in public preview. + This cmdlet disables an error report. All available instances can be found by running Get-CsTeamsShiftsConnectionErrorReport (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionerrorreport). @@ -406,6 +411,7 @@ New York City +17182000004 ErrorReportId + > Applicable: Microsoft Teams The ID of the error report that you want to disable. String @@ -421,6 +427,7 @@ New York City +17182000004 ErrorReportId + > Applicable: Microsoft Teams The ID of the error report that you want to disable. String @@ -450,11 +457,11 @@ New York City +17182000004 Online Version: - https://learn.microsoft.com/powershell/module/teams/disable-csteamsshiftsconnectionerrorreport + https://learn.microsoft.com/powershell/module/microsoftteams/disable-csteamsshiftsconnectionerrorreport Get-CsTeamsShiftsConnectionErrorReport - https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectionerrorreport + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionerrorreport @@ -464,10 +471,11 @@ New York City +17182000004 Enable CsOnlineSipDomain - This cmdlet enables provisioning of users in Skype for Business Online for the specified domain. This cmdlet is only necessary to run if you previously disabled a domain using Disable-CsOnlineSipDomain. Enable-CsOnlineSipDomain is used to facilitate consolidation of separate Skype for Business deployments into a single Office 365 tenant. + This cmdlet enables provisioning of users in Skype for Business Online for the specified domain. + This cmdlet is only necessary to run if you previously disabled a domain using Disable-CsOnlineSipDomain. Enable-CsOnlineSipDomain is used to facilitate consolidation of separate Skype for Business deployments into a single Office 365 tenant. This cmdlet enables online provisioning of users in the specified SIP domain. In conjunction with Disable-CsOnlineSipDomain, this cmdlet allows organizations to consolidate multiple on-premises deployments of Skype for Business Server (or Lync Server) into a single Office 365 tenant. Consolidation can be achieved by moving one deployment at a time into Office 365, provided the following key requirements are met: - There must be at most 1 O365 tenant involved. Consolidation for scenarios with > 1 O365 tenant is not supported. - At any given time, only 1 on-premises SfB forest can be in hybrid mode (Shared Sip Address Space) with Office 365. All other on-premises SfB forests must remain on-premises. (They presumably are federated with each other.) @@ -480,32 +488,35 @@ New York City +17182000004 Enable-CsOnlineSipDomain - - Domain + + Confirm - The SIP domain to be enabled for online provisioning in Skype for Business Online. + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. - String - String + SwitchParameter - None + False - - Confirm + + Domain - Prompts you for confirmation before running the cmdlet. + > Applicable: Microsoft Teams + The SIP domain to be enabled for online provisioning in Skype for Business Online. + String - SwitchParameter + String - False + None Force + > Applicable: Microsoft Teams Suppresses all confirmation prompts that might occur when running the command. @@ -517,21 +528,10 @@ New York City +17182000004 - - Domain - - The SIP domain to be enabled for online provisioning in Skype for Business Online. - - String - - String - - - None - Confirm + > Applicable: Microsoft Teams Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -541,9 +541,23 @@ New York City +17182000004 False + + Domain + + > Applicable: Microsoft Teams + The SIP domain to be enabled for online provisioning in Skype for Business Online. + + String + + String + + + None + Force + > Applicable: Microsoft Teams Suppresses all confirmation prompts that might occur when running the command. SwitchParameter @@ -591,15 +605,15 @@ New York City +17182000004 Online Version: - https://learn.microsoft.com/powershell/module/teams/enable-csonlinesipdomain + https://learn.microsoft.com/powershell/module/microsoftteams/enable-csonlinesipdomain Disable-CsOnlineSipDomain - https://learn.microsoft.com/powershell/module/teams/disable-csonlinesipdomain + https://learn.microsoft.com/powershell/module/microsoftteams/disable-csonlinesipdomain Get-CsOnlineSipDomain - https://learn.microsoft.com/powershell/module/teams/get-csonlinesipdomain + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinesipdomain @@ -613,7 +627,7 @@ New York City +17182000004 - This cmdlet exports all the acquired phone numbers by the tenant to a file. The cmdlet is an asynchronus operation and will return an OrderId. Get-CsExportAcquiredPhoneNumberStatus (https://learn.microsoft.com/powershell/module/teams/get-csexportacquiredphonenumberstatus)cmdlet can be used to check the status of the OrderId including the download link to exported file. + This cmdlet exports all the acquired phone numbers by the tenant to a file. The cmdlet is an asynchronus operation and will return an OrderId. Get-CsExportAcquiredPhoneNumberStatus (https://learn.microsoft.com/powershell/module/microsoftteams/get-csexportacquiredphonenumberstatus)cmdlet can be used to check the status of the OrderId including the download link to exported file. By default, this cmdlet returns all the phone numbers acquired by the tenant with all corresponding properties in the results. The tenant admin may indicate specific properties as an input to get a list with only selected properties in the file. Available properties to use are : - TelephoneNumber - OperatorId @@ -737,11 +751,11 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Online Version: - https://learn.microsoft.com/powershell/module/teams/export-csacquiredphonenumber + https://learn.microsoft.com/powershell/module/microsoftteams/export-csacquiredphonenumber Get-CsExportAcquiredPhoneNumberStatus - https://learn.microsoft.com/powershell/module/teams/get-csexportacquiredphonenumberstatus + https://learn.microsoft.com/powershell/module/microsoftteams/get-csexportacquiredphonenumberstatus @@ -751,7 +765,7 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Export CsAutoAttendantHolidays - Use Export-CsAutoAttendantHolidays cmdlet to export holiday schedules of an existing Auto Attendant (AA). The data is exported as a byte array from the cmdlet, which can be dumped to disk as a CSV file and can later be imported using the Import-CsAutoAttendantHolidays cmdlet. + Use Export-CsAutoAttendantHolidays cmdlet to export holiday schedules of an existing Auto Attendant (AA). @@ -773,6 +787,7 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Identity + > Applicable: Microsoft Teams The identity for the AA whose holiday schedules are to be exported. System.String @@ -785,7 +800,8 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -800,6 +816,7 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Identity + > Applicable: Microsoft Teams The identity for the AA whose holiday schedules are to be exported. System.String @@ -812,7 +829,8 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -860,15 +878,15 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Online Version: - https://learn.microsoft.com/powershell/module/teams/export-csautoattendantholidays + https://learn.microsoft.com/powershell/module/microsoftteams/export-csautoattendantholidays Import-CsAutoAttendantHolidays - https://learn.microsoft.com/powershell/module/teams/import-csautoattendantholidays + https://learn.microsoft.com/powershell/module/microsoftteams/import-csautoattendantholidays Get-CsAutoAttendantHolidays - https://learn.microsoft.com/powershell/module/teams/get-csautoattendantholidays + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantholidays @@ -888,53 +906,79 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Export-CsOnlineAudioFile - Identity + ApplicationId - The Id of the specific audio file that you would like to export. + > Applicable: Microsoft Teams + The ApplicationId parameter is the identifier for the application which will use this audio file. For example, if the audio file is used with an organizational auto attendant, then it needs to be set to "OrgAutoAttendant". If the audio file is used with a hunt group (call queue), then it needs to be set to "HuntGroup". If the audio file is used with Microsoft Teams, then it needs to be set to "TenantGlobal" + Supported values: + - OrgAutoAttendant + - HuntGroup + - TenantGlobal System.String System.String + TenantGlobal + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + None - ApplicationId + Identity - The ApplicationId parameter is the identifier for the application which will use this audio file. For example, if the audio file is used with an organizational auto attendant, then it needs to be set to "OrgAutoAttendant". If the audio file is used with a hunt group (call queue), then it needs to be set to "HuntGroup". If the audio file is used with Microsoft Teams, then it needs to be set to "TenantGlobal" - Supported values: - - OrgAutoAttendant - - HuntGroup - - TenantGlobal + The Id of the specific audio file that you would like to export. - String + System.String - String + System.String - TenantGlobal + None - + ApplicationId + > Applicable: Microsoft Teams The ApplicationId parameter is the identifier for the application which will use this audio file. For example, if the audio file is used with an organizational auto attendant, then it needs to be set to "OrgAutoAttendant". If the audio file is used with a hunt group (call queue), then it needs to be set to "HuntGroup". If the audio file is used with Microsoft Teams, then it needs to be set to "TenantGlobal" Supported values: - OrgAutoAttendant - HuntGroup - TenantGlobal - String + System.String - String + System.String TenantGlobal + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + Identity The Id of the specific audio file that you would like to export. @@ -986,19 +1030,19 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Online Version: - https://learn.microsoft.com/powershell/module/teams/export-csonlineaudiofile + https://learn.microsoft.com/powershell/module/microsoftteams/export-csonlineaudiofile Get-CsOnlineAudioFile - https://learn.microsoft.com/powershell/module/teams/get-csonlineaudiofile + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineaudiofile Import-CsOnlineAudioFile - https://learn.microsoft.com/powershell/module/teams/import-csonlineaudiofile + https://learn.microsoft.com/powershell/module/microsoftteams/import-csonlineaudiofile Remove-CsOnlineAudioFile - https://learn.microsoft.com/powershell/module/teams/remove-csonlineaudiofile + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineaudiofile @@ -1017,21 +1061,10 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Find-CsGroup - - SearchQuery - - The SearchQuery parameter defines a search query to search the display name or the sip address or the GUID of groups. This parameter accepts partial search query. The search is not case sensitive. - - String - - String - - - None - ExactMatchOnly + > Applicable: Microsoft Teams The ExactMatchOnly parameter instructs the cmdlet to return exact matches only. The default value is false. Boolean @@ -1044,6 +1077,7 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Force + > Applicable: Microsoft Teams PARAMVALUE: SwitchParameter @@ -1052,9 +1086,22 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c False + + MailEnabledOnly + + Instructs the cmdlet to return mail enabled only groups. + + Boolean + + Boolean + + + None + MaxResults + > Applicable: Microsoft Teams The MaxResults parameter identifies the maximum number of results to return. If this parameter is not provided, the default is value is 10. UInt32 @@ -1064,14 +1111,15 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c None - - MailEnabledOnly + + SearchQuery - Instructs the cmdlet to return mail enabled only groups. + > Applicable: Microsoft Teams + The SearchQuery parameter defines a search query to search the display name or the sip address or the GUID of groups. This parameter accepts partial search query. The search is not case sensitive. - Boolean + String - Boolean + String None @@ -1079,6 +1127,7 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Tenant + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Guid @@ -1091,21 +1140,10 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c - - SearchQuery - - The SearchQuery parameter defines a search query to search the display name or the sip address or the GUID of groups. This parameter accepts partial search query. The search is not case sensitive. - - String - - String - - - None - ExactMatchOnly + > Applicable: Microsoft Teams The ExactMatchOnly parameter instructs the cmdlet to return exact matches only. The default value is false. Boolean @@ -1118,6 +1156,7 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Force + > Applicable: Microsoft Teams PARAMVALUE: SwitchParameter SwitchParameter @@ -1127,9 +1166,22 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c False + + MailEnabledOnly + + Instructs the cmdlet to return mail enabled only groups. + + Boolean + + Boolean + + + None + MaxResults + > Applicable: Microsoft Teams The MaxResults parameter identifies the maximum number of results to return. If this parameter is not provided, the default is value is 10. UInt32 @@ -1139,14 +1191,15 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c None - - MailEnabledOnly + + SearchQuery - Instructs the cmdlet to return mail enabled only groups. + > Applicable: Microsoft Teams + The SearchQuery parameter defines a search query to search the display name or the sip address or the GUID of groups. This parameter accepts partial search query. The search is not case sensitive. - Boolean + String - Boolean + String None @@ -1154,6 +1207,7 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Tenant + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Guid @@ -1208,7 +1262,7 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Online Version: - https://learn.microsoft.com/powershell/module/teams/find-csgroup + https://learn.microsoft.com/powershell/module/microsoftteams/find-csgroup @@ -1228,21 +1282,22 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Find-CsOnlineApplicationInstance - - SearchQuery + + AssociatedOnly - The SearchQuery parameter defines a query for application instances by display name, telephone number, or GUID of the application instance. This parameter accepts partial queries for display names and telephone numbers. The search is not case sensitive. + > Applicable: Microsoft Teams + The AssociatedOnly parameter instructs the cmdlet to return only application instances that are associated to a configuration. - System.String - System.String + SwitchParameter - None + False ExactMatchOnly + > Applicable: Microsoft Teams The ExactMatchOnly parameter instructs the cmdlet to return exact matches only. The default value is false. @@ -1252,9 +1307,10 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c False - AssociatedOnly + Force - The AssociatedOnly parameter instructs the cmdlet to return only application instances that are associated to a configuration. + > Applicable: Microsoft Teams + This switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If it isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -1263,32 +1319,36 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c False - UnAssociatedOnly + MaxResults - The UnAssociatedOnly parameter instructs the cmdlet to return only application instances that are not associated to any configuration. + > Applicable: Microsoft Teams + The MaxResults parameter identifies the maximum number of results to return. If this parameter is not provided, the default is value is 10. Max allowed value is 20. + UInt32 - SwitchParameter + UInt32 - False + None - - MaxResults + + SearchQuery - The MaxResults parameter identifies the maximum number of results to return. If this parameter is not provided, the default is value is 10. Max allowed value is 20. + > Applicable: Microsoft Teams + The SearchQuery parameter defines a query for application instances by display name, telephone number, or GUID of the application instance. This parameter accepts partial queries for display names and telephone numbers. The search is not case sensitive. - UInt32 + System.String - UInt32 + System.String None - Force + UnAssociatedOnly - This switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If it isn't provided in the command, you're prompted for administrative input if required. + > Applicable: Microsoft Teams + The UnAssociatedOnly parameter instructs the cmdlet to return only application instances that are not associated to any configuration. SwitchParameter @@ -1299,22 +1359,11 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c - - SearchQuery - - The SearchQuery parameter defines a query for application instances by display name, telephone number, or GUID of the application instance. This parameter accepts partial queries for display names and telephone numbers. The search is not case sensitive. - - System.String - - System.String - - - None - - ExactMatchOnly + AssociatedOnly - The ExactMatchOnly parameter instructs the cmdlet to return exact matches only. The default value is false. + > Applicable: Microsoft Teams + The AssociatedOnly parameter instructs the cmdlet to return only application instances that are associated to a configuration. SwitchParameter @@ -1324,9 +1373,10 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c False - AssociatedOnly + ExactMatchOnly - The AssociatedOnly parameter instructs the cmdlet to return only application instances that are associated to a configuration. + > Applicable: Microsoft Teams + The ExactMatchOnly parameter instructs the cmdlet to return exact matches only. The default value is false. SwitchParameter @@ -1336,9 +1386,10 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c False - UnAssociatedOnly + Force - The UnAssociatedOnly parameter instructs the cmdlet to return only application instances that are not associated to any configuration. + > Applicable: Microsoft Teams + This switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If it isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -1350,6 +1401,7 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c MaxResults + > Applicable: Microsoft Teams The MaxResults parameter identifies the maximum number of results to return. If this parameter is not provided, the default is value is 10. Max allowed value is 20. UInt32 @@ -1359,10 +1411,24 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c None + + SearchQuery + + > Applicable: Microsoft Teams + The SearchQuery parameter defines a query for application instances by display name, telephone number, or GUID of the application instance. This parameter accepts partial queries for display names and telephone numbers. The search is not case sensitive. + + System.String + + System.String + + + None + - Force + UnAssociatedOnly - This switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If it isn't provided in the command, you're prompted for administrative input if required. + > Applicable: Microsoft Teams + The UnAssociatedOnly parameter instructs the cmdlet to return only application instances that are not associated to any configuration. SwitchParameter @@ -1430,23 +1496,23 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Online Version: - https://learn.microsoft.com/powershell/module/teams/find-csonlineapplicationinstance + https://learn.microsoft.com/powershell/module/microsoftteams/find-csonlineapplicationinstance Get-CsOnlineApplicationInstance - https://learn.microsoft.com/powershell/module/teams/get-csonlineapplicationinstance + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineapplicationinstance New-CsOnlineApplicationInstance - https://learn.microsoft.com/powershell/module/teams/new-csonlineapplicationinstance + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineapplicationinstance Find-CsOnlineApplicationInstance - https://learn.microsoft.com/powershell/module/teams/find-csonlineapplicationinstance + https://learn.microsoft.com/powershell/module/microsoftteams/find-csonlineapplicationinstance Set-CsOnlineApplicationInstance - https://learn.microsoft.com/powershell/module/teams/set-csonlineapplicationinstance + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineapplicationinstance @@ -1504,26 +1570,26 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c - - Identity + + Filter - Unique identifier assigned to the policy when it was created. + A filter that is not expressed in the standard wildcard language. - XdsIdentity + String - XdsIdentity + String None - - Filter + + Identity - A filter that is not expressed in the standard wildcard language. + Unique identifier assigned to the policy when it was created. - String + XdsIdentity - String + XdsIdentity None @@ -1567,23 +1633,23 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csapplicationaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csapplicationaccesspolicy New-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/teams/new-csapplicationaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy Grant-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csapplicationaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csapplicationaccesspolicy Set-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/teams/set-csapplicationaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csapplicationaccesspolicy Remove-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csapplicationaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csapplicationaccesspolicy @@ -1617,6 +1683,7 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Filter + > Applicable: Teams Enables you to use wildcards when specifying the application meeting configuration settings to be returned. Because you can only have a single, global instance of these settings there is little reason to use the Filter parameter. However, if you prefer, you can use syntax similar to this to retrieve the global settings: -Identity "g*". String @@ -1629,6 +1696,7 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c LocalStore + > Applicable: Teams Retrieves the application meeting configuration data from the local replica of the Central Management store rather than from the Central Management store itself. @@ -1640,26 +1708,27 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c - - Identity + + Filter - Unique identifier of the application meeting configuration settings to be returned. Because you can only have a single, global instance of these settings, you do not have to include the Identity when calling the Get-CsApplicationMeetingConfiguration cmdlet. However, you can use the following syntax to retrieve the global settings: -Identity global. + > Applicable: Teams + Enables you to use wildcards when specifying the application meeting configuration settings to be returned. Because you can only have a single, global instance of these settings there is little reason to use the Filter parameter. However, if you prefer, you can use syntax similar to this to retrieve the global settings: -Identity "g*". - XdsIdentity + String - XdsIdentity + String None - - Filter + + Identity - Enables you to use wildcards when specifying the application meeting configuration settings to be returned. Because you can only have a single, global instance of these settings there is little reason to use the Filter parameter. However, if you prefer, you can use syntax similar to this to retrieve the global settings: -Identity "g*". + Unique identifier of the application meeting configuration settings to be returned. Because you can only have a single, global instance of these settings, you do not have to include the Identity when calling the Get-CsApplicationMeetingConfiguration cmdlet. However, you can use the following syntax to retrieve the global settings: -Identity global. - String + XdsIdentity - String + XdsIdentity None @@ -1667,6 +1736,7 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c LocalStore + > Applicable: Teams Retrieves the application meeting configuration data from the local replica of the Central Management store rather than from the Central Management store itself. SwitchParameter @@ -1714,11 +1784,11 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Online Version: - https://learn.microsoft.com/powershell/module/teams/get-CsApplicationMeetingConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-CsApplicationMeetingConfiguration Set-CsApplicationMeetingConfiguration - https://learn.microsoft.com/powershell/module/teams/set-csapplicationmeetingconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-csapplicationmeetingconfiguration @@ -1740,6 +1810,7 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Identity + > Applicable: Microsoft Teams The identity for the AA to be retrieved. If this parameter is not specified, then all created AAs in the organization are returned. If you specify this parameter, you can't specify the other parameters. System.String @@ -1750,90 +1821,98 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c None - First + Descending - The First parameter indicates the maximum number of auto attendants to retrieve as the result. It is intended to be used for pagination purposes. + > Applicable: Microsoft Teams + If specified, the retrieved auto attendants would be sorted in descending order. - System.UInt32 - System.UInt32 + SwitchParameter - None + False - Skip + ExcludeContent - The Skip parameter indicates the number of initial auto attendants to skip in the result. It is intended to be used for pagination purposes. + > Applicable: Microsoft Teams + If specified, only auto attendants' names, identities and associated application instances will be retrieved. - System.UInt32 - System.UInt32 + SwitchParameter - None + False - NameFilter + First - If specified, only auto attendants whose names match that value would be returned. + > Applicable: Microsoft Teams + The First parameter gets the first N auto attendants, up to a maximum of 100 at a time. When not specified, the default behavior is to return the first 100 auto attendants. It is intended to be used in conjunction with the `-Skip` parameter for pagination purposes. If a number greater than 100 is supplied, the request will fail. - System.String + System.UInt32 - System.String + System.UInt32 None - SortBy + IncludeStatus - If specified, the retrieved auto attendants would be sorted by the specified property. + > Applicable: Microsoft Teams + If specified, the status records for each auto attendant in the result set are also retrieved. - System.String - System.String + SwitchParameter - None + False - Descending + NameFilter - If specified, the retrieved auto attendants would be sorted in descending order. + > Applicable: Microsoft Teams + If specified, only auto attendants whose names match that value would be returned. + System.String - SwitchParameter + System.String - False + None - IncludeStatus + Skip - If specified, the status records for each auto attendant in the result set are also retrieved. + > Applicable: Microsoft Teams + The Skip parameter skips the first N auto attendants. It is intended to be used in conjunction with the `-First` parameter for pagination purposes. + System.UInt32 - SwitchParameter + System.UInt32 - False + None - ExcludeContent + SortBy - If specified, only auto attendants' names, identities and associated application instances will be retrieved. + > Applicable: Microsoft Teams + If specified, the retrieved auto attendants would be sorted by the specified property. + System.String - SwitchParameter + System.String - False + None Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -1845,34 +1924,37 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c - - Identity + + Descending - The identity for the AA to be retrieved. If this parameter is not specified, then all created AAs in the organization are returned. If you specify this parameter, you can't specify the other parameters. + > Applicable: Microsoft Teams + If specified, the retrieved auto attendants would be sorted in descending order. - System.String + SwitchParameter - System.String + SwitchParameter - None + False - First + ExcludeContent - The First parameter indicates the maximum number of auto attendants to retrieve as the result. It is intended to be used for pagination purposes. + > Applicable: Microsoft Teams + If specified, only auto attendants' names, identities and associated application instances will be retrieved. - System.UInt32 + SwitchParameter - System.UInt32 + SwitchParameter - None + False - Skip + First - The Skip parameter indicates the number of initial auto attendants to skip in the result. It is intended to be used for pagination purposes. + > Applicable: Microsoft Teams + The First parameter gets the first N auto attendants, up to a maximum of 100 at a time. When not specified, the default behavior is to return the first 100 auto attendants. It is intended to be used in conjunction with the `-Skip` parameter for pagination purposes. If a number greater than 100 is supplied, the request will fail. System.UInt32 @@ -1881,10 +1963,11 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c None - - NameFilter + + Identity - If specified, only auto attendants whose names match that value would be returned. + > Applicable: Microsoft Teams + The identity for the AA to be retrieved. If this parameter is not specified, then all created AAs in the organization are returned. If you specify this parameter, you can't specify the other parameters. System.String @@ -1894,57 +1977,62 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c None - SortBy + IncludeStatus - If specified, the retrieved auto attendants would be sorted by the specified property. + > Applicable: Microsoft Teams + If specified, the status records for each auto attendant in the result set are also retrieved. - System.String + SwitchParameter - System.String + SwitchParameter - None + False - Descending + NameFilter - If specified, the retrieved auto attendants would be sorted in descending order. + > Applicable: Microsoft Teams + If specified, only auto attendants whose names match that value would be returned. - SwitchParameter + System.String - SwitchParameter + System.String - False + None - IncludeStatus + Skip - If specified, the status records for each auto attendant in the result set are also retrieved. + > Applicable: Microsoft Teams + The Skip parameter skips the first N auto attendants. It is intended to be used in conjunction with the `-First` parameter for pagination purposes. - SwitchParameter + System.UInt32 - SwitchParameter + System.UInt32 - False + None - ExcludeContent + SortBy - If specified, only auto attendants' names, identities and associated application instances will be retrieved. + > Applicable: Microsoft Teams + If specified, the retrieved auto attendants would be sorted by the specified property. - SwitchParameter + System.String - SwitchParameter + System.String - False + None Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -1984,7 +2072,7 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c -------------------------- Example 1 -------------------------- Get-CsAutoAttendant - This example gets all AAs in the organization. + This example gets the first 100 auto attendants in the organization. @@ -2029,27 +2117,27 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csautoattendant + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendant Get-CsAutoAttendantStatus - https://learn.microsoft.com/powershell/module/teams/get-csautoattendantstatus + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantstatus New-CsAutoAttendant - https://learn.microsoft.com/powershell/module/teams/new-csautoattendant + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendant Remove-CsAutoAttendant - https://learn.microsoft.com/powershell/module/teams/remove-csautoattendant + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csautoattendant Set-CsAutoAttendant - https://learn.microsoft.com/powershell/module/teams/set-csautoattendant + https://learn.microsoft.com/powershell/module/microsoftteams/set-csautoattendant Update-CsAutoAttendant - https://learn.microsoft.com/powershell/module/teams/update-csautoattendant + https://learn.microsoft.com/powershell/module/microsoftteams/update-csautoattendant @@ -2071,6 +2159,7 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Identity + > Applicable: Microsoft Teams Represents the identifier for the auto attendant whose holidays are to be retrieved. System.String @@ -2083,6 +2172,7 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -2092,25 +2182,27 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c False - Years + Names - The Years parameter represents the years for the holidays to be retrieved. If this parameter is not specified, then holidays for all years in the AA are returned. + > Applicable: Microsoft Teams + The Names parameter represents the names for the holidays to be retrieved. If this parameter is not specified, then all holidays in the AA are returned. - System.Collections.Generic.List[System.String] + System.Collections.Generic.List[System.Int32] - System.Collections.Generic.List[System.String] + System.Collections.Generic.List[System.Int32] None - Names + Years - The Names parameter represents the names for the holidays to be retrieved. If this parameter is not specified, then all holidays in the AA are returned. + > Applicable: Microsoft Teams + The Years parameter represents the years for the holidays to be retrieved. If this parameter is not specified, then holidays for all years in the AA are returned. - System.Collections.Generic.List[System.Int32] + System.Collections.Generic.List[System.String] - System.Collections.Generic.List[System.Int32] + System.Collections.Generic.List[System.String] None @@ -2118,21 +2210,10 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c - - Identity - - Represents the identifier for the auto attendant whose holidays are to be retrieved. - - System.String - - System.String - - - None - Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -2142,14 +2223,15 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c False - - Years + + Identity - The Years parameter represents the years for the holidays to be retrieved. If this parameter is not specified, then holidays for all years in the AA are returned. + > Applicable: Microsoft Teams + Represents the identifier for the auto attendant whose holidays are to be retrieved. - System.Collections.Generic.List[System.String] + System.String - System.Collections.Generic.List[System.String] + System.String None @@ -2157,6 +2239,7 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Names + > Applicable: Microsoft Teams The Names parameter represents the names for the holidays to be retrieved. If this parameter is not specified, then all holidays in the AA are returned. System.Collections.Generic.List[System.Int32] @@ -2166,6 +2249,19 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c None + + Years + + > Applicable: Microsoft Teams + The Years parameter represents the years for the holidays to be retrieved. If this parameter is not specified, then holidays for all years in the AA are returned. + + System.Collections.Generic.List[System.String] + + System.Collections.Generic.List[System.String] + + + None + @@ -2225,15 +2321,15 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csautoattendantholidays + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantholidays Import-CsAutoAttendantHolidays - https://learn.microsoft.com/powershell/module/teams/import-csautoattendantholidays + https://learn.microsoft.com/powershell/module/microsoftteams/import-csautoattendantholidays Export-CsAutoAttendantHolidays - https://learn.microsoft.com/powershell/module/teams/export-csautoattendantholidays + https://learn.microsoft.com/powershell/module/microsoftteams/export-csautoattendantholidays @@ -2255,6 +2351,7 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Identity + > Applicable: Microsoft Teams Represents the identifier for the auto attendant whose provisioning status is to be retrieved. System.String @@ -2267,6 +2364,7 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c IncludeResources + > Applicable: Microsoft Teams The IncludeResources parameter identities the auto attendant resources whose status is to be retrieved. Available resources are: - AudioFile: Indicates status for audio files used by AA. - DialByNameVoiceResponses: Indicates status for speech recognition when using dial-by-name (directory lookup) feature with AA. - SipProvisioning: Indicates status for calling AA through its SIP (Primary) URI. @@ -2286,7 +2384,8 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -2301,6 +2400,7 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Identity + > Applicable: Microsoft Teams Represents the identifier for the auto attendant whose provisioning status is to be retrieved. System.String @@ -2313,6 +2413,7 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c IncludeResources + > Applicable: Microsoft Teams The IncludeResources parameter identities the auto attendant resources whose status is to be retrieved. Available resources are: - AudioFile: Indicates status for audio files used by AA. - DialByNameVoiceResponses: Indicates status for speech recognition when using dial-by-name (directory lookup) feature with AA. - SipProvisioning: Indicates status for calling AA through its SIP (Primary) URI. @@ -2327,7 +2428,8 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -2381,11 +2483,11 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csautoattendantstatus + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantstatus Get-CsAutoAttendant - https://learn.microsoft.com/powershell/module/teams/get-csautoattendant + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendant @@ -2407,6 +2509,7 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Identity + > Applicable: Microsoft Teams The Identity parameter designates a specific language to be retrieved. If this parameter is not specified, then all supported languages are returned. System.String @@ -2419,7 +2522,8 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -2434,6 +2538,7 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Identity + > Applicable: Microsoft Teams The Identity parameter designates a specific language to be retrieved. If this parameter is not specified, then all supported languages are returned. System.String @@ -2446,7 +2551,8 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -2500,7 +2606,7 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csautoattendantsupportedlanguage + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantsupportedlanguage @@ -2522,6 +2628,7 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Identity + > Applicable: Microsoft Teams The Identity parameter specifies a time zone to be retrieved. If this parameter is not used, then all supported time zones are returned. System.String @@ -2534,7 +2641,8 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -2549,6 +2657,7 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Identity + > Applicable: Microsoft Teams The Identity parameter specifies a time zone to be retrieved. If this parameter is not used, then all supported time zones are returned. System.String @@ -2561,7 +2670,8 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -2623,7 +2733,7 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csautoattendantsupportedtimezone + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantsupportedtimezone @@ -2645,7 +2755,8 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -2660,7 +2771,8 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -2707,7 +2819,7 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csautoattendanttenantinformation + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendanttenantinformation @@ -2726,18 +2838,6 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Get-CsBatchPolicyAssignmentOperation - - Identity - - The ID of a batch policy assignment operation. - - String - - String - - - None - Break @@ -2773,6 +2873,18 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c None + + Identity + + The ID of a batch policy assignment operation. + + String + + String + + + None + Proxy @@ -2811,18 +2923,6 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c Get-CsBatchPolicyAssignmentOperation - - Status - - Option filter - - String - - String - - - None - Break @@ -2893,33 +2993,21 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c False + + Status + + Option filter + + String + + String + + + None + - - Identity - - The ID of a batch policy assignment operation. - - String - - String - - - None - - - Status - - Option filter - - String - - String - - - None - Break @@ -2956,6 +3044,18 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c None + + Identity + + The ID of a batch policy assignment operation. + + String + + String + + + None + Proxy @@ -2992,6 +3092,18 @@ OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c False + + Status + + Option filter + + String + + String + + + None + @@ -3145,11 +3257,11 @@ bcff5b7e-8d3c-4721-b34a-63552a6a53f9 User not found Completed Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csbatchpolicyassignmentoperation + https://learn.microsoft.com/powershell/module/microsoftteams/get-csbatchpolicyassignmentoperation New-CsBatchPolicyAssignmentOperation - https://learn.microsoft.com/powershell/module/teams/new-csbatchpolicyassignmentoperation + https://learn.microsoft.com/powershell/module/microsoftteams/new-csbatchpolicyassignmentoperation @@ -3249,11 +3361,11 @@ bcff5b7e-8d3c-4721-b34a-63552a6a53f9 User not found Completed Online Version: - https://learn.microsoft.com/powershell/module/teams/Get-CsBatchTeamsDeploymentStatus + https://learn.microsoft.com/powershell/module/microsoftteams/Get-CsBatchTeamsDeploymentStatus New-CsBatchTeamsDeployment - https://learn.microsoft.com/powershell/module/teams/new-csbatchteamsdeployment + https://learn.microsoft.com/powershell/module/microsoftteams/new-csbatchteamsdeployment @@ -3272,10 +3384,11 @@ bcff5b7e-8d3c-4721-b34a-63552a6a53f9 User not found Completed Get-CsCallingLineIdentity - - Identity + + Filter - The Identity parameter identifies the Caller ID policy. + > Applicable: Microsoft Teams + The Filter parameter lets you insert a string through which your search results are filtered. String @@ -3287,10 +3400,11 @@ bcff5b7e-8d3c-4721-b34a-63552a6a53f9 User not found Completed Get-CsCallingLineIdentity - - Filter + + Identity - The Filter parameter lets you insert a string through which your search results are filtered. + > Applicable: Microsoft Teams + The Identity parameter identifies the Caller ID policy. String @@ -3302,10 +3416,11 @@ bcff5b7e-8d3c-4721-b34a-63552a6a53f9 User not found Completed - - Identity + + Filter - The Identity parameter identifies the Caller ID policy. + > Applicable: Microsoft Teams + The Filter parameter lets you insert a string through which your search results are filtered. String @@ -3314,10 +3429,11 @@ bcff5b7e-8d3c-4721-b34a-63552a6a53f9 User not found Completed None - - Filter + + Identity - The Filter parameter lets you insert a string through which your search results are filtered. + > Applicable: Microsoft Teams + The Identity parameter identifies the Caller ID policy. String @@ -3362,23 +3478,23 @@ bcff5b7e-8d3c-4721-b34a-63552a6a53f9 User not found Completed Online Version: - https://learn.microsoft.com/powershell/module/teams/get-cscallinglineidentity + https://learn.microsoft.com/powershell/module/microsoftteams/get-cscallinglineidentity Grant-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/teams/grant-cscallinglineidentity + https://learn.microsoft.com/powershell/module/microsoftteams/grant-cscallinglineidentity Set-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/teams/set-cscallinglineidentity + https://learn.microsoft.com/powershell/module/microsoftteams/set-cscallinglineidentity New-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/teams/new-cscallinglineidentity + https://learn.microsoft.com/powershell/module/microsoftteams/new-cscallinglineidentity Remove-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/teams/remove-cscallinglineidentity + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cscallinglineidentity @@ -3398,33 +3514,34 @@ bcff5b7e-8d3c-4721-b34a-63552a6a53f9 User not found Completed Get-CsCallQueue - Identity + Descending - PARAMVALUE: Guid + > Applicable: Microsoft Teams + The Descending parameter sorts Call Queues in descending order - Guid - Guid + SwitchParameter - None + False - Tenant + ExcludeContent - PARAMVALUE: Guid + > Applicable: Microsoft Teams + The ExcludeContent parameter only displays the Name and Id of the Call Queues - Guid - Guid + SwitchParameter - None + False First - The First parameter gets the first N Call Queues. The default behavior is to return the first 100 number of queues. It is intended to be used for pagination purposes. + > Applicable: Microsoft Teams + The First parameter gets the first N Call Queues, up to a maximum of 100 at a time. When not specified, the default behavior is to return the first 100 call queues. It is intended to be used in conjunction with the `-Skip` parameter for pagination purposes. If a number greater than 100 is supplied, the request will fail. Int32 @@ -3434,31 +3551,48 @@ bcff5b7e-8d3c-4721-b34a-63552a6a53f9 User not found Completed 100 - Skip + Identity - The Skip parameter skips the first N Call Queues. It is intended to be used for pagination purposes. + > Applicable: Microsoft Teams + PARAMVALUE: Guid - Int32 + Guid - Int32 + Guid + + + None + + + NameFilter + + > Applicable: Microsoft Teams + The NameFilter parameter returns Call Queues where name contains specified string + + String + + String None - ExcludeContent + Skip - The ExcludeContent parameter only displays the Name and Id of the Call Queues + > Applicable: Microsoft Teams + The Skip parameter skips the first N call queues. It is intended to be used in conjunction with the `-First` parameter for pagination purposes. + Int32 - SwitchParameter + Int32 - False + None Sort + > Applicable: Microsoft Teams The Sort parameter specifies the property used to sort. String @@ -3469,24 +3603,14 @@ bcff5b7e-8d3c-4721-b34a-63552a6a53f9 User not found Completed Name - Descending - - The Descending parameter sorts Call Queues in descending order - - - SwitchParameter - - - False - - - NameFilter + Tenant - The NameFilter parameter returns Call Queues where name contains specified string + > Applicable: Microsoft Teams + PARAMVALUE: Guid - String + Guid - String + Guid None @@ -3495,33 +3619,36 @@ bcff5b7e-8d3c-4721-b34a-63552a6a53f9 User not found Completed - Identity + Descending - PARAMVALUE: Guid + > Applicable: Microsoft Teams + The Descending parameter sorts Call Queues in descending order - Guid + SwitchParameter - Guid + SwitchParameter - None + False - Tenant + ExcludeContent - PARAMVALUE: Guid + > Applicable: Microsoft Teams + The ExcludeContent parameter only displays the Name and Id of the Call Queues - Guid + SwitchParameter - Guid + SwitchParameter - None + False First - The First parameter gets the first N Call Queues. The default behavior is to return the first 100 number of queues. It is intended to be used for pagination purposes. + > Applicable: Microsoft Teams + The First parameter gets the first N Call Queues, up to a maximum of 100 at a time. When not specified, the default behavior is to return the first 100 call queues. It is intended to be used in conjunction with the `-Skip` parameter for pagination purposes. If a number greater than 100 is supplied, the request will fail. Int32 @@ -3531,32 +3658,48 @@ bcff5b7e-8d3c-4721-b34a-63552a6a53f9 User not found Completed 100 - Skip + Identity - The Skip parameter skips the first N Call Queues. It is intended to be used for pagination purposes. + > Applicable: Microsoft Teams + PARAMVALUE: Guid - Int32 + Guid - Int32 + Guid + + + None + + + NameFilter + + > Applicable: Microsoft Teams + The NameFilter parameter returns Call Queues where name contains specified string + + String + + String None - ExcludeContent + Skip - The ExcludeContent parameter only displays the Name and Id of the Call Queues + > Applicable: Microsoft Teams + The Skip parameter skips the first N call queues. It is intended to be used in conjunction with the `-First` parameter for pagination purposes. - SwitchParameter + Int32 - SwitchParameter + Int32 - False + None Sort + > Applicable: Microsoft Teams The Sort parameter specifies the property used to sort. String @@ -3567,25 +3710,14 @@ bcff5b7e-8d3c-4721-b34a-63552a6a53f9 User not found Completed Name - Descending - - The Descending parameter sorts Call Queues in descending order - - SwitchParameter - - SwitchParameter - - - False - - - NameFilter + Tenant - The NameFilter parameter returns Call Queues where name contains specified string + > Applicable: Microsoft Teams + PARAMVALUE: Guid - String + Guid - String + Guid None @@ -3621,7 +3753,7 @@ bcff5b7e-8d3c-4721-b34a-63552a6a53f9 User not found Completed -------------------------- Example 1 -------------------------- Get-CsCallQueue - This example gets all Call Queues in the organization. + This example gets the first 100 call queues in the organization. @@ -3635,7 +3767,7 @@ bcff5b7e-8d3c-4721-b34a-63552a6a53f9 User not found Completed Online Version: - https://learn.microsoft.com/powershell/module/teams/get-cscallqueue + https://learn.microsoft.com/powershell/module/microsoftteams/get-cscallqueue @@ -3698,7 +3830,7 @@ Token Online Version: - https://learn.microsoft.com/powershell/module/teams/get-cscloudcalldataconnection + https://learn.microsoft.com/powershell/module/microsoftteams/get-cscloudcalldataconnection Configure Call Data Connector @@ -3706,7 +3838,129 @@ Token New-CsCloudCallDataConnection - https://learn.microsoft.com/powershell/module/teams/new-cscloudcalldataconnection + https://learn.microsoft.com/powershell/module/microsoftteams/new-cscloudcalldataconnection + + + + + + Get-CsComplianceRecordingForCallQueueTemplate + Get + CsComplianceRecordingForCallQueueTemplate + + Retrieves a Compliance Recording for Call Queues template. + + + + Use the Get-CsComplianceRecordingForCallQueueTemplate cmdlet to retrieve a Compliance Recording for Call Queues template. + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for this feature. General Availability for this functionality has not been determined at this time. + + + + Get-CsComplianceRecordingForCallQueueTemplate + + Id + + > Applicable: Microsoft Teams + The Id parameter is the unique identifier assigned to the Compliance Recording for Call Queue template. + + System.String + + System.String + + + None + + + + + + Id + + > Applicable: Microsoft Teams + The Id parameter is the unique identifier assigned to the Compliance Recording for Call Queue template. + + System.String + + System.String + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.OAA.Models.AutoAttendant + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsComplianceRecordingForCallQueueTemplate + + This example gets all Compliance Recording for Call Queue Templates in the organization. + + + + -------------------------- Example 2 -------------------------- + Get-CsComplianceRecordingForCallQueueTemplate -Id 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01 + + This example gets the Compliance Recording for Call Queue template with the identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01. If no Compliance Recording for Call Queue template exists with the identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01, then this example generates an error. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/Get-CsComplianceRecordingForCallQueueTemplate + + + New-CsComplianceRecordingForCallQueueTemplate + + + + Set-CsComplianceRecordingForCallQueueTemplate + + + + Remove-CsComplianceRecordingForCallQueueTemplate + + + + Get-CsCallQueue + + + + New-CsCallQueue + + + + Set-CsCallQueue + + + + Remove-CsCallQueue + @@ -3729,6 +3983,7 @@ Token Identity + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 The unique identifier designating the scope, and for per-user scope a name, to identify the dial plan you want to retrieve. XdsIdentity @@ -3741,6 +3996,7 @@ Token Filter + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 Performs a wildcard search that allows you to narrow down your results to only dial plans with identities that match the given wildcard string. String @@ -3753,6 +4009,7 @@ Token LocalStore + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 Retrieves the dial plan information from the local replica of the Central Management store, rather than the Central Management store itself. @@ -3764,6 +4021,7 @@ Token Tenant + > Applicable: Skype for Business Online {{Fill Tenant Description}} Guid @@ -3776,26 +4034,28 @@ Token - - Identity + + Filter - The unique identifier designating the scope, and for per-user scope a name, to identify the dial plan you want to retrieve. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Performs a wildcard search that allows you to narrow down your results to only dial plans with identities that match the given wildcard string. - XdsIdentity + String - XdsIdentity + String None - - Filter + + Identity - Performs a wildcard search that allows you to narrow down your results to only dial plans with identities that match the given wildcard string. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + The unique identifier designating the scope, and for per-user scope a name, to identify the dial plan you want to retrieve. - String + XdsIdentity - String + XdsIdentity None @@ -3803,6 +4063,7 @@ Token LocalStore + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 Retrieves the dial plan information from the local replica of the Central Management store, rather than the Central Management store itself. SwitchParameter @@ -3815,6 +4076,7 @@ Token Tenant + > Applicable: Skype for Business Online {{Fill Tenant Description}} Guid @@ -3897,11 +4159,31 @@ Token Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csdialplan + https://learn.microsoft.com/powershell/module/skypeforbusiness/get-csdialplan - Get-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/teams/get-cstenantdialplan + New-CsDialPlan + + + + Remove-CsDialPlan + + + + Set-CsDialPlan + + + + Grant-CsDialPlan + + + + Test-CsDialPlan + + + + Get-CsVoiceNormalizationRule + @@ -3923,6 +4205,7 @@ Token Identity + > Applicable: Microsoft Teams The Identity parameter is the unique identifier of the user for whom to retrieve the effective tenant dial plan. UserIdParameter @@ -3935,6 +4218,7 @@ Token Confirm + > Applicable: Microsoft Teams The Confirm switch causes the command to pause processing, and requires confirmation to proceed. @@ -3946,7 +4230,7 @@ Token OU - Note: This parameter is not supported in Teams PowerShell Module version 3.0.0 or later. + > Applicable: Microsoft Teams Note: This parameter is not supported in Teams PowerShell Module version 3.0.0 or later. The OrganizationalUnit parameter filters the results based on the object's location in Active Directory. Only objects that exist in the specified location are returned. OUIdParameter @@ -3959,7 +4243,7 @@ Token ResultSize - Note: This parameter is not supported in Teams PowerShell Module version 3.0.0 or later. + > Applicable: Microsoft Teams Note: This parameter is not supported in Teams PowerShell Module version 3.0.0 or later. Specifies the number of records returned by the cmdlet. The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0, the command will run, but no data will be returned. Int32 @@ -3972,6 +4256,7 @@ Token WhatIf + > Applicable: Microsoft Teams The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. @@ -3983,21 +4268,10 @@ Token - - Identity - - The Identity parameter is the unique identifier of the user for whom to retrieve the effective tenant dial plan. - - UserIdParameter - - UserIdParameter - - - None - Confirm + > Applicable: Microsoft Teams The Confirm switch causes the command to pause processing, and requires confirmation to proceed. SwitchParameter @@ -4007,10 +4281,23 @@ Token False + + Identity + + > Applicable: Microsoft Teams + The Identity parameter is the unique identifier of the user for whom to retrieve the effective tenant dial plan. + + UserIdParameter + + UserIdParameter + + + None + OU - Note: This parameter is not supported in Teams PowerShell Module version 3.0.0 or later. + > Applicable: Microsoft Teams Note: This parameter is not supported in Teams PowerShell Module version 3.0.0 or later. The OrganizationalUnit parameter filters the results based on the object's location in Active Directory. Only objects that exist in the specified location are returned. OUIdParameter @@ -4023,7 +4310,7 @@ Token ResultSize - Note: This parameter is not supported in Teams PowerShell Module version 3.0.0 or later. + > Applicable: Microsoft Teams Note: This parameter is not supported in Teams PowerShell Module version 3.0.0 or later. Specifies the number of records returned by the cmdlet. The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0, the command will run, but no data will be returned. Int32 @@ -4036,6 +4323,7 @@ Token WhatIf + > Applicable: Microsoft Teams The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. SwitchParameter @@ -4065,7 +4353,7 @@ Token Online Version: - https://learn.microsoft.com/powershell/module/teams/get-cseffectivetenantdialplan + https://learn.microsoft.com/powershell/module/microsoftteams/get-cseffectivetenantdialplan @@ -4075,11 +4363,11 @@ Token Get CsExportAcquiredPhoneNumberStatus - This cmdlet shows the status of the Export-CsAcquiredPhoneNumber (https://learn.microsoft.com/powershell/module/teams/export-csacquiredphonenumber)cmdlet. + This cmdlet shows the status of the Export-CsAcquiredPhoneNumber (https://learn.microsoft.com/powershell/module/microsoftteams/export-csacquiredphonenumber)cmdlet. - This cmdlet returns OrderId status from the respective Export-CsAcquiredPhoneNumber (https://learn.microsoft.com/powershell/module/teams/export-csacquiredphonenumber)operation. The response will include the download link to the file if operation has been completed. + This cmdlet returns OrderId status from the respective Export-CsAcquiredPhoneNumber (https://learn.microsoft.com/powershell/module/microsoftteams/export-csacquiredphonenumber)operation. The response will include the download link to the file if operation has been completed. By default, the download link will remain active for 1 hour. @@ -4150,7 +4438,7 @@ status : Success DownloadLinkExpiry : 2024-08-29 22:51:17Z DownloadLink : <link> - This example displays the status of the export acquired phone numbers operation. The OrderId is the output from Export-CsAcquiredPhoneNumber (https://learn.microsoft.com/powershell/module/teams/export-csacquiredphonenumber)cmdlet. The status contains the download link for the file along with expiry date. + This example displays the status of the export acquired phone numbers operation. The OrderId is the output from Export-CsAcquiredPhoneNumber (https://learn.microsoft.com/powershell/module/microsoftteams/export-csacquiredphonenumber)cmdlet. The status contains the download link for the file along with expiry date. @@ -4177,14 +4465,14 @@ status : Success DownloadLinkExpiry : 2024-08-29 22:51:17Z DownloadLink : <link> - This example stores the Get-CsExportAcquiredPhoneNumberStatus (https://learn.microsoft.com/powershell/module/teams/get-csexportacquiredphonenumberstatus)cmdlet status for the "orderId" in the variable "order". This will allow a quick view of the order status without typing the cmdlet again. + This example stores the Get-CsExportAcquiredPhoneNumberStatus (https://learn.microsoft.com/powershell/module/microsoftteams/get-csexportacquiredphonenumberstatus)cmdlet status for the "orderId" in the variable "order". This will allow a quick view of the order status without typing the cmdlet again. Get-CsExportAcquiredPhoneNumberStatus - https://learn.microsoft.com/powershell/module/teams/get-csexportacquiredphonenumberstatus + https://learn.microsoft.com/powershell/module/microsoftteams/get-csexportacquiredphonenumberstatus @@ -4310,19 +4598,15 @@ e2a3ed24-97be-494d-8d3c-dbc04cbb878a TeamsCallingPolicy AllowCalling 1 11/4/2 Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csgrouppolicyassignment + https://learn.microsoft.com/powershell/module/microsoftteams/get-csgrouppolicyassignment New-CsGroupPolicyAssignment - https://learn.microsoft.com/powershell/module/teams/new-csgrouppolicyassignment - - - Set-CsGroupPolicyAssignment - https://learn.microsoft.com/powershell/module/teams/set-csgrouppolicyassignment + https://learn.microsoft.com/powershell/module/microsoftteams/new-csgrouppolicyassignment Remove-CsGroupPolicyAssignment - https://learn.microsoft.com/powershell/module/teams/remove-csgrouppolicyassignment + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csgrouppolicyassignment @@ -4333,24 +4617,46 @@ e2a3ed24-97be-494d-8d3c-dbc04cbb878a TeamsCallingPolicy AllowCalling 1 11/4/2 CsHybridTelephoneNumber This cmdlet displays information about one or more hybrid telephone numbers. - > [!IMPORTANT] > This cmdlet is being deprecated. Use the Get-CsPhoneNumberAssignment cmdlet to display information about one or more phone numbers. Detailed instructions on how to use the new cmdlet can be found at Get-CsPhoneNumberAssignment (/powershell/module/teams/get-csphonenumberassignment?view=teams-ps) - This cmdlet displays information about one or more hybrid telephone numbers used for Audio Conferencing with Direct Routing for GCC High and DoD clouds. + > [!IMPORTANT] > This cmdlet is being deprecated. Use the Get-CsPhoneNumberAssignment cmdlet to display information about one or more phone numbers. Detailed instructions on how to use the new cmdlet can be found at Get-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/get-csphonenumberassignment)This cmdlet displays information about one or more hybrid telephone numbers used for Audio Conferencing with Direct Routing for GCC High and DoD clouds. Returned results are sorted by telephone number in ascending order. Get-CsHybridTelephoneNumber - TelephoneNumber + Break - Filters the returned results to a specific phone number. The number should be specified without a prefixed "+". The phone number can't have "tel:" prefixed. + {{ Fill Break Description }} - System.String - System.String + System.Management.Automation.SwitchParameter + + + False + + + HttpPipelineAppend + + {{ Fill HttpPipelineAppend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] None @@ -4360,9 +4666,130 @@ e2a3ed24-97be-494d-8d3c-dbc04cbb878a TeamsCallingPolicy AllowCalling 1 11/4/2 The identity parameter. - IConfigApiBasedCmdletsIdentity + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity - IConfigApiBasedCmdletsIdentity + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + None + + + Proxy + + {{ Fill Proxy Description }} + + System.Uri + + System.Uri + + + None + + + ProxyCredential + + {{ Fill ProxyCredential Description }} + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + ProxyUseDefaultCredentials + + {{ Fill ProxyUseDefaultCredentials Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + + Get-CsHybridTelephoneNumber + + Break + + {{ Fill Break Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + HttpPipelineAppend + + {{ Fill HttpPipelineAppend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Proxy + + {{ Fill Proxy Description }} + + System.Uri + + System.Uri + + + None + + + ProxyCredential + + {{ Fill ProxyCredential Description }} + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + ProxyUseDefaultCredentials + + {{ Fill ProxyUseDefaultCredentials Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + TelephoneNumber + + > Applicable: Microsoft Teams + Filters the returned results to a specific phone number. The number should be specified without a prefixed "+". The phone number can't have "tel:" prefixed. + + System.String + + System.String None @@ -4371,13 +4798,37 @@ e2a3ed24-97be-494d-8d3c-dbc04cbb878a TeamsCallingPolicy AllowCalling 1 11/4/2 - TelephoneNumber + Break - Filters the returned results to a specific phone number. The number should be specified without a prefixed "+". The phone number can't have "tel:" prefixed. + {{ Fill Break Description }} - System.String + System.Management.Automation.SwitchParameter - System.String + System.Management.Automation.SwitchParameter + + + False + + + HttpPipelineAppend + + {{ Fill HttpPipelineAppend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] None @@ -4387,9 +4838,58 @@ e2a3ed24-97be-494d-8d3c-dbc04cbb878a TeamsCallingPolicy AllowCalling 1 11/4/2 The identity parameter. - IConfigApiBasedCmdletsIdentity + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity - IConfigApiBasedCmdletsIdentity + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + None + + + Proxy + + {{ Fill Proxy Description }} + + System.Uri + + System.Uri + + + None + + + ProxyCredential + + {{ Fill ProxyCredential Description }} + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + ProxyUseDefaultCredentials + + {{ Fill ProxyUseDefaultCredentials Description }} + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + TelephoneNumber + + > Applicable: Microsoft Teams + Filters the returned results to a specific phone number. The number should be specified without a prefixed "+". The phone number can't have "tel:" prefixed. + + System.String + + System.String None @@ -4449,15 +4949,15 @@ Id O365Region SourceType TargetType TelephoneNumber UserId Online Version: - https://learn.microsoft.com/powershell/module/teams/get-cshybridtelephonenumber + https://learn.microsoft.com/powershell/module/microsoftteams/get-cshybridtelephonenumber New-CsHybridTelephoneNumber - https://learn.microsoft.com/powershell/module/teams/new-cshybridtelephonenumber + https://learn.microsoft.com/powershell/module/microsoftteams/new-cshybridtelephonenumber Remove-CsHybridTelephoneNumber - https://learn.microsoft.com/powershell/module/teams/remove-cshybridtelephonenumber + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cshybridtelephonenumber @@ -4557,19 +5057,19 @@ Id O365Region SourceType TargetType TelephoneNumber UserId Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csinboundblockednumberpattern + https://learn.microsoft.com/powershell/module/microsoftteams/get-csinboundblockednumberpattern New-CsInboundBlockedNumberPattern - https://learn.microsoft.com/powershell/module/teams/new-csinboundblockednumberpattern + https://learn.microsoft.com/powershell/module/microsoftteams/new-csinboundblockednumberpattern Set-CsInboundBlockedNumberPattern - https://learn.microsoft.com/powershell/module/teams/set-csinboundblockednumberpattern + https://learn.microsoft.com/powershell/module/microsoftteams/set-csinboundblockednumberpattern Remove-CsInboundBlockedNumberPattern - https://learn.microsoft.com/powershell/module/teams/remove-csinboundblockednumberpattern + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csinboundblockednumberpattern @@ -4676,86 +5176,109 @@ Id O365Region SourceType TargetType TelephoneNumber UserId Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csinboundexemptnumberpattern + https://learn.microsoft.com/powershell/module/microsoftteams/get-csinboundexemptnumberpattern New-CsInboundExemptNumberPattern - https://learn.microsoft.com/powershell/module/teams/new-csinboundexemptnumberpattern + https://learn.microsoft.com/powershell/module/microsoftteams/new-csinboundexemptnumberpattern Set-CsInboundExemptNumberPattern - https://learn.microsoft.com/powershell/module/teams/set-csinboundexemptnumberpattern + https://learn.microsoft.com/powershell/module/microsoftteams/set-csinboundexemptnumberpattern Remove-CsInboundExemptNumberPattern - https://learn.microsoft.com/powershell/module/teams/remove-csinboundexemptnumberpattern + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csinboundexemptnumberpattern Test-CsInboundBlockedNumberPattern - https://learn.microsoft.com/powershell/module/teams/test-csinboundblockednumberpattern + https://learn.microsoft.com/powershell/module/microsoftteams/test-csinboundblockednumberpattern Get-CsTenantBlockedCallingNumbers - https://learn.microsoft.com/powershell/module/teams/get-cstenantblockedcallingnumbers + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantblockedcallingnumbers - Get-CsMeetingMigrationStatus + Get-CsMainlineAttendantAppointmentBookingFlow Get - CsMeetingMigrationStatus + CsMainlineAttendantAppointmentBookingFlow - You use the `Get-CsMeetingMigrationStatus` cmdlet to check the status of meeting migrations. + The Get-CsMainlineAttendantAppointmentBookingFlow cmdlet returns the identified Mainline attendant appointment booking flow. - Meeting Migration Service (MMS) is a Skype for Business service that runs in the background and automatically updates Skype for Business and Microsoft Teams meetings for users. MMS is designed to eliminate the need for users to run the Meeting Migration Tool to update their Skype for Business and Microsoft Teams meetings. - You can use the `Get-CsMeetingMigrationStatus` cmdlet to check the status of meeting migrations. + The Get-CsMainlineAttendantAppointmentBookingFlow cmdlet lets you retrieve information about the Mainline attendant appointment booking flows n your organization. - Get-CsMeetingMigrationStatus - + Get-CsMainlineAttendantAppointmentBookingFlow + Identity - Specifies the Identity of the user account to be to be modified. A user identity can be specified by using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer) and 4) the user's Active Directory display name (for example, Ken Myer). You can also reference a user account by using the user's Active Directory distinguished name. + PARAMVALUE: Guid - UserIdParameter + Guid - UserIdParameter + Guid None - StartTime + Tenant - Specifies the start date of the date range. + PARAMVALUE: Guid - Object + Guid - Object + Guid None - EndTime + First - Specifies the end date of the date range. + The First parameter gets the first N appointment flows, up to a maximum of 100 at a time. When not specified, the default behavior is to return the first 100 appointment flows. It is intended to be used in conjunction with the `-Skip` parameter for pagination purposes. If a number greater than 100 is supplied, the request will fail. - Object + Int32 - Object + Int32 + + + 100 + + + Skip + + The Skip parameter skips the first N appointment flows. It is intended to be used in conjunction with the `-First` parameter for pagination purposes. + + Int32 + + Int32 None + + SortBy + + The SortBy parameter specifies the property used to sort. + + String + + String + + + Name + - SummaryOnly + Descending - Specified that you want a summary status of MMS migrations returned. + The Descending parameter sorts appointment booking flows in descending order SwitchParameter @@ -4763,18 +5286,14 @@ Id O365Region SourceType TargetType TelephoneNumber UserId False - - State + + NameFilter - With this parameter you can filter by migration state. Possible values are: - - Pending - - InProgress - - Failed - - Succeeded + The NameFilter parameter returns appointment booking flows where the name contains specified string - StateType + String - StateType + String None @@ -4782,46 +5301,70 @@ Id O365Region SourceType TargetType TelephoneNumber UserId - + Identity - Specifies the Identity of the user account to be to be modified. A user identity can be specified by using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer) and 4) the user's Active Directory display name (for example, Ken Myer). You can also reference a user account by using the user's Active Directory distinguished name. + PARAMVALUE: Guid - UserIdParameter + Guid - UserIdParameter + Guid None - StartTime + Tenant - Specifies the start date of the date range. + PARAMVALUE: Guid - Object + Guid - Object + Guid None - EndTime + First - Specifies the end date of the date range. + The First parameter gets the first N appointment flows, up to a maximum of 100 at a time. When not specified, the default behavior is to return the first 100 appointment flows. It is intended to be used in conjunction with the `-Skip` parameter for pagination purposes. If a number greater than 100 is supplied, the request will fail. - Object + Int32 - Object + Int32 + + + 100 + + + Skip + + The Skip parameter skips the first N appointment flows. It is intended to be used in conjunction with the `-First` parameter for pagination purposes. + + Int32 + + Int32 None + + SortBy + + The SortBy parameter specifies the property used to sort. + + String + + String + + + Name + - SummaryOnly + Descending - Specified that you want a summary status of MMS migrations returned. + The Descending parameter sorts appointment booking flows in descending order SwitchParameter @@ -4830,145 +5373,160 @@ Id O365Region SourceType TargetType TelephoneNumber UserId False - - State + + NameFilter - With this parameter you can filter by migration state. Possible values are: - - Pending - - InProgress - - Failed - - Succeeded + The NameFilter parameter returns appointment booking flows where the name contains specified string - StateType + String - StateType + String None - - + + + + Identity + + + Represents the unique identifier of an appointment booking flow. + + + + + + + Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue + + + + + + - CorrelationId : 849d3e3b-3e1d-465f-8dde-785aa9e3f856 CreateDate : 2024-04-27T00:24:00.1442688Z FailedMeeting : 0 InvitesUpdate : 0 LastMessage : MigrationType : AllToTeams ModifiedDate : 2024-04-27T00:24:00.1442688Z RetryCount : 0 State : Pending SucceededMeeting : 0 TotalMeeting : 0 UserId : 27c6ee67-c71d-4386-bf84-ebfdc7c3a171 UserPrincipalName : syntest1-prod@TESTTESTMMSSYNTHETICUSWESTT.onmicrosoft.com - where MigrationType can have the following values: - - SfbToTeams (Skype for Business On-prem to Teams) - TeamsToTeams (Teams to Teams) - ToSameType (Same source and target meeting types) - AllToTeams (All types to Teams) + -------------------------- Example 1 -------------------------- - Get-CsMeetingMigrationStatus -SummaryOnly + Get-CsMainlineAttendantAppointmentBookingFlow - This example is used to get a summary status of all MMS migrations. + This example gets the first 100 Mainline attendant appointment booking flows in the organization. -------------------------- Example 2 -------------------------- - Get-CsMeetingMigrationStatus -Identity "ashaw@contoso.com" + Get-CsMainlineAttendantAppointmentBookingFlow -Identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01 - This example gets the meeting migration status for user ashaw@contoso.com. + This example gets the Mainline attendant appointment booking flow with the identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01. If no appointment booking flow exists with the identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01, then this example generates an error. Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csmeetingmigrationstatus - - - Get-CsTenantMigrationConfiguration - https://learn.microsoft.com/powershell/module/teams/get-cstenantmigrationconfiguration - - - Get-CsOnlineDialInConferencingTenantSettings - https://learn.microsoft.com/powershell/module/teams/get-csonlinedialinconferencingtenantsettings - - - Start-CsExMeetingMigration - https://learn.microsoft.com/powershell/module/teams/start-csexmeetingmigration + https://learn.microsoft.com/powershell/module/microsoftteams/get-csmainlineattendantappointmentbookingflow - Get-CsOnlineApplicationInstance + Get-CsMainlineAttendantFlow Get - CsOnlineApplicationInstance + CsMainlineAttendantFlow - Get application instance for the tenant from Microsoft Entra ID. + The Get-CsMainlineAttendantFlow cmdlet returns information about the Mainline Attendant flows configured in your organization - This cmdlet is used to get details of an application instance. + The Get-CsMainlineAttendantFlow cmdlet returns information about the Mainline Attendant flows configured in your organization. + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for these features. General Availability for this functionality has not been determined at this time. - Get-CsOnlineApplicationInstance + Get-CsMainlineAttendantFlow - Identity + ConfigurationId - The UPN or the object ID of the application instance to retrieve. If this parameter nor parameter Identities are not provided, it will retrieve all application instances in the tenant. + The Mainline Attendant configuration Id - System.String + String - System.String + String None - Identities + Type - The UPNs or the object IDs of the application instances to retrieve, separated with comma. If this parameter nor parameter Identity are not provided, it will retrieve all application instances in the tenant. + The Mainline Attendant flow type + PARAMVALUE: AppointmentBooking | QuestionAnswer - System.String + String - System.String + String None - ResultSize + Identity - The result size for bulk get. This parameter is currently not working. + The Mainline Attendant identity - System.Int32 + String - System.Int32 + String None + + First + + The First parameter gets the first N Mainline Attendant flows, up to a maximum of 100 at a time. When not specified, the default behavior is to return the first 100 Mainline Attendant flows. It is intended to be used in conjunction with the `-Skip` parameter for pagination purposes. If a number greater than 100 is supplied, the request will fail. + + Int32 + + Int32 + + + 100 + Skip - Skips the first specified number of returned results. The default value is 0. This parameter is currently not working. + The Skip parameter skips the first N Mainline Attendant flows. It is intended to be used in conjunction with the `-First` parameter for pagination purposes. - System.Int32 + Int32 - System.Int32 + Int32 None - - Force + + SortBy - This switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If it isn't provided in the command, you're prompted for administrative input if required. + The SortBy parameter specifies the property used to sort. + String - SwitchParameter + String - False + Name - - WhatIf + + Descending - Shows what would happen if the cmdlet runs. The cmdlet is not run. + The Descending parameter sorts Mainline Attendant flows in descending order SwitchParameter @@ -4976,84 +5534,98 @@ Id O365Region SourceType TargetType TelephoneNumber UserId False - - Confirm + + NameFilter - Prompts you for confirmation before running the cmdlet. + The NameFilter parameter returns appointment booking flows where the name contains specified string + String - SwitchParameter + String - False + None - Identity + ConfigurationId - The UPN or the object ID of the application instance to retrieve. If this parameter nor parameter Identities are not provided, it will retrieve all application instances in the tenant. + The Mainline Attendant configuration Id - System.String + String - System.String + String None - Identities + Type - The UPNs or the object IDs of the application instances to retrieve, separated with comma. If this parameter nor parameter Identity are not provided, it will retrieve all application instances in the tenant. + The Mainline Attendant flow type + PARAMVALUE: AppointmentBooking | QuestionAnswer - System.String + String - System.String + String None - ResultSize + Identity - The result size for bulk get. This parameter is currently not working. + The Mainline Attendant identity - System.Int32 + String - System.Int32 + String None + + First + + The First parameter gets the first N Mainline Attendant flows, up to a maximum of 100 at a time. When not specified, the default behavior is to return the first 100 Mainline Attendant flows. It is intended to be used in conjunction with the `-Skip` parameter for pagination purposes. If a number greater than 100 is supplied, the request will fail. + + Int32 + + Int32 + + + 100 + Skip - Skips the first specified number of returned results. The default value is 0. This parameter is currently not working. + The Skip parameter skips the first N Mainline Attendant flows. It is intended to be used in conjunction with the `-First` parameter for pagination purposes. - System.Int32 + Int32 - System.Int32 + Int32 None - - Force + + SortBy - This switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If it isn't provided in the command, you're prompted for administrative input if required. + The SortBy parameter specifies the property used to sort. - SwitchParameter + String - SwitchParameter + String - False + Name - - WhatIf + + Descending - Shows what would happen if the cmdlet runs. The cmdlet is not run. + The Descending parameter sorts Mainline Attendant flows in descending order SwitchParameter @@ -5062,21 +5634,30 @@ Id O365Region SourceType TargetType TelephoneNumber UserId False - - Confirm + + NameFilter - Prompts you for confirmation before running the cmdlet. + The NameFilter parameter returns appointment booking flows where the name contains specified string - SwitchParameter + String - SwitchParameter + String - False + None - + + + + Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue + + + + + + @@ -5085,79 +5666,70 @@ Id O365Region SourceType TargetType TelephoneNumber UserId -------------------------- Example 1 -------------------------- - Get-CsOnlineApplicationInstance -Identity appinstance01@contoso.com + Get-CsMainlineAttendantFlow - This example returns the application instance with identity "appinstance01@contoso.com". + This example will list all the Mainline Attendant flows in the tenant. -------------------------- Example 2 -------------------------- - Get-CsOnlineApplicationInstance -Identities appinstance01@contoso.com,appinstance02@contoso.com + Get-CsMainlineAttendantFlow -ConfigurationId 0b31bbe5-e2a0-4117-9b6f-956bca6023f8 - This example returns the application instance with identities "appinstance01@contoso.com" and "appinstance02@contoso.com". Query with multiple comma separated Identity. + This example will list all the Mainline Attendant flows associated with the specific configuration id. -------------------------- Example 3 -------------------------- - Get-CsOnlineApplicationInstance -ResultSize 10 + Get-CsMainlineAttendantFlow -Type AppointmentBooking - This example returns the first 10 application instances. + This example will list all the Mainline Attendant Appointment flows. -------------------------- Example 4 -------------------------- - Get-CsOnlineApplicationInstance + Get-CsMainlineAttendantFlow -Type QuestionAnswer - This example returns the details of all application instances. + This example will list all the Mainline Attendant Question and Answer flows with the specified type. + + + + -------------------------- Example 5 -------------------------- + Get-CsMainlineAttendantFlow -Identity 956bca6-e2a0-4117-9b6f-023f80b31bbe5 + + This example will list the Mainline Attendant flow with the specified identity. Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csonlineapplicationinstance - - - Set-CsOnlineApplicationInstance - https://learn.microsoft.com/powershell/module/teams/set-csonlineapplicationinstance - - - New-CsOnlineApplicationInstance - https://learn.microsoft.com/powershell/module/teams/new-csonlineapplicationinstance - - - Find-CsOnlineApplicationInstance - https://learn.microsoft.com/powershell/module/teams/find-csonlineapplicationinstance - - - Sync-CsOnlineApplicationInstance - https://learn.microsoft.com/powershell/module/teams/sync-csonlineapplicationinstance + https://learn.microsoft.com/powershell/module/microsoftteams/get-csmainlineattendantflow - Get-CsOnlineApplicationInstanceAssociation + Get-CsMainlineAttendantQuestionAnswerFlow Get - CsOnlineApplicationInstanceAssociation + CsMainlineAttendantQuestionAnswerFlow - Use the Get-CsOnlineApplicationInstanceAssociation cmdlet to get information about the associations setup in your organization. + The Get-CsMainlineAttendantQuestionAnswerFlow cmdlet returns the identified Mainline attendant question and answer flow. - Use the Get-CsOnlineApplicationInstanceAssociation cmdlet to get information about the associations setup between online application instances and the application configurations, like auto attendants and call queues. + The Get-CsMainlineAttendantQuestionAnswerFlow cmdlet lets you retrieve information about the Mainline attendant question and answer flows n your organization. - Get-CsOnlineApplicationInstanceAssociation - + Get-CsMainlineAttendantQuestionAnswerFlow + Identity - The identity for the application instance whose association is to be retrieved. + PARAMVALUE: Guid - System.String + Guid - System.String + Guid None @@ -5165,11 +5737,70 @@ Id O365Region SourceType TargetType TelephoneNumber UserId Tenant - + PARAMVALUE: Guid - System.Guid + Guid - System.Guid + Guid + + + None + + + First + + The First parameter gets the first N appointment flows, up to a maximum of 100 at a time. When not specified, the default behavior is to return the first 100 question and answer flows. It is intended to be used in conjunction with the `-Skip` parameter for pagination purposes. If a number greater than 100 is supplied, the request will fail. + + Int32 + + Int32 + + + 100 + + + Skip + + The Skip parameter skips the first N appointment flows. It is intended to be used in conjunction with the `-First` parameter for pagination purposes. + + Int32 + + Int32 + + + None + + + SortBy + + The SortBy parameter specifies the property used to sort. + + String + + String + + + Name + + + Descending + + The Descending parameter sorts appointment booking flows in descending order + + + SwitchParameter + + + False + + + NameFilter + + The NameFilter parameter returns question and answer booking flows where the name contains specified string + + String + + String None @@ -5177,14 +5808,14 @@ Id O365Region SourceType TargetType TelephoneNumber UserId - + Identity - The identity for the application instance whose association is to be retrieved. + PARAMVALUE: Guid - System.String + Guid - System.String + Guid None @@ -5192,11 +5823,71 @@ Id O365Region SourceType TargetType TelephoneNumber UserId Tenant - + PARAMVALUE: Guid - System.Guid + Guid - System.Guid + Guid + + + None + + + First + + The First parameter gets the first N appointment flows, up to a maximum of 100 at a time. When not specified, the default behavior is to return the first 100 question and answer flows. It is intended to be used in conjunction with the `-Skip` parameter for pagination purposes. If a number greater than 100 is supplied, the request will fail. + + Int32 + + Int32 + + + 100 + + + Skip + + The Skip parameter skips the first N appointment flows. It is intended to be used in conjunction with the `-First` parameter for pagination purposes. + + Int32 + + Int32 + + + None + + + SortBy + + The SortBy parameter specifies the property used to sort. + + String + + String + + + Name + + + Descending + + The Descending parameter sorts appointment booking flows in descending order + + SwitchParameter + + SwitchParameter + + + False + + + NameFilter + + The NameFilter parameter returns question and answer booking flows where the name contains specified string + + String + + String None @@ -5205,17 +5896,17 @@ Id O365Region SourceType TargetType TelephoneNumber UserId - System.String + Identity - The Get-CsOnlineApplicationInstanceAssociation cmdlet accepts a string as the Identity parameter. + Represents the unique identifier of a question and answer booking flow. - Microsoft.Rtc.Management.Hosted.Online.Models.ApplicationInstanceAssociation + Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue @@ -5230,52 +5921,507 @@ Id O365Region SourceType TargetType TelephoneNumber UserId -------------------------- Example 1 -------------------------- - Get-CsOnlineApplicationInstanceAssociation -Identity "f7a821dc-2d69-5ae8-8525-bcb4a4556093" + Get-CsMainlineAttendantQuestionAnswerFlow - This example gets the association object for the application instance that has the identity of f7a821dc-2d69-5ae8-8525-bcb4a4556093. + This example gets the first 100 Mainline attendant question and answer flows in the organization. + + + + -------------------------- Example 2 -------------------------- + Get-CsMainlineAttendantQuestionAnswerFlow -Identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01 + + This example gets the Mainline attendant question and answer flow with the identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01. If no question and answer flow exists with the identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01, then this example generates an error. Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csonlineapplicationinstanceassociation - - - Get-CsOnlineApplicationInstanceAssociationStatus - https://learn.microsoft.com/powershell/module/teams/get-csonlineapplicationinstanceassociationstatus - - - New-CsOnlineApplicationInstanceAssociation - https://learn.microsoft.com/powershell/module/teams/new-csonlineapplicationinstanceassociation - - - Remove-CsOnlineApplicationInstanceAssociation - https://learn.microsoft.com/powershell/module/teams/remove-csonlineapplicationinstanceassociation + https://learn.microsoft.com/powershell/module/microsoftteams/get-csmainlineattendantquestionanswerflow - Get-CsOnlineApplicationInstanceAssociationStatus + Get-CsMeetingMigrationStatus Get - CsOnlineApplicationInstanceAssociationStatus + CsMeetingMigrationStatus - Use the Get-CsOnlineApplicationInstanceAssociationStatus cmdlet to get the provisioning status for the associations you have setup in your organization. + You use the `Get-CsMeetingMigrationStatus` cmdlet to check the status of meeting migrations. - Use the Get-CsOnlineApplicationInstanceAssociationStatus cmdlet to get provisioning status for the associations you have setup between online application instances and the application configurations, like auto attendants and call queues. + Meeting Migration Service (MMS) is a Skype for Business service that runs in the background and automatically updates Skype for Business and Microsoft Teams meetings for users. MMS is designed to eliminate the need for users to run the Meeting Migration Tool to update their Skype for Business and Microsoft Teams meetings. + You can use the `Get-CsMeetingMigrationStatus` cmdlet to check the status of meeting migrations. - Get-CsOnlineApplicationInstanceAssociationStatus - + Get-CsMeetingMigrationStatus + Identity - The identity for the application instance whose association provisioning status is to be retrieved. + > Applicable: Microsoft Teams + Specifies the Identity of the user account to be to be modified. A user identity can be specified by using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer) and 4) the user's Active Directory display name (for example, Ken Myer). You can also reference a user account by using the user's Active Directory distinguished name. - System.String + UserIdParameter + + UserIdParameter + + + None + + + EndTime + + > Applicable: Microsoft Teams + Specifies the end date of the date range. + + Object + + Object + + + None + + + StartTime + + > Applicable: Microsoft Teams + Specifies the start date of the date range. + + Object + + Object + + + None + + + State + + > Applicable: Microsoft Teams + With this parameter you can filter by migration state. Possible values are: + - Pending + - InProgress + - Failed + - Succeeded + + StateType + + StateType + + + None + + + SummaryOnly + + > Applicable: Microsoft Teams + Specified that you want a summary status of MMS migrations returned. + + + SwitchParameter + + + False + + + + + + EndTime + + > Applicable: Microsoft Teams + Specifies the end date of the date range. + + Object + + Object + + + None + + + Identity + + > Applicable: Microsoft Teams + Specifies the Identity of the user account to be to be modified. A user identity can be specified by using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer) and 4) the user's Active Directory display name (for example, Ken Myer). You can also reference a user account by using the user's Active Directory distinguished name. + + UserIdParameter + + UserIdParameter + + + None + + + StartTime + + > Applicable: Microsoft Teams + Specifies the start date of the date range. + + Object + + Object + + + None + + + State + + > Applicable: Microsoft Teams + With this parameter you can filter by migration state. Possible values are: + - Pending + - InProgress + - Failed + - Succeeded + + StateType + + StateType + + + None + + + SummaryOnly + + > Applicable: Microsoft Teams + Specified that you want a summary status of MMS migrations returned. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + CorrelationId : 849d3e3b-3e1d-465f-8dde-785aa9e3f856 CreateDate : 2024-04-27T00:24:00.1442688Z FailedMeeting : 0 InvitesUpdate : 0 LastMessage : MigrationType : AllToTeams ModifiedDate : 2024-04-27T00:24:00.1442688Z RetryCount : 0 State : Pending SucceededMeeting : 0 TotalMeeting : 0 UserId : 27c6ee67-c71d-4386-bf84-ebfdc7c3a171 UserPrincipalName : syntest1-prod@TESTTESTMMSSYNTHETICUSWESTT.onmicrosoft.com + where MigrationType can have the following values: + - SfbToTeams (Skype for Business On-prem to Teams) - TeamsToTeams (Teams to Teams) - ToSameType (Same source and target meeting types) - AllToTeams (All types to Teams) + + + + + -------------------------- Example 1 -------------------------- + Get-CsMeetingMigrationStatus -SummaryOnly + + This example is used to get a summary status of all MMS migrations. + + + + -------------------------- Example 2 -------------------------- + Get-CsMeetingMigrationStatus -Identity "ashaw@contoso.com" + + This example gets the meeting migration status for user ashaw@contoso.com. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csmeetingmigrationstatus + + + Get-CsTenantMigrationConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantmigrationconfiguration + + + Get-CsOnlineDialInConferencingTenantSettings + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinedialinconferencingtenantsettings + + + Start-CsExMeetingMigration + https://learn.microsoft.com/powershell/module/microsoftteams/start-csexmeetingmigration + + + + + + Get-CsOnlineApplicationInstance + Get + CsOnlineApplicationInstance + + Get application instance for the tenant from Microsoft Entra ID. + + + + This cmdlet is used to get details of an application instance. + + + + Get-CsOnlineApplicationInstance + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + This switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If it isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + Identities + + > Applicable: Microsoft Teams + The UPNs or the object IDs of the application instances to retrieve, separated with comma. If this parameter nor parameter Identity are not provided, it will retrieve all application instances in the tenant. + + System.String + + System.String + + + None + + + Identity + + > Applicable: Microsoft Teams + The UPN or the object ID of the application instance to retrieve. If this parameter nor parameter Identities are not provided, it will retrieve all application instances in the tenant. + + System.String + + System.String + + + None + + + ResultSize + + > Applicable: Microsoft Teams + The result size for bulk get. This parameter is currently not working. + + System.Int32 + + System.Int32 + + + None + + + Skip + + > Applicable: Microsoft Teams + Skips the first specified number of returned results. The default value is 0. This parameter is currently not working. + + System.Int32 + + System.Int32 + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + This switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If it isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Identities + + > Applicable: Microsoft Teams + The UPNs or the object IDs of the application instances to retrieve, separated with comma. If this parameter nor parameter Identity are not provided, it will retrieve all application instances in the tenant. + + System.String + + System.String + + + None + + + Identity + + > Applicable: Microsoft Teams + The UPN or the object ID of the application instance to retrieve. If this parameter nor parameter Identities are not provided, it will retrieve all application instances in the tenant. + + System.String + + System.String + + + None + + + ResultSize + + > Applicable: Microsoft Teams + The result size for bulk get. This parameter is currently not working. + + System.Int32 + + System.Int32 + + + None + + + Skip + + > Applicable: Microsoft Teams + Skips the first specified number of returned results. The default value is 0. This parameter is currently not working. + + System.Int32 + + System.Int32 + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsOnlineApplicationInstance -Identity appinstance01@contoso.com + + This example returns the application instance with identity "appinstance01@contoso.com". + + + + -------------------------- Example 2 -------------------------- + Get-CsOnlineApplicationInstance -Identities appinstance01@contoso.com,appinstance02@contoso.com + + This example returns the application instance with identities "appinstance01@contoso.com" and "appinstance02@contoso.com". Query with multiple comma separated Identity. + + + + -------------------------- Example 3 -------------------------- + Get-CsOnlineApplicationInstance -ResultSize 10 + + This example returns the first 10 application instances. + + + + -------------------------- Example 4 -------------------------- + Get-CsOnlineApplicationInstance + + This example returns the details of all application instances. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineapplicationinstance + + + Set-CsOnlineApplicationInstance + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineapplicationinstance + + + New-CsOnlineApplicationInstance + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineapplicationinstance + + + Find-CsOnlineApplicationInstance + https://learn.microsoft.com/powershell/module/microsoftteams/find-csonlineapplicationinstance + + + Sync-CsOnlineApplicationInstance + https://learn.microsoft.com/powershell/module/microsoftteams/sync-csonlineapplicationinstance + + + + + + Get-CsOnlineApplicationInstanceAssociation + Get + CsOnlineApplicationInstanceAssociation + + Use the Get-CsOnlineApplicationInstanceAssociation cmdlet to get information about the associations setup in your organization. + + + + Use the Get-CsOnlineApplicationInstanceAssociation cmdlet to get information about the associations setup between online application instances and the application configurations, like auto attendants and call queues. + + + + Get-CsOnlineApplicationInstanceAssociation + + Identity + + > Applicable: Microsoft Teams + The identity for the application instance whose association is to be retrieved. + + System.String System.String @@ -5285,7 +6431,8 @@ Id O365Region SourceType TargetType TelephoneNumber UserId Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -5300,7 +6447,8 @@ Id O365Region SourceType TargetType TelephoneNumber UserId Identity - The identity for the application instance whose association provisioning status is to be retrieved. + > Applicable: Microsoft Teams + The identity for the application instance whose association is to be retrieved. System.String @@ -5311,9 +6459,134 @@ Id O365Region SourceType TargetType TelephoneNumber UserId Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + System.String + + + The Get-CsOnlineApplicationInstanceAssociation cmdlet accepts a string as the Identity parameter. + + + + + + + Microsoft.Rtc.Management.Hosted.Online.Models.ApplicationInstanceAssociation + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsOnlineApplicationInstanceAssociation -Identity "f7a821dc-2d69-5ae8-8525-bcb4a4556093" + + This example gets the association object for the application instance that has the identity of f7a821dc-2d69-5ae8-8525-bcb4a4556093. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineapplicationinstanceassociation + + + Get-CsOnlineApplicationInstanceAssociationStatus + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineapplicationinstanceassociationstatus + + + New-CsOnlineApplicationInstanceAssociation + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineapplicationinstanceassociation + + + Remove-CsOnlineApplicationInstanceAssociation + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineapplicationinstanceassociation + + + + + + Get-CsOnlineApplicationInstanceAssociationStatus + Get + CsOnlineApplicationInstanceAssociationStatus + + Use the Get-CsOnlineApplicationInstanceAssociationStatus cmdlet to get the provisioning status for the associations you have setup in your organization. + + + + Use the Get-CsOnlineApplicationInstanceAssociationStatus cmdlet to get provisioning status for the associations you have setup between online application instances and the application configurations, like auto attendants and call queues. + + + + Get-CsOnlineApplicationInstanceAssociationStatus + + Identity + + > Applicable: Microsoft Teams + The identity for the application instance whose association provisioning status is to be retrieved. + + System.String + + System.String + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + Identity + + > Applicable: Microsoft Teams + The identity for the application instance whose association provisioning status is to be retrieved. + + System.String + + System.String + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + System.Guid System.Guid @@ -5359,19 +6632,19 @@ Id O365Region SourceType TargetType TelephoneNumber UserId Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csonlineapplicationinstanceassociationstatus + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineapplicationinstanceassociationstatus Get-CsOnlineApplicationInstanceAssociation - https://learn.microsoft.com/powershell/module/teams/get-csonlineapplicationinstanceassociation + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineapplicationinstanceassociation New-CsOnlineApplicationInstanceAssociation - https://learn.microsoft.com/powershell/module/teams/new-csonlineapplicationinstanceassociation + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineapplicationinstanceassociation Remove-CsOnlineApplicationInstanceAssociation - https://learn.microsoft.com/powershell/module/teams/remove-csonlineapplicationinstanceassociation + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineapplicationinstanceassociation @@ -5521,7 +6794,7 @@ Id O365Region SourceType TargetType TelephoneNumber UserId Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csonlineaudioconferencingroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineaudioconferencingroutingpolicy New-CsOnlineAudioConferencingRoutingPolicy @@ -5557,34 +6830,46 @@ Id O365Region SourceType TargetType TelephoneNumber UserId Get-CsOnlineAudioFile - Identity + ApplicationId - The Id of the specific audio file that you would like to see information about. If you are only specifying -Identity, the -ApplicationId it is assumed to be TenantGlobal. - If you need to see the information of a specific audio file with ApplicationId of OrgAutoAttendant or HuntGroup, you need to specify -ApplicationId with the corresponding value and -Identity with the Id of the audio file. + The ApplicationId parameter specifies the identifier for the application that was specified when audio file was uploaded. For example, if the audio file is used with an auto attendant, then it should specified as "OrgAutoAttendant". If the audio file is used with a hunt group (call queue), then it needs to be specified as "HuntGroup". If the audio file is used for music on hold, the it needs to specified as "TenantGlobal". + If you are not specifying an ApplicationId it is assumed to be TenantGlobal. + Supported values: + - OrgAutoAttendant + - HuntGroup + - TenantGlobal System.String System.String + TenantGlobal + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + None - ApplicationId + Identity - The ApplicationId parameter specifies the identifier for the application that was specified when audio file was uploaded. For example, if the audio file is used with an auto attendant, then it should specified as "OrgAutoAttendant". If the audio file is used with a hunt group (call queue), then it needs to be specified as "HuntGroup". If the audio file is used for music on hold, the it needs to specified as "TenantGlobal". - If you are not specifying an ApplicationId it is assumed to be TenantGlobal. - Supported values: - - OrgAutoAttendant - - HuntGroup - - TenantGlobal + The Id of the specific audio file that you would like to see information about. If you are only specifying -Identity, the -ApplicationId it is assumed to be TenantGlobal. + If you need to see the information of a specific audio file with ApplicationId of OrgAutoAttendant or HuntGroup, you need to specify -ApplicationId with the corresponding value and -Identity with the Id of the audio file. - System.string + System.String - System.string + System.String - TenantGlobal + None @@ -5599,13 +6884,25 @@ Id O365Region SourceType TargetType TelephoneNumber UserId - HuntGroup - TenantGlobal - System.string + System.String - System.string + System.String TenantGlobal + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + Identity @@ -5687,19 +6984,19 @@ MarkedForDeletion : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csonlineaudiofile + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineaudiofile Export-CsOnlineAudioFile - https://learn.microsoft.com/powershell/module/teams/export-csonlineaudiofile + https://learn.microsoft.com/powershell/module/microsoftteams/export-csonlineaudiofile Import-CsOnlineAudioFile - https://learn.microsoft.com/powershell/module/teams/import-csonlineaudiofile + https://learn.microsoft.com/powershell/module/microsoftteams/import-csonlineaudiofile Remove-CsOnlineAudioFile - https://learn.microsoft.com/powershell/module/teams/remove-csonlineaudiofile + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineaudiofile @@ -5721,6 +7018,7 @@ MarkedForDeletion : False Identity + > Applicable: Skype for Business Online Specifies the globally-unique identifier (GUID) for the audio conferencing bridge. Guid @@ -5730,21 +7028,10 @@ MarkedForDeletion : False None - - Name - - Specifies the name of the audio conferencing bridge. - - String - - String - - - None - DomainController + > Applicable: Skype for Business Online Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this parameter include: Fully qualified domain name (FQDN): `-DomainController atl-cs-001.Contoso.com` @@ -5762,6 +7049,7 @@ MarkedForDeletion : False Force + > Applicable: Skype for Business Online The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -5770,9 +7058,23 @@ MarkedForDeletion : False False + + Name + + > Applicable: Skype for Business Online + Specifies the name of the audio conferencing bridge. + + String + + String + + + None + Tenant + > Applicable: Skype for Business Online This parameter is reserved for internal Microsoft use. Guid @@ -5785,6 +7087,7 @@ MarkedForDeletion : False TenantDomain + > Applicable: Skype for Business Online This parameter is reserved for internal Microsoft use. String @@ -5797,33 +7100,10 @@ MarkedForDeletion : False - - Identity - - Specifies the globally-unique identifier (GUID) for the audio conferencing bridge. - - Guid - - Guid - - - None - - - Name - - Specifies the name of the audio conferencing bridge. - - String - - String - - - None - DomainController + > Applicable: Skype for Business Online Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this parameter include: Fully qualified domain name (FQDN): `-DomainController atl-cs-001.Contoso.com` @@ -5841,6 +7121,7 @@ MarkedForDeletion : False Force + > Applicable: Skype for Business Online The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -5850,9 +7131,36 @@ MarkedForDeletion : False False + + Identity + + > Applicable: Skype for Business Online + Specifies the globally-unique identifier (GUID) for the audio conferencing bridge. + + Guid + + Guid + + + None + + + Name + + > Applicable: Skype for Business Online + Specifies the name of the audio conferencing bridge. + + String + + String + + + None + Tenant + > Applicable: Skype for Business Online This parameter is reserved for internal Microsoft use. Guid @@ -5865,6 +7173,7 @@ MarkedForDeletion : False TenantDomain + > Applicable: Skype for Business Online This parameter is reserved for internal Microsoft use. String @@ -5942,6 +7251,7 @@ MarkedForDeletion : False DomainController + > Applicable: Skype for Business Online Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this parameter include: Fully qualified domain name (FQDN): `-DomainController atl-cs-001.Contoso.com` Computer name: `-DomainController atl-cs-001` @@ -5956,6 +7266,7 @@ MarkedForDeletion : False Force + > Applicable: Skype for Business Online The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -5970,6 +7281,7 @@ MarkedForDeletion : False DomainController + > Applicable: Skype for Business Online Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this parameter include: Fully qualified domain name (FQDN): `-DomainController atl-cs-001.Contoso.com` Computer name: `-DomainController atl-cs-001` @@ -5984,6 +7296,7 @@ MarkedForDeletion : False Force + > Applicable: Skype for Business Online The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -6035,6 +7348,7 @@ MarkedForDeletion : False Identity + > Applicable: Microsoft Teams A unique identifier specifying the scope and, in some cases the name, of the policy. If this parameter is omitted, all policies for the organization are returned. XdsIdentity @@ -6047,6 +7361,7 @@ MarkedForDeletion : False Filter + > Applicable: Microsoft Teams This parameter accepts a wildcard string and returns all policies with identities matching that string. For example, a Filter value of tag:* will return all policies defined at the per-user level. String @@ -6059,6 +7374,7 @@ MarkedForDeletion : False LocalStore + > Applicable: Microsoft Teams Reserved for Microsoft Internal use. @@ -6073,6 +7389,7 @@ MarkedForDeletion : False Filter + > Applicable: Microsoft Teams This parameter accepts a wildcard string and returns all policies with identities matching that string. For example, a Filter value of tag:* will return all policies defined at the per-user level. String @@ -6085,6 +7402,7 @@ MarkedForDeletion : False Identity + > Applicable: Microsoft Teams A unique identifier specifying the scope and, in some cases the name, of the policy. If this parameter is omitted, all policies for the organization are returned. XdsIdentity @@ -6097,6 +7415,7 @@ MarkedForDeletion : False LocalStore + > Applicable: Microsoft Teams Reserved for Microsoft Internal use. SwitchParameter @@ -6126,7 +7445,7 @@ MarkedForDeletion : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csonlinedialinconferencingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinedialinconferencingpolicy @@ -6148,6 +7467,7 @@ MarkedForDeletion : False Identity + > Applicable: Microsoft Teams Specifies the default dial-in service number string. String @@ -6160,6 +7480,7 @@ MarkedForDeletion : False BridgeId + > Applicable: Microsoft Teams Specifies the globally-unique identifier (GUID) for the audio conferencing bridge. When it's used it returns all of the service numbers that are configured on the audio conferencing bridge. Guid @@ -6169,33 +7490,10 @@ MarkedForDeletion : False None - - Tenant - - This parameter is reserved for internal Microsoft use. - - Guid - - Guid - - - None - - - TenantDomain - - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - BridgeName + > Applicable: Microsoft Teams Specifies the name of the audio conferencing bridge. When it is used it returns all of the service numbers that are configured on the audio conferencing bridge. String @@ -6208,6 +7506,7 @@ MarkedForDeletion : False City + > Applicable: Microsoft Teams Specifies the city geocode to be used. When used it lists all of the service numbers for a specific city geocode. String @@ -6220,6 +7519,7 @@ MarkedForDeletion : False DomainController + > Applicable: Microsoft Teams Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this parameter include: Fully qualified domain name (FQDN): `-DomainController atl-cs-001.Contoso.com.` Computer name: `-DomainController atl-cs-001` @@ -6234,6 +7534,7 @@ MarkedForDeletion : False Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -6245,6 +7546,7 @@ MarkedForDeletion : False ResultSize + > Applicable: Microsoft Teams Specifies the number of records returned by the cmdlet. For example, to return seven users (regardless of the number of users that are in your forest) include the ResultSize parameter and set the parameter value to 7. Note that there is no way to guarantee which seven users will be returned. The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0 the command will run, but no data will be returned. If you set the ResultSize to 7 but you have only three users in your forest, the command will return those three users, and then complete without error. @@ -6255,12 +7557,39 @@ MarkedForDeletion : False None + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + TenantDomain + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + BridgeId + > Applicable: Microsoft Teams Specifies the globally-unique identifier (GUID) for the audio conferencing bridge. When it's used it returns all of the service numbers that are configured on the audio conferencing bridge. Guid @@ -6270,45 +7599,10 @@ MarkedForDeletion : False None - - Identity - - Specifies the default dial-in service number string. - - String - - String - - - None - - - Tenant - - This parameter is reserved for internal Microsoft use. - - Guid - - Guid - - - None - - - TenantDomain - - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - BridgeName + > Applicable: Microsoft Teams Specifies the name of the audio conferencing bridge. When it is used it returns all of the service numbers that are configured on the audio conferencing bridge. String @@ -6321,6 +7615,7 @@ MarkedForDeletion : False City + > Applicable: Microsoft Teams Specifies the city geocode to be used. When used it lists all of the service numbers for a specific city geocode. String @@ -6333,6 +7628,7 @@ MarkedForDeletion : False DomainController + > Applicable: Microsoft Teams Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this parameter include: Fully qualified domain name (FQDN): `-DomainController atl-cs-001.Contoso.com.` Computer name: `-DomainController atl-cs-001` @@ -6347,6 +7643,7 @@ MarkedForDeletion : False Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -6356,9 +7653,23 @@ MarkedForDeletion : False False + + Identity + + > Applicable: Microsoft Teams + Specifies the default dial-in service number string. + + String + + String + + + None + ResultSize + > Applicable: Microsoft Teams Specifies the number of records returned by the cmdlet. For example, to return seven users (regardless of the number of users that are in your forest) include the ResultSize parameter and set the parameter value to 7. Note that there is no way to guarantee which seven users will be returned. The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0 the command will run, but no data will be returned. If you set the ResultSize to 7 but you have only three users in your forest, the command will return those three users, and then complete without error. @@ -6369,6 +7680,32 @@ MarkedForDeletion : False None + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + TenantDomain + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + @@ -6403,7 +7740,7 @@ MarkedForDeletion : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csonlinedialinconferencingservicenumber + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinedialinconferencingservicenumber @@ -6413,7 +7750,7 @@ MarkedForDeletion : False Get CsOnlineDialinConferencingTenantConfiguration - Use the Get-CsOnlineDialinConferencingTenantConfiguration cmdlet to retrieve the tenant level configuration for dial-in conferencing. The dial-in conferencing configuration specifies if dial-in conferencing is enabled for the tenant. + Use the Get-CsOnlineDialinConferencingTenantConfiguration cmdlet to retrieve the tenant level configuration for dial-in conferencing. @@ -6426,6 +7763,7 @@ MarkedForDeletion : False Identity + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. XdsIdentity @@ -6438,6 +7776,7 @@ MarkedForDeletion : False Filter + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -6450,6 +7789,7 @@ MarkedForDeletion : False LocalStore + > Applicable: Microsoft Teams Retrieves the configuration from the local replica of the Central Management store rather than from the Central Management store itself. @@ -6461,6 +7801,7 @@ MarkedForDeletion : False Tenant + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Guid @@ -6476,6 +7817,7 @@ MarkedForDeletion : False Filter + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -6488,6 +7830,7 @@ MarkedForDeletion : False Identity + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. XdsIdentity @@ -6500,6 +7843,7 @@ MarkedForDeletion : False LocalStore + > Applicable: Microsoft Teams Retrieves the configuration from the local replica of the Central Management store rather than from the Central Management store itself. SwitchParameter @@ -6512,6 +7856,7 @@ MarkedForDeletion : False Tenant + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Guid @@ -6559,7 +7904,7 @@ MarkedForDeletion : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csonlinedialinconferencingtenantconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinedialinconferencingtenantconfiguration @@ -6581,6 +7926,7 @@ MarkedForDeletion : False Identity + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. XdsIdentity @@ -6593,6 +7939,7 @@ MarkedForDeletion : False Filter + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -6605,6 +7952,7 @@ MarkedForDeletion : False LocalStore + > Applicable: Microsoft Teams Retrieves the settings from the local replica of the Central Management store rather than from the Central Management store itself. @@ -6616,6 +7964,7 @@ MarkedForDeletion : False Tenant + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Guid @@ -6631,6 +7980,7 @@ MarkedForDeletion : False Filter + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -6643,6 +7993,7 @@ MarkedForDeletion : False Identity + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. XdsIdentity @@ -6655,6 +8006,7 @@ MarkedForDeletion : False LocalStore + > Applicable: Microsoft Teams Retrieves the settings from the local replica of the Central Management store rather than from the Central Management store itself. SwitchParameter @@ -6667,6 +8019,7 @@ MarkedForDeletion : False Tenant + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Guid @@ -6714,7 +8067,7 @@ MarkedForDeletion : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csonlinedialinconferencingtenantsettings + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinedialinconferencingtenantsettings @@ -6745,6 +8098,7 @@ MarkedForDeletion : False Identity + > Applicable: Microsoft Teams Specifies the user to retrieve. The user can be specified by using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). You can also reference a user account by using the user's Active Directory distinguished name. UserIdParameter @@ -6757,7 +8111,7 @@ MarkedForDeletion : False BridgeId - This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . Specifies the globally-unique identifier (GUID) for the audio conferencing bridge. Guid @@ -6770,7 +8124,7 @@ MarkedForDeletion : False BridgeName - This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . Specifies the name for the audio conferencing bridge. String @@ -6780,23 +8134,10 @@ MarkedForDeletion : False None - - ServiceNumber - - This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . - Specifies a service number to serve as a filter for the returned user collection. Only users who have been assigned the specified number will be returned. The service number can be specified in the following formats: E.164 number, +<E.164 number> and tel:<E.164 number>. - - String - - String - - - None - DomainController - This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . This parameter is reserved for internal Microsoft use. Fqdn @@ -6809,7 +8150,7 @@ MarkedForDeletion : False Force - This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -6821,7 +8162,7 @@ MarkedForDeletion : False LdapFilter - This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . Enables you to limit the returned data by filtering on generic Active Directory attributes (that is, attributes that are not specific to Skype for Business Server 2015). For example, you can limit returned data to users who work in a specific department, or users who have a specified manager or job title. The LdapFilter parameter uses the LDAP query language when creating filters. For example, a filter that returns only users who work in the city of Redmond would look like this: "l=Redmond", with "l" (a lowercase L) representing the Active Directory attribute (locality); "=" representing the comparison operator (equal to); and "Redmond" representing the filter value. String @@ -6834,6 +8175,7 @@ MarkedForDeletion : False ResultSize + > Applicable: Microsoft Teams Enables you to limit the number of records returned by the cmdlet. For example, to return seven users (regardless of the number of users that are in your forest) include the ResultSize parameter and set the parameter value to 7. Note that there is no way to guarantee which seven users will be returned. The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0 the command will run, but no data will be returned. If you set the ResultSize to 7 but you have only three users in your forest, the command will return those three users, and then complete without error. Int32 @@ -6843,10 +8185,23 @@ MarkedForDeletion : False None + + ServiceNumber + + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + Specifies a service number to serve as a filter for the returned user collection. Only users who have been assigned the specified number will be returned. The service number can be specified in the following formats: E.164 number, +<E.164 number> and tel:<E.164 number>. + + String + + String + + + None + Tenant - This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . NOTE: This parameter is reserved for internal Microsoft use. Specifies the globally unique identifier (GUID) of your Skype for Business Online tenant account. For example: -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308". You can find your tenant ID by running this command: `Get-CsTenant | Select-Object DisplayName, TenantID` @@ -6861,7 +8216,7 @@ MarkedForDeletion : False TenantDomain - This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . This parameter is reserved for internal Microsoft use. Object @@ -6877,7 +8232,7 @@ MarkedForDeletion : False BridgeId - This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . Specifies the globally-unique identifier (GUID) for the audio conferencing bridge. Guid @@ -6890,7 +8245,7 @@ MarkedForDeletion : False BridgeName - This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . Specifies the name for the audio conferencing bridge. String @@ -6900,35 +8255,10 @@ MarkedForDeletion : False None - - Identity - - Specifies the user to retrieve. The user can be specified by using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). You can also reference a user account by using the user's Active Directory distinguished name. - - UserIdParameter - - UserIdParameter - - - None - - - ServiceNumber - - This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . - Specifies a service number to serve as a filter for the returned user collection. Only users who have been assigned the specified number will be returned. The service number can be specified in the following formats: E.164 number, +<E.164 number> and tel:<E.164 number>. - - String - - String - - - None - DomainController - This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . This parameter is reserved for internal Microsoft use. Fqdn @@ -6941,7 +8271,7 @@ MarkedForDeletion : False Force - This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -6951,10 +8281,23 @@ MarkedForDeletion : False False + + Identity + + > Applicable: Microsoft Teams + Specifies the user to retrieve. The user can be specified by using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). You can also reference a user account by using the user's Active Directory distinguished name. + + UserIdParameter + + UserIdParameter + + + None + LdapFilter - This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . Enables you to limit the returned data by filtering on generic Active Directory attributes (that is, attributes that are not specific to Skype for Business Server 2015). For example, you can limit returned data to users who work in a specific department, or users who have a specified manager or job title. The LdapFilter parameter uses the LDAP query language when creating filters. For example, a filter that returns only users who work in the city of Redmond would look like this: "l=Redmond", with "l" (a lowercase L) representing the Active Directory attribute (locality); "=" representing the comparison operator (equal to); and "Redmond" representing the filter value. String @@ -6967,6 +8310,7 @@ MarkedForDeletion : False ResultSize + > Applicable: Microsoft Teams Enables you to limit the number of records returned by the cmdlet. For example, to return seven users (regardless of the number of users that are in your forest) include the ResultSize parameter and set the parameter value to 7. Note that there is no way to guarantee which seven users will be returned. The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0 the command will run, but no data will be returned. If you set the ResultSize to 7 but you have only three users in your forest, the command will return those three users, and then complete without error. Int32 @@ -6976,10 +8320,23 @@ MarkedForDeletion : False None + + ServiceNumber + + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + Specifies a service number to serve as a filter for the returned user collection. Only users who have been assigned the specified number will be returned. The service number can be specified in the following formats: E.164 number, +<E.164 number> and tel:<E.164 number>. + + String + + String + + + None + Tenant - This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . NOTE: This parameter is reserved for internal Microsoft use. Specifies the globally unique identifier (GUID) of your Skype for Business Online tenant account. For example: -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308". You can find your tenant ID by running this command: `Get-CsTenant | Select-Object DisplayName, TenantID` @@ -6994,7 +8351,7 @@ MarkedForDeletion : False TenantDomain - This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . This parameter is reserved for internal Microsoft use. Object @@ -7024,11 +8381,11 @@ MarkedForDeletion : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csonlinedialinconferencinguser + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinedialinconferencinguser Set-CsOnlineDialInConferencingUser - https://learn.microsoft.com/powershell/module/teams/set-csonlinedialinconferencinguser + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinedialinconferencinguser @@ -7149,11 +8506,11 @@ MarkedForDeletion : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csonlinedialoutpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinedialoutpolicy Grant-CsDialoutPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csdialoutpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csdialoutpolicy @@ -7176,6 +8533,7 @@ MarkedForDeletion : False Tenant + > Applicable: Microsoft Teams Specifies the globally unique identifier (GUID) of your Skype for Business Online tenant account. For example: `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"` You can find your tenant ID by running this command: @@ -7191,6 +8549,7 @@ MarkedForDeletion : False Confirm + > Applicable: Microsoft Teams The Confirm switch causes the command to pause processing, and requires confirmation to proceed. @@ -7202,6 +8561,7 @@ MarkedForDeletion : False DomainController + > Applicable: Microsoft Teams Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this parameter are either the fully qualified domain name (FQDN) or the computer name. Fqdn @@ -7214,6 +8574,7 @@ MarkedForDeletion : False Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -7225,6 +8586,7 @@ MarkedForDeletion : False WhatIf + > Applicable: Microsoft Teams The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. @@ -7239,6 +8601,7 @@ MarkedForDeletion : False Confirm + > Applicable: Microsoft Teams The Confirm switch causes the command to pause processing, and requires confirmation to proceed. SwitchParameter @@ -7251,6 +8614,7 @@ MarkedForDeletion : False DomainController + > Applicable: Microsoft Teams Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this parameter are either the fully qualified domain name (FQDN) or the computer name. Fqdn @@ -7263,6 +8627,7 @@ MarkedForDeletion : False Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -7275,6 +8640,7 @@ MarkedForDeletion : False Tenant + > Applicable: Microsoft Teams Specifies the globally unique identifier (GUID) of your Skype for Business Online tenant account. For example: `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"` You can find your tenant ID by running this command: @@ -7290,6 +8656,7 @@ MarkedForDeletion : False WhatIf + > Applicable: Microsoft Teams The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. SwitchParameter @@ -7337,11 +8704,11 @@ MarkedForDeletion : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csonlinedirectorytenant + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinedirectorytenant Get-CsOnlineTelephoneNumber - https://learn.microsoft.com/powershell/module/teams/get-csonlinetelephonenumber + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumber @@ -7363,6 +8730,7 @@ MarkedForDeletion : False CountryOrRegion + > Applicable: Microsoft Teams Specifies the region or country whose terms and conditions you wish to verify. The United States is currently the only country supported, but it must be specified as "US". CountryInfo @@ -7375,6 +8743,7 @@ MarkedForDeletion : False DomainController + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Fqdn @@ -7387,6 +8756,7 @@ MarkedForDeletion : False Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -7398,6 +8768,7 @@ MarkedForDeletion : False Tenant + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Guid @@ -7410,6 +8781,7 @@ MarkedForDeletion : False Version + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -7425,6 +8797,7 @@ MarkedForDeletion : False CountryOrRegion + > Applicable: Microsoft Teams Specifies the region or country whose terms and conditions you wish to verify. The United States is currently the only country supported, but it must be specified as "US". CountryInfo @@ -7437,6 +8810,7 @@ MarkedForDeletion : False DomainController + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Fqdn @@ -7449,6 +8823,7 @@ MarkedForDeletion : False Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -7461,6 +8836,7 @@ MarkedForDeletion : False Tenant + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Guid @@ -7473,6 +8849,7 @@ MarkedForDeletion : False Version + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -7520,11 +8897,11 @@ MarkedForDeletion : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csonlineenhancedemergencyservicedisclaimer + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineenhancedemergencyservicedisclaimer Set-CsOnlineEnhancedEmergencyServiceDisclaimer - https://learn.microsoft.com/powershell/module/teams/set-csonlineenhancedemergencyservicedisclaimer + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineenhancedemergencyservicedisclaimer @@ -7546,7 +8923,7 @@ MarkedForDeletion : False AssignmentStatus - Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. + > Applicable: Microsoft Teams Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. Specifies whether the retrieved addresses have been assigned to users or not. Valid inputs are "Assigned", or "Unassigned". String @@ -7559,6 +8936,7 @@ MarkedForDeletion : False City + > Applicable: Microsoft Teams Specifies the city of the target civic address. String @@ -7571,6 +8949,7 @@ MarkedForDeletion : False CivicAddressId + > Applicable: Microsoft Teams Specifies the identity of the civic address to return. Guid @@ -7583,6 +8962,7 @@ MarkedForDeletion : False CountryOrRegion + > Applicable: Microsoft Teams Specifies the country or region of the target civic address. String @@ -7595,6 +8975,7 @@ MarkedForDeletion : False Description + > Applicable: Microsoft Teams Specifies the administrator defined description of the target civic address. String @@ -7607,6 +8988,7 @@ MarkedForDeletion : False Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -7618,6 +9000,7 @@ MarkedForDeletion : False LocationId + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Guid @@ -7630,6 +9013,7 @@ MarkedForDeletion : False NumberOfResultsToSkip + > Applicable: Microsoft Teams Specifies the number of results to skip. If there are a large number of civic addresses, you can limit the number of results by using the ResultSize parameter. If you limited the first cmdlet execution to 25 results, and want to look at the next 25 locations, then you leave ResultSize at 25 and set NumberOfResultsToSkip to 25 to omit the first 25 you've reviewed. For example the command below will return civic addresses 26-50 for Seattle. `Get-CsOnlineLisCivicAddress -City Seattle -ResultSize 25 -NumberOfResultsToSkip 25` @@ -7643,6 +9027,7 @@ MarkedForDeletion : False PopulateNumberOfTelephoneNumbers + > Applicable: Microsoft Teams If present, the PopulateNumberOfTelephoneNumbers switch causes the cmdlet to provide the number of phone numbers at the returned addresses. @@ -7654,6 +9039,7 @@ MarkedForDeletion : False PopulateNumberOfVoiceUsers + > Applicable: Microsoft Teams If present, the PopulateNumberOfVoiceUsers switch causes the cmdlet to provide the number of voice users at the returned addresses. @@ -7665,6 +9051,7 @@ MarkedForDeletion : False ResultSize + > Applicable: Microsoft Teams Specifies the maximum number of results to return. Int32 @@ -7677,6 +9064,7 @@ MarkedForDeletion : False ValidationStatus + > Applicable: Microsoft Teams Specifies the validation status of the addresses to be returned. Valid inputs are: Valid, Invalid, and Notvalidated. String @@ -7692,7 +9080,7 @@ MarkedForDeletion : False AssignmentStatus - Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. + > Applicable: Microsoft Teams Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. Specifies whether the retrieved addresses have been assigned to users or not. Valid inputs are "Assigned", or "Unassigned". String @@ -7705,6 +9093,7 @@ MarkedForDeletion : False City + > Applicable: Microsoft Teams Specifies the city of the target civic address. String @@ -7717,6 +9106,7 @@ MarkedForDeletion : False CivicAddressId + > Applicable: Microsoft Teams Specifies the identity of the civic address to return. Guid @@ -7729,6 +9119,7 @@ MarkedForDeletion : False CountryOrRegion + > Applicable: Microsoft Teams Specifies the country or region of the target civic address. String @@ -7741,6 +9132,7 @@ MarkedForDeletion : False Description + > Applicable: Microsoft Teams Specifies the administrator defined description of the target civic address. String @@ -7753,6 +9145,7 @@ MarkedForDeletion : False Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -7765,6 +9158,7 @@ MarkedForDeletion : False LocationId + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Guid @@ -7777,6 +9171,7 @@ MarkedForDeletion : False NumberOfResultsToSkip + > Applicable: Microsoft Teams Specifies the number of results to skip. If there are a large number of civic addresses, you can limit the number of results by using the ResultSize parameter. If you limited the first cmdlet execution to 25 results, and want to look at the next 25 locations, then you leave ResultSize at 25 and set NumberOfResultsToSkip to 25 to omit the first 25 you've reviewed. For example the command below will return civic addresses 26-50 for Seattle. `Get-CsOnlineLisCivicAddress -City Seattle -ResultSize 25 -NumberOfResultsToSkip 25` @@ -7790,6 +9185,7 @@ MarkedForDeletion : False PopulateNumberOfTelephoneNumbers + > Applicable: Microsoft Teams If present, the PopulateNumberOfTelephoneNumbers switch causes the cmdlet to provide the number of phone numbers at the returned addresses. SwitchParameter @@ -7802,6 +9198,7 @@ MarkedForDeletion : False PopulateNumberOfVoiceUsers + > Applicable: Microsoft Teams If present, the PopulateNumberOfVoiceUsers switch causes the cmdlet to provide the number of voice users at the returned addresses. SwitchParameter @@ -7814,6 +9211,7 @@ MarkedForDeletion : False ResultSize + > Applicable: Microsoft Teams Specifies the maximum number of results to return. Int32 @@ -7826,6 +9224,7 @@ MarkedForDeletion : False ValidationStatus + > Applicable: Microsoft Teams Specifies the validation status of the addresses to be returned. Valid inputs are: Valid, Invalid, and Notvalidated. String @@ -7862,19 +9261,19 @@ MarkedForDeletion : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csonlineliscivicaddress + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineliscivicaddress Set-CsOnlineLisCivicAddress - https://learn.microsoft.com/powershell/module/teams/set-csonlineliscivicaddress + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineliscivicaddress New-CsOnlineLisCivicAddress - https://learn.microsoft.com/powershell/module/teams/new-csonlineliscivicaddress + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineliscivicaddress Remove-CsOnlineLisCivicAddress - https://learn.microsoft.com/powershell/module/teams/remove-csonlineliscivicaddress + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineliscivicaddress @@ -7893,22 +9292,10 @@ MarkedForDeletion : False Get-CsOnlineLisLocation - - CivicAddressId - - Specifies the identification number of the civic address that is associated with the target locations. - - Guid - - Guid - - - None - AssignmentStatus - Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. + > Applicable: Microsoft Teams Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. Specifies whether the retrieved locations have been assigned to users or not. Valid inputs are "Assigned", or "Unassigned". String @@ -7921,6 +9308,7 @@ MarkedForDeletion : False City + > Applicable: Microsoft Teams Specifies the city of the target location. String @@ -7930,9 +9318,23 @@ MarkedForDeletion : False None + + CivicAddressId + + > Applicable: Microsoft Teams + Specifies the identification number of the civic address that is associated with the target locations. + + Guid + + Guid + + + None + CountryOrRegion + > Applicable: Microsoft Teams Specifies the country or region of the target location. String @@ -7945,6 +9347,7 @@ MarkedForDeletion : False Description + > Applicable: Microsoft Teams Specifies the administrator defined description of the civic address that is associated with the target locations. String @@ -7957,6 +9360,7 @@ MarkedForDeletion : False Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -7968,6 +9372,7 @@ MarkedForDeletion : False NumberOfResultsToSkip + > Applicable: Microsoft Teams Specifies the number of results to skip. If there are a large number of locations, you can limit the number of results by using the ResultSize parameter. If you limited the first cmdlet execution to 25 results, and want to look at the next 25 locations, then you leave ResultSize at 25 and set NumberOfResultsToSkip to 25 to omit the first 25 you've reviewed. For example the command below will return locations 26-50 for Seattle. `Get-CsOnlineLisLocation -City Seattle -ResultSize 25 -NumberOfResultsToSkip 25` @@ -7981,6 +9386,7 @@ MarkedForDeletion : False PopulateNumberOfTelephoneNumbers + > Applicable: Microsoft Teams If present, the PopulateNumberOfTelephoneNumbers switch causes the cmdlet to provide the number of telephone numbers at the returned locations. @@ -7992,6 +9398,7 @@ MarkedForDeletion : False PopulateNumberOfVoiceUsers + > Applicable: Microsoft Teams If present, the PopulateNumberOfVoiceUsers switch causes the cmdlet to provide the number of voice users at the returned locations. @@ -8003,6 +9410,7 @@ MarkedForDeletion : False ResultSize + > Applicable: Microsoft Teams Specifies the maximum number of results to return. Int32 @@ -8015,6 +9423,7 @@ MarkedForDeletion : False ValidationStatus + > Applicable: Microsoft Teams Specifies the validation status of the addresses to be returned. Valid inputs are: Validated, Invalid, and Notvalidated. String @@ -8027,22 +9436,10 @@ MarkedForDeletion : False Get-CsOnlineLisLocation - - Location - - Specifies an administrator defined description of the location to retrieve. For example, "2nd Floor Cafe", "Main Lobby", or "Office 250". - - String - - String - - - None - AssignmentStatus - Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. + > Applicable: Microsoft Teams Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. Specifies whether the retrieved locations have been assigned to users or not. Valid inputs are "Assigned", or "Unassigned". String @@ -8055,6 +9452,7 @@ MarkedForDeletion : False City + > Applicable: Microsoft Teams Specifies the city of the target location. String @@ -8067,6 +9465,7 @@ MarkedForDeletion : False CountryOrRegion + > Applicable: Microsoft Teams Specifies the country or region of the target location. String @@ -8079,6 +9478,7 @@ MarkedForDeletion : False Description + > Applicable: Microsoft Teams Specifies the administrator defined description of the civic address that is associated with the target locations. String @@ -8091,6 +9491,7 @@ MarkedForDeletion : False Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -8099,9 +9500,23 @@ MarkedForDeletion : False False + + Location + + > Applicable: Microsoft Teams + Specifies an administrator defined description of the location to retrieve. For example, "2nd Floor Cafe", "Main Lobby", or "Office 250". + + String + + String + + + None + NumberOfResultsToSkip + > Applicable: Microsoft Teams Specifies the number of results to skip. If there are a large number of locations, you can limit the number of results by using the ResultSize parameter. If you limited the first cmdlet execution to 25 results, and want to look at the next 25 locations, then you leave ResultSize at 25 and set NumberOfResultsToSkip to 25 to omit the first 25 you've reviewed. For example the command below will return locations 26-50 for Seattle. `Get-CsOnlineLisLocation -City Seattle -ResultSize 25 -NumberOfResultsToSkip 25` @@ -8115,6 +9530,7 @@ MarkedForDeletion : False PopulateNumberOfTelephoneNumbers + > Applicable: Microsoft Teams If present, the PopulateNumberOfTelephoneNumbers switch causes the cmdlet to provide the number of telephone numbers at the returned locations. @@ -8126,6 +9542,7 @@ MarkedForDeletion : False PopulateNumberOfVoiceUsers + > Applicable: Microsoft Teams If present, the PopulateNumberOfVoiceUsers switch causes the cmdlet to provide the number of voice users at the returned locations. @@ -8137,6 +9554,7 @@ MarkedForDeletion : False ResultSize + > Applicable: Microsoft Teams Specifies the maximum number of results to return. Int32 @@ -8149,6 +9567,7 @@ MarkedForDeletion : False ValidationStatus + > Applicable: Microsoft Teams Specifies the validation status of the addresses to be returned. Valid inputs are: Validated, Invalid, and Notvalidated. String @@ -8164,7 +9583,7 @@ MarkedForDeletion : False AssignmentStatus - Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. + > Applicable: Microsoft Teams Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. Specifies whether the retrieved locations have been assigned to users or not. Valid inputs are "Assigned", or "Unassigned". String @@ -8177,6 +9596,7 @@ MarkedForDeletion : False City + > Applicable: Microsoft Teams Specifies the city of the target location. String @@ -8189,6 +9609,7 @@ MarkedForDeletion : False CountryOrRegion + > Applicable: Microsoft Teams Specifies the country or region of the target location. String @@ -8201,6 +9622,7 @@ MarkedForDeletion : False Description + > Applicable: Microsoft Teams Specifies the administrator defined description of the civic address that is associated with the target locations. String @@ -8213,6 +9635,7 @@ MarkedForDeletion : False Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -8224,6 +9647,7 @@ MarkedForDeletion : False LocationId + > Applicable: Microsoft Teams Specifies the unique identifier of the target location. Guid @@ -8236,6 +9660,7 @@ MarkedForDeletion : False NumberOfResultsToSkip + > Applicable: Microsoft Teams Specifies the number of results to skip. If there are a large number of locations, you can limit the number of results by using the ResultSize parameter. If you limited the first cmdlet execution to 25 results, and want to look at the next 25 locations, then you leave ResultSize at 25 and set NumberOfResultsToSkip to 25 to omit the first 25 you've reviewed. For example the command below will return locations 26-50 for Seattle. `Get-CsOnlineLisLocation -City Seattle -ResultSize 25 -NumberOfResultsToSkip 25` @@ -8249,6 +9674,7 @@ MarkedForDeletion : False PopulateNumberOfTelephoneNumbers + > Applicable: Microsoft Teams If present, the PopulateNumberOfTelephoneNumbers switch causes the cmdlet to provide the number of telephone numbers at the returned locations. @@ -8260,6 +9686,7 @@ MarkedForDeletion : False PopulateNumberOfVoiceUsers + > Applicable: Microsoft Teams If present, the PopulateNumberOfVoiceUsers switch causes the cmdlet to provide the number of voice users at the returned locations. @@ -8271,6 +9698,7 @@ MarkedForDeletion : False ResultSize + > Applicable: Microsoft Teams Specifies the maximum number of results to return. Int32 @@ -8283,6 +9711,7 @@ MarkedForDeletion : False ValidationStatus + > Applicable: Microsoft Teams Specifies the validation status of the addresses to be returned. Valid inputs are: Validated, Invalid, and Notvalidated. String @@ -8295,22 +9724,11 @@ MarkedForDeletion : False - - CivicAddressId - - Specifies the identification number of the civic address that is associated with the target locations. - - Guid - - Guid - - - None - - - Location + + AssignmentStatus - Specifies an administrator defined description of the location to retrieve. For example, "2nd Floor Cafe", "Main Lobby", or "Office 250". + > Applicable: Microsoft Teams Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. + Specifies whether the retrieved locations have been assigned to users or not. Valid inputs are "Assigned", or "Unassigned". String @@ -8319,11 +9737,11 @@ MarkedForDeletion : False None - - AssignmentStatus + + City - Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. - Specifies whether the retrieved locations have been assigned to users or not. Valid inputs are "Assigned", or "Unassigned". + > Applicable: Microsoft Teams + Specifies the city of the target location. String @@ -8332,14 +9750,15 @@ MarkedForDeletion : False None - - City + + CivicAddressId - Specifies the city of the target location. + > Applicable: Microsoft Teams + Specifies the identification number of the civic address that is associated with the target locations. - String + Guid - String + Guid None @@ -8347,6 +9766,7 @@ MarkedForDeletion : False CountryOrRegion + > Applicable: Microsoft Teams Specifies the country or region of the target location. String @@ -8359,6 +9779,7 @@ MarkedForDeletion : False Description + > Applicable: Microsoft Teams Specifies the administrator defined description of the civic address that is associated with the target locations. String @@ -8371,6 +9792,7 @@ MarkedForDeletion : False Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -8380,9 +9802,23 @@ MarkedForDeletion : False False + + Location + + > Applicable: Microsoft Teams + Specifies an administrator defined description of the location to retrieve. For example, "2nd Floor Cafe", "Main Lobby", or "Office 250". + + String + + String + + + None + LocationId + > Applicable: Microsoft Teams Specifies the unique identifier of the target location. Guid @@ -8395,6 +9831,7 @@ MarkedForDeletion : False NumberOfResultsToSkip + > Applicable: Microsoft Teams Specifies the number of results to skip. If there are a large number of locations, you can limit the number of results by using the ResultSize parameter. If you limited the first cmdlet execution to 25 results, and want to look at the next 25 locations, then you leave ResultSize at 25 and set NumberOfResultsToSkip to 25 to omit the first 25 you've reviewed. For example the command below will return locations 26-50 for Seattle. `Get-CsOnlineLisLocation -City Seattle -ResultSize 25 -NumberOfResultsToSkip 25` @@ -8408,6 +9845,7 @@ MarkedForDeletion : False PopulateNumberOfTelephoneNumbers + > Applicable: Microsoft Teams If present, the PopulateNumberOfTelephoneNumbers switch causes the cmdlet to provide the number of telephone numbers at the returned locations. SwitchParameter @@ -8420,6 +9858,7 @@ MarkedForDeletion : False PopulateNumberOfVoiceUsers + > Applicable: Microsoft Teams If present, the PopulateNumberOfVoiceUsers switch causes the cmdlet to provide the number of voice users at the returned locations. SwitchParameter @@ -8432,6 +9871,7 @@ MarkedForDeletion : False ResultSize + > Applicable: Microsoft Teams Specifies the maximum number of results to return. Int32 @@ -8444,6 +9884,7 @@ MarkedForDeletion : False ValidationStatus + > Applicable: Microsoft Teams Specifies the validation status of the addresses to be returned. Valid inputs are: Validated, Invalid, and Notvalidated. String @@ -8467,10 +9908,10 @@ MarkedForDeletion : False - Returns an instance, or instances of emergency location objects. + PSObject - + Returns an instance, or instances of emergency location objects. @@ -8512,19 +9953,19 @@ MarkedForDeletion : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csonlinelislocation + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelislocation Set-CsOnlineLisLocation - https://learn.microsoft.com/powershell/module/teams/set-csonlinelislocation + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinelislocation New-CsOnlineLisLocation - https://learn.microsoft.com/powershell/module/teams/new-csonlinelislocation + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinelislocation Remove-CsOnlineLisLocation - https://learn.microsoft.com/powershell/module/teams/remove-csonlinelislocation + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinelislocation @@ -8534,10 +9975,11 @@ MarkedForDeletion : False Get CsOnlineLisPort - Retrieves one or more ports from the location configuration database. Each port can be associated with a location, in which case this cmdlet will also retrieve the location information of the ports. This location association is used in an Enhanced 9-1-1 (E9-1-1) Enterprise Voice implementation to notify an emergency services operator of the caller's location. + Retrieves one or more ports from the location configuration database. + Each port can be associated with a location, in which case this cmdlet will also retrieve the location information of the ports. This location association is used in an Enhanced 9-1-1 (E9-1-1) Enterprise Voice implementation to notify an emergency services operator of the caller's location. Enhanced 9-1-1 allows an emergency operator to identify the location of a caller without having to ask the caller for that information. In the case where a caller is calling from a Voice over Internet Protocol (VoIP) connection, that information must be extracted based on various connection factors. The VoIP administrator must configure a location map (called a wiremap) that will determine a caller's location. This cmdlet retrieves information on associations between physical locations and the port through which the client is connected. @@ -8546,6 +9988,7 @@ MarkedForDeletion : False ChassisID + > Applicable: Microsoft Teams The Media Access Control (MAC) address of the port's switch. This value will be in the form nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. String @@ -8558,6 +10001,7 @@ MarkedForDeletion : False Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -8569,6 +10013,7 @@ MarkedForDeletion : False IsDebug + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Boolean @@ -8581,6 +10026,7 @@ MarkedForDeletion : False NCSApiUrl + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -8593,6 +10039,7 @@ MarkedForDeletion : False PortID + > Applicable: Microsoft Teams This parameter identifies the ID of the port. String @@ -8605,6 +10052,7 @@ MarkedForDeletion : False TargetStore + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -8620,6 +10068,7 @@ MarkedForDeletion : False ChassisID + > Applicable: Microsoft Teams The Media Access Control (MAC) address of the port's switch. This value will be in the form nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. String @@ -8632,6 +10081,7 @@ MarkedForDeletion : False Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -8644,6 +10094,7 @@ MarkedForDeletion : False IsDebug + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Boolean @@ -8656,6 +10107,7 @@ MarkedForDeletion : False NCSApiUrl + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -8668,6 +10120,7 @@ MarkedForDeletion : False PortID + > Applicable: Microsoft Teams This parameter identifies the ID of the port. String @@ -8680,6 +10133,7 @@ MarkedForDeletion : False TargetStore + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -8751,15 +10205,15 @@ G1/0/30 B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csonlinelisport + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelisport Set-CsOnlineLisPort - https://learn.microsoft.com/powershell/module/teams/set-csonlinelisport + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinelisport Remove-CsOnlineLisPort - https://learn.microsoft.com/powershell/module/teams/remove-csonlinelisport + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinelisport @@ -8769,10 +10223,11 @@ G1/0/30 B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a Get CsOnlineLisSubnet - Retrieves one or more subnets from the location configuration database. Each subnet can be associated with a location, in which case this cmdlet will also retrieve the location information of the subnets. This location association is used in an Enhanced 9-1-1 (E9-1-1) Enterprise Voice implementation to notify an emergency services operator of the caller's location. + Retrieves one or more subnets from the location configuration database. + Each subnet can be associated with a location, in which case this cmdlet will also retrieve the location information of the subnets. This location association is used in an Enhanced 9-1-1 (E9-1-1) Enterprise Voice implementation to notify an emergency services operator of the caller's location. Enhanced 9-1-1 allows an emergency operator to identify the location of a caller without having to ask the caller for that information. In the case where a caller is calling from a Voice over Internet Protocol (VoIP) connection, that information must be extracted based on various connection factors. The VoIP administrator must configure a location map (called a wiremap) that will determine a caller's location. This cmdlet retrieves information on associations between physical locations and the subnet through which calls are routed. The location ID which is associating with the subnet is not required to be the existing location. @@ -8782,6 +10237,7 @@ G1/0/30 B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a TenantId + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Guid @@ -8794,6 +10250,7 @@ G1/0/30 B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a Subnet + > Applicable: Microsoft Teams The IP address of the subnet. This value can be either IPv4 or IPv6 format. String @@ -8806,6 +10263,7 @@ G1/0/30 B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -8817,6 +10275,7 @@ G1/0/30 B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a IsDebug + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Boolean @@ -8829,6 +10288,7 @@ G1/0/30 B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a NCSApiUrl + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -8841,6 +10301,7 @@ G1/0/30 B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a TargetStore + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -8856,6 +10317,7 @@ G1/0/30 B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -8868,6 +10330,7 @@ G1/0/30 B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a IsDebug + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Boolean @@ -8880,6 +10343,7 @@ G1/0/30 B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a NCSApiUrl + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -8892,6 +10356,7 @@ G1/0/30 B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a Subnet + > Applicable: Microsoft Teams The IP address of the subnet. This value can be either IPv4 or IPv6 format. String @@ -8904,6 +10369,7 @@ G1/0/30 B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a TargetStore + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -8916,6 +10382,7 @@ G1/0/30 B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a TenantId + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Guid @@ -8985,7 +10452,7 @@ G1/0/30 B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csonlinelissubnet + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelissubnet @@ -8995,10 +10462,11 @@ G1/0/30 B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a Get CsOnlineLisSwitch - Retrieves one or more network switches from the location configuration database. Each switch can be associated with a location, in which case this cmdlet will also retrieve the location information of the switches. This location association is used in an Enhanced 9-1-1 (E9-1-1) Enterprise Voice implementation to notify an emergency services operator of the caller's location. + Retrieves one or more network switches from the location configuration database. + Each switch can be associated with a location, in which case this cmdlet will also retrieve the location information of the switches. This location association is used in an Enhanced 9-1-1 (E9-1-1) Enterprise Voice implementation to notify an emergency services operator of the caller's location. Enhanced 9-1-1 allows an emergency operator to identify the location of a caller without having to ask the caller for that information. In the case where a caller is calling from a Voice over Internet Protocol (VoIP) connection, that information must be extracted based on various connection factors. The VoIP administrator must configure a location map (called a wiremap) that will determine a caller's location. This cmdlet retrieves information on associations between physical locations and the network switch through which the client is connected. @@ -9007,6 +10475,7 @@ G1/0/30 B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a ChassisID + > Applicable: Microsoft Teams The Media Access Control (MAC) address of the port's switch. This value will be in the form nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. String @@ -9019,6 +10488,7 @@ G1/0/30 B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -9030,6 +10500,7 @@ G1/0/30 B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a IsDebug + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Boolean @@ -9042,6 +10513,7 @@ G1/0/30 B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a NCSApiUrl + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -9054,6 +10526,7 @@ G1/0/30 B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a TargetStore + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -9069,6 +10542,7 @@ G1/0/30 B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a ChassisID + > Applicable: Microsoft Teams The Media Access Control (MAC) address of the port's switch. This value will be in the form nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. String @@ -9081,6 +10555,7 @@ G1/0/30 B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -9093,6 +10568,7 @@ G1/0/30 B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a IsDebug + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Boolean @@ -9105,6 +10581,7 @@ G1/0/30 B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a NCSApiUrl + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -9117,6 +10594,7 @@ G1/0/30 B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a TargetStore + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -9188,15 +10666,15 @@ B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a DKSwitch1 Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csonlinelisswitch + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelisswitch Set-CsOnlineLisSwitch - https://learn.microsoft.com/powershell/module/teams/set-csonlinelisswitch + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinelisswitch Remove-CsOnlineLisSwitch - https://learn.microsoft.com/powershell/module/teams/remove-csonlinelisswitch + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinelisswitch @@ -9206,10 +10684,11 @@ B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a DKSwitch1 Get CsOnlineLisWirelessAccessPoint - Retrieves one or more wireless access points (WAPs) from the location configuration database. Each WAP can be associated with a location, in which case this cmdlet will also retrieve the location information of the WAPs. This location association is used in an Enhanced 9-1-1 (E9-1-1) Enterprise Voice implementation to notify an emergency services operator of the caller's location. + Retrieves one or more wireless access points (WAPs) from the location configuration database. + Each WAP can be associated with a location, in which case this cmdlet will also retrieve the location information of the WAPs. This location association is used in an Enhanced 9-1-1 (E9-1-1) Enterprise Voice implementation to notify an emergency services operator of the caller's location. Enhanced 9-1-1 allows an emergency operator to identify the location of a caller without having to ask the caller for that information. In the case where a caller is calling from a Voice over Internet Protocol (VoIP) connection, that information must be extracted based on various connection factors. The VoIP administrator must configure a location map (called a wiremap) that will determine a caller's location. This cmdlet retrieves information on associations between physical locations and the WAP through which the client is connected. The BSSID (Basic Service Set Identifiers) is used to describe sections of a wireless local area network. It is the MAC of the 802.11 side of the access point. The BSSID parameter in this command also supports the wildcard format to cover all BSSIDs in the range which are sharing the same description and Location ID. The wildcard '*' can be on either the last one or two character(s). If a BSSID with a wildcard format is already exists, a location request with a WAP which is within this wildcard range will return the access point that is configured with the wildcard format. @@ -9220,6 +10699,7 @@ B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a DKSwitch1 BSSID + > Applicable: Microsoft Teams The Basic Service Set Identifier (BSSID) of the wireless access point. This value must be in the form nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. It can be presented in wildcard format. The wildcard '*' can be on either the last one or two character(s). String @@ -9232,6 +10712,7 @@ B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a DKSwitch1 Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -9243,6 +10724,7 @@ B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a DKSwitch1 IsDebug + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Boolean @@ -9255,6 +10737,7 @@ B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a DKSwitch1 NCSApiUrl + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -9267,6 +10750,7 @@ B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a DKSwitch1 TargetStore + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -9282,6 +10766,7 @@ B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a DKSwitch1 BSSID + > Applicable: Microsoft Teams The Basic Service Set Identifier (BSSID) of the wireless access point. This value must be in the form nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. It can be presented in wildcard format. The wildcard '*' can be on either the last one or two character(s). String @@ -9294,6 +10779,7 @@ B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a DKSwitch1 Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -9306,6 +10792,7 @@ B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a DKSwitch1 IsDebug + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Boolean @@ -9318,6 +10805,7 @@ B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a DKSwitch1 NCSApiUrl + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -9330,6 +10818,7 @@ B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a DKSwitch1 TargetStore + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -9416,15 +10905,15 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csonlineliswirelessaccesspoint + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineliswirelessaccesspoint Set-CsOnlineLisWirelessAccessPoint - https://learn.microsoft.com/powershell/module/teams/set-csonlineliswirelessaccesspoint + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineliswirelessaccesspoint Remove-CsOnlineLisWirelessAccessPoint - https://learn.microsoft.com/powershell/module/teams/remove-csonlineliswirelessaccesspoint + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineliswirelessaccesspoint @@ -9446,7 +10935,8 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs Filter - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} String @@ -9461,6 +10951,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs Identity + > Applicable: Microsoft Teams The parameter is optional for the cmdlet. If not set all SBCs paired to the tenant are listed. String @@ -9476,7 +10967,8 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs Filter - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} String @@ -9488,6 +10980,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs Identity + > Applicable: Microsoft Teams The parameter is optional for the cmdlet. If not set all SBCs paired to the tenant are listed. String @@ -9542,19 +11035,19 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csonlinepstngateway + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinepstngateway Set-CsOnlinePSTNGateway - https://learn.microsoft.com/powershell/module/teams/set-csonlinepstngateway + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinepstngateway New-CsOnlinePSTNGateway - https://learn.microsoft.com/powershell/module/teams/new-csonlinepstngateway + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinepstngateway Remove-CsOnlinePSTNGateway - https://learn.microsoft.com/powershell/module/teams/remove-csonlinepstngateway + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinepstngateway @@ -9666,11 +11159,11 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csonlinepstnusage + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinepstnusage Set-CsOnlinePstnUsage - https://learn.microsoft.com/powershell/module/teams/set-csonlinepstnusage + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinepstnusage @@ -9692,6 +11185,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs Id + > Applicable: Microsoft Teams The Id for the schedule to be retrieved. If this parameter is not specified, then all schedules in the organization are returned. System.String @@ -9707,6 +11201,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs Id + > Applicable: Microsoft Teams The Id for the schedule to be retrieved. If this parameter is not specified, then all schedules in the organization are returned. System.String @@ -9761,19 +11256,19 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csonlineschedule + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineschedule New-CsOnlineTimeRange - https://learn.microsoft.com/powershell/module/teams/new-csonlinetimerange + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetimerange New-CsOnlineDateTimeRange - https://learn.microsoft.com/powershell/module/teams/new-csonlinedatetimerange + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinedatetimerange New-CsAutoAttendantCallFlow - https://learn.microsoft.com/powershell/module/teams/new-csautoattendantcallflow + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallflow @@ -9795,6 +11290,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs Domain + > Applicable: Microsoft Teams A specific domain to get the status of. String @@ -9807,6 +11303,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs DomainStatus + > Applicable: Microsoft Teams This indicates the status of an online sip domain, which can be either enabled or disabled. @@ -9827,6 +11324,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs Domain + > Applicable: Microsoft Teams A specific domain to get the status of. String @@ -9839,6 +11337,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs DomainStatus + > Applicable: Microsoft Teams This indicates the status of an online sip domain, which can be either enabled or disabled. DomainStatus @@ -9893,15 +11392,15 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csonlinesipdomain + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinesipdomain Disable-CsOnlineSipDomain - https://learn.microsoft.com/powershell/module/teams/disable-csonlinesipdomain + https://learn.microsoft.com/powershell/module/microsoftteams/disable-csonlinesipdomain Enable-CsOnlineSipDomain - https://learn.microsoft.com/powershell/module/teams/enable-csonlinesipdomain + https://learn.microsoft.com/powershell/module/microsoftteams/enable-csonlinesipdomain Cloud consolidation for Teams and Skype for Business @@ -9915,10 +11414,12 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs Get CsOnlineTelephoneNumber - Use the `Get-CsOnlineTelephoneNumber` to retrieve telephone numbers from the Business Voice Directory. Note : This cmdlet has been deprecated. Use the new Get-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/teams/get-csphonenumberassignment) cmdlet instead. For Microsoft 365 GCC High and DoD cloud instances use the new [Get-CshybridTelephoneNumber](https://learn.microsoft.com/powershell/module/teams/get-cshybridtelephonenumber)cmdlet instead. + Use the `Get-CsOnlineTelephoneNumber` to retrieve telephone numbers from the Business Voice Directory. + Note : This cmdlet has been deprecated. Use the new Get-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/get-csphonenumberassignment) cmdlet instead. For Microsoft 365 GCC High and DoD cloud instances use the new [Get-CshybridTelephoneNumber](https://learn.microsoft.com/powershell/module/microsoftteams/get-cshybridtelephonenumber)cmdlet instead. + Use the `Get-CsOnlineTelephoneNumber` to retrieve telephone numbers from the Business Voice Directory. Note: By default the result size is limited to 500 items, specify a higher result size using ResultSize parameter. @@ -9927,6 +11428,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs ActivationState + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -9939,6 +11441,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs Assigned + > Applicable: Microsoft Teams Specifies the function of the telephone number. The acceptable values are: * "caa" for numbers assigned to conferencing functions. * "user" for numbers assigned to public switched telephone network (PSTN) functions. @@ -9954,6 +11457,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs CapitalOrMajorCity + > Applicable: Microsoft Teams Specifies the city by a concatenated string in the form: region-country-area-city. For example, "NOAM-US-OR-PO" would specify Portland, Oregon. The values for the CapitalOrMajorCity parameter are case-sensitive. @@ -9967,6 +11471,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs DomainController + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Fqdn @@ -9979,6 +11484,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs ExpandLocation + > Applicable: Microsoft Teams Displays the location parameter with its value. @@ -9990,6 +11496,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -10001,6 +11508,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs InventoryType + > Applicable: Microsoft Teams Specifies the target telephone number type for the cmdlet. Acceptable values are: * "Service" for numbers assigned to conferencing support, call queue or auto attendant. * "Subscriber" for numbers supporting public switched telephone network (PSTN) functions. @@ -10016,6 +11524,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs IsNotAssigned + > Applicable: Microsoft Teams Specifying this switch parameter will return only telephone numbers which are not assigned. @@ -10027,6 +11536,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs ResultSize + > Applicable: Microsoft Teams Specifies the number of records returned by the cmdlet. The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0, the command will run, but no data will be returned. UInt32 @@ -10039,6 +11549,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs TelephoneNumber + > Applicable: Microsoft Teams Specifies the target telephone number. For example: `-TelephoneNumber tel:+18005551234, or -TelephoneNumber +14251234567` @@ -10052,6 +11563,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs TelephoneNumberGreaterThan + > Applicable: Microsoft Teams Specifies a telephone number used by the cmdlet as the lower boundary of the telephone numbers returned. The telephone numbers returned will all be greater than the number provided. The telephone number should be in E.164 format. String @@ -10064,6 +11576,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs TelephoneNumberLessThan + > Applicable: Microsoft Teams Specifies a telephone number used by the cmdlet as the upper boundary of the telephone numbers returned. The telephone numbers returned will all be less than the number provided. The telephone number should be in E.164 format. String @@ -10076,6 +11589,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs TelephoneNumberStartsWith + > Applicable: Microsoft Teams Specifies the digits that the returned telephone numbers must begin with. To return numbers in the North American Numbering Plan 425 area code, use this syntax: -TelephoneNumberStartsWith 1425. To return numbers that are in the 206 area code and that begin with 88, use this syntax: -TelephoneNumberStartsWith 120688. You can use up to nine digits. String @@ -10088,6 +11602,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs Tenant + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Guid @@ -10103,6 +11618,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs ActivationState + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -10115,6 +11631,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs Assigned + > Applicable: Microsoft Teams Specifies the function of the telephone number. The acceptable values are: * "caa" for numbers assigned to conferencing functions. * "user" for numbers assigned to public switched telephone network (PSTN) functions. @@ -10130,6 +11647,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs CapitalOrMajorCity + > Applicable: Microsoft Teams Specifies the city by a concatenated string in the form: region-country-area-city. For example, "NOAM-US-OR-PO" would specify Portland, Oregon. The values for the CapitalOrMajorCity parameter are case-sensitive. @@ -10143,6 +11661,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs DomainController + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Fqdn @@ -10155,6 +11674,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs ExpandLocation + > Applicable: Microsoft Teams Displays the location parameter with its value. SwitchParameter @@ -10167,6 +11687,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -10179,6 +11700,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs InventoryType + > Applicable: Microsoft Teams Specifies the target telephone number type for the cmdlet. Acceptable values are: * "Service" for numbers assigned to conferencing support, call queue or auto attendant. * "Subscriber" for numbers supporting public switched telephone network (PSTN) functions. @@ -10194,6 +11716,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs IsNotAssigned + > Applicable: Microsoft Teams Specifying this switch parameter will return only telephone numbers which are not assigned. SwitchParameter @@ -10206,6 +11729,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs ResultSize + > Applicable: Microsoft Teams Specifies the number of records returned by the cmdlet. The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0, the command will run, but no data will be returned. UInt32 @@ -10218,6 +11742,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs TelephoneNumber + > Applicable: Microsoft Teams Specifies the target telephone number. For example: `-TelephoneNumber tel:+18005551234, or -TelephoneNumber +14251234567` @@ -10231,6 +11756,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs TelephoneNumberGreaterThan + > Applicable: Microsoft Teams Specifies a telephone number used by the cmdlet as the lower boundary of the telephone numbers returned. The telephone numbers returned will all be greater than the number provided. The telephone number should be in E.164 format. String @@ -10243,6 +11769,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs TelephoneNumberLessThan + > Applicable: Microsoft Teams Specifies a telephone number used by the cmdlet as the upper boundary of the telephone numbers returned. The telephone numbers returned will all be less than the number provided. The telephone number should be in E.164 format. String @@ -10255,6 +11782,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs TelephoneNumberStartsWith + > Applicable: Microsoft Teams Specifies the digits that the returned telephone numbers must begin with. To return numbers in the North American Numbering Plan 425 area code, use this syntax: -TelephoneNumberStartsWith 1425. To return numbers that are in the 206 area code and that begin with 88, use this syntax: -TelephoneNumberStartsWith 120688. You can use up to nine digits. String @@ -10267,6 +11795,7 @@ F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs Tenant + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Guid @@ -10355,11 +11884,11 @@ PortInOrderStatus : Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csonlinetelephonenumber + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumber Remove-CsOnlineTelephoneNumber - https://learn.microsoft.com/powershell/module/teams/remove-csonlinetelephonenumber + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinetelephonenumber @@ -10369,7 +11898,7 @@ PortInOrderStatus : Get CsOnlineTelephoneNumberCountry - Use the `Get-CsOnlineTelephoneNumberCountry` cmdlet to get the list of supported countries or regions to search and acquire new telephone numbers. The telephone numbers can then be used to set up calling features for users and services in your organization. + Use the `Get-CsOnlineTelephoneNumberCountry` cmdlet to get the list of supported countries or regions to search and acquire new telephone numbers. @@ -10413,27 +11942,27 @@ Vietnam VN Get-CsOnlineTelephoneNumberCountry - https://learn.microsoft.com/powershell/module/teams/get-csonlinetelephonenumbercountry + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbercountry Get-CsOnlineTelephoneNumberType - https://learn.microsoft.com/powershell/module/teams/get-csonlinetelephonenumbercountry + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbercountry New-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/teams/new-csonlinetelephonenumberorder + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetelephonenumberorder Get-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/teams/new-csonlinetelephonenumberorder + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetelephonenumberorder Complete-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/teams/new-csonlinetelephonenumberorder + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetelephonenumberorder Clear-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/teams/new-csonlinetelephonenumberorder + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetelephonenumberorder @@ -10447,7 +11976,7 @@ Vietnam VN - This `Get-CsOnlineTelephoneNumberOrder` cmdlet can be used to get the status of specific telephone number orders. Currently supported orders for retrievals are: Search New-CsOnlineTelephoneNumberOrder (https://learn.microsoft.com/powershell/module/teams/new-csonlinetelephonenumberorder), Direct Routing Number Upload [New-CsOnlineDirectRoutingTelephoneNumberUploadOrder](https://learn.microsoft.com/powershell/module/teams/new-csonlinedirectroutingtelephonenumberuploadorder), and Direct Routing Number Release [New-CsOnlineTelephoneNumberReleaseOrder](https://learn.microsoft.com/powershell/module/teams/New-csonlinetelephonenumberreleaseorder). When the OrderType is not indicated, the cmdlet will default to a Search order. + This `Get-CsOnlineTelephoneNumberOrder` cmdlet can be used to get the status of specific telephone number orders. Currently supported orders for retrievals are: Search New-CsOnlineTelephoneNumberOrder (https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetelephonenumberorder), Direct Routing Number Upload [New-CsOnlineDirectRoutingTelephoneNumberUploadOrder](https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinedirectroutingtelephonenumberuploadorder), and Direct Routing Number Release [New-CsOnlineTelephoneNumberReleaseOrder](https://learn.microsoft.com/powershell/module/microsoftteams/New-csonlinetelephonenumberreleaseorder). When the OrderType is not indicated, the cmdlet will default to a Search order. @@ -10508,7 +12037,7 @@ Vietnam VN - Updates in Teams PowerShell Module version 6.7.1 and later: - A new optional parameter `OrderType` is introduced. If no OrderType is provided, it will default to a Search order. + Updates in Teams PowerShell Module version 6.7.1 and later: - A new optional parameter `OrderType` is introduced. If no OrderType is provided, it will default to a Search order. - [BREAKING CHANGE] When a Search order is queried, the property name `TelephoneNumber` in the output will be changed to `TelephoneNumbers`. The structure of the `TelephoneNumbers` output will remain unchanged. - Impact: Scripts and processes that reference the `TelephoneNumber` property will need to be updated to use `TelephoneNumbers`. @@ -10538,9 +12067,9 @@ ErrorCode NoError InventoryType Subscriber SendToServiceDesk False CountryCode CA - + PS C:\> $order.TelephoneNumbers - + Key Value --- ----- Location Vancouver @@ -10564,13 +12093,13 @@ CreatedBy ContosoAdmin Description Prefix Search Test NumberType UserSubscriber SearchType Prefix -AreaCode -PostalOrZipCode +AreaCode +PostalOrZipCode Quantity 1 Status Error IsManual False TelephoneNumbers {} -ReservationExpiryDate +ReservationExpiryDate ErrorCode OutOfStock InventoryType Subscriber SendToServiceDesk False @@ -10649,39 +12178,39 @@ SuccessPhoneNumbers {+99999980} Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csonlinetelephonenumberorder + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumberorder Get-CsOnlineTelephoneNumberCountry - https://learn.microsoft.com/powershell/module/teams/get-csonlinetelephonenumbercountry + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbercountry Get-CsOnlineTelephoneNumberType - https://learn.microsoft.com/powershell/module/teams/get-csonlinetelephonenumbertype + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbertype New-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/teams/new-csonlinetelephonenumberorder + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetelephonenumberorder Get-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/teams/get-csonlinetelephonenumberorder + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumberorder Complete-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/teams/complete-csonlinetelephonenumberorder + https://learn.microsoft.com/powershell/module/microsoftteams/complete-csonlinetelephonenumberorder Clear-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/teams/clear-csonlinetelephonenumberorder + https://learn.microsoft.com/powershell/module/microsoftteams/clear-csonlinetelephonenumberorder New-CsOnlineDirectRoutingTelephoneNumberUploadOrder - https://learn.microsoft.com/powershell/module/teams/new-csonlinedirectroutingtelephonenumberuploadorder + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinedirectroutingtelephonenumberuploadorder New-CsOnlineTelephoneNumberReleaseOrder - https://learn.microsoft.com/powershell/module/teams/New-csonlinetelephonenumberreleaseorder + https://learn.microsoft.com/powershell/module/microsoftteams/New-csonlinetelephonenumberreleaseorder @@ -10691,7 +12220,7 @@ SuccessPhoneNumbers {+99999980} Get CsOnlineTelephoneNumberType - Use the `Get-CsOnlineTelephoneNumberType` cmdlet to get the list of supported telephone number offerings in a given country or region. The telephone numbers can then be used to set up calling features for users and services in your organization. + Use the `Get-CsOnlineTelephoneNumberType` cmdlet to get the list of supported telephone number offerings in a given country or region. @@ -10783,31 +12312,31 @@ AutoAttendantTollFree Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csonlinetelephonenumbertype + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbertype Get-CsOnlineTelephoneNumberCountry - https://learn.microsoft.com/powershell/module/teams/get-csonlinetelephonenumbercountry + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbercountry Get-CsOnlineTelephoneNumberType - https://learn.microsoft.com/powershell/module/teams/get-csonlinetelephonenumbertype + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbertype New-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/teams/new-csonlinetelephonenumberorder + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetelephonenumberorder Get-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/teams/get-csonlinetelephonenumberorder + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumberorder Complete-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/teams/complete-csonlinetelephonenumberorder + https://learn.microsoft.com/powershell/module/microsoftteams/complete-csonlinetelephonenumberorder Clear-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/teams/clear-csonlinetelephonenumberorder + https://learn.microsoft.com/powershell/module/microsoftteams/clear-csonlinetelephonenumberorder @@ -10838,6 +12367,7 @@ AutoAttendantTollFree AccountType + > Applicable: Microsoft Teams This parameter is added to Get-CsOnlineUser starting from TPM 4.5.1 to indicate the user type. The possible values for the AccountType parameter are: - `User` - to query for user accounts. - `ResourceAccount` - to query for app endpoints or resource accounts. @@ -10855,6 +12385,7 @@ AutoAttendantTollFree Identity + > Applicable: Microsoft Teams Indicates the Identity of the user account to be retrieved. For TeamsOnly customers using the Teams PowerShell Module version 3.0.0 or later, you use the following values to identify the account: - GUID @@ -10879,6 +12410,7 @@ AutoAttendantTollFree Filter + > Applicable: Microsoft Teams Enables you to limit the returned data by filtering on specific attributes. For example, you can limit returned data to users who have been assigned a specific voice policy, or users who have not been assigned a specific voice policy. The Filter parameter uses the same filtering syntax as the Where-Object cmdlet. For example, the following filter returns only users who have been enabled for Enterprise Voice: `-Filter 'EnterpriseVoiceEnabled -eq $True'` or ``-Filter "EnterpriseVoiceEnabled -eq `$True"``. Examples: - Get-CsOnlineUser -Filter {AssignedPlan -like " MCO "} - Get-CsOnlineUser -Filter {UserPrincipalName -like "test " -and (AssignedPlans -eq "MCOEV" -or AssignedPlans -like "MCOPSTN ")} - Get-CsOnlineUser -Filter {OnPremHostingProvider -ne $null} @@ -10894,8 +12426,9 @@ AutoAttendantTollFree Properties - Allows you to specify the properties you want to include in the output. Provide the properties as a comma-separated list. Identity, UserPrincipalName, Alias, AccountEnabled and DisplayName attributes will always be present in the output. Please note that only attributes available in the output of the Get-CsOnlineUser cmdlet can be selected. For a complete list of available attributes, refer to the response of the Get-CsOnlineUser cmdlet. - Examples: - Get-CsOnlineUser -Properties DisplayName, UserPrincipalName, FeatureTypes + > Applicable: Microsoft Teams + Allows you to specify the properties you want to include in the output. Provide the properties as a comma-separated list. Identity, UserPrincipalName, Alias, AccountEnabled and DisplayName attributes will always be present in the output. Please note that only attributes available in the output of the Get-CsOnlineUser cmdlet can be selected. For a complete list of available attributes, refer to the response of the Get-CsOnlineUser cmdlet. + Examples: - Get-CsOnlineUser -Properties DisplayName, UserPrincipalName, FeatureTypes - Get-CsOnlineUser -Properties DisplayName, Alias, LineURI String @@ -10908,7 +12441,7 @@ AutoAttendantTollFree ResultSize - Note : Starting with Teams PowerShell Modules version 4.0 and later, "-ResultSize" type has been changed to uint32. + > Applicable: Microsoft Teams Note : Starting with Teams PowerShell Modules version 4.0 and later, "-ResultSize" type has been changed to uint32. Enables you to limit the number of records returned by the cmdlet. For example, to return seven users (regardless of the number of users that are in your forest) include the ResultSize parameter and set the parameter value to 7. Note that there is no way to guarantee which seven users will be returned. The result size can be set to any whole number between 0 and 2147483647, inclusive. The value 0 returns no data. If you set the ResultSize to 7 but you have only three users in your forest, the command will return those three users, and then complete without error. @@ -10922,6 +12455,7 @@ AutoAttendantTollFree SkipUserPolicies + > Applicable: Microsoft Teams PARAMVALUE: SwitchParameter @@ -10933,6 +12467,7 @@ AutoAttendantTollFree SoftDeletedUser + > Applicable: Microsoft Teams This parameter enables you to return a collection of all the users who are deleted and can be restored within 30 days from their deletion time @@ -10944,6 +12479,7 @@ AutoAttendantTollFree Sort + > Applicable: Microsoft Teams Sorting is now enabled in Teams PowerShell Module by using the "-Sort" or "-OrderBy" parameters. For example: - Get-CsOnlineUser -Filter {LineURI -like 123 } -OrderBy "DisplayName asc" - Get-CsOnlineUser -Filter {DisplayName -like '*abc'} -OrderBy {DisplayName desc} Note : Sorting on few attributes like LineURI can be case-sensitive. @@ -10960,6 +12496,7 @@ AutoAttendantTollFree AccountType + > Applicable: Microsoft Teams This parameter is added to Get-CsOnlineUser starting from TPM 4.5.1 to indicate the user type. The possible values for the AccountType parameter are: - `User` - to query for user accounts. - `ResourceAccount` - to query for app endpoints or resource accounts. @@ -10974,9 +12511,26 @@ AutoAttendantTollFree None + + Filter + + > Applicable: Microsoft Teams + Enables you to limit the returned data by filtering on specific attributes. For example, you can limit returned data to users who have been assigned a specific voice policy, or users who have not been assigned a specific voice policy. + The Filter parameter uses the same filtering syntax as the Where-Object cmdlet. For example, the following filter returns only users who have been enabled for Enterprise Voice: `-Filter 'EnterpriseVoiceEnabled -eq $True'` or ``-Filter "EnterpriseVoiceEnabled -eq `$True"``. + Examples: - Get-CsOnlineUser -Filter {AssignedPlan -like " MCO "} - Get-CsOnlineUser -Filter {UserPrincipalName -like "test " -and (AssignedPlans -eq "MCOEV" -or AssignedPlans -like "MCOPSTN ")} - Get-CsOnlineUser -Filter {OnPremHostingProvider -ne $null} + - Get-CsOnlineUser -Filter {WhenChanged -gt "1/25/2022 11:59:59 PM"} + + String + + String + + + None + Identity + > Applicable: Microsoft Teams Indicates the Identity of the user account to be retrieved. For TeamsOnly customers using the Teams PowerShell Module version 3.0.0 or later, you use the following values to identify the account: - GUID @@ -10998,26 +12552,12 @@ AutoAttendantTollFree None - - Filter - - Enables you to limit the returned data by filtering on specific attributes. For example, you can limit returned data to users who have been assigned a specific voice policy, or users who have not been assigned a specific voice policy. - The Filter parameter uses the same filtering syntax as the Where-Object cmdlet. For example, the following filter returns only users who have been enabled for Enterprise Voice: `-Filter 'EnterpriseVoiceEnabled -eq $True'` or ``-Filter "EnterpriseVoiceEnabled -eq `$True"``. - Examples: - Get-CsOnlineUser -Filter {AssignedPlan -like " MCO "} - Get-CsOnlineUser -Filter {UserPrincipalName -like "test " -and (AssignedPlans -eq "MCOEV" -or AssignedPlans -like "MCOPSTN ")} - Get-CsOnlineUser -Filter {OnPremHostingProvider -ne $null} - - Get-CsOnlineUser -Filter {WhenChanged -gt "1/25/2022 11:59:59 PM"} - - String - - String - - - None - Properties - Allows you to specify the properties you want to include in the output. Provide the properties as a comma-separated list. Identity, UserPrincipalName, Alias, AccountEnabled and DisplayName attributes will always be present in the output. Please note that only attributes available in the output of the Get-CsOnlineUser cmdlet can be selected. For a complete list of available attributes, refer to the response of the Get-CsOnlineUser cmdlet. - Examples: - Get-CsOnlineUser -Properties DisplayName, UserPrincipalName, FeatureTypes + > Applicable: Microsoft Teams + Allows you to specify the properties you want to include in the output. Provide the properties as a comma-separated list. Identity, UserPrincipalName, Alias, AccountEnabled and DisplayName attributes will always be present in the output. Please note that only attributes available in the output of the Get-CsOnlineUser cmdlet can be selected. For a complete list of available attributes, refer to the response of the Get-CsOnlineUser cmdlet. + Examples: - Get-CsOnlineUser -Properties DisplayName, UserPrincipalName, FeatureTypes - Get-CsOnlineUser -Properties DisplayName, Alias, LineURI String @@ -11030,7 +12570,7 @@ AutoAttendantTollFree ResultSize - Note : Starting with Teams PowerShell Modules version 4.0 and later, "-ResultSize" type has been changed to uint32. + > Applicable: Microsoft Teams Note : Starting with Teams PowerShell Modules version 4.0 and later, "-ResultSize" type has been changed to uint32. Enables you to limit the number of records returned by the cmdlet. For example, to return seven users (regardless of the number of users that are in your forest) include the ResultSize parameter and set the parameter value to 7. Note that there is no way to guarantee which seven users will be returned. The result size can be set to any whole number between 0 and 2147483647, inclusive. The value 0 returns no data. If you set the ResultSize to 7 but you have only three users in your forest, the command will return those three users, and then complete without error. @@ -11044,6 +12584,7 @@ AutoAttendantTollFree SkipUserPolicies + > Applicable: Microsoft Teams PARAMVALUE: SwitchParameter SwitchParameter @@ -11056,6 +12597,7 @@ AutoAttendantTollFree SoftDeletedUser + > Applicable: Microsoft Teams This parameter enables you to return a collection of all the users who are deleted and can be restored within 30 days from their deletion time SwitchParameter @@ -11068,6 +12610,7 @@ AutoAttendantTollFree Sort + > Applicable: Microsoft Teams Sorting is now enabled in Teams PowerShell Module by using the "-Sort" or "-OrderBy" parameters. For example: - Get-CsOnlineUser -Filter {LineURI -like 123 } -OrderBy "DisplayName asc" - Get-CsOnlineUser -Filter {DisplayName -like '*abc'} -OrderBy {DisplayName desc} Note : Sorting on few attributes like LineURI can be case-sensitive. @@ -11100,7 +12643,10 @@ AutoAttendantTollFree - TeamsAdvComms: Enables advances communication management like custom communication policies in Teams. - TeamsMobileExperience: Enables users to use a single phone number in Teams across both sim-enabled mobile phone and desk lines. - Conferencing_RequiresCommunicationCredits: Allows pay-per minute Audio Conferencing without monthly licenses. - - CommunicationCredits: Enables users to pay Teams calling and conferencing through the credits. Updates in Teams PowerShell Module version 6.9.0 and later : + - CommunicationCredits: Enables users to pay Teams calling and conferencing through the credits. Updates in Teams PowerShell Module verion 7.1.1 Preview and later : + - EffectivePolicyAssignments: The EffectivePolicyAssignments attribute has been added to the Get-CsOnlineUser cmdlet in commercial environments. This new attribute provides information about a user's effective policy assignments. Each assignment includes the following details: - PolicyType - which specifies the type of policy assigned (for example, TeamsMeetingPolicy, TeamsCallingPolicy, and so on.) - PolicyAssignment - which includes the display name of the assigned policy (displayName), the assignment type (assignmentType) indicating whether it is direct or group-based, the unique identifier of the policy (policyId), and the group identifier (groupId) if applicable. Note : The policyId property isn't currently supported. Updates in Teams PowerShell Module : + - DialPlan: DialPlan attribute will be deprecated and no longer populated in the output of Get-CsOnlineUser in all clouds. Updates in Teams PowerShell Module version 7.0.0 and later : + - OptionFlags: OptionFlags attribute will no longer be populated with value in the output of Get-CsOnlineUser in all clouds. It's important to note that other details besides EnterpriseVoiceEnabled, previously found in OptionFlags, are no longer relevant for Teams. Administrators can still utilize the EnterpriseVoiceEnabled attribute in the output of the Get-CsOnlineUser cmdlet to get this information. This change will be rolled out to all Teams Powershell Module versions. Updates in Teams PowerShell Module version 6.9.0 and later : Adds new attribute in the output of Get-CsOnlineUser cmdlet in commercial environments. - TelephoneNumbers: A new list of complex object that includes telephone number and its corresponding assignment category. The assignment category can include values such as 'Primary', 'Private', and 'Alternate'. Adds new parameter to the Get-CsOnlineUser cmdlet in all clouds: - Properties: Allows you to specify the properties you want to include in the output. Provide the properties as a comma-separated list. Note that the following properties will always be present in the output: Identity, UserPrincipalName, Alias, AccountEnabled, DisplayName. Updates in Teams PowerShell Module version 6.8.0 and later : New policies - TeamsBYODAndDesksPolicy, TeamsAIPolicy, TeamsWorkLocationDetectionPolicy, TeamsMediaConnectivityPolicy, TeamsMeetingTemplatePermissionPolicy, TeamsVirtualAppointmentsPolicy and TeamsWorkLoadPolicy will be visible in the Get-CsOnlineUser cmdlet output. @@ -11130,8 +12676,7 @@ AutoAttendantTollFree When Get-CsOnlineUser is used with the -identity parameter, you can also use UPN, Alias, and SIP Address with the -identity parameter to obtain the information for a specific unlicensed user. Updates in Teams PowerShell Module version 6.1.0 and later : The following updates are applicable for organizations that use Microsoft Teams PowerShell version 6.1.0 or later. - - LocationPolicy: LocationPolicy attribute is being deprecated from the output of Get-CsOnlineUser in all clouds. Get-CsPhoneNumberAssignment -IsoCountryCode can be used to get the LocationPolicy information. (Note: LocationPolicy attribute will no longer be populated with value in the older Teams Powershell Module versions (<6.1.0) starting from 20th March 2024.) - - OptionFlags: OptionFlags attribute will no longer be populated with value in the output of Get-CsOnlineUser in all clouds. It's important to note that other details besides EnterpriseVoiceEnabled, previously found in OptionFlags, are no longer relevant for Teams. Administrators can still utilize the EnterpriseVoiceEnabled attribute in the output of the Get-CsOnlineUser cmdlet to get this information. (Note: This change will be rolled out to all Teams Powershell Module versions (=<6.1.0) starting from 20th March 2024.) Updates in Teams PowerShell Module version 6.0.0 and later : + - LocationPolicy: LocationPolicy attribute is being deprecated from the output of Get-CsOnlineUser in all clouds. Get-CsPhoneNumberAssignment -IsoCountryCode can be used to get the LocationPolicy information. (Note: LocationPolicy attribute will no longer be populated with value in the older Teams Powershell Module versions (<6.1.0) starting from 20th March 2024.) Updates in Teams PowerShell Module version 6.0.0 and later : The following updates are applicable for organizations having TeamsOnly users that use Microsoft Teams PowerShell version 6.0.0 or later. - GracePeriodExpiryDate: GracePeriodExpiryDate attribute is being introduced within the AssignedPlan JSON array. It specifies the date when the grace period of a previously deleted license expires, and the license will be permanently deleted. The attribute remains empty/null for active licenses. (Note: The attribute is currently in private preview and will display valid values only for private preview) - IsInGracePeriod: IsInGracePeriod attribute is a boolean flag that indicates that the associated plan is in grace period after deletion. (Note: The attribute is currently in private preview and will display valid values only for private preview) Updates in Teams PowerShell Module version 5.9.0 and later : @@ -11346,11 +12891,11 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csonlineuser + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineuser Set-CsUser - https://learn.microsoft.com/powershell/module/teams/set-csuser + https://learn.microsoft.com/powershell/module/microsoftteams/set-csuser @@ -11369,44 +12914,33 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} Get-CsOnlineVoicemailUserSettings - - Identity + + Force - The Identity parameter represents the ID of the specific user in your organization; this can be either a SIP URI or an Object ID. + Specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. - System.String - System.String + SwitchParameter - None + False - - Force + + Identity - Specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + > Applicable: Microsoft Teams + The Identity parameter represents the ID of the specific user in your organization; this can be either a SIP URI or an Object ID. + System.String - SwitchParameter + System.String - False + None - - Identity - - The Identity parameter represents the ID of the specific user in your organization; this can be either a SIP URI or an Object ID. - - System.String - - System.String - - - None - Force @@ -11419,6 +12953,19 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} False + + Identity + + > Applicable: Microsoft Teams + The Identity parameter represents the ID of the specific user in your organization; this can be either a SIP URI or an Object ID. + + System.String + + System.String + + + None + @@ -11457,11 +13004,11 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csonlinevoicemailusersettings + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoicemailusersettings Set-CsOnlineVoicemailUserSettings - https://learn.microsoft.com/powershell/module/teams/set-csonlinevoicemailusersettings + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailusersettings @@ -11471,7 +13018,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} Get CsOnlineVoiceRoute - Returns information about the online voice routes configured for use in your tenant. Online voice routes contain instructions that tell Skype for Business Online how to route calls from Office 365 users to phone numbers on the public switched telephone network (PSTN) or a private branch exchange (PBX). + Returns information about the online voice routes configured for use in your tenant. @@ -11595,19 +13142,19 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csonlinevoiceroute + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoiceroute New-CsOnlineVoiceRoute - https://learn.microsoft.com/powershell/module/teams/new-csonlinevoiceroute + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoiceroute Set-CsOnlineVoiceRoute - https://learn.microsoft.com/powershell/module/teams/set-csonlinevoiceroute + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoiceroute Remove-CsOnlineVoiceRoute - https://learn.microsoft.com/powershell/module/teams/remove-csonlinevoiceroute + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoiceroute @@ -11617,7 +13164,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} Get CsOnlineVoiceRoutingPolicy - Returns information about the online voice routing policies configured for use in your tenant. Online voice routing policies manage online PSTN usages for users of Phone System. + Returns information about the online voice routing policies configured for use in your tenant. @@ -11759,23 +13306,23 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csonlinevoiceroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoiceroutingpolicy New-CsOnlineVoiceRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csonlinevoiceroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoiceroutingpolicy Set-CsOnlineVoiceRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csonlinevoiceroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoiceroutingpolicy Grant-CsOnlineVoiceRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csonlinevoiceroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csonlinevoiceroutingpolicy Remove-CsOnlineVoiceRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csonlinevoiceroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoiceroutingpolicy @@ -11821,6 +13368,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} CivicAddressId + > Applicable: Microsoft Teams Specifies the identity of the civic address that is assigned to the target users. XdsCivicAddressId @@ -11833,6 +13381,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} DomainController + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Fqdn @@ -11845,6 +13394,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} EnterpriseVoiceStatus + > Applicable: Microsoft Teams Possible values are: * All * Enabled * Disabled @@ -11859,6 +13409,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} ExpandLocation + > Applicable: Microsoft Teams Displays the location parameter with its value. @@ -11870,6 +13421,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} First + > Applicable: Microsoft Teams Specifies the number of users to return. The default is 100. Unlimited @@ -11882,7 +13434,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} Force - This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -11894,7 +13446,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} GetFromAAD - This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . Use this switch to get the users from Microsoft Entra ID. @@ -11906,7 +13458,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} GetPendingUsers - This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . Use this switch to get only the users in pending state. @@ -11918,6 +13470,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} Identity + > Applicable: Microsoft Teams Specifies the identity of the target user. Acceptable values include: Example: jphillips@contoso.com Example: sip:jphillips@contoso.com @@ -11933,6 +13486,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} LocationId + > Applicable: Microsoft Teams Specifies the location identity of the location whose users will be returned. You can find location identifiers by using the `Get-CsOnlineLisLocation` cmdlet. LocationID @@ -11945,6 +13499,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} NumberAssigned + > Applicable: Microsoft Teams If specified, the query will return users who have a phone number assigned. @@ -11956,6 +13511,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} NumberNotAssigned + > Applicable: Microsoft Teams If specified, the query will return users who do not have a phone number assigned. @@ -11967,6 +13523,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} PSTNConnectivity + > Applicable: Microsoft Teams Possible values are: * All * Online * OnPremises @@ -11981,7 +13538,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} SearchQuery - This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . The SearchQuery parameter specifies a search string or a query formatted using Keyword Query Language (KQL). For more details about KQL, see Keyword Query Language syntax reference (https://go.microsoft.com/fwlink/p/?linkid=269603). If this parameter is empty, all users are returned. @@ -11995,6 +13552,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} Skip + > Applicable: Microsoft Teams Specifies the number of users to skip. If you used the First parameter to return the first 50 users and wanted to get another 50, you could use -Skip 50 to avoid returning the first 50 you've already reviewed. The default is 0. Unlimited @@ -12007,7 +13565,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} Tenant - This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . This parameter is reserved for internal Microsoft use. Guid @@ -12023,6 +13581,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} CivicAddressId + > Applicable: Microsoft Teams Specifies the identity of the civic address that is assigned to the target users. XdsCivicAddressId @@ -12035,6 +13594,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} DomainController + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Fqdn @@ -12047,6 +13607,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} EnterpriseVoiceStatus + > Applicable: Microsoft Teams Possible values are: * All * Enabled * Disabled @@ -12061,6 +13622,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} ExpandLocation + > Applicable: Microsoft Teams Displays the location parameter with its value. SwitchParameter @@ -12073,6 +13635,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} First + > Applicable: Microsoft Teams Specifies the number of users to return. The default is 100. Unlimited @@ -12085,7 +13648,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} Force - This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -12098,7 +13661,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} GetFromAAD - This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . Use this switch to get the users from Microsoft Entra ID. SwitchParameter @@ -12111,7 +13674,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} GetPendingUsers - This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . Use this switch to get only the users in pending state. SwitchParameter @@ -12124,6 +13687,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} Identity + > Applicable: Microsoft Teams Specifies the identity of the target user. Acceptable values include: Example: jphillips@contoso.com Example: sip:jphillips@contoso.com @@ -12139,6 +13703,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} LocationId + > Applicable: Microsoft Teams Specifies the location identity of the location whose users will be returned. You can find location identifiers by using the `Get-CsOnlineLisLocation` cmdlet. LocationID @@ -12151,6 +13716,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} NumberAssigned + > Applicable: Microsoft Teams If specified, the query will return users who have a phone number assigned. SwitchParameter @@ -12163,6 +13729,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} NumberNotAssigned + > Applicable: Microsoft Teams If specified, the query will return users who do not have a phone number assigned. SwitchParameter @@ -12175,6 +13742,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} PSTNConnectivity + > Applicable: Microsoft Teams Possible values are: * All * Online * OnPremises @@ -12189,7 +13757,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} SearchQuery - This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . The SearchQuery parameter specifies a search string or a query formatted using Keyword Query Language (KQL). For more details about KQL, see Keyword Query Language syntax reference (https://go.microsoft.com/fwlink/p/?linkid=269603). If this parameter is empty, all users are returned. @@ -12203,6 +13771,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} Skip + > Applicable: Microsoft Teams Specifies the number of users to skip. If you used the First parameter to return the first 50 users and wanted to get another 50, you could use -Skip 50 to avoid returning the first 50 you've already reviewed. The default is 0. Unlimited @@ -12215,7 +13784,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} Tenant - This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . This parameter is reserved for internal Microsoft use. Guid @@ -12263,11 +13832,264 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csonlinevoiceuser + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoiceuser Set-CsOnlineVoiceUser - https://learn.microsoft.com/powershell/module/teams/set-csonlinevoiceuser + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoiceuser + + + + + + Get-CsPersonalAttendantSettings + Get + CsPersonalAttendantSettings + + Limited Preview: Functionality described in this document is currently in limited preview and only authorized organizations have access. + This cmdlet will show personal attendant settings for a user. + + + + This cmdlet shows the personal attendant settings for a user. + + + + Get-CsPersonalAttendantSettings + + Identity + + The Identity of the user to show personal attendant settings for. Can be specified using the ObjectId or the SIP address. + + System.String + + System.String + + + None + + + InputObject + + The Identity parameter. + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + + + + Identity + + The Identity of the user to show personal attendant settings for. Can be specified using the ObjectId or the SIP address. + + System.String + + System.String + + + None + + + InputObject + + The Identity parameter. + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + The cmdlet is available in Teams PowerShell module 7.3.0 or later. + + + + + -------------------------- Example 1 -------------------------- + Get-CsPersonalAttendantSettings -Identity user1@contoso.com + +IsPersonalAttendantEnabled : True +DefaultLanguage : en-US +DefaultVoice : Female +CalleeName : User1 +DefaultTone : Formal +IsBookingCalendarEnabled : False +IsNonContactCallbackEnabled : False +IsCallScreeningEnabled : False +AllowInboundInternalCalls : True +AllowInboundFederatedCalls : False +AllowInboundPSTNCalls : False +IsAutomaticTranscriptionEnabled : False +IsAutomaticRecordingEnabled : False + + This example shows that user1@contoso.com has personal attendant enabled (personal attendant communicates in English). Personal attendant will refer to its owner as User1. Personal attendant is only enabled for inbound Teams calls from the user's domain. Additional capabilities are turned off. + + + + -------------------------- Example 2 -------------------------- + Get-CsPersonalAttendantSettings -InputObject @{ UserId = "user11@contoso.com"; } + +IsPersonalAttendantEnabled : True +DefaultLanguage : en-US +DefaultVoice : Female +CalleeName : User1 +DefaultTone : Formal +IsBookingCalendarEnabled : False +IsNonContactCallbackEnabled : False +IsCallScreeningEnabled : False +AllowInboundInternalCalls : True +AllowInboundFederatedCalls : False +AllowInboundPSTNCalls : False +IsAutomaticTranscriptionEnabled : False +IsAutomaticRecordingEnabled : False + + This example returns same output as Example 1 but fetched using identity parameter. + + + + -------------------------- Example 3 -------------------------- + Get-CsPersonalAttendantSettings -Identity user1@contoso.com + +IsPersonalAttendantEnabled : True +DefaultLanguage : en-US +DefaultVoice : Female +CalleeName : User1 +DefaultTone : Formal +IsBookingCalendarEnabled : True +IsNonContactCallbackEnabled : False +IsCallScreeningEnabled : False +AllowInboundInternalCalls : True +AllowInboundFederatedCalls : False +AllowInboundPSTNCalls : False +IsAutomaticTranscriptionEnabled : False +IsAutomaticRecordingEnabled : False + + This example shows that user1@contoso.com has personal attendant enabled. In addition to previously mentioned capabilities, personal attendant is able to access personal bookings calendar, fetch the user's availability and schedule callbacks on behalf of the user. Calendar operations are enabled for all incoming callers. user1 must specify the bookings link in Teams Personal Attendant settings. + + + + -------------------------- Example 4 -------------------------- + Get-CsPersonalAttendantSettings -Identity user1@contoso.com + +IsPersonalAttendantEnabled : True +DefaultLanguage : en-US +DefaultVoice : Female +CalleeName : User1 +DefaultTone : Formal +IsBookingCalendarEnabled : True +IsNonContactCallbackEnabled : True +IsCallScreeningEnabled : False +AllowInboundInternalCalls : True +AllowInboundFederatedCalls : True +AllowInboundPSTNCalls : True +IsAutomaticTranscriptionEnabled : False +IsAutomaticRecordingEnabled : False + + This example shows that user1@contoso.com has personal attendant enabled. In addition to previously mentioned capabilities, personal attendant is enabled for all incoming calls: the user's domain, other domains and PSTN. + + + + -------------------------- Example 5 -------------------------- + Get-CsPersonalAttendantSettings -Identity user1@contoso.com + +IsPersonalAttendantEnabled : True +DefaultLanguage : en-US +DefaultVoice : Female +CalleeName : User1 +DefaultTone : Formal +IsBookingCalendarEnabled : True +IsNonContactCallbackEnabled : True +IsCallScreeningEnabled : True +AllowInboundInternalCalls : True +AllowInboundFederatedCalls : True +AllowInboundPSTNCalls : True +IsAutomaticTranscriptionEnabled : False +IsAutomaticRecordingEnabled : False + + This example shows that user1@contoso.com has personal attendant enabled. In addition to previously mentioned capabilities, personal attendant is enabled to evaluate the call's context and pass the info to the user. + + + + -------------------------- Example 6 -------------------------- + Get-CsPersonalAttendantSettings -Identity user1@contoso.com + +IsPersonalAttendantEnabled : True +DefaultLanguage : en-US +DefaultVoice : Female +CalleeName : User1 +DefaultTone : Formal +IsBookingCalendarEnabled : True +IsNonContactCallbackEnabled : True +IsCallScreeningEnabled : True +AllowInboundInternalCalls : True +AllowInboundFederatedCalls : True +AllowInboundPSTNCalls : True +IsAutomaticTranscriptionEnabled : True +IsAutomaticRecordingEnabled : True + + This example shows that user1@contoso.com has personal attendant enabled. In addition to previously mentioned capabilities, personal attendant is automatically storing call transcription and recording. + + + + -------------------------- Example 7 -------------------------- + Get-CsPersonalAttendantSettings -Identity user11@contoso.com + +IsPersonalAttendantEnabled : False +DefaultLanguage : en-US +DefaultVoice : Female +CalleeName : +DefaultTone : Formal +IsBookingCalendarEnabled : False +IsNonContactCallbackEnabled : False +IsCallScreeningEnabled : True +AllowInboundInternalCalls : True +AllowInboundFederatedCalls : True +AllowInboundPSTNCalls : True +IsAutomaticTranscriptionEnabled : True +IsAutomaticRecordingEnabled : True + + This example shows the default settings for the user that has never changed the personal attendant settings via Microsoft Teams. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-cspersonalattendantsettings + + + Set-CsPersonalAttendantSettings + @@ -12281,8 +14103,28 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} - This cmdlet displays information about one or more phone numbers. You can filter the phone numbers to return by using different parameters. - Returned results are sorted by TelephoneNumber in ascending order. + This cmdlet displays information about one or more phone numbers. You can filter the phone numbers to return by using different parameters. Returned results are sorted by TelephoneNumber in ascending order. Supported list of attributes for Filter are: - TelephoneNumber + - OperatorId + - PstnAssignmentStatus (also supported AssignmentStatus) + - ActivationState + - IsoCountryCode + - Capability (also supported AcquiredCapabilities) + - IsOperatorConnect + - PstnPartnerName (also supported PartnerName) + - LocationId + - CivicAddressId + - NetworkSiteId + - NumberType + - AssignedPstnTargetId (also supported TargetId) + - TargetType + - AssignmentCategory + - ResourceAccountSharedCallingPolicySupported + - SupportedCustomerActions + - ReverseNumberLookup + - RoutingOptions + - SmsActivationState + - Tags + If you are using both -Skip X and -Top Y for filtering, the returned results will first be skipped by X, and then the top Y results will be returned. By default, this cmdlet returns a maximum of 500 results. A maximum of 1000 results can be returned using -Top filter. If you need to get more than 1000 results, a combination of -Skip and -Top filtering can be used to list incremental returns of 1000 numbers. If a full list of telephone numbers acquired by the tenant is required, you can use Export-CsAcquiredPhoneNumber (./export-csacquiredphonenumber.md)cmdlet to download a list of all acquired telephone numbers. @@ -12292,6 +14134,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} ActivationState + > Applicable: Microsoft Teams Filters the returned results based on the number type. Supported values are Activated, AssignmentPending, AssignmentFailed, UpdatePending, and UpdateFailed. System.String @@ -12304,6 +14147,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} AssignedPstnTargetId + > Applicable: Microsoft Teams Filters the returned results based on the user or resource account ID the phone number is assigned to. Supported values are UserPrincipalName, SIP address, ObjectId, and the Teams shared calling routing policy instance name. System.String @@ -12316,6 +14160,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} AssignmentCategory + > Applicable: Microsoft Teams This parameter is used to differentiate between Primary and Private line assignment for a user. System.String @@ -12325,9 +14170,21 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} None + + Break + + {{ Fill Break Description }} + + + System.Management.Automation.SwitchParameter + + + False + CapabilitiesContain + > Applicable: Microsoft Teams Filters the returned results based on the capabilities assigned to the phone number. You can specify one or more capabilities delimited by a comma. Supported capabilities are ConferenceAssignment, VoiceApplicationAssignment, UserAssignment, and TeamsPhoneMobile. If you specify only one capability, you will get all phone numbers returned that have that capability assigned. If you specify a comma separated list for instance like ConferenceAssignment, VoiceApplicationAssignment you will get all phone numbers that have both capabilities assigned, but you won't get phone numbers that have only VoiceApplicationAssignment or ConferenceAssignment assigned as capability. @@ -12341,7 +14198,8 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} CivicAddressId - Filters the returned results based on the CivicAddressId assigned to the phone number. You can get the CivicAddressId by using Get-CsOnlineLisCivicAddress (https://learn.microsoft.com/powershell/module/teams/get-csonlineliscivicaddress). + > Applicable: Microsoft Teams + Filters the returned results based on the CivicAddressId assigned to the phone number. You can get the CivicAddressId by using Get-CsOnlineLisCivicAddress (https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineliscivicaddress). System.String @@ -12350,9 +14208,46 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} None + + Filter + + This can be used to filter on one or more parameters within the search results. + + System.String + + System.String + + + None + + + HttpPipelineAppend + + {{ Fill HttpPipelineAppend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + IsoCountryCode + > Applicable: Microsoft Teams Filters the returned results based on the ISO 3166-1 Alpha-2 country code assigned to the phone number. System.String @@ -12365,7 +14260,8 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} LocationId - Filters the returned results based on the LocationId assigned to the phone number. You can get the LocationId by using Get-CsOnlineLisLocation (https://learn.microsoft.com/powershell/module/teams/get-csonlinelislocation). + > Applicable: Microsoft Teams + Filters the returned results based on the LocationId assigned to the phone number. You can get the LocationId by using Get-CsOnlineLisLocation (https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelislocation). System.String @@ -12377,7 +14273,8 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} NetworkSiteId - This parameter is reserved for internal Microsoft use. + > Applicable: Microsoft Teams + ID of a network site. A network site represents a location where your organization has a physical venue, such as offices, a set of buildings, or a campus. System.String @@ -12389,6 +14286,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} NumberType + > Applicable: Microsoft Teams Filters the returned results based on the number type. Supported values are DirectRouting, CallingPlan, and OperatorConnect. System.String @@ -12398,9 +14296,45 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} None + + Proxy + + {{ Fill Proxy Description }} + + System.Uri + + System.Uri + + + None + + + ProxyCredential + + {{ Fill ProxyCredential Description }} + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + ProxyUseDefaultCredentials + + {{ Fill ProxyUseDefaultCredentials Description }} + + + System.Management.Automation.SwitchParameter + + + False + PstnAssignmentStatus + > Applicable: Microsoft Teams Filters the returned results based on the assignment status. Support values are Unassigned, UserAssigned, ConferenceAssigned, VoiceApplicationAssigned, ThirdPartyAppAssigned, and PolicyAssigned. System.String @@ -12425,6 +14359,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} TelephoneNumber + > Applicable: Microsoft Teams Filters the returned results to a specific phone number. It is optional to specify a prefixed "+". The phone number can't have "tel:" prefixed. We support Direct Routing numbers with extensions using the formats +1206555000;ext=1234 or 1206555000;ext=1234. System.String @@ -12437,6 +14372,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} TelephoneNumberContain + > Applicable: Microsoft Teams Filters the returned results based on substring match for the specified string on TelephoneNumber. To search for a number with an extension, you need to specify the digits of the extension. For supported formats see TelephoneNumber. System.String @@ -12449,6 +14385,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} TelephoneNumberGreaterThan + > Applicable: Microsoft Teams Filters the returned results based on greater than match for the specified string on TelephoneNumber. Can be used together with TelephoneNumberLessThan to specify a range of phone numbers to return results for. For supported formats see TelephoneNumber. System.String @@ -12461,6 +14398,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} TelephoneNumberLessThan + > Applicable: Microsoft Teams Filters the returned results based on less than match for the specified string on TelephoneNumber. Can be used together with TelephoneNumberGreaterThan to specify a range of phone numbers to return results for. For supported formats see TelephoneNumber. System.String @@ -12473,6 +14411,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} TelephoneNumberStartsWith + > Applicable: Microsoft Teams Filters the returned results based on starts with string match for the specified string on TelephoneNumber. For supported formats see TelephoneNumber. System.String @@ -12485,6 +14424,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} Top + > Applicable: Microsoft Teams Returns the first X returned results and the default value is 500. System.Int32 @@ -12494,24 +14434,13 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} None - - Filter - - This can be used to filter on one or more parameters within the search results. - - String - - String - - - None - ActivationState + > Applicable: Microsoft Teams Filters the returned results based on the number type. Supported values are Activated, AssignmentPending, AssignmentFailed, UpdatePending, and UpdateFailed. System.String @@ -12524,6 +14453,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} AssignedPstnTargetId + > Applicable: Microsoft Teams Filters the returned results based on the user or resource account ID the phone number is assigned to. Supported values are UserPrincipalName, SIP address, ObjectId, and the Teams shared calling routing policy instance name. System.String @@ -12536,6 +14466,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} AssignmentCategory + > Applicable: Microsoft Teams This parameter is used to differentiate between Primary and Private line assignment for a user. System.String @@ -12545,9 +14476,22 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} None + + Break + + {{ Fill Break Description }} + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + CapabilitiesContain + > Applicable: Microsoft Teams Filters the returned results based on the capabilities assigned to the phone number. You can specify one or more capabilities delimited by a comma. Supported capabilities are ConferenceAssignment, VoiceApplicationAssignment, UserAssignment, and TeamsPhoneMobile. If you specify only one capability, you will get all phone numbers returned that have that capability assigned. If you specify a comma separated list for instance like ConferenceAssignment, VoiceApplicationAssignment you will get all phone numbers that have both capabilities assigned, but you won't get phone numbers that have only VoiceApplicationAssignment or ConferenceAssignment assigned as capability. @@ -12561,7 +14505,8 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} CivicAddressId - Filters the returned results based on the CivicAddressId assigned to the phone number. You can get the CivicAddressId by using Get-CsOnlineLisCivicAddress (https://learn.microsoft.com/powershell/module/teams/get-csonlineliscivicaddress). + > Applicable: Microsoft Teams + Filters the returned results based on the CivicAddressId assigned to the phone number. You can get the CivicAddressId by using Get-CsOnlineLisCivicAddress (https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineliscivicaddress). System.String @@ -12575,9 +14520,33 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} This can be used to filter on one or more parameters within the search results. - String + System.String - String + System.String + + + None + + + HttpPipelineAppend + + {{ Fill HttpPipelineAppend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] None @@ -12585,6 +14554,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} IsoCountryCode + > Applicable: Microsoft Teams Filters the returned results based on the ISO 3166-1 Alpha-2 country code assigned to the phone number. System.String @@ -12597,7 +14567,8 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} LocationId - Filters the returned results based on the LocationId assigned to the phone number. You can get the LocationId by using Get-CsOnlineLisLocation (https://learn.microsoft.com/powershell/module/teams/get-csonlinelislocation). + > Applicable: Microsoft Teams + Filters the returned results based on the LocationId assigned to the phone number. You can get the LocationId by using Get-CsOnlineLisLocation (https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelislocation). System.String @@ -12609,7 +14580,8 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} NetworkSiteId - This parameter is reserved for internal Microsoft use. + > Applicable: Microsoft Teams + ID of a network site. A network site represents a location where your organization has a physical venue, such as offices, a set of buildings, or a campus. System.String @@ -12621,6 +14593,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} NumberType + > Applicable: Microsoft Teams Filters the returned results based on the number type. Supported values are DirectRouting, CallingPlan, and OperatorConnect. System.String @@ -12630,9 +14603,46 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} None + + Proxy + + {{ Fill Proxy Description }} + + System.Uri + + System.Uri + + + None + + + ProxyCredential + + {{ Fill ProxyCredential Description }} + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + ProxyUseDefaultCredentials + + {{ Fill ProxyUseDefaultCredentials Description }} + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + PstnAssignmentStatus + > Applicable: Microsoft Teams Filters the returned results based on the assignment status. Support values are Unassigned, UserAssigned, ConferenceAssigned, VoiceApplicationAssigned, ThirdPartyAppAssigned, and PolicyAssigned. System.String @@ -12657,6 +14667,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} TelephoneNumber + > Applicable: Microsoft Teams Filters the returned results to a specific phone number. It is optional to specify a prefixed "+". The phone number can't have "tel:" prefixed. We support Direct Routing numbers with extensions using the formats +1206555000;ext=1234 or 1206555000;ext=1234. System.String @@ -12669,6 +14680,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} TelephoneNumberContain + > Applicable: Microsoft Teams Filters the returned results based on substring match for the specified string on TelephoneNumber. To search for a number with an extension, you need to specify the digits of the extension. For supported formats see TelephoneNumber. System.String @@ -12681,6 +14693,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} TelephoneNumberGreaterThan + > Applicable: Microsoft Teams Filters the returned results based on greater than match for the specified string on TelephoneNumber. Can be used together with TelephoneNumberLessThan to specify a range of phone numbers to return results for. For supported formats see TelephoneNumber. System.String @@ -12693,6 +14706,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} TelephoneNumberLessThan + > Applicable: Microsoft Teams Filters the returned results based on less than match for the specified string on TelephoneNumber. Can be used together with TelephoneNumberGreaterThan to specify a range of phone numbers to return results for. For supported formats see TelephoneNumber. System.String @@ -12705,6 +14719,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} TelephoneNumberStartsWith + > Applicable: Microsoft Teams Filters the returned results based on starts with string match for the specified string on TelephoneNumber. For supported formats see TelephoneNumber. System.String @@ -12717,6 +14732,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} Top + > Applicable: Microsoft Teams Returns the first X returned results and the default value is 500. System.Int32 @@ -12759,7 +14775,7 @@ Get-CsOnlineUser -Filter {LineURI -eq "1234"} AssignmentCategory - This parameter is reserved for internal Microsoft use. + Contains the assignment category such as Primary or Private. @@ -12930,7 +14946,8 @@ PstnAssignmentStatus : UserAssigned PstnPartnerId : 7fc2f2eb-89aa-41d7-93de-73d015d22ff0 PstnPartnerName : Microsoft NumberSource : Online -ReverseNumberLookup : {} +ReverseNumberLookup : {} +Tag : {} This example displays information about the Microsoft Calling Plan subscriber phone number +1 (402) 555-1234. You can see that it is assigned to a user. @@ -12958,7 +14975,8 @@ PstnAssignmentStatus : UserAssigned PstnPartnerId : PstnPartnerName : NumberSource : OnPremises -ReverseNumberLookup : {} +ReverseNumberLookup : {} +Tag : {} This example displays information about the Direct Routing phone number +1 (206) 555-1000;ext=524. You can see that it is assigned to a user. @@ -13000,38 +15018,24 @@ ReverseNumberLookup : {} -------------------------- Example 8 -------------------------- - (Get-CsPhoneNumberAssignment | Where-Object {$_.NumberType.Contains('CallingPlan') -and $_.Capability.Contains('UserAssignment') -and ($_.PstnAssignmentStatus.Contains('UserAssigned') -or $_.PstnAssignmentStatus.Contains('Unassigned'))}).Count - - This example returns the number of Calling Plan subscriber phone numbers that are either assigned or not assigned to users. - - - - -------------------------- Example 9 -------------------------- - Get-CsPhoneNumberAssignment -Top (50::500) - - This example returns all phone numbers in the record between sequence 50 to 500. This parameter can be used to get upto a maximum 1000 results at a time. - - - - -------------------------- Example 10 -------------------------- Get-CsPhoneNumberAssignment -Skip 1000 -Top 1000 This example returns all phone numbers sequenced between 1001 to 2000 in the record of phone numbers. - -------------------------- Example 11 -------------------------- + -------------------------- Example 9 -------------------------- Get-CsPhoneNumberAssignment -AssignedPstnTargetId 'TeamsSharedCallingRoutingPolicy|Tag:SC1' This example returns all phone numbers assigned as emergency numbers in the Teams shared calling routing policy instance SC1. - -------------------------- Example 12 -------------------------- + -------------------------- Example 10 -------------------------- Get-CsPhoneNumberAssignment -TelephoneNumber "+12065551000;ext=524" TelephoneNumber : +12065551000;ext=524 -OperatorId : 83d289bc-a4d3-41e6-8a3f-cff260a3f091 +OperatorId : 83d289bc-a4d3-41e6-8a3f-cff260a6f091 NumberType : DirectRouting ActivationState : Activated AssignedPstnTargetId : 2713551e-ed63-415d-9175-fc4ff825a0be @@ -13049,13 +15053,14 @@ PstnAssignmentStatus : UserAssigned PstnPartnerId : PstnPartnerName : NumberSource : OnPremises -ReverseNumberLookup : {SkipInternalVoip} +ReverseNumberLookup : {SkipInternalVoip} +Tag : {} This example displays when SkipInternalVoip option is turned on for a number. - -------------------------- Example 13 -------------------------- + -------------------------- Example 11 -------------------------- Get-CsPhoneNumberAssignment -Filter "TelephoneNumber -eq '+12065551000'" TelephoneNumber : +12065551000 @@ -13077,17 +15082,18 @@ PstnAssignmentStatus : UserAssigned PstnPartnerId : PstnPartnerName : NumberSource : OnPremises -ReverseNumberLookup : {} +ReverseNumberLookup : {} +Tag : {} This example shows a way to use -Filter parameter to display information of a specific number. - -------------------------- Example 14 -------------------------- + -------------------------- Example 12 -------------------------- Get-CsPhoneNumberAssignment -Filter "TelephoneNumber -like '+12065551000' -and NumberType -eq 'DirectRouting'" TelephoneNumber : +12065551000 -OperatorId : 83d289bc-a4d3-41e6-8a3f-cff260a3f091 +OperatorId : 83d289bc-a4d3-41e6-8a3f-cff260a3f591 NumberType : DirectRouting ActivationState : Activated AssignedPstnTargetId : 2713551e-ed63-415d-9175-fc4ff825a0be @@ -13105,24 +15111,344 @@ PstnAssignmentStatus : UserAssigned PstnPartnerId : PstnPartnerName : NumberSource : OnPremises -ReverseNumberLookup : {} +ReverseNumberLookup : {} +Tag : {} This example shows a way to get filtered results using multiple Filter parameters. + + -------------------------- Example 13 -------------------------- + Get-CsPhoneNumberAssignment -Filter "Tags -contains ['Engineering']" + +TelephoneNumber : +12065551102 +OperatorId : 83d289bc-a4d3-41e6-8a3f-cff260a3f071 +NumberType : DirectRouting +ActivationState : Activated +AssignedPstnTargetId : 2713551e-ed63-415d-9175-fc4ff825a0be +AssignmentCategory : Primary +Capability : {ConferenceAssignment, VoiceApplicationAssignment, UserAssignment} +City : +CivicAddressId : 00000000-0000-0000-0000-000000000000 +IsoCountryCode : +IsoSubdivision : +LocationId : 00000000-0000-0000-0000-000000000000 +LocationUpdateSupported : True +NetworkSiteId : +PortInOrderStatus : +PstnAssignmentStatus : UserAssigned +PstnPartnerId : +PstnPartnerName : +NumberSource : OnPremises +ReverseNumberLookup : {} +Tag : {Engineering} + + This example shows a way to get filtered results using tags. Tags are not case sensitive. + + Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csphonenumberassignment + https://learn.microsoft.com/powershell/module/microsoftteams/get-csphonenumberassignment Remove-CsPhoneNumberAssignment - https://learn.microsoft.com/powershell/module/teams/remove-csphonenumberassignment + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csphonenumberassignment Set-CsPhoneNumberAssignment - https://learn.microsoft.com/powershell/module/teams/set-csphonenumberassignment + https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberassignment + + + + + + Get-CsPhoneNumberPolicyAssignment + Get + CsPhoneNumberPolicyAssignment + + This cmdlet retrieves policy assignments associated with a specific telephone number or a list of telephone numbers in Microsoft Teams. + + + + This cmdlet retrieves policy assignments associated with one or more telephone numbers. It supports querying a single telephone number or a list of numbers, with optional filtering by policy type or policy name. This functionality is particularly useful for administrators managing Teams voice configurations, including scenarios with multiline support. + When querying a single telephone number, the cmdlet returns the most recent effective policy assignment. Note that it may take several minutes for newly applied assignments to propagate and appear in the results. + + + + Get-CsPhoneNumberPolicyAssignment + + TelephoneNumber + + Specifies the telephone number to query. + + System.String + + System.String + + + None + + + PolicyType + + Filters results by the type of policy assigned (e.g., TenantDialPlan, CallingLineIdentity etc.). + + System.String + + System.String + + + None + + + PolicyName + + Filters results by the name of the policy. To use this parameter, `-PolicyType` must also be specified. + + System.String + + System.String + + + None + + + ResultSize + + Limits the number of telephone numbers returned in the results. + + System.Int32 + + System.Int32 + + + None + + + + + + TelephoneNumber + + Specifies the telephone number to query. + + System.String + + System.String + + + None + + + PolicyType + + Filters results by the type of policy assigned (e.g., TenantDialPlan, CallingLineIdentity etc.). + + System.String + + System.String + + + None + + + PolicyName + + Filters results by the name of the policy. To use this parameter, `-PolicyType` must also be specified. + + System.String + + System.String + + + None + + + ResultSize + + Limits the number of telephone numbers returned in the results. + + System.Int32 + + System.Int32 + + + None + + + + + + None + + + + + + + + + + TelephoneNumber + + + The telephone number. + + + + + PolicyType + + + The type of the policy assigned to the telephone number. + + + + + PolicyName + + + The name of the policy assigned to the telephone number. + + + + + Reference + + + Metadata that describes the origin or mechanism of the policy assignment. It helps administrators understand whether a policy was explicitly set or inherited through broader configuration scopes. This cmdlet returns only Direct assignments, which are policies that are explicitly assigned to telephone numbers by a tenant admin. + + + + + + The cmdlet is available in Teams PowerShell module 7.3.1 or later. The cmdlet is only available in commercial cloud instances. + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsPhoneNumberPolicyAssignment -TelephoneNumber 17789493766 + +TelephoneNumber PolicyType PolicyName Authority AssignmentType Reference +--------------- ---------- ---------- --------- -------------- --------- +17789493766 TenantDialPlan PolicyFoo Tenant Direct Direct +17789493766 CallingLineIdentity PolicyBar Tenant Direct Direct + + This example returns all policy assigned for the specified telephone number. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsPhoneNumberPolicyAssignment + +TelephoneNumber PolicyType PolicyName Authority AssignmentType Reference +--------------- ---------- ---------- --------- -------------- --------- +1234567 TenantDialPlan BenTestPolicy Tenant Direct Direct +17789493766 TenantDialPlan PolicyFoo Tenant Direct Direct +17789493766 CallingLineIdentity PolicyBar Tenant Direct Direct + + This example returns a list of all the telephone numbers in the tenant that have at least one policy assigned. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Get-CsPhoneNumberPolicyAssignment -PolicyType TenantDialPlan + +TelephoneNumber PolicyType PolicyName Reference +--------------- ---------- ---------- --------- +1234567 TenantDialPlan BenTestPolicy Direct +17789493766 TenantDialPlan PolicyFoo Direct + + This example returns a list of all the telephone numbers in tenant that have TenantDialPlan assigned. + + + + -------------------------- Example 4 -------------------------- + PS C:\> Get-CsPhoneNumberPolicyAssignment -PolicyType TenantDialPlan -PolicyName PolicyFoo -ResultSize 1 + +TelephoneNumber PolicyType PolicyName Reference +--------------- ---------- ---------- --------- +17789493766 TenantDialPlan PolicyFoo Direct + + This example returns the top 1 telephone number with policy assignment matching the specified type and name. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csphonenumberpolicyassignment + + + Set-CsPhoneNumberPolicyAssignment + + + + + + + Get-CsPhoneNumberTag + Get + CsPhoneNumberTag + + This cmdlet allows the admin to get a list of existing tags for telephone numbers. + + + + This cmdlet will get a list of all existing tags that are assigned to phone numbers in the tenant. + + + + Get-CsPhoneNumberTag + + + + + + + None + + + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletTenantTagRecord + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsPhoneNumberTag + +TagValue +HR +Redmond HQ +Executives + + This example shows how to get a list of existing tags for telephone numbers + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csphonenumbertag @@ -13144,6 +15470,7 @@ ReverseNumberLookup : {} Identity + > Applicable: Microsoft Teams The name of a specific policy package. All possible policy package names can be found by running Get-CsPolicyPackage. String @@ -13171,6 +15498,7 @@ ReverseNumberLookup : {} Identity + > Applicable: Microsoft Teams The name of a specific policy package. All possible policy package names can be found by running Get-CsPolicyPackage. String @@ -13239,19 +15567,19 @@ TeamsMeetingBroadcastPolicy {[Identity, Education_PrimaryStudent], [Description, Online Version: - https://learn.microsoft.com/powershell/module/teams/get-cspolicypackage + https://learn.microsoft.com/powershell/module/microsoftteams/get-cspolicypackage Get-CsUserPolicyPackageRecommendation - https://learn.microsoft.com/powershell/module/teams/get-csuserpolicypackagerecommendation + https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicypackagerecommendation Get-CsUserPolicyPackage - https://learn.microsoft.com/powershell/module/teams/get-csuserpolicypackage + https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicypackage Grant-CsUserPolicyPackage - https://learn.microsoft.com/powershell/module/teams/grant-csuserpolicypackage + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csuserpolicypackage @@ -13394,41 +15722,146 @@ $getBatchStatusResponse.BatchItem - Get-CsTeamsAcsFederationConfiguration + Get-CsSharedCallQueueHistoryTemplate Get - CsTeamsAcsFederationConfiguration + CsSharedCallQueueHistoryTemplate - This cmdlet is used to retrieve the federation configuration between Teams and Azure Communication Services. For more information, refer to Azure Communication Services and Teams Interoperability (https://learn.microsoft.com/azure/communication-services/concepts/teams-interop). + Use the Get-CsSharedCallQueueHistory cmdlet to list the Shared Call Queue History templates. - Federation between Teams and Azure Communication Services (ACS) allows users of custom solutions built with ACS to connect and communicate with Teams users over voice, video, Teams users over voice, video and screen sharing, and more. For more information, see Teams interoperability (https://learn.microsoft.com/azure/communication-services/concepts/teams-interop). - This cmdlet is used retrieve the Teams and ACS federation configuration for a Teams tenant. - You must be a Teams service admin or a Teams communication admin for your organization to run the cmdlet. + Use the Get-CsSharedCallQueueHistory cmdlet to list the Shared Call Queue History templates. + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for this feature. General Availability for this functionality has not been determined at this time. - Get-CsTeamsAcsFederationConfiguration + Get-CsSharedCallQueueHistoryTemplate - Filter + Id - Enables you to use wildcards when specifying the Teams and ACS federation configuration settings to be returned. Because you can only have a single, global instance of these settings there is little reason to use the Filter parameter. However, if you prefer, you can use syntax similar to this to retrieve the global settings: -Identity "g*". + > Applicable: Microsoft Teams + The Id of the shared call queue history template. - String + System.String - String + System.String None + + + + Id + + > Applicable: Microsoft Teams + The Id of the shared call queue history template. + + System.String + + System.String + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.OAA.Models.AutoAttendant + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsSharedCallQueueHistoryTemplate -Id 3a4b3d9b-91d8-4fbf-bcff-6907f325842c + + This example retrieves the Shared Call Queue History Template with the Id `3a4b3d9b-91d8-4fbf-bcff-6907f325842c` + + + + -------------------------- Example 2 -------------------------- + Get-CsSharedCallQueueHistoryTemplate + + This example retrieves all the Shared Call Queue History Templates + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/Get-CsSharedCallQueueHistoryTemplate + + + New-CsSharedCallQueueHistoryTemplate + + + + Set-CsSharedCallQueueHistoryTemplate + + + + Remove-CsSharedCallQueueHistoryTemplate + + + + Get-CsCallQueue + + + + New-CsCallQueue + + + + Set-CsCallQueue + + + + Remove-CsCallQueue + + + + + + + Get-CsTagsTemplate + Get + CsTagsTemplate + + Retrieves the Tag templates in the tenant. + + + + The Get-CsTagTemplate cmdlet returns a list of all Tag templates in the tenant. + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for these features. General Availability for this functionality has not been determined at this time. + + - Get-CsTeamsAcsFederationConfiguration + Get-CsTagsTemplate - Identity + Id - Specifies the collection of tenant federation configuration settings to be modified. Because each tenant is limited to a single, global collection of federation settings there is no need include this parameter when calling the Set-CsTenantFederationConfiguration cmdlet. If you do choose to use the Identity parameter you must also include the Tenant parameter. For example: - `Set-CsTenantFederationConfiguration -Tenant "bf19b7db-6960-41e5-a139-2aa373474354" -Identity "global"` + The unique identifier for the Tag template. String @@ -13437,13 +15870,25 @@ $getBatchStatusResponse.BatchItem None + + Tenant + + This parameter is reserved for Microsoft internal use only. + + Guid + + Guid + + + None + - Filter + Id - Enables you to use wildcards when specifying the Teams and ACS federation configuration settings to be returned. Because you can only have a single, global instance of these settings there is little reason to use the Filter parameter. However, if you prefer, you can use syntax similar to this to retrieve the global settings: -Identity "g*". + The unique identifier for the Tag template. String @@ -13453,70 +15898,55 @@ $getBatchStatusResponse.BatchItem None - Identity + Tenant - Specifies the collection of tenant federation configuration settings to be modified. Because each tenant is limited to a single, global collection of federation settings there is no need include this parameter when calling the Set-CsTenantFederationConfiguration cmdlet. If you do choose to use the Identity parameter you must also include the Tenant parameter. For example: - `Set-CsTenantFederationConfiguration -Tenant "bf19b7db-6960-41e5-a139-2aa373474354" -Identity "global"` + This parameter is reserved for Microsoft internal use only. - String + Guid - String + Guid None - + + + + Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue + + + + + + - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsAcsFederationConfiguration - -Identity : Global -AllowedAcsResources : {'faced04c-2ced-433d-90db-063e424b87b1'} -EnableAcsUsers : True - - In this example, federation has been enabled for just one ACS resource. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-CsTeamsAcsFederationConfiguration - -Identity : Global -AllowedAcsResources : {} -EnableAcsUsers : False - - In this example, federation is disabled for all ACS resources. - - - + Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsacsfederationconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstagstemplate - Set-CsTeamsAcsFederationConfiguration - https://learn.microsoft.com/powershell/module/teams/set-csteamsacsfederationconfiguration + New-CsTagsTemplate + - New-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/teams/new-csexternalaccesspolicy + Set-CsTagsTemplate + - Set-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/teams/set-csexternalaccesspolicy + Remove-CsTagsTemplate + - Grant-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csexternalaccesspolicy + New-CsTag + @@ -13659,19 +16089,19 @@ EnableAcsUsers : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsaudioconferencingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsaudioconferencingpolicy Set-CsTeamsAudioConferencingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsaudioconferencingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsaudioconferencingpolicy New-CsTeamsAudioConferencingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsaudioconferencingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsaudioconferencingpolicy Grant-CsTeamsAudioConferencingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsaudioconferencingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsaudioconferencingpolicy @@ -13681,12 +16111,12 @@ EnableAcsUsers : False Get CsTeamsCallParkPolicy - The TeamsCallParkPolicy controls whether or not users are able to leverage the call park feature in Microsoft Teams. Call park allows enterprise voice customers to place a call on hold and then perform a number of actions on that call: transfer to another department, retrieve via the same phone, or retrieve via a different Teams phone. The Get-CsTeamsCallParkPolicy cmdlet returns the policies that are available for your organization. - NOTE: the call park feature is currently only available in the desktop and web clients. Call Park functionality is currently completely disabled in mobile clients. + The Get-CsTeamsCallParkPolicy cmdlet returns the policies that are available for your organization. The TeamsCallParkPolicy controls whether or not users are able to leverage the call park feature. Call park allows enterprise voice customers to place a call on hold and then perform a number of actions on that call: transfer to another department, retrieve via the same phone, or retrieve via a different phone. The Get-CsTeamsCallParkPolicy cmdlet returns the policies that are available for your organization. + NOTE: the call park feature is currently only available in the desktop and web clients. Call Park functionality is currently completely disabled in mobile clients. @@ -13853,7 +16283,7 @@ EnableAcsUsers : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamscallparkpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallparkpolicy @@ -14039,7 +16469,7 @@ EnableAcsUsers : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamscortanapolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscortanapolicy @@ -14058,10 +16488,10 @@ EnableAcsUsers : False Get-CsTeamsEmergencyCallRoutingPolicy - - Identity + + Filter - Specify the policy that you would like to retrieve. + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. String @@ -14073,10 +16503,10 @@ EnableAcsUsers : False Get-CsTeamsEmergencyCallRoutingPolicy - - Filter + + Identity - Enables you to use wildcard characters when indicating the policy (or policies) to be returned. + Specify the policy that you would like to retrieve. String @@ -14088,10 +16518,10 @@ EnableAcsUsers : False - - Identity + + Filter - Specify the policy that you would like to retrieve. + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. String @@ -14100,10 +16530,10 @@ EnableAcsUsers : False None - - Filter + + Identity - Enables you to use wildcard characters when indicating the policy (or policies) to be returned. + Specify the policy that you would like to retrieve. String @@ -14155,23 +16585,23 @@ EnableAcsUsers : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsemergencycallroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsemergencycallroutingpolicy New-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsemergencycallroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallroutingpolicy Set-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsemergencycallroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallroutingpolicy Grant-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsemergencycallroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsemergencycallroutingpolicy Remove-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsemergencycallroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsemergencycallroutingpolicy @@ -14204,42 +16634,42 @@ EnableAcsUsers : False None - LocalStore + Filter - Internal Microsoft use only. + If you don't know what policies have been pre-constructed, you can use filter to identify all policies available. This is a regex string against the name (Identity) of the pre-constructed policies. + String - SwitchParameter + String - False + None - Filter + LocalStore - If you don't know what policies have been pre-constructed, you can use filter to identify all policies available. This is a regex string against the name (Identity) of the pre-constructed policies. + Internal Microsoft use only. - String - String + SwitchParameter - None + False - LocalStore + Filter - Internal Microsoft use only. + If you don't know what policies have been pre-constructed, you can use filter to identify all policies available. This is a regex string against the name (Identity) of the pre-constructed policies. - SwitchParameter + String - SwitchParameter + String - False + None Identity @@ -14255,16 +16685,16 @@ EnableAcsUsers : False None - Filter + LocalStore - If you don't know what policies have been pre-constructed, you can use filter to identify all policies available. This is a regex string against the name (Identity) of the pre-constructed policies. + Internal Microsoft use only. - String + SwitchParameter - String + SwitchParameter - None + False @@ -14302,23 +16732,23 @@ EnableAcsUsers : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsenhancedencryptionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsenhancedencryptionpolicy New-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsenhancedencryptionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsenhancedencryptionpolicy Set-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsenhancedencryptionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsenhancedencryptionpolicy Remove-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsenhancedencryptionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsenhancedencryptionpolicy Grant-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsenhancedencryptionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsenhancedencryptionpolicy @@ -14436,7 +16866,7 @@ EnableAcsUsers : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamseventspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamseventspolicy @@ -14591,7 +17021,7 @@ EnableAcsUsers : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsguestcallingconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsguestcallingconfiguration @@ -14746,7 +17176,7 @@ EnableAcsUsers : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsguestmeetingconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsguestmeetingconfiguration @@ -14901,7 +17331,7 @@ EnableAcsUsers : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsguestmessagingconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsguestmessagingconfiguration @@ -14920,10 +17350,10 @@ EnableAcsUsers : False Get-CsTeamsIPPhonePolicy - - Identity + + Filter - Specify the unique name of the TeamsIPPhonePolicy that you would like to retrieve. + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. To return a collection of all the policies, use this syntax: -Filter "tag:*". String @@ -14947,10 +17377,10 @@ EnableAcsUsers : False Get-CsTeamsIPPhonePolicy - - Filter + + Identity - Enables you to use wildcard characters when indicating the policy (or policies) to be returned. To return a collection of all the policies, use this syntax: -Filter "tag:*". + Specify the unique name of the TeamsIPPhonePolicy that you would like to retrieve. String @@ -14974,10 +17404,10 @@ EnableAcsUsers : False - - Identity + + Filter - Specify the unique name of the TeamsIPPhonePolicy that you would like to retrieve. + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. To return a collection of all the policies, use this syntax: -Filter "tag:*". String @@ -14986,10 +17416,10 @@ EnableAcsUsers : False None - - Filter + + Identity - Enables you to use wildcard characters when indicating the policy (or policies) to be returned. To return a collection of all the policies, use this syntax: -Filter "tag:*". + Specify the unique name of the TeamsIPPhonePolicy that you would like to retrieve. String @@ -15048,7 +17478,7 @@ EnableAcsUsers : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsipphonepolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsipphonepolicy @@ -15068,11 +17498,11 @@ EnableAcsUsers : False Get-CsTeamsMediaLoggingPolicy - - Identity + + Filter - Unique identifier assigned to the Teams Media Logging policy. Note that Teams Media Logging policy has only one instance that has Identity "Enabled". - Use the "Global" Identity if you wish to retrieve the policy set for the entire tenant. + > Applicable: Microsoft Teams + Enables using wildcards when specifying the policy (or policies) to be retrieved. Note that you cannot use both the Filter and the Identity parameters in the same command. String @@ -15084,10 +17514,12 @@ EnableAcsUsers : False Get-CsTeamsMediaLoggingPolicy - - Filter + + Identity - Enables using wildcards when specifying the policy (or policies) to be retrieved. Note that you cannot use both the Filter and the Identity parameters in the same command. + > Applicable: Microsoft Teams + Unique identifier assigned to the Teams Media Logging policy. Note that Teams Media Logging policy has only one instance that has Identity "Enabled". + Use the "Global" Identity if you wish to retrieve the policy set for the entire tenant. String @@ -15099,11 +17531,11 @@ EnableAcsUsers : False - - Identity + + Filter - Unique identifier assigned to the Teams Media Logging policy. Note that Teams Media Logging policy has only one instance that has Identity "Enabled". - Use the "Global" Identity if you wish to retrieve the policy set for the entire tenant. + > Applicable: Microsoft Teams + Enables using wildcards when specifying the policy (or policies) to be retrieved. Note that you cannot use both the Filter and the Identity parameters in the same command. String @@ -15112,10 +17544,12 @@ EnableAcsUsers : False None - - Filter + + Identity - Enables using wildcards when specifying the policy (or policies) to be retrieved. Note that you cannot use both the Filter and the Identity parameters in the same command. + > Applicable: Microsoft Teams + Unique identifier assigned to the Teams Media Logging policy. Note that Teams Media Logging policy has only one instance that has Identity "Enabled". + Use the "Global" Identity if you wish to retrieve the policy set for the entire tenant. String @@ -15160,11 +17594,11 @@ EnableAcsUsers : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsmedialoggingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmedialoggingpolicy Grant-CsTeamsMediaLoggingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsmedialoggingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmedialoggingpolicy @@ -15174,8 +17608,7 @@ EnableAcsUsers : False Get CsTeamsMeetingBroadcastConfiguration - Get-CsTeamsMeetingBroadcastConfiguration [[-Identity] <XdsIdentity>] [-Tenant <guid>] [-ExposeSDNConfigurationJsonBlob <bool>] [-LocalStore] [<CommonParameters>] - Get-CsTeamsMeetingBroadcastConfiguration [-Tenant <guid>] [-ExposeSDNConfigurationJsonBlob <bool>] [-Filter <string>] [-LocalStore] [<CommonParameters>] + Gets Tenant level configuration for broadcast events in Teams. @@ -15336,7 +17769,7 @@ EnableAcsUsers : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsmeetingbroadcastconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingbroadcastconfiguration @@ -15502,7 +17935,7 @@ EnableAcsUsers : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsmeetingbroadcastpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingbroadcastpolicy @@ -15615,7 +18048,7 @@ EnableAcsUsers : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsmobilitypolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmobilitypolicy @@ -15638,9 +18071,9 @@ EnableAcsUsers : False Get-CsTeamsNetworkRoamingPolicy - Identity + Filter - Unique identifier of the policy to be returned. If this parameter is omitted, then all the Teams Network Roaming Policies configured for use in your organization will be returned. + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. String @@ -15665,9 +18098,9 @@ EnableAcsUsers : False Get-CsTeamsNetworkRoamingPolicy - Filter + Identity - Enables you to use wildcard characters when indicating the policy (or policies) to be returned. + Unique identifier of the policy to be returned. If this parameter is omitted, then all the Teams Network Roaming Policies configured for use in your organization will be returned. String @@ -15692,9 +18125,9 @@ EnableAcsUsers : False - Identity + Filter - Unique identifier of the policy to be returned. If this parameter is omitted, then all the Teams Network Roaming Policies configured for use in your organization will be returned. + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. String @@ -15704,9 +18137,9 @@ EnableAcsUsers : False None - Filter + Identity - Enables you to use wildcard characters when indicating the policy (or policies) to be returned. + Unique identifier of the policy to be returned. If this parameter is omitted, then all the Teams Network Roaming Policies configured for use in your organization will be returned. String @@ -15772,7 +18205,7 @@ EnableAcsUsers : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsnetworkroamingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsnetworkroamingpolicy @@ -15911,7 +18344,7 @@ EnableAcsUsers : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsroomvideoteleconferencingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsroomvideoteleconferencingpolicy @@ -16021,11 +18454,11 @@ IsSideloadedAppsInteractionEnabled Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamssettingscustomapp + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamssettingscustomapp Set-CsTeamsSettingsCustomApp - https://learn.microsoft.com/powershell/module/teams/set-csteamssettingscustomapp + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamssettingscustomapp @@ -16172,7 +18605,7 @@ IsSideloadedAppsInteractionEnabled Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsapppolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsapppolicy @@ -16191,6 +18624,18 @@ IsSideloadedAppsInteractionEnabled Get-CsTeamsShiftsConnection + + Authorization + + Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. + + String + + String + + + None + Break @@ -16273,6 +18718,9 @@ IsSideloadedAppsInteractionEnabled False + + + Get-CsTeamsShiftsConnection Authorization @@ -16285,9 +18733,6 @@ IsSideloadedAppsInteractionEnabled None - - - Get-CsTeamsShiftsConnection Break @@ -16370,21 +18815,21 @@ IsSideloadedAppsInteractionEnabled False - - Authorization - - Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. - - String - - String - - - None - + + Authorization + + Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. + + String + + String + + + None + Break @@ -16481,18 +18926,6 @@ IsSideloadedAppsInteractionEnabled False - - Authorization - - Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. - - String - - String - - - None - @@ -16601,19 +19034,19 @@ PS C:\> $connection.ToJsonString() Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnection + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection New-CsTeamsShiftsConnection - https://learn.microsoft.com/powershell/module/teams/new-csteamsshiftsconnection + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnection Set-CsTeamsShiftsConnection - https://learn.microsoft.com/powershell/module/teams/set-csteamsshiftsconnection + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnection Update-CsTeamsShiftsConnection - https://learn.microsoft.com/powershell/module/teams/update-csteamsshiftsconnection + https://learn.microsoft.com/powershell/module/microsoftteams/update-csteamsshiftsconnection @@ -16667,23 +19100,23 @@ Version : 2020.3 - 2021.1 Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectionconnector + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionconnector New-CsTeamsShiftsConnection - https://learn.microsoft.com/powershell/module/teams/new-csteamsshiftsconnection + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnection New-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/teams/new-csteamsshiftsconnectioninstance + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnectioninstance Set-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/teams/set-csteamsshiftsconnectioninstance + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnectioninstance Test-CsTeamsShiftsConnectionValidate - https://learn.microsoft.com/powershell/module/teams/test-csteamsshiftsconnectionvalidate + https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsshiftsconnectionvalidate @@ -16702,21 +19135,10 @@ Version : 2020.3 - 2021.1 Get-CsTeamsShiftsConnectionErrorReport - - ErrorReportId - - The ID of the error report. - - String - - String - - - None - Activeness + > Applicable: Microsoft Teams The flag indicating results should have which activeness. Set this to `ActiveOnly` to get Error reports that are not resolved. Set this to `InactiveOnly` to get Error reports that are resolved. Set this to `Both` to get both active and inactive Error reports. String @@ -16727,9 +19149,10 @@ Version : 2020.3 - 2021.1 None - ConnectionId + After - The UUID of a WFM connection. + > Applicable: Microsoft Teams + The timestamp indicating results should be after which date and time. String @@ -16739,9 +19162,9 @@ Version : 2020.3 - 2021.1 None - ConnectorInstanceId + Authorization - The UUID of a connector instance. + Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. String @@ -16751,9 +19174,10 @@ Version : 2020.3 - 2021.1 None - TeamId + Before - The UUID of a team in Graph. + > Applicable: Microsoft Teams + The timestamp indicating results should be before which date and time. String @@ -16763,21 +19187,21 @@ Version : 2020.3 - 2021.1 None - Operation + Break - The name of the action of the controller or the name of the command. + Wait for the .NET debugger to attach. - String - String + SwitchParameter - None + False - Procedure + Code - The name of the executing function or procedure. + > Applicable: Microsoft Teams + The enum value of error code, human readable string defined in codebase. String @@ -16787,9 +19211,10 @@ Version : 2020.3 - 2021.1 None - Code + ConnectionId - The enum value of error code, human readable string defined in codebase. + > Applicable: Microsoft Teams + The UUID of a WFM connection. String @@ -16799,9 +19224,10 @@ Version : 2020.3 - 2021.1 None - Before + ConnectorInstanceId - The timestamp indicating results should be before which date and time. + > Applicable: Microsoft Teams + The UUID of a connector instance. String @@ -16811,9 +19237,10 @@ Version : 2020.3 - 2021.1 None - After + ErrorReportId - The timestamp indicating results should be after which date and time. + > Applicable: Microsoft Teams + The ID of the error report. String @@ -16823,48 +19250,51 @@ Version : 2020.3 - 2021.1 None - Authorization + HttpPipelineAppend - Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. + SendAsync Pipeline Steps to be appended to the front of the pipeline. - String + SendAsyncStep[] - String + SendAsyncStep[] None - Break + HttpPipelinePrepend - Wait for the .NET debugger to attach. + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + SendAsyncStep[] - SwitchParameter + SendAsyncStep[] - False + None - HttpPipelineAppend + Operation - SendAsync Pipeline Steps to be appended to the front of the pipeline. + > Applicable: Microsoft Teams + The name of the action of the controller or the name of the command. - SendAsyncStep[] + String - SendAsyncStep[] + String None - HttpPipelinePrepend + Procedure - SendAsync Pipeline Steps to be prepended to the front of the pipeline. + > Applicable: Microsoft Teams + The name of the executing function or procedure. - SendAsyncStep[] + String - SendAsyncStep[] + String None @@ -16904,13 +19334,11 @@ Version : 2020.3 - 2021.1 False - - - Get-CsTeamsShiftsConnectionErrorReport - ErrorReportId + TeamId - The ID of the error report. + > Applicable: Microsoft Teams + The UUID of a team in Graph. String @@ -16919,9 +19347,13 @@ Version : 2020.3 - 2021.1 None + + + Get-CsTeamsShiftsConnectionErrorReport Activeness + > Applicable: Microsoft Teams The flag indicating results should have which activeness. Set this to `ActiveOnly` to get Error reports that are not resolved. Set this to `InactiveOnly` to get Error reports that are resolved. Set this to `Both` to get both active and inactive Error reports. String @@ -16932,9 +19364,10 @@ Version : 2020.3 - 2021.1 None - ConnectionId + After - The UUID of a WFM connection. + > Applicable: Microsoft Teams + The timestamp indicating results should be after which date and time. String @@ -16944,9 +19377,10 @@ Version : 2020.3 - 2021.1 None - ConnectorInstanceId + Before - The UUID of a connector instance. + > Applicable: Microsoft Teams + The timestamp indicating results should be before which date and time. String @@ -16956,21 +19390,21 @@ Version : 2020.3 - 2021.1 None - TeamId + Break - The UUID of a team in Graph. + Wait for the .NET debugger to attach. - String - String + SwitchParameter - None + False - Operation + Code - The name of the action of the controller or the name of the command. + > Applicable: Microsoft Teams + The enum value of error code, human readable string defined in codebase. String @@ -16980,9 +19414,10 @@ Version : 2020.3 - 2021.1 None - Procedure + ConnectionId - The name of the executing function or procedure. + > Applicable: Microsoft Teams + The UUID of a WFM connection. String @@ -16992,9 +19427,10 @@ Version : 2020.3 - 2021.1 None - Code + ConnectorInstanceId - The enum value of error code, human readable string defined in codebase. + > Applicable: Microsoft Teams + The UUID of a connector instance. String @@ -17004,9 +19440,10 @@ Version : 2020.3 - 2021.1 None - Before + ErrorReportId - The timestamp indicating results should be before which date and time. + > Applicable: Microsoft Teams + The ID of the error report. String @@ -17016,60 +19453,63 @@ Version : 2020.3 - 2021.1 None - After + HttpPipelineAppend - The timestamp indicating results should be after which date and time. + SendAsync Pipeline Steps to be appended to the front of the pipeline. - String + SendAsyncStep[] - String + SendAsyncStep[] None - Break + HttpPipelinePrepend - Wait for the .NET debugger to attach. + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + SendAsyncStep[] - SwitchParameter + SendAsyncStep[] - False + None - - HttpPipelineAppend + + InputObject - SendAsync Pipeline Steps to be appended to the front of the pipeline. + Identity Parameter - SendAsyncStep[] + IConfigApiBasedCmdletsIdentity - SendAsyncStep[] + IConfigApiBasedCmdletsIdentity None - HttpPipelinePrepend + Operation - SendAsync Pipeline Steps to be prepended to the front of the pipeline. + > Applicable: Microsoft Teams + The name of the action of the controller or the name of the command. - SendAsyncStep[] + String - SendAsyncStep[] + String None - - InputObject + + Procedure - Identity Parameter + > Applicable: Microsoft Teams + The name of the executing function or procedure. - IConfigApiBasedCmdletsIdentity + String - IConfigApiBasedCmdletsIdentity + String None @@ -17109,24 +19549,26 @@ Version : 2020.3 - 2021.1 False + + TeamId + + > Applicable: Microsoft Teams + The UUID of a team in Graph. + + String + + String + + + None + - - ErrorReportId - - The ID of the error report. - - String - - String - - - None - Activeness + > Applicable: Microsoft Teams The flag indicating results should have which activeness. Set this to `ActiveOnly` to get Error reports that are not resolved. Set this to `InactiveOnly` to get Error reports that are resolved. Set this to `Both` to get both active and inactive Error reports. String @@ -17136,93 +19578,10 @@ Version : 2020.3 - 2021.1 None - - ConnectionId - - The UUID of a WFM connection. - - String - - String - - - None - - - ConnectorInstanceId - - The UUID of a connector instance. - - String - - String - - - None - - - TeamId - - The UUID of a team in Graph. - - String - - String - - - None - - - Operation - - The name of the action of the controller or the name of the command. - - String - - String - - - None - - - Procedure - - The name of the executing function or procedure. - - String - - String - - - None - - - Code - - The enum value of error code, human readable string defined in codebase. - - String - - String - - - None - - - Before - - The timestamp indicating results should be before which date and time. - - String - - String - - - None - After + > Applicable: Microsoft Teams The timestamp indicating results should be after which date and time. String @@ -17244,6 +19603,19 @@ Version : 2020.3 - 2021.1 None + + Before + + > Applicable: Microsoft Teams + The timestamp indicating results should be before which date and time. + + String + + String + + + None + Break @@ -17256,6 +19628,58 @@ Version : 2020.3 - 2021.1 False + + Code + + > Applicable: Microsoft Teams + The enum value of error code, human readable string defined in codebase. + + String + + String + + + None + + + ConnectionId + + > Applicable: Microsoft Teams + The UUID of a WFM connection. + + String + + String + + + None + + + ConnectorInstanceId + + > Applicable: Microsoft Teams + The UUID of a connector instance. + + String + + String + + + None + + + ErrorReportId + + > Applicable: Microsoft Teams + The ID of the error report. + + String + + String + + + None + HttpPipelineAppend @@ -17292,6 +19716,32 @@ Version : 2020.3 - 2021.1 None + + Operation + + > Applicable: Microsoft Teams + The name of the action of the controller or the name of the command. + + String + + String + + + None + + + Procedure + + > Applicable: Microsoft Teams + The name of the executing function or procedure. + + String + + String + + + None + Proxy @@ -17328,6 +19778,19 @@ Version : 2020.3 - 2021.1 False + + TeamId + + > Applicable: Microsoft Teams + The UUID of a team in Graph. + + String + + String + + + None + @@ -17429,11 +19892,11 @@ WFMAuthError 26/01/2023 16:08:31 en-US False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectionerrorreport + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionerrorreport Disable-CsTeamsShiftsConnectionErrorReport - https://learn.microsoft.com/powershell/module/teams/disable-csteamsshiftsconnectionerrorreport + https://learn.microsoft.com/powershell/module/microsoftteams/disable-csteamsshiftsconnectionerrorreport @@ -17845,19 +20308,19 @@ PS C:\> $ci.ToJsonString() Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectioninstance + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance New-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/teams/new-csteamsshiftsconnectioninstance + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnectioninstance Set-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/teams/set-csteamsshiftsconnectioninstance + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnectioninstance Remove-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/teams/remove-csteamsshiftsconnectioninstance + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftsconnectioninstance @@ -17867,11 +20330,11 @@ PS C:\> $ci.ToJsonString() Get CsTeamsShiftsConnectionOperation - This cmdlet gets the requested batch mapping operation. The batch mapping operation can be submitted by running New-CsTeamsShiftsConnectionBatchTeamMap (https://learn.microsoft.com/powershell/module/teams/new-csteamsshiftsconnectionbatchteammap). + This cmdlet gets the requested batch mapping operation. - This cmdlet returns the details of a specific batch team mapping operation. + This cmdlet returns the details of a specific batch team mapping operation. The batch mapping operation can be submitted by running New-CsTeamsShiftsConnectionBatchTeamMap (New-CsTeamsShiftsConnectionBatchTeamMap.md). @@ -18156,8 +20619,8 @@ PS C:\> $ci.ToJsonString() PS C:\> Get-CsTeamsShiftsConnectionOperation -OperationId c79131b7-9ecb-484b-a8df-2959c7c1e5f2 CreatedDateTime LastActionDateTime Id Status TenantId Type WfmConnectorInstanceId ---------------- ------------------ ----------- ------ -------- ---- ---------------------- -12/6/2021 7:28:51 PM 12/6/2021 7:28:51 PM c79131b7-9ecb-484b-a8df-2959c7c1e5f2 NotStarted dfd24b34-ccb0-47e1-bdb7-e49db9c7c14a TeamsMappingOperation WCI-2afeb8ec-a0f6-4580-8f1e-85fd4a113e01 +--------------- ------------------ ----------- ------ -------- ---- ---------------------- +12/6/2021 7:28:51 PM 12/6/2021 7:28:51 PM c79131b7-9ecb-484b-a8df-2959c7c1e5f2 NotStarted dfd24b34-ccb0-47e1-bdb7-e49db9c7c14a TeamsMappingOperation WCI-2afeb8ec-a0f6-4580-8f1e-85fd4a113e01 Returns the details of batch mapping operation with ID `c79131b7-9ecb-484b-a8df-2959c7c1e5f2`. @@ -18166,11 +20629,11 @@ CreatedDateTime LastActionDateTime Id Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectionoperation + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionoperation New-CsTeamsShiftsConnectionBatchTeamMap - https://learn.microsoft.com/powershell/module/teams/new-csteamsshiftsconnectionbatchteammap + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnectionbatchteammap @@ -18192,7 +20655,8 @@ CreatedDateTime LastActionDateTime Id ConnectorInstanceId - The ID of the connection instance. It can be retrieved by running Get-CsTeamsShiftsConnectionInstance (https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectioninstance). + > Applicable: Microsoft Teams + The ID of the connection instance. It can be retrieved by running Get-CsTeamsShiftsConnectionInstance (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance). String @@ -18201,26 +20665,27 @@ CreatedDateTime LastActionDateTime Id None - - TeamId + + InputObject - The Teams team ID. It can be retrieved by visiting AzureAAD (https://portal.azure.com/#blade/Microsoft_AAD_IAM/GroupsManagementMenuBlade/AllGroups). + The Identity parameter. - String + IConfigApiBasedCmdletsIdentity - String + IConfigApiBasedCmdletsIdentity None - - InputObject + + TeamId - The Identity parameter. + > Applicable: Microsoft Teams + The Teams team ID. It can be retrieved by visiting AzureAAD (https://portal.azure.com/#blade/Microsoft_AAD_IAM/GroupsManagementMenuBlade/AllGroups). - IConfigApiBasedCmdletsIdentity + String - IConfigApiBasedCmdletsIdentity + String None @@ -18231,7 +20696,8 @@ CreatedDateTime LastActionDateTime Id ConnectorInstanceId - The ID of the connection instance. It can be retrieved by running Get-CsTeamsShiftsConnectionInstance (https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectioninstance). + > Applicable: Microsoft Teams + The ID of the connection instance. It can be retrieved by running Get-CsTeamsShiftsConnectionInstance (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance). String @@ -18240,26 +20706,27 @@ CreatedDateTime LastActionDateTime Id None - - TeamId + + InputObject - The Teams team ID. It can be retrieved by visiting AzureAAD (https://portal.azure.com/#blade/Microsoft_AAD_IAM/GroupsManagementMenuBlade/AllGroups). + The Identity parameter. - String + IConfigApiBasedCmdletsIdentity - String + IConfigApiBasedCmdletsIdentity None - - InputObject + + TeamId - The Identity parameter. + > Applicable: Microsoft Teams + The Teams team ID. It can be retrieved by visiting AzureAAD (https://portal.azure.com/#blade/Microsoft_AAD_IAM/GroupsManagementMenuBlade/AllGroups). - IConfigApiBasedCmdletsIdentity + String - IConfigApiBasedCmdletsIdentity + String None @@ -18288,11 +20755,11 @@ FailedAadUser FailedWfmUser SuccessfulUser Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectionsyncresult + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionsyncresult Get-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectioninstance + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance @@ -18306,7 +20773,7 @@ FailedAadUser FailedWfmUser SuccessfulUser - Workforce management (WFM) systems have locations / sites that are mapped to a Microsoft Teams team for synchronization of shifts data. This cmdlet shows the list of mapped teams inside the connection instance. Instance IDs can be found by running Get-CsTeamsShiftsConnectionInstance (https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectioninstance). + Workforce management (WFM) systems have locations / sites that are mapped to a Microsoft Teams team for synchronization of shifts data. This cmdlet shows the list of mapped teams inside the connection instance. Instance IDs can be found by running Get-CsTeamsShiftsConnectionInstance (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance). @@ -18314,6 +20781,7 @@ FailedAadUser FailedWfmUser SuccessfulUser ConnectorInstanceId + > Applicable: Microsoft Teams The ID of the connection instance. String @@ -18341,6 +20809,7 @@ FailedAadUser FailedWfmUser SuccessfulUser ConnectorInstanceId + > Applicable: Microsoft Teams The ID of the connection instance. String @@ -18390,15 +20859,15 @@ TeamId TeamName TimeZone WfmTeamId WfmT Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectionteammap + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionteammap Remove-CsTeamsShiftsConnectionTeamMap - https://learn.microsoft.com/powershell/module/teams/remove-csteamsshiftsconnectionteammap + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftsconnectionteammap Get-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectioninstance + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance @@ -18417,10 +20886,10 @@ TeamId TeamName TimeZone WfmTeamId WfmT Get-CsTeamsShiftsConnectionWfmTeam - - ConnectorInstanceId + + Authorization - The ID of the connection instance. You can retrieve it by running Get-CsTeamsShiftsConnectionInstance (https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectioninstance). + Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. String @@ -18429,22 +20898,22 @@ TeamId TeamName TimeZone WfmTeamId WfmT None - - ConnectionId + + Break - The ID of the connection. You can retrieve it by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnection). + Wait for the .NET debugger to attach. - String - String + SwitchParameter - None + False - - Authorization + + ConnectionId - Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. + > Applicable: Microsoft Teams + The ID of the connection. You can retrieve it by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). String @@ -18453,16 +20922,18 @@ TeamId TeamName TimeZone WfmTeamId WfmT None - - Break + + ConnectorInstanceId - Wait for the .NET debugger to attach. + > Applicable: Microsoft Teams + The ID of the connection instance. You can retrieve it by running Get-CsTeamsShiftsConnectionInstance (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance). + String - SwitchParameter + String - False + None HttpPipelineAppend @@ -18526,10 +20997,10 @@ TeamId TeamName TimeZone WfmTeamId WfmT Get-CsTeamsShiftsConnectionWfmTeam - - ConnectorInstanceId + + Authorization - The ID of the connection instance. You can retrieve it by running Get-CsTeamsShiftsConnectionInstance (https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectioninstance). + Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. String @@ -18538,22 +21009,22 @@ TeamId TeamName TimeZone WfmTeamId WfmT None - - ConnectionId + + Break - The ID of the connection. You can retrieve it by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnection). + Wait for the .NET debugger to attach. - String - String + SwitchParameter - None + False - - Authorization + + ConnectionId - Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. + > Applicable: Microsoft Teams + The ID of the connection. You can retrieve it by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). String @@ -18562,16 +21033,18 @@ TeamId TeamName TimeZone WfmTeamId WfmT None - - Break + + ConnectorInstanceId - Wait for the .NET debugger to attach. + > Applicable: Microsoft Teams + The ID of the connection instance. You can retrieve it by running Get-CsTeamsShiftsConnectionInstance (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance). + String - SwitchParameter + String - False + None HttpPipelineAppend @@ -18647,22 +21120,22 @@ TeamId TeamName TimeZone WfmTeamId WfmT Get-CsTeamsShiftsConnectionWfmTeam - - ConnectorInstanceId + + Break - The ID of the connection instance. You can retrieve it by running Get-CsTeamsShiftsConnectionInstance (https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectioninstance). + Wait for the .NET debugger to attach. - String - String + SwitchParameter - None + False ConnectionId - The ID of the connection. You can retrieve it by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnection). + > Applicable: Microsoft Teams + The ID of the connection. You can retrieve it by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). String @@ -18671,16 +21144,18 @@ TeamId TeamName TimeZone WfmTeamId WfmT None - - Break + + ConnectorInstanceId - Wait for the .NET debugger to attach. + > Applicable: Microsoft Teams + The ID of the connection instance. You can retrieve it by running Get-CsTeamsShiftsConnectionInstance (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance). + String - SwitchParameter + String - False + None HttpPipelineAppend @@ -18756,10 +21231,10 @@ TeamId TeamName TimeZone WfmTeamId WfmT - - ConnectorInstanceId + + Authorization - The ID of the connection instance. You can retrieve it by running Get-CsTeamsShiftsConnectionInstance (https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectioninstance). + Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. String @@ -18768,22 +21243,23 @@ TeamId TeamName TimeZone WfmTeamId WfmT None - - ConnectionId + + Break - The ID of the connection. You can retrieve it by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnection). + Wait for the .NET debugger to attach. - String + SwitchParameter - String + SwitchParameter - None + False - - Authorization + + ConnectionId - Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. + > Applicable: Microsoft Teams + The ID of the connection. You can retrieve it by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). String @@ -18792,17 +21268,18 @@ TeamId TeamName TimeZone WfmTeamId WfmT None - - Break + + ConnectorInstanceId - Wait for the .NET debugger to attach. + > Applicable: Microsoft Teams + The ID of the connection instance. You can retrieve it by running Get-CsTeamsShiftsConnectionInstance (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance). - SwitchParameter + String - SwitchParameter + String - False + None HttpPipelineAppend @@ -18941,19 +21418,19 @@ Id Name Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectionwfmteam + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionwfmteam Get-CsTeamsShiftsConnection - https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnection + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection Get-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectioninstance + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance Get-CsTeamsShiftsConnectionWfmUser - https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectionwfmuser + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionwfmuser @@ -18975,7 +21452,8 @@ Id Name ConnectorInstanceId - The ID of the connection instance. It can be retrieved by running Get-CsTeamsShiftsConnectionInstance (https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectioninstance). + > Applicable: Microsoft Teams + The ID of the connection instance. It can be retrieved by running Get-CsTeamsShiftsConnectionInstance (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance). String @@ -18984,26 +21462,27 @@ Id Name None - - WfmTeamId + + InputObject - The Teams team ID. It can be retrieved by running Get-CsTeamsShiftsConnectionWfmTeam (https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectionwfmteam). + The identity parameter. - String + IConfigApiBasedCmdletsIdentity - String + IConfigApiBasedCmdletsIdentity None - - InputObject + + WfmTeamId - The identity parameter. + > Applicable: Microsoft Teams + The Teams team ID. It can be retrieved by running Get-CsTeamsShiftsConnectionWfmTeam (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionwfmteam). - IConfigApiBasedCmdletsIdentity + String - IConfigApiBasedCmdletsIdentity + String None @@ -19014,7 +21493,8 @@ Id Name ConnectorInstanceId - The ID of the connection instance. It can be retrieved by running Get-CsTeamsShiftsConnectionInstance (https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectioninstance). + > Applicable: Microsoft Teams + The ID of the connection instance. It can be retrieved by running Get-CsTeamsShiftsConnectionInstance (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance). String @@ -19023,26 +21503,27 @@ Id Name None - - WfmTeamId + + InputObject - The Teams team ID. It can be retrieved by running Get-CsTeamsShiftsConnectionWfmTeam (https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectionwfmteam). + The identity parameter. - String + IConfigApiBasedCmdletsIdentity - String + IConfigApiBasedCmdletsIdentity None - - InputObject + + WfmTeamId - The identity parameter. + > Applicable: Microsoft Teams + The Teams team ID. It can be retrieved by running Get-CsTeamsShiftsConnectionWfmTeam (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionwfmteam). - IConfigApiBasedCmdletsIdentity + String - IConfigApiBasedCmdletsIdentity + String None @@ -19077,15 +21558,15 @@ Id Name Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectionwfmuser + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionwfmuser Get-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectioninstance + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance Get-CsTeamsShiftsConnectionWfmTeam - https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectionwfmteam + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionwfmteam @@ -19095,10 +21576,12 @@ Id Name Get CsTeamsSurvivableBranchAppliance - The Survivable Branch Appliance (SBA) cmdlets facilitate the continuation of Teams Phone operations, allowing for the placement and reception of Public Switched Telephone Network (PSTN) calls during service disruptions. These cmdlets are exclusively intended for Tenant Administrators and Session Border Controller (SBC) Vendors. In the absence of SBA configuration within a Tenant, the cmdlets will be inoperative. + Gets the Survivable Branch Appliance (SBA) configured in the tenant. - + + The Survivable Branch Appliance (SBA) cmdlets facilitate the continuation of Teams Phone operations, allowing for the placement and reception of Public Switched Telephone Network (PSTN) calls during service disruptions. These cmdlets are exclusively intended for Tenant Administrators and Session Border Controller (SBC) Vendors. In the absence of SBA configuration within a Tenant, the cmdlets will be inoperative. + Get-CsTeamsSurvivableBranchAppliance @@ -19222,7 +21705,7 @@ Id Name Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamssurvivablebranchappliance + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamssurvivablebranchappliance @@ -19232,10 +21715,12 @@ Id Name Get CsTeamsSurvivableBranchAppliancePolicy - The Survivable Branch Appliance (SBA) Policy cmdlets facilitate the continuation of Teams Phone operations, allowing for the placement and reception of Public Switched Telephone Network (PSTN) calls during service disruptions. These cmdlets are exclusively intended for Tenant Administrators and Session Border Controller (SBC) Vendors. In the absence of SBA configuration within a Tenant, the cmdlets will be inoperative. + Get the Survivable Branch Appliance (SBA) Policy defined in the tenant. - + + The Survivable Branch Appliance (SBA) Policy cmdlets facilitate the continuation of Teams Phone operations, allowing for the placement and reception of Public Switched Telephone Network (PSTN) calls during service disruptions. These cmdlets are exclusively intended for Tenant Administrators and Session Border Controller (SBC) Vendors. In the absence of SBA configuration within a Tenant, the cmdlets will be inoperative. + Get-CsTeamsSurvivableBranchAppliancePolicy @@ -19359,7 +21844,7 @@ Id Name Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamssurvivablebranchappliancepolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamssurvivablebranchappliancepolicy @@ -19369,12 +21854,11 @@ Id Name Get CsTeamsTargetingPolicy - The Teams Targeting Policy cmdlets enable administrators to control the type of Tenant tag setting that users can create or the features that they can access while in a meeting. It also helps determine how meetings deal with anonymous or external users. + The Get-CsTeamsTargetingPolicy cmdlet enables you to return information about all the Tenant tag setting policies that have been configured for use in your organization. The CsTeamsTargetingPolicy cmdlets enable administrators to control the type of tags that users can create or the features that they can access in Teams. It also helps determine how tags deal with Teams members or guest users. - The Get-CsTeamsTargetingPolicy cmdlet enables you to return information about all the Tenant tag setting policies that have been configured for use in your organization. @@ -19507,15 +21991,15 @@ Id Name Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamstargetingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamstargetingpolicy Set-CsTargetingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamstargetingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstargetingpolicy Remove-CsTargetingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamstargetingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamstargetingpolicy @@ -19534,14 +22018,27 @@ Id Name Get-CsTeamsTranslationRule - - Identity + + Filter - Identifier of the specific translation rule to display. + > Applicable: Microsoft Teams + The filter to use against the Identity of translation rules. - String + System.String - String + System.String + + + None + + + MsftInternalProcessingMode + + {{ Fill MsftInternalProcessingMode Description }} + + System.String + + System.String None @@ -19549,14 +22046,27 @@ Id Name Get-CsTeamsTranslationRule + + Identity + + > Applicable: Microsoft Teams + Identifier of the specific translation rule to display. + + System.String + + System.String + + + None + - Filter + MsftInternalProcessingMode - The filter to use against the Identity of translation rules. + {{ Fill MsftInternalProcessingMode Description }} - String + System.String - String + System.String None @@ -19564,26 +22074,40 @@ Id Name + + Filter + + > Applicable: Microsoft Teams + The filter to use against the Identity of translation rules. + + System.String + + System.String + + + None + Identity + > Applicable: Microsoft Teams Identifier of the specific translation rule to display. - String + System.String - String + System.String None - Filter + MsftInternalProcessingMode - The filter to use against the Identity of translation rules. + {{ Fill MsftInternalProcessingMode Description }} - String + System.String - String + System.String None @@ -19622,23 +22146,23 @@ Id Name Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamstranslationrule + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamstranslationrule New-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/teams/new-csteamstranslationrule + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamstranslationrule Test-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/teams/test-csteamstranslationrule + https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamstranslationrule Set-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/teams/set-csteamstranslationrule + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstranslationrule Remove-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/teams/remove-csteamstranslationrule + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamstranslationrule @@ -19660,11 +22184,24 @@ Id Name Filter + > Applicable: Microsoft Teams Enables you to limit the returned data by filtering on the Identity attribute. - String + System.String - String + System.String + + + None + + + MsftInternalProcessingMode + + {{ Fill MsftInternalProcessingMode Description }} + + System.String + + System.String None @@ -19684,17 +22221,30 @@ Id Name None + + MsftInternalProcessingMode + + {{ Fill MsftInternalProcessingMode Description }} + + System.String + + System.String + + + None + Filter + > Applicable: Microsoft Teams Enables you to limit the returned data by filtering on the Identity attribute. - String + System.String - String + System.String None @@ -19711,6 +22261,18 @@ Id Name None + + MsftInternalProcessingMode + + {{ Fill MsftInternalProcessingMode Description }} + + System.String + + System.String + + + None + @@ -19763,19 +22325,19 @@ Id Name Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsunassignednumbertreatment + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsunassignednumbertreatment Remove-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/teams/remove-csteamsunassignednumbertreatment + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsunassignednumbertreatment New-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/teams/new-csteamsunassignednumbertreatment + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsunassignednumbertreatment Set-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/teams/set-csteamsunassignednumbertreatment + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsunassignednumbertreatment @@ -19785,12 +22347,13 @@ Id Name Get CsTeamsUpgradePolicy - TeamsUpgradePolicy allows administrators to manage the transition from Skype for Business to Teams. - > [!IMPORTANT] > It can take up to 24 hours for a change to TeamsUpgradePolicy to take effect. Before then, user presence status may not be correct (may show as Unknown ). + This cmdlet returns the set of instances of this policy. - TeamsUpgradePolicy allows administrators to manage the transition from Skype for Business to Teams. This cmdlet returns the set of instances of this policy. As an organization with Skype for Business starts to adopt Teams, administrators can manage the user experience in their organization using the concept of coexistence "mode". Mode defines in which client incoming chats and calls land as well as in what service (Teams or Skype for Business) new meetings are scheduled in. Mode also governs whether chat, calling, and meeting scheduling functionality are available in the Teams client. Finally, prior to upgrading to TeamsOnly mode administrators can use TeamsUpgradePolicy to trigger notifications in the Skype for Business client to inform users of the pending upgrade. + TeamsUpgradePolicy allows administrators to manage the transition from Skype for Business to Teams. As an organization with Skype for Business starts to adopt Teams, administrators can manage the user experience in their organization using the concept of coexistence "mode". Mode defines in which client incoming chats and calls land as well as in what service (Teams or Skype for Business) new meetings are scheduled in. Mode also governs whether chat, calling, and meeting scheduling functionality are available in the Teams client. Finally, prior to upgrading to TeamsOnly mode administrators can use TeamsUpgradePolicy to trigger notifications in the Skype for Business client to inform users of the pending upgrade. + > [!IMPORTANT] > It can take up to 24 hours for a change to TeamsUpgradePolicy to take effect. Before then, user presence status may not be correct (may show as Unknown ). + NOTES: - Except for on-premise versions of Skype for Business Server, all relevant instances of TeamsUpgradePolicy are built into the system, so there is no corresponding New cmdlet. - If you are using Skype for Business Server, there are no built-in instances and you'll need to create one. Also, only the NotifySfBUsers property is available. Mode is not present. - Using TeamsUpgradePolicy in an on-premises environmention requires Skype for Business Server 2015 with CU8 or later. You can also find more guidance here: Migration and interoperability guidance for organizations using Teams together with Skype for Business (https://learn.microsoft.com/microsoftteams/migration-interop-guidance-for-teams-with-skype). @@ -19800,6 +22363,7 @@ Id Name Identity + > Applicable: Microsoft Teams If identity parameter is passed, this will return a specific instance. If no identity parameter is specified, the cmdlet returns all instances. XdsIdentity @@ -19812,6 +22376,7 @@ Id Name Filter + > Applicable: Microsoft Teams {{Fill Filter Description}} String @@ -19824,6 +22389,7 @@ Id Name Tenant + > Applicable: Microsoft Teams {{Fill Tenant Description}} Guid @@ -19836,26 +22402,28 @@ Id Name - - Identity + + Filter - If identity parameter is passed, this will return a specific instance. If no identity parameter is specified, the cmdlet returns all instances. + > Applicable: Microsoft Teams + {{Fill Filter Description}} - XdsIdentity + String - XdsIdentity + String None - - Filter + + Identity - {{Fill Filter Description}} + > Applicable: Microsoft Teams + If identity parameter is passed, this will return a specific instance. If no identity parameter is specified, the cmdlet returns all instances. - String + XdsIdentity - String + XdsIdentity None @@ -19863,6 +22431,7 @@ Id Name Tenant + > Applicable: Microsoft Teams {{Fill Tenant Description}} Guid @@ -19988,15 +22557,15 @@ NotifySfbUsers : False Get-CsTeamsUpgradeConfiguration - https://learn.microsoft.com/powershell/module/teams/get-csteamsupgradeconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsupgradeconfiguration Set-CsTeamsUpgradeConfiguration - https://learn.microsoft.com/powershell/module/teams/set-csteamsupgradeconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsupgradeconfiguration Grant-CsTeamsUpgradePolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsupgradepolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsupgradepolicy Migration and interoperability guidance for organizations using Teams together with Skype for Business @@ -20010,12 +22579,11 @@ NotifySfbUsers : False Get CsTeamsVideoInteropServicePolicy - Cloud Video Interop for Teams enables 3rd party VTC devices to be able to join Teams meetings. You can use the TeamsVideoInteropServicePolicy cmdlets to enable Cloud Video Interop for particular users or for your entire organization. + The Get-CsTeamsVideoInteropServicePolicy cmdlet allows you to identify the pre-constructed policies that you can use in your organization. - Cloud Video Interop for Teams enables 3rd party VTC devices to be able to join Teams meetings. You can use the TeamsVideoInteropServicePolicy cmdlets to enable Cloud Video Interop for particular users or for your entire organization. Microsoft provides pre-constructed policies for each of our supported partners that allow you to designate which partner(s) to use for cloud video interop. - The Get-CsTeamsVideoInteropServicePolicy cmdlet allows you to identify the pre-constructed policies that you can use in your organization. You can assign this policy to one or more of your users leveraging the Grant-CsTeamsVideoInteropServicePolicy cmdlet. + Cloud Video Interop for Teams enables 3rd party VTC devices to be able to join Teams meetings. You can use the TeamsVideoInteropServicePolicy cmdlets to enable Cloud Video Interop for particular users or for your entire organization. Microsoft provides pre-constructed policies for each of our supported partners that allow you to designate which partner(s) to use for cloud video interop. You can assign this policy to one or more of your users leveraging the Grant-CsTeamsVideoInteropServicePolicy cmdlet. @@ -20182,7 +22750,7 @@ NotifySfbUsers : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsvideointeropservicepolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsvideointeropservicepolicy @@ -20329,23 +22897,23 @@ NotifySfbUsers : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamsworkloadpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsworkloadpolicy Remove-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsworkloadpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsworkloadpolicy New-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsworkloadpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsworkloadpolicy Set-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsworkloadpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsworkloadpolicy Grant-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsworkloadpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsworkloadpolicy @@ -20356,27 +22924,15 @@ NotifySfbUsers : False CsTeamTemplate This cmdlet supports retrieving details of a team template available to your tenant given the team template uri. - NOTE: The returned template definition is a PowerShell object formatted as a JSON for readability. Please refer to the examples for suggested interaction flows for template management. This cmdlet supports retrieving details of a team template available to your tenant given the team template uri. + NOTE: The returned template definition is a PowerShell object formatted as a JSON for readability. Please refer to the examples for suggested interaction flows for template management. Get-CsTeamTemplate - - OdataId - - A composite URI of a template. - - String - - String - - - None - Break @@ -20412,6 +22968,18 @@ NotifySfbUsers : False None + + InputObject + + Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + Proxy @@ -20450,18 +23018,6 @@ NotifySfbUsers : False Get-CsTeamTemplate - - InputObject - - Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - None - Break @@ -20497,6 +23053,18 @@ NotifySfbUsers : False None + + OdataId + + A composite URI of a template. + + String + + String + + + None + Proxy @@ -20535,30 +23103,6 @@ NotifySfbUsers : False - - OdataId - - A composite URI of a template. - - String - - String - - - None - - - InputObject - - Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - None - Break @@ -20595,6 +23139,30 @@ NotifySfbUsers : False None + + InputObject + + Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + OdataId + + A composite URI of a template. + + String + + String + + + None + Proxy @@ -20686,27 +23254,27 @@ NotifySfbUsers : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamtemplate + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplate Get-CsTeamTemplateList - https://learn.microsoft.com/powershell/module/teams/get-csteamtemplatelist + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplatelist Get-CsTeamTemplate - https://learn.microsoft.com/powershell/module/teams/get-csteamtemplate + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplate New-CsTeamTemplate - https://learn.microsoft.com/powershell/module/teams/new-csteamtemplate + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamtemplate Update-CsTeamTemplate - https://learn.microsoft.com/powershell/module/teams/update-csteamtemplate + https://learn.microsoft.com/powershell/module/microsoftteams/update-csteamtemplate Remove-CsTeamTemplate - https://learn.microsoft.com/powershell/module/teams/remove-csteamtemplate + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamtemplate @@ -20716,57 +23284,45 @@ NotifySfbUsers : False Get CsTeamTemplateList - This cmdlet supports retrieving information of all team templates available to your tenant, including both first party Microsoft team templates as well as custom templates. The templates information retrieved includes OData Id, template name, short description, count of channels and count of applications. Note: All custom templates will be retrieved, regardless of the locale specification. If you have hidden templates in the admin center, you will still be able to see the hidden templates here. + Get a list of available team templates - Get a list of available team templates + This cmdlet supports retrieving information of all team templates available to your tenant, including both first party Microsoft team templates as well as custom templates. The templates information retrieved includes OData Id, template name, short description, count of channels and count of applications. Note: All custom templates will be retrieved, regardless of the locale specification. If you have hidden templates in the admin center, you will still be able to see the hidden templates here. Get-CsTeamTemplateList - - PublicTemplateLocale + + InputObject - The language and country code of templates localization for Microsoft team templates. This will not be applied to your tenant custom team templates. Defaults to en-US. + Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - String + IConfigApiBasedCmdletsIdentity - String + IConfigApiBasedCmdletsIdentity - 'en-US' + None Get-CsTeamTemplateList - - InputObject + + PublicTemplateLocale - Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + The language and country code of templates localization for Microsoft team templates. This will not be applied to your tenant custom team templates. Defaults to en-US. - IConfigApiBasedCmdletsIdentity + String - IConfigApiBasedCmdletsIdentity + String - None + 'en-US' - - PublicTemplateLocale - - The language and country code of templates localization for Microsoft team templates. This will not be applied to your tenant custom team templates. Defaults to en-US. - - String - - String - - - 'en-US' - InputObject @@ -20779,6 +23335,18 @@ NotifySfbUsers : False None + + PublicTemplateLocale + + The language and country code of templates localization for Microsoft team templates. This will not be applied to your tenant custom team templates. Defaults to en-US. + + String + + String + + + 'en-US' + @@ -20834,23 +23402,23 @@ NotifySfbUsers : False Get-CsTeamTemplateList - https://learn.microsoft.com/powershell/module/teams/get-csteamtemplatelist + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplatelist Get-CsTeamTemplate - https://learn.microsoft.com/powershell/module/teams/get-csteamtemplate + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplate New-CsTeamTemplate - https://learn.microsoft.com/powershell/module/teams/new-csteamtemplate + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamtemplate Update-CsTeamTemplate - https://learn.microsoft.com/powershell/module/teams/update-csteamtemplate + https://learn.microsoft.com/powershell/module/microsoftteams/update-csteamtemplate Remove-CsTeamTemplate - https://learn.microsoft.com/powershell/module/teams/remove-csteamtemplate + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamtemplate @@ -20934,7 +23502,7 @@ NotifySfbUsers : False Identity - Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. + > Applicable: Microsoft Teams Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. Unique identifier for the tenant. For example: -Identity "bf19b7db-6960-41e5-a139-2aa373474354" If you do not include either the Identity or the Filter parameter then the `Get-CsTenant` cmdlet will return information about all your tenants. @@ -20949,6 +23517,7 @@ NotifySfbUsers : False DomainController + > Applicable: Microsoft Teams This parameter is not used with Skype for Business Online and will be deprecated in the near future. Fqdn @@ -20961,7 +23530,7 @@ NotifySfbUsers : False Filter - Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. + > Applicable: Microsoft Teams Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. Enables you to return data by using Active Directory attributes and without having to specify the full Active Directory distinguished name. For example, to retrieve a tenant by using the tenant display name, use syntax similar to this: Get-CsTenant -Filter {DisplayName -eq "FabrikamTenant"} To return all tenants that use a Fabrikam domain use this syntax: @@ -20979,7 +23548,7 @@ NotifySfbUsers : False ResultSize - Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. + > Applicable: Microsoft Teams Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. Enables you to limit the number of records returned by the cmdlet. For example, to return seven tenants (regardless of the number of tenants that are in your forest) include the ResultSize parameter and set the parameter value to 7. Note that there is no way to guarantee which 7 users will be returned. The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0 the command will run, but no data will be returned. If you set the tenants to 7 but you have only three contacts in your forest, the command will return those three tenants and then complete without error. @@ -20996,6 +23565,7 @@ NotifySfbUsers : False DomainController + > Applicable: Microsoft Teams This parameter is not used with Skype for Business Online and will be deprecated in the near future. Fqdn @@ -21008,7 +23578,7 @@ NotifySfbUsers : False Filter - Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. + > Applicable: Microsoft Teams Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. Enables you to return data by using Active Directory attributes and without having to specify the full Active Directory distinguished name. For example, to retrieve a tenant by using the tenant display name, use syntax similar to this: Get-CsTenant -Filter {DisplayName -eq "FabrikamTenant"} To return all tenants that use a Fabrikam domain use this syntax: @@ -21026,7 +23596,7 @@ NotifySfbUsers : False Identity - Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. + > Applicable: Microsoft Teams Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. Unique identifier for the tenant. For example: -Identity "bf19b7db-6960-41e5-a139-2aa373474354" If you do not include either the Identity or the Filter parameter then the `Get-CsTenant` cmdlet will return information about all your tenants. @@ -21041,7 +23611,7 @@ NotifySfbUsers : False ResultSize - Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. + > Applicable: Microsoft Teams Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. Enables you to limit the number of records returned by the cmdlet. For example, to return seven tenants (regardless of the number of tenants that are in your forest) include the ResultSize parameter and set the parameter value to 7. Note that there is no way to guarantee which 7 users will be returned. The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0 the command will run, but no data will be returned. If you set the tenants to 7 but you have only three contacts in your forest, the command will return those three tenants and then complete without error. @@ -21090,7 +23660,7 @@ NotifySfbUsers : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-cstenant + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenant @@ -21113,10 +23683,10 @@ NotifySfbUsers : False Get-CsTenantBlockedCallingNumbers - - Identity + + Filter - The Identity parameter is a unique identifier that designates the scope, and for per-user scope a name, which identifies the TenantBlockedCallingNumbers to retrieve. + The Filter parameter allows you to limit the number of results based on filters you specify. String @@ -21140,10 +23710,10 @@ NotifySfbUsers : False Get-CsTenantBlockedCallingNumbers - - Filter + + Identity - The Filter parameter allows you to limit the number of results based on filters you specify. + The Identity parameter is a unique identifier that designates the scope, and for per-user scope a name, which identifies the TenantBlockedCallingNumbers to retrieve. String @@ -21167,10 +23737,10 @@ NotifySfbUsers : False - - Identity + + Filter - The Identity parameter is a unique identifier that designates the scope, and for per-user scope a name, which identifies the TenantBlockedCallingNumbers to retrieve. + The Filter parameter allows you to limit the number of results based on filters you specify. String @@ -21179,10 +23749,10 @@ NotifySfbUsers : False None - - Filter + + Identity - The Filter parameter allows you to limit the number of results based on filters you specify. + The Identity parameter is a unique identifier that designates the scope, and for per-user scope a name, which identifies the TenantBlockedCallingNumbers to retrieve. String @@ -21241,15 +23811,15 @@ NotifySfbUsers : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-cstenantblockedcallingnumbers + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantblockedcallingnumbers Set-CsTenantBlockedCallingNumbers - https://learn.microsoft.com/powershell/module/teams/set-cstenantblockedcallingnumbers + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantblockedcallingnumbers Test-CsInboundBlockedNumberPattern - https://learn.microsoft.com/powershell/module/teams/test-csinboundblockednumberpattern + https://learn.microsoft.com/powershell/module/microsoftteams/test-csinboundblockednumberpattern @@ -21272,6 +23842,7 @@ NotifySfbUsers : False Filter + > Applicable: Microsoft Teams The Filter parameter allows you to limit the number of results based on filters you specify. String @@ -21287,6 +23858,7 @@ NotifySfbUsers : False Identity + > Applicable: Microsoft Teams The Identity parameter is a unique identifier that designates the name of the tenant dial plan to retrieve. String @@ -21302,6 +23874,7 @@ NotifySfbUsers : False Filter + > Applicable: Microsoft Teams The Filter parameter allows you to limit the number of results based on filters you specify. String @@ -21314,6 +23887,7 @@ NotifySfbUsers : False Identity + > Applicable: Microsoft Teams The Identity parameter is a unique identifier that designates the name of the tenant dial plan to retrieve. String @@ -21350,23 +23924,23 @@ NotifySfbUsers : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-cstenantdialplan + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantdialplan Grant-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/teams/grant-cstenantdialplan + https://learn.microsoft.com/powershell/module/microsoftteams/grant-cstenantdialplan New-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/teams/new-cstenantdialplan + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantdialplan Set-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/teams/set-cstenantdialplan + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantdialplan Remove-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/teams/remove-cstenantdialplan + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantdialplan @@ -21391,6 +23965,7 @@ NotifySfbUsers : False Identity + > Applicable: Microsoft Teams Specifies the collection of tenant federation configuration settings to be returned. Because each tenant is limited to a single, global collection of federation settings there is no need include this parameter when calling the Get-CsTenantFederationConfiguration cmdlet. If you do choose to use the Identity parameter you must also include the Tenant parameter. For example: `Get-CsTenantFederationConfiguration -Tenant "bf19b7db-6960-41e5-a139-2aa373474354" -Identity "global"` @@ -21404,6 +23979,7 @@ NotifySfbUsers : False Filter + > Applicable: Microsoft Teams Enables you to use wildcard characters in order to return a collection of tenant federation configuration settings. Because each tenant is limited to a single, global collection of federation configuration settings there is no need to use the Filter parameter. However, this is valid syntax for the Get-CsTenantFederationConfiguration cmdlet: `Get-CsTenantFederationConfiguration -Tenant "bf19b7db-6960-41e5-a139-2aa373474354" -Filter "g*"` @@ -21417,6 +23993,7 @@ NotifySfbUsers : False LocalStore + > Applicable: Microsoft Teams This parameter is not used with Skype for Business Online. @@ -21428,6 +24005,7 @@ NotifySfbUsers : False Tenant + > Applicable: Microsoft Teams Globally unique identifier (GUID) of the tenant account whose federation settings are being returned. For example: `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"` You can return the tenant ID for each of your tenants by running this command: @@ -21447,6 +24025,7 @@ NotifySfbUsers : False Filter + > Applicable: Microsoft Teams Enables you to use wildcard characters in order to return a collection of tenant federation configuration settings. Because each tenant is limited to a single, global collection of federation configuration settings there is no need to use the Filter parameter. However, this is valid syntax for the Get-CsTenantFederationConfiguration cmdlet: `Get-CsTenantFederationConfiguration -Tenant "bf19b7db-6960-41e5-a139-2aa373474354" -Filter "g*"` @@ -21460,6 +24039,7 @@ NotifySfbUsers : False Identity + > Applicable: Microsoft Teams Specifies the collection of tenant federation configuration settings to be returned. Because each tenant is limited to a single, global collection of federation settings there is no need include this parameter when calling the Get-CsTenantFederationConfiguration cmdlet. If you do choose to use the Identity parameter you must also include the Tenant parameter. For example: `Get-CsTenantFederationConfiguration -Tenant "bf19b7db-6960-41e5-a139-2aa373474354" -Identity "global"` @@ -21473,6 +24053,7 @@ NotifySfbUsers : False LocalStore + > Applicable: Microsoft Teams This parameter is not used with Skype for Business Online. SwitchParameter @@ -21485,6 +24066,7 @@ NotifySfbUsers : False Tenant + > Applicable: Microsoft Teams Globally unique identifier (GUID) of the tenant account whose federation settings are being returned. For example: `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"` You can return the tenant ID for each of your tenants by running this command: @@ -21543,11 +24125,11 @@ NotifySfbUsers : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-cstenantfederationconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantfederationconfiguration Set-CsTenantFederationConfiguration - https://learn.microsoft.com/powershell/module/teams/set-cstenantfederationconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantfederationconfiguration @@ -21571,6 +24153,7 @@ NotifySfbUsers : False Filter + > Applicable: Microsoft Teams Enables you to use wildcard characters in order to return a collection of tenant licensing configuration settings. Because each tenant is limited to a single, global collection of licensing configuration settings there is no need to use the Filter parameter. String @@ -21598,6 +24181,7 @@ NotifySfbUsers : False Identity + > Applicable: Microsoft Teams Specifies the collection of tenant licensing configuration settings to be returned. Because each tenant is limited to a single, global collection of licensing settings there is no need include this parameter when calling the Get-CsTenantLicensingConfiguration cmdlet. XdsIdentity @@ -21625,6 +24209,7 @@ NotifySfbUsers : False Filter + > Applicable: Microsoft Teams Enables you to use wildcard characters in order to return a collection of tenant licensing configuration settings. Because each tenant is limited to a single, global collection of licensing configuration settings there is no need to use the Filter parameter. String @@ -21637,6 +24222,7 @@ NotifySfbUsers : False Identity + > Applicable: Microsoft Teams Specifies the collection of tenant licensing configuration settings to be returned. Because each tenant is limited to a single, global collection of licensing settings there is no need include this parameter when calling the Get-CsTenantLicensingConfiguration cmdlet. XdsIdentity @@ -21696,11 +24282,11 @@ NotifySfbUsers : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-cstenantlicensingconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantlicensingconfiguration Get-CsTenant - https://learn.microsoft.com/powershell/module/teams/get-cstenant + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenant @@ -21723,6 +24309,7 @@ NotifySfbUsers : False Identity + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. XdsIdentity @@ -21735,6 +24322,7 @@ NotifySfbUsers : False Filter + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -21747,6 +24335,7 @@ NotifySfbUsers : False LocalStore + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. @@ -21758,6 +24347,7 @@ NotifySfbUsers : False Tenant + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Guid @@ -21773,6 +24363,7 @@ NotifySfbUsers : False Filter + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -21785,6 +24376,7 @@ NotifySfbUsers : False Identity + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. XdsIdentity @@ -21797,6 +24389,7 @@ NotifySfbUsers : False LocalStore + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. SwitchParameter @@ -21809,6 +24402,7 @@ NotifySfbUsers : False Tenant + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Guid @@ -21838,11 +24432,11 @@ NotifySfbUsers : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-cstenantmigrationconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantmigrationconfiguration Set-CsTenantMigrationConfiguration - https://learn.microsoft.com/powershell/module/teams/set-cstenantmigrationconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantmigrationconfiguration @@ -22007,19 +24601,19 @@ NotifySfbUsers : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-cstenantnetworkconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworkconfiguration Get-CsTenantNetworkSite - https://learn.microsoft.com/powershell/module/teams/get-cstenantnetworksite + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworksite Get-CsTenantNetworkSubnet - https://learn.microsoft.com/powershell/module/teams/get-cstenantnetworksite + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworksite Get-CsTenantNetworkRegion - https://learn.microsoft.com/powershell/module/teams/get-cstenantnetworksite + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworksite @@ -22140,19 +24734,19 @@ NotifySfbUsers : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-cstenantnetworkregion + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworkregion New-CsTenantNetworkRegion - https://learn.microsoft.com/powershell/module/teams/new-cstenantnetworkregion + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworkregion Remove-CsTenantNetworkRegion - https://learn.microsoft.com/powershell/module/teams/remove-cstenantnetworkregion + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworkregion Set-CsTenantNetworkRegion - https://learn.microsoft.com/powershell/module/teams/set-cstenantnetworkregion + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworkregion @@ -22174,10 +24768,10 @@ NotifySfbUsers : False Get-CsTenantNetworkSubnet - - Identity + + Filter - The Identity parameter is a unique identifier that designates the scope. It specifies the collection of tenant network subnets to be returned. + The Filter parameter allows you to limit the number of results based on filters you specify. String @@ -22189,10 +24783,10 @@ NotifySfbUsers : False Get-CsTenantNetworkSubnet - - Filter + + Identity - The Filter parameter allows you to limit the number of results based on filters you specify. + The Identity parameter is a unique identifier that designates the scope. It specifies the collection of tenant network subnets to be returned. String @@ -22204,10 +24798,10 @@ NotifySfbUsers : False - - Identity + + Filter - The Identity parameter is a unique identifier that designates the scope. It specifies the collection of tenant network subnets to be returned. + The Filter parameter allows you to limit the number of results based on filters you specify. String @@ -22216,10 +24810,10 @@ NotifySfbUsers : False None - - Filter + + Identity - The Filter parameter allows you to limit the number of results based on filters you specify. + The Identity parameter is a unique identifier that designates the scope. It specifies the collection of tenant network subnets to be returned. String @@ -22264,19 +24858,19 @@ NotifySfbUsers : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-cstenantnetworksubnet + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworksubnet New-CsTenantNetworkSubnet - https://learn.microsoft.com/powershell/module/teams/new-cstenantnetworksubnet + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworksubnet Remove-CsTenantNetworkSubnet - https://learn.microsoft.com/powershell/module/teams/remove-cstenantnetworksubnet + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworksubnet Set-CsTenantNetworkSubnet - https://learn.microsoft.com/powershell/module/teams/set-cstenantnetworksubnet + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworksubnet @@ -22467,7 +25061,7 @@ NotifySfbUsers : False Online Version: - https://learn.microsoft.com/powershell/module/teams/get-cstenanttrustedipaddress + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenanttrustedipaddress @@ -22486,6 +25080,41 @@ NotifySfbUsers : False Get-CsUserCallingSettings + + Break + + {{ Fill Break Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + HttpPipelineAppend + + {{ Fill HttpPipelineAppend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + Identity @@ -22498,9 +25127,165 @@ NotifySfbUsers : False None + + Proxy + + {{ Fill Proxy Description }} + + System.Uri + + System.Uri + + + None + + + ProxyCredential + + {{ Fill ProxyCredential Description }} + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + ProxyUseDefaultCredentials + + {{ Fill ProxyUseDefaultCredentials Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + + Get-CsUserCallingSettings + + Break + + {{ Fill Break Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + HttpPipelineAppend + + {{ Fill HttpPipelineAppend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + InputObject + + {{ Fill InputObject Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + None + + + Proxy + + {{ Fill Proxy Description }} + + System.Uri + + System.Uri + + + None + + + ProxyCredential + + {{ Fill ProxyCredential Description }} + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + ProxyUseDefaultCredentials + + {{ Fill ProxyUseDefaultCredentials Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + Break + + {{ Fill Break Description }} + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + HttpPipelineAppend + + {{ Fill HttpPipelineAppend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + Identity @@ -22513,6 +25298,54 @@ NotifySfbUsers : False None + + InputObject + + {{ Fill InputObject Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + None + + + Proxy + + {{ Fill Proxy Description }} + + System.Uri + + System.Uri + + + None + + + ProxyCredential + + {{ Fill ProxyCredential Description }} + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + ProxyUseDefaultCredentials + + {{ Fill ProxyUseDefaultCredentials Description }} + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + @@ -22703,23 +25536,23 @@ GroupNotificationOverride : Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csusercallingsettings + https://learn.microsoft.com/powershell/module/microsoftteams/get-csusercallingsettings Set-CsUserCallingSettings - https://learn.microsoft.com/powershell/module/teams/set-csusercallingsettings + https://learn.microsoft.com/powershell/module/microsoftteams/set-csusercallingsettings New-CsUserCallingDelegate - https://learn.microsoft.com/powershell/module/teams/new-csusercallingdelegate + https://learn.microsoft.com/powershell/module/microsoftteams/new-csusercallingdelegate Set-CsUserCallingDelegate - https://learn.microsoft.com/powershell/module/teams/set-csusercallingdelegate + https://learn.microsoft.com/powershell/module/microsoftteams/set-csusercallingdelegate Remove-CsUserCallingDelegate - https://learn.microsoft.com/powershell/module/teams/remove-csusercallingdelegate + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csusercallingdelegate @@ -22739,62 +25572,62 @@ GroupNotificationOverride : Get-CsUserPolicyAssignment - - Identity + + Break - The identify of the user whose policy assignments will be returned. - The -Identity parameter can be in the form of the users ObjectID (taken from Microsoft Entra ID) or in the form of the UPN (a.smith@example.com) + Wait for .NET debugger to attach - String - String + SwitchParameter - None + False - PolicyType + HttpPipelineAppend - Use to filter to a specific policy type. + SendAsync Pipeline Steps to be appended to the front of the pipeline - String + SendAsyncStep[] - String + SendAsyncStep[] None - Break + HttpPipelinePrepend - Wait for .NET debugger to attach + SendAsync Pipeline Steps to be prepended to the front of the pipeline + SendAsyncStep[] - SwitchParameter + SendAsyncStep[] - False + None - - HttpPipelineAppend + + Identity - SendAsync Pipeline Steps to be appended to the front of the pipeline + The identify of the user whose policy assignments will be returned. + The -Identity parameter can be in the form of the users ObjectID (taken from Microsoft Entra ID) or in the form of the UPN (a.smith@example.com) - SendAsyncStep[] + String - SendAsyncStep[] + String None - HttpPipelinePrepend + PolicyType - SendAsync Pipeline Steps to be prepended to the front of the pipeline + Use to filter to a specific policy type. - SendAsyncStep[] + String - SendAsyncStep[] + String None @@ -22837,61 +25670,61 @@ GroupNotificationOverride : Get-CsUserPolicyAssignment - - InputObject + + Break - Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + Wait for .NET debugger to attach - IIc3AdminConfigRpPolicyIdentity - IIc3AdminConfigRpPolicyIdentity + SwitchParameter - None + False - PolicyType + HttpPipelineAppend - Use to filter to a specific policy type. + SendAsync Pipeline Steps to be appended to the front of the pipeline - String + SendAsyncStep[] - String + SendAsyncStep[] None - Break + HttpPipelinePrepend - Wait for .NET debugger to attach + SendAsync Pipeline Steps to be prepended to the front of the pipeline + SendAsyncStep[] - SwitchParameter + SendAsyncStep[] - False + None - - HttpPipelineAppend + + InputObject - SendAsync Pipeline Steps to be appended to the front of the pipeline + Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - SendAsyncStep[] + IIc3AdminConfigRpPolicyIdentity - SendAsyncStep[] + IIc3AdminConfigRpPolicyIdentity None - HttpPipelinePrepend + PolicyType - SendAsync Pipeline Steps to be prepended to the front of the pipeline + Use to filter to a specific policy type. - SendAsyncStep[] + String - SendAsyncStep[] + String None @@ -22934,75 +25767,75 @@ GroupNotificationOverride : - - Identity + + Break - The identify of the user whose policy assignments will be returned. - The -Identity parameter can be in the form of the users ObjectID (taken from Microsoft Entra ID) or in the form of the UPN (a.smith@example.com) + Wait for .NET debugger to attach - String + SwitchParameter - String + SwitchParameter - None + False - - InputObject + + HttpPipelineAppend - Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + SendAsync Pipeline Steps to be appended to the front of the pipeline - IIc3AdminConfigRpPolicyIdentity + SendAsyncStep[] - IIc3AdminConfigRpPolicyIdentity + SendAsyncStep[] None - PolicyType + HttpPipelinePrepend - Use to filter to a specific policy type. + SendAsync Pipeline Steps to be prepended to the front of the pipeline - String + SendAsyncStep[] - String + SendAsyncStep[] None - - Break + + Identity - Wait for .NET debugger to attach + The identify of the user whose policy assignments will be returned. + The -Identity parameter can be in the form of the users ObjectID (taken from Microsoft Entra ID) or in the form of the UPN (a.smith@example.com) - SwitchParameter + String - SwitchParameter + String - False + None - - HttpPipelineAppend + + InputObject - SendAsync Pipeline Steps to be appended to the front of the pipeline + Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - SendAsyncStep[] + IIc3AdminConfigRpPolicyIdentity - SendAsyncStep[] + IIc3AdminConfigRpPolicyIdentity None - HttpPipelinePrepend + PolicyType - SendAsync Pipeline Steps to be prepended to the front of the pipeline + Use to filter to a specific policy type. - SendAsyncStep[] + String - SendAsyncStep[] + String None @@ -23122,19 +25955,15 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csuserpolicyassignment + https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicyassignment New-CsGroupPolicyAssignment - https://learn.microsoft.com/powershell/module/teams/new-csgrouppolicyassignment - - - Set-CsGroupPolicyAssignment - https://learn.microsoft.com/powershell/module/teams/set-csgrouppolicyassignment + https://learn.microsoft.com/powershell/module/microsoftteams/new-csgrouppolicyassignment Remove-CsGroupPolicyAssignment - https://learn.microsoft.com/powershell/module/teams/remove-csgrouppolicyassignment + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csgrouppolicyassignment @@ -23156,6 +25985,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Identity + > Applicable: Microsoft Teams The user that will get their assigned policy package. String @@ -23171,6 +26001,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Identity + > Applicable: Microsoft Teams The user that will get their assigned policy package. String @@ -23200,19 +26031,19 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csuserpolicypackage + https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicypackage Get-CsPolicyPackage - https://learn.microsoft.com/powershell/module/teams/get-cspolicypackage + https://learn.microsoft.com/powershell/module/microsoftteams/get-cspolicypackage Get-CsUserPolicyPackageRecommendation - https://learn.microsoft.com/powershell/module/teams/get-csuserpolicypackagerecommendation + https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicypackagerecommendation Grant-CsUserPolicyPackage - https://learn.microsoft.com/powershell/module/teams/grant-csuserpolicypackage + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csuserpolicypackage @@ -23234,6 +26065,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Identity + > Applicable: Microsoft Teams The user that will receive policy package recommendations. String @@ -23249,6 +26081,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Identity + > Applicable: Microsoft Teams The user that will receive policy package recommendations. String @@ -23278,19 +26111,19 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csuserpolicypackagerecommendation + https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicypackagerecommendation Get-CsPolicyPackage - https://learn.microsoft.com/powershell/module/teams/get-cspolicypackage + https://learn.microsoft.com/powershell/module/microsoftteams/get-cspolicypackage Get-CsUserPolicyPackage - https://learn.microsoft.com/powershell/module/teams/get-csuserpolicypackage + https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicypackage Grant-CsUserPolicyPackage - https://learn.microsoft.com/powershell/module/teams/grant-csuserpolicypackage + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csuserpolicypackage @@ -23300,7 +26133,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Get CsVideoInteropServiceProvider - Cloud Video Interop for Teams enables 3rd party VTC devices to be able to join Teams meetings. The CsVideoInteropServiceProvider cmdlets allow you to designate provider/tenant specific information about the connection to the provider. + Get information about the Cloud Video Interop for Teams. @@ -23471,7 +26304,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csvideointeropserviceprovider + https://learn.microsoft.com/powershell/module/microsoftteams/get-csvideointeropserviceprovider @@ -23502,17 +26335,16 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - PolicyName + + Confirm - Name of the policy to be assigned. The PolicyName is simply the policy Identity without the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:ASimplePolicy has a PolicyName equal to ASimplePolicy. + Prompts you for confirmation before running the cmdlet. - PSListModifier - PSListModifier + SwitchParameter - None + False Global @@ -23538,21 +26370,21 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - Rank + MsftInternalProcessingMode - The rank of the policy assignment, relative to other group policy assignments for the same policy type. + For internal use only. - Int32 + String - Int32 + String None - - Confirm + + PassThru - Prompts you for confirmation before running the cmdlet. + Allows the user to indicate whether the cmdlet passes an output object through the pipeline, in this case, after a process is stopped. Be aware that this parameter is tied to the cmdlet itself instead of to a property of the input object. SwitchParameter @@ -23561,27 +26393,28 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - MsftInternalProcessingMode + PolicyName - For internal use only. + Name of the policy to be assigned. The PolicyName is simply the policy Identity without the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:ASimplePolicy has a PolicyName equal to ASimplePolicy. - String + PSListModifier - String + PSListModifier None - PassThru + Rank - Allows the user to indicate whether the cmdlet passes an output object through the pipeline, in this case, after a process is stopped. Be aware that this parameter is tied to the cmdlet itself instead of to a property of the input object. + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + Int32 - SwitchParameter + Int32 - False + None WhatIf @@ -23597,29 +26430,17 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - - Identity - - Indicates the user (object) ID of the user account to be assigned the per-user application access policy. - - UserIdParameter - - UserIdParameter - - - None - - - PolicyName + + Confirm - Name of the policy to be assigned. The PolicyName is simply the policy Identity without the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:ASimplePolicy has a PolicyName equal to ASimplePolicy. + Prompts you for confirmation before running the cmdlet. - PSListModifier + SwitchParameter - PSListModifier + SwitchParameter - None + False Global @@ -23645,22 +26466,34 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None + + Identity + + Indicates the user (object) ID of the user account to be assigned the per-user application access policy. + + UserIdParameter + + UserIdParameter + + + None + - Rank + MsftInternalProcessingMode - The rank of the policy assignment, relative to other group policy assignments for the same policy type. + For internal use only. - Int32 + String - Int32 + String None - - Confirm + + PassThru - Prompts you for confirmation before running the cmdlet. + Allows the user to indicate whether the cmdlet passes an output object through the pipeline, in this case, after a process is stopped. Be aware that this parameter is tied to the cmdlet itself instead of to a property of the input object. SwitchParameter @@ -23670,28 +26503,28 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - MsftInternalProcessingMode + PolicyName - For internal use only. + Name of the policy to be assigned. The PolicyName is simply the policy Identity without the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:ASimplePolicy has a PolicyName equal to ASimplePolicy. - String + PSListModifier - String + PSListModifier None - PassThru + Rank - Allows the user to indicate whether the cmdlet passes an output object through the pipeline, in this case, after a process is stopped. Be aware that this parameter is tied to the cmdlet itself instead of to a property of the input object. + The rank of the policy assignment, relative to other group policy assignments for the same policy type. - SwitchParameter + Int32 - SwitchParameter + Int32 - False + None WhatIf @@ -23746,23 +26579,23 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csapplicationaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csapplicationaccesspolicy New-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/teams/new-csapplicationaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy Get-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/teams/new-csapplicationaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy Set-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/teams/new-csapplicationaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy Remove-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/teams/new-csapplicationaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy @@ -23784,6 +26617,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 PolicyName + > Applicable: Microsoft Teams The name (Identity) of the Caller ID policy to be assigned. To remove an existing user level policy assignment, specify PolicyName as $null. String @@ -23793,10 +26627,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - Global + + Confirm - Sets the parameters of the Global policy instance to the values in the specified policy instance. + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. SwitchParameter @@ -23805,9 +26640,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - PassThru + Global - Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsCallingLineIdentity cmdlet does not pass objects through the pipeline. + > Applicable: Microsoft Teams + Sets the parameters of the Global policy instance to the values in the specified policy instance. SwitchParameter @@ -23815,10 +26651,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - WhatIf + + PassThru - The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + > Applicable: Microsoft Teams + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsCallingLineIdentity cmdlet does not pass objects through the pipeline. SwitchParameter @@ -23826,10 +26663,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm + + WhatIf - The Confirm switch causes the command to pause processing and requires confirmation to proceed. + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. SwitchParameter @@ -23843,6 +26681,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Group + > Applicable: Microsoft Teams Specifies the group used for the group policy assignment. String @@ -23855,6 +26694,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 PolicyName + > Applicable: Microsoft Teams The name (Identity) of the Caller ID policy to be assigned. To remove an existing user level policy assignment, specify PolicyName as $null. String @@ -23864,9 +26704,22 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + + SwitchParameter + + + False + PassThru + > Applicable: Microsoft Teams Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsCallingLineIdentity cmdlet does not pass objects through the pipeline. @@ -23878,6 +26731,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Rank + > Applicable: Microsoft Teams The rank of the policy assignment, relative to other group policy assignments for the same policy type. Int32 @@ -23890,6 +26744,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 WhatIf + > Applicable: Microsoft Teams The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. @@ -23898,23 +26753,13 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm - - The Confirm switch causes the command to pause processing and requires confirmation to proceed. - - - SwitchParameter - - - False - Grant-CsCallingLineIdentity Identity + > Applicable: Microsoft Teams The Identity of the user to whom the policy is being assigned. User Identities can be specified using the user's SIP address, the user's user principal name (UPN), or the user's ObjectId/Identity. String @@ -23927,6 +26772,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 PolicyName + > Applicable: Microsoft Teams The name (Identity) of the Caller ID policy to be assigned. To remove an existing user level policy assignment, specify PolicyName as $null. String @@ -23936,10 +26782,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - PassThru + + Confirm - Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsCallingLineIdentity cmdlet does not pass objects through the pipeline. + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. SwitchParameter @@ -23947,10 +26794,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - WhatIf + + PassThru - The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + > Applicable: Microsoft Teams + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsCallingLineIdentity cmdlet does not pass objects through the pipeline. SwitchParameter @@ -23958,10 +26806,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm + + WhatIf - The Confirm switch causes the command to pause processing and requires confirmation to proceed. + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. SwitchParameter @@ -23972,10 +26821,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - - Global + + Confirm - Sets the parameters of the Global policy instance to the values in the specified policy instance. + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. SwitchParameter @@ -23985,9 +26835,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - PassThru + Global - Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsCallingLineIdentity cmdlet does not pass objects through the pipeline. + > Applicable: Microsoft Teams + Sets the parameters of the Global policy instance to the values in the specified policy instance. SwitchParameter @@ -23996,10 +26847,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - PolicyName + + Group - The name (Identity) of the Caller ID policy to be assigned. To remove an existing user level policy assignment, specify PolicyName as $null. + > Applicable: Microsoft Teams + Specifies the group used for the group policy assignment. String @@ -24008,10 +26860,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - Group + + Identity - Specifies the group used for the group policy assignment. + > Applicable: Microsoft Teams + The Identity of the user to whom the policy is being assigned. User Identities can be specified using the user's SIP address, the user's user principal name (UPN), or the user's ObjectId/Identity. String @@ -24021,21 +26874,23 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - Rank + PassThru - The rank of the policy assignment, relative to other group policy assignments for the same policy type. + > Applicable: Microsoft Teams + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsCallingLineIdentity cmdlet does not pass objects through the pipeline. - Int32 + SwitchParameter - Int32 + SwitchParameter - None + False - - Identity + + PolicyName - The Identity of the user to whom the policy is being assigned. User Identities can be specified using the user's SIP address, the user's user principal name (UPN), or the user's ObjectId/Identity. + > Applicable: Microsoft Teams + The name (Identity) of the Caller ID policy to be assigned. To remove an existing user level policy assignment, specify PolicyName as $null. String @@ -24044,22 +26899,24 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - WhatIf + + Rank - The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + > Applicable: Microsoft Teams + The rank of the policy assignment, relative to other group policy assignments for the same policy type. - SwitchParameter + Int32 - SwitchParameter + Int32 - False + None - - Confirm + + WhatIf - The Confirm switch causes the command to pause processing and requires confirmation to proceed. + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. SwitchParameter @@ -24102,23 +26959,23 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-cscallinglineidentity + https://learn.microsoft.com/powershell/module/microsoftteams/grant-cscallinglineidentity Set-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/teams/set-cscallinglineidentity + https://learn.microsoft.com/powershell/module/microsoftteams/set-cscallinglineidentity Get-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/teams/get-cscallinglineidentity + https://learn.microsoft.com/powershell/module/microsoftteams/get-cscallinglineidentity Remove-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/teams/remove-cscallinglineidentity + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cscallinglineidentity New-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/teams/new-cscallinglineidentity + https://learn.microsoft.com/powershell/module/microsoftteams/new-cscallinglineidentity @@ -24141,6 +26998,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 PolicyName + > Applicable: Microsoft Teams "Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:DialoutCPCZoneAPSTNDomestic has a PolicyName equal to DialoutCPCZoneAPSTNDomestic. To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). @@ -24151,10 +27009,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - Global + + Confirm - This parameter sets the tenant global policy instance. This is the policy that all users in the tenant will get unless they have a specific policy instance assigned. + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -24163,9 +27022,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - PassThru + Global - Returns the results of the command. By default, this cmdlet does not generate any output. + > Applicable: Microsoft Teams + This parameter sets the tenant global policy instance. This is the policy that all users in the tenant will get unless they have a specific policy instance assigned. SwitchParameter @@ -24173,10 +27033,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - WhatIf + + PassThru - Shows what would happen if the cmdlet runs. The cmdlet is not run. + > Applicable: Microsoft Teams + Returns the results of the command. By default, this cmdlet does not generate any output. SwitchParameter @@ -24184,10 +27045,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -24201,6 +27063,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Group + > Applicable: Microsoft Teams Specifies the group used for the group policy assignment. String @@ -24213,6 +27076,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 PolicyName + > Applicable: Microsoft Teams "Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:DialoutCPCZoneAPSTNDomestic has a PolicyName equal to DialoutCPCZoneAPSTNDomestic. To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). @@ -24223,9 +27087,22 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + PassThru + > Applicable: Microsoft Teams Returns the results of the command. By default, this cmdlet does not generate any output. @@ -24237,6 +27114,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Rank + > Applicable: Microsoft Teams The rank of the policy assignment, relative to other group policy assignments for the same policy type. Int32 @@ -24249,6 +27127,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 WhatIf + > Applicable: Microsoft Teams Shows what would happen if the cmdlet runs. The cmdlet is not run. @@ -24257,23 +27136,13 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - Grant-CsDialoutPolicy Identity + > Applicable: Microsoft Teams Specifies the Identity of the user account to be to be modified. A user identity can be specified by using one of three formats: 1) the user's SIP address; 2) the user's user principal name (UPN); 3) the user's ObjectId/Identity. String @@ -24286,6 +27155,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 PolicyName + > Applicable: Microsoft Teams "Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:DialoutCPCZoneAPSTNDomestic has a PolicyName equal to DialoutCPCZoneAPSTNDomestic. To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). @@ -24296,10 +27166,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - PassThru + + Confirm - Returns the results of the command. By default, this cmdlet does not generate any output. + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -24307,10 +27178,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - WhatIf + + PassThru - Shows what would happen if the cmdlet runs. The cmdlet is not run. + > Applicable: Microsoft Teams + Returns the results of the command. By default, this cmdlet does not generate any output. SwitchParameter @@ -24318,10 +27190,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -24332,9 +27205,23 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + Global + > Applicable: Microsoft Teams This parameter sets the tenant global policy instance. This is the policy that all users in the tenant will get unless they have a specific policy instance assigned. SwitchParameter @@ -24347,6 +27234,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Group + > Applicable: Microsoft Teams Specifies the group used for the group policy assignment. String @@ -24359,6 +27247,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Identity + > Applicable: Microsoft Teams Specifies the Identity of the user account to be to be modified. A user identity can be specified by using one of three formats: 1) the user's SIP address; 2) the user's user principal name (UPN); 3) the user's ObjectId/Identity. String @@ -24371,6 +27260,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 PassThru + > Applicable: Microsoft Teams Returns the results of the command. By default, this cmdlet does not generate any output. SwitchParameter @@ -24383,6 +27273,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 PolicyName + > Applicable: Microsoft Teams "Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:DialoutCPCZoneAPSTNDomestic has a PolicyName equal to DialoutCPCZoneAPSTNDomestic. To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). @@ -24396,6 +27287,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Rank + > Applicable: Microsoft Teams The rank of the policy assignment, relative to other group policy assignments for the same policy type. Int32 @@ -24408,6 +27300,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 WhatIf + > Applicable: Microsoft Teams Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -24417,18 +27310,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - @@ -24487,11 +27368,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csdialoutpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csdialoutpolicy Get-CsOnlineDialOutPolicy - https://learn.microsoft.com/powershell/module/teams/get-csonlinedialoutpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinedialoutpolicy @@ -24510,7 +27391,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - If the policy type was previously assigned to the group, the ranking for the policy type will not change. - If the policy type was not previously assigned to the group, the ranking for the policy type will be ranked last. - Finally, if a user was directly assigned a package, direct assignment takes precedence over group assignment. For more information on policy rankings and group policy assignments, please review the description section under New-CsGroupPolicyAssignment (https://learn.microsoft.com/powershell/module/teams/new-csgrouppolicyassignment#description). + Finally, if a user was directly assigned a package, direct assignment takes precedence over group assignment. For more information on policy rankings and group policy assignments, please review the description section under New-CsGroupPolicyAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/new-csgrouppolicyassignment#description). @@ -24518,6 +27399,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 GroupId + > Applicable: Microsoft Teams A group id in the tenant. It can either be a group's object id or a group's email address. String @@ -24530,6 +27412,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 PackageName + > Applicable: Microsoft Teams The name of a policy package. All policy package names can be found by running Get-CsPolicyPackage. To reset the currently assigned package value for the group, use $null or an empty string "". This will not remove any existing policy assignments to the group. String @@ -24542,6 +27425,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 PolicyRankings + > Applicable: Microsoft Teams The policy rankings for each of the policy types in the package. To specify the policy rankings, follow this format: "<PolicyType>, <PolicyRank>". Delimiters of ' ', '.', ':', '\t' are also acceptable. Supported policy types are listed here (https://learn.microsoft.com/MicrosoftTeams/manage-policy-packages#what-is-a-policy-package). Policy rank must be a number greater than or equal to 1. String[] @@ -24551,10 +27435,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - WhatIf + + Confirm - Shows what would happen if the cmdlet runs. The cmdlet is not run. + Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -24562,10 +27446,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -24576,9 +27460,22 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + GroupId + > Applicable: Microsoft Teams A group id in the tenant. It can either be a group's object id or a group's email address. String @@ -24591,6 +27488,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 PackageName + > Applicable: Microsoft Teams The name of a policy package. All policy package names can be found by running Get-CsPolicyPackage. To reset the currently assigned package value for the group, use $null or an empty string "". This will not remove any existing policy assignments to the group. String @@ -24603,6 +27501,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 PolicyRankings + > Applicable: Microsoft Teams The policy rankings for each of the policy types in the package. To specify the policy rankings, follow this format: "<PolicyType>, <PolicyRank>". Delimiters of ' ', '.', ':', '\t' are also acceptable. Supported policy types are listed here (https://learn.microsoft.com/MicrosoftTeams/manage-policy-packages#what-is-a-policy-package). Policy rank must be a number greater than or equal to 1. String[] @@ -24624,18 +27523,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - @@ -24663,15 +27550,15 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csgrouppolicypackageassignment + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csgrouppolicypackageassignment Get-CsPolicyPackage - https://learn.microsoft.com/powershell/module/teams/get-cspolicypackage + https://learn.microsoft.com/powershell/module/microsoftteams/get-cspolicypackage New-CsGroupPolicyAssignment - https://learn.microsoft.com/powershell/module/teams/new-csgrouppolicyassignment + https://learn.microsoft.com/powershell/module/microsoftteams/new-csgrouppolicyassignment @@ -25086,7 +27973,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csonlineaudioconferencingroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csonlineaudioconferencingroutingpolicy New-CsOnlineAudioConferencingRoutingPolicy @@ -25124,6 +28011,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Group + > Applicable: Microsoft Teams Specifies the group used for the group policy assignment. String @@ -25136,6 +28024,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 PolicyName + > Applicable: Microsoft Teams A unique identifier(name) of the policy. String @@ -25145,9 +28034,22 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. + + + SwitchParameter + + + False + Global + > Applicable: Microsoft Teams Sets the parameters of the Global policy instance to the values in the specified policy instance. String @@ -25157,9 +28059,23 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None + + Identity + + > Applicable: Microsoft Teams + The Identity parameter represents the ID of the specific user in your organization; this can be either a SIP address or an Object ID. + + System.String + + System.String + + + None + PassThru + > Applicable: Microsoft Teams Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsOnlineVoicemailPolicy cmdlet does not pass objects through the pipeline. @@ -25171,6 +28087,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Rank + > Applicable: Microsoft Teams The rank of the policy assignment, relative to other group policy assignments for the same policy type. Int32 @@ -25180,21 +28097,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - Identity - - The Identity parameter represents the ID of the specific user in your organization; this can be either a SIP address or an Object ID. - - System.String - - System.String - - - None - WhatIf + > Applicable: Microsoft Teams Describes what would happen if you executed the command without actually executing the command. @@ -25203,36 +28109,14 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm - - Prompts you for confirmation before executing the command. - - - SwitchParameter - - - False - - - Global - - Sets the parameters of the Global policy instance to the values in the specified policy instance. - - String - - String - - - None - - - PassThru + + Confirm - Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsOnlineVoicemailPolicy cmdlet does not pass objects through the pipeline. + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. SwitchParameter @@ -25241,10 +28125,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - PolicyName + + Global - A unique identifier(name) of the policy. + > Applicable: Microsoft Teams + Sets the parameters of the Global policy instance to the values in the specified policy instance. String @@ -25256,6 +28141,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Group + > Applicable: Microsoft Teams Specifies the group used for the group policy assignment. String @@ -25266,45 +28152,62 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - Rank + Identity - The rank of the policy assignment, relative to other group policy assignments for the same policy type. + > Applicable: Microsoft Teams + The Identity parameter represents the ID of the specific user in your organization; this can be either a SIP address or an Object ID. - Int32 + System.String - Int32 + System.String None - Identity + PassThru - The Identity parameter represents the ID of the specific user in your organization; this can be either a SIP address or an Object ID. + > Applicable: Microsoft Teams + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsOnlineVoicemailPolicy cmdlet does not pass objects through the pipeline. - System.String + SwitchParameter - System.String + SwitchParameter + + + False + + + PolicyName + + > Applicable: Microsoft Teams + A unique identifier(name) of the policy. + + String + + String None - - WhatIf + + Rank - Describes what would happen if you executed the command without actually executing the command. + > Applicable: Microsoft Teams + The rank of the policy assignment, relative to other group policy assignments for the same policy type. - SwitchParameter + Int32 - SwitchParameter + Int32 - False + None - - Confirm + + WhatIf - Prompts you for confirmation before executing the command. + > Applicable: Microsoft Teams + Describes what would happen if you executed the command without actually executing the command. SwitchParameter @@ -25340,23 +28243,23 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csonlinevoicemailpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csonlinevoicemailpolicy Get-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/teams/get-csonlinevoicemailpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoicemailpolicy Set-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/teams/set-csonlinevoicemailpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailpolicy New-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/teams/new-csonlinevoicemailpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoicemailpolicy Remove-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csonlinevoicemailpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoicemailpolicy @@ -25376,10 +28279,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Grant-CsOnlineVoiceRoutingPolicy - - Identity + + PolicyName - Indicates the Identity of the user account to be assigned the per-user online voice routing policy. User Identities can be specified using one of the following formats: the user's SIP address, the user's user principal name (UPN), or the user's Active Directory display name (for example, Ken Myer). + Name of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; likewise, a policy with the Identity tag:RedmondOnlineVoiceRoutingPolicy has a PolicyName equal to RedmondOnlineVoiceRoutingPolicy. + To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). String @@ -25388,18 +28292,16 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - PolicyName + + Global - Name of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; likewise, a policy with the Identity tag:RedmondOnlineVoiceRoutingPolicy has a PolicyName equal to RedmondOnlineVoiceRoutingPolicy. - To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant, except any that have an explicit policy assignment. To skip a warning when you do this operation, specify this parameter. - String - String + SwitchParameter - None + False PassThru @@ -25415,6 +28317,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Grant-CsOnlineVoiceRoutingPolicy + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + PolicyName @@ -25440,23 +28354,24 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - Global + Rank - When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant, except any that have an explicit policy assignment. To skip a warning when you do this operation, specify this parameter. + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + Int32 - SwitchParameter + Int32 - False + None Grant-CsOnlineVoiceRoutingPolicy - - Group + + Identity - Specifies the group used for the group policy assignment. + Indicates the Identity of the user account to be assigned the per-user online voice routing policy. User Identities can be specified using one of the following formats: the user's SIP address, the user's user principal name (UPN), or the user's Active Directory display name (for example, Ken Myer). String @@ -25489,50 +28404,37 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - Identity + + Global - Indicates the Identity of the user account to be assigned the per-user online voice routing policy. User Identities can be specified using one of the following formats: the user's SIP address, the user's user principal name (UPN), or the user's Active Directory display name (for example, Ken Myer). + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant, except any that have an explicit policy assignment. To skip a warning when you do this operation, specify this parameter. - String + SwitchParameter - String + SwitchParameter - None + False - - PassThru + + Group - Enables you to pass a user object through the pipeline that represents the user account being assigned the online voice routing policy. By default, the `Grant-CsOnlineVoiceRoutingPolicy` cmdlet does not pass objects through the pipeline. + Specifies the group used for the group policy assignment. - SwitchParameter + String - SwitchParameter + String - False + None - - PolicyName + + Identity - Name of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; likewise, a policy with the Identity tag:RedmondOnlineVoiceRoutingPolicy has a PolicyName equal to RedmondOnlineVoiceRoutingPolicy. - To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). + Indicates the Identity of the user account to be assigned the per-user online voice routing policy. User Identities can be specified using one of the following formats: the user's SIP address, the user's user principal name (UPN), or the user's Active Directory display name (for example, Ken Myer). String @@ -25542,9 +28444,9 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - Global + PassThru - When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant, except any that have an explicit policy assignment. To skip a warning when you do this operation, specify this parameter. + Enables you to pass a user object through the pipeline that represents the user account being assigned the online voice routing policy. By default, the `Grant-CsOnlineVoiceRoutingPolicy` cmdlet does not pass objects through the pipeline. SwitchParameter @@ -25553,10 +28455,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Group + + PolicyName - Specifies the group used for the group policy assignment. + Name of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; likewise, a policy with the Identity tag:RedmondOnlineVoiceRoutingPolicy has a PolicyName equal to RedmondOnlineVoiceRoutingPolicy. + To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). String @@ -25634,23 +28537,23 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csonlinevoiceroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csonlinevoiceroutingpolicy New-CsOnlineVoiceRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csonlinevoiceroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoiceroutingpolicy Get-CsOnlineVoiceRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csonlinevoiceroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoiceroutingpolicy Set-CsOnlineVoiceRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csonlinevoiceroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoiceroutingpolicy Remove-CsOnlineVoiceRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csonlinevoiceroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoiceroutingpolicy @@ -25681,10 +28584,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - Global + + Confirm - When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant, except any that have an explicit policy assignment. To skip a warning when you do this operation, specify this parameter. + Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -25693,9 +28596,9 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - PassThru + Global - Enables you to pass a user object through the pipeline that represents the user account being assigned the online voice routing policy. Enables you to pass a user object through the pipeline that represents the user account being assigned the online voice routing policy. + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant, except any that have an explicit policy assignment. To skip a warning when you do this operation, specify this parameter. SwitchParameter @@ -25703,10 +28606,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm + + PassThru - Prompts you for confirmation before running the cmdlet. + Enables you to pass a user object through the pipeline that represents the user account being assigned the online voice routing policy. Enables you to pass a user object through the pipeline that represents the user account being assigned the online voice routing policy. SwitchParameter @@ -25728,10 +28631,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Grant-CsTeamsAudioConferencingPolicy - - Identity + + PolicyName - Indicates the Identity of the user account to be assigned the per-user online voice routing policy. User Identities can be specified using one of the following formats: 1) the user's SIP address; 2) the user's user principal name (UPN); or, 3) the user's Active Directory display name (for example, Ken Myer). + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. String @@ -25740,10 +28643,21 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - PolicyName + + Confirm - The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. String @@ -25763,16 +28677,17 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm + + Rank - Prompts you for confirmation before running the cmdlet. + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + Int32 - SwitchParameter + Int32 - False + None WhatIf @@ -25788,10 +28703,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Grant-CsTeamsAudioConferencingPolicy - - PolicyName + + Identity - The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + Indicates the Identity of the user account to be assigned the per-user online voice routing policy. User Identities can be specified using one of the following formats: 1) the user's SIP address; 2) the user's user principal name (UPN); or, 3) the user's Active Directory display name (for example, Ken Myer). String @@ -25800,45 +28715,33 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - PassThru - - Enables you to pass a user object through the pipeline that represents the user account being assigned the online voice routing policy. Enables you to pass a user object through the pipeline that represents the user account being assigned the online voice routing policy. - - - SwitchParameter - - - False - - - Rank + + PolicyName - The rank of the policy assignment, relative to other group policy assignments for the same policy type. + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. - Int32 + String - Int32 + String None - - Group + + Confirm - Specifies the group used for the group policy assignment. + Prompts you for confirmation before running the cmdlet. - String - String + SwitchParameter - None + False - - Confirm + + PassThru - Prompts you for confirmation before running the cmdlet. + Enables you to pass a user object through the pipeline that represents the user account being assigned the online voice routing policy. Enables you to pass a user object through the pipeline that represents the user account being assigned the online voice routing policy. SwitchParameter @@ -25860,6 +28763,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + Global @@ -25872,6 +28787,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + Identity @@ -25920,30 +28847,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - WhatIf @@ -25994,19 +28897,19 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csteamsaudioconferencingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsaudioconferencingpolicy Get-CsTeamsAudioConferencingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsaudioconferencingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsaudioconferencingpolicy Set-CsTeamsAudioConferencingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsaudioconferencingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsaudioconferencingpolicy Remove-CsTeamsAudioConferencingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsaudioconferencingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsaudioconferencingpolicy @@ -26026,13 +28929,12 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Grant-CsTeamsCallHoldPolicy - - Identity + + PolicyName - Indicates the Identity of the user account to be assigned the per-user Teams call hold policy. User Identities can be specified using one of the following formats: - - The user's SIP address; - - The user's user principal name (UPN); - - The user's Active Directory display name (for example, Ken Myer). + Name of the policy to be assigned. The PolicyName is simply the policy Identity without the policy scope, i.e. the "Tag:" prefix. + For example, a policy with the Identity Tag:ContosoPartnerCallHoldPolicy has a PolicyName equal to ContosoPartnerCallHoldPolicy. + To revoke a per-user policy previously assigned to a user, set the PolicyName to a null value ($null). String @@ -26041,19 +28943,27 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - PolicyName + + Confirm - Name of the policy to be assigned. The PolicyName is simply the policy Identity without the policy scope, i.e. the "Tag:" prefix. - For example, a policy with the Identity Tag:ContosoPartnerCallHoldPolicy has a PolicyName equal to ContosoPartnerCallHoldPolicy. - To revoke a per-user policy previously assigned to a user, set the PolicyName to a null value ($null). + Prompts you for confirmation before running the cmdlet. - String - String + SwitchParameter - None + False + + + Global + + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". + + + SwitchParameter + + + False PassThru @@ -26078,20 +28988,21 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm + + + Grant-CsTeamsCallHoldPolicy + + Group - Prompts you for confirmation before running the cmdlet. + Specifies the group used for the group policy assignment. + String - SwitchParameter + String - False + None - - - Grant-CsTeamsCallHoldPolicy PolicyName @@ -26106,11 +29017,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - PassThru + + Confirm - Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams call hold policy. - By default, the Grant-CsTeamsCallHoldPoly cmdlet does not pass objects through the pipeline. + Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -26119,9 +29029,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - Global + PassThru - When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". + Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams call hold policy. + By default, the Grant-CsTeamsCallHoldPoly cmdlet does not pass objects through the pipeline. SwitchParameter @@ -26129,21 +29040,22 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - WhatIf + + Rank - Shows what would happen if the cmdlet runs. The cmdlet is not run. + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + Int32 - SwitchParameter + Int32 - False + None - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -26154,10 +29066,13 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Grant-CsTeamsCallHoldPolicy - - Group + + Identity - Specifies the group used for the group policy assignment. + Indicates the Identity of the user account to be assigned the per-user Teams call hold policy. User Identities can be specified using one of the following formats: + - The user's SIP address; + - The user's user principal name (UPN); + - The user's Active Directory display name (for example, Ken Myer). String @@ -26180,11 +29095,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - PassThru + + Confirm - Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams call hold policy. - By default, the Grant-CsTeamsCallHoldPoly cmdlet does not pass objects through the pipeline. + Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -26193,16 +29107,16 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - Rank + PassThru - The rank of the policy assignment, relative to other group policy assignments for the same policy type. + Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams call hold policy. + By default, the Grant-CsTeamsCallHoldPoly cmdlet does not pass objects through the pipeline. - Int32 - Int32 + SwitchParameter - None + False WhatIf @@ -26215,40 +29129,25 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Identity + + Confirm - Indicates the Identity of the user account to be assigned the per-user Teams call hold policy. User Identities can be specified using one of the following formats: - - The user's SIP address; - - The user's user principal name (UPN); - - The user's Active Directory display name (for example, Ken Myer). + Prompts you for confirmation before running the cmdlet. - String + SwitchParameter - String + SwitchParameter - None + False - PassThru + Global - Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams call hold policy. - By default, the Grant-CsTeamsCallHoldPoly cmdlet does not pass objects through the pipeline. + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". SwitchParameter @@ -26257,12 +29156,25 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - PolicyName + + Group - Name of the policy to be assigned. The PolicyName is simply the policy Identity without the policy scope, i.e. the "Tag:" prefix. - For example, a policy with the Identity Tag:ContosoPartnerCallHoldPolicy has a PolicyName equal to ContosoPartnerCallHoldPolicy. - To revoke a per-user policy previously assigned to a user, set the PolicyName to a null value ($null). + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + Indicates the Identity of the user account to be assigned the per-user Teams call hold policy. User Identities can be specified using one of the following formats: + - The user's SIP address; + - The user's user principal name (UPN); + - The user's Active Directory display name (for example, Ken Myer). String @@ -26272,9 +29184,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - Global + PassThru - When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". + Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams call hold policy. + By default, the Grant-CsTeamsCallHoldPoly cmdlet does not pass objects through the pipeline. SwitchParameter @@ -26283,10 +29196,12 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Group + + PolicyName - Specifies the group used for the group policy assignment. + Name of the policy to be assigned. The PolicyName is simply the policy Identity without the policy scope, i.e. the "Tag:" prefix. + For example, a policy with the Identity Tag:ContosoPartnerCallHoldPolicy has a PolicyName equal to ContosoPartnerCallHoldPolicy. + To revoke a per-user policy previously assigned to a user, set the PolicyName to a null value ($null). String @@ -26319,18 +29234,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - @@ -26388,23 +29291,23 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csteamscallholdpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscallholdpolicy New-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamscallholdpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallholdpolicy Get-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamscallholdpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallholdpolicy Set-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamscallholdpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallholdpolicy Remove-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamscallholdpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallholdpolicy @@ -26414,20 +29317,21 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Grant CsTeamsCallParkPolicy - The TeamsCallParkPolicy controls whether or not users are able to leverage the call park feature in Microsoft Teams. Call park allows enterprise voice customers to place a call on hold and then perform a number of actions on that call: transfer to another department, retrieve via the same phone, or retrieve via a different Teams phone. The Grant-CsTeamsCallParkPolicy cmdlet lets you assign a custom policy to a specific user. - NOTE: the call park feature currently only available in desktop, web clients and mobile clients. Call Park functionality is currently on the roadmap for Teams IP Phones. Supported with TeamsOnly mode for users with the Phone System license + The Grant-CsTeamsCallParkPolicy cmdlet lets you assign a custom policy to a specific user. - The TeamsCallParkPolicy controls whether or not users are able to leverage the call park feature in Microsoft Teams. Call park allows enterprise voice customers to place a call on hold and then perform a number of actions on that call: transfer to another department, retrieve via the same phone, or retrieve via a different phone. The Grant-CsTeamsCallParkPolicy cmdlet lets you assign a custom policy to a specific user. + The TeamsCallParkPolicy controls whether or not users are able to leverage the call park feature in Microsoft Teams. Call park allows enterprise voice customers to place a call on hold and then perform a number of actions on that call: transfer to another department, retrieve via the same phone, or retrieve via a different phone. + NOTE: the call park feature currently only available in desktop, web clients and mobile clients. Call Park functionality is currently on the roadmap for Teams IP Phones. Supported with TeamsOnly mode for users with the Phone System license Grant-CsTeamsCallParkPolicy - - Identity + + PolicyName - The User ID of the user to whom the policy is being assigned. + Name of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope ("tag:"). For example, a policy that has the Identity tag:Redmond has a PolicyName equal to Redmond; a policy with the Identity tag:RedmondConferencingPolicy has a PolicyName equal to RedmondConferencingPolicy. + If you set PolicyName to a null value, the command will unassign any per-user policy assigned to the user. String @@ -26436,23 +29340,21 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - PolicyName + + Confirm - Name of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope ("tag:"). For example, a policy that has the Identity tag:Redmond has a PolicyName equal to Redmond; a policy with the Identity tag:RedmondConferencingPolicy has a PolicyName equal to RedmondConferencingPolicy. - If you set PolicyName to a null value, the command will unassign any per-user policy assigned to the user. + Prompts you for confirmation before running the cmdlet. - String - String + SwitchParameter - None + False - PassThru + Global - If present, causes the cmdlet to pass the user object (or objects) through the Windows PowerShell pipeline. By default, the cmdlet does not pass objects through the pipeline. + Sets the parameters of the Global policy instance to the values in the specified policy instance. SwitchParameter @@ -26460,10 +29362,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - WhatIf + + PassThru - Shows what would happen if the cmdlet runs. The cmdlet is not run. + If present, causes the cmdlet to pass the user object (or objects) through the Windows PowerShell pipeline. By default, the cmdlet does not pass objects through the pipeline. SwitchParameter @@ -26471,10 +29373,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -26485,6 +29387,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Grant-CsTeamsCallParkPolicy + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + PolicyName @@ -26498,10 +29412,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - PassThru + + Confirm - If present, causes the cmdlet to pass the user object (or objects) through the Windows PowerShell pipeline. By default, the cmdlet does not pass objects through the pipeline. + Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -26510,9 +29424,9 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - Global + PassThru - Sets the parameters of the Global policy instance to the values in the specified policy instance. + If present, causes the cmdlet to pass the user object (or objects) through the Windows PowerShell pipeline. By default, the cmdlet does not pass objects through the pipeline. SwitchParameter @@ -26520,21 +29434,22 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - WhatIf + + Rank - Shows what would happen if the cmdlet runs. The cmdlet is not run. + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + Int32 - SwitchParameter + Int32 - False + None - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -26545,10 +29460,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Grant-CsTeamsCallParkPolicy - - Group + + Identity - Specifies the group used for the group policy assignment. + The User ID of the user to whom the policy is being assigned. String @@ -26570,10 +29485,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - PassThru + + Confirm - If present, causes the cmdlet to pass the user object (or objects) through the Windows PowerShell pipeline. By default, the cmdlet does not pass objects through the pipeline. + Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -26582,16 +29497,15 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - Rank + PassThru - The rank of the policy assignment, relative to other group policy assignments for the same policy type. + If present, causes the cmdlet to pass the user object (or objects) through the Windows PowerShell pipeline. By default, the cmdlet does not pass objects through the pipeline. - Int32 - Int32 + SwitchParameter - None + False WhatIf @@ -26604,36 +29518,25 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Identity + + Confirm - The User ID of the user to whom the policy is being assigned. + Prompts you for confirmation before running the cmdlet. - String + SwitchParameter - String + SwitchParameter - None + False - PassThru + Global - If present, causes the cmdlet to pass the user object (or objects) through the Windows PowerShell pipeline. By default, the cmdlet does not pass objects through the pipeline. + Sets the parameters of the Global policy instance to the values in the specified policy instance. SwitchParameter @@ -26642,11 +29545,22 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - PolicyName + + Group - Name of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope ("tag:"). For example, a policy that has the Identity tag:Redmond has a PolicyName equal to Redmond; a policy with the Identity tag:RedmondConferencingPolicy has a PolicyName equal to RedmondConferencingPolicy. - If you set PolicyName to a null value, the command will unassign any per-user policy assigned to the user. + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + The User ID of the user to whom the policy is being assigned. String @@ -26656,9 +29570,9 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - Global + PassThru - Sets the parameters of the Global policy instance to the values in the specified policy instance. + If present, causes the cmdlet to pass the user object (or objects) through the Windows PowerShell pipeline. By default, the cmdlet does not pass objects through the pipeline. SwitchParameter @@ -26667,10 +29581,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Group + + PolicyName - Specifies the group used for the group policy assignment. + Name of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope ("tag:"). For example, a policy that has the Identity tag:Redmond has a PolicyName equal to Redmond; a policy with the Identity tag:RedmondConferencingPolicy has a PolicyName equal to RedmondConferencingPolicy. + If you set PolicyName to a null value, the command will unassign any per-user policy assigned to the user. String @@ -26703,18 +29618,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - @@ -26751,23 +29654,23 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csteamscallparkpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscallparkpolicy Set-CsTeamsCallParkPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamscallparkpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallparkpolicy Get-CsTeamsCallParkPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamscallparkpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallparkpolicy New-CsTeamsCallParkPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamscallparkpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallparkpolicy Remove-CsTeamsCallParkPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamscallparkpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallparkpolicy @@ -26777,11 +29680,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Grant CsTeamsChannelsPolicy - The CsTeamsChannelsPolicy allows you to manage features related to the Teams & Channels experience within the Teams application. + The Grant-CsTeamsChannelsPolicy allows you to assign specific policies to users that have been created in your tenant. - The CsTeamsChannelsPolicy allows you to manage features related to the Teams & Channels experience within the Teams application. The Grant-CsTeamsChannelsPolicy allows you to assign specific policies to users that have been created in your tenant. + The CsTeamsChannelsPolicy allows you to manage features related to the Teams & Channels experience within the Teams application. @@ -26835,7 +29738,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 PassThru - + {{ Fill PassThru Description }} SwitchParameter @@ -26869,18 +29772,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Grant-CsTeamsChannelsPolicy - - Identity - - Specify the user to whom the policy is being assigned. - - UserIdParameter - - UserIdParameter - - - None - PolicyName @@ -26916,10 +29807,22 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + PassThru - + {{ Fill PassThru Description }} SwitchParameter @@ -26927,6 +29830,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + Tenant @@ -26953,6 +29868,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Grant-CsTeamsChannelsPolicy + + Identity + + Specify the user to whom the policy is being assigned. + + UserIdParameter + + UserIdParameter + + + None + PolicyName @@ -26991,7 +29918,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 PassThru - + {{ Fill PassThru Description }} SwitchParameter @@ -27022,30 +29949,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - @@ -27085,6 +29988,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + Identity @@ -27100,7 +30015,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 PassThru - + {{ Fill PassThru Description }} SwitchParameter @@ -27121,6 +30036,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + Tenant @@ -27145,30 +30072,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - @@ -27207,7 +30110,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csteamschannelspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamschannelspolicy @@ -27229,21 +30132,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Grant-CsTeamsComplianceRecordingPolicy - - Identity - - Indicates the Identity of the user account to be assigned the per-user Teams recording policy. User Identities can be specified using one of the following formats: - - The user's SIP address; - - The user's user principal name (UPN); - - The user's Active Directory display name (for example, Ken Myer). - - UserIdParameter - - UserIdParameter - - - None - PolicyName @@ -27257,21 +30145,16 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - Tenant + + Confirm - Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: - -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" - You can return your tenant ID by running this command: - Get-CsTenant | Select-Object DisplayName, TenantID - If you are using a remote session of Windows PowerShell and are connected only to Microsoft Teams or Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + Prompts you for confirmation before running the cmdlet. - System.Guid - System.Guid + SwitchParameter - None + False DomainController @@ -27286,9 +30169,9 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - PassThru + Global - Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams recording policy. By default, the Grant-CsTeamsComplianceRecordingPolicy cmdlet does not pass objects through the pipeline. + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". SwitchParameter @@ -27296,10 +30179,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm + + PassThru - Prompts you for confirmation before running the cmdlet. + Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams recording policy. By default, the Grant-CsTeamsComplianceRecordingPolicy cmdlet does not pass objects through the pipeline. SwitchParameter @@ -27307,6 +30190,22 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False + + Tenant + + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Microsoft Teams or Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + System.Guid + + System.Guid + + + None + WhatIf @@ -27334,10 +30233,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - Global + + Confirm - When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". + Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -27346,29 +30245,25 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - Tenant + DomainController - Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: - -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" - You can return your tenant ID by running this command: - Get-CsTenant | Select-Object DisplayName, TenantID - If you are using a remote session of Windows PowerShell and are connected only to Microsoft Teams or Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + This parameter is reserved for internal Microsoft use. - System.Guid + Fqdn - System.Guid + Fqdn None - - DomainController + + Group - This parameter is reserved for internal Microsoft use. + Specifies the group used for the group policy assignment. - Fqdn + String - Fqdn + String None @@ -27384,16 +30279,33 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm + + Rank - Prompts you for confirmation before running the cmdlet. + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + Int32 - SwitchParameter + Int32 - False + None + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Microsoft Teams or Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + System.Guid + + System.Guid + + + None WhatIf @@ -27409,58 +30321,44 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Grant-CsTeamsComplianceRecordingPolicy - - PolicyName - - Name of the policy to be assigned. The PolicyName is simply the policy Identity without the policy scope i.e. the "Tag:" prefix. For example, a policy with the Identity Tag:ContosoPartnerComplianceRecordingPolicy has a PolicyName equal to ContosoPartnerComplianceRecordingPolicy. - To revoke a per-user policy previously assigned to a user, set the PolicyName to a null value ($null). - - String - - String - - - None - - - Tenant + + Identity - Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: - -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" - You can return your tenant ID by running this command: - Get-CsTenant | Select-Object DisplayName, TenantID - If you are using a remote session of Windows PowerShell and are connected only to Microsoft Teams or Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + Indicates the Identity of the user account to be assigned the per-user Teams recording policy. User Identities can be specified using one of the following formats: + - The user's SIP address; + - The user's user principal name (UPN); + - The user's Active Directory display name (for example, Ken Myer). - System.Guid + UserIdParameter - System.Guid + UserIdParameter None - - Rank + + PolicyName - The rank of the policy assignment, relative to other group policy assignments for the same policy type. + Name of the policy to be assigned. The PolicyName is simply the policy Identity without the policy scope i.e. the "Tag:" prefix. For example, a policy with the Identity Tag:ContosoPartnerComplianceRecordingPolicy has a PolicyName equal to ContosoPartnerComplianceRecordingPolicy. + To revoke a per-user policy previously assigned to a user, set the PolicyName to a null value ($null). - Int32 + String - Int32 + String None - - Group + + Confirm - Specifies the group used for the group policy assignment. + Prompts you for confirmation before running the cmdlet. - String - String + SwitchParameter - None + False DomainController @@ -27485,16 +30383,21 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm + + Tenant - Prompts you for confirmation before running the cmdlet. + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Microsoft Teams or Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + System.Guid - SwitchParameter + System.Guid - False + None WhatIf @@ -27510,17 +30413,26 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - - Identity + + Confirm - Indicates the Identity of the user account to be assigned the per-user Teams recording policy. User Identities can be specified using one of the following formats: - - The user's SIP address; - - The user's user principal name (UPN); - - The user's Active Directory display name (for example, Ken Myer). + Prompts you for confirmation before running the cmdlet. - UserIdParameter + SwitchParameter - UserIdParameter + SwitchParameter + + + False + + + DomainController + + This parameter is reserved for internal Microsoft use. + + Fqdn + + Fqdn None @@ -27537,11 +30449,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - PolicyName + + Group - Name of the policy to be assigned. The PolicyName is simply the policy Identity without the policy scope i.e. the "Tag:" prefix. For example, a policy with the Identity Tag:ContosoPartnerComplianceRecordingPolicy has a PolicyName equal to ContosoPartnerComplianceRecordingPolicy. - To revoke a per-user policy previously assigned to a user, set the PolicyName to a null value ($null). + Specifies the group used for the group policy assignment. String @@ -27550,38 +30461,38 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - Tenant + + Identity - Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: - -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" - You can return your tenant ID by running this command: - Get-CsTenant | Select-Object DisplayName, TenantID - If you are using a remote session of Windows PowerShell and are connected only to Microsoft Teams or Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + Indicates the Identity of the user account to be assigned the per-user Teams recording policy. User Identities can be specified using one of the following formats: + - The user's SIP address; + - The user's user principal name (UPN); + - The user's Active Directory display name (for example, Ken Myer). - System.Guid + UserIdParameter - System.Guid + UserIdParameter None - Rank + PassThru - The rank of the policy assignment, relative to other group policy assignments for the same policy type. + Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams recording policy. By default, the Grant-CsTeamsComplianceRecordingPolicy cmdlet does not pass objects through the pipeline. - Int32 + SwitchParameter - Int32 + SwitchParameter - None + False - - Group + + PolicyName - Specifies the group used for the group policy assignment. + Name of the policy to be assigned. The PolicyName is simply the policy Identity without the policy scope i.e. the "Tag:" prefix. For example, a policy with the Identity Tag:ContosoPartnerComplianceRecordingPolicy has a PolicyName equal to ContosoPartnerComplianceRecordingPolicy. + To revoke a per-user policy previously assigned to a user, set the PolicyName to a null value ($null). String @@ -27591,40 +30502,32 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - DomainController + Rank - This parameter is reserved for internal Microsoft use. + The rank of the policy assignment, relative to other group policy assignments for the same policy type. - Fqdn + Int32 - Fqdn + Int32 None - PassThru - - Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams recording policy. By default, the Grant-CsTeamsComplianceRecordingPolicy cmdlet does not pass objects through the pipeline. - - SwitchParameter - - SwitchParameter - - - False - - - Confirm + Tenant - Prompts you for confirmation before running the cmdlet. + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Microsoft Teams or Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. - SwitchParameter + System.Guid - SwitchParameter + System.Guid - False + None WhatIf @@ -27683,43 +30586,43 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscompliancerecordingpolicy Get-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingpolicy New-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpolicy Set-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingpolicy Remove-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamscompliancerecordingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingpolicy Get-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/get-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingapplication New-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/new-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingapplication Set-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/set-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingapplication Remove-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/teams/remove-csteamscompliancerecordingapplication + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingapplication New-CsTeamsComplianceRecordingPairedApplication - https://learn.microsoft.com/powershell/module/teams/new-csteamscompliancerecordingpairedapplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpairedapplication @@ -27768,7 +30671,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 DomainController - + This parameter is reserved for internal Microsoft use. Fqdn @@ -27780,7 +30683,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Global - + Use this switch if you want to grant the specified policy to be the default policy for all users in the tenant. SwitchParameter @@ -27791,7 +30694,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 PassThru - + {{ Fill PassThru Description }} SwitchParameter @@ -27825,18 +30728,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Grant-CsTeamsCortanaPolicy - - Identity - - Indicates the identity of the user account the policy should be assigned to. User identities can be specified using one of four formats: 1) the user's SIP address; 2) the user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. - - UserIdParameter - - UserIdParameter - - - None - PolicyName @@ -27863,7 +30754,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 DomainController - + This parameter is reserved for internal Microsoft use. Fqdn @@ -27872,10 +30763,22 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + PassThru - + {{ Fill PassThru Description }} SwitchParameter @@ -27883,6 +30786,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + Tenant @@ -27909,6 +30824,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Grant-CsTeamsCortanaPolicy + + Identity + + Indicates the identity of the user account the policy should be assigned to. User identities can be specified using one of four formats: 1) the user's SIP address; 2) the user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. + + UserIdParameter + + UserIdParameter + + + None + PolicyName @@ -27935,7 +30862,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 DomainController - + This parameter is reserved for internal Microsoft use. Fqdn @@ -27947,7 +30874,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 PassThru - + {{ Fill PassThru Description }} SwitchParameter @@ -27955,30 +30882,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - Tenant @@ -28020,7 +30923,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 DomainController - + This parameter is reserved for internal Microsoft use. Fqdn @@ -28032,7 +30935,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Global - + Use this switch if you want to grant the specified policy to be the default policy for all users in the tenant. SwitchParameter @@ -28041,6 +30944,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + Identity @@ -28056,7 +30971,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 PassThru - + {{ Fill PassThru Description }} SwitchParameter @@ -28089,18 +31004,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - Tenant @@ -28163,7 +31066,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamscortanapolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscortanapolicy @@ -28194,10 +31097,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - Global + + Confirm - Sets the parameters of the Global policy instance to the values in the specified policy instance. + Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -28206,9 +31109,9 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - PassThru + Global - Including this parameter (which does not take a value) displays the user information when the cmdlet completes. Normally there is no output when this cmdlet is run. + Sets the parameters of the Global policy instance to the values in the specified policy instance. SwitchParameter @@ -28216,10 +31119,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - WhatIf + + PassThru - Shows what would happen if the cmdlet runs. The cmdlet is not run. + Including this parameter (which does not take a value) displays the user information when the cmdlet completes. Normally there is no output when this cmdlet is run. SwitchParameter @@ -28227,10 +31130,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -28265,6 +31168,17 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + PassThru @@ -28299,17 +31213,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - Grant-CsTeamsEmergencyCallingPolicy @@ -28337,10 +31240,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - PassThru + + Confirm - Including this parameter (which does not take a value) displays the user information when the cmdlet completes. Normally there is no output when this cmdlet is run. + Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -28348,10 +31251,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - WhatIf + + PassThru - Shows what would happen if the cmdlet runs. The cmdlet is not run. + Including this parameter (which does not take a value) displays the user information when the cmdlet completes. Normally there is no output when this cmdlet is run. SwitchParameter @@ -28359,10 +31262,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -28373,6 +31276,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + Global @@ -28457,18 +31372,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - @@ -28505,23 +31408,23 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csteamsemergencycallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsemergencycallingpolicy New-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsemergencycallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallingpolicy Get-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsemergencycallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsemergencycallingpolicy Remove-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsemergencycallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsemergencycallingpolicy Set-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsemergencycallingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallingpolicy @@ -28552,10 +31455,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - Global + + Confirm - Sets the parameters of the Global policy instance to the values in the specified policy instance. + Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -28564,9 +31467,9 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - PassThru + Global - Including this parameter (which does not take a value) displays the user information when the cmdlet completes. Normally there is no output when this cmdlet is run. + Sets the parameters of the Global policy instance to the values in the specified policy instance. SwitchParameter @@ -28574,10 +31477,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - WhatIf + + PassThru - Shows what would happen if the cmdlet runs. The cmdlet is not run. + Including this parameter (which does not take a value) displays the user information when the cmdlet completes. Normally there is no output when this cmdlet is run. SwitchParameter @@ -28585,10 +31488,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -28623,6 +31526,17 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + PassThru @@ -28657,17 +31571,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - Grant-CsTeamsEmergencyCallRoutingPolicy @@ -28695,10 +31598,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - PassThru + + Confirm - Including this parameter (which does not take a value) displays the user information when the cmdlet completes. Normally there is no output when this cmdlet is run. + Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -28706,10 +31609,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - WhatIf + + PassThru - Shows what would happen if the cmdlet runs. The cmdlet is not run. + Including this parameter (which does not take a value) displays the user information when the cmdlet completes. Normally there is no output when this cmdlet is run. SwitchParameter @@ -28717,10 +31620,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -28731,6 +31634,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + Global @@ -28815,18 +31730,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - @@ -28854,23 +31757,23 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csteamsemergencycallroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsemergencycallroutingpolicy New-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsemergencycallroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallroutingpolicy Set-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsemergencycallroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallroutingpolicy Get-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsemergencycallroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsemergencycallroutingpolicy Remove-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsemergencycallroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsemergencycallroutingpolicy @@ -28890,18 +31793,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Grant-CsTeamsEnhancedEncryptionPolicy - - Identity - - Unique identifier assigned to the Teams enhanced encryption policy. - - XdsIdentity - - XdsIdentity - - - None - PolicyName @@ -28914,28 +31805,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - PassThru - - Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsEnhancedEncryptionPolicy cmdlet does not pass objects through the pipeline. - - - SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - Confirm @@ -28947,25 +31816,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - - Grant-CsTeamsEnhancedEncryptionPolicy - - PolicyName - - Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"). A policy that has an identity of "Tag:ContosoPartnerTeamsEnhancedEncryptionPolicy" has a PolicyName of "ContosoPartnerTeamsEnhancedEncryptionPolicy". If you set PolicyName to a null value, then the command will unassign any individual policy assigned to the user. For example: Grant-CsTeamsEnhancedEncryptionPolicy -Identity "Ken Myer" -PolicyName $Null. - - String - - String - - - None - - PassThru + Global - Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsEnhancedEncryptionPolicy cmdlet does not pass objects through the pipeline. + Use this switch if you want to grant the specified policy to be the default policy for all users in the tenant. SwitchParameter @@ -28974,9 +31828,9 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - Global + PassThru - Use this switch if you want to grant the specified policy to be the default policy for all users in the tenant. + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsEnhancedEncryptionPolicy cmdlet does not pass objects through the pipeline. SwitchParameter @@ -28995,17 +31849,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - Grant-CsTeamsEnhancedEncryptionPolicy @@ -29021,10 +31864,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - PassThru + + Confirm - Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsEnhancedEncryptionPolicy cmdlet does not pass objects through the pipeline. + Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -29044,6 +31887,17 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None + + PassThru + + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsEnhancedEncryptionPolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + Rank @@ -29067,6 +31921,33 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False + + + Grant-CsTeamsEnhancedEncryptionPolicy + + Identity + + Unique identifier assigned to the Teams enhanced encryption policy. + + XdsIdentity + + XdsIdentity + + + None + + + PolicyName + + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"). A policy that has an identity of "Tag:ContosoPartnerTeamsEnhancedEncryptionPolicy" has a PolicyName of "ContosoPartnerTeamsEnhancedEncryptionPolicy". If you set PolicyName to a null value, then the command will unassign any individual policy assigned to the user. For example: Grant-CsTeamsEnhancedEncryptionPolicy -Identity "Ken Myer" -PolicyName $Null. + + String + + String + + + None + Confirm @@ -29078,13 +31959,47 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False + + PassThru + + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsEnhancedEncryptionPolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + - PassThru + Global - Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsEnhancedEncryptionPolicy cmdlet does not pass objects through the pipeline. + Use this switch if you want to grant the specified policy to be the default policy for all users in the tenant. SwitchParameter @@ -29093,10 +32008,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - PolicyName + + Group - Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"). A policy that has an identity of "Tag:ContosoPartnerTeamsEnhancedEncryptionPolicy" has a PolicyName of "ContosoPartnerTeamsEnhancedEncryptionPolicy". If you set PolicyName to a null value, then the command will unassign any individual policy assigned to the user. For example: Grant-CsTeamsEnhancedEncryptionPolicy -Identity "Ken Myer" -PolicyName $Null. + Specifies the group used for the group policy assignment. String @@ -29118,9 +32033,9 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - Global + PassThru - Use this switch if you want to grant the specified policy to be the default policy for all users in the tenant. + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsEnhancedEncryptionPolicy cmdlet does not pass objects through the pipeline. SwitchParameter @@ -29129,10 +32044,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Group + + PolicyName - Specifies the group used for the group policy assignment. + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"). A policy that has an identity of "Tag:ContosoPartnerTeamsEnhancedEncryptionPolicy" has a PolicyName of "ContosoPartnerTeamsEnhancedEncryptionPolicy". If you set PolicyName to a null value, then the command will unassign any individual policy assigned to the user. For example: Grant-CsTeamsEnhancedEncryptionPolicy -Identity "Ken Myer" -PolicyName $Null. String @@ -29165,18 +32080,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - @@ -29223,23 +32126,23 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csteamsenhancedencryptionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsenhancedencryptionpolicy Get-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsenhancedencryptionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsenhancedencryptionpolicy New-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsenhancedencryptionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsenhancedencryptionpolicy Set-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsenhancedencryptionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsenhancedencryptionpolicy Remove-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsenhancedencryptionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsenhancedencryptionpolicy @@ -29610,7 +32513,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csteamseventspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamseventspolicy @@ -29712,18 +32615,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Grant-CsTeamsFeedbackPolicy - - Identity - - Indicates the identity of the user account the policy should be assigned to. - - Object - - Object - - - None - PolicyName @@ -29759,6 +32650,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + PassThru @@ -29770,6 +32673,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + Tenant @@ -29796,6 +32711,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Grant-CsTeamsFeedbackPolicy + + Identity + + Indicates the identity of the user account the policy should be assigned to. + + Object + + Object + + + None + PolicyName @@ -29865,30 +32792,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - @@ -29928,6 +32831,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + Identity @@ -29964,6 +32879,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + Tenant @@ -29988,30 +32915,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - @@ -30050,7 +32953,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csteamsfeedbackpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsfeedbackpolicy @@ -30153,18 +33056,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Grant-CsTeamsIPPhonePolicy - - Identity - - Indicates the identity of the user account the policy should be assigned to. - - Object - - Object - - - None - PolicyName @@ -30200,6 +33091,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + PassThru @@ -30211,6 +33114,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + Tenant @@ -30237,6 +33152,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Grant-CsTeamsIPPhonePolicy + + Identity + + Indicates the identity of the user account the policy should be assigned to. + + Object + + Object + + + None + PolicyName @@ -30283,30 +33210,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - Tenant @@ -30369,6 +33272,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + Identity @@ -30405,18 +33320,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - Rank @@ -30491,7 +33394,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csteamsipphonepolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsipphonepolicy @@ -30510,14 +33413,13 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Grant-CsTeamsMediaLoggingPolicy - - Identity + + PolicyName - Specifies the identity of the target user. Acceptable values include: - Example: jphillips@contoso.com - Example: sip:jphillips@contoso.com - Example: 98403f08-577c-46dd-851a-f0460a13b03d - Use the "Global" Identity if you wish to set the policy for the entire tenant. + > Applicable: Microsoft Teams + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), e.g. a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". + Note that Teams Media Logging policy has only one instance that has PolicyName "Enabled". + If you set PolicyName to a null value, the command will unassign any individual policy assigned to the user. String @@ -30526,24 +33428,23 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - PolicyName + + Confirm - Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), e.g. a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". - Note that Teams Media Logging policy has only one instance that has PolicyName "Enabled". - If you set PolicyName to a null value, the command will unassign any individual policy assigned to the user. + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. - String - String + SwitchParameter - None + False - PassThru + Global - Enables passing a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsMediaLoggingPolicy cmdlet does not pass objects through the pipeline. + > Applicable: Microsoft Teams + When this cmdlet is used with `-Global` identity, the policy applies to all users in the tenant, except any that have an explicit policy assignment. For example, if the user already has Media Logging policy set to "Enabled", and tenant admin assigns "$null" globally, the user will still have Media Logging policy "Enabled". SwitchParameter @@ -30551,10 +33452,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - WhatIf + + PassThru - Shows what would happen if the cmdlet runs. The cmdlet is not run. + > Applicable: Microsoft Teams + Enables passing a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsMediaLoggingPolicy cmdlet does not pass objects through the pipeline. SwitchParameter @@ -30562,10 +33464,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -30579,6 +33482,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 PolicyName + > Applicable: Microsoft Teams Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), e.g. a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". Note that Teams Media Logging policy has only one instance that has PolicyName "Enabled". If you set PolicyName to a null value, the command will unassign any individual policy assigned to the user. @@ -30590,9 +33494,34 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + PassThru + > Applicable: Microsoft Teams Enables passing a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsMediaLoggingPolicy cmdlet does not pass objects through the pipeline. @@ -30602,19 +33531,21 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - Global + Rank - When this cmdlet is used with `-Global` identity, the policy applies to all users in the tenant, except any that have an explicit policy assignment. For example, if the user already has Media Logging policy set to "Enabled", and tenant admin assigns "$null" globally, the user will still have Media Logging policy "Enabled". + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + Int32 - SwitchParameter + Int32 - False + None WhatIf + > Applicable: Microsoft Teams Shows what would happen if the cmdlet runs. The cmdlet is not run. @@ -30623,23 +33554,30 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm + + + Grant-CsTeamsMediaLoggingPolicy + + Identity - Prompts you for confirmation before running the cmdlet. + > Applicable: Microsoft Teams + Specifies the identity of the target user. Acceptable values include: + Example: jphillips@contoso.com + Example: sip:jphillips@contoso.com + Example: 98403f08-577c-46dd-851a-f0460a13b03d + Use the "Global" Identity if you wish to set the policy for the entire tenant. + String - SwitchParameter + String - False + None - - - Grant-CsTeamsMediaLoggingPolicy PolicyName + > Applicable: Microsoft Teams Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), e.g. a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". Note that Teams Media Logging policy has only one instance that has PolicyName "Enabled". If you set PolicyName to a null value, the command will unassign any individual policy assigned to the user. @@ -30651,10 +33589,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - PassThru + + Confirm - Enables passing a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsMediaLoggingPolicy cmdlet does not pass objects through the pipeline. + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -30662,10 +33601,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - WhatIf + + PassThru - Shows what would happen if the cmdlet runs. The cmdlet is not run. + > Applicable: Microsoft Teams + Enables passing a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsMediaLoggingPolicy cmdlet does not pass objects through the pipeline. SwitchParameter @@ -30673,34 +33613,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -30711,26 +33628,24 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - - Identity + + Confirm - Specifies the identity of the target user. Acceptable values include: - Example: jphillips@contoso.com - Example: sip:jphillips@contoso.com - Example: 98403f08-577c-46dd-851a-f0460a13b03d - Use the "Global" Identity if you wish to set the policy for the entire tenant. + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. - String + SwitchParameter - String + SwitchParameter - None + False - PassThru + Global - Enables passing a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsMediaLoggingPolicy cmdlet does not pass objects through the pipeline. + > Applicable: Microsoft Teams + When this cmdlet is used with `-Global` identity, the policy applies to all users in the tenant, except any that have an explicit policy assignment. For example, if the user already has Media Logging policy set to "Enabled", and tenant admin assigns "$null" globally, the user will still have Media Logging policy "Enabled". SwitchParameter @@ -30739,12 +33654,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - PolicyName + + Group - Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), e.g. a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". - Note that Teams Media Logging policy has only one instance that has PolicyName "Enabled". - If you set PolicyName to a null value, the command will unassign any individual policy assigned to the user. + Specifies the group used for the group policy assignment. String @@ -30753,22 +33666,28 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - Global + + Identity - When this cmdlet is used with `-Global` identity, the policy applies to all users in the tenant, except any that have an explicit policy assignment. For example, if the user already has Media Logging policy set to "Enabled", and tenant admin assigns "$null" globally, the user will still have Media Logging policy "Enabled". + > Applicable: Microsoft Teams + Specifies the identity of the target user. Acceptable values include: + Example: jphillips@contoso.com + Example: sip:jphillips@contoso.com + Example: 98403f08-577c-46dd-851a-f0460a13b03d + Use the "Global" Identity if you wish to set the policy for the entire tenant. - SwitchParameter + String - SwitchParameter + String - False + None - - WhatIf + + PassThru - Shows what would happen if the cmdlet runs. The cmdlet is not run. + > Applicable: Microsoft Teams + Enables passing a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsMediaLoggingPolicy cmdlet does not pass objects through the pipeline. SwitchParameter @@ -30777,10 +33696,13 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Group + + PolicyName - Specifies the group used for the group policy assignment. + > Applicable: Microsoft Teams + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), e.g. a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". + Note that Teams Media Logging policy has only one instance that has PolicyName "Enabled". + If you set PolicyName to a null value, the command will unassign any individual policy assigned to the user. String @@ -30801,10 +33723,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -30872,11 +33795,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csteamsmedialoggingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmedialoggingpolicy Get-CsTeamsMediaLoggingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsmedialoggingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmedialoggingpolicy @@ -30886,12 +33809,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Grant CsTeamsMeetingBroadcastPolicy - Grant-CsTeamsMeetingBroadcastPolicy [[-Identity] <UserIdParameter>] [-PolicyName] <string> [-Tenant <guid>] [-DomainController <Fqdn>] [-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>] - Grant-CsTeamsMeetingBroadcastPolicy [-PolicyName] <string> [-Tenant <guid>] [-DomainController <Fqdn>] [-PassThru] [-Global] [-WhatIf] [-Confirm] [<CommonParameters>] + Use this cmdlet to assign a policy to a user. - User-level policy for tenant admin to configure meeting broadcast behavior for the broadcast event organizer. Use this cmdlet to assign a policy to a user. + User-level policy for tenant admin to configure meeting broadcast behavior for the broadcast event organizer. @@ -30934,7 +33856,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Global - + Use this switch if you want to grant the specified policy to be the default policy for all users in the tenant. SwitchParameter @@ -30945,7 +33867,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 PassThru - + {{ Fill PassThru Description }} SwitchParameter @@ -30956,7 +33878,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Tenant - + {{ Fill Tenant Description }} Guid @@ -30979,18 +33901,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Grant-CsTeamsMeetingBroadcastPolicy - - Identity - - Indicates the Identity of the user account the policy should be assigned to. User Identities can be specified using one of four formats: 1) the user's SIP address; 2) the user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. - - UserIdParameter - - UserIdParameter - - - None - PolicyName @@ -31026,10 +33936,22 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + PassThru - + {{ Fill PassThru Description }} SwitchParameter @@ -31037,10 +33959,22 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + Tenant - + {{ Fill Tenant Description }} Guid @@ -31063,6 +33997,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Grant-CsTeamsMeetingBroadcastPolicy + + Identity + + Indicates the Identity of the user account the policy should be assigned to. User Identities can be specified using one of four formats: 1) the user's SIP address; 2) the user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. + + UserIdParameter + + UserIdParameter + + + None + PolicyName @@ -31101,7 +34047,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 PassThru - + {{ Fill PassThru Description }} SwitchParameter @@ -31109,34 +34055,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - Tenant - + {{ Fill Tenant Description }} Guid @@ -31186,7 +34108,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Global - + Use this switch if you want to grant the specified policy to be the default policy for all users in the tenant. SwitchParameter @@ -31195,6 +34117,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + Identity @@ -31210,7 +34144,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 PassThru - + {{ Fill PassThru Description }} SwitchParameter @@ -31243,22 +34177,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - Tenant - + {{ Fill Tenant Description }} Guid @@ -31309,7 +34231,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csteamsmeetingbroadcastpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingbroadcastpolicy @@ -31331,6 +34253,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Identity + > Applicable: Microsoft Teams Indicates the Identity of the user account the policy should be assigned to. User Identities can be specified using one of four formats: 1) the user's SIP address; 2) the user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. UserIdParameter @@ -31343,6 +34266,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 PolicyName + > Applicable: Microsoft Teams The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. String @@ -31355,7 +34279,8 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 DomainController - + > Applicable: Microsoft Teams + {{ Fill DomainController Description }} Fqdn @@ -31365,9 +34290,9 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - PassThru + Global - + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". SwitchParameter @@ -31376,9 +34301,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - Global + PassThru - When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". + > Applicable: Microsoft Teams + {{ Fill PassThru Description }} SwitchParameter @@ -31389,7 +34315,8 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} Guid @@ -31404,6 +34331,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Identity + > Applicable: Microsoft Teams Indicates the Identity of the user account the policy should be assigned to. User Identities can be specified using one of four formats: 1) the user's SIP address; 2) the user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. UserIdParameter @@ -31416,6 +34344,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 PolicyName + > Applicable: Microsoft Teams The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. String @@ -31428,7 +34357,8 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 DomainController - + > Applicable: Microsoft Teams + {{ Fill DomainController Description }} Fqdn @@ -31437,17 +34367,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - PassThru - - - - - SwitchParameter - - - False - Group @@ -31460,6 +34379,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None + + PassThru + + > Applicable: Microsoft Teams + {{ Fill PassThru Description }} + + + SwitchParameter + + + False + Rank @@ -31475,7 +34406,8 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} Guid @@ -31490,7 +34422,8 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 DomainController - + > Applicable: Microsoft Teams + {{ Fill DomainController Description }} Fqdn @@ -31499,22 +34432,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - Identity - - Indicates the Identity of the user account the policy should be assigned to. User Identities can be specified using one of four formats: 1) the user's SIP address; 2) the user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. - - UserIdParameter - - UserIdParameter - - - None - - PassThru + Global - + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". SwitchParameter @@ -31523,10 +34444,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - PolicyName + + Group - The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + Specifies the group used for the group policy assignment. String @@ -31535,10 +34456,24 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None + + Identity + + > Applicable: Microsoft Teams + Indicates the Identity of the user account the policy should be assigned to. User Identities can be specified using one of four formats: 1) the user's SIP address; 2) the user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. + + UserIdParameter + + UserIdParameter + + + None + - Global + PassThru - When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". + > Applicable: Microsoft Teams + {{ Fill PassThru Description }} SwitchParameter @@ -31547,10 +34482,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Group + + PolicyName - Specifies the group used for the group policy assignment. + > Applicable: Microsoft Teams + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. String @@ -31574,7 +34510,8 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} Guid @@ -31621,7 +34558,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csteamsmeetingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingpolicy @@ -31640,18 +34577,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Grant-CsTeamsMessagingPolicy - - Identity - - Indicates the Identity of the user account the policy should be assigned to. User Identities can be specified using one of four formats: 1) the user's SIP address; 2) the user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. - - UserIdParameter - - UserIdParameter - - - None - PolicyName @@ -31678,7 +34603,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 DomainController - + This parameter is reserved for internal Microsoft use. Fqdn @@ -31687,10 +34612,21 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None + + Global + + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". + + + SwitchParameter + + + False + PassThru - + {{ Fill PassThru Description }} SwitchParameter @@ -31701,7 +34637,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Tenant - + {{ Fill Tenant Description }} Guid @@ -31750,7 +34686,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 DomainController - + This parameter is reserved for internal Microsoft use. Fqdn @@ -31759,21 +34695,22 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - Global + + Group - When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". + Specifies the group used for the group policy assignment. + String - SwitchParameter + String - False + None PassThru - + {{ Fill PassThru Description }} SwitchParameter @@ -31781,10 +34718,22 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + Tenant - + {{ Fill Tenant Description }} Guid @@ -31807,6 +34756,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Grant-CsTeamsMessagingPolicy + + Identity + + Indicates the Identity of the user account the policy should be assigned to. User Identities can be specified using one of four formats: 1) the user's SIP address; 2) the user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. + + UserIdParameter + + UserIdParameter + + + None + PolicyName @@ -31833,7 +34794,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 DomainController - + This parameter is reserved for internal Microsoft use. Fqdn @@ -31842,34 +34803,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - PassThru - + {{ Fill PassThru Description }} SwitchParameter @@ -31880,7 +34817,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Tenant - + {{ Fill Tenant Description }} Guid @@ -31918,7 +34855,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 DomainController - + This parameter is reserved for internal Microsoft use. Fqdn @@ -31927,18 +34864,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - Identity - - Indicates the Identity of the user account the policy should be assigned to. User Identities can be specified using one of four formats: 1) the user's SIP address; 2) the user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. - - UserIdParameter - - UserIdParameter - - - None - Global @@ -31963,14 +34888,14 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - Rank + + Identity - The rank of the policy assignment, relative to other group policy assignments for the same policy type. + Indicates the Identity of the user account the policy should be assigned to. User Identities can be specified using one of four formats: 1) the user's SIP address; 2) the user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. - Int32 + UserIdParameter - Int32 + UserIdParameter None @@ -31978,7 +34903,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 PassThru - + {{ Fill PassThru Description }} SwitchParameter @@ -31999,10 +34924,22 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + Tenant - + {{ Fill Tenant Description }} Guid @@ -32068,7 +35005,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csteamsmessagingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmessagingpolicy @@ -32088,18 +35025,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Grant-CsTeamsMobilityPolicy - - Identity - - The User Id of the user to whom the policy is being assigned. - - UserIdParameter - - UserIdParameter - - - None - PolicyName @@ -32123,6 +35048,17 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False + + Global + + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". + + + SwitchParameter + + + False + PassThru @@ -32172,16 +35108,17 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Global + + Group - When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". + Specifies the group used for the group policy assignment. + String - SwitchParameter + String - False + None PassThru @@ -32195,6 +35132,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + WhatIf @@ -32209,6 +35158,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Grant-CsTeamsMobilityPolicy + + Identity + + The User Id of the user to whom the policy is being assigned. + + UserIdParameter + + UserIdParameter + + + None + PolicyName @@ -32232,30 +35193,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - PassThru @@ -32294,22 +35231,22 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Identity + + Global - The User Id of the user to whom the policy is being assigned. + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". - UserIdParameter + SwitchParameter - UserIdParameter + SwitchParameter - None + False - - PolicyName + + Group - The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the Global policy, you can assign $Null. + Specifies the group used for the group policy assignment. String @@ -32318,10 +35255,23 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None + + Identity + + The User Id of the user to whom the policy is being assigned. + + UserIdParameter + + UserIdParameter + + + None + - Global + PassThru - When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". + Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams call hold policy. + By default, the cmdlet does not pass objects through the pipeline. SwitchParameter @@ -32330,10 +35280,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Group + + PolicyName - Specifies the group used for the group policy assignment. + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the Global policy, you can assign $Null. String @@ -32354,19 +35304,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - PassThru - - Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams call hold policy. - By default, the cmdlet does not pass objects through the pipeline. - - SwitchParameter - - SwitchParameter - - - False - WhatIf @@ -32417,7 +35354,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csteamsmobilitypolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmobilitypolicy @@ -32801,7 +35738,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csteamsroomvideoteleconferencingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsroomvideoteleconferencingpolicy @@ -32811,10 +35748,12 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Grant CsTeamsSurvivableBranchAppliancePolicy - The Survivable Branch Appliance (SBA) Policy cmdlets facilitate the continuation of Teams Phone operations, allowing for the placement and reception of Public Switched Telephone Network (PSTN) calls during service disruptions. These cmdlets are exclusively intended for Tenant Administrators and Session Border Controller (SBC) Vendors. In the absence of SBA configuration within a Tenant, the cmdlets will be inoperative. + Grants a Survivable Branch Appliance (SBA) Policy to users in the tenant. - + + The Survivable Branch Appliance (SBA) Policy cmdlets facilitate the continuation of Teams Phone operations, allowing for the placement and reception of Public Switched Telephone Network (PSTN) calls during service disruptions. These cmdlets are exclusively intended for Tenant Administrators and Session Border Controller (SBC) Vendors. In the absence of SBA configuration within a Tenant, the cmdlets will be inoperative. + Grant-CsTeamsSurvivableBranchAppliancePolicy @@ -33183,7 +36122,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csteamssurvivablebranchappliancepolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamssurvivablebranchappliancepolicy @@ -33437,7 +36376,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csteamsupdatemanagementpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsupdatemanagementpolicy @@ -33452,7 +36391,8 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 TeamsUpgradePolicy allows administrators to manage the transition from Skype for Business to Teams. As an organization with Skype for Business starts to adopt Teams, administrators can manage the user experience in their organization using the concept of coexistence "mode". Mode defines in which client incoming chats and calls land as well as in what service (Teams or Skype for Business) new meetings are scheduled in. Mode also governs what functionality is available in the Teams client. Finally, prior to upgrading to TeamsOnly mode administrators can use TeamsUpgradePolicy to trigger notifications in the Skype for Business client to inform users of the pending upgrade. - This cmdlet enables admins to apply TeamsUpgradePolicy to either individual users or to set the default for the entire organization. NOTE : Earlier versions of this cmdlet used to support -MigrateMeetingsToTeams option. This option is removed in later versions of the module. Tenants must run Start-CsExMeetingMigration. See Start-CsExMeetingMigrationService (https://learn.microsoft.com/powershell/module/skype/start-csexmeetingmigration). + This cmdlet enables admins to apply TeamsUpgradePolicy to either individual users or to set the default for the entire organization. + > [!NOTE] > Earlier versions of this cmdlet used to support -MigrateMeetingsToTeams option. This option is removed in later versions of the module. Tenants must run Start-CsExMeetingMigration. See Start-CsExMeetingMigrationService (https://learn.microsoft.com/powershell/module/microsoftteams/start-csexmeetingmigration). Microsoft Teams provides all relevant instances of TeamsUpgradePolicy via built-in, read-only policies. The built-in instances are as follows: |Identity|Mode|NotifySfbUsers|Comments| |---|---|---|---| |Islands|Islands|False|Default configuration. Allows a single user to evaluate both clients side by side. Chats and calls can land in either client, so users must always run both clients.| |IslandsWithNotify|Islands|True|Same as Islands and it adds a banner in the Skype for Business client informing the user that Teams will soon replace Skype for Business.| |SfBOnly|SfBOnly|False|Calling, chat functionality and meeting scheduling in the Teams app are disabled.| |SfBOnlyWithNotify|SfBOnly|True|Same as SfBOnly and it adds a banner in the Skype for Business client informing the user that Teams will soon replace Skype for Business.| |SfBWithTeamsCollab|SfBWithTeamsCollab|False|Calling, chat functionality and meeting scheduling in the Teams app are disabled.| |SfBWithTeamsCollabWithNotify|SfBWithTeamsCollab|True|Same as SfBWithTeamsCollab and it adds a banner in the Skype for Business client informing the user that Teams will soon replace Skype for Business.| |SfBWithTeamsCollabAndMeetings|SfBWithTeamsCollabAndMeetings|False|Calling and chat functionality in the Teams app are disabled.| |SfBWithTeamsCollabAndMeetingsWithNotify|SfBWithTeamsCollabAndMeetings|True|Same as SfBWithTeamsCollabAndMeetings and it adds a banner in the Skype for Business client informing the user that Teams will soon replace Skype for Business.| |UpgradeToTeams|TeamsOnly|False|Use this mode to upgrade users to Teams and to prevent chat, calling, and meeting scheduling in Skype for Business.| |Global|Islands|False|| > [!IMPORTANT] > TeamsUpgradePolicy can be assigned to any Teams user, whether that user have an on-premises account in Skype for Business Server or not. However, TeamsOnly mode can only be assigned to a user who is already homed in Skype for Business Online . This is because interop with Skype for Business users and federation as well as Microsoft 365 Phone System functionality are only possible if the user is homed in Skype for Business Online. In addition, you cannot assign TeamsOnly mode as the tenant-wide default if you have any Skype for Business on-premises deployment (which is detected by presence of a lyncdiscover DNS record that points to a location other than Office 365. To make these users TeamsOnly you must first move these users individually to the cloud using `Move-CsUser`. Once all users have been moved to the cloud, you can disable hybrid to complete migration to the cloud (https://learn.microsoft.com/skypeforbusiness/hybrid/cloud-consolidation-disabling-hybrid)and then apply TeamsOnly mode at the tenant level to ensure future users are TeamsOnly by default. @@ -33465,30 +36405,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Grant-CsTeamsUpgradePolicy - - Identity - - The user you want to grant policy to. This can be specified as SIP address, UserPrincipalName, or ObjectId. - - UserIdParameter - - UserIdParameter - - - None - - - PolicyName - - The name of the policy instance. - - Object - - Object - - - None - Global @@ -33500,45 +36416,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Tenant - - Do not use. - - Object - - Object - - - None - - - MigrateMeetingsToTeams - - Not supported anymore, see the Description section. - - Boolean - - Boolean - - - None - - - PassThru - - Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams call hold policy. - By default, the cmdlet does not pass objects through the pipeline. - - - SwitchParameter - - - False - - - - Grant-CsTeamsUpgradePolicy PolicyName @@ -33551,29 +36428,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - Global - - Use this switch if you want to grant the specified policy to be the default policy for all users in the tenant. - - - SwitchParameter - - - False - - - Tenant - - Do not use. - - Object - - Object - - - None - Force @@ -33609,13 +36463,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - - Grant-CsTeamsUpgradePolicy - - PolicyName + + Tenant - The name of the policy instance. + Do not use. Object @@ -33624,6 +36475,9 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None + + + Grant-CsTeamsUpgradePolicy Global @@ -33635,10 +36489,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Tenant + + PolicyName - Do not use. + The name of the policy instance. Object @@ -33695,32 +36549,106 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None + + Tenant + + Do not use. + + Object + + Object + + + None + + + + Grant-CsTeamsUpgradePolicy + + Identity + + The user you want to grant policy to. This can be specified as SIP address, UserPrincipalName, or ObjectId. + + UserIdParameter + + UserIdParameter + + + None + + + Global + + Use this switch if you want to grant the specified policy to be the default policy for all users in the tenant. + + + SwitchParameter + + + False + + + PolicyName + + The name of the policy instance. + + Object + + Object + + + None + + + MigrateMeetingsToTeams + + Not supported anymore, see the Description section. + + Boolean + + Boolean + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams call hold policy. + By default, the cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + Tenant + + Do not use. + + Object + + Object + + + None + - - Identity - - The user you want to grant policy to. This can be specified as SIP address, UserPrincipalName, or ObjectId. - - UserIdParameter - - UserIdParameter - - - None - - - PolicyName + + Force - The name of the policy instance. + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. - Object + SwitchParameter - Object + SwitchParameter - None + False Global @@ -33734,38 +36662,26 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Tenant + + Group - Do not use. + Specifies the group used for the group policy assignment. - Object + String - Object + String None - - Force - - The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. - - SwitchParameter - - SwitchParameter - - - False - - - Group + + Identity - Specifies the group used for the group policy assignment. + The user you want to grant policy to. This can be specified as SIP address, UserPrincipalName, or ObjectId. - String + UserIdParameter - String + UserIdParameter None @@ -33795,6 +36711,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False + + PolicyName + + The name of the policy instance. + + Object + + Object + + + None + Rank @@ -33807,6 +36735,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None + + Tenant + + Do not use. + + Object + + Object + + + None + @@ -33912,15 +36852,15 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm Get-CsTeamsUpgradeConfiguration - https://learn.microsoft.com/powershell/module/teams/get-csteamsupgradeconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsupgradeconfiguration Set-CsTeamsUpgradeConfiguration - https://learn.microsoft.com/powershell/module/teams/set-csteamsupgradeconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsupgradeconfiguration Get-CsTeamsUpgradePolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsupgradepolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsupgradepolicy @@ -33930,12 +36870,11 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm Grant CsTeamsVideoInteropServicePolicy - Cloud Video Interop for Teams enables 3rd party VTC devices to be able to join Teams meetings. You can use the TeamsVideoInteropServicePolicy cmdlets to enable Cloud Video Interop for particular users or for your entire organization. + The Grant-CsTeamsVideoInteropServicePolicy cmdlet allows you to assign a pre-constructed policy across your whole organization or only to specific users. Cloud Video Interop for Teams enables 3rd party VTC devices to be able to join Teams meetings. You can use the TeamsVideoInteropServicePolicy cmdlets to enable Cloud Video Interop for particular users or for your entire organization. Microsoft provides pre-constructed policies for each of our supported partners that allow you to designate which of the partners to use for cloud video interop. - The Grant-CsTeamsVideoInteropServicePolicy cmdlet allows you to assign a pre-constructed policy across your whole organization or only to specific users. User needs to be assigned one policy from admin to create a CVI meeting. There could be multiple provides in a tenant, but user can only be assigned only one policy(provide). FAQ : Q: After running `Grant-CsTeamsVideoInteropServicePolicy -PolicyName <Identity of the Policy>` to assign a policy to the whole tenant, the result of `Get-CsOnlineUser -Identity {User Identity} | Format-List TeamsVideoInteropServicePolicy` that checks if the User Policy is empty. A: Global/Tenant level Policy Assignment can be checked by running `Get-CsTeamsVideoInteropServicePolicy Global`. @@ -34030,18 +36969,6 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm Grant-CsTeamsVideoInteropServicePolicy - - Identity - - {{Fill Identity Description}} - - UserIdParameter - - UserIdParameter - - - None - PolicyName @@ -34077,6 +37004,18 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm None + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + PassThru @@ -34088,6 +37027,18 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm False + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + Tenant @@ -34114,6 +37065,18 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm Grant-CsTeamsVideoInteropServicePolicy + + Identity + + {{Fill Identity Description}} + + UserIdParameter + + UserIdParameter + + + None + PolicyName @@ -34183,30 +37146,6 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm False - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - @@ -34246,6 +37185,18 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm False + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + Identity @@ -34282,6 +37233,18 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm None + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + Tenant @@ -34306,30 +37269,6 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm False - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - @@ -34391,7 +37330,7 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csteamsvideointeropservicepolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsvideointeropservicepolicy @@ -34410,10 +37349,11 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm Grant-CsTeamsVoiceApplicationsPolicy - - Identity + + PolicyName - Indicates the Identity of the user account to be assigned the per-user Teams voice applications policy. User Identities can be specified using one of the following formats: the user's SIP address, the user's user principal name (UPN), or the user's Active Directory display name (for example, Ken Myer). + "Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; likewise, a policy with the Identity tag:SDAAllowAllTeamsVoiceApplicationsPolicy has a PolicyName equal to SDAAllowAllTeamsVoiceApplicationsPolicy. + To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). String @@ -34422,23 +37362,21 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm None - - PolicyName + + Confirm - "Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; likewise, a policy with the Identity tag:SDAAllowAllTeamsVoiceApplicationsPolicy has a PolicyName equal to SDAAllowAllTeamsVoiceApplicationsPolicy. - To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). + Prompts you for confirmation before running the cmdlet. - String - String + SwitchParameter - None + False - PassThru + Global - Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams voice applications policy. By default, the Grant-CsTeamsVoiceApplicationsPolicy cmdlet does not pass objects through the pipeline. + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant, except any that have an explicit policy assignment. To skip a warning when you do this operation, specify this parameter. SwitchParameter @@ -34446,10 +37384,10 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm False - - WhatIf + + PassThru - Shows what would happen if the cmdlet runs. The cmdlet is not run. + Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams voice applications policy. By default, the Grant-CsTeamsVoiceApplicationsPolicy cmdlet does not pass objects through the pipeline. SwitchParameter @@ -34457,10 +37395,10 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm False - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -34484,10 +37422,10 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm None - - PassThru + + Confirm - Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams voice applications policy. By default, the Grant-CsTeamsVoiceApplicationsPolicy cmdlet does not pass objects through the pipeline. + Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -34495,10 +37433,22 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm False + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + - Global + PassThru - When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant, except any that have an explicit policy assignment. To skip a warning when you do this operation, specify this parameter. + Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams voice applications policy. By default, the Grant-CsTeamsVoiceApplicationsPolicy cmdlet does not pass objects through the pipeline. SwitchParameter @@ -34506,21 +37456,22 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm False - - WhatIf + + Rank - Shows what would happen if the cmdlet runs. The cmdlet is not run. + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + Int32 - SwitchParameter + Int32 - False + None - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -34531,11 +37482,10 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm Grant-CsTeamsVoiceApplicationsPolicy - - PolicyName + + Identity - "Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; likewise, a policy with the Identity tag:SDAAllowAllTeamsVoiceApplicationsPolicy has a PolicyName equal to SDAAllowAllTeamsVoiceApplicationsPolicy. - To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). + Indicates the Identity of the user account to be assigned the per-user Teams voice applications policy. User Identities can be specified using one of the following formats: the user's SIP address, the user's user principal name (UPN), or the user's Active Directory display name (for example, Ken Myer). String @@ -34544,27 +37494,18 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm None - - PassThru - - Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams voice applications policy. By default, the Grant-CsTeamsVoiceApplicationsPolicy cmdlet does not pass objects through the pipeline. - - - SwitchParameter - - - False - - - WhatIf + + PolicyName - Shows what would happen if the cmdlet runs. The cmdlet is not run. + "Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; likewise, a policy with the Identity tag:SDAAllowAllTeamsVoiceApplicationsPolicy has a PolicyName equal to SDAAllowAllTeamsVoiceApplicationsPolicy. + To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). + String - SwitchParameter + String - False + None Confirm @@ -34578,48 +37519,46 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm False - Rank + PassThru - The rank of the policy assignment, relative to other group policy assignments for the same policy type. + Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams voice applications policy. By default, the Grant-CsTeamsVoiceApplicationsPolicy cmdlet does not pass objects through the pipeline. - Int32 - Int32 + SwitchParameter - None + False - - Group + + WhatIf - Specifies the group used for the group policy assignment. + Shows what would happen if the cmdlet runs. The cmdlet is not run. - String - String + SwitchParameter - None + False - - Identity + + Confirm - Indicates the Identity of the user account to be assigned the per-user Teams voice applications policy. User Identities can be specified using one of the following formats: the user's SIP address, the user's user principal name (UPN), or the user's Active Directory display name (for example, Ken Myer). + Prompts you for confirmation before running the cmdlet. - String + SwitchParameter - String + SwitchParameter - None + False - PassThru + Global - Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams voice applications policy. By default, the Grant-CsTeamsVoiceApplicationsPolicy cmdlet does not pass objects through the pipeline. + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant, except any that have an explicit policy assignment. To skip a warning when you do this operation, specify this parameter. SwitchParameter @@ -34628,11 +37567,10 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm False - - PolicyName + + Group - "Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; likewise, a policy with the Identity tag:SDAAllowAllTeamsVoiceApplicationsPolicy has a PolicyName equal to SDAAllowAllTeamsVoiceApplicationsPolicy. - To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). + Specifies the group used for the group policy assignment. String @@ -34641,22 +37579,22 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm None - - Global + + Identity - When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant, except any that have an explicit policy assignment. To skip a warning when you do this operation, specify this parameter. + Indicates the Identity of the user account to be assigned the per-user Teams voice applications policy. User Identities can be specified using one of the following formats: the user's SIP address, the user's user principal name (UPN), or the user's Active Directory display name (for example, Ken Myer). - SwitchParameter + String - SwitchParameter + String - False + None - - WhatIf + + PassThru - Shows what would happen if the cmdlet runs. The cmdlet is not run. + Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams voice applications policy. By default, the Grant-CsTeamsVoiceApplicationsPolicy cmdlet does not pass objects through the pipeline. SwitchParameter @@ -34665,17 +37603,18 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm False - - Confirm + + PolicyName - Prompts you for confirmation before running the cmdlet. + "Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; likewise, a policy with the Identity tag:SDAAllowAllTeamsVoiceApplicationsPolicy has a PolicyName equal to SDAAllowAllTeamsVoiceApplicationsPolicy. + To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). - SwitchParameter + String - SwitchParameter + String - False + None Rank @@ -34689,17 +37628,17 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm None - - Group + + WhatIf - Specifies the group used for the group policy assignment. + Shows what would happen if the cmdlet runs. The cmdlet is not run. - String + SwitchParameter - String + SwitchParameter - None + False @@ -34746,23 +37685,23 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csteamsvoiceapplicationspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsvoiceapplicationspolicy Get-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsvoiceapplicationspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsvoiceapplicationspolicy Set-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsvoiceapplicationspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsvoiceapplicationspolicy Remove-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsvoiceapplicationspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsvoiceapplicationspolicy New-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsvoiceapplicationspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsvoiceapplicationspolicy @@ -35181,23 +38120,23 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csteamsworkloadpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsworkloadpolicy Remove-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsworkloadpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsworkloadpolicy Get-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsworkloadpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsworkloadpolicy Set-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsworkloadpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsworkloadpolicy New-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsworkloadpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsworkloadpolicy @@ -35220,6 +38159,7 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm PolicyName + > Applicable: Microsoft Teams The PolicyName parameter is the name of the tenant dial plan to be assigned. String @@ -35232,6 +38172,7 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm Global + > Applicable: Microsoft Teams Sets the parameters of the Global policy instance to the values in the specified policy instance. @@ -35243,7 +38184,8 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm PassThru - + > Applicable: Microsoft Teams + {{ Fill PassThru Description }} SwitchParameter @@ -35257,6 +38199,7 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm Group + > Applicable: Microsoft Teams Specifies the group used for the group policy assignment. String @@ -35269,6 +38212,7 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm PolicyName + > Applicable: Microsoft Teams The PolicyName parameter is the name of the tenant dial plan to be assigned. String @@ -35281,7 +38225,8 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm PassThru - + > Applicable: Microsoft Teams + {{ Fill PassThru Description }} SwitchParameter @@ -35292,6 +38237,7 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm Rank + > Applicable: Microsoft Teams The rank of the policy assignment, relative to other group policy assignments for the same policy type. Int32 @@ -35307,6 +38253,7 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm Identity + > Applicable: Microsoft Teams The Identity parameter identifies the user to whom the policy should be assigned. String @@ -35319,6 +38266,7 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm PolicyName + > Applicable: Microsoft Teams The PolicyName parameter is the name of the tenant dial plan to be assigned. String @@ -35331,7 +38279,8 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm PassThru - + > Applicable: Microsoft Teams + {{ Fill PassThru Description }} SwitchParameter @@ -35345,6 +38294,7 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm Global + > Applicable: Microsoft Teams Sets the parameters of the Global policy instance to the values in the specified policy instance. SwitchParameter @@ -35354,22 +38304,24 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm False - - PassThru + + Group - + > Applicable: Microsoft Teams + Specifies the group used for the group policy assignment. - SwitchParameter + String - SwitchParameter + String - False + None - - PolicyName + + Identity - The PolicyName parameter is the name of the tenant dial plan to be assigned. + > Applicable: Microsoft Teams + The Identity parameter identifies the user to whom the policy should be assigned. String @@ -35378,10 +38330,24 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm None - - Group + + PassThru - Specifies the group used for the group policy assignment. + > Applicable: Microsoft Teams + {{ Fill PassThru Description }} + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + > Applicable: Microsoft Teams + The PolicyName parameter is the name of the tenant dial plan to be assigned. String @@ -35393,6 +38359,7 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm Rank + > Applicable: Microsoft Teams The rank of the policy assignment, relative to other group policy assignments for the same policy type. Int32 @@ -35402,18 +38369,6 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm None - - Identity - - The Identity parameter identifies the user to whom the policy should be assigned. - - String - - String - - - None - @@ -35448,23 +38403,23 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-cstenantdialplan + https://learn.microsoft.com/powershell/module/microsoftteams/grant-cstenantdialplan Set-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/teams/set-cstenantdialplan + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantdialplan New-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/teams/new-cstenantdialplan + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantdialplan Remove-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/teams/remove-cstenantdialplan + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantdialplan Get-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/teams/get-cstenantdialplan + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantdialplan @@ -35486,6 +38441,7 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm Identity + > Applicable: Microsoft Teams A list of one or more users in the tenant. Note that there is a limit of 20 users you can apply the package to at a time. String[] @@ -35498,6 +38454,7 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm PackageName + > Applicable: Microsoft Teams The name of a specific policy package to apply. All possible policy package names can be found by running Get-CsPolicyPackage. String @@ -35507,10 +38464,10 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm None - - WhatIf + + Confirm - Shows what would happen if the cmdlet runs. The cmdlet is not run. + Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -35518,10 +38475,10 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm False - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -35532,9 +38489,22 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + Identity + > Applicable: Microsoft Teams A list of one or more users in the tenant. Note that there is a limit of 20 users you can apply the package to at a time. String[] @@ -35547,6 +38517,7 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm PackageName + > Applicable: Microsoft Teams The name of a specific policy package to apply. All possible policy package names can be found by running Get-CsPolicyPackage. String @@ -35568,18 +38539,6 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - @@ -35600,23 +38559,23 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm Online Version: - https://learn.microsoft.com/powershell/module/teams/grant-csuserpolicypackage + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csuserpolicypackage Get-CsPolicyPackage - https://learn.microsoft.com/powershell/module/teams/get-cspolicypackage + https://learn.microsoft.com/powershell/module/microsoftteams/get-cspolicypackage Get-CsUserPolicyPackageRecommendation - https://learn.microsoft.com/powershell/module/teams/get-csuserpolicypackagerecommendation + https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicypackagerecommendation Get-CsUserPolicyPackage - https://learn.microsoft.com/powershell/module/teams/get-csuserpolicypackage + https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicypackage New-CsBatchPolicyPackageAssignmentOperation - https://learn.microsoft.com/powershell/module/teams/new-csbatchpolicypackageassignmentoperation + https://learn.microsoft.com/powershell/module/microsoftteams/new-csbatchpolicypackageassignmentoperation @@ -35649,6 +38608,7 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm Identity + > Applicable: Microsoft Teams The identity for the AA whose holiday schedules are to be imported. System.String @@ -35661,6 +38621,7 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm Input + > Applicable: Microsoft Teams The Input parameter specifies the holiday schedule information that is to be imported. System.Byte[] @@ -35673,7 +38634,8 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -35688,6 +38650,7 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm Identity + > Applicable: Microsoft Teams The identity for the AA whose holiday schedules are to be imported. System.String @@ -35700,6 +38663,7 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm Input + > Applicable: Microsoft Teams The Input parameter specifies the holiday schedule information that is to be imported. System.Byte[] @@ -35712,7 +38676,8 @@ $objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.htm Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -35768,15 +38733,15 @@ Import-CsAutoAttendantHolidays -Identity 6abea1cd-904b-520b-be96-1092cc096432 -I Online Version: - https://learn.microsoft.com/powershell/module/teams/import-csautoattendantholidays + https://learn.microsoft.com/powershell/module/microsoftteams/import-csautoattendantholidays Export-CsAutoAttendantHolidays - https://learn.microsoft.com/powershell/module/teams/export-csautoattendantholidays + https://learn.microsoft.com/powershell/module/microsoftteams/export-csautoattendantholidays Get-CsAutoAttendantHolidays - https://learn.microsoft.com/powershell/module/teams/get-csautoattendantholidays + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantholidays @@ -35798,6 +38763,7 @@ Import-CsAutoAttendantHolidays -Identity 6abea1cd-904b-520b-be96-1092cc096432 -I ApplicationId + > Applicable: Microsoft Teams The ApplicationId parameter is the identifier for the application which will use this audio file. For example, if the audio file will be used with an Auto Attendant, then it needs to be set to "OrgAutoAttendant". If the audio file will be used with a Call Queue, then it needs to be set to "HuntGroup". If the audio file will be used with Microsoft Teams, then it needs to be set to "TenantGlobal". Supported values: - OrgAutoAttendant @@ -35812,25 +38778,27 @@ Import-CsAutoAttendantHolidays -Identity 6abea1cd-904b-520b-be96-1092cc096432 -I None - FileName + Content - The FileName parameter is the name of the audio file. For example, the file name for the file C:\Media\Welcome.wav is Welcome.wav. + > Applicable: Microsoft Teams + The Content parameter represents the content of the audio file. Supported formats are WAV (uncompressed, linear PCM with 8/16/32-bit depth in mono or stereo), WMA (mono only), and MP3. The audio file content cannot be more 5MB. - String + Byte[] - String + Byte[] None - Content + FileName - The Content parameter represents the content of the audio file. Supported formats are WAV (uncompressed, linear PCM with 8/16/32-bit depth in mono or stereo), WMA (mono only), and MP3. The audio file content cannot be more 5MB. + > Applicable: Microsoft Teams + The FileName parameter is the name of the audio file. For example, the file name for the file C:\Media\Welcome.wav is Welcome.wav. - Byte[] + String - Byte[] + String None @@ -35841,6 +38809,7 @@ Import-CsAutoAttendantHolidays -Identity 6abea1cd-904b-520b-be96-1092cc096432 -I ApplicationId + > Applicable: Microsoft Teams The ApplicationId parameter is the identifier for the application which will use this audio file. For example, if the audio file will be used with an Auto Attendant, then it needs to be set to "OrgAutoAttendant". If the audio file will be used with a Call Queue, then it needs to be set to "HuntGroup". If the audio file will be used with Microsoft Teams, then it needs to be set to "TenantGlobal". Supported values: - OrgAutoAttendant @@ -35855,25 +38824,27 @@ Import-CsAutoAttendantHolidays -Identity 6abea1cd-904b-520b-be96-1092cc096432 -I None - FileName + Content - The FileName parameter is the name of the audio file. For example, the file name for the file C:\Media\Welcome.wav is Welcome.wav. + > Applicable: Microsoft Teams + The Content parameter represents the content of the audio file. Supported formats are WAV (uncompressed, linear PCM with 8/16/32-bit depth in mono or stereo), WMA (mono only), and MP3. The audio file content cannot be more 5MB. - String + Byte[] - String + Byte[] None - Content + FileName - The Content parameter represents the content of the audio file. Supported formats are WAV (uncompressed, linear PCM with 8/16/32-bit depth in mono or stereo), WMA (mono only), and MP3. The audio file content cannot be more 5MB. + > Applicable: Microsoft Teams + The FileName parameter is the name of the audio file. For example, the file name for the file C:\Media\Welcome.wav is Welcome.wav. - Byte[] + String - Byte[] + String None @@ -35911,7 +38882,7 @@ Import-CsAutoAttendantHolidays -Identity 6abea1cd-904b-520b-be96-1092cc096432 -I $content = [System.IO.File]::ReadAllBytes('C:\Media\Hello.wav') $audioFile = Import-CsOnlineAudioFile -ApplicationId "OrgAutoAttendant" -FileName "Hello.wav" -Content $content - This example creates a new audio file using the WAV content that has a filename of Hello.wav to be used with organizational auto attendants. The stored variable, $audioFile, will be used when running other cmdlets to update the audio file for Auto Attendant, for example New-CsAutoAttendantPrompt (https://learn.microsoft.com/powershell/module/teams/new-csautoattendantprompt). + This example creates a new audio file using the WAV content that has a filename of Hello.wav to be used with organizational auto attendants. The stored variable, $audioFile, will be used when running other cmdlets to update the audio file for Auto Attendant, for example New-CsAutoAttendantPrompt (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantprompt). @@ -35919,7 +38890,7 @@ $audioFile = Import-CsOnlineAudioFile -ApplicationId "OrgAutoAttendant" -FileNam $content = [System.IO.File]::ReadAllBytes('C:\Media\MOH.wav') $audioFile = Import-CsOnlineAudioFile -ApplicationId "HuntGroup" -FileName "MOH.wav" -Content $content - This example creates a new audio file using the WAV content that has a filename of MOH.wav to be used as a Music On Hold file with a Call Queue. The stored variable, $audioFile, will be used with Set-CsCallQueue (https://learn.microsoft.com/powershell/module/teams/set-cscallqueue)to provide the audio file id. + This example creates a new audio file using the WAV content that has a filename of MOH.wav to be used as a Music On Hold file with a Call Queue. The stored variable, $audioFile, will be used with Set-CsCallQueue (https://learn.microsoft.com/powershell/module/microsoftteams/set-cscallqueue)to provide the audio file id. @@ -35927,26 +38898,26 @@ $audioFile = Import-CsOnlineAudioFile -ApplicationId "HuntGroup" -FileName "MOH. $content = [System.IO.File]::ReadAllBytes('C:\Media\MOH.wav') $audioFile = Import-CsOnlineAudioFile -ApplicationId TenantGlobal -FileName "MOH.wav" -Content $content - This example creates a new audio file using the WAV content that has a filename of MOH.wav to be used as Music On Hold for Microsoft Teams. The stored variable, $audioFile, will be used with New-CsTeamsCallHoldPolicy (https://learn.microsoft.com/powershell/module/teams/new-csteamscallholdpolicy)to provide the audio file id. + This example creates a new audio file using the WAV content that has a filename of MOH.wav to be used as Music On Hold for Microsoft Teams. The stored variable, $audioFile, will be used with New-CsTeamsCallHoldPolicy (https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallholdpolicy)to provide the audio file id. Online Version: - https://learn.microsoft.com/powershell/module/teams/import-csonlineaudiofile + https://learn.microsoft.com/powershell/module/microsoftteams/import-csonlineaudiofile Export-CsOnlineAudioFile - https://learn.microsoft.com/powershell/module/teams/export-csonlineaudiofile + https://learn.microsoft.com/powershell/module/microsoftteams/export-csonlineaudiofile Get-CsOnlineAudioFile - https://learn.microsoft.com/powershell/module/teams/get-csonlineaudiofile + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineaudiofile Remove-CsOnlineAudioFile - https://learn.microsoft.com/powershell/module/teams/remove-csonlineaudiofile + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineaudiofile @@ -36004,18 +38975,6 @@ $audioFile = Import-CsOnlineAudioFile -ApplicationId TenantGlobal -FileName "MOH - - Identity - - Unique identifier assigned to the policy when it was created. - - XdsIdentity - - XdsIdentity - - - None - AppIds @@ -36040,6 +38999,18 @@ $audioFile = Import-CsOnlineAudioFile -ApplicationId TenantGlobal -FileName "MOH None + + Identity + + Unique identifier assigned to the policy when it was created. + + XdsIdentity + + XdsIdentity + + + None + @@ -36067,23 +39038,23 @@ $audioFile = Import-CsOnlineAudioFile -ApplicationId TenantGlobal -FileName "MOH Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csapplicationaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy Grant-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csapplicationaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csapplicationaccesspolicy Get-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csapplicationaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csapplicationaccesspolicy Set-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csapplicationaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csapplicationaccesspolicy Remove-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csapplicationaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csapplicationaccesspolicy @@ -36099,7 +39070,7 @@ $audioFile = Import-CsOnlineAudioFile -ApplicationId TenantGlobal -FileName "MOH Auto Attendants (AAs) are a key element in the Office 365 Phone System. Each AA can be associated with phone numbers that allow callers to reach specific people in the organization through a directory lookup. Alternatively, it can route the calls to an operator, a user, another AA, or a call queue. You can create new AAs by using the New-CsAutoAttendant cmdlet; each newly created AA gets assigned a random string that serves as the identity of the AA. - > [!CAUTION] > The following configuration parameters are currently only available in PowerShell and do not appear in Teams admin center. Saving a call queue configuration through Teams admin center will remove any of these configured items: > > - -HideAuthorizedUsers > - -UserNameExtension NOTES : + > [!CAUTION] > The following configuration parameters are currently only available in PowerShell and do not appear in Teams admin center. Saving a call queue configuration through Teams admin center will remove any of these configured items: > > - -HideAuthorizedUsers > - -UserNameExtension > > The following configuration parameters will only work for customers that are participating in the Voice Applications private preview for these features. General Availability for this functionality has not been determined at this time. > > - -EnableMainLineAttendant > - -MainlineAttendantAgentVoiceId NOTES : - To setup your AA for calling, you need to create an application instance first using `New-CsOnlineApplicationInstance` cmdlet , then associate it with your AA configuration using `New-CsOnlineApplicationInstanceAssociation` cmdlet. - The default call flow has the lowest precedence, and any custom call flow has a higher precedence and is executed if the schedule associated with it is in effect. - Holiday call flows have higher priority than after-hours call flows. Thus, if a holiday schedule and an after-hours schedule are both in effect at a particular time, the call flow corresponding to the holiday call flow will be rendered. @@ -36109,40 +39080,43 @@ $audioFile = Import-CsOnlineAudioFile -ApplicationId TenantGlobal -FileName "MOH New-CsAutoAttendant - - Name + + AuthorizedUsers - The Name parameter is a friendly name that is assigned to the AA. + > Applicable: Microsoft Teams + This is a list of GUIDs for users who are authorized to make changes to this call queue. The users must also have a TeamsVoiceApplications policy assigned. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). - System.String + List - System.String + List None - LanguageId + CallFlows - The LanguageId parameter is the language that is used to read text-to-speech (TTS) prompts. - You can query the supported languages using the `Get-CsAutoAttendantSupportedLanguage` (https://learn.microsoft.com/powershell/module/teams/get-csautoattendantsupportedlanguage)cmdlet. + > Applicable: Microsoft Teams + The CallFlows parameter represents call flows, which are required if they are referenced in the CallHandlingAssociations parameter. + You can create CallFlows by using the `New-CsAutoAttendantCallFlow` (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallflow)cmdlet. - System.String + System.Collections.Generic.List - System.String + System.Collections.Generic.List None - TimeZoneId + CallHandlingAssociations - The TimeZoneId parameter represents the AA time zone. All schedules are evaluated based on this time zone. - You can query the supported timezones using the `Get-CsAutoAttendantSupportedTimeZone` (https://learn.microsoft.com/powershell/module/teams/get-csautoattendantsupportedtimezone)cmdlet. + > Applicable: Microsoft Teams + The CallHandlingAssociations parameter represents the call handling associations. The AA service uses call handling associations to determine which call flow to execute when a specific schedule is in effect. + You can create CallHandlingAssociations by using the `New-CsAutoAttendantCallHandlingAssociation` cmdlet. - System.String + System.Collections.Generic.List - System.String + System.Collections.Generic.List None @@ -36150,8 +39124,9 @@ $audioFile = Import-CsOnlineAudioFile -ApplicationId TenantGlobal -FileName "MOH DefaultCallFlow + > Applicable: Microsoft Teams The DefaultCallFlow parameter is the flow to be executed when no other call flow is in effect (for example, during business hours). - You can create the DefaultCallFlow by using the `New-CsAutoAttendantCallFlow` (https://learn.microsoft.com/powershell/module/teams/new-csautoattendantcallflow)cmdlet. + You can create the DefaultCallFlow by using the `New-CsAutoAttendantCallFlow` (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallflow)cmdlet. Object @@ -36160,77 +39135,74 @@ $audioFile = Import-CsOnlineAudioFile -ApplicationId TenantGlobal -FileName "MOH None - - CallFlows + + EnableMainlineAttendant - The CallFlows parameter represents call flows, which are required if they are referenced in the CallHandlingAssociations parameter. - You can create CallFlows by using the `New-CsAutoAttendantCallFlow` (https://learn.microsoft.com/powershell/module/teams/new-csautoattendantcallflow)cmdlet. + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving an auto attendant configuration through Teams admin center will remove this setting. The EnableMainlineAttendant parameter enables Mainline Attendant features for this Auto attendant. + > [!NOTE] > 1. The Auto attendant must have a Resource account assigned > 1. `-LanguageId` options are limited when Mainline Attendant is enabled > 1. `-EnableVoiceResponse` will be enabled automatically - System.Collections.Generic.List - System.Collections.Generic.List + SwitchParameter - None + False - - CallHandlingAssociations + + MainlineAttendantAgentVoiceId - The CallHandlingAssociations parameter represents the call handling associations. The AA service uses call handling associations to determine which call flow to execute when a specific schedule is in effect. - You can create CallHandlingAssociations by using the `New-CsAutoAttendantCallHandlingAssociation` cmdlet. + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving an auto attendant configuration through Teams admin center will remove this setting. The MainlineAttendantAgentVoiceId parameter sets the voice that will be used with Mainline Attendant. + PARAMVALUE: Alloy | Echo | Shimmer - System.Collections.Generic.List - System.Collections.Generic.List + SwitchParameter - None + False - Operator + EnableVoiceResponse - The Operator parameter represents the SIP address or PSTN number of the operator. - You can create callable entities by using the `New-CsAutoAttendantCallableEntity` cmdlet. + > Applicable: Microsoft Teams + The EnableVoiceResponse parameter indicates whether voice response for AA is enabled. - Object - Object + SwitchParameter - None + False - VoiceId + ExclusionScope - The VoiceId parameter represents the voice that is used to read text-to-speech (TTS) prompts. - You can query the supported voices by using the `Get-CsAutoAttendantSupportedLanguage` cmdlet. You can determine the default voice for a language by issuing the following command: - - $language = Get-CsAutoAttendantSupportedLanguage -Identity "en-US" - $defaultVoice = $language.Voices[0].Id + > Applicable: Microsoft Teams + Specifies the users to which call transfers are not allowed through directory lookup feature. If not specified, no user in the organization is excluded from directory lookup. + Dial scopes can be created by using the `New-CsAutoAttendantDialScope` (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantdialscope)cmdlet. - System.String + Object - System.String + Object None - EnableVoiceResponse + HideAuthorizedUsers - The EnableVoiceResponse parameter indicates whether voice response for AA is enabled. + > Applicable: Microsoft Teams Saving an auto attendant configuration through Teams admin center will *remove* this setting. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). + List - SwitchParameter + List - False + None InclusionScope + > Applicable: Microsoft Teams Specifies the users to which call transfers are allowed through directory lookup feature. If not specified, all users in the organization can be reached through directory lookup. - Dial scopes can be created by using the `New-CsAutoAttendantDialScope` (https://learn.microsoft.com/powershell/module/teams/new-csautoattendantdialscope)cmdlet. + Dial scopes can be created by using the `New-CsAutoAttendantDialScope` (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantdialscope)cmdlet. Object @@ -36239,11 +39211,39 @@ $audioFile = Import-CsOnlineAudioFile -ApplicationId TenantGlobal -FileName "MOH None + + LanguageId + + > Applicable: Microsoft Teams + The LanguageId parameter is the language that is used to read text-to-speech (TTS) prompts. + You can query the supported languages using the `Get-CsAutoAttendantSupportedLanguage` (https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantsupportedlanguage)cmdlet. + + System.String + + System.String + + + None + + + Name + + > Applicable: Microsoft Teams + The Name parameter is a friendly name that is assigned to the AA. + + System.String + + System.String + + + None + - ExclusionScope + Operator - Specifies the users to which call transfers are not allowed through directory lookup feature. If not specified, no user in the organization is excluded from directory lookup. - Dial scopes can be created by using the `New-CsAutoAttendantDialScope` (https://learn.microsoft.com/powershell/module/teams/new-csautoattendantdialscope)cmdlet. + > Applicable: Microsoft Teams + The Operator parameter represents the SIP address or PSTN number of the operator. + You can create callable entities by using the `New-CsAutoAttendantCallableEntity` cmdlet. Object @@ -36253,25 +39253,28 @@ $audioFile = Import-CsOnlineAudioFile -ApplicationId TenantGlobal -FileName "MOH None - AuthorizedUsers + Tenant - This is a list of GUIDs for users who are authorized to make changes to this call queue. The users must also have a TeamsVoiceApplications policy assigned. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} - List + System.Guid - List + System.Guid None - - HideAuthorizedUsers + + TimeZoneId - Saving an auto attendant configuration through Teams admin center will *remove* this setting. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). + > Applicable: Microsoft Teams + The TimeZoneId parameter represents the AA time zone. All schedules are evaluated based on this time zone. + You can query the supported timezones using the `Get-CsAutoAttendantSupportedTimeZone` (https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantsupportedtimezone)cmdlet. - List + System.String - List + System.String None @@ -36279,7 +39282,7 @@ $audioFile = Import-CsOnlineAudioFile -ApplicationId TenantGlobal -FileName "MOH UserNameExtension - Saving an auto attendant configuration through Teams admin center will *remove* this setting. The UserNameExtension parameter is a string that specifies how to extend usernames in dial search by appending additional information after the name. This parameter is used in dial search when multiple search results are found, as it helps to distinguish users with similar names. Possible values are: + > Applicable: Microsoft Teams Saving an auto attendant configuration through Teams admin center will *remove* this setting. The UserNameExtension parameter is a string that specifies how to extend usernames in dial search by appending additional information after the name. This parameter is used in dial search when multiple search results are found, as it helps to distinguish users with similar names. Possible values are: - None: Default value, which means the username is pronounced as is. - Office: Adds office information from the user profile. - Department: Adds department information from the user profile. @@ -36292,13 +39295,15 @@ $audioFile = Import-CsOnlineAudioFile -ApplicationId TenantGlobal -FileName "MOH None - Tenant + VoiceId - + > Applicable: Microsoft Teams + The VoiceId parameter represents the voice that is used to read text-to-speech (TTS) prompts. + You can query the supported voices by using the `Get-CsAutoAttendantSupportedLanguage` cmdlet. - System.Guid + System.String - System.Guid + System.String None @@ -36306,53 +39311,15 @@ $audioFile = Import-CsOnlineAudioFile -ApplicationId TenantGlobal -FileName "MOH - - Name - - The Name parameter is a friendly name that is assigned to the AA. - - System.String - - System.String - - - None - - - LanguageId - - The LanguageId parameter is the language that is used to read text-to-speech (TTS) prompts. - You can query the supported languages using the `Get-CsAutoAttendantSupportedLanguage` (https://learn.microsoft.com/powershell/module/teams/get-csautoattendantsupportedlanguage)cmdlet. - - System.String - - System.String - - - None - - - TimeZoneId - - The TimeZoneId parameter represents the AA time zone. All schedules are evaluated based on this time zone. - You can query the supported timezones using the `Get-CsAutoAttendantSupportedTimeZone` (https://learn.microsoft.com/powershell/module/teams/get-csautoattendantsupportedtimezone)cmdlet. - - System.String - - System.String - - - None - - - DefaultCallFlow + + AuthorizedUsers - The DefaultCallFlow parameter is the flow to be executed when no other call flow is in effect (for example, during business hours). - You can create the DefaultCallFlow by using the `New-CsAutoAttendantCallFlow` (https://learn.microsoft.com/powershell/module/teams/new-csautoattendantcallflow)cmdlet. + > Applicable: Microsoft Teams + This is a list of GUIDs for users who are authorized to make changes to this call queue. The users must also have a TeamsVoiceApplications policy assigned. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). - Object + List - Object + List None @@ -36360,8 +39327,9 @@ $audioFile = Import-CsOnlineAudioFile -ApplicationId TenantGlobal -FileName "MOH CallFlows + > Applicable: Microsoft Teams The CallFlows parameter represents call flows, which are required if they are referenced in the CallHandlingAssociations parameter. - You can create CallFlows by using the `New-CsAutoAttendantCallFlow` (https://learn.microsoft.com/powershell/module/teams/new-csautoattendantcallflow)cmdlet. + You can create CallFlows by using the `New-CsAutoAttendantCallFlow` (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallflow)cmdlet. System.Collections.Generic.List @@ -36373,6 +39341,7 @@ $audioFile = Import-CsOnlineAudioFile -ApplicationId TenantGlobal -FileName "MOH CallHandlingAssociations + > Applicable: Microsoft Teams The CallHandlingAssociations parameter represents the call handling associations. The AA service uses call handling associations to determine which call flow to execute when a specific schedule is in effect. You can create CallHandlingAssociations by using the `New-CsAutoAttendantCallHandlingAssociation` cmdlet. @@ -36383,11 +39352,12 @@ $audioFile = Import-CsOnlineAudioFile -ApplicationId TenantGlobal -FileName "MOH None - - Operator + + DefaultCallFlow - The Operator parameter represents the SIP address or PSTN number of the operator. - You can create callable entities by using the `New-CsAutoAttendantCallableEntity` cmdlet. + > Applicable: Microsoft Teams + The DefaultCallFlow parameter is the flow to be executed when no other call flow is in effect (for example, during business hours). + You can create the DefaultCallFlow by using the `New-CsAutoAttendantCallFlow` (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallflow)cmdlet. Object @@ -36397,24 +39367,35 @@ $audioFile = Import-CsOnlineAudioFile -ApplicationId TenantGlobal -FileName "MOH None - VoiceId + EnableMainlineAttendant - The VoiceId parameter represents the voice that is used to read text-to-speech (TTS) prompts. - You can query the supported voices by using the `Get-CsAutoAttendantSupportedLanguage` cmdlet. You can determine the default voice for a language by issuing the following command: - - $language = Get-CsAutoAttendantSupportedLanguage -Identity "en-US" - $defaultVoice = $language.Voices[0].Id + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving an auto attendant configuration through Teams admin center will remove this setting. The EnableMainlineAttendant parameter enables Mainline Attendant features for this Auto attendant. + > [!NOTE] > 1. The Auto attendant must have a Resource account assigned > 1. `-LanguageId` options are limited when Mainline Attendant is enabled > 1. `-EnableVoiceResponse` will be enabled automatically - System.String + SwitchParameter - System.String + SwitchParameter - None + False + + + MainlineAttendantAgentVoiceId + + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving an auto attendant configuration through Teams admin center will remove this setting. The MainlineAttendantAgentVoiceId parameter sets the voice that will be used with Mainline Attendant. + PARAMVALUE: Alloy | Echo | Shimmer + + SwitchParameter + + SwitchParameter + + + False EnableVoiceResponse + > Applicable: Microsoft Teams The EnableVoiceResponse parameter indicates whether voice response for AA is enabled. SwitchParameter @@ -36424,11 +39405,38 @@ $audioFile = Import-CsOnlineAudioFile -ApplicationId TenantGlobal -FileName "MOH False + + ExclusionScope + + > Applicable: Microsoft Teams + Specifies the users to which call transfers are not allowed through directory lookup feature. If not specified, no user in the organization is excluded from directory lookup. + Dial scopes can be created by using the `New-CsAutoAttendantDialScope` (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantdialscope)cmdlet. + + Object + + Object + + + None + + + HideAuthorizedUsers + + > Applicable: Microsoft Teams Saving an auto attendant configuration through Teams admin center will *remove* this setting. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). + + List + + List + + + None + InclusionScope + > Applicable: Microsoft Teams Specifies the users to which call transfers are allowed through directory lookup feature. If not specified, all users in the organization can be reached through directory lookup. - Dial scopes can be created by using the `New-CsAutoAttendantDialScope` (https://learn.microsoft.com/powershell/module/teams/new-csautoattendantdialscope)cmdlet. + Dial scopes can be created by using the `New-CsAutoAttendantDialScope` (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantdialscope)cmdlet. Object @@ -36437,11 +39445,39 @@ $audioFile = Import-CsOnlineAudioFile -ApplicationId TenantGlobal -FileName "MOH None + + LanguageId + + > Applicable: Microsoft Teams + The LanguageId parameter is the language that is used to read text-to-speech (TTS) prompts. + You can query the supported languages using the `Get-CsAutoAttendantSupportedLanguage` (https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantsupportedlanguage)cmdlet. + + System.String + + System.String + + + None + + + Name + + > Applicable: Microsoft Teams + The Name parameter is a friendly name that is assigned to the AA. + + System.String + + System.String + + + None + - ExclusionScope + Operator - Specifies the users to which call transfers are not allowed through directory lookup feature. If not specified, no user in the organization is excluded from directory lookup. - Dial scopes can be created by using the `New-CsAutoAttendantDialScope` (https://learn.microsoft.com/powershell/module/teams/new-csautoattendantdialscope)cmdlet. + > Applicable: Microsoft Teams + The Operator parameter represents the SIP address or PSTN number of the operator. + You can create callable entities by using the `New-CsAutoAttendantCallableEntity` cmdlet. Object @@ -36451,25 +39487,28 @@ $audioFile = Import-CsOnlineAudioFile -ApplicationId TenantGlobal -FileName "MOH None - AuthorizedUsers + Tenant - This is a list of GUIDs for users who are authorized to make changes to this call queue. The users must also have a TeamsVoiceApplications policy assigned. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} - List + System.Guid - List + System.Guid None - - HideAuthorizedUsers + + TimeZoneId - Saving an auto attendant configuration through Teams admin center will *remove* this setting. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). + > Applicable: Microsoft Teams + The TimeZoneId parameter represents the AA time zone. All schedules are evaluated based on this time zone. + You can query the supported timezones using the `Get-CsAutoAttendantSupportedTimeZone` (https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantsupportedtimezone)cmdlet. - List + System.String - List + System.String None @@ -36477,7 +39516,7 @@ $audioFile = Import-CsOnlineAudioFile -ApplicationId TenantGlobal -FileName "MOH UserNameExtension - Saving an auto attendant configuration through Teams admin center will *remove* this setting. The UserNameExtension parameter is a string that specifies how to extend usernames in dial search by appending additional information after the name. This parameter is used in dial search when multiple search results are found, as it helps to distinguish users with similar names. Possible values are: + > Applicable: Microsoft Teams Saving an auto attendant configuration through Teams admin center will *remove* this setting. The UserNameExtension parameter is a string that specifies how to extend usernames in dial search by appending additional information after the name. This parameter is used in dial search when multiple search results are found, as it helps to distinguish users with similar names. Possible values are: - None: Default value, which means the username is pronounced as is. - Office: Adds office information from the user profile. - Department: Adds department information from the user profile. @@ -36490,13 +39529,15 @@ $audioFile = Import-CsOnlineAudioFile -ApplicationId TenantGlobal -FileName "MOH None - Tenant + VoiceId - + > Applicable: Microsoft Teams + The VoiceId parameter represents the voice that is used to read text-to-speech (TTS) prompts. + You can query the supported voices by using the `Get-CsAutoAttendantSupportedLanguage` cmdlet. - System.Guid + System.String - System.Guid + System.String None @@ -36689,7 +39730,7 @@ Get-CsOnlineSchedule $christmasSchedule.Id This example creates two new AAs named Main auto attendant and Customer Support Auto Attendant . Both AAs share the same Christmas holiday schedule. This was done by reusing the Schedule ID of the Christmas holiday when creating the call handling associations for those two AAs using New-CsAutoAttendantCallHandlingAssociation cmdlet. We can see when we ran the Get-CsOnlineSchedule cmdlet at the end, to get the Christmas Holiday schedule information, that the configuration IDs for the newly created AAs have been added to the `AssociatedConfigurationIds` properties of that schedule. This means any updates made to this schedule would reflect in both associated AAs. - Removing an association between an AA and a schedule is as simple as deleting the CallHandlingAssociation of that schedule in the AA you want to modify. Please refer to Set-CsAutoAttendant (https://learn.microsoft.com/powershell/module/teams/set-csautoattendant)cmdlet documentation for examples on how to do that. + Removing an association between an AA and a schedule is as simple as deleting the CallHandlingAssociation of that schedule in the AA you want to modify. Please refer to Set-CsAutoAttendant (https://learn.microsoft.com/powershell/module/microsoftteams/set-csautoattendant)cmdlet documentation for examples on how to do that. @@ -36746,55 +39787,55 @@ New-CsAutoAttendant -Name $aaName -LanguageId $language -CallFlows @($afterHours Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csautoattendant + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendant New-CsOnlineApplicationInstanceAssociation - https://learn.microsoft.com/powershell/module/teams/new-csonlineapplicationinstanceassociation + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineapplicationinstanceassociation Get-CsAutoAttendant - https://learn.microsoft.com/powershell/module/teams/get-csautoattendant + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendant Get-CsAutoAttendantStatus - https://learn.microsoft.com/powershell/module/teams/get-csautoattendantstatus + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantstatus Get-CsAutoAttendantSupportedLanguage - https://learn.microsoft.com/powershell/module/teams/get-csautoattendantsupportedlanguage + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantsupportedlanguage Get-CsAutoAttendantSupportedTimeZone - https://learn.microsoft.com/powershell/module/teams/get-csautoattendantsupportedtimezone + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantsupportedtimezone New-CsAutoAttendantCallableEntity - https://learn.microsoft.com/powershell/module/teams/new-csautoattendantcallableentity + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallableentity New-CsAutoAttendantCallFlow - https://learn.microsoft.com/powershell/module/teams/new-csautoattendantcallflow + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallflow New-CsAutoAttendantCallHandlingAssociation - https://learn.microsoft.com/powershell/module/teams/new-csautoattendantcallhandlingassociation + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallhandlingassociation New-CsOnlineSchedule - https://learn.microsoft.com/powershell/module/teams/new-csonlineschedule + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineschedule Remove-CsAutoAttendant - https://learn.microsoft.com/powershell/module/teams/remove-csautoattendant + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csautoattendant Set-CsAutoAttendant - https://learn.microsoft.com/powershell/module/teams/set-csautoattendant + https://learn.microsoft.com/powershell/module/microsoftteams/set-csautoattendant Update-CsAutoAttendant - https://learn.microsoft.com/powershell/module/teams/update-csautoattendant + https://learn.microsoft.com/powershell/module/microsoftteams/update-csautoattendant @@ -36818,138 +39859,128 @@ New-CsAutoAttendant -Name $aaName -LanguageId $language -CallFlows @($afterHours New-CsAutoAttendantCallableEntity - - Identity + + CallPriority - The Identity parameter represents the ID of the callable entity; this can be either a Object ID or a TEL URI. - - Only the Object IDs of users that have Enterprise Voice enabled are supported. - - Only PSTN numbers that are acquired and assigned through Skype for Business Online are supported. + > Applicable: Microsoft Teams Saving an auto attendant configuration through Teams admin center will reset the priority to 3 - Normal / Default. The Call Priority of the MenuOption, only applies when the `Type` is `ApplicationEndpoint` or `ConfigurationEndpoint`. + PARAMVALUE: 1 | 2 | 3 | 4 | 5 + 1 = Very High 2 = High 3 = Normal / Default 4 = Low 5 = Very Low + > [!IMPORTANT] > Call priorities isn't currently supported for Authorized users (/microsoftteams/aa-cq-authorized-users-plan)in Queues App. Authorized users will not be able to edit call flows with priorities. - System.String + Int16 - System.String + Int16 - None + 3 - - Type + + EnableSharedVoicemailSystemPromptSuppression - The Type parameter represents the type of the callable entity, which can be any of the following: - - User - - ApplicationEndpoint (when transferring to a Resource Account) - - ConfigurationEndpoint (when transferring directly to a nested Auto Attendant or Call Queue) - - ExternalPstn - - SharedVoicemail - - > [!IMPORTANT] > Nesting Auto attendants and Call queues via *ConfigurationEndpoint * isn't currently supported for Authorized users (/microsoftteams/aa-cq-authorized-users-plan)in Queues App. If you nest an Auto attendant or Call queue without a resource account, authorized users can't edit the auto attendant or call queue. + > Applicable: Microsoft Teams + Suppresses the "Please leave a message after the tone" system prompt when transferring to shared voicemail. - Object - Object + SwitchParameter - None + False - Tenant + EnableTranscription - + > Applicable: Microsoft Teams + Enables the email transcription of voicemail, this is only supported with shared voicemail callable entities. - System.Guid - System.Guid + SwitchParameter - None + False - - EnableTranscription + + Identity - Enables the email transcription of voicemail, this is only supported with shared voicemail callable entities. + > Applicable: Microsoft Teams + The Identity parameter represents the ID of the callable entity; this can be either a Object ID or a TEL URI. + - Only the Object IDs of users that have Enterprise Voice enabled are supported. + - Only PSTN numbers that are acquired and assigned through Skype for Business Online are supported. + System.String - SwitchParameter + System.String - False + None - EnableSharedVoicemailSystemPromptSuppression + Tenant - Suppresses the "Please leave a message after the tone" system prompt when transferring to shared voicemail. + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + System.Guid - SwitchParameter + System.Guid - False + None - - CallPriority --- Private Preview customers only + + Type - The Call Priority of the MenuOption, only applies when the `Type` is `ApplicationEndpoint`. - PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High 2 = High 3 = Normal / Default 4 = Low 5 = Very Low + > Applicable: Microsoft Teams + The Type parameter represents the type of the callable entity, which can be any of the following: + - User + - ApplicationEndpoint (when transferring to a Resource Account) + - ConfigurationEndpoint (when transferring directly to a nested Auto Attendant or Call Queue) + - ExternalPstn + - SharedVoicemail + + > [!IMPORTANT] > Nesting Auto attendants and Call queues via *ConfigurationEndpoint * isn't currently supported for Authorized users (/microsoftteams/aa-cq-authorized-users-plan)in Queues App. If you nest an Auto attendant or Call queue without a resource account, authorized users can't edit the auto attendant or call queue. - Int16 + Object - Int16 + Object - 3 + None - - Identity - - The Identity parameter represents the ID of the callable entity; this can be either a Object ID or a TEL URI. - - Only the Object IDs of users that have Enterprise Voice enabled are supported. - - Only PSTN numbers that are acquired and assigned through Skype for Business Online are supported. - - System.String - - System.String - - - None - - - Type + + CallPriority - The Type parameter represents the type of the callable entity, which can be any of the following: - - User - - ApplicationEndpoint (when transferring to a Resource Account) - - ConfigurationEndpoint (when transferring directly to a nested Auto Attendant or Call Queue) - - ExternalPstn - - SharedVoicemail - - > [!IMPORTANT] > Nesting Auto attendants and Call queues via *ConfigurationEndpoint * isn't currently supported for Authorized users (/microsoftteams/aa-cq-authorized-users-plan)in Queues App. If you nest an Auto attendant or Call queue without a resource account, authorized users can't edit the auto attendant or call queue. + > Applicable: Microsoft Teams Saving an auto attendant configuration through Teams admin center will reset the priority to 3 - Normal / Default. The Call Priority of the MenuOption, only applies when the `Type` is `ApplicationEndpoint` or `ConfigurationEndpoint`. + PARAMVALUE: 1 | 2 | 3 | 4 | 5 + 1 = Very High 2 = High 3 = Normal / Default 4 = Low 5 = Very Low + > [!IMPORTANT] > Call priorities isn't currently supported for Authorized users (/microsoftteams/aa-cq-authorized-users-plan)in Queues App. Authorized users will not be able to edit call flows with priorities. - Object + Int16 - Object + Int16 - None + 3 - Tenant + EnableSharedVoicemailSystemPromptSuppression - + > Applicable: Microsoft Teams + Suppresses the "Please leave a message after the tone" system prompt when transferring to shared voicemail. - System.Guid + SwitchParameter - System.Guid + SwitchParameter - None + False EnableTranscription + > Applicable: Microsoft Teams Enables the email transcription of voicemail, this is only supported with shared voicemail callable entities. SwitchParameter @@ -36959,31 +39990,53 @@ New-CsAutoAttendant -Name $aaName -LanguageId $language -CallFlows @($afterHours False - - EnableSharedVoicemailSystemPromptSuppression + + Identity - Suppresses the "Please leave a message after the tone" system prompt when transferring to shared voicemail. + > Applicable: Microsoft Teams + The Identity parameter represents the ID of the callable entity; this can be either a Object ID or a TEL URI. + - Only the Object IDs of users that have Enterprise Voice enabled are supported. + - Only PSTN numbers that are acquired and assigned through Skype for Business Online are supported. - SwitchParameter + System.String - SwitchParameter + System.String - False + None - CallPriority --- Private Preview customers only + Tenant - The Call Priority of the MenuOption, only applies when the `Type` is `ApplicationEndpoint`. - PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High 2 = High 3 = Normal / Default 4 = Low 5 = Very Low + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} - Int16 + System.Guid - Int16 + System.Guid - 3 + None + + + Type + + > Applicable: Microsoft Teams + The Type parameter represents the type of the callable entity, which can be any of the following: + - User + - ApplicationEndpoint (when transferring to a Resource Account) + - ConfigurationEndpoint (when transferring directly to a nested Auto Attendant or Call Queue) + - ExternalPstn + - SharedVoicemail + + > [!IMPORTANT] > Nesting Auto attendants and Call queues via *ConfigurationEndpoint * isn't currently supported for Authorized users (/microsoftteams/aa-cq-authorized-users-plan)in Queues App. If you nest an Auto attendant or Call queue without a resource account, authorized users can't edit the auto attendant or call queue. + + Object + + Object + + + None @@ -37054,15 +40107,15 @@ $callableEntity = New-CsAutoAttendantCallableEntity -Identity $callableEntityGro Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csautoattendantcallableentity + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallableentity Get-CsOnlineUser - https://learn.microsoft.com/powershell/module/teams/get-csonlineuser + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineuser Find-CsOnlineApplicationInstance - https://learn.microsoft.com/powershell/module/teams/find-csonlineapplicationinstance + https://learn.microsoft.com/powershell/module/microsoftteams/find-csonlineapplicationinstance @@ -37077,18 +40130,34 @@ $callableEntity = New-CsAutoAttendantCallableEntity -Identity $callableEntityGro The New-CsAutoAttendantCallFlow cmdlet creates a new call flow for use with the Auto Attendant (AA) service. The AA service uses the call flow to handle inbound calls by playing a greeting (if present), and provide callers with actions through a menu. + > [!CAUTION] > The following configuration parameters will only work for customers that are participating in the Voice Applications private preview for these features. General Availability for this functionality has not been determined at this time. > > - -RingResourceAccountDelegates New-CsAutoAttendantCallFlow - - Name + + ForceListenMenuEnabled - The Name parameter represents a unique friendly name for the call flow. + > Applicable: Microsoft Teams + If specified, DTMF and speech inputs will not be processed while the greeting or menu prompt is playing. It will enforce callers to listen to all menu options before making a selection. - System.String - System.String + SwitchParameter + + + False + + + Greetings + + > Applicable: Microsoft Teams + If present, the prompts specified by the Greetings parameter (either TTS or Audio) are played before the call flow's menu is rendered. + You can create prompts by using the `New-CsAutoAttendantPrompt` (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantprompt)cmdlet. + > [!NOTE] > If Mainline Attendant is enabled, only TTS prompts are supported. > > If Mainline Attendant is enabled and no greeting text is provided, the following default prompt will be played: > > Hello, and thank you for calling [Auto attendant name]. How can I assist you today? Please note that this call may be recorded for compliance purposes. + + System.Collections.Generic.List + + System.Collections.Generic.List None @@ -37096,8 +40165,9 @@ $callableEntity = New-CsAutoAttendantCallableEntity -Identity $callableEntityGro Menu + > Applicable: Microsoft Teams The Menu parameter identifies the menu to render when the call flow is executed. - You can create a new menu by using the `New-CsAutoAttendantMenu` (https://learn.microsoft.com/powershell/module/teams/new-csautoattendantmenu)cmdlet. + You can create a new menu by using the `New-CsAutoAttendantMenu` (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantmenu)cmdlet. System.Object @@ -37106,53 +40176,72 @@ $callableEntity = New-CsAutoAttendantCallableEntity -Identity $callableEntityGro None - - Greetings + + Name - If present, the prompts specified by the Greetings parameter (either TTS or Audio) are played before the call flow's menu is rendered. - You can create prompts by using the `New-CsAutoAttendantPrompt` (https://learn.microsoft.com/powershell/module/teams/new-csautoattendantprompt)cmdlet. + > Applicable: Microsoft Teams + The Name parameter represents a unique friendly name for the call flow. - System.Collections.Generic.List + System.String - System.Collections.Generic.List + System.String None - Tenant + RingResourceAccountDelegates - + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving an auto attendant configuration through Teams admin center will remove this setting. If enabled for this call flow, Auto Attendant will first ring the delegates assigned to the resource account the call is on. If none of the delegates answer, the call is returned to the Auto Attendant for standard processing. + If there are no delegates assigned to the resource account the call is on then the Auto Attendant will process the call normally. - System.Guid + Boolean - System.Guid + Boolean - None + False - ForceListenMenuEnabled + Tenant - If specified, DTMF and speech inputs will not be processed while the greeting or menu prompt is playing. It will enforce callers to listen to all menu options before making a selection. + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + System.Guid - SwitchParameter + System.Guid - False + None - - Name + + ForceListenMenuEnabled - The Name parameter represents a unique friendly name for the call flow. + > Applicable: Microsoft Teams + If specified, DTMF and speech inputs will not be processed while the greeting or menu prompt is playing. It will enforce callers to listen to all menu options before making a selection. - System.String + SwitchParameter - System.String + SwitchParameter + + + False + + + Greetings + + > Applicable: Microsoft Teams + If present, the prompts specified by the Greetings parameter (either TTS or Audio) are played before the call flow's menu is rendered. + You can create prompts by using the `New-CsAutoAttendantPrompt` (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantprompt)cmdlet. + > [!NOTE] > If Mainline Attendant is enabled, only TTS prompts are supported. > > If Mainline Attendant is enabled and no greeting text is provided, the following default prompt will be played: > > Hello, and thank you for calling [Auto attendant name]. How can I assist you today? Please note that this call may be recorded for compliance purposes. + + System.Collections.Generic.List + + System.Collections.Generic.List None @@ -37160,8 +40249,9 @@ $callableEntity = New-CsAutoAttendantCallableEntity -Identity $callableEntityGro Menu + > Applicable: Microsoft Teams The Menu parameter identifies the menu to render when the call flow is executed. - You can create a new menu by using the `New-CsAutoAttendantMenu` (https://learn.microsoft.com/powershell/module/teams/new-csautoattendantmenu)cmdlet. + You can create a new menu by using the `New-CsAutoAttendantMenu` (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantmenu)cmdlet. System.Object @@ -37170,42 +40260,44 @@ $callableEntity = New-CsAutoAttendantCallableEntity -Identity $callableEntityGro None - - Greetings + + Name - If present, the prompts specified by the Greetings parameter (either TTS or Audio) are played before the call flow's menu is rendered. - You can create prompts by using the `New-CsAutoAttendantPrompt` (https://learn.microsoft.com/powershell/module/teams/new-csautoattendantprompt)cmdlet. + > Applicable: Microsoft Teams + The Name parameter represents a unique friendly name for the call flow. - System.Collections.Generic.List + System.String - System.Collections.Generic.List + System.String None - Tenant + RingResourceAccountDelegates - + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving an auto attendant configuration through Teams admin center will remove this setting. If enabled for this call flow, Auto Attendant will first ring the delegates assigned to the resource account the call is on. If none of the delegates answer, the call is returned to the Auto Attendant for standard processing. + If there are no delegates assigned to the resource account the call is on then the Auto Attendant will process the call normally. - System.Guid + Boolean - System.Guid + Boolean - None + False - ForceListenMenuEnabled + Tenant - If specified, DTMF and speech inputs will not be processed while the greeting or menu prompt is playing. It will enforce callers to listen to all menu options before making a selection. + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} - SwitchParameter + System.Guid - SwitchParameter + System.Guid - False + None @@ -37257,15 +40349,15 @@ $callFlow = New-CsAutoAttendantCallFlow -Name "Default Call Flow" -Menu $menu -G Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csautoattendantcallflow + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallflow New-CsAutoAttendantMenu - https://learn.microsoft.com/powershell/module/teams/new-csautoattendantmenu + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantmenu - New-CsAutoAttendantPrompt - https://learn.microsoft.com/powershell/module/teams/new-csautoattendantprompt + Get-CsMainlineAttendantFlow + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantprompt @@ -37287,8 +40379,9 @@ $callFlow = New-CsAutoAttendantCallFlow -Name "Default Call Flow" -Menu $menu -G CallFlowId + > Applicable: Microsoft Teams The CallFlowId parameter represents the call flow to be associated with the schedule. - You can create a call flow by using the `New-CsAutoAttendantCallFlow` (https://learn.microsoft.com/powershell/module/teams/new-csautoattendantcallflow)cmdlet. + You can create a call flow by using the `New-CsAutoAttendantCallFlow` (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallflow)cmdlet. String @@ -37297,47 +40390,36 @@ $callFlow = New-CsAutoAttendantCallFlow -Name "Default Call Flow" -Menu $menu -G None - - ScheduleId + + Disable - The ScheduleId parameter represents the schedule to be associated with the call flow. - You can create a schedule by using the New-CsOnlineSchedule (https://learn.microsoft.com/powershell/module/teams/new-csonlineschedule) cmdlet. additionally, you can use [Get-CsOnlineSchedule](https://learn.microsoft.com/powershell/module/teams/get-csonlineschedule)cmdlet to get the schedules configured for your organization. + > Applicable: Microsoft Teams + The Disable parameter, if set, establishes that the call handling association is created as disabled. This parameter can only be used when the Type parameter is set to AfterHours. - System.String - System.String + SwitchParameter - None + False - Type + ScheduleId - The Type parameter represents the type of the call handling association. Currently, only the following types are supported: - - `AfterHours` - - `Holiday` + > Applicable: Microsoft Teams + The ScheduleId parameter represents the schedule to be associated with the call flow. + You can create a schedule by using the New-CsOnlineSchedule (https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineschedule) cmdlet. additionally, you can use [Get-CsOnlineSchedule](https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineschedule)cmdlet to get the schedules configured for your organization. - Object + System.String - Object + System.String None - - Disable - - The Disable parameter, if set, establishes that the call handling association is created as disabled. This parameter can only be used when the Type parameter is set to AfterHours. - - - SwitchParameter - - - False - Tenant + > Applicable: Microsoft Teams Globally unique identifier (GUID) of the tenant account whose external user communication policy are being created. For example: -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" You can return your tenant ID by running this command: @@ -37351,14 +40433,30 @@ $callFlow = New-CsAutoAttendantCallFlow -Name "Default Call Flow" -Menu $menu -G None + + Type + + > Applicable: Microsoft Teams + The Type parameter represents the type of the call handling association. Currently, only the following types are supported: + - `AfterHours` + - `Holiday` + + Object + + Object + + + None + CallFlowId + > Applicable: Microsoft Teams The CallFlowId parameter represents the call flow to be associated with the schedule. - You can create a call flow by using the `New-CsAutoAttendantCallFlow` (https://learn.microsoft.com/powershell/module/teams/new-csautoattendantcallflow)cmdlet. + You can create a call flow by using the `New-CsAutoAttendantCallFlow` (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallflow)cmdlet. String @@ -37367,48 +40465,37 @@ $callFlow = New-CsAutoAttendantCallFlow -Name "Default Call Flow" -Menu $menu -G None - - ScheduleId + + Disable - The ScheduleId parameter represents the schedule to be associated with the call flow. - You can create a schedule by using the New-CsOnlineSchedule (https://learn.microsoft.com/powershell/module/teams/new-csonlineschedule) cmdlet. additionally, you can use [Get-CsOnlineSchedule](https://learn.microsoft.com/powershell/module/teams/get-csonlineschedule)cmdlet to get the schedules configured for your organization. + > Applicable: Microsoft Teams + The Disable parameter, if set, establishes that the call handling association is created as disabled. This parameter can only be used when the Type parameter is set to AfterHours. - System.String + SwitchParameter - System.String + SwitchParameter - None + False - Type + ScheduleId - The Type parameter represents the type of the call handling association. Currently, only the following types are supported: - - `AfterHours` - - `Holiday` + > Applicable: Microsoft Teams + The ScheduleId parameter represents the schedule to be associated with the call flow. + You can create a schedule by using the New-CsOnlineSchedule (https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineschedule) cmdlet. additionally, you can use [Get-CsOnlineSchedule](https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineschedule)cmdlet to get the schedules configured for your organization. - Object + System.String - Object + System.String None - - Disable - - The Disable parameter, if set, establishes that the call handling association is created as disabled. This parameter can only be used when the Type parameter is set to AfterHours. - - SwitchParameter - - SwitchParameter - - - False - Tenant + > Applicable: Microsoft Teams Globally unique identifier (GUID) of the tenant account whose external user communication policy are being created. For example: -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" You can return your tenant ID by running this command: @@ -37422,6 +40509,21 @@ $callFlow = New-CsAutoAttendantCallFlow -Name "Default Call Flow" -Menu $menu -G None + + Type + + > Applicable: Microsoft Teams + The Type parameter represents the type of the call handling association. Currently, only the following types are supported: + - `AfterHours` + - `Holiday` + + Object + + Object + + + None + @@ -37511,19 +40613,19 @@ $callHandlingAssociation = New-CsAutoAttendantCallHandlingAssociation -Type Holi Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csautoattendantcallhandlingassociation + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallhandlingassociation New-CsAutoAttendantCallFlow - https://learn.microsoft.com/powershell/module/teams/new-csautoattendantcallflow + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallflow New-CsOnlineSchedule - https://learn.microsoft.com/powershell/module/teams/new-csonlineschedule + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineschedule Get-CsOnlineSchedule - https://learn.microsoft.com/powershell/module/teams/get-csonlineschedule + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineschedule @@ -37543,33 +40645,36 @@ $callHandlingAssociation = New-CsAutoAttendantCallHandlingAssociation -Type Holi New-CsAutoAttendantDialScope - GroupScope + GroupIds - Indicates that a dial-scope based on groups (distribution lists, security groups) is to be created. + > Applicable: Microsoft Teams + Refers to the IDs of the groups that are to be included in the dial-scope. + Group IDs can be obtained by using the Find-CsGroup cmdlet. + System.Collections.Generic.List - SwitchParameter + System.Collections.Generic.List - False + None - GroupIds + GroupScope - Refers to the IDs of the groups that are to be included in the dial-scope. - Group IDs can be obtained by using the Find-CsGroup cmdlet. + > Applicable: Microsoft Teams + Indicates that a dial-scope based on groups (distribution lists, security groups) is to be created. - System.Collections.Generic.List - System.Collections.Generic.List + SwitchParameter - None + False Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -37582,34 +40687,37 @@ $callHandlingAssociation = New-CsAutoAttendantCallHandlingAssociation -Type Holi - GroupScope + GroupIds - Indicates that a dial-scope based on groups (distribution lists, security groups) is to be created. + > Applicable: Microsoft Teams + Refers to the IDs of the groups that are to be included in the dial-scope. + Group IDs can be obtained by using the Find-CsGroup cmdlet. - SwitchParameter + System.Collections.Generic.List - SwitchParameter + System.Collections.Generic.List - False + None - GroupIds + GroupScope - Refers to the IDs of the groups that are to be included in the dial-scope. - Group IDs can be obtained by using the Find-CsGroup cmdlet. + > Applicable: Microsoft Teams + Indicates that a dial-scope based on groups (distribution lists, security groups) is to be created. - System.Collections.Generic.List + SwitchParameter - System.Collections.Generic.List + SwitchParameter - None + False Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -37665,11 +40773,11 @@ $dialScope = New-CsAutoAttendantDialScope -GroupScope -GroupIds $groupIds Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csautoattendantdialscope + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantdialscope Find-CsGroup - https://learn.microsoft.com/powershell/module/teams/find-csgroup + https://learn.microsoft.com/powershell/module/microsoftteams/find-csgroup @@ -37689,65 +40797,71 @@ $dialScope = New-CsAutoAttendantDialScope -GroupScope -GroupIds $groupIds New-CsAutoAttendantMenu - Name + DirectorySearchMethod - The Name parameter represents a friendly name for the menu. + > Applicable: Microsoft Teams + The DirectorySearchMethod parameter lets you define the type of Directory Search Method for the Auto Attendant menu, for more information, see Set up a Cloud auto attendant (https://learn.microsoft.com/MicrosoftTeams/create-a-phone-system-auto-attendant?WT.mc_id=TeamsAdminCenterCSH)Possible values are + - None + - ByName + - ByExtension - System.String + Microsoft.Rtc.Management.Hosted.OAA.Models.DirectorySearchMethod - System.String + Microsoft.Rtc.Management.Hosted.OAA.Models.DirectorySearchMethod None - MenuOptions + EnableDialByName - The MenuOptions parameter is a list of menu options for this menu. These menu options specify what action to take when the user sends a particular input. - You can create menu options by using the New-CsAutoAttendantMenuOption cmdlet. + > Applicable: Microsoft Teams + The EnableDialByName parameter lets users do a directory search by recipient name and get transferred to the party. - System.Collections.Generic.List - System.Collections.Generic.List + SwitchParameter - None + False - Prompts + MenuOptions - The Prompts parameter reflects the prompts to play when the menu is activated. - You can create new prompts by using the New-CsAutoAttendantPrompt cmdlet. + > Applicable: Microsoft Teams + The MenuOptions parameter is a list of menu options for this menu. These menu options specify what action to take when the user sends a particular input. + You can create menu options by using the New-CsAutoAttendantMenuOption cmdlet. - Object + System.Collections.Generic.List - Object + System.Collections.Generic.List None - - EnableDialByName + + Name - The EnableDialByName parameter lets users do a directory search by recipient name and get transferred to the party. + > Applicable: Microsoft Teams + The Name parameter represents a friendly name for the menu. + System.String - SwitchParameter + System.String - False + None - - DirectorySearchMethod + + Prompts - The DirectorySearchMethod parameter lets you define the type of Directory Search Method for the Auto Attendant menu, for more information, see Set up a Cloud auto attendant (https://learn.microsoft.com/MicrosoftTeams/create-a-phone-system-auto-attendant?WT.mc_id=TeamsAdminCenterCSH)Possible values are - - None - - ByName - - ByExtension + > Applicable: Microsoft Teams + The Prompts parameter reflects the prompts to play when the menu is activated. + You can create prompts by using the `New-CsAutoAttendantPrompt` (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantprompt)cmdlet. + > [!NOTE] > If Mainline Attendant is enabled, only TTS prompts are supported. - Microsoft.Rtc.Management.Hosted.OAA.Models.DirectorySearchMethod + Object - Microsoft.Rtc.Management.Hosted.OAA.Models.DirectorySearchMethod + Object None @@ -37755,7 +40869,8 @@ $dialScope = New-CsAutoAttendantDialScope -GroupScope -GroupIds $groupIds Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -37768,66 +40883,72 @@ $dialScope = New-CsAutoAttendantDialScope -GroupScope -GroupIds $groupIds - Name + DirectorySearchMethod - The Name parameter represents a friendly name for the menu. + > Applicable: Microsoft Teams + The DirectorySearchMethod parameter lets you define the type of Directory Search Method for the Auto Attendant menu, for more information, see Set up a Cloud auto attendant (https://learn.microsoft.com/MicrosoftTeams/create-a-phone-system-auto-attendant?WT.mc_id=TeamsAdminCenterCSH)Possible values are + - None + - ByName + - ByExtension - System.String + Microsoft.Rtc.Management.Hosted.OAA.Models.DirectorySearchMethod - System.String + Microsoft.Rtc.Management.Hosted.OAA.Models.DirectorySearchMethod None - MenuOptions + EnableDialByName - The MenuOptions parameter is a list of menu options for this menu. These menu options specify what action to take when the user sends a particular input. - You can create menu options by using the New-CsAutoAttendantMenuOption cmdlet. + > Applicable: Microsoft Teams + The EnableDialByName parameter lets users do a directory search by recipient name and get transferred to the party. - System.Collections.Generic.List + SwitchParameter - System.Collections.Generic.List + SwitchParameter - None + False - Prompts + MenuOptions - The Prompts parameter reflects the prompts to play when the menu is activated. - You can create new prompts by using the New-CsAutoAttendantPrompt cmdlet. + > Applicable: Microsoft Teams + The MenuOptions parameter is a list of menu options for this menu. These menu options specify what action to take when the user sends a particular input. + You can create menu options by using the New-CsAutoAttendantMenuOption cmdlet. - Object + System.Collections.Generic.List - Object + System.Collections.Generic.List None - - EnableDialByName + + Name - The EnableDialByName parameter lets users do a directory search by recipient name and get transferred to the party. + > Applicable: Microsoft Teams + The Name parameter represents a friendly name for the menu. - SwitchParameter + System.String - SwitchParameter + System.String - False + None - - DirectorySearchMethod + + Prompts - The DirectorySearchMethod parameter lets you define the type of Directory Search Method for the Auto Attendant menu, for more information, see Set up a Cloud auto attendant (https://learn.microsoft.com/MicrosoftTeams/create-a-phone-system-auto-attendant?WT.mc_id=TeamsAdminCenterCSH)Possible values are - - None - - ByName - - ByExtension + > Applicable: Microsoft Teams + The Prompts parameter reflects the prompts to play when the menu is activated. + You can create prompts by using the `New-CsAutoAttendantPrompt` (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantprompt)cmdlet. + > [!NOTE] > If Mainline Attendant is enabled, only TTS prompts are supported. - Microsoft.Rtc.Management.Hosted.OAA.Models.DirectorySearchMethod + Object - Microsoft.Rtc.Management.Hosted.OAA.Models.DirectorySearchMethod + Object None @@ -37835,7 +40956,8 @@ $dialScope = New-CsAutoAttendantDialScope -GroupScope -GroupIds $groupIds Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -37892,15 +41014,15 @@ $menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts @($menuPrompt) -Me Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csautoattendantmenu + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantmenu New-CsAutoAttendantMenuOption - https://learn.microsoft.com/powershell/module/teams/new-csautoattendantmenuoption + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantmenuoption New-CsAutoAttendantPrompt - https://learn.microsoft.com/powershell/module/teams/new-csautoattendantmenuoption + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantmenuoption @@ -37915,6 +41037,7 @@ $menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts @($menuPrompt) -Me The New-CsAutoAttendantMenuOption cmdlet creates a new menu option for the Auto Attendant (AA) service. The AA service uses the menu options to respond to a caller with the appropriate action. + > [!CAUTION] > The following configuration parameters will only work for customers that are participating in the Voice Applications private preview for these features. General Availability for this functionality has not been determined at this time. > > - -Description > - -Action AgentAndQueues > - -Action MainLineAttendantFlow > - -MainlineAttendantTarget @@ -37923,9 +41046,9 @@ $menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts @($menuPrompt) -Me Action The Action parameter represents the action to be taken when the menu option is activated. The Action must be set to one of the following values: - - Announcement - plays a defined prompt then returns to the menu + - AgentAndQueues - Restricted to VoiceApps TAP customers - Announcement - plays a defined prompt then returns to the menu - DisconnectCall - The call is disconnected. - - TransferCallToOperator - the call is transferred to the operator. + - MainlineAttendantFlow - Restricted to VoiceApps TAP customers - TransferCallToOperator - the call is transferred to the operator. - TransferCallToTarget - The call is transferred to the menu option's call target. Object @@ -37935,6 +41058,34 @@ $menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts @($menuPrompt) -Me None + + CallTarget + + The CallTarget parameter represents the target for call transfer after the menu option is selected. + CallTarget is required if the action of the menu option is TransferCallToTarget. + Use the New-CsAutoAttendantCallableEntity cmdlet to create new callable entities. + + Object + + Object + + + None + + + Description + + Voice applications private preview customers only. Saving an auto attendant configuration through Teams admin center will remove this setting. A description/set of keywords for the option. + Used by Mainline Attendant only. + Limit: 500 characters + + System.String + + System.String + + + None + DtmfResponse @@ -37952,24 +41103,36 @@ $menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts @($menuPrompt) -Me None - VoiceResponses + MainlineAttendantTarget - The VoiceResponses parameter represents the voice responses to select a menu option when Voice Responses are enabled for the auto attendant. - Voice responses are currently limited to one voice response per menu option. + Voice applications private preview customers only. Saving an auto attendant configuration through Teams admin center will remove this setting. The Mainline Attendant call flow target identifier. - System.Collections.Generic.List + System.String - System.Collections.Generic.List + System.String None - CallTarget + Prompt - The CallTarget parameter represents the target for call transfer after the menu option is selected. - CallTarget is required if the action of the menu option is TransferCallToTarget. - Use the New-CsAutoAttendantCallableEntity cmdlet to create new callable entities. + The Prompt parameter reflects the prompts to play when the menu option is activated. + You can create new prompts by using the New-CsAutoAttendantPrompt cmdlet. + This parameter is required if the Action is set to Announcement . + + Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt + + Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt + + + None + + + AgentTargetType + + The AgentTargetType parameter indicates if a Copilot Studio or IVR application is invoked. The AgentTargetType must be set to one of the following values: + - Copilot - Restricted to VoiceApps TAP customers - requires that Mainline Attendant be enabled - IVR - Restricted to VoiceApps TAP customers Object @@ -37979,15 +41142,25 @@ $menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts @($menuPrompt) -Me None - Prompt + AgentTarget - The Prompt parameter reflects the prompts to play when the menu option is activated. - You can create new prompts by using the New-CsAutoAttendantPrompt cmdlet. - This parameter is required if the Action is set to Announcement . + The AgentTarget parameter is the GUID of the target Copilot or a 3rd party IVR agent. - Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt + String - Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt + String + + + None + + + AgentTargetTagTemplateId + + The AgentTargetTagTemplateId parameter is the GUID of the Tag template to assign. + + String + + String None @@ -37995,7 +41168,7 @@ $menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts @($menuPrompt) -Me Tenant - + This parameter is reserved for Microsoft internal use only. System.Guid @@ -38004,6 +41177,19 @@ $menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts @($menuPrompt) -Me None + + VoiceResponses + + The VoiceResponses parameter represents the voice responses to select a menu option when Voice Responses are enabled for the auto attendant. + Voice responses are currently limited to one voice response per menu option. + + System.Collections.Generic.List + + System.Collections.Generic.List + + + None + @@ -38011,9 +41197,9 @@ $menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts @($menuPrompt) -Me Action The Action parameter represents the action to be taken when the menu option is activated. The Action must be set to one of the following values: - - Announcement - plays a defined prompt then returns to the menu + - AgentAndQueues - Restricted to VoiceApps TAP customers - Announcement - plays a defined prompt then returns to the menu - DisconnectCall - The call is disconnected. - - TransferCallToOperator - the call is transferred to the operator. + - MainlineAttendantFlow - Restricted to VoiceApps TAP customers - TransferCallToOperator - the call is transferred to the operator. - TransferCallToTarget - The call is transferred to the menu option's call target. Object @@ -38023,6 +41209,34 @@ $menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts @($menuPrompt) -Me None + + CallTarget + + The CallTarget parameter represents the target for call transfer after the menu option is selected. + CallTarget is required if the action of the menu option is TransferCallToTarget. + Use the New-CsAutoAttendantCallableEntity cmdlet to create new callable entities. + + Object + + Object + + + None + + + Description + + Voice applications private preview customers only. Saving an auto attendant configuration through Teams admin center will remove this setting. A description/set of keywords for the option. + Used by Mainline Attendant only. + Limit: 500 characters + + System.String + + System.String + + + None + DtmfResponse @@ -38040,24 +41254,36 @@ $menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts @($menuPrompt) -Me None - VoiceResponses + MainlineAttendantTarget - The VoiceResponses parameter represents the voice responses to select a menu option when Voice Responses are enabled for the auto attendant. - Voice responses are currently limited to one voice response per menu option. + Voice applications private preview customers only. Saving an auto attendant configuration through Teams admin center will remove this setting. The Mainline Attendant call flow target identifier. - System.Collections.Generic.List + System.String - System.Collections.Generic.List + System.String None - CallTarget + Prompt - The CallTarget parameter represents the target for call transfer after the menu option is selected. - CallTarget is required if the action of the menu option is TransferCallToTarget. - Use the New-CsAutoAttendantCallableEntity cmdlet to create new callable entities. + The Prompt parameter reflects the prompts to play when the menu option is activated. + You can create new prompts by using the New-CsAutoAttendantPrompt cmdlet. + This parameter is required if the Action is set to Announcement . + + Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt + + Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt + + + None + + + AgentTargetType + + The AgentTargetType parameter indicates if a Copilot Studio or IVR application is invoked. The AgentTargetType must be set to one of the following values: + - Copilot - Restricted to VoiceApps TAP customers - requires that Mainline Attendant be enabled - IVR - Restricted to VoiceApps TAP customers Object @@ -38067,15 +41293,25 @@ $menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts @($menuPrompt) -Me None - Prompt + AgentTarget - The Prompt parameter reflects the prompts to play when the menu option is activated. - You can create new prompts by using the New-CsAutoAttendantPrompt cmdlet. - This parameter is required if the Action is set to Announcement . + The AgentTarget parameter is the GUID of the target Copilot or a 3rd party IVR agent. - Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt + String - Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt + String + + + None + + + AgentTargetTagTemplateId + + The AgentTargetTagTemplateId parameter is the GUID of the Tag template to assign. + + String + + String None @@ -38083,7 +41319,7 @@ $menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts @($menuPrompt) -Me Tenant - + This parameter is reserved for Microsoft internal use only. System.Guid @@ -38092,6 +41328,19 @@ $menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts @($menuPrompt) -Me None + + VoiceResponses + + The VoiceResponses parameter represents the voice responses to select a menu option when Voice Responses are enabled for the auto attendant. + Voice responses are currently limited to one voice response per menu option. + + System.Collections.Generic.List + + System.Collections.Generic.List + + + None + @@ -38147,11 +41396,11 @@ $menuOption = New-CsAutoAttendantMenuOption -Action Announcement -DtmfResponse T Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csautoattendantmenuoption + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantmenuoption New-CsAutoAttendantCallableEntity - https://learn.microsoft.com/powershell/module/teams/new-csautoattendantcallableentity + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallableentity @@ -38173,6 +41422,7 @@ $menuOption = New-CsAutoAttendantMenuOption -Action Announcement -DtmfResponse T ActiveType + > Applicable: Microsoft Teams PARAMVALUE: None | TextToSpeech | AudioFile The ActiveType parameter identifies the active type (modality) of the AA prompt. It can be set to None (the prompt is disabled), TextToSpeech (text-to-speech is played when the prompt is rendered) or AudioFile (audio file data is played when the prompt is rendered). This is explicitly required if both Audio File and TTS prompts are specified. Otherwise, it is inferred. @@ -38187,6 +41437,7 @@ $menuOption = New-CsAutoAttendantMenuOption -Action Announcement -DtmfResponse T AudioFilePrompt + > Applicable: Microsoft Teams The AudioFilePrompt parameter represents the audio to play when the prompt is activated (rendered). This parameter is required when audio file prompts are being created. You can create audio files by using the `Import-CsOnlineAudioFile` cmdlet. @@ -38198,26 +41449,28 @@ $menuOption = New-CsAutoAttendantMenuOption -Action Announcement -DtmfResponse T None - TextToSpeechPrompt + Tenant - The TextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt that is to be read when the prompt is activated. - This parameter is required when text to speech prompts are being created. + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} - System.String + System.Guid - System.String + System.Guid None - Tenant + TextToSpeechPrompt - + > Applicable: Microsoft Teams + The TextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt that is to be read when the prompt is activated. + This parameter is required when text to speech prompts are being created. - System.Guid + System.String - System.Guid + System.String None @@ -38228,6 +41481,7 @@ $menuOption = New-CsAutoAttendantMenuOption -Action Announcement -DtmfResponse T AudioFilePrompt + > Applicable: Microsoft Teams The AudioFilePrompt parameter represents the audio to play when the prompt is activated (rendered). This parameter is required when audio file prompts are being created. You can create audio files by using the `Import-CsOnlineAudioFile` cmdlet. @@ -38241,7 +41495,8 @@ $menuOption = New-CsAutoAttendantMenuOption -Action Announcement -DtmfResponse T Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -38254,26 +41509,28 @@ $menuOption = New-CsAutoAttendantMenuOption -Action Announcement -DtmfResponse T New-CsAutoAttendantPrompt - TextToSpeechPrompt + Tenant - The TextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt that is to be read when the prompt is activated. - This parameter is required when text to speech prompts are being created. + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} - System.String + System.Guid - System.String + System.Guid None - Tenant + TextToSpeechPrompt - + > Applicable: Microsoft Teams + The TextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt that is to be read when the prompt is activated. + This parameter is required when text to speech prompts are being created. - System.Guid + System.String - System.Guid + System.String None @@ -38284,6 +41541,7 @@ $menuOption = New-CsAutoAttendantMenuOption -Action Announcement -DtmfResponse T ActiveType + > Applicable: Microsoft Teams PARAMVALUE: None | TextToSpeech | AudioFile The ActiveType parameter identifies the active type (modality) of the AA prompt. It can be set to None (the prompt is disabled), TextToSpeech (text-to-speech is played when the prompt is rendered) or AudioFile (audio file data is played when the prompt is rendered). This is explicitly required if both Audio File and TTS prompts are specified. Otherwise, it is inferred. @@ -38298,6 +41556,7 @@ $menuOption = New-CsAutoAttendantMenuOption -Action Announcement -DtmfResponse T AudioFilePrompt + > Applicable: Microsoft Teams The AudioFilePrompt parameter represents the audio to play when the prompt is activated (rendered). This parameter is required when audio file prompts are being created. You can create audio files by using the `Import-CsOnlineAudioFile` cmdlet. @@ -38309,26 +41568,28 @@ $menuOption = New-CsAutoAttendantMenuOption -Action Announcement -DtmfResponse T None - TextToSpeechPrompt + Tenant - The TextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt that is to be read when the prompt is activated. - This parameter is required when text to speech prompts are being created. + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} - System.String + System.Guid - System.String + System.Guid None - Tenant + TextToSpeechPrompt - + > Applicable: Microsoft Teams + The TextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt that is to be read when the prompt is activated. + This parameter is required when text to speech prompts are being created. - System.Guid + System.String - System.Guid + System.String None @@ -38389,11 +41650,11 @@ $dualPrompt = New-CsAutoAttendantPrompt -ActiveType AudioFile -AudioFilePrompt $ Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csautoattendantprompt + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantprompt Import-CsOnlineAudioFile - https://learn.microsoft.com/powershell/module/teams/import-csonlineaudiofile + https://learn.microsoft.com/powershell/module/microsoftteams/import-csonlineaudiofile @@ -38416,54 +41677,6 @@ $dualPrompt = New-CsAutoAttendantPrompt -ActiveType AudioFile -AudioFilePrompt $ New-CsBatchPolicyAssignmentOperation - - Identity - - An array of users, specified either using object IDs (guid) or SIP addresses. There is a maximum of 5,000 users per batch. - - String - - String - - - None - - - PolicyName - - The name of the policy to be assigned to the users. To remove the currently assigned policy, use $null or an empty string "". - - String - - String - - - None - - - PolicyType - - The type of the policy to be assigned to the users. For the list of current policy types accepted by this parameter, see the Description section at the beginning of this article. - - String - - String - - - None - - - OperationName - - An optional name for the batch assignment operation. - - String - - String - - - None - AdditionalParameters @@ -38511,6 +41724,54 @@ $dualPrompt = New-CsAutoAttendantPrompt -ActiveType AudioFile -AudioFilePrompt $ None + + Identity + + An array of users, specified either using object IDs (guid) or SIP addresses. There is a maximum of 5,000 users per batch. + + String + + String + + + None + + + OperationName + + An optional name for the batch assignment operation. + + String + + String + + + None + + + PolicyName + + The name of the policy to be assigned to the users. To remove the currently assigned policy, use $null or an empty string "". + + String + + String + + + None + + + PolicyType + + The type of the policy to be assigned to the users. For the list of current policy types accepted by this parameter, see the Description section at the beginning of this article. + + String + + String + + + None + Proxy @@ -38549,98 +41810,98 @@ $dualPrompt = New-CsAutoAttendantPrompt -ActiveType AudioFile -AudioFilePrompt $ - - Identity + + AdditionalParameters - An array of users, specified either using object IDs (guid) or SIP addresses. There is a maximum of 5,000 users per batch. + . - String + Hashtable - String + Hashtable None - - PolicyName + + Break - The name of the policy to be assigned to the users. To remove the currently assigned policy, use $null or an empty string "". + Wait for .NET debugger to attach - String + SwitchParameter - String + SwitchParameter - None + False - - PolicyType + + HttpPipelineAppend - The type of the policy to be assigned to the users. For the list of current policy types accepted by this parameter, see the Description section at the beginning of this article. + SendAsync Pipeline Steps to be appended to the front of the pipeline - String + SendAsyncStep[] - String + SendAsyncStep[] None - OperationName + HttpPipelinePrepend - An optional name for the batch assignment operation. + SendAsync Pipeline Steps to be prepended to the front of the pipeline - String + SendAsyncStep[] - String + SendAsyncStep[] None - - AdditionalParameters + + Identity - . + An array of users, specified either using object IDs (guid) or SIP addresses. There is a maximum of 5,000 users per batch. - Hashtable + String - Hashtable + String None - Break + OperationName - Wait for .NET debugger to attach + An optional name for the batch assignment operation. - SwitchParameter + String - SwitchParameter + String - False + None - - HttpPipelineAppend + + PolicyName - SendAsync Pipeline Steps to be appended to the front of the pipeline + The name of the policy to be assigned to the users. To remove the currently assigned policy, use $null or an empty string "". - SendAsyncStep[] + String - SendAsyncStep[] + String None - - HttpPipelinePrepend + + PolicyType - SendAsync Pipeline Steps to be prepended to the front of the pipeline + The type of the policy to be assigned to the users. For the list of current policy types accepted by this parameter, see the Description section at the beginning of this article. - SendAsyncStep[] + String - SendAsyncStep[] + String None @@ -38736,11 +41997,11 @@ New-CsBatchPolicyAssignmentOperation -PolicyType TeamsMeetingPolicy -PolicyName Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csbatchpolicyassignmentoperation + https://learn.microsoft.com/powershell/module/microsoftteams/new-csbatchpolicyassignmentoperation Get-CsBatchPolicyAssignmentOperation - https://learn.microsoft.com/powershell/module/teams/get-csbatchpolicyassignmentoperation + https://learn.microsoft.com/powershell/module/microsoftteams/get-csbatchpolicyassignmentoperation @@ -38762,6 +42023,7 @@ New-CsBatchPolicyAssignmentOperation -PolicyType TeamsMeetingPolicy -PolicyName Identity + > Applicable: Microsoft Teams A list of one or more users in the tenant. A user identity can either be a user's object id or email address. String[] @@ -38774,6 +42036,7 @@ New-CsBatchPolicyAssignmentOperation -PolicyType TeamsMeetingPolicy -PolicyName PackageName + > Applicable: Microsoft Teams The name of a specific policy package to apply. All policy package names can be found by running Get-CsPolicyPackage. To remove the currently assigned package, use $null or an empty string "". This will not remove any policy assignments, just the package assigned value. String @@ -38789,6 +42052,7 @@ New-CsBatchPolicyAssignmentOperation -PolicyType TeamsMeetingPolicy -PolicyName Identity + > Applicable: Microsoft Teams A list of one or more users in the tenant. A user identity can either be a user's object id or email address. String[] @@ -38801,6 +42065,7 @@ New-CsBatchPolicyAssignmentOperation -PolicyType TeamsMeetingPolicy -PolicyName PackageName + > Applicable: Microsoft Teams The name of a specific policy package to apply. All policy package names can be found by running Get-CsPolicyPackage. To remove the currently assigned package, use $null or an empty string "". This will not remove any policy assignments, just the package assigned value. String @@ -38830,19 +42095,19 @@ New-CsBatchPolicyAssignmentOperation -PolicyType TeamsMeetingPolicy -PolicyName Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csbatchpolicypackageassignmentoperation + https://learn.microsoft.com/powershell/module/microsoftteams/new-csbatchpolicypackageassignmentoperation Get-CsPolicyPackage - https://learn.microsoft.com/powershell/module/teams/get-cspolicypackage + https://learn.microsoft.com/powershell/module/microsoftteams/get-cspolicypackage Get-CsUserPolicyPackageRecommendation - https://learn.microsoft.com/powershell/module/teams/get-csuserpolicypackagerecommendation + https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicypackagerecommendation Get-CsUserPolicyPackage - https://learn.microsoft.com/powershell/module/teams/get-csuserpolicypackage + https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicypackage @@ -38968,11 +42233,11 @@ New-CsBatchPolicyAssignmentOperation -PolicyType TeamsMeetingPolicy -PolicyName Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csbatchteamsdeployment + https://learn.microsoft.com/powershell/module/microsoftteams/new-csbatchteamsdeployment Get-CsBatchTeamsDeploymentStatus - https://learn.microsoft.com/powershell/module/teams/get-csbatchteamsdeploymentstatus + https://learn.microsoft.com/powershell/module/microsoftteams/get-csbatchteamsdeploymentstatus @@ -38996,6 +42261,7 @@ New-CsBatchPolicyAssignmentOperation -PolicyType TeamsMeetingPolicy -PolicyName Identity + > Applicable: Microsoft Teams The Identity parameter identifies the Caller ID policy. String @@ -39008,6 +42274,7 @@ New-CsBatchPolicyAssignmentOperation -PolicyType TeamsMeetingPolicy -PolicyName BlockIncomingPstnCallerID + > Applicable: Microsoft Teams The BlockIncomingPstnCallerID switch determines whether to block the incoming Caller ID. The default value is false. The BlockIncomingPstnCallerID switch is specific to incoming calls from a PSTN caller to a user. If this is set to True and if this policy is assigned to a user, then Caller ID for incoming calls is suppressed/anonymous. @@ -39021,6 +42288,7 @@ New-CsBatchPolicyAssignmentOperation -PolicyType TeamsMeetingPolicy -PolicyName CallingIDSubstitute + > Applicable: Microsoft Teams The CallingIDSubstitute parameter lets you specify an alternate Caller ID. The default value is LineUri. Supported values are Anonymous, LineUri, and Resource. String @@ -39033,6 +42301,7 @@ New-CsBatchPolicyAssignmentOperation -PolicyType TeamsMeetingPolicy -PolicyName CompanyName + > Applicable: Microsoft Teams This parameter sets the Calling party name (typically referred to as CNAM) on the outgoing PSTN call. String @@ -39042,9 +42311,22 @@ New-CsBatchPolicyAssignmentOperation -PolicyType TeamsMeetingPolicy -PolicyName None + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + + SwitchParameter + + + False + Description + > Applicable: Microsoft Teams The Description parameter briefly describes the Caller ID policy. String @@ -39057,6 +42339,7 @@ New-CsBatchPolicyAssignmentOperation -PolicyType TeamsMeetingPolicy -PolicyName EnableUserOverride + > Applicable: Microsoft Teams The EnableUserOverride parameter gives Microsoft Teams users the option under Settings and Calls to hide their phone number when making outgoing calls. The CallerID will be Anonymous. If CallingIDSubstitute is set to Anonymous, the EnableUserOverride parameter has no effect, and the caller ID is always set to Anonymous. EnableUserOverride has precedence over other settings in the policy unless substitution is set to Anonymous. For example, assume the policy instance has substitution using a resource account and EnableUserOverride is set and enabled by the user. In this case, the outbound caller ID will be blocked and Anonymous will be used. @@ -39071,6 +42354,7 @@ New-CsBatchPolicyAssignmentOperation -PolicyType TeamsMeetingPolicy -PolicyName ResourceAccount + > Applicable: Microsoft Teams This parameter specifies the ObjectId of a resource account/online application instance used for Teams Auto Attendant or Call Queue. The outgoing PSTN call will use the phone number defined on the resource account as caller id. For more information about resource accounts please see https://learn.microsoft.com/microsoftteams/manage-resource-accounts String @@ -39083,6 +42367,7 @@ New-CsBatchPolicyAssignmentOperation -PolicyType TeamsMeetingPolicy -PolicyName WhatIf + > Applicable: Microsoft Teams The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. @@ -39091,35 +42376,13 @@ New-CsBatchPolicyAssignmentOperation -PolicyType TeamsMeetingPolicy -PolicyName False - - Confirm - - The Confirm switch causes the command to pause processing and requires confirmation to proceed. - - - SwitchParameter - - - False - - - Identity - - The Identity parameter identifies the Caller ID policy. - - String - - String - - - None - BlockIncomingPstnCallerID + > Applicable: Microsoft Teams The BlockIncomingPstnCallerID switch determines whether to block the incoming Caller ID. The default value is false. The BlockIncomingPstnCallerID switch is specific to incoming calls from a PSTN caller to a user. If this is set to True and if this policy is assigned to a user, then Caller ID for incoming calls is suppressed/anonymous. @@ -39133,6 +42396,7 @@ New-CsBatchPolicyAssignmentOperation -PolicyType TeamsMeetingPolicy -PolicyName CallingIDSubstitute + > Applicable: Microsoft Teams The CallingIDSubstitute parameter lets you specify an alternate Caller ID. The default value is LineUri. Supported values are Anonymous, LineUri, and Resource. String @@ -39145,6 +42409,7 @@ New-CsBatchPolicyAssignmentOperation -PolicyType TeamsMeetingPolicy -PolicyName CompanyName + > Applicable: Microsoft Teams This parameter sets the Calling party name (typically referred to as CNAM) on the outgoing PSTN call. String @@ -39154,9 +42419,23 @@ New-CsBatchPolicyAssignmentOperation -PolicyType TeamsMeetingPolicy -PolicyName None + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + SwitchParameter + + SwitchParameter + + + False + Description + > Applicable: Microsoft Teams The Description parameter briefly describes the Caller ID policy. String @@ -39169,6 +42448,7 @@ New-CsBatchPolicyAssignmentOperation -PolicyType TeamsMeetingPolicy -PolicyName EnableUserOverride + > Applicable: Microsoft Teams The EnableUserOverride parameter gives Microsoft Teams users the option under Settings and Calls to hide their phone number when making outgoing calls. The CallerID will be Anonymous. If CallingIDSubstitute is set to Anonymous, the EnableUserOverride parameter has no effect, and the caller ID is always set to Anonymous. EnableUserOverride has precedence over other settings in the policy unless substitution is set to Anonymous. For example, assume the policy instance has substitution using a resource account and EnableUserOverride is set and enabled by the user. In this case, the outbound caller ID will be blocked and Anonymous will be used. @@ -39180,10 +42460,11 @@ New-CsBatchPolicyAssignmentOperation -PolicyType TeamsMeetingPolicy -PolicyName False - - ResourceAccount + + Identity - This parameter specifies the ObjectId of a resource account/online application instance used for Teams Auto Attendant or Call Queue. The outgoing PSTN call will use the phone number defined on the resource account as caller id. For more information about resource accounts please see https://learn.microsoft.com/microsoftteams/manage-resource-accounts + > Applicable: Microsoft Teams + The Identity parameter identifies the Caller ID policy. String @@ -39192,22 +42473,24 @@ New-CsBatchPolicyAssignmentOperation -PolicyType TeamsMeetingPolicy -PolicyName None - - WhatIf + + ResourceAccount - The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + > Applicable: Microsoft Teams + This parameter specifies the ObjectId of a resource account/online application instance used for Teams Auto Attendant or Call Queue. The outgoing PSTN call will use the phone number defined on the resource account as caller id. For more information about resource accounts please see https://learn.microsoft.com/microsoftteams/manage-resource-accounts - SwitchParameter + String - SwitchParameter + String - False + None - - Confirm + + WhatIf - The Confirm switch causes the command to pause processing and requires confirmation to proceed. + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. SwitchParameter @@ -39276,23 +42559,23 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs Online Version: - https://learn.microsoft.com/powershell/module/teams/new-cscallinglineidentity + https://learn.microsoft.com/powershell/module/microsoftteams/new-cscallinglineidentity Get-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/teams/get-cscallinglineidentity + https://learn.microsoft.com/powershell/module/microsoftteams/get-cscallinglineidentity Grant-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/teams/grant-cscallinglineidentity + https://learn.microsoft.com/powershell/module/microsoftteams/grant-cscallinglineidentity Remove-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/teams/remove-cscallinglineidentity + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cscallinglineidentity Set-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/teams/set-cscallinglineidentity + https://learn.microsoft.com/powershell/module/microsoftteams/set-cscallinglineidentity @@ -39302,20 +42585,86 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs New CsCallQueue - Creates new Call Queue in your Skype for Business Online organization. + Creates new Call Queue in your Teams organization. The New-CsCallQueue cmdlet creates a new Call Queue. - > [!CAUTION] > The following configuration parameters are currently only available in PowerShell and do not appear in Teams admin center. Saving a call queue configuration through Teams admin center will remove any of these configured items: > > - -HideAuthorizedUsers > - -OverflowRedirectPersonTextToSpeechPrompt > - -OverflowRedirectPersonAudioFilePrompt > - -OverflowRedirectVoicemailTextToSpeechPrompt > - -OverflowRedirectVoicemailAudioFilePrompt > - -TimeoutRedirectPersonTextToSpeechPrompt > - -TimeoutRedirectPersonAudioFilePrompt > - -TimeoutRedirectVoicemailTextToSpeechPrompt > - -TimeoutRedirectVoicemailAudioFilePrompt > - -NoAgentRedirectPersonTextToSpeechPrompt > - -NoAgentRedirectPersonAudioFilePrompt > - -NoAgentRedirectVoicemailTextToSpeechPrompt > - -NoAgentRedirectVoicemailAudioFilePrompt > > The following configuration parameters will only work for customers that are participating in the Voice Applications private preview for these features. General Availability for this functionality has not been determined at this time. > > - -OverflowActionCallPriority > - -TimeoutActionCallPriority > - -NoAgentActionCallPriority > - -ShiftsTeamId > - -ShiftsSchedulingGroupId > > Nesting Auto attendants and Call queues (/microsoftteams/plan-auto-attendant-call-queue#nested-auto-attendants-and-call-queues) without a resource account isn't currently supported for [Authorized users](/microsoftteams/aa-cq-authorized-users-plan)in Queues App. If you nest an Auto attendant or Call queue without a resource account, authorized users can't edit the auto attendant or call queue. + > [!CAUTION] > The following configuration parameters are currently only available in PowerShell and do not appear in Teams admin center. Saving a call queue configuration through Teams admin center will remove any of these configured items: > > - -HideAuthorizedUsers > - -OverflowActionCallPriority > - -OverflowRedirectPersonTextToSpeechPrompt > - -OverflowRedirectPersonAudioFilePrompt > - -OverflowRedirectVoicemailTextToSpeechPrompt > - -OverflowRedirectVoicemailAudioFilePrompt > - -TimeoutActionCallPriority > - -TimeoutRedirectPersonTextToSpeechPrompt > - -TimeoutRedirectPersonAudioFilePrompt > - -TimeoutRedirectVoicemailTextToSpeechPrompt > - -TimeoutRedirectVoicemailAudioFilePrompt > - -NoAgentActionCallPriority > - -NoAgentRedirectPersonTextToSpeechPrompt > - -NoAgentRedirectPersonAudioFilePrompt > - -NoAgentRedirectVoicemailTextToSpeechPrompt > - -NoAgentRedirectVoicemailAudioFilePrompt > > The following configuration parameters will only work for customers that are participating in the Voice Applications private preview for these features. General Availability for this functionality has not been determined at this time. > > - -ComplianceRecordingForCallQueueTemplateId > - -TextAnnouncementForCR > - -CustomAudioFileAnnouncementForCR > - -TextAnnouncementForCRFailure > - -CustomAudioFileAnnouncementForCRFailure > - -SharedCallQueueHistoryTemplateId > > Nesting Auto attendants and Call queues (/microsoftteams/plan-auto-attendant-call-queue#nested-auto-attendants-and-call-queues) without a resource account isn't currently supported for [Authorized users](/microsoftteams/aa-cq-authorized-users-plan)in Queues App. If you nest an Auto attendant or Call queue without a resource account, authorized users can't edit the auto attendant or call queue. > > Authorized users can't edit call flows with call priorities at this time. New-CsCallQueue - - Name + + AgentAlertTime - The Name parameter specifies a unique name for the Call Queue. + > Applicable: Microsoft Teams + The AgentAlertTime parameter represents the time (in seconds) that a call can remain unanswered before it is automatically routed to the next agent. The AgentAlertTime can be set to any integer value between 15 and 180 seconds (3 minutes), inclusive. The default value is 30 seconds. + + Int16 + + Int16 + + + 30 + + + AllowOptOut + + > Applicable: Microsoft Teams + The AllowOptOut parameter indicates whether or not agents can opt in or opt out from taking calls from a Call Queue. + + Boolean + + Boolean + + + True + + + AuthorizedUsers + + > Applicable: Microsoft Teams + This is a list of GUIDs for users who are authorized to make changes to this call queue. The users must also have a TeamsVoiceApplications policy assigned. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). + + List + + List + + + None + + + CallbackEmailNotificationTarget + + > Applicable: Microsoft Teams + The CallbackEmailNotificationTarget parameter must be set to a group ID (Microsoft 365, Distribution list, or Mail-enabled security) that will receive notification if a callback times out of the call queue or can't be completed for some other reason. This parameter becomes a required parameter when IsCallbackEnabled is set to `True`. + + Guid + + Guid + + + None + + + CallbackOfferAudioFilePromptResourceId + + > Applicable: Microsoft Teams + The CallbackOfferAudioFilePromptResourceId parameter indicates the unique identifier for the Audio file prompt which is played to calls that are eligible for callback. This message should tell callers which DTMF touch-tone key (CallbackRequestDtmf) to press to select callback. This parameter, or `-CallbackOfferTextToSpeechPrompt`, becomes a required parameter when IsCallbackEnabled is set to `True`. + + Guid + + Guid + + + None + + + CallbackOfferTextToSpeechPrompt + + > Applicable: Microsoft Teams + The CallbackOfferTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to calls that are eligible for callback. This message should tell callers which DTMF touch-tone key (CallbackRequestDtmf) to press to select callback. This parameter, or `-CallbackOfferAudioFilePromptResourceId`, becomes a required parameter when IsCallbackEnabled is set to `True`. String @@ -39325,69 +42674,92 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - AgentAlertTime + CallbackRequestDtmf - The AgentAlertTime parameter represents the time (in seconds) that a call can remain unanswered before it is automatically routed to the next agent. The AgentAlertTime can be set to any integer value between 15 and 180 seconds (3 minutes), inclusive. The default value is 30 seconds. + The DTMF touch-tone key the caller will be told to press to select callback. The CallbackRequestDtmf must be set to one of the following values: + - Tone0 to Tone9 - Corresponds to DTMF tones from 0 to 9. + - ToneStar - Corresponds to DTMF tone *. + - TonePound - Corresponds to DTMF tone #. + + This parameter becomes a required parameter when IsCallbackEnabled is set to `True`. + + String + + String + + + None + + + CallToAgentRatioThresholdBeforeOfferingCallback + + The ratio of calls to agents that must be in queue before a call becomes eligible for callback. This condition applies to calls arriving at the call queue. Minimum value of 1. Set to null ($null) to disable this condition. + At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. Int16 Int16 - 30 + None - AllowOptOut + ChannelId - The AllowOptOut parameter indicates whether or not agents can opt in or opt out from taking calls from a Call Queue. + > Applicable: Microsoft Teams + Id of the channel to connect a call queue to. - Boolean + String - Boolean + String - True + None - DistributionLists + ChannelUserObjectId - The DistributionLists parameter lets you add all the members of the distribution lists to the Call Queue. This is a list of distribution list GUIDs. A service wide configurable maximum number of DLs per Call Queue are allowed. Only the first N (service wide configurable) agents from all distribution lists combined are considered for accepting the call. Nested DLs are supported. O365 Groups can also be used to add members to the Call Queue. + > Applicable: Microsoft Teams + Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). This is the GUID of one of the owners of the team the channels belongs to. - List + Guid - List + Guid None - Tenant + ComplianceRecordingForCallQueueTemplateId - This parameter is reserved for Microsoft internal use only. + Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The ComplianceRecordingForCallQueueTemplateId parameter indicates a list of up to 2 Compliance Recording for Call Queue templates to apply to the call queue. - Guid + List - Guid + List None - UseDefaultMusicOnHold + ConferenceMode - The UseDefaultMusicOnHold parameter indicates that this Call Queue uses the default music on hold. This parameter cannot be specified together with MusicOnHoldAudioFileId. + > Applicable: Microsoft Teams + The ConferenceMode parameter indicates whether or not Conference mode will be applied on calls for this Call queue. Conference mode significantly reduces the amount of time it takes for a caller to be connected to an agent, after the agent accepts the call. The following bullet points detail the difference between both modes: + - Conference Mode Disabled: CQ call is presented to agent. Agent answers and media streams are setup. Based on geographic location of the CQ call and agent, there may be a slight delay in setting up the media streams which may result in some dead air and the first part of the conversation being cut off. + - Conference Mode Enabled: CQ call is put into conference. Agent answers and is brought into conference. Media streams are already setup when agent is brought into conference thus no dead air, and first bit of conversation will not be cut off. Boolean Boolean - None + True - WelcomeMusicAudioFileId + CustomAudioFileAnnouncementForCR - The WelcomeMusicAudioFileId parameter represents the audio file to play when callers are connected with the Call Queue. This is the unique identifier of the audio file. + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The CustomAudioFileAnnouncementForCR parameter indicates the unique identifier for the Audio file prompt which is played to callers when compliance recording for call queues is enabled. Guid @@ -39397,9 +42769,9 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - MusicOnHoldAudioFileId + CustomAudioFileAnnouncementForCRFailure - The MusicOnHoldAudioFileId parameter represents music to play when callers are placed on hold. This is the unique identifier of the audio file. This parameter is required if the UseDefaultMusicOnHold parameter is not specified. + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The CustomAudioFileAnnouncementForCRFailure parameter indicates the unique identifier for the Audio file prompt which is played to callers if the compliance recording for call queue bot is unable to join or drops from the call. Guid @@ -39409,143 +42781,126 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - OverflowAction - - The OverflowAction parameter designates the action to take if the overflow threshold is reached. The OverflowAction property must be set to one of the following values: DisconnectWithBusy, Forward, Voicemail, and SharedVoicemail. The default value is DisconnectWithBusy. - PARAMVALUE: DisconnectWithBusy | Forward | Voicemail | SharedVoicemail - - Object - - Object - - - DisconnectWithBusy - - - OverflowActionTarget + DistributionLists - The OverflowActionTarget parameter represents the target of the overflow action. If the OverFlowAction is set to Forward, this parameter must be set to a Guid or a telephone number with a mandatory 'tel:' prefix. If the OverflowAction is set to SharedVoicemail, this parameter must be set to a group ID (Microsoft 365, Distribution list, or Mail-enabled security). Otherwise, this parameter is optional. + > Applicable: Microsoft Teams + The DistributionLists parameter lets you add all the members of the distribution lists to the Call Queue. This is a list of distribution list GUIDs. A service wide configurable maximum number of DLs per Call Queue are allowed. Only the first N (service wide configurable) agents from all distribution lists combined are considered for accepting the call. Nested DLs are supported. O365 Groups can also be used to add members to the Call Queue. - String + List - String + List None - OverflowActionCallPriority + EnableNoAgentSharedVoicemailSystemPromptSuppression - Voice applications private preview customers only Saving a call queue configuration through Teams admin center will *remove* this setting. If the OverFlowAction is set to Forward, and the OverflowActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. - PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High - - 2 = High - - 3 = Normal / Default - - 4 = Low - - 5 = Very Low + > Applicable: Microsoft Teams + The EnableNoAgentSharedVoicemailSystemPromptSuppress parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when NoAgentAction is set to SharedVoicemail. - Int16 + Boolean - Int16 + Boolean - None + False - OverflowThreshold + EnableNoAgentSharedVoicemailTranscription - The OverflowThreshold parameter defines the number of calls that can be in the queue at any one time before the overflow action is triggered. The OverflowThreshold can be any integer value between 0 and 200, inclusive. A value of 0 causes calls not to reach agents and the overflow action to be taken immediately. + > Applicable: Microsoft Teams + The EnableNoAgentSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on no agents. This parameter is only applicable when NoAgentAction is set to SharedVoicemail. - Int16 + Boolean - Int16 + Boolean - 50 + False - TimeoutAction + EnableOverflowSharedVoicemailSystemPromptSuppression - The TimeoutAction parameter defines the action to take if the timeout threshold is reached. The TimeoutAction property must be set to one of the following values: Disconnect, Forward, Voicemail, and SharedVoicemail. The default value is Disconnect. - PARAMVALUE: Disconnect | Forward | Voicemail | SharedVoicemail + > Applicable: Microsoft Teams + The EnableOverflowSharedVoicemailSystemPromptSuppress parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when OverflowAction is set to SharedVoicemail. - Object + Boolean - Object + Boolean - Disconnect + False - TimeoutActionTarget + EnableOverflowSharedVoicemailTranscription - The TimeoutActionTarget represents the target of the timeout action. If the TimeoutAction is set to Forward, this parameter must be set to a Guid or a telephone number with a mandatory 'tel:' prefix. If the TimeoutAction is set to SharedVoicemail, this parameter must be set to an Office 365 Group ID. Otherwise, this field is optional. + > Applicable: Microsoft Teams + The EnableOverflowSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on overflow. This parameter is only applicable when OverflowAction is set to SharedVoicemail. - String + Boolean - String + Boolean - None + False - TimeoutActionCallPriority + EnableTimeoutSharedVoicemailSystemPromptSuppression - Voice applications private preview customers only Saving a call queue configuration through Teams admin center will *remove* this setting. If the TimeoutAction is set to Forward, and the TimeoutActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. - PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High - - 2 = High - - 3 = Normal / Default - - 4 = Low - - 5 = Very Low + > Applicable: Microsoft Teams + The EnableTimeoutSharedVoicemailSystemPromptSuppress parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when OverflowAction is set to SharedVoicemail. - Int16 + Boolean - Int16 + Boolean - None + False - TimeoutThreshold + EnableTimeoutSharedVoicemailTranscription - The TimeoutThreshold parameter defines the time (in seconds) that a call can be in the queue before that call times out. At that point, the system will take the action specified by the TimeoutAction parameter. The TimeoutThreshold can be any integer value between 0 and 2700 seconds (inclusive), and is rounded to the nearest 15th interval. For example, if set to 47 seconds, then it is rounded down to 45. If set to 0, welcome music is played, and then the timeout action will be taken. + > Applicable: Microsoft Teams + The EnableTimeoutSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on timeout. This parameter is only applicable when TimeoutAction is set to SharedVoicemail. - Int16 + Boolean - Int16 + Boolean - 1200 + False - NoAgentApplyTo + HideAuthorizedUsers - The NoAgentApplyTo parameter defines if the NoAgentAction applies to calls already in queue and new calls arriving to the queue, or only new calls that arrive once the No Agents condition occurs. The default value is AllCalls. - PARAMVALUE: AllCalls | NewCalls + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. This is a list of GUIDs of authorized users who should not appear on the list of supervisors for the agents who are members of this queue. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). - Object + List - Object + List - Disconnect + None - NoAgentAction + IsCallbackEnabled - The NoAgentAction parameter defines the action to take if the no agents condition is reached. The NoAgentAction property must be set to one of the following values: Queue, Disconnect, Forward, Voicemail, and SharedVoicemail. The default value is Queue. - PARAMVALUE: Queue | Disconnect | Forward | Voicemail | SharedVoicemail + The IsCallbackEnabled parameter is used to turn on/off callback. - Object + Boolean - Object + Boolean - Disconnect + None - NoAgentActionTarget + LanguageId - The NoAgentActionTarget represents the target of the no agent action. If the NoAgentAction is set to Forward, this parameter must be set to a GUID or a telephone number with a mandatory 'tel:' prefix. If the NoAgentAction is set to SharedVoicemail, this parameter must be set to a Microsoft 365 Group ID. Otherwise, this field is optional. + > Applicable: Microsoft Teams + The LanguageId parameter indicates the language that is used to play shared voicemail prompts. This parameter becomes a required parameter if either OverflowAction or TimeoutAction is set to SharedVoicemail. + You can query the supported languages using the Get-CsAutoAttendantSupportedLanguage cmdlet. String @@ -39555,78 +42910,82 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - NoAgentActionCallPriority + LineUri - Voice applications private preview customers only Saving a call queue configuration through Teams admin center will *remove* this setting. If the NoAgentAction is set to Forward, and the NoAgentActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. - PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High - - 2 = High - - 3 = Normal / Default - - 4 = Low - - 5 = Very Low + > Applicable: Microsoft Teams + This parameter is reserved for Microsoft internal use only. - Int16 + String - Int16 + String None - RoutingMethod + MusicOnHoldAudioFileId - The RoutingMethod parameter defines how agents will be called in a Call Queue. If the routing method is set to Serial, then agents will be called one at a time. If the routing method is set to Attendant, then agents will be called in parallel. If the routing method is set to RoundRobin, the agents will be called using the Round Robin strategy so that all agents share the call load equally. If the routing method is set to LongestIdle, the agents will be called based on their idle time, that is, the agent that has been idle for the longest period will be called. - PARAMVALUE: Attendant | Serial | RoundRobin | LongestIdle + > Applicable: Microsoft Teams + The MusicOnHoldAudioFileId parameter represents music to play when callers are placed on hold. This is the unique identifier of the audio file. This parameter is required if the UseDefaultMusicOnHold parameter is not specified. - Object + Guid - Object + Guid - Attendant + None - - PresenceBasedRouting + + Name - The PresenceBasedRouting parameter indicates whether or not presence based routing will be applied while call being routed to Call Queue agents. When set to False, calls will be routed to agents who have opted in to receive calls, regardless of their presence state. When set to True, opted-in agents will receive calls only when their presence state is Available. + > Applicable: Microsoft Teams + The Name parameter specifies a unique name for the Call Queue. - Boolean + String - Boolean + String - True + None - ConferenceMode + NoAgentAction - The ConferenceMode parameter indicates whether or not Conference mode will be applied on calls for this Call queue. Conference mode significantly reduces the amount of time it takes for a caller to be connected to an agent, after the agent accepts the call. The following bullet points detail the difference between both modes: - - Conference Mode Disabled: CQ call is presented to agent. Agent answers and media streams are setup. Based on geographic location of the CQ call and agent, there may be a slight delay in setting up the media streams which may result in some dead air and the first part of the conversation being cut off. - - Conference Mode Enabled: CQ call is put into conference. Agent answers and is brought into conference. Media streams are already setup when agent is brought into conference thus no dead air, and first bit of conversation will not be cut off. + > Applicable: Microsoft Teams + The NoAgentAction parameter defines the action to take if the no agents condition is reached. The NoAgentAction property must be set to one of the following values: Queue, Disconnect, Forward, Voicemail, and SharedVoicemail. The default value is Queue. + PARAMVALUE: Queue | Disconnect | Forward | Voicemail | SharedVoicemail - Boolean + Object - Boolean + Object - True + Disconnect - Users + NoAgentActionCallPriority - The Users parameter lets you add agents to the Call Queue. This parameter expects a list of user unique identifiers (GUID). + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will reset the priority to 3 - Normal / Default. If the NoAgentAction is set to Forward, and the NoAgentActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. + PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High + - 2 = High + - 3 = Normal / Default + - 4 = Low + - 5 = Very Low + + > [!IMPORTANT] > Call priorities isn't currently supported for Authorized users (/microsoftteams/aa-cq-authorized-users-plan)in Queues App. Authorized users will not be able to edit call flows with priorities. - List + Int16 - List + Int16 None - LanguageId + NoAgentActionTarget - The LanguageId parameter indicates the language that is used to play shared voicemail prompts. This parameter becomes a required parameter if either OverflowAction or TimeoutAction is set to SharedVoicemail. - You can query the supported languages using the Get-CsAutoAttendantSupportedLanguage cmdlet. + > Applicable: Microsoft Teams + The NoAgentActionTarget represents the target of the no agent action. If the NoAgentAction is set to Forward, this parameter must be set to a GUID or a telephone number with a mandatory 'tel:' prefix. If the NoAgentAction is set to SharedVoicemail, this parameter must be set to a Microsoft 365 Group ID. Otherwise, this field is optional. String @@ -39636,34 +42995,37 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - LineUri + NoAgentApplyTo - This parameter is reserved for Microsoft internal use only. + > Applicable: Microsoft Teams + The NoAgentApplyTo parameter defines if the NoAgentAction applies to calls already in queue and new calls arriving to the queue, or only new calls that arrive once the No Agents condition occurs. The default value is AllCalls. + PARAMVALUE: AllCalls | NewCalls - String + Object - String + Object - None + Disconnect - OboResourceAccountIds + NoAgentDisconnectAudioFilePrompt - The OboResourceAccountIds parameter lets you add resource account with phone number to the Call Queue. The agents in the Call Queue will be able to make outbound calls using the phone number on the resource accounts. This is a list of resource account GUIDs. - Only Call Queue managed by a Teams Channel will be able to use this feature. For more information, refer to Manage your support Call Queue in Teams (https://support.microsoft.com/office/manage-your-support-call-queue-in-teams-9f07dabe-91c6-4a9b-a545-8ffdddd2504e). + > Applicable: Microsoft Teams + The NoAgentDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to no agents. - List + Guid - List + Guid None - OverflowDisconnectTextToSpeechPrompt + NoAgentDisconnectTextToSpeechPrompt - The OverflowDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to overflow. + > Applicable: Microsoft Teams + The NoAgentDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to no agents. String @@ -39673,9 +43035,9 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - OverflowDisconnectAudioFilePrompt + NoAgentRedirectPersonAudioFilePrompt - The OverflowDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to overflow. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to no agents. Guid @@ -39685,9 +43047,9 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - OverflowRedirectPersonTextToSpeechPrompt + NoAgentRedirectPersonTextToSpeechPrompt - Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to overflow. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to no agents. String @@ -39697,9 +43059,10 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - OverflowRedirectPersonAudioFilePrompt + NoAgentRedirectPhoneNumberAudioFilePrompt - Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to overflow. + > Applicable: Microsoft Teams + The NoAgentRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to no agents. Guid @@ -39709,9 +43072,10 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - OverflowRedirectVoiceAppTextToSpeechPrompt + NoAgentRedirectPhoneNumberTextToSpeechPrompt - The OverflowRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to overflow. + > Applicable: Microsoft Teams + The NoAgentRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to no agents. String @@ -39721,9 +43085,10 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - OverflowRedirectVoiceAppAudioFilePrompt + NoAgentRedirectVoiceAppAudioFilePrompt - The OverflowRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to overflow. + > Applicable: Microsoft Teams + The NoAgentRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to no agents. Guid @@ -39733,9 +43098,10 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - OverflowRedirectPhoneNumberTextToSpeechPrompt + NoAgentRedirectVoiceAppTextToSpeechPrompt - The OverflowRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to overflow. + > Applicable: Microsoft Teams + The NoAgentRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to no agents. String @@ -39745,9 +43111,9 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - OverflowRedirectPhoneNumberAudioFilePrompt + NoAgentRedirectVoicemailAudioFilePrompt - The OverflowRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to overflow. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to no agent. Guid @@ -39757,9 +43123,9 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - OverflowRedirectVoicemailTextToSpeechPrompt + NoAgentRedirectVoicemailTextToSpeechPrompt - Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to overflow. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to no agent. String @@ -39769,9 +43135,10 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - OverflowRedirectVoicemailAudioFilePrompt + NoAgentSharedVoicemailAudioFilePrompt - Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to overflow. + > Applicable: Microsoft Teams + The NoAgentSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on no agents. This parameter becomes a required parameter when NoAgentAction is SharedVoicemail and NoAgentSharedVoicemailTextToSpeechPrompt is null. Guid @@ -39781,9 +43148,10 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - OverflowSharedVoicemailTextToSpeechPrompt + NoAgentSharedVoicemailTextToSpeechPrompt - The OverflowSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on overflow. This parameter becomes a required parameter when OverflowAction is SharedVoicemail and OverflowSharedVoicemailAudioFilePrompt is null. + > Applicable: Microsoft Teams + The NoAgentSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on no agents. This parameter becomes a required parameter when NoAgentAction is SharedVoicemail and NoAgentSharedVoicemailAudioFilePrompt is null. String @@ -39793,45 +43161,69 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - OverflowSharedVoicemailAudioFilePrompt + NumberOfCallsInQueueBeforeOfferingCallback - The OverflowSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on overflow. This parameter becomes a required parameter when OverflowAction is SharedVoicemail and OverflowSharedVoicemailTextToSpeechPrompt is null. + The number of calls in queue before a call becomes eligible for callback. This condition applies to calls arriving at the call queue. Set to null ($null) to disable this condition. + At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. - Guid + Int16 - Guid + Int16 None - EnableOverflowSharedVoicemailTranscription + OboResourceAccountIds - The EnableOverflowSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on overflow. This parameter is only applicable when OverflowAction is set to SharedVoicemail. + > Applicable: Microsoft Teams + The OboResourceAccountIds parameter lets you add resource account with phone number to the Call Queue. The agents in the Call Queue will be able to make outbound calls using the phone number on the resource accounts. This is a list of resource account GUIDs. - Boolean + List - Boolean + List - False + None - EnableOverflowSharedVoicemailSystemPromptSuppression + OverflowAction - The EnableOverflowSharedVoicemailSystemPromptSuppress parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when OverflowAction is set to SharedVoicemail. + > Applicable: Microsoft Teams + The OverflowAction parameter designates the action to take if the overflow threshold is reached. The OverflowAction property must be set to one of the following values: DisconnectWithBusy, Forward, Voicemail, and SharedVoicemail. The default value is DisconnectWithBusy. + PARAMVALUE: DisconnectWithBusy | Forward | Voicemail | SharedVoicemail - Boolean + Object - Boolean + Object - False + DisconnectWithBusy - TimeoutDisconnectTextToSpeechPrompt + OverflowActionCallPriority - The TimeoutDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to timeout. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will reset the priority to 3 - Normal / Default. If the OverFlowAction is set to Forward, and the OverflowActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. + PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High + - 2 = High + - 3 = Normal / Default + - 4 = Low + - 5 = Very Low + + > [!IMPORTANT] > Call priorities isn't currently supported for Authorized users (/microsoftteams/aa-cq-authorized-users-plan)in Queues App. Authorized users will not be able to edit call flows with priorities. + + Int16 + + Int16 + + + None + + + OverflowActionTarget + + > Applicable: Microsoft Teams + The OverflowActionTarget parameter represents the target of the overflow action. If the OverFlowAction is set to Forward, this parameter must be set to a Guid or a telephone number with a mandatory 'tel:' prefix. If the OverflowAction is set to SharedVoicemail, this parameter must be set to a group ID (Microsoft 365, Distribution list, or Mail-enabled security). Otherwise, this parameter is optional. String @@ -39841,9 +43233,10 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - TimeoutDisconnectAudioFilePrompt + OverflowDisconnectAudioFilePrompt - The TimeoutDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to timeout. + > Applicable: Microsoft Teams + The OverflowDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to overflow. Guid @@ -39853,9 +43246,10 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - TimeoutRedirectPersonTextToSpeechPrompt + OverflowDisconnectTextToSpeechPrompt - Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to timeout. + > Applicable: Microsoft Teams + The OverflowDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to overflow. String @@ -39865,9 +43259,9 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - TimeoutRedirectPersonAudioFilePrompt + OverflowRedirectPersonAudioFilePrompt - Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to timeout. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to overflow. Guid @@ -39877,9 +43271,9 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - TimeoutRedirectVoiceAppTextToSpeechPrompt + OverflowRedirectPersonTextToSpeechPrompt - The TimeoutRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to timeout. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to overflow. String @@ -39889,9 +43283,10 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - TimeoutRedirectVoiceAppAudioFilePrompt + OverflowRedirectPhoneNumberAudioFilePrompt - The TimeoutRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to timeout. + > Applicable: Microsoft Teams + The OverflowRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to overflow. Guid @@ -39901,9 +43296,10 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - TimeoutRedirectPhoneNumberTextToSpeechPrompt + OverflowRedirectPhoneNumberTextToSpeechPrompt - The TimeoutRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to timeout. + > Applicable: Microsoft Teams + The OverflowRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to overflow. String @@ -39913,9 +43309,10 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - TimeoutRedirectPhoneNumberAudioFilePrompt + OverflowRedirectVoiceAppAudioFilePrompt - The TimeoutRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to timeout. + > Applicable: Microsoft Teams + The OverflowRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to overflow. Guid @@ -39925,9 +43322,10 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - TimeoutRedirectVoicemailTextToSpeechPrompt + OverflowRedirectVoiceAppTextToSpeechPrompt - Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to timeout. + > Applicable: Microsoft Teams + The OverflowRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to overflow. String @@ -39937,9 +43335,9 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - TimeoutRedirectVoicemailAudioFilePrompt + OverflowRedirectVoicemailAudioFilePrompt - Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to timeout. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to overflow. Guid @@ -39949,9 +43347,9 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - TimeoutSharedVoicemailTextToSpeechPrompt + OverflowRedirectVoicemailTextToSpeechPrompt - The TimeoutSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on timeout. This parameter becomes a required parameter when TimeoutAction is SharedVoicemail and TimeoutSharedVoicemailAudioFilePrompt is null. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to overflow. String @@ -39961,9 +43359,10 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - TimeoutSharedVoicemailAudioFilePrompt + OverflowSharedVoicemailAudioFilePrompt - The TimeoutSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on timeout. This parameter becomes a required parameter when TimeoutAction is SharedVoicemail and TimeoutSharedVoicemailTextToSpeechPrompt is null. + > Applicable: Microsoft Teams + The OverflowSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on overflow. This parameter becomes a required parameter when OverflowAction is SharedVoicemail and OverflowSharedVoicemailTextToSpeechPrompt is null. Guid @@ -39973,81 +43372,88 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - EnableTimeoutSharedVoicemailTranscription + OverflowSharedVoicemailTextToSpeechPrompt - The EnableTimeoutSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on timeout. This parameter is only applicable when TimeoutAction is set to SharedVoicemail. + > Applicable: Microsoft Teams + The OverflowSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on overflow. This parameter becomes a required parameter when OverflowAction is SharedVoicemail and OverflowSharedVoicemailAudioFilePrompt is null. - Boolean + String - Boolean + String - False + None - EnableTimeoutSharedVoicemailSystemPromptSuppression + OverflowThreshold - The EnableTimeoutSharedVoicemailSystemPromptSuppress parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when OverflowAction is set to SharedVoicemail. + > Applicable: Microsoft Teams + The OverflowThreshold parameter defines the number of calls that can be in the queue at any one time before the overflow action is triggered. The OverflowThreshold can be any integer value between 0 and 200, inclusive. A value of 0 causes calls not to reach agents and the overflow action to be taken immediately. - Boolean + Int16 - Boolean + Int16 - False + 50 - NoAgentDisconnectTextToSpeechPrompt + PresenceBasedRouting - The NoAgentDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to no agents. + > Applicable: Microsoft Teams + The PresenceBasedRouting parameter indicates whether or not presence based routing will be applied while call being routed to Call Queue agents. When set to False, calls will be routed to agents who have opted in to receive calls, regardless of their presence state. When set to True, opted-in agents will receive calls only when their presence state is Available. - String + Boolean - String + Boolean - None + True - NoAgentDisconnectAudioFilePrompt + RoutingMethod - The NoAgentDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to no agents. + > Applicable: Microsoft Teams + The RoutingMethod parameter defines how agents will be called in a Call Queue. If the routing method is set to Serial, then agents will be called one at a time. If the routing method is set to Attendant, then agents will be called in parallel. If the routing method is set to RoundRobin, the agents will be called using the Round Robin strategy so that all agents share the call load equally. If the routing method is set to LongestIdle, the agents will be called based on their idle time, that is, the agent that has been idle for the longest period will be called. + PARAMVALUE: Attendant | Serial | RoundRobin | LongestIdle - Guid + Object - Guid + Object - None + Attendant - NoAgentRedirectPersonTextToSpeechPrompt + ServiceLevelThresholdResponseTimeInSecond - Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to no agents. + The target number of seconds calls should be answered in. This number is used to calculate the call queue service level percentage. + A value of `$null` indicates that a service level percentage will not be calculated for this call queue. - String + Int16 - String + Int16 None - NoAgentRedirectPersonAudioFilePrompt + SharedCallQueueHistoryTemplateId - Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to no agents. + Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The SharedCallQueueHistoryTemplateId parameter indicates the Shared Call Queue History template to apply to the call queue. - Guid + String - Guid + String None - NoAgentRedirectVoiceAppTextToSpeechPrompt + ShiftsSchedulingGroupId - The NoAgentRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to no agents. + > Applicable: Microsoft Teams + Id of the Scheduling Group to connect a call queue to. String @@ -40057,33 +43463,35 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - NoAgentRedirectVoiceAppAudioFilePrompt + ShiftsTeamId - The NoAgentRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to no agents. + > Applicable: Microsoft Teams + Id of the Team containing the Scheduling Group to connect a call queue to. - Guid + String - Guid + String None - NoAgentRedirectPhoneNumberTextToSpeechPrompt + ShouldOverwriteCallableChannelProperty - The NoAgentRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to no agents. + A Teams Channel can only be linked to one Call Queue at a time. To force reassignment of the Teams Channel to a new Call Queue, set this to $true. - String + Boolean - String + Boolean - None + False - NoAgentRedirectPhoneNumberAudioFilePrompt + Tenant - The NoAgentRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to no agents. + > Applicable: Microsoft Teams + This parameter is reserved for Microsoft internal use only. Guid @@ -40093,9 +43501,9 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - NoAgentRedirectVoicemailTextToSpeechPrompt + TextAnnouncementForCR - Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to no agent. + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The TextAnnouncementForCR parameter indicates the custom Text-to-Speech (TTS) prompt which is played to callers when compliance recording for call queues is enabled. String @@ -40105,69 +43513,81 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - NoAgentRedirectVoicemailAudioFilePrompt + TextAnnouncementForCRFailure - Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to no agent. + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The TextAnnouncementForCRFailure parameter indicates the custom Text-to-Speech (TTS) prompt which is played to callers if the compliance recording for call queue bot is unable to join or drops from the call. - Guid + String - Guid + String None - NoAgentSharedVoicemailTextToSpeechPrompt + TimeoutAction - The NoAgentSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on no agents. This parameter becomes a required parameter when NoAgentAction is SharedVoicemail and NoAgentSharedVoicemailAudioFilePrompt is null. + > Applicable: Microsoft Teams + The TimeoutAction parameter defines the action to take if the timeout threshold is reached. The TimeoutAction property must be set to one of the following values: Disconnect, Forward, Voicemail, and SharedVoicemail. The default value is Disconnect. + PARAMVALUE: Disconnect | Forward | Voicemail | SharedVoicemail - String + Object - String + Object - None + Disconnect - NoAgentSharedVoicemailAudioFilePrompt + TimeoutActionCallPriority - The NoAgentSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on no agents. This parameter becomes a required parameter when NoAgentAction is SharedVoicemail and NoAgentSharedVoicemailTextToSpeechPrompt is null. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will reset the priority to 3 - Normal / Default. If the TimeoutAction is set to Forward, and the TimeoutActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. + PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High + - 2 = High + - 3 = Normal / Default + - 4 = Low + - 5 = Very Low + + > [!IMPORTANT] > Call priorities isn't currently supported for Authorized users (/microsoftteams/aa-cq-authorized-users-plan)in Queues App. Authorized users will not be able to edit call flows with priorities. - Guid + Int16 - Guid + Int16 None - EnableNoAgentSharedVoicemailTranscription + TimeoutActionTarget - The EnableNoAgentSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on no agents. This parameter is only applicable when NoAgentAction is set to SharedVoicemail. + > Applicable: Microsoft Teams + The TimeoutActionTarget represents the target of the timeout action. If the TimeoutAction is set to Forward, this parameter must be set to a Guid or a telephone number with a mandatory 'tel:' prefix. If the TimeoutAction is set to SharedVoicemail, this parameter must be set to an Office 365 Group ID. Otherwise, this field is optional. - Boolean + String - Boolean + String - False + None - EnableNoAgentSharedVoicemailSystemPromptSuppression + TimeoutDisconnectAudioFilePrompt - The EnableNoAgentSharedVoicemailSystemPromptSuppress parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when NoAgentAction is set to SharedVoicemail. + > Applicable: Microsoft Teams + The TimeoutDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to timeout. - Boolean + Guid - Boolean + Guid - False + None - ChannelId + TimeoutDisconnectTextToSpeechPrompt - Id of the channel to connect a call queue to. + > Applicable: Microsoft Teams + The TimeoutDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to timeout. String @@ -40177,9 +43597,9 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - ChannelUserObjectId + TimeoutRedirectPersonAudioFilePrompt - Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). This is the GUID of one of the owners of the team the channels belongs to. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to timeout. Guid @@ -40189,9 +43609,9 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - ShiftsTeamId + TimeoutRedirectPersonTextToSpeechPrompt - Voice applications private preview customers only Saving a call queue configuration through Teams admin center will *remove* this setting. Id of the Team containing the Scheduling Group to connect a call queue to. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to timeout. String @@ -40201,45 +43621,49 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - ShiftsSchedulingGroupId + TimeoutRedirectPhoneNumberAudioFilePrompt - Voice applications private preview customers only Saving a call queue configuration through Teams admin center will *remove* this setting. Id of the Scheduling Group to connect a call queue to. + > Applicable: Microsoft Teams + The TimeoutRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to timeout. - String + Guid - String + Guid None - AuthorizedUsers + TimeoutRedirectPhoneNumberTextToSpeechPrompt - This is a list of GUIDs for users who are authorized to make changes to this call queue. The users must also have a TeamsVoiceApplications policy assigned. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). + > Applicable: Microsoft Teams + The TimeoutRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to timeout. - List + String - List + String None - HideAuthorizedUsers + TimeoutRedirectVoiceAppAudioFilePrompt - Saving a call queue configuration through Teams admin center will *remove* this setting. This is a list of GUIDs of authorized users who should not appear on the list of supervisors for the agents who are members of this queue. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). + > Applicable: Microsoft Teams + The TimeoutRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to timeout. - List + Guid - List + Guid None - WelcomeTextToSpeechPrompt + TimeoutRedirectVoiceAppTextToSpeechPrompt - This parameter indicates which Text-to-Speech (TTS) prompt is played when callers are connected to the Call Queue. + > Applicable: Microsoft Teams + The TimeoutRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to timeout. String @@ -40249,26 +43673,21 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - IsCallbackEnabled + TimeoutRedirectVoicemailAudioFilePrompt - The IsCallbackEnabled parameter is used to turn on/off callback. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to timeout. - Boolean + Guid - Boolean + Guid None - CallbackRequestDtmf + TimeoutRedirectVoicemailTextToSpeechPrompt - The DTMF touch-tone key the caller will be told to press to select callback. The CallbackRequestDtmf must be set to one of the following values: - - Tone0 to Tone9 - Corresponds to DTMF tones from 0 to 9. - - ToneStar - Corresponds to DTMF tone *. - - TonePound - Corresponds to DTMF tone #. - - This parameter becomes a required parameter when IsCallbackEnabled is set to `True`. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to timeout. String @@ -40278,123 +43697,115 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - WaitTimeBeforeOfferingCallbackInSecond + TimeoutSharedVoicemailAudioFilePrompt - The number of seconds a call must wait before becoming eligible for callback. This condition applies to calls at the front of the call queue. Set to null ($null) to disable this condition. - At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. + > Applicable: Microsoft Teams + The TimeoutSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on timeout. This parameter becomes a required parameter when TimeoutAction is SharedVoicemail and TimeoutSharedVoicemailTextToSpeechPrompt is null. - Int16 + Guid - Int16 + Guid None - NumberOfCallsInQueueBeforeOfferingCallback + TimeoutSharedVoicemailTextToSpeechPrompt - The number of calls in queue before a call becomes eligible for callback. This condition applies to calls arriving at the call queue. Set to null ($null) to disable this condition. - At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. + > Applicable: Microsoft Teams + The TimeoutSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on timeout. This parameter becomes a required parameter when TimeoutAction is SharedVoicemail and TimeoutSharedVoicemailAudioFilePrompt is null. - Int16 + String - Int16 + String None - CallToAgentRatioThresholdBeforeOfferingCallback + TimeoutThreshold - The ratio of calls to agents that must be in queue before a call becomes eligible for callback. This condition applies to calls arriving at the call queue. Minimum value of 1. Set to null ($null) to disable this condition. - At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. + > Applicable: Microsoft Teams + The TimeoutThreshold parameter defines the time (in seconds) that a call can be in the queue before that call times out. At that point, the system will take the action specified by the TimeoutAction parameter. The TimeoutThreshold can be any integer value between 0 and 2700 seconds (inclusive), and is rounded to the nearest 15th interval. For example, if set to 47 seconds, then it is rounded down to 45. If set to 0, welcome music is played, and then the timeout action will be taken. Int16 Int16 - None + 1200 - CallbackOfferAudioFilePromptResourceId + UseDefaultMusicOnHold - The CallbackOfferAudioFilePromptResourceId parameter indicates the unique identifier for the Audio file prompt which is played to calls that are eligible for callback. This message should tell callers which DTMF touch-tone key (CallbackRequestDtmf) to press to select callback. This parameter, or `-CallbackOfferTextToSpeechPrompt`, becomes a required parameter when IsCallbackEnabled is set to `True`. + > Applicable: Microsoft Teams + The UseDefaultMusicOnHold parameter indicates that this Call Queue uses the default music on hold. This parameter cannot be specified together with MusicOnHoldAudioFileId. - Guid + Boolean - Guid + Boolean None - CallbackOfferTextToSpeechPrompt + Users - The CallbackOfferTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to calls that are eligible for callback. This message should tell callers which DTMF touch-tone key (CallbackRequestDtmf) to press to select callback. This parameter, or `-CallbackOfferAudioFilePromptResourceId`, becomes a required parameter when IsCallbackEnabled is set to `True`. + > Applicable: Microsoft Teams + The Users parameter lets you add agents to the Call Queue. This parameter expects a list of user unique identifiers (GUID). - String + List - String + List None - CallbackEmailNotificationTarget + WaitTimeBeforeOfferingCallbackInSecond - The CallbackEmailNotificationTarget parameter must be set to a group ID (Microsoft 365, Distribution list, or Mail-enabled security) that will receive notification if a callback times out of the call queue or can't be completed for some other reason. This parameter becomes a required parameter when IsCallbackEnabled is set to `True`. + The number of seconds a call must wait before becoming eligible for callback. This condition applies to calls at the front of the call queue. Set to null ($null) to disable this condition. + At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. - Guid + Int16 - Guid + Int16 None - ServiceLevelThresholdResponseTimeInSecond + WelcomeMusicAudioFileId - The target number of seconds calls should be answered in. This number is used to calculate the call queue service level percentage. - A value of `$null` indicates that a service level percentage will not be calculated for this call queue. + > Applicable: Microsoft Teams + The WelcomeMusicAudioFileId parameter represents the audio file to play when callers are connected with the Call Queue. This is the unique identifier of the audio file. - Int16 + Guid - Int16 + Guid None - ShouldOverwriteCallableChannelProperty + WelcomeTextToSpeechPrompt - A Teams Channel can only be linked to one Call Queue at a time. To force reassignment of the Teams Channel to a new Call Queue, set this to $true. + This parameter indicates which Text-to-Speech (TTS) prompt is played when callers are connected to the Call Queue. - Boolean + String - Boolean + String - False + None - - Name - - The Name parameter specifies a unique name for the Call Queue. - - String - - String - - - None - AgentAlertTime + > Applicable: Microsoft Teams The AgentAlertTime parameter represents the time (in seconds) that a call can remain unanswered before it is automatically routed to the next agent. The AgentAlertTime can be set to any integer value between 15 and 180 seconds (3 minutes), inclusive. The default value is 30 seconds. Int16 @@ -40407,6 +43818,7 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs AllowOptOut + > Applicable: Microsoft Teams The AllowOptOut parameter indicates whether or not agents can opt in or opt out from taking calls from a Call Queue. Boolean @@ -40417,9 +43829,10 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs True - DistributionLists + AuthorizedUsers - The DistributionLists parameter lets you add all the members of the distribution lists to the Call Queue. This is a list of distribution list GUIDs. A service wide configurable maximum number of DLs per Call Queue are allowed. Only the first N (service wide configurable) agents from all distribution lists combined are considered for accepting the call. Nested DLs are supported. O365 Groups can also be used to add members to the Call Queue. + > Applicable: Microsoft Teams + This is a list of GUIDs for users who are authorized to make changes to this call queue. The users must also have a TeamsVoiceApplications policy assigned. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). List @@ -40429,9 +43842,10 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - Tenant + CallbackEmailNotificationTarget - This parameter is reserved for Microsoft internal use only. + > Applicable: Microsoft Teams + The CallbackEmailNotificationTarget parameter must be set to a group ID (Microsoft 365, Distribution list, or Mail-enabled security) that will receive notification if a callback times out of the call queue or can't be completed for some other reason. This parameter becomes a required parameter when IsCallbackEnabled is set to `True`. Guid @@ -40441,58 +43855,66 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - UseDefaultMusicOnHold + CallbackOfferAudioFilePromptResourceId - The UseDefaultMusicOnHold parameter indicates that this Call Queue uses the default music on hold. This parameter cannot be specified together with MusicOnHoldAudioFileId. + > Applicable: Microsoft Teams + The CallbackOfferAudioFilePromptResourceId parameter indicates the unique identifier for the Audio file prompt which is played to calls that are eligible for callback. This message should tell callers which DTMF touch-tone key (CallbackRequestDtmf) to press to select callback. This parameter, or `-CallbackOfferTextToSpeechPrompt`, becomes a required parameter when IsCallbackEnabled is set to `True`. - Boolean + Guid - Boolean + Guid None - WelcomeMusicAudioFileId + CallbackOfferTextToSpeechPrompt - The WelcomeMusicAudioFileId parameter represents the audio file to play when callers are connected with the Call Queue. This is the unique identifier of the audio file. + > Applicable: Microsoft Teams + The CallbackOfferTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to calls that are eligible for callback. This message should tell callers which DTMF touch-tone key (CallbackRequestDtmf) to press to select callback. This parameter, or `-CallbackOfferAudioFilePromptResourceId`, becomes a required parameter when IsCallbackEnabled is set to `True`. - Guid + String - Guid + String None - MusicOnHoldAudioFileId + CallbackRequestDtmf - The MusicOnHoldAudioFileId parameter represents music to play when callers are placed on hold. This is the unique identifier of the audio file. This parameter is required if the UseDefaultMusicOnHold parameter is not specified. + The DTMF touch-tone key the caller will be told to press to select callback. The CallbackRequestDtmf must be set to one of the following values: + - Tone0 to Tone9 - Corresponds to DTMF tones from 0 to 9. + - ToneStar - Corresponds to DTMF tone *. + - TonePound - Corresponds to DTMF tone #. + + This parameter becomes a required parameter when IsCallbackEnabled is set to `True`. - Guid + String - Guid + String None - OverflowAction + CallToAgentRatioThresholdBeforeOfferingCallback - The OverflowAction parameter designates the action to take if the overflow threshold is reached. The OverflowAction property must be set to one of the following values: DisconnectWithBusy, Forward, Voicemail, and SharedVoicemail. The default value is DisconnectWithBusy. - PARAMVALUE: DisconnectWithBusy | Forward | Voicemail | SharedVoicemail + The ratio of calls to agents that must be in queue before a call becomes eligible for callback. This condition applies to calls arriving at the call queue. Minimum value of 1. Set to null ($null) to disable this condition. + At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. - Object + Int16 - Object + Int16 - DisconnectWithBusy + None - OverflowActionTarget + ChannelId - The OverflowActionTarget parameter represents the target of the overflow action. If the OverFlowAction is set to Forward, this parameter must be set to a Guid or a telephone number with a mandatory 'tel:' prefix. If the OverflowAction is set to SharedVoicemail, this parameter must be set to a group ID (Microsoft 365, Distribution list, or Mail-enabled security). Otherwise, this parameter is optional. + > Applicable: Microsoft Teams + Id of the channel to connect a call queue to. String @@ -40502,190 +43924,180 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - OverflowActionCallPriority + ChannelUserObjectId - Voice applications private preview customers only Saving a call queue configuration through Teams admin center will *remove* this setting. If the OverFlowAction is set to Forward, and the OverflowActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. - PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High - - 2 = High - - 3 = Normal / Default - - 4 = Low - - 5 = Very Low + > Applicable: Microsoft Teams + Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). This is the GUID of one of the owners of the team the channels belongs to. - Int16 + Guid - Int16 + Guid None - OverflowThreshold + ComplianceRecordingForCallQueueTemplateId - The OverflowThreshold parameter defines the number of calls that can be in the queue at any one time before the overflow action is triggered. The OverflowThreshold can be any integer value between 0 and 200, inclusive. A value of 0 causes calls not to reach agents and the overflow action to be taken immediately. + Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The ComplianceRecordingForCallQueueTemplateId parameter indicates a list of up to 2 Compliance Recording for Call Queue templates to apply to the call queue. - Int16 + List - Int16 + List - 50 + None - TimeoutAction + ConferenceMode - The TimeoutAction parameter defines the action to take if the timeout threshold is reached. The TimeoutAction property must be set to one of the following values: Disconnect, Forward, Voicemail, and SharedVoicemail. The default value is Disconnect. - PARAMVALUE: Disconnect | Forward | Voicemail | SharedVoicemail + > Applicable: Microsoft Teams + The ConferenceMode parameter indicates whether or not Conference mode will be applied on calls for this Call queue. Conference mode significantly reduces the amount of time it takes for a caller to be connected to an agent, after the agent accepts the call. The following bullet points detail the difference between both modes: + - Conference Mode Disabled: CQ call is presented to agent. Agent answers and media streams are setup. Based on geographic location of the CQ call and agent, there may be a slight delay in setting up the media streams which may result in some dead air and the first part of the conversation being cut off. + - Conference Mode Enabled: CQ call is put into conference. Agent answers and is brought into conference. Media streams are already setup when agent is brought into conference thus no dead air, and first bit of conversation will not be cut off. - Object + Boolean - Object + Boolean - Disconnect + True - TimeoutActionTarget + CustomAudioFileAnnouncementForCR - The TimeoutActionTarget represents the target of the timeout action. If the TimeoutAction is set to Forward, this parameter must be set to a Guid or a telephone number with a mandatory 'tel:' prefix. If the TimeoutAction is set to SharedVoicemail, this parameter must be set to an Office 365 Group ID. Otherwise, this field is optional. + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The CustomAudioFileAnnouncementForCR parameter indicates the unique identifier for the Audio file prompt which is played to callers when compliance recording for call queues is enabled. - String + Guid - String + Guid None - TimeoutActionCallPriority + CustomAudioFileAnnouncementForCRFailure - Voice applications private preview customers only Saving a call queue configuration through Teams admin center will *remove* this setting. If the TimeoutAction is set to Forward, and the TimeoutActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. - PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High - - 2 = High - - 3 = Normal / Default - - 4 = Low - - 5 = Very Low + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The CustomAudioFileAnnouncementForCRFailure parameter indicates the unique identifier for the Audio file prompt which is played to callers if the compliance recording for call queue bot is unable to join or drops from the call. - Int16 + Guid - Int16 + Guid None - TimeoutThreshold + DistributionLists - The TimeoutThreshold parameter defines the time (in seconds) that a call can be in the queue before that call times out. At that point, the system will take the action specified by the TimeoutAction parameter. The TimeoutThreshold can be any integer value between 0 and 2700 seconds (inclusive), and is rounded to the nearest 15th interval. For example, if set to 47 seconds, then it is rounded down to 45. If set to 0, welcome music is played, and then the timeout action will be taken. + > Applicable: Microsoft Teams + The DistributionLists parameter lets you add all the members of the distribution lists to the Call Queue. This is a list of distribution list GUIDs. A service wide configurable maximum number of DLs per Call Queue are allowed. Only the first N (service wide configurable) agents from all distribution lists combined are considered for accepting the call. Nested DLs are supported. O365 Groups can also be used to add members to the Call Queue. - Int16 + List - Int16 + List - 1200 + None - NoAgentApplyTo + EnableNoAgentSharedVoicemailSystemPromptSuppression - The NoAgentApplyTo parameter defines if the NoAgentAction applies to calls already in queue and new calls arriving to the queue, or only new calls that arrive once the No Agents condition occurs. The default value is AllCalls. - PARAMVALUE: AllCalls | NewCalls + > Applicable: Microsoft Teams + The EnableNoAgentSharedVoicemailSystemPromptSuppress parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when NoAgentAction is set to SharedVoicemail. - Object + Boolean - Object + Boolean - Disconnect + False - NoAgentAction + EnableNoAgentSharedVoicemailTranscription - The NoAgentAction parameter defines the action to take if the no agents condition is reached. The NoAgentAction property must be set to one of the following values: Queue, Disconnect, Forward, Voicemail, and SharedVoicemail. The default value is Queue. - PARAMVALUE: Queue | Disconnect | Forward | Voicemail | SharedVoicemail + > Applicable: Microsoft Teams + The EnableNoAgentSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on no agents. This parameter is only applicable when NoAgentAction is set to SharedVoicemail. - Object + Boolean - Object + Boolean - Disconnect + False - NoAgentActionTarget + EnableOverflowSharedVoicemailSystemPromptSuppression - The NoAgentActionTarget represents the target of the no agent action. If the NoAgentAction is set to Forward, this parameter must be set to a GUID or a telephone number with a mandatory 'tel:' prefix. If the NoAgentAction is set to SharedVoicemail, this parameter must be set to a Microsoft 365 Group ID. Otherwise, this field is optional. + > Applicable: Microsoft Teams + The EnableOverflowSharedVoicemailSystemPromptSuppress parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when OverflowAction is set to SharedVoicemail. - String + Boolean - String + Boolean - None + False - NoAgentActionCallPriority + EnableOverflowSharedVoicemailTranscription - Voice applications private preview customers only Saving a call queue configuration through Teams admin center will *remove* this setting. If the NoAgentAction is set to Forward, and the NoAgentActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. - PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High - - 2 = High - - 3 = Normal / Default - - 4 = Low - - 5 = Very Low + > Applicable: Microsoft Teams + The EnableOverflowSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on overflow. This parameter is only applicable when OverflowAction is set to SharedVoicemail. - Int16 + Boolean - Int16 + Boolean - None + False - RoutingMethod + EnableTimeoutSharedVoicemailSystemPromptSuppression - The RoutingMethod parameter defines how agents will be called in a Call Queue. If the routing method is set to Serial, then agents will be called one at a time. If the routing method is set to Attendant, then agents will be called in parallel. If the routing method is set to RoundRobin, the agents will be called using the Round Robin strategy so that all agents share the call load equally. If the routing method is set to LongestIdle, the agents will be called based on their idle time, that is, the agent that has been idle for the longest period will be called. - PARAMVALUE: Attendant | Serial | RoundRobin | LongestIdle + > Applicable: Microsoft Teams + The EnableTimeoutSharedVoicemailSystemPromptSuppress parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when OverflowAction is set to SharedVoicemail. - Object + Boolean - Object + Boolean - Attendant + False - PresenceBasedRouting + EnableTimeoutSharedVoicemailTranscription - The PresenceBasedRouting parameter indicates whether or not presence based routing will be applied while call being routed to Call Queue agents. When set to False, calls will be routed to agents who have opted in to receive calls, regardless of their presence state. When set to True, opted-in agents will receive calls only when their presence state is Available. + > Applicable: Microsoft Teams + The EnableTimeoutSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on timeout. This parameter is only applicable when TimeoutAction is set to SharedVoicemail. Boolean Boolean - True + False - ConferenceMode + HideAuthorizedUsers - The ConferenceMode parameter indicates whether or not Conference mode will be applied on calls for this Call queue. Conference mode significantly reduces the amount of time it takes for a caller to be connected to an agent, after the agent accepts the call. The following bullet points detail the difference between both modes: - - Conference Mode Disabled: CQ call is presented to agent. Agent answers and media streams are setup. Based on geographic location of the CQ call and agent, there may be a slight delay in setting up the media streams which may result in some dead air and the first part of the conversation being cut off. - - Conference Mode Enabled: CQ call is put into conference. Agent answers and is brought into conference. Media streams are already setup when agent is brought into conference thus no dead air, and first bit of conversation will not be cut off. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. This is a list of GUIDs of authorized users who should not appear on the list of supervisors for the agents who are members of this queue. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). - Boolean + List - Boolean + List - True + None - Users + IsCallbackEnabled - The Users parameter lets you add agents to the Call Queue. This parameter expects a list of user unique identifiers (GUID). + The IsCallbackEnabled parameter is used to turn on/off callback. - List + Boolean - List + Boolean None @@ -40693,6 +44105,7 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs LanguageId + > Applicable: Microsoft Teams The LanguageId parameter indicates the language that is used to play shared voicemail prompts. This parameter becomes a required parameter if either OverflowAction or TimeoutAction is set to SharedVoicemail. You can query the supported languages using the Get-CsAutoAttendantSupportedLanguage cmdlet. @@ -40706,6 +44119,7 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs LineUri + > Applicable: Microsoft Teams This parameter is reserved for Microsoft internal use only. String @@ -40716,22 +44130,69 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - OboResourceAccountIds + MusicOnHoldAudioFileId - The OboResourceAccountIds parameter lets you add resource account with phone number to the Call Queue. The agents in the Call Queue will be able to make outbound calls using the phone number on the resource accounts. This is a list of resource account GUIDs. - Only Call Queue managed by a Teams Channel will be able to use this feature. For more information, refer to Manage your support Call Queue in Teams (https://support.microsoft.com/office/manage-your-support-call-queue-in-teams-9f07dabe-91c6-4a9b-a545-8ffdddd2504e). + > Applicable: Microsoft Teams + The MusicOnHoldAudioFileId parameter represents music to play when callers are placed on hold. This is the unique identifier of the audio file. This parameter is required if the UseDefaultMusicOnHold parameter is not specified. - List + Guid - List + Guid + + + None + + + Name + + > Applicable: Microsoft Teams + The Name parameter specifies a unique name for the Call Queue. + + String + + String None - OverflowDisconnectTextToSpeechPrompt + NoAgentAction - The OverflowDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to overflow. + > Applicable: Microsoft Teams + The NoAgentAction parameter defines the action to take if the no agents condition is reached. The NoAgentAction property must be set to one of the following values: Queue, Disconnect, Forward, Voicemail, and SharedVoicemail. The default value is Queue. + PARAMVALUE: Queue | Disconnect | Forward | Voicemail | SharedVoicemail + + Object + + Object + + + Disconnect + + + NoAgentActionCallPriority + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will reset the priority to 3 - Normal / Default. If the NoAgentAction is set to Forward, and the NoAgentActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. + PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High + - 2 = High + - 3 = Normal / Default + - 4 = Low + - 5 = Very Low + + > [!IMPORTANT] > Call priorities isn't currently supported for Authorized users (/microsoftteams/aa-cq-authorized-users-plan)in Queues App. Authorized users will not be able to edit call flows with priorities. + + Int16 + + Int16 + + + None + + + NoAgentActionTarget + + > Applicable: Microsoft Teams + The NoAgentActionTarget represents the target of the no agent action. If the NoAgentAction is set to Forward, this parameter must be set to a GUID or a telephone number with a mandatory 'tel:' prefix. If the NoAgentAction is set to SharedVoicemail, this parameter must be set to a Microsoft 365 Group ID. Otherwise, this field is optional. String @@ -40741,9 +44202,24 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - OverflowDisconnectAudioFilePrompt + NoAgentApplyTo - The OverflowDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to overflow. + > Applicable: Microsoft Teams + The NoAgentApplyTo parameter defines if the NoAgentAction applies to calls already in queue and new calls arriving to the queue, or only new calls that arrive once the No Agents condition occurs. The default value is AllCalls. + PARAMVALUE: AllCalls | NewCalls + + Object + + Object + + + Disconnect + + + NoAgentDisconnectAudioFilePrompt + + > Applicable: Microsoft Teams + The NoAgentDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to no agents. Guid @@ -40753,9 +44229,10 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - OverflowRedirectPersonTextToSpeechPrompt + NoAgentDisconnectTextToSpeechPrompt - Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to overflow. + > Applicable: Microsoft Teams + The NoAgentDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to no agents. String @@ -40765,9 +44242,9 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - OverflowRedirectPersonAudioFilePrompt + NoAgentRedirectPersonAudioFilePrompt - Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to overflow. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to no agents. Guid @@ -40777,9 +44254,9 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - OverflowRedirectVoiceAppTextToSpeechPrompt + NoAgentRedirectPersonTextToSpeechPrompt - The OverflowRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to overflow. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to no agents. String @@ -40789,9 +44266,10 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - OverflowRedirectVoiceAppAudioFilePrompt + NoAgentRedirectPhoneNumberAudioFilePrompt - The OverflowRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to overflow. + > Applicable: Microsoft Teams + The NoAgentRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to no agents. Guid @@ -40801,9 +44279,10 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - OverflowRedirectPhoneNumberTextToSpeechPrompt + NoAgentRedirectPhoneNumberTextToSpeechPrompt - The OverflowRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to overflow. + > Applicable: Microsoft Teams + The NoAgentRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to no agents. String @@ -40813,9 +44292,10 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - OverflowRedirectPhoneNumberAudioFilePrompt + NoAgentRedirectVoiceAppAudioFilePrompt - The OverflowRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to overflow. + > Applicable: Microsoft Teams + The NoAgentRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to no agents. Guid @@ -40825,9 +44305,10 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - OverflowRedirectVoicemailTextToSpeechPrompt + NoAgentRedirectVoiceAppTextToSpeechPrompt - Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to overflow. + > Applicable: Microsoft Teams + The NoAgentRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to no agents. String @@ -40837,9 +44318,9 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - OverflowRedirectVoicemailAudioFilePrompt + NoAgentRedirectVoicemailAudioFilePrompt - Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to overflow. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to no agent. Guid @@ -40849,9 +44330,9 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - OverflowSharedVoicemailTextToSpeechPrompt + NoAgentRedirectVoicemailTextToSpeechPrompt - The OverflowSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on overflow. This parameter becomes a required parameter when OverflowAction is SharedVoicemail and OverflowSharedVoicemailAudioFilePrompt is null. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to no agent. String @@ -40861,9 +44342,10 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - OverflowSharedVoicemailAudioFilePrompt + NoAgentSharedVoicemailAudioFilePrompt - The OverflowSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on overflow. This parameter becomes a required parameter when OverflowAction is SharedVoicemail and OverflowSharedVoicemailTextToSpeechPrompt is null. + > Applicable: Microsoft Teams + The NoAgentSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on no agents. This parameter becomes a required parameter when NoAgentAction is SharedVoicemail and NoAgentSharedVoicemailTextToSpeechPrompt is null. Guid @@ -40873,33 +44355,82 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - EnableOverflowSharedVoicemailTranscription + NoAgentSharedVoicemailTextToSpeechPrompt - The EnableOverflowSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on overflow. This parameter is only applicable when OverflowAction is set to SharedVoicemail. + > Applicable: Microsoft Teams + The NoAgentSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on no agents. This parameter becomes a required parameter when NoAgentAction is SharedVoicemail and NoAgentSharedVoicemailAudioFilePrompt is null. - Boolean + String - Boolean + String - False + None - EnableOverflowSharedVoicemailSystemPromptSuppression + NumberOfCallsInQueueBeforeOfferingCallback - The EnableOverflowSharedVoicemailSystemPromptSuppress parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when OverflowAction is set to SharedVoicemail. + The number of calls in queue before a call becomes eligible for callback. This condition applies to calls arriving at the call queue. Set to null ($null) to disable this condition. + At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. - Boolean + Int16 - Boolean + Int16 - False + None - TimeoutDisconnectTextToSpeechPrompt + OboResourceAccountIds - The TimeoutDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to timeout. + > Applicable: Microsoft Teams + The OboResourceAccountIds parameter lets you add resource account with phone number to the Call Queue. The agents in the Call Queue will be able to make outbound calls using the phone number on the resource accounts. This is a list of resource account GUIDs. + + List + + List + + + None + + + OverflowAction + + > Applicable: Microsoft Teams + The OverflowAction parameter designates the action to take if the overflow threshold is reached. The OverflowAction property must be set to one of the following values: DisconnectWithBusy, Forward, Voicemail, and SharedVoicemail. The default value is DisconnectWithBusy. + PARAMVALUE: DisconnectWithBusy | Forward | Voicemail | SharedVoicemail + + Object + + Object + + + DisconnectWithBusy + + + OverflowActionCallPriority + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will reset the priority to 3 - Normal / Default. If the OverFlowAction is set to Forward, and the OverflowActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. + PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High + - 2 = High + - 3 = Normal / Default + - 4 = Low + - 5 = Very Low + + > [!IMPORTANT] > Call priorities isn't currently supported for Authorized users (/microsoftteams/aa-cq-authorized-users-plan)in Queues App. Authorized users will not be able to edit call flows with priorities. + + Int16 + + Int16 + + + None + + + OverflowActionTarget + + > Applicable: Microsoft Teams + The OverflowActionTarget parameter represents the target of the overflow action. If the OverFlowAction is set to Forward, this parameter must be set to a Guid or a telephone number with a mandatory 'tel:' prefix. If the OverflowAction is set to SharedVoicemail, this parameter must be set to a group ID (Microsoft 365, Distribution list, or Mail-enabled security). Otherwise, this parameter is optional. String @@ -40909,9 +44440,10 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - TimeoutDisconnectAudioFilePrompt + OverflowDisconnectAudioFilePrompt - The TimeoutDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to timeout. + > Applicable: Microsoft Teams + The OverflowDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to overflow. Guid @@ -40921,9 +44453,34 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - TimeoutRedirectPersonTextToSpeechPrompt + OverflowDisconnectTextToSpeechPrompt + + > Applicable: Microsoft Teams + The OverflowDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to overflow. + + String + + String + + + None + + + OverflowRedirectPersonAudioFilePrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to overflow. + + Guid + + Guid + + + None + + + OverflowRedirectPersonTextToSpeechPrompt - Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to timeout. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to overflow. String @@ -40933,9 +44490,10 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - TimeoutRedirectPersonAudioFilePrompt + OverflowRedirectPhoneNumberAudioFilePrompt - Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to timeout. + > Applicable: Microsoft Teams + The OverflowRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to overflow. Guid @@ -40945,9 +44503,10 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - TimeoutRedirectVoiceAppTextToSpeechPrompt + OverflowRedirectPhoneNumberTextToSpeechPrompt - The TimeoutRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to timeout. + > Applicable: Microsoft Teams + The OverflowRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to overflow. String @@ -40957,9 +44516,10 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - TimeoutRedirectVoiceAppAudioFilePrompt + OverflowRedirectVoiceAppAudioFilePrompt - The TimeoutRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to timeout. + > Applicable: Microsoft Teams + The OverflowRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to overflow. Guid @@ -40969,9 +44529,10 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - TimeoutRedirectPhoneNumberTextToSpeechPrompt + OverflowRedirectVoiceAppTextToSpeechPrompt - The TimeoutRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to timeout. + > Applicable: Microsoft Teams + The OverflowRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to overflow. String @@ -40981,9 +44542,9 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - TimeoutRedirectPhoneNumberAudioFilePrompt + OverflowRedirectVoicemailAudioFilePrompt - The TimeoutRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to timeout. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to overflow. Guid @@ -40993,9 +44554,9 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - TimeoutRedirectVoicemailTextToSpeechPrompt + OverflowRedirectVoicemailTextToSpeechPrompt - Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to timeout. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to overflow. String @@ -41005,9 +44566,10 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - TimeoutRedirectVoicemailAudioFilePrompt + OverflowSharedVoicemailAudioFilePrompt - Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to timeout. + > Applicable: Microsoft Teams + The OverflowSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on overflow. This parameter becomes a required parameter when OverflowAction is SharedVoicemail and OverflowSharedVoicemailTextToSpeechPrompt is null. Guid @@ -41017,9 +44579,10 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - TimeoutSharedVoicemailTextToSpeechPrompt + OverflowSharedVoicemailTextToSpeechPrompt - The TimeoutSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on timeout. This parameter becomes a required parameter when TimeoutAction is SharedVoicemail and TimeoutSharedVoicemailAudioFilePrompt is null. + > Applicable: Microsoft Teams + The OverflowSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on overflow. This parameter becomes a required parameter when OverflowAction is SharedVoicemail and OverflowSharedVoicemailAudioFilePrompt is null. String @@ -41029,69 +44592,75 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - TimeoutSharedVoicemailAudioFilePrompt + OverflowThreshold - The TimeoutSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on timeout. This parameter becomes a required parameter when TimeoutAction is SharedVoicemail and TimeoutSharedVoicemailTextToSpeechPrompt is null. + > Applicable: Microsoft Teams + The OverflowThreshold parameter defines the number of calls that can be in the queue at any one time before the overflow action is triggered. The OverflowThreshold can be any integer value between 0 and 200, inclusive. A value of 0 causes calls not to reach agents and the overflow action to be taken immediately. - Guid + Int16 - Guid + Int16 - None + 50 - EnableTimeoutSharedVoicemailTranscription + PresenceBasedRouting - The EnableTimeoutSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on timeout. This parameter is only applicable when TimeoutAction is set to SharedVoicemail. + > Applicable: Microsoft Teams + The PresenceBasedRouting parameter indicates whether or not presence based routing will be applied while call being routed to Call Queue agents. When set to False, calls will be routed to agents who have opted in to receive calls, regardless of their presence state. When set to True, opted-in agents will receive calls only when their presence state is Available. Boolean Boolean - False + True - EnableTimeoutSharedVoicemailSystemPromptSuppression + RoutingMethod - The EnableTimeoutSharedVoicemailSystemPromptSuppress parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when OverflowAction is set to SharedVoicemail. + > Applicable: Microsoft Teams + The RoutingMethod parameter defines how agents will be called in a Call Queue. If the routing method is set to Serial, then agents will be called one at a time. If the routing method is set to Attendant, then agents will be called in parallel. If the routing method is set to RoundRobin, the agents will be called using the Round Robin strategy so that all agents share the call load equally. If the routing method is set to LongestIdle, the agents will be called based on their idle time, that is, the agent that has been idle for the longest period will be called. + PARAMVALUE: Attendant | Serial | RoundRobin | LongestIdle - Boolean + Object - Boolean + Object - False + Attendant - NoAgentDisconnectTextToSpeechPrompt + ServiceLevelThresholdResponseTimeInSecond - The NoAgentDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to no agents. + The target number of seconds calls should be answered in. This number is used to calculate the call queue service level percentage. + A value of `$null` indicates that a service level percentage will not be calculated for this call queue. - String + Int16 - String + Int16 None - NoAgentDisconnectAudioFilePrompt + SharedCallQueueHistoryTemplateId - The NoAgentDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to no agents. + Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The SharedCallQueueHistoryTemplateId parameter indicates the Shared Call Queue History template to apply to the call queue. - Guid + String - Guid + String None - NoAgentRedirectPersonTextToSpeechPrompt + ShiftsSchedulingGroupId - Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to no agents. + > Applicable: Microsoft Teams + Id of the Scheduling Group to connect a call queue to. String @@ -41101,33 +44670,35 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - NoAgentRedirectPersonAudioFilePrompt + ShiftsTeamId - Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to no agents. + > Applicable: Microsoft Teams + Id of the Team containing the Scheduling Group to connect a call queue to. - Guid + String - Guid + String None - NoAgentRedirectVoiceAppTextToSpeechPrompt + ShouldOverwriteCallableChannelProperty - The NoAgentRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to no agents. + A Teams Channel can only be linked to one Call Queue at a time. To force reassignment of the Teams Channel to a new Call Queue, set this to $true. - String + Boolean - String + Boolean - None + False - NoAgentRedirectVoiceAppAudioFilePrompt + Tenant - The NoAgentRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to no agents. + > Applicable: Microsoft Teams + This parameter is reserved for Microsoft internal use only. Guid @@ -41137,9 +44708,9 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - NoAgentRedirectPhoneNumberTextToSpeechPrompt + TextAnnouncementForCR - The NoAgentRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to no agents. + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The TextAnnouncementForCR parameter indicates the custom Text-to-Speech (TTS) prompt which is played to callers when compliance recording for call queues is enabled. String @@ -41149,45 +44720,55 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - NoAgentRedirectPhoneNumberAudioFilePrompt + TextAnnouncementForCRFailure - The NoAgentRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to no agents. + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The TextAnnouncementForCRFailure parameter indicates the custom Text-to-Speech (TTS) prompt which is played to callers if the compliance recording for call queue bot is unable to join or drops from the call. - Guid + String - Guid + String None - NoAgentRedirectVoicemailTextToSpeechPrompt + TimeoutAction - Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to no agent. + > Applicable: Microsoft Teams + The TimeoutAction parameter defines the action to take if the timeout threshold is reached. The TimeoutAction property must be set to one of the following values: Disconnect, Forward, Voicemail, and SharedVoicemail. The default value is Disconnect. + PARAMVALUE: Disconnect | Forward | Voicemail | SharedVoicemail - String + Object - String + Object - None + Disconnect - NoAgentRedirectVoicemailAudioFilePrompt + TimeoutActionCallPriority - Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to no agent. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will reset the priority to 3 - Normal / Default. If the TimeoutAction is set to Forward, and the TimeoutActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. + PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High + - 2 = High + - 3 = Normal / Default + - 4 = Low + - 5 = Very Low + + > [!IMPORTANT] > Call priorities isn't currently supported for Authorized users (/microsoftteams/aa-cq-authorized-users-plan)in Queues App. Authorized users will not be able to edit call flows with priorities. - Guid + Int16 - Guid + Int16 None - NoAgentSharedVoicemailTextToSpeechPrompt + TimeoutActionTarget - The NoAgentSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on no agents. This parameter becomes a required parameter when NoAgentAction is SharedVoicemail and NoAgentSharedVoicemailAudioFilePrompt is null. + > Applicable: Microsoft Teams + The TimeoutActionTarget represents the target of the timeout action. If the TimeoutAction is set to Forward, this parameter must be set to a Guid or a telephone number with a mandatory 'tel:' prefix. If the TimeoutAction is set to SharedVoicemail, this parameter must be set to an Office 365 Group ID. Otherwise, this field is optional. String @@ -41197,9 +44778,10 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - NoAgentSharedVoicemailAudioFilePrompt + TimeoutDisconnectAudioFilePrompt - The NoAgentSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on no agents. This parameter becomes a required parameter when NoAgentAction is SharedVoicemail and NoAgentSharedVoicemailTextToSpeechPrompt is null. + > Applicable: Microsoft Teams + The TimeoutDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to timeout. Guid @@ -41209,33 +44791,34 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - EnableNoAgentSharedVoicemailTranscription + TimeoutDisconnectTextToSpeechPrompt - The EnableNoAgentSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on no agents. This parameter is only applicable when NoAgentAction is set to SharedVoicemail. + > Applicable: Microsoft Teams + The TimeoutDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to timeout. - Boolean + String - Boolean + String - False + None - EnableNoAgentSharedVoicemailSystemPromptSuppression + TimeoutRedirectPersonAudioFilePrompt - The EnableNoAgentSharedVoicemailSystemPromptSuppress parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when NoAgentAction is set to SharedVoicemail. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to timeout. - Boolean + Guid - Boolean + Guid - False + None - ChannelId + TimeoutRedirectPersonTextToSpeechPrompt - Id of the channel to connect a call queue to. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to timeout. String @@ -41245,9 +44828,10 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - ChannelUserObjectId + TimeoutRedirectPhoneNumberAudioFilePrompt - Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). This is the GUID of one of the owners of the team the channels belongs to. + > Applicable: Microsoft Teams + The TimeoutRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to timeout. Guid @@ -41257,9 +44841,10 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - ShiftsTeamId + TimeoutRedirectPhoneNumberTextToSpeechPrompt - Voice applications private preview customers only Saving a call queue configuration through Teams admin center will *remove* this setting. Id of the Team containing the Scheduling Group to connect a call queue to. + > Applicable: Microsoft Teams + The TimeoutRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to timeout. String @@ -41269,45 +44854,47 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - ShiftsSchedulingGroupId + TimeoutRedirectVoiceAppAudioFilePrompt - Voice applications private preview customers only Saving a call queue configuration through Teams admin center will *remove* this setting. Id of the Scheduling Group to connect a call queue to. + > Applicable: Microsoft Teams + The TimeoutRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to timeout. - String + Guid - String + Guid None - AuthorizedUsers + TimeoutRedirectVoiceAppTextToSpeechPrompt - This is a list of GUIDs for users who are authorized to make changes to this call queue. The users must also have a TeamsVoiceApplications policy assigned. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). + > Applicable: Microsoft Teams + The TimeoutRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to timeout. - List + String - List + String None - HideAuthorizedUsers + TimeoutRedirectVoicemailAudioFilePrompt - Saving a call queue configuration through Teams admin center will *remove* this setting. This is a list of GUIDs of authorized users who should not appear on the list of supervisors for the agents who are members of this queue. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to timeout. - List + Guid - List + Guid None - WelcomeTextToSpeechPrompt + TimeoutRedirectVoicemailTextToSpeechPrompt - This parameter indicates which Text-to-Speech (TTS) prompt is played when callers are connected to the Call Queue. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to timeout. String @@ -41317,26 +44904,23 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - IsCallbackEnabled + TimeoutSharedVoicemailAudioFilePrompt - The IsCallbackEnabled parameter is used to turn on/off callback. + > Applicable: Microsoft Teams + The TimeoutSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on timeout. This parameter becomes a required parameter when TimeoutAction is SharedVoicemail and TimeoutSharedVoicemailTextToSpeechPrompt is null. - Boolean + Guid - Boolean + Guid None - CallbackRequestDtmf + TimeoutSharedVoicemailTextToSpeechPrompt - The DTMF touch-tone key the caller will be told to press to select callback. The CallbackRequestDtmf must be set to one of the following values: - - Tone0 to Tone9 - Corresponds to DTMF tones from 0 to 9. - - ToneStar - Corresponds to DTMF tone *. - - TonePound - Corresponds to DTMF tone #. - - This parameter becomes a required parameter when IsCallbackEnabled is set to `True`. + > Applicable: Microsoft Teams + The TimeoutSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on timeout. This parameter becomes a required parameter when TimeoutAction is SharedVoicemail and TimeoutSharedVoicemailAudioFilePrompt is null. String @@ -41346,72 +44930,62 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - WaitTimeBeforeOfferingCallbackInSecond - - The number of seconds a call must wait before becoming eligible for callback. This condition applies to calls at the front of the call queue. Set to null ($null) to disable this condition. - At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. - - Int16 - - Int16 - - - None - - - NumberOfCallsInQueueBeforeOfferingCallback + TimeoutThreshold - The number of calls in queue before a call becomes eligible for callback. This condition applies to calls arriving at the call queue. Set to null ($null) to disable this condition. - At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. + > Applicable: Microsoft Teams + The TimeoutThreshold parameter defines the time (in seconds) that a call can be in the queue before that call times out. At that point, the system will take the action specified by the TimeoutAction parameter. The TimeoutThreshold can be any integer value between 0 and 2700 seconds (inclusive), and is rounded to the nearest 15th interval. For example, if set to 47 seconds, then it is rounded down to 45. If set to 0, welcome music is played, and then the timeout action will be taken. Int16 Int16 - None + 1200 - CallToAgentRatioThresholdBeforeOfferingCallback + UseDefaultMusicOnHold - The ratio of calls to agents that must be in queue before a call becomes eligible for callback. This condition applies to calls arriving at the call queue. Minimum value of 1. Set to null ($null) to disable this condition. - At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. + > Applicable: Microsoft Teams + The UseDefaultMusicOnHold parameter indicates that this Call Queue uses the default music on hold. This parameter cannot be specified together with MusicOnHoldAudioFileId. - Int16 + Boolean - Int16 + Boolean None - CallbackOfferAudioFilePromptResourceId + Users - The CallbackOfferAudioFilePromptResourceId parameter indicates the unique identifier for the Audio file prompt which is played to calls that are eligible for callback. This message should tell callers which DTMF touch-tone key (CallbackRequestDtmf) to press to select callback. This parameter, or `-CallbackOfferTextToSpeechPrompt`, becomes a required parameter when IsCallbackEnabled is set to `True`. + > Applicable: Microsoft Teams + The Users parameter lets you add agents to the Call Queue. This parameter expects a list of user unique identifiers (GUID). - Guid + List - Guid + List None - CallbackOfferTextToSpeechPrompt + WaitTimeBeforeOfferingCallbackInSecond - The CallbackOfferTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to calls that are eligible for callback. This message should tell callers which DTMF touch-tone key (CallbackRequestDtmf) to press to select callback. This parameter, or `-CallbackOfferAudioFilePromptResourceId`, becomes a required parameter when IsCallbackEnabled is set to `True`. + The number of seconds a call must wait before becoming eligible for callback. This condition applies to calls at the front of the call queue. Set to null ($null) to disable this condition. + At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. - String + Int16 - String + Int16 None - CallbackEmailNotificationTarget + WelcomeMusicAudioFileId - The CallbackEmailNotificationTarget parameter must be set to a group ID (Microsoft 365, Distribution list, or Mail-enabled security) that will receive notification if a callback times out of the call queue or can't be completed for some other reason. This parameter becomes a required parameter when IsCallbackEnabled is set to `True`. + > Applicable: Microsoft Teams + The WelcomeMusicAudioFileId parameter represents the audio file to play when callers are connected with the Call Queue. This is the unique identifier of the audio file. Guid @@ -41421,30 +44995,17 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs None - ServiceLevelThresholdResponseTimeInSecond + WelcomeTextToSpeechPrompt - The target number of seconds calls should be answered in. This number is used to calculate the call queue service level percentage. - A value of `$null` indicates that a service level percentage will not be calculated for this call queue. + This parameter indicates which Text-to-Speech (TTS) prompt is played when callers are connected to the Call Queue. - Int16 + String - Int16 + String None - - ShouldOverwriteCallableChannelProperty - - A Teams Channel can only be linked to one Call Queue at a time. To force reassignment of the Teams Channel to a new Call Queue, set this to $true. - - Boolean - - Boolean - - - False - @@ -41481,12 +45042,40 @@ New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUs Online Version: - https://learn.microsoft.com/powershell/module/teams/new-cscallqueue + https://learn.microsoft.com/powershell/module/microsoftteams/new-cscallqueue Create a Phone System Call Queue https://support.office.com/article/Create-a-Phone-System-call-queue-67ccda94-1210-43fb-a25b-7b9785f8a061 + + Get-CsCallQueue + + + + Set-CsCallQueue + + + + Remove-CsCallQueue + + + + New-CsComplianceRecordingForCallQueueTemplate + + + + Get-CsComplianceRecordingForCallQueueTemplate + + + + Set-CsComplianceRecordingForCallQueueTemplate + + + + Remove-CsComplianceRecordingForCallQueueTemplate + + @@ -41548,7 +45137,7 @@ Token Online Version: - https://learn.microsoft.com/powershell/module/teams/new-cscloudcalldataconnection + https://learn.microsoft.com/powershell/module/microsoftteams/new-cscloudcalldataconnection Configure Call Data Connector @@ -41556,7 +45145,266 @@ Token Get-CsCloudCallDataConnection - https://learn.microsoft.com/powershell/module/teams/get-cscloudcalldataconnection + https://learn.microsoft.com/powershell/module/microsoftteams/get-cscloudcalldataconnection + + + + + + New-CsComplianceRecordingForCallQueueTemplate + New + CsComplianceRecordingForCallQueueTemplate + + Use the New-CsComplianceRecordingForCallQueueTemplate cmdlet to create a Compliance Recording for Call Queues template. + + + + Use the New-CsComplianceRecordingForCallQueueTemplate cmdlet to create a Compliance Recording for Call Queues template. + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for this feature. General Availability for this functionality has not been determined at this time. + + + + New-CsComplianceRecordingForCallQueueTemplate + + BotApplicationInstanceObjectId + + The compliance recording bot's application instance object Id. + Use Get-CsOnlineApplicationInstance (get-csonlineapplicationinstance.md)to get the `ObjectId`. + + System.String + + System.String + + + None + + + ConcurrentInvitationCount + + The number of concurrent invitations to send to the compliance recording for call queue bot. + + System.Int32 + + System.Int32 + + + 1 + + + Description + + A description for the compliance recording for call queues template. + + System.String + + System.String + + + None + + + Name + + The name of the compliance recording for call queue template. + + System.String + + System.String + + + None + + + PairedApplicationInstanceObjectId + + The PairedApplicationInstanceObjectId parameter specifies the paired compliance recording bot application object Id to invite to the call. + + System.String + + System.String + + + None + + + RequiredBeforeCall + + Indicates if the compliance recording for call queues bot must be able to join the call. Strict recording - if the bot can't join the call, the call will end. + + System.Booleen + + System.Booleen + + + False + + + RequiredDuringCall + + Indicates if the compliance recording for call queues bot must remain part of the call. Strict recording - if the bot leaves the call, the call will end. + + System.Booleen + + System.Booleen + + + False + + + + + + BotApplicationInstanceObjectId + + The compliance recording bot's application instance object Id. + Use Get-CsOnlineApplicationInstance (get-csonlineapplicationinstance.md)to get the `ObjectId`. + + System.String + + System.String + + + None + + + ConcurrentInvitationCount + + The number of concurrent invitations to send to the compliance recording for call queue bot. + + System.Int32 + + System.Int32 + + + 1 + + + Description + + A description for the compliance recording for call queues template. + + System.String + + System.String + + + None + + + Name + + The name of the compliance recording for call queue template. + + System.String + + System.String + + + None + + + PairedApplicationInstanceObjectId + + The PairedApplicationInstanceObjectId parameter specifies the paired compliance recording bot application object Id to invite to the call. + + System.String + + System.String + + + None + + + RequiredBeforeCall + + Indicates if the compliance recording for call queues bot must be able to join the call. Strict recording - if the bot can't join the call, the call will end. + + System.Booleen + + System.Booleen + + + False + + + RequiredDuringCall + + Indicates if the compliance recording for call queues bot must remain part of the call. Strict recording - if the bot leaves the call, the call will end. + + System.Booleen + + System.Booleen + + + False + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.OAA.Models.AutoAttendant + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + New-CsComplianceRecordingForCallQueueTemplate -Name "Customer Service" -Description "Required before/during call" -BotApplicationInstanceObjectId 14732826-8206-42e3-b51e-6693e2abb698 -RequiredDuringCall $true -RequiredBeforeCall $true + + This example creates a new Compliance Recording for Call Queue template. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/New-CsComplianceRecordingForCallQueueTemplate + + + Get-CsComplianceRecordingForCallQueueTemplate + + + + Set-CsComplianceRecordingForCallQueueTemplate + + + + Remove-CsComplianceRecordingForCallQueueTemplate + + + + Get-CsCallQueue + + + + New-CsCallQueue + + + + Set-CsCallQueue + + + + Remove-CsCallQueue + @@ -41566,12 +45414,11 @@ Token New CsCustomPolicyPackage - Note: This cmdlet is currently in private preview. This cmdlet creates a custom policy package. - This cmdlet creates a custom policy package. It allows the admin to create their own policy packages for the tenant. For more information on policy packages and the policy types available, see Managing policy packages in Teams (https://learn.microsoft.com/MicrosoftTeams/manage-policy-packages). + This cmdlet creates a custom policy package. It allows the admin to create their own policy packages for the tenant. For more information on policy packages and the policy types available, see Managing policy packages in Teams (https://learn.microsoft.com/MicrosoftTeams/manage-policy-packages). Note: This cmdlet is currently in private preview. @@ -41579,6 +45426,7 @@ Token Identity + > Applicable: Microsoft Teams The name of the custom package. String @@ -41591,7 +45439,8 @@ Token PolicyList - A list of one or more policies to be added in the package. To specify the policy list, follow this format: "<PolicyType>, <PolicyName>". Delimiters of ' ', '.', ':', '\t' are also acceptable. Supported policy types are listed here (https://learn.microsoft.com/MicrosoftTeams/manage-policy-packages#what-is-a-policy-package). To get the list of available policy names on your tenant, use the skypeforbusiness module and refer to cmdlets such as [Get-CsTeamsMeetingPolicy](https://learn.microsoft.com/powershell/module/teams/get-csteamsmeetingpolicy) and [Get-CsTeamsMessagingPolicy](https://learn.microsoft.com/powershell/module/teams/get-csteamsmessagingpolicy). + > Applicable: Microsoft Teams + A list of one or more policies to be added in the package. To specify the policy list, follow this format: "<PolicyType>, <PolicyName>". Delimiters of ' ', '.', ':', '\t' are also acceptable. Supported policy types are listed here (https://learn.microsoft.com/MicrosoftTeams/manage-policy-packages#what-is-a-policy-package). To get the list of available policy names on your tenant, use the skypeforbusiness module and refer to cmdlets such as [Get-CsTeamsMeetingPolicy](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingpolicy) and [Get-CsTeamsMessagingPolicy](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmessagingpolicy). String[] @@ -41603,6 +45452,7 @@ Token Description + > Applicable: Microsoft Teams The description of the custom package. String @@ -41615,10 +45465,11 @@ Token - - Identity + + Description - The name of the custom package. + > Applicable: Microsoft Teams + The description of the custom package. String @@ -41627,26 +45478,28 @@ Token None - - PolicyList + + Identity - A list of one or more policies to be added in the package. To specify the policy list, follow this format: "<PolicyType>, <PolicyName>". Delimiters of ' ', '.', ':', '\t' are also acceptable. Supported policy types are listed here (https://learn.microsoft.com/MicrosoftTeams/manage-policy-packages#what-is-a-policy-package). To get the list of available policy names on your tenant, use the skypeforbusiness module and refer to cmdlets such as [Get-CsTeamsMeetingPolicy](https://learn.microsoft.com/powershell/module/teams/get-csteamsmeetingpolicy) and [Get-CsTeamsMessagingPolicy](https://learn.microsoft.com/powershell/module/teams/get-csteamsmessagingpolicy). + > Applicable: Microsoft Teams + The name of the custom package. - String[] + String - String[] + String None - - Description + + PolicyList - The description of the custom package. + > Applicable: Microsoft Teams + A list of one or more policies to be added in the package. To specify the policy list, follow this format: "<PolicyType>, <PolicyName>". Delimiters of ' ', '.', ':', '\t' are also acceptable. Supported policy types are listed here (https://learn.microsoft.com/MicrosoftTeams/manage-policy-packages#what-is-a-policy-package). To get the list of available policy names on your tenant, use the skypeforbusiness module and refer to cmdlets such as [Get-CsTeamsMeetingPolicy](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingpolicy) and [Get-CsTeamsMessagingPolicy](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmessagingpolicy). - String + String[] - String + String[] None @@ -41678,15 +45531,15 @@ Token Online Version: - https://learn.microsoft.com/powershell/module/teams/new-cscustompolicypackage + https://learn.microsoft.com/powershell/module/microsoftteams/new-cscustompolicypackage Update-CsCustomPolicyPackage - https://learn.microsoft.com/powershell/module/teams/update-cscustompolicypackage + https://learn.microsoft.com/powershell/module/microsoftteams/update-cscustompolicypackage Remove-CsCustomPolicyPackage - https://learn.microsoft.com/powershell/module/teams/remove-cscustompolicypackage + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cscustompolicypackage @@ -41756,11 +45609,11 @@ Set-CsTenantFederationConfiguration -AllowedDomains $x Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csedgeallowallknowndomains + https://learn.microsoft.com/powershell/module/microsoftteams/new-csedgeallowallknowndomains Set-CsTenantFederationConfiguration - https://learn.microsoft.com/powershell/module/teams/set-cstenantfederationconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantfederationconfiguration @@ -41770,10 +45623,11 @@ Set-CsTenantFederationConfiguration -AllowedDomains $x New CsEdgeAllowList - Enables administrators to specify the domains that their users will be allowed to communicate with. The `New-CsEdgeAllowList` cmdlet, which can be used only with Skype for Business Online, must be used in conjunction with the `New-CsEdgeDomainPattern` cmdlet and the `Set-CsTenantFederationConfiguration` cmdlet. + Enables administrators to specify the domains that their users will be allowed to communicate with. + The `New-CsEdgeAllowList` cmdlet, which can be used only with Skype for Business Online, must be used in conjunction with the `New-CsEdgeDomainPattern` cmdlet and the `Set-CsTenantFederationConfiguration` cmdlet. Federation is a service that enables users to exchange IM and presence information with users from other domains. With Skype for Business Online, administrators can use the federation configuration settings to govern: Whether or not users can communicate with people from other domains and, if so, which domains they are allowed to communicate with. Whether or not users can communicate with people who have accounts on public IM and presence providers such as Windows Live, AOL, and Yahoo @@ -41793,6 +45647,7 @@ Set-CsTenantFederationConfiguration -AllowedDomains $x AllowedDomain + > Applicable: Microsoft Teams Object reference to the new domain (or set of domains) to be added to the allowed domain list. Domain object references must be created by using the `New-CsEdgeDomainPattern` cmdlet. Multiple domain objects can be added by separating the object references using commas. For example: -AllowedDomain $x,$y @@ -41809,6 +45664,7 @@ Set-CsTenantFederationConfiguration -AllowedDomains $x AllowedDomain + > Applicable: Microsoft Teams Object reference to the new domain (or set of domains) to be added to the allowed domain list. Domain object references must be created by using the `New-CsEdgeDomainPattern` cmdlet. Multiple domain objects can be added by separating the object references using commas. For example: -AllowedDomain $x,$y @@ -41884,15 +45740,15 @@ Set-CsTenantFederationConfiguration -AllowedDomains $newAllowList Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csedgeallowlist + https://learn.microsoft.com/powershell/module/microsoftteams/new-csedgeallowlist New-CsEdgeDomainPattern - https://learn.microsoft.com/powershell/module/teams/new-csedgedomainpattern + https://learn.microsoft.com/powershell/module/microsoftteams/new-csedgedomainpattern Set-CsTenantFederationConfiguration - https://learn.microsoft.com/powershell/module/teams/set-cstenantfederationconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantfederationconfiguration @@ -41902,14 +45758,16 @@ Set-CsTenantFederationConfiguration -AllowedDomains $newAllowList New CsEdgeDomainPattern - Used to specify a domain that will be added or removed from the set of domains enabled for federation or the set of domains disabled for federation. You must use the New-CsEdgeDomainPattern cmdlet when modifying the allowed or blocked domain lists. String values (such as "fabrikam.com") cannot be directly passed to the cmdlets used to manage either of these lists. + Used to specify a domain that will be added or removed from the set of domains enabled for federation or the set of domains disabled for federation. + You must use the New-CsEdgeDomainPattern cmdlet when modifying the allowed or blocked domain lists. String values (such as "fabrikam.com") cannot be directly passed to the cmdlets used to manage either of these lists. Federation is a service that enables users to exchange IM and presence information with users from other domains. With Skype for Business Online, administrators can use the federation configuration settings to govern: Whether or not users can communicate with people from other domains and, if so, which domains they are allowed to communicate with. Whether or not users can communicate with people who have accounts on public IM and presence providers such as Windows Live, AOL, and Yahoo. - Federation is managed, in part, by using allowed domain and blocked domain lists. The allowed domain list specifies the domains that users are allowed to communicate with; the blocked domain list specifies the domains that users are not allowed to communicate with. By default, users can communicate with any domain that does not appear on the blocked list. However, administrators can modify this default setting and limit communication to domains that are on the allowed domains list. + Federation is managed, in part, by using allowed domain and blocked domain lists. The allowed domain list specifies the domains that users are allowed to communicate with; the blocked domain list specifies the domains that users are not allowed to communicate with. By default, users can communicate with any domain that does not appear on the blocked list. However, administrators can modify this default setting and limit communication to domains that are on the allowed domains list. + > [!IMPORTANT] > The `AllowFederatedUsers` property must be set to `True` for the `AllowedDomains` list to take effect. If `AllowFederatedUsers` is set to `False`, users will be blocked from communicating with all external domains regardless of the values in `AllowedDomains` or any `ExternalAccessPolicy` instance. Skype for Business Online does not allow you to directly modify the allowed list or the blocked list; for example, you cannot use a command similar to this one, which passes a string value representing a domain name to the blocked domains list: `Set-CsTenantFederationConfiguration -BlockedDomains "fabrikam.com"` Instead, you must create a domain object by using the New-CsEdgeDomainPattern cmdlet, store that domain object in a variable (in this example, $x), then pass the variable name to the blocked domains list: @@ -41922,6 +45780,7 @@ Set-CsTenantFederationConfiguration -AllowedDomains $newAllowList Domain + > Applicable: Microsoft Teams Fully qualified domain name of the domain to be added to the allow list. For example: `-Domain "fabrikam.com"` Note that you cannot use wildcards when specifying a domain name. @@ -41939,6 +45798,7 @@ Set-CsTenantFederationConfiguration -AllowedDomains $newAllowList Domain + > Applicable: Microsoft Teams Fully qualified domain name of the domain to be added to the allow list. For example: `-Domain "fabrikam.com"` Note that you cannot use wildcards when specifying a domain name. @@ -41983,18 +45843,36 @@ Set-CsTenantFederationConfiguration -AllowedDomains $newAllowList Set-CsTenantFederationConfiguration -BlockedDomains $x - Example 1 demonstrates how you can assign a single domain to the blocked domains list for a specified tenant. To do this, the first command in the example creates a domain object for the domain fabrikam.com; this is done by calling the New-CsEdgeDomainPattern cmdlet and by saving the resulting domain object in a variable named $x. The second command then uses the Set-CsTenantFederationConfiguration cmdlet and the BlockedDomains parameter to configure fabrikam.com as the only domain blocked by the current tenant. + Example 1 demonstrates how you can assign a single domain to the blocked domains list for a specified tenant. To do this, the first command in the example creates a domain object for the domain fabrikam.com; this is done by calling the `New-CsEdgeDomainPattern` cmdlet and by saving the resulting domain object in a variable named $x. The second command then uses the `Set-CsTenantFederationConfiguration` cmdlet and the `BlockedDomains` parameter to configure fabrikam.com as the only domain blocked by the current tenant. Please note that `AllowFederatedUsers` should be `True` for this to work. + + + + -------------------------- Example 2 -------------------------- + $x = New-CsEdgeDomainPattern -Domain "fabrikam.com" + +Set-CsTenantFederationConfiguration -AllowedDomains $x + + Example 2 demonstrates how you can assign a single domain to the allowed domains list for a specified tenant. To do this, the first command in the example creates a domain object for the domain fabrikam.com; this is done by calling the `New-CsEdgeDomainPattern` cmdlet and by saving the resulting domain object in a variable named $x. The second command then uses the `Set-CsTenantFederationConfiguration` cmdlet and the `AllowedDomains` parameter to configure fabrikam.com as the only domain allowed by the current tenant. Please note that `AllowFederatedUsers` should be `True` for this to work. + + + + -------------------------- Example 3 -------------------------- + $x = New-CsEdgeDomainPattern -Domain "" + +Set-CsTenantFederationConfiguration -AllowedDomains $x + + Example 3 demonstrates how you can block a specified tenant from any external federation. To do this, the first command in the example creates an empty domain object; this is done by calling the `New-CsEdgeDomainPattern` cmdlet and by saving the resulting domain object in a variable named $x. The second command then uses the `Set-CsTenantFederationConfiguration` cmdlet and the `AllowedDomains` parameter to configure the current tenant with a Block-All setting. Please note that `AllowFederatedUsers` should be `True` in case you want to allow specific users to be able to communicate externally via `ExternalAccessPolicy` instances. Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csedgedomainpattern + https://learn.microsoft.com/powershell/module/microsoftteams/new-csedgedomainpattern Set-CsTenantFederationConfiguration - https://learn.microsoft.com/powershell/module/teams/set-cstenantfederationconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantfederationconfiguration @@ -42012,11 +45890,22 @@ Set-CsTenantFederationConfiguration -BlockedDomains $x This cmdlet is used to assign a policy to a Microsoft 365 group, a security group, or a distribution list. When creating a group policy assignment, you must specify a rank, which indicates the precedence of that assignment relative to any other group assignments for the same policy type that may exist. The assignment will be applied to users in the group for any user that does not have a direct policy assignment, provided the user does not have any higher-ranking assignments from other groups for the same policy type. The group policy assignment rank is set at the time a policy is assigned to a group and it is relative to other group policy assignments of the same policy type. For example, if there are two groups, each assigned a Teams Meeting policy, then one of the group assignments will be rank 1 while the other will be rank 2. It's helpful to think of rank as determining the position of each policy assignment in an ordered list, from highest rank to lowest rank. In fact, rank can be specified as any number, but these are converted into sequential values 1, 2, 3, etc. with 1 being the highest rank. When assigning a policy to a group, set the rank to be the position in the list where you want the new group policy assignment to be. If a rank is not specified, the policy assignment will be given the lowest rank, corresponding to the end of the list. Assignments applied directly to a user will be treated like rank 0, having precedence over all assignments applied via groups. Once a group policy assignment is created, the policy assignment will be propagated to the members of the group, including users that are added to the group after the assignment was created. Propagation time of the policy assignments to members of the group varies based on the number of users in the group. Propagation time for subsequent group membership changes also varies based on the number of users being added or removed from the group. For large groups, propagation to all members may take 24 hours or more. When using group policy assignment, the recommended maximum group membership size is 50,000 users per group. - > [!NOTE] > - A given policy type can be assigned to at most 64 groups, across policy instances for that type. > - Policy assignments are only propagated to users that are direct members of the group; the assignments are not propagated to members of nested groups. > - Direct user assignments of policy take precedence over any group policy assignments for a given policy type. Group PolicyPolicy assignments only take effect to a user if that user does not have a direct policy assignment. > - Get-CsOnlineUser only shows direct assignments of policy. It does not show the effect of group policy assignments. To view a specific user's effective policy, use `Get-CsUserPolicyAssignment`. This cmdlet shows whether the effective policy is from a direct assignment or from a group, as well as the ranked order of each group policy assignment in the case where a user is a member of more than 1 group with a group policy assignment of the same policy type. For example, to view all TeamsMeetingPolicy assignments for a given user, $user, run the following powershell cmdlet: `Get-CsUserPolicyAssignment -Identity $user -PolicyType TeamsMeetingPolicy|select -ExpandProperty PolicySource`. For details, see Get-CsUserPolicyAssignment (https://learn.microsoft.com/powershell/module/teams/get-csuserpolicyassignment). > - Group policy assignment is currently not available in the Microsoft 365 DoD deployment. + > [!NOTE] > - A given policy type can be assigned to at most 64 groups, across policy instances for that type. > - Policy assignments are only propagated to users that are direct members of the group; the assignments are not propagated to members of nested groups. > - Direct user assignments of policy take precedence over any group policy assignments for a given policy type. Group PolicyPolicy assignments only take effect to a user if that user does not have a direct policy assignment. > - Get-CsOnlineUser only shows direct assignments of policy. It does not show the effect of group policy assignments. To view a specific user's effective policy, use `Get-CsUserPolicyAssignment`. This cmdlet shows whether the effective policy is from a direct assignment or from a group, as well as the ranked order of each group policy assignment in the case where a user is a member of more than 1 group with a group policy assignment of the same policy type. For example, to view all TeamsMeetingPolicy assignments for a given user, $user, run the following powershell cmdlet: `Get-CsUserPolicyAssignment -Identity $user -PolicyType TeamsMeetingPolicy|select -ExpandProperty PolicySource`. For details, see Get-CsUserPolicyAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicyassignment). > - Group policy assignment is currently not available in the Microsoft 365 DoD deployment. New-CsGroupPolicyAssignment + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + GroupId @@ -42029,17 +45918,16 @@ Set-CsTenantFederationConfiguration -BlockedDomains $x None - - PolicyType + + PassThru - The type of policy to be assigned. + Returns true when the command succeeds - String - String + SwitchParameter - None + False PolicyName @@ -42053,10 +45941,10 @@ Set-CsTenantFederationConfiguration -BlockedDomains $x None - - Rank + + PolicyType - The rank of the policy assignment, relative to other group policy assignments for the same policy type. + The type of policy to be assigned. String @@ -42066,15 +45954,16 @@ Set-CsTenantFederationConfiguration -BlockedDomains $x None - PassThru + Rank - Returns true when the command succeeds + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + String - SwitchParameter + String - False + None WhatIf @@ -42087,20 +45976,21 @@ Set-CsTenantFederationConfiguration -BlockedDomains $x False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + GroupId @@ -42113,17 +46003,17 @@ Set-CsTenantFederationConfiguration -BlockedDomains $x None - - PolicyType + + PassThru - The type of policy to be assigned. + Returns true when the command succeeds - String + SwitchParameter - String + SwitchParameter - None + False PolicyName @@ -42137,10 +46027,10 @@ Set-CsTenantFederationConfiguration -BlockedDomains $x None - - Rank + + PolicyType - The rank of the policy assignment, relative to other group policy assignments for the same policy type. + The type of policy to be assigned. String @@ -42150,16 +46040,16 @@ Set-CsTenantFederationConfiguration -BlockedDomains $x None - PassThru + Rank - Returns true when the command succeeds + The rank of the policy assignment, relative to other group policy assignments for the same policy type. - SwitchParameter + String - SwitchParameter + String - False + None WhatIf @@ -42173,18 +46063,6 @@ Set-CsTenantFederationConfiguration -BlockedDomains $x False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - @@ -42247,19 +46125,19 @@ e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/201 Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csgrouppolicyassignment + https://learn.microsoft.com/powershell/module/microsoftteams/new-csgrouppolicyassignment Get-CsUserPolicyAssignment - https://learn.microsoft.com/powershell/module/teams/get-csuserpolicyassignment + https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicyassignment Get-CsGroupPolicyAssignment - https://learn.microsoft.com/powershell/module/teams/get-csgrouppolicyassignment + https://learn.microsoft.com/powershell/module/microsoftteams/get-csgrouppolicyassignment Remove-CsGroupPolicyAssignment - https://learn.microsoft.com/powershell/module/teams/remove-csgrouppolicyassignment + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csgrouppolicyassignment @@ -42270,89 +46148,351 @@ e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/201 CsHybridTelephoneNumber This cmdlet adds a hybrid telephone number to the tenant. - > [!IMPORTANT] > This cmdlet is being deprecated. Use the New-CsOnlineDirectRoutingTelephoneNumberUploadOrder cmdlet to add a telephone number for Audio Conferencing with Direct Routing in Microsoft 365 GCC High and DoD clouds. Detailed instructions on how to use the new cmdlet can be found at New-CsOnlineDirectRoutingTelephoneNumberUploadOrder (/powershell/module/teams/new-csonlinedirectroutingtelephonenumberuploadorder?view=teams-ps) This cmdlet adds a hybrid telephone number to the tenant that can be used for Audio Conferencing with Direct Routing for GCC High and DoD clouds. + > [!IMPORTANT] > This cmdlet is being deprecated. Use the New-CsOnlineDirectRoutingTelephoneNumberUploadOrder cmdlet to add a telephone number for Audio Conferencing with Direct Routing in Microsoft 365 GCC High and DoD clouds. Detailed instructions on how to use the new cmdlet can be found at New-CsOnlineDirectRoutingTelephoneNumberUploadOrder (New-CsOnlineDirectRoutingTelephoneNumberUploadOrder.md). New-CsHybridTelephoneNumber - - TelephoneNumber + + Break - The telephone number to add. The number should be specified with a prefixed "+". The phone number can't have "tel:" prefixed. + {{ Fill Break Description }} - System.String - System.String + System.Management.Automation.SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + HttpPipelineAppend + + {{ Fill HttpPipelineAppend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] None - Force + HttpPipelinePrepend - Suppresses the display of any non-fatal error message that might arise when running the command. + {{ Fill HttpPipelinePrepend Description }} + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] - SwitchParameter + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] - False + None InputObject The identity parameter. - IConfigApiBasedCmdletsIdentity + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity - IConfigApiBasedCmdletsIdentity + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity None + + Proxy + + {{ Fill Proxy Description }} + + System.Uri + + System.Uri + + + None + + + ProxyCredential + + {{ Fill ProxyCredential Description }} + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + ProxyUseDefaultCredentials + + {{ Fill ProxyUseDefaultCredentials Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + New-CsHybridTelephoneNumber + + Break + + {{ Fill Break Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + HttpPipelineAppend + + {{ Fill HttpPipelineAppend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Proxy + + {{ Fill Proxy Description }} + + System.Uri + + System.Uri + + + None + + + ProxyCredential + + {{ Fill ProxyCredential Description }} + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + ProxyUseDefaultCredentials + + {{ Fill ProxyUseDefaultCredentials Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + TelephoneNumber + + > Applicable: Microsoft Teams + The telephone number to add. The number should be specified with a prefixed "+". The phone number can't have "tel:" prefixed. + + System.String + + System.String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + - - TelephoneNumber + + Break + + {{ Fill Break Description }} + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + HttpPipelineAppend + + {{ Fill HttpPipelineAppend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + HttpPipelinePrepend - The telephone number to add. The number should be specified with a prefixed "+". The phone number can't have "tel:" prefixed. + {{ Fill HttpPipelinePrepend Description }} - System.String + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] - System.String + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + InputObject + + The identity parameter. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity None - Force + Proxy - Suppresses the display of any non-fatal error message that might arise when running the command. + {{ Fill Proxy Description }} - SwitchParameter + System.Uri - SwitchParameter + System.Uri + + + None + + + ProxyCredential + + {{ Fill ProxyCredential Description }} + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + ProxyUseDefaultCredentials + + {{ Fill ProxyUseDefaultCredentials Description }} + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter False - - InputObject + + TelephoneNumber - The identity parameter. + > Applicable: Microsoft Teams + The telephone number to add. The number should be specified with a prefixed "+". The phone number can't have "tel:" prefixed. - IConfigApiBasedCmdletsIdentity + System.String - IConfigApiBasedCmdletsIdentity + System.String None + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + @@ -42391,15 +46531,15 @@ e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/201 Online Version: - https://learn.microsoft.com/powershell/module/teams/new-cshybridtelephonenumber + https://learn.microsoft.com/powershell/module/microsoftteams/new-cshybridtelephonenumber Remove-CsHybridTelephoneNumber - https://learn.microsoft.com/powershell/module/teams/remove-cshybridtelephonenumber + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cshybridtelephonenumber Get-CsHybridTelephoneNumber - https://learn.microsoft.com/powershell/module/teams/get-cshybridtelephonenumber + https://learn.microsoft.com/powershell/module/microsoftteams/get-cshybridtelephonenumber @@ -42430,6 +46570,17 @@ e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/201 None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + Description @@ -42477,6 +46628,9 @@ e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/201 False + + + New-CsInboundBlockedNumberPattern Confirm @@ -42488,9 +46642,6 @@ e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/201 False - - - New-CsInboundBlockedNumberPattern Description @@ -42550,20 +46701,21 @@ e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/201 False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + Description @@ -42636,18 +46788,6 @@ e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/201 False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - @@ -42686,19 +46826,19 @@ e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/201 Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csinboundblockednumberpattern + https://learn.microsoft.com/powershell/module/microsoftteams/new-csinboundblockednumberpattern Get-CsInboundBlockedNumberPattern - https://learn.microsoft.com/powershell/module/teams/get-csinboundblockednumberpattern + https://learn.microsoft.com/powershell/module/microsoftteams/get-csinboundblockednumberpattern Set-CsInboundBlockedNumberPattern - https://learn.microsoft.com/powershell/module/teams/set-csinboundblockednumberpattern + https://learn.microsoft.com/powershell/module/microsoftteams/set-csinboundblockednumberpattern Remove-CsInboundBlockedNumberPattern - https://learn.microsoft.com/powershell/module/teams/remove-csinboundblockednumberpattern + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csinboundblockednumberpattern @@ -42711,7 +46851,9 @@ e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/201 This cmdlet lets you configure a new number pattern that is exempt from tenant call blocking. - + + The `New-CsInboundExemptNumberPattern` cmdlet creates a new inbound exempt number pattern that allows specific phone numbers to bypass tenant call blocking. This is useful for ensuring that important numbers, such as emergency services or critical business contacts, are not inadvertently blocked by the tenant's call blocking policies. + New-CsInboundExemptNumberPattern @@ -42727,6 +46869,17 @@ e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/201 None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + Description @@ -42786,20 +46939,21 @@ e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/201 False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + Description @@ -42872,18 +47026,6 @@ e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/201 False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - @@ -42904,60 +47046,363 @@ e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/201 Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csinboundexemptnumberpattern + https://learn.microsoft.com/powershell/module/microsoftteams/new-csinboundexemptnumberpattern Get-CsInboundExemptNumberPattern - https://learn.microsoft.com/powershell/module/teams/get-csinboundexemptnumberpattern + https://learn.microsoft.com/powershell/module/microsoftteams/get-csinboundexemptnumberpattern Set-CsInboundExemptNumberPattern - https://learn.microsoft.com/powershell/module/teams/set-csinboundexemptnumberpattern + https://learn.microsoft.com/powershell/module/microsoftteams/set-csinboundexemptnumberpattern Remove-CsInboundExemptNumberPattern - https://learn.microsoft.com/powershell/module/teams/remove-csinboundexemptnumberpattern + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csinboundexemptnumberpattern Test-CsInboundBlockedNumberPattern - https://learn.microsoft.com/powershell/module/teams/test-csinboundblockednumberpattern + https://learn.microsoft.com/powershell/module/microsoftteams/test-csinboundblockednumberpattern Get-CsTenantBlockedCallingNumbers - https://learn.microsoft.com/powershell/module/teams/get-cstenantblockedcallingnumbers + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantblockedcallingnumbers - New-CsOnlineApplicationInstance + New-CsMainlineAttendantAppointmentBookingFlow New - CsOnlineApplicationInstance + CsMainlineAttendantAppointmentBookingFlow - Creates an application instance in Microsoft Entra ID. + Creates new Mainline Attendant appointment booking flow - This cmdlet is used to create an application instance in Microsoft Entra ID. This same cmdlet is also run when creating a new resource account using Teams Admin Center. + The New-CsMainlineAttendantAppointmentBookingFlow cmdlet creates a new appointment booking connection that can be used with Mainline Attendant + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for these features. General Availability for this functionality has not been determined at this time. - New-CsOnlineApplicationInstance + New-CsMainlineAttendantAppointmentBookingFlow - UserPrincipalName + Name - The user principal name. It will be used as the SIP URI too. The user principal name should have an online domain. + The name of the appointment booking flow - System.String + String - System.String + String + + + None + + + Description + + The description for the appointment booking flow + Limit: 500 characters. + + String + + String + + + None + + + CallerAuthenticationMethod + + The method by which the caller is authenticated + PARAVALUES: Sms | Email | VerificationLink | Voiceprint | UserDetails + + String + + String + + + None + + + ApiAuthenticationType + + The method of authentication used by the API + PARAVALUES: Basic | ApiKey | BearerTokenStatic | BearerTokenDynamic + + String + + String + + + None + + + ApiDefinitions + + The parameters used by the API + + String + + String + + + None + + + + + + Name + + The name of the appointment booking flow + + String + + String + + + None + + + Description + + The description for the appointment booking flow + Limit: 500 characters. + + String + + String + + + None + + + CallerAuthenticationMethod + + The method by which the caller is authenticated + PARAVALUES: Sms | Email | VerificationLink | Voiceprint | UserDetails + + String + + String + + + None + + + ApiAuthenticationType + + The method of authentication used by the API + PARAVALUES: Basic | ApiKey | BearerTokenStatic | BearerTokenDynamic + + String + + String + + + None + + + ApiDefinitions + + The parameters used by the API + + String + + String + + + None + + + + + + + Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue + + + + + + + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csmainlineattendantappointmentbookingflow + + + + + + New-CsMainlineAttendantQuestionAnswerFlow + New + CsMainlineAttendantQuestionAnswerFlow + + Creates new Mainline Attendant question and answer (FAQ) flow + + + + The New-CsMainlineAttendantQuestionAnswerFlow cmdlet creates a question and answer connection that can be used with Mainline Attendant + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for these features. General Availability for this functionality has not been determined at this time. + + + + New-CsMainlineAttendantQuestionAnswerFlow + + Name + + The name of the question and answer flow + + String + + String + + + None + + + Description + + The description for the question and answer flow + + String + + String + + + None + + + ApiAuthenticationType + + The method of authentication used by the API + PARAVALUES: Basic | ApiKey | BearerTokenStatic | BearerTokenDynamic + + String + + String + + + None + + + KnowledgeBase + + The knowledge base definition + The parameters used by the API + + String + + String None + + + + + Name + + The name of the question and answer flow + + String + + String + + + None + + + Description + + The description for the question and answer flow + + String + + String + + + None + + + ApiAuthenticationType + + The method of authentication used by the API + PARAVALUES: Basic | ApiKey | BearerTokenStatic | BearerTokenDynamic + + String + + String + + + None + + + KnowledgeBase + + The knowledge base definition + The parameters used by the API + + String + + String + + + None + + + + + + + Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue + + + + + + + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csmainlineattendantquestionanswerflow + + + + + + New-CsOnlineApplicationInstance + New + CsOnlineApplicationInstance + + Creates an application instance in Microsoft Entra ID. + + + + This cmdlet is used to create an application instance in Microsoft Entra ID. This same cmdlet is also run when creating a new resource account using Teams Admin Center. + + + + New-CsOnlineApplicationInstance ApplicationId + > Applicable: Microsoft Teams The application ID. The Microsoft application Auto Attendant has the ApplicationId ce933385-9390-45d1-9512-c8d228074e07 and the Microsoft application Call Queue has the ApplicationId 11cd3e2e-fccb-42ad-ad00-878b93575e07. Third-party applications available in a tenant will use other ApplicationId's. System.Guid @@ -42967,9 +47412,22 @@ e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/201 None + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + DisplayName + > Applicable: Microsoft Teams The display name. System.String @@ -42982,6 +47440,7 @@ e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/201 Force + > Applicable: Microsoft Teams This switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If it isn't provided in the command, you're prompted for administrative input if required. @@ -42990,21 +47449,24 @@ e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/201 False - - WhatIf + + UserPrincipalName - Shows what would happen if the cmdlet runs. The cmdlet is not run. + > Applicable: Microsoft Teams + The user principal name. It will be used as the SIP URI too. The user principal name should have an online domain. + System.String - SwitchParameter + System.String - False + None - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -43015,33 +47477,36 @@ e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/201 - - UserPrincipalName + + ApplicationId - The user principal name. It will be used as the SIP URI too. The user principal name should have an online domain. + > Applicable: Microsoft Teams + The application ID. The Microsoft application Auto Attendant has the ApplicationId ce933385-9390-45d1-9512-c8d228074e07 and the Microsoft application Call Queue has the ApplicationId 11cd3e2e-fccb-42ad-ad00-878b93575e07. Third-party applications available in a tenant will use other ApplicationId's. - System.String + System.Guid - System.String + System.Guid None - - ApplicationId + + Confirm - The application ID. The Microsoft application Auto Attendant has the ApplicationId ce933385-9390-45d1-9512-c8d228074e07 and the Microsoft application Call Queue has the ApplicationId 11cd3e2e-fccb-42ad-ad00-878b93575e07. Third-party applications available in a tenant will use other ApplicationId's. + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. - System.Guid + SwitchParameter - System.Guid + SwitchParameter - None + False DisplayName + > Applicable: Microsoft Teams The display name. System.String @@ -43054,6 +47519,7 @@ e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/201 Force + > Applicable: Microsoft Teams This switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If it isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -43063,22 +47529,24 @@ e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/201 False - - WhatIf + + UserPrincipalName - Shows what would happen if the cmdlet runs. The cmdlet is not run. + > Applicable: Microsoft Teams + The user principal name. It will be used as the SIP URI too. The user principal name should have an online domain. - SwitchParameter + System.String - SwitchParameter + System.String - False + None - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -43107,23 +47575,23 @@ e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/201 Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csonlineapplicationinstance + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineapplicationinstance Get-CsOnlineApplicationInstance - https://learn.microsoft.com/powershell/module/teams/get-csonlineapplicationinstance + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineapplicationinstance Set-CsOnlineApplicationInstance - https://learn.microsoft.com/powershell/module/teams/set-csonlineapplicationinstance + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineapplicationinstance Find-CsOnlineApplicationInstance - https://learn.microsoft.com/powershell/module/teams/find-csonlineapplicationinstance + https://learn.microsoft.com/powershell/module/microsoftteams/find-csonlineapplicationinstance Sync-CsOnlineApplicationInstance - https://learn.microsoft.com/powershell/module/teams/sync-csonlineapplicationinstance + https://learn.microsoft.com/powershell/module/microsoftteams/sync-csonlineapplicationinstance @@ -43143,21 +47611,25 @@ e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/201 New-CsOnlineApplicationInstanceAssociation - - Identities + + CallPriority - The Identities parameter is the identities of application instances to be associated with the provided configuration ID. + > Applicable: Microsoft Teams + The call priority assigned to calls arriving on this application instance if a priority has not already been assigned. + PARAMVALUE: 1 | 2 | 3 | 4 | 5 + 1 = Very High 2 = High 3 = Normal / Default 4 = Low 5 = Very Low - System.String[] + Int16 - System.String[] + Int16 - None + 3 ConfigurationId + > Applicable: Microsoft Teams The ConfigurationId parameter is the identity of the configuration that would be associated with the provided application instances. System.string @@ -43170,6 +47642,7 @@ e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/201 ConfigurationType + > Applicable: Microsoft Teams The ConfigurationType parameter denotes the type of the configuration that would be associated with the provided application instances. It can be one of two values: - AutoAttendant @@ -43182,24 +47655,24 @@ e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/201 None - - CallPriority --- Private Preview customers only + + Identities - The call priority assigned to calls arriving on this application instance if a priority has not already been assigned. - PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High 2 = High 3 = Normal / Default 4 = Low 5 = Very Low + > Applicable: Microsoft Teams + The Identities parameter is the identities of application instances to be associated with the provided configuration ID. - Int16 + System.String[] - Int16 + System.String[] - 3 + None Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -43211,21 +47684,25 @@ e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/201 - - Identities + + CallPriority - The Identities parameter is the identities of application instances to be associated with the provided configuration ID. + > Applicable: Microsoft Teams + The call priority assigned to calls arriving on this application instance if a priority has not already been assigned. + PARAMVALUE: 1 | 2 | 3 | 4 | 5 + 1 = Very High 2 = High 3 = Normal / Default 4 = Low 5 = Very Low - System.String[] + Int16 - System.String[] + Int16 - None + 3 ConfigurationId + > Applicable: Microsoft Teams The ConfigurationId parameter is the identity of the configuration that would be associated with the provided application instances. System.string @@ -43238,6 +47715,7 @@ e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/201 ConfigurationType + > Applicable: Microsoft Teams The ConfigurationType parameter denotes the type of the configuration that would be associated with the provided application instances. It can be one of two values: - AutoAttendant @@ -43250,24 +47728,24 @@ e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/201 None - - CallPriority --- Private Preview customers only + + Identities - The call priority assigned to calls arriving on this application instance if a priority has not already been assigned. - PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High 2 = High 3 = Normal / Default 4 = Low 5 = Very Low + > Applicable: Microsoft Teams + The Identities parameter is the identities of application instances to be associated with the provided configuration ID. - Int16 + System.String[] - Int16 + System.String[] - 3 + None Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -43389,19 +47867,19 @@ New-CsOnlineApplicationInstanceAssociation -Identities $applicationInstancesIden Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csonlineapplicationinstanceassociation + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineapplicationinstanceassociation Get-CsOnlineApplicationInstanceAssociation - https://learn.microsoft.com/powershell/module/teams/get-csonlineapplicationinstanceassociation + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineapplicationinstanceassociation Get-CsOnlineApplicationInstanceAssociationStatus - https://learn.microsoft.com/powershell/module/teams/get-csonlineapplicationinstanceassociationstatus + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineapplicationinstanceassociationstatus Remove-CsOnlineApplicationInstanceAssociation - https://learn.microsoft.com/powershell/module/teams/remove-csonlineapplicationinstanceassociation + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineapplicationinstanceassociation @@ -43473,8 +47951,7 @@ New-CsOnlineApplicationInstanceAssociation -Identities $applicationInstancesIden OnlinePstnUsages - A list of online PSTN usages (such as Local or Long Distance) that can be applied to this online audio routing policy. The online PSTN usages must be existing usages (PSTN usages can be retrieved by calling the Get-CsOnlinePstnUsage cmdlet). - + A list of online PSTN usages (such as Local or Long Distance) that can be applied to this online audio routing policy. The online PSTN usages must be existing usages (PSTN usages can be retrieved by calling the Get-CsOnlinePstnUsage cmdlet). Object @@ -43560,8 +48037,7 @@ New-CsOnlineApplicationInstanceAssociation -Identities $applicationInstancesIden OnlinePstnUsages - A list of online PSTN usages (such as Local or Long Distance) that can be applied to this online audio routing policy. The online PSTN usages must be existing usages (PSTN usages can be retrieved by calling the Get-CsOnlinePstnUsage cmdlet). - + A list of online PSTN usages (such as Local or Long Distance) that can be applied to this online audio routing policy. The online PSTN usages must be existing usages (PSTN usages can be retrieved by calling the Get-CsOnlinePstnUsage cmdlet). Object @@ -43632,7 +48108,7 @@ New-CsOnlineApplicationInstanceAssociation -Identities $applicationInstancesIden Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csonlineaudioconferencingroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineaudioconferencingroutingpolicy Remove-CsOnlineAudioConferencingRoutingPolicy @@ -43671,10 +48147,12 @@ New-CsOnlineApplicationInstanceAssociation -Identities $applicationInstancesIden New-CsOnlineDateTimeRange - - Start + + End - The Start parameter represents the start bound of the date-time range. + > Applicable: Microsoft Teams + The End parameter represents the end bound of the date-time range. + If not present, the end bound of the date time range is set to 00:00 of the day after the start date. System.String @@ -43683,11 +48161,11 @@ New-CsOnlineApplicationInstanceAssociation -Identities $applicationInstancesIden None - - End + + Start - The End parameter represents the end bound of the date-time range. - If not present, the end bound of the date time range is set to 00:00 of the day after the start date. + > Applicable: Microsoft Teams + The Start parameter represents the start bound of the date-time range. System.String @@ -43699,7 +48177,8 @@ New-CsOnlineApplicationInstanceAssociation -Identities $applicationInstancesIden Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -43711,10 +48190,12 @@ New-CsOnlineApplicationInstanceAssociation -Identities $applicationInstancesIden - - Start + + End - The Start parameter represents the start bound of the date-time range. + > Applicable: Microsoft Teams + The End parameter represents the end bound of the date-time range. + If not present, the end bound of the date time range is set to 00:00 of the day after the start date. System.String @@ -43723,11 +48204,11 @@ New-CsOnlineApplicationInstanceAssociation -Identities $applicationInstancesIden None - - End + + Start - The End parameter represents the end bound of the date-time range. - If not present, the end bound of the date time range is set to 00:00 of the day after the start date. + > Applicable: Microsoft Teams + The Start parameter represents the start bound of the date-time range. System.String @@ -43739,7 +48220,8 @@ New-CsOnlineApplicationInstanceAssociation -Identities $applicationInstancesIden Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -43793,11 +48275,11 @@ New-CsOnlineApplicationInstanceAssociation -Identities $applicationInstancesIden Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csonlinedatetimerange + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinedatetimerange New-CsOnlineSchedule - https://learn.microsoft.com/powershell/module/teams/new-csonlineschedule + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineschedule @@ -43807,20 +48289,20 @@ New-CsOnlineApplicationInstanceAssociation -Identities $applicationInstancesIden New CsOnlineDirectRoutingTelephoneNumberUploadOrder - This cmdlet creates a request to upload Direct Routing telephone numbers to Microsoft Teams telephone number management inventory. The output of the cmdlet is the "orderId" of the asynchronous Direct Routing Number creation operation. A maximum of 10,000 phone numbers can be uploaded at a time. If more than 10,000 numbers need to be uploaded, the requests should be divided into multiple increments of up to 10,000 numbers. + This cmdlet creates a request to upload Direct Routing telephone numbers to Microsoft Teams telephone number management inventory. - This cmdlet uploads Direct Routing telephone numbers to Microsoft Teams telephone number management inventory. Once uploaded the phone numbers will be visible in Teams PowerShell as acquired Direct Routing phone numbers. + This cmdlet uploads Direct Routing telephone numbers to Microsoft Teams telephone number management inventory. Once uploaded the phone numbers will be visible in Teams PowerShell as acquired Direct Routing phone numbers. The output of the cmdlet is the "orderId" of the asynchronous Direct Routing Number creation operation. A maximum of 10,000 phone numbers can be uploaded at a time. If more than 10,000 numbers need to be uploaded, the requests should be divided into multiple increments of up to 10,000 numbers. The cmdlet is an asynchronous operation and will return an OrderId as output. You can use the Get-CsOnlineTelephoneNumberOrder (./get-csonlinetelephonenumberorder.md)cmdlet to check the status of the OrderId, including any error or warning messages that might result from the operation: `Get-CsOnlineTelephoneNumberOrder -OrderType DirectRoutingNumberCreation -OrderId "orderId"`. New-CsOnlineDirectRoutingTelephoneNumberUploadOrder - TelephoneNumber + EndingNumber - This is the Direct Routing telephone numbers you wish to upload to Microsoft Teams telephone number management inventory. It is comma delimited list of one or more Direct Routing telephone numbers. + This is the ending number of a range of Direct Routing telephone number you wish to upload to Microsoft Teams telephone number management inventory. String @@ -43830,21 +48312,21 @@ New-CsOnlineApplicationInstanceAssociation -Identities $applicationInstancesIden None - StartingNumber + FileContent - This is the starting number of a range of Direct Routing telephone number you wish to upload to Microsoft Teams telephone number management inventory. + This is the content of a .csv file that includes the Direct Routing telephone numbers to be uploaded to the Microsoft Teams telephone number management inventory. This parameter can be used to upload up to 10,000 numbers at a time. - String + Byte[] - String + Byte[] None - EndingNumber + StartingNumber - This is the ending number of a range of Direct Routing telephone number you wish to upload to Microsoft Teams telephone number management inventory. + This is the starting number of a range of Direct Routing telephone number you wish to upload to Microsoft Teams telephone number management inventory. String @@ -43854,13 +48336,13 @@ New-CsOnlineApplicationInstanceAssociation -Identities $applicationInstancesIden None - FileContent + TelephoneNumber - This is the content of a .csv file that includes the Direct Routing telephone numbers to be uploaded to the Microsoft Teams telephone number management inventory. This parameter can be used to upload up to 10,000 numbers at a time. + This is the Direct Routing telephone numbers you wish to upload to Microsoft Teams telephone number management inventory. It is comma delimited list of one or more Direct Routing telephone numbers. - Byte[] + String - Byte[] + String None @@ -43869,9 +48351,9 @@ New-CsOnlineApplicationInstanceAssociation -Identities $applicationInstancesIden - TelephoneNumber + EndingNumber - This is the Direct Routing telephone numbers you wish to upload to Microsoft Teams telephone number management inventory. It is comma delimited list of one or more Direct Routing telephone numbers. + This is the ending number of a range of Direct Routing telephone number you wish to upload to Microsoft Teams telephone number management inventory. String @@ -43881,21 +48363,21 @@ New-CsOnlineApplicationInstanceAssociation -Identities $applicationInstancesIden None - StartingNumber + FileContent - This is the starting number of a range of Direct Routing telephone number you wish to upload to Microsoft Teams telephone number management inventory. + This is the content of a .csv file that includes the Direct Routing telephone numbers to be uploaded to the Microsoft Teams telephone number management inventory. This parameter can be used to upload up to 10,000 numbers at a time. - String + Byte[] - String + Byte[] None - EndingNumber + StartingNumber - This is the ending number of a range of Direct Routing telephone number you wish to upload to Microsoft Teams telephone number management inventory. + This is the starting number of a range of Direct Routing telephone number you wish to upload to Microsoft Teams telephone number management inventory. String @@ -43905,13 +48387,13 @@ New-CsOnlineApplicationInstanceAssociation -Identities $applicationInstancesIden None - FileContent + TelephoneNumber - This is the content of a .csv file that includes the Direct Routing telephone numbers to be uploaded to the Microsoft Teams telephone number management inventory. This parameter can be used to upload up to 10,000 numbers at a time. + This is the Direct Routing telephone numbers you wish to upload to Microsoft Teams telephone number management inventory. It is comma delimited list of one or more Direct Routing telephone numbers. - Byte[] + String - Byte[] + String None @@ -43981,7 +48463,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csonlinedirectroutingtelephonenumberuploadorder + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinedirectroutingtelephonenumberuploadorder Get-CsOnlineTelephoneNumberOrder @@ -44024,10 +48506,24 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 New-CsOnlineLisCivicAddress - - CompanyName + + City - Specifies the name of your organization. + > Applicable: Microsoft Teams + Specifies the city of the new civic address. + + String + + String + + + None + + + CityAlias + + > Applicable: Microsoft Teams + Specifies the city alias of the new civic address. String @@ -44037,9 +48533,10 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - CountryOrRegion + CompanyName - Specifies the country or region of the new civic address. Needs to be a valid country code as contained in the ISO 3166-1 alpha-2 specification. + > Applicable: Microsoft Teams + Specifies the name of your organization. String @@ -44049,9 +48546,10 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - City + CompanyTaxId - Specifies the city of the new civic address. + > Applicable: Microsoft Teams + Specifies the company tax identifier of the new civic address. String @@ -44061,9 +48559,9 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - CityAlias + Confidence - Specifies the city alias of the new civic address. + This parameter is reserved for internal Microsoft use. String @@ -44072,10 +48570,23 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - - CompanyTaxId + + Confirm - Specifies the company tax identifier of the new civic address. + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing, and requires confirmation to proceed. + + + SwitchParameter + + + False + + + CountryOrRegion + + > Applicable: Microsoft Teams + Specifies the country or region of the new civic address. Needs to be a valid country code as contained in the ISO 3166-1 alpha-2 specification. String @@ -44087,6 +48598,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 Description + > Applicable: Microsoft Teams Specifies an administrator defined description of the new civic address. String @@ -44099,6 +48611,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 Elin + > Applicable: Microsoft Teams Specifies the Emergency Location Identification Number. This is used in Direct Routing EGW scenarios. String @@ -44111,6 +48624,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -44122,6 +48636,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 HouseNumber + > Applicable: Microsoft Teams Specifies the numeric portion of the new civic address. String @@ -44134,6 +48649,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 HouseNumberSuffix + > Applicable: Microsoft Teams Specifies the numeric suffix of the new civic address. For example, if the property was multiplexed, the HouseNumberSuffix parameter would be the multiplex specifier: "425A Smith Avenue", or "425B Smith Avenue". String @@ -44143,9 +48659,22 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None + + IsAzureMapValidationRequired + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + Latitude + > Applicable: Microsoft Teams Specifies the angular distance of a place north or south of the earth's equator using the decimal degrees format. Required for all countries except Australia and Japan where it's optional. String @@ -44158,6 +48687,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 Longitude + > Applicable: Microsoft Teams Specifies the angular distance of a place east or west of the meridian at Greenwich, England, using the decimal degrees format. Required for all countries except Australia and Japan where it's optional. String @@ -44170,6 +48700,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 PostalCode + > Applicable: Microsoft Teams Specifies the postal code of the new civic address. String @@ -44182,6 +48713,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 PostDirectional + > Applicable: Microsoft Teams Specifies the directional attribute of the new civic address which follows the street name. For example, "425 Smith Avenue NE". String @@ -44194,6 +48726,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 PreDirectional + > Applicable: Microsoft Teams Specifies the directional attribute of the new civic address which precedes the street name. For example, "425 NE Smith Avenue". String @@ -44206,6 +48739,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 StateOrProvince + > Applicable: Microsoft Teams Specifies the state or province of the new civic address. String @@ -44218,6 +48752,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 StreetName + > Applicable: Microsoft Teams Specifies the street name of the new civic address. String @@ -44230,6 +48765,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 StreetSuffix + > Applicable: Microsoft Teams Specifies the street type of the new civic address. The street suffix will typically be something like street, avenue, way, or boulevard. String @@ -44239,30 +48775,6 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - - Confidence - - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - IsAzureMapValidationRequired - - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - ValidationStatus @@ -44278,6 +48790,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 WhatIf + > Applicable: Microsoft Teams The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. @@ -44286,24 +48799,27 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 False - - Confirm - - The Confirm switch causes the command to pause processing, and requires confirmation to proceed. - - - SwitchParameter - - - False - - - CompanyName + + City - Specifies the name of your organization. + > Applicable: Microsoft Teams + Specifies the city of the new civic address. + + String + + String + + + None + + + CityAlias + + > Applicable: Microsoft Teams + Specifies the city alias of the new civic address. String @@ -44313,9 +48829,10 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - CountryOrRegion + CompanyName - Specifies the country or region of the new civic address. Needs to be a valid country code as contained in the ISO 3166-1 alpha-2 specification. + > Applicable: Microsoft Teams + Specifies the name of your organization. String @@ -44325,9 +48842,10 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - City + CompanyTaxId - Specifies the city of the new civic address. + > Applicable: Microsoft Teams + Specifies the company tax identifier of the new civic address. String @@ -44337,9 +48855,9 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - CityAlias + Confidence - Specifies the city alias of the new civic address. + This parameter is reserved for internal Microsoft use. String @@ -44348,10 +48866,24 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - - CompanyTaxId + + Confirm - Specifies the company tax identifier of the new civic address. + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing, and requires confirmation to proceed. + + SwitchParameter + + SwitchParameter + + + False + + + CountryOrRegion + + > Applicable: Microsoft Teams + Specifies the country or region of the new civic address. Needs to be a valid country code as contained in the ISO 3166-1 alpha-2 specification. String @@ -44363,6 +48895,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 Description + > Applicable: Microsoft Teams Specifies an administrator defined description of the new civic address. String @@ -44375,6 +48908,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 Elin + > Applicable: Microsoft Teams Specifies the Emergency Location Identification Number. This is used in Direct Routing EGW scenarios. String @@ -44387,6 +48921,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -44399,6 +48934,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 HouseNumber + > Applicable: Microsoft Teams Specifies the numeric portion of the new civic address. String @@ -44411,6 +48947,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 HouseNumberSuffix + > Applicable: Microsoft Teams Specifies the numeric suffix of the new civic address. For example, if the property was multiplexed, the HouseNumberSuffix parameter would be the multiplex specifier: "425A Smith Avenue", or "425B Smith Avenue". String @@ -44420,9 +48957,22 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None + + IsAzureMapValidationRequired + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + Latitude + > Applicable: Microsoft Teams Specifies the angular distance of a place north or south of the earth's equator using the decimal degrees format. Required for all countries except Australia and Japan where it's optional. String @@ -44435,6 +48985,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 Longitude + > Applicable: Microsoft Teams Specifies the angular distance of a place east or west of the meridian at Greenwich, England, using the decimal degrees format. Required for all countries except Australia and Japan where it's optional. String @@ -44447,6 +48998,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 PostalCode + > Applicable: Microsoft Teams Specifies the postal code of the new civic address. String @@ -44459,6 +49011,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 PostDirectional + > Applicable: Microsoft Teams Specifies the directional attribute of the new civic address which follows the street name. For example, "425 Smith Avenue NE". String @@ -44471,6 +49024,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 PreDirectional + > Applicable: Microsoft Teams Specifies the directional attribute of the new civic address which precedes the street name. For example, "425 NE Smith Avenue". String @@ -44483,6 +49037,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 StateOrProvince + > Applicable: Microsoft Teams Specifies the state or province of the new civic address. String @@ -44495,6 +49050,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 StreetName + > Applicable: Microsoft Teams Specifies the street name of the new civic address. String @@ -44507,6 +49063,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 StreetSuffix + > Applicable: Microsoft Teams Specifies the street type of the new civic address. The street suffix will typically be something like street, avenue, way, or boulevard. String @@ -44516,30 +49073,6 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - - Confidence - - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - IsAzureMapValidationRequired - - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - ValidationStatus @@ -44555,6 +49088,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 WhatIf + > Applicable: Microsoft Teams The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. SwitchParameter @@ -44564,18 +49098,6 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 False - - Confirm - - The Confirm switch causes the command to pause processing, and requires confirmation to proceed. - - SwitchParameter - - SwitchParameter - - - False - @@ -44596,19 +49118,19 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csonlineliscivicaddress + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineliscivicaddress Set-CsOnlineLisCivicAddress - https://learn.microsoft.com/powershell/module/teams/set-csonlineliscivicaddress + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineliscivicaddress Remove-CsOnlineLisCivicAddress - https://learn.microsoft.com/powershell/module/teams/remove-csonlineliscivicaddress + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineliscivicaddress Get-CsOnlineLisCivicAddress - https://learn.microsoft.com/powershell/module/teams/get-csonlineliscivicaddress + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineliscivicaddress @@ -44627,22 +49149,24 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 New-CsOnlineLisLocation - - CivicAddressId + + City - Specifies the unique identifier of the civic address that will contain the new location. Civic address identities can be discovered by using the Get-CsOnlineLisCivicAddress cmdlet. + > Applicable: Microsoft Teams + Specifies the city of the civic address. Note: This parameter is not supported and is deprecated. - Guid + String - Guid + String None - - Location + + CityAlias - Specifies an administrator-defined description of the new location. For example, "2nd Floor Cafe", "Main Lobby", or "Office 250". + > Applicable: Microsoft Teams + Specifies the city alias. Note: This parameter is not supported and is deprecated. String @@ -44651,22 +49175,24 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - - CountryOrRegion + + CivicAddressId - Specifies the country or region of the civic address. Note: This parameter is not supported and is deprecated. + > Applicable: Microsoft Teams + Specifies the unique identifier of the civic address that will contain the new location. Civic address identities can be discovered by using the Get-CsOnlineLisCivicAddress cmdlet. - String + Guid - String + Guid None - - City + + CompanyName - Specifies the city of the civic address. Note: This parameter is not supported and is deprecated. + > Applicable: Microsoft Teams + Specifies the name of your organization. Note: This parameter is not supported and is deprecated. String @@ -44676,9 +49202,10 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - CityAlias + CompanyTaxId - Specifies the city alias. Note: This parameter is not supported and is deprecated. + > Applicable: Microsoft Teams + The company tax ID. Note: This parameter is not supported and is deprecated. String @@ -44687,10 +49214,11 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - - CompanyName + + Confidence - Specifies the name of your organization. Note: This parameter is not supported and is deprecated. + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. String @@ -44699,22 +49227,23 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - - CompanyTaxId + + Confirm - The company tax ID. Note: This parameter is not supported and is deprecated. + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing, and requires confirmation to proceed. - String - String + SwitchParameter - None + False - - Confidence + + CountryOrRegion - This parameter is reserved for internal Microsoft use. + > Applicable: Microsoft Teams + Specifies the country or region of the civic address. Note: This parameter is not supported and is deprecated. String @@ -44726,6 +49255,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 Description + > Applicable: Microsoft Teams Specifies an administrator defined description of the civic address. Note: This parameter is not supported and is deprecated. String @@ -44738,6 +49268,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 Elin + > Applicable: Microsoft Teams Specifies the Emergency Location Identification Number. This is used in Direct Routing EGW scenarios. String @@ -44747,9 +49278,22 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None + + Force + + > Applicable: Microsoft Teams + Suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + HouseNumber + > Applicable: Microsoft Teams Specifies the numeric portion of the civic address. Note: This parameter is not supported and is deprecated. String @@ -44762,6 +49306,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 HouseNumberSuffix + > Applicable: Microsoft Teams Specifies the numeric suffix of the civic address. For example, if the property was multiplexed, the HouseNumberSuffix parameter would be the multiplex specifier: "425A Smith Avenue", or "425B Smith Avenue". Note: This parameter is not supported and is deprecated. String @@ -44774,6 +49319,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 Latitude + > Applicable: Microsoft Teams Specifies the angular distance of a place north or south of the earth's equator using the decimal degrees format. Note: This parameter is not supported and is deprecated. String @@ -44783,9 +49329,23 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None + + Location + + > Applicable: Microsoft Teams + Specifies an administrator-defined description of the new location. For example, "2nd Floor Cafe", "Main Lobby", or "Office 250". + + String + + String + + + None + Longitude + > Applicable: Microsoft Teams Specifies the angular distance of a place east or west of the meridian at Greenwich, England, using the decimal degrees format. Note: This parameter is not supported and is deprecated. String @@ -44798,6 +49358,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 PostalCode + > Applicable: Microsoft Teams Specifies the postal code of the civic address. Note: This parameter is not supported and is deprecated. String @@ -44810,6 +49371,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 PostDirectional + > Applicable: Microsoft Teams Specifies the directional attribute of the civic address which follows the street name. For example, "425 Smith Avenue NE". Note: This parameter is not supported and is deprecated. String @@ -44822,6 +49384,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 PreDirectional + > Applicable: Microsoft Teams Specifies the directional attribute of the civic address which precedes the street name. For example, "425 NE Smith Avenue". Note: This parameter is not supported and is deprecated. String @@ -44834,6 +49397,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 StateOrProvince + > Applicable: Microsoft Teams Specifies the state or province of the civic address. Note: This parameter is not supported and is deprecated. String @@ -44846,6 +49410,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 StreetName + > Applicable: Microsoft Teams Specifies the street name of the civic address. Note: This parameter is not supported and is deprecated. String @@ -44858,6 +49423,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 StreetSuffix + > Applicable: Microsoft Teams Specifies the modifier of the street name. The street suffix will typically be something like street, avenue, way, or boulevard. Note: This parameter is not supported and is deprecated. String @@ -44870,6 +49436,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 WhatIf + > Applicable: Microsoft Teams The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. @@ -44878,47 +49445,27 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 False - - Confirm - - The Confirm switch causes the command to pause processing, and requires confirmation to proceed. - - - SwitchParameter - - - False - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - - SwitchParameter - - - False - - - CivicAddressId + + City - Specifies the unique identifier of the civic address that will contain the new location. Civic address identities can be discovered by using the Get-CsOnlineLisCivicAddress cmdlet. + > Applicable: Microsoft Teams + Specifies the city of the civic address. Note: This parameter is not supported and is deprecated. - Guid + String - Guid + String None - - Location + + CityAlias - Specifies an administrator-defined description of the new location. For example, "2nd Floor Cafe", "Main Lobby", or "Office 250". + > Applicable: Microsoft Teams + Specifies the city alias. Note: This parameter is not supported and is deprecated. String @@ -44927,22 +49474,24 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - - CountryOrRegion + + CivicAddressId - Specifies the country or region of the civic address. Note: This parameter is not supported and is deprecated. + > Applicable: Microsoft Teams + Specifies the unique identifier of the civic address that will contain the new location. Civic address identities can be discovered by using the Get-CsOnlineLisCivicAddress cmdlet. - String + Guid - String + Guid None - - City + + CompanyName - Specifies the city of the civic address. Note: This parameter is not supported and is deprecated. + > Applicable: Microsoft Teams + Specifies the name of your organization. Note: This parameter is not supported and is deprecated. String @@ -44952,9 +49501,10 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - CityAlias + CompanyTaxId - Specifies the city alias. Note: This parameter is not supported and is deprecated. + > Applicable: Microsoft Teams + The company tax ID. Note: This parameter is not supported and is deprecated. String @@ -44963,10 +49513,11 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - - CompanyName + + Confidence - Specifies the name of your organization. Note: This parameter is not supported and is deprecated. + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. String @@ -44975,22 +49526,24 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - - CompanyTaxId + + Confirm - The company tax ID. Note: This parameter is not supported and is deprecated. + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing, and requires confirmation to proceed. - String + SwitchParameter - String + SwitchParameter - None + False - - Confidence + + CountryOrRegion - This parameter is reserved for internal Microsoft use. + > Applicable: Microsoft Teams + Specifies the country or region of the civic address. Note: This parameter is not supported and is deprecated. String @@ -45002,6 +49555,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 Description + > Applicable: Microsoft Teams Specifies an administrator defined description of the civic address. Note: This parameter is not supported and is deprecated. String @@ -45014,6 +49568,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 Elin + > Applicable: Microsoft Teams Specifies the Emergency Location Identification Number. This is used in Direct Routing EGW scenarios. String @@ -45023,9 +49578,23 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None + + Force + + > Applicable: Microsoft Teams + Suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + HouseNumber + > Applicable: Microsoft Teams Specifies the numeric portion of the civic address. Note: This parameter is not supported and is deprecated. String @@ -45038,6 +49607,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 HouseNumberSuffix + > Applicable: Microsoft Teams Specifies the numeric suffix of the civic address. For example, if the property was multiplexed, the HouseNumberSuffix parameter would be the multiplex specifier: "425A Smith Avenue", or "425B Smith Avenue". Note: This parameter is not supported and is deprecated. String @@ -45050,6 +49620,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 Latitude + > Applicable: Microsoft Teams Specifies the angular distance of a place north or south of the earth's equator using the decimal degrees format. Note: This parameter is not supported and is deprecated. String @@ -45059,9 +49630,23 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None + + Location + + > Applicable: Microsoft Teams + Specifies an administrator-defined description of the new location. For example, "2nd Floor Cafe", "Main Lobby", or "Office 250". + + String + + String + + + None + Longitude + > Applicable: Microsoft Teams Specifies the angular distance of a place east or west of the meridian at Greenwich, England, using the decimal degrees format. Note: This parameter is not supported and is deprecated. String @@ -45074,6 +49659,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 PostalCode + > Applicable: Microsoft Teams Specifies the postal code of the civic address. Note: This parameter is not supported and is deprecated. String @@ -45086,6 +49672,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 PostDirectional + > Applicable: Microsoft Teams Specifies the directional attribute of the civic address which follows the street name. For example, "425 Smith Avenue NE". Note: This parameter is not supported and is deprecated. String @@ -45098,6 +49685,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 PreDirectional + > Applicable: Microsoft Teams Specifies the directional attribute of the civic address which precedes the street name. For example, "425 NE Smith Avenue". Note: This parameter is not supported and is deprecated. String @@ -45110,6 +49698,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 StateOrProvince + > Applicable: Microsoft Teams Specifies the state or province of the civic address. Note: This parameter is not supported and is deprecated. String @@ -45122,6 +49711,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 StreetName + > Applicable: Microsoft Teams Specifies the street name of the civic address. Note: This parameter is not supported and is deprecated. String @@ -45134,6 +49724,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 StreetSuffix + > Applicable: Microsoft Teams Specifies the modifier of the street name. The street suffix will typically be something like street, avenue, way, or boulevard. Note: This parameter is not supported and is deprecated. String @@ -45146,6 +49737,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 WhatIf + > Applicable: Microsoft Teams The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. SwitchParameter @@ -45155,30 +49747,6 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 False - - Confirm - - The Confirm switch causes the command to pause processing, and requires confirmation to proceed. - - SwitchParameter - - SwitchParameter - - - False - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - SwitchParameter - - SwitchParameter - - - False - @@ -45199,19 +49767,19 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csonlinelislocation + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinelislocation Set-CsOnlineLisLocation - https://learn.microsoft.com/powershell/module/teams/set-csonlinelislocation + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinelislocation Get-CsOnlineLisLocation - https://learn.microsoft.com/powershell/module/teams/get-csonlinelislocation + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelislocation Remove-CsOnlineLisLocation - https://learn.microsoft.com/powershell/module/teams/remove-csonlinelislocation + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinelislocation @@ -45230,9 +49798,34 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 New-CsOnlinePSTNGateway + + BypassMode + + Possible values are "None", "Always" and "OnlyForLocalUsers". By setting "Always" mode you indicate that your network is fully routable. If a user usually in site "Seattle", travels to site "Tallinn" and tries to use SBC located in Seattle we will try to deliver the traffic to Seattle assuming that there is connection between Tallinn and Seattle offices. With "OnlyForLocaUsers" you indicate that there is no direct connection between sites. In example above, the traffic will not be send directly from Tallinn to Seattle. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + Description + > Applicable: Microsoft Teams Free-format string to describe the gateway. String @@ -45245,6 +49838,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 Enabled + > Applicable: Microsoft Teams Used to enable this SBC for outbound calls. Can be used to temporarily remove the SBC from service while it is being updated or during maintenance. Note if the parameter is not set the SBC will be created as disabled (default value -Enabled $false). Boolean @@ -45257,6 +49851,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 FailoverResponseCodes + > Applicable: Microsoft Teams If Direct Routing receives any 4xx or 6xx SIP error code in response to an outgoing Invite the call is considered completed by default. (Outgoing in this context is a call from a Teams client to the PSTN with traffic flow: Teams Client -> Direct Routing -> SBC -> Telephony network). Setting the SIP codes in this parameter forces Direct Routing on receiving the specified codes try another SBC (if another SBC exists in the voice routing policy of the user). Find more information in the "Reference" section of "Phone System Direct Routing" documentation. Setting this parameter overwrites the default values, so if you want to include the default values, please add them to string. @@ -45270,6 +49865,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 FailoverTimeSeconds + > Applicable: Microsoft Teams When set to 10 (default value), outbound calls that are not answered by the gateway within 10 seconds are routed to the next available trunk; if there are no additional trunks, then the call is automatically dropped. In an organization with slow networks and slow gateway responses, that could potentially result in calls being dropped unnecessarily. The default value is 10. Int32 @@ -45282,6 +49878,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 ForwardCallHistory + > Applicable: Microsoft Teams Indicates whether call history information will be forwarded to the SBC. If enabled, the Office 365 PSTN Proxy sends two headers: History-info and Referred-By. The default value is False ($False). Boolean @@ -45294,6 +49891,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 ForwardPai + > Applicable: Microsoft Teams Indicates whether the P-Asserted-Identity (PAI) header will be forwarded along with the call. The PAI header provides a way to verify the identity of the caller. The default value is False ($False). Setting this parameter to $true will render the from header anonymous, in accordance of RFC5379 and RFC3325. Boolean @@ -45306,6 +49904,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 Fqdn + > Applicable: Microsoft Teams Limited to 63 characters, the FQDN registered for the SBC. Copied automatically to Identity of the SBC field. String @@ -45315,9 +49914,23 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None + + GatewayLbrEnabledUserOverride + + > Applicable: Microsoft Teams + Allows an LBR enabled user working from a network site outside the corporate network or a network site on the corporate network not configured using a tenant network site to make outbound PSTN calls or receive inbound PSTN calls via an LBR enabled gateway. The default value is False. + + Boolean + + Boolean + + + $false + GatewaySiteId + > Applicable: Microsoft Teams PSTN Gateway Site Id. String @@ -45330,6 +49943,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 GatewaySiteLbrEnabled + > Applicable: Microsoft Teams Used to enable this SBC to report assigned site location. Site location is used for Location Based Routing. When this parameter is enabled ($True), the SBC will report the site name as defined by the tenant administrator. On an incoming call to a Teams user the value of the site assigned to the SBC is compared with the value of the site assigned to the user to make a routing decision. The parameter is mandatory for enabling Location Based Routing feature. The default value is False ($False). Boolean @@ -45340,93 +49954,84 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 $false - GatewayLbrEnabledUserOverride + InboundPSTNNumberTranslationRules - Allows an LBR enabled user working from a network site outside the corporate network or a network site on the corporate network not configured using a tenant network site to make outbound PSTN calls or receive inbound PSTN calls via an LBR enabled gateway. The default value is False. + Creates an ordered list of Teams translation rules, that apply to PSTN number on inbound direction. - Boolean + Object - Boolean + Object - $false + None - MaxConcurrentSessions + InboundTeamsNumberTranslationRules - Used by the alerting system. When any value is set, the alerting system will generate an alert to the tenant administrator when the number of concurrent sessions is 90% or higher than this value. If the parameter is not set, alerts are not generated. However, the monitoring system will report the number of concurrent sessions every 24 hours. + This parameter assigns an ordered list of Teams translation rules, that apply to Teams numbers on inbound direction. - System.Int32 + Object - System.Int32 + Object None - MediaBypass + IPAddressVersion - Parameter indicates if the SBC supports Media Bypass and the administrator wants to use it for this SBC. + Possible values are "IPv4" and '"Pv6". When "IPv6" is set, the SBC must use IPv6 for both signaling and media. Note: IPv6 is supported only for non-media bypass scenarios. - Boolean + String - Boolean + String - $false + IPv4 - MediaRelayRoutingLocationOverride + MaxConcurrentSessions - Allows selecting path for media manually. Direct Routing assigns a datacenter for media path based on the public IP of the SBC. We always select closest to the SBC datacenter. However, in some cases a public IP from for example a US range can be assigned to an SBC located in Europe. In this case we will be using not optimal media path. We only recommend setting this parameter if the call logs clearly indicate that automatic assignment of the datacenter for media path does not assign the closest to the SBC datacenter. + > Applicable: Microsoft Teams + Used by the alerting system. When any value is set, the alerting system will generate an alert to the tenant administrator when the number of concurrent sessions is 90% or higher than this value. If the parameter is not set, alerts are not generated. However, the monitoring system will report the number of concurrent sessions every 24 hours. - String + System.Int32 - String + System.Int32 - $false + None - SendSipOptions + MediaBypass - Defines if an SBC will or will not send SIP Options messages. If disabled, the SBC will be excluded from the Monitoring and Alerting system. We highly recommend that you enable SIP Options. The default value is True. + > Applicable: Microsoft Teams + Parameter indicates if the SBC supports Media Bypass and the administrator wants to use it for this SBC. Boolean Boolean - $true - - - SipSignalingPort - - Listening port used for communicating with Direct Routing services by using the Transport Layer Security (TLS) protocol. Must be value between 1 and 65535. Please note: Spelling of this parameter changed recently from SipSignallingPort to SipSignalingPort. - - Int32 - - Int32 - - - None + $false - BypassMode + MediaRelayRoutingLocationOverride - Possible values are "None", "Always" and "OnlyForLocalUsers". By setting "Always" mode you indicate that your network is fully routable. If a user usually in site "Seattle", travels to site "Tallinn" and tries to use SBC located in Seattle we will try to deliver the traffic to Seattle assuming that there is connection between Tallinn and Seattle offices. With "OnlyForLocaUsers" you indicate that there is no direct connection between sites. In example above, the traffic will not be send directly from Tallinn to Seattle. + > Applicable: Microsoft Teams + Allows selecting path for media manually. Direct Routing assigns a datacenter for media path based on the public IP of the SBC. We always select closest to the SBC datacenter. However, in some cases a public IP from for example a US range can be assigned to an SBC located in Europe. In this case we will be using not optimal media path. We only recommend setting this parameter if the call logs clearly indicate that automatic assignment of the datacenter for media path does not assign the closest to the SBC datacenter. String String - None + $false - InboundTeamsNumberTranslationRules + OutboundPSTNNumberTranslationRules - This parameter assigns an ordered list of Teams translation rules, that apply to Teams numbers on inbound direction. + Assigns an ordered list of Teams translation rules, that apply to PSTN number on outbound direction. Object @@ -45436,9 +50041,9 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - InboundPSTNNumberTranslationRules + OutbundTeamsNumberTranslationRules - Creates an ordered list of Teams translation rules, that apply to PSTN number on inbound direction. + Creates an ordered list of Teams translation rules, that apply to Teams Number on outbound direction. Object @@ -45448,49 +50053,53 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - OutbundTeamsNumberTranslationRules + PidfloSupported - Creates an ordered list of Teams translation rules, that apply to Teams Number on outbound direction. + > Applicable: Microsoft Teams + Enables PIDF-LO support on the PSTN Gateway. If turned on the .xml body payload is sent to the SBC with the location details of the user. - Object + Boolean - Object + Boolean - None + $false - OutboundPSTNNumberTranslationRules + ProxySbc - Assigns an ordered list of Teams translation rules, that apply to PSTN number on outbound direction. + > Applicable: Microsoft Teams + The FQDN of the proxy SBC. Used in Local Media Optimization configurations. - Object + String - Object + String None - PidfloSupported + SendSipOptions - Enables PIDF-LO support on the PSTN Gateway. If turned on the .xml body payload is sent to the SBC with the location details of the user. + > Applicable: Microsoft Teams + Defines if an SBC will or will not send SIP Options messages. If disabled, the SBC will be excluded from the Monitoring and Alerting system. We highly recommend that you enable SIP Options. The default value is True. Boolean Boolean - $false + $true - - ProxySbc + + SipSignalingPort - The FQDN of the proxy SBC. Used in Local Media Optimization configurations. + > Applicable: Microsoft Teams + Listening port used for communicating with Direct Routing services by using the Transport Layer Security (TLS) protocol. Must be value between 1 and 65535. Please note: Spelling of this parameter changed recently from SipSignallingPort to SipSignalingPort. - String + Int32 - String + Int32 None @@ -45498,6 +50107,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 WhatIf + > Applicable: Microsoft Teams Shows what would happen if the cmdlet runs. The cmdlet is not run. @@ -45506,23 +50116,13 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - New-CsOnlinePSTNGateway Identity + > Applicable: Microsoft Teams When creating a new SBC, the identity must be identical to the -FQDN parameter, described above. If the parameter is not defined the Identity will be copied from the -FQDN parameter. The Identity parameter is not mandatory. String @@ -45532,9 +50132,34 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None + + BypassMode + + Possible values are "None", "Always" and "OnlyForLocalUsers". By setting "Always" mode you indicate that your network is fully routable. If a user usually in site "Seattle", travels to site "Tallinn" and tries to use SBC located in Seattle we will try to deliver the traffic to Seattle assuming that there is connection between Tallinn and Seattle offices. With "OnlyForLocaUsers" you indicate that there is no direct connection between sites. In example above, the traffic will not be send directly from Tallinn to Seattle. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + Description + > Applicable: Microsoft Teams Free-format string to describe the gateway. String @@ -45547,6 +50172,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 Enabled + > Applicable: Microsoft Teams Used to enable this SBC for outbound calls. Can be used to temporarily remove the SBC from service while it is being updated or during maintenance. Note if the parameter is not set the SBC will be created as disabled (default value -Enabled $false). Boolean @@ -45559,6 +50185,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 FailoverResponseCodes + > Applicable: Microsoft Teams If Direct Routing receives any 4xx or 6xx SIP error code in response to an outgoing Invite the call is considered completed by default. (Outgoing in this context is a call from a Teams client to the PSTN with traffic flow: Teams Client -> Direct Routing -> SBC -> Telephony network). Setting the SIP codes in this parameter forces Direct Routing on receiving the specified codes try another SBC (if another SBC exists in the voice routing policy of the user). Find more information in the "Reference" section of "Phone System Direct Routing" documentation. Setting this parameter overwrites the default values, so if you want to include the default values, please add them to string. @@ -45572,6 +50199,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 FailoverTimeSeconds + > Applicable: Microsoft Teams When set to 10 (default value), outbound calls that are not answered by the gateway within 10 seconds are routed to the next available trunk; if there are no additional trunks, then the call is automatically dropped. In an organization with slow networks and slow gateway responses, that could potentially result in calls being dropped unnecessarily. The default value is 10. Int32 @@ -45584,6 +50212,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 ForwardCallHistory + > Applicable: Microsoft Teams Indicates whether call history information will be forwarded to the SBC. If enabled, the Office 365 PSTN Proxy sends two headers: History-info and Referred-By. The default value is False ($False). Boolean @@ -45596,6 +50225,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 ForwardPai + > Applicable: Microsoft Teams Indicates whether the P-Asserted-Identity (PAI) header will be forwarded along with the call. The PAI header provides a way to verify the identity of the caller. The default value is False ($False). Setting this parameter to $true will render the from header anonymous, in accordance of RFC5379 and RFC3325. Boolean @@ -45605,9 +50235,23 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 $false + + GatewayLbrEnabledUserOverride + + > Applicable: Microsoft Teams + Allows an LBR enabled user working from a network site outside the corporate network or a network site on the corporate network not configured using a tenant network site to make outbound PSTN calls or receive inbound PSTN calls via an LBR enabled gateway. The default value is False. + + Boolean + + Boolean + + + $false + GatewaySiteId + > Applicable: Microsoft Teams PSTN Gateway Site Id. String @@ -45620,6 +50264,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 GatewaySiteLbrEnabled + > Applicable: Microsoft Teams Used to enable this SBC to report assigned site location. Site location is used for Location Based Routing. When this parameter is enabled ($True), the SBC will report the site name as defined by the tenant administrator. On an incoming call to a Teams user the value of the site assigned to the SBC is compared with the value of the site assigned to the user to make a routing decision. The parameter is mandatory for enabling Location Based Routing feature. The default value is False ($False). Boolean @@ -45630,93 +50275,84 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 $false - GatewayLbrEnabledUserOverride + InboundPSTNNumberTranslationRules - Allows an LBR enabled user working from a network site outside the corporate network or a network site on the corporate network not configured using a tenant network site to make outbound PSTN calls or receive inbound PSTN calls via an LBR enabled gateway. The default value is False. + Creates an ordered list of Teams translation rules, that apply to PSTN number on inbound direction. - Boolean + Object - Boolean + Object - $false + None - MaxConcurrentSessions + InboundTeamsNumberTranslationRules - Used by the alerting system. When any value is set, the alerting system will generate an alert to the tenant administrator when the number of concurrent sessions is 90% or higher than this value. If the parameter is not set, alerts are not generated. However, the monitoring system will report the number of concurrent sessions every 24 hours. + This parameter assigns an ordered list of Teams translation rules, that apply to Teams numbers on inbound direction. - System.Int32 + Object - System.Int32 + Object None - MediaBypass + IPAddressVersion - Parameter indicates if the SBC supports Media Bypass and the administrator wants to use it for this SBC. + Possible values are "IPv4" and '"Pv6". When "IPv6" is set, the SBC must use IPv6 for both signaling and media. Note: IPv6 is supported only for non-media bypass scenarios. - Boolean + String - Boolean + String - $false + IPv4 - MediaRelayRoutingLocationOverride + MaxConcurrentSessions - Allows selecting path for media manually. Direct Routing assigns a datacenter for media path based on the public IP of the SBC. We always select closest to the SBC datacenter. However, in some cases a public IP from for example a US range can be assigned to an SBC located in Europe. In this case we will be using not optimal media path. We only recommend setting this parameter if the call logs clearly indicate that automatic assignment of the datacenter for media path does not assign the closest to the SBC datacenter. + > Applicable: Microsoft Teams + Used by the alerting system. When any value is set, the alerting system will generate an alert to the tenant administrator when the number of concurrent sessions is 90% or higher than this value. If the parameter is not set, alerts are not generated. However, the monitoring system will report the number of concurrent sessions every 24 hours. - String + System.Int32 - String + System.Int32 - $false + None - SendSipOptions + MediaBypass - Defines if an SBC will or will not send SIP Options messages. If disabled, the SBC will be excluded from the Monitoring and Alerting system. We highly recommend that you enable SIP Options. The default value is True. + > Applicable: Microsoft Teams + Parameter indicates if the SBC supports Media Bypass and the administrator wants to use it for this SBC. Boolean Boolean - $true - - - SipSignalingPort - - Listening port used for communicating with Direct Routing services by using the Transport Layer Security (TLS) protocol. Must be value between 1 and 65535. Please note: Spelling of this parameter changed recently from SipSignallingPort to SipSignalingPort. - - Int32 - - Int32 - - - None + $false - BypassMode + MediaRelayRoutingLocationOverride - Possible values are "None", "Always" and "OnlyForLocalUsers". By setting "Always" mode you indicate that your network is fully routable. If a user usually in site "Seattle", travels to site "Tallinn" and tries to use SBC located in Seattle we will try to deliver the traffic to Seattle assuming that there is connection between Tallinn and Seattle offices. With "OnlyForLocaUsers" you indicate that there is no direct connection between sites. In example above, the traffic will not be send directly from Tallinn to Seattle. + > Applicable: Microsoft Teams + Allows selecting path for media manually. Direct Routing assigns a datacenter for media path based on the public IP of the SBC. We always select closest to the SBC datacenter. However, in some cases a public IP from for example a US range can be assigned to an SBC located in Europe. In this case we will be using not optimal media path. We only recommend setting this parameter if the call logs clearly indicate that automatic assignment of the datacenter for media path does not assign the closest to the SBC datacenter. String String - None + $false - InboundTeamsNumberTranslationRules + OutboundPSTNNumberTranslationRules - This parameter assigns an ordered list of Teams translation rules, that apply to Teams numbers on inbound direction. + Assigns an ordered list of Teams translation rules, that apply to PSTN number on outbound direction. Object @@ -45726,9 +50362,9 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - InboundPSTNNumberTranslationRules + OutbundTeamsNumberTranslationRules - Creates an ordered list of Teams translation rules, that apply to PSTN number on inbound direction. + Creates an ordered list of Teams translation rules, that apply to Teams Number on outbound direction. Object @@ -45738,49 +50374,53 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - OutbundTeamsNumberTranslationRules + PidfloSupported - Creates an ordered list of Teams translation rules, that apply to Teams Number on outbound direction. + > Applicable: Microsoft Teams + Enables PIDF-LO support on the PSTN Gateway. If turned on the .xml body payload is sent to the SBC with the location details of the user. - Object + Boolean - Object + Boolean - None + $false - OutboundPSTNNumberTranslationRules + ProxySbc - Assigns an ordered list of Teams translation rules, that apply to PSTN number on outbound direction. + > Applicable: Microsoft Teams + The FQDN of the proxy SBC. Used in Local Media Optimization configurations. - Object + String - Object + String None - PidfloSupported + SendSipOptions - Enables PIDF-LO support on the PSTN Gateway. If turned on the .xml body payload is sent to the SBC with the location details of the user. + > Applicable: Microsoft Teams + Defines if an SBC will or will not send SIP Options messages. If disabled, the SBC will be excluded from the Monitoring and Alerting system. We highly recommend that you enable SIP Options. The default value is True. Boolean Boolean - $false + $true - - ProxySbc + + SipSignalingPort - The FQDN of the proxy SBC. Used in Local Media Optimization configurations. + > Applicable: Microsoft Teams + Listening port used for communicating with Direct Routing services by using the Transport Layer Security (TLS) protocol. Must be value between 1 and 65535. Please note: Spelling of this parameter changed recently from SipSignallingPort to SipSignalingPort. - String + Int32 - String + Int32 None @@ -45788,6 +50428,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 WhatIf + > Applicable: Microsoft Teams Shows what would happen if the cmdlet runs. The cmdlet is not run. @@ -45796,23 +50437,38 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - + + BypassMode + + Possible values are "None", "Always" and "OnlyForLocalUsers". By setting "Always" mode you indicate that your network is fully routable. If a user usually in site "Seattle", travels to site "Tallinn" and tries to use SBC located in Seattle we will try to deliver the traffic to Seattle assuming that there is connection between Tallinn and Seattle offices. With "OnlyForLocaUsers" you indicate that there is no direct connection between sites. In example above, the traffic will not be send directly from Tallinn to Seattle. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + Description + > Applicable: Microsoft Teams Free-format string to describe the gateway. String @@ -45825,6 +50481,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 Enabled + > Applicable: Microsoft Teams Used to enable this SBC for outbound calls. Can be used to temporarily remove the SBC from service while it is being updated or during maintenance. Note if the parameter is not set the SBC will be created as disabled (default value -Enabled $false). Boolean @@ -45837,6 +50494,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 FailoverResponseCodes + > Applicable: Microsoft Teams If Direct Routing receives any 4xx or 6xx SIP error code in response to an outgoing Invite the call is considered completed by default. (Outgoing in this context is a call from a Teams client to the PSTN with traffic flow: Teams Client -> Direct Routing -> SBC -> Telephony network). Setting the SIP codes in this parameter forces Direct Routing on receiving the specified codes try another SBC (if another SBC exists in the voice routing policy of the user). Find more information in the "Reference" section of "Phone System Direct Routing" documentation. Setting this parameter overwrites the default values, so if you want to include the default values, please add them to string. @@ -45850,6 +50508,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 FailoverTimeSeconds + > Applicable: Microsoft Teams When set to 10 (default value), outbound calls that are not answered by the gateway within 10 seconds are routed to the next available trunk; if there are no additional trunks, then the call is automatically dropped. In an organization with slow networks and slow gateway responses, that could potentially result in calls being dropped unnecessarily. The default value is 10. Int32 @@ -45862,6 +50521,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 ForwardCallHistory + > Applicable: Microsoft Teams Indicates whether call history information will be forwarded to the SBC. If enabled, the Office 365 PSTN Proxy sends two headers: History-info and Referred-By. The default value is False ($False). Boolean @@ -45874,6 +50534,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 ForwardPai + > Applicable: Microsoft Teams Indicates whether the P-Asserted-Identity (PAI) header will be forwarded along with the call. The PAI header provides a way to verify the identity of the caller. The default value is False ($False). Setting this parameter to $true will render the from header anonymous, in accordance of RFC5379 and RFC3325. Boolean @@ -45886,6 +50547,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 Fqdn + > Applicable: Microsoft Teams Limited to 63 characters, the FQDN registered for the SBC. Copied automatically to Identity of the SBC field. String @@ -45896,33 +50558,36 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - GatewaySiteId + GatewayLbrEnabledUserOverride - PSTN Gateway Site Id. + > Applicable: Microsoft Teams + Allows an LBR enabled user working from a network site outside the corporate network or a network site on the corporate network not configured using a tenant network site to make outbound PSTN calls or receive inbound PSTN calls via an LBR enabled gateway. The default value is False. - String + Boolean - String + Boolean - None + $false - GatewaySiteLbrEnabled + GatewaySiteId - Used to enable this SBC to report assigned site location. Site location is used for Location Based Routing. When this parameter is enabled ($True), the SBC will report the site name as defined by the tenant administrator. On an incoming call to a Teams user the value of the site assigned to the SBC is compared with the value of the site assigned to the user to make a routing decision. The parameter is mandatory for enabling Location Based Routing feature. The default value is False ($False). + > Applicable: Microsoft Teams + PSTN Gateway Site Id. - Boolean + String - Boolean + String - $false + None - GatewayLbrEnabledUserOverride + GatewaySiteLbrEnabled - Allows an LBR enabled user working from a network site outside the corporate network or a network site on the corporate network not configured using a tenant network site to make outbound PSTN calls or receive inbound PSTN calls via an LBR enabled gateway. The default value is False. + > Applicable: Microsoft Teams + Used to enable this SBC to report assigned site location. Site location is used for Location Based Routing. When this parameter is enabled ($True), the SBC will report the site name as defined by the tenant administrator. On an incoming call to a Teams user the value of the site assigned to the SBC is compared with the value of the site assigned to the user to make a routing decision. The parameter is mandatory for enabling Location Based Routing feature. The default value is False ($False). Boolean @@ -45934,6 +50599,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 Identity + > Applicable: Microsoft Teams When creating a new SBC, the identity must be identical to the -FQDN parameter, described above. If the parameter is not defined the Identity will be copied from the -FQDN parameter. The Identity parameter is not mandatory. String @@ -45944,93 +50610,84 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - MaxConcurrentSessions + InboundPSTNNumberTranslationRules - Used by the alerting system. When any value is set, the alerting system will generate an alert to the tenant administrator when the number of concurrent sessions is 90% or higher than this value. If the parameter is not set, alerts are not generated. However, the monitoring system will report the number of concurrent sessions every 24 hours. + Creates an ordered list of Teams translation rules, that apply to PSTN number on inbound direction. - System.Int32 + Object - System.Int32 + Object None - MediaBypass + InboundTeamsNumberTranslationRules - Parameter indicates if the SBC supports Media Bypass and the administrator wants to use it for this SBC. + This parameter assigns an ordered list of Teams translation rules, that apply to Teams numbers on inbound direction. - Boolean + Object - Boolean + Object - $false + None - MediaRelayRoutingLocationOverride + IPAddressVersion - Allows selecting path for media manually. Direct Routing assigns a datacenter for media path based on the public IP of the SBC. We always select closest to the SBC datacenter. However, in some cases a public IP from for example a US range can be assigned to an SBC located in Europe. In this case we will be using not optimal media path. We only recommend setting this parameter if the call logs clearly indicate that automatic assignment of the datacenter for media path does not assign the closest to the SBC datacenter. + Possible values are "IPv4" and '"Pv6". When "IPv6" is set, the SBC must use IPv6 for both signaling and media. Note: IPv6 is supported only for non-media bypass scenarios. String String - $false + IPv4 - SendSipOptions - - Defines if an SBC will or will not send SIP Options messages. If disabled, the SBC will be excluded from the Monitoring and Alerting system. We highly recommend that you enable SIP Options. The default value is True. - - Boolean - - Boolean - - - $true - - - SipSignalingPort + MaxConcurrentSessions - Listening port used for communicating with Direct Routing services by using the Transport Layer Security (TLS) protocol. Must be value between 1 and 65535. Please note: Spelling of this parameter changed recently from SipSignallingPort to SipSignalingPort. + > Applicable: Microsoft Teams + Used by the alerting system. When any value is set, the alerting system will generate an alert to the tenant administrator when the number of concurrent sessions is 90% or higher than this value. If the parameter is not set, alerts are not generated. However, the monitoring system will report the number of concurrent sessions every 24 hours. - Int32 + System.Int32 - Int32 + System.Int32 None - BypassMode + MediaBypass - Possible values are "None", "Always" and "OnlyForLocalUsers". By setting "Always" mode you indicate that your network is fully routable. If a user usually in site "Seattle", travels to site "Tallinn" and tries to use SBC located in Seattle we will try to deliver the traffic to Seattle assuming that there is connection between Tallinn and Seattle offices. With "OnlyForLocaUsers" you indicate that there is no direct connection between sites. In example above, the traffic will not be send directly from Tallinn to Seattle. + > Applicable: Microsoft Teams + Parameter indicates if the SBC supports Media Bypass and the administrator wants to use it for this SBC. - String + Boolean - String + Boolean - None + $false - InboundTeamsNumberTranslationRules + MediaRelayRoutingLocationOverride - This parameter assigns an ordered list of Teams translation rules, that apply to Teams numbers on inbound direction. + > Applicable: Microsoft Teams + Allows selecting path for media manually. Direct Routing assigns a datacenter for media path based on the public IP of the SBC. We always select closest to the SBC datacenter. However, in some cases a public IP from for example a US range can be assigned to an SBC located in Europe. In this case we will be using not optimal media path. We only recommend setting this parameter if the call logs clearly indicate that automatic assignment of the datacenter for media path does not assign the closest to the SBC datacenter. - Object + String - Object + String - None + $false - InboundPSTNNumberTranslationRules + OutboundPSTNNumberTranslationRules - Creates an ordered list of Teams translation rules, that apply to PSTN number on inbound direction. + Assigns an ordered list of Teams translation rules, that apply to PSTN number on outbound direction. Object @@ -46051,21 +50708,10 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - - OutboundPSTNNumberTranslationRules - - Assigns an ordered list of Teams translation rules, that apply to PSTN number on outbound direction. - - Object - - Object - - - None - PidfloSupported + > Applicable: Microsoft Teams Enables PIDF-LO support on the PSTN Gateway. If turned on the .xml body payload is sent to the SBC with the location details of the user. Boolean @@ -46078,6 +50724,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 ProxySbc + > Applicable: Microsoft Teams The FQDN of the proxy SBC. Used in Local Media Optimization configurations. String @@ -46087,22 +50734,37 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - - WhatIf + + SendSipOptions - Shows what would happen if the cmdlet runs. The cmdlet is not run. + > Applicable: Microsoft Teams + Defines if an SBC will or will not send SIP Options messages. If disabled, the SBC will be excluded from the Monitoring and Alerting system. We highly recommend that you enable SIP Options. The default value is True. - SwitchParameter + Boolean - SwitchParameter + Boolean - False + $true - - Confirm + + SipSignalingPort - Prompts you for confirmation before running the cmdlet. + > Applicable: Microsoft Teams + Listening port used for communicating with Direct Routing services by using the Transport Layer Security (TLS) protocol. Must be value between 1 and 65535. Please note: Spelling of this parameter changed recently from SipSignallingPort to SipSignalingPort. + + Int32 + + Int32 + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -46156,19 +50818,19 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csonlinepstngateway + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinepstngateway Set-CsOnlinePSTNGateway - https://learn.microsoft.com/powershell/module/teams/set-csonlinepstngateway + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinepstngateway Get-CsOnlinePSTNGateway - https://learn.microsoft.com/powershell/module/teams/get-csonlinepstngateway + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinepstngateway Remove-CsOnlinePSTNGateway - https://learn.microsoft.com/powershell/module/teams/remove-csonlinepstngateway + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinepstngateway @@ -46192,37 +50854,40 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 - For a fixed schedule, at most 10 date-time ranges can be specified. - You can create a new date-time range for a fixed schedule by using the New-CsOnlineDateTimeRange cmdlet. - The return type of this cmdlet composes a member for the underlying type/implementation. For example, in case of the weekly recurrent schedule, you can modify Monday's time ranges through the Schedule.WeeklyRecurrentSchedule.MondayHours property. Similarly, date-time ranges of a fixed schedule can be modified by using the Schedule.FixedSchedule.DateTimeRanges property. - - Schedules can then be used by New-CsAutoAttendantCallHandlingAssociation (https://learn.microsoft.com/powershell/module/teams/new-csautoattendantcallhandlingassociation). + - Schedules can then be used by New-CsAutoAttendantCallHandlingAssociation (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallhandlingassociation). New-CsOnlineSchedule - - Name + + Complement - The Name parameter represents a unique friendly name for the schedule. + > Applicable: Microsoft Teams + The Complement parameter indicates how the schedule is used. When Complement is enabled, the schedule is used as the inverse of the provided configuration. For example, if Complement is enabled and the schedule only contains time ranges of Monday to Friday from 9AM to 5PM, then the schedule is active at all times other than the specified time ranges. - System.String - System.String + SwitchParameter - None + False - - WeeklyRecurrentSchedule + + FridayHours - The WeeklyRecurrentSchedule parameter indicates that a weekly recurrent schedule is to be created. This parameter is mandatory when a weekly recurrent schedule is to be created. + > Applicable: Microsoft Teams + List of time ranges for that day. + System.Collections.Generic.List - SwitchParameter + System.Collections.Generic.List - False + None MondayHours + > Applicable: Microsoft Teams List of time ranges for that day. System.Collections.Generic.List @@ -46232,21 +50897,23 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - - TuesdayHours + + Name - List of time ranges for that day. + > Applicable: Microsoft Teams + The Name parameter represents a unique friendly name for the schedule. - System.Collections.Generic.List + System.String - System.Collections.Generic.List + System.String None - WednesdayHours + SaturdayHours + > Applicable: Microsoft Teams List of time ranges for that day. System.Collections.Generic.List @@ -46257,8 +50924,9 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - ThursdayHours + SundayHours + > Applicable: Microsoft Teams List of time ranges for that day. System.Collections.Generic.List @@ -46269,20 +50937,22 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - FridayHours + Tenant - List of time ranges for that day. + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} - System.Collections.Generic.List + System.Guid - System.Collections.Generic.List + System.Guid None - SaturdayHours + ThursdayHours + > Applicable: Microsoft Teams List of time ranges for that day. System.Collections.Generic.List @@ -46293,8 +50963,9 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - SundayHours + TuesdayHours + > Applicable: Microsoft Teams List of time ranges for that day. System.Collections.Generic.List @@ -46305,39 +50976,42 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - Complement + WednesdayHours - The Complement parameter indicates how the schedule is used. When Complement is enabled, the schedule is used as the inverse of the provided configuration. For example, if Complement is enabled and the schedule only contains time ranges of Monday to Friday from 9AM to 5PM, then the schedule is active at all times other than the specified time ranges. + > Applicable: Microsoft Teams + List of time ranges for that day. + System.Collections.Generic.List - SwitchParameter + System.Collections.Generic.List - False + None - - Tenant + + WeeklyRecurrentSchedule - + > Applicable: Microsoft Teams + The WeeklyRecurrentSchedule parameter indicates that a weekly recurrent schedule is to be created. This parameter is mandatory when a weekly recurrent schedule is to be created. - System.Guid - System.Guid + SwitchParameter - None + False New-CsOnlineSchedule - - Name + + DateTimeRanges - The Name parameter represents a unique friendly name for the schedule. + > Applicable: Microsoft Teams + List of date-time ranges for a fixed schedule. At most, 10 date-time ranges can be specified using this parameter. - System.String + System.Collections.Generic.List - System.String + System.Collections.Generic.List None @@ -46345,6 +51019,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 FixedSchedule + > Applicable: Microsoft Teams The FixedSchedule parameter indicates that a fixed schedule is to be created. @@ -46353,14 +51028,15 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 False - - DateTimeRanges + + Name - List of date-time ranges for a fixed schedule. At most, 10 date-time ranges can be specified using this parameter. + > Applicable: Microsoft Teams + The Name parameter represents a unique friendly name for the schedule. - System.Collections.Generic.List + System.String - System.Collections.Generic.List + System.String None @@ -46368,7 +51044,8 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -46380,22 +51057,37 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 - - Name + + Complement - The Name parameter represents a unique friendly name for the schedule. + > Applicable: Microsoft Teams + The Complement parameter indicates how the schedule is used. When Complement is enabled, the schedule is used as the inverse of the provided configuration. For example, if Complement is enabled and the schedule only contains time ranges of Monday to Friday from 9AM to 5PM, then the schedule is active at all times other than the specified time ranges. - System.String + SwitchParameter - System.String + SwitchParameter + + + False + + + DateTimeRanges + + > Applicable: Microsoft Teams + List of date-time ranges for a fixed schedule. At most, 10 date-time ranges can be specified using this parameter. + + System.Collections.Generic.List + + System.Collections.Generic.List None - WeeklyRecurrentSchedule + FixedSchedule - The WeeklyRecurrentSchedule parameter indicates that a weekly recurrent schedule is to be created. This parameter is mandatory when a weekly recurrent schedule is to be created. + > Applicable: Microsoft Teams + The FixedSchedule parameter indicates that a fixed schedule is to be created. SwitchParameter @@ -46405,8 +51097,9 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 False - MondayHours + FridayHours + > Applicable: Microsoft Teams List of time ranges for that day. System.Collections.Generic.List @@ -46417,8 +51110,9 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - TuesdayHours + MondayHours + > Applicable: Microsoft Teams List of time ranges for that day. System.Collections.Generic.List @@ -46428,21 +51122,23 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - - WednesdayHours + + Name - List of time ranges for that day. + > Applicable: Microsoft Teams + The Name parameter represents a unique friendly name for the schedule. - System.Collections.Generic.List + System.String - System.Collections.Generic.List + System.String None - ThursdayHours + SaturdayHours + > Applicable: Microsoft Teams List of time ranges for that day. System.Collections.Generic.List @@ -46453,8 +51149,9 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - FridayHours + SundayHours + > Applicable: Microsoft Teams List of time ranges for that day. System.Collections.Generic.List @@ -46465,20 +51162,22 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - SaturdayHours + Tenant - List of time ranges for that day. + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} - System.Collections.Generic.List + System.Guid - System.Collections.Generic.List + System.Guid None - SundayHours + ThursdayHours + > Applicable: Microsoft Teams List of time ranges for that day. System.Collections.Generic.List @@ -46489,33 +51188,23 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - Complement - - The Complement parameter indicates how the schedule is used. When Complement is enabled, the schedule is used as the inverse of the provided configuration. For example, if Complement is enabled and the schedule only contains time ranges of Monday to Friday from 9AM to 5PM, then the schedule is active at all times other than the specified time ranges. - - SwitchParameter - - SwitchParameter - - - False - - - FixedSchedule + TuesdayHours - The FixedSchedule parameter indicates that a fixed schedule is to be created. + > Applicable: Microsoft Teams + List of time ranges for that day. - SwitchParameter + System.Collections.Generic.List - SwitchParameter + System.Collections.Generic.List - False + None - DateTimeRanges + WednesdayHours - List of date-time ranges for a fixed schedule. At most, 10 date-time ranges can be specified using this parameter. + > Applicable: Microsoft Teams + List of time ranges for that day. System.Collections.Generic.List @@ -46524,17 +51213,18 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 None - - Tenant + + WeeklyRecurrentSchedule - + > Applicable: Microsoft Teams + The WeeklyRecurrentSchedule parameter indicates that a weekly recurrent schedule is to be created. This parameter is mandatory when a weekly recurrent schedule is to be created. - System.Guid + SwitchParameter - System.Guid + SwitchParameter - None + False @@ -46609,27 +51299,27 @@ $christmasSchedule = New-CsOnlineSchedule -Name "Christmas" -FixedSchedule -Date Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csonlineschedule + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineschedule New-CsOnlineTimeRange - https://learn.microsoft.com/powershell/module/teams/new-csonlinetimerange + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetimerange New-CsOnlineDateTimeRange - https://learn.microsoft.com/powershell/module/teams/new-csonlinedatetimerange + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinedatetimerange New-CsAutoAttendantCallFlow - https://learn.microsoft.com/powershell/module/teams/new-csautoattendantcallflow + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallflow New-CsAutoAttendantCallHandlingAssociation - https://learn.microsoft.com/powershell/module/teams/new-csautoattendantcallhandlingassociation + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallhandlingassociation New-CsAutoAttendant - https://learn.microsoft.com/powershell/module/teams/new-csautoattendant + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendant @@ -46959,31 +51649,31 @@ Toll Free +18002000004 Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csonlinetelephonenumberorder + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetelephonenumberorder Get-CsOnlineTelephoneNumberCountry - https://learn.microsoft.com/powershell/module/teams/get-csonlinetelephonenumbercountry + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbercountry Get-CsOnlineTelephoneNumberType - https://learn.microsoft.com/powershell/module/teams/get-csonlinetelephonenumbertype + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbertype New-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/teams/new-csonlinetelephonenumberorder + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetelephonenumberorder Get-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/teams/get-csonlinetelephonenumberorder + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumberorder Complete-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/teams/complete-csonlinetelephonenumberorder + https://learn.microsoft.com/powershell/module/microsoftteams/complete-csonlinetelephonenumberorder Clear-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/teams/clear-csonlinetelephonenumberorder + https://learn.microsoft.com/powershell/module/microsoftteams/clear-csonlinetelephonenumberorder @@ -46993,20 +51683,20 @@ Toll Free +18002000004 New CsOnlineTelephoneNumberReleaseOrder - This cmdlet creates a request to release Direct Routing telephone numbers from Microsoft Teams telephone number management inventory. + This cmdlet creates a request to release telephone numbers from Microsoft Teams telephone number management inventory. - This cmdlet releases existing Direct Routing telephone numbers from Microsoft Teams telephone number management inventory. Once released the phone numbers will not be visible in Teams PowerShell as acquired Direct Routing phone numbers. A maximum of 1,000 phone numbers can be released at a time. If more than 1,000 numbers need to be released, the requests should be divided into multiple increments of up to 1,000 numbers. - The cmdlet is an asynchronous operation and will return an OrderId as output. You can use the Get-CsOnlineTelephoneNumberOrder (https://learn.microsoft.com/powershell/module/teams/get-csonlinetelephonenumberorder)cmdlet to check the status of the OrderId, including any error or warning messages that might result from the operation: `Get-CsOnlineTelephoneNumberOrder -OrderType Release -OrderId "orderId"`. + This cmdlet releases existing telephone numbers from Microsoft Teams telephone number management inventory. Once released the phone numbers will not be visible in Teams PowerShell as acquired telephone numbers. A maximum of 1,000 phone numbers can be released at a time. If more than 1,000 numbers need to be released, the requests should be divided into multiple increments of up to 1,000 numbers. + The cmdlet is an asynchronous operation and will return an OrderId as output. You can use the Get-CsOnlineTelephoneNumberOrder (get-csonlinetelephonenumberorder.md)cmdlet to check the status of the OrderId, including any error or warning messages that might result from the operation: `Get-CsOnlineTelephoneNumberOrder -OrderType Release -OrderId "orderId"`. New-CsOnlineTelephoneNumberReleaseOrder - TelephoneNumber + EndingNumber - This is the Direct Routing telephone number you wish to release from Microsoft Teams telephone number management inventory. + This is the ending number of a range of telephone number you wish to release from your tenant in Microsoft Teams telephone number management inventory. String @@ -47015,10 +51705,22 @@ Toll Free +18002000004 None + + FileContent + + This is the content of a .csv file that includes the telephone numbers to be released from the Microsoft Teams telephone number management inventory. This parameter can be used to release up to 1,000 numbers at a time. + + Byte[] + + Byte[] + + + None + StartingNumber - This is the starting number of a range of Direct Routing telephone number you wish to release from Microsoft Teams telephone number management inventory. + This is the starting number of a range of telephone number you wish to release from your tenant in Microsoft Teams telephone number management inventory. String @@ -47028,9 +51730,9 @@ Toll Free +18002000004 None - EndingNumber + TelephoneNumber - This is the ending number of a range of Direct Routing telephone number you wish to release from Microsoft Teams telephone number management inventory. + This is the telephone number you wish to release from your tenant in Microsoft Teams telephone number management inventory. String @@ -47043,9 +51745,9 @@ Toll Free +18002000004 - TelephoneNumber + EndingNumber - This is the Direct Routing telephone number you wish to release from Microsoft Teams telephone number management inventory. + This is the ending number of a range of telephone number you wish to release from your tenant in Microsoft Teams telephone number management inventory. String @@ -47055,21 +51757,21 @@ Toll Free +18002000004 None - StartingNumber + FileContent - This is the starting number of a range of Direct Routing telephone number you wish to release from Microsoft Teams telephone number management inventory. + This is the content of a .csv file that includes the telephone numbers to be released from the Microsoft Teams telephone number management inventory. This parameter can be used to release up to 1,000 numbers at a time. - String + Byte[] - String + Byte[] None - EndingNumber + StartingNumber - This is the ending number of a range of Direct Routing telephone number you wish to release from Microsoft Teams telephone number management inventory. + This is the starting number of a range of telephone number you wish to release from your tenant in Microsoft Teams telephone number management inventory. String @@ -47078,16 +51780,14 @@ Toll Free +18002000004 None - - FileContent + + TelephoneNumber - This is the content of a .csv file that includes the Direct Routing telephone numbers to be released from the Microsoft Teams telephone number management inventory. This parameter can be used to release up to 1,000 numbers at a time. - ```yaml Type: Byte[] Parameter Sets: (All) Aliases: - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False + This is the telephone number you wish to release from your tenant in Microsoft Teams telephone number management inventory. - + String - + String None @@ -47125,7 +51825,7 @@ Toll Free +18002000004 PS C:\> New-CsOnlineTelephoneNumberReleaseOrder -TelephoneNumber "+123456789" cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c13 - In this example, a new Direct Routing telephone number "+123456789" is being released from Microsoft Teams telephone number management inventory. The output of the cmdlet is the OrderId that can be used with the Get-CsOnlineTelephoneNumberOrder (https://learn.microsoft.com/powershell/module/teams/get-csonlinetelephonenumberorder)cmdlet to retrieve the status of the order: `Get-CsOnlineTelephoneNumberOrder -OrderType Release -OrderId "orderId"`. + In this example, a telephone number "+123456789" is being released from Microsoft Teams telephone number management inventory. @@ -47133,7 +51833,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c13 PS C:\> New-CsOnlineTelephoneNumberReleaseOrder -TelephoneNumber "+123456789,+134567890,+145678901" cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c13 - In this example, a list of Direct Routing telephone numbers are being released from Microsoft Teams telephone number management. The output of the cmdlet is the OrderId that can be used with the Get-CsOnlineTelephoneNumberOrder (https://learn.microsoft.com/powershell/module/teams/get-csonlinetelephonenumberorder)cmdlet to retrieve the status of the order: `Get-CsOnlineTelephoneNumberOrder -OrderType Release -OrderId "orderId"`. + In this example, a list of telephone numbers are being released from Microsoft Teams telephone number management. @@ -47141,7 +51841,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c13 PS C:\> New-CsOnlineTelephoneNumberReleaseOrder -StartingNumber "+12000000" -EndingNumber "+12000009" cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c13 - In this example, a range of Direct Routing telephone numbers from "+12000000" to "+12000009" are being released from Microsoft Teams telephone number management. The output of the cmdlet is the OrderId that can be used with the Get-CsOnlineTelephoneNumberOrder (https://learn.microsoft.com/powershell/module/teams/get-csonlinetelephonenumberorder)cmdlet to retrieve the status of the order: `Get-CsOnlineTelephoneNumberOrder -OrderType Release -OrderId "orderId"`. + In this example, a range of telephone numbers from "+12000000" to "+12000009" are being released from Microsoft Teams telephone number management. @@ -47150,7 +51850,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c13 PS C:\> New-CsOnlineTelephoneNumberReleaseOrder -FileContent $drlist cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c13 - In this example, the content of a file with a list of Direct Routing telephone numbers are being released via file upload. The file should be in Comma Separated Values (CSV) file format and should only contain the list of DR numbers to be released. The New-CsOnlineTelephoneNumberReleaseOrder cmdlet is only used to pass the content. To read the output of this cmdlet and retrieve the status of your order, you can use OrderId with the Get-CsOnlineTelephoneNumberOrder (./get-csonlinetelephonenumberorder.md)cmdlet : `Get-CsOnlineTelephoneNumberOrder -OrderType Release -OrderId "orderId"`. + In this example, the content of a file with a list of telephone numbers are being released via file upload. The file should be in Comma Separated Values (CSV) file format and should only contain the list of telephone numbers to be released. The `New-CsOnlineTelephoneNumberReleaseOrder` cmdlet is only used to pass the content. @@ -47161,11 +51861,11 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c13 Get-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/teams/get-csonlinetelephonenumberorder + New-CsOnlineDirectRoutingTelephoneNumberUploadOrder - https://learn.microsoft.com/powershell/module/teams/new-csonlinedirectroutingtelephonenumberuploadorder + @@ -47187,9 +51887,10 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c13 New-CsOnlineTimeRange - Start + End - The Start parameter represents the start bound of the time range. + > Applicable: Microsoft Teams + The End parameter represents the end bound of the time range. System.TimeSpan @@ -47199,9 +51900,10 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c13 None - End + Start - The End parameter represents the end bound of the time range. + > Applicable: Microsoft Teams + The Start parameter represents the start bound of the time range. System.TimeSpan @@ -47213,7 +51915,8 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c13 Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -47226,9 +51929,10 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c13 - Start + End - The Start parameter represents the start bound of the time range. + > Applicable: Microsoft Teams + The End parameter represents the end bound of the time range. System.TimeSpan @@ -47238,9 +51942,10 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c13 None - End + Start - The End parameter represents the end bound of the time range. + > Applicable: Microsoft Teams + The Start parameter represents the start bound of the time range. System.TimeSpan @@ -47252,7 +51957,8 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c13 Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -47306,7 +52012,7 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c13 Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csonlinetimerange + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetimerange @@ -47316,11 +52022,12 @@ cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c13 New CsOnlineVoiceRoute - Creates a new online voice route. Online voice routes contain instructions that tell Skype for Business Online how to route calls from Office 365 users to phone numbers on the public switched telephone network (PSTN) or a private branch exchange (PBX). + Creates a new online voice route. Use this cmdlet to create a new online voice route. All online voice routes are created at the Global scope. However, multiple global voice routes can be defined. This is accomplished through the Identity parameter, which requires a unique route name. + Online voice routes contain instructions that tell Skype for Business Online how to route calls from Office 365 users to phone numbers on the public switched telephone network (PSTN) or a private branch exchange (PBX). Voice routes are associated with online voice policies through online PSTN usages. A voice route includes a regular expression that identifies which phone numbers will be routed through a given voice route: phone numbers matching the regular expression will be routed through this route. This cmdlet is used when configuring Microsoft Phone System Direct Routing. @@ -47736,19 +52443,19 @@ New-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{add=$x} Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csonlinevoiceroute + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoiceroute Get-CsOnlineVoiceRoute - https://learn.microsoft.com/powershell/module/teams/get-csonlinevoiceroute + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoiceroute Set-CsOnlineVoiceRoute - https://learn.microsoft.com/powershell/module/teams/set-csonlinevoiceroute + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoiceroute Remove-CsOnlineVoiceRoute - https://learn.microsoft.com/powershell/module/teams/remove-csonlinevoiceroute + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoiceroute @@ -47958,23 +52665,23 @@ New-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{add=$x} Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csonlinevoiceroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoiceroutingpolicy Get-CsOnlineVoiceRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csonlinevoiceroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoiceroutingpolicy Set-CsOnlineVoiceRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csonlinevoiceroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoiceroutingpolicy Grant-CsOnlineVoiceRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csonlinevoiceroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csonlinevoiceroutingpolicy Remove-CsOnlineVoiceRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csonlinevoiceroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoiceroutingpolicy @@ -48095,6 +52802,491 @@ $getBatchStatusResponse.BatchItem + + + New-CsSharedCallQueueHistoryTemplate + New + CsSharedCallQueueHistoryTemplate + + Use the New-CsSharedCallQueueHistory cmdlet to create a Shared Call Queue History template. + + + + Use the New-CsSharedCallQueueHistory cmdlet to create a Shared Call Queue History template. + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for this feature. General Availability for this functionality has not been determined at this time. + + + + New-CsSharedCallQueueHistoryTemplate + + AnsweredAndOutboundCalls + + > Applicable: Microsoft Teams + A description for the shared call queue history template. + PARAMVALUE: Off | AuthorizedUsersOnly | AuthorizedUsersAndAgents + + Object + + Object + + + Off + + + Description + + > Applicable: Microsoft Teams + A description for the shared call queue history template. + + System.String + + System.String + + + None + + + IncomingMissedCalls + + > Applicable: Microsoft Teams + A description for the shared call queue history template. + PARAMVALUE: Off | AuthorizedUsersOnly | AuthorizedUsersAndAgents + + Object + + Object + + + Off + + + Name + + > Applicable: Microsoft Teams + The name of the shared call queue history template. + + System.String + + System.String + + + None + + + + + + AnsweredAndOutboundCalls + + > Applicable: Microsoft Teams + A description for the shared call queue history template. + PARAMVALUE: Off | AuthorizedUsersOnly | AuthorizedUsersAndAgents + + Object + + Object + + + Off + + + Description + + > Applicable: Microsoft Teams + A description for the shared call queue history template. + + System.String + + System.String + + + None + + + IncomingMissedCalls + + > Applicable: Microsoft Teams + A description for the shared call queue history template. + PARAMVALUE: Off | AuthorizedUsersOnly | AuthorizedUsersAndAgents + + Object + + Object + + + Off + + + Name + + > Applicable: Microsoft Teams + The name of the shared call queue history template. + + System.String + + System.String + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.OAA.Models.AutoAttendant + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + New-CsSharedCallQueueHistoryTemplate -Name "Customer Service" -Description "Missed:All Answered:Auth" -IncomingMissedCall XXXXXX -AnsweredAndOutboundCalls XXXXX + + This example creates a new Shared CallQueue History template where incoming missed calls are shown to authorized users and agents and, answered and outbound calls are shown to authorized users only. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/New-CsSharedCallQueueHistoryTemplate + + + Get-CsSharedCallQueueHistoryTemplate + + + + Set-CsSharedCallQueueHistoryTemplate + + + + Remove-CsSharedCallQueueHistoryTemplate + + + + New-CsCallQueue + + + + Get-CsCallQueue + + + + Set-CsCallQueue + + + + Remove-CsCallQueue + + + + + + + New-CsTag + New + CsTag + + Creates new tag that can be added to a TagTemplate. + + + + The New-CsTag cmdlet creates a new tag associated with a specific Auto Attendant callable entity. This tag must be added to a TagTemplate. + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for these features. General Availability for this functionality has not been determined at this time. + + + + New-CsTag + + TagName + + The name of the tag + + String + + String + + + None + + + TagDetails + + The full callable entity object created with the New-CsAutoAttendantCallableEntity (new-csautoattendantcallableentity.md)cmdlet + + Object + + Object + + + None + + + Tenant + + This parameter is reserved for Microsoft internal use only. + + Guid + + Guid + + + None + + + + + + TagName + + The name of the tag + + String + + String + + + None + + + TagDetails + + The full callable entity object created with the New-CsAutoAttendantCallableEntity (new-csautoattendantcallableentity.md)cmdlet + + Object + + Object + + + None + + + Tenant + + This parameter is reserved for Microsoft internal use only. + + Guid + + Guid + + + None + + + + + + + Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue + + + + + + + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstag + + + New-CsTagsTemplate + + + + Get-CsTagsTemplate + + + + Set-CsTagsTemplate + + + + Remove-CsTagsTemplate + + + + + + + New-CsTagsTemplate + New + CsTagsTemplate + + Creates new tag template. + + + + The New-CsTagsTemplate cmdlet creates a new tag template made of up of tags created with New-CsTag (New-CsTag.md). + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for these features. General Availability for this functionality has not been determined at this time. + + + + New-CsTagsTemplate + + Name + + The name of the tag + + String + + String + + + None + + + Description + + A description for the purpose of the tag template + + String + + String + + + None + + + Tags + + The list of tags to add to the template. + + List + + List + + + None + + + Tenant + + This parameter is reserved for Microsoft internal use only. + + Guid + + Guid + + + None + + + + + + Name + + The name of the tag + + String + + String + + + None + + + Description + + A description for the purpose of the tag template + + String + + String + + + None + + + Tags + + The list of tags to add to the template. + + List + + List + + + None + + + Tenant + + This parameter is reserved for Microsoft internal use only. + + Guid + + Guid + + + None + + + + + + + Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue + + + + + + + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstagstemplate + + + New-CsTag + + + + Get-CsTagsTemplate + + + + Set-CsTagsTemplate + + + + Remove-CsTagsTemplate + + + + New-CsTeamsAudioConferencingPolicy @@ -48134,6 +53326,17 @@ $getBatchStatusResponse.BatchItem True + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + Force @@ -48168,17 +53371,6 @@ $getBatchStatusResponse.BatchItem None - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - WhatIf @@ -48205,6 +53397,18 @@ $getBatchStatusResponse.BatchItem True + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + Force @@ -48253,18 +53457,6 @@ $getBatchStatusResponse.BatchItem None - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - WhatIf @@ -48313,19 +53505,19 @@ $getBatchStatusResponse.BatchItem Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamsaudioconferencingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsaudioconferencingpolicy Get-CsTeamsAudioConferencingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsaudioconferencingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsaudioconferencingpolicy Set-CsTeamsAudioConferencingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsaudioconferencingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsaudioconferencingpolicy Grant-CsTeamsAudioConferencingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsaudioconferencingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsaudioconferencingpolicy @@ -48335,12 +53527,12 @@ $getBatchStatusResponse.BatchItem New CsTeamsCallParkPolicy - The TeamsCallParkPolicy controls whether or not users are able to leverage the call park feature in Microsoft Teams. Call park allows enterprise voice customers to place a call on hold and then perform a number of actions on that call: transfer to another department, retrieve via the same phone, or retrieve via a different Teams phone. The New-CsTeamsCallParkPolicy cmdlet lets you create a new custom policy that can then be assigned to one or more specific users. - NOTE: The call park feature currently available in desktop. mobile and web clients. Supported with TeamsOnly mode. + The New-CsTeamsCallParkPolicy cmdlet lets you create a new custom policy that can then be assigned to one or more specific users. - The TeamsCallParkPolicy controls whether or not users are able to leverage the call park feature in Microsoft Teams. Call park allows enterprise voice customers to place a call on hold and then perform a number of actions on that call: transfer to another department, retrieve via the same phone, or retrieve via a different phone. The New-CsTeamsCallParkPolicy cmdlet lets you create a new custom policy that can then be assigned to one or more specific users. + The TeamsCallParkPolicy controls whether or not users are able to leverage the call park feature in Microsoft Teams. Call park allows enterprise voice customers to place a call on hold and then perform a number of actions on that call: transfer to another department, retrieve via the same phone, or retrieve via a different phone. + NOTE: The call park feature currently available in desktop. mobile and web clients. Supported with TeamsOnly mode. @@ -48380,6 +53572,18 @@ $getBatchStatusResponse.BatchItem False + + Description + + Enables administrators to provide explanatory text about the policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + Force @@ -48392,29 +53596,29 @@ $getBatchStatusResponse.BatchItem False - PickupRangeEnd + ParkTimeoutSeconds - Specify the maximum value that a rendered pickup code can take. Value can be from 10 to 9999. - Note: PickupRangeStart must be smaller than PickupRangeEnd. + Specify the number of seconds to wait before ringing the parker when the parked call hasn't been picked up. Value can be from 120 to 1800 (seconds). Integer Integer - 99 + 300 - ParkTimeoutSeconds + PickupRangeEnd - Specify the number of seconds to wait before ringing the parker when the parked call hasn't been picked up. Value can be from 120 to 1800 (seconds). + Specify the maximum value that a rendered pickup code can take. Value can be from 10 to 9999. + Note: PickupRangeStart must be smaller than PickupRangeEnd. Integer Integer - 300 + 99 PickupRangeStart @@ -48452,18 +53656,6 @@ $getBatchStatusResponse.BatchItem False - - Description - - Enables administrators to provide explanatory text about the policy. For example, the Description might indicate the users the policy should be assigned to. - - String - - String - - - None - @@ -48491,6 +53683,18 @@ $getBatchStatusResponse.BatchItem False + + Description + + Enables administrators to provide explanatory text about the policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + Force @@ -48516,29 +53720,29 @@ $getBatchStatusResponse.BatchItem None - PickupRangeEnd + ParkTimeoutSeconds - Specify the maximum value that a rendered pickup code can take. Value can be from 10 to 9999. - Note: PickupRangeStart must be smaller than PickupRangeEnd. + Specify the number of seconds to wait before ringing the parker when the parked call hasn't been picked up. Value can be from 120 to 1800 (seconds). Integer Integer - 99 + 300 - ParkTimeoutSeconds + PickupRangeEnd - Specify the number of seconds to wait before ringing the parker when the parked call hasn't been picked up. Value can be from 120 to 1800 (seconds). + Specify the maximum value that a rendered pickup code can take. Value can be from 10 to 9999. + Note: PickupRangeStart must be smaller than PickupRangeEnd. Integer Integer - 300 + 99 PickupRangeStart @@ -48577,18 +53781,6 @@ $getBatchStatusResponse.BatchItem False - - Description - - Enables administrators to provide explanatory text about the policy. For example, the Description might indicate the users the policy should be assigned to. - - String - - String - - - None - @@ -48641,7 +53833,7 @@ $getBatchStatusResponse.BatchItem Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamscallparkpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallparkpolicy @@ -48975,7 +54167,7 @@ $getBatchStatusResponse.BatchItem Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamscortanapolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscortanapolicy @@ -49018,6 +54210,17 @@ $getBatchStatusResponse.BatchItem None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + Description @@ -49033,7 +54236,7 @@ $getBatchStatusResponse.BatchItem EmergencyNumbers - One or more emergency number objects obtained from the New-CsTeamsEmergencyNumber (https://learn.microsoft.com/powershell/module/teams/new-csteamsemergencynumber)cmdlet. + One or more emergency number objects obtained from the New-CsTeamsEmergencyNumber (https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencynumber)cmdlet. Object @@ -49053,43 +54256,32 @@ $getBatchStatusResponse.BatchItem False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Identity + + AllowEnhancedEmergencyServices - The Identity parameter is a unique identifier that designates the name of the policy. + Flag to enable Enhanced Emergency Services. - String + Boolean - String + Boolean None - - AllowEnhancedEmergencyServices + + Confirm - Flag to enable Enhanced Emergency Services. + Prompts you for confirmation before running the cmdlet. - Boolean + SwitchParameter - Boolean + SwitchParameter - None + False Description @@ -49106,7 +54298,7 @@ $getBatchStatusResponse.BatchItem EmergencyNumbers - One or more emergency number objects obtained from the New-CsTeamsEmergencyNumber (https://learn.microsoft.com/powershell/module/teams/new-csteamsemergencynumber)cmdlet. + One or more emergency number objects obtained from the New-CsTeamsEmergencyNumber (https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencynumber)cmdlet. Object @@ -49115,22 +54307,22 @@ $getBatchStatusResponse.BatchItem None - - WhatIf + + Identity - Shows what would happen if the cmdlet runs. The cmdlet is not run. + The Identity parameter is a unique identifier that designates the name of the policy. - SwitchParameter + String - SwitchParameter + String - False + None - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -49186,27 +54378,27 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamsemergencycallroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallroutingpolicy Set-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsemergencycallroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallroutingpolicy Grant-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsemergencycallroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsemergencycallroutingpolicy Remove-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsemergencycallroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsemergencycallroutingpolicy Get-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsemergencycallroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsemergencycallroutingpolicy New-CsTeamsEmergencyNumber - https://learn.microsoft.com/powershell/module/teams/new-csteamsemergencynumber + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencynumber @@ -49345,15 +54537,15 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamsemergencynumber + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencynumber Set-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsemergencycallroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallroutingpolicy New-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsemergencycallroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallroutingpolicy @@ -49385,19 +54577,6 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en None - - Description - - Enables administrators to provide explanatory text to accompany a Teams enhanced encryption policy. - For example, the Description might include information about the users the policy should be assigned to. - - String - - String - - - None - CallingEndtoEndEncryptionEnabledType @@ -49410,28 +54589,29 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en Disabled - - MeetingEndToEndEncryption + + Confirm - Determines whether end-to-end encrypted meetings are available in Teams ( requires a Teams Premium license (https://www.microsoft.com/en-us/microsoft-teams/premium)). Set this to DisabledUserOverride to allow users to schedule end-to-end encrypted meetings. Set this to Disabled to prohibit. + Prompts you for confirmation before running the cmdlet. - Enum - Enum + SwitchParameter - Disabled + False - InMemory + Description - Creates an object reference without actually committing the object as a permanent change. If you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling Set-CsTeamsEnhancedEncryptionPolicy. + Enables administrators to provide explanatory text to accompany a Teams enhanced encryption policy. + For example, the Description might include information about the users the policy should be assigned to. + String - SwitchParameter + String - False + None Force @@ -49444,10 +54624,10 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en False - - WhatIf + + InMemory - Shows what would happen if the cmdlet runs. The cmdlet is not run. + Creates an object reference without actually committing the object as a permanent change. If you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling Set-CsTeamsEnhancedEncryptionPolicy. SwitchParameter @@ -49455,10 +54635,22 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en False - - Confirm + + MeetingEndToEndEncryption - Prompts you for confirmation before running the cmdlet. + Determines whether end-to-end encrypted meetings are available in Teams ( requires a Teams Premium license (https://www.microsoft.com/en-us/microsoft-teams/premium)). Set this to DisabledUserOverride to allow users to schedule end-to-end encrypted meetings. Set this to Disabled to prohibit. + + Enum + + Enum + + + Disabled + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -49470,41 +54662,53 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en - Description + CallingEndtoEndEncryptionEnabledType - Enables administrators to provide explanatory text to accompany a Teams enhanced encryption policy. - For example, the Description might include information about the users the policy should be assigned to. + Determines whether end-to-end encrypted calling is available for the user in Teams. Set this to DisabledUserOverride to allow user to turn on end-to-end encrypted calls. Set this to Disabled to prohibit. - String + Enum - String + Enum - None + Disabled + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False - CallingEndtoEndEncryptionEnabledType + Description - Determines whether end-to-end encrypted calling is available for the user in Teams. Set this to DisabledUserOverride to allow user to turn on end-to-end encrypted calls. Set this to Disabled to prohibit. + Enables administrators to provide explanatory text to accompany a Teams enhanced encryption policy. + For example, the Description might include information about the users the policy should be assigned to. - Enum + String - Enum + String - Disabled + None - MeetingEndToEndEncryption + Force - Determines whether end-to-end encrypted meetings are available in Teams ( requires a Teams Premium license (https://www.microsoft.com/en-us/microsoft-teams/premium)). Set this to DisabledUserOverride to allow users to schedule end-to-end encrypted meetings. Set this to Disabled to prohibit. + Suppresses all non-fatal errors. - Enum + SwitchParameter - Enum + SwitchParameter - Disabled + False Identity @@ -49531,16 +54735,16 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en False - Force + MeetingEndToEndEncryption - Suppresses all non-fatal errors. + Determines whether end-to-end encrypted meetings are available in Teams ( requires a Teams Premium license (https://www.microsoft.com/en-us/microsoft-teams/premium)). Set this to DisabledUserOverride to allow users to schedule end-to-end encrypted meetings. Set this to Disabled to prohibit. - SwitchParameter + Enum - SwitchParameter + Enum - False + Disabled WhatIf @@ -49554,18 +54758,6 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - @@ -49602,23 +54794,23 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamsenhancedencryptionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsenhancedencryptionpolicy Get-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsenhancedencryptionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsenhancedencryptionpolicy Set-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsenhancedencryptionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsenhancedencryptionpolicy Remove-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsenhancedencryptionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsenhancedencryptionpolicy Grant-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsenhancedencryptionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsenhancedencryptionpolicy @@ -49649,22 +54841,37 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en None - - AllowWebinars + + AllowedQuestionTypesInRegistrationForm - This setting governs if a user can create webinars using Teams Events. Possible values are: - Enabled : Enables creating webinars. - Disabled : Disables creating webinars. + This setting governs which users in a tenant can add which registration form questions to an event registration page for attendees to answer when registering for the event. + Possible values are: DefaultOnly, DefaultAndPredefinedOnly, AllQuestions. String String - Enabled + None - UseMicrosoftECDN + AllowedTownhallTypesForRecordingPublish - This setting governs whether the admin disables this property and prevents the organizers from creating town halls that use Microsoft eCDN even though they have been assigned a Teams Premium license. + This setting governs which types of town halls can have their recordings published. + Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. + + String + + String + + + None + + + AllowedWebinarTypesForRecordingPublish + + This setting governs which types of webinars can have their recordings published. + Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. String @@ -49674,9 +54881,9 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en None - AllowTownhalls + AllowEmailEditing - This setting governs if a user can create town halls using Teams Events. Possible values are: - Enabled : Enables creating town halls. - Disabled : Disables creating town hall. + This setting governs if a user is allowed to edit the communication emails in Teams Town Hall or Teams Webinar events. Possible values are: - Enabled : Enables editing of communication emails. - Disabled : Disables editing of communication emails. String @@ -49686,21 +54893,33 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en Enabled - TownhallEventAttendeeAccess + AllowEventIntegrations - This setting governs what identity types may attend a Town hall that is scheduled by a particular person or group that is assigned this policy. Possible values are: - Everyone : Anyone with the join link may enter the event. - EveryoneInOrganizationAndGuests : Only those who are Guests to the tenant, MTO users, and internal AAD users may enter the event. + This setting governs the access to the integrations tab in the event creation workflow. + + Boolean + + Boolean + + + None + + + AllowTownhalls + + This setting governs if a user can create town halls using Teams Events. Possible values are: - Enabled : Enables creating town halls. - Disabled : Disables creating town hall. String String - Everyone + Enabled - AllowEmailEditing + AllowWebinars - This setting governs if a user is allowed to edit the communication emails in Teams Town Hall or Teams Webinar events. Possible values are: - Enabled : Enables editing of communication emails. - Disabled : Disables editing of communication emails. + This setting governs if a user can create webinars using Teams Events. Possible values are: - Enabled : Enables creating webinars. - Disabled : Disables creating webinars. String @@ -49710,24 +54929,33 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en Enabled - EventAccessType + BroadcastPremiumApps - This setting governs which users can access the Town hall event and access the event registration page or the event site to register for a Webinar. It also governs which user type is allowed to join the session or sessions in the event for both event types. - Possible values are: - Everyone : Enables creating events to allow in-tenant, guests, federated, and anonymous (external to the tenant) users to register and join the event. - - EveryoneInCompanyExcludingGuests : For Webinar - enables creating events to allow only in-tenant users to register and join the event. For Town hall - enables creating events to allow only in-tenant users to join the event (Note: for Town hall, in-tenant users include guests; this parameter will disable public Town halls). + This setting will enable Tenant Admins to specify if an organizer of a Teams Premium town hall may add an app that is accessible by everyone, including attendees, in a broadcast style Event including a Town hall. This does not include control over apps (such as AI Producer and Custom Streaming Apps) that are only accessible by the Event group. + Possible values are: - Enabled : An organizer of a Premium town hall can add a Premium App such as Polls to the Town hall - Disabled : An organizer of a Premium town hall CANNOT add a Premium App such as Polls to the Town hall String String - Everyone + Enabled + + + Confirm + + The Confirm switch does not work with this cmdlet. + + + SwitchParameter + + + False - AllowedQuestionTypesInRegistrationForm + Description - This setting governs which users in a tenant can add which registration form questions to an event registration page for attendees to answer when registering for the event. - Possible values are: DefaultOnly, DefaultAndPredefinedOnly, AllQuestions. + Enables administrators to provide explanatory text to accompany a Teams Events policy. String @@ -49737,30 +54965,30 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en None - AllowedTownhallTypesForRecordingPublish + EventAccessType - This setting governs which types of town halls can have their recordings published. - Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. + This setting governs which users can access the Town hall event and access the event registration page or the event site to register for a Webinar. It also governs which user type is allowed to join the session or sessions in the event for both event types. + Possible values are: - Everyone : Enables creating events to allow in-tenant, guests, federated, and anonymous (external to the tenant) users to register and join the event. + - EveryoneInCompanyExcludingGuests : For Webinar - enables creating events to allow only in-tenant users to register and join the event. For Town hall - enables creating events to allow only in-tenant users to join the event (Note: for Town hall, in-tenant users include guests; this parameter will disable public Town halls). String String - None + Everyone - AllowedWebinarTypesForRecordingPublish + ImmersiveEvents - This setting governs which types of webinars can have their recordings published. - Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. + This setting governs if a user can create Immersive Events using Teams Events. Possible values are: - Enabled : Enables creating Immersive Events. - Disabled : Disables creating Immersive Events. String String - None + Enabled RecordingForTownhall @@ -49787,21 +55015,33 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en Enabled - TranscriptionForTownhall + TownhallChatExperience - Determines whether transcriptions are allowed in a user's townhall. Possible values are: - Enabled : Allow transcriptions in user's townhalls. - Disabled : Prohibit transcriptions in user's townhalls. + This setting governs if the user can enable the Comment Stream chat experience for Townhalls. String String - Enabled + None - TranscriptionForWebinar + TownhallEventAttendeeAccess - Determines whether transcriptions are allowed in a user's webinar. Possible values are: - Enabled : Allow transcriptions in user's webinars. - Disabled : Prohibit transcriptions in user's webinars. + This setting governs what identity types may attend a Town hall that is scheduled by a particular person or group that is assigned this policy. Possible values are: - Everyone : Anyone with the join link may enter the event. - EveryoneInOrganizationAndGuests : Only those who are Guests to the tenant, MTO users, and internal AAD users may enter the event. + + String + + String + + + Everyone + + + TranscriptionForTownhall + + Determines whether transcriptions are allowed in a user's townhall. Possible values are: - Enabled : Allow transcriptions in user's townhalls. - Disabled : Prohibit transcriptions in user's townhalls. String @@ -49811,21 +55051,21 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en Enabled - AllowEventIntegrations + TranscriptionForWebinar - This setting governs the access to the integrations tab in the event creation workflow. + Determines whether transcriptions are allowed in a user's webinar. Possible values are: - Enabled : Allow transcriptions in user's webinars. - Disabled : Prohibit transcriptions in user's webinars. - Boolean + String - Boolean + String - None + Enabled - TownhallChatExperience + UseMicrosoftECDN - This setting governs if the user can enable the Comment Stream chat experience for Townhalls. + This setting governs whether the admin disables this property and prevents the organizers from creating town halls that use Microsoft eCDN even though they have been assigned a Teams Premium license. String @@ -49834,28 +55074,31 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en None - - Confirm + + MaxResolutionForTownhall - The Confirm switch does not work with this cmdlet. + This policy sets the maximum video resolution supported in Town hall events. + Possible values are: - Max720p : Town halls support video resolution up to 720p. - Max1080p : Town halls support video resolution up to 1080p. + String - SwitchParameter + String - False + Max1080p - Description + HighBitrateForTownhall - Enables administrators to provide explanatory text to accompany a Teams Events policy. + This policy controls whether high-bitrate streaming is enabled for Town hall events. + Possible values are: - Enabled : Enables high bitrate for Town hall events. - Disabled : Disables high bitrate for Town hall events. String String - None + Disabled WhatIf @@ -49871,22 +55114,37 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en - - AllowWebinars + + AllowedQuestionTypesInRegistrationForm - This setting governs if a user can create webinars using Teams Events. Possible values are: - Enabled : Enables creating webinars. - Disabled : Disables creating webinars. + This setting governs which users in a tenant can add which registration form questions to an event registration page for attendees to answer when registering for the event. + Possible values are: DefaultOnly, DefaultAndPredefinedOnly, AllQuestions. String String - Enabled + None - UseMicrosoftECDN + AllowedTownhallTypesForRecordingPublish - This setting governs whether the admin disables this property and prevents the organizers from creating town halls that use Microsoft eCDN even though they have been assigned a Teams Premium license. + This setting governs which types of town halls can have their recordings published. + Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. + + String + + String + + + None + + + AllowedWebinarTypesForRecordingPublish + + This setting governs which types of webinars can have their recordings published. + Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. String @@ -49896,9 +55154,9 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en None - AllowTownhalls + AllowEmailEditing - This setting governs if a user can create town halls using Teams Events. Possible values are: - Enabled : Enables creating town halls. - Disabled : Disables creating town hall. + This setting governs if a user is allowed to edit the communication emails in Teams Town Hall or Teams Webinar events. Possible values are: - Enabled : Enables editing of communication emails. - Disabled : Disables editing of communication emails. String @@ -49908,21 +55166,33 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en Enabled - TownhallEventAttendeeAccess + AllowEventIntegrations - This setting governs what identity types may attend a Town hall that is scheduled by a particular person or group that is assigned this policy. Possible values are: - Everyone : Anyone with the join link may enter the event. - EveryoneInOrganizationAndGuests : Only those who are Guests to the tenant, MTO users, and internal AAD users may enter the event. + This setting governs the access to the integrations tab in the event creation workflow. + + Boolean + + Boolean + + + None + + + AllowTownhalls + + This setting governs if a user can create town halls using Teams Events. Possible values are: - Enabled : Enables creating town halls. - Disabled : Disables creating town hall. String String - Everyone + Enabled - AllowEmailEditing + AllowWebinars - This setting governs if a user is allowed to edit the communication emails in Teams Town Hall or Teams Webinar events. Possible values are: - Enabled : Enables editing of communication emails. - Disabled : Disables editing of communication emails. + This setting governs if a user can create webinars using Teams Events. Possible values are: - Enabled : Enables creating webinars. - Disabled : Disables creating webinars. String @@ -49932,24 +55202,34 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en Enabled - EventAccessType + BroadcastPremiumApps - This setting governs which users can access the Town hall event and access the event registration page or the event site to register for a Webinar. It also governs which user type is allowed to join the session or sessions in the event for both event types. - Possible values are: - Everyone : Enables creating events to allow in-tenant, guests, federated, and anonymous (external to the tenant) users to register and join the event. - - EveryoneInCompanyExcludingGuests : For Webinar - enables creating events to allow only in-tenant users to register and join the event. For Town hall - enables creating events to allow only in-tenant users to join the event (Note: for Town hall, in-tenant users include guests; this parameter will disable public Town halls). + This setting will enable Tenant Admins to specify if an organizer of a Teams Premium town hall may add an app that is accessible by everyone, including attendees, in a broadcast style Event including a Town hall. This does not include control over apps (such as AI Producer and Custom Streaming Apps) that are only accessible by the Event group. + Possible values are: - Enabled : An organizer of a Premium town hall can add a Premium App such as Polls to the Town hall - Disabled : An organizer of a Premium town hall CANNOT add a Premium App such as Polls to the Town hall String String - Everyone + Enabled + + + Confirm + + The Confirm switch does not work with this cmdlet. + + SwitchParameter + + SwitchParameter + + + False - AllowedQuestionTypesInRegistrationForm + Description - This setting governs which users in a tenant can add which registration form questions to an event registration page for attendees to answer when registering for the event. - Possible values are: DefaultOnly, DefaultAndPredefinedOnly, AllQuestions. + Enables administrators to provide explanatory text to accompany a Teams Events policy. String @@ -49959,10 +55239,23 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en None - AllowedTownhallTypesForRecordingPublish + EventAccessType - This setting governs which types of town halls can have their recordings published. - Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. + This setting governs which users can access the Town hall event and access the event registration page or the event site to register for a Webinar. It also governs which user type is allowed to join the session or sessions in the event for both event types. + Possible values are: - Everyone : Enables creating events to allow in-tenant, guests, federated, and anonymous (external to the tenant) users to register and join the event. + - EveryoneInCompanyExcludingGuests : For Webinar - enables creating events to allow only in-tenant users to register and join the event. For Town hall - enables creating events to allow only in-tenant users to join the event (Note: for Town hall, in-tenant users include guests; this parameter will disable public Town halls). + + String + + String + + + Everyone + + + Identity + + Unique identifier assigned to the Teams Events policy. String @@ -49972,17 +55265,16 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en None - AllowedWebinarTypesForRecordingPublish + ImmersiveEvents - This setting governs which types of webinars can have their recordings published. - Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. + This setting governs if a user can create Immersive Events using Teams Events. Possible values are: - Enabled : Enables creating Immersive Events. - Disabled : Disables creating Immersive Events. String String - None + Enabled RecordingForTownhall @@ -50009,88 +55301,90 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en Enabled - TranscriptionForTownhall + TownhallChatExperience - Determines whether transcriptions are allowed in a user's townhall. Possible values are: - Enabled : Allow transcriptions in user's townhalls. - Disabled : Prohibit transcriptions in user's townhalls. + This setting governs if the user can enable the Comment Stream chat experience for Townhalls. String String - Enabled + None - TranscriptionForWebinar + TownhallEventAttendeeAccess - Determines whether transcriptions are allowed in a user's webinar. Possible values are: - Enabled : Allow transcriptions in user's webinars. - Disabled : Prohibit transcriptions in user's webinars. + This setting governs what identity types may attend a Town hall that is scheduled by a particular person or group that is assigned this policy. Possible values are: - Everyone : Anyone with the join link may enter the event. - EveryoneInOrganizationAndGuests : Only those who are Guests to the tenant, MTO users, and internal AAD users may enter the event. String String - Enabled + Everyone - AllowEventIntegrations + TranscriptionForTownhall - This setting governs the access to the integrations tab in the event creation workflow. + Determines whether transcriptions are allowed in a user's townhall. Possible values are: - Enabled : Allow transcriptions in user's townhalls. - Disabled : Prohibit transcriptions in user's townhalls. - Boolean + String - Boolean + String - None + Enabled - TownhallChatExperience + TranscriptionForWebinar - This setting governs if the user can enable the Comment Stream chat experience for Townhalls. + Determines whether transcriptions are allowed in a user's webinar. Possible values are: - Enabled : Allow transcriptions in user's webinars. - Disabled : Prohibit transcriptions in user's webinars. String String - None + Enabled - - Confirm + + UseMicrosoftECDN - The Confirm switch does not work with this cmdlet. + This setting governs whether the admin disables this property and prevents the organizers from creating town halls that use Microsoft eCDN even though they have been assigned a Teams Premium license. - SwitchParameter + String - SwitchParameter + String - False + None - Description + MaxResolutionForTownhall - Enables administrators to provide explanatory text to accompany a Teams Events policy. + This policy sets the maximum video resolution supported in Town hall events. + Possible values are: - Max720p : Town halls support video resolution up to 720p. - Max1080p : Town halls support video resolution up to 1080p. String String - None + Max1080p - - Identity + + HighBitrateForTownhall - Unique identifier assigned to the Teams Events policy. + This policy controls whether high-bitrate streaming is enabled for Town hall events. + Possible values are: - Enabled : Enables high bitrate for Town hall events. - Disabled : Disables high bitrate for Town hall events. String String - None + Disabled WhatIf @@ -50149,7 +55443,7 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamseventspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamseventspolicy @@ -50319,18 +55613,6 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en - - Identity - - The identity of the policy that you want to create. - - XdsIdentity - - XdsIdentity - - - None - AllowBetterTogether @@ -50420,6 +55702,18 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en None + + Identity + + The identity of the policy that you want to create. + + XdsIdentity + + XdsIdentity + + + None + SearchOnCommonAreaPhoneMode @@ -50508,7 +55802,7 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamsipphonepolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsipphonepolicy @@ -50518,11 +55812,11 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en New CsTeamsMeetingBroadcastPolicy - New-CsTeamsMeetingBroadcastPolicy [-Identity] <XdsIdentity> [-Tenant <guid>] [-Description <string>] [-AllowBroadcastScheduling <bool>] [-AllowBroadcastTranscription <bool>] [-BroadcastAttendeeVisibilityMode <string>] [-BroadcastRecordingMode <string>] [-InMemory] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>] + Use this cmdlet to create a new policy. - User-level policy for tenant admin to configure meeting broadcast behavior for the broadcast event organizer. Use this cmdlet to create a new policy. + User-level policy for tenant admin to configure meeting broadcast behavior for the broadcast event organizer. @@ -50828,7 +56122,7 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamsmeetingbroadcastpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingbroadcastpolicy @@ -50918,17 +56212,6 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en None - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - MobileDialerPreference @@ -50941,6 +56224,17 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en None + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + @@ -50980,6 +56274,18 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en False + + Identity + + Specify the name of the policy that you are creating. + + XdsIdentity + + XdsIdentity + + + None + IPAudioMobileMode @@ -51004,14 +56310,14 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en None - - Identity + + MobileDialerPreference - Specify the name of the policy that you are creating. + Determines the mobile dialer preference, possible values are: Teams, Native, UserOverride. For more information, see Manage user incoming calling policies (https://learn.microsoft.com/microsoftteams/operator-connect-mobile-configure#manage-user-incoming-calling-policies). - XdsIdentity + String - XdsIdentity + String None @@ -51028,18 +56334,6 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en False - - MobileDialerPreference - - Determines the mobile dialer preference, possible values are: Teams, Native, UserOverride. For more information, see Manage user incoming calling policies (https://learn.microsoft.com/microsoftteams/operator-connect-mobile-configure#manage-user-incoming-calling-policies). - - String - - String - - - None - @@ -51078,7 +56372,7 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamsmobilitypolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmobilitypolicy @@ -51100,18 +56394,6 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en New-CsTeamsNetworkRoamingPolicy - - Identity - - Unique identifier of the policy to be created. - - XdsIdentity - - XdsIdentity - - - None - AllowIPVideo @@ -51125,44 +56407,44 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en True - MediaBitRateKb + Description - Determines the media bit rate for audio/video/app sharing transmissions in meetings. + Description of the new policy to be created. - Integer + String - Integer + String - 50000 + None - - Description + + Identity - Description of the new policy to be created. + Unique identifier of the policy to be created. - String + XdsIdentity - String + XdsIdentity None + + MediaBitRateKb + + Determines the media bit rate for audio/video/app sharing transmissions in meetings. + + Integer + + Integer + + + 50000 + - - Identity - - Unique identifier of the policy to be created. - - XdsIdentity - - XdsIdentity - - - None - AllowIPVideo @@ -51176,29 +56458,41 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en True - MediaBitRateKb + Description - Determines the media bit rate for audio/video/app sharing transmissions in meetings. + Description of the new policy to be created. - Integer + String - Integer + String - 50000 + None - - Description + + Identity - Description of the new policy to be created. + Unique identifier of the policy to be created. - String + XdsIdentity - String + XdsIdentity None + + MediaBitRateKb + + Determines the media bit rate for audio/video/app sharing transmissions in meetings. + + Integer + + Integer + + + 50000 + @@ -51244,7 +56538,7 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamsnetworkroamingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsnetworkroamingpolicy @@ -51558,7 +56852,7 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamsroomvideoteleconferencingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsroomvideoteleconferencingpolicy @@ -51577,6 +56871,18 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en New-CsTeamsShiftsConnection + + Authorization + + Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. + + String + + String + + + None + Body @@ -51611,102 +56917,113 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en False - - HttpPipelineAppend - - SendAsync Pipeline Steps to be appended to the front of the pipeline - - SendAsyncStep[] - - SendAsyncStep[] - - - None - - - HttpPipelinePrepend - - SendAsync Pipeline Steps to be prepended to the front of the pipeline - - SendAsyncStep[] - - SendAsyncStep[] - - - None - - - Proxy - - The URI for the proxy server to use - - Uri - - Uri - - - None - - - ProxyCredential - - Credentials for a proxy server to use for the remote call. - - PSCredential - - PSCredential - - - None - - - ProxyUseDefaultCredentials - - Use the default credentials for the proxy. - - - SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - Authorization - - Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. - - String - - String - - - None - - - - New-CsTeamsShiftsConnection - - Break - - Wait for .NET debugger to attach. - - - SwitchParameter - - - False - + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + New-CsTeamsShiftsConnection + + Authorization + + Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. + + String + + String + + + None + + + Break + + Wait for .NET debugger to attach. + + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + ConnectorId @@ -51719,18 +57036,6 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en None - - Name - - The connection name. - - String - - String - - - None - ConnectorSpecificSettings @@ -51743,17 +57048,6 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en None - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - HttpPipelineAppend @@ -51778,6 +57072,18 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en None + + Name + + The connection name. + + String + + String + + + None + Proxy @@ -51836,21 +57142,21 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en False - - Authorization - - Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. - - String - - String - - - None - + + Authorization + + Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. + + String + + String + + + None + Body @@ -51875,22 +57181,22 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en False - - ConnectorId + + Confirm - The WFM connector ID. + Prompts you for confirmation before running the cmdlet. - String + SwitchParameter - String + SwitchParameter - None + False - Name + ConnectorId - The connection name. + The WFM connector ID. String @@ -51911,18 +57217,6 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en None - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - HttpPipelineAppend @@ -51947,6 +57241,18 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en None + + Name + + The connection name. + + String + + String + + + None + Proxy @@ -52007,18 +57313,6 @@ New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en False - - Authorization - - Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. - - String - - String - - - None - @@ -52145,27 +57439,27 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamsshiftsconnection + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnection Get-CsTeamsShiftsConnection - https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnection + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection Set-CsTeamsShiftsConnection - https://learn.microsoft.com/powershell/module/teams/set-csteamsshiftsconnection + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnection Update-CsTeamsShiftsConnection - https://learn.microsoft.com/powershell/module/teams/update-csteamsshiftsconnection + https://learn.microsoft.com/powershell/module/microsoftteams/update-csteamsshiftsconnection Get-CsTeamsShiftsConnectionConnector - https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectionconnector + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionconnector Test-CsTeamsShiftsConnectionValidate - https://learn.microsoft.com/powershell/module/teams/test-csteamsshiftsconnectionvalidate + https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsshiftsconnectionvalidate @@ -52179,7 +57473,7 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< - This cmdlet connects multiple Microsoft Teams teams and WFM teams to allow for synchronization of shifts related data. It initiates an asynchronous job to map the WFM teams to the Microsoft Teams teams. You can check the operation status by running Get-CsTeamsShiftsConnectionOperation (https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectionoperation). + This cmdlet connects multiple Microsoft Teams teams and WFM teams to allow for synchronization of shifts related data. It initiates an asynchronous job to map the WFM teams to the Microsoft Teams teams. You can check the operation status by running Get-CsTeamsShiftsConnectionOperation (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionoperation). @@ -52187,6 +57481,7 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< ConnectorInstanceId + > Applicable: Microsoft Teams The connection instance ID used to map teams. String @@ -52199,6 +57494,7 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< TeamMapping + > Applicable: Microsoft Teams The Teams mapping object list. TeamMap[] @@ -52214,6 +57510,7 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< ConnectorInstanceId + > Applicable: Microsoft Teams The connection instance ID used to map teams. String @@ -52226,6 +57523,7 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< TeamMapping + > Applicable: Microsoft Teams The Teams mapping object list. TeamMap[] @@ -52271,11 +57569,11 @@ CreatedDateTime LastActionDateTime OperationId S Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamsshiftsconnectionbatchteammap + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnectionbatchteammap Get-CsTeamsShiftsConnectionOperation - https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectionoperation + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionoperation @@ -52423,6 +57721,18 @@ CreatedDateTime LastActionDateTime OperationId S False + + ConnectionId + + Gets or sets the WFM connection ID for the new instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). + + String + + String + + + None + ConnectorAdminEmail @@ -52436,9 +57746,45 @@ CreatedDateTime LastActionDateTime OperationId S None - ConnectionId + DesignatedActorId + + Gets or sets the designated actor ID that App acts as for Shifts Graph Api calls. + + String + + String + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend - Gets or sets the WFM connection ID for the new instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnection). + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + Name + + The connector instance name. String @@ -52447,10 +57793,45 @@ CreatedDateTime LastActionDateTime OperationId S None + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + + SwitchParameter + + + False + - DesignatedActorId + State - Gets or sets the designated actor ID that App acts as for Shifts Graph Api calls. + The state of the connection instance. Valid values are "Active" and "Disabled". A third value, "ErrorDisabled", signifies an error in the connection instance. String @@ -52459,6 +57840,18 @@ CreatedDateTime LastActionDateTime OperationId S None + + SyncFrequencyInMin + + The sync frequency in minutes. + + Int32 + + Int32 + + + None + SyncScenarioOfferShiftRequest @@ -52567,101 +57960,6 @@ CreatedDateTime LastActionDateTime OperationId S None - - HttpPipelineAppend - - SendAsync Pipeline Steps to be appended to the front of the pipeline. - - SendAsyncStep[] - - SendAsyncStep[] - - - None - - - HttpPipelinePrepend - - SendAsync Pipeline Steps to be prepended to the front of the pipeline. - - SendAsyncStep[] - - SendAsyncStep[] - - - None - - - Name - - The connector instance name. - - String - - String - - - None - - - Proxy - - The URI for the proxy server to use. - - Uri - - Uri - - - None - - - ProxyCredential - - Credentials for a proxy server to use for the remote call. - - PSCredential - - PSCredential - - - None - - - ProxyUseDefaultCredentials - - Use the default credentials for the proxy. - - - SwitchParameter - - - False - - - State - - The state of the connection instance. Valid values are "Active" and "Disabled". A third value, "ErrorDisabled", signifies an error in the connection instance. - - String - - String - - - None - - - SyncFrequencyInMin - - The sync frequency in minutes. - - Int32 - - Int32 - - - None - WhatIf @@ -52712,26 +58010,26 @@ CreatedDateTime LastActionDateTime OperationId S False - - ConnectorAdminEmail + + ConnectionId - Gets or sets the list of connector admin email addresses. + Gets or sets the WFM connection ID for the new instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). - String[] + String - String[] + String None - - ConnectionId + + ConnectorAdminEmail - Gets or sets the WFM connection ID for the new instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnection). + Gets or sets the list of connector admin email addresses. - String + String[] - String + String[] None @@ -52748,34 +58046,34 @@ CreatedDateTime LastActionDateTime OperationId S None - - SyncScenarioOfferShiftRequest + + HttpPipelineAppend - The sync state for the offer shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + SendAsync Pipeline Steps to be appended to the front of the pipeline. - String + SendAsyncStep[] - String + SendAsyncStep[] None - - SyncScenarioOpenShift + + HttpPipelinePrepend - The sync state for the open shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + SendAsync Pipeline Steps to be prepended to the front of the pipeline. - String + SendAsyncStep[] - String + SendAsyncStep[] None - SyncScenarioOpenShiftRequest + Name - The sync state for the open shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + The connector instance name. String @@ -52784,46 +58082,46 @@ CreatedDateTime LastActionDateTime OperationId S None - - SyncScenarioShift + + Proxy - The sync state for the shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + The URI for the proxy server to use. - String + Uri - String + Uri None - - SyncScenarioSwapRequest + + ProxyCredential - The sync state for the swap shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + Credentials for a proxy server to use for the remote call. - String + PSCredential - String + PSCredential None - - SyncScenarioTimeCard + + ProxyUseDefaultCredentials - The sync state for the time card scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + Use the default credentials for the proxy. - String + SwitchParameter - String + SwitchParameter - None + False - SyncScenarioTimeOff + State - The sync state for the time off scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + The state of the connection instance. Valid values are "Active" and "Disabled". A third value, "ErrorDisabled", signifies an error in the connection instance. String @@ -52833,21 +58131,21 @@ CreatedDateTime LastActionDateTime OperationId S None - SyncScenarioTimeOffRequest + SyncFrequencyInMin - The sync state for the time off request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + The sync frequency in minutes. - String + Int32 - String + Int32 None - SyncScenarioUserShiftPreference + SyncScenarioOfferShiftRequest - The sync state for the user shift preferences scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + The sync state for the offer shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". String @@ -52856,34 +58154,34 @@ CreatedDateTime LastActionDateTime OperationId S None - - HttpPipelineAppend + + SyncScenarioOpenShift - SendAsync Pipeline Steps to be appended to the front of the pipeline. + The sync state for the open shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". - SendAsyncStep[] + String - SendAsyncStep[] + String None - - HttpPipelinePrepend + + SyncScenarioOpenShiftRequest - SendAsync Pipeline Steps to be prepended to the front of the pipeline. + The sync state for the open shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". - SendAsyncStep[] + String - SendAsyncStep[] + String None - Name + SyncScenarioShift - The connector instance name. + The sync state for the shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". String @@ -52892,46 +58190,46 @@ CreatedDateTime LastActionDateTime OperationId S None - - Proxy + + SyncScenarioSwapRequest - The URI for the proxy server to use. + The sync state for the swap shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". - Uri + String - Uri + String None - - ProxyCredential + + SyncScenarioTimeCard - Credentials for a proxy server to use for the remote call. + The sync state for the time card scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". - PSCredential + String - PSCredential + String None - - ProxyUseDefaultCredentials + + SyncScenarioTimeOff - Use the default credentials for the proxy. + The sync state for the time off scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". - SwitchParameter + String - SwitchParameter + String - False + None - State + SyncScenarioTimeOffRequest - The state of the connection instance. Valid values are "Active" and "Disabled". A third value, "ErrorDisabled", signifies an error in the connection instance. + The sync state for the time off request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". String @@ -52941,13 +58239,13 @@ CreatedDateTime LastActionDateTime OperationId S None - SyncFrequencyInMin + SyncScenarioUserShiftPreference - The sync frequency in minutes. + The sync state for the user shift preferences scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". - Int32 + String - Int32 + String None @@ -53057,27 +58355,27 @@ PS C:\> $result.ToJsonString() Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamsshiftsconnectioninstance + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnectioninstance Get-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectioninstance + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance Set-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/teams/set-csteamsshiftsconnectioninstance + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnectioninstance Remove-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/teams/remove-csteamsshiftsconnectioninstance + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftsconnectioninstance Get-CsTeamsShiftsConnectionConnector - https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectionconnector + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionconnector Test-CsTeamsShiftsConnectionValidate - https://learn.microsoft.com/powershell/module/teams/test-csteamsshiftsconnectionvalidate + https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsshiftsconnectionvalidate @@ -53087,10 +58385,12 @@ PS C:\> $result.ToJsonString() New CsTeamsSurvivableBranchAppliance - The Survivable Branch Appliance (SBA) cmdlets facilitate the continuation of Teams Phone operations, allowing for the placement and reception of Public Switched Telephone Network (PSTN) calls during service disruptions. These cmdlets are exclusively intended for Tenant Administrators and Session Border Controller (SBC) Vendors. In the absence of SBA configuration within a Tenant, the cmdlets will be inoperative. + Creates a new Survivable Branch Appliance (SBA) object in the tenant. - + + The Survivable Branch Appliance (SBA) cmdlets facilitate the continuation of Teams Phone operations, allowing for the placement and reception of Public Switched Telephone Network (PSTN) calls during service disruptions. These cmdlets are exclusively intended for Tenant Administrators and Session Border Controller (SBC) Vendors. In the absence of SBA configuration within a Tenant, the cmdlets will be inoperative. + New-CsTeamsSurvivableBranchAppliance @@ -53354,7 +58654,7 @@ PS C:\> $result.ToJsonString() Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamssurvivablebranchappliance + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamssurvivablebranchappliance @@ -53364,10 +58664,12 @@ PS C:\> $result.ToJsonString() New CsTeamsSurvivableBranchAppliancePolicy - The Survivable Branch Appliance (SBA) cmdlets facilitate the continuation of Teams Phone operations, allowing for the placement and reception of Public Switched Telephone Network (PSTN) calls during service disruptions. These cmdlets are exclusively intended for Tenant Administrators and Session Border Controller (SBC) Vendors. In the absence of SBA configuration within a Tenant, the cmdlets will be inoperative. + Creates a new Survivable Branch Appliance (SBA) policy object in the tenant. - + + The Survivable Branch Appliance (SBA) cmdlets facilitate the continuation of Teams Phone operations, allowing for the placement and reception of Public Switched Telephone Network (PSTN) calls during service disruptions. These cmdlets are exclusively intended for Tenant Administrators and Session Border Controller (SBC) Vendors. In the absence of SBA configuration within a Tenant, the cmdlets will be inoperative. + New-CsTeamsSurvivableBranchAppliancePolicy @@ -53522,7 +58824,7 @@ PS C:\> $result.ToJsonString() Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamssurvivablebranchappliancepolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamssurvivablebranchappliancepolicy @@ -53553,6 +58855,17 @@ PS C:\> $result.ToJsonString() None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + Description @@ -53600,6 +58913,9 @@ PS C:\> $result.ToJsonString() False + + + New-CsTeamsTranslationRule Confirm @@ -53611,9 +58927,6 @@ PS C:\> $result.ToJsonString() False - - - New-CsTeamsTranslationRule Description @@ -53626,10 +58939,10 @@ PS C:\> $result.ToJsonString() None - - Pattern + + Name - A regular expression that caller or callee number must match in order for this rule to be applied. + The name of the rule. String @@ -53639,9 +58952,9 @@ PS C:\> $result.ToJsonString() None - Translation + Pattern - The regular expression pattern that will be applied to the number to convert it. + A regular expression that caller or callee number must match in order for this rule to be applied. String @@ -53650,10 +58963,10 @@ PS C:\> $result.ToJsonString() None - - Name + + Translation - The name of the rule. + The regular expression pattern that will be applied to the number to convert it. String @@ -53673,31 +58986,20 @@ PS C:\> $result.ToJsonString() False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Identity + + Confirm - The Identifier of the rule. This parameter is required and later used to assign the rule to the Inbound or Outbound Trunk Normalization policy. + Prompts you for confirmation before running the cmdlet. - String + SwitchParameter - String + SwitchParameter - None + False Description @@ -53711,10 +59013,10 @@ PS C:\> $result.ToJsonString() None - - Pattern + + Identity - A regular expression that caller or callee number must match in order for this rule to be applied. + The Identifier of the rule. This parameter is required and later used to assign the rule to the Inbound or Outbound Trunk Normalization policy. String @@ -53723,10 +59025,10 @@ PS C:\> $result.ToJsonString() None - - Translation + + Name - The regular expression pattern that will be applied to the number to convert it. + The name of the rule. String @@ -53735,10 +59037,10 @@ PS C:\> $result.ToJsonString() None - - Name + + Pattern - The name of the rule. + A regular expression that caller or callee number must match in order for this rule to be applied. String @@ -53747,22 +59049,22 @@ PS C:\> $result.ToJsonString() None - - WhatIf + + Translation - Describes what would happen if you executed the command without actually executing the command. The cmdlet is not run. + The regular expression pattern that will be applied to the number to convert it. - SwitchParameter + String - SwitchParameter + String - False + None - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + Describes what would happen if you executed the command without actually executing the command. The cmdlet is not run. SwitchParameter @@ -53826,23 +59128,23 @@ PS C:\> $result.ToJsonString() Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamstranslationrule + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamstranslationrule Test-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/teams/test-csteamstranslationrule + https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamstranslationrule Get-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/teams/get-csteamstranslationrule + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamstranslationrule Set-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/teams/set-csteamstranslationrule + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstranslationrule Remove-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/teams/remove-csteamstranslationrule + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamstranslationrule @@ -53861,6 +59163,17 @@ PS C:\> $result.ToJsonString() New-CsTeamsUnassignedNumberTreatment + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + Description @@ -53885,7 +59198,19 @@ PS C:\> $result.ToJsonString() None - + + MsftInternalProcessingMode + + {{ Fill MsftInternalProcessingMode Description }} + + System.String + + System.String + + + None + + Pattern A regular expression that the called number must match in order for the treatment to take effect. It is best practice to start the regular expression with the hat character and end it with the dollar character. You can use various regular expression test sites on the Internet to validate the expression. @@ -53897,19 +59222,19 @@ PS C:\> $result.ToJsonString() None - + Target The identity of the destination the call should be routed to. Depending on the TargetType it should either be the ObjectId of the user or application instance/resource account or the AudioFileId of the uploaded audio file. - System.Guid + System.String - System.Guid + System.String None - + TargetType The type of target used for the treatment. Allowed values are User, ResourceAccount and Announcement. @@ -53921,21 +59246,43 @@ PS C:\> $result.ToJsonString() None - + TreatmentPriority The priority of the treatment. Used to distinguish identical patterns. The lower the priority the higher preference. The priority needs to be unique. - System.Integer + System.Int32 - System.Integer + System.Int32 None + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + New-CsTeamsUnassignedNumberTreatment + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + Description @@ -53948,7 +59295,19 @@ PS C:\> $result.ToJsonString() None - + + MsftInternalProcessingMode + + {{ Fill MsftInternalProcessingMode Description }} + + System.String + + System.String + + + None + + Pattern A regular expression that the called number must match in order for the treatment to take effect. It is best practice to start the regular expression with the hat character and end it with the dollar character. You can use various regular expression test sites on the Internet to validate the expression. @@ -53960,19 +59319,19 @@ PS C:\> $result.ToJsonString() None - + Target The identity of the destination the call should be routed to. Depending on the TargetType it should either be the ObjectId of the user or application instance/resource account or the AudioFileId of the uploaded audio file. - System.Guid + System.String - System.Guid + System.String None - + TargetType The type of target used for the treatment. Allowed values are User, ResourceAccount and Announcement. @@ -53996,21 +59355,44 @@ PS C:\> $result.ToJsonString() None - + TreatmentPriority The priority of the treatment. Used to distinguish identical patterns. The lower the priority the higher preference. The priority needs to be unique. - System.Integer + System.Int32 - System.Integer + System.Int32 None + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + Description @@ -54035,7 +59417,19 @@ PS C:\> $result.ToJsonString() None - + + MsftInternalProcessingMode + + {{ Fill MsftInternalProcessingMode Description }} + + System.String + + System.String + + + None + + Pattern A regular expression that the called number must match in order for the treatment to take effect. It is best practice to start the regular expression with the hat character and end it with the dollar character. You can use various regular expression test sites on the Internet to validate the expression. @@ -54047,19 +59441,19 @@ PS C:\> $result.ToJsonString() None - + Target The identity of the destination the call should be routed to. Depending on the TargetType it should either be the ObjectId of the user or application instance/resource account or the AudioFileId of the uploaded audio file. - System.Guid + System.String - System.Guid + System.String None - + TargetType The type of target used for the treatment. Allowed values are User, ResourceAccount and Announcement. @@ -54083,18 +59477,30 @@ PS C:\> $result.ToJsonString() None - + TreatmentPriority The priority of the treatment. Used to distinguish identical patterns. The lower the priority the higher preference. The priority needs to be unique. - System.Integer + System.Int32 - System.Integer + System.Int32 None + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + @@ -54157,27 +59563,27 @@ New-CsTeamsUnassignedNumberTreatment -Identity TR2 -Pattern "^\+15552224444$" -T Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamsunassignednumbertreatment + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsunassignednumbertreatment Import-CsOnlineAudioFile - https://learn.microsoft.com/powershell/module/teams/import-csonlineaudiofile + https://learn.microsoft.com/powershell/module/microsoftteams/import-csonlineaudiofile Get-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/teams/get-csteamsunassignednumbertreatment + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsunassignednumbertreatment Remove-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/teams/remove-csteamsunassignednumbertreatment + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsunassignednumbertreatment Set-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/teams/set-csteamsunassignednumbertreatment + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsunassignednumbertreatment Test-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/teams/test-csteamsunassignednumbertreatment + https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsunassignednumbertreatment @@ -54499,23 +59905,23 @@ New-CsTeamsUnassignedNumberTreatment -Identity TR2 -Pattern "^\+15552224444$" -T Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamsworkloadpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsworkloadpolicy Remove-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsworkloadpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsworkloadpolicy Get-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsworkloadpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsworkloadpolicy Set-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsworkloadpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsworkloadpolicy Grant-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsworkloadpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsworkloadpolicy @@ -54525,11 +59931,13 @@ New-CsTeamsUnassignedNumberTreatment -Identity TR2 -Pattern "^\+15552224444$" -T New CsTeamTemplate - This cmdlet lets you provision a new team template for use in Microsoft Teams. To learn more about team templates, see Get started with Teams templates in the admin center (https://learn.microsoft.com/microsoftteams/get-started-with-teams-templates-in-the-admin-console). - NOTE: The response is a PowerShell object formatted as a JSON for readability. Please refer to the examples for suggested interaction flows for template management. + This cmdlet lets you provision a new team template for use in Microsoft Teams. - + + To learn more about team templates, see Get started with Teams templates in the admin center (/microsoftteams/get-started-with-teams-templates-in-the-admin-console). + NOTE: The response is a PowerShell object formatted as a JSON for readability. Please refer to the examples for suggested interaction flows for template management. + New-CsTeamTemplate @@ -54545,6 +59953,17 @@ New-CsTeamsUnassignedNumberTreatment -Identity TR2 -Pattern "^\+15552224444$" -T None + + Break + + Wait for .NET debugger to attach + + + SwitchParameter + + + False + Category @@ -54581,6 +60000,17 @@ New-CsTeamsUnassignedNumberTreatment -Identity TR2 -Pattern "^\+15552224444$" -T None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + Description @@ -54641,6 +60071,30 @@ New-CsTeamsUnassignedNumberTreatment -Identity TR2 -Pattern "^\+15552224444$" -T None + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + Icon @@ -54667,7 +60121,7 @@ New-CsTeamsUnassignedNumberTreatment -Identity TR2 -Pattern "^\+15552224444$" -T Locale - + {{ Fill Locale Description }} System.String @@ -54713,45 +60167,44 @@ New-CsTeamsUnassignedNumberTreatment -Identity TR2 -Pattern "^\+15552224444$" -T None - PublishedBy + Proxy - Gets or sets published name. + The URI for the proxy server to use - System.String + Uri - System.String + Uri None - - ShortDescription + + ProxyCredential - Gets or sets template short description. + Credentials for a proxy server to use for the remote call - System.String + PSCredential - System.String + PSCredential None - Specialization + ProxyUseDefaultCredentials - The specialization or use case describing the team.Used for telemetry/BI, part of the team context exposed to app developers, and for legacy implementations of differentiated features for education. + Use the default credentials for the proxy - System.String - System.String + SwitchParameter - None + False - TemplateId + PublishedBy - Gets or sets the id of the base template for the team.Either a Microsoft base template or a custom template. + Gets or sets published name. System.String @@ -54760,10 +60213,10 @@ New-CsTeamsUnassignedNumberTreatment -Identity TR2 -Pattern "^\+15552224444$" -T None - - Uri + + ShortDescription - Gets or sets uri to be used for GetTemplate api call. + Gets or sets template short description. System.String @@ -54773,9 +60226,9 @@ New-CsTeamsUnassignedNumberTreatment -Identity TR2 -Pattern "^\+15552224444$" -T None - Visibility + Specialization - Used to control the scope of users who can view a group/team and its members, and ability to join. + The specialization or use case describing the team.Used for telemetry/BI, part of the team context exposed to app developers, and for legacy implementations of differentiated features for education. System.String @@ -54785,86 +60238,41 @@ New-CsTeamsUnassignedNumberTreatment -Identity TR2 -Pattern "^\+15552224444$" -T None - Break - - Wait for .NET debugger to attach - - - SwitchParameter - - - False - - - HttpPipelineAppend - - SendAsync Pipeline Steps to be appended to the front of the pipeline - - SendAsyncStep[] - - SendAsyncStep[] - - - None - - - HttpPipelinePrepend + TemplateId - SendAsync Pipeline Steps to be prepended to the front of the pipeline + Gets or sets the id of the base template for the team.Either a Microsoft base template or a custom template. - SendAsyncStep[] + System.String - SendAsyncStep[] + System.String None - Proxy + Uri - The URI for the proxy server to use + Gets or sets uri to be used for GetTemplate api call. - Uri + System.String - Uri + System.String None - ProxyCredential + Visibility - Credentials for a proxy server to use for the remote call + Used to control the scope of users who can view a group/team and its members, and ability to join. - PSCredential + System.String - PSCredential + System.String None - - ProxyUseDefaultCredentials - - Use the default credentials for the proxy - - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - WhatIf @@ -54891,6 +60299,17 @@ New-CsTeamsUnassignedNumberTreatment -Identity TR2 -Pattern "^\+15552224444$" -T None + + Break + + Wait for .NET debugger to attach + + + SwitchParameter + + + False + Category @@ -54927,6 +60346,17 @@ New-CsTeamsUnassignedNumberTreatment -Identity TR2 -Pattern "^\+15552224444$" -T None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + Description @@ -54987,6 +60417,30 @@ New-CsTeamsUnassignedNumberTreatment -Identity TR2 -Pattern "^\+15552224444$" -T None + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + Icon @@ -55059,45 +60513,44 @@ New-CsTeamsUnassignedNumberTreatment -Identity TR2 -Pattern "^\+15552224444$" -T None - PublishedBy + Proxy - Gets or sets published name. + The URI for the proxy server to use - System.String + Uri - System.String + Uri None - - ShortDescription + + ProxyCredential - Gets or sets template short description. + Credentials for a proxy server to use for the remote call - System.String + PSCredential - System.String + PSCredential None - Specialization + ProxyUseDefaultCredentials - The specialization or use case describing the team.Used for telemetry/BI, part of the team context exposed to app developers, and for legacy implementations of differentiated features for education. + Use the default credentials for the proxy - System.String - System.String + SwitchParameter - None + False - TemplateId + PublishedBy - Gets or sets the id of the base template for the team.Either a Microsoft base template or a custom template. + Gets or sets published name. System.String @@ -55106,10 +60559,10 @@ New-CsTeamsUnassignedNumberTreatment -Identity TR2 -Pattern "^\+15552224444$" -T None - - Uri + + ShortDescription - Gets or sets uri to be used for GetTemplate api call. + Gets or sets template short description. System.String @@ -55119,9 +60572,9 @@ New-CsTeamsUnassignedNumberTreatment -Identity TR2 -Pattern "^\+15552224444$" -T None - Visibility + Specialization - Used to control the scope of users who can view a group/team and its members, and ability to join. + The specialization or use case describing the team.Used for telemetry/BI, part of the team context exposed to app developers, and for legacy implementations of differentiated features for education. System.String @@ -55131,86 +60584,41 @@ New-CsTeamsUnassignedNumberTreatment -Identity TR2 -Pattern "^\+15552224444$" -T None - Break - - Wait for .NET debugger to attach - - - SwitchParameter - - - False - - - HttpPipelineAppend - - SendAsync Pipeline Steps to be appended to the front of the pipeline - - SendAsyncStep[] - - SendAsyncStep[] - - - None - - - HttpPipelinePrepend + TemplateId - SendAsync Pipeline Steps to be prepended to the front of the pipeline + Gets or sets the id of the base template for the team.Either a Microsoft base template or a custom template. - SendAsyncStep[] + System.String - SendAsyncStep[] + System.String None - Proxy + Uri - The URI for the proxy server to use + Gets or sets uri to be used for GetTemplate api call. - Uri + System.String - Uri + System.String None - ProxyCredential + Visibility - Credentials for a proxy server to use for the remote call + Used to control the scope of users who can view a group/team and its members, and ability to join. - PSCredential + System.String - PSCredential + System.String None - - ProxyUseDefaultCredentials - - Use the default credentials for the proxy - - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - WhatIf @@ -55237,25 +60645,24 @@ New-CsTeamsUnassignedNumberTreatment -Identity TR2 -Pattern "^\+15552224444$" -T None - - Locale + + Break - + Wait for .NET debugger to attach - System.String - System.String + SwitchParameter - None + False - - Break + + Confirm - Wait for .NET debugger to attach + Prompts you for confirmation before running the cmdlet. - SwitchParameter + System.Management.Automation.SwitchParameter False @@ -55284,6 +60691,18 @@ New-CsTeamsUnassignedNumberTreatment -Identity TR2 -Pattern "^\+15552224444$" -T None + + Locale + + {{ Fill Locale Description }} + + System.String + + System.String + + + None + Proxy @@ -55319,17 +60738,6 @@ New-CsTeamsUnassignedNumberTreatment -Identity TR2 -Pattern "^\+15552224444$" -T False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - WhatIf @@ -55356,25 +60764,24 @@ New-CsTeamsUnassignedNumberTreatment -Identity TR2 -Pattern "^\+15552224444$" -T None - - InputObject + + Break - Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + Wait for .NET debugger to attach - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + SwitchParameter - None + False - - Break + + Confirm - Wait for .NET debugger to attach + Prompts you for confirmation before running the cmdlet. - SwitchParameter + System.Management.Automation.SwitchParameter False @@ -55403,6 +60810,18 @@ New-CsTeamsUnassignedNumberTreatment -Identity TR2 -Pattern "^\+15552224444$" -T None + + InputObject + + Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + None + Proxy @@ -55438,17 +60857,6 @@ New-CsTeamsUnassignedNumberTreatment -Identity TR2 -Pattern "^\+15552224444$" -T False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - WhatIf @@ -55487,6 +60895,18 @@ New-CsTeamsUnassignedNumberTreatment -Identity TR2 -Pattern "^\+15552224444$" -T None + + Break + + Wait for .NET debugger to attach + + SwitchParameter + + SwitchParameter + + + False + Category @@ -55523,6 +60943,18 @@ New-CsTeamsUnassignedNumberTreatment -Identity TR2 -Pattern "^\+15552224444$" -T None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + Description @@ -55583,6 +61015,30 @@ New-CsTeamsUnassignedNumberTreatment -Identity TR2 -Pattern "^\+15552224444$" -T None + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + Icon @@ -55622,7 +61078,7 @@ New-CsTeamsUnassignedNumberTreatment -Identity TR2 -Pattern "^\+15552224444$" -T Locale - + {{ Fill Locale Description }} System.String @@ -55668,45 +61124,45 @@ New-CsTeamsUnassignedNumberTreatment -Identity TR2 -Pattern "^\+15552224444$" -T None - PublishedBy + Proxy - Gets or sets published name. + The URI for the proxy server to use - System.String + Uri - System.String + Uri None - - ShortDescription + + ProxyCredential - Gets or sets template short description. + Credentials for a proxy server to use for the remote call - System.String + PSCredential - System.String + PSCredential None - Specialization + ProxyUseDefaultCredentials - The specialization or use case describing the team.Used for telemetry/BI, part of the team context exposed to app developers, and for legacy implementations of differentiated features for education. + Use the default credentials for the proxy - System.String + SwitchParameter - System.String + SwitchParameter - None + False - TemplateId + PublishedBy - Gets or sets the id of the base template for the team.Either a Microsoft base template or a custom template. + Gets or sets published name. System.String @@ -55715,10 +61171,10 @@ New-CsTeamsUnassignedNumberTreatment -Identity TR2 -Pattern "^\+15552224444$" -T None - - Uri + + ShortDescription - Gets or sets uri to be used for GetTemplate api call. + Gets or sets template short description. System.String @@ -55728,9 +61184,9 @@ New-CsTeamsUnassignedNumberTreatment -Identity TR2 -Pattern "^\+15552224444$" -T None - Visibility + Specialization - Used to control the scope of users who can view a group/team and its members, and ability to join. + The specialization or use case describing the team.Used for telemetry/BI, part of the team context exposed to app developers, and for legacy implementations of differentiated features for education. System.String @@ -55740,89 +61196,41 @@ New-CsTeamsUnassignedNumberTreatment -Identity TR2 -Pattern "^\+15552224444$" -T None - Break - - Wait for .NET debugger to attach - - SwitchParameter - - SwitchParameter - - - False - - - HttpPipelineAppend - - SendAsync Pipeline Steps to be appended to the front of the pipeline - - SendAsyncStep[] - - SendAsyncStep[] - - - None - - - HttpPipelinePrepend + TemplateId - SendAsync Pipeline Steps to be prepended to the front of the pipeline + Gets or sets the id of the base template for the team.Either a Microsoft base template or a custom template. - SendAsyncStep[] + System.String - SendAsyncStep[] + System.String None - Proxy + Uri - The URI for the proxy server to use + Gets or sets uri to be used for GetTemplate api call. - Uri + System.String - Uri + System.String None - ProxyCredential + Visibility - Credentials for a proxy server to use for the remote call + Used to control the scope of users who can view a group/team and its members, and ability to join. - PSCredential + System.String - PSCredential + System.String None - - ProxyUseDefaultCredentials - - Use the default credentials for the proxy - - SwitchParameter - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - WhatIf @@ -55956,11 +61364,11 @@ New-CsTeamsUnassignedNumberTreatment -Identity TR2 -Pattern "^\+15552224444$" -T - `AllowUserEditMessage <Boolean>`: Gets or sets a value indicating whether team members can edit their own messages in team conversations. ## RELATED LINKS - - [Get-CsTeamTemplateList](https://learn.microsoft.com/powershell/module/teams/get-csteamtemplatelist) - - [Get-CsTeamTemplate](https://learn.microsoft.com/powershell/module/teams/get-csteamtemplatelist) - - [New-CsTeamTemplate](https://learn.microsoft.com/powershell/module/teams/get-csteamtemplatelist) - - [Update-CsTeamTemplate](https://learn.microsoft.com/powershell/module/teams/get-csteamtemplatelist) - - [Remove-CsTeamTemplate](https://learn.microsoft.com/powershell/module/teams/get-csteamtemplatelist) + - [Get-CsTeamTemplateList](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplatelist) + - [Get-CsTeamTemplate](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplatelist) + - [New-CsTeamTemplate](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplatelist) + - [Update-CsTeamTemplate](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplatelist) + - [Remove-CsTeamTemplate](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplatelist) @@ -56024,7 +61432,7 @@ PS C:\> New-CsTeamTemplate -Locale en-US -Body $template Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csteamtemplate + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamtemplate @@ -56039,7 +61447,7 @@ PS C:\> New-CsTeamTemplate -Locale en-US -Body $template You can use this cmdlet to create a new tenant dial plan. Tenant dial plans provide required information to let Enterprise Voice users make telephone calls. The Conferencing Attendant application also uses tenant dial plans for dial-in conferencing. A tenant dial plan determines such things as which normalization rules are applied. - You can add new normalization rules to a tenant dial plan by calling the New-CsVoiceNormalizationRule (https://learn.microsoft.com/powershell/module/teams/new-csvoicenormalizationrule)cmdlet. + You can add new normalization rules to a tenant dial plan by calling the New-CsVoiceNormalizationRule (https://learn.microsoft.com/powershell/module/microsoftteams/new-csvoicenormalizationrule)cmdlet. @@ -56047,6 +61455,7 @@ PS C:\> New-CsTeamTemplate -Locale en-US -Body $template Identity + > Applicable: Microsoft Teams The Identity parameter is a unique identifier that designates the name of the tenant dial plan. Identity is an alphanumeric string that cannot exceed 49 characters. Valid characters are alphabetic or numeric characters, hyphen (-) and dot (.). The value should not begin with a (.) String @@ -56059,6 +61468,7 @@ PS C:\> New-CsTeamTemplate -Locale en-US -Body $template Confirm + > Applicable: Microsoft Teams The Confirm switch causes the command to pause processing and requires confirmation to proceed. @@ -56070,6 +61480,7 @@ PS C:\> New-CsTeamTemplate -Locale en-US -Body $template Description + > Applicable: Microsoft Teams The Description parameter describes the tenant dial plan - what it's for, what type of user it applies to and any other information that helps to identify the purpose of the tenant dial plan. Maximum characters: 1040. String @@ -56082,9 +61493,10 @@ PS C:\> New-CsTeamTemplate -Locale en-US -Body $template NormalizationRules - The NormalizationRules parameter is a list of normalization rules that are applied to this dial plan. Although this list and these rules can be created directly by using this cmdlet, we recommend that you create the normalization rules by the New-CsVoiceNormalizationRule (https://learn.microsoft.com/powershell/module/teams/new-csvoicenormalizationrule) cmdlet, which creates the rule and then assign it to the specified tenant dial plan using [Set-CsTenantDialPlan](https://learn.microsoft.com/powershell/module/teams/set-cstenantdialplan)cmdlet. + > Applicable: Microsoft Teams + The NormalizationRules parameter is a list of normalization rules that are applied to this dial plan. Although this list and these rules can be created directly by using this cmdlet, we recommend that you create the normalization rules by the New-CsVoiceNormalizationRule (https://learn.microsoft.com/powershell/module/microsoftteams/new-csvoicenormalizationrule) cmdlet, which creates the rule and then assign it to the specified tenant dial plan using [Set-CsTenantDialPlan](https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantdialplan)cmdlet. Each time a new tenant dial plan is created, a new voice normalization rule with default settings is also created for that site, service, or per-user tenant dial plan. By default, the Identity of the new voice normalization rule is the tenant dial plan Identity followed by a slash and then followed by the name Prefix All. (For example, TAG:Redmond/Prefix All.) The number of normalization rules cannot exceed 50 per TenantDialPlan. - You can create a new normalization rule by calling the New-CsVoiceNormalizationRule (https://learn.microsoft.com/powershell/module/teams/new-csvoicenormalizationrule)cmdlet. + You can create a new normalization rule by calling the New-CsVoiceNormalizationRule (https://learn.microsoft.com/powershell/module/microsoftteams/new-csvoicenormalizationrule)cmdlet. List @@ -56096,6 +61508,7 @@ PS C:\> New-CsTeamTemplate -Locale en-US -Body $template SimpleName + > Applicable: Microsoft Teams The SimpleName parameter is a display name for the tenant dial plan. This name must be unique among all tenant dial plans. This string can be up to 49 characters long. Valid characters are alphabetic or numeric characters, hyphen (-), dot (.) and parentheses (()). This parameter must contain a value. However, if you don't provide a value, a default value matching the Identity of the tenant dial plan will be supplied. @@ -56110,6 +61523,7 @@ PS C:\> New-CsTeamTemplate -Locale en-US -Body $template WhatIf + > Applicable: Microsoft Teams The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. @@ -56121,21 +61535,10 @@ PS C:\> New-CsTeamTemplate -Locale en-US -Body $template - - Identity - - The Identity parameter is a unique identifier that designates the name of the tenant dial plan. Identity is an alphanumeric string that cannot exceed 49 characters. Valid characters are alphabetic or numeric characters, hyphen (-) and dot (.). The value should not begin with a (.) - - String - - String - - - None - Confirm + > Applicable: Microsoft Teams The Confirm switch causes the command to pause processing and requires confirmation to proceed. SwitchParameter @@ -56148,6 +61551,7 @@ PS C:\> New-CsTeamTemplate -Locale en-US -Body $template Description + > Applicable: Microsoft Teams The Description parameter describes the tenant dial plan - what it's for, what type of user it applies to and any other information that helps to identify the purpose of the tenant dial plan. Maximum characters: 1040. String @@ -56157,12 +61561,26 @@ PS C:\> New-CsTeamTemplate -Locale en-US -Body $template None + + Identity + + > Applicable: Microsoft Teams + The Identity parameter is a unique identifier that designates the name of the tenant dial plan. Identity is an alphanumeric string that cannot exceed 49 characters. Valid characters are alphabetic or numeric characters, hyphen (-) and dot (.). The value should not begin with a (.) + + String + + String + + + None + NormalizationRules - The NormalizationRules parameter is a list of normalization rules that are applied to this dial plan. Although this list and these rules can be created directly by using this cmdlet, we recommend that you create the normalization rules by the New-CsVoiceNormalizationRule (https://learn.microsoft.com/powershell/module/teams/new-csvoicenormalizationrule) cmdlet, which creates the rule and then assign it to the specified tenant dial plan using [Set-CsTenantDialPlan](https://learn.microsoft.com/powershell/module/teams/set-cstenantdialplan)cmdlet. + > Applicable: Microsoft Teams + The NormalizationRules parameter is a list of normalization rules that are applied to this dial plan. Although this list and these rules can be created directly by using this cmdlet, we recommend that you create the normalization rules by the New-CsVoiceNormalizationRule (https://learn.microsoft.com/powershell/module/microsoftteams/new-csvoicenormalizationrule) cmdlet, which creates the rule and then assign it to the specified tenant dial plan using [Set-CsTenantDialPlan](https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantdialplan)cmdlet. Each time a new tenant dial plan is created, a new voice normalization rule with default settings is also created for that site, service, or per-user tenant dial plan. By default, the Identity of the new voice normalization rule is the tenant dial plan Identity followed by a slash and then followed by the name Prefix All. (For example, TAG:Redmond/Prefix All.) The number of normalization rules cannot exceed 50 per TenantDialPlan. - You can create a new normalization rule by calling the New-CsVoiceNormalizationRule (https://learn.microsoft.com/powershell/module/teams/new-csvoicenormalizationrule)cmdlet. + You can create a new normalization rule by calling the New-CsVoiceNormalizationRule (https://learn.microsoft.com/powershell/module/microsoftteams/new-csvoicenormalizationrule)cmdlet. List @@ -56174,6 +61592,7 @@ PS C:\> New-CsTeamTemplate -Locale en-US -Body $template SimpleName + > Applicable: Microsoft Teams The SimpleName parameter is a display name for the tenant dial plan. This name must be unique among all tenant dial plans. This string can be up to 49 characters long. Valid characters are alphabetic or numeric characters, hyphen (-), dot (.) and parentheses (()). This parameter must contain a value. However, if you don't provide a value, a default value matching the Identity of the tenant dial plan will be supplied. @@ -56188,6 +61607,7 @@ PS C:\> New-CsTeamTemplate -Locale en-US -Body $template WhatIf + > Applicable: Microsoft Teams The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. SwitchParameter @@ -56225,23 +61645,23 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr Online Version: - https://learn.microsoft.com/powershell/module/teams/new-cstenantdialplan + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantdialplan Grant-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/teams/grant-cstenantdialplan + https://learn.microsoft.com/powershell/module/microsoftteams/grant-cstenantdialplan Get-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/teams/get-cstenantdialplan + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantdialplan Set-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/teams/set-cstenantdialplan + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantdialplan Remove-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/teams/remove-cstenantdialplan + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantdialplan @@ -56251,10 +61671,11 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr New CsTenantNetworkRegion - As an admin, you can use the Teams PowerShell command, New-CsTenantNetworkRegion to define network regions. A network region interconnects various parts of a network across multiple geographic areas. The RegionID parameter is a logical name that represents the geography of the region and has no dependencies or restrictions. The organization's network region is used for Location-Based Routing. + Creates a new network region. + A network region interconnects various parts of a network across multiple geographic areas. The RegionID parameter is a logical name that represents the geography of the region and has no dependencies or restrictions. The organization's network region is used for Location-Based Routing. Location-Based Routing leverages the same network regions, sites, and subnets concept that is available in Skype for Business Server. A network region contains a collection of network sites. For example, if your organization has many sites located in Redmond, then you may choose to designate "Redmond" as a network region. @@ -56296,28 +61717,28 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None - - Description + + Confirm - Provide a description of the network region to identify purpose of creating it. + Prompts you for confirmation before running the cmdlet. - String - String + SwitchParameter - None + False - - Confirm + + Description - Prompts you for confirmation before running the cmdlet. + Provide a description of the network region to identify purpose of creating it. + String - SwitchParameter + String - False + None WhatIf @@ -56357,6 +61778,17 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + Description @@ -56381,17 +61813,6 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - WhatIf @@ -56406,10 +61827,10 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr - - Identity + + BypassID - Unique identifier for the network region to be created. + This parameter is not used. String @@ -56419,7 +61840,7 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None - BypassID + CentralSite This parameter is not used. @@ -56430,17 +61851,17 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None - - CentralSite + + Confirm - This parameter is not used. + Prompts you for confirmation before running the cmdlet. - String + SwitchParameter - String + SwitchParameter - None + False Description @@ -56454,10 +61875,10 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None - - NetworkRegionID + + Identity - The name of the network region. This must be a string that is unique. You cannot specify an NetworkRegionID and an Identity at the same time. + Unique identifier for the network region to be created. String @@ -56466,17 +61887,17 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None - - Confirm + + NetworkRegionID - Prompts you for confirmation before running the cmdlet. + The name of the network region. This must be a string that is unique. You cannot specify an NetworkRegionID and an Identity at the same time. - SwitchParameter + String - SwitchParameter + String - False + None WhatIf @@ -56528,19 +61949,19 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr Online Version: - https://learn.microsoft.com/powershell/module/teams/new-cstenantnetworkregion + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworkregion Get-CsTenantNetworkRegion - https://learn.microsoft.com/powershell/module/teams/get-cstenantnetworkregion + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworkregion Remove-CsTenantNetworkRegion - https://learn.microsoft.com/powershell/module/teams/remove-cstenantnetworkregion + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworkregion Set-CsTenantNetworkRegion - https://learn.microsoft.com/powershell/module/teams/set-cstenantnetworkregion + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworkregion @@ -56572,6 +61993,17 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + Description @@ -56585,9 +62017,9 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None - EmergencyCallRoutingPolicy + EmergencyCallingPolicy - This parameter is used to assign a custom emergency call routing policy to a network site. For more information, see Assign a custom emergency call routing policy to a network site (https://learn.microsoft.com/microsoftteams/manage-emergency-call-routing-policies#assign-a-custom-emergency-call-routing-policy-to-a-network-site). + This parameter is used to assign a custom emergency calling policy to a network site. For more information see Assign a custom emergency calling policy to a network site (https://learn.microsoft.com/microsoftteams/manage-emergency-calling-policies#assign-a-custom-emergency-calling-policy-to-a-network-site). String @@ -56597,9 +62029,9 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None - EmergencyCallingPolicy + EmergencyCallRoutingPolicy - This parameter is used to assign a custom emergency calling policy to a network site. For more information see Assign a custom emergency calling policy to a network site (https://learn.microsoft.com/microsoftteams/manage-emergency-calling-policies#assign-a-custom-emergency-calling-policy-to-a-network-site). + This parameter is used to assign a custom emergency call routing policy to a network site. For more information, see Assign a custom emergency call routing policy to a network site (https://learn.microsoft.com/microsoftteams/manage-emergency-call-routing-policies#assign-a-custom-emergency-call-routing-policy-to-a-network-site). String @@ -56668,10 +62100,10 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -56679,10 +62111,13 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr False - - WhatIf + + + New-CsTenantNetworkSite + + Confirm - Shows what would happen if the cmdlet runs. The cmdlet is not run. + Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -56690,9 +62125,6 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr False - - - New-CsTenantNetworkSite Description @@ -56706,9 +62138,9 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None - EmergencyCallRoutingPolicy + EmergencyCallingPolicy - This parameter is used to assign a custom emergency call routing policy to a network site. For more information, see Assign a custom emergency call routing policy to a network site (https://learn.microsoft.com/microsoftteams/manage-emergency-call-routing-policies#assign-a-custom-emergency-call-routing-policy-to-a-network-site). + This parameter is used to assign a custom emergency calling policy to a network site. For more information see Assign a custom emergency calling policy to a network site (https://learn.microsoft.com/microsoftteams/manage-emergency-calling-policies#assign-a-custom-emergency-calling-policy-to-a-network-site). String @@ -56718,9 +62150,9 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None - EmergencyCallingPolicy + EmergencyCallRoutingPolicy - This parameter is used to assign a custom emergency calling policy to a network site. For more information see Assign a custom emergency calling policy to a network site (https://learn.microsoft.com/microsoftteams/manage-emergency-calling-policies#assign-a-custom-emergency-calling-policy-to-a-network-site). + This parameter is used to assign a custom emergency call routing policy to a network site. For more information, see Assign a custom emergency call routing policy to a network site (https://learn.microsoft.com/microsoftteams/manage-emergency-call-routing-policies#assign-a-custom-emergency-call-routing-policy-to-a-network-site). String @@ -56801,17 +62233,6 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - WhatIf @@ -56826,17 +62247,17 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr - - Identity + + Confirm - Unique identifier for the network site to be created. + Prompts you for confirmation before running the cmdlet. - String + SwitchParameter - String + SwitchParameter - None + False Description @@ -56851,9 +62272,9 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None - EmergencyCallRoutingPolicy + EmergencyCallingPolicy - This parameter is used to assign a custom emergency call routing policy to a network site. For more information, see Assign a custom emergency call routing policy to a network site (https://learn.microsoft.com/microsoftteams/manage-emergency-call-routing-policies#assign-a-custom-emergency-call-routing-policy-to-a-network-site). + This parameter is used to assign a custom emergency calling policy to a network site. For more information see Assign a custom emergency calling policy to a network site (https://learn.microsoft.com/microsoftteams/manage-emergency-calling-policies#assign-a-custom-emergency-calling-policy-to-a-network-site). String @@ -56863,9 +62284,9 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None - EmergencyCallingPolicy + EmergencyCallRoutingPolicy - This parameter is used to assign a custom emergency calling policy to a network site. For more information see Assign a custom emergency calling policy to a network site (https://learn.microsoft.com/microsoftteams/manage-emergency-calling-policies#assign-a-custom-emergency-calling-policy-to-a-network-site). + This parameter is used to assign a custom emergency call routing policy to a network site. For more information, see Assign a custom emergency call routing policy to a network site (https://learn.microsoft.com/microsoftteams/manage-emergency-call-routing-policies#assign-a-custom-emergency-call-routing-policy-to-a-network-site). String @@ -56886,6 +62307,18 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None + + Identity + + Unique identifier for the network site to be created. + + String + + String + + + None + LocationPolicy @@ -56946,18 +62379,6 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - WhatIf @@ -57006,19 +62427,19 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr Online Version: - https://learn.microsoft.com/powershell/module/teams/new-cstenantnetworksite + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworksite Get-CsTenantNetworkSite - https://learn.microsoft.com/powershell/module/teams/get-cstenantnetworksite + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworksite Remove-CsTenantNetworkSite - https://learn.microsoft.com/powershell/module/teams/remove-cstenantnetworksite + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworksite Set-CsTenantNetworkSite - https://learn.microsoft.com/powershell/module/teams/set-cstenantnetworksite + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworksite @@ -57028,11 +62449,11 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr New CsTenantNetworkSubnet - As an Admin, you can use the Windows PowerShell command, New-CsTenantNetworkSubnet to define network subnets and assign them to network sites. Each internal subnet may only be associated with one site. Tenant network subnet is used for Location Based Routing. + Creates a new network subnet. - IP subnets at the location where Teams endpoints can connect to the network must be defined and associated to a defined network in order to enforce toll bypass. Multiple subnets may be associated with the same network site, but multiple sites may not be associated with a same subnet. This association of subnets enables Location-Based routing to locate the endpoints geographically to determine if a given PSTN call should be allowed. Both IPv4 and IPv6 subnets are supported. When determining if a Teams endpoint is located at a site an IPv6 address will be checked for a match first. + Each internal subnet may only be associated with one site. Tenant network subnet is used for Location Based Routing. IP subnets at the location where Teams endpoints can connect to the network must be defined and associated to a defined network in order to enforce toll bypass. Multiple subnets may be associated with the same network site, but multiple sites may not be associated with a same subnet. This association of subnets enables Location-Based routing to locate the endpoints geographically to determine if a given PSTN call should be allowed. Both IPv4 and IPv6 subnets are supported. When determining if a Teams endpoint is located at a site an IPv6 address will be checked for a match first. When the client is sending the network subnet, please make sure we have already whitelisted the IP address by running this command-let, otherwise the request will be rejected. If you are only adding the IPv4 address by running this command-let, but your client are only sending and IPv6 address, it will be rejected. @@ -57050,18 +62471,16 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None - - MaskBits + + Confirm - This parameter determines the length of bits to mask to the subnet. - IPv4 format subnet accepts maskbits from 0 to 32 inclusive. IPv6 format subnet accepts maskbits from 0 to 128 inclusive. + Prompts you for confirmation before running the cmdlet. - Int32 - Int32 + SwitchParameter - None + False Description @@ -57075,28 +62494,30 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None - - NetworkSiteID + + MaskBits - NetworkSiteID is the identifier for the network site which the current network subnet is associating to. + This parameter determines the length of bits to mask to the subnet. + IPv4 format subnet accepts maskbits from 0 to 32 inclusive. IPv6 format subnet accepts maskbits from 0 to 128 inclusive. - String + Int32 - String + Int32 None - - Confirm + + NetworkSiteID - Prompts you for confirmation before running the cmdlet. + NetworkSiteID is the identifier for the network site which the current network subnet is associating to. + String - SwitchParameter + String - False + None WhatIf @@ -57112,18 +62533,16 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr New-CsTenantNetworkSubnet - - MaskBits + + Confirm - This parameter determines the length of bits to mask to the subnet. - IPv4 format subnet accepts maskbits from 0 to 32 inclusive. IPv6 format subnet accepts maskbits from 0 to 128 inclusive. + Prompts you for confirmation before running the cmdlet. - Int32 - Int32 + SwitchParameter - None + False Description @@ -57137,6 +62556,19 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None + + MaskBits + + This parameter determines the length of bits to mask to the subnet. + IPv4 format subnet accepts maskbits from 0 to 32 inclusive. IPv6 format subnet accepts maskbits from 0 to 128 inclusive. + + Int32 + + Int32 + + + None + NetworkSiteID @@ -57161,17 +62593,6 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - WhatIf @@ -57186,6 +62607,30 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Provide a description of the network subnet to identify the purpose of creating it. + + String + + String + + + None + Identity @@ -57211,18 +62656,6 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None - - Description - - Provide a description of the network subnet to identify the purpose of creating it. - - String - - String - - - None - NetworkSiteID @@ -57247,18 +62680,6 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - WhatIf @@ -57309,19 +62730,19 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr Online Version: - https://learn.microsoft.com/powershell/module/teams/new-cstenantnetworksubnet + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworksubnet Get-CsTenantNetworkSubnet - https://learn.microsoft.com/powershell/module/teams/get-cstenantnetworksubnet + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworksubnet Remove-CsTenantNetworkSubnet - https://learn.microsoft.com/powershell/module/teams/remove-cstenantnetworksubnet + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworksubnet Set-CsTenantNetworkSubnet - https://learn.microsoft.com/powershell/module/teams/set-cstenantnetworksubnet + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworksubnet @@ -57331,16 +62752,28 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr New CsTenantTrustedIPAddress - As an Admin, you can use the Windows PowerShell command, New-CsTenantTrustedIPAddress to define external subnets and assign them to the tenant. You can define an unlimited number of external subnets for a tenant. + Creates a new IP address. External trusted IPs are the Internet external IPs of the enterprise network and are used to determine if the user's endpoint is inside the corporate network before checking for a specific site match. If the user's external IP matches one defined in the trusted list, then Location-Based Routing will check to determine which internal subnet the user's endpoint is located. If the user's external IP doesn't match one defined in the trusted list, the endpoint will be classified as being at an unknown and any PSTN calls to/from an LBR enabled user are blocked. - Both IPv4 and IPv6 trusted IP addresses are supported. + Both IPv4 and IPv6 trusted IP addresses are supported. You can define an unlimited number of external subnets for a tenant. New-CsTenantTrustedIPAddress + + Identity + + Unique identifier for the IP address to be created. + + XdsGlobalRelativeIdentity + + XdsGlobalRelativeIdentity + + + None + Confirm @@ -57375,18 +62808,6 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr False - - IPAddress - - The name of the IP address. This must be a unique and valid IPv4 or IPv6 address. You cannot specify an IP address and an Identity at the same time. - - String - - String - - - None - InMemory @@ -57441,18 +62862,6 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr New-CsTenantTrustedIPAddress - - Identity - - Unique identifier for the IP address to be created. - - XdsGlobalRelativeIdentity - - XdsGlobalRelativeIdentity - - - None - Confirm @@ -57498,6 +62907,18 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr False + + IPAddress + + The name of the IP address. This must be a unique and valid IPv4 or IPv6 address. You cannot specify an IP address and an Identity at the same time. + + String + + String + + + None + MaskBits @@ -57577,18 +62998,6 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr False - - IPAddress - - The name of the IP address. This must be a unique and valid IPv4 or IPv6 address. You cannot specify an IP address and an Identity at the same time. - - String - - String - - - None - Identity @@ -57613,6 +63022,18 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr False + + IPAddress + + The name of the IP address. This must be a unique and valid IPv4 or IPv6 address. You cannot specify an IP address and an Identity at the same time. + + String + + String + + + None + MaskBits @@ -57708,7 +63129,7 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr Online Version: - https://learn.microsoft.com/powershell/module/teams/new-cstenanttrustedipaddress + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenanttrustedipaddress @@ -57740,6 +63161,18 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + Identity @@ -57804,6 +63237,18 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + Identity @@ -57892,19 +63337,19 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csusercallingdelegate + https://learn.microsoft.com/powershell/module/microsoftteams/new-csusercallingdelegate Get-CsUserCallingSettings - https://learn.microsoft.com/powershell/module/teams/get-csusercallingsettings + https://learn.microsoft.com/powershell/module/microsoftteams/get-csusercallingsettings Set-CsUserCallingDelegate - https://learn.microsoft.com/powershell/module/teams/set-csusercallingdelegate + https://learn.microsoft.com/powershell/module/microsoftteams/set-csusercallingdelegate Remove-CsUserCallingDelegate - https://learn.microsoft.com/powershell/module/teams/remove-csusercallingdelegate + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csusercallingdelegate @@ -57914,12 +63359,11 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr New CsVideoInteropServiceProvider - Cloud Video Interop for Teams enables 3rd party VTC devices to be able to join Teams meetings. The CsVideoInteropServiceProvider cmdlets allow you to designate provider/tenant specific information about the connection to the provider. + Use the New-CsVideoInteropServiceProvider to specify information about a supported CVI partner your organization would like to use. Cloud Video Interop for Teams enables 3rd party VTC devices to be able to join Teams meetings. The CsVideoInteropServiceProvider cmdlets allow you to designate provider/tenant specific information about the connection to the provider. - Use the New-CsVideoInteropServiceProvider to specify information about a supported CVI partner your organization would like to use. Important note: New-CsVideoInteropServiceProvider does not do a check on the -Identity to be one of the Identity (without tag:) from the Get-CsTeamsVideoInteropServicePolicy, however if this is not set to match, the VTC coordinates will not added to the meetings correctly. Make sure that your "Identity" matches a valid policy identity. @@ -58337,7 +63781,7 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csvideointeropserviceprovider + https://learn.microsoft.com/powershell/module/microsoftteams/new-csvideointeropserviceprovider @@ -58348,12 +63792,12 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr CsVoiceNormalizationRule Creates a new voice normalization rule. - Voice normalization rules are used to convert a telephone dialing requirement (for example, dialing 9 to access an outside line) to the E.164 phone number format used by Skype for Business Server or Microsoft Teams. - This cmdlet was introduced in Lync Server 2010. - This cmdlet creates a named voice normalization rule. These rules are a required part of phone authorization and call routing. They define the requirements for converting (or translating) numbers from an internal format to a standard (E.164) format. An understanding of regular expressions is helpful in order to define number patterns that will be translated. + This cmdlet was introduced in Lync Server 2010. + Voice normalization rules are used to convert a telephone dialing requirement (for example, dialing 9 to access an outside line) to the E.164 phone number format used by Skype for Business Server or Microsoft Teams. + These rules are a required part of phone authorization and call routing. They define the requirements for converting (or translating) numbers from an internal format to a standard (E.164) format. An understanding of regular expressions is helpful in order to define number patterns that will be translated. For Lync or Skype for Business Server, rules that are created by using this cmdlet are part of the dial plan and in addition to being accessible through the `Get-CsVoiceNormalizationRule` cmdlet can also be accessed through the NormalizationRules property returned by a call to the `Get-CsDialPlan` cmdlet. You cannot create a normalization rule unless a dial plan with an Identity matching the scope specified in the normalization rule Identity already exists. For example, you can't create a normalization rule with the Identity site:Redmond/RedmondNormalizationRule unless a dial plan for site:Redmond already exists. For Microsoft Teams, rules that are created by using this cmdlet can only be created with the InMemory switch and should be added to a tenant dial plan using the `New-CsTenantDialPlan` or `Set-CsTenantDialPlan` cmdlets. @@ -58375,18 +63819,17 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None - - Parent + + Confirm - The scope at which the new normalization rule will be created. This value must be global; site:<sitename>, where <sitename> is the name of the Skype for Business Server site; PSTN gateway or Registrar service, such as PSTNGateway:redmond.litwareinc.com; or a string designating a per user rule. A dial plan with the specified scope must already exist or the command will fail. - The Parent parameter is required unless the Identity parameter is specified. You cannot include the Identity parameter and the Parent parameter in the same command. If you include the Parent parameter, the Name parameter is also required. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + Prompts you for confirmation before executing the command. - String - String + SwitchParameter - None + False Description @@ -58401,9 +63844,35 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None + + Force + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + + SwitchParameter + + + False + + + InMemory + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Creates an object reference without actually committing the object as a permanent change. + For Lync or Skype for Business Server, if you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>. + + + SwitchParameter + + + False + IsInternalExtension + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams If True, the result of applying this rule will be a number internal to the organization. If False, applying the rule results in an external number. This value is ignored if the value of the OptimizeDeviceDialing property of the associated dial plan/tenant dial plan is set to False. Default: False @@ -58414,9 +63883,23 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None + + Parent + + The scope at which the new normalization rule will be created. This value must be global; site:<sitename>, where <sitename> is the name of the Skype for Business Server site; PSTN gateway or Registrar service, such as PSTNGateway:redmond.litwareinc.com; or a string designating a per user rule. A dial plan with the specified scope must already exist or the command will fail. + The Parent parameter is required unless the Identity parameter is specified. You cannot include the Identity parameter and the Parent parameter in the same command. If you include the Parent parameter, the Name parameter is also required. + + String + + String + + + None + Pattern + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams A regular expression that the dialed number must match in order for this rule to be applied. Default: ^(\d{11})$ (The default represents any set of numbers up to 11 digits.) @@ -58430,6 +63913,7 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr Priority + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams The order in which rules are applied. A phone number might match more than one rule. This parameter sets the order in which the rules are tested against the number. Int32 @@ -58439,9 +63923,23 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None + + Tenant + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + For internal Microsoft usage. + + Guid + + Guid + + + None + Translation + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams The regular expression pattern that will be applied to the number to convert it to E.164 format. Default: +$1 (The default prefixes the number with a plus sign [+].) @@ -58452,10 +63950,11 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None - - Force + + WhatIf - Suppresses any confirmation prompts that would otherwise be displayed before making changes. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + Describes what would happen if you executed the command without actually executing the command. SwitchParameter @@ -58463,11 +63962,14 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr False - - InMemory + + + New-CsVoiceNormalizationRule + + Confirm - Creates an object reference without actually committing the object as a permanent change. - For Lync or Skype for Business Server, if you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + Prompts you for confirmation before executing the command. SwitchParameter @@ -58475,10 +63977,24 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr False - - WhatIf + + Description - Describes what would happen if you executed the command without actually executing the command. + A friendly description of the normalization rule. + Maximum string length: 512 characters. + + String + + String + + + None + + + Force + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + Suppresses any confirmation prompts that would otherwise be displayed before making changes. SwitchParameter @@ -58486,10 +64002,12 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr False - - Confirm + + InMemory - Prompts you for confirmation before executing the command. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Creates an object reference without actually committing the object as a permanent change. + For Lync or Skype for Business Server, if you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>. SwitchParameter @@ -58498,20 +64016,19 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr False - Tenant + IsInternalExtension - For internal Microsoft usage. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + If True, the result of applying this rule will be a number internal to the organization. If False, applying the rule results in an external number. This value is ignored if the value of the OptimizeDeviceDialing property of the associated dial plan/tenant dial plan is set to False. + Default: False - Guid + Boolean - Guid + Boolean None - - - New-CsVoiceNormalizationRule Name @@ -58537,35 +64054,10 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None - - Description - - A friendly description of the normalization rule. - Maximum string length: 512 characters. - - String - - String - - - None - - - IsInternalExtension - - If True, the result of applying this rule will be a number internal to the organization. If False, applying the rule results in an external number. This value is ignored if the value of the OptimizeDeviceDialing property of the associated dial plan/tenant dial plan is set to False. - Default: False - - Boolean - - Boolean - - - None - Pattern + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams A regular expression that the dialed number must match in order for this rule to be applied. Default: ^(\d{11})$ (The default represents any set of numbers up to 11 digits.) @@ -58579,6 +64071,7 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr Priority + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams The order in which rules are applied. A phone number might match more than one rule. This parameter sets the order in which the rules are tested against the number. Int32 @@ -58589,44 +64082,36 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None - Translation + Tenant - The regular expression pattern that will be applied to the number to convert it to E.164 format. - Default: +$1 (The default prefixes the number with a plus sign [+].) + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + For internal Microsoft usage. - String + Guid - String + Guid None - Force - - Suppresses any confirmation prompts that would otherwise be displayed before making changes. - - - SwitchParameter - - - False - - - InMemory + Translation - Creates an object reference without actually committing the object as a permanent change. - For Lync or Skype for Business Server, if you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + The regular expression pattern that will be applied to the number to convert it to E.164 format. + Default: +$1 (The default prefixes the number with a plus sign [+].) + String - SwitchParameter + String - False + None WhatIf + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams Describes what would happen if you executed the command without actually executing the command. @@ -58635,51 +64120,27 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr False - - Confirm - - Prompts you for confirmation before executing the command. - - - SwitchParameter - - - False - - - Tenant - - For internal Microsoft usage. - - Guid - - Guid - - - None - - - Identity + + Confirm - A unique identifier for the rule. The Identity specified must include the scope followed by a slash and then the name; for example: site:Redmond/Rule1, where site:Redmond is the scope and Rule1 is the name. The name portion will automatically be stored in the Name property. You cannot specify values for Identity and Name in the same command. - For Lync and Skype for Business Server, voice normalization rules can be created at the following scopes: global, site, service (Registrar and PSTNGateway only) and per user. A dial plan with an Identity matching the scope of the normalization rule must already exist before a new rule can be created. (To retrieve a list of dial plans, call the `Get-CsDialPlan` cmdlet.) - For Microsoft Teams, voice normalization rules can be created at the following scopes: global and tag. - The Identity parameter is required unless the Parent parameter is specified. You cannot include the Identity parameter and the Parent parameter in the same command. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + Prompts you for confirmation before executing the command. - XdsIdentity + SwitchParameter - XdsIdentity + SwitchParameter - None + False - - Name + + Description - The name of the rule. This parameter is required if a value has been specified for the Parent parameter. If no value has been specified for the Parent parameter, Name defaults to the name specified in the Identity parameter. For example, if a rule is created with the Identity site:Redmond/RedmondRule, the Name will default to RedmondRule. The Name parameter and the Identity parameter cannot be used in the same command. + A friendly description of the normalization rule. + Maximum string length: 512 characters. String @@ -58689,34 +64150,51 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None - Parent + Force - The scope at which the new normalization rule will be created. This value must be global; site:<sitename>, where <sitename> is the name of the Skype for Business Server site; PSTN gateway or Registrar service, such as PSTNGateway:redmond.litwareinc.com; or a string designating a per user rule. A dial plan with the specified scope must already exist or the command will fail. - The Parent parameter is required unless the Identity parameter is specified. You cannot include the Identity parameter and the Parent parameter in the same command. If you include the Parent parameter, the Name parameter is also required. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + Suppresses any confirmation prompts that would otherwise be displayed before making changes. - String + SwitchParameter - String + SwitchParameter + + + False + + + Identity + + A unique identifier for the rule. The Identity specified must include the scope followed by a slash and then the name; for example: site:Redmond/Rule1, where site:Redmond is the scope and Rule1 is the name. The name portion will automatically be stored in the Name property. You cannot specify values for Identity and Name in the same command. + For Lync and Skype for Business Server, voice normalization rules can be created at the following scopes: global, site, service (Registrar and PSTNGateway only) and per user. A dial plan with an Identity matching the scope of the normalization rule must already exist before a new rule can be created. (To retrieve a list of dial plans, call the `Get-CsDialPlan` cmdlet.) + For Microsoft Teams, voice normalization rules can be created at the following scopes: global and tag. + The Identity parameter is required unless the Parent parameter is specified. You cannot include the Identity parameter and the Parent parameter in the same command. + + XdsIdentity + + XdsIdentity None - Description + InMemory - A friendly description of the normalization rule. - Maximum string length: 512 characters. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Creates an object reference without actually committing the object as a permanent change. + For Lync or Skype for Business Server, if you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>. - String + SwitchParameter - String + SwitchParameter - None + False IsInternalExtension + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams If True, the result of applying this rule will be a number internal to the organization. If False, applying the rule results in an external number. This value is ignored if the value of the OptimizeDeviceDialing property of the associated dial plan/tenant dial plan is set to False. Default: False @@ -58727,11 +64205,10 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None - - Pattern + + Name - A regular expression that the dialed number must match in order for this rule to be applied. - Default: ^(\d{11})$ (The default represents any set of numbers up to 11 digits.) + The name of the rule. This parameter is required if a value has been specified for the Parent parameter. If no value has been specified for the Parent parameter, Name defaults to the name specified in the Identity parameter. For example, if a rule is created with the Identity site:Redmond/RedmondRule, the Name will default to RedmondRule. The Name parameter and the Identity parameter cannot be used in the same command. String @@ -58741,22 +64218,24 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None - Priority + Parent - The order in which rules are applied. A phone number might match more than one rule. This parameter sets the order in which the rules are tested against the number. + The scope at which the new normalization rule will be created. This value must be global; site:<sitename>, where <sitename> is the name of the Skype for Business Server site; PSTN gateway or Registrar service, such as PSTNGateway:redmond.litwareinc.com; or a string designating a per user rule. A dial plan with the specified scope must already exist or the command will fail. + The Parent parameter is required unless the Identity parameter is specified. You cannot include the Identity parameter and the Parent parameter in the same command. If you include the Parent parameter, the Name parameter is also required. - Int32 + String - Int32 + String None - Translation + Pattern - The regular expression pattern that will be applied to the number to convert it to E.164 format. - Default: +$1 (The default prefixes the number with a plus sign [+].) + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + A regular expression that the dialed number must match in order for this rule to be applied. + Default: ^(\d{11})$ (The default represents any set of numbers up to 11 digits.) String @@ -58766,46 +64245,50 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr None - Force + Priority - Suppresses any confirmation prompts that would otherwise be displayed before making changes. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + The order in which rules are applied. A phone number might match more than one rule. This parameter sets the order in which the rules are tested against the number. - SwitchParameter + Int32 - SwitchParameter + Int32 - False + None - InMemory + Tenant - Creates an object reference without actually committing the object as a permanent change. - For Lync or Skype for Business Server, if you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + For internal Microsoft usage. - SwitchParameter + Guid - SwitchParameter + Guid - False + None - - WhatIf + + Translation - Describes what would happen if you executed the command without actually executing the command. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + The regular expression pattern that will be applied to the number to convert it to E.164 format. + Default: +$1 (The default prefixes the number with a plus sign [+].) - SwitchParameter + String - SwitchParameter + String - False + None - - Confirm + + WhatIf - Prompts you for confirmation before executing the command. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + Describes what would happen if you executed the command without actually executing the command. SwitchParameter @@ -58814,18 +64297,6 @@ New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr False - - Tenant - - For internal Microsoft usage. - - Guid - - Guid - - - None - @@ -58882,23 +64353,23 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} Online Version: - https://learn.microsoft.com/powershell/module/teams/new-csvoicenormalizationrule + https://learn.microsoft.com/powershell/module/microsoftteams/new-csvoicenormalizationrule Test-CsVoiceNormalizationRule - https://learn.microsoft.com/powershell/module/teams/test-csvoicenormalizationrule + https://learn.microsoft.com/powershell/module/microsoftteams/test-csvoicenormalizationrule Get-CsDialPlan - https://learn.microsoft.com/powershell/module/teams/get-csdialplan + https://learn.microsoft.com/powershell/module/skypeforbusiness/get-csdialplan New-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/teams/new-cstenantdialplan + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantdialplan Set-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/teams/set-cstenantdialplan + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantdialplan @@ -58908,11 +64379,12 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} Register CsOnlineDialInConferencingServiceNumber - When you buy Audio Conferencing licenses, Microsoft is hosting your audio conferencing bridge for your organization. The audio conferencing bridge gives out dial-in phone numbers from different locations so that meeting organizers and participants can use them to join Microsoft Teams meetings using a phone. In addition to the phone numbers already assigned to your conferencing bridge, you can get additional service numbers (toll and toll-free numbers used for audio conferencing) from other locations, and then assign them to the conferencing bridge so you can expand coverage for your users. The Register-CsOnlineDialInConferencingServiceNumber command allows you to assign any additional service number that you may have acquired to your conference bridge. + The Register-CsOnlineDialInConferencingServiceNumber command allows you to assign any additional service number that you may have acquired to your conference bridge. The Register-CsOnlineDialInConferencingServiceNumber command allows you to assign any additional service number that you may have acquired to your conference bridge. + When you buy Audio Conferencing licenses, Microsoft is hosting your audio conferencing bridge for your organization. The audio conferencing bridge gives out dial-in phone numbers from different locations so that meeting organizers and participants can use them to join Microsoft Teams meetings using a phone. In addition to the phone numbers already assigned to your conferencing bridge, you can get additional service numbers (toll and toll-free numbers used for audio conferencing) from other locations, and then assign them to the conferencing bridge so you can expand coverage for your users. @@ -58920,6 +64392,7 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} Identity + > Applicable: Microsoft Teams PARAMVALUE: String String @@ -58932,6 +64405,7 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} Instance + > Applicable: Microsoft Teams PARAMVALUE: ConferencingServiceNumber ConferencingServiceNumber @@ -58944,6 +64418,7 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} BridgeId + > Applicable: Microsoft Teams PARAMVALUE: Guid Guid @@ -58956,6 +64431,7 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} BridgeName + > Applicable: Microsoft Teams PARAMVALUE: String String @@ -58968,6 +64444,7 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} DomainController + > Applicable: Microsoft Teams PARAMVALUE: Fqdn Fqdn @@ -58980,6 +64457,7 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} Force + > Applicable: Microsoft Teams PARAMVALUE: SwitchParameter @@ -58991,6 +64469,7 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} Tenant + > Applicable: Microsoft Teams PARAMVALUE: Guid Guid @@ -59003,6 +64482,7 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} TenantDomain + > Applicable: Microsoft Teams PARAMVALUE: String String @@ -59015,33 +64495,10 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} - - Identity - - PARAMVALUE: String - - String - - String - - - None - - - Instance - - PARAMVALUE: ConferencingServiceNumber - - ConferencingServiceNumber - - ConferencingServiceNumber - - - None - BridgeId + > Applicable: Microsoft Teams PARAMVALUE: Guid Guid @@ -59054,6 +64511,7 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} BridgeName + > Applicable: Microsoft Teams PARAMVALUE: String String @@ -59066,6 +64524,7 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} DomainController + > Applicable: Microsoft Teams PARAMVALUE: Fqdn Fqdn @@ -59078,6 +64537,7 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} Force + > Applicable: Microsoft Teams PARAMVALUE: SwitchParameter SwitchParameter @@ -59087,9 +64547,36 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} False + + Identity + + > Applicable: Microsoft Teams + PARAMVALUE: String + + String + + String + + + None + + + Instance + + > Applicable: Microsoft Teams + PARAMVALUE: ConferencingServiceNumber + + ConferencingServiceNumber + + ConferencingServiceNumber + + + None + Tenant + > Applicable: Microsoft Teams PARAMVALUE: Guid Guid @@ -59102,6 +64589,7 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} TenantDomain + > Applicable: Microsoft Teams PARAMVALUE: String String @@ -59131,7 +64619,7 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} Online Version: - https://learn.microsoft.com/powershell/module/teams/register-csonlinedialinconferencingservicenumber + https://learn.microsoft.com/powershell/module/microsoftteams/register-csonlinedialinconferencingservicenumber @@ -59197,23 +64685,23 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csapplicationaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csapplicationaccesspolicy New-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/teams/new-csapplicationaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy Grant-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/teams/new-csapplicationaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy Get-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/teams/new-csapplicationaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy Set-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/teams/new-csapplicationaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy @@ -59224,11 +64712,11 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} CsAutoAttendant Use the Remove-CsAutoAttendant cmdlet to delete an Auto Attendant (AA). - > [!NOTE] > Remove any associated resource accounts with Remove-CsOnlineApplicationInstanceAssociation (https://learn.microsoft.com/powershell/module/teams/remove-csonlineapplicationinstanceassociation) before attempting to delete the Auto Attendant (AA). The Remove-CsAutoAttendant cmdlet deletes an AA that is specified by the Identity parameter. + > [!NOTE] > Remove any associated resource accounts with Remove-CsOnlineApplicationInstanceAssociation (remove-csonlineapplicationinstanceassociation.md) before attempting to delete the Auto Attendant (AA). @@ -59236,6 +64724,7 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} Identity + > Applicable: Microsoft Teams The identity for the AA to be removed. System.String @@ -59248,7 +64737,8 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -59263,6 +64753,7 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} Identity + > Applicable: Microsoft Teams The identity for the AA to be removed. System.String @@ -59275,7 +64766,8 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -59322,19 +64814,19 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csautoattendant + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csautoattendant New-CsAutoAttendant - https://learn.microsoft.com/powershell/module/teams/new-csautoattendant + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendant Get-CsAutoAttendant - https://learn.microsoft.com/powershell/module/teams/get-csautoattendant + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendant Set-CsAutoAttendant - https://learn.microsoft.com/powershell/module/teams/set-csautoattendant + https://learn.microsoft.com/powershell/module/microsoftteams/set-csautoattendant @@ -59356,6 +64848,7 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} Identity + > Applicable: Microsoft Teams The Identity parameter identifies the Caller ID policy. String @@ -59365,10 +64858,11 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} None - - WhatIf + + Confirm - The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing, and requires confirmation to proceed. SwitchParameter @@ -59376,10 +64870,11 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} False - - Confirm + + WhatIf - The Confirm switch causes the command to pause processing, and requires confirmation to proceed. + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. SwitchParameter @@ -59390,9 +64885,23 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing, and requires confirmation to proceed. + + SwitchParameter + + SwitchParameter + + + False + Identity + > Applicable: Microsoft Teams The Identity parameter identifies the Caller ID policy. String @@ -59405,6 +64914,7 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} WhatIf + > Applicable: Microsoft Teams The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. SwitchParameter @@ -59414,18 +64924,6 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} False - - Confirm - - The Confirm switch causes the command to pause processing, and requires confirmation to proceed. - - SwitchParameter - - SwitchParameter - - - False - @@ -59446,23 +64944,23 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-cscallinglineidentity + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cscallinglineidentity Get-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/teams/get-cscallinglineidentity + https://learn.microsoft.com/powershell/module/microsoftteams/get-cscallinglineidentity Grant-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/teams/grant-cscallinglineidentity + https://learn.microsoft.com/powershell/module/microsoftteams/grant-cscallinglineidentity New-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/teams/new-cscallinglineidentity + https://learn.microsoft.com/powershell/module/microsoftteams/new-cscallinglineidentity Set-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/teams/set-cscallinglineidentity + https://learn.microsoft.com/powershell/module/microsoftteams/set-cscallinglineidentity @@ -59484,6 +64982,7 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} Identity + > Applicable: Microsoft Teams PARAMVALUE: Guid Guid @@ -59496,6 +64995,7 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} Tenant + > Applicable: Microsoft Teams PARAMVALUE: Guid Guid @@ -59511,6 +65011,7 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} Identity + > Applicable: Microsoft Teams PARAMVALUE: Guid Guid @@ -59523,6 +65024,7 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} Tenant + > Applicable: Microsoft Teams PARAMVALUE: Guid Guid @@ -59570,7 +65072,122 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-cscallqueue + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cscallqueue + + + + + + Remove-CsComplianceRecordingForCallQueueTemplate + Remove + CsComplianceRecordingForCallQueueTemplate + + Use the Remove-CsComplianceRecordingForCallQueueTemplate cmdlet to delete a Compliance Recording for Call Queues template. + + + + Use the Remove-CsComplianceRecordingForCallQueueTemplate cmdlet to delete a Compliance Recording for Call Queues template. If the template is currently assigned to a call queue, an error will be returned. + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for this feature. General Availability for this functionality has not been determined at this time. + + + + Remove-CsComplianceRecordingForCallQueueTemplate + + Id + + > Applicable: Microsoft Teams + The Id parameter is the unique identifier assigned to the Compliance Recording for Call Queue template. + + System.String + + System.String + + + None + + + + + + Id + + > Applicable: Microsoft Teams + The Id parameter is the unique identifier assigned to the Compliance Recording for Call Queue template. + + System.String + + System.String + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.OAA.Models.AutoAttendant + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Remove-CsComplianceRecordingForCallQueueTemplate -Id 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01 + + This example deletes the Compliance Recording for Call Queue template with the identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01. If no Compliance Recording for Call Queue template exists with the identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01, then this example generates an error. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/Remove-CsComplianceRecordingForCallQueueTemplate + + + New-CsComplianceRecordingForCallQueueTemplate + + + + Set-CsComplianceRecordingForCallQueueTemplate + + + + Get-CsComplianceRecordingForCallQueueTemplate + + + + Get-CsCallQueue + + + + New-CsCallQueue + + + + Set-CsCallQueue + + + + Remove-CsCallQueue + @@ -59592,6 +65209,7 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} Identity + > Applicable: Microsoft Teams The name of the custom package. String @@ -59607,122 +65225,447 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} Identity - The name of the custom package. + > Applicable: Microsoft Teams + The name of the custom package. + + String + + String + + + None + + + + + + + Default packages created by Microsoft cannot be deleted. + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsCustomPolicyPackage -Identity "MyPackage" + + Deletes a custom package named "MyPackage". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cscustompolicypackage + + + Get-CsPolicyPackage + https://learn.microsoft.com/powershell/module/microsoftteams/get-cspolicypackage + + + New-CsCustomPolicyPackage + https://learn.microsoft.com/powershell/module/microsoftteams/new-cscustompolicypackage + + + Update-CsCustomPolicyPackage + https://learn.microsoft.com/powershell/module/microsoftteams/update-cscustompolicypackage + + + + + + Remove-CsGroupPolicyAssignment + Remove + CsGroupPolicyAssignment + + This cmdlet is used to remove a group policy assignment. + + + + This cmdlet removes the policy of a specific type from a group. A group can only be assigned one policy of a given type, so the name of the policy to be removed does not need to be specified. + When a policy assignment is removed from a group, any other group policy assignments of the same type that have lower rank will be updated. For example, if the policy assignment with rank 2 is removed, then the rank 3 and 4 policy assignments will be updated to rank 2 and 3 respectively. + + + + Remove-CsGroupPolicyAssignment + + Break + + Wait for .NET debugger to attach + + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + GroupId + + The ID of the group from which the assignment will be removed. + + String + + String + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + PassThru + + Returns true when the command succeeds + + + SwitchParameter + + + False + + + PolicyType + + The policy type of the assignment to be removed from the group. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Break + + Wait for .NET debugger to attach + + SwitchParameter + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + GroupId + + The ID of the group from which the assignment will be removed. + + String + + String + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + PassThru + + Returns true when the command succeeds + + SwitchParameter + + SwitchParameter + + + False + + + PolicyType + + The policy type of the assignment to be removed from the group. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call - String + PSCredential - String + PSCredential None + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy + + SwitchParameter + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + - Default packages created by Microsoft cannot be deleted. + - -------------------------- Example 1 -------------------------- - PS C:\> Remove-CsCustomPolicyPackage -Identity "MyPackage" + -------------------------- EXAMPLE 1 -------------------------- + Get-CsGroupPolicyAssignment -PolicyType TeamsMeetingPolicy + +GroupId PolicyType PolicyName Rank CreatedTime CreatedBy +------- ---------- ---------- ---- ----------- --------- +d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/2019 3:57:27 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 +e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/2019 12:20:41 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 +566b8d39-5c5c-4aaa-bc07-4f36278a1b38 TeamsMeetingPolicy Kiosk 3 11/2/2019 12:14:41 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 + +Remove-CsGroupPolicyAssignment -GroupId e050ce51-54bc-45b7-b3e6-c00343d31274 -PolicyType TeamsMeetingPolicy + +Get-CsGroupPolicyAssignment -PolicyType TeamsMeetingPolicy + +GroupId PolicyType PolicyName Rank CreatedTime CreatedBy +------- ---------- ---------- ---- ----------- --------- +d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/2019 3:57:27 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 +566b8d39-5c5c-4aaa-bc07-4f36278a1b38 TeamsMeetingPolicy Kiosk 2 11/2/2019 12:14:41 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 - Deletes a custom package named "MyPackage". + In this example, the policy assignment with rank 2 is removed. As a result, the policy assignment with rank 3 is updated to rank 2. Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-cscustompolicypackage - - - Get-CsPolicyPackage - https://learn.microsoft.com/powershell/module/teams/get-cspolicypackage + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csgrouppolicyassignment - New-CsCustomPolicyPackage - https://learn.microsoft.com/powershell/module/teams/new-cscustompolicypackage + New-CsGroupPolicyAssignment + https://learn.microsoft.com/powershell/module/microsoftteams/new-csgrouppolicyassignment - Update-CsCustomPolicyPackage - https://learn.microsoft.com/powershell/module/teams/update-cscustompolicypackage + Get-CsGroupPolicyAssignment + https://learn.microsoft.com/powershell/module/microsoftteams/get-csgrouppolicyassignment - Remove-CsGroupPolicyAssignment + Remove-CsHybridTelephoneNumber Remove - CsGroupPolicyAssignment + CsHybridTelephoneNumber - This cmdlet is used to remove a group policy assignment. + This cmdlet removes a hybrid telephone number. - This cmdlet removes the policy of a specific type from a group. A group can only be assigned one policy of a given type, so the name of the policy to be removed does not need to be specified. - When a policy assignment is removed from a group, any other group policy assignments of the same type that have lower rank will be updated. For example, if the policy assignment with rank 2 is removed, then the rank 3 and 4 policy assignments will be updated to rank 2 and 3 respectively. + This cmdlet removes a hybrid telephone number used for Audio Conferencing with Direct Routing for GCC High and DoD clouds. + > [!IMPORTANT] > This cmdlet is being deprecated. Use the new New-CsOnlineTelephoneNumberReleaseOrder cmdlet to remove a telephone number for Audio Conferencing with Direct Routing in Microsoft 365 GCC High and DoD clouds. Detailed instructions on how to use the new cmdlet can be found at New-CsOnlineTelephoneNumberReleaseOrder (new-csonlinetelephonenumberreleaseorder.md). - Remove-CsGroupPolicyAssignment - - GroupId + Remove-CsHybridTelephoneNumber + + Break - The ID of the group from which the assignment will be removed. + {{ Fill Break Description }} - String - String + System.Management.Automation.SwitchParameter - None + False - - PolicyType + + Confirm - The policy type of the assignment to be removed from the group. + Prompts you for confirmation before running the cmdlet. - String - String + System.Management.Automation.SwitchParameter - None + False - Break + HttpPipelineAppend - Wait for .NET debugger to attach + {{ Fill HttpPipelineAppend Description }} + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] - SwitchParameter + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] - False + None - HttpPipelineAppend + HttpPipelinePrepend - SendAsync Pipeline Steps to be appended to the front of the pipeline + {{ Fill HttpPipelinePrepend Description }} - SendAsyncStep[] + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] - SendAsyncStep[] + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] None - - HttpPipelinePrepend + + InputObject - SendAsync Pipeline Steps to be prepended to the front of the pipeline + {{ Fill InputObject Description }} - SendAsyncStep[] + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity - SendAsyncStep[] + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity None @@ -59730,10 +65673,10 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} PassThru - Returns true when the command succeeds + {{ Fill PassThru Description }} - SwitchParameter + System.Management.Automation.SwitchParameter False @@ -59741,11 +65684,11 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} Proxy - The URI for the proxy server to use + {{ Fill Proxy Description }} - Uri + System.Uri - Uri + System.Uri None @@ -59753,11 +65696,11 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} ProxyCredential - Credentials for a proxy server to use for the remote call + {{ Fill ProxyCredential Description }} - PSCredential + System.Management.Automation.PSCredential - PSCredential + System.Management.Automation.PSCredential None @@ -59765,10 +65708,10 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} ProxyUseDefaultCredentials - Use the default credentials for the proxy + {{ Fill ProxyUseDefaultCredentials Description }} - SwitchParameter + System.Management.Automation.SwitchParameter False @@ -59779,7 +65722,21 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} Shows what would happen if the cmdlet runs. The cmdlet is not run. - SwitchParameter + System.Management.Automation.SwitchParameter + + + False + + + + Remove-CsHybridTelephoneNumber + + Break + + {{ Fill Break Description }} + + + System.Management.Automation.SwitchParameter False @@ -59790,7 +65747,101 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} Prompts you for confirmation before running the cmdlet. - SwitchParameter + System.Management.Automation.SwitchParameter + + + False + + + HttpPipelineAppend + + {{ Fill HttpPipelineAppend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + PassThru + + {{ Fill PassThru Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + Proxy + + {{ Fill Proxy Description }} + + System.Uri + + System.Uri + + + None + + + ProxyCredential + + {{ Fill ProxyCredential Description }} + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + ProxyUseDefaultCredentials + + {{ Fill ProxyUseDefaultCredentials Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + TelephoneNumber + + > Applicable: Microsoft Teams + The telephone number to remove. The number should be specified without a prefixed "+". The phone number can't have "tel:" prefixed. + + System.String + + System.String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter False @@ -59798,62 +65849,62 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} - - GroupId + + Break - The ID of the group from which the assignment will be removed. + {{ Fill Break Description }} - String + System.Management.Automation.SwitchParameter - String + System.Management.Automation.SwitchParameter - None + False - - PolicyType + + Confirm - The policy type of the assignment to be removed from the group. + Prompts you for confirmation before running the cmdlet. - String + System.Management.Automation.SwitchParameter - String + System.Management.Automation.SwitchParameter - None + False - Break + HttpPipelineAppend - Wait for .NET debugger to attach + {{ Fill HttpPipelineAppend Description }} - SwitchParameter + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] - SwitchParameter + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] - False + None - HttpPipelineAppend + HttpPipelinePrepend - SendAsync Pipeline Steps to be appended to the front of the pipeline + {{ Fill HttpPipelinePrepend Description }} - SendAsyncStep[] + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] - SendAsyncStep[] + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] None - - HttpPipelinePrepend + + InputObject - SendAsync Pipeline Steps to be prepended to the front of the pipeline + {{ Fill InputObject Description }} - SendAsyncStep[] + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity - SendAsyncStep[] + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity None @@ -59861,11 +65912,11 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} PassThru - Returns true when the command succeeds + {{ Fill PassThru Description }} - SwitchParameter + System.Management.Automation.SwitchParameter - SwitchParameter + System.Management.Automation.SwitchParameter False @@ -59873,11 +65924,11 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} Proxy - The URI for the proxy server to use + {{ Fill Proxy Description }} - Uri + System.Uri - Uri + System.Uri None @@ -59885,11 +65936,11 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} ProxyCredential - Credentials for a proxy server to use for the remote call + {{ Fill ProxyCredential Description }} - PSCredential + System.Management.Automation.PSCredential - PSCredential + System.Management.Automation.PSCredential None @@ -59897,27 +65948,142 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} ProxyUseDefaultCredentials - Use the default credentials for the proxy + {{ Fill ProxyUseDefaultCredentials Description }} - SwitchParameter + System.Management.Automation.SwitchParameter - SwitchParameter + System.Management.Automation.SwitchParameter False + + TelephoneNumber + + > Applicable: Microsoft Teams + The telephone number to remove. The number should be specified without a prefixed "+". The phone number can't have "tel:" prefixed. + + System.String + + System.String + + + None + WhatIf Shows what would happen if the cmdlet runs. The cmdlet is not run. - SwitchParameter + System.Management.Automation.SwitchParameter - SwitchParameter + System.Management.Automation.SwitchParameter False + + + + + None + + + + + + + + + + None + + + + + + + + + The cmdlet is only available in GCC High and DoD cloud instances. + + + + + -------------------------- Example 1 -------------------------- + Remove-CsHybridTelephoneNumber -TelephoneNumber 14025551234 + + This example removes the hybrid phone number +1 (402) 555-1234. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cshybridtelephonenumber + + + New-CsHybridTelephoneNumber + https://learn.microsoft.com/powershell/module/microsoftteams/new-cshybridtelephonenumber + + + Get-CsHybridTelephoneNumber + https://learn.microsoft.com/powershell/module/microsoftteams/get-cshybridtelephonenumber + + + + + + Remove-CsInboundBlockedNumberPattern + Remove + CsInboundBlockedNumberPattern + + Removes a blocked number pattern from the tenant list. + + + + This cmdlet removes a blocked number pattern from the tenant list. + + + + Remove-CsInboundBlockedNumberPattern + + Identity + + A unique identifier specifying the blocked number pattern to be removed. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Confirm @@ -59930,6 +66096,30 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} False + + Identity + + A unique identifier specifying the blocked number pattern to be removed. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + @@ -59940,79 +66130,63 @@ New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} - -------------------------- EXAMPLE 1 -------------------------- - Get-CsGroupPolicyAssignment -PolicyType TeamsMeetingPolicy - -GroupId PolicyType PolicyName Rank CreatedTime CreatedBy -------- ---------- ---------- ---- ----------- --------- -d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/2019 3:57:27 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 -e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/2019 12:20:41 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 -566b8d39-5c5c-4aaa-bc07-4f36278a1b38 TeamsMeetingPolicy Kiosk 3 11/2/2019 12:14:41 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 - -Remove-CsGroupPolicyAssignment -GroupId e050ce51-54bc-45b7-b3e6-c00343d31274 -PolicyType TeamsMeetingPolicy - -Get-CsGroupPolicyAssignment -PolicyType TeamsMeetingPolicy - -GroupId PolicyType PolicyName Rank CreatedTime CreatedBy -------- ---------- ---------- ---- ----------- --------- -d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/2019 3:57:27 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 -566b8d39-5c5c-4aaa-bc07-4f36278a1b38 TeamsMeetingPolicy Kiosk 2 11/2/2019 12:14:41 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 + -------------------------- Example 1 -------------------------- + PS> Remove-CsInboundBlockedNumberPattern -Identity "BlockAutomatic" - In this example, the policy assignment with rank 2 is removed. As a result, the policy assignment with rank 3 is updated to rank 2. + This example removes a blocked number pattern identified as "BlockAutomatic". Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csgrouppolicyassignment + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csinboundblockednumberpattern - New-CsGroupPolicyAssignment - https://learn.microsoft.com/powershell/module/teams/new-csgrouppolicyassignment + New-CsInboundBlockedNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/new-csinboundblockednumberpattern - Get-CsGroupPolicyAssignment - https://learn.microsoft.com/powershell/module/teams/get-csgrouppolicyassignment + Set-CsInboundBlockedNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/set-csinboundblockednumberpattern - Set-CsGroupPolicyAssignment - https://learn.microsoft.com/powershell/module/teams/set-csgrouppolicyassignment + Get-CsInboundBlockedNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/get-csinboundblockednumberpattern - Remove-CsHybridTelephoneNumber + Remove-CsInboundExemptNumberPattern Remove - CsHybridTelephoneNumber + CsInboundExemptNumberPattern - This cmdlet removes a hybrid telephone number. - > [!IMPORTANT] > This cmdlet is being deprecated. Use the new New-CsOnlineTelephoneNumberReleaseOrder cmdlet to remove a telephone number for Audio Conferencing with Direct Routing in Microsoft 365 GCC High and DoD clouds. Detailed instructions on how to use the new cmdlet can be found at New-CsOnlineTelephoneNumberReleaseOrder (/powershell/module/teams/new-csonlinetelephonenumberreleaseorder?view=teams-ps). + Removes a number pattern exempt from call blocking. - This cmdlet removes a hybrid telephone number used for Audio Conferencing with Direct Routing for GCC High and DoD clouds. + This cmdlet removes a specific exempt number pattern from the tenant list for call blocking. - Remove-CsHybridTelephoneNumber - - TelephoneNumber + Remove-CsInboundExemptNumberPattern + + Identity - The telephone number to remove. The number should be specified without a prefixed "+". The phone number can't have "tel:" prefixed. + Unique identifier for the exempt number pattern to be listed. - System.String + String - System.String + String None - - Force + + Confirm - Suppresses the display of any non-fatal error message that might arise when running the command. + Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -60031,36 +66205,13 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - TelephoneNumber - - The telephone number to remove. The number should be specified without a prefixed "+". The phone number can't have "tel:" prefixed. - - System.String - - System.String - - - None - - - Force + + Confirm - Suppresses the display of any non-fatal error message that might arise when running the command. + Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -60069,22 +66220,22 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - WhatIf + + Identity - Shows what would happen if the cmdlet runs. The cmdlet is not run. + Unique identifier for the exempt number pattern to be listed. - SwitchParameter + String - SwitchParameter + String - False + None - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -60094,146 +66245,136 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - - - None - - - - - - - - - - None - - - - - - + + - The cmdlet is only available in GCC High and DoD cloud instances. + You can use Test-CsInboundBlockedNumberPattern to test your call block and exempt phone number ranges. -------------------------- Example 1 -------------------------- - Remove-CsHybridTelephoneNumber -TelephoneNumber 14025551234 + PS>Remove-CsInboundExemptNumberPattern -Identity "Exempt1" - This example removes the hybrid phone number +1 (402) 555-1234. + This removes the exempt number patterns with Identity Exempt1. Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-cshybridtelephonenumber + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csinboundexemptnumberpattern - New-CsHybridTelephoneNumber - https://learn.microsoft.com/powershell/module/teams/new-cshybridtelephonenumber + New-CsInboundExemptNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/new-csinboundexemptnumberpattern - Get-CsHybridTelephoneNumber - https://learn.microsoft.com/powershell/module/teams/get-cshybridtelephonenumber + Set-CsInboundExemptNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/set-csinboundexemptnumberpattern + + + Get-CsInboundExemptNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/get-csinboundexemptnumberpattern + + + Test-CsInboundBlockedNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/test-csinboundblockednumberpattern + + + Get-CsTenantBlockedCallingNumbers + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantblockedcallingnumbers - Remove-CsInboundBlockedNumberPattern + Remove-CsMainlineAttendantAppointmentBookingFlow Remove - CsInboundBlockedNumberPattern + CsMainlineAttendantAppointmentBookingFlow - Removes a blocked number pattern from the tenant list. + The Remove-CsMainlineAttendantAppointmentBookingFlow cmdlet deletes an existing Mainline attendant appointment booking flow. - This cmdlet removes a blocked number pattern from the tenant list. + The Remove-CsMainlineAttendantAppointmentBookingFlow cmdlet deletes an existing Mainline attendant appointment booking flow. - Remove-CsInboundBlockedNumberPattern - + Remove-CsMainlineAttendantAppointmentBookingFlow + Identity - A unique identifier specifying the blocked number pattern to be removed. + PARAMVALUE: Guid - String + Guid - String + Guid None - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - Confirm + + Tenant - Prompts you for confirmation before running the cmdlet. + PARAMVALUE: Guid + Guid - SwitchParameter + Guid - False + None - + Identity - A unique identifier specifying the blocked number pattern to be removed. + PARAMVALUE: Guid - String + Guid - String + Guid None - - WhatIf + + Tenant - Shows what would happen if the cmdlet runs. The cmdlet is not run. + PARAMVALUE: Guid - SwitchParameter + Guid - SwitchParameter + Guid - False + None - - Confirm + + + + + Identity + - Prompts you for confirmation before running the cmdlet. + Represents the unique identifier of a Mainline attendant appointment booking flow. - SwitchParameter + + + + - SwitchParameter - + Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue - False - - - - + + + + + @@ -60242,160 +66383,124 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 -------------------------- Example 1 -------------------------- - PS> Remove-CsInboundBlockedNumberPattern -Identity "BlockAutomatic" + Remove-CsMainlineAttendantAppointmentBookingFlow -Identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01 - This example removes a blocked number pattern identified as "BlockAutomatic". + This example removes the Mainline attendant appointment booking flow with the identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01. If no appointment booking flow exists with the identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01, then this example generates an error. Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csinboundblockednumberpattern - - - New-CsInboundBlockedNumberPattern - https://learn.microsoft.com/powershell/module/teams/new-csinboundblockednumberpattern - - - Set-CsInboundBlockedNumberPattern - https://learn.microsoft.com/powershell/module/teams/set-csinboundblockednumberpattern - - - Get-CsInboundBlockedNumberPattern - https://learn.microsoft.com/powershell/module/teams/get-csinboundblockednumberpattern + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csmainlineattendantappointmentbookingflow - Remove-CsInboundExemptNumberPattern + Remove-CsMainlineAttendantQuestionAnswerFlow Remove - CsInboundExemptNumberPattern + CsMainlineAttendantQuestionAnswerFlow - Removes a number pattern exempt from call blocking. + The Remove-CsMainlineAttendantQuestionAnswerFlow cmdlet deletes an existing Mainline attendant question and answer flow. - This cmdlet removes a specific exempt number pattern from the tenant list for call blocking. + The Remove-CsMainlineAttendantQuestionAnswerFlow cmdlet deletes an existing Mainline attendant question and answer flow. - Remove-CsInboundExemptNumberPattern - + Remove-CsMainlineAttendantQuestionAnswerFlow + Identity - Unique identifier for the exempt number pattern to be listed. + PARAMVALUE: Guid - String + Guid - String + Guid None - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - Confirm + + Tenant - Prompts you for confirmation before running the cmdlet. + PARAMVALUE: Guid + Guid - SwitchParameter + Guid - False + None - + Identity - Unique identifier for the exempt number pattern to be listed. + PARAMVALUE: Guid - String + Guid - String + Guid None - - WhatIf + + Tenant - Shows what would happen if the cmdlet runs. The cmdlet is not run. + PARAMVALUE: Guid - SwitchParameter + Guid - SwitchParameter + Guid - False + None - - Confirm + + + + + Identity + - Prompts you for confirmation before running the cmdlet. + Represents the unique identifier of a Mainline attendant question and answer flow. - SwitchParameter + + + + - SwitchParameter - + Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue - False - - - - + + + + + - You can use Test-CsInboundBlockedNumberPattern to test your call block and exempt phone number ranges. + -------------------------- Example 1 -------------------------- - PS>Remove-CsInboundExemptNumberPattern -Identity "Exempt1" + Remove-CsMainlineAttendantQuestionAnswerFlow -Identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01 - This removes the exempt number patterns with Identity Exempt1. + This example removes the Mainline attendant question and answer flow with the identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01. If no question and answer flow exists with the identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01, then this example generates an error. Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csinboundexemptnumberpattern - - - New-CsInboundExemptNumberPattern - https://learn.microsoft.com/powershell/module/teams/new-csinboundexemptnumberpattern - - - Set-CsInboundExemptNumberPattern - https://learn.microsoft.com/powershell/module/teams/set-csinboundexemptnumberpattern - - - Get-CsInboundExemptNumberPattern - https://learn.microsoft.com/powershell/module/teams/get-csinboundexemptnumberpattern - - - Test-CsInboundBlockedNumberPattern - https://learn.microsoft.com/powershell/module/teams/test-csinboundblockednumberpattern - - - Get-CsTenantBlockedCallingNumbers - https://learn.microsoft.com/powershell/module/teams/get-cstenantblockedcallingnumbers + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csmainlineattendantquestionanswerflow @@ -60418,6 +66523,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Identities + > Applicable: Microsoft Teams The identities for the application instances whose configuration associations are to be removed. System.String @@ -60430,7 +66536,8 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -60445,6 +66552,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Identities + > Applicable: Microsoft Teams The identities for the application instances whose configuration associations are to be removed. System.String @@ -60457,7 +66565,8 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -60504,19 +66613,19 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csonlineapplicationinstanceassociation + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineapplicationinstanceassociation Get-CsOnlineApplicationInstanceAssociation - https://learn.microsoft.com/powershell/module/teams/get-csonlineapplicationinstanceassociation + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineapplicationinstanceassociation Get-CsOnlineApplicationInstanceAssociationStatus - https://learn.microsoft.com/powershell/module/teams/get-csonlineapplicationinstanceassociationstatus + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineapplicationinstanceassociationstatus New-CsOnlineApplicationInstanceAssociation - https://learn.microsoft.com/powershell/module/teams/new-csonlineapplicationinstanceassociation + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineapplicationinstanceassociation @@ -60673,7 +66782,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csonlineaudioconferencingroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineaudioconferencingroutingpolicy New-CsOnlineAudioConferencingRoutingPolicy @@ -60697,49 +66806,418 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Remove-CsOnlineAudioFile Remove - CsOnlineAudioFile + CsOnlineAudioFile + + Marks an audio file of application type TenantGlobal for deletion and later removal (within 24 hours). + + + + This cmdlet marks an audio file of application type TenantGlobal for deletion and later removal. + + + + Remove-CsOnlineAudioFile + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Identity + + The Id of the specific audio file that you would like to mark for deletion. + + System.String + + System.String + + + None + + + + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Identity + + The Id of the specific audio file that you would like to mark for deletion. + + System.String + + System.String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + Please note that using this cmdlet on other application types like OrgAutoAttendant and HuntGroup does not mark the audio file for deletion. These kinds of audio files will automatically be deleted, when + the corresponding Auto Attendant or Call Queue is deleted. + The cmdlet is available in Teams PS module 2.4.0-preview or later. + + + + + -------------------------- Example 1 -------------------------- + Remove-CsOnlineAudioFile -Identity dcfcc31daa9246f29d94d0a715ef877e + + This cmdlet marks the audio file with Id dcfcc31daa9246f29d94d0a715ef877e for deletion and later removal. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineaudiofile + + + Export-CsOnlineAudioFile + https://learn.microsoft.com/powershell/module/microsoftteams/export-csonlineaudiofile + + + Get-CsOnlineAudioFile + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineaudiofile + + + Import-CsOnlineAudioFile + https://learn.microsoft.com/powershell/module/microsoftteams/import-csonlineaudiofile + + + + + + Remove-CsOnlineDialInConferencingTenantSettings + Remove + CsOnlineDialInConferencingTenantSettings + + Use the `Remove-CsOnlineDialInConferencingTenantSettings` cmdlet to revert the tenant level dial-in conferencing settings to their original defaults. + + + + There is always a single instance of the dial-in conferencing settings per tenant. You can modify the settings using `Set-CsOnlineDialInConferencingTenantSettings` and revert those settings to their defaults by using `Remove-CsOnlineDialInConferencingTenantSettings`. + + + + Remove-CsOnlineDialInConferencingTenantSettings + + Identity + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + XdsIdentity + + XdsIdentity + + + None + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + + SwitchParameter + + + False + + + + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + XdsIdentity + + XdsIdentity + + + None + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Remove-CsOnlineDialInConferencingTenantSettings + + This example reverts the tenant level dial-in conferencing settings to their original defaults. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinedialinconferencingtenantsettings + + + + + + Remove-CsOnlineLisCivicAddress + Remove + CsOnlineLisCivicAddress - Marks an audio file of application type TenantGlobal for deletion and later removal (within 24 hours). + Use the Remove-CsOnlineLisCivicAddress cmdlet to delete an existing civic address from the Location Information Server (LIS). + You can't remove a civic address if any of its associated locations are assigned to users or phone numbers. - This cmdlet marks an audio file of application type TenantGlobal for deletion and later removal. + Removes the specified emergency address or addresses. - Remove-CsOnlineAudioFile + Remove-CsOnlineLisCivicAddress - Identity + CivicAddressId - The Id of the specific audio file that you would like to mark for deletion. + > Applicable: Microsoft Teams + Specifies the unique identifier of the civic address to be deleted. You can find civic address identifiers by using the Get-CsOnlineLisCivicAddress cmdlet. - System.String + Guid - System.String + Guid None + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + + SwitchParameter + + + False + - Identity + CivicAddressId - The Id of the specific audio file that you would like to mark for deletion. + > Applicable: Microsoft Teams + Specifies the unique identifier of the civic address to be deleted. You can find civic address identifiers by using the Get-CsOnlineLisCivicAddress cmdlet. - System.String + Guid - System.String + Guid None + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + SwitchParameter + + SwitchParameter + + + False + - None + This cmdlet accepts pipelined input from the Get-CsOnlineLisCivicAddress cmdlet. @@ -60749,7 +67227,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - System.Object + None @@ -60758,69 +67236,64 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - Please note that using this cmdlet on other application types like OrgAutoAttendant and HuntGroup does not mark the audio file for deletion. These kinds of audio files will automatically be deleted, when - the corresponding Auto Attendant or Call Queue is deleted. - The cmdlet is available in Teams PS module 2.4.0-preview or later. + -------------------------- Example 1 -------------------------- - Remove-CsOnlineAudioFile -Identity dcfcc31daa9246f29d94d0a715ef877e + Remove-CsOnlineLisCivicAddress -CivicAddressId ee38d9a5-33dc-4a32-9fb8-f234cedb91ac - This cmdlet marks the audio file with Id dcfcc31daa9246f29d94d0a715ef877e for deletion and later removal. + This example removes the emergency civic address with the specified identification. + + + + -------------------------- Example 2 -------------------------- + Get-CsOnlineLisCivicAddress -City Redmond | Remove-CsOnlineLisCivicAddress + + This example removes all the emergency civic addresses in the city of Redmond. Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csonlineaudiofile + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineliscivicaddress - Export-CsOnlineAudioFile - https://learn.microsoft.com/powershell/module/teams/export-csonlineaudiofile + Set-CsOnlineLisCivicAddress + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineliscivicaddress - Get-CsOnlineAudioFile - https://learn.microsoft.com/powershell/module/teams/get-csonlineaudiofile + New-CsOnlineLisCivicAddress + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineliscivicaddress - Import-CsOnlineAudioFile - https://learn.microsoft.com/powershell/module/teams/import-csonlineaudiofile + Get-CsOnlineLisCivicAddress + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineliscivicaddress - Remove-CsOnlineDialInConferencingTenantSettings + Remove-CsOnlineLisLocation Remove - CsOnlineDialInConferencingTenantSettings + CsOnlineLisLocation - Use the `Remove-CsOnlineDialInConferencingTenantSettings` cmdlet to revert the tenant level dial-in conferencing settings to their original defaults. + Use the Remove-CsOnlineLisLocation cmdlet to remove an existing emergency location from the Location Information Service (LIS). + You can only remove locations that have no assigned users or phone numbers. You can't remove the default location, you will have to delete the associated civic address which will delete the default location. - There is always a single instance of the dial-in conferencing settings per tenant. You can modify the settings using `Set-CsOnlineDialInConferencingTenantSettings` and revert those settings to their defaults by using `Remove-CsOnlineDialInConferencingTenantSettings`. + If the location specified for removal is assigned to users, the cmdlet will fail until the users assignments are removed. - Remove-CsOnlineDialInConferencingTenantSettings - - Identity - - This parameter is reserved for internal Microsoft use. - - XdsIdentity - - XdsIdentity - - - None - + Remove-CsOnlineLisLocation Confirm + > Applicable: Microsoft Teams The Confirm switch causes the command to pause processing and requires confirmation to proceed. @@ -60832,6 +67305,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -60840,10 +67314,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Tenant + + LocationId - This parameter is reserved for internal Microsoft use. + > Applicable: Microsoft Teams + Specifies the unique identifier of the location to be deleted. Location identities can be discovered by using the Get-CsOnlineLisLocation cmdlet. Guid @@ -60855,6 +67330,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 WhatIf + > Applicable: Microsoft Teams The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. @@ -60866,21 +67342,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - - Identity - - This parameter is reserved for internal Microsoft use. - - XdsIdentity - - XdsIdentity - - - None - Confirm + > Applicable: Microsoft Teams The Confirm switch causes the command to pause processing and requires confirmation to proceed. SwitchParameter @@ -60893,6 +67358,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -60902,10 +67368,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Tenant + + LocationId - This parameter is reserved for internal Microsoft use. + > Applicable: Microsoft Teams + Specifies the unique identifier of the location to be deleted. Location identities can be discovered by using the Get-CsOnlineLisLocation cmdlet. Guid @@ -60917,6 +67384,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 WhatIf + > Applicable: Microsoft Teams The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. SwitchParameter @@ -60927,8 +67395,26 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - + + + + This cmdlet supports pipelined input from the Get-CsOnlineLisLocation cmdlet. + + + + + + + + + + None + + + + + + @@ -60937,50 +67423,76 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 -------------------------- Example 1 -------------------------- - Remove-CsOnlineDialInConferencingTenantSettings + Remove-CsOnlineLisLocation -LocationId 788dd820-c136-4255-9f61-24b880ad0763 - This example reverts the tenant level dial-in conferencing settings to their original defaults. + This example removes the location specified by its identity. Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csonlinedialinconferencingtenantsettings + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinelislocation + + + Set-CsOnlineLisLocation + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinelislocation + + + Get-CsOnlineLisLocation + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelislocation + + + New-CsOnlineLisLocation + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinelislocation - Remove-CsOnlineLisCivicAddress + Remove-CsOnlineLisPort Remove - CsOnlineLisCivicAddress + CsOnlineLisPort - Use the Remove-CsOnlineLisCivicAddress cmdlet to delete an existing civic address from the Location Information Server (LIS). - You can't remove a civic address if any of its associated locations are assigned to users or phone numbers. + Removes an association between a Location port and a location. This association is used in an Enhanced 9-1-1 (E9-1-1) Enterprise Voice implementation to notify an emergency services operator of the caller's location. - Removes the specified emergency address or addresses. + Enhanced 9-1-1 allows an emergency operator to identify the location of a caller without having to ask the caller for that information. In the case where a caller is calling from a Voice over Internet Protocol (VoIP) connection, that information must be extracted based on various connection factors. The VoIP administrator must configure a location map (called a wiremap) that will determine a caller's location. This cmdlet removes an association between a physical location and a port through which calls will be routed by removing the port from the location configuration database. + Removing a port location will not remove the actual location of the port; it removes only the port. - Remove-CsOnlineLisCivicAddress - - CivicAddressId + Remove-CsOnlineLisPort + + ChassisID - Specifies the unique identifier of the civic address to be deleted. You can find civic address identifiers by using the Get-CsOnlineLisCivicAddress cmdlet. + > Applicable: Microsoft Teams + The Media Access Control (MAC) address of the port's switch. This value will be in the form nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. - Guid + String - Guid + String None + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -60989,21 +67501,63 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - WhatIf + + IsDebug - The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + Boolean - SwitchParameter + Boolean - False + None - - Confirm + + NCSApiUrl - The Confirm switch causes the command to pause processing and requires confirmation to proceed. + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + PortID + + > Applicable: Microsoft Teams + This parameter identifies the ID of the port. + + String + + String + + + None + + + TargetStore + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -61014,22 +67568,24 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - - CivicAddressId + + ChassisID - Specifies the unique identifier of the civic address to be deleted. You can find civic address identifiers by using the Get-CsOnlineLisCivicAddress cmdlet. + > Applicable: Microsoft Teams + The Media Access Control (MAC) address of the port's switch. This value will be in the form nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. - Guid + String - Guid + String None - - Force + + Confirm - The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -61038,10 +67594,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - WhatIf + + Force - The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -61050,10 +67607,63 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm + + IsDebug - The Confirm switch causes the command to pause processing and requires confirmation to proceed. + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + NCSApiUrl + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + PortID + + > Applicable: Microsoft Teams + This parameter identifies the ID of the port. + + String + + String + + + None + + + TargetStore + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -61066,7 +67676,15 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - This cmdlet accepts pipelined input from the Get-CsOnlineLisCivicAddress cmdlet. + System.String + + + + + + + + System.String @@ -61076,7 +67694,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - None + System.Object @@ -61091,58 +67709,47 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 -------------------------- Example 1 -------------------------- - Remove-CsOnlineLisCivicAddress -CivicAddressId ee38d9a5-33dc-4a32-9fb8-f234cedb91ac - - This example removes the emergency civic address with the specified identification. - - - - -------------------------- Example 2 -------------------------- - Get-CsOnlineLisCivicAddress -City Redmond | Remove-CsOnlineLisCivicAddress + Remove-CsOnlineLisPort -PortID 12174 -ChassisID 0B-23-CD-16-AA-CC - This example removes all the emergency civic addresses in the city of Redmond. + Example 1 removes the location information for port 12174 with ChassisID 0B-23-CD-16-AA-CC. Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csonlineliscivicaddress - - - Set-CsOnlineLisCivicAddress - https://learn.microsoft.com/powershell/module/teams/set-csonlineliscivicaddress + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinelisport - New-CsOnlineLisCivicAddress - https://learn.microsoft.com/powershell/module/teams/new-csonlineliscivicaddress + Set-CsOnlineLisPort + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinelisport - Get-CsOnlineLisCivicAddress - https://learn.microsoft.com/powershell/module/teams/get-csonlineliscivicaddress + Get-CsOnlineLisPort + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelisport - Remove-CsOnlineLisLocation + Remove-CsOnlineLisSubnet Remove - CsOnlineLisLocation + CsOnlineLisSubnet - Use the Remove-CsOnlineLisLocation cmdlet to remove an existing emergency location from the Location Information Service (LIS). - You can only remove locations that have no assigned users or phone numbers. You can't remove the default location, you will have to delete the associated civic address which will delete the default location. + Removes a Location Information Server (LIS) subnet. - If the location specified for removal is assigned to users, the cmdlet will fail until the users assignments are removed. + Enhanced 9-1-1 (E9-1-1) allows an emergency operator to identify the location of a caller without having to ask the caller for that information. In the case where a caller is calling from a Voice over Internet Protocol (VoIP) connection, that information must be extracted based on various connection factors. The VoIP administrator must configure a location map (called a wiremap) that will determine a caller's location. This cmdlet removes a subnet from the location configuration database. Removing the subnet will not remove the location associated with that subnet. Use the `Remove-CsOnlineLisLocation` cmdlet to remove a location. - Remove-CsOnlineLisLocation - - LocationId + Remove-CsOnlineLisSubnet + + TenantId - Specifies the unique identifier of the location to be deleted. Location identities can be discovered by using the Get-CsOnlineLisLocation cmdlet. + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. Guid @@ -61151,10 +67758,24 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None + + Subnet + + > Applicable: Microsoft Teams + The IP address of the subnet. This value can be either IPv4 or IPv6 format. + + String + + String + + + None + Confirm - The Confirm switch causes the command to pause processing and requires confirmation to proceed. + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -61165,6 +67786,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -61173,10 +67795,50 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False + + IsDebug + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + NCSApiUrl + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + TargetStore + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + WhatIf - The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -61187,46 +67849,102 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - - LocationId + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + IsDebug + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + NCSApiUrl + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Subnet - Specifies the unique identifier of the location to be deleted. Location identities can be discovered by using the Get-CsOnlineLisLocation cmdlet. + > Applicable: Microsoft Teams + The IP address of the subnet. This value can be either IPv4 or IPv6 format. - Guid + String - Guid + String None - - Confirm + + TargetStore - The Confirm switch causes the command to pause processing and requires confirmation to proceed. + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. - SwitchParameter + String - SwitchParameter + String - False + None - - Force + + TenantId - The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. - SwitchParameter + Guid - SwitchParameter + Guid - False + None WhatIf - The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -61239,7 +67957,15 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - This cmdlet supports pipelined input from the Get-CsOnlineLisLocation cmdlet. + System.Guid + + + + + + + + System.String @@ -61249,7 +67975,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - None + System.Object @@ -61264,50 +67990,45 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 -------------------------- Example 1 -------------------------- - Remove-CsOnlineLisLocation -LocationId 788dd820-c136-4255-9f61-24b880ad0763 + Remove-CsOnlineLisSubnet -Subnet 10.10.10.10 - This example removes the location specified by its identity. + Example 1 removes the Location Information Service subnet "10.10.10.10". + + + + -------------------------- Example 2 -------------------------- + Remove-CsOnlineLisSubnet -Subnet 2001:4898:e8:6c:90d2:28d4:76a4:ec5e + + Example 1 removes the Location Information Service subnet "2001:4898:e8:6c:90d2:28d4:76a4:ec5e". Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csonlinelislocation - - - Set-CsOnlineLisLocation - https://learn.microsoft.com/powershell/module/teams/set-csonlinelislocation - - - Get-CsOnlineLisLocation - https://learn.microsoft.com/powershell/module/teams/get-csonlinelislocation - - - New-CsOnlineLisLocation - https://learn.microsoft.com/powershell/module/teams/new-csonlinelislocation + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinelissubnet - Remove-CsOnlineLisPort + Remove-CsOnlineLisSwitch Remove - CsOnlineLisPort + CsOnlineLisSwitch - Removes an association between a Location port and a location. This association is used in an Enhanced 9-1-1 (E9-1-1) Enterprise Voice implementation to notify an emergency services operator of the caller's location. + Removes a Location Information Server (LIS) network switch. - Enhanced 9-1-1 allows an emergency operator to identify the location of a caller without having to ask the caller for that information. In the case where a caller is calling from a Voice over Internet Protocol (VoIP) connection, that information must be extracted based on various connection factors. The VoIP administrator must configure a location map (called a wiremap) that will determine a caller's location. This cmdlet removes an association between a physical location and a port through which calls will be routed by removing the port from the location configuration database. - Removing a port location will not remove the actual location of the port; it removes only the port. + Enhanced 9-1-1 (E9-1-1) allows an emergency operator to identify the location of a caller without having to ask the caller for that information. In the case where a caller is calling from a Voice over Internet Protocol (VoIP) connection, that information must be extracted based on various connection factors. The VoIP administrator must configure a location map (called a wiremap) that will determine a caller's location. This cmdlet removes a switch from the location configuration database. Removing a switch will not remove the actual location; it removes only the switch. To remove the location, call the `Remove-CsLisOnlineLocation` cmdlet. - Remove-CsOnlineLisPort + Remove-CsOnlineLisSwitch ChassisID + > Applicable: Microsoft Teams The Media Access Control (MAC) address of the port's switch. This value will be in the form nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. String @@ -61317,21 +68038,22 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - PortID + + Confirm - This parameter identifies the ID of the port. + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. - String - String + SwitchParameter - None + False Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -61343,6 +68065,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 IsDebug + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Boolean @@ -61355,6 +68078,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 NCSApiUrl + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -61367,6 +68091,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 TargetStore + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -61376,20 +68101,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - WhatIf + > Applicable: Microsoft Teams Shows what would happen if the cmdlet runs. The cmdlet is not run. @@ -61404,6 +68119,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 ChassisID + > Applicable: Microsoft Teams The Media Access Control (MAC) address of the port's switch. This value will be in the form nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. String @@ -61413,21 +68129,23 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - PortID + + Confirm - This parameter identifies the ID of the port. + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. - String + SwitchParameter - String + SwitchParameter - None + False Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -61440,6 +68158,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 IsDebug + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Boolean @@ -61452,6 +68171,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 NCSApiUrl + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -61464,6 +68184,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 TargetStore + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -61473,21 +68194,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - WhatIf + > Applicable: Microsoft Teams Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -61534,58 +68244,49 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 -------------------------- Example 1 -------------------------- - Remove-CsOnlineLisPort -PortID 12174 -ChassisID 0B-23-CD-16-AA-CC + Remove-CsOnlineLisSwitch -ChassisID 0B-23-CD-16-AA-CC - Example 1 removes the location information for port 12174 with ChassisID 0B-23-CD-16-AA-CC. + Example 1 removes the switch with Chassis ID "0B-23-CD-16-AA-CC". Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csonlinelisport + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinelisswitch - Set-CsOnlineLisPort - https://learn.microsoft.com/powershell/module/teams/set-csonlinelisport + Set-CsOnlineLisSwitch + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinelisswitch - Get-CsOnlineLisPort - https://learn.microsoft.com/powershell/module/teams/get-csonlinelisport + Get-CsOnlineLisSwitch + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelisswitch - Remove-CsOnlineLisSubnet + Remove-CsOnlineLisWirelessAccessPoint Remove - CsOnlineLisSubnet + CsOnlineLisWirelessAccessPoint - Removes a Location Information Server (LIS) subnet. + Removes a Location Information Server (LIS) wireless access point (WAP). - Enhanced 9-1-1 (E9-1-1) allows an emergency operator to identify the location of a caller without having to ask the caller for that information. In the case where a caller is calling from a Voice over Internet Protocol (VoIP) connection, that information must be extracted based on various connection factors. The VoIP administrator must configure a location map (called a wiremap) that will determine a caller's location. This cmdlet removes a subnet from the location configuration database. Removing the subnet will not remove the location associated with that subnet. Use the `Remove-CsOnlineLisLocation` cmdlet to remove a location. + Enhanced 9-1-1 allows an emergency operator to identify the location of a caller without having to ask the caller for that information. In the case where a caller is calling from a Voice over Internet Protocol (VoIP) connection, that information must be extracted based on various connection factors. The VoIP administrator must configure a location map (called a wiremap) that will determine a caller's location. This cmdlet removes a WAP from the location configuration database. Removing the WAP will not remove the location associated with that WAP. Use the `Remove-CsLisOnlineLocation` cmdlet to remove a location. + The BSSID (Basic Service Set Identifiers) is used to describe sections of a wireless local area network. It is the MAC of the 802.11 side of the access point. The BSSID parameter in this command also supports the wildcard format to cover all BSSIDs in a range which are sharing the same description and Location ID. The wildcard '*' can be on either the last one or two character(s). + If a BSSID with wildcard format is already exists, the request for removing a single BSSID which is within this wildcard range and with the same location ID will not be accepted. - Remove-CsOnlineLisSubnet - - TenantId - - This parameter is reserved for internal Microsoft use. - - Guid - - Guid - - - None - - - Subnet + Remove-CsOnlineLisWirelessAccessPoint + + BSSID - The IP address of the subnet. This value can be either IPv4 or IPv6 format. + > Applicable: Microsoft Teams + The Basic Service Set Identifier (BSSID) of the wireless access point. This value must be in the form nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. It can be presented in wildcard format. The wildcard '*' can be on either the last one or two character(s). String @@ -61597,6 +68298,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Confirm + > Applicable: Microsoft Teams Prompts you for confirmation before running the cmdlet. @@ -61608,6 +68310,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -61619,6 +68322,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 IsDebug + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Boolean @@ -61631,6 +68335,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 NCSApiUrl + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -61643,6 +68348,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 TargetStore + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -61655,6 +68361,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 WhatIf + > Applicable: Microsoft Teams Shows what would happen if the cmdlet runs. The cmdlet is not run. @@ -61666,9 +68373,23 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 + + BSSID + + > Applicable: Microsoft Teams + The Basic Service Set Identifier (BSSID) of the wireless access point. This value must be in the form nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. It can be presented in wildcard format. The wildcard '*' can be on either the last one or two character(s). + + String + + String + + + None + Confirm + > Applicable: Microsoft Teams Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -61681,6 +68402,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -61693,6 +68415,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 IsDebug + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Boolean @@ -61705,6 +68428,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 NCSApiUrl + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -61714,21 +68438,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - Subnet - - The IP address of the subnet. This value can be either IPv4 or IPv6 format. - - String - - String - - - None - TargetStore + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -61738,21 +68451,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - TenantId - - This parameter is reserved for internal Microsoft use. - - Guid - - Guid - - - None - WhatIf + > Applicable: Microsoft Teams Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -61764,14 +68466,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - - - System.Guid - - - - - System.String @@ -61799,45 +68493,54 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 -------------------------- Example 1 -------------------------- - Remove-CsOnlineLisSubnet -Subnet 10.10.10.10 + Remove-CsOnlineLisWirelessAccessPoint -BSSID F0-6E-0B-C2-03-23 - Example 1 removes the Location Information Service subnet "10.10.10.10". + Example 1 removes the Location Information Server (LIS) wireless access point with BSS ID "F0-6E-0B-C2-03-23". -------------------------- Example 2 -------------------------- - Remove-CsOnlineLisSubnet -Subnet 2001:4898:e8:6c:90d2:28d4:76a4:ec5e + Remove-CsOnlineLisWirelessAccessPoint -BSSID F0-6E-0B-C2-04-* - Example 1 removes the Location Information Service subnet "2001:4898:e8:6c:90d2:28d4:76a4:ec5e". + Example 2 removes the Location Information Server (LIS) wireless access point with BSS ID "F0-6E-0B-C2-04-*". Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csonlinelissubnet + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineliswirelessaccesspoint + + + Set-CsOnlineLisWirelessAccessPoint + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineliswirelessaccesspoint + + + Get-CsOnlineLisWirelessAccessPoint + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineliswirelessaccesspoint - Remove-CsOnlineLisSwitch + Remove-CsOnlinePSTNGateway Remove - CsOnlineLisSwitch + CsOnlinePSTNGateway - Removes a Location Information Server (LIS) network switch. + Removes the configuration of the previously defined Session Border Controller(s) (SBC(s)) that describes the settings for the peer entity. This cmdlet was introduced with Microsoft Phone System Direct Routing. - Enhanced 9-1-1 (E9-1-1) allows an emergency operator to identify the location of a caller without having to ask the caller for that information. In the case where a caller is calling from a Voice over Internet Protocol (VoIP) connection, that information must be extracted based on various connection factors. The VoIP administrator must configure a location map (called a wiremap) that will determine a caller's location. This cmdlet removes a switch from the location configuration database. Removing a switch will not remove the actual location; it removes only the switch. To remove the location, call the `Remove-CsLisOnlineLocation` cmdlet. + Use this cmdlet to remove the configuration of the previously created Session Border Controller(s) (SBC(s)) configuration. Note the SBC must be removed from all voice routes before executing this cmdlet. - Remove-CsOnlineLisSwitch - - ChassisID + Remove-CsOnlinePSTNGateway + + Identity - The Media Access Control (MAC) address of the port's switch. This value will be in the form nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. + > Applicable: Microsoft Teams + The parameter is mandatory for the cmdlet. The Identity is the same as the SBC FQDN. String @@ -61846,33 +68549,207 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - Force + + + + + Identity + + > Applicable: Microsoft Teams + The parameter is mandatory for the cmdlet. The Identity is the same as the SBC FQDN. + + String + + String + + + None + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsOnlinePSTNGateway -Identity sbc.contoso.com + + This example removes SBC with Identity (and FQDN) sbc.contoso.com. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinepstngateway + + + Set-CsOnlinePSTNGateway + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinepstngateway + + + New-CsOnlinePSTNGateway + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinepstngateway + + + Get-CsOnlinePSTNGateway + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinepstngateway + + + + + + Remove-CsOnlineSchedule + Remove + CsOnlineSchedule + + Use the Remove-CsOnlineSchedule cmdlet to remove a schedule. + + + + The Remove-CsOnlineSchedule cmdlet deletes a schedule that is specified by using the Id parameter. + + + + Remove-CsOnlineSchedule + + Id - The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + > Applicable: Microsoft Teams + The Id for the schedule to be removed. + System.String - SwitchParameter + System.String - False + None - IsDebug + Tenant - This parameter is reserved for internal Microsoft use. + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} - Boolean + System.Guid - Boolean + System.Guid None - - NCSApiUrl + + + + + Id + + > Applicable: Microsoft Teams + The Id for the schedule to be removed. + + System.String + + System.String + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + System.String + + + The Remove-CsOnlineSchedule cmdlet accepts a string as the Id parameter. + + + + + + + System.Void + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Remove-CsOnlineSchedule -Id "fa9081d6-b4f3-5c96-baec-0b00077709e5" + + This example deletes the schedule that has an Id of fa9081d6-b4f3-5c96-baec-0b00077709e5. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineschedule + + + New-CsOnlineSchedule + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineschedule + + + Set-CsOnlineSchedule + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineschedule + + + + + + Remove-CsOnlineVoiceRoute + Remove + CsOnlineVoiceRoute + + Removes an online voice route. Online voice routes contain instructions that tell Skype for Business Online how to route calls from Office 365 users to phone numbers on the public switched telephone network (PSTN) or a private branch exchange (PBX). + + + + Use this cmdlet to remove an existing online voice route. Online voice routes are associated with online voice policies through online PSTN usages, so removing an online voice route does not change any values relating to an online voice policy, it simply changes the routing for the numbers that had matched the pattern for the deleted online voice route. + This cmdlet is used when configuring Microsoft Phone System Direct Routing. + + + + Remove-CsOnlineVoiceRoute + + Identity - This parameter is reserved for internal Microsoft use. + The unique identity of the online voice route. (If the route name contains a space, such as Test Route, you must enclose the full string in parentheses.) String @@ -61881,10 +68758,146 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - TargetStore + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + The unique identity of the online voice route. (If the route name contains a space, such as Test Route, you must enclose the full string in parentheses.) + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsOnlineVoiceRoute -Identity Route1 + + Removes the settings for the online voice route with the identity Route1. + + + + -------------------------- Example 2 -------------------------- + PS C:\ Get-CsOnlineVoiceRoute | Remove-CsOnlineVoiceRoute + + This command removes all online voice routes from the organization. First all online voice routes are retrieved by the `Get-CsOnlineVoiceRoute` cmdlet. These online voice routes are then piped to the `Remove-CsOnlineVoiceRoute` cmdlet, which removes each one. + + + + -------------------------- Example 3 -------------------------- + PS C:\ Get-CsOnlineVoiceRoute -Filter *Redmond* | Remove-CsOnlineVoiceRoute + + This command removes all online voice routes with an identity that includes the string "Redmond". First the `Get-CsOnlineVoiceRoute` cmdlet is called with the Filter parameter. The value of the Filter parameter is the string Redmond surrounded by wildcard characters (*), which specifies that the string can be anywhere within the Identity. After all of the online voice routes with identities that include the string Redmond are retrieved, these online voice routes are piped to the `Remove-CsOnlineVoiceRoute` cmdlet, which removes each one. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoiceroute + + + Get-CsOnlineVoiceRoute + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoiceroute + + + New-CsOnlineVoiceRoute + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoiceroute + + + Set-CsOnlineVoiceRoute + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoiceroute + + + + + + Remove-CsOnlineVoiceRoutingPolicy + Remove + CsOnlineVoiceRoutingPolicy + + Deletes an existing online voice routing policy. Online voice routing policies manage online PSTN usages for Phone System users. + + + + Online voice routing policies are used in Microsoft Phone System Direct Routing scenarios. Assigning your Teams users an online voice routing policy enables those users to receive and to place phone calls to the public switched telephone network by using your on-premises SIP trunks. + Note that simply assigning a user an online voice routing policy will not enable them to make PSTN calls via Teams. Among other things, you will also need to enable those users for Phone System and will need to assign them an appropriate online voice policy. + + + + Remove-CsOnlineVoiceRoutingPolicy + + Identity - This parameter is reserved for internal Microsoft use. + Unique identifier assigned to the policy when it was created. String @@ -61918,22 +68931,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - - ChassisID - - The Media Access Control (MAC) address of the port's switch. This value will be in the form nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. - - String - - String - - - None - - - Force + + Confirm - The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -61942,34 +68943,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - IsDebug - - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - None - - - NCSApiUrl - - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - TargetStore + + Identity - This parameter is reserved for internal Microsoft use. + Unique identifier assigned to the policy when it was created. String @@ -61978,18 +68955,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - WhatIf @@ -62003,24 +68968,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - - - System.String - - - - - - - - System.String - - - - - - + @@ -62039,121 +68987,170 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 -------------------------- Example 1 -------------------------- - Remove-CsOnlineLisSwitch -ChassisID 0B-23-CD-16-AA-CC + PS C:\> Remove-CsOnlineVoiceRoutingPolicy -Identity "RedmondOnlineVoiceRoutingPolicy" - Example 1 removes the switch with Chassis ID "0B-23-CD-16-AA-CC". + The command shown in Example 1 deletes the online voice routing policy RedmondOnlineVoiceRoutingPolicy. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsOnlineVoiceRoutingPolicy -Filter "tag:*" | Remove-CsOnlineVoiceRoutingPolicy + + In Example 2, all the online voice routing policies configured at the per-user scope are removed. To do this, the command first calls the `Get-CsOnlineVoiceRoutingPolicy` cmdlet along with the Filter parameter; the filter value "tag:*" limits the returned data to online voice routing policies configured at the per-user scope. Those per-user policies are then piped to and removed by, the `Remove-CsOnlineVoiceRoutingPolicy` cmdlet. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Get-CsOnlineVoiceRoutingPolicy | Where-Object {$_.OnlinePstnUsages -contains "Long Distance"} | Remove-CsOnlineVoiceRoutingPolicy + + In Example 3, all the online voice routing polices that include the online PSTN usage "Long Distance" are removed. To carry out this task, the `Get-CsOnlineVoiceRoutingPolicy` cmdlet is first called without any parameters in order to return a collection of all the available online voice routing policies. That collection is then piped to the Where-Object cmdlet, which picks out only those policies where the OnlinePstnUsages property includes (-contains) the usage "Long Distance". Policies that meet that criterion are then piped to the `Remove-CsOnlineVoiceRoutingPolicy`, which removes each online voice routing policy that includes the online PSTN usage "Long Distance". Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csonlinelisswitch + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoiceroutingpolicy - Set-CsOnlineLisSwitch - https://learn.microsoft.com/powershell/module/teams/set-csonlinelisswitch + New-CsOnlineVoiceRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoiceroutingpolicy - Get-CsOnlineLisSwitch - https://learn.microsoft.com/powershell/module/teams/get-csonlinelisswitch + Get-CsOnlineVoiceRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoiceroutingpolicy + + + Set-CsOnlineVoiceRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoiceroutingpolicy + + + Grant-CsOnlineVoiceRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csonlinevoiceroutingpolicy - Remove-CsOnlineLisWirelessAccessPoint + Remove-CsPhoneNumberAssignment Remove - CsOnlineLisWirelessAccessPoint + CsPhoneNumberAssignment - Removes a Location Information Server (LIS) wireless access point (WAP). + This cmdlet will remove/unassign a phone number from a user or a resource account (online application instance). - Enhanced 9-1-1 allows an emergency operator to identify the location of a caller without having to ask the caller for that information. In the case where a caller is calling from a Voice over Internet Protocol (VoIP) connection, that information must be extracted based on various connection factors. The VoIP administrator must configure a location map (called a wiremap) that will determine a caller's location. This cmdlet removes a WAP from the location configuration database. Removing the WAP will not remove the location associated with that WAP. Use the `Remove-CsLisOnlineLocation` cmdlet to remove a location. - The BSSID (Basic Service Set Identifiers) is used to describe sections of a wireless local area network. It is the MAC of the 802.11 side of the access point. The BSSID parameter in this command also supports the wildcard format to cover all BSSIDs in a range which are sharing the same description and Location ID. The wildcard '*' can be on either the last one or two character(s). - If a BSSID with wildcard format is already exists, the request for removing a single BSSID which is within this wildcard range and with the same location ID will not be accepted. + This cmdlet removes/unassigns a phone number from a user or resource account. The phone number continues to be available in the tenant. + Unassigning a phone number from a user or resource account will automatically set EnterpriseVoiceEnabled to False. + If the cmdlet executes successfully, no result object will be returned. If the cmdlet fails for any reason, a result object will be returned that contains a Code string parameter and a Message string parameter with additional details of the failure. Email notification to end user is a best effort operation. No error message will be displayed if the email fails to send. Note : In Teams PowerShell Module 4.2.1-preview and later we are changing how the cmdlet reports errors. Instead of using a result object, we will be generating an exception in case of an error and we will be appending the exception to the $Error automatic variable. The cmdlet will also now support the -ErrorAction parameter to control the execution after an error has occurred. - Remove-CsOnlineLisWirelessAccessPoint - - BSSID + Remove-CsPhoneNumberAssignment + + HttpPipelinePrepend - The Basic Service Set Identifier (BSSID) of the wireless access point. This value must be in the form nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. It can be presented in wildcard format. The wildcard '*' can be on either the last one or two character(s). + {{ Fill HttpPipelinePrepend Description }} - String + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] - String + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] None - - Force + + Identity - The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + The Identity of the specific user or resource account. Can be specified using the value in the ObjectId, the SipProxyAddress, or the UserPrincipalName attribute of the user or resource account. + System.String - SwitchParameter + System.String - False + None - - IsDebug + + PhoneNumber - This parameter is reserved for internal Microsoft use. + The phone number to unassign from the user or resource account. Supports E.164 format and non-E.164 format. Needs to be without the prefixed "tel:". - Boolean + System.String - Boolean + System.String None - - NCSApiUrl + + PhoneNumberType - This parameter is reserved for internal Microsoft use. + The type of phone number to unassign from the user or resource account. The supported values are DirectRouting, CallingPlan and OperatorConnect. - String + System.String - String + System.String None - TargetStore + Notify - This parameter is reserved for internal Microsoft use. + Sends a best-effort email notification when a phone number is removed. Failures to send email are not reported. - String - String + System.Management.Automation.SwitchParameter + + + False + + + + Remove-CsPhoneNumberAssignment + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] None - - Confirm + + Identity - Prompts you for confirmation before running the cmdlet. + The Identity of the specific user or resource account. Can be specified using the value in the ObjectId, the SipProxyAddress, or the UserPrincipalName attribute of the user or resource account. + System.String - SwitchParameter + System.String + + + None + + + RemoveAll + + Unassigns the phone number from the user or resource account. + + + System.Management.Automation.SwitchParameter False - - WhatIf + + Notify - Shows what would happen if the cmdlet runs. The cmdlet is not run. + Sends a best-effort email notification when a phone number is removed. Failures to send email are not reported. - SwitchParameter + System.Management.Automation.SwitchParameter False @@ -62161,86 +69158,74 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - - BSSID - - The Basic Service Set Identifier (BSSID) of the wireless access point. This value must be in the form nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. It can be presented in wildcard format. The wildcard '*' can be on either the last one or two character(s). - - String - - String - - - None - - Force + HttpPipelinePrepend - The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + {{ Fill HttpPipelinePrepend Description }} - SwitchParameter + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] - SwitchParameter + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] - False + None - - IsDebug + + Identity - This parameter is reserved for internal Microsoft use. + The Identity of the specific user or resource account. Can be specified using the value in the ObjectId, the SipProxyAddress, or the UserPrincipalName attribute of the user or resource account. - Boolean + System.String - Boolean + System.String None - - NCSApiUrl + + PhoneNumber - This parameter is reserved for internal Microsoft use. + The phone number to unassign from the user or resource account. Supports E.164 format and non-E.164 format. Needs to be without the prefixed "tel:". - String + System.String - String + System.String None - - TargetStore + + PhoneNumberType - This parameter is reserved for internal Microsoft use. + The type of phone number to unassign from the user or resource account. The supported values are DirectRouting, CallingPlan and OperatorConnect. - String + System.String - String + System.String None - - Confirm + + RemoveAll - Prompts you for confirmation before running the cmdlet. + Unassigns the phone number from the user or resource account. - SwitchParameter + System.Management.Automation.SwitchParameter - SwitchParameter + System.Management.Automation.SwitchParameter False - - WhatIf + + Notify - Shows what would happen if the cmdlet runs. The cmdlet is not run. + Sends a best-effort email notification when a phone number is removed. Failures to send email are not reported. - SwitchParameter + System.Management.Automation.SwitchParameter - SwitchParameter + System.Management.Automation.SwitchParameter False @@ -62249,7 +69234,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - System.String + None @@ -62268,162 +69253,90 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - + The cmdlet is available in Teams PowerShell module 3.0.0 or later. + The cmdlet is only available in commercial and GCC cloud instances. -------------------------- Example 1 -------------------------- - Remove-CsOnlineLisWirelessAccessPoint -BSSID F0-6E-0B-C2-03-23 + Remove-CsPhoneNumberAssignment -Identity user1@contoso.com -PhoneNumber +12065551234 -PhoneNumberType CallingPlan - Example 1 removes the Location Information Server (LIS) wireless access point with BSS ID "F0-6E-0B-C2-03-23". + This example removes/unassigns the Microsoft Calling Plan telephone number +1 (206) 555-1234 from the user user1@contoso.com. -------------------------- Example 2 -------------------------- - Remove-CsOnlineLisWirelessAccessPoint -BSSID F0-6E-0B-C2-04-* + Remove-CsPhoneNumberAssignment -Identity user2@contoso.com -RemoveAll - Example 2 removes the Location Information Server (LIS) wireless access point with BSS ID "F0-6E-0B-C2-04-*". + This example removes/unassigns all the telephone number from user2@contoso.com. - - - - Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csonlineliswirelessaccesspoint - - - Set-CsOnlineLisWirelessAccessPoint - https://learn.microsoft.com/powershell/module/teams/set-csonlineliswirelessaccesspoint - - - Get-CsOnlineLisWirelessAccessPoint - https://learn.microsoft.com/powershell/module/teams/get-csonlineliswirelessaccesspoint - - - - - - Remove-CsOnlinePSTNGateway - Remove - CsOnlinePSTNGateway - - Removes the configuration of the previously defined Session Border Controller(s) (SBC(s)) that describes the settings for the peer entity. This cmdlet was introduced with Microsoft Phone System Direct Routing. - - - - Use this cmdlet to remove the configuration of the previously created Session Border Controller(s) (SBC(s)) configuration. Note the SBC must be removed from all voice routes before executing this cmdlet. - - - - Remove-CsOnlinePSTNGateway - - Identity - - The parameter is mandatory for the cmdlet. The Identity is the same as the SBC FQDN. - - String - - String - - - None - - - - - - Identity - - The parameter is mandatory for the cmdlet. The Identity is the same as the SBC FQDN. - - String - - String - - - None - - - - - - - System.Object - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Remove-CsOnlinePSTNGateway -Identity sbc.contoso.com + -------------------------- Example 3 -------------------------- + Remove-CsPhoneNumberAssignment -Identity user1@contoso.com -PhoneNumber +12065551234 -PhoneNumberType CallingPlan -Notify - This example removes SBC with Identity (and FQDN) sbc.contoso.com. + This example removes/unassigns the Microsoft Calling Plan phone number +1 (206) 555-1234 from the user user1@contoso.com and also sends an email notification to the user about the removal of telephone number. + + + + -------------------------- Example 4 -------------------------- + Remove-CsPhoneNumberAssignment -Identity user2@contoso.com -RemoveAll -Notify + + This example removes/unassigns all the telephone number from user2@contoso.com and also sends an email notification to the user about the change. Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csonlinepstngateway - - - Set-CsOnlinePSTNGateway - https://learn.microsoft.com/powershell/module/teams/set-csonlinepstngateway + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csphonenumberassignment - New-CsOnlinePSTNGateway - https://learn.microsoft.com/powershell/module/teams/new-csonlinepstngateway + Set-CsPhoneNumberAssignment + https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberassignment - Get-CsOnlinePSTNGateway - https://learn.microsoft.com/powershell/module/teams/get-csonlinepstngateway + Get-CsPhoneNumberAssignment + https://learn.microsoft.com/powershell/module/microsoftteams/get-csphonenumberassignment - Remove-CsOnlineSchedule + Remove-CsPhoneNumberTag Remove - CsOnlineSchedule + CsPhoneNumberTag - Use the Remove-CsOnlineSchedule cmdlet to remove a schedule. + This cmdlet allows admin to remove a tag from phone number. - The Remove-CsOnlineSchedule cmdlet deletes a schedule that is specified by using the Id parameter. + This cmdlet allows telephone number administrators to remove existing tags from any telephone numbers. This method does not delete the tag from the system if the tag is assigned to other telephone numbers. - Remove-CsOnlineSchedule - - Id + Remove-CsPhoneNumberTag + + PhoneNumber - The Id for the schedule to be removed. + Indicates the phone number for the the tag to be removed from - System.String + String - System.String + String None - - Tenant + + Tag - + Indicates the tag to be removed. - System.Guid + String - System.Guid + String None @@ -62431,26 +69344,26 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - - Id + + PhoneNumber - The Id for the schedule to be removed. + Indicates the phone number for the the tag to be removed from - System.String + String - System.String + String None - - Tenant + + Tag - + Indicates the tag to be removed. - System.Guid + String - System.Guid + String None @@ -62459,17 +69372,17 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - System.String + None - The Remove-CsOnlineSchedule cmdlet accepts a string as the Id parameter. + - System.Void + System.Boolean @@ -62484,122 +69397,79 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 -------------------------- Example 1 -------------------------- - Remove-CsOnlineSchedule -Id "fa9081d6-b4f3-5c96-baec-0b00077709e5" + PS C:\> Remove-CsPhoneNumberTag -PhoneNumber +123456789 -Tag "HR" - This example deletes the schedule that has an Id of fa9081d6-b4f3-5c96-baec-0b00077709e5. + This example shows how to remove the tag "HR" from telephone number +123456789. - Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csonlineschedule - - - New-CsOnlineSchedule - https://learn.microsoft.com/powershell/module/teams/new-csonlineschedule - - - Set-CsOnlineSchedule - https://learn.microsoft.com/powershell/module/teams/set-csonlineschedule - - - - - - Remove-CsOnlineVoiceRoute - Remove - CsOnlineVoiceRoute - - Removes an online voice route. Online voice routes contain instructions that tell Skype for Business Online how to route calls from Office 365 users to phone numbers on the public switched telephone network (PSTN) or a private branch exchange (PBX). - - - - Use this cmdlet to remove an existing online voice route. Online voice routes are associated with online voice policies through online PSTN usages, so removing an online voice route does not change any values relating to an online voice policy, it simply changes the routing for the numbers that had matched the pattern for the deleted online voice route. - This cmdlet is used when configuring Microsoft Phone System Direct Routing. - - - - Remove-CsOnlineVoiceRoute - - Identity - - The unique identity of the online voice route. (If the route name contains a space, such as Test Route, you must enclose the full string in parentheses.) - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - WhatIf + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csphonenumbertag + + + + + + Remove-CsSharedCallQueueHistoryTemplate + Remove + CsSharedCallQueueHistoryTemplate + + Deletes a Shared Call Queue History template. + + + + Use the Remove-CsSharedCallQueueHistoryTemplate cmdlet to delete a Shared Call Queue History template. If the template is currently assigned to a call queue, an error will be returned. + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for this feature. General Availability for this functionality has not been determined at this time. + + + + Remove-CsSharedCallQueueHistoryTemplate + + Id - Shows what would happen if the cmdlet runs. The cmdlet is not run. + > Applicable: Microsoft Teams + The Id parameter is the unique identifier assigned to the Shared Call Queue History template. + System.String - SwitchParameter + System.String - False + None - - Confirm + + Id - Prompts you for confirmation before running the cmdlet. + > Applicable: Microsoft Teams + The Id parameter is the unique identifier assigned to the Shared Call Queue History template. - SwitchParameter + System.String - SwitchParameter + System.String - False + None - - Identity - - The unique identity of the online voice route. (If the route name contains a space, such as Test Route, you must enclose the full string in parentheses.) - - String + + + - String - + None - None - - - WhatIf - Shows what would happen if the cmdlet runs. The cmdlet is not run. + - SwitchParameter - - SwitchParameter - - - False - - - + + - System.Object + Microsoft.Rtc.Management.OAA.Models.AutoAttendant @@ -62614,65 +69484,67 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 -------------------------- Example 1 -------------------------- - PS C:\> Remove-CsOnlineVoiceRoute -Identity Route1 - - Removes the settings for the online voice route with the identity Route1. - - - - -------------------------- Example 2 -------------------------- - PS C:\ Get-CsOnlineVoiceRoute | Remove-CsOnlineVoiceRoute + Remove-CsSharedCallQueueHistoryTemplate -Id 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01 - This command removes all online voice routes from the organization. First all online voice routes are retrieved by the `Get-CsOnlineVoiceRoute` cmdlet. These online voice routes are then piped to the `Remove-CsOnlineVoiceRoute` cmdlet, which removes each one. - - - - -------------------------- Example 3 -------------------------- - PS C:\ Get-CsOnlineVoiceRoute -Filter *Redmond* | Remove-CsOnlineVoiceRoute - - This command removes all online voice routes with an identity that includes the string "Redmond". First the `Get-CsOnlineVoiceRoute` cmdlet is called with the Filter parameter. The value of the Filter parameter is the string Redmond surrounded by wildcard characters (*), which specifies that the string can be anywhere within the Identity. After all of the online voice routes with identities that include the string Redmond are retrieved, these online voice routes are piped to the `Remove-CsOnlineVoiceRoute` cmdlet, which removes each one. + This example deletes the Shared Call Queue History template with the identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01. If no Shared Call Queue History template exists with the identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01, then this example generates an error. Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csonlinevoiceroute + https://learn.microsoft.com/powershell/module/microsoftteams/Remove-CsSharedCallQueueHistoryTemplate - Get-CsOnlineVoiceRoute - https://learn.microsoft.com/powershell/module/teams/get-csonlinevoiceroute + New-CsSharedCallQueueHistoryTemplate + - New-CsOnlineVoiceRoute - https://learn.microsoft.com/powershell/module/teams/new-csonlinevoiceroute + Set-CsSharedCallQueueHistoryTemplate + - Set-CsOnlineVoiceRoute - https://learn.microsoft.com/powershell/module/teams/set-csonlinevoiceroute + Get-CsSharedCallQueueHistoryTemplate + + + + Get-CsCallQueue + + + + New-CsCallQueue + + + + Set-CsCallQueue + + + + Remove-CsCallQueue + - Remove-CsOnlineVoiceRoutingPolicy + Remove-CsTagsTemplate Remove - CsOnlineVoiceRoutingPolicy + CsTagsTemplate - Deletes an existing online voice routing policy. Online voice routing policies manage online PSTN usages for Phone System users. + Deletes a Tag templates from the tenant. - Online voice routing policies are used in Microsoft Phone System Direct Routing scenarios. Assigning your Teams users an online voice routing policy enables those users to receive and to place phone calls to the public switched telephone network by using your on-premises SIP trunks. - Note that simply assigning a user an online voice routing policy will not enable them to make PSTN calls via Teams. Among other things, you will also need to enable those users for Phone System and will need to assign them an appropriate online voice policy. + The Remove-CsTagsTemplate cmdlet deletes a Tag template from the tenant. + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for these features. General Availability for this functionality has not been determined at this time. - Remove-CsOnlineVoiceRoutingPolicy - - Identity + Remove-CsTagsTemplate + + Id - Unique identifier assigned to the policy when it was created. + The unique identifier for the Tag template. This can be retrieved using the Get-CsTagsTemplate (Get-CsTagsTemplate.md)cmdlet. String @@ -62681,35 +69553,25 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - Confirm + + Tenant - Prompts you for confirmation before running the cmdlet. + This parameter is reserved for Microsoft internal use only. + Guid - SwitchParameter + Guid - False + None - - Identity + + Id - Unique identifier assigned to the policy when it was created. + The unique identifier for the Tag template. This can be retrieved using the Get-CsTagsTemplate (Get-CsTagsTemplate.md)cmdlet. String @@ -62718,36 +69580,24 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - Confirm + + Tenant - Prompts you for confirmation before running the cmdlet. + This parameter is reserved for Microsoft internal use only. - SwitchParameter + Guid - SwitchParameter + Guid - False + None - System.Object + Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue @@ -62759,124 +69609,83 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - - - -------------------------- Example 1 -------------------------- - PS C:\> Remove-CsOnlineVoiceRoutingPolicy -Identity "RedmondOnlineVoiceRoutingPolicy" - - The command shown in Example 1 deletes the online voice routing policy RedmondOnlineVoiceRoutingPolicy. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-CsOnlineVoiceRoutingPolicy -Filter "tag:*" | Remove-CsOnlineVoiceRoutingPolicy - - In Example 2, all the online voice routing policies configured at the per-user scope are removed. To do this, the command first calls the `Get-CsOnlineVoiceRoutingPolicy` cmdlet along with the Filter parameter; the filter value "tag:*" limits the returned data to online voice routing policies configured at the per-user scope. Those per-user policies are then piped to and removed by, the `Remove-CsOnlineVoiceRoutingPolicy` cmdlet. - - - - -------------------------- Example 3 -------------------------- - PS C:\> Get-CsOnlineVoiceRoutingPolicy | Where-Object {$_.OnlinePstnUsages -contains "Long Distance"} | Remove-CsOnlineVoiceRoutingPolicy - - In Example 3, all the online voice routing polices that include the online PSTN usage "Long Distance" are removed. To carry out this task, the `Get-CsOnlineVoiceRoutingPolicy` cmdlet is first called without any parameters in order to return a collection of all the available online voice routing policies. That collection is then piped to the Where-Object cmdlet, which picks out only those policies where the OnlinePstnUsages property includes (-contains) the usage "Long Distance". Policies that meet that criterion are then piped to the `Remove-CsOnlineVoiceRoutingPolicy`, which removes each online voice routing policy that includes the online PSTN usage "Long Distance". - - - + Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csonlinevoiceroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstagstemplate - New-CsOnlineVoiceRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csonlinevoiceroutingpolicy + New-CsTagsTemplate + - Get-CsOnlineVoiceRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csonlinevoiceroutingpolicy + Get-CsTagsTemplate + - Set-CsOnlineVoiceRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csonlinevoiceroutingpolicy + Set-CsTagsTemplate + - Grant-CsOnlineVoiceRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csonlinevoiceroutingpolicy + New-CsTag + - Remove-CsPhoneNumberAssignment + Remove-CsTeamsAudioConferencingPolicy Remove - CsPhoneNumberAssignment + CsTeamsAudioConferencingPolicy - This cmdlet will remove/unassign a phone number from a user or a resource account (online application instance). + Deletes a custom Teams audio conferencing policy. Audio conferencing policies are used to manage audio conferencing toll- and toll-free numbers to be displayed in meeting invites created by users within your organization. - This cmdlet removes/unassigns a phone number from a user or resource account. The phone number continues to be available in the tenant. - Unassigning a phone number from a user or resource account will automatically set EnterpriseVoiceEnabled to False. - If the cmdlet executes successfully, no result object will be returned. If the cmdlet fails for any reason, a result object will be returned that contains a Code string parameter and a Message string parameter with additional details of the failure. Note : In Teams PowerShell Module 4.2.1-preview and later we are changing how the cmdlet reports errors. Instead of using a result object, we will be generating an exception in case of an error and we will be appending the exception to the $Error automatic variable. The cmdlet will also now support the -ErrorAction parameter to control the execution after an error has occurred. + Deletes a previously created TeamsAudioConferencingPolicy. Any users with no explicitly assigned policies will then fall back to the default (Global) policy in the organization. You cannot delete the global policy from the organization. - Remove-CsPhoneNumberAssignment - + Remove-CsTeamsAudioConferencingPolicy + Identity - The Identity of the specific user or resource account. Can be specified using the value in the ObjectId, the SipProxyAddress, or the UserPrincipalName attribute of the user or resource account. + Unique identifier for the TeamsAudioConferencingPolicy to be removed. To remove global policy, use this syntax: -Identity global. (Note that the global policy cannot be removed. Instead, all the policy properties will be reset to their default values.) To remove a custom policy, use this syntax: `-Identity "<policy name>"`. - System.String + String - System.String + String None - - PhoneNumber + + Confirm - The phone number to unassign from the user or resource account. Supports E.164 format and non-E.164 format. Needs to be without the prefixed "tel:". + Prompts you for confirmation before running the cmdlet. - System.String - System.String + SwitchParameter - None + False - PhoneNumberType - - The type of phone number to unassign from the user or resource account. The supported values are DirectRouting, CallingPlan and OperatorConnect. - - System.String - - System.String - - - None - - - - Remove-CsPhoneNumberAssignment - - Identity + Force - The Identity of the specific user or resource account. Can be specified using the value in the ObjectId, the SipProxyAddress, or the UserPrincipalName attribute of the user or resource account. + Suppresses any confirmation prompts that would otherwise be displayed before making changes. Suppresses any confirmation prompts that would otherwise be displayed before making changes. - System.String - System.String + SwitchParameter - None + False - - RemoveAll + + WhatIf - Unassigns the phone number from the user or resource account. + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -62887,46 +69696,46 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - - Identity + + Confirm - The Identity of the specific user or resource account. Can be specified using the value in the ObjectId, the SipProxyAddress, or the UserPrincipalName attribute of the user or resource account. + Prompts you for confirmation before running the cmdlet. - System.String + SwitchParameter - System.String + SwitchParameter - None + False - PhoneNumber + Force - The phone number to unassign from the user or resource account. Supports E.164 format and non-E.164 format. Needs to be without the prefixed "tel:". + Suppresses any confirmation prompts that would otherwise be displayed before making changes. Suppresses any confirmation prompts that would otherwise be displayed before making changes. - System.String + SwitchParameter - System.String + SwitchParameter - None + False - - PhoneNumberType + + Identity - The type of phone number to unassign from the user or resource account. The supported values are DirectRouting, CallingPlan and OperatorConnect. + Unique identifier for the TeamsAudioConferencingPolicy to be removed. To remove global policy, use this syntax: -Identity global. (Note that the global policy cannot be removed. Instead, all the policy properties will be reset to their default values.) To remove a custom policy, use this syntax: `-Identity "<policy name>"`. - System.String + String - System.String + String None - - RemoveAll + + WhatIf - Unassigns the phone number from the user or resource account. + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -62939,7 +69748,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - None + String @@ -62949,7 +69758,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - System.Object + Object @@ -62958,72 +69767,71 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - The cmdlet is available in Teams PowerShell module 3.0.0 or later. - The cmdlet is only available in commercial and GCC cloud instances. + - -------------------------- Example 1 -------------------------- - Remove-CsPhoneNumberAssignment -Identity user1@contoso.com -PhoneNumber +12065551234 -PhoneNumberType CallingPlan - - This example removes/unassigns the Microsoft Calling Plan phone number +1 (206) 555-1234 from the user user1@contoso.com. - - - - -------------------------- Example 2 -------------------------- - Remove-CsPhoneNumberAssignment -Identity user2@contoso.com -RemoveAll + -------------------------- EXAMPLE 1 -------------------------- + PS C:\> Remove-CsTeamsAudioCOnferencingPolicy -Identity "Emea Users" - This example removes/unassigns the phone number from user2@contoso.com. + In the example shown above, the command will delete the "Emea Users" audio conferencing policy from the organization's list of policies. Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csphonenumberassignment + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsaudioconferencingpolicy - Set-CsPhoneNumberAssignment - https://learn.microsoft.com/powershell/module/teams/set-csphonenumberassignment + Get-CsTeamsAudioConferencingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsaudioconferencingpolicy - Get-CsPhoneNumberAssignment - https://learn.microsoft.com/powershell/module/teams/get-csphonenumberassignment + Set-CsTeamsAudioConferencingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsaudioconferencingpolicy + + + Grant-CsTeamsAudioConferencingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsaudioconferencingpolicy - Remove-CsTeamsAudioConferencingPolicy + Remove-CsTeamsCallParkPolicy Remove - CsTeamsAudioConferencingPolicy + CsTeamsCallParkPolicy - Deletes a custom Teams audio conferencing policy. Audio conferencing policies are used to manage audio conferencing toll- and toll-free numbers to be displayed in meeting invites created by users within your organization. + The TeamsCallParkPolicy controls whether or not users are able to leverage the call park feature in Microsoft Teams. Call park allows enterprise voice customers to place a call on hold and then perform a number of actions on that call: transfer to another department, retrieve via the same phone, or retrieve via a different Teams phone. The Remove-CsTeamsCallParkPolicy cmdlet lets delete a custom policy that has been configured in your organization. - Deletes a previously created TeamsAudioConferencingPolicy. Any users with no explicitly assigned policies will then fall back to the default (Global) policy in the organization. You cannot delete the global policy from the organization. + The TeamsCallParkPolicy controls whether or not users are able to leverage the call park feature in Microsoft Teams. Call park allows enterprise voice customers to place a call on hold and then perform a number of actions on that call: transfer to another department, retrieve via the same phone, or retrieve via a different phone. The Remove-CsTeamsCallParkPolicy cmdlet lets delete a custom policy that has been configured in your organization. + If you run Remove-CsTeamsCallParkPolicy on the Global policy, it will be reset to the defaults provided for new organizations. - Remove-CsTeamsAudioConferencingPolicy + Remove-CsTeamsCallParkPolicy Identity - Unique identifier for the TeamsAudioConferencingPolicy to be removed. To remove global policy, use this syntax: -Identity global. (Note that the global policy cannot be removed. Instead, all the policy properties will be reset to their default values.) To remove a custom policy, use this syntax: `-Identity "<policy name>"`. + > Applicable: Microsoft Teams + Unique identifier for the client policy to be removed. To "remove" the global policy, use the following syntax: `-Identity global`. (Note that the global policy cannot actually be removed. Instead, all the properties in that policy will be reset to their default values.) To remove a per-user policy, use syntax similar to this: `-Identity "SalesDepartmentPolicy"`. You cannot use wildcards when specifying a policy Identity. - String + XdsIdentity - String + XdsIdentity None - - Force + + Confirm - Suppresses any confirmation prompts that would otherwise be displayed before making changes. Suppresses any confirmation prompts that would otherwise be displayed before making changes. + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. SwitchParameter @@ -63031,10 +69839,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm + + Force - Prompts you for confirmation before running the cmdlet. + > Applicable: Microsoft Teams + Suppresses all non-fatal errors. SwitchParameter @@ -63042,10 +69851,24 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False + + Tenant + + > Applicable: Microsoft Teams + Internal Microsoft use only. + + Guid + + Guid + + + None + WhatIf - Shows what would happen if the cmdlet runs. The cmdlet is not run. + > Applicable: Microsoft Teams + Describes what would happen if you executed the command without actually executing the command. SwitchParameter @@ -63056,10 +69879,24 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. + + SwitchParameter + + SwitchParameter + + + False + Force - Suppresses any confirmation prompts that would otherwise be displayed before making changes. Suppresses any confirmation prompts that would otherwise be displayed before making changes. + > Applicable: Microsoft Teams + Suppresses all non-fatal errors. SwitchParameter @@ -63071,31 +69908,34 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Identity - Unique identifier for the TeamsAudioConferencingPolicy to be removed. To remove global policy, use this syntax: -Identity global. (Note that the global policy cannot be removed. Instead, all the policy properties will be reset to their default values.) To remove a custom policy, use this syntax: `-Identity "<policy name>"`. + > Applicable: Microsoft Teams + Unique identifier for the client policy to be removed. To "remove" the global policy, use the following syntax: `-Identity global`. (Note that the global policy cannot actually be removed. Instead, all the properties in that policy will be reset to their default values.) To remove a per-user policy, use syntax similar to this: `-Identity "SalesDepartmentPolicy"`. You cannot use wildcards when specifying a policy Identity. - String + XdsIdentity - String + XdsIdentity None - - Confirm + + Tenant - Prompts you for confirmation before running the cmdlet. + > Applicable: Microsoft Teams + Internal Microsoft use only. - SwitchParameter + Guid - SwitchParameter + Guid - False + None WhatIf - Shows what would happen if the cmdlet runs. The cmdlet is not run. + > Applicable: Microsoft Teams + Describes what would happen if you executed the command without actually executing the command. SwitchParameter @@ -63108,7 +69948,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - String + Microsoft.Rtc.Management.Xds.XdsIdentity @@ -63118,7 +69958,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - Object + System.Object @@ -63132,52 +69972,39 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - -------------------------- EXAMPLE 1 -------------------------- - PS C:\> Remove-CsTeamsAudioCOnferencingPolicy -Identity "Emea Users" + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTeamsCallParkPolicy -Identity SalesPolicy - In the example shown above, the command will delete the "Emea Users" audio conferencing policy from the organization's list of policies. + Deletes a custom policy that has already been created in the organization. Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamsaudioconferencingpolicy - - - Get-CsTeamsAudioConferencingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsaudioconferencingpolicy - - - Set-CsTeamsAudioConferencingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsaudioconferencingpolicy - - - Grant-CsTeamsAudioConferencingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsaudioconferencingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallparkpolicy - Remove-CsTeamsCallParkPolicy + Remove-CsTeamsCortanaPolicy Remove - CsTeamsCallParkPolicy + CsTeamsCortanaPolicy - The TeamsCallParkPolicy controls whether or not users are able to leverage the call park feature in Microsoft Teams. Call park allows enterprise voice customers to place a call on hold and then perform a number of actions on that call: transfer to another department, retrieve via the same phone, or retrieve via a different Teams phone. The Remove-CsTeamsCallParkPolicy cmdlet lets delete a custom policy that has been configured in your organization. + The CsTeamsCortanaPolicy cmdlets enable administrators to control settings for Cortana voice assistant in Microsoft Teams. - The TeamsCallParkPolicy controls whether or not users are able to leverage the call park feature in Microsoft Teams. Call park allows enterprise voice customers to place a call on hold and then perform a number of actions on that call: transfer to another department, retrieve via the same phone, or retrieve via a different phone. The Remove-CsTeamsCallParkPolicy cmdlet lets delete a custom policy that has been configured in your organization. - If you run Remove-CsTeamsCallParkPolicy on the Global policy, it will be reset to the defaults provided for new organizations. + Deletes a previously created TeamsCortanaPolicy. Any users with no explicitly assigned policies will then fall back to the default policy in the organization. You cannot delete the global policy from the organization. - Remove-CsTeamsCallParkPolicy - + Remove-CsTeamsCortanaPolicy + Identity - Unique identifier for the client policy to be removed. To "remove" the global policy, use the following syntax: `-Identity global`. (Note that the global policy cannot actually be removed. Instead, all the properties in that policy will be reset to their default values.) To remove a per-user policy, use syntax similar to this: `-Identity "SalesDepartmentPolicy"`. You cannot use wildcards when specifying a policy Identity. + Identity for the policy you're modifying. To modify the global policy, use this syntax: -Identity global. To modify a per-user policy, use syntax similar to this: -Identity MyCortanaPolicy. If you do not specify an Identity the Set-CsTeamsCortanaPolicy cmdlet will automatically modify the global policy. XdsIdentity @@ -63186,10 +70013,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - Force + + Confirm - Suppresses all non-fatal errors. + Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -63197,10 +70024,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - WhatIf + + Force - Describes what would happen if you executed the command without actually executing the command. + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -63208,48 +70035,48 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm + + Tenant - Prompts you for confirmation before executing the command. + Globally unique identifier (GUID) of the tenant account whose external user communication policy are being created. For example: -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" You can return your tenant ID by running this command: Get-CsTenant | Select-Object DisplayName, TenantID + System.Guid - SwitchParameter + System.Guid - False + None - - Tenant + + WhatIf - Internal Microsoft use only. + Shows what would happen if the cmdlet runs. The cmdlet is not run. - Guid - Guid + SwitchParameter - None + False - - Identity + + Confirm - Unique identifier for the client policy to be removed. To "remove" the global policy, use the following syntax: `-Identity global`. (Note that the global policy cannot actually be removed. Instead, all the properties in that policy will be reset to their default values.) To remove a per-user policy, use syntax similar to this: `-Identity "SalesDepartmentPolicy"`. You cannot use wildcards when specifying a policy Identity. + Prompts you for confirmation before running the cmdlet. - XdsIdentity + SwitchParameter - XdsIdentity + SwitchParameter - None + False Force - Suppresses all non-fatal errors. + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -63258,41 +70085,41 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - WhatIf + + Identity - Describes what would happen if you executed the command without actually executing the command. + Identity for the policy you're modifying. To modify the global policy, use this syntax: -Identity global. To modify a per-user policy, use syntax similar to this: -Identity MyCortanaPolicy. If you do not specify an Identity the Set-CsTeamsCortanaPolicy cmdlet will automatically modify the global policy. - SwitchParameter + XdsIdentity - SwitchParameter + XdsIdentity - False + None - - Confirm + + Tenant - Prompts you for confirmation before executing the command. + Globally unique identifier (GUID) of the tenant account whose external user communication policy are being created. For example: -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" You can return your tenant ID by running this command: Get-CsTenant | Select-Object DisplayName, TenantID - SwitchParameter + System.Guid - SwitchParameter + System.Guid - False + None - - Tenant + + WhatIf - Internal Microsoft use only. + Shows what would happen if the cmdlet runs. The cmdlet is not run. - Guid + SwitchParameter - Guid + SwitchParameter - None + False @@ -63323,42 +70150,42 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 -------------------------- Example 1 -------------------------- - PS C:\> Remove-CsTeamsCallParkPolicy -Identity SalesPolicy + PS C:\> Remove-CsTeamsCortanaPolicy -Identity MyCortanaPolicy - Deletes a custom policy that has already been created in the organization. + In the example shown above, the command will delete the MyCortanaPolicy from the organization's list of policies. Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamscallparkpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscortanapolicy - Remove-CsTeamsCortanaPolicy + Remove-CsTeamsEmergencyCallRoutingPolicy Remove - CsTeamsCortanaPolicy + CsTeamsEmergencyCallRoutingPolicy - The CsTeamsCortanaPolicy cmdlets enable administrators to control settings for Cortana voice assistant in Microsoft Teams. + This cmdlet removes an existing Teams Emergency Call Routing policy instance. - Deletes a previously created TeamsCortanaPolicy. Any users with no explicitly assigned policies will then fall back to the default policy in the organization. You cannot delete the global policy from the organization. + This cmdlet removes an existing Teams Emergency Call Routing policy instance. - Remove-CsTeamsCortanaPolicy + Remove-CsTeamsEmergencyCallRoutingPolicy Identity - Identity for the policy you're modifying. To modify the global policy, use this syntax: -Identity global. To modify a per-user policy, use syntax similar to this: -Identity MyCortanaPolicy. If you do not specify an Identity the Set-CsTeamsCortanaPolicy cmdlet will automatically modify the global policy. + The Identity parameter is the unique identifier of the Teams Emergency Call Routing policy to remove. - XdsIdentity + String - XdsIdentity + String None @@ -63374,29 +70201,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Force - - The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. - - - SwitchParameter - - - False - - - Tenant - - Globally unique identifier (GUID) of the tenant account whose external user communication policy are being created. For example: -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" You can return your tenant ID by running this command: Get-CsTenant | Select-Object DisplayName, TenantID - - System.Guid - - System.Guid - - - None - WhatIf @@ -63423,148 +70227,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Force - - The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - Identity for the policy you're modifying. To modify the global policy, use this syntax: -Identity global. To modify a per-user policy, use syntax similar to this: -Identity MyCortanaPolicy. If you do not specify an Identity the Set-CsTeamsCortanaPolicy cmdlet will automatically modify the global policy. - - XdsIdentity - - XdsIdentity - - - None - - - Tenant - - Globally unique identifier (GUID) of the tenant account whose external user communication policy are being created. For example: -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" You can return your tenant ID by running this command: Get-CsTenant | Select-Object DisplayName, TenantID - - System.Guid - - System.Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Microsoft.Rtc.Management.Xds.XdsIdentity - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Remove-CsTeamsCortanaPolicy -Identity MyCortanaPolicy - - In the example shown above, the command will delete the MyCortanaPolicy from the organization's list of policies. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamscortanapolicy - - - - - - Remove-CsTeamsEmergencyCallRoutingPolicy - Remove - CsTeamsEmergencyCallRoutingPolicy - - This cmdlet removes an existing Teams Emergency Call Routing policy instance. - - - - This cmdlet removes an existing Teams Emergency Call Routing policy instance. - - - - Remove-CsTeamsEmergencyCallRoutingPolicy - - Identity - - The Identity parameter is the unique identifier of the Teams Emergency Call Routing policy to remove. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - - Identity @@ -63589,18 +70251,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - @@ -63628,23 +70278,23 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamsemergencycallroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsemergencycallroutingpolicy New-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsemergencycallroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallroutingpolicy Grant-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsemergencycallroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsemergencycallroutingpolicy Set-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsemergencycallroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallroutingpolicy Get-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsemergencycallroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsemergencycallroutingpolicy @@ -63676,10 +70326,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - Force + + Confirm - Suppresses all non-fatal errors. + Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -63687,10 +70337,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - WhatIf + + Force - Shows what would happen if the cmdlet runs. The cmdlet is not run. + Suppresses all non-fatal errors. SwitchParameter @@ -63698,10 +70348,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -63712,17 +70362,17 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - - Identity + + Confirm - Unique identifier assigned to the Teams enhanced encryption policy. + Prompts you for confirmation before running the cmdlet. - XdsIdentity + SwitchParameter - XdsIdentity + SwitchParameter - None + False Force @@ -63736,22 +70386,22 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - WhatIf + + Identity - Shows what would happen if the cmdlet runs. The cmdlet is not run. + Unique identifier assigned to the Teams enhanced encryption policy. - SwitchParameter + XdsIdentity - SwitchParameter + XdsIdentity - False + None - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -63805,23 +70455,23 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamsenhancedencryptionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsenhancedencryptionpolicy Get-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsenhancedencryptionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsenhancedencryptionpolicy New-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsenhancedencryptionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsenhancedencryptionpolicy Set-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsenhancedencryptionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsenhancedencryptionpolicy Grant-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsenhancedencryptionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsenhancedencryptionpolicy @@ -63951,7 +70601,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamseventspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamseventspolicy @@ -64129,7 +70779,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamsipphonepolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsipphonepolicy @@ -64139,11 +70789,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Remove CsTeamsMeetingBroadcastPolicy - Remove-CsTeamsMeetingBroadcastPolicy [-Identity] <XdsIdentity> [-Tenant <guid>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>] + Deletes an existing Teams meeting broadcast policy in your tenant. - User-level policy for tenant admin to configure meeting broadcast behavior for the broadcast event organizer. Use this cmdlet to delete an existing policy. + User-level policy for tenant admin to configure meeting broadcast behavior for the broadcast event organizer. @@ -64302,7 +70952,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamsmeetingbroadcastpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingbroadcastpolicy @@ -64456,7 +71106,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamsmobilitypolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmobilitypolicy @@ -64492,7 +71142,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Tenant - + {{ Fill Tenant Description }} Guid @@ -64519,7 +71169,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Tenant - + {{ Fill Tenant Description }} Guid @@ -64566,7 +71216,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamsnetworkroamingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsnetworkroamingpolicy @@ -64712,7 +71362,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamsroomvideoteleconferencingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsroomvideoteleconferencingpolicy @@ -64726,7 +71376,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - This cmdlet deletes a connection. All available connections can be found by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnection). + This cmdlet deletes a connection. All available connections can be found by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). @@ -64734,6 +71384,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 ConnectionId + > Applicable: Microsoft Teams The ID of the connection that you want to delete. String @@ -64772,6 +71423,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 ConnectionId + > Applicable: Microsoft Teams The ID of the connection that you want to delete. String @@ -64825,19 +71477,19 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamsshiftsconnection + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftsconnection Get-CsTeamsShiftsConnection - https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnection + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection New-CsTeamsShiftsConnection - https://learn.microsoft.com/powershell/module/teams/new-csteamsshiftsconnection + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnection Set-CsTeamsShiftsConnection - https://learn.microsoft.com/powershell/module/teams/set-csteamsshiftsconnection + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnection @@ -64851,7 +71503,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - This cmdlet deletes a connection instance. All available instances can be found by running Get-CsTeamsShiftsConnectionInstance (https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectioninstance). + This cmdlet deletes a connection instance. All available instances can be found by running Get-CsTeamsShiftsConnectionInstance (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance). @@ -64859,6 +71511,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 ConnectorInstanceId + > Applicable: Microsoft Teams The ID of the connection instance that you want to delete. String @@ -64874,6 +71527,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 ConnectorInstanceId + > Applicable: Microsoft Teams The ID of the connection instance that you want to delete. String @@ -64903,19 +71557,19 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamsshiftsconnectioninstance + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftsconnectioninstance Get-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectioninstance + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance Set-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/teams/set-csteamsshiftsconnectioninstance + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnectioninstance Remove-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/teams/remove-csteamsshiftsconnectioninstance + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftsconnectioninstance @@ -64929,7 +71583,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - This cmdlet removes the mapping between the Microsoft Teams team and WFM team. All team mappings can be found by running Get-CsTeamsShiftsConnectionTeamMap (https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectionteammap). + This cmdlet removes the mapping between the Microsoft Teams team and WFM team. All team mappings can be found by running Get-CsTeamsShiftsConnectionTeamMap (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionteammap). @@ -64937,18 +71591,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 ConnectorInstanceId - The ID of the connection instance that you want to delete. - - String - - String - - - None - - - TeamId - + > Applicable: Microsoft Teams The ID of the connection instance that you want to delete. String @@ -64981,24 +71624,26 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False + + TeamId + + > Applicable: Microsoft Teams + The ID of the connection instance that you want to delete. + + String + + String + + + None + ConnectorInstanceId - The ID of the connection instance that you want to delete. - - String - - String - - - None - - - TeamId - + > Applicable: Microsoft Teams The ID of the connection instance that you want to delete. String @@ -65032,6 +71677,19 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False + + TeamId + + > Applicable: Microsoft Teams + The ID of the connection instance that you want to delete. + + String + + String + + + None + @@ -65052,15 +71710,15 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamsshiftsconnectionteammap + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftsconnectionteammap Get-CsTeamsShiftsConnectionTeamMap - https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectionteammap + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionteammap New-CsTeamsShiftsConnectionBatchTeamMap - https://learn.microsoft.com/powershell/module/teams/new-csteamsshiftsconnectionbatchteammap + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnectionbatchteammap @@ -65079,69 +71737,57 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Remove-CsTeamsShiftsScheduleRecord - - ClearSchedulingGroup - - A value indicating whether to clear schedule group. - - - SwitchParameter - - - False - - - DateRangeEndDate + + Body - The end date of removing schedule record. + The request body. - String + IClearScheduleRequest - String + IClearScheduleRequest None - DateRangeStartDate + Break - The start date of removing schedule record. + Wait for .NET debugger to attach. - String - String + SwitchParameter - None + False - - DesignatedActorId + + ClearSchedulingGroup - The user ID of designated actor. + > Applicable: Microsoft Teams + A value indicating whether to clear schedule group. - String - String + SwitchParameter - None + False - - EntityType + + Confirm - The entity types. + Prompts you for confirmation before running the cmdlet. - String[] - String[] + SwitchParameter - None + False - - TeamId + + DateRangeEndDate - The Teams team ID where you want to remove schedule record. + > Applicable: Microsoft Teams + The end date of removing schedule record. String @@ -65151,26 +71797,17 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - Break - - Wait for .NET debugger to attach. - - - SwitchParameter - - - False - - - Confirm + DateRangeStartDate - Prompts you for confirmation before running the cmdlet. + > Applicable: Microsoft Teams + The start date of removing schedule record. + String - SwitchParameter + String - False + None HttpPipelineAppend @@ -65242,18 +71879,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - TimeZone - - The Timezone parameter ensures that the shifts are displayed in the correct time zone based on your team's location. - - String - - String - - - None - WhatIf @@ -65268,9 +71893,21 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Remove-CsTeamsShiftsScheduleRecord + + Break + + Wait for .NET debugger to attach. + + + SwitchParameter + + + False + ClearSchedulingGroup + > Applicable: Microsoft Teams A value indicating whether to clear schedule group. @@ -65279,9 +71916,21 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + DateRangeEndDate + > Applicable: Microsoft Teams The end date of removing schedule record. String @@ -65294,6 +71943,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 DateRangeStartDate + > Applicable: Microsoft Teams The start date of removing schedule record. String @@ -65303,39 +71953,31 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - Body - - The request body. - - IClearScheduleRequest - - IClearScheduleRequest - - - None - - Break + DesignatedActorId - Wait for .NET debugger to attach. + > Applicable: Microsoft Teams + The user ID of designated actor. + String - SwitchParameter + String - False + None - - Confirm + + EntityType - Prompts you for confirmation before running the cmdlet. + > Applicable: Microsoft Teams + The entity types. + String[] - SwitchParameter + String[] - False + None HttpPipelineAppend @@ -65407,6 +72049,31 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False + + TeamId + + > Applicable: Microsoft Teams + The Teams team ID where you want to remove schedule record. + + String + + String + + + None + + + TimeZone + + The Timezone parameter ensures that the shifts are displayed in the correct time zone based on your team's location. + + String + + String + + + None + WhatIf @@ -65421,9 +72088,34 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 + + Body + + The request body. + + IClearScheduleRequest + + IClearScheduleRequest + + + None + + + Break + + Wait for .NET debugger to attach. + + SwitchParameter + + SwitchParameter + + + False + ClearSchedulingGroup + > Applicable: Microsoft Teams A value indicating whether to clear schedule group. SwitchParameter @@ -65433,9 +72125,22 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + DateRangeEndDate + > Applicable: Microsoft Teams The end date of removing schedule record. String @@ -65448,6 +72153,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 DateRangeStartDate + > Applicable: Microsoft Teams The start date of removing schedule record. String @@ -65460,6 +72166,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 DesignatedActorId + > Applicable: Microsoft Teams The user ID of designated actor. String @@ -65472,6 +72179,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 EntityType + > Applicable: Microsoft Teams The entity types. String[] @@ -65481,54 +72189,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - TeamId - - The Teams team ID where you want to remove schedule record. - - String - - String - - - None - - - Body - - The request body. - - IClearScheduleRequest - - IClearScheduleRequest - - - None - - - Break - - Wait for .NET debugger to attach. - - SwitchParameter - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - HttpPipelineAppend @@ -65601,6 +72261,19 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False + + TeamId + + > Applicable: Microsoft Teams + The Teams team ID where you want to remove schedule record. + + String + + String + + + None + TimeZone @@ -65645,7 +72318,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamsshiftsschedulerecord + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftsschedulerecord @@ -65655,10 +72328,12 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Remove CsTeamsSurvivableBranchAppliance - The Survivable Branch Appliance (SBA) cmdlets facilitate the continuation of Teams Phone operations, allowing for the placement and reception of Public Switched Telephone Network (PSTN) calls during service disruptions. These cmdlets are exclusively intended for Tenant Administrators and Session Border Controller (SBC) Vendors. In the absence of SBA configuration within a Tenant, the cmdlets will be inoperative. + Removes a Survivable Branch Appliance (SBA) from the tenant. - + + The Survivable Branch Appliance (SBA) cmdlets facilitate the continuation of Teams Phone operations, allowing for the placement and reception of Public Switched Telephone Network (PSTN) calls during service disruptions. These cmdlets are exclusively intended for Tenant Administrators and Session Border Controller (SBC) Vendors. In the absence of SBA configuration within a Tenant, the cmdlets will be inoperative. + Remove-CsTeamsSurvivableBranchAppliance @@ -65789,7 +72464,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamssurvivablebranchappliance + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamssurvivablebranchappliance @@ -65799,10 +72474,12 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Remove CsTeamsSurvivableBranchAppliancePolicy - The Survivable Branch Appliance (SBA) Policy cmdlets facilitate the continuation of Teams Phone operations, allowing for the placement and reception of Public Switched Telephone Network (PSTN) calls during service disruptions. These cmdlets are exclusively intended for Tenant Administrators and Session Border Controller (SBC) Vendors. In the absence of SBA configuration within a Tenant, the cmdlets will be inoperative. + Removes a Survivable Branch Appliance (SBA) policy from the tenant. - + + The Survivable Branch Appliance (SBA) Policy cmdlets facilitate the continuation of Teams Phone operations, allowing for the placement and reception of Public Switched Telephone Network (PSTN) calls during service disruptions. These cmdlets are exclusively intended for Tenant Administrators and Session Border Controller (SBC) Vendors. In the absence of SBA configuration within a Tenant, the cmdlets will be inoperative. + Remove-CsTeamsSurvivableBranchAppliancePolicy @@ -65933,7 +72610,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamssurvivablebranchappliancepolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamssurvivablebranchappliancepolicy @@ -66087,15 +72764,15 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamstargetingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamstargetingpolicy Get-CsTargetingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamstargetingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamstargetingpolicy Set-CsTargetingPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamstargetingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstargetingpolicy @@ -66126,10 +72803,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - WhatIf + + Confirm - Describes what would happen if you executed the command without actually executing the command. The cmdlet is not run. + Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -66137,10 +72814,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + Describes what would happen if you executed the command without actually executing the command. The cmdlet is not run. SwitchParameter @@ -66151,6 +72828,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + Identity @@ -66175,18 +72864,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - @@ -66214,23 +72891,23 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamstranslationrule + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamstranslationrule New-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/teams/new-csteamstranslationrule + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamstranslationrule Get-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/teams/get-csteamstranslationrule + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamstranslationrule Set-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/teams/set-csteamstranslationrule + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstranslationrule Test-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/teams/test-csteamstranslationrule + https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamstranslationrule @@ -66314,23 +72991,23 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamsunassignednumbertreatment + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsunassignednumbertreatment Get-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/teams/get-csteamsunassignednumbertreatment + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsunassignednumbertreatment New-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/teams/new-csteamsunassignednumbertreatment + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsunassignednumbertreatment Set-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/teams/set-csteamsunassignednumbertreatment + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsunassignednumbertreatment Test-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/teams/test-csteamsunassignednumbertreatment + https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsunassignednumbertreatment @@ -66484,23 +73161,23 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamsworkloadpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsworkloadpolicy Set-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/teams/set-csteamsworkloadpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsworkloadpolicy Get-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsworkloadpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsworkloadpolicy New-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsworkloadpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsworkloadpolicy Grant-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsworkloadpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsworkloadpolicy @@ -66513,29 +73190,30 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 This cmdlet deletes a specified Team Template from Microsoft Teams. - + + This cmdlet deletes a specified Team Template from Microsoft Teams. The template can be identified by its OData ID or by using the Identity parameter. + Remove-CsTeamTemplate - - InputObject + + Break - Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + Wait for .NET debugger to attach - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + SwitchParameter - None + False - - Break + + Confirm - Wait for .NET debugger to attach + Prompts you for confirmation before running the cmdlet. - SwitchParameter + System.Management.Automation.SwitchParameter False @@ -66564,6 +73242,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None + + InputObject + + Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + None + Proxy @@ -66599,17 +73289,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - WhatIf @@ -66624,25 +73303,24 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Remove-CsTeamTemplate - - OdataId + + Break - A composite URI of a template. + Wait for .NET debugger to attach - System.String - System.String + SwitchParameter - None + False - - Break + + Confirm - Wait for .NET debugger to attach + Prompts you for confirmation before running the cmdlet. - SwitchParameter + System.Management.Automation.SwitchParameter False @@ -66671,6 +73349,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None + + OdataId + + A composite URI of a template. + + System.String + + System.String + + + None + Proxy @@ -66706,17 +73396,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - WhatIf @@ -66731,38 +73410,26 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - - InputObject - - Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity - - - None - - - OdataId + + Break - A composite URI of a template. + Wait for .NET debugger to attach - System.String + SwitchParameter - System.String + SwitchParameter - None + False - - Break + + Confirm - Wait for .NET debugger to attach + Prompts you for confirmation before running the cmdlet. - SwitchParameter + System.Management.Automation.SwitchParameter - SwitchParameter + System.Management.Automation.SwitchParameter False @@ -66791,6 +73458,30 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None + + InputObject + + Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + None + + + OdataId + + A composite URI of a template. + + System.String + + System.String + + + None + Proxy @@ -66827,18 +73518,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - WhatIf @@ -66927,27 +73606,27 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csteamtemplate + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamtemplate Get-CsTeamTemplateList - https://learn.microsoft.com/powershell/module/teams/get-csteamtemplatelist + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplatelist Get-CsTeamTemplate - https://learn.microsoft.com/powershell/module/teams/get-csteamtemplate + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplate New-CsTeamTemplate - https://learn.microsoft.com/powershell/module/teams/new-csteamtemplate + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamtemplate Update-CsTeamTemplate - https://learn.microsoft.com/powershell/module/teams/update-csteamtemplate + https://learn.microsoft.com/powershell/module/microsoftteams/update-csteamtemplate Remove-CsTeamTemplate - https://learn.microsoft.com/powershell/module/teams/remove-csteamtemplate + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamtemplate @@ -66970,6 +73649,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Identity + > Applicable: Microsoft Teams The Identity parameter is the unique identifier of the tenant dial plan to remove. String @@ -66982,6 +73662,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Confirm + > Applicable: Microsoft Teams The Confirm parameter prompts you for confirmation before the command is executed. @@ -66993,6 +73674,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 WhatIf + > Applicable: Microsoft Teams The WhatIf parameter describes what would happen if you executed the command, without actually executing the command. @@ -67004,21 +73686,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - - Identity - - The Identity parameter is the unique identifier of the tenant dial plan to remove. - - String - - String - - - None - Confirm + > Applicable: Microsoft Teams The Confirm parameter prompts you for confirmation before the command is executed. SwitchParameter @@ -67028,9 +73699,23 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False + + Identity + + > Applicable: Microsoft Teams + The Identity parameter is the unique identifier of the tenant dial plan to remove. + + String + + String + + + None + WhatIf + > Applicable: Microsoft Teams The WhatIf parameter describes what would happen if you executed the command, without actually executing the command. SwitchParameter @@ -67060,23 +73745,23 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-cstenantdialplan + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantdialplan Grant-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/teams/grant-cstenantdialplan + https://learn.microsoft.com/powershell/module/microsoftteams/grant-cstenantdialplan New-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/teams/new-cstenantdialplan + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantdialplan Set-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/teams/set-cstenantdialplan + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantdialplan Get-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/teams/get-cstenantdialplan + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantdialplan @@ -67133,18 +73818,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - - Identity - - Unique identifier for the network region to be removed. - - String - - String - - - None - Confirm @@ -67157,6 +73830,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False + + Identity + + Unique identifier for the network region to be removed. + + String + + String + + + None + WhatIf @@ -67198,19 +73883,19 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-cstenantnetworkregion + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworkregion New-CsTenantNetworkRegion - https://learn.microsoft.com/powershell/module/teams/new-cstenantnetworkregion + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworkregion Get-CsTenantNetworkRegion - https://learn.microsoft.com/powershell/module/teams/get-cstenantnetworkregion + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworkregion Set-CsTenantNetworkRegion - https://learn.microsoft.com/powershell/module/teams/set-cstenantnetworkregion + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworkregion @@ -67267,18 +73952,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - - Identity - - Unique identifier for the network site to be removed. - - String - - String - - - None - Confirm @@ -67291,6 +73964,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False + + Identity + + Unique identifier for the network site to be removed. + + String + + String + + + None + WhatIf @@ -67332,19 +74017,19 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-cstenantnetworksite + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworksite New-CsTenantNetworkSite - https://learn.microsoft.com/powershell/module/teams/new-cstenantnetworksite + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworksite Get-CsTenantNetworkSite - https://learn.microsoft.com/powershell/module/teams/get-cstenantnetworksite + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworksite Set-CsTenantNetworkSite - https://learn.microsoft.com/powershell/module/teams/set-cstenantnetworksite + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworksite @@ -67401,18 +74086,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - - Identity - - Unique identifier for the network subnet to be removed. - - String - - String - - - None - Confirm @@ -67425,6 +74098,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False + + Identity + + Unique identifier for the network subnet to be removed. + + String + + String + + + None + WhatIf @@ -67457,19 +74142,19 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-cstenantnetworksubnet + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworksubnet New-CsTenantNetworkSubnet - https://learn.microsoft.com/powershell/module/teams/new-cstenantnetworksubnet + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworksubnet Get-CsTenantNetworkSubnet - https://learn.microsoft.com/powershell/module/teams/get-cstenantnetworksubnet + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworksubnet Set-CsTenantNetworkSubnet - https://learn.microsoft.com/powershell/module/teams/set-cstenantnetworksubnet + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworksubnet @@ -67653,7 +74338,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-cstenanttrustedipaddress + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenanttrustedipaddress @@ -67684,6 +74369,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + Identity @@ -67711,6 +74408,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + Identity @@ -67763,19 +74472,19 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csusercallingdelegate + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csusercallingdelegate Get-CsUserCallingSettings - https://learn.microsoft.com/powershell/module/teams/get-csusercallingsettings + https://learn.microsoft.com/powershell/module/microsoftteams/get-csusercallingsettings New-CsUserCallingDelegate - https://learn.microsoft.com/powershell/module/teams/new-csusercallingdelegate + https://learn.microsoft.com/powershell/module/microsoftteams/new-csusercallingdelegate Set-CsUserCallingDelegate - https://learn.microsoft.com/powershell/module/teams/set-csusercallingdelegate + https://learn.microsoft.com/powershell/module/microsoftteams/set-csusercallingdelegate @@ -67808,10 +74517,10 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - Capability + + Action - Denotes the plan(s) assigned to the specified user, which are to be permanently deleted if they are currently serving their grace period. + Used to specify which action should be taken. String @@ -67820,21 +74529,34 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - Confirm + + Body - Prompts you for confirmation before running the cmdlet. + Specifies the body of the request. + IUserDelicensingAccelerationPatch - SwitchParameter + IUserDelicensingAccelerationPatch - False + None - - PassThru + + Capability - Returns the results of the command. By default, this cmdlet does not generate any output. + Denotes the plan(s) assigned to the specified user, which are to be permanently deleted if they are currently serving their grace period. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -67855,36 +74577,23 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - Action - - Used to specify which action should be taken. - - String - - String - - - None - - - Body + PassThru - Specifies the body of the request. + Returns the results of the command. By default, this cmdlet does not generate any output. - IUserDelicensingAccelerationPatch - IUserDelicensingAccelerationPatch + SwitchParameter - None + False - - Identity + + Action - Specifies the Identity (GUID) of the user account whose assigned plan grace period needs to be removed, permanently deleting the subsequent plan. + Used to specify which action should be taken. String @@ -67893,6 +74602,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None + + Body + + Specifies the body of the request. + + IUserDelicensingAccelerationPatch + + IUserDelicensingAccelerationPatch + + + None + Capability @@ -67917,17 +74638,17 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - PassThru + + Identity - Returns the results of the command. By default, this cmdlet does not generate any output. + Specifies the Identity (GUID) of the user account whose assigned plan grace period needs to be removed, permanently deleting the subsequent plan. - SwitchParameter + String - SwitchParameter + String - False + None InputObject @@ -67942,28 +74663,16 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - Action - - Used to specify which action should be taken. - - String - - String - - - None - - - Body + PassThru - Specifies the body of the request. + Returns the results of the command. By default, this cmdlet does not generate any output. - IUserDelicensingAccelerationPatch + SwitchParameter - IUserDelicensingAccelerationPatch + SwitchParameter - None + False @@ -68005,7 +74714,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Get-CsOnlineUser - https://learn.microsoft.com/powershell/module/teams/get-csonlineuser + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineuser @@ -68015,12 +74724,12 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Remove CsVideoInteropServiceProvider - Cloud Video Interop for Teams enables 3rd party VTC devices to be able to join Teams meetings. The CsVideoInteropServiceProvider cmdlets allow you to designate provider/tenant specific information about the connection to the provider. + Use the Remove-CsVideoInteropServiceProvider to remove all provider information about a provider that your organization no longer uses. Cloud Video Interop for Teams enables 3rd party VTC devices to be able to join Teams meetings. The CsVideoInteropServiceProvider cmdlets allow you to designate provider/tenant specific information about the connection to the provider. - Use the Remove-CsVideoInteropServiceProvider to remove all provider information about a provider that your organization no longer uses. The only input is Identity - the provider you wish to remove. + The only input is Identity - the provider you wish to remove. @@ -68082,7 +74791,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/remove-csvideointeropserviceprovider + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csvideointeropserviceprovider @@ -68174,18 +74883,6 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - - Identity - - Unique identifier assigned to the policy when it was created. - - XdsIdentity - - XdsIdentity - - - None - AppIds @@ -68222,6 +74919,18 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None + + Identity + + Unique identifier assigned to the policy when it was created. + + XdsIdentity + + XdsIdentity + + + None + MsftInternalProcessingMode @@ -68273,23 +74982,23 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csapplicationaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csapplicationaccesspolicy New-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/teams/new-csapplicationaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy Grant-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/teams/new-csapplicationaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy Get-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/teams/new-csapplicationaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy Remove-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/teams/new-csapplicationaccesspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy @@ -68320,33 +75029,34 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 None - - Instance + + AllowRemoveParticipantAppIds - Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. + A list of application (client) IDs. For details of application (client) ID, refer to: Get tenant and app ID values for signing in (https://learn.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal#get-tenant-and-app-id-values-for-signing-in). - PSObject + PSListModifier - PSObject + PSListModifier None - - AllowRemoveParticipantAppIds + + Confirm - A list of application (client) IDs. For details of application (client) ID, refer to: Get tenant and app ID values for signing in (https://learn.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal#get-tenant-and-app-id-values-for-signing-in). + > Applicable: Teams + Prompts you for confirmation before executing the command. - PSListModifier - PSListModifier + SwitchParameter - None + False Force + > Applicable: Teams Suppresses the display of any non-fatal error message that might occur when running the command. @@ -68355,21 +75065,24 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 False - - WhatIf + + Instance - Describes what would happen if you executed the command without actually executing the command. + > Applicable: Teams + Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. + PSObject - SwitchParameter + PSObject - False + None - - Confirm + + WhatIf - Prompts you for confirmation before executing the command. + > Applicable: Teams + Describes what would happen if you executed the command without actually executing the command. SwitchParameter @@ -68380,70 +75093,74 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 - - Identity + + AllowRemoveParticipantAppIds - Unique identifier of the application meeting configuration settings to be returned. Because you can only have a single, global instance of these settings, you do not have to include the Identity when calling the Set-CsApplicationMeetingConfiguration cmdlet. However, you can use the following syntax to retrieve the global settings: -Identity global. + A list of application (client) IDs. For details of application (client) ID, refer to: Get tenant and app ID values for signing in (https://learn.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal#get-tenant-and-app-id-values-for-signing-in). - XdsIdentity + PSListModifier - XdsIdentity + PSListModifier None - - Instance + + Confirm - Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. + > Applicable: Teams + Prompts you for confirmation before executing the command. - PSObject + SwitchParameter - PSObject + SwitchParameter - None + False - AllowRemoveParticipantAppIds + Force - A list of application (client) IDs. For details of application (client) ID, refer to: Get tenant and app ID values for signing in (https://learn.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal#get-tenant-and-app-id-values-for-signing-in). + > Applicable: Teams + Suppresses the display of any non-fatal error message that might occur when running the command. - PSListModifier + SwitchParameter - PSListModifier + SwitchParameter - None + False - - Force + + Identity - Suppresses the display of any non-fatal error message that might occur when running the command. + Unique identifier of the application meeting configuration settings to be returned. Because you can only have a single, global instance of these settings, you do not have to include the Identity when calling the Set-CsApplicationMeetingConfiguration cmdlet. However, you can use the following syntax to retrieve the global settings: -Identity global. - SwitchParameter + XdsIdentity - SwitchParameter + XdsIdentity - False + None - - WhatIf + + Instance - Describes what would happen if you executed the command without actually executing the command. + > Applicable: Teams + Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. - SwitchParameter + PSObject - SwitchParameter + PSObject - False + None - - Confirm + + WhatIf - Prompts you for confirmation before executing the command. + > Applicable: Teams + Describes what would happen if you executed the command without actually executing the command. SwitchParameter @@ -68497,11 +75214,11 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Online Version: - https://learn.microsoft.com/powershell/module/teams/set-CsApplicationMeetingConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-CsApplicationMeetingConfiguration Get-CsApplicationMeetingConfiguration - https://learn.microsoft.com/powershell/module/teams/get-csapplicationmeetingconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-csapplicationmeetingconfiguration @@ -68523,6 +75240,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Instance + > Applicable: Microsoft Teams The Instance parameter is the object reference to the AA to be modified. You can retrieve an object reference to an existing AA by using the Get-CsAutoAttendant cmdlet and assigning the returned value to a variable. @@ -68536,7 +75254,8 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -68551,6 +75270,7 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Instance + > Applicable: Microsoft Teams The Instance parameter is the object reference to the AA to be modified. You can retrieve an object reference to an existing AA by using the Get-CsAutoAttendant cmdlet and assigning the returned value to a variable. @@ -68564,7 +75284,8 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -68692,27 +75413,27 @@ Set-CsAutoAttendant -Instance $autoAttendant Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csautoattendant + https://learn.microsoft.com/powershell/module/microsoftteams/set-csautoattendant New-CsAutoAttendant - https://learn.microsoft.com/powershell/module/teams/new-csautoattendant + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendant Get-CsAutoAttendant - https://learn.microsoft.com/powershell/module/teams/get-csautoattendant + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendant Get-CsAutoAttendantStatus - https://learn.microsoft.com/powershell/module/teams/get-csautoattendantstatus + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantstatus Remove-CsAutoAttendant - https://learn.microsoft.com/powershell/module/teams/remove-csautoattendant + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csautoattendant Update-CsAutoAttendant - https://learn.microsoft.com/powershell/module/teams/update-csautoattendant + https://learn.microsoft.com/powershell/module/microsoftteams/update-csautoattendant @@ -68736,6 +75457,7 @@ Set-CsAutoAttendant -Instance $autoAttendant Identity + > Applicable: Microsoft Teams The Identity parameter identifies the Caller ID policy. String @@ -68748,6 +75470,7 @@ Set-CsAutoAttendant -Instance $autoAttendant BlockIncomingPstnCallerID + > Applicable: Microsoft Teams The BlockIncomingPstnCallerID switch determines whether to block the incoming Caller ID. The default value is false. The BlockIncomingPstnCallerID switch is specific to incoming calls from a PSTN caller to a user. If this is set to True and if this policy is assigned to a Teams user, then Caller ID for incoming calls is suppressed/anonymous. @@ -68761,6 +75484,7 @@ Set-CsAutoAttendant -Instance $autoAttendant CallingIDSubstitute + > Applicable: Microsoft Teams The CallingIDSubstitute parameter lets you specify an alternate Caller ID. The possible values are Anonymous, LineUri and Resource. CallingIDSubstituteType @@ -68773,6 +75497,7 @@ Set-CsAutoAttendant -Instance $autoAttendant CompanyName + > Applicable: Microsoft Teams This parameter sets the Calling party name (typically referred to as CNAM) on the outgoing PSTN call. String @@ -68782,9 +75507,22 @@ Set-CsAutoAttendant -Instance $autoAttendant None + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing, and requires confirmation to proceed. + + + SwitchParameter + + + False + Description + > Applicable: Microsoft Teams The Description parameter briefly describes the Caller ID policy. String @@ -68797,6 +75535,7 @@ Set-CsAutoAttendant -Instance $autoAttendant EnableUserOverride + > Applicable: Microsoft Teams The EnableUserOverride parameter gives Microsoft Teams users the option under Settings and Calls to hide their phone number when making outgoing calls. The CallerID will be Anonymous. If CallingIDSubstitute is set to Anonymous, the EnableUserOverride parameter has no effect, and the caller ID is always set to Anonymous. EnableUserOverride has precedence over other settings in the policy unless substitution is set to Anonymous. For example, assume the policy instance has substitution using a resource account and EnableUserOverride is set and enabled by the user. In this case, the outbound caller ID will be blocked and Anonymous will be used. @@ -68811,6 +75550,7 @@ Set-CsAutoAttendant -Instance $autoAttendant ResourceAccount + > Applicable: Microsoft Teams This parameter specifies the ObjectId of a resource account/online application instance used for Teams Auto Attendant or Call Queue. The outgoing PSTN call will use the phone number defined on the resource account as caller id. For more information about resource accounts please see https://learn.microsoft.com/microsoftteams/manage-resource-accounts. Guid @@ -68823,6 +75563,7 @@ Set-CsAutoAttendant -Instance $autoAttendant WhatIf + > Applicable: Microsoft Teams The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. @@ -68831,23 +75572,13 @@ Set-CsAutoAttendant -Instance $autoAttendant False - - Confirm - - The Confirm switch causes the command to pause processing, and requires confirmation to proceed. - - - SwitchParameter - - - False - BlockIncomingPstnCallerID + > Applicable: Microsoft Teams The BlockIncomingPstnCallerID switch determines whether to block the incoming Caller ID. The default value is false. The BlockIncomingPstnCallerID switch is specific to incoming calls from a PSTN caller to a user. If this is set to True and if this policy is assigned to a Teams user, then Caller ID for incoming calls is suppressed/anonymous. @@ -68861,6 +75592,7 @@ Set-CsAutoAttendant -Instance $autoAttendant CallingIDSubstitute + > Applicable: Microsoft Teams The CallingIDSubstitute parameter lets you specify an alternate Caller ID. The possible values are Anonymous, LineUri and Resource. CallingIDSubstituteType @@ -68873,6 +75605,7 @@ Set-CsAutoAttendant -Instance $autoAttendant CompanyName + > Applicable: Microsoft Teams This parameter sets the Calling party name (typically referred to as CNAM) on the outgoing PSTN call. String @@ -68882,9 +75615,23 @@ Set-CsAutoAttendant -Instance $autoAttendant None + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing, and requires confirmation to proceed. + + SwitchParameter + + SwitchParameter + + + False + Description + > Applicable: Microsoft Teams The Description parameter briefly describes the Caller ID policy. String @@ -68897,6 +75644,7 @@ Set-CsAutoAttendant -Instance $autoAttendant EnableUserOverride + > Applicable: Microsoft Teams The EnableUserOverride parameter gives Microsoft Teams users the option under Settings and Calls to hide their phone number when making outgoing calls. The CallerID will be Anonymous. If CallingIDSubstitute is set to Anonymous, the EnableUserOverride parameter has no effect, and the caller ID is always set to Anonymous. EnableUserOverride has precedence over other settings in the policy unless substitution is set to Anonymous. For example, assume the policy instance has substitution using a resource account and EnableUserOverride is set and enabled by the user. In this case, the outbound caller ID will be blocked and Anonymous will be used. @@ -68911,6 +75659,7 @@ Set-CsAutoAttendant -Instance $autoAttendant Identity + > Applicable: Microsoft Teams The Identity parameter identifies the Caller ID policy. String @@ -68923,6 +75672,7 @@ Set-CsAutoAttendant -Instance $autoAttendant ResourceAccount + > Applicable: Microsoft Teams This parameter specifies the ObjectId of a resource account/online application instance used for Teams Auto Attendant or Call Queue. The outgoing PSTN call will use the phone number defined on the resource account as caller id. For more information about resource accounts please see https://learn.microsoft.com/microsoftteams/manage-resource-accounts. Guid @@ -68935,6 +75685,7 @@ Set-CsAutoAttendant -Instance $autoAttendant WhatIf + > Applicable: Microsoft Teams The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. SwitchParameter @@ -68944,18 +75695,6 @@ Set-CsAutoAttendant -Instance $autoAttendant False - - Confirm - - The Confirm switch causes the command to pause processing, and requires confirmation to proceed. - - SwitchParameter - - SwitchParameter - - - False - @@ -68998,23 +75737,23 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource Online Version: - https://learn.microsoft.com/powershell/module/teams/set-cscallinglineidentity + https://learn.microsoft.com/powershell/module/microsoftteams/set-cscallinglineidentity Get-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/teams/get-cscallinglineidentity + https://learn.microsoft.com/powershell/module/microsoftteams/get-cscallinglineidentity Grant-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/teams/grant-cscallinglineidentity + https://learn.microsoft.com/powershell/module/microsoftteams/grant-cscallinglineidentity New-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/teams/new-cscallinglineidentity + https://learn.microsoft.com/powershell/module/microsoftteams/new-cscallinglineidentity Remove-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/teams/remove-cscallinglineidentity + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cscallinglineidentity @@ -69031,26 +75770,15 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource Set-CsCallQueue cmdlet provides a way for you to modify the properties of an existing Call Queue; for example, you can change the name for the Call Queue, the distribution lists associated with the Call Queue, or the welcome audio file. The Set-CsCallQueue cmdlet may suggest additional steps required to complete the Call Queue setup. Note that this cmdlet is in the Skype for Business Online PowerShell module and also affects Teams. The reason the "Applies To:" is stated as Skype for Business Online is because it must match the actual module name of the cmdlet. To learn how this cmdlet is used with Skype for Business Online and Teams, see https://learn.microsoft.com/microsoftteams/create-a-phone-system-call-queue. - > [!CAUTION] > The following configuration parameters are currently only available in PowerShell and do not appear in Teams admin center. Saving a call queue configuration through Teams admin center will remove any of these configured items. > > - -HideAuthorizedUsers > - -OverflowRedirectPersonTextToSpeechPrompt > - -OverflowRedirectPersonAudioFilePrompt > - -OverflowRedirectVoicemailTextToSpeechPrompt > - -OverflowRedirectVoicemailAudioFilePrompt > - -TimeoutRedirectPersonTextToSpeechPrompt > - -TimeoutRedirectPersonAudioFilePrompt > - -TimeoutRedirectVoicemailTextToSpeechPrompt > - -TimeoutRedirectVoicemailAudioFilePrompt > - -NoAgentRedirectPersonTextToSpeechPrompt > - -NoAgentRedirectPersonAudioFilePrompt > - -NoAgentRedirectVoicemailTextToSpeechPrompt > - -NoAgentRedirectVoicemailAudioFilePrompt > > The following configuration parameters will only work for customers that are participating in the Voice Applications private preview for these features. General Availability for this functionality has not been determined at this time. > > - -OverflowActionCallPriority > - -TimeoutActionCallPriority > - -NoAgentActionCallPriority > - -ShiftsTeamId > - -ShiftsSchedulingGroupId > > Nesting Auto attendants and Call queues (/microsoftteams/plan-auto-attendant-call-queue#nested-auto-attendants-and-call-queues) without a resource account isn't currently supported for [Authorized users](/microsoftteams/aa-cq-authorized-users-plan)in Queues App. If you nest an Auto attendant or Call queue without a resource account, authorized users can't edit the auto attendant or call queue. + > [!CAUTION] > The following configuration parameters are currently only available in PowerShell and do not appear in Teams admin center. Saving a call queue configuration through Teams admin center will remove any of these configured items. > > - -HideAuthorizedUsers > - -OverflowActionCallPriority > - -OverflowRedirectPersonTextToSpeechPrompt > - -OverflowRedirectPersonAudioFilePrompt > - -OverflowRedirectVoicemailTextToSpeechPrompt > - -OverflowRedirectVoicemailAudioFilePrompt > - -TimeoutActionCallPriority > - -TimeoutRedirectPersonTextToSpeechPrompt > - -TimeoutRedirectPersonAudioFilePrompt > - -TimeoutRedirectVoicemailTextToSpeechPrompt > - -TimeoutRedirectVoicemailAudioFilePrompt > - -NoAgentActionCallPriority > - -NoAgentRedirectPersonTextToSpeechPrompt > - -NoAgentRedirectPersonAudioFilePrompt > - -NoAgentRedirectVoicemailTextToSpeechPrompt > - -NoAgentRedirectVoicemailAudioFilePrompt > > The following configuration parameters will only work for customers that are participating in the Voice Applications private preview for these features. General Availability for this functionality has not been determined at this time. > > - -ComplianceRecordingForCallQueueTemplateId > - -TextAnnouncementForCR > - -CustomAudioFileAnnouncementForCR > - -TextAnnouncementForCRFailure > - -CustomAudioFileAnnouncementForCRFailure > - -SharedCallQueueHistoryTemplateId > > Nesting Auto attendants and Call queues (/microsoftteams/plan-auto-attendant-call-queue#nested-auto-attendants-and-call-queues) without a resource account isn't currently supported for [Authorized users](/microsoftteams/aa-cq-authorized-users-plan)in Queues App. If you nest an Auto attendant or Call queue without a resource account, authorized users can't edit the auto attendant or call queue. > > Authorized users can't edit call flows with call priorities at this time. Set-CsCallQueue - - Identity - - PARAMVALUE: Guid - - Object - - Object - - - None - AgentAlertTime + > Applicable: Microsoft Teams The AgentAlertTime parameter represents the time (in seconds) that a call can remain unanswered before it is automatically routed to the next agent. The AgentAlertTime can be set to any integer value between 15 and 180 seconds (3 minutes), inclusive. Int16 @@ -69063,6 +75791,7 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource AllowOptOut + > Applicable: Microsoft Teams The AllowOptOut parameter indicates whether or not agents can opt in or opt out from taking calls from a Call Queue. Boolean @@ -69073,9 +75802,10 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource True - DistributionLists + AuthorizedUsers - The DistributionLists parameter lets you add all the members of the distribution lists to the Call Queue. This is a list of distribution list GUIDs. A service wide configurable maximum number of DLs per Call Queue are allowed. Only the first N (service wide configurable) agents from all distribution lists combined are considered for accepting the call. Nested DLs are supported. O365 Groups can also be used to add members to the Call Queue. + > Applicable: Microsoft Teams + This is a list of GUIDs for users who are authorized to make changes to this call queue. The users must also have a TeamsVoiceApplications policy assigned. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). List @@ -69085,9 +75815,10 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - MusicOnHoldAudioFileId + CallbackEmailNotificationTarget - The MusicOnHoldFileContent parameter represents music to play when callers are placed on hold. This is the unique identifier of the audio file. This parameter is required if the UseDefaultMusicOnHold parameter is not specified. + > Applicable: Microsoft Teams + The CallbackEmailNotificationTarget parameter must be set to a group ID (Microsoft 365, Distribution list, or Mail-enabled security) that will receive notification if a callback times out of the call queue or can't be completed for some other reason. This parameter becomes a required parameter when IsCallbackEnabled is set to `True`. Guid @@ -69097,9 +75828,23 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - Name + CallbackOfferAudioFilePromptResourceId - The Name parameter specifies a unique name for the Call Queue. + > Applicable: Microsoft Teams + The CallbackOfferAudioFilePromptResourceId parameter indicates the unique identifier for the Audio file prompt which is played to calls that are eligible for callback. This message should tell callers which DTMF touch-tone key (CallbackRequestDtmf) to press to select callback. This parameter, or `-CallbackOfferTextToSpeechPrompt`, becomes a required parameter when IsCallbackEnabled is set to `True`. + + Guid + + Guid + + + None + + + CallbackOfferTextToSpeechPrompt + + > Applicable: Microsoft Teams + The CallbackOfferTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to calls that are eligible for callback. This message should tell callers which DTMF touch-tone key (CallbackRequestDtmf) to press to select callback. This parameter, or `-CallbackOfferAudioFilePromptResourceId`, becomes a required parameter when IsCallbackEnabled is set to `True`. String @@ -69109,34 +75854,40 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - OboResourceAccountIds + CallbackRequestDtmf - The OboResourceAccountIds parameter lets you add resource account with phone number to the Call Queue. The agents in the Call Queue will be able to make outbound calls using the phone number on the resource accounts. This is a list of resource account GUIDs. + The DTMF touch-tone key the caller will be told to press to select callback. The CallbackRequestDtmf must be set to one of the following values: + - Tone0 to Tone9 - Corresponds to DTMF tones from 0 to 9. + - ToneStar - Corresponds to DTMF tone *. + - TonePound - Corresponds to DTMF tone #. + + This parameter becomes a required parameter when IsCallbackEnabled is set to `True`. - List + String - List + String None - OverflowAction + CallToAgentRatioThresholdBeforeOfferingCallback - The OverflowAction parameter designates the action to take if the overflow threshold is reached. The OverflowAction property must be set to one of the following values: DisconnectWithBusy, Forward, Voicemail, and SharedVoicemail. The default value is DisconnectWithBusy. - PARAMVALUE: DisconnectWithBusy | Forward | Voicemail | SharedVoicemail + The ratio of calls to agents that must be in queue before a call becomes eligible for callback. This condition applies to calls arriving at the call queue. Minimum value of one (1). Set to null ($null) to disable this condition. + At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. - Object + Int16 - Object + Int16 - DisconnectWithBusy + None - OverflowActionTarget + ChannelId - The OverflowActionTarget parameter represents the target of the overflow action. If the OverFlowAction is set to Forward, this parameter must be set to a Guid or a telephone number with a mandatory 'tel:' prefix. If the OverflowAction is set to SharedVoicemail, this parameter must be set to a group ID (Microsoft 365, Distribution list, or Mail-enabled security). Otherwise, this parameter is optional. + > Applicable: Microsoft Teams + Id of the channel to connect a call queue to. String @@ -69146,64 +75897,203 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - OverflowActionCallPriority + ChannelUserObjectId - Voice applications private preview customers only Saving a call queue configuration through Teams admin center will *remove* this setting. If the OverflowAction is set to Forward, and the OverflowActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. - PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High - - 2 = High - - 3 = Normal / Default - - 4 = Low - - 5 = Very Low + > Applicable: Microsoft Teams + The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). This is the GUID of one of the owners of the team that the channel belongs to. - Int16 + Guid - Int16 + Guid None - OverflowThreshold + ComplianceRecordingForCallQueueTemplateId - The OverflowThreshold parameter defines the number of calls that can be in the queue at any one time before the overflow action is triggered. The OverflowThreshold can be any integer value between 0 and 200, inclusive. A value of 0 causes calls not to reach agents and the overflow action to be taken immediately. + Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The ComplianceRecordingForCallQueueTemplateId parameter indicates a list of up to 2 Compliance Recording for Call Queue templates to apply to the call queue. - Int16 + List + + List + + + None + + + ConferenceMode + + > Applicable: Microsoft Teams + The ConferenceMode parameter indicates whether or not Conference mode will be applied on calls for this Call queue. Conference mode significantly reduces the amount of time it takes for a caller to be connected to an agent, after the agent accepts the call. The following bullet points detail the difference between both modes: + - Conference Mode Disabled: CQ call is presented to agent. Agent answers and media streams are setup. Based on geographic location of the CQ call and agent, there may be a slight delay in setting up the media streams which may result in some dead air and the first part of the conversation being cut off. + - Conference Mode Enabled: CQ call is put into conference. Agent answers and is brought into conference. Media streams are already setup when agent is brought into conference thus no dead air, and first bit of conversation will not be cut off. + + Boolean + + Boolean + + + False + + + CustomAudioFileAnnouncementForCR + + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The CustomAudioFileAnnouncementForCR parameter indicates the unique identifier for the Audio file prompt which is played to callers when compliance recording for call queues is enabled. + + Guid + + Guid + + + None + + + CustomAudioFileAnnouncementForCRFailure + + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The CustomAudioFileAnnouncementForCRFailure parameter indicates the unique identifier for the Audio file prompt which is played to callers if the compliance recording for call queue bot is unable to join or drops from the call. + + Guid + + Guid + + + None + + + DistributionLists + + > Applicable: Microsoft Teams + The DistributionLists parameter lets you add all the members of the distribution lists to the Call Queue. This is a list of distribution list GUIDs. A service wide configurable maximum number of DLs per Call Queue are allowed. Only the first N (service wide configurable) agents from all distribution lists combined are considered for accepting the call. Nested DLs are supported. O365 Groups can also be used to add members to the Call Queue. + + List + + List + + + None + + + EnableNoAgentSharedVoicemailSystemPromptSuppression + + > Applicable: Microsoft Teams + The EnableNoAgentSharedVoicemailSystemPromptSuppression parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when NoAgentAction is set to SharedVoicemail. + + Boolean + + Boolean + + + False + + + EnableNoAgentSharedVoicemailTranscription + + > Applicable: Microsoft Teams + The EnableNoAgentSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on no agents. This parameter is only applicable when NoAgentAction is set to SharedVoicemail. + + Boolean + + Boolean + + + False + + + EnableOverflowSharedVoicemailSystemPromptSuppression + + > Applicable: Microsoft Teams + The EnableOverflowSharedVoicemailSystemPromptSuppress parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when OverflowAction is set to SharedVoicemail. + + Boolean + + Boolean + + + False + + + EnableOverflowSharedVoicemailTranscription + + > Applicable: Microsoft Teams + The EnableOverflowSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on overflow. This parameter is only applicable when OverflowAction is set to SharedVoicemail. + + Boolean + + Boolean + + + False + + + EnableTimeoutSharedVoicemailSystemPromptSuppression + + > Applicable: Microsoft Teams + The EnableTimeoutSharedVoicemailSystemPromptSuppression parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when OverflowAction is set to SharedVoicemail. + + Boolean + + Boolean + + + False + + + EnableTimeoutSharedVoicemailTranscription + + > Applicable: Microsoft Teams + The EnableTimeoutSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on timeout. This parameter is only applicable when TimeoutAction is set to SharedVoicemail. + + Boolean + + Boolean + + + False + + + HideAuthorizedUsers + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. This is a list of GUIDs of authorized users who should not appear on the list of supervisors for the agents who are members of this queue. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). + + List - Int16 + List - 50 + None - RoutingMethod + Identity - The RoutingMethod defines how agents will be called in a Call Queue. If the routing method is set to Serial, then agents will be called one at a time. If the routing method is set to Attendant, then agents will be called in parallel. If routing method is set to RoundRobin, the agents will be called using Round Robin strategy so that all agents share the call-load equally. If routing method is set to LongestIdle, the agents will be called based on their idle time, i.e., the agent that has been idle for the longest period will be called. - PARAMVALUE: Attendant | Serial | RoundRobin | LongestIdle + > Applicable: Microsoft Teams + PARAMVALUE: Guid Object Object - Attendant + None - TimeoutAction + IsCallbackEnabled - The TimeoutAction parameter defines the action to take if the timeout threshold is reached. The TimeoutAction property must be set to one of the following values: Disconnect, Forward, Voicemail, and SharedVoicemail. The default value is Disconnect. - PARAMVALUE: Disconnect | Forward | Voicemail | SharedVoicemail + The IsCallbackEnabled parameter is used to turn on/off callback. - Object + Boolean - Object + Boolean - Disconnect + None - TimeoutActionTarget + LanguageId - The TimeoutActionTarget represents the target of the timeout action. If the TimeoutAction is set to Forward, this parameter must be set to a Guid or a telephone number with a mandatory 'tel:' prefix. If the TimeoutAction is set to SharedVoicemail, this parameter must be set to an Office 365 Group ID. Otherwise, this field is optional. + > Applicable: Microsoft Teams + The LanguageId parameter indicates the language that is used to play shared voicemail prompts. This parameter becomes a required parameter If either OverflowAction or TimeoutAction is set to SharedVoicemail. + You can query the supported languages using the Get-CsAutoAttendantSupportedLanguage cmdlet. String @@ -69213,50 +76103,48 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - TimeoutActionCallPriority + LineUri - Voice applications private preview customers only Saving a call queue configuration through Teams admin center will *remove* this setting. If the TimeoutAction is set to Forward, and the TimeoutActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. - PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High - - 2 = High - - 3 = Normal / Default - - 4 = Low - - 5 = Very Low + > Applicable: Microsoft Teams + This parameter is reserved for Microsoft internal use only. - Int16 + String - Int16 + String None - TimeoutThreshold + MusicOnHoldAudioFileId - The TimeoutThreshold parameter defines the time (in seconds) that a call can be in the queue before that call times out. At that point, the system will take the action specified by the TimeoutAction parameter. The TimeoutThreshold can be any integer value between 0 and 2700 seconds (inclusive), and is rounded to the nearest 15th interval. For example, if set to 47 seconds, then it is rounded down to 45. If set to 0, welcome music is played, and then the timeout action will be taken. + > Applicable: Microsoft Teams + The MusicOnHoldFileContent parameter represents music to play when callers are placed on hold. This is the unique identifier of the audio file. This parameter is required if the UseDefaultMusicOnHold parameter is not specified. - Int16 + Guid - Int16 + Guid - 1200 + None - NoAgentApplyTo + Name - The NoAgentApplyTo parameter defines if the NoAgentAction applies to calls already in queue and new calls arriving to the queue, or only new calls that arrive once the No Agents condition occurs. The default value is AllCalls. - PARAMVALUE: AllCalls | NewCalls + > Applicable: Microsoft Teams + The Name parameter specifies a unique name for the Call Queue. - Object + String - Object + String - Disconnect + None NoAgentAction + > Applicable: Microsoft Teams The NoAgentAction parameter defines the action to take if the no agents condition is reached. The NoAgentAction property must be set to one of the following values: Queue, Disconnect, Forward, Voicemail, and SharedVoicemail. The default value is Queue. PARAMVALUE: Queue | Disconnect | Forward | Voicemail | SharedVoicemail @@ -69267,27 +76155,17 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource Disconnect - - NoAgentActionTarget - - The NoAgentActionTarget represents the target of the no agent action. If the NoAgentAction is set to Forward, this parameter must be set to a Guid or a telephone number with a mandatory 'tel:' prefix. If the NoAgentAction is set to SharedVoicemail, this parameter must be set to a group ID (Microsoft 365, Distribution list, or Mail-enabled security). Otherwise, this field is optional. - - String - - String - - - None - NoAgentActionCallPriority - Voice applications private preview customers only Saving a call queue configuration through Teams admin center will *remove* this setting. If the NoAgentAction is set to Forward, and the NoAgentActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will reset the priority to 3 - Normal / Default. If the NoAgentAction is set to Forward, and the NoAgentActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High - 2 = High - 3 = Normal / Default - 4 = Low - 5 = Very Low + + > [!IMPORTANT] > Call priorities isn't currently supported for Authorized users (/microsoftteams/aa-cq-authorized-users-plan)in Queues App. Authorized users will not be able to edit call flows with priorities. Int16 @@ -69297,96 +76175,100 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - UseDefaultMusicOnHold + NoAgentActionTarget - The UseDefaultMusicOnHold parameter indicates that this Call Queue uses the default music on hold. This parameter cannot be specified together with MusicOnHoldAudioFileId. + > Applicable: Microsoft Teams + The NoAgentActionTarget represents the target of the no agent action. If the NoAgentAction is set to Forward, this parameter must be set to a Guid or a telephone number with a mandatory 'tel:' prefix. If the NoAgentAction is set to SharedVoicemail, this parameter must be set to a group ID (Microsoft 365, Distribution list, or Mail-enabled security). Otherwise, this field is optional. - Boolean + String - Boolean + String None - WelcomeMusicAudioFileId + NoAgentApplyTo - The WelcomeMusicAudioFileId parameter represents the audio file to play when callers are connected with the Call Queue. This is the unique identifier of the audio file. + > Applicable: Microsoft Teams + The NoAgentApplyTo parameter defines if the NoAgentAction applies to calls already in queue and new calls arriving to the queue, or only new calls that arrive once the No Agents condition occurs. The default value is AllCalls. + PARAMVALUE: AllCalls | NewCalls - Guid + Object - Guid + Object - None + Disconnect - PresenceBasedRouting + NoAgentDisconnectAudioFilePrompt - The PresenceBasedRouting parameter indicates whether or not presence based routing will be applied while call being routed to Call Queue agents. When set to False, calls will be routed to agents who have opted in to receive calls, regardless of their presence state. When set to True, opted-in agents will receive calls only when their presence state is Available. + > Applicable: Microsoft Teams + The NoAgentDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to no agents. - Boolean + Guid - Boolean + Guid - False + None - ConferenceMode + NoAgentDisconnectTextToSpeechPrompt - The ConferenceMode parameter indicates whether or not Conference mode will be applied on calls for this Call queue. Conference mode significantly reduces the amount of time it takes for a caller to be connected to an agent, after the agent accepts the call. The following bullet points detail the difference between both modes: - - Conference Mode Disabled: CQ call is presented to agent. Agent answers and media streams are setup. Based on geographic location of the CQ call and agent, there may be a slight delay in setting up the media streams which may result in some dead air and the first part of the conversation being cut off. - - Conference Mode Enabled: CQ call is put into conference. Agent answers and is brought into conference. Media streams are already setup when agent is brought into conference thus no dead air, and first bit of conversation will not be cut off. + > Applicable: Microsoft Teams + The NoAgentDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to no agents. - Boolean + String - Boolean + String - False + None - Users + NoAgentRedirectPersonAudioFilePrompt - The User parameter lets you add agents to the Call Queue. This parameter expects a list of user unique identifiers (GUID). + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to no agents. - List + Guid - List + Guid None - Tenant + NoAgentRedirectPersonTextToSpeechPrompt - This parameter is reserved for Microsoft internal use only. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to no agents. - Guid + String - Guid + String None - LanguageId + NoAgentRedirectPhoneNumberAudioFilePrompt - The LanguageId parameter indicates the language that is used to play shared voicemail prompts. This parameter becomes a required parameter If either OverflowAction or TimeoutAction is set to SharedVoicemail. - You can query the supported languages using the Get-CsAutoAttendantSupportedLanguage cmdlet. + > Applicable: Microsoft Teams + The NoAgentRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to no agents. - String + Guid - String + Guid None - LineUri + NoAgentRedirectPhoneNumberTextToSpeechPrompt - This parameter is reserved for Microsoft internal use only. + > Applicable: Microsoft Teams + The NoAgentRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to no agents. String @@ -69396,9 +76278,10 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - OverflowDisconnectAudioFilePrompt + NoAgentRedirectVoiceAppAudioFilePrompt - The OverflowDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to overflow. + > Applicable: Microsoft Teams + The NoAgentRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to no agents. Guid @@ -69408,9 +76291,10 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - OverflowDisconnectTextToSpeechPrompt + NoAgentRedirectVoiceAppTextToSpeechPrompt - The OverflowDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to overflow. + > Applicable: Microsoft Teams + The NoAgentRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to no agents. String @@ -69420,9 +76304,9 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - OverflowRedirectPersonAudioFilePrompt + NoAgentRedirectVoicemailAudioFilePrompt - Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to overflow. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to no agent. Guid @@ -69432,9 +76316,9 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - OverflowRedirectPersonTextToSpeechPrompt + NoAgentRedirectVoicemailTextToSpeechPrompt - Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to overflow. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to no agent. String @@ -69444,9 +76328,10 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - OverflowRedirectVoiceAppAudioFilePrompt + NoAgentSharedVoicemailAudioFilePrompt - The OverflowRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to overflow. + > Applicable: Microsoft Teams + The NoAgentSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on no agents. This parameter becomes a required parameter when NoAgentAction is SharedVoicemail and NoAgentSharedVoicemailTextToSpeechPrompt is null. Guid @@ -69456,9 +76341,10 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - OverflowRedirectVoiceAppTextToSpeechPrompt + NoAgentSharedVoicemailTextToSpeechPrompt - The OverflowRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to overflow. + > Applicable: Microsoft Teams + The NoAgentSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on no agents. This parameter becomes a required parameter when NoAgentAction is SharedVoicemail and NoAgentSharedVoicemailAudioFilePrompt is null. String @@ -69468,57 +76354,69 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - OverflowRedirectPhoneNumberAudioFilePrompt + NumberOfCallsInQueueBeforeOfferingCallback - The OverflowRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to overflow. + The number of calls in queue before a call becomes eligible for callback. This condition applies to calls arriving at the call queue. Set to null ($null) to disable this condition. + At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. - Guid + Int16 - Guid + Int16 None - OverflowRedirectPhoneNumberTextToSpeechPrompt + OboResourceAccountIds - The OverflowRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to overflow. + > Applicable: Microsoft Teams + The OboResourceAccountIds parameter lets you add resource account with phone number to the Call Queue. The agents in the Call Queue will be able to make outbound calls using the phone number on the resource accounts. This is a list of resource account GUIDs. - String + List - String + List None - OverflowRedirectVoicemailAudioFilePrompt + OverflowAction - Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to overflow. + > Applicable: Microsoft Teams + The OverflowAction parameter designates the action to take if the overflow threshold is reached. The OverflowAction property must be set to one of the following values: DisconnectWithBusy, Forward, Voicemail, and SharedVoicemail. The default value is DisconnectWithBusy. + PARAMVALUE: DisconnectWithBusy | Forward | Voicemail | SharedVoicemail - Guid + Object - Guid + Object - None + DisconnectWithBusy - OverflowRedirectVoicemailTextToSpeechPrompt + OverflowActionCallPriority - Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to overflow. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will reset the priority to 3 - Normal / Default. If the OverflowAction is set to Forward, and the OverflowActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. + PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High + - 2 = High + - 3 = Normal / Default + - 4 = Low + - 5 = Very Low + + > [!IMPORTANT] > Call priorities isn't currently supported for Authorized users (/microsoftteams/aa-cq-authorized-users-plan)in Queues App. Authorized users will not be able to edit call flows with priorities. - String + Int16 - String + Int16 None - OverflowSharedVoicemailTextToSpeechPrompt + OverflowActionTarget - The OverflowSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on overflow. This parameter becomes a required parameter when OverflowAction is SharedVoicemail and OverflowSharedVoicemailAudioFilePrompt is null. + > Applicable: Microsoft Teams + The OverflowActionTarget parameter represents the target of the overflow action. If the OverFlowAction is set to Forward, this parameter must be set to a Guid or a telephone number with a mandatory 'tel:' prefix. If the OverflowAction is set to SharedVoicemail, this parameter must be set to a group ID (Microsoft 365, Distribution list, or Mail-enabled security). Otherwise, this parameter is optional. String @@ -69528,9 +76426,10 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - OverflowSharedVoicemailAudioFilePrompt + OverflowDisconnectAudioFilePrompt - The OverflowSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on overflow. This parameter becomes a required parameter when OverflowAction is SharedVoicemail and OverflowSharedVoicemailTextToSpeechPrompt is null. + > Applicable: Microsoft Teams + The OverflowDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to overflow. Guid @@ -69540,33 +76439,22 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - EnableOverflowSharedVoicemailTranscription - - The EnableOverflowSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on overflow. This parameter is only applicable when OverflowAction is set to SharedVoicemail. - - Boolean - - Boolean - - - False - - - EnableOverflowSharedVoicemailSystemPromptSuppression + OverflowDisconnectTextToSpeechPrompt - The EnableOverflowSharedVoicemailSystemPromptSuppress parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when OverflowAction is set to SharedVoicemail. + > Applicable: Microsoft Teams + The OverflowDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to overflow. - Boolean + String - Boolean + String - False + None - TimeoutDisconnectAudioFilePrompt + OverflowRedirectPersonAudioFilePrompt - The TimeoutDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to timeout. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to overflow. Guid @@ -69576,9 +76464,9 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - TimeoutDisconnectTextToSpeechPrompt + OverflowRedirectPersonTextToSpeechPrompt - The TimeoutDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to timeout. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to overflow. String @@ -69588,9 +76476,10 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - TimeoutRedirectPersonAudioFilePrompt + OverflowRedirectPhoneNumberAudioFilePrompt - The TimeoutRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to timeout. + > Applicable: Microsoft Teams + The OverflowRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to overflow. Guid @@ -69600,9 +76489,10 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - TimeoutRedirectPersonTextToSpeechPrompt + OverflowRedirectPhoneNumberTextToSpeechPrompt - Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to timeout. + > Applicable: Microsoft Teams + The OverflowRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to overflow. String @@ -69612,9 +76502,10 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - TimeoutRedirectVoiceAppAudioFilePrompt + OverflowRedirectVoiceAppAudioFilePrompt - Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to timeout. + > Applicable: Microsoft Teams + The OverflowRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to overflow. Guid @@ -69624,9 +76515,10 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - TimeoutRedirectVoiceAppTextToSpeechPrompt + OverflowRedirectVoiceAppTextToSpeechPrompt - The TimeoutRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to timeout. + > Applicable: Microsoft Teams + The OverflowRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to overflow. String @@ -69636,9 +76528,9 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - TimeoutRedirectPhoneNumberAudioFilePrompt + OverflowRedirectVoicemailAudioFilePrompt - The TimeoutRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to timeout. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to overflow. Guid @@ -69648,9 +76540,9 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - TimeoutRedirectPhoneNumberTextToSpeechPrompt + OverflowRedirectVoicemailTextToSpeechPrompt - The TimeoutRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to timeout. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to overflow. String @@ -69660,9 +76552,10 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - TimeoutRedirectVoicemailAudioFilePrompt + OverflowSharedVoicemailAudioFilePrompt - Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to timeout. + > Applicable: Microsoft Teams + The OverflowSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on overflow. This parameter becomes a required parameter when OverflowAction is SharedVoicemail and OverflowSharedVoicemailTextToSpeechPrompt is null. Guid @@ -69672,21 +76565,10 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - TimeoutRedirectVoicemailTextToSpeechPrompt - - Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to timeout. - - String - - String - - - None - - - TimeoutSharedVoicemailTextToSpeechPrompt + OverflowSharedVoicemailTextToSpeechPrompt - The TimeoutSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on timeout. This parameter becomes a required parameter when TimeoutAction is SharedVoicemail and TimeoutSharedVoicemailAudioFilePrompt is null. + > Applicable: Microsoft Teams + The OverflowSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on overflow. This parameter becomes a required parameter when OverflowAction is SharedVoicemail and OverflowSharedVoicemailAudioFilePrompt is null. String @@ -69696,21 +76578,23 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - TimeoutSharedVoicemailAudioFilePrompt + OverflowThreshold - The TimeoutSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on timeout. This parameter becomes a required parameter when TimeoutAction is SharedVoicemail and TimeoutSharedVoicemailTextToSpeechPrompt is null. + > Applicable: Microsoft Teams + The OverflowThreshold parameter defines the number of calls that can be in the queue at any one time before the overflow action is triggered. The OverflowThreshold can be any integer value between 0 and 200, inclusive. A value of 0 causes calls not to reach agents and the overflow action to be taken immediately. - Guid + Int16 - Guid + Int16 - None + 50 - EnableTimeoutSharedVoicemailTranscription + PresenceBasedRouting - The EnableTimeoutSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on timeout. This parameter is only applicable when TimeoutAction is set to SharedVoicemail. + > Applicable: Microsoft Teams + The PresenceBasedRouting parameter indicates whether or not presence based routing will be applied while call being routed to Call Queue agents. When set to False, calls will be routed to agents who have opted in to receive calls, regardless of their presence state. When set to True, opted-in agents will receive calls only when their presence state is Available. Boolean @@ -69720,45 +76604,49 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource False - EnableTimeoutSharedVoicemailSystemPromptSuppression + RoutingMethod - The EnableTimeoutSharedVoicemailSystemPromptSuppression parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when OverflowAction is set to SharedVoicemail. + > Applicable: Microsoft Teams + The RoutingMethod defines how agents will be called in a Call Queue. If the routing method is set to Serial, then agents will be called one at a time. If the routing method is set to Attendant, then agents will be called in parallel. If routing method is set to RoundRobin, the agents will be called using Round Robin strategy so that all agents share the call-load equally. If routing method is set to LongestIdle, the agents will be called based on their idle time, i.e., the agent that has been idle for the longest period will be called. + PARAMVALUE: Attendant | Serial | RoundRobin | LongestIdle - Boolean + Object - Boolean + Object - False + Attendant - NoAgentDisconnectTextToSpeechPrompt + ServiceLevelThresholdResponseTimeInSecond - The NoAgentDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to no agents. + The target number of seconds calls should be answered in. This number is used to calculate the call queue service level percentage. + A value of `$null` indicates that a service level percentage will not be calculated for this call queue. - String + Int16 - String + Int16 None - NoAgentDisconnectAudioFilePrompt + SharedCallQueueHistoryTemplateId - The NoAgentDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to no agents. + Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The SharedCallQueueHistoryTemplateId parameter indicates the Shared Call Queue History template to apply to the call queue. - Guid + String - Guid + String None - NoAgentRedirectPersonTextToSpeechPrompt + ShiftsSchedulingGroupId - Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to no agents. + > Applicable: Microsoft Teams + Id of the Scheduling Group to connect a call queue to. String @@ -69768,33 +76656,35 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - NoAgentRedirectPersonAudioFilePrompt + ShiftsTeamId - Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to no agents. + > Applicable: Microsoft Teams + Id of the Team containing the Scheduling Group to connect a call queue to. - Guid + String - Guid + String None - NoAgentRedirectVoiceAppTextToSpeechPrompt + ShouldOverwriteCallableChannelProperty - The NoAgentRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to no agents. + A Teams Channel can only be linked to one Call Queue at a time. To force reassignment of the Teams Channel to a new Call Queue, set this to $true. - String + Boolean - String + Boolean - None + False - NoAgentRedirectVoiceAppAudioFilePrompt + Tenant - The NoAgentRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to no agents. + > Applicable: Microsoft Teams + This parameter is reserved for Microsoft internal use only. Guid @@ -69804,9 +76694,9 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - NoAgentRedirectPhoneNumberTextToSpeechPrompt + TextAnnouncementForCR - The NoAgentRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to no agents. + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The TextAnnouncementForCR parameter indicates the custom Text-to-Speech (TTS) prompt which is played to callers when compliance recording for call queues is enabled. String @@ -69816,45 +76706,55 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - NoAgentRedirectPhoneNumberAudioFilePrompt + TextAnnouncementForCRFailure - The NoAgentRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to no agents. + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The TextAnnouncementForCRFailure parameter indicates the custom Text-to-Speech (TTS) prompt which is played to callers if the compliance recording for call queue bot is unable to join or drops from the call. - Guid + String - Guid + String None - NoAgentRedirectVoicemailTextToSpeechPrompt + TimeoutAction - Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to no agent. + > Applicable: Microsoft Teams + The TimeoutAction parameter defines the action to take if the timeout threshold is reached. The TimeoutAction property must be set to one of the following values: Disconnect, Forward, Voicemail, and SharedVoicemail. The default value is Disconnect. + PARAMVALUE: Disconnect | Forward | Voicemail | SharedVoicemail - String + Object - String + Object - None + Disconnect - NoAgentRedirectVoicemailAudioFilePrompt + TimeoutActionCallPriority - Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to no agent. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will reset the priority to 3 - Normal / Default. If the TimeoutAction is set to Forward, and the TimeoutActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. + PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High + - 2 = High + - 3 = Normal / Default + - 4 = Low + - 5 = Very Low + + > [!IMPORTANT] > Call priorities isn't currently supported for Authorized users (/microsoftteams/aa-cq-authorized-users-plan)in Queues App. Authorized users will not be able to edit call flows with priorities. - Guid + Int16 - Guid + Int16 None - NoAgentSharedVoicemailTextToSpeechPrompt + TimeoutActionTarget - The NoAgentSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on no agents. This parameter becomes a required parameter when NoAgentAction is SharedVoicemail and NoAgentSharedVoicemailAudioFilePrompt is null. + > Applicable: Microsoft Teams + The TimeoutActionTarget represents the target of the timeout action. If the TimeoutAction is set to Forward, this parameter must be set to a Guid or a telephone number with a mandatory 'tel:' prefix. If the TimeoutAction is set to SharedVoicemail, this parameter must be set to an Office 365 Group ID. Otherwise, this field is optional. String @@ -69864,9 +76764,10 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - NoAgentSharedVoicemailAudioFilePrompt + TimeoutDisconnectAudioFilePrompt - The NoAgentSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on no agents. This parameter becomes a required parameter when NoAgentAction is SharedVoicemail and NoAgentSharedVoicemailTextToSpeechPrompt is null. + > Applicable: Microsoft Teams + The TimeoutDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to timeout. Guid @@ -69876,33 +76777,10 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - EnableNoAgentSharedVoicemailTranscription - - The EnableNoAgentSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on no agents. This parameter is only applicable when NoAgentAction is set to SharedVoicemail. - - Boolean - - Boolean - - - False - - - EnableNoAgentSharedVoicemailSystemPromptSuppression - - The EnableNoAgentSharedVoicemailSystemPromptSuppression parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when NoAgentAction is set to SharedVoicemail. - - Boolean - - Boolean - - - False - - - ChannelId + TimeoutDisconnectTextToSpeechPrompt - Id of the channel to connect a call queue to. + > Applicable: Microsoft Teams + The TimeoutDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to timeout. String @@ -69912,9 +76790,10 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - ChannelUserObjectId + TimeoutRedirectPersonAudioFilePrompt - The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). This is the GUID of one of the owners of the team that the channel belongs to. + > Applicable: Microsoft Teams + The TimeoutRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to timeout. Guid @@ -69924,9 +76803,9 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - ShiftsTeamId + TimeoutRedirectPersonTextToSpeechPrompt - Voice applications private preview customers only Saving a call queue configuration through Teams admin center will *remove* this setting. Id of the Team containing the Scheduling Group to connect a call queue to. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to timeout. String @@ -69936,45 +76815,48 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - ShiftsSchedulingGroupId + TimeoutRedirectPhoneNumberAudioFilePrompt - Voice applications private preview customers only Saving a call queue configuration through Teams admin center will *remove* this setting. Id of the Scheduling Group to connect a call queue to. + > Applicable: Microsoft Teams + The TimeoutRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to timeout. - String + Guid - String + Guid None - AuthorizedUsers + TimeoutRedirectPhoneNumberTextToSpeechPrompt - This is a list of GUIDs for users who are authorized to make changes to this call queue. The users must also have a TeamsVoiceApplications policy assigned. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). + > Applicable: Microsoft Teams + The TimeoutRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to timeout. - List + String - List + String None - HideAuthorizedUsers + TimeoutRedirectVoiceAppAudioFilePrompt - Saving a call queue configuration through Teams admin center will *remove* this setting. This is a list of GUIDs of authorized users who should not appear on the list of supervisors for the agents who are members of this queue. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to timeout. - List + Guid - List + Guid None - WelcomeTextToSpeechPrompt + TimeoutRedirectVoiceAppTextToSpeechPrompt - This parameter indicates which Text-to-Speech (TTS) prompt is played when callers are connected to the Call Queue. + > Applicable: Microsoft Teams + The TimeoutRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to timeout. String @@ -69984,26 +76866,21 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - IsCallbackEnabled + TimeoutRedirectVoicemailAudioFilePrompt - The IsCallbackEnabled parameter is used to turn on/off callback. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to timeout. - Boolean + Guid - Boolean + Guid None - CallbackRequestDtmf + TimeoutRedirectVoicemailTextToSpeechPrompt - The DTMF touch-tone key the caller will be told to press to select callback. The CallbackRequestDtmf must be set to one of the following values: - - Tone0 to Tone9 - Corresponds to DTMF tones from 0 to 9. - - ToneStar - Corresponds to DTMF tone *. - - TonePound - Corresponds to DTMF tone #. - - This parameter becomes a required parameter when IsCallbackEnabled is set to `True`. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to timeout. String @@ -70013,123 +76890,115 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - WaitTimeBeforeOfferingCallbackInSecond + TimeoutSharedVoicemailAudioFilePrompt - The number of seconds a call must wait before becoming eligible for callback. This condition applies to calls at the front of the call queue. Set to null ($null) to disable this condition. - At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. + > Applicable: Microsoft Teams + The TimeoutSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on timeout. This parameter becomes a required parameter when TimeoutAction is SharedVoicemail and TimeoutSharedVoicemailTextToSpeechPrompt is null. - Int16 + Guid - Int16 + Guid None - NumberOfCallsInQueueBeforeOfferingCallback + TimeoutSharedVoicemailTextToSpeechPrompt - The number of calls in queue before a call becomes eligible for callback. This condition applies to calls arriving at the call queue. Set to null ($null) to disable this condition. - At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. + > Applicable: Microsoft Teams + The TimeoutSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on timeout. This parameter becomes a required parameter when TimeoutAction is SharedVoicemail and TimeoutSharedVoicemailAudioFilePrompt is null. - Int16 + String - Int16 + String None - CallToAgentRatioThresholdBeforeOfferingCallback + TimeoutThreshold - The ratio of calls to agents that must be in queue before a call becomes eligible for callback. This conditon applies to calls arriving at the call queue. Minimum value of one (1). Set to null ($null) to disable this condition. - At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. + > Applicable: Microsoft Teams + The TimeoutThreshold parameter defines the time (in seconds) that a call can be in the queue before that call times out. At that point, the system will take the action specified by the TimeoutAction parameter. The TimeoutThreshold can be any integer value between 0 and 2700 seconds (inclusive), and is rounded to the nearest 15th interval. For example, if set to 47 seconds, then it is rounded down to 45. If set to 0, welcome music is played, and then the timeout action will be taken. Int16 Int16 - None + 1200 - CallbackOfferAudioFilePromptResourceId + UseDefaultMusicOnHold - The CallbackOfferAudioFilePromptResourceId parameter indicates the unique identifier for the Audio file prompt which is played to calls that are eligible for callback. This message should tell callers which DTMF touch-tone key (CallbackRequestDtmf) to press to select callback. This parameter, or `-CallbackOfferTextToSpeechPrompt`, becomes a required parameter when IsCallbackEnabled is set to `True`. + > Applicable: Microsoft Teams + The UseDefaultMusicOnHold parameter indicates that this Call Queue uses the default music on hold. This parameter cannot be specified together with MusicOnHoldAudioFileId. - Guid + Boolean - Guid + Boolean None - CallbackOfferTextToSpeechPrompt + Users - The CallbackOfferTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to calls that are eligible for callback. This message should tell callers which DTMF touch-tone key (CallbackRequestDtmf) to press to select callback. This parameter, or `-CallbackOfferAudioFilePromptResourceId`, becomes a required parameter when IsCallbackEnabled is set to `True`. + > Applicable: Microsoft Teams + The User parameter lets you add agents to the Call Queue. This parameter expects a list of user unique identifiers (GUID). - String + List - String + List None - CallbackEmailNotificationTarget + WaitTimeBeforeOfferingCallbackInSecond - The CallbackEmailNotificationTarget parameter must be set to a group ID (Microsoft 365, Distribution list, or Mail-enabled security) that will receive notification if a callback times out of the call queue or can't be completed for some other reason. This parameter becomes a required parameter when IsCallbackEnabled is set to `True`. + The number of seconds a call must wait before becoming eligible for callback. This condition applies to calls at the front of the call queue. Set to null ($null) to disable this condition. + At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. - Guid + Int16 - Guid + Int16 None - ServiceLevelThresholdResponseTimeInSecond + WelcomeMusicAudioFileId - The target number of seconds calls should be answered in. This number is used to calculate the call queue service level percentage. - A value of `$null` indicates that a service level percentage will not be calculated for this call queue. + > Applicable: Microsoft Teams + The WelcomeMusicAudioFileId parameter represents the audio file to play when callers are connected with the Call Queue. This is the unique identifier of the audio file. - Int16 + Guid - Int16 + Guid None - ShouldOverwriteCallableChannelProperty + WelcomeTextToSpeechPrompt - A Teams Channel can only be linked to one Call Queue at a time. To force reassignment of the Teams Channel to a new Call Queue, set this to $true. + This parameter indicates which Text-to-Speech (TTS) prompt is played when callers are connected to the Call Queue. - Boolean + String - Boolean + String - False + None - - Identity - - PARAMVALUE: Guid - - Object - - Object - - - None - AgentAlertTime + > Applicable: Microsoft Teams The AgentAlertTime parameter represents the time (in seconds) that a call can remain unanswered before it is automatically routed to the next agent. The AgentAlertTime can be set to any integer value between 15 and 180 seconds (3 minutes), inclusive. Int16 @@ -70142,6 +77011,7 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource AllowOptOut + > Applicable: Microsoft Teams The AllowOptOut parameter indicates whether or not agents can opt in or opt out from taking calls from a Call Queue. Boolean @@ -70152,9 +77022,10 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource True - DistributionLists + AuthorizedUsers - The DistributionLists parameter lets you add all the members of the distribution lists to the Call Queue. This is a list of distribution list GUIDs. A service wide configurable maximum number of DLs per Call Queue are allowed. Only the first N (service wide configurable) agents from all distribution lists combined are considered for accepting the call. Nested DLs are supported. O365 Groups can also be used to add members to the Call Queue. + > Applicable: Microsoft Teams + This is a list of GUIDs for users who are authorized to make changes to this call queue. The users must also have a TeamsVoiceApplications policy assigned. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). List @@ -70164,9 +77035,10 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - MusicOnHoldAudioFileId + CallbackEmailNotificationTarget - The MusicOnHoldFileContent parameter represents music to play when callers are placed on hold. This is the unique identifier of the audio file. This parameter is required if the UseDefaultMusicOnHold parameter is not specified. + > Applicable: Microsoft Teams + The CallbackEmailNotificationTarget parameter must be set to a group ID (Microsoft 365, Distribution list, or Mail-enabled security) that will receive notification if a callback times out of the call queue or can't be completed for some other reason. This parameter becomes a required parameter when IsCallbackEnabled is set to `True`. Guid @@ -70176,9 +77048,23 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - Name + CallbackOfferAudioFilePromptResourceId - The Name parameter specifies a unique name for the Call Queue. + > Applicable: Microsoft Teams + The CallbackOfferAudioFilePromptResourceId parameter indicates the unique identifier for the Audio file prompt which is played to calls that are eligible for callback. This message should tell callers which DTMF touch-tone key (CallbackRequestDtmf) to press to select callback. This parameter, or `-CallbackOfferTextToSpeechPrompt`, becomes a required parameter when IsCallbackEnabled is set to `True`. + + Guid + + Guid + + + None + + + CallbackOfferTextToSpeechPrompt + + > Applicable: Microsoft Teams + The CallbackOfferTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to calls that are eligible for callback. This message should tell callers which DTMF touch-tone key (CallbackRequestDtmf) to press to select callback. This parameter, or `-CallbackOfferAudioFilePromptResourceId`, becomes a required parameter when IsCallbackEnabled is set to `True`. String @@ -70188,34 +77074,40 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - OboResourceAccountIds + CallbackRequestDtmf - The OboResourceAccountIds parameter lets you add resource account with phone number to the Call Queue. The agents in the Call Queue will be able to make outbound calls using the phone number on the resource accounts. This is a list of resource account GUIDs. + The DTMF touch-tone key the caller will be told to press to select callback. The CallbackRequestDtmf must be set to one of the following values: + - Tone0 to Tone9 - Corresponds to DTMF tones from 0 to 9. + - ToneStar - Corresponds to DTMF tone *. + - TonePound - Corresponds to DTMF tone #. + + This parameter becomes a required parameter when IsCallbackEnabled is set to `True`. - List + String - List + String None - OverflowAction + CallToAgentRatioThresholdBeforeOfferingCallback - The OverflowAction parameter designates the action to take if the overflow threshold is reached. The OverflowAction property must be set to one of the following values: DisconnectWithBusy, Forward, Voicemail, and SharedVoicemail. The default value is DisconnectWithBusy. - PARAMVALUE: DisconnectWithBusy | Forward | Voicemail | SharedVoicemail + The ratio of calls to agents that must be in queue before a call becomes eligible for callback. This condition applies to calls arriving at the call queue. Minimum value of one (1). Set to null ($null) to disable this condition. + At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. - Object + Int16 - Object + Int16 - DisconnectWithBusy + None - OverflowActionTarget + ChannelId - The OverflowActionTarget parameter represents the target of the overflow action. If the OverFlowAction is set to Forward, this parameter must be set to a Guid or a telephone number with a mandatory 'tel:' prefix. If the OverflowAction is set to SharedVoicemail, this parameter must be set to a group ID (Microsoft 365, Distribution list, or Mail-enabled security). Otherwise, this parameter is optional. + > Applicable: Microsoft Teams + Id of the channel to connect a call queue to. String @@ -70225,223 +77117,230 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - OverflowActionCallPriority + ChannelUserObjectId - Voice applications private preview customers only Saving a call queue configuration through Teams admin center will *remove* this setting. If the OverflowAction is set to Forward, and the OverflowActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. - PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High - - 2 = High - - 3 = Normal / Default - - 4 = Low - - 5 = Very Low + > Applicable: Microsoft Teams + The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). This is the GUID of one of the owners of the team that the channel belongs to. - Int16 + Guid - Int16 + Guid None - OverflowThreshold + ComplianceRecordingForCallQueueTemplateId - The OverflowThreshold parameter defines the number of calls that can be in the queue at any one time before the overflow action is triggered. The OverflowThreshold can be any integer value between 0 and 200, inclusive. A value of 0 causes calls not to reach agents and the overflow action to be taken immediately. + Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The ComplianceRecordingForCallQueueTemplateId parameter indicates a list of up to 2 Compliance Recording for Call Queue templates to apply to the call queue. - Int16 + List - Int16 + List - 50 + None - RoutingMethod + ConferenceMode - The RoutingMethod defines how agents will be called in a Call Queue. If the routing method is set to Serial, then agents will be called one at a time. If the routing method is set to Attendant, then agents will be called in parallel. If routing method is set to RoundRobin, the agents will be called using Round Robin strategy so that all agents share the call-load equally. If routing method is set to LongestIdle, the agents will be called based on their idle time, i.e., the agent that has been idle for the longest period will be called. - PARAMVALUE: Attendant | Serial | RoundRobin | LongestIdle + > Applicable: Microsoft Teams + The ConferenceMode parameter indicates whether or not Conference mode will be applied on calls for this Call queue. Conference mode significantly reduces the amount of time it takes for a caller to be connected to an agent, after the agent accepts the call. The following bullet points detail the difference between both modes: + - Conference Mode Disabled: CQ call is presented to agent. Agent answers and media streams are setup. Based on geographic location of the CQ call and agent, there may be a slight delay in setting up the media streams which may result in some dead air and the first part of the conversation being cut off. + - Conference Mode Enabled: CQ call is put into conference. Agent answers and is brought into conference. Media streams are already setup when agent is brought into conference thus no dead air, and first bit of conversation will not be cut off. - Object + Boolean - Object + Boolean - Attendant + False - TimeoutAction + CustomAudioFileAnnouncementForCR - The TimeoutAction parameter defines the action to take if the timeout threshold is reached. The TimeoutAction property must be set to one of the following values: Disconnect, Forward, Voicemail, and SharedVoicemail. The default value is Disconnect. - PARAMVALUE: Disconnect | Forward | Voicemail | SharedVoicemail + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The CustomAudioFileAnnouncementForCR parameter indicates the unique identifier for the Audio file prompt which is played to callers when compliance recording for call queues is enabled. - Object + Guid - Object + Guid - Disconnect + None - TimeoutActionTarget + CustomAudioFileAnnouncementForCRFailure - The TimeoutActionTarget represents the target of the timeout action. If the TimeoutAction is set to Forward, this parameter must be set to a Guid or a telephone number with a mandatory 'tel:' prefix. If the TimeoutAction is set to SharedVoicemail, this parameter must be set to an Office 365 Group ID. Otherwise, this field is optional. + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The CustomAudioFileAnnouncementForCRFailure parameter indicates the unique identifier for the Audio file prompt which is played to callers if the compliance recording for call queue bot is unable to join or drops from the call. - String + Guid - String + Guid None - TimeoutActionCallPriority + DistributionLists - Voice applications private preview customers only Saving a call queue configuration through Teams admin center will *remove* this setting. If the TimeoutAction is set to Forward, and the TimeoutActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. - PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High - - 2 = High - - 3 = Normal / Default - - 4 = Low - - 5 = Very Low + > Applicable: Microsoft Teams + The DistributionLists parameter lets you add all the members of the distribution lists to the Call Queue. This is a list of distribution list GUIDs. A service wide configurable maximum number of DLs per Call Queue are allowed. Only the first N (service wide configurable) agents from all distribution lists combined are considered for accepting the call. Nested DLs are supported. O365 Groups can also be used to add members to the Call Queue. - Int16 + List - Int16 + List None - TimeoutThreshold + EnableNoAgentSharedVoicemailSystemPromptSuppression - The TimeoutThreshold parameter defines the time (in seconds) that a call can be in the queue before that call times out. At that point, the system will take the action specified by the TimeoutAction parameter. The TimeoutThreshold can be any integer value between 0 and 2700 seconds (inclusive), and is rounded to the nearest 15th interval. For example, if set to 47 seconds, then it is rounded down to 45. If set to 0, welcome music is played, and then the timeout action will be taken. + > Applicable: Microsoft Teams + The EnableNoAgentSharedVoicemailSystemPromptSuppression parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when NoAgentAction is set to SharedVoicemail. - Int16 + Boolean - Int16 + Boolean - 1200 + False - NoAgentApplyTo + EnableNoAgentSharedVoicemailTranscription - The NoAgentApplyTo parameter defines if the NoAgentAction applies to calls already in queue and new calls arriving to the queue, or only new calls that arrive once the No Agents condition occurs. The default value is AllCalls. - PARAMVALUE: AllCalls | NewCalls + > Applicable: Microsoft Teams + The EnableNoAgentSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on no agents. This parameter is only applicable when NoAgentAction is set to SharedVoicemail. - Object + Boolean - Object + Boolean - Disconnect + False - NoAgentAction + EnableOverflowSharedVoicemailSystemPromptSuppression - The NoAgentAction parameter defines the action to take if the no agents condition is reached. The NoAgentAction property must be set to one of the following values: Queue, Disconnect, Forward, Voicemail, and SharedVoicemail. The default value is Queue. - PARAMVALUE: Queue | Disconnect | Forward | Voicemail | SharedVoicemail + > Applicable: Microsoft Teams + The EnableOverflowSharedVoicemailSystemPromptSuppress parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when OverflowAction is set to SharedVoicemail. - Object + Boolean - Object + Boolean - Disconnect + False - NoAgentActionTarget + EnableOverflowSharedVoicemailTranscription - The NoAgentActionTarget represents the target of the no agent action. If the NoAgentAction is set to Forward, this parameter must be set to a Guid or a telephone number with a mandatory 'tel:' prefix. If the NoAgentAction is set to SharedVoicemail, this parameter must be set to a group ID (Microsoft 365, Distribution list, or Mail-enabled security). Otherwise, this field is optional. + > Applicable: Microsoft Teams + The EnableOverflowSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on overflow. This parameter is only applicable when OverflowAction is set to SharedVoicemail. - String + Boolean - String + Boolean - None + False - NoAgentActionCallPriority + EnableTimeoutSharedVoicemailSystemPromptSuppression - Voice applications private preview customers only Saving a call queue configuration through Teams admin center will *remove* this setting. If the NoAgentAction is set to Forward, and the NoAgentActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. - PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High - - 2 = High - - 3 = Normal / Default - - 4 = Low - - 5 = Very Low + > Applicable: Microsoft Teams + The EnableTimeoutSharedVoicemailSystemPromptSuppression parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when OverflowAction is set to SharedVoicemail. - Int16 + Boolean - Int16 + Boolean - None + False - UseDefaultMusicOnHold + EnableTimeoutSharedVoicemailTranscription - The UseDefaultMusicOnHold parameter indicates that this Call Queue uses the default music on hold. This parameter cannot be specified together with MusicOnHoldAudioFileId. + > Applicable: Microsoft Teams + The EnableTimeoutSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on timeout. This parameter is only applicable when TimeoutAction is set to SharedVoicemail. Boolean Boolean - None + False - WelcomeMusicAudioFileId + HideAuthorizedUsers - The WelcomeMusicAudioFileId parameter represents the audio file to play when callers are connected with the Call Queue. This is the unique identifier of the audio file. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. This is a list of GUIDs of authorized users who should not appear on the list of supervisors for the agents who are members of this queue. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). - Guid + List - Guid + List None - PresenceBasedRouting + Identity - The PresenceBasedRouting parameter indicates whether or not presence based routing will be applied while call being routed to Call Queue agents. When set to False, calls will be routed to agents who have opted in to receive calls, regardless of their presence state. When set to True, opted-in agents will receive calls only when their presence state is Available. + > Applicable: Microsoft Teams + PARAMVALUE: Guid - Boolean + Object - Boolean + Object - False + None - ConferenceMode + IsCallbackEnabled - The ConferenceMode parameter indicates whether or not Conference mode will be applied on calls for this Call queue. Conference mode significantly reduces the amount of time it takes for a caller to be connected to an agent, after the agent accepts the call. The following bullet points detail the difference between both modes: - - Conference Mode Disabled: CQ call is presented to agent. Agent answers and media streams are setup. Based on geographic location of the CQ call and agent, there may be a slight delay in setting up the media streams which may result in some dead air and the first part of the conversation being cut off. - - Conference Mode Enabled: CQ call is put into conference. Agent answers and is brought into conference. Media streams are already setup when agent is brought into conference thus no dead air, and first bit of conversation will not be cut off. + The IsCallbackEnabled parameter is used to turn on/off callback. Boolean Boolean - False + None - Users + LanguageId - The User parameter lets you add agents to the Call Queue. This parameter expects a list of user unique identifiers (GUID). + > Applicable: Microsoft Teams + The LanguageId parameter indicates the language that is used to play shared voicemail prompts. This parameter becomes a required parameter If either OverflowAction or TimeoutAction is set to SharedVoicemail. + You can query the supported languages using the Get-CsAutoAttendantSupportedLanguage cmdlet. - List + String - List + String None - Tenant + LineUri + > Applicable: Microsoft Teams This parameter is reserved for Microsoft internal use only. + String + + String + + + None + + + MusicOnHoldAudioFileId + + > Applicable: Microsoft Teams + The MusicOnHoldFileContent parameter represents music to play when callers are placed on hold. This is the unique identifier of the audio file. This parameter is required if the UseDefaultMusicOnHold parameter is not specified. + Guid Guid @@ -70450,10 +77349,10 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - LanguageId + Name - The LanguageId parameter indicates the language that is used to play shared voicemail prompts. This parameter becomes a required parameter If either OverflowAction or TimeoutAction is set to SharedVoicemail. - You can query the supported languages using the Get-CsAutoAttendantSupportedLanguage cmdlet. + > Applicable: Microsoft Teams + The Name parameter specifies a unique name for the Call Queue. String @@ -70463,9 +77362,43 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - LineUri + NoAgentAction - This parameter is reserved for Microsoft internal use only. + > Applicable: Microsoft Teams + The NoAgentAction parameter defines the action to take if the no agents condition is reached. The NoAgentAction property must be set to one of the following values: Queue, Disconnect, Forward, Voicemail, and SharedVoicemail. The default value is Queue. + PARAMVALUE: Queue | Disconnect | Forward | Voicemail | SharedVoicemail + + Object + + Object + + + Disconnect + + + NoAgentActionCallPriority + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will reset the priority to 3 - Normal / Default. If the NoAgentAction is set to Forward, and the NoAgentActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. + PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High + - 2 = High + - 3 = Normal / Default + - 4 = Low + - 5 = Very Low + + > [!IMPORTANT] > Call priorities isn't currently supported for Authorized users (/microsoftteams/aa-cq-authorized-users-plan)in Queues App. Authorized users will not be able to edit call flows with priorities. + + Int16 + + Int16 + + + None + + + NoAgentActionTarget + + > Applicable: Microsoft Teams + The NoAgentActionTarget represents the target of the no agent action. If the NoAgentAction is set to Forward, this parameter must be set to a Guid or a telephone number with a mandatory 'tel:' prefix. If the NoAgentAction is set to SharedVoicemail, this parameter must be set to a group ID (Microsoft 365, Distribution list, or Mail-enabled security). Otherwise, this field is optional. String @@ -70475,9 +77408,24 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - OverflowDisconnectAudioFilePrompt + NoAgentApplyTo - The OverflowDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to overflow. + > Applicable: Microsoft Teams + The NoAgentApplyTo parameter defines if the NoAgentAction applies to calls already in queue and new calls arriving to the queue, or only new calls that arrive once the No Agents condition occurs. The default value is AllCalls. + PARAMVALUE: AllCalls | NewCalls + + Object + + Object + + + Disconnect + + + NoAgentDisconnectAudioFilePrompt + + > Applicable: Microsoft Teams + The NoAgentDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to no agents. Guid @@ -70487,9 +77435,10 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - OverflowDisconnectTextToSpeechPrompt + NoAgentDisconnectTextToSpeechPrompt - The OverflowDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to overflow. + > Applicable: Microsoft Teams + The NoAgentDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to no agents. String @@ -70499,9 +77448,9 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - OverflowRedirectPersonAudioFilePrompt + NoAgentRedirectPersonAudioFilePrompt - Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to overflow. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to no agents. Guid @@ -70511,9 +77460,9 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - OverflowRedirectPersonTextToSpeechPrompt + NoAgentRedirectPersonTextToSpeechPrompt - Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to overflow. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to no agents. String @@ -70523,9 +77472,10 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - OverflowRedirectVoiceAppAudioFilePrompt + NoAgentRedirectPhoneNumberAudioFilePrompt - The OverflowRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to overflow. + > Applicable: Microsoft Teams + The NoAgentRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to no agents. Guid @@ -70535,9 +77485,10 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - OverflowRedirectVoiceAppTextToSpeechPrompt + NoAgentRedirectPhoneNumberTextToSpeechPrompt - The OverflowRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to overflow. + > Applicable: Microsoft Teams + The NoAgentRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to no agents. String @@ -70547,9 +77498,10 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - OverflowRedirectPhoneNumberAudioFilePrompt + NoAgentRedirectVoiceAppAudioFilePrompt - The OverflowRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to overflow. + > Applicable: Microsoft Teams + The NoAgentRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to no agents. Guid @@ -70559,9 +77511,10 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - OverflowRedirectPhoneNumberTextToSpeechPrompt + NoAgentRedirectVoiceAppTextToSpeechPrompt - The OverflowRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to overflow. + > Applicable: Microsoft Teams + The NoAgentRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to no agents. String @@ -70571,9 +77524,9 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - OverflowRedirectVoicemailAudioFilePrompt + NoAgentRedirectVoicemailAudioFilePrompt - Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to overflow. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to no agent. Guid @@ -70583,9 +77536,9 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - OverflowRedirectVoicemailTextToSpeechPrompt + NoAgentRedirectVoicemailTextToSpeechPrompt - Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to overflow. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to no agent. String @@ -70595,9 +77548,23 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - OverflowSharedVoicemailTextToSpeechPrompt + NoAgentSharedVoicemailAudioFilePrompt - The OverflowSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on overflow. This parameter becomes a required parameter when OverflowAction is SharedVoicemail and OverflowSharedVoicemailAudioFilePrompt is null. + > Applicable: Microsoft Teams + The NoAgentSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on no agents. This parameter becomes a required parameter when NoAgentAction is SharedVoicemail and NoAgentSharedVoicemailTextToSpeechPrompt is null. + + Guid + + Guid + + + None + + + NoAgentSharedVoicemailTextToSpeechPrompt + + > Applicable: Microsoft Teams + The NoAgentSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on no agents. This parameter becomes a required parameter when NoAgentAction is SharedVoicemail and NoAgentSharedVoicemailAudioFilePrompt is null. String @@ -70607,57 +77574,69 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - OverflowSharedVoicemailAudioFilePrompt + NumberOfCallsInQueueBeforeOfferingCallback - The OverflowSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on overflow. This parameter becomes a required parameter when OverflowAction is SharedVoicemail and OverflowSharedVoicemailTextToSpeechPrompt is null. + The number of calls in queue before a call becomes eligible for callback. This condition applies to calls arriving at the call queue. Set to null ($null) to disable this condition. + At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. - Guid + Int16 - Guid + Int16 None - EnableOverflowSharedVoicemailTranscription + OboResourceAccountIds - The EnableOverflowSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on overflow. This parameter is only applicable when OverflowAction is set to SharedVoicemail. + > Applicable: Microsoft Teams + The OboResourceAccountIds parameter lets you add resource account with phone number to the Call Queue. The agents in the Call Queue will be able to make outbound calls using the phone number on the resource accounts. This is a list of resource account GUIDs. - Boolean + List - Boolean + List - False + None - EnableOverflowSharedVoicemailSystemPromptSuppression + OverflowAction - The EnableOverflowSharedVoicemailSystemPromptSuppress parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when OverflowAction is set to SharedVoicemail. + > Applicable: Microsoft Teams + The OverflowAction parameter designates the action to take if the overflow threshold is reached. The OverflowAction property must be set to one of the following values: DisconnectWithBusy, Forward, Voicemail, and SharedVoicemail. The default value is DisconnectWithBusy. + PARAMVALUE: DisconnectWithBusy | Forward | Voicemail | SharedVoicemail - Boolean + Object - Boolean + Object - False + DisconnectWithBusy - TimeoutDisconnectAudioFilePrompt + OverflowActionCallPriority - The TimeoutDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to timeout. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will reset the priority to 3 - Normal / Default. If the OverflowAction is set to Forward, and the OverflowActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. + PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High + - 2 = High + - 3 = Normal / Default + - 4 = Low + - 5 = Very Low + + > [!IMPORTANT] > Call priorities isn't currently supported for Authorized users (/microsoftteams/aa-cq-authorized-users-plan)in Queues App. Authorized users will not be able to edit call flows with priorities. - Guid + Int16 - Guid + Int16 None - TimeoutDisconnectTextToSpeechPrompt + OverflowActionTarget - The TimeoutDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to timeout. + > Applicable: Microsoft Teams + The OverflowActionTarget parameter represents the target of the overflow action. If the OverFlowAction is set to Forward, this parameter must be set to a Guid or a telephone number with a mandatory 'tel:' prefix. If the OverflowAction is set to SharedVoicemail, this parameter must be set to a group ID (Microsoft 365, Distribution list, or Mail-enabled security). Otherwise, this parameter is optional. String @@ -70667,9 +77646,10 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - TimeoutRedirectPersonAudioFilePrompt + OverflowDisconnectAudioFilePrompt - The TimeoutRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to timeout. + > Applicable: Microsoft Teams + The OverflowDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to overflow. Guid @@ -70679,9 +77659,10 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - TimeoutRedirectPersonTextToSpeechPrompt + OverflowDisconnectTextToSpeechPrompt - Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to timeout. + > Applicable: Microsoft Teams + The OverflowDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to overflow. String @@ -70691,9 +77672,9 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - TimeoutRedirectVoiceAppAudioFilePrompt + OverflowRedirectPersonAudioFilePrompt - Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to timeout. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to overflow. Guid @@ -70703,9 +77684,9 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - TimeoutRedirectVoiceAppTextToSpeechPrompt + OverflowRedirectPersonTextToSpeechPrompt - The TimeoutRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to timeout. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to overflow. String @@ -70715,9 +77696,10 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - TimeoutRedirectPhoneNumberAudioFilePrompt + OverflowRedirectPhoneNumberAudioFilePrompt - The TimeoutRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to timeout. + > Applicable: Microsoft Teams + The OverflowRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to overflow. Guid @@ -70727,9 +77709,10 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - TimeoutRedirectPhoneNumberTextToSpeechPrompt + OverflowRedirectPhoneNumberTextToSpeechPrompt - The TimeoutRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to timeout. + > Applicable: Microsoft Teams + The OverflowRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to overflow. String @@ -70739,9 +77722,10 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - TimeoutRedirectVoicemailAudioFilePrompt + OverflowRedirectVoiceAppAudioFilePrompt - Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to timeout. + > Applicable: Microsoft Teams + The OverflowRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to overflow. Guid @@ -70751,9 +77735,10 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - TimeoutRedirectVoicemailTextToSpeechPrompt + OverflowRedirectVoiceAppTextToSpeechPrompt - Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to timeout. + > Applicable: Microsoft Teams + The OverflowRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to overflow. String @@ -70763,9 +77748,21 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - TimeoutSharedVoicemailTextToSpeechPrompt + OverflowRedirectVoicemailAudioFilePrompt - The TimeoutSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on timeout. This parameter becomes a required parameter when TimeoutAction is SharedVoicemail and TimeoutSharedVoicemailAudioFilePrompt is null. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to overflow. + + Guid + + Guid + + + None + + + OverflowRedirectVoicemailTextToSpeechPrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to overflow. String @@ -70775,9 +77772,10 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - TimeoutSharedVoicemailAudioFilePrompt + OverflowSharedVoicemailAudioFilePrompt - The TimeoutSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on timeout. This parameter becomes a required parameter when TimeoutAction is SharedVoicemail and TimeoutSharedVoicemailTextToSpeechPrompt is null. + > Applicable: Microsoft Teams + The OverflowSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on overflow. This parameter becomes a required parameter when OverflowAction is SharedVoicemail and OverflowSharedVoicemailTextToSpeechPrompt is null. Guid @@ -70787,81 +77785,88 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - EnableTimeoutSharedVoicemailTranscription + OverflowSharedVoicemailTextToSpeechPrompt - The EnableTimeoutSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on timeout. This parameter is only applicable when TimeoutAction is set to SharedVoicemail. + > Applicable: Microsoft Teams + The OverflowSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on overflow. This parameter becomes a required parameter when OverflowAction is SharedVoicemail and OverflowSharedVoicemailAudioFilePrompt is null. - Boolean + String - Boolean + String - False + None - EnableTimeoutSharedVoicemailSystemPromptSuppression + OverflowThreshold - The EnableTimeoutSharedVoicemailSystemPromptSuppression parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when OverflowAction is set to SharedVoicemail. + > Applicable: Microsoft Teams + The OverflowThreshold parameter defines the number of calls that can be in the queue at any one time before the overflow action is triggered. The OverflowThreshold can be any integer value between 0 and 200, inclusive. A value of 0 causes calls not to reach agents and the overflow action to be taken immediately. - Boolean + Int16 - Boolean + Int16 - False + 50 - NoAgentDisconnectTextToSpeechPrompt + PresenceBasedRouting - The NoAgentDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to no agents. + > Applicable: Microsoft Teams + The PresenceBasedRouting parameter indicates whether or not presence based routing will be applied while call being routed to Call Queue agents. When set to False, calls will be routed to agents who have opted in to receive calls, regardless of their presence state. When set to True, opted-in agents will receive calls only when their presence state is Available. - String + Boolean - String + Boolean - None + False - NoAgentDisconnectAudioFilePrompt + RoutingMethod - The NoAgentDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to no agents. + > Applicable: Microsoft Teams + The RoutingMethod defines how agents will be called in a Call Queue. If the routing method is set to Serial, then agents will be called one at a time. If the routing method is set to Attendant, then agents will be called in parallel. If routing method is set to RoundRobin, the agents will be called using Round Robin strategy so that all agents share the call-load equally. If routing method is set to LongestIdle, the agents will be called based on their idle time, i.e., the agent that has been idle for the longest period will be called. + PARAMVALUE: Attendant | Serial | RoundRobin | LongestIdle - Guid + Object - Guid + Object - None + Attendant - NoAgentRedirectPersonTextToSpeechPrompt + ServiceLevelThresholdResponseTimeInSecond - Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to no agents. + The target number of seconds calls should be answered in. This number is used to calculate the call queue service level percentage. + A value of `$null` indicates that a service level percentage will not be calculated for this call queue. - String + Int16 - String + Int16 None - NoAgentRedirectPersonAudioFilePrompt + SharedCallQueueHistoryTemplateId - Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to no agents. + Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The SharedCallQueueHistoryTemplateId parameter indicates the Shared Call Queue History template to apply to the call queue. - Guid + String - Guid + String None - NoAgentRedirectVoiceAppTextToSpeechPrompt + ShiftsSchedulingGroupId - The NoAgentRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to no agents. + > Applicable: Microsoft Teams + Id of the Scheduling Group to connect a call queue to. String @@ -70871,33 +77876,35 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - NoAgentRedirectVoiceAppAudioFilePrompt + ShiftsTeamId - The NoAgentRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to no agents. + > Applicable: Microsoft Teams + Id of the Team containing the Scheduling Group to connect a call queue to. - Guid + String - Guid + String None - NoAgentRedirectPhoneNumberTextToSpeechPrompt + ShouldOverwriteCallableChannelProperty - The NoAgentRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to no agents. + A Teams Channel can only be linked to one Call Queue at a time. To force reassignment of the Teams Channel to a new Call Queue, set this to $true. - String + Boolean - String + Boolean - None + False - NoAgentRedirectPhoneNumberAudioFilePrompt + Tenant - The NoAgentRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to no agents. + > Applicable: Microsoft Teams + This parameter is reserved for Microsoft internal use only. Guid @@ -70907,9 +77914,9 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - NoAgentRedirectVoicemailTextToSpeechPrompt + TextAnnouncementForCR - Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to no agent. + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The TextAnnouncementForCR parameter indicates the custom Text-to-Speech (TTS) prompt which is played to callers when compliance recording for call queues is enabled. String @@ -70919,69 +77926,81 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - NoAgentRedirectVoicemailAudioFilePrompt + TextAnnouncementForCRFailure - Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to no agent. + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The TextAnnouncementForCRFailure parameter indicates the custom Text-to-Speech (TTS) prompt which is played to callers if the compliance recording for call queue bot is unable to join or drops from the call. - Guid + String - Guid + String None - NoAgentSharedVoicemailTextToSpeechPrompt + TimeoutAction - The NoAgentSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on no agents. This parameter becomes a required parameter when NoAgentAction is SharedVoicemail and NoAgentSharedVoicemailAudioFilePrompt is null. + > Applicable: Microsoft Teams + The TimeoutAction parameter defines the action to take if the timeout threshold is reached. The TimeoutAction property must be set to one of the following values: Disconnect, Forward, Voicemail, and SharedVoicemail. The default value is Disconnect. + PARAMVALUE: Disconnect | Forward | Voicemail | SharedVoicemail - String + Object - String + Object - None + Disconnect - NoAgentSharedVoicemailAudioFilePrompt + TimeoutActionCallPriority - The NoAgentSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on no agents. This parameter becomes a required parameter when NoAgentAction is SharedVoicemail and NoAgentSharedVoicemailTextToSpeechPrompt is null. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will reset the priority to 3 - Normal / Default. If the TimeoutAction is set to Forward, and the TimeoutActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. + PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High + - 2 = High + - 3 = Normal / Default + - 4 = Low + - 5 = Very Low + + > [!IMPORTANT] > Call priorities isn't currently supported for Authorized users (/microsoftteams/aa-cq-authorized-users-plan)in Queues App. Authorized users will not be able to edit call flows with priorities. - Guid + Int16 - Guid + Int16 None - EnableNoAgentSharedVoicemailTranscription + TimeoutActionTarget - The EnableNoAgentSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on no agents. This parameter is only applicable when NoAgentAction is set to SharedVoicemail. + > Applicable: Microsoft Teams + The TimeoutActionTarget represents the target of the timeout action. If the TimeoutAction is set to Forward, this parameter must be set to a Guid or a telephone number with a mandatory 'tel:' prefix. If the TimeoutAction is set to SharedVoicemail, this parameter must be set to an Office 365 Group ID. Otherwise, this field is optional. - Boolean + String - Boolean + String - False + None - EnableNoAgentSharedVoicemailSystemPromptSuppression + TimeoutDisconnectAudioFilePrompt - The EnableNoAgentSharedVoicemailSystemPromptSuppression parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when NoAgentAction is set to SharedVoicemail. + > Applicable: Microsoft Teams + The TimeoutDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to timeout. - Boolean + Guid - Boolean + Guid - False + None - ChannelId + TimeoutDisconnectTextToSpeechPrompt - Id of the channel to connect a call queue to. + > Applicable: Microsoft Teams + The TimeoutDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to timeout. String @@ -70991,9 +78010,10 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - ChannelUserObjectId + TimeoutRedirectPersonAudioFilePrompt - The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). This is the GUID of one of the owners of the team that the channel belongs to. + > Applicable: Microsoft Teams + The TimeoutRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to timeout. Guid @@ -71003,9 +78023,9 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - ShiftsTeamId + TimeoutRedirectPersonTextToSpeechPrompt - Voice applications private preview customers only Saving a call queue configuration through Teams admin center will *remove* this setting. Id of the Team containing the Scheduling Group to connect a call queue to. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to timeout. String @@ -71015,45 +78035,48 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - ShiftsSchedulingGroupId + TimeoutRedirectPhoneNumberAudioFilePrompt - Voice applications private preview customers only Saving a call queue configuration through Teams admin center will *remove* this setting. Id of the Scheduling Group to connect a call queue to. + > Applicable: Microsoft Teams + The TimeoutRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to timeout. - String + Guid - String + Guid None - AuthorizedUsers + TimeoutRedirectPhoneNumberTextToSpeechPrompt - This is a list of GUIDs for users who are authorized to make changes to this call queue. The users must also have a TeamsVoiceApplications policy assigned. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). + > Applicable: Microsoft Teams + The TimeoutRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to timeout. - List + String - List + String None - HideAuthorizedUsers + TimeoutRedirectVoiceAppAudioFilePrompt - Saving a call queue configuration through Teams admin center will *remove* this setting. This is a list of GUIDs of authorized users who should not appear on the list of supervisors for the agents who are members of this queue. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to timeout. - List + Guid - List + Guid None - WelcomeTextToSpeechPrompt + TimeoutRedirectVoiceAppTextToSpeechPrompt - This parameter indicates which Text-to-Speech (TTS) prompt is played when callers are connected to the Call Queue. + > Applicable: Microsoft Teams + The TimeoutRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to timeout. String @@ -71063,26 +78086,21 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - IsCallbackEnabled + TimeoutRedirectVoicemailAudioFilePrompt - The IsCallbackEnabled parameter is used to turn on/off callback. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to timeout. - Boolean + Guid - Boolean + Guid None - CallbackRequestDtmf + TimeoutRedirectVoicemailTextToSpeechPrompt - The DTMF touch-tone key the caller will be told to press to select callback. The CallbackRequestDtmf must be set to one of the following values: - - Tone0 to Tone9 - Corresponds to DTMF tones from 0 to 9. - - ToneStar - Corresponds to DTMF tone *. - - TonePound - Corresponds to DTMF tone #. - - This parameter becomes a required parameter when IsCallbackEnabled is set to `True`. + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to timeout. String @@ -71092,104 +78110,107 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - WaitTimeBeforeOfferingCallbackInSecond + TimeoutSharedVoicemailAudioFilePrompt - The number of seconds a call must wait before becoming eligible for callback. This condition applies to calls at the front of the call queue. Set to null ($null) to disable this condition. - At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. + > Applicable: Microsoft Teams + The TimeoutSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on timeout. This parameter becomes a required parameter when TimeoutAction is SharedVoicemail and TimeoutSharedVoicemailTextToSpeechPrompt is null. - Int16 + Guid - Int16 + Guid None - NumberOfCallsInQueueBeforeOfferingCallback + TimeoutSharedVoicemailTextToSpeechPrompt - The number of calls in queue before a call becomes eligible for callback. This condition applies to calls arriving at the call queue. Set to null ($null) to disable this condition. - At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. + > Applicable: Microsoft Teams + The TimeoutSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on timeout. This parameter becomes a required parameter when TimeoutAction is SharedVoicemail and TimeoutSharedVoicemailAudioFilePrompt is null. - Int16 + String - Int16 + String None - CallToAgentRatioThresholdBeforeOfferingCallback + TimeoutThreshold - The ratio of calls to agents that must be in queue before a call becomes eligible for callback. This conditon applies to calls arriving at the call queue. Minimum value of one (1). Set to null ($null) to disable this condition. - At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. + > Applicable: Microsoft Teams + The TimeoutThreshold parameter defines the time (in seconds) that a call can be in the queue before that call times out. At that point, the system will take the action specified by the TimeoutAction parameter. The TimeoutThreshold can be any integer value between 0 and 2700 seconds (inclusive), and is rounded to the nearest 15th interval. For example, if set to 47 seconds, then it is rounded down to 45. If set to 0, welcome music is played, and then the timeout action will be taken. Int16 Int16 - None + 1200 - CallbackOfferAudioFilePromptResourceId + UseDefaultMusicOnHold - The CallbackOfferAudioFilePromptResourceId parameter indicates the unique identifier for the Audio file prompt which is played to calls that are eligible for callback. This message should tell callers which DTMF touch-tone key (CallbackRequestDtmf) to press to select callback. This parameter, or `-CallbackOfferTextToSpeechPrompt`, becomes a required parameter when IsCallbackEnabled is set to `True`. + > Applicable: Microsoft Teams + The UseDefaultMusicOnHold parameter indicates that this Call Queue uses the default music on hold. This parameter cannot be specified together with MusicOnHoldAudioFileId. - Guid + Boolean - Guid + Boolean None - CallbackOfferTextToSpeechPrompt + Users - The CallbackOfferTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to calls that are eligible for callback. This message should tell callers which DTMF touch-tone key (CallbackRequestDtmf) to press to select callback. This parameter, or `-CallbackOfferAudioFilePromptResourceId`, becomes a required parameter when IsCallbackEnabled is set to `True`. + > Applicable: Microsoft Teams + The User parameter lets you add agents to the Call Queue. This parameter expects a list of user unique identifiers (GUID). - String + List - String + List None - CallbackEmailNotificationTarget + WaitTimeBeforeOfferingCallbackInSecond - The CallbackEmailNotificationTarget parameter must be set to a group ID (Microsoft 365, Distribution list, or Mail-enabled security) that will receive notification if a callback times out of the call queue or can't be completed for some other reason. This parameter becomes a required parameter when IsCallbackEnabled is set to `True`. + The number of seconds a call must wait before becoming eligible for callback. This condition applies to calls at the front of the call queue. Set to null ($null) to disable this condition. + At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. - Guid + Int16 - Guid + Int16 None - ServiceLevelThresholdResponseTimeInSecond + WelcomeMusicAudioFileId - The target number of seconds calls should be answered in. This number is used to calculate the call queue service level percentage. - A value of `$null` indicates that a service level percentage will not be calculated for this call queue. + > Applicable: Microsoft Teams + The WelcomeMusicAudioFileId parameter represents the audio file to play when callers are connected with the Call Queue. This is the unique identifier of the audio file. - Int16 + Guid - Int16 + Guid None - ShouldOverwriteCallableChannelProperty + WelcomeTextToSpeechPrompt - A Teams Channel can only be linked to one Call Queue at a time. To force reassignment of the Teams Channel to a new Call Queue, set this to $true. + This parameter indicates which Text-to-Speech (TTS) prompt is played when callers are connected to the Call Queue. - Boolean + String - Boolean + String - False + None @@ -71220,14 +78241,163 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource -------------------------- Example 2 -------------------------- Set-CsCallQueue -Identity e7e00636-47da-449c-a36b-1b3d6ee04440 -DistributionLists @("8521b0e3-51bd-4a4b-a8d6-b219a77a0a6a", "868dccd8-d723-4b4f-8d74-ab59e207c357") -MusicOnHoldAudioFileId $audioFile.Id - This example updates the Call Queue with new distribution lists and references a new music on hold audio file using the audio file ID from the stored variable $audioFile created with the Import-CsOnlineAudioFile cmdlet (https://learn.microsoft.com/powershell/module/teams/import-csonlineaudiofile) + This example updates the Call Queue with new distribution lists and references a new music on hold audio file using the audio file ID from the stored variable $audioFile created with the Import-CsOnlineAudioFile cmdlet (https://learn.microsoft.com/powershell/module/microsoftteams/import-csonlineaudiofile) + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-cscallqueue + + + Create a Phone System Call Queue + https://support.office.com/article/Create-a-Phone-System-call-queue-67ccda94-1210-43fb-a25b-7b9785f8a061 + + + New-CsCallQueue + + + + Get-CsCallQueue + + + + Remove-CsCallQueue + + + + New-CsComplianceRecordingForCallQueueTemplate + + + + Set-CsComplianceRecordingForCallQueueTemplate + + + + Get-CsComplianceRecordingForCallQueueTemplate + + + + Remove-CsComplianceRecordingForCallQueueTemplate + + + + + + + Set-CsComplianceRecordingForCallQueueTemplate + Set + CsComplianceRecordingForCallQueueTemplate + + Use the Set-CsComplianceRecordingForCallQueueTemplate cmdlet to make changes to an existing Compliance Recording for Call Queues template. + + + + Use the Set-CsComplianceRecordingForCallQueueTemplate cmdlet to make changes to an existing Compliance Recording for Call Queues template. + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for this feature. General Availability for this functionality has not been determined at this time. + + + + Set-CsComplianceRecordingForCallQueueTemplate + + Instance + + > Applicable: Microsoft Teams + The Instance parameter is the unique identifier assigned to the Compliance Recording for Call Queue template. + + System.String + + System.String + + + None + + + + + + Instance + + > Applicable: Microsoft Teams + The Instance parameter is the unique identifier assigned to the Compliance Recording for Call Queue template. + + System.String + + System.String + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.OAA.Models.AutoAttendant + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + $template = CsComplianceRecordingForCallQueueTemplate -Id 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01 +$template.BotId = 14732826-8206-42e3-b51e-6693e2abb698 +Set-CsComplianceRecordingForCallQueueTemplate $template + + The Set-CsComplianceRecordingForCallQueueTemplate cmdlet lets you modify the properties of a Compliance Recording for Call Queue Template. Online Version: - https://learn.microsoft.com/powershell/module/teams/set-cscallqueue + https://learn.microsoft.com/powershell/module/microsoftteams/Set-CsComplianceRecordingForCallQueueTemplate + + + New-CsComplianceRecordingForCallQueueTemplate + + + + Set-CsComplianceRecordingForCallQueueTemplate + + + + Remove-CsComplianceRecordingForCallQueueTemplate + + + + Get-CsCallQueue + + + + New-CsCallQueue + + + + Set-CsCallQueue + + + + Remove-CsCallQuuee + @@ -71258,6 +78428,17 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + Description @@ -71305,20 +78486,21 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + Description @@ -71379,18 +78561,6 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - @@ -71411,19 +78581,19 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csinboundblockednumberpattern + https://learn.microsoft.com/powershell/module/microsoftteams/set-csinboundblockednumberpattern New-CsInboundBlockedNumberPattern - https://learn.microsoft.com/powershell/module/teams/new-csinboundblockednumberpattern + https://learn.microsoft.com/powershell/module/microsoftteams/new-csinboundblockednumberpattern Get-CsInboundBlockedNumberPattern - https://learn.microsoft.com/powershell/module/teams/get-csinboundblockednumberpattern + https://learn.microsoft.com/powershell/module/microsoftteams/get-csinboundblockednumberpattern Remove-CsInboundBlockedNumberPattern - https://learn.microsoft.com/powershell/module/teams/remove-csinboundblockednumberpattern + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csinboundblockednumberpattern @@ -71454,6 +78624,17 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + Description @@ -71501,20 +78682,21 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + Description @@ -71575,18 +78757,6 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - @@ -71614,74 +78784,189 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csinboundexemptnumberpattern + https://learn.microsoft.com/powershell/module/microsoftteams/set-csinboundexemptnumberpattern Get-CsInboundExemptNumberPattern - https://learn.microsoft.com/powershell/module/teams/get-csinboundexemptnumberpattern + https://learn.microsoft.com/powershell/module/microsoftteams/get-csinboundexemptnumberpattern New-CsInboundExemptNumberPattern - https://learn.microsoft.com/powershell/module/teams/new-csinboundexemptnumberpattern + https://learn.microsoft.com/powershell/module/microsoftteams/new-csinboundexemptnumberpattern Remove-CsInboundExemptNumberPattern - https://learn.microsoft.com/powershell/module/teams/remove-csinboundexemptnumberpattern + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csinboundexemptnumberpattern Test-CsInboundBlockedNumberPattern - https://learn.microsoft.com/powershell/module/teams/test-csinboundblockednumberpattern + https://learn.microsoft.com/powershell/module/microsoftteams/test-csinboundblockednumberpattern Get-CsTenantBlockedCallingNumbers - https://learn.microsoft.com/powershell/module/teams/get-cstenantblockedcallingnumbers + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantblockedcallingnumbers - Set-CsOnlineApplicationInstance + Set-CsMainlineAttendantAppointmentBookingFlow Set - CsOnlineApplicationInstance + CsMainlineAttendantAppointmentBookingFlow - Updates an application instance in Microsoft Entra ID. Note : The use of this cmdlet for assigning phone numbers in commercial and GCC cloud instances has been deprecated. Use the new Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/teams/set-csphonenumberassignment) and [Remove-CsPhoneNumberAssignment](https://learn.microsoft.com/powershell/module/teams/remove-csphonenumberassignment)cmdlets instead. + Changes an existing Mainline Attendant appointment booking flow - This cmdlet is used to update an application instance in Microsoft Entra ID. + The Set-CsMainlineAttendantAppointmentBookingFlow cmdlet changes an existing appointment booking flow that is used with Mainline Attendant + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for these features. General Availability for this functionality has not been determined at this time. - Set-CsOnlineApplicationInstance + Set-CsMainlineAttendantAppointmentBookingFlow - Identity + Instance - The URI or ID of the application instance to update. + The Instance parameter is the object reference to the Mainline Attendant Booking flow. + You can retrieve an object reference to an existing Mainline Attendant Booking flow by using the Get-CsMainlineAttendantAppointmentBookingFlow (Get-CsMainlineAttendantAppointmentBookingFlow.md)cmdlet and assigning the returned value to a variable. - System.String + Object - System.String + Object None - - OnpremPhoneNumber + + + + + Instance + + The Instance parameter is the object reference to the Mainline Attendant Booking flow. + You can retrieve an object reference to an existing Mainline Attendant Booking flow by using the Get-CsMainlineAttendantAppointmentBookingFlow (Get-CsMainlineAttendantAppointmentBookingFlow.md)cmdlet and assigning the returned value to a variable. + + Object + + Object + + + None + + + + + + + Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue + + + + + + + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csmainlineattendantappointmentbookingflow + + + + + + Set-CsMainlineAttendantQuestionAnswerFlow + Set + CsMainlineAttendantQuestionAnswerFlow + + Changes an existing Mainline Attendant question and answer (FAQ) flow + + + + The Set-CsMainlineAttendantQuestionAnswerFlow cmdlet changes an existing question and answer connection that can be used with Mainline Attendant + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for these features. General Availability for this functionality has not been determined at this time. + + + + Set-CsMainlineAttendantQuestionAnswerFlow + + Instance - Note : Using this parameter has been deprecated in commercial and GCC cloud instances. Use the new Set-CsPhoneNumberAssignment cmdlet instead. - Assigns a hybrid (on-premise) telephone number to the application instance. + The Instance parameter is the object reference to the Mainline Attendant Question and Answer flow to be modified. + You can retrieve an object reference to an existing Mainline Attendant Question and Answer Flow by using the Get-CsMainlineAttendantQuestionAnswerFlow (Get-CsMainlineAttendantQuestionAnswerFlow.md)cmdlet and assigning the returned value to a variable. - System.String + Object - System.String + Object None + + + + + Instance + + The Instance parameter is the object reference to the Mainline Attendant Question and Answer flow to be modified. + You can retrieve an object reference to an existing Mainline Attendant Question and Answer Flow by using the Get-CsMainlineAttendantQuestionAnswerFlow (Get-CsMainlineAttendantQuestionAnswerFlow.md)cmdlet and assigning the returned value to a variable. + + Object + + Object + + + None + + + + + + + Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue + + + + + + + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csmainlineattendantquestionanswerflow + + + + + + Set-CsOnlineApplicationInstance + Set + CsOnlineApplicationInstance + + Updates an application instance in Microsoft Entra ID. + + + + This cmdlet is used to update an application instance in Microsoft Entra ID. Note : The use of this cmdlet for assigning phone numbers in commercial and GCC cloud instances has been deprecated. Use the new Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberassignment) and [Remove-CsPhoneNumberAssignment](https://learn.microsoft.com/powershell/module/microsoftteams/remove-csphonenumberassignment)cmdlets instead. + + + + Set-CsOnlineApplicationInstance - ApplicationId + AcsResourceId - The application ID. The Microsoft application Auto Attendant has the ApplicationId ce933385-9390-45d1-9512-c8d228074e07 and the Microsoft application Call Queue has the ApplicationId 11cd3e2e-fccb-42ad-ad00-878b93575e07. Third-party applications available in a tenant will use other ApplicationId's. + The ACS Resource ID. The unique identifier assigned to an instance of Azure Communication Services within the Azure cloud infrastructure. System.Guid @@ -71691,9 +78976,10 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - AcsResourceId + ApplicationId - The ACS Resource ID. The unique identifier assigned to an instance of Azure Communication Services within the Azure cloud infrastructure. + > Applicable: Microsoft Teams + The application ID. The Microsoft application Auto Attendant has the ApplicationId ce933385-9390-45d1-9512-c8d228074e07 and the Microsoft application Call Queue has the ApplicationId 11cd3e2e-fccb-42ad-ad00-878b93575e07. Third-party applications available in a tenant will use other ApplicationId's. System.Guid @@ -71702,9 +78988,22 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + DisplayName + > Applicable: Microsoft Teams The display name. System.String @@ -71717,6 +79016,7 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource Force + > Applicable: Microsoft Teams This switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If it isn't provided in the command, you're prompted for administrative input if required. @@ -71725,21 +79025,37 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource False - - WhatIf + + Identity - Shows what would happen if the cmdlet runs. The cmdlet is not run. + > Applicable: Microsoft Teams + The URI or ID of the application instance to update. + System.String - SwitchParameter + System.String - False + None - - Confirm + + OnpremPhoneNumber - Prompts you for confirmation before running the cmdlet. + > Applicable: Microsoft Teams Note : Using this parameter has been deprecated in commercial and GCC cloud instances. Use the new Set-CsPhoneNumberAssignment cmdlet instead. + Assigns a hybrid (on-premise) telephone number to the application instance. + + System.String + + System.String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -71750,27 +79066,14 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource - - Identity - - The URI or ID of the application instance to update. - - System.String - - System.String - - - None - - OnpremPhoneNumber + AcsResourceId - Note : Using this parameter has been deprecated in commercial and GCC cloud instances. Use the new Set-CsPhoneNumberAssignment cmdlet instead. - Assigns a hybrid (on-premise) telephone number to the application instance. + The ACS Resource ID. The unique identifier assigned to an instance of Azure Communication Services within the Azure cloud infrastructure. - System.String + System.Guid - System.String + System.Guid None @@ -71778,6 +79081,7 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource ApplicationId + > Applicable: Microsoft Teams The application ID. The Microsoft application Auto Attendant has the ApplicationId ce933385-9390-45d1-9512-c8d228074e07 and the Microsoft application Call Queue has the ApplicationId 11cd3e2e-fccb-42ad-ad00-878b93575e07. Third-party applications available in a tenant will use other ApplicationId's. System.Guid @@ -71787,21 +79091,23 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - - AcsResourceId + + Confirm - The ACS Resource ID. The unique identifier assigned to an instance of Azure Communication Services within the Azure cloud infrastructure. + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. - System.Guid + SwitchParameter - System.Guid + SwitchParameter - None + False DisplayName + > Applicable: Microsoft Teams The display name. System.String @@ -71814,6 +79120,7 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource Force + > Applicable: Microsoft Teams This switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If it isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -71823,22 +79130,37 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource False - - WhatIf + + Identity - Shows what would happen if the cmdlet runs. The cmdlet is not run. + > Applicable: Microsoft Teams + The URI or ID of the application instance to update. - SwitchParameter + System.String - SwitchParameter + System.String - False + None - - Confirm + + OnpremPhoneNumber - Prompts you for confirmation before running the cmdlet. + > Applicable: Microsoft Teams Note : Using this parameter has been deprecated in commercial and GCC cloud instances. Use the new Set-CsPhoneNumberAssignment cmdlet instead. + Assigns a hybrid (on-premise) telephone number to the application instance. + + System.String + + System.String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -71867,23 +79189,23 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csonlineapplicationinstance + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineapplicationinstance Get-CsOnlineApplicationInstance - https://learn.microsoft.com/powershell/module/teams/get-csonlineapplicationinstance + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineapplicationinstance New-CsOnlineApplicationInstance - https://learn.microsoft.com/powershell/module/teams/new-csonlineapplicationinstance + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineapplicationinstance Find-CsOnlineApplicationInstance - https://learn.microsoft.com/powershell/module/teams/find-csonlineapplicationinstance + https://learn.microsoft.com/powershell/module/microsoftteams/find-csonlineapplicationinstance Sync-CsOnlineApplicationInstance - https://learn.microsoft.com/powershell/module/teams/sync-csonlineapplicationinstance + https://learn.microsoft.com/powershell/module/microsoftteams/sync-csonlineapplicationinstance @@ -71955,8 +79277,7 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource OnlinePstnUsages - A list of online PSTN usages (such as Local or Long Distance) that can be applied to this online audio conferencing routing policy. The online PSTN usages must be existing usages (PSTN usages can be retrieved by calling the Get-CsOnlinePstnUsage cmdlet). - + A list of online PSTN usages (such as Local or Long Distance) that can be applied to this online audio conferencing routing policy. The online PSTN usages must be existing usages (PSTN usages can be retrieved by calling the Get-CsOnlinePstnUsage cmdlet). Object @@ -72042,8 +79363,7 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource OnlinePstnUsages - A list of online PSTN usages (such as Local or Long Distance) that can be applied to this online audio conferencing routing policy. The online PSTN usages must be existing usages (PSTN usages can be retrieved by calling the Get-CsOnlinePstnUsage cmdlet). - + A list of online PSTN usages (such as Local or Long Distance) that can be applied to this online audio conferencing routing policy. The online PSTN usages must be existing usages (PSTN usages can be retrieved by calling the Get-CsOnlinePstnUsage cmdlet). Object @@ -72114,7 +79434,7 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csonlineaudioconferencingroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineaudioconferencingroutingpolicy New-CsOnlineAudioConferencingRoutingPolicy @@ -72152,6 +79472,7 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource Identity + > Applicable: Microsoft Teams Specifies the globally-unique identifier (GUID) for the audio conferencing bridge to be modified. Guid @@ -72164,6 +79485,7 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource Instance + > Applicable: Microsoft Teams Allows you to pass a reference to a Microsoft audio conferencing bridge object to the cmdlet rather than set individual parameter values. ConferencingBridge @@ -72173,21 +79495,10 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource None - - Name - - Specifies the name of the audio conferencing bridge to be modified. - - String - - String - - - None - Confirm + > Applicable: Microsoft Teams The Confirm switch causes the command to pause processing, and requires confirmation to proceed. @@ -72199,6 +79510,7 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource DefaultServiceNumber + > Applicable: Microsoft Teams Specifies the default phone number to be used on the Microsoft audio conferencing bridge. The default number is used in meeting invitations. The DefaultServiceNumber must be assigned to the audio conferencing bridge. Also, when the default service number is changed, the service number of existing users will not be changed. @@ -72212,6 +79524,7 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource DomainController + > Applicable: Microsoft Teams Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this parameter include: Fully qualified domain name (FQDN): -DomainController atl-cs-001.Contoso.com. Computer name: -DomainController atl-cs-001 @@ -72226,6 +79539,7 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -72234,9 +79548,23 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource False + + Name + + > Applicable: Microsoft Teams + Specifies the name of the audio conferencing bridge to be modified. + + String + + String + + + None + SetDefault + > Applicable: Microsoft Teams PARAMVALUE: SwitchParameter @@ -72248,6 +79576,7 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource Tenant + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Guid @@ -72260,6 +79589,7 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource TenantDomain + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -72272,6 +79602,7 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource WhatIf + > Applicable: Microsoft Teams The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. @@ -72283,45 +79614,10 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource - - Identity - - Specifies the globally-unique identifier (GUID) for the audio conferencing bridge to be modified. - - Guid - - Guid - - - None - - - Instance - - Allows you to pass a reference to a Microsoft audio conferencing bridge object to the cmdlet rather than set individual parameter values. - - ConferencingBridge - - ConferencingBridge - - - None - - - Name - - Specifies the name of the audio conferencing bridge to be modified. - - String - - String - - - None - Confirm + > Applicable: Microsoft Teams The Confirm switch causes the command to pause processing, and requires confirmation to proceed. SwitchParameter @@ -72334,6 +79630,7 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource DefaultServiceNumber + > Applicable: Microsoft Teams Specifies the default phone number to be used on the Microsoft audio conferencing bridge. The default number is used in meeting invitations. The DefaultServiceNumber must be assigned to the audio conferencing bridge. Also, when the default service number is changed, the service number of existing users will not be changed. @@ -72347,6 +79644,7 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource DomainController + > Applicable: Microsoft Teams Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this parameter include: Fully qualified domain name (FQDN): -DomainController atl-cs-001.Contoso.com. Computer name: -DomainController atl-cs-001 @@ -72361,6 +79659,7 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -72370,9 +79669,49 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource False + + Identity + + > Applicable: Microsoft Teams + Specifies the globally-unique identifier (GUID) for the audio conferencing bridge to be modified. + + Guid + + Guid + + + None + + + Instance + + > Applicable: Microsoft Teams + Allows you to pass a reference to a Microsoft audio conferencing bridge object to the cmdlet rather than set individual parameter values. + + ConferencingBridge + + ConferencingBridge + + + None + + + Name + + > Applicable: Microsoft Teams + Specifies the name of the audio conferencing bridge to be modified. + + String + + String + + + None + SetDefault + > Applicable: Microsoft Teams PARAMVALUE: SwitchParameter SwitchParameter @@ -72385,6 +79724,7 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource Tenant + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Guid @@ -72397,6 +79737,7 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource TenantDomain + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -72409,6 +79750,7 @@ Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -Resource WhatIf + > Applicable: Microsoft Teams The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. SwitchParameter @@ -72449,7 +79791,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csonlinedialinconferencingbridge + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinedialinconferencingbridge @@ -72495,6 +79837,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Identity + > Applicable: Microsoft Teams Specifies the default dial-in service number string. The service number can be specified in the following formats: E.164 number, +<E.164 number> and tel:<E.164 number>. String @@ -72507,6 +79850,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Instance + > Applicable: Microsoft Teams Allows you to pass a reference to the Office 365 audio service number object to the cmdlet rather than set individual parameter values. ConferencingServiceNumber @@ -72519,6 +79863,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Confirm + > Applicable: Microsoft Teams The Confirm switch causes the command to pause processing, and requires confirmation to proceed. @@ -72530,6 +79875,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge DomainController + > Applicable: Microsoft Teams Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this parameter include: Fully qualified domain name (FQDN): -DomainController atl-cs-001.Contoso.com. Computer name: -DomainController atl-cs-001 @@ -72544,6 +79890,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -72555,6 +79902,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge PrimaryLanguage + > Applicable: Microsoft Teams Specifies the primary language that is used when users call into a meeting. The culture ID is used. For example, en-US for US English, ja-JP for Japanese, or es-ES for Spanish. Use the `Get-CsOnlineDialInConferencingLanguagesSupported` cmdlet to get a list of the available languages. @@ -72568,6 +79916,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge RestoreDefaultLanguages + > Applicable: Microsoft Teams Including this switch restores all of the default languages for the audio conferencing service number. @@ -72579,6 +79928,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge SecondaryLanguages + > Applicable: Microsoft Teams Specifies the secondary languages that can be used when users call into a meeting. The culture ID is used. For example, en-US for US English, ja-JP for Japanese, or es-ES for Spanish. The order you provide will be the order that will be presented to users that are calling into the meeting. There is a maximum of 4 languages that can be used as secondary languages. Use the `Get-CsOnlineDialInConferencingLanguagesSupported` cmdlet to get a list of the available languages. @@ -72592,6 +79942,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Tenant + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Guid @@ -72604,6 +79955,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge WhatIf + > Applicable: Microsoft Teams The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. @@ -72615,33 +79967,10 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge - - Identity - - Specifies the default dial-in service number string. The service number can be specified in the following formats: E.164 number, +<E.164 number> and tel:<E.164 number>. - - String - - String - - - None - - - Instance - - Allows you to pass a reference to the Office 365 audio service number object to the cmdlet rather than set individual parameter values. - - ConferencingServiceNumber - - ConferencingServiceNumber - - - None - Confirm + > Applicable: Microsoft Teams The Confirm switch causes the command to pause processing, and requires confirmation to proceed. SwitchParameter @@ -72654,6 +79983,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge DomainController + > Applicable: Microsoft Teams Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this parameter include: Fully qualified domain name (FQDN): -DomainController atl-cs-001.Contoso.com. Computer name: -DomainController atl-cs-001 @@ -72668,6 +79998,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -72677,9 +80008,36 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge False + + Identity + + > Applicable: Microsoft Teams + Specifies the default dial-in service number string. The service number can be specified in the following formats: E.164 number, +<E.164 number> and tel:<E.164 number>. + + String + + String + + + None + + + Instance + + > Applicable: Microsoft Teams + Allows you to pass a reference to the Office 365 audio service number object to the cmdlet rather than set individual parameter values. + + ConferencingServiceNumber + + ConferencingServiceNumber + + + None + PrimaryLanguage + > Applicable: Microsoft Teams Specifies the primary language that is used when users call into a meeting. The culture ID is used. For example, en-US for US English, ja-JP for Japanese, or es-ES for Spanish. Use the `Get-CsOnlineDialInConferencingLanguagesSupported` cmdlet to get a list of the available languages. @@ -72693,6 +80051,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge RestoreDefaultLanguages + > Applicable: Microsoft Teams Including this switch restores all of the default languages for the audio conferencing service number. SwitchParameter @@ -72705,6 +80064,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge SecondaryLanguages + > Applicable: Microsoft Teams Specifies the secondary languages that can be used when users call into a meeting. The culture ID is used. For example, en-US for US English, ja-JP for Japanese, or es-ES for Spanish. The order you provide will be the order that will be presented to users that are calling into the meeting. There is a maximum of 4 languages that can be used as secondary languages. Use the `Get-CsOnlineDialInConferencingLanguagesSupported` cmdlet to get a list of the available languages. @@ -72718,6 +80078,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Tenant + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Guid @@ -72730,6 +80091,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge WhatIf + > Applicable: Microsoft Teams The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. SwitchParameter @@ -72759,7 +80121,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csonlinedialinconferencingservicenumber + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinedialinconferencingservicenumber @@ -72783,6 +80145,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Identity + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. XdsIdentity @@ -72819,7 +80182,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge AllowFederatedUsersToDialOutToThirdParty - Specifies at this scope if dial out to third party participants is allowed. Possible settings are [No|Yes|RequireSameEnterpriseUser]. This parameter is Microsoft internal use only. + Specifies at this scope if dial out to third party participants is allowed. Possible settings are [No|Yes|RequireSameEnterpriseUser]. This parameter is Microsoft internal use only. String @@ -72831,6 +80194,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge AllowPSTNOnlyMeetingsByDefault + > Applicable: Microsoft Teams Specifies the default value that gets assigned to the "AllowPSTNOnlyMeetings" setting of users when they are enabled for dial-in conferencing, or when a user's dial-in conferencing provider is set to Microsoft. If set to $true, the "AllowPSTNOnlyMeetings" setting of the user will also be set to true. If $false, the user setting will be false. The default value for AllowPSTNOnlyMeetingsByDefault is $false. When AllowPSTNOnlyMeetingsByDefault is changed, the value of the "AllowPSTNOnlyMeetings" setting of currently enabled users doesn't change. The new default value will only be applied to users that are subsequently enabled for dial-in conferencing, or whose provider is changed to Microsoft. The "AllowPSTNOnlyMeetings" setting of a user defines if unauthenticated callers can start a meeting if they are the first person to join. An unauthenticated caller is defined as a participant who joins a meeting over the phone and doesn't provide the organizer PIN when joining the meeting. @@ -72846,6 +80210,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge AutomaticallyMigrateUserMeetings + > Applicable: Microsoft Teams Specifies if meetings of users in the tenant should automatically be rescheduled via the Meeting Migration Service when there's a change in the users' Cloud PSTN Confernecing coordinates, e.g. when a user is provisioned, de-provisoned, assigned a new default service number etc. If this is false, users will need to manually migrate their conferences using the Meeting Migration tool. PARAMVALUE: $true | $false Boolean @@ -72858,6 +80223,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge AutomaticallyReplaceAcpProvider + > Applicable: Microsoft Teams Specifies if a user already enabled for a 3rd party Audio Conferencing Provider (ACP) should automatically be converted to Microsoft's Online DialIn Conferencing service when a license for Microsoft's service is assigned to the user. If this is false, tenant admins will need to manually provision the user with the Enable-CsOnlineDialInConferencingUser cmdlet with the -ReplaceProvider switch present. PARAMVALUE: $true | $false Boolean @@ -72870,6 +80236,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge AutomaticallySendEmailsToUsers + > Applicable: Microsoft Teams Specifies whether advisory emails will be sent to users when the events listed below occur. Setting the parameter to $true enables the emails to be sent, $false disables the emails. The default is $true. User is enabled or disabled for dial-in conferencing. The dial-in conferencing provider is changed either to Microsoft, or from Microsoft to another provider, or none. @@ -72886,6 +80253,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Confirm + > Applicable: Microsoft Teams The Confirm switch causes the command to pause processing and requires confirmation to proceed. @@ -72909,6 +80277,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge EnableEntryExitNotifications + > Applicable: Microsoft Teams Specifies if, by default, announcements are made as users enter and exit a conference call. Set to $true to enable notifications, $false to disable notifications. The default is $true. This setting can be overridden on a meeting by meeting basis when a user joins a meeting via a Skype for Business client and modifies the Announce when people enter or leave setting on the Skype Meeting Options menu of a meeting. @@ -72922,6 +80291,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge EnableNameRecording + > Applicable: Microsoft Teams Specifies whether the name of a user is recorded on entry to the conference. This recording is used during entry and exit notifications. Set to $true to enable name recording, set to $false to bypass name recording. The default is $true. Boolean @@ -72934,6 +80304,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge EntryExitAnnouncementsType + > Applicable: Microsoft Teams Specifies if the Entry and Exit Announcement Uses names or tones only. PARAMVALUE: UseNames | ToneOnly EntryExitAnnouncementsType @@ -72946,6 +80317,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -72957,6 +80329,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge IncludeTollFreeNumberInMeetingInvites + > Applicable: Microsoft Teams This parameter is obsolete and not functional. Boolean @@ -72969,6 +80342,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Instance + > Applicable: Microsoft Teams Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. PSObject @@ -72978,9 +80352,25 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None + + MaskPstnNumbersType + + This parameter allows tenant administrators to configure masking of PSTN participant phone numbers in the roster view for Microsoft Teams meetings enabled for Audio Conferencing, scheduled within the organization. + Possible values are: - MaskedForExternalUsers (masked to external users) + - MaskedForAllUsers (masked for everyone) + - NoMasking (visible to everyone) + + String + + String + + + MaskedForExternalUsers + MigrateServiceNumbersOnCrossForestMove + > Applicable: Microsoft Teams Specifies whether service numbers assigned to the tenant should be migrated to the new forest of the tenant when the tenant is migrated cross region. If false, service numbers will be released back to stock once the migration completes. This settings does not apply to ported-in numbers that are always migrated. PARAMVALUE: $true | $false Boolean @@ -73005,6 +80395,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge PinLength + > Applicable: Microsoft Teams Specifies the number of digits in the automatically generated PINs. Organizers can enter their PIN to start a meeting they scheduled if they join via phone and are the first person to join. The minimum value is 4, the maximum is 12, and the default is 5. A user's PIN will only authenticate them as leaders for a meeting they scheduled. The PIN of a user that did not schedule the meeting will not enable that user to lead the meeting. @@ -73018,6 +80409,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge SendEmailFromAddress + > Applicable: Microsoft Teams Specifies the email address to use in the "From" contact information on emails that are sent to users to notify them of their dial-in conferencing settings, or when their settings change. The email address needs to be in the form <UserAlias>@<Domain>. For example, "KenMyer@Contoso.com" or "Admin@Contoso.com". The SendEmailFromAddress value is used only if the SendEmailFromDisplayName setting is specified, and the SendEmailFromOverride setting is $true. Note: The parameter has been deprecated and may be removed in future versions. @@ -73032,6 +80424,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge SendEmailFromDisplayName + > Applicable: Microsoft Teams Specifies the display name to use in the "From" contact information on emails that are sent to users to notify them of their dial-in conferencing settings, or when their settings change. The SendEmailFromDisplayName value is used only if the SendEmailFromDisplayName setting is specified, and the SendEmailFromOverride setting is $true. Note: The parameter has been deprecated and may be removed in future versions. @@ -73046,6 +80439,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge SendEmailFromOverride + > Applicable: Microsoft Teams Specifies if the contact information on dial-in conferencing notifications will be the default generated by Office 365, or administrator defined values. Setting SendEmailFromOverride to $true enables the system to use the SendEmailFromAddress and SendEmailFromDisplayName parameter inputs as the "From" contact information. Setting this parameter to $false will cause email notifications to be sent with the system generated default. The default is $false. SendEmailFromOverride can't be $true if SendEmailFromAddress and SendEmailFromDisplayName aren't specified. If you want to change the email address information, you need to make sure that your inbound email policies allow for emails that come from the address specified by the SendEmailFromAddress parameter. @@ -73061,6 +80455,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Tenant + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Object @@ -73073,6 +80468,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge UseUniqueConferenceIds + > Applicable: Microsoft Teams Specifies if Private Meetings are enabled for the users in this tenant. PARAMVALUE: $true | $false Boolean @@ -73082,24 +80478,10 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - - MaskPstnNumbersType - - This parameter allows tenant administrators to configure masking of PSTN participant phone numbers in the roster view for Microsoft Teams meetings enabled for Audio Conferencing, scheduled within the organization. - Possible values are: - MaskedForExternalUsers (masked to external users) - - MaskedForAllUsers (masked for everyone) - - NoMasking (visible to everyone) - - String - - String - - - MaskedForExternalUsers - WhatIf + > Applicable: Microsoft Teams The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. @@ -73138,7 +80520,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge AllowFederatedUsersToDialOutToThirdParty - Specifies at this scope if dial out to third party participants is allowed. Possible settings are [No|Yes|RequireSameEnterpriseUser]. This parameter is Microsoft internal use only. + Specifies at this scope if dial out to third party participants is allowed. Possible settings are [No|Yes|RequireSameEnterpriseUser]. This parameter is Microsoft internal use only. String @@ -73150,6 +80532,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge AllowPSTNOnlyMeetingsByDefault + > Applicable: Microsoft Teams Specifies the default value that gets assigned to the "AllowPSTNOnlyMeetings" setting of users when they are enabled for dial-in conferencing, or when a user's dial-in conferencing provider is set to Microsoft. If set to $true, the "AllowPSTNOnlyMeetings" setting of the user will also be set to true. If $false, the user setting will be false. The default value for AllowPSTNOnlyMeetingsByDefault is $false. When AllowPSTNOnlyMeetingsByDefault is changed, the value of the "AllowPSTNOnlyMeetings" setting of currently enabled users doesn't change. The new default value will only be applied to users that are subsequently enabled for dial-in conferencing, or whose provider is changed to Microsoft. The "AllowPSTNOnlyMeetings" setting of a user defines if unauthenticated callers can start a meeting if they are the first person to join. An unauthenticated caller is defined as a participant who joins a meeting over the phone and doesn't provide the organizer PIN when joining the meeting. @@ -73165,6 +80548,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge AutomaticallyMigrateUserMeetings + > Applicable: Microsoft Teams Specifies if meetings of users in the tenant should automatically be rescheduled via the Meeting Migration Service when there's a change in the users' Cloud PSTN Confernecing coordinates, e.g. when a user is provisioned, de-provisoned, assigned a new default service number etc. If this is false, users will need to manually migrate their conferences using the Meeting Migration tool. PARAMVALUE: $true | $false Boolean @@ -73177,6 +80561,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge AutomaticallyReplaceAcpProvider + > Applicable: Microsoft Teams Specifies if a user already enabled for a 3rd party Audio Conferencing Provider (ACP) should automatically be converted to Microsoft's Online DialIn Conferencing service when a license for Microsoft's service is assigned to the user. If this is false, tenant admins will need to manually provision the user with the Enable-CsOnlineDialInConferencingUser cmdlet with the -ReplaceProvider switch present. PARAMVALUE: $true | $false Boolean @@ -73189,6 +80574,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge AutomaticallySendEmailsToUsers + > Applicable: Microsoft Teams Specifies whether advisory emails will be sent to users when the events listed below occur. Setting the parameter to $true enables the emails to be sent, $false disables the emails. The default is $true. User is enabled or disabled for dial-in conferencing. The dial-in conferencing provider is changed either to Microsoft, or from Microsoft to another provider, or none. @@ -73205,6 +80591,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Confirm + > Applicable: Microsoft Teams The Confirm switch causes the command to pause processing and requires confirmation to proceed. SwitchParameter @@ -73229,6 +80616,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge EnableEntryExitNotifications + > Applicable: Microsoft Teams Specifies if, by default, announcements are made as users enter and exit a conference call. Set to $true to enable notifications, $false to disable notifications. The default is $true. This setting can be overridden on a meeting by meeting basis when a user joins a meeting via a Skype for Business client and modifies the Announce when people enter or leave setting on the Skype Meeting Options menu of a meeting. @@ -73242,6 +80630,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge EnableNameRecording + > Applicable: Microsoft Teams Specifies whether the name of a user is recorded on entry to the conference. This recording is used during entry and exit notifications. Set to $true to enable name recording, set to $false to bypass name recording. The default is $true. Boolean @@ -73254,6 +80643,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge EntryExitAnnouncementsType + > Applicable: Microsoft Teams Specifies if the Entry and Exit Announcement Uses names or tones only. PARAMVALUE: UseNames | ToneOnly EntryExitAnnouncementsType @@ -73266,6 +80656,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -73278,6 +80669,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Identity + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. XdsIdentity @@ -73290,6 +80682,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge IncludeTollFreeNumberInMeetingInvites + > Applicable: Microsoft Teams This parameter is obsolete and not functional. Boolean @@ -73302,6 +80695,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Instance + > Applicable: Microsoft Teams Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. PSObject @@ -73311,9 +80705,25 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None + + MaskPstnNumbersType + + This parameter allows tenant administrators to configure masking of PSTN participant phone numbers in the roster view for Microsoft Teams meetings enabled for Audio Conferencing, scheduled within the organization. + Possible values are: - MaskedForExternalUsers (masked to external users) + - MaskedForAllUsers (masked for everyone) + - NoMasking (visible to everyone) + + String + + String + + + MaskedForExternalUsers + MigrateServiceNumbersOnCrossForestMove + > Applicable: Microsoft Teams Specifies whether service numbers assigned to the tenant should be migrated to the new forest of the tenant when the tenant is migrated cross region. If false, service numbers will be released back to stock once the migration completes. This settings does not apply to ported-in numbers that are always migrated. PARAMVALUE: $true | $false Boolean @@ -73338,6 +80748,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge PinLength + > Applicable: Microsoft Teams Specifies the number of digits in the automatically generated PINs. Organizers can enter their PIN to start a meeting they scheduled if they join via phone and are the first person to join. The minimum value is 4, the maximum is 12, and the default is 5. A user's PIN will only authenticate them as leaders for a meeting they scheduled. The PIN of a user that did not schedule the meeting will not enable that user to lead the meeting. @@ -73351,6 +80762,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge SendEmailFromAddress + > Applicable: Microsoft Teams Specifies the email address to use in the "From" contact information on emails that are sent to users to notify them of their dial-in conferencing settings, or when their settings change. The email address needs to be in the form <UserAlias>@<Domain>. For example, "KenMyer@Contoso.com" or "Admin@Contoso.com". The SendEmailFromAddress value is used only if the SendEmailFromDisplayName setting is specified, and the SendEmailFromOverride setting is $true. Note: The parameter has been deprecated and may be removed in future versions. @@ -73365,6 +80777,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge SendEmailFromDisplayName + > Applicable: Microsoft Teams Specifies the display name to use in the "From" contact information on emails that are sent to users to notify them of their dial-in conferencing settings, or when their settings change. The SendEmailFromDisplayName value is used only if the SendEmailFromDisplayName setting is specified, and the SendEmailFromOverride setting is $true. Note: The parameter has been deprecated and may be removed in future versions. @@ -73379,6 +80792,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge SendEmailFromOverride + > Applicable: Microsoft Teams Specifies if the contact information on dial-in conferencing notifications will be the default generated by Office 365, or administrator defined values. Setting SendEmailFromOverride to $true enables the system to use the SendEmailFromAddress and SendEmailFromDisplayName parameter inputs as the "From" contact information. Setting this parameter to $false will cause email notifications to be sent with the system generated default. The default is $false. SendEmailFromOverride can't be $true if SendEmailFromAddress and SendEmailFromDisplayName aren't specified. If you want to change the email address information, you need to make sure that your inbound email policies allow for emails that come from the address specified by the SendEmailFromAddress parameter. @@ -73394,6 +80808,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Tenant + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Object @@ -73406,6 +80821,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge UseUniqueConferenceIds + > Applicable: Microsoft Teams Specifies if Private Meetings are enabled for the users in this tenant. PARAMVALUE: $true | $false Boolean @@ -73415,24 +80831,10 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - - MaskPstnNumbersType - - This parameter allows tenant administrators to configure masking of PSTN participant phone numbers in the roster view for Microsoft Teams meetings enabled for Audio Conferencing, scheduled within the organization. - Possible values are: - MaskedForExternalUsers (masked to external users) - - MaskedForAllUsers (masked for everyone) - - NoMasking (visible to everyone) - - String - - String - - - MaskedForExternalUsers - WhatIf + > Applicable: Microsoft Teams The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. SwitchParameter @@ -73469,15 +80871,15 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csonlinedialinconferencingtenantsettings + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinedialinconferencingtenantsettings Get-CsOnlineDialInConferencingTenantSettings - https://learn.microsoft.com/powershell/module/teams/get-csonlinedialinconferencingtenantsettings + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinedialinconferencingtenantsettings Remove-CsOnlineDialInConferencingTenantSettings - https://learn.microsoft.com/powershell/module/teams/remove-csonlinedialinconferencingtenantsettings + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinedialinconferencingtenantsettings @@ -73487,12 +80889,12 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Set CsOnlineDialInConferencingUser - > [!NOTE] > The AllowPSTNOnlyMeetings, ResetConferenceId, and ConferenceId parameters will be deprecated on Jan 31, 2022. To allow Teams meeting participants joining via the PSTN to bypass the lobby, use the AllowPSTNUsersToBypassLobby of the Set-CsTeamsMeetingPolicy cmdlet (https://learn.microsoft.com/powershell/module/teams/set-csteamsmeetingpolicy). The capabilities associated with the ResetConferenceId and ConferenceId parameters are no longer supported. Use the `Set-CsOnlineDialInConferencingUser` cmdlet to modify the properties of a user that has been enabled for Microsoft's audio conferencing service. The `Set-CsOnlineDialInConferencingUser` cmdlet is used to modify properties for a Microsoft audio conferencing user. This cmdlet will not work for users with third-party conferencing providers. The cmdlet will verify that the correct license is assigned to the user. + > [!NOTE] > The AllowPSTNOnlyMeetings, ResetConferenceId, and ConferenceId parameters will be deprecated on Jan 31, 2022. To allow Teams meeting participants joining via the PSTN to bypass the lobby, use the AllowPSTNUsersToBypassLobby of the Set-CsTeamsMeetingPolicy cmdlet (https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingpolicy). The capabilities associated with the ResetConferenceId and ConferenceId parameters are no longer supported. @@ -73500,6 +80902,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Identity + > Applicable: Microsoft Teams Specifies the Identity of the user account to be to be modified. A user identity can be specified by using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer) and 4) the user's Active Directory display name (for example, Ken Myer). You can also reference a user account by using the user's Active Directory distinguished name. UserIdParameter @@ -73510,22 +80913,23 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - TenantDomain + AllowPSTNOnlyMeetings - Specifies the domain name for the tenant or organization. - This parameter is reserved for internal Microsoft use. + > Applicable: Microsoft Teams + If true, non-authenticated users can start meetings. If false, non-authenticated callers wait in the lobby until an authenticated user joins, thereby starting the meeting. An authenticated user is a user who joins the meeting using a Skype for Business client, or the organizer that joined the meeting via dial-in conferencing and was authenticated by a PIN number. The default is false. - String + Boolean - String + Boolean None - AllowPSTNOnlyMeetings + AllowTollFreeDialIn - If true, non-authenticated users can start meetings. If false, non-authenticated callers wait in the lobby until an authenticated user joins, thereby starting the meeting. An authenticated user is a user who joins the meeting using a Skype for Business client, or the organizer that joined the meeting via dial-in conferencing and was authenticated by a PIN number. The default is false. + > Applicable: Microsoft Teams + If toll-free numbers are available in your Microsoft Audio Conferencing bridge, this parameter controls if they can be used to join the meetings of a given user. This setting can ONLY be managed using the TeamsAudioConferencingPolicy. By default, AllowTollFreeDialin is always set to True. Boolean @@ -73534,9 +80938,21 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None + + AsJob + + The parameter is used to run commands as background jobs. + + + SwitchParameter + + + False + BridgeId + > Applicable: Microsoft Teams Specifies the globally-unique identifier (GUID) for the audio conferencing bridge. Guid @@ -73549,6 +80965,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge BridgeName + > Applicable: Microsoft Teams Specifies the name of the audio conferencing bridge. String @@ -73561,6 +80978,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Confirm + > Applicable: Microsoft Teams The Confirm switch causes the command to pause processing and requires confirmation to proceed. @@ -73572,6 +80990,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge DomainController + > Applicable: Microsoft Teams Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this parameter include: Fully qualified domain name (FQDN): `-DomainController atl-cs-001.Contoso.com` Computer name: `-DomainController atl-cs-001` @@ -73587,6 +81006,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -73598,6 +81018,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge ResetLeaderPin + > Applicable: Microsoft Teams Specifies whether to reset the meeting organizer or leaders PIN for meetings. @@ -73609,6 +81030,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge SendEmail + > Applicable: Microsoft Teams Send an email to the user containing their Audio Conference information. @@ -73620,6 +81042,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge SendEmailFromAddress + > Applicable: Microsoft Teams You can specify the From Address to send the email that contains the Audio Conference information. This parameter must be used together with -SendEmailFromDisplayName and -SendEmail. String @@ -73632,6 +81055,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge SendEmailFromDisplayName + > Applicable: Microsoft Teams You can specify the Display Name to send the email that contains the Audio Conference information. This parameter must be used together with -SendEmailFromAddress and -SendEmail. String @@ -73644,6 +81068,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge SendEmailToAddress + > Applicable: Microsoft Teams You can specify the To Address to send the email that contains the Audio Conference information. This parameter must be used together with -SendEmail. String @@ -73656,6 +81081,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge ServiceNumber + > Applicable: Microsoft Teams Specifies the default service number for the user. The default number is used in meeting invitations. The cmdlet will verify that the service number is assigned to the user's current conference bridge, or the one the user is being assigned to. The service number can be specified in the following formats: E.164 number, +<E.164 number> and tel:<E.164 number>. @@ -73669,6 +81095,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Tenant + > Applicable: Microsoft Teams Specifies the globally unique identifier (GUID) of your Skype for Business Online tenant account. For example: `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"`. You can find your tenant ID by running this command: `Get-CsTenant | Select-Object DisplayName, TenantID` This parameter is reserved for internal Microsoft use. @@ -73680,9 +81107,11 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - TollFreeServiceNumber + TenantDomain - Specifies a toll-free phone number to be used by the user. This number is then used in meeting invitations. The toll-free number can be specified in the following formats: E.164 number, +<E.164 number> and tel:<E.164 number>. + > Applicable: Microsoft Teams + Specifies the domain name for the tenant or organization. + This parameter is reserved for internal Microsoft use. String @@ -73691,33 +81120,24 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - - WhatIf - - The WhatIf parameter is not implemented for this cmdlet. - - - SwitchParameter - - - False - - AllowTollFreeDialIn + TollFreeServiceNumber - If toll-free numbers are available in your Microsoft Audio Conferencing bridge, this parameter controls if they can be used to join the meetings of a given user. This setting can ONLY be managed using the TeamsAudioConferencingPolicy. By default, AllowTollFreeDialin is always set to True. + > Applicable: Microsoft Teams + Specifies a toll-free phone number to be used by the user. This number is then used in meeting invitations. The toll-free number can be specified in the following formats: E.164 number, +<E.164 number> and tel:<E.164 number>. - Boolean + String - Boolean + String None - - AsJob + + WhatIf - The parameter is used to run commands as background jobs. + > Applicable: Microsoft Teams + The WhatIf parameter is not implemented for this cmdlet. SwitchParameter @@ -73728,46 +81148,48 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge - - Identity + + AllowPSTNOnlyMeetings - Specifies the Identity of the user account to be to be modified. A user identity can be specified by using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer) and 4) the user's Active Directory display name (for example, Ken Myer). You can also reference a user account by using the user's Active Directory distinguished name. + > Applicable: Microsoft Teams + If true, non-authenticated users can start meetings. If false, non-authenticated callers wait in the lobby until an authenticated user joins, thereby starting the meeting. An authenticated user is a user who joins the meeting using a Skype for Business client, or the organizer that joined the meeting via dial-in conferencing and was authenticated by a PIN number. The default is false. - UserIdParameter + Boolean - UserIdParameter + Boolean None - TenantDomain + AllowTollFreeDialIn - Specifies the domain name for the tenant or organization. - This parameter is reserved for internal Microsoft use. + > Applicable: Microsoft Teams + If toll-free numbers are available in your Microsoft Audio Conferencing bridge, this parameter controls if they can be used to join the meetings of a given user. This setting can ONLY be managed using the TeamsAudioConferencingPolicy. By default, AllowTollFreeDialin is always set to True. - String + Boolean - String + Boolean None - AllowPSTNOnlyMeetings + AsJob - If true, non-authenticated users can start meetings. If false, non-authenticated callers wait in the lobby until an authenticated user joins, thereby starting the meeting. An authenticated user is a user who joins the meeting using a Skype for Business client, or the organizer that joined the meeting via dial-in conferencing and was authenticated by a PIN number. The default is false. + The parameter is used to run commands as background jobs. - Boolean + SwitchParameter - Boolean + SwitchParameter - None + False BridgeId + > Applicable: Microsoft Teams Specifies the globally-unique identifier (GUID) for the audio conferencing bridge. Guid @@ -73780,6 +81202,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge BridgeName + > Applicable: Microsoft Teams Specifies the name of the audio conferencing bridge. String @@ -73792,6 +81215,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Confirm + > Applicable: Microsoft Teams The Confirm switch causes the command to pause processing and requires confirmation to proceed. SwitchParameter @@ -73804,6 +81228,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge DomainController + > Applicable: Microsoft Teams Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this parameter include: Fully qualified domain name (FQDN): `-DomainController atl-cs-001.Contoso.com` Computer name: `-DomainController atl-cs-001` @@ -73819,6 +81244,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -73828,9 +81254,23 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge False + + Identity + + > Applicable: Microsoft Teams + Specifies the Identity of the user account to be to be modified. A user identity can be specified by using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer) and 4) the user's Active Directory display name (for example, Ken Myer). You can also reference a user account by using the user's Active Directory distinguished name. + + UserIdParameter + + UserIdParameter + + + None + ResetLeaderPin + > Applicable: Microsoft Teams Specifies whether to reset the meeting organizer or leaders PIN for meetings. SwitchParameter @@ -73843,6 +81283,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge SendEmail + > Applicable: Microsoft Teams Send an email to the user containing their Audio Conference information. SwitchParameter @@ -73855,6 +81296,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge SendEmailFromAddress + > Applicable: Microsoft Teams You can specify the From Address to send the email that contains the Audio Conference information. This parameter must be used together with -SendEmailFromDisplayName and -SendEmail. String @@ -73867,6 +81309,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge SendEmailFromDisplayName + > Applicable: Microsoft Teams You can specify the Display Name to send the email that contains the Audio Conference information. This parameter must be used together with -SendEmailFromAddress and -SendEmail. String @@ -73879,6 +81322,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge SendEmailToAddress + > Applicable: Microsoft Teams You can specify the To Address to send the email that contains the Audio Conference information. This parameter must be used together with -SendEmail. String @@ -73891,6 +81335,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge ServiceNumber + > Applicable: Microsoft Teams Specifies the default service number for the user. The default number is used in meeting invitations. The cmdlet will verify that the service number is assigned to the user's current conference bridge, or the one the user is being assigned to. The service number can be specified in the following formats: E.164 number, +<E.164 number> and tel:<E.164 number>. @@ -73904,6 +81349,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Tenant + > Applicable: Microsoft Teams Specifies the globally unique identifier (GUID) of your Skype for Business Online tenant account. For example: `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"`. You can find your tenant ID by running this command: `Get-CsTenant | Select-Object DisplayName, TenantID` This parameter is reserved for internal Microsoft use. @@ -73915,9 +81361,11 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - TollFreeServiceNumber + TenantDomain - Specifies a toll-free phone number to be used by the user. This number is then used in meeting invitations. The toll-free number can be specified in the following formats: E.164 number, +<E.164 number> and tel:<E.164 number>. + > Applicable: Microsoft Teams + Specifies the domain name for the tenant or organization. + This parameter is reserved for internal Microsoft use. String @@ -73926,34 +81374,24 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - - WhatIf - - The WhatIf parameter is not implemented for this cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - AllowTollFreeDialIn + TollFreeServiceNumber - If toll-free numbers are available in your Microsoft Audio Conferencing bridge, this parameter controls if they can be used to join the meetings of a given user. This setting can ONLY be managed using the TeamsAudioConferencingPolicy. By default, AllowTollFreeDialin is always set to True. + > Applicable: Microsoft Teams + Specifies a toll-free phone number to be used by the user. This number is then used in meeting invitations. The toll-free number can be specified in the following formats: E.164 number, +<E.164 number> and tel:<E.164 number>. - Boolean + String - Boolean + String None - - AsJob + + WhatIf - The parameter is used to run commands as background jobs. + > Applicable: Microsoft Teams + The WhatIf parameter is not implemented for this cmdlet. SwitchParameter @@ -73989,15 +81427,15 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csonlinedialinconferencinguser + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinedialinconferencinguser Get-CsTeamsAudioConferencingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsaudioconferencingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsaudioconferencingpolicy New-CsTeamsAudioConferencingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsaudioconferencingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsaudioconferencingpolicy @@ -74007,41 +81445,42 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Set CsOnlineEnhancedEmergencyServiceDisclaimer - When using Microsoft Teams PSTN Calling Services you need to record your organization's acceptance of the enhanced emergency service terms and conditions. This is done per country/region and it needs to be done before you can provide PSTN calling services to Microsoft Teams users in the country/region. - You can record your organization's acceptance using the Set-CsOnlineEnhancedEmergencyServiceDisclaimer cmdlet at any time. If you haven't accepted it for a given country/region you will be prompted to do so by warning information in the Teams PS Module, when you try to assign a phone number to a Microsoft Teams user, or in the Teams admin center, when you create an emergency address in a country/region. - Any tenant administrator can accept the terms and conditions and it only needs to be done once per country/region. - As the output the cmdlet will show the emergency service disclaimer and that it has been accepted. You can use Get-CsOnlineEnhancedEmergencyServiceDisclaimer to see the status of the emergency service disclaimer. + You can use Get-CsOnlineEnhancedEmergencyServiceDisclaimer to see the status of the emergency service disclaimer. + When using Microsoft Teams PSTN Calling Services you need to record your organization's acceptance of the enhanced emergency service terms and conditions. This is done per country/region and it needs to be done before you can provide PSTN calling services to Microsoft Teams users in the country/region. + You can record your organization's acceptance using the Set-CsOnlineEnhancedEmergencyServiceDisclaimer cmdlet at any time. If you haven't accepted it for a given country/region you will be prompted to do so by warning information in the Teams PS Module, when you try to assign a phone number to a Microsoft Teams user, or in the Teams admin center, when you create an emergency address in a country/region. + Any tenant administrator can accept the terms and conditions and it only needs to be done once per country/region. + As the output the cmdlet will show the emergency service disclaimer and that it has been accepted. You must run this cmdlet prior to assigning Microsoft Calling Plan phone numbers and locations to voice enabled users or accept the similar disclaimer in the Teams admin center. Microsoft Calling Plan phone numbers are available in several countries/regions, see Country and region availability for Audio Conferencing and Calling Plans (https://learn.microsoft.com/MicrosoftTeams/country-and-region-availability-for-audio-conferencing-and-calling-plans/country-and-region-availability-for-audio-conferencing-and-calling-plans) Set-CsOnlineEnhancedEmergencyServiceDisclaimer - - CountryOrRegion + + Confirm - Specifies the region or country whose terms and conditions you wish to accept. You need to use the ISO 31661-1 alpha-2 2 letter code for the country. For example for the United States it must be specified as "US" and for Denmark it must be specified as "DK". + The Confirm switch causes the command to pause processing and requires confirmation to proceed. - String - String + SwitchParameter - None + False - - Confirm + + CountryOrRegion - The Confirm switch causes the command to pause processing and requires confirmation to proceed. + Specifies the region or country whose terms and conditions you wish to accept. You need to use the ISO 31661-1 alpha-2 2 letter code for the country. For example for the United States it must be specified as "US" and for Denmark it must be specified as "DK". + String - SwitchParameter + String - False + None DomainController @@ -74115,18 +81554,6 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge - - CountryOrRegion - - Specifies the region or country whose terms and conditions you wish to accept. You need to use the ISO 31661-1 alpha-2 2 letter code for the country. For example for the United States it must be specified as "US" and for Denmark it must be specified as "DK". - - String - - String - - - None - Confirm @@ -74139,6 +81566,18 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge False + + CountryOrRegion + + Specifies the region or country whose terms and conditions you wish to accept. You need to use the ISO 31661-1 alpha-2 2 letter code for the country. For example for the United States it must be specified as "US" and for Denmark it must be specified as "DK". + + String + + String + + + None + DomainController @@ -74231,11 +81670,11 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csonlineenhancedemergencyservicedisclaimer + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineenhancedemergencyservicedisclaimer Get-CsOnlineEnhancedEmergencyServiceDisclaimer - https://learn.microsoft.com/powershell/module/teams/get-csonlineenhancedemergencyservicedisclaimer + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineenhancedemergencyservicedisclaimer @@ -74245,34 +81684,38 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Set CsOnlineLisCivicAddress - Use the `Set-CsOnlineLisCivicAddress` cmdlet to modify an existing civic address which has not been validated. Validated civic addresses cannot be modified. - > [!Note] > This cmdlet is only available for public use with limited countries and certain fields. The remaining countries and fields are for Microsoft internal use only. + Use the cmdlet to modify an existing civic address which has not been validated. + Validated civic addresses cannot be modified. + > [!IMPORTANT] > Due to a current issue, the parameters -CompanyName and -CountryOrRegion are required as an interim workaround for this cmdlet. Use the `Set-CsOnlineLisCivicAddress` cmdlet to modify limited fields of an existing civic address. Editing address using this cmdlet is restricted to the following countries/regions: Australia, Brazil, Canada, Croatia, Czech Republic, Estonia, Hong Kong, Hungary, Israel, Japan, Latvia, Lithuania, Mexico, New Zealand, Poland, Puerto Rico, Romania, Singapore, South Korea, Slovenia, South Africa, United States. If the user runs this cmdlet on one of the unsupported countries, it may interfere with number assignment and potentially is against regulatory requirements, so public use of the API is limited to the above countries/regions. + > [!NOTE] > This cmdlet is only available for public use with limited countries and certain fields. The remaining countries and fields are for Microsoft internal use only. Set-CsOnlineLisCivicAddress - - CivicAddressId + + City - Specifies the unique identifier of the civic address to be modified. + > Applicable: Microsoft Teams + Specifies a new city for the civic address. Publicly editable. - Guid + String - Guid + String None - City + CityAlias - Specifies a new city for the civic address. Publicly editable. + > Applicable: Microsoft Teams + Short form of the city name. This parameter is reserved for internal Microsoft use. String @@ -74281,14 +81724,15 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - - CityAlias + + CivicAddressId - Short form of the city name. This parameter is reserved for internal Microsoft use. + > Applicable: Microsoft Teams + Specifies the unique identifier of the civic address to be modified. - String + Guid - String + Guid None @@ -74296,6 +81740,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge CompanyName + > Applicable: Microsoft Teams Specifies a new company name for the civic address. Publicly editable. String @@ -74308,7 +81753,20 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge CompanyTaxId - Used to store TaxId for regulatory reasons. This parameter is reserved for internal Microsoft use. + > Applicable: Microsoft Teams + Used to store TaxId for regulatory reasons. This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Confidence + + This parameter is reserved for internal Microsoft use. String @@ -74320,6 +81778,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Confirm + > Applicable: Microsoft Teams The Confirm switch causes the command to pause processing and requires confirmation to proceed. @@ -74331,6 +81790,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge CountryOrRegion + > Applicable: Microsoft Teams Specifies a new country or region for the civic address. For public use, restricted to the following countries: AU, BR, CA, HR, CZ, EE, HK, HU, IL, JP, LV, LT, MX, NZ, PL, PR, RO, SG, KR, SI, ZA, US String @@ -74343,6 +81803,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Description + > Applicable: Microsoft Teams Specifies a new description for the civic address. Publicly editable. String @@ -74352,9 +81813,23 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None + + Elin + + > Applicable: Microsoft Teams + Specifies the Emergency Location Identification Number. This is used in Direct Routing EGW scenarios. + + String + + String + + + None + Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -74366,6 +81841,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge HouseNumber + > Applicable: Microsoft Teams Specifies the new numeric portion of the civic address. Publicly editable. String @@ -74378,6 +81854,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge HouseNumberSuffix + > Applicable: Microsoft Teams Specifies the new numeric suffix of the new civic address. For example, if the property was multiplexed, the HouseNumberSuffix parameter would be the multiplex specifier: "425A Smith Avenue", or "425B Smith Avenue". This parameter is reserved for internal Microsoft use. @@ -74388,9 +81865,48 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None + + IsAzureMapValidationRequired + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Latitude + + > Applicable: Microsoft Teams + Specifies the angular distance of a place north or south of the earth's equator in the decimal degrees format. Publicly editable. + + String + + String + + + None + + + Longitude + + > Applicable: Microsoft Teams + Specifies the angular distance of a place east or west of the meridian at Greenwich, England, in the decimal degrees format. Publicly editable. + + String + + String + + + None + PostalCode + > Applicable: Microsoft Teams Specifies the new postal code of the civic address. Publicly editable. String @@ -74403,6 +81919,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge PostDirectional + > Applicable: Microsoft Teams Specifies the new directional attribute of the civic address which follows the street name. For example, "425 Smith Avenue NE". This parameter is reserved for internal Microsoft use. @@ -74416,6 +81933,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge PreDirectional + > Applicable: Microsoft Teams Specifies the new directional attribute of the civic address which precedes the street name. For example, "425 NE Smith Avenue ". This parameter is reserved for internal Microsoft use. @@ -74429,6 +81947,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge StateOrProvince + > Applicable: Microsoft Teams Specifies the new state or province of the civic address. Publicly editable. String @@ -74441,6 +81960,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge StreetName + > Applicable: Microsoft Teams Specifies the new street name of the civic address. Publicly editable. String @@ -74453,6 +81973,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge StreetSuffix + > Applicable: Microsoft Teams Specifies the new modifier of the street name of the new civic address. The street suffix will typically be something like street, avenue, way, or boulevard. This parameter is reserved for internal Microsoft use. @@ -74466,6 +81987,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge ValidationStatus + > Applicable: Microsoft Teams Microsoft internal use only String @@ -74478,6 +82000,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge WhatIf + > Applicable: Microsoft Teams The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. @@ -74486,85 +82009,27 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge False - - Confidence - - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - Elin - - Specifies the Emergency Location Identification Number. This is used in Direct Routing EGW scenarios. - - String - - String - - - None - - - Latitude - - Specifies the angular distance of a place north or south of the earth's equator in the decimal degrees format. Publicly editable. - - String - - String - - - None - - - Longitude - - Specifies the angular distance of a place east or west of the meridian at Greenwich, England, in the decimal degrees format. Publicly editable. - - String - - String - - - None - - - IsAzureMapValidationRequired - - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - CivicAddressId + + City - Specifies the unique identifier of the civic address to be modified. + > Applicable: Microsoft Teams + Specifies a new city for the civic address. Publicly editable. - Guid + String - Guid + String None - City + CityAlias - Specifies a new city for the civic address. Publicly editable. + > Applicable: Microsoft Teams + Short form of the city name. This parameter is reserved for internal Microsoft use. String @@ -74573,14 +82038,15 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - - CityAlias + + CivicAddressId - Short form of the city name. This parameter is reserved for internal Microsoft use. + > Applicable: Microsoft Teams + Specifies the unique identifier of the civic address to be modified. - String + Guid - String + Guid None @@ -74588,6 +82054,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge CompanyName + > Applicable: Microsoft Teams Specifies a new company name for the civic address. Publicly editable. String @@ -74600,7 +82067,20 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge CompanyTaxId - Used to store TaxId for regulatory reasons. This parameter is reserved for internal Microsoft use. + > Applicable: Microsoft Teams + Used to store TaxId for regulatory reasons. This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Confidence + + This parameter is reserved for internal Microsoft use. String @@ -74612,6 +82092,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Confirm + > Applicable: Microsoft Teams The Confirm switch causes the command to pause processing and requires confirmation to proceed. SwitchParameter @@ -74624,6 +82105,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge CountryOrRegion + > Applicable: Microsoft Teams Specifies a new country or region for the civic address. For public use, restricted to the following countries: AU, BR, CA, HR, CZ, EE, HK, HU, IL, JP, LV, LT, MX, NZ, PL, PR, RO, SG, KR, SI, ZA, US String @@ -74636,6 +82118,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Description + > Applicable: Microsoft Teams Specifies a new description for the civic address. Publicly editable. String @@ -74645,9 +82128,23 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None + + Elin + + > Applicable: Microsoft Teams + Specifies the Emergency Location Identification Number. This is used in Direct Routing EGW scenarios. + + String + + String + + + None + Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -74660,6 +82157,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge HouseNumber + > Applicable: Microsoft Teams Specifies the new numeric portion of the civic address. Publicly editable. String @@ -74672,6 +82170,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge HouseNumberSuffix + > Applicable: Microsoft Teams Specifies the new numeric suffix of the new civic address. For example, if the property was multiplexed, the HouseNumberSuffix parameter would be the multiplex specifier: "425A Smith Avenue", or "425B Smith Avenue". This parameter is reserved for internal Microsoft use. @@ -74683,21 +82182,8 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - PostalCode - - Specifies the new postal code of the civic address. Publicly editable. - - String - - String - - - None - - - PostDirectional + IsAzureMapValidationRequired - Specifies the new directional attribute of the civic address which follows the street name. For example, "425 Smith Avenue NE". This parameter is reserved for internal Microsoft use. String @@ -74708,10 +82194,10 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - PreDirectional + Latitude - Specifies the new directional attribute of the civic address which precedes the street name. For example, "425 NE Smith Avenue ". - This parameter is reserved for internal Microsoft use. + > Applicable: Microsoft Teams + Specifies the angular distance of a place north or south of the earth's equator in the decimal degrees format. Publicly editable. String @@ -74721,9 +82207,10 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - StateOrProvince + Longitude - Specifies the new state or province of the civic address. Publicly editable. + > Applicable: Microsoft Teams + Specifies the angular distance of a place east or west of the meridian at Greenwich, England, in the decimal degrees format. Publicly editable. String @@ -74733,9 +82220,10 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - StreetName + PostalCode - Specifies the new street name of the civic address. Publicly editable. + > Applicable: Microsoft Teams + Specifies the new postal code of the civic address. Publicly editable. String @@ -74745,9 +82233,10 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - StreetSuffix + PostDirectional - Specifies the new modifier of the street name of the new civic address. The street suffix will typically be something like street, avenue, way, or boulevard. + > Applicable: Microsoft Teams + Specifies the new directional attribute of the civic address which follows the street name. For example, "425 Smith Avenue NE". This parameter is reserved for internal Microsoft use. String @@ -74758,9 +82247,11 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - ValidationStatus + PreDirectional - Microsoft internal use only + > Applicable: Microsoft Teams + Specifies the new directional attribute of the civic address which precedes the street name. For example, "425 NE Smith Avenue ". + This parameter is reserved for internal Microsoft use. String @@ -74769,22 +82260,11 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - - WhatIf - - The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. - - SwitchParameter - - SwitchParameter - - - False - - Confidence + StateOrProvince - This parameter is reserved for internal Microsoft use. + > Applicable: Microsoft Teams + Specifies the new state or province of the civic address. Publicly editable. String @@ -74794,9 +82274,10 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - Elin + StreetName - Specifies the Emergency Location Identification Number. This is used in Direct Routing EGW scenarios. + > Applicable: Microsoft Teams + Specifies the new street name of the civic address. Publicly editable. String @@ -74806,9 +82287,11 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - Latitude + StreetSuffix - Specifies the angular distance of a place north or south of the earth's equator in the decimal degrees format. Publicly editable. + > Applicable: Microsoft Teams + Specifies the new modifier of the street name of the new civic address. The street suffix will typically be something like street, avenue, way, or boulevard. + This parameter is reserved for internal Microsoft use. String @@ -74818,9 +82301,10 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - Longitude + ValidationStatus - Specifies the angular distance of a place east or west of the meridian at Greenwich, England, in the decimal degrees format. Publicly editable. + > Applicable: Microsoft Teams + Microsoft internal use only String @@ -74829,17 +82313,18 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - - IsAzureMapValidationRequired + + WhatIf - This parameter is reserved for internal Microsoft use. + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. - String + SwitchParameter - String + SwitchParameter - None + False @@ -74868,19 +82353,19 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csonlineliscivicaddress + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineliscivicaddress Get-CsOnlineLisCivicAddress - https://learn.microsoft.com/powershell/module/teams/get-csonlineliscivicaddress + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineliscivicaddress New-CsOnlineLisCivicAddress - https://learn.microsoft.com/powershell/module/teams/new-csonlineliscivicaddress + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineliscivicaddress Remove-CsOnlineLisCivicAddress - https://learn.microsoft.com/powershell/module/teams/remove-csonlineliscivicaddress + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineliscivicaddress @@ -74899,21 +82384,10 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Set-CsOnlineLisLocation - - CivicAddressId - - Specifies the unique identifier of the civic address that contains the location to be modified. Civic address identities can be discovered by using the `Get-CsOnlineLisCivicAddress` cmdlet. Note: This parameter is not supported and will be deprecated. - - Guid - - Guid - - - None - City + > Applicable: Microsoft Teams Specifies the city of the civic address. Note: This parameter is not supported and will be deprecated. String @@ -74926,7 +82400,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge CityAlias - Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. + > Applicable: Microsoft Teams Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. String @@ -74935,9 +82409,23 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None + + CivicAddressId + + > Applicable: Microsoft Teams + Specifies the unique identifier of the civic address that contains the location to be modified. Civic address identities can be discovered by using the `Get-CsOnlineLisCivicAddress` cmdlet. Note: This parameter is not supported and will be deprecated. + + Guid + + Guid + + + None + CompanyName + > Applicable: Microsoft Teams Specifies the name of your organization. Note: This parameter is not supported and will be deprecated. String @@ -74950,6 +82438,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge CompanyTaxId + > Applicable: Microsoft Teams The company tax ID. Note: This parameter is not supported and will be deprecated. String @@ -74962,7 +82451,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Confidence - Note: This parameter is not supported and will be deprecated. + > Applicable: Microsoft Teams Note: This parameter is not supported and will be deprecated. String @@ -74971,9 +82460,22 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + + SwitchParameter + + + False + CountryOrRegion + > Applicable: Microsoft Teams Specifies the country or region of the civic address. Note: This parameter is not supported and will be deprecated. String @@ -74986,6 +82488,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Description + > Applicable: Microsoft Teams Specifies an administrator defined description of the civic address. Note: This parameter is not supported and will be deprecated. String @@ -74998,6 +82501,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Elin + > Applicable: Microsoft Teams Specifies the Emergency Location Identification Number. This is used in Direct Routing EGW scenarios. Note: You can set or change the ELIN, but you can't clear its value. If you need to clear the value, you should recreate the location. String @@ -75007,9 +82511,22 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + HouseNumber + > Applicable: Microsoft Teams Specifies the numeric portion of the civic address. Note: This parameter is not supported and will be deprecated. String @@ -75022,6 +82539,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge HouseNumberSuffix + > Applicable: Microsoft Teams Specifies the numeric suffix of the civic address. For example, if the property was multiplexed, the HouseNumberSuffix parameter would be the multiplex specifier: "425A Smith Avenue", or "425B Smith Avenue". Note: This parameter is not supported and will be deprecated. String @@ -75031,9 +82549,23 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None + + IsAzureMapValidationRequired + + > Applicable: Microsoft Teans + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + Latitude + > Applicable: Microsoft Teams Specifies the angular distance of a place north or south of the earth's equator using the decimal degrees format. Note: This parameter is not supported and will be deprecated. String @@ -75046,6 +82578,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Longitude + > Applicable: Microsoft Teams Specifies the angular distance of a place east or west of the meridian at Greenwich, England, using the decimal degrees format. Note: This parameter is not supported and will be deprecated. String @@ -75058,6 +82591,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge PostalCode + > Applicable: Microsoft Teams Specifies the postal code of the civic address. Note: This parameter is not supported and will be deprecated. String @@ -75070,6 +82604,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge PostDirectional + > Applicable: Microsoft Teams Specifies the directional attribute of the civic address which follows the street name. For example, "425 Smith Avenue NE". Note: This parameter is not supported and will be deprecated. String @@ -75082,6 +82617,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge PreDirectional + > Applicable: Microsoft Teams Specifies the directional attribute of the civic address which precedes the street name. For example, "425 NE Smith Avenue ". Note: This parameter is not supported and will be deprecated. String @@ -75094,6 +82630,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge StateOrProvince + > Applicable: Microsoft Teams Specifies the state or province of the civic address. Note: This parameter is not supported and will be deprecated. String @@ -75106,6 +82643,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge StreetName + > Applicable: Microsoft Teams Specifies the street name of the civic address. Note: This parameter is not supported and will be deprecated. String @@ -75118,6 +82656,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge StreetSuffix + > Applicable: Microsoft Teans Specifies a modifier of the street name of the civic address. The street suffix will typically be something like street, avenue, way, or boulevard. Note: This parameter is not supported and will be deprecated. String @@ -75127,32 +82666,10 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - - IsAzureMapValidationRequired - - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - Force - - The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. - - - SwitchParameter - - - False - WhatIf + > Applicable: Microsoft Teams The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. @@ -75161,36 +82678,13 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge False - - Confirm - - The Confirm switch causes the command to pause processing and requires confirmation to proceed. - - - SwitchParameter - - - False - Set-CsOnlineLisLocation - - LocationId - - Specifies the unique identifier of the location to be modified. Location identities can be discovered by using the `Get-CsOnlineLisLocation` cmdlet. - - Guid - - Guid - - - None - CityAlias - Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. + > Applicable: Microsoft Teams Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. String @@ -75202,7 +82696,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Confidence - Note: This parameter is not supported and will be deprecated. + > Applicable: Microsoft Teams Note: This parameter is not supported and will be deprecated. String @@ -75211,9 +82705,22 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + + SwitchParameter + + + False + Elin + > Applicable: Microsoft Teams Specifies the Emergency Location Identification Number. This is used in Direct Routing EGW scenarios. Note: You can set or change the ELIN, but you can't clear its value. If you need to clear the value, you should recreate the location. String @@ -75223,22 +82730,23 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - - Latitude + + Force - Specifies the angular distance of a place north or south of the earth's equator using the decimal degrees format. Note: This parameter is not supported and will be deprecated. + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. - String - String + SwitchParameter - None + False - Longitude + Latitude - Specifies the angular distance of a place east or west of the meridian at Greenwich, England, using the decimal degrees format. Note: This parameter is not supported and will be deprecated. + > Applicable: Microsoft Teams + Specifies the angular distance of a place north or south of the earth's equator using the decimal degrees format. Note: This parameter is not supported and will be deprecated. String @@ -75250,6 +82758,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Location + > Applicable: Microsoft Teams Specifies an administrator defined description of the new location. For example, "2nd Floor Cafe", "Main Lobby", or "Office 250". String @@ -75259,32 +82768,37 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - - Force + + LocationId - The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + > Applicable: Microsoft Teams + Specifies the unique identifier of the location to be modified. Location identities can be discovered by using the `Get-CsOnlineLisLocation` cmdlet. + Guid - SwitchParameter + Guid - False + None - - WhatIf + + Longitude - The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + > Applicable: Microsoft Teams + Specifies the angular distance of a place east or west of the meridian at Greenwich, England, using the decimal degrees format. Note: This parameter is not supported and will be deprecated. + String - SwitchParameter + String - False + None - - Confirm + + WhatIf - The Confirm switch causes the command to pause processing and requires confirmation to proceed. + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. SwitchParameter @@ -75295,33 +82809,10 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge - - CivicAddressId - - Specifies the unique identifier of the civic address that contains the location to be modified. Civic address identities can be discovered by using the `Get-CsOnlineLisCivicAddress` cmdlet. Note: This parameter is not supported and will be deprecated. - - Guid - - Guid - - - None - - - LocationId - - Specifies the unique identifier of the location to be modified. Location identities can be discovered by using the `Get-CsOnlineLisLocation` cmdlet. - - Guid - - Guid - - - None - City + > Applicable: Microsoft Teams Specifies the city of the civic address. Note: This parameter is not supported and will be deprecated. String @@ -75334,7 +82825,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge CityAlias - Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. + > Applicable: Microsoft Teams Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. String @@ -75343,9 +82834,23 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None + + CivicAddressId + + > Applicable: Microsoft Teams + Specifies the unique identifier of the civic address that contains the location to be modified. Civic address identities can be discovered by using the `Get-CsOnlineLisCivicAddress` cmdlet. Note: This parameter is not supported and will be deprecated. + + Guid + + Guid + + + None + CompanyName + > Applicable: Microsoft Teams Specifies the name of your organization. Note: This parameter is not supported and will be deprecated. String @@ -75358,6 +82863,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge CompanyTaxId + > Applicable: Microsoft Teams The company tax ID. Note: This parameter is not supported and will be deprecated. String @@ -75370,7 +82876,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Confidence - Note: This parameter is not supported and will be deprecated. + > Applicable: Microsoft Teams Note: This parameter is not supported and will be deprecated. String @@ -75379,9 +82885,23 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + SwitchParameter + + SwitchParameter + + + False + CountryOrRegion + > Applicable: Microsoft Teams Specifies the country or region of the civic address. Note: This parameter is not supported and will be deprecated. String @@ -75394,6 +82914,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Description + > Applicable: Microsoft Teams Specifies an administrator defined description of the civic address. Note: This parameter is not supported and will be deprecated. String @@ -75406,6 +82927,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Elin + > Applicable: Microsoft Teams Specifies the Emergency Location Identification Number. This is used in Direct Routing EGW scenarios. Note: You can set or change the ELIN, but you can't clear its value. If you need to clear the value, you should recreate the location. String @@ -75415,9 +82937,23 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + HouseNumber + > Applicable: Microsoft Teams Specifies the numeric portion of the civic address. Note: This parameter is not supported and will be deprecated. String @@ -75430,6 +82966,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge HouseNumberSuffix + > Applicable: Microsoft Teams Specifies the numeric suffix of the civic address. For example, if the property was multiplexed, the HouseNumberSuffix parameter would be the multiplex specifier: "425A Smith Avenue", or "425B Smith Avenue". Note: This parameter is not supported and will be deprecated. String @@ -75439,9 +82976,23 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None + + IsAzureMapValidationRequired + + > Applicable: Microsoft Teans + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + Latitude + > Applicable: Microsoft Teams Specifies the angular distance of a place north or south of the earth's equator using the decimal degrees format. Note: This parameter is not supported and will be deprecated. String @@ -75452,9 +83003,10 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - Longitude + Location - Specifies the angular distance of a place east or west of the meridian at Greenwich, England, using the decimal degrees format. Note: This parameter is not supported and will be deprecated. + > Applicable: Microsoft Teams + Specifies an administrator defined description of the new location. For example, "2nd Floor Cafe", "Main Lobby", or "Office 250". String @@ -75463,10 +83015,24 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None + + LocationId + + > Applicable: Microsoft Teams + Specifies the unique identifier of the location to be modified. Location identities can be discovered by using the `Get-CsOnlineLisLocation` cmdlet. + + Guid + + Guid + + + None + - Location + Longitude - Specifies an administrator defined description of the new location. For example, "2nd Floor Cafe", "Main Lobby", or "Office 250". + > Applicable: Microsoft Teams + Specifies the angular distance of a place east or west of the meridian at Greenwich, England, using the decimal degrees format. Note: This parameter is not supported and will be deprecated. String @@ -75478,6 +83044,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge PostalCode + > Applicable: Microsoft Teams Specifies the postal code of the civic address. Note: This parameter is not supported and will be deprecated. String @@ -75490,6 +83057,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge PostDirectional + > Applicable: Microsoft Teams Specifies the directional attribute of the civic address which follows the street name. For example, "425 Smith Avenue NE". Note: This parameter is not supported and will be deprecated. String @@ -75502,6 +83070,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge PreDirectional + > Applicable: Microsoft Teams Specifies the directional attribute of the civic address which precedes the street name. For example, "425 NE Smith Avenue ". Note: This parameter is not supported and will be deprecated. String @@ -75514,6 +83083,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge StateOrProvince + > Applicable: Microsoft Teams Specifies the state or province of the civic address. Note: This parameter is not supported and will be deprecated. String @@ -75526,6 +83096,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge StreetName + > Applicable: Microsoft Teams Specifies the street name of the civic address. Note: This parameter is not supported and will be deprecated. String @@ -75538,6 +83109,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge StreetSuffix + > Applicable: Microsoft Teans Specifies a modifier of the street name of the civic address. The street suffix will typically be something like street, avenue, way, or boulevard. Note: This parameter is not supported and will be deprecated. String @@ -75547,33 +83119,10 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - - IsAzureMapValidationRequired - - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - Force - - The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. - - SwitchParameter - - SwitchParameter - - - False - WhatIf + > Applicable: Microsoft Teams The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. SwitchParameter @@ -75583,18 +83132,6 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge False - - Confirm - - The Confirm switch causes the command to pause processing and requires confirmation to proceed. - - SwitchParameter - - SwitchParameter - - - False - @@ -75615,19 +83152,19 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csonlinelislocation + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinelislocation New-CsOnlineLisLocation - https://learn.microsoft.com/powershell/module/teams/new-csonlinelislocation + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinelislocation Get-CsOnlineLisLocation - https://learn.microsoft.com/powershell/module/teams/get-csonlinelislocation + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelislocation Remove-CsOnlineLisLocation - https://learn.microsoft.com/powershell/module/teams/remove-csonlinelislocation + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinelislocation @@ -75649,6 +83186,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge ChassisID + > Applicable: Microsoft Teams If ChassisID sub type is a MAC Address then this value must be in a string format in the following representation nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. Otherwise, (different sub type, such as Interface Name), then this value must be in a string format as set on the switch String @@ -75658,33 +83196,22 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - - LocationId - - Specifies the unique identifier of the location to be modified. - - Guid - - Guid - - - None - - - PortID + + Confirm - If the PortID subtype is a MAC Address, this value must be in a string format in the following representation nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. Otherwise (different subtype, such as Interface Name), this value must be in a string format as set on the switch. + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. - String - String + SwitchParameter - None + False Description + > Applicable: Microsoft Teams Specifies the administrator defined description of the port. String @@ -75697,6 +83224,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -75708,6 +83236,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge IsDebug + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Boolean @@ -75717,9 +83246,23 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None + + LocationId + + > Applicable: Microsoft Teams + Specifies the unique identifier of the location to be modified. + + Guid + + Guid + + + None + NCSApiUrl + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -75729,10 +83272,11 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - - TargetStore + + PortID - This parameter is reserved for internal Microsoft use. + > Applicable: Microsoft Teams + If the PortID subtype is a MAC Address, this value must be in a string format in the following representation nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. Otherwise (different subtype, such as Interface Name), this value must be in a string format as set on the switch. String @@ -75741,20 +83285,23 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - - Confirm + + TargetStore - Prompts you for confirmation before running the cmdlet. + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + String - SwitchParameter + String - False + None WhatIf + > Applicable: Microsoft Teams Shows what would happen if the cmdlet runs. The cmdlet is not run. @@ -75769,6 +83316,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge ChassisID + > Applicable: Microsoft Teams If ChassisID sub type is a MAC Address then this value must be in a string format in the following representation nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. Otherwise, (different sub type, such as Interface Name), then this value must be in a string format as set on the switch String @@ -75778,33 +83326,23 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - - LocationId - - Specifies the unique identifier of the location to be modified. - - Guid - - Guid - - - None - - - PortID + + Confirm - If the PortID subtype is a MAC Address, this value must be in a string format in the following representation nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. Otherwise (different subtype, such as Interface Name), this value must be in a string format as set on the switch. + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. - String + SwitchParameter - String + SwitchParameter - None + False Description + > Applicable: Microsoft Teams Specifies the administrator defined description of the port. String @@ -75817,6 +83355,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -75829,6 +83368,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge IsDebug + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Boolean @@ -75838,9 +83378,23 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None + + LocationId + + > Applicable: Microsoft Teams + Specifies the unique identifier of the location to be modified. + + Guid + + Guid + + + None + NCSApiUrl + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -75850,10 +83404,11 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - - TargetStore + + PortID - This parameter is reserved for internal Microsoft use. + > Applicable: Microsoft Teams + If the PortID subtype is a MAC Address, this value must be in a string format in the following representation nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. Otherwise (different subtype, such as Interface Name), this value must be in a string format as set on the switch. String @@ -75862,21 +83417,23 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - - Confirm + + TargetStore - Prompts you for confirmation before running the cmdlet. + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. - SwitchParameter + String - SwitchParameter + String - False + None WhatIf + > Applicable: Microsoft Teams Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -75946,15 +83503,15 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csonlinelisport + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinelisport Get-CsOnlineLisPort - https://learn.microsoft.com/powershell/module/teams/get-csonlinelisport + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelisport Remove-CsOnlineLisPort - https://learn.microsoft.com/powershell/module/teams/remove-csonlinelisport + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinelisport @@ -75978,6 +83535,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge TenantId + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Guid @@ -75990,6 +83548,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Subnet + > Applicable: Microsoft Teams The IP address of the subnet. This value can be either IPv4 or IPv6 format. String @@ -76002,6 +83561,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Confirm + > Applicable: Microsoft Teams Prompts you for confirmation before running the cmdlet. @@ -76013,6 +83573,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Description + > Applicable: Microsoft Teams Specifies the administrator defined description of the Location Information Service subnet. String @@ -76025,6 +83586,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -76036,6 +83598,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge IsDebug + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Boolean @@ -76048,6 +83611,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge LocationId + > Applicable: Microsoft Teams Specifies the unique identifier of the location to be modified. Guid @@ -76060,6 +83624,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge NCSApiUrl + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -76072,6 +83637,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge TargetStore + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -76084,6 +83650,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge WhatIf + > Applicable: Microsoft Teams Shows what would happen if the cmdlet runs. The cmdlet is not run. @@ -76098,6 +83665,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Confirm + > Applicable: Microsoft Teams Prompts you for confirmation before running the cmdlet. SwitchParameter @@ -76110,6 +83678,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Description + > Applicable: Microsoft Teams Specifies the administrator defined description of the Location Information Service subnet. String @@ -76122,6 +83691,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -76134,6 +83704,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge IsDebug + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Boolean @@ -76146,6 +83717,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge LocationId + > Applicable: Microsoft Teams Specifies the unique identifier of the location to be modified. Guid @@ -76158,6 +83730,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge NCSApiUrl + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -76170,6 +83743,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Subnet + > Applicable: Microsoft Teams The IP address of the subnet. This value can be either IPv4 or IPv6 format. String @@ -76182,6 +83756,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge TargetStore + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -76194,6 +83769,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge TenantId + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Guid @@ -76206,6 +83782,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge WhatIf + > Applicable: Microsoft Teams Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -76268,7 +83845,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csonlinelissubnet + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinelissubnet @@ -76290,6 +83867,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge ChassisID + > Applicable: Microsoft Teams If ChassisID sub type is a MAC Address then this value must be in a string format in the following representation nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. Otherwise, (different sub type, such as Interface Name), then this value must be in a string format as set on the switch String @@ -76299,21 +83877,22 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - - LocationId + + Confirm - The name for this location. + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. - Guid - Guid + SwitchParameter - None + False Description + > Applicable: Microsoft Teams Specifies the administrator defined description of the switch. String @@ -76326,6 +83905,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -76337,6 +83917,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge IsDebug + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Boolean @@ -76346,21 +83927,23 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - - NCSApiUrl + + LocationId - This parameter is reserved for internal Microsoft use. + > Applicable: Microsoft Teams + The name for this location. - String + Guid - String + Guid None - TargetStore + NCSApiUrl + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -76370,20 +83953,23 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - - Confirm + + TargetStore - Prompts you for confirmation before running the cmdlet. + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + String - SwitchParameter + String - False + None WhatIf + > Applicable: Microsoft Teams Shows what would happen if the cmdlet runs. The cmdlet is not run. @@ -76398,6 +83984,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge ChassisID + > Applicable: Microsoft Teams If ChassisID sub type is a MAC Address then this value must be in a string format in the following representation nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. Otherwise, (different sub type, such as Interface Name), then this value must be in a string format as set on the switch String @@ -76407,21 +83994,23 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - - LocationId + + Confirm - The name for this location. + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. - Guid + SwitchParameter - Guid + SwitchParameter - None + False Description + > Applicable: Microsoft Teams Specifies the administrator defined description of the switch. String @@ -76434,6 +84023,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -76446,6 +84036,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge IsDebug + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Boolean @@ -76455,21 +84046,23 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - - NCSApiUrl + + LocationId - This parameter is reserved for internal Microsoft use. + > Applicable: Microsoft Teams + The name for this location. - String + Guid - String + Guid None - TargetStore + NCSApiUrl + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -76479,21 +84072,23 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - - Confirm + + TargetStore - Prompts you for confirmation before running the cmdlet. + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. - SwitchParameter + String - SwitchParameter + String - False + None WhatIf + > Applicable: Microsoft Teams Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -76549,15 +84144,15 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csonlinelisswitch + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinelisswitch Get-CsOnlineLisSwitch - https://learn.microsoft.com/powershell/module/teams/get-csonlinelisswitch + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelisswitch Remove-CsOnlineLisSwitch - https://learn.microsoft.com/powershell/module/teams/remove-csonlinelisswitch + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinelisswitch @@ -76581,6 +84176,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge BSSID + > Applicable: Microsoft Teams The Basic Service Set Identifier (BSSID) of the wireless access point. This value must be in the form nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. If an entry with the specified BSSID value does not exist, a new WAP will be created. If an entry with the specified BSSID already exists, that entry will be replaced. It can be presented in wildcard format. The wildcard '*' can be on either the last one or two character(s). String @@ -76590,21 +84186,22 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - - LocationId + + Confirm - The name for this location. + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. - Guid - Guid + SwitchParameter - None + False Description + > Applicable: Microsoft Teams Specifies the administrator defined description of the WAP. String @@ -76617,6 +84214,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -76628,6 +84226,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge IsDebug + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Boolean @@ -76637,21 +84236,23 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - - NCSApiUrl + + LocationId - This parameter is reserved for internal Microsoft use. + > Applicable: Microsoft Teams + The name for this location. - String + Guid - String + Guid None - TargetStore + NCSApiUrl + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -76661,20 +84262,23 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - - Confirm + + TargetStore - Prompts you for confirmation before running the cmdlet. + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + String - SwitchParameter + String - False + None WhatIf + > Applicable: Microsoft Teams Shows what would happen if the cmdlet runs. The cmdlet is not run. @@ -76689,6 +84293,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge BSSID + > Applicable: Microsoft Teams The Basic Service Set Identifier (BSSID) of the wireless access point. This value must be in the form nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. If an entry with the specified BSSID value does not exist, a new WAP will be created. If an entry with the specified BSSID already exists, that entry will be replaced. It can be presented in wildcard format. The wildcard '*' can be on either the last one or two character(s). String @@ -76698,21 +84303,23 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - - LocationId + + Confirm - The name for this location. + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. - Guid + SwitchParameter - Guid + SwitchParameter - None + False Description + > Applicable: Microsoft Teams Specifies the administrator defined description of the WAP. String @@ -76725,6 +84332,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -76737,6 +84345,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge IsDebug + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Boolean @@ -76746,21 +84355,23 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - - NCSApiUrl + + LocationId - This parameter is reserved for internal Microsoft use. + > Applicable: Microsoft Teams + The name for this location. - String + Guid - String + Guid None - TargetStore + NCSApiUrl + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. String @@ -76770,21 +84381,23 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - - Confirm + + TargetStore - Prompts you for confirmation before running the cmdlet. + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. - SwitchParameter + String - SwitchParameter + String - False + None WhatIf + > Applicable: Microsoft Teams Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -76847,15 +84460,15 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csonlineliswirelessaccesspoint + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineliswirelessaccesspoint Get-CsOnlineLisWirelessAccessPoint - https://learn.microsoft.com/powershell/module/teams/get-csonlineliswirelessaccesspoint + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineliswirelessaccesspoint Remove-CsOnlineLisWirelessAccessPoint - https://learn.microsoft.com/powershell/module/teams/remove-csonlineliswirelessaccesspoint + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineliswirelessaccesspoint @@ -76877,6 +84490,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Identity + > Applicable: Microsoft Teams The parameter is mandatory when modifying an existing SBC. String @@ -76886,9 +84500,34 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None + + BypassMode + + Possible values are "None", "Always" and "OnlyForLocalUsers". By setting "Always" mode you indicate that your network is fully routable. If a user usually in site "Seattle", travels to site "Tallinn" and tries to use SBC located in Seattle we will try to deliver the traffic to Seattle assuming that there is connection between Tallinn and Seattle offices. With "OnlyForLocaUsers" you indicate that there is no direct connection between sites. In example above, the traffic will not be send directly from Tallinn to Seattle. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + Description + > Applicable: Microsoft Teams Free-format string to describe the gateway. String @@ -76901,6 +84540,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Enabled + > Applicable: Microsoft Teams Used to enable this SBC for outbound calls. Can be used to temporarily remove the SBC from service while it is being updated or during maintenance. Note if the parameter is not set the SBC will be created as disabled (default value -Enabled $false). Boolean @@ -76913,6 +84553,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge FailoverResponseCodes + > Applicable: Microsoft Teams If Direct Routing receives any 4xx or 6xx SIP error code in response on outgoing Invite (outgoing means call from a Teams client to PSTN with traffic flow :Teams Client -> Direct Routing -> SBC -> Telephony network) the call is considered completed by default. Setting the SIP codes in this parameter forces Direct Routing on receiving the specified codes try another SBC (if another SBC exists in the voice routing policy of the user). Please find more in "Reference" section of "Phone System Direct Routing" documentation Setting this parameter overwrites the default values, so if you want to include the default values, please add them to string. @@ -76926,6 +84567,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge FailoverTimeSeconds + > Applicable: Microsoft Teams When set to 10 (default value), outbound calls that are not answered by the gateway within 10 seconds are routed to the next available trunk; if there are no additional trunks, then the call is automatically dropped. In an organization with slow networks and slow gateway responses, that could potentially result in calls being dropped unnecessarily. The default value is 10. Int32 @@ -76938,6 +84580,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge ForwardCallHistory + > Applicable: Microsoft Teams Indicates whether call history information will be forwarded through the trunk. If enabled, the Office 365 PSTN Proxy sends two headers: History-info and Referred-By. The default value is False ($False). Boolean @@ -76950,6 +84593,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge ForwardPai + > Applicable: Microsoft Teams Indicates whether the P-Asserted-Identity (PAI) header will be forwarded along with the call. The PAI header provides a way to verify the identity of the caller. The default value is False ($False). Setting this parameter to $true will render the from header anonymous, in accordance of RFC5379 and RFC3325. Boolean @@ -76960,32 +84604,35 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge $false - GatewaySiteId + GatewayLbrEnabledUserOverride - PSTN Gateway Site Id. + > Applicable: Microsoft Teams + Allows an LBR enabled user working from a network site outside the corporate network or a network site on the corporate network not configured using a tenant network site to make outbound PSTN calls or receive inbound PSTN calls via an LBR enabled gateway. The default value is False. - String + Boolean - String + Boolean - None + $false - GatewayLbrEnabledUserOverride + GatewaySiteId - Allows an LBR enabled user working from a network site outside the corporate network or a network site on the corporate network not configured using a tenant network site to make outbound PSTN calls or receive inbound PSTN calls via an LBR enabled gateway. The default value is False. + > Applicable: Microsoft Teams + PSTN Gateway Site Id. - Boolean + String - Boolean + String - $false + None GatewaySiteLbrEnabled + > Applicable: Microsoft Teams Used to enable this SBC to report assigned site location. Site location is used for Location Based Routing. When this parameter is turned on, the SBC will report the site name as defined by tenant administrator. On incoming call to a Teams user the value of the site assigned to the SBC is compared with the value of the site assigned to the user to make a routing decision. The parameter is mandatory for enabling Location Based Routing feature. The default value is False ($False). Boolean @@ -76996,93 +84643,84 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge $false - MaxConcurrentSessions + InboundPSTNNumberTranslationRules - Used by the alerting system. When any value is set, the alerting system will generate an alert to the tenant administrator when the number of concurrent session is 90% or higher than this value. If this parameter is not set, the alerts are not generated. However, the monitoring system will report the number of concurrent sessions every 24 hours. + Creates an ordered list of Teams translation rules, that apply to PSTN number on inbound direction. - System.Int32 + Object - System.Int32 + Object None - MediaBypass + InboundTeamsNumberTranslationRules - Parameter indicated of the SBC supports Media Bypass and the administrator wants to use it for this SBC. + This parameter assigns an ordered list of Teams translation rules, that apply to Teams numbers on inbound direction. - Boolean + Object - Boolean + Object - $false + None - MediaRelayRoutingLocationOverride + IPAddressVersion - Allows selecting path for media manually. Direct Routing assigns a datacenter for media path based on the public IP of the SBC. We always select closest to the SBC datacenter. However, in some cases a public IP from for example a US range can be assigned to an SBC located in Europe. In this case we will be using not optimal media path. We only recommend setting this parameter if the call logs clearly indicate that automatic assignment of the datacenter for media path does not assign the closest to the SBC datacenter. + Possible values are "IPv4" and '"Pv6". When "IPv6" is set, the SBC must use IPv6 for both signaling and media. Note: IPv6 is supported only for non-media bypass scenarios. String String - $false + None - SendSipOptions + MaxConcurrentSessions - Defines if an SBC will or will not send the SIP options. If disabled, the SBC will be excluded from Monitoring and Alerting system. We highly recommend that you enable SIP options. Default value is True. + > Applicable: Microsoft Teams + Used by the alerting system. When any value is set, the alerting system will generate an alert to the tenant administrator when the number of concurrent session is 90% or higher than this value. If this parameter is not set, the alerts are not generated. However, the monitoring system will report the number of concurrent sessions every 24 hours. - Boolean + System.Int32 - Boolean + System.Int32 - $true + None - SipSignalingPort + MediaBypass - Listening port used for communicating with Direct Routing services by using the Transport Layer Security (TLS) protocol. The value must be between 1 and 65535. + > Applicable: Microsoft Teams + Parameter indicated of the SBC supports Media Bypass and the administrator wants to use it for this SBC. - Int32 + Boolean - Int32 + Boolean - None + $false - BypassMode + MediaRelayRoutingLocationOverride - Possible values are "None", "Always" and "OnlyForLocalUsers". By setting "Always" mode you indicate that your network is fully routable. If a user usually in site "Seattle", travels to site "Tallinn" and tries to use SBC located in Seattle we will try to deliver the traffic to Seattle assuming that there is connection between Tallinn and Seattle offices. With "OnlyForLocaUsers" you indicate that there is no direct connection between sites. In example above, the traffic will not be send directly from Tallinn to Seattle. + > Applicable: Microsoft Teams + Allows selecting path for media manually. Direct Routing assigns a datacenter for media path based on the public IP of the SBC. We always select closest to the SBC datacenter. However, in some cases a public IP from for example a US range can be assigned to an SBC located in Europe. In this case we will be using not optimal media path. We only recommend setting this parameter if the call logs clearly indicate that automatic assignment of the datacenter for media path does not assign the closest to the SBC datacenter. String String - None - - - InboundTeamsNumberTranslationRules - - This parameter assigns an ordered list of Teams translation rules, that apply to Teams numbers on inbound direction. - - Object - - Object - - - None + $false - InboundPSTNNumberTranslationRules + OutboundPSTNNumberTranslationRules - Creates an ordered list of Teams translation rules, that apply to PSTN number on inbound direction. + Assigns an ordered list of Teams translation rules, that apply to PSTN number on outbound direction. Object @@ -77103,21 +84741,10 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - - OutboundPSTNNumberTranslationRules - - Assigns an ordered list of Teams translation rules, that apply to PSTN number on outbound direction. - - Object - - Object - - - None - PidfloSupported + > Applicable: Microsoft Teams Enables PIDF-LO support on the PSTN Gateway. If turned on the .xml body payload is sent to the SBC with the location details of the user. Boolean @@ -77130,6 +84757,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge ProxySbc + > Applicable: Microsoft Teams The FQDN of the proxy SBC. Used in Local Media Optimization configurations. String @@ -77139,21 +84767,37 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - - WhatIf + + SendSipOptions - Shows what would happen if the cmdlet runs. The cmdlet is not run. + > Applicable: Microsoft Teams + Defines if an SBC will or will not send the SIP options. If disabled, the SBC will be excluded from Monitoring and Alerting system. We highly recommend that you enable SIP options. Default value is True. + Boolean - SwitchParameter + Boolean - False + $true - - Confirm + + SipSignalingPort - Prompts you for confirmation before running the cmdlet. + > Applicable: Microsoft Teams + Listening port used for communicating with Direct Routing services by using the Transport Layer Security (TLS) protocol. The value must be between 1 and 65535. + + Int32 + + Int32 + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -77164,9 +84808,35 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge + + BypassMode + + Possible values are "None", "Always" and "OnlyForLocalUsers". By setting "Always" mode you indicate that your network is fully routable. If a user usually in site "Seattle", travels to site "Tallinn" and tries to use SBC located in Seattle we will try to deliver the traffic to Seattle assuming that there is connection between Tallinn and Seattle offices. With "OnlyForLocaUsers" you indicate that there is no direct connection between sites. In example above, the traffic will not be send directly from Tallinn to Seattle. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + Description + > Applicable: Microsoft Teams Free-format string to describe the gateway. String @@ -77179,6 +84849,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Enabled + > Applicable: Microsoft Teams Used to enable this SBC for outbound calls. Can be used to temporarily remove the SBC from service while it is being updated or during maintenance. Note if the parameter is not set the SBC will be created as disabled (default value -Enabled $false). Boolean @@ -77191,6 +84862,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge FailoverResponseCodes + > Applicable: Microsoft Teams If Direct Routing receives any 4xx or 6xx SIP error code in response on outgoing Invite (outgoing means call from a Teams client to PSTN with traffic flow :Teams Client -> Direct Routing -> SBC -> Telephony network) the call is considered completed by default. Setting the SIP codes in this parameter forces Direct Routing on receiving the specified codes try another SBC (if another SBC exists in the voice routing policy of the user). Please find more in "Reference" section of "Phone System Direct Routing" documentation Setting this parameter overwrites the default values, so if you want to include the default values, please add them to string. @@ -77204,6 +84876,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge FailoverTimeSeconds + > Applicable: Microsoft Teams When set to 10 (default value), outbound calls that are not answered by the gateway within 10 seconds are routed to the next available trunk; if there are no additional trunks, then the call is automatically dropped. In an organization with slow networks and slow gateway responses, that could potentially result in calls being dropped unnecessarily. The default value is 10. Int32 @@ -77216,6 +84889,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge ForwardCallHistory + > Applicable: Microsoft Teams Indicates whether call history information will be forwarded through the trunk. If enabled, the Office 365 PSTN Proxy sends two headers: History-info and Referred-By. The default value is False ($False). Boolean @@ -77228,6 +84902,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge ForwardPai + > Applicable: Microsoft Teams Indicates whether the P-Asserted-Identity (PAI) header will be forwarded along with the call. The PAI header provides a way to verify the identity of the caller. The default value is False ($False). Setting this parameter to $true will render the from header anonymous, in accordance of RFC5379 and RFC3325. Boolean @@ -77238,32 +84913,35 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge $false - GatewaySiteId + GatewayLbrEnabledUserOverride - PSTN Gateway Site Id. + > Applicable: Microsoft Teams + Allows an LBR enabled user working from a network site outside the corporate network or a network site on the corporate network not configured using a tenant network site to make outbound PSTN calls or receive inbound PSTN calls via an LBR enabled gateway. The default value is False. - String + Boolean - String + Boolean - None + $false - GatewayLbrEnabledUserOverride + GatewaySiteId - Allows an LBR enabled user working from a network site outside the corporate network or a network site on the corporate network not configured using a tenant network site to make outbound PSTN calls or receive inbound PSTN calls via an LBR enabled gateway. The default value is False. + > Applicable: Microsoft Teams + PSTN Gateway Site Id. - Boolean + String - Boolean + String - $false + None GatewaySiteLbrEnabled + > Applicable: Microsoft Teams Used to enable this SBC to report assigned site location. Site location is used for Location Based Routing. When this parameter is turned on, the SBC will report the site name as defined by tenant administrator. On incoming call to a Teams user the value of the site assigned to the SBC is compared with the value of the site assigned to the user to make a routing decision. The parameter is mandatory for enabling Location Based Routing feature. The default value is False ($False). Boolean @@ -77276,6 +84954,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Identity + > Applicable: Microsoft Teams The parameter is mandatory when modifying an existing SBC. String @@ -77286,81 +84965,84 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - MaxConcurrentSessions + InboundPSTNNumberTranslationRules - Used by the alerting system. When any value is set, the alerting system will generate an alert to the tenant administrator when the number of concurrent session is 90% or higher than this value. If this parameter is not set, the alerts are not generated. However, the monitoring system will report the number of concurrent sessions every 24 hours. + Creates an ordered list of Teams translation rules, that apply to PSTN number on inbound direction. - System.Int32 + Object - System.Int32 + Object None - MediaBypass + InboundTeamsNumberTranslationRules - Parameter indicated of the SBC supports Media Bypass and the administrator wants to use it for this SBC. + This parameter assigns an ordered list of Teams translation rules, that apply to Teams numbers on inbound direction. - Boolean + Object - Boolean + Object - $false + None - MediaRelayRoutingLocationOverride + IPAddressVersion - Allows selecting path for media manually. Direct Routing assigns a datacenter for media path based on the public IP of the SBC. We always select closest to the SBC datacenter. However, in some cases a public IP from for example a US range can be assigned to an SBC located in Europe. In this case we will be using not optimal media path. We only recommend setting this parameter if the call logs clearly indicate that automatic assignment of the datacenter for media path does not assign the closest to the SBC datacenter. + Possible values are "IPv4" and '"Pv6". When "IPv6" is set, the SBC must use IPv6 for both signaling and media. Note: IPv6 is supported only for non-media bypass scenarios. String String - $false + None - SendSipOptions + MaxConcurrentSessions - Defines if an SBC will or will not send the SIP options. If disabled, the SBC will be excluded from Monitoring and Alerting system. We highly recommend that you enable SIP options. Default value is True. + > Applicable: Microsoft Teams + Used by the alerting system. When any value is set, the alerting system will generate an alert to the tenant administrator when the number of concurrent session is 90% or higher than this value. If this parameter is not set, the alerts are not generated. However, the monitoring system will report the number of concurrent sessions every 24 hours. - Boolean + System.Int32 - Boolean + System.Int32 - $true + None - SipSignalingPort + MediaBypass - Listening port used for communicating with Direct Routing services by using the Transport Layer Security (TLS) protocol. The value must be between 1 and 65535. + > Applicable: Microsoft Teams + Parameter indicated of the SBC supports Media Bypass and the administrator wants to use it for this SBC. - Int32 + Boolean - Int32 + Boolean - None + $false - BypassMode + MediaRelayRoutingLocationOverride - Possible values are "None", "Always" and "OnlyForLocalUsers". By setting "Always" mode you indicate that your network is fully routable. If a user usually in site "Seattle", travels to site "Tallinn" and tries to use SBC located in Seattle we will try to deliver the traffic to Seattle assuming that there is connection between Tallinn and Seattle offices. With "OnlyForLocaUsers" you indicate that there is no direct connection between sites. In example above, the traffic will not be send directly from Tallinn to Seattle. + > Applicable: Microsoft Teams + Allows selecting path for media manually. Direct Routing assigns a datacenter for media path based on the public IP of the SBC. We always select closest to the SBC datacenter. However, in some cases a public IP from for example a US range can be assigned to an SBC located in Europe. In this case we will be using not optimal media path. We only recommend setting this parameter if the call logs clearly indicate that automatic assignment of the datacenter for media path does not assign the closest to the SBC datacenter. String String - None + $false - InboundTeamsNumberTranslationRules + OutboundPSTNNumberTranslationRules - This parameter assigns an ordered list of Teams translation rules, that apply to Teams numbers on inbound direction. + Assigns an ordered list of Teams translation rules, that apply to PSTN number on outbound direction. Object @@ -77370,9 +85052,9 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - InboundPSTNNumberTranslationRules + OutboundTeamsNumberTranslationRules - Creates an ordered list of Teams translation rules, that apply to PSTN number on inbound direction. + Creates an ordered list of Teams translation rules, that apply to Teams Number on outbound direction. Object @@ -77382,49 +85064,53 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge None - OutboundTeamsNumberTranslationRules + PidfloSupported - Creates an ordered list of Teams translation rules, that apply to Teams Number on outbound direction. + > Applicable: Microsoft Teams + Enables PIDF-LO support on the PSTN Gateway. If turned on the .xml body payload is sent to the SBC with the location details of the user. - Object + Boolean - Object + Boolean - None + $false - OutboundPSTNNumberTranslationRules + ProxySbc - Assigns an ordered list of Teams translation rules, that apply to PSTN number on outbound direction. + > Applicable: Microsoft Teams + The FQDN of the proxy SBC. Used in Local Media Optimization configurations. - Object + String - Object + String None - PidfloSupported + SendSipOptions - Enables PIDF-LO support on the PSTN Gateway. If turned on the .xml body payload is sent to the SBC with the location details of the user. + > Applicable: Microsoft Teams + Defines if an SBC will or will not send the SIP options. If disabled, the SBC will be excluded from Monitoring and Alerting system. We highly recommend that you enable SIP options. Default value is True. Boolean Boolean - $false + $true - ProxySbc + SipSignalingPort - The FQDN of the proxy SBC. Used in Local Media Optimization configurations. + > Applicable: Microsoft Teams + Listening port used for communicating with Direct Routing services by using the Transport Layer Security (TLS) protocol. The value must be between 1 and 65535. - String + Int32 - String + Int32 None @@ -77432,6 +85118,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge WhatIf + > Applicable: Microsoft Teams Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -77441,18 +85128,6 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - @@ -77489,19 +85164,19 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csonlinepstngateway + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinepstngateway New-CsOnlinePSTNGateway - https://learn.microsoft.com/powershell/module/teams/new-csonlinepstngateway + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinepstngateway Get-CsOnlinePSTNGateway - https://learn.microsoft.com/powershell/module/teams/get-csonlinepstngateway + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinepstngateway Remove-CsOnlinePSTNGateway - https://learn.microsoft.com/powershell/module/teams/remove-csonlinepstngateway + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinepstngateway @@ -77677,11 +85352,11 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csonlinepstnusage + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinepstnusage Get-CsOnlinePstnUsage - https://learn.microsoft.com/powershell/module/teams/get-csonlinepstnusage + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinepstnusage @@ -77703,6 +85378,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Instance + > Applicable: Microsoft Teams The Instance parameter is the object reference to the schedule to be modified. Object @@ -77715,7 +85391,8 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -77730,6 +85407,7 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Instance + > Applicable: Microsoft Teams The Instance parameter is the object reference to the schedule to be modified. Object @@ -77742,7 +85420,8 @@ Set-CsOnlineDialInConferencingBridge -Instance $bridge Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -77811,15 +85490,15 @@ Set-CsOnlineSchedule -Instance $schedule Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csonlineschedule + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineschedule New-CsOnlineSchedule - https://learn.microsoft.com/powershell/module/teams/new-csonlineschedule + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineschedule Remove-CsOnlineSchedule - https://learn.microsoft.com/powershell/module/teams/remove-csonlineschedule + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineschedule @@ -77829,11 +85508,11 @@ Set-CsOnlineSchedule -Instance $schedule Set CsOnlineVoiceApplicationInstance - The `Set-CsOnlineVoiceApplicationInstance` modifies an application instance in Microsoft Entra ID. Note : This cmdlet has been deprecated. Use the new Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/teams/set-csphonenumberassignment)and Remove-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/teams/remove-csphonenumberassignment)cmdlets instead. + The cmdlet modifies an application instance in Microsoft Entra ID. - This cmdlet is used to modify an application instance in Microsoft Entra ID. + This cmdlet is used to modify an application instance in Microsoft Entra ID. Note : This cmdlet has been deprecated. Use the new Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberassignment)and Remove-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/remove-csphonenumberassignment)cmdlets instead. @@ -78052,11 +85731,11 @@ Set-CsOnlineSchedule -Instance $schedule Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csonlinevoiceapplicationinstance + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoiceapplicationinstance New-CsOnlineApplicationInstance - https://learn.microsoft.com/powershell/module/teams/new-csonlineapplicationinstance + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineapplicationinstance @@ -78075,21 +85754,10 @@ Set-CsOnlineSchedule -Instance $schedule Set-CsOnlineVoicemailUserSettings - - Identity - - The Identity parameter represents the ID of the specific user in your organization; this can be either a SIP URI or an Object ID. - - System.String - - System.String - - - None - CallAnswerRule + > Applicable: Microsoft Teams The CallAnswerRule parameter represents the value of the call answer rule, which can be any of the following: - DeclineCall - PromptOnly @@ -78104,9 +85772,22 @@ Set-CsOnlineSchedule -Instance $schedule None + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. + + + SwitchParameter + + + False + DefaultGreetingPromptOverwrite + > Applicable: Microsoft Teams The DefaultGreetingPromptOverwrite parameter represents the contents that overwrite the default normal greeting prompt. If the user's normal custom greeting is not set and DefaultGreetingPromptOverwrite is not empty, the voicemail service will play this overwrite greeting instead of the default normal greeting in the voicemail deposit scenario. System.String @@ -78119,6 +85800,7 @@ Set-CsOnlineSchedule -Instance $schedule DefaultOofGreetingPromptOverwrite + > Applicable: Microsoft Teams The DefaultOofGreetingPromptOverwrite parameter represents the contents that overwrite the default out-of-office greeting prompt. If the user's out-of-office custom greeting is not set and DefaultOofGreetingPromptOverwrite is not empty, the voicemail service will play this overwrite greeting instead of the default out-of-office greeting in the voicemail deposit scenario. System.String @@ -78139,9 +85821,23 @@ Set-CsOnlineSchedule -Instance $schedule False + + Identity + + > Applicable: Microsoft Teams + The Identity parameter represents the ID of the specific user in your organization; this can be either a SIP URI or an Object ID. + + System.String + + System.String + + + None + OofGreetingEnabled + > Applicable: Microsoft Teams The OofGreetingEnabled parameter represents whether to play out-of-office greeting in voicemail deposit scenario. System.Boolean @@ -78154,6 +85850,7 @@ Set-CsOnlineSchedule -Instance $schedule OofGreetingFollowAutomaticRepliesEnabled + > Applicable: Microsoft Teams The OofGreetingFollowAutomaticRepliesEnabled parameter represents whether to play out-of-office greeting in voicemail deposit scenario when user set automatic replies in Outlook. System.Boolean @@ -78166,6 +85863,7 @@ Set-CsOnlineSchedule -Instance $schedule PromptLanguage + > Applicable: Microsoft Teams The PromptLanguage parameter represents the language that is used to play voicemail prompts. The following languages are supported: - "ar-EG" (Arabic - Egypt) @@ -78233,6 +85931,7 @@ Set-CsOnlineSchedule -Instance $schedule ShareData + > Applicable: Microsoft Teams Specifies whether voicemail and transcription data is shared with the service for training and improving accuracy. System.Boolean @@ -78245,6 +85944,7 @@ Set-CsOnlineSchedule -Instance $schedule TransferTarget + > Applicable: Microsoft Teams The TransferTarget parameter represents the target to transfer the call when call answer rule set to PromptOnlyWithTransfer or VoicemailWithTransferOption. Value of this parameter should be a SIP URI of another user in your organization. For user with Enterprise Voice enabled, a valid telephone number could also be accepted as TransferTarget. System.String @@ -78257,6 +85957,7 @@ Set-CsOnlineSchedule -Instance $schedule VoicemailEnabled + > Applicable: Microsoft Teams The VoicemailEnabled parameter represents whether to enable voicemail service. If set to $false, the user has no voicemail service. System.Boolean @@ -78269,6 +85970,7 @@ Set-CsOnlineSchedule -Instance $schedule WhatIf + > Applicable: Microsoft Teams Describes what would happen if you executed the command without actually executing the command. @@ -78277,35 +85979,13 @@ Set-CsOnlineSchedule -Instance $schedule False - - Confirm - - Prompts you for confirmation before executing the command. - - - SwitchParameter - - - False - - - Identity - - The Identity parameter represents the ID of the specific user in your organization; this can be either a SIP URI or an Object ID. - - System.String - - System.String - - - None - CallAnswerRule + > Applicable: Microsoft Teams The CallAnswerRule parameter represents the value of the call answer rule, which can be any of the following: - DeclineCall - PromptOnly @@ -78320,9 +86000,23 @@ Set-CsOnlineSchedule -Instance $schedule None + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. + + SwitchParameter + + SwitchParameter + + + False + DefaultGreetingPromptOverwrite + > Applicable: Microsoft Teams The DefaultGreetingPromptOverwrite parameter represents the contents that overwrite the default normal greeting prompt. If the user's normal custom greeting is not set and DefaultGreetingPromptOverwrite is not empty, the voicemail service will play this overwrite greeting instead of the default normal greeting in the voicemail deposit scenario. System.String @@ -78335,6 +86029,7 @@ Set-CsOnlineSchedule -Instance $schedule DefaultOofGreetingPromptOverwrite + > Applicable: Microsoft Teams The DefaultOofGreetingPromptOverwrite parameter represents the contents that overwrite the default out-of-office greeting prompt. If the user's out-of-office custom greeting is not set and DefaultOofGreetingPromptOverwrite is not empty, the voicemail service will play this overwrite greeting instead of the default out-of-office greeting in the voicemail deposit scenario. System.String @@ -78356,9 +86051,23 @@ Set-CsOnlineSchedule -Instance $schedule False + + Identity + + > Applicable: Microsoft Teams + The Identity parameter represents the ID of the specific user in your organization; this can be either a SIP URI or an Object ID. + + System.String + + System.String + + + None + OofGreetingEnabled + > Applicable: Microsoft Teams The OofGreetingEnabled parameter represents whether to play out-of-office greeting in voicemail deposit scenario. System.Boolean @@ -78371,6 +86080,7 @@ Set-CsOnlineSchedule -Instance $schedule OofGreetingFollowAutomaticRepliesEnabled + > Applicable: Microsoft Teams The OofGreetingFollowAutomaticRepliesEnabled parameter represents whether to play out-of-office greeting in voicemail deposit scenario when user set automatic replies in Outlook. System.Boolean @@ -78383,6 +86093,7 @@ Set-CsOnlineSchedule -Instance $schedule PromptLanguage + > Applicable: Microsoft Teams The PromptLanguage parameter represents the language that is used to play voicemail prompts. The following languages are supported: - "ar-EG" (Arabic - Egypt) @@ -78450,6 +86161,7 @@ Set-CsOnlineSchedule -Instance $schedule ShareData + > Applicable: Microsoft Teams Specifies whether voicemail and transcription data is shared with the service for training and improving accuracy. System.Boolean @@ -78462,6 +86174,7 @@ Set-CsOnlineSchedule -Instance $schedule TransferTarget + > Applicable: Microsoft Teams The TransferTarget parameter represents the target to transfer the call when call answer rule set to PromptOnlyWithTransfer or VoicemailWithTransferOption. Value of this parameter should be a SIP URI of another user in your organization. For user with Enterprise Voice enabled, a valid telephone number could also be accepted as TransferTarget. System.String @@ -78474,6 +86187,7 @@ Set-CsOnlineSchedule -Instance $schedule VoicemailEnabled + > Applicable: Microsoft Teams The VoicemailEnabled parameter represents whether to enable voicemail service. If set to $false, the user has no voicemail service. System.Boolean @@ -78486,6 +86200,7 @@ Set-CsOnlineSchedule -Instance $schedule WhatIf + > Applicable: Microsoft Teams Describes what would happen if you executed the command without actually executing the command. SwitchParameter @@ -78495,18 +86210,6 @@ Set-CsOnlineSchedule -Instance $schedule False - - Confirm - - Prompts you for confirmation before executing the command. - - SwitchParameter - - SwitchParameter - - - False - @@ -78573,11 +86276,11 @@ Set-CsOnlineSchedule -Instance $schedule Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csonlinevoicemailusersettings + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailusersettings Get-CsOnlineVoicemailUserSettings - https://learn.microsoft.com/powershell/module/teams/get-csonlinevoicemailusersettings + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoicemailusersettings @@ -78876,19 +86579,19 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csonlinevoiceroute + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoiceroute Get-CsOnlineVoiceRoute - https://learn.microsoft.com/powershell/module/teams/get-csonlinevoiceroute + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoiceroute New-CsOnlineVoiceRoute - https://learn.microsoft.com/powershell/module/teams/new-csonlinevoiceroute + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoiceroute Remove-CsOnlineVoiceRoute - https://learn.microsoft.com/powershell/module/teams/remove-csonlinevoiceroute + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoiceroute @@ -79104,23 +86807,23 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csonlinevoiceroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoiceroutingpolicy New-CsOnlineVoiceRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csonlinevoiceroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoiceroutingpolicy Get-CsOnlineVoiceRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csonlinevoiceroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoiceroutingpolicy Grant-CsOnlineVoiceRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csonlinevoiceroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csonlinevoiceroutingpolicy Remove-CsOnlineVoiceRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csonlinevoiceroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoiceroutingpolicy @@ -79130,11 +86833,11 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ Set CsOnlineVoiceUser - Use the `Set-CsOnlineVoiceUser` cmdlet to set the PSTN specific parameters (like telephone numbers and emergency response locations.) Note : This cmdlet has been deprecated. Use the new Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/teams/set-csphonenumberassignment)and Remove-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/teams/remove-csphonenumberassignment)cmdlets instead. + Use the `Set-CsOnlineVoiceUser` cmdlet to set the PSTN specific parameters (like telephone numbers and emergency response locations.) - + Note : This cmdlet has been deprecated. Use the new Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberassignment)and Remove-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/remove-csphonenumberassignment)cmdlets instead. @@ -79142,6 +86845,7 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ Identity + > Applicable: Microsoft Teams Specifies the identity of the target user. Acceptable values include: Example: jphillips@contoso.com Example: sip:jphillips@contoso.com @@ -79158,6 +86862,7 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ Confirm + > Applicable: Microsoft Teams The Confirm switch causes the command to pause processing and requires confirmation to proceed. @@ -79169,6 +86874,7 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ DomainController + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Fqdn @@ -79181,6 +86887,7 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -79192,6 +86899,7 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ LocationID + > Applicable: Microsoft Teams Specifies the unique identifier of the emergency location to assign to the user. Location identities can be discovered by using the `Get-CsOnlineLisLocation` cmdlet. This parameter is required for users based in the US. @@ -79205,6 +86913,7 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ TelephoneNumber + > Applicable: Microsoft Teams Specifies the telephone number to be assigned to the user. The value must be in E.164 format: +14255043920. Setting the value to $Null clears the user's telephone number. String @@ -79217,6 +86926,7 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ Tenant + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Guid @@ -79229,6 +86939,7 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ WhatIf + > Applicable: Microsoft Teams The WhatIf parameter is not implemented for this cmdlet. @@ -79240,25 +86951,10 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ - - Identity - - Specifies the identity of the target user. Acceptable values include: - Example: jphillips@contoso.com - Example: sip:jphillips@contoso.com - Example: 98403f08-577c-46dd-851a-f0460a13b03d - You can use the `Get-CsOnlineUser` cmdlet to identify the users you want to modify. - - Object - - Object - - - None - Confirm + > Applicable: Microsoft Teams The Confirm switch causes the command to pause processing and requires confirmation to proceed. SwitchParameter @@ -79271,6 +86967,7 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ DomainController + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Fqdn @@ -79283,6 +86980,7 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -79292,9 +86990,27 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ False + + Identity + + > Applicable: Microsoft Teams + Specifies the identity of the target user. Acceptable values include: + Example: jphillips@contoso.com + Example: sip:jphillips@contoso.com + Example: 98403f08-577c-46dd-851a-f0460a13b03d + You can use the `Get-CsOnlineUser` cmdlet to identify the users you want to modify. + + Object + + Object + + + None + LocationID + > Applicable: Microsoft Teams Specifies the unique identifier of the emergency location to assign to the user. Location identities can be discovered by using the `Get-CsOnlineLisLocation` cmdlet. This parameter is required for users based in the US. @@ -79308,6 +87024,7 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ TelephoneNumber + > Applicable: Microsoft Teams Specifies the telephone number to be assigned to the user. The value must be in E.164 format: +14255043920. Setting the value to $Null clears the user's telephone number. String @@ -79320,6 +87037,7 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ Tenant + > Applicable: Microsoft Teams This parameter is reserved for internal Microsoft use. Guid @@ -79332,6 +87050,7 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ WhatIf + > Applicable: Microsoft Teams The WhatIf parameter is not implemented for this cmdlet. SwitchParameter @@ -79351,24 +87070,492 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ - -------------------------- Example 1 -------------------------- - Set-CsOnlineVoiceUser -Identity 3c37e1c7-78f9-4703-82ee-a6b68516794e -TelephoneNumber +14255037311 -LocationID c7c5a17f-00d7-47c0-9ddb-3383229d606b + -------------------------- Example 1 -------------------------- + Set-CsOnlineVoiceUser -Identity 3c37e1c7-78f9-4703-82ee-a6b68516794e -TelephoneNumber +14255037311 -LocationID c7c5a17f-00d7-47c0-9ddb-3383229d606b + + This example sets the telephone number and location for a user identified by the user ObjectID. + + + + -------------------------- Example 2 -------------------------- + Set-CsOnlineVoiceUser -Identity user@domain.com -TelephoneNumber $null + + This example removes the telephone number for a user identified by the user's SIP address. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoiceuser + + + + + + Set-CsPersonalAttendantSettings + Set + CsPersonalAttendantSettings + + Limited Preview: Functionality described in this document is currently in limited preview and only authorized organizations have access. + This cmdlet will set personal attendant settings for the specified user. + + + + This cmdlet sets personal attendant settings for the specified user. + When specifying settings you need to specify all settings, for instance, you can't just turn call screening on. Instead, you need to start by getting the current settings, making the necessary changes, and then setting/writing all settings. + + + + Set-CsPersonalAttendantSettings + + Identity + + The Identity of the user to set personal attendant settings for. Can be specified using the ObjectId or the SIP address. + + System.String + + System.String + + + None + + + IsPersonalAttendantEnabled + + This parameter controls whether personal attendant is enabled or not. If personal attendant is enabled, then at least one of: AllowInboundInternalCalls, AllowInboundFederatedCalls, AllowInboundPSTNCalls must be enabled. + + System.Boolean + + System.Boolean + + + False + + + DefaultLanguage + + Language to be used by personal attendant in communication. The preliminary list of supported languages is: en-US, fr-FR, ar-SA, zh-CN, zh-TW, cs-CZ, da-DK, nl-NL, en-AU, en-GB, fi-FI, fr-CA, de-DE, el-GR, hi-IN, id-ID, it-IT, ja-JP, ko-KR, nb-NO, pl-PL, pt-BR, ru-RU, es-ES, es-US, sv-SE, th-TH, tr-TR + + System.String + + System.String + + + en-US + + + DefaultVoice + + Voice to be used by personal attendant in communication. Supported values are Female and Male. + > [!NOTE] > This parameter is currently in development and changing it does not change the behavior of Personal Attendant. + + System.String + + System.String + + + Female + + + CalleeName + + Name that personal attendant uses when referring to its owner. + + System.String + + System.String + + + None + + + DefaultTone + + Tone to be used by personal attendant in communication. Supported values are Formal and Casual. + > [!NOTE] > This parameter is currently in development and enabling/disabling it does not change the behavior of Personal Attendant. + + System.String + + System.String + + + Formal + + + IsBookingCalendarEnabled + + This parameter controls whether personal attendant can access personal bookings calendar to fetch the user's availability and schedule callbacks on behalf of the user. If access to personal calendar is enabled by admin, user must specify the bookings link in Teams Personal Attendant settings. + + System.Boolean + + System.Boolean + + + False + + + IsNonContactCallbackEnabled + + This parameter controls whether personal attendant calendar operations for callers not in the user contact list are enabled or not. + > [!NOTE] > This parameter is currently in development and enabling/disabling it does not change the behavior of Personal Attendant. + + System.Boolean + + System.Boolean + + + False + + + IsCallScreeningEnabled + + This parameter controls whether personal attendant evaluates calls context and passes the info to the user. + + System.Boolean + + System.Boolean + + + True + + + AllowInboundInternalCalls + + This parameter controls whether personal attendant for incoming domain calls is enabled or not. + + System.Boolean + + System.Boolean + + + True + + + AllowInboundFederatedCalls + + This parameter controls whether personal attendant for incoming calls from other domains is enabled or not. + + System.Boolean + + System.Boolean + + + True + + + AllowInboundPSTNCalls + + This parameter controls whether personal attendant for incoming PSTN calls is enabled or not. + + System.Boolean + + System.Boolean + + + True + + + IsAutomaticTranscriptionEnabled + + This parameter controls whether automatic storing of transcriptions (of personal attendant calls) is enabled or not. + + System.Boolean + + System.Boolean + + + True + + + IsAutomaticRecordingEnabled + + This parameter controls whether automatic storing of recordings (of personal attendant calls) is enabled or not. + + System.Boolean + + System.Boolean + + + True + + + + + + Identity + + The Identity of the user to set personal attendant settings for. Can be specified using the ObjectId or the SIP address. + + System.String + + System.String + + + None + + + IsPersonalAttendantEnabled + + This parameter controls whether personal attendant is enabled or not. If personal attendant is enabled, then at least one of: AllowInboundInternalCalls, AllowInboundFederatedCalls, AllowInboundPSTNCalls must be enabled. + + System.Boolean + + System.Boolean + + + False + + + DefaultLanguage + + Language to be used by personal attendant in communication. The preliminary list of supported languages is: en-US, fr-FR, ar-SA, zh-CN, zh-TW, cs-CZ, da-DK, nl-NL, en-AU, en-GB, fi-FI, fr-CA, de-DE, el-GR, hi-IN, id-ID, it-IT, ja-JP, ko-KR, nb-NO, pl-PL, pt-BR, ru-RU, es-ES, es-US, sv-SE, th-TH, tr-TR + + System.String + + System.String + + + en-US + + + DefaultVoice + + Voice to be used by personal attendant in communication. Supported values are Female and Male. + > [!NOTE] > This parameter is currently in development and changing it does not change the behavior of Personal Attendant. + + System.String + + System.String + + + Female + + + CalleeName + + Name that personal attendant uses when referring to its owner. + + System.String + + System.String + + + None + + + DefaultTone + + Tone to be used by personal attendant in communication. Supported values are Formal and Casual. + > [!NOTE] > This parameter is currently in development and enabling/disabling it does not change the behavior of Personal Attendant. + + System.String + + System.String + + + Formal + + + IsBookingCalendarEnabled + + This parameter controls whether personal attendant can access personal bookings calendar to fetch the user's availability and schedule callbacks on behalf of the user. If access to personal calendar is enabled by admin, user must specify the bookings link in Teams Personal Attendant settings. + + System.Boolean + + System.Boolean + + + False + + + IsNonContactCallbackEnabled + + This parameter controls whether personal attendant calendar operations for callers not in the user contact list are enabled or not. + > [!NOTE] > This parameter is currently in development and enabling/disabling it does not change the behavior of Personal Attendant. + + System.Boolean + + System.Boolean + + + False + + + IsCallScreeningEnabled + + This parameter controls whether personal attendant evaluates calls context and passes the info to the user. + + System.Boolean + + System.Boolean + + + True + + + AllowInboundInternalCalls + + This parameter controls whether personal attendant for incoming domain calls is enabled or not. + + System.Boolean + + System.Boolean + + + True + + + AllowInboundFederatedCalls + + This parameter controls whether personal attendant for incoming calls from other domains is enabled or not. + + System.Boolean + + System.Boolean + + + True + + + AllowInboundPSTNCalls + + This parameter controls whether personal attendant for incoming PSTN calls is enabled or not. + + System.Boolean + + System.Boolean + + + True + + + IsAutomaticTranscriptionEnabled + + This parameter controls whether automatic storing of transcriptions (of personal attendant calls) is enabled or not. + + System.Boolean + + System.Boolean + + + True + + + IsAutomaticRecordingEnabled + + This parameter controls whether automatic storing of recordings (of personal attendant calls) is enabled or not. + + System.Boolean + + System.Boolean + + + True + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + The cmdlet is available in Teams PowerShell module 7.3.0 or later. + The specified user need to have the Microsoft Phone System license assigned. + The cmdlet is validating different settings and is always writing all the parameters. You might see validation errors from the cmdlet due to this behavior. As an example, if you already have call forwarding set up and you want to set up personal attendant, you will get a validation error. + + + + + -------------------------- Example 1 -------------------------- + Set-CsPersonalAttendantSettings -Identity user1@contoso.com -IsPersonalAttendantEnabled $true -DefaultLanguage en-US -CalleeName User1 -IsBookingCalendarEnabled $false -IsCallScreeningEnabled $false +-AllowInboundInternalCalls $true -AllowInboundFederatedCalls $false -AllowInboundPSTNCalls $false -IsAutomaticTranscriptionEnabled $false -IsAutomaticRecordingEnabled $false + + This example shows setting up personal attendant for user1@contoso.com. Personal attendant communicates in English. Personal attendant will refer to its owner as User1. Personal attendant is only enabled for inbound Teams calls from the user's domain. Additional capabilities are turned off. + + + + -------------------------- Example 2 -------------------------- + Set-CsPersonalAttendantSettings -Identity user1@contoso.com -IsPersonalAttendantEnabled $true -DefaultLanguage en-US -CalleeName User1 -IsBookingCalendarEnabled $true -IsCallScreeningEnabled $false +-AllowInboundInternalCalls $true -AllowInboundFederatedCalls $false -AllowInboundPSTNCalls $false -IsAutomaticTranscriptionEnabled $false -IsAutomaticRecordingEnabled $false + + This example shows setting up personal attendant for user1@contoso.com. In addition to previously mentioned capabilities, personal attendant is able to access personal bookings calendar, fetch the user's availability and schedule callbacks on behalf of the user. Calendar operations are enabled for all incoming callers. user1 must specify the bookings link in Teams Personal Attendant settings. + + + + -------------------------- Example 3 -------------------------- + Set-CsPersonalAttendantSettings -Identity user1@contoso.com -IsPersonalAttendantEnabled $true -DefaultLanguage en-US -CalleeName User1 -IsBookingCalendarEnabled $true -IsCallScreeningEnabled $false +-AllowInboundInternalCalls $true -AllowInboundFederatedCalls $true -AllowInboundPSTNCalls $true -IsAutomaticTranscriptionEnabled $false -IsAutomaticRecordingEnabled $false + + This example shows setting up personal attendant for user1@contoso.com. In addition to previously mentioned capabilities, personal attendant is enabled for all incoming calls: the user's domain, other domains and PSTN. + + + + -------------------------- Example 4 -------------------------- + Set-CsPersonalAttendantSettings -Identity user1@contoso.com -IsPersonalAttendantEnabled $true -DefaultLanguage en-US -CalleeName User1 -IsBookingCalendarEnabled $true -IsCallScreeningEnabled $true +-AllowInboundInternalCalls $true -AllowInboundFederatedCalls $true -AllowInboundPSTNCalls $true -IsAutomaticTranscriptionEnabled $false -IsAutomaticRecordingEnabled $false + + This example shows setting up personal attendant for user1@contoso.com. In addition to previously mentioned capabilities, personal attendant is enabled to evaluate the call's context and pass the info to the user. + + + + -------------------------- Example 5 -------------------------- + Set-CsPersonalAttendantSettings -Identity user1@contoso.com -IsPersonalAttendantEnabled $true -DefaultLanguage en-US -CalleeName User1 -IsBookingCalendarEnabled $true -IsCallScreeningEnabled $true +-AllowInboundInternalCalls $true -AllowInboundFederatedCalls $true -AllowInboundPSTNCalls $true -IsAutomaticTranscriptionEnabled $true -IsAutomaticRecordingEnabled $true + + This example shows setting up personal attendant for user1@contoso.com. In addition to previously mentioned capabilities, personal attendant is automatically storing call transcription and recording. + + + + -------------------------- Example 6 -------------------------- + Set-CsPersonalAttendantSettings -Identity user1@contoso.com -IsPersonalAttendantEnabled $false + + This example shows turning off personal attendant for user1@contoso.com. + + + + -------------------------- Example 7 -------------------------- + Set-CsUserCallingSettings -Identity user1@contoso.com -IsForwardingEnabled $false +Set-CsPersonalAttendantSettings -Identity user1@contoso.com -IsPersonalAttendantEnabled $true -DefaultLanguage en-US -CalleeName User1 -IsBookingCalendarEnabled $false -IsCallScreeningEnabled $false +-AllowInboundInternalCalls $true -AllowInboundFederatedCalls $false -AllowInboundPSTNCalls $false -IsAutomaticTranscriptionEnabled $false -IsAutomaticRecordingEnabled $false - This example sets the telephone number and location for a user identified by the user ObjectID. + This example shows how to set up personal attendant for a user, who has call forwarding enabled. - -------------------------- Example 2 -------------------------- - Set-CsOnlineVoiceUser -Identity user@domain.com -TelephoneNumber $null + -------------------------- Example 8 -------------------------- + Set-CsUserCallingSettings -Identity user1@contoso.com -IsUnansweredEnabled $true -UnansweredTargetType Voicemail -UnansweredDelay 00:00:20 +Set-CsPersonalAttendantSettings -Identity user1@contoso.com -IsPersonalAttendantEnabled $true -DefaultLanguage en-US -CalleeName User1 -IsBookingCalendarEnabled $false -IsCallScreeningEnabled $false +-AllowInboundInternalCalls $true -AllowInboundFederatedCalls $false -AllowInboundPSTNCalls $false -IsAutomaticTranscriptionEnabled $false -IsAutomaticRecordingEnabled $false - This example removes the telephone number for a user identified by the user's SIP address. + This example shows how to set up personal attendant for a user, who would like to use unanswered call functionality simultaniously with personal attendant. Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csonlinevoiceuser + https://learn.microsoft.com/powershell/module/microsoftteams/set-cspersonalattendantsettings + + + Get-CsPersonalAttendantSettings + @@ -79382,9 +87569,9 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ - This cmdlet assigns a phone number to a user or resource account. When you assign a phone number the EnterpriseVoiceEnabled flag is automatically set to True. + This cmdlet assigns a telephone number to a user or resource account. When you assign a phone number the EnterpriseVoiceEnabled flag is automatically set to True. You can also assign a location to a phone number. - To remove a phone number from a user or resource account, use the Remove-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/teams/remove-csphonenumberassignment)cmdlet. + To remove a phone number from a user or resource account, use the Remove-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/remove-csphonenumberassignment)cmdlet. @@ -79392,6 +87579,7 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ AssignmentCategory + > Applicable: Microsoft Teams This parameter indicates the phone number assignment category if it isn't the primary phone number. For example, a Private line can be assigned to a user using '-AssignmentCategory Private'. System.String @@ -79401,6 +87589,18 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ None + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + Identity @@ -79414,6 +87614,19 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ None + NetworkSiteId + + > Applicable: Microsoft Teams + ID of a network site. A network site represents a location where your organization has a physical venue, such as offices, a set of buildings, or a campus. + + System.String + + System.String + + + None + + NetworkSiteId This parameter is reserved for internal Microsoft use. @@ -79425,6 +87638,31 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ None + + Notify + + Sends an email to Teams phone user about new telephone number assignment. + + + System.Management.Automation.SwitchParameter + + + False + + + PhoneNumber + + The phone number to assign to the user or resource account. Supports E.164 format like +12065551234 and non-E.164 format like 12065551234. The phone number can't have "tel:" prefixed. + We support Direct Routing numbers with extensions using the formats +1206555000;ext=1234 or 1206555000;ext=1234 assigned to a user or resource account. + Setting a phone number will automatically set EnterpriseVoiceEnabled to True. + + System.String + + System.String + + + None + PhoneNumberType @@ -79443,6 +87681,7 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ EnterpriseVoiceEnabled + > Applicable: Microsoft Teams Flag indicating if the user or resource account should be EnterpriseVoiceEnabled. This parameter is mutual exclusive with PhoneNumber. @@ -79453,6 +87692,18 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ None + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + Identity @@ -79468,14 +87719,14 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ Set-CsPhoneNumberAssignment - - Identity + + HttpPipelinePrepend - The Identity of the specific user or resource account. Can be specified using the value in the ObjectId, the SipProxyAddress, or the UserPrincipalName attribute of the user or resource account. + {{ Fill HttpPipelinePrepend Description }} - System.String + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] - System.String + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] None @@ -79510,23 +87761,22 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ Set-CsPhoneNumberAssignment - - Identity + + HttpPipelinePrepend - The Identity of the specific user or resource account. Can be specified using the value in the ObjectId, the SipProxyAddress, or the UserPrincipalName attribute of the user or resource account. + {{ Fill HttpPipelinePrepend Description }} - System.String + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] - System.String + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] None - LocationId + NetworkSiteId - The LocationId of the location to assign to the specific user. You can get it using Get-CsOnlineLisLocation. You can set the location on both assigned and unassigned phone numbers. - Removal of location from a phone number is supported for Direct Routing numbers and Operator Connect numbers that are not managed by the Service Desk. If you want to remove the location, use the string value null for LocationId. + This parameter is reserved for internal Microsoft use. System.String @@ -79552,37 +87802,24 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ Set-CsPhoneNumberAssignment - - Identity - - The Identity of the specific user or resource account. Can be specified using the value in the ObjectId, the SipProxyAddress, or the UserPrincipalName attribute of the user or resource account. - - System.String - - System.String - - - None - - - ReverseNumberLookup + + HttpPipelinePrepend - This parameter is used to control the behavior of reverse number lookup (RNL) for a phone number.When RNL is set to 'SkipInternalVoip', an internal call to this phone number will not attempt to pass through internal VoIP via reverse number lookup in Microsoft Teams. Instead the call will be established through external PSTN connectivity directly. + {{ Fill HttpPipelinePrepend Description }} - String + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] - String + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] None - - - Set-CsPhoneNumberAssignment - Identity + PhoneNumber - The Identity of the specific user or resource account. Can be specified using the value in the ObjectId, the SipProxyAddress, or the UserPrincipalName attribute of the user or resource account. + The phone number to assign to the user or resource account. Supports E.164 format like +12065551234 and non-E.164 format like 12065551234. The phone number can't have "tel:" prefixed. + We support Direct Routing numbers with extensions using the formats +1206555000;ext=1234 or 1206555000;ext=1234 assigned to a user or resource account. + Setting a phone number will automatically set EnterpriseVoiceEnabled to True. System.String @@ -79596,9 +87833,9 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ This parameter is used to control the behavior of reverse number lookup (RNL) for a phone number.When RNL is set to 'SkipInternalVoip', an internal call to this phone number will not attempt to pass through internal VoIP via reverse number lookup in Microsoft Teams. Instead the call will be established through external PSTN connectivity directly. - String + System.String - String + System.String None @@ -79609,6 +87846,7 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ AssignmentCategory + > Applicable: Microsoft Teams This parameter indicates the phone number assignment category if it isn't the primary phone number. For example, a Private line can be assigned to a user using '-AssignmentCategory Private'. System.String @@ -79621,6 +87859,7 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ EnterpriseVoiceEnabled + > Applicable: Microsoft Teams Flag indicating if the user or resource account should be EnterpriseVoiceEnabled. This parameter is mutual exclusive with PhoneNumber. @@ -79631,6 +87870,18 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ None + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + Identity @@ -79657,6 +87908,19 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ None + NetworkSiteId + + > Applicable: Microsoft Teams + ID of a network site. A network site represents a location where your organization has a physical venue, such as offices, a set of buildings, or a campus. + + System.String + + System.String + + + None + + NetworkSiteId This parameter is reserved for internal Microsoft use. @@ -79668,6 +87932,18 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ None + + Notify + + Sends an email to Teams phone user about new telephone number assignment. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + PhoneNumber @@ -79699,9 +87975,9 @@ PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$ This parameter is used to control the behavior of reverse number lookup (RNL) for a phone number.When RNL is set to 'SkipInternalVoip', an internal call to this phone number will not attempt to pass through internal VoIP via reverse number lookup in Microsoft Teams. Instead the call will be established through external PSTN connectivity directly. - String + System.String - String + System.String None @@ -79845,73 +88121,87 @@ Write-Host (Get-CsPhoneNumberAssignment -LocationId $NewLocationId).Count number This example shows how to assign a private phone number (incoming calls only) to a user. + + -------------------------- Example 13 -------------------------- + Set-CsPhoneNumberAssignment -Identity user1@contoso.com -PhoneNumber '+14255551234' -PhoneNumberType CallingPlan -LocationId "7fda0c0b-6a3d-48b8-854b-3fbe9dcf6513" -Notify + + This example shows how to send an email to Teams phone users informing them about the new telephone number assignment. Note: For assignment of India telephone numbers provided by Airtel, Teams Phone users will automatically receive an email outlining the usage guidelines and restrictions. This notification is mandatory and cannot be opted out of. + + Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csphonenumberassignment + https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberassignment Remove-CsPhoneNumberAssignment - https://learn.microsoft.com/powershell/module/teams/remove-csphonenumberassignment + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csphonenumberassignment Get-CsPhoneNumberAssignment - https://learn.microsoft.com/powershell/module/teams/get-csphonenumberassignment + https://learn.microsoft.com/powershell/module/microsoftteams/get-csphonenumberassignment - Set-CsTeamsAcsFederationConfiguration + Set-CsPhoneNumberPolicyAssignment Set - CsTeamsAcsFederationConfiguration + CsPhoneNumberPolicyAssignment - This cmdlet is used to manage the federation configuration between Teams and Azure Communication Services. For more information, please see Azure Communication Services and Teams Interoperability (https://learn.microsoft.com/azure/communication-services/concepts/teams-interop). + This cmdlet assigns a policy to a specific telephone number in Microsoft Teams. - Federation between Teams and Azure Communication Services (ACS) allows external users from ACS to connect and communicate with Teams users over voice and video. These custom applications may be used by end users or by bots, and there is no differentiation in how they appear to Teams users unless the developer of the application explicitly indicates this as part of the communication. For more information, see Teams interoperability (https://learn.microsoft.com/azure/communication-services/concepts/teams-interop). - This cmdlet is used to enable or disable Teams and ACS federation for a Teams tenant, and to specify which ACS resources can connect to Teams. Only listed ACS resources can be allowed. - You must be a Teams service admin or a Teams communication admin for your organization to run the cmdlet. + The cmdlet assigns a policy to a telephone number in Microsoft Teams. This is useful in multi-line scenarios or when managing voice configurations for users who require specific dial plans or calling policies for different telephone numbers. + Please note that policies must be pre-created and available in the tenant before assignment. The list of policies that can be assigned to telephone numbers are: - CallingLineIdentity + - OnlineDialOutPolicy + - OnlineVoiceRoutingPolicy + - TeamsEmergencyCallingPolicy + - TeamsEmergencyCallRoutingPolicy + - TeamsSharedCallingRoutingPolicy + - TenantDialPlan + + Assignments are effective immediately, but may take a few minutes to propagate and show up in results in Get-CsPhoneNumberPolicyAssignment (./get-csphonenumberpolicyassignment.md)cmdlet. - Set-CsTeamsAcsFederationConfiguration - - EnableAcsUsers + Set-CsPhoneNumberPolicyAssignment + + TelephoneNumber - Set to True to enable federation between Teams and ACS. When set to False, all other parameters are ignored. + Specifies the telephone number to which the policy will be assigned. - Boolean + System.String - Boolean + System.String - False + None - - AllowedAcsResources + + PolicyType - The list of the ACS resources (at least one) for which federation is enabled, when EnableAcsUsers is set to true. If EnableAcsUsers is set to false, then this list is ignored and should be null/empty. - The ACS resources are listed using their immutable resource id, which is a guid that can be found on the Azure portal. + Indicates the type of policy being assigned. - String[] + System.String - String[] + System.String - Empty/Null + None - Identity + PolicyName - Specifies the collection of tenant federation configuration settings to be modified. Because each tenant is limited to a single, global collection of federation settings there is no need include this parameter when calling the Set-CsTenantFederationConfiguration cmdlet. If you do choose to use the Identity parameter, you must also include the Tenant parameter. For example: - `Set-CsTenantFederationConfiguration -Tenant "bf19b7db-6960-41e5-a139-2aa373474354" -Identity "global"` + The name of the policy to assign. This must match an existing policy configured in the tenant. + If the telephone number already has a different policy of the same PolicyType assigned, then this will replace the existing policy assignment. + If PolicyName is not provided, then it would remove any existing policy of the same PolicyType previously assigned to the specified phone number. - String + System.String - String + System.String None @@ -79919,36 +88209,156 @@ Write-Host (Get-CsPhoneNumberAssignment -LocationId $NewLocationId).Count number - - EnableAcsUsers + + TelephoneNumber - Set to True to enable federation between Teams and ACS. When set to False, all other parameters are ignored. + Specifies the telephone number to which the policy will be assigned. - Boolean + System.String - Boolean + System.String - False + None - - AllowedAcsResources + + PolicyType - The list of the ACS resources (at least one) for which federation is enabled, when EnableAcsUsers is set to true. If EnableAcsUsers is set to false, then this list is ignored and should be null/empty. - The ACS resources are listed using their immutable resource id, which is a guid that can be found on the Azure portal. + Indicates the type of policy being assigned. - String[] + System.String - String[] + System.String - Empty/Null + None - Identity + PolicyName - Specifies the collection of tenant federation configuration settings to be modified. Because each tenant is limited to a single, global collection of federation settings there is no need include this parameter when calling the Set-CsTenantFederationConfiguration cmdlet. If you do choose to use the Identity parameter, you must also include the Tenant parameter. For example: - `Set-CsTenantFederationConfiguration -Tenant "bf19b7db-6960-41e5-a139-2aa373474354" -Identity "global"` + The name of the policy to assign. This must match an existing policy configured in the tenant. + If the telephone number already has a different policy of the same PolicyType assigned, then this will replace the existing policy assignment. + If PolicyName is not provided, then it would remove any existing policy of the same PolicyType previously assigned to the specified phone number. + + System.String + + System.String + + + None + + + + + + None + + + + + + + + + + None + + + This cmdlet does not return output on success. Errors are thrown if the assignment fails due to invalid parameters, missing policies, or internal service issues. + If you want to verify the outcome of the assignment, call `Get-CsPhoneNumberPolicyAssignment -TelephoneNumber <YourPhoneNumber>`. + + + + + + The cmdlet is available in Teams PowerShell module 7.3.1 or later. The cmdlet is only available in commercial cloud instances. + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsPhoneNumberPolicyAssignment -TelephoneNumber 17789493766 -PolicyType TenantDialPlan -PolicyName "US Admins Dial Plan" + + This example assigns a policy to the specified telephone number. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Set-CsPhoneNumberPolicyAssignment -TelephoneNumber 17789493766 -PolicyType TenantDialPlan + + This example removes an existing TenantDialPlan previously assigned to the specified telephone number. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberpolicyassignment + + + Get-CsPhoneNumberPolicyAssignment + + + + + + + Set-CsPhoneNumberTag + Set + CsPhoneNumberTag + + This cmdlet allows the admin to create and assign a tag to a phone number. + + + + This cmdlet allows telephone number administrators to create and assign tags to phone numbers. Tags can be up to 50 characters long, including spaces, and can contain multiple words. They are not case-sensitive. Each phone number can have up to 50 tags assigned. To improve readability, it is recommended to avoid assigning too many tags to a single phone number. If the desired tag already exist, the telephone number will get assigned the existing tag. If the tag is not already available, a new tag will be created. Get-CsPhoneNumberTag (https://learn.microsoft.com/powershell/module/microsoftteams/get-csphonenumbertag) can be used to check a list of already existing tags. The tags can be used as a filter for [Get-CsPhoneNumberAssignment](https://learn.microsoft.com/powershell/module/microsoftteams/get-csphonenumberassignment)to filter on certain list. + + + + Set-CsPhoneNumberTag + + PhoneNumber + + Indicates the phone number for the the tag to be assigned + + String + + String + + + None + + + Tag + + Indicates the tag to be assigned or created. + + String + + String + + + None + + + + + + PhoneNumber + + Indicates the phone number for the the tag to be assigned + + String + + String + + + None + + + Tag + + Indicates the tag to be assigned or created. String @@ -79958,8 +88368,26 @@ Write-Host (Get-CsPhoneNumberAssignment -LocationId $NewLocationId).Count number None - - + + + + None + + + + + + + + + + System.Boolean + + + + + + @@ -79968,40 +88396,243 @@ Write-Host (Get-CsPhoneNumberAssignment -LocationId $NewLocationId).Count number -------------------------- Example 1 -------------------------- - Set-CsTeamsAcsFederationConfiguration -EnableAcsUsers $False + PS C:\> Set-CsPhoneNumberTag -PhoneNumber +123456789 -Tag "HR" - + Above example shows how to set a "HR" tag to +123456789 number. + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumbertag + + + + + + Set-CsSharedCallQueueHistoryTemplate + Set + CsSharedCallQueueHistoryTemplate + + Use the Set-CsSharedCallQueueHistoryTemplate cmdlet to change a Shared Call Queue History template + + + + Use the Set-SharedCallQueueHistory cmdlet to change a Shared Call Queue History template. + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for this feature. General Availability for this functionality has not been determined at this time. + + + + Set-CsSharedCallQueueHistoryTemplate + + Instance + + > Applicable: Microsoft Teams + The instance of the shared call queue history template to change. + + System.String + + System.String + + + None + + + + + + Instance + + > Applicable: Microsoft Teams + The instance of the shared call queue history template to change. + + System.String + + System.String + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.OAA.Models.AutoAttendant + + + + + + + + + + + + - -------------------------- Example 2 -------------------------- - $allowlist = @('faced04c-2ced-433d-90db-063e424b87b1') -Set-CsTeamsAcsFederationConfiguration -EnableAcsUsers $True -AllowedAcsResources $allowlist + -------------------------- Example 1 -------------------------- + $SharedCQHistory = Get-CsSharedCallQueueHistory -Id 66f0dc32-d344-4bb1-b524-027d4635515c +$SharedCQHisotry.AnsweredAndOutboundCalls = "AuthorizedUsersAndAgents" +Set-CsSharedCallQueueHistoryTemplate -Instance $SharedCQHistory - + This example sets the AnsweredOutboundCalls value in the Shared Call History Template with the Id `66f0dc32-d344-4bb1-b524-027d4635515c` Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsacsfederationconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/Set-CsSharedCallQueueHistoryTemplate + + + New-CsSharedCallQueueHistoryTemplate + + + + Get-CsSharedCallQueueHistoryTemplate + + + + Remove-CsSharedCallQueueHistoryTemplate + + + + Get-CsCallQueue + + + + New-CsCallQueue + + + + Set-CsCallQueue + + + + Remove-CsCallQueue + + + + + + + Set-CsTagsTemplate + Set + CsTagsTemplate + + Changes an existing Tag template. + + + + The Set-CsTagTemplate cmdlet changes and existing Tag template. Delete this line please. + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for these features. General Availability for this functionality has not been determined at this time. + + + + Set-CsTagsTemplate + + Instance + + The Instance parameter is the object reference to the Tag template to be modified. + You can retrieve an object reference to an existing Tag template by using the Get-CsTagsTemplate (Get-CsTagsTemplate.md)cmdlet and assigning the returned value to a variable. + + Object + + Object + + + None + + + Tenant + + This parameter is reserved for Microsoft internal use only. + + Guid + + Guid + + + None + + + + + + Instance + + The Instance parameter is the object reference to the Tag template to be modified. + You can retrieve an object reference to an existing Tag template by using the Get-CsTagsTemplate (Get-CsTagsTemplate.md)cmdlet and assigning the returned value to a variable. + + Object + + Object + + + None + + + Tenant + + This parameter is reserved for Microsoft internal use only. + + Guid + + Guid + + + None + + + + + + + Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue + + + + + + + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstagstemplate - Get-CsTeamsAcsFederationConfiguration - https://learn.microsoft.com/powershell/module/teams/get-csteamsacsfederationconfiguration + New-CsTagsTemplate + - New-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/teams/new-csexternalaccesspolicy + Get-CsTagsTemplate + - Set-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/teams/set-csexternalaccesspolicy + Remove-CsTagsTemplate + - Grant-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csexternalaccesspolicy + New-CsTag + @@ -80044,6 +88675,17 @@ Set-CsTeamsAcsFederationConfiguration -EnableAcsUsers $True -AllowedAcsResources True + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + Force @@ -80067,17 +88709,6 @@ Set-CsTeamsAcsFederationConfiguration -EnableAcsUsers $True -AllowedAcsResources None - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - WhatIf @@ -80104,6 +88735,17 @@ Set-CsTeamsAcsFederationConfiguration -EnableAcsUsers $True -AllowedAcsResources True + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + Force @@ -80139,17 +88781,6 @@ Set-CsTeamsAcsFederationConfiguration -EnableAcsUsers $True -AllowedAcsResources None - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - WhatIf @@ -80176,6 +88807,18 @@ Set-CsTeamsAcsFederationConfiguration -EnableAcsUsers $True -AllowedAcsResources True + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + Force @@ -80224,18 +88867,6 @@ Set-CsTeamsAcsFederationConfiguration -EnableAcsUsers $True -AllowedAcsResources None - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - WhatIf @@ -80293,19 +88924,19 @@ Set-CsTeamsAcsFederationConfiguration -EnableAcsUsers $True -AllowedAcsResources Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsaudioconferencingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsaudioconferencingpolicy Get-CsTeamsAudioConferencingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsaudioconferencingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsaudioconferencingpolicy New-CsTeamsAudioConferencingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsaudioconferencingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsaudioconferencingpolicy Grant-CsTeamsAudioConferencingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsaudioconferencingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsaudioconferencingpolicy @@ -80315,12 +88946,12 @@ Set-CsTeamsAcsFederationConfiguration -EnableAcsUsers $True -AllowedAcsResources Set CsTeamsCallParkPolicy - The TeamsCallParkPolicy controls whether or not users are able to leverage the call park feature in Microsoft Teams. Call park allows enterprise voice customers to place a call on hold and then perform a number of actions on that call: transfer to another department, retrieve via the same phone, or retrieve via a different Teams phone. The Set-CsTeamsCallParkPolicy cmdlet lets you update a policy that has already been created for your organization. - NOTE: The call park feature is currently available in desktop, mobile, and web clients. Supported with TeamsOnly mode. + The Set-CsTeamsCallParkPolicy cmdlet lets you update a policy that has already been created for your organization. - The TeamsCallParkPolicy controls whether or not users are able to leverage the call park feature in Microsoft Teams. Call park allows enterprise voice customers to place a call on hold and then perform a number of actions on that call: transfer to another department, retrieve via the same phone, or retrieve via a different phone. The Set-CsTeamsCallParkPolicy cmdlet lets you update a policy that has already been created for your organization. + The TeamsCallParkPolicy controls whether or not users are able to leverage the call park feature in Microsoft Teams. Call park allows enterprise voice customers to place a call on hold and then perform a number of actions on that call: transfer to another department, retrieve via the same phone, or retrieve via a different phone. + NOTE: The call park feature is currently available in desktop, mobile, and web clients. Supported with TeamsOnly mode. @@ -80366,6 +88997,18 @@ Set-CsTeamsAcsFederationConfiguration -EnableAcsUsers $True -AllowedAcsResources False + + Description + + Description of the policy. + + String + + String + + + None + Force @@ -80378,17 +89021,16 @@ Set-CsTeamsAcsFederationConfiguration -EnableAcsUsers $True -AllowedAcsResources False - PickupRangeEnd + MsftInternalProcessingMode - Specify the maximum value that a rendered pickup code can take. Value can be from 10 to 9999. - Note: PickupRangeStart must be smaller than PickupRangeEnd. + For Internal use only. - Integer + String - Integer + String - 99 + None ParkTimeoutSeconds @@ -80402,6 +89044,19 @@ Set-CsTeamsAcsFederationConfiguration -EnableAcsUsers $True -AllowedAcsResources 300 + + PickupRangeEnd + + Specify the maximum value that a rendered pickup code can take. Value can be from 10 to 9999. + Note: PickupRangeStart must be smaller than PickupRangeEnd. + + Integer + + Integer + + + 99 + PickupRangeStart @@ -80438,30 +89093,6 @@ Set-CsTeamsAcsFederationConfiguration -EnableAcsUsers $True -AllowedAcsResources False - - Description - - Description of the policy. - - String - - String - - - None - - - MsftInternalProcessingMode - - For Internal use only. - - String - - String - - - None - Set-CsTeamsCallParkPolicy @@ -80488,6 +89119,18 @@ Set-CsTeamsAcsFederationConfiguration -EnableAcsUsers $True -AllowedAcsResources False + + Description + + Description of the policy. + + String + + String + + + None + Force @@ -80512,17 +89155,16 @@ Set-CsTeamsAcsFederationConfiguration -EnableAcsUsers $True -AllowedAcsResources None - PickupRangeEnd + MsftInternalProcessingMode - Specify the maximum value that a rendered pickup code can take. Value can be from 10 to 9999. - Note: PickupRangeStart must be smaller than PickupRangeEnd. + For Internal use only. - Integer + String - Integer + String - 99 + None ParkTimeoutSeconds @@ -80536,6 +89178,19 @@ Set-CsTeamsAcsFederationConfiguration -EnableAcsUsers $True -AllowedAcsResources 300 + + PickupRangeEnd + + Specify the maximum value that a rendered pickup code can take. Value can be from 10 to 9999. + Note: PickupRangeStart must be smaller than PickupRangeEnd. + + Integer + + Integer + + + 99 + PickupRangeStart @@ -80572,30 +89227,6 @@ Set-CsTeamsAcsFederationConfiguration -EnableAcsUsers $True -AllowedAcsResources False - - Description - - Description of the policy. - - String - - String - - - None - - - MsftInternalProcessingMode - - For Internal use only. - - String - - String - - - None - @@ -80623,6 +89254,18 @@ Set-CsTeamsAcsFederationConfiguration -EnableAcsUsers $True -AllowedAcsResources False + + Description + + Description of the policy. + + String + + String + + + None + Force @@ -80660,17 +89303,16 @@ Set-CsTeamsAcsFederationConfiguration -EnableAcsUsers $True -AllowedAcsResources None - PickupRangeEnd + MsftInternalProcessingMode - Specify the maximum value that a rendered pickup code can take. Value can be from 10 to 9999. - Note: PickupRangeStart must be smaller than PickupRangeEnd. + For Internal use only. - Integer + String - Integer + String - 99 + None ParkTimeoutSeconds @@ -80684,6 +89326,19 @@ Set-CsTeamsAcsFederationConfiguration -EnableAcsUsers $True -AllowedAcsResources 300 + + PickupRangeEnd + + Specify the maximum value that a rendered pickup code can take. Value can be from 10 to 9999. + Note: PickupRangeStart must be smaller than PickupRangeEnd. + + Integer + + Integer + + + 99 + PickupRangeStart @@ -80721,30 +89376,6 @@ Set-CsTeamsAcsFederationConfiguration -EnableAcsUsers $True -AllowedAcsResources False - - Description - - Description of the policy. - - String - - String - - - None - - - MsftInternalProcessingMode - - For Internal use only. - - String - - String - - - None - @@ -80797,7 +89428,7 @@ Set-CsTeamsAcsFederationConfiguration -EnableAcsUsers $True -AllowedAcsResources Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamscallparkpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallparkpolicy @@ -81234,7 +89865,7 @@ Set-CsTeamsAcsFederationConfiguration -EnableAcsUsers $True -AllowedAcsResources Online Version: - https://learn.microsoft.com/powershell/module/teams/get-csteamscortanapolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscortanapolicy @@ -81277,6 +89908,17 @@ Set-CsTeamsAcsFederationConfiguration -EnableAcsUsers $True -AllowedAcsResources None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + Description @@ -81292,7 +89934,7 @@ Set-CsTeamsAcsFederationConfiguration -EnableAcsUsers $True -AllowedAcsResources EmergencyNumbers - One or more emergency number objects obtained from the New-CsTeamsEmergencyNumber (https://learn.microsoft.com/powershell/module/teams/new-csteamsemergencynumber)cmdlet. + One or more emergency number objects obtained from the New-CsTeamsEmergencyNumber (https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencynumber)cmdlet. Object @@ -81312,17 +89954,6 @@ Set-CsTeamsAcsFederationConfiguration -EnableAcsUsers $True -AllowedAcsResources False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - @@ -81338,6 +89969,18 @@ Set-CsTeamsAcsFederationConfiguration -EnableAcsUsers $True -AllowedAcsResources None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + Description @@ -81353,7 +89996,7 @@ Set-CsTeamsAcsFederationConfiguration -EnableAcsUsers $True -AllowedAcsResources EmergencyNumbers - One or more emergency number objects obtained from the New-CsTeamsEmergencyNumber (https://learn.microsoft.com/powershell/module/teams/new-csteamsemergencynumber)cmdlet. + One or more emergency number objects obtained from the New-CsTeamsEmergencyNumber (https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencynumber)cmdlet. Object @@ -81386,18 +90029,6 @@ Set-CsTeamsAcsFederationConfiguration -EnableAcsUsers $True -AllowedAcsResources False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - @@ -81435,27 +90066,27 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsemergencycallroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallroutingpolicy New-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsemergencycallroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallroutingpolicy Grant-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsemergencycallroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsemergencycallroutingpolicy Remove-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsemergencycallroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsemergencycallroutingpolicy Get-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsemergencycallroutingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsemergencycallroutingpolicy New-CsTeamsEmergencyNumber - https://learn.microsoft.com/powershell/module/teams/new-csteamsemergencynumber + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencynumber @@ -81489,41 +90120,40 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None - Description + CallingEndtoEndEncryptionEnabledType - Enables administrators to provide explanatory text to accompany a Teams enhanced encryption policy. - For example, the Description might include information about the users the policy should be assigned to. + Determines whether end-to-end encrypted calling is available for the user in Teams. Set this to DisabledUserOverride to allow user to turn on end-to-end encrypted calls. Set this to Disabled to prohibit. - String + Enum - String + Enum - None + Disabled - - CallingEndtoEndEncryptionEnabledType + + Confirm - Determines whether end-to-end encrypted calling is available for the user in Teams. Set this to DisabledUserOverride to allow user to turn on end-to-end encrypted calls. Set this to Disabled to prohibit. + Prompts you for confirmation before running the cmdlet. - Enum - Enum + SwitchParameter - Disabled + False - MeetingEndToEndEncryption + Description - Determines whether end-to-end encrypted meetings are available in Teams ( requires a Teams Premium license (https://www.microsoft.com/en-us/microsoft-teams/premium)). Set this to DisabledUserOverride to allow users to schedule end-to-end encrypted meetings. Set this to Disabled to prohibit. + Enables administrators to provide explanatory text to accompany a Teams enhanced encryption policy. + For example, the Description might include information about the users the policy should be assigned to. - Enum + String - Enum + String - Disabled + None Force @@ -81548,21 +90178,22 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None - - WhatIf + + MeetingEndToEndEncryption - Shows what would happen if the cmdlet runs. The cmdlet is not run. + Determines whether end-to-end encrypted meetings are available in Teams ( requires a Teams Premium license (https://www.microsoft.com/en-us/microsoft-teams/premium)). Set this to DisabledUserOverride to allow users to schedule end-to-end encrypted meetings. Set this to Disabled to prohibit. + Enum - SwitchParameter + Enum - False + Disabled - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -81573,19 +90204,6 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov - - Description - - Enables administrators to provide explanatory text to accompany a Teams enhanced encryption policy. - For example, the Description might include information about the users the policy should be assigned to. - - String - - String - - - None - CallingEndtoEndEncryptionEnabledType @@ -81598,27 +90216,27 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov Disabled - - MeetingEndToEndEncryption + + Confirm - Determines whether end-to-end encrypted meetings are available in Teams ( requires a Teams Premium license (https://www.microsoft.com/en-us/microsoft-teams/premium)). Set this to DisabledUserOverride to allow users to schedule end-to-end encrypted meetings. Set this to Disabled to prohibit. + Prompts you for confirmation before running the cmdlet. - Enum + SwitchParameter - Enum + SwitchParameter - Disabled + False - - Identity + + Description - Unique identifier assigned to the Teams enhanced encryption policy. - Use the "Global" Identity if you wish modify the policy set for the entire tenant. + Enables administrators to provide explanatory text to accompany a Teams enhanced encryption policy. + For example, the Description might include information about the users the policy should be assigned to. - XdsIdentity + String - XdsIdentity + String None @@ -81635,6 +90253,19 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov False + + Identity + + Unique identifier assigned to the Teams enhanced encryption policy. + Use the "Global" Identity if you wish modify the policy set for the entire tenant. + + XdsIdentity + + XdsIdentity + + + None + Instance @@ -81647,22 +90278,22 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None - - WhatIf + + MeetingEndToEndEncryption - Shows what would happen if the cmdlet runs. The cmdlet is not run. + Determines whether end-to-end encrypted meetings are available in Teams ( requires a Teams Premium license (https://www.microsoft.com/en-us/microsoft-teams/premium)). Set this to DisabledUserOverride to allow users to schedule end-to-end encrypted meetings. Set this to Disabled to prohibit. - SwitchParameter + Enum - SwitchParameter + Enum - False + Disabled - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -81728,23 +90359,23 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsenhancedencryptionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsenhancedencryptionpolicy Get-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsenhancedencryptionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsenhancedencryptionpolicy New-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsenhancedencryptionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsenhancedencryptionpolicy Remove-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsenhancedencryptionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsenhancedencryptionpolicy Grant-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsenhancedencryptionpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsenhancedencryptionpolicy @@ -81776,9 +90407,10 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None - AllowWebinars + AllowedQuestionTypesInRegistrationForm - This setting governs if a user can create webinars using Teams Events. Possible values are: - Enabled : Enables creating webinars. - Disabled : Disables creating webinars. + This setting governs which users in a tenant can add which registration form questions to an event registration page for attendees to answer when registering for the event. + Possible values are: DefaultOnly, DefaultAndPredefinedOnly, AllQuestions. String @@ -81788,9 +90420,10 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None - Description + AllowedTownhallTypesForRecordingPublish - Enables administrators to provide explanatory text to accompany a Teams Events policy. + This setting describes how IT admins can control which types of Town Hall attendees can have their recordings published. + Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. String @@ -81800,21 +90433,22 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None - UseMicrosoftECDN + AllowedWebinarTypesForRecordingPublish - This setting governs whether the admin disables this property and prevents the organizers from creating town halls that use Microsoft eCDN even though they have been assigned a Teams Premium license. + This setting describes how IT admins can control which types of webinar attendees can have their recordings published. + Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. - Boolean + String - Boolean + String None - AllowTownhalls + AllowEmailEditing - This setting governs if a user can create town halls using Teams Events. Possible values are: - Enabled : Enables creating town halls. - Disabled : Disables creating town halls. + This setting governs if a user is allowed to edit the communication emails in Teams Town Hall or Teams Webinar events. Possible values are: - Enabled : Enables editing of communication emails. - Disabled : Disables editing of communication emails. String @@ -81824,21 +90458,34 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None - TownhallEventAttendeeAccess + AllowEventIntegrations - This setting governs what identity types may attend a Town hall that is scheduled by a particular person or group that is assigned this policy. Possible values are: - Everyone : Anyone with the join link may enter the event. - EveryoneInOrganizationAndGuests : Only those who are Guests to the tenant, MTO users, and internal AAD users may enter the event. + This setting governs access to the integrations tab in the event creation workflow. + Possible values true, false. + + Boolean + + Boolean + + + None + + + AllowTownhalls + + This setting governs if a user can create town halls using Teams Events. Possible values are: - Enabled : Enables creating town halls. - Disabled : Disables creating town halls. String String - Everyone + None - Description + AllowWebinars - Enables administrators to provide explanatory text to accompany a Teams Events policy. + This setting governs if a user can create webinars using Teams Events. Possible values are: - Enabled : Enables creating webinars. - Disabled : Disables creating webinars. String @@ -81848,16 +90495,28 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None - AllowEmailEditing + BroadcastPremiumApps - This setting governs if a user is allowed to edit the communication emails in Teams Town Hall or Teams Webinar events. Possible values are: - Enabled : Enables editing of communication emails. - Disabled : Disables editing of communication emails. + This setting will enable Tenant Admins to specify if an organizer of a Teams Premium town hall may add an app that is accessible by everyone, including attendees, in a broadcast style Event including a Town hall. This does not include control over apps (such as AI Producer and Custom Streaming Apps) that are only accessible by the Event group. + Possible values are: - Enabled : An organizer of a Premium town hall can add a Premium App such as Polls to the Town hall - Disabled : An organizer of a Premium town hall CANNOT add a Premium App such as Polls to the Town hall String String - None + Enabled + + + Confirm + + The Confirm switch does not work with this cmdlet. + + + SwitchParameter + + + False Confirm @@ -81883,10 +90542,9 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None - EventAccessType + Description - > [!NOTE] > Currently, webinar and town hall event access is managed together via EventAccessType. - This setting governs which users can access the event registration page or the event site to register. It also governs which user type is allowed to join the session/s in the event. Possible values are: - Everyone : Enables creating events to allow in-tenant, guests, federated, and anonymous (external to the tenant) users to register and join the event. - EveryoneInCompanyExcludingGuests : Enables creating events to allow only in-tenant users to register and join the event. + Enables administrators to provide explanatory text to accompany a Teams Events policy. String @@ -81896,10 +90554,9 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None - AllowedQuestionTypesInRegistrationForm + Description - This setting governs which users in a tenant can add which registration form questions to an event registration page for attendees to answer when registering for the event. - Possible values are: DefaultOnly, DefaultAndPredefinedOnly, AllQuestions. + Enables administrators to provide explanatory text to accompany a Teams Events policy. String @@ -81909,10 +90566,10 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None - AllowedTownhallTypesForRecordingPublish + EventAccessType - This setting describes how IT admins can control which types of Town Hall attendees can have their recordings published. - Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. + > [!NOTE] > Currently, webinar and town hall event access is managed together via EventAccessType. + This setting governs which users can access the event registration page or the event site to register. It also governs which user type is allowed to join the session/s in the event. Possible values are: - Everyone : Enables creating events to allow in-tenant, guests, federated, and anonymous (external to the tenant) users to register and join the event. - EveryoneInCompanyExcludingGuests : Enables creating events to allow only in-tenant users to register and join the event. String @@ -81922,69 +90579,67 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None - AllowedWebinarTypesForRecordingPublish + ImmersiveEvents - This setting describes how IT admins can control which types of webinar attendees can have their recordings published. - Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. + This setting governs if a user can create Immersive Events using Teams Events. Possible values are: - Enabled : Enables creating Immersive Events. - Disabled : Disables creating Immersive Events. String String - None + Enabled - AllowEventIntegrations + RecordingForTownhall - This setting governs access to the integrations tab in the event creation workflow. - Possible values true, false. + Determines whether recording is allowed in a user's townhall. + Possible values are: - Enabled : Allow recording in user's townhalls. - Disabled : Prohibit recording in user's townhalls. - Boolean + String - Boolean + String - None + Enabled - TownhallChatExperience + RecordingForWebinar - This setting governs whether the user can enable the Comment Stream chat experience for Town Halls. - Possible values are: Optimized, None. + Determines whether recording is allowed in a user's webinar. + Possible values are: - Enabled : Allow recording in user's webinars. - Disabled : Prohibit recording in user's webinars. String String - None + Enabled - RecordingForTownhall + TownhallChatExperience - Determines whether recording is allowed in a user's townhall. - Possible values are: - Enabled : Allow recording in user's townhalls. - Disabled : Prohibit recording in user's townhalls. + This setting governs whether the user can enable the Comment Stream chat experience for Town Halls. + Possible values are: Optimized, None. String String - Enabled + None - RecordingForWebinar + TownhallEventAttendeeAccess - Determines whether recording is allowed in a user's webinar. - Possible values are: - Enabled : Allow recording in user's webinars. - Disabled : Prohibit recording in user's webinars. + This setting governs what identity types may attend a Town hall that is scheduled by a particular person or group that is assigned this policy. Possible values are: - Everyone : Anyone with the join link may enter the event. - EveryoneInOrganizationAndGuests : Only those who are Guests to the tenant, MTO users, and internal AAD users may enter the event. String String - Enabled + Everyone TranscriptionForTownhall @@ -82012,16 +90667,43 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov Enabled - - Confirm + + UseMicrosoftECDN - The Confirm switch does not work with this cmdlet. + This setting governs whether the admin disables this property and prevents the organizers from creating town halls that use Microsoft eCDN even though they have been assigned a Teams Premium license. + Boolean - SwitchParameter + Boolean - False + None + + + MaxResolutionForTownhall + + This policy sets the maximum video resolution supported in Town hall events. + Possible values are: - Max720p : Town halls support video resolution up to 720p. - Max1080p : Town halls support video resolution up to 1080p. + + String + + String + + + Max1080p + + + HighBitrateForTownhall + + This policy controls whether high-bitrate streaming is enabled for Town hall events. + Possible values are: - Enabled : Enables high bitrate for Town hall events. - Disabled : Disables high bitrate for Town hall events. + + String + + String + + + Disabled WhatIf @@ -82038,9 +90720,10 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov - AllowWebinars + AllowedQuestionTypesInRegistrationForm - This setting governs if a user can create webinars using Teams Events. Possible values are: - Enabled : Enables creating webinars. - Disabled : Disables creating webinars. + This setting governs which users in a tenant can add which registration form questions to an event registration page for attendees to answer when registering for the event. + Possible values are: DefaultOnly, DefaultAndPredefinedOnly, AllQuestions. String @@ -82050,9 +90733,10 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None - Description + AllowedTownhallTypesForRecordingPublish - Enables administrators to provide explanatory text to accompany a Teams Events policy. + This setting describes how IT admins can control which types of Town Hall attendees can have their recordings published. + Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. String @@ -82062,21 +90746,22 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None - UseMicrosoftECDN + AllowedWebinarTypesForRecordingPublish - This setting governs whether the admin disables this property and prevents the organizers from creating town halls that use Microsoft eCDN even though they have been assigned a Teams Premium license. + This setting describes how IT admins can control which types of webinar attendees can have their recordings published. + Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. - Boolean + String - Boolean + String None - AllowTownhalls + AllowEmailEditing - This setting governs if a user can create town halls using Teams Events. Possible values are: - Enabled : Enables creating town halls. - Disabled : Disables creating town halls. + This setting governs if a user is allowed to edit the communication emails in Teams Town Hall or Teams Webinar events. Possible values are: - Enabled : Enables editing of communication emails. - Disabled : Disables editing of communication emails. String @@ -82086,21 +90771,34 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None - TownhallEventAttendeeAccess + AllowEventIntegrations - This setting governs what identity types may attend a Town hall that is scheduled by a particular person or group that is assigned this policy. Possible values are: - Everyone : Anyone with the join link may enter the event. - EveryoneInOrganizationAndGuests : Only those who are Guests to the tenant, MTO users, and internal AAD users may enter the event. + This setting governs access to the integrations tab in the event creation workflow. + Possible values true, false. + + Boolean + + Boolean + + + None + + + AllowTownhalls + + This setting governs if a user can create town halls using Teams Events. Possible values are: - Enabled : Enables creating town halls. - Disabled : Disables creating town halls. String String - Everyone + None - Description + AllowWebinars - Enables administrators to provide explanatory text to accompany a Teams Events policy. + This setting governs if a user can create webinars using Teams Events. Possible values are: - Enabled : Enables creating webinars. - Disabled : Disables creating webinars. String @@ -82110,16 +90808,29 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None - AllowEmailEditing + BroadcastPremiumApps - This setting governs if a user is allowed to edit the communication emails in Teams Town Hall or Teams Webinar events. Possible values are: - Enabled : Enables editing of communication emails. - Disabled : Disables editing of communication emails. + This setting will enable Tenant Admins to specify if an organizer of a Teams Premium town hall may add an app that is accessible by everyone, including attendees, in a broadcast style Event including a Town hall. This does not include control over apps (such as AI Producer and Custom Streaming Apps) that are only accessible by the Event group. + Possible values are: - Enabled : An organizer of a Premium town hall can add a Premium App such as Polls to the Town hall - Disabled : An organizer of a Premium town hall CANNOT add a Premium App such as Polls to the Town hall String String - None + Enabled + + + Confirm + + The Confirm switch does not work with this cmdlet. + + SwitchParameter + + SwitchParameter + + + False Confirm @@ -82146,10 +90857,9 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None - EventAccessType + Description - > [!NOTE] > Currently, webinar and town hall event access is managed together via EventAccessType. - This setting governs which users can access the event registration page or the event site to register. It also governs which user type is allowed to join the session/s in the event. Possible values are: - Everyone : Enables creating events to allow in-tenant, guests, federated, and anonymous (external to the tenant) users to register and join the event. - EveryoneInCompanyExcludingGuests : Enables creating events to allow only in-tenant users to register and join the event. + Enables administrators to provide explanatory text to accompany a Teams Events policy. String @@ -82158,10 +90868,10 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None - - Identity + + Description - Unique identifier assigned to the Teams Events policy. + Enables administrators to provide explanatory text to accompany a Teams Events policy. String @@ -82171,10 +90881,10 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None - AllowedQuestionTypesInRegistrationForm + EventAccessType - This setting governs which users in a tenant can add which registration form questions to an event registration page for attendees to answer when registering for the event. - Possible values are: DefaultOnly, DefaultAndPredefinedOnly, AllQuestions. + > [!NOTE] > Currently, webinar and town hall event access is managed together via EventAccessType. + This setting governs which users can access the event registration page or the event site to register. It also governs which user type is allowed to join the session/s in the event. Possible values are: - Everyone : Enables creating events to allow in-tenant, guests, federated, and anonymous (external to the tenant) users to register and join the event. - EveryoneInCompanyExcludingGuests : Enables creating events to allow only in-tenant users to register and join the event. String @@ -82183,11 +90893,10 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None - - AllowedTownhallTypesForRecordingPublish + + Identity - This setting describes how IT admins can control which types of Town Hall attendees can have their recordings published. - Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. + Unique identifier assigned to the Teams Events policy. String @@ -82197,69 +90906,67 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None - AllowedWebinarTypesForRecordingPublish + ImmersiveEvents - This setting describes how IT admins can control which types of webinar attendees can have their recordings published. - Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. + This setting governs if a user can create Immersive Events using Teams Events. Possible values are: - Enabled : Enables creating Immersive Events. - Disabled : Disables creating Immersive Events. String String - None + Enabled - AllowEventIntegrations + RecordingForTownhall - This setting governs access to the integrations tab in the event creation workflow. - Possible values true, false. + Determines whether recording is allowed in a user's townhall. + Possible values are: - Enabled : Allow recording in user's townhalls. - Disabled : Prohibit recording in user's townhalls. - Boolean + String - Boolean + String - None + Enabled - TownhallChatExperience + RecordingForWebinar - This setting governs whether the user can enable the Comment Stream chat experience for Town Halls. - Possible values are: Optimized, None. + Determines whether recording is allowed in a user's webinar. + Possible values are: - Enabled : Allow recording in user's webinars. - Disabled : Prohibit recording in user's webinars. String String - None + Enabled - RecordingForTownhall + TownhallChatExperience - Determines whether recording is allowed in a user's townhall. - Possible values are: - Enabled : Allow recording in user's townhalls. - Disabled : Prohibit recording in user's townhalls. + This setting governs whether the user can enable the Comment Stream chat experience for Town Halls. + Possible values are: Optimized, None. String String - Enabled + None - RecordingForWebinar + TownhallEventAttendeeAccess - Determines whether recording is allowed in a user's webinar. - Possible values are: - Enabled : Allow recording in user's webinars. - Disabled : Prohibit recording in user's webinars. + This setting governs what identity types may attend a Town hall that is scheduled by a particular person or group that is assigned this policy. Possible values are: - Everyone : Anyone with the join link may enter the event. - EveryoneInOrganizationAndGuests : Only those who are Guests to the tenant, MTO users, and internal AAD users may enter the event. String String - Enabled + Everyone TranscriptionForTownhall @@ -82287,17 +90994,43 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov Enabled - - Confirm + + UseMicrosoftECDN - The Confirm switch does not work with this cmdlet. + This setting governs whether the admin disables this property and prevents the organizers from creating town halls that use Microsoft eCDN even though they have been assigned a Teams Premium license. - SwitchParameter + Boolean - SwitchParameter + Boolean - False + None + + + MaxResolutionForTownhall + + This policy sets the maximum video resolution supported in Town hall events. + Possible values are: - Max720p : Town halls support video resolution up to 720p. - Max1080p : Town halls support video resolution up to 1080p. + + String + + String + + + Max1080p + + + HighBitrateForTownhall + + This policy controls whether high-bitrate streaming is enabled for Town hall events. + Possible values are: - Enabled : Enables high bitrate for Town hall events. - Disabled : Disables high bitrate for Town hall events. + + String + + String + + + Disabled WhatIf @@ -82349,7 +91082,7 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamseventspolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamseventspolicy @@ -82574,7 +91307,7 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsguestcallingconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsguestcallingconfiguration @@ -82629,6 +91362,18 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None + + AllowTranscription + + Determines whether post-meeting captions and transcriptions are allowed in a user's meetings. Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + None + Confirm @@ -82710,18 +91455,6 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov False - - AllowTranscription - - Determines whether post-meeting captions and transcriptions are allowed in a user's meetings. Set this to TRUE to allow. Set this to FALSE to prohibit. - - Boolean - - Boolean - - - None - @@ -82749,6 +91482,18 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None + + AllowTranscription + + Determines whether post-meeting captions and transcriptions are allowed in a user's meetings. Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + None + Confirm @@ -82845,18 +91590,6 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov False - - AllowTranscription - - Determines whether post-meeting captions and transcriptions are allowed in a user's meetings. Set this to TRUE to allow. Set this to FALSE to prohibit. - - Boolean - - Boolean - - - None - @@ -82895,7 +91628,7 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsguestmeetingconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsguestmeetingconfiguration @@ -82917,7 +91650,7 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov Identity - + {{ Fill Identity Description }} XdsIdentity @@ -82938,6 +91671,18 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None + + AllowImmersiveReader + + Determines if immersive reader for viewing messages is enabled. + + Boolean + + Boolean + + + None + AllowMemes @@ -82974,6 +91719,18 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None + + AllowUserDeleteChat + + Turn this setting on to allow users to permanently delete their one-on-one chat, group chat, and meeting chat as participants (this deletes the chat only for them, not other users in the chat). Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + TRUE + AllowUserDeleteMessage @@ -82998,18 +91755,6 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None - - UsersCanDeleteBotMessages - - Determines whether a user is allowed to delete messages sent by bots. Set this to TRUE to allow. Set this to FALSE to prohibit. - - Boolean - - Boolean - - - False - Confirm @@ -83024,7 +91769,7 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov Force - + Suppresses all non-fatal errors. SwitchParameter @@ -83032,18 +91777,6 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov False - - AllowUserDeleteChat - - Turn this setting on to allow users to permanently delete their one-on-one chat, group chat, and meeting chat as participants (this deletes the chat only for them, not other users in the chat). Set this to TRUE to allow. Set this to FALSE to prohibit. - - Boolean - - Boolean - - - TRUE - GiphyRatingType @@ -83057,40 +91790,40 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None - AllowImmersiveReader + Instance - Determines if immersive reader for viewing messages is enabled. + {{ Fill Instance Description }} - Boolean + PSObject - Boolean + PSObject None - Instance + Tenant - + {{ Fill Tenant Description }} - PSObject + Guid - PSObject + Guid None - Tenant + UsersCanDeleteBotMessages - + Determines whether a user is allowed to delete messages sent by bots. Set this to TRUE to allow. Set this to FALSE to prohibit. - Guid + Boolean - Guid + Boolean - None + False WhatIf @@ -83118,6 +91851,18 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None + + AllowImmersiveReader + + Determines if immersive reader for viewing messages is enabled. + + Boolean + + Boolean + + + None + AllowMemes @@ -83155,21 +91900,21 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None - AllowUserDeleteMessage + AllowUserDeleteChat - Determines if a user is allowed to delete their own messages. + Turn this setting on to allow users to permanently delete their one-on-one chat, group chat, and meeting chat as participants (this deletes the chat only for them, not other users in the chat). Set this to TRUE to allow. Set this to FALSE to prohibit. Boolean Boolean - None + TRUE - AllowUserEditMessage + AllowUserDeleteMessage - Determines if a user is allowed to edit their own messages. + Determines if a user is allowed to delete their own messages. Boolean @@ -83179,16 +91924,16 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None - UsersCanDeleteBotMessages + AllowUserEditMessage - Determines whether a user is allowed to delete messages sent by bots. Set this to TRUE to allow. Set this to FALSE to prohibit. + Determines if a user is allowed to edit their own messages. Boolean Boolean - False + None Confirm @@ -83205,7 +91950,7 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov Force - + Suppresses all non-fatal errors. SwitchParameter @@ -83214,18 +91959,6 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov False - - AllowUserDeleteChat - - Turn this setting on to allow users to permanently delete their one-on-one chat, group chat, and meeting chat as participants (this deletes the chat only for them, not other users in the chat). Set this to TRUE to allow. Set this to FALSE to prohibit. - - Boolean - - Boolean - - - TRUE - GiphyRatingType @@ -83238,22 +91971,10 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None - - AllowImmersiveReader - - Determines if immersive reader for viewing messages is enabled. - - Boolean - - Boolean - - - None - Identity - + {{ Fill Identity Description }} XdsIdentity @@ -83265,7 +91986,7 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov Instance - + {{ Fill Instance Description }} PSObject @@ -83277,7 +91998,7 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov Tenant - + {{ Fill Tenant Description }} Guid @@ -83286,6 +92007,18 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None + + UsersCanDeleteBotMessages + + Determines whether a user is allowed to delete messages sent by bots. Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + False + WhatIf @@ -83336,7 +92069,7 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsguestmessagingconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsguestmessagingconfiguration @@ -83695,7 +92428,7 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsipphonepolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsipphonepolicy @@ -83705,9 +92438,7 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov Set CsTeamsMeetingBroadcastConfiguration - Set-CsTeamsMeetingBroadcastConfiguration [[-Identity] <XdsIdentity>] [-Tenant <guid>] [-SupportURL <string>] [-AllowSdnProviderForBroadcastMeeting <bool>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>] - Set-CsTeamsMeetingBroadcastConfiguration -SdnProviderName <string> -SdnApiTemplateUrl <string> [-Tenant <guid>] [-SupportURL <string>] [-AllowSdnProviderForBroadcastMeeting <bool>] [-SdnLicenseId <string>] [-SdnApiToken <string>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>] - Set-CsTeamsMeetingBroadcastConfiguration [-Tenant <guid>] [-SupportURL <string>] [-AllowSdnProviderForBroadcastMeeting <bool>] [-Instance <psobject>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>] + Changes the Teams meeting broadcast configuration settings for the specified tenant. @@ -84058,7 +92789,7 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsmeetingbroadcastconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingbroadcastconfiguration @@ -84403,7 +93134,7 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsmeetingbroadcastpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingbroadcastpolicy @@ -84555,22 +93286,22 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov False - - IPAudioMobileMode + + Identity - When set to WifiOnly, prohibits the user from making, receiving calls or joining meetings using VoIP calls on the mobile device while on cellular data connection. + Specify the name of the policy that you are creating. - String + XdsIdentity - String + XdsIdentity None - IPVideoMobileMode + IPAudioMobileMode - When set to WifiOnly, prohibits the user from making, receiving video calls or enabling video in meetings using VoIP calls on the mobile device while on cellular data connection. + When set to WifiOnly, prohibits the user from making, receiving calls or joining meetings using VoIP calls on the mobile device while on cellular data connection. String @@ -84579,14 +93310,14 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None - - Identity + + IPVideoMobileMode - Specify the name of the policy that you are creating. + When set to WifiOnly, prohibits the user from making, receiving video calls or enabling video in meetings using VoIP calls on the mobile device while on cellular data connection. - XdsIdentity + String - XdsIdentity + String None @@ -84653,7 +93384,7 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsmobilitypolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmobilitypolicy @@ -84675,18 +93406,6 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov Set-CsTeamsNetworkRoamingPolicy - - Identity - - Unique identifier of the policy to be modified. - - XdsIdentity - - XdsIdentity - - - None - AllowIPVideo @@ -84700,44 +93419,44 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov True - MediaBitRateKb + Description - Determines the media bit rate for audio/video/app sharing transmissions in meetings. + Description of the policy to be edited. - Integer + String - Integer + String - 50000 + None - - Description + + Identity - Description of the policy to be edited. + Unique identifier of the policy to be modified. - String + XdsIdentity - String + XdsIdentity None + + MediaBitRateKb + + Determines the media bit rate for audio/video/app sharing transmissions in meetings. + + Integer + + Integer + + + 50000 + - - Identity - - Unique identifier of the policy to be modified. - - XdsIdentity - - XdsIdentity - - - None - AllowIPVideo @@ -84751,29 +93470,41 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov True - MediaBitRateKb + Description - Determines the media bit rate for audio/video/app sharing transmissions in meetings. + Description of the policy to be edited. - Integer + String - Integer + String - 50000 + None - - Description + + Identity - Description of the policy to be edited. + Unique identifier of the policy to be modified. - String + XdsIdentity - String + XdsIdentity None + + MediaBitRateKb + + Determines the media bit rate for audio/video/app sharing transmissions in meetings. + + Integer + + Integer + + + 50000 + @@ -84812,7 +93543,7 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsnetworkroamingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsnetworkroamingpolicy @@ -85126,7 +93857,7 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsroomvideoteleconferencingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsroomvideoteleconferencingpolicy @@ -85156,17 +93887,6 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov False - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - isSideloadedAppsInteractionEnabled @@ -85179,6 +93899,17 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + @@ -85194,18 +93925,6 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov False - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - isSideloadedAppsInteractionEnabled @@ -85218,6 +93937,18 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + @@ -85256,11 +93987,11 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamssettingscustomapp + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamssettingscustomapp Get-CsTeamsSettingsCustomApp - https://learn.microsoft.com/powershell/module/teams/get-csteamssettingscustomapp + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamssettingscustomapp @@ -85438,7 +94169,7 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsshiftsapppolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsapppolicy @@ -85457,6 +94188,18 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov Set-CsTeamsShiftsConnection + + Authorization + + Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. + + String + + String + + + None + Body @@ -85494,7 +94237,7 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov ConnectionId - The WFM connection ID for the instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnection). + The WFM connection ID for the instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). String @@ -85585,6 +94328,9 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov False + + + Set-CsTeamsShiftsConnection Authorization @@ -85597,9 +94343,6 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None - - - Set-CsTeamsShiftsConnection Body @@ -85728,6 +94471,9 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov False + + + Set-CsTeamsShiftsConnection Authorization @@ -85740,9 +94486,6 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None - - - Set-CsTeamsShiftsConnection Break @@ -85768,7 +94511,43 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov ConnectionId - The WFM connection ID for the instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnection). + The WFM connection ID for the instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). + + String + + String + + + None + + + ConnectorId + + Used to specify the unique identifier of the connector being used for the connection. + + String + + String + + + None + + + ConnectorSpecificSettings + + The connector-specific settings. + + IUpdateWfmConnectionRequestConnectorSpecificSettings + + IUpdateWfmConnectionRequestConnectorSpecificSettings + + + None + + + Etag + + Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. String @@ -85825,18 +94604,6 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None - - ConnectorSpecificSettings - - The connector-specific settings. - - IUpdateWfmConnectionRequestConnectorSpecificSettings - - IUpdateWfmConnectionRequestConnectorSpecificSettings - - - None - Proxy @@ -85895,6 +94662,9 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov False + + + Set-CsTeamsShiftsConnection Authorization @@ -85908,21 +94678,31 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None - ConnectorId + Break - Used to specify the unique identifier of the connector being used for the connection. + Wait for .NET debugger to attach. - String - String + SwitchParameter - None + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False - Etag + ConnectorId - Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. + Used to specify the unique identifier of the connector being used for the connection. String @@ -85931,30 +94711,29 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None - - - Set-CsTeamsShiftsConnection - Break + ConnectorSpecificSettings - Wait for .NET debugger to attach. + The connector-specific settings. + IUpdateWfmConnectionRequestConnectorSpecificSettings - SwitchParameter + IUpdateWfmConnectionRequestConnectorSpecificSettings - False + None - - Confirm + + Etag - Prompts you for confirmation before running the cmdlet. + Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. + String - SwitchParameter + String - False + None HttpPipelineAppend @@ -86016,18 +94795,6 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None - - ConnectorSpecificSettings - - The connector-specific settings. - - IUpdateWfmConnectionRequestConnectorSpecificSettings - - IUpdateWfmConnectionRequestConnectorSpecificSettings - - - None - Proxy @@ -86086,45 +94853,21 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov False - - Authorization - - Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. - - String - - String - - - None - - - ConnectorId - - Used to specify the unique identifier of the connector being used for the connection. - - String - - String - - - None - - - Etag - - Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. - - String - - String - - - None - + + Authorization + + Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. + + String + + String + + + None + Body @@ -86164,7 +94907,43 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov ConnectionId - The WFM connection ID for the instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnection). + The WFM connection ID for the instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). + + String + + String + + + None + + + ConnectorId + + Used to specify the unique identifier of the connector being used for the connection. + + String + + String + + + None + + + ConnectorSpecificSettings + + The connector-specific settings. + + IUpdateWfmConnectionRequestConnectorSpecificSettings + + IUpdateWfmConnectionRequestConnectorSpecificSettings + + + None + + + Etag + + Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. String @@ -86233,18 +95012,6 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov None - - ConnectorSpecificSettings - - The connector-specific settings. - - IUpdateWfmConnectionRequestConnectorSpecificSettings - - IUpdateWfmConnectionRequestConnectorSpecificSettings - - - None - Proxy @@ -86305,42 +95072,6 @@ Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remov False - - Authorization - - Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. - - String - - String - - - None - - - ConnectorId - - Used to specify the unique identifier of the connector being used for the connection. - - String - - String - - - None - - - Etag - - Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. - - String - - String - - - None - @@ -86484,23 +95215,23 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsshiftsconnection + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnection Get-CsTeamsShiftsConnection - https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnection + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection New-CsTeamsShiftsConnection - https://learn.microsoft.com/powershell/module/teams/new-csteamsshiftsconnection + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnection Update-CsTeamsShiftsConnection - https://learn.microsoft.com/powershell/module/teams/update-csteamsshiftsconnection + https://learn.microsoft.com/powershell/module/microsoftteams/update-csteamsshiftsconnection Test-CsTeamsShiftsConnectionValidate - https://learn.microsoft.com/powershell/module/teams/test-csteamsshiftsconnectionvalidate + https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsshiftsconnectionvalidate @@ -86803,106 +95534,10 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< False - - ConnectorAdminEmail - - Gets or sets the list of connector admin email addresses. - - String[] - - String[] - - - None - - - ConnectorInstanceId - - The Id of the connector instance to be updated. - - String - - String - - - None - ConnectionId - Gets or sets the WFM connection ID for the new instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnection). - - String - - String - - - None - - - DesignatedActorId - - Gets or sets the designated actor ID that App acts as for Shifts Graph API calls. - - String - - String - - - None - - - SyncScenarioOfferShiftRequest - - The sync state for the offer shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". - - String - - String - - - None - - - SyncScenarioOpenShift - - The sync state for the open shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". - - String - - String - - - None - - - SyncScenarioOpenShiftRequest - - The sync state for the open shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". - - String - - String - - - None - - - SyncScenarioShift - - The sync state for the shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". - - String - - String - - - None - - - SyncScenarioSwapRequest - - The sync state for the shift swap request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + Gets or sets the WFM connection ID for the new instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). String @@ -86911,22 +95546,22 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - - SyncScenarioTimeCard + + ConnectorAdminEmail - The sync state for the time card scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + Gets or sets the list of connector admin email addresses. - String + String[] - String + String[] None - SyncScenarioTimeOff + ConnectorInstanceId - The sync state for the time off scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + The Id of the connector instance to be updated. String @@ -86936,9 +95571,9 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - SyncScenarioTimeOffRequest + DesignatedActorId - The sync state for the time off request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + Gets or sets the designated actor ID that App acts as for Shifts Graph API calls. String @@ -86947,10 +95582,10 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - - SyncScenarioUserShiftPreference + + Etag - The sync state for the user shift preferences scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. String @@ -87066,21 +95701,22 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - - WhatIf + + SyncScenarioOfferShiftRequest - Shows what would happen if the cmdlet runs. The cmdlet is not run. + The sync state for the offer shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + String - SwitchParameter + String - False + None - - Etag + + SyncScenarioOpenShift - Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. + The sync state for the open shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". String @@ -87089,47 +95725,46 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - - - Set-CsTeamsShiftsConnectionInstance - - Break + + SyncScenarioOpenShiftRequest - Wait for .NET debugger to attach + The sync state for the open shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + String - SwitchParameter + String - False + None - - Confirm + + SyncScenarioShift - Prompts you for confirmation before running the cmdlet. + The sync state for the shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + String - SwitchParameter + String - False + None - - ConnectorAdminEmail + + SyncScenarioSwapRequest - Gets or sets the list of connector admin email addresses. + The sync state for the shift swap request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". - String[] + String - String[] + String None - ConnectionId + SyncScenarioTimeCard - Gets or sets the WFM connection ID for the new instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnection). + The sync state for the time card scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". String @@ -87139,9 +95774,9 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - DesignatedActorId + SyncScenarioTimeOff - Gets or sets the designated actor ID that App acts as for Shifts Graph API calls. + The sync state for the time off scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". String @@ -87151,9 +95786,9 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - SyncScenarioOfferShiftRequest + SyncScenarioTimeOffRequest - The sync state for the offer shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + The sync state for the time off request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". String @@ -87163,9 +95798,9 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - SyncScenarioOpenShift + SyncScenarioUserShiftPreference - The sync state for the open shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + The sync state for the user shift preferences scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". String @@ -87174,46 +95809,46 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - - SyncScenarioOpenShiftRequest + + WhatIf - The sync state for the open shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + Shows what would happen if the cmdlet runs. The cmdlet is not run. - String - String + SwitchParameter - None + False - - SyncScenarioShift + + + Set-CsTeamsShiftsConnectionInstance + + Break - The sync state for the shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + Wait for .NET debugger to attach - String - String + SwitchParameter - None + False - - SyncScenarioSwapRequest + + Confirm - The sync state for the shift swap request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + Prompts you for confirmation before running the cmdlet. - String - String + SwitchParameter - None + False - SyncScenarioTimeCard + ConnectionId - The sync state for the time card scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + Gets or sets the WFM connection ID for the new instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). String @@ -87222,22 +95857,22 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - - SyncScenarioTimeOff + + ConnectorAdminEmail - The sync state for the time off scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + Gets or sets the list of connector admin email addresses. - String + String[] - String + String[] None - SyncScenarioTimeOffRequest + DesignatedActorId - The sync state for the time off request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + Gets or sets the designated actor ID that App acts as for Shifts Graph API calls. String @@ -87246,10 +95881,10 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - - SyncScenarioUserShiftPreference + + Etag - The sync state for the user shift preferences scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. String @@ -87377,21 +96012,58 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - - WhatIf + + SyncScenarioOfferShiftRequest - Shows what would happen if the cmdlet runs. The cmdlet is not run. + The sync state for the offer shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + String - SwitchParameter + String - False + None - - Etag + + SyncScenarioOpenShift - Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. + The sync state for the open shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioOpenShiftRequest + + The sync state for the open shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioShift + + The sync state for the shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioSwapRequest + + The sync state for the shift swap request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". String @@ -87400,6 +96072,65 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None + + SyncScenarioTimeCard + + The sync state for the time card scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioTimeOff + + The sync state for the time off scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioTimeOffRequest + + The sync state for the time off request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioUserShiftPreference + + The sync state for the user shift preferences scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + @@ -87439,58 +96170,10 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< False - - ConnectorAdminEmail - - Gets or sets the list of connector admin email addresses. - - String[] - - String[] - - - None - - - ConnectorInstanceId - - The Id of the connector instance to be updated. - - String - - String - - - None - ConnectionId - Gets or sets the WFM connection ID for the new instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnection). - - String - - String - - - None - - - DesignatedActorId - - Gets or sets the designated actor ID that App acts as for Shifts Graph API calls. - - String - - String - - - None - - - SyncScenarioOfferShiftRequest - - The sync state for the offer shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + Gets or sets the WFM connection ID for the new instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). String @@ -87499,70 +96182,22 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - - SyncScenarioOpenShift - - The sync state for the open shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". - - String - - String - - - None - - - SyncScenarioOpenShiftRequest - - The sync state for the open shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". - - String - - String - - - None - - - SyncScenarioShift - - The sync state for the shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". - - String - - String - - - None - - - SyncScenarioSwapRequest - - The sync state for the shift swap request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". - - String - - String - - - None - - - SyncScenarioTimeCard + + ConnectorAdminEmail - The sync state for the time card scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + Gets or sets the list of connector admin email addresses. - String + String[] - String + String[] None - SyncScenarioTimeOff + ConnectorInstanceId - The sync state for the time off scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + The Id of the connector instance to be updated. String @@ -87572,9 +96207,9 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - SyncScenarioTimeOffRequest + DesignatedActorId - The sync state for the time off request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + Gets or sets the designated actor ID that App acts as for Shifts Graph API calls. String @@ -87583,10 +96218,10 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - - SyncScenarioUserShiftPreference + + Etag - The sync state for the user shift preferences scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. String @@ -87715,22 +96350,82 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - - WhatIf + + SyncScenarioOfferShiftRequest - Shows what would happen if the cmdlet runs. The cmdlet is not run. + The sync state for the offer shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". - SwitchParameter + String - SwitchParameter + String - False + None - - Etag + + SyncScenarioOpenShift - Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. + The sync state for the open shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioOpenShiftRequest + + The sync state for the open shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioShift + + The sync state for the shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioSwapRequest + + The sync state for the shift swap request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioTimeCard + + The sync state for the time card scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioTimeOff + + The sync state for the time off scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". String @@ -87739,6 +96434,42 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None + + SyncScenarioTimeOffRequest + + The sync state for the time off request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioUserShiftPreference + + The sync state for the user shift preferences scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + @@ -87844,27 +96575,27 @@ PS C:\> $result.ToJsonString() Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsshiftsconnectioninstance + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnectioninstance Get-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectioninstance + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance New-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/teams/new-csteamsshiftsconnectioninstance + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnectioninstance Update-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/teams/update-csteamsshiftsconnectioninstance + https://learn.microsoft.com/powershell/module/microsoftteams/update-csteamsshiftsconnectioninstance Remove-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/teams/remove-csteamsshiftsconnectioninstance + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftsconnectioninstance Test-CsTeamsShiftsConnectionValidate - https://learn.microsoft.com/powershell/module/teams/test-csteamsshiftsconnectionvalidate + https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsshiftsconnectionvalidate @@ -87874,10 +96605,12 @@ PS C:\> $result.ToJsonString() Set CsTeamsSurvivableBranchAppliance - The Survivable Branch Appliance (SBA) cmdlets facilitate the continuation of Teams Phone operations, allowing for the placement and reception of Public Switched Telephone Network (PSTN) calls during service disruptions. These cmdlets are exclusively intended for Tenant Administrators and Session Border Controller (SBC) Vendors. In the absence of SBA configuration within a Tenant, the cmdlets will be inoperative. + Changes the Survivable Branch Appliance (SBA) configuration settings for the specified tenant. - + + The Survivable Branch Appliance (SBA) cmdlets facilitate the continuation of Teams Phone operations, allowing for the placement and reception of Public Switched Telephone Network (PSTN) calls during service disruptions. These cmdlets are exclusively intended for Tenant Administrators and Session Border Controller (SBC) Vendors. In the absence of SBA configuration within a Tenant, the cmdlets will be inoperative. + Set-CsTeamsSurvivableBranchAppliance @@ -88056,7 +96789,7 @@ PS C:\> $result.ToJsonString() Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamssurvivablebranchappliance + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamssurvivablebranchappliance @@ -88066,10 +96799,12 @@ PS C:\> $result.ToJsonString() Set CsTeamsSurvivableBranchAppliancePolicy - The Survivable Branch Appliance (SBA) Policy cmdlets facilitate the continuation of Teams Phone operations, allowing for the placement and reception of Public Switched Telephone Network (PSTN) calls during service disruptions. These cmdlets are exclusively intended for Tenant Administrators and Session Border Controller (SBC) Vendors. In the absence of SBA configuration within a Tenant, the cmdlets will be inoperative. + Changes the Survivable Branch Appliance (SBA) Policy configuration settings for the specified tenant. - + + The Survivable Branch Appliance (SBA) Policy cmdlets facilitate the continuation of Teams Phone operations, allowing for the placement and reception of Public Switched Telephone Network (PSTN) calls during service disruptions. These cmdlets are exclusively intended for Tenant Administrators and Session Border Controller (SBC) Vendors. In the absence of SBA configuration within a Tenant, the cmdlets will be inoperative. + Set-CsTeamsSurvivableBranchAppliancePolicy @@ -88224,7 +96959,7 @@ PS C:\> $result.ToJsonString() Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamssurvivablebranchappliancepolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamssurvivablebranchappliancepolicy @@ -88234,12 +96969,11 @@ PS C:\> $result.ToJsonString() Set CsTeamsTargetingPolicy - The CsTeamsTargetingPolicy cmdlets enable administrators to control the type of tags that users can create or the features that they can access in Teams. It also helps determine how tags deal with Teams members or guest users. + The Set-CsTeamsTargetingPolicy cmdlet allows administrators to update existing Tenant tag settings that can be assigned to particular teams to control Team features related to tags. The CsTeamsTargetingPolicy cmdlets enable administrators to control the type of tags that users can create or the features that they can access in Teams. It also helps determine how tags deal with Teams members or guest users. - The Set-CsTeamsTargetingPolicy cmdlet allows administrators to update existing Tenant tag settings that can be assigned to particular teams to control Team features related to tags. @@ -88499,15 +97233,15 @@ PS C:\> $result.ToJsonString() Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamstargetingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstargetingpolicy Get-CsTargetingPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamstargetingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamstargetingpolicy Remove-CsTargetingPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamstargetingpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamstargetingpolicy @@ -88538,6 +97272,17 @@ PS C:\> $result.ToJsonString() None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + Description @@ -88585,31 +97330,20 @@ PS C:\> $result.ToJsonString() False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Identity + + Confirm - Identifier of the rule. This parameter is required and later used to assign the rule to the Inbound or Outbound Trunk Normalization policy. + Prompts you for confirmation before running the cmdlet. - String + SwitchParameter - String + SwitchParameter - None + False Description @@ -88623,6 +97357,18 @@ PS C:\> $result.ToJsonString() None + + Identity + + Identifier of the rule. This parameter is required and later used to assign the rule to the Inbound or Outbound Trunk Normalization policy. + + String + + String + + + None + Pattern @@ -88659,18 +97405,6 @@ PS C:\> $result.ToJsonString() False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - @@ -88691,23 +97425,23 @@ PS C:\> $result.ToJsonString() Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamstranslationrule + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstranslationrule New-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/teams/new-csteamstranslationrule + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamstranslationrule Get-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/teams/get-csteamstranslationrule + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamstranslationrule Test-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/teams/test-csteamstranslationrule + https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamstranslationrule Remove-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/teams/remove-csteamstranslationrule + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamstranslationrule @@ -88726,7 +97460,7 @@ PS C:\> $result.ToJsonString() Set-CsTeamsUnassignedNumberTreatment - + Identity The Id of the specific treatment. @@ -88738,6 +97472,17 @@ PS C:\> $result.ToJsonString() None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + Description @@ -88750,6 +97495,18 @@ PS C:\> $result.ToJsonString() None + + MsftInternalProcessingMode + + {{ Fill MsftInternalProcessingMode Description }} + + System.String + + System.String + + + None + Pattern @@ -88767,9 +97524,9 @@ PS C:\> $result.ToJsonString() The identity of the destination the call should be routed to. Depending on the TargetType it should either be the ObjectId of the user or application instance/resource account or the AudioFileId of the uploaded audio file. - System.Guid + System.String - System.Guid + System.String None @@ -88791,16 +97548,39 @@ PS C:\> $result.ToJsonString() The priority of the treatment. Used to distinguish identical patterns. The lower the priority the higher preference. The priority needs to be unique. - System.Integer + System.Int32 - System.Integer + System.Int32 None + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + Description @@ -88813,7 +97593,7 @@ PS C:\> $result.ToJsonString() None - + Identity The Id of the specific treatment. @@ -88825,6 +97605,18 @@ PS C:\> $result.ToJsonString() None + + MsftInternalProcessingMode + + {{ Fill MsftInternalProcessingMode Description }} + + System.String + + System.String + + + None + Pattern @@ -88842,9 +97634,9 @@ PS C:\> $result.ToJsonString() The identity of the destination the call should be routed to. Depending on the TargetType it should either be the ObjectId of the user or application instance/resource account or the AudioFileId of the uploaded audio file. - System.Guid + System.String - System.Guid + System.String None @@ -88866,13 +97658,25 @@ PS C:\> $result.ToJsonString() The priority of the treatment. Used to distinguish identical patterns. The lower the priority the higher preference. The priority needs to be unique. - System.Integer + System.Int32 - System.Integer + System.Int32 None + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + @@ -88924,27 +97728,27 @@ Set-CsTeamsUnassignedNumberTreatment -Identity User2PSTN -TargetType User -Targe Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsunassignednumbertreatment + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsunassignednumbertreatment Import-CsOnlineAudioFile - https://learn.microsoft.com/powershell/module/teams/import-csonlineaudiofile + https://learn.microsoft.com/powershell/module/microsoftteams/import-csonlineaudiofile Get-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/teams/get-csteamsunassignednumbertreatment + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsunassignednumbertreatment Remove-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/teams/remove-csteamsunassignednumbertreatment + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsunassignednumbertreatment New-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/teams/new-csteamsunassignednumbertreatment + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsunassignednumbertreatment Test-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/teams/test-csteamsunassignednumbertreatment + https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsunassignednumbertreatment @@ -89266,23 +98070,23 @@ Set-CsTeamsUnassignedNumberTreatment -Identity User2PSTN -TargetType User -Targe Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csteamsworkloadpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsworkloadpolicy Remove-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/teams/remove-csteamsworkloadpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsworkloadpolicy Get-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/teams/get-csteamsworkloadpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsworkloadpolicy New-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/teams/new-csteamsworkloadpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsworkloadpolicy Grant-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/teams/grant-csteamsworkloadpolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsworkloadpolicy @@ -89426,18 +98230,6 @@ Set-CsTeamsUnassignedNumberTreatment -Identity User2PSTN -TargetType User -Targe - - Identity - - The Identity parameter is a unique identifier which identifies the TenantBlockedCallingNumbers to set. - - String - - String - - - None - Confirm @@ -89474,6 +98266,18 @@ Set-CsTeamsUnassignedNumberTreatment -Identity User2PSTN -TargetType User -Targe False + + Identity + + The Identity parameter is a unique identifier which identifies the TenantBlockedCallingNumbers to set. + + String + + String + + + None + InboundBlockedNumberPatterns @@ -89606,15 +98410,15 @@ Set-CsTeamsUnassignedNumberTreatment -Identity User2PSTN -TargetType User -Targe Online Version: - https://learn.microsoft.com/powershell/module/teams/set-cstenantblockedcallingnumbers + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantblockedcallingnumbers Get-CsTenantBlockedCallingNumbers - https://learn.microsoft.com/powershell/module/teams/get-cstenantblockedcallingnumbers + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantblockedcallingnumbers Test-CsInboundBlockedNumberPattern - https://learn.microsoft.com/powershell/module/teams/test-csinboundblockednumberpattern + https://learn.microsoft.com/powershell/module/microsoftteams/test-csinboundblockednumberpattern @@ -89636,6 +98440,7 @@ Set-CsTeamsUnassignedNumberTreatment -Identity User2PSTN -TargetType User -Targe Identity + > Applicable: Microsoft Teams The Identity parameter is a unique identifier that designates the name of the tenant dial plan to modify. String @@ -89648,6 +98453,7 @@ Set-CsTeamsUnassignedNumberTreatment -Identity User2PSTN -TargetType User -Targe Confirm + > Applicable: Microsoft Teams The Confirm switch causes the command to pause processing and requires confirmation to proceed. @@ -89659,6 +98465,7 @@ Set-CsTeamsUnassignedNumberTreatment -Identity User2PSTN -TargetType User -Targe Description + > Applicable: Microsoft Teams The Description parameter describes the tenant dial plan - what it's for, what type of user it applies to or any other information that helps to identify the purpose of the tenant dial plan. Maximum characters is 1040. String @@ -89671,7 +98478,8 @@ Set-CsTeamsUnassignedNumberTreatment -Identity User2PSTN -TargetType User -Targe NormalizationRules - The NormalizationRules parameter is a list of normalization rules that are applied to this dial plan. Although this list and these rules can be created directly by using this cmdlet, we recommend that you create the normalization rules by the New-CsVoiceNormalizationRule (https://learn.microsoft.com/powershell/module/teams/new-csvoicenormalizationrule)cmdlet, which creates the rule and assigns it to the specified tenant dial plan. + > Applicable: Microsoft Teams + The NormalizationRules parameter is a list of normalization rules that are applied to this dial plan. Although this list and these rules can be created directly by using this cmdlet, we recommend that you create the normalization rules by the New-CsVoiceNormalizationRule (https://learn.microsoft.com/powershell/module/microsoftteams/new-csvoicenormalizationrule)cmdlet, which creates the rule and assigns it to the specified tenant dial plan. The number of normalization rules cannot exceed 50 per TenantDialPlan. List @@ -89684,6 +98492,7 @@ Set-CsTeamsUnassignedNumberTreatment -Identity User2PSTN -TargetType User -Targe SimpleName + > Applicable: Microsoft Teams The SimpleName parameter is a display name for the tenant dial plan. This name must be unique among all tenant dial plans. This string can be up to 49 characters long. Valid characters are alphabetic or numeric characters, hyphen (-), dot (.), and parentheses (()). @@ -89697,6 +98506,7 @@ Set-CsTeamsUnassignedNumberTreatment -Identity User2PSTN -TargetType User -Targe WhatIf + > Applicable: Microsoft Teams The WhatIf parameter describes what would happen if you executed the command, without actually executing the command. @@ -89711,6 +98521,7 @@ Set-CsTeamsUnassignedNumberTreatment -Identity User2PSTN -TargetType User -Targe Confirm + > Applicable: Microsoft Teams The Confirm switch causes the command to pause processing and requires confirmation to proceed. SwitchParameter @@ -89723,6 +98534,7 @@ Set-CsTeamsUnassignedNumberTreatment -Identity User2PSTN -TargetType User -Targe Description + > Applicable: Microsoft Teams The Description parameter describes the tenant dial plan - what it's for, what type of user it applies to or any other information that helps to identify the purpose of the tenant dial plan. Maximum characters is 1040. String @@ -89735,6 +98547,7 @@ Set-CsTeamsUnassignedNumberTreatment -Identity User2PSTN -TargetType User -Targe Identity + > Applicable: Microsoft Teams The Identity parameter is a unique identifier that designates the name of the tenant dial plan to modify. String @@ -89747,7 +98560,8 @@ Set-CsTeamsUnassignedNumberTreatment -Identity User2PSTN -TargetType User -Targe NormalizationRules - The NormalizationRules parameter is a list of normalization rules that are applied to this dial plan. Although this list and these rules can be created directly by using this cmdlet, we recommend that you create the normalization rules by the New-CsVoiceNormalizationRule (https://learn.microsoft.com/powershell/module/teams/new-csvoicenormalizationrule)cmdlet, which creates the rule and assigns it to the specified tenant dial plan. + > Applicable: Microsoft Teams + The NormalizationRules parameter is a list of normalization rules that are applied to this dial plan. Although this list and these rules can be created directly by using this cmdlet, we recommend that you create the normalization rules by the New-CsVoiceNormalizationRule (https://learn.microsoft.com/powershell/module/microsoftteams/new-csvoicenormalizationrule)cmdlet, which creates the rule and assigns it to the specified tenant dial plan. The number of normalization rules cannot exceed 50 per TenantDialPlan. List @@ -89760,6 +98574,7 @@ Set-CsTeamsUnassignedNumberTreatment -Identity User2PSTN -TargetType User -Targe SimpleName + > Applicable: Microsoft Teams The SimpleName parameter is a display name for the tenant dial plan. This name must be unique among all tenant dial plans. This string can be up to 49 characters long. Valid characters are alphabetic or numeric characters, hyphen (-), dot (.), and parentheses (()). @@ -89773,6 +98588,7 @@ Set-CsTeamsUnassignedNumberTreatment -Identity User2PSTN -TargetType User -Targe WhatIf + > Applicable: Microsoft Teams The WhatIf parameter describes what would happen if you executed the command, without actually executing the command. SwitchParameter @@ -89823,23 +98639,23 @@ Set-CsTenantDialPlan -Identity Global -NormalizationRules $DP.NormalizationRules Online Version: - https://learn.microsoft.com/powershell/module/teams/set-cstenantdialplan + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantdialplan Grant-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/teams/grant-cstenantdialplan + https://learn.microsoft.com/powershell/module/microsoftteams/grant-cstenantdialplan New-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/teams/new-cstenantdialplan + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantdialplan Get-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/teams/get-cstenantdialplan + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantdialplan Remove-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/teams/remove-cstenantdialplan + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantdialplan @@ -89849,10 +98665,11 @@ Set-CsTenantDialPlan -Identity Global -NormalizationRules $DP.NormalizationRules Set CsTenantFederationConfiguration - Manages federation configuration settings for your Skype for Business Online tenants. These settings are used to determine which domains (if any) your users are allowed to communicate with. + Manages federation configuration settings for your Skype for Business Online tenants. + > [!NOTE] > Starting May 5, 2025, Skype Consumer Interoperability with Teams is no longer supported and the parameter AllowPublicUsers can no longer be used. Federation is a service that enables users to exchange IM and presence information with users from other domains. With Skype for Business Online, administrators can use the federation configuration settings to govern: Whether or not users can communicate with people from other domains and if so, which domains they are allowed to communicate with. Whether or not users can communicate with people who have accounts on public IM and presence providers such as Windows Live, Skype, or people using Microsoft Teams with an account that's not managed by an organization. @@ -89864,6 +98681,7 @@ Set-CsTenantDialPlan -Identity Global -NormalizationRules $DP.NormalizationRules Identity + > Applicable: Microsoft Teams Specifies the collection of tenant federation configuration settings to be modified. Because each tenant is limited to a single, global collection of federation settings there is no need include this parameter when calling the `Set-CsTenantFederationConfiguration` cmdlet. If you do choose to use the Identity parameter you must also include the Tenant parameter. For example: `Set-CsTenantFederationConfiguration -Tenant "bf19b7db-6960-41e5-a139-2aa373474354" -Identity "global"` @@ -89877,9 +98695,11 @@ Set-CsTenantDialPlan -Identity Global -NormalizationRules $DP.NormalizationRules AllowedDomains + > Applicable: Microsoft Teams Domain objects (created by using the `New-CsEdgeAllowList` cmdlet or the `New-CsEdgeAllowAllKnownDomains` cmdlet) that represent the domains that users are allowed to communicate with. If the `New-CsEdgeAllowAllKnownDomains` cmdlet is used then users can communicate with any domain that does not appear on the blocked domains list. If the `New-CsEdgeAllowList` cmdlet is used then users can only communicate with domains that have been added to the allowed domains list. Note that string values cannot be passed directly to the AllowedDomains parameter. Instead, you must create an object reference using the `New-CsEdgeAllowList` cmdlet or the `New-CsEdgeAllowAllKnownDomains` cmdlet and then use the object reference variable as the parameter value. - The AllowedDomains parameter can support up to 4,000 domains. + The AllowedDomains parameter can support up to 4,000 domains. + > [!IMPORTANT] > The `AllowFederatedUsers` property must be set to `True` for the `AllowedDomains` list to take effect. If `AllowFederatedUsers` is set to `False`, users will be blocked from communicating with all external domains regardless of the values in `AllowedDomains` or any `ExternalAccessPolicy` instance. Boolean @@ -89889,21 +98709,40 @@ Set-CsTenantDialPlan -Identity Global -NormalizationRules $DP.NormalizationRules None - AllowFederatedUsers + AllowedDomainsAsAList - When set to True (the default value) users will be potentially allowed to communicate with users from other domains. If this property is set to False then users cannot communicate with users from other domains regardless of the values assigned to the AllowedDomains and BlockedDomains properties. + > Applicable: Microsoft Teams + You can specify allowed domains using a List object that contains the domains that users are allowed to communicate with. See Examples section. - Boolean + List - Boolean + List None - AllowPublicUsers + AllowedTrialTenantDomains + + > Applicable: Microsoft Teams + You can whitelist specific "trial-only" tenant domains, while keeping the `ExternalAccessWithTrialTenants` set to `Blocked`. This will allow you to protect your organization against majority of tenants that don't have any paid subscriptions, while still being able to collaborate externally with those trusted trial-tenants in the list. + Note: - The list supports up to maximum 4k domains. + - If `ExternalAccessWithTrialTenants` is set to `Allowed`, then the `AllowedTrialTenantDomains` list will not be checked. + - Any domain in this list that belongs to a tenant with paid subscriptions will be ignored. + + List + + List + + + None + + + AllowFederatedUsers - When set to True (the default value) users will be potentially allowed to communicate with users who have accounts on public IM and presence providers such as Windows Live, Yahoo, and AOL. The collection of public providers that users can actually communicate with is managed by using the `Set-CsTenantPublicProvider` cmdlet. + > Applicable: Microsoft Teams + When set to True (the default value) users will be potentially allowed to communicate with users from other domains. If this property is set to False then users cannot communicate with users from other domains, regardless of the values assigned to the `AllowedDomains` and `BlockedDomains` properties or any `ExternalAccessPolicy` instances. In effect, the `AllowFederatedUsers` property serves as a master switch that globally enables or disables federation across the Tenant, overridding all other policy settings. + To block all domains while selectively allowing specific users to communicate externally via explicit `ExternalAccessPolicy` instances, set `AllowFederatedUsers` to `True` and leave the `AllowedDomains` property empty. Boolean @@ -89937,31 +98776,36 @@ Set-CsTenantDialPlan -Identity Global -NormalizationRules $DP.NormalizationRules True - BlockedDomains + BlockAllSubdomains - If the AllowedDomains property has been set to AllowAllKnownDomains, then users will be allowed to communicate with users from any domain except domains that appear in the blocked domains list. If the AllowedDomains property has not been set to AllowAllKnownDomains, then the blocked list is ignored, and users can only communicate with domains that have been expressly added to the allowed domains list. The BlockedDomains parameter can support up to 4,000 domains. + > Applicable: Skype for Business Online + If the BlockedDomains parameter is used, then BlockAllSubdomains can be used to activate all subdomains blocking. If the BlockedDomains parameter is ignored, then BlockAllSubdomains is also ignored. Just like for BlockedDomains, users will be disallowed from communicating with users from blocked domains. But all subdomains for domains in this list will also be blocked. - List - List + SwitchParameter - None + False - BlockAllSubdomains + BlockedDomains - If the BlockedDomains parameter is used, then BlockAllSubdomains can be used to activate all subdomains blocking. If the BlockedDomains parameter is ignored, then BlockAllSubdomains is also ignored. Just like for BlockedDomains, users will be disallowed from communicating with users from blocked domains. But all subdomains for domains in this list will also be blocked. + > Applicable: Microsoft Teams + If the AllowedDomains property has been set to AllowAllKnownDomains, then users will be allowed to communicate with users from any domain except domains that appear in the blocked domains list. If the AllowedDomains property has not been set to AllowAllKnownDomains, then the blocked list is ignored, and users can only communicate with domains that have been expressly added to the allowed domains list. + The BlockedDomains parameter can support up to 4,000 domains. + > [!IMPORTANT] > The `AllowFederatedUsers` property must be set to `True` for the `AllowedDomains` list to take effect. If `AllowFederatedUsers` is set to `False`, users will be blocked from communicating with all external domains regardless of the values in `AllowedDomains` or any `ExternalAccessPolicy` instance. + List - SwitchParameter + List - False + None Confirm + > Applicable: Microsoft Teams Prompts you for confirmation before executing the command. @@ -89971,60 +98815,62 @@ Set-CsTenantDialPlan -Identity Global -NormalizationRules $DP.NormalizationRules False - Force + DomainBlockingForMDOAdminsInTeams - Suppresses the display of any non-fatal error message that might arise when running the command. + > Applicable: Microsoft Teams + When set to 'Enabled', security operations team will be able to add domains to the blocklist on security portal. When set to 'Disabled', security operations team will not have permissions to update the domains blocklist. + DomainBlockingForMDOAdminsInTeamsType - SwitchParameter + DomainBlockingForMDOAdminsInTeamsType - False + None - Instance + ExternalAccessWithTrialTenants - Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. + > Applicable: Microsoft Teams + When set to 'Blocked', all external access with users from Teams subscriptions that contain only trial licenses will be blocked. This means users from these trial-only tenants will not be able to reach to your users via chats, Teams calls, and meetings (using the users authenticated identity) and your users will not be able to reach users in these trial-only tenants. If this setting is set to "Blocked", users from the trial-only tenant will also be removed from existing chats. + Allowed - Communication with other tenants is allowed based on other settings. + Blocked - Communication with users in tenants that contain only trial licenses will be blocked. - PSObject + ExternalAccessWithTrialTenantsType - PSObject + ExternalAccessWithTrialTenantsType None - SharedSipAddressSpace + Force - When set to True, indicates that the users homed on Skype for Business Online use the same SIP domain as users homed on the on-premises version of Skype for Business Server. The default value is False, meaning that the two sets of users have different SIP domains. + > Applicable: Microsoft Teams + Suppresses the display of any non-fatal error message that might arise when running the command. - Boolean - Boolean + SwitchParameter - None + False - Tenant + Instance - Globally unique identifier (GUID) of the tenant account whose federation settings are being modified. For example: - `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"` - You can return your tenant ID by running this command: - `Get-CsTenant | Select-Object DisplayName, TenantID` - If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + > Applicable: Microsoft Teams + Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. - Guid + PSObject - Guid + PSObject None - TreatDiscoveredPartnersAsUnverified + RestrictTeamsConsumerToExternalUserProfiles - When set to True, messages sent from discovered partners are considered unverified. That means that those messages will be delivered only if they were sent from a person who is on the recipient's Contacts list. The default value is False ($False). + Defines if a user is restricted to collaboration with Teams Consumer (TFL) user only in Extended Directory. Possible values: True, False Boolean @@ -90034,50 +98880,40 @@ Set-CsTenantDialPlan -Identity Global -NormalizationRules $DP.NormalizationRules None - AllowedDomainsAsAList - - You can specify allowed domains using a List object that contains the domains that users are allowed to communicate with. See Examples section. - - List - - List - - - None - - - ExternalAccessWithTrialTenants + SharedSipAddressSpace - When set to 'Blocked', all external access with users from Teams subscriptions that contain only trial licenses will be blocked. This means users from these trial-only tenants will not be able to reach to your users via chats, Teams calls, and meetings (using the users authenticated identity) and your users will not be able to reach users in these trial-only tenants. If this setting is set to "Blocked", users from the trial-only tenant will also be removed from existing chats. - Allowed - Communication with other tenants is allowed based on other settings. - Blocked - Communication with users in tenants that contain only trial licenses will be blocked. + > Applicable: Microsoft Teams + When set to True, indicates that the users homed on Skype for Business Online use the same SIP domain as users homed on the on-premises version of Skype for Business Server. The default value is False, meaning that the two sets of users have different SIP domains. - ExternalAccessWithTrialTenantsType + Boolean - ExternalAccessWithTrialTenantsType + Boolean None - AllowedTrialTenantDomains + Tenant - You can whitelist specific "trial-only" tenant domains, while keeping the `ExternalAccessWithTrialTenants` set to `Blocked`. This will allow you to protect your organization against majority of tenants that don't have any paid subscriptions, while still being able to collaborate externally with those trusted trial-tenants in the list. - Note: - The list supports up to maximum 4k domains. - - If `ExternalAccessWithTrialTenants` is set to `Allowed`, then the `AllowedTrialTenantDomains` list will not be checked. - - Any domain in this list that belongs to a tenant with paid subscriptions will be ignored. + > Applicable: Microsoft Teams + Globally unique identifier (GUID) of the tenant account whose federation settings are being modified. For example: + `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"` + You can return your tenant ID by running this command: + `Get-CsTenant | Select-Object DisplayName, TenantID` + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. - List + Guid - List + Guid None - RestrictTeamsConsumerToExternalUserProfiles + TreatDiscoveredPartnersAsUnverified - Defines if a user is restriced to collaboration with Teams Consumer (TFL) user only in Extended Directory. Possible values: True, False + > Applicable: Microsoft Teams + When set to True, messages sent from discovered partners are considered unverified. That means that those messages will be delivered only if they were sent from a person who is on the recipient's Contacts list. The default value is False ($False). Boolean @@ -90086,21 +98922,10 @@ Set-CsTenantDialPlan -Identity Global -NormalizationRules $DP.NormalizationRules None - - CustomizeFederation - - Defines if we enable more customized federation settings in ExternalAccessPolicy or not. For example, when this is true, if the `AllowedDomains` includes [a.com, b.com], but the `AllowedExternalDomains` of the ExternalAccessPolicy includes [c.com], then users assigned by the ExternalAccessPolicy will only be allowed to access c.com, all other users will have access to a.com and b.com as defined in `AllowedDomains`. Possible values: True, False - - Boolean - - Boolean - - - False - WhatIf + > Applicable: Microsoft Teams Describes what would happen if you executed the command without actually executing the command. @@ -90115,9 +98940,11 @@ Set-CsTenantDialPlan -Identity Global -NormalizationRules $DP.NormalizationRules AllowedDomains + > Applicable: Microsoft Teams Domain objects (created by using the `New-CsEdgeAllowList` cmdlet or the `New-CsEdgeAllowAllKnownDomains` cmdlet) that represent the domains that users are allowed to communicate with. If the `New-CsEdgeAllowAllKnownDomains` cmdlet is used then users can communicate with any domain that does not appear on the blocked domains list. If the `New-CsEdgeAllowList` cmdlet is used then users can only communicate with domains that have been added to the allowed domains list. Note that string values cannot be passed directly to the AllowedDomains parameter. Instead, you must create an object reference using the `New-CsEdgeAllowList` cmdlet or the `New-CsEdgeAllowAllKnownDomains` cmdlet and then use the object reference variable as the parameter value. - The AllowedDomains parameter can support up to 4,000 domains. + The AllowedDomains parameter can support up to 4,000 domains. + > [!IMPORTANT] > The `AllowFederatedUsers` property must be set to `True` for the `AllowedDomains` list to take effect. If `AllowFederatedUsers` is set to `False`, users will be blocked from communicating with all external domains regardless of the values in `AllowedDomains` or any `ExternalAccessPolicy` instance. Boolean @@ -90127,21 +98954,40 @@ Set-CsTenantDialPlan -Identity Global -NormalizationRules $DP.NormalizationRules None - AllowFederatedUsers + AllowedDomainsAsAList - When set to True (the default value) users will be potentially allowed to communicate with users from other domains. If this property is set to False then users cannot communicate with users from other domains regardless of the values assigned to the AllowedDomains and BlockedDomains properties. + > Applicable: Microsoft Teams + You can specify allowed domains using a List object that contains the domains that users are allowed to communicate with. See Examples section. - Boolean + List - Boolean + List None - AllowPublicUsers + AllowedTrialTenantDomains - When set to True (the default value) users will be potentially allowed to communicate with users who have accounts on public IM and presence providers such as Windows Live, Yahoo, and AOL. The collection of public providers that users can actually communicate with is managed by using the `Set-CsTenantPublicProvider` cmdlet. + > Applicable: Microsoft Teams + You can whitelist specific "trial-only" tenant domains, while keeping the `ExternalAccessWithTrialTenants` set to `Blocked`. This will allow you to protect your organization against majority of tenants that don't have any paid subscriptions, while still being able to collaborate externally with those trusted trial-tenants in the list. + Note: - The list supports up to maximum 4k domains. + - If `ExternalAccessWithTrialTenants` is set to `Allowed`, then the `AllowedTrialTenantDomains` list will not be checked. + - Any domain in this list that belongs to a tenant with paid subscriptions will be ignored. + + List + + List + + + None + + + AllowFederatedUsers + + > Applicable: Microsoft Teams + When set to True (the default value) users will be potentially allowed to communicate with users from other domains. If this property is set to False then users cannot communicate with users from other domains, regardless of the values assigned to the `AllowedDomains` and `BlockedDomains` properties or any `ExternalAccessPolicy` instances. In effect, the `AllowFederatedUsers` property serves as a master switch that globally enables or disables federation across the Tenant, overridding all other policy settings. + To block all domains while selectively allowing specific users to communicate externally via explicit `ExternalAccessPolicy` instances, set `AllowFederatedUsers` to `True` and leave the `AllowedDomains` property empty. Boolean @@ -90175,32 +99021,37 @@ Set-CsTenantDialPlan -Identity Global -NormalizationRules $DP.NormalizationRules True - BlockedDomains + BlockAllSubdomains - If the AllowedDomains property has been set to AllowAllKnownDomains, then users will be allowed to communicate with users from any domain except domains that appear in the blocked domains list. If the AllowedDomains property has not been set to AllowAllKnownDomains, then the blocked list is ignored, and users can only communicate with domains that have been expressly added to the allowed domains list. The BlockedDomains parameter can support up to 4,000 domains. + > Applicable: Skype for Business Online + If the BlockedDomains parameter is used, then BlockAllSubdomains can be used to activate all subdomains blocking. If the BlockedDomains parameter is ignored, then BlockAllSubdomains is also ignored. Just like for BlockedDomains, users will be disallowed from communicating with users from blocked domains. But all subdomains for domains in this list will also be blocked. - List + SwitchParameter - List + SwitchParameter - None + False - BlockAllSubdomains + BlockedDomains - If the BlockedDomains parameter is used, then BlockAllSubdomains can be used to activate all subdomains blocking. If the BlockedDomains parameter is ignored, then BlockAllSubdomains is also ignored. Just like for BlockedDomains, users will be disallowed from communicating with users from blocked domains. But all subdomains for domains in this list will also be blocked. + > Applicable: Microsoft Teams + If the AllowedDomains property has been set to AllowAllKnownDomains, then users will be allowed to communicate with users from any domain except domains that appear in the blocked domains list. If the AllowedDomains property has not been set to AllowAllKnownDomains, then the blocked list is ignored, and users can only communicate with domains that have been expressly added to the allowed domains list. + The BlockedDomains parameter can support up to 4,000 domains. + > [!IMPORTANT] > The `AllowFederatedUsers` property must be set to `True` for the `AllowedDomains` list to take effect. If `AllowFederatedUsers` is set to `False`, users will be blocked from communicating with all external domains regardless of the values in `AllowedDomains` or any `ExternalAccessPolicy` instance. - SwitchParameter + List - SwitchParameter + List - False + None Confirm + > Applicable: Microsoft Teams Prompts you for confirmation before executing the command. SwitchParameter @@ -90210,9 +99061,38 @@ Set-CsTenantDialPlan -Identity Global -NormalizationRules $DP.NormalizationRules False + + DomainBlockingForMDOAdminsInTeams + + > Applicable: Microsoft Teams + When set to 'Enabled', security operations team will be able to add domains to the blocklist on security portal. When set to 'Disabled', security operations team will not have permissions to update the domains blocklist. + + DomainBlockingForMDOAdminsInTeamsType + + DomainBlockingForMDOAdminsInTeamsType + + + None + + + ExternalAccessWithTrialTenants + + > Applicable: Microsoft Teams + When set to 'Blocked', all external access with users from Teams subscriptions that contain only trial licenses will be blocked. This means users from these trial-only tenants will not be able to reach to your users via chats, Teams calls, and meetings (using the users authenticated identity) and your users will not be able to reach users in these trial-only tenants. If this setting is set to "Blocked", users from the trial-only tenant will also be removed from existing chats. + Allowed - Communication with other tenants is allowed based on other settings. + Blocked - Communication with users in tenants that contain only trial licenses will be blocked. + + ExternalAccessWithTrialTenantsType + + ExternalAccessWithTrialTenantsType + + + None + Force + > Applicable: Microsoft Teams Suppresses the display of any non-fatal error message that might arise when running the command. SwitchParameter @@ -90225,6 +99105,7 @@ Set-CsTenantDialPlan -Identity Global -NormalizationRules $DP.NormalizationRules Identity + > Applicable: Microsoft Teams Specifies the collection of tenant federation configuration settings to be modified. Because each tenant is limited to a single, global collection of federation settings there is no need include this parameter when calling the `Set-CsTenantFederationConfiguration` cmdlet. If you do choose to use the Identity parameter you must also include the Tenant parameter. For example: `Set-CsTenantFederationConfiguration -Tenant "bf19b7db-6960-41e5-a139-2aa373474354" -Identity "global"` @@ -90238,6 +99119,7 @@ Set-CsTenantDialPlan -Identity Global -NormalizationRules $DP.NormalizationRules Instance + > Applicable: Microsoft Teams Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. PSObject @@ -90247,9 +99129,22 @@ Set-CsTenantDialPlan -Identity Global -NormalizationRules $DP.NormalizationRules None + + RestrictTeamsConsumerToExternalUserProfiles + + Defines if a user is restricted to collaboration with Teams Consumer (TFL) user only in Extended Directory. Possible values: True, False + + Boolean + + Boolean + + + None + SharedSipAddressSpace + > Applicable: Microsoft Teams When set to True, indicates that the users homed on Skype for Business Online use the same SIP domain as users homed on the on-premises version of Skype for Business Server. The default value is False, meaning that the two sets of users have different SIP domains. Boolean @@ -90262,6 +99157,7 @@ Set-CsTenantDialPlan -Identity Global -NormalizationRules $DP.NormalizationRules Tenant + > Applicable: Microsoft Teams Globally unique identifier (GUID) of the tenant account whose federation settings are being modified. For example: `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"` You can return your tenant ID by running this command: @@ -90278,6 +99174,7 @@ Set-CsTenantDialPlan -Identity Global -NormalizationRules $DP.NormalizationRules TreatDiscoveredPartnersAsUnverified + > Applicable: Microsoft Teams When set to True, messages sent from discovered partners are considered unverified. That means that those messages will be delivered only if they were sent from a person who is on the recipient's Contacts list. The default value is False ($False). Boolean @@ -90287,74 +99184,10 @@ Set-CsTenantDialPlan -Identity Global -NormalizationRules $DP.NormalizationRules None - - AllowedDomainsAsAList - - You can specify allowed domains using a List object that contains the domains that users are allowed to communicate with. See Examples section. - - List - - List - - - None - - - ExternalAccessWithTrialTenants - - When set to 'Blocked', all external access with users from Teams subscriptions that contain only trial licenses will be blocked. This means users from these trial-only tenants will not be able to reach to your users via chats, Teams calls, and meetings (using the users authenticated identity) and your users will not be able to reach users in these trial-only tenants. If this setting is set to "Blocked", users from the trial-only tenant will also be removed from existing chats. - Allowed - Communication with other tenants is allowed based on other settings. - Blocked - Communication with users in tenants that contain only trial licenses will be blocked. - - ExternalAccessWithTrialTenantsType - - ExternalAccessWithTrialTenantsType - - - None - - - AllowedTrialTenantDomains - - You can whitelist specific "trial-only" tenant domains, while keeping the `ExternalAccessWithTrialTenants` set to `Blocked`. This will allow you to protect your organization against majority of tenants that don't have any paid subscriptions, while still being able to collaborate externally with those trusted trial-tenants in the list. - Note: - The list supports up to maximum 4k domains. - - If `ExternalAccessWithTrialTenants` is set to `Allowed`, then the `AllowedTrialTenantDomains` list will not be checked. - - Any domain in this list that belongs to a tenant with paid subscriptions will be ignored. - - List - - List - - - None - - - RestrictTeamsConsumerToExternalUserProfiles - - Defines if a user is restriced to collaboration with Teams Consumer (TFL) user only in Extended Directory. Possible values: True, False - - Boolean - - Boolean - - - None - - - CustomizeFederation - - Defines if we enable more customized federation settings in ExternalAccessPolicy or not. For example, when this is true, if the `AllowedDomains` includes [a.com, b.com], but the `AllowedExternalDomains` of the ExternalAccessPolicy includes [c.com], then users assigned by the ExternalAccessPolicy will only be allowed to access c.com, all other users will have access to a.com and b.com as defined in `AllowedDomains`. Possible values: True, False - - Boolean - - Boolean - - - False - WhatIf + > Applicable: Microsoft Teams Describes what would happen if you executed the command without actually executing the command. SwitchParameter @@ -90393,18 +99226,11 @@ Set-CsTenantDialPlan -Identity Global -NormalizationRules $DP.NormalizationRules -------------------------- Example 1 -------------------------- - Set-CsTenantFederationConfiguration -AllowPublicUsers $False - - The command shown in Example 1 disables communication with public providers for the current tenant. - - - - -------------------------- Example 2 -------------------------- $x = New-CsEdgeDomainPattern -Domain "fabrikam.com" Set-CsTenantFederationConfiguration -BlockedDomains @{Replace=$x} - In Example 2, the domain fabrikam.com is assigned as the only domain on the blocked domains list for current tenant. To do this, the first command in the example uses the `New-CsEdgeDomainPattern` cmdlet to create a new domain object for fabrikam.com. This domain object is stored in a variable named $x. + In Example 1, the domain fabrikam.com is assigned as the only domain on the blocked domains list for current tenant. To do this, the first command in the example uses the `New-CsEdgeDomainPattern` cmdlet to create a new domain object for fabrikam.com. This domain object is stored in a variable named $x. The second command in the example then uses the `Set-CsTenantFederationConfiguration` cmdlet to update the blocked domains list. Using the Replace method ensures that the existing blocked domains list will be replaced by the new list: a list that contains only the domain fabrikam.com. @@ -90437,43 +99263,50 @@ Set-CsTenantFederationConfiguration -BlockedDomains @{Add=$x} -------------------------- Example 6 -------------------------- + Set-CsTenantFederationConfiguration -AllowedDomains $Null + + Example 6 shows how you can remove all the domains assigned to the allowed domains list for the current tenant, thereby blocking external communication for all users in the Tenant. In case `AllowFederatedUsers` is set to `True`, then explicit `ExternalAccessPolicy` instances can be leveraged to set a per-user federation setting. To do this, simply include the AllowedDomains parameter and set the parameter value to null ($Null). When this command completes, the allowed domain list will be cleared. + + + + -------------------------- Example 7 -------------------------- $list = New-Object Collections.Generic.List[String] $list.add("contoso.com") $list.add("fabrikam.com") Set-CsTenantFederationConfiguration -AllowedDomainsAsAList $list - Example 6 shows how you can replace domains in the Allowed Domains using a List collection object. First, a List collection is created and domains are added to it, then, simply include the AllowedDomainsAsAList parameter and set the parameter value to the List object. When this command completes, the allowed domains list will be replaced with those domains. + Example 7 shows how you can replace domains in the Allowed Domains using a List collection object. First, a List collection is created and domains are added to it, then, simply include the AllowedDomainsAsAList parameter and set the parameter value to the List object. When this command completes, the allowed domains list will be replaced with those domains. - -------------------------- Example 7 -------------------------- + -------------------------- Example 8 -------------------------- $list = New-Object Collections.Generic.List[String] $list.add("contoso.com") $list.add("fabrikam.com") Set-CsTenantFederationConfiguration -AllowedDomainsAsAList @{Add=$list} - Example 7 shows how you can add domains to the existing Allowed Domains using a List object. First, a List is created and domains are added to it, then use the Add method in the AllowedDomainsAsAList parameter to add the domains to the existing allowed domains list. When this command completes, the domains in the list will be added to any domains already on the AllowedDomains list. + Example 8 shows how you can add domains to the existing Allowed Domains using a List object. First, a List is created and domains are added to it, then use the Add method in the AllowedDomainsAsAList parameter to add the domains to the existing allowed domains list. When this command completes, the domains in the list will be added to any domains already on the AllowedDomains list. - -------------------------- Example 8 -------------------------- + -------------------------- Example 9 -------------------------- $list = New-Object Collections.Generic.List[String] $list.add("contoso.com") $list.add("fabrikam.com") Set-CsTenantFederationConfiguration -AllowedDomainsAsAList @{Remove=$list} - Example 8 shows how you can remove domains from the existing Allowed Domains using a List object. First, a List is created and domains are added to it, then use the Remove method in the AllowedDomainsAsAList parameter to remove the domains from the existing allowed domains list. When this command completes, the domains in the list will be removed from the AllowedDomains list. + Example 9 shows how you can remove domains from the existing Allowed Domains using a List object. First, a List is created and domains are added to it, then use the Remove method in the AllowedDomainsAsAList parameter to remove the domains from the existing allowed domains list. When this command completes, the domains in the list will be removed from the AllowedDomains list. - -------------------------- Example 9 -------------------------- + -------------------------- Example 10 -------------------------- Set-CsTenantFederationConfiguration -AllowTeamsConsumer $True -AllowTeamsConsumerInbound $False - The command shown in Example 9 enables communication with people using Teams with an account that's not managed by an organization, to only be initiated by people in your organization. This means that people using Teams with an account that's not managed by an organization will not be able to discover or start a conversation with people in your organization. + The command shown in Example 10 enables communication with people using Teams with an account that's not managed by an organization, to only be initiated by people in your organization. This means that people using Teams with an account that's not managed by an organization will not be able to discover or start a conversation with people in your organization. - -------------------------- Example 10 ------------------------- + -------------------------- Example 11 -------------------------- $list = New-Object Collections.Generic.List[String] $list.add("contoso.com") $list.add("fabrikam.com") @@ -90481,71 +99314,71 @@ Set-CsTenantFederationConfiguration -BlockedDomains $list Set-CsTenantFederationConfiguration -BlockAllSubdomains $True - Example 10 shows how you can block all subdomains of domains in BlockedDomains list. In this example, all users from contoso.com and fabrikam.com will be blocked. When the BlockAllSubdomains is enabled, all users from all subdomains of all domains in BlockedDomains list will also be blocked. So, users from subdomain.contoso.com and subdomain.fabrikam.com will be blocked. Note: Users from subcontoso.com will not be blocked because it's a completely different domain rather than a subdomain of contoso.com. + Example 11 shows how you can block all subdomains of domains in BlockedDomains list. In this example, all users from contoso.com and fabrikam.com will be blocked. When the BlockAllSubdomains is enabled, all users from all subdomains of all domains in BlockedDomains list will also be blocked. So, users from subdomain.contoso.com and subdomain.fabrikam.com will be blocked. Note: Users from subcontoso.com will not be blocked because it's a completely different domain rather than a subdomain of contoso.com. - -------------------------- Example 11 ------------------------- + -------------------------- Example 12 -------------------------- Set-CsTenantFederationConfiguration -ExternalAccessWithTrialTenants "Allowed" - Example 11 shows how you can allow users to communicate with users in tenants that contain only trial licenses (default value is Blocked). + Example 12 shows how you can allow users to communicate with users in tenants that contain only trial licenses (default value is Blocked). - -------------------------- Example 12 -------------------------- + -------------------------- Example 13 -------------------------- $list = New-Object Collections.Generic.List[String] $list.add("contoso.com") $list.add("fabrikam.com") Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains $list - Using the `AllowedTrialTenantDomains` parameter, you can whitelist specific "trial-only" tenant domains, while keeping the `ExternalAccessWithTrialTenants` set to `Blocked`. Example 12 shows how you can set or replace domains in the Allowed Trial Tenant Domains using a List collection object. First, a List collection is created and domains are added to it, then, simply include the `AllowedTrialTenantDomains` parameter and set the parameter value to the List object. When this command completes, the Allowed Trial Tenant Domains list will be replaced with those domains. + Using the `AllowedTrialTenantDomains` parameter, you can whitelist specific "trial-only" tenant domains, while keeping the `ExternalAccessWithTrialTenants` set to `Blocked`. Example 13 shows how you can set or replace domains in the Allowed Trial Tenant Domains using a List collection object. First, a List collection is created and domains are added to it, then, simply include the `AllowedTrialTenantDomains` parameter and set the parameter value to the List object. When this command completes, the Allowed Trial Tenant Domains list will be replaced with those domains. - -------------------------- Example 13 -------------------------- + -------------------------- Example 14 -------------------------- Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @("contoso.com", "fabrikam.com") - Example 13 shows another way to set a value of `AllowedTrialTenantDomains`. It uses array of objects and it always replaces value of the `AllowedTrialTenantDomains`. When this command completes, the result is the same as in example 12. + Example 14 shows another way to set a value of `AllowedTrialTenantDomains`. It uses array of objects and it always replaces value of the `AllowedTrialTenantDomains`. When this command completes, the result is the same as in example 13. The array of `AllowedTrialTenantDomains` can be emptied by running the following command: `Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @()`. - -------------------------- Example 14 -------------------------- + -------------------------- Example 15 -------------------------- $list = New-Object Collections.Generic.List[String] $list.add("contoso.com") Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Add=$list} - Example 14 shows how you can add domains to the existing Allowed Trial Tenant Domains using a List collection object. First, a List is created and domains are added to it, then, use the Add method in the `AllowedTrialTenantDomains` parameter to add the domains to the existing allowed domains list. When this command completes, the domains in the list will be added to any domains already on the Allowed Trial Tenant Domains list. + Example 15 shows how you can add domains to the existing Allowed Trial Tenant Domains using a List collection object. First, a List is created and domains are added to it, then, use the Add method in the `AllowedTrialTenantDomains` parameter to add the domains to the existing allowed domains list. When this command completes, the domains in the list will be added to any domains already on the Allowed Trial Tenant Domains list. - -------------------------- Example 15 -------------------------- + -------------------------- Example 16 -------------------------- $list = New-Object Collections.Generic.List[String] $list.add("contoso.com") Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} - Example 15 shows how you can remove domains from the existing Allowed Trial Tenant Domains using a List collection object. First, a List is created and domains are added to it, then use the Remove method in the `AllowedTrialTenantDomains` parameter to remove the domains from the existing allowed domains list. When this command completes, the domains in the list will be removed from the Allowed Trial Tenant Domains list. + Example 16 shows how you can remove domains from the existing Allowed Trial Tenant Domains using a List collection object. First, a List is created and domains are added to it, then use the Remove method in the `AllowedTrialTenantDomains` parameter to remove the domains from the existing allowed domains list. When this command completes, the domains in the list will be removed from the Allowed Trial Tenant Domains list. - -------------------------- Example 16 ------------------------- - Set-CsTenantFederationConfiguration -CustomizeFederation $True + -------------------------- Example 17 -------------------------- + Set-CsTenantFederationConfiguration -DomainBlockingForMDOAdminsInTeams "Enabled" - Example 16 shows how you can enable the feature where you can customize your federation in ExternalAccessPolicy. + Online Version: - https://learn.microsoft.com/powershell/module/teams/set-cstenantfederationconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantfederationconfiguration Get-CsTenantFederationConfiguration - https://learn.microsoft.com/powershell/module/teams/get-cstenantfederationconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantfederationconfiguration @@ -90567,6 +99400,7 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} Identity + > Applicable: Microsoft Teams Unique identifier for the Migration Configuration. String @@ -90579,6 +99413,7 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} Confirm + > Applicable: Microsoft Teams Prompts you for confirmation before running the cmdlet. @@ -90590,6 +99425,7 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -90601,6 +99437,7 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} MeetingMigrationEnabled + > Applicable: Microsoft Teams Set this to false to disable the Meeting Migration Service. Boolean @@ -90613,6 +99450,7 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} Tenant + > Applicable: Microsoft Teams Globally unique identifier (GUID) of the tenant account whose Migration Configurations are being created. For example: -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" You can return your tenant ID by running this command: @@ -90628,6 +99466,7 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} WhatIf + > Applicable: Microsoft Teams Shows what would happen if the cmdlet runs. @@ -90639,21 +99478,10 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} Set-CsTenantMigrationConfiguration - - Instance - - The Instance parameter allows you to pass a reference to an object to the cmdlet, rather than set individual parameter values. You can retrieve this object reference by calling the `Get-CsTenantMigrationConfiguration` cmdlet. - - PSObject - - PSObject - - - None - Confirm + > Applicable: Microsoft Teams Prompts you for confirmation before running the cmdlet. @@ -90665,6 +99493,7 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -90673,9 +99502,23 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} False + + Instance + + > Applicable: Microsoft Teams + The Instance parameter allows you to pass a reference to an object to the cmdlet, rather than set individual parameter values. You can retrieve this object reference by calling the `Get-CsTenantMigrationConfiguration` cmdlet. + + PSObject + + PSObject + + + None + MeetingMigrationEnabled + > Applicable: Microsoft Teams Set this to false to disable the Meeting Migration Service. Boolean @@ -90688,6 +99531,7 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} Tenant + > Applicable: Microsoft Teams Globally unique identifier (GUID) of the tenant account whose Migration Configurations are being created. For example: -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" You can return your tenant ID by running this command: @@ -90703,6 +99547,7 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} WhatIf + > Applicable: Microsoft Teams Shows what would happen if the cmdlet runs. @@ -90714,57 +99559,62 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} - - Identity + + Confirm - Unique identifier for the Migration Configuration. + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. - String + SwitchParameter - String + SwitchParameter - None + False - Instance + Force - The Instance parameter allows you to pass a reference to an object to the cmdlet, rather than set individual parameter values. You can retrieve this object reference by calling the `Get-CsTenantMigrationConfiguration` cmdlet. + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. - PSObject + SwitchParameter - PSObject + SwitchParameter - None + False - - Confirm + + Identity - Prompts you for confirmation before running the cmdlet. + > Applicable: Microsoft Teams + Unique identifier for the Migration Configuration. - SwitchParameter + String - SwitchParameter + String - False + None - Force + Instance - The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + > Applicable: Microsoft Teams + The Instance parameter allows you to pass a reference to an object to the cmdlet, rather than set individual parameter values. You can retrieve this object reference by calling the `Get-CsTenantMigrationConfiguration` cmdlet. - SwitchParameter + PSObject - SwitchParameter + PSObject - False + None MeetingMigrationEnabled + > Applicable: Microsoft Teams Set this to false to disable the Meeting Migration Service. Boolean @@ -90777,6 +99627,7 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} Tenant + > Applicable: Microsoft Teams Globally unique identifier (GUID) of the tenant account whose Migration Configurations are being created. For example: -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" You can return your tenant ID by running this command: @@ -90792,6 +99643,7 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} WhatIf + > Applicable: Microsoft Teams Shows what would happen if the cmdlet runs. SwitchParameter @@ -90821,7 +99673,7 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} Online Version: - https://learn.microsoft.com/powershell/module/teams/set-cstenantmigrationconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantmigrationconfiguration @@ -90831,19 +99683,20 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list}Set CsTenantNetworkRegion - As an admin, you can use the Teams PowerShell command, Set-CsTenantNetworkRegion to define network regions. A network region interconnects various parts of a network across multiple geographic areas. The RegionID parameter is a logical name that represents the geography of the region and has no dependencies or restrictions. The organization's network region is used for Location-Based Routing. + Changes the definintion of network regions. + As an admin, you can use the Teams PowerShell command, Set-CsTenantNetworkRegion to define network regions. A network region interconnects various parts of a network across multiple geographic areas. The RegionID parameter is a logical name that represents the geography of the region and has no dependencies or restrictions. The organization's network region is used for Location-Based Routing. Location-Based Routing leverages the same network regions, sites, and subnets concept that is available in Skype for Business Server. A network region contains a collection of network sites. For example, if your organization has many sites located in Redmond, then you may choose to designate "Redmond" as a network region. Set-CsTenantNetworkRegion - Identity + CentralSite - Unique identifier for the network region to be set. + This parameter is not used. String @@ -90852,17 +99705,16 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} None - - CentralSite + + Confirm - This parameter is not used. + Prompts you for confirmation before running the cmdlet. - String - String + SwitchParameter - None + False Description @@ -90877,9 +99729,9 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list}None - NetworkRegionID + Identity - The name of the network region. Not required in this PowerShell command. + Unique identifier for the network region to be set. String @@ -90888,16 +99740,17 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} None - - Confirm + + NetworkRegionID - Prompts you for confirmation before running the cmdlet. + The name of the network region. Not required in this PowerShell command. + String - SwitchParameter + String - False + None WhatIf @@ -90914,9 +99767,9 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} - Identity + CentralSite - Unique identifier for the network region to be set. + This parameter is not used. String @@ -90925,17 +99778,17 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} None - - CentralSite + + Confirm - This parameter is not used. + Prompts you for confirmation before running the cmdlet. - String + SwitchParameter - String + SwitchParameter - None + False Description @@ -90950,9 +99803,9 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list}None - NetworkRegionID + Identity - The name of the network region. Not required in this PowerShell command. + Unique identifier for the network region to be set. String @@ -90961,17 +99814,17 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} None - - Confirm + + NetworkRegionID - Prompts you for confirmation before running the cmdlet. + The name of the network region. Not required in this PowerShell command. - SwitchParameter + String - SwitchParameter + String - False + None WhatIf @@ -91023,19 +99876,19 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} Online Version: - https://learn.microsoft.com/powershell/module/teams/set-cstenantnetworkregion + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworkregion New-CsTenantNetworkRegion - https://learn.microsoft.com/powershell/module/teams/new-cstenantnetworkregion + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworkregion Remove-CsTenantNetworkRegion - https://learn.microsoft.com/powershell/module/teams/remove-cstenantnetworkregion + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworkregion Get-CsTenantNetworkRegion - https://learn.microsoft.com/powershell/module/teams/get-cstenantnetworkregion + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworkregion @@ -91045,7 +99898,7 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list}Set CsTenantNetworkSite - As an Admin, you can use the Windows PowerShell command, Set-CsTenantNetworkSite to define network sites. Network sites are defined as a collection of IP subnets. Each network site must be associated with a network region. Tenant network site is used for Location Based Routing. + Changes the definition of network sites. @@ -91055,17 +99908,16 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} Set-CsTenantNetworkSite - - Identity + + Confirm - Unique identifier for the network site to be set. + Prompts you for confirmation before running the cmdlet. - String - String + SwitchParameter - None + False Description @@ -91116,9 +99968,9 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list}None - LocationPolicy + Identity - This parameter is reserved for internal Microsoft use. + Unique identifier for the network site to be set. String @@ -91128,9 +99980,9 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list}None - NetworkRegionID + LocationPolicy - NetworkRegionID is the identifier for the network region which the current network site is associating to. + This parameter is reserved for internal Microsoft use. String @@ -91140,9 +99992,9 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list}None - NetworkRoamingPolicy + NetworkRegionID - NetworkRoamingPolicy is the identifier for the network roaming policy to which the network site will associate to. + NetworkRegionID is the identifier for the network region which the current network site is associating to. String @@ -91151,16 +100003,17 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} None - - Confirm + + NetworkRoamingPolicy - Prompts you for confirmation before running the cmdlet. + NetworkRoamingPolicy is the identifier for the network roaming policy to which the network site will associate to. + String - SwitchParameter + String - False + None WhatIf @@ -91176,17 +100029,17 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} - - Identity + + Confirm - Unique identifier for the network site to be set. + Prompts you for confirmation before running the cmdlet. - String + SwitchParameter - String + SwitchParameter - None + False Description @@ -91237,9 +100090,9 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list}None - LocationPolicy + Identity - This parameter is reserved for internal Microsoft use. + Unique identifier for the network site to be set. String @@ -91249,9 +100102,9 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list}None - NetworkRegionID + LocationPolicy - NetworkRegionID is the identifier for the network region which the current network site is associating to. + This parameter is reserved for internal Microsoft use. String @@ -91261,9 +100114,9 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list}None - NetworkRoamingPolicy + NetworkRegionID - NetworkRoamingPolicy is the identifier for the network roaming policy to which the network site will associate to. + NetworkRegionID is the identifier for the network region which the current network site is associating to. String @@ -91272,17 +100125,17 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} None - - Confirm + + NetworkRoamingPolicy - Prompts you for confirmation before running the cmdlet. + NetworkRoamingPolicy is the identifier for the network roaming policy to which the network site will associate to. - SwitchParameter + String - SwitchParameter + String - False + None WhatIf @@ -91349,19 +100202,19 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} Online Version: - https://learn.microsoft.com/powershell/module/teams/set-cstenantnetworksite + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworksite New-CsTenantNetworkSite - https://learn.microsoft.com/powershell/module/teams/new-cstenantnetworksite + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworksite Remove-CsTenantNetworkSite - https://learn.microsoft.com/powershell/module/teams/remove-cstenantnetworksite + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworksite Get-CsTenantNetworkSite - https://learn.microsoft.com/powershell/module/teams/get-cstenantnetworksite + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworksite @@ -91371,7 +100224,7 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list}Set CsTenantNetworkSubnet - As an admin, you can use the Teams PowerShell command, Set-CsTenantNetworkSubnet to define network subnets and assign them to network sites. Each internal subnet may only be associated with one site. The organization's network subnet is used for Location-Based Routing. + Changes the definition of network subnets. @@ -91392,6 +100245,17 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + Description @@ -91429,17 +100293,6 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} None - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - WhatIf @@ -91454,17 +100307,17 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} - - Identity + + Confirm - Unique identifier for the network subnet to be set. + Prompts you for confirmation before running the cmdlet. - String + SwitchParameter - String + SwitchParameter - None + False Description @@ -91478,6 +100331,18 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} None + + Identity + + Unique identifier for the network subnet to be set. + + String + + String + + + None + MaskBits @@ -91503,18 +100368,6 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} None - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - WhatIf @@ -91556,19 +100409,19 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} Online Version: - https://learn.microsoft.com/powershell/module/teams/set-cstenantnetworksubnet + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworksubnet New-CsTenantNetworkSubnet - https://learn.microsoft.com/powershell/module/teams/new-cstenantnetworksubnet + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworksubnet Remove-CsTenantNetworkSubnet - https://learn.microsoft.com/powershell/module/teams/remove-cstenantnetworksubnet + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworksubnet Get-CsTenantNetworkSubnet - https://learn.microsoft.com/powershell/module/teams/get-cstenantnetworksubnet + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworksubnet @@ -91578,7 +100431,7 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list}Set CsTenantTrustedIPAddress - As an Admin, you can use the Windows PowerShell command, Set-CsTenantTrustedIPAddress to define external subnets and assign them to the tenant. You can define an unlimited number of external subnets for a tenant. + Changes the definition of network IP addresses. @@ -91919,7 +100772,7 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} Online Version: - https://learn.microsoft.com/powershell/module/teams/set-cstenanttrustedipaddress + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenanttrustedipaddress @@ -91929,10 +100782,11 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list}Set CsUser - Modifies Skype for Business properties for an existing user account. Properties can be modified only for accounts that have been enabled for use with Skype for Business. This cmdlet was introduced in Lync Server 2010. Note : Using this cmdlet for Microsoft Teams users in commercial and GCC cloud instances has been deprecated. Use the new Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/teams/set-csphonenumberassignment) and [Remove-CsPhoneNumberAssignment](https://learn.microsoft.com/powershell/module/teams/remove-csphonenumberassignment)cmdlets instead. + Modifies Skype for Business properties for an existing user account. + Properties can be modified only for accounts that have been enabled for use with Skype for Business. This cmdlet was introduced in Lync Server 2010. Note : Using this cmdlet for Microsoft Teams users in commercial and GCC cloud instances has been deprecated. Use the new Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberassignment) and [Remove-CsPhoneNumberAssignment](https://learn.microsoft.com/powershell/module/microsoftteams/remove-csphonenumberassignment)cmdlets instead. The `Set-CsUser` cmdlet enables you to modify the Skype for Business related user account attributes that are stored in Active Directory Domain Services or modify a subset of Skype for Business online user attributes that are stored in Microsoft Entra ID. For example, you can disable or re-enable a user for Skype for Business Server; enable or disable a user for audio/video (A/V) communications; or modify a user's private line and line URI numbers. For Skype for Business online enable or disable a user for enterprise voice, hosted voicemail, or modify the user's on premise line uri. The `Set-CsUser` cmdlet can be used only for users who have been enabled for Skype for Business. The only attributes you can modify using the `Set-CsUser` cmdlet are attributes related to Skype for Business. Other user account attributes, such as the user's job title or department, cannot be modified by using this cmdlet. Keep in mind, however, that the Skype for Business attributes should only be modified by using the `Set-CsUser` cmdlet or the Skype for Business Server Control Panel. You should not attempt to manually configure these attributes. @@ -91942,6 +100796,7 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} Identity + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 Indicates the Identity of the user account to be modified. User Identities can be specified using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer) and 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. You can use the asterisk (*) wildcard character when using the display name as the user Identity. For example, the Identity "Smith" returns all the users who have a display name that ends with the string value " Smith". @@ -91952,9 +100807,23 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} None + + AcpInfo + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Enables you to assign one or more third-party audio conferencing providers to a user. However, it is recommended that you use the `Set-CsUserAcp` cmdlet to assign Audio conferencing providers. + + AcpInfo + + AcpInfo + + + None + AudioVideoDisabled + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 Indicates whether the user is allowed to make audio/visual (A/V) calls by using Skype for Business. If set to True, the user will largely be restricted to sending and receiving instant messages. You cannot disable A/V communications if a user is currently enabled for remote call control, Enterprise Voice, and/or Internet Protocol private branch exchange (IP-PBX) soft phone routing. Note : This parameter is not available for Teams Only tenants from version 3.0.0 onwards. @@ -91965,22 +100834,22 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} None - - Enabled + + Confirm - Indicates whether or not the user has been enabled for Skype for Business Server. If you set this value to False, the user will no longer be able to log on to Skype for Business Server; setting this value to True re-enables the user's logon privileges. - If you disable an account by using the Enabled parameter, the information associated with that account (including assigned policies and whether or not the user is enabled for Enterprise Voice and/or remote call control) is retained. If you later re-enable the account by using the Enabled parameter, the associated account information will be restored. This differs from using the `Disable-CsUser` cmdlet to disable a user account. When you run the `Disable-CsUser` cmdlet, all the Skype for Business Server data associated with that account is deleted. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Prompts you for confirmation before executing the command. - Boolean - Boolean + SwitchParameter - None + False DomainController + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 Enables you to specify a domain controller to connect to when modifying a user account. If this parameter is not included then the cmdlet will use the first available domain controller. Fqdn @@ -91990,10 +100859,12 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} None - - EnterpriseVoiceEnabled + + Enabled - Indicates whether the user has been enabled for Enterprise Voice, which is the Microsoft implementation of Voice over Internet Protocol (VoIP). With Enterprise Voice, users can make telephone calls using the Internet rather than using the standard telephone network. Note : Using this parameter for Microsoft Teams users in commercial and GCC cloud instances has been deprecated. Use the new Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/teams/set-csphonenumberassignment)cmdlet instead. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Indicates whether or not the user has been enabled for Skype for Business Server. If you set this value to False, the user will no longer be able to log on to Skype for Business Server; setting this value to True re-enables the user's logon privileges. + If you disable an account by using the Enabled parameter, the information associated with that account (including assigned policies and whether or not the user is enabled for Enterprise Voice and/or remote call control) is retained. If you later re-enable the account by using the Enabled parameter, the associated account information will be restored. This differs from using the `Disable-CsUser` cmdlet to disable a user account. When you run the `Disable-CsUser` cmdlet, all the Skype for Business Server data associated with that account is deleted. Boolean @@ -92003,9 +100874,10 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list}None - HostedVoiceMail + EnterpriseVoiceEnabled - When set to True, enables a user's voice mail calls to be routed to a hosted version of Microsoft Exchange Server. In addition, setting this option to True enables Skype for Business users to directly place a call to another user's voice mail. Note : It is not required to set this parameter for Microsoft Teams users. Using this parameter has been deprecated for Microsoft Teams users in commercial and GCC cloud instances. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Indicates whether the user has been enabled for Enterprise Voice, which is the Microsoft implementation of Voice over Internet Protocol (VoIP). With Enterprise Voice, users can make telephone calls using the Internet rather than using the standard telephone network. Note : Using this parameter for Microsoft Teams users in commercial and GCC cloud instances has been deprecated. Use the new Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberassignment)cmdlet instead. Boolean @@ -92015,38 +100887,40 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list}None - LineURI + ExchangeArchivingPolicy - Phone number to be assigned to the user in Skype for Business Server or Direct Routing phone number to be assigned to a Microsoft Teams user in GCC High and DoD cloud instances only. - The line Uniform Resource Identifier (URI) must be specified using the E.164 format and the "tel:" prefix, for example: tel:+14255551297. Any extension number should be added to the end of the line URI, for example: tel:+14255551297;ext=51297. - It is important to note that Skype for Business Server treats tel:+14255551297 and tel:+14255551297;ext=51297 as two different numbers. If you assign Ken Myer the line URI tel:+14255551297 and later try to assign Pilar Ackerman the line URI tel:+14255551297;ext=51297, that assignment will succeed; the number assigned to Pilar will not be flagged as a duplicate number. This is due to the fact that, depending on your setup, those two numbers could actually be different. For example, in some organizations dialing 1-425-555-1297 routes your call to an Exchange Auto Attendant. Conversely, dialing just the extension (51297) or using Skype for Business to dial the number 1-425-555-1297 extension 51297 will route your call directly to the user. - For Direct Routing phone numbers in GCC High and DoD cloud instances, assigning a base phone number to a user or resource account is not supported if you already have other users or resource accounts assigned phone numbers with the same base phone number and extensions or vice versa. For instance, if you have a user with the assigned phone number +14255551200;ext=123 you can't assign the phone number +14255551200 to another user or resource account or if you have a user or resource account with the assigned phone number +14255551200 you can't assign the phone number +14255551200;ext=123 to another user or resource account. Assigning phone numbers with the same base number but different extensions to users and resource accounts is supported. For instance, you can have a user with +14255551200;ext=123 and another user with +14255551200;ext=124. - Note: Extension should be part of the E164 Number. For example if you have 5 digit Extensions then the last 5 digits of the E164 Number should always match the 5 digit extension tel:+14255551297;ext=51297 + > Applicable: Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Indicates where the user's instant messaging sessions are archived. Allowed values are: + Uninitialized + UseLyncArchivingPolicy + ArchivingToExchange + NoArchiving - String + ExchangeArchivingPolicyOptionsEnum - String + ExchangeArchivingPolicyOptionsEnum None - LineServerURI + HostedVoiceMail - The URI of the remote call control telephone gateway assigned to the user. The LineServerUri is the gateway URI, prefaced by "sip:". For example: sip:rccgateway@litwareinc.com + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + When set to True, enables a user's voice mail calls to be routed to a hosted version of Microsoft Exchange Server. In addition, setting this option to True enables Skype for Business users to directly place a call to another user's voice mail. Note : It is not required to set this parameter for Microsoft Teams users. Using this parameter has been deprecated for Microsoft Teams users in commercial and GCC cloud instances. - String + Boolean - String + Boolean None - PrivateLine + LineServerURI - Phone number for the user's private telephone line. A private line is a phone number that is not published in Active Directory Domain Services and, as a result, is not readily available to other people. In addition, this private line bypasses most in-bound call routing rules; for example, a call to a private line will not be forwarded to a person's delegates. Private lines are often used for personal phone calls or for business calls that should be kept separate from other team members. - The private line value should be specified using the E.164 format, and be prefixed by the "tel:" prefix. For example: tel:+14255551297. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + The URI of the remote call control telephone gateway assigned to the user. The LineServerUri is the gateway URI, prefaced by "sip:". For example: sip:rccgateway@litwareinc.com String @@ -92056,22 +100930,28 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list}None - RemoteCallControlTelephonyEnabled + LineURI - Indicates whether the user has been enabled for remote call control telephony. When enabled for remote call control, a user can employ Skype for Business to answer phone calls made to his or her desk phone. Phone calls can also be made using Skype for Business. These calls all rely on the standard telephone network, also known as the public switched telephone network (PSTN). To make and receive phone calls over the Internet, the user must be enabled for Enterprise Voice. For details, see the parameter EnterpriseVoiceEnabled. - To be enabled for remote call control, a user must have both a LineUri and a LineServerUri. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + Phone number to be assigned to the user in Skype for Business Server or Direct Routing phone number to be assigned to a Microsoft Teams user in GCC High and DoD cloud instances only. + The line Uniform Resource Identifier (URI) must be specified using the E.164 format and the "tel:" prefix, for example: tel:+14255551297. Any extension number should be added to the end of the line URI, for example: tel:+14255551297;ext=51297. + It is important to note that Skype for Business Server treats tel:+14255551297 and tel:+14255551297;ext=51297 as two different numbers. If you assign Ken Myer the line URI tel:+14255551297 and later try to assign Pilar Ackerman the line URI tel:+14255551297;ext=51297, that assignment will succeed; the number assigned to Pilar will not be flagged as a duplicate number. This is due to the fact that, depending on your setup, those two numbers could actually be different. For example, in some organizations dialing 1-425-555-1297 routes your call to an Exchange Auto Attendant. Conversely, dialing just the extension (51297) or using Skype for Business to dial the number 1-425-555-1297 extension 51297 will route your call directly to the user. + For Direct Routing phone numbers in GCC High and DoD cloud instances, assigning a base phone number to a user or resource account is not supported if you already have other users or resource accounts assigned phone numbers with the same base phone number and extensions or vice versa. For instance, if you have a user with the assigned phone number +14255551200;ext=123 you can't assign the phone number +14255551200 to another user or resource account or if you have a user or resource account with the assigned phone number +14255551200 you can't assign the phone number +14255551200;ext=123 to another user or resource account. Assigning phone numbers with the same base number but different extensions to users and resource accounts is supported. For instance, you can have a user with +14255551200;ext=123 and another user with +14255551200;ext=124. + Note: Extension should be part of the E164 Number. For example if you have 5 digit Extensions then the last 5 digits of the E164 Number should always match the 5 digit extension tel:+14255551297;ext=51297 - Boolean + String - Boolean + String None - SipAddress + OnPremLineURI - Unique identifier (similar to an email address) that allows the user to communicate using SIP devices such as Skype for Business. The SIP address must use the sip: prefix as well as a valid SIP domain; for example: `-SipAddress sip:kenmyer@litwareinc.com`. + > Applicable: Microsoft Teams + Specifies the phone number assigned to the user if no number is assigned to that user in the Skype for Business hybrid environment. The line Uniform Resource Identifier (URI) must be specified using the E.164 format and use the "tel:" prefix. For example: tel:+14255551297. Any extension number should be added to the end of the line URI, for example: tel:+14255551297;ext=51297. + Note that Skype for Business treats tel:+14255551297 and tel:+14255551297;ext=51297 as two different numbers. If you assign Ken Myer the line URI tel:+14255551297 and later try to assign Pilar Ackerman the line URI tel:+14255551297;ext=51297, that assignment will succeed. Depending on your setup, those two numbers could actually be different. For example, in some organizations dialing 1-425-555-1297 routes your call to an Exchange Auto Attendant. Conversely, dialing just the extension (51297) or using Skype for Business to dial the number 1-425-555-1297 extension 51297 will route your call directly to the user. Note : Using this parameter for Microsoft Teams users in commercial and GCC cloud instances has been deprecated. Use the new Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberassignment)cmdlet instead. Note : Using this parameter for Microsoft Teams users in GCC High and DoD cloud instances has been deprecated. Use the -LineURI parameter instead. String @@ -92083,6 +100963,7 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} PassThru + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 Enables you to pass a user object through the pipeline that represents the user whose account is being modified. By default, the `Set-CsUser` cmdlet does not pass objects through the pipeline. Note : This parameter is not available for Teams Only tenants from version 3.0.0 onwards. @@ -92091,81 +100972,71 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} False - - WhatIf - - Describes what would happen if you executed the command without actually executing the command. - - - SwitchParameter - - - False - - - Confirm + + PrivateLine - Prompts you for confirmation before executing the command. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Phone number for the user's private telephone line. A private line is a phone number that is not published in Active Directory Domain Services and, as a result, is not readily available to other people. In addition, this private line bypasses most in-bound call routing rules; for example, a call to a private line will not be forwarded to a person's delegates. Private lines are often used for personal phone calls or for business calls that should be kept separate from other team members. + The private line value should be specified using the E.164 format, and be prefixed by the "tel:" prefix. For example: tel:+14255551297. + String - SwitchParameter + String - False + None - AcpInfo + RemoteCallControlTelephonyEnabled - Enables you to assign one or more third-party audio conferencing providers to a user. However, it is recommended that you use the `Set-CsUserAcp` cmdlet to assign Audio conferencing providers. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Indicates whether the user has been enabled for remote call control telephony. When enabled for remote call control, a user can employ Skype for Business to answer phone calls made to his or her desk phone. Phone calls can also be made using Skype for Business. These calls all rely on the standard telephone network, also known as the public switched telephone network (PSTN). To make and receive phone calls over the Internet, the user must be enabled for Enterprise Voice. For details, see the parameter EnterpriseVoiceEnabled. + To be enabled for remote call control, a user must have both a LineUri and a LineServerUri. - AcpInfo + Boolean - AcpInfo + Boolean None - ExchangeArchivingPolicy + SipAddress - Indicates where the user's instant messaging sessions are archived. Allowed values are: - Uninitialized - UseLyncArchivingPolicy - ArchivingToExchange - NoArchiving + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Unique identifier (similar to an email address) that allows the user to communicate using SIP devices such as Skype for Business. The SIP address must use the sip: prefix as well as a valid SIP domain; for example: `-SipAddress sip:kenmyer@litwareinc.com`. - ExchangeArchivingPolicyOptionsEnum + String - ExchangeArchivingPolicyOptionsEnum + String None - - OnPremLineURI + + WhatIf - Specifies the phone number assigned to the user if no number is assigned to that user in the Skype for Business hybrid environment. The line Uniform Resource Identifier (URI) must be specified using the E.164 format and use the "tel:" prefix. For example: tel:+14255551297. Any extension number should be added to the end of the line URI, for example: tel:+14255551297;ext=51297. - Note that Skype for Business treats tel:+14255551297 and tel:+14255551297;ext=51297 as two different numbers. If you assign Ken Myer the line URI tel:+14255551297 and later try to assign Pilar Ackerman the line URI tel:+14255551297;ext=51297, that assignment will succeed. Depending on your setup, those two numbers could actually be different. For example, in some organizations dialing 1-425-555-1297 routes your call to an Exchange Auto Attendant. Conversely, dialing just the extension (51297) or using Skype for Business to dial the number 1-425-555-1297 extension 51297 will route your call directly to the user. Note : Using this parameter for Microsoft Teams users in commercial and GCC cloud instances has been deprecated. Use the new Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/teams/set-csphonenumberassignment)cmdlet instead. Note : Using this parameter for Microsoft Teams users in GCC High and DoD cloud instances has been deprecated. Use the -LineURI parameter instead. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Describes what would happen if you executed the command without actually executing the command. - String - String + SwitchParameter - None + False - - Identity + + AcpInfo - Indicates the Identity of the user account to be modified. User Identities can be specified using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer) and 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. - You can use the asterisk (*) wildcard character when using the display name as the user Identity. For example, the Identity "Smith" returns all the users who have a display name that ends with the string value " Smith". + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Enables you to assign one or more third-party audio conferencing providers to a user. However, it is recommended that you use the `Set-CsUserAcp` cmdlet to assign Audio conferencing providers. - UserIdParameter + AcpInfo - UserIdParameter + AcpInfo None @@ -92173,6 +101044,7 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} AudioVideoDisabled + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 Indicates whether the user is allowed to make audio/visual (A/V) calls by using Skype for Business. If set to True, the user will largely be restricted to sending and receiving instant messages. You cannot disable A/V communications if a user is currently enabled for remote call control, Enterprise Voice, and/or Internet Protocol private branch exchange (IP-PBX) soft phone routing. Note : This parameter is not available for Teams Only tenants from version 3.0.0 onwards. @@ -92183,22 +101055,23 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} None - - Enabled + + Confirm - Indicates whether or not the user has been enabled for Skype for Business Server. If you set this value to False, the user will no longer be able to log on to Skype for Business Server; setting this value to True re-enables the user's logon privileges. - If you disable an account by using the Enabled parameter, the information associated with that account (including assigned policies and whether or not the user is enabled for Enterprise Voice and/or remote call control) is retained. If you later re-enable the account by using the Enabled parameter, the associated account information will be restored. This differs from using the `Disable-CsUser` cmdlet to disable a user account. When you run the `Disable-CsUser` cmdlet, all the Skype for Business Server data associated with that account is deleted. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Prompts you for confirmation before executing the command. - Boolean + SwitchParameter - Boolean + SwitchParameter - None + False DomainController + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 Enables you to specify a domain controller to connect to when modifying a user account. If this parameter is not included then the cmdlet will use the first available domain controller. Fqdn @@ -92208,10 +101081,12 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} None - - EnterpriseVoiceEnabled + + Enabled - Indicates whether the user has been enabled for Enterprise Voice, which is the Microsoft implementation of Voice over Internet Protocol (VoIP). With Enterprise Voice, users can make telephone calls using the Internet rather than using the standard telephone network. Note : Using this parameter for Microsoft Teams users in commercial and GCC cloud instances has been deprecated. Use the new Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/teams/set-csphonenumberassignment)cmdlet instead. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Indicates whether or not the user has been enabled for Skype for Business Server. If you set this value to False, the user will no longer be able to log on to Skype for Business Server; setting this value to True re-enables the user's logon privileges. + If you disable an account by using the Enabled parameter, the information associated with that account (including assigned policies and whether or not the user is enabled for Enterprise Voice and/or remote call control) is retained. If you later re-enable the account by using the Enabled parameter, the associated account information will be restored. This differs from using the `Disable-CsUser` cmdlet to disable a user account. When you run the `Disable-CsUser` cmdlet, all the Skype for Business Server data associated with that account is deleted. Boolean @@ -92221,9 +101096,10 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list}None - HostedVoiceMail + EnterpriseVoiceEnabled - When set to True, enables a user's voice mail calls to be routed to a hosted version of Microsoft Exchange Server. In addition, setting this option to True enables Skype for Business users to directly place a call to another user's voice mail. Note : It is not required to set this parameter for Microsoft Teams users. Using this parameter has been deprecated for Microsoft Teams users in commercial and GCC cloud instances. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Indicates whether the user has been enabled for Enterprise Voice, which is the Microsoft implementation of Voice over Internet Protocol (VoIP). With Enterprise Voice, users can make telephone calls using the Internet rather than using the standard telephone network. Note : Using this parameter for Microsoft Teams users in commercial and GCC cloud instances has been deprecated. Use the new Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberassignment)cmdlet instead. Boolean @@ -92233,63 +101109,71 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list}None - LineURI + ExchangeArchivingPolicy - Phone number to be assigned to the user in Skype for Business Server or Direct Routing phone number to be assigned to a Microsoft Teams user in GCC High and DoD cloud instances only. - The line Uniform Resource Identifier (URI) must be specified using the E.164 format and the "tel:" prefix, for example: tel:+14255551297. Any extension number should be added to the end of the line URI, for example: tel:+14255551297;ext=51297. - It is important to note that Skype for Business Server treats tel:+14255551297 and tel:+14255551297;ext=51297 as two different numbers. If you assign Ken Myer the line URI tel:+14255551297 and later try to assign Pilar Ackerman the line URI tel:+14255551297;ext=51297, that assignment will succeed; the number assigned to Pilar will not be flagged as a duplicate number. This is due to the fact that, depending on your setup, those two numbers could actually be different. For example, in some organizations dialing 1-425-555-1297 routes your call to an Exchange Auto Attendant. Conversely, dialing just the extension (51297) or using Skype for Business to dial the number 1-425-555-1297 extension 51297 will route your call directly to the user. - For Direct Routing phone numbers in GCC High and DoD cloud instances, assigning a base phone number to a user or resource account is not supported if you already have other users or resource accounts assigned phone numbers with the same base phone number and extensions or vice versa. For instance, if you have a user with the assigned phone number +14255551200;ext=123 you can't assign the phone number +14255551200 to another user or resource account or if you have a user or resource account with the assigned phone number +14255551200 you can't assign the phone number +14255551200;ext=123 to another user or resource account. Assigning phone numbers with the same base number but different extensions to users and resource accounts is supported. For instance, you can have a user with +14255551200;ext=123 and another user with +14255551200;ext=124. - Note: Extension should be part of the E164 Number. For example if you have 5 digit Extensions then the last 5 digits of the E164 Number should always match the 5 digit extension tel:+14255551297;ext=51297 + > Applicable: Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Indicates where the user's instant messaging sessions are archived. Allowed values are: + Uninitialized + UseLyncArchivingPolicy + ArchivingToExchange + NoArchiving - String + ExchangeArchivingPolicyOptionsEnum - String + ExchangeArchivingPolicyOptionsEnum None - LineServerURI + HostedVoiceMail - The URI of the remote call control telephone gateway assigned to the user. The LineServerUri is the gateway URI, prefaced by "sip:". For example: sip:rccgateway@litwareinc.com + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + When set to True, enables a user's voice mail calls to be routed to a hosted version of Microsoft Exchange Server. In addition, setting this option to True enables Skype for Business users to directly place a call to another user's voice mail. Note : It is not required to set this parameter for Microsoft Teams users. Using this parameter has been deprecated for Microsoft Teams users in commercial and GCC cloud instances. - String + Boolean - String + Boolean None - - PrivateLine + + Identity - Phone number for the user's private telephone line. A private line is a phone number that is not published in Active Directory Domain Services and, as a result, is not readily available to other people. In addition, this private line bypasses most in-bound call routing rules; for example, a call to a private line will not be forwarded to a person's delegates. Private lines are often used for personal phone calls or for business calls that should be kept separate from other team members. - The private line value should be specified using the E.164 format, and be prefixed by the "tel:" prefix. For example: tel:+14255551297. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Indicates the Identity of the user account to be modified. User Identities can be specified using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer) and 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. + You can use the asterisk (*) wildcard character when using the display name as the user Identity. For example, the Identity "Smith" returns all the users who have a display name that ends with the string value " Smith". - String + UserIdParameter - String + UserIdParameter None - RemoteCallControlTelephonyEnabled + LineServerURI - Indicates whether the user has been enabled for remote call control telephony. When enabled for remote call control, a user can employ Skype for Business to answer phone calls made to his or her desk phone. Phone calls can also be made using Skype for Business. These calls all rely on the standard telephone network, also known as the public switched telephone network (PSTN). To make and receive phone calls over the Internet, the user must be enabled for Enterprise Voice. For details, see the parameter EnterpriseVoiceEnabled. - To be enabled for remote call control, a user must have both a LineUri and a LineServerUri. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + The URI of the remote call control telephone gateway assigned to the user. The LineServerUri is the gateway URI, prefaced by "sip:". For example: sip:rccgateway@litwareinc.com - Boolean + String - Boolean + String None - SipAddress + LineURI - Unique identifier (similar to an email address) that allows the user to communicate using SIP devices such as Skype for Business. The SIP address must use the sip: prefix as well as a valid SIP domain; for example: `-SipAddress sip:kenmyer@litwareinc.com`. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + Phone number to be assigned to the user in Skype for Business Server or Direct Routing phone number to be assigned to a Microsoft Teams user in GCC High and DoD cloud instances only. + The line Uniform Resource Identifier (URI) must be specified using the E.164 format and the "tel:" prefix, for example: tel:+14255551297. Any extension number should be added to the end of the line URI, for example: tel:+14255551297;ext=51297. + It is important to note that Skype for Business Server treats tel:+14255551297 and tel:+14255551297;ext=51297 as two different numbers. If you assign Ken Myer the line URI tel:+14255551297 and later try to assign Pilar Ackerman the line URI tel:+14255551297;ext=51297, that assignment will succeed; the number assigned to Pilar will not be flagged as a duplicate number. This is due to the fact that, depending on your setup, those two numbers could actually be different. For example, in some organizations dialing 1-425-555-1297 routes your call to an Exchange Auto Attendant. Conversely, dialing just the extension (51297) or using Skype for Business to dial the number 1-425-555-1297 extension 51297 will route your call directly to the user. + For Direct Routing phone numbers in GCC High and DoD cloud instances, assigning a base phone number to a user or resource account is not supported if you already have other users or resource accounts assigned phone numbers with the same base phone number and extensions or vice versa. For instance, if you have a user with the assigned phone number +14255551200;ext=123 you can't assign the phone number +14255551200 to another user or resource account or if you have a user or resource account with the assigned phone number +14255551200 you can't assign the phone number +14255551200;ext=123 to another user or resource account. Assigning phone numbers with the same base number but different extensions to users and resource accounts is supported. For instance, you can have a user with +14255551200;ext=123 and another user with +14255551200;ext=124. + Note: Extension should be part of the E164 Number. For example if you have 5 digit Extensions then the last 5 digits of the E164 Number should always match the 5 digit extension tel:+14255551297;ext=51297 String @@ -92299,21 +101183,24 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list}None - PassThru + OnPremLineURI - Enables you to pass a user object through the pipeline that represents the user whose account is being modified. By default, the `Set-CsUser` cmdlet does not pass objects through the pipeline. Note : This parameter is not available for Teams Only tenants from version 3.0.0 onwards. + > Applicable: Microsoft Teams + Specifies the phone number assigned to the user if no number is assigned to that user in the Skype for Business hybrid environment. The line Uniform Resource Identifier (URI) must be specified using the E.164 format and use the "tel:" prefix. For example: tel:+14255551297. Any extension number should be added to the end of the line URI, for example: tel:+14255551297;ext=51297. + Note that Skype for Business treats tel:+14255551297 and tel:+14255551297;ext=51297 as two different numbers. If you assign Ken Myer the line URI tel:+14255551297 and later try to assign Pilar Ackerman the line URI tel:+14255551297;ext=51297, that assignment will succeed. Depending on your setup, those two numbers could actually be different. For example, in some organizations dialing 1-425-555-1297 routes your call to an Exchange Auto Attendant. Conversely, dialing just the extension (51297) or using Skype for Business to dial the number 1-425-555-1297 extension 51297 will route your call directly to the user. Note : Using this parameter for Microsoft Teams users in commercial and GCC cloud instances has been deprecated. Use the new Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberassignment)cmdlet instead. Note : Using this parameter for Microsoft Teams users in GCC High and DoD cloud instances has been deprecated. Use the -LineURI parameter instead. - SwitchParameter + String - SwitchParameter + String - False + None - - WhatIf + + PassThru - Describes what would happen if you executed the command without actually executing the command. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Enables you to pass a user object through the pipeline that represents the user whose account is being modified. By default, the `Set-CsUser` cmdlet does not pass objects through the pipeline. Note : This parameter is not available for Teams Only tenants from version 3.0.0 onwards. SwitchParameter @@ -92322,58 +101209,59 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} False - - Confirm + + PrivateLine - Prompts you for confirmation before executing the command. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Phone number for the user's private telephone line. A private line is a phone number that is not published in Active Directory Domain Services and, as a result, is not readily available to other people. In addition, this private line bypasses most in-bound call routing rules; for example, a call to a private line will not be forwarded to a person's delegates. Private lines are often used for personal phone calls or for business calls that should be kept separate from other team members. + The private line value should be specified using the E.164 format, and be prefixed by the "tel:" prefix. For example: tel:+14255551297. - SwitchParameter + String - SwitchParameter + String - False + None - AcpInfo + RemoteCallControlTelephonyEnabled - Enables you to assign one or more third-party audio conferencing providers to a user. However, it is recommended that you use the `Set-CsUserAcp` cmdlet to assign Audio conferencing providers. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Indicates whether the user has been enabled for remote call control telephony. When enabled for remote call control, a user can employ Skype for Business to answer phone calls made to his or her desk phone. Phone calls can also be made using Skype for Business. These calls all rely on the standard telephone network, also known as the public switched telephone network (PSTN). To make and receive phone calls over the Internet, the user must be enabled for Enterprise Voice. For details, see the parameter EnterpriseVoiceEnabled. + To be enabled for remote call control, a user must have both a LineUri and a LineServerUri. - AcpInfo + Boolean - AcpInfo + Boolean None - ExchangeArchivingPolicy + SipAddress - Indicates where the user's instant messaging sessions are archived. Allowed values are: - Uninitialized - UseLyncArchivingPolicy - ArchivingToExchange - NoArchiving + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Unique identifier (similar to an email address) that allows the user to communicate using SIP devices such as Skype for Business. The SIP address must use the sip: prefix as well as a valid SIP domain; for example: `-SipAddress sip:kenmyer@litwareinc.com`. - ExchangeArchivingPolicyOptionsEnum + String - ExchangeArchivingPolicyOptionsEnum + String None - - OnPremLineURI + + WhatIf - Specifies the phone number assigned to the user if no number is assigned to that user in the Skype for Business hybrid environment. The line Uniform Resource Identifier (URI) must be specified using the E.164 format and use the "tel:" prefix. For example: tel:+14255551297. Any extension number should be added to the end of the line URI, for example: tel:+14255551297;ext=51297. - Note that Skype for Business treats tel:+14255551297 and tel:+14255551297;ext=51297 as two different numbers. If you assign Ken Myer the line URI tel:+14255551297 and later try to assign Pilar Ackerman the line URI tel:+14255551297;ext=51297, that assignment will succeed. Depending on your setup, those two numbers could actually be different. For example, in some organizations dialing 1-425-555-1297 routes your call to an Exchange Auto Attendant. Conversely, dialing just the extension (51297) or using Skype for Business to dial the number 1-425-555-1297 extension 51297 will route your call directly to the user. Note : Using this parameter for Microsoft Teams users in commercial and GCC cloud instances has been deprecated. Use the new Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/teams/set-csphonenumberassignment)cmdlet instead. Note : Using this parameter for Microsoft Teams users in GCC High and DoD cloud instances has been deprecated. Use the -LineURI parameter instead. + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Describes what would happen if you executed the command without actually executing the command. - String + SwitchParameter - String + SwitchParameter - None + False @@ -92427,11 +101315,11 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csuser + https://learn.microsoft.com/powershell/module/microsoftteams/set-csuser Get-CsOnlineUser - https://learn.microsoft.com/powershell/module/teams/get-csonlineuser + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineuser @@ -92463,6 +101351,18 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} None + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + Identity @@ -92527,6 +101427,18 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} None + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + Identity @@ -92622,19 +101534,19 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csusercallingdelegate + https://learn.microsoft.com/powershell/module/microsoftteams/set-csusercallingdelegate Get-CsUserCallingSettings - https://learn.microsoft.com/powershell/module/teams/get-csusercallingsettings + https://learn.microsoft.com/powershell/module/microsoftteams/get-csusercallingsettings New-CsUserCallingDelegate - https://learn.microsoft.com/powershell/module/teams/new-csusercallingdelegate + https://learn.microsoft.com/powershell/module/microsoftteams/new-csusercallingdelegate Remove-CsUserCallingDelegate - https://learn.microsoft.com/powershell/module/teams/remove-csusercallingdelegate + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csusercallingdelegate @@ -92673,9 +101585,139 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list}The members of the Call Group. You need to always specify the full set of members as the parameter value. What you set here will overwrite the current call group membership. A call group can have up to 25 members. - System.Array of System.String + System.Array + + System.Array + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Identity + + The Identity of the user to set call forwarding, simultaneous ringing and call group settings for. Can be specified using the ObjectId or the SIP address. + + System.String + + System.String + + + None + + + + Set-CsUserCallingSettings + + ForwardingTarget + + The forwarding target. Supported types of values are ObjectId's, SIP addresses and phone numbers. For phone numbers we support the following types of formats: E.164 (+12065551234 or +1206555000;ext=1234) or non-E.164 like 1234. + Only used when ForwardingTargetType is SingleTarget. + + System.String + + System.String + + + None + + + ForwardingTargetType + + The forwarding target type. Supported values are Voicemail, SingleTarget, MyDelegates and Group. Voicemail is only supported for Immediate forwarding. + SingleTarget is used when forwarding to another user or PSTN phone number. MyDelegates is used when forwarding to the users's delegates (there needs to be at least 1 delegate). Group is used when forwarding to the user's call group (it needs to have at least 1 member). + + System.String + + System.String + + + None + + + ForwardingType + + The type of forwarding to set. Supported values are Immediate and Simultaneous + + System.String + + System.String + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Identity + + The Identity of the user to set call forwarding, simultaneous ringing and call group settings for. Can be specified using the ObjectId or the SIP address. + + System.String + + System.String + + + None + + + IsForwardingEnabled + + This parameter controls whether forwarding is enabled or not. + + System.Boolean + + System.Boolean + + + None + + + + Set-CsUserCallingSettings + + GroupMembershipDetails + + The group membership details for the specified user. It is an array of ICallGroupMembershipDetails, which is an object containing the identity of an owner of a call group and the notification setting for the specified user for that call group. + This parameter only exists if the specified user is a member of a call group. You can't create it, you can only change it. + You need to always specify the full group membership details as the parameter value. What you set here will over-write the current group membership details. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallGroupMembershipDetails[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallGroupMembershipDetails[] + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] - System.Array of System.String + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] None @@ -92695,48 +101737,11 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} Set-CsUserCallingSettings - - ForwardingTarget - - The forwarding target. Supported types of values are ObjectId's, SIP addresses and phone numbers. For phone numbers we support the following types of formats: E.164 (+12065551234 or +1206555000;ext=1234) or non-E.164 like 1234. - Only used when ForwardingTargetType is SingleTarget. - - System.String - - System.String - - - None - - - ForwardingTargetType - - The forwarding target type. Supported values are Voicemail, SingleTarget, MyDelegates and Group. Voicemail is only supported for Immediate forwarding. - SingleTarget is used when forwarding to another user or PSTN phone number. MyDelegates is used when forwarding to the users's delegates (there needs to be at least 1 delegate). Group is used when forwarding to the user's call group (it needs to have at least 1 member). - - System.String - - System.String - - - None - - - ForwardingType - - The type of forwarding to set. Supported values are Immediate and Simultaneous - - System.String - - System.String - - - None - - Identity + GroupNotificationOverride - The Identity of the user to set call forwarding, simultaneous ringing and call group settings for. Can be specified using the ObjectId or the SIP address. + The group notification override that will be set on the specified user. The supported values are Ring, Mute and Banner. + The initial setting is shown as Null. It means that the group notification set for the user in the call group is used. If you set GroupNotificationOverride to Mute, that setting will override the group notification for the user in the call group. If you set the GroupNotificationOverride to Ring or Banner, the group notification set for the user in the call group will be used. System.String @@ -92745,19 +101750,14 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} None - - - Set-CsUserCallingSettings - - GroupMembershipDetails + + HttpPipelinePrepend - The group membership details for the specified user. It is an array of ICallGroupMembershipDetails, which is an object containing the identity of an owner of a call group and the notification setting for the specified user for that call group. - This parameter only exists if the specified user is a member of a call group. You can't create it, you can only change it. - You need to always specify the full group membership details as the parameter value. What you set here will over-write the current group membership details. + {{ Fill HttpPipelinePrepend Description }} - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallGroupMembershipDetails[] + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallGroupMembershipDetails[] + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] None @@ -92777,34 +101777,18 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} Set-CsUserCallingSettings - - GroupNotificationOverride - - The group notification override that will be set on the specified user. The supported values are Ring, Mute and Banner. - The initial setting is shown as Null. It means that the group notification set for the user in the call group is used. If you set GroupNotificationOverride to Mute, that setting will override the group notification for the user in the call group. If you set the GroupNotificationOverride to Ring or Banner, the group notification set for the user in the call group will be used. - - System.String - - System.String - - - None - - - Identity + + HttpPipelinePrepend - The Identity of the user to set call forwarding, simultaneous ringing and call group settings for. Can be specified using the ObjectId or the SIP address. + {{ Fill HttpPipelinePrepend Description }} - System.String + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] - System.String + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] None - - - Set-CsUserCallingSettings Identity @@ -92832,33 +101816,18 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} Set-CsUserCallingSettings - - Identity + + HttpPipelinePrepend - The Identity of the user to set call forwarding, simultaneous ringing and call group settings for. Can be specified using the ObjectId or the SIP address. + {{ Fill HttpPipelinePrepend Description }} - System.String + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] - System.String + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] None - - IsForwardingEnabled - - This parameter controls whether forwarding is enabled or not. - - System.Boolean - - System.Boolean - - - None - - - - Set-CsUserCallingSettings Identity @@ -92883,13 +101852,10 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} None - - - Set-CsUserCallingSettings - Identity + UnansweredDelay - The Identity of the user to set call forwarding, simultaneous ringing and call group settings for. Can be specified using the ObjectId or the SIP address. + The time the call will ring the user before it is forwarded to the unanswered target. The supported format is hh:mm:ss and the delay range needs to be between 5 and 60 seconds in 5 seconds increments between 5 and 15 seconds, and 10 seconds increments otherwise, i.e. 00:00:05, 00:00:10, 00:00:15, 00:00:20, 00:00:30, 00:00:40, 00:00:50 and 00:01:00. The default value is 20 seconds. System.String @@ -92898,25 +101864,24 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} None - - IsUnansweredEnabled + + UnansweredTarget - This parameter controls whether forwarding for unanswered calls is enabled or not. + The unanswered target. Supported type of values are ObjectId, SIP address and phone number. For phone numbers we support the following types of formats: E.164 (+12065551234 or +1206555000;ext=1234) or non-E.164 like 1234. + Only used when UnansweredTargetType is SingleTarget. - System.Boolean + System.String - System.Boolean + System.String None - - - Set-CsUserCallingSettings - - Identity + + UnansweredTargetType - The Identity of the user to set call forwarding, simultaneous ringing and call group settings for. Can be specified using the ObjectId or the SIP address. + The unanswered target type. Supported values are Voicemail, SingleTarget, MyDelegates and Group. + SingleTarget is used when forwarding the unanswered call to another user or phone number. MyDelegates is used when forwarding the unanswered call to the users's delegates. Group is used when forwarding the unanswered call to the specified user's call group. System.String @@ -92925,23 +101890,25 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} None - - UnansweredDelay + + + Set-CsUserCallingSettings + + HttpPipelinePrepend - The time the call will ring the user before it is forwarded to the unanswered target. The supported format is hh:mm:ss and the delay range needs to be between 10 and 60 seconds in 10 seconds increments, i.e. 00:00:10, 00:00:20, 00:00:30, 00:00:40, 00:00:50 and 00:01:00. The default value is 20 seconds. + {{ Fill HttpPipelinePrepend Description }} - System.String + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] - System.String + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] None - - UnansweredTarget + + Identity - The unanswered target. Supported type of values are ObjectId, SIP address and phone number. For phone numbers we support the following types of formats: E.164 (+12065551234 or +1206555000;ext=1234) or non-E.164 like 1234. - Only used when UnansweredTargetType is SingleTarget. + The Identity of the user to set call forwarding, simultaneous ringing and call group settings for. Can be specified using the ObjectId or the SIP address. System.String @@ -92951,14 +101918,13 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list}None - UnansweredTargetType + IsUnansweredEnabled - The unanswered target type. Supported values are Voicemail, SingleTarget, MyDelegates and Group. - SingleTarget is used when forwarding the unanswered call to another user or phone number. MyDelegates is used when forwarding the unanswered call to the users's delegates. Group is used when forwarding the unanswered call to the specified user's call group. + This parameter controls whether forwarding for unanswered calls is enabled or not. - System.String + System.Boolean - System.String + System.Boolean None @@ -92985,9 +101951,9 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list}The members of the Call Group. You need to always specify the full set of members as the parameter value. What you set here will overwrite the current call group membership. A call group can have up to 25 members. - System.Array of System.String + System.Array - System.Array of System.String + System.Array None @@ -93057,6 +102023,18 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} None + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + Identity @@ -93096,7 +102074,7 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} UnansweredDelay - The time the call will ring the user before it is forwarded to the unanswered target. The supported format is hh:mm:ss and the delay range needs to be between 10 and 60 seconds in 10 seconds increments, i.e. 00:00:10, 00:00:20, 00:00:30, 00:00:40, 00:00:50 and 00:01:00. The default value is 20 seconds. + The time the call will ring the user before it is forwarded to the unanswered target. The supported format is hh:mm:ss and the delay range needs to be between 5 and 60 seconds in 5 seconds increments between 5 and 15 seconds, and 10 seconds increments otherwise, i.e. 00:00:05, 00:00:10, 00:00:15, 00:00:20, 00:00:30, 00:00:40, 00:00:50 and 00:01:00. The default value is 20 seconds. System.String @@ -93118,7 +102096,7 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} None - + UnansweredTargetType The unanswered target type. Supported values are Voicemail, SingleTarget, MyDelegates and Group. @@ -93261,23 +102239,23 @@ Set-CsUserCallingSettings -Identity user6@contoso.com -IsUnansweredEnabled $true Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csusercallingsettings + https://learn.microsoft.com/powershell/module/microsoftteams/set-csusercallingsettings Get-CsUserCallingSettings - https://learn.microsoft.com/powershell/module/teams/get-csusercallingsettings + https://learn.microsoft.com/powershell/module/microsoftteams/get-csusercallingsettings New-CsUserCallingDelegate - https://learn.microsoft.com/powershell/module/teams/new-csusercallingdelegate + https://learn.microsoft.com/powershell/module/microsoftteams/new-csusercallingdelegate Set-CsUserCallingDelegate - https://learn.microsoft.com/powershell/module/teams/set-csusercallingdelegate + https://learn.microsoft.com/powershell/module/microsoftteams/set-csusercallingdelegate Remove-CsUserCallingDelegate - https://learn.microsoft.com/powershell/module/teams/remove-csusercallingdelegate + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csusercallingdelegate @@ -93671,7 +102649,7 @@ Set-CsUserCallingSettings -Identity user6@contoso.com -IsUnansweredEnabled $true Online Version: - https://learn.microsoft.com/powershell/module/teams/set-csvideointeropserviceprovider + https://learn.microsoft.com/powershell/module/microsoftteams/set-csvideointeropserviceprovider @@ -93694,6 +102672,7 @@ Set-CsUserCallingSettings -Identity user6@contoso.com -IsUnansweredEnabled $true Identity + > Applicable: Microsoft Teams Specifies the Identity of the user account to be modified. A user identity can be specified by using one of four formats: 1. The user's SIP address 2. The user's user principal name (UPN) 3. The user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer) 4. The user's Active Directory display name (for example, Ken Myer). You can also reference a user account by using the user's Active Directory distinguished name. UserIdParameter @@ -93706,6 +102685,7 @@ Set-CsUserCallingSettings -Identity user6@contoso.com -IsUnansweredEnabled $true SourceMeetingType + > Applicable: Microsoft Teams The possible values are: All: indicates that both Skype for Business meetings and Teams meetings should be updated. This is the default value *. SfB: * indicates that only Skype for Business meetings (whether on-premises or online) should be updated. Teams: * indicates that only Teams meetings should be updated. Object @@ -93718,6 +102698,7 @@ Set-CsUserCallingSettings -Identity user6@contoso.com -IsUnansweredEnabled $true TargetMeetingType + > Applicable: Microsoft Teams The possible values are: Current: specifies that Skype for Business meetings remain Skype for Business meetings and Teams meetings remain Teams meetings. However audio conferencing coordinates might be changed, and any on-premises Skype for Business meetings would be migrated to Skype for Business Online. This is the default value *. Teams: * specifies that any existing meeting must be migrated to Teams, regardless of whether the meeting is hosted in Skype for Business online or on-premises, and regardless of whether any audio conferencing updates are required. Object @@ -93733,6 +102714,7 @@ Set-CsUserCallingSettings -Identity user6@contoso.com -IsUnansweredEnabled $true Identity + > Applicable: Microsoft Teams Specifies the Identity of the user account to be modified. A user identity can be specified by using one of four formats: 1. The user's SIP address 2. The user's user principal name (UPN) 3. The user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer) 4. The user's Active Directory display name (for example, Ken Myer). You can also reference a user account by using the user's Active Directory distinguished name. UserIdParameter @@ -93745,6 +102727,7 @@ Set-CsUserCallingSettings -Identity user6@contoso.com -IsUnansweredEnabled $true SourceMeetingType + > Applicable: Microsoft Teams The possible values are: All: indicates that both Skype for Business meetings and Teams meetings should be updated. This is the default value *. SfB: * indicates that only Skype for Business meetings (whether on-premises or online) should be updated. Teams: * indicates that only Teams meetings should be updated. Object @@ -93757,6 +102740,7 @@ Set-CsUserCallingSettings -Identity user6@contoso.com -IsUnansweredEnabled $true TargetMeetingType + > Applicable: Microsoft Teams The possible values are: Current: specifies that Skype for Business meetings remain Skype for Business meetings and Teams meetings remain Teams meetings. However audio conferencing coordinates might be changed, and any on-premises Skype for Business meetings would be migrated to Skype for Business Online. This is the default value *. Teams: * specifies that any existing meeting must be migrated to Teams, regardless of whether the meeting is hosted in Skype for Business online or on-premises, and regardless of whether any audio conferencing updates are required. Object @@ -93786,7 +102770,7 @@ Set-CsUserCallingSettings -Identity user6@contoso.com -IsUnansweredEnabled $true Online Version: - https://learn.microsoft.com/powershell/module/teams/start-csexmeetingmigration + https://learn.microsoft.com/powershell/module/microsoftteams/start-csexmeetingmigration Using the Meeting Migration Service (MMS) @@ -93794,15 +102778,15 @@ Set-CsUserCallingSettings -Identity user6@contoso.com -IsUnansweredEnabled $true Get-CsMeetingMigrationStatus - https://learn.microsoft.com/powershell/module/teams/get-csmeetingmigrationstatus + https://learn.microsoft.com/powershell/module/microsoftteams/get-csmeetingmigrationstatus Set-CsTenantMigrationConfiguration - https://learn.microsoft.com/powershell/module/teams/set-cstenantmigrationconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantmigrationconfiguration Get-CsTenantMigrationConfiguration - https://learn.microsoft.com/powershell/module/teams/get-cstenantmigrationconfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantmigrationconfiguration @@ -93812,31 +102796,31 @@ Set-CsUserCallingSettings -Identity user6@contoso.com -IsUnansweredEnabled $true Sync CsOnlineApplicationInstance - Use the Sync-CsOnlineApplicationInstance cmdlet to sync the application instance from Microsoft Entra ID into Agent Provisioning Service. This is needed because the mapping between application instance and application needs to be stored in Agent Provisioning Service. If an application ID was provided at the creation of the application instance, you need not run this cmdlet. + Sync the application instance from Microsoft Entra ID into Agent Provisioning Service. - Use the Sync-CsOnlineApplicationInstance cmdlet to sync application instances from Microsoft Entra ID into Agent Provisioning Service. + Use the Sync-CsOnlineApplicationInstance cmdlet to sync the application instance from Microsoft Entra ID into Agent Provisioning Service. This is needed because the mapping between application instance and application needs to be stored in Agent Provisioning Service. If an application ID was provided at the creation of the application instance, you need not run this cmdlet. Sync-CsOnlineApplicationInstance - CallbackUri + AcsResourceId - This parameter is reserved for internal Microsoft use. + The ACS Resource ID. The unique identifier assigned to an instance of Azure Communication Services within the Azure cloud infrastructure. - String + System.Guid - String + System.Guid None - ObjectId + ApplicationId - The application instance ID. + The application ID. The Microsoft application Auto Attendant has the ApplicationId ce933385-9390-45d1-9512-c8d228074e07 and the Microsoft application Call Queue has the ApplicationId 11cd3e2e-fccb-42ad-ad00-878b93575e07. Third-party applications available in a tenant will use other ApplicationId's. System.Guid @@ -93846,28 +102830,27 @@ Set-CsUserCallingSettings -Identity user6@contoso.com -IsUnansweredEnabled $true None - ApplicationId + CallbackUri - The application ID. The Microsoft application Auto Attendant has the ApplicationId ce933385-9390-45d1-9512-c8d228074e07 and the Microsoft application Call Queue has the ApplicationId 11cd3e2e-fccb-42ad-ad00-878b93575e07. Third-party applications available in a tenant will use other ApplicationId's. + This parameter is reserved for internal Microsoft use. - System.Guid + String - System.Guid + String None - - AcsResourceId + + Confirm - The ACS Resource ID. The unique identifier assigned to an instance of Azure Communication Services within the Azure cloud infrastructure. + Prompts you for confirmation before running the cmdlet. - System.Guid - System.Guid + SwitchParameter - None + False Force @@ -93880,21 +102863,22 @@ Set-CsUserCallingSettings -Identity user6@contoso.com -IsUnansweredEnabled $true False - - WhatIf + + ObjectId - Shows what would happen if the cmdlet runs. The cmdlet is not run. + The application instance ID. + System.Guid - SwitchParameter + System.Guid - False + None - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -93906,21 +102890,21 @@ Set-CsUserCallingSettings -Identity user6@contoso.com -IsUnansweredEnabled $true - CallbackUri + AcsResourceId - This parameter is reserved for internal Microsoft use. + The ACS Resource ID. The unique identifier assigned to an instance of Azure Communication Services within the Azure cloud infrastructure. - String + System.Guid - String + System.Guid None - ObjectId + ApplicationId - The application instance ID. + The application ID. The Microsoft application Auto Attendant has the ApplicationId ce933385-9390-45d1-9512-c8d228074e07 and the Microsoft application Call Queue has the ApplicationId 11cd3e2e-fccb-42ad-ad00-878b93575e07. Third-party applications available in a tenant will use other ApplicationId's. System.Guid @@ -93930,28 +102914,28 @@ Set-CsUserCallingSettings -Identity user6@contoso.com -IsUnansweredEnabled $true None - ApplicationId + CallbackUri - The application ID. The Microsoft application Auto Attendant has the ApplicationId ce933385-9390-45d1-9512-c8d228074e07 and the Microsoft application Call Queue has the ApplicationId 11cd3e2e-fccb-42ad-ad00-878b93575e07. Third-party applications available in a tenant will use other ApplicationId's. + This parameter is reserved for internal Microsoft use. - System.Guid + String - System.Guid + String None - - AcsResourceId + + Confirm - The ACS Resource ID. The unique identifier assigned to an instance of Azure Communication Services within the Azure cloud infrastructure. + Prompts you for confirmation before running the cmdlet. - System.Guid + SwitchParameter - System.Guid + SwitchParameter - None + False Force @@ -93965,22 +102949,22 @@ Set-CsUserCallingSettings -Identity user6@contoso.com -IsUnansweredEnabled $true False - - WhatIf + + ObjectId - Shows what would happen if the cmdlet runs. The cmdlet is not run. + The application instance ID. - SwitchParameter + System.Guid - SwitchParameter + System.Guid - False + None - - Confirm + + WhatIf - Prompts you for confirmation before running the cmdlet. + Shows what would happen if the cmdlet runs. The cmdlet is not run. SwitchParameter @@ -94017,23 +103001,23 @@ Set-CsUserCallingSettings -Identity user6@contoso.com -IsUnansweredEnabled $true Online Version: - https://learn.microsoft.com/powershell/module/teams/sync-csonlineapplicationinstance + https://learn.microsoft.com/powershell/module/microsoftteams/sync-csonlineapplicationinstance Set-CsOnlineApplicationInstance - https://learn.microsoft.com/powershell/module/teams/set-csonlineapplicationinstance + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineapplicationinstance New-CsOnlineApplicationInstance - https://learn.microsoft.com/powershell/module/teams/new-csonlineapplicationinstance + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineapplicationinstance Find-CsOnlineApplicationInstance - https://learn.microsoft.com/powershell/module/teams/find-csonlineapplicationinstance + https://learn.microsoft.com/powershell/module/microsoftteams/find-csonlineapplicationinstance Get-CsOnlineApplicationInstance - https://learn.microsoft.com/powershell/module/teams/get-csonlineapplicationinstance + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineapplicationinstance @@ -94052,44 +103036,48 @@ Set-CsUserCallingSettings -Identity user6@contoso.com -IsUnansweredEnabled $true Test-CsEffectiveTenantDialPlan - - DialedNumber + + Confirm - The DialedNumber parameter is the phone number to be normalized with the effective tenant dial plan. + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing, and requires confirmation to proceed. - PhoneNumber - PhoneNumber + SwitchParameter - None + False - Identity + DialedNumber - Indicates the identity of the user account to be tested against. The user's SIP address, the user's user principal name (UPN) or the user's display name can be specified. + > Applicable: Microsoft Teams + The DialedNumber parameter is the phone number to be normalized with the effective tenant dial plan. - UserIdParameter + PhoneNumber - UserIdParameter + PhoneNumber None - - Confirm + + EffectiveTenantDialPlanName - The Confirm switch causes the command to pause processing, and requires confirmation to proceed. + > Applicable: Microsoft Teams + The EffectiveTenantDialPlanName parameter is the effective tenant dial plan name in the form of TenantId_TenantDialPlan_GlobalVoiceDialPlan. + String - SwitchParameter + String - False + None Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. @@ -94098,33 +103086,36 @@ Set-CsUserCallingSettings -Identity user6@contoso.com -IsUnansweredEnabled $true False - - WhatIf + + Identity - The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + > Applicable: Microsoft Teams + Indicates the identity of the user account to be tested against. The user's SIP address, the user's user principal name (UPN) or the user's display name can be specified. + UserIdParameter - SwitchParameter + UserIdParameter - False + None - EffectiveTenantDialPlanName + TenantScopeOnly - The EffectiveTenantDialPlanName parameter is the effective tenant dial plan name in the form of TenantId_TenantDialPlan_GlobalVoiceDialPlan. + > Applicable: Microsoft Teams + Runs the test only against Tenant-level dial plans (does not take into account Service Level Dial Plans). - String - String + SwitchParameter - None + False - - TenantScopeOnly + + WhatIf - Runs the test only against Tenant-level dial plans (does not take into account Service Level Dial Plans). + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. SwitchParameter @@ -94135,45 +103126,49 @@ Set-CsUserCallingSettings -Identity user6@contoso.com -IsUnansweredEnabled $true - - DialedNumber + + Confirm - The DialedNumber parameter is the phone number to be normalized with the effective tenant dial plan. + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing, and requires confirmation to proceed. - PhoneNumber + SwitchParameter - PhoneNumber + SwitchParameter - None + False - Identity + DialedNumber - Indicates the identity of the user account to be tested against. The user's SIP address, the user's user principal name (UPN) or the user's display name can be specified. + > Applicable: Microsoft Teams + The DialedNumber parameter is the phone number to be normalized with the effective tenant dial plan. - UserIdParameter + PhoneNumber - UserIdParameter + PhoneNumber None - - Confirm + + EffectiveTenantDialPlanName - The Confirm switch causes the command to pause processing, and requires confirmation to proceed. + > Applicable: Microsoft Teams + The EffectiveTenantDialPlanName parameter is the effective tenant dial plan name in the form of TenantId_TenantDialPlan_GlobalVoiceDialPlan. - SwitchParameter + String - SwitchParameter + String - False + None Force + > Applicable: Microsoft Teams The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. SwitchParameter @@ -94183,34 +103178,37 @@ Set-CsUserCallingSettings -Identity user6@contoso.com -IsUnansweredEnabled $true False - - WhatIf + + Identity - The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + > Applicable: Microsoft Teams + Indicates the identity of the user account to be tested against. The user's SIP address, the user's user principal name (UPN) or the user's display name can be specified. - SwitchParameter + UserIdParameter - SwitchParameter + UserIdParameter - False + None - EffectiveTenantDialPlanName + TenantScopeOnly - The EffectiveTenantDialPlanName parameter is the effective tenant dial plan name in the form of TenantId_TenantDialPlan_GlobalVoiceDialPlan. + > Applicable: Microsoft Teams + Runs the test only against Tenant-level dial plans (does not take into account Service Level Dial Plans). - String + SwitchParameter - String + SwitchParameter - None + False - - TenantScopeOnly + + WhatIf - Runs the test only against Tenant-level dial plans (does not take into account Service Level Dial Plans). + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. SwitchParameter @@ -94246,7 +103244,7 @@ Set-CsUserCallingSettings -Identity user6@contoso.com -IsUnansweredEnabled $true Online Version: - https://learn.microsoft.com/powershell/module/teams/test-cseffectivetenantdialplan + https://learn.microsoft.com/powershell/module/microsoftteams/test-cseffectivetenantdialplan @@ -94408,7 +103406,7 @@ Set-CsUserCallingSettings -Identity user6@contoso.com -IsUnansweredEnabled $true Online Version: - https://learn.microsoft.com/powershell/module/teams/test-csinboundblockednumberpattern + https://learn.microsoft.com/powershell/module/microsoftteams/test-csinboundblockednumberpattern @@ -94430,6 +103428,7 @@ Set-CsUserCallingSettings -Identity user6@contoso.com -IsUnansweredEnabled $true ConnectorId + > Applicable: Microsoft Teams The ID of the shifts connector. String @@ -94440,25 +103439,26 @@ Set-CsUserCallingSettings -Identity user6@contoso.com -IsUnansweredEnabled $true None - Name + ConnectorSpecificSettings - The connector's instance name. + The connector specific settings. - String + IConnectorInstanceRequestConnectorSpecificSettings - String + IConnectorInstanceRequestConnectorSpecificSettings None - ConnectorSpecificSettings + Name - The connector specific settings. + > Applicable: Microsoft Teams + The connector's instance name. - IConnectorInstanceRequestConnectorSpecificSettings + String - IConnectorInstanceRequestConnectorSpecificSettings + String None @@ -94469,6 +103469,7 @@ Set-CsUserCallingSettings -Identity user6@contoso.com -IsUnansweredEnabled $true ConnectorId + > Applicable: Microsoft Teams The ID of the shifts connector. String @@ -94479,25 +103480,26 @@ Set-CsUserCallingSettings -Identity user6@contoso.com -IsUnansweredEnabled $true None - Name + ConnectorSpecificSettings - The connector's instance name. + The connector specific settings. - String + IConnectorInstanceRequestConnectorSpecificSettings - String + IConnectorInstanceRequestConnectorSpecificSettings None - ConnectorSpecificSettings + Name - The connector specific settings. + > Applicable: Microsoft Teams + The connector's instance name. - IConnectorInstanceRequestConnectorSpecificSettings + String - IConnectorInstanceRequestConnectorSpecificSettings + String None @@ -94535,15 +103537,15 @@ PS C:\> Test-CsTeamsShiftsConnectionValidate -ConnectorId "6A51B888-FF44-4FEA Online Version: - https://learn.microsoft.com/powershell/module/teams/test-csteamsshiftsconnectionvalidate + https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsshiftsconnectionvalidate New-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/teams/new-csteamsshiftsconnectioninstance + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnectioninstance Set-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/teams/set-csteamsshiftsconnectioninstance + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnectioninstance @@ -94562,6 +103564,41 @@ PS C:\> Test-CsTeamsShiftsConnectionValidate -ConnectorId "6A51B888-FF44-4FEA Test-CsTeamsTranslationRule + + Break + + {{ Fill Break Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + HttpPipelineAppend + + {{ Fill HttpPipelineAppend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + PhoneNumber @@ -94574,9 +103611,80 @@ PS C:\> Test-CsTeamsShiftsConnectionValidate -ConnectorId "6A51B888-FF44-4FEA None + + Proxy + + {{ Fill Proxy Description }} + + System.Uri + + System.Uri + + + None + + + ProxyCredential + + {{ Fill ProxyCredential Description }} + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + ProxyUseDefaultCredentials + + {{ Fill ProxyUseDefaultCredentials Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + Break + + {{ Fill Break Description }} + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + HttpPipelineAppend + + {{ Fill HttpPipelineAppend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + PhoneNumber @@ -94589,6 +103697,42 @@ PS C:\> Test-CsTeamsShiftsConnectionValidate -ConnectorId "6A51B888-FF44-4FEA None + + Proxy + + {{ Fill Proxy Description }} + + System.Uri + + System.Uri + + + None + + + ProxyCredential + + {{ Fill ProxyCredential Description }} + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + ProxyUseDefaultCredentials + + {{ Fill ProxyUseDefaultCredentials Description }} + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + @@ -94634,23 +103778,23 @@ rule1 ^1234$ 4321 4321 Online Version: - https://learn.microsoft.com/powershell/module/teams/test-csteamstranslationrule + https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamstranslationrule New-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/teams/new-csteamstranslationrule + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamstranslationrule Get-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/teams/get-csteamstranslationrule + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamstranslationrule Set-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/teams/set-csteamstranslationrule + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstranslationrule Remove-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/teams/remove-csteamstranslationrule + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamstranslationrule @@ -94674,9 +103818,9 @@ rule1 ^1234$ 4321 4321 The phone number to be tested. - String + System.String - String + System.String None @@ -94689,9 +103833,9 @@ rule1 ^1234$ 4321 4321 The phone number to be tested. - String + System.String - String + System.String None @@ -94734,23 +103878,23 @@ rule1 ^1234$ 4321 4321 Online Version: - https://learn.microsoft.com/powershell/module/teams/test-csteamsunassignednumbertreatment + https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsunassignednumbertreatment New-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/teams/new-csteamsunassignednumbertreatment + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsunassignednumbertreatment Get-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/teams/get-csteamsunassignednumbertreatment + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsunassignednumbertreatment Set-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/teams/set-csteamsunassignednumbertreatment + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsunassignednumbertreatment Remove-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/teams/remove-csteamsunassignednumbertreatment + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsunassignednumbertreatment @@ -94760,10 +103904,11 @@ rule1 ^1234$ 4321 4321 Test CsVoiceNormalizationRule - Tests a telephone number against a voice normalization rule and returns the number after the normalization rule has been applied. Voice normalization rules are typically used to convert a telephone dialing requirement (for example, you must dial 9 to access an outside line) to the E.164 phone number format. This cmdlet was introduced in Lync Server 2010. + Tests a telephone number against a voice normalization rule and returns the number after the normalization rule has been applied. + This cmdlet was introduced in Lync Server 2010. This cmdlet allows you to see the results of applying a voice normalization rule to a given telephone number. Voice normalization rules are a required part of phone authorization and call routing. They define the requirements for converting--or translating-- numbers from a format typically entered by users to a standard (E.164) format. Use this cmdlet to troubleshoot dialing issues or to verify that rules will work as expected against given numbers. @@ -94772,6 +103917,7 @@ rule1 ^1234$ 4321 4321 DialedNumber + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams The phone number against which you want to test the normalization rule specified in the NormalizationRule parameter. Full Data Type: Microsoft.Rtc.Management.Voice.PhoneNumber @@ -94785,6 +103931,7 @@ rule1 ^1234$ 4321 4321 NormalizationRule + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams An object containing a reference to the normalization rule against which you want to test the number specified in the DialedNumber parameter. For Lync and Skype for Business Server, you can retrieve voice normalization rules by calling the `Get-CsVoiceNormalizationRule` cmdlet. For Microsoft Teams, you can retrieve voice normalization rules by calling the `Get-CsTenantDialPlan` cmdlet. @@ -94801,6 +103948,7 @@ rule1 ^1234$ 4321 4321 DialedNumber + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams The phone number against which you want to test the normalization rule specified in the NormalizationRule parameter. Full Data Type: Microsoft.Rtc.Management.Voice.PhoneNumber @@ -94814,6 +103962,7 @@ rule1 ^1234$ 4321 4321 NormalizationRule + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams An object containing a reference to the normalization rule against which you want to test the number specified in the DialedNumber parameter. For Lync and Skype for Business Server, you can retrieve voice normalization rules by calling the `Get-CsVoiceNormalizationRule` cmdlet. For Microsoft Teams, you can retrieve voice normalization rules by calling the `Get-CsTenantDialPlan` cmdlet. @@ -94897,15 +104046,15 @@ TranslatedNumber Online Version: - https://learn.microsoft.com/powershell/module/teams/test-csvoicenormalizationrule + https://learn.microsoft.com/powershell/module/microsoftteams/test-csvoicenormalizationrule New-CsVoiceNormalizationRule - https://learn.microsoft.com/powershell/module/teams/new-csvoicenormalizationrule + https://learn.microsoft.com/powershell/module/microsoftteams/new-csvoicenormalizationrule Get-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/teams/get-cstenantdialplan + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantdialplan @@ -94927,6 +104076,7 @@ TranslatedNumber Identity + > Applicable: Microsoft Teams PARAMVALUE: String String @@ -94939,6 +104089,7 @@ TranslatedNumber Instance + > Applicable: Microsoft Teams PARAMVALUE: ConferencingServiceNumber ConferencingServiceNumber @@ -94951,6 +104102,7 @@ TranslatedNumber BridgeId + > Applicable: Microsoft Teams PARAMVALUE: Guid Guid @@ -94963,6 +104115,7 @@ TranslatedNumber BridgeName + > Applicable: Microsoft Teams PARAMVALUE: String String @@ -94975,6 +104128,7 @@ TranslatedNumber DomainController + > Applicable: Microsoft Teams PARAMVALUE: Fqdn Fqdn @@ -94987,6 +104141,7 @@ TranslatedNumber Force + > Applicable: Microsoft Teams PARAMVALUE: SwitchParameter @@ -94998,6 +104153,7 @@ TranslatedNumber RemoveDefaultServiceNumber + > Applicable: Microsoft Teams PARAMVALUE: SwitchParameter @@ -95009,6 +104165,7 @@ TranslatedNumber Tenant + > Applicable: Microsoft Teams PARAMVALUE: Guid Guid @@ -95021,6 +104178,7 @@ TranslatedNumber TenantDomain + > Applicable: Microsoft Teams PARAMVALUE: String String @@ -95033,33 +104191,10 @@ TranslatedNumber - - Identity - - PARAMVALUE: String - - String - - String - - - None - - - Instance - - PARAMVALUE: ConferencingServiceNumber - - ConferencingServiceNumber - - ConferencingServiceNumber - - - None - BridgeId + > Applicable: Microsoft Teams PARAMVALUE: Guid Guid @@ -95072,6 +104207,7 @@ TranslatedNumber BridgeName + > Applicable: Microsoft Teams PARAMVALUE: String String @@ -95084,6 +104220,7 @@ TranslatedNumber DomainController + > Applicable: Microsoft Teams PARAMVALUE: Fqdn Fqdn @@ -95096,6 +104233,7 @@ TranslatedNumber Force + > Applicable: Microsoft Teams PARAMVALUE: SwitchParameter SwitchParameter @@ -95105,9 +104243,36 @@ TranslatedNumber False + + Identity + + > Applicable: Microsoft Teams + PARAMVALUE: String + + String + + String + + + None + + + Instance + + > Applicable: Microsoft Teams + PARAMVALUE: ConferencingServiceNumber + + ConferencingServiceNumber + + ConferencingServiceNumber + + + None + RemoveDefaultServiceNumber + > Applicable: Microsoft Teams PARAMVALUE: SwitchParameter SwitchParameter @@ -95120,6 +104285,7 @@ TranslatedNumber Tenant + > Applicable: Microsoft Teams PARAMVALUE: Guid Guid @@ -95132,6 +104298,7 @@ TranslatedNumber TenantDomain + > Applicable: Microsoft Teams PARAMVALUE: String String @@ -95161,7 +104328,7 @@ TranslatedNumber Online Version: - https://learn.microsoft.com/powershell/module/teams/unregister-csonlinedialinconferencingservicenumber + https://learn.microsoft.com/powershell/module/microsoftteams/unregister-csonlinedialinconferencingservicenumber @@ -95176,7 +104343,7 @@ TranslatedNumber This cmdlet provides a way to update the resources associated with an auto attendant configured for use in your organization. Currently, it repairs the Dial-by-Name recognition status of an auto attendant. - Note: This cmdlet only triggers the refresh of auto attendant resources. It does not wait until all the resources have been refreshed. The last completed status of auto attendant can be retrieved using `Get-CsAutoAttendantStatus` (https://learn.microsoft.com/powershell/module/teams/get-csautoattendantstatus)cmdlet. + Note: This cmdlet only triggers the refresh of auto attendant resources. It does not wait until all the resources have been refreshed. The last completed status of auto attendant can be retrieved using `Get-CsAutoAttendantStatus` (https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantstatus)cmdlet. @@ -95184,6 +104351,7 @@ TranslatedNumber Identity + > Applicable: Microsoft Teams The identity for the AA whose resources are to be updated. System.String @@ -95196,7 +104364,8 @@ TranslatedNumber Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -95211,6 +104380,7 @@ TranslatedNumber Identity + > Applicable: Microsoft Teams The identity for the AA whose resources are to be updated. System.String @@ -95223,7 +104393,8 @@ TranslatedNumber Tenant - + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} System.Guid @@ -95270,23 +104441,23 @@ TranslatedNumber Online Version: - https://learn.microsoft.com/powershell/module/teams/update-csautoattendant + https://learn.microsoft.com/powershell/module/microsoftteams/update-csautoattendant Get-CsAutoAttendant - https://learn.microsoft.com/powershell/module/teams/get-csautoattendant + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendant Get-CsAutoAttendantStatus - https://learn.microsoft.com/powershell/module/teams/get-csautoattendantstatus + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantstatus Set-CsAutoAttendant - https://learn.microsoft.com/powershell/module/teams/set-csautoattendant + https://learn.microsoft.com/powershell/module/microsoftteams/set-csautoattendant Remove-CsAutoAttendant - https://learn.microsoft.com/powershell/module/teams/remove-csautoattendant + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csautoattendant @@ -95309,6 +104480,7 @@ TranslatedNumber Identity + > Applicable: Microsoft Teams The name of the custom package. String @@ -95321,7 +104493,8 @@ TranslatedNumber PolicyList - A list of one or more policies to be included in the updated package. To specify the policy list, follow this format: "<PolicyType>, <PolicyName>". Delimiters of ' ', '.', ':', '\t' are also acceptable. Supported policy types are listed here (https://learn.microsoft.com/MicrosoftTeams/manage-policy-packages#what-is-a-policy-package). To get the list of available policy names on your tenant, use the skypeforbusiness module and refer to cmdlets such as [Get-CsTeamsMeetingPolicy](https://learn.microsoft.com/powershell/module/teams/get-csteamsmeetingpolicy) and [Get-CsTeamsMessagingPolicy](https://learn.microsoft.com/powershell/module/teams/get-csteamsmessagingpolicy). + > Applicable: Microsoft Teams + A list of one or more policies to be included in the updated package. To specify the policy list, follow this format: "<PolicyType>, <PolicyName>". Delimiters of ' ', '.', ':', '\t' are also acceptable. Supported policy types are listed here (https://learn.microsoft.com/MicrosoftTeams/manage-policy-packages#what-is-a-policy-package). To get the list of available policy names on your tenant, use the skypeforbusiness module and refer to cmdlets such as [Get-CsTeamsMeetingPolicy](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingpolicy) and [Get-CsTeamsMessagingPolicy](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmessagingpolicy). String[] @@ -95333,6 +104506,7 @@ TranslatedNumber Description + > Applicable: Microsoft Teams The description of the custom package. String @@ -95345,10 +104519,11 @@ TranslatedNumber - - Identity + + Description - The name of the custom package. + > Applicable: Microsoft Teams + The description of the custom package. String @@ -95357,26 +104532,28 @@ TranslatedNumber None - - PolicyList + + Identity - A list of one or more policies to be included in the updated package. To specify the policy list, follow this format: "<PolicyType>, <PolicyName>". Delimiters of ' ', '.', ':', '\t' are also acceptable. Supported policy types are listed here (https://learn.microsoft.com/MicrosoftTeams/manage-policy-packages#what-is-a-policy-package). To get the list of available policy names on your tenant, use the skypeforbusiness module and refer to cmdlets such as [Get-CsTeamsMeetingPolicy](https://learn.microsoft.com/powershell/module/teams/get-csteamsmeetingpolicy) and [Get-CsTeamsMessagingPolicy](https://learn.microsoft.com/powershell/module/teams/get-csteamsmessagingpolicy). + > Applicable: Microsoft Teams + The name of the custom package. - String[] + String - String[] + String None - - Description + + PolicyList - The description of the custom package. + > Applicable: Microsoft Teams + A list of one or more policies to be included in the updated package. To specify the policy list, follow this format: "<PolicyType>, <PolicyName>". Delimiters of ' ', '.', ':', '\t' are also acceptable. Supported policy types are listed here (https://learn.microsoft.com/MicrosoftTeams/manage-policy-packages#what-is-a-policy-package). To get the list of available policy names on your tenant, use the skypeforbusiness module and refer to cmdlets such as [Get-CsTeamsMeetingPolicy](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingpolicy) and [Get-CsTeamsMessagingPolicy](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmessagingpolicy). - String + String[] - String + String[] None @@ -95408,19 +104585,127 @@ TranslatedNumber Online Version: - https://learn.microsoft.com/powershell/module/teams/update-cscustompolicypackage + https://learn.microsoft.com/powershell/module/microsoftteams/update-cscustompolicypackage Get-CsPolicyPackage - https://learn.microsoft.com/powershell/module/teams/get-cspolicypackage + https://learn.microsoft.com/powershell/module/microsoftteams/get-cspolicypackage New-CsCustomPolicyPackage - https://learn.microsoft.com/powershell/module/teams/new-cscustompolicypackage + https://learn.microsoft.com/powershell/module/microsoftteams/new-cscustompolicypackage Remove-CsCustomPolicyPackage - https://learn.microsoft.com/powershell/module/teams/remove-cscustompolicypackage + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cscustompolicypackage + + + + + + Update-CsPhoneNumberTag + Update + CsPhoneNumberTag + + This cmdlet allows admin to update existing telephone number tags. + + + + This cmdlet can be used to update existing tags for telephone numbers. Tags can be up to 50 characters long, including spaces, and can contain multiple words. They are not case-sensitive. An admin can get a list of all existing tags using Get-CsPhoneNumberTag (https://learn.microsoft.com/powershell/module/microsoftteams/get-csphonenumbertag). + + + + Update-CsPhoneNumberTag + + NewTag + + This is the new tag. A tag can be maximum 50 characters long. + + String + + String + + + None + + + Tag + + This is the old tag which the admin wants to update. + + String + + String + + + None + + + + + + NewTag + + This is the new tag. A tag can be maximum 50 characters long. + + String + + String + + + None + + + Tag + + This is the old tag which the admin wants to update. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Boolean + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Update-CsPhoneNumberTag -Tag "Redmond" -NewTag "Redmond HQ" + + This example shows how to update an existing tag "Redmond" to "Redmond HQ" + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/update-csphonenumbertag @@ -95439,6 +104724,18 @@ TranslatedNumber Update-CsTeamsShiftsConnection + + Authorization + + Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. + + String + + String + + + None + Body @@ -95473,6 +104770,18 @@ TranslatedNumber False + + ConnectionId + + The WFM connection ID for the instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). + + String + + String + + + None + HttpPipelineAppend @@ -95555,6 +104864,9 @@ TranslatedNumber False + + + Update-CsTeamsShiftsConnection Authorization @@ -95567,21 +104879,6 @@ TranslatedNumber None - - ConnectionId - - The WFM connection ID for the instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnection). - - String - - String - - - None - - - - Update-CsTeamsShiftsConnection Body @@ -95722,6 +105019,9 @@ TranslatedNumber False + + + Update-CsTeamsShiftsConnection Authorization @@ -95734,9 +105034,6 @@ TranslatedNumber None - - - Update-CsTeamsShiftsConnection Break @@ -95759,6 +105056,54 @@ TranslatedNumber False + + ConnectionId + + The WFM connection ID for the instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). + + String + + String + + + None + + + ConnectorId + + Used to specify the unique identifier of the connector being used for the connection. + + String + + String + + + None + + + ConnectorSpecificSettings + + Used to specify settings that are unique to the connector being used. This parameter allows administrators to configure various properties specific to the workforce management (WFM) system they are integrating with Teams Shifts. + + IUpdateWfmConnectionFieldsRequestConnectorSpecificSettings + + IUpdateWfmConnectionFieldsRequestConnectorSpecificSettings + + + None + + + Etag + + Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. + + String + + String + + + None + HttpPipelineAppend @@ -95795,18 +105140,6 @@ TranslatedNumber None - - InputObject - - Identity Parameter - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - None - Name @@ -95854,18 +105187,6 @@ TranslatedNumber False - - State - - The state of the connection. Valid values are "Active" and "Disabled". A third value, "ErrorDisabled", signifies an error in the connection. - - String - - String - - - None - WhatIf @@ -95877,6 +105198,9 @@ TranslatedNumber False + + + Update-CsTeamsShiftsConnection Authorization @@ -95890,33 +105214,31 @@ TranslatedNumber None - ConnectorId + Break - Used to specify the unique identifier of the connector being used for the connection. + Wait for the .NET debugger to attach. - String - String + SwitchParameter - None + False - - ConnectorSpecificSettings + + Confirm - Used to specify settings that are unique to the connector being used. This parameter allows administrators to configure various properties specific to the workforce management (WFM) system they are integrating with Teams Shifts. + Prompts you for confirmation before running the cmdlet. - IUpdateWfmConnectionFieldsRequestConnectorSpecificSettings - IUpdateWfmConnectionFieldsRequestConnectorSpecificSettings + SwitchParameter - None + False - Etag + ConnectorId - Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. + Used to specify the unique identifier of the connector being used for the connection. String @@ -95925,30 +105247,29 @@ TranslatedNumber None - - - Update-CsTeamsShiftsConnection - Break + ConnectorSpecificSettings - Wait for the .NET debugger to attach. + Used to specify settings that are unique to the connector being used. This parameter allows administrators to configure various properties specific to the workforce management (WFM) system they are integrating with Teams Shifts. + IUpdateWfmConnectionFieldsRequestConnectorSpecificSettings - SwitchParameter + IUpdateWfmConnectionFieldsRequestConnectorSpecificSettings - False + None - - Confirm + + Etag - Prompts you for confirmation before running the cmdlet. + Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. + String - SwitchParameter + String - False + None HttpPipelineAppend @@ -95986,6 +105307,18 @@ TranslatedNumber None + + InputObject + + Identity Parameter + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + Name @@ -96033,45 +105366,10 @@ TranslatedNumber False - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - Authorization - - Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. - - String - - String - - - None - - ConnectionId - - The WFM connection ID for the instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnection). - - String - - String - - - None - - - ConnectorId + State - Used to specify the unique identifier of the connector being used for the connection. + The state of the connection. Valid values are "Active" and "Disabled". A third value, "ErrorDisabled", signifies an error in the connection. String @@ -96080,33 +105378,32 @@ TranslatedNumber None - - ConnectorSpecificSettings - - Used to specify settings that are unique to the connector being used. This parameter allows administrators to configure various properties specific to the workforce management (WFM) system they are integrating with Teams Shifts. - - IUpdateWfmConnectionFieldsRequestConnectorSpecificSettings - - IUpdateWfmConnectionFieldsRequestConnectorSpecificSettings - - - None - - - Etag + + WhatIf - Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. + Shows what would happen if the cmdlet runs. The cmdlet is not run. - String - String + SwitchParameter - None + False + + Authorization + + Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. + + String + + String + + + None + Body @@ -96143,6 +105440,54 @@ TranslatedNumber False + + ConnectionId + + The WFM connection ID for the instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). + + String + + String + + + None + + + ConnectorId + + Used to specify the unique identifier of the connector being used for the connection. + + String + + String + + + None + + + ConnectorSpecificSettings + + Used to specify settings that are unique to the connector being used. This parameter allows administrators to configure various properties specific to the workforce management (WFM) system they are integrating with Teams Shifts. + + IUpdateWfmConnectionFieldsRequestConnectorSpecificSettings + + IUpdateWfmConnectionFieldsRequestConnectorSpecificSettings + + + None + + + Etag + + Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. + + String + + String + + + None + HttpPipelineAppend @@ -96263,66 +105608,6 @@ TranslatedNumber False - - Authorization - - Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. - - String - - String - - - None - - - ConnectionId - - The WFM connection ID for the instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnection). - - String - - String - - - None - - - ConnectorId - - Used to specify the unique identifier of the connector being used for the connection. - - String - - String - - - None - - - ConnectorSpecificSettings - - Used to specify settings that are unique to the connector being used. This parameter allows administrators to configure various properties specific to the workforce management (WFM) system they are integrating with Teams Shifts. - - IUpdateWfmConnectionFieldsRequestConnectorSpecificSettings - - IUpdateWfmConnectionFieldsRequestConnectorSpecificSettings - - - None - - - Etag - - Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. - - String - - String - - - None - @@ -96442,23 +105727,23 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< Online Version: - https://docs.microsoft.com/powershell/module/teams/update-csteamsshiftsconnection + https://docs.microsoft.com/powershell/module/microsoftteams/update-csteamsshiftsconnection Get-CsTeamsShiftsConnection - https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnection + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection New-CsTeamsShiftsConnection - https://learn.microsoft.com/powershell/module/teams/new-csteamsshiftsconnection + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnection Set-CsTeamsShiftsConnection - https://learn.microsoft.com/powershell/module/teams/set-csteamsshiftsconnection + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnection Test-CsTeamsShiftsConnectionValidate - https://learn.microsoft.com/powershell/module/teams/test-csteamsshiftsconnectionvalidate + https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsshiftsconnectionvalidate @@ -96726,93 +106011,9 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< False - State - - The state of the connection instance. Valid values are "Active" and "Disabled". A third value, "ErrorDisabled", signifies an error in the connection instance. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Update-CsTeamsShiftsConnectionInstance - - Break - - Wait for the .NET debugger to attach. - - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - ConnectorAdminEmail - - Gets or sets the list of connector admin email addresses. - - String[] - - String[] - - - None - - - ConnectorInstanceId - - The connector instance ID. - - String - - String - - - None - - - DesignatedActorId - - The designated actor ID that App acts as for Shifts Graph API calls. - - String - - String - - - None - - - SyncScenarioOfferShiftRequest + State - The sync state for the offer shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + The state of the connection instance. Valid values are "Active" and "Disabled". A third value, "ErrorDisabled", signifies an error in the connection instance. String @@ -96821,46 +106022,46 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - - SyncScenarioOpenShift + + WhatIf - The sync state for the open shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + Shows what would happen if the cmdlet runs. The cmdlet is not run. - String - String + SwitchParameter - None + False - - SyncScenarioOpenShiftRequest + + + Update-CsTeamsShiftsConnectionInstance + + Break - The sync state for the open shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + Wait for the .NET debugger to attach. - String - String + SwitchParameter - None + False - - SyncScenarioShift + + Confirm - The sync state for the shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + Prompts you for confirmation before running the cmdlet. - String - String + SwitchParameter - None + False - - SyncScenarioSwapRequest + + ConnectionId - The sync state for the shift swap request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + The WFM connection ID for the instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). String @@ -96869,22 +106070,22 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - - SyncScenarioTimeCard + + ConnectorAdminEmail - The sync state for the time card scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + Gets or sets the list of connector admin email addresses. - String + String[] - String + String[] None - - SyncScenarioTimeOff + + ConnectorInstanceId - The sync state for the time off scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + The connector instance ID. String @@ -96893,10 +106094,10 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - - SyncScenarioTimeOffRequest + + DesignatedActorId - The sync state for the time off request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + The designated actor ID that App acts as for Shifts Graph API calls. String @@ -96905,10 +106106,10 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - - SyncScenarioUserShiftPreference + + Etag - The sync state for the user shift preferences scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. String @@ -97012,21 +106213,22 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - - WhatIf + + SyncScenarioOfferShiftRequest - Shows what would happen if the cmdlet runs. The cmdlet is not run. + The sync state for the offer shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + String - SwitchParameter + String - False + None - - ConnectionId + + SyncScenarioOpenShift - The WFM connection ID for the instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnection). + The sync state for the open shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". String @@ -97035,10 +106237,10 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - - Etag + + SyncScenarioOpenShiftRequest - Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. + The sync state for the open shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". String @@ -97047,47 +106249,46 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - - - Update-CsTeamsShiftsConnectionInstance - - Break + + SyncScenarioShift - Wait for the .NET debugger to attach. + The sync state for the shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + String - SwitchParameter + String - False + None - - Confirm + + SyncScenarioSwapRequest - Prompts you for confirmation before running the cmdlet. + The sync state for the shift swap request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + String - SwitchParameter + String - False + None - - ConnectorAdminEmail + + SyncScenarioTimeCard - Gets or sets the list of connector admin email addresses. + The sync state for the time card scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". - String[] + String - String[] + String None - - DesignatedActorId + + SyncScenarioTimeOff - The designated actor ID that App acts as for Shifts Graph API calls. + The sync state for the time off scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". String @@ -97097,9 +106298,9 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - SyncScenarioOfferShiftRequest + SyncScenarioTimeOffRequest - The sync state for the offer shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + The sync state for the time off request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". String @@ -97109,9 +106310,9 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - SyncScenarioOpenShift + SyncScenarioUserShiftPreference - The sync state for the open shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + The sync state for the user shift preferences scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". String @@ -97120,46 +106321,46 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - - SyncScenarioOpenShiftRequest + + WhatIf - The sync state for the open shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + Shows what would happen if the cmdlet runs. The cmdlet is not run. - String - String + SwitchParameter - None + False - - SyncScenarioShift + + + Update-CsTeamsShiftsConnectionInstance + + Break - The sync state for the shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + Wait for the .NET debugger to attach. - String - String + SwitchParameter - None + False - - SyncScenarioSwapRequest + + Confirm - The sync state for the shift swap request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + Prompts you for confirmation before running the cmdlet. - String - String + SwitchParameter - None + False - - SyncScenarioTimeCard + + ConnectionId - The sync state for the time card scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + The WFM connection ID for the instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). String @@ -97168,22 +106369,22 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - - SyncScenarioTimeOff + + ConnectorAdminEmail - The sync state for the time off scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + Gets or sets the list of connector admin email addresses. - String + String[] - String + String[] None - - SyncScenarioTimeOffRequest + + DesignatedActorId - The sync state for the time off request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + The designated actor ID that App acts as for Shifts Graph API calls. String @@ -97192,10 +106393,10 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - - SyncScenarioUserShiftPreference + + Etag - The sync state for the user shift preferences scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. String @@ -97323,21 +106524,22 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - - WhatIf + + SyncScenarioOfferShiftRequest - Shows what would happen if the cmdlet runs. The cmdlet is not run. + The sync state for the offer shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + String - SwitchParameter + String - False + None - - ConnectionId + + SyncScenarioOpenShift - The WFM connection ID for the instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnection). + The sync state for the open shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". String @@ -97346,10 +106548,82 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - - Etag + + SyncScenarioOpenShiftRequest - Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. + The sync state for the open shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioShift + + The sync state for the shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioSwapRequest + + The sync state for the shift swap request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioTimeCard + + The sync state for the time card scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioTimeOff + + The sync state for the time off scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioTimeOffRequest + + The sync state for the time off request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioUserShiftPreference + + The sync state for the user shift preferences scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". String @@ -97358,6 +106632,17 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + @@ -97397,6 +106682,18 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< False + + ConnectionId + + The WFM connection ID for the instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). + + String + + String + + + None + ConnectorAdminEmail @@ -97433,10 +106730,10 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - - SyncScenarioOfferShiftRequest + + Etag - The sync state for the offer shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. String @@ -97445,34 +106742,34 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - - SyncScenarioOpenShift + + HttpPipelineAppend - The sync state for the open shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + SendAsync Pipeline Steps to be appended to the front of the pipeline. - String + SendAsyncStep[] - String + SendAsyncStep[] None - - SyncScenarioOpenShiftRequest + + HttpPipelinePrepend - The sync state for the open shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + SendAsync Pipeline Steps to be prepended to the front of the pipeline. - String + SendAsyncStep[] - String + SendAsyncStep[] None - SyncScenarioShift + IfMatch - The sync state for the shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + The value of the ETag field as returned by the cmdlets. String @@ -97481,22 +106778,22 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - - SyncScenarioSwapRequest + + InputObject - The sync state for the shift swap request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + Identity Parameter - String + IConfigApiBasedCmdletsIdentity - String + IConfigApiBasedCmdletsIdentity None - - SyncScenarioTimeCard + + Name - The sync state for the time card scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + The connector instance name. String @@ -97505,34 +106802,46 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - - SyncScenarioTimeOff + + Proxy - The sync state for the time off scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + The URI for the proxy server to use. - String + Uri - String + Uri None - - SyncScenarioTimeOffRequest + + ProxyCredential - The sync state for the time off request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + Credentials for a proxy server to use for the remote call. - String + PSCredential - String + PSCredential None + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + SwitchParameter + + SwitchParameter + + + False + - SyncScenarioUserShiftPreference + State - The sync state for the user shift preferences scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + The state of the connection instance. Valid values are "Active" and "Disabled". A third value, "ErrorDisabled", signifies an error in the connection instance. String @@ -97542,33 +106851,33 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - HttpPipelineAppend + SyncFrequencyInMin - SendAsync Pipeline Steps to be appended to the front of the pipeline. + The sync frequency in minutes. - SendAsyncStep[] + Int32 - SendAsyncStep[] + Int32 None - - HttpPipelinePrepend + + SyncScenarioOfferShiftRequest - SendAsync Pipeline Steps to be prepended to the front of the pipeline. + The sync state for the offer shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". - SendAsyncStep[] + String - SendAsyncStep[] + String None - IfMatch + SyncScenarioOpenShift - The value of the ETag field as returned by the cmdlets. + The sync state for the open shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". String @@ -97577,22 +106886,22 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - - InputObject + + SyncScenarioOpenShiftRequest - Identity Parameter + The sync state for the open shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". - IConfigApiBasedCmdletsIdentity + String - IConfigApiBasedCmdletsIdentity + String None - - Name + + SyncScenarioShift - The connector instance name. + The sync state for the shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". String @@ -97601,46 +106910,46 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - - Proxy + + SyncScenarioSwapRequest - The URI for the proxy server to use. + The sync state for the shift swap request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". - Uri + String - Uri + String None - - ProxyCredential + + SyncScenarioTimeCard - Credentials for a proxy server to use for the remote call. + The sync state for the time card scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". - PSCredential + String - PSCredential + String None - - ProxyUseDefaultCredentials + + SyncScenarioTimeOff - Use the default credentials for the proxy. + The sync state for the time off scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". - SwitchParameter + String - SwitchParameter + String - False + None - State + SyncScenarioTimeOffRequest - The state of the connection instance. Valid values are "Active" and "Disabled". A third value, "ErrorDisabled", signifies an error in the connection instance. + The sync state for the time off request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". String @@ -97649,14 +106958,14 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< None - - SyncFrequencyInMin + + SyncScenarioUserShiftPreference - The sync frequency in minutes. + The sync state for the user shift preferences scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". - Int32 + String - Int32 + String None @@ -97673,30 +106982,6 @@ TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876< False - - ConnectionId - - The WFM connection ID for the instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnection). - - String - - String - - - None - - - Etag - - Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. - - String - - String - - - None - @@ -97786,27 +107071,27 @@ PS C:\> $result.ToJsonString() Online Version: - https://docs.microsoft.com/powershell/module/teams/update-csteamsshiftsconnectioninstance + https://docs.microsoft.com/powershell/module/microsoftteams/update-csteamsshiftsconnectioninstance Get-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectioninstance + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance New-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/teams/new-csteamsshiftsconnectioninstance + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnectioninstance Set-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/teams/set-csteamsshiftsconnectioninstance + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnectioninstance Remove-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/teams/remove-csteamsshiftsconnectioninstance + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftsconnectioninstance Test-CsTeamsShiftsConnectionValidate - https://learn.microsoft.com/powershell/module/teams/test-csteamsshiftsconnectionvalidate + https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsshiftsconnectionvalidate @@ -97817,10 +107102,11 @@ PS C:\> $result.ToJsonString() CsTeamTemplate This cmdlet submits an operation that updates a custom team template with new team template settings. - NOTE: The response is a PowerShell object formatted as a JSON for readability. Please refer to the examples for suggested interaction flows for template management. - + + NOTE: The response is a PowerShell object formatted as a JSON for readability. Please refer to the examples for suggested interaction flows for template management. + Update-CsTeamTemplate @@ -97836,6 +107122,17 @@ PS C:\> $result.ToJsonString() None + + Break + + Wait for .NET debugger to attach + + + SwitchParameter + + + False + Category @@ -97872,6 +107169,17 @@ PS C:\> $result.ToJsonString() None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + Description @@ -97932,6 +107240,30 @@ PS C:\> $result.ToJsonString() None + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + Icon @@ -98004,45 +107336,44 @@ PS C:\> $result.ToJsonString() None - PublishedBy + Proxy - Gets or sets published name. + The URI for the proxy server to use - System.String + Uri - System.String + Uri None - - ShortDescription + + ProxyCredential - Gets or sets template short description. + Credentials for a proxy server to use for the remote call - System.String + PSCredential - System.String + PSCredential None - Specialization + ProxyUseDefaultCredentials - The specialization or use case describing the team.Used for telemetry/BI, part of the team context exposed to app developers, and for legacy implementations of differentiated features for education. + Use the default credentials for the proxy - System.String - System.String + SwitchParameter - None + False - TemplateId + PublishedBy - Gets or sets the id of the base template for the team.Either a Microsoft base template or a custom template. + Gets or sets published name. System.String @@ -98051,10 +107382,10 @@ PS C:\> $result.ToJsonString() None - - Uri + + ShortDescription - Gets or sets uri to be used for GetTemplate api call. + Gets or sets template short description. System.String @@ -98064,9 +107395,9 @@ PS C:\> $result.ToJsonString() None - Visibility + Specialization - Used to control the scope of users who can view a group/team and its members, and ability to join. + The specialization or use case describing the team.Used for telemetry/BI, part of the team context exposed to app developers, and for legacy implementations of differentiated features for education. System.String @@ -98076,86 +107407,41 @@ PS C:\> $result.ToJsonString() None - Break - - Wait for .NET debugger to attach - - - SwitchParameter - - - False - - - HttpPipelineAppend - - SendAsync Pipeline Steps to be appended to the front of the pipeline - - SendAsyncStep[] - - SendAsyncStep[] - - - None - - - HttpPipelinePrepend + TemplateId - SendAsync Pipeline Steps to be prepended to the front of the pipeline + Gets or sets the id of the base template for the team.Either a Microsoft base template or a custom template. - SendAsyncStep[] + System.String - SendAsyncStep[] + System.String None - Proxy + Uri - The URI for the proxy server to use + Gets or sets uri to be used for GetTemplate api call. - Uri + System.String - Uri + System.String None - ProxyCredential + Visibility - Credentials for a proxy server to use for the remote call + Used to control the scope of users who can view a group/team and its members, and ability to join. - PSCredential + System.String - PSCredential + System.String None - - ProxyUseDefaultCredentials - - Use the default credentials for the proxy - - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - WhatIf @@ -98182,6 +107468,17 @@ PS C:\> $result.ToJsonString() None + + Break + + Wait for .NET debugger to attach + + + SwitchParameter + + + False + Category @@ -98218,6 +107515,17 @@ PS C:\> $result.ToJsonString() None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + Description @@ -98278,6 +107586,30 @@ PS C:\> $result.ToJsonString() None + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + Icon @@ -98349,113 +107681,6 @@ PS C:\> $result.ToJsonString() None - - PublishedBy - - Gets or sets published name. - - System.String - - System.String - - - None - - - ShortDescription - - Gets or sets template short description. - - System.String - - System.String - - - None - - - Specialization - - The specialization or use case describing the team.Used for telemetry/BI, part of the team context exposed to app developers, and for legacy implementations of differentiated features for education. - - System.String - - System.String - - - None - - - TemplateId - - Gets or sets the id of the base template for the team.Either a Microsoft base template or a custom template. - - System.String - - System.String - - - None - - - Uri - - Gets or sets uri to be used for GetTemplate api call. - - System.String - - System.String - - - None - - - Visibility - - Used to control the scope of users who can view a group/team and its members, and ability to join. - - System.String - - System.String - - - None - - - Break - - Wait for .NET debugger to attach - - - SwitchParameter - - - False - - - HttpPipelineAppend - - SendAsync Pipeline Steps to be appended to the front of the pipeline - - SendAsyncStep[] - - SendAsyncStep[] - - - None - - - HttpPipelinePrepend - - SendAsync Pipeline Steps to be prepended to the front of the pipeline - - SendAsyncStep[] - - SendAsyncStep[] - - - None - Proxy @@ -98491,16 +107716,77 @@ PS C:\> $result.ToJsonString() False - - Confirm + + PublishedBy - Prompts you for confirmation before running the cmdlet. + Gets or sets published name. + System.String - System.Management.Automation.SwitchParameter + System.String - False + None + + + ShortDescription + + Gets or sets template short description. + + System.String + + System.String + + + None + + + Specialization + + The specialization or use case describing the team.Used for telemetry/BI, part of the team context exposed to app developers, and for legacy implementations of differentiated features for education. + + System.String + + System.String + + + None + + + TemplateId + + Gets or sets the id of the base template for the team.Either a Microsoft base template or a custom template. + + System.String + + System.String + + + None + + + Uri + + Gets or sets uri to be used for GetTemplate api call. + + System.String + + System.String + + + None + + + Visibility + + Used to control the scope of users who can view a group/team and its members, and ability to join. + + System.String + + System.String + + + None WhatIf @@ -98528,25 +107814,24 @@ PS C:\> $result.ToJsonString() None - - OdataId + + Break - A composite URI of a template. + Wait for .NET debugger to attach - System.String - System.String + SwitchParameter - None + False - - Break + + Confirm - Wait for .NET debugger to attach + Prompts you for confirmation before running the cmdlet. - SwitchParameter + System.Management.Automation.SwitchParameter False @@ -98575,6 +107860,18 @@ PS C:\> $result.ToJsonString() None + + OdataId + + A composite URI of a template. + + System.String + + System.String + + + None + Proxy @@ -98610,17 +107907,6 @@ PS C:\> $result.ToJsonString() False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - WhatIf @@ -98647,25 +107933,24 @@ PS C:\> $result.ToJsonString() None - - InputObject + + Break - Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + Wait for .NET debugger to attach - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + SwitchParameter - None + False - - Break + + Confirm - Wait for .NET debugger to attach + Prompts you for confirmation before running the cmdlet. - SwitchParameter + System.Management.Automation.SwitchParameter False @@ -98694,6 +107979,18 @@ PS C:\> $result.ToJsonString() None + + InputObject + + Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + None + Proxy @@ -98729,17 +108026,6 @@ PS C:\> $result.ToJsonString() False - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - WhatIf @@ -98778,6 +108064,18 @@ PS C:\> $result.ToJsonString() None + + Break + + Wait for .NET debugger to attach + + SwitchParameter + + SwitchParameter + + + False + Category @@ -98814,6 +108112,18 @@ PS C:\> $result.ToJsonString() None + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + Description @@ -98874,6 +108184,30 @@ PS C:\> $result.ToJsonString() None + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + Icon @@ -98959,45 +108293,45 @@ PS C:\> $result.ToJsonString() None - PublishedBy + Proxy - Gets or sets published name. + The URI for the proxy server to use - System.String + Uri - System.String + Uri None - - ShortDescription + + ProxyCredential - Gets or sets template short description. + Credentials for a proxy server to use for the remote call - System.String + PSCredential - System.String + PSCredential None - Specialization + ProxyUseDefaultCredentials - The specialization or use case describing the team.Used for telemetry/BI, part of the team context exposed to app developers, and for legacy implementations of differentiated features for education. + Use the default credentials for the proxy - System.String + SwitchParameter - System.String + SwitchParameter - None + False - TemplateId + PublishedBy - Gets or sets the id of the base template for the team.Either a Microsoft base template or a custom template. + Gets or sets published name. System.String @@ -99006,10 +108340,10 @@ PS C:\> $result.ToJsonString() None - - Uri + + ShortDescription - Gets or sets uri to be used for GetTemplate api call. + Gets or sets template short description. System.String @@ -99019,9 +108353,9 @@ PS C:\> $result.ToJsonString() None - Visibility + Specialization - Used to control the scope of users who can view a group/team and its members, and ability to join. + The specialization or use case describing the team.Used for telemetry/BI, part of the team context exposed to app developers, and for legacy implementations of differentiated features for education. System.String @@ -99031,89 +108365,41 @@ PS C:\> $result.ToJsonString() None - Break - - Wait for .NET debugger to attach - - SwitchParameter - - SwitchParameter - - - False - - - HttpPipelineAppend - - SendAsync Pipeline Steps to be appended to the front of the pipeline - - SendAsyncStep[] - - SendAsyncStep[] - - - None - - - HttpPipelinePrepend + TemplateId - SendAsync Pipeline Steps to be prepended to the front of the pipeline + Gets or sets the id of the base template for the team.Either a Microsoft base template or a custom template. - SendAsyncStep[] + System.String - SendAsyncStep[] + System.String None - Proxy + Uri - The URI for the proxy server to use + Gets or sets uri to be used for GetTemplate api call. - Uri + System.String - Uri + System.String None - ProxyCredential + Visibility - Credentials for a proxy server to use for the remote call + Used to control the scope of users who can view a group/team and its members, and ability to join. - PSCredential + System.String - PSCredential + System.String None - - ProxyUseDefaultCredentials - - Use the default credentials for the proxy - - SwitchParameter - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - WhatIf @@ -99247,11 +108533,11 @@ PS C:\> $result.ToJsonString() - `AllowUserEditMessage <Boolean>`: Gets or sets a value indicating whether team members can edit their own messages in team conversations. ## RELATED LINKS - - [Get-CsTeamTemplateList](https://learn.microsoft.com/powershell/module/teams/get-csteamtemplatelist) - - [Get-CsTeamTemplate](https://learn.microsoft.com/powershell/module/teams/get-csteamtemplatelist) - - [New-CsTeamTemplate](https://learn.microsoft.com/powershell/module/teams/get-csteamtemplatelist) - - [Update-CsTeamTemplate](https://learn.microsoft.com/powershell/module/teams/get-csteamtemplatelist) - - [Remove-CsTeamTemplate](https://learn.microsoft.com/powershell/module/teams/get-csteamtemplatelist) + - [Get-CsTeamTemplateList](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplatelist) + - [Get-CsTeamTemplate](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplatelist) + - [New-CsTeamTemplate](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplatelist) + - [Update-CsTeamTemplate](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplatelist) + - [Remove-CsTeamTemplate](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplatelist) @@ -99313,7 +108599,7 @@ isFavoriteByDefault= $true ` Online Version: - https://learn.microsoft.com/powershell/module/teams/update-csteamtemplate + https://learn.microsoft.com/powershell/module/microsoftteams/update-csteamtemplate diff --git a/Modules/MicrosoftTeams/6.9.0/exports/ProxyCmdletDefinitionsWithHelp.ps1 b/Modules/MicrosoftTeams/7.4.0/exports/ProxyCmdletDefinitionsWithHelp.ps1 similarity index 95% rename from Modules/MicrosoftTeams/6.9.0/exports/ProxyCmdletDefinitionsWithHelp.ps1 rename to Modules/MicrosoftTeams/7.4.0/exports/ProxyCmdletDefinitionsWithHelp.ps1 index 42644777a215..1acb708033e1 100644 --- a/Modules/MicrosoftTeams/6.9.0/exports/ProxyCmdletDefinitionsWithHelp.ps1 +++ b/Modules/MicrosoftTeams/7.4.0/exports/ProxyCmdletDefinitionsWithHelp.ps1 @@ -240,6 +240,8 @@ param( [Parameter(ParameterSetName='CredentialFlowWithLocal', Mandatory)] [Parameter(ParameterSetName='CredentialFlowWithInt', Mandatory)] [Parameter(ParameterSetName='CredentialFlowWithMsit', Mandatory)] + [Parameter(ParameterSetName='CredentialFlowWithNpe', Mandatory)] + [Parameter(ParameterSetName='CredentialFlowWithTdf', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.Management.Automation.PSCredential] ${Credential}, @@ -262,6 +264,18 @@ param( [System.Management.Automation.SwitchParameter] ${UseConfigApiMsit}, + [Parameter(ParameterSetName='CredentialFlowWithNpe', Mandatory)] + [Parameter(ParameterSetName='NpeHost', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${UseConfigApiNpe}, + + [Parameter(ParameterSetName='CredentialFlowWithTdf', Mandatory)] + [Parameter(ParameterSetName='TDFHost', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${UseConfigApiTDF}, + [Parameter(ParameterSetName='AccessTokenFlow', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] @@ -292,10 +306,14 @@ begin { CredentialFlowWithLocal = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Connect-CsConfigApi'; CredentialFlowWithInt = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Connect-CsConfigApi'; CredentialFlowWithMsit = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Connect-CsConfigApi'; + CredentialFlowWithNpe = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Connect-CsConfigApi'; + CredentialFlowWithTdf = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Connect-CsConfigApi'; AccessTokenFlow = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Connect-CsConfigApi'; LocalHost = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Connect-CsConfigApi'; IntHost = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Connect-CsConfigApi'; MsitHost = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Connect-CsConfigApi'; + NpeHost = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Connect-CsConfigApi'; + TDFHost = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Connect-CsConfigApi'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -5342,75 +5360,6 @@ end { } } -# .ExternalHelp en-US\MicrosoftTeams-help -function Get-CsOnlinePowerShellEndpoint { -[CmdletBinding(DefaultParameterSetName='OverrideDiscoveryUri', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.CmdletHostContract.Fqdn] - ${TargetDomain}, - - [Parameter(ParameterSetName='OverrideDiscoveryUri')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Uri] - ${OverrideDiscoveryUri}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OverrideDesiredLink}, - - [Parameter(ParameterSetName='TeamsEnvironmentName')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.CmdletHostContract.DeploymentConfiguration+TeamsEnvironment] - ${TeamsEnvironmentName} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - OverrideDiscoveryUri = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlinePowerShellEndpoint'; - TeamsEnvironmentName = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlinePowerShellEndpoint'; - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - # .ExternalHelp en-US\MicrosoftTeams-help function Get-CsOnlinePSTNGateway { [CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] @@ -6435,6 +6384,108 @@ end { } } +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsPersonalAttendantSettings { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPersonalAttendantSettings])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsPersonalAttendantSettings_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsPersonalAttendantSettings_GetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + # .ExternalHelp en-US\MicrosoftTeams-help function Get-CsPhoneNumberAssignment { [OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletAcquiredTelephoneNumber])] @@ -6636,6 +6687,24 @@ function Get-CsPhoneNumberPolicyAssignment { [OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtPhoneNumberPolicyAssignmentCmdletResult])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${PolicyName}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${PolicyType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${ResultSize}, + [Parameter()] [Alias('Identity')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] @@ -6727,23 +6796,10 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Get-CsPolicyPackage { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsFormattedPackageSummary], [System.String], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsFormattedPackage])] +function Get-CsPhoneNumberTag { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletTenantTagRecord])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Get1', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # The name of a specific policy package - ${Identity}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] @@ -6793,9 +6849,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsPolicyPackage_Get'; - Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsPolicyPackage_Get1'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsPolicyPackage_GetViaIdentity'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsPhoneNumberTag_Get'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -6830,23 +6884,61 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Get-CsPrivacyConfiguration { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +function Get-CsPolicyPackage { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsFormattedPackageSummary], [System.String], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsFormattedPackage])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Identity', Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] + # The name of a specific policy package ${Identity}, + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, - [Parameter(ParameterSetName='Filter')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Filter} + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} ) begin { @@ -6858,8 +6950,73 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsPrivacyConfiguration'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsPrivacyConfiguration'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsPolicyPackage_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsPolicyPackage_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsPolicyPackage_GetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsPrivacyConfiguration { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsPrivacyConfiguration'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsPrivacyConfiguration'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -19333,11 +19490,6 @@ param( [System.Boolean] ${EnableOutsideAccess}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnablePublicCloudAccess}, - [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.Boolean] @@ -20940,11 +21092,6 @@ param( [System.Boolean] ${SendSipOptions}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${IPAddressVersion}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] @@ -28221,76 +28368,66 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Remove-CsTeamsAppPermissionPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Remove-CsPhoneNumberTag { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - ${Identity}, + # . + ${Tag}, - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - ${MsftInternalProcessingMode} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsAppPermissionPolicy'; - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} + # . + ${PhoneNumber}, -process { - try { - $steppablePipeline.Process($_) - } catch { + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, - throw - } + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, -} -end { - try { - $steppablePipeline.End() + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, - } catch { + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, - throw - } -} -} + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, -# .ExternalHelp en-US\MicrosoftTeams-help -function Remove-CsTeamsAppSetupPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode} + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} ) begin { @@ -28302,7 +28439,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsAppSetupPolicy'; + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsPhoneNumberTag_Remove'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -28337,7 +28474,7 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Remove-CsTeamsAudioConferencingPolicy { +function Remove-CsTeamsAppPermissionPolicy { [CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] @@ -28360,7 +28497,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsAudioConferencingPolicy'; + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsAppPermissionPolicy'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -28395,7 +28532,7 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Remove-CsTeamsCallHoldPolicy { +function Remove-CsTeamsAppSetupPolicy { [CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] @@ -28418,7 +28555,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsCallHoldPolicy'; + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsAppSetupPolicy'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -28453,7 +28590,7 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Remove-CsTeamsCallingPolicy { +function Remove-CsTeamsAudioConferencingPolicy { [CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] @@ -28476,7 +28613,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsCallingPolicy'; + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsAudioConferencingPolicy'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -28511,7 +28648,7 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Remove-CsTeamsCallParkPolicy { +function Remove-CsTeamsCallHoldPolicy { [CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] @@ -28534,7 +28671,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsCallParkPolicy'; + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsCallHoldPolicy'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -28569,7 +28706,7 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Remove-CsTeamsChannelsPolicy { +function Remove-CsTeamsCallingPolicy { [CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] @@ -28592,7 +28729,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsChannelsPolicy'; + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsCallingPolicy'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -28627,7 +28764,7 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Remove-CsTeamsComplianceRecordingApplication { +function Remove-CsTeamsCallParkPolicy { [CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] @@ -28650,7 +28787,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsComplianceRecordingApplication'; + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsCallParkPolicy'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -28685,7 +28822,7 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Remove-CsTeamsComplianceRecordingPolicy { +function Remove-CsTeamsChannelsPolicy { [CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] @@ -28708,7 +28845,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsComplianceRecordingPolicy'; + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsChannelsPolicy'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -28743,7 +28880,7 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Remove-CsTeamsCortanaPolicy { +function Remove-CsTeamsComplianceRecordingApplication { [CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] @@ -28766,7 +28903,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsCortanaPolicy'; + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsComplianceRecordingApplication'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -28801,7 +28938,7 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Remove-CsTeamsEmergencyCallingPolicy { +function Remove-CsTeamsComplianceRecordingPolicy { [CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] @@ -28824,7 +28961,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsEmergencyCallingPolicy'; + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsComplianceRecordingPolicy'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -28859,7 +28996,7 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Remove-CsTeamsEmergencyCallRoutingPolicy { +function Remove-CsTeamsCortanaPolicy { [CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] @@ -28882,7 +29019,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsEmergencyCallRoutingPolicy'; + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsCortanaPolicy'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -28917,7 +29054,7 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Remove-CsTeamsEnhancedEncryptionPolicy { +function Remove-CsTeamsEmergencyCallingPolicy { [CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] @@ -28940,7 +29077,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsEnhancedEncryptionPolicy'; + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsEmergencyCallingPolicy'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -28975,7 +29112,7 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Remove-CsTeamsEventsPolicy { +function Remove-CsTeamsEmergencyCallRoutingPolicy { [CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] @@ -28998,7 +29135,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsEventsPolicy'; + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsEmergencyCallRoutingPolicy'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -29033,7 +29170,7 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Remove-CsTeamsFeedbackPolicy { +function Remove-CsTeamsEnhancedEncryptionPolicy { [CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] @@ -29056,7 +29193,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsFeedbackPolicy'; + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsEnhancedEncryptionPolicy'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -29091,7 +29228,7 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Remove-CsTeamsFilesPolicy { +function Remove-CsTeamsEventsPolicy { [CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] @@ -29114,7 +29251,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsFilesPolicy'; + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsEventsPolicy'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -29149,7 +29286,7 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Remove-CsTeamsIPPhonePolicy { +function Remove-CsTeamsFeedbackPolicy { [CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] @@ -29172,7 +29309,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsIPPhonePolicy'; + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsFeedbackPolicy'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -29207,7 +29344,7 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Remove-CsTeamsMeetingBroadcastPolicy { +function Remove-CsTeamsFilesPolicy { [CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] @@ -29230,7 +29367,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsMeetingBroadcastPolicy'; + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsFilesPolicy'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -29265,7 +29402,7 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Remove-CsTeamsMeetingPolicy { +function Remove-CsTeamsIPPhonePolicy { [CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] @@ -29288,7 +29425,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsMeetingPolicy'; + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsIPPhonePolicy'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -29323,7 +29460,7 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Remove-CsTeamsMessagingPolicy { +function Remove-CsTeamsMeetingBroadcastPolicy { [CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] @@ -29346,7 +29483,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsMessagingPolicy'; + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsMeetingBroadcastPolicy'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -29381,7 +29518,7 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Remove-CsTeamsMobilityPolicy { +function Remove-CsTeamsMeetingPolicy { [CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] @@ -29404,7 +29541,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsMobilityPolicy'; + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsMeetingPolicy'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -29439,7 +29576,7 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Remove-CsTeamsNetworkRoamingPolicy { +function Remove-CsTeamsMessagingPolicy { [CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] @@ -29462,7 +29599,123 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsNetworkRoamingPolicy'; + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsMessagingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsMobilityPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsMobilityPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsNetworkRoamingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsNetworkRoamingPolicy'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -31606,11 +31859,6 @@ param( [System.Boolean] ${EnableOutsideAccess}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnablePublicCloudAccess}, - [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.Boolean] @@ -31955,18 +32203,39 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Set-CsInternalOnlinePowerShellEndpoint { +function Set-CsOCEContext { [CmdletBinding(PositionalBinding=$false)] param( - [Parameter(Mandatory)] + [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OverridePowershellUri}, + [System.Guid] + ${AppId}, - [Parameter(Mandatory)] + [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - ${TargetDomain} + ${TenantDomain}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Guid] + ${TenantId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.CmdletHostContract.DeploymentConfiguration+ConfigApiEnvironment] + ${Environment}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Collections.Hashtable] + # This can be used to provide optional headers. + ${Headers}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsSystemTenant} ) begin { @@ -31978,7 +32247,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsInternalOnlinePowerShellEndpoint'; + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOCEContext'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -32013,39 +32282,109 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Set-CsOCEContext { -[CmdletBinding(PositionalBinding=$false)] +function Set-CsOdcUserDefaultNumber { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter()] + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Guid] - ${AppId}, + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUsersDefaultNumberUpdateRequest] + # Update all users default service number. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, - [Parameter()] + [Parameter(ParameterSetName='SetExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - ${TenantDomain}, + # Gets or sets AreaOrState filter for user query. + ${AreaOrState}, - [Parameter()] + [Parameter(ParameterSetName='SetExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Guid] - ${TenantId}, + [System.String] + # Gets or sets bridge id to use for service number change. + ${BridgeId}, - [Parameter()] + [Parameter(ParameterSetName='SetExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.CmdletHostContract.DeploymentConfiguration+ConfigApiEnvironment] - ${Environment}, + [System.String] + # Gets or sets bridge name to use for service number change. + ${BridgeName}, - [Parameter(DontShow)] + [Parameter(ParameterSetName='SetExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Collections.Hashtable] - # This can be used to provide optional headers. - ${Headers}, + [System.String] + # Gets or sets CapitalOrMajorCity filter for user query. + ${CapitalOrMajorCity}, - [Parameter()] + [Parameter(ParameterSetName='SetExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${IsSystemTenant} + [System.String] + # Gets or sets CountryOrRegion filter for user query. + ${CountryOrRegion}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets bridge FromNumber to be updated. + ${FromNumber}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets number inventory type Toll or TollFreee. + ${NumberType}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets whether or not users who are modified by this operation should have their existing conferences rescheduled. + ${RescheduleMeeting}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets bridge ToNumber to be set as default number. + ${ToNumber}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} ) begin { @@ -32057,157 +32396,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOCEContext'; - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -# .ExternalHelp en-US\MicrosoftTeams-help -function Set-CsOdcUserDefaultNumber { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser])] -[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUsersDefaultNumberUpdateRequest] - # Update all users default service number. - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets AreaOrState filter for user query. - ${AreaOrState}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets bridge id to use for service number change. - ${BridgeId}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets bridge name to use for service number change. - ${BridgeName}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets CapitalOrMajorCity filter for user query. - ${CapitalOrMajorCity}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets CountryOrRegion filter for user query. - ${CountryOrRegion}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets bridge FromNumber to be updated. - ${FromNumber}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets number inventory type Toll or TollFreee. - ${NumberType}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets whether or not users who are modified by this operation should have their existing conferences rescheduled. - ${RescheduleMeeting}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets bridge ToNumber to be set as default number. - ${ToNumber}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcUserDefaultNumber_Set'; - SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcUserDefaultNumber_SetExpanded'; + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcUserDefaultNumber_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcUserDefaultNumber_SetExpanded'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -34782,11 +34972,6 @@ param( [System.Int32] ${SipSignalingPort}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${IPAddressVersion}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] @@ -35533,6 +35718,112 @@ end { } } +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsPhoneNumberTag { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Set', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${PhoneNumber}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${Tag}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsPhoneNumberTag_Set'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + # .ExternalHelp en-US\MicrosoftTeams-help function Set-CsPrivacyConfiguration { [CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] @@ -40510,11 +40801,6 @@ param( [System.Boolean] ${AllowFederatedUsers}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowPublicUsers}, - [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.Boolean] @@ -40567,8 +40853,8 @@ param( [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${CustomizeFederation}, + [System.String] + ${DomainBlockingForMDOAdminsInTeams}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] @@ -42878,6 +43164,112 @@ end { } } +# .ExternalHelp en-US\MicrosoftTeams-help +function Update-CsPhoneNumberTag { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Update', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${NewTag}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${Tag}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Update = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsPhoneNumberTag_Update'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + # .ExternalHelp en-US\MicrosoftTeams-help function Update-CsTeamsShiftsConnectionInstance { [OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConnectorInstanceResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] @@ -44665,34 +45057,24 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Get-CsConfigurationModern { -[CmdletBinding(DefaultParameterSetName='ConfigType', PositionalBinding=$false)] +function Get-CsComplianceRecordingForCallQueueTemplate { +[CmdletBinding(PositionalBinding=$false)] param( - [Parameter(Mandatory)] + [Parameter(Position=0)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - ${ConfigType}, + ${Id}, [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Collections.Hashtable] - ${PropertyBag}, + [System.Management.Automation.SwitchParameter] + ${Force}, - [Parameter(DontShow)] + [Parameter(Position=1, DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(ParameterSetName='Filter', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Filter}, - - [Parameter(ParameterSetName='Identity', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity} + ${HttpPipelinePrepend} ) begin { @@ -44704,9 +45086,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - ConfigType = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsConfigurationModern'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsConfigurationModern'; - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsConfigurationModern'; + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsComplianceRecordingForCallQueueTemplate'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -44741,108 +45121,34 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Get-CsMasVersionedSchemaData { -[CmdletBinding(PositionalBinding=$false)] +function Get-CsConfigurationModern { +[CmdletBinding(DefaultParameterSetName='ConfigType', PositionalBinding=$false)] param( [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - ${SchemaName}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - ${Identity}, + ${ConfigType}, [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - ${Version}, + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Collections.Hashtable] + ${PropertyBag}, [Parameter(DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsMasVersionedSchemaData'; - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} + ${HttpPipelinePrepend}, -# .ExternalHelp en-US\MicrosoftTeams-help -function Get-CsMeetingMigrationTransactionHistory { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=0, Mandatory)] + [Parameter(ParameterSetName='Filter', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Identity. - # Supports UPN and SIP - ${Identity}, + ${Filter}, - [Parameter(Position=1)] + [Parameter(ParameterSetName='Identity', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # CorrelationId - ${CorrelationId}, - - [Parameter(Position=2)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.DateTime] - # start time filter - to get meeting migration transaction history after starttime - ${StartTime}, - - [Parameter(Position=3)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.DateTime] - # end time filter - to get meeting migration transaction history before endtime - ${EndTime}, - - [Parameter(Position=4, DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend} + ${Identity} ) begin { @@ -44854,7 +45160,9 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsMeetingMigrationTransactionHistory'; + ConfigType = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsConfigurationModern'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsConfigurationModern'; + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsConfigurationModern'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -44889,45 +45197,38 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Get-CsMmsStatus { +function Get-CsMainlineAttendantAppointmentBookingFlow { [CmdletBinding(PositionalBinding=$false)] param( [Parameter(Position=0)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # end time filter - to get meeting migration status before endtime - ${EndTime}, + ${Identity}, [Parameter(Position=1)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Identity. - # Supports UPN and SIP, domainName LogonName - ${Identity}, + [System.Int32] + ${First}, [Parameter(Position=2)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Meeting migration type - SfbToSfb, SfbToTeams, TeamsToTeams, AllToTeams, ToSameType, Unknown - ${MigrationType}, + [System.Int32] + ${Skip}, [Parameter(Position=3)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # start time filter - to get meeting migration status after starttime - ${StartTime}, + ${SortBy}, [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.Management.Automation.SwitchParameter] - # SummaryOnly - to get only meting migration status summary. - ${SummaryOnly}, + ${Descending}, [Parameter(Position=4)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # state of meeting Migration status - Pending, InProgress, Failed, Succeeded - ${State}, + ${NameFilter}, [Parameter(Position=5, DontShow)] [ValidateNotNull()] @@ -44945,7 +45246,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsMmsStatus'; + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsMainlineAttendantAppointmentBookingFlow'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -44980,10 +45281,50 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Get-CsMoveTenantServiceInstanceTaskStatus { +function Get-CsMainlineAttendantFlow { [CmdletBinding(PositionalBinding=$false)] param( - [Parameter(Position=0, DontShow)] + [Parameter(Position=0)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Type}, + + [Parameter(Position=2)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ConfigurationId}, + + [Parameter(Position=3)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${First}, + + [Parameter(Position=4)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${Skip}, + + [Parameter(Position=5)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SortBy}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Descending}, + + [Parameter(Position=6)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NameFilter}, + + [Parameter(Position=7, DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] @@ -44999,7 +45340,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsMoveTenantServiceInstanceTaskStatus'; + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsMainlineAttendantFlow'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -45034,20 +45375,40 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Get-CsOnlineApplicationInstanceAssociation { +function Get-CsMainlineAttendantQuestionAnswerFlow { [CmdletBinding(PositionalBinding=$false)] param( - [Parameter(Position=0, Mandatory)] + [Parameter(Position=0)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] ${Identity}, [Parameter(Position=1)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${First}, + + [Parameter(Position=2)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${Skip}, + + [Parameter(Position=3)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SortBy}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.Management.Automation.SwitchParameter] - ${Force}, + ${Descending}, - [Parameter(DontShow)] + [Parameter(Position=4)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NameFilter}, + + [Parameter(Position=5, DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] @@ -45063,7 +45424,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsOnlineApplicationInstanceAssociation'; + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsMainlineAttendantQuestionAnswerFlow'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -45098,18 +45459,23 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Get-CsOnlineApplicationInstanceAssociationStatus { +function Get-CsMasVersionedSchemaData { [CmdletBinding(PositionalBinding=$false)] param( - [Parameter(Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + ${SchemaName}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] ${Identity}, - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + ${Version}, [Parameter(DontShow)] [ValidateNotNull()] @@ -45127,7 +45493,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsOnlineApplicationInstanceAssociationStatus'; + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsMasVersionedSchemaData'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -45162,20 +45528,35 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Get-CsOnlineAudioFile { +function Get-CsMeetingMigrationTransactionHistory { [CmdletBinding(PositionalBinding=$false)] param( - [Parameter(Position=0)] + [Parameter(Position=0, Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] + # Identity. + # Supports UPN and SIP ${Identity}, [Parameter(Position=1)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - ${ApplicationId}, + # CorrelationId + ${CorrelationId}, - [Parameter(DontShow)] + [Parameter(Position=2)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # start time filter - to get meeting migration transaction history after starttime + ${StartTime}, + + [Parameter(Position=3)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # end time filter - to get meeting migration transaction history before endtime + ${EndTime}, + + [Parameter(Position=4, DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] @@ -45191,7 +45572,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsOnlineAudioFile'; + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsMeetingMigrationTransactionHistory'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -45226,20 +45607,47 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Get-CsOnlineDialInConferencingUser { +function Get-CsMmsStatus { [CmdletBinding(PositionalBinding=$false)] param( [Parameter(Position=0)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] + # end time filter - to get meeting migration status before endtime + ${EndTime}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Identity. + # Supports UPN and SIP, domainName LogonName ${Identity}, + [Parameter(Position=2)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Meeting migration type - SfbToSfb, SfbToTeams, TeamsToTeams, AllToTeams, ToSameType, Unknown + ${MigrationType}, + + [Parameter(Position=3)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # start time filter - to get meeting migration status after starttime + ${StartTime}, + [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${ResultSize}, + [System.Management.Automation.SwitchParameter] + # SummaryOnly - to get only meting migration status summary. + ${SummaryOnly}, - [Parameter(DontShow)] + [Parameter(Position=4)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # state of meeting Migration status - Pending, InProgress, Failed, Succeeded + ${State}, + + [Parameter(Position=5, DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] @@ -45255,7 +45663,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsOnlineDialInConferencingUser'; + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsMmsStatus'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -45290,20 +45698,10 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Get-CsOnlineEnhancedEmergencyServiceDisclaimerModern { +function Get-CsMoveTenantServiceInstanceTaskStatus { [CmdletBinding(PositionalBinding=$false)] param( - [Parameter(Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CountryOrRegion}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Version}, - - [Parameter(Position=2, DontShow)] + [Parameter(Position=0, DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] @@ -45319,7 +45717,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsOnlineEnhancedEmergencyServiceDisclaimerModern'; + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsMoveTenantServiceInstanceTaskStatus'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -45354,20 +45752,20 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Get-CsOnlineSchedule { +function Get-CsOnlineApplicationInstanceAssociation { [CmdletBinding(PositionalBinding=$false)] param( - [Parameter(Position=0)] + [Parameter(Position=0, Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - ${Id}, + ${Identity}, - [Parameter()] + [Parameter(Position=1)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.Management.Automation.SwitchParameter] ${Force}, - [Parameter(Position=1, DontShow)] + [Parameter(DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] @@ -45383,7 +45781,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsOnlineSchedule'; + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsOnlineApplicationInstanceAssociation'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -45418,24 +45816,24 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Get-CsOnlineTelephoneNumberOrder { -[CmdletBinding(DefaultParameterSetName='Search', PositionalBinding=$false)] +function Get-CsOnlineApplicationInstanceAssociationStatus { +[CmdletBinding(PositionalBinding=$false)] param( - [Parameter(Mandatory)] + [Parameter(Position=0, Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - ${OrderId}, + ${Identity}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, [Parameter(DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(ParameterSetName='Generic')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OrderType} + ${HttpPipelinePrepend} ) begin { @@ -45447,8 +45845,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Search = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsOnlineTelephoneNumberOrder'; - Generic = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsOnlineTelephoneNumberOrder'; + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsOnlineApplicationInstanceAssociationStatus'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -45483,18 +45880,18 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Get-CsOnlineVoicemailUserSettings { +function Get-CsOnlineAudioFile { [CmdletBinding(PositionalBinding=$false)] param( - [Parameter(Position=0, Mandatory)] + [Parameter(Position=0)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] ${Identity}, [Parameter(Position=1)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, + [System.String] + ${ApplicationId}, [Parameter(DontShow)] [ValidateNotNull()] @@ -45512,7 +45909,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsOnlineVoicemailUserSettings'; + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsOnlineAudioFile'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -45547,9 +45944,19 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Get-CsTeamsSettingsCustomApp { -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Get-CsOnlineDialInConferencingUser { +[CmdletBinding(PositionalBinding=$false)] param( + [Parameter(Position=0)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${ResultSize}, + [Parameter(DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] @@ -45566,7 +45973,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsTeamsSettingsCustomApp'; + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsOnlineDialInConferencingUser'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -45601,16 +46008,20 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Get-CsTeamTemplateList { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateSummary], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorObject])] -[CmdletBinding(DefaultParameterSetName='DefaultLocaleOverride', PositionalBinding=$false)] +function Get-CsOnlineEnhancedEmergencyServiceDisclaimerModern { +[CmdletBinding(PositionalBinding=$false)] param( - [Parameter(Position=0)] + [Parameter(Position=0, Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - ${PublicTemplateLocale}, + ${CountryOrRegion}, - [Parameter(Position=1, DontShow)] + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Version}, + + [Parameter(Position=2, DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] @@ -45626,7 +46037,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - DefaultLocaleOverride = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsTeamTemplateList'; + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsOnlineEnhancedEmergencyServiceDisclaimerModern'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -45661,10 +46072,20 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Get-CsTenantPoint { +function Get-CsOnlineSchedule { [CmdletBinding(PositionalBinding=$false)] param( - [Parameter(Position=0, DontShow)] + [Parameter(Position=0)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Id}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(Position=1, DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] @@ -45680,7 +46101,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsTenantPoint'; + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsOnlineSchedule'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -45715,39 +46136,24 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Get-CsUserList { -[CmdletBinding(PositionalBinding=$false)] +function Get-CsOnlineTelephoneNumberOrder { +[CmdletBinding(DefaultParameterSetName='Search', PositionalBinding=$false)] param( - [Parameter(Position=0)] + [Parameter(Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${ResultSize}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${SkipUserPolicies}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${SoftDeletedUsers}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Models.AccountType] - ${AccountType}, + ${OrderId}, [Parameter(DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend} + ${HttpPipelinePrepend}, + + [Parameter(ParameterSetName='Generic')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OrderType} ) begin { @@ -45759,7 +46165,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsUserList'; + Search = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsOnlineTelephoneNumberOrder'; + Generic = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsOnlineTelephoneNumberOrder'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -45794,7 +46201,7 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Get-CsUserPoint { +function Get-CsOnlineVoicemailUserSettings { [CmdletBinding(PositionalBinding=$false)] param( [Parameter(Position=0, Mandatory)] @@ -45802,15 +46209,10 @@ param( [System.String] ${Identity}, - [Parameter()] + [Parameter(Position=1)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.Management.Automation.SwitchParameter] - ${SkipUserPolicies}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - ${Properties}, + ${Force}, [Parameter(DontShow)] [ValidateNotNull()] @@ -45828,7 +46230,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsUserPoint'; + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsOnlineVoicemailUserSettings'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -45863,56 +46265,20 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Get-CsUserSearch { +function Get-CsSharedCallQueueHistoryTemplate { [CmdletBinding(PositionalBinding=$false)] param( [Parameter(Position=0)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - ${Identity}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - ${Identities}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Filter}, - - [Parameter()] - [Alias('Sort')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OrderBy}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${ResultSize}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${SkipUserPolicies}, + ${Id}, [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.Management.Automation.SwitchParameter] - ${SoftDeletedUsers}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Models.AccountType] - ${AccountType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - ${Properties}, + ${Force}, - [Parameter(DontShow)] + [Parameter(Position=1, DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] @@ -45928,7 +46294,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsUserSearch'; + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsSharedCallQueueHistoryTemplate'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -45963,54 +46329,73 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Get-CsVoiceUserList { +function Get-CsTagsTemplate { [CmdletBinding(PositionalBinding=$false)] param( [Parameter(Position=0)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - ${Identity}, + ${Id}, - [Parameter(Position=1)] + [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.Management.Automation.SwitchParameter] - ${ExpandLocation}, + ${Force}, - [Parameter()] + [Parameter(Position=1, DontShow)] + [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${First}, + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${NumberAssigned}, +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${NumberNotAssigned}, + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsTagsTemplate'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Guid]] - ${LocationId}, + throw + } +} - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Guid]] - ${CivicAddressId}, +process { + try { + $steppablePipeline.Process($_) + } catch { - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Models.PSTNConnectivity] - ${PSTNConnectivity}, + throw + } - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Models.EnterpriseVoiceStatus] - ${EnterpriseVoiceStatus}, +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsSettingsCustomApp { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( [Parameter(DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] @@ -46027,7 +46412,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsVoiceUserList'; + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsTeamsSettingsCustomApp'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -46062,20 +46447,16 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Get-CsVoiceUserPoint { -[CmdletBinding(PositionalBinding=$false)] +function Get-CsTeamTemplateList { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateSummary], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorObject])] +[CmdletBinding(DefaultParameterSetName='DefaultLocaleOverride', PositionalBinding=$false)] param( - [Parameter(Position=0, Mandatory)] + [Parameter(Position=0)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - ${Identity}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${ExpandLocation}, + ${PublicTemplateLocale}, - [Parameter(DontShow)] + [Parameter(Position=1, DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] @@ -46091,7 +46472,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsVoiceUserPoint'; + DefaultLocaleOverride = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsTeamTemplateList'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -46126,13 +46507,14 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Get-FormatsForConfig { +function Get-CsTenantPoint { [CmdletBinding(PositionalBinding=$false)] param( - [Parameter(Position=0, Mandatory)] + [Parameter(Position=0, DontShow)] + [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ConfigType} + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} ) begin { @@ -46144,7 +46526,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-FormatsForConfig'; + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsTenantPoint'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -46179,13 +46561,39 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Get-StatusRecordStatusCodeString { +function Get-CsUserList { [CmdletBinding(PositionalBinding=$false)] param( [Parameter(Position=0)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - ${StatusRecordErrorCode} + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${ResultSize}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${SkipUserPolicies}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${SoftDeletedUsers}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Models.AccountType] + ${AccountType}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} ) begin { @@ -46197,7 +46605,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-StatusRecordStatusCodeString'; + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsUserList'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -46232,13 +46640,29 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Get-StatusRecordStatusString { +function Get-CsUserPoint { [CmdletBinding(PositionalBinding=$false)] param( - [Parameter(Position=0)] + [Parameter(Position=0, Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - ${StatusRecordStatus} + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${SkipUserPolicies}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + ${Properties}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} ) begin { @@ -46250,7 +46674,429 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-StatusRecordStatusString'; + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsUserPoint'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsUserSearch { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + ${Identities}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter}, + + [Parameter()] + [Alias('Sort')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OrderBy}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${ResultSize}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${SkipUserPolicies}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${SoftDeletedUsers}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Models.AccountType] + ${AccountType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + ${Properties}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsUserSearch'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsVoiceUserList { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${ExpandLocation}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${First}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${NumberAssigned}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${NumberNotAssigned}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Guid]] + ${LocationId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Guid]] + ${CivicAddressId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Models.PSTNConnectivity] + ${PSTNConnectivity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Models.EnterpriseVoiceStatus] + ${EnterpriseVoiceStatus}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsVoiceUserList'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsVoiceUserPoint { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${ExpandLocation}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsVoiceUserPoint'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-FormatsForConfig { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ConfigType} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-FormatsForConfig'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-StatusRecordStatusCodeString { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${StatusRecordErrorCode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-StatusRecordStatusCodeString'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-StatusRecordStatusString { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${StatusRecordStatus} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-StatusRecordStatusString'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -47128,6 +47974,16 @@ param( [System.String] ${UserNameExtension}, + [Parameter(Position=15)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${EnableMainlineAttendant}, + + [Parameter(Position=16)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MainlineAttendantAgentVoiceId}, + [Parameter(DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] @@ -47607,6 +48463,31 @@ param( [System.Management.Automation.SwitchParameter] ${Force}, + [Parameter(Position=6)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(Position=7)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MainlineAttendantTarget}, + + [Parameter(Position=8)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.OAA.Models.AgentTargetType] + ${AgentTargetType}, + + [Parameter(Position=9)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AgentTarget}, + + [Parameter(Position=10)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AgentTargetTagTemplateId}, + [Parameter(DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] @@ -48219,6 +49100,46 @@ param( [System.Nullable[System.Int32]] ${ServiceLevelThresholdResponseTimeInSecond}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ShiftsTeamId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ShiftsSchedulingGroupId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TextAnnouncementForCR}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CustomAudioFileAnnouncementForCR}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TextAnnouncementForCRFailure}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CustomAudioFileAnnouncementForCRFailure}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + ${ComplianceRecordingForCallQueueTemplateId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SharedCallQueueHistoryTemplateId}, + [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.Management.Automation.SwitchParameter] @@ -48275,20 +49196,45 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function New-CsConfigurationModern { +function New-CsComplianceRecordingForCallQueueTemplate { [CmdletBinding(PositionalBinding=$false)] param( [Parameter(Position=0, Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - ${ConfigType}, + ${Name}, [Parameter(Position=1, Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Collections.Hashtable] - ${PropertyBag}, + [System.String] + ${Description}, - [Parameter(Position=2, DontShow)] + [Parameter(Position=2, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${BotApplicationInstanceObjectId}, + + [Parameter(Position=3)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${RequiredDuringCall}, + + [Parameter(Position=4)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${RequiredBeforeCall}, + + [Parameter(Position=5)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${ConcurrentInvitationCount}, + + [Parameter(Position=6)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PairedApplicationInstanceObjectId}, + + [Parameter(DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] @@ -48304,7 +49250,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsConfigurationModern'; + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsComplianceRecordingForCallQueueTemplate'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -48339,26 +49285,20 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function New-CsCustomPolicyPackage { -[OutputType([System.String])] -[CmdletBinding(DefaultParameterSetName='RequiredPolicyList', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function New-CsConfigurationModern { +[CmdletBinding(PositionalBinding=$false)] param( [Parameter(Position=0, Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${Identity}, + [System.String] + ${ConfigType}, [Parameter(Position=1, Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - ${PolicyList}, - - [Parameter(Position=2)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${Description}, + [System.Collections.Hashtable] + ${PropertyBag}, - [Parameter(DontShow)] + [Parameter(Position=2, DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] @@ -48374,7 +49314,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - RequiredPolicyList = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsCustomPolicyPackage'; + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsConfigurationModern'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -48409,33 +49349,24 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function New-CsOnlineApplicationInstanceAssociation { -[CmdletBinding(PositionalBinding=$false)] +function New-CsCustomPolicyPackage { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='RequiredPolicyList', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(Position=0, Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - ${Identities}, + [System.Object] + ${Identity}, [Parameter(Position=1, Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ConfigurationId}, - - [Parameter(Position=2, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ConfigurationType}, - - [Parameter(Position=3)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int16] - ${CallPriority}, + [System.String[]] + ${PolicyList}, - [Parameter(Position=4)] + [Parameter(Position=2)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, + [System.Object] + ${Description}, [Parameter(DontShow)] [ValidateNotNull()] @@ -48453,7 +49384,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsOnlineApplicationInstanceAssociation'; + RequiredPolicyList = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsCustomPolicyPackage'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -48488,23 +49419,33 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function New-CsOnlineDateTimeRange { -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function New-CsMainlineAttendantAppointmentBookingFlow { +[CmdletBinding(PositionalBinding=$false)] param( [Parameter(Position=0, Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - ${Start}, + ${Name}, - [Parameter(Position=1)] + [Parameter(Position=1, Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - ${End}, + ${Description}, - [Parameter(Position=2)] + [Parameter(Position=2, Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, + [Microsoft.Rtc.Management.Hosted.Online.Models.CallerAuthenticationMethod] + ${CallerAuthenticationMethod}, + + [Parameter(Position=3, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.Online.Models.ApiAuthenticationType] + ${ApiAuthenticationType}, + + [Parameter(Position=4, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ApiDefinitions}, [Parameter(DontShow)] [ValidateNotNull()] @@ -48522,7 +49463,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsOnlineDateTimeRange'; + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsMainlineAttendantAppointmentBookingFlow'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -48557,34 +49498,34 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function New-CsOnlineDirectRoutingTelephoneNumberUploadOrder { -[CmdletBinding(DefaultParameterSetName='InputByList', PositionalBinding=$false)] +function New-CsMainlineAttendantQuestionAnswerFlow { +[CmdletBinding(PositionalBinding=$false)] param( - [Parameter(ParameterSetName='InputByList')] + [Parameter(Position=0, Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - ${TelephoneNumber}, + ${Name}, - [Parameter(DontShow)] - [ValidateNotNull()] + [Parameter(Position=1, Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, + [System.String] + ${Description}, - [Parameter(ParameterSetName='InputByRange')] + [Parameter(Position=3, Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - ${StartingNumber}, + ${KnowledgeBase}, - [Parameter(ParameterSetName='InputByRange')] + [Parameter(Position=2)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${EndingNumber}, + [Microsoft.Rtc.Management.Hosted.Online.Models.ApiAuthenticationType] + ${ApiAuthenticationType}, - [Parameter(ParameterSetName='InputByFile')] + [Parameter(DontShow)] + [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Byte[]] - ${FileContent} + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} ) begin { @@ -48596,9 +49537,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - InputByList = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsOnlineDirectRoutingTelephoneNumberUploadOrder'; - InputByRange = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsOnlineDirectRoutingTelephoneNumberUploadOrder'; - InputByFile = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsOnlineDirectRoutingTelephoneNumberUploadOrder'; + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsMainlineAttendantQuestionAnswerFlow'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -48633,79 +49572,39 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function New-CsOnlineSchedule { -[CmdletBinding(DefaultParameterSetName='UnresolvedParamSet', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function New-CsOnlineApplicationInstanceAssociation { +[CmdletBinding(PositionalBinding=$false)] param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Name}, - - [Parameter()] + [Parameter(Position=0, Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, + [System.String[]] + ${Identities}, - [Parameter(DontShow)] - [ValidateNotNull()] + [Parameter(Position=1, Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, + [System.String] + ${ConfigurationId}, - [Parameter(ParameterSetName='FixedScheduleParamSet', Mandatory)] + [Parameter(Position=2, Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${FixedSchedule}, + [System.String] + ${ConfigurationType}, - [Parameter(ParameterSetName='FixedScheduleParamSet')] + [Parameter(Position=3)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${DateTimeRanges}, + [System.Int16] + ${CallPriority}, - [Parameter(ParameterSetName='WeeklyRecurrentScheduleParamSet', Mandatory)] + [Parameter(Position=4)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.Management.Automation.SwitchParameter] - ${WeeklyRecurrentSchedule}, - - [Parameter(ParameterSetName='WeeklyRecurrentScheduleParamSet')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${MondayHours}, - - [Parameter(ParameterSetName='WeeklyRecurrentScheduleParamSet')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${TuesdayHours}, - - [Parameter(ParameterSetName='WeeklyRecurrentScheduleParamSet')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${WednesdayHours}, - - [Parameter(ParameterSetName='WeeklyRecurrentScheduleParamSet')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${ThursdayHours}, - - [Parameter(ParameterSetName='WeeklyRecurrentScheduleParamSet')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${FridayHours}, - - [Parameter(ParameterSetName='WeeklyRecurrentScheduleParamSet')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${SaturdayHours}, - - [Parameter(ParameterSetName='WeeklyRecurrentScheduleParamSet')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${SundayHours}, + ${Force}, - [Parameter(ParameterSetName='WeeklyRecurrentScheduleParamSet')] + [Parameter(DontShow)] + [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Complement} + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} ) begin { @@ -48717,9 +49616,273 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - UnresolvedParamSet = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsOnlineSchedule'; - FixedScheduleParamSet = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsOnlineSchedule'; - WeeklyRecurrentScheduleParamSet = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsOnlineSchedule'; + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsOnlineApplicationInstanceAssociation'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsOnlineDateTimeRange { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Start}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${End}, + + [Parameter(Position=2)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsOnlineDateTimeRange'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsOnlineDirectRoutingTelephoneNumberUploadOrder { +[CmdletBinding(DefaultParameterSetName='InputByList', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='InputByList')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TelephoneNumber}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend}, + + [Parameter(ParameterSetName='InputByRange')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${StartingNumber}, + + [Parameter(ParameterSetName='InputByRange')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${EndingNumber}, + + [Parameter(ParameterSetName='InputByFile')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Byte[]] + ${FileContent} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + InputByList = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsOnlineDirectRoutingTelephoneNumberUploadOrder'; + InputByRange = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsOnlineDirectRoutingTelephoneNumberUploadOrder'; + InputByFile = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsOnlineDirectRoutingTelephoneNumberUploadOrder'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsOnlineSchedule { +[CmdletBinding(DefaultParameterSetName='UnresolvedParamSet', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Name}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend}, + + [Parameter(ParameterSetName='FixedScheduleParamSet', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${FixedSchedule}, + + [Parameter(ParameterSetName='FixedScheduleParamSet')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${DateTimeRanges}, + + [Parameter(ParameterSetName='WeeklyRecurrentScheduleParamSet', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${WeeklyRecurrentSchedule}, + + [Parameter(ParameterSetName='WeeklyRecurrentScheduleParamSet')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${MondayHours}, + + [Parameter(ParameterSetName='WeeklyRecurrentScheduleParamSet')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${TuesdayHours}, + + [Parameter(ParameterSetName='WeeklyRecurrentScheduleParamSet')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${WednesdayHours}, + + [Parameter(ParameterSetName='WeeklyRecurrentScheduleParamSet')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${ThursdayHours}, + + [Parameter(ParameterSetName='WeeklyRecurrentScheduleParamSet')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${FridayHours}, + + [Parameter(ParameterSetName='WeeklyRecurrentScheduleParamSet')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${SaturdayHours}, + + [Parameter(ParameterSetName='WeeklyRecurrentScheduleParamSet')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${SundayHours}, + + [Parameter(ParameterSetName='WeeklyRecurrentScheduleParamSet')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Complement} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + UnresolvedParamSet = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsOnlineSchedule'; + FixedScheduleParamSet = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsOnlineSchedule'; + WeeklyRecurrentScheduleParamSet = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsOnlineSchedule'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -48956,6 +50119,207 @@ end { } } +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsSharedCallQueueHistoryTemplate { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Name}, + + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(Position=2)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.Online.Models.IncomingMissedCalls] + ${IncomingMissedCalls}, + + [Parameter(Position=3)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.Online.Models.AnsweredAndOutboundCalls] + ${AnsweredAndOutboundCalls}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsSharedCallQueueHistoryTemplate'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTag { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TagName}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.OAA.Models.CallableEntity] + ${TagDetails} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsTag'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTagsTemplate { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Name}, + + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(Position=2, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.PSObject[]] + ${Tags}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsTagsTemplate'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + # .ExternalHelp en-US\MicrosoftTeams-help function New-CsTeamTemplate { [OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTemplateResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse])] @@ -49482,20 +50846,20 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Remove-CsConfigurationModern { -[CmdletBinding(PositionalBinding=$false)] +function Remove-CsComplianceRecordingForCallQueueTemplate { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(Position=0, Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - ${ConfigType}, + ${Id}, - [Parameter(Position=1, Mandatory)] + [Parameter(Position=1)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, + [System.Management.Automation.SwitchParameter] + ${Force}, - [Parameter(Position=2, DontShow)] + [Parameter(DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] @@ -49511,7 +50875,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Remove-CsConfigurationModern'; + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Remove-CsComplianceRecordingForCallQueueTemplate'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -49546,20 +50910,20 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Remove-CsOnlineApplicationInstanceAssociation { -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Remove-CsConfigurationModern { +[CmdletBinding(PositionalBinding=$false)] param( [Parameter(Position=0, Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - ${Identities}, + [System.String] + ${ConfigType}, - [Parameter(Position=1)] + [Parameter(Position=1, Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, + [System.String] + ${Identity}, - [Parameter(DontShow)] + [Parameter(Position=2, DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] @@ -49575,7 +50939,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Remove-CsOnlineApplicationInstanceAssociation'; + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Remove-CsConfigurationModern'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -49610,14 +50974,19 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Remove-CsOnlineAudioFile { -[CmdletBinding(PositionalBinding=$false)] +function Remove-CsMainlineAttendantAppointmentBookingFlow { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(Position=0, Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] ${Identity}, + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + [Parameter(DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] @@ -49634,7 +51003,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Remove-CsOnlineAudioFile'; + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Remove-CsMainlineAttendantAppointmentBookingFlow'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -49669,13 +51038,13 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Remove-CsOnlineSchedule { +function Remove-CsMainlineAttendantQuestionAnswerFlow { [CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(Position=0, Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - ${Id}, + ${Identity}, [Parameter(Position=1)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] @@ -49698,7 +51067,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Remove-CsOnlineSchedule'; + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Remove-CsMainlineAttendantQuestionAnswerFlow'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -49733,13 +51102,18 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Remove-CsOnlineTelephoneNumberModern { -[CmdletBinding(PositionalBinding=$false)] +function Remove-CsOnlineApplicationInstanceAssociation { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(Position=0, Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String[]] - ${TelephoneNumber}, + ${Identities}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, [Parameter(DontShow)] [ValidateNotNull()] @@ -49757,7 +51131,189 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Remove-CsOnlineTelephoneNumberModern'; + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Remove-CsOnlineApplicationInstanceAssociation'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsOnlineAudioFile { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Remove-CsOnlineAudioFile'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsOnlineSchedule { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Id}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Remove-CsOnlineSchedule'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsOnlineTelephoneNumberModern { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + ${TelephoneNumber}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Remove-CsOnlineTelephoneNumberModern'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -49810,6 +51366,11 @@ param( [System.String] ${PhoneNumberType}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Notify}, + [Parameter(DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] @@ -49866,6 +51427,134 @@ end { } } +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsSharedCallQueueHistoryTemplate { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Id}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Remove-CsSharedCallQueueHistoryTemplate'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTagsTemplate { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Id}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Remove-CsTagsTemplate'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + # .ExternalHelp en-US\MicrosoftTeams-help function Remove-CsUserCallingDelegate { [CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] @@ -50418,6 +52107,46 @@ param( [System.Nullable[System.Int32]] ${ServiceLevelThresholdResponseTimeInSecond}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ShiftsTeamId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TextAnnouncementForCR}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CustomAudioFileAnnouncementForCR}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TextAnnouncementForCRFailure}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CustomAudioFileAnnouncementForCRFailure}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + ${ComplianceRecordingForCallQueueTemplateId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SharedCallQueueHistoryTemplateId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ShiftsSchedulingGroupId}, + [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.Management.Automation.SwitchParameter] @@ -50473,6 +52202,70 @@ end { } } +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsComplianceRecordingForCallQueueTemplate { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.PSObject] + ${Instance}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsComplianceRecordingForCallQueueTemplate'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + # .ExternalHelp en-US\MicrosoftTeams-help function Set-CsConfigurationModern { [CmdletBinding(PositionalBinding=$false)] @@ -50537,6 +52330,124 @@ end { } } +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsMainlineAttendantAppointmentBookingFlow { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.PSObject] + ${Instance}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsMainlineAttendantAppointmentBookingFlow'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsMainlineAttendantQuestionAnswerFlow { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.PSObject] + ${Instance}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsMainlineAttendantQuestionAnswerFlow'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + # .ExternalHelp en-US\MicrosoftTeams-help function Set-CsOdcServiceNumber { [CmdletBinding(PositionalBinding=$false)] @@ -50822,43 +52733,349 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Set-CsOnlineEnhancedEmergencyServiceDisclaimerModern { -[CmdletBinding(PositionalBinding=$false)] +function Set-CsOnlineEnhancedEmergencyServiceDisclaimerModern { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CountryOrRegion}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Version}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${ForceAccept}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Response}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${RespondedByObjectId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ResponseTimestamp}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Locale}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsOnlineEnhancedEmergencyServiceDisclaimerModern'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineSchedule { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${Instance}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsOnlineSchedule'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineSipDomainModern { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Domain}, + + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Action}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsOnlineSipDomainModern'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineVoicemailUserSettings { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.Voicemail.Models.CallAnswerRules] + ${CallAnswerRule}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${DefaultGreetingPromptOverwrite}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${DefaultOofGreetingPromptOverwrite}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Boolean]] + ${OofGreetingEnabled}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Boolean]] + ${OofGreetingFollowAutomaticRepliesEnabled}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PromptLanguage}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Boolean]] + ${ShareData}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TransferTarget}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Boolean]] + ${VoicemailEnabled}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsOnlineVoicemailUserSettings'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineVoiceUserV2 { +[CmdletBinding(DefaultParameterSetName='Id', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(Position=0, Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - ${CountryOrRegion}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Version}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${ForceAccept}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Response}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${RespondedByObjectId}, + ${Identity}, [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - ${ResponseTimestamp}, + ${TelephoneNumber}, [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - ${Locale}, + ${LocationId}, [Parameter(DontShow)] [ValidateNotNull()] @@ -50876,7 +53093,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsOnlineEnhancedEmergencyServiceDisclaimerModern'; + Id = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsOnlineVoiceUserV2'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -50911,88 +53128,85 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Set-CsOnlineSchedule { -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Set-CsPersonalAttendantSettings { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] param( - [Parameter(Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${Instance}, - - [Parameter(Position=1)] + [Parameter(Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, + [System.String] + ${Identity}, [Parameter(DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend} -) + ${HttpPipelinePrepend}, -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName + [Parameter(ParameterSetName='PersonalAttendantOnOff', Mandatory)] + [Parameter(ParameterSetName='PersonalAttendant', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsPersonalAttendantEnabled}, - $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsOnlineSchedule'; - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { + [Parameter(ParameterSetName='PersonalAttendant', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${DefaultLanguage}, - throw - } -} + [Parameter(ParameterSetName='PersonalAttendant', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsBookingCalendarEnabled}, -process { - try { - $steppablePipeline.Process($_) - } catch { + [Parameter(ParameterSetName='PersonalAttendant', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsCallScreeningEnabled}, - throw - } + [Parameter(ParameterSetName='PersonalAttendant', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowInboundInternalCalls}, -} -end { - try { - $steppablePipeline.End() + [Parameter(ParameterSetName='PersonalAttendant', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowInboundFederatedCalls}, - } catch { + [Parameter(ParameterSetName='PersonalAttendant', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowInboundPSTNCalls}, - throw - } -} -} + [Parameter(ParameterSetName='PersonalAttendant', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsAutomaticTranscriptionEnabled}, -# .ExternalHelp en-US\MicrosoftTeams-help -function Set-CsOnlineSipDomainModern { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=0, Mandatory)] + [Parameter(ParameterSetName='PersonalAttendant', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsAutomaticRecordingEnabled}, + + [Parameter(ParameterSetName='PersonalAttendant')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - ${Domain}, + ${DefaultVoice}, - [Parameter(Position=1, Mandatory)] + [Parameter(ParameterSetName='PersonalAttendant')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - ${Action}, + ${CalleeName}, - [Parameter(DontShow)] - [ValidateNotNull()] + [Parameter(ParameterSetName='PersonalAttendant')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend} + [System.String] + ${DefaultTone}, + + [Parameter(ParameterSetName='PersonalAttendant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsNonContactCallbackEnabled} ) begin { @@ -51004,7 +53218,9 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsOnlineSipDomainModern'; + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsPersonalAttendantSettings'; + PersonalAttendantOnOff = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsPersonalAttendantSettings'; + PersonalAttendant = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsPersonalAttendantSettings'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -51039,69 +53255,66 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Set-CsOnlineVoicemailUserSettings { -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Set-CsPhoneNumberAssignment { +[CmdletBinding(DefaultParameterSetName='LocationUpdate', PositionalBinding=$false)] param( - [Parameter(Position=0, Mandatory)] + [Parameter(ParameterSetName='LocationUpdate', Mandatory)] + [Parameter(ParameterSetName='Assignment', Mandatory)] + [Parameter(ParameterSetName='ReverseNumberLookupUpdate', Mandatory)] + [Parameter(ParameterSetName='NetworkSiteUpdate', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Rtc.Management.Hosted.Voicemail.Models.CallAnswerRules] - ${CallAnswerRule}, + ${PhoneNumber}, - [Parameter()] + [Parameter(ParameterSetName='LocationUpdate', Mandatory)] + [Parameter(ParameterSetName='Assignment')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - ${DefaultGreetingPromptOverwrite}, + ${LocationId}, - [Parameter()] + [Parameter(DontShow)] + [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${DefaultOofGreetingPromptOverwrite}, + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend}, - [Parameter()] + [Parameter(ParameterSetName='Attribute', Mandatory)] + [Parameter(ParameterSetName='Assignment', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Boolean]] - ${OofGreetingEnabled}, + [System.String] + ${Identity}, - [Parameter()] + [Parameter(ParameterSetName='Attribute', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Boolean]] - ${OofGreetingFollowAutomaticRepliesEnabled}, + [System.Boolean] + ${EnterpriseVoiceEnabled}, - [Parameter()] + [Parameter(ParameterSetName='Assignment', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - ${PromptLanguage}, + ${PhoneNumberType}, - [Parameter()] + [Parameter(ParameterSetName='Assignment')] + [Parameter(ParameterSetName='NetworkSiteUpdate', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Boolean]] - ${ShareData}, + [System.String] + ${NetworkSiteId}, - [Parameter()] + [Parameter(ParameterSetName='Assignment')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - ${TransferTarget}, + ${AssignmentCategory}, - [Parameter()] + [Parameter(ParameterSetName='Assignment')] + [Parameter(ParameterSetName='ReverseNumberLookupUpdate', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Boolean]] - ${VoicemailEnabled}, + [System.String] + ${ReverseNumberLookup}, - [Parameter()] + [Parameter(ParameterSetName='Assignment')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend} + ${Notify} ) begin { @@ -51113,7 +53326,11 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsOnlineVoicemailUserSettings'; + LocationUpdate = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsPhoneNumberAssignment'; + Attribute = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsPhoneNumberAssignment'; + Assignment = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsPhoneNumberAssignment'; + ReverseNumberLookupUpdate = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsPhoneNumberAssignment'; + NetworkSiteUpdate = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsPhoneNumberAssignment'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -51148,23 +53365,18 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Set-CsOnlineVoiceUserV2 { -[CmdletBinding(DefaultParameterSetName='Id', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Set-CsSharedCallQueueHistoryTemplate { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(Position=0, Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TelephoneNumber}, + [System.Management.Automation.PSObject] + ${Instance}, - [Parameter()] + [Parameter(Position=1)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${LocationId}, + [System.Management.Automation.SwitchParameter] + ${Force}, [Parameter(DontShow)] [ValidateNotNull()] @@ -51182,7 +53394,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Id = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsOnlineVoiceUserV2'; + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsSharedCallQueueHistoryTemplate'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -51217,61 +53429,24 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Set-CsPhoneNumberAssignment { -[CmdletBinding(DefaultParameterSetName='LocationUpdate', PositionalBinding=$false)] +function Set-CsTagsTemplate { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='LocationUpdate', Mandatory)] - [Parameter(ParameterSetName='Assignment', Mandatory)] - [Parameter(ParameterSetName='ReverseNumberLookupUpdate', Mandatory)] - [Parameter(ParameterSetName='NetworkSiteUpdate', Mandatory)] + [Parameter(Position=0, Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PhoneNumber}, + [System.Management.Automation.PSObject] + ${Instance}, - [Parameter(ParameterSetName='LocationUpdate', Mandatory)] - [Parameter(ParameterSetName='Assignment')] + [Parameter(Position=1)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${LocationId}, + [System.Management.Automation.SwitchParameter] + ${Force}, [Parameter(DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(ParameterSetName='Attribute', Mandatory)] - [Parameter(ParameterSetName='Assignment', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter(ParameterSetName='Attribute', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnterpriseVoiceEnabled}, - - [Parameter(ParameterSetName='Assignment', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PhoneNumberType}, - - [Parameter(ParameterSetName='Assignment')] - [Parameter(ParameterSetName='NetworkSiteUpdate', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NetworkSiteId}, - - [Parameter(ParameterSetName='Assignment')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AssignmentCategory}, - - [Parameter(ParameterSetName='Assignment')] - [Parameter(ParameterSetName='ReverseNumberLookupUpdate', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ReverseNumberLookup} + ${HttpPipelinePrepend} ) begin { @@ -51283,11 +53458,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - LocationUpdate = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsPhoneNumberAssignment'; - Attribute = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsPhoneNumberAssignment'; - Assignment = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsPhoneNumberAssignment'; - ReverseNumberLookupUpdate = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsPhoneNumberAssignment'; - NetworkSiteUpdate = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsPhoneNumberAssignment'; + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsTagsTemplate'; } $cmdInfo = Get-Command -Name $mapping[$parameterSet] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) @@ -52110,42 +54281,42 @@ end { } # SIG # Begin signature block -# MIIoQwYJKoZIhvcNAQcCoIIoNDCCKDACAQExDzANBglghkgBZQMEAgEFADB5Bgor +# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCA9yVZ+Gb4Tqhx8 -# BJ6lXTQ4nmsQ78pdd9X5crJkF6spBaCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBkgNc3SV2m6Sgc +# z1TChY0ngz7tOvT8zgayZlr22W0TRaCCDXYwggX0MIID3KADAgECAhMzAAAEhV6Z +# 7A5ZL83XAAAAAASFMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM3WhcNMjYwNjE3MTgyMTM3WjB0MQsw # CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u # ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w +# AQDASkh1cpvuUqfbqxele7LCSHEamVNBfFE4uY1FkGsAdUF/vnjpE1dnAD9vMOqy +# 5ZO49ILhP4jiP/P2Pn9ao+5TDtKmcQ+pZdzbG7t43yRXJC3nXvTGQroodPi9USQi +# 9rI+0gwuXRKBII7L+k3kMkKLmFrsWUjzgXVCLYa6ZH7BCALAcJWZTwWPoiT4HpqQ +# hJcYLB7pfetAVCeBEVZD8itKQ6QA5/LQR+9X6dlSj4Vxta4JnpxvgSrkjXCz+tlJ +# 67ABZ551lw23RWU1uyfgCfEFhBfiyPR2WSjskPl9ap6qrf8fNQ1sGYun2p4JdXxe +# UAKf1hVa/3TQXjvPTiRXCnJPAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUuCZyGiCuLYE0aU7j5TFqY05kko0w # RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci +# MBQGA1UEBRMNMjMwMDEyKzUwNTM1OTAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci # tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j # b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG # CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu # Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq +# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBACjmqAp2Ci4sTHZci+qk +# tEAKsFk5HNVGKyWR2rFGXsd7cggZ04H5U4SV0fAL6fOE9dLvt4I7HBHLhpGdE5Uj +# Ly4NxLTG2bDAkeAVmxmd2uKWVGKym1aarDxXfv3GCN4mRX+Pn4c+py3S/6Kkt5eS +# DAIIsrzKw3Kh2SW1hCwXX/k1v4b+NH1Fjl+i/xPJspXCFuZB4aC5FLT5fgbRKqns +# WeAdn8DsrYQhT3QXLt6Nv3/dMzv7G/Cdpbdcoul8FYl+t3dmXM+SIClC3l2ae0wO +# lNrQ42yQEycuPU5OoqLT85jsZ7+4CaScfFINlO7l7Y7r/xauqHbSPQ1r3oIC+e71 +# 5s2G3ClZa3y99aYx2lnXYe1srcrIx8NAXTViiypXVn9ZGmEkfNcfDiqGQwkml5z9 +# nm3pWiBZ69adaBBbAFEjyJG4y0a76bel/4sDCVvaZzLM3TFbxVO9BQrjZRtbJZbk +# C3XArpLqZSfx53SuYdddxPX8pvcqFuEu8wcUeD05t9xNbJ4TtdAECJlEi0vvBxlm +# M5tzFXy2qZeqPMXHSQYqPgZ9jvScZ6NwznFD0+33kbzyhOSz/WuGbAu4cHZG8gKn +# lQVT4uA2Diex9DMs2WHiokNknYlLoUeWXW1QrJLpqO82TLyKTbBM/oZHAdIc0kzo +# STro9b3+vjn2809D0+SOOCVZMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq # hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x # EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv # bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 @@ -52185,144 +54356,144 @@ end { # XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA # 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt # Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw +# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw # EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN # aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB +# Z25pbmcgUENBIDIwMTECEzMAAASFXpnsDlkvzdcAAAAABIUwDQYJYIZIAWUDBAIB # BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIFa7KH/6kDjlkJMO+QIXfRai -# lUohhiwrJN/lNrrmOwRoMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A +# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIEscMFYNCcnOY66Fk7jQ6La9 +# n/+rO9ShrpMG4d3ll1OeMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A # cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAF5y+o/RHy5fgT5qqH6ZKJBvYoXhcnl36C5DqyCSqO0w7l0+2KVudBQyx -# DeaZHvF1RfvRuyGrKEmcA3qIq2QPS08EOgi0CNMsbJ6tEKKmua9VTYb3EhOY0qZ7 -# OHyYaFCAn8XyjVtfJiK+k9IXdL9tOgMfTf1i4ApNNP3u4CAo9BLCGeAP6ybc/Twu -# zITS5PRfv61hwrCQBmMiZZOA4PuSDz2dRxTaCBiXHHgR/Kk5O/uAjF5DFk3Tx75i -# 3HUpbwyZhGn6XskcWkBqiErCOXIwsZ++9Gq6KHHGcsLrv0FYEBB89Ho3Snuk3gln -# pyyum9gPlVKiZnsKpPgUvvHA5qRnIqGCF60wghepBgorBgEEAYI3AwMBMYIXmTCC -# F5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsq -# hkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCAXfk5rhrZW9f/L0MXMnbVm60wULPUiWXX7rkguiDmcfwIGZ7Y1x3Un -# GBMyMDI1MDMxMzA4NDcyNS4wMDNaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJV +# BQAEggEAZmAGn1n0y9mKzaNyeh9vxzKl7PrdBwdueox8/iGJl+eb2DvPEM6oNjvx +# zRld11sOitlN/nBDASbDRm5r2H4UhNVmkc0KPRV4Dm9HFdhzKNdtG8+nMc4g1v05 +# QQnwCesuNZh9gE+datNrsU9RKuocUiSXsCWPJAtsDLC/JQbJuaJS8fldgess3w3r +# n+eM6bVOiOhlpTXtRtnRTo5zYDXipTdEauJo1fR6gaF20sJ0NmIjYv3CcUWJ+E19 +# 7ZbgmDlLj1F9Bxh5AKAp/c8r+4F+rJU5x9eZqy27T4NDL68O89AUg/dCzdIjj5II +# RbOnUbdKb4KtIbWd2kCVmHrcF7uFyKGCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC +# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq +# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl +# AwQCAQUABCBvszC7o2PMK3q9tNrT6+2O295g5bMfqsffiurTMSgFYgIGaNry8iS+ +# GBMyMDI1MTAwMTA4MzMzMC45OTJaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV # UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# TjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB+R9njXWrpPGxAAEAAAH5MA0G -# CSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI0 -# MDcyNTE4MzEwOVoXDTI1MTAyMjE4MzEwOVowgdMxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9w -# ZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjJBMUEt -# MDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtD1MH3yAHWHNVslC+CBT -# j/Mpd55LDPtQrhN7WeqFhReC9xKXSjobW1ZHzHU8V2BOJUiYg7fDJ2AxGVGyovUt -# gGZg2+GauFKk3ZjjsLSsqehYIsUQrgX+r/VATaW8/ONWy6lOyGZwZpxfV2EX4qAh -# 6mb2hadAuvdbRl1QK1tfBlR3fdeCBQG+ybz9JFZ45LN2ps8Nc1xr41N8Qi3KVJLY -# X0ibEbAkksR4bbszCzvY+vdSrjWyKAjR6YgYhaBaDxE2KDJ2sQRFFF/egCxKgogd -# F3VIJoCE/Wuy9MuEgypea1Hei7lFGvdLQZH5Jo2QR5uN8hiMc8Z47RRJuIWCOeyI -# J1YnRiiibpUZ72+wpv8LTov0yH6C5HR/D8+AT4vqtP57ITXsD9DPOob8tjtsefPc -# QJebUNiqyfyTL5j5/J+2d+GPCcXEYoeWZ+nrsZSfrd5DHM4ovCmD3lifgYnzjOry -# 4ghQT/cvmdHwFr6yJGphW/HG8GQd+cB4w7wGpOhHVJby44kGVK8MzY9s32Dy1THn -# Jg8p7y1sEGz/A1y84Zt6gIsITYaccHhBKp4cOVNrfoRVUx2G/0Tr7Dk3fpCU8u+5 -# olqPPwKgZs57jl+lOrRVsX1AYEmAnyCyGrqRAzpGXyk1HvNIBpSNNuTBQk7FBvu+ -# Ypi6A7S2V2Tj6lzYWVBvuGECAwEAAaOCAUkwggFFMB0GA1UdDgQWBBSJ7aO6nJXJ -# I9eijzS5QkR2RlngADAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBf -# BgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmww -# bAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29m -# dC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0El -# MjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUF -# BwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEAZiAJgFbkf7jf -# hx/mmZlnGZrpae+HGpxWxs8I79vUb8GQou50M1ns7iwG2CcdoXaq7VgpVkNf1uvI -# hrGYpKCBXQ+SaJ2O0BvwuJR7UsgTaKN0j/yf3fpHD0ktH+EkEuGXs9DBLyt71iut -# Vkwow9iQmSk4oIK8S8ArNGpSOzeuu9TdJjBjsasmuJ+2q5TjmrgEKyPe3TApAio8 -# cdw/b1cBAmjtI7tpNYV5PyRI3K1NhuDgfEj5kynGF/uizP1NuHSxF/V1ks/2tCEo -# riicM4k1PJTTA0TCjNbkpmBcsAMlxTzBnWsqnBCt9d+Ud9Va3Iw9Bs4ccrkgBjLt -# g3vYGYar615ofYtU+dup+LuU0d2wBDEG1nhSWHaO+u2y6Si3AaNINt/pOMKU6l4A -# W0uDWUH39OHH3EqFHtTssZXaDOjtyRgbqMGmkf8KI3qIVBZJ2XQpnhEuRbh+Agpm -# Rn/a410Dk7VtPg2uC422WLC8H8IVk/FeoiSS4vFodhncFetJ0ZK36wxAa3FiPgBe -# bRWyVtZ763qDDzxDb0mB6HL9HEfTbN+4oHCkZa1HKl8B0s8RiFBMf/W7+O7EPZ+w -# MH8wdkjZ7SbsddtdRgRARqR8IFPWurQ+sn7ftEifaojzuCEahSAcq86yjwQeTPN9 -# YG9b34RTurnkpD+wPGTB1WccMpsLlM0wggdxMIIFWaADAgECAhMzAAAAFcXna54C -# m0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp -# Y2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMy -# MjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0B -# AQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51 -# yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY -# 6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9 -# cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN -# 7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDua -# Rr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74 -# kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2 -# K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5 -# TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZk -# i1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9Q -# BXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3Pmri -# Lq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUC -# BBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJl -# pxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIB -# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9y -# eS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUA -# YgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU -# 1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2Ny -# bC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIw -# MTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0w -# Ni0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/yp -# b+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulm -# ZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM -# 9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECW -# OKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4 -# FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3Uw -# xTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPX -# fx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVX -# VAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGC -# onsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU -# 5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEG -# ahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# TjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUAqs5WjWO7zVAKmIcdwhqgZvyp6UaggYMw -# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l +# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTYwMC0w +# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg +# ghHqMIIHIDCCBQigAwIBAgITMwAAAgTY4A4HlzJYmAABAAACBDANBgkqhkiG9w0B +# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE # BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsF -# AAIFAOt9CrswIhgPMjAyNTAzMTMwNzQxNDdaGA8yMDI1MDMxNDA3NDE0N1owdDA6 -# BgorBgEEAYRZCgQBMSwwKjAKAgUA630KuwIBADAHAgEAAgIPkjAHAgEAAgISUjAK -# AgUA635cOwIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIB -# AAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQBPToyfp6Ixu2Ed -# TOI43SVySVQtE7qaCjFsjmE7QVEUqnkeM7BlzjdRK03oDz+aGAmsA4cX8gbQ2/1O -# dJfQYDNzIt2emeRCWiWadOWzrU39WTvURucKo3nYbKo7h9+P0otBXs6XIrsu1E1q -# 8KTwzkMV+qTcJ0p077nYXgTWYyinUS0hSxYx0g4mmFAJaW3Nhccs1Z657IBM1GnF -# 8hLegzLQj7zm1ESU/RGeyFiONEgPU8ZByAKm5vE74Ecy7QHMj/HncNRNiTX2sl67 -# QFHwpT0mfjzXvN+9U5dWVl9Wbxv7rLiIyYLCgqmZN3kOGjw1MSF3hr+J3zx+ogMQ -# SNcq0xtHMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh +# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yNTAxMzAxOTQy +# NDdaFw0yNjA0MjIxOTQyNDdaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z +# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTYwMC0wNUUwLUQ5NDcxJTAjBgNV +# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB +# AQUAA4ICDwAwggIKAoICAQDw3Sbcee2d66vkWGTIXhfGqqgQGxQXTnq44XlUvNzF +# St7ELtO4B939jwZFX7DrRt/4fpzGNkFdGpc7EL5S86qKYv360eXjW+fIv1lAqDD3 +# 1d/p8Ai9/AZz8M95zo0rDpK2csz9WAyR9FtUDx52VOs9qP3/pgpHvgUvD8s6/3KN +# ITzms8QC1tJ3TMw1cRn9CZgVIYzw2iD/ZvOW0sbF/DRdgM8UdtxjFIKTXTaI/bJh +# sQge3TwayKQ2j85RafFFVCR5/ChapkrBQWGwNFaPzpmYN46mPiOvUxriISC9nQ/G +# rDXUJWzLDmchrmr2baABJevvw31UYlTlLZY6zUmjkgaRfpozd+Glq9TY2E3Dglr6 +# PtTEKgPu2hM6v8NiU5nTvxhDnxdmcf8UN7goeVlELXbOm7j8yw1xM9IyyQuUMWko +# rBaN/5r9g4lvYkMohRXEYB0tMaOPt0FmZmQMLBFpNRVnXBTa4haXvn1adKrvTz8V +# lfnHxkH6riA/h2AlqYWhv0YULsEcHnaDWgqA29ry+jH097MpJ/FHGHxk+d9kH2L5 +# aJPpAYuNmMNPB7FDTPWAx7Apjr/J5MhUx0i07gV2brAZ9J9RHi+fMPbS+Qm4AonC +# 5iOTj+dKCttVRs+jKKuO63CLwqlljvnUCmuSavOX54IXOtKcFZkfDdOZ7cE4DioP +# 1QIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFBp1dktAcGpW/Km6qm+vu4M1GaJfMB8G +# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG +# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy +# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w +# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy +# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG +# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD +# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQBecv6sRw2HTLMyUC1WJJ+FR+DgA9Jkv0lG +# sIt4y69CmOj8R63oFbhSmcdpakxqNbr8v9dyTb4RDyNqtohiiXbtrXmQK5X7y/Q+ +# +F0zMotTtTpTPvG3eltyV/LvO15mrLoNQ7W4VH58aLt030tORxs8VnAQQF5BmQQM +# Oua+EQgH4f1F4uF6rl3EC17JBSJ0wjHSea/n0WYiHPR0qkz/NRAf8lSUUV0gbIMa +# wGIjn7+RKyCr+8l1xdNkK/F0UYuX3hG0nE+9Wc0L4A/enluUN7Pa9vOV6Vi3BOJS +# T0RY/ax7iZ45leM8kqCw7BFPcTIkWzxpjr2nCtirnkw7OBQ6FNgwIuAvYNTU7r60 +# W421YFOL5pTsMZcNDOOsA01xv7ymCF6zknMGpRHuw0Rb2BAJC9quU7CXWbMbAJLd +# Z6XINKariSmCX3/MLdzcW5XOycK0QhoRNRf4WqXRshEBaY2ymJvHO48oSSY/kpuY +# vBS3ljAAuLN7Rp8jWS7t916paGeE7prmrP9FJsoy1LFKmFnW+vg43ANhByuAEXq9 +# Cay5o7K2H5NFnR5wj/SLRKwK1iyUX926i1TEviEiAh/PVyJbAD4koipig28p/6HD +# uiYOZ0wUkm/a5W8orIjoOdU3XsJ4i08CfNp5I73CsvB5QPYMcLpF9NO/1LvoQAw3 +# UPdL55M5HTCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI +# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw +# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x +# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy +# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC +# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV +# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp +# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC +# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg +# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF +# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 +# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp +# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu +# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E +# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 +# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q +# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ +# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA +# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw +# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG +# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV +# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj +# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK +# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC +# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX +# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v +# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI +# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG +# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x +# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC +# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 +# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM +# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS +# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d +# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn +# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs +# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL +# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL +# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNN +# MIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp +# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw +# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn +# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjk2MDAtMDVFMC1EOTQ3MSUwIwYDVQQD +# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQC6 +# PYHRw9+9SH+1pwy6qzVG3k9lbqCBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA7IbCsDAiGA8yMDI1MDkzMDIwNTcy +# MFoYDzIwMjUxMDAxMjA1NzIwWjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDshsKw +# AgEAMAcCAQACAhRVMAcCAQACAhOTMAoCBQDsiBQwAgEAMDYGCisGAQQBhFkKBAIx +# KDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZI +# hvcNAQELBQADggEBAG+Jbe5OTpkhXWMsYPhDqvEF1WZTANXQDcww4ZyHRuVaJj80 +# DbI4zpgImKhh+ZX5Ypm/QVLxbZs2J28olVxafNs0EplkQbVtv5CskZD25iLsTQSV +# xy+/ysXbs9ctusQf4ULK9OceVdmYsQYbikQ3TP1SHBKv1c5mD0B4nz8jLNyPiXbH +# 7EgBYrpitvI2xSBiBP6u0p+yW7BxlqPzsqO21OL+mu3MNZg42+GEGO2KmU1vtK3Z +# daRZrBMAZOxBbpKtYWZd/LXjrF8SiRXCef88cMTRZhL9MBoINHfE8892nO1yWjXo +# 7X9+wyp+7JOXIcajt+sxDdeG9LZMDEns3BCpPLcxggQNMIIECQIBATCBkzB8MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy +# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAgTY4A4HlzJYmAABAAACBDAN +# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G +# CSqGSIb3DQEJBDEiBCDsGMKspFuVdHm40nEg8OIgk2EP3XxNY7sFsXrMQm8D1TCB +# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIPnteGX9Wwq8VdJM6mjfx1GEJsu7 +# /6kU6l0SS5rcebn+MIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh # c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD # b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAH5H2eNdauk8bEAAQAAAfkwDQYJYIZIAWUDBAIBBQCgggFKMBoGCSqG -# SIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgXKeYTN3VsK+r -# dWTGKzzDVEeBhf+ZQnPhf24FMHAZdpEwgfoGCyqGSIb3DQEJEAIvMYHqMIHnMIHk -# MIG9BCA5I4zIHvCN+2T66RUOLCZrUEVdoKlKl8VeCO5SbGLYEDCBmDCBgKR+MHwx -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1p -# Y3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB+R9njXWrpPGxAAEAAAH5 -# MCIEIOwwq9kkNhEZXimi5g5/8pUbqoqiLXVIAkWn5Dl3iXxYMA0GCSqGSIb3DQEB -# CwUABIICAKlhSMex0fRlz7U/sQDpPlcs3Gij/SDN2ynPTDP22fi70CDocC+bHPfM -# b1AbKRbqfGmp9N3EooJlxnoMGWr+EdrumCtb5d2uHXppM6jcPjD9Fb7ZLPrGd11b -# JaM7DNAMOd+N+z3bLz1PcrbaTk20CcWcD59Gt4fGxcAP2Nw/GC1bgP/f0SXArEtN -# qMBV0rsPDdZudgKN18nV4gLcgksnVnQIToUJ3FMFPWgxvnN3jVIdQw/dxCTeFnLo -# GuLwJ8qrFv8ihEFSyKytJjDoSKVuBQVnBMDhFYQfYsG2UiO9OfPnZbttLlB3Obv2 -# fydv6uKfCCMZhslqFLGSSgqtR/dFLntIk7pvljAHdxseUQ3fky3IP33Kh2SOh+NI -# P86oJfLVgsdOQ8QbkVGCEXjo6g+cIF8ILFbSY1KSZMAnsej3elp+TDeYFLyZVXdg -# pffu7MqrRR56XNz6kdTtxNmn3fBZ6MDgWS7Gf7jEboQATuzdFDvV8gimCPCxVMhB -# 9AHdk9+ZL5UjjVbyBrFDTbTorfeUvmTnTF/3D4AZBxHSK4SYgkP4m+Z3NqFX/Pct -# rQ34dxmqlyGXgDgjuqqj1eQbegg7e/f4c+LSe6wnfT4b5WYjPRT2/3krnMQM8qU9 -# RjD40E4BG+9LIuSXaNp96G2X7o/INVl1yZJDYQio9QHCxyz54VZd +# MTACEzMAAAIE2OAOB5cyWJgAAQAAAgQwIgQglaLBnu3LIeH2jaK0DL5bq7W8LWRe +# BAFQqXIOLS0qz4QwDQYJKoZIhvcNAQELBQAEggIAXKOOTX8FeJi8jOpRrFyzUTu1 +# NGhUW/x1XciDWQs/dGoHk5n//6Y1ox8dqTBqnQhhygBbDeJJ2IaPU0LXOnUputMw +# pyl7hPMKFIwVrrt9i23R5xWn0kI/0/dOO7tf6LjgRuO3gAKTe0IXRe1Cks+xPoUD +# hYWFGI2Ddo6cqb2sl77JwyW7IK29rnawDi6UCLlvbKvekvK6oUB13wHlyn8CWrEc +# 3mZsHf6MXrNy7cx6YMf9987WpNvahvh/bhen238rTx8QzsoGvP4Snfe4WWqUHIxo +# GCcIdAw/i0xRxKTlCbyFRKVNn3corKjo6lM3oSxpnLTAnT6pNRZJlj6JeZq7hWbT +# ooI/O6G1FEClAgkoAiZBveNdl+WxONptjuRQoRJaFgAymbBOWOizfn2T5OvBe0yn +# 0KcKRckms5Tytkg1DoQW59NUXa5HjceofNC5x3BkGyBeUug00NApe3FnIPwJSlcZ +# iSIWK7nPuEc1ORnpzn9uTifY/sKQ4sNh10m4NN9nKJ3Tt8WwuGEldOKRfgOBN1TB +# wpuvXB0TrYiZQAFpEM0j6hmUAd/mv9siVylzzUeLowVoBpomxFJyhxDK1oetp3on +# eYIJvRgDCKOr9i9kPAelBd2i38n5smR8OC0eHxJKMZG2d/D8WJ4FVmWAj0+iCkNT +# N8gspd097GOWP7XjeUU= # SIG # End signature block diff --git a/Modules/MicrosoftTeams/6.9.0/internal/Merged_internal.ps1 b/Modules/MicrosoftTeams/7.4.0/internal/Merged_internal.ps1 similarity index 78% rename from Modules/MicrosoftTeams/6.9.0/internal/Merged_internal.ps1 rename to Modules/MicrosoftTeams/7.4.0/internal/Merged_internal.ps1 index f21b81e73890..057e669f868d 100644 --- a/Modules/MicrosoftTeams/6.9.0/internal/Merged_internal.ps1 +++ b/Modules/MicrosoftTeams/7.4.0/internal/Merged_internal.ps1 @@ -2374,9 +2374,11 @@ end { <# .Synopsis -Get all tenant available configurations +Get all Compliance Recording Configs. +GET /Teams.VoiceApps/compliance-recording?. .Description -Get all tenant available configurations +Get all Compliance Recording Configs. +GET /Teams.VoiceApps/compliance-recording?. .Example {{ Add code here }} .Example @@ -2385,9 +2387,9 @@ Get all tenant available configurations .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetComplianceRecordingForCallQueueResponse .Outputs -System.String +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetComplianceRecordingsForCallQueueResponse .Notes COMPLEX PARAMETER PROPERTIES @@ -2434,44 +2436,72 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csconfiguration +https://docs.microsoft.com/en-us/powershell/module/teams/get-cscompliancerecordingforcallqueuetemplate #> -function Get-CsConfiguration { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration], [System.String])] +function Get-CsComplianceRecordingForCallQueueTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetComplianceRecordingsForCallQueueResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetComplianceRecordingForCallQueueResponse])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Get', Mandatory)] [Parameter(ParameterSetName='Get1', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # string - ${ConfigType}, - - [Parameter(ParameterSetName='Get1', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${ConfigName}, + # Compliance Recording Id. + ${Identity}, [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='GetViaIdentity1', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, - [Parameter()] + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Descending}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExcludeContent}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${First}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${IncludeStatus}, + + [Parameter(ParameterSetName='Get')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # Api Version - ${ApiVersion}, + # . + ${NameFilter}, - [Parameter()] + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${Skip}, + + [Parameter(ParameterSetName='Get')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] # . - ${SchemaVersion}, + ${SortBy}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TypeFilter}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -2522,10 +2552,9 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsConfiguration_Get'; - Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsConfiguration_Get1'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsConfiguration_GetViaIdentity'; - GetViaIdentity1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsConfiguration_GetViaIdentity1'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsComplianceRecordingForCallQueueTemplate_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsComplianceRecordingForCallQueueTemplate_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsComplianceRecordingForCallQueueTemplate_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -2565,40 +2594,104 @@ end { <# .Synopsis -Get requested Schema's data from MAS DB. +Get all tenant available configurations .Description -Get requested Schema's data from MAS DB. +Get all tenant available configurations .Example {{ Add code here }} .Example {{ Add code here }} +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMasSchemaItem +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration +.Outputs +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csmasversionedschemadata +https://docs.microsoft.com/en-us/powershell/module/teams/get-csconfiguration #> -function Get-CsMasVersionedSchemaData { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMasSchemaItem])] +function Get-CsConfiguration { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration], [System.String])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # Schema to get from MAS DB - ${SchemaName}, + # string + ${ConfigType}, + + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ConfigName}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GetViaIdentity1', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # Identity. - ${Identity}, + # Api Version + ${ApiVersion}, [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # Last X versions to fetch from MAS DB. - ${Version}, + # . + ${SchemaVersion}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -2649,7 +2742,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMasVersionedSchemaData_Get'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsConfiguration_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsConfiguration_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsConfiguration_GetViaIdentity'; + GetViaIdentity1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsConfiguration_GetViaIdentity1'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -2689,53 +2785,128 @@ end { <# .Synopsis -Get meeting migration status for a user or tenant +Get all Appointment Booking flows for a tenant. +GET api/v1.0/tenants/tenantId/mainline-attendant-flow/appointment-booking?. .Description -Get meeting migration status for a user or tenant +Get all Appointment Booking flows for a tenant. +GET api/v1.0/tenants/tenantId/mainline-attendant-flow/appointment-booking?. .Example {{ Add code here }} .Example {{ Add code here }} +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllMainlineAttendantFlowsResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetMainlineAttendantFlowResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csmeetingmigrationstatusmodern +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmainlineattendantappointmentbookingflow #> -function Get-CsMeetingMigrationStatusModern { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusResponse])] +function Get-CsMainlineAttendantAppointmentBookingFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllMainlineAttendantFlowsResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetMainlineAttendantFlowResponse])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # end time filter - to get meeting migration status before endtime - ${EndTime}, + # . + ${Identity}, - [Parameter()] + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Identity. - # Supports UPN and SIP, domainName LogonName - ${Identity}, + [System.Management.Automation.SwitchParameter] + # . + ${Descending}, - [Parameter()] + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExcludeContent}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${First}, + + [Parameter(ParameterSetName='Get')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # Meeting migration type - SfbToSfb, SfbToTeams, TeamsToTeams, AllToTeams, ToSameType, Unknown - ${MigrationType}, + # . + ${NameFilter}, - [Parameter()] + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${Skip}, + + [Parameter(ParameterSetName='Get')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # start time filter - to get meeting migration status after starttime - ${StartTime}, + # . + ${SortBy}, - [Parameter()] + [Parameter(ParameterSetName='Get')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # state of meeting Migration status - Pending, InProgress, Failed, Succeeded - ${State}, + # . + ${TypeFilter}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -2786,7 +2957,9 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMeetingMigrationStatusModern_Get'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantAppointmentBookingFlow_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantAppointmentBookingFlow_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantAppointmentBookingFlow_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -2826,53 +2999,140 @@ end { <# .Synopsis -Get meeting migration status summary for a user or tenant +Get a specific MainlineAttendantFlow Config for the given flow identity. +GET api/v1.0/tenants/tenantId/mainline-attendant-flow/identity. .Description -Get meeting migration status summary for a user or tenant +Get a specific MainlineAttendantFlow Config for the given flow identity. +GET api/v1.0/tenants/tenantId/mainline-attendant-flow/identity. .Example {{ Add code here }} .Example {{ Add code here }} +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusSummaryResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllMainlineAttendantFlowsResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetMainlineAttendantFlowResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csmeetingmigrationstatussummarymodern +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmainlineattendantflow #> -function Get-CsMeetingMigrationStatusSummaryModern { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusSummaryResponse])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +function Get-CsMainlineAttendantFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetMainlineAttendantFlowResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllMainlineAttendantFlowsResponse])] +[CmdletBinding(DefaultParameterSetName='Get1', PositionalBinding=$false)] param( - [Parameter()] + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get1')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # end time filter - to get meeting migration status before endtime - ${EndTime}, + # . + ${ConfigurationId}, - [Parameter()] + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Descending}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExcludeContent}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${First}, + + [Parameter(ParameterSetName='Get1')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # Identity. - # Supports UPN and SIP, domainName LogonName - ${Identity}, + # . + ${NameFilter}, - [Parameter()] + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${Skip}, + + [Parameter(ParameterSetName='Get1')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # Meeting migration type - SfbToSfb, SfbToTeams, TeamsToTeams, AllToTeams, ToSameType, Unknown - ${MigrationType}, + # . + ${SortBy}, - [Parameter()] + [Parameter(ParameterSetName='Get1')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # start time filter - to get meeting migration status after starttime - ${StartTime}, + # . + ${Type}, - [Parameter()] + [Parameter(ParameterSetName='Get1')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # state of meeting Migration status - Pending, InProgress, Failed, Succeeded - ${State}, + # . + ${TypeFilter}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -2923,7 +3183,9 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMeetingMigrationStatusSummaryModern_Get'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantFlow_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantFlow_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantFlow_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -2963,63 +3225,144 @@ end { <# .Synopsis -Get meeting migration transaction history for a user +Get all Question Answer flows for a tenant. +GET api/v1.0/tenants/tenantId/mainline-attendant-flow/question-answer?. .Description -Get meeting migration transaction history for a user +Get all Question Answer flows for a tenant. +GET api/v1.0/tenants/tenantId/mainline-attendant-flow/question-answer?. .Example {{ Add code here }} .Example {{ Add code here }} +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationTransactionHistoryResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllMainlineAttendantFlowsResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetMainlineAttendantFlowResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csmeetingmigrationtransactionhistorymodern +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmainlineattendantquestionanswerflow #> -function Get-CsMeetingMigrationTransactionHistoryModern { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationTransactionHistoryResponse])] +function Get-CsMainlineAttendantQuestionAnswerFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllMainlineAttendantFlowsResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetMainlineAttendantFlowResponse])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # Identity. - # Supports UPN and SIP, Aad user object Id - ${UserIdentity}, + # . + ${Identity}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # CorrelationId fetched when running start-csexmeetingmigration - ${CorrelationId}, + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, - [Parameter()] + [Parameter(ParameterSetName='Get')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # end time filter - to get meeting migration status before endtime - ${EndTime}, + [System.Management.Automation.SwitchParameter] + # . + ${Descending}, - [Parameter()] + [Parameter(ParameterSetName='Get')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # start time filter - to get meeting migration status after starttime - ${StartTime}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, + # . + ${ExcludeContent}, - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${First}, - [Parameter(DontShow)] - [ValidateNotNull()] + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${NameFilter}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${Skip}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SortBy}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TypeFilter}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] # SendAsync Pipeline Steps to be prepended to the front of the pipeline @@ -3054,7 +3397,9 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMeetingMigrationTransactionHistoryModern_Get'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantQuestionAnswerFlow_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantQuestionAnswerFlow_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantQuestionAnswerFlow_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -3094,23 +3439,41 @@ end { <# .Synopsis -Get Tenant's Migrationdetails. +Get requested Schema's data from MAS DB. .Description -Get Tenant's Migrationdetails. +Get requested Schema's data from MAS DB. .Example {{ Add code here }} .Example {{ Add code here }} .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGmtSchemaItem +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMasSchemaItem .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csmovetenantserviceinstancetaskstatus +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmasversionedschemadata #> -function Get-CsMoveTenantServiceInstanceTaskStatus { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGmtSchemaItem])] +function Get-CsMasVersionedSchemaData { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMasSchemaItem])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Schema to get from MAS DB + ${SchemaName}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Identity. + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Last X versions to fetch from MAS DB. + ${Version}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] @@ -3160,7 +3523,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMoveTenantServiceInstanceTaskStatus_Get'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMasVersionedSchemaData_Get'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -3200,82 +3563,53 @@ end { <# .Synopsis -This cmdlet is point get operation on users. +Get meeting migration status for a user or tenant .Description -This cmdlet is point get operation on users. +Get meeting migration status for a user or tenant .Example {{ Add code here }} .Example {{ Add code here }} -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id - [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusResponse .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csodcuser +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmeetingmigrationstatusmodern #> -function Get-CsOdcUser { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser])] +function Get-CsMeetingMigrationStatusModern { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusResponse])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # UserId of user. + # end time filter - to get meeting migration status before endtime + ${EndTime}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Identity. + # Supports UPN and SIP, domainName LogonName ${Identity}, - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Meeting migration type - SfbToSfb, SfbToTeams, TeamsToTeams, AllToTeams, ToSameType, Unknown + ${MigrationType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # start time filter - to get meeting migration status after starttime + ${StartTime}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # state of meeting Migration status - Pending, InProgress, Failed, Succeeded + ${State}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -3326,8 +3660,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOdcUser_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOdcUser_GetViaIdentity'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMeetingMigrationStatusModern_Get'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -3367,84 +3700,53 @@ end { <# .Synopsis -Get application instance association. -GET Teams.VoiceApps/applicationinstanceassociations/identity. +Get meeting migration status summary for a user or tenant .Description -Get application instance association. -GET Teams.VoiceApps/applicationinstanceassociations/identity. +Get meeting migration status summary for a user or tenant .Example {{ Add code here }} .Example {{ Add code here }} -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationResponse -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id - [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusSummaryResponse .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineapplicationinstanceassociation +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmeetingmigrationstatussummarymodern #> -function Get-CsOnlineApplicationInstanceAssociation { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationResponse])] +function Get-CsMeetingMigrationStatusSummaryModern { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusSummaryResponse])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # . + # end time filter - to get meeting migration status before endtime + ${EndTime}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Identity. + # Supports UPN and SIP, domainName LogonName ${Identity}, - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Meeting migration type - SfbToSfb, SfbToTeams, TeamsToTeams, AllToTeams, ToSameType, Unknown + ${MigrationType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # start time filter - to get meeting migration status after starttime + ${StartTime}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # state of meeting Migration status - Pending, InProgress, Failed, Succeeded + ${State}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -3495,8 +3797,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociation_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociation_GetViaIdentity'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMeetingMigrationStatusSummaryModern_Get'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -3536,84 +3837,47 @@ end { <# .Synopsis -Get application instance association status. -GET Teams.VoiceApps/applicationinstanceassociations/identity/status. +Get meeting migration transaction history for a user .Description -Get application instance association status. -GET Teams.VoiceApps/applicationinstanceassociations/identity/status. +Get meeting migration transaction history for a user .Example {{ Add code here }} .Example {{ Add code here }} -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationStatusResponse -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id - [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationTransactionHistoryResponse .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineapplicationinstanceassociationstatus +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmeetingmigrationtransactionhistorymodern #> -function Get-CsOnlineApplicationInstanceAssociationStatus { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationStatusResponse])] +function Get-CsMeetingMigrationTransactionHistoryModern { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationTransactionHistoryResponse])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # . - ${Identity}, + # Identity. + # Supports UPN and SIP, Aad user object Id + ${UserIdentity}, - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # CorrelationId fetched when running start-csexmeetingmigration + ${CorrelationId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # end time filter - to get meeting migration status before endtime + ${EndTime}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # start time filter - to get meeting migration status after starttime + ${StartTime}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -3664,8 +3928,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociationStatus_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociationStatus_GetViaIdentity'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMeetingMigrationTransactionHistoryModern_Get'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -3705,100 +3968,23 @@ end { <# .Synopsis -Get Audio file metedata with expiring download link. -GET api/v3/tenants/tenantId/audiofile/appId/audiofileId?durationInMins=int(default=60) +Get Tenant's Migrationdetails. .Description -Get Audio file metedata with expiring download link. -GET api/v3/tenants/tenantId/audiofile/appId/audiofileId?durationInMins=int(default=60) +Get Tenant's Migrationdetails. .Example {{ Add code here }} .Example {{ Add code here }} -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAudioFileDto -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id - [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGmtSchemaItem .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineaudiofile +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmovetenantserviceinstancetaskstatus #> -function Get-CsOnlineAudioFile { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAudioFileDto])] -[CmdletBinding(DefaultParameterSetName='Get1', PositionalBinding=$false)] +function Get-CsMoveTenantServiceInstanceTaskStatus { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGmtSchemaItem])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='Get1', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${ApplicationId}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${Identity}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='GetViaIdentity1', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Get')] - [Parameter(ParameterSetName='GetViaIdentity')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] - # . - ${DurationInMin}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] @@ -3848,10 +4034,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_Get'; - Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_Get1'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_GetViaIdentity'; - GetViaIdentity1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_GetViaIdentity1'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMoveTenantServiceInstanceTaskStatus_Get'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -3891,9 +4074,9 @@ end { <# .Synopsis - +This cmdlet is point get operation on users. .Description - +This cmdlet is point get operation on users. .Example {{ Add code here }} .Example @@ -3902,9 +4085,7 @@ end { .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnostics -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser .Notes COMPLEX PARAMETER PROPERTIES @@ -3951,23 +4132,17 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineenhancedemergencyservicedisclaimer +https://docs.microsoft.com/en-us/powershell/module/teams/get-csodcuser #> -function Get-CsOnlineEnhancedEmergencyServiceDisclaimer { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnostics])] +function Get-CsOdcUser { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( [Parameter(ParameterSetName='Get', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # . - ${CountryOrRegion}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${Version}, + # UserId of user. + ${Identity}, [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] @@ -4025,8 +4200,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineEnhancedEmergencyServiceDisclaimer_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineEnhancedEmergencyServiceDisclaimer_GetViaIdentity'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOdcUser_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOdcUser_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -4066,29 +4241,91 @@ end { <# .Synopsis - +Get application instance association. +GET Teams.VoiceApps/applicationinstanceassociations/identity. .Description - +Get application instance association. +GET Teams.VoiceApps/applicationinstanceassociations/identity. .Example {{ Add code here }} .Example {{ Add code here }} +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICivicAddress -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineliscivicaddress -#> -function Get-CsOnlineLisCivicAddress { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICivicAddress])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineapplicationinstanceassociation +#> +function Get-CsOnlineApplicationInstanceAssociation { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + [Parameter(DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -4132,7 +4369,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisCivicAddress_Get'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociation_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociation_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -4172,11 +4410,11 @@ end { <# .Synopsis -Get all schedules for a tenant. -GET Teams.VoiceApps/schedules?. +Get application instance association status. +GET Teams.VoiceApps/applicationinstanceassociations/identity/status. .Description -Get all schedules for a tenant. -GET Teams.VoiceApps/schedules?. +Get application instance association status. +GET Teams.VoiceApps/applicationinstanceassociations/identity/status. .Example {{ Add code here }} .Example @@ -4185,9 +4423,7 @@ GET Teams.VoiceApps/schedules?. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetScheduleResponse -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSchedulesResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationStatusResponse .Notes COMPLEX PARAMETER PROPERTIES @@ -4234,16 +4470,16 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineschedule +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineapplicationinstanceassociationstatus #> -function Get-CsOnlineSchedule { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSchedulesResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetScheduleResponse])] +function Get-CsOnlineApplicationInstanceAssociationStatus { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationStatusResponse])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Get1', Mandatory)] + [Parameter(ParameterSetName='Get', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # Id for the schedule to retrieve. + # . ${Identity}, [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] @@ -4253,48 +4489,6 @@ param( # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # . - ${Descending}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # . - ${ExcludeContent}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] - # . - ${First}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${NameFilter}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] - # . - ${Skip}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${SortBy}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${TypeFilter}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] @@ -4344,9 +4538,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineSchedule_Get'; - Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineSchedule_Get1'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineSchedule_GetViaIdentity'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociationStatus_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociationStatus_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -4386,34 +4579,99 @@ end { <# .Synopsis - +Get Audio file metedata with expiring download link. +GET api/v3/tenants/tenantId/audiofile/appId/audiofileId?durationInMins=int(default=60) .Description - +Get Audio file metedata with expiring download link. +GET api/v3/tenants/tenantId/audiofile/appId/audiofileId?durationInMins=int(default=60) .Example {{ Add code here }} .Example {{ Add code here }} +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtGetGenericOrderResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAudioFileDto +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlinetelephonenumberorder +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineaudiofile #> -function Get-CsOnlineTelephoneNumberOrder { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtGetGenericOrderResponse])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +function Get-CsOnlineAudioFile { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAudioFileDto])] +[CmdletBinding(DefaultParameterSetName='Get1', PositionalBinding=$false)] param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] # . - ${OrderId}, + ${ApplicationId}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] # . - ${OrderType}, + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GetViaIdentity1', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='GetViaIdentity')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${DurationInMin}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -4464,7 +4722,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineTelephoneNumberOrder_Get'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_GetViaIdentity'; + GetViaIdentity1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_GetViaIdentity1'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -4504,9 +4765,9 @@ end { <# .Synopsis -Get Cs-OnlineVoicemailUserSettings. + .Description -Get Cs-OnlineVoicemailUserSettings. + .Example {{ Add code here }} .Example @@ -4515,7 +4776,9 @@ Get Cs-OnlineVoicemailUserSettings. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnostics +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponse .Notes COMPLEX PARAMETER PROPERTIES @@ -4562,17 +4825,23 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlinevmusersetting +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineenhancedemergencyservicedisclaimer #> -function Get-CsOnlineVMUserSetting { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings])] +function Get-CsOnlineEnhancedEmergencyServiceDisclaimer { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnostics])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( [Parameter(ParameterSetName='Get', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] # . - ${Identity}, + ${CountryOrRegion}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Version}, [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] @@ -4601,12 +4870,6 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -4636,8 +4899,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineVMUserSetting_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineVMUserSetting_GetViaIdentity'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineEnhancedEmergencyServiceDisclaimer_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineEnhancedEmergencyServiceDisclaimer_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -4677,21 +4940,21 @@ end { <# .Synopsis -Get Org Settings - Get-CsTeamsSettingsCustomApp + .Description -Get Org Settings - Get-CsTeamsSettingsCustomApp + .Example {{ Add code here }} .Example {{ Add code here }} .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCustomAppSettingResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICivicAddress .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csteamssettingscustomapp +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineliscivicaddress #> -function Get-CsTeamsSettingsCustomApp { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCustomAppSettingResponse])] +function Get-CsOnlineLisCivicAddress { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICivicAddress])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( [Parameter(DontShow)] @@ -4743,7 +5006,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsSettingsCustomApp_Get'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisCivicAddress_Get'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -4783,37 +5046,22 @@ end { <# .Synopsis -Get a list of available team templates +Get all schedules for a tenant. +GET Teams.VoiceApps/schedules?. .Description -Get a list of available team templates +Get all schedules for a tenant. +GET Teams.VoiceApps/schedules?. .Example -PS C:\> Get-CsTeamTemplateList - -OdataId Name ShortDescription Chann AppCo - elCou unt - nt -------- ---- ---------------- ----- ----- -/api/teamtemplates/v1.0/healthcareWard/Public/en-US Collaborate on Patient Care Collaborate on patient care i... 6 1 -/api/teamtemplates/v1.0/healthcareHospital/Public/en-US Hospital Facilitate collaboration with... 6 1 -/api/teamtemplates/v1.0/retailStore/Public/en-US Organize a Store Collaborate with your retail ... 3 1 -/api/teamtemplates/v1.0/retailManagerCollaboration/Public/en-US Retail - Manager Collaboration Collaborate with managers acr... 3 1 - +{{ Add code here }} .Example -PS C:\> (Get-CsTeamTemplateList -PublicTemplateLocale en-US) | where ChannelCount -GT 3 - -OdataId Name ShortDescription Chann AppCo - elCou unt - nt -------- ---- ---------------- ----- ----- -/api/teamtemplates/v1.0/healthcareWard/Public/en-US Collaborate on Patient Care Collaborate on patient care i... 6 1 -/api/teamtemplates/v1.0/healthcareHospital/Public/en-US Hospital Facilitate collaboration with... 6 1 +{{ Add code here }} .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetScheduleResponse .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateSummary +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSchedulesResponse .Notes COMPLEX PARAMETER PROPERTIES @@ -4860,17 +5108,17 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csteamtemplatelist +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineschedule #> -function Get-CsTeamTemplateList { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateSummary], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse])] +function Get-CsOnlineSchedule { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSchedulesResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetScheduleResponse])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='Get1', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # Language and country code for localization of publicly available templates. - ${PublicTemplateLocale}, + # Id for the schedule to retrieve. + ${Identity}, [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] @@ -4879,6 +5127,48 @@ param( # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Descending}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExcludeContent}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${First}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${NameFilter}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${Skip}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SortBy}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TypeFilter}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] @@ -4928,8 +5218,9 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamTemplateList_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamTemplateList_GetViaIdentity'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineSchedule_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineSchedule_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineSchedule_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -4969,34 +5260,34 @@ end { <# .Synopsis -Get Tenant. + .Description -Get Tenant. + .Example {{ Add code here }} .Example {{ Add code here }} .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenant +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtGetGenericOrderResponse .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-cstenantobou +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlinetelephonenumberorder #> -function Get-CsTenantObou { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenant])] +function Get-CsOnlineTelephoneNumberOrder { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtGetGenericOrderResponse])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # To set defaultpropertyset value - ${Defaultpropertyset}, + # . + ${OrderId}, [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # Properties to select - ${Select}, + # . + ${OrderType}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -5047,7 +5338,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantObou_Get'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineTelephoneNumberOrder_Get'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -5087,9 +5378,9 @@ end { <# .Synopsis -Get User. +Get Cs-OnlineVoicemailUserSettings. .Description -Get User. +Get Cs-OnlineVoicemailUserSettings. .Example {{ Add code here }} .Example @@ -5098,7 +5389,7 @@ Get User. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserMas +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings .Notes COMPLEX PARAMETER PROPERTIES @@ -5145,19 +5436,16 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csuser +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlinevmusersetting #> -function Get-CsUser { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserMas])] +function Get-CsOnlineVMUserSetting { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( [Parameter(ParameterSetName='Get', Mandatory)] - [Alias('UserId')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # UserId. - # Supports Guid. - # Eventually UPN and SIP. + # . ${Identity}, [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] @@ -5167,42 +5455,6 @@ param( # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # To set defaultpropertyset value - ${Defaultpropertyset}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # To fetch optional location field - ${Expandlocation}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # To set includedefaultproperties value - ${Includedefaultproperty}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Properties to select - ${Select}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # Skip user policies in user response object - ${Skipuserpolicy}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # To set to true when called from Get-CsVoiceUser cmdlet - ${Voiceuserquery}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] @@ -5223,6 +5475,12 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -5252,8 +5510,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsUser_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsUser_GetViaIdentity'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineVMUserSetting_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineVMUserSetting_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -5293,9 +5551,11 @@ end { <# .Synopsis -Unified group grant. +Get all Shared Call Queue History Configs. +GET /Teams.VoiceApps/shared-call-queue-history?. .Description -Unified group grant. +Get all Shared Call Queue History Configs. +GET /Teams.VoiceApps/shared-call-queue-history?. .Example {{ Add code here }} .Example @@ -5303,19 +5563,15 @@ Unified group grant. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGroupGrantPayload .Outputs -System.String +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllSharedCallQueueHistoryResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSharedCallQueueHistoryResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . - [PolicyName ]: - [Priority ]: - INPUTOBJECT : Identity Parameter [AppId ]: [AudioFileId ]: @@ -5357,55 +5613,72 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/grant-csgrouppolicyassignment +https://docs.microsoft.com/en-us/powershell/module/teams/get-cssharedcallqueuehistorytemplate #> -function Grant-CsGroupPolicyAssignment { -[OutputType([System.String])] -[CmdletBinding(DefaultParameterSetName='GrantExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Get-CsSharedCallQueueHistoryTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllSharedCallQueueHistoryResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSharedCallQueueHistoryResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Grant', Mandatory)] - [Parameter(ParameterSetName='GrantExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${GroupId}, - - [Parameter(ParameterSetName='Grant', Mandatory)] - [Parameter(ParameterSetName='GrantExpanded', Mandatory)] + [Parameter(ParameterSetName='Get1', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # . - ${PolicyType}, + # Shared Call Queue History Id. + ${Identity}, - [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='GrantViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, - [Parameter(ParameterSetName='Grant', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGroupGrantPayload] + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, + ${Descending}, - [Parameter(ParameterSetName='GrantExpanded')] - [Parameter(ParameterSetName='GrantViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExcludeContent}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${First}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${IncludeStatus}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] # . - ${PolicyName}, + ${NameFilter}, - [Parameter(ParameterSetName='GrantExpanded')] - [Parameter(ParameterSetName='GrantViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.Int32] # . - ${Rank}, + ${Skip}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SortBy}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TypeFilter}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -5427,12 +5700,6 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -5462,10 +5729,9 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Grant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsGroupPolicyAssignment_Grant'; - GrantExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsGroupPolicyAssignment_GrantExpanded'; - GrantViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsGroupPolicyAssignment_GrantViaIdentity'; - GrantViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsGroupPolicyAssignment_GrantViaIdentityExpanded'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsSharedCallQueueHistoryTemplate_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsSharedCallQueueHistoryTemplate_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsSharedCallQueueHistoryTemplate_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -5505,50 +5771,128 @@ end { <# .Synopsis -Assign a policy package to a group in a tenant +Get all ivr tags template for a tenant. +GET api/v1.0/tenants/tenantId/ivr-tags-template?. .Description -Assign a policy package to a group in a tenant +Get all ivr tags template for a tenant. +GET api/v1.0/tenants/tenantId/ivr-tags-template?. .Example {{ Add code here }} .Example {{ Add code here }} +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsApplyPackageGroupResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetIvrTagsTemplateResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetIvrTagsTemplatesResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -POLICYRANKINGS : . - PolicyType : - Rank : +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/grant-csgrouppolicypackageassignment +https://docs.microsoft.com/en-us/powershell/module/teams/get-cstagstemplate #> -function Grant-CsGroupPolicyPackageAssignment { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsApplyPackageGroupResponse])] -[CmdletBinding(DefaultParameterSetName='GrantExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Get-CsTagsTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetIvrTagsTemplatesResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetIvrTagsTemplateResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] # . - ${GroupId}, + ${Identity}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Descending}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExcludeContent}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${First}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] # . - ${PackageName}, + ${NameFilter}, - [Parameter()] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsRequestsPolicyRanking[]] + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] # . - # To construct, see NOTES section for POLICYRANKINGS properties and create a hash table. - ${PolicyRankings}, + ${Skip}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SortBy}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TypeFilter}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -5599,7 +5943,9 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - GrantExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsGroupPolicyPackageAssignment_GrantExpanded'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTagsTemplate_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTagsTemplate_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTagsTemplate_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -5639,123 +5985,23 @@ end { <# .Synopsis -Update single policy of a Tenant +Get Org Settings - Get-CsTeamsSettingsCustomApp .Description -Update single policy of a Tenant +Get Org Settings - Get-CsTeamsSettingsCustomApp .Example {{ Add code here }} .Example {{ Add code here }} -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantTenantRequest .Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -BODY : . - [AdditionalParameter ]: Dictionary of - [(Any) ]: This indicates any property can be added to this object. - [ForceSwitchPresent ]: - [PolicyName ]: - -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id - [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCustomAppSettingResponse .Link -https://docs.microsoft.com/en-us/powershell/module/teams/grant-cstenantpolicy +https://docs.microsoft.com/en-us/powershell/module/teams/get-csteamssettingscustomapp #> -function Grant-CsTenantPolicy { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='GrantExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Get-CsTeamsSettingsCustomApp { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCustomAppSettingResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Grant', Mandatory)] - [Parameter(ParameterSetName='GrantExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Policy Type - ${PolicyType}, - - [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='GrantViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Grant', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantTenantRequest] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='GrantExpanded')] - [Parameter(ParameterSetName='GrantViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.Info(PossibleTypes=([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantTenantRequestAdditionalParameters]))] - [System.Collections.Hashtable] - # Dictionary of - ${AdditionalParameters}, - - [Parameter(ParameterSetName='GrantExpanded')] - [Parameter(ParameterSetName='GrantViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${ForceSwitchPresent}, - - [Parameter(ParameterSetName='GrantExpanded')] - [Parameter(ParameterSetName='GrantViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${PolicyName}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] @@ -5776,12 +6022,6 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -5811,10 +6051,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Grant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTenantPolicy_Grant'; - GrantExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTenantPolicy_GrantExpanded'; - GrantViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTenantPolicy_GrantViaIdentity'; - GrantViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTenantPolicy_GrantViaIdentityExpanded'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsSettingsCustomApp_Get'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -5854,30 +6091,42 @@ end { <# .Synopsis -Update single policy of a user +Get a list of available team templates .Description -Update single policy of a user +Get a list of available team templates .Example -{{ Add code here }} +PS C:\> Get-CsTeamTemplateList + +OdataId Name ShortDescription Chann AppCo + elCou unt + nt +------- ---- ---------------- ----- ----- +/api/teamtemplates/v1.0/healthcareWard/Public/en-US Collaborate on Patient Care Collaborate on patient care i... 6 1 +/api/teamtemplates/v1.0/healthcareHospital/Public/en-US Hospital Facilitate collaboration with... 6 1 +/api/teamtemplates/v1.0/retailStore/Public/en-US Organize a Store Collaborate with your retail ... 3 1 +/api/teamtemplates/v1.0/retailManagerCollaboration/Public/en-US Retail - Manager Collaboration Collaborate with managers acr... 3 1 + .Example -{{ Add code here }} +PS C:\> (Get-CsTeamTemplateList -PublicTemplateLocale en-US) | where ChannelCount -GT 3 + +OdataId Name ShortDescription Chann AppCo + elCou unt + nt +------- ---- ---------------- ----- ----- +/api/teamtemplates/v1.0/healthcareWard/Public/en-US Collaborate on Patient Care Collaborate on patient care i... 6 1 +/api/teamtemplates/v1.0/healthcareHospital/Public/en-US Hospital Facilitate collaboration with... 6 1 .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantUserRequest .Outputs -System.Boolean +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateSummary .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . - [AdditionalParameter ]: Dictionary of - [(Any) ]: This indicates any property can be added to this object. - [PolicyName ]: - INPUTOBJECT : Identity Parameter [AppId ]: [AudioFileId ]: @@ -5919,57 +6168,25 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/grant-csuserpolicy +https://docs.microsoft.com/en-us/powershell/module/teams/get-csteamtemplatelist #> -function Grant-CsUserPolicy { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='GrantExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Get-CsTeamTemplateList { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateSummary], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Grant', Mandatory)] - [Parameter(ParameterSetName='GrantExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # User Id - ${Identity}, - - [Parameter(ParameterSetName='Grant', Mandatory)] - [Parameter(ParameterSetName='GrantExpanded', Mandatory)] + [Parameter(ParameterSetName='Get', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # Policy Type - ${PolicyType}, + # Language and country code for localization of publicly available templates. + ${PublicTemplateLocale}, - [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='GrantViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, - [Parameter(ParameterSetName='Grant', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantUserRequest] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='GrantExpanded')] - [Parameter(ParameterSetName='GrantViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.Info(PossibleTypes=([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantUserRequestAdditionalParameters]))] - [System.Collections.Hashtable] - # Dictionary of - ${AdditionalParameters}, - - [Parameter(ParameterSetName='GrantExpanded')] - [Parameter(ParameterSetName='GrantViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${PolicyName}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] @@ -5990,12 +6207,6 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -6025,10 +6236,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Grant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsUserPolicy_Grant'; - GrantExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsUserPolicy_GrantExpanded'; - GrantViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsUserPolicy_GrantViaIdentity'; - GrantViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsUserPolicy_GrantViaIdentityExpanded'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamTemplateList_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamTemplateList_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -6068,122 +6277,34 @@ end { <# .Synopsis -Import holidays for auto attendant. -PUT Teams.VoiceApps/auto-attendants/identity/holidays. +Get Tenant. .Description -Import holidays for auto attendant. -PUT Teams.VoiceApps/auto-attendants/identity/holidays. +Get Tenant. .Example {{ Add code here }} .Example {{ Add code here }} -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IImportAutoAttendantHolidaysRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IImportAutoAttendantHolidaysResponse -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -BODY : . - [Id ]: - [SerializedHolidayRecord ]: - [TenantId ]: - -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id - [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenant .Link -https://docs.microsoft.com/en-us/powershell/module/teams/import-csautoattendantholidays +https://docs.microsoft.com/en-us/powershell/module/teams/get-cstenantobou #> -function Import-CsAutoAttendantHolidays { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IImportAutoAttendantHolidaysResponse])] -[CmdletBinding(DefaultParameterSetName='ImportExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Get-CsTenantObou { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenant])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Import', Mandatory)] - [Parameter(ParameterSetName='ImportExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${Identity}, - - [Parameter(ParameterSetName='ImportViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='ImportViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Import', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='ImportViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IImportAutoAttendantHolidaysRequest] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='ImportExpanded')] - [Parameter(ParameterSetName='ImportViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Id}, - - [Parameter(ParameterSetName='ImportExpanded')] - [Parameter(ParameterSetName='ImportViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # . - ${SerializedHolidayRecord}, + # To set defaultpropertyset value + ${Defaultpropertyset}, - [Parameter(ParameterSetName='ImportExpanded')] - [Parameter(ParameterSetName='ImportViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # . - ${TenantId}, + # Properties to select + ${Select}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -6234,10 +6355,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Import = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsAutoAttendantHolidays_Import'; - ImportExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsAutoAttendantHolidays_ImportExpanded'; - ImportViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsAutoAttendantHolidays_ImportViaIdentity'; - ImportViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsAutoAttendantHolidays_ImportViaIdentityExpanded'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantObou_Get'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -6277,123 +6395,121 @@ end { <# .Synopsis -Store a new Audio file in MSS. -POST api/v3/tenants/tenantId/audiofile. +Get User. .Description -Store a new Audio file in MSS. -POST api/v3/tenants/tenantId/audiofile. +Get User. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantAudioFileDto +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAudioFileDto +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserMas .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . - ApplicationId : - Content : - OriginalFilename : +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: - [ContextId ]: - [ConvertedFilename ]: - [DeletionTimestampOffset ]: - [DownloadUri ]: - [DownloadUriExpiryTimestampOffset ]: - [Duration ]: - [LastAccessedTimestampOffset ]: - [UploadedTimestampOffset ]: -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/import-csonlineaudiofile -#> -function Import-CsOnlineAudioFile { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAudioFileDto])] -[CmdletBinding(DefaultParameterSetName='ImportExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Import', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantAudioFileDto] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='ImportExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${ApplicationId}, - - [Parameter(ParameterSetName='ImportExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Content}, - - [Parameter(ParameterSetName='ImportExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${FileName}, - - [Parameter(ParameterSetName='ImportExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${ContextId}, - - [Parameter(ParameterSetName='ImportExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csuser +#> +function Get-CsUser { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserMas])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('UserId')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # . - ${ConvertedFilename}, + # UserId. + # Supports Guid. + # Eventually UPN and SIP. + ${Identity}, - [Parameter(ParameterSetName='ImportExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.DateTime] - # . - ${DeletionTimestampOffset}, + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, - [Parameter(ParameterSetName='ImportExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # . - ${DownloadUri}, + # To set defaultpropertyset value + ${Defaultpropertyset}, - [Parameter(ParameterSetName='ImportExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.DateTime] - # . - ${DownloadUriExpiryTimestampOffset}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # To fetch optional location field + ${Expandlocation}, - [Parameter(ParameterSetName='ImportExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Duration}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # To set includedefaultproperties value + ${Includedefaultproperty}, - [Parameter(ParameterSetName='ImportExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # . - ${Id}, + # Properties to select + ${Select}, - [Parameter(ParameterSetName='ImportExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.DateTime] - # . - ${LastAccessedTimestampOffset}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # Skip user policies in user response object + ${Skipuserpolicy}, - [Parameter(ParameterSetName='ImportExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.DateTime] - # . - ${UploadedTimestampOffset}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # To set to true when called from Get-CsVoiceUser cmdlet + ${Voiceuserquery}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -6444,8 +6560,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Import = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsOnlineAudioFile_Import'; - ImportExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsOnlineAudioFile_ImportExpanded'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsUser_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsUser_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -6485,40 +6601,119 @@ end { <# .Synopsis -Invokes Custom Handler +Unified group grant. .Description -Invokes Custom Handler +Unified group grant. .Example {{ Add code here }} .Example {{ Add code here }} +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGroupGrantPayload .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICustomHandlerCallBackOutput +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [PolicyName ]: + [Priority ]: + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/invoke-cscustomhandlercallbackngtprov +https://docs.microsoft.com/en-us/powershell/module/teams/grant-csgrouppolicyassignment #> -function Invoke-CsCustomHandlerCallBackNgtprov { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICustomHandlerCallBackOutput])] -[CmdletBinding(DefaultParameterSetName='Post', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Grant-CsGroupPolicyAssignment { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='GrantExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='Grant', Mandatory)] + [Parameter(ParameterSetName='GrantExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # Unique Id of the Handler. - ${Id}, + # . + ${GroupId}, - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='Grant', Mandatory)] + [Parameter(ParameterSetName='GrantExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # Callback Operation. - ${Operation}, + # . + ${PolicyType}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GrantViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Grant', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGroupGrantPayload] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='GrantExpanded')] + [Parameter(ParameterSetName='GrantViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # EventName for the SendEventPostURI. - ${Eventname}, + # . + ${PolicyName}, + + [Parameter(ParameterSetName='GrantExpanded')] + [Parameter(ParameterSetName='GrantViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${Rank}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -6540,6 +6735,12 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -6569,7 +6770,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Post = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsCustomHandlerCallBackNgtprov_Post'; + Grant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsGroupPolicyAssignment_Grant'; + GrantExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsGroupPolicyAssignment_GrantExpanded'; + GrantViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsGroupPolicyAssignment_GrantViaIdentity'; + GrantViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsGroupPolicyAssignment_GrantViaIdentityExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -6609,101 +6813,50 @@ end { <# .Synopsis -Post DsSync resync cmdlet +Assign a policy package to a group in a tenant .Description -Post DsSync resync cmdlet +Assign a policy package to a group in a tenant .Example {{ Add code here }} .Example {{ Add code here }} -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDsRequestBody .Outputs -System.Boolean +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsApplyPackageGroupResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : Request body for DsSync cmdlet - [DeploymentName ]: Deployment Name - [IsValidationRequest ]: - [ObjectClass ]: Object Class enum - [ObjectId ]: GUID of the user - [ObjectIds ]: - [ReSyncOption ]: ReSync for the given entity - [ScenariosToSuppress ]: Scenarios to Suppress - [ServiceInstance ]: Service Instance of the tenant - [SynchronizeTenantWithAllObject ]: Sync all the users of the tenant +POLICYRANKINGS : . + PolicyType : + Rank : .Link -https://docs.microsoft.com/en-us/powershell/module/teams/invoke-csdirectobjectsync +https://docs.microsoft.com/en-us/powershell/module/teams/grant-csgrouppolicypackageassignment #> -function Invoke-CsDirectObjectSync { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='PostExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Grant-CsGroupPolicyPackageAssignment { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsApplyPackageGroupResponse])] +[CmdletBinding(DefaultParameterSetName='GrantExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Post', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDsRequestBody] - # Request body for DsSync cmdlet - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='PostExpanded')] + [Parameter(Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Deployment Name - ${DeploymentName}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] # . - ${IsValidationRequest}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Object Class enum - ${ObjectClass}, + ${GroupId}, - [Parameter(ParameterSetName='PostExpanded')] + [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # GUID of the user - ${ObjectId}, + # . + ${PackageName}, - [Parameter(ParameterSetName='PostExpanded')] + [Parameter()] [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsRequestsPolicyRanking[]] # . - ${ObjectIds}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int64] - # ReSync for the given entity - ${ReSyncOption}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Scenarios to Suppress - ${ScenariosToSuppress}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Service Instance of the tenant - ${ServiceInstance}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Sync all the users of the tenant - ${SynchronizeTenantWithAllObject}, + # To construct, see NOTES section for POLICYRANKINGS properties and create a hash table. + ${PolicyRankings}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -6725,12 +6878,6 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -6760,8 +6907,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Post = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsDirectObjectSync_Post'; - PostExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsDirectObjectSync_PostExpanded'; + GrantExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsGroupPolicyPackageAssignment_GrantExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -6801,16 +6947,18 @@ end { <# .Synopsis -Post resync operation cmdlet +Update single policy of a Tenant .Description -Post resync operation cmdlet +Update single policy of a Tenant .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IResyncRequestBody +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantTenantRequest .Outputs System.Boolean .Notes @@ -6818,77 +6966,103 @@ COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : Request body for Resync cmdlet - [IsValidationRequest ]: - [ObjectClass ]: Object Class enum - [ObjectId ]: - [ReSyncOption ]: ReSync for the given entity - [ScenariosToSuppress ]: Scenarios to Suppress - [ServiceInstance ]: Service Instance of the tenant - [SynchronizeTenantWithAllObject ]: Sync all the users of the tenant - [TenantId ]: TenantId GUID +BODY : . + [AdditionalParameter ]: Dictionary of + [(Any) ]: This indicates any property can be added to this object. + [ForceSwitchPresent ]: + [PolicyName ]: + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/invoke-csmsodssync +https://docs.microsoft.com/en-us/powershell/module/teams/grant-cstenantpolicy #> -function Invoke-CsMsodsSync { +function Grant-CsTenantPolicy { [OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='PostExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +[CmdletBinding(DefaultParameterSetName='GrantExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Post', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IResyncRequestBody] - # Request body for Resync cmdlet - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${IsValidationRequest}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(ParameterSetName='Grant', Mandatory)] + [Parameter(ParameterSetName='GrantExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # Object Class enum - ${ObjectClass}, - - [Parameter(ParameterSetName='PostExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # . - ${ObjectId}, + # Policy Type + ${PolicyType}, - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int64] - # ReSync for the given entity - ${ReSyncOption}, + [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GrantViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, - [Parameter(ParameterSetName='PostExpanded')] + [Parameter(ParameterSetName='Grant', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Scenarios to Suppress - ${ScenariosToSuppress}, + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantTenantRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, - [Parameter(ParameterSetName='PostExpanded')] + [Parameter(ParameterSetName='GrantExpanded')] + [Parameter(ParameterSetName='GrantViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Service Instance of the tenant - ${ServiceInstance}, + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.Info(PossibleTypes=([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantTenantRequestAdditionalParameters]))] + [System.Collections.Hashtable] + # Dictionary of + ${AdditionalParameters}, - [Parameter(ParameterSetName='PostExpanded')] + [Parameter(ParameterSetName='GrantExpanded')] + [Parameter(ParameterSetName='GrantViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.Management.Automation.SwitchParameter] - # Sync all the users of the tenant - ${SynchronizeTenantWithAllObject}, + # . + ${ForceSwitchPresent}, - [Parameter(ParameterSetName='PostExpanded')] + [Parameter(ParameterSetName='GrantExpanded')] + [Parameter(ParameterSetName='GrantViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # TenantId GUID - ${TenantId}, + # . + ${PolicyName}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -6945,10 +7119,12 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Post = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsMsodsSync_Post'; - PostExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsMsodsSync_PostExpanded'; - } - + Grant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTenantPolicy_Grant'; + GrantExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTenantPolicy_GrantExpanded'; + GrantViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTenantPolicy_GrantViaIdentity'; + GrantViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTenantPolicy_GrantViaIdentityExpanded'; + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) $scriptCmd = {& $wrappedCmd @PSBoundParameters} $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) @@ -6986,346 +7162,121 @@ end { <# .Synopsis -Create an AutoAttendant. -POST Teams.VoiceApps/auto-attendants. +Update single policy of a user .Description -Create an AutoAttendant. -POST Teams.VoiceApps/auto-attendants. +Update single policy of a user .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAutoAttendantRequest +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantUserRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAutoAttendantResponse +System.Boolean .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . - [AuthorizedUser ]: - [CallFlow ]: - [ForceListenMenuEnabled ]: - [Greeting ]: - [ActiveType ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [TextToSpeechPrompt ]: - [Id ]: - [MenuDialByNameEnabled ]: - [MenuDirectorySearchMethod ]: - [MenuName ]: - [MenuOption ]: - [Action ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [CallTargetCallPriority ]: - [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: - [CallTargetEnableTranscription ]: - [CallTargetId ]: - [CallTargetType ]: - [DtmfResponse ]: - [PromptActiveType ]: - [PromptTextToSpeechPrompt ]: - [VoiceResponse ]: - [MenuPrompt ]: - [Name ]: - [CallHandlingAssociation ]: - [CallFlowId ]: - [Enabled ]: - [Priority ]: - [ScheduleId ]: - [Type ]: - [DefaultCallFlowForceListenMenuEnabled ]: - [DefaultCallFlowGreeting ]: - [DefaultCallFlowId ]: - [DefaultCallFlowName ]: - [ExclusionScopeGroupDialScopeGroupId ]: - [ExclusionScopeType ]: - [HideAuthorizedUser ]: Gets or sets hidden authorized user ids. - [InclusionScopeGroupDialScopeGroupId ]: - [InclusionScopeType ]: - [LanguageId ]: - [MenuDialByNameEnabled ]: - [MenuDirectorySearchMethod ]: - [MenuName ]: - [MenuOption ]: - [MenuPrompt ]: - [Name ]: - [OperatorCallPriority ]: - [OperatorEnableSharedVoicemailSystemPromptSuppression ]: - [OperatorEnableTranscription ]: - [OperatorId ]: - [OperatorType ]: - [TimeZoneId ]: - [UserNameExtension ]: - [VoiceId ]: - [VoiceResponseEnabled ]: +BODY : . + [AdditionalParameter ]: Dictionary of + [(Any) ]: This indicates any property can be added to this object. + [PolicyName ]: -CALLFLOW : . - [ForceListenMenuEnabled ]: - [Greeting ]: - [ActiveType ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [TextToSpeechPrompt ]: +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: - [MenuDialByNameEnabled ]: - [MenuDirectorySearchMethod ]: - [MenuName ]: - [MenuOption ]: - [Action ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [CallTargetCallPriority ]: - [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: - [CallTargetEnableTranscription ]: - [CallTargetId ]: - [CallTargetType ]: - [DtmfResponse ]: - [PromptActiveType ]: - [PromptTextToSpeechPrompt ]: - [VoiceResponse ]: - [MenuPrompt ]: - [Name ]: - -CALLHANDLINGASSOCIATION : . - [CallFlowId ]: - [Enabled ]: - [Priority ]: - [ScheduleId ]: - [Type ]: - -DEFAULTCALLFLOWGREETING : . - [ActiveType ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [TextToSpeechPrompt ]: - -MENUOPTION : . - [Action ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [CallTargetCallPriority ]: - [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: - [CallTargetEnableTranscription ]: - [CallTargetId ]: - [CallTargetType ]: - [DtmfResponse ]: - [PromptActiveType ]: - [PromptTextToSpeechPrompt ]: - [VoiceResponse ]: - -MENUPROMPT : . - [ActiveType ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [TextToSpeechPrompt ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendant +https://docs.microsoft.com/en-us/powershell/module/teams/grant-csuserpolicy #> -function New-CsAutoAttendant { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAutoAttendantResponse])] -[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Grant-CsUserPolicy { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='GrantExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAutoAttendantRequest] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # . - ${AuthorizedUser}, - - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallFlow[]] - # . - # To construct, see NOTES section for CALLFLOW properties and create a hash table. - ${CallFlow}, - - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallHandlingAssociation[]] - # . - # To construct, see NOTES section for CALLHANDLINGASSOCIATION properties and create a hash table. - ${CallHandlingAssociation}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${DefaultCallFlowForceListenMenuEnabled}, - - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] - # . - # To construct, see NOTES section for DEFAULTCALLFLOWGREETING properties and create a hash table. - ${DefaultCallFlowGreeting}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${DefaultCallFlowId}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${DefaultCallFlowName}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${EnableVoiceResponse}, - - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # . - ${ExclusionScopeGroupDialScopeGroupId}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${ExclusionScopeType}, - - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # Gets or sets hidden authorized user ids. - ${HideAuthorizedUser}, - - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # . - ${InclusionScopeGroupDialScopeGroupId}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${InclusionScopeType}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${LanguageId}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${MenuDialByNameEnabled}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${MenuDirectorySearchMethod}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${MenuName}, - - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMenuOption[]] - # . - # To construct, see NOTES section for MENUOPTION properties and create a hash table. - ${MenuOption}, - - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] - # . - # To construct, see NOTES section for MENUPROMPT properties and create a hash table. - ${MenuPrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(ParameterSetName='Grant', Mandatory)] + [Parameter(ParameterSetName='GrantExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # . - ${Name}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # . - ${OperatorCallPriority}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${OperatorEnableSharedVoicemailSystemPromptSuppression}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${OperatorEnableTranscription}, + # User Id + ${Identity}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(ParameterSetName='Grant', Mandatory)] + [Parameter(ParameterSetName='GrantExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # . - ${OperatorId}, + # Policy Type + ${PolicyType}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${OperatorType}, + [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GrantViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, - [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='Grant', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantUserRequest] # . - ${TimeZoneId}, + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, - [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='GrantExpanded')] + [Parameter(ParameterSetName='GrantViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${UserNameExtension}, + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.Info(PossibleTypes=([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantUserRequestAdditionalParameters]))] + [System.Collections.Hashtable] + # Dictionary of + ${AdditionalParameters}, - [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='GrantExpanded')] + [Parameter(ParameterSetName='GrantViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${VoiceId}, + ${PolicyName}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -7347,6 +7298,12 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -7376,8 +7333,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendant_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendant_NewExpanded'; + Grant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsUserPolicy_Grant'; + GrantExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsUserPolicy_GrantExpanded'; + GrantViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsUserPolicy_GrantViaIdentity'; + GrantViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsUserPolicy_GrantViaIdentityExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -7417,74 +7376,122 @@ end { <# .Synopsis -Create a callable entity draft. -POST Teams.VoiceApps/auto-attendants/callable-entities/draft. +Import holidays for auto attendant. +PUT Teams.VoiceApps/auto-attendants/identity/holidays. .Description -Create a callable entity draft. -POST Teams.VoiceApps/auto-attendants/callable-entities/draft. +Import holidays for auto attendant. +PUT Teams.VoiceApps/auto-attendants/identity/holidays. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallableEntityRequest +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IImportAutoAttendantHolidaysRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallableEntityResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IImportAutoAttendantHolidaysResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . - [CallPriority ]: - [EnableSharedVoicemailSystemPromptSuppression ]: - [EnableTranscription ]: +BODY : . [Id ]: - [Type ]: + [SerializedHolidayRecord ]: + [TenantId ]: + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantcallableentity +https://docs.microsoft.com/en-us/powershell/module/teams/import-csautoattendantholidays #> -function New-CsAutoAttendantCallableEntity { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallableEntityResponse])] -[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Import-CsAutoAttendantHolidays { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IImportAutoAttendantHolidaysResponse])] +[CmdletBinding(DefaultParameterSetName='ImportExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='Import', Mandatory)] + [Parameter(ParameterSetName='ImportExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='ImportViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ImportViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Import', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ImportViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallableEntityRequest] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IImportAutoAttendantHolidaysRequest] # . # To construct, see NOTES section for BODY properties and create a hash table. ${Body}, - [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='ImportExpanded')] + [Parameter(ParameterSetName='ImportViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] + [System.String] # . - ${CallPriority}, + ${Id}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${EnableSharedVoicemailSystemPromptSuppression}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${EnableTranscription}, - - [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='ImportExpanded')] + [Parameter(ParameterSetName='ImportViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${Identity}, + ${SerializedHolidayRecord}, - [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='ImportExpanded')] + [Parameter(ParameterSetName='ImportViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${Type}, + ${TenantId}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -7535,8 +7542,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallableEntity_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallableEntity_NewExpanded'; + Import = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsAutoAttendantHolidays_Import'; + ImportExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsAutoAttendantHolidays_ImportExpanded'; + ImportViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsAutoAttendantHolidays_ImportViaIdentity'; + ImportViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsAutoAttendantHolidays_ImportViaIdentityExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -7576,148 +7585,123 @@ end { <# .Synopsis -Create a call flow draft. -POST Teams.VoiceApps/auto-attendants/call-flows/draft. +Store a new Audio file in MSS. +POST api/v3/tenants/tenantId/audiofile. .Description -Create a call flow draft. -POST Teams.VoiceApps/auto-attendants/call-flows/draft. +Store a new Audio file in MSS. +POST api/v3/tenants/tenantId/audiofile. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallFlowRequest +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantAudioFileDto .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallFlowResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAudioFileDto .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . - [ForceListenMenuEnabled ]: - [Greeting ]: - [ActiveType ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [TextToSpeechPrompt ]: - [MenuDialByNameEnabled ]: - [MenuDirectorySearchMethod ]: - [MenuName ]: - [MenuOption ]: - [Action ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [CallTargetCallPriority ]: - [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: - [CallTargetEnableTranscription ]: - [CallTargetId ]: - [CallTargetType ]: - [DtmfResponse ]: - [PromptActiveType ]: - [PromptTextToSpeechPrompt ]: - [VoiceResponse ]: - [MenuPrompt ]: - [Name ]: - -GREETING : . - [ActiveType ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [TextToSpeechPrompt ]: - -MENUOPTION : . - [Action ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [CallTargetCallPriority ]: - [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: - [CallTargetEnableTranscription ]: - [CallTargetId ]: - [CallTargetType ]: - [DtmfResponse ]: - [PromptActiveType ]: - [PromptTextToSpeechPrompt ]: - [VoiceResponse ]: - -MENUPROMPT : . - [ActiveType ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [TextToSpeechPrompt ]: +BODY : . + ApplicationId : + Content : + OriginalFilename : + [Id ]: + [ContextId ]: + [ConvertedFilename ]: + [DeletionTimestampOffset ]: + [DownloadUri ]: + [DownloadUriExpiryTimestampOffset ]: + [Duration ]: + [LastAccessedTimestampOffset ]: + [UploadedTimestampOffset ]: .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantcallflow +https://docs.microsoft.com/en-us/powershell/module/teams/import-csonlineaudiofile #> -function New-CsAutoAttendantCallFlow { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallFlowResponse])] -[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Import-CsOnlineAudioFile { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAudioFileDto])] +[CmdletBinding(DefaultParameterSetName='ImportExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='Import', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallFlowRequest] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantAudioFileDto] # . # To construct, see NOTES section for BODY properties and create a hash table. ${Body}, - [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='ImportExpanded', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] + [System.String] # . - ${ForceListenMenuEnabled}, + ${ApplicationId}, - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] + [Parameter(ParameterSetName='ImportExpanded', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] + [System.String] # . - # To construct, see NOTES section for GREETING properties and create a hash table. - ${Greeting}, + ${Content}, - [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='ImportExpanded', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] + [System.String] # . - ${MenuDialByNameEnabled}, + ${FileName}, - [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='ImportExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${MenuDirectorySearchMethod}, + ${ContextId}, - [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='ImportExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${MenuName}, + ${ConvertedFilename}, - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] + [Parameter(ParameterSetName='ImportExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMenuOption[]] + [System.DateTime] # . - # To construct, see NOTES section for MENUOPTION properties and create a hash table. - ${MenuOption}, + ${DeletionTimestampOffset}, - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] + [Parameter(ParameterSetName='ImportExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] + [System.String] # . - # To construct, see NOTES section for MENUPROMPT properties and create a hash table. - ${MenuPrompt}, + ${DownloadUri}, - [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='ImportExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${DownloadUriExpiryTimestampOffset}, + + [Parameter(ParameterSetName='ImportExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${Name}, + ${Duration}, + + [Parameter(ParameterSetName='ImportExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Id}, + + [Parameter(ParameterSetName='ImportExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${LastAccessedTimestampOffset}, + + [Parameter(ParameterSetName='ImportExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${UploadedTimestampOffset}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -7768,8 +7752,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallFlow_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallFlow_NewExpanded'; + Import = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsOnlineAudioFile_Import'; + ImportExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsOnlineAudioFile_ImportExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -7809,67 +7793,40 @@ end { <# .Synopsis -Create a call handling association draft. -POST Teams.VoiceApps/auto-attendants/call-handling-associations/draft. +Invokes Custom Handler .Description -Create a call handling association draft. -POST Teams.VoiceApps/auto-attendants/call-handling-associations/draft. +Invokes Custom Handler .Example {{ Add code here }} .Example {{ Add code here }} -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallHandlingAssociationRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallHandlingAssociationResponse -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -BODY : . - [CallFlowId ]: - [Enabled ]: - [ScheduleId ]: - [Type ]: +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICustomHandlerCallBackOutput .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantcallhandlingassociation +https://docs.microsoft.com/en-us/powershell/module/teams/invoke-cscustomhandlercallbackngtprov #> -function New-CsAutoAttendantCallHandlingAssociation { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallHandlingAssociationResponse])] -[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Invoke-CsCustomHandlerCallBackNgtprov { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICustomHandlerCallBackOutput])] +[CmdletBinding(DefaultParameterSetName='Post', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallHandlingAssociationRequest] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # . - ${CallFlowId}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${Enabled}, + # Unique Id of the Handler. + ${Id}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # . - ${ScheduleId}, + # Callback Operation. + ${Operation}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # . - ${Type}, + # EventName for the SendEventPostURI. + ${Eventname}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -7920,8 +7877,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallHandlingAssociation_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallHandlingAssociation_NewExpanded'; + Post = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsCustomHandlerCallBackNgtprov_Post'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -7961,47 +7917,101 @@ end { <# .Synopsis -Create a group dial scope draft. -POST Teams.VoiceApps/auto-attendants/group-dial-scopes/draft. +Post DsSync resync cmdlet .Description -Create a group dial scope draft. -POST Teams.VoiceApps/auto-attendants/group-dial-scopes/draft. +Post DsSync resync cmdlet .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateGroupDialScopeRequest +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDsRequestBody .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateGroupDialScopeResponse +System.Boolean .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . - [GroupId ]: +BODY : Request body for DsSync cmdlet + [DeploymentName ]: Deployment Name + [IsValidationRequest ]: + [ObjectClass ]: Object Class enum + [ObjectId ]: GUID of the user + [ObjectIds ]: + [ReSyncOption ]: ReSync for the given entity + [ScenariosToSuppress ]: Scenarios to Suppress + [ServiceInstance ]: Service Instance of the tenant + [SynchronizeTenantWithAllObject ]: Sync all the users of the tenant .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantdialscope +https://docs.microsoft.com/en-us/powershell/module/teams/invoke-csdirectobjectsync #> -function New-CsAutoAttendantDialScope { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateGroupDialScopeResponse])] -[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Invoke-CsDirectObjectSync { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='PostExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='Post', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateGroupDialScopeRequest] - # . + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDsRequestBody] + # Request body for DsSync cmdlet # To construct, see NOTES section for BODY properties and create a hash table. ${Body}, - [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Deployment Name + ${DeploymentName}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsValidationRequest}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Object Class enum + ${ObjectClass}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # GUID of the user + ${ObjectId}, + + [Parameter(ParameterSetName='PostExpanded')] [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String[]] # . - ${GroupIds}, + ${ObjectIds}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + # ReSync for the given entity + ${ReSyncOption}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Scenarios to Suppress + ${ScenariosToSuppress}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Service Instance of the tenant + ${ServiceInstance}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Sync all the users of the tenant + ${SynchronizeTenantWithAllObject}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -8023,6 +8033,12 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -8052,8 +8068,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantDialScope_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantDialScope_NewExpanded'; + Post = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsDirectObjectSync_Post'; + PostExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsDirectObjectSync_PostExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -8093,118 +8109,94 @@ end { <# .Synopsis -Create a menu draft. -POST Teams.VoiceApps/auto-attendants/menus/draft. +Post resync operation cmdlet .Description -Create a menu draft. -POST Teams.VoiceApps/auto-attendants/menus/draft. +Post resync operation cmdlet .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuRequest +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IResyncRequestBody .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuResponse +System.Boolean .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . - [DialByNameEnabled ]: - [DirectorySearchMethod ]: - [MenuOption ]: - [Action ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [CallTargetCallPriority ]: - [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: - [CallTargetEnableTranscription ]: - [CallTargetId ]: - [CallTargetType ]: - [DtmfResponse ]: - [PromptActiveType ]: - [PromptTextToSpeechPrompt ]: - [VoiceResponse ]: - [Name ]: - [Prompt ]: - [ActiveType ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [TextToSpeechPrompt ]: - -MENUOPTION : . - [Action ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [CallTargetCallPriority ]: - [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: - [CallTargetEnableTranscription ]: - [CallTargetId ]: - [CallTargetType ]: - [DtmfResponse ]: - [PromptActiveType ]: - [PromptTextToSpeechPrompt ]: - [VoiceResponse ]: - -PROMPT : . - [ActiveType ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [TextToSpeechPrompt ]: +BODY : Request body for Resync cmdlet + [IsValidationRequest ]: + [ObjectClass ]: Object Class enum + [ObjectId ]: + [ReSyncOption ]: ReSync for the given entity + [ScenariosToSuppress ]: Scenarios to Suppress + [ServiceInstance ]: Service Instance of the tenant + [SynchronizeTenantWithAllObject ]: Sync all the users of the tenant + [TenantId ]: TenantId GUID .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantmenu +https://docs.microsoft.com/en-us/powershell/module/teams/invoke-csmsodssync #> -function New-CsAutoAttendantMenu { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuResponse])] -[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Invoke-CsMsodsSync { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='PostExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='Post', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuRequest] - # . + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IResyncRequestBody] + # Request body for Resync cmdlet # To construct, see NOTES section for BODY properties and create a hash table. ${Body}, - [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='PostExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] + [System.Management.Automation.SwitchParameter] # . - ${DirectorySearchMethod}, + ${IsValidationRequest}, - [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='PostExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${EnableDialByName}, + [System.String] + # Object Class enum + ${ObjectClass}, - [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='PostExpanded')] [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMenuOption[]] + [System.String[]] # . - # To construct, see NOTES section for MENUOPTION properties and create a hash table. - ${MenuOption}, + ${ObjectId}, - [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + # ReSync for the given entity + ${ReSyncOption}, + + [Parameter(ParameterSetName='PostExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${Name}, + # Scenarios to Suppress + ${ScenariosToSuppress}, - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] + [Parameter(ParameterSetName='PostExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] - # . - # To construct, see NOTES section for PROMPT properties and create a hash table. - ${Prompt}, + [System.String] + # Service Instance of the tenant + ${ServiceInstance}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Sync all the users of the tenant + ${SynchronizeTenantWithAllObject}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # TenantId GUID + ${TenantId}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -8226,6 +8218,12 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -8255,8 +8253,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantMenu_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantMenu_NewExpanded'; + Post = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsMsodsSync_Post'; + PostExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsMsodsSync_PostExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -8296,27 +8294,147 @@ end { <# .Synopsis -Create a menu option draft. -POST Teams.VoiceApps/auto-attendants/menus/menu-options/draft. +Create an AutoAttendant. +POST Teams.VoiceApps/auto-attendants. .Description -Create a menu option draft. -POST Teams.VoiceApps/auto-attendants/menus/menu-options/draft. +Create an AutoAttendant. +POST Teams.VoiceApps/auto-attendants. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuOptionRequest +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAutoAttendantRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuOptionResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAutoAttendantResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . +BODY : . + [AuthorizedUser ]: + [CallFlow ]: + [ForceListenMenuEnabled ]: + [Greeting ]: + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + [Id ]: + [MenuDialByNameEnabled ]: + [MenuDirectorySearchMethod ]: + [MenuName ]: + [MenuOption ]: + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + [MenuPrompt ]: + [Name ]: + [CallHandlingAssociation ]: + [CallFlowId ]: + [Enabled ]: + [Priority ]: + [ScheduleId ]: + [Type ]: + [DefaultCallFlowForceListenMenuEnabled ]: + [DefaultCallFlowGreeting ]: + [DefaultCallFlowId ]: + [DefaultCallFlowName ]: + [ExclusionScopeGroupDialScopeGroupId ]: + [ExclusionScopeType ]: + [HideAuthorizedUser ]: Gets or sets hidden authorized user ids. + [InclusionScopeGroupDialScopeGroupId ]: + [InclusionScopeType ]: + [LanguageId ]: + [MainlineAttendantAgentVoiceId ]: + [MainlineAttendantEnabled ]: + [MenuDialByNameEnabled ]: + [MenuDirectorySearchMethod ]: + [MenuName ]: + [MenuOption ]: + [MenuPrompt ]: + [Name ]: + [OperatorCallPriority ]: + [OperatorEnableSharedVoicemailSystemPromptSuppression ]: + [OperatorEnableTranscription ]: + [OperatorId ]: + [OperatorType ]: + [TimeZoneId ]: + [UserNameExtension ]: + [VoiceId ]: + [VoiceResponseEnabled ]: + +CALLFLOW : . + [ForceListenMenuEnabled ]: + [Greeting ]: + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + [Id ]: + [MenuDialByNameEnabled ]: + [MenuDirectorySearchMethod ]: + [MenuName ]: + [MenuOption ]: + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + [MenuPrompt ]: + [Name ]: + +CALLHANDLINGASSOCIATION : . + [CallFlowId ]: + [Enabled ]: + [Priority ]: + [ScheduleId ]: + [Type ]: + +DEFAULTCALLFLOWGREETING : . + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + +MENUOPTION : . [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: [AudioFilePromptDownloadUri ]: [AudioFilePromptFileName ]: [AudioFilePromptId ]: @@ -8325,102 +8443,226 @@ BODY : . [CallTargetEnableTranscription ]: [CallTargetId ]: [CallTargetType ]: + [Description ]: [DtmfResponse ]: + [MainlineAttendantTarget ]: [PromptActiveType ]: [PromptTextToSpeechPrompt ]: [VoiceResponse ]: + +MENUPROMPT : . + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantmenuoption +https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendant #> -function New-CsAutoAttendantMenuOption { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuOptionResponse])] +function New-CsAutoAttendant { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAutoAttendantResponse])] [CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuOptionRequest] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAutoAttendantRequest] # . # To construct, see NOTES section for BODY properties and create a hash table. ${Body}, + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${AuthorizedUser}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallFlow[]] + # . + # To construct, see NOTES section for CALLFLOW properties and create a hash table. + ${CallFlow}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallHandlingAssociation[]] + # . + # To construct, see NOTES section for CALLHANDLINGASSOCIATION properties and create a hash table. + ${CallHandlingAssociation}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${DefaultCallFlowForceListenMenuEnabled}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] + # . + # To construct, see NOTES section for DEFAULTCALLFLOWGREETING properties and create a hash table. + ${DefaultCallFlowGreeting}, + [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${Action}, + ${DefaultCallFlowId}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${AudioFilePromptDownloadUri}, + ${DefaultCallFlowName}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${EnableMainlineAttendant}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${EnableVoiceResponse}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${ExclusionScopeGroupDialScopeGroupId}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${AudioFilePromptFileName}, + ${ExclusionScopeType}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets hidden authorized user ids. + ${HideAuthorizedUser}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${InclusionScopeGroupDialScopeGroupId}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${AudioFilePromptId}, + ${InclusionScopeType}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] + [System.String] # . - ${CallTargetCallPriority}, + ${LanguageId}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] + [System.String] # . - ${CallTargetEnableSharedVoicemailSystemPromptSuppression}, + ${MainlineAttendantAgentVoiceId}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.Management.Automation.SwitchParameter] # . - ${CallTargetEnableTranscription}, + ${MenuDialByNameEnabled}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${CallTargetId}, + ${MenuDirectorySearchMethod}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${CallTargetType}, + ${MenuName}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMenuOption[]] + # . + # To construct, see NOTES section for MENUOPTION properties and create a hash table. + ${MenuOption}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] + # . + # To construct, see NOTES section for MENUPROMPT properties and create a hash table. + ${MenuPrompt}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${DtmfResponse}, + ${Name}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${OperatorCallPriority}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${OperatorEnableSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${OperatorEnableTranscription}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${PromptActiveType}, + ${OperatorId}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${PromptTextToSpeechPrompt}, + ${OperatorType}, [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] + [System.String] # . - ${VoiceResponses}, + ${TimeZoneId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${UserNameExtension}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${VoiceId}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -8471,8 +8713,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantMenuOption_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantMenuOption_NewExpanded'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendant_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendant_NewExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -8512,74 +8754,74 @@ end { <# .Synopsis -Create a prompt draft. -POST Teams.VoiceApps/auto-attendants/prompts/draft. +Create a callable entity draft. +POST Teams.VoiceApps/auto-attendants/callable-entities/draft. .Description -Create a prompt draft. -POST Teams.VoiceApps/auto-attendants/prompts/draft. +Create a callable entity draft. +POST Teams.VoiceApps/auto-attendants/callable-entities/draft. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreatePromptRequest +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallableEntityRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreatePromptResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallableEntityResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . - [ActiveType ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [TextToSpeechPrompt ]: +BODY : . + [CallPriority ]: + [EnableSharedVoicemailSystemPromptSuppression ]: + [EnableTranscription ]: + [Id ]: + [Type ]: .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantprompt +https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantcallableentity #> -function New-CsAutoAttendantPrompt { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreatePromptResponse])] +function New-CsAutoAttendantCallableEntity { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallableEntityResponse])] [CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreatePromptRequest] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallableEntityRequest] # . # To construct, see NOTES section for BODY properties and create a hash table. ${Body}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] + [System.Int32] # . - ${ActiveType}, + ${CallPriority}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] + [System.Management.Automation.SwitchParameter] # . - ${AudioFilePromptDownloadUri}, + ${EnableSharedVoicemailSystemPromptSuppression}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] + [System.Management.Automation.SwitchParameter] # . - ${AudioFilePromptFileName}, + ${EnableTranscription}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${AudioFilePromptId}, + ${Identity}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${TextToSpeechPrompt}, + ${Type}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -8630,8 +8872,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantPrompt_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantPrompt_NewExpanded'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallableEntity_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallableEntity_NewExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -8671,51 +8913,158 @@ end { <# .Synopsis -Starts Deployment at Scale +Create a call flow draft. +POST Teams.VoiceApps/auto-attendants/call-flows/draft. .Description -Starts Deployment at Scale +Create a call flow draft. +POST Teams.VoiceApps/auto-attendants/call-flows/draft. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IFlwoServiceModelsFlwosBatchRequest +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallFlowRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IFlwoServiceModelsFlwosBatchRequestResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallFlowResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . - DeploymentCsv : - [UsersToNotify ]: +BODY : . + [ForceListenMenuEnabled ]: + [Greeting ]: + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + [MenuDialByNameEnabled ]: + [MenuDirectorySearchMethod ]: + [MenuName ]: + [MenuOption ]: + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + [MenuPrompt ]: + [Name ]: + +GREETING : . + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + +MENUOPTION : . + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + +MENUPROMPT : . + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csbatchteamsdeployment +https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantcallflow #> -function New-CsBatchTeamsDeployment { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IFlwoServiceModelsFlwosBatchRequestResponse])] +function New-CsAutoAttendantCallFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallFlowResponse])] [CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IFlwoServiceModelsFlwosBatchRequest] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallFlowRequest] # . # To construct, see NOTES section for BODY properties and create a hash table. ${Body}, - [Parameter(ParameterSetName='NewExpanded', Mandatory)] + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${ForceListenMenuEnabled}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] + # . + # To construct, see NOTES section for GREETING properties and create a hash table. + ${Greeting}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${MenuDialByNameEnabled}, + + [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${DeploymentCsv}, + ${MenuDirectorySearchMethod}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${UsersToNotify}, + ${MenuName}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMenuOption[]] + # . + # To construct, see NOTES section for MENUOPTION properties and create a hash table. + ${MenuOption}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] + # . + # To construct, see NOTES section for MENUPROMPT properties and create a hash table. + ${MenuPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Name}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -8766,8 +9115,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsBatchTeamsDeployment_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsBatchTeamsDeployment_NewExpanded'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallFlow_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallFlow_NewExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -8807,639 +9156,663 @@ end { <# .Synopsis -Create call queue. -POST Teams.VoiceApps/callqueues. +Create a call handling association draft. +POST Teams.VoiceApps/auto-attendants/call-handling-associations/draft. .Description -Create call queue. -POST Teams.VoiceApps/callqueues. +Create a call handling association draft. +POST Teams.VoiceApps/auto-attendants/call-handling-associations/draft. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallQueueRequest +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallHandlingAssociationRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallQueueResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallHandlingAssociationResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -AGENT : Gets or sets the Call Queue's agents list. - [ObjectId ]: - [OptIn ]: - -BODY : CallQueue creation request DTO class. - [Agent ]: Gets or sets the Call Queue's agents list. - [ObjectId ]: - [OptIn ]: - [AgentAlertTime ]: Gets or sets the number of seconds that a call can remain unanswered. - [AllowOptOut ]: Gets or sets a value indicating whether to allow agent optout on CallQueue. - [AuthorizedUser ]: Gets or sets authorized user ids. - [CallToAgentRatioThresholdBeforeOfferingCallback ]: - [CallbackEmailNotificationTarget ]: Gets or sets the callback email notification target. - [CallbackOfferAudioFilePromptResourceId ]: - [CallbackOfferTextToSpeechPrompt ]: - [CallbackRequestDtmf ]: - [ConferenceMode ]: Gets or sets a value indicating whether to allow Conference Mode on CallQueue. - [DistributionList ]: Gets or sets the Call Queue's Distribution Lists. - [EnableNoAgentSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. - [EnableNoAgentSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. - [EnableOverflowSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. - [EnableOverflowSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. - [EnableResourceAccountsForObo ]: Gets or sets a value indicating whether to allow CQ+Chanined RA's as permissioned RA's. - [EnableTimeoutSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. - [EnableTimeoutSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. - [HideAuthorizedUser ]: Gets or sets hidden authorized user ids. - [IsCallbackEnabled ]: - [LanguageId ]: Gets or sets the language Id used for TTS. - [MusicOnHoldAudioFileId ]: Gets or sets music on hold audio file id. - [Name ]: Gets or sets The Call Queue's name. - [NoAgentAction ]: Gets or sets the action to take if the NoAgent is LoggedIn/OptedIn. - [NoAgentActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of no agent. - [NoAgentActionTarget ]: Gets or sets the target of the NoAgent action. - [NoAgentApplyTo ]: Determines whether NoAgentAction is to be applied to All Calls or New Calls only. - [NoAgentDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on NoAgent. - [NoAgentDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on NoAgent. - [NoAgentRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on NoAgent. - [NoAgentRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on NoAgent. - [NoAgentRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on NoAgent. - [NoAgentRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on NoAgent. - [NoAgentRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on NoAgent. - [NoAgentRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on NoAgent. - [NoAgentRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on NoAgent. - [NoAgentRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on NoAgent. - [NoAgentSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemail. - [NoAgentSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. - [NumberOfCallsInQueueBeforeOfferingCallback ]: - [OboResourceAccountId ]: Gets or sets the Obo resource account ids. - [OverflowAction ]: Gets or sets the action to take when the overflow threshold is reached. - [OverflowActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of overflow. - [OverflowActionTarget ]: Gets or sets the target of the overflow action. - [OverflowDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on overflow. - [OverflowDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on overflow. - [OverflowRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on overflow. - [OverflowRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on overflow. - [OverflowRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on overflow. - [OverflowRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on overflow. - [OverflowRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on overflow. - [OverflowRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on overflow. - [OverflowRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on overflow. - [OverflowRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on overflow. - [OverflowSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemai. - [OverflowSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. - [OverflowThreshold ]: Gets or sets the number of simultaneous calls that can be in the queue at any one time. - [PresenceAwareRouting ]: Gets or sets a value indicating whether to enable presence aware routing. - [RoutingMethod ]: Gets or sets the routing method for the Call Queue. - [ServiceLevelThresholdResponseTimeInSecond ]: - [ShouldOverwriteCallableChannelProperty ]: Gets or sets ShouldOverwriteCallableChannelProperty flag that indicates user intention to whether overwirte the current callableChannel property value on chat service or not. - [ThreadId ]: Gets or sets teams channel thread id if user choose to sync CQ with a channel. - [TimeoutAction ]: Gets or sets the action to take if the timeout threshold is reached. - [TimeoutActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of timeout. - [TimeoutActionTarget ]: Gets or sets the target of the timeout action. - [TimeoutDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on Timeout. - [TimeoutDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on Timeout. - [TimeoutRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on Timeout. - [TimeoutRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on Timeout. - [TimeoutRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on Timeout. - [TimeoutRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on Timeout. - [TimeoutRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on Timeout. - [TimeoutRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on Timeout. - [TimeoutRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on Timeout. - [TimeoutRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on Timeout. - [TimeoutSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemai. - [TimeoutSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. - [TimeoutThreshold ]: Gets or sets the number of minutes that a call can be in the queue before it times out. - [UseDefaultMusicOnHold ]: Gets or sets a value indicating whether to use default music on hold audio file. - [User ]: Gets or sets the Call Queue's Users. - [WaitTimeBeforeOfferingCallbackInSecond ]: - [WelcomeMusicAudioFileId ]: Gets or sets welcome music audio file id. - [WelcomeTextToSpeechPrompt ]: Gets or sets welcome text to speech content. -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-cscallqueue -#> -function New-CsCallQueue { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallQueueResponse])] -[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${ChannelUserObjectId}, - - [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallQueueRequest] - # CallQueue creation request DTO class. - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAgent[]] - # Gets or sets the Call Queue's agents list. - # To construct, see NOTES section for AGENT properties and create a hash table. - ${Agent}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the number of seconds that a call can remain unanswered. - ${AgentAlertTime}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether to allow agent optout on CallQueue. - ${AllowOptOut}, - - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # Gets or sets authorized user ids. - ${AuthorizedUsers}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # . - ${CallToAgentRatioThresholdBeforeOfferingCallback}, +BODY : . + [CallFlowId ]: + [Enabled ]: + [ScheduleId ]: + [Type ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantcallhandlingassociation +#> +function New-CsAutoAttendantCallHandlingAssociation { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallHandlingAssociationResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallHandlingAssociationRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the callback email notification target. - ${CallbackEmailNotificationTarget}, + # . + ${CallFlowId}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] + [System.Management.Automation.SwitchParameter] # . - ${CallbackOfferAudioFilePromptResourceId}, + ${Enabled}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${CallbackOfferTextToSpeechPrompt}, + ${ScheduleId}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${CallbackRequestDtmf}, + ${Type}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether to allow Conference Mode on CallQueue. - ${ConferenceMode}, + # Wait for .NET debugger to attach + ${Break}, - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # Gets or sets the Call Queue's Distribution Lists. - ${DistributionLists}, + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating if system message should be suppressed or not. - ${EnableNoAgentSharedVoicemailSystemPromptSuppression}, + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating if transcription should be turned on or not. - ${EnableNoAgentSharedVoicemailTranscription}, + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating if system message should be suppressed or not. - ${EnableOverflowSharedVoicemailSystemPromptSuppression}, + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating if transcription should be turned on or not. - ${EnableOverflowSharedVoicemailTranscription}, + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether to allow CQ+Chanined RA's as permissioned RA's. - ${EnableResourceAccountsForObo}, +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating if system message should be suppressed or not. - ${EnableTimeoutSharedVoicemailSystemPromptSuppression}, + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallHandlingAssociation_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallHandlingAssociation_NewExpanded'; + } - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating if transcription should be turned on or not. - ${EnableTimeoutSharedVoicemailTranscription}, + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # Gets or sets hidden authorized user ids. - ${HideAuthorizedUsers}, + throw + } +} - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${IsCallbackEnabled}, +process { + try { + $steppablePipeline.Process($_) + } catch { - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the language Id used for TTS. - ${LanguageId}, + throw + } - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets music on hold audio file id. - ${MusicOnHoldAudioFileId}, +} +end { + try { + $steppablePipeline.End() - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets The Call Queue's name. - ${Name}, + } catch { - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the action to take if the NoAgent is LoggedIn/OptedIn. - ${NoAgentAction}, + throw + } +} +} - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of no agent. - ${NoAgentActionCallPriority}, +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the target of the NoAgent action. - ${NoAgentActionTarget}, +<# +.Synopsis +Create a group dial scope draft. +POST Teams.VoiceApps/auto-attendants/group-dial-scopes/draft. +.Description +Create a group dial scope draft. +POST Teams.VoiceApps/auto-attendants/group-dial-scopes/draft. +.Example +{{ Add code here }} +.Example +{{ Add code here }} - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Determines whether NoAgentAction is to be applied to All Calls or New Calls only. - ${NoAgentApplyTo}, +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateGroupDialScopeRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateGroupDialScopeResponse +.Notes +COMPLEX PARAMETER PROPERTIES - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is disconnected on NoAgent. - ${NoAgentDisconnectAudioFilePrompt}, +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - [Parameter(ParameterSetName='NewExpanded')] +BODY : . + [GroupId ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantdialscope +#> +function New-CsAutoAttendantDialScope { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateGroupDialScopeResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is disconnected on NoAgent. - ${NoAgentDisconnectTextToSpeechPrompt}, + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateGroupDialScopeRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to person on NoAgent. - ${NoAgentRedirectPersonAudioFilePrompt}, + [System.String[]] + # . + ${GroupIds}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to person on NoAgent. - ${NoAgentRedirectPersonTextToSpeechPrompt}, + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to phone number on NoAgent. - ${NoAgentRedirectPhoneNumberAudioFilePrompt}, + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to phone number on NoAgent. - ${NoAgentRedirectPhoneNumberTextToSpeechPrompt}, + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to voiceapp on NoAgent. - ${NoAgentRedirectVoiceAppAudioFilePrompt}, + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to voiceapp on NoAgent. - ${NoAgentRedirectVoiceAppTextToSpeechPrompt}, + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to voicemail on NoAgent. - ${NoAgentRedirectVoicemailAudioFilePrompt}, + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to voicemail on NoAgent. - ${NoAgentRedirectVoicemailTextToSpeechPrompt}, +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when forwarding callers to shared voicemail. - ${NoAgentSharedVoicemailAudioFilePrompt}, + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantDialScope_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantDialScope_NewExpanded'; + } - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when forwarding callers to shared voicemail. - ${NoAgentSharedVoicemailTextToSpeechPrompt}, + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # . - ${NumberOfCallsInQueueBeforeOfferingCallback}, + throw + } +} - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # Gets or sets the Obo resource account ids. - ${OboResourceAccountIds}, +process { + try { + $steppablePipeline.Process($_) + } catch { - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the action to take when the overflow threshold is reached. - ${OverflowAction}, + throw + } - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of overflow. - ${OverflowActionCallPriority}, +} +end { + try { + $steppablePipeline.End() - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the target of the overflow action. - ${OverflowActionTarget}, + } catch { - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is disconnected on overflow. - ${OverflowDisconnectAudioFilePrompt}, + throw + } +} +} - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is disconnected on overflow. - ${OverflowDisconnectTextToSpeechPrompt}, +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to person on overflow. - ${OverflowRedirectPersonAudioFilePrompt}, +<# +.Synopsis +Create a menu draft. +POST Teams.VoiceApps/auto-attendants/menus/draft. +.Description +Create a menu draft. +POST Teams.VoiceApps/auto-attendants/menus/draft. +.Example +{{ Add code here }} +.Example +{{ Add code here }} - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to person on overflow. - ${OverflowRedirectPersonTextToSpeechPrompt}, +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuResponse +.Notes +COMPLEX PARAMETER PROPERTIES - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to phone number on overflow. - ${OverflowRedirectPhoneNumberAudioFilePrompt}, +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to phone number on overflow. - ${OverflowRedirectPhoneNumberTextToSpeechPrompt}, +BODY : . + [DialByNameEnabled ]: + [DirectorySearchMethod ]: + [MenuOption ]: + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + [Name ]: + [Prompt ]: + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to voiceapp on overflow. - ${OverflowRedirectVoiceAppAudioFilePrompt}, +MENUOPTION : . + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: - [Parameter(ParameterSetName='NewExpanded')] +PROMPT : . + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantmenu +#> +function New-CsAutoAttendantMenu { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to voiceapp on overflow. - ${OverflowRedirectVoiceAppTextToSpeechPrompt}, + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the audio file to be played when call is redirected to voicemail on overflow. - ${OverflowRedirectVoicemailAudioFilePrompt}, + # . + ${DirectorySearchMethod}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to voicemail on overflow. - ${OverflowRedirectVoicemailTextToSpeechPrompt}, + [System.Management.Automation.SwitchParameter] + # . + ${EnableDialByName}, [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when forwarding callers to shared voicemai. - ${OverflowSharedVoicemailAudioFilePrompt}, + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMenuOption[]] + # . + # To construct, see NOTES section for MENUOPTION properties and create a hash table. + ${MenuOption}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the TTS to be played when forwarding callers to shared voicemail. - ${OverflowSharedVoicemailTextToSpeechPrompt}, + # . + ${Name}, [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the number of simultaneous calls that can be in the queue at any one time. - ${OverflowThreshold}, + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] + # . + # To construct, see NOTES section for PROMPT properties and create a hash table. + ${Prompt}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether to enable presence aware routing. - ${PresenceAwareRouting}, + # Wait for .NET debugger to attach + ${Break}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the routing method for the Call Queue. - ${RoutingMethod}, + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # . - ${ServiceLevelThresholdResponseTimeInSecond}, + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] - # Gets or sets ShouldOverwriteCallableChannelProperty flag that indicates user intention to whether overwirte the current callableChannel property value on chat service or not. - ${ShouldOverwriteCallableChannelProperty}, + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets teams channel thread id if user choose to sync CQ with a channel. - ${ThreadId}, +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the action to take if the timeout threshold is reached. - ${TimeoutAction}, + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantMenu_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantMenu_NewExpanded'; + } - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of timeout. - ${TimeoutActionCallPriority}, + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { - [Parameter(ParameterSetName='NewExpanded')] + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create a menu option draft. +POST Teams.VoiceApps/auto-attendants/menus/menu-options/draft. +.Description +Create a menu option draft. +POST Teams.VoiceApps/auto-attendants/menus/menu-options/draft. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuOptionRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuOptionResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantmenuoption +#> +function New-CsAutoAttendantMenuOption { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuOptionResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the target of the timeout action. - ${TimeoutActionTarget}, + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuOptionRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the audio file to be played when call is disconnected on Timeout. - ${TimeoutDisconnectAudioFilePrompt}, + # . + ${Action}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the TTS to be played when call is disconnected on Timeout. - ${TimeoutDisconnectTextToSpeechPrompt}, + # . + ${AgentTarget}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the audio file to be played when call is redirected to person on Timeout. - ${TimeoutRedirectPersonAudioFilePrompt}, + # . + ${AgentTargetTagTemplateId}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to person on Timeout. - ${TimeoutRedirectPersonTextToSpeechPrompt}, + [System.Int32] + # . + ${AgentTargetType}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the audio file to be played when call is redirected to phone number on Timeout. - ${TimeoutRedirectPhoneNumberAudioFilePrompt}, + # . + ${AudioFilePromptDownloadUri}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the TTS to be played when call is redirected to phone number on Timeout. - ${TimeoutRedirectPhoneNumberTextToSpeechPrompt}, + # . + ${AudioFilePromptFileName}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the audio file to be played when call is redirected to voiceapp on Timeout. - ${TimeoutRedirectVoiceAppAudioFilePrompt}, + # . + ${AudioFilePromptId}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to voiceapp on Timeout. - ${TimeoutRedirectVoiceAppTextToSpeechPrompt}, + [System.Int32] + # . + ${CallTargetCallPriority}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to voicemail on Timeout. - ${TimeoutRedirectVoicemailAudioFilePrompt}, + [System.Management.Automation.SwitchParameter] + # . + ${CallTargetEnableSharedVoicemailSystemPromptSuppression}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to voicemail on Timeout. - ${TimeoutRedirectVoicemailTextToSpeechPrompt}, + [System.Management.Automation.SwitchParameter] + # . + ${CallTargetEnableTranscription}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the audio file to be played when forwarding callers to shared voicemai. - ${TimeoutSharedVoicemailAudioFilePrompt}, + # . + ${CallTargetId}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the TTS to be played when forwarding callers to shared voicemail. - ${TimeoutSharedVoicemailTextToSpeechPrompt}, + # . + ${CallTargetType}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the number of minutes that a call can be in the queue before it times out. - ${TimeoutThreshold}, + [System.String] + # . + ${Description}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether to use default music on hold audio file. - ${UseDefaultMusicOnHold}, + [System.String] + # . + ${DtmfResponse}, [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # Gets or sets the Call Queue's Users. - ${Users}, + [System.String] + # . + ${MainlineAttendantTarget}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] + [System.String] # . - ${WaitTimeBeforeOfferingCallbackInSecond}, + ${PromptActiveType}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets welcome music audio file id. - ${WelcomeMusicAudioFileId}, + # . + ${PromptTextToSpeechPrompt}, [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets welcome text to speech content. - ${WelcomeTextToSpeechPrompt}, + [System.String[]] + # . + ${VoiceResponses}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -9490,8 +9863,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsCallQueue_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsCallQueue_NewExpanded'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantMenuOption_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantMenuOption_NewExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -9531,124 +9904,74 @@ end { <# .Synopsis -Create new configuration +Create a prompt draft. +POST Teams.VoiceApps/auto-attendants/prompts/draft. .Description -Create new configuration +Create a prompt draft. +POST Teams.VoiceApps/auto-attendants/prompts/draft. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreatePromptRequest .Outputs -System.Boolean +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreatePromptResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . - [(Any) ]: This indicates any property can be added to this object. - Identity : - -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id - [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id +BODY : . + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csconfiguration +https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantprompt #> -function New-CsConfiguration { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function New-CsAutoAttendantPrompt { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreatePromptResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Create', Mandatory)] - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreatePromptRequest] # . - ${ConfigType}, - - [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Api Version - ${ApiVersion}, + # . + ${ActiveType}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${SchemaVersion}, + ${AudioFilePromptDownloadUri}, - [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration] + [System.String] # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, + ${AudioFilePromptFileName}, - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory)] + [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${Identity}, + ${AudioFilePromptId}, - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] + [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Collections.Hashtable] - # Additional Parameters - ${AdditionalProperties}, + [System.String] + # . + ${TextToSpeechPrompt}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -9670,12 +9993,6 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -9705,10 +10022,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Create = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsConfiguration_Create'; - CreateExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsConfiguration_CreateExpanded'; - CreateViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsConfiguration_CreateViaIdentity'; - CreateViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsConfiguration_CreateViaIdentityExpanded'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantPrompt_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantPrompt_NewExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -9748,50 +10063,51 @@ end { <# .Synopsis -Create a policy package +Starts Deployment at Scale .Description -Create a policy package +Starts Deployment at Scale .Example {{ Add code here }} .Example {{ Add code here }} +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IFlwoServiceModelsFlwosBatchRequest .Outputs -System.String +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IFlwoServiceModelsFlwosBatchRequestResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -POLICYLIST : . - PolicyName : - PolicyType : +BODY : . + DeploymentCsv : + [UsersToNotify ]: .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-cscustompolicypackage +https://docs.microsoft.com/en-us/powershell/module/teams/new-csbatchteamsdeployment #> -function New-CsCustomPolicyPackage { -[OutputType([System.String])] +function New-CsBatchTeamsDeployment { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IFlwoServiceModelsFlwosBatchRequestResponse])] [CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(Mandatory)] + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IFlwoServiceModelsFlwosBatchRequest] # . - ${Identity}, + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, - [Parameter(Mandatory)] - [AllowEmptyCollection()] + [Parameter(ParameterSetName='NewExpanded', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsRequestsPolicyTypeAndName[]] + [System.String] # . - # To construct, see NOTES section for POLICYLIST properties and create a hash table. - ${PolicyList}, + ${DeploymentCsv}, - [Parameter()] + [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${Description}, + ${UsersToNotify}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -9842,7 +10158,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsCustomPolicyPackage_NewExpanded'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsBatchTeamsDeployment_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsBatchTeamsDeployment_NewExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -9882,610 +10199,696 @@ end { <# .Synopsis -Create application instance associations. -POST Teams.VoiceApps/applicationinstanceassociations. +Create call queue. +POST Teams.VoiceApps/callqueues. .Description -Create application instance associations. -POST Teams.VoiceApps/applicationinstanceassociations. +Create call queue. +POST Teams.VoiceApps/callqueues. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateApplicationInstanceAssociationsRequest +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallQueueRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateApplicationInstanceAssociationsResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallQueueResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . - [CallPriority ]: - [ConfigurationId ]: - [ConfigurationType ]: - [EndpointsId ]: +AGENT : Gets or sets the Call Queue's agents list. + [ObjectId ]: + [OptIn ]: + +BODY : CallQueue creation request DTO class. + [Agent ]: Gets or sets the Call Queue's agents list. + [ObjectId ]: + [OptIn ]: + [AgentAlertTime ]: Gets or sets the number of seconds that a call can remain unanswered. + [AllowOptOut ]: Gets or sets a value indicating whether to allow agent optout on CallQueue. + [AuthorizedUser ]: Gets or sets authorized user ids. + [CallToAgentRatioThresholdBeforeOfferingCallback ]: + [CallbackEmailNotificationTarget ]: Gets or sets the callback email notification target. + [CallbackOfferAudioFilePromptResourceId ]: + [CallbackOfferTextToSpeechPrompt ]: + [CallbackRequestDtmf ]: + [ComplianceRecordingForCallQueueId ]: Gets or Sets the Id for Compliance Recording template for Callqueue. + [ConferenceMode ]: Gets or sets a value indicating whether to allow Conference Mode on CallQueue. + [CustomAudioFileAnnouncementForCr ]: Gets or sets the custom audio file announcement for compliance recording. + [CustomAudioFileAnnouncementForCrFailure ]: Gets or sets the custom audio file announcement for compliance recording if CR bot is unable to join the call. + [DistributionList ]: Gets or sets the Call Queue's Distribution Lists. + [EnableNoAgentSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. + [EnableNoAgentSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. + [EnableOverflowSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. + [EnableOverflowSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. + [EnableResourceAccountsForObo ]: Gets or sets a value indicating whether to allow CQ+Chanined RA's as permissioned RA's. + [EnableTimeoutSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. + [EnableTimeoutSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. + [HideAuthorizedUser ]: Gets or sets hidden authorized user ids. + [IsCallbackEnabled ]: + [LanguageId ]: Gets or sets the language Id used for TTS. + [MusicOnHoldAudioFileId ]: Gets or sets music on hold audio file id. + [Name ]: Gets or sets The Call Queue's name. + [NoAgentAction ]: Gets or sets the action to take if the NoAgent is LoggedIn/OptedIn. + [NoAgentActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of no agent. + [NoAgentActionTarget ]: Gets or sets the target of the NoAgent action. + [NoAgentApplyTo ]: Determines whether NoAgentAction is to be applied to All Calls or New Calls only. + [NoAgentDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on NoAgent. + [NoAgentDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on NoAgent. + [NoAgentRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on NoAgent. + [NoAgentRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on NoAgent. + [NoAgentRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on NoAgent. + [NoAgentRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on NoAgent. + [NoAgentRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on NoAgent. + [NoAgentRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on NoAgent. + [NoAgentRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on NoAgent. + [NoAgentRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on NoAgent. + [NoAgentSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemail. + [NoAgentSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. + [NumberOfCallsInQueueBeforeOfferingCallback ]: + [OboResourceAccountId ]: Gets or sets the Obo resource account ids. + [OverflowAction ]: Gets or sets the action to take when the overflow threshold is reached. + [OverflowActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of overflow. + [OverflowActionTarget ]: Gets or sets the target of the overflow action. + [OverflowDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on overflow. + [OverflowDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on overflow. + [OverflowRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on overflow. + [OverflowRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on overflow. + [OverflowRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on overflow. + [OverflowRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on overflow. + [OverflowRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on overflow. + [OverflowRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on overflow. + [OverflowRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on overflow. + [OverflowRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on overflow. + [OverflowSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemai. + [OverflowSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. + [OverflowThreshold ]: Gets or sets the number of simultaneous calls that can be in the queue at any one time. + [PresenceAwareRouting ]: Gets or sets a value indicating whether to enable presence aware routing. + [RoutingMethod ]: Gets or sets the routing method for the Call Queue. + [ServiceLevelThresholdResponseTimeInSecond ]: + [SharedCallQueueHistoryId ]: Gets or sets the Shared Call Queue History template. + [ShiftsSchedulingGroupId ]: Gets or sets the Shifts Scheduling Group to use as Call queues answer target. + [ShiftsTeamId ]: Gets or sets the Shifts Team to use as Call queues answer target. + [ShouldOverwriteCallableChannelProperty ]: Gets or sets ShouldOverwriteCallableChannelProperty flag that indicates user intention to whether overwirte the current callableChannel property value on chat service or not. + [TextAnnouncementForCr ]: Gets or sets the text announcement for compliance recording. + [TextAnnouncementForCrFailure ]: Gets or sets the text announcemet that is played if CR bot is unable to join the call. + [ThreadId ]: Gets or sets teams channel thread id if user choose to sync CQ with a channel. + [TimeoutAction ]: Gets or sets the action to take if the timeout threshold is reached. + [TimeoutActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of timeout. + [TimeoutActionTarget ]: Gets or sets the target of the timeout action. + [TimeoutDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on Timeout. + [TimeoutDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on Timeout. + [TimeoutRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on Timeout. + [TimeoutRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on Timeout. + [TimeoutRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on Timeout. + [TimeoutRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on Timeout. + [TimeoutRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on Timeout. + [TimeoutRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on Timeout. + [TimeoutRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on Timeout. + [TimeoutRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on Timeout. + [TimeoutSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemai. + [TimeoutSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. + [TimeoutThreshold ]: Gets or sets the number of minutes that a call can be in the queue before it times out. + [UseDefaultMusicOnHold ]: Gets or sets a value indicating whether to use default music on hold audio file. + [User ]: Gets or sets the Call Queue's Users. + [WaitTimeBeforeOfferingCallbackInSecond ]: + [WelcomeMusicAudioFileId ]: Gets or sets welcome music audio file id. + [WelcomeTextToSpeechPrompt ]: Gets or sets welcome text to speech content. .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlineapplicationinstanceassociation +https://docs.microsoft.com/en-us/powershell/module/teams/new-cscallqueue #> -function New-CsOnlineApplicationInstanceAssociation { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateApplicationInstanceAssociationsResponse])] +function New-CsCallQueue { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallQueueResponse])] [CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${ChannelUserObjectId}, + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateApplicationInstanceAssociationsRequest] - # . + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallQueueRequest] + # CallQueue creation request DTO class. # To construct, see NOTES section for BODY properties and create a hash table. ${Body}, + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAgent[]] + # Gets or sets the Call Queue's agents list. + # To construct, see NOTES section for AGENT properties and create a hash table. + ${Agent}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the number of seconds that a call can remain unanswered. + ${AgentAlertTime}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to allow agent optout on CallQueue. + ${AllowOptOut}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets authorized user ids. + ${AuthorizedUsers}, + [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.Int32] # . - ${CallPriority}, + ${CallToAgentRatioThresholdBeforeOfferingCallback}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the callback email notification target. + ${CallbackEmailNotificationTarget}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${ConfigurationId}, + ${CallbackOfferAudioFilePromptResourceId}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${ConfigurationType}, + ${CallbackOfferTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CallbackRequestDtmf}, [Parameter(ParameterSetName='NewExpanded')] [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String[]] - # . - ${Identities}, + # Gets or Sets the Id for Compliance Recording template for Callqueue. + ${ComplianceRecordingForCallQueueTemplateId}, - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, + # Gets or sets a value indicating whether to allow Conference Mode on CallQueue. + ${ConferenceMode}, - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the custom audio file announcement for compliance recording. + ${CustomAudioFileAnnouncementForCr}, - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the custom audio file announcement for compliance recording if CR bot is unable to join the call. + ${CustomAudioFileAnnouncementForCrFailure}, - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets the Call Queue's Distribution Lists. + ${DistributionLists}, - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if system message should be suppressed or not. + ${EnableNoAgentSharedVoicemailSystemPromptSuppression}, - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) + # Gets or sets a value indicating if transcription should be turned on or not. + ${EnableNoAgentSharedVoicemailTranscription}, -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if system message should be suppressed or not. + ${EnableOverflowSharedVoicemailSystemPromptSuppression}, - $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineApplicationInstanceAssociation_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineApplicationInstanceAssociation_NewExpanded'; - } + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if transcription should be turned on or not. + ${EnableOverflowSharedVoicemailTranscription}, - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to allow CQ+Chanined RA's as permissioned RA's. + ${EnableResourceAccountsForObo}, - throw - } -} + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if system message should be suppressed or not. + ${EnableTimeoutSharedVoicemailSystemPromptSuppression}, -process { - try { - $steppablePipeline.Process($_) - } catch { + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if transcription should be turned on or not. + ${EnableTimeoutSharedVoicemailTranscription}, - throw - } + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets hidden authorized user ids. + ${HideAuthorizedUsers}, -} -end { - try { - $steppablePipeline.End() + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsCallbackEnabled}, - } catch { + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the language Id used for TTS. + ${LanguageId}, - throw - } -} -} + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets music on hold audio file id. + ${MusicOnHoldAudioFileId}, -# ---------------------------------------------------------------------------------- -# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# ---------------------------------------------------------------------------------- + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets The Call Queue's name. + ${Name}, -<# -.Synopsis -Create a date time range draft. -POST Teams.VoiceApps/schedules/date-time-ranges/draft. -.Description -Create a date time range draft. -POST Teams.VoiceApps/schedules/date-time-ranges/draft. -.Example -{{ Add code here }} -.Example -{{ Add code here }} + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the action to take if the NoAgent is LoggedIn/OptedIn. + ${NoAgentAction}, -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateDateTimeRangeRequest -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateDateTimeRangeResponse -.Notes -COMPLEX PARAMETER PROPERTIES + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of no agent. + ${NoAgentActionCallPriority}, -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the target of the NoAgent action. + ${NoAgentActionTarget}, -BODY : . - [End ]: - [Start ]: -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlinedatetimerange -#> -function New-CsOnlineDateTimeRange { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateDateTimeRangeResponse])] -[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateDateTimeRangeRequest] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, + [System.Int32] + # Determines whether NoAgentAction is to be applied to All Calls or New Calls only. + ${NoAgentApplyTo}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${End}, + # Gets or sets the audio file to be played when call is disconnected on NoAgent. + ${NoAgentDisconnectAudioFilePrompt}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${Start}, + # Gets or sets the TTS to be played when call is disconnected on NoAgent. + ${NoAgentDisconnectTextToSpeechPrompt}, - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to person on NoAgent. + ${NoAgentRedirectPersonAudioFilePrompt}, - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to person on NoAgent. + ${NoAgentRedirectPersonTextToSpeechPrompt}, - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to phone number on NoAgent. + ${NoAgentRedirectPhoneNumberAudioFilePrompt}, - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to phone number on NoAgent. + ${NoAgentRedirectPhoneNumberTextToSpeechPrompt}, - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voiceapp on NoAgent. + ${NoAgentRedirectVoiceAppAudioFilePrompt}, - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voiceapp on NoAgent. + ${NoAgentRedirectVoiceAppTextToSpeechPrompt}, -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voicemail on NoAgent. + ${NoAgentRedirectVoicemailAudioFilePrompt}, - $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineDateTimeRange_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineDateTimeRange_NewExpanded'; - } + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voicemail on NoAgent. + ${NoAgentRedirectVoicemailTextToSpeechPrompt}, - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when forwarding callers to shared voicemail. + ${NoAgentSharedVoicemailAudioFilePrompt}, - throw - } -} + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when forwarding callers to shared voicemail. + ${NoAgentSharedVoicemailTextToSpeechPrompt}, -process { - try { - $steppablePipeline.Process($_) - } catch { + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${NumberOfCallsInQueueBeforeOfferingCallback}, - throw - } + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets the Obo resource account ids. + ${OboResourceAccountIds}, -} -end { - try { - $steppablePipeline.End() + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the action to take when the overflow threshold is reached. + ${OverflowAction}, - } catch { + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of overflow. + ${OverflowActionCallPriority}, - throw - } -} -} + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the target of the overflow action. + ${OverflowActionTarget}, -# ---------------------------------------------------------------------------------- -# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# ---------------------------------------------------------------------------------- + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is disconnected on overflow. + ${OverflowDisconnectAudioFilePrompt}, -<# -.Synopsis + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is disconnected on overflow. + ${OverflowDisconnectTextToSpeechPrompt}, -.Description + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to person on overflow. + ${OverflowRedirectPersonAudioFilePrompt}, -.Example -{{ Add code here }} -.Example -{{ Add code here }} + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to person on overflow. + ${OverflowRedirectPersonTextToSpeechPrompt}, -.Outputs -System.String -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlinedirectroutingtelephonenumberuploadorder -#> -function New-CsOnlineDirectRoutingTelephoneNumberUploadOrder { -[OutputType([System.String])] -[CmdletBinding(DefaultParameterSetName='New', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${EndingNumber}, + # Gets or sets the audio file to be played when call is redirected to phone number on overflow. + ${OverflowRedirectPhoneNumberAudioFilePrompt}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${FileContent}, + # Gets or sets the TTS to be played when call is redirected to phone number on overflow. + ${OverflowRedirectPhoneNumberTextToSpeechPrompt}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${StartingNumber}, + # Gets or sets the audio file to be played when call is redirected to voiceapp on overflow. + ${OverflowRedirectVoiceAppAudioFilePrompt}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${TelephoneNumber}, + # Gets or sets the TTS to be played when call is redirected to voiceapp on overflow. + ${OverflowRedirectVoiceAppTextToSpeechPrompt}, - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voicemail on overflow. + ${OverflowRedirectVoicemailAudioFilePrompt}, - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voicemail on overflow. + ${OverflowRedirectVoicemailTextToSpeechPrompt}, - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when forwarding callers to shared voicemai. + ${OverflowSharedVoicemailAudioFilePrompt}, - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when forwarding callers to shared voicemail. + ${OverflowSharedVoicemailTextToSpeechPrompt}, - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the number of simultaneous calls that can be in the queue at any one time. + ${OverflowThreshold}, - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineDirectRoutingTelephoneNumberUploadOrder_New'; - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } + # Gets or sets a value indicating whether to enable presence aware routing. + ${PresenceAwareRouting}, -} -end { - try { - $steppablePipeline.End() + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the routing method for the Call Queue. + ${RoutingMethod}, - } catch { + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${ServiceLevelThresholdResponseTimeInSecond}, - throw - } -} -} + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the Shared Call Queue History template. + ${SharedCallQueueHistoryTemplateId}, -# ---------------------------------------------------------------------------------- -# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# ---------------------------------------------------------------------------------- + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the Shifts Scheduling Group to use as Call queues answer target. + ${ShiftsSchedulingGroupId}, -<# -.Synopsis -Create a schedule. -POST Teams.VoiceApps/schedules. -.Description -Create a schedule. -POST Teams.VoiceApps/schedules. -.Example -{{ Add code here }} -.Example -{{ Add code here }} + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the Shifts Team to use as Call queues answer target. + ${ShiftsTeamId}, -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateScheduleRequest -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateScheduleResponse -.Notes -COMPLEX PARAMETER PROPERTIES + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets ShouldOverwriteCallableChannelProperty flag that indicates user intention to whether overwirte the current callableChannel property value on chat service or not. + ${ShouldOverwriteCallableChannelProperty}, -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the text announcement for compliance recording. + ${TextAnnouncementForCr}, -BODY : . - [FixedScheduleDateTimeRange ]: - [End ]: - [Start ]: - [Name ]: - [RecurrenceRangeEnd ]: - [RecurrenceRangeNumberOfOccurrence ]: - [RecurrenceRangeStart ]: - [RecurrenceRangeType ]: - [WeeklyRecurrentScheduleFridayHour ]: - [End ]: - [Start ]: - [WeeklyRecurrentScheduleIsComplemented ]: - [WeeklyRecurrentScheduleMondayHour ]: - [WeeklyRecurrentScheduleSaturdayHour ]: - [WeeklyRecurrentScheduleSundayHour ]: - [WeeklyRecurrentScheduleThursdayHour ]: - [WeeklyRecurrentScheduleTuesdayHour ]: - [WeeklyRecurrentScheduleWednesdayHour ]: + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the text announcemet that is played if CR bot is unable to join the call. + ${TextAnnouncementForCrFailure}, -FIXEDSCHEDULEDATETIMERANGE : . - [End ]: - [Start ]: + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets teams channel thread id if user choose to sync CQ with a channel. + ${ThreadId}, -WEEKLYRECURRENTSCHEDULEFRIDAYHOUR : . - [End ]: - [Start ]: + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the action to take if the timeout threshold is reached. + ${TimeoutAction}, -WEEKLYRECURRENTSCHEDULEMONDAYHOUR : . - [End ]: - [Start ]: + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of timeout. + ${TimeoutActionCallPriority}, -WEEKLYRECURRENTSCHEDULESATURDAYHOUR : . - [End ]: - [Start ]: + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the target of the timeout action. + ${TimeoutActionTarget}, -WEEKLYRECURRENTSCHEDULESUNDAYHOUR : . - [End ]: - [Start ]: + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is disconnected on Timeout. + ${TimeoutDisconnectAudioFilePrompt}, -WEEKLYRECURRENTSCHEDULETHURSDAYHOUR : . - [End ]: - [Start ]: + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is disconnected on Timeout. + ${TimeoutDisconnectTextToSpeechPrompt}, -WEEKLYRECURRENTSCHEDULETUESDAYHOUR : . - [End ]: - [Start ]: + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to person on Timeout. + ${TimeoutRedirectPersonAudioFilePrompt}, -WEEKLYRECURRENTSCHEDULEWEDNESDAYHOUR : . - [End ]: - [Start ]: -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlineschedule -#> -function New-CsOnlineSchedule { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateScheduleResponse])] -[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateScheduleRequest] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, + [System.String] + # Gets or sets the TTS to be played when call is redirected to person on Timeout. + ${TimeoutRedirectPersonTextToSpeechPrompt}, [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDateTimeRange[]] - # . - # To construct, see NOTES section for FIXEDSCHEDULEDATETIMERANGE properties and create a hash table. - ${FixedScheduleDateTimeRange}, + [System.String] + # Gets or sets the audio file to be played when call is redirected to phone number on Timeout. + ${TimeoutRedirectPhoneNumberAudioFilePrompt}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${Name}, + # Gets or sets the TTS to be played when call is redirected to phone number on Timeout. + ${TimeoutRedirectPhoneNumberTextToSpeechPrompt}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.DateTime] - # . - ${RecurrenceRangeEnd}, + [System.String] + # Gets or sets the audio file to be played when call is redirected to voiceapp on Timeout. + ${TimeoutRedirectVoiceAppAudioFilePrompt}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # . - ${RecurrenceRangeNumberOfOccurrence}, + [System.String] + # Gets or sets the TTS to be played when call is redirected to voiceapp on Timeout. + ${TimeoutRedirectVoiceAppTextToSpeechPrompt}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.DateTime] - # . - ${RecurrenceRangeStart}, + [System.String] + # Gets or sets the audio file to be played when call is redirected to voicemail on Timeout. + ${TimeoutRedirectVoicemailAudioFilePrompt}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${RecurrenceRangeType}, + # Gets or sets the TTS to be played when call is redirected to voicemail on Timeout. + ${TimeoutRedirectVoicemailTextToSpeechPrompt}, [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] - # . - # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEFRIDAYHOUR properties and create a hash table. - ${WeeklyRecurrentScheduleFridayHour}, + [System.String] + # Gets or sets the audio file to be played when forwarding callers to shared voicemai. + ${TimeoutSharedVoicemailAudioFilePrompt}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${WeeklyRecurrentScheduleIsComplemented}, + [System.String] + # Gets or sets the TTS to be played when forwarding callers to shared voicemail. + ${TimeoutSharedVoicemailTextToSpeechPrompt}, [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] - # . - # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEMONDAYHOUR properties and create a hash table. - ${WeeklyRecurrentScheduleMondayHour}, + [System.Int32] + # Gets or sets the number of minutes that a call can be in the queue before it times out. + ${TimeoutThreshold}, [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] - # . - # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULESATURDAYHOUR properties and create a hash table. - ${WeeklyRecurrentScheduleSaturdayHour}, + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to use default music on hold audio file. + ${UseDefaultMusicOnHold}, [Parameter(ParameterSetName='NewExpanded')] [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] - # . - # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULESUNDAYHOUR properties and create a hash table. - ${WeeklyRecurrentScheduleSundayHour}, + [System.String[]] + # Gets or sets the Call Queue's Users. + ${Users}, [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + [System.Int32] # . - # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULETHURSDAYHOUR properties and create a hash table. - ${WeeklyRecurrentScheduleThursdayHour}, + ${WaitTimeBeforeOfferingCallbackInSecond}, [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] - # . - # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULETUESDAYHOUR properties and create a hash table. - ${WeeklyRecurrentScheduleTuesdayHour}, + [System.String] + # Gets or sets welcome music audio file id. + ${WelcomeMusicAudioFileId}, [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] - # . - # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEWEDNESDAYHOUR properties and create a hash table. - ${WeeklyRecurrentScheduleWednesdayHour}, + [System.String] + # Gets or sets welcome text to speech content. + ${WelcomeTextToSpeechPrompt}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -10536,8 +10939,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineSchedule_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineSchedule_NewExpanded'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsCallQueue_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsCallQueue_NewExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -10577,65 +10980,87 @@ end { <# .Synopsis - +Create compliance recording template POST /Teams.VoiceApps/compliance-recording. .Description - +Create compliance recording template POST /Teams.VoiceApps/compliance-recording. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseOrderRequest +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateComplianceRecordingForCallQueueRequest .Outputs -System.String +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateComplianceRecordingForCallQueueResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : CmdletReleaseOrderRequest - [EndingNumber ]: - [FileContent ]: - [StartingNumber ]: - [TelephoneNumber ]: +BODY : Request model for creating a compliance recording. + [BotId ]: Gets or sets the MRI of the first bot. + [ConcurrentInvitationCount ]: Gets or sets the number of concurrent invitations allowed. + [Description ]: Gets or sets the description of the compliance recording. + [Name ]: Gets or sets the name of the compliance recording. + [PairedApplication ]: Gets or sets the paired applications for the compliance recording bot. This is a resiliency feature that allows invitation of another bot. If either of BotMRI or the paired application is available, we will consider the call to be successful. + [RequiredBeforeCall ]: Gets or sets a value indicating whether the compliance recording is required before the call. + [RequiredDuringCall ]: Gets or sets a value indicating whether the compliance recording is required during the call. .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlinetelephonenumberreleaseorder +https://docs.microsoft.com/en-us/powershell/module/teams/new-cscompliancerecordingforcallqueuetemplate #> -function New-CsOnlineTelephoneNumberReleaseOrder { -[OutputType([System.String])] +function New-CsComplianceRecordingForCallQueueTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateComplianceRecordingForCallQueueResponse])] [CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseOrderRequest] - # CmdletReleaseOrderRequest + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateComplianceRecordingForCallQueueRequest] + # Request model for creating a compliance recording. # To construct, see NOTES section for BODY properties and create a hash table. ${Body}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${EndingNumber}, + # Gets or sets the MRI of the first bot. + ${BotApplicationInstanceObjectId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the number of concurrent invitations allowed. + ${ConcurrentInvitationCount}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${FileContent}, + # Gets or sets the description of the compliance recording. + ${Description}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${StartingNumber}, + # Gets or sets the name of the compliance recording. + ${Name}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${TelephoneNumber}, + # Gets or sets the paired applications for the compliance recording bot. + # This is a resiliency feature that allows invitation of another bot.If either of BotMRI or the paired application is available, we will consider the call to be successful. + ${PairedApplicationInstanceObjectId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether the compliance recording is required before the call. + ${RequiredBeforeCall}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether the compliance recording is required during the call. + ${RequiredDuringCall}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -10686,8 +11111,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineTelephoneNumberReleaseOrder_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineTelephoneNumberReleaseOrder_NewExpanded'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsComplianceRecordingForCallQueueTemplate_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsComplianceRecordingForCallQueueTemplate_NewExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -10727,53 +11152,124 @@ end { <# .Synopsis -Create a time range draft. -POST Teams.VoiceApps/schedules/time-ranges/draft. +Create new configuration .Description -Create a time range draft. -POST Teams.VoiceApps/schedules/time-ranges/draft. +Create new configuration .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTimeRangeRequest +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTimeRangeResponse +System.Boolean .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . - [End ]: - [Start ]: -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlinetimerange -#> -function New-CsOnlineTimeRange { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTimeRangeResponse])] -[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +BODY : . + [(Any) ]: This indicates any property can be added to this object. + Identity : + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csconfiguration +#> +function New-CsConfiguration { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='Create', Mandatory)] + [Parameter(ParameterSetName='CreateExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ConfigType}, + + [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Api Version + ${ApiVersion}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SchemaVersion}, + + [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTimeRangeRequest] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration] # . # To construct, see NOTES section for BODY properties and create a hash table. ${Body}, - [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='CreateExpanded', Mandatory)] + [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${End}, + ${Identity}, - [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='CreateExpanded')] + [Parameter(ParameterSetName='CreateViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Start}, + [System.Collections.Hashtable] + # Additional Parameters + ${AdditionalProperties}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -10795,6 +11291,12 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -10824,8 +11326,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineTimeRange_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineTimeRange_NewExpanded'; + Create = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsConfiguration_Create'; + CreateExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsConfiguration_CreateExpanded'; + CreateViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsConfiguration_CreateViaIdentity'; + CreateViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsConfiguration_CreateViaIdentityExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -10865,46 +11369,50 @@ end { <# .Synopsis -Create New Bulk Sign in Request +Create a policy package .Description -Create New Bulk Sign in Request +Create a policy package .Example {{ Add code here }} .Example {{ Add code here }} -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgBulkSignInRequestItem[] .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgBulkSignInResponse +System.String .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : Array of SDGBulkSignInRequestItem - [HardwareId ]: - [UserName ]: +POLICYLIST : . + PolicyName : + PolicyType : .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-cssdgbulksigninrequest +https://docs.microsoft.com/en-us/powershell/module/teams/new-cscustompolicypackage #> -function New-CsSdgBulkSignInRequest { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgBulkSignInResponse])] -[CmdletBinding(DefaultParameterSetName='New', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function New-CsCustomPolicyPackage { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Target Region where the device is located - ${TargetRegion}, + # . + ${Identity}, - [Parameter(Mandatory, ValueFromPipeline)] + [Parameter(Mandatory)] [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgBulkSignInRequestItem[]] - # Array of SDGBulkSignInRequestItem - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsRequestsPolicyTypeAndName[]] + # . + # To construct, see NOTES section for POLICYLIST properties and create a hash table. + ${PolicyList}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Description}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -10955,7 +11463,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsSdgBulkSignInRequest_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsCustomPolicyPackage_NewExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -10995,457 +11503,124 @@ end { <# .Synopsis - +Create apointment booking flow for mainline attendant POST api/v1.0/tenants/tenantId/mainline-attendant-flow/appointment-booking. .Description - +Create apointment booking flow for mainline attendant POST api/v1.0/tenants/tenantId/mainline-attendant-flow/appointment-booking. .Example -PS C:\> (Get-CsTeamTemplate -OdataId '/api/teamtemplates/v1.0/com.microsoft.teams.template.AdoptOffice365/Public/en-US') > input.json -# open json in your favorite editor, make changes - -PS C:\> New-CsTeamTemplate -Locale en-US -Body (Get-Content '.\input.json' | Out-String) - -{ - "id": "061fe692-7da7-4f65-a57b-0472cf0045af", - "name": "New Template", - "scope": "Tenant", - "shortDescription": "New Description", - "iconUri": "https://statics.teams.cdn.office.net/evergreen-assets/teamtemplates/icons/default_tenant.svg", - "channelCount": 2, - "appCount": 2, - "modifiedOn": "2020-12-10T18:46:52.7231705Z", - "modifiedBy": "6c4445f6-a23d-473c-951d-7474d289c6b3", - "locale": "en-US", - "@odata.id": "/api/teamtemplates/v1.0/061fe692-7da7-4f65-a57b-0472cf0045af/Tenant/en-US" -} +{{ Add code here }} .Example -PS C:\> New-CsTeamTemplate ` --Locale en-US ` --DisplayName 'New Template' ` --ShortDescription 'New Description' ` --App @{id='feda49f8-b9f2-4985-90f0-dd88a8f80ee1'}, @{id='1d71218a-92ad-4254-be15-c5ab7a3e4423'} ` --Channel @{ ` - displayName="General"; ` - id="General"; ` - isFavoriteByDefault=$true; ` -}, ` -@{ ` - displayName="test"; ` - id="b82b7d0a-6bc9-4fd8-bf09-d432e4ea0475"; ` - isFavoriteByDefault=$false; ` -} - - -{ - "id": "061fe692-7da7-4f65-a57b-0472cf0045af", - "name": "New Template", - "scope": "Tenant", - "shortDescription": "New Description", - "iconUri": "https://statics.teams.cdn.office.net/evergreen-assets/teamtemplates/icons/default_tenant.svg", - "channelCount": 2, - "appCount": 2, - "modifiedOn": "2020-12-10T18:46:52.7231705Z", - "modifiedBy": "6c4445f6-a23d-473c-951d-7474d289c6b3", - "locale": "en-US", - "@odata.id": "/api/teamtemplates/v1.0/061fe692-7da7-4f65-a57b-0472cf0045af/Tenant/en-US" -} +{{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTemplateResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAppointmentBookingFlowRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAppointmentBookingFlowResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -APP : Gets or sets the set of applications that should be installed in teams created based on the template.The app catalog is the main directory for information about each app; this set is intended only as a reference. - [Id ]: Gets or sets the app's ID in the global apps catalog. - -BODY : The client input for a request to create a template. Only admins from Config Api can perform this request. - DisplayName : Gets or sets the team's DisplayName. - ShortDescription : Gets or sets template short description. - [App ]: Gets or sets the set of applications that should be installed in teams created based on the template. The app catalog is the main directory for information about each app; this set is intended only as a reference. - [Id ]: Gets or sets the app's ID in the global apps catalog. - [Category ]: Gets or sets list of categories. - [Channel ]: Gets or sets the set of channel templates included in the team template. - [Description ]: Gets or sets channel description as displayed to users. - [DisplayName ]: Gets or sets channel name as displayed to users. - [Id ]: Gets or sets identifier for the channel template. - [IsFavoriteByDefault ]: Gets or sets a value indicating whether whether new members of the team should automatically favorite the channel, pinning it for visibility in the UI and using resources to make switching to the channel faster. - [Tab ]: Gets or sets collection of tabs that should be added to the channel. - [Configuration ]: Represents the configuration of a tab. - [ContentUrl ]: Gets or sets the Url used for rendering tab contents in Teams. - [EntityId ]: Gets or sets the identifier for the entity hosted by the tab provider. - [RemoveUrl ]: Gets or sets the Url that is invoked when the user tries to remove a tab from the FE client. - [WebsiteUrl ]: Gets or sets the Url for showing tab contents outside of Teams. - [Id ]: Gets or sets identifier for the channel tab template. - [Key ]: Gets a unique identifier. - [MessageId ]: Gets or sets id used to identify the chat message associated with the tab. - [Name ]: Gets or sets the tab name displayed to users. - [SortOrderIndex ]: Gets or sets index of the order used for sorting tabs. - [TeamsAppId ]: Gets or sets the app's id in the global apps catalog. - [WebUrl ]: Gets or sets the deep link url of the tab instance. - [Classification ]: Gets or sets the team's classification. Tenant admins configure AAD with the set of possible values. - [Description ]: Gets or sets the team's Description. - [DiscoverySetting ]: Governs discoverability of a team. - ShowInTeamsSearchAndSuggestion : Gets or sets value indicating if team is visible within search and suggestions in Teams clients. - [FunSetting ]: Governs use of fun media like giphy and stickers in the team. - AllowCustomMeme : Gets or sets a value indicating whether users are allowed to create and post custom meme images in team conversations. - AllowGiphy : Gets or sets a value indicating whether users can post giphy content in team conversations. - AllowStickersAndMeme : Gets or sets a value indicating whether users can post stickers and memes in team conversations. - GiphyContentRating : Gets or sets the rating filter on giphy content. - [GuestSetting ]: Guest role settings for the team. - AllowCreateUpdateChannel : Gets or sets a value indicating whether guests can create or edit channels in the team. - AllowDeleteChannel : Gets or sets a value indicating whether guests can delete team channels. - [Icon ]: Gets or sets template icon. - [IsMembershipLimitedToOwner ]: Gets or sets whether to limit the membership of the team to owners in the AAD group until an owner "activates" the team. - [MemberSetting ]: Member role settings for the team. - AllowAddRemoveApp : Gets or sets a value indicating whether members can add or remove apps in the team. - AllowCreatePrivateChannel : Gets or Sets a value indicating whether members can create Private channels. - AllowCreateUpdateChannel : Gets or sets a value indicating whether members can create or edit channels in the team. - AllowCreateUpdateRemoveConnector : Gets or sets a value indicating whether members can add, edit, or remove connectors in the team. - AllowCreateUpdateRemoveTab : Gets or sets a value indicating whether members can add, edit or remove pinned tabs in the team. - AllowDeleteChannel : Gets or sets a value indicating whether members can delete team channels. - UploadCustomApp : Gets or sets a value indicating is allowed to upload custom apps. - [MessagingSetting ]: Governs use of messaging features within the team These are settings the team owner should be able to modify from UI after team creation. - AllowChannelMention : Gets or sets a value indicating whether team members can at-mention entire channels in team conversations. - AllowOwnerDeleteMessage : Gets or sets a value indicating whether team owners can delete anyone's messages in team conversations. - AllowTeamMention : Gets or sets a value indicating whether team members can at-mention the entire team in team conversations. - AllowUserDeleteMessage : Gets or sets a value indicating whether team members can delete their own messages in team conversations. - AllowUserEditMessage : Gets or sets a value indicating whether team members can edit their own messages in team conversations. - [OwnerUserObjectId ]: Gets or sets the AAD user object id of the user who should be set as the owner of the new team. Only to be used when an application or administrative user is making the request on behalf of the specified user. - [PublishedBy ]: Gets or sets published name. - [Specialization ]: The specialization or use case describing the team. Used for telemetry/BI, part of the team context exposed to app developers, and for legacy implementations of differentiated features for education. - [TemplateId ]: Gets or sets the id of the base template for the team. Either a Microsoft base template or a custom template. - [Uri ]: Gets or sets uri to be used for GetTemplate api call. - [Visibility ]: Used to control the scope of users who can view a group/team and its members, and ability to join. - -CHANNEL : Gets or sets the set of channel templates included in the team template. - [Description ]: Gets or sets channel description as displayed to users. - [DisplayName ]: Gets or sets channel name as displayed to users. - [Id ]: Gets or sets identifier for the channel template. - [IsFavoriteByDefault ]: Gets or sets a value indicating whether whether new members of the team should automatically favorite the channel, pinning it for visibility in the UI and using resources to make switching to the channel faster. - [Tab ]: Gets or sets collection of tabs that should be added to the channel. - [Configuration ]: Represents the configuration of a tab. - [ContentUrl ]: Gets or sets the Url used for rendering tab contents in Teams. - [EntityId ]: Gets or sets the identifier for the entity hosted by the tab provider. - [RemoveUrl ]: Gets or sets the Url that is invoked when the user tries to remove a tab from the FE client. - [WebsiteUrl ]: Gets or sets the Url for showing tab contents outside of Teams. - [Id ]: Gets or sets identifier for the channel tab template. - [Key ]: Gets a unique identifier. - [MessageId ]: Gets or sets id used to identify the chat message associated with the tab. - [Name ]: Gets or sets the tab name displayed to users. - [SortOrderIndex ]: Gets or sets index of the order used for sorting tabs. - [TeamsAppId ]: Gets or sets the app's id in the global apps catalog. - [WebUrl ]: Gets or sets the deep link url of the tab instance. - -DISCOVERYSETTING : Governs discoverability of a team. - ShowInTeamsSearchAndSuggestion : Gets or sets value indicating if team is visible within search and suggestions in Teams clients. - -FUNSETTING : Governs use of fun media like giphy and stickers in the team. - AllowCustomMeme : Gets or sets a value indicating whether users are allowed to create and post custom meme images in team conversations. - AllowGiphy : Gets or sets a value indicating whether users can post giphy content in team conversations. - AllowStickersAndMeme : Gets or sets a value indicating whether users can post stickers and memes in team conversations. - GiphyContentRating : Gets or sets the rating filter on giphy content. - -GUESTSETTING : Guest role settings for the team. - AllowCreateUpdateChannel : Gets or sets a value indicating whether guests can create or edit channels in the team. - AllowDeleteChannel : Gets or sets a value indicating whether guests can delete team channels. - -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id - [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id - -MEMBERSETTING : Member role settings for the team. - AllowAddRemoveApp : Gets or sets a value indicating whether members can add or remove apps in the team. - AllowCreatePrivateChannel : Gets or Sets a value indicating whether members can create Private channels. - AllowCreateUpdateChannel : Gets or sets a value indicating whether members can create or edit channels in the team. - AllowCreateUpdateRemoveConnector : Gets or sets a value indicating whether members can add, edit, or remove connectors in the team. - AllowCreateUpdateRemoveTab : Gets or sets a value indicating whether members can add, edit or remove pinned tabs in the team. - AllowDeleteChannel : Gets or sets a value indicating whether members can delete team channels. - UploadCustomApp : Gets or sets a value indicating is allowed to upload custom apps. - -MESSAGINGSETTING : Governs use of messaging features within the teamThese are settings the team owner should be able to modify from UI after team creation. - AllowChannelMention : Gets or sets a value indicating whether team members can at-mention entire channels in team conversations. - AllowOwnerDeleteMessage : Gets or sets a value indicating whether team owners can delete anyone's messages in team conversations. - AllowTeamMention : Gets or sets a value indicating whether team members can at-mention the entire team in team conversations. - AllowUserDeleteMessage : Gets or sets a value indicating whether team members can delete their own messages in team conversations. - AllowUserEditMessage : Gets or sets a value indicating whether team members can edit their own messages in team conversations. +BODY : . + [ApiAuthenticationType ]: Gets or sets the api authentication type, allowed values: Basic, ApiKey, BearerTokenStatic, BearerTokenDynamic. + [ApiDefinition ]: Gets or sets the detailed definitions of the api. + [CallerAuthenticationMethod ]: Gets or sets the caller authentication method, allowed values: Sms, Email, VerificationLink, Voiceprint, UserDetails. + [Description ]: Gets or sets the description of the mainline attendant appointment booking flow. + [Name ]: Gets or sets the name of the mainline attendant appointment booking flow. .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csteamtemplate +https://docs.microsoft.com/en-us/powershell/module/teams/new-csmainlineattendantappointmentbookingflow #> -function New-CsTeamTemplate { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTemplateResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse])] +function New-CsMainlineAttendantAppointmentBookingFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAppointmentBookingFlowResponse])] [CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='New', Mandatory)] - [Parameter(ParameterSetName='NewExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${Locale}, - - [Parameter(ParameterSetName='NewViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='NewViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='NewViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate] - # The client input for a request to create a template. - # Only admins from Config Api can perform this request. + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAppointmentBookingFlowRequest] + # . # To construct, see NOTES section for BODY properties and create a hash table. ${Body}, - [Parameter(ParameterSetName='NewExpanded', Mandatory)] - [Parameter(ParameterSetName='NewViaIdentityExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the team's DisplayName. - ${DisplayName}, - - [Parameter(ParameterSetName='NewExpanded', Mandatory)] - [Parameter(ParameterSetName='NewViaIdentityExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets template short description. - ${ShortDescription}, - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamsAppTemplate[]] - # Gets or sets the set of applications that should be installed in teams created based on the template.The app catalog is the main directory for information about each app; this set is intended only as a reference. - # To construct, see NOTES section for APP properties and create a hash table. - ${App}, + [System.Int32] + # Gets or sets the api authentication type, allowed values: Basic, ApiKey, BearerTokenStatic, BearerTokenDynamic. + ${ApiAuthenticationType}, [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # Gets or sets list of categories. - ${Category}, + [System.String] + # Gets or sets the detailed definitions of the api. + ${ApiDefinitions}, [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IChannelTemplate[]] - # Gets or sets the set of channel templates included in the team template. - # To construct, see NOTES section for CHANNEL properties and create a hash table. - ${Channel}, + [System.Int32] + # Gets or sets the caller authentication method, allowed values: Sms, Email, VerificationLink, Voiceprint, UserDetails. + ${CallerAuthenticationMethod}, [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the team's classification.Tenant admins configure AAD with the set of possible values. - ${Classification}, + # Gets or sets the description of the mainline attendant appointment booking flow. + ${Description}, [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the team's Description. - ${Description}, + # Gets or sets the name of the mainline attendant appointment booking flow. + ${Name}, - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamDiscoverySettings] - # Governs discoverability of a team. - # To construct, see NOTES section for DISCOVERYSETTING properties and create a hash table. - ${DiscoverySetting}, + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamFunSettings] - # Governs use of fun media like giphy and stickers in the team. - # To construct, see NOTES section for FUNSETTING properties and create a hash table. - ${FunSetting}, + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamGuestSettings] - # Guest role settings for the team. - # To construct, see NOTES section for GUESTSETTING properties and create a hash table. - ${GuestSetting}, + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets template icon. - ${Icon}, + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] - # Gets or sets whether to limit the membership of the team to owners in the AAD group until an owner "activates" the team. - ${IsMembershipLimitedToOwner}, + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMemberSettings] - # Member role settings for the team. - # To construct, see NOTES section for MEMBERSETTING properties and create a hash table. - ${MemberSetting}, - - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMessagingSettings] - # Governs use of messaging features within the teamThese are settings the team owner should be able to modify from UI after team creation. - # To construct, see NOTES section for MESSAGINGSETTING properties and create a hash table. - ${MessagingSetting}, - - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the AAD user object id of the user who should be set as the owner of the new team.Only to be used when an application or administrative user is making the request on behalf of the specified user. - ${OwnerUserObjectId}, - - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets published name. - ${PublishedBy}, - - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The specialization or use case describing the team.Used for telemetry/BI, part of the team context exposed to app developers, and for legacy implementations of differentiated features for education. - ${Specialization}, - - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the id of the base template for the team.Either a Microsoft base template or a custom template. - ${TemplateId}, - - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets uri to be used for GetTemplate api call. - ${Uri}, - - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Used to control the scope of users who can view a group/team and its members, and ability to join. - ${Visibility}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamTemplate_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamTemplate_NewExpanded'; - NewViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamTemplate_NewViaIdentity'; - NewViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamTemplate_NewViaIdentityExpanded'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsMainlineAttendantAppointmentBookingFlow_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsMainlineAttendantAppointmentBookingFlow_NewExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -11485,51 +11660,65 @@ end { <# .Synopsis -Invokes tenant migration +Create question and answer flow for mainline attendant POST api/v1.0/tenants/tenantId/mainline-attendant-flow/question-answer. .Description -Invokes tenant migration +Create question and answer flow for mainline attendant POST api/v1.0/tenants/tenantId/mainline-attendant-flow/question-answer. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantMigration +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateQuestionAnswerFlowRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantMigrationResult +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateQuestionAnswerFlowResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : Payload for tenant migration - [MoveOption ]: MoveOption can take following values PrepForMove, StartDualSync, Finalize. - [TargetServiceInstance ]: Target service instance where tenant is to be migrated. +BODY : . + [ApiAuthenticationType ]: Gets or sets the api authentication type, allowed values: Basic, ApiKey, BearerTokenStatic, BearerTokenDynamic. + [Description ]: Gets or sets the description of the mainline attendant question and answer flow. + [KnowledgeBase ]: Gets or sets the detailed definitions of the knowledge base. + [Name ]: Gets or sets the name of the mainline attendant question and answer flow. .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-cstenantcrossmigration +https://docs.microsoft.com/en-us/powershell/module/teams/new-csmainlineattendantquestionanswerflow #> -function New-CsTenantCrossMigration { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantMigrationResult])] +function New-CsMainlineAttendantQuestionAnswerFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateQuestionAnswerFlowResponse])] [CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantMigration] - # Payload for tenant migration + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateQuestionAnswerFlowRequest] + # . # To construct, see NOTES section for BODY properties and create a hash table. ${Body}, + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the api authentication type, allowed values: Basic, ApiKey, BearerTokenStatic, BearerTokenDynamic. + ${ApiAuthenticationType}, + [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # MoveOption can take following values PrepForMove, StartDualSync, Finalize. - ${MoveOption}, + # Gets or sets the description of the mainline attendant question and answer flow. + ${Description}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Target service instance where tenant is to be migrated. - ${TargetServiceInstance}, + # Gets or sets the detailed definitions of the knowledge base. + ${KnowledgeBase}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the name of the mainline attendant question and answer flow. + ${Name}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -11580,8 +11769,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTenantCrossMigration_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTenantCrossMigration_NewExpanded'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsMainlineAttendantQuestionAnswerFlow_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsMainlineAttendantQuestionAnswerFlow_NewExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -11621,106 +11810,68 @@ end { <# .Synopsis -Adds delegate with validations in bvd +Create application instance associations. +POST Teams.VoiceApps/applicationinstanceassociations. .Description -Adds delegate with validations in bvd +Create application instance associations. +POST Teams.VoiceApps/applicationinstanceassociations. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateApplicationInstanceAssociationsRequest .Outputs -System.Boolean +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateApplicationInstanceAssociationsResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id - [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id +BODY : . + [CallPriority ]: + [ConfigurationId ]: + [ConfigurationType ]: + [EndpointsId ]: .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csusercallingdelegate +https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlineapplicationinstanceassociation #> -function New-CsUserCallingDelegate { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='New', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function New-CsOnlineApplicationInstanceAssociation { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateApplicationInstanceAssociationsResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='New', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateApplicationInstanceAssociationsRequest] # . - ${Delegate}, + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, - [Parameter(ParameterSetName='New', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] # . - ${Identity}, - - [Parameter(ParameterSetName='NewViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, + ${CallPriority}, - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] # . - ${MakeCalls}, + ${ConfigurationId}, - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] # . - ${ManageSettings}, + ${ConfigurationType}, - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] # . - ${ReceiveCalls}, + ${Identities}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -11742,12 +11893,6 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -11777,8 +11922,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsUserCallingDelegate_New'; - NewViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsUserCallingDelegate_NewViaIdentity'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineApplicationInstanceAssociation_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineApplicationInstanceAssociation_NewExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -11818,104 +11963,53 @@ end { <# .Synopsis - +Create a date time range draft. +POST Teams.VoiceApps/schedules/date-time-ranges/draft. .Description - +Create a date time range draft. +POST Teams.VoiceApps/schedules/date-time-ranges/draft. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtUpdateSearchOrderRequest +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateDateTimeRangeRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtErrorResponseDetails +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateDateTimeRangeResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : UpdateSearchOrderRequest - [Action ]: - -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id - [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id +BODY : . + [End ]: + [Start ]: .Link -https://docs.microsoft.com/en-us/powershell/module/teams/complete-csonlinetelephonenumberorder +https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlinedatetimerange #> -function Complete-CsOnlineTelephoneNumberOrder { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtErrorResponseDetails])] -[CmdletBinding(DefaultParameterSetName='CompleteExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function New-CsOnlineDateTimeRange { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateDateTimeRangeResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Complete', Mandatory)] - [Parameter(ParameterSetName='CompleteExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${OrderId}, - - [Parameter(ParameterSetName='CompleteViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CompleteViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Complete', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CompleteViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtUpdateSearchOrderRequest] - # UpdateSearchOrderRequest + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateDateTimeRangeRequest] + # . # To construct, see NOTES section for BODY properties and create a hash table. ${Body}, - [Parameter(ParameterSetName='CompleteExpanded')] - [Parameter(ParameterSetName='CompleteViaIdentityExpanded')] + [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${Action}, + ${End}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Start}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -11937,12 +12031,6 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -11972,10 +12060,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Complete = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Complete-CsOnlineTelephoneNumberOrder_Complete'; - CompleteExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Complete-CsOnlineTelephoneNumberOrder_CompleteExpanded'; - CompleteViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Complete-CsOnlineTelephoneNumberOrder_CompleteViaIdentity'; - CompleteViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Complete-CsOnlineTelephoneNumberOrder_CompleteViaIdentityExpanded'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineDateTimeRange_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineDateTimeRange_NewExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -12008,20 +12094,23 @@ end { } } +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + <# .Synopsis -Get Audio file content. -GET Teams.MediaStorage/audiofile/appId/audiofileId/content + .Description -Get Audio file content. -GET Teams.MediaStorage/audiofile/appId/audiofileId/content + .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletDirectRoutingNumberCreationRequest .Outputs System.String .Notes @@ -12029,71 +12118,55 @@ COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id - [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id +BODY : CmdletDirectRoutingNumberCreationRequest + [Description ]: + [EndingNumber ]: + [FileContent ]: + [StartingNumber ]: + [TelephoneNumber ]: .Link -https://docs.microsoft.com/en-us/powershell/module/teams/export-csonlineaudiofile +https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlinedirectroutingtelephonenumberuploadorder #> -function Export-CsOnlineAudioFile { +function New-CsOnlineDirectRoutingTelephoneNumberUploadOrder { [OutputType([System.String])] -[CmdletBinding(DefaultParameterSetName='Export', PositionalBinding=$false)] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Export', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletDirectRoutingNumberCreationRequest] + # CmdletDirectRoutingNumberCreationRequest + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${ApplicationId}, + ${Description}, - [Parameter(ParameterSetName='Export', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${Identity}, + ${EndingNumber}, - [Parameter(ParameterSetName='ExportViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${FileContent}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${StartingNumber}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${TelephoneNumber}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -12144,8 +12217,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Export = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Export-CsOnlineAudioFile_Export'; - ExportViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Export-CsOnlineAudioFile_ExportViaIdentity'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineDirectRoutingTelephoneNumberUploadOrder_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineDirectRoutingTelephoneNumberUploadOrder_NewExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -12178,50 +12251,196 @@ end { } } +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + <# .Synopsis -Find group. -GET /Teams.VoiceApps/groups?. +Create a schedule. +POST Teams.VoiceApps/schedules. .Description -Find group. -GET /Teams.VoiceApps/groups?. +Create a schedule. +POST Teams.VoiceApps/schedules. .Example {{ Add code here }} .Example {{ Add code here }} +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateScheduleRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetGroupsResponse -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/find-csgroup -#> -function Find-CsGroup { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetGroupsResponse])] -[CmdletBinding(DefaultParameterSetName='Find', PositionalBinding=$false)] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether to exact match on the search query or not. - ${ExactMatchOnly}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether to return only groups enabled for mail. - ${MailEnabledOnly}, +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateScheduleResponse +.Notes +COMPLEX PARAMETER PROPERTIES - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] - # Gets or sets max results to return. - ${MaxResults}, +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Gets or sets search query. - ${SearchQuery}, +BODY : . + [FixedScheduleDateTimeRange ]: + [End ]: + [Start ]: + [Name ]: + [RecurrenceRangeEnd ]: + [RecurrenceRangeNumberOfOccurrence ]: + [RecurrenceRangeStart ]: + [RecurrenceRangeType ]: + [WeeklyRecurrentScheduleFridayHour ]: + [End ]: + [Start ]: + [WeeklyRecurrentScheduleIsComplemented ]: + [WeeklyRecurrentScheduleMondayHour ]: + [WeeklyRecurrentScheduleSaturdayHour ]: + [WeeklyRecurrentScheduleSundayHour ]: + [WeeklyRecurrentScheduleThursdayHour ]: + [WeeklyRecurrentScheduleTuesdayHour ]: + [WeeklyRecurrentScheduleWednesdayHour ]: + +FIXEDSCHEDULEDATETIMERANGE : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULEFRIDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULEMONDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULESATURDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULESUNDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULETHURSDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULETUESDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULEWEDNESDAYHOUR : . + [End ]: + [Start ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlineschedule +#> +function New-CsOnlineSchedule { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateScheduleResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateScheduleRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDateTimeRange[]] + # . + # To construct, see NOTES section for FIXEDSCHEDULEDATETIMERANGE properties and create a hash table. + ${FixedScheduleDateTimeRange}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Name}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${RecurrenceRangeEnd}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${RecurrenceRangeNumberOfOccurrence}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${RecurrenceRangeStart}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${RecurrenceRangeType}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEFRIDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleFridayHour}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${WeeklyRecurrentScheduleIsComplemented}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEMONDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleMondayHour}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULESATURDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleSaturdayHour}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULESUNDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleSundayHour}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULETHURSDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleThursdayHour}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULETUESDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleTuesdayHour}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEWEDNESDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleWednesdayHour}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -12272,7 +12491,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Find = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Find-CsGroup_Find'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineSchedule_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineSchedule_NewExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -12305,60 +12525,72 @@ end { } } +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + <# .Synopsis -Search for application instances that match the search criteria. + .Description -Search for application instances that match the search criteria. + .Example {{ Add code here }} .Example {{ Add code here }} +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseOrderRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstancesResponse +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : CmdletReleaseOrderRequest + [EndingNumber ]: + [FileContent ]: + [StartingNumber ]: + [TelephoneNumber ]: .Link -https://docs.microsoft.com/en-us/powershell/module/teams/find-csonlineapplicationinstance +https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlinetelephonenumberreleaseorder #> -function Find-CsOnlineApplicationInstance { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstancesResponse])] -[CmdletBinding(DefaultParameterSetName='Find', PositionalBinding=$false)] +function New-CsOnlineTelephoneNumberReleaseOrder { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # . - ${AssociatedOnly}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # . - ${ExactMatchOnly}, + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseOrderRequest] + # CmdletReleaseOrderRequest + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] # . - ${IsAssociated}, + ${EndingNumber}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] # . - ${MaxResults}, + ${FileContent}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${SearchQuery}, + ${StartingNumber}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] # . - ${UnAssociatedOnly}, + ${TelephoneNumber}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -12409,7 +12641,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Find = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Find-CsOnlineApplicationInstance_Find'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineTelephoneNumberReleaseOrder_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineTelephoneNumberReleaseOrder_NewExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -12442,27 +12675,61 @@ end { } } +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + <# .Synopsis -Get Tenant from AAD. -Get-CsAadTenant +Create a time range draft. +POST Teams.VoiceApps/schedules/time-ranges/draft. .Description -Get Tenant from AAD. -Get-CsAadTenant +Create a time range draft. +POST Teams.VoiceApps/schedules/time-ranges/draft. .Example {{ Add code here }} .Example {{ Add code here }} +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTimeRangeRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAadTenant +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTimeRangeResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [End ]: + [Start ]: .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csaadtenant +https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlinetimerange #> -function Get-CsAadTenant { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAadTenant])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +function New-CsOnlineTimeRange { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTimeRangeResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTimeRangeRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${End}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Start}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] @@ -12512,7 +12779,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAadTenant_Get'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineTimeRange_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineTimeRange_NewExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -12545,87 +12813,53 @@ end { } } +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + <# .Synopsis -Get User. -Get-CsAadUser +Create New Bulk Sign in Request .Description -Get User. -Get-CsAadUser +Create New Bulk Sign in Request .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgBulkSignInRequestItem[] .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAadUser +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgBulkSignInResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id - [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id +BODY : Array of SDGBulkSignInRequestItem + [HardwareId ]: + [UserName ]: .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csaaduser +https://docs.microsoft.com/en-us/powershell/module/teams/new-cssdgbulksigninrequest #> -function Get-CsAadUser { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAadUser])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +function New-CsSdgBulkSignInRequest { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgBulkSignInResponse])] +[CmdletBinding(DefaultParameterSetName='New', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # identity. - # Supports UserId as Guid or UPN as String. - ${Identity}, + # Target Region where the device is located + ${TargetRegion}, - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, + [Parameter(Mandatory, ValueFromPipeline)] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgBulkSignInRequestItem[]] + # Array of SDGBulkSignInRequestItem + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -12676,8 +12910,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAadUser_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAadUser_GetViaIdentity'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsSdgBulkSignInRequest_New'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -12710,106 +12943,72 @@ end { } } +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + <# .Synopsis -Gets auto attendant holidays. -GET Teams.VoiceApps/auto-attendants/identity/holidays. +Create shared call queue history template POST /Teams.VoiceApps/shared-call-queue-history. .Description -Gets auto attendant holidays. -GET Teams.VoiceApps/auto-attendants/identity/holidays. +Create shared call queue history template POST /Teams.VoiceApps/shared-call-queue-history. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateSharedCallQueueHistoryRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAutoAttendantHolidaysResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateSharedCallQueueHistoryResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id - [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id +BODY : Request model for creating a shared call queue history. + [AnsweredAndOutboundCall ]: Gets or sets whether the shared call history for Answered and outbound calls is delivered to authorized users, authorized users and agents or none. + [Description ]: Gets or sets the description of the shared call queue history. + [IncomingMissedCall ]: Gets or sets whether the shared call history for Incoming missed calls is delivered to authorized users, authorized users and agents or none. + [Name ]: Gets or sets the name of the shared call queue history. .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csautoattendantholidays +https://docs.microsoft.com/en-us/powershell/module/teams/new-cssharedcallqueuehistorytemplate #> -function Get-CsAutoAttendantHolidays { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAutoAttendantHolidaysResponse])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +function New-CsSharedCallQueueHistoryTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateSharedCallQueueHistoryResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${Identity}, + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateSharedCallQueueHistoryRequest] + # Request model for creating a shared call queue history. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets whether the shared call history for Answered and outbound calls is delivered to authorized users, authorized users and agents or none. + ${AnsweredAndOutboundCalls}, - [Parameter()] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String[]] - # . - ${Name}, + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the description of the shared call queue history. + ${Description}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.Int32] - # . - ${ResponseType}, + # Gets or sets whether the shared call history for Incoming missed calls is delivered to authorized users, authorized users and agents or none. + ${IncomingMissedCalls}, - [Parameter()] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String[]] - # . - ${Year}, + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the name of the shared call queue history. + ${Name}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -12860,8 +13059,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantHolidays_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantHolidays_GetViaIdentity'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsSharedCallQueueHistoryTemplate_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsSharedCallQueueHistoryTemplate_NewExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -12894,93 +13093,87 @@ end { } } +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + <# .Synopsis -Get a specific auto attendant. -GET Teams.VoiceApps/auto-attendants/status/identity +Creates a draft of each Ivr Tag .Description -Get a specific auto attendant. -GET Teams.VoiceApps/auto-attendants/status/identity +Creates a draft of each Ivr Tag .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IStatusRecord3 +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id - [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id +BODY : . + [TagDetailCallPriority ]: + [TagDetailEnableSharedVoicemailSystemPromptSuppression ]: + [TagDetailEnableTranscription ]: + [TagDetailId ]: + [TagDetailType ]: + [TagName ]: Name of the IVR tag. This alue is used to identify which callable entity to transfer the call to. .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csautoattendantstatus +https://docs.microsoft.com/en-us/powershell/module/teams/new-cstag #> -function Get-CsAutoAttendantStatus { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IStatusRecord3])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +function New-CsTag { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Id for the auto attendant to retrieve. - ${Identity}, + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${TagDetailCallPriority}, - [Parameter()] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String[]] + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] # . - ${IncludeResources}, + ${TagDetailEnableSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${TagDetailEnableTranscription}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${TagDetailId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${TagDetailType}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Name of the IVR tag. + # This alue is used to identify which callable entity to transfer the call to. + ${TagName}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -13031,8 +13224,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantStatus_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantStatus_GetViaIdentity'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTag_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTag_NewExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -13065,86 +13258,83 @@ end { } } +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + <# .Synopsis -Get specific language information. -GET Teams.VoiceApps/supported-languages/identity. +Creates a new IVR tags template. +POST api/v1.0/tenants/tenantId/ivr-tags-template .Description -Get specific language information. -GET Teams.VoiceApps/supported-languages/identity. +Creates a new IVR tags template. +POST api/v1.0/tenants/tenantId/ivr-tags-template .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagsTemplateRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSupportedLanguageResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagsTemplateResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id - [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id +BODY : . + [Description ]: Description of the IVR tag template. + [Name ]: Gets or sets the name of the IVR tag template. + [Tag ]: List of tags associated with the IVR tag template. These contain the name and callbale entities to which the IVR can initiate a transfer to. + [TagDetailCallPriority ]: + [TagDetailEnableSharedVoicemailSystemPromptSuppression ]: + [TagDetailEnableTranscription ]: + [TagDetailId ]: + [TagDetailType ]: + [TagName ]: + +TAGS : List of tags associated with the IVR tag template.These contain the name and callbale entities to which the IVR can initiate a transfer to. + [TagDetailCallPriority ]: + [TagDetailEnableSharedVoicemailSystemPromptSuppression ]: + [TagDetailEnableTranscription ]: + [TagDetailId ]: + [TagDetailType ]: + [TagName ]: .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csautoattendantsupportedlanguage +https://docs.microsoft.com/en-us/powershell/module/teams/new-cstagstemplate #> -function Get-CsAutoAttendantSupportedLanguage { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSupportedLanguageResponse])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +function New-CsTagsTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagsTemplateResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagsTemplateRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Id for the supported language to retrieve the information for. - ${Identity}, + # Description of the IVR tag template. + ${Description}, - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the name of the IVR tag template. + ${Name}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IIvrTagDtoModel[]] + # List of tags associated with the IVR tag template.These contain the name and callbale entities to which the IVR can initiate a transfer to. + # To construct, see NOTES section for TAGS properties and create a hash table. + ${Tags}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -13195,8 +13385,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantSupportedLanguage_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantSupportedLanguage_GetViaIdentity'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTagsTemplate_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTagsTemplate_NewExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -13229,27 +13419,174 @@ end { } } +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + <# .Synopsis -Get supported timezone information. -GET Teams.VoiceApps/supported-timezones/identity. + .Description -Get supported timezone information. -GET Teams.VoiceApps/supported-timezones/identity. + .Example -{{ Add code here }} +PS C:\> (Get-CsTeamTemplate -OdataId '/api/teamtemplates/v1.0/com.microsoft.teams.template.AdoptOffice365/Public/en-US') > input.json +# open json in your favorite editor, make changes + +PS C:\> New-CsTeamTemplate -Locale en-US -Body (Get-Content '.\input.json' | Out-String) + +{ + "id": "061fe692-7da7-4f65-a57b-0472cf0045af", + "name": "New Template", + "scope": "Tenant", + "shortDescription": "New Description", + "iconUri": "https://statics.teams.cdn.office.net/evergreen-assets/teamtemplates/icons/default_tenant.svg", + "channelCount": 2, + "appCount": 2, + "modifiedOn": "2020-12-10T18:46:52.7231705Z", + "modifiedBy": "6c4445f6-a23d-473c-951d-7474d289c6b3", + "locale": "en-US", + "@odata.id": "/api/teamtemplates/v1.0/061fe692-7da7-4f65-a57b-0472cf0045af/Tenant/en-US" +} .Example -{{ Add code here }} +PS C:\> New-CsTeamTemplate ` +-Locale en-US ` +-DisplayName 'New Template' ` +-ShortDescription 'New Description' ` +-App @{id='feda49f8-b9f2-4985-90f0-dd88a8f80ee1'}, @{id='1d71218a-92ad-4254-be15-c5ab7a3e4423'} ` +-Channel @{ ` + displayName="General"; ` + id="General"; ` + isFavoriteByDefault=$true; ` +}, ` +@{ ` + displayName="test"; ` + id="b82b7d0a-6bc9-4fd8-bf09-d432e4ea0475"; ` + isFavoriteByDefault=$false; ` +} + + +{ + "id": "061fe692-7da7-4f65-a57b-0472cf0045af", + "name": "New Template", + "scope": "Tenant", + "shortDescription": "New Description", + "iconUri": "https://statics.teams.cdn.office.net/evergreen-assets/teamtemplates/icons/default_tenant.svg", + "channelCount": 2, + "appCount": 2, + "modifiedOn": "2020-12-10T18:46:52.7231705Z", + "modifiedBy": "6c4445f6-a23d-473c-951d-7474d289c6b3", + "locale": "en-US", + "@odata.id": "/api/teamtemplates/v1.0/061fe692-7da7-4f65-a57b-0472cf0045af/Tenant/en-US" +} .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSupportedTimeZoneResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTemplateResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. +APP : Gets or sets the set of applications that should be installed in teams created based on the template.The app catalog is the main directory for information about each app; this set is intended only as a reference. + [Id ]: Gets or sets the app's ID in the global apps catalog. + +BODY : The client input for a request to create a template. Only admins from Config Api can perform this request. + DisplayName : Gets or sets the team's DisplayName. + ShortDescription : Gets or sets template short description. + [App ]: Gets or sets the set of applications that should be installed in teams created based on the template. The app catalog is the main directory for information about each app; this set is intended only as a reference. + [Id ]: Gets or sets the app's ID in the global apps catalog. + [Category ]: Gets or sets list of categories. + [Channel ]: Gets or sets the set of channel templates included in the team template. + [Description ]: Gets or sets channel description as displayed to users. + [DisplayName ]: Gets or sets channel name as displayed to users. + [Id ]: Gets or sets identifier for the channel template. + [IsFavoriteByDefault ]: Gets or sets a value indicating whether whether new members of the team should automatically favorite the channel, pinning it for visibility in the UI and using resources to make switching to the channel faster. + [Tab ]: Gets or sets collection of tabs that should be added to the channel. + [Configuration ]: Represents the configuration of a tab. + [ContentUrl ]: Gets or sets the Url used for rendering tab contents in Teams. + [EntityId ]: Gets or sets the identifier for the entity hosted by the tab provider. + [RemoveUrl ]: Gets or sets the Url that is invoked when the user tries to remove a tab from the FE client. + [WebsiteUrl ]: Gets or sets the Url for showing tab contents outside of Teams. + [Id ]: Gets or sets identifier for the channel tab template. + [Key ]: Gets a unique identifier. + [MessageId ]: Gets or sets id used to identify the chat message associated with the tab. + [Name ]: Gets or sets the tab name displayed to users. + [SortOrderIndex ]: Gets or sets index of the order used for sorting tabs. + [TeamsAppId ]: Gets or sets the app's id in the global apps catalog. + [WebUrl ]: Gets or sets the deep link url of the tab instance. + [Classification ]: Gets or sets the team's classification. Tenant admins configure AAD with the set of possible values. + [Description ]: Gets or sets the team's Description. + [DiscoverySetting ]: Governs discoverability of a team. + ShowInTeamsSearchAndSuggestion : Gets or sets value indicating if team is visible within search and suggestions in Teams clients. + [FunSetting ]: Governs use of fun media like giphy and stickers in the team. + AllowCustomMeme : Gets or sets a value indicating whether users are allowed to create and post custom meme images in team conversations. + AllowGiphy : Gets or sets a value indicating whether users can post giphy content in team conversations. + AllowStickersAndMeme : Gets or sets a value indicating whether users can post stickers and memes in team conversations. + GiphyContentRating : Gets or sets the rating filter on giphy content. + [GuestSetting ]: Guest role settings for the team. + AllowCreateUpdateChannel : Gets or sets a value indicating whether guests can create or edit channels in the team. + AllowDeleteChannel : Gets or sets a value indicating whether guests can delete team channels. + [Icon ]: Gets or sets template icon. + [IsMembershipLimitedToOwner ]: Gets or sets whether to limit the membership of the team to owners in the AAD group until an owner "activates" the team. + [MemberSetting ]: Member role settings for the team. + AllowAddRemoveApp : Gets or sets a value indicating whether members can add or remove apps in the team. + AllowCreatePrivateChannel : Gets or Sets a value indicating whether members can create Private channels. + AllowCreateUpdateChannel : Gets or sets a value indicating whether members can create or edit channels in the team. + AllowCreateUpdateRemoveConnector : Gets or sets a value indicating whether members can add, edit, or remove connectors in the team. + AllowCreateUpdateRemoveTab : Gets or sets a value indicating whether members can add, edit or remove pinned tabs in the team. + AllowDeleteChannel : Gets or sets a value indicating whether members can delete team channels. + UploadCustomApp : Gets or sets a value indicating is allowed to upload custom apps. + [MessagingSetting ]: Governs use of messaging features within the team These are settings the team owner should be able to modify from UI after team creation. + AllowChannelMention : Gets or sets a value indicating whether team members can at-mention entire channels in team conversations. + AllowOwnerDeleteMessage : Gets or sets a value indicating whether team owners can delete anyone's messages in team conversations. + AllowTeamMention : Gets or sets a value indicating whether team members can at-mention the entire team in team conversations. + AllowUserDeleteMessage : Gets or sets a value indicating whether team members can delete their own messages in team conversations. + AllowUserEditMessage : Gets or sets a value indicating whether team members can edit their own messages in team conversations. + [OwnerUserObjectId ]: Gets or sets the AAD user object id of the user who should be set as the owner of the new team. Only to be used when an application or administrative user is making the request on behalf of the specified user. + [PublishedBy ]: Gets or sets published name. + [Specialization ]: The specialization or use case describing the team. Used for telemetry/BI, part of the team context exposed to app developers, and for legacy implementations of differentiated features for education. + [TemplateId ]: Gets or sets the id of the base template for the team. Either a Microsoft base template or a custom template. + [Uri ]: Gets or sets uri to be used for GetTemplate api call. + [Visibility ]: Used to control the scope of users who can view a group/team and its members, and ability to join. + +CHANNEL : Gets or sets the set of channel templates included in the team template. + [Description ]: Gets or sets channel description as displayed to users. + [DisplayName ]: Gets or sets channel name as displayed to users. + [Id ]: Gets or sets identifier for the channel template. + [IsFavoriteByDefault ]: Gets or sets a value indicating whether whether new members of the team should automatically favorite the channel, pinning it for visibility in the UI and using resources to make switching to the channel faster. + [Tab ]: Gets or sets collection of tabs that should be added to the channel. + [Configuration ]: Represents the configuration of a tab. + [ContentUrl ]: Gets or sets the Url used for rendering tab contents in Teams. + [EntityId ]: Gets or sets the identifier for the entity hosted by the tab provider. + [RemoveUrl ]: Gets or sets the Url that is invoked when the user tries to remove a tab from the FE client. + [WebsiteUrl ]: Gets or sets the Url for showing tab contents outside of Teams. + [Id ]: Gets or sets identifier for the channel tab template. + [Key ]: Gets a unique identifier. + [MessageId ]: Gets or sets id used to identify the chat message associated with the tab. + [Name ]: Gets or sets the tab name displayed to users. + [SortOrderIndex ]: Gets or sets index of the order used for sorting tabs. + [TeamsAppId ]: Gets or sets the app's id in the global apps catalog. + [WebUrl ]: Gets or sets the deep link url of the tab instance. + +DISCOVERYSETTING : Governs discoverability of a team. + ShowInTeamsSearchAndSuggestion : Gets or sets value indicating if team is visible within search and suggestions in Teams clients. + +FUNSETTING : Governs use of fun media like giphy and stickers in the team. + AllowCustomMeme : Gets or sets a value indicating whether users are allowed to create and post custom meme images in team conversations. + AllowGiphy : Gets or sets a value indicating whether users can post giphy content in team conversations. + AllowStickersAndMeme : Gets or sets a value indicating whether users can post stickers and memes in team conversations. + GiphyContentRating : Gets or sets the rating filter on giphy content. + +GUESTSETTING : Guest role settings for the team. + AllowCreateUpdateChannel : Gets or sets a value indicating whether guests can create or edit channels in the team. + AllowDeleteChannel : Gets or sets a value indicating whether guests can delete team channels. + INPUTOBJECT : Identity Parameter [AppId ]: [AudioFileId ]: @@ -13290,130 +13627,203 @@ INPUTOBJECT : Identity Parameter [UserId ]: UserId. [Version ]: [WfmTeamId ]: Team Id + +MEMBERSETTING : Member role settings for the team. + AllowAddRemoveApp : Gets or sets a value indicating whether members can add or remove apps in the team. + AllowCreatePrivateChannel : Gets or Sets a value indicating whether members can create Private channels. + AllowCreateUpdateChannel : Gets or sets a value indicating whether members can create or edit channels in the team. + AllowCreateUpdateRemoveConnector : Gets or sets a value indicating whether members can add, edit, or remove connectors in the team. + AllowCreateUpdateRemoveTab : Gets or sets a value indicating whether members can add, edit or remove pinned tabs in the team. + AllowDeleteChannel : Gets or sets a value indicating whether members can delete team channels. + UploadCustomApp : Gets or sets a value indicating is allowed to upload custom apps. + +MESSAGINGSETTING : Governs use of messaging features within the teamThese are settings the team owner should be able to modify from UI after team creation. + AllowChannelMention : Gets or sets a value indicating whether team members can at-mention entire channels in team conversations. + AllowOwnerDeleteMessage : Gets or sets a value indicating whether team owners can delete anyone's messages in team conversations. + AllowTeamMention : Gets or sets a value indicating whether team members can at-mention the entire team in team conversations. + AllowUserDeleteMessage : Gets or sets a value indicating whether team members can delete their own messages in team conversations. + AllowUserEditMessage : Gets or sets a value indicating whether team members can edit their own messages in team conversations. .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csautoattendantsupportedtimezone +https://docs.microsoft.com/en-us/powershell/module/teams/new-csteamtemplate #> -function Get-CsAutoAttendantSupportedTimeZone { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSupportedTimeZoneResponse])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +function New-CsTeamTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTemplateResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='New', Mandatory)] + [Parameter(ParameterSetName='NewExpanded', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # Id for the supported timezone to retrieve the information for. - ${Identity}, + # . + ${Locale}, - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='NewViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='NewViaIdentityExpanded', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='NewViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate] + # The client input for a request to create a template. + # Only admins from Config Api can perform this request. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, + [Parameter(ParameterSetName='NewExpanded', Mandatory)] + [Parameter(ParameterSetName='NewViaIdentityExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the team's DisplayName. + ${DisplayName}, - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, + [Parameter(ParameterSetName='NewExpanded', Mandatory)] + [Parameter(ParameterSetName='NewViaIdentityExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets template short description. + ${ShortDescription}, - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamsAppTemplate[]] + # Gets or sets the set of applications that should be installed in teams created based on the template.The app catalog is the main directory for information about each app; this set is intended only as a reference. + # To construct, see NOTES section for APP properties and create a hash table. + ${App}, - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets list of categories. + ${Category}, - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IChannelTemplate[]] + # Gets or sets the set of channel templates included in the team template. + # To construct, see NOTES section for CHANNEL properties and create a hash table. + ${Channel}, -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the team's classification.Tenant admins configure AAD with the set of possible values. + ${Classification}, - $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantSupportedTimeZone_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantSupportedTimeZone_GetViaIdentity'; - } + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the team's Description. + ${Description}, - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamDiscoverySettings] + # Governs discoverability of a team. + # To construct, see NOTES section for DISCOVERYSETTING properties and create a hash table. + ${DiscoverySetting}, - throw - } -} + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamFunSettings] + # Governs use of fun media like giphy and stickers in the team. + # To construct, see NOTES section for FUNSETTING properties and create a hash table. + ${FunSetting}, -process { - try { - $steppablePipeline.Process($_) - } catch { + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamGuestSettings] + # Guest role settings for the team. + # To construct, see NOTES section for GUESTSETTING properties and create a hash table. + ${GuestSetting}, - throw - } + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets template icon. + ${Icon}, -} -end { - try { - $steppablePipeline.End() + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets whether to limit the membership of the team to owners in the AAD group until an owner "activates" the team. + ${IsMembershipLimitedToOwner}, - } catch { + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMemberSettings] + # Member role settings for the team. + # To construct, see NOTES section for MEMBERSETTING properties and create a hash table. + ${MemberSetting}, - throw - } -} -} + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMessagingSettings] + # Governs use of messaging features within the teamThese are settings the team owner should be able to modify from UI after team creation. + # To construct, see NOTES section for MESSAGINGSETTING properties and create a hash table. + ${MessagingSetting}, -<# -.Synopsis -Get tenant information specific to Voice Apps by the tenant Id. -GET Teams.VoiceApps/information. -.Description -Get tenant information specific to Voice Apps by the tenant Id. -GET Teams.VoiceApps/information. -.Example -{{ Add code here }} -.Example -{{ Add code here }} + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the AAD user object id of the user who should be set as the owner of the new team.Only to be used when an application or administrative user is making the request on behalf of the specified user. + ${OwnerUserObjectId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets published name. + ${PublishedBy}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The specialization or use case describing the team.Used for telemetry/BI, part of the team context exposed to app developers, and for legacy implementations of differentiated features for education. + ${Specialization}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the id of the base template for the team.Either a Microsoft base template or a custom template. + ${TemplateId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets uri to be used for GetTemplate api call. + ${Uri}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Used to control the scope of users who can view a group/team and its members, and ability to join. + ${Visibility}, -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetTenantInformationResponse -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csautoattendanttenantinformation -#> -function Get-CsAutoAttendantTenantInformation { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetTenantInformationResponse])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] @@ -13463,7 +13873,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantTenantInformation_Get'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamTemplate_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamTemplate_NewExpanded'; + NewViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamTemplate_NewViaIdentity'; + NewViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamTemplate_NewViaIdentityExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -13496,136 +13909,58 @@ end { } } +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + <# .Synopsis -Get a specific auto attendant. -GET Teams.VoiceApps/auto-attendants/identity. +Invokes tenant migration .Description -Get a specific auto attendant. -GET Teams.VoiceApps/auto-attendants/identity. +Invokes tenant migration .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAutoAttendantResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantMigration .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAutoAttendantsResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantMigrationResult .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id - [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id +BODY : Payload for tenant migration + [MoveOption ]: MoveOption can take following values PrepForMove, StartDualSync, Finalize. + [TargetServiceInstance ]: Target service instance where tenant is to be migrated. .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csautoattendant +https://docs.microsoft.com/en-us/powershell/module/teams/new-cstenantcrossmigration #> -function Get-CsAutoAttendant { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAutoAttendantResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAutoAttendantsResponse])] -[CmdletBinding(DefaultParameterSetName='Get1', PositionalBinding=$false)] +function New-CsTenantCrossMigration { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantMigrationResult])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Id for the auto attendant to retrieve. - ${Identity}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Get1')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # . - ${Descending}, - - [Parameter(ParameterSetName='Get1')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # . - ${ExcludeContent}, - - [Parameter(ParameterSetName='Get1')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] - # . - ${First}, - - [Parameter(ParameterSetName='Get1')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # . - ${IncludeStatus}, - - [Parameter(ParameterSetName='Get1')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${NameFilter}, - - [Parameter(ParameterSetName='Get1')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] - # . - ${Skip}, + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantMigration] + # Payload for tenant migration + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, - [Parameter(ParameterSetName='Get1')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${SortBy}, + # MoveOption can take following values PrepForMove, StartDualSync, Finalize. + ${MoveOption}, - [Parameter(ParameterSetName='Get1')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${TypeFilter}, + # Target service instance where tenant is to be migrated. + ${TargetServiceInstance}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -13676,9 +14011,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendant_Get'; - Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendant_Get1'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendant_GetViaIdentity'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTenantCrossMigration_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTenantCrossMigration_NewExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -13711,11 +14045,16 @@ end { } } +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + <# .Synopsis -Gets raw data from bvd tables. +Adds delegate with validations in bvd .Description -Gets raw data from bvd tables. +Adds delegate with validations in bvd .Example {{ Add code here }} .Example @@ -13724,7 +14063,7 @@ Gets raw data from bvd tables. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IBvdTableEntity +System.Boolean .Notes COMPLEX PARAMETER PROPERTIES @@ -13771,48 +14110,48 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csbusinessvoicedirectorydiagnosticdata +https://docs.microsoft.com/en-us/powershell/module/teams/new-csusercallingdelegate #> -function Get-CsBusinessVoiceDirectoryDiagnosticData { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IBvdTableEntity])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +function New-CsUserCallingDelegate { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='New', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # PartitionKey of the table. - ${PartitionKey}, - - [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='New', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # Region to query Bvd table. - ${Region}, + # . + ${Delegate}, - [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='New', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # Bvd table name. - ${Table}, + # . + ${Identity}, - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='NewViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, - [Parameter()] + [Parameter(Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] - # Optional resultSize. - ${ResultSize}, + [System.Management.Automation.SwitchParameter] + # . + ${MakeCalls}, - [Parameter()] + [Parameter(Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Optional row key. - ${RowKey}, + [System.Management.Automation.SwitchParameter] + # . + ${ManageSettings}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ReceiveCalls}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -13834,6 +14173,12 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -13863,8 +14208,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsBusinessVoiceDirectoryDiagnosticData_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsBusinessVoiceDirectoryDiagnosticData_GetViaIdentity'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsUserCallingDelegate_New'; + NewViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsUserCallingDelegate_NewViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -13897,13 +14242,16 @@ end { } } +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + <# .Synopsis -Get call queues. -GET Teams.VoiceApps/callqueues?. + .Description -Get call queues. -GET Teams.VoiceApps/callqueues?. + .Example {{ Add code here }} .Example @@ -13911,15 +14259,18 @@ GET Teams.VoiceApps/callqueues?. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtUpdateSearchOrderRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCallQueueResponse -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCallQueuesResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtErrorResponseDetails .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. +BODY : UpdateSearchOrderRequest + [Action ]: + INPUTOBJECT : Identity Parameter [AppId ]: [AudioFileId ]: @@ -13961,74 +14312,41 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-cscallqueue +https://docs.microsoft.com/en-us/powershell/module/teams/complete-csonlinetelephonenumberorder #> -function Get-CsCallQueue { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCallQueuesResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCallQueueResponse])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +function Complete-CsOnlineTelephoneNumberOrder { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtErrorResponseDetails])] +[CmdletBinding(DefaultParameterSetName='CompleteExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Get1', Mandatory)] + [Parameter(ParameterSetName='Complete', Mandatory)] + [Parameter(ParameterSetName='CompleteExpanded', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] # . - ${Identity}, + ${OrderId}, - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CompleteViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CompleteViaIdentityExpanded', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # . - ${Descending}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # . - ${ExcludeContent}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether to filter invalid Obo from the response. - # If invalid Obos are not needed in the response set the flag to true, otherwise false. - # An obo is termed invalid when a previously associated Obo is deleted from AAD or phone number associated to the Obo is removed. - ${FilterInvalidObos}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] - # . - ${First}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${NameFilter}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] - # . - ${Skip}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${SortBy}, + [Parameter(ParameterSetName='Complete', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CompleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtUpdateSearchOrderRequest] + # UpdateSearchOrderRequest + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='CompleteExpanded')] + [Parameter(ParameterSetName='CompleteViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${TypeFilter}, + ${Action}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -14050,6 +14368,12 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -14079,9 +14403,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsCallQueue_Get'; - Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsCallQueue_Get1'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsCallQueue_GetViaIdentity'; + Complete = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Complete-CsOnlineTelephoneNumberOrder_Complete'; + CompleteExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Complete-CsOnlineTelephoneNumberOrder_CompleteExpanded'; + CompleteViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Complete-CsOnlineTelephoneNumberOrder_CompleteViaIdentity'; + CompleteViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Complete-CsOnlineTelephoneNumberOrder_CompleteViaIdentityExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -14116,9 +14441,11 @@ end { <# .Synopsis -Get all tenant available configurations +Get Audio file content. +GET Teams.MediaStorage/audiofile/appId/audiofileId/content .Description -Get all tenant available configurations +Get Audio file content. +GET Teams.MediaStorage/audiofile/appId/audiofileId/content .Example {{ Add code here }} .Example @@ -14127,8 +14454,6 @@ Get all tenant available configurations .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration -.Outputs System.String .Notes COMPLEX PARAMETER PROPERTIES @@ -14176,45 +14501,31 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csconfiguration +https://docs.microsoft.com/en-us/powershell/module/teams/export-csonlineaudiofile #> -function Get-CsConfiguration { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration], [System.String])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +function Export-CsOnlineAudioFile { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='Export', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='Get1', Mandatory)] + [Parameter(ParameterSetName='Export', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # string - ${ConfigType}, + # . + ${ApplicationId}, - [Parameter(ParameterSetName='Get1', Mandatory)] + [Parameter(ParameterSetName='Export', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] # . - ${ConfigName}, + ${Identity}, - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='GetViaIdentity1', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ExportViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Api Version - ${ApiVersion}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${SchemaVersion}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] @@ -14264,10 +14575,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsConfiguration_Get'; - Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsConfiguration_Get1'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsConfiguration_GetViaIdentity'; - GetViaIdentity1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsConfiguration_GetViaIdentity1'; + Export = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Export-CsOnlineAudioFile_Export'; + ExportViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Export-CsOnlineAudioFile_ExportViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -14302,40 +14611,48 @@ end { <# .Synopsis -Get requested Schema's data from MAS DB. +Find group. +GET /Teams.VoiceApps/groups?. .Description -Get requested Schema's data from MAS DB. +Find group. +GET /Teams.VoiceApps/groups?. .Example {{ Add code here }} .Example {{ Add code here }} .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMasSchemaItem +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetGroupsResponse .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csmasversionedschemadata +https://docs.microsoft.com/en-us/powershell/module/teams/find-csgroup #> -function Get-CsMasVersionedSchemaData { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMasSchemaItem])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +function Find-CsGroup { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetGroupsResponse])] +[CmdletBinding(DefaultParameterSetName='Find', PositionalBinding=$false)] param( - [Parameter(Mandatory)] + [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Schema to get from MAS DB - ${SchemaName}, + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to exact match on the search query or not. + ${ExactMatchOnly}, [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Identity. - ${Identity}, + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to return only groups enabled for mail. + ${MailEnabledOnly}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # Gets or sets max results to return. + ${MaxResults}, [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # Last X versions to fetch from MAS DB. - ${Version}, + # Gets or sets search query. + ${SearchQuery}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -14386,7 +14703,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMasVersionedSchemaData_Get'; + Find = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Find-CsGroup_Find'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -14421,53 +14738,58 @@ end { <# .Synopsis -Get meeting migration status for a user or tenant +Search for application instances that match the search criteria. .Description -Get meeting migration status for a user or tenant +Search for application instances that match the search criteria. .Example {{ Add code here }} .Example {{ Add code here }} .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstancesResponse .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csmeetingmigrationstatusmodern +https://docs.microsoft.com/en-us/powershell/module/teams/find-csonlineapplicationinstance #> -function Get-CsMeetingMigrationStatusModern { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusResponse])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +function Find-CsOnlineApplicationInstance { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstancesResponse])] +[CmdletBinding(DefaultParameterSetName='Find', PositionalBinding=$false)] param( [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # end time filter - to get meeting migration status before endtime - ${EndTime}, + [System.Management.Automation.SwitchParameter] + # . + ${AssociatedOnly}, [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Identity. - # Supports UPN and SIP, domainName LogonName - ${Identity}, + [System.Management.Automation.SwitchParameter] + # . + ${ExactMatchOnly}, [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Meeting migration type - SfbToSfb, SfbToTeams, TeamsToTeams, AllToTeams, ToSameType, Unknown - ${MigrationType}, + [System.Management.Automation.SwitchParameter] + # . + ${IsAssociated}, [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # start time filter - to get meeting migration status after starttime - ${StartTime}, + [System.Int32] + # . + ${MaxResults}, [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # state of meeting Migration status - Pending, InProgress, Failed, Succeeded - ${State}, + # . + ${SearchQuery}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${UnAssociatedOnly}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -14518,7 +14840,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMeetingMigrationStatusModern_Get'; + Find = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Find-CsOnlineApplicationInstance_Find'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -14553,54 +14875,25 @@ end { <# .Synopsis -Get meeting migration status summary for a user or tenant +Get Tenant from AAD. +Get-CsAadTenant .Description -Get meeting migration status summary for a user or tenant +Get Tenant from AAD. +Get-CsAadTenant .Example {{ Add code here }} .Example {{ Add code here }} .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusSummaryResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAadTenant .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csmeetingmigrationstatussummarymodern +https://docs.microsoft.com/en-us/powershell/module/teams/get-csaadtenant #> -function Get-CsMeetingMigrationStatusSummaryModern { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusSummaryResponse])] +function Get-CsAadTenant { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAadTenant])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # end time filter - to get meeting migration status before endtime - ${EndTime}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Identity. - # Supports UPN and SIP, domainName LogonName - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Meeting migration type - SfbToSfb, SfbToTeams, TeamsToTeams, AllToTeams, ToSameType, Unknown - ${MigrationType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # start time filter - to get meeting migration status after starttime - ${StartTime}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # state of meeting Migration status - Pending, InProgress, Failed, Succeeded - ${State}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] @@ -14650,7 +14943,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMeetingMigrationStatusSummaryModern_Get'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAadTenant_Get'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -14685,47 +14978,85 @@ end { <# .Synopsis -Get meeting migration transaction history for a user +Get User. +Get-CsAadUser .Description -Get meeting migration transaction history for a user +Get User. +Get-CsAadUser .Example {{ Add code here }} .Example {{ Add code here }} +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationTransactionHistoryResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAadUser +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csmeetingmigrationtransactionhistorymodern +https://docs.microsoft.com/en-us/powershell/module/teams/get-csaaduser #> -function Get-CsMeetingMigrationTransactionHistoryModern { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationTransactionHistoryResponse])] +function Get-CsAadUser { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAadUser])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Identity. - # Supports UPN and SIP, Aad user object Id - ${UserIdentity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # CorrelationId fetched when running start-csexmeetingmigration - ${CorrelationId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # end time filter - to get meeting migration status before endtime - ${EndTime}, + # identity. + # Supports UserId as Guid or UPN as String. + ${Identity}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # start time filter - to get meeting migration status after starttime - ${StartTime}, + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -14776,7 +15107,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMeetingMigrationTransactionHistoryModern_Get'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAadUser_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAadUser_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -14811,23 +15143,105 @@ end { <# .Synopsis -Get Tenant's Migrationdetails. +Gets auto attendant holidays. +GET Teams.VoiceApps/auto-attendants/identity/holidays. .Description -Get Tenant's Migrationdetails. +Gets auto attendant holidays. +GET Teams.VoiceApps/auto-attendants/identity/holidays. .Example {{ Add code here }} .Example {{ Add code here }} +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGmtSchemaItem +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAutoAttendantHolidaysResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csmovetenantserviceinstancetaskstatus +https://docs.microsoft.com/en-us/powershell/module/teams/get-csautoattendantholidays #> -function Get-CsMoveTenantServiceInstanceTaskStatus { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGmtSchemaItem])] +function Get-CsAutoAttendantHolidays { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAutoAttendantHolidaysResponse])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String[]] + # . + ${Name}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${ResponseType}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String[]] + # . + ${Year}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] @@ -14877,7 +15291,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMoveTenantServiceInstanceTaskStatus_Get'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantHolidays_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantHolidays_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -14912,9 +15327,11 @@ end { <# .Synopsis -This cmdlet is point get operation on users. +Get a specific auto attendant. +GET Teams.VoiceApps/auto-attendants/status/identity .Description -This cmdlet is point get operation on users. +Get a specific auto attendant. +GET Teams.VoiceApps/auto-attendants/status/identity .Example {{ Add code here }} .Example @@ -14923,7 +15340,7 @@ This cmdlet is point get operation on users. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IStatusRecord3 .Notes COMPLEX PARAMETER PROPERTIES @@ -14970,16 +15387,16 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csodcuser +https://docs.microsoft.com/en-us/powershell/module/teams/get-csautoattendantstatus #> -function Get-CsOdcUser { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser])] +function Get-CsAutoAttendantStatus { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IStatusRecord3])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( [Parameter(ParameterSetName='Get', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # UserId of user. + # Id for the auto attendant to retrieve. ${Identity}, [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] @@ -14989,6 +15406,13 @@ param( # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String[]] + # . + ${IncludeResources}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] @@ -15038,8 +15462,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOdcUser_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOdcUser_GetViaIdentity'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantStatus_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantStatus_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -15074,11 +15498,11 @@ end { <# .Synopsis -Get application instance association status. -GET Teams.VoiceApps/applicationinstanceassociations/identity/status. +Get specific language information. +GET Teams.VoiceApps/supported-languages/identity. .Description -Get application instance association status. -GET Teams.VoiceApps/applicationinstanceassociations/identity/status. +Get specific language information. +GET Teams.VoiceApps/supported-languages/identity. .Example {{ Add code here }} .Example @@ -15087,7 +15511,7 @@ GET Teams.VoiceApps/applicationinstanceassociations/identity/status. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationStatusResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSupportedLanguageResponse .Notes COMPLEX PARAMETER PROPERTIES @@ -15134,16 +15558,16 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineapplicationinstanceassociationstatus +https://docs.microsoft.com/en-us/powershell/module/teams/get-csautoattendantsupportedlanguage #> -function Get-CsOnlineApplicationInstanceAssociationStatus { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationStatusResponse])] +function Get-CsAutoAttendantSupportedLanguage { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSupportedLanguageResponse])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='Get')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # . + # Id for the supported language to retrieve the information for. ${Identity}, [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] @@ -15202,8 +15626,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociationStatus_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociationStatus_GetViaIdentity'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantSupportedLanguage_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantSupportedLanguage_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -15238,11 +15662,11 @@ end { <# .Synopsis -Get application instance association. -GET Teams.VoiceApps/applicationinstanceassociations/identity. +Get supported timezone information. +GET Teams.VoiceApps/supported-timezones/identity. .Description -Get application instance association. -GET Teams.VoiceApps/applicationinstanceassociations/identity. +Get supported timezone information. +GET Teams.VoiceApps/supported-timezones/identity. .Example {{ Add code here }} .Example @@ -15251,7 +15675,7 @@ GET Teams.VoiceApps/applicationinstanceassociations/identity. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSupportedTimeZoneResponse .Notes COMPLEX PARAMETER PROPERTIES @@ -15298,16 +15722,16 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineapplicationinstanceassociation +https://docs.microsoft.com/en-us/powershell/module/teams/get-csautoattendantsupportedtimezone #> -function Get-CsOnlineApplicationInstanceAssociation { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationResponse])] +function Get-CsAutoAttendantSupportedTimeZone { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSupportedTimeZoneResponse])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( [Parameter(ParameterSetName='Get', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # . + # Id for the supported timezone to retrieve the information for. ${Identity}, [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] @@ -15366,8 +15790,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociation_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociation_GetViaIdentity'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantSupportedTimeZone_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantSupportedTimeZone_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -15402,11 +15826,114 @@ end { <# .Synopsis -Get Audio file metedata with expiring download link. -GET api/v3/tenants/tenantId/audiofile/appId/audiofileId?durationInMins=int(default=60) +Get tenant information specific to Voice Apps by the tenant Id. +GET Teams.VoiceApps/information. .Description -Get Audio file metedata with expiring download link. -GET api/v3/tenants/tenantId/audiofile/appId/audiofileId?durationInMins=int(default=60) +Get tenant information specific to Voice Apps by the tenant Id. +GET Teams.VoiceApps/information. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetTenantInformationResponse +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csautoattendanttenantinformation +#> +function Get-CsAutoAttendantTenantInformation { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetTenantInformationResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantTenantInformation_Get'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Get a specific auto attendant. +GET Teams.VoiceApps/auto-attendants/identity. +.Description +Get a specific auto attendant. +GET Teams.VoiceApps/auto-attendants/identity. .Example {{ Add code here }} .Example @@ -15415,7 +15942,9 @@ GET api/v3/tenants/tenantId/audiofile/appId/audiofileId?durationInMins=int(defau .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAudioFileDto +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAutoAttendantResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAutoAttendantsResponse .Notes COMPLEX PARAMETER PROPERTIES @@ -15462,39 +15991,72 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineaudiofile +https://docs.microsoft.com/en-us/powershell/module/teams/get-csautoattendant #> -function Get-CsOnlineAudioFile { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAudioFileDto])] +function Get-CsAutoAttendant { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAutoAttendantResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAutoAttendantsResponse])] [CmdletBinding(DefaultParameterSetName='Get1', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='Get1', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${ApplicationId}, - [Parameter(ParameterSetName='Get', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # . + # Id for the auto attendant to retrieve. ${Identity}, [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='GetViaIdentity1', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, - [Parameter(ParameterSetName='Get')] - [Parameter(ParameterSetName='GetViaIdentity')] + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Descending}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExcludeContent}, + + [Parameter(ParameterSetName='Get1')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.Int32] # . - ${DurationInMin}, + ${First}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${IncludeStatus}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${NameFilter}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${Skip}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SortBy}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TypeFilter}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -15545,10 +16107,9 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_Get'; - Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_Get1'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_GetViaIdentity'; - GetViaIdentity1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_GetViaIdentity1'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendant_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendant_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendant_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -15583,9 +16144,9 @@ end { <# .Synopsis - +Gets raw data from bvd tables. .Description - +Gets raw data from bvd tables. .Example {{ Add code here }} .Example @@ -15594,9 +16155,7 @@ end { .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnostics -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IBvdTableEntity .Notes COMPLEX PARAMETER PROPERTIES @@ -15643,23 +16202,29 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineenhancedemergencyservicedisclaimer +https://docs.microsoft.com/en-us/powershell/module/teams/get-csbusinessvoicedirectorydiagnosticdata #> -function Get-CsOnlineEnhancedEmergencyServiceDisclaimer { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnostics])] +function Get-CsBusinessVoiceDirectoryDiagnosticData { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IBvdTableEntity])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( [Parameter(ParameterSetName='Get', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # . - ${CountryOrRegion}, + # PartitionKey of the table. + ${PartitionKey}, - [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='Get', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # . - ${Version}, + # Region to query Bvd table. + ${Region}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Bvd table name. + ${Table}, [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] @@ -15668,6 +16233,18 @@ param( # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # Optional resultSize. + ${ResultSize}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Optional row key. + ${RowKey}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] @@ -15717,109 +16294,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineEnhancedEmergencyServiceDisclaimer_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineEnhancedEmergencyServiceDisclaimer_GetViaIdentity'; - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis - -.Description - -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICivicAddress -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineliscivicaddress -#> -function Get-CsOnlineLisCivicAddress { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICivicAddress])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisCivicAddress_Get'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsBusinessVoiceDirectoryDiagnosticData_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsBusinessVoiceDirectoryDiagnosticData_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -15854,11 +16330,11 @@ end { <# .Synopsis -Get all schedules for a tenant. -GET Teams.VoiceApps/schedules?. +Get call queues. +GET Teams.VoiceApps/callqueues?. .Description -Get all schedules for a tenant. -GET Teams.VoiceApps/schedules?. +Get call queues. +GET Teams.VoiceApps/callqueues?. .Example {{ Add code here }} .Example @@ -15867,9 +16343,9 @@ GET Teams.VoiceApps/schedules?. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetScheduleResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCallQueueResponse .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSchedulesResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCallQueuesResponse .Notes COMPLEX PARAMETER PROPERTIES @@ -15916,16 +16392,16 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineschedule +https://docs.microsoft.com/en-us/powershell/module/teams/get-cscallqueue #> -function Get-CsOnlineSchedule { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSchedulesResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetScheduleResponse])] +function Get-CsCallQueue { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCallQueuesResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCallQueueResponse])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( [Parameter(ParameterSetName='Get1', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # Id for the schedule to retrieve. + # . ${Identity}, [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] @@ -15947,6 +16423,14 @@ param( # . ${ExcludeContent}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to filter invalid Obo from the response. + # If invalid Obos are not needed in the response set the flag to true, otherwise false. + # An obo is termed invalid when a previously associated Obo is deleted from AAD or phone number associated to the Obo is removed. + ${FilterInvalidObos}, + [Parameter(ParameterSetName='Get')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.Int32] @@ -16026,9 +16510,9 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineSchedule_Get'; - Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineSchedule_Get1'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineSchedule_GetViaIdentity'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsCallQueue_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsCallQueue_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsCallQueue_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -16063,34 +16547,134 @@ end { <# .Synopsis - +Get all Compliance Recording Configs. +GET /Teams.VoiceApps/compliance-recording?. .Description - +Get all Compliance Recording Configs. +GET /Teams.VoiceApps/compliance-recording?. .Example {{ Add code here }} .Example {{ Add code here }} +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtGetGenericOrderResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetComplianceRecordingForCallQueueResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetComplianceRecordingsForCallQueueResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlinetelephonenumberorder +https://docs.microsoft.com/en-us/powershell/module/teams/get-cscompliancerecordingforcallqueuetemplate #> -function Get-CsOnlineTelephoneNumberOrder { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtGetGenericOrderResponse])] +function Get-CsComplianceRecordingForCallQueueTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetComplianceRecordingsForCallQueueResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetComplianceRecordingForCallQueueResponse])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter()] + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Compliance Recording Id. + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Descending}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExcludeContent}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${First}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${IncludeStatus}, + + [Parameter(ParameterSetName='Get')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] # . - ${OrderId}, + ${NameFilter}, - [Parameter()] + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${Skip}, + + [Parameter(ParameterSetName='Get')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] # . - ${OrderType}, + ${SortBy}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TypeFilter}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -16141,7 +16725,9 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineTelephoneNumberOrder_Get'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsComplianceRecordingForCallQueueTemplate_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsComplianceRecordingForCallQueueTemplate_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsComplianceRecordingForCallQueueTemplate_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -16176,9 +16762,9 @@ end { <# .Synopsis -Get Cs-OnlineVoicemailUserSettings. +Get all tenant available configurations .Description -Get Cs-OnlineVoicemailUserSettings. +Get all tenant available configurations .Example {{ Add code here }} .Example @@ -16187,7 +16773,9 @@ Get Cs-OnlineVoicemailUserSettings. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration +.Outputs +System.String .Notes COMPLEX PARAMETER PROPERTIES @@ -16234,25 +16822,45 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlinevmusersetting +https://docs.microsoft.com/en-us/powershell/module/teams/get-csconfiguration #> -function Get-CsOnlineVMUserSetting { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings])] +function Get-CsConfiguration { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration], [System.String])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # string + ${ConfigType}, + + [Parameter(ParameterSetName='Get1', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] # . - ${Identity}, + ${ConfigName}, [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GetViaIdentity1', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Api Version + ${ApiVersion}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SchemaVersion}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] @@ -16273,12 +16881,6 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -16308,8 +16910,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineVMUserSetting_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineVMUserSetting_GetViaIdentity'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsConfiguration_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsConfiguration_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsConfiguration_GetViaIdentity'; + GetViaIdentity1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsConfiguration_GetViaIdentity1'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -16344,138 +16948,22 @@ end { <# .Synopsis -Get Org Settings - Get-CsTeamsSettingsCustomApp +Get all Appointment Booking flows for a tenant. +GET api/v1.0/tenants/tenantId/mainline-attendant-flow/appointment-booking?. .Description -Get Org Settings - Get-CsTeamsSettingsCustomApp +Get all Appointment Booking flows for a tenant. +GET api/v1.0/tenants/tenantId/mainline-attendant-flow/appointment-booking?. .Example {{ Add code here }} .Example {{ Add code here }} -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCustomAppSettingResponse -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csteamssettingscustomapp -#> -function Get-CsTeamsSettingsCustomApp { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCustomAppSettingResponse])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsSettingsCustomApp_Get'; - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Get a list of available team templates -.Description -Get a list of available team templates -.Example -PS C:\> Get-CsTeamTemplateList - -OdataId Name ShortDescription Chann AppCo - elCou unt - nt -------- ---- ---------------- ----- ----- -/api/teamtemplates/v1.0/healthcareWard/Public/en-US Collaborate on Patient Care Collaborate on patient care i... 6 1 -/api/teamtemplates/v1.0/healthcareHospital/Public/en-US Hospital Facilitate collaboration with... 6 1 -/api/teamtemplates/v1.0/retailStore/Public/en-US Organize a Store Collaborate with your retail ... 3 1 -/api/teamtemplates/v1.0/retailManagerCollaboration/Public/en-US Retail - Manager Collaboration Collaborate with managers acr... 3 1 - -.Example -PS C:\> (Get-CsTeamTemplateList -PublicTemplateLocale en-US) | where ChannelCount -GT 3 - -OdataId Name ShortDescription Chann AppCo - elCou unt - nt -------- ---- ---------------- ----- ----- -/api/teamtemplates/v1.0/healthcareWard/Public/en-US Collaborate on Patient Care Collaborate on patient care i... 6 1 -/api/teamtemplates/v1.0/healthcareHospital/Public/en-US Hospital Facilitate collaboration with... 6 1 - .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllMainlineAttendantFlowsResponse .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateSummary +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetMainlineAttendantFlowResponse .Notes COMPLEX PARAMETER PROPERTIES @@ -16522,17 +17010,17 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csteamtemplatelist +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmainlineattendantappointmentbookingflow #> -function Get-CsTeamTemplateList { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateSummary], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse])] +function Get-CsMainlineAttendantAppointmentBookingFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllMainlineAttendantFlowsResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetMainlineAttendantFlowResponse])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='Get1', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # Language and country code for localization of publicly available templates. - ${PublicTemplateLocale}, + # . + ${Identity}, [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] @@ -16541,119 +17029,47 @@ param( # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, + # . + ${Descending}, - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamTemplateList_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamTemplateList_GetViaIdentity'; - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() + # . + ${ExcludeContent}, - } catch { + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${First}, - throw - } -} -} + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${NameFilter}, -<# -.Synopsis -Get Tenant. -.Description -Get Tenant. -.Example -{{ Add code here }} -.Example -{{ Add code here }} + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${Skip}, -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenant -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-cstenantobou -#> -function Get-CsTenantObou { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenant])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter()] + [Parameter(ParameterSetName='Get')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # To set defaultpropertyset value - ${Defaultpropertyset}, + # . + ${SortBy}, - [Parameter()] + [Parameter(ParameterSetName='Get')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # Properties to select - ${Select}, + # . + ${TypeFilter}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -16704,7 +17120,9 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantObou_Get'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantAppointmentBookingFlow_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantAppointmentBookingFlow_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantAppointmentBookingFlow_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -16739,9 +17157,11 @@ end { <# .Synopsis -Get User. +Get a specific MainlineAttendantFlow Config for the given flow identity. +GET api/v1.0/tenants/tenantId/mainline-attendant-flow/identity. .Description -Get User. +Get a specific MainlineAttendantFlow Config for the given flow identity. +GET api/v1.0/tenants/tenantId/mainline-attendant-flow/identity. .Example {{ Add code here }} .Example @@ -16750,7 +17170,9 @@ Get User. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserMas +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllMainlineAttendantFlowsResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetMainlineAttendantFlowResponse .Notes COMPLEX PARAMETER PROPERTIES @@ -16797,19 +17219,16 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csuser +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmainlineattendantflow #> -function Get-CsUser { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserMas])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +function Get-CsMainlineAttendantFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetMainlineAttendantFlowResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllMainlineAttendantFlowsResponse])] +[CmdletBinding(DefaultParameterSetName='Get1', PositionalBinding=$false)] param( [Parameter(ParameterSetName='Get', Mandatory)] - [Alias('UserId')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # UserId. - # Supports Guid. - # Eventually UPN and SIP. + # . ${Identity}, [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] @@ -16819,41 +17238,59 @@ param( # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, - [Parameter()] + [Parameter(ParameterSetName='Get1')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # To set defaultpropertyset value - ${Defaultpropertyset}, + # . + ${ConfigurationId}, - [Parameter()] + [Parameter(ParameterSetName='Get1')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.Management.Automation.SwitchParameter] - # To fetch optional location field - ${Expandlocation}, + # . + ${Descending}, - [Parameter()] + [Parameter(ParameterSetName='Get1')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.Management.Automation.SwitchParameter] - # To set includedefaultproperties value - ${Includedefaultproperty}, + # . + ${ExcludeContent}, - [Parameter()] + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${First}, + + [Parameter(ParameterSetName='Get1')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # Properties to select - ${Select}, + # . + ${NameFilter}, - [Parameter()] + [Parameter(ParameterSetName='Get1')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # Skip user policies in user response object - ${Skipuserpolicy}, + [System.Int32] + # . + ${Skip}, - [Parameter()] + [Parameter(ParameterSetName='Get1')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # To set to true when called from Get-CsVoiceUser cmdlet - ${Voiceuserquery}, + [System.String] + # . + ${SortBy}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${Type}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TypeFilter}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -16904,8 +17341,9 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsUser_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsUser_GetViaIdentity'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantFlow_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantFlow_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantFlow_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -16940,9 +17378,11 @@ end { <# .Synopsis -Unified group grant. +Get all Question Answer flows for a tenant. +GET api/v1.0/tenants/tenantId/mainline-attendant-flow/question-answer?. .Description -Unified group grant. +Get all Question Answer flows for a tenant. +GET api/v1.0/tenants/tenantId/mainline-attendant-flow/question-answer?. .Example {{ Add code here }} .Example @@ -16950,19 +17390,15 @@ Unified group grant. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGroupGrantPayload .Outputs -System.String +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllMainlineAttendantFlowsResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetMainlineAttendantFlowResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . - [PolicyName ]: - [Priority ]: - INPUTOBJECT : Identity Parameter [AppId ]: [AudioFileId ]: @@ -17004,55 +17440,66 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/grant-csgrouppolicyassignment +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmainlineattendantquestionanswerflow #> -function Grant-CsGroupPolicyAssignment { -[OutputType([System.String])] -[CmdletBinding(DefaultParameterSetName='GrantExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Get-CsMainlineAttendantQuestionAnswerFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllMainlineAttendantFlowsResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetMainlineAttendantFlowResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Grant', Mandatory)] - [Parameter(ParameterSetName='GrantExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${GroupId}, - - [Parameter(ParameterSetName='Grant', Mandatory)] - [Parameter(ParameterSetName='GrantExpanded', Mandatory)] + [Parameter(ParameterSetName='Get1', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] # . - ${PolicyType}, + ${Identity}, - [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='GrantViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, - [Parameter(ParameterSetName='Grant', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGroupGrantPayload] + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, + ${Descending}, - [Parameter(ParameterSetName='GrantExpanded')] - [Parameter(ParameterSetName='GrantViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExcludeContent}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${First}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] # . - ${PolicyName}, + ${NameFilter}, - [Parameter(ParameterSetName='GrantExpanded')] - [Parameter(ParameterSetName='GrantViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.Int32] # . - ${Rank}, + ${Skip}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SortBy}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TypeFilter}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -17074,12 +17521,6 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -17109,10 +17550,9 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Grant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsGroupPolicyAssignment_Grant'; - GrantExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsGroupPolicyAssignment_GrantExpanded'; - GrantViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsGroupPolicyAssignment_GrantViaIdentity'; - GrantViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsGroupPolicyAssignment_GrantViaIdentityExpanded'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantQuestionAnswerFlow_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantQuestionAnswerFlow_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantQuestionAnswerFlow_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -17147,50 +17587,40 @@ end { <# .Synopsis -Assign a policy package to a group in a tenant +Get requested Schema's data from MAS DB. .Description -Assign a policy package to a group in a tenant +Get requested Schema's data from MAS DB. .Example {{ Add code here }} .Example {{ Add code here }} .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsApplyPackageGroupResponse -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -POLICYRANKINGS : . - PolicyType : - Rank : +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMasSchemaItem .Link -https://docs.microsoft.com/en-us/powershell/module/teams/grant-csgrouppolicypackageassignment +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmasversionedschemadata #> -function Grant-CsGroupPolicyPackageAssignment { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsApplyPackageGroupResponse])] -[CmdletBinding(DefaultParameterSetName='GrantExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Get-CsMasVersionedSchemaData { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMasSchemaItem])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # . - ${GroupId}, + # Schema to get from MAS DB + ${SchemaName}, [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # . - ${PackageName}, + # Identity. + ${Identity}, [Parameter()] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsRequestsPolicyRanking[]] - # . - # To construct, see NOTES section for POLICYRANKINGS properties and create a hash table. - ${PolicyRankings}, + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Last X versions to fetch from MAS DB. + ${Version}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -17241,7 +17671,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - GrantExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsGroupPolicyPackageAssignment_GrantExpanded'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMasVersionedSchemaData_Get'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -17276,122 +17706,53 @@ end { <# .Synopsis -Update single policy of a Tenant +Get meeting migration status for a user or tenant .Description -Update single policy of a Tenant +Get meeting migration status for a user or tenant .Example {{ Add code here }} .Example {{ Add code here }} -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantTenantRequest .Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusResponse +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmeetingmigrationstatusmodern +#> +function Get-CsMeetingMigrationStatusModern { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # end time filter - to get meeting migration status before endtime + ${EndTime}, -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Identity. + # Supports UPN and SIP, domainName LogonName + ${Identity}, -BODY : . - [AdditionalParameter ]: Dictionary of - [(Any) ]: This indicates any property can be added to this object. - [ForceSwitchPresent ]: - [PolicyName ]: - -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id - [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/grant-cstenantpolicy -#> -function Grant-CsTenantPolicy { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='GrantExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Grant', Mandatory)] - [Parameter(ParameterSetName='GrantExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # Policy Type - ${PolicyType}, - - [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='GrantViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Grant', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantTenantRequest] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='GrantExpanded')] - [Parameter(ParameterSetName='GrantViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.Info(PossibleTypes=([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantTenantRequestAdditionalParameters]))] - [System.Collections.Hashtable] - # Dictionary of - ${AdditionalParameters}, + # Meeting migration type - SfbToSfb, SfbToTeams, TeamsToTeams, AllToTeams, ToSameType, Unknown + ${MigrationType}, - [Parameter(ParameterSetName='GrantExpanded')] - [Parameter(ParameterSetName='GrantViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${ForceSwitchPresent}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # start time filter - to get meeting migration status after starttime + ${StartTime}, - [Parameter(ParameterSetName='GrantExpanded')] - [Parameter(ParameterSetName='GrantViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # . - ${PolicyName}, + # state of meeting Migration status - Pending, InProgress, Failed, Succeeded + ${State}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -17413,12 +17774,6 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -17448,10 +17803,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Grant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTenantPolicy_Grant'; - GrantExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTenantPolicy_GrantExpanded'; - GrantViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTenantPolicy_GrantViaIdentity'; - GrantViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTenantPolicy_GrantViaIdentityExpanded'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMeetingMigrationStatusModern_Get'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -17486,121 +17838,53 @@ end { <# .Synopsis -Update single policy of a user +Get meeting migration status summary for a user or tenant .Description -Update single policy of a user +Get meeting migration status summary for a user or tenant .Example {{ Add code here }} .Example {{ Add code here }} -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantUserRequest .Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -BODY : . - [AdditionalParameter ]: Dictionary of - [(Any) ]: This indicates any property can be added to this object. - [PolicyName ]: - -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id - [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusSummaryResponse .Link -https://docs.microsoft.com/en-us/powershell/module/teams/grant-csuserpolicy +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmeetingmigrationstatussummarymodern #> -function Grant-CsUserPolicy { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='GrantExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Get-CsMeetingMigrationStatusSummaryModern { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusSummaryResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Grant', Mandatory)] - [Parameter(ParameterSetName='GrantExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # User Id - ${Identity}, + # end time filter - to get meeting migration status before endtime + ${EndTime}, - [Parameter(ParameterSetName='Grant', Mandatory)] - [Parameter(ParameterSetName='GrantExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # Policy Type - ${PolicyType}, - - [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='GrantViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, + # Identity. + # Supports UPN and SIP, domainName LogonName + ${Identity}, - [Parameter(ParameterSetName='Grant', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantUserRequest] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Meeting migration type - SfbToSfb, SfbToTeams, TeamsToTeams, AllToTeams, ToSameType, Unknown + ${MigrationType}, - [Parameter(ParameterSetName='GrantExpanded')] - [Parameter(ParameterSetName='GrantViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.Info(PossibleTypes=([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantUserRequestAdditionalParameters]))] - [System.Collections.Hashtable] - # Dictionary of - ${AdditionalParameters}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # start time filter - to get meeting migration status after starttime + ${StartTime}, - [Parameter(ParameterSetName='GrantExpanded')] - [Parameter(ParameterSetName='GrantViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # . - ${PolicyName}, + # state of meeting Migration status - Pending, InProgress, Failed, Succeeded + ${State}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -17622,12 +17906,6 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -17657,10 +17935,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Grant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsUserPolicy_Grant'; - GrantExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsUserPolicy_GrantExpanded'; - GrantViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsUserPolicy_GrantViaIdentity'; - GrantViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsUserPolicy_GrantViaIdentityExpanded'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMeetingMigrationStatusSummaryModern_Get'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -17695,122 +17970,47 @@ end { <# .Synopsis -Import holidays for auto attendant. -PUT Teams.VoiceApps/auto-attendants/identity/holidays. +Get meeting migration transaction history for a user .Description -Import holidays for auto attendant. -PUT Teams.VoiceApps/auto-attendants/identity/holidays. +Get meeting migration transaction history for a user .Example {{ Add code here }} .Example {{ Add code here }} -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IImportAutoAttendantHolidaysRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IImportAutoAttendantHolidaysResponse -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -BODY : . - [Id ]: - [SerializedHolidayRecord ]: - [TenantId ]: - -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id - [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationTransactionHistoryResponse .Link -https://docs.microsoft.com/en-us/powershell/module/teams/import-csautoattendantholidays +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmeetingmigrationtransactionhistorymodern #> -function Import-CsAutoAttendantHolidays { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IImportAutoAttendantHolidaysResponse])] -[CmdletBinding(DefaultParameterSetName='ImportExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Get-CsMeetingMigrationTransactionHistoryModern { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationTransactionHistoryResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Import', Mandatory)] - [Parameter(ParameterSetName='ImportExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # . - ${Identity}, - - [Parameter(ParameterSetName='ImportViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='ImportViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Import', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='ImportViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IImportAutoAttendantHolidaysRequest] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, + # Identity. + # Supports UPN and SIP, Aad user object Id + ${UserIdentity}, - [Parameter(ParameterSetName='ImportExpanded')] - [Parameter(ParameterSetName='ImportViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # . - ${Id}, + # CorrelationId fetched when running start-csexmeetingmigration + ${CorrelationId}, - [Parameter(ParameterSetName='ImportExpanded')] - [Parameter(ParameterSetName='ImportViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # . - ${SerializedHolidayRecord}, + # end time filter - to get meeting migration status before endtime + ${EndTime}, - [Parameter(ParameterSetName='ImportExpanded')] - [Parameter(ParameterSetName='ImportViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # . - ${TenantId}, + # start time filter - to get meeting migration status after starttime + ${StartTime}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -17861,10 +18061,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Import = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsAutoAttendantHolidays_Import'; - ImportExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsAutoAttendantHolidays_ImportExpanded'; - ImportViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsAutoAttendantHolidays_ImportViaIdentity'; - ImportViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsAutoAttendantHolidays_ImportViaIdentityExpanded'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMeetingMigrationTransactionHistoryModern_Get'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -17899,124 +18096,23 @@ end { <# .Synopsis -Store a new Audio file in MSS. -POST api/v3/tenants/tenantId/audiofile. +Get Tenant's Migrationdetails. .Description -Store a new Audio file in MSS. -POST api/v3/tenants/tenantId/audiofile. +Get Tenant's Migrationdetails. .Example {{ Add code here }} .Example {{ Add code here }} -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantAudioFileDto .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAudioFileDto -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -BODY : . - ApplicationId : - Content : - OriginalFilename : - [Id ]: - [ContextId ]: - [ConvertedFilename ]: - [DeletionTimestampOffset ]: - [DownloadUri ]: - [DownloadUriExpiryTimestampOffset ]: - [Duration ]: - [LastAccessedTimestampOffset ]: - [UploadedTimestampOffset ]: +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGmtSchemaItem .Link -https://docs.microsoft.com/en-us/powershell/module/teams/import-csonlineaudiofile +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmovetenantserviceinstancetaskstatus #> -function Import-CsOnlineAudioFile { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAudioFileDto])] -[CmdletBinding(DefaultParameterSetName='ImportExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Get-CsMoveTenantServiceInstanceTaskStatus { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGmtSchemaItem])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Import', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantAudioFileDto] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='ImportExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${ApplicationId}, - - [Parameter(ParameterSetName='ImportExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Content}, - - [Parameter(ParameterSetName='ImportExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${FileName}, - - [Parameter(ParameterSetName='ImportExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${ContextId}, - - [Parameter(ParameterSetName='ImportExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${ConvertedFilename}, - - [Parameter(ParameterSetName='ImportExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.DateTime] - # . - ${DeletionTimestampOffset}, - - [Parameter(ParameterSetName='ImportExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${DownloadUri}, - - [Parameter(ParameterSetName='ImportExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.DateTime] - # . - ${DownloadUriExpiryTimestampOffset}, - - [Parameter(ParameterSetName='ImportExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Duration}, - - [Parameter(ParameterSetName='ImportExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Id}, - - [Parameter(ParameterSetName='ImportExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.DateTime] - # . - ${LastAccessedTimestampOffset}, - - [Parameter(ParameterSetName='ImportExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.DateTime] - # . - ${UploadedTimestampOffset}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] @@ -18066,8 +18162,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Import = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsOnlineAudioFile_Import'; - ImportExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsOnlineAudioFile_ImportExpanded'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMoveTenantServiceInstanceTaskStatus_Get'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -18102,40 +18197,82 @@ end { <# .Synopsis -Invokes Custom Handler +This cmdlet is point get operation on users. .Description -Invokes Custom Handler +This cmdlet is point get operation on users. .Example {{ Add code here }} .Example {{ Add code here }} +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICustomHandlerCallBackOutput -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/invoke-cscustomhandlercallbackngtprov -#> -function Invoke-CsCustomHandlerCallBackNgtprov { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICustomHandlerCallBackOutput])] -[CmdletBinding(DefaultParameterSetName='Post', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Unique Id of the Handler. - ${Id}, +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser +.Notes +COMPLEX PARAMETER PROPERTIES - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Callback Operation. - ${Operation}, +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csodcuser +#> +function Get-CsOdcUser { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # EventName for the SendEventPostURI. - ${Eventname}, + # UserId of user. + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -18186,7 +18323,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Post = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsCustomHandlerCallBackNgtprov_Post'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOdcUser_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOdcUser_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -18221,101 +18359,84 @@ end { <# .Synopsis -Post DsSync resync cmdlet +Get application instance association status. +GET Teams.VoiceApps/applicationinstanceassociations/identity/status. .Description -Post DsSync resync cmdlet +Get application instance association status. +GET Teams.VoiceApps/applicationinstanceassociations/identity/status. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDsRequestBody +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -System.Boolean +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationStatusResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : Request body for DsSync cmdlet - [DeploymentName ]: Deployment Name - [IsValidationRequest ]: - [ObjectClass ]: Object Class enum - [ObjectId ]: GUID of the user - [ObjectIds ]: - [ReSyncOption ]: ReSync for the given entity - [ScenariosToSuppress ]: Scenarios to Suppress - [ServiceInstance ]: Service Instance of the tenant - [SynchronizeTenantWithAllObject ]: Sync all the users of the tenant +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/invoke-csdirectobjectsync +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineapplicationinstanceassociationstatus #> -function Invoke-CsDirectObjectSync { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='PostExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Get-CsOnlineApplicationInstanceAssociationStatus { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationStatusResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Post', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDsRequestBody] - # Request body for DsSync cmdlet - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Deployment Name - ${DeploymentName}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${IsValidationRequest}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Object Class enum - ${ObjectClass}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # GUID of the user - ${ObjectId}, - - [Parameter(ParameterSetName='PostExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] # . - ${ObjectIds}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int64] - # ReSync for the given entity - ${ReSyncOption}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Scenarios to Suppress - ${ScenariosToSuppress}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Service Instance of the tenant - ${ServiceInstance}, + ${Identity}, - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Sync all the users of the tenant - ${SynchronizeTenantWithAllObject}, + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -18337,12 +18458,6 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -18372,8 +18487,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Post = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsDirectObjectSync_Post'; - PostExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsDirectObjectSync_PostExpanded'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociationStatus_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociationStatus_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -18408,94 +18523,84 @@ end { <# .Synopsis -Post resync operation cmdlet +Get application instance association. +GET Teams.VoiceApps/applicationinstanceassociations/identity. .Description -Post resync operation cmdlet +Get application instance association. +GET Teams.VoiceApps/applicationinstanceassociations/identity. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IResyncRequestBody +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -System.Boolean +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : Request body for Resync cmdlet - [IsValidationRequest ]: - [ObjectClass ]: Object Class enum - [ObjectId ]: - [ReSyncOption ]: ReSync for the given entity - [ScenariosToSuppress ]: Scenarios to Suppress - [ServiceInstance ]: Service Instance of the tenant - [SynchronizeTenantWithAllObject ]: Sync all the users of the tenant - [TenantId ]: TenantId GUID +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/invoke-csmsodssync +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineapplicationinstanceassociation #> -function Invoke-CsMsodsSync { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='PostExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Get-CsOnlineApplicationInstanceAssociation { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Post', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IResyncRequestBody] - # Request body for Resync cmdlet - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${IsValidationRequest}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # Object Class enum - ${ObjectClass}, - - [Parameter(ParameterSetName='PostExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] # . - ${ObjectId}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int64] - # ReSync for the given entity - ${ReSyncOption}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Scenarios to Suppress - ${ScenariosToSuppress}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Service Instance of the tenant - ${ServiceInstance}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Sync all the users of the tenant - ${SynchronizeTenantWithAllObject}, + ${Identity}, - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # TenantId GUID - ${TenantId}, + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -18517,12 +18622,6 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -18552,8 +18651,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Post = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsMsodsSync_Post'; - PostExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsMsodsSync_PostExpanded'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociation_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociation_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -18588,74 +18687,99 @@ end { <# .Synopsis -Create a callable entity draft. -POST Teams.VoiceApps/auto-attendants/callable-entities/draft. +Get Audio file metedata with expiring download link. +GET api/v3/tenants/tenantId/audiofile/appId/audiofileId?durationInMins=int(default=60) .Description -Create a callable entity draft. -POST Teams.VoiceApps/auto-attendants/callable-entities/draft. +Get Audio file metedata with expiring download link. +GET api/v3/tenants/tenantId/audiofile/appId/audiofileId?durationInMins=int(default=60) .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallableEntityRequest +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallableEntityResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAudioFileDto .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . - [CallPriority ]: - [EnableSharedVoicemailSystemPromptSuppression ]: - [EnableTranscription ]: +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: - [Type ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantcallableentity +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineaudiofile #> -function New-CsAutoAttendantCallableEntity { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallableEntityResponse])] -[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Get-CsOnlineAudioFile { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAudioFileDto])] +[CmdletBinding(DefaultParameterSetName='Get1', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallableEntityRequest] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # . - ${CallPriority}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${EnableSharedVoicemailSystemPromptSuppression}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] # . - ${EnableTranscription}, + ${ApplicationId}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] # . ${Identity}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GetViaIdentity1', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='GetViaIdentity')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] # . - ${Type}, + ${DurationInMin}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -18706,8 +18830,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallableEntity_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallableEntity_NewExpanded'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_GetViaIdentity'; + GetViaIdentity1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_GetViaIdentity1'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -18742,148 +18868,90 @@ end { <# .Synopsis -Create a call flow draft. -POST Teams.VoiceApps/auto-attendants/call-flows/draft. + .Description -Create a call flow draft. -POST Teams.VoiceApps/auto-attendants/call-flows/draft. + .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallFlowRequest +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallFlowResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnostics +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . - [ForceListenMenuEnabled ]: - [Greeting ]: - [ActiveType ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [TextToSpeechPrompt ]: - [MenuDialByNameEnabled ]: - [MenuDirectorySearchMethod ]: - [MenuName ]: - [MenuOption ]: - [Action ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [CallTargetCallPriority ]: - [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: - [CallTargetEnableTranscription ]: - [CallTargetId ]: - [CallTargetType ]: - [DtmfResponse ]: - [PromptActiveType ]: - [PromptTextToSpeechPrompt ]: - [VoiceResponse ]: - [MenuPrompt ]: - [Name ]: - -GREETING : . - [ActiveType ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [TextToSpeechPrompt ]: - -MENUOPTION : . - [Action ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [CallTargetCallPriority ]: - [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: - [CallTargetEnableTranscription ]: - [CallTargetId ]: - [CallTargetType ]: - [DtmfResponse ]: - [PromptActiveType ]: - [PromptTextToSpeechPrompt ]: - [VoiceResponse ]: - -MENUPROMPT : . - [ActiveType ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [TextToSpeechPrompt ]: +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantcallflow +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineenhancedemergencyservicedisclaimer #> -function New-CsAutoAttendantCallFlow { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallFlowResponse])] -[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Get-CsOnlineEnhancedEmergencyServiceDisclaimer { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnostics])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallFlowRequest] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${ForceListenMenuEnabled}, - - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] - # . - # To construct, see NOTES section for GREETING properties and create a hash table. - ${Greeting}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${MenuDialByNameEnabled}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] # . - ${MenuDirectorySearchMethod}, + ${CountryOrRegion}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] # . - ${MenuName}, - - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMenuOption[]] - # . - # To construct, see NOTES section for MENUOPTION properties and create a hash table. - ${MenuOption}, - - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] - # . - # To construct, see NOTES section for MENUPROMPT properties and create a hash table. - ${MenuPrompt}, + ${Version}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Name}, + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -18934,8 +19002,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallFlow_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallFlow_NewExpanded'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineEnhancedEmergencyServiceDisclaimer_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineEnhancedEmergencyServiceDisclaimer_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -18970,68 +19038,23 @@ end { <# .Synopsis -Create a call handling association draft. -POST Teams.VoiceApps/auto-attendants/call-handling-associations/draft. + .Description -Create a call handling association draft. -POST Teams.VoiceApps/auto-attendants/call-handling-associations/draft. + .Example {{ Add code here }} .Example {{ Add code here }} -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallHandlingAssociationRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallHandlingAssociationResponse -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -BODY : . - [CallFlowId ]: - [Enabled ]: - [ScheduleId ]: - [Type ]: +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICivicAddress .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantcallhandlingassociation +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineliscivicaddress #> -function New-CsAutoAttendantCallHandlingAssociation { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallHandlingAssociationResponse])] -[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Get-CsOnlineLisCivicAddress { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICivicAddress])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallHandlingAssociationRequest] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CallFlowId}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${Enabled}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${ScheduleId}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Type}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] @@ -19081,8 +19104,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallHandlingAssociation_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallHandlingAssociation_NewExpanded'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisCivicAddress_Get'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -19117,47 +19139,128 @@ end { <# .Synopsis -Create a group dial scope draft. -POST Teams.VoiceApps/auto-attendants/group-dial-scopes/draft. +Get all schedules for a tenant. +GET Teams.VoiceApps/schedules?. .Description -Create a group dial scope draft. -POST Teams.VoiceApps/auto-attendants/group-dial-scopes/draft. +Get all schedules for a tenant. +GET Teams.VoiceApps/schedules?. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateGroupDialScopeRequest +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateGroupDialScopeResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetScheduleResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSchedulesResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . - [GroupId ]: +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantdialscope +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineschedule #> -function New-CsAutoAttendantDialScope { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateGroupDialScopeResponse])] -[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Get-CsOnlineSchedule { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSchedulesResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetScheduleResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateGroupDialScopeRequest] + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Id for the schedule to retrieve. + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, + ${Descending}, - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] # . - ${GroupIds}, + ${ExcludeContent}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${First}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${NameFilter}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${Skip}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SortBy}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TypeFilter}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -19208,8 +19311,9 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantDialScope_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantDialScope_NewExpanded'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineSchedule_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineSchedule_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineSchedule_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -19244,131 +19348,34 @@ end { <# .Synopsis -Create a menu option draft. -POST Teams.VoiceApps/auto-attendants/menus/menu-options/draft. + .Description -Create a menu option draft. -POST Teams.VoiceApps/auto-attendants/menus/menu-options/draft. + .Example {{ Add code here }} .Example {{ Add code here }} -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuOptionRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuOptionResponse -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -BODY : . - [Action ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [CallTargetCallPriority ]: - [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: - [CallTargetEnableTranscription ]: - [CallTargetId ]: - [CallTargetType ]: - [DtmfResponse ]: - [PromptActiveType ]: - [PromptTextToSpeechPrompt ]: - [VoiceResponse ]: +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtGetGenericOrderResponse .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantmenuoption +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlinetelephonenumberorder #> -function New-CsAutoAttendantMenuOption { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuOptionResponse])] -[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Get-CsOnlineTelephoneNumberOrder { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtGetGenericOrderResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuOptionRequest] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Action}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${AudioFilePromptDownloadUri}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${AudioFilePromptFileName}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${AudioFilePromptId}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # . - ${CallTargetCallPriority}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${CallTargetEnableSharedVoicemailSystemPromptSuppression}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${CallTargetEnableTranscription}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CallTargetId}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CallTargetType}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${DtmfResponse}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] # . - ${PromptActiveType}, + ${OrderId}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] # . - ${PromptTextToSpeechPrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # . - ${VoiceResponses}, + ${OrderType}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -19419,8 +19426,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantMenuOption_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantMenuOption_NewExpanded'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineTelephoneNumberOrder_Get'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -19455,118 +19461,82 @@ end { <# .Synopsis -Create a menu draft. -POST Teams.VoiceApps/auto-attendants/menus/draft. +Get Cs-OnlineVoicemailUserSettings. .Description -Create a menu draft. -POST Teams.VoiceApps/auto-attendants/menus/draft. +Get Cs-OnlineVoicemailUserSettings. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuRequest +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . - [DialByNameEnabled ]: - [DirectorySearchMethod ]: - [MenuOption ]: - [Action ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [CallTargetCallPriority ]: - [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: - [CallTargetEnableTranscription ]: - [CallTargetId ]: - [CallTargetType ]: - [DtmfResponse ]: - [PromptActiveType ]: - [PromptTextToSpeechPrompt ]: - [VoiceResponse ]: - [Name ]: - [Prompt ]: - [ActiveType ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [TextToSpeechPrompt ]: - -MENUOPTION : . - [Action ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [CallTargetCallPriority ]: - [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: - [CallTargetEnableTranscription ]: - [CallTargetId ]: - [CallTargetType ]: - [DtmfResponse ]: - [PromptActiveType ]: - [PromptTextToSpeechPrompt ]: - [VoiceResponse ]: - -PROMPT : . - [ActiveType ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [TextToSpeechPrompt ]: +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantmenu +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlinevmusersetting #> -function New-CsAutoAttendantMenu { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuResponse])] -[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Get-CsOnlineVMUserSetting { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuRequest] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${DirectorySearchMethod}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${EnableDialByName}, - - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMenuOption[]] - # . - # To construct, see NOTES section for MENUOPTION properties and create a hash table. - ${MenuOption}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] # . - ${Name}, + ${Identity}, - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] - # . - # To construct, see NOTES section for PROMPT properties and create a hash table. - ${Prompt}, + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -19588,6 +19558,12 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -19617,8 +19593,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantMenu_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantMenu_NewExpanded'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineVMUserSetting_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineVMUserSetting_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -19653,74 +19629,134 @@ end { <# .Synopsis -Create a prompt draft. -POST Teams.VoiceApps/auto-attendants/prompts/draft. +Get all Shared Call Queue History Configs. +GET /Teams.VoiceApps/shared-call-queue-history?. .Description -Create a prompt draft. -POST Teams.VoiceApps/auto-attendants/prompts/draft. +Get all Shared Call Queue History Configs. +GET /Teams.VoiceApps/shared-call-queue-history?. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreatePromptRequest +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreatePromptResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllSharedCallQueueHistoryResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSharedCallQueueHistoryResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . - [ActiveType ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [TextToSpeechPrompt ]: +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantprompt +https://docs.microsoft.com/en-us/powershell/module/teams/get-cssharedcallqueuehistorytemplate #> -function New-CsAutoAttendantPrompt { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreatePromptResponse])] -[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Get-CsSharedCallQueueHistoryTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllSharedCallQueueHistoryResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSharedCallQueueHistoryResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreatePromptRequest] + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Shared Call Queue History Id. + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, + ${Descending}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] # . - ${ActiveType}, + ${ExcludeContent}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] # . - ${AudioFilePromptDownloadUri}, + ${First}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${IncludeStatus}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] # . - ${AudioFilePromptFileName}, + ${NameFilter}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${Skip}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] # . - ${AudioFilePromptId}, + ${SortBy}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] # . - ${TextToSpeechPrompt}, + ${TypeFilter}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -19771,8 +19807,9 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantPrompt_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantPrompt_NewExpanded'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsSharedCallQueueHistoryTemplate_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsSharedCallQueueHistoryTemplate_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsSharedCallQueueHistoryTemplate_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -19807,347 +19844,232 @@ end { <# .Synopsis -Create an AutoAttendant. -POST Teams.VoiceApps/auto-attendants. +Get all ivr tags template for a tenant. +GET api/v1.0/tenants/tenantId/ivr-tags-template?. .Description -Create an AutoAttendant. -POST Teams.VoiceApps/auto-attendants. +Get all ivr tags template for a tenant. +GET api/v1.0/tenants/tenantId/ivr-tags-template?. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAutoAttendantRequest +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAutoAttendantResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetIvrTagsTemplateResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetIvrTagsTemplatesResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . - [AuthorizedUser ]: - [CallFlow ]: - [ForceListenMenuEnabled ]: - [Greeting ]: - [ActiveType ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [TextToSpeechPrompt ]: - [Id ]: - [MenuDialByNameEnabled ]: - [MenuDirectorySearchMethod ]: - [MenuName ]: - [MenuOption ]: - [Action ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [CallTargetCallPriority ]: - [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: - [CallTargetEnableTranscription ]: - [CallTargetId ]: - [CallTargetType ]: - [DtmfResponse ]: - [PromptActiveType ]: - [PromptTextToSpeechPrompt ]: - [VoiceResponse ]: - [MenuPrompt ]: - [Name ]: - [CallHandlingAssociation ]: - [CallFlowId ]: - [Enabled ]: - [Priority ]: - [ScheduleId ]: - [Type ]: - [DefaultCallFlowForceListenMenuEnabled ]: - [DefaultCallFlowGreeting ]: - [DefaultCallFlowId ]: - [DefaultCallFlowName ]: - [ExclusionScopeGroupDialScopeGroupId ]: - [ExclusionScopeType ]: - [HideAuthorizedUser ]: Gets or sets hidden authorized user ids. - [InclusionScopeGroupDialScopeGroupId ]: - [InclusionScopeType ]: - [LanguageId ]: - [MenuDialByNameEnabled ]: - [MenuDirectorySearchMethod ]: - [MenuName ]: - [MenuOption ]: - [MenuPrompt ]: - [Name ]: - [OperatorCallPriority ]: - [OperatorEnableSharedVoicemailSystemPromptSuppression ]: - [OperatorEnableTranscription ]: - [OperatorId ]: - [OperatorType ]: - [TimeZoneId ]: - [UserNameExtension ]: - [VoiceId ]: - [VoiceResponseEnabled ]: - -CALLFLOW : . - [ForceListenMenuEnabled ]: - [Greeting ]: - [ActiveType ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [TextToSpeechPrompt ]: +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: - [MenuDialByNameEnabled ]: - [MenuDirectorySearchMethod ]: - [MenuName ]: - [MenuOption ]: - [Action ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [CallTargetCallPriority ]: - [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: - [CallTargetEnableTranscription ]: - [CallTargetId ]: - [CallTargetType ]: - [DtmfResponse ]: - [PromptActiveType ]: - [PromptTextToSpeechPrompt ]: - [VoiceResponse ]: - [MenuPrompt ]: - [Name ]: - -CALLHANDLINGASSOCIATION : . - [CallFlowId ]: - [Enabled ]: - [Priority ]: - [ScheduleId ]: - [Type ]: - -DEFAULTCALLFLOWGREETING : . - [ActiveType ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [TextToSpeechPrompt ]: - -MENUOPTION : . - [Action ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [CallTargetCallPriority ]: - [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: - [CallTargetEnableTranscription ]: - [CallTargetId ]: - [CallTargetType ]: - [DtmfResponse ]: - [PromptActiveType ]: - [PromptTextToSpeechPrompt ]: - [VoiceResponse ]: - -MENUPROMPT : . - [ActiveType ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [TextToSpeechPrompt ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendant +https://docs.microsoft.com/en-us/powershell/module/teams/get-cstagstemplate #> -function New-CsAutoAttendant { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAutoAttendantResponse])] -[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Get-CsTagsTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetIvrTagsTemplatesResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetIvrTagsTemplateResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAutoAttendantRequest] + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, + ${Identity}, - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] # . - ${AuthorizedUser}, + ${Descending}, - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallFlow[]] + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] # . - # To construct, see NOTES section for CALLFLOW properties and create a hash table. - ${CallFlow}, + ${ExcludeContent}, - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallHandlingAssociation[]] + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] # . - # To construct, see NOTES section for CALLHANDLINGASSOCIATION properties and create a hash table. - ${CallHandlingAssociation}, + ${First}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] # . - ${DefaultCallFlowForceListenMenuEnabled}, + ${NameFilter}, - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] # . - # To construct, see NOTES section for DEFAULTCALLFLOWGREETING properties and create a hash table. - ${DefaultCallFlowGreeting}, + ${Skip}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] # . - ${DefaultCallFlowId}, + ${SortBy}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] # . - ${DefaultCallFlowName}, + ${TypeFilter}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] - # . - ${EnableVoiceResponse}, + # Wait for .NET debugger to attach + ${Break}, - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # . - ${ExclusionScopeGroupDialScopeGroupId}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${ExclusionScopeType}, - - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # Gets or sets hidden authorized user ids. - ${HideAuthorizedUser}, + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # . - ${InclusionScopeGroupDialScopeGroupId}, + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${InclusionScopeType}, + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${LanguageId}, + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] - # . - ${MenuDialByNameEnabled}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${MenuDirectorySearchMethod}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${MenuName}, - - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMenuOption[]] - # . - # To construct, see NOTES section for MENUOPTION properties and create a hash table. - ${MenuOption}, + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] - # . - # To construct, see NOTES section for MENUPROMPT properties and create a hash table. - ${MenuPrompt}, +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Name}, + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTagsTemplate_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTagsTemplate_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTagsTemplate_GetViaIdentity'; + } - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # . - ${OperatorCallPriority}, + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${OperatorEnableSharedVoicemailSystemPromptSuppression}, + throw + } +} - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${OperatorEnableTranscription}, +process { + try { + $steppablePipeline.Process($_) + } catch { - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${OperatorId}, + throw + } - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${OperatorType}, +} +end { + try { + $steppablePipeline.End() - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${TimeZoneId}, + } catch { - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${UserNameExtension}, + throw + } +} +} - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${VoiceId}, +<# +.Synopsis +Get Org Settings - Get-CsTeamsSettingsCustomApp +.Description +Get Org Settings - Get-CsTeamsSettingsCustomApp +.Example +{{ Add code here }} +.Example +{{ Add code here }} +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCustomAppSettingResponse +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csteamssettingscustomapp +#> +function Get-CsTeamsSettingsCustomApp { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCustomAppSettingResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] @@ -20197,8 +20119,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendant_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendant_NewExpanded'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsSettingsCustomApp_Get'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -20233,51 +20154,101 @@ end { <# .Synopsis -Starts Deployment at Scale +Get a list of available team templates .Description -Starts Deployment at Scale +Get a list of available team templates .Example -{{ Add code here }} +PS C:\> Get-CsTeamTemplateList + +OdataId Name ShortDescription Chann AppCo + elCou unt + nt +------- ---- ---------------- ----- ----- +/api/teamtemplates/v1.0/healthcareWard/Public/en-US Collaborate on Patient Care Collaborate on patient care i... 6 1 +/api/teamtemplates/v1.0/healthcareHospital/Public/en-US Hospital Facilitate collaboration with... 6 1 +/api/teamtemplates/v1.0/retailStore/Public/en-US Organize a Store Collaborate with your retail ... 3 1 +/api/teamtemplates/v1.0/retailManagerCollaboration/Public/en-US Retail - Manager Collaboration Collaborate with managers acr... 3 1 + .Example -{{ Add code here }} +PS C:\> (Get-CsTeamTemplateList -PublicTemplateLocale en-US) | where ChannelCount -GT 3 + +OdataId Name ShortDescription Chann AppCo + elCou unt + nt +------- ---- ---------------- ----- ----- +/api/teamtemplates/v1.0/healthcareWard/Public/en-US Collaborate on Patient Care Collaborate on patient care i... 6 1 +/api/teamtemplates/v1.0/healthcareHospital/Public/en-US Hospital Facilitate collaboration with... 6 1 .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IFlwoServiceModelsFlwosBatchRequest +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IFlwoServiceModelsFlwosBatchRequestResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateSummary .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . - DeploymentCsv : - [UsersToNotify ]: +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csbatchteamsdeployment +https://docs.microsoft.com/en-us/powershell/module/teams/get-csteamtemplatelist #> -function New-CsBatchTeamsDeployment { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IFlwoServiceModelsFlwosBatchRequestResponse])] -[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Get-CsTeamTemplateList { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateSummary], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IFlwoServiceModelsFlwosBatchRequest] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='NewExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # . - ${DeploymentCsv}, + # Language and country code for localization of publicly available templates. + ${PublicTemplateLocale}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${UsersToNotify}, + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -20328,8 +20299,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsBatchTeamsDeployment_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsBatchTeamsDeployment_NewExpanded'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamTemplateList_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamTemplateList_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -20364,675 +20335,70 @@ end { <# .Synopsis -Create call queue. -POST Teams.VoiceApps/callqueues. +Get Tenant. .Description -Create call queue. -POST Teams.VoiceApps/callqueues. +Get Tenant. .Example {{ Add code here }} .Example {{ Add code here }} -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallQueueRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallQueueResponse -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -AGENT : Gets or sets the Call Queue's agents list. - [ObjectId ]: - [OptIn ]: - -BODY : CallQueue creation request DTO class. - [Agent ]: Gets or sets the Call Queue's agents list. - [ObjectId ]: - [OptIn ]: - [AgentAlertTime ]: Gets or sets the number of seconds that a call can remain unanswered. - [AllowOptOut ]: Gets or sets a value indicating whether to allow agent optout on CallQueue. - [AuthorizedUser ]: Gets or sets authorized user ids. - [CallToAgentRatioThresholdBeforeOfferingCallback ]: - [CallbackEmailNotificationTarget ]: Gets or sets the callback email notification target. - [CallbackOfferAudioFilePromptResourceId ]: - [CallbackOfferTextToSpeechPrompt ]: - [CallbackRequestDtmf ]: - [ConferenceMode ]: Gets or sets a value indicating whether to allow Conference Mode on CallQueue. - [DistributionList ]: Gets or sets the Call Queue's Distribution Lists. - [EnableNoAgentSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. - [EnableNoAgentSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. - [EnableOverflowSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. - [EnableOverflowSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. - [EnableResourceAccountsForObo ]: Gets or sets a value indicating whether to allow CQ+Chanined RA's as permissioned RA's. - [EnableTimeoutSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. - [EnableTimeoutSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. - [HideAuthorizedUser ]: Gets or sets hidden authorized user ids. - [IsCallbackEnabled ]: - [LanguageId ]: Gets or sets the language Id used for TTS. - [MusicOnHoldAudioFileId ]: Gets or sets music on hold audio file id. - [Name ]: Gets or sets The Call Queue's name. - [NoAgentAction ]: Gets or sets the action to take if the NoAgent is LoggedIn/OptedIn. - [NoAgentActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of no agent. - [NoAgentActionTarget ]: Gets or sets the target of the NoAgent action. - [NoAgentApplyTo ]: Determines whether NoAgentAction is to be applied to All Calls or New Calls only. - [NoAgentDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on NoAgent. - [NoAgentDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on NoAgent. - [NoAgentRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on NoAgent. - [NoAgentRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on NoAgent. - [NoAgentRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on NoAgent. - [NoAgentRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on NoAgent. - [NoAgentRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on NoAgent. - [NoAgentRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on NoAgent. - [NoAgentRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on NoAgent. - [NoAgentRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on NoAgent. - [NoAgentSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemail. - [NoAgentSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. - [NumberOfCallsInQueueBeforeOfferingCallback ]: - [OboResourceAccountId ]: Gets or sets the Obo resource account ids. - [OverflowAction ]: Gets or sets the action to take when the overflow threshold is reached. - [OverflowActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of overflow. - [OverflowActionTarget ]: Gets or sets the target of the overflow action. - [OverflowDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on overflow. - [OverflowDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on overflow. - [OverflowRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on overflow. - [OverflowRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on overflow. - [OverflowRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on overflow. - [OverflowRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on overflow. - [OverflowRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on overflow. - [OverflowRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on overflow. - [OverflowRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on overflow. - [OverflowRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on overflow. - [OverflowSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemai. - [OverflowSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. - [OverflowThreshold ]: Gets or sets the number of simultaneous calls that can be in the queue at any one time. - [PresenceAwareRouting ]: Gets or sets a value indicating whether to enable presence aware routing. - [RoutingMethod ]: Gets or sets the routing method for the Call Queue. - [ServiceLevelThresholdResponseTimeInSecond ]: - [ShouldOverwriteCallableChannelProperty ]: Gets or sets ShouldOverwriteCallableChannelProperty flag that indicates user intention to whether overwirte the current callableChannel property value on chat service or not. - [ThreadId ]: Gets or sets teams channel thread id if user choose to sync CQ with a channel. - [TimeoutAction ]: Gets or sets the action to take if the timeout threshold is reached. - [TimeoutActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of timeout. - [TimeoutActionTarget ]: Gets or sets the target of the timeout action. - [TimeoutDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on Timeout. - [TimeoutDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on Timeout. - [TimeoutRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on Timeout. - [TimeoutRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on Timeout. - [TimeoutRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on Timeout. - [TimeoutRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on Timeout. - [TimeoutRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on Timeout. - [TimeoutRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on Timeout. - [TimeoutRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on Timeout. - [TimeoutRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on Timeout. - [TimeoutSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemai. - [TimeoutSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. - [TimeoutThreshold ]: Gets or sets the number of minutes that a call can be in the queue before it times out. - [UseDefaultMusicOnHold ]: Gets or sets a value indicating whether to use default music on hold audio file. - [User ]: Gets or sets the Call Queue's Users. - [WaitTimeBeforeOfferingCallbackInSecond ]: - [WelcomeMusicAudioFileId ]: Gets or sets welcome music audio file id. - [WelcomeTextToSpeechPrompt ]: Gets or sets welcome text to speech content. +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenant .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-cscallqueue +https://docs.microsoft.com/en-us/powershell/module/teams/get-cstenantobou #> -function New-CsCallQueue { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallQueueResponse])] -[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Get-CsTenantObou { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenant])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # . - ${ChannelUserObjectId}, - - [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallQueueRequest] - # CallQueue creation request DTO class. - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAgent[]] - # Gets or sets the Call Queue's agents list. - # To construct, see NOTES section for AGENT properties and create a hash table. - ${Agent}, + # To set defaultpropertyset value + ${Defaultpropertyset}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the number of seconds that a call can remain unanswered. - ${AgentAlertTime}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Properties to select + ${Select}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether to allow agent optout on CallQueue. - ${AllowOptOut}, - - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # Gets or sets authorized user ids. - ${AuthorizedUsers}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # . - ${CallToAgentRatioThresholdBeforeOfferingCallback}, + # Wait for .NET debugger to attach + ${Break}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the callback email notification target. - ${CallbackEmailNotificationTarget}, + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CallbackOfferAudioFilePromptResourceId}, + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CallbackOfferTextToSpeechPrompt}, + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CallbackRequestDtmf}, + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether to allow Conference Mode on CallQueue. - ${ConferenceMode}, - - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # Gets or sets the Call Queue's Distribution Lists. - ${DistributionLists}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating if system message should be suppressed or not. - ${EnableNoAgentSharedVoicemailSystemPromptSuppression}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating if transcription should be turned on or not. - ${EnableNoAgentSharedVoicemailTranscription}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating if system message should be suppressed or not. - ${EnableOverflowSharedVoicemailSystemPromptSuppression}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating if transcription should be turned on or not. - ${EnableOverflowSharedVoicemailTranscription}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether to allow CQ+Chanined RA's as permissioned RA's. - ${EnableResourceAccountsForObo}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating if system message should be suppressed or not. - ${EnableTimeoutSharedVoicemailSystemPromptSuppression}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating if transcription should be turned on or not. - ${EnableTimeoutSharedVoicemailTranscription}, - - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # Gets or sets hidden authorized user ids. - ${HideAuthorizedUsers}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${IsCallbackEnabled}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the language Id used for TTS. - ${LanguageId}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets music on hold audio file id. - ${MusicOnHoldAudioFileId}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets The Call Queue's name. - ${Name}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the action to take if the NoAgent is LoggedIn/OptedIn. - ${NoAgentAction}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of no agent. - ${NoAgentActionCallPriority}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the target of the NoAgent action. - ${NoAgentActionTarget}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Determines whether NoAgentAction is to be applied to All Calls or New Calls only. - ${NoAgentApplyTo}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is disconnected on NoAgent. - ${NoAgentDisconnectAudioFilePrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is disconnected on NoAgent. - ${NoAgentDisconnectTextToSpeechPrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to person on NoAgent. - ${NoAgentRedirectPersonAudioFilePrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to person on NoAgent. - ${NoAgentRedirectPersonTextToSpeechPrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to phone number on NoAgent. - ${NoAgentRedirectPhoneNumberAudioFilePrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to phone number on NoAgent. - ${NoAgentRedirectPhoneNumberTextToSpeechPrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to voiceapp on NoAgent. - ${NoAgentRedirectVoiceAppAudioFilePrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to voiceapp on NoAgent. - ${NoAgentRedirectVoiceAppTextToSpeechPrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to voicemail on NoAgent. - ${NoAgentRedirectVoicemailAudioFilePrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to voicemail on NoAgent. - ${NoAgentRedirectVoicemailTextToSpeechPrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when forwarding callers to shared voicemail. - ${NoAgentSharedVoicemailAudioFilePrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when forwarding callers to shared voicemail. - ${NoAgentSharedVoicemailTextToSpeechPrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # . - ${NumberOfCallsInQueueBeforeOfferingCallback}, - - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # Gets or sets the Obo resource account ids. - ${OboResourceAccountIds}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the action to take when the overflow threshold is reached. - ${OverflowAction}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of overflow. - ${OverflowActionCallPriority}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the target of the overflow action. - ${OverflowActionTarget}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is disconnected on overflow. - ${OverflowDisconnectAudioFilePrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is disconnected on overflow. - ${OverflowDisconnectTextToSpeechPrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to person on overflow. - ${OverflowRedirectPersonAudioFilePrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to person on overflow. - ${OverflowRedirectPersonTextToSpeechPrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to phone number on overflow. - ${OverflowRedirectPhoneNumberAudioFilePrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to phone number on overflow. - ${OverflowRedirectPhoneNumberTextToSpeechPrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to voiceapp on overflow. - ${OverflowRedirectVoiceAppAudioFilePrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to voiceapp on overflow. - ${OverflowRedirectVoiceAppTextToSpeechPrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to voicemail on overflow. - ${OverflowRedirectVoicemailAudioFilePrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to voicemail on overflow. - ${OverflowRedirectVoicemailTextToSpeechPrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when forwarding callers to shared voicemai. - ${OverflowSharedVoicemailAudioFilePrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when forwarding callers to shared voicemail. - ${OverflowSharedVoicemailTextToSpeechPrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the number of simultaneous calls that can be in the queue at any one time. - ${OverflowThreshold}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether to enable presence aware routing. - ${PresenceAwareRouting}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the routing method for the Call Queue. - ${RoutingMethod}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # . - ${ServiceLevelThresholdResponseTimeInSecond}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets ShouldOverwriteCallableChannelProperty flag that indicates user intention to whether overwirte the current callableChannel property value on chat service or not. - ${ShouldOverwriteCallableChannelProperty}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets teams channel thread id if user choose to sync CQ with a channel. - ${ThreadId}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the action to take if the timeout threshold is reached. - ${TimeoutAction}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of timeout. - ${TimeoutActionCallPriority}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the target of the timeout action. - ${TimeoutActionTarget}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is disconnected on Timeout. - ${TimeoutDisconnectAudioFilePrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is disconnected on Timeout. - ${TimeoutDisconnectTextToSpeechPrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to person on Timeout. - ${TimeoutRedirectPersonAudioFilePrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to person on Timeout. - ${TimeoutRedirectPersonTextToSpeechPrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to phone number on Timeout. - ${TimeoutRedirectPhoneNumberAudioFilePrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to phone number on Timeout. - ${TimeoutRedirectPhoneNumberTextToSpeechPrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to voiceapp on Timeout. - ${TimeoutRedirectVoiceAppAudioFilePrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to voiceapp on Timeout. - ${TimeoutRedirectVoiceAppTextToSpeechPrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to voicemail on Timeout. - ${TimeoutRedirectVoicemailAudioFilePrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to voicemail on Timeout. - ${TimeoutRedirectVoicemailTextToSpeechPrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when forwarding callers to shared voicemai. - ${TimeoutSharedVoicemailAudioFilePrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when forwarding callers to shared voicemail. - ${TimeoutSharedVoicemailTextToSpeechPrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the number of minutes that a call can be in the queue before it times out. - ${TimeoutThreshold}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether to use default music on hold audio file. - ${UseDefaultMusicOnHold}, - - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # Gets or sets the Call Queue's Users. - ${Users}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # . - ${WaitTimeBeforeOfferingCallbackInSecond}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets welcome music audio file id. - ${WelcomeMusicAudioFileId}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets welcome text to speech content. - ${WelcomeTextToSpeechPrompt}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] # Use the default credentials for the proxy ${ProxyUseDefaultCredentials} @@ -21047,8 +20413,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsCallQueue_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsCallQueue_NewExpanded'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantObou_Get'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -21083,9 +20448,9 @@ end { <# .Synopsis -Create new configuration +Get User. .Description -Create new configuration +Get User. .Example {{ Add code here }} .Example @@ -21093,19 +20458,13 @@ Create new configuration .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration .Outputs -System.Boolean +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserMas .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . - [(Any) ]: This indicates any property can be added to this object. - Identity : - INPUTOBJECT : Identity Parameter [AppId ]: [AudioFileId ]: @@ -21147,21 +20506,22 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csconfiguration +https://docs.microsoft.com/en-us/powershell/module/teams/get-csuser #> -function New-CsConfiguration { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Get-CsUser { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserMas])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Create', Mandatory)] - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('UserId')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # . - ${ConfigType}, + # UserId. + # Supports Guid. + # Eventually UPN and SIP. + ${Identity}, - [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter @@ -21171,36 +20531,38 @@ param( [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # Api Version - ${ApiVersion}, + # To set defaultpropertyset value + ${Defaultpropertyset}, [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${SchemaVersion}, + [System.Management.Automation.SwitchParameter] + # To fetch optional location field + ${Expandlocation}, - [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # To set includedefaultproperties value + ${Includedefaultproperty}, - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # . - ${Identity}, + # Properties to select + ${Select}, - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Collections.Hashtable] - # Additional Parameters - ${AdditionalProperties}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # Skip user policies in user response object + ${Skipuserpolicy}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # To set to true when called from Get-CsVoiceUser cmdlet + ${Voiceuserquery}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -21222,12 +20584,6 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -21257,10 +20613,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Create = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsConfiguration_Create'; - CreateExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsConfiguration_CreateExpanded'; - CreateViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsConfiguration_CreateViaIdentity'; - CreateViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsConfiguration_CreateViaIdentityExpanded'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsUser_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsUser_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -21295,14 +20649,18 @@ end { <# .Synopsis -Create a policy package +Unified group grant. .Description -Create a policy package +Unified group grant. .Example {{ Add code here }} .Example {{ Add code here }} +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGroupGrantPayload .Outputs System.String .Notes @@ -21310,35 +20668,100 @@ COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -POLICYLIST : . - PolicyName : - PolicyType : +BODY : . + [PolicyName ]: + [Priority ]: + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-cscustompolicypackage +https://docs.microsoft.com/en-us/powershell/module/teams/grant-csgrouppolicyassignment #> -function New-CsCustomPolicyPackage { +function Grant-CsGroupPolicyAssignment { [OutputType([System.String])] -[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +[CmdletBinding(DefaultParameterSetName='GrantExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(ParameterSetName='Grant', Mandatory)] + [Parameter(ParameterSetName='GrantExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] # . - ${Identity}, + ${GroupId}, - [Parameter(Mandatory)] - [AllowEmptyCollection()] + [Parameter(ParameterSetName='Grant', Mandatory)] + [Parameter(ParameterSetName='GrantExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${PolicyType}, + + [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GrantViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Grant', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsRequestsPolicyTypeAndName[]] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGroupGrantPayload] # . - # To construct, see NOTES section for POLICYLIST properties and create a hash table. - ${PolicyList}, + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, - [Parameter()] + [Parameter(ParameterSetName='GrantExpanded')] + [Parameter(ParameterSetName='GrantViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${Description}, + ${PolicyName}, + + [Parameter(ParameterSetName='GrantExpanded')] + [Parameter(ParameterSetName='GrantViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${Rank}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -21360,6 +20783,12 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -21389,7 +20818,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsCustomPolicyPackage_NewExpanded'; + Grant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsGroupPolicyAssignment_Grant'; + GrantExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsGroupPolicyAssignment_GrantExpanded'; + GrantViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsGroupPolicyAssignment_GrantViaIdentity'; + GrantViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsGroupPolicyAssignment_GrantViaIdentityExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -21424,68 +20856,50 @@ end { <# .Synopsis -Create application instance associations. -POST Teams.VoiceApps/applicationinstanceassociations. +Assign a policy package to a group in a tenant .Description -Create application instance associations. -POST Teams.VoiceApps/applicationinstanceassociations. +Assign a policy package to a group in a tenant .Example {{ Add code here }} .Example {{ Add code here }} -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateApplicationInstanceAssociationsRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateApplicationInstanceAssociationsResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsApplyPackageGroupResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . - [CallPriority ]: - [ConfigurationId ]: - [ConfigurationType ]: - [EndpointsId ]: +POLICYRANKINGS : . + PolicyType : + Rank : .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlineapplicationinstanceassociation +https://docs.microsoft.com/en-us/powershell/module/teams/grant-csgrouppolicypackageassignment #> -function New-CsOnlineApplicationInstanceAssociation { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateApplicationInstanceAssociationsResponse])] -[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Grant-CsGroupPolicyPackageAssignment { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsApplyPackageGroupResponse])] +[CmdletBinding(DefaultParameterSetName='GrantExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateApplicationInstanceAssociationsRequest] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # . - ${CallPriority}, - - [Parameter(ParameterSetName='NewExpanded')] + [Parameter(Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${ConfigurationId}, + ${GroupId}, - [Parameter(ParameterSetName='NewExpanded')] + [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${ConfigurationType}, + ${PackageName}, - [Parameter(ParameterSetName='NewExpanded')] + [Parameter()] [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsRequestsPolicyRanking[]] # . - ${Identities}, + # To construct, see NOTES section for POLICYRANKINGS properties and create a hash table. + ${PolicyRankings}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -21536,8 +20950,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineApplicationInstanceAssociation_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineApplicationInstanceAssociation_NewExpanded'; + GrantExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsGroupPolicyPackageAssignment_GrantExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -21572,53 +20985,122 @@ end { <# .Synopsis -Create a date time range draft. -POST Teams.VoiceApps/schedules/date-time-ranges/draft. +Update single policy of a Tenant .Description -Create a date time range draft. -POST Teams.VoiceApps/schedules/date-time-ranges/draft. +Update single policy of a Tenant .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateDateTimeRangeRequest +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantTenantRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateDateTimeRangeResponse +System.Boolean .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . - [End ]: - [Start ]: +BODY : . + [AdditionalParameter ]: Dictionary of + [(Any) ]: This indicates any property can be added to this object. + [ForceSwitchPresent ]: + [PolicyName ]: + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlinedatetimerange +https://docs.microsoft.com/en-us/powershell/module/teams/grant-cstenantpolicy #> -function New-CsOnlineDateTimeRange { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateDateTimeRangeResponse])] -[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Grant-CsTenantPolicy { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='GrantExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='Grant', Mandatory)] + [Parameter(ParameterSetName='GrantExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Policy Type + ${PolicyType}, + + [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GrantViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Grant', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateDateTimeRangeRequest] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantTenantRequest] # . # To construct, see NOTES section for BODY properties and create a hash table. ${Body}, - [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='GrantExpanded')] + [Parameter(ParameterSetName='GrantViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.Info(PossibleTypes=([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantTenantRequestAdditionalParameters]))] + [System.Collections.Hashtable] + # Dictionary of + ${AdditionalParameters}, + + [Parameter(ParameterSetName='GrantExpanded')] + [Parameter(ParameterSetName='GrantViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] # . - ${End}, + ${ForceSwitchPresent}, - [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='GrantExpanded')] + [Parameter(ParameterSetName='GrantViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${Start}, + ${PolicyName}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -21640,6 +21122,12 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -21669,8 +21157,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineDateTimeRange_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineDateTimeRange_NewExpanded'; + Grant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTenantPolicy_Grant'; + GrantExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTenantPolicy_GrantExpanded'; + GrantViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTenantPolicy_GrantViaIdentity'; + GrantViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTenantPolicy_GrantViaIdentityExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -21705,46 +21195,121 @@ end { <# .Synopsis - +Update single policy of a user .Description - +Update single policy of a user .Example {{ Add code here }} .Example {{ Add code here }} +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantUserRequest .Outputs -System.String +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [AdditionalParameter ]: Dictionary of + [(Any) ]: This indicates any property can be added to this object. + [PolicyName ]: + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlinedirectroutingtelephonenumberuploadorder +https://docs.microsoft.com/en-us/powershell/module/teams/grant-csuserpolicy #> -function New-CsOnlineDirectRoutingTelephoneNumberUploadOrder { -[OutputType([System.String])] -[CmdletBinding(DefaultParameterSetName='New', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Grant-CsUserPolicy { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='GrantExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='Grant', Mandatory)] + [Parameter(ParameterSetName='GrantExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # . - ${EndingNumber}, + # User Id + ${Identity}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='Grant', Mandatory)] + [Parameter(ParameterSetName='GrantExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # . - ${FileContent}, + # Policy Type + ${PolicyType}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] + [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GrantViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Grant', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantUserRequest] # . - ${StartingNumber}, + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='GrantExpanded')] + [Parameter(ParameterSetName='GrantViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.Info(PossibleTypes=([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantUserRequestAdditionalParameters]))] + [System.Collections.Hashtable] + # Dictionary of + ${AdditionalParameters}, + + [Parameter(ParameterSetName='GrantExpanded')] + [Parameter(ParameterSetName='GrantViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${TelephoneNumber}, + ${PolicyName}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -21766,6 +21331,12 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -21795,7 +21366,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineDirectRoutingTelephoneNumberUploadOrder_New'; + Grant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsUserPolicy_Grant'; + GrantExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsUserPolicy_GrantExpanded'; + GrantViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsUserPolicy_GrantViaIdentity'; + GrantViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsUserPolicy_GrantViaIdentityExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -21830,189 +21404,122 @@ end { <# .Synopsis -Create a schedule. -POST Teams.VoiceApps/schedules. +Import holidays for auto attendant. +PUT Teams.VoiceApps/auto-attendants/identity/holidays. .Description -Create a schedule. -POST Teams.VoiceApps/schedules. +Import holidays for auto attendant. +PUT Teams.VoiceApps/auto-attendants/identity/holidays. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateScheduleRequest +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IImportAutoAttendantHolidaysRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateScheduleResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IImportAutoAttendantHolidaysResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . - [FixedScheduleDateTimeRange ]: - [End ]: - [Start ]: - [Name ]: - [RecurrenceRangeEnd ]: - [RecurrenceRangeNumberOfOccurrence ]: - [RecurrenceRangeStart ]: - [RecurrenceRangeType ]: - [WeeklyRecurrentScheduleFridayHour ]: - [End ]: - [Start ]: - [WeeklyRecurrentScheduleIsComplemented ]: - [WeeklyRecurrentScheduleMondayHour ]: - [WeeklyRecurrentScheduleSaturdayHour ]: - [WeeklyRecurrentScheduleSundayHour ]: - [WeeklyRecurrentScheduleThursdayHour ]: - [WeeklyRecurrentScheduleTuesdayHour ]: - [WeeklyRecurrentScheduleWednesdayHour ]: - -FIXEDSCHEDULEDATETIMERANGE : . - [End ]: - [Start ]: - -WEEKLYRECURRENTSCHEDULEFRIDAYHOUR : . - [End ]: - [Start ]: - -WEEKLYRECURRENTSCHEDULEMONDAYHOUR : . - [End ]: - [Start ]: - -WEEKLYRECURRENTSCHEDULESATURDAYHOUR : . - [End ]: - [Start ]: - -WEEKLYRECURRENTSCHEDULESUNDAYHOUR : . - [End ]: - [Start ]: - -WEEKLYRECURRENTSCHEDULETHURSDAYHOUR : . - [End ]: - [Start ]: - -WEEKLYRECURRENTSCHEDULETUESDAYHOUR : . - [End ]: - [Start ]: +BODY : . + [Id ]: + [SerializedHolidayRecord ]: + [TenantId ]: -WEEKLYRECURRENTSCHEDULEWEDNESDAYHOUR : . - [End ]: - [Start ]: +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlineschedule +https://docs.microsoft.com/en-us/powershell/module/teams/import-csautoattendantholidays #> -function New-CsOnlineSchedule { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateScheduleResponse])] -[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Import-CsAutoAttendantHolidays { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IImportAutoAttendantHolidaysResponse])] +[CmdletBinding(DefaultParameterSetName='ImportExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateScheduleRequest] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDateTimeRange[]] - # . - # To construct, see NOTES section for FIXEDSCHEDULEDATETIMERANGE properties and create a hash table. - ${FixedScheduleDateTimeRange}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(ParameterSetName='Import', Mandatory)] + [Parameter(ParameterSetName='ImportExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] # . - ${Name}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.DateTime] - # . - ${RecurrenceRangeEnd}, + ${Identity}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # . - ${RecurrenceRangeNumberOfOccurrence}, + [Parameter(ParameterSetName='ImportViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ImportViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, - [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='Import', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ImportViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.DateTime] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IImportAutoAttendantHolidaysRequest] # . - ${RecurrenceRangeStart}, + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, - [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='ImportExpanded')] + [Parameter(ParameterSetName='ImportViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${RecurrenceRangeType}, - - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] - # . - # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEFRIDAYHOUR properties and create a hash table. - ${WeeklyRecurrentScheduleFridayHour}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${WeeklyRecurrentScheduleIsComplemented}, - - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] - # . - # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEMONDAYHOUR properties and create a hash table. - ${WeeklyRecurrentScheduleMondayHour}, - - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] - # . - # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULESATURDAYHOUR properties and create a hash table. - ${WeeklyRecurrentScheduleSaturdayHour}, - - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] - # . - # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULESUNDAYHOUR properties and create a hash table. - ${WeeklyRecurrentScheduleSundayHour}, - - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] - # . - # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULETHURSDAYHOUR properties and create a hash table. - ${WeeklyRecurrentScheduleThursdayHour}, + ${Id}, - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] + [Parameter(ParameterSetName='ImportExpanded')] + [Parameter(ParameterSetName='ImportViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + [System.String] # . - # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULETUESDAYHOUR properties and create a hash table. - ${WeeklyRecurrentScheduleTuesdayHour}, + ${SerializedHolidayRecord}, - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] + [Parameter(ParameterSetName='ImportExpanded')] + [Parameter(ParameterSetName='ImportViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + [System.String] # . - # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEWEDNESDAYHOUR properties and create a hash table. - ${WeeklyRecurrentScheduleWednesdayHour}, + ${TenantId}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -22063,8 +21570,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineSchedule_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineSchedule_NewExpanded'; + Import = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsAutoAttendantHolidays_Import'; + ImportExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsAutoAttendantHolidays_ImportExpanded'; + ImportViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsAutoAttendantHolidays_ImportViaIdentity'; + ImportViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsAutoAttendantHolidays_ImportViaIdentityExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -22099,65 +21608,123 @@ end { <# .Synopsis - +Store a new Audio file in MSS. +POST api/v3/tenants/tenantId/audiofile. .Description - +Store a new Audio file in MSS. +POST api/v3/tenants/tenantId/audiofile. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseOrderRequest +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantAudioFileDto .Outputs -System.String +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAudioFileDto .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : CmdletReleaseOrderRequest - [EndingNumber ]: - [FileContent ]: - [StartingNumber ]: - [TelephoneNumber ]: +BODY : . + ApplicationId : + Content : + OriginalFilename : + [Id ]: + [ContextId ]: + [ConvertedFilename ]: + [DeletionTimestampOffset ]: + [DownloadUri ]: + [DownloadUriExpiryTimestampOffset ]: + [Duration ]: + [LastAccessedTimestampOffset ]: + [UploadedTimestampOffset ]: .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlinetelephonenumberreleaseorder +https://docs.microsoft.com/en-us/powershell/module/teams/import-csonlineaudiofile #> -function New-CsOnlineTelephoneNumberReleaseOrder { -[OutputType([System.String])] -[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Import-CsOnlineAudioFile { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAudioFileDto])] +[CmdletBinding(DefaultParameterSetName='ImportExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='Import', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseOrderRequest] - # CmdletReleaseOrderRequest + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantAudioFileDto] + # . # To construct, see NOTES section for BODY properties and create a hash table. ${Body}, - [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='ImportExpanded', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${EndingNumber}, + ${ApplicationId}, - [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='ImportExpanded', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${FileContent}, + ${Content}, - [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='ImportExpanded', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${StartingNumber}, + ${FileName}, - [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='ImportExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${TelephoneNumber}, + ${ContextId}, + + [Parameter(ParameterSetName='ImportExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ConvertedFilename}, + + [Parameter(ParameterSetName='ImportExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${DeletionTimestampOffset}, + + [Parameter(ParameterSetName='ImportExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DownloadUri}, + + [Parameter(ParameterSetName='ImportExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${DownloadUriExpiryTimestampOffset}, + + [Parameter(ParameterSetName='ImportExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Duration}, + + [Parameter(ParameterSetName='ImportExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Id}, + + [Parameter(ParameterSetName='ImportExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${LastAccessedTimestampOffset}, + + [Parameter(ParameterSetName='ImportExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${UploadedTimestampOffset}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -22208,8 +21775,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineTelephoneNumberReleaseOrder_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineTelephoneNumberReleaseOrder_NewExpanded'; + Import = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsOnlineAudioFile_Import'; + ImportExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsOnlineAudioFile_ImportExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -22244,53 +21811,40 @@ end { <# .Synopsis -Create a time range draft. -POST Teams.VoiceApps/schedules/time-ranges/draft. +Invokes Custom Handler .Description -Create a time range draft. -POST Teams.VoiceApps/schedules/time-ranges/draft. +Invokes Custom Handler .Example {{ Add code here }} .Example {{ Add code here }} -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTimeRangeRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTimeRangeResponse -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -BODY : . - [End ]: - [Start ]: +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICustomHandlerCallBackOutput .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlinetimerange +https://docs.microsoft.com/en-us/powershell/module/teams/invoke-cscustomhandlercallbackngtprov #> -function New-CsOnlineTimeRange { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTimeRangeResponse])] -[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Invoke-CsCustomHandlerCallBackNgtprov { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICustomHandlerCallBackOutput])] +[CmdletBinding(DefaultParameterSetName='Post', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTimeRangeRequest] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Unique Id of the Handler. + ${Id}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # . - ${End}, + # Callback Operation. + ${Operation}, - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # . - ${Start}, + # EventName for the SendEventPostURI. + ${Eventname}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -22341,8 +21895,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineTimeRange_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineTimeRange_NewExpanded'; + Post = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsCustomHandlerCallBackNgtprov_Post'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -22377,46 +21930,101 @@ end { <# .Synopsis -Create New Bulk Sign in Request +Post DsSync resync cmdlet .Description -Create New Bulk Sign in Request +Post DsSync resync cmdlet .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgBulkSignInRequestItem[] +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDsRequestBody .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgBulkSignInResponse +System.Boolean .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : Array of SDGBulkSignInRequestItem - [HardwareId ]: - [UserName ]: +BODY : Request body for DsSync cmdlet + [DeploymentName ]: Deployment Name + [IsValidationRequest ]: + [ObjectClass ]: Object Class enum + [ObjectId ]: GUID of the user + [ObjectIds ]: + [ReSyncOption ]: ReSync for the given entity + [ScenariosToSuppress ]: Scenarios to Suppress + [ServiceInstance ]: Service Instance of the tenant + [SynchronizeTenantWithAllObject ]: Sync all the users of the tenant .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-cssdgbulksigninrequest +https://docs.microsoft.com/en-us/powershell/module/teams/invoke-csdirectobjectsync #> -function New-CsSdgBulkSignInRequest { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgBulkSignInResponse])] -[CmdletBinding(DefaultParameterSetName='New', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Invoke-CsDirectObjectSync { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='PostExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='Post', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDsRequestBody] + # Request body for DsSync cmdlet + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Target Region where the device is located - ${TargetRegion}, + # Deployment Name + ${DeploymentName}, - [Parameter(Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsValidationRequest}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Object Class enum + ${ObjectClass}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # GUID of the user + ${ObjectId}, + + [Parameter(ParameterSetName='PostExpanded')] [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgBulkSignInRequestItem[]] - # Array of SDGBulkSignInRequestItem - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, + [System.String[]] + # . + ${ObjectIds}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + # ReSync for the given entity + ${ReSyncOption}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Scenarios to Suppress + ${ScenariosToSuppress}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Service Instance of the tenant + ${ServiceInstance}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Sync all the users of the tenant + ${SynchronizeTenantWithAllObject}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -22438,6 +22046,12 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -22467,7 +22081,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsSdgBulkSignInRequest_New'; + Post = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsDirectObjectSync_Post'; + PostExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsDirectObjectSync_PostExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -22502,403 +22117,94 @@ end { <# .Synopsis - +Post resync operation cmdlet .Description - +Post resync operation cmdlet .Example -PS C:\> (Get-CsTeamTemplate -OdataId '/api/teamtemplates/v1.0/com.microsoft.teams.template.AdoptOffice365/Public/en-US') > input.json -# open json in your favorite editor, make changes +{{ Add code here }} +.Example +{{ Add code here }} -PS C:\> New-CsTeamTemplate -Locale en-US -Body (Get-Content '.\input.json' | Out-String) - -{ - "id": "061fe692-7da7-4f65-a57b-0472cf0045af", - "name": "New Template", - "scope": "Tenant", - "shortDescription": "New Description", - "iconUri": "https://statics.teams.cdn.office.net/evergreen-assets/teamtemplates/icons/default_tenant.svg", - "channelCount": 2, - "appCount": 2, - "modifiedOn": "2020-12-10T18:46:52.7231705Z", - "modifiedBy": "6c4445f6-a23d-473c-951d-7474d289c6b3", - "locale": "en-US", - "@odata.id": "/api/teamtemplates/v1.0/061fe692-7da7-4f65-a57b-0472cf0045af/Tenant/en-US" -} -.Example -PS C:\> New-CsTeamTemplate ` --Locale en-US ` --DisplayName 'New Template' ` --ShortDescription 'New Description' ` --App @{id='feda49f8-b9f2-4985-90f0-dd88a8f80ee1'}, @{id='1d71218a-92ad-4254-be15-c5ab7a3e4423'} ` --Channel @{ ` - displayName="General"; ` - id="General"; ` - isFavoriteByDefault=$true; ` -}, ` -@{ ` - displayName="test"; ` - id="b82b7d0a-6bc9-4fd8-bf09-d432e4ea0475"; ` - isFavoriteByDefault=$false; ` -} - - -{ - "id": "061fe692-7da7-4f65-a57b-0472cf0045af", - "name": "New Template", - "scope": "Tenant", - "shortDescription": "New Description", - "iconUri": "https://statics.teams.cdn.office.net/evergreen-assets/teamtemplates/icons/default_tenant.svg", - "channelCount": 2, - "appCount": 2, - "modifiedOn": "2020-12-10T18:46:52.7231705Z", - "modifiedBy": "6c4445f6-a23d-473c-951d-7474d289c6b3", - "locale": "en-US", - "@odata.id": "/api/teamtemplates/v1.0/061fe692-7da7-4f65-a57b-0472cf0045af/Tenant/en-US" -} - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTemplateResponse -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse -.Notes -COMPLEX PARAMETER PROPERTIES +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IResyncRequestBody +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -APP : Gets or sets the set of applications that should be installed in teams created based on the template.The app catalog is the main directory for information about each app; this set is intended only as a reference. - [Id ]: Gets or sets the app's ID in the global apps catalog. - -BODY : The client input for a request to create a template. Only admins from Config Api can perform this request. - DisplayName : Gets or sets the team's DisplayName. - ShortDescription : Gets or sets template short description. - [App ]: Gets or sets the set of applications that should be installed in teams created based on the template. The app catalog is the main directory for information about each app; this set is intended only as a reference. - [Id ]: Gets or sets the app's ID in the global apps catalog. - [Category ]: Gets or sets list of categories. - [Channel ]: Gets or sets the set of channel templates included in the team template. - [Description ]: Gets or sets channel description as displayed to users. - [DisplayName ]: Gets or sets channel name as displayed to users. - [Id ]: Gets or sets identifier for the channel template. - [IsFavoriteByDefault ]: Gets or sets a value indicating whether whether new members of the team should automatically favorite the channel, pinning it for visibility in the UI and using resources to make switching to the channel faster. - [Tab ]: Gets or sets collection of tabs that should be added to the channel. - [Configuration ]: Represents the configuration of a tab. - [ContentUrl ]: Gets or sets the Url used for rendering tab contents in Teams. - [EntityId ]: Gets or sets the identifier for the entity hosted by the tab provider. - [RemoveUrl ]: Gets or sets the Url that is invoked when the user tries to remove a tab from the FE client. - [WebsiteUrl ]: Gets or sets the Url for showing tab contents outside of Teams. - [Id ]: Gets or sets identifier for the channel tab template. - [Key ]: Gets a unique identifier. - [MessageId ]: Gets or sets id used to identify the chat message associated with the tab. - [Name ]: Gets or sets the tab name displayed to users. - [SortOrderIndex ]: Gets or sets index of the order used for sorting tabs. - [TeamsAppId ]: Gets or sets the app's id in the global apps catalog. - [WebUrl ]: Gets or sets the deep link url of the tab instance. - [Classification ]: Gets or sets the team's classification. Tenant admins configure AAD with the set of possible values. - [Description ]: Gets or sets the team's Description. - [DiscoverySetting ]: Governs discoverability of a team. - ShowInTeamsSearchAndSuggestion : Gets or sets value indicating if team is visible within search and suggestions in Teams clients. - [FunSetting ]: Governs use of fun media like giphy and stickers in the team. - AllowCustomMeme : Gets or sets a value indicating whether users are allowed to create and post custom meme images in team conversations. - AllowGiphy : Gets or sets a value indicating whether users can post giphy content in team conversations. - AllowStickersAndMeme : Gets or sets a value indicating whether users can post stickers and memes in team conversations. - GiphyContentRating : Gets or sets the rating filter on giphy content. - [GuestSetting ]: Guest role settings for the team. - AllowCreateUpdateChannel : Gets or sets a value indicating whether guests can create or edit channels in the team. - AllowDeleteChannel : Gets or sets a value indicating whether guests can delete team channels. - [Icon ]: Gets or sets template icon. - [IsMembershipLimitedToOwner ]: Gets or sets whether to limit the membership of the team to owners in the AAD group until an owner "activates" the team. - [MemberSetting ]: Member role settings for the team. - AllowAddRemoveApp : Gets or sets a value indicating whether members can add or remove apps in the team. - AllowCreatePrivateChannel : Gets or Sets a value indicating whether members can create Private channels. - AllowCreateUpdateChannel : Gets or sets a value indicating whether members can create or edit channels in the team. - AllowCreateUpdateRemoveConnector : Gets or sets a value indicating whether members can add, edit, or remove connectors in the team. - AllowCreateUpdateRemoveTab : Gets or sets a value indicating whether members can add, edit or remove pinned tabs in the team. - AllowDeleteChannel : Gets or sets a value indicating whether members can delete team channels. - UploadCustomApp : Gets or sets a value indicating is allowed to upload custom apps. - [MessagingSetting ]: Governs use of messaging features within the team These are settings the team owner should be able to modify from UI after team creation. - AllowChannelMention : Gets or sets a value indicating whether team members can at-mention entire channels in team conversations. - AllowOwnerDeleteMessage : Gets or sets a value indicating whether team owners can delete anyone's messages in team conversations. - AllowTeamMention : Gets or sets a value indicating whether team members can at-mention the entire team in team conversations. - AllowUserDeleteMessage : Gets or sets a value indicating whether team members can delete their own messages in team conversations. - AllowUserEditMessage : Gets or sets a value indicating whether team members can edit their own messages in team conversations. - [OwnerUserObjectId ]: Gets or sets the AAD user object id of the user who should be set as the owner of the new team. Only to be used when an application or administrative user is making the request on behalf of the specified user. - [PublishedBy ]: Gets or sets published name. - [Specialization ]: The specialization or use case describing the team. Used for telemetry/BI, part of the team context exposed to app developers, and for legacy implementations of differentiated features for education. - [TemplateId ]: Gets or sets the id of the base template for the team. Either a Microsoft base template or a custom template. - [Uri ]: Gets or sets uri to be used for GetTemplate api call. - [Visibility ]: Used to control the scope of users who can view a group/team and its members, and ability to join. - -CHANNEL : Gets or sets the set of channel templates included in the team template. - [Description ]: Gets or sets channel description as displayed to users. - [DisplayName ]: Gets or sets channel name as displayed to users. - [Id ]: Gets or sets identifier for the channel template. - [IsFavoriteByDefault ]: Gets or sets a value indicating whether whether new members of the team should automatically favorite the channel, pinning it for visibility in the UI and using resources to make switching to the channel faster. - [Tab ]: Gets or sets collection of tabs that should be added to the channel. - [Configuration ]: Represents the configuration of a tab. - [ContentUrl ]: Gets or sets the Url used for rendering tab contents in Teams. - [EntityId ]: Gets or sets the identifier for the entity hosted by the tab provider. - [RemoveUrl ]: Gets or sets the Url that is invoked when the user tries to remove a tab from the FE client. - [WebsiteUrl ]: Gets or sets the Url for showing tab contents outside of Teams. - [Id ]: Gets or sets identifier for the channel tab template. - [Key ]: Gets a unique identifier. - [MessageId ]: Gets or sets id used to identify the chat message associated with the tab. - [Name ]: Gets or sets the tab name displayed to users. - [SortOrderIndex ]: Gets or sets index of the order used for sorting tabs. - [TeamsAppId ]: Gets or sets the app's id in the global apps catalog. - [WebUrl ]: Gets or sets the deep link url of the tab instance. - -DISCOVERYSETTING : Governs discoverability of a team. - ShowInTeamsSearchAndSuggestion : Gets or sets value indicating if team is visible within search and suggestions in Teams clients. - -FUNSETTING : Governs use of fun media like giphy and stickers in the team. - AllowCustomMeme : Gets or sets a value indicating whether users are allowed to create and post custom meme images in team conversations. - AllowGiphy : Gets or sets a value indicating whether users can post giphy content in team conversations. - AllowStickersAndMeme : Gets or sets a value indicating whether users can post stickers and memes in team conversations. - GiphyContentRating : Gets or sets the rating filter on giphy content. - -GUESTSETTING : Guest role settings for the team. - AllowCreateUpdateChannel : Gets or sets a value indicating whether guests can create or edit channels in the team. - AllowDeleteChannel : Gets or sets a value indicating whether guests can delete team channels. - -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id - [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id - -MEMBERSETTING : Member role settings for the team. - AllowAddRemoveApp : Gets or sets a value indicating whether members can add or remove apps in the team. - AllowCreatePrivateChannel : Gets or Sets a value indicating whether members can create Private channels. - AllowCreateUpdateChannel : Gets or sets a value indicating whether members can create or edit channels in the team. - AllowCreateUpdateRemoveConnector : Gets or sets a value indicating whether members can add, edit, or remove connectors in the team. - AllowCreateUpdateRemoveTab : Gets or sets a value indicating whether members can add, edit or remove pinned tabs in the team. - AllowDeleteChannel : Gets or sets a value indicating whether members can delete team channels. - UploadCustomApp : Gets or sets a value indicating is allowed to upload custom apps. - -MESSAGINGSETTING : Governs use of messaging features within the teamThese are settings the team owner should be able to modify from UI after team creation. - AllowChannelMention : Gets or sets a value indicating whether team members can at-mention entire channels in team conversations. - AllowOwnerDeleteMessage : Gets or sets a value indicating whether team owners can delete anyone's messages in team conversations. - AllowTeamMention : Gets or sets a value indicating whether team members can at-mention the entire team in team conversations. - AllowUserDeleteMessage : Gets or sets a value indicating whether team members can delete their own messages in team conversations. - AllowUserEditMessage : Gets or sets a value indicating whether team members can edit their own messages in team conversations. +BODY : Request body for Resync cmdlet + [IsValidationRequest ]: + [ObjectClass ]: Object Class enum + [ObjectId ]: + [ReSyncOption ]: ReSync for the given entity + [ScenariosToSuppress ]: Scenarios to Suppress + [ServiceInstance ]: Service Instance of the tenant + [SynchronizeTenantWithAllObject ]: Sync all the users of the tenant + [TenantId ]: TenantId GUID .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csteamtemplate +https://docs.microsoft.com/en-us/powershell/module/teams/invoke-csmsodssync #> -function New-CsTeamTemplate { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTemplateResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse])] -[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Invoke-CsMsodsSync { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='PostExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='New', Mandatory)] - [Parameter(ParameterSetName='NewExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${Locale}, - - [Parameter(ParameterSetName='NewViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='NewViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='NewViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='Post', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate] - # The client input for a request to create a template. - # Only admins from Config Api can perform this request. + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IResyncRequestBody] + # Request body for Resync cmdlet # To construct, see NOTES section for BODY properties and create a hash table. ${Body}, - [Parameter(ParameterSetName='NewExpanded', Mandatory)] - [Parameter(ParameterSetName='NewViaIdentityExpanded', Mandatory)] + [Parameter(ParameterSetName='PostExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the team's DisplayName. - ${DisplayName}, + [System.Management.Automation.SwitchParameter] + # . + ${IsValidationRequest}, - [Parameter(ParameterSetName='NewExpanded', Mandatory)] - [Parameter(ParameterSetName='NewViaIdentityExpanded', Mandatory)] + [Parameter(ParameterSetName='PostExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets template short description. - ${ShortDescription}, - - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamsAppTemplate[]] - # Gets or sets the set of applications that should be installed in teams created based on the template.The app catalog is the main directory for information about each app; this set is intended only as a reference. - # To construct, see NOTES section for APP properties and create a hash table. - ${App}, + # Object Class enum + ${ObjectClass}, - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Parameter(ParameterSetName='PostExpanded')] [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String[]] - # Gets or sets list of categories. - ${Category}, - - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IChannelTemplate[]] - # Gets or sets the set of channel templates included in the team template. - # To construct, see NOTES section for CHANNEL properties and create a hash table. - ${Channel}, + # . + ${ObjectId}, - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Parameter(ParameterSetName='PostExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the team's classification.Tenant admins configure AAD with the set of possible values. - ${Classification}, + [System.Int64] + # ReSync for the given entity + ${ReSyncOption}, - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Parameter(ParameterSetName='PostExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the team's Description. - ${Description}, - - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamDiscoverySettings] - # Governs discoverability of a team. - # To construct, see NOTES section for DISCOVERYSETTING properties and create a hash table. - ${DiscoverySetting}, - - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamFunSettings] - # Governs use of fun media like giphy and stickers in the team. - # To construct, see NOTES section for FUNSETTING properties and create a hash table. - ${FunSetting}, - - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamGuestSettings] - # Guest role settings for the team. - # To construct, see NOTES section for GUESTSETTING properties and create a hash table. - ${GuestSetting}, + # Scenarios to Suppress + ${ScenariosToSuppress}, - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Parameter(ParameterSetName='PostExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets template icon. - ${Icon}, + # Service Instance of the tenant + ${ServiceInstance}, - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Parameter(ParameterSetName='PostExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.Management.Automation.SwitchParameter] - # Gets or sets whether to limit the membership of the team to owners in the AAD group until an owner "activates" the team. - ${IsMembershipLimitedToOwner}, - - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMemberSettings] - # Member role settings for the team. - # To construct, see NOTES section for MEMBERSETTING properties and create a hash table. - ${MemberSetting}, - - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMessagingSettings] - # Governs use of messaging features within the teamThese are settings the team owner should be able to modify from UI after team creation. - # To construct, see NOTES section for MESSAGINGSETTING properties and create a hash table. - ${MessagingSetting}, - - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the AAD user object id of the user who should be set as the owner of the new team.Only to be used when an application or administrative user is making the request on behalf of the specified user. - ${OwnerUserObjectId}, - - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets published name. - ${PublishedBy}, - - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The specialization or use case describing the team.Used for telemetry/BI, part of the team context exposed to app developers, and for legacy implementations of differentiated features for education. - ${Specialization}, - - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the id of the base template for the team.Either a Microsoft base template or a custom template. - ${TemplateId}, - - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets uri to be used for GetTemplate api call. - ${Uri}, + # Sync all the users of the tenant + ${SynchronizeTenantWithAllObject}, - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Parameter(ParameterSetName='PostExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Used to control the scope of users who can view a group/team and its members, and ability to join. - ${Visibility}, + # TenantId GUID + ${TenantId}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -22920,6 +22226,12 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -22949,10 +22261,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamTemplate_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamTemplate_NewExpanded'; - NewViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamTemplate_NewViaIdentity'; - NewViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamTemplate_NewViaIdentityExpanded'; + Post = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsMsodsSync_Post'; + PostExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsMsodsSync_PostExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -22987,51 +22297,74 @@ end { <# .Synopsis -Invokes tenant migration +Create a callable entity draft. +POST Teams.VoiceApps/auto-attendants/callable-entities/draft. .Description -Invokes tenant migration +Create a callable entity draft. +POST Teams.VoiceApps/auto-attendants/callable-entities/draft. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantMigration +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallableEntityRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantMigrationResult +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallableEntityResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : Payload for tenant migration - [MoveOption ]: MoveOption can take following values PrepForMove, StartDualSync, Finalize. - [TargetServiceInstance ]: Target service instance where tenant is to be migrated. +BODY : . + [CallPriority ]: + [EnableSharedVoicemailSystemPromptSuppression ]: + [EnableTranscription ]: + [Id ]: + [Type ]: .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-cstenantcrossmigration +https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantcallableentity #> -function New-CsTenantCrossMigration { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantMigrationResult])] +function New-CsAutoAttendantCallableEntity { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallableEntityResponse])] [CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantMigration] - # Payload for tenant migration + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallableEntityRequest] + # . # To construct, see NOTES section for BODY properties and create a hash table. ${Body}, + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${CallPriority}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${EnableSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${EnableTranscription}, + [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # MoveOption can take following values PrepForMove, StartDualSync, Finalize. - ${MoveOption}, + # . + ${Identity}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Target service instance where tenant is to be migrated. - ${TargetServiceInstance}, + # . + ${Type}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -23082,8 +22415,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTenantCrossMigration_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTenantCrossMigration_NewExpanded'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallableEntity_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallableEntity_NewExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -23118,106 +22451,158 @@ end { <# .Synopsis -Adds delegate with validations in bvd +Create a call flow draft. +POST Teams.VoiceApps/auto-attendants/call-flows/draft. .Description -Adds delegate with validations in bvd +Create a call flow draft. +POST Teams.VoiceApps/auto-attendants/call-flows/draft. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallFlowRequest .Outputs -System.Boolean +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallFlowResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id - [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csusercallingdelegate -#> -function New-CsUserCallingDelegate { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='New', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +BODY : . + [ForceListenMenuEnabled ]: + [Greeting ]: + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + [MenuDialByNameEnabled ]: + [MenuDirectorySearchMethod ]: + [MenuName ]: + [MenuOption ]: + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + [MenuPrompt ]: + [Name ]: + +GREETING : . + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + +MENUOPTION : . + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + +MENUPROMPT : . + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantcallflow +#> +function New-CsAutoAttendantCallFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallFlowResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='New', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallFlowRequest] # . - ${Delegate}, + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, - [Parameter(ParameterSetName='New', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] # . - ${Identity}, + ${ForceListenMenuEnabled}, - [Parameter(ParameterSetName='NewViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] + # . + # To construct, see NOTES section for GREETING properties and create a hash table. + ${Greeting}, - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.Management.Automation.SwitchParameter] # . - ${MakeCalls}, + ${MenuDialByNameEnabled}, - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] # . - ${ManageSettings}, + ${MenuDirectorySearchMethod}, - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] # . - ${ReceiveCalls}, + ${MenuName}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMenuOption[]] + # . + # To construct, see NOTES section for MENUOPTION properties and create a hash table. + ${MenuOption}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] + # . + # To construct, see NOTES section for MENUPROMPT properties and create a hash table. + ${MenuPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Name}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -23239,12 +22624,6 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -23274,8 +22653,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsUserCallingDelegate_New'; - NewViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsUserCallingDelegate_NewViaIdentity'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallFlow_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallFlow_NewExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -23310,159 +22689,66 @@ end { <# .Synopsis -Assigns a service number to a bridge. +Create a call handling association draft. +POST Teams.VoiceApps/auto-attendants/call-handling-associations/draft. .Description -Assigns a service number to a bridge. +Create a call handling association draft. +POST Teams.VoiceApps/auto-attendants/call-handling-associations/draft. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallHandlingAssociationRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallHandlingAssociationResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : Class representing ConferencingServiceNumber. - [BridgeId ]: Gets or sets the unique identifier of the Bridge that this ServiceNumber belongs to. - [City ]: Gets or sets the Geocode where the ServiceNumber is intended to be used. - [IsShared ]: Gets or sets a value indicating whether the number is shared between multiple tenants. If this is the case then tenant admins will be unable to edit the number. - [Number ]: Gets or sets the 11 digit number identifying the ServiceNumber. - [PrimaryLanguage ]: Gets or sets the primary language of the ServiceNumber. e.g.: "en-US". - [SecondaryLanguages ]: Gets or sets the list of secondary languages of the ServiceNumber. e.g.: "fr-FR","en-GB","en-IN". - [Type ]: Gets or sets defines the number type Toll/Toll-Free. - -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id - [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id +BODY : . + [CallFlowId ]: + [Enabled ]: + [ScheduleId ]: + [Type ]: .Link -https://docs.microsoft.com/en-us/powershell/module/teams/register-csodcservicenumber +https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantcallhandlingassociation #> -function Register-CsOdcServiceNumber { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber])] -[CmdletBinding(DefaultParameterSetName='RegisterExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function New-CsAutoAttendantCallHandlingAssociation { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallHandlingAssociationResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Register', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Service number to be assigned to a bridge. - # The service number in E.164 format, e.g. - # +14251112222 or tel:+14251112222. - ${Identity}, - - [Parameter(ParameterSetName='RegisterViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # The conferencing bridge identifier to assign the service numbers to. - ${BridgeId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # The conferencing bridge name to assign the service numbers. - ${BridgeName}, - - [Parameter(ParameterSetName='Register1', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber] - # Class representing ConferencingServiceNumber. + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallHandlingAssociationRequest] + # . # To construct, see NOTES section for BODY properties and create a hash table. ${Body}, - [Parameter(ParameterSetName='RegisterExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the unique identifier of the Bridge that this ServiceNumber belongs to. - ${BridgeId1}, - - [Parameter(ParameterSetName='RegisterExpanded')] + [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the Geocode where the ServiceNumber is intended to be used. - ${City}, + # . + ${CallFlowId}, - [Parameter(ParameterSetName='RegisterExpanded')] + [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether the number is shared between multiple tenants. - # If this is the casethen tenant admins will be unable to edit the number. - ${IsShared}, - - [Parameter(ParameterSetName='RegisterExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the 11 digit number identifying the ServiceNumber. - ${Number}, + # . + ${Enabled}, - [Parameter(ParameterSetName='RegisterExpanded')] + [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the primary language of the ServiceNumber. - # e.g.: "en-US". - ${PrimaryLanguage}, - - [Parameter(ParameterSetName='RegisterExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # Gets or sets the list of secondary languages of the ServiceNumber. - # e.g.: "fr-FR","en-GB","en-IN". - ${SecondaryLanguage}, + # . + ${ScheduleId}, - [Parameter(ParameterSetName='RegisterExpanded')] + [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets defines the number type Toll/Toll-Free. + # . ${Type}, [Parameter(DontShow)] @@ -23514,10 +22800,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Register = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Register-CsOdcServiceNumber_Register'; - Register1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Register-CsOdcServiceNumber_Register1'; - RegisterExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Register-CsOdcServiceNumber_RegisterExpanded'; - RegisterViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Register-CsOdcServiceNumber_RegisterViaIdentity'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallHandlingAssociation_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallHandlingAssociation_NewExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -23552,84 +22836,47 @@ end { <# .Synopsis -Deletes a specific AutoAttendant. -DELETE Teams.VoiceApps/auto-attendants/identity. +Create a group dial scope draft. +POST Teams.VoiceApps/auto-attendants/group-dial-scopes/draft. .Description -Deletes a specific AutoAttendant. -DELETE Teams.VoiceApps/auto-attendants/identity. +Create a group dial scope draft. +POST Teams.VoiceApps/auto-attendants/group-dial-scopes/draft. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateGroupDialScopeRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateGroupDialScopeResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id - [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id +BODY : . + [GroupId ]: .Link -https://docs.microsoft.com/en-us/powershell/module/teams/remove-csautoattendant +https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantdialscope #> -function Remove-CsAutoAttendant { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] -[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function New-CsAutoAttendantDialScope { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateGroupDialScopeResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Remove', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Id for the auto attendant to be removed. - ${Identity}, + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateGroupDialScopeRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, - [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${GroupIds}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -23680,8 +22927,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsAutoAttendant_Remove'; - RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsAutoAttendant_RemoveViaIdentity'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantDialScope_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantDialScope_NewExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -23716,252 +22963,166 @@ end { <# .Synopsis -Remove call queue. -DELETE Teams.VoiceApps/callqueues/identity. +Create a menu option draft. +POST Teams.VoiceApps/auto-attendants/menus/menu-options/draft. .Description -Remove call queue. -DELETE Teams.VoiceApps/callqueues/identity. +Create a menu option draft. +POST Teams.VoiceApps/auto-attendants/menus/menu-options/draft. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuOptionRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuOptionResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id - [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id +BODY : . + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: .Link -https://docs.microsoft.com/en-us/powershell/module/teams/remove-cscallqueue +https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantmenuoption #> -function Remove-CsCallQueue { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] -[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function New-CsAutoAttendantMenuOption { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuOptionResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Remove', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuOptionRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${Identity}, + ${Action}, - [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${AgentTarget}, - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${AgentTargetTagTemplateId}, - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${AgentTargetType}, - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsCallQueue_Remove'; - RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsCallQueue_RemoveViaIdentity'; - } + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${AudioFilePromptDownloadUri}, - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${AudioFilePromptFileName}, - throw - } -} + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${AudioFilePromptId}, -process { - try { - $steppablePipeline.Process($_) - } catch { + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${CallTargetCallPriority}, - throw - } + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${CallTargetEnableSharedVoicemailSystemPromptSuppression}, -} -end { - try { - $steppablePipeline.End() + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${CallTargetEnableTranscription}, - } catch { + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CallTargetId}, - throw - } -} -} + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CallTargetType}, -<# -.Synopsis -Delete Configuration -.Description -Delete Configuration -.Example -{{ Add code here }} -.Example -{{ Add code here }} + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Description}, -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DtmfResponse}, -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${MainlineAttendantTarget}, -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id - [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/remove-csconfiguration -#> -function Remove-CsConfiguration { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Delete', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${ConfigName}, + ${PromptActiveType}, - [Parameter(ParameterSetName='Delete', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${ConfigType}, + ${PromptTextToSpeechPrompt}, - [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${VoiceResponses}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -23983,12 +23144,6 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -24018,8 +23173,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Delete = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsConfiguration_Delete'; - DeleteViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsConfiguration_DeleteViaIdentity'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantMenuOption_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantMenuOption_NewExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -24054,84 +23209,128 @@ end { <# .Synopsis -Remove application instance associations. -DELETE api/v1.0/tenants/tenantId/applicationinstanceassociations/endpointId. +Create a menu draft. +POST Teams.VoiceApps/auto-attendants/menus/draft. .Description -Remove application instance associations. -DELETE api/v1.0/tenants/tenantId/applicationinstanceassociations/endpointId. +Create a menu draft. +POST Teams.VoiceApps/auto-attendants/menus/draft. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IRemoveApplicationInstanceAssociationsResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id - [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id +BODY : . + [DialByNameEnabled ]: + [DirectorySearchMethod ]: + [MenuOption ]: + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + [Name ]: + [Prompt ]: + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + +MENUOPTION : . + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + +PROMPT : . + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: .Link -https://docs.microsoft.com/en-us/powershell/module/teams/remove-csonlineapplicationinstanceassociation +https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantmenu #> -function Remove-CsOnlineApplicationInstanceAssociation { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IRemoveApplicationInstanceAssociationsResponse])] -[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function New-CsAutoAttendantMenu { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Remove', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Application instance Id. - ${Identity}, + # . + ${DirectorySearchMethod}, - [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${EnableDialByName}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMenuOption[]] + # . + # To construct, see NOTES section for MENUOPTION properties and create a hash table. + ${MenuOption}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Name}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] + # . + # To construct, see NOTES section for PROMPT properties and create a hash table. + ${Prompt}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -24182,8 +23381,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineApplicationInstanceAssociation_Remove'; - RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineApplicationInstanceAssociation_RemoveViaIdentity'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantMenu_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantMenu_NewExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -24218,90 +23417,74 @@ end { <# .Synopsis -Delete an audio file stored in MSS. -DELETE api/v3/tenants/tenantId/audiofile/appId/audiofileId +Create a prompt draft. +POST Teams.VoiceApps/auto-attendants/prompts/draft. .Description -Delete an audio file stored in MSS. -DELETE api/v3/tenants/tenantId/audiofile/appId/audiofileId +Create a prompt draft. +POST Teams.VoiceApps/auto-attendants/prompts/draft. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreatePromptRequest .Outputs -System.Boolean +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreatePromptResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id - [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id +BODY : . + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: .Link -https://docs.microsoft.com/en-us/powershell/module/teams/remove-csonlineaudiofile +https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantprompt #> -function Remove-CsOnlineAudioFile { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function New-CsAutoAttendantPrompt { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreatePromptResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Remove', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreatePromptRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${ApplicationId}, + ${ActiveType}, - [Parameter(ParameterSetName='Remove', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${Identity}, + ${AudioFilePromptDownloadUri}, - [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${AudioFilePromptFileName}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${AudioFilePromptId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${TextToSpeechPrompt}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -24323,12 +23506,6 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -24358,8 +23535,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineAudioFile_Remove'; - RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineAudioFile_RemoveViaIdentity'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantPrompt_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantPrompt_NewExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -24394,84 +23571,375 @@ end { <# .Synopsis -Deletes a specific schedule. -DELETE Teams.VoiceApps/schedules/identity. +Create an AutoAttendant. +POST Teams.VoiceApps/auto-attendants. .Description -Deletes a specific schedule. -DELETE Teams.VoiceApps/schedules/identity. +Create an AutoAttendant. +POST Teams.VoiceApps/auto-attendants. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAutoAttendantRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAutoAttendantResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id - [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. +BODY : . + [AuthorizedUser ]: + [CallFlow ]: + [ForceListenMenuEnabled ]: + [Greeting ]: + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + [Id ]: + [MenuDialByNameEnabled ]: + [MenuDirectorySearchMethod ]: + [MenuName ]: + [MenuOption ]: + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + [MenuPrompt ]: + [Name ]: + [CallHandlingAssociation ]: + [CallFlowId ]: + [Enabled ]: + [Priority ]: + [ScheduleId ]: + [Type ]: + [DefaultCallFlowForceListenMenuEnabled ]: + [DefaultCallFlowGreeting ]: + [DefaultCallFlowId ]: + [DefaultCallFlowName ]: + [ExclusionScopeGroupDialScopeGroupId ]: + [ExclusionScopeType ]: + [HideAuthorizedUser ]: Gets or sets hidden authorized user ids. + [InclusionScopeGroupDialScopeGroupId ]: + [InclusionScopeType ]: + [LanguageId ]: + [MainlineAttendantAgentVoiceId ]: + [MainlineAttendantEnabled ]: + [MenuDialByNameEnabled ]: + [MenuDirectorySearchMethod ]: + [MenuName ]: + [MenuOption ]: + [MenuPrompt ]: + [Name ]: + [OperatorCallPriority ]: + [OperatorEnableSharedVoicemailSystemPromptSuppression ]: + [OperatorEnableTranscription ]: + [OperatorId ]: + [OperatorType ]: + [TimeZoneId ]: + [UserNameExtension ]: + [VoiceId ]: + [VoiceResponseEnabled ]: + +CALLFLOW : . + [ForceListenMenuEnabled ]: + [Greeting ]: + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id + [MenuDialByNameEnabled ]: + [MenuDirectorySearchMethod ]: + [MenuName ]: + [MenuOption ]: + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + [MenuPrompt ]: + [Name ]: + +CALLHANDLINGASSOCIATION : . + [CallFlowId ]: + [Enabled ]: + [Priority ]: + [ScheduleId ]: + [Type ]: + +DEFAULTCALLFLOWGREETING : . + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + +MENUOPTION : . + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + +MENUPROMPT : . + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: .Link -https://docs.microsoft.com/en-us/powershell/module/teams/remove-csonlineschedule +https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendant #> -function Remove-CsOnlineSchedule { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] -[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function New-CsAutoAttendant { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAutoAttendantResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Remove', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAutoAttendantRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${AuthorizedUser}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallFlow[]] + # . + # To construct, see NOTES section for CALLFLOW properties and create a hash table. + ${CallFlow}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallHandlingAssociation[]] + # . + # To construct, see NOTES section for CALLHANDLINGASSOCIATION properties and create a hash table. + ${CallHandlingAssociation}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${DefaultCallFlowForceListenMenuEnabled}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] + # . + # To construct, see NOTES section for DEFAULTCALLFLOWGREETING properties and create a hash table. + ${DefaultCallFlowGreeting}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Id for the schedule to be removed. - ${Identity}, + # . + ${DefaultCallFlowId}, - [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DefaultCallFlowName}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${EnableMainlineAttendant}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${EnableVoiceResponse}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${ExclusionScopeGroupDialScopeGroupId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ExclusionScopeType}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets hidden authorized user ids. + ${HideAuthorizedUser}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${InclusionScopeGroupDialScopeGroupId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${InclusionScopeType}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${LanguageId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${MainlineAttendantAgentVoiceId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${MenuDialByNameEnabled}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${MenuDirectorySearchMethod}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${MenuName}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMenuOption[]] + # . + # To construct, see NOTES section for MENUOPTION properties and create a hash table. + ${MenuOption}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] + # . + # To construct, see NOTES section for MENUPROMPT properties and create a hash table. + ${MenuPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Name}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${OperatorCallPriority}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${OperatorEnableSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${OperatorEnableTranscription}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${OperatorId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${OperatorType}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${TimeZoneId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${UserNameExtension}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${VoiceId}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -24522,8 +23990,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineSchedule_Remove'; - RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineSchedule_RemoveViaIdentity'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendant_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendant_NewExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -24558,47 +24026,51 @@ end { <# .Synopsis - +Starts Deployment at Scale .Description - +Starts Deployment at Scale .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseRequest -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseOrderResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IFlwoServiceModelsFlwosBatchRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtErrorResponseDetails +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IFlwoServiceModelsFlwosBatchRequestResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : CmdletReleaseRequest - [TelephoneNumber ]: +BODY : . + DeploymentCsv : + [UsersToNotify ]: .Link -https://docs.microsoft.com/en-us/powershell/module/teams/remove-csonlinetelephonenumberprivate +https://docs.microsoft.com/en-us/powershell/module/teams/new-csbatchteamsdeployment #> -function Remove-CsOnlineTelephoneNumberPrivate { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseOrderResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtErrorResponseDetails])] -[CmdletBinding(DefaultParameterSetName='RemoveExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function New-CsBatchTeamsDeployment { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IFlwoServiceModelsFlwosBatchRequestResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Remove', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseRequest] - # CmdletReleaseRequest + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IFlwoServiceModelsFlwosBatchRequest] + # . # To construct, see NOTES section for BODY properties and create a hash table. ${Body}, - [Parameter(ParameterSetName='RemoveExpanded')] - [AllowEmptyCollection()] + [Parameter(ParameterSetName='NewExpanded', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] + [System.String] # . - ${TelephoneNumber}, + ${DeploymentCsv}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${UsersToNotify}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -24649,8 +24121,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineTelephoneNumberPrivate_Remove'; - RemoveExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineTelephoneNumberPrivate_RemoveExpanded'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsBatchTeamsDeployment_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsBatchTeamsDeployment_NewExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -24685,108 +24157,10890 @@ end { <# .Synopsis - +Create call queue. +POST Teams.VoiceApps/callqueues. .Description - +Create call queue. +POST Teams.VoiceApps/callqueues. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallQueueRequest .Outputs -System.Boolean +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallQueueResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id - [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/remove-csphonenumberassignment -#> -function Remove-CsPhoneNumberAssignment { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Remove', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${Identity}, - - [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${PhoneNumber}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${PhoneNumberType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # . - ${RemoveAll}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, +AGENT : Gets or sets the Call Queue's agents list. + [ObjectId ]: + [OptIn ]: - [Parameter(DontShow)] +BODY : CallQueue creation request DTO class. + [Agent ]: Gets or sets the Call Queue's agents list. + [ObjectId ]: + [OptIn ]: + [AgentAlertTime ]: Gets or sets the number of seconds that a call can remain unanswered. + [AllowOptOut ]: Gets or sets a value indicating whether to allow agent optout on CallQueue. + [AuthorizedUser ]: Gets or sets authorized user ids. + [CallToAgentRatioThresholdBeforeOfferingCallback ]: + [CallbackEmailNotificationTarget ]: Gets or sets the callback email notification target. + [CallbackOfferAudioFilePromptResourceId ]: + [CallbackOfferTextToSpeechPrompt ]: + [CallbackRequestDtmf ]: + [ComplianceRecordingForCallQueueId ]: Gets or Sets the Id for Compliance Recording template for Callqueue. + [ConferenceMode ]: Gets or sets a value indicating whether to allow Conference Mode on CallQueue. + [CustomAudioFileAnnouncementForCr ]: Gets or sets the custom audio file announcement for compliance recording. + [CustomAudioFileAnnouncementForCrFailure ]: Gets or sets the custom audio file announcement for compliance recording if CR bot is unable to join the call. + [DistributionList ]: Gets or sets the Call Queue's Distribution Lists. + [EnableNoAgentSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. + [EnableNoAgentSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. + [EnableOverflowSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. + [EnableOverflowSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. + [EnableResourceAccountsForObo ]: Gets or sets a value indicating whether to allow CQ+Chanined RA's as permissioned RA's. + [EnableTimeoutSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. + [EnableTimeoutSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. + [HideAuthorizedUser ]: Gets or sets hidden authorized user ids. + [IsCallbackEnabled ]: + [LanguageId ]: Gets or sets the language Id used for TTS. + [MusicOnHoldAudioFileId ]: Gets or sets music on hold audio file id. + [Name ]: Gets or sets The Call Queue's name. + [NoAgentAction ]: Gets or sets the action to take if the NoAgent is LoggedIn/OptedIn. + [NoAgentActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of no agent. + [NoAgentActionTarget ]: Gets or sets the target of the NoAgent action. + [NoAgentApplyTo ]: Determines whether NoAgentAction is to be applied to All Calls or New Calls only. + [NoAgentDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on NoAgent. + [NoAgentDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on NoAgent. + [NoAgentRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on NoAgent. + [NoAgentRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on NoAgent. + [NoAgentRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on NoAgent. + [NoAgentRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on NoAgent. + [NoAgentRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on NoAgent. + [NoAgentRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on NoAgent. + [NoAgentRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on NoAgent. + [NoAgentRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on NoAgent. + [NoAgentSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemail. + [NoAgentSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. + [NumberOfCallsInQueueBeforeOfferingCallback ]: + [OboResourceAccountId ]: Gets or sets the Obo resource account ids. + [OverflowAction ]: Gets or sets the action to take when the overflow threshold is reached. + [OverflowActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of overflow. + [OverflowActionTarget ]: Gets or sets the target of the overflow action. + [OverflowDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on overflow. + [OverflowDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on overflow. + [OverflowRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on overflow. + [OverflowRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on overflow. + [OverflowRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on overflow. + [OverflowRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on overflow. + [OverflowRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on overflow. + [OverflowRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on overflow. + [OverflowRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on overflow. + [OverflowRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on overflow. + [OverflowSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemai. + [OverflowSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. + [OverflowThreshold ]: Gets or sets the number of simultaneous calls that can be in the queue at any one time. + [PresenceAwareRouting ]: Gets or sets a value indicating whether to enable presence aware routing. + [RoutingMethod ]: Gets or sets the routing method for the Call Queue. + [ServiceLevelThresholdResponseTimeInSecond ]: + [SharedCallQueueHistoryId ]: Gets or sets the Shared Call Queue History template. + [ShiftsSchedulingGroupId ]: Gets or sets the Shifts Scheduling Group to use as Call queues answer target. + [ShiftsTeamId ]: Gets or sets the Shifts Team to use as Call queues answer target. + [ShouldOverwriteCallableChannelProperty ]: Gets or sets ShouldOverwriteCallableChannelProperty flag that indicates user intention to whether overwirte the current callableChannel property value on chat service or not. + [TextAnnouncementForCr ]: Gets or sets the text announcement for compliance recording. + [TextAnnouncementForCrFailure ]: Gets or sets the text announcemet that is played if CR bot is unable to join the call. + [ThreadId ]: Gets or sets teams channel thread id if user choose to sync CQ with a channel. + [TimeoutAction ]: Gets or sets the action to take if the timeout threshold is reached. + [TimeoutActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of timeout. + [TimeoutActionTarget ]: Gets or sets the target of the timeout action. + [TimeoutDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on Timeout. + [TimeoutDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on Timeout. + [TimeoutRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on Timeout. + [TimeoutRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on Timeout. + [TimeoutRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on Timeout. + [TimeoutRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on Timeout. + [TimeoutRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on Timeout. + [TimeoutRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on Timeout. + [TimeoutRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on Timeout. + [TimeoutRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on Timeout. + [TimeoutSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemai. + [TimeoutSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. + [TimeoutThreshold ]: Gets or sets the number of minutes that a call can be in the queue before it times out. + [UseDefaultMusicOnHold ]: Gets or sets a value indicating whether to use default music on hold audio file. + [User ]: Gets or sets the Call Queue's Users. + [WaitTimeBeforeOfferingCallbackInSecond ]: + [WelcomeMusicAudioFileId ]: Gets or sets welcome music audio file id. + [WelcomeTextToSpeechPrompt ]: Gets or sets welcome text to speech content. +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-cscallqueue +#> +function New-CsCallQueue { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallQueueResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${ChannelUserObjectId}, + + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallQueueRequest] + # CallQueue creation request DTO class. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAgent[]] + # Gets or sets the Call Queue's agents list. + # To construct, see NOTES section for AGENT properties and create a hash table. + ${Agent}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the number of seconds that a call can remain unanswered. + ${AgentAlertTime}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to allow agent optout on CallQueue. + ${AllowOptOut}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets authorized user ids. + ${AuthorizedUsers}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${CallToAgentRatioThresholdBeforeOfferingCallback}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the callback email notification target. + ${CallbackEmailNotificationTarget}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CallbackOfferAudioFilePromptResourceId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CallbackOfferTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CallbackRequestDtmf}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or Sets the Id for Compliance Recording template for Callqueue. + ${ComplianceRecordingForCallQueueTemplateId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to allow Conference Mode on CallQueue. + ${ConferenceMode}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the custom audio file announcement for compliance recording. + ${CustomAudioFileAnnouncementForCr}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the custom audio file announcement for compliance recording if CR bot is unable to join the call. + ${CustomAudioFileAnnouncementForCrFailure}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets the Call Queue's Distribution Lists. + ${DistributionLists}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if system message should be suppressed or not. + ${EnableNoAgentSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if transcription should be turned on or not. + ${EnableNoAgentSharedVoicemailTranscription}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if system message should be suppressed or not. + ${EnableOverflowSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if transcription should be turned on or not. + ${EnableOverflowSharedVoicemailTranscription}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to allow CQ+Chanined RA's as permissioned RA's. + ${EnableResourceAccountsForObo}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if system message should be suppressed or not. + ${EnableTimeoutSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if transcription should be turned on or not. + ${EnableTimeoutSharedVoicemailTranscription}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets hidden authorized user ids. + ${HideAuthorizedUsers}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsCallbackEnabled}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the language Id used for TTS. + ${LanguageId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets music on hold audio file id. + ${MusicOnHoldAudioFileId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets The Call Queue's name. + ${Name}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the action to take if the NoAgent is LoggedIn/OptedIn. + ${NoAgentAction}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of no agent. + ${NoAgentActionCallPriority}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the target of the NoAgent action. + ${NoAgentActionTarget}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Determines whether NoAgentAction is to be applied to All Calls or New Calls only. + ${NoAgentApplyTo}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is disconnected on NoAgent. + ${NoAgentDisconnectAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is disconnected on NoAgent. + ${NoAgentDisconnectTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to person on NoAgent. + ${NoAgentRedirectPersonAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to person on NoAgent. + ${NoAgentRedirectPersonTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to phone number on NoAgent. + ${NoAgentRedirectPhoneNumberAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to phone number on NoAgent. + ${NoAgentRedirectPhoneNumberTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voiceapp on NoAgent. + ${NoAgentRedirectVoiceAppAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voiceapp on NoAgent. + ${NoAgentRedirectVoiceAppTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voicemail on NoAgent. + ${NoAgentRedirectVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voicemail on NoAgent. + ${NoAgentRedirectVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when forwarding callers to shared voicemail. + ${NoAgentSharedVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when forwarding callers to shared voicemail. + ${NoAgentSharedVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${NumberOfCallsInQueueBeforeOfferingCallback}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets the Obo resource account ids. + ${OboResourceAccountIds}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the action to take when the overflow threshold is reached. + ${OverflowAction}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of overflow. + ${OverflowActionCallPriority}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the target of the overflow action. + ${OverflowActionTarget}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is disconnected on overflow. + ${OverflowDisconnectAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is disconnected on overflow. + ${OverflowDisconnectTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to person on overflow. + ${OverflowRedirectPersonAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to person on overflow. + ${OverflowRedirectPersonTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to phone number on overflow. + ${OverflowRedirectPhoneNumberAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to phone number on overflow. + ${OverflowRedirectPhoneNumberTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voiceapp on overflow. + ${OverflowRedirectVoiceAppAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voiceapp on overflow. + ${OverflowRedirectVoiceAppTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voicemail on overflow. + ${OverflowRedirectVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voicemail on overflow. + ${OverflowRedirectVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when forwarding callers to shared voicemai. + ${OverflowSharedVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when forwarding callers to shared voicemail. + ${OverflowSharedVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the number of simultaneous calls that can be in the queue at any one time. + ${OverflowThreshold}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to enable presence aware routing. + ${PresenceAwareRouting}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the routing method for the Call Queue. + ${RoutingMethod}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${ServiceLevelThresholdResponseTimeInSecond}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the Shared Call Queue History template. + ${SharedCallQueueHistoryTemplateId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the Shifts Scheduling Group to use as Call queues answer target. + ${ShiftsSchedulingGroupId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the Shifts Team to use as Call queues answer target. + ${ShiftsTeamId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets ShouldOverwriteCallableChannelProperty flag that indicates user intention to whether overwirte the current callableChannel property value on chat service or not. + ${ShouldOverwriteCallableChannelProperty}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the text announcement for compliance recording. + ${TextAnnouncementForCr}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the text announcemet that is played if CR bot is unable to join the call. + ${TextAnnouncementForCrFailure}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets teams channel thread id if user choose to sync CQ with a channel. + ${ThreadId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the action to take if the timeout threshold is reached. + ${TimeoutAction}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of timeout. + ${TimeoutActionCallPriority}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the target of the timeout action. + ${TimeoutActionTarget}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is disconnected on Timeout. + ${TimeoutDisconnectAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is disconnected on Timeout. + ${TimeoutDisconnectTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to person on Timeout. + ${TimeoutRedirectPersonAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to person on Timeout. + ${TimeoutRedirectPersonTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to phone number on Timeout. + ${TimeoutRedirectPhoneNumberAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to phone number on Timeout. + ${TimeoutRedirectPhoneNumberTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voiceapp on Timeout. + ${TimeoutRedirectVoiceAppAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voiceapp on Timeout. + ${TimeoutRedirectVoiceAppTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voicemail on Timeout. + ${TimeoutRedirectVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voicemail on Timeout. + ${TimeoutRedirectVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when forwarding callers to shared voicemai. + ${TimeoutSharedVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when forwarding callers to shared voicemail. + ${TimeoutSharedVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the number of minutes that a call can be in the queue before it times out. + ${TimeoutThreshold}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to use default music on hold audio file. + ${UseDefaultMusicOnHold}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets the Call Queue's Users. + ${Users}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${WaitTimeBeforeOfferingCallbackInSecond}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets welcome music audio file id. + ${WelcomeMusicAudioFileId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets welcome text to speech content. + ${WelcomeTextToSpeechPrompt}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsCallQueue_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsCallQueue_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Create compliance recording template POST /Teams.VoiceApps/compliance-recording. +.Description +Create compliance recording template POST /Teams.VoiceApps/compliance-recording. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateComplianceRecordingForCallQueueRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateComplianceRecordingForCallQueueResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : Request model for creating a compliance recording. + [BotId ]: Gets or sets the MRI of the first bot. + [ConcurrentInvitationCount ]: Gets or sets the number of concurrent invitations allowed. + [Description ]: Gets or sets the description of the compliance recording. + [Name ]: Gets or sets the name of the compliance recording. + [PairedApplication ]: Gets or sets the paired applications for the compliance recording bot. This is a resiliency feature that allows invitation of another bot. If either of BotMRI or the paired application is available, we will consider the call to be successful. + [RequiredBeforeCall ]: Gets or sets a value indicating whether the compliance recording is required before the call. + [RequiredDuringCall ]: Gets or sets a value indicating whether the compliance recording is required during the call. +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-cscompliancerecordingforcallqueuetemplate +#> +function New-CsComplianceRecordingForCallQueueTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateComplianceRecordingForCallQueueResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateComplianceRecordingForCallQueueRequest] + # Request model for creating a compliance recording. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the MRI of the first bot. + ${BotApplicationInstanceObjectId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the number of concurrent invitations allowed. + ${ConcurrentInvitationCount}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the description of the compliance recording. + ${Description}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the name of the compliance recording. + ${Name}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the paired applications for the compliance recording bot. + # This is a resiliency feature that allows invitation of another bot.If either of BotMRI or the paired application is available, we will consider the call to be successful. + ${PairedApplicationInstanceObjectId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether the compliance recording is required before the call. + ${RequiredBeforeCall}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether the compliance recording is required during the call. + ${RequiredDuringCall}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsComplianceRecordingForCallQueueTemplate_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsComplianceRecordingForCallQueueTemplate_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Create new configuration +.Description +Create new configuration +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [(Any) ]: This indicates any property can be added to this object. + Identity : + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csconfiguration +#> +function New-CsConfiguration { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Create', Mandatory)] + [Parameter(ParameterSetName='CreateExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ConfigType}, + + [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Api Version + ${ApiVersion}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SchemaVersion}, + + [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='CreateExpanded', Mandatory)] + [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='CreateExpanded')] + [Parameter(ParameterSetName='CreateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Collections.Hashtable] + # Additional Parameters + ${AdditionalProperties}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Create = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsConfiguration_Create'; + CreateExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsConfiguration_CreateExpanded'; + CreateViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsConfiguration_CreateViaIdentity'; + CreateViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsConfiguration_CreateViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Create a policy package +.Description +Create a policy package +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +POLICYLIST : . + PolicyName : + PolicyType : +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-cscustompolicypackage +#> +function New-CsCustomPolicyPackage { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Identity}, + + [Parameter(Mandatory)] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsRequestsPolicyTypeAndName[]] + # . + # To construct, see NOTES section for POLICYLIST properties and create a hash table. + ${PolicyList}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Description}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsCustomPolicyPackage_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Create apointment booking flow for mainline attendant POST api/v1.0/tenants/tenantId/mainline-attendant-flow/appointment-booking. +.Description +Create apointment booking flow for mainline attendant POST api/v1.0/tenants/tenantId/mainline-attendant-flow/appointment-booking. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAppointmentBookingFlowRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAppointmentBookingFlowResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [ApiAuthenticationType ]: Gets or sets the api authentication type, allowed values: Basic, ApiKey, BearerTokenStatic, BearerTokenDynamic. + [ApiDefinition ]: Gets or sets the detailed definitions of the api. + [CallerAuthenticationMethod ]: Gets or sets the caller authentication method, allowed values: Sms, Email, VerificationLink, Voiceprint, UserDetails. + [Description ]: Gets or sets the description of the mainline attendant appointment booking flow. + [Name ]: Gets or sets the name of the mainline attendant appointment booking flow. +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csmainlineattendantappointmentbookingflow +#> +function New-CsMainlineAttendantAppointmentBookingFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAppointmentBookingFlowResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAppointmentBookingFlowRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the api authentication type, allowed values: Basic, ApiKey, BearerTokenStatic, BearerTokenDynamic. + ${ApiAuthenticationType}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the detailed definitions of the api. + ${ApiDefinitions}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the caller authentication method, allowed values: Sms, Email, VerificationLink, Voiceprint, UserDetails. + ${CallerAuthenticationMethod}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the description of the mainline attendant appointment booking flow. + ${Description}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the name of the mainline attendant appointment booking flow. + ${Name}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsMainlineAttendantAppointmentBookingFlow_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsMainlineAttendantAppointmentBookingFlow_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Create question and answer flow for mainline attendant POST api/v1.0/tenants/tenantId/mainline-attendant-flow/question-answer. +.Description +Create question and answer flow for mainline attendant POST api/v1.0/tenants/tenantId/mainline-attendant-flow/question-answer. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateQuestionAnswerFlowRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateQuestionAnswerFlowResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [ApiAuthenticationType ]: Gets or sets the api authentication type, allowed values: Basic, ApiKey, BearerTokenStatic, BearerTokenDynamic. + [Description ]: Gets or sets the description of the mainline attendant question and answer flow. + [KnowledgeBase ]: Gets or sets the detailed definitions of the knowledge base. + [Name ]: Gets or sets the name of the mainline attendant question and answer flow. +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csmainlineattendantquestionanswerflow +#> +function New-CsMainlineAttendantQuestionAnswerFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateQuestionAnswerFlowResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateQuestionAnswerFlowRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the api authentication type, allowed values: Basic, ApiKey, BearerTokenStatic, BearerTokenDynamic. + ${ApiAuthenticationType}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the description of the mainline attendant question and answer flow. + ${Description}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the detailed definitions of the knowledge base. + ${KnowledgeBase}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the name of the mainline attendant question and answer flow. + ${Name}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsMainlineAttendantQuestionAnswerFlow_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsMainlineAttendantQuestionAnswerFlow_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Create application instance associations. +POST Teams.VoiceApps/applicationinstanceassociations. +.Description +Create application instance associations. +POST Teams.VoiceApps/applicationinstanceassociations. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateApplicationInstanceAssociationsRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateApplicationInstanceAssociationsResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [CallPriority ]: + [ConfigurationId ]: + [ConfigurationType ]: + [EndpointsId ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlineapplicationinstanceassociation +#> +function New-CsOnlineApplicationInstanceAssociation { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateApplicationInstanceAssociationsResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateApplicationInstanceAssociationsRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${CallPriority}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ConfigurationId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ConfigurationType}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${Identities}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineApplicationInstanceAssociation_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineApplicationInstanceAssociation_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Create a date time range draft. +POST Teams.VoiceApps/schedules/date-time-ranges/draft. +.Description +Create a date time range draft. +POST Teams.VoiceApps/schedules/date-time-ranges/draft. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateDateTimeRangeRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateDateTimeRangeResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [End ]: + [Start ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlinedatetimerange +#> +function New-CsOnlineDateTimeRange { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateDateTimeRangeResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateDateTimeRangeRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${End}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Start}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineDateTimeRange_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineDateTimeRange_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis + +.Description + +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletDirectRoutingNumberCreationRequest +.Outputs +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : CmdletDirectRoutingNumberCreationRequest + [Description ]: + [EndingNumber ]: + [FileContent ]: + [StartingNumber ]: + [TelephoneNumber ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlinedirectroutingtelephonenumberuploadorder +#> +function New-CsOnlineDirectRoutingTelephoneNumberUploadOrder { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletDirectRoutingNumberCreationRequest] + # CmdletDirectRoutingNumberCreationRequest + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Description}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${EndingNumber}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${FileContent}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${StartingNumber}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${TelephoneNumber}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineDirectRoutingTelephoneNumberUploadOrder_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineDirectRoutingTelephoneNumberUploadOrder_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Create a schedule. +POST Teams.VoiceApps/schedules. +.Description +Create a schedule. +POST Teams.VoiceApps/schedules. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateScheduleRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateScheduleResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [FixedScheduleDateTimeRange ]: + [End ]: + [Start ]: + [Name ]: + [RecurrenceRangeEnd ]: + [RecurrenceRangeNumberOfOccurrence ]: + [RecurrenceRangeStart ]: + [RecurrenceRangeType ]: + [WeeklyRecurrentScheduleFridayHour ]: + [End ]: + [Start ]: + [WeeklyRecurrentScheduleIsComplemented ]: + [WeeklyRecurrentScheduleMondayHour ]: + [WeeklyRecurrentScheduleSaturdayHour ]: + [WeeklyRecurrentScheduleSundayHour ]: + [WeeklyRecurrentScheduleThursdayHour ]: + [WeeklyRecurrentScheduleTuesdayHour ]: + [WeeklyRecurrentScheduleWednesdayHour ]: + +FIXEDSCHEDULEDATETIMERANGE : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULEFRIDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULEMONDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULESATURDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULESUNDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULETHURSDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULETUESDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULEWEDNESDAYHOUR : . + [End ]: + [Start ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlineschedule +#> +function New-CsOnlineSchedule { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateScheduleResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateScheduleRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDateTimeRange[]] + # . + # To construct, see NOTES section for FIXEDSCHEDULEDATETIMERANGE properties and create a hash table. + ${FixedScheduleDateTimeRange}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Name}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${RecurrenceRangeEnd}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${RecurrenceRangeNumberOfOccurrence}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${RecurrenceRangeStart}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${RecurrenceRangeType}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEFRIDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleFridayHour}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${WeeklyRecurrentScheduleIsComplemented}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEMONDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleMondayHour}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULESATURDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleSaturdayHour}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULESUNDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleSundayHour}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULETHURSDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleThursdayHour}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULETUESDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleTuesdayHour}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEWEDNESDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleWednesdayHour}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineSchedule_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineSchedule_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis + +.Description + +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseOrderRequest +.Outputs +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : CmdletReleaseOrderRequest + [EndingNumber ]: + [FileContent ]: + [StartingNumber ]: + [TelephoneNumber ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlinetelephonenumberreleaseorder +#> +function New-CsOnlineTelephoneNumberReleaseOrder { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseOrderRequest] + # CmdletReleaseOrderRequest + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${EndingNumber}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${FileContent}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${StartingNumber}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${TelephoneNumber}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineTelephoneNumberReleaseOrder_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineTelephoneNumberReleaseOrder_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Create a time range draft. +POST Teams.VoiceApps/schedules/time-ranges/draft. +.Description +Create a time range draft. +POST Teams.VoiceApps/schedules/time-ranges/draft. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTimeRangeRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTimeRangeResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [End ]: + [Start ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlinetimerange +#> +function New-CsOnlineTimeRange { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTimeRangeResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTimeRangeRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${End}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Start}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineTimeRange_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineTimeRange_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Create New Bulk Sign in Request +.Description +Create New Bulk Sign in Request +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgBulkSignInRequestItem[] +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgBulkSignInResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : Array of SDGBulkSignInRequestItem + [HardwareId ]: + [UserName ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-cssdgbulksigninrequest +#> +function New-CsSdgBulkSignInRequest { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgBulkSignInResponse])] +[CmdletBinding(DefaultParameterSetName='New', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Target Region where the device is located + ${TargetRegion}, + + [Parameter(Mandatory, ValueFromPipeline)] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgBulkSignInRequestItem[]] + # Array of SDGBulkSignInRequestItem + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsSdgBulkSignInRequest_New'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Create shared call queue history template POST /Teams.VoiceApps/shared-call-queue-history. +.Description +Create shared call queue history template POST /Teams.VoiceApps/shared-call-queue-history. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateSharedCallQueueHistoryRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateSharedCallQueueHistoryResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : Request model for creating a shared call queue history. + [AnsweredAndOutboundCall ]: Gets or sets whether the shared call history for Answered and outbound calls is delivered to authorized users, authorized users and agents or none. + [Description ]: Gets or sets the description of the shared call queue history. + [IncomingMissedCall ]: Gets or sets whether the shared call history for Incoming missed calls is delivered to authorized users, authorized users and agents or none. + [Name ]: Gets or sets the name of the shared call queue history. +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-cssharedcallqueuehistorytemplate +#> +function New-CsSharedCallQueueHistoryTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateSharedCallQueueHistoryResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateSharedCallQueueHistoryRequest] + # Request model for creating a shared call queue history. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets whether the shared call history for Answered and outbound calls is delivered to authorized users, authorized users and agents or none. + ${AnsweredAndOutboundCalls}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the description of the shared call queue history. + ${Description}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets whether the shared call history for Incoming missed calls is delivered to authorized users, authorized users and agents or none. + ${IncomingMissedCalls}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the name of the shared call queue history. + ${Name}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsSharedCallQueueHistoryTemplate_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsSharedCallQueueHistoryTemplate_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Creates a new IVR tags template. +POST api/v1.0/tenants/tenantId/ivr-tags-template +.Description +Creates a new IVR tags template. +POST api/v1.0/tenants/tenantId/ivr-tags-template +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagsTemplateRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagsTemplateResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [Description ]: Description of the IVR tag template. + [Name ]: Gets or sets the name of the IVR tag template. + [Tag ]: List of tags associated with the IVR tag template. These contain the name and callbale entities to which the IVR can initiate a transfer to. + [TagDetailCallPriority ]: + [TagDetailEnableSharedVoicemailSystemPromptSuppression ]: + [TagDetailEnableTranscription ]: + [TagDetailId ]: + [TagDetailType ]: + [TagName ]: + +TAGS : List of tags associated with the IVR tag template.These contain the name and callbale entities to which the IVR can initiate a transfer to. + [TagDetailCallPriority ]: + [TagDetailEnableSharedVoicemailSystemPromptSuppression ]: + [TagDetailEnableTranscription ]: + [TagDetailId ]: + [TagDetailType ]: + [TagName ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-cstagstemplate +#> +function New-CsTagsTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagsTemplateResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagsTemplateRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Description of the IVR tag template. + ${Description}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the name of the IVR tag template. + ${Name}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IIvrTagDtoModel[]] + # List of tags associated with the IVR tag template.These contain the name and callbale entities to which the IVR can initiate a transfer to. + # To construct, see NOTES section for TAGS properties and create a hash table. + ${Tags}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTagsTemplate_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTagsTemplate_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Creates a draft of each Ivr Tag +.Description +Creates a draft of each Ivr Tag +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [TagDetailCallPriority ]: + [TagDetailEnableSharedVoicemailSystemPromptSuppression ]: + [TagDetailEnableTranscription ]: + [TagDetailId ]: + [TagDetailType ]: + [TagName ]: Name of the IVR tag. This alue is used to identify which callable entity to transfer the call to. +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-cstag +#> +function New-CsTag { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${TagDetailCallPriority}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${TagDetailEnableSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${TagDetailEnableTranscription}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${TagDetailId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${TagDetailType}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Name of the IVR tag. + # This alue is used to identify which callable entity to transfer the call to. + ${TagName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTag_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTag_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis + +.Description + +.Example +PS C:\> (Get-CsTeamTemplate -OdataId '/api/teamtemplates/v1.0/com.microsoft.teams.template.AdoptOffice365/Public/en-US') > input.json +# open json in your favorite editor, make changes + +PS C:\> New-CsTeamTemplate -Locale en-US -Body (Get-Content '.\input.json' | Out-String) + +{ + "id": "061fe692-7da7-4f65-a57b-0472cf0045af", + "name": "New Template", + "scope": "Tenant", + "shortDescription": "New Description", + "iconUri": "https://statics.teams.cdn.office.net/evergreen-assets/teamtemplates/icons/default_tenant.svg", + "channelCount": 2, + "appCount": 2, + "modifiedOn": "2020-12-10T18:46:52.7231705Z", + "modifiedBy": "6c4445f6-a23d-473c-951d-7474d289c6b3", + "locale": "en-US", + "@odata.id": "/api/teamtemplates/v1.0/061fe692-7da7-4f65-a57b-0472cf0045af/Tenant/en-US" +} +.Example +PS C:\> New-CsTeamTemplate ` +-Locale en-US ` +-DisplayName 'New Template' ` +-ShortDescription 'New Description' ` +-App @{id='feda49f8-b9f2-4985-90f0-dd88a8f80ee1'}, @{id='1d71218a-92ad-4254-be15-c5ab7a3e4423'} ` +-Channel @{ ` + displayName="General"; ` + id="General"; ` + isFavoriteByDefault=$true; ` +}, ` +@{ ` + displayName="test"; ` + id="b82b7d0a-6bc9-4fd8-bf09-d432e4ea0475"; ` + isFavoriteByDefault=$false; ` +} + + +{ + "id": "061fe692-7da7-4f65-a57b-0472cf0045af", + "name": "New Template", + "scope": "Tenant", + "shortDescription": "New Description", + "iconUri": "https://statics.teams.cdn.office.net/evergreen-assets/teamtemplates/icons/default_tenant.svg", + "channelCount": 2, + "appCount": 2, + "modifiedOn": "2020-12-10T18:46:52.7231705Z", + "modifiedBy": "6c4445f6-a23d-473c-951d-7474d289c6b3", + "locale": "en-US", + "@odata.id": "/api/teamtemplates/v1.0/061fe692-7da7-4f65-a57b-0472cf0045af/Tenant/en-US" +} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTemplateResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +APP : Gets or sets the set of applications that should be installed in teams created based on the template.The app catalog is the main directory for information about each app; this set is intended only as a reference. + [Id ]: Gets or sets the app's ID in the global apps catalog. + +BODY : The client input for a request to create a template. Only admins from Config Api can perform this request. + DisplayName : Gets or sets the team's DisplayName. + ShortDescription : Gets or sets template short description. + [App ]: Gets or sets the set of applications that should be installed in teams created based on the template. The app catalog is the main directory for information about each app; this set is intended only as a reference. + [Id ]: Gets or sets the app's ID in the global apps catalog. + [Category ]: Gets or sets list of categories. + [Channel ]: Gets or sets the set of channel templates included in the team template. + [Description ]: Gets or sets channel description as displayed to users. + [DisplayName ]: Gets or sets channel name as displayed to users. + [Id ]: Gets or sets identifier for the channel template. + [IsFavoriteByDefault ]: Gets or sets a value indicating whether whether new members of the team should automatically favorite the channel, pinning it for visibility in the UI and using resources to make switching to the channel faster. + [Tab ]: Gets or sets collection of tabs that should be added to the channel. + [Configuration ]: Represents the configuration of a tab. + [ContentUrl ]: Gets or sets the Url used for rendering tab contents in Teams. + [EntityId ]: Gets or sets the identifier for the entity hosted by the tab provider. + [RemoveUrl ]: Gets or sets the Url that is invoked when the user tries to remove a tab from the FE client. + [WebsiteUrl ]: Gets or sets the Url for showing tab contents outside of Teams. + [Id ]: Gets or sets identifier for the channel tab template. + [Key ]: Gets a unique identifier. + [MessageId ]: Gets or sets id used to identify the chat message associated with the tab. + [Name ]: Gets or sets the tab name displayed to users. + [SortOrderIndex ]: Gets or sets index of the order used for sorting tabs. + [TeamsAppId ]: Gets or sets the app's id in the global apps catalog. + [WebUrl ]: Gets or sets the deep link url of the tab instance. + [Classification ]: Gets or sets the team's classification. Tenant admins configure AAD with the set of possible values. + [Description ]: Gets or sets the team's Description. + [DiscoverySetting ]: Governs discoverability of a team. + ShowInTeamsSearchAndSuggestion : Gets or sets value indicating if team is visible within search and suggestions in Teams clients. + [FunSetting ]: Governs use of fun media like giphy and stickers in the team. + AllowCustomMeme : Gets or sets a value indicating whether users are allowed to create and post custom meme images in team conversations. + AllowGiphy : Gets or sets a value indicating whether users can post giphy content in team conversations. + AllowStickersAndMeme : Gets or sets a value indicating whether users can post stickers and memes in team conversations. + GiphyContentRating : Gets or sets the rating filter on giphy content. + [GuestSetting ]: Guest role settings for the team. + AllowCreateUpdateChannel : Gets or sets a value indicating whether guests can create or edit channels in the team. + AllowDeleteChannel : Gets or sets a value indicating whether guests can delete team channels. + [Icon ]: Gets or sets template icon. + [IsMembershipLimitedToOwner ]: Gets or sets whether to limit the membership of the team to owners in the AAD group until an owner "activates" the team. + [MemberSetting ]: Member role settings for the team. + AllowAddRemoveApp : Gets or sets a value indicating whether members can add or remove apps in the team. + AllowCreatePrivateChannel : Gets or Sets a value indicating whether members can create Private channels. + AllowCreateUpdateChannel : Gets or sets a value indicating whether members can create or edit channels in the team. + AllowCreateUpdateRemoveConnector : Gets or sets a value indicating whether members can add, edit, or remove connectors in the team. + AllowCreateUpdateRemoveTab : Gets or sets a value indicating whether members can add, edit or remove pinned tabs in the team. + AllowDeleteChannel : Gets or sets a value indicating whether members can delete team channels. + UploadCustomApp : Gets or sets a value indicating is allowed to upload custom apps. + [MessagingSetting ]: Governs use of messaging features within the team These are settings the team owner should be able to modify from UI after team creation. + AllowChannelMention : Gets or sets a value indicating whether team members can at-mention entire channels in team conversations. + AllowOwnerDeleteMessage : Gets or sets a value indicating whether team owners can delete anyone's messages in team conversations. + AllowTeamMention : Gets or sets a value indicating whether team members can at-mention the entire team in team conversations. + AllowUserDeleteMessage : Gets or sets a value indicating whether team members can delete their own messages in team conversations. + AllowUserEditMessage : Gets or sets a value indicating whether team members can edit their own messages in team conversations. + [OwnerUserObjectId ]: Gets or sets the AAD user object id of the user who should be set as the owner of the new team. Only to be used when an application or administrative user is making the request on behalf of the specified user. + [PublishedBy ]: Gets or sets published name. + [Specialization ]: The specialization or use case describing the team. Used for telemetry/BI, part of the team context exposed to app developers, and for legacy implementations of differentiated features for education. + [TemplateId ]: Gets or sets the id of the base template for the team. Either a Microsoft base template or a custom template. + [Uri ]: Gets or sets uri to be used for GetTemplate api call. + [Visibility ]: Used to control the scope of users who can view a group/team and its members, and ability to join. + +CHANNEL : Gets or sets the set of channel templates included in the team template. + [Description ]: Gets or sets channel description as displayed to users. + [DisplayName ]: Gets or sets channel name as displayed to users. + [Id ]: Gets or sets identifier for the channel template. + [IsFavoriteByDefault ]: Gets or sets a value indicating whether whether new members of the team should automatically favorite the channel, pinning it for visibility in the UI and using resources to make switching to the channel faster. + [Tab ]: Gets or sets collection of tabs that should be added to the channel. + [Configuration ]: Represents the configuration of a tab. + [ContentUrl ]: Gets or sets the Url used for rendering tab contents in Teams. + [EntityId ]: Gets or sets the identifier for the entity hosted by the tab provider. + [RemoveUrl ]: Gets or sets the Url that is invoked when the user tries to remove a tab from the FE client. + [WebsiteUrl ]: Gets or sets the Url for showing tab contents outside of Teams. + [Id ]: Gets or sets identifier for the channel tab template. + [Key ]: Gets a unique identifier. + [MessageId ]: Gets or sets id used to identify the chat message associated with the tab. + [Name ]: Gets or sets the tab name displayed to users. + [SortOrderIndex ]: Gets or sets index of the order used for sorting tabs. + [TeamsAppId ]: Gets or sets the app's id in the global apps catalog. + [WebUrl ]: Gets or sets the deep link url of the tab instance. + +DISCOVERYSETTING : Governs discoverability of a team. + ShowInTeamsSearchAndSuggestion : Gets or sets value indicating if team is visible within search and suggestions in Teams clients. + +FUNSETTING : Governs use of fun media like giphy and stickers in the team. + AllowCustomMeme : Gets or sets a value indicating whether users are allowed to create and post custom meme images in team conversations. + AllowGiphy : Gets or sets a value indicating whether users can post giphy content in team conversations. + AllowStickersAndMeme : Gets or sets a value indicating whether users can post stickers and memes in team conversations. + GiphyContentRating : Gets or sets the rating filter on giphy content. + +GUESTSETTING : Guest role settings for the team. + AllowCreateUpdateChannel : Gets or sets a value indicating whether guests can create or edit channels in the team. + AllowDeleteChannel : Gets or sets a value indicating whether guests can delete team channels. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id + +MEMBERSETTING : Member role settings for the team. + AllowAddRemoveApp : Gets or sets a value indicating whether members can add or remove apps in the team. + AllowCreatePrivateChannel : Gets or Sets a value indicating whether members can create Private channels. + AllowCreateUpdateChannel : Gets or sets a value indicating whether members can create or edit channels in the team. + AllowCreateUpdateRemoveConnector : Gets or sets a value indicating whether members can add, edit, or remove connectors in the team. + AllowCreateUpdateRemoveTab : Gets or sets a value indicating whether members can add, edit or remove pinned tabs in the team. + AllowDeleteChannel : Gets or sets a value indicating whether members can delete team channels. + UploadCustomApp : Gets or sets a value indicating is allowed to upload custom apps. + +MESSAGINGSETTING : Governs use of messaging features within the teamThese are settings the team owner should be able to modify from UI after team creation. + AllowChannelMention : Gets or sets a value indicating whether team members can at-mention entire channels in team conversations. + AllowOwnerDeleteMessage : Gets or sets a value indicating whether team owners can delete anyone's messages in team conversations. + AllowTeamMention : Gets or sets a value indicating whether team members can at-mention the entire team in team conversations. + AllowUserDeleteMessage : Gets or sets a value indicating whether team members can delete their own messages in team conversations. + AllowUserEditMessage : Gets or sets a value indicating whether team members can edit their own messages in team conversations. +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csteamtemplate +#> +function New-CsTeamTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTemplateResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory)] + [Parameter(ParameterSetName='NewExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Locale}, + + [Parameter(ParameterSetName='NewViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='NewViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='NewViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate] + # The client input for a request to create a template. + # Only admins from Config Api can perform this request. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded', Mandatory)] + [Parameter(ParameterSetName='NewViaIdentityExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the team's DisplayName. + ${DisplayName}, + + [Parameter(ParameterSetName='NewExpanded', Mandatory)] + [Parameter(ParameterSetName='NewViaIdentityExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets template short description. + ${ShortDescription}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamsAppTemplate[]] + # Gets or sets the set of applications that should be installed in teams created based on the template.The app catalog is the main directory for information about each app; this set is intended only as a reference. + # To construct, see NOTES section for APP properties and create a hash table. + ${App}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets list of categories. + ${Category}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IChannelTemplate[]] + # Gets or sets the set of channel templates included in the team template. + # To construct, see NOTES section for CHANNEL properties and create a hash table. + ${Channel}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the team's classification.Tenant admins configure AAD with the set of possible values. + ${Classification}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the team's Description. + ${Description}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamDiscoverySettings] + # Governs discoverability of a team. + # To construct, see NOTES section for DISCOVERYSETTING properties and create a hash table. + ${DiscoverySetting}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamFunSettings] + # Governs use of fun media like giphy and stickers in the team. + # To construct, see NOTES section for FUNSETTING properties and create a hash table. + ${FunSetting}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamGuestSettings] + # Guest role settings for the team. + # To construct, see NOTES section for GUESTSETTING properties and create a hash table. + ${GuestSetting}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets template icon. + ${Icon}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets whether to limit the membership of the team to owners in the AAD group until an owner "activates" the team. + ${IsMembershipLimitedToOwner}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMemberSettings] + # Member role settings for the team. + # To construct, see NOTES section for MEMBERSETTING properties and create a hash table. + ${MemberSetting}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMessagingSettings] + # Governs use of messaging features within the teamThese are settings the team owner should be able to modify from UI after team creation. + # To construct, see NOTES section for MESSAGINGSETTING properties and create a hash table. + ${MessagingSetting}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the AAD user object id of the user who should be set as the owner of the new team.Only to be used when an application or administrative user is making the request on behalf of the specified user. + ${OwnerUserObjectId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets published name. + ${PublishedBy}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The specialization or use case describing the team.Used for telemetry/BI, part of the team context exposed to app developers, and for legacy implementations of differentiated features for education. + ${Specialization}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the id of the base template for the team.Either a Microsoft base template or a custom template. + ${TemplateId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets uri to be used for GetTemplate api call. + ${Uri}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Used to control the scope of users who can view a group/team and its members, and ability to join. + ${Visibility}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamTemplate_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamTemplate_NewExpanded'; + NewViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamTemplate_NewViaIdentity'; + NewViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamTemplate_NewViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Invokes tenant migration +.Description +Invokes tenant migration +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantMigration +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantMigrationResult +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : Payload for tenant migration + [MoveOption ]: MoveOption can take following values PrepForMove, StartDualSync, Finalize. + [TargetServiceInstance ]: Target service instance where tenant is to be migrated. +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-cstenantcrossmigration +#> +function New-CsTenantCrossMigration { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantMigrationResult])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantMigration] + # Payload for tenant migration + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # MoveOption can take following values PrepForMove, StartDualSync, Finalize. + ${MoveOption}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Target service instance where tenant is to be migrated. + ${TargetServiceInstance}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTenantCrossMigration_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTenantCrossMigration_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Adds delegate with validations in bvd +.Description +Adds delegate with validations in bvd +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csusercallingdelegate +#> +function New-CsUserCallingDelegate { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='New', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Delegate}, + + [Parameter(ParameterSetName='New', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='NewViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${MakeCalls}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ManageSettings}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ReceiveCalls}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsUserCallingDelegate_New'; + NewViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsUserCallingDelegate_NewViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Assigns a service number to a bridge. +.Description +Assigns a service number to a bridge. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : Class representing ConferencingServiceNumber. + [BridgeId ]: Gets or sets the unique identifier of the Bridge that this ServiceNumber belongs to. + [City ]: Gets or sets the Geocode where the ServiceNumber is intended to be used. + [IsShared ]: Gets or sets a value indicating whether the number is shared between multiple tenants. If this is the case then tenant admins will be unable to edit the number. + [Number ]: Gets or sets the 11 digit number identifying the ServiceNumber. + [PrimaryLanguage ]: Gets or sets the primary language of the ServiceNumber. e.g.: "en-US". + [SecondaryLanguages ]: Gets or sets the list of secondary languages of the ServiceNumber. e.g.: "fr-FR","en-GB","en-IN". + [Type ]: Gets or sets defines the number type Toll/Toll-Free. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/register-csodcservicenumber +#> +function Register-CsOdcServiceNumber { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber])] +[CmdletBinding(DefaultParameterSetName='RegisterExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Register', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Service number to be assigned to a bridge. + # The service number in E.164 format, e.g. + # +14251112222 or tel:+14251112222. + ${Identity}, + + [Parameter(ParameterSetName='RegisterViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # The conferencing bridge identifier to assign the service numbers to. + ${BridgeId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # The conferencing bridge name to assign the service numbers. + ${BridgeName}, + + [Parameter(ParameterSetName='Register1', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber] + # Class representing ConferencingServiceNumber. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='RegisterExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the unique identifier of the Bridge that this ServiceNumber belongs to. + ${BridgeId1}, + + [Parameter(ParameterSetName='RegisterExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the Geocode where the ServiceNumber is intended to be used. + ${City}, + + [Parameter(ParameterSetName='RegisterExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether the number is shared between multiple tenants. + # If this is the casethen tenant admins will be unable to edit the number. + ${IsShared}, + + [Parameter(ParameterSetName='RegisterExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the 11 digit number identifying the ServiceNumber. + ${Number}, + + [Parameter(ParameterSetName='RegisterExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the primary language of the ServiceNumber. + # e.g.: "en-US". + ${PrimaryLanguage}, + + [Parameter(ParameterSetName='RegisterExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets the list of secondary languages of the ServiceNumber. + # e.g.: "fr-FR","en-GB","en-IN". + ${SecondaryLanguage}, + + [Parameter(ParameterSetName='RegisterExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets defines the number type Toll/Toll-Free. + ${Type}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Register = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Register-CsOdcServiceNumber_Register'; + Register1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Register-CsOdcServiceNumber_Register1'; + RegisterExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Register-CsOdcServiceNumber_RegisterExpanded'; + RegisterViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Register-CsOdcServiceNumber_RegisterViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Deletes a specific AutoAttendant. +DELETE Teams.VoiceApps/auto-attendants/identity. +.Description +Deletes a specific AutoAttendant. +DELETE Teams.VoiceApps/auto-attendants/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csautoattendant +#> +function Remove-CsAutoAttendant { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Id for the auto attendant to be removed. + ${Identity}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsAutoAttendant_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsAutoAttendant_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Remove call queue. +DELETE Teams.VoiceApps/callqueues/identity. +.Description +Remove call queue. +DELETE Teams.VoiceApps/callqueues/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-cscallqueue +#> +function Remove-CsCallQueue { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsCallQueue_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsCallQueue_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Delete Compliance Recording config. +DELETE /Teams.VoiceApps/compliance-recording/identity. +.Description +Delete Compliance Recording config. +DELETE /Teams.VoiceApps/compliance-recording/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-cscompliancerecordingforcallqueuetemplate +#> +function Remove-CsComplianceRecordingForCallQueueTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Id}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsComplianceRecordingForCallQueueTemplate_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsComplianceRecordingForCallQueueTemplate_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Delete Configuration +.Description +Delete Configuration +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csconfiguration +#> +function Remove-CsConfiguration { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ConfigName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ConfigType}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Delete = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsConfiguration_Delete'; + DeleteViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsConfiguration_DeleteViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Remove mainline attendant appointment booking flow. +DELETE Teams.VoiceApps/mainline-attendant-flow/appointment-booking/identity. +.Description +Remove mainline attendant appointment booking flow. +DELETE Teams.VoiceApps/mainline-attendant-flow/appointment-booking/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csmainlineattendantappointmentbookingflow +#> +function Remove-CsMainlineAttendantAppointmentBookingFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsMainlineAttendantAppointmentBookingFlow_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsMainlineAttendantAppointmentBookingFlow_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Remove mainline attendant question answer flow. +DELETE Teams.VoiceApps/mainline-attendant-flow/question-answer/identity. +.Description +Remove mainline attendant question answer flow. +DELETE Teams.VoiceApps/mainline-attendant-flow/question-answer/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csmainlineattendantquestionanswerflow +#> +function Remove-CsMainlineAttendantQuestionAnswerFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsMainlineAttendantQuestionAnswerFlow_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsMainlineAttendantQuestionAnswerFlow_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Remove application instance associations. +DELETE api/v1.0/tenants/tenantId/applicationinstanceassociations/endpointId. +.Description +Remove application instance associations. +DELETE api/v1.0/tenants/tenantId/applicationinstanceassociations/endpointId. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IRemoveApplicationInstanceAssociationsResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csonlineapplicationinstanceassociation +#> +function Remove-CsOnlineApplicationInstanceAssociation { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IRemoveApplicationInstanceAssociationsResponse])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Application instance Id. + ${Identity}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineApplicationInstanceAssociation_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineApplicationInstanceAssociation_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Delete an audio file stored in MSS. +DELETE api/v3/tenants/tenantId/audiofile/appId/audiofileId +.Description +Delete an audio file stored in MSS. +DELETE api/v3/tenants/tenantId/audiofile/appId/audiofileId +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csonlineaudiofile +#> +function Remove-CsOnlineAudioFile { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ApplicationId}, + + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineAudioFile_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineAudioFile_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Deletes a specific schedule. +DELETE Teams.VoiceApps/schedules/identity. +.Description +Deletes a specific schedule. +DELETE Teams.VoiceApps/schedules/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csonlineschedule +#> +function Remove-CsOnlineSchedule { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Id for the schedule to be removed. + ${Identity}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineSchedule_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineSchedule_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis + +.Description + +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseOrderResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtErrorResponseDetails +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : CmdletReleaseRequest + [TelephoneNumber ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csonlinetelephonenumberprivate +#> +function Remove-CsOnlineTelephoneNumberPrivate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseOrderResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtErrorResponseDetails])] +[CmdletBinding(DefaultParameterSetName='RemoveExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseRequest] + # CmdletReleaseRequest + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='RemoveExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${TelephoneNumber}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineTelephoneNumberPrivate_Remove'; + RemoveExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineTelephoneNumberPrivate_RemoveExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis + +.Description + +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csphonenumberassignment +#> +function Remove-CsPhoneNumberAssignment { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Notify}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${PhoneNumber}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${PhoneNumberType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${RemoveAll}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsPhoneNumberAssignment_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsPhoneNumberAssignment_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Delete Shared Call Queue History config. +DELETE /Teams.VoiceApps/shared-call-queue-history/identity. +.Description +Delete Shared Call Queue History config. +DELETE /Teams.VoiceApps/shared-call-queue-history/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-cssharedcallqueuehistorytemplate +#> +function Remove-CsSharedCallQueueHistoryTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsSharedCallQueueHistoryTemplate_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsSharedCallQueueHistoryTemplate_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Delete IVR Tags Template. +DELETE api/v1.0/tenants/tenantId/ivr-tags-template/identity. +.Description +Delete IVR Tags Template. +DELETE api/v1.0/tenants/tenantId/ivr-tags-template/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-cstagstemplate +#> +function Remove-CsTagsTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTagsTemplate_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTagsTemplate_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Removes delegate in bvd +.Description +Removes delegate in bvd +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csusercallingdelegate +#> +function Remove-CsUserCallingDelegate { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Delegate}, + + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsUserCallingDelegate_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsUserCallingDelegate_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Searches a tenant for ODC users. +.Description +Searches a tenant for ODC users. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/search-csodcuser +#> +function Search-CsOdcUser { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser])] +[CmdletBinding(DefaultParameterSetName='Search', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # Page Size. + ${PageSize}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Continuation / Pagination marker. + # Use the value from nextlink property in response. + ${Skiptoken}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # To set the number of users to be fetched + ${Top}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Search = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Search-CsOdcUser_Search'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Searches a tenant for users. +.Description +Searches a tenant for users. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUser +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/search-csuser +#> +function Search-CsUser { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUser])] +[CmdletBinding(DefaultParameterSetName='Search', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # To set defaultpropertyset value + ${Defaultpropertyset}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # To fetch optional location field + ${Expandlocation}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # MS Graph like query filters + ${Filter}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # To set includedefaultproperties value + ${Includedefaultproperty}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # This parameter supports query to sort the results. + ${OrderBy}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # Page Size. + ${PageSize}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Powershell like query filters + ${Psfilter}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Properties to select + ${Select}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Continuation / Pagination marker. + # Use the value from nextlink property in response. + ${Skiptoken}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # Skip user policies in user response object + ${Skipuserpolicy}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # To be set true when called to only fetch Soft deleted users + ${Softdeleteduser}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # To set the number of users to be fetched + ${Top}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # To set to true when called from Get-CsVoiceUser cmdlet + ${Voiceuserquery}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Search = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Search-CsUser_Search'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Updates a specific AutoAttendant. +PUT Teams.VoiceApps/auto-attendants/identity. +.Description +Updates a specific AutoAttendant. +PUT Teams.VoiceApps/auto-attendants/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAutoAttendant +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAutoAttendantResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [ApplicationInstance ]: + [AuthorizedUser ]: + [CallFlow ]: + [ForceListenMenuEnabled ]: + [Greeting ]: + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + [Id ]: + [MenuDialByNameEnabled ]: + [MenuDirectorySearchMethod ]: + [MenuName ]: + [MenuOption ]: + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + [MenuPrompt ]: + [Name ]: + [CallHandlingAssociation ]: + [CallFlowId ]: + [Enabled ]: + [Priority ]: + [ScheduleId ]: + [Type ]: + [DefaultCallFlowForceListenMenuEnabled ]: + [DefaultCallFlowGreeting ]: + [DefaultCallFlowId ]: + [DefaultCallFlowName ]: + [DialByNameResourceId ]: + [ExclusionScopeGroupDialScopeGroupId ]: + [ExclusionScopeType ]: + [HideAuthorizedUser ]: Gets or sets hidden authorized user ids. + [Id ]: + [InclusionScopeGroupDialScopeGroupId ]: + [InclusionScopeType ]: + [LanguageId ]: + [MainlineAttendantAgentVoiceId ]: + [MainlineAttendantEnabled ]: + [MenuDialByNameEnabled ]: + [MenuDirectorySearchMethod ]: + [MenuName ]: + [MenuOption ]: + [MenuPrompt ]: + [Name ]: + [OperatorCallPriority ]: + [OperatorEnableSharedVoicemailSystemPromptSuppression ]: + [OperatorEnableTranscription ]: + [OperatorId ]: + [OperatorSharedVoicemailCallPriority ]: + [OperatorSharedVoicemailEnableSharedVoicemailSystemPromptSuppression ]: + [OperatorSharedVoicemailEnableTranscription ]: + [OperatorSharedVoicemailId ]: + [OperatorSharedVoicemailType ]: + [OperatorType ]: + [Schedule ]: + [AssociatedConfigurationId ]: + [FixedScheduleDateTimeRange ]: + [End ]: + [Start ]: + [Id ]: + [Name ]: + [RecurrenceRangeEnd ]: + [RecurrenceRangeNumberOfOccurrence ]: + [RecurrenceRangeStart ]: + [RecurrenceRangeType ]: + [Type ]: + [WeeklyRecurrentScheduleFridayHour ]: + [End ]: + [Start ]: + [WeeklyRecurrentScheduleIsComplemented ]: + [WeeklyRecurrentScheduleMondayHour ]: + [WeeklyRecurrentScheduleSaturdayHour ]: + [WeeklyRecurrentScheduleSundayHour ]: + [WeeklyRecurrentScheduleThursdayHour ]: + [WeeklyRecurrentScheduleTuesdayHour ]: + [WeeklyRecurrentScheduleWednesdayHour ]: + [Status ]: + [AuxiliaryData ]: Get or sets auxiliary data. + [ErrorCode ]: Gets or sets error code of audio, grammar. + [Id ]: Gets or sets dialByNameGrammarContext. + [Message ]: Gets or sets error meessage of audio, grammar. + [Status ]: Gets or sets resource status of autoattendant. + [StatusTimestamp ]: Gets or sets time stamp of auido, grammar status. + [Type ]: Gets or sets resource type of autoattendant. + [TenantId ]: + [TimeZoneId ]: + [UserNameExtension ]: + [VoiceId ]: + [VoiceResponseEnabled ]: + +CALLFLOW : . + [ForceListenMenuEnabled ]: + [Greeting ]: + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + [Id ]: + [MenuDialByNameEnabled ]: + [MenuDirectorySearchMethod ]: + [MenuName ]: + [MenuOption ]: + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + [MenuPrompt ]: + [Name ]: + +CALLHANDLINGASSOCIATION : . + [CallFlowId ]: + [Enabled ]: + [Priority ]: + [ScheduleId ]: + [Type ]: + +DEFAULTCALLFLOWGREETING : . + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id + +MENUOPTION : . + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + +MENUPROMPT : . + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + +SCHEDULE : . + [AssociatedConfigurationId ]: + [FixedScheduleDateTimeRange ]: + [End ]: + [Start ]: + [Id ]: + [Name ]: + [RecurrenceRangeEnd ]: + [RecurrenceRangeNumberOfOccurrence ]: + [RecurrenceRangeStart ]: + [RecurrenceRangeType ]: + [Type ]: + [WeeklyRecurrentScheduleFridayHour ]: + [End ]: + [Start ]: + [WeeklyRecurrentScheduleIsComplemented ]: + [WeeklyRecurrentScheduleMondayHour ]: + [WeeklyRecurrentScheduleSaturdayHour ]: + [WeeklyRecurrentScheduleSundayHour ]: + [WeeklyRecurrentScheduleThursdayHour ]: + [WeeklyRecurrentScheduleTuesdayHour ]: + [WeeklyRecurrentScheduleWednesdayHour ]: + +STATUS : . + [AuxiliaryData ]: Get or sets auxiliary data. + [ErrorCode ]: Gets or sets error code of audio, grammar. + [Id ]: Gets or sets dialByNameGrammarContext. + [Message ]: Gets or sets error meessage of audio, grammar. + [Status ]: Gets or sets resource status of autoattendant. + [StatusTimestamp ]: Gets or sets time stamp of auido, grammar status. + [Type ]: Gets or sets resource type of autoattendant. +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csautoattendant +#> +function Set-CsAutoAttendant { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAutoAttendantResponse])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Id for the auto attendant to be updated. + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAutoAttendant] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${ApplicationInstance}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${AuthorizedUser}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallFlow[]] + # . + # To construct, see NOTES section for CALLFLOW properties and create a hash table. + ${CallFlow}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallHandlingAssociation[]] + # . + # To construct, see NOTES section for CALLHANDLINGASSOCIATION properties and create a hash table. + ${CallHandlingAssociation}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${DefaultCallFlowForceListenMenuEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] + # . + # To construct, see NOTES section for DEFAULTCALLFLOWGREETING properties and create a hash table. + ${DefaultCallFlowGreeting}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DefaultCallFlowId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DefaultCallFlowName}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DialByNameResourceId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${ExclusionScopeGroupDialScopeGroupId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ExclusionScopeType}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets hidden authorized user ids. + ${HideAuthorizedUser}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Id}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${InclusionScopeGroupDialScopeGroupId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${InclusionScopeType}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${LanguageId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${MainlineAttendantAgentVoiceId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${MainlineAttendantEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${MenuDialByNameEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${MenuDirectorySearchMethod}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${MenuName}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMenuOption[]] + # . + # To construct, see NOTES section for MENUOPTION properties and create a hash table. + ${MenuOption}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] + # . + # To construct, see NOTES section for MENUPROMPT properties and create a hash table. + ${MenuPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Name}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${OperatorCallPriority}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${OperatorEnableSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${OperatorEnableTranscription}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${OperatorId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${OperatorSharedVoicemailCallPriority}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${OperatorSharedVoicemailEnableSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${OperatorSharedVoicemailEnableTranscription}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${OperatorSharedVoicemailId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${OperatorSharedVoicemailType}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${OperatorType}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISchedule[]] + # . + # To construct, see NOTES section for SCHEDULE properties and create a hash table. + ${Schedule}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IStatusRecord2[]] + # . + # To construct, see NOTES section for STATUS properties and create a hash table. + ${Status}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${TenantId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${TimeZoneId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${UserNameExtension}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${VoiceId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${VoiceResponseEnabled}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsAutoAttendant_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsAutoAttendant_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsAutoAttendant_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsAutoAttendant_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Update call queue. +PUT Teams.VoiceApps/callqueues/identity. +.Description +Update call queue. +PUT Teams.VoiceApps/callqueues/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateCallQueueRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : CallQueue modify request DTO class. + [AgentAlertTime ]: Gets or sets the number of seconds that a call can remain unanswered. + [AllowOptOut ]: Gets or sets a value indicating whether to allow agent optout on Call Queue. + [AuthorizedUser ]: Gets or sets authorized user ids. + [CallToAgentRatioThresholdBeforeOfferingCallback ]: + [CallbackEmailNotificationTarget ]: Gets or sets the target of the callback email notification target. + [CallbackOfferAudioFilePromptResourceId ]: + [CallbackOfferTextToSpeechPrompt ]: + [CallbackRequestDtmf ]: + [ComplianceRecordingForCallQueueId ]: Gets or Sets the Id for Compliance Recording template for Callqueue. + [ConferenceMode ]: Gets or sets a value indicating whether to allow Conference Mode on Call Queue. + [CustomAudioFileAnnouncementForCr ]: Gets or sets the custom audio file announcement for compliance recording. + [CustomAudioFileAnnouncementForCrFailure ]: Gets or sets the custom audio file announcement for compliance recording if CR bot is unable to join the call. + [DistributionList ]: Gets or sets the Call Queue's Distribution List. + [EnableNoAgentSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. + [EnableNoAgentSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. + [EnableOverflowSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. + [EnableOverflowSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. + [EnableResourceAccountsForObo ]: Gets or sets a value indicating whether to allow CQ+Chanined RA's as permissioned RA's. + [EnableTimeoutSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. + [EnableTimeoutSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. + [HideAuthorizedUser ]: Gets or sets hidden authorized user ids. + [IsCallbackEnabled ]: + [LanguageId ]: Gets or sets the language Id used for TTS. + [MusicOnHoldAudioFileId ]: Gets or sets the call flows for the auto attendant app endpoint. + [Name ]: Gets or sets the Call Queue's name. + [NoAgentAction ]: Gets or sets the action to take if the NoAgent is LoggedIn/OptedIn. + [NoAgentActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of no agent. + [NoAgentActionTarget ]: Gets or sets the target of the NoAgent action. + [NoAgentApplyTo ]: Determines whether NoAgent Action is applied to All Calls or to new calls only. + [NoAgentDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on NoAgent. + [NoAgentDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on NoAgent. + [NoAgentRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on NoAgent. + [NoAgentRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on NoAgent. + [NoAgentRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on NoAgent. + [NoAgentRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on NoAgent. + [NoAgentRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on NoAgent. + [NoAgentRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on NoAgent. + [NoAgentRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on NoAgent. + [NoAgentRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on NoAgent. + [NoAgentSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemail. + [NoAgentSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. + [NumberOfCallsInQueueBeforeOfferingCallback ]: + [OboResourceAccountId ]: Gets or sets the list of Obo resource account ids. + [OverflowAction ]: Gets or sets the action to take when the overflow threshold is reached. + [OverflowActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of overflow. + [OverflowActionTarget ]: Gets or sets the target of the overflow action. + [OverflowDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on overflow. + [OverflowDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on overflow. + [OverflowRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on overflow. + [OverflowRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on overflow. + [OverflowRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on overflow. + [OverflowRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on overflow. + [OverflowRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on overflow. + [OverflowRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on overflow. + [OverflowRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on overflow. + [OverflowRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on overflow. + [OverflowSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemai. + [OverflowSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. + [OverflowThreshold ]: Gets or sets the number of simultaneous calls that can be in the queue at any one time. + [PresenceAwareRouting ]: Gets or sets a value indicating whether to enable presence aware routing. + [RoutingMethod ]: Gets or sets the routing method for the Call Queue. + [ServiceLevelThresholdResponseTimeInSecond ]: + [SharedCallQueueHistoryId ]: Gets or sets the Shared Call Queue History template. + [ShiftsSchedulingGroupId ]: Gets or sets the Shifts Scheduling Group to use as Call queues answer target. + [ShiftsTeamId ]: Gets or sets the Shifts Team to use as Call queues answer target. + [ShouldOverwriteCallableChannelProperty ]: Gets or sets ShouldOverwriteCallableChannelProperty flag that indicates user intention to whether overwirte the current callableChannel property value on chat service or not. + [TextAnnouncementForCr ]: Gets or sets the text announcement for compliance recording. + [TextAnnouncementForCrFailure ]: Gets or sets the text announcemet that is played if CR bot is unable to join the call. + [ThreadId ]: Gets or sets teams channel thread id if user choose to sync CQ with a channel. + [TimeoutAction ]: Gets or sets the action to take if the timeout threshold is reached. + [TimeoutActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of timeout. + [TimeoutActionTarget ]: Gets or sets the target of the timeout action. + [TimeoutDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on Timeout. + [TimeoutDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on Timeout. + [TimeoutRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on Timeout. + [TimeoutRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on Timeout. + [TimeoutRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on Timeout. + [TimeoutRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on Timeout. + [TimeoutRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on Timeout. + [TimeoutRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on Timeout. + [TimeoutRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on Timeout. + [TimeoutRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on Timeout. + [TimeoutSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemai. + [TimeoutSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. + [TimeoutThreshold ]: Gets or sets the number of minutes that a call can be in the queue before it times out. + [UseDefaultMusicOnHold ]: Gets or sets a value indicating whether to use default music on hold audio file. + [User ]: Gets or sets the Call Queue's Users. + [WaitTimeBeforeOfferingCallbackInSecond ]: + [WelcomeMusicAudioFileId ]: Gets or sets the welcome audio file to play for the call queue. + [WelcomeTextToSpeechPrompt ]: Gets or sets the welcome text to speech content for the call queue. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-cscallqueue +#> +function Set-CsCallQueue { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${ChannelUserObjectId}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateCallQueueRequest] + # CallQueue modify request DTO class. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the number of seconds that a call can remain unanswered. + ${AgentAlertTime}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to allow agent optout on Call Queue. + ${AllowOptOut}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets authorized user ids. + ${AuthorizedUsers}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${CallToAgentRatioThresholdBeforeOfferingCallback}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the target of the callback email notification target. + ${CallbackEmailNotificationTarget}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CallbackOfferAudioFilePromptResourceId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CallbackOfferTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CallbackRequestDtmf}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or Sets the Id for Compliance Recording template for Callqueue. + ${ComplianceRecordingForCallQueueTemplateId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to allow Conference Mode on Call Queue. + ${ConferenceMode}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the custom audio file announcement for compliance recording. + ${CustomAudioFileAnnouncementForCr}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the custom audio file announcement for compliance recording if CR bot is unable to join the call. + ${CustomAudioFileAnnouncementForCrFailure}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets the Call Queue's Distribution List. + ${DistributionLists}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if system message should be suppressed or not. + ${EnableNoAgentSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if transcription should be turned on or not. + ${EnableNoAgentSharedVoicemailTranscription}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if system message should be suppressed or not. + ${EnableOverflowSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if transcription should be turned on or not. + ${EnableOverflowSharedVoicemailTranscription}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to allow CQ+Chanined RA's as permissioned RA's. + ${EnableResourceAccountsForObo}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if system message should be suppressed or not. + ${EnableTimeoutSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if transcription should be turned on or not. + ${EnableTimeoutSharedVoicemailTranscription}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets hidden authorized user ids. + ${HideAuthorizedUsers}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsCallbackEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the language Id used for TTS. + ${LanguageId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the call flows for the auto attendant app endpoint. + ${MusicOnHoldAudioFileId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the Call Queue's name. + ${Name}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the action to take if the NoAgent is LoggedIn/OptedIn. + ${NoAgentAction}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of no agent. + ${NoAgentActionCallPriority}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the target of the NoAgent action. + ${NoAgentActionTarget}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Determines whether NoAgent Action is applied to All Calls or to new calls only. + ${NoAgentApplyTo}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is disconnected on NoAgent. + ${NoAgentDisconnectAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is disconnected on NoAgent. + ${NoAgentDisconnectTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to person on NoAgent. + ${NoAgentRedirectPersonAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to person on NoAgent. + ${NoAgentRedirectPersonTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to phone number on NoAgent. + ${NoAgentRedirectPhoneNumberAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to phone number on NoAgent. + ${NoAgentRedirectPhoneNumberTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voiceapp on NoAgent. + ${NoAgentRedirectVoiceAppAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voiceapp on NoAgent. + ${NoAgentRedirectVoiceAppTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voicemail on NoAgent. + ${NoAgentRedirectVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voicemail on NoAgent. + ${NoAgentRedirectVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when forwarding callers to shared voicemail. + ${NoAgentSharedVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when forwarding callers to shared voicemail. + ${NoAgentSharedVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${NumberOfCallsInQueueBeforeOfferingCallback}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets the list of Obo resource account ids. + ${OboResourceAccountIds}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the action to take when the overflow threshold is reached. + ${OverflowAction}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of overflow. + ${OverflowActionCallPriority}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the target of the overflow action. + ${OverflowActionTarget}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is disconnected on overflow. + ${OverflowDisconnectAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is disconnected on overflow. + ${OverflowDisconnectTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to person on overflow. + ${OverflowRedirectPersonAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to person on overflow. + ${OverflowRedirectPersonTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to phone number on overflow. + ${OverflowRedirectPhoneNumberAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to phone number on overflow. + ${OverflowRedirectPhoneNumberTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voiceapp on overflow. + ${OverflowRedirectVoiceAppAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voiceapp on overflow. + ${OverflowRedirectVoiceAppTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voicemail on overflow. + ${OverflowRedirectVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voicemail on overflow. + ${OverflowRedirectVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when forwarding callers to shared voicemai. + ${OverflowSharedVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when forwarding callers to shared voicemail. + ${OverflowSharedVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the number of simultaneous calls that can be in the queue at any one time. + ${OverflowThreshold}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to enable presence aware routing. + ${PresenceAwareRouting}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the routing method for the Call Queue. + ${RoutingMethod}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${ServiceLevelThresholdResponseTimeInSecond}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the Shared Call Queue History template. + ${SharedCallQueueHistoryTemplateId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the Shifts Scheduling Group to use as Call queues answer target. + ${ShiftsSchedulingGroupId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the Shifts Team to use as Call queues answer target. + ${ShiftsTeamId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets ShouldOverwriteCallableChannelProperty flag that indicates user intention to whether overwirte the current callableChannel property value on chat service or not. + ${ShouldOverwriteCallableChannelProperty}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the text announcement for compliance recording. + ${TextAnnouncementForCr}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the text announcemet that is played if CR bot is unable to join the call. + ${TextAnnouncementForCrFailure}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets teams channel thread id if user choose to sync CQ with a channel. + ${ThreadId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the action to take if the timeout threshold is reached. + ${TimeoutAction}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of timeout. + ${TimeoutActionCallPriority}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the target of the timeout action. + ${TimeoutActionTarget}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is disconnected on Timeout. + ${TimeoutDisconnectAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is disconnected on Timeout. + ${TimeoutDisconnectTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to person on Timeout. + ${TimeoutRedirectPersonAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to person on Timeout. + ${TimeoutRedirectPersonTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to phone number on Timeout. + ${TimeoutRedirectPhoneNumberAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to phone number on Timeout. + ${TimeoutRedirectPhoneNumberTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voiceapp on Timeout. + ${TimeoutRedirectVoiceAppAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voiceapp on Timeout. + ${TimeoutRedirectVoiceAppTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voicemail on Timeout. + ${TimeoutRedirectVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voicemail on Timeout. + ${TimeoutRedirectVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when forwarding callers to shared voicemai. + ${TimeoutSharedVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when forwarding callers to shared voicemail. + ${TimeoutSharedVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the number of minutes that a call can be in the queue before it times out. + ${TimeoutThreshold}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to use default music on hold audio file. + ${UseDefaultMusicOnHold}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets the Call Queue's Users. + ${Users}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${WaitTimeBeforeOfferingCallbackInSecond}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the welcome audio file to play for the call queue. + ${WelcomeMusicAudioFileId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the welcome text to speech content for the call queue. + ${WelcomeTextToSpeechPrompt}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsCallQueue_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsCallQueue_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsCallQueue_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsCallQueue_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Update compliance recording template. +PUT /Teams.VoiceApps/compliance-recording/identity. +.Description +Update compliance recording template. +PUT /Teams.VoiceApps/compliance-recording/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IComplianceRecordingForCallQueueDtoModel +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateComplianceRecordingForCallQueueResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [BotId ]: Gets or sets the MRI of the first bot. + [ConcurrentInvitationCount ]: Gets or sets the number of concurrent invitations allowed. Concurrent invitations are used to send multiple invites to the CR bot. + [Description ]: Gets or sets the description of the compliance recording. + [Id ]: Gets or sets the identifier of the compliance recording. + [Name ]: Gets or sets the name of the compliance recording. + [PairedApplication ]: Gets or sets the paired applications for the compliance recording bot. This is a resiliency feature that allows invitation of another bot. If either of BotMRI or the paired application is available, we will consider the call to be successful. + [RequiredBeforeCall ]: Gets or sets a value indicating whether the compliance recording is required before the call. + [RequiredDuringCall ]: Gets or sets a value indicating whether the compliance recording is required during the call. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-cscompliancerecordingforcallqueuetemplate +#> +function Set-CsComplianceRecordingForCallQueueTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateComplianceRecordingForCallQueueResponse])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # The identity of the compliance recording configuration. + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IComplianceRecordingForCallQueueDtoModel] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the MRI of the first bot. + ${BotApplicationInstanceObjectId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the number of concurrent invitations allowed. + # Concurrent invitations are used to send multiple invites to the CR bot. + ${ConcurrentInvitationCount}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the description of the compliance recording. + ${Description}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the identifier of the compliance recording. + ${Id}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the name of the compliance recording. + ${Name}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the paired applications for the compliance recording bot. + # This is a resiliency feature that allows invitation of another bot.If either of BotMRI or the paired application is available, we will consider the call to be successful. + ${PairedApplicationInstanceObjectId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether the compliance recording is required before the call. + ${RequiredBeforeCall}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether the compliance recording is required during the call. + ${RequiredDuringCall}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsComplianceRecordingForCallQueueTemplate_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsComplianceRecordingForCallQueueTemplate_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsComplianceRecordingForCallQueueTemplate_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsComplianceRecordingForCallQueueTemplate_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Update configuration +.Description +Update configuration +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [(Any) ]: This indicates any property can be added to this object. + Identity : + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csconfiguration +#> +function Set-CsConfiguration { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Update', Mandatory)] + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ConfigName}, + + [Parameter(ParameterSetName='Update', Mandatory)] + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ConfigType}, + + [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Api Version + ${ApiVersion}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SchemaVersion}, + + [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Collections.Hashtable] + # Additional Parameters + ${AdditionalProperties}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Update = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsConfiguration_Update'; + UpdateExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsConfiguration_UpdateExpanded'; + UpdateViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsConfiguration_UpdateViaIdentity'; + UpdateViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsConfiguration_UpdateViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Update appointment booking flow for mainline attendant PUT api/v1.0/tenants/tenantId/mainline-attendant-flow/appointment-booking/identity +.Description +Update appointment booking flow for mainline attendant PUT api/v1.0/tenants/tenantId/mainline-attendant-flow/appointment-booking/identity +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAppointmentBookingFlowRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAppointmentBookingFlowResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : Represents a request to update a mainline attendant appointment booking flow. + [ApiAuthenticationType ]: Defines the type of API authentication to be used. Supported values include: Basic, ApiKey, BearerTokenStatic, BearerTokenDynamic. + [ApiDefinition ]: Contains detailed specifications or schema definitions for the API. + [CallerAuthenticationMethod ]: Specifies the method used to authenticate the caller. Supported values include: Sms, Email, VerificationLink, Voiceprint, UserDetails. + [ConfigurationId ]: Gets or sets the configuration ID of the mainline attendant appointment booking flow. + [Description ]: A brief description of the appointment booking flow. + [Identity ]: The unique identifier for the appointment booking flow. + [Name ]: The name assigned to the appointment booking flow. + [Type ]: The type of the mainline attendant flow. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csmainlineattendantappointmentbookingflow +#> +function Set-CsMainlineAttendantAppointmentBookingFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAppointmentBookingFlowResponse])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Flow Identity. + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAppointmentBookingFlowRequest] + # Represents a request to update a mainline attendant appointment booking flow. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Defines the type of API authentication to be used.Supported values include: Basic, ApiKey, BearerTokenStatic, BearerTokenDynamic. + ${ApiAuthenticationType}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Contains detailed specifications or schema definitions for the API. + ${ApiDefinitions}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Specifies the method used to authenticate the caller.Supported values include: Sms, Email, VerificationLink, Voiceprint, UserDetails. + ${CallerAuthenticationMethod}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the configuration ID of the mainline attendant appointment booking flow. + ${ConfigurationId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # A brief description of the appointment booking flow. + ${Description}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The unique identifier for the appointment booking flow. + ${Identity1}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The name assigned to the appointment booking flow. + ${Name}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The type of the mainline attendant flow. + ${Type}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsMainlineAttendantAppointmentBookingFlow_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsMainlineAttendantAppointmentBookingFlow_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsMainlineAttendantAppointmentBookingFlow_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsMainlineAttendantAppointmentBookingFlow_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Update question and answer flow for mainline attendant PUT api/v1.0/tenants/tenantId/mainline-attendant-flow/question-answer/identity +.Description +Update question and answer flow for mainline attendant PUT api/v1.0/tenants/tenantId/mainline-attendant-flow/question-answer/identity +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateQuestionAnswerFlowRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateQuestionAnswerFlowResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [ApiAuthenticationType ]: Gets or sets the api authentication type, allowed values: Basic, ApiKey, BearerTokenStatic, BearerTokenDynamic. + [ConfigurationId ]: Gets or sets the configuration ID of the mainline attendant question and answer flow. + [Description ]: Gets or sets the description of the mainline attendant question and answer flow. + [Identity ]: A brief description of the question and answer flow. + [KnowledgeBase ]: Gets or sets the detailed definitions of the knowledge base. + [Name ]: Gets or sets the name of the mainline attendant question and answer flow. + [Type ]: A brief description of the question and answer flow. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csmainlineattendantquestionanswerflow +#> +function Set-CsMainlineAttendantQuestionAnswerFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateQuestionAnswerFlowResponse])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Flow Identity. + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateQuestionAnswerFlowRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the api authentication type, allowed values: Basic, ApiKey, BearerTokenStatic, BearerTokenDynamic. + ${ApiAuthenticationType}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the configuration ID of the mainline attendant question and answer flow. + ${ConfigurationId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the description of the mainline attendant question and answer flow. + ${Description}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # A brief description of the question and answer flow. + ${Identity1}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the detailed definitions of the knowledge base. + ${KnowledgeBase}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the name of the mainline attendant question and answer flow. + ${Name}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # A brief description of the question and answer flow. + ${Type}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsMainlineAttendantQuestionAnswerFlow_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsMainlineAttendantQuestionAnswerFlow_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsMainlineAttendantQuestionAnswerFlow_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsMainlineAttendantQuestionAnswerFlow_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Sets a bridge using unique id. +This api is also used for Instance query. +.Description +Sets a bridge using unique id. +This api is also used for Instance query. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IBridgeUpdateRequest +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingBridge +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : Update Conferencing Bridge Default Service number, or make it tenant's default bridge. + [DefaultServiceNumber ]: Gets or sets service number to be updated as new default number of bridge. + [Name ]: Gets or sets name of the bridge. This can only be used when user sets the bridge using instance. + [SetDefault ]: Gets or sets a boolean value indicating if the bridge should be updated to be tenant's default bridge. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csodcbridge +#> +function Set-CsOdcBridge { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingBridge])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Identity of the bridge. + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set1', Mandatory)] + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetExpanded1', Mandatory)] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Name of the bridge. + ${Name}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='Set1', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IBridgeUpdateRequest] + # Update Conferencing Bridge Default Service number, or make it tenant's default bridge. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetExpanded1')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets service number to be updated as new default number of bridge. + ${DefaultServiceNumber}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetExpanded1')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a boolean value indicating if the bridge should be updated to be tenant's default bridge. + ${SetDefault}, + + [Parameter(ParameterSetName='SetExpanded1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets name of the bridge. + # This can only be used when user sets the bridge using instance. + ${Name1}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_Set'; + Set1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_Set1'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_SetExpanded'; + SetExpanded1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_SetExpanded1'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Set service number by unique id. +.Description +Set service number by unique id. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IServiceNumberUpdateRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : Update Conferencing Service number. + [PrimaryLanguage ]: The primary language CAA should use to service this call, e.g. en-US, en-GB etc. + [RestoreDefaultLanguage ]: Switch to indicate that the Primary and Secondary languages should be set to the default values. + [SecondaryLanguage ]: The list of secondary languages CAA should use to service this call. Number of secondary languages is limited to a max of 4. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csodcservicenumber +#> +function Set-CsOdcServiceNumber { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Identity of the service number. + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IServiceNumberUpdateRequest] + # Update Conferencing Service number. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The primary language CAA should use to service this call, e.g. + # en-US, en-GB etc. + ${PrimaryLanguage}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Switch to indicate that the Primary and Secondary languages should be set to the default values. + ${RestoreDefaultLanguages}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # The list of secondary languages CAA should use to service this call. + # Number of secondary languages is limited to a max of 4. + ${SecondaryLanguages}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcServiceNumber_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcServiceNumber_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcServiceNumber_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcServiceNumber_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +This cmdlet is used to modify the properties of a user that has been enabled for Microsoft's audio conferencing service. +.Description +This cmdlet is used to modify the properties of a user that has been enabled for Microsoft's audio conferencing service. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserData +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : User data to be sent. + [AllowTollFreeDialIn ]: Gets or sets a value indicating whether or not the meeting should allow dialin via toll-free service number. TODO: This is not a Switch parameter. + [BridgeId ]: Gets or sets the bridge identifier. + [BridgeName ]: Gets or sets the bridge name. + [ResetLeaderPin ]: Gets or sets a value indicating whether or not to reset the leader pin. TODO: This is a Switch parameter. + [SendEmail ]: Gets or sets a value indicating whether to sends an email with the PSTN Conference information of a user even if the tenant setting is off. TODO: This is a switch parameter. + [SendEmailToAddress ]: Gets or sets a value indicating To Address to send the email that contains the Audio Conference information. This parameter must be used together with -SendEmail. + [ServiceNumber ]: Gets or sets the service number to set as the user's default bridge number. + [TollFreeServiceNumber ]: Gets or sets the toll-free service number to set as the user's default toll-free service number. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csodcuser +#> +function Set-CsOdcUser { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Identity of the user. + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserData] + # User data to be sent. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether or not the meeting should allow dialin via toll-free service number.TODO: This is not a Switch parameter. + ${AllowTollFreeDialIn}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the bridge identifier. + ${BridgeId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the bridge name. + ${BridgeName}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether or not to reset the leader pin.TODO: This is a Switch parameter. + ${ResetLeaderPin}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to sends an email with the PSTN Conference information of a user even if the tenant setting is off.TODO: This is a switch parameter. + ${SendEmail}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets a value indicating To Address to send the email that contains the Audio Conference information.This parameter must be used together with -SendEmail. + ${SendEmailToAddress}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the service number to set as the user's default bridge number. + ${ServiceNumber}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the toll-free service number to set as the user's default toll-free service number. + ${TollFreeServiceNumber}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcUser_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcUser_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcUser_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcUser_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis + +.Description + +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponseInput +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnostics +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [Content ]: + [Country ]: + [ForceAccept ]: + [Locale ]: + [RespondedByObjectId ]: + [Response ]: + [ResponseTimestamp ]: + [Version ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csonlineenhancedemergencyservicedisclaimer +#> +function Set-CsOnlineEnhancedEmergencyServiceDisclaimer { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnostics])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponseInput] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Content}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CountryOrRegion}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${ForceAccept}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Locale}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${RespondedByObjectId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${Response}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${ResponseTimestamp}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Version}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineEnhancedEmergencyServiceDisclaimer_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineEnhancedEmergencyServiceDisclaimer_SetExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Updates a specific schedule. +PUT Teams.VoiceApps/schedules/identity. +.Description +Updates a specific schedule. +PUT Teams.VoiceApps/schedules/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISchedule +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IModifyScheduleResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [AssociatedConfigurationId ]: + [FixedScheduleDateTimeRange ]: + [End ]: + [Start ]: + [Id ]: + [Name ]: + [RecurrenceRangeEnd ]: + [RecurrenceRangeNumberOfOccurrence ]: + [RecurrenceRangeStart ]: + [RecurrenceRangeType ]: + [Type ]: + [WeeklyRecurrentScheduleFridayHour ]: + [End ]: + [Start ]: + [WeeklyRecurrentScheduleIsComplemented ]: + [WeeklyRecurrentScheduleMondayHour ]: + [WeeklyRecurrentScheduleSaturdayHour ]: + [WeeklyRecurrentScheduleSundayHour ]: + [WeeklyRecurrentScheduleThursdayHour ]: + [WeeklyRecurrentScheduleTuesdayHour ]: + [WeeklyRecurrentScheduleWednesdayHour ]: + +FIXEDSCHEDULEDATETIMERANGE : . + [End ]: + [Start ]: + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id + +WEEKLYRECURRENTSCHEDULEFRIDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULEMONDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULESATURDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULESUNDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULETHURSDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULETUESDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULEWEDNESDAYHOUR : . + [End ]: + [Start ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csonlineschedule +#> +function Set-CsOnlineSchedule { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IModifyScheduleResponse])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Id for the schedule to be updated. + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISchedule] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${AssociatedConfigurationId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDateTimeRange[]] + # . + # To construct, see NOTES section for FIXEDSCHEDULEDATETIMERANGE properties and create a hash table. + ${FixedScheduleDateTimeRange}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Id}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Name}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${RecurrenceRangeEnd}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${RecurrenceRangeNumberOfOccurrence}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${RecurrenceRangeStart}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${RecurrenceRangeType}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Type}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEFRIDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleFridayHour}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${WeeklyRecurrentScheduleIsComplemented}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEMONDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleMondayHour}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULESATURDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleSaturdayHour}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULESUNDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleSundayHour}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULETHURSDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleThursdayHour}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULETUESDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleTuesdayHour}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEWEDNESDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleWednesdayHour}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSchedule_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSchedule_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSchedule_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSchedule_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Enable or Disable Tenant VerifiedSipDomains. +.Description +Enable or Disable Tenant VerifiedSipDomains. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantSipDomainRequest +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : The request to update an tenant sip domain. + [Action ]: Action enable or disable domain. + [DomainName ]: Domain Name. +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csonlinesipdomain +#> +function Set-CsOnlineSipDomain { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantSipDomainRequest] + # The request to update an tenant sip domain. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Action enable or disable domain. + ${Action}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Domain Name. + ${DomainName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSipDomain_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSipDomain_SetExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Put OnlineVoicemailUserSettings. +.Description +Put OnlineVoicemailUserSettings. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : User Voicemail Settings base class. + [CallAnswerRule ]: Gets or sets CallAnswerRule. + [DefaultGreetingPromptOverwrite ]: Gets or sets DefaultGreetingPromptOverwrite. + [DefaultOofGreetingPromptOverwrite ]: Gets or sets DefaultOofGreetingPromptOverwrite. + [OofGreetingEnabled ]: Gets or sets a value indicating whether Out of Office Greeting is enabled. + [OofGreetingFollowAutomaticRepliesEnabled ]: Gets or sets a value indicating whether Out of Office Greeting Automatic Replies are enabled. + [PromptLanguage ]: Gets or sets prompt language. + [ShareData ]: Gets or sets a value indicating whether ShareData is enabled. + [TransferTarget ]: Gets or sets TransferTarget. + [VoicemailEnabled ]: Gets or sets a value indicating whether voicemail is enabled. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csonlinevmusersetting +#> +function Set-CsOnlineVMUserSetting { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings] + # User Voicemail Settings base class. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets CallAnswerRule. + ${CallAnswerRule}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets DefaultGreetingPromptOverwrite. + ${DefaultGreetingPromptOverwrite}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets DefaultOofGreetingPromptOverwrite. + ${DefaultOofGreetingPromptOverwrite}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether Out of Office Greetingis enabled. + ${OofGreetingEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether Out of Office GreetingAutomatic Replies are enabled. + ${OofGreetingFollowAutomaticRepliesEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets prompt language. + ${PromptLanguage}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether ShareDatais enabled. + ${ShareData}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets TransferTarget. + ${TransferTarget}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether voicemail is enabled. + ${VoicemailEnabled}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] @@ -24835,8 +35089,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsPhoneNumberAssignment_Remove'; - RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsPhoneNumberAssignment_RemoveViaIdentity'; + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVMUserSetting_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVMUserSetting_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVMUserSetting_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVMUserSetting_SetViaIdentityExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -24871,16 +35127,16 @@ end { <# .Synopsis -Removes delegate in bvd +Add/Update user personal attendant settings in uss .Description -Removes delegate in bvd -.Example -{{ Add code here }} +Add/Update user personal attendant settings in uss .Example -{{ Add code here }} + .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPersonalAttendantSettings .Outputs System.Boolean .Notes @@ -24888,6 +35144,22 @@ COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. +BODY : . + [AllowInboundFederatedCalls ]: + [AllowInboundInternalCalls ]: + [AllowInboundPSTNCalls ]: + [BookingCalendarId ]: + [CalleeName ]: + [DefaultLanguage ]: + [DefaultTone ]: + [DefaultVoice ]: + [IsAutomaticRecordingEnabled ]: + [IsAutomaticTranscriptionEnabled ]: + [IsBookingCalendarEnabled ]: + [IsCallScreeningEnabled ]: + [IsNonContactCallbackEnabled ]: + [IsPersonalAttendantEnabled ]: + INPUTOBJECT : Identity Parameter [AppId ]: [AudioFileId ]: @@ -24929,31 +35201,126 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/remove-csusercallingdelegate +https://docs.microsoft.com/en-us/powershell/module/teams/set-cspersonalattendantsettings #> -function Remove-CsUserCallingDelegate { +function Set-CsPersonalAttendantSettings { [OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Remove', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${Delegate}, - - [Parameter(ParameterSetName='Remove', Mandatory)] + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] # . ${Identity}, - [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPersonalAttendantSettings] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${AllowInboundFederatedCalls}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${AllowInboundInternalCalls}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${AllowInboundPSTNCalls}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CalleeName}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DefaultLanguage}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DefaultTone}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DefaultVoice}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsAutomaticRecordingEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsAutomaticTranscriptionEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsBookingCalendarEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsCallScreeningEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsNonContactCallbackEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsPersonalAttendantEnabled}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] @@ -25009,8 +35376,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsUserCallingDelegate_Remove'; - RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsUserCallingDelegate_RemoveViaIdentity'; + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsPersonalAttendantSettings_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsPersonalAttendantSettings_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsPersonalAttendantSettings_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsPersonalAttendantSettings_SetViaIdentityExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -25045,41 +35414,76 @@ end { <# .Synopsis -Searches a tenant for ODC users. + .Description -Searches a tenant for ODC users. + .Example {{ Add code here }} .Example {{ Add code here }} .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser +System.String .Link -https://docs.microsoft.com/en-us/powershell/module/teams/search-csodcuser +https://docs.microsoft.com/en-us/powershell/module/teams/set-csphonenumberassignment #> -function Search-CsOdcUser { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser])] -[CmdletBinding(DefaultParameterSetName='Search', PositionalBinding=$false)] +function Set-CsPhoneNumberAssignment { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='Set', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] - # Page Size. - ${PageSize}, + [System.String] + # . + ${AssignmentCategory}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${EnterpriseVoiceEnabled}, [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # Continuation / Pagination marker. - # Use the value from nextlink property in response. - ${Skiptoken}, + # . + ${Identity}, [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] - # To set the number of users to be fetched - ${Top}, + [System.String] + # . + ${LocationId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${NetworkSiteId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Notify}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${PhoneNumber}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${PhoneNumberType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${ReverseNumberLookup}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -25130,7 +35534,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Search = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Search-CsOdcUser_Search'; + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsPhoneNumberAssignment_Set'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -25165,101 +35569,138 @@ end { <# .Synopsis -Searches a tenant for users. +Update shared call queue history template. +PUT /Teams.VoiceApps/shared-call-queue-history/identity. .Description -Searches a tenant for users. +Update shared call queue history template. +PUT /Teams.VoiceApps/shared-call-queue-history/identity. .Example {{ Add code here }} .Example {{ Add code here }} +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISharedCallQueueHistoryDtoModel .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUser +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateSharedCallQueueHistoryResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [AnsweredAndOutboundCall ]: Gets or sets whether the shared call history for Answered and outbound calls is delivered to authorized users, authorized users and agents or none. + [Description ]: Gets or sets the description of the shared call queue history. + [Id ]: Gets or sets the identifier of the shared call queue history. + [IncomingMissedCall ]: Gets or sets whether the shared call history for Incoming missed calls is delivered to authorized users, authorized users and agents or none. + [Name ]: Gets or sets the name of the shared call queue history. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/search-csuser +https://docs.microsoft.com/en-us/powershell/module/teams/set-cssharedcallqueuehistorytemplate #> -function Search-CsUser { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUser])] -[CmdletBinding(DefaultParameterSetName='Search', PositionalBinding=$false)] +function Set-CsSharedCallQueueHistoryTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateSharedCallQueueHistoryResponse])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # To set defaultpropertyset value - ${Defaultpropertyset}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # To fetch optional location field - ${Expandlocation}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # MS Graph like query filters - ${Filter}, + # The identity of the shared call queue history configuration. + ${Identity}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # To set includedefaultproperties value - ${Includedefaultproperty}, + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # This parameter supports query to sort the results. - ${OrderBy}, + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISharedCallQueueHistoryDtoModel] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.Int32] - # Page Size. - ${PageSize}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Powershell like query filters - ${Psfilter}, + # Gets or sets whether the shared call history for Answered and outbound calls is delivered to authorized users, authorized users and agents or none. + ${AnsweredAndOutboundCalls}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Properties to select - ${Select}, + # Gets or sets the description of the shared call queue history. + ${Description}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Continuation / Pagination marker. - # Use the value from nextlink property in response. - ${Skiptoken}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # Skip user policies in user response object - ${Skipuserpolicy}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # To be set true when called to only fetch Soft deleted users - ${Softdeleteduser}, + # Gets or sets the identifier of the shared call queue history. + ${Id}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.Int32] - # To set the number of users to be fetched - ${Top}, + # Gets or sets whether the shared call history for Incoming missed calls is delivered to authorized users, authorized users and agents or none. + ${IncomingMissedCalls}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # To set to true when called from Get-CsVoiceUser cmdlet - ${Voiceuserquery}, + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the name of the shared call queue history. + ${Name}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -25310,7 +35751,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Search = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Search-CsUser_Search'; + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsSharedCallQueueHistoryTemplate_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsSharedCallQueueHistoryTemplate_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsSharedCallQueueHistoryTemplate_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsSharedCallQueueHistoryTemplate_SetViaIdentityExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -25345,170 +35789,38 @@ end { <# .Synopsis -Updates a specific AutoAttendant. -PUT Teams.VoiceApps/auto-attendants/identity. +Update IVR Tags Template. +PUT api/v1.0/tenants/tenantId/ivr-tags-template/identity. .Description -Updates a specific AutoAttendant. -PUT Teams.VoiceApps/auto-attendants/identity. +Update IVR Tags Template. +PUT api/v1.0/tenants/tenantId/ivr-tags-template/identity. .Example {{ Add code here }} .Example {{ Add code here }} -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAutoAttendant .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IIvrTagsTemplateDtoModel .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAutoAttendantResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateIvrTagsTemplateResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . - [ApplicationInstance ]: - [AuthorizedUser ]: - [CallFlow ]: - [ForceListenMenuEnabled ]: - [Greeting ]: - [ActiveType ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [TextToSpeechPrompt ]: - [Id ]: - [MenuDialByNameEnabled ]: - [MenuDirectorySearchMethod ]: - [MenuName ]: - [MenuOption ]: - [Action ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [CallTargetCallPriority ]: - [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: - [CallTargetEnableTranscription ]: - [CallTargetId ]: - [CallTargetType ]: - [DtmfResponse ]: - [PromptActiveType ]: - [PromptTextToSpeechPrompt ]: - [VoiceResponse ]: - [MenuPrompt ]: - [Name ]: - [CallHandlingAssociation ]: - [CallFlowId ]: - [Enabled ]: - [Priority ]: - [ScheduleId ]: - [Type ]: - [DefaultCallFlowForceListenMenuEnabled ]: - [DefaultCallFlowGreeting ]: - [DefaultCallFlowId ]: - [DefaultCallFlowName ]: - [DialByNameResourceId ]: - [ExclusionScopeGroupDialScopeGroupId ]: - [ExclusionScopeType ]: - [HideAuthorizedUser ]: Gets or sets hidden authorized user ids. - [Id ]: - [InclusionScopeGroupDialScopeGroupId ]: - [InclusionScopeType ]: - [LanguageId ]: - [MenuDialByNameEnabled ]: - [MenuDirectorySearchMethod ]: - [MenuName ]: - [MenuOption ]: - [MenuPrompt ]: - [Name ]: - [OperatorCallPriority ]: - [OperatorEnableSharedVoicemailSystemPromptSuppression ]: - [OperatorEnableTranscription ]: - [OperatorId ]: - [OperatorSharedVoicemailCallPriority ]: - [OperatorSharedVoicemailEnableSharedVoicemailSystemPromptSuppression ]: - [OperatorSharedVoicemailEnableTranscription ]: - [OperatorSharedVoicemailId ]: - [OperatorSharedVoicemailType ]: - [OperatorType ]: - [Schedule ]: - [AssociatedConfigurationId ]: - [FixedScheduleDateTimeRange ]: - [End ]: - [Start ]: - [Id ]: - [Name ]: - [RecurrenceRangeEnd ]: - [RecurrenceRangeNumberOfOccurrence ]: - [RecurrenceRangeStart ]: - [RecurrenceRangeType ]: - [Type ]: - [WeeklyRecurrentScheduleFridayHour ]: - [End ]: - [Start ]: - [WeeklyRecurrentScheduleIsComplemented ]: - [WeeklyRecurrentScheduleMondayHour ]: - [WeeklyRecurrentScheduleSaturdayHour ]: - [WeeklyRecurrentScheduleSundayHour ]: - [WeeklyRecurrentScheduleThursdayHour ]: - [WeeklyRecurrentScheduleTuesdayHour ]: - [WeeklyRecurrentScheduleWednesdayHour ]: - [Status ]: - [AuxiliaryData ]: Get or sets auxiliary data. - [ErrorCode ]: Gets or sets error code of audio, grammar. - [Id ]: Gets or sets dialByNameGrammarContext. - [Message ]: Gets or sets error meessage of audio, grammar. - [Status ]: Gets or sets resource status of autoattendant. - [StatusTimestamp ]: Gets or sets time stamp of auido, grammar status. - [Type ]: Gets or sets resource type of autoattendant. - [TenantId ]: - [TimeZoneId ]: - [UserNameExtension ]: - [VoiceId ]: - [VoiceResponseEnabled ]: - -CALLFLOW : . - [ForceListenMenuEnabled ]: - [Greeting ]: - [ActiveType ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [TextToSpeechPrompt ]: - [Id ]: - [MenuDialByNameEnabled ]: - [MenuDirectorySearchMethod ]: - [MenuName ]: - [MenuOption ]: - [Action ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [CallTargetCallPriority ]: - [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: - [CallTargetEnableTranscription ]: - [CallTargetId ]: - [CallTargetType ]: - [DtmfResponse ]: - [PromptActiveType ]: - [PromptTextToSpeechPrompt ]: - [VoiceResponse ]: - [MenuPrompt ]: - [Name ]: - -CALLHANDLINGASSOCIATION : . - [CallFlowId ]: - [Enabled ]: - [Priority ]: - [ScheduleId ]: - [Type ]: - -DEFAULTCALLFLOWGREETING : . - [ActiveType ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [TextToSpeechPrompt ]: +BODY : . + [Description ]: Description of the IVR tag template. + [Id ]: Gets or sets the unique identifier for the IVR tag template. This is used to link the IVR tag template to an AutoAttendant. + [Name ]: Gets or sets the name of the IVR tag template. + [Tag ]: List of tags associated with the IVR tag template. These contain the name and callbale entities to which the IVR can initiate a transfer to. + [TagDetailCallPriority ]: + [TagDetailEnableSharedVoicemailSystemPromptSuppression ]: + [TagDetailEnableTranscription ]: + [TagDetailId ]: + [TagDetailType ]: + [TagName ]: INPUTOBJECT : Identity Parameter [AppId ]: @@ -25551,71 +35863,25 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id -MENUOPTION : . - [Action ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [CallTargetCallPriority ]: - [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: - [CallTargetEnableTranscription ]: - [CallTargetId ]: - [CallTargetType ]: - [DtmfResponse ]: - [PromptActiveType ]: - [PromptTextToSpeechPrompt ]: - [VoiceResponse ]: - -MENUPROMPT : . - [ActiveType ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [TextToSpeechPrompt ]: - -SCHEDULE : . - [AssociatedConfigurationId ]: - [FixedScheduleDateTimeRange ]: - [End ]: - [Start ]: - [Id ]: - [Name ]: - [RecurrenceRangeEnd ]: - [RecurrenceRangeNumberOfOccurrence ]: - [RecurrenceRangeStart ]: - [RecurrenceRangeType ]: - [Type ]: - [WeeklyRecurrentScheduleFridayHour ]: - [End ]: - [Start ]: - [WeeklyRecurrentScheduleIsComplemented ]: - [WeeklyRecurrentScheduleMondayHour ]: - [WeeklyRecurrentScheduleSaturdayHour ]: - [WeeklyRecurrentScheduleSundayHour ]: - [WeeklyRecurrentScheduleThursdayHour ]: - [WeeklyRecurrentScheduleTuesdayHour ]: - [WeeklyRecurrentScheduleWednesdayHour ]: - -STATUS : . - [AuxiliaryData ]: Get or sets auxiliary data. - [ErrorCode ]: Gets or sets error code of audio, grammar. - [Id ]: Gets or sets dialByNameGrammarContext. - [Message ]: Gets or sets error meessage of audio, grammar. - [Status ]: Gets or sets resource status of autoattendant. - [StatusTimestamp ]: Gets or sets time stamp of auido, grammar status. - [Type ]: Gets or sets resource type of autoattendant. +TAG : List of tags associated with the IVR tag template.These contain the name and callbale entities to which the IVR can initiate a transfer to. + [TagDetailCallPriority ]: + [TagDetailEnableSharedVoicemailSystemPromptSuppression ]: + [TagDetailEnableTranscription ]: + [TagDetailId ]: + [TagDetailType ]: + [TagName ]: .Link -https://docs.microsoft.com/en-us/powershell/module/teams/set-csautoattendant +https://docs.microsoft.com/en-us/powershell/module/teams/set-cstagstemplate #> -function Set-CsAutoAttendant { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAutoAttendantResponse])] +function Set-CsTagsTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateIvrTagsTemplateResponse])] [CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(ParameterSetName='Set', Mandatory)] [Parameter(ParameterSetName='SetExpanded', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # Id for the auto attendant to be updated. + # . ${Identity}, [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] @@ -25629,302 +35895,266 @@ param( [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAutoAttendant] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IIvrTagsTemplateDtoModel] # . # To construct, see NOTES section for BODY properties and create a hash table. ${Body}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # . - ${ApplicationInstance}, + [System.String] + # Description of the IVR tag template. + ${Description}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # . - ${AuthorizedUser}, + [System.String] + # Gets or sets the unique identifier for the IVR tag template. + # This is used to link the IVR tag template to an AutoAttendant. + ${Id}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallFlow[]] - # . - # To construct, see NOTES section for CALLFLOW properties and create a hash table. - ${CallFlow}, + [System.String] + # Gets or sets the name of the IVR tag template. + ${Name}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallHandlingAssociation[]] - # . - # To construct, see NOTES section for CALLHANDLINGASSOCIATION properties and create a hash table. - ${CallHandlingAssociation}, + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IIvrTagDtoModel[]] + # List of tags associated with the IVR tag template.These contain the name and callbale entities to which the IVR can initiate a transfer to. + # To construct, see NOTES section for TAG properties and create a hash table. + ${Tag}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] - # . - ${DefaultCallFlowForceListenMenuEnabled}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] - # . - # To construct, see NOTES section for DEFAULTCALLFLOWGREETING properties and create a hash table. - ${DefaultCallFlowGreeting}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${DefaultCallFlowId}, + # Wait for .NET debugger to attach + ${Break}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${DefaultCallFlowName}, + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${DialByNameResourceId}, + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # . - ${ExclusionScopeGroupDialScopeGroupId}, + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${ExclusionScopeType}, + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # Gets or sets hidden authorized user ids. - ${HideAuthorizedUser}, + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Id}, +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # . - ${InclusionScopeGroupDialScopeGroupId}, + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTagsTemplate_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTagsTemplate_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTagsTemplate_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTagsTemplate_SetViaIdentityExpanded'; + } - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${InclusionScopeType}, + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${LanguageId}, + throw + } +} - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${MenuDialByNameEnabled}, +process { + try { + $steppablePipeline.Process($_) + } catch { - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${MenuDirectorySearchMethod}, + throw + } - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${MenuName}, +} +end { + try { + $steppablePipeline.End() - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMenuOption[]] - # . - # To construct, see NOTES section for MENUOPTION properties and create a hash table. - ${MenuOption}, + } catch { - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] - # . - # To construct, see NOTES section for MENUPROMPT properties and create a hash table. - ${MenuPrompt}, + throw + } +} +} - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Name}, +<# +.Synopsis +Set Org Settings - Set-CsTeamsSettingsCustomApp +.Description +Set Org Settings - Set-CsTeamsSettingsCustomApp +.Example +{{ Add code here }} +.Example +{{ Add code here }} - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # . - ${OperatorCallPriority}, +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateCustomAppSettingRequest +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${OperatorEnableSharedVoicemailSystemPromptSuppression}, +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${OperatorEnableTranscription}, +APPACCESSREQUESTCONFIG : . + [AdminInstructionMessage ]: Admin instructions for app access requests. + [ApprovalPortalUrl ]: Tenant's approval portal URL for app access requests. - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${OperatorId}, +APPSETTINGSLIST : List of appSettings. + [Context ]: App context. + [Id ]: App Id. + [IsAppLevelAutoInstallEnabled ]: Auto Installation of app is enabled or not. + [IsEnabled ]: App is enabled or not. - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] +BODY : . + [AppAccessRequestConfig ]: + [AdminInstructionMessage ]: Admin instructions for app access requests. + [ApprovalPortalUrl ]: Tenant's approval portal URL for app access requests. + [AppSettingsList ]: List of appSettings. + [Context ]: App context. + [Id ]: App Id. + [IsAppLevelAutoInstallEnabled ]: Auto Installation of app is enabled or not. + [IsEnabled ]: App is enabled or not. + [IsAppsEnabled ]: Setting to indicate external apps enabled or not. + [IsAppsPurchaseEnabled ]: Setting to indicate purchase external apps enabled or not. + [IsExternalAppsEnabledByDefault ]: Setting to indicate external apps enabled by default or not. + [IsLicenseBasedPinnedAppsEnabled ]: Feature flag for tailored apps experience for F license users. + [IsSideloadedAppsInteractionEnabled ]: Members of this tenant can see and interact with side-loaded apps, which control custom app settings in TAMS. + [IsTenantWideAutoInstallEnabled ]: Setting to indicate auto-installation of external apps. + [LobBackground ]: Background of the LOB banner. It is either an image URL or a color code. + [LobLogo ]: Logo of the LOB banner. It is either an image URL or a color code. + [LobLogomark ]: Logomark in the LOB category. It is either an image URL or a color code. + [LobTextColor ]: Color of the text in the LOB banner. +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csteamssettingscustomapp +#> +function Set-CsTeamsSettingsCustomApp { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateCustomAppSettingRequest] # . - ${OperatorSharedVoicemailCallPriority}, + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAppAccessRequestConfig] # . - ${OperatorSharedVoicemailEnableSharedVoicemailSystemPromptSuppression}, + # To construct, see NOTES section for APPACCESSREQUESTCONFIG properties and create a hash table. + ${AppAccessRequestConfig}, [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${OperatorSharedVoicemailEnableTranscription}, + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IApplicationObject[]] + # List of appSettings. + # To construct, see NOTES section for APPSETTINGSLIST properties and create a hash table. + ${AppSettingsList}, [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${OperatorSharedVoicemailId}, + [System.Management.Automation.SwitchParameter] + # Setting to indicate external apps enabled or not. + ${IsAppsEnabled}, [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${OperatorSharedVoicemailType}, + [System.Management.Automation.SwitchParameter] + # Setting to indicate purchase external apps enabled or not. + ${IsAppsPurchaseEnabled}, [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${OperatorType}, + [System.Management.Automation.SwitchParameter] + # Setting to indicate external apps enabled by default or not. + ${IsExternalAppsEnabledByDefault}, [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISchedule[]] - # . - # To construct, see NOTES section for SCHEDULE properties and create a hash table. - ${Schedule}, + [System.Management.Automation.SwitchParameter] + # Feature flag for tailored apps experience for F license users. + ${IsLicenseBasedPinnedAppsEnabled}, [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IStatusRecord2[]] - # . - # To construct, see NOTES section for STATUS properties and create a hash table. - ${Status}, + [System.Management.Automation.SwitchParameter] + # Members of this tenant can see and interact with side-loaded apps, which control custom app settings in TAMS. + ${IsSideloadedAppsInteractionEnabled}, [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${TenantId}, + [System.Management.Automation.SwitchParameter] + # Setting to indicate auto-installation of external apps. + ${IsTenantWideAutoInstallEnabled}, [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${TimeZoneId}, + # Background of the LOB banner. + # It is either an image URL or a color code. + ${LobBackground}, [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${UserNameExtension}, + # Logo of the LOB banner. + # It is either an image URL or a color code. + ${LobLogo}, [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${VoiceId}, + # Logomark in the LOB category. + # It is either an image URL or a color code. + ${LobLogomark}, [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${VoiceResponseEnabled}, + [System.String] + # Color of the text in the LOB banner. + ${LobTextColor}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -25946,6 +36176,12 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -25975,10 +36211,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsAutoAttendant_Set'; - SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsAutoAttendant_SetExpanded'; - SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsAutoAttendant_SetViaIdentity'; - SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsAutoAttendant_SetViaIdentityExpanded'; + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsSettingsCustomApp_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsSettingsCustomApp_SetExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -26013,11 +36247,9 @@ end { <# .Synopsis -Update call queue. -PUT Teams.VoiceApps/callqueues/identity. +Updates delegate in bvd .Description -Update call queue. -PUT Teams.VoiceApps/callqueues/identity. +Updates delegate in bvd .Example {{ Add code here }} .Example @@ -26025,99 +36257,13 @@ PUT Teams.VoiceApps/callqueues/identity. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateCallQueueRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord +System.Boolean .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : CallQueue modify request DTO class. - [AgentAlertTime ]: Gets or sets the number of seconds that a call can remain unanswered. - [AllowOptOut ]: Gets or sets a value indicating whether to allow agent optout on Call Queue. - [AuthorizedUser ]: Gets or sets authorized user ids. - [CallToAgentRatioThresholdBeforeOfferingCallback ]: - [CallbackEmailNotificationTarget ]: Gets or sets the target of the callback email notification target. - [CallbackOfferAudioFilePromptResourceId ]: - [CallbackOfferTextToSpeechPrompt ]: - [CallbackRequestDtmf ]: - [ConferenceMode ]: Gets or sets a value indicating whether to allow Conference Mode on Call Queue. - [DistributionList ]: Gets or sets the Call Queue's Distribution List. - [EnableNoAgentSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. - [EnableNoAgentSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. - [EnableOverflowSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. - [EnableOverflowSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. - [EnableResourceAccountsForObo ]: Gets or sets a value indicating whether to allow CQ+Chanined RA's as permissioned RA's. - [EnableTimeoutSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. - [EnableTimeoutSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. - [HideAuthorizedUser ]: Gets or sets hidden authorized user ids. - [IsCallbackEnabled ]: - [LanguageId ]: Gets or sets the language Id used for TTS. - [MusicOnHoldAudioFileId ]: Gets or sets the call flows for the auto attendant app endpoint. - [Name ]: Gets or sets the Call Queue's name. - [NoAgentAction ]: Gets or sets the action to take if the NoAgent is LoggedIn/OptedIn. - [NoAgentActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of no agent. - [NoAgentActionTarget ]: Gets or sets the target of the NoAgent action. - [NoAgentApplyTo ]: Determines whether NoAgent Action is applied to All Calls or to new calls only. - [NoAgentDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on NoAgent. - [NoAgentDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on NoAgent. - [NoAgentRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on NoAgent. - [NoAgentRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on NoAgent. - [NoAgentRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on NoAgent. - [NoAgentRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on NoAgent. - [NoAgentRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on NoAgent. - [NoAgentRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on NoAgent. - [NoAgentRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on NoAgent. - [NoAgentRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on NoAgent. - [NoAgentSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemail. - [NoAgentSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. - [NumberOfCallsInQueueBeforeOfferingCallback ]: - [OboResourceAccountId ]: Gets or sets the list of Obo resource account ids. - [OverflowAction ]: Gets or sets the action to take when the overflow threshold is reached. - [OverflowActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of overflow. - [OverflowActionTarget ]: Gets or sets the target of the overflow action. - [OverflowDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on overflow. - [OverflowDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on overflow. - [OverflowRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on overflow. - [OverflowRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on overflow. - [OverflowRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on overflow. - [OverflowRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on overflow. - [OverflowRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on overflow. - [OverflowRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on overflow. - [OverflowRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on overflow. - [OverflowRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on overflow. - [OverflowSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemai. - [OverflowSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. - [OverflowThreshold ]: Gets or sets the number of simultaneous calls that can be in the queue at any one time. - [PresenceAwareRouting ]: Gets or sets a value indicating whether to enable presence aware routing. - [RoutingMethod ]: Gets or sets the routing method for the Call Queue. - [ServiceLevelThresholdResponseTimeInSecond ]: - [ShouldOverwriteCallableChannelProperty ]: Gets or sets ShouldOverwriteCallableChannelProperty flag that indicates user intention to whether overwirte the current callableChannel property value on chat service or not. - [ThreadId ]: Gets or sets teams channel thread id if user choose to sync CQ with a channel. - [TimeoutAction ]: Gets or sets the action to take if the timeout threshold is reached. - [TimeoutActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of timeout. - [TimeoutActionTarget ]: Gets or sets the target of the timeout action. - [TimeoutDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on Timeout. - [TimeoutDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on Timeout. - [TimeoutRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on Timeout. - [TimeoutRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on Timeout. - [TimeoutRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on Timeout. - [TimeoutRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on Timeout. - [TimeoutRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on Timeout. - [TimeoutRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on Timeout. - [TimeoutRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on Timeout. - [TimeoutRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on Timeout. - [TimeoutSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemai. - [TimeoutSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. - [TimeoutThreshold ]: Gets or sets the number of minutes that a call can be in the queue before it times out. - [UseDefaultMusicOnHold ]: Gets or sets a value indicating whether to use default music on hold audio file. - [User ]: Gets or sets the Call Queue's Users. - [WaitTimeBeforeOfferingCallbackInSecond ]: - [WelcomeMusicAudioFileId ]: Gets or sets the welcome audio file to play for the call queue. - [WelcomeTextToSpeechPrompt ]: Gets or sets the welcome text to speech content for the call queue. - INPUTOBJECT : Identity Parameter [AppId ]: [AudioFileId ]: @@ -26159,21 +36305,25 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/set-cscallqueue +https://docs.microsoft.com/en-us/powershell/module/teams/set-csusercallingdelegate #> -function Set-CsCallQueue { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] -[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Set-CsUserCallingDelegate { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Set', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(ParameterSetName='Set', Mandatory)] - [Parameter(ParameterSetName='SetExpanded', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # . + # ObjectId of the to-be-added member. + ${Delegate}, + + [Parameter(ParameterSetName='Set', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # ObjectId of the group owner ${Identity}, [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter @@ -26182,596 +36332,531 @@ param( [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${ChannelUserObjectId}, - - [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateCallQueueRequest] - # CallQueue modify request DTO class. - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the number of seconds that a call can remain unanswered. - ${AgentAlertTime}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether to allow agent optout on Call Queue. - ${AllowOptOut}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # Gets or sets authorized user ids. - ${AuthorizedUsers}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # . - ${CallToAgentRatioThresholdBeforeOfferingCallback}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the target of the callback email notification target. - ${CallbackEmailNotificationTarget}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CallbackOfferAudioFilePromptResourceId}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CallbackOfferTextToSpeechPrompt}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CallbackRequestDtmf}, + # If the member is allowed to make calls. + ${MakeCalls}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether to allow Conference Mode on Call Queue. - ${ConferenceMode}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # Gets or sets the Call Queue's Distribution List. - ${DistributionLists}, + # If the member is allowed to manage call settings. + ${ManageSettings}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating if system message should be suppressed or not. - ${EnableNoAgentSharedVoicemailSystemPromptSuppression}, + # If the member is allowed to receive calls. + ${ReceiveCalls}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating if transcription should be turned on or not. - ${EnableNoAgentSharedVoicemailTranscription}, + # Wait for .NET debugger to attach + ${Break}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating if system message should be suppressed or not. - ${EnableOverflowSharedVoicemailSystemPromptSuppression}, + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating if transcription should be turned on or not. - ${EnableOverflowSharedVoicemailTranscription}, + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether to allow CQ+Chanined RA's as permissioned RA's. - ${EnableResourceAccountsForObo}, + # Returns true when the command succeeds + ${PassThru}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating if system message should be suppressed or not. - ${EnableTimeoutSharedVoicemailSystemPromptSuppression}, + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating if transcription should be turned on or not. - ${EnableTimeoutSharedVoicemailTranscription}, + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # Gets or sets hidden authorized user ids. - ${HideAuthorizedUsers}, +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${IsCallbackEnabled}, + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserCallingDelegate_Set'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserCallingDelegate_SetViaIdentity'; + } - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the language Id used for TTS. - ${LanguageId}, + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the call flows for the auto attendant app endpoint. - ${MusicOnHoldAudioFileId}, + throw + } +} - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the Call Queue's name. - ${Name}, +process { + try { + $steppablePipeline.Process($_) + } catch { - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the action to take if the NoAgent is LoggedIn/OptedIn. - ${NoAgentAction}, + throw + } - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of no agent. - ${NoAgentActionCallPriority}, +} +end { + try { + $steppablePipeline.End() - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the target of the NoAgent action. - ${NoAgentActionTarget}, + } catch { - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Determines whether NoAgent Action is applied to All Calls or to new calls only. - ${NoAgentApplyTo}, + throw + } +} +} - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is disconnected on NoAgent. - ${NoAgentDisconnectAudioFilePrompt}, +<# +.Synopsis +Add/Update online user routing settings in bvd +.Description +Add/Update online user routing settings in bvd +.Example +{{ Add code here }} +.Example +{{ Add code here }} - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is disconnected on NoAgent. - ${NoAgentDisconnectTextToSpeechPrompt}, +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserRoutingSettings +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to person on NoAgent. - ${NoAgentRedirectPersonAudioFilePrompt}, +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to person on NoAgent. - ${NoAgentRedirectPersonTextToSpeechPrompt}, +BODY : . + [CallGroupDetailDelay ]: + [CallGroupOrder ]: + [CallGroupTargets ]: + [Delegates ]: + [Id ]: + [MakeCalls ]: + [ManageSettings ]: + [ReceiveCalls ]: + [Delegators ]: + [ForwardingTarget ]: + [ForwardingTargetType ]: + [ForwardingType ]: + [GroupMembershipDetails ]: + [CallGroupOwnerId ]: + [NotificationSetting ]: + [GroupNotificationOverride ]: + [IsForwardingEnabled ]: + [IsUnansweredEnabled ]: + [SipUri ]: + [UnansweredDelay ]: + [UnansweredTarget ]: + [UnansweredTargetType ]: - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to phone number on NoAgent. - ${NoAgentRedirectPhoneNumberAudioFilePrompt}, +DELEGATIONSETTINGDELEGATE : . + [Id ]: + [MakeCalls ]: + [ManageSettings ]: + [ReceiveCalls ]: - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to phone number on NoAgent. - ${NoAgentRedirectPhoneNumberTextToSpeechPrompt}, +DELEGATIONSETTINGDELEGATOR : . + [Id ]: + [MakeCalls ]: + [ManageSettings ]: + [ReceiveCalls ]: - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to voiceapp on NoAgent. - ${NoAgentRedirectVoiceAppAudioFilePrompt}, +GROUPMEMBERSHIPDETAILS : . + [CallGroupOwnerId ]: + [NotificationSetting ]: - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csusercallingsettings +#> +function Set-CsUserCallingSettings { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # Gets or sets the TTS to be played when call is redirected to voiceapp on NoAgent. - ${NoAgentRedirectVoiceAppTextToSpeechPrompt}, + # . + ${Identity}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to voicemail on NoAgent. - ${NoAgentRedirectVoicemailAudioFilePrompt}, + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to voicemail on NoAgent. - ${NoAgentRedirectVoicemailTextToSpeechPrompt}, + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserRoutingSettings] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the audio file to be played when forwarding callers to shared voicemail. - ${NoAgentSharedVoicemailAudioFilePrompt}, + # . + ${CallGroupDetailDelay}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the TTS to be played when forwarding callers to shared voicemail. - ${NoAgentSharedVoicemailTextToSpeechPrompt}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] # . - ${NumberOfCallsInQueueBeforeOfferingCallback}, + ${CallGroupOrder}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String[]] - # Gets or sets the list of Obo resource account ids. - ${OboResourceAccountIds}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the action to take when the overflow threshold is reached. - ${OverflowAction}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of overflow. - ${OverflowActionCallPriority}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the target of the overflow action. - ${OverflowActionTarget}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is disconnected on overflow. - ${OverflowDisconnectAudioFilePrompt}, + # . + ${CallGroupTargets}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the TTS to be played when call is disconnected on overflow. - ${OverflowDisconnectTextToSpeechPrompt}, + # . + ${ForwardingTarget}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the audio file to be played when call is redirected to person on overflow. - ${OverflowRedirectPersonAudioFilePrompt}, + # . + ${ForwardingTargetType}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the TTS to be played when call is redirected to person on overflow. - ${OverflowRedirectPersonTextToSpeechPrompt}, + # . + ${ForwardingType}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to phone number on overflow. - ${OverflowRedirectPhoneNumberAudioFilePrompt}, + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallGroupMembershipDetails[]] + # . + # To construct, see NOTES section for GROUPMEMBERSHIPDETAILS properties and create a hash table. + ${GroupMembershipDetails}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the TTS to be played when call is redirected to phone number on overflow. - ${OverflowRedirectPhoneNumberTextToSpeechPrompt}, + # . + ${GroupNotificationOverride}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to voiceapp on overflow. - ${OverflowRedirectVoiceAppAudioFilePrompt}, + [System.Management.Automation.SwitchParameter] + # . + ${IsForwardingEnabled}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to voiceapp on overflow. - ${OverflowRedirectVoiceAppTextToSpeechPrompt}, + [System.Management.Automation.SwitchParameter] + # . + ${IsUnansweredEnabled}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the audio file to be played when call is redirected to voicemail on overflow. - ${OverflowRedirectVoicemailAudioFilePrompt}, + # . + ${SipUri}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the TTS to be played when call is redirected to voicemail on overflow. - ${OverflowRedirectVoicemailTextToSpeechPrompt}, + # . + ${UnansweredDelay}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the audio file to be played when forwarding callers to shared voicemai. - ${OverflowSharedVoicemailAudioFilePrompt}, + # . + ${UnansweredTarget}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the TTS to be played when forwarding callers to shared voicemail. - ${OverflowSharedVoicemailTextToSpeechPrompt}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the number of simultaneous calls that can be in the queue at any one time. - ${OverflowThreshold}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether to enable presence aware routing. - ${PresenceAwareRouting}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the routing method for the Call Queue. - ${RoutingMethod}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] # . - ${ServiceLevelThresholdResponseTimeInSecond}, + ${UnansweredTargetType}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] - # Gets or sets ShouldOverwriteCallableChannelProperty flag that indicates user intention to whether overwirte the current callableChannel property value on chat service or not. - ${ShouldOverwriteCallableChannelProperty}, + # Wait for .NET debugger to attach + ${Break}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets teams channel thread id if user choose to sync CQ with a channel. - ${ThreadId}, + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the action to take if the timeout threshold is reached. - ${TimeoutAction}, + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of timeout. - ${TimeoutActionCallPriority}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the target of the timeout action. - ${TimeoutActionTarget}, + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is disconnected on Timeout. - ${TimeoutDisconnectAudioFilePrompt}, + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is disconnected on Timeout. - ${TimeoutDisconnectTextToSpeechPrompt}, + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to person on Timeout. - ${TimeoutRedirectPersonAudioFilePrompt}, +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to person on Timeout. - ${TimeoutRedirectPersonTextToSpeechPrompt}, + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserCallingSettings_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserCallingSettings_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserCallingSettings_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserCallingSettings_SetViaIdentityExpanded'; + } - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to phone number on Timeout. - ${TimeoutRedirectPhoneNumberAudioFilePrompt}, + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to phone number on Timeout. - ${TimeoutRedirectPhoneNumberTextToSpeechPrompt}, + throw + } +} - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to voiceapp on Timeout. - ${TimeoutRedirectVoiceAppAudioFilePrompt}, +process { + try { + $steppablePipeline.Process($_) + } catch { - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to voiceapp on Timeout. - ${TimeoutRedirectVoiceAppTextToSpeechPrompt}, + throw + } - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to voicemail on Timeout. - ${TimeoutRedirectVoicemailAudioFilePrompt}, +} +end { + try { + $steppablePipeline.End() - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to voicemail on Timeout. - ${TimeoutRedirectVoicemailTextToSpeechPrompt}, + } catch { - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when forwarding callers to shared voicemai. - ${TimeoutSharedVoicemailAudioFilePrompt}, + throw + } +} +} - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when forwarding callers to shared voicemail. - ${TimeoutSharedVoicemailTextToSpeechPrompt}, +<# +.Synopsis +Set User. +.Description +Set User. +.Example +{{ Add code here }} +.Example +{{ Add code here }} - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the number of minutes that a call can be in the queue before it times out. - ${TimeoutThreshold}, +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +System.Collections.Hashtable +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserMas +.Notes +COMPLEX PARAMETER PROPERTIES - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether to use default music on hold audio file. - ${UseDefaultMusicOnHold}, +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # Gets or sets the Call Queue's Users. - ${Users}, +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csusergenerated +#> +function Set-CsUserGenerated { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserMas])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # UserId. + ${UserId}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # . - ${WaitTimeBeforeOfferingCallbackInSecond}, + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the welcome audio file to play for the call queue. - ${WelcomeMusicAudioFileId}, + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.Info(Required, PossibleTypes=([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDictionaryOfString]))] + [System.Collections.Hashtable] + # Dictionary of + ${Body}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the welcome text to speech content for the call queue. - ${WelcomeTextToSpeechPrompt}, + [System.Collections.Hashtable] + # Additional Parameters + ${AdditionalProperties}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -26822,10 +36907,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsCallQueue_Set'; - SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsCallQueue_SetExpanded'; - SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsCallQueue_SetViaIdentity'; - SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsCallQueue_SetViaIdentityExpanded'; + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserGenerated_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserGenerated_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserGenerated_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserGenerated_SetViaIdentityExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -26860,28 +36945,33 @@ end { <# .Synopsis -Update configuration +Unassigns the previously assigned service number as default Conference Bridge number. .Description -Update configuration +Unassigns the previously assigned service number as default Conference Bridge number. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -System.Boolean +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . - [(Any) ]: This indicates any property can be added to this object. - Identity : +BODY : Class representing ConferencingServiceNumber. + [BridgeId ]: Gets or sets the unique identifier of the Bridge that this ServiceNumber belongs to. + [City ]: Gets or sets the Geocode where the ServiceNumber is intended to be used. + [IsShared ]: Gets or sets a value indicating whether the number is shared between multiple tenants. If this is the case then tenant admins will be unable to edit the number. + [Number ]: Gets or sets the 11 digit number identifying the ServiceNumber. + [PrimaryLanguage ]: Gets or sets the primary language of the ServiceNumber. e.g.: "en-US". + [SecondaryLanguages ]: Gets or sets the list of secondary languages of the ServiceNumber. e.g.: "fr-FR","en-GB","en-IN". + [Type ]: Gets or sets defines the number type Toll/Toll-Free. INPUTOBJECT : Identity Parameter [AppId ]: @@ -26924,28 +37014,21 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/set-csconfiguration +https://docs.microsoft.com/en-us/powershell/module/teams/unregister-csodcservicenumber #> -function Set-CsConfiguration { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Unregister-CsOdcServiceNumber { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber])] +[CmdletBinding(DefaultParameterSetName='UnregisterExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${ConfigName}, - - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Parameter(ParameterSetName='Unregister', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # . - ${ConfigType}, + # Service number to be assigned to a bridge. + # The service number in E.164 format, e.g. + # +14251112222 or tel:+14251112222. + ${Identity}, - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='UnregisterViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter @@ -26955,36 +37038,73 @@ param( [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # Api Version - ${ApiVersion}, + # The conferencing bridge identifier to assign the service numbers to. + ${BridgeId}, [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # . - ${SchemaVersion}, + # The conferencing bridge name to assign the service numbers. + ${BridgeName}, - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # Switch parameter as a backdoor hook to remove the default service number on bridge. + ${RemoveDefaultServiceNumber}, + + [Parameter(ParameterSetName='Unregister1', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration] - # . + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber] + # Class representing ConferencingServiceNumber. # To construct, see NOTES section for BODY properties and create a hash table. ${Body}, - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory)] + [Parameter(ParameterSetName='UnregisterExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${Identity}, + # Gets or sets the unique identifier of the Bridge that this ServiceNumber belongs to. + ${BridgeId1}, - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Parameter(ParameterSetName='UnregisterExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Collections.Hashtable] - # Additional Parameters - ${AdditionalProperties}, + [System.String] + # Gets or sets the Geocode where the ServiceNumber is intended to be used. + ${City}, + + [Parameter(ParameterSetName='UnregisterExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether the number is shared between multiple tenants. + # If this is the casethen tenant admins will be unable to edit the number. + ${IsShared}, + + [Parameter(ParameterSetName='UnregisterExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the 11 digit number identifying the ServiceNumber. + ${Number}, + + [Parameter(ParameterSetName='UnregisterExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the primary language of the ServiceNumber. + # e.g.: "en-US". + ${PrimaryLanguage}, + + [Parameter(ParameterSetName='UnregisterExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets the list of secondary languages of the ServiceNumber. + # e.g.: "fr-FR","en-GB","en-IN". + ${SecondaryLanguage}, + + [Parameter(ParameterSetName='UnregisterExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets defines the number type Toll/Toll-Free. + ${Type}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -27006,12 +37126,6 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -27041,10 +37155,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Update = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsConfiguration_Update'; - UpdateExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsConfiguration_UpdateExpanded'; - UpdateViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsConfiguration_UpdateViaIdentity'; - UpdateViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsConfiguration_UpdateViaIdentityExpanded'; + Unregister = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Unregister-CsOdcServiceNumber_Unregister'; + Unregister1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Unregister-CsOdcServiceNumber_Unregister1'; + UnregisterExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Unregister-CsOdcServiceNumber_UnregisterExpanded'; + UnregisterViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Unregister-CsOdcServiceNumber_UnregisterViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -27079,32 +37193,25 @@ end { <# .Synopsis -Sets a bridge using unique id. -This api is also used for Instance query. +Refresh a specific AutoAttendant dail by grammer. +POST /Teams.VoiceApps/autoAttendants/{identity}/refresh. .Description -Sets a bridge using unique id. -This api is also used for Instance query. +Refresh a specific AutoAttendant dail by grammer. +POST /Teams.VoiceApps/autoAttendants/{identity}/refresh. .Example {{ Add code here }} .Example {{ Add code here }} -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IBridgeUpdateRequest .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingBridge +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAutoAttendantResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : Update Conferencing Bridge Default Service number, or make it tenant's default bridge. - [DefaultServiceNumber ]: Gets or sets service number to be updated as new default number of bridge. - [Name ]: Gets or sets name of the bridge. This can only be used when user sets the bridge using instance. - [SetDefault ]: Gets or sets a boolean value indicating if the bridge should be updated to be tenant's default bridge. - INPUTOBJECT : Identity Parameter [AppId ]: [AudioFileId ]: @@ -27146,68 +37253,25 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/set-csodcbridge +https://docs.microsoft.com/en-us/powershell/module/teams/update-csautoattendant #> -function Set-CsOdcBridge { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingBridge])] -[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Update-CsAutoAttendant { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAutoAttendantResponse])] +[CmdletBinding(DefaultParameterSetName='Update', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Set', Mandatory)] - [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Parameter(ParameterSetName='Update', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # Identity of the bridge. + # Id for the auto attendant to be refreshed. ${Identity}, - [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, - [Parameter(ParameterSetName='Set1', Mandatory)] - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetExpanded1', Mandatory)] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Name of the bridge. - ${Name}, - - [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='Set1', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IBridgeUpdateRequest] - # Update Conferencing Bridge Default Service number, or make it tenant's default bridge. - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetExpanded1')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets service number to be updated as new default number of bridge. - ${DefaultServiceNumber}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetExpanded1')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a boolean value indicating if the bridge should be updated to be tenant's default bridge. - ${SetDefault}, - - [Parameter(ParameterSetName='SetExpanded1')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets name of the bridge. - # This can only be used when user sets the bridge using instance. - ${Name1}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] @@ -27257,12 +37321,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_Set'; - Set1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_Set1'; - SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_SetExpanded'; - SetExpanded1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_SetExpanded1'; - SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_SetViaIdentity'; - SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_SetViaIdentityExpanded'; + Update = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsAutoAttendant_Update'; + UpdateViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsAutoAttendant_UpdateViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -27297,9 +37357,9 @@ end { <# .Synopsis -Set service number by unique id. +Update configuration .Description -Set service number by unique id. +Update configuration .Example {{ Add code here }} .Example @@ -27308,18 +37368,17 @@ Set service number by unique id. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IServiceNumberUpdateRequest +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber +System.Boolean .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : Update Conferencing Service number. - [PrimaryLanguage ]: The primary language CAA should use to service this call, e.g. en-US, en-GB etc. - [RestoreDefaultLanguage ]: Switch to indicate that the Primary and Secondary languages should be set to the default values. - [SecondaryLanguage ]: The list of secondary languages CAA should use to service this call. Number of secondary languages is limited to a max of 4. +BODY : . + [(Any) ]: This indicates any property can be added to this object. + Identity : INPUTOBJECT : Identity Parameter [AppId ]: @@ -27362,58 +37421,67 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/set-csodcservicenumber +https://docs.microsoft.com/en-us/powershell/module/teams/update-csconfiguration #> -function Set-CsOdcServiceNumber { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber])] -[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Update-CsConfiguration { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Set', Mandatory)] - [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Parameter(ParameterSetName='Update', Mandatory)] + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # Identity of the service number. - ${Identity}, + # . + ${ConfigName}, - [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='Update', Mandatory)] + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ConfigType}, + + [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, - [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Api Version + ${ApiVersion}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SchemaVersion}, + + [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IServiceNumberUpdateRequest] - # Update Conferencing Service number. + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration] + # . # To construct, see NOTES section for BODY properties and create a hash table. ${Body}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # The primary language CAA should use to service this call, e.g. - # en-US, en-GB etc. - ${PrimaryLanguage}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Switch to indicate that the Primary and Secondary languages should be set to the default values. - ${RestoreDefaultLanguages}, + # . + ${Identity}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # The list of secondary languages CAA should use to service this call. - # Number of secondary languages is limited to a max of 4. - ${SecondaryLanguages}, + [System.Collections.Hashtable] + # Additional Parameters + ${AdditionalProperties}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -27435,6 +37503,12 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -27464,10 +37538,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcServiceNumber_Set'; - SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcServiceNumber_SetExpanded'; - SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcServiceNumber_SetViaIdentity'; - SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcServiceNumber_SetViaIdentityExpanded'; + Update = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsConfiguration_Update'; + UpdateExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsConfiguration_UpdateExpanded'; + UpdateViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsConfiguration_UpdateViaIdentity'; + UpdateViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsConfiguration_UpdateViaIdentityExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -27502,34 +37576,167 @@ end { <# .Synopsis -This cmdlet is used to modify the properties of a user that has been enabled for Microsoft's audio conferencing service. +Update a policy package .Description -This cmdlet is used to modify the properties of a user that has been enabled for Microsoft's audio conferencing service. +Update a policy package .Example {{ Add code here }} .Example {{ Add code here }} -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserData .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser +System.String .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : User data to be sent. - [AllowTollFreeDialIn ]: Gets or sets a value indicating whether or not the meeting should allow dialin via toll-free service number. TODO: This is not a Switch parameter. - [BridgeId ]: Gets or sets the bridge identifier. - [BridgeName ]: Gets or sets the bridge name. - [ResetLeaderPin ]: Gets or sets a value indicating whether or not to reset the leader pin. TODO: This is a Switch parameter. - [SendEmail ]: Gets or sets a value indicating whether to sends an email with the PSTN Conference information of a user even if the tenant setting is off. TODO: This is a switch parameter. - [SendEmailToAddress ]: Gets or sets a value indicating To Address to send the email that contains the Audio Conference information. This parameter must be used together with -SendEmail. - [ServiceNumber ]: Gets or sets the service number to set as the user's default bridge number. - [TollFreeServiceNumber ]: Gets or sets the toll-free service number to set as the user's default toll-free service number. +POLICYLIST : . + PolicyName : + PolicyType : +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/update-cscustompolicypackage +#> +function Update-CsCustomPolicyPackage { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Identity}, + + [Parameter(Mandatory)] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsRequestsPolicyTypeAndName[]] + # . + # To construct, see NOTES section for POLICYLIST properties and create a hash table. + ${PolicyList}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Description}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + UpdateExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsCustomPolicyPackage_UpdateExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Assigns a service number to a bridge. +.Description +Assigns a service number to a bridge. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : Class representing ConferencingServiceNumber. + [BridgeId ]: Gets or sets the unique identifier of the Bridge that this ServiceNumber belongs to. + [City ]: Gets or sets the Geocode where the ServiceNumber is intended to be used. + [IsShared ]: Gets or sets a value indicating whether the number is shared between multiple tenants. If this is the case then tenant admins will be unable to edit the number. + [Number ]: Gets or sets the 11 digit number identifying the ServiceNumber. + [PrimaryLanguage ]: Gets or sets the primary language of the ServiceNumber. e.g.: "en-US". + [SecondaryLanguages ]: Gets or sets the list of secondary languages of the ServiceNumber. e.g.: "fr-FR","en-GB","en-IN". + [Type ]: Gets or sets defines the number type Toll/Toll-Free. INPUTOBJECT : Identity Parameter [AppId ]: @@ -27572,90 +37779,91 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/set-csodcuser +https://docs.microsoft.com/en-us/powershell/module/teams/register-csodcservicenumber #> -function Set-CsOdcUser { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser])] -[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Register-CsOdcServiceNumber { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber])] +[CmdletBinding(DefaultParameterSetName='RegisterExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Set', Mandatory)] - [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Parameter(ParameterSetName='Register', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # Identity of the user. + # Service number to be assigned to a bridge. + # The service number in E.164 format, e.g. + # +14251112222 or tel:+14251112222. ${Identity}, - [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RegisterViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, - [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # The conferencing bridge identifier to assign the service numbers to. + ${BridgeId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # The conferencing bridge name to assign the service numbers. + ${BridgeName}, + + [Parameter(ParameterSetName='Register1', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserData] - # User data to be sent. + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber] + # Class representing ConferencingServiceNumber. # To construct, see NOTES section for BODY properties and create a hash table. ${Body}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether or not the meeting should allow dialin via toll-free service number.TODO: This is not a Switch parameter. - ${AllowTollFreeDialIn}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Parameter(ParameterSetName='RegisterExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the bridge identifier. - ${BridgeId}, + # Gets or sets the unique identifier of the Bridge that this ServiceNumber belongs to. + ${BridgeId1}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Parameter(ParameterSetName='RegisterExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the bridge name. - ${BridgeName}, + # Gets or sets the Geocode where the ServiceNumber is intended to be used. + ${City}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Parameter(ParameterSetName='RegisterExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether or not to reset the leader pin.TODO: This is a Switch parameter. - ${ResetLeaderPin}, + # Gets or sets a value indicating whether the number is shared between multiple tenants. + # If this is the casethen tenant admins will be unable to edit the number. + ${IsShared}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Parameter(ParameterSetName='RegisterExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether to sends an email with the PSTN Conference information of a user even if the tenant setting is off.TODO: This is a switch parameter. - ${SendEmail}, + [System.String] + # Gets or sets the 11 digit number identifying the ServiceNumber. + ${Number}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Parameter(ParameterSetName='RegisterExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets a value indicating To Address to send the email that contains the Audio Conference information.This parameter must be used together with -SendEmail. - ${SendEmailToAddress}, + # Gets or sets the primary language of the ServiceNumber. + # e.g.: "en-US". + ${PrimaryLanguage}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Parameter(ParameterSetName='RegisterExpanded')] + [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the service number to set as the user's default bridge number. - ${ServiceNumber}, + [System.String[]] + # Gets or sets the list of secondary languages of the ServiceNumber. + # e.g.: "fr-FR","en-GB","en-IN". + ${SecondaryLanguage}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Parameter(ParameterSetName='RegisterExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the toll-free service number to set as the user's default toll-free service number. - ${TollFreeServiceNumber}, + # Gets or sets defines the number type Toll/Toll-Free. + ${Type}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -27706,10 +37914,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcUser_Set'; - SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcUser_SetExpanded'; - SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcUser_SetViaIdentity'; - SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcUser_SetViaIdentityExpanded'; + Register = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Register-CsOdcServiceNumber_Register'; + Register1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Register-CsOdcServiceNumber_Register1'; + RegisterExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Register-CsOdcServiceNumber_RegisterExpanded'; + RegisterViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Register-CsOdcServiceNumber_RegisterViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -27742,97 +37950,91 @@ end { } } +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + <# .Synopsis - +Deletes a specific AutoAttendant. +DELETE Teams.VoiceApps/auto-attendants/identity. .Description - +Deletes a specific AutoAttendant. +DELETE Teams.VoiceApps/auto-attendants/identity. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponseInput -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnostics +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . - [Content ]: +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id [Country ]: - [ForceAccept ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: [Locale ]: - [RespondedByObjectId ]: - [Response ]: - [ResponseTimestamp ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. [Version ]: + [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/set-csonlineenhancedemergencyservicedisclaimer +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csautoattendant #> -function Set-CsOnlineEnhancedEmergencyServiceDisclaimer { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnostics])] -[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Remove-CsAutoAttendant { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponseInput] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Content}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CountryOrRegion}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${ForceAccept}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Locale}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # . - ${RespondedByObjectId}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # . - ${Response}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.DateTime] - # . - ${ResponseTimestamp}, + # Id for the auto attendant to be removed. + ${Identity}, - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Version}, + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -27883,8 +38085,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineEnhancedEmergencyServiceDisclaimer_Set'; - SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineEnhancedEmergencyServiceDisclaimer_SetExpanded'; + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsAutoAttendant_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsAutoAttendant_RemoveViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -27917,13 +38119,18 @@ end { } } +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + <# .Synopsis -Updates a specific schedule. -PUT Teams.VoiceApps/schedules/identity. +Remove call queue. +DELETE Teams.VoiceApps/callqueues/identity. .Description -Updates a specific schedule. -PUT Teams.VoiceApps/schedules/identity. +Remove call queue. +DELETE Teams.VoiceApps/callqueues/identity. .Example {{ Add code here }} .Example @@ -27931,42 +38138,13 @@ PUT Teams.VoiceApps/schedules/identity. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISchedule .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IModifyScheduleResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . - [AssociatedConfigurationId ]: - [FixedScheduleDateTimeRange ]: - [End ]: - [Start ]: - [Id ]: - [Name ]: - [RecurrenceRangeEnd ]: - [RecurrenceRangeNumberOfOccurrence ]: - [RecurrenceRangeStart ]: - [RecurrenceRangeType ]: - [Type ]: - [WeeklyRecurrentScheduleFridayHour ]: - [End ]: - [Start ]: - [WeeklyRecurrentScheduleIsComplemented ]: - [WeeklyRecurrentScheduleMondayHour ]: - [WeeklyRecurrentScheduleSaturdayHour ]: - [WeeklyRecurrentScheduleSundayHour ]: - [WeeklyRecurrentScheduleThursdayHour ]: - [WeeklyRecurrentScheduleTuesdayHour ]: - [WeeklyRecurrentScheduleWednesdayHour ]: - -FIXEDSCHEDULEDATETIMERANGE : . - [End ]: - [Start ]: - INPUTOBJECT : Identity Parameter [AppId ]: [AudioFileId ]: @@ -28007,200 +38185,26 @@ INPUTOBJECT : Identity Parameter [UserId ]: UserId. [Version ]: [WfmTeamId ]: Team Id - -WEEKLYRECURRENTSCHEDULEFRIDAYHOUR : . - [End ]: - [Start ]: - -WEEKLYRECURRENTSCHEDULEMONDAYHOUR : . - [End ]: - [Start ]: - -WEEKLYRECURRENTSCHEDULESATURDAYHOUR : . - [End ]: - [Start ]: - -WEEKLYRECURRENTSCHEDULESUNDAYHOUR : . - [End ]: - [Start ]: - -WEEKLYRECURRENTSCHEDULETHURSDAYHOUR : . - [End ]: - [Start ]: - -WEEKLYRECURRENTSCHEDULETUESDAYHOUR : . - [End ]: - [Start ]: - -WEEKLYRECURRENTSCHEDULEWEDNESDAYHOUR : . - [End ]: - [Start ]: .Link -https://docs.microsoft.com/en-us/powershell/module/teams/set-csonlineschedule +https://docs.microsoft.com/en-us/powershell/module/teams/remove-cscallqueue #> -function Set-CsOnlineSchedule { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IModifyScheduleResponse])] -[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Remove-CsCallQueue { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Set', Mandatory)] - [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Parameter(ParameterSetName='Remove', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # Id for the schedule to be updated. + # . ${Identity}, - [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, - [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISchedule] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # . - ${AssociatedConfigurationId}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDateTimeRange[]] - # . - # To construct, see NOTES section for FIXEDSCHEDULEDATETIMERANGE properties and create a hash table. - ${FixedScheduleDateTimeRange}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Id}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Name}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.DateTime] - # . - ${RecurrenceRangeEnd}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # . - ${RecurrenceRangeNumberOfOccurrence}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.DateTime] - # . - ${RecurrenceRangeStart}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${RecurrenceRangeType}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Type}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] - # . - # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEFRIDAYHOUR properties and create a hash table. - ${WeeklyRecurrentScheduleFridayHour}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${WeeklyRecurrentScheduleIsComplemented}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] - # . - # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEMONDAYHOUR properties and create a hash table. - ${WeeklyRecurrentScheduleMondayHour}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] - # . - # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULESATURDAYHOUR properties and create a hash table. - ${WeeklyRecurrentScheduleSaturdayHour}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] - # . - # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULESUNDAYHOUR properties and create a hash table. - ${WeeklyRecurrentScheduleSundayHour}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] - # . - # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULETHURSDAYHOUR properties and create a hash table. - ${WeeklyRecurrentScheduleThursdayHour}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] - # . - # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULETUESDAYHOUR properties and create a hash table. - ${WeeklyRecurrentScheduleTuesdayHour}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] - # . - # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEWEDNESDAYHOUR properties and create a hash table. - ${WeeklyRecurrentScheduleWednesdayHour}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] @@ -28250,10 +38254,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSchedule_Set'; - SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSchedule_SetExpanded'; - SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSchedule_SetViaIdentity'; - SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSchedule_SetViaIdentityExpanded'; + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsCallQueue_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsCallQueue_RemoveViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -28286,53 +38288,91 @@ end { } } +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + <# .Synopsis -Enable or Disable Tenant VerifiedSipDomains. +Delete Compliance Recording config. +DELETE /Teams.VoiceApps/compliance-recording/identity. .Description -Enable or Disable Tenant VerifiedSipDomains. +Delete Compliance Recording config. +DELETE /Teams.VoiceApps/compliance-recording/identity. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantSipDomainRequest +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -System.Boolean +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord .Notes COMPLEX PARAMETER PROPERTIES -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -BODY : The request to update an tenant sip domain. - [Action ]: Action enable or disable domain. - [DomainName ]: Domain Name. +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/set-csonlinesipdomain +https://docs.microsoft.com/en-us/powershell/module/teams/remove-cscompliancerecordingforcallqueuetemplate #> -function Set-CsOnlineSipDomain { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Remove-CsComplianceRecordingForCallQueueTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantSipDomainRequest] - # The request to update an tenant sip domain. - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # Action enable or disable domain. - ${Action}, + # . + ${Id}, - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Domain Name. - ${DomainName}, + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -28354,12 +38394,6 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -28389,8 +38423,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSipDomain_Set'; - SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSipDomain_SetExpanded'; + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsComplianceRecordingForCallQueueTemplate_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsComplianceRecordingForCallQueueTemplate_RemoveViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -28423,11 +38457,16 @@ end { } } +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + <# .Synopsis -Put OnlineVoicemailUserSettings. +Delete Configuration .Description -Put OnlineVoicemailUserSettings. +Delete Configuration .Example {{ Add code here }} .Example @@ -28435,26 +38474,13 @@ Put OnlineVoicemailUserSettings. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings +System.Boolean .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : User Voicemail Settings base class. - [CallAnswerRule ]: Gets or sets CallAnswerRule. - [DefaultGreetingPromptOverwrite ]: Gets or sets DefaultGreetingPromptOverwrite. - [DefaultOofGreetingPromptOverwrite ]: Gets or sets DefaultOofGreetingPromptOverwrite. - [OofGreetingEnabled ]: Gets or sets a value indicating whether Out of Office Greeting is enabled. - [OofGreetingFollowAutomaticRepliesEnabled ]: Gets or sets a value indicating whether Out of Office Greeting Automatic Replies are enabled. - [PromptLanguage ]: Gets or sets prompt language. - [ShareData ]: Gets or sets a value indicating whether ShareData is enabled. - [TransferTarget ]: Gets or sets TransferTarget. - [VoicemailEnabled ]: Gets or sets a value indicating whether voicemail is enabled. - INPUTOBJECT : Identity Parameter [AppId ]: [AudioFileId ]: @@ -28496,98 +38522,31 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/set-csonlinevmusersetting +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csconfiguration #> -function Set-CsOnlineVMUserSetting { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings])] -[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Remove-CsConfiguration { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Set', Mandatory)] - [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Parameter(ParameterSetName='Delete', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] # . - ${Identity}, + ${ConfigName}, - [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ConfigType}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, - [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings] - # User Voicemail Settings base class. - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets CallAnswerRule. - ${CallAnswerRule}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets DefaultGreetingPromptOverwrite. - ${DefaultGreetingPromptOverwrite}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets DefaultOofGreetingPromptOverwrite. - ${DefaultOofGreetingPromptOverwrite}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether Out of Office Greetingis enabled. - ${OofGreetingEnabled}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether Out of Office GreetingAutomatic Replies are enabled. - ${OofGreetingFollowAutomaticRepliesEnabled}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets prompt language. - ${PromptLanguage}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether ShareDatais enabled. - ${ShareData}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets TransferTarget. - ${TransferTarget}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether voicemail is enabled. - ${VoicemailEnabled}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] @@ -28643,10 +38602,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVMUserSetting_Set'; - SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVMUserSetting_SetExpanded'; - SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVMUserSetting_SetViaIdentity'; - SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVMUserSetting_SetViaIdentityExpanded'; + Delete = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsConfiguration_Delete'; + DeleteViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsConfiguration_DeleteViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -28679,72 +38636,91 @@ end { } } +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + <# .Synopsis - +Remove mainline attendant appointment booking flow. +DELETE Teams.VoiceApps/mainline-attendant-flow/appointment-booking/identity. .Description - +Remove mainline attendant appointment booking flow. +DELETE Teams.VoiceApps/mainline-attendant-flow/appointment-booking/identity. .Example {{ Add code here }} .Example {{ Add code here }} +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -System.String +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/set-csphonenumberassignment +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csmainlineattendantappointmentbookingflow #> -function Set-CsPhoneNumberAssignment { -[OutputType([System.String])] -[CmdletBinding(DefaultParameterSetName='Set', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Remove-CsMainlineAttendantAppointmentBookingFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${AssignmentCategory}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # . - ${EnterpriseVoiceEnabled}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] # . ${Identity}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${LocationId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${NetworkSiteId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${PhoneNumber}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${PhoneNumberType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${ReverseNumberLookup}, + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -28795,7 +38771,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsPhoneNumberAssignment_Set'; + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsMainlineAttendantAppointmentBookingFlow_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsMainlineAttendantAppointmentBookingFlow_RemoveViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -28828,145 +38805,91 @@ end { } } +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + <# .Synopsis -Set Org Settings - Set-CsTeamsSettingsCustomApp +Remove mainline attendant question answer flow. +DELETE Teams.VoiceApps/mainline-attendant-flow/question-answer/identity. .Description -Set Org Settings - Set-CsTeamsSettingsCustomApp +Remove mainline attendant question answer flow. +DELETE Teams.VoiceApps/mainline-attendant-flow/question-answer/identity. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateCustomAppSettingRequest +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -System.Boolean +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -APPACCESSREQUESTCONFIG : . - [AdminInstructionMessage ]: Admin instructions for app access requests. - [ApprovalPortalUrl ]: Tenant's approval portal URL for app access requests. - -APPSETTINGSLIST : List of appSettings. - [Context ]: App context. - [Id ]: App Id. - [IsAppLevelAutoInstallEnabled ]: Auto Installation of app is enabled or not. - [IsEnabled ]: App is enabled or not. - -BODY : . - [AppAccessRequestConfig ]: - [AdminInstructionMessage ]: Admin instructions for app access requests. - [ApprovalPortalUrl ]: Tenant's approval portal URL for app access requests. - [AppSettingsList ]: List of appSettings. - [Context ]: App context. - [Id ]: App Id. - [IsAppLevelAutoInstallEnabled ]: Auto Installation of app is enabled or not. - [IsEnabled ]: App is enabled or not. - [IsAppsEnabled ]: Setting to indicate external apps enabled or not. - [IsAppsPurchaseEnabled ]: Setting to indicate purchase external apps enabled or not. - [IsExternalAppsEnabledByDefault ]: Setting to indicate external apps enabled by default or not. - [IsLicenseBasedPinnedAppsEnabled ]: Feature flag for tailored apps experience for F license users. - [IsSideloadedAppsInteractionEnabled ]: Members of this tenant can see and interact with side-loaded apps, which control custom app settings in TAMS. - [IsTenantWideAutoInstallEnabled ]: Setting to indicate auto-installation of external apps. - [LobBackground ]: Background of the LOB banner. It is either an image URL or a color code. - [LobLogo ]: Logo of the LOB banner. It is either an image URL or a color code. - [LobLogomark ]: Logomark in the LOB category. It is either an image URL or a color code. - [LobTextColor ]: Color of the text in the LOB banner. +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/set-csteamssettingscustomapp +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csmainlineattendantquestionanswerflow #> -function Set-CsTeamsSettingsCustomApp { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Remove-CsMainlineAttendantQuestionAnswerFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateCustomAppSettingRequest] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAppAccessRequestConfig] - # . - # To construct, see NOTES section for APPACCESSREQUESTCONFIG properties and create a hash table. - ${AppAccessRequestConfig}, - - [Parameter(ParameterSetName='SetExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IApplicationObject[]] - # List of appSettings. - # To construct, see NOTES section for APPSETTINGSLIST properties and create a hash table. - ${AppSettingsList}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Setting to indicate external apps enabled or not. - ${IsAppsEnabled}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Setting to indicate purchase external apps enabled or not. - ${IsAppsPurchaseEnabled}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Setting to indicate external apps enabled by default or not. - ${IsExternalAppsEnabledByDefault}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Feature flag for tailored apps experience for F license users. - ${IsLicenseBasedPinnedAppsEnabled}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Members of this tenant can see and interact with side-loaded apps, which control custom app settings in TAMS. - ${IsSideloadedAppsInteractionEnabled}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Setting to indicate auto-installation of external apps. - ${IsTenantWideAutoInstallEnabled}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Background of the LOB banner. - # It is either an image URL or a color code. - ${LobBackground}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Logo of the LOB banner. - # It is either an image URL or a color code. - ${LobLogo}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # Logomark in the LOB category. - # It is either an image URL or a color code. - ${LobLogomark}, + # . + ${Identity}, - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Color of the text in the LOB banner. - ${LobTextColor}, + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -28988,12 +38911,6 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -29023,8 +38940,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsSettingsCustomApp_Set'; - SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsSettingsCustomApp_SetExpanded'; + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsMainlineAttendantQuestionAnswerFlow_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsMainlineAttendantQuestionAnswerFlow_RemoveViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -29057,11 +38974,18 @@ end { } } +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + <# .Synopsis -Updates delegate in bvd +Remove application instance associations. +DELETE api/v1.0/tenants/tenantId/applicationinstanceassociations/endpointId. .Description -Updates delegate in bvd +Remove application instance associations. +DELETE api/v1.0/tenants/tenantId/applicationinstanceassociations/endpointId. .Example {{ Add code here }} .Example @@ -29070,7 +38994,7 @@ Updates delegate in bvd .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -System.Boolean +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IRemoveApplicationInstanceAssociationsResponse .Notes COMPLEX PARAMETER PROPERTIES @@ -29117,49 +39041,25 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/set-csusercallingdelegate +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csonlineapplicationinstanceassociation #> -function Set-CsUserCallingDelegate { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Set', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Remove-CsOnlineApplicationInstanceAssociation { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IRemoveApplicationInstanceAssociationsResponse])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Set', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # ObjectId of the to-be-added member. - ${Delegate}, - - [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='Remove', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # ObjectId of the group owner + # Application instance Id. ${Identity}, - [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # If the member is allowed to make calls. - ${MakeCalls}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # If the member is allowed to manage call settings. - ${ManageSettings}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # If the member is allowed to receive calls. - ${ReceiveCalls}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] @@ -29180,12 +39080,6 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -29215,8 +39109,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserCallingDelegate_Set'; - SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserCallingDelegate_SetViaIdentity'; + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineApplicationInstanceAssociation_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineApplicationInstanceAssociation_RemoveViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -29249,11 +39143,18 @@ end { } } +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + <# .Synopsis -Add/Update online user routing settings in bvd +Delete an audio file stored in MSS. +DELETE api/v3/tenants/tenantId/audiofile/appId/audiofileId .Description -Add/Update online user routing settings in bvd +Delete an audio file stored in MSS. +DELETE api/v3/tenants/tenantId/audiofile/appId/audiofileId .Example {{ Add code here }} .Example @@ -29261,8 +39162,6 @@ Add/Update online user routing settings in bvd .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserRoutingSettings .Outputs System.Boolean .Notes @@ -29270,46 +39169,6 @@ COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . - [CallGroupDetailDelay ]: - [CallGroupOrder ]: - [CallGroupTargets ]: - [Delegates ]: - [Id ]: - [MakeCalls ]: - [ManageSettings ]: - [ReceiveCalls ]: - [Delegators ]: - [ForwardingTarget ]: - [ForwardingTargetType ]: - [ForwardingType ]: - [GroupMembershipDetails ]: - [CallGroupOwnerId ]: - [NotificationSetting ]: - [GroupNotificationOverride ]: - [IsForwardingEnabled ]: - [IsUnansweredEnabled ]: - [SipUri ]: - [UnansweredDelay ]: - [UnansweredTarget ]: - [UnansweredTargetType ]: - -DELEGATIONSETTINGDELEGATE : . - [Id ]: - [MakeCalls ]: - [ManageSettings ]: - [ReceiveCalls ]: - -DELEGATIONSETTINGDELEGATOR : . - [Id ]: - [MakeCalls ]: - [ManageSettings ]: - [ReceiveCalls ]: - -GROUPMEMBERSHIPDETAILS : . - [CallGroupOwnerId ]: - [NotificationSetting ]: - INPUTOBJECT : Identity Parameter [AppId ]: [AudioFileId ]: @@ -29351,136 +39210,31 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/set-csusercallingsettings +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csonlineaudiofile #> -function Set-CsUserCallingSettings { +function Remove-CsOnlineAudioFile { [OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Set', Mandatory)] - [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ApplicationId}, + + [Parameter(ParameterSetName='Remove', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] # . ${Identity}, - [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, - [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserRoutingSettings] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CallGroupDetailDelay}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CallGroupOrder}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # . - ${CallGroupTargets}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${ForwardingTarget}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${ForwardingTargetType}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${ForwardingType}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallGroupMembershipDetails[]] - # . - # To construct, see NOTES section for GROUPMEMBERSHIPDETAILS properties and create a hash table. - ${GroupMembershipDetails}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${GroupNotificationOverride}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${IsForwardingEnabled}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${IsUnansweredEnabled}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${SipUri}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${UnansweredDelay}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${UnansweredTarget}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${UnansweredTargetType}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] @@ -29536,10 +39290,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserCallingSettings_Set'; - SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserCallingSettings_SetExpanded'; - SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserCallingSettings_SetViaIdentity'; - SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserCallingSettings_SetViaIdentityExpanded'; + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineAudioFile_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineAudioFile_RemoveViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -29572,11 +39324,18 @@ end { } } +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + <# .Synopsis -Set User. +Deletes a specific schedule. +DELETE Teams.VoiceApps/schedules/identity. .Description -Set User. +Deletes a specific schedule. +DELETE Teams.VoiceApps/schedules/identity. .Example {{ Add code here }} .Example @@ -29584,10 +39343,8 @@ Set User. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Inputs -System.Collections.Hashtable .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserMas +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord .Notes COMPLEX PARAMETER PROPERTIES @@ -29634,42 +39391,25 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/set-csusergenerated +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csonlineschedule #> -function Set-CsUserGenerated { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserMas])] -[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Remove-CsOnlineSchedule { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Set', Mandatory)] - [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Parameter(ParameterSetName='Remove', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # UserId. - ${UserId}, + # Id for the schedule to be removed. + ${Identity}, - [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, - [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.Info(Required, PossibleTypes=([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDictionaryOfString]))] - [System.Collections.Hashtable] - # Dictionary of - ${Body}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Collections.Hashtable] - # Additional Parameters - ${AdditionalProperties}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] @@ -29719,10 +39459,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserGenerated_Set'; - SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserGenerated_SetExpanded'; - SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserGenerated_SetViaIdentity'; - SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserGenerated_SetViaIdentityExpanded'; + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineSchedule_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineSchedule_RemoveViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -29755,168 +39493,54 @@ end { } } +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + <# .Synopsis -Unassigns the previously assigned service number as default Conference Bridge number. + .Description -Unassigns the previously assigned service number as default Conference Bridge number. + .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseOrderResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtErrorResponseDetails .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : Class representing ConferencingServiceNumber. - [BridgeId ]: Gets or sets the unique identifier of the Bridge that this ServiceNumber belongs to. - [City ]: Gets or sets the Geocode where the ServiceNumber is intended to be used. - [IsShared ]: Gets or sets a value indicating whether the number is shared between multiple tenants. If this is the case then tenant admins will be unable to edit the number. - [Number ]: Gets or sets the 11 digit number identifying the ServiceNumber. - [PrimaryLanguage ]: Gets or sets the primary language of the ServiceNumber. e.g.: "en-US". - [SecondaryLanguages ]: Gets or sets the list of secondary languages of the ServiceNumber. e.g.: "fr-FR","en-GB","en-IN". - [Type ]: Gets or sets defines the number type Toll/Toll-Free. - -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id - [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id +BODY : CmdletReleaseRequest + [TelephoneNumber ]: .Link -https://docs.microsoft.com/en-us/powershell/module/teams/unregister-csodcservicenumber +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csonlinetelephonenumberprivate #> -function Unregister-CsOdcServiceNumber { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber])] -[CmdletBinding(DefaultParameterSetName='UnregisterExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Remove-CsOnlineTelephoneNumberPrivate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseOrderResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtErrorResponseDetails])] +[CmdletBinding(DefaultParameterSetName='RemoveExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Unregister', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Service number to be assigned to a bridge. - # The service number in E.164 format, e.g. - # +14251112222 or tel:+14251112222. - ${Identity}, - - [Parameter(ParameterSetName='UnregisterViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # The conferencing bridge identifier to assign the service numbers to. - ${BridgeId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # The conferencing bridge name to assign the service numbers. - ${BridgeName}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # Switch parameter as a backdoor hook to remove the default service number on bridge. - ${RemoveDefaultServiceNumber}, - - [Parameter(ParameterSetName='Unregister1', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='Remove', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber] - # Class representing ConferencingServiceNumber. + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseRequest] + # CmdletReleaseRequest # To construct, see NOTES section for BODY properties and create a hash table. ${Body}, - [Parameter(ParameterSetName='UnregisterExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the unique identifier of the Bridge that this ServiceNumber belongs to. - ${BridgeId1}, - - [Parameter(ParameterSetName='UnregisterExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the Geocode where the ServiceNumber is intended to be used. - ${City}, - - [Parameter(ParameterSetName='UnregisterExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether the number is shared between multiple tenants. - # If this is the casethen tenant admins will be unable to edit the number. - ${IsShared}, - - [Parameter(ParameterSetName='UnregisterExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the 11 digit number identifying the ServiceNumber. - ${Number}, - - [Parameter(ParameterSetName='UnregisterExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the primary language of the ServiceNumber. - # e.g.: "en-US". - ${PrimaryLanguage}, - - [Parameter(ParameterSetName='UnregisterExpanded')] + [Parameter(ParameterSetName='RemoveExpanded')] [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String[]] - # Gets or sets the list of secondary languages of the ServiceNumber. - # e.g.: "fr-FR","en-GB","en-IN". - ${SecondaryLanguage}, - - [Parameter(ParameterSetName='UnregisterExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets defines the number type Toll/Toll-Free. - ${Type}, + # . + ${TelephoneNumber}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -29967,10 +39591,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Unregister = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Unregister-CsOdcServiceNumber_Unregister'; - Unregister1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Unregister-CsOdcServiceNumber_Unregister1'; - UnregisterExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Unregister-CsOdcServiceNumber_UnregisterExpanded'; - UnregisterViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Unregister-CsOdcServiceNumber_UnregisterViaIdentity'; + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineTelephoneNumberPrivate_Remove'; + RemoveExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineTelephoneNumberPrivate_RemoveExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -30003,13 +39625,16 @@ end { } } +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + <# .Synopsis -Refresh a specific AutoAttendant dail by grammer. -POST /Teams.VoiceApps/autoAttendants/{identity}/refresh. + .Description -Refresh a specific AutoAttendant dail by grammer. -POST /Teams.VoiceApps/autoAttendants/{identity}/refresh. + .Example {{ Add code here }} .Example @@ -30018,7 +39643,7 @@ POST /Teams.VoiceApps/autoAttendants/{identity}/refresh. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAutoAttendantResponse +System.Boolean .Notes COMPLEX PARAMETER PROPERTIES @@ -30065,25 +39690,49 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/update-csautoattendant +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csphonenumberassignment #> -function Update-CsAutoAttendant { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAutoAttendantResponse])] -[CmdletBinding(DefaultParameterSetName='Update', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Remove-CsPhoneNumberAssignment { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Update', Mandatory)] + [Parameter(ParameterSetName='Remove', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # Id for the auto attendant to be refreshed. + # . ${Identity}, - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Notify}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${PhoneNumber}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${PhoneNumberType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${RemoveAll}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] @@ -30104,6 +39753,12 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -30133,8 +39788,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Update = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsAutoAttendant_Update'; - UpdateViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsAutoAttendant_UpdateViaIdentity'; + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsPhoneNumberAssignment_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsPhoneNumberAssignment_RemoveViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -30167,11 +39822,18 @@ end { } } +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + <# .Synopsis -Update configuration +Delete Shared Call Queue History config. +DELETE /Teams.VoiceApps/shared-call-queue-history/identity. .Description -Update configuration +Delete Shared Call Queue History config. +DELETE /Teams.VoiceApps/shared-call-queue-history/identity. .Example {{ Add code here }} .Example @@ -30179,19 +39841,13 @@ Update configuration .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration .Outputs -System.Boolean +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . - [(Any) ]: This indicates any property can be added to this object. - Identity : - INPUTOBJECT : Identity Parameter [AppId ]: [AudioFileId ]: @@ -30233,68 +39889,25 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/update-csconfiguration +https://docs.microsoft.com/en-us/powershell/module/teams/remove-cssharedcallqueuehistorytemplate #> -function Update-CsConfiguration { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Remove-CsSharedCallQueueHistoryTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${ConfigName}, - - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Parameter(ParameterSetName='Remove', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] # . - ${ConfigType}, + ${Identity}, - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Api Version - ${ApiVersion}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${SchemaVersion}, - - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Identity}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Collections.Hashtable] - # Additional Parameters - ${AdditionalProperties}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] @@ -30315,12 +39928,6 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -30350,10 +39957,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Update = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsConfiguration_Update'; - UpdateExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsConfiguration_UpdateExpanded'; - UpdateViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsConfiguration_UpdateViaIdentity'; - UpdateViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsConfiguration_UpdateViaIdentityExpanded'; + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsSharedCallQueueHistoryTemplate_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsSharedCallQueueHistoryTemplate_RemoveViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -30386,52 +39991,91 @@ end { } } +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + <# .Synopsis -Update a policy package +Delete IVR Tags Template. +DELETE api/v1.0/tenants/tenantId/ivr-tags-template/identity. .Description -Update a policy package +Delete IVR Tags Template. +DELETE api/v1.0/tenants/tenantId/ivr-tags-template/identity. .Example {{ Add code here }} .Example {{ Add code here }} +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -System.String +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -POLICYLIST : . - PolicyName : - PolicyType : +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/update-cscustompolicypackage +https://docs.microsoft.com/en-us/powershell/module/teams/remove-cstagstemplate #> -function Update-CsCustomPolicyPackage { -[OutputType([System.String])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Remove-CsTagsTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] # . ${Identity}, - [Parameter(Mandatory)] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsRequestsPolicyTypeAndName[]] - # . - # To construct, see NOTES section for POLICYLIST properties and create a hash table. - ${PolicyList}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Description}, + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -30482,7 +40126,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - UpdateExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsCustomPolicyPackage_UpdateExpanded'; + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTagsTemplate_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTagsTemplate_RemoveViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -30522,34 +40167,23 @@ end { <# .Synopsis -Assigns a service number to a bridge. +Removes delegate in bvd .Description -Assigns a service number to a bridge. +Removes delegate in bvd .Example {{ Add code here }} .Example {{ Add code here }} -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber +System.Boolean .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : Class representing ConferencingServiceNumber. - [BridgeId ]: Gets or sets the unique identifier of the Bridge that this ServiceNumber belongs to. - [City ]: Gets or sets the Geocode where the ServiceNumber is intended to be used. - [IsShared ]: Gets or sets a value indicating whether the number is shared between multiple tenants. If this is the case then tenant admins will be unable to edit the number. - [Number ]: Gets or sets the 11 digit number identifying the ServiceNumber. - [PrimaryLanguage ]: Gets or sets the primary language of the ServiceNumber. e.g.: "en-US". - [SecondaryLanguages ]: Gets or sets the list of secondary languages of the ServiceNumber. e.g.: "fr-FR","en-GB","en-IN". - [Type ]: Gets or sets defines the number type Toll/Toll-Free. - INPUTOBJECT : Identity Parameter [AppId ]: [AudioFileId ]: @@ -30591,92 +40225,31 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/register-csodcservicenumber +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csusercallingdelegate #> -function Register-CsOdcServiceNumber { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber])] -[CmdletBinding(DefaultParameterSetName='RegisterExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Remove-CsUserCallingDelegate { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Register', Mandatory)] + [Parameter(ParameterSetName='Remove', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # Service number to be assigned to a bridge. - # The service number in E.164 format, e.g. - # +14251112222 or tel:+14251112222. + # . + ${Delegate}, + + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . ${Identity}, - [Parameter(ParameterSetName='RegisterViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # The conferencing bridge identifier to assign the service numbers to. - ${BridgeId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # The conferencing bridge name to assign the service numbers. - ${BridgeName}, - - [Parameter(ParameterSetName='Register1', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber] - # Class representing ConferencingServiceNumber. - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='RegisterExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the unique identifier of the Bridge that this ServiceNumber belongs to. - ${BridgeId1}, - - [Parameter(ParameterSetName='RegisterExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the Geocode where the ServiceNumber is intended to be used. - ${City}, - - [Parameter(ParameterSetName='RegisterExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether the number is shared between multiple tenants. - # If this is the casethen tenant admins will be unable to edit the number. - ${IsShared}, - - [Parameter(ParameterSetName='RegisterExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the 11 digit number identifying the ServiceNumber. - ${Number}, - - [Parameter(ParameterSetName='RegisterExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the primary language of the ServiceNumber. - # e.g.: "en-US". - ${PrimaryLanguage}, - - [Parameter(ParameterSetName='RegisterExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # Gets or sets the list of secondary languages of the ServiceNumber. - # e.g.: "fr-FR","en-GB","en-IN". - ${SecondaryLanguage}, - - [Parameter(ParameterSetName='RegisterExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets defines the number type Toll/Toll-Free. - ${Type}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] @@ -30697,6 +40270,12 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -30726,10 +40305,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Register = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Register-CsOdcServiceNumber_Register'; - Register1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Register-CsOdcServiceNumber_Register1'; - RegisterExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Register-CsOdcServiceNumber_RegisterExpanded'; - RegisterViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Register-CsOdcServiceNumber_RegisterViaIdentity'; + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsUserCallingDelegate_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsUserCallingDelegate_RemoveViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -30769,84 +40346,41 @@ end { <# .Synopsis -Deletes a specific AutoAttendant. -DELETE Teams.VoiceApps/auto-attendants/identity. +Searches a tenant for ODC users. .Description -Deletes a specific AutoAttendant. -DELETE Teams.VoiceApps/auto-attendants/identity. +Searches a tenant for ODC users. .Example {{ Add code here }} .Example {{ Add code here }} -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id - [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser .Link -https://docs.microsoft.com/en-us/powershell/module/teams/remove-csautoattendant +https://docs.microsoft.com/en-us/powershell/module/teams/search-csodcuser #> -function Remove-CsAutoAttendant { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] -[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Search-CsOdcUser { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser])] +[CmdletBinding(DefaultParameterSetName='Search', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Remove', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # Page Size. + ${PageSize}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # Id for the auto attendant to be removed. - ${Identity}, + # Continuation / Pagination marker. + # Use the value from nextlink property in response. + ${Skiptoken}, - [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # To set the number of users to be fetched + ${Top}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -30897,8 +40431,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsAutoAttendant_Remove'; - RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsAutoAttendant_RemoveViaIdentity'; + Search = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Search-CsOdcUser_Search'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -30938,84 +40471,101 @@ end { <# .Synopsis -Remove call queue. -DELETE Teams.VoiceApps/callqueues/identity. +Searches a tenant for users. .Description -Remove call queue. -DELETE Teams.VoiceApps/callqueues/identity. +Searches a tenant for users. .Example {{ Add code here }} .Example {{ Add code here }} -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id - [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUser .Link -https://docs.microsoft.com/en-us/powershell/module/teams/remove-cscallqueue +https://docs.microsoft.com/en-us/powershell/module/teams/search-csuser #> -function Remove-CsCallQueue { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] -[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Search-CsUser { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUser])] +[CmdletBinding(DefaultParameterSetName='Search', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Remove', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # . - ${Identity}, + # To set defaultpropertyset value + ${Defaultpropertyset}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # To fetch optional location field + ${Expandlocation}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # MS Graph like query filters + ${Filter}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # To set includedefaultproperties value + ${Includedefaultproperty}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # This parameter supports query to sort the results. + ${OrderBy}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # Page Size. + ${PageSize}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Powershell like query filters + ${Psfilter}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Properties to select + ${Select}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Continuation / Pagination marker. + # Use the value from nextlink property in response. + ${Skiptoken}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # Skip user policies in user response object + ${Skipuserpolicy}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # To be set true when called to only fetch Soft deleted users + ${Softdeleteduser}, - [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # To set the number of users to be fetched + ${Top}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # To set to true when called from Get-CsVoiceUser cmdlet + ${Voiceuserquery}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -31066,8 +40616,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsCallQueue_Remove'; - RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsCallQueue_RemoveViaIdentity'; + Search = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Search-CsUser_Search'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -31107,23 +40656,183 @@ end { <# .Synopsis -Delete Configuration +Updates a specific AutoAttendant. +PUT Teams.VoiceApps/auto-attendants/identity. .Description -Delete Configuration +Updates a specific AutoAttendant. +PUT Teams.VoiceApps/auto-attendants/identity. .Example {{ Add code here }} .Example {{ Add code here }} +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAutoAttendant .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -System.Boolean +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAutoAttendantResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. +BODY : . + [ApplicationInstance ]: + [AuthorizedUser ]: + [CallFlow ]: + [ForceListenMenuEnabled ]: + [Greeting ]: + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + [Id ]: + [MenuDialByNameEnabled ]: + [MenuDirectorySearchMethod ]: + [MenuName ]: + [MenuOption ]: + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + [MenuPrompt ]: + [Name ]: + [CallHandlingAssociation ]: + [CallFlowId ]: + [Enabled ]: + [Priority ]: + [ScheduleId ]: + [Type ]: + [DefaultCallFlowForceListenMenuEnabled ]: + [DefaultCallFlowGreeting ]: + [DefaultCallFlowId ]: + [DefaultCallFlowName ]: + [DialByNameResourceId ]: + [ExclusionScopeGroupDialScopeGroupId ]: + [ExclusionScopeType ]: + [HideAuthorizedUser ]: Gets or sets hidden authorized user ids. + [Id ]: + [InclusionScopeGroupDialScopeGroupId ]: + [InclusionScopeType ]: + [LanguageId ]: + [MainlineAttendantAgentVoiceId ]: + [MainlineAttendantEnabled ]: + [MenuDialByNameEnabled ]: + [MenuDirectorySearchMethod ]: + [MenuName ]: + [MenuOption ]: + [MenuPrompt ]: + [Name ]: + [OperatorCallPriority ]: + [OperatorEnableSharedVoicemailSystemPromptSuppression ]: + [OperatorEnableTranscription ]: + [OperatorId ]: + [OperatorSharedVoicemailCallPriority ]: + [OperatorSharedVoicemailEnableSharedVoicemailSystemPromptSuppression ]: + [OperatorSharedVoicemailEnableTranscription ]: + [OperatorSharedVoicemailId ]: + [OperatorSharedVoicemailType ]: + [OperatorType ]: + [Schedule ]: + [AssociatedConfigurationId ]: + [FixedScheduleDateTimeRange ]: + [End ]: + [Start ]: + [Id ]: + [Name ]: + [RecurrenceRangeEnd ]: + [RecurrenceRangeNumberOfOccurrence ]: + [RecurrenceRangeStart ]: + [RecurrenceRangeType ]: + [Type ]: + [WeeklyRecurrentScheduleFridayHour ]: + [End ]: + [Start ]: + [WeeklyRecurrentScheduleIsComplemented ]: + [WeeklyRecurrentScheduleMondayHour ]: + [WeeklyRecurrentScheduleSaturdayHour ]: + [WeeklyRecurrentScheduleSundayHour ]: + [WeeklyRecurrentScheduleThursdayHour ]: + [WeeklyRecurrentScheduleTuesdayHour ]: + [WeeklyRecurrentScheduleWednesdayHour ]: + [Status ]: + [AuxiliaryData ]: Get or sets auxiliary data. + [ErrorCode ]: Gets or sets error code of audio, grammar. + [Id ]: Gets or sets dialByNameGrammarContext. + [Message ]: Gets or sets error meessage of audio, grammar. + [Status ]: Gets or sets resource status of autoattendant. + [StatusTimestamp ]: Gets or sets time stamp of auido, grammar status. + [Type ]: Gets or sets resource type of autoattendant. + [TenantId ]: + [TimeZoneId ]: + [UserNameExtension ]: + [VoiceId ]: + [VoiceResponseEnabled ]: + +CALLFLOW : . + [ForceListenMenuEnabled ]: + [Greeting ]: + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + [Id ]: + [MenuDialByNameEnabled ]: + [MenuDirectorySearchMethod ]: + [MenuName ]: + [MenuOption ]: + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + [MenuPrompt ]: + [Name ]: + +CALLHANDLINGASSOCIATION : . + [CallFlowId ]: + [Enabled ]: + [Priority ]: + [ScheduleId ]: + [Type ]: + +DEFAULTCALLFLOWGREETING : . + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + INPUTOBJECT : Identity Parameter [AppId ]: [AudioFileId ]: @@ -31164,31 +40873,400 @@ INPUTOBJECT : Identity Parameter [UserId ]: UserId. [Version ]: [WfmTeamId ]: Team Id + +MENUOPTION : . + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + +MENUPROMPT : . + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + +SCHEDULE : . + [AssociatedConfigurationId ]: + [FixedScheduleDateTimeRange ]: + [End ]: + [Start ]: + [Id ]: + [Name ]: + [RecurrenceRangeEnd ]: + [RecurrenceRangeNumberOfOccurrence ]: + [RecurrenceRangeStart ]: + [RecurrenceRangeType ]: + [Type ]: + [WeeklyRecurrentScheduleFridayHour ]: + [End ]: + [Start ]: + [WeeklyRecurrentScheduleIsComplemented ]: + [WeeklyRecurrentScheduleMondayHour ]: + [WeeklyRecurrentScheduleSaturdayHour ]: + [WeeklyRecurrentScheduleSundayHour ]: + [WeeklyRecurrentScheduleThursdayHour ]: + [WeeklyRecurrentScheduleTuesdayHour ]: + [WeeklyRecurrentScheduleWednesdayHour ]: + +STATUS : . + [AuxiliaryData ]: Get or sets auxiliary data. + [ErrorCode ]: Gets or sets error code of audio, grammar. + [Id ]: Gets or sets dialByNameGrammarContext. + [Message ]: Gets or sets error meessage of audio, grammar. + [Status ]: Gets or sets resource status of autoattendant. + [StatusTimestamp ]: Gets or sets time stamp of auido, grammar status. + [Type ]: Gets or sets resource type of autoattendant. .Link -https://docs.microsoft.com/en-us/powershell/module/teams/remove-csconfiguration +https://docs.microsoft.com/en-us/powershell/module/teams/set-csautoattendant #> -function Remove-CsConfiguration { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Set-CsAutoAttendant { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAutoAttendantResponse])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Delete', Mandatory)] + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Id for the auto attendant to be updated. + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAutoAttendant] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${ApplicationInstance}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${AuthorizedUser}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallFlow[]] + # . + # To construct, see NOTES section for CALLFLOW properties and create a hash table. + ${CallFlow}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallHandlingAssociation[]] + # . + # To construct, see NOTES section for CALLHANDLINGASSOCIATION properties and create a hash table. + ${CallHandlingAssociation}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${DefaultCallFlowForceListenMenuEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] + # . + # To construct, see NOTES section for DEFAULTCALLFLOWGREETING properties and create a hash table. + ${DefaultCallFlowGreeting}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DefaultCallFlowId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DefaultCallFlowName}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DialByNameResourceId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${ExclusionScopeGroupDialScopeGroupId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ExclusionScopeType}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets hidden authorized user ids. + ${HideAuthorizedUser}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Id}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${InclusionScopeGroupDialScopeGroupId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${InclusionScopeType}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${LanguageId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${MainlineAttendantAgentVoiceId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${MainlineAttendantEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${MenuDialByNameEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${MenuDirectorySearchMethod}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${MenuName}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMenuOption[]] + # . + # To construct, see NOTES section for MENUOPTION properties and create a hash table. + ${MenuOption}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] + # . + # To construct, see NOTES section for MENUPROMPT properties and create a hash table. + ${MenuPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Name}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${OperatorCallPriority}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${OperatorEnableSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${OperatorEnableTranscription}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${OperatorId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${OperatorSharedVoicemailCallPriority}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${OperatorSharedVoicemailEnableSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${OperatorSharedVoicemailEnableTranscription}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${OperatorSharedVoicemailId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${OperatorSharedVoicemailType}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${OperatorType}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISchedule[]] + # . + # To construct, see NOTES section for SCHEDULE properties and create a hash table. + ${Schedule}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IStatusRecord2[]] + # . + # To construct, see NOTES section for STATUS properties and create a hash table. + ${Status}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${ConfigName}, + ${TenantId}, - [Parameter(ParameterSetName='Delete', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${ConfigType}, + ${TimeZoneId}, - [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${UserNameExtension}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${VoiceId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${VoiceResponseEnabled}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -31210,12 +41288,6 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -31245,8 +41317,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Delete = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsConfiguration_Delete'; - DeleteViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsConfiguration_DeleteViaIdentity'; + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsAutoAttendant_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsAutoAttendant_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsAutoAttendant_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsAutoAttendant_SetViaIdentityExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -31286,11 +41360,11 @@ end { <# .Synopsis -Remove application instance associations. -DELETE api/v1.0/tenants/tenantId/applicationinstanceassociations/endpointId. +Update call queue. +PUT Teams.VoiceApps/callqueues/identity. .Description -Remove application instance associations. -DELETE api/v1.0/tenants/tenantId/applicationinstanceassociations/endpointId. +Update call queue. +PUT Teams.VoiceApps/callqueues/identity. .Example {{ Add code here }} .Example @@ -31298,13 +41372,107 @@ DELETE api/v1.0/tenants/tenantId/applicationinstanceassociations/endpointId. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateCallQueueRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IRemoveApplicationInstanceAssociationsResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. +BODY : CallQueue modify request DTO class. + [AgentAlertTime ]: Gets or sets the number of seconds that a call can remain unanswered. + [AllowOptOut ]: Gets or sets a value indicating whether to allow agent optout on Call Queue. + [AuthorizedUser ]: Gets or sets authorized user ids. + [CallToAgentRatioThresholdBeforeOfferingCallback ]: + [CallbackEmailNotificationTarget ]: Gets or sets the target of the callback email notification target. + [CallbackOfferAudioFilePromptResourceId ]: + [CallbackOfferTextToSpeechPrompt ]: + [CallbackRequestDtmf ]: + [ComplianceRecordingForCallQueueId ]: Gets or Sets the Id for Compliance Recording template for Callqueue. + [ConferenceMode ]: Gets or sets a value indicating whether to allow Conference Mode on Call Queue. + [CustomAudioFileAnnouncementForCr ]: Gets or sets the custom audio file announcement for compliance recording. + [CustomAudioFileAnnouncementForCrFailure ]: Gets or sets the custom audio file announcement for compliance recording if CR bot is unable to join the call. + [DistributionList ]: Gets or sets the Call Queue's Distribution List. + [EnableNoAgentSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. + [EnableNoAgentSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. + [EnableOverflowSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. + [EnableOverflowSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. + [EnableResourceAccountsForObo ]: Gets or sets a value indicating whether to allow CQ+Chanined RA's as permissioned RA's. + [EnableTimeoutSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. + [EnableTimeoutSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. + [HideAuthorizedUser ]: Gets or sets hidden authorized user ids. + [IsCallbackEnabled ]: + [LanguageId ]: Gets or sets the language Id used for TTS. + [MusicOnHoldAudioFileId ]: Gets or sets the call flows for the auto attendant app endpoint. + [Name ]: Gets or sets the Call Queue's name. + [NoAgentAction ]: Gets or sets the action to take if the NoAgent is LoggedIn/OptedIn. + [NoAgentActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of no agent. + [NoAgentActionTarget ]: Gets or sets the target of the NoAgent action. + [NoAgentApplyTo ]: Determines whether NoAgent Action is applied to All Calls or to new calls only. + [NoAgentDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on NoAgent. + [NoAgentDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on NoAgent. + [NoAgentRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on NoAgent. + [NoAgentRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on NoAgent. + [NoAgentRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on NoAgent. + [NoAgentRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on NoAgent. + [NoAgentRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on NoAgent. + [NoAgentRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on NoAgent. + [NoAgentRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on NoAgent. + [NoAgentRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on NoAgent. + [NoAgentSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemail. + [NoAgentSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. + [NumberOfCallsInQueueBeforeOfferingCallback ]: + [OboResourceAccountId ]: Gets or sets the list of Obo resource account ids. + [OverflowAction ]: Gets or sets the action to take when the overflow threshold is reached. + [OverflowActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of overflow. + [OverflowActionTarget ]: Gets or sets the target of the overflow action. + [OverflowDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on overflow. + [OverflowDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on overflow. + [OverflowRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on overflow. + [OverflowRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on overflow. + [OverflowRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on overflow. + [OverflowRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on overflow. + [OverflowRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on overflow. + [OverflowRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on overflow. + [OverflowRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on overflow. + [OverflowRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on overflow. + [OverflowSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemai. + [OverflowSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. + [OverflowThreshold ]: Gets or sets the number of simultaneous calls that can be in the queue at any one time. + [PresenceAwareRouting ]: Gets or sets a value indicating whether to enable presence aware routing. + [RoutingMethod ]: Gets or sets the routing method for the Call Queue. + [ServiceLevelThresholdResponseTimeInSecond ]: + [SharedCallQueueHistoryId ]: Gets or sets the Shared Call Queue History template. + [ShiftsSchedulingGroupId ]: Gets or sets the Shifts Scheduling Group to use as Call queues answer target. + [ShiftsTeamId ]: Gets or sets the Shifts Team to use as Call queues answer target. + [ShouldOverwriteCallableChannelProperty ]: Gets or sets ShouldOverwriteCallableChannelProperty flag that indicates user intention to whether overwirte the current callableChannel property value on chat service or not. + [TextAnnouncementForCr ]: Gets or sets the text announcement for compliance recording. + [TextAnnouncementForCrFailure ]: Gets or sets the text announcemet that is played if CR bot is unable to join the call. + [ThreadId ]: Gets or sets teams channel thread id if user choose to sync CQ with a channel. + [TimeoutAction ]: Gets or sets the action to take if the timeout threshold is reached. + [TimeoutActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of timeout. + [TimeoutActionTarget ]: Gets or sets the target of the timeout action. + [TimeoutDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on Timeout. + [TimeoutDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on Timeout. + [TimeoutRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on Timeout. + [TimeoutRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on Timeout. + [TimeoutRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on Timeout. + [TimeoutRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on Timeout. + [TimeoutRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on Timeout. + [TimeoutRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on Timeout. + [TimeoutRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on Timeout. + [TimeoutRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on Timeout. + [TimeoutSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemai. + [TimeoutSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. + [TimeoutThreshold ]: Gets or sets the number of minutes that a call can be in the queue before it times out. + [UseDefaultMusicOnHold ]: Gets or sets a value indicating whether to use default music on hold audio file. + [User ]: Gets or sets the Call Queue's Users. + [WaitTimeBeforeOfferingCallbackInSecond ]: + [WelcomeMusicAudioFileId ]: Gets or sets the welcome audio file to play for the call queue. + [WelcomeTextToSpeechPrompt ]: Gets or sets the welcome text to speech content for the call queue. + INPUTOBJECT : Identity Parameter [AppId ]: [AudioFileId ]: @@ -31346,506 +41514,676 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/remove-csonlineapplicationinstanceassociation +https://docs.microsoft.com/en-us/powershell/module/teams/set-cscallqueue #> -function Remove-CsOnlineApplicationInstanceAssociation { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IRemoveApplicationInstanceAssociationsResponse])] -[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Set-CsCallQueue { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Remove', Mandatory)] + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # Application instance Id. + # . ${Identity}, - [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${ChannelUserObjectId}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateCallQueueRequest] + # CallQueue modify request DTO class. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the number of seconds that a call can remain unanswered. + ${AgentAlertTime}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, + # Gets or sets a value indicating whether to allow agent optout on Call Queue. + ${AllowOptOut}, - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets authorized user ids. + ${AuthorizedUsers}, - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${CallToAgentRatioThresholdBeforeOfferingCallback}, - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the target of the callback email notification target. + ${CallbackEmailNotificationTarget}, - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CallbackOfferAudioFilePromptResourceId}, - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CallbackOfferTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CallbackRequestDtmf}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or Sets the Id for Compliance Recording template for Callqueue. + ${ComplianceRecordingForCallQueueTemplateId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) + # Gets or sets a value indicating whether to allow Conference Mode on Call Queue. + ${ConferenceMode}, -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the custom audio file announcement for compliance recording. + ${CustomAudioFileAnnouncementForCr}, - $mapping = @{ - Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineApplicationInstanceAssociation_Remove'; - RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineApplicationInstanceAssociation_RemoveViaIdentity'; - } + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the custom audio file announcement for compliance recording if CR bot is unable to join the call. + ${CustomAudioFileAnnouncementForCrFailure}, - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets the Call Queue's Distribution List. + ${DistributionLists}, - throw - } -} + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if system message should be suppressed or not. + ${EnableNoAgentSharedVoicemailSystemPromptSuppression}, -process { - try { - $steppablePipeline.Process($_) - } catch { + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if transcription should be turned on or not. + ${EnableNoAgentSharedVoicemailTranscription}, - throw - } + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if system message should be suppressed or not. + ${EnableOverflowSharedVoicemailSystemPromptSuppression}, -} -end { - try { - $steppablePipeline.End() + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if transcription should be turned on or not. + ${EnableOverflowSharedVoicemailTranscription}, - } catch { + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to allow CQ+Chanined RA's as permissioned RA's. + ${EnableResourceAccountsForObo}, - throw - } -} -} + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if system message should be suppressed or not. + ${EnableTimeoutSharedVoicemailSystemPromptSuppression}, -# ---------------------------------------------------------------------------------- -# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# ---------------------------------------------------------------------------------- + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if transcription should be turned on or not. + ${EnableTimeoutSharedVoicemailTranscription}, -<# -.Synopsis -Delete an audio file stored in MSS. -DELETE api/v3/tenants/tenantId/audiofile/appId/audiofileId -.Description -Delete an audio file stored in MSS. -DELETE api/v3/tenants/tenantId/audiofile/appId/audiofileId -.Example -{{ Add code here }} -.Example -{{ Add code here }} + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets hidden authorized user ids. + ${HideAuthorizedUsers}, -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsCallbackEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the language Id used for TTS. + ${LanguageId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the call flows for the auto attendant app endpoint. + ${MusicOnHoldAudioFileId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the Call Queue's name. + ${Name}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the action to take if the NoAgent is LoggedIn/OptedIn. + ${NoAgentAction}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of no agent. + ${NoAgentActionCallPriority}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the target of the NoAgent action. + ${NoAgentActionTarget}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Determines whether NoAgent Action is applied to All Calls or to new calls only. + ${NoAgentApplyTo}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is disconnected on NoAgent. + ${NoAgentDisconnectAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is disconnected on NoAgent. + ${NoAgentDisconnectTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to person on NoAgent. + ${NoAgentRedirectPersonAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to person on NoAgent. + ${NoAgentRedirectPersonTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to phone number on NoAgent. + ${NoAgentRedirectPhoneNumberAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to phone number on NoAgent. + ${NoAgentRedirectPhoneNumberTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voiceapp on NoAgent. + ${NoAgentRedirectVoiceAppAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voiceapp on NoAgent. + ${NoAgentRedirectVoiceAppTextToSpeechPrompt}, -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voicemail on NoAgent. + ${NoAgentRedirectVoicemailAudioFilePrompt}, -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id - [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/remove-csonlineaudiofile -#> -function Remove-CsOnlineAudioFile { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Remove', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${ApplicationId}, + # Gets or sets the TTS to be played when call is redirected to voicemail on NoAgent. + ${NoAgentRedirectVoicemailTextToSpeechPrompt}, - [Parameter(ParameterSetName='Remove', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] + # Gets or sets the audio file to be played when forwarding callers to shared voicemail. + ${NoAgentSharedVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when forwarding callers to shared voicemail. + ${NoAgentSharedVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] # . - ${Identity}, + ${NumberOfCallsInQueueBeforeOfferingCallback}, - [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets the list of Obo resource account ids. + ${OboResourceAccountIds}, - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the action to take when the overflow threshold is reached. + ${OverflowAction}, - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of overflow. + ${OverflowActionCallPriority}, - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the target of the overflow action. + ${OverflowActionTarget}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is disconnected on overflow. + ${OverflowDisconnectAudioFilePrompt}, - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is disconnected on overflow. + ${OverflowDisconnectTextToSpeechPrompt}, - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to person on overflow. + ${OverflowRedirectPersonAudioFilePrompt}, - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to person on overflow. + ${OverflowRedirectPersonTextToSpeechPrompt}, -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to phone number on overflow. + ${OverflowRedirectPhoneNumberAudioFilePrompt}, - $mapping = @{ - Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineAudioFile_Remove'; - RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineAudioFile_RemoveViaIdentity'; - } + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to phone number on overflow. + ${OverflowRedirectPhoneNumberTextToSpeechPrompt}, - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voiceapp on overflow. + ${OverflowRedirectVoiceAppAudioFilePrompt}, - throw - } -} + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voiceapp on overflow. + ${OverflowRedirectVoiceAppTextToSpeechPrompt}, -process { - try { - $steppablePipeline.Process($_) - } catch { + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voicemail on overflow. + ${OverflowRedirectVoicemailAudioFilePrompt}, - throw - } + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voicemail on overflow. + ${OverflowRedirectVoicemailTextToSpeechPrompt}, -} -end { - try { - $steppablePipeline.End() + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when forwarding callers to shared voicemai. + ${OverflowSharedVoicemailAudioFilePrompt}, - } catch { + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when forwarding callers to shared voicemail. + ${OverflowSharedVoicemailTextToSpeechPrompt}, - throw - } -} -} + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the number of simultaneous calls that can be in the queue at any one time. + ${OverflowThreshold}, -# ---------------------------------------------------------------------------------- -# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# ---------------------------------------------------------------------------------- + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to enable presence aware routing. + ${PresenceAwareRouting}, -<# -.Synopsis -Deletes a specific schedule. -DELETE Teams.VoiceApps/schedules/identity. -.Description -Deletes a specific schedule. -DELETE Teams.VoiceApps/schedules/identity. -.Example -{{ Add code here }} -.Example -{{ Add code here }} + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the routing method for the Call Queue. + ${RoutingMethod}, -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord -.Notes -COMPLEX PARAMETER PROPERTIES + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${ServiceLevelThresholdResponseTimeInSecond}, -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the Shared Call Queue History template. + ${SharedCallQueueHistoryTemplateId}, -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id - [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/remove-csonlineschedule -#> -function Remove-CsOnlineSchedule { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] -[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Remove', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Id for the schedule to be removed. - ${Identity}, + # Gets or sets the Shifts Scheduling Group to use as Call queues answer target. + ${ShiftsSchedulingGroupId}, - [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the Shifts Team to use as Call queues answer target. + ${ShiftsTeamId}, - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, + # Gets or sets ShouldOverwriteCallableChannelProperty flag that indicates user intention to whether overwirte the current callableChannel property value on chat service or not. + ${ShouldOverwriteCallableChannelProperty}, - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the text announcement for compliance recording. + ${TextAnnouncementForCr}, - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the text announcemet that is played if CR bot is unable to join the call. + ${TextAnnouncementForCrFailure}, - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets teams channel thread id if user choose to sync CQ with a channel. + ${ThreadId}, - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the action to take if the timeout threshold is reached. + ${TimeoutAction}, -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of timeout. + ${TimeoutActionCallPriority}, - $mapping = @{ - Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineSchedule_Remove'; - RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineSchedule_RemoveViaIdentity'; - } + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the target of the timeout action. + ${TimeoutActionTarget}, - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is disconnected on Timeout. + ${TimeoutDisconnectAudioFilePrompt}, - throw - } -} + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is disconnected on Timeout. + ${TimeoutDisconnectTextToSpeechPrompt}, -process { - try { - $steppablePipeline.Process($_) - } catch { + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to person on Timeout. + ${TimeoutRedirectPersonAudioFilePrompt}, - throw - } + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to person on Timeout. + ${TimeoutRedirectPersonTextToSpeechPrompt}, -} -end { - try { - $steppablePipeline.End() + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to phone number on Timeout. + ${TimeoutRedirectPhoneNumberAudioFilePrompt}, - } catch { + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to phone number on Timeout. + ${TimeoutRedirectPhoneNumberTextToSpeechPrompt}, - throw - } -} -} + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voiceapp on Timeout. + ${TimeoutRedirectVoiceAppAudioFilePrompt}, -# ---------------------------------------------------------------------------------- -# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# ---------------------------------------------------------------------------------- + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voiceapp on Timeout. + ${TimeoutRedirectVoiceAppTextToSpeechPrompt}, -<# -.Synopsis + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voicemail on Timeout. + ${TimeoutRedirectVoicemailAudioFilePrompt}, -.Description + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voicemail on Timeout. + ${TimeoutRedirectVoicemailTextToSpeechPrompt}, -.Example -{{ Add code here }} -.Example -{{ Add code here }} + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when forwarding callers to shared voicemai. + ${TimeoutSharedVoicemailAudioFilePrompt}, -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseRequest -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseOrderResponse -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtErrorResponseDetails -.Notes -COMPLEX PARAMETER PROPERTIES + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when forwarding callers to shared voicemail. + ${TimeoutSharedVoicemailTextToSpeechPrompt}, -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the number of minutes that a call can be in the queue before it times out. + ${TimeoutThreshold}, -BODY : CmdletReleaseRequest - [TelephoneNumber ]: -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/remove-csonlinetelephonenumberprivate -#> -function Remove-CsOnlineTelephoneNumberPrivate { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseOrderResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtErrorResponseDetails])] -[CmdletBinding(DefaultParameterSetName='RemoveExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Remove', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseRequest] - # CmdletReleaseRequest - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to use default music on hold audio file. + ${UseDefaultMusicOnHold}, - [Parameter(ParameterSetName='RemoveExpanded')] + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String[]] + # Gets or sets the Call Queue's Users. + ${Users}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] # . - ${TelephoneNumber}, + ${WaitTimeBeforeOfferingCallbackInSecond}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the welcome audio file to play for the call queue. + ${WelcomeMusicAudioFileId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the welcome text to speech content for the call queue. + ${WelcomeTextToSpeechPrompt}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -31896,8 +42234,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineTelephoneNumberPrivate_Remove'; - RemoveExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineTelephoneNumberPrivate_RemoveExpanded'; + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsCallQueue_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsCallQueue_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsCallQueue_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsCallQueue_SetViaIdentityExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -31937,23 +42277,37 @@ end { <# .Synopsis - +Update compliance recording template. +PUT /Teams.VoiceApps/compliance-recording/identity. .Description - +Update compliance recording template. +PUT /Teams.VoiceApps/compliance-recording/identity. .Example {{ Add code here }} .Example {{ Add code here }} +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IComplianceRecordingForCallQueueDtoModel .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -System.Boolean +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateComplianceRecordingForCallQueueResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. +BODY : . + [BotId ]: Gets or sets the MRI of the first bot. + [ConcurrentInvitationCount ]: Gets or sets the number of concurrent invitations allowed. Concurrent invitations are used to send multiple invites to the CR bot. + [Description ]: Gets or sets the description of the compliance recording. + [Id ]: Gets or sets the identifier of the compliance recording. + [Name ]: Gets or sets the name of the compliance recording. + [PairedApplication ]: Gets or sets the paired applications for the compliance recording bot. This is a resiliency feature that allows invitation of another bot. If either of BotMRI or the paired application is available, we will consider the call to be successful. + [RequiredBeforeCall ]: Gets or sets a value indicating whether the compliance recording is required before the call. + [RequiredDuringCall ]: Gets or sets a value indicating whether the compliance recording is required during the call. + INPUTOBJECT : Identity Parameter [AppId ]: [AudioFileId ]: @@ -31995,42 +42349,92 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/remove-csphonenumberassignment +https://docs.microsoft.com/en-us/powershell/module/teams/set-cscompliancerecordingforcallqueuetemplate #> -function Remove-CsPhoneNumberAssignment { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Set-CsComplianceRecordingForCallQueueTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateComplianceRecordingForCallQueueResponse])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Remove', Mandatory)] + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # . + # The identity of the compliance recording configuration. ${Identity}, - [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IComplianceRecordingForCallQueueDtoModel] # . - ${PhoneNumber}, + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${PhoneNumberType}, + # Gets or sets the MRI of the first bot. + ${BotApplicationInstanceObjectId}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the number of concurrent invitations allowed. + # Concurrent invitations are used to send multiple invites to the CR bot. + ${ConcurrentInvitationCount}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the description of the compliance recording. + ${Description}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the identifier of the compliance recording. + ${Id}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the name of the compliance recording. + ${Name}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the paired applications for the compliance recording bot. + # This is a resiliency feature that allows invitation of another bot.If either of BotMRI or the paired application is available, we will consider the call to be successful. + ${PairedApplicationInstanceObjectId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.Management.Automation.SwitchParameter] - # . - ${RemoveAll}, + # Gets or sets a value indicating whether the compliance recording is required before the call. + ${RequiredBeforeCall}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether the compliance recording is required during the call. + ${RequiredDuringCall}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -32052,12 +42456,6 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -32087,8 +42485,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsPhoneNumberAssignment_Remove'; - RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsPhoneNumberAssignment_RemoveViaIdentity'; + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsComplianceRecordingForCallQueueTemplate_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsComplianceRecordingForCallQueueTemplate_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsComplianceRecordingForCallQueueTemplate_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsComplianceRecordingForCallQueueTemplate_SetViaIdentityExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -32128,9 +42528,9 @@ end { <# .Synopsis -Removes delegate in bvd +Update configuration .Description -Removes delegate in bvd +Update configuration .Example {{ Add code here }} .Example @@ -32138,6 +42538,8 @@ Removes delegate in bvd .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration .Outputs System.Boolean .Notes @@ -32145,6 +42547,10 @@ COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. +BODY : . + [(Any) ]: This indicates any property can be added to this object. + Identity : + INPUTOBJECT : Identity Parameter [AppId ]: [AudioFileId ]: @@ -32186,347 +42592,67 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/remove-csusercallingdelegate +https://docs.microsoft.com/en-us/powershell/module/teams/set-csconfiguration #> -function Remove-CsUserCallingDelegate { +function Set-CsConfiguration { [OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Remove', Mandatory)] + [Parameter(ParameterSetName='Update', Mandatory)] + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] # . - ${Delegate}, + ${ConfigName}, - [Parameter(ParameterSetName='Remove', Mandatory)] + [Parameter(ParameterSetName='Update', Mandatory)] + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] # . - ${Identity}, + ${ConfigType}, - [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsUserCallingDelegate_Remove'; - RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsUserCallingDelegate_RemoveViaIdentity'; - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -# ---------------------------------------------------------------------------------- -# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# ---------------------------------------------------------------------------------- - -<# -.Synopsis -Searches a tenant for ODC users. -.Description -Searches a tenant for ODC users. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/search-csodcuser -#> -function Search-CsOdcUser { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser])] -[CmdletBinding(DefaultParameterSetName='Search', PositionalBinding=$false)] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] - # Page Size. - ${PageSize}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Continuation / Pagination marker. - # Use the value from nextlink property in response. - ${Skiptoken}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] - # To set the number of users to be fetched - ${Top}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Search = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Search-CsOdcUser_Search'; - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -# ---------------------------------------------------------------------------------- -# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# ---------------------------------------------------------------------------------- - -<# -.Synopsis -Searches a tenant for users. -.Description -Searches a tenant for users. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUser -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/search-csuser -#> -function Search-CsUser { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUser])] -[CmdletBinding(DefaultParameterSetName='Search', PositionalBinding=$false)] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # To set defaultpropertyset value - ${Defaultpropertyset}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # To fetch optional location field - ${Expandlocation}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # MS Graph like query filters - ${Filter}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # To set includedefaultproperties value - ${Includedefaultproperty}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # This parameter supports query to sort the results. - ${OrderBy}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] - # Page Size. - ${PageSize}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Powershell like query filters - ${Psfilter}, + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # Properties to select - ${Select}, + # Api Version + ${ApiVersion}, [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # Continuation / Pagination marker. - # Use the value from nextlink property in response. - ${Skiptoken}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # Skip user policies in user response object - ${Skipuserpolicy}, + # . + ${SchemaVersion}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # To be set true when called to only fetch Soft deleted users - ${Softdeleteduser}, + [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] - # To set the number of users to be fetched - ${Top}, + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Identity}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # To set to true when called from Get-CsVoiceUser cmdlet - ${Voiceuserquery}, + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Collections.Hashtable] + # Additional Parameters + ${AdditionalProperties}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -32548,6 +42674,12 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -32577,7 +42709,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Search = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Search-CsUser_Search'; + Update = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsConfiguration_Update'; + UpdateExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsConfiguration_UpdateExpanded'; + UpdateViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsConfiguration_UpdateViaIdentity'; + UpdateViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsConfiguration_UpdateViaIdentityExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -32617,170 +42752,34 @@ end { <# .Synopsis -Updates a specific AutoAttendant. -PUT Teams.VoiceApps/auto-attendants/identity. +Update appointment booking flow for mainline attendant PUT api/v1.0/tenants/tenantId/mainline-attendant-flow/appointment-booking/identity .Description -Updates a specific AutoAttendant. -PUT Teams.VoiceApps/auto-attendants/identity. +Update appointment booking flow for mainline attendant PUT api/v1.0/tenants/tenantId/mainline-attendant-flow/appointment-booking/identity .Example {{ Add code here }} .Example {{ Add code here }} -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAutoAttendant .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAppointmentBookingFlowRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAutoAttendantResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAppointmentBookingFlowResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . - [ApplicationInstance ]: - [AuthorizedUser ]: - [CallFlow ]: - [ForceListenMenuEnabled ]: - [Greeting ]: - [ActiveType ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [TextToSpeechPrompt ]: - [Id ]: - [MenuDialByNameEnabled ]: - [MenuDirectorySearchMethod ]: - [MenuName ]: - [MenuOption ]: - [Action ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [CallTargetCallPriority ]: - [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: - [CallTargetEnableTranscription ]: - [CallTargetId ]: - [CallTargetType ]: - [DtmfResponse ]: - [PromptActiveType ]: - [PromptTextToSpeechPrompt ]: - [VoiceResponse ]: - [MenuPrompt ]: - [Name ]: - [CallHandlingAssociation ]: - [CallFlowId ]: - [Enabled ]: - [Priority ]: - [ScheduleId ]: - [Type ]: - [DefaultCallFlowForceListenMenuEnabled ]: - [DefaultCallFlowGreeting ]: - [DefaultCallFlowId ]: - [DefaultCallFlowName ]: - [DialByNameResourceId ]: - [ExclusionScopeGroupDialScopeGroupId ]: - [ExclusionScopeType ]: - [HideAuthorizedUser ]: Gets or sets hidden authorized user ids. - [Id ]: - [InclusionScopeGroupDialScopeGroupId ]: - [InclusionScopeType ]: - [LanguageId ]: - [MenuDialByNameEnabled ]: - [MenuDirectorySearchMethod ]: - [MenuName ]: - [MenuOption ]: - [MenuPrompt ]: - [Name ]: - [OperatorCallPriority ]: - [OperatorEnableSharedVoicemailSystemPromptSuppression ]: - [OperatorEnableTranscription ]: - [OperatorId ]: - [OperatorSharedVoicemailCallPriority ]: - [OperatorSharedVoicemailEnableSharedVoicemailSystemPromptSuppression ]: - [OperatorSharedVoicemailEnableTranscription ]: - [OperatorSharedVoicemailId ]: - [OperatorSharedVoicemailType ]: - [OperatorType ]: - [Schedule ]: - [AssociatedConfigurationId ]: - [FixedScheduleDateTimeRange ]: - [End ]: - [Start ]: - [Id ]: - [Name ]: - [RecurrenceRangeEnd ]: - [RecurrenceRangeNumberOfOccurrence ]: - [RecurrenceRangeStart ]: - [RecurrenceRangeType ]: - [Type ]: - [WeeklyRecurrentScheduleFridayHour ]: - [End ]: - [Start ]: - [WeeklyRecurrentScheduleIsComplemented ]: - [WeeklyRecurrentScheduleMondayHour ]: - [WeeklyRecurrentScheduleSaturdayHour ]: - [WeeklyRecurrentScheduleSundayHour ]: - [WeeklyRecurrentScheduleThursdayHour ]: - [WeeklyRecurrentScheduleTuesdayHour ]: - [WeeklyRecurrentScheduleWednesdayHour ]: - [Status ]: - [AuxiliaryData ]: Get or sets auxiliary data. - [ErrorCode ]: Gets or sets error code of audio, grammar. - [Id ]: Gets or sets dialByNameGrammarContext. - [Message ]: Gets or sets error meessage of audio, grammar. - [Status ]: Gets or sets resource status of autoattendant. - [StatusTimestamp ]: Gets or sets time stamp of auido, grammar status. - [Type ]: Gets or sets resource type of autoattendant. - [TenantId ]: - [TimeZoneId ]: - [UserNameExtension ]: - [VoiceId ]: - [VoiceResponseEnabled ]: - -CALLFLOW : . - [ForceListenMenuEnabled ]: - [Greeting ]: - [ActiveType ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [TextToSpeechPrompt ]: - [Id ]: - [MenuDialByNameEnabled ]: - [MenuDirectorySearchMethod ]: - [MenuName ]: - [MenuOption ]: - [Action ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [CallTargetCallPriority ]: - [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: - [CallTargetEnableTranscription ]: - [CallTargetId ]: - [CallTargetType ]: - [DtmfResponse ]: - [PromptActiveType ]: - [PromptTextToSpeechPrompt ]: - [VoiceResponse ]: - [MenuPrompt ]: - [Name ]: - -CALLHANDLINGASSOCIATION : . - [CallFlowId ]: - [Enabled ]: - [Priority ]: - [ScheduleId ]: - [Type ]: - -DEFAULTCALLFLOWGREETING : . - [ActiveType ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [TextToSpeechPrompt ]: +BODY : Represents a request to update a mainline attendant appointment booking flow. + [ApiAuthenticationType ]: Defines the type of API authentication to be used. Supported values include: Basic, ApiKey, BearerTokenStatic, BearerTokenDynamic. + [ApiDefinition ]: Contains detailed specifications or schema definitions for the API. + [CallerAuthenticationMethod ]: Specifies the method used to authenticate the caller. Supported values include: Sms, Email, VerificationLink, Voiceprint, UserDetails. + [ConfigurationId ]: Gets or sets the configuration ID of the mainline attendant appointment booking flow. + [Description ]: A brief description of the appointment booking flow. + [Identity ]: The unique identifier for the appointment booking flow. + [Name ]: The name assigned to the appointment booking flow. + [Type ]: The type of the mainline attendant flow. INPUTOBJECT : Identity Parameter [AppId ]: @@ -32822,381 +42821,91 @@ INPUTOBJECT : Identity Parameter [UserId ]: UserId. [Version ]: [WfmTeamId ]: Team Id - -MENUOPTION : . - [Action ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [CallTargetCallPriority ]: - [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: - [CallTargetEnableTranscription ]: - [CallTargetId ]: - [CallTargetType ]: - [DtmfResponse ]: - [PromptActiveType ]: - [PromptTextToSpeechPrompt ]: - [VoiceResponse ]: - -MENUPROMPT : . - [ActiveType ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [TextToSpeechPrompt ]: - -SCHEDULE : . - [AssociatedConfigurationId ]: - [FixedScheduleDateTimeRange ]: - [End ]: - [Start ]: - [Id ]: - [Name ]: - [RecurrenceRangeEnd ]: - [RecurrenceRangeNumberOfOccurrence ]: - [RecurrenceRangeStart ]: - [RecurrenceRangeType ]: - [Type ]: - [WeeklyRecurrentScheduleFridayHour ]: - [End ]: - [Start ]: - [WeeklyRecurrentScheduleIsComplemented ]: - [WeeklyRecurrentScheduleMondayHour ]: - [WeeklyRecurrentScheduleSaturdayHour ]: - [WeeklyRecurrentScheduleSundayHour ]: - [WeeklyRecurrentScheduleThursdayHour ]: - [WeeklyRecurrentScheduleTuesdayHour ]: - [WeeklyRecurrentScheduleWednesdayHour ]: - -STATUS : . - [AuxiliaryData ]: Get or sets auxiliary data. - [ErrorCode ]: Gets or sets error code of audio, grammar. - [Id ]: Gets or sets dialByNameGrammarContext. - [Message ]: Gets or sets error meessage of audio, grammar. - [Status ]: Gets or sets resource status of autoattendant. - [StatusTimestamp ]: Gets or sets time stamp of auido, grammar status. - [Type ]: Gets or sets resource type of autoattendant. .Link -https://docs.microsoft.com/en-us/powershell/module/teams/set-csautoattendant +https://docs.microsoft.com/en-us/powershell/module/teams/set-csmainlineattendantappointmentbookingflow #> -function Set-CsAutoAttendant { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAutoAttendantResponse])] +function Set-CsMainlineAttendantAppointmentBookingFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAppointmentBookingFlowResponse])] [CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Set', Mandatory)] - [Parameter(ParameterSetName='SetExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Id for the auto attendant to be updated. - ${Identity}, - - [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAutoAttendant] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # . - ${ApplicationInstance}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # . - ${AuthorizedUser}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallFlow[]] - # . - # To construct, see NOTES section for CALLFLOW properties and create a hash table. - ${CallFlow}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallHandlingAssociation[]] - # . - # To construct, see NOTES section for CALLHANDLINGASSOCIATION properties and create a hash table. - ${CallHandlingAssociation}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${DefaultCallFlowForceListenMenuEnabled}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] - # . - # To construct, see NOTES section for DEFAULTCALLFLOWGREETING properties and create a hash table. - ${DefaultCallFlowGreeting}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${DefaultCallFlowId}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${DefaultCallFlowName}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${DialByNameResourceId}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # . - ${ExclusionScopeGroupDialScopeGroupId}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${ExclusionScopeType}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # Gets or sets hidden authorized user ids. - ${HideAuthorizedUser}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Id}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # . - ${InclusionScopeGroupDialScopeGroupId}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${InclusionScopeType}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${LanguageId}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${MenuDialByNameEnabled}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${MenuDirectorySearchMethod}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${MenuName}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMenuOption[]] - # . - # To construct, see NOTES section for MENUOPTION properties and create a hash table. - ${MenuOption}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] - # . - # To construct, see NOTES section for MENUPROMPT properties and create a hash table. - ${MenuPrompt}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Name}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # . - ${OperatorCallPriority}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${OperatorEnableSharedVoicemailSystemPromptSuppression}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${OperatorEnableTranscription}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${OperatorId}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # . - ${OperatorSharedVoicemailCallPriority}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${OperatorSharedVoicemailEnableSharedVoicemailSystemPromptSuppression}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${OperatorSharedVoicemailEnableTranscription}, - - [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # . - ${OperatorSharedVoicemailId}, + # Flow Identity. + ${Identity}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${OperatorSharedVoicemailType}, + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAppointmentBookingFlowRequest] + # Represents a request to update a mainline attendant appointment booking flow. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${OperatorType}, + [System.Int32] + # Defines the type of API authentication to be used.Supported values include: Basic, ApiKey, BearerTokenStatic, BearerTokenDynamic. + ${ApiAuthenticationType}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISchedule[]] - # . - # To construct, see NOTES section for SCHEDULE properties and create a hash table. - ${Schedule}, + [System.String] + # Contains detailed specifications or schema definitions for the API. + ${ApiDefinitions}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IStatusRecord2[]] - # . - # To construct, see NOTES section for STATUS properties and create a hash table. - ${Status}, + [System.Int32] + # Specifies the method used to authenticate the caller.Supported values include: Sms, Email, VerificationLink, Voiceprint, UserDetails. + ${CallerAuthenticationMethod}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${TenantId}, + # Gets or sets the configuration ID of the mainline attendant appointment booking flow. + ${ConfigurationId}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${TimeZoneId}, + # A brief description of the appointment booking flow. + ${Description}, [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${UserNameExtension}, + # The unique identifier for the appointment booking flow. + ${Identity1}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${VoiceId}, + # The name assigned to the appointment booking flow. + ${Name}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${VoiceResponseEnabled}, + [System.String] + # The type of the mainline attendant flow. + ${Type}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -33247,10 +42956,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsAutoAttendant_Set'; - SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsAutoAttendant_SetExpanded'; - SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsAutoAttendant_SetViaIdentity'; - SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsAutoAttendant_SetViaIdentityExpanded'; + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsMainlineAttendantAppointmentBookingFlow_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsMainlineAttendantAppointmentBookingFlow_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsMainlineAttendantAppointmentBookingFlow_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsMainlineAttendantAppointmentBookingFlow_SetViaIdentityExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -33290,11 +42999,9 @@ end { <# .Synopsis -Update call queue. -PUT Teams.VoiceApps/callqueues/identity. +Update question and answer flow for mainline attendant PUT api/v1.0/tenants/tenantId/mainline-attendant-flow/question-answer/identity .Description -Update call queue. -PUT Teams.VoiceApps/callqueues/identity. +Update question and answer flow for mainline attendant PUT api/v1.0/tenants/tenantId/mainline-attendant-flow/question-answer/identity .Example {{ Add code here }} .Example @@ -33303,97 +43010,22 @@ PUT Teams.VoiceApps/callqueues/identity. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateCallQueueRequest +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateQuestionAnswerFlowRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateQuestionAnswerFlowResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : CallQueue modify request DTO class. - [AgentAlertTime ]: Gets or sets the number of seconds that a call can remain unanswered. - [AllowOptOut ]: Gets or sets a value indicating whether to allow agent optout on Call Queue. - [AuthorizedUser ]: Gets or sets authorized user ids. - [CallToAgentRatioThresholdBeforeOfferingCallback ]: - [CallbackEmailNotificationTarget ]: Gets or sets the target of the callback email notification target. - [CallbackOfferAudioFilePromptResourceId ]: - [CallbackOfferTextToSpeechPrompt ]: - [CallbackRequestDtmf ]: - [ConferenceMode ]: Gets or sets a value indicating whether to allow Conference Mode on Call Queue. - [DistributionList ]: Gets or sets the Call Queue's Distribution List. - [EnableNoAgentSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. - [EnableNoAgentSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. - [EnableOverflowSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. - [EnableOverflowSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. - [EnableResourceAccountsForObo ]: Gets or sets a value indicating whether to allow CQ+Chanined RA's as permissioned RA's. - [EnableTimeoutSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. - [EnableTimeoutSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. - [HideAuthorizedUser ]: Gets or sets hidden authorized user ids. - [IsCallbackEnabled ]: - [LanguageId ]: Gets or sets the language Id used for TTS. - [MusicOnHoldAudioFileId ]: Gets or sets the call flows for the auto attendant app endpoint. - [Name ]: Gets or sets the Call Queue's name. - [NoAgentAction ]: Gets or sets the action to take if the NoAgent is LoggedIn/OptedIn. - [NoAgentActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of no agent. - [NoAgentActionTarget ]: Gets or sets the target of the NoAgent action. - [NoAgentApplyTo ]: Determines whether NoAgent Action is applied to All Calls or to new calls only. - [NoAgentDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on NoAgent. - [NoAgentDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on NoAgent. - [NoAgentRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on NoAgent. - [NoAgentRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on NoAgent. - [NoAgentRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on NoAgent. - [NoAgentRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on NoAgent. - [NoAgentRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on NoAgent. - [NoAgentRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on NoAgent. - [NoAgentRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on NoAgent. - [NoAgentRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on NoAgent. - [NoAgentSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemail. - [NoAgentSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. - [NumberOfCallsInQueueBeforeOfferingCallback ]: - [OboResourceAccountId ]: Gets or sets the list of Obo resource account ids. - [OverflowAction ]: Gets or sets the action to take when the overflow threshold is reached. - [OverflowActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of overflow. - [OverflowActionTarget ]: Gets or sets the target of the overflow action. - [OverflowDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on overflow. - [OverflowDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on overflow. - [OverflowRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on overflow. - [OverflowRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on overflow. - [OverflowRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on overflow. - [OverflowRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on overflow. - [OverflowRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on overflow. - [OverflowRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on overflow. - [OverflowRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on overflow. - [OverflowRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on overflow. - [OverflowSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemai. - [OverflowSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. - [OverflowThreshold ]: Gets or sets the number of simultaneous calls that can be in the queue at any one time. - [PresenceAwareRouting ]: Gets or sets a value indicating whether to enable presence aware routing. - [RoutingMethod ]: Gets or sets the routing method for the Call Queue. - [ServiceLevelThresholdResponseTimeInSecond ]: - [ShouldOverwriteCallableChannelProperty ]: Gets or sets ShouldOverwriteCallableChannelProperty flag that indicates user intention to whether overwirte the current callableChannel property value on chat service or not. - [ThreadId ]: Gets or sets teams channel thread id if user choose to sync CQ with a channel. - [TimeoutAction ]: Gets or sets the action to take if the timeout threshold is reached. - [TimeoutActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of timeout. - [TimeoutActionTarget ]: Gets or sets the target of the timeout action. - [TimeoutDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on Timeout. - [TimeoutDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on Timeout. - [TimeoutRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on Timeout. - [TimeoutRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on Timeout. - [TimeoutRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on Timeout. - [TimeoutRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on Timeout. - [TimeoutRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on Timeout. - [TimeoutRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on Timeout. - [TimeoutRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on Timeout. - [TimeoutRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on Timeout. - [TimeoutSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemai. - [TimeoutSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. - [TimeoutThreshold ]: Gets or sets the number of minutes that a call can be in the queue before it times out. - [UseDefaultMusicOnHold ]: Gets or sets a value indicating whether to use default music on hold audio file. - [User ]: Gets or sets the Call Queue's Users. - [WaitTimeBeforeOfferingCallbackInSecond ]: - [WelcomeMusicAudioFileId ]: Gets or sets the welcome audio file to play for the call queue. - [WelcomeTextToSpeechPrompt ]: Gets or sets the welcome text to speech content for the call queue. +BODY : . + [ApiAuthenticationType ]: Gets or sets the api authentication type, allowed values: Basic, ApiKey, BearerTokenStatic, BearerTokenDynamic. + [ConfigurationId ]: Gets or sets the configuration ID of the mainline attendant question and answer flow. + [Description ]: Gets or sets the description of the mainline attendant question and answer flow. + [Identity ]: A brief description of the question and answer flow. + [KnowledgeBase ]: Gets or sets the detailed definitions of the knowledge base. + [Name ]: Gets or sets the name of the mainline attendant question and answer flow. + [Type ]: A brief description of the question and answer flow. INPUTOBJECT : Identity Parameter [AppId ]: @@ -33436,619 +43068,516 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/set-cscallqueue +https://docs.microsoft.com/en-us/powershell/module/teams/set-csmainlineattendantquestionanswerflow #> -function Set-CsCallQueue { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +function Set-CsMainlineAttendantQuestionAnswerFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateQuestionAnswerFlowResponse])] [CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(ParameterSetName='Set', Mandatory)] [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # . + # Flow Identity. ${Identity}, [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${ChannelUserObjectId}, - - [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateCallQueueRequest] - # CallQueue modify request DTO class. - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the number of seconds that a call can remain unanswered. - ${AgentAlertTime}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether to allow agent optout on Call Queue. - ${AllowOptOut}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # Gets or sets authorized user ids. - ${AuthorizedUsers}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # . - ${CallToAgentRatioThresholdBeforeOfferingCallback}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the target of the callback email notification target. - ${CallbackEmailNotificationTarget}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CallbackOfferAudioFilePromptResourceId}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CallbackOfferTextToSpeechPrompt}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CallbackRequestDtmf}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether to allow Conference Mode on Call Queue. - ${ConferenceMode}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # Gets or sets the Call Queue's Distribution List. - ${DistributionLists}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating if system message should be suppressed or not. - ${EnableNoAgentSharedVoicemailSystemPromptSuppression}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating if transcription should be turned on or not. - ${EnableNoAgentSharedVoicemailTranscription}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating if system message should be suppressed or not. - ${EnableOverflowSharedVoicemailSystemPromptSuppression}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating if transcription should be turned on or not. - ${EnableOverflowSharedVoicemailTranscription}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether to allow CQ+Chanined RA's as permissioned RA's. - ${EnableResourceAccountsForObo}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating if system message should be suppressed or not. - ${EnableTimeoutSharedVoicemailSystemPromptSuppression}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating if transcription should be turned on or not. - ${EnableTimeoutSharedVoicemailTranscription}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # Gets or sets hidden authorized user ids. - ${HideAuthorizedUsers}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${IsCallbackEnabled}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the language Id used for TTS. - ${LanguageId}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the call flows for the auto attendant app endpoint. - ${MusicOnHoldAudioFileId}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the Call Queue's name. - ${Name}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the action to take if the NoAgent is LoggedIn/OptedIn. - ${NoAgentAction}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of no agent. - ${NoAgentActionCallPriority}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the target of the NoAgent action. - ${NoAgentActionTarget}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Determines whether NoAgent Action is applied to All Calls or to new calls only. - ${NoAgentApplyTo}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is disconnected on NoAgent. - ${NoAgentDisconnectAudioFilePrompt}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is disconnected on NoAgent. - ${NoAgentDisconnectTextToSpeechPrompt}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to person on NoAgent. - ${NoAgentRedirectPersonAudioFilePrompt}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to person on NoAgent. - ${NoAgentRedirectPersonTextToSpeechPrompt}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to phone number on NoAgent. - ${NoAgentRedirectPhoneNumberAudioFilePrompt}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to phone number on NoAgent. - ${NoAgentRedirectPhoneNumberTextToSpeechPrompt}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to voiceapp on NoAgent. - ${NoAgentRedirectVoiceAppAudioFilePrompt}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to voiceapp on NoAgent. - ${NoAgentRedirectVoiceAppTextToSpeechPrompt}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to voicemail on NoAgent. - ${NoAgentRedirectVoicemailAudioFilePrompt}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to voicemail on NoAgent. - ${NoAgentRedirectVoicemailTextToSpeechPrompt}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when forwarding callers to shared voicemail. - ${NoAgentSharedVoicemailAudioFilePrompt}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when forwarding callers to shared voicemail. - ${NoAgentSharedVoicemailTextToSpeechPrompt}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # . - ${NumberOfCallsInQueueBeforeOfferingCallback}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # Gets or sets the list of Obo resource account ids. - ${OboResourceAccountIds}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the action to take when the overflow threshold is reached. - ${OverflowAction}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of overflow. - ${OverflowActionCallPriority}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the target of the overflow action. - ${OverflowActionTarget}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is disconnected on overflow. - ${OverflowDisconnectAudioFilePrompt}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is disconnected on overflow. - ${OverflowDisconnectTextToSpeechPrompt}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to person on overflow. - ${OverflowRedirectPersonAudioFilePrompt}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to person on overflow. - ${OverflowRedirectPersonTextToSpeechPrompt}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to phone number on overflow. - ${OverflowRedirectPhoneNumberAudioFilePrompt}, + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to phone number on overflow. - ${OverflowRedirectPhoneNumberTextToSpeechPrompt}, + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateQuestionAnswerFlowRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to voiceapp on overflow. - ${OverflowRedirectVoiceAppAudioFilePrompt}, + [System.Int32] + # Gets or sets the api authentication type, allowed values: Basic, ApiKey, BearerTokenStatic, BearerTokenDynamic. + ${ApiAuthenticationType}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the TTS to be played when call is redirected to voiceapp on overflow. - ${OverflowRedirectVoiceAppTextToSpeechPrompt}, + # Gets or sets the configuration ID of the mainline attendant question and answer flow. + ${ConfigurationId}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the audio file to be played when call is redirected to voicemail on overflow. - ${OverflowRedirectVoicemailAudioFilePrompt}, + # Gets or sets the description of the mainline attendant question and answer flow. + ${Description}, [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the TTS to be played when call is redirected to voicemail on overflow. - ${OverflowRedirectVoicemailTextToSpeechPrompt}, + # A brief description of the question and answer flow. + ${Identity1}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the audio file to be played when forwarding callers to shared voicemai. - ${OverflowSharedVoicemailAudioFilePrompt}, + # Gets or sets the detailed definitions of the knowledge base. + ${KnowledgeBase}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the TTS to be played when forwarding callers to shared voicemail. - ${OverflowSharedVoicemailTextToSpeechPrompt}, + # Gets or sets the name of the mainline attendant question and answer flow. + ${Name}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the number of simultaneous calls that can be in the queue at any one time. - ${OverflowThreshold}, + [System.String] + # A brief description of the question and answer flow. + ${Type}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether to enable presence aware routing. - ${PresenceAwareRouting}, + # Wait for .NET debugger to attach + ${Break}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the routing method for the Call Queue. - ${RoutingMethod}, + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # . - ${ServiceLevelThresholdResponseTimeInSecond}, + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] - # Gets or sets ShouldOverwriteCallableChannelProperty flag that indicates user intention to whether overwirte the current callableChannel property value on chat service or not. - ${ShouldOverwriteCallableChannelProperty}, + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets teams channel thread id if user choose to sync CQ with a channel. - ${ThreadId}, +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the action to take if the timeout threshold is reached. - ${TimeoutAction}, + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsMainlineAttendantQuestionAnswerFlow_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsMainlineAttendantQuestionAnswerFlow_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsMainlineAttendantQuestionAnswerFlow_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsMainlineAttendantQuestionAnswerFlow_SetViaIdentityExpanded'; + } - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of timeout. - ${TimeoutActionCallPriority}, + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the target of the timeout action. - ${TimeoutActionTarget}, + throw + } +} - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is disconnected on Timeout. - ${TimeoutDisconnectAudioFilePrompt}, +process { + try { + $steppablePipeline.Process($_) + } catch { - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is disconnected on Timeout. - ${TimeoutDisconnectTextToSpeechPrompt}, + throw + } - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to person on Timeout. - ${TimeoutRedirectPersonAudioFilePrompt}, +} +end { + try { + $steppablePipeline.End() - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to person on Timeout. - ${TimeoutRedirectPersonTextToSpeechPrompt}, + } catch { - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to phone number on Timeout. - ${TimeoutRedirectPhoneNumberAudioFilePrompt}, + throw + } +} +} - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the TTS to be played when call is redirected to phone number on Timeout. - ${TimeoutRedirectPhoneNumberTextToSpeechPrompt}, +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] +<# +.Synopsis +Sets a bridge using unique id. +This api is also used for Instance query. +.Description +Sets a bridge using unique id. +This api is also used for Instance query. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IBridgeUpdateRequest +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingBridge +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : Update Conferencing Bridge Default Service number, or make it tenant's default bridge. + [DefaultServiceNumber ]: Gets or sets service number to be updated as new default number of bridge. + [Name ]: Gets or sets name of the bridge. This can only be used when user sets the bridge using instance. + [SetDefault ]: Gets or sets a boolean value indicating if the bridge should be updated to be tenant's default bridge. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csodcbridge +#> +function Set-CsOdcBridge { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingBridge])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # Gets or sets the audio file to be played when call is redirected to voiceapp on Timeout. - ${TimeoutRedirectVoiceAppAudioFilePrompt}, + # Identity of the bridge. + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + [Parameter(ParameterSetName='Set1', Mandatory)] [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetExpanded1', Mandatory)] [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # Gets or sets the TTS to be played when call is redirected to voiceapp on Timeout. - ${TimeoutRedirectVoiceAppTextToSpeechPrompt}, + # Name of the bridge. + ${Name}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='Set1', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when call is redirected to voicemail on Timeout. - ${TimeoutRedirectVoicemailAudioFilePrompt}, + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IBridgeUpdateRequest] + # Update Conferencing Bridge Default Service number, or make it tenant's default bridge. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetExpanded1')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the TTS to be played when call is redirected to voicemail on Timeout. - ${TimeoutRedirectVoicemailTextToSpeechPrompt}, + # Gets or sets service number to be updated as new default number of bridge. + ${DefaultServiceNumber}, [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetExpanded1')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the audio file to be played when forwarding callers to shared voicemai. - ${TimeoutSharedVoicemailAudioFilePrompt}, + [System.Management.Automation.SwitchParameter] + # Gets or sets a boolean value indicating if the bridge should be updated to be tenant's default bridge. + ${SetDefault}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Parameter(ParameterSetName='SetExpanded1')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the TTS to be played when forwarding callers to shared voicemail. - ${TimeoutSharedVoicemailTextToSpeechPrompt}, + # Gets or sets name of the bridge. + # This can only be used when user sets the bridge using instance. + ${Name1}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Gets or sets the number of minutes that a call can be in the queue before it times out. - ${TimeoutThreshold}, + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether to use default music on hold audio file. - ${UseDefaultMusicOnHold}, + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_Set'; + Set1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_Set1'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_SetExpanded'; + SetExpanded1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_SetExpanded1'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Set service number by unique id. +.Description +Set service number by unique id. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IServiceNumberUpdateRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : Update Conferencing Service number. + [PrimaryLanguage ]: The primary language CAA should use to service this call, e.g. en-US, en-GB etc. + [RestoreDefaultLanguage ]: Switch to indicate that the Primary and Secondary languages should be set to the default values. + [SecondaryLanguage ]: The list of secondary languages CAA should use to service this call. Number of secondary languages is limited to a max of 4. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csodcservicenumber +#> +function Set-CsOdcServiceNumber { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Identity of the service number. + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # Gets or sets the Call Queue's Users. - ${Users}, + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IServiceNumberUpdateRequest] + # Update Conferencing Service number. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # . - ${WaitTimeBeforeOfferingCallbackInSecond}, + [System.String] + # The primary language CAA should use to service this call, e.g. + # en-US, en-GB etc. + ${PrimaryLanguage}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the welcome audio file to play for the call queue. - ${WelcomeMusicAudioFileId}, + [System.Management.Automation.SwitchParameter] + # Switch to indicate that the Primary and Secondary languages should be set to the default values. + ${RestoreDefaultLanguages}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the welcome text to speech content for the call queue. - ${WelcomeTextToSpeechPrompt}, + [System.String[]] + # The list of secondary languages CAA should use to service this call. + # Number of secondary languages is limited to a max of 4. + ${SecondaryLanguages}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -34099,10 +43628,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsCallQueue_Set'; - SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsCallQueue_SetExpanded'; - SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsCallQueue_SetViaIdentity'; - SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsCallQueue_SetViaIdentityExpanded'; + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcServiceNumber_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcServiceNumber_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcServiceNumber_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcServiceNumber_SetViaIdentityExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -34142,9 +43671,9 @@ end { <# .Synopsis -Update configuration +This cmdlet is used to modify the properties of a user that has been enabled for Microsoft's audio conferencing service. .Description -Update configuration +This cmdlet is used to modify the properties of a user that has been enabled for Microsoft's audio conferencing service. .Example {{ Add code here }} .Example @@ -34153,17 +43682,23 @@ Update configuration .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserData .Outputs -System.Boolean +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . - [(Any) ]: This indicates any property can be added to this object. - Identity : +BODY : User data to be sent. + [AllowTollFreeDialIn ]: Gets or sets a value indicating whether or not the meeting should allow dialin via toll-free service number. TODO: This is not a Switch parameter. + [BridgeId ]: Gets or sets the bridge identifier. + [BridgeName ]: Gets or sets the bridge name. + [ResetLeaderPin ]: Gets or sets a value indicating whether or not to reset the leader pin. TODO: This is a Switch parameter. + [SendEmail ]: Gets or sets a value indicating whether to sends an email with the PSTN Conference information of a user even if the tenant setting is off. TODO: This is a switch parameter. + [SendEmailToAddress ]: Gets or sets a value indicating To Address to send the email that contains the Audio Conference information. This parameter must be used together with -SendEmail. + [ServiceNumber ]: Gets or sets the service number to set as the user's default bridge number. + [TollFreeServiceNumber ]: Gets or sets the toll-free service number to set as the user's default toll-free service number. INPUTOBJECT : Identity Parameter [AppId ]: @@ -34206,67 +43741,90 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/set-csconfiguration +https://docs.microsoft.com/en-us/powershell/module/teams/set-csodcuser #> -function Set-CsConfiguration { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Set-CsOdcUser { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${ConfigName}, - - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # . - ${ConfigType}, + # Identity of the user. + ${Identity}, - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserData] + # User data to be sent. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether or not the meeting should allow dialin via toll-free service number.TODO: This is not a Switch parameter. + ${AllowTollFreeDialIn}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Api Version - ${ApiVersion}, + # Gets or sets the bridge identifier. + ${BridgeId}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${SchemaVersion}, + # Gets or sets the bridge name. + ${BridgeName}, - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether or not to reset the leader pin.TODO: This is a Switch parameter. + ${ResetLeaderPin}, - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory)] + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to sends an email with the PSTN Conference information of a user even if the tenant setting is off.TODO: This is a switch parameter. + ${SendEmail}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${Identity}, + # Gets or sets a value indicating To Address to send the email that contains the Audio Conference information.This parameter must be used together with -SendEmail. + ${SendEmailToAddress}, - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Collections.Hashtable] - # Additional Parameters - ${AdditionalProperties}, + [System.String] + # Gets or sets the service number to set as the user's default bridge number. + ${ServiceNumber}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the toll-free service number to set as the user's default toll-free service number. + ${TollFreeServiceNumber}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -34288,12 +43846,6 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -34323,10 +43875,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Update = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsConfiguration_Update'; - UpdateExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsConfiguration_UpdateExpanded'; - UpdateViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsConfiguration_UpdateViaIdentity'; - UpdateViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsConfiguration_UpdateViaIdentityExpanded'; + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcUser_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcUser_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcUser_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcUser_SetViaIdentityExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -34366,134 +43918,95 @@ end { <# .Synopsis -Sets a bridge using unique id. -This api is also used for Instance query. + .Description -Sets a bridge using unique id. -This api is also used for Instance query. + .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IBridgeUpdateRequest -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponseInput .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingBridge +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnostics +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : Update Conferencing Bridge Default Service number, or make it tenant's default bridge. - [DefaultServiceNumber ]: Gets or sets service number to be updated as new default number of bridge. - [Name ]: Gets or sets name of the bridge. This can only be used when user sets the bridge using instance. - [SetDefault ]: Gets or sets a boolean value indicating if the bridge should be updated to be tenant's default bridge. - -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id +BODY : . + [Content ]: [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: + [ForceAccept ]: [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. + [RespondedByObjectId ]: + [Response ]: + [ResponseTimestamp ]: [Version ]: - [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/set-csodcbridge +https://docs.microsoft.com/en-us/powershell/module/teams/set-csonlineenhancedemergencyservicedisclaimer #> -function Set-CsOdcBridge { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingBridge])] +function Set-CsOnlineEnhancedEmergencyServiceDisclaimer { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnostics])] [CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Set', Mandatory)] - [Parameter(ParameterSetName='SetExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Identity of the bridge. - ${Identity}, + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponseInput] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, - [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Content}, - [Parameter(ParameterSetName='Set1', Mandatory)] [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetExpanded1', Mandatory)] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Name of the bridge. - ${Name}, + # . + ${CountryOrRegion}, - [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='Set1', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IBridgeUpdateRequest] - # Update Conferencing Bridge Default Service number, or make it tenant's default bridge. - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, + [System.Management.Automation.SwitchParameter] + # . + ${ForceAccept}, [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetExpanded1')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets service number to be updated as new default number of bridge. - ${DefaultServiceNumber}, + # . + ${Locale}, [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetExpanded1')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a boolean value indicating if the bridge should be updated to be tenant's default bridge. - ${SetDefault}, + [System.String] + # . + ${RespondedByObjectId}, - [Parameter(ParameterSetName='SetExpanded1')] + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${Response}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${ResponseTimestamp}, + + [Parameter(ParameterSetName='SetExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets name of the bridge. - # This can only be used when user sets the bridge using instance. - ${Name1}, + # . + ${Version}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -34544,12 +44057,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_Set'; - Set1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_Set1'; - SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_SetExpanded'; - SetExpanded1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_SetExpanded1'; - SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_SetViaIdentity'; - SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_SetViaIdentityExpanded'; + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineEnhancedEmergencyServiceDisclaimer_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineEnhancedEmergencyServiceDisclaimer_SetExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -34589,9 +44098,11 @@ end { <# .Synopsis -Set service number by unique id. +Updates a specific schedule. +PUT Teams.VoiceApps/schedules/identity. .Description -Set service number by unique id. +Updates a specific schedule. +PUT Teams.VoiceApps/schedules/identity. .Example {{ Add code here }} .Example @@ -34600,18 +44111,40 @@ Set service number by unique id. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IServiceNumberUpdateRequest +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISchedule .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IModifyScheduleResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : Update Conferencing Service number. - [PrimaryLanguage ]: The primary language CAA should use to service this call, e.g. en-US, en-GB etc. - [RestoreDefaultLanguage ]: Switch to indicate that the Primary and Secondary languages should be set to the default values. - [SecondaryLanguage ]: The list of secondary languages CAA should use to service this call. Number of secondary languages is limited to a max of 4. +BODY : . + [AssociatedConfigurationId ]: + [FixedScheduleDateTimeRange ]: + [End ]: + [Start ]: + [Id ]: + [Name ]: + [RecurrenceRangeEnd ]: + [RecurrenceRangeNumberOfOccurrence ]: + [RecurrenceRangeStart ]: + [RecurrenceRangeType ]: + [Type ]: + [WeeklyRecurrentScheduleFridayHour ]: + [End ]: + [Start ]: + [WeeklyRecurrentScheduleIsComplemented ]: + [WeeklyRecurrentScheduleMondayHour ]: + [WeeklyRecurrentScheduleSaturdayHour ]: + [WeeklyRecurrentScheduleSundayHour ]: + [WeeklyRecurrentScheduleThursdayHour ]: + [WeeklyRecurrentScheduleTuesdayHour ]: + [WeeklyRecurrentScheduleWednesdayHour ]: + +FIXEDSCHEDULEDATETIMERANGE : . + [End ]: + [Start ]: INPUTOBJECT : Identity Parameter [AppId ]: @@ -34653,18 +44186,46 @@ INPUTOBJECT : Identity Parameter [UserId ]: UserId. [Version ]: [WfmTeamId ]: Team Id + +WEEKLYRECURRENTSCHEDULEFRIDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULEMONDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULESATURDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULESUNDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULETHURSDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULETUESDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULEWEDNESDAYHOUR : . + [End ]: + [Start ]: .Link -https://docs.microsoft.com/en-us/powershell/module/teams/set-csodcservicenumber +https://docs.microsoft.com/en-us/powershell/module/teams/set-csonlineschedule #> -function Set-CsOdcServiceNumber { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber])] +function Set-CsOnlineSchedule { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IModifyScheduleResponse])] [CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(ParameterSetName='Set', Mandatory)] [Parameter(ParameterSetName='SetExpanded', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # Identity of the service number. + # Id for the schedule to be updated. ${Identity}, [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] @@ -34678,34 +44239,146 @@ param( [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IServiceNumberUpdateRequest] - # Update Conferencing Service number. - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISchedule] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${AssociatedConfigurationId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDateTimeRange[]] + # . + # To construct, see NOTES section for FIXEDSCHEDULEDATETIMERANGE properties and create a hash table. + ${FixedScheduleDateTimeRange}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Id}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Name}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${RecurrenceRangeEnd}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${RecurrenceRangeNumberOfOccurrence}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${RecurrenceRangeStart}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${RecurrenceRangeType}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Type}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEFRIDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleFridayHour}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${WeeklyRecurrentScheduleIsComplemented}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEMONDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleMondayHour}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULESATURDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleSaturdayHour}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULESUNDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleSundayHour}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The primary language CAA should use to service this call, e.g. - # en-US, en-GB etc. - ${PrimaryLanguage}, + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULETHURSDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleThursdayHour}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Switch to indicate that the Primary and Secondary languages should be set to the default values. - ${RestoreDefaultLanguages}, + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULETUESDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleTuesdayHour}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # The list of secondary languages CAA should use to service this call. - # Number of secondary languages is limited to a max of 4. - ${SecondaryLanguages}, + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEWEDNESDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleWednesdayHour}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -34756,10 +44429,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcServiceNumber_Set'; - SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcServiceNumber_SetExpanded'; - SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcServiceNumber_SetViaIdentity'; - SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcServiceNumber_SetViaIdentityExpanded'; + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSchedule_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSchedule_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSchedule_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSchedule_SetViaIdentityExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -34799,160 +44472,51 @@ end { <# .Synopsis -This cmdlet is used to modify the properties of a user that has been enabled for Microsoft's audio conferencing service. +Enable or Disable Tenant VerifiedSipDomains. .Description -This cmdlet is used to modify the properties of a user that has been enabled for Microsoft's audio conferencing service. +Enable or Disable Tenant VerifiedSipDomains. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserData +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantSipDomainRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser +System.Boolean .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : User data to be sent. - [AllowTollFreeDialIn ]: Gets or sets a value indicating whether or not the meeting should allow dialin via toll-free service number. TODO: This is not a Switch parameter. - [BridgeId ]: Gets or sets the bridge identifier. - [BridgeName ]: Gets or sets the bridge name. - [ResetLeaderPin ]: Gets or sets a value indicating whether or not to reset the leader pin. TODO: This is a Switch parameter. - [SendEmail ]: Gets or sets a value indicating whether to sends an email with the PSTN Conference information of a user even if the tenant setting is off. TODO: This is a switch parameter. - [SendEmailToAddress ]: Gets or sets a value indicating To Address to send the email that contains the Audio Conference information. This parameter must be used together with -SendEmail. - [ServiceNumber ]: Gets or sets the service number to set as the user's default bridge number. - [TollFreeServiceNumber ]: Gets or sets the toll-free service number to set as the user's default toll-free service number. - -INPUTOBJECT : Identity Parameter - [AppId ]: - [AudioFileId ]: - [Bssid ]: - [ChassisId ]: - [CivicAddressId ]: - [ConfigName ]: - [ConfigType ]: string - [ConnectionId ]: Connection Id. - [ConnectorInstanceId ]: Connector Instance Id - [Country ]: - [DialedNumber ]: - [EndpointId ]: Application instance Id. - [ErrorReportId ]: The UUID of a report instance - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id +BODY : The request to update an tenant sip domain. + [Action ]: Action enable or disable domain. + [DomainName ]: Domain Name. .Link -https://docs.microsoft.com/en-us/powershell/module/teams/set-csodcuser +https://docs.microsoft.com/en-us/powershell/module/teams/set-csonlinesipdomain #> -function Set-CsOdcUser { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser])] +function Set-CsOnlineSipDomain { +[OutputType([System.Boolean])] [CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Set', Mandatory)] - [Parameter(ParameterSetName='SetExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Identity of the user. - ${Identity}, - - [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserData] - # User data to be sent. + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantSipDomainRequest] + # The request to update an tenant sip domain. # To construct, see NOTES section for BODY properties and create a hash table. ${Body}, [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether or not the meeting should allow dialin via toll-free service number.TODO: This is not a Switch parameter. - ${AllowTollFreeDialIn}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the bridge identifier. - ${BridgeId}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the bridge name. - ${BridgeName}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether or not to reset the leader pin.TODO: This is a Switch parameter. - ${ResetLeaderPin}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether to sends an email with the PSTN Conference information of a user even if the tenant setting is off.TODO: This is a switch parameter. - ${SendEmail}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets a value indicating To Address to send the email that contains the Audio Conference information.This parameter must be used together with -SendEmail. - ${SendEmailToAddress}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the service number to set as the user's default bridge number. - ${ServiceNumber}, + # Action enable or disable domain. + ${Action}, [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets the toll-free service number to set as the user's default toll-free service number. - ${TollFreeServiceNumber}, + # Domain Name. + ${DomainName}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -34974,6 +44538,12 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -35003,10 +44573,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcUser_Set'; - SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcUser_SetExpanded'; - SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcUser_SetViaIdentity'; - SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcUser_SetViaIdentityExpanded'; + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSipDomain_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSipDomain_SetExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -35046,95 +44614,168 @@ end { <# .Synopsis - +Put OnlineVoicemailUserSettings. .Description - +Put OnlineVoicemailUserSettings. .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponseInput -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnostics +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . - [Content ]: +BODY : User Voicemail Settings base class. + [CallAnswerRule ]: Gets or sets CallAnswerRule. + [DefaultGreetingPromptOverwrite ]: Gets or sets DefaultGreetingPromptOverwrite. + [DefaultOofGreetingPromptOverwrite ]: Gets or sets DefaultOofGreetingPromptOverwrite. + [OofGreetingEnabled ]: Gets or sets a value indicating whether Out of Office Greeting is enabled. + [OofGreetingFollowAutomaticRepliesEnabled ]: Gets or sets a value indicating whether Out of Office Greeting Automatic Replies are enabled. + [PromptLanguage ]: Gets or sets prompt language. + [ShareData ]: Gets or sets a value indicating whether ShareData is enabled. + [TransferTarget ]: Gets or sets TransferTarget. + [VoicemailEnabled ]: Gets or sets a value indicating whether voicemail is enabled. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id [Country ]: - [ForceAccept ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: [Locale ]: - [RespondedByObjectId ]: - [Response ]: - [ResponseTimestamp ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. [Version ]: + [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/set-csonlineenhancedemergencyservicedisclaimer +https://docs.microsoft.com/en-us/powershell/module/teams/set-csonlinevmusersetting #> -function Set-CsOnlineEnhancedEmergencyServiceDisclaimer { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnostics])] +function Set-CsOnlineVMUserSetting { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings])] [CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponseInput] - # . + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings] + # User Voicemail Settings base class. # To construct, see NOTES section for BODY properties and create a hash table. ${Body}, [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets CallAnswerRule. + ${CallAnswerRule}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${Content}, + # Gets or sets DefaultGreetingPromptOverwrite. + ${DefaultGreetingPromptOverwrite}, [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${CountryOrRegion}, + # Gets or sets DefaultOofGreetingPromptOverwrite. + ${DefaultOofGreetingPromptOverwrite}, [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.Management.Automation.SwitchParameter] - # . - ${ForceAccept}, + # Gets or sets a value indicating whether Out of Office Greetingis enabled. + ${OofGreetingEnabled}, [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Locale}, + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether Out of Office GreetingAutomatic Replies are enabled. + ${OofGreetingFollowAutomaticRepliesEnabled}, [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${RespondedByObjectId}, + # Gets or sets prompt language. + ${PromptLanguage}, [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # . - ${Response}, + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether ShareDatais enabled. + ${ShareData}, [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.DateTime] - # . - ${ResponseTimestamp}, + [System.String] + # Gets or sets TransferTarget. + ${TransferTarget}, [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Version}, + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether voicemail is enabled. + ${VoicemailEnabled}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -35156,6 +44797,12 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -35185,8 +44832,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineEnhancedEmergencyServiceDisclaimer_Set'; - SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineEnhancedEmergencyServiceDisclaimer_SetExpanded'; + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVMUserSetting_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVMUserSetting_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVMUserSetting_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVMUserSetting_SetViaIdentityExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -35226,53 +44875,38 @@ end { <# .Synopsis -Updates a specific schedule. -PUT Teams.VoiceApps/schedules/identity. +Add/Update user personal attendant settings in uss .Description -Updates a specific schedule. -PUT Teams.VoiceApps/schedules/identity. -.Example -{{ Add code here }} +Add/Update user personal attendant settings in uss .Example -{{ Add code here }} + .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISchedule +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPersonalAttendantSettings .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IModifyScheduleResponse +System.Boolean .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : . - [AssociatedConfigurationId ]: - [FixedScheduleDateTimeRange ]: - [End ]: - [Start ]: - [Id ]: - [Name ]: - [RecurrenceRangeEnd ]: - [RecurrenceRangeNumberOfOccurrence ]: - [RecurrenceRangeStart ]: - [RecurrenceRangeType ]: - [Type ]: - [WeeklyRecurrentScheduleFridayHour ]: - [End ]: - [Start ]: - [WeeklyRecurrentScheduleIsComplemented ]: - [WeeklyRecurrentScheduleMondayHour ]: - [WeeklyRecurrentScheduleSaturdayHour ]: - [WeeklyRecurrentScheduleSundayHour ]: - [WeeklyRecurrentScheduleThursdayHour ]: - [WeeklyRecurrentScheduleTuesdayHour ]: - [WeeklyRecurrentScheduleWednesdayHour ]: - -FIXEDSCHEDULEDATETIMERANGE : . - [End ]: - [Start ]: +BODY : . + [AllowInboundFederatedCalls ]: + [AllowInboundInternalCalls ]: + [AllowInboundPSTNCalls ]: + [BookingCalendarId ]: + [CalleeName ]: + [DefaultLanguage ]: + [DefaultTone ]: + [DefaultVoice ]: + [IsAutomaticRecordingEnabled ]: + [IsAutomaticTranscriptionEnabled ]: + [IsBookingCalendarEnabled ]: + [IsCallScreeningEnabled ]: + [IsNonContactCallbackEnabled ]: + [IsPersonalAttendantEnabled ]: INPUTOBJECT : Identity Parameter [AppId ]: @@ -35314,46 +44948,18 @@ INPUTOBJECT : Identity Parameter [UserId ]: UserId. [Version ]: [WfmTeamId ]: Team Id - -WEEKLYRECURRENTSCHEDULEFRIDAYHOUR : . - [End ]: - [Start ]: - -WEEKLYRECURRENTSCHEDULEMONDAYHOUR : . - [End ]: - [Start ]: - -WEEKLYRECURRENTSCHEDULESATURDAYHOUR : . - [End ]: - [Start ]: - -WEEKLYRECURRENTSCHEDULESUNDAYHOUR : . - [End ]: - [Start ]: - -WEEKLYRECURRENTSCHEDULETHURSDAYHOUR : . - [End ]: - [Start ]: - -WEEKLYRECURRENTSCHEDULETUESDAYHOUR : . - [End ]: - [Start ]: - -WEEKLYRECURRENTSCHEDULEWEDNESDAYHOUR : . - [End ]: - [Start ]: .Link -https://docs.microsoft.com/en-us/powershell/module/teams/set-csonlineschedule +https://docs.microsoft.com/en-us/powershell/module/teams/set-cspersonalattendantsettings #> -function Set-CsOnlineSchedule { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IModifyScheduleResponse])] +function Set-CsPersonalAttendantSettings { +[OutputType([System.Boolean])] [CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(ParameterSetName='Set', Mandatory)] [Parameter(ParameterSetName='SetExpanded', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # Id for the schedule to be updated. + # . ${Identity}, [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] @@ -35367,146 +44973,101 @@ param( [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISchedule] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPersonalAttendantSettings] # . # To construct, see NOTES section for BODY properties and create a hash table. ${Body}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] + [System.Management.Automation.SwitchParameter] # . - ${AssociatedConfigurationId}, + ${AllowInboundFederatedCalls}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDateTimeRange[]] + [System.Management.Automation.SwitchParameter] # . - # To construct, see NOTES section for FIXEDSCHEDULEDATETIMERANGE properties and create a hash table. - ${FixedScheduleDateTimeRange}, + ${AllowInboundInternalCalls}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] + [System.Management.Automation.SwitchParameter] # . - ${Id}, + ${AllowInboundPSTNCalls}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${Name}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.DateTime] - # . - ${RecurrenceRangeEnd}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # . - ${RecurrenceRangeNumberOfOccurrence}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.DateTime] - # . - ${RecurrenceRangeStart}, + ${CalleeName}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${RecurrenceRangeType}, + ${DefaultLanguage}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # . - ${Type}, + ${DefaultTone}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + [System.String] # . - # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEFRIDAYHOUR properties and create a hash table. - ${WeeklyRecurrentScheduleFridayHour}, + ${DefaultVoice}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.Management.Automation.SwitchParameter] # . - ${WeeklyRecurrentScheduleIsComplemented}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] - # . - # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEMONDAYHOUR properties and create a hash table. - ${WeeklyRecurrentScheduleMondayHour}, + ${IsAutomaticRecordingEnabled}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + [System.Management.Automation.SwitchParameter] # . - # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULESATURDAYHOUR properties and create a hash table. - ${WeeklyRecurrentScheduleSaturdayHour}, + ${IsAutomaticTranscriptionEnabled}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + [System.Management.Automation.SwitchParameter] # . - # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULESUNDAYHOUR properties and create a hash table. - ${WeeklyRecurrentScheduleSundayHour}, + ${IsBookingCalendarEnabled}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + [System.Management.Automation.SwitchParameter] # . - # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULETHURSDAYHOUR properties and create a hash table. - ${WeeklyRecurrentScheduleThursdayHour}, + ${IsCallScreeningEnabled}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + [System.Management.Automation.SwitchParameter] # . - # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULETUESDAYHOUR properties and create a hash table. - ${WeeklyRecurrentScheduleTuesdayHour}, + ${IsNonContactCallbackEnabled}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + [System.Management.Automation.SwitchParameter] # . - # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEWEDNESDAYHOUR properties and create a hash table. - ${WeeklyRecurrentScheduleWednesdayHour}, + ${IsPersonalAttendantEnabled}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -35528,6 +45089,12 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -35557,10 +45124,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSchedule_Set'; - SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSchedule_SetExpanded'; - SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSchedule_SetViaIdentity'; - SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSchedule_SetViaIdentityExpanded'; + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsPersonalAttendantSettings_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsPersonalAttendantSettings_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsPersonalAttendantSettings_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsPersonalAttendantSettings_SetViaIdentityExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -35600,51 +45167,76 @@ end { <# .Synopsis -Enable or Disable Tenant VerifiedSipDomains. + .Description -Enable or Disable Tenant VerifiedSipDomains. + .Example {{ Add code here }} .Example {{ Add code here }} -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantSipDomainRequest .Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -BODY : The request to update an tenant sip domain. - [Action ]: Action enable or disable domain. - [DomainName ]: Domain Name. +System.String .Link -https://docs.microsoft.com/en-us/powershell/module/teams/set-csonlinesipdomain +https://docs.microsoft.com/en-us/powershell/module/teams/set-csphonenumberassignment #> -function Set-CsOnlineSipDomain { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Set-CsPhoneNumberAssignment { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='Set', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantSipDomainRequest] - # The request to update an tenant sip domain. - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${AssignmentCategory}, - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${EnterpriseVoiceEnabled}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # Action enable or disable domain. - ${Action}, + # . + ${Identity}, - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # Domain Name. - ${DomainName}, + # . + ${LocationId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${NetworkSiteId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Notify}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${PhoneNumber}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${PhoneNumberType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${ReverseNumberLookup}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -35666,12 +45258,6 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -35701,8 +45287,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSipDomain_Set'; - SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSipDomain_SetExpanded'; + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsPhoneNumberAssignment_Set'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -35742,9 +45327,11 @@ end { <# .Synopsis -Put OnlineVoicemailUserSettings. +Update shared call queue history template. +PUT /Teams.VoiceApps/shared-call-queue-history/identity. .Description -Put OnlineVoicemailUserSettings. +Update shared call queue history template. +PUT /Teams.VoiceApps/shared-call-queue-history/identity. .Example {{ Add code here }} .Example @@ -35753,24 +45340,20 @@ Put OnlineVoicemailUserSettings. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISharedCallQueueHistoryDtoModel .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateSharedCallQueueHistoryResponse .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. -BODY : User Voicemail Settings base class. - [CallAnswerRule ]: Gets or sets CallAnswerRule. - [DefaultGreetingPromptOverwrite ]: Gets or sets DefaultGreetingPromptOverwrite. - [DefaultOofGreetingPromptOverwrite ]: Gets or sets DefaultOofGreetingPromptOverwrite. - [OofGreetingEnabled ]: Gets or sets a value indicating whether Out of Office Greeting is enabled. - [OofGreetingFollowAutomaticRepliesEnabled ]: Gets or sets a value indicating whether Out of Office Greeting Automatic Replies are enabled. - [PromptLanguage ]: Gets or sets prompt language. - [ShareData ]: Gets or sets a value indicating whether ShareData is enabled. - [TransferTarget ]: Gets or sets TransferTarget. - [VoicemailEnabled ]: Gets or sets a value indicating whether voicemail is enabled. +BODY : . + [AnsweredAndOutboundCall ]: Gets or sets whether the shared call history for Answered and outbound calls is delivered to authorized users, authorized users and agents or none. + [Description ]: Gets or sets the description of the shared call queue history. + [Id ]: Gets or sets the identifier of the shared call queue history. + [IncomingMissedCall ]: Gets or sets whether the shared call history for Incoming missed calls is delivered to authorized users, authorized users and agents or none. + [Name ]: Gets or sets the name of the shared call queue history. INPUTOBJECT : Identity Parameter [AppId ]: @@ -35813,17 +45396,17 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/set-csonlinevmusersetting +https://docs.microsoft.com/en-us/powershell/module/teams/set-cssharedcallqueuehistorytemplate #> -function Set-CsOnlineVMUserSetting { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings])] +function Set-CsSharedCallQueueHistoryTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateSharedCallQueueHistoryResponse])] [CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( [Parameter(ParameterSetName='Set', Mandatory)] [Parameter(ParameterSetName='SetExpanded', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # . + # The identity of the shared call queue history configuration. ${Identity}, [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] @@ -35837,73 +45420,45 @@ param( [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings] - # User Voicemail Settings base class. + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISharedCallQueueHistoryDtoModel] + # . # To construct, see NOTES section for BODY properties and create a hash table. ${Body}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets CallAnswerRule. - ${CallAnswerRule}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets DefaultGreetingPromptOverwrite. - ${DefaultGreetingPromptOverwrite}, + [System.Int32] + # Gets or sets whether the shared call history for Answered and outbound calls is delivered to authorized users, authorized users and agents or none. + ${AnsweredAndOutboundCalls}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets DefaultOofGreetingPromptOverwrite. - ${DefaultOofGreetingPromptOverwrite}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether Out of Office Greetingis enabled. - ${OofGreetingEnabled}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether Out of Office GreetingAutomatic Replies are enabled. - ${OofGreetingFollowAutomaticRepliesEnabled}, + # Gets or sets the description of the shared call queue history. + ${Description}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets prompt language. - ${PromptLanguage}, + # Gets or sets the identifier of the shared call queue history. + ${Id}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether ShareDatais enabled. - ${ShareData}, + [System.Int32] + # Gets or sets whether the shared call history for Incoming missed calls is delivered to authorized users, authorized users and agents or none. + ${IncomingMissedCalls}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Gets or sets TransferTarget. - ${TransferTarget}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether voicemail is enabled. - ${VoicemailEnabled}, + # Gets or sets the name of the shared call queue history. + ${Name}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -35925,12 +45480,6 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -35960,10 +45509,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVMUserSetting_Set'; - SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVMUserSetting_SetExpanded'; - SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVMUserSetting_SetViaIdentity'; - SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVMUserSetting_SetViaIdentityExpanded'; + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsSharedCallQueueHistoryTemplate_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsSharedCallQueueHistoryTemplate_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsSharedCallQueueHistoryTemplate_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsSharedCallQueueHistoryTemplate_SetViaIdentityExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -36003,70 +45552,147 @@ end { <# .Synopsis - +Update IVR Tags Template. +PUT api/v1.0/tenants/tenantId/ivr-tags-template/identity. .Description - +Update IVR Tags Template. +PUT api/v1.0/tenants/tenantId/ivr-tags-template/identity. .Example {{ Add code here }} .Example {{ Add code here }} +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IIvrTagsTemplateDtoModel .Outputs -System.String +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateIvrTagsTemplateResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [Description ]: Description of the IVR tag template. + [Id ]: Gets or sets the unique identifier for the IVR tag template. This is used to link the IVR tag template to an AutoAttendant. + [Name ]: Gets or sets the name of the IVR tag template. + [Tag ]: List of tags associated with the IVR tag template. These contain the name and callbale entities to which the IVR can initiate a transfer to. + [TagDetailCallPriority ]: + [TagDetailEnableSharedVoicemailSystemPromptSuppression ]: + [TagDetailEnableTranscription ]: + [TagDetailId ]: + [TagDetailType ]: + [TagName ]: + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id + +TAG : List of tags associated with the IVR tag template.These contain the name and callbale entities to which the IVR can initiate a transfer to. + [TagDetailCallPriority ]: + [TagDetailEnableSharedVoicemailSystemPromptSuppression ]: + [TagDetailEnableTranscription ]: + [TagDetailId ]: + [TagDetailType ]: + [TagName ]: .Link -https://docs.microsoft.com/en-us/powershell/module/teams/set-csphonenumberassignment +https://docs.microsoft.com/en-us/powershell/module/teams/set-cstagstemplate #> -function Set-CsPhoneNumberAssignment { -[OutputType([System.String])] -[CmdletBinding(DefaultParameterSetName='Set', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Set-CsTagsTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateIvrTagsTemplateResponse])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${AssignmentCategory}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # . - ${EnterpriseVoiceEnabled}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] # . ${Identity}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${LocationId}, + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IIvrTagsTemplateDtoModel] # . - ${NetworkSiteId}, + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${PhoneNumber}, + # Description of the IVR tag template. + ${Description}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${PhoneNumberType}, + # Gets or sets the unique identifier for the IVR tag template. + # This is used to link the IVR tag template to an AutoAttendant. + ${Id}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${ReverseNumberLookup}, + # Gets or sets the name of the IVR tag template. + ${Name}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IIvrTagDtoModel[]] + # List of tags associated with the IVR tag template.These contain the name and callbale entities to which the IVR can initiate a transfer to. + # To construct, see NOTES section for TAG properties and create a hash table. + ${Tag}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -36117,7 +45743,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsPhoneNumberAssignment_Set'; + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTagsTemplate_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTagsTemplate_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTagsTemplate_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTagsTemplate_SetViaIdentityExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -37878,219 +47507,219 @@ end { } # SIG # Begin signature block -# MIIoQwYJKoZIhvcNAQcCoIIoNDCCKDACAQExDzANBglghkgBZQMEAgEFADB5Bgor +# MIIoPAYJKoZIhvcNAQcCoIIoLTCCKCkCAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCTSVHMu2Ee3q1G -# 1ZvBTkaciZoJXZ/7ouZBqsrS5l/AhaCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBz/kPsKFOwGek/ +# 6VbLdtLfJn4KQwSRtf6ff/hSAG8Fo6CCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw # CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u # ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIHZRxkQMJih5r3gfZCu7SQnn -# JrD95qZHBgaq6IMe9BqiMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAf79kK0bBg+6pk4juRkGIh+MvFmgljNQ+URz8gnLdMI/hH+Eeq0uw+ZaM -# bFF1rGKuGCnOYGLRyazua6vmRQo2XFkGrjZ5Fa2C8k9mH5ampBu2cLCUZhCZWtMK -# 1G6TCc1umIISnpKNv2SUl3TGadvRnnfC+jWgVNTt4ve64d1y/AJhCVKyI1+F4qT9 -# c6Cfno5wEFsox3xsJCUsg7pY7t06Ay5u4bOMAEy9J6iXTqJYs4cUZ7BrnoGZ1EwN -# imlqZx5uSeTtSyrM/iRS4+0owlYxLt3whOfY1KL7i/XPnBZsktSUVVzf3pvqlt2q -# K2tgKP0zrNQ6CZmOpR53VhNKY45Ds6GCF60wghepBgorBgEEAYI3AwMBMYIXmTCC -# F5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsq -# hkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCDb86A318xS7vhMmQrCIrCaXs7CRYBWlVPi950UZN65WQIGZ7YhYKLt -# GBMyMDI1MDMxMzA4NDcyNC44NDdaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo0QzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB/xI4fPfBZdahAAEAAAH/MA0G -# CSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI0 -# MDcyNTE4MzExOVoXDTI1MTAyMjE4MzExOVowgdMxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9w -# ZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjRDMUEt -# MDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAyeiV0pB7bg8/qc/mkiDd -# JXnzJWPYgk9mTGeI3pzQpsyrRJREWcKYHd/9db+g3z4dU4VCkAZEXqvkxP5QNTtB -# G5Ipexpph4PhbiJKwvX+US4KkSFhf1wflDAY1tu9CQqhhxfHFV7vhtmqHLCCmDxh -# ZPmCBh9/XfFJQIUwVZR8RtUkgzmN9bmWiYgfX0R+bDAnncUdtp1xjGmCpdBMygk/ -# K0h3bUTUzQHb4kPf2ylkKPoWFYn2GNYgWw8PGBUO0vTMKjYD6pLeBP0hZDh5P3f4 -# xhGLm6x98xuIQp/RFnzBbgthySXGl+NT1cZAqGyEhT7L0SdR7qQlv5pwDNerbK3Y -# SEDKk3sDh9S60hLJNqP71iHKkG175HAyg6zmE5p3fONr9/fIEpPAlC8YisxXaGX4 -# RpDBYVKpGj0FCZwisiZsxm0X9w6ZSk8OOXf8JxTYWIqfRuWzdUir0Z3jiOOtaDq7 -# XdypB4gZrhr90KcPTDRwvy60zrQca/1D1J7PQJAJObbiaboi12usV8axtlT/dCeP -# C4ndcFcar1v+fnClhs9u3Fn6LkHDRZfNzhXgLDEwb6dA4y3s6G+gQ35o90j2i6am -# aa8JsV/cCF+iDSGzAxZY1sQ1mrdMmzxfWzXN6sPJMy49tdsWTIgZWVOSS9uUHhSY -# kbgMxnLeiKXeB5MB9QMcOScCAwEAAaOCAUkwggFFMB0GA1UdDgQWBBTD+pXk/rT/ -# d7E/0QE7hH0wz+6UYTAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBf -# BgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmww -# bAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29m -# dC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0El -# MjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUF -# BwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEAOSNN5MpLiyun -# m866frWIi0hdazKNLgRp3WZPfhYgPC3K/DNMzLliYQUAp6WtgolIrativXjOG1lI -# jayG9r6ew4H1n5XZdDfJ12DLjopap5e1iU/Yk0eutPyfOievfbsIzTk/G51+uiUJ -# k772nVzau6hI2KGyGBJOvAbAVFR0g8ppZwLghT4z3mkGZjq/O4Z/PcmVGtjGps2T -# CtI4rZjPNW8O4c/4aJRmYQ/NdW91JRrOXRpyXrTKUPe3kN8N56jpl9kotLhdvd89 -# RbOsJNf2XzqbAV7XjV4caCglA2btzDxcyffwXhLu9HMU3dLYTAI91gTNUF7BA9q1 -# EvSlCKKlN8N10Y4iU0nyIkfpRxYyAbRyq5QPYPJHGA0Ty0PD83aCt79Ra0IdDIMS -# uwXlpUnyIyxwrDylgfOGyysWBwQ/js249bqQOYPdpyOdgRe8tXdGrgDoBeuVOK+c -# RClXpimNYwr61oZ2/kPMzVrzRUYMkBXe9WqdSezh8tytuulYYcRK95qihF0irQs6 -# /WOQJltQX79lzFXE9FFln9Mix0as+C4HPzd+S0bBN3A3XRROwAv016ICuT8hY1In -# yW7jwVmN+OkQ1zei66LrU5RtAz0nTxx5OePyjnTaItTSY4OGuGU1SXaH49JSP3t8 -# yGYA/vorbW4VneeD721FgwaJToHFkOIwggdxMIIFWaADAgECAhMzAAAAFcXna54C -# m0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp -# Y2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMy -# MjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0B -# AQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51 -# yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY -# 6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9 -# cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN -# 7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDua -# Rr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74 -# kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2 -# K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5 -# TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZk -# i1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9Q -# BXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3Pmri -# Lq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUC -# BBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJl -# pxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIB -# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9y -# eS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUA -# YgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU -# 1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2Ny -# bC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIw -# MTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0w -# Ni0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/yp -# b+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulm -# ZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM -# 9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECW -# OKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4 -# FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3Uw -# xTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPX -# fx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVX -# VAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGC -# onsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU -# 5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEG -# ahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo0QzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUAqROMbMS8JcUlcnPkwRLFRPXFspmggYMw -# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsF -# AAIFAOt89lMwIhgPMjAyNTAzMTMwNjE0NDNaGA8yMDI1MDMxNDA2MTQ0M1owdDA6 -# BgorBgEEAYRZCgQBMSwwKjAKAgUA63z2UwIBADAHAgEAAgITkjAHAgEAAgIS1DAK -# AgUA635H0wIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIB -# AAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQBjXiBIfmb8mso3 -# QC0jpfw1XLsgDe1J2GrBPz2l6zKhGwDlIiMTELS4L2tCNAr7hmJmddANUugQWbX1 -# f5GzHi3VypC6ksc+penHzh49bE1w/FBqpNdId1FiKLRmQR6agt/A2B2FobCBQkrY -# uzArAXisQbk+wSzxolFAIX+FOrSM2clzrHsfy6c/PghNFv1T8QFbi7JXOKUschlp -# oc5XstbdzqK7389WZoPDManxRTGXtk0seugmpcdQPh2SatzhbhPKKNEKOE5nXRR+ -# XAiysXyR2n4cPmnSK3kOsTu0PwTxrOgxM6EZSqL/B5aEkYILIyzB31JuDSD6uOP+ -# QWBsP2e5MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAH/Ejh898Fl1qEAAQAAAf8wDQYJYIZIAWUDBAIBBQCgggFKMBoGCSqG -# SIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgfzuCvEV8kgfK -# 2xw5/VLzSJHhyqMpqvOtJV4SjoAvqbwwgfoGCyqGSIb3DQEJEAIvMYHqMIHnMIHk -# MIG9BCDkMu++yQJ3aaycIuMT6vA7JNuMaVOI3qDjSEV8upyn/TCBmDCBgKR+MHwx +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGg0wghoJAgEBMIGVMH4x # CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1p -# Y3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB/xI4fPfBZdahAAEAAAH/ -# MCIEIOO8tJ20S/C8eXmg86ba0sIx4rnO9TTHCILkYZqFABIgMA0GCSqGSIb3DQEB -# CwUABIICAK4Dwh/5FBDPvjMQENfEJO5Nvp/5vlZsT8YefgnwhSJrftKSXehqrLRt -# qcbJa7oVInt+eYsfn8xirZO1cNcqS2GmnUJKdJntWBFBAYh4O4cbSyG3W2/r/jNV -# NITBgARjlJji66fwdOhEm415oz5eMUS+oOCUyxN+3sSQ+fP18vYTYvTuaRbeQrvQ -# d7yt9YfJU9vpcdDLkC/kbZL77r0/ZgNkomxKDqRq3o506ND9PnpQ08RK/rhQKlWp -# aHKyKyqr3sOPTkLCLQZla6IlzAUmZPECWJwNj5GYQmKAs2QUmtVVjS8EFeQpLAJ3 -# +nBa8xXS7PezOYe6ts/CsdPRPJpuV5JlTUlDRKhex0MGTI7Bd+lYA/Etv/A/lG8v -# SE/RiQRdRz8ncet+yNDPLNtoTQv9VGPUa4GJe2lksTESdtoJUEFaQ3ylfQchCAti -# 6DOUNY4OM4hab0uV+/2Lt9vbSyKDIwZIr2Kf6p8pFp8afyPJ1Wgh0mtIQCb6sWwe -# DUKoyTDMVZHuH9jMg2cAgfP2tXWP+wY7lYyEjAUCVL8fo+EVEkhN4S87HsIfyAcw -# fKaD1Qb7GYv89kNgQ6slwzvr801WCWhM1wQHK0YVd0TTZrnfJFDURzbA0brBiORM -# LuJdjyMLLIWEhSc7ox7RW4esR853rw5Y3TNMgWscZypyZoq3KLrF +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIA1s +# StTElv/N9NKKgFf+gAo2RfeobcsSdros26CB7mOmMEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEArGrFoRUfBChZqbDBJV+ScaLQ1vAXAqFmVrkH +# o8MntA3d7UCTqoUEGo5fg7ASrZkUt7gyXtd455Jvkx4hwezgrSBKmuucVATw9Me7 +# 6VY9PlUWXHHd17PHJfTckRPOlfKVFmMBXFtOoKQsDX2HeE2+d5bNvmLlHmoXFuMe +# JDHXsZdqSelBkbrNvZ5iK7JKL88WFEHQ3iXnqFr/ZnSvXkGcrQpXLqmH+JqaoSY4 +# JFGnMAIJaI/mAyit0owgfegXk9ZhUa3HVT0M4g/OLao05RVgo8SeiRm9s2VxiuFo +# 8knck+7YzDDEyjCX6gILisSWzjSTyBZ0w4pt9Wbm7kcZwOJ8E6GCF5cwgheTBgor +# BgEEAYI3AwMBMYIXgzCCF38GCSqGSIb3DQEHAqCCF3AwghdsAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFSBgsqhkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCDxNGi317TJwHPEQRbHnfe9mGo1v3P0devF +# U5vJfzFEYAIGaMLGz+ItGBMyMDI1MTAwMTA4MzMxNy42NTJaMASAAgH0oIHRpIHO +# MIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQL +# ExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxk +# IFRTUyBFU046QTkzNS0wM0UwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1l +# LVN0YW1wIFNlcnZpY2WgghHtMIIHIDCCBQigAwIBAgITMwAAAgy5ZOM1nOz0rgAB +# AAACDDANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDAeFw0yNTAxMzAxOTQzMDBaFw0yNjA0MjIxOTQzMDBaMIHLMQswCQYDVQQGEwJV +# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE +# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l +# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTkzNS0w +# M0UwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Uw +# ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKAVYmPeRtga/U6jzqyqLD +# 0MAool23gcBN58+Z/XskYwNJsZ+O+wVyQYl8dPTK1/BC2xAic1m+JvckqjVaQ32K +# mURsEZotirQY4PKVW+eXwRt3r6szgLuic6qoHlbXox/l0HJtgURkzDXWMkKmGSL7 +# z8/crqcvmYqv8t/slAF4J+mpzb9tMFVmjwKXONVdRwg9Q3WaPZBC7Wvoi7PRIN2j +# gjSBnHYyAZSlstKNrpYb6+Gu6oSFkQzGpR65+QNDdkP4ufOf4PbOg3fb4uGPjI8E +# PKlpwMwai1kQyX+fgcgCoV9J+o8MYYCZUet3kzhhwRzqh6LMeDjaXLP701SXXiXc +# 2ZHzuDHbS/sZtJ3627cVpClXEIUvg2xpr0rPlItHwtjo1PwMCpXYqnYKvX8aJ8na +# wT9W8FUuuyZPG1852+q4jkVleKL7x+7el8ETehbdkwdhAXyXimaEzWetNNSmG/Kf +# HAp9czwsL1vKr4Rgn+pIIkZHuomdf5e481K+xIWhLCPdpuV87EqGOK/jbhOnZEqw +# dvA0AlMaLfsmCemZmupejaYuEk05/6cCUxgF4zCnkJeYdMAP+9Z4kVh7tzRFsw/l +# ZSl2D7EhIA6Knj6RffH2k7YtSGSv86CShzfiXaz9y6sTu8SGqF6ObL/eu/DkivyV +# oCfUXWLjiSJsrS63D0EHHQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFHUORSH/sB/r +# Q/beD0l5VxQ706GIMB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8G +# A1UdHwRYMFYwVKBSoFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMv +# Y3JsL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBs +# BggrBgEFBQcBAQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0 +# LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUy +# MDIwMTAoMSkuY3J0MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUH +# AwgwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4ICAQDZMPr4gVmwwf4G +# MB5ZfHSr34uhug6yzu4HUT+JWMZqz9uhLZBoX5CPjdKJzwAVvYoNuLmS0+9lA5S7 +# 4rvKqd/u9vp88VGk6U7gMceatdqpKlbVRdn2ZfrMcpI4zOc6BtuYrzJV4cEs1YmX +# 95uiAxaED34w02BnfuPZXA0edsDBbd4ixFU8X/1J0DfIUk1YFYPOrmwmI2k16u6T +# cKO0YpRlwTdCq9vO0eEIER1SLmQNBzX9h2ccCvtgekOaBoIQ3ZRai8Ds1f+wcKCP +# zD4qDX3xNgvLFiKoA6ZSG9S/yOrGaiSGIeDy5N9VQuqTNjryuAzjvf5W8AQp31hV +# 1GbUDOkbUdd+zkJWKX4FmzeeN52EEbykoWcJ5V9M4DPGN5xpFqXy9aO0+dR0UUYW +# uqeLhDyRnVeZcTEu0xgmo+pQHauFVASsVORMp8TF8dpesd+tqkkQ8VNvI20oOfnT +# fL+7ZgUMf7qNV0ll0Wo5nlr1CJva1bfk2Hc5BY1M9sd3blBkezyvJPn4j0bfOOrC +# YTwYsNsjiRl/WW18NOpiwqciwFlUNqtWCRMzC9r84YaUMQ82Bywk48d4uBon5ZA8 +# pXXS7jwJTjJj5USeRl9vjT98PDZyCFO2eFSOFdDdf6WBo/WZUA2hGZ0q+J7j140f +# bXCfOUIm0j23HaAV0ckDS/nmC/oF1jCCB3EwggVZoAMCAQICEzMAAAAVxedrngKb +# SZkAAAAAABUwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQI +# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv +# ZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmlj +# YXRlIEF1dGhvcml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIy +# NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE +# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEB +# AQUAA4ICDwAwggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXI +# yjVX9gF/bErg4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjo +# YH1qUoNEt6aORmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1y +# aa8dq6z2Nr41JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v +# 3byNpOORj7I5LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pG +# ve2krnopN6zL64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viS +# kR4dPf0gz3N9QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYr +# bqgSUei/BQOj0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlM +# jgK8QmguEOqEUUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSL +# W6CmgyFdXzB0kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AF +# emzFER1y7435UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIu +# rQIDAQABo4IB3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIE +# FgQUKqdS/mTEmr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWn +# G1M1GelyMFwGA1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEW +# M2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5 +# Lmh0bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBi +# AEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV +# 9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3Js +# Lm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAx +# MC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2 +# LTIzLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv +# 6lwUtj5OR2R4sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZn +# OlNN3Zi6th542DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1 +# bSNU5HhTdSRXud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4 +# rPf5KYnDvBewVIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU +# 6ZGyqVvfSaN0DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDF +# NLB62FD+CljdQDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/ +# HltEAY5aGZFrDZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdU +# CbFpAUR+fKFhbHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKi +# excdFYmNcP7ntdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTm +# dHRbatGePu1+oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZq +# ELQdVTNYs6FwZvKhggNQMIICOAIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMx +# EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT +# FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJp +# Y2EgT3BlcmF0aW9uczEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOkE5MzUtMDNF +# MC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMK +# AQEwBwYFKw4DAhoDFQDvu8hkhEMt5Z8Ldefls7z1LVU8pqCBgzCBgKR+MHwxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv +# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA7Ib4ATAi +# GA8yMDI1MTAwMTAwNDQ0OVoYDzIwMjUxMDAyMDA0NDQ5WjB3MD0GCisGAQQBhFkK +# BAExLzAtMAoCBQDshvgBAgEAMAoCAQACAgMJAgH/MAcCAQACAhLwMAoCBQDsiEmB +# AgEAMDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSCh +# CjAIAgEAAgMBhqAwDQYJKoZIhvcNAQELBQADggEBAD3v8Ir++pFMLl+70MQllUe7 +# y1X+3up9XEdZ5Jgj1oOhyD2bhCrxS0I5/kMB6bbFrR3JhRoW0/Q6LcHQLmFs5s2H +# ITSHAHDIStYygwXLbmh7uNq7yNSVTfIYJkyBGSIqnclKkC4wJBU60FiVKp0vjPjk +# aO0RDTm2ZCPQMziPIKKiLcI95uYjPRB04y0HC17/yQlLf8MzjGNk2PnwRHwFZWbG +# pRs/Mpwfi1k5lV0LZCuicE6tX2xkrGfl9NLKtLOKiyOuIDf9BBGKYCo8Wm207tv4 +# W1VcF0E8yv+Z3slAKl9Wwf6pAfNIAf8wiVolU0pw1GpKEz931eoYe1He+ajZSlwx +# ggQNMIIECQIBATCBkzB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv +# bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0 +# aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAA +# Agy5ZOM1nOz0rgABAAACDDANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkD +# MQ0GCyqGSIb3DQEJEAEEMC8GCSqGSIb3DQEJBDEiBCDom1wiaOu3uaIoHHwldIBT +# K1lxDnc3zCxmxxjPMzMWmzCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EINUo +# 17cFMZN46MI5NfIAg9Ux5cO5xM9inre5riuOZ8ItMIGYMIGApH4wfDELMAkGA1UE +# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc +# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 +# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAIMuWTjNZzs9K4AAQAAAgwwIgQgu7V5 +# UxtdecnnvsuZx1H4TMOBvhwcH0wzCRa0UMgjhyowDQYJKoZIhvcNAQELBQAEggIA +# VItBcHf3YhRXhgDMZNumg875L5hFCOvyOO3uwNCIKFuYahDGgIy9mmmxt4ZLKJN/ +# TVgfkP6EkntDu242Lvdot/U8GYYj1g6h17th2AIgXkqb7fV2L4NGRisyO3/uWw7C +# 6mWYCABRHpaeyDZjpGRYU7ja9TTmaYZatpe4XUBifL+nzLYAu30YUaZBD+wTOTiJ +# 2/vSfyn2ge4KhhmqrJiVgI3Sy0vlzd5iQC7XMMCISBBZMO+yvvSeVHNFkWHQBkvf +# l/qWWHto6lkvo/xLcbZd+FbHD6q4M8qGAATZqlJiITvsOv/LyXAd4lsATde132nN +# SJUxS41IyBR/ZK3/5yA0e1QDdeFvafqg+coAW56ayZRnoU6WATW/z0MDhvwFrLR/ +# H/bQq+xJov7PCaCUMUiY7AaXMxZLjGvQCv4yljY64L3sIUIU9rQkNheQNqzyhRuM +# SOVFKP75aKKHISuTstMT9oAZQWTzwfmSPxifmKfU4XE52RBRCAcwtsM3TF+SX5YJ +# QRknqWdRhAVm5heygE0kY4NQCIzZeZrXl/H7nv/xMlk0/6wglzD/7L3KDdL47F8w +# 2wkP9VYINJB233/RwBm68DZyVo+f1mK6pQnMTss53hyj2F3D4aCvHj2Xxno4bnz2 +# Km6MLiEKprX0Q/mwEdi6kdqVmj2jqjASKXbyQAJH0wM= # SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/internal/Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1 b/Modules/MicrosoftTeams/7.4.0/internal/Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1 new file mode 100644 index 000000000000..2e62ea6e6ac7 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/internal/Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1 @@ -0,0 +1,257 @@ +# region Generated + # Load the private module dll + $null = Import-Module -PassThru -Name (Join-Path $PSScriptRoot '..\bin\Microsoft.Teams.ConfigAPI.Cmdlets.private.dll') + + # Get the private module's instance + $instance = [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Module]::Instance + + # Export nothing to clear implicit exports + Export-ModuleMember + + # Export proxy cmdlet scripts + $exportsPath = $PSScriptRoot + $directories = Get-ChildItem -Directory -Path $exportsPath + $profileDirectory = $null + if($instance.ProfileName) { + if(($directories | ForEach-Object { $_.Name }) -contains $instance.ProfileName) { + $profileDirectory = $directories | Where-Object { $_.Name -eq $instance.ProfileName } + } else { + # Don't export anything if the profile doesn't exist for the module + $exportsPath = $null + Write-Warning "Selected Azure profile '$($instance.ProfileName)' does not exist for module '$($instance.Name)'. No cmdlets were loaded." + } + } elseif(($directories | Measure-Object).Count -gt 0) { + # Load the last folder if no profile is selected + $profileDirectory = $directories | Select-Object -Last 1 + } + + if($profileDirectory) { + Write-Information "Loaded Azure profile '$($profileDirectory.Name)' for module '$($instance.Name)'" + $exportsPath = $profileDirectory.FullName + } + + if($exportsPath) { + Get-ChildItem -Path $exportsPath -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } + $cmdletNames = Get-ScriptCmdlet -ScriptFolder $exportsPath + Export-ModuleMember -Function $cmdletNames -Alias (Get-ScriptCmdlet -ScriptFolder $exportsPath -AsAlias) + } +# endregion + +# SIG # Begin signature block +# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBinYxDco4Ms/jt +# y2SUOAGGFlsJymQ7B0Ay6+tcGLbG9KCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIATt +# akQutmXgLMF/GbL8NirDQVtbkIOFqy28LZj0qbtlMEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEA17SsiywvTICsAnL5fGyzC/EE26js2hnmpDWC +# a2KoSdvIxLmWYnsXbg5DJb1v6idS2MVDVd46eYYzaeIa8zInxrWqp6MOgJVyLQXh +# N8vGjjWa9qT/+RtlsjT27frDUsBfkkFt3qtn6xyGNKxYvGQ4TX0P9zuEeS//gDyk +# GBZfCjqqRuDkHqevP8ik4DFfObw1iTcRa+ejYfCDTPg9+EDy5stubukg214IoOz+ +# FmvTq9PL3VboTu5x4+iY3L4GVQgOObMYDhuEY2aaeid27EHXOhN4S+pJzK7R6Gz/ +# 5T67FTwteTOuom1s+184WQpLzGYi6UeJsucUzDB1LfwXdD+zHqGCF7AwghesBgor +# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCDaA5MS4DiVLSNBUIDIuXZLs5idxwm77KL7 +# HcuK7/1nagIGaKOvjL6CGBMyMDI1MTAwMTA4MzMwMi4zMzlaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+R9n +# jXWrpPGxAAEAAAH5MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzEwOVoXDTI1MTAyMjE4MzEwOVowgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjJBMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# tD1MH3yAHWHNVslC+CBTj/Mpd55LDPtQrhN7WeqFhReC9xKXSjobW1ZHzHU8V2BO +# JUiYg7fDJ2AxGVGyovUtgGZg2+GauFKk3ZjjsLSsqehYIsUQrgX+r/VATaW8/ONW +# y6lOyGZwZpxfV2EX4qAh6mb2hadAuvdbRl1QK1tfBlR3fdeCBQG+ybz9JFZ45LN2 +# ps8Nc1xr41N8Qi3KVJLYX0ibEbAkksR4bbszCzvY+vdSrjWyKAjR6YgYhaBaDxE2 +# KDJ2sQRFFF/egCxKgogdF3VIJoCE/Wuy9MuEgypea1Hei7lFGvdLQZH5Jo2QR5uN +# 8hiMc8Z47RRJuIWCOeyIJ1YnRiiibpUZ72+wpv8LTov0yH6C5HR/D8+AT4vqtP57 +# ITXsD9DPOob8tjtsefPcQJebUNiqyfyTL5j5/J+2d+GPCcXEYoeWZ+nrsZSfrd5D +# HM4ovCmD3lifgYnzjOry4ghQT/cvmdHwFr6yJGphW/HG8GQd+cB4w7wGpOhHVJby +# 44kGVK8MzY9s32Dy1THnJg8p7y1sEGz/A1y84Zt6gIsITYaccHhBKp4cOVNrfoRV +# Ux2G/0Tr7Dk3fpCU8u+5olqPPwKgZs57jl+lOrRVsX1AYEmAnyCyGrqRAzpGXyk1 +# HvNIBpSNNuTBQk7FBvu+Ypi6A7S2V2Tj6lzYWVBvuGECAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBSJ7aO6nJXJI9eijzS5QkR2RlngADAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAZiAJgFbkf7jfhx/mmZlnGZrpae+HGpxWxs8I79vUb8GQou50M1ns7iwG +# 2CcdoXaq7VgpVkNf1uvIhrGYpKCBXQ+SaJ2O0BvwuJR7UsgTaKN0j/yf3fpHD0kt +# H+EkEuGXs9DBLyt71iutVkwow9iQmSk4oIK8S8ArNGpSOzeuu9TdJjBjsasmuJ+2 +# q5TjmrgEKyPe3TApAio8cdw/b1cBAmjtI7tpNYV5PyRI3K1NhuDgfEj5kynGF/ui +# zP1NuHSxF/V1ks/2tCEoriicM4k1PJTTA0TCjNbkpmBcsAMlxTzBnWsqnBCt9d+U +# d9Va3Iw9Bs4ccrkgBjLtg3vYGYar615ofYtU+dup+LuU0d2wBDEG1nhSWHaO+u2y +# 6Si3AaNINt/pOMKU6l4AW0uDWUH39OHH3EqFHtTssZXaDOjtyRgbqMGmkf8KI3qI +# VBZJ2XQpnhEuRbh+AgpmRn/a410Dk7VtPg2uC422WLC8H8IVk/FeoiSS4vFodhnc +# FetJ0ZK36wxAa3FiPgBebRWyVtZ763qDDzxDb0mB6HL9HEfTbN+4oHCkZa1HKl8B +# 0s8RiFBMf/W7+O7EPZ+wMH8wdkjZ7SbsddtdRgRARqR8IFPWurQ+sn7ftEifaojz +# uCEahSAcq86yjwQeTPN9YG9b34RTurnkpD+wPGTB1WccMpsLlM0wggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAqs5WjWO7zVAK +# mIcdwhqgZvyp6UaggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyG2lkwIhgPMjAyNTA5MzAyMjM4MTdaGA8yMDI1 +# MTAwMTIyMzgxN1owdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA7IbaWQIBADAKAgEA +# AgInWgIB/zAHAgEAAgISRDAKAgUA7Igr2QIBADA2BgorBgEEAYRZCgQCMSgwJjAM +# BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB +# CwUAA4IBAQA0HygGCzYYEljnRjZKmlyq8BlFLyeDqjIsf+eW9udW0nwpYvks0ztw +# xcaklxi1JIufA2sghpxfO1DRxR/rkZvRt0N4b6+meKsltQSnJyY6A7LOg169vl4I +# h4F80N3N244nRix969BPnYvMd94lXyhwLRk0vygjWuhF5VJIn+oJQ89bR2Qr+k1c +# EzI5Hypvq/WH0ZzZF7BSPu2zhWTJrNuAefu02ATEKZh8YydBYJdQ9qT2SjXDDQoX +# xW6kWpyX51pxERwDxHfeYKGyp3xuGmIOtBT8jFD/bzNCUIAxAKYmggqdJI1IoRQO +# hyj/efZBnp2gn+TMH95Q84INFZ6tWtSWMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE +# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc +# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 +# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH5H2eNdauk8bEAAQAAAfkwDQYJYIZI +# AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG +# 9w0BCQQxIgQgeYBQLgud1gmcftiFNp1+OdVcUxMZ6LMiJXInMarJqRAwgfoGCyqG +# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCA5I4zIHvCN+2T66RUOLCZrUEVdoKlKl8Ve +# CO5SbGLYEDCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n +# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y +# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz +# AAAB+R9njXWrpPGxAAEAAAH5MCIEIImoK59ZPcOXI5dNWhrN9BtaZ8YzydRxG6Oc +# pV+4JnCfMA0GCSqGSIb3DQEBCwUABIICACa6Nq4NPscx13GhxWhaTg5DsYGw0bUo +# Nfeo17hpbR6DlrtvYc7DJC7XBw00ZAyGo6r6wQ6XiXymbFVrnIyymsjp9pjjjEtb +# HaMwU53H10eaCQYvHK4lF37HdpH746RGMSHv6CitJx3C941XprN0Zt44CATmLUS5 +# KjyKF0C2Z+zUz44s27KKb2zZOiNnbIgxRhZ/D2C/JGFOlC9SxjZJrHIeCHDjYd6P +# 21nMFQRvdg5QG7q0GPpg3yEWeu3rJUIo582kSO0jYjwkofc2o0lJPoBfSQc3LvKm +# pveWhnX3Y/JSvJ9hRvN81xqO2aGl+eUgcGhhpzMxjXPHzL73aa5CTrLs3MNR3pwI +# +RmRC0rpKr1hXvefEP+2Vrs89Qbu8C8Vu0llMrvO50T0BLJVIIDUow0mg+zs/MGg +# sEWHZ0K7BAplcyIUkS4jpha+8XCW538M7Uuv3XP53OJgj2Z3gGngixvrnZS+lg+w +# cG4mc4638jAk+N3Jjm13gcFTPmGu2mqXk0DJcYZ+97xLfyng6M1hyAdpXBRCwZpq +# rQFlE7xAFqgLgHLbAQhwHbXuZYufTbGPZ4yceJm4WnFn6LliHInjhy2mvlH8YCib +# eGslVrjejTHq1TQSZIcne1IgWXlFCi8UhBNooSueXIklbPku/w5lleC4fNRNuB/m +# AzaURq/znMHO +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/6.9.0/net472/CmdletSettings.json b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/CmdletSettings.json similarity index 100% rename from Modules/MicrosoftTeams/6.9.0/net472/CmdletSettings.json rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/CmdletSettings.json diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.ApplicationInsights.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.ApplicationInsights.dll new file mode 100644 index 000000000000..fdca7bac6a8b Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.ApplicationInsights.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Applications.Events.Server.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Applications.Events.Server.dll new file mode 100644 index 000000000000..ad34a9aef84c Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Applications.Events.Server.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll new file mode 100644 index 000000000000..78b1b1c89c60 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Core.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Core.dll new file mode 100644 index 000000000000..ec2db7967083 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Core.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Cryptography.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Cryptography.dll new file mode 100644 index 000000000000..9b7c5d8faa25 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Cryptography.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Jose.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Jose.dll new file mode 100644 index 000000000000..e8a18a4ec99e Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Jose.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Data.Sqlite.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Data.Sqlite.dll new file mode 100644 index 000000000000..fc5d616f68d9 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Data.Sqlite.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll new file mode 100644 index 000000000000..d621de85f24f Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Configuration.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Configuration.dll new file mode 100644 index 000000000000..897b044501b1 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Configuration.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll new file mode 100644 index 000000000000..e29ee64f615e Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.Abstractions.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.Abstractions.dll new file mode 100644 index 000000000000..47529d6aa416 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.Abstractions.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.dll new file mode 100644 index 000000000000..393cbf1dee97 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Primitives.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Primitives.dll new file mode 100644 index 000000000000..d787a8775b5c Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Primitives.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll new file mode 100644 index 000000000000..0a0209905e26 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Broker.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Broker.dll new file mode 100644 index 000000000000..ca9a777af241 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Broker.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Desktop.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Desktop.dll new file mode 100644 index 000000000000..5169c48c914f Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Desktop.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Extensions.Msal.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Extensions.Msal.dll new file mode 100644 index 000000000000..bf89be4980de Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Extensions.Msal.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.NativeInterop.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.NativeInterop.dll new file mode 100644 index 000000000000..9e41800ce4ae Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.NativeInterop.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.dll new file mode 100644 index 000000000000..2124ac0d246b Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Abstractions.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Abstractions.dll new file mode 100644 index 000000000000..4a29bc7db7f8 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Abstractions.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.JsonWebTokens.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.JsonWebTokens.dll new file mode 100644 index 000000000000..3324ed45ef53 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.JsonWebTokens.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Logging.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Logging.dll new file mode 100644 index 000000000000..8decf370fcac Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Logging.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Tokens.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Tokens.dll new file mode 100644 index 000000000000..45ae17b27e42 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Tokens.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.Azure.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.Azure.dll new file mode 100644 index 000000000000..2c6c10570125 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.Azure.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.dll new file mode 100644 index 000000000000..d3056a460fce Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll new file mode 100644 index 000000000000..015c3e2fbf96 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll new file mode 100644 index 000000000000..1ad797c94a88 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll new file mode 100644 index 000000000000..2b5b8520c438 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll new file mode 100644 index 000000000000..595ee81d4fb4 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll new file mode 100644 index 000000000000..9d95160a36f9 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.dll new file mode 100644 index 000000000000..236f96369c04 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.deps.json b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.deps.json similarity index 95% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.deps.json rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.deps.json index dfff0f8e20e0..0300bacaa346 100644 --- a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.deps.json +++ b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.deps.json @@ -6,14 +6,14 @@ "compilationOptions": {}, "targets": { ".NETCoreApp,Version=v3.1": { - "Microsoft.Teams.PowerShell.Module/6.9.0": { + "Microsoft.Teams.PowerShell.Module/7.4.0": { "dependencies": { "Microsoft.NETCore.Targets": "3.1.0", - "Microsoft.Teams.ConfigAPI.Cmdlets": "8.228.3", - "Microsoft.Teams.Policy.Administration": "14.1.41", + "Microsoft.Teams.ConfigAPI.Cmdlets": "8.925.3", + "Microsoft.Teams.Policy.Administration": "21.4.4", "Microsoft.Teams.Policy.Administration.Cmdlets.OCE": "0.1.12", - "Microsoft.Teams.PowerShell.Connect": "1.6.3", - "Microsoft.Teams.PowerShell.TeamsCmdlets": "1.3.8", + "Microsoft.Teams.PowerShell.Connect": "1.7.4", + "Microsoft.Teams.PowerShell.TeamsCmdlets": "1.5.6", "NuGet.Build.Tasks.Pack": "5.2.0", "NuGet.CommandLine": "5.11.6", "System.Management.Automation": "6.2.7", @@ -226,64 +226,69 @@ } } }, - "Microsoft.Identity.Client/4.62.0": { + "Microsoft.Identity.Client/4.70.1": { "dependencies": { "Microsoft.IdentityModel.Abstractions": "6.35.0", "System.Diagnostics.DiagnosticSource": "6.0.1" }, "runtime": { "lib/netstandard2.0/Microsoft.Identity.Client.dll": { - "assemblyVersion": "4.62.0.0", - "fileVersion": "4.62.0.0" + "assemblyVersion": "4.70.1.0", + "fileVersion": "4.70.1.0" } } }, - "Microsoft.Identity.Client.Broker/4.62.0": { + "Microsoft.Identity.Client.Broker/4.70.1": { "dependencies": { - "Microsoft.Identity.Client": "4.62.0", - "Microsoft.Identity.Client.NativeInterop": "0.16.1" + "Microsoft.Identity.Client": "4.70.1", + "Microsoft.Identity.Client.NativeInterop": "0.18.1" }, "runtime": { "lib/netstandard2.0/Microsoft.Identity.Client.Broker.dll": { - "assemblyVersion": "4.62.0.0", - "fileVersion": "4.62.0.0" + "assemblyVersion": "4.70.1.0", + "fileVersion": "4.70.1.0" } } }, - "Microsoft.Identity.Client.Desktop/4.62.0": { + "Microsoft.Identity.Client.Desktop/4.70.1": { "dependencies": { - "Microsoft.Identity.Client": "4.62.0", - "Microsoft.Identity.Client.Broker": "4.62.0", + "Microsoft.Identity.Client": "4.70.1", + "Microsoft.Identity.Client.Broker": "4.70.1", "Microsoft.Web.WebView2": "1.0.864.35" }, "runtime": { "lib/netcoreapp3.1/Microsoft.Identity.Client.Desktop.dll": { - "assemblyVersion": "4.62.0.0", - "fileVersion": "4.62.0.0" + "assemblyVersion": "4.70.1.0", + "fileVersion": "4.70.1.0" } } }, - "Microsoft.Identity.Client.Extensions.Msal/4.62.0": { + "Microsoft.Identity.Client.Extensions.Msal/4.70.1": { "dependencies": { - "Microsoft.Identity.Client": "4.62.0", + "Microsoft.Identity.Client": "4.70.1", "System.IO.FileSystem.AccessControl": "5.0.0", "System.Security.Cryptography.ProtectedData": "7.0.0" }, "runtime": { "lib/netstandard2.0/Microsoft.Identity.Client.Extensions.Msal.dll": { - "assemblyVersion": "4.62.0.0", - "fileVersion": "4.62.0.0" + "assemblyVersion": "4.70.1.0", + "fileVersion": "4.70.1.0" } } }, - "Microsoft.Identity.Client.NativeInterop/0.16.1": { + "Microsoft.Identity.Client.NativeInterop/0.18.1": { "runtime": { "lib/netstandard2.0/Microsoft.Identity.Client.NativeInterop.dll": { - "assemblyVersion": "0.16.1.0", - "fileVersion": "0.16.1.0" + "assemblyVersion": "0.18.1.0", + "fileVersion": "0.18.1.0" } }, "runtimeTargets": { + "runtimes/linux-x64/native/libmsalruntime.so": { + "rid": "linux-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, "runtimes/win-arm64/native/msalruntime_arm64.dll": { "rid": "win-arm64", "assetType": "native", @@ -817,27 +822,24 @@ } } }, - "Microsoft.Teams.ConfigAPI.CmdletHostContract/3.1.2": { + "Microsoft.Teams.ConfigAPI.CmdletHostContract/3.2.4": { "dependencies": { "Newtonsoft.Json": "13.0.3", "PowerShellStandard.Library": "5.1.0" }, "runtime": { "lib/netstandard2.0/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll": { - "assemblyVersion": "3.1.2.0", - "fileVersion": "3.1.2.0" + "assemblyVersion": "3.2.4.0", + "fileVersion": "3.2.4.0" } } }, - "Microsoft.Teams.ConfigAPI.Cmdlets/8.228.3": {}, - "Microsoft.Teams.Policy.Administration/14.1.41": { - "dependencies": { - "Microsoft.Extensions.Configuration": "8.0.0" - }, + "Microsoft.Teams.ConfigAPI.Cmdlets/8.925.3": {}, + "Microsoft.Teams.Policy.Administration/21.4.4": { "runtime": { "lib/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll": { - "assemblyVersion": "14.1.41.0", - "fileVersion": "14.1.41.0" + "assemblyVersion": "21.4.4.0", + "fileVersion": "21.4.4.0" }, "lib/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll": { "assemblyVersion": "1.0.75.0", @@ -848,8 +850,8 @@ "fileVersion": "1.0.75.0" }, "lib/netcoreapp3.1/Microsoft.Teams.Policy.Administration.dll": { - "assemblyVersion": "14.1.41.0", - "fileVersion": "14.1.41.0" + "assemblyVersion": "21.4.4.0", + "fileVersion": "21.4.4.0" }, "lib/netcoreapp3.1/Newtonsoft.Json.dll": { "assemblyVersion": "13.0.0.0", @@ -868,7 +870,7 @@ "Microsoft.Teams.Policy.Administration.Cmdlets.OCE/0.1.12": { "dependencies": { "Microsoft.Extensions.Configuration": "8.0.0", - "Microsoft.Teams.ConfigAPI.CmdletHostContract": "3.1.2", + "Microsoft.Teams.ConfigAPI.CmdletHostContract": "3.2.4", "Microsoft.Teams.Policy.Administration.Configurations": "12.2.29", "Newtonsoft.Json": "13.0.3", "System.Net.Http": "4.3.4" @@ -885,17 +887,17 @@ "Microsoft.Extensions.Configuration": "8.0.0" } }, - "Microsoft.Teams.PowerShell.Connect/1.6.3": { + "Microsoft.Teams.PowerShell.Connect/1.7.4": { "dependencies": { "Microsoft.Applications.Events.Server": "1.1.2.97", "Microsoft.Ic3.TenantAdminApi.Common.Helper": "1.0.28", - "Microsoft.Identity.Client": "4.62.0", - "Microsoft.Identity.Client.Broker": "4.62.0", - "Microsoft.Identity.Client.Desktop": "4.62.0", - "Microsoft.Identity.Client.Extensions.Msal": "4.62.0", + "Microsoft.Identity.Client": "4.70.1", + "Microsoft.Identity.Client.Broker": "4.70.1", + "Microsoft.Identity.Client.Desktop": "4.70.1", + "Microsoft.Identity.Client.Extensions.Msal": "4.70.1", "Microsoft.Rest.ClientRuntime": "2.3.21", "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", - "Microsoft.Teams.ConfigAPI.CmdletHostContract": "3.1.2", + "Microsoft.Teams.ConfigAPI.CmdletHostContract": "3.2.4", "Newtonsoft.Json": "13.0.3", "OneCollectorChannel": "1.1.0.234", "System.IdentityModel.Tokens.Jwt": "6.8.0", @@ -905,8 +907,8 @@ }, "runtime": { "lib/netcoreapp3.1/Microsoft.TeamsCmdlets.PowerShell.Connect.dll": { - "assemblyVersion": "1.6.3.0", - "fileVersion": "1.6.3.0" + "assemblyVersion": "1.7.4.0", + "fileVersion": "1.7.4.0" }, "lib/netcoreapp3.1/Microsoft.Web.WebView2.Core.dll": { "assemblyVersion": "1.0.864.35", @@ -958,9 +960,9 @@ } } }, - "Microsoft.Teams.PowerShell.TeamsCmdlets/1.3.8": { + "Microsoft.Teams.PowerShell.TeamsCmdlets/1.5.6": { "dependencies": { - "Microsoft.Teams.PowerShell.Connect": "1.6.3", + "Microsoft.Teams.PowerShell.Connect": "1.7.4", "Newtonsoft.Json": "13.0.3", "Polly": "7.2.4", "Polly.Contrib.WaitAndRetry": "1.1.1", @@ -969,8 +971,8 @@ }, "runtime": { "lib/netcoreapp3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.dll": { - "assemblyVersion": "1.3.8.0", - "fileVersion": "1.3.8.0" + "assemblyVersion": "1.5.6.0", + "fileVersion": "1.5.6.0" }, "lib/netcoreapp3.1/Polly.Contrib.WaitAndRetry.dll": { "assemblyVersion": "1.0.0.0", @@ -2059,7 +2061,7 @@ } }, "libraries": { - "Microsoft.Teams.PowerShell.Module/6.9.0": { + "Microsoft.Teams.PowerShell.Module/7.4.0": { "type": "project", "serviceable": false, "sha512": "" @@ -2169,40 +2171,40 @@ "path": "microsoft.ic3.tenantadminapi.common.helper/1.0.28", "hashPath": "microsoft.ic3.tenantadminapi.common.helper.1.0.28.nupkg.sha512" }, - "Microsoft.Identity.Client/4.62.0": { + "Microsoft.Identity.Client/4.70.1": { "type": "package", "serviceable": true, - "sha512": "sha512-2q5m8ASh9lJ714CkCxA1lmj60K6OeDR2vV78adviOM/ZEoISldY+THr7gmqJ6rtSbZ0J4R/a9KcgL/wm8Ogi4Q==", - "path": "microsoft.identity.client/4.62.0", - "hashPath": "microsoft.identity.client.4.62.0.nupkg.sha512" + "sha512": "sha512-kF80oiTQ/tMIIZ96zOxsd/mM1htYjIDYQENz/UdQq9aa45G1y/4u0TvX9PBrjXk1bH0N8h2jyzNJ6aD27nLsmw==", + "path": "microsoft.identity.client/4.70.1", + "hashPath": "microsoft.identity.client.4.70.1.nupkg.sha512" }, - "Microsoft.Identity.Client.Broker/4.62.0": { + "Microsoft.Identity.Client.Broker/4.70.1": { "type": "package", "serviceable": true, - "sha512": "sha512-D5iSJglKXJzeCb2/UAPGVkqRLHk6512iojDoyjEeLi8e89jE3QZykIVkkZNkFpuVXsVebyrkA87YHr+DJOvvUQ==", - "path": "microsoft.identity.client.broker/4.62.0", - "hashPath": "microsoft.identity.client.broker.4.62.0.nupkg.sha512" + "sha512": "sha512-Jo4kXK3po/YJVja8Z5BQSlxctNG55UWQryOSdfLFx3eW0Du/NVvjxnlsc5VK3cosMJ4mcV+kUTk4pU6hMCBc6w==", + "path": "microsoft.identity.client.broker/4.70.1", + "hashPath": "microsoft.identity.client.broker.4.70.1.nupkg.sha512" }, - "Microsoft.Identity.Client.Desktop/4.62.0": { + "Microsoft.Identity.Client.Desktop/4.70.1": { "type": "package", "serviceable": true, - "sha512": "sha512-NGDgwgha/t4HHoFMgcgNl+yICCWCGOOwLbE8sP6Xd9Rr6dryc8Z1qifPd7zSoLQxo3w0ghBCLARywptGPtoFjQ==", - "path": "microsoft.identity.client.desktop/4.62.0", - "hashPath": "microsoft.identity.client.desktop.4.62.0.nupkg.sha512" + "sha512": "sha512-MHZbPjzBiDcp1k3wXfcaTPhpZTinB1CKYE+IhjNQU69Z7aP3qEF7uZyBplAfDaxYmF5i17KGNWoBhMLzcXRqgg==", + "path": "microsoft.identity.client.desktop/4.70.1", + "hashPath": "microsoft.identity.client.desktop.4.70.1.nupkg.sha512" }, - "Microsoft.Identity.Client.Extensions.Msal/4.62.0": { + "Microsoft.Identity.Client.Extensions.Msal/4.70.1": { "type": "package", "serviceable": true, - "sha512": "sha512-ylCHQwNpT+YYu4Le+r0x5XRHKsFtIgIIAHshDWIlgeA/AoFs/9yREdtSeIELdN7X3lJAIiUjJR8z7r7KJ3ETLw==", - "path": "microsoft.identity.client.extensions.msal/4.62.0", - "hashPath": "microsoft.identity.client.extensions.msal.4.62.0.nupkg.sha512" + "sha512": "sha512-BcHpwvQrqccR/n2Q6wpr63wglWoVg54rXEtV0dah6tZiUpdX5Ull8d3/R63Jlc+YH2TN0bf+GpuNP83MI/V1aw==", + "path": "microsoft.identity.client.extensions.msal/4.70.1", + "hashPath": "microsoft.identity.client.extensions.msal.4.70.1.nupkg.sha512" }, - "Microsoft.Identity.Client.NativeInterop/0.16.1": { + "Microsoft.Identity.Client.NativeInterop/0.18.1": { "type": "package", "serviceable": true, - "sha512": "sha512-OvY/+/AHESi24f5zOCf9kL4HXwPxXVQ3A+tMQsJvFk2DmP+sc88FYWL49zlku5q0bvx5yFvBLNpHQeRT9a6A5g==", - "path": "microsoft.identity.client.nativeinterop/0.16.1", - "hashPath": "microsoft.identity.client.nativeinterop.0.16.1.nupkg.sha512" + "sha512": "sha512-oMkIwj4ugqOiGFkMWl/OUG/ndB1cYE5ZNhX+J4Jrj7ojT+lmBCBYcajLpvztIO+Is2Eo6qJxSsFLrCUo4UiCrg==", + "path": "microsoft.identity.client.nativeinterop/0.18.1", + "hashPath": "microsoft.identity.client.nativeinterop.0.18.1.nupkg.sha512" }, "Microsoft.IdentityModel.Abstractions/6.35.0": { "type": "package", @@ -2281,26 +2283,26 @@ "path": "microsoft.rest.clientruntime.azure/3.3.19", "hashPath": "microsoft.rest.clientruntime.azure.3.3.19.nupkg.sha512" }, - "Microsoft.Teams.ConfigAPI.CmdletHostContract/3.1.2": { + "Microsoft.Teams.ConfigAPI.CmdletHostContract/3.2.4": { "type": "package", "serviceable": true, - "sha512": "sha512-PSssDGKJlVP0bHei+NDBpDPVEQOOkgH75Wv5XAgRV1XxIus/1zoRZBmzrlu+f8n3oYN3Ao4zqsN+Z+0xZUEmkg==", - "path": "microsoft.teams.configapi.cmdlethostcontract/3.1.2", - "hashPath": "microsoft.teams.configapi.cmdlethostcontract.3.1.2.nupkg.sha512" + "sha512": "sha512-6Dt9GnaRhKGPF2Z0qB+TwWzKbGT2JyuiCH6RumH7nA9jIK+HK2reZIYz2YMeVfpeZd3Cy5yAgt6S5acDEEGiiA==", + "path": "microsoft.teams.configapi.cmdlethostcontract/3.2.4", + "hashPath": "microsoft.teams.configapi.cmdlethostcontract.3.2.4.nupkg.sha512" }, - "Microsoft.Teams.ConfigAPI.Cmdlets/8.228.3": { + "Microsoft.Teams.ConfigAPI.Cmdlets/8.925.3": { "type": "package", "serviceable": true, - "sha512": "sha512-2uFqsL2QzZMeMy1Ob9vR+ye7AeYEV4q79knh0/sw8csm6UpxIAkijQvn+VbdQOxGBGRqvALu0xbqvScYQSHhEw==", - "path": "microsoft.teams.configapi.cmdlets/8.228.3", - "hashPath": "microsoft.teams.configapi.cmdlets.8.228.3.nupkg.sha512" + "sha512": "sha512-RFkL3bUSCPZcf4mhuOLzfYo5NXOtoAnXRl/1mZYwzE9yTnhelPvTUVBlgWOATUVa797YhdH4xDkSt1q5J3hTRw==", + "path": "microsoft.teams.configapi.cmdlets/8.925.3", + "hashPath": "microsoft.teams.configapi.cmdlets.8.925.3.nupkg.sha512" }, - "Microsoft.Teams.Policy.Administration/14.1.41": { + "Microsoft.Teams.Policy.Administration/21.4.4": { "type": "package", "serviceable": true, - "sha512": "sha512-51GQ4oibx1A+D4GX63y6FfZQ8mxRFDZtD66usgx0JsZib1udY+Zo/WGP/HpfqZF1XvQNOdq0/fvrRh3UzpZ/+w==", - "path": "microsoft.teams.policy.administration/14.1.41", - "hashPath": "microsoft.teams.policy.administration.14.1.41.nupkg.sha512" + "sha512": "sha512-3KIwun6R7az9pWTS5povCGT95/PyBQl+ZYN0HbWOK+4qXxcckcV9QprSBGzakVpVkEAHm2cgbkzZ2iFNqSZdgw==", + "path": "microsoft.teams.policy.administration/21.4.4", + "hashPath": "microsoft.teams.policy.administration.21.4.4.nupkg.sha512" }, "Microsoft.Teams.Policy.Administration.Cmdlets.OCE/0.1.12": { "type": "package", @@ -2316,19 +2318,19 @@ "path": "microsoft.teams.policy.administration.configurations/12.2.29", "hashPath": "microsoft.teams.policy.administration.configurations.12.2.29.nupkg.sha512" }, - "Microsoft.Teams.PowerShell.Connect/1.6.3": { + "Microsoft.Teams.PowerShell.Connect/1.7.4": { "type": "package", "serviceable": true, - "sha512": "sha512-QfxzNGxYFItnq3E06umPLCltQ0SHBrWY1DN13qmuZUWPGGHP/zwNUD0DcaO055HEm+lZtVHeHdaeXekR3Fl15g==", - "path": "microsoft.teams.powershell.connect/1.6.3", - "hashPath": "microsoft.teams.powershell.connect.1.6.3.nupkg.sha512" + "sha512": "sha512-5PVwBrhY1PrL9866+37a00LJP1BRhKyFuHWyOqb4dmHM44EvlXn4UJbgyvQOEmwr/i3dMRsJHsEWpeOZmmlP7A==", + "path": "microsoft.teams.powershell.connect/1.7.4", + "hashPath": "microsoft.teams.powershell.connect.1.7.4.nupkg.sha512" }, - "Microsoft.Teams.PowerShell.TeamsCmdlets/1.3.8": { + "Microsoft.Teams.PowerShell.TeamsCmdlets/1.5.6": { "type": "package", "serviceable": true, - "sha512": "sha512-I0CokQnuE8Zids6xlfRK23LwAd5DLGjW6L4lxRNyQOwUaDfkg3gmQebdu3d3TwOs3T8vXLKOKzJTj9g5+3NW4g==", - "path": "microsoft.teams.powershell.teamscmdlets/1.3.8", - "hashPath": "microsoft.teams.powershell.teamscmdlets.1.3.8.nupkg.sha512" + "sha512": "sha512-0wpSIlsiwCAAP/sZHIn66p7M8QG4IkAGKOJcR8LHuyp7J0uU0ByINsjp/YyOkGtgV9gOFo8Gun8giCz63BQA6w==", + "path": "microsoft.teams.powershell.teamscmdlets/1.5.6", + "hashPath": "microsoft.teams.powershell.teamscmdlets.1.5.6.nupkg.sha512" }, "Microsoft.Web.WebView2/1.0.864.35": { "type": "package", diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.dll new file mode 100644 index 000000000000..3e4b300b873f Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.pdb b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.pdb new file mode 100644 index 000000000000..b3d0ebe75e8a Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.pdb differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Teams.PowerShell.Module.xml b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.xml similarity index 100% rename from Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Teams.PowerShell.Module.xml rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.xml diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.dll new file mode 100644 index 000000000000..a91477ead25d Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.TeamsCmdlets.PowerShell.Connect.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.TeamsCmdlets.PowerShell.Connect.dll new file mode 100644 index 000000000000..a3b892b74038 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.TeamsCmdlets.PowerShell.Connect.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.Core.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.Core.dll new file mode 100644 index 000000000000..3fa1efe54e41 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.Core.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.WinForms.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.WinForms.dll new file mode 100644 index 000000000000..f0a377a3a2cc Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.WinForms.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.Wpf.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.Wpf.dll new file mode 100644 index 000000000000..7e60694860ee Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.Wpf.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Newtonsoft.Json.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Newtonsoft.Json.dll new file mode 100644 index 000000000000..a2d241560b29 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Newtonsoft.Json.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/OneCollectorChannel.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/OneCollectorChannel.dll new file mode 100644 index 000000000000..c031ac96e3c0 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/OneCollectorChannel.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Polly.Contrib.WaitAndRetry.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Polly.Contrib.WaitAndRetry.dll new file mode 100644 index 000000000000..c082759015cd Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Polly.Contrib.WaitAndRetry.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Polly.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Polly.dll new file mode 100644 index 000000000000..afe6d97775d5 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Polly.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Diagnostics.DiagnosticSource.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Diagnostics.DiagnosticSource.dll new file mode 100644 index 000000000000..6fcf940c4e30 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Diagnostics.DiagnosticSource.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.IO.FileSystem.AccessControl.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.IO.FileSystem.AccessControl.dll new file mode 100644 index 000000000000..19871f5fcf21 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.IO.FileSystem.AccessControl.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.IdentityModel.Tokens.Jwt.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.IdentityModel.Tokens.Jwt.dll new file mode 100644 index 000000000000..cd465d3aa208 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.IdentityModel.Tokens.Jwt.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Management.Automation.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Management.Automation.dll new file mode 100644 index 000000000000..1eda9c7fa707 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Management.Automation.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Management.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Management.dll similarity index 91% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Management.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Management.dll index bfa3465d747e..2b5e3781091d 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Management.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Management.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 000000000000..8ac2cc7dbc63 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.AccessControl.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.AccessControl.dll new file mode 100644 index 000000000000..fd0725aa4906 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.AccessControl.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.Cryptography.ProtectedData.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.Cryptography.ProtectedData.dll new file mode 100644 index 000000000000..c3e174c06b18 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.Cryptography.ProtectedData.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.Principal.Windows.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.Principal.Windows.dll new file mode 100644 index 000000000000..9d4508448f18 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.Principal.Windows.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/runtimes/win-arm64/native/msalruntime_arm64.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/runtimes/win-arm64/native/msalruntime_arm64.dll new file mode 100644 index 000000000000..95afcfaf07ef Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/runtimes/win-arm64/native/msalruntime_arm64.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/runtimes/win-x64/native/msalruntime.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/runtimes/win-x64/native/msalruntime.dll new file mode 100644 index 000000000000..1cfb61b7f7a5 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/runtimes/win-x64/native/msalruntime.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/runtimes/win-x86/native/msalruntime_x86.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/runtimes/win-x86/native/msalruntime_x86.dll new file mode 100644 index 000000000000..5ac532ab8307 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/runtimes/win-x86/native/msalruntime_x86.dll differ diff --git a/CIPPTimers.json b/Resources/CIPPTimers.json similarity index 80% rename from CIPPTimers.json rename to Resources/CIPPTimers.json index cbd1366a5363..f76dba8941e2 100644 --- a/CIPPTimers.json +++ b/Resources/CIPPTimers.json @@ -80,6 +80,15 @@ "RunOnProcessor": true, "PreferredProcessor": "standards" }, + { + "Id": "4d80205c-674d-4fc1-abeb-a1ec37e0d796", + "Command": "Start-DriftStandardsOrchestrator", + "Description": "Orchestrator to process drift standards", + "Cron": "0 0 */12 * * *", + "Priority": 5, + "RunOnProcessor": true, + "PreferredProcessor": "standards" + }, { "Id": "97145a1d-28f0-4bb2-b929-5a43517d23cc", "Command": "Start-SchedulerOrchestrator", @@ -96,6 +105,14 @@ "Priority": 5, "RunOnProcessor": true }, + { + "Id": "0967c860-3a57-4860-8f33-e5136eae7b4e", + "Command": "Start-TenantDynamicGroupOrchestrator", + "Description": "Orchestrator to update dynamic tenant groups", + "Cron": "0 0 */4 * * *", + "Priority": 6, + "RunOnProcessor": true + }, { "Id": "4ca242d0-8dc8-4256-b0ed-186599f4233f", "Command": "Start-UpdateTokensTimer", @@ -196,5 +213,32 @@ "Priority": 20, "RunOnProcessor": true, "IsSystem": true + }, + { + "Id": "b8f3c2e1-5d4a-4f7b-9a2c-1e6d8f3b5a7c", + "Command": "Start-BackupRetentionCleanup", + "Description": "Timer to cleanup old backups based on retention policy", + "Cron": "0 0 2 * * *", + "Priority": 21, + "RunOnProcessor": true, + "IsSystem": true + }, + { + "Id": "9a7f8e6d-5c4b-3a2d-1e0f-9b8c7d6e5f4a", + "Command": "Start-CIPPDBCacheOrchestrator", + "Description": "Timer to collect and cache Microsoft Graph data for all tenants", + "Cron": "0 0 3 * * *", + "Priority": 22, + "RunOnProcessor": true, + "IsSystem": true + }, + { + "Id": "1f2e3d4c-5b6a-7c8d-9e0f-1a2b3c4d5e6f", + "Command": "Start-TestsOrchestrator", + "Description": "Timer to run security and compliance tests against cached data", + "Cron": "0 0 4 * * *", + "Priority": 23, + "RunOnProcessor": true, + "IsSystem": true } ] diff --git a/Resources/CommunityRepos.json b/Resources/CommunityRepos.json new file mode 100644 index 000000000000..9d6d702d0161 --- /dev/null +++ b/Resources/CommunityRepos.json @@ -0,0 +1,92 @@ +[ + { + "Id": "1041442982", + "Name": "CISTemplates", + "Description": "CIPP CIS Templates", + "URL": "https://github.com/CyberDrain/CyberDrain-CIS-Templates", + "FullName": "CyberDrain/CyberDrain-CIS-Templates", + "Owner": "CyberDrain", + "Visibility": "public", + "WriteAccess": false, + "DefaultBranch": "main", + "RepoPermissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + } + }, + { + "Id": "930523724", + "Name": "CIPP-Templates", + "Description": "CIPP Community Templates", + "URL": "https://github.com/CyberDrain/CIPP-Templates", + "FullName": "CyberDrain/CIPP-Templates", + "Owner": "CyberDrain", + "Visibility": "public", + "WriteAccess": false, + "DefaultBranch": "main", + "RepoPermissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + } + }, + { + "Id": "784230225", + "Name": "ConditionalAccessBaseline", + "Description": "", + "URL": "https://github.com/j0eyv/ConditionalAccessBaseline", + "FullName": "j0eyv/ConditionalAccessBaseline", + "Owner": "j0eyv", + "Visibility": "public", + "WriteAccess": false, + "DefaultBranch": "main", + "RepoPermissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + } + }, + { + "Id": "493403016", + "Name": "OpenIntuneBaseline", + "Description": "Community-driven baseline to accelerate Intune adoption and learning.", + "URL": "https://github.com/SkipToTheEndpoint/OpenIntuneBaseline", + "FullName": "SkipToTheEndpoint/OpenIntuneBaseline", + "Owner": "SkipToTheEndpoint", + "Visibility": "public", + "WriteAccess": false, + "DefaultBranch": "main", + "RepoPermissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + } + }, + { + "Id": "863076113", + "Name": "IntuneBaseLines", + "Description": "In this repo, you will find Intune profiles in JSON format, which can be used in setting up your Modern Workplace. All policies were created in Microsoft Intune and exported to share with the community.", + "URL": "https://github.com/IntuneAdmin/IntuneBaselines", + "FullName": "IntuneAdmin/IntuneBaselines", + "Owner": "IntuneAdmin", + "Visibility": "public", + "WriteAccess": false, + "DefaultBranch": "main", + "RepoPermissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + } + } +] diff --git a/Resources/ConversionTable.csv b/Resources/ConversionTable.csv new file mode 100644 index 000000000000..27ee53d2fe35 --- /dev/null +++ b/Resources/ConversionTable.csv @@ -0,0 +1,5826 @@ +Product_Display_Name,String_Id,GUID,Service_Plan_Name,Service_Plan_Id,Service_Plans_Included_Friendly_Names +10-Year Audit Log Retention Add On,10_ALR_ADDON,c2e41e49-e2a2-4c55-832a-cf13ffba1d6a,Auditing_10Year_ Retention_ Add_On,7d16094b-4db8-41ff-a182-372a90a85407,Auditing 10Year Retention Add On +Advanced Communications,ADV_COMMS,e4654015-5daf-4a48-9b37-4f309dddd88b,TEAMS_ADVCOMMS,604ec28a-ae18-4bc6-91b0-11da94504ba9,Microsoft 365 Advanced Communications +AI Builder Capacity add-on,CDSAICAPACITY,d2dea78b-507c-4e56-b400-39447f4738f8,CDSAICAPACITY,a7c70a41-5e02-4271-93e6-d9b4184d83f5,AI Builder capacity add-on +AI Builder Capacity add-on,CDSAICAPACITY,d2dea78b-507c-4e56-b400-39447f4738f8,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +App Connect IW,SPZA_IW,8f0c5670-4e56-4892-b06d-91c085d7004f,SPZA,0bfc98ed-1dbc-4a97-b246-701754e48b17,APP CONNECT +App Connect IW,SPZA_IW,8f0c5670-4e56-4892-b06d-91c085d7004f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +App governance add-on to Microsoft Defender for Cloud Apps,Microsoft_Cloud_App_Security_App_Governance_Add_On,9706eed9-966f-4f1b-94f6-bb2b4af99a5b,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +App governance add-on to Microsoft Defender for Cloud Apps,Microsoft_Cloud_App_Security_App_Governance_Add_On,9706eed9-966f-4f1b-94f6-bb2b4af99a5b,MICROSOFT_APPLICATION_PROTECTION_AND_GOVERNANCE_A,5f3b1ded-75c0-4b31-8e6e-9b077eaadfd5,Microsoft Application Protection and Governance (A) +App governance add-on to Microsoft Defender for Cloud Apps,Microsoft_Cloud_App_Security_App_Governance_Add_On,9706eed9-966f-4f1b-94f6-bb2b4af99a5b,MICROSOFT_APPLICATION_PROTECTION_AND_GOVERNANCE_D,2e6ffd72-52d1-4541-8f6c-938f9a8d4cdc,Microsoft Application Protection and Governance (D) +Azure Information Protection Premium P1 for Government,RIGHTSMANAGEMENT_CE_GOV ,78362de1-6942-4bb8-83a1-a32aa67e6e2c,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Azure Information Protection Premium P1 for Government,RIGHTSMANAGEMENT_CE_GOV ,78362de1-6942-4bb8-83a1-a32aa67e6e2c,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Azure Information Protection Premium P1 for Government,RIGHTSMANAGEMENT_CE_GOV ,78362de1-6942-4bb8-83a1-a32aa67e6e2c,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Career Coach for faculty,CAREERCOACH_FACULTY,95de1760-7682-406d-98c9-52ef14e51e2b,CAREERCOACH_EDU,80f0ae31-0dfb-425c-b3fc-36f40170eb35,Career Coach +Career Coach for students,CAREERCOACH_STUDENTS,01c8007a-57d2-41e0-a3c3-0b46ead16cc4,CAREERCOACH_EDU,80f0ae31-0dfb-425c-b3fc-36f40170eb35,Career Coach +Clipchamp Premium,Clipchamp_Premium,0fe440c5-f2bf-442b-a4f4-9a7af77a200b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Clipchamp Premium,Clipchamp_Premium,0fe440c5-f2bf-442b-a4f4-9a7af77a200b,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Clipchamp Premium,Clipchamp_Premium,0fe440c5-f2bf-442b-a4f4-9a7af77a200b,CLIPCHAMP_PREMIUM,430b908f-78e1-4812-b045-cf83320e7d5d,Microsoft Clipchamp Premium +Clipchamp Premium,Clipchamp_Premium,0fe440c5-f2bf-442b-a4f4-9a7af77a200b,ONEDRIVECLIPCHAMP,f7e5b77d-f293-410a-bae8-f941f19fe680,OneDrive for Business (Clipchamp) +Clipchamp Standard,Clipchamp_Standard,481f3bc2-5756-4b28-9375-5c8c86b99e6b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Clipchamp Standard,Clipchamp_Standard,481f3bc2-5756-4b28-9375-5c8c86b99e6b,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Clipchamp Standard,Clipchamp_Standard,481f3bc2-5756-4b28-9375-5c8c86b99e6b,ONEDRIVECLIPCHAMP,f7e5b77d-f293-410a-bae8-f941f19fe680,OneDrive for Business (Clipchamp) +Clipchamp Premium Add-on,Clipchamp_Premium_Add_on,4b2c20e4-939d-4bf4-9dd8-6870240cfe19,CLIPCHAMP_PREMIUM,430b908f-78e1-4812-b045-cf83320e7d5d,Microsoft Clipchamp Premium +Microsoft 365 Audio Conferencing,MCOMEETADV,0c266dff-15dd-4b49-8397-2bb16070ed52,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft Entra ID Basic,AAD_BASIC,2b9c8e7c-319c-43a2-a2a0-48c5c6161de7,AAD_BASIC,c4da7f8a-5ee2-4c99-a7e1-87d2df57f6fe,Microsoft Entra BASIC +Microsoft Entra ID P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Entra ID P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,CLOUD APP SECURITY DISCOVERY +Microsoft Entra ID P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Entra ID P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION +Microsoft Entra ID P1 for Faculty,AAD_PREMIUM_FACULTY,30fc3c36-5a95-4956-ba57-c09c2a600bb9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Entra ID P1 for Faculty,AAD_PREMIUM_FACULTY,30fc3c36-5a95-4956-ba57-c09c2a600bb9,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Entra ID P1 for Faculty,AAD_PREMIUM_FACULTY,30fc3c36-5a95-4956-ba57-c09c2a600bb9,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft Entra ID P1 for Faculty,AAD_PREMIUM_FACULTY,30fc3c36-5a95-4956-ba57-c09c2a600bb9,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft Entra ID P1_USGOV_GCCHIGH,AAD_PREMIUM_USGOV_GCCHIGH ,de597797-22fb-4d65-a9fe-b7dbe8893914,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Entra ID P1_USGOV_GCCHIGH,AAD_PREMIUM_USGOV_GCCHIGH ,de597797-22fb-4d65-a9fe-b7dbe8893914,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft Entra ID P1_USGOV_GCCHIGH,AAD_PREMIUM_USGOV_GCCHIGH ,de597797-22fb-4d65-a9fe-b7dbe8893914,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft Entra ID P1_USGOV_GCCHIGH,AAD_PREMIUM_USGOV_GCCHIGH ,de597797-22fb-4d65-a9fe-b7dbe8893914,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,CLOUD APP SECURITY DISCOVERY +Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION +Azure Information Protection Plan 1,RIGHTSMANAGEMENT,c52ea49f-fe5d-4e95-93ba-1de91d380f89,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,AZURE INFORMATION PROTECTION PREMIUM P1 +Azure Information Protection Plan 1,RIGHTSMANAGEMENT,c52ea49f-fe5d-4e95-93ba-1de91d380f89,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Microsoft Entra RIGHTS +Azure Information Protection Plan 1,RIGHTSMANAGEMENT_CE,a0e6a48f-b056-4037-af70-b9ac53504551,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Azure Information Protection Plan 1,RIGHTSMANAGEMENT_CE,a0e6a48f-b056-4037-af70-b9ac53504551,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Azure Information Protection Plan 1,RIGHTSMANAGEMENT_CE,a0e6a48f-b056-4037-af70-b9ac53504551,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Azure Information Protection Premium P1_USGOV_GCCHIGH,RIGHTSMANAGEMENT_CE_USGOV_GCCHIGH,c57afa2a-d468-46c4-9a90-f86cb1b3c54a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Azure Information Protection Premium P1_USGOV_GCCHIGH,RIGHTSMANAGEMENT_CE_USGOV_GCCHIGH,c57afa2a-d468-46c4-9a90-f86cb1b3c54a,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Azure Information Protection Premium P1_USGOV_GCCHIGH,RIGHTSMANAGEMENT_CE_USGOV_GCCHIGH,c57afa2a-d468-46c4-9a90-f86cb1b3c54a,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Basic Collaboration,OFFICEBASIC,4468c39a-28b2-42fb-9094-840bcf28771f,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Basic Collaboration,OFFICEBASIC,4468c39a-28b2-42fb-9094-840bcf28771f,ONEDRIVELITE_IW,b4ac11a0-32ff-4e78-982d-e039fa803dec,Office for the web with OneDrive for business +Basic Collaboration,OFFICEBASIC,4468c39a-28b2-42fb-9094-840bcf28771f,MCOBASIC,448898aa-3ae7-478c-b49a-1fac7a8a35cf,Skype Meetings +Basic Collaboration,OFFICEBASIC,4468c39a-28b2-42fb-9094-840bcf28771f,YAMMER_BASIC,6db7aeea-6c4a-475d-bbb0-7338bc73d646,Yammer +Business Apps (free),SMB_APPS,90d8b3f8-712e-4f7b-aa1e-62e7ae6cbe96,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Business Apps (free),SMB_APPS,90d8b3f8-712e-4f7b-aa1e-62e7ae6cbe96,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Common Data Service for Apps File Capacity,CDS_FILE_CAPACITY,631d5fb1-a668-4c2a-9427-8830665a742e,CDS_FILE_CAPACITY,dd12a3a8-caec-44f8-b4fb-2f1a864b51e3,Common Data Service for Apps File Capacity +Common Data Service for Apps File Capacity,CDS_FILE_CAPACITY,631d5fb1-a668-4c2a-9427-8830665a742e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Common Data Service Database Capacity,CDS_DB_CAPACITY,e612d426-6bc3-4181-9658-91aa906b0ac0,CDS_DB_CAPACITY,360bcc37-0c11-4264-8eed-9fa7a3297c9b,Common Data Service for Apps Database Capacity +Common Data Service Database Capacity,CDS_DB_CAPACITY,e612d426-6bc3-4181-9658-91aa906b0ac0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Common Data Service Database Capacity for Government,CDS_DB_CAPACITY_GOV,eddf428b-da0e-4115-accf-b29eb0b83965,CDS_DB_CAPACITY_GOV,1ddffef6-4f69-455e-89c7-d5d72105f915,Common Data Service for Apps Database Capacity for Government +Common Data Service Database Capacity for Government,CDS_DB_CAPACITY_GOV,eddf428b-da0e-4115-accf-b29eb0b83965,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Common Data Service Log Capacity,CDS_LOG_CAPACITY,448b063f-9cc6-42fc-a0e6-40e08724a395,CDS_LOG_CAPACITY,dc48f5c5-e87d-43d6-b884-7ac4a59e7ee9,Common Data Service for Apps Log Capacity +Common Data Service Log Capacity,CDS_LOG_CAPACITY,448b063f-9cc6-42fc-a0e6-40e08724a395,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Communications Credits,MCOPSTNC,47794cd0-f0e5-45c5-9033-2eb6b5fc84e0,MCOPSTNC,505e180f-f7e0-4b65-91d4-00d670bbd18c,COMMUNICATIONS CREDITS +Compliance Manager Premium Assessment Add-On,CMPA_addon,8a5fbbed-8b8c-41e5-907e-c50c471340fd,COMPLIANCE_MANAGER_PREMIUM_ASSESSMENT_ADDON,3a117d30-cfac-4f00-84ac-54f8b6a18d78,Compliance Manager Premium Assessment Add-On +Compliance Manager Premium Assessment Add-On for GCC,CMPA_addon_GCC,a9d7ef53-9bea-4a2a-9650-fa7df58fe094,COMPLIANCE_MANAGER_PREMIUM_ASSESSMENT_ADDON,3a117d30-cfac-4f00-84ac-54f8b6a18d78,Compliance Manager Premium Assessment Add-On +Compliance Program for Microsoft Cloud,Compliance_Program_for_Microsoft_Cloud,10dd46b2-c5ad-4de3-865c-a6fa1363fb51,CPMC,1265e154-5544-4197-bba1-03ef69c3b180,Compliance Program for Microsoft Cloud +Defender Threat Intelligence,Defender_Threat_Intelligence,a9c51c15-ffad-4c66-88c0-8771455c832d,THREAT_INTELLIGENCE_APP,fbdb91e6-7bfd-4a1f-8f7a-d27f4ef39702,Defender Threat Intelligence +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_CHAT_FPA_GOV,b9f7ce72-67ff-4695-a9d9-5ff620232024,Dynamics 365 Customer Service Chat Application Integration for Government +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_MESSAGING_GOV,e304c3c3-f86c-4200-b174-1ade48805b22,Dynamics 365 Customer Service Digital Messaging application integration for Government +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_CHAT_GOV,ffb878a5-3184-472b-800b-65eadc63d764,Dynamics 365 for Customer Service Chat for Government +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,POWER_VIRTUAL_AGENTS_D365_CS_CHAT_GOV,9023fe69-f9e0-4c1e-bfde-654954469162,Power Virtual Agents for Chat for Gov +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING_GOV,e501d49b-1176-4816-aece-2563c0d995db,Power Virtual Agents for Digital Messaging for Gov +Dynamics 365 - Additional Database Storage (Qualified Offer),CRMSTORAGE,328dc228-00bc-48c6-8b09-1fbc8bc3435d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 - Additional Database Storage (Qualified Offer),CRMSTORAGE,328dc228-00bc-48c6-8b09-1fbc8bc3435d,CRMSTORAGE,77866113-0f3e-4e6e-9666-b1e25c6f99b0,Microsoft Dynamics CRM Online Storage Add-On +Dynamics 365 - Additional Production Instance (Qualified Offer),CRMINSTANCE,9d776713-14cb-4697-a21d-9a52455c738a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 - Additional Production Instance (Qualified Offer),CRMINSTANCE,9d776713-14cb-4697-a21d-9a52455c738a,CRMINSTANCE,eeea837a-c885-4167-b3d5-ddde30cbd85f,Microsoft Dynamics CRM Online Instance +Dynamics 365 - Additional Non-Production Instance (Qualified Offer),CRMTESTINSTANCE,e06abcc2-7ec5-4a79-b08b-d9c282376f72,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 - Additional Non-Production Instance (Qualified Offer),CRMTESTINSTANCE,e06abcc2-7ec5-4a79-b08b-d9c282376f72,CRMTESTINSTANCE,a98b7619-66c7-4885-bdfc-1d9c8c3d279f,Microsoft Dynamics CRM Online Additional Test Instance +Dynamics 365 AI for Market Insights (Preview),SOCIAL_ENGAGEMENT_APP_USER,c6df1e30-1c9f-427f-907c-3d913474a1c7,SOCIAL_ENGAGEMENT_APP_USER,339f4def-5ad8-4430-8d12-da5fd4c769a7,Dynamics 365 AI for Market Insights - Free +Dynamics 365 AI for Market Insights (Preview),SOCIAL_ENGAGEMENT_APP_USER,c6df1e30-1c9f-427f-907c-3d913474a1c7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Asset Management Addl Assets,DYN365_ASSETMANAGEMENT,673afb9d-d85b-40c2-914e-7bf46cd5cd75,D365_AssetforSCM,90467813-5b40-40d4-835c-abd48009b1d9,Asset Maintenance Add-in +Dynamics 365 Asset Management Addl Assets,DYN365_ASSETMANAGEMENT,673afb9d-d85b-40c2-914e-7bf46cd5cd75,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Additional Environment Addon,DYN365_BUSCENTRAL_ADD_ENV_ADDON,a58f5506-b382-44d4-bfab-225b2fbf8390,DYN365_BUSCENTRAL_ENVIRONMENT,d397d6c6-9664-4502-b71c-66f39c400ca4,Dynamics 365 Business Central Additional Environment Addon +Dynamics 365 Business Central Database Capacity,DYN365_BUSCENTRAL_DB_CAPACITY,7d0d4f9a-2686-4cb8-814c-eff3fdab6d74,DYN365_BUSCENTRAL_DB_CAPACITY,ae6b27b3-fe31-4e77-ae06-ec5fabbc103a,Dynamics 365 Business Central Database Capacity +Dynamics 365 Business Central Database Capacity,DYN365_BUSCENTRAL_DB_CAPACITY,7d0d4f9a-2686-4cb8-814c-eff3fdab6d74,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Essentials,DYN365_BUSCENTRAL_ESSENTIAL,2880026b-2b0c-4251-8656-5d41ff11e3aa,DYN365_FINANCIALS_BUSINESS,920656a2-7dd8-4c83-97b6-a356414dbd36,Dynamics 365 for Business Central Essentials +Dynamics 365 Business Central Essentials,DYN365_BUSCENTRAL_ESSENTIAL,2880026b-2b0c-4251-8656-5d41ff11e3aa,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Essentials,DYN365_BUSCENTRAL_ESSENTIAL,2880026b-2b0c-4251-8656-5d41ff11e3aa,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Flow for Dynamics 365 +Dynamics 365 Business Central Essentials,DYN365_BUSCENTRAL_ESSENTIAL,2880026b-2b0c-4251-8656-5d41ff11e3aa,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,PowerApps for Dynamics 365 +Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,DYN365_BUSCENTRAL_ESSENTIALS_ATTACH,17ca446c-d7a4-4d29-8dec-8e241592164b,Dynamics 365 Business Central Essentials Attach +Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Business Central External Accountant,DYN365_FINANCIALS_ACCOUNTANT_SKU,9a1e33ed-9697-43f3-b84c-1b0959dbb1d4,DYN365_FINANCIALS_ACCOUNTANT,170991d7-b98e-41c5-83d4-db2052e1795f,Dynamics 365 Business Central External Accountant +Dynamics 365 Business Central External Accountant,DYN365_FINANCIALS_ACCOUNTANT_SKU,9a1e33ed-9697-43f3-b84c-1b0959dbb1d4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central External Accountant,DYN365_FINANCIALS_ACCOUNTANT_SKU,9a1e33ed-9697-43f3-b84c-1b0959dbb1d4,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Flow for Dynamics 365 +Dynamics 365 Business Central External Accountant,DYN365_FINANCIALS_ACCOUNTANT_SKU,9a1e33ed-9697-43f3-b84c-1b0959dbb1d4,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,PowerApps for Dynamics 365 +Dynamics 365 Business Central for IWs,PROJECT_MADEIRA_PREVIEW_IW_SKU,6a4a1628-9b9a-424d-bed5-4118f0ede3fd,PROJECT_MADEIRA_PREVIEW_IW,3f2afeed-6fb5-4bf9-998f-f2912133aead,Dynamics 365 Business Central for IWs +Dynamics 365 Business Central for IWs,PROJECT_MADEIRA_PREVIEW_IW_SKU,6a4a1628-9b9a-424d-bed5-4118f0ede3fd,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Premium,DYN365_BUSCENTRAL_PREMIUM,f991cecc-3f91-4cd0-a9a8-bf1c8167e029,DYN365_BUSCENTRAL_PREMIUM,8e9002c0-a1d8-4465-b952-817d2948e6e2,Dynamics 365 Business Central Premium +Dynamics 365 Business Central Premium,DYN365_BUSCENTRAL_PREMIUM,f991cecc-3f91-4cd0-a9a8-bf1c8167e029,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Premium,DYN365_BUSCENTRAL_PREMIUM,f991cecc-3f91-4cd0-a9a8-bf1c8167e029,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Flow for Dynamics 365 +Dynamics 365 Business Central Premium,DYN365_BUSCENTRAL_PREMIUM,f991cecc-3f91-4cd0-a9a8-bf1c8167e029,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,PowerApps for Dynamics 365 +Dynamics 365 Business Central Team Members,DYN365_BUSCENTRAL_TEAM_MEMBER,2e3c4023-80f6-4711-aa5d-29e0ecb46835,DYN365_FINANCIALS_TEAM_MEMBERS,d9a6391b-8970-4976-bd94-5f205007c8d8,Dynamics 365 for Team Members +Dynamics 365 Business Central Team Members,DYN365_BUSCENTRAL_TEAM_MEMBER,2e3c4023-80f6-4711-aa5d-29e0ecb46835,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Team Members,DYN365_BUSCENTRAL_TEAM_MEMBER,2e3c4023-80f6-4711-aa5d-29e0ecb46835,POWERAPPS_DYN_TEAM,52e619e2-2730-439a-b0d3-d09ab7e8b705,Power Apps for Dynamics 365 +Dynamics 365 Business Central Team Members,DYN365_BUSCENTRAL_TEAM_MEMBER,2e3c4023-80f6-4711-aa5d-29e0ecb46835,FLOW_DYN_TEAM,1ec58c70-f69c-486a-8109-4b87ce86e449,Power Automate for Dynamics 365 +Dynamics 365 Commerce Trial,DYN365_RETAIL_TRIAL,1508ad2d-5802-44e6-bfe8-6fb65de63d28,DYN365_RETAIL_TRIAL,874d6da5-2a67-45c1-8635-96e8b3e300ea,Dynamics 365 for Retail Trial +Dynamics 365 Commerce Trial,DYN365_RETAIL_TRIAL,1508ad2d-5802-44e6-bfe8-6fb65de63d28,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,DYN365_ENTERPRISE_P1,d56f3deb-50d8-465a-bedb-f079817ccac1,Dynamics 365 Customer Engagement Plan +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,D365_CSI_EMBED_CE,1412cdc1-d593-4ad1-9050-40c30ad0b023,Dynamics 365 Customer Service Insights for CE Plan +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,D365_ProjectOperationsCDS,18fa3aba-b085-4105-87d7-55617b8585e6,Dynamics 365 Project Operations CDS +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,Forms_Pro_CE,97f29a83-1a20-44ff-bf48-5e4ad11f3e51,Microsoft Dynamics 365 Customer Voice for Customer Engagement Plan +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,Retired - Microsoft Social Engagement +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,D365_ProjectOperations,69f07c66-bee4-4222-b051-195095efee5b,Dynamics 365 Project Operations +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,DYN365_CDS_GUIDES,1315ade1-0410-450d-b8e3-8050e6da320f,Common Data Service +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Dynamics 365 Remote Assist +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,PROJECT_FOR_PROJECT_OPERATIONS,0a05d977-a21a-45b2-91ce-61c240dbafa2,Project for Project Operations +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,Project Online Service +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,POWERAPPS_DYN_P2,0b03f40b-c404-40c3-8651-2aceb74365fa,Power Apps for Dynamics 365 +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,FLOW_DYN_P2,b650d915-9886-424b-a08d-633cede56f57,Power Automate for Dynamics 365 +Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,CDS_CUSTOMER_INSIGHTS_BASE,d04ca659-b119-4a92-b8fc-3ede584a9d65,Dataverse for Customer Insights BASE +Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,CDS_CUSTOMER_INSIGHTS,ca00cff5-2568-4d03-bb6c-a653a8f360ca,Common Data Service for Customer Insights +Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,DYN365_CUSTOMER_INSIGHTS_BASE,ee85d528-c4b4-4a99-9b07-fb9a1365dc93,Dynamics 365 Customer Insights +Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,Customer_Voice_Customer_Insights,46c5ea0a-2343-49d9-ae4f-1c268b232d53,Microsoft Dynamics 365 Customer Voice for Customer Insights App +Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Customer Service Digital Messaging add-on for Government,DYN365_CS_MESSAGING_GOV,336dfe1f-3b33-4ab4-b395-cba8f614976d,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government +Dynamics 365 for Customer Service Digital Messaging add-on for Government,DYN365_CS_MESSAGING_GOV,336dfe1f-3b33-4ab4-b395-cba8f614976d,DYN365_CS_MESSAGING_GOV,e304c3c3-f86c-4200-b174-1ade48805b22,Dynamics 365 Customer Service Digital Messaging application integration for Government +Dynamics 365 for Customer Service Digital Messaging add-on for Government,DYN365_CS_MESSAGING_GOV,336dfe1f-3b33-4ab4-b395-cba8f614976d,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING_GOV,e501d49b-1176-4816-aece-2563c0d995db,Power Virtual Agents for Digital Messaging for Gov +Dynamics 365 for Customer Service Digital Messaging add-on for Government,DYN365_CS_MESSAGING_GOV,336dfe1f-3b33-4ab4-b395-cba8f614976d,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,DYN365_CS_VOICE_GOV,411b0c93-8f89-455e-a663-c0a3effd12c3,Dynamics 365 for Customer Service Voice Add-in for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,POWER_VIRTUAL_AGENTS_D365_CS_VOICE_GOV,cad9c719-36e0-43c7-9506-6886f272d4f0,Power Virtual Agents for Customer Service Voice for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING_GOV,e501d49b-1176-4816-aece-2563c0d995db,Power Virtual Agents for Digital Messaging for Gov +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,DYN365_CS_VOICE_GOV,411b0c93-8f89-455e-a663-c0a3effd12c3,Dynamics 365 for Customer Service Voice Add-in for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,POWER_VIRTUAL_AGENTS_D365_CS_VOICE_GOV,cad9c719-36e0-43c7-9506-6886f272d4f0,Power Virtual Agents for Customer Service Voice for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING_GOV,e501d49b-1176-4816-aece-2563c0d995db,Power Virtual Agents for Digital Messaging for Gov +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Customer Service Chat for Government,DYN365_CS_CHAT_GOV,1b399f66-be2a-479c-a79d-84a43a46f79e,DYN365_CS_CHAT_FPA_GOV,b9f7ce72-67ff-4695-a9d9-5ff620232024,Dynamics 365 Customer Service Chat Application Integration for Government +Dynamics 365 for Customer Service Chat for Government,DYN365_CS_CHAT_GOV,1b399f66-be2a-479c-a79d-84a43a46f79e,DYN365_CS_CHAT_GOV,ffb878a5-3184-472b-800b-65eadc63d764,Dynamics 365 for Customer Service Chat for Government +Dynamics 365 for Customer Service Chat for Government,DYN365_CS_CHAT_GOV,1b399f66-be2a-479c-a79d-84a43a46f79e,POWER_VIRTUAL_AGENTS_D365_CS_CHAT_GOV,9023fe69-f9e0-4c1e-bfde-654954469162,Power Virtual Agents for Chat for Gov +Dynamics 365 for Customer Service Chat for Government,DYN365_CS_CHAT_GOV,1b399f66-be2a-479c-a79d-84a43a46f79e,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,D365_CSI_EMBED_CSEnterprise,5b1e5982-0e88-47bb-a95e-ae6085eda612,Dynamics 365 Customer Service Insights for CS Enterprise +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,DYN365_ENTERPRISE_CUSTOMER_SERVICE,99340b49-fb81-4b1e-976b-8f2ae8e9394f,Dynamics 365 for Customer Service +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING,2d2f174c-c3cc-4abe-9ce8-4dd86f469ab1,Power Virtual Agents for Digital Messaging +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Customer Service Voice Channel Add-in,DYN365_CS_VOICE,dadd2312-b5b1-4fa0-8c15-0903de3e2303,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Customer Service Voice Channel Add-in,DYN365_CS_VOICE,dadd2312-b5b1-4fa0-8c15-0903de3e2303,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Customer Service Voice Channel Add-in,DYN365_CS_VOICE,dadd2312-b5b1-4fa0-8c15-0903de3e2303,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,CDS_CUSTOMER_INSIGHTS_BASE,d04ca659-b119-4a92-b8fc-3ede584a9d65,Dataverse for Cust Insights BASE +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,CDS_CUSTOMER_INSIGHTS,ca00cff5-2568-4d03-bb6c-a653a8f360ca,Common Data Service for Customer Insights +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,DYN365_CUSTOMER_INSIGHTS_BASE,ee85d528-c4b4-4a99-9b07-fb9a1365dc93,Dynamics 365 Customer Insights +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,DYN365_CUSTOMER_INSIGHTS_ENGAGEMENT_INSIGHTS_BASE,b3c26516-3b8d-492f-a5a3-64d70ad3f8d0,Dynamics 365 Customer Insights Engagement Insights +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,Customer_Voice_Customer_Insights,46c5ea0a-2343-49d9-ae4f-1c268b232d53,Microsoft Dynamics 365 Customer Voice for Customer Insights App +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Insights vTrial,DYN365_CUSTOMER_INSIGHTS_VIRAL,036c2481-aa8a-47cd-ab43-324f0c157c2d,CDS_CUSTOMER_INSIGHTS_TRIAL,94e5cbf6-d843-4ee8-a2ec-8b15eb52019e,Common Data Service for Customer Insights Trial +Dynamics 365 Customer Insights vTrial,DYN365_CUSTOMER_INSIGHTS_VIRAL,036c2481-aa8a-47cd-ab43-324f0c157c2d,DYN365_CUSTOMER_INSIGHTS_ENGAGEMENT_INSIGHTS_BASE_TRIAL,e2bdea63-235e-44c6-9f5e-5b0e783f07dd,Dynamics 365 Customer Insights Engagement Insights Viral +Dynamics 365 Customer Insights vTrial,DYN365_CUSTOMER_INSIGHTS_VIRAL,036c2481-aa8a-47cd-ab43-324f0c157c2d,DYN365_CUSTOMER_INSIGHTS_VIRAL,ed8e8769-94c5-4132-a3e7-7543b713d51f,Dynamics 365 Customer Insights Viral Plan +Dynamics 365 Customer Insights vTrial,DYN365_CUSTOMER_INSIGHTS_VIRAL,036c2481-aa8a-47cd-ab43-324f0c157c2d,Forms_Pro_Customer_Insights,fe581650-cf61-4a09-8814-4bd77eca9cb5,Microsoft Dynamics 365 Customer Voice for Customer Insights +Dynamics 365 for Customer Service Enterprise Attach to Qualifying Dynamics 365 Base Offer A,D365_CUSTOMER_SERVICE_ENT_ATTACH,eb18b715-ea9d-4290-9994-2ebf4b5042d2,D365_CUSTOMER_SERVICE_ENT_ATTACH,61a2665f-1873-488c-9199-c3d0bc213fdf,Dynamics 365 for Customer Service Enterprise Attach +Dynamics 365 for Customer Service Enterprise Attach to Qualifying Dynamics 365 Base Offer A,D365_CUSTOMER_SERVICE_ENT_ATTACH,eb18b715-ea9d-4290-9994-2ebf4b5042d2,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Customer Service Enterprise Attach to Qualifying Dynamics 365 Base Offer A,D365_CUSTOMER_SERVICE_ENT_ATTACH,eb18b715-ea9d-4290-9994-2ebf4b5042d2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,dc6643d9-1e72-4dce-9f64-1d6eac1f1c5a,Dynamics 365 for Customer Service for Government +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,Forms_Pro_Service_GCC,bb681a9b-58f5-42ee-9926-674325be8aaa,Microsoft Dynamics 365 Customer Voice for Customer Service Enterprise for GCC +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,CCIBOTS_PRIVPREV_VIRAL,ce312d15-8fdf-44c0-9974-a25a177125ee,Dynamics 365 AI for Customer Service Virtual Agents Viral +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,DYN365_CS_MESSAGING_VIRAL_TRIAL,3bf52bdf-5226-4a97-829e-5cca9b3f3392,Dynamics 365 Customer Service Digital Messaging vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,DYN365_CS_ENTERPRISE_VIRAL_TRIAL,94fb67d3-465f-4d1f-a50a-952da079a564,Dynamics 365 Customer Service Enterprise vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,DYNB365_CSI_VIRAL_TRIAL,33f1466e-63a6-464c-bf6a-d1787928a56a,Dynamics 365 Customer Service Insights vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,DYN365_CS_VOICE_VIRAL_TRIAL,3de81e39-4ce1-47f7-a77f-8473d4eb6d7c,Dynamics 365 Customer Service Voice vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,POWER_APPS_DYN365_VIRAL_TRIAL,54b37829-818e-4e3c-a08a-3ea66ab9b45d,Power Apps for Dynamics 365 vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,POWER_AUTOMATE_DYN365_VIRAL_TRIAL,81d4ecb8-0481-42fb-8868-51536c5aceeb,Power Automate for Dynamics 365 vTrial +Dynamics 365 Customer Service Insights Trial,DYN365_AI_SERVICE_INSIGHTS,61e6bd70-fbdb-4deb-82ea-912842f39431,DYN365_AI_SERVICE_INSIGHTS,4ade5aa6-5959-4d2c-bf0a-f4c9e2cc00f2,Dynamics 365 AI for Customer Service Trial +Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,DYN365_CDS_FORMS_PRO,363430d1-e3f7-43bc-b07b-767b6bb95e4b,Common Data Service +Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,FORMS_PRO,17efdd9f-c22c-4ad8-b48e-3b1f3ee1dc9a,Dynamics 365 Customer Voice +Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,FLOW_FORMS_PRO,57a0746c-87b8-4405-9397-df365a9db793,Power Automate for Dynamics 365 Customer Voice +Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,DYN365_CUSTOMER_SERVICE_PRO,6929f657-b31b-4947-b4ce-5066c3214f54,Dynamics 365 for Customer Service Pro +Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web +Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,POWERAPPS_CUSTOMER_SERVICE_PRO,c507b04c-a905-4940-ada6-918891e6d3ad,Power Apps for Customer Service Pro +Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,FLOW_CUSTOMER_SERVICE_PRO,0368fc9c-3721-437f-8b7d-3d0f888cdefc,Power Automate for Customer Service Pro +Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 for Customer Service Professional Attach to Qualifying Dynamics 365 Base Offer,D365_CUSTOMER_SERVICE_PRO_ATTACH,19dec69d-d9f3-4792-8a39-d8ecdf51937b,D365_CUSTOMER_SERVICE_PRO_ATTACH,a9dd2dca-10ae-4da2-aaf0-d3fe8a825110,Dynamics 365 for Customer Service Pro Attach +Dynamics 365 for Customer Service Professional Attach to Qualifying Dynamics 365 Base Offer,D365_CUSTOMER_SERVICE_PRO_ATTACH,19dec69d-d9f3-4792-8a39-d8ecdf51937b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Voice,DYN365_CUSTOMER_VOICE_BASE,359ea3e6-8130-4a57-9f8f-ad897a0342f1,Customer_Voice_Base,296820fe-dce5-40f4-a4f2-e14b8feef383,Dynamics 365 Customer Voice Base Plan +Dynamics 365 Customer Voice,DYN365_CUSTOMER_VOICE_BASE,359ea3e6-8130-4a57-9f8f-ad897a0342f1,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Voice Additional Responses,Forms_Pro_AddOn,446a86f8-a0cb-4095-83b3-d100eb050e3d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Voice Additional Responses,Forms_Pro_AddOn,446a86f8-a0cb-4095-83b3-d100eb050e3d,Forms_Pro_AddOn,90a816f6-de5f-49fd-963c-df490d73b7b5,Microsoft Dynamics 365 Customer Voice Add-on +Dynamics 365 Customer Voice Additional Responses,DYN365_CUSTOMER_VOICE_ADDON,65f71586-ade3-4ce1-afc0-1b452eaf3782,CUSTOMER_VOICE_ADDON,e6e35e2d-2e7f-4e71-bc6f-2f40ed062f5d,Dynamics Customer Voice Add-On +Dynamics 365 Customer Voice Additional Responses,DYN365_CUSTOMER_VOICE_ADDON,65f71586-ade3-4ce1-afc0-1b452eaf3782,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Voice USL,Forms_Pro_USL,e2ae107b-a571-426f-9367-6d4c8f1390ba,CDS_FORM_PRO_USL,e9830cfd-e65d-49dc-84fb-7d56b9aa2c89,Common Data Service +Dynamics 365 Customer Voice USL,Forms_Pro_USL,e2ae107b-a571-426f-9367-6d4c8f1390ba,Forms_Pro_USL,3ca0766a-643e-4304-af20-37f02726339b,Microsoft Dynamics 365 Customer Voice USL +Dynamics 365 Customer Voice USL,Forms_Pro_USL,e2ae107b-a571-426f-9367-6d4c8f1390ba,FLOW_FORMS_PRO,57a0746c-87b8-4405-9397-df365a9db793,Power Automate for Dynamics 365 Customer Voice +Dynamics 365 Enterprise Edition - Additional Database Storage for Government,CRMSTORAGE_GCC,4aed5dd6-eb9c-4143-8f14-368d70287121,CRMSTORAGE_GCC,62edd427-6067-4274-93c4-29afdeb30707,Microsoft Dynamics CRM Online Storage Add-On +Dynamics 365 Enterprise Edition - Additional Database Storage for Government,CRMSTORAGE_GCC,4aed5dd6-eb9c-4143-8f14-368d70287121,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Enterprise Edition - Additional Portal for Government,CRM_ONLINE_PORTAL_GCC,cb9bc974-a47b-4123-998d-a383390168cc,CRM_ONLINE_PORTAL_GCC,eac6b45b-aa89-429f-a37b-c8ce00e8367e,Microsoft Dynamics CRM Online - Portal Add-On +Dynamics 365 Enterprise Edition - Additional Portal for Government,CRM_ONLINE_PORTAL_GCC,cb9bc974-a47b-4123-998d-a383390168cc,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Enterprise Edition - Additional Portal for Government,CRM_ONLINE_PORTAL_NOPREREQ,67f58b51-af53-4344-9663-9a2beb1d8a8e,CRM_ONLINE_PORTAL_GCC,eac6b45b-aa89-429f-a37b-c8ce00e8367e,Microsoft Dynamics CRM Online - Portal Add-On +Dynamics 365 Enterprise Edition - Additional Portal for Government,CRM_ONLINE_PORTAL_NOPREREQ,67f58b51-af53-4344-9663-9a2beb1d8a8e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Enterprise Edition - Additional Portal (Qualified Offer),CRM_ONLINE_PORTAL,a4bfb28e-becc-41b0-a454-ac680dc258d3,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Enterprise Edition - Additional Portal (Qualified Offer),CRM_ONLINE_PORTAL,a4bfb28e-becc-41b0-a454-ac680dc258d3,CRM_ONLINE_PORTAL,1d4e9cb1-708d-449c-9f71-943aa8ed1d6a,Microsoft Dynamics CRM Online - Portal Add-On +Dynamics 365 Enterprise Edition - Additional Non-Production Instance for Government,CRMTESTINSTANCE_GCC,1d2756cb-2147-4b05-b4d5-f013c022dcb9,CRMTESTINSTANCE_GCC,6d99eb83-7b5f-4947-8e99-cc12f1adb399,Microsoft Dynamics CRM Online Additional Non-production Instance +Dynamics 365 Enterprise Edition - Additional Non-Production Instance for Government,CRMTESTINSTANCE_GCC,1d2756cb-2147-4b05-b4d5-f013c022dcb9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 - Additional Non-Production Instance for Government,CRMTESTINSTANCE_NOPREREQ,2cf302fe-62db-4e20-b573-e0998b1208b5,CRMTESTINSTANCE_GCC,6d99eb83-7b5f-4947-8e99-cc12f1adb399,Microsoft Dynamics CRM Online Additional Non-production Instance +Dynamics 365 - Additional Non-Production Instance for Government,CRMTESTINSTANCE_NOPREREQ,2cf302fe-62db-4e20-b573-e0998b1208b5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Enterprise Edition - Additional Production Instance for Government,CRMINSTANCE_GCC,2bd3cb20-1bb6-446b-b4d0-089af3a05c52,CRMINSTANCE_GCC,483cc331-f4df-4a3b-b8ca-fe1a247569f6,Microsoft Dynamics CRM Online Instance +Dynamics 365 Enterprise Edition - Additional Production Instance for Government,CRMINSTANCE_GCC,2bd3cb20-1bb6-446b-b4d0-089af3a05c52,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Dynamics 365 Field Service, Enterprise Edition - Resource Scheduling Optimization",CRM_AUTO_ROUTING_ADDON,977464c4-bfaf-4b67-b761-a9bb735a2196,CRM_AUTO_ROUTING_ENGINE_ADDON,24435e4b-87d0-4d7d-8beb-63a9b1573022,Field Service – Automated Routing Engine Add-On +"Dynamics 365 Field Service, Enterprise Edition - Resource Scheduling Optimization",CRM_AUTO_ROUTING_ADDON,977464c4-bfaf-4b67-b761-a9bb735a2196,CRM_AUTO_ROUTING_ADDON,2ba394e0-6f18-4b77-b45f-a5663bbab540,RETIRED - Field Service – Automated Routing Engine Add-On +"Dynamics 365 Field Service, Enterprise Edition - Resource Scheduling Optimization",CRM_AUTO_ROUTING_ADDON,977464c4-bfaf-4b67-b761-a9bb735a2196,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Field Service Contractor,D365_FIELD_SERVICE_CONTRACTOR,23e6e135-e869-4ce4-9ae4-5710cd69ac13,CDS_FIELD_SERVICE_CONTRACTOR,f4614a66-d632-443a-bc77-afe92987b322,Common Data Service Field service Part Time Contractors +Dynamics 365 Field Service Contractor,D365_FIELD_SERVICE_CONTRACTOR,23e6e135-e869-4ce4-9ae4-5710cd69ac13,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Field Service Contractor,D365_FIELD_SERVICE_CONTRACTOR,23e6e135-e869-4ce4-9ae4-5710cd69ac13,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Field Service Contractor for Government,D365_FIELD_SERVICE_CONTRACTOR_GOV,e7965e3a-1f49-4d67-a3de-ad1ce460bbcc,CDS_FIELD_SERVICE_CONTRACTOR_GCC,2457fe40-65be-48a1-935f-924ad6e62dba,Common Data Service Field service Part Time Contractors for Government +Dynamics 365 Field Service Contractor for Government,D365_FIELD_SERVICE_CONTRACTOR_GOV,e7965e3a-1f49-4d67-a3de-ad1ce460bbcc,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 Field Service Contractor for Government,D365_FIELD_SERVICE_CONTRACTOR_GOV,e7965e3a-1f49-4d67-a3de-ad1ce460bbcc,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial +Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,DYN365_FS_ENTERPRISE_VIRAL_TRIAL,20d1455b-72b2-4725-8354-a177845ab77d,Dynamics 365 Field Service Enterprise vTrial +Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,POWER_APPS_DYN365_VIRAL_TRIAL,54b37829-818e-4e3c-a08a-3ea66ab9b45d,Power Apps for Dynamics 365 vTrial +Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,POWER_AUTOMATE_DYN365_VIRAL_TRIAL,81d4ecb8-0481-42fb-8868-51536c5aceeb,Power Automate for Dynamics 365 vTrial +Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,DYN365_CDS_FINANCE,e95d7060-d4d9-400a-a2bd-a244bf0b609e,Common Data Service for Dynamics 365 Finance +Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,Dynamics 365 for Finance and Operations Enterprise edition - Regulatory Service +Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,D365_Finance,9f0e1b4e-9b33-4300-b451-b2c662cd4ff7,Microsoft Dynamics 365 for Finance +Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,CDS_AI_Capacity_FI,5d85ec34-44e5-43b6-a9aa-d1b4c1d3aa3b,AI Builder Capacity Add-on +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,DYN365_CDS_FINANCE,e95d7060-d4d9-400a-a2bd-a244bf0b609e,Common Data Service for Dynamics 365 Finance +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,D365_Finance_Attach,223e33cb-eee0-462d-b1bd-e9a5febf8e85,Dynamics 365 for Finance Attach +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,D365_ProjectOperationsCDSAttach,e564d403-7eaf-4c91-b92f-bb0dc62026e1,Dynamics 365 Project Operations CDS Attach +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,CDS_AI_Capacity_FI,5d85ec34-44e5-43b6-a9aa-d1b4c1d3aa3b,AI Builder Capacity Add-on +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,D365_Finance_Attach,223e33cb-eee0-462d-b1bd-e9a5febf8e85,Dynamics 365 for Finance Attach +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,D365_ProjectOperationsAttach,fa7675bd-6717-40e7-8172-d0bbcbe1ab12,Dynamics 365 Project Operations Attach +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,PROJECT_FOR_PROJECT_OPERATIONS_ATTACH,6d8e07c6-9613-484f-8cc1-a66c5c3979bb,Project for Project Operations Attach +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,DYN365_ENTERPRISE_CASE_MANAGEMENT,2822a3a1-9b8f-4432-8989-e11669a60dc8,Dynamics 365 for Case Management +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,Retired - Microsoft Social Engagement +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,79bb0a8d-e686-4e16-ac59-2b3fd0014a61,Dynamics 365 for Case Management for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,79bb0a8d-e686-4e16-ac59-2b3fd0014a61,Dynamics 365 for Case Management for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_CDS_RETAIL,93cc200d-a47f-4c56-aec1-83f8b0d0425a,Common Data Service for Dynamics 365 Retail +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,FLOW_FOR_IOM_USL,9e6d1620-dce9-4655-8933-af8fa5bccc9c,Data Integration for IOM with Power Automate USL +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,CDS_FOR_IOM,2bb89402-51e9-4c5a-be33-e954a9dd1ba6,Dataverse for IOM +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_RETAIL,117e3aa0-8d08-4a19-a6a5-90b7a96e2128,Dynamics 365 Commerce +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_FP_ACC_PROTECTION,4c00c16c-0304-4421-b598-555c3e78edcb,Dynamics 365 Fraud Protection - Account Protection +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_FP_LOSS_PREVENTION,ecc62904-fa88-4552-a62c-fe582fb31444,Dynamics 365 Fraud Protection - Loss Prevention +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_FP_PURCH_PROTECTION,d703990f-006e-459b-b8dd-1267c4533a22,Dynamics 365 Fraud Protection - Purchase Protection +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_IOM,616cf6e2-f52f-4738-b463-10003061fcd3,Dynamics 365 Intelligent Order Management +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_IOM_USER,81375e2f-5ef7-4773-96aa-e3279f50bd21,Dynamics 365 Intelligent Order Management USL +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,DYN365_CC,2a9d72b3-1714-440f-babf-bf92bf9683d8,Dynamics 365 Contact Center +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,DYN365_CC,2a9d72b3-1714-440f-babf-bf92bf9683d8,Dynamics 365 Contact Center +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,DYN365_CC_DIGITAL,0ef2b4e3-0a2b-450d-8c5f-a52203c40f50,Dynamics 365 Contact Center Digital +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,DYN365_CS_MESSAGING,43b076f2-1123-45ba-a339-2e170ee58c53,Dynamics 365 Customer Service Digital Messaging Application Integration +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,DYN365_CC_DIGITAL,0ef2b4e3-0a2b-450d-8c5f-a52203c40f50,Dynamics 365 Contact Center Digital +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,DYN365_CS_MESSAGING,43b076f2-1123-45ba-a339-2e170ee58c53,Dynamics 365 Customer Service Digital Messaging Application Integration +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,DYN365_CC_VOICE,57517633-b4ad-4db8-8c1a-65f443424490,Dynamics 365 Contact Center Voice +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,DYN365_CC_VOICE,57517633-b4ad-4db8-8c1a-65f443424490,Dynamics 365 Contact Center Voice +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,CDS_CUSTOMER_INSIGHTS_BASE,d04ca659-b119-4a92-b8fc-3ede584a9d65,Dataverse for Cust Insights BASE +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,CDS_CUSTOMER_INSIGHTS_COMBINED_BASE,d66ee5da-07d5-49d6-a1d8-45662c3f37be,Dataverse for Customer Insights Combined Base +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,DYN365_CUSTOMER_INSIGHTS_JOURNEYS_BASE,1720c3f7-7da3-4a11-8324-92aad283eb68,Dynamics 365 Customer Insights Journeys +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,Forms_Pro_Marketing_App,22b657cf-0a9e-467b-8a91-5e31f21bc570,Microsoft Dynamics 365 Customer Voice for Marketing Application +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Insights Journeys T3 Interacted People,Dynamics_365_Customer_Insights_Journeys_T3_Interacted_People,05735051-46c0-4c84-9107-bb13d77d0b88,CDS_CUSTOMER_INSIGHTS_JOURNEYS_ADD-ON,2f2e81a6-15de-4041-9f33-73c06fed3801,Dataverse for Customer Insights Journeys add-on +Dynamics 365 Customer Insights Journeys T3 Interacted People,Dynamics_365_Customer_Insights_Journeys_T3_Interacted_People,05735051-46c0-4c84-9107-bb13d77d0b88,DYN365_MARKETING_50K_CONTACT_ADDON,e626a4ec-1ba2-409e-bf75-9bc0bc30cca7,Dynamics 365 for Marketing 50K Addnl Contacts +Dynamics 365 Customer Insights Journeys T3 Interacted People,Dynamics_365_Customer_Insights_Journeys_T3_Interacted_People,05735051-46c0-4c84-9107-bb13d77d0b88,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Insights User License,Dynamics_365_Customer_Insights_User_License,12b5a442-a6f2-49e4-868b-2d7408c2356f,DYN365_MARKETING_MSE_USER,2824c69a-1ac5-4397-8592-eae51cb8b581,Dynamics 365 for Marketing MSE User +Dynamics 365 Customer Insights User License,Dynamics_365_Customer_Insights_User_License,12b5a442-a6f2-49e4-868b-2d7408c2356f,DYN365_MARKETING_USER,5d7a6abc-eebd-46ab-96e1-e4a2f54a2248,Dynamics 365 for Marketing USL +Dynamics 365 Customer Insights User License,Dynamics_365_Customer_Insights_User_License,12b5a442-a6f2-49e4-868b-2d7408c2356f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,DYN365_CS_CHAT_FPA,426ec19c-d5b1-4548-b894-6fe75028c30d,Dynamics 365 Customer Service Chat Application Integration +Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,DYN365_CS_CHAT,f69129db-6dc1-4107-855e-0aaebbcd9dd4,Dynamics 365 for Customer Service Chat +Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,POWER_VIRTUAL_AGENTS_D365_CS_CHAT,19e4c3a8-3ebe-455f-a294-4f3479873ae3,Power Virtual Agents for Chat +Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,D365_CSI_EMBED_CSEnterprise,5b1e5982-0e88-47bb-a95e-ae6085eda612,Dynamics 365 Customer Service Insights for CS Enterprise +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,DYN365_ENTERPRISE_CUSTOMER_SERVICE,99340b49-fb81-4b1e-976b-8f2ae8e9394f,MICROSOFT SOCIAL ENGAGEMENT - SERVICE DISCONTINUATION +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,Forms_Pro_Service,67bf4812-f90b-4db9-97e7-c0bbbf7b2d09,Microsoft Dynamics 365 Customer Voice for Customer Service Enterprise +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,PROJECT ONLINE ESSENTIALS +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,SHAREPOINT ONLINE (PLAN 2) +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,FLOW FOR DYNAMICS 365 +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,POWERAPPS FOR DYNAMICS 365 +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,DYNAMICS 365 FOR CUSTOMER SERVICE +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,dc6643d9-1e72-4dce-9f64-1d6eac1f1c5a,Dynamics 365 for Customer Service for Government +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,Forms_Pro_Service_GCC,bb681a9b-58f5-42ee-9926-674325be8aaa,Microsoft Dynamics 365 Customer Voice for Customer Service Enterprise for GCC +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Field Service Attach to Qualifying Dynamics 365 Base Offer,D365_FIELD_SERVICE_ATTACH,a36cdaa2-a806-4b6e-9ae0-28dbd993c20e,D365_FIELD_SERVICE_ATTACH,55c9148b-d5f0-4101-b5a0-b2727cfc0916,Dynamics 365 for Field Service Attach +Dynamics 365 for Field Service Attach to Qualifying Dynamics 365 Base Offer,D365_FIELD_SERVICE_ATTACH,a36cdaa2-a806-4b6e-9ae0-28dbd993c20e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,Forms_Pro_FS,9c439259-63b0-46cc-a258-72be4313a42d,Microsoft Dynamics 365 Customer Voice for Field Service +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,Retired - Microsoft Social Engagement +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,a9a5be2d-17dd-4d43-ba78-9391e11d20a7,Dynamics 365 for Field Service for Government +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,Forms_Pro_FS_GCC,638862ef-afb3-46e4-b292-ed0aad759476,Microsoft Dynamics 365 Customer Voice for Field Service for GCC +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,a9a5be2d-17dd-4d43-ba78-9391e11d20a7,Dynamics 365 for Field Service for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,Forms_Pro_FS_GCC,638862ef-afb3-46e4-b292-ed0aad759476,Microsoft Dynamics 365 Customer Voice for Field Service for GCC +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Financials Business Edition,DYN365_FINANCIALS_BUSINESS_SKU,cc13a803-544e-4464-b4e4-6d6169a138fa,DYN365_FINANCIALS_BUSINESS,920656a2-7dd8-4c83-97b6-a356414dbd36,FLOW FOR DYNAMICS 365 +Dynamics 365 for Financials Business Edition,DYN365_FINANCIALS_BUSINESS_SKU,cc13a803-544e-4464-b4e4-6d6169a138fa,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,POWERAPPS FOR DYNAMICS 365 +Dynamics 365 for Financials Business Edition,DYN365_FINANCIALS_BUSINESS_SKU,cc13a803-544e-4464-b4e4-6d6169a138fa,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,DYNAMICS 365 FOR FINANCIALS +Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,D365_GUIDES_VIRAL_TRIAL,fe986032-d840-4817-82d4-51fe4fbbe163,Dynamics 365 Guides vTrial +Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,Common Data Service +Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,POWER_APPS_DYN365_VIRAL_TRIAL_MIXED_REALITY,066e2fd1-ba15-40e7-aa96-d6636b1cdf71,Power Apps for Dynamics 365 Mixed Reality +Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,POWER_AUTOMATE_DYN365_VIRAL_TRIAL_MIXED_REALITY,26fa8a18-2812-4b3d-96b4-864818ce26be,Power Automate for Dynamics 365 Mixed Reality +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,Forms_Pro_Talent,1c4ae475-5608-43fa-b3f7-d20e07cf24b4,Microsoft Dynamics 365 Customer Voice for Talent +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,D365_HR_SELF_SERVICE_OPS,835b837b-63c1-410e-bf6b-bdef201ad129,Dynamics 365 Human Resource Self Service +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,D365_HR_OPS,8b21a5dc-5485-49ed-a2d4-0e772c830f6d,Dynamics 365 Human Resources +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,D365_HR_Attach,3219525a-4064-45ec-9c35-a33ea6b39a49,Dynamics 365 Human Resources Attach +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,D365_HR_ATTACH_OPS,90d8cb62-e98a-4639-8342-8c7d2c8215ba,Dynamics 365 Human Resources Attach License +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Hybrid Connector,CRM_HYBRIDCONNECTOR,de176c31-616d-4eae-829a-718918d7ec23,CRM_HYBRIDCONNECTOR,0210d5c8-49d2-4dd1-a01b-a91c7c14e0bf,CRM Hybrid Connector +Dynamics 365 Hybrid Connector,CRM_HYBRIDCONNECTOR,de176c31-616d-4eae-829a-718918d7ec23,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Additional Application,DYN365_MARKETING_APPLICATION_ADDON,99c5688b-6c75-4496-876f-07f0fbd69add,DYN365_MARKETING_APPLICATION_ADDON,51cf0638-4861-40c0-8b20-1161ab2f80be,Dynamics 365 for Marketing Additional Application +Dynamics 365 for Marketing Additional Application,DYN365_MARKETING_APPLICATION_ADDON,99c5688b-6c75-4496-876f-07f0fbd69add,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Addnl Contacts Tier 1,DYN365_MARKETING_CONTACT_ADDON,fc4581aa-6b1f-459d-95b6-84bd49d6f843,DYN365_MARKETING_CONTACT_ADDON,18db5075-2c70-408d-a82b-929059d782af,Dynamics 365 for Marketing Additional Contacts Tier 1 +Dynamics 365 for Marketing Addnl Contacts Tier 1,DYN365_MARKETING_CONTACT_ADDON,fc4581aa-6b1f-459d-95b6-84bd49d6f843,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Addnl Contacts Tier 3,DYN365_MARKETING_CONTACT_ADDON_T3,23053933-0fda-431f-9a5b-a00fd78444c1,DYN365_MARKETING_50K_CONTACT_ADDON,e626a4ec-1ba2-409e-bf75-9bc0bc30cca7,Dynamics 365 for Marketing 50K Addnl Contacts +Dynamics 365 for Marketing Addnl Contacts Tier 3,DYN365_MARKETING_CONTACT_ADDON_T3,23053933-0fda-431f-9a5b-a00fd78444c1,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Addnl Contacts Tier 5,DYN365_MARKETING_CONTACT_ADDON_T5,d8eec316-778c-4f14-a7d1-a0aca433b4e7,DYN365_MARKETING_50K_CONTACT_ADDON,e626a4ec-1ba2-409e-bf75-9bc0bc30cca7,Dynamics 365 for Marketing 50K Addnl Contacts +Dynamics 365 for Marketing Addnl Contacts Tier 5,DYN365_MARKETING_CONTACT_ADDON_T5,d8eec316-778c-4f14-a7d1-a0aca433b4e7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Additional Non-Prod Application,DYN365_MARKETING_SANDBOX_APPLICATION_ADDON,c393e9bd-2335-4b46-8b88-9e2a86a85ec1,DYN365_MARKETING_SANDBOX_APPLICATION_ADDON,1599de10-5250-4c95-acf2-491f74edce48,Dynamics 365 Marketing Sandbox Application AddOn +Dynamics 365 for Marketing Attach,DYN365_MARKETING_APP_ATTACH,85430fb9-02e8-48be-9d7e-328beb41fa29,DYN365_MARKETING_APP,a3a4fa10-5092-401a-af30-0462a95a7ac8,Dynamics 365 for Marketing +Dynamics 365 for Marketing Attach,DYN365_MARKETING_APP_ATTACH,85430fb9-02e8-48be-9d7e-328beb41fa29,Forms_Pro_Marketing_App,22b657cf-0a9e-467b-8a91-5e31f21bc570,Microsoft Dynamics 365 Customer Voice for Marketing Application +Dynamics 365 for Marketing Attach,DYN365_MARKETING_APP_ATTACH,85430fb9-02e8-48be-9d7e-328beb41fa29,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing USL,D365_MARKETING_USER,4b32a493-9a67-4649-8eb9-9fc5a5f75c12,DYN365_MARKETING_MSE_USER,2824c69a-1ac5-4397-8592-eae51cb8b581,Dynamics 365 for Marketing MSE User +Dynamics 365 for Marketing USL,D365_MARKETING_USER,4b32a493-9a67-4649-8eb9-9fc5a5f75c12,DYN365_MARKETING_USER,5d7a6abc-eebd-46ab-96e1-e4a2f54a2248,Dynamics 365 for Marketing USL +Dynamics 365 for Marketing USL,D365_MARKETING_USER,4b32a493-9a67-4649-8eb9-9fc5a5f75c12,Forms_Pro_Marketing,76366ba0-d230-47aa-8087-b6d55dae454f,Microsoft Dynamics 365 Customer Voice for Marketing +Dynamics 365 for Marketing USL,D365_MARKETING_USER,4b32a493-9a67-4649-8eb9-9fc5a5f75c12,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,D365_CSI_EMBED_CSEnterprise,5b1e5982-0e88-47bb-a95e-ae6085eda612,Dynamics 365 Customer Service Insights for CS Enterprise +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_ENTERPRISE_CUSTOMER_SERVICE,99340b49-fb81-4b1e-976b-8f2ae8e9394f,Dynamics 365 for Customer Service +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_MARKETING_APP,a3a4fa10-5092-401a-af30-0462a95a7ac8,Dynamics 365 for Marketing +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_ENTERPRISE_SALES,2da8e897-7791-486b-b08f-cc63c8129df7,Dynamics 365 for Sales +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,Forms_Pro_FS,9c439259-63b0-46cc-a258-72be4313a42d,Microsoft Dynamics 365 Customer Voice for Field Service +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,Forms_Pro_SalesEnt,8839ef0e-91f1-4085-b485-62e06e7c7987,Microsoft Dynamics 365 Customer Voice for Sales Enterprise +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING,2d2f174c-c3cc-4abe-9ce8-4dd86f469ab1,Power Virtual Agents for Digital Messaging +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Dynamics 365 Remote Assist +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,DYN365_RETAIL_Activity,f06754ec-6d72-4bf6-991c-4cb5413d9932,Dynamics 365 for Retail Activity +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,DYN365_Enterprise_Talent_Attract_Activity,aac5a56b-b02e-4608-8014-b076646d4011,Dynamics 365 for Talent - Attract Experience Activity +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,DYN365_Enterprise_Talent_Onboard_Activity,db225597-e9c2-4d96-8ace-5424744c80f8,Dynamics 365 for Talent - Onboard Experience +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,Dynamics_365_for_Talent_Activity,1f87ee90-5c3a-4cf9-b6fd-e3e8017c26ec,Dynamics 365 for Talent Activity +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,Dynamics_365_for_Operations_Activity,6bddf93e-d6f4-4991-b9fc-30cfdf07ee7b,Dynamics365 for Operations Activity +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,D365CDSforProjectOperations,7df1d500-ca5c-4229-8cea-815bc88798c9,Common Data Service for Dynamics 365 Project Operations +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,D365_ProjectOperationsCDSAttach,e564d403-7eaf-4c91-b92f-bb0dc62026e1,Dynamics 365 Project Operations CDS Attach +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,D365_ProjectOperations,69f07c66-bee4-4222-b051-195095efee5b,Dynamics 365 Project Operations +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,D365_ProjectOperationsAttach,fa7675bd-6717-40e7-8172-d0bbcbe1ab12,Dynamics 365 Project Operations Attach +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,PROJECT_FOR_PROJECT_OPERATIONS_ATTACH,6d8e07c6-9613-484f-8cc1-a66c5c3979bb,Project for Project Operations Attach +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1d8c8e0e-4308-4db5-8a41-b129dbdaea20,Dynamics 365 for Project Service Automation for Government +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,Forms_Pro_PS_GCC,e98256c5-17d0-4987-becc-e991c52d55c6,Microsoft Dynamics 365 Customer Voice for Project Service Automation for GCC +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1d8c8e0e-4308-4db5-8a41-b129dbdaea20,Dynamics 365 for Project Service Automation for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,Forms_Pro_PS_GCC,e98256c5-17d0-4987-becc-e991c52d55c6,Microsoft Dynamics 365 Customer Voice for Project Service Automation for GCC +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,DYN365_ENTERPRISE_P1,d56f3deb-50d8-465a-bedb-f079817ccac1,DYNAMICS 365 CUSTOMER ENGAGEMENT PLAN +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,MICROSOFT SOCIAL ENGAGEMENT - SERVICE DISCONTINUATION +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,PROJECT ONLINE ESSENTIALS +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,DYN365_ENTERPRISE_SALES,2da8e897-7791-486b-b08f-cc63c8129df7,DYNAMICS 365 FOR SALES +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,MICROSOFT SOCIAL ENGAGEMENT - SERVICE DISCONTINUATION +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,PROJECT ONLINE ESSENTIALS +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,DYN365_ENTERPRISE_SALES_GOV,213be507-d547-4f79-bc2c-6196bc54c4a3,Dynamics 365 for Sales for Government +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,DYN365_ENTERPRISE_SALES_GOV,213be507-d547-4f79-bc2c-6196bc54c4a3,Dynamics 365 for Sales for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,Forms_Pro_SalesEnt_GCC,33850b82-0a37-4ebb-a0b2-ee163facd716,Microsoft Dynamics 365 Customer Voice for Sales Enterprise for GCC +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,Microsoft_Viva_Sales_PremiumTrial,8ba1ff15-7bf6-4620-b65c-ecedb6942766,Microsoft Viva Sales Premium & Trial +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,Microsoft_Viva_Sales_PowerAutomate,a933a62f-c3fb-48e5-a0b7-ac92b94b4420,Microsoft Viva Sales Premium with Power Automate +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,DYN365_ENTERPRISE_P1,d56f3deb-50d8-465a-bedb-f079817ccac1,Dynamics 365 Customer Engagement Plan +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,Forms_Pro_Service,67bf4812-f90b-4db9-97e7-c0bbbf7b2d09,Microsoft Dynamics 365 Customer Voice for Customer Service Enterprise +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,DYN365_SALES_INSIGHTS,fedc185f-0711-4cc0-80ed-0a92da1a8384,Dynamics 365 AI for Sales (Embedded) +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,Microsoft_Viva_Sales_PowerAutomate,a933a62f-c3fb-48e5-a0b7-ac92b94b4420,Microsoft Viva Sales Premium with Power Automate +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,Microsoft_Viva_Sales_PremiumTrial,8ba1ff15-7bf6-4620-b65c-ecedb6942766,Microsoft Viva Sales Premium & Trial +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,Forms_Pro_SalesEnt,8839ef0e-91f1-4085-b485-62e06e7c7987,Microsoft Dynamics 365 Customer Voice for Sales Enterprise +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,DYN365_ENTERPRISE_SALES,2da8e897-7791-486b-b08f-cc63c8129df7,Dynamics 365 for Sales +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,DYN365_CDS_SUPPLYCHAINMANAGEMENT,b6a8b974-2956-4e14-ae81-f0384c363528,Common Data Service for Dynamics 365 Supply Chain Management +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,CDS_FOR_IOM,2bb89402-51e9-4c5a-be33-e954a9dd1ba6,Dataverse for IOM +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,D365_SCM_Attach,b21c777f-c2d5-486e-88f6-fc0a3e474271,Dynamics 365 for Supply Chain Management Attach +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Business Edition,DYN365_BUSINESS_MARKETING,238e2f8d-e429-4035-94db-6926be4ffe7b,DYN365_BUSINESS_Marketing,393a0c96-9ba1-4af0-8975-fa2f853a25ac,Dynamics 365 Marketing +Dynamics 365 for Marketing Business Edition,DYN365_BUSINESS_MARKETING,238e2f8d-e429-4035-94db-6926be4ffe7b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Regulatory Service - Enterprise Edition Trial,DYN365_REGULATORY_SERVICE,7ed4877c-0863-4f69-9187-245487128d4f,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,Dynamics 365 for Finance and Operations Enterprise edition - Regulatory Service +Dynamics 365 Regulatory Service - Enterprise Edition Trial,DYN365_REGULATORY_SERVICE,7ed4877c-0863-4f69-9187-245487128d4f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,DYN365_SALES_ENTERPRISE_VIRAL_TRIAL,7f636c80-0961-41b2-94da-9642ccf02de0,Dynamics 365 Sales Enterprise vTrial +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,DYN365_SALES_INSIGHTS_VIRAL_TRIAL,456747c0-cf1e-4b0d-940f-703a01b964cc,Dynamics 365 Sales Insights vTrial +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,POWER_APPS_DYN365_VIRAL_TRIAL,54b37829-818e-4e3c-a08a-3ea66ab9b45d,Power Apps for Dynamics 365 vTrial +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,POWER_AUTOMATE_DYN365_VIRAL_TRIAL,81d4ecb8-0481-42fb-8868-51536c5aceeb,Power Automate for Dynamics 365 vTrial +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,DYN365_SALES_PRO,88d83950-ff78-4e85-aa66-abfc787f8090,Dynamics 365 for Sales Professional +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,POWERAPPS_SALES_PRO,6f9f70ce-138d-49f8-bb8b-2e701b7dde75,Power Apps for Sales Pro +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,PROJECT_ESSENTIALS,f944d685-f762-4371-806d-a1f48e5bea13,Project Online Essentials +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2)Dynamics 365 for Sales Pro Attach +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,DYN365_SALES_PRO_GOV,dd89efa0-5a55-4892-ba30-82e3f8008339,Dynamics 365 for Sales Professional for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,POWERAPPS_SALES_PRO_GOV,12cf31f8-754f-4efe-87a8-167c19e30831,Power Apps for Sales Pro for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,FLOW_SALES_PRO_GOV,e62ffe5b-7612-441f-a72d-c11cf456d33a,Power Automate for Sales Pro for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 For Sales Professional Trial,D365_SALES_PRO_IW,9c7bff7a-3715-4da7-88d3-07f57f8d0fb6,D365_SALES_PRO_IW,73f205fc-6b15-47a5-967e-9e64fdf72d0a,Dynamics 365 for Sales Professional Trial +Dynamics 365 For Sales Professional Trial,D365_SALES_PRO_IW,9c7bff7a-3715-4da7-88d3-07f57f8d0fb6,D365_SALES_PRO_IW_Trial,db39a47e-1f4f-462b-bf5b-2ec471fb7b88,Dynamics 365 for Sales Professional Trial +Dynamics 365 Sales Professional Attach to Qualifying Dynamics 365 Base Offer,D365_SALES_PRO_ATTACH,245e6bf9-411e-481e-8611-5c08595e2988,D365_SALES_PRO_ATTACH,065f3c64-0649-4ec7-9f47-ef5cf134c751,Dynamics 365 for Sales Pro Attach +Dynamics 365 Sales Professional Attach to Qualifying Dynamics 365 Base Offer,D365_SALES_PRO_ATTACH,245e6bf9-411e-481e-8611-5c08595e2988,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,DYN365_CDS_SUPPLYCHAINMANAGEMENT,b6a8b974-2956-4e14-ae81-f0384c363528,COMMON DATA SERVICE FOR DYNAMICS 365 SUPPLY CHAIN MANAGEMENT +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,DYNAMICS 365 FOR FINANCE AND OPERATIONS ENTERPRISE EDITION - REGULATORY SERVICE +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,D365_SCM,1224eae4-0d91-474a-8a52-27ec96a63fe7,DYNAMICS 365 FOR SUPPLY CHAIN MANAGEMENT +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,DYN365_CDS_SUPPLYCHAINMANAGEMENT,b6a8b974-2956-4e14-ae81-f0384c363528,Common Data Service for Dynamics 365 Supply Chain Management +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,FLOW_FOR_IOM_USL,9e6d1620-dce9-4655-8933-af8fa5bccc9c,Data Integration for IOM with Power Automate USL +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,CDS_FOR_IOM,2bb89402-51e9-4c5a-be33-e954a9dd1ba6,Dataverse for IOM +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,D365_DemandPlanning,e8b616eb-1a6d-42b4-84c7-b63870791349,DO NOT USE - Dynamics 365 Supply Chain Management Premium +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,D365_SCM,1224eae4-0d91-474a-8a52-27ec96a63fe7,Dynamics 365 for Supply Chain Management +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,DYN365_IOM,616cf6e2-f52f-4738-b463-10003061fcd3,Dynamics 365 Intelligent Order Management +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,DYN365_IOM_USER,81375e2f-5ef7-4773-96aa-e3279f50bd21,Dynamics 365 Intelligent Order Management USL +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,D365_SCM_Premium,0363c8e5-c30d-4d7c-a621-7b6cab5e0482,Dynamics 365 Supply Chain Management Premium +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,DYN365_CDS_DYN_APPS,2d925ad8-2479-4bd8-bb76-5b80f1d48935,Common Data Service +Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,Dynamics_365_Hiring_Free_PLAN,f815ac79-c5dd-4bcc-9b78-d97f7b817d0d,Dynamics 365 for Talent: Attract +Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,Dynamics_365_Onboarding_Free_PLAN,300b8114-8555-4313-b861-0c115d820f50,Dynamics 365 for Talent: Onboard +Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,Dynamics_365_for_HCM_Trial,5ed38b64-c3b7-4d9f-b1cd-0de18c9c4331,Dynamics 365 for HCM Trial +Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Flow for Dynamics 365 +Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,PowerApps for Dynamics 365 +Dynamics 365 Talent: Attract,Dynamics_365_Hiring_SKU,e561871f-74fa-4f02-abee-5b0ef54dd36d,DYN365_CDS_DYN_APPS,2d925ad8-2479-4bd8-bb76-5b80f1d48935,Common Data Service +Dynamics 365 Talent: Attract,Dynamics_365_Hiring_SKU,e561871f-74fa-4f02-abee-5b0ef54dd36d,Dynamics_365_Hiring_Free_PLAN,f815ac79-c5dd-4bcc-9b78-d97f7b817d0d,Dynamics 365 for Talent: Attract +Dynamics 365 Talent: Attract,Dynamics_365_Hiring_SKU,e561871f-74fa-4f02-abee-5b0ef54dd36d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,Dynamics_365_for_Retail_Team_members,c0454a3d-32b5-4740-b090-78c32f48f0ad,Dynamics 365 for Retail Team members +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYN365_Enterprise_Talent_Attract_TeamMember,643d201a-9884-45be-962a-06ba97062e5e,Dynamics 365 for Talent - Attract Experience Team Member +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYN365_Enterprise_Talent_Onboard_TeamMember,f2f49eef-4b3f-4853-809a-a055c6103fe0,Dynamics 365 for Talent - Onboard Experience +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,Dynamics_365_for_Talent_Team_members,d5156635-0704-4f66-8803-93258f8b2678,Dynamics 365 for Talent Team members +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYN365_ENTERPRISE_TEAM_MEMBERS,6a54b05e-4fab-40e7-9828-428db3b336fa,Dynamics 365 for Team Members +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,Dynamics_365_for_Operations_Team_members,f5aa7b45-8a36-4cd1-bc37-5d06dea98645,Dynamics_365_for_Operations_Team_members +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Dynamics 365 Remote Assist +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,POWERAPPS_DYN_TEAM,52e619e2-2730-439a-b0d3-d09ab7e8b705,Power Apps for Dynamics 365 +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,FLOW_DYN_TEAM,1ec58c70-f69c-486a-8109-4b87ce86e449,Power Automate for Dynamics 365 +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,5a94d0aa-ee95-455a-bb38-326e5f134478,Dynamics 365 for Team Members for Government +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,FLOW_DYN_TEAM_GOV,47bdde6a-959f-4c7f-8d59-3243e34f1cb3,Power Automate for Dynamics 365 Team Members for Government +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,POWERAPPS_DYN_TEAM_GOV,63efc247-5f28-43e3-a2f8-00c183e3f1db,PowerApps for Dynamics 365 Team Members for Government +Dynamics 365 Guides,GUIDES_USER,0a389a77-9850-4dc4-b600-bc66fdfefc60,DYN365_CDS_GUIDES,1315ade1-0410-450d-b8e3-8050e6da320f,Common Data Service +Dynamics 365 Guides,GUIDES_USER,0a389a77-9850-4dc4-b600-bc66fdfefc60,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides +Dynamics 365 Guides,GUIDES_USER,0a389a77-9850-4dc4-b600-bc66fdfefc60,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides +Dynamics 365 Operations - Device,Dynamics_365_for_Operations_Devices,3bbd44ed-8a70-4c07-9088-6232ddbd5ddd,DYN365_RETAIL_DEVICE,ceb28005-d758-4df7-bb97-87a617b93d6c,Dynamics 365 for Retail Device +Dynamics 365 Operations - Device,Dynamics_365_for_Operations_Devices,3bbd44ed-8a70-4c07-9088-6232ddbd5ddd,Dynamics_365_for_OperationsDevices,2c9fb43e-915a-4d61-b6ca-058ece89fd66,Dynamics 365 for Operations Devices +Dynamics 365 Operations - Device,Dynamics_365_for_Operations_Devices,3bbd44ed-8a70-4c07-9088-6232ddbd5ddd,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Operations - Sandbox Tier 2:Standard Acceptance Testing,Dynamics_365_for_Operations_Sandbox_Tier2_SKU,e485d696-4c87-4aac-bf4a-91b2fb6f0fa7,Dynamics_365_for_Operations_Sandbox_Tier2,d8ba6fb2-c6b1-4f07-b7c8-5f2745e36b54,Dynamics 365 for Operations non-production multi-box instance for standard acceptance testing (Tier 2) +Dynamics 365 Operations - Sandbox Tier 2:Standard Acceptance Testing,Dynamics_365_for_Operations_Sandbox_Tier2_SKU,e485d696-4c87-4aac-bf4a-91b2fb6f0fa7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Operations - Sandbox Tier 4:Standard Performance Testing,Dynamics_365_for_Operations_Sandbox_Tier4_SKU,f7ad4bca-7221-452c-bdb6-3e6089f25e06,Dynamics_365_for_Operations_Sandbox_Tier4,f6b5efb1-1813-426f-96d0-9b4f7438714f,Dynamics 365 for Operations Enterprise Edition - Sandbox Tier 4:Standard Performance Testing +Dynamics 365 Operations - Sandbox Tier 4:Standard Performance Testing,Dynamics_365_for_Operations_Sandbox_Tier4_SKU,f7ad4bca-7221-452c-bdb6-3e6089f25e06,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 P1 Tria for Information Workers,DYN365_ENTERPRISE_P1_IW,338148b6-1b11-4102-afb9-f92b6cdc0f8d,DYN365_ENTERPRISE_P1_IW,056a5f80-b4e0-4983-a8be-7ad254a113c9,DYNAMICS 365 P1 TRIAL FOR INFORMATION WORKERS +Dynamics 365 P1 Tria for Information Workers,DYN365_ENTERPRISE_P1_IW,338148b6-1b11-4102-afb9-f92b6cdc0f8d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,D365CDSforProjectOperations,7df1d500-ca5c-4229-8cea-815bc88798c9,Common Data Service for Dynamics 365 Project Operations +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,D365_ProjectOperationsCDS,18fa3aba-b085-4105-87d7-55617b8585e6,Dynamics 365 Project Operations CDS +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,D365_ProjectOperations,69f07c66-bee4-4222-b051-195095efee5b,Dynamics 365 Project Operations +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,PROJECT_FOR_PROJECT_OPERATIONS,0a05d977-a21a-45b2-91ce-61c240dbafa2,Project for Project Operations +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Dynamics 365 Remote Assist,MICROSOFT_REMOTE_ASSIST,7a551360-26c4-4f61-84e6-ef715673e083,CDS_REMOTE_ASSIST,0850ebb5-64ee-4d3a-a3e1-5a97213653b5,Common Data Service for Remote Assist +Dynamics 365 Remote Assist,MICROSOFT_REMOTE_ASSIST,7a551360-26c4-4f61-84e6-ef715673e083,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Microsoft Remote Assist +Dynamics 365 Remote Assist,MICROSOFT_REMOTE_ASSIST,7a551360-26c4-4f61-84e6-ef715673e083,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Dynamics 365 Remote Assist HoloLens,MICROSOFT_REMOTE_ASSIST_HOLOLENS,e48328a2-8e98-4484-a70f-a99f8ac9ec89,CDS_REMOTE_ASSIST,0850ebb5-64ee-4d3a-a3e1-5a97213653b5,Common Data Service for Remote Assist +Dynamics 365 Remote Assist HoloLens,MICROSOFT_REMOTE_ASSIST_HOLOLENS,e48328a2-8e98-4484-a70f-a99f8ac9ec89,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Microsoft Remote Assist +Dynamics 365 Remote Assist HoloLens,MICROSOFT_REMOTE_ASSIST_HOLOLENS,e48328a2-8e98-4484-a70f-a99f8ac9ec89,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Dynamics 365 Sales Enterprise Attach to Qualifying Dynamics 365 Base Offer,D365_SALES_ENT_ATTACH,5b22585d-1b71-4c6b-b6ec-160b1a9c2323,D365_SALES_ENT_ATTACH,3ae52229-572e-414f-937c-ff35a87d4f29,Dynamics 365 for Sales Enterprise Attach +Dynamics 365 Sales Enterprise Attach to Qualifying Dynamics 365 Base Offer,D365_SALES_ENT_ATTACH,5b22585d-1b71-4c6b-b6ec-160b1a9c2323,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Talent: Onboard,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,DYN365_CDS_DYN_APPS,2d925ad8-2479-4bd8-bb76-5b80f1d48935,COMMON DATA SERVICE +Dynamics 365 Talent: Onboard,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,Dynamics_365_Onboarding_Free_PLAN,300b8114-8555-4313-b861-0c115d820f50,DYNAMICS 365 FOR TALENT: ONBOARD +Dynamics 365 Talent: Onboard,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,Dynamics_365_Talent_Onboard,048a552e-c849-4027-b54c-4c7ead26150a,DYNAMICS 365 FOR TALENT: ONBOARD +Dynamics 365 Talent: Onboard,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,Dynamics_365_for_Retail_Team_members,c0454a3d-32b5-4740-b090-78c32f48f0ad,Dynamics 365 for Retail Team members +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYN365_Enterprise_Talent_Attract_TeamMember,643d201a-9884-45be-962a-06ba97062e5e,Dynamics 365 for Talent - Attract Experience Team Member +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYN365_Enterprise_Talent_Onboard_TeamMember,f2f49eef-4b3f-4853-809a-a055c6103fe0,Dynamics 365 for Talent - Onboard Experience +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,Dynamics_365_for_Talent_Team_members,d5156635-0704-4f66-8803-93258f8b2678,Dynamics 365 for Talent Team members +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYN365_TEAM_MEMBERS,4092fdb5-8d81-41d3-be76-aaba4074530b,Dynamics 365 Team Members +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,Dynamics_365_for_Operations_Team_members,f5aa7b45-8a36-4cd1-bc37-5d06dea98645,Dynamics_365_for_Operations_Team_members +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Dynamics 365 Remote Assist +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,POWERAPPS_DYN_TEAM,52e619e2-2730-439a-b0d3-d09ab7e8b705,Power Apps for Dynamics 365 +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,FLOW_DYN_TEAM,1ec58c70-f69c-486a-8109-4b87ce86e449,Power Automate for Dynamics 365 +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,DDYN365_CDS_DYN_P2,d1142cfd-872e-4e77-b6ff-d98ec5a51f66,COMMON DATA SERVICE +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,DYN365_TALENT_ENTERPRISE,65a1ebf4-6732-4f00-9dcb-3d115ffdeecd,DYNAMICS 365 FOR TALENT +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,Dynamics_365_for_Operations,95d2cd7b-1007-484b-8595-5e97e63fe189,DYNAMICS 365 FOR_OPERATIONS +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,Dynamics_365_for_Retail,a9e39199-8369-444b-89c1-5fe65ec45665,DYNAMICS 365 FOR RETAIL +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,DYNAMICS_365_HIRING_FREE_PLAN,f815ac79-c5dd-4bcc-9b78-d97f7b817d0d,DYNAMICS 365 HIRING FREE PLAN +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,Dynamics_365_Onboarding_Free_PLAN,300b8114-8555-4313-b861-0c115d820f50,DYNAMICS 365 FOR TALENT: ONBOARD +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,FLOW_DYN_P2,b650d915-9886-424b-a08d-633cede56f57,FLOW FOR DYNAMICS 36 +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,POWERAPPS_DYN_P2,0b03f40b-c404-40c3-8651-2aceb74365fa,POWERAPPS FOR DYNAMICS 365 +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,AAD_EDU,3a3976ce-de18-4a87-a78e-5e9245e252df,Microsoft Entra ID for Education +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,WINDOWS_STORE,a420f25f-a7b3-4ff5-a9d0-5d58f73b537d,Windows Store Service +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,AZURE INFORMATION PROTECTION PREMIUM P1 +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,CLOUD APP SECURITY DISCOVERY +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra RIGHTS +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,AZURE INFORMATION PROTECTION PREMIUM P1 +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,AZURE INFORMATION PROTECTION PREMIUM P2 +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra RIGHTS +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,MICROSOFT CLOUD APP SECURITY +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,MICROSOFT DEFENDER FOR IDENTITY +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Cloud App Security Discovery +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra Rights +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,RMS_S_ENTERPRISE),bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra Rights +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Exchange Enterprise CAL Services (EOP DLP),EOP_ENTERPRISE_PREMIUM,e8ecdf70-47a8-4d39-9d15-093624b7f640,EOP_ENTERPRISE_PREMIUM,75badc48-628e-4446-8460-41344d73abd6,Exchange Enterprise CAL Services (EOP DLP) +Exchange Enterprise CAL Services (EOP DLP),EOP_ENTERPRISE_PREMIUM,e8ecdf70-47a8-4d39-9d15-093624b7f640,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra Rights +Exchange Online (Plan 1),EXCHANGESTANDARD,4b9405b0-7788-4568-add1-99614e613b69,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Exchange Online (Plan 1),EXCHANGESTANDARD,4b9405b0-7788-4568-add1-99614e613b69,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Exchange Online (Plan 1),EXCHANGESTANDARD,4b9405b0-7788-4568-add1-99614e613b69,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Exchange Online (Plan 1) for Alumni with Yammer,EXCHANGESTANDARD_ALUMNI,aa0f9eb7-eff2-4943-8424-226fb137fcad,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Exchange Online (Plan 1) for Alumni with Yammer,EXCHANGESTANDARD_ALUMNI,aa0f9eb7-eff2-4943-8424-226fb137fcad,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Exchange Online (Plan 1) for Alumni with Yammer,EXCHANGESTANDARD_ALUMNI,aa0f9eb7-eff2-4943-8424-226fb137fcad,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Exchange Online (Plan 1) for Students,EXCHANGESTANDARD_STUDENT,ad2fe44a-915d-4e2b-ade1-6766d50a9d9c,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Exchange Online (Plan 1) for Students,EXCHANGESTANDARD_STUDENT,ad2fe44a-915d-4e2b-ade1-6766d50a9d9c,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Exchange Online (Plan 1) for Students,EXCHANGESTANDARD_STUDENT,ad2fe44a-915d-4e2b-ade1-6766d50a9d9c,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Exchange Online (Plan 1) for Students,EXCHANGESTANDARD_STUDENT,ad2fe44a-915d-4e2b-ade1-6766d50a9d9c,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Exchange Online (Plan 1) for GCC,EXCHANGESTANDARD_GOV,f37d5ebf-4bf1-4aa2-8fa3-50c51059e983,EXCHANGE_S_STANDARD_GOV,e9b4930a-925f-45e2-ac2a-3f7788ca6fdd,Exchange Online (Plan 1) for Government +Exchange Online (Plan 1) for GCC,EXCHANGESTANDARD_GOV,f37d5ebf-4bf1-4aa2-8fa3-50c51059e983,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Exchange Online (Plan 2) for GCC,EXCHANGEENTERPRISE_GOV,7be8dc28-4da4-4e6d-b9b9-c60f2806df8a,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Exchange Online (Plan 2) for GCC,EXCHANGEENTERPRISE_GOV,7be8dc28-4da4-4e6d-b9b9-c60f2806df8a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Exchange Online (Plan 2),EXCHANGEENTERPRISE,19ec0d23-8335-4cbd-94ac-6050e30712fa,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,EXCHANGE ONLINE (PLAN 2) +Exchange Online (Plan 2) for Faculty,EXCHANGEENTERPRISE_FACULTY,0b7b15a8-7fd2-4964-bb96-5a566d4e3c15,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Exchange Online (Plan 2) for Faculty,EXCHANGEENTERPRISE_FACULTY,0b7b15a8-7fd2-4964-bb96-5a566d4e3c15,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Exchange Online (Plan 2) for Faculty,EXCHANGEENTERPRISE_FACULTY,0b7b15a8-7fd2-4964-bb96-5a566d4e3c15,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Exchange Online (Plan 2) for Faculty,EXCHANGEENTERPRISE_FACULTY,0b7b15a8-7fd2-4964-bb96-5a566d4e3c15,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Exchange Online Archiving for Exchange Online,EXCHANGEARCHIVE_ADDON,ee02fd1b-340e-4a4b-b355-4a514e4c8943,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,EXCHANGE ONLINE ARCHIVING FOR EXCHANGE ONLINE +Exchange Online Archiving for Exchange Server,EXCHANGEARCHIVE,90b5e015-709a-4b8b-b08e-3200f994494c,EXCHANGE_S_ARCHIVE,da040e0a-b393-4bea-bb76-928b3fa1cf5a,EXCHANGE ONLINE ARCHIVING FOR EXCHANGE SERVER +Exchange Online Essentials (ExO P1 Based),EXCHANGEESSENTIALS,7fc0182e-d107-4556-8329-7caaa511197b,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Exchange Online Essentials,EXCHANGE_S_ESSENTIALS,e8f81a67-bd96-4074-b108-cf193eb9433b,EXCHANGE_S_ESSENTIALS,1126bef5-da20-4f07-b45e-ad25d2581aa8,EXCHANGE ESSENTIALS +Exchange Online Essentials,EXCHANGE_S_ESSENTIALS,e8f81a67-bd96-4074-b108-cf193eb9433b,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,TO-DO (PLAN 1) +Exchange Online Kiosk,EXCHANGEDESKLESS,80b2d799-d2ba-4d2a-8842-fb0d0f3a4b82,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,EXCHANGE ONLINE KIOSK +Exchange Online POP,EXCHANGETELCO,cb0a98a8-11bc-494c-83d9-c1b1ac65327e,EXCHANGE_B_STANDARD,90927877-dcff-4af6-b346-2332c0b15bb7,EXCHANGE ONLINE POP +Exchange Online Protection,EOP_ENTERPRISE,45a2423b-e884-448d-a831-d9e139c52d2f,EOP_ENTERPRISE,326e2b78-9d27-42c9-8509-46c827743a17,Exchange Online Protection +Flow Plan 1 for Government,FLOW_P1_GOV,2b3b0c87-36af-4d15-8124-04a691cc2546,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Flow Plan 1 for Government,FLOW_P1_GOV,2b3b0c87-36af-4d15-8124-04a691cc2546,DYN365_CDS_P1_GOV,ce361df2-f2a5-4713-953f-4050ba09aad8,Common Data Service for Government +Flow Plan 1 for Government,FLOW_P1_GOV,2b3b0c87-36af-4d15-8124-04a691cc2546,FLOW_P1_GOV,774da41c-a8b3-47c1-8322-b9c1ab68be9f,Power Automate (Plan 1) for Government +Intune,INTUNE_A,061f9ace-7d42-4136-88ac-31dc755f143f,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE +Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,AAD_EDU,3a3976ce-de18-4a87-a78e-5e9245e252df,Microsoft Entra ID for Education +Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,WINDOWS_STORE,a420f25f-a7b3-4ff5-a9d0-5d58f73b537d,Windows Store Service +Microsoft Dynamics AX7 User Trial,AX7_USER_TRIAL,fcecd1f9-a91e-488d-a918-a96cdb6ce2b0,ERP_TRIAL_INSTANCE,e2f705fd-2468-4090-8c58-fad6e6b1e724,Dynamics 365 Operations Trial Environment +Microsoft Dynamics AX7 User Trial,AX7_USER_TRIAL,fcecd1f9-a91e-488d-a918-a96cdb6ce2b0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Dynamics CRM Online Basic for Government,CRMPLAN2_GCC,3856cd1b-8033-458e-8d0f-9909ec6e6e6d,CRMPLAN2_GCC,3d53f6d9-d6e0-45c1-9575-6acd77692584,Microsoft Dynamics CRM Online Government Basic +Microsoft Dynamics CRM Online Basic for Government,CRMPLAN2_GCC,3856cd1b-8033-458e-8d0f-9909ec6e6e6d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Dynamics CRM Online Basic for Government,CRMPLAN2_GCC,3856cd1b-8033-458e-8d0f-9909ec6e6e6d,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Microsoft Dynamics CRM Online Basic for Government,CRMPLAN2_GCC,3856cd1b-8033-458e-8d0f-9909ec6e6e6d,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Microsoft Dynamics CRM Online for Government,CRMSTANDARD_GCC,ba051a1a-4c3d-4ccd-9890-6fa6a4e696e7,CRMSTANDARD_GCC,2b8c7c8c-9db5-44a5-a1dd-f4aa5b97b372,Microsoft Dynamics CRM Online Professional for Government +Microsoft Dynamics CRM Online for Government,CRMSTANDARD_GCC,ba051a1a-4c3d-4ccd-9890-6fa6a4e696e7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Dynamics CRM Online for Government,CRMSTANDARD_GCC,ba051a1a-4c3d-4ccd-9890-6fa6a4e696e7,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Microsoft Dynamics CRM Online for Government,CRMSTANDARD_GCC,ba051a1a-4c3d-4ccd-9890-6fa6a4e696e7,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Microsoft Azure Multi-Factor Authentication,MFA_STANDALONE,cb2020b1-d8f6-41c0-9acd-8ff3d6d7831b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Azure Multi-Factor Authentication,MFA_STANDALONE,cb2020b1-d8f6-41c0-9acd-8ff3d6d7831b,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft Defender for Office 365 (Plan 2),THREAT_INTELLIGENCE,3dd6cf57-d688-4eed-ba52-9e40b5468c3e,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft Defender for Office 365 (Plan 2),THREAT_INTELLIGENCE,3dd6cf57-d688-4eed-ba52-9e40b5468c3e,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft Defender for Office 365 (Plan 2),THREAT_INTELLIGENCE,3dd6cf57-d688-4eed-ba52-9e40b5468c3e,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 A1,M365EDU_A1,b17653a4-2443-4e8c-a550-18249dda78bb,AAD_EDU,3a3976ce-de18-4a87-a78e-5e9245e252df,Microsoft Entra ID for Education +Microsoft 365 A1,M365EDU_A1,b17653a4-2443-4e8c-a550-18249dda78bb,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Intune for Education +Microsoft 365 A1,M365EDU_A1,b17653a4-2443-4e8c-a550-18249dda78bb,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A1,M365EDU_A1,b17653a4-2443-4e8c-a550-18249dda78bb,WINDOWS_STORE,a420f25f-a7b3-4ff5-a9d0-5d58f73b537d,Windows Store Service +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,UNIVERSAL_PRINT_NO_SEEDING,b67adbaf-a096-42c9-967e-5a84edbe0086,Universal Print Without Seeding +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A3 Suite features for faculty,Microsoft 365 A3 Suite features for faculty,32a0e471-8a27-4167-b24f-941559912425,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 A3 Suite features for faculty,Microsoft 365 A3 Suite features for faculty,32a0e471-8a27-4167-b24f-941559912425,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune Plan 1 for Education +Microsoft 365 A3 Suite features for faculty,Microsoft 365 A3 Suite features for faculty,32a0e471-8a27-4167-b24f-941559912425,REMOTE_HELP,a4c6cf29-1168-4076-ba5c-e8fe0e62b17e,Remote help +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,OFFICESUBSCRIPTION_unattended,8d77e2d9-9e28-4450-8431-0def64078fc5,Microsoft 365 Apps for Enterprise (Unattended) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,UNIVERSAL_PRINT_NO_SEEDING,b67adbaf-a096-42c9-967e-5a84edbe0086,Universal Print Without Seeding +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,COMMON_DEFENDER_PLATFORM_FOR_OFFICE,a312bdeb-1e21-40d0-84b1-0e73f128144f,Defender Platform for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,Microsoft Insider Risk Management - Exchange +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Retired - Microsoft Data Investigations +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Intune_ServiceNow,3eeb8536-fecf-41bf-a3f8-d6f17a9f3efc,Intune ServiceNow Integration +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune Plan 1 for Education +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,REMOTE_HELP,a4c6cf29-1168-4076-ba5c-e8fe0e62b17e,Remote help +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,COMMON_DEFENDER_PLATFORM_FOR_OFFICE,a312bdeb-1e21-40d0-84b1-0e73f128144f,Defender Platform for Office 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,Microsoft Insider Risk Management - Exchange +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Retired - Microsoft Data Investigations +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Intune_ServiceNow,3eeb8536-fecf-41bf-a3f8-d6f17a9f3efc,Intune ServiceNow Integration +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune Plan 1 for Education +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,REMOTE_HELP,a4c6cf29-1168-4076-ba5c-e8fe0e62b17e,Remote help +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,UNIVERSAL_PRINT_NO_SEEDING,b67adbaf-a096-42c9-967e-5a84edbe0086,Universal Print Without Seeding +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics – Premium +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune Plan 1 for Education +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for EDU +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service - O365 P3 +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Intune for Education +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the web (Education) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint Plan 2 for EDU +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,UNIVERSAL_PRINT_NO_SEEDING,b67adbaf-a096-42c9-967e-5a84edbe0086,Universal Print Without Seeding +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,OFFICE 365 BUSINESS +Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,ONEDRIVESTANDARD +Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,OFFICE 365 BUSINESS +Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,ONEDRIVESTANDARD +Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,OneDrive for Business (Plan 1) +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 Apps for enterprise (device),OFFICE_PROPLUS_DEVICE1,ea4c5ec8-50e3-4193-89b9-50da5bd4cdc7,OFFICE_PROPLUS_DEVICE,3c994f28-87d5-4273-b07a-eb6190852599,Microsoft 365 Apps for Enterprise (Device) +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,OneDrive for Business (Plan 1) +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,OneDrive for Business (Plan 1) +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 Audio Conferencing for faculty,MCOMEETADV_FACULTY,c2cda955-3359-44e5-989f-852ca0cfa02f,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Audio Conferencing for GCC,MCOMEETADV_GOV,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,EXCHANGE_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT +Microsoft 365 Audio Conferencing for GCC,MCOMEETADV_GOV,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,MICROSOFT 365 AUDIO CONFERENCING FOR GOVERNMENT +Microsoft 365 Audio Conferencing_USGOV_GCCHIGH,MCOMEETADV_USGOV_GCCHIGH,4dee1f32-0808-4fd2-a2ed-fdd575e3a45f,MCOMEETADV_AR_GCCHigh,f1e3613f-3818-4254-9b5e-f02d803384e0,Microsoft 365 Audio Conferencing for GCCHigh +Microsoft 365 Audio Conferencing - GCCHigh Tenant (AR)_USGOV_GCCHIGH,MCOACBYOT_AR_GCCHIGH_USGOV_GCCHIGH,170ba00c-38b2-468c-a756-24c05037160a,MCOACBYOT_GCCHigh,c85e4b03-254a-453b-af72-167a53f38530,Microsoft 365 Audio Conferencing - GCCHigh Tenant +Microsoft 365 Audio Conferencing Pay-Per-Minute - EA,MCOMEETACPEA,df9561a4-4969-4e6a-8e73-c601b68ec077,MCOMEETACPEA,bb038288-76ab-49d6-afc1-eaa6c222c65a,Microsoft 365 Audio Conferencing Pay-Per-Minute +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,OFFICEMOBILE_SUBSCRIPTION +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,TO-DO (PLAN 1) +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,OFFICEMOBILE_SUBSCRIPTION +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,YAMMER_MIDSIZE,41bf139a-4e60-409f-9346-a1361efc6dfb,YAMMER MIDSIZE +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for Business +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,MICROSOFTBOOKINGS +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,OUTLOOK CUSTOMER MANAGER +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,OFFICE 365 BUSINESS +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,YAMMER_MIDSIZE,41bf139a-4e60-409f-9346-a1361efc6dfb,YAMMER_MIDSIZE +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,OFFICE_SHARED_COMPUTER_ACTIVATION,276d6e8a-f056-4f70-b7e8-4fc27f79f809,Office Shared Computer Activation +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,WINBIZ,8e229017-d77b-43d5-9305-903395523b99,Windows 10/11 Business +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Azure Active Directory +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,Microsoft Intune +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for Business +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,Microsoft Intune +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,OFFICE_SHARED_COMPUTER_ACTIVATION,276d6e8a-f056-4f70-b7e8-4fc27f79f809,Office Shared Computer Activation +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,WINBIZ,8e229017-d77b-43d5-9305-903395523b99,Windows 10/11 Business +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Azure Active Directory +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for Business +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,OFFICE_SHARED_COMPUTER_ACTIVATION,276d6e8a-f056-4f70-b7e8-4fc27f79f809,Office Shared Computer Activation +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,WINBIZ,8e229017-d77b-43d5-9305-903395523b99,Windows 10/11 Business +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Azure Active Directory +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,Microsoft Intune +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,OFFICE_SHARED_COMPUTER_ACTIVATION,276d6e8a-f056-4f70-b7e8-4fc27f79f809,Office Shared Computer Activation +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,WINBIZ,8e229017-d77b-43d5-9305-903395523b99,Windows 10/11 Business +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Azure Active Directory +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,Microsoft Intune +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 Business Voice (US),BUSINESS_VOICE_MED2_TELCO,08d7bce8-6e16-490e-89db-1d508e5e9609,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Business Voice (US),BUSINESS_VOICE_MED2_TELCO,08d7bce8-6e16-490e-89db-1d508e5e9609,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,Microsoft 365 Domestic Calling Plan +Microsoft 365 Business Voice (without Calling Plan),BUSINESS_VOICE_DIRECTROUTING,d52db95a-5ecb-46b6-beb0-190ab5cda4a8,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Business Voice (without Calling Plan),BUSINESS_VOICE_DIRECTROUTING,d52db95a-5ecb-46b6-beb0-190ab5cda4a8,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 Business Voice (UK,BUSINESS_VOICE,e5a17adf-8f0d-4b57-bc14-d331235f9307,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Business Voice (UK,BUSINESS_VOICE,e5a17adf-8f0d-4b57-bc14-d331235f9307,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,Microsoft 365 Domestic Calling Plan +Microsoft 365 Business Voice (UK,BUSINESS_VOICE,e5a17adf-8f0d-4b57-bc14-d331235f9307,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 Business Voice (without Calling Plan) for US,BUSINESS_VOICE_DIRECTROUTING_MED,8330dae3-d349-44f7-9cad-1b23c64baabe,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Business Voice (without Calling Plan) for US,BUSINESS_VOICE_DIRECTROUTING_MED,8330dae3-d349-44f7-9cad-1b23c64baabe,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 Business Voice (without Calling Plan),BUSINESS_VOICE_DIRECTROUTING,d52db95a-5ecb-46b6-beb0-190ab5cda4a8,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Business Voice (without Calling Plan),BUSINESS_VOICE_DIRECTROUTING,d52db95a-5ecb-46b6-beb0-190ab5cda4a8,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 Business Voice,BUSINESS_VOICE_MED2,a6051f20-9cbc-47d2-930d-419183bf6cf1,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Business Voice,BUSINESS_VOICE_MED2,a6051f20-9cbc-47d2-930d-419183bf6cf1,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,Microsoft 365 Domestic Calling Plan +Microsoft 365 Business Voice,BUSINESS_VOICE_MED2,a6051f20-9cbc-47d2-930d-419183bf6cf1,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,COPILOT_STUDIO_IN_COPILOT_FOR_M365,fe6c28b3-d468-44ea-bbd0-a10a5167435c,Copilot Studio in Copilot for M365 +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_SHAREPOINT,0aedf20c-091d-420b-aadf-30c042609612,Microsoft 365 Copilot for SharePoint +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft Copilot with Graph-grounded chat +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,COPILOT_STUDIO_IN_COPILOT_FOR_M365,fe6c28b3-d468-44ea-bbd0-a10a5167435c,Copilot Studio in Copilot for M365 +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_SHAREPOINT,0aedf20c-091d-420b-aadf-30c042609612,Microsoft 365 Copilot for SharePoint +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,Microsoft_Copilot_for_Sales,a2194428-ead1-4fc1-bb81-ab8675125f42,Microsoft Copilot for Sales +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,Microsoft_Copilot_for_Sales_PowerAutomate,0c1c2af2-6c51-43c7-9c55-fa487ac147ff,Microsoft Copilot for Sales with Power Automate +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft Copilot with Graph-grounded chat +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,WORKPLACE_ANALYTICS_INSIGHTS_USER,b622badb-1b45-48d5-920f-4b27a2c0996c,Microsoft Viva Insights +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,WORKPLACE_ANALYTICS_INSIGHTS_BACKEND,ff7b261f-d98b-415b-827c-42a3fdf015af,Microsoft Viva Insights Backend +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft Copilot with Graph-grounded chat +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot +Microsoft 365 Domestic Calling Plan (120 minutes) - US,MCOPSTN5_US,d13e9d1b-316a-4946-98c6-362c97a4fdfe,PSTN5_US,1346d5e6-15a6-4b88-9693-806ff7296a7a,Microsoft 365 Domestic Calling Plan - US (120 minutes) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,OFFICESUBSCRIPTION_unattended,8d77e2d9-9e28-4450-8431-0def64078fc5,Microsoft 365 Apps for Enterprise (Unattended) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,OFFICESUBSCRIPTION_unattended,8d77e2d9-9e28-4450-8431-0def64078fc5,Microsoft 365 Apps for Enterprise (Unattended) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,ONEDRIVE_BASIC_P2,4495894f-534f-41ca-9d3b-0ebf1220a423,OneDrive for Business (Basic 2) +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,TEAMS_AR_DOD,fd500458-c24c-478e-856c-a6067a8376cd,Microsoft Teams for DOD (AR) +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Office 365 ProPlus +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office Online +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Cloud App Security Discovery +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh (AR) +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Office 365 ProPlus +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office Online +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,Microsoft Insider Risk Management - Exchange +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PEOPLE_SKILLS_FOUNDATION,13b6da2c-0d84-450e-9f69-a33e221387ca,People Skills - Foundation +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Retired - Microsoft Data Investigations +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,RETIRED - Places Core +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MCOPSTN8,16935b20-87c0-4908-934a-22aa267d0d26,Microsoft 365 Domestic Calling Plan (120 min) at User Level +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,SHAREPOINTENTERPRISE_MIDMARKET,6b5b6a67-fc72-4a1f-a2b5-beecf05de761,SharePoint (Plan 1) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MCOPSTN8,16935b20-87c0-4908-934a-22aa267d0d26,Microsoft 365 Domestic Calling Plan (120 min) at User Level +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MCOMEETADV_AR_GCCHigh,f1e3613f-3818-4254-9b5e-f02d803384e0,Microsoft 365 Audio Conferencing for GCCHigh +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,FORMS_PLAN_E5_AR_GCCHIGH,cf1b2895-e3fd-4b33-9594-2ab924104547,Microsoft Forms (Plan E5) for GCCHigh +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MICROSOFT_SEARCH_GCCH,fc9f7921-4ca5-42c6-8533-1b84c4ee496b,Microsoft Search for Arlington +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,POWERAPPS_O365_P3_GCCHIGH,b50a9096-5b07-4ded-a5e4-a492fb94b6ee,Power Apps for Office 365 for GCCHigh +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,FLOW_O365_P3_GCCHIGH,ee939cf0-7cd1-4262-9f72-9eaa45dbba69,Power Automate for Office 365 for GCCHigh +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Cloud App Security Discovery +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for O365 K SKU +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Online Kiosk +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,FORMS_PLAN_K,f07046bd-2a3c-4b96-b0be-dea79d7cbfb8,Microsoft Forms (Plan F1) +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,KAIZALA_O365_P1,73b2a583-6a59-42e3-8e83-54db46bc3278,Microsoft Kaizala Pro +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,PROJECT_O365_F3,7f6f28c2-34bb-4d4b-be36-48ca2e77e1ec,Project for Office (Plan F) +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,WIN10_ENT_LOC_F1,e041597c-9c7f-4ed9-99b0-2663301576f7,Windows 10 Enterprise E3 (Local Only) +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,POWERAPPS_O365_S1,e0287f9f-e222-4f98-9a83-f379e249159a,Power Apps for Office 365 F3 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,FLOW_O365_S1,bd91b1a4-9f94-4ecf-b45b-3a65e5c8128a,Power Automate for Office 365 F3 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,POWER_VIRTUAL_AGENTS_O365_F1,ba2fdb48-290b-4632-b46a-e4ecc58ac11a,Power Virtual Agents for Office 365 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,FORMS_PLAN_K,f07046bd-2a3c-4b96-b0be-dea79d7cbfb8,Microsoft Forms (Plan F1) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,KAIZALA_O365_P1,73b2a583-6a59-42e3-8e83-54db46bc3278,Microsoft Kaizala Pro +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,TEAMS_DESKLESS,a42de799-58ae-4e6a-aa1d-948e7abec726,Microsoft Teams Kiosk +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,PROJECT_O365_F3,7f6f28c2-34bb-4d4b-be36-48ca2e77e1ec,Project for Office (Plan F) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,WIN10_ENT_LOC_F1,e041597c-9c7f-4ed9-99b0-2663301576f7,Windows 10 Enterprise E3 (Local Only) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,POWERAPPS_O365_S1,e0287f9f-e222-4f98-9a83-f379e249159a,Power Apps for Office 365 F3 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,FLOW_O365_S1,bd91b1a4-9f94-4ecf-b45b-3a65e5c8128a,Power Automate for Office 365 F3 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,POWER_VIRTUAL_AGENTS_O365_F1,ba2fdb48-290b-4632-b46a-e4ecc58ac11a,Power Virtual Agents for Office 365 +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,DYN365_CDS_O365_F1_GCC,29007dd3-36c0-4cc2-935d-f5bca2c2c473,Common Data Service - O365 F1 +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,CDS_O365_F1_GCC,5e05331a-0aec-437e-87db-9ef5934b5771,Common Data Service for Teams_F1 GCC +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,EXCHANGE_S_DESKLESS_GOV,88f4d7ef-a73b-4246-8047-516022144c9f,Exchange Online (Kiosk) for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,FORMS_GOV_F1,bfd4133a-bbf3-4212-972b-60412137c428,Forms for Government (Plan F1) +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,STREAM_O365_K_GOV,d65648f1-9504-46e4-8611-2658763f28b8,Microsoft Stream for O365 for Government (F1) +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,OFFICEMOBILE_SUBSCRIPTION_GOV,4ccb60ee-9523-48fd-8f63-4b090f1ad77a,Office Mobile Apps for Office 365 for GCC +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,POWERAPPS_O365_S1_GOV,49f06c3d-da7d-4fa0-bcce-1458fdd18a59,Power Apps for Office 365 F3 for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,FLOW_O365_S1_GOV,5d32692e-5b24-4a59-a77e-b2a8650e25c1,Power Automate for Office 365 F3 for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,SHAREPOINTDESKLESS_GOV,b1aeb897-3a19-46e2-8c27-a609413cf193,SharePoint KioskG +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,MCOIMP_GOV,8a9f17f1-5872-44e8-9b11-3caade9dc90f,Skype for Business Online (Plan 1) for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,ADALLOM_S_STANDALONE_DOD,6ebdddb7-8e55-4af2-952b-69e77262f96c,Microsoft Defender for Cloud Apps for DOD +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,GRAPH_CONNECTORS_SEARCH_INDEX_TOPICEXP,b74d57b2-58e9-484a-9731-aeccbba954f0,Graph Connectors Search with Index (Microsoft Viva Topics) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Azure Active Directory Premium P2 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,RMS_S_PREMIUM2_GOV,5400a66d-eaa5-427d-80f2-0f26d59d8fce,Azure Information Protection Premium P2 for GCC +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Azure Active Directory Premium P2 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,RMS_S_PREMIUM2_GOV,5400a66d-eaa5-427d-80f2-0f26d59d8fce,Azure Information Protection Premium P2 for GCC +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +Microsoft 365 Audio Conferencing for GCC,MCOMEETADV_GOV,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT +Microsoft 365 Audio Conferencing for GCC,MCOMEETADV_GOV,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,MICROSOFT 365 AUDIO CONFERENCING FOR GOVERNMENT +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,AAD_PREMIUM +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,RMS_S_PREMIUM +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,ADALLOM_S_DISCOVERY +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,DYN365_CDS_O365_F1 +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,EXCHANGE_S_DESKLESS +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,RMS_S_ENTERPRISE +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MFA_PREMIUM +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,MICROSOFTBOOKINGS +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,INTUNE_A +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,PROJECTWORKMANAGEMENT +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,MICROSOFT_SEARCH +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,STREAM_O365_K +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,INTUNE_O365 +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SHAREPOINTDESKLESS +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,MCOIMP +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,CDS_O365_P2_GCC,a70bbf38-cdda-470d-adb8-5804b8770f41,Common Data Service for Teams +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,FORMS_GOV_E3,24af5f65-d0f3-467b-9f78-ea798c4aeffc,Microsoft Forms for Government (Plan E3) +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,PROJECT_O365_P2_GOV,e7d09ae4-099a-4c34-a2a2-3e166e95c44a,Project for Government (Plan E3) +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,STREAM_O365_E3_GOV,2c1ada27-dbaa-46f9-bda6-ecb94445f758,Stream for Office 365 for Government (E3) +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,DYN365_CDS_O365_P2_GCC,06162da2-ebf9-4954-99a0-00fee96f95cc,Common Data Service +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,CDS_O365_P2_GCC,a70bbf38-cdda-470d-adb8-5804b8770f41,Common Data Service for Teams +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,OFFICESUBSCRIPTION_unattended_GOV,18dfd9bd-5214-4184-8123-c9822d81a9bc,Microsoft 365 Apps for enterprise (unattended) for GCC +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,FORMS_GOV_E3,24af5f65-d0f3-467b-9f78-ea798c4aeffc,Microsoft Forms for Government (Plan E3) +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,PROJECT_O365_P2_GOV,e7d09ae4-099a-4c34-a2a2-3e166e95c44a,Project for Government (Plan E3) +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,STREAM_O365_E3_GOV,2c1ada27-dbaa-46f9-bda6-ecb94445f758,Stream for Office 365 for Government (E3) +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,DYN365_CDS_O365_P2_GCC,06162da2-ebf9-4954-99a0-00fee96f95cc,Common Data Service +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government +Microsoft 365 Lighthouse,Microsoft365_Lighthouse,9c0587f3-8665-4252-a8ad-b7a5ade57312,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Lighthouse,Microsoft365_Lighthouse,9c0587f3-8665-4252-a8ad-b7a5ade57312,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft Sales Copilot,Microsoft_Viva_Sales,3227bcb2-8448-4f81-b3c2-8c2074e15a2a,Microsoft_Viva_Sales_PremiumTrial,8ba1ff15-7bf6-4620-b65c-ecedb6942766,Microsoft Sales Copilot Premium & Trial +Microsoft Sales Copilot,Microsoft_Viva_Sales,3227bcb2-8448-4f81-b3c2-8c2074e15a2a,Microsoft_Viva_Sales_PowerAutomate,a933a62f-c3fb-48e5-a0b7-ac92b94b4420,Microsoft Sales Copilot Premium with Power Automate +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving for Exchange Online +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics - Standard +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,M365 Communication Compliance +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender For Endpoint +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-based classification +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft Business Center,MICROSOFT_BUSINESS_CENTER,726a0894-2c77-4d65-99da-9775ef05aad1,MICROSOFT_BUSINESS_CENTER,cca845f9-fd51-4df6-b563-976a37c56ce0,MICROSOFT BUSINESS CENTER +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft 365 Chat +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,COPILOT_STUDIO_IN_COPILOT_FOR_M365,fe6c28b3-d468-44ea-bbd0-a10a5167435c,Copilot Studio in Copilot for M365 +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_SHAREPOINT,0aedf20c-091d-420b-aadf-30c042609612,Microsoft 365 Copilot for SharePoint +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,Microsoft_Copilot_for_Sales,a2194428-ead1-4fc1-bb81-ab8675125f42,Microsoft Copilot for Sales +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,Microsoft_Copilot_for_Sales_PowerAutomate,0c1c2af2-6c51-43c7-9c55-fa487ac147ff,Microsoft Copilot for Sales with Power Automate +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft Copilot with Graph-grounded chat +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,WORKPLACE_ANALYTICS_INSIGHTS_USER,b622badb-1b45-48d5-920f-4b27a2c0996c,Microsoft Viva Insights +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,WORKPLACE_ANALYTICS_INSIGHTS_BACKEND,ff7b261f-d98b-415b-827c-42a3fdf015af,Microsoft Viva Insights Backend +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot +Microsoft Copilot Studio,Power_Virtual_Agents,75564b9c-51e8-431c-b8fe-d472d5a545c8,CDS_VIRTUAL_AGENT_BASE_MESSAGES,5dd1819f-0de7-487f-985b-c450a4c9cc1d,Dataverse for Microsoft Copilot Studio +Microsoft Copilot Studio,Power_Virtual_Agents,75564b9c-51e8-431c-b8fe-d472d5a545c8,VIRTUAL_AGENT_BASE_MESSAGES,7b0640f1-63cc-4f83-b8c6-0a4d78b8b988,Microsoft Copilot Studio – Messages +Microsoft Copilot Studio,Power_Virtual_Agents,75564b9c-51e8-431c-b8fe-d472d5a545c8,FLOW_VIRTUAL_AGENT_BASE_MESSAGES,4b9ec373-ed29-4192-8a47-c9ab9048b079,Power Automate for Microsoft Copilot Studio +Microsoft Copilot Studio for GCC,Power_Virtual_Agents_for_GCC_GCC,d7974fa0-ddd7-4899-9589-1ea04273aa26,CDS_VIRTUAL_AGENT_BASE_MESSAGES,5dd1819f-0de7-487f-985b-c450a4c9cc1d,Dataverse for Microsoft Copilot Studio +Microsoft Copilot Studio for GCC,Power_Virtual_Agents_for_GCC_GCC,d7974fa0-ddd7-4899-9589-1ea04273aa26,VIRTUAL_AGENT_BASE_MESSAGES,7b0640f1-63cc-4f83-b8c6-0a4d78b8b988,Microsoft Copilot Studio – Messages +Microsoft Copilot Studio for GCC,Power_Virtual_Agents_for_GCC_GCC,d7974fa0-ddd7-4899-9589-1ea04273aa26,FLOW_VIRTUAL_AGENT_BASE_MESSAGES,4b9ec373-ed29-4192-8a47-c9ab9048b079,Power Automate for Microsoft Copilot Studio +Microsoft Copilot Studio_USGOV_GCCHIGH,Power_Virtual_Agents_USGOV_GCCHIGH,84ed7c30-3738-43a0-aa03-cf6c577d8dbb,CDS_VIRTUAL_AGENT_BASE_MESSAGES,5dd1819f-0de7-487f-985b-c450a4c9cc1d,CDS_VIRTUAL_AGENT_BASE_MESSAGES +Microsoft Copilot Studio_USGOV_GCCHIGH,Power_Virtual_Agents_USGOV_GCCHIGH,84ed7c30-3738-43a0-aa03-cf6c577d8dbb,VIRTUAL_AGENT_BASE_MESSAGES,7b0640f1-63cc-4f83-b8c6-0a4d78b8b988,VIRTUAL_AGENT_BASE_MESSAGES +Microsoft Copilot Studio_USGOV_GCCHIGH,Power_Virtual_Agents_USGOV_GCCHIGH,84ed7c30-3738-43a0-aa03-cf6c577d8dbb,FLOW_VIRTUAL_AGENT_BASE_MESSAGES,4b9ec373-ed29-4192-8a47-c9ab9048b079,FLOW_VIRTUAL_AGENT_BASE_MESSAGES +Microsoft Copilot Studio User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,CDS_VIRTUAL_AGENT_USL,cb867b3c-7f38-4d0d-99ce-e29cd69812c8,Common Data Service +Microsoft Copilot Studio User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,FLOW_VIRTUAL_AGENT_USL,82f141c9-2e87-4f43-8cb2-12d2701dc6b3,Power Automate for Virtual Agent +Microsoft Copilot Studio User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,VIRTUAL_AGENT_USL,1263586c-59a4-4ad0-85e1-d50bc7149501,Virtual Agent +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,CDS_Virtual_Agent_Usl_Gov,bcc0702e-ba97-48d9-ae04-fa8689c53bba,Dataverse for Virtual Agent USL for GCC +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Virtual_Agent_Usl_Gov,00b6f978-853b-4041-9de0-a233d18669aa,Virtual Agent for GCC +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,CDS_Virtual_Agent_Usl_GCC,95df1203-fee7-4726-b7e1-8037a8e899eb,Dataverse for Virtual Agent USL for GCC +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Flow_Virtual_Agent_Usl_Gov,0b939472-1861-45f1-ab6d-208f359c05cd,Flow for Virtual Agent for GCC +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,FLOW_Virtual_Agent_Base_Gov,f9f6db16-ace6-4838-b11c-892ee75e810a,Power Automate for Virtual Agent for GCC +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Power_Virtual_Agent_Usl_GCC,0bdd5466-65c3-470a-9fa6-f679b48286b0,Power Virtual Agent USL for GCC +Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,Virtual_Agent_Usl_Gov_High,7ffee552-ebe8-4725-8678-5c1775c05847,Virtual Agent for GCC High +Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,CDS_VIRTUAL_AGENT_USL,cb867b3c-7f38-4d0d-99ce-e29cd69812c8,Common Data Service +Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,FLOW_Virtual_Agent_Base_Gov_High,225e52e5-7bbf-4793-8fb1-4307a7a1ae8e,Flow for Virtual Agent for GCC High +Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,Flow_Virtual_Agent_Usl_Gov_High,aaae1744-dc7a-4811-9dd0-2bf926ff9d80,Flow for Virtual Agent for GCC High +Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,Power_Virtual_Agent_Usl_GCC_High,3fbe8cdf-c735-44bf-bbfa-646724af4bb4,Power Virtual Agent USL for GCC High +Microsoft Copilot Studio Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,DYN365_CDS_CCI_BOTS,cf7034ed-348f-42eb-8bbd-dddeea43ee81,DYN365_CDS_CCI_BOTS +Microsoft Copilot Studio Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,CCIBOTS_PRIVPREV_VIRAL,ce312d15-8fdf-44c0-9974-a25a177125ee,CCIBOTS_PRIVPREV_VIRAL +Microsoft Copilot Studio Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,FLOW_CCI_BOTS,5d798708-6473-48ad-9776-3acc301c40af,FLOW_CCI_BOTS +Microsoft Cloud App Security,ADALLOM_STANDALONE,df845ce7-05f9-4894-b5f2-11bbfbcfd2b6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Cloud App Security,ADALLOM_STANDALONE,df845ce7-05f9-4894-b5f2-11bbfbcfd2b6,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security +Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,MCS_BizApps_Cloud_for_Sustainability_vTrial,c1c902e3-a956-4273-abdb-c92afcd027ef,MCS - BizApps_Cloud for Sustainability_vTrial +Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,POWER_APPS_DYN365_VIRAL_TRIAL,54b37829-818e-4e3c-a08a-3ea66ab9b45d,Power Apps for Dynamics 365 vTrial +Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,POWER_AUTOMATE_DYN365_VIRAL_TRIAL,81d4ecb8-0481-42fb-8868-51536c5aceeb,Power Automate for Dynamics 365 vTrial +Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,Common Data Service +Microsoft Defender for Business,MDE_SMB,5e1e7702-a2b7-4360-8d07-2f515792896f,Intune_Defender,1689aade-3d6a-4bfc-b017-46d2672df5ad,MDE_SecurityManagement +Microsoft Defender for Business,MDE_SMB,5e1e7702-a2b7-4360-8d07-2f515792896f,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft Defender for Business,MDE_SMB,5e1e7702-a2b7-4360-8d07-2f515792896f,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft Defender for Business,MDE_SMB,5e1e7702-a2b7-4360-8d07-2f515792896f,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business +Microsoft Defender for Endpoint,WIN_DEF_ATP,111046dd-295b-4d6d-9724-d52ac90bd1f2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Defender for Endpoint,WIN_DEF_ATP,111046dd-295b-4d6d-9724-d52ac90bd1f2,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,MICROSOFT DEFENDER FOR ENDPOINT +Microsoft Defender for Endpoint F2,Microsoft_Defender_for_Endpoint_F2,e430a580-c37b-4d16-adba-d881d7cd0364,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft Defender for Endpoint P1,DEFENDER_ENDPOINT_P1,16a55f2f-ff35-4cd5-9146-fb784e3761a5,Intune_Defender,1689aade-3d6a-4bfc-b017-46d2672df5ad,MDE_SecurityManagement +Microsoft Defender for Endpoint P1,DEFENDER_ENDPOINT_P1,16a55f2f-ff35-4cd5-9146-fb784e3761a5,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft Defender for Endpoint P1 for EDU,DEFENDER_ENDPOINT_P1_EDU,bba890d4-7881-4584-8102-0c3fdfb739a7,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft Defender for Endpoint P2_XPLAT,MDATP_XPLAT,b126b073-72db-4a9d-87a4-b17afe41d4ab,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Defender for Endpoint P2_XPLAT,MDATP_XPLAT,b126b073-72db-4a9d-87a4-b17afe41d4ab,Intune_Defender,1689aade-3d6a-4bfc-b017-46d2672df5ad,MDE_SecurityManagement +Microsoft Defender for Endpoint P2_XPLAT,MDATP_XPLAT,b126b073-72db-4a9d-87a4-b17afe41d4ab,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft Defender for Endpoint Server,MDATP_Server,509e8ab6-0274-4cda-bcbd-bd164fd562c4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Defender for Endpoint Server,MDATP_Server,509e8ab6-0274-4cda-bcbd-bd164fd562c4,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft Dynamics CRM Online Basic,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Dynamics CRM Online Basic,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 +Microsoft Dynamics CRM Online Basic,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,CRMPLAN2,bf36ca64-95c6-4918-9275-eb9f4ce2c04f,MICROSOFT DYNAMICS CRM ONLINE BASIC +Microsoft Dynamics CRM Online Basic,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 +Microsoft Defender for Identity,ATA,98defdf7-f6c1-44f5-a1f6-943b6764e7a5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Defender for Identity,ATA,98defdf7-f6c1-44f5-a1f6-943b6764e7a5,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft Defender for Identity,ATA,98defdf7-f6c1-44f5-a1f6-943b6764e7a5,ADALLOM_FOR_AATP,61d18b02-6889-479f-8f36-56e6e0fe5792,SecOps Investigation for MDI +Microsoft Defender for Office 365 (Plan 1) Faculty,ATP_ENTERPRISE_FACULTY,26ad4b5c-b686-462e-84b9-d7c22b46837f,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft Defender for Office 365 (Plan 1) GCC,ATP_ENTERPRISE_GOV,d0d1ca43-b81a-4f51-81e5-a5b1ad7bb005,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Microsoft Defender for Office 365 (Plan 1)_USGOV_GCCHIGH,ATP_ENTERPRISE_USGOV_GCCHIGH ,550f19ba-f323-4a7d-a8d2-8971b0d9ea85,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft Defender for Office 365 (Plan 1) Student,ATP_ENTERPRISE_STUDENT,917fb2b4-f71c-43a1-8edc-75532b554bb5,ATP_ENTERPRISE ,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft Defender for Office 365 (Plan 1) Student use benefit,ATP_ENTERPRISE_STUDENTS_USE_BENEFIT,a237b6d8-572e-4839-bffd-7786d32a5d0e,ATP_ENTERPRISE ,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft Defender for Office 365 (Plan 2) GCC,THREAT_INTELLIGENCE_GOV,56a59ffb-9df1-421b-9e61-8b568583474d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft Defender for Office 365 (Plan 2) GCC,THREAT_INTELLIGENCE_GOV,56a59ffb-9df1-421b-9e61-8b568583474d,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Microsoft Defender for Office 365 (Plan 2) GCC,THREAT_INTELLIGENCE_GOV,56a59ffb-9df1-421b-9e61-8b568583474d,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government +Microsoft Defender Vulnerability Management,TVM_Premium_Standalone,1925967e-8013-495f-9644-c99f8b463748,TVM_PREMIUM_1,36810a13-b903-490a-aa45-afbeb7540832,Microsoft Defender Vulnerability Management +Microsoft Defender Vulnerability Management Add-on,TVM_Premium_Add_on,ad7a56e0-6903-4d13-94f3-5ad491e78960,TVM_PREMIUM_1,36810a13-b903-490a-aa45-afbeb7540832,Microsoft Defender Vulnerability Management +Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,CRMSTANDARD,f9646fb2-e3b2-4309-95de-dc4833737456,MICROSOFT DYNAMICS CRM ONLINE PROFESSIONA +Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 +Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,MDM_SALES_COLLABORATION,3413916e-ee66-4071-be30-6f94d4adfeda,MICROSOFT DYNAMICS MARKETING SALES COLLABORATION - ELIGIBILITY CRITERIA APPLY +Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,NBPROFESSIONALFORCRM,3e58e97c-9abe-ebab-cd5f-d543d1529634,MICROSOFT SOCIAL ENGAGEMENT PROFESSIONAL - ELIGIBILITY CRITERIA APPLY +Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 +Microsoft Entra ID Governance,Microsoft_Entra_ID_Governance,cf6b0d46-4093-4546-a0ab-0b1546dcc10e,Entra_Identity_Governance,e866a266-3cff-43a3-acca-0c90a7e00c8b,Entra Identity Governance +Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Entra_Premium_Internet_Access,8d23cb83-ab07-418f-8517-d7aca77307dc,Microsoft Entra Internet Access +Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Entra_Premium_Private_Access,f057aab1-b184-49b2-85c0-881b02a405c5,Microsoft Entra Private Access +Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Verifiable_Credentials_Service_Request,aae826b7-14cd-4691-8178-2b312f7072ea,Verifiable Credentials Service Request +Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Entra_Identity_Governance,e866a266-3cff-43a3-acca-0c90a7e00c8b,Entra Identity Governance +Microsoft Entra Workload ID,Workload_Identities_P2,52cdf00e-8303-4223-a749-ff69a13e2dd0,AAD_WRKLDID_P2,7dc0e92d-bf15-401d-907e-0884efe7c760,Microsoft Entra Workload ID +Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,BI_AZURE_P0,2049e525-b859-401b-b2a0-e0a31c4b1fe4,Power BI (free) +Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft Fabric (Free) for faculty,POWER_BI_STANDARD_FACULTY,ade29b5f-397e-4eb9-a287-0344bd46c68d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE_S_FOUNDATION +Microsoft Fabric (Free) for faculty,POWER_BI_STANDARD_FACULTY,ade29b5f-397e-4eb9-a287-0344bd46c68d,BI_AZURE_P0,2049e525-b859-401b-b2a0-e0a31c4b1fe4,BI_AZURE_P0 +Microsoft Fabric (Free) for student,POWER_BI_STANDARD_STUDENT,bdcaf6aa-04c1-4b8f-b64e-6e3bd505ac64,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE_S_FOUNDATION +Microsoft Fabric (Free) for student,POWER_BI_STANDARD_STUDENT,bdcaf6aa-04c1-4b8f-b64e-6e3bd505ac64,BI_AZURE_P0,2049e525-b859-401b-b2a0-e0a31c4b1fe4,BI_AZURE_P0 +Microsoft Imagine Academy,IT_ACADEMY_AD,ba9a34de-4489-469d-879c-0f0f145321cd,IT_ACADEMY_AD,d736def0-1fde-43f0-a5be-e3f8b2de6e41,MS IMAGINE ACADEMY +Microsoft Intune Advanced Analytics,Microsoft_Intune_Advanced_Analytics,5e36d0d4-e9e5-4052-aba0-0257465c9b86,Intune_AdvancedEA,2a4baa0e-5e99-4c38-b1f2-6864960f1bd1,Microsoft Intune Advanced Analytics +Microsoft Intune Device,INTUNE_A_D,2b317a4a-77a6-4188-9437-b68a77b4e2c6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Intune Device,INTUNE_A_D,2b317a4a-77a6-4188-9437-b68a77b4e2c6,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Intune Device for Government,INTUNE_A_D_GOV,2c21e77a-e0d6-4570-b38a-7ff2dc17d2ca,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Microsoft Intune Device for Government,INTUNE_A_D_GOV,2c21e77a-e0d6-4570-b38a-7ff2dc17d2ca,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Intune Government,INTUNE_A_GOV,2b26f637-35a0-4dbc-b69e-ff674782be9d,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Microsoft Intune Government,INTUNE_A_GOV,2b26f637-35a0-4dbc-b69e-ff674782be9d,INTUNE_A_GOV,d216f254-796f-4dab-bbfa-710686e646b9,Microsoft Intune G +Microsoft Intune Plan 1 A VL,INTUNE_A_VL,99fc2803-fa72-42d3-ae78-b055e177d275,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Intune Plan 1 A VL,INTUNE_A_VL,99fc2803-fa72-42d3-ae78-b055e177d275,INTUNE_A_VL,3e170737-c728-4eae-bbb9-3f3360f7184c,Microsoft Intune Plan 1 +Microsoft Intune Plan 1 A VL_USGOV_GCCHIGH,INTUNE_A_VL_USGOV_GCCHIGH,b4288abe-01be-47d9-ad20-311d6e83fc24,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Intune Plan 1 A VL_USGOV_GCCHIGH,INTUNE_A_VL_USGOV_GCCHIGH,b4288abe-01be-47d9-ad20-311d6e83fc24,INTUNE_A_VL,3e170737-c728-4eae-bbb9-3f3360f7184c,Microsoft Intune Plan 1 +Microsoft Power Apps for Developer,POWERAPPS_DEV,5b631642-bd26-49fe-bd20-1daaa972ef80,DYN365_CDS_DEV_VIRAL,d8c638e2-9508-40e3-9877-feb87603837b,Common Data Service - DEV VIRAL +Microsoft Power Apps for Developer,POWERAPPS_DEV,5b631642-bd26-49fe-bd20-1daaa972ef80,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Power Apps for Developer,POWERAPPS_DEV,5b631642-bd26-49fe-bd20-1daaa972ef80,FLOW_DEV_VIRAL,c7ce3f26-564d-4d3a-878d-d8ab868c85fe,Flow for Developer +Microsoft Power Apps for Developer,POWERAPPS_DEV,5b631642-bd26-49fe-bd20-1daaa972ef80,POWERAPPS_DEV_VIRAL,a2729df7-25f8-4e63-984b-8a8484121554,PowerApps for Developer +Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,Common Data Service - VIRAL +Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,FLOW_P2_VIRAL,50e68c76-46c6-4674-81f9-75456511b170,Flow Free +Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,FLOW_P2_VIRAL_REAL,d20bfa21-e9ae-43fc-93c2-20783f0840c3,Flow P2 Viral +Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,POWERAPPS_P2_VIRAL,d5368ca3-357e-4acb-9c21-8495fb025d1f,PowerApps Trial +Microsoft Power Automate Free,FLOW_FREE,f30db892-07e9-47e9-837c-80727f46fd3d,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,COMMON DATA SERVICE +Microsoft Power Automate Free,FLOW_FREE,f30db892-07e9-47e9-837c-80727f46fd3d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Power Automate Free,FLOW_FREE,f30db892-07e9-47e9-837c-80727f46fd3d,FLOW_P2_VIRAL,50e68c76-46c6-4674-81f9-75456511b170,FLOW FREE +Microsoft Power Automate Plan 2,FLOW_P2,4755df59-3f73-41ab-a249-596ad72b5504,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 +Microsoft Power Automate Plan 2,FLOW_P2,4755df59-3f73-41ab-a249-596ad72b5504,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Power Automate Plan 2,FLOW_P2,4755df59-3f73-41ab-a249-596ad72b5504,FLOW_P2,56be9436-e4b2-446c-bb7f-cc15d16cca4d,Power Automate (Plan 2) +Microsoft Intune SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Microsoft Entra ID +Microsoft Intune SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Intune SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,MICROSOFT INTUNE +Microsoft Intune SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE +Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,Intune_AdvancedEA,2a4baa0e-5e99-4c38-b1f2-6864960f1bd1,Intune Advanced endpoint analytics +Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,Intune-EPM,bb73f429-78ef-4ff2-83c8-722b04c3e7d1,Intune Endpoint Privilege Management +Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,INTUNE_P2,d9923fe3-a2de-4d29-a5be-e3e83bb786be,Intune Plan 2 +Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,Intune-MAMTunnel,a6e407da-7411-4397-8a2e-d9b52780849e,Microsoft Tunnel for Mobile Application Management +Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,REMOTE_HELP,a4c6cf29-1168-4076-ba5c-e8fe0e62b17e,Remote help +Microsoft Power Apps Plan 2 (Qualified Offer),POWERFLOW_P2,ddfae3e3-fcb2-4174-8ebd-3023cb213c8b,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 +Microsoft Power Apps Plan 2 (Qualified Offer),POWERFLOW_P2,ddfae3e3-fcb2-4174-8ebd-3023cb213c8b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Power Apps Plan 2 (Qualified Offer),POWERFLOW_P2,ddfae3e3-fcb2-4174-8ebd-3023cb213c8b,POWERAPPS_P2,00527d7f-d5bc-4c2a-8d1e-6c0de2410c81,Power Apps (Plan 2) +Microsoft Power Apps Plan 2 (Qualified Offer),POWERFLOW_P2,ddfae3e3-fcb2-4174-8ebd-3023cb213c8b,FLOW_P2,56be9436-e4b2-446c-bb7f-cc15d16cca4d,Power Automate (Plan 2) +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,Forms_Pro_Relationship_Sales,507172c0-6001-4f4f-80e7-f350507af3e5,Microsoft Dynamics 365 Customer Voice for Relationship Sales +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,56e3d4ca-2e31-4c3f-8d57-89c1d363503b,Microsoft Relationship Sales solution +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,Retired - Microsoft Social Engagement +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,Microsoft_Viva_Sales_PremiumTrial,8ba1ff15-7bf6-4620-b65c-ecedb6942766,Microsoft Viva Sales Premium & Trial +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,Microsoft_Viva_Sales_PowerAutomate,a933a62f-c3fb-48e5-a0b7-ac92b94b4420,Microsoft Viva Sales Premium with Power Automate +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Microsoft Stream,STREAM,1f2f344a-700d-42c9-9427-5cea1d5d7ba6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Stream,STREAM,1f2f344a-700d-42c9-9427-5cea1d5d7ba6,MICROSOFTSTREAM,acffdce6-c30f-4dc2-81c0-372e33c515ec,MICROSOFT STREAM +Microsoft Stream Plan 2,STREAM_P2,ec156933-b85b-4c50-84ec-c9e5603709ef,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Stream Plan 2,STREAM_P2,ec156933-b85b-4c50-84ec-c9e5603709ef,STREAM_P2,d3a458d0-f10d-48c2-9e44-86f3f684029e,Microsoft Stream Plan 2 +Microsoft Stream Storage Add-On (500 GB),STREAM_STORAGE,9bd7c846-9556-4453-a542-191d527209e8,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Stream Storage Add-On (500 GB),STREAM_STORAGE,9bd7c846-9556-4453-a542-191d527209e8,STREAM_STORAGE,83bced11-77ce-4071-95bd-240133796768,Microsoft Stream Storage Add-On +Microsoft Sustainability Manager Premium,Microsoft_Sustainability_Manager_Premium,aecb477b-2f56-4e38-b711-b752c24fc19b,CDS_CLOUD_FOR_SUSTAINABILITY_PLUS,ba80223c-e515-4642-a838-3e7d66f70cb6,Common Data Services for Cloud for Sustainability Plus +Microsoft Sustainability Manager Premium,Microsoft_Sustainability_Manager_Premium,aecb477b-2f56-4e38-b711-b752c24fc19b,MCS_BIZAPPS_CLOUD_FOR_SUSTAINABILITY_PLUS,ed29ae92-ff5f-4446-8460-83c54d0e7088,MCS - BizApps Cloud for Sustainability Plus +Microsoft Sustainability Manager Premium,Microsoft_Sustainability_Manager_Premium,aecb477b-2f56-4e38-b711-b752c24fc19b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Sustainability Manager Premium USL Plus,MICROSOFT_SUSTAINABILITY_MANAGER_PREMIUM_USL_ADDON,9d576ffb-dd32-4c33-91ee-91625b61424a,MCS_BIZAPPS_CLOUD_FOR_SUSTAINABILITY_USL_PLUS,beaf5b5c-d11c-4417-b5cb-cd9f9e6719b0,MCS - BizApps Cloud for Sustainability USL Plus +Microsoft Sustainability Manager Premium USL Plus,MICROSOFT_SUSTAINABILITY_MANAGER_PREMIUM_USL_ADDON,9d576ffb-dd32-4c33-91ee-91625b61424a,POWER_APPS_FOR_MCS_USL_PLUS,c5502fe7-406d-442a-827f-4948b821ba08,Power Apps for Cloud for Sustainability USL Plus +Microsoft Sustainability Manager Premium USL Plus,MICROSOFT_SUSTAINABILITY_MANAGER_PREMIUM_USL_ADDON,9d576ffb-dd32-4c33-91ee-91625b61424a,POWER_AUTOMATE_FOR_MCS_USL_PLUS,1c22bb50-96fb-49e5-baa6-195cab19eee2,Power Automate for Cloud for Sustainability USL Plus +Microsoft Sustainability Manager Premium USL Plus,MICROSOFT_SUSTAINABILITY_MANAGER_PREMIUM_USL_ADDON,9d576ffb-dd32-4c33-91ee-91625b61424a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,MCS_BizApps_Cloud_for_Sustainability_USL,c46c42af-d654-4385-8c85-29a84f3dfb22,MCS - BizApps - Cloud for Sustainability USL +Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,POWER_APPS_FOR_MCS_USL,5ffd371c-037a-41a2-98a3-6452f8c5de17,Power Apps for Cloud for Sustainability USL +Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,POWER_AUTOMATE_FOR_MCS_USL,ccbe468e-7973-442c-8ec4-5fbe16438711,Power Automate for Cloud for Sustainability USL +Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Teams Audio Conferencing with dial-out to USA/CAN,Microsoft_Teams_Audio_Conferencing_select_dial_out,1c27243e-fb4d-42b1-ae8c-fe25c9616588,MCOMEETBASIC,9974d6cf-cd24-4ba2-921c-e2aa687da846,Microsoft Teams Audio Conferencing with dial-out to select geographies +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,MCOFREE,617d9209-3b90-4879-96e6-838c42b2701d,MCO FREE FOR MICROSOFT TEAMS (FREE) +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,TEAMS_FREE,4fa4026d-ce74-4962-a151-8e96d57ea8e4,MICROSOFT TEAMS (FREE) +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SHAREPOINT KIOSK +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,TEAMS_FREE_SERVICE,bd6f2ac2-991a-49f9-b23c-18c96a02c228,TEAMS FREE SERVICE +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,WHITEBOARD (FIRSTLINE) +Microsoft Teams Calling Plan pay-as-you-go (country zone 1 - US),Microsoft_Teams_Calling_Plan_pay_as_you_go_(country_zone_1_US),9b196e97-5830-4c2e-adc2-1e10ebf5dee5,MCOPSTN_PAYG_1,156a1efe-17cd-4b03-9f17-2eb512298fb3,Microsoft Teams Calling Plan pay-as-you-go - country zone 1 +Microsoft Teams Domestic Calling Plan (240 min),MCOPSTN_6,729dbb8f-8d56-4994-8e33-2f218f549544,MCOPSTN6,346d83bf-6fe6-42ca-b424-b9300d2e21bf,Microsoft 365 Domestic Calling Plan (240 min) +Microsoft Teams Domestic Calling Plan for GCC,MCOPSTN_1_GOV,923f58ab-fca1-46a1-92f9-89fda21238a8,MCOPSTN1_GOV,3c8a8792-7866-409b-bb61-1b20ace0368b,Domestic Calling Plan for Government +Microsoft Teams Domestic Calling Plan for GCC,MCOPSTN_1_GOV,923f58ab-fca1-46a1-92f9-89fda21238a8,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Microsoft Teams Essentials,Teams_Ess,fde42873-30b6-436b-b361-21af5a6b84ae,TeamsEss,f4f2f6de-6830-442b-a433-e92249faebe2,Microsoft Teams Essentials +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,ONEDRIVE_BASIC_P2,4495894f-534f-41ca-9d3b-0ebf1220a423,OneDrive for Business (Basic 2) +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,COMMON DATA SERVICE FOR TEAMS_P1 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,INSIGHTS BY MYANALYTICS +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNER +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,MICROSOFT SEARCH +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,DESKLESS,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,MICROSOFT STREAM FOR O365 E1 SKU +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,MICROSOFT TEAMS +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,MCO_TEAMS_IW,42a3ec34-28ba-46b6-992f-db53a675ac5b,MICROSOFT TEAMS +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,MOBILE DEVICE MANAGEMENT FOR OFFICE 365 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE FOR THE WEB +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,OFFICE MOBILE APPS FOR OFFICE 365 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWER APPS FOR OFFICE 365 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,POWER AUTOMATE FOR OFFICE 365 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,POWER VIRTUAL AGENTS FOR OFFICE 365 P1 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINT STANDARD +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,TO-DO (PLAN 1) +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,WHITEBOARD (PLAN 1) +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER ENTERPRIS +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MCO_TEAMS_IW,42a3ec34-28ba-46b6-992f-db53a675ac5b,Microsoft Teams +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Microsoft Teams Phone Standard,MCOEV,e43b5b99-8dfb-405f-9987-dc307f34bcbd,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard for DOD,MCOEV_DOD,d01d9287-694b-44f3-bcc5-ada78c8d953e,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard for Faculty,MCOEV_FACULTY,d979703c-028d-4de5-acbf-7955566b69b9,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTE +Microsoft Teams Phone Standard for GCC,MCOEV_GOV,a460366a-ade7-4791-b581-9fbff1bdaa85,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT +Microsoft Teams Phone Standard for GCC,MCOEV_GOV,a460366a-ade7-4791-b581-9fbff1bdaa85,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,MICROSOFT 365 PHONE SYSTEM FOR GOVERNMENT +Microsoft Teams Phone Standard for GCCHIGH,MCOEV_GCCHIGH,7035277a-5e49-4abc-a24f-0ec49c501bb5,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard for Small and Medium Business,MCOEVSMB_1,aa6791d3-bb09-4bc2-afed-c30c3fe26032,MCOEVSMB,ed777b71-af04-42ca-9798-84344c66f7c6,SKYPE FOR BUSINESS CLOUD PBX FOR SMALL AND MEDIUM BUSINESS +Microsoft Teams Phone Standard for Students,MCOEV_STUDENT,1f338bbc-767e-4a1e-a2d4-b73207cc5b93,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard for TELSTRA,MCOEV_TELSTRA,ffaf2d68-1c95-4eb3-9ddd-59b81fba0f61,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard_USGOV_DOD,MCOEV_USGOV_DOD,b0e7de67-e503-4934-b729-53d595ba5cd1,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard_USGOV_GCCHIGH,MCOEV_USGOV_GCCHIGH,985fcb26-7b94-475b-b512-89356697be71,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Resource Account,PHONESYSTEM_VIRTUALUSER,440eaaa8-b3e0-484b-a8be-62870b9ba70a,MCOEV_VIRTUALUSER,f47330e9-c134-43b3-9993-e7f004506889,Microsoft 365 Phone Standard Resource Account +Microsoft Teams Phone Resource Account for Faculty,PHONESYSTEM_VIRTUALUSER_FACULTY,0e142028-345e-45da-8d92-8bfd4093bbb9,MCOEV_VIRTUALUSER,f47330e9-c134-43b3-9993-e7f004506889,Microsoft 365 Phone Standard Resource Account +Microsoft Teams Phone Resource Account for GCC,PHONESYSTEM_VIRTUALUSER_GOV,2cf22bcb-0c9e-4bc6-8daf-7e7654c0f285,MCOEV_VIRTUALUSER_GOV,0628a73f-3b4a-4989-bd7b-0f8823144313,Microsoft 365 Phone Standard Resource Account for Government +Microsoft Teams Phone Resource Account_USGOV_GCCHIGH,PHONESYSTEM_VIRTUALUSER_USGOV_GCCHIGH ,e3f0522e-ebb7-4561-9f90-b44516d65b77,MCOEV_VIRTUALUSER,f47330e9-c134-43b3-9993-e7f004506889,Microsoft 365 Phone Standard Resource Account +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,MICROSOFT_ECDN,85704d55-2e73-47ee-93b4-4b8ea14db92b,Microsoft eCDN +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_MGMT,0504111f-feb8-4a3c-992a-70280f9a2869,Microsoft Teams Premium Intelligent +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_CUST,cc8c0802-a325-43df-8cba-995d0c6cb373,Microsoft Teams Premium Personalized +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_PROTECTION,f8b44f54-18bb-46a3-9658-44ab58712968,Microsoft Teams Premium Secure +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_VIRTUALAPPT,9104f592-f2a7-4f77-904c-ca5a5715883f,Microsoft Teams Premium Virtual Appointment +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,MCO_VIRTUAL_APPT,711413d0-b36e-4cd4-93db-0a50a4ab7ea3,Microsoft Teams Premium Virtual Appointments +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_WEBINAR,78b58230-ec7e-4309-913c-93a45cc4735b,Microsoft Teams Premium Webinar +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,Teams_Rooms_Basic,c8529366-cffd-4415-ab8f-be0144a33ab1,Teams Rooms Basic +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,Teams_Room_Basic,8081ca9c-188c-4b49-a8e5-c23b5e9463a8,Teams Rooms Test 1 +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,Teams_Room_Pro,ec17f317-f4bc-451e-b2da-0167e5c260f9,Teams Rooms Test 2 +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,Teams_Rooms_Basic,c8529366-cffd-4415-ab8f-be0144a33ab1,Teams Rooms Basic +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,Teams_Room_Basic,8081ca9c-188c-4b49-a8e5-c23b5e9463a8,Teams Rooms Test 1 +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,Teams_Room_Pro,ec17f317-f4bc-451e-b2da-0167e5c260f9,Teams Rooms Test 2 +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Basic without Audio Conferencing,Microsoft_Teams_Rooms_Basic_without_Audio_Conferencing,50509a35-f0bd-4c5e-89ac-22f0e16a00f8,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Basic without Audio Conferencing,Microsoft_Teams_Rooms_Basic_without_Audio_Conferencing,50509a35-f0bd-4c5e-89ac-22f0e16a00f8,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MTRProManagement,ecc74eae-eeb7-4ad5-9c88-e8b2bfca75b8,Microsoft Teams Rooms Pro Management +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,Teams_Rooms_Pro,0374d34c-6be4-4dbb-b3f0-26105db0b28a,Teams Rooms Pro +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,Teams_Room_Basic,8081ca9c-188c-4b49-a8e5-c23b5e9463a8,Teams Rooms Test 1 +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,Teams_Room_Pro,ec17f317-f4bc-451e-b2da-0167e5c260f9,Teams Rooms Test 2 +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,SPECIALTY_DEVICES,cfce7ae3-4b41-4438-999c-c0e91f3b7fb9,Specialty devices +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,Teams_Room_Basic,8081ca9c-188c-4b49-a8e5-c23b5e9463a8,Teams Rooms Test 1 +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,Teams_Room_Pro,ec17f317-f4bc-451e-b2da-0167e5c260f9,Teams Rooms Test 2 +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,INTUNE_A_GOV,d216f254-796f-4dab-bbfa-710686e646b9,Microsoft Intune G +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,MICROSOFT TEAMS +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,SPECIALTY_DEVICES,cfce7ae3-4b41-4438-999c-c0e91f3b7fb9,Specialty devices +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID Plan 1 +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,Teams_Room_Standard,92c6b761-01de-457a-9dd9-793a975238f7,Teams Room Standard +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium Plan 1 +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,Teams_Room_Standard,92c6b761-01de-457a-9dd9-793a975238f7,Teams Room Standard +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,INTUNE_A_GOV,d216f254-796f-4dab-bbfa-710686e646b9,Microsoft Intune G +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium Plan 1 +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,Teams_Room_Standard,92c6b761-01de-457a-9dd9-793a975238f7,Teams Room Standard +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,INTUNE_A_GOV,d216f254-796f-4dab-bbfa-710686e646b9,Microsoft Intune G +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,MCO_TEAMS_IW,42a3ec34-28ba-46b6-992f-db53a675ac5b,Microsoft Teams +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft Threat Experts - Experts on Demand,EXPERTS_ON_DEMAND,9fa2f157-c8e4-4351-a3f2-ffa506da1406,EXPERTS_ON_DEMAND,b83a66d4-f05f-414d-ac0f-ea1c5239c42b,Microsoft Threat Experts - Experts on Demand +Microsoft Viva Goals,Microsoft_Viva_Goals,ba929637-f158-4dee-927c-eb7cdefcd955,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Viva Goals,Microsoft_Viva_Goals,ba929637-f158-4dee-927c-eb7cdefcd955,Viva_Goals_Premium,b44c6eaf-5c9f-478c-8f16-8cea26353bfb,Viva Goals +Microsoft Viva Glint,Viva_Glint_Standalone,3dc7332d-f0fa-40a3-81d3-dd6b84469b78,Viva_Glint,6b270342-093e-4015-8c5c-224561532fbf,Viva Glint +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,GRAPH_CONNECTORS_SEARCH_INDEX_TOPICEXP,b74d57b2-58e9-484a-9731-aeccbba954f0,Graph Connectors Search with Index (Microsoft Viva Topics) +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,WORKPLACE_ANALYTICS_INSIGHTS_USER,b622badb-1b45-48d5-920f-4b27a2c0996c,Microsoft Viva Insights +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,WORKPLACE_ANALYTICS_INSIGHTS_BACKEND,ff7b261f-d98b-415b-827c-42a3fdf015af,Microsoft Viva Insights Backend +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,CORTEX,c815c93d-0759-4bb8-b857-bc921a71be83,Microsoft Viva Topics +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,VIVAENGAGE_COMMUNITIES_AND_COMMUNICATIONS,43304c6a-1d4e-4e0b-9b06-5b2a2ff58a90,Viva Engage Communities and Communications +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,VIVAENGAGE_KNOWLEDGE,c244cc9e-622f-4576-92ea-82e233e44e36,Viva Engage Knowledge +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,Viva_Goals_Premium,b44c6eaf-5c9f-478c-8f16-8cea26353bfb,Viva Goals +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,VIVA_LEARNING_PREMIUM,7162bd38-edae-4022-83a7-c5837f951759,Viva Learning +Minecraft Education Student,MEE_STUDENT,533b8f26-f74b-4e9c-9c59-50fc4b393b63,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education +Minecraft Education Student,MEE_STUDENT,533b8f26-f74b-4e9c-9c59-50fc4b393b63,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Minecraft Education Faculty,MEE_FACULTY,984df360-9a74-4647-8cf8-696749f6247a,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education +Minecraft Education Faculty,MEE_FACULTY,984df360-9a74-4647-8cf8-696749f6247a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Office 365 Multi-Geo Capabilities,OFFICE365_MULTIGEO,84951599-62b7-46f3-9c9d-30551b2ad607,EXCHANGEONLINE_MULTIGEO,897d51f1-2cfa-4848-9b30-469149f5e68e,Exchange Online Multi-Geo +Office 365 Multi-Geo Capabilities,OFFICE365_MULTIGEO,84951599-62b7-46f3-9c9d-30551b2ad607,SHAREPOINTONLINE_MULTIGEO,735c1d98-dd3f-4818-b4ed-c8052e18e62d,SharePoint Multi-Geo +Office 365 Multi-Geo Capabilities,OFFICE365_MULTIGEO,84951599-62b7-46f3-9c9d-30551b2ad607,TEAMSMULTIGEO,41eda15d-6b52-453b-906f-bc4a5b25a26b,Teams Multi-Geo +Nonprofit Portal,NONPROFIT_PORTAL,aa2695c9-8d59-4800-9dc8-12e01f1735af,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Nonprofit Portal,NONPROFIT_PORTAL,aa2695c9-8d59-4800-9dc8-12e01f1735af,NONPROFIT_PORTAL,7dbc2d88-20e2-4eb6-b065-4510b38d6eb2,Nonprofit Portal +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service - O365 P1 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro Plan 2 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service - O365 P1 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro Plan 2 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for EDU +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service - O365 P2 +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams_P2 +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro Plan 3 +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the web (Education) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 P2 +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint Plan 2 for EDU +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service - O365 P2 +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams_P2 +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro Plan 3 +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 P2 +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics -Premium +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics - Standard +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft Defender for Office 365 (Plan 1),ATP_ENTERPRISE,4ef96642-f096-40de-a3e9-d83fb2f90211,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 Extra File Storage for GCC,SHAREPOINTSTORAGE_GOV,e5788282-6381-469f-84f0-3d7d4021d34d,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE_S_FOUNDATION_GOV +Office 365 Extra File Storage for GCC,SHAREPOINTSTORAGE_GOV,e5788282-6381-469f-84f0-3d7d4021d34d,SHAREPOINTSTORAGE_GOV,e5bb877f-6ac9-4461-9e43-ca581543ab16,SHAREPOINTSTORAGE_GOV +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams_P1 +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for O365 E1 SKU +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,MCO_TEAMS_IW,42a3ec34-28ba-46b6-992f-db53a675ac5b,Microsoft Teams +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 P1 +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 Cloud App Security,ADALLOM_O365,84d5f90f-cd0d-4864-b90b-1c7ba63b4808,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Office 365 Cloud App Security,ADALLOM_O365,84d5f90f-cd0d-4864-b90b-1c7ba63b4808,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management +Office 365 Extra File Storage,SHAREPOINTSTORAGE,99049c9c-6011-4908-bf17-15f496e6519d,SHAREPOINTSTORAGE,be5a7ed5-c598-4fcd-a061-5e6724c68a58,Office 365 Extra File Storage +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFT_MYANALYTICS_FULL,0403bb98-9d17-4f94-b53e-eca56a7698a6,DO NOT USE - Microsoft MyAnalytics (Full) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,INSIGHTS_BY_MYANALYTICS,b088306e-925b-44ab-baa0-63291c629a91,Insights by MyAnalytics Backend +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PEOPLE_SKILLS_FOUNDATION,13b6da2c-0d84-450e-9f69-a33e221387ca,People Skills - Foundation +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,RETIRED - Places Core +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,FORMS_PLAN_E1_AR_GCCHIGH,9c37c053-dfe3-4421-b6d4-bac8b86d42bd,Microsoft Forms (Plan E1) for GCCHigh +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,MICROSOFT_SEARCH_GCCH,fc9f7921-4ca5-42c6-8533-1b84c4ee496b,Microsoft Search for Arlington +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,POWERAPPS_O365_P1_GCCHIGH,3913e44e-824e-490c-a182-82785d769b45,Power Apps for Office 365 for GCCHigh +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,FLOW_O365_P1_GCCHIGH,e923bad8-588e-44d5-acd0-b226daa7b4de,Power Automate for Office 365 for GCCHigh +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,BPOS_S_TODO_1 +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,MICROSOFT STREAM FOR O365 E1 SKU +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,BPOS_S_TODO_3 +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,EXCHANGE ONLINE (PLAN 2) +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,FLOW FOR OFFICE 365 +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,MICROSOFT FORMS (PLAN E5) +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,OFFICESUBSCRIPTION +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,POWERAPPS FOR OFFICE 36 +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,SHAREPOINT_S_DEVELOPER,a361d6e2-509e-4e25-a8ad-950060064ef4,SHAREPOINT FOR DEVELOPER +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,SHAREPOINTWAC_DEVELOPER,527f7cdd-0e86-4c47-b879-f5fd357a3ac6,OFFICE ONLINE FOR DEVELOPER +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,MICROSOFT STREAM FOR O365 E5 SKU +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,TEAMS_AR_DOD,fd500458-c24c-478e-856c-a6067a8376cd,Microsoft Teams for DOD (AR) +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Office 365 ProPlus +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office Online +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh (AR) +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Office 365 ProPlus +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office Online +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,BPOS_S_TODO_2 +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,EXCHANGE ONLINE (PLAN 2) +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,FLOW FOR OFFICE 365 +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,MICROSOFT FORMS (PLAN E3) +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,MCOVOICECONF,27216c54-caf8-4d0d-97e2-517afb5c08f6,SKYPE FOR BUSINESS ONLINE (PLAN 3) +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,OFFICESUBSCRIPTION +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,POWERAPPS FOR OFFICE 36 +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,MICROSOFT Microsoft Entra RIGHTS +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,MICROSOFT STREAM FOR O365 E3 SKU +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service - O365 P3 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams_P3 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics - Standard +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,M365 Communication Compliance +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for O365 E5 SKU +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 P3 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,PowerApps for Office 365 Plan 3 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,Microsoft Communications Compliance +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service - O365 F1 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams_F1 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,FORMS_PLAN_K,f07046bd-2a3c-4b96-b0be-dea79d7cbfb8,Microsoft Forms (Plan F1) +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,KAIZALA_O365_P1,73b2a583-6a59-42e3-8e83-54db46bc3278,Microsoft Kaizala Pro Plan 1 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,POWERAPPS_O365_S1,e0287f9f-e222-4f98-9a83-f379e249159a,Power Apps for Office 365 F3 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,FLOW_O365_S1,bd91b1a4-9f94-4ecf-b45b-3a65e5c8128a,Power Automate for Office 365 F3 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,POWER_VIRTUAL_AGENTS_O365_F1,ba2fdb48-290b-4632-b46a-e4ecc58ac11a,Power Virtual Agents for Office 365 F1 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,PROJECT_O365_F3,7f6f28c2-34bb-4d4b-be36-48ca2e77e1ec,Project for Office (Plan F) +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,FORMS_PLAN_K,f07046bd-2a3c-4b96-b0be-dea79d7cbfb8,Microsoft Forms (Plan F1) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,KAIZALA_O365_P1,73b2a583-6a59-42e3-8e83-54db46bc3278,Microsoft Kaizala Pro +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,PROJECT_O365_F3,7f6f28c2-34bb-4d4b-be36-48ca2e77e1ec,Project for Office (Plan F) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,POWERAPPS_O365_S1,e0287f9f-e222-4f98-9a83-f379e249159a,Power Apps for Office 365 F3 +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,FLOW_O365_S1,bd91b1a4-9f94-4ecf-b45b-3a65e5c8128a,Power Automate for Office 365 F3 +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,POWER_VIRTUAL_AGENTS_O365_F1,ba2fdb48-290b-4632-b46a-e4ecc58ac11a,Power Virtual Agents for Office 365 +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,FORMS_PLAN_K_AR_GCCHIGH,59fb5884-fdec-40bf-aa7f-89e2bae79a7a,Microsoft Forms (Plan F1) for GCCHigh +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,MICROSOFT_SEARCH_GCCH,fc9f7921-4ca5-42c6-8533-1b84c4ee496b,Microsoft Search for Arlington +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,POWERAPPS_O365_S1_GCCHIGH,b9f1a92f-d4c7-477b-b64c-e23d7b4e8cf9,Power Apps for Office 365 F3 for GCCHigh +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,FLOW_O365_S1_GCCHIGH,1db85bca-cd60-4bf5-ae54-641e0778a532,Power Automate for Office 365 F3 for GCCHigh +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,DYN365_CDS_O365_P1_GCC,8eb5e9bc-783f-4425-921a-c65f45dd72c6,Common Data Service - O365 P1 GCC +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,CDS_O365_P1_GCC,959e5dec-6522-4d44-8349-132c27c3795a,Common Data Service for Teams_P1 GCC +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,EXCHANGE_S_STANDARD_GOV,e9b4930a-925f-45e2-ac2a-3f7788ca6fdd,Exchange Online (Plan 1) for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,FORMS_GOV_E1,f4cba850-4f34-4fd2-a341-0fddfdce1e8f,Forms for Government (Plan E1) +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,STREAM_O365_E1_GOV,15267263-5986-449d-ac5c-124f3b49b2d6,Microsoft Stream for O365 for Government (E1) +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,OFFICEMOBILE_SUBSCRIPTION_GOV,4ccb60ee-9523-48fd-8f63-4b090f1ad77a,Office Mobile Apps for Office 365 for GCC +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,POWERAPPS_O365_P1_GOV,c42aa49a-f357-45d5-9972-bc29df885fee,Power Apps for Office 365 for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,FLOW_O365_P1_GOV,ad6c8870-6356-474c-901c-64d7da8cea48,Power Automate for Office 365 for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,SharePoint Plan 1G,f9c43823-deb4-46a8-aa65-8b551f0c4f8a,SharePoint Plan 1G +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,CDS_O365_P2_GCC,a70bbf38-cdda-470d-adb8-5804b8770f41,Common Data Service for Teams +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,FORMS_GOV_E3,24af5f65-d0f3-467b-9f78-ea798c4aeffc,Microsoft Forms for Government (Plan E3) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,PROJECT_O365_P2_GOV,e7d09ae4-099a-4c34-a2a2-3e166e95c44a,Project for Government (Plan E3) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,STREAM_O365_E3_GOV,2c1ada27-dbaa-46f9-bda6-ecb94445f758,Stream for Office 365 for Government (E3) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,DYN365_CDS_O365_P2_GCC,06162da2-ebf9-4954-99a0-00fee96f95cc,Common Data Service +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,CDS_O365_P2_GCC,a70bbf38-cdda-470d-adb8-5804b8770f41,Common Data Service for Teams +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,FORMS_GOV_E3,24af5f65-d0f3-467b-9f78-ea798c4aeffc,Microsoft Forms for Government (Plan E3) +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,OFFICEMOBILE_SUBSCRIPTION_GOV,4ccb60ee-9523-48fd-8f63-4b090f1ad77a,Office Mobile Apps for Office 365 for GCC +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,PROJECT_O365_P2_GOV,e7d09ae4-099a-4c34-a2a2-3e166e95c44a,Project for Government (Plan E3) +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,STREAM_O365_E3_GOV,2c1ada27-dbaa-46f9-bda6-ecb94445f758,Stream for Office 365 for Government (E3) +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,DYN365_CDS_O365_P2_GCC,06162da2-ebf9-4954-99a0-00fee96f95cc,Common Data Service +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,EXCHANGE_S_STANDARD_MIDMARKET,fc52cc4b-ed7d-472d-bbe7-b081c23ecc56,EXCHANGE ONLINE PLAN +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,MCOSTANDARD_MIDMARKET,b2669e95-76ef-4e7e-a367-002f60a39f3e,SKYPE FOR BUSINESS ONLINE (PLAN 2) FOR MIDSIZ +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,OFFICESUBSCRIPTION +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,SHAREPOINTENTERPRISE_MIDMARKET,6b5b6a67-fc72-4a1f-a2b5-beecf05de761,SHAREPOINT PLAN 1 +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,YAMMER_MIDSIZE,41bf139a-4e60-409f-9346-a1361efc6dfb,YAMMER_MIDSIZE +Office 365 Small Business,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,EXCHANGE_L_STANDARD,d42bdbd6-c335-4231-ab3d-c8f348d5aff5,EXCHANGE ONLINE (P1) +Office 365 Small Business,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,MCOLITE,70710b6b-3ab4-4a38-9f6d-9f169461650a,SKYPE FOR BUSINESS ONLINE (PLAN P1) +Office 365 Small Business,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,SHAREPOINTLITE,a1f3d0a8-84c0-4ae0-bae4-685917b8ab48,SHAREPOINTLITE +Office 365 Small Business,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,EXCHANGE_L_STANDARD,d42bdbd6-c335-4231-ab3d-c8f348d5aff5,EXCHANGE ONLINE (P1) +Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,MCOLITE,70710b6b-3ab4-4a38-9f6d-9f169461650a,SKYPE FOR BUSINESS ONLINE (PLAN P1) +Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,OFFICE_PRO_PLUS_SUBSCRIPTION_SMBIZ,8ca59559-e2ca-470b-b7dd-afd8c0dee963,OFFICE 365 SMALL BUSINESS SUBSCRIPTION +Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,SHAREPOINTLITE,a1f3d0a8-84c0-4ae0-bae4-685917b8ab48,SHAREPOINTLITE +Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,FLOW_FOR_PROJECT_GCC,7251de8f-ecfb-481e-bcff-4af4f1a4573c,Data integration for Project with Power Automate for GCC +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,OFFICEMOBILE_SUBSCRIPTION_GOV,4ccb60ee-9523-48fd-8f63-4b090f1ad77a,Office Mobile Apps for Office 365 for GCC +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,PROJECT_PROFESSIONAL_FOR_GOV,49c7bc16-7004-4df6-8cd5-4ec48b7e9ea0,Project P3 for GOV +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC +OneDrive for Business (Plan 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +OneDrive for Business (Plan 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,ONEDRIVESTANDARD +OneDrive for Business (Plan 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +OneDrive for Business (Plan 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +OneDrive for Business (Plan 2),WACONEDRIVEENTERPRISE,ed01faf2-1d88-4947-ae91-45ca18703a96,ONEDRIVEENTERPRISE,afcafa6a-d966-4462-918c-ec0b4e0fe642,ONEDRIVEENTERPRISE +OneDrive for Business (Plan 2),WACONEDRIVEENTERPRISE,ed01faf2-1d88-4947-ae91-45ca18703a96,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,CDSAICAPACITY_PERAPP,5d7a2e9a-4ee5-4f1c-bc9f-abc481bf39d8,AI Builder capacity Per App add-on +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,DYN365_CDS_P1_GOV,ce361df2-f2a5-4713-953f-4050ba09aad8,Common Data Service for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,DYN365_CDS_P2_GOV,37396c73-2203-48e6-8be1-d882dae53275,Common Data Service for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,DYN365_CDS_FOR_PROJECT_GCC_P5,684a2229-5c57-43ab-b69f-f86fe8997358,Common Data Service for Project P5 for GCC +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,CDSAICAPACITY_PERUSER,91f50f7b-2204-4803-acac-5cf5668b8b39,AI Builder capacity Per User add-on +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_O365_S1_GOV,49f06c3d-da7d-4fa0-bcce-1458fdd18a59,Power Apps for Office 365 F3 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_O365_P1_GOV,c42aa49a-f357-45d5-9972-bc29df885fee,Power Apps for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_DYN_TEAM_GOV,47bdde6a-959f-4c7f-8d59-3243e34f1cb3,Power Automate for Dynamics 365 Team Members for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_O365_S1_GOV,5d32692e-5b24-4a59-a77e-b2a8650e25c1,Power Automate for Office 365 F3 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_O365_P1_GOV,ad6c8870-6356-474c-901c-64d7da8cea48,Power Automate for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_DYN_P2_GOV,06879193-37cc-4976-8991-f8165c994ce7,Power Automate P2 for Dynamics 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_DYN_TEAM_GOV,63efc247-5f28-43e3-a2f8-00c183e3f1db,PowerApps for Dynamics 365 Team Members for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_DYN_P2_GOV,51729bb5-7564-4927-8df8-9f5b12279cf3,PowerApps Plan 2 for Dynamics 365 for Government +Power Apps and Logic Flows,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Power Apps and Logic Flows,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,POWERFLOWSFREE,0b4346bb-8dc3-4079-9dfc-513696f56039,LOGIC FLOWS +Power Apps and Logic Flows,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,POWERVIDEOSFREE,2c4ec2dc-c62d-4167-a966-52a3e6374015,MICROSOFT POWER VIDEOS BASIC +Power Apps and Logic Flows,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,POWERAPPSFREE,e61a2945-1d4e-4523-b6e7-30ba39d20f32,MICROSOFT POWERAPPS +PowerApps per app baseline access,POWERAPPS_PER_APP_IW,bf666882-9c9b-4b2e-aa2f-4789b0a52ba2,CDS_PER_APP_IWTRIAL,94a669d1-84d5-4e54-8462-53b0ae2c8be5,CDS Per app baseline access +PowerApps per app baseline access,POWERAPPS_PER_APP_IW,bf666882-9c9b-4b2e-aa2f-4789b0a52ba2,Flow_Per_APP_IWTRIAL,dd14867e-8d31-4779-a595-304405f5ad39,Flow per app baseline access +PowerApps per app baseline access,POWERAPPS_PER_APP_IW,bf666882-9c9b-4b2e-aa2f-4789b0a52ba2,POWERAPPS_PER_APP_IWTRIAL,35122886-cef5-44a3-ab36-97134eabd9ba,PowerApps per app baseline access +Power Apps Per App BD Only for GCC,POWERAPPS_PER_APP_BD_ONLY_GCC,cdc8d0fc-fd16-4954-aae6-ed89a99f5620,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps Per App BD Only for GCC,POWERAPPS_PER_APP_BD_ONLY_GCC,cdc8d0fc-fd16-4954-aae6-ed89a99f5620,CDS_ POWERAPPS_PER_APP_CUSTOM_GCC,ee493f70-a3b3-4204-9511-e3f6083b8df3,CDS Power Apps Per App Custom GCC +Power Apps Per App BD Only for GCC,POWERAPPS_PER_APP_BD_ONLY_GCC,cdc8d0fc-fd16-4954-aae6-ed89a99f5620,POWERAPPS_PER_APP_GCC,be6e5cba-3661-424c-b79a-6d95fa1d849a,Power Apps per App Plan for Government +Power Apps Per App BD Only for GCC,POWERAPPS_PER_APP_BD_ONLY_GCC,cdc8d0fc-fd16-4954-aae6-ed89a99f5620,Flow_Per_APP_GCC,8e2c2c3d-07f6-4da7-86a9-e78cc8c2c8b9,Power Automate for Power Apps per App Plan for Government +Power Apps per app plan,POWERAPPS_PER_APP,a8ad7d2b-b8cf-49d6-b25a-69094a0be206,CDS_PER_APP,9f2f00ad-21ae-4ceb-994b-d8bc7be90999,CDS PowerApps per app plan +Power Apps per app plan,POWERAPPS_PER_APP,a8ad7d2b-b8cf-49d6-b25a-69094a0be206,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps per app plan,POWERAPPS_PER_APP,a8ad7d2b-b8cf-49d6-b25a-69094a0be206,POWERAPPS_PER_APP,b4f657ff-d83e-4053-909d-baa2b595ec97,Power Apps per App Plan +Power Apps per app plan,POWERAPPS_PER_APP,a8ad7d2b-b8cf-49d6-b25a-69094a0be206,Flow_Per_APP,c539fa36-a64e-479a-82e1-e40ff2aa83ee,Power Automate for Power Apps per App Plan +Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,CDSAICAPACITY_PERAPP,5d7a2e9a-4ee5-4f1c-bc9f-abc481bf39d8,AI Builder capacity Per App add-on +Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,DATAVERSE_POWERAPPS_PER_APP_NEW,6f0e9100-ff66-41ce-96fc-3d8b7ad26887,Dataverse for Power Apps per app +Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,POWERAPPS_PER_APP_NEW,14f8dac2-0784-4daa-9cb2-6d670b088d64,Power Apps per app +Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,Flow_Per_APP,c539fa36-a64e-479a-82e1-e40ff2aa83ee,Power Automate for Power Apps per App Plan +Power Apps per app plan (1 app or website) BD Only - GCC,Power_Apps_per_app_plan_(1_app_or_portal)_BD_Only_GCC,816ee058-f70c-42ad-b433-d6171984ea20,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps per app plan (1 app or website) BD Only - GCC,Power_Apps_per_app_plan_(1_app_or_portal)_BD_Only_GCC,816ee058-f70c-42ad-b433-d6171984ea20,CDS_ POWERAPPS_PER_APP_CUSTOM_NEW,c2da6658-f89d-49f2-9508-40431dee115b,CDS Power Apps Per App Custom New +Power Apps per app plan (1 app or website) BD Only - GCC,Power_Apps_per_app_plan_(1_app_or_portal)_BD_Only_GCC,816ee058-f70c-42ad-b433-d6171984ea20,POWERAPPS_PER_APP_GCC_NEW,70091fc8-1836-470f-a386-f4e6639cb04e,Power Apps per app for GCC +Power Apps per app plan (1 app or website) BD Only - GCC,Power_Apps_per_app_plan_(1_app_or_portal)_BD_Only_GCC,816ee058-f70c-42ad-b433-d6171984ea20,Flow_Per_APP_GCC,8e2c2c3d-07f6-4da7-86a9-e78cc8c2c8b9,Power Automate for Power Apps per App Plan for Government +Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,CDSAICAPACITY_PERAPP,5d7a2e9a-4ee5-4f1c-bc9f-abc481bf39d8,AI Builder capacity Per App add-on +Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,DATAVERSE_POWERAPPS_PER_APP_NEW,6f0e9100-ff66-41ce-96fc-3d8b7ad26887,Dataverse for Power Apps per app +Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,POWERAPPS_PER_APP_GCC_NEW,70091fc8-1836-470f-a386-f4e6639cb04e,Power Apps per app for GCC +Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,Flow_Per_APP_GCC,8e2c2c3d-07f6-4da7-86a9-e78cc8c2c8b9,Power Automate for Power Apps per App Plan for Government +Power Apps per app plan for Government,POWERAPPS_PER_APP_GCC,8623b2d7-5e24-4281-b6b7-086a5f3b0b1c,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps per app plan for Government,POWERAPPS_PER_APP_GCC,8623b2d7-5e24-4281-b6b7-086a5f3b0b1c,CDS_PER_APP_GCC,d7f9c9bc-0a28-4da4-b5f1-731acb27a3e4,CDS PowerApps per app plan for GCC +Power Apps per app plan for Government,POWERAPPS_PER_APP_GCC,8623b2d7-5e24-4281-b6b7-086a5f3b0b1c,POWERAPPS_PER_APP_GCC,be6e5cba-3661-424c-b79a-6d95fa1d849a,Power Apps per App Plan for Government +Power Apps per app plan for Government,POWERAPPS_PER_APP_GCC,8623b2d7-5e24-4281-b6b7-086a5f3b0b1c,Flow_Per_APP_GCC,8e2c2c3d-07f6-4da7-86a9-e78cc8c2c8b9,Power Automate for Power Apps per App Plan for Government +Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,CDS_ POWERAPPS_PER_USER_CUSTOM,2e8dde43-6986-479d-b179-7dbe31c31f60,CDS Power Apps Per User Custom +Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,POWERAPPS_PER_USER,ea2cf03b-ac60-46ae-9c1d-eeaeb63cec86,Power Apps per User Plan +Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,Flow_PowerApps_PerUser,dc789ed8-0170-4b65-a415-eb77d5bb350a,Power Automate for Power Apps per User Plan +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,CDSAICAPACITY_PERUSER_NEW,74d93933-6f22-436e-9441-66d205435abb,AI Builder capacity Per User add-on +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,CDSAICAPACITY_PERUSER,91f50f7b-2204-4803-acac-5cf5668b8b39,DO NOT USE - AI Builder capacity Per User add-on +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,POWERAPPS_PER_USER,ea2cf03b-ac60-46ae-9c1d-eeaeb63cec86,Power Apps per User Plan +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,Flow_PowerApps_PerUser,dc789ed8-0170-4b65-a415-eb77d5bb350a,Power Automate for Power Apps per User Plan +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,POWERAPPS_PER_USER,ea2cf03b-ac60-46ae-9c1d-eeaeb63cec86,Power Apps per User Plan +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,Flow_PowerApps_PerUser,dc789ed8-0170-4b65-a415-eb77d5bb350a,Power Automate for Power Apps per User Plan +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,CDSAICAPACITY_PERUSER,91f50f7b-2204-4803-acac-5cf5668b8b39,AI Builder capacity Per User add-on +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,CDSAICAPACITY_PERUSER_NEW,74d93933-6f22-436e-9441-66d205435abb,AI Builder capacity Per User add-on +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,DYN365_CDS_P2_GOV,37396c73-2203-48e6-8be1-d882dae53275,Common Data Service for Government +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,POWERAPPS_PER_USER_GCC,8f55b472-f8bf-40a9-be30-e29919d4ddfe,Power Apps per User Plan for Government +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,Flow_PowerApps_PerUser_GCC,8e3eb3bd-bc99-4221-81b8-8b8bc882e128,Power Automate for Power Apps per User Plan for GCC +PowerApps Plan 1 for Government,POWERAPPS_P1_GOV,eca22b68-b31f-4e9c-a20c-4d40287bc5dd,DYN365_CDS_P1_GOV,ce361df2-f2a5-4713-953f-4050ba09aad8,Common Data Service for Government +PowerApps Plan 1 for Government,POWERAPPS_P1_GOV,eca22b68-b31f-4e9c-a20c-4d40287bc5dd,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +PowerApps Plan 1 for Government,POWERAPPS_P1_GOV,eca22b68-b31f-4e9c-a20c-4d40287bc5dd,FLOW_P1_GOV,774da41c-a8b3-47c1-8322-b9c1ab68be9f,Power Automate (Plan 1) for Government +PowerApps Plan 1 for Government,POWERAPPS_P1_GOV,eca22b68-b31f-4e9c-a20c-4d40287bc5dd,POWERAPPS_P1_GOV,5ce719f1-169f-4021-8a64-7d24dcaec15f,PowerApps Plan 1 for Government +Power Apps Portals login capacity add-on Tier 2 (10 unit min),POWERAPPS_PORTALS_LOGIN_T2,57f3babd-73ce-40de-bcb2-dadbfbfff9f7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Portals login capacity add-on Tier 2 (10 unit min),POWERAPPS_PORTALS_LOGIN_T2,57f3babd-73ce-40de-bcb2-dadbfbfff9f7,CDS_POWERAPPS_PORTALS_LOGIN,32ad3a4e-2272-43b4-88d0-80d284258208,Common Data Service Power Apps Portals Login Capacity +Power Apps Portals login capacity add-on Tier 2 (10 unit min),POWERAPPS_PORTALS_LOGIN_T2,57f3babd-73ce-40de-bcb2-dadbfbfff9f7,POWERAPPS_PORTALS_LOGIN,084747ad-b095-4a57-b41f-061d84d69f6f,Power Apps Portals Login Capacity Add-On +Power Apps Portals login capacity add-on Tier 2 (10 unit min) for Government,POWERAPPS_PORTALS_LOGIN_T2_GCC,26c903d5-d385-4cb1-b650-8d81a643b3c4,CDS_POWERAPPS_PORTALS_LOGIN_GCC,0f7b9a29-7990-44ff-9d05-a76be778f410,Common Data Service Power Apps Portals Login Capacity for GCC +Power Apps Portals login capacity add-on Tier 2 (10 unit min) for Government,POWERAPPS_PORTALS_LOGIN_T2_GCC,26c903d5-d385-4cb1-b650-8d81a643b3c4,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps Portals login capacity add-on Tier 2 (10 unit min) for Government,POWERAPPS_PORTALS_LOGIN_T2_GCC,26c903d5-d385-4cb1-b650-8d81a643b3c4,POWERAPPS_PORTALS_LOGIN_GCC,bea6aef1-f52d-4cce-ae09-bed96c4b1811,Power Apps Portals Login Capacity Add-On for Government +Power Apps Portals login capacity add-on Tier 3 (50 unit min),POWERAPPS_PORTALS_LOGIN_T3,927d8402-8d3b-40e8-b779-34e859f7b497,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Portals login capacity add-on Tier 3 (50 unit min),POWERAPPS_PORTALS_LOGIN_T3,927d8402-8d3b-40e8-b779-34e859f7b497,CDS_POWERAPPS_PORTALS_LOGIN,32ad3a4e-2272-43b4-88d0-80d284258208,Common Data Service Power Apps Portals Login Capacity +Power Apps Portals login capacity add-on Tier 3 (50 unit min),POWERAPPS_PORTALS_LOGIN_T3,927d8402-8d3b-40e8-b779-34e859f7b497,POWERAPPS_PORTALS_LOGIN,084747ad-b095-4a57-b41f-061d84d69f6f,Power Apps Portals Login Capacity Add-On +Power Apps Portals page view capacity add-on,POWERAPPS_PORTALS_PAGEVIEW,a0de5e3a-2500-4a19-b8f4-ec1c64692d22,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Portals page view capacity add-on,POWERAPPS_PORTALS_PAGEVIEW,a0de5e3a-2500-4a19-b8f4-ec1c64692d22,CDS_POWERAPPS_PORTALS_PAGEVIEW,72c30473-7845-460a-9feb-b58f216e8694,CDS PowerApps Portals page view capacity add-on +Power Apps Portals page view capacity add-on,POWERAPPS_PORTALS_PAGEVIEW,a0de5e3a-2500-4a19-b8f4-ec1c64692d22,POWERAPPS_PORTALS_PAGEVIEW,1c5a559a-ec06-4f76-be5b-6a315418495f,Power Apps Portals Page View Capacity Add-On +Power Apps Portals page view capacity add-on for Government,POWERAPPS_PORTALS_PAGEVIEW_GCC,15a64d3e-5b99-4c4b-ae8f-aa6da264bfe7,CDS_POWERAPPS_PORTALS_PAGEVIEW_GCC,352257a9-db78-4217-a29d-8b8d4705b014,CDS PowerApps Portals page view capacity add-on for GCC +Power Apps Portals page view capacity add-on for Government,POWERAPPS_PORTALS_PAGEVIEW_GCC,15a64d3e-5b99-4c4b-ae8f-aa6da264bfe7,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps Portals page view capacity add-on for Government,POWERAPPS_PORTALS_PAGEVIEW_GCC,15a64d3e-5b99-4c4b-ae8f-aa6da264bfe7,POWERAPPS_PORTALS_PAGEVIEW_GCC,483d5646-7724-46ac-ad71-c78b7f099d8d,Power Apps Portals Page View Capacity Add-On for Government +Power Automate per flow plan,FLOW_BUSINESS_PROCESS,b3a42176-0a8c-4c3f-ba4e-f2b37fe5be6b,CDS_Flow_Business_Process,c84e52ae-1906-4947-ac4d-6fb3e5bf7c2e,Common data service for Flow per business process plan +Power Automate per flow plan,FLOW_BUSINESS_PROCESS,b3a42176-0a8c-4c3f-ba4e-f2b37fe5be6b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Automate per flow plan,FLOW_BUSINESS_PROCESS,b3a42176-0a8c-4c3f-ba4e-f2b37fe5be6b,FLOW_BUSINESS_PROCESS,7e017b61-a6e0-4bdc-861a-932846591f6e,Flow per business process plan +Power Automate per flow plan for Government,FLOW_BUSINESS_PROCESS_GCC,d9de51e5-d8cd-45bb-8da3-1d55e28c52e6,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Automate per flow plan for Government,FLOW_BUSINESS_PROCESS_GCC,d9de51e5-d8cd-45bb-8da3-1d55e28c52e6,CDS_Flow_Business_Process_GCC,54b61386-c818-4634-8400-61c9e8f6acd3,Common Data Service for Power Automate per Business Process Plan for GCC +Power Automate per flow plan for Government,FLOW_BUSINESS_PROCESS_GCC,d9de51e5-d8cd-45bb-8da3-1d55e28c52e6,FLOW_BUSINESS_PROCESS_GCC,cb83e771-a077-4a73-9201-d955585b29fa,Power Automate per Business Process Plan for Government +Power Automate per user plan,FLOW_PER_USER,4a51bf65-409c-4a91-b845-1121b571cc9d,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 +Power Automate per user plan,FLOW_PER_USER,4a51bf65-409c-4a91-b845-1121b571cc9d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Automate per user plan,FLOW_PER_USER,4a51bf65-409c-4a91-b845-1121b571cc9d,FLOW_PER_USER,c5002c70-f725-4367-b409-f0eff4fee6c0,Flow per user plan +Power Automate per user plan dept,FLOW_PER_USER_DEPT,d80a4c5d-8f05-4b64-9926-6574b9e6aee4,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 +Power Automate per user plan dept,FLOW_PER_USER_DEPT,d80a4c5d-8f05-4b64-9926-6574b9e6aee4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Automate per user plan dept,FLOW_PER_USER_DEPT,d80a4c5d-8f05-4b64-9926-6574b9e6aee4,FLOW_PER_USER,c5002c70-f725-4367-b409-f0eff4fee6c0,Flow per user plan +Power Automate per user plan for Government,FLOW_PER_USER_GCC,c8803586-c136-479a-8ff3-f5f32d23a68e,DYN365_CDS_P2_GOV,37396c73-2203-48e6-8be1-d882dae53275,Common Data Service for Government +Power Automate per user plan for Government,FLOW_PER_USER_GCC,c8803586-c136-479a-8ff3-f5f32d23a68e,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Automate per user plan for Government,FLOW_PER_USER_GCC,c8803586-c136-479a-8ff3-f5f32d23a68e,FLOW_PER_USER_GCC,769b8bee-2779-4c5a-9456-6f4f8629fd41,Power Automate per User Plan for Government +Power Automate Premium,POWERAUTOMATE_ATTENDED_RPA,eda1941c-3c4f-4995-b5eb-e85a42175ab9,CDS_ATTENDED_RPA,3da2fd4c-1bee-4b61-a17f-94c31e5cab93,Common Data Service Attended RPA +Power Automate Premium,POWERAUTOMATE_ATTENDED_RPA,eda1941c-3c4f-4995-b5eb-e85a42175ab9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Automate Premium,POWERAUTOMATE_ATTENDED_RPA,eda1941c-3c4f-4995-b5eb-e85a42175ab9,POWER_AUTOMATE_ATTENDED_RPA,375cd0ad-c407-49fd-866a-0bff4f8a9a4d,Power Automate RPA Attended +Power Automate Premium for Government,POWERAUTOMATE_ATTENDED_RPA_GCC,d3987516-4b53-4dc0-8335-411260bf5626,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Automate Premium for Government,POWERAUTOMATE_ATTENDED_RPA_GCC,d3987516-4b53-4dc0-8335-411260bf5626,CDS_ATTENDED_RPA_GCC,4802707d-47e1-45dc-82c5-b6981f0fb38c,Common Data Service Attended RPA for Government +Power Automate Premium for Government,POWERAUTOMATE_ATTENDED_RPA_GCC,d3987516-4b53-4dc0-8335-411260bf5626,POWER_AUTOMATE_ATTENDED_RPA_GCC,fb613c67-1a58-4645-a8df-21e95a37d433,Power Automate Attended RPA for Government +Power Automate Process,Power_Automate_per_process,253ce8d3-6122-4240-8b04-f434a8fa831f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Automate Process,Power_Automate_per_process,253ce8d3-6122-4240-8b04-f434a8fa831f,DATAVERSE_FOR_POWER_AUTOMATE_PER_PROCESS,d7c3df99-6f58-40b9-8940-cd3a51679d85,Dataverse for Power Automate Per Process +Power Automate unattended RPA add-on,POWERAUTOMATE_UNATTENDED_RPA,3539d28c-6e35-4a30-b3a9-cd43d5d3e0e2,CDS_UNATTENDED_RPA,b475952f-128a-4a44-b82a-0b98a45ca7fb,Common Data Service Unattended RPA +Power Automate unattended RPA add-on,POWERAUTOMATE_UNATTENDED_RPA,3539d28c-6e35-4a30-b3a9-cd43d5d3e0e2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Automate unattended RPA add-on,POWERAUTOMATE_UNATTENDED_RPA,3539d28c-6e35-4a30-b3a9-cd43d5d3e0e2,POWER_AUTOMATE_UNATTENDED_RPA,0d373a98-a27a-426f-8993-f9a425ae99c5,Power Automate Unattended RPA add-on +Power Automate unattended RPA add-on for Government,POWERAUTOMATE_UNATTENDED_RPA_GCC,086e9b70-4720-4442-ab6d-3ef32bfb4721,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Automate unattended RPA add-on for Government,POWERAUTOMATE_UNATTENDED_RPA_GCC,086e9b70-4720-4442-ab6d-3ef32bfb4721,CDS_UNATTENDED_RPA_GCC,5141c408-df3d-456a-9878-a65119b0a750,Common Data Service Unattended RPA for Government +Power Automate unattended RPA add-on for Government,POWERAUTOMATE_UNATTENDED_RPA_GCC,086e9b70-4720-4442-ab6d-3ef32bfb4721,POWER_AUTOMATE_UNATTENDED_RPA_GCC,45e63e9f-6dd9-41fd-bd41-93bfa008c537,Power Automate Unattended RPA for Government +Power BI,POWER_BI_INDIVIDUAL_USER,e2767865-c3c9-4f09-9f99-6eee6eef861a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI,POWER_BI_INDIVIDUAL_USER,e2767865-c3c9-4f09-9f99-6eee6eef861a,SQL_IS_SSIM,fc0a60aa-feee-4746-a0e3-aecfe81a38dd,Microsoft Power BI Information Services Plan 1 +Power BI,POWER_BI_INDIVIDUAL_USER,e2767865-c3c9-4f09-9f99-6eee6eef861a,BI_AZURE_P1,2125cfd7-2110-4567-83c4-c1cd5275163d,Microsoft Power BI Reporting and Analytics Plan 1 +Power BI for Office 365 Add-On,POWER_BI_ADDON,45bc2c81-6072-436a-9b0b-3b12eefbc402,BI_AZURE_P1,2125cfd7-2110-4567-83c4-c1cd5275163d,MICROSOFT POWER BI REPORTING AND ANALYTICS PLAN 1 +Power BI for Office 365 Add-On,POWER_BI_ADDON,45bc2c81-6072-436a-9b0b-3b12eefbc402,SQL_IS_SSIM,fc0a60aa-feee-4746-a0e3-aecfe81a38dd,MICROSOFT POWER BI INFORMATION SERVICES PLAN +Power BI Premium P1,PBI_PREMIUM_P1_ADDON,7b26f5ab-a763-4c00-a1ac-f6c4b5506945,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Premium P1,PBI_PREMIUM_P1_ADDON,7b26f5ab-a763-4c00-a1ac-f6c4b5506945,PBI_PREMIUM_P1_ADDON,9da49a6d-707a-48a1-b44a-53dcde5267f8,Power BI Premium P +Power BI Premium P1 GCC,PBI_PREMIUM_P1_ADDON_GCC,f59b22a0-9819-48bf-b01d-715ef2b31027,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power BI Premium P1 GCC,PBI_PREMIUM_P1_ADDON_GCC,f59b22a0-9819-48bf-b01d-715ef2b31027,PBI_PREMIUM_P1_ADDON_GCC,30df3dbd-5bf6-4d74-9417-cccc096595e4,Power BI Premium P1 for GCC +Power BI Premium Per User,PBI_PREMIUM_PER_USER,c1d032e0-5619-4761-9b5c-75b6831e1711,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Premium Per User,PBI_PREMIUM_PER_USER,c1d032e0-5619-4761-9b5c-75b6831e1711,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User +Power BI Premium Per User,PBI_PREMIUM_PER_USER,c1d032e0-5619-4761-9b5c-75b6831e1711,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Premium Per User Add-On,PBI_PREMIUM_PER_USER_ADDON,de376a03-6e5b-42ec-855f-093fb50b8ca5,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User +Power BI Premium Per User Add-On for Faculty,PBI_PREMIUM_PER_USER_ADDON_FACULTY,c05b235f-be75-4029-8851-6a4170758eef,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User +Power BI Premium Per User Add-On for Faculty,PBI_PREMIUM_PER_USER_ADDON_FACULTY,c05b235f-be75-4029-8851-6a4170758eef,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Power BI Premium Per User Add-On for GCC,PBI_PREMIUM_PER_USER_ADDON_CE_GCC,66024bbf-4cd4-4329-95c8-c932e2ae01a8,BI_AZURE_P3_GOV,32d15238-9a8c-46da-af3f-21fc5351d365,Power BI Premium Per User for Government +Power BI Premium Per User Add-On for GCC,PBI_PREMIUM_PER_USER_ADDON_GCC,1b572d5e-1bf8-4b19-9259-f9eda31a6972,BI_AZURE_P3_GOV,32d15238-9a8c-46da-af3f-21fc5351d365,Power BI Premium Per User for Government +Power BI Premium Per User Dept,PBI_PREMIUM_PER_USER_DEPT,f168a3fb-7bcf-4a27-98c3-c235ea4b78b4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Premium Per User Dept,PBI_PREMIUM_PER_USER_DEPT,f168a3fb-7bcf-4a27-98c3-c235ea4b78b4,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User +Power BI Premium Per User Dept,PBI_PREMIUM_PER_USER_DEPT,f168a3fb-7bcf-4a27-98c3-c235ea4b78b4,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Premium Per User for Faculty,PBI_PREMIUM_PER_USER_FACULTY,060d8061-f606-4e69-a4e7-e8fff75ea1f5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Premium Per User for Faculty,PBI_PREMIUM_PER_USER_FACULTY,060d8061-f606-4e69-a4e7-e8fff75ea1f5,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User +Power BI Premium Per User for Faculty,PBI_PREMIUM_PER_USER_FACULTY,060d8061-f606-4e69-a4e7-e8fff75ea1f5,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Premium Per User for Government,PBI_PREMIUM_PER_USER_GCC,e53d92fc-778b-4a8b-83de-791240ebf88d,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power BI Premium Per User for Government,PBI_PREMIUM_PER_USER_GCC,e53d92fc-778b-4a8b-83de-791240ebf88d,BI_AZURE_P3_GOV,32d15238-9a8c-46da-af3f-21fc5351d365,Power BI Premium Per User for Government +Power BI Premium Per User for Government,PBI_PREMIUM_PER_USER_GCC,e53d92fc-778b-4a8b-83de-791240ebf88d,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government +Power BI Pro,POWER_BI_PRO,f8a1db68-be16-40ed-86d5-cb42ce701560,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Pro,POWER_BI_PRO,f8a1db68-be16-40ed-86d5-cb42ce701560,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Pro CE,POWER_BI_PRO_CE,420af87e-8177-4146-a780-3786adaffbca,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Pro CE,POWER_BI_PRO_CE,420af87e-8177-4146-a780-3786adaffbca,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Pro Dept,POWER_BI_PRO_DEPT,3a6a908c-09c5-406a-8170-8ebb63c42882,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Pro Dept,POWER_BI_PRO_DEPT,3a6a908c-09c5-406a-8170-8ebb63c42882,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Pro for Faculty,POWER_BI_PRO_FACULTY,de5f128b-46d7-4cfc-b915-a89ba060ea56,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Pro for Faculty,POWER_BI_PRO_FACULTY,de5f128b-46d7-4cfc-b915-a89ba060ea56,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Pro for GCC,POWERBI_PRO_GOV,f0612879-44ea-47fb-baf0-3d76d9235576,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power BI Pro for GCC,POWERBI_PRO_GOV,f0612879-44ea-47fb-baf0-3d76d9235576,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government +Power BI Premium EM2,PBI_PREMIUM_EM2_ADDON,8ecbd3c1-b108-437c-a859-e3c125e3f83f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Premium EM2,PBI_PREMIUM_EM2_ADDON,8ecbd3c1-b108-437c-a859-e3c125e3f83f,PBI_PREMIUM_EM2_ADDON,4e29abd1-ba96-44c0-8a72-e24e4fe9956e,Power BI Premium EM2 +Power BI Premium EM1,PBI_PREMIUM_EM1_ADDON,bc757c42-5622-4583-a483-a9e537fcb71c,EXCHANGE_S_FOUNDATION PBI_PREMIUM_EM1_ADDON,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Premium EM1,PBI_PREMIUM_EM1_ADDON,bc757c42-5622-4583-a483-a9e537fcb71c,EXCHANGE_S_FOUNDATION PBI_PREMIUM_EM1_ADDON,a64b30ba-f310-4065-b444-2670ef146db0,Power BI Premium EM1 +Power Pages authenticated users T1 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack,debc9e58-f2d7-412c-a0b6-575608564228,PowerPages_Authenticated_User,0d3366f3-266e-4117-b422-7cabbc165e7c,Power Pages Authenticated Users per site monthly capacity +Power Pages authenticated users T1 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack,debc9e58-f2d7-412c-a0b6-575608564228,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +Power Pages authenticated users T1 100 users/per site/month capacity pack CN_CN,Power Pages authenticated users T1_CN_CN,9a3c2a19-06c0-41b1-b2ea-13528d7b2e17,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T1 100 users/per site/month capacity pack CN_CN,Power Pages authenticated users T1_CN_CN,9a3c2a19-06c0-41b1-b2ea-13528d7b2e17,PowerPages_Authenticated_User_CN,967d9574-a076-4bb7-ab89-f41f64bc142e,Power Pages Authenticated Users per site monthly capacity China +Power Pages authenticated users T1 100 users/per site/month capacity pack_GCC,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_GCC,27cb5f12-2e3f-4997-a649-45298673e6a1,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T1 100 users/per site/month capacity pack_GCC,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_GCC,27cb5f12-2e3f-4997-a649-45298673e6a1,PowerPages_Authenticated_User_GCC,cdf787bd-1546-48d2-9e93-b21f9ea7067a,Power Pages Authenticated Users per site monthly capacity GCC +Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_DOD,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_DOD,b54f012e-69e1-43b1-87d0-666def064940,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_DOD,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_DOD,b54f012e-69e1-43b1-87d0-666def064940,PowerPages_Authenticated_User_DoD,03300fea-7a88-45a6-b5bd-29653803c591,Power Pages Authenticated Users per site monthly capacity DoD +Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,978ec396-f930-4ee1-85f3-e1d82e8f73a4,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,978ec396-f930-4ee1-85f3-e1d82e8f73a4,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,978ec396-f930-4ee1-85f3-e1d82e8f73a4,PowerPages_Authenticated_Users_GCCH,5410f688-68f2-47a5-9b8f-7466194a806a,Power Pages Authenticated Users per site mthly capacity GCCH New +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack,6fe1e61a-91e5-40d7-a547-0d2dcc81bce8,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack,6fe1e61a-91e5-40d7-a547-0d2dcc81bce8,PowerPages_Authenticated_User,0d3366f3-266e-4117-b422-7cabbc165e7c,Power Pages Authenticated Users per site monthly capacity +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack,6fe1e61a-91e5-40d7-a547-0d2dcc81bce8,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_GCC,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_GCC,5f43d48c-dd3d-4dd8-a059-70c2f040f979,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_GCC,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_GCC,5f43d48c-dd3d-4dd8-a059-70c2f040f979,PowerPages_Authenticated_User_GCC,cdf787bd-1546-48d2-9e93-b21f9ea7067a,Power Pages Authenticated Users per site monthly capacity GCC +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_DOD,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_DOD,f3d55e2d-4367-44fa-952e-83d0b5dd53fc,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_DOD,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_DOD,f3d55e2d-4367-44fa-952e-83d0b5dd53fc,PowerPages_Authenticated_User_DoD,03300fea-7a88-45a6-b5bd-29653803c591,Power Pages Authenticated Users per site monthly capacity DoD +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,7cae5432-61bb-48c3-b75c-831394ec13a0,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,7cae5432-61bb-48c3-b75c-831394ec13a0,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,7cae5432-61bb-48c3-b75c-831394ec13a0,PowerPages_Authenticated_Users_GCCH,5410f688-68f2-47a5-9b8f-7466194a806a,Power Pages Authenticated Users per site mthly capacity GCCH New +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack CN_CN,Power Pages authenticated users T2_CN_CN,7d2bb54a-a870-41c2-98d1-1f3b5b523275,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack CN_CN,Power Pages authenticated users T2_CN_CN,7d2bb54a-a870-41c2-98d1-1f3b5b523275,PowerPages_Authenticated_User_CN,967d9574-a076-4bb7-ab89-f41f64bc142e,Power Pages Authenticated Users per site monthly capacity China +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack CN_CN",Power Pages authenticated users T3_CN_CN,2cfd692f-a352-4fa8-b960-e3ad0c9b1178,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack CN_CN",Power Pages authenticated users T3_CN_CN,2cfd692f-a352-4fa8-b960-e3ad0c9b1178,PowerPages_Authenticated_User_CN,967d9574-a076-4bb7-ab89-f41f64bc142e,Power Pages Authenticated Users per site monthly capacity China +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack",878b8bbd-3cd0-4b44-9a56-3406741e65e0,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack",878b8bbd-3cd0-4b44-9a56-3406741e65e0,PowerPages_Authenticated_User,0d3366f3-266e-4117-b422-7cabbc165e7c,Power Pages Authenticated Users per site monthly capacity +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack",878b8bbd-3cd0-4b44-9a56-3406741e65e0,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_GCC","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_GCC",53265c61-c78c-4223-ab30-422da0c97fbb,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_GCC","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_GCC",53265c61-c78c-4223-ab30-422da0c97fbb,PowerPages_Authenticated_User_GCC,cdf787bd-1546-48d2-9e93-b21f9ea7067a,Power Pages Authenticated Users per site monthly capacity GCC +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_DOD","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_DOD",398d37b5-8deb-48db-8f7f-703eb2fb7c72,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_DOD","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_DOD",398d37b5-8deb-48db-8f7f-703eb2fb7c72,PowerPages_Authenticated_User_DoD,03300fea-7a88-45a6-b5bd-29653803c591,Power Pages Authenticated Users per site monthly capacity DoD +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH",01d46c34-3525-47d5-bd1a-5f19979938a0,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH",01d46c34-3525-47d5-bd1a-5f19979938a0,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH",01d46c34-3525-47d5-bd1a-5f19979938a0,PowerPages_Authenticated_Users_GCCH,5410f688-68f2-47a5-9b8f-7466194a806a,Power Pages Authenticated Users per site mthly capacity GCCH New +Power Pages vTrial for Makers,Power_Pages_vTrial_for_Makers,3f9f06f5-3c31-472c-985f-62d9c10ec167,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Pages vTrial for Makers,Power_Pages_vTrial_for_Makers,3f9f06f5-3c31-472c-985f-62d9c10ec167,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,Common Data Service +Power Pages vTrial for Makers,Power_Pages_vTrial_for_Makers,3f9f06f5-3c31-472c-985f-62d9c10ec167,POWER_PAGES_VTRIAL,6817d093-2d30-4249-8bd6-774f01efa78c,Power Pages vTrial for Makers +Power Virtual Agent,VIRTUAL_AGENT_BASE,e4e55366-9635-46f4-a907-fc8c3b5ec81f,CDS_VIRTUAL_AGENT_BASE,0a0a23fa-fea1-4195-bb89-b4789cb12f7f,Common Data Service for Virtual Agent Base +Power Virtual Agent,VIRTUAL_AGENT_BASE,e4e55366-9635-46f4-a907-fc8c3b5ec81f,FLOW_VIRTUAL_AGENT_BASE,4b81a949-69a1-4409-ad34-9791a6ec88aa,Power Automate for Virtual Agent +Power Virtual Agent,VIRTUAL_AGENT_BASE,e4e55366-9635-46f4-a907-fc8c3b5ec81f,VIRTUAL_AGENT_BASE,f6934f16-83d3-4f3b-ad27-c6e9c187b260,Virtual Agent Base +Power Virtual Agent for GCC,VIRTUAL_AGENT_BASE_GCC,9900a3e2-6660-4c52-9074-60c949991389,CDS_Virtual_Agent_Base_Gov,e4d0b25d-e440-4ee9-aac4-1d5a5db9f3ef,Dataverse for Virtual Agent Base for GCC +Power Virtual Agent for GCC,VIRTUAL_AGENT_BASE_GCC,9900a3e2-6660-4c52-9074-60c949991389,FLOW_Virtual_Agent_Base_Gov,f9f6db16-ace6-4838-b11c-892ee75e810a,Power Automate for Virtual Agent for GCC +Power Virtual Agent for GCC,VIRTUAL_AGENT_BASE_GCC,9900a3e2-6660-4c52-9074-60c949991389,Virtual_Agent_Base_GCC,e425b9f6-1543-45a0-8efb-f8fdaf18cba1,Virtual Agent Base for GCC +Power Virtual Agent User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,CDS_VIRTUAL_AGENT_USL,cb867b3c-7f38-4d0d-99ce-e29cd69812c8,Common Data Service +Power Virtual Agent User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,FLOW_VIRTUAL_AGENT_USL,82f141c9-2e87-4f43-8cb2-12d2701dc6b3,Power Automate for Virtual Agent +Power Virtual Agent User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,VIRTUAL_AGENT_USL,1263586c-59a4-4ad0-85e1-d50bc7149501,Virtual Agent +Power Virtual Agent User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,CDS_Virtual_Agent_Usl_GCC,95df1203-fee7-4726-b7e1-8037a8e899eb,Dataverse for Virtual Agent USL for GCC +Power Virtual Agent User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Flow_Virtual_Agent_Usl_Gov,0b939472-1861-45f1-ab6d-208f359c05cd,Flow for Virtual Agent for GCC +Power Virtual Agent User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,FLOW_Virtual_Agent_Base_Gov,f9f6db16-ace6-4838-b11c-892ee75e810a,Power Automate for Virtual Agent for GCC +Power Virtual Agent User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Power_Virtual_Agent_Usl_GCC,0bdd5466-65c3-470a-9fa6-f679b48286b0,Power Virtual Agent USL for GCC +Power Virtual Agents Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,DYN365_CDS_CCI_BOTS,cf7034ed-348f-42eb-8bbd-dddeea43ee81,Common Data Service for CCI Bots +Power Virtual Agents Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,CCIBOTS_PRIVPREV_VIRAL,ce312d15-8fdf-44c0-9974-a25a177125ee,Dynamics 365 AI for Customer Service Virtual Agents Viral +Power Virtual Agents Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,FLOW_CCI_BOTS,5d798708-6473-48ad-9776-3acc301c40af,Flow for CCI Bots +Privacy Management – risk,PRIVACY_MANAGEMENT_RISK,e42bc969-759a-4820-9283-6b73085b68e6,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Privacy Management – risk,PRIVACY_MANAGEMENT_RISK,e42bc969-759a-4820-9283-6b73085b68e6,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk +Privacy Management – risk,PRIVACY_MANAGEMENT_RISK,e42bc969-759a-4820-9283-6b73085b68e6,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) +Privacy Management - risk for EDU,PRIVACY_MANAGEMENT_RISK_EDU,dcdbaae7-d8c9-40cb-8bb1-62737b9e5a86,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Privacy Management - risk for EDU,PRIVACY_MANAGEMENT_RISK_EDU,dcdbaae7-d8c9-40cb-8bb1-62737b9e5a86,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk +Privacy Management - risk for EDU,PRIVACY_MANAGEMENT_RISK_EDU,dcdbaae7-d8c9-40cb-8bb1-62737b9e5a86,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) +Privacy Management - risk GCC,PRIVACY_MANAGEMENT_RISK_GCC,046f7d3b-9595-4685-a2e8-a2832d2b26aa,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Privacy Management - risk GCC,PRIVACY_MANAGEMENT_RISK_GCC,046f7d3b-9595-4685-a2e8-a2832d2b26aa,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk +Privacy Management - risk GCC,PRIVACY_MANAGEMENT_RISK_GCC,046f7d3b-9595-4685-a2e8-a2832d2b26aa,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) +Privacy Management - risk_USGOV_DOD,PRIVACY_MANAGEMENT_RISK_USGOV_DOD,83b30692-0d09-435c-a455-2ab220d504b9,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Privacy Management - risk_USGOV_DOD,PRIVACY_MANAGEMENT_RISK_USGOV_DOD,83b30692-0d09-435c-a455-2ab220d504b9,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk +Privacy Management - risk_USGOV_DOD,PRIVACY_MANAGEMENT_RISK_USGOV_DOD,83b30692-0d09-435c-a455-2ab220d504b9,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) +Privacy Management - risk_USGOV_GCCHIGH,PRIVACY_MANAGEMENT_RISK_USGOV_GCCHIGH,787d7e75-29ca-4b90-a3a9-0b780b35367c,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Privacy Management - risk_USGOV_GCCHIGH,PRIVACY_MANAGEMENT_RISK_USGOV_GCCHIGH,787d7e75-29ca-4b90-a3a9-0b780b35367c,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk +Privacy Management - risk_USGOV_GCCHIGH,PRIVACY_MANAGEMENT_RISK_USGOV_GCCHIGH,787d7e75-29ca-4b90-a3a9-0b780b35367c,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) +Privacy Management - subject rights request (1),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2,d9020d1c-94ef-495a-b6de-818cbbcaa3b8,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (1),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2,d9020d1c-94ef-495a-b6de-818cbbcaa3b8,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1) +Privacy Management - subject rights request (1),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2,d9020d1c-94ef-495a-b6de-818cbbcaa3b8,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1 - Exchange) +Privacy Management - subject rights request (1) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_EDU_V2,475e3e81-3c75-4e07-95b6-2fed374536c8,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (1) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_EDU_V2,475e3e81-3c75-4e07-95b6-2fed374536c8,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1 - Exchange) +Privacy Management - subject rights request (1) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_EDU_V2,475e3e81-3c75-4e07-95b6-2fed374536c8,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1) +Privacy Management - subject rights request (1) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_GCC,017fb6f8-00dd-4025-be2b-4eff067cae72,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (1) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_GCC,017fb6f8-00dd-4025-be2b-4eff067cae72,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1 - Exchange) +Privacy Management - subject rights request (1) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_GCC,017fb6f8-00dd-4025-be2b-4eff067cae72,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1) +Privacy Management - subject rights request (1) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_DOD,d3c841f3-ea93-4da2-8040-6f2348d20954,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (1) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_DOD,d3c841f3-ea93-4da2-8040-6f2348d20954,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1 - Exchange) +Privacy Management - subject rights request (1) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_DOD,d3c841f3-ea93-4da2-8040-6f2348d20954,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1) +Privacy Management - subject rights request (1) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_GCCHIGH,706d2425-6170-4818-ba08-2ad8f1d2d078,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (1) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_GCCHIGH,706d2425-6170-4818-ba08-2ad8f1d2d078,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1 - Exchange) +Privacy Management - subject rights request (1) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_GCCHIGH,706d2425-6170-4818-ba08-2ad8f1d2d078,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1) +Privacy Management - subject rights request (10),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2,78ea43ac-9e5d-474f-8537-4abb82dafe27,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (10),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2,78ea43ac-9e5d-474f-8537-4abb82dafe27,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) +Privacy Management - subject rights request (10),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2,78ea43ac-9e5d-474f-8537-4abb82dafe27,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) +Privacy Management - subject rights request (10) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_EDU_V2,e001d9f1-5047-4ebf-8927-148530491f83,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (10) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_EDU_V2,e001d9f1-5047-4ebf-8927-148530491f83,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) +Privacy Management - subject rights request (10) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_EDU_V2,e001d9f1-5047-4ebf-8927-148530491f83,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) +Privacy Management - subject rights request (10) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_GCC,a056b037-1fa0-4133-a583-d05cff47d551,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (10) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_GCC,a056b037-1fa0-4133-a583-d05cff47d551,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) +Privacy Management - subject rights request (10) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_GCC,a056b037-1fa0-4133-a583-d05cff47d551,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) +Privacy Management - subject rights request (10) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_DOD,ab28dfa1-853a-4f54-9315-f5146975ac9a,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (10) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_DOD,ab28dfa1-853a-4f54-9315-f5146975ac9a,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) +Privacy Management - subject rights request (10) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_DOD,ab28dfa1-853a-4f54-9315-f5146975ac9a,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) +Privacy Management - subject rights request (10) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_GCCHIGH,f6aa3b3d-62f4-4c1d-a44f-0550f40f729c,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (10) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_GCCHIGH,f6aa3b3d-62f4-4c1d-a44f-0550f40f729c,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) +Privacy Management - subject rights request (10) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_GCCHIGH,f6aa3b3d-62f4-4c1d-a44f-0550f40f729c,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50,c416b349-a83c-48cb-9529-c420841dedd6,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50,c416b349-a83c-48cb-9529-c420841dedd6,PRIVACY_MANGEMENT_DSR,8bbd1fea-6dc6-4aef-8abc-79af22d746e4,Privacy Management - Subject Rights Request +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50,c416b349-a83c-48cb-9529-c420841dedd6,PRIVACY_MANGEMENT_DSR_EXCHANGE,7ca7f875-98db-4458-ab1b-47503826dd73,Privacy Management - Subject Rights Request (Exchange) +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_V2,f6c82f13-9554-4da1-bed3-c024cc906e02,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_V2,f6c82f13-9554-4da1-bed3-c024cc906e02,PRIVACY_MANGEMENT_DSR,8bbd1fea-6dc6-4aef-8abc-79af22d746e4,Privacy Management - Subject Rights Request +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_V2,f6c82f13-9554-4da1-bed3-c024cc906e02,PRIVACY_MANGEMENT_DSR_EXCHANGE,7ca7f875-98db-4458-ab1b-47503826dd73,Privacy Management - Subject Rights Request (Exchange) +Privacy Management - subject rights request (50) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_EDU_V2,ed45d397-7d61-4110-acc0-95674917bb14,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (50) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_EDU_V2,ed45d397-7d61-4110-acc0-95674917bb14,PRIVACY_MANGEMENT_DSR,8bbd1fea-6dc6-4aef-8abc-79af22d746e4,Privacy Management - Subject Rights Request +Privacy Management - subject rights request (50) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_EDU_V2,ed45d397-7d61-4110-acc0-95674917bb14,PRIVACY_MANGEMENT_DSR_EXCHANGE,7ca7f875-98db-4458-ab1b-47503826dd73,Privacy Management - Subject Rights Request (Exchange) +Privacy Management - subject rights request (100),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2,cf4c6c3b-f863-4940-97e8-1d25e912f4c4,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (100),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2,cf4c6c3b-f863-4940-97e8-1d25e912f4c4,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) +Privacy Management - subject rights request (100),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2,cf4c6c3b-f863-4940-97e8-1d25e912f4c4,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) +Privacy Management - subject rights request (100) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_EDU_V2,9b85b4f0-92d9-4c3d-b230-041520cb1046,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (100) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_EDU_V2,9b85b4f0-92d9-4c3d-b230-041520cb1046,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) +Privacy Management - subject rights request (100) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_EDU_V2,9b85b4f0-92d9-4c3d-b230-041520cb1046,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) +Privacy Management - subject rights request (100) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_GCC,91bbc479-4c2c-4210-9c88-e5b468c35b83,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (100) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_GCC,91bbc479-4c2c-4210-9c88-e5b468c35b83,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) +Privacy Management - subject rights request (100) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_GCC,91bbc479-4c2c-4210-9c88-e5b468c35b83,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) +Privacy Management - subject rights request (100) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_DOD,ba6e69d5-ba2e-47a7-b081-66c1b8e7e7d4,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (100) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_DOD,ba6e69d5-ba2e-47a7-b081-66c1b8e7e7d4,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) +Privacy Management - subject rights request (100) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_DOD,ba6e69d5-ba2e-47a7-b081-66c1b8e7e7d4,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) +Privacy Management - subject rights request (100) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_GCCHIGH,cee36ce4-cc31-481f-8cab-02765d3e441f,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (100) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_GCCHIGH,cee36ce4-cc31-481f-8cab-02765d3e441f,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) +Privacy Management - subject rights request (100) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_GCCHIGH,cee36ce4-cc31-481f-8cab-02765d3e441f,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) +Project for Office 365,PROJECTCLIENT,a10d5e58-74da-4312-95c8-76be4e5b75a0,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,PROJECT ONLINE DESKTOP CLIENT +Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web +Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Project Online Essentials for GCC,PROJECTESSENTIALS_GOV,ca1a159a-f09e-42b8-bb82-cb6420f54c8e,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Project Online Essentials for GCC,PROJECTESSENTIALS_GOV,ca1a159a-f09e-42b8-bb82-cb6420f54c8e,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Project Online Essentials for GCC,PROJECTESSENTIALS_GOV,ca1a159a-f09e-42b8-bb82-cb6420f54c8e,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Project Online Essentials for GCC,PROJECTESSENTIALS_GOV,ca1a159a-f09e-42b8-bb82-cb6420f54c8e,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Project Online Premium,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,PROJECT ONLINE DESKTOP CLIENT +Project Online Premium,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,SHAREPOINT_PROJECT +Project Online Premium,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Project Online Premium,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,SHAREPOINT_PROJECT +Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,PROJECT ONLINE DESKTOP CLIENT +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,SHAREPOINT_PROJECT +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,DYN365_CDS_FOR_PROJECT_P1,a6f677b3-62a6-4644-93e7-2a85d240845e,COMMON DATA SERVICE FOR PROJECT P1 +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,Power_Automate_For_Project_P1,00283e6b-2bd8-440f-a2d5-87358e4c89a1,POWER AUTOMATE FOR PROJECT P1 +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,PROJECT ONLINE ESSENTIALS +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,PROJECT_P1,4a12c688-56c6-461a-87b1-30d6f32136f9,PROJECT P1 +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINT +Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,DYN365_CDS_FOR_PROJECT_P1,a6f677b3-62a6-4644-93e7-2a85d240845e,Common Data Service for Project P1 +Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,Power_Automate_For_Project_P1,00283e6b-2bd8-440f-a2d5-87358e4c89a1,Power Automate for Project P1 +Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,PROJECT_P1,4a12c688-56c6-461a-87b1-30d6f32136f9,Project P1 +Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINT STANDARD +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,FLOW_FOR_PROJECT,fa200448-008c-4acb-abd4-ea106ed2199d,Flow for Project +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,Project Online Service +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,PROJECT_PROFESSIONAL,818523f5-016b-4355-9be8-ed6944946ea7,Project P3 +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,FLOW_FOR_PROJECT,fa200448-008c-4acb-abd4-ea106ed2199d,Flow for Project +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,Project Online Service +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,PROJECT_PROFESSIONAL,818523f5-016b-4355-9be8-ed6944946ea7,Project P3 +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,SHAREPOINT_PROJECT_EDU,664a2fed-6c7a-468e-af35-d61740f0ec90,Project Online Service for Education +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,PROJECT_PROFESSIONAL_FACULTY,22572403-045f-432b-a660-af949c0a77b5,Project P3 for Faculty +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,FLOW_FOR_PROJECT,fa200448-008c-4acb-abd4-ea106ed2199d,Power Automate for Project +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,PROJECT_PROFESSIONAL_FOR_GOV,49c7bc16-7004-4df6-8cd5-4ec48b7e9ea0,Project P3 for GOV +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,MCOMEETBASIC_GOV,986d454b-9027-4d9f-880b-f1b68f920cc4,Microsoft Teams Audio Conferencing with dial-out to select geographies for GCC +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,PROJECT_PROFESSIONAL_FOR_GOV,49c7bc16-7004-4df6-8cd5-4ec48b7e9ea0,Project P3 for GOV +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,Project Online Service +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINT_PROJECT_EDU,664a2fed-6c7a-468e-af35-d61740f0ec90,Project Online Service for Education +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,PROJECT_PROFESSIONAL_FACULTY,22572403-045f-432b-a660-af949c0a77b5,Project P3 for Faculty +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office Online for Education +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Client +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,Project Online for Education,664a2fed-6c7a-468e-af35-d61740f0ec90,Project Online for Education +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint Plan 2 for EDU +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,FLOW_FOR_PROJECT,fa200448-008c-4acb-abd4-ea106ed2199d,Power Automate for Project +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,PROJECT_PROFESSIONAL_FOR_GOV,49c7bc16-7004-4df6-8cd5-4ec48b7e9ea0,Project P3 for GOV +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,SHAREPOINT_PROJECT_EDU,664a2fed-6c7a-468e-af35-d61740f0ec90,Project Online Service for Education +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Rights Management Adhoc,RIGHTSMANAGEMENT_ADHOC,8c4ce438-32a7-4ac5-91a6-e22ae08d9c8b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Rights Management Adhoc,RIGHTSMANAGEMENT_ADHOC,8c4ce438-32a7-4ac5-91a6-e22ae08d9c8b,RMS_S_ADHOC,7a39d7dd-e456-4e09-842a-0204ee08187b,Rights Management Adhoc +Rights Management Service Basic Content Protection,RMSBASIC,093e8d14-a334-43d9-93e3-30589a8b47d0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Rights Management Service Basic Content Protection,RMSBASIC,093e8d14-a334-43d9-93e3-30589a8b47d0,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Sensor Data Intelligence Additional Machines Add-in for Dynamics 365 Supply Chain Management,DYN365_IOT_INTELLIGENCE_ADDL_MACHINES,08e18479-4483-4f70-8f17-6f92156d8ea9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Sensor Data Intelligence Additional Machines Add-in for Dynamics 365 Supply Chain Management,DYN365_IOT_INTELLIGENCE_ADDL_MACHINES,08e18479-4483-4f70-8f17-6f92156d8ea9,D365_IOTFORSCM_ADDITIONAL,a5f38206-2f48-4d83-9957-525f4e75e9c0,IoT Intelligence Add-in Additional Machines +Sensor Data Intelligence Scenario Add-in for Dynamics 365 Supply Chain Management,DYN365_IOT_INTELLIGENCE_SCENARIO,9ea4bdef-a20b-4668-b4a7-73e1f7696e0a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Sensor Data Intelligence Scenario Add-in for Dynamics 365 Supply Chain Management,DYN365_IOT_INTELLIGENCE_SCENARIO,9ea4bdef-a20b-4668-b4a7-73e1f7696e0a,D365_IOTFORSCM,83dd9619-c7d5-44da-9250-dc4ee79fff7e,Iot Intelligence Add-in for D365 Supply Chain Management +SharePoint Online (Plan 1),SHAREPOINTSTANDARD,1fc08a02-8b3d-43b9-831e-f76859e04e1a,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD +SharePoint Online (Plan 2),SHAREPOINTENTERPRISE,a9732ec9-17d9-494c-a51c-d6b45b384dcb,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +SharePoint Syntex,Intelligent_Content_Services,f61d4aba-134f-44e9-a2a0-f81a5adb26e4,CDS_O365_E5_KM,3069d530-e41b-421c-ad59-fb1001a23e11,Common Data Service for SharePoint Syntex +SharePoint Syntex,Intelligent_Content_Services,f61d4aba-134f-44e9-a2a0-f81a5adb26e4,Intelligent_Content_Services,f00bd55e-1633-416e-97c0-03684e42bc42,SharePoint Syntex +SharePoint Syntex,Intelligent_Content_Services,f61d4aba-134f-44e9-a2a0-f81a5adb26e4,Intelligent_Content_Services_SPO_type,fd2e7f90-1010-487e-a11b-d2b1ae9651fc,SharePoint Syntex - SPO type +Skype for Business Online (Plan 1),MCOIMP,b8b749f8-a4ef-4887-9539-c95b1eaa5db7,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,SKYPE FOR BUSINESS ONLINE (PLAN 1) +Skype for Business Online (Plan 2),MCOSTANDARD,d42c793f-6c78-4f43-92ca-e8f6a02b035f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Skype for Business PSTN Calling Domestic Small,MCOPSTN5,d43177b5-475b-4880-92d4-d54c27b5efbd,Skype for Business PSTN Calling Domestic Small,9a0125a5-c8f8-4526-b231-49e2abe0ebce,Skype for Business PSTN Calling Domestic Small +Skype for Business PSTN Domestic and International Calling,MCOPSTN2,d3b4fe1f-9992-4930-8acb-ca6ec609365e,MCOPSTN2,5a10155d-f5c1-411a-a8ec-e99aae125390,DOMESTIC AND INTERNATIONAL CALLING PLAN +Skype for Business PSTN Domestic Calling,MCOPSTN1,0dab259f-bf13-4952-b7f8-7db8f131b28d,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,DOMESTIC CALLING PLAN +Skype for Business PSTN Domestic Calling (120 Minutes),MCOPSTN5,54a152dc-90de-4996-93d2-bc47e670fc06,MCOPSTN5,54a152dc-90de-4996-93d2-bc47e670fc06,DOMESTIC CALLING PLAN +Skype for Business PSTN Usage Calling Plan,MCOPSTNPP,06b48c5f-01d9-4b18-9015-03b52040f51a,MCOPSTN3,6b340437-d6f9-4dc5-8cc2-99163f7f83d6,MCOPSTN3 +Teams Phone Mobile,Operator_Connect_Mobile,b84d58c9-0a0d-46cf-8a4b-d9f23c1674d5,MCOFMC1,cb22fbd7-ed7d-4786-a27a-e4cd617b69c0,Teams Phone Mobile +Teams Phone with Calling Plan,MCOTEAMS_ESSENTIALS,ae2343d1-0999-43f6-ae18-d816516f6e78,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,Microsoft 365 Domestic Calling Plan +Teams Phone with Calling Plan,MCOTEAMS_ESSENTIALS,ae2343d1-0999-43f6-ae18-d816516f6e78,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,MICROSOFT_ECDN,85704d55-2e73-47ee-93b4-4b8ea14db92b,Microsoft eCDN +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,MESH_IMMERSIVE,acbca54f-c771-423b-a476-6d7a98cbbcec,Microsoft Mesh +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_MGMT,0504111f-feb8-4a3c-992a-70280f9a2869,Microsoft Teams Premium Intelligent +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_CUST,cc8c0802-a325-43df-8cba-995d0c6cb373,Microsoft Teams Premium Personalized +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_PROTECTION,f8b44f54-18bb-46a3-9658-44ab58712968,Microsoft Teams Premium Secure +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_VIRTUALAPPT,9104f592-f2a7-4f77-904c-ca5a5715883f,Microsoft Teams Premium Virtual Appointment +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,MCO_VIRTUAL_APPT,711413d0-b36e-4cd4-93db-0a50a4ab7ea3,Microsoft Teams Premium Virtual Appointments +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_WEBINAR,78b58230-ec7e-4309-913c-93a45cc4735b,Microsoft Teams Premium Webinar +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,MICROSOFT_ECDN,85704d55-2e73-47ee-93b4-4b8ea14db92b,Microsoft eCDN +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_MGMT,0504111f-feb8-4a3c-992a-70280f9a2869,Microsoft Teams Premium Intelligent +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_CUST,cc8c0802-a325-43df-8cba-995d0c6cb373,Microsoft Teams Premium Personalized +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_PROTECTION,f8b44f54-18bb-46a3-9658-44ab58712968,Microsoft Teams Premium Secure +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_VIRTUALAPPT,9104f592-f2a7-4f77-904c-ca5a5715883f,Microsoft Teams Premium Virtual Appointment +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,MCO_VIRTUAL_APPT,711413d0-b36e-4cd4-93db-0a50a4ab7ea3,Microsoft Teams Premium Virtual Appointments +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_WEBINAR,78b58230-ec7e-4309-913c-93a45cc4735b,Microsoft Teams Premium Webinar +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,QUEUES_APP,ab2d4fb5-f80a-4bf1-a11d-7f1da254041b,Queues app for Microsoft Teams +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MMR_P1,bdaa59a3-74fd-4137-981a-31d4f84eb8a0,Meeting Room Managed Services +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +TELSTRA Calling for O365,MCOPSTNEAU2,de3312e1-c7b0-46e6-a7c3-a515ff90bc86,MCOPSTNEAU,7861360b-dc3b-4eba-a3fc-0d323a035746,AUSTRALIA CALLING PLAN +Universal Print,UNIVERSAL_PRINT,9f3d9c1d-25a5-4aaa-8e59-23a1e6450a67,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Viva Learning,VIVA_LEARNING,c9d442fc-21fb-4bd7-89e0-a710d74987f6,VIVA_LEARNING_PREMIUM,7162bd38-edae-4022-83a7-c5837f951759,Viva Learning +Universal Print,UNIVERSAL_PRINT,9f3d9c1d-25a5-4aaa-8e59-23a1e6450a67,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Visio Plan 1,VISIO_PLAN1_DEPT,ca7f3140-d88c-455b-9a1c-7f0679e31a76,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Visio Plan 1,VISIO_PLAN1_DEPT,ca7f3140-d88c-455b-9a1c-7f0679e31a76,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,OneDrive for business Basic +Visio Plan 1,VISIO_PLAN1_DEPT,ca7f3140-d88c-455b-9a1c-7f0679e31a76,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,Visio web app +Visio Plan 2,VISIO_PLAN2_DEPT,38b434d2-a15e-4cde-9a98-e737c75623e1,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Visio Plan 2,VISIO_PLAN2_DEPT,38b434d2-a15e-4cde-9a98-e737c75623e1,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,OneDrive for Business (Basic) +Visio Plan 2,VISIO_PLAN2_DEPT,38b434d2-a15e-4cde-9a98-e737c75623e1,VISIO_CLIENT_SUBSCRIPTION,663a804f-1c30-4ff0-9915-9db84f0d1cea,Visio Desktop App +Visio Plan 2,VISIO_PLAN2_DEPT,38b434d2-a15e-4cde-9a98-e737c75623e1,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,Visio Web App +Visio Plan 2_USGOV_GCCHIGH,VISIOCLIENT_USGOV_GCCHIGH,80e52531-ad7f-44ea-abc3-28e389462f1b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Visio Plan 2_USGOV_GCCHIGH,VISIOCLIENT_USGOV_GCCHIGH,80e52531-ad7f-44ea-abc3-28e389462f1b,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,OneDrive for Business (Basic) +Visio Plan 2_USGOV_GCCHIGH,VISIOCLIENT_USGOV_GCCHIGH,80e52531-ad7f-44ea-abc3-28e389462f1b,VISIO_CLIENT_SUBSCRIPTION,663a804f-1c30-4ff0-9915-9db84f0d1cea,Visio Desktop App +Visio Plan 2_USGOV_GCCHIGH,VISIOCLIENT_USGOV_GCCHIGH,80e52531-ad7f-44ea-abc3-28e389462f1b,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,Visio Web App +Visio Plan 1,VISIOONLINE_PLAN1,4b244418-9658-4451-a2b8-b5e2b364e9bd,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Visio Plan 1,VISIOONLINE_PLAN1,4b244418-9658-4451-a2b8-b5e2b364e9bd,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,ONEDRIVE FOR BUSINESS BASIC +Visio Plan 1,VISIOONLINE_PLAN1,4b244418-9658-4451-a2b8-b5e2b364e9bd,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,VISIO WEB APP +Visio Plan 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Visio Plan 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,ONEDRIVE FOR BUSINESS BASIC +Visio Plan 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,VISIO_CLIENT_SUBSCRIPTION,663a804f-1c30-4ff0-9915-9db84f0d1cea,VISIO DESKTOP APP +Visio Plan 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,VISIO WEB APP +Visio Plan 2 for GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT +Visio Plan 2 for GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,ONEDRIVE_BASIC_GOV,98709c2e-96b5-4244-95f5-a0ebe139fb8a,ONEDRIVE FOR BUSINESS BASIC FOR GOVERNMENT +Visio Plan 2 for GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,VISIO_CLIENT_SUBSCRIPTION_GOV,f85945f4-7a55-4009-bc39-6a5f14a8eac1,VISIO DESKTOP APP FOR Government +Visio Plan 2 for GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,VISIOONLINE_GOV,8a9ecb07-cfc0-48ab-866c-f83c4d911576,VISIO WEB APP FOR GOVERNMENT +Visio Plan 2 for Faculty,VISIOCLIENT_FACULTY,bf95fd32-576a-4742-8d7a-6dc4940b9532,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Visio Plan 2 for Faculty,VISIOCLIENT_FACULTY,bf95fd32-576a-4742-8d7a-6dc4940b9532,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,OneDrive for Business (Basic) +Visio Plan 2 for Faculty,VISIOCLIENT_FACULTY,bf95fd32-576a-4742-8d7a-6dc4940b9532,VISIO_CLIENT_SUBSCRIPTION,663a804f-1c30-4ff0-9915-9db84f0d1cea,Visio Desktop App +Visio Plan 2 for Faculty,VISIOCLIENT_FACULTY,bf95fd32-576a-4742-8d7a-6dc4940b9532,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,Visio Web App +Viva Goals User-led,Viva_Goals_User_led,3a349c99-ffec-43d2-a2e8-6b97fcb71103,Viva_Goals_Premium,b44c6eaf-5c9f-478c-8f16-8cea26353bfb,Viva Goals +Viva Topics,TOPIC_EXPERIENCES,4016f256-b063-4864-816e-d818aad600c9,GRAPH_CONNECTORS_SEARCH_INDEX_TOPICEXP,b74d57b2-58e9-484a-9731-aeccbba954f0,Graph Connectors Search with Index (Viva Topics) +Viva Topics,TOPIC_EXPERIENCES,4016f256-b063-4864-816e-d818aad600c9,CORTEX,c815c93d-0759-4bb8-b857-bc921a71be83,Viva Topics +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,DATAVERSE_FOR_POWERAUTOMATE_DESKTOP,59231cdf-b40d-4534-a93e-14d0cd31d27e,Dataverse for PAD +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,POWERAUTOMATE_DESKTOP_FOR_WIN,2d589a15-b171-4e61-9b5f-31d15eeb2872,PAD for Windows +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) +Windows 10/11 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) +Windows 10/11 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,Virtualization Rights for Windows 10,e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise E3,WIN10_PRO_ENT_SUB,cb10e6cd-9da4-4992-867b-67546b1db821,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,WINDOWS 10 ENTERPRISE +Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,UNIVERSAL PRINT +Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,WINDOWS 10 ENTERPRISE (NEW) +Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,WINDOWS UPDATE FOR BUSINESS DEPLOYMENT SERVICE +Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender For Endpoint +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Windows 10/11 Enterprise E5 Commercial (GCC Compatible),WINE5_GCC_COMPAT,938fd547-d794-42a4-996c-1cc206619580,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Windows 10/11 Enterprise E5 Commercial (GCC Compatible),WINE5_GCC_COMPAT,938fd547-d794-42a4-996c-1cc206619580,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender For Endpoint +Windows 10/11 Enterprise E5 Commercial (GCC Compatible),WINE5_GCC_COMPAT,938fd547-d794-42a4-996c-1cc206619580,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,DATAVERSE_FOR_POWERAUTOMATE_DESKTOP,59231cdf-b40d-4534-a93e-14d0cd31d27e,Dataverse for PAD +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,POWERAUTOMATE_DESKTOP_FOR_WIN,2d589a15-b171-4e61-9b5f-31d15eeb2872,PAD for Windows +Windows 365 Business 1 vCPU 2 GB 64 GB,CPC_B_1C_2RAM_64GB,816eacd3-e1e3-46b3-83c8-1ffd37e053d9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 1 vCPU 2 GB 64 GB,CPC_B_1C_2RAM_64GB,816eacd3-e1e3-46b3-83c8-1ffd37e053d9,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 1 vCPU 2 GB 64 GB,CPC_B_1C_2RAM_64GB,816eacd3-e1e3-46b3-83c8-1ffd37e053d9,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 1 vCPU 2 GB 64 GB,CPC_B_1C_2RAM_64GB,816eacd3-e1e3-46b3-83c8-1ffd37e053d9,CPC_B_1C_2RAM_64GB,3b98b912-1720-4a1e-9630-c9a41dbb61d8,Windows 365 Business 1 vCPU 2 GB 64 GB +Windows 365 Business 2 vCPU 4 GB 128 GB,CPC_B_2C_4RAM_128GB,135bee78-485b-4181-ad6e-40286e311850,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 2 vCPU 4 GB 128 GB,CPC_B_2C_4RAM_128GB,135bee78-485b-4181-ad6e-40286e311850,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 2 vCPU 4 GB 128 GB,CPC_B_2C_4RAM_128GB,135bee78-485b-4181-ad6e-40286e311850,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 2 vCPU 4 GB 128 GB,CPC_B_2C_4RAM_128GB,135bee78-485b-4181-ad6e-40286e311850,CPC_B_2C_4RAM_128GB,1a13832e-cd79-497d-be76-24186f55c8b0,Windows 365 Business 2 vCPU 4 GB 128 GB +Windows 365 Business 2 vCPU 4 GB 256 GB,CPC_B_2C_4RAM_256GB,805d57c3-a97d-4c12-a1d0-858ffe5015d0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 2 vCPU 4 GB 256 GB,CPC_B_2C_4RAM_256GB,805d57c3-a97d-4c12-a1d0-858ffe5015d0,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 2 vCPU 4 GB 256 GB,CPC_B_2C_4RAM_256GB,805d57c3-a97d-4c12-a1d0-858ffe5015d0,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 2 vCPU 4 GB 256 GB,CPC_B_2C_4RAM_256GB,805d57c3-a97d-4c12-a1d0-858ffe5015d0,CPC_B_2C_4RAM_256GB,a0b1c075-51c9-4a42-b34c-308f3993bb7e,Windows 365 Business 2 vCPU 4 GB 256 GB +Windows 365 Business 2 vCPU 4 GB 64 GB,CPC_B_2C_4RAM_64GB,42e6818f-8966-444b-b7ac-0027c83fa8b5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 2 vCPU 4 GB 64 GB,CPC_B_2C_4RAM_64GB,42e6818f-8966-444b-b7ac-0027c83fa8b5,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 2 vCPU 4 GB 64 GB,CPC_B_2C_4RAM_64GB,42e6818f-8966-444b-b7ac-0027c83fa8b5,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 2 vCPU 4 GB 64 GB,CPC_B_2C_4RAM_64GB,42e6818f-8966-444b-b7ac-0027c83fa8b5,CPC_B_2C_4RAM_64GB,a790cd6e-a153-4461-83c7-e127037830b6,Windows 365 Business 2 vCPU 4 GB 64 GB +Windows 365 Business 2 vCPU 8 GB 128 GB,CPC_B_2C_8RAM_128GB,71f21848-f89b-4aaa-a2dc-780c8e8aac5b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 2 vCPU 8 GB 128 GB,CPC_B_2C_8RAM_128GB,71f21848-f89b-4aaa-a2dc-780c8e8aac5b,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 2 vCPU 8 GB 128 GB,CPC_B_2C_8RAM_128GB,71f21848-f89b-4aaa-a2dc-780c8e8aac5b,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 2 vCPU 8 GB 128 GB,CPC_B_2C_8RAM_128GB,71f21848-f89b-4aaa-a2dc-780c8e8aac5b,CPC_SS_2,9d2eed2c-b0c0-4a89-940c-bc303444a41b,"Windows 365 Business 2 vCPU, 8 GB, 128 GB" +Windows 365 Business 2 vCPU 8 GB 256 GB,CPC_B_2C_8RAM_256GB,750d9542-a2f8-41c7-8c81-311352173432,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 2 vCPU 8 GB 256 GB,CPC_B_2C_8RAM_256GB,750d9542-a2f8-41c7-8c81-311352173432,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 2 vCPU 8 GB 256 GB,CPC_B_2C_8RAM_256GB,750d9542-a2f8-41c7-8c81-311352173432,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 2 vCPU 8 GB 256 GB,CPC_B_2C_8RAM_256GB,750d9542-a2f8-41c7-8c81-311352173432,CPC_B_2C_8RAM_256GB,1a3ef005-2ef6-434b-8be1-faa56c892854,Windows 365 Business 2 vCPU 8 GB 256 GB +Windows 365 Business 4 vCPU 16 GB 128 GB,CPC_B_4C_16RAM_128GB,ad83ac17-4a5a-4ebb-adb2-079fb277e8b9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 4 vCPU 16 GB 128 GB,CPC_B_4C_16RAM_128GB,ad83ac17-4a5a-4ebb-adb2-079fb277e8b9,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 4 vCPU 16 GB 128 GB,CPC_B_4C_16RAM_128GB,ad83ac17-4a5a-4ebb-adb2-079fb277e8b9,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 4 vCPU 16 GB 128 GB,CPC_B_4C_16RAM_128GB,ad83ac17-4a5a-4ebb-adb2-079fb277e8b9,CPC_B_4C_16RAM_128GB,1d4f75d3-a19b-49aa-88cb-f1ea1690b550,Windows 365 Business 4 vCPU 16 GB 128 GB +Windows 365 Business 4 vCPU 16 GB 128 GB (with Windows Hybrid Benefit),CPC_B_4C_16RAM_128GB_WHB,439ac253-bfbc-49c7-acc0-6b951407b5ef,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 4 vCPU 16 GB 128 GB (with Windows Hybrid Benefit),CPC_B_4C_16RAM_128GB_WHB,439ac253-bfbc-49c7-acc0-6b951407b5ef,CPC_B_4C_16RAM_128GB,1d4f75d3-a19b-49aa-88cb-f1ea1690b550,Windows 365 Business 4 vCPU 16 GB 128 GB +Windows 365 Business 4 vCPU 16 GB 256 GB,CPC_B_4C_16RAM_256GB,b3891a9f-c7d9-463c-a2ec-0b2321bda6f9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 4 vCPU 16 GB 256 GB,CPC_B_4C_16RAM_256GB,b3891a9f-c7d9-463c-a2ec-0b2321bda6f9,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 4 vCPU 16 GB 256 GB,CPC_B_4C_16RAM_256GB,b3891a9f-c7d9-463c-a2ec-0b2321bda6f9,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 4 vCPU 16 GB 256 GB,CPC_B_4C_16RAM_256GB,b3891a9f-c7d9-463c-a2ec-0b2321bda6f9,CPC_B_4C_16RAM_256GB,30f6e561-8805-41d0-80ce-f82698b72d7d,Windows 365 Business 4 vCPU 16 GB 256 GB +Windows 365 Business 4 vCPU 16 GB 512 GB,CPC_B_4C_16RAM_512GB,1b3043ad-dfc6-427e-a2c0-5ca7a6c94a2b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 4 vCPU 16 GB 512 GB,CPC_B_4C_16RAM_512GB,1b3043ad-dfc6-427e-a2c0-5ca7a6c94a2b,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 4 vCPU 16 GB 512 GB,CPC_B_4C_16RAM_512GB,1b3043ad-dfc6-427e-a2c0-5ca7a6c94a2b,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 4 vCPU 16 GB 512 GB,CPC_B_4C_16RAM_512GB,1b3043ad-dfc6-427e-a2c0-5ca7a6c94a2b,CPC_B_4C_16RAM_512GB,15499661-b229-4a1f-b0f9-bd5832ef7b3e,Windows 365 Business 4 vCPU 16 GB 512 GB +Windows 365 Business 8 vCPU 32 GB 128 GB,CPC_B_8C_32RAM_128GB,3cb45fab-ae53-4ff6-af40-24c1915ca07b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 8 vCPU 32 GB 128 GB,CPC_B_8C_32RAM_128GB,3cb45fab-ae53-4ff6-af40-24c1915ca07b,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 8 vCPU 32 GB 128 GB,CPC_B_8C_32RAM_128GB,3cb45fab-ae53-4ff6-af40-24c1915ca07b,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 8 vCPU 32 GB 128 GB,CPC_B_8C_32RAM_128GB,3cb45fab-ae53-4ff6-af40-24c1915ca07b,CPC_B_8C_32RAM_128GB,648005fc-b330-4bd9-8af6-771f28958ac0,Windows 365 Business 8 vCPU 32 GB 128 GB +Windows 365 Business 8 vCPU 32 GB 256 GB,CPC_B_8C_32RAM_256GB,fbc79df2-da01-4c17-8d88-17f8c9493d8f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 8 vCPU 32 GB 256 GB,CPC_B_8C_32RAM_256GB,fbc79df2-da01-4c17-8d88-17f8c9493d8f,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 8 vCPU 32 GB 256 GB,CPC_B_8C_32RAM_256GB,fbc79df2-da01-4c17-8d88-17f8c9493d8f,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 8 vCPU 32 GB 256 GB,CPC_B_8C_32RAM_256GB,fbc79df2-da01-4c17-8d88-17f8c9493d8f,CPC_B_8C_32RAM_256GB,d7a5113a-0276-4dc2-94f8-ca9f2c5ae078,Windows 365 Business 8 vCPU 32 GB 256 GB +Windows 365 Business 8 vCPU 32 GB 512 GB,CPC_B_8C_32RAM_512GB,8ee402cd-e6a8-4b67-a411-54d1f37a2049,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 8 vCPU 32 GB 512 GB,CPC_B_8C_32RAM_512GB,8ee402cd-e6a8-4b67-a411-54d1f37a2049,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 8 vCPU 32 GB 512 GB,CPC_B_8C_32RAM_512GB,8ee402cd-e6a8-4b67-a411-54d1f37a2049,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 8 vCPU 32 GB 512 GB,CPC_B_8C_32RAM_512GB,8ee402cd-e6a8-4b67-a411-54d1f37a2049,CPC_B_8C_32RAM_512GB,4229a0b4-7f34-4835-b068-6dc8d10be57c,Windows 365 Business 8 vCPU 32 GB 512 GB +"Windows 365 Business 16 vCPU, 64 GB, 512 GB","Windows_365_Business_16_vCPU,_64_GB,_512_GB",93d9955a-ec70-44d5-8faa-a194492390f7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Windows 365 Business 16 vCPU, 64 GB, 512 GB","Windows_365_Business_16_vCPU,_64_GB,_512_GB",93d9955a-ec70-44d5-8faa-a194492390f7,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +"Windows 365 Business 16 vCPU, 64 GB, 512 GB","Windows_365_Business_16_vCPU,_64_GB,_512_GB",93d9955a-ec70-44d5-8faa-a194492390f7,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +"Windows 365 Business 16 vCPU, 64 GB, 512 GB","Windows_365_Business_16_vCPU,_64_GB,_512_GB",93d9955a-ec70-44d5-8faa-a194492390f7,CPC_B_16C_64GB_512GB,cbbedc49-52d5-4fd6-82ac-a5bc51634dc3,"Windows 365 Business 16 vCPU, 64 GB, 512 GB" +"Windows 365 Business 16 vCPU, 64 GB, 1 TB","Windows_365_Business_16_vCPU,_64_GB,_1_TB",24be3cd7-82ca-41a5-94a7-4903373cdcae,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Windows 365 Business 16 vCPU, 64 GB, 1 TB","Windows_365_Business_16_vCPU,_64_GB,_1_TB",24be3cd7-82ca-41a5-94a7-4903373cdcae,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +"Windows 365 Business 16 vCPU, 64 GB, 1 TB","Windows_365_Business_16_vCPU,_64_GB,_1_TB",24be3cd7-82ca-41a5-94a7-4903373cdcae,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +"Windows 365 Business 16 vCPU, 64 GB, 1 TB","Windows_365_Business_16_vCPU,_64_GB,_1_TB",24be3cd7-82ca-41a5-94a7-4903373cdcae,CPC_B_16C_64GB_1TB,37c961db-2cfd-4e13-b81e-b0059ce10e34,"Windows 365 Business 16 vCPU, 64 GB, 1 TB" +Windows 365 Enterprise 1 vCPU 2 GB 64 GB,CPC_E_1C_2GB_64GB,0c278af4-c9c1-45de-9f4b-cd929e747a2c,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 1 vCPU 2 GB 64 GB,CPC_E_1C_2GB_64GB,0c278af4-c9c1-45de-9f4b-cd929e747a2c,CPC_E_1C_2GB_64GB,86d70dbb-d4c6-4662-ba17-3014204cbb28,Windows 365 Enterprise 1 vCPU 2 GB 64 GB +Windows 365 Enterprise 2 vCPU 4 GB 64 GB,CPC_E_2C_4GB_64GB,7bb14422-3b90-4389-a7be-f1b745fc037f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 4 GB 64 GB,CPC_E_2C_4GB_64GB,7bb14422-3b90-4389-a7be-f1b745fc037f,CPC_E_2C_4GB_64GB,23a25099-1b2f-4e07-84bd-b84606109438,Windows 365 Enterprise 2 vCPU 4 GB 64 GB +Windows 365 Enterprise 2 vCPU 4 GB 128 GB,CPC_E_2C_4GB_128GB,226ca751-f0a4-4232-9be5-73c02a92555e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 4 GB 128 GB,CPC_E_2C_4GB_128GB,226ca751-f0a4-4232-9be5-73c02a92555e,CPC_1,545e3611-3af8-49a5-9a0a-b7867968f4b0,Windows 365 Enterprise 2 vCPU 4 GB 128 GB +Windows 365 Enterprise 2 vCPU 4 GB 128 GB (Preview),CPC_LVL_1,bce09f38-1800-4a51-8d50-5486380ba84a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 4 GB 128 GB (Preview),CPC_LVL_1,bce09f38-1800-4a51-8d50-5486380ba84a,CPC_1,545e3611-3af8-49a5-9a0a-b7867968f4b0,Windows 365 Enterprise 2 vCPU 4 GB 128 GB +Windows 365 Enterprise 2 vCPU 4 GB 256 GB,CPC_E_2C_4GB_256GB,5265a84e-8def-4fa2-ab4b-5dc278df5025,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 4 GB 256 GB,CPC_E_2C_4GB_256GB,5265a84e-8def-4fa2-ab4b-5dc278df5025,CPC_E_2C_4GB_256GB,0d143570-9b92-4f57-adb5-e4efcd23b3bb,Windows 365 Enterprise 2 vCPU 4 GB 256 GB +Windows 365 Enterprise 2 vCPU 8 GB 128 GB,CPC_E_2C_8GB_128GB,e2aebe6c-897d-480f-9d62-fff1381581f7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 8 GB 128 GB,CPC_E_2C_8GB_128GB,e2aebe6c-897d-480f-9d62-fff1381581f7,CPC_2,3efff3fe-528a-4fc5-b1ba-845802cc764f,Windows 365 Enterprise 2 vCPU 8 GB 128 GB +Windows 365 Enterprise 2 vCPU 8 GB 128 GB (Preview),CPC_LVL_2,461cb62c-6db7-41aa-bf3c-ce78236cdb9e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 8 GB 128 GB (Preview),CPC_LVL_2,461cb62c-6db7-41aa-bf3c-ce78236cdb9e,CPC_2,3efff3fe-528a-4fc5-b1ba-845802cc764f,Windows 365 Enterprise 2 vCPU 8 GB 128 GB +Windows 365 Enterprise 2 vCPU 8 GB 256 GB,CPC_E_2C_8GB_256GB,1c79494f-e170-431f-a409-428f6053fa35,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 8 GB 256 GB,CPC_E_2C_8GB_256GB,1c79494f-e170-431f-a409-428f6053fa35,CPC_E_2C_8GB_256GB,d3468c8c-3545-4f44-a32f-b465934d2498,Windows 365 Enterprise 2 vCPU 8 GB 256 GB +Windows 365 Enterprise 4 vCPU 16 GB 128 GB,CPC_E_4C_16GB_128GB,d201f153-d3b2-4057-be2f-fe25c8983e6f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 4 vCPU 16 GB 128 GB,CPC_E_4C_16GB_128GB,d201f153-d3b2-4057-be2f-fe25c8983e6f,CPC_E_4C_16GB_128GB,2de9c682-ca3f-4f2b-b360-dfc4775db133,Windows 365 Enterprise 4 vCPU 16 GB 128 GB +Windows 365 Enterprise 4 vCPU 16 GB 256 GB,CPC_E_4C_16GB_256GB,96d2951e-cb42-4481-9d6d-cad3baac177e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 4 vCPU 16 GB 256 GB,CPC_E_4C_16GB_256GB,96d2951e-cb42-4481-9d6d-cad3baac177e,CPC_E_4C_16GB_256GB,9ecf691d-8b82-46cb-b254-cd061b2c02fb,Windows 365 Enterprise 4 vCPU 16 GB 256 GB +Windows 365 Enterprise 4 vCPU 16 GB 256 GB (Preview),CPC_LVL_3,bbb4bf6e-3e12-4343-84a1-54d160c00f40,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 4 vCPU 16 GB 256 GB (Preview),CPC_LVL_3,bbb4bf6e-3e12-4343-84a1-54d160c00f40,CPC_E_4C_16GB_256GB,9ecf691d-8b82-46cb-b254-cd061b2c02fb,Windows 365 Enterprise 4 vCPU 16 GB 256 GB +Windows 365 Enterprise 4 vCPU 16 GB 512 GB,CPC_E_4C_16GB_512GB,0da63026-e422-4390-89e8-b14520d7e699,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 4 vCPU 16 GB 512 GB,CPC_E_4C_16GB_512GB,0da63026-e422-4390-89e8-b14520d7e699,CPC_E_4C_16GB_512GB,3bba9856-7cf2-4396-904a-00de74fba3a4,Windows 365 Enterprise 4 vCPU 16 GB 512 GB +Windows 365 Enterprise 8 vCPU 32 GB 128 GB,CPC_E_8C_32GB_128GB,c97d00e4-0c4c-4ec2-a016-9448c65de986,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 8 vCPU 32 GB 128 GB,CPC_E_8C_32GB_128GB,c97d00e4-0c4c-4ec2-a016-9448c65de986,CPC_E_8C_32GB_128GB,2f3cdb12-bcde-4e37-8529-e9e09ec09e23,Windows 365 Enterprise 8 vCPU 32 GB 128 GB +Windows 365 Enterprise 8 vCPU 32 GB 256 GB,CPC_E_8C_32GB_256GB,7818ca3e-73c8-4e49-bc34-1276a2d27918,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 8 vCPU 32 GB 256 GB,CPC_E_8C_32GB_256GB,7818ca3e-73c8-4e49-bc34-1276a2d27918,CPC_E_8C_32GB_256GB,69dc175c-dcff-4757-8389-d19e76acb45d,Windows 365 Enterprise 8 vCPU 32 GB 256 GB +Windows 365 Enterprise 8 vCPU 32 GB 512 GB,CPC_E_8C_32GB_512GB,9fb0ba5f-4825-4e84-b239-5167a3a5d4dc,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 8 vCPU 32 GB 512 GB,CPC_E_8C_32GB_512GB,9fb0ba5f-4825-4e84-b239-5167a3a5d4dc,CPC_E_8C_32GB_512GB,0e837228-8250-4047-8a80-d4a34ba11658,Windows 365 Enterprise 8 vCPU 32 GB 512 GB +Windows 365 Shared Use 2 vCPU 4 GB 64 GB,Windows_365_S_2vCPU_4GB_64GB,1f9990ca-45d9-4c8d-8d04-a79241924ce1,CPC_S_2C_4GB_64GB,64981bdb-a5a6-4a22-869f-a9455366d5bc,Windows 365 Shared Use 2 vCPU 4 GB 64 GB +Windows 365 Shared Use 2 vCPU 4 GB 128 GB,Windows_365_S_2vCPU_4GB_128GB,90369797-7141-4e75-8f5e-d13f4b6092c1,CPC_S_2C_4GB_128GB,51855c77-4d2e-4736-be67-6dca605f2b57,Windows 365 Shared Use 2 vCPU 4 GB 128 GB +Windows 365 Shared Use 2 vCPU 4 GB 256 GB,Windows_365_S_2vCPU_4GB_256GB,8fe96593-34d3-49bb-aeee-fb794fed0800,CPC_S_2C_4GB_256GB,aa8fbe7b-695c-4c05-8d45-d1dddf6f7616,Windows 365 Shared Use 2 vCPU 4 GB 256 GB +Windows 365 Shared Use 2 vCPU 8 GB 128 GB,Windows_365_S_2vCPU_8GB_128GB,2d21fc84-b918-491e-ad84-e24d61ccec94,CPC_S_2C_8GB_128GB,057efbfe-a95d-4263-acb0-12b4a31fed8d,Windows 365 Shared Use 2 vCPU 8 GB 128 GB +Windows 365 Shared Use 2 vCPU 8 GB 256 GB,Windows_365_S_2vCPU_8GB_256GB,2eaa4058-403e-4434-9da9-ea693f5d96dc,CPC_S_2C_8GB_256GB,50ef7026-6174-40ba-bff7-f0e4fcddbf65,Windows 365 Shared Use 2 vCPU 8 GB 256 GB +Windows 365 Shared Use 4 vCPU 16 GB 128 GB,Windows_365_S_4vCPU_16GB_128GB,1bf40e76-4065-4530-ac37-f1513f362f50,CPC_S_4C_16GB_128GB,dd3801e2-4aa1-4b16-a44b-243e55497584,Windows 365 Shared Use 4 vCPU 16 GB 128 GB +Windows 365 Shared Use 4 vCPU 16 GB 256 GB,Windows_365_S_4vCPU_16GB_256GB,a9d1e0df-df6f-48df-9386-76a832119cca,CPC_S_4C_16GB_256GB,2d1d344e-d10c-41bb-953b-b3a47521dca0,Windows 365 Shared Use 4 vCPU 16 GB 256 GB +Windows 365 Shared Use 4 vCPU 16 GB 512 GB,Windows_365_S_4vCPU_16GB_512GB,469af4da-121c-4529-8c85-9467bbebaa4b,CPC_S_4C_16GB_512GB,48b82071-99a5-4214-b493-406a637bd68d,Windows 365 Shared Use 4 vCPU 16 GB 512 GB +Windows 365 Shared Use 8 vCPU 32 GB 128 GB,Windows_365_S_8vCPU_32GB_128GB,f319c63a-61a9-42b7-b786-5695bc7edbaf,CPC_S_8C_32GB_128GB,e4dee41f-a5c5-457d-b7d3-c309986fdbb2,Windows 365 Shared Use 8 vCPU 32 GB 128 GB +Windows 365 Shared Use 8 vCPU 32 GB 256 GB,Windows_365_S_8vCPU_32GB_256GB,fb019e88-26a0-4218-bd61-7767d109ac26,CPC_S_8C_32GB_256GB,1e2321a0-f81c-4d43-a0d5-9895125706b8,Windows 365 Shared Use 8 vCPU 32 GB 256 GB +Windows 365 Shared Use 8 vCPU 32 GB 512 GB,Windows_365_S_8vCPU_32GB_512GB,f4dc1de8-8c94-4d37-af8a-1fca6675590a,CPC_S_8C_32GB_512GB,fa0b4021-0f60-4d95-bf68-95036285282a,Windows 365 Shared Use 8 vCPU 32 GB 512 GB +Windows Store for Business,WINDOWS_STORE,6470687e-a428-4b7a-bef2-8a291ad947c9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Windows Store for Business,WINDOWS_STORE,6470687e-a428-4b7a-bef2-8a291ad947c9,WINDOWS_STORE,a420f25f-a7b3-4ff5-a9d0-5d58f73b537d,WINDOWS STORE SERVICE +Windows Store for Business EDU Faculty,WSFB_EDU_FACULTY,c7e9d9e6-1981-4bf3-bb50-a5bdfaa06fb2,Windows Store for Business EDU Store_faculty,aaa2cd24-5519-450f-a1a0-160750710ca1,Windows Store for Business EDU Store_faculty +Microsoft Workplace Analytics,WORKPLACE_ANALYTICS,3d957427-ecdc-4df2-aacd-01cc9d519da8,WORKPLACE_ANALYTICS,f477b0f0-3bb1-4890-940c-40fcee6ce05f,Microsoft Workplace Analytics +Microsoft Workplace Analytics,WORKPLACE_ANALYTICS,3d957427-ecdc-4df2-aacd-01cc9d519da8,WORKPLACE_ANALYTICS_INSIGHTS_BACKEND,ff7b261f-d98b-415b-827c-42a3fdf015af,Microsoft Workplace Analytics Insights Backend +Microsoft Workplace Analytics,WORKPLACE_ANALYTICS,3d957427-ecdc-4df2-aacd-01cc9d519da8,WORKPLACE_ANALYTICS_INSIGHTS_USER,b622badb-1b45-48d5-920f-4b27a2c0996c,Microsoft Workplace Analytics Insights User +Workload Identities Premium,Workload_Identities_Premium_CN,73fa80b5-689f-4db9-bbe4-bd414bc41e44,AAD_WRKLDID_P1,84c289f0-efcb-486f-8581-07f44fc9efad,Azure Active Directory workload identities P1 +Workload Identities Premium,Workload_Identities_Premium_CN,73fa80b5-689f-4db9-bbe4-bd414bc41e44,AAD_WRKLDID_P2,7dc0e92d-bf15-401d-907e-0884efe7c760,Azure Active Directory workload identities P2 diff --git a/TemplateEmail.html b/Resources/TemplateEmail.html similarity index 100% rename from TemplateEmail.html rename to Resources/TemplateEmail.html diff --git a/intuneCollection.json b/Resources/intuneCollection.json similarity index 100% rename from intuneCollection.json rename to Resources/intuneCollection.json diff --git a/words.txt b/Resources/words.txt similarity index 100% rename from words.txt rename to Resources/words.txt diff --git a/Shared/AppInsights/Microsoft.ApplicationInsights.dll b/Shared/AppInsights/Microsoft.ApplicationInsights.dll new file mode 100644 index 000000000000..0fc9839e335a Binary files /dev/null and b/Shared/AppInsights/Microsoft.ApplicationInsights.dll differ diff --git a/Tests/Alerts/Get-CIPPAlertGlobalAdminAllowList.Tests.ps1 b/Tests/Alerts/Get-CIPPAlertGlobalAdminAllowList.Tests.ps1 new file mode 100644 index 000000000000..7a8ae25cc590 --- /dev/null +++ b/Tests/Alerts/Get-CIPPAlertGlobalAdminAllowList.Tests.ps1 @@ -0,0 +1,106 @@ +# Pester tests for Get-CIPPAlertGlobalAdminAllowList +# Verifies prefix-based allow list handling and alert emission + +BeforeAll { + $RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSCommandPath)) + $AlertPath = Join-Path $RepoRoot 'Modules/CIPPCore/Public/Alerts/Get-CIPPAlertGlobalAdminAllowList.ps1' + + # Provide minimal stubs so Mock has commands to replace during tests + function New-GraphGetRequest { param($uri, $tenantid, $AsApp) } + function Write-AlertTrace { param($cmdletName, $tenantFilter, $data) } + function Write-AlertMessage { param($tenant, $message) } + function Get-NormalizedError { param($message) $message } + + . $AlertPath +} + +Describe 'Get-CIPPAlertGlobalAdminAllowList' { + BeforeEach { + $script:CapturedData = $null + $script:CapturedTenant = $null + $script:CapturedErrorMessage = $null + + Mock -CommandName New-GraphGetRequest -MockWith { + @( + [pscustomobject]@{ + '@odata.type' = '#microsoft.graph.user' + displayName = 'Allowed Admin' + userPrincipalName = 'breakglass@contoso.com' + id = 'id-allowed' + }, + [pscustomobject]@{ + '@odata.type' = '#microsoft.graph.user' + displayName = 'Unapproved Admin' + userPrincipalName = 'otheradmin@contoso.com' + id = 'id-unapproved' + } + ) + } + + Mock -CommandName Write-AlertTrace -MockWith { + param($cmdletName, $tenantFilter, $data) + $script:CapturedData = $data + $script:CapturedTenant = $tenantFilter + } + + Mock -CommandName Write-AlertMessage -MockWith { + param($tenant, $message) + $script:CapturedErrorMessage = $message + } + } + + It 'emits per-admin alerts when AlertEachAdmin is true' { + $allowInput = @{ ApprovedGlobalAdmins = 'breakglass'; AlertEachAdmin = $true } + + Get-CIPPAlertGlobalAdminAllowList -TenantFilter 'contoso.onmicrosoft.com' -InputValue $allowInput + + $CapturedData | Should -Not -BeNullOrEmpty + $CapturedData.UserPrincipalName | Should -Contain 'otheradmin@contoso.com' + $CapturedData.UserPrincipalName | Should -Not -Contain 'breakglass@contoso.com' + $CapturedTenant | Should -Be 'contoso.onmicrosoft.com' + } + + It 'emits single aggregated alert when AlertEachAdmin is false (default)' { + Get-CIPPAlertGlobalAdminAllowList -TenantFilter 'contoso.onmicrosoft.com' -InputValue 'breakglass' + + $CapturedData | Should -Not -BeNullOrEmpty + $CapturedData.Count | Should -Be 1 + $CapturedData[0].NonCompliantUsers | Should -Contain 'otheradmin@contoso.com' + $CapturedData[0].NonCompliantUsers | Should -Not -Contain 'breakglass@contoso.com' + } + + It 'emits single aggregated alert when AlertEachAdmin is explicitly false via input object' { + $allowInput = @{ ApprovedGlobalAdmins = 'breakglass'; AlertEachAdmin = $false } + + Get-CIPPAlertGlobalAdminAllowList -TenantFilter 'contoso.onmicrosoft.com' -InputValue $allowInput + + $CapturedData | Should -Not -BeNullOrEmpty + $CapturedData.Count | Should -Be 1 + $CapturedData[0].NonCompliantUsers | Should -Contain 'otheradmin@contoso.com' + $CapturedData[0].NonCompliantUsers | Should -Not -Contain 'breakglass@contoso.com' + } + + It 'suppresses alert when UPN prefix is approved (comma separated list)' { + $allowInput = @{ ApprovedGlobalAdmins = 'breakglass,otheradmin'; AlertEachAdmin = $true } + Get-CIPPAlertGlobalAdminAllowList -TenantFilter 'contoso.onmicrosoft.com' -InputValue $allowInput + + $CapturedData | Should -BeNullOrEmpty + } + + It 'accepts ApprovedGlobalAdmins property when provided as hashtable' { + $allowInput = @{ ApprovedGlobalAdmins = 'breakglass,otheradmin' } + Get-CIPPAlertGlobalAdminAllowList -TenantFilter 'contoso.onmicrosoft.com' -InputValue $allowInput + + $CapturedData | Should -BeNullOrEmpty + } + + It 'writes alert message when Graph call fails' { + Mock -CommandName New-GraphGetRequest -MockWith { throw 'Graph failure' } -Verifiable + + Get-CIPPAlertGlobalAdminAllowList -TenantFilter 'contoso.onmicrosoft.com' -InputValue 'breakglass' + + $CapturedData | Should -BeNullOrEmpty + $CapturedErrorMessage | Should -Match 'Failed to check approved Global Admins' + $CapturedErrorMessage | Should -Match 'Graph failure' + } +} diff --git a/Tests/Alerts/Get-CIPPAlertIntunePolicyConflicts.Tests.ps1 b/Tests/Alerts/Get-CIPPAlertIntunePolicyConflicts.Tests.ps1 new file mode 100644 index 000000000000..e37958e93814 --- /dev/null +++ b/Tests/Alerts/Get-CIPPAlertIntunePolicyConflicts.Tests.ps1 @@ -0,0 +1,155 @@ +# Pester tests for Get-CIPPAlertIntunePolicyConflicts +# Verifies aggregation defaults, toggles, and error handling + +BeforeAll { + $RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSCommandPath)) + $AlertPath = Join-Path $RepoRoot 'Modules/CIPPCore/Public/Alerts/Get-CIPPAlertIntunePolicyConflicts.ps1' + + function New-GraphGetRequest { param($uri, $tenantid) } + function Write-AlertTrace { param($cmdletName, $tenantFilter, $data) } + function Write-AlertMessage { param($tenant, $message) } + function Get-NormalizedError { param($message) $message } + function Test-CIPPStandardLicense { param($StandardName, $TenantFilter, $RequiredCapabilities) } + + . $AlertPath +} + +Describe 'Get-CIPPAlertIntunePolicyConflicts' { + BeforeEach { + $script:CapturedData = $null + $script:CapturedTenant = $null + $script:CapturedErrorMessage = $null + + Mock -CommandName Test-CIPPStandardLicense -MockWith { $true } + + Mock -CommandName Write-AlertTrace -MockWith { + param($cmdletName, $tenantFilter, $data) + $script:CapturedData = $data + $script:CapturedTenant = $tenantFilter + } + + Mock -CommandName Write-AlertMessage -MockWith { + param($tenant, $message) + $script:CapturedErrorMessage = $message + } + + Mock -CommandName New-GraphGetRequest -MockWith { + param($uri, $tenantid) + if ($uri -like '*deviceManagement/managedDevices*') { + @( + [pscustomobject]@{ + deviceName = 'PC-01' + userPrincipalName = 'user1@contoso.com' + id = 'device-1' + deviceConfigurationStates = @( + [pscustomobject]@{ displayName = 'Policy A'; state = 'conflict' } + ) + } + ) + } elseif ($uri -like '*deviceAppManagement/mobileApps*') { + @( + [pscustomobject]@{ + displayName = 'App A' + deviceStatuses = @( + [pscustomobject]@{ installState = 'error'; deviceName = 'PC-01'; userPrincipalName = 'user1@contoso.com'; deviceId = 'device-1' } + ) + } + ) + } + } + } + + It 'defaults to aggregated alerting with all mechanisms and statuses' { + Get-CIPPAlertIntunePolicyConflicts -TenantFilter 'contoso.onmicrosoft.com' + + $CapturedTenant | Should -Be 'contoso.onmicrosoft.com' + $CapturedData | Should -Not -BeNullOrEmpty + $CapturedData.Count | Should -Be 1 + $CapturedData[0].PolicyIssues | Should -Be 1 + $CapturedData[0].AppIssues | Should -Be 1 + $CapturedData[0].Issues.Count | Should -Be 2 + } + + It 'emits per-issue alerts when AlertEachIssue is true' { + Get-CIPPAlertIntunePolicyConflicts -TenantFilter 'contoso.onmicrosoft.com' -InputValue @{ AlertEachIssue = $true } + + $CapturedData | Should -Not -BeNullOrEmpty + $CapturedData.Count | Should -Be 2 + ($CapturedData | Where-Object { $_.Type -eq 'Policy' }).Count | Should -Be 1 + ($CapturedData | Where-Object { $_.Type -eq 'Application' }).Count | Should -Be 1 + } + + It 'supports legacy Aggregate=false for per-issue alerts' { + Get-CIPPAlertIntunePolicyConflicts -TenantFilter 'contoso.onmicrosoft.com' -InputValue @{ Aggregate = $false } + + $CapturedData | Should -Not -BeNullOrEmpty + $CapturedData.Count | Should -Be 2 + ($CapturedData | Where-Object { $_.Type -eq 'Policy' }).Count | Should -Be 1 + ($CapturedData | Where-Object { $_.Type -eq 'Application' }).Count | Should -Be 1 + } + + It 'honors IncludePolicies toggle' { + Get-CIPPAlertIntunePolicyConflicts -TenantFilter 'contoso.onmicrosoft.com' -InputValue @{ IncludePolicies = $false } + + $CapturedData | Should -Not -BeNullOrEmpty + $CapturedData.Count | Should -Be 1 + $CapturedData[0].PolicyIssues | Should -Be 0 + $CapturedData[0].AppIssues | Should -Be 1 + $CapturedData[0].Issues.Count | Should -Be 1 + ($CapturedData[0].Issues | Where-Object { $_.Type -eq 'Policy' }).Count | Should -Be 0 + } + + It 'suppresses conflict-only alerts when AlertConflicts is false' { + # conflict for policy, error for app; expect only app when conflicts suppressed + Mock -CommandName New-GraphGetRequest -MockWith { + param($uri, $tenantid) + if ($uri -like '*deviceManagement/managedDevices*') { + @( + [pscustomobject]@{ + deviceName = 'PC-02' + userPrincipalName = 'user2@contoso.com' + id = 'device-2' + deviceConfigurationStates = @( + [pscustomobject]@{ displayName = 'Policy B'; state = 'conflict' } + ) + } + ) + } elseif ($uri -like '*deviceAppManagement/mobileApps*') { + @( + [pscustomobject]@{ + displayName = 'App B' + deviceStatuses = @( + [pscustomobject]@{ installState = 'error'; deviceName = 'PC-02'; userPrincipalName = 'user2@contoso.com'; deviceId = 'device-2' } + ) + } + ) + } + } + + Get-CIPPAlertIntunePolicyConflicts -TenantFilter 'contoso.onmicrosoft.com' -InputValue @{ AlertConflicts = $false; Aggregate = $false } + + $CapturedData | Should -Not -BeNullOrEmpty + $CapturedData.Count | Should -Be 1 + $CapturedData[0].Type | Should -Be 'Application' + $CapturedData[0].IssueStatus | Should -Be 'error' + } + + It 'skips processing when license check fails' { + Mock -CommandName Test-CIPPStandardLicense -MockWith { $false } -Verifiable + + Get-CIPPAlertIntunePolicyConflicts -TenantFilter 'contoso.onmicrosoft.com' + + $CapturedData | Should -BeNullOrEmpty + $CapturedTenant | Should -BeNullOrEmpty + } + + It 'writes alert message when Graph call fails' { + Mock -CommandName New-GraphGetRequest -MockWith { throw 'Graph failure' } -Verifiable + + Get-CIPPAlertIntunePolicyConflicts -TenantFilter 'contoso.onmicrosoft.com' + + $CapturedData | Should -BeNullOrEmpty + $CapturedErrorMessage | Should -Match 'Failed to query Intune (policy|application) states' + $CapturedErrorMessage | Should -Match 'Graph failure' + } +} diff --git a/Tools/Build-FunctionPermissions.ps1 b/Tools/Build-FunctionPermissions.ps1 new file mode 100644 index 000000000000..38586cc37ff9 --- /dev/null +++ b/Tools/Build-FunctionPermissions.ps1 @@ -0,0 +1,87 @@ +param( + [string]$ModulePath = (Join-Path $PSScriptRoot '..' 'Modules' 'CIPPCore'), + [string]$OutputPath, + [string]$ModuleName +) + +$ErrorActionPreference = 'Stop' + +function Resolve-ModuleImportPath { + param( + [Parameter(Mandatory = $true)][string]$Root, + [Parameter(Mandatory = $true)][string]$Name + ) + + $psd1 = Join-Path $Root "$Name.psd1" + if (Test-Path $psd1) { return $psd1 } + + $psm1 = Join-Path $Root "$Name.psm1" + if (Test-Path $psm1) { return $psm1 } + + throw "Module files not found for '$Name' in '$Root'. Expected $Name.psd1 or $Name.psm1." +} + +function Get-HelpProperty { + param( + [Parameter(Mandatory = $true)]$HelpObject, + [Parameter(Mandatory = $true)][string]$PropertyName + ) + + $property = $HelpObject.PSObject.Properties[$PropertyName] + if ($property) { return $property.Value } + return '' +} + +# Resolve defaults +if (-not (Test-Path -Path $ModulePath)) { + throw "ModulePath '$ModulePath' not found. Provide -ModulePath to the module root." +} +$ModulePath = (Resolve-Path -Path $ModulePath).ProviderPath +if (-not $ModuleName) { $ModuleName = (Split-Path -Path $ModulePath -Leaf) } +if (-not $OutputPath) { + $defaultLibData = Join-Path $ModulePath 'lib' 'data' 'function-permissions.json' + $OutputPath = if (Test-Path (Split-Path -Parent $defaultLibData)) { $defaultLibData } else { Join-Path $ModulePath 'function-permissions.json' } +} + +# Ensure destination directory exists +$null = New-Item -ItemType Directory -Path (Split-Path -Parent $OutputPath) -Force + +# Import target module so Get-Help can read Role/Functionality metadata +$ModuleImportPath = Resolve-ModuleImportPath -Root $ModulePath -Name $ModuleName +$normalizedImportPath = [System.IO.Path]::GetFullPath($ModuleImportPath) +$loaded = Get-Module -Name $ModuleName | Where-Object { [System.IO.Path]::GetFullPath($_.Path) -eq $normalizedImportPath } +if (-not $loaded) { + Write-Host "Importing module '$ModuleName' from '$ModuleImportPath'" + Import-Module -Name $ModuleImportPath -Force -ErrorAction Stop +} else { + Write-Host "Module '$ModuleName' already loaded from '$ModuleImportPath'; reusing existing session copy." +} + +$commands = Get-Command -Module $ModuleName -CommandType Function +$permissions = [ordered]@{} + +foreach ($command in $commands | Sort-Object -Property Name | Select-Object -Unique) { + $help = Get-Help -Name $command.Name -ErrorAction SilentlyContinue + if ($help) { + $role = Get-HelpProperty -HelpObject $help -PropertyName 'Role' + $functionality = Get-HelpProperty -HelpObject $help -PropertyName 'Functionality' + } else { + $role = '' + $functionality = '' + } + + if ($role -and $functionality) { + $permissions[$command.Name] = @{ + Role = $role + Functionality = $functionality + } + } else { + Write-Host "Skipping $($command.Name): no Role or Functionality metadata found." + } +} + +# Depth 3 is sufficient for the flat hashtable of functions -> (Role, Functionality) +$json = $permissions | ConvertTo-Json -Depth 3 +Set-Content -Path $OutputPath -Value $json -Encoding UTF8 + +Write-Host "Wrote permissions for $($permissions.Count) functions to $OutputPath" diff --git a/Tools/ExampleReportTemplate.ps1 b/Tools/ExampleReportTemplate.ps1 new file mode 100644 index 000000000000..e1973a4ba742 --- /dev/null +++ b/Tools/ExampleReportTemplate.ps1 @@ -0,0 +1,19 @@ +$Table = Get-CippTable -tablename 'CippReportTemplates' + +# Dynamically discover all ZTNA test files +$TestFiles = Get-ChildItem "C:\Github\CIPP-API\Modules\CIPPCore\Public\Tests\Invoke-CippTestZTNA*.ps1" | Sort-Object Name +$AllTestIds = $TestFiles.BaseName | ForEach-Object { $_ -replace 'Invoke-CippTestZTNA', 'ZTNA' } + +Write-Host "Discovered $($AllTestIds.Count) ZTNA tests" + +$Entity = @{ + RowKey = 'd5d1e123-bce0-482d-971f-be6ed820dd92' + PartitionKey = 'ReportingTemplate' + IdentityTests = [string]($AllTestIds | ConvertTo-Json -Compress) + Description = 'Complete Zero Trust Network Assessment Report' + Name = 'Full ZTNA Report' +} + +Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force + +Write-Host "Report template created successfully with ID: $($Entity.RowKey)" diff --git a/Tools/Initialize-DevEnvironment.ps1 b/Tools/Initialize-DevEnvironment.ps1 index 4e72d4c9458b..bc8fd6193f91 100644 --- a/Tools/Initialize-DevEnvironment.ps1 +++ b/Tools/Initialize-DevEnvironment.ps1 @@ -1,17 +1,31 @@ $CippRoot = (Get-Item $PSScriptRoot).Parent.FullName ### Read the local.settings.json file and convert to a PowerShell object. -$CIPPSettings = Get-Content (Join-Path $CippRoot "local.settings.json") | ConvertFrom-Json | Select-Object -ExpandProperty Values +$CIPPSettings = Get-Content (Join-Path $CippRoot 'local.settings.json') | ConvertFrom-Json | Select-Object -ExpandProperty Values ### Loop through the settings and set environment variables for each. $ValidKeys = @('TenantID', 'ApplicationID', 'ApplicationSecret', 'RefreshToken', 'AzureWebJobsStorage', 'PartnerTenantAvailable', 'SetFromProfile') -ForEach ($Key in $CIPPSettings.PSObject.Properties.Name) { - if ($ValidKeys -Contains $Key) { +foreach ($Key in $CIPPSettings.PSObject.Properties.Name) { + if ($ValidKeys -contains $Key) { [Environment]::SetEnvironmentVariable($Key, $CippSettings.$Key) } } -Import-Module ( Join-Path $CippRoot "Modules\AzBobbyTables" ) -Import-Module ( Join-Path $CippRoot "Modules\DNSHealth" ) -Import-Module ( Join-Path $CippRoot "Modules\CIPPCore" ) -Import-Module ( Join-Path $CippRoot "Modules\CippExtensions" ) +$PowerShellWorkerRoot = Join-Path $env:ProgramFiles 'Microsoft\Azure Functions Core Tools\workers\powershell\7.4\Microsoft.Azure.Functions.PowerShellWorker.dll' +if ((Test-Path $PowerShellWorkerRoot) -and !('Microsoft.Azure.Functions.PowerShellWorker' -as [type])) { + Write-Information "Loading PowerShell Worker from $PowerShellWorkerRoot" + Add-Type -Path $PowerShellWorkerRoot +} + +# Remove previously loaded modules to force reloading if new code changes were made +$LoadedModules = Get-Module | Select-Object -ExpandProperty Name +switch ($LoadedModules) { + 'CIPPCore' { Remove-Module CIPPCore -Force } + 'CippExtensions' { Remove-Module CippExtensions -Force } + 'MicrosoftTeams' { Remove-Module MicrosoftTeams -Force } +} + +Import-Module ( Join-Path $CippRoot 'Modules\AzBobbyTables' ) +Import-Module ( Join-Path $CippRoot 'Modules\DNSHealth' ) +Import-Module ( Join-Path $CippRoot 'Modules\CIPPCore' ) +Import-Module ( Join-Path $CippRoot 'Modules\CippExtensions' ) Get-CIPPAuthentication diff --git a/Tools/IntuneWin/Get-IntuneWinPackageContents.ps1 b/Tools/IntuneWin/Get-IntuneWinPackageContents.ps1 new file mode 100644 index 000000000000..c5f2caf2e66b --- /dev/null +++ b/Tools/IntuneWin/Get-IntuneWinPackageContents.ps1 @@ -0,0 +1,32 @@ +param( + $PackagePath, + $MetadataPath +) + +# Example: .\tools\IntuneWin\Get-IntuneWinPackageContents.ps1 -PackagePath .\AddMSPApp\datto.intunewin -MetadataPath .\AddMSPApp\datto.app.xml + +$Metadata = [xml](Get-Content -Path $MetadataPath) +$Encryption = $Metadata.ApplicationInfo.EncryptionInfo + +$Package = Get-Item $PackagePath + +Write-Host "Decrypting IntuneWin package $($Package.FullName)" +Write-Host "Using encryption key: $($Encryption.EncryptionKey)" +Write-Host "Using initialization vector: $($Encryption.InitializationVector)" + +$DecoderParams = @( + "`"$($Package.FullName)`"" + "/key:`"$($Encryption.EncryptionKey)`"" + "/iv:`"$($Encryption.InitializationVector)`"" +) + +Start-Process -FilePath "$PSScriptRoot\IntuneWinAppUtilDecoder.exe" -ArgumentList $DecoderParams -Wait -NoNewWindow +# replace filename.intunewin with filename.decoded.zip +$NewFileName = "$($Package.BaseName -replace '\.intunewin$', '').decoded.zip" + +#Extract zip +Write-Host "Extracting decrypted IntuneWin package: $($Package.DirectoryName)\$NewFileName" +Expand-Archive -Path "$($Package.DirectoryName)\$NewFileName" -DestinationPath "$($Package.DirectoryName)\$($Package.BaseName)" -Force + +# Remove the decoded zip file +Remove-Item -Path "$($Package.DirectoryName)\$NewFileName" -Force diff --git a/AddChocoApp/IntunePackage/IntuneWinAppUtil.exe b/Tools/IntuneWin/IntuneWinAppUtil.exe similarity index 100% rename from AddChocoApp/IntunePackage/IntuneWinAppUtil.exe rename to Tools/IntuneWin/IntuneWinAppUtil.exe diff --git a/Tools/IntuneWin/IntuneWinAppUtilDecoder.exe b/Tools/IntuneWin/IntuneWinAppUtilDecoder.exe new file mode 100644 index 000000000000..b0c2644d14af Binary files /dev/null and b/Tools/IntuneWin/IntuneWinAppUtilDecoder.exe differ diff --git a/Tools/IntuneWin/New-IntuneWinPackage.ps1 b/Tools/IntuneWin/New-IntuneWinPackage.ps1 new file mode 100644 index 000000000000..f98bc3b64739 --- /dev/null +++ b/Tools/IntuneWin/New-IntuneWinPackage.ps1 @@ -0,0 +1,58 @@ +param( + [Parameter(Mandatory = $true)] + [string]$SourcePath, + [Parameter(Mandatory = $true)] + [string]$FileName, + [Parameter(Mandatory = $true)] + [string]$MetadataFileName +) + +# Example: .\Tools\IntuneWin\New-IntuneWinPackage.ps1 -SourcePath .\AddMSPApp\datto\ -FileName datto.intunewin -MetadataFileName datto.app.xml + +$Source = Get-Item -Path $SourcePath + +$Params = @( + "-c $SourcePath" + '-s install.ps1' + "-o $SourcePath" + '-q' +) + +Start-Process -FilePath "$PSScriptRoot\IntuneWinAppUtil.exe" -ArgumentList $Params -Wait -NoNewWindow + +Expand-Archive -Path "$SourcePath\install.intunewin" -DestinationPath $SourcePath -Force +Write-Host "IntuneWin package contents extracted to: $SourcePath" +Remove-Item -Path "$SourcePath\install.intunewin" -Force +Write-Host "Temporary IntuneWin package file removed from: $SourcePath\install.intunewin" + +# Extract IntunePackage.intunewin from Contents and move to the parent directory +$IntunePackagePath = Join-Path $SourcePath 'IntuneWinPackage\Contents\IntunePackage.intunewin' +if (Test-Path -Path $IntunePackagePath) { + Move-Item -Path $IntunePackagePath -Destination (Join-Path $Source.Parent.FullName $FileName) -Force + Write-Host "IntunePackage.intunewin moved to: $($Source.Parent.FullName)\$FileName" +} else { + Write-Host 'IntunePackage.intunewin not found in Contents directory.' +} + +# Copy the Metadata/Detection.xml file to the parent directory +$DetectionFilePath = Join-Path $SourcePath 'IntuneWinPackage\Metadata\Detection.xml' + +if (Test-Path -Path $DetectionFilePath) { + $MetadataXml = [xml](Get-Content -Path $DetectionFilePath) + $MetadataXml.ApplicationInfo.FileName = $FileName + $MetadataXml.Save($DetectionFilePath) + Write-Host "Detection.xml updated with FileName: $FileName" +} else { + Write-Host 'Detection.xml not found in Metadata directory.' +} + +if (Test-Path -Path $DetectionFilePath) { + Copy-Item -Path $DetectionFilePath -Destination (Join-Path $Source.Parent.FullName $MetadataFileName) -Force + Write-Host "Detection.xml copied to: $($Source.Parent.FullName)\$MetadataFileName" +} else { + Write-Host 'Detection.xml not found in Metadata directory.' +} + +# Clean up the Source directory +Remove-Item -Path $SourcePath -Recurse -Force +Write-Host "Temporary files cleaned up from: $SourcePath" diff --git a/Tools/Test-AllZTNATests.ps1 b/Tools/Test-AllZTNATests.ps1 new file mode 100644 index 000000000000..8c371e090854 --- /dev/null +++ b/Tools/Test-AllZTNATests.ps1 @@ -0,0 +1,9 @@ +$Tenant = '7ngn50.onmicrosoft.com' +$item =0 +Get-ChildItem -Path 'C:\Github\CIPP-API\Modules\CIPPCore\Public\Tests' -Recurse -Filter 'Invoke-CippTest*.ps1'| ForEach-Object { + $item++ + + write-host "performing test $($_.BaseName) - $($item)" + . $_.FullName; & $_.BaseName -Tenant $Tenant + +} diff --git a/Tools/Test-BackupStorageComparison.ps1 b/Tools/Test-BackupStorageComparison.ps1 new file mode 100644 index 000000000000..ea14bd8a94bf --- /dev/null +++ b/Tools/Test-BackupStorageComparison.ps1 @@ -0,0 +1,249 @@ +param( + [Parameter(Mandatory = $false)] [string] $ConnectionString = $env:AzureWebJobsStorage, + [Parameter(Mandatory = $false)] [ValidateSet('Small', 'Medium', 'Large', 'All')] [string] $TestSize = 'All', + [Parameter(Mandatory = $false)] [bool] $Cleanup = $true +) + +$ErrorActionPreference = 'Stop' + +# Import CIPPCore module from repository +$modulePath = Join-Path $PSScriptRoot '..' 'Modules' 'CIPPCore' 'CIPPCore.psm1' +if (-not (Test-Path -LiteralPath $modulePath)) { + throw "CIPPCore module not found at $modulePath" +} +Import-Module -Force $modulePath + +if (-not $ConnectionString) { + throw 'Azure Storage connection string not provided. Set AzureWebJobsStorage or pass -ConnectionString.' +} + +Write-Host '================================' -ForegroundColor Cyan +Write-Host 'Backup Storage Comparison Tests' -ForegroundColor Cyan +Write-Host '================================' -ForegroundColor Cyan + +# Test data configurations +$testConfigs = @( + @{ + Name = 'Small' + ItemCount = 10 + PropertiesPerItem = 5 + Description = 'Small payload (~5KB)' + }, + @{ + Name = 'Medium' + ItemCount = 100 + PropertiesPerItem = 15 + Description = 'Medium payload (~250KB)' + }, + @{ + Name = 'Large' + ItemCount = 500 + PropertiesPerItem = 30 + Description = 'Large payload (~2.5MB)' + } +) + +function Generate-TestData { + param( + [int]$ItemCount, + [int]$PropertiesPerItem, + [string]$Type + ) + + $data = @() + for ($i = 0; $i -lt $ItemCount; $i++) { + $item = @{ + id = [guid]::NewGuid().ToString() + rowKey = "item_$i" + timestamp = (Get-Date).ToUniversalTime() + table = $Type + } + + for ($p = 0; $p -lt $PropertiesPerItem; $p++) { + $item["property_$p"] = "This is test property $p with some additional content to make it realistic. Lorem ipsum dolor sit amet." * 3 + } + + $data += $item + } + + return $data +} + +function Test-TableStorage { + param( + [array]$TestData, + [string]$TestName + ) + + Write-Host "`n[TABLE STORAGE] Testing $TestName..." -ForegroundColor Yellow + + $tableName = "TestBackup$(Get-Random -Maximum 100000)" + $Table = Get-CippTable -tablename $tableName + + $jsonString = $TestData | ConvertTo-Json -Depth 100 -Compress + $jsonSizeKB = [math]::Round(($jsonString | Measure-Object -Character).Characters / 1KB, 2) + + Write-Host " JSON Size: $jsonSizeKB KB" + + # Time the storage operation + $stopwatch = [System.Diagnostics.Stopwatch]::StartNew() + try { + $entity = @{ + PartitionKey = 'TestBackup' + RowKey = $TestName + Backup = [string]$jsonString + } + Add-CIPPAzDataTableEntity @Table -Entity $entity -Force -ErrorAction Stop + $stopwatch.Stop() + + Write-Host " Write Time: $($stopwatch.ElapsedMilliseconds)ms" -ForegroundColor Green + Write-Host ' Status: Success ✓' -ForegroundColor Green + + return @{ + Method = 'Table Storage' + TestName = $TestName + Size = $jsonSizeKB + WriteTime = $stopwatch.ElapsedMilliseconds + Success = $true + Details = "Stored in table '$tableName'" + } + } catch { + $stopwatch.Stop() + Write-Host " Status: Failed ✗ - $($_.Exception.Message)" -ForegroundColor Red + + return @{ + Method = 'Table Storage' + TestName = $TestName + Size = $jsonSizeKB + WriteTime = $stopwatch.ElapsedMilliseconds + Success = $false + Details = $_.Exception.Message + } + } +} + +function Test-BlobStorage { + param( + [array]$TestData, + [string]$TestName + ) + + Write-Host "`n[BLOB STORAGE] Testing $TestName..." -ForegroundColor Yellow + + $containerName = 'test-backup-comparison' + $blobName = "backup_$TestName`_$(Get-Random -Maximum 100000).json" + + $jsonString = $TestData | ConvertTo-Json -Depth 100 -Compress + $jsonSizeKB = [math]::Round(($jsonString | Measure-Object -Character).Characters / 1KB, 2) + + Write-Host " JSON Size: $jsonSizeKB KB" + + try { + # Ensure container exists + $containers = @() + try { + $containers = New-CIPPAzStorageRequest -Service 'blob' -Component 'list' -ConnectionString $ConnectionString + } catch { $containers = @() } + + $exists = ($containers | Where-Object { $_.Name -eq $containerName }) -ne $null + if (-not $exists) { + Write-Host " Creating container '$containerName'..." -ForegroundColor Gray + $null = New-CIPPAzStorageRequest -Service 'blob' -Resource $containerName -Method 'PUT' -QueryParams @{ restype = 'container' } -ConnectionString $ConnectionString + Start-Sleep -Milliseconds 500 + } + + # Time the upload operation + $stopwatch = [System.Diagnostics.Stopwatch]::StartNew() + $null = New-CIPPAzStorageRequest -Service 'blob' -Resource "$containerName/$blobName" -Method 'PUT' -ContentType 'application/json; charset=utf-8' -Body $jsonString -ConnectionString $ConnectionString + $stopwatch.Stop() + + Write-Host " Write Time: $($stopwatch.ElapsedMilliseconds)ms" -ForegroundColor Green + Write-Host ' Status: Success ✓' -ForegroundColor Green + Write-Host " Location: $containerName/$blobName" -ForegroundColor Gray + + return @{ + Method = 'Blob Storage' + TestName = $TestName + Size = $jsonSizeKB + WriteTime = $stopwatch.ElapsedMilliseconds + Success = $true + Details = "$containerName/$blobName" + } + } catch { + $stopwatch.Stop() + Write-Host " Status: Failed ✗ - $($_.Exception.Message)" -ForegroundColor Red + + return @{ + Method = 'Blob Storage' + TestName = $TestName + Size = $jsonSizeKB + WriteTime = $stopwatch.ElapsedMilliseconds + Success = $false + Details = $_.Exception.Message + } + } +} + +# Run tests +$results = @() +$configsToRun = if ($TestSize -eq 'All') { $testConfigs } else { $testConfigs | Where-Object { $_.Name -eq $TestSize } } + +foreach ($config in $configsToRun) { + Write-Host "`n`n$($config.Description)" -ForegroundColor Magenta + Write-Host "Generating test data ($($config.ItemCount) items, $($config.PropertiesPerItem) properties)..." -ForegroundColor Gray + + $testData = Generate-TestData -ItemCount $config.ItemCount -PropertiesPerItem $config.PropertiesPerItem -Type "Backup_$($config.Name)" + + # Test table storage + $tableResult = Test-TableStorage -TestData $testData -TestName $config.Name + $results += $tableResult + + Start-Sleep -Milliseconds 500 + + # Test blob storage + $blobResult = Test-BlobStorage -TestData $testData -TestName $config.Name + $results += $blobResult +} + +# Summary +Write-Host "`n`n================================" -ForegroundColor Cyan +Write-Host 'Test Summary' -ForegroundColor Cyan +Write-Host '================================' -ForegroundColor Cyan + +$results | Group-Object -Property TestName | ForEach-Object { + $testGroup = $_ + Write-Host "`n$($testGroup.Name):" -ForegroundColor Magenta + + $testGroup.Group | ForEach-Object { + $status = if ($_.Success) { '✓' } else { '✗' } + Write-Host " $($_.Method): $($_.Size)KB | Write: $($_.WriteTime)ms | $status" -ForegroundColor $(if ($_.Success) { 'Green' } else { 'Red' }) + } +} + +# Detailed comparison +Write-Host "`n`n================================" -ForegroundColor Cyan +Write-Host 'Performance Comparison' -ForegroundColor Cyan +Write-Host '================================' -ForegroundColor Cyan + +$results | Group-Object -Property TestName | ForEach-Object { + $testGroup = $_ + $tableResult = $testGroup.Group | Where-Object { $_.Method -eq 'Table Storage' } + $blobResult = $testGroup.Group | Where-Object { $_.Method -eq 'Blob Storage' } + + if ($tableResult -and $blobResult -and $tableResult.Success -and $blobResult.Success) { + $timeDiff = $blobResult.WriteTime - $tableResult.WriteTime + $timePercentage = [math]::Round(($timeDiff / $tableResult.WriteTime) * 100, 2) + + Write-Host "`n$($testGroup.Name):" -ForegroundColor Magenta + Write-Host " Table Write Time: $($tableResult.WriteTime)ms" -ForegroundColor Gray + Write-Host " Blob Write Time: $($blobResult.WriteTime)ms" -ForegroundColor Gray + + if ($timeDiff -gt 0) { + Write-Host " Blob is $($timeDiff)ms slower ($($timePercentage)% slower)" -ForegroundColor Yellow + } else { + Write-Host " Blob is $((-$timeDiff))ms faster ($($(-$timePercentage))% faster)" -ForegroundColor Green + } + } +} + +Write-Host "`n`nTest Complete!" -ForegroundColor Green diff --git a/Tools/Test-BlobUpload.ps1 b/Tools/Test-BlobUpload.ps1 new file mode 100644 index 000000000000..f7a13eeb6a55 --- /dev/null +++ b/Tools/Test-BlobUpload.ps1 @@ -0,0 +1,85 @@ +param( + [Parameter(Mandatory = $false)] [string] $ContainerName = 'test', + [Parameter(Mandatory = $false)] [string] $BlobName = 'hello.txt', + [Parameter(Mandatory = $false)] [string] $Content = 'Hello, world!', + [Parameter(Mandatory = $false)] [string] $ConnectionString = $env:AzureWebJobsStorage +) + +$ErrorActionPreference = 'Stop' + +# Import CIPPCore module from repository +$modulePath = Join-Path $PSScriptRoot '..' 'Modules' 'CIPPCore' 'CIPPCore.psm1' +if (-not (Test-Path -LiteralPath $modulePath)) { + throw "CIPPCore module not found at $modulePath" +} +Import-Module -Force $modulePath + +if (-not $ConnectionString) { + throw 'Azure Storage connection string not provided. Set AzureWebJobsStorage or pass -ConnectionString.' +} + +# Parse connection string for AccountName and AccountKey +$connectionParams = @{} +foreach ($part in ($ConnectionString -split ';')) { + $p = $part.Trim() + if ($p -and $p -match '^(.+?)=(.+)$') { $connectionParams[$matches[1]] = $matches[2] } +} +$AccountName = $connectionParams['AccountName'] +$AccountKey = $connectionParams['AccountKey'] + +# Support UseDevelopmentStorage=true +if ($connectionParams['UseDevelopmentStorage'] -eq 'true') { + $AccountName = 'devstoreaccount1' + $AccountKey = 'Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==' +} + +if (-not $AccountName -or -not $AccountKey) { + throw 'Connection string must contain AccountName and AccountKey or UseDevelopmentStorage=true.' +} + +Write-Host "Account: $AccountName" -ForegroundColor Cyan +Write-Host "Container: $ContainerName" -ForegroundColor Cyan +Write-Host "Blob: $BlobName" -ForegroundColor Cyan + +# Check if container exists via listing; create if missing +$containers = @() +try { + $containers = New-CIPPAzStorageRequest -Service 'blob' -Component 'list' +} catch { $containers = @() } + +$exists = ($containers | Where-Object { $_.Name -eq $ContainerName }) -ne $null +if ($exists) { + Write-Host 'Container exists.' -ForegroundColor Green +} else { + Write-Host 'Container not found. Creating...' -ForegroundColor Yellow + $null = New-CIPPAzStorageRequest -Service 'blob' -Resource $ContainerName -Method 'PUT' -QueryParams @{ restype = 'container' } + Start-Sleep -Seconds 1 + # Re-check + try { + $containers = New-CIPPAzStorageRequest -Service 'blob' -Component 'list' + } catch { $containers = @() } + $exists = ($containers | Where-Object { $_.Name -eq $ContainerName }) -ne $null + if (-not $exists) { throw "Failed to create container '$ContainerName'" } + Write-Host 'Container created.' -ForegroundColor Green +} + +# Upload blob content (BlockBlob by default) +Write-Host 'Uploading blob content...' -ForegroundColor Yellow +try { + $null = New-CIPPAzStorageRequest -Service 'blob' -Resource "$ContainerName/$BlobName" -Method 'PUT' -ContentType 'text/plain; charset=utf-8' -Body $Content +} catch { + Write-Error "Blob upload failed: $($_.Exception.Message)" + throw +} +Write-Host 'Upload complete.' -ForegroundColor Green + +# Generate SAS token valid for 7 days (read-only) +$expiry = (Get-Date).ToUniversalTime().AddDays(7) +$sas = New-CIPPAzServiceSAS -AccountName $AccountName -AccountKey $AccountKey -Service 'blob' -ResourcePath "$ContainerName/$BlobName" -Permissions 'r' -ExpiryTime $expiry -Protocol 'https' -Version '2022-11-02' -SignedResource 'b' -ConnectionString $ConnectionString + +$url = $sas.ResourceUri + $sas.Token +Write-Host 'Download URL (7 days):' -ForegroundColor Cyan +Write-Output $url + +# Return structured object +[PSCustomObject]@{ Url = $url; Container = $ContainerName; Blob = $BlobName; ExpiresUtc = $expiry } diff --git a/Tools/Update-LicenseSKUFiles.ps1 b/Tools/Update-LicenseSKUFiles.ps1 index e21817d57f18..2bcc8d8c1910 100644 --- a/Tools/Update-LicenseSKUFiles.ps1 +++ b/Tools/Update-LicenseSKUFiles.ps1 @@ -54,5 +54,28 @@ foreach ($File in $LicenseJSONFiles) { Write-Host "Updated $($File.FullName) with new license SKU data." -ForegroundColor Green } +# Sync ExcludeSkuList.JSON names with the authoritative license data +Set-Location $PSScriptRoot +$ExcludeSkuListPath = Join-Path $PSScriptRoot '..\Config\ExcludeSkuList.JSON' +if (Test-Path $ExcludeSkuListPath) { + Write-Host 'Syncing ExcludeSkuList.JSON product names...' -ForegroundColor Yellow + $GuidToName = @{} + foreach ($license in $LicenseData) { + if (-not $GuidToName.ContainsKey($license.GUID)) { + $GuidToName[$license.GUID] = $license.Product_Display_Name + } + } + $ExcludeSkuList = Get-Content -Path $ExcludeSkuListPath -Encoding utf8 | ConvertFrom-Json + $updatedCount = 0 + foreach ($entry in $ExcludeSkuList) { + if ($GuidToName.ContainsKey($entry.GUID) -and $entry.Product_Display_Name -cne $GuidToName[$entry.GUID]) { + $entry.Product_Display_Name = $GuidToName[$entry.GUID] + $updatedCount++ + } + } + $ExcludeSkuList | ConvertTo-Json -Depth 100 | Set-Content -Path $ExcludeSkuListPath -Encoding utf8 + Write-Host "Updated $updatedCount product names in ExcludeSkuList.JSON." -ForegroundColor Green +} + # Clean up the temporary license SKU CSV file Remove-Item -Path $TempLicenseDataFile -Force diff --git a/Tools/Update-StandardsJson.ps1 b/Tools/Update-StandardsJson.ps1 new file mode 100644 index 000000000000..8512ebb35268 --- /dev/null +++ b/Tools/Update-StandardsJson.ps1 @@ -0,0 +1,51 @@ +<# +.SYNOPSIS +Copies standards.json from the CIPP frontend to the backend Config folder. + +.DESCRIPTION +This script copies the standards.json file from ../CIPP/src/data/standards.json (frontend) to Config/standards.json (backend). +Run this script from the Tools folder in the CIPP-API project. + +.EXAMPLE +Copy-StandardsJson.ps1 + +.NOTES +Date: 2025-07-16 +Version: 1.2 - Only overwrites if SHA values differ + +Needs to be run from the "Tools" folder in the CIPP-API project. +#> + +# Ensure script runs from Tools folder +Set-Location $PSScriptRoot + +# Go to project root +Set-Location .. +Set-Location .. + +# Source and destination paths +$source = 'CIPP\src\data\standards.json' +$destination = 'CIPP-API\Config\standards.json' + +function Get-FileSHA256 { + param ( + $Path + ) + if (Test-Path $Path) { + return (Get-FileHash -Path $Path -Algorithm SHA256).Hash + } + return $null +} + +if (Test-Path $source) { + $srcSHA = Get-FileSHA256 $source + $dstSHA = Get-FileSHA256 $destination + if ($srcSHA -ne $dstSHA) { + Copy-Item -Path $source -Destination $destination -Force + Write-Host "Copied $source to $destination." -ForegroundColor Green + } else { + Write-Host 'No changes detected (SHA256 match). Destination not overwritten.' -ForegroundColor Yellow + } +} else { + Write-Host "Source file not found: $source" -ForegroundColor Red +} diff --git a/Tools/cipp-openapispec.json b/Tools/cipp-openapispec.json new file mode 100644 index 000000000000..0efd9e314077 --- /dev/null +++ b/Tools/cipp-openapispec.json @@ -0,0 +1,1756 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "CIPP API", + "description": "API for Cloud Identity and Policy Platform (CIPP)", + "version": "1.0.0" + }, + "servers": [ + { + "url": "/api", + "description": "CIPP API Server" + } + ], + "components": { + "schemas": { + "StandardResponse": { + "type": "object", + "properties": { + "Results": { + "type": "object", + "description": "The results of the operation" + } + } + } + } + }, + "paths": { + "/ListScheduledItems": { + "get": { + "summary": "List Scheduled Items", + "description": "Retrieves a list of scheduled items", + "tags": [ + "Scheduler" + ], + "parameters": [ + { + "name": "ShowHidden", + "in": "query", + "description": "Whether to show hidden system jobs", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "name": "Name", + "in": "query", + "description": "Filter by job name", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Scheduled items retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "ExecutedTime": { + "type": "string", + "description": "When the job was last executed" + }, + "TaskState": { + "type": "string", + "description": "Current state of the task", + "enum": ["Running", "Planned", "Failed", "Completed"] + }, + "Tenant": { + "type": "string", + "description": "The tenant the job is for" + }, + "Name": { + "type": "string", + "description": "Name of the scheduled job" + }, + "ScheduledTime": { + "type": "integer", + "description": "When the job is scheduled to run (Unix timestamp)" + }, + "Command": { + "type": "string", + "description": "The command to execute" + }, + "Parameters": { + "type": "object", + "description": "Parameters for the command" + }, + "PostExecution": { + "type": "string", + "description": "Actions to take after execution" + }, + "Recurrence": { + "type": "string", + "description": "How often the job recurs" + }, + "Results": { + "type": "string", + "description": "Results of the job execution" + }, + "RowKey": { + "type": "string", + "description": "Unique identifier for the job" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/RemoveScheduledItem": { + "post": { + "summary": "Remove Scheduled Item", + "description": "Removes a scheduled item", + "tags": [ + "Scheduler" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "type": "string", + "description": "The RowKey of the scheduled item to remove" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Scheduled item removed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/AddScheduledItem": { + "post": { + "summary": "Add Scheduled Item", + "description": "Adds a new scheduled item", + "tags": [ + "Scheduler" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "tenantFilter", + "Name", + "command", + "ScheduledTime", + "Recurrence" + ], + "properties": { + "tenantFilter": { + "type": "object", + "description": "The tenant to run the job for", + "properties": { + "value": { + "type": "string", + "description": "Tenant ID or domain" + }, + "label": { + "type": "string", + "description": "Tenant display name" + } + } + }, + "Name": { + "type": "string", + "description": "Name of the scheduled job" + }, + "command": { + "type": "object", + "description": "The command to execute", + "properties": { + "label": { + "type": "string", + "description": "Command display name" + }, + "value": { + "type": "string", + "description": "Command value" + } + } + }, + "ScheduledTime": { + "type": "integer", + "description": "When the job is scheduled to run (Unix timestamp)" + }, + "Recurrence": { + "type": "string", + "description": "How often the job recurs", + "enum": ["0", "1d", "7d", "30d", "365d"] + }, + "parameters": { + "type": "object", + "description": "Parameters for the command" + }, + "RawJsonParameters": { + "type": "string", + "description": "JSON string of parameters for advanced configuration" + }, + "postExecution": { + "type": "array", + "description": "Actions to take after execution", + "items": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "value": { + "type": "string", + "enum": ["Webhook", "Email", "PSA"] + } + } + } + }, + "RowKey": { + "type": "string", + "description": "Unique identifier for the job (for editing existing jobs)" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Scheduled item added successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListFunctionParameters": { + "get": { + "summary": "List Function Parameters", + "description": "Retrieves a list of available functions and their parameters", + "tags": [ + "Scheduler" + ], + "parameters": [ + { + "name": "Module", + "in": "query", + "description": "The module to list functions for", + "required": true, + "schema": { + "type": "string", + "enum": ["CIPPCore"] + } + } + ], + "responses": { + "200": { + "description": "Function parameters retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Function": { + "type": "string", + "description": "Function name" + }, + "Synopsis": { + "type": "string", + "description": "Function description" + }, + "Parameters": { + "type": "array", + "description": "Function parameters", + "items": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Parameter name" + }, + "Type": { + "type": "string", + "description": "Parameter type" + }, + "Required": { + "type": "boolean", + "description": "Whether the parameter is required" + } + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListTenants": { + "get": { + "summary": "List Tenants", + "description": "Retrieves a list of tenants", + "tags": [ + "Tenants" + ], + "parameters": [ + { + "name": "AllTenantSelector", + "in": "query", + "description": "Whether to include the 'All Tenants' option", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Tenants retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "customerId": { + "type": "string", + "description": "Tenant ID" + }, + "defaultDomainName": { + "type": "string", + "description": "Default domain name" + }, + "displayName": { + "type": "string", + "description": "Display name" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + }, + "post": { + "summary": "Clear Tenant Cache", + "description": "Clears the tenant cache", + "tags": [ + "Tenants" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "ClearCache" + ], + "properties": { + "ClearCache": { + "type": "boolean", + "description": "Whether to clear the cache" + }, + "TenantsOnly": { + "type": "boolean", + "description": "Whether to only clear the tenant cache" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Cache cleared successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecPasswordConfig": { + "get": { + "summary": "Get Password Configuration", + "description": "Retrieves the current password configuration", + "tags": [ + "Settings" + ], + "parameters": [ + { + "name": "list", + "in": "query", + "description": "Whether to list the password configuration", + "required": true, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Password configuration retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "object", + "properties": { + "passwordType": { + "type": "string", + "description": "The type of password generation", + "enum": ["Classic", "Correct-Battery-Horse"] + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + }, + "post": { + "summary": "Update Password Configuration", + "description": "Updates the password configuration", + "tags": [ + "Settings" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "passwordType" + ], + "properties": { + "passwordType": { + "type": "string", + "description": "The type of password generation", + "enum": ["Classic", "Correct-Battery-Horse"] + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Password configuration updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecListBackup": { + "get": { + "summary": "List Backups", + "description": "Retrieves a list of backups", + "tags": [ + "Backup" + ], + "parameters": [ + { + "name": "NameOnly", + "in": "query", + "description": "Whether to only return backup names", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "name": "BackupName", + "in": "query", + "description": "The name of a specific backup to retrieve", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Backups retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "BackupName": { + "type": "string", + "description": "Name of the backup" + }, + "Timestamp": { + "type": "string", + "description": "When the backup was created" + }, + "Backup": { + "type": "string", + "description": "The backup data (JSON string)" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecRunBackup": { + "post": { + "summary": "Run Backup", + "description": "Creates a new backup", + "tags": [ + "Backup" + ], + "responses": { + "200": { + "description": "Backup created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecSetCIPPAutoBackup": { + "post": { + "summary": "Set Automatic Backup", + "description": "Enables or disables automatic backups", + "tags": [ + "Backup" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "Enabled" + ], + "properties": { + "Enabled": { + "type": "boolean", + "description": "Whether to enable automatic backups" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Automatic backup setting updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecRestoreBackup": { + "post": { + "summary": "Restore Backup", + "description": "Restores a backup", + "tags": [ + "Backup" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "type": "object", + "required": [ + "BackupName" + ], + "properties": { + "BackupName": { + "type": "string", + "description": "The name of the backup to restore" + } + } + }, + { + "type": "object", + "description": "The backup data to restore" + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "Backup restored successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/Listlogs": { + "get": { + "summary": "List Logs", + "description": "Retrieves a list of logs", + "tags": [ + "Logs" + ], + "parameters": [ + { + "name": "DateFilter", + "in": "query", + "description": "Filter logs by date (YYYYMMDD format)", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "Filter", + "in": "query", + "description": "Whether to apply filtering", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Logs retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "DateTime": { + "type": "string", + "description": "When the log entry was created" + }, + "Tenant": { + "type": "string", + "description": "The tenant the log entry is for" + }, + "TenantID": { + "type": "string", + "description": "The tenant ID" + }, + "User": { + "type": "string", + "description": "The user who performed the action" + }, + "Message": { + "type": "string", + "description": "The log message" + }, + "API": { + "type": "string", + "description": "The API that was called" + }, + "Severity": { + "type": "string", + "description": "The severity of the log entry" + }, + "AppId": { + "type": "string", + "description": "The application ID" + }, + "IP": { + "type": "string", + "description": "The IP address of the user" + }, + "LogData": { + "type": "string", + "description": "Additional log data" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListExtensionsConfig": { + "get": { + "summary": "List Extensions Configuration", + "description": "Retrieves the configuration for extensions", + "tags": [ + "Integrations" + ], + "responses": { + "200": { + "description": "Extensions configuration retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "Enabled": { + "type": "boolean", + "description": "Whether the extension is enabled" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecExtensionsConfig": { + "post": { + "summary": "Update Extensions Configuration", + "description": "Updates the configuration for extensions", + "tags": [ + "Integrations" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "Enabled": { + "type": "boolean", + "description": "Whether the extension is enabled" + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Extensions configuration updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecExtensionTest": { + "get": { + "summary": "Test Extension", + "description": "Tests an extension", + "tags": [ + "Integrations" + ], + "parameters": [ + { + "name": "extensionName", + "in": "query", + "description": "The name of the extension to test", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Extension test completed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecExtensionSync": { + "get": { + "summary": "Sync Extension", + "description": "Syncs an extension", + "tags": [ + "Integrations" + ], + "parameters": [ + { + "name": "Extension", + "in": "query", + "description": "The name of the extension to sync", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Extension sync completed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecExtensionMapping": { + "get": { + "summary": "Get Extension Mapping", + "description": "Retrieves the mapping for an extension", + "tags": [ + "Integrations" + ], + "parameters": [ + { + "name": "List", + "in": "query", + "description": "The name of the extension to get mapping for", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Extension mapping retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Mappings": { + "type": "array", + "description": "The mappings for the extension", + "items": { + "type": "object", + "properties": { + "TenantId": { + "type": "string", + "description": "The tenant ID" + }, + "Tenant": { + "type": "string", + "description": "The tenant name" + }, + "IntegrationName": { + "type": "string", + "description": "The integration name" + }, + "IntegrationId": { + "type": "string", + "description": "The integration ID" + }, + "TenantDomain": { + "type": "string", + "description": "The tenant domain" + } + } + } + }, + "Companies": { + "type": "array", + "description": "The companies for the extension", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The company name" + }, + "value": { + "type": "string", + "description": "The company ID" + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + }, + "post": { + "summary": "Update Extension Mapping", + "description": "Updates the mapping for an extension", + "tags": [ + "Integrations" + ], + "parameters": [ + { + "name": "AddMapping", + "in": "query", + "description": "The name of the extension to update mapping for", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "AutoMapping", + "in": "query", + "description": "The name of the extension to auto-map", + "required": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "TenantId": { + "type": "string", + "description": "The tenant ID" + }, + "Tenant": { + "type": "string", + "description": "The tenant name" + }, + "IntegrationName": { + "type": "string", + "description": "The integration name" + }, + "IntegrationId": { + "type": "string", + "description": "The integration ID" + }, + "TenantDomain": { + "type": "string", + "description": "The tenant domain" + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Extension mapping updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListExtensionSync": { + "get": { + "summary": "List Extension Sync Jobs", + "description": "Retrieves a list of extension sync jobs", + "tags": [ + "Integrations" + ], + "responses": { + "200": { + "description": "Extension sync jobs retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Tenant": { + "type": "string", + "description": "The tenant the job is for" + }, + "SyncType": { + "type": "string", + "description": "The type of sync" + }, + "Task": { + "type": "string", + "description": "The task being performed" + }, + "ScheduledTime": { + "type": "string", + "description": "When the job is scheduled to run" + }, + "ExecutedTime": { + "type": "string", + "description": "When the job was last executed" + }, + "LastRun": { + "type": "string", + "description": "When the job was last run" + }, + "RepeatsEvery": { + "type": "string", + "description": "How often the job repeats" + }, + "Results": { + "type": "string", + "description": "Results of the job execution" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListExoRequest": { + "post": { + "summary": "List Exchange Cmdlets", + "description": "Retrieves a list of Exchange cmdlets", + "tags": [ + "Exchange" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "type": "object", + "required": [ + "availableCmdlets", + "tenantFilter" + ], + "properties": { + "availableCmdlets": { + "type": "boolean", + "description": "Whether to list available cmdlets" + }, + "tenantFilter": { + "type": "string", + "description": "The tenant to list cmdlets for" + }, + "compliance": { + "type": "boolean", + "description": "Whether to use compliance endpoints" + }, + "asApp": { + "type": "boolean", + "description": "Whether to execute as app" + } + } + }, + { + "type": "object", + "required": [ + "cmdlet", + "cmdParams", + "tenantFilter" + ], + "properties": { + "cmdlet": { + "type": "string", + "description": "The cmdlet to execute" + }, + "cmdParams": { + "type": "object", + "description": "The parameters for the cmdlet" + }, + "compliance": { + "type": "boolean", + "description": "Whether to use compliance endpoints" + }, + "tenantFilter": { + "type": "string", + "description": "The tenant to execute the cmdlet for" + } + } + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "Exchange cmdlets retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Cmdlet": { + "type": "string", + "description": "The cmdlet name" + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecAzBobbyTables": { + "post": { + "summary": "Execute Azure Table Operations", + "description": "Executes operations on Azure tables", + "tags": [ + "Azure Tables" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "FunctionName" + ], + "properties": { + "FunctionName": { + "type": "string", + "description": "The function to execute", + "enum": [ + "Get-AzDataTable", + "Get-AzDataTableEntity", + "Remove-AzDataTableEntity", + "New-AzDataTable", + "Remove-AzDataTable", + "Add-AzDataTableEntity" + ] + }, + "TableName": { + "type": "string", + "description": "The name of the table" + }, + "Parameters": { + "type": "object", + "description": "The parameters for the function" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Azure table operation executed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecCippFunction": { + "post": { + "summary": "Execute CIPP Function", + "description": "Executes a CIPP function", + "tags": [ + "CIPP Functions" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "FunctionName" + ], + "properties": { + "FunctionName": { + "type": "string", + "description": "The function to execute", + "enum": [ + "Get-CIPPTimerFunctions", + "!Get-CIPPTimerFunctions" + ] + }, + "Parameters": { + "type": "object", + "description": "The parameters for the function" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "CIPP function executed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecApiClient": { + "get": { + "summary": "Get API Client Information", + "description": "Retrieves information about API clients", + "tags": [ + "API Clients" + ], + "parameters": [ + { + "name": "Action", + "in": "query", + "description": "The action to perform", + "required": true, + "schema": { + "type": "string", + "enum": [ + "GetAzureConfiguration", + "List", + "ListAvailable" + ] + } + } + ], + "responses": { + "200": { + "description": "API client information retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "oneOf": [ + { + "type": "object", + "properties": { + "Enabled": { + "type": "boolean", + "description": "Whether Microsoft Authentication is enabled" + }, + "ApiUrl": { + "type": "string", + "description": "The API URL" + }, + "TenantID": { + "type": "string", + "description": "The tenant ID" + }, + "ClientIDs": { + "type": "array", + "description": "The client IDs", + "items": { + "type": "string" + } + } + } + }, + { + "type": "array", + "items": { + "type": "object", + "properties": { + "Enabled": { + "type": "boolean", + "description": "Whether the client is enabled" + }, + "AppName": { + "type": "string", + "description": "The application name" + }, + "ClientId": { + "type": "string", + "description": "The client ID" + }, + "Role": { + "type": "string", + "description": "The client role" + }, + "IPRange": { + "type": "array", + "description": "The allowed IP ranges", + "items": { + "type": "string" + } + } + } + } + } + ] + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + }, + "post": { + "summary": "Update API Client", + "description": "Updates an API client", + "tags": [ + "API Clients" + ], + "parameters": [ + { + "name": "action", + "in": "query", + "description": "The action to perform", + "required": false, + "schema": { + "type": "string", + "enum": [ + "SaveToAzure" + ] + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "Action" + ], + "properties": { + "Action": { + "type": "string", + "description": "The action to perform", + "enum": [ + "AddUpdate", + "ResetSecret", + "Delete" + ] + }, + "ClientId": { + "type": "string", + "description": "The client ID" + }, + "AppName": { + "type": "string", + "description": "The application name" + }, + "Role": { + "type": "string", + "description": "The client role" + }, + "IPRange": { + "type": "array", + "description": "The allowed IP ranges", + "items": { + "type": "string" + } + }, + "Enabled": { + "type": "boolean", + "description": "Whether the client is enabled" + }, + "RemoveAppReg": { + "type": "boolean", + "description": "Whether to remove the app registration" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "API client updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListCustomRole": { + "get": { + "summary": "List Custom Roles", + "description": "Retrieves a list of custom roles", + "tags": [ + "API Clients" + ], + "responses": { + "200": { + "description": "Custom roles retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "RowKey": { + "type": "string", + "description": "The role name" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + } + } +} \ No newline at end of file diff --git a/Tools/endpoint-openapispec.json b/Tools/endpoint-openapispec.json new file mode 100644 index 000000000000..7fb45816d2ce --- /dev/null +++ b/Tools/endpoint-openapispec.json @@ -0,0 +1,2263 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "CIPP Endpoint API", + "description": "API endpoints for the Endpoint section of Cloud Identity and Policy Platform (CIPP)", + "version": "1.0.0" + }, + "servers": [ + { + "url": "/api", + "description": "CIPP API Server" + } + ], + "components": { + "schemas": { + "StandardResponse": { + "type": "object", + "properties": { + "Results": { + "type": "object", + "description": "The results of the operation" + } + } + } + } + }, + "paths": { + "/ListApps": { + "get": { + "summary": "List Applications", + "description": "Retrieves a list of applications", + "tags": [ + "Applications" + ], + "parameters": [ + { + "name": "tenantFilter", + "in": "query", + "description": "The tenant to filter by", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Applications retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The application ID" + }, + "displayName": { + "type": "string", + "description": "The display name of the application" + }, + "publishingState": { + "type": "string", + "description": "The publishing state of the application" + }, + "installCommandLine": { + "type": "string", + "description": "The install command line" + }, + "uninstallCommandLine": { + "type": "string", + "description": "The uninstall command line" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecAssignApp": { + "post": { + "summary": "Assign Application", + "description": "Assigns an application to users or devices", + "tags": [ + "Applications" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "AssignTo", + "ID" + ], + "properties": { + "AssignTo": { + "type": "string", + "description": "Who to assign the application to", + "enum": ["AllUsers", "AllDevices", "Both", "customGroup"] + }, + "ID": { + "type": "string", + "description": "The application ID" + }, + "customGroup": { + "type": "string", + "description": "Custom group names (if AssignTo is customGroup)" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Application assigned successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/RemoveApp": { + "post": { + "summary": "Remove Application", + "description": "Removes an application", + "tags": [ + "Applications" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "ID" + ], + "properties": { + "ID": { + "type": "string", + "description": "The application ID" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Application removed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListApplicationQueue": { + "get": { + "summary": "List Application Queue", + "description": "Retrieves a list of applications in the queue", + "tags": [ + "Applications" + ], + "parameters": [ + { + "name": "tenantFilter", + "in": "query", + "description": "The tenant to filter by", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Application queue retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The queue item ID" + }, + "applicationName": { + "type": "string", + "description": "The application name" + }, + "status": { + "type": "string", + "description": "The status of the queue item" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/RemoveQueuedApp": { + "post": { + "summary": "Remove Queued Application", + "description": "Removes an application from the queue", + "tags": [ + "Applications" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "ID" + ], + "properties": { + "ID": { + "type": "string", + "description": "The queue item ID" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Queued application removed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecAppUpload": { + "post": { + "summary": "Execute Application Upload", + "description": "Executes the application upload process", + "tags": [ + "Applications" + ], + "responses": { + "200": { + "description": "Application upload executed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/AddMSPApp": { + "post": { + "summary": "Add MSP Application", + "description": "Adds an MSP vendor application", + "tags": [ + "Applications" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "selectedTenants", + "rmmname", + "displayName" + ], + "properties": { + "selectedTenants": { + "type": "array", + "description": "The tenants to add the application to", + "items": { + "type": "object", + "properties": { + "defaultDomainName": { + "type": "string", + "description": "The tenant domain name" + }, + "customerId": { + "type": "string", + "description": "The tenant ID" + } + } + } + }, + "rmmname": { + "type": "object", + "description": "The RMM tool", + "properties": { + "value": { + "type": "string", + "enum": ["datto", "syncro", "immy", "huntress", "automate", "cwcommand"] + } + } + }, + "displayName": { + "type": "string", + "description": "The display name of the application" + }, + "params": { + "type": "object", + "description": "Parameters specific to the RMM tool" + }, + "AssignTo": { + "type": "string", + "description": "Who to assign the application to", + "enum": ["On", "allLicensedUsers", "AllDevices", "AllDevicesAndUsers", "customGroup"] + }, + "customGroup": { + "type": "string", + "description": "Custom group names (if AssignTo is customGroup)" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "MSP application added successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/AddStoreApp": { + "post": { + "summary": "Add Store Application", + "description": "Adds a store application", + "tags": [ + "Applications" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "selectedTenants", + "packagename", + "applicationName" + ], + "properties": { + "selectedTenants": { + "type": "array", + "description": "The tenants to add the application to", + "items": { + "type": "object", + "properties": { + "defaultDomainName": { + "type": "string", + "description": "The tenant domain name" + }, + "customerId": { + "type": "string", + "description": "The tenant ID" + } + } + } + }, + "packagename": { + "type": "string", + "description": "The package identifier" + }, + "applicationName": { + "type": "string", + "description": "The application name" + }, + "description": { + "type": "string", + "description": "The application description" + }, + "InstallationIntent": { + "type": "boolean", + "description": "Whether to mark for uninstallation" + }, + "AssignTo": { + "type": "string", + "description": "Who to assign the application to", + "enum": ["On", "allLicensedUsers", "AllDevices", "AllDevicesAndUsers", "customGroup"] + }, + "customGroup": { + "type": "string", + "description": "Custom group names (if AssignTo is customGroup)" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Store application added successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/AddwinGetApp": { + "post": { + "summary": "Add WinGet Application", + "description": "Adds a WinGet application", + "tags": [ + "Applications" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "selectedTenants", + "packagename", + "applicationName" + ], + "properties": { + "selectedTenants": { + "type": "array", + "description": "The tenants to add the application to", + "items": { + "type": "object", + "properties": { + "defaultDomainName": { + "type": "string", + "description": "The tenant domain name" + }, + "customerId": { + "type": "string", + "description": "The tenant ID" + } + } + } + }, + "packagename": { + "type": "string", + "description": "The package identifier" + }, + "applicationName": { + "type": "string", + "description": "The application name" + }, + "description": { + "type": "string", + "description": "The application description" + }, + "InstallationIntent": { + "type": "boolean", + "description": "Whether to mark for uninstallation" + }, + "AssignTo": { + "type": "string", + "description": "Who to assign the application to", + "enum": ["On", "allLicensedUsers", "AllDevices", "AllDevicesAndUsers", "customGroup"] + }, + "customGroup": { + "type": "string", + "description": "Custom group names (if AssignTo is customGroup)" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "WinGet application added successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/AddChocoApp": { + "post": { + "summary": "Add Chocolatey Application", + "description": "Adds a Chocolatey application", + "tags": [ + "Applications" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "selectedTenants", + "packagename", + "applicationName" + ], + "properties": { + "selectedTenants": { + "type": "array", + "description": "The tenants to add the application to", + "items": { + "type": "object", + "properties": { + "defaultDomainName": { + "type": "string", + "description": "The tenant domain name" + }, + "customerId": { + "type": "string", + "description": "The tenant ID" + } + } + } + }, + "packagename": { + "type": "string", + "description": "The package name" + }, + "applicationName": { + "type": "string", + "description": "The application name" + }, + "description": { + "type": "string", + "description": "The application description" + }, + "customRepo": { + "type": "string", + "description": "Custom repository URL" + }, + "InstallAsSystem": { + "type": "boolean", + "description": "Whether to install as system" + }, + "DisableRestart": { + "type": "boolean", + "description": "Whether to disable restart" + }, + "InstallationIntent": { + "type": "boolean", + "description": "Whether to mark for uninstallation" + }, + "AssignTo": { + "type": "string", + "description": "Who to assign the application to", + "enum": ["On", "allLicensedUsers", "AllDevices", "AllDevicesAndUsers", "customGroup"] + }, + "customGroup": { + "type": "string", + "description": "Custom group names (if AssignTo is customGroup)" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Chocolatey application added successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/AddOfficeApp": { + "post": { + "summary": "Add Office Application", + "description": "Adds a Microsoft Office application", + "tags": [ + "Applications" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "selectedTenants", + "updateChannel", + "languages" + ], + "properties": { + "selectedTenants": { + "type": "array", + "description": "The tenants to add the application to", + "items": { + "type": "object", + "properties": { + "defaultDomainName": { + "type": "string", + "description": "The tenant domain name" + }, + "customerId": { + "type": "string", + "description": "The tenant ID" + } + } + } + }, + "excludedApps": { + "type": "array", + "description": "Apps to exclude from the installation", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "enum": ["access", "excel", "oneNote", "outlook", "powerPoint", "teams", "word", "lync", "bing"] + } + } + } + }, + "updateChannel": { + "type": "object", + "description": "The update channel", + "properties": { + "value": { + "type": "string", + "enum": ["current", "firstReleaseCurrent", "monthlyEnterprise", "deferred", "firstReleaseDeferred"] + } + } + }, + "languages": { + "type": "array", + "description": "Languages to install", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Language tag" + } + } + } + }, + "SharedComputerActivation": { + "type": "boolean", + "description": "Whether to use shared computer activation" + }, + "arch": { + "type": "boolean", + "description": "Whether to use 64-bit" + }, + "RemoveVersions": { + "type": "boolean", + "description": "Whether to remove other versions" + }, + "AcceptLicense": { + "type": "boolean", + "description": "Whether to accept the license" + }, + "AssignTo": { + "type": "string", + "description": "Who to assign the application to", + "enum": ["On", "allLicensedUsers", "AllDevices", "AllDevicesAndUsers"] + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Office application added successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListAPDevices": { + "get": { + "summary": "List Autopilot Devices", + "description": "Retrieves a list of Autopilot devices", + "tags": [ + "Autopilot" + ], + "parameters": [ + { + "name": "tenantFilter", + "in": "query", + "description": "The tenant to filter by", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Autopilot devices retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The device ID" + }, + "displayName": { + "type": "string", + "description": "The display name of the device" + }, + "serialNumber": { + "type": "string", + "description": "The serial number of the device" + }, + "model": { + "type": "string", + "description": "The model of the device" + }, + "manufacturer": { + "type": "string", + "description": "The manufacturer of the device" + }, + "groupTag": { + "type": "string", + "description": "The group tag of the device" + }, + "enrollmentState": { + "type": "string", + "description": "The enrollment state of the device" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecAssignAPDevice": { + "post": { + "summary": "Assign Autopilot Device", + "description": "Assigns an Autopilot device to a user", + "tags": [ + "Autopilot" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "device", + "serialNumber", + "user" + ], + "properties": { + "device": { + "type": "string", + "description": "The device ID" + }, + "serialNumber": { + "type": "string", + "description": "The serial number of the device" + }, + "user": { + "type": "string", + "description": "The user principal name" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Autopilot device assigned successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/RemoveAPDevice": { + "post": { + "summary": "Remove Autopilot Device", + "description": "Removes an Autopilot device", + "tags": [ + "Autopilot" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "ID" + ], + "properties": { + "ID": { + "type": "string", + "description": "The device ID" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Autopilot device removed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecSyncAPDevices": { + "post": { + "summary": "Sync Autopilot Devices", + "description": "Syncs Autopilot devices", + "tags": [ + "Autopilot" + ], + "responses": { + "200": { + "description": "Autopilot devices synced successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListAutopilotConfig": { + "get": { + "summary": "List Autopilot Configurations", + "description": "Retrieves a list of Autopilot configurations", + "tags": [ + "Autopilot" + ], + "parameters": [ + { + "name": "type", + "in": "query", + "description": "The type of configuration to retrieve", + "required": false, + "schema": { + "type": "string", + "enum": ["ESP", "ApProfile"] + } + }, + { + "name": "tenantFilter", + "in": "query", + "description": "The tenant to filter by", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Autopilot configurations retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The configuration ID" + }, + "displayName": { + "type": "string", + "description": "The display name of the configuration" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListDevices": { + "get": { + "summary": "List Devices", + "description": "Retrieves a list of devices", + "tags": [ + "Devices" + ], + "parameters": [ + { + "name": "tenantFilter", + "in": "query", + "description": "The tenant to filter by", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Devices retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The device ID" + }, + "displayName": { + "type": "string", + "description": "The display name of the device" + }, + "manufacturer": { + "type": "string", + "description": "The manufacturer of the device" + }, + "model": { + "type": "string", + "description": "The model of the device" + }, + "osVersion": { + "type": "string", + "description": "The OS version of the device" + }, + "lastSyncDateTime": { + "type": "string", + "description": "The last sync date and time" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecDeviceAction": { + "post": { + "summary": "Execute Device Action", + "description": "Executes an action on a device", + "tags": [ + "Devices" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "Action", + "DeviceID" + ], + "properties": { + "Action": { + "type": "string", + "description": "The action to perform", + "enum": ["Reboot", "Rename", "Autopilot", "Wipe", "RemoveFromAutopilot", "RemoveFromIntune", "RemoveFromDefender", "RemoveFromAzure", "RemoveFromEverywhere", "SyncDevice", "FreshStart", "QuickScan", "FullScan", "WindowsUpdateScan", "WindowsUpdateReboot", "WindowsUpdateDrivers", "WindowsUpdateFeatures", "WindowsUpdateOther", "WindowsUpdateAll"] + }, + "DeviceID": { + "type": "string", + "description": "The device ID" + }, + "NewDeviceName": { + "type": "string", + "description": "The new device name (for Rename action)" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Device action executed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecGetLocalAdminPassword": { + "post": { + "summary": "Get Local Admin Password", + "description": "Retrieves the local admin password for a device", + "tags": [ + "Devices" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "DeviceID" + ], + "properties": { + "DeviceID": { + "type": "string", + "description": "The device ID" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Local admin password retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecGetRecoveryKey": { + "post": { + "summary": "Get Recovery Key", + "description": "Retrieves the recovery key for a device", + "tags": [ + "Devices" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "DeviceID" + ], + "properties": { + "DeviceID": { + "type": "string", + "description": "The device ID" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Recovery key retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListIntunePolicy": { + "get": { + "summary": "List Intune Policies", + "description": "Retrieves a list of Intune policies", + "tags": [ + "Intune" + ], + "parameters": [ + { + "name": "type", + "in": "query", + "description": "The type of policy to retrieve", + "required": false, + "schema": { + "type": "string", + "enum": ["ESP"] + } + }, + { + "name": "tenantFilter", + "in": "query", + "description": "The tenant to filter by", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Intune policies retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The policy ID" + }, + "displayName": { + "type": "string", + "description": "The display name of the policy" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/AddPolicy": { + "post": { + "summary": "Add Policy", + "description": "Adds a policy", + "tags": [ + "Intune" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "selectedTenants": { + "type": "array", + "description": "The tenants to add the policy to", + "items": { + "type": "object", + "properties": { + "customerId": { + "type": "string", + "description": "The tenant ID" + } + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Policy added successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/AddIntuneTemplate": { + "post": { + "summary": "Add Intune Template", + "description": "Adds an Intune template", + "tags": [ + "Intune" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Type": { + "type": "string", + "description": "The type of template" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Intune template added successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecAssignPolicy": { + "post": { + "summary": "Assign Policy", + "description": "Assigns a policy", + "tags": [ + "Intune" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "AssignTo", + "ID" + ], + "properties": { + "AssignTo": { + "type": "string", + "description": "Who to assign the policy to", + "enum": ["AllUsers", "AllDevices", "Both"] + }, + "ID": { + "type": "string", + "description": "The policy ID" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Policy assigned successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/RemovePolicy": { + "post": { + "summary": "Remove Policy", + "description": "Removes a policy", + "tags": [ + "Intune" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "ID" + ], + "properties": { + "ID": { + "type": "string", + "description": "The policy ID" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Policy removed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListIntuneTemplates": { + "get": { + "summary": "List Intune Templates", + "description": "Retrieves a list of Intune templates", + "tags": [ + "Intune" + ], + "parameters": [ + { + "name": "View", + "in": "query", + "description": "Whether to view the templates", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "name": "tenantFilter", + "in": "query", + "description": "The tenant to filter by", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Intune templates retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "GUID": { + "type": "string", + "description": "The template ID" + }, + "displayName": { + "type": "string", + "description": "The display name of the template" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecEditTemplate": { + "post": { + "summary": "Edit Template", + "description": "Edits a template", + "tags": [ + "Intune" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "GUID": { + "type": "string", + "description": "The template ID" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Template edited successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecCommunityRepo": { + "post": { + "summary": "Execute Community Repository", + "description": "Executes a community repository", + "tags": [ + "Intune" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "RepoURL": { + "type": "string", + "description": "The repository URL" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Community repository executed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/RemoveIntuneTemplate": { + "post": { + "summary": "Remove Intune Template", + "description": "Removes an Intune template", + "tags": [ + "Intune" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "ID" + ], + "properties": { + "ID": { + "type": "string", + "description": "The template ID" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Intune template removed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListIntuneScript": { + "get": { + "summary": "List Intune Scripts", + "description": "Retrieves a list of Intune scripts", + "tags": [ + "Intune" + ], + "parameters": [ + { + "name": "tenantFilter", + "in": "query", + "description": "The tenant to filter by", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Intune scripts retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The script ID" + }, + "displayName": { + "type": "string", + "description": "The display name of the script" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/RemoveIntuneScript": { + "post": { + "summary": "Remove Intune Script", + "description": "Removes an Intune script", + "tags": [ + "Intune" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "ID" + ], + "properties": { + "ID": { + "type": "string", + "description": "The script ID" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Intune script removed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListGraphRequest": { + "get": { + "summary": "List Graph Request", + "description": "Retrieves data from a Graph API request", + "tags": [ + "Graph" + ], + "parameters": [ + { + "name": "tenantFilter", + "in": "query", + "description": "The tenant to filter by", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "endpoint", + "in": "query", + "description": "The Graph API endpoint", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Graph request data retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/listUsers": { + "get": { + "summary": "List Users", + "description": "Retrieves a list of users", + "tags": [ + "Users" + ], + "parameters": [ + { + "name": "tenantFilter", + "in": "query", + "description": "The tenant to filter by", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Users retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "userPrincipalName": { + "type": "string", + "description": "The user principal name" + }, + "displayName": { + "type": "string", + "description": "The display name of the user" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListAppsRepository": { + "post": { + "summary": "List Apps Repository", + "description": "Searches the apps repository", + "tags": [ + "Applications" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "search" + ], + "properties": { + "search": { + "type": "string", + "description": "The search query" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Apps repository search results retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "packagename": { + "type": "string", + "description": "The package name" + }, + "applicationName": { + "type": "string", + "description": "The application name" + }, + "description": { + "type": "string", + "description": "The application description" + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListPotentialApps": { + "post": { + "summary": "List Potential Apps", + "description": "Searches for potential apps", + "tags": [ + "Applications" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "searchString", + "type" + ], + "properties": { + "searchString": { + "type": "string", + "description": "The search query" + }, + "type": { + "type": "string", + "description": "The type of apps to search for", + "enum": ["WinGet"] + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Potential apps search results retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "packagename": { + "type": "string", + "description": "The package name" + }, + "applicationName": { + "type": "string", + "description": "The application name" + }, + "description": { + "type": "string", + "description": "The application description" + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListExtensionsConfig": { + "get": { + "summary": "List Extensions Configuration", + "description": "Retrieves the configuration for extensions", + "tags": [ + "Extensions" + ], + "responses": { + "200": { + "description": "Extensions configuration retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "Enabled": { + "type": "boolean", + "description": "Whether the extension is enabled" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListCommunityRepos": { + "get": { + "summary": "List Community Repositories", + "description": "Retrieves a list of community repositories", + "tags": [ + "Intune" + ], + "parameters": [ + { + "name": "tenantFilter", + "in": "query", + "description": "The tenant to filter by", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Community repositories retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "RepoURL": { + "type": "string", + "description": "The repository URL" + }, + "RepoName": { + "type": "string", + "description": "The repository name" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + } + } +} \ No newline at end of file diff --git a/Tools/identity-openapispec.json b/Tools/identity-openapispec.json new file mode 100644 index 000000000000..72e8871a8913 --- /dev/null +++ b/Tools/identity-openapispec.json @@ -0,0 +1,1774 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "CIPP Identity API", + "description": "API endpoints for identity management in CIPP", + "version": "1.0.0" + }, + "paths": { + "/api/ListGraphRequest": { + "get": { + "summary": "List Graph Request", + "description": "Generic endpoint for making Graph API requests with different parameters", + "parameters": [ + { + "name": "Endpoint", + "in": "query", + "description": "The Graph API endpoint to call", + "required": true, + "schema": { + "type": "string" + }, + "examples": { + "users": { + "value": "users" + }, + "devices": { + "value": "devices" + }, + "identityProtection/riskDetections": { + "value": "identityProtection/riskDetections" + }, + "identityProtection/riskyUsers": { + "value": "identityProtection/riskyUsers" + } + } + }, + { + "name": "manualPagination", + "in": "query", + "description": "Whether to use manual pagination", + "schema": { + "type": "boolean" + } + }, + { + "name": "$select", + "in": "query", + "description": "Fields to select", + "schema": { + "type": "string" + } + }, + { + "name": "$count", + "in": "query", + "description": "Whether to include count", + "schema": { + "type": "boolean" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Field to order by", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Number of records to return", + "schema": { + "type": "integer" + } + }, + { + "name": "$format", + "in": "query", + "description": "Response format", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "object" + } + }, + "Metadata": { + "type": "object" + } + } + } + } + } + } + } + } + }, + "/api/ExecCreateTAP": { + "post": { + "summary": "Create Temporary Access Password", + "description": "Creates a temporary access password for a user", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "User Principal Name" + } + }, + "required": ["ID"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ExecResetMFA": { + "post": { + "summary": "Reset MFA", + "description": "Re-requires MFA registration for a user", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "User Principal Name" + } + }, + "required": ["ID"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ExecSendPush": { + "post": { + "summary": "Send MFA Push", + "description": "Sends an MFA push notification to a user", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "UserEmail": { + "type": "string", + "description": "User Principal Name" + } + }, + "required": ["UserEmail"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ExecPerUserMFA": { + "post": { + "summary": "Set Per-User MFA", + "description": "Sets per-user MFA for a user", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "description": "User Principal Name" + }, + "State": { + "type": "string", + "enum": ["Enforced", "Enabled", "Disabled"], + "description": "MFA State" + } + }, + "required": ["userId", "State"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ExecConvertMailbox": { + "post": { + "summary": "Convert Mailbox", + "description": "Converts a mailbox between shared and regular types", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "User Principal Name" + }, + "MailboxType": { + "type": "string", + "enum": ["!Shared", "!Regular"], + "description": "Mailbox Type" + } + }, + "required": ["ID", "MailboxType"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ExecEnableArchive": { + "post": { + "summary": "Enable Online Archive", + "description": "Enables online archive for a user", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "User Principal Name" + } + }, + "required": ["ID"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ExecSetOoO": { + "post": { + "summary": "Set Out of Office", + "description": "Sets or disables out of office for a user", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "description": "User Principal Name" + }, + "AutoReplyState": { + "type": "string", + "enum": ["Enabled", "Disabled"], + "description": "Auto Reply State" + }, + "input": { + "type": "string", + "description": "Out of Office Message" + } + }, + "required": ["userId", "AutoReplyState"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/EditGroup": { + "post": { + "summary": "Edit Group", + "description": "Edits a group, including adding/removing members and owners", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tenantId": { + "type": "string", + "description": "Tenant ID" + }, + "groupId": { + "type": "string", + "description": "Group ID" + }, + "AddMember": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Members to add" + }, + "AddOwner": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Owners to add" + }, + "RemoveMember": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Members to remove" + }, + "RemoveOwner": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Owners to remove" + }, + "addMember": { + "type": "string", + "description": "Single member to add" + }, + "groupId": { + "type": "string", + "description": "Group ID to add member to" + } + }, + "required": ["tenantId", "groupId"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ListGroups": { + "get": { + "summary": "List Groups", + "description": "Lists groups in the tenant", + "parameters": [ + { + "name": "groupID", + "in": "query", + "description": "Group ID to get details for", + "schema": { + "type": "string" + } + }, + { + "name": "tenantFilter", + "in": "query", + "description": "Tenant to filter by", + "schema": { + "type": "string" + } + }, + { + "name": "members", + "in": "query", + "description": "Whether to include members", + "schema": { + "type": "boolean" + } + }, + { + "name": "owners", + "in": "query", + "description": "Whether to include owners", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "groupInfo": { + "type": "object" + }, + "members": { + "type": "array", + "items": { + "type": "object" + } + }, + "owners": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/api/ExecEmailForward": { + "post": { + "summary": "Email Forwarding", + "description": "Manages email forwarding for a user", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "type": "string", + "description": "User Principal Name" + }, + "userid": { + "type": "string", + "description": "User Principal Name" + }, + "ForwardOption": { + "type": "string", + "description": "Forward Option" + } + }, + "required": ["username", "userid", "ForwardOption"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ExecOneDriveProvision": { + "post": { + "summary": "Provision OneDrive", + "description": "Pre-provisions OneDrive for a user", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "UserPrincipalName": { + "type": "string", + "description": "User Principal Name" + } + }, + "required": ["UserPrincipalName"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ExecOneDriveShortCut": { + "post": { + "summary": "Add OneDrive Shortcut", + "description": "Adds a shortcut to a SharePoint site in a user's OneDrive", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "type": "string", + "description": "User Principal Name" + }, + "userid": { + "type": "string", + "description": "User ID" + }, + "siteUrl": { + "type": "string", + "description": "SharePoint Site URL" + } + }, + "required": ["username", "userid", "siteUrl"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ListSites": { + "get": { + "summary": "List Sites", + "description": "Lists SharePoint sites", + "parameters": [ + { + "name": "type", + "in": "query", + "description": "Type of sites to list", + "schema": { + "type": "string" + } + }, + { + "name": "URLOnly", + "in": "query", + "description": "Whether to return only URLs", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "webUrl": { + "type": "string" + } + } + } + } + } + } + } + } + } + }, + "/api/ExecDisableUser": { + "post": { + "summary": "Disable/Enable User", + "description": "Blocks or unblocks sign-in for a user", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "User ID" + }, + "Enable": { + "type": "boolean", + "description": "Whether to enable the user" + } + }, + "required": ["ID"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ExecResetPass": { + "post": { + "summary": "Reset Password", + "description": "Resets a user's password", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "MustChange": { + "type": "boolean", + "description": "Whether the user must change password at next logon" + }, + "ID": { + "type": "string", + "description": "User Principal Name" + }, + "displayName": { + "type": "string", + "description": "User Display Name" + } + }, + "required": ["MustChange", "ID"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ExecClrImmId": { + "post": { + "summary": "Clear Immutable ID", + "description": "Clears the immutable ID for a user", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "User ID" + } + }, + "required": ["ID"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ExecRevokeSessions": { + "post": { + "summary": "Revoke Sessions", + "description": "Revokes all sessions for a user", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "User ID" + }, + "Username": { + "type": "string", + "description": "User Principal Name" + } + }, + "required": ["ID", "Username"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/RemoveUser": { + "post": { + "summary": "Remove User", + "description": "Deletes a user", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "User ID" + } + }, + "required": ["ID"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/AddUser": { + "post": { + "summary": "Add User", + "description": "Creates a new user", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tenantFilter": { + "type": "string", + "description": "Tenant ID" + }, + "givenName": { + "type": "string", + "description": "First Name" + }, + "surname": { + "type": "string", + "description": "Last Name" + }, + "mailNickname": { + "type": "string", + "description": "Mail Nickname" + }, + "primDomain": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "description": "Primary Domain" + }, + "usageLocation": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "description": "Usage Location" + } + }, + "required": ["tenantFilter", "givenName", "surname", "mailNickname", "primDomain"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ListMFAUsers": { + "get": { + "summary": "List MFA Users", + "description": "Lists users with MFA information", + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "UPN": { + "type": "string" + }, + "AccountEnabled": { + "type": "string" + }, + "isLicensed": { + "type": "string" + }, + "MFARegistration": { + "type": "string" + }, + "PerUser": { + "type": "string" + }, + "CoveredBySD": { + "type": "string" + }, + "CoveredByCA": { + "type": "string" + }, + "MFAMethods": { + "type": "array", + "items": { + "type": "string" + } + }, + "CAPolicies": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + } + } + } + }, + "/api/ListSignIns": { + "get": { + "summary": "List Sign Ins", + "description": "Lists sign-in events", + "parameters": [ + { + "name": "Days", + "in": "query", + "description": "Number of days to look back", + "schema": { + "type": "integer" + } + }, + { + "name": "filter", + "in": "query", + "description": "Custom filter", + "schema": { + "type": "string" + } + }, + { + "name": "failedLogonsOnly", + "in": "query", + "description": "Whether to show only failed logons", + "schema": { + "type": "boolean" + } + }, + { + "name": "FailureThreshold", + "in": "query", + "description": "Failure threshold", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "createdDateTime": { + "type": "string" + }, + "userPrincipalName": { + "type": "string" + }, + "clientAppUsed": { + "type": "string" + }, + "authenticationRequirement": { + "type": "string" + }, + "errorCode": { + "type": "string" + }, + "additionalDetails": { + "type": "string" + }, + "ipAddress": { + "type": "string" + }, + "locationcipp": { + "type": "string" + } + } + } + } + } + } + } + } + } + }, + "/api/ListInactiveAccounts": { + "get": { + "summary": "List Inactive Accounts", + "description": "Lists inactive user accounts (6 months)", + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "tenantDisplayName": { + "type": "string" + }, + "userPrincipalName": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "lastSignInDateTime": { + "type": "string" + }, + "lastNonInteractiveSignInDateTime": { + "type": "string" + }, + "numberOfAssignedLicenses": { + "type": "integer" + }, + "lastRefreshedDateTime": { + "type": "string" + } + } + } + } + } + } + } + } + } + }, + "/api/ListAzureADConnectStatus": { + "get": { + "summary": "List Azure AD Connect Status", + "description": "Lists Azure AD Connect status", + "parameters": [ + { + "name": "DataToReturn", + "in": "query", + "description": "Type of data to return", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "displayName": { + "type": "string" + }, + "ObjectType": { + "type": "string" + }, + "createdDateTime": { + "type": "string" + }, + "onPremisesProvisioningErrors": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + } + }, + "/api/ExecGroupsHideFromGAL": { + "post": { + "summary": "Hide/Unhide Group from GAL", + "description": "Hides or unhides a group from the Global Address List", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "Group Email" + }, + "GroupType": { + "type": "string", + "description": "Group Type" + }, + "HidefromGAL": { + "type": "boolean", + "description": "Whether to hide from GAL" + } + }, + "required": ["ID", "GroupType", "HidefromGAL"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ExecGroupsDeliveryManagement": { + "post": { + "summary": "Manage Group Delivery Settings", + "description": "Manages delivery settings for a group", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "Group Email" + }, + "GroupType": { + "type": "string", + "description": "Group Type" + }, + "OnlyAllowInternal": { + "type": "boolean", + "description": "Whether to only allow internal messages" + } + }, + "required": ["ID", "GroupType", "OnlyAllowInternal"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ExecGroupsDelete": { + "post": { + "summary": "Delete Group", + "description": "Deletes a group", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "Group ID" + }, + "GroupType": { + "type": "string", + "description": "Group Type" + }, + "DisplayName": { + "type": "string", + "description": "Group Display Name" + } + }, + "required": ["ID", "GroupType", "DisplayName"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/AddGroup": { + "post": { + "summary": "Add Group", + "description": "Creates a new group", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tenantFilter": { + "type": "string", + "description": "Tenant ID" + }, + "groupName": { + "type": "string", + "description": "Group Name" + }, + "groupType": { + "type": "string", + "description": "Group Type" + } + }, + "required": ["tenantFilter", "groupName", "groupType"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ListRoles": { + "get": { + "summary": "List Roles", + "description": "Lists roles in the tenant", + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "DisplayName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Members": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + } + } + } + }, + "/api/ExecDismissRiskyUser": { + "post": { + "summary": "Dismiss Risky User", + "description": "Dismisses the risk for a user", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "description": "User ID" + }, + "userDisplayName": { + "type": "string", + "description": "User Display Name" + } + }, + "required": ["userId", "userDisplayName"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ExecJITAdmin": { + "post": { + "summary": "Execute JIT Admin", + "description": "Creates or updates a JIT admin", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tenantFilter": { + "type": "string", + "description": "Tenant ID" + }, + "userAction": { + "type": "string", + "enum": ["create", "select"], + "description": "User Action" + }, + "firstName": { + "type": "string", + "description": "First Name" + }, + "lastName": { + "type": "string", + "description": "Last Name" + }, + "userName": { + "type": "string", + "description": "Username" + }, + "domain": { + "type": "string", + "description": "Domain Name" + }, + "existingUser": { + "type": "string", + "description": "Existing User" + }, + "startDate": { + "type": "string", + "format": "date", + "description": "Start Date" + }, + "endDate": { + "type": "string", + "format": "date", + "description": "End Date" + }, + "adminRoles": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Admin Roles" + }, + "UseTAP": { + "type": "boolean", + "description": "Generate TAP" + }, + "expireAction": { + "type": "string", + "enum": ["DeleteUser", "DisableUser", "RemoveRoles"], + "description": "Expiration Action" + }, + "postExecution": { + "type": "array", + "items": { + "type": "string", + "enum": ["Webhook", "email", "PSA"] + }, + "description": "Notification Action" + } + }, + "required": ["tenantFilter", "userAction", "startDate", "endDate", "adminRoles"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + }, + "get": { + "summary": "List JIT Admins", + "description": "Lists JIT admins", + "parameters": [ + { + "name": "Action", + "in": "query", + "description": "Action to perform", + "schema": { + "type": "string", + "enum": ["List"] + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/api/ExecDeviceDelete": { + "post": { + "summary": "Manage Device", + "description": "Enables, disables, or deletes a device", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "Device ID" + }, + "action": { + "type": "string", + "enum": ["!Enable", "!Disable", "!Delete"], + "description": "Action to perform" + } + }, + "required": ["ID", "action"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ExecGetRecoveryKey": { + "post": { + "summary": "Get Recovery Key", + "description": "Retrieves BitLocker recovery keys for a device", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "GUID": { + "type": "string", + "description": "Device ID" + } + }, + "required": ["GUID"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ListDeletedItems": { + "get": { + "summary": "List Deleted Items", + "description": "Lists deleted items", + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "displayName": { + "type": "string" + }, + "TargetType": { + "type": "string" + }, + "userPrincipalName": { + "type": "string" + }, + "deletedDateTime": { + "type": "string" + }, + "onPremisesSyncEnabled": { + "type": "boolean" + } + } + } + } + } + } + } + } + } + }, + "/api/ExecRestoreDeleted": { + "post": { + "summary": "Restore Deleted Object", + "description": "Restores a deleted object", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "Object ID" + } + }, + "required": ["ID"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ExecOffboardUser": { + "post": { + "summary": "Offboard User", + "description": "Offboards a user", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tenantFilter": { + "type": "string", + "description": "Tenant ID" + }, + "user": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Users to offboard" + }, + "Scheduled": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + }, + "description": "Scheduled offboarding" + } + }, + "required": ["tenantFilter", "user"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ListExtensionsConfig": { + "get": { + "summary": "List Extensions Configuration", + "description": "Lists extensions configuration", + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "GitHub": { + "type": "object", + "properties": { + "Enabled": { + "type": "boolean" + } + } + } + } + } + } + } + } + } + } + }, + "/api/ExecCommunityRepo": { + "post": { + "summary": "Execute Community Repository Action", + "description": "Executes an action on a community repository", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Action": { + "type": "string", + "enum": ["UploadTemplate"], + "description": "Action to perform" + }, + "GUID": { + "type": "string", + "description": "Template GUID" + }, + "FullName": { + "type": "string", + "description": "Repository Full Name" + }, + "Message": { + "type": "string", + "description": "Commit Message" + } + }, + "required": ["Action", "GUID", "FullName", "Message"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ListCommunityRepos": { + "get": { + "summary": "List Community Repositories", + "description": "Lists community repositories", + "parameters": [ + { + "name": "WriteAccess", + "in": "query", + "description": "Whether to only show repositories with write access", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "FullName": { + "type": "string" + } + } + } + } + } + } + } + } + } + } + } + }, + "/api/RemoveGroupTemplate": { + "post": { + "summary": "Remove Group Template", + "description": "Removes a group template", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "Template GUID" + } + }, + "required": ["ID"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ListGroupTemplates": { + "get": { + "summary": "List Group Templates", + "description": "Lists group templates", + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Displayname": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "groupType": { + "type": "string" + }, + "GUID": { + "type": "string" + } + } + } + } + } + } + } + } + } + }, + "/api/AddGroupTemplate": { + "post": { + "summary": "Add Group Template", + "description": "Creates a new group template", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tenantFilter": { + "type": "string", + "description": "Tenant ID" + }, + "Displayname": { + "type": "string", + "description": "Template Display Name" + }, + "Description": { + "type": "string", + "description": "Template Description" + }, + "groupType": { + "type": "string", + "description": "Group Type" + } + }, + "required": ["Displayname", "Description", "groupType"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + } + } +} \ No newline at end of file diff --git a/Tools/security-openapispec.json b/Tools/security-openapispec.json new file mode 100644 index 000000000000..d7b388cc3a3e --- /dev/null +++ b/Tools/security-openapispec.json @@ -0,0 +1,891 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "CIPP Security API", + "description": "API endpoints for the Security section of Cloud Identity and Policy Platform (CIPP)", + "version": "1.0.0" + }, + "servers": [ + { + "url": "/api", + "description": "CIPP API Server" + } + ], + "components": { + "schemas": { + "StandardResponse": { + "type": "object", + "properties": { + "Results": { + "type": "object", + "description": "The results of the operation" + } + } + } + } + }, + "paths": { + "/ListDefenderState": { + "get": { + "summary": "List Defender State", + "description": "Retrieves the status of Microsoft Defender across devices", + "tags": [ + "Defender" + ], + "parameters": [ + { + "name": "tenantFilter", + "in": "query", + "description": "The tenant to filter by", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Defender state retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "deviceName": { + "type": "string", + "description": "The name of the device" + }, + "windowsProtectionState": { + "type": "object", + "properties": { + "malwareProtectionEnabled": { + "type": "boolean", + "description": "Whether malware protection is enabled" + }, + "realTimeProtectionEnabled": { + "type": "boolean", + "description": "Whether real-time protection is enabled" + }, + "networkInspectionSystemEnabled": { + "type": "boolean", + "description": "Whether network inspection is enabled" + }, + "deviceState": { + "type": "string", + "description": "The state of the device" + }, + "quickScanOverdue": { + "type": "boolean", + "description": "Whether a quick scan is overdue" + }, + "fullScanOverdue": { + "type": "boolean", + "description": "Whether a full scan is overdue" + }, + "signatureUpdateOverdue": { + "type": "boolean", + "description": "Whether a signature update is overdue" + }, + "rebootRequired": { + "type": "boolean", + "description": "Whether a reboot is required" + }, + "lastReportedDateTime": { + "type": "string", + "format": "date-time", + "description": "The date and time of the last report" + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListDefenderTVM": { + "get": { + "summary": "List Defender Threat & Vulnerability Management", + "description": "Retrieves software vulnerabilities detected by Microsoft Defender", + "tags": [ + "Defender" + ], + "parameters": [ + { + "name": "tenantFilter", + "in": "query", + "description": "The tenant to filter by", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Defender TVM data retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "affectedDevicesCount": { + "type": "integer", + "description": "The number of affected devices" + }, + "affectedDevices": { + "type": "array", + "description": "The list of affected devices", + "items": { + "type": "string" + } + }, + "osPlatform": { + "type": "string", + "description": "The OS platform" + }, + "softwareVendor": { + "type": "string", + "description": "The software vendor" + }, + "softwareName": { + "type": "string", + "description": "The software name" + }, + "vulnerabilitySeverityLevel": { + "type": "string", + "description": "The severity level of the vulnerability" + }, + "cvssScore": { + "type": "number", + "description": "The CVSS score" + }, + "securityUpdateAvailable": { + "type": "boolean", + "description": "Whether a security update is available" + }, + "exploitabilityLevel": { + "type": "string", + "description": "The exploitability level" + }, + "cveId": { + "type": "string", + "description": "The CVE ID" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/AddDefenderDeployment": { + "post": { + "summary": "Add Defender Deployment", + "description": "Deploys Microsoft Defender policies to selected tenants", + "tags": [ + "Defender" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "selectedTenants" + ], + "properties": { + "selectedTenants": { + "type": "array", + "description": "The tenants to deploy to", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Tenant ID" + }, + "label": { + "type": "string", + "description": "Tenant display name" + } + } + } + }, + "Compliance": { + "type": "object", + "description": "Compliance settings", + "properties": { + "AllowMEMEnforceCompliance": { + "type": "boolean", + "description": "Allow Microsoft Defender for Endpoint to enforce Endpoint Security Configurations" + }, + "ConnectIosCompliance": { + "type": "boolean", + "description": "Connect iOS/iPadOS devices version 13.0 and above to Microsoft Defender for Endpoint" + }, + "ConnectAndroidCompliance": { + "type": "boolean", + "description": "Connect Android devices version 6.0.0 and above to Microsoft Defender for Endpoint" + }, + "ConnectWindows": { + "type": "boolean", + "description": "Connect Windows devices version 10.0.15063 and above to Microsoft Defender for Endpoint" + }, + "AppSync": { + "type": "boolean", + "description": "Enable App Sync for iOS/iPadOS devices" + }, + "BlockunsupportedOS": { + "type": "boolean", + "description": "Block unsupported OS versions" + }, + "ConnectAndroid": { + "type": "boolean", + "description": "Connect Android devices to Microsoft Defender for Endpoint" + }, + "ConnectIos": { + "type": "boolean", + "description": "Connect iOS/iPadOS devices to Microsoft Defender for Endpoint" + } + } + }, + "EDR": { + "type": "object", + "description": "EDR settings", + "properties": { + "Telemetry": { + "type": "boolean", + "description": "Expedite Telemetry Reporting Frequency" + }, + "Config": { + "type": "boolean", + "description": "Connect Defender Configuration Package automatically from Connector" + }, + "SampleSharing": { + "type": "boolean", + "description": "Enable Sample Sharing" + } + } + }, + "Policy": { + "type": "object", + "description": "Policy settings", + "properties": { + "ScanArchives": { + "type": "boolean", + "description": "Allow Archive Scanning" + }, + "AllowBehavior": { + "type": "boolean", + "description": "Allow behavior monitoring" + }, + "AllowCloudProtection": { + "type": "boolean", + "description": "Allow Cloud Protection" + }, + "AllowEmailScanning": { + "type": "boolean", + "description": "Allow e-mail scanning" + }, + "AllowFullScanNetwork": { + "type": "boolean", + "description": "Allow Full Scan on Network Drives" + }, + "AllowFullScanRemovable": { + "type": "boolean", + "description": "Allow Full Scan on Removable Drives" + }, + "AllowScriptScan": { + "type": "boolean", + "description": "Allow Script Scanning" + }, + "AllowIPS": { + "type": "boolean", + "description": "Allow Intrusion Prevention System" + }, + "LowCPU": { + "type": "boolean", + "description": "Enable Low CPU priority" + }, + "AllowDownloadable": { + "type": "boolean", + "description": "Allow scanning of downloaded files" + }, + "AllowRealTime": { + "type": "boolean", + "description": "Allow Realtime monitoring" + }, + "AllowNetwork": { + "type": "boolean", + "description": "Allow scanning of mapped drives" + }, + "AllowUI": { + "type": "boolean", + "description": "Allow users to access UI" + }, + "NetworkProtectionBlock": { + "type": "boolean", + "description": "Enable Network Protection in Block Mode" + }, + "NetworkProtectionAudit": { + "type": "boolean", + "description": "Enable Network Protection in Audit Mode" + }, + "CheckSigs": { + "type": "boolean", + "description": "Check Signatures before scan" + }, + "DisableCatchupFullScan": { + "type": "boolean", + "description": "Disable Catchup Full Scan" + }, + "DisableCatchupQuickScan": { + "type": "boolean", + "description": "Disable Catchup Quick Scan" + }, + "AssignTo": { + "type": "string", + "description": "Assignment target", + "enum": ["none", "allLicensedUsers", "AllDevices", "AllDevicesAndUsers"] + } + } + }, + "ASR": { + "type": "object", + "description": "Attack Surface Reduction settings", + "properties": { + "BlockAdobeChild": { + "type": "boolean", + "description": "Block Adobe Reader from creating child processes" + }, + "BlockWin32Macro": { + "type": "boolean", + "description": "Block Win32 API calls from Office macros" + }, + "BlockCredentialStealing": { + "type": "boolean", + "description": "Block credential stealing from the Windows local security authority subsystem" + }, + "BlockPSExec": { + "type": "boolean", + "description": "Block process creations originating from PSExec and WMI commands" + }, + "WMIPersistence": { + "type": "boolean", + "description": "Block persistence through WMI event subscription" + }, + "BlockOfficeExes": { + "type": "boolean", + "description": "Block Office applications from creating executable content" + }, + "BlockOfficeApps": { + "type": "boolean", + "description": "Block Office applications from injecting code into other processes" + }, + "BlockYoungExe": { + "type": "boolean", + "description": "Block executable files from running unless they meet a prevalence, age, or trusted list criterion" + }, + "blockJSVB": { + "type": "boolean", + "description": "Block JavaScript or VBScript from launching downloaded executable content" + }, + "blockOfficeComChild": { + "type": "boolean", + "description": "Block Office communication application from creating child processes" + }, + "blockOfficeChild": { + "type": "boolean", + "description": "Block all Office applications from creating child processes" + }, + "BlockUntrustedUSB": { + "type": "boolean", + "description": "Block untrusted and unsigned processes that run from USB" + }, + "EnableRansomwareVac": { + "type": "boolean", + "description": "Use advanced protection against ransomware" + }, + "BlockExesMail": { + "type": "boolean", + "description": "Block executable content from email client and webmail" + }, + "BlockUnsignedDrivers": { + "type": "boolean", + "description": "Block abuse of exploited vulnerable signed drivers" + }, + "AssignTo": { + "type": "string", + "description": "Assignment target", + "enum": ["none", "allLicensedUsers", "AllDevices", "AllDevicesAndUsers"] + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Defender deployment added successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecAlertsList": { + "get": { + "summary": "List Security Alerts", + "description": "Retrieves a list of security alerts", + "tags": [ + "Incidents" + ], + "parameters": [ + { + "name": "tenantFilter", + "in": "query", + "description": "The tenant to filter by", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Security alerts retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "object", + "properties": { + "MSResults": { + "type": "array", + "items": { + "type": "object", + "properties": { + "EventDateTime": { + "type": "string", + "format": "date-time", + "description": "The date and time of the event" + }, + "Status": { + "type": "string", + "description": "The status of the alert" + }, + "Title": { + "type": "string", + "description": "The title of the alert" + }, + "Severity": { + "type": "string", + "description": "The severity of the alert" + }, + "Category": { + "type": "string", + "description": "The category of the alert" + }, + "Tenant": { + "type": "string", + "description": "The tenant name" + }, + "InvolvedUsers": { + "type": "array", + "description": "The users involved in the alert", + "items": { + "type": "string" + } + }, + "Id": { + "type": "string", + "description": "The ID of the alert" + }, + "RawResult": { + "type": "object", + "description": "The raw result data", + "properties": { + "vendorInformation": { + "type": "object", + "properties": { + "vendor": { + "type": "string", + "description": "The vendor name" + }, + "provider": { + "type": "string", + "description": "The provider name" + } + } + } + } + } + } + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecSetSecurityAlert": { + "post": { + "summary": "Set Security Alert Status", + "description": "Updates the status of a security alert", + "tags": [ + "Incidents" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "GUID", + "Status", + "Vendor", + "Provider" + ], + "properties": { + "GUID": { + "type": "string", + "description": "The ID of the alert" + }, + "Status": { + "type": "string", + "description": "The new status of the alert", + "enum": ["!inProgress", "!resolved"] + }, + "Vendor": { + "type": "string", + "description": "The vendor name" + }, + "Provider": { + "type": "string", + "description": "The provider name" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Security alert status updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecIncidentsList": { + "get": { + "summary": "List Security Incidents", + "description": "Retrieves a list of security incidents", + "tags": [ + "Incidents" + ], + "parameters": [ + { + "name": "tenantFilter", + "in": "query", + "description": "The tenant to filter by", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Security incidents retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Created": { + "type": "string", + "format": "date-time", + "description": "The creation date and time" + }, + "Updated": { + "type": "string", + "format": "date-time", + "description": "The last update date and time" + }, + "Tenant": { + "type": "string", + "description": "The tenant name" + }, + "Id": { + "type": "string", + "description": "The ID of the incident" + }, + "RedirectId": { + "type": "string", + "description": "The redirect ID" + }, + "DisplayName": { + "type": "string", + "description": "The display name of the incident" + }, + "Status": { + "type": "string", + "description": "The status of the incident" + }, + "Severity": { + "type": "string", + "description": "The severity of the incident" + }, + "AssignedTo": { + "type": "string", + "description": "The user assigned to the incident" + }, + "Classification": { + "type": "string", + "description": "The classification of the incident" + }, + "Determination": { + "type": "string", + "description": "The determination of the incident" + }, + "IncidentUrl": { + "type": "string", + "description": "The URL to the incident" + }, + "Tags": { + "type": "array", + "description": "The tags associated with the incident", + "items": { + "type": "string" + } + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecSetSecurityIncident": { + "post": { + "summary": "Set Security Incident Status", + "description": "Updates the status of a security incident or assigns it to a user", + "tags": [ + "Incidents" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "GUID" + ], + "properties": { + "GUID": { + "type": "string", + "description": "The ID of the incident" + }, + "Status": { + "type": "string", + "description": "The new status of the incident", + "enum": ["!active", "!inProgress", "!resolved"] + }, + "Assigned": { + "type": "string", + "description": "The user assigned to the incident" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Security incident updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListGraphRequest": { + "get": { + "summary": "List Graph Request", + "description": "Retrieves data from a Graph API request", + "tags": [ + "Graph" + ], + "parameters": [ + { + "name": "tenantFilter", + "in": "query", + "description": "The tenant to filter by", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "endpoint", + "in": "query", + "description": "The Graph API endpoint", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Number of records to return", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Graph request data retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + } + } +} \ No newline at end of file diff --git a/Tools/teams-share-openapispec.json b/Tools/teams-share-openapispec.json new file mode 100644 index 000000000000..4c327deadebd --- /dev/null +++ b/Tools/teams-share-openapispec.json @@ -0,0 +1,749 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "CIPP Teams & Share API", + "description": "API endpoints for Teams, SharePoint, and OneDrive management in CIPP", + "version": "1.0.0" + }, + "paths": { + "/api/ListSites": { + "get": { + "summary": "List sites", + "description": "List SharePoint sites or OneDrive accounts based on the type parameter", + "parameters": [ + { + "name": "type", + "in": "query", + "required": true, + "schema": { + "type": "string", + "enum": ["SharePointSiteUsage", "OneDriveUsageAccount"] + }, + "description": "Type of sites to list" + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Site" + } + } + } + } + } + } + } + }, + "/api/ExecSetSharePointMember": { + "post": { + "summary": "Add or remove SharePoint site member", + "description": "Add or remove a user as a member of a SharePoint site", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": ["groupId", "add", "URL", "SharePointType", "user"], + "properties": { + "groupId": { + "type": "string", + "description": "Owner principal name" + }, + "add": { + "type": "boolean", + "description": "True to add, false to remove" + }, + "URL": { + "type": "string", + "description": "Web URL of the site" + }, + "SharePointType": { + "type": "string", + "description": "Root web template" + }, + "user": { + "type": "string", + "description": "User principal name to add or remove" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Operation successful" + } + } + } + }, + "/api/ExecSharePointPerms": { + "post": { + "summary": "Manage SharePoint or OneDrive permissions", + "description": "Add or remove a user as a site admin for SharePoint or add/remove permissions for OneDrive", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": ["UPN", "RemovePermission", "URL"], + "properties": { + "UPN": { + "type": "string", + "description": "Owner principal name" + }, + "RemovePermission": { + "type": "boolean", + "description": "True to remove permission, false to add" + }, + "URL": { + "type": "string", + "description": "Web URL of the site or OneDrive" + }, + "user": { + "type": "string", + "description": "User principal name to add or remove permissions for" + }, + "onedriveAccessUser": { + "type": "string", + "description": "User principal name to add or remove OneDrive access for" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Operation successful" + } + } + } + }, + "/api/AddSite": { + "post": { + "summary": "Add a new SharePoint site", + "description": "Create a new SharePoint site", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": ["siteName", "siteDescription", "SiteOwner", "TemplateName", "siteDesign"], + "properties": { + "tenantFilter": { + "type": "string", + "description": "Tenant ID" + }, + "siteName": { + "type": "string", + "description": "Name of the site" + }, + "siteDescription": { + "type": "string", + "description": "Description of the site" + }, + "SiteOwner": { + "type": "string", + "description": "User principal name of the site owner" + }, + "TemplateName": { + "type": "string", + "enum": ["team", "communication"], + "description": "Template name" + }, + "siteDesign": { + "type": "string", + "enum": ["blank", "Showcase", "Topic"], + "description": "Site design template" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Site created successfully" + } + } + } + }, + "/api/AddSiteBulk": { + "post": { + "summary": "Add multiple SharePoint sites", + "description": "Create multiple SharePoint sites in bulk", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": ["tenantFilter", "bulkSites"], + "properties": { + "tenantFilter": { + "type": "string", + "description": "Tenant ID" + }, + "bulkSites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "SiteName": { + "type": "string", + "description": "Name of the site" + }, + "siteDescription": { + "type": "string", + "description": "Description of the site" + }, + "siteOwner": { + "type": "string", + "description": "User principal name of the site owner" + }, + "TemplateName": { + "type": "string", + "description": "Template name" + }, + "siteDesign": { + "type": "string", + "description": "Site design template" + }, + "sensitivityLabel": { + "type": "string", + "description": "Sensitivity label" + } + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Sites created successfully" + } + } + } + }, + "/api/ListTeams": { + "get": { + "summary": "List Teams", + "description": "List Microsoft Teams", + "parameters": [ + { + "name": "type", + "in": "query", + "required": true, + "schema": { + "type": "string", + "enum": ["list"] + }, + "description": "Type of Teams list" + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Team" + } + } + } + } + } + } + } + }, + "/api/AddTeam": { + "post": { + "summary": "Add a new Team", + "description": "Create a new Microsoft Team", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": ["tenantID", "displayName", "owner", "visibility"], + "properties": { + "tenantID": { + "type": "string", + "description": "Tenant ID" + }, + "displayName": { + "type": "string", + "description": "Display name of the team" + }, + "description": { + "type": "string", + "description": "Description of the team" + }, + "owner": { + "type": "string", + "description": "User principal name of the team owner" + }, + "visibility": { + "type": "string", + "enum": ["public", "private"], + "description": "Team visibility" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Team created successfully" + } + } + } + }, + "/api/ListTeamsActivity": { + "get": { + "summary": "List Teams activity", + "description": "List Microsoft Teams user activity", + "parameters": [ + { + "name": "type", + "in": "query", + "required": true, + "schema": { + "type": "string", + "enum": ["TeamsUserActivityUser"] + }, + "description": "Type of Teams activity" + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TeamsActivity" + } + } + } + } + } + } + } + }, + "/api/ListTeamsVoice": { + "get": { + "summary": "List Teams voice phone numbers", + "description": "List Microsoft Teams voice phone numbers", + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TeamsVoice" + } + } + } + } + } + } + } + }, + "/api/ExecTeamsVoicePhoneNumberAssignment": { + "post": { + "summary": "Assign Teams voice phone number", + "description": "Assign a phone number to a user or set emergency location", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": ["PhoneNumber"], + "properties": { + "PhoneNumber": { + "type": "string", + "description": "Phone number to assign" + }, + "PhoneNumberType": { + "type": "string", + "description": "Type of phone number" + }, + "locationOnly": { + "type": "boolean", + "description": "True if only setting emergency location" + }, + "input": { + "type": "string", + "description": "User principal name or location ID" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Operation successful" + } + } + } + }, + "/api/ExecRemoveTeamsVoicePhoneNumberAssignment": { + "post": { + "summary": "Unassign Teams voice phone number", + "description": "Unassign a phone number from a user", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": ["PhoneNumber", "AssignedTo", "PhoneNumberType"], + "properties": { + "PhoneNumber": { + "type": "string", + "description": "Phone number to unassign" + }, + "AssignedTo": { + "type": "string", + "description": "User the phone number is assigned to" + }, + "PhoneNumberType": { + "type": "string", + "description": "Type of phone number" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Operation successful" + } + } + } + }, + "/api/ListTeamsLisLocation": { + "get": { + "summary": "List Teams emergency locations", + "description": "List Microsoft Teams emergency locations", + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TeamsLocation" + } + } + } + } + } + } + } + }, + "/api/listUsers": { + "get": { + "summary": "List users", + "description": "List users for selection in forms", + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User" + } + } + } + } + } + } + } + }, + "/api/ListGraphRequest": { + "get": { + "summary": "List Graph API resources", + "description": "List resources from Microsoft Graph API", + "parameters": [ + { + "name": "Endpoint", + "in": "query", + "required": true, + "schema": { + "type": "string" + }, + "description": "Graph API endpoint" + }, + { + "name": "$filter", + "in": "query", + "schema": { + "type": "string" + }, + "description": "OData filter" + }, + { + "name": "$top", + "in": "query", + "schema": { + "type": "integer" + }, + "description": "Maximum number of results" + }, + { + "name": "$count", + "in": "query", + "schema": { + "type": "boolean" + }, + "description": "Include count" + }, + { + "name": "$orderby", + "in": "query", + "schema": { + "type": "string" + }, + "description": "Order by field" + }, + { + "name": "$select", + "in": "query", + "schema": { + "type": "string" + }, + "description": "Fields to select" + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "Site": { + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "Display name of the site" + }, + "createdDateTime": { + "type": "string", + "format": "date-time", + "description": "Date and time when the site was created" + }, + "ownerPrincipalName": { + "type": "string", + "description": "Principal name of the site owner" + }, + "lastActivityDate": { + "type": "string", + "format": "date-time", + "description": "Date of last activity" + }, + "fileCount": { + "type": "integer", + "description": "Number of files" + }, + "storageUsedInGigabytes": { + "type": "number", + "format": "float", + "description": "Storage used in gigabytes" + }, + "storageAllocatedInGigabytes": { + "type": "number", + "format": "float", + "description": "Storage allocated in gigabytes" + }, + "reportRefreshDate": { + "type": "string", + "format": "date-time", + "description": "Date when the report was refreshed" + }, + "webUrl": { + "type": "string", + "description": "URL of the site" + }, + "description": { + "type": "string", + "description": "Description of the site" + } + } + }, + "Team": { + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "Display name of the team" + }, + "description": { + "type": "string", + "description": "Description of the team" + }, + "visibility": { + "type": "string", + "description": "Visibility of the team" + }, + "mailNickname": { + "type": "string", + "description": "Mail nickname of the team" + }, + "id": { + "type": "string", + "description": "ID of the team" + } + } + }, + "TeamsActivity": { + "type": "object", + "properties": { + "UPN": { + "type": "string", + "description": "User principal name" + }, + "LastActive": { + "type": "string", + "format": "date-time", + "description": "Date and time of last activity" + }, + "MeetingCount": { + "type": "integer", + "description": "Number of meetings" + }, + "CallCount": { + "type": "integer", + "description": "Number of calls" + }, + "TeamsChat": { + "type": "integer", + "description": "Number of Teams chats" + } + } + }, + "TeamsVoice": { + "type": "object", + "properties": { + "AssignedTo": { + "type": "string", + "description": "User the phone number is assigned to" + }, + "TelephoneNumber": { + "type": "string", + "description": "Phone number" + }, + "AssignmentStatus": { + "type": "string", + "description": "Assignment status" + }, + "NumberType": { + "type": "string", + "description": "Type of phone number" + }, + "AcquiredCapabilities": { + "type": "string", + "description": "Capabilities of the phone number" + }, + "IsoCountryCode": { + "type": "string", + "description": "ISO country code" + }, + "PlaceName": { + "type": "string", + "description": "Place name" + }, + "ActivationState": { + "type": "string", + "description": "Activation state" + }, + "IsOperatorConnect": { + "type": "boolean", + "description": "Whether the number is operator connect" + }, + "AcquisitionDate": { + "type": "string", + "format": "date-time", + "description": "Date when the number was acquired" + } + } + }, + "TeamsLocation": { + "type": "object", + "properties": { + "Description": { + "type": "string", + "description": "Description of the location" + }, + "LocationId": { + "type": "string", + "description": "ID of the location" + } + } + }, + "User": { + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "Display name of the user" + }, + "userPrincipalName": { + "type": "string", + "description": "User principal name" + }, + "id": { + "type": "string", + "description": "ID of the user" + } + } + } + } + } +} \ No newline at end of file diff --git a/Tools/tenant-openapispec.json b/Tools/tenant-openapispec.json new file mode 100644 index 000000000000..36d372109e94 --- /dev/null +++ b/Tools/tenant-openapispec.json @@ -0,0 +1,1853 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "CIPP Tenant API", + "description": "API for Tenant Management in Cloud Identity and Policy Platform (CIPP)", + "version": "1.0.0" + }, + "servers": [ + { + "url": "/api", + "description": "CIPP API Server" + } + ], + "components": { + "schemas": { + "StandardResponse": { + "type": "object", + "properties": { + "Results": { + "type": "object", + "description": "The results of the operation" + } + } + } + } + }, + "paths": { + "/ListAlertsQueue": { + "get": { + "summary": "List Alerts Queue", + "description": "Retrieves a list of alerts in the queue", + "tags": [ + "Tenant Administration" + ], + "responses": { + "200": { + "description": "Alerts retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "RowKey": { + "type": "string", + "description": "Unique identifier for the alert" + }, + "PartitionKey": { + "type": "string", + "description": "Partition key for the alert" + }, + "LogType": { + "type": "string", + "description": "Type of log" + }, + "RawAlert": { + "type": "object", + "description": "Raw alert data" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/AddAlert": { + "post": { + "summary": "Add Alert", + "description": "Adds a new alert", + "tags": [ + "Tenant Administration" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tenantFilter": { + "type": "array", + "description": "List of tenants to apply the alert to", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Tenant ID" + }, + "label": { + "type": "string", + "description": "Tenant name" + } + } + } + }, + "excludedTenants": { + "type": "array", + "description": "List of tenants to exclude from the alert", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Tenant ID" + }, + "label": { + "type": "string", + "description": "Tenant name" + } + } + } + }, + "logbook": { + "type": "object", + "description": "Log source", + "properties": { + "value": { + "type": "string", + "description": "Log source value" + }, + "label": { + "type": "string", + "description": "Log source label" + } + } + }, + "conditions": { + "type": "array", + "description": "Alert conditions", + "items": { + "type": "object", + "properties": { + "Property": { + "type": "object", + "description": "Property to check", + "properties": { + "value": { + "type": "string", + "description": "Property value" + }, + "label": { + "type": "string", + "description": "Property label" + } + } + }, + "Operator": { + "type": "object", + "description": "Comparison operator", + "properties": { + "value": { + "type": "string", + "description": "Operator value" + }, + "label": { + "type": "string", + "description": "Operator label" + } + } + }, + "Input": { + "type": "object", + "description": "Input value", + "properties": { + "value": { + "type": "string", + "description": "Input value" + } + } + } + } + } + }, + "Actions": { + "type": "array", + "description": "Actions to take", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Action value" + }, + "label": { + "type": "string", + "description": "Action label" + } + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Alert added successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/AddScheduledItem": { + "post": { + "summary": "Add Scheduled Item", + "description": "Adds a new scheduled item", + "tags": [ + "Tenant Administration" + ], + "parameters": [ + { + "name": "hidden", + "in": "query", + "description": "Whether to hide the scheduled item", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "name": "DisallowDuplicateName", + "in": "query", + "description": "Whether to disallow duplicate names", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "RowKey": { + "type": "string", + "description": "Unique identifier for the scheduled item" + }, + "tenantFilter": { + "type": "string", + "description": "Tenant to apply the scheduled item to" + }, + "excludedTenants": { + "type": "array", + "description": "List of tenants to exclude from the scheduled item", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Tenant ID" + }, + "label": { + "type": "string", + "description": "Tenant name" + } + } + } + }, + "Name": { + "type": "string", + "description": "Name of the scheduled item" + }, + "Command": { + "type": "object", + "description": "Command to execute", + "properties": { + "value": { + "type": "string", + "description": "Command value" + } + } + }, + "Parameters": { + "type": "object", + "description": "Parameters for the command" + }, + "ScheduledTime": { + "type": "integer", + "description": "When the job is scheduled to run (Unix timestamp)" + }, + "Recurrence": { + "type": "string", + "description": "How often the job recurs" + }, + "PostExecution": { + "type": "array", + "description": "Actions to take after execution", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Action value" + }, + "label": { + "type": "string", + "description": "Action label" + } + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Scheduled item added successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/listCSPLicenses": { + "get": { + "summary": "List CSP Licenses", + "description": "Retrieves a list of CSP licenses", + "tags": [ + "Tenant Reports" + ], + "responses": { + "200": { + "description": "CSP licenses retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Tenant": { + "type": "string", + "description": "Tenant name" + }, + "TenantId": { + "type": "string", + "description": "Tenant ID" + }, + "SubscriptionId": { + "type": "string", + "description": "Subscription ID" + }, + "SkuId": { + "type": "string", + "description": "SKU ID" + }, + "SkuName": { + "type": "string", + "description": "SKU name" + }, + "Status": { + "type": "string", + "description": "Subscription status" + }, + "Quantity": { + "type": "integer", + "description": "License quantity" + }, + "BillingCycle": { + "type": "string", + "description": "Billing cycle" + }, + "RenewalDate": { + "type": "string", + "description": "Renewal date" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecCSPLicense": { + "post": { + "summary": "Execute CSP License Operation", + "description": "Executes an operation on CSP licenses", + "tags": [ + "Tenant Reports" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Action": { + "type": "string", + "description": "Action to perform", + "enum": ["!Add", "!Remove", "!Cancel"] + }, + "sku": { + "type": "string", + "description": "SKU ID" + }, + "add": { + "type": "integer", + "description": "Number of licenses to add" + }, + "Remove": { + "type": "integer", + "description": "Number of licenses to remove" + }, + "SubscriptionIds": { + "type": "string", + "description": "Subscription IDs to cancel" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "CSP license operation executed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListLicenses": { + "get": { + "summary": "List Licenses", + "description": "Retrieves a list of licenses", + "tags": [ + "Tenant Reports" + ], + "responses": { + "200": { + "description": "Licenses retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Tenant": { + "type": "string", + "description": "Tenant name" + }, + "License": { + "type": "string", + "description": "License name" + }, + "CountUsed": { + "type": "integer", + "description": "Number of licenses used" + }, + "CountAvailable": { + "type": "integer", + "description": "Number of licenses available" + }, + "TotalLicenses": { + "type": "integer", + "description": "Total number of licenses" + }, + "TermInfo": { + "type": "object", + "description": "Term information" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListStandards": { + "get": { + "summary": "List Standards", + "description": "Retrieves a list of standards", + "tags": [ + "Tenant Standards" + ], + "responses": { + "200": { + "description": "Standards retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "RowKey": { + "type": "string", + "description": "Unique identifier for the standard" + }, + "Standard": { + "type": "string", + "description": "Standard name" + }, + "Tenant": { + "type": "string", + "description": "Tenant name" + }, + "Enabled": { + "type": "boolean", + "description": "Whether the standard is enabled" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/listStandardTemplates": { + "get": { + "summary": "List Standard Templates", + "description": "Retrieves a list of standard templates", + "tags": [ + "Tenant Standards" + ], + "responses": { + "200": { + "description": "Standard templates retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "GUID": { + "type": "string", + "description": "Unique identifier for the template" + }, + "templateName": { + "type": "string", + "description": "Template name" + }, + "tenantFilter": { + "type": "array", + "description": "List of tenants to apply the template to", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Tenant ID" + }, + "label": { + "type": "string", + "description": "Tenant name" + } + } + } + }, + "excludedTenants": { + "type": "array", + "description": "List of tenants to exclude from the template", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Tenant ID" + }, + "label": { + "type": "string", + "description": "Tenant name" + } + } + } + }, + "updatedAt": { + "type": "string", + "description": "When the template was last updated" + }, + "updatedBy": { + "type": "string", + "description": "Who last updated the template" + }, + "runManually": { + "type": "boolean", + "description": "Whether the template is run manually" + }, + "standards": { + "type": "array", + "description": "List of standards in the template", + "items": { + "type": "object" + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecStandardsRun": { + "get": { + "summary": "Execute Standards Run", + "description": "Executes a standards run", + "tags": [ + "Tenant Standards" + ], + "parameters": [ + { + "name": "TemplateId", + "in": "query", + "description": "Template ID to run", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "tenantFilter", + "in": "query", + "description": "Tenant filter", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Standards run executed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/RemoveStandardTemplate": { + "post": { + "summary": "Remove Standard Template", + "description": "Removes a standard template", + "tags": [ + "Tenant Standards" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "ID" + ], + "properties": { + "ID": { + "type": "string", + "description": "Template ID to remove" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Standard template removed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/execStandardConvert": { + "post": { + "summary": "Convert Standards", + "description": "Converts legacy standards to the new format", + "tags": [ + "Tenant Standards" + ], + "responses": { + "200": { + "description": "Standards converted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListNamedLocations": { + "get": { + "summary": "List Named Locations", + "description": "Retrieves a list of named locations", + "tags": [ + "Tenant Conditional Access" + ], + "responses": { + "200": { + "description": "Named locations retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the named location" + }, + "displayName": { + "type": "string", + "description": "Display name" + }, + "@odata.type": { + "type": "string", + "description": "Type of named location" + }, + "includeUnknownCountriesAndRegions": { + "type": "boolean", + "description": "Whether to include unknown countries and regions" + }, + "isTrusted": { + "type": "boolean", + "description": "Whether the location is trusted" + }, + "rangeOrLocation": { + "type": "string", + "description": "Range or location" + }, + "modifiedDateTime": { + "type": "string", + "description": "When the named location was last modified" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecNamedLocation": { + "post": { + "summary": "Execute Named Location Operation", + "description": "Executes an operation on a named location", + "tags": [ + "Tenant Conditional Access" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "namedLocationId", + "change", + "input" + ], + "properties": { + "namedLocationId": { + "type": "string", + "description": "Named location ID" + }, + "change": { + "type": "string", + "description": "Change to make", + "enum": ["addLocation", "removeLocation", "addIp", "removeIp"] + }, + "input": { + "type": "string", + "description": "Input value (country code or IP)" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Named location operation executed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/AddNamedLocation": { + "post": { + "summary": "Add Named Location", + "description": "Adds a new named location", + "tags": [ + "Tenant Conditional Access" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "Display name" + }, + "locationType": { + "type": "string", + "description": "Type of location", + "enum": ["country", "ip"] + }, + "countriesAndRegions": { + "type": "array", + "description": "List of countries and regions", + "items": { + "type": "string" + } + }, + "includeUnknownCountriesAndRegions": { + "type": "boolean", + "description": "Whether to include unknown countries and regions" + }, + "ipRanges": { + "type": "array", + "description": "List of IP ranges", + "items": { + "type": "object", + "properties": { + "cidrAddress": { + "type": "string", + "description": "CIDR address" + } + } + } + }, + "isTrusted": { + "type": "boolean", + "description": "Whether the location is trusted" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Named location added successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListConditionalAccessPolicies": { + "get": { + "summary": "List Conditional Access Policies", + "description": "Retrieves a list of conditional access policies", + "tags": [ + "Tenant Conditional Access" + ], + "responses": { + "200": { + "description": "Conditional access policies retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the policy" + }, + "displayName": { + "type": "string", + "description": "Display name" + }, + "state": { + "type": "string", + "description": "State of the policy" + }, + "conditions": { + "type": "object", + "description": "Conditions for the policy" + }, + "grantControls": { + "type": "object", + "description": "Grant controls for the policy" + }, + "sessionControls": { + "type": "object", + "description": "Session controls for the policy" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecCAExclusion": { + "post": { + "summary": "Execute Conditional Access Exclusion", + "description": "Executes a conditional access exclusion", + "tags": [ + "Tenant Conditional Access" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tenantFilter": { + "type": "object", + "description": "Tenant filter", + "properties": { + "value": { + "type": "string", + "description": "Tenant ID" + }, + "label": { + "type": "string", + "description": "Tenant name" + } + } + }, + "user": { + "type": "object", + "description": "User to exclude", + "properties": { + "value": { + "type": "string", + "description": "User ID" + }, + "label": { + "type": "string", + "description": "User name" + } + } + }, + "policy": { + "type": "object", + "description": "Policy to exclude from", + "properties": { + "value": { + "type": "string", + "description": "Policy ID" + }, + "label": { + "type": "string", + "description": "Policy name" + } + } + }, + "startDate": { + "type": "string", + "description": "Start date for the exclusion" + }, + "endDate": { + "type": "string", + "description": "End date for the exclusion" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Conditional access exclusion executed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListGraphRequest": { + "get": { + "summary": "List Graph Request", + "description": "Retrieves data from Microsoft Graph API", + "tags": [ + "Tenant Administration" + ], + "parameters": [ + { + "name": "Endpoint", + "in": "query", + "description": "Graph API endpoint", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Fields to select", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "$count", + "in": "query", + "description": "Whether to include count", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "name": "$top", + "in": "query", + "description": "Number of results to return", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Graph request executed successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListAuditLogs": { + "get": { + "summary": "List Audit Logs", + "description": "Retrieves a list of audit logs", + "tags": [ + "Tenant Administration" + ], + "parameters": [ + { + "name": "RelativeTime", + "in": "query", + "description": "Relative time filter", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "StartDate", + "in": "query", + "description": "Start date filter", + "required": false, + "schema": { + "type": "string", + "format": "date" + } + }, + { + "name": "EndDate", + "in": "query", + "description": "End date filter", + "required": false, + "schema": { + "type": "string", + "format": "date" + } + } + ], + "responses": { + "200": { + "description": "Audit logs retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Timestamp": { + "type": "string", + "description": "When the log entry was created" + }, + "Tenant": { + "type": "string", + "description": "Tenant name" + }, + "Title": { + "type": "string", + "description": "Log title" + }, + "LogId": { + "type": "string", + "description": "Unique identifier for the log" + }, + "Actions": { + "type": "string", + "description": "Actions taken" + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecListBackup": { + "get": { + "summary": "List Backups", + "description": "Retrieves a list of backups", + "tags": [ + "Tenant Backup" + ], + "parameters": [ + { + "name": "tenantFilter", + "in": "query", + "description": "Tenant filter", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Backups retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "BackupName": { + "type": "string", + "description": "Name of the backup" + }, + "Timestamp": { + "type": "string", + "description": "When the backup was created" + }, + "Backup": { + "type": "string", + "description": "The backup data (JSON string)" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListCSPsku": { + "get": { + "summary": "List CSP SKUs", + "description": "Retrieves a list of CSP SKUs", + "tags": [ + "Tenant Administration" + ], + "responses": { + "200": { + "description": "CSP SKUs retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "sku": { + "type": "string", + "description": "SKU ID" + }, + "name": { + "type": "array", + "description": "SKU names", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "SKU name" + } + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListCommunityRepos": { + "get": { + "summary": "List Community Repositories", + "description": "Retrieves a list of community repositories", + "tags": [ + "Tenant Standards" + ], + "parameters": [ + { + "name": "WriteAccess", + "in": "query", + "description": "Whether to only include repositories with write access", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Community repositories retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "FullName": { + "type": "string", + "description": "Full name of the repository" + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecCommunityRepo": { + "post": { + "summary": "Execute Community Repository Operation", + "description": "Executes an operation on a community repository", + "tags": [ + "Tenant Standards" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "Action", + "GUID", + "FullName", + "Message" + ], + "properties": { + "Action": { + "type": "string", + "description": "Action to perform", + "enum": ["UploadTemplate"] + }, + "GUID": { + "type": "string", + "description": "Template GUID" + }, + "FullName": { + "type": "string", + "description": "Repository full name" + }, + "Message": { + "type": "string", + "description": "Commit message" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Community repository operation executed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListExtensionsConfig": { + "get": { + "summary": "List Extensions Configuration", + "description": "Retrieves the configuration for extensions", + "tags": [ + "Tenant Administration" + ], + "responses": { + "200": { + "description": "Extensions configuration retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "Enabled": { + "type": "boolean", + "description": "Whether the extension is enabled" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecGDAPRoleTemplate": { + "get": { + "summary": "List GDAP Role Templates", + "description": "Retrieves a list of existing GDAP role templates", + "tags": [ + "Tenant Administration" + ], + "responses": { + "200": { + "description": "GDAP role templates retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "TemplateId": { + "type": "string", + "description": "Unique identifier for the template" + }, + "RoleMappings": { + "type": "array", + "description": "List of role mappings in the template", + "items": { + "type": "object", + "properties": { + "GroupName": { + "type": "string", + "description": "Name of the GDAP group" + }, + "GroupId": { + "type": "string", + "description": "Unique identifier for the GDAP group" + }, + "RoleName": { + "type": "string", + "description": "Name of the Microsoft role" + }, + "roleDefinitionId": { + "type": "string", + "description": "Unique identifier for the role definition" + } + } + } + } + } + } + }, + "Metadata": { + "type": "object", + "properties": { + "Count": { + "type": "integer", + "description": "Number of templates returned" + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListGDAPRoles": { + "get": { + "summary": "List GDAP Roles", + "description": "Retrieves a list of GDAP roles that have been mapped in CIPP", + "tags": [ + "Tenant Administration" + ], + "responses": { + "200": { + "description": "GDAP roles retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "GroupName": { + "type": "string", + "description": "Name of the GDAP group" + }, + "GroupId": { + "type": "string", + "description": "Unique identifier for the GDAP group" + }, + "RoleName": { + "type": "string", + "description": "Name of the Microsoft role" + }, + "roleDefinitionId": { + "type": "string", + "description": "Unique identifier for the role definition" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecGDAPInvite": { + "post": { + "summary": "Create GDAP Invite", + "description": "Creates a GDAP invite using the specified role mappings", + "tags": [ + "Tenant Administration" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "roleMappings" + ], + "properties": { + "roleMappings": { + "type": "array", + "description": "List of role mappings for the GDAP invite", + "items": { + "type": "object", + "properties": { + "GroupName": { + "type": "string", + "description": "Name of the GDAP group" + }, + "GroupId": { + "type": "string", + "description": "Unique identifier for the GDAP group" + }, + "RoleName": { + "type": "string", + "description": "Name of the Microsoft role" + }, + "roleDefinitionId": { + "type": "string", + "description": "Unique identifier for the role definition" + } + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "GDAP invite created successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Message": { + "type": "string", + "description": "Success message" + }, + "Invite": { + "type": "object", + "properties": { + "PartitionKey": { + "type": "string", + "description": "Partition key for the invite" + }, + "RowKey": { + "type": "string", + "description": "Unique identifier for the invite" + }, + "InviteUrl": { + "type": "string", + "description": "URL for accepting the GDAP invite" + }, + "OnboardingUrl": { + "type": "string", + "nullable": true, + "description": "Onboarding URL if available" + }, + "RoleMappings": { + "type": "string", + "description": "JSON string of role mappings" + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + } + } +} \ No newline at end of file diff --git a/Tools/tools-openapispec.json b/Tools/tools-openapispec.json new file mode 100644 index 000000000000..7d85f7a40e4a --- /dev/null +++ b/Tools/tools-openapispec.json @@ -0,0 +1,665 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "CIPP Tools API", + "description": "API for Tools in Cloud Identity and Policy Platform (CIPP)", + "version": "1.0.0" + }, + "servers": [ + { + "url": "/api", + "description": "CIPP API Server" + } + ], + "components": { + "schemas": { + "StandardResponse": { + "type": "object", + "properties": { + "Results": { + "type": "object", + "description": "The results of the operation" + } + } + } + } + }, + "paths": { + "/ListBreachesAccount": { + "get": { + "summary": "List Breaches for Account", + "description": "Retrieves a list of breaches for a specific account (email or domain)", + "tags": [ + "Breach Lookup" + ], + "parameters": [ + { + "name": "account", + "in": "query", + "description": "Email address or domain name to check for breaches", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Breaches retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Title": { + "type": "string", + "description": "Title of the breach" + }, + "LogoPath": { + "type": "string", + "description": "Path to the breach logo" + }, + "password": { + "type": "string", + "description": "Partial password if available" + }, + "Description": { + "type": "string", + "description": "Description of the breach" + }, + "Domain": { + "type": "string", + "description": "Domain associated with the breach" + }, + "DataClasses": { + "type": "array", + "description": "Types of data leaked in the breach", + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListBreachesTenant": { + "get": { + "summary": "List Breaches for Tenant", + "description": "Retrieves a list of breaches for a specific tenant", + "tags": [ + "Breach Lookup" + ], + "parameters": [ + { + "name": "tenantFilter", + "in": "query", + "description": "Tenant ID to filter breaches", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Tenant breaches retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "Email address associated with the breach" + }, + "password": { + "type": "string", + "description": "Partial password if available" + }, + "sources": { + "type": "string", + "description": "Sources of the breach data" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecBreachSearch": { + "get": { + "summary": "Execute Breach Search", + "description": "Executes a breach search for a tenant", + "tags": [ + "Breach Lookup" + ], + "parameters": [ + { + "name": "tenantFilter", + "in": "query", + "description": "Tenant ID to search for breaches", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Breach search executed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListExtensionsConfig": { + "get": { + "summary": "List Extensions Configuration", + "description": "Retrieves the configuration for extensions", + "tags": [ + "Community Repositories" + ], + "responses": { + "200": { + "description": "Extensions configuration retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "GitHub": { + "type": "object", + "properties": { + "Enabled": { + "type": "boolean", + "description": "Whether GitHub integration is enabled" + } + } + } + }, + "additionalProperties": { + "type": "object", + "properties": { + "Enabled": { + "type": "boolean", + "description": "Whether the extension is enabled" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecGitHubAction": { + "get": { + "summary": "Execute GitHub Action (GET)", + "description": "Executes a GitHub action with GET method", + "tags": [ + "Community Repositories" + ], + "parameters": [ + { + "name": "Action", + "in": "query", + "description": "Action to perform", + "required": true, + "schema": { + "type": "string", + "enum": ["GetBranches", "GetFileTree", "GetFileContents", "GetOrgs"] + } + }, + { + "name": "FullName", + "in": "query", + "description": "Full name of the repository (owner/repo)", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "Branch", + "in": "query", + "description": "Branch name", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "Path", + "in": "query", + "description": "File path", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "GitHub action executed successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + }, + "post": { + "summary": "Execute GitHub Action (POST)", + "description": "Executes a GitHub action with POST method", + "tags": [ + "Community Repositories" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "Action" + ], + "properties": { + "Action": { + "type": "string", + "description": "Action to perform", + "enum": ["CreateRepo", "Search", "GetFileContents"] + }, + "Type": { + "type": "string", + "description": "Type of repository (user or org)", + "enum": ["user", "org", "repositories"] + }, + "Name": { + "type": "string", + "description": "Repository name" + }, + "Org": { + "type": "string", + "description": "Organization name" + }, + "Description": { + "type": "string", + "description": "Repository description" + }, + "Private": { + "type": "boolean", + "description": "Whether the repository is private" + }, + "Repository": { + "type": "string", + "description": "Repository name for search" + }, + "User": { + "type": "string", + "description": "User name for search" + }, + "SearchTerm": { + "type": "array", + "description": "Search terms", + "items": { + "type": "string" + } + }, + "FullName": { + "type": "string", + "description": "Full name of the repository (owner/repo)" + }, + "Path": { + "type": "string", + "description": "File path" + }, + "Branch": { + "type": "string", + "description": "Branch name" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "GitHub action executed successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListCommunityRepos": { + "get": { + "summary": "List Community Repositories", + "description": "Retrieves a list of community repositories", + "tags": [ + "Community Repositories" + ], + "responses": { + "200": { + "description": "Community repositories retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Repository name" + }, + "Owner": { + "type": "string", + "description": "Repository owner" + }, + "URL": { + "type": "string", + "description": "Repository URL" + }, + "Visibility": { + "type": "string", + "description": "Repository visibility (public/private)" + }, + "WriteAccess": { + "type": "boolean", + "description": "Whether the user has write access to the repository" + }, + "UploadBranch": { + "type": "string", + "description": "Branch used for uploads" + }, + "FullName": { + "type": "string", + "description": "Full name of the repository (owner/repo)" + }, + "DefaultBranch": { + "type": "string", + "description": "Default branch of the repository" + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecCommunityRepo": { + "post": { + "summary": "Execute Community Repository Operation", + "description": "Executes an operation on a community repository", + "tags": [ + "Community Repositories" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "Action" + ], + "properties": { + "Action": { + "type": "string", + "description": "Action to perform", + "enum": ["Add", "Delete", "SetBranch", "ImportTemplate"] + }, + "Id": { + "type": "string", + "description": "Repository ID" + }, + "Branch": { + "type": "string", + "description": "Branch name" + }, + "FullName": { + "type": "string", + "description": "Full name of the repository (owner/repo)" + }, + "Path": { + "type": "string", + "description": "File path for template import" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Community repository operation executed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/AddScheduledItem": { + "post": { + "summary": "Add Scheduled Item", + "description": "Adds a new scheduled item", + "tags": [ + "Template Library" + ], + "parameters": [ + { + "name": "DisallowDuplicateName", + "in": "query", + "description": "Whether to disallow duplicate names", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "TenantFilter": { + "type": "string", + "description": "Tenant to apply the scheduled item to" + }, + "Name": { + "type": "string", + "description": "Name of the scheduled item" + }, + "Command": { + "type": "object", + "description": "Command to execute", + "properties": { + "value": { + "type": "string", + "description": "Command value" + } + } + }, + "Parameters": { + "type": "object", + "description": "Parameters for the command", + "properties": { + "TemplateSettings": { + "type": "object", + "description": "Template settings" + } + } + }, + "ScheduledTime": { + "type": "integer", + "description": "When the job is scheduled to run (Unix timestamp)" + }, + "Recurrence": { + "type": "object", + "description": "How often the job recurs", + "properties": { + "value": { + "type": "string", + "description": "Recurrence value" + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Scheduled item added successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + } + } +} \ No newline at end of file diff --git a/cspell.json b/cspell.json index e4ec9aadb5ed..28a883c89c5e 100644 --- a/cspell.json +++ b/cspell.json @@ -4,6 +4,7 @@ "dictionaryDefinitions": [], "dictionaries": [], "words": [ + "adminapi", "ADMS", "AITM", "Autotask", @@ -11,20 +12,27 @@ "cipp", "CIPP", "CIPP-API", + "CIPPCPV", + "CIPPGDAP", + "CIPPURL", "Connectwise", "CPIM", "Datto", + "Dmarc", "DMARC", "endswith", "entra", "Entra", + "eula", "exploitability", "gdap", "GDAP", "IMAP", + "innererror", "Intune", "locationcipp", "MAPI", + "MSCNAME", "Multitenant", "OBEE", "passwordless", diff --git a/docker-compose.yml b/docker-compose.yml index 6da14aa0a7c9..d9d93f4026cb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -19,17 +19,13 @@ services: - FUNCTIONS_WORKER_RUNTIME=${FUNCTIONS_WORKER_RUNTIME} - FUNCTIONS_WORKER_RUNTIME_VERSION=${FUNCTIONS_WORKER_RUNTIME_VERSION} - AzureWebJobsStorage=${AzureWebJobsStorage} - - ApplicationID=${ApplicationID} - - ApplicationSecret=${ApplicationSecret} - - RefreshToken=${RefreshToken} - - TenantID=${TenantID} - DEV_SKIP_BPA_TIMER=${DEV_SKIP_BPA_TIMER} - DEV_SKIP_DOMAIN_TIMER=${DEV_SKIP_DOMAIN_TIMER} - - SetFromProfile=${SetFromProfile} - FUNCTIONS_EXTENSION_VERSION=${FUNCTIONS_EXTENSION_VERSION} - AzureWebJobs.BestPracticeAnalyser_OrchestrationStarterTimer.Disabled=true - AzureWebJobs.Domain_OrchestrationStarterTimer.Disabled=true - WEBSITE_HOSTNAME=cippapi + - NonLocalHostAzurite=${NonLocalHostAzurite} depends_on: - azurite networks: diff --git a/host.json b/host.json index e10643770e53..ff513b12d0ea 100644 --- a/host.json +++ b/host.json @@ -5,13 +5,20 @@ }, "extensionBundle": { "id": "Microsoft.Azure.Functions.ExtensionBundle", - "version": "[4.*, 5.0.0)" + "version": "[4.26.0, 5.0.0)" }, "functionTimeout": "00:10:00", "extensions": { "durableTask": { - "maxConcurrentActivityFunctions": 5, - "maxConcurrentOrchestratorFunctions": 2 + "maxConcurrentActivityFunctions": 1, + "maxConcurrentOrchestratorFunctions": 5, + "tracing": { + "distributedTracingEnabled": false, + "version": "None" + }, + "defaultVersion": "10.0.5", + "versionMatchStrategy": "Strict", + "versionFailureStrategy": "Fail" } } -} \ No newline at end of file +} diff --git a/openapi.json b/openapi.json index ffb4023947fe..013d331ba238 100644 --- a/openapi.json +++ b/openapi.json @@ -3640,6 +3640,259 @@ } } }, + "/ListContactPermissions": { + "get": { + "description": "ListContactPermissions - Retrieves contact folder permissions for a specified user", + "summary": "ListContactPermissions", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "UserID", + "in": "query", + "description": "The user ID to retrieve contact permissions for" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantFilter", + "in": "query", + "description": "The tenant filter to specify which tenant" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Identity": { + "type": "string", + "description": "The identity of the contact folder" + }, + "User": { + "type": "string", + "description": "The user who has permissions" + }, + "AccessRights": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The access rights granted to the user" + }, + "FolderName": { + "type": "string", + "description": "The name of the contact folder" + }, + "MailboxInfo": { + "type": "object", + "description": "Information about the mailbox" + } + } + } + } + } + }, + "description": "Successfully retrieved contact permissions" + }, + "403": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "description": "Error message" + } + } + } + } + }, + "description": "Forbidden - insufficient permissions" + } + } + } + }, + "/ExecModifyContactPerms": { + "post": { + "description": "ExecModifyContactPerms - Modifies contact folder permissions for a specified user", + "summary": "ExecModifyContactPerms", + "tags": [ + "POST" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "userID", + "tenantFilter", + "permissions" + ], + "properties": { + "userID": { + "type": "string", + "description": "The user ID whose contact permissions will be modified" + }, + "tenantFilter": { + "type": "string", + "description": "The tenant filter to specify which tenant" + }, + "permissions": { + "type": "array", + "description": "Array of permission objects to apply", + "items": { + "type": "object", + "properties": { + "PermissionLevel": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Permission level (e.g., Owner, PublishingEditor, Editor, PublishingAuthor, Author, NonEditingAuthor, Reviewer, Contributor, AvailabilityOnly, LimitedDetails)" + } + } + }, + "Modification": { + "type": "string", + "description": "Type of modification (Add, Remove)", + "enum": ["Add", "Remove"] + }, + "UserID": { + "type": "array", + "description": "Array of target users to grant/remove permissions", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "User ID or email address" + } + } + } + }, + "CanViewPrivateItems": { + "type": "boolean", + "description": "Whether the user can view private items", + "default": false + }, + "FolderName": { + "type": "string", + "description": "Name of the contact folder", + "default": "Contact" + }, + "SendNotificationToUser": { + "type": "boolean", + "description": "Whether to send notification to the user", + "default": false + } + }, + "required": [ + "PermissionLevel", + "Modification", + "UserID" + ] + } + } + } + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of result messages for each permission operation" + } + } + } + } + }, + "description": "Successfully processed contact permission modifications" + }, + "400": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Error messages" + } + } + } + } + }, + "description": "Bad Request - Missing required parameters" + }, + "404": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Error messages" + } + } + } + } + }, + "description": "Not Found - User ID not found" + }, + "500": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Error messages" + } + } + } + } + }, + "description": "Internal Server Error - Operation failed" + } + } + } + }, "/ListMailboxRules": { "get": { "description": "ListMailboxRules", @@ -9655,6 +9908,578 @@ } } }, + "/ExecManageRetentionPolicies": { + "get": { + "description": "List retention policies or get a specific retention policy by name", + "summary": "Get Retention Policies", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantFilter", + "in": "query" + }, + { + "required": false, + "schema": { + "type": "string" + }, + "name": "name", + "in": "query", + "description": "Name of specific retention policy to retrieve" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Name": { + "type": "string" + }, + "RetentionPolicyTagLinks": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "description": "Successfully retrieved retention policies" + }, + "400": { + "description": "Bad request - missing required parameters", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "string", + "description": "Error message" + } + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "string", + "description": "Error message" + } + } + } + } + } + } + } + }, + "post": { + "description": "Create, modify, or delete retention policies", + "summary": "Manage Retention Policies", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantFilter", + "in": "query" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "CreatePolicies": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Name of the retention policy" + }, + "RetentionPolicyTagLinks": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of retention tag names to link to this policy" + } + }, + "required": ["Name"] + }, + "description": "Array of retention policies to create" + }, + "ModifyPolicies": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Identity": { + "type": "string", + "description": "Identity of the retention policy to modify" + }, + "Name": { + "type": "string", + "description": "New name for the retention policy" + }, + "RetentionPolicyTagLinks": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of retention tag names to link to this policy" + }, + "AddTags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of retention tag names to add to the policy" + }, + "RemoveTags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of retention tag names to remove from the policy" + } + }, + "required": ["Identity"] + }, + "description": "Array of retention policies to modify" + }, + "DeletePolicies": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of retention policy identities to delete" + } + } + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "description": "Successfully processed retention policy operations" + }, + "400": { + "description": "Bad request - missing required parameters", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "403": { + "description": "Forbidden - insufficient permissions", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "/ExecManageRetentionTags": { + "get": { + "description": "List retention tags or get a specific retention tag by name", + "summary": "Get Retention Tags", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantFilter", + "in": "query" + }, + { + "required": false, + "schema": { + "type": "string" + }, + "name": "name", + "in": "query", + "description": "Name of specific retention tag to retrieve" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "RetentionAction": { + "type": "string" + }, + "AgeLimitForRetention": { + "type": "integer" + }, + "RetentionEnabled": { + "type": "boolean" + } + } + } + } + } + }, + "description": "Successfully retrieved retention tags" + }, + "400": { + "description": "Bad request - missing required parameters", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "string", + "description": "Error message" + } + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "string", + "description": "Error message" + } + } + } + } + } + } + } + }, + "post": { + "description": "Create, modify, or delete retention tags", + "summary": "Manage Retention Tags", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantFilter", + "in": "query" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "CreateTags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Name of the retention tag (max 64 characters)" + }, + "Type": { + "type": "string", + "enum": ["All", "Inbox", "SentItems", "DeletedItems", "Drafts", "Outbox", "JunkEmail", "Journal", "SyncIssues", "ConversationHistory", "Personal", "RecoverableItems", "NonIpmRoot", "LegacyArchiveJournals", "Clutter", "Calendar", "Notes", "Tasks", "Contacts", "RssSubscriptions", "ManagedCustomFolder"], + "description": "Type of the retention tag" + }, + "RetentionAction": { + "type": "string", + "enum": ["DeleteAndAllowRecovery", "PermanentlyDelete", "MoveToArchive", "MarkAsPastRetentionLimit"], + "description": "Action to take when retention period expires" + }, + "AgeLimitForRetention": { + "type": "integer", + "minimum": 0, + "maximum": 24855, + "description": "Age limit for retention in days" + }, + "RetentionEnabled": { + "type": "boolean", + "description": "Whether retention is enabled for this tag" + }, + "Comment": { + "type": "string", + "description": "Administrative comment for the tag" + }, + "LocalizedComment": { + "type": "string", + "description": "Localized comment for the tag" + }, + "LocalizedRetentionPolicyTagName": { + "type": "string", + "description": "Localized name for the retention policy tag" + } + }, + "required": ["Name", "Type"] + }, + "description": "Array of retention tags to create" + }, + "ModifyTags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Identity": { + "type": "string", + "description": "Identity of the retention tag to modify" + }, + "Name": { + "type": "string", + "description": "New name for the retention tag" + }, + "RetentionAction": { + "type": "string", + "enum": ["DeleteAndAllowRecovery", "PermanentlyDelete", "MoveToArchive", "MarkAsPastRetentionLimit"], + "description": "Action to take when retention period expires" + }, + "AgeLimitForRetention": { + "type": "integer", + "minimum": 0, + "maximum": 24855, + "description": "Age limit for retention in days" + }, + "RetentionEnabled": { + "type": "boolean", + "description": "Whether retention is enabled for this tag" + }, + "Comment": { + "type": "string", + "description": "Administrative comment for the tag" + }, + "LocalizedComment": { + "type": "string", + "description": "Localized comment for the tag" + }, + "LocalizedRetentionPolicyTagName": { + "type": "string", + "description": "Localized name for the retention policy tag" + } + }, + "required": ["Identity"] + }, + "description": "Array of retention tags to modify" + }, + "DeleteTags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of retention tag identities to delete" + } + } + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "description": "Successfully processed retention tag operations" + }, + "400": { + "description": "Bad request - missing required parameters", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "403": { + "description": "Forbidden - insufficient permissions", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "/ExecSetMailboxRetentionPolicies": { + "post": { + "description": "Apply a retention policy to one or more mailboxes", + "summary": "Set Mailbox Retention Policies", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantFilter", + "in": "query" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "PolicyName": { + "type": "string", + "description": "Name of the retention policy to apply" + }, + "Mailboxes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of mailbox identities (email addresses or names) to apply the policy to" + } + }, + "required": ["PolicyName", "Mailboxes"] + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of result messages for each mailbox operation" + } + } + } + } + }, + "description": "Successfully processed mailbox retention policy assignments" + }, + "400": { + "description": "Bad request - missing required parameters", + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + } + }, + "403": { + "description": "Forbidden - insufficient permissions", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + } + } + }, "openapi": "3.1.0", "servers": [ { diff --git a/profile.ps1 b/profile.ps1 index a763fe8b693e..3925ffbf3f9d 100644 --- a/profile.ps1 +++ b/profile.ps1 @@ -1,65 +1,115 @@ -# Azure Functions profile.ps1 -# -# This profile.ps1 will get executed every "cold start" of your Function App. -# "cold start" occurs when: -# -# * A Function App starts up for the very first time -# * A Function App starts up after being de-allocated due to inactivity -# -# You can define helper functions, run commands, or specify environment variables -# NOTE: any variables defined that are not environment variables will get reset after the first execution +Write-Information '#### CIPP-API Start ####' -# Authenticate with Azure PowerShell using MSI. -# Remove this if you are not planning on using MSI or Azure PowerShell. +$Timings = @{} +$TotalStopwatch = [System.Diagnostics.Stopwatch]::StartNew() +# Only load Application Insights SDK for telemetry if a connection string or instrumentation key is set +$hasAppInsights = $false +if ($env:APPLICATIONINSIGHTS_CONNECTION_STRING -or $env:APPINSIGHTS_INSTRUMENTATIONKEY) { + $hasAppInsights = $true +} +if ($hasAppInsights) { + $SwAppInsights = [System.Diagnostics.Stopwatch]::StartNew() + try { + $AppInsightsDllPath = Join-Path $PSScriptRoot 'Shared\AppInsights\Microsoft.ApplicationInsights.dll' + $null = [Reflection.Assembly]::LoadFile($AppInsightsDllPath) + Write-Debug 'Application Insights SDK loaded successfully' + } catch { + Write-Warning "Failed to load Application Insights SDK: $($_.Exception.Message)" + } + $SwAppInsights.Stop() + $Timings['AppInsightsSDK'] = $SwAppInsights.Elapsed.TotalMilliseconds +} # Import modules -@('CIPPCore', 'CippExtensions', 'Az.KeyVault', 'Az.Accounts', 'AzBobbyTables') | ForEach-Object { +$SwModules = [System.Diagnostics.Stopwatch]::StartNew() +$ModulesPath = Join-Path $PSScriptRoot 'Modules' +$Modules = @('CIPPCore', 'CippExtensions', 'AzBobbyTables') +foreach ($Module in $Modules) { + $SwModule = [System.Diagnostics.Stopwatch]::StartNew() try { - $Module = $_ - Import-Module -Name $_ -ErrorAction Stop + Import-Module -Name (Join-Path $ModulesPath $Module) -ErrorAction Stop + $SwModule.Stop() + $Timings["Module_$Module"] = $SwModule.Elapsed.TotalMilliseconds } catch { + $SwModule.Stop() + $Timings["Module_$Module"] = $SwModule.Elapsed.TotalMilliseconds Write-LogMessage -message "Failed to import module - $Module" -LogData (Get-CippException -Exception $_) -Sev 'debug' - $_.Exception.Message + Write-Error $_.Exception.Message + } +} +$SwModules.Stop() +$Timings['AllModules'] = $SwModules.Elapsed.TotalMilliseconds + +# Initialize global TelemetryClient only if Application Insights is configured +$SwTelemetry = [System.Diagnostics.Stopwatch]::StartNew() +if ($hasAppInsights -and -not $global:TelemetryClient) { + try { + $connectionString = $env:APPLICATIONINSIGHTS_CONNECTION_STRING + if ($connectionString) { + # Use connection string (preferred method) + $config = [Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration]::CreateDefault() + $config.ConnectionString = $connectionString + $global:TelemetryClient = [Microsoft.ApplicationInsights.TelemetryClient]::new($config) + Enable-CippConsoleLogging + Write-Debug 'TelemetryClient initialized with connection string' + } elseif ($env:APPINSIGHTS_INSTRUMENTATIONKEY) { + # Fall back to instrumentation key + $global:TelemetryClient = [Microsoft.ApplicationInsights.TelemetryClient]::new() + $global:TelemetryClient.InstrumentationKey = $env:APPINSIGHTS_INSTRUMENTATIONKEY + Enable-CippConsoleLogging + Write-Debug 'TelemetryClient initialized with instrumentation key' + } + } catch { + Write-Warning "Failed to initialize TelemetryClient: $($_.Exception.Message)" } + $SwTelemetry.Stop() + $Timings['TelemetryClient'] = $SwTelemetry.Elapsed.TotalMilliseconds } +$SwDurableSDK = [System.Diagnostics.Stopwatch]::StartNew() if ($env:ExternalDurablePowerShellSDK -eq $true) { try { Import-Module AzureFunctions.PowerShell.Durable.SDK -ErrorAction Stop - Write-Information 'External Durable SDK enabled' + Write-Debug 'External Durable SDK enabled' } catch { Write-LogMessage -message 'Failed to import module - AzureFunctions.PowerShell.Durable.SDK' -LogData (Get-CippException -Exception $_) -Sev 'debug' $_.Exception.Message } } +$SwDurableSDK.Stop() +$Timings['DurableSDK'] = $SwDurableSDK.Elapsed.TotalMilliseconds -try { - Disable-AzContextAutosave -Scope Process | Out-Null -} catch {} - +$SwAuth = [System.Diagnostics.Stopwatch]::StartNew() try { if (!$env:SetFromProfile) { - Write-Information "We're reloading from KV" + Write-Debug "We're reloading from KV" $Auth = Get-CIPPAuthentication } } catch { Write-LogMessage -message 'Could not retrieve keys from Keyvault' -LogData (Get-CippException -Exception $_) -Sev 'debug' } +$SwAuth.Stop() +$Timings['Authentication'] = $SwAuth.Elapsed.TotalMilliseconds -Set-Location -Path $PSScriptRoot -$CurrentVersion = (Get-Content .\version_latest.txt).trim() +$SwVersion = [System.Diagnostics.Stopwatch]::StartNew() +$CurrentVersion = (Get-Content -Path (Join-Path $PSScriptRoot 'version_latest.txt') -Raw).Trim() $Table = Get-CippTable -tablename 'Version' -Write-Information "Function: $($env:WEBSITE_SITE_NAME) Version: $CurrentVersion" +Write-Information "Function App: $($env:WEBSITE_SITE_NAME) | API Version: $CurrentVersion | PS Version: $($PSVersionTable.PSVersion)" +$global:CippVersion = $CurrentVersion +$ENV:CurrentVersion = $CurrentVersion + $LastStartup = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'Version' and RowKey eq '$($env:WEBSITE_SITE_NAME)'" if (!$LastStartup -or $CurrentVersion -ne $LastStartup.Version) { Write-Information "Version has changed from $($LastStartup.Version ?? 'None') to $CurrentVersion" if ($LastStartup) { $LastStartup.Version = $CurrentVersion + Add-Member -InputObject $LastStartup -MemberType NoteProperty -Name 'PSVersion' -Value $PSVersionTable.PSVersion.ToString() -Force } else { $LastStartup = [PSCustomObject]@{ PartitionKey = 'Version' RowKey = $env:WEBSITE_SITE_NAME Version = $CurrentVersion + PSVersion = $PSVersionTable.PSVersion.ToString() } } Update-AzDataTableEntity @Table -Entity $LastStartup -Force -ErrorAction SilentlyContinue @@ -68,8 +118,20 @@ if (!$LastStartup -or $CurrentVersion -ne $LastStartup.Version) { } catch { Write-LogMessage -message 'Failed to clear durables after update' -LogData (Get-CippException -Exception $_) -Sev 'Error' } + + $ReleaseTable = Get-CippTable -tablename 'cacheGitHubReleaseNotes' + Remove-AzDataTableEntity @ReleaseTable -Entity @{ PartitionKey = 'GitHubReleaseNotes'; RowKey = 'GitHubReleaseNotes' } -ErrorAction SilentlyContinue + Write-Debug 'Cleared GitHub release notes cache to force refresh on version update.' } -# Uncomment the next line to enable legacy AzureRm alias in Azure PowerShell. -# Enable-AzureRmAlias +$SwVersion.Stop() +$Timings['VersionCheck'] = $SwVersion.Elapsed.TotalMilliseconds -# You can also define functions or aliases that can be referenced in any of your PowerShell functions. +$TotalStopwatch.Stop() +$Timings['Total'] = $TotalStopwatch.Elapsed.TotalMilliseconds + +# Output timing summary as compressed JSON +$TimingsRounded = [ordered]@{} +foreach ($Key in ($Timings.Keys | Sort-Object)) { + $TimingsRounded[$Key] = [math]::Round($Timings[$Key], 2) +} +Write-Debug "#### Profile Load Timings #### $($TimingsRounded | ConvertTo-Json -Compress)" diff --git a/requirements.psd1 b/requirements.psd1 index 63032898f263..3364b5ae1eef 100644 --- a/requirements.psd1 +++ b/requirements.psd1 @@ -1,10 +1,6 @@ # This file enables modules to be automatically managed by the Functions service. # See https://aka.ms/functionsmanageddependency for additional information. # -@{ - # For latest supported version, go to 'https://www.powershellgallery.com/packages/Az'. - # To use the Az module in your function app, please uncomment the line below. - 'Az.accounts' = '2.*' - 'Az.Keyvault' = '3.*' - 'AzBobbyTables' = '2.*' -} +# CIPP bundles all modules locally in the Modules folder and imports them explicitly. +# managedDependency is disabled in host.json - this file is intentionally empty. +@{} diff --git a/version_latest.txt b/version_latest.txt index 8104cabd36fb..2681b301aa6c 100644 --- a/version_latest.txt +++ b/version_latest.txt @@ -1 +1 @@ -8.1.0 +10.0.5 diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 000000000000..fb57ccd13afb --- /dev/null +++ b/yarn.lock @@ -0,0 +1,4 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + +